@omnimedia/omnitool 1.1.0-96 → 1.1.0-98

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,19 +1,19 @@
1
- var $T=Object.defineProperty;var yo=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof require<"u"?require:r)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var Af=(e,r)=>{for(var t in r)$T(e,t,{get:r[t],enumerable:!0})};function ls(){let e,r,t=new Promise((o,a)=>{e=o,r=a});function s(o){return o.then(e).catch(r),t}return{promise:t,resolve:e,reject:r,entangle:s}}var $f=Object.freeze({happy:e=>e!=null,sad:e=>e==null,boolean:e=>typeof e=="boolean",number:e=>typeof e=="number",string:e=>typeof e=="string",bigint:e=>typeof e=="bigint",object:e=>typeof e=="object"&&e!==null,array:e=>Array.isArray(e),fn:e=>typeof e=="function",symbol:e=>typeof e=="symbol"});var Wa=class extends Error{milliseconds;name=this.constructor.name;constructor(r){super(`deadline exceeded (${(r/1e3).toFixed(1)} seconds)`),this.milliseconds=r}};function Df(e,r){return e<=0||e===1/0?r():new Promise((t,s)=>{let o=setTimeout(()=>s(new Wa(e)),e);r().then(t).catch(s).finally(()=>clearTimeout(o))})}function di(){let e=[];function r(){for(let t of e)t();e=[]}return r.schedule=(...t)=>(e.push(...t),r),r}function Of(e,r){let t=e;for(let s of r)if(t=t[s],$f.sad(t))break;return t}function Lf(e){let r=!1,t;return((...s)=>(r||(r=!0,t=e(...s)),t))}function DT(){let e=new Set;async function r(...l){await Promise.all([...e].map(c=>c(...l)))}function t(l){return e.add(l),()=>{e.delete(l)}}async function s(...l){return r(...l)}function o(l){return t(l)}async function a(l){let{promise:c,resolve:_}=ls(),u=o(async(...d)=>{l&&await l(...d),_(d),u()});return c}function n(){e.clear()}let i={pub:s,sub:o,publish:r,subscribe:t,on:t,next:a,clear:n};return Object.assign(o,i),Object.assign(s,i),i}function ui(e){let r=DT();return e&&r.sub(e),r.pub}function Ec(e,r){return{error:t=>e.error({...r,...t}),rpcRequest:t=>e.rpcRequest({...r,...t}),rpcError:t=>e.rpcError({...r,...t})}}var _i=()=>e=>({plain:e.none,errMessage:e.mix(e.brightRed,e.bold),errName:e.red,errStack:e.mix(e.red,e.dim),timestamp:e.blue,timestampErr:e.red});function Bf(){return _i()}var io=Object.freeze({black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",brightBlack:"\x1B[90m",brightRed:"\x1B[91m",brightGreen:"\x1B[92m",brightYellow:"\x1B[93m",brightBlue:"\x1B[94m",brightMagenta:"\x1B[95m",brightCyan:"\x1B[96m",brightWhite:"\x1B[97m",bgBlack:"\x1B[40m",bgRed:"\x1B[41m",bgGreen:"\x1B[42m",bgYellow:"\x1B[43m",bgBlue:"\x1B[44m",bgMagenta:"\x1B[45m",bgCyan:"\x1B[46m",bgWhite:"\x1B[47m",bgBrightBlack:"\x1B[100m",bgBrightRed:"\x1B[101m",bgBrightGreen:"\x1B[102m",bgBrightYellow:"\x1B[103m",bgBrightBlue:"\x1B[104m",bgBrightMagenta:"\x1B[105m",bgBrightCyan:"\x1B[106m",bgBrightWhite:"\x1B[107m",bold:"\x1B[1m",dim:"\x1B[2m",italic:"\x1B[3m",underline:"\x1B[4m",inverse:"\x1B[7m",hidden:"\x1B[8m",strikethrough:"\x1B[9m",reset:"\x1B[0m"});var pi=()=>({none:e=>e,uncolor:LT,mix:BT,hex:zT,rgb:zf,bgRgb:RT});function LT(e){return e.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,"")}function BT(...e){return r=>{for(let t of e)r=t(r);return r}}function zT(e){e=e.replace(/^#/,"");let r,t,s,o;if(e.length===3)r=parseInt(e.split("").map(a=>a+a).join(""),16);else if(e.length===6)r=parseInt(e,16);else throw new Error("Invalid hex color");return t=r>>16&255,s=r>>8&255,o=r&255,zf(t,s,o)}function zf(e,r,t){let s=`\x1B[38;2;${e};${r};${t}m`;return o=>`${s}${o}${io.reset}`}function RT(e,r,t){let s=`\x1B[48;2;${e};${r};${t}m`;return o=>`${s}${o}${io.reset}`}var Ua={...Object.fromEntries(Object.entries(io).map(([e])=>[e,r=>r])),...pi()};var Ga={...Object.fromEntries(Object.entries(io).map(([e,r])=>[e,t=>`${r}${t}${io.reset}`])),...pi()};function kc(){return typeof Deno<"u"&&typeof Deno.version<"u"}function Cc(){return typeof process<"u"&&process.versions&&process.versions.node}function Rf(){return Cc()?process.env.FORCE_COLOR||process.stdout.isTTY&&process.env.TERM!=="dumb":kc()?Deno.env.get("FORCE_COLOR")||Deno.isatty(Deno.stdout.rid)&&Deno.env.get("TERM")!=="dumb":!1}var Sc=()=>Rf()?Ga:Ua;var mi=()=>({colors:e,theme:r})=>{let t=r(e);function s(n){let i=n.stack?`
1
+ var DT=Object.defineProperty;var yo=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof require<"u"?require:r)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var $f=(e,r)=>{for(var t in r)DT(e,t,{get:r[t],enumerable:!0})};function ls(){let e,r,t=new Promise((o,a)=>{e=o,r=a});function s(o){return o.then(e).catch(r),t}return{promise:t,resolve:e,reject:r,entangle:s}}var Df=Object.freeze({happy:e=>e!=null,sad:e=>e==null,boolean:e=>typeof e=="boolean",number:e=>typeof e=="number",string:e=>typeof e=="string",bigint:e=>typeof e=="bigint",object:e=>typeof e=="object"&&e!==null,array:e=>Array.isArray(e),fn:e=>typeof e=="function",symbol:e=>typeof e=="symbol"});var Ua=class extends Error{milliseconds;name=this.constructor.name;constructor(r){super(`deadline exceeded (${(r/1e3).toFixed(1)} seconds)`),this.milliseconds=r}};function Of(e,r){return e<=0||e===1/0?r():new Promise((t,s)=>{let o=setTimeout(()=>s(new Ua(e)),e);r().then(t).catch(s).finally(()=>clearTimeout(o))})}function ui(){let e=[];function r(){for(let t of e)t();e=[]}return r.schedule=(...t)=>(e.push(...t),r),r}function Lf(e,r){let t=e;for(let s of r)if(t=t[s],Df.sad(t))break;return t}function Bf(e){let r=!1,t;return((...s)=>(r||(r=!0,t=e(...s)),t))}function OT(){let e=new Set;async function r(...l){await Promise.all([...e].map(c=>c(...l)))}function t(l){return e.add(l),()=>{e.delete(l)}}async function s(...l){return r(...l)}function o(l){return t(l)}async function a(l){let{promise:c,resolve:_}=ls(),u=o(async(...d)=>{l&&await l(...d),_(d),u()});return c}function n(){e.clear()}let i={pub:s,sub:o,publish:r,subscribe:t,on:t,next:a,clear:n};return Object.assign(o,i),Object.assign(s,i),i}function _i(e){let r=OT();return e&&r.sub(e),r.pub}function Ec(e,r){return{error:t=>e.error({...r,...t}),rpcRequest:t=>e.rpcRequest({...r,...t}),rpcError:t=>e.rpcError({...r,...t})}}var pi=()=>e=>({plain:e.none,errMessage:e.mix(e.brightRed,e.bold),errName:e.red,errStack:e.mix(e.red,e.dim),timestamp:e.blue,timestampErr:e.red});function zf(){return pi()}var io=Object.freeze({black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",brightBlack:"\x1B[90m",brightRed:"\x1B[91m",brightGreen:"\x1B[92m",brightYellow:"\x1B[93m",brightBlue:"\x1B[94m",brightMagenta:"\x1B[95m",brightCyan:"\x1B[96m",brightWhite:"\x1B[97m",bgBlack:"\x1B[40m",bgRed:"\x1B[41m",bgGreen:"\x1B[42m",bgYellow:"\x1B[43m",bgBlue:"\x1B[44m",bgMagenta:"\x1B[45m",bgCyan:"\x1B[46m",bgWhite:"\x1B[47m",bgBrightBlack:"\x1B[100m",bgBrightRed:"\x1B[101m",bgBrightGreen:"\x1B[102m",bgBrightYellow:"\x1B[103m",bgBrightBlue:"\x1B[104m",bgBrightMagenta:"\x1B[105m",bgBrightCyan:"\x1B[106m",bgBrightWhite:"\x1B[107m",bold:"\x1B[1m",dim:"\x1B[2m",italic:"\x1B[3m",underline:"\x1B[4m",inverse:"\x1B[7m",hidden:"\x1B[8m",strikethrough:"\x1B[9m",reset:"\x1B[0m"});var mi=()=>({none:e=>e,uncolor:BT,mix:zT,hex:RT,rgb:Rf,bgRgb:NT});function BT(e){return e.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,"")}function zT(...e){return r=>{for(let t of e)r=t(r);return r}}function RT(e){e=e.replace(/^#/,"");let r,t,s,o;if(e.length===3)r=parseInt(e.split("").map(a=>a+a).join(""),16);else if(e.length===6)r=parseInt(e,16);else throw new Error("Invalid hex color");return t=r>>16&255,s=r>>8&255,o=r&255,Rf(t,s,o)}function Rf(e,r,t){let s=`\x1B[38;2;${e};${r};${t}m`;return o=>`${s}${o}${io.reset}`}function NT(e,r,t){let s=`\x1B[48;2;${e};${r};${t}m`;return o=>`${s}${o}${io.reset}`}var Ga={...Object.fromEntries(Object.entries(io).map(([e])=>[e,r=>r])),...mi()};var Ka={...Object.fromEntries(Object.entries(io).map(([e,r])=>[e,t=>`${r}${t}${io.reset}`])),...mi()};function kc(){return typeof Deno<"u"&&typeof Deno.version<"u"}function Cc(){return typeof process<"u"&&process.versions&&process.versions.node}function Nf(){return Cc()?process.env.FORCE_COLOR||process.stdout.isTTY&&process.env.TERM!=="dumb":kc()?Deno.env.get("FORCE_COLOR")||Deno.isatty(Deno.stdout.rid)&&Deno.env.get("TERM")!=="dumb":!1}var Sc=()=>Nf()?Ka:Ga;var hi=()=>({colors:e,theme:r})=>{let t=r(e);function s(n){let i=n.stack?`
2
2
  `+n.stack+`
3
- `:"";return[t.errName(n.name+":"),t.errMessage(n.message)].join(" ")+t.errStack(i)}function o(n){return n&&n instanceof Error?s(n):n}function a(n){return n&&n instanceof Error?s(n):t.errMessage(n)}return{stdout:n=>n.map(o),stderr:n=>n.map(a)}};function Ka(...e){return r=>({stdout:t=>{for(let s of e)t=s(r).stdout(t);return t},stderr:t=>{for(let s of e)t=s(r).stderr(t);return t}})}function NT(){return{icon:"\u{1F6A8}",now:()=>Date.now()}}var hi=e=>({colors:r,theme:t})=>{let s={...NT(),...e},o=t(r),a=new Date(s.now()),n=a.getUTCFullYear().toString().padStart(4,"0"),i=(a.getUTCMonth()+1).toString().padStart(2,"0"),l=a.getUTCDate().toString().padStart(2,"0"),c=`${n}-${i}-${l}`,_=a.getUTCHours().toString().padStart(2,"0"),u=a.getUTCMinutes().toString().padStart(2,"0"),d=a.getUTCSeconds().toString().padStart(2,"0"),g=a.getUTCMilliseconds().toString().padStart(3,"0"),h=`${_}:${u}:${d}.${g}`,x=`${c}::${h}`;return{stdout:F=>[o.timestamp(x),...F],stderr:F=>[o.timestampErr(x),...[s.icon].filter(Boolean),...F]}};function Nf(){return Ka(mi(),hi())}var fi=()=>({stdout:async e=>{await Deno.stdout.write(new TextEncoder().encode(e+`
3
+ `:"";return[t.errName(n.name+":"),t.errMessage(n.message)].join(" ")+t.errStack(i)}function o(n){return n&&n instanceof Error?s(n):n}function a(n){return n&&n instanceof Error?s(n):t.errMessage(n)}return{stdout:n=>n.map(o),stderr:n=>n.map(a)}};function Ha(...e){return r=>({stdout:t=>{for(let s of e)t=s(r).stdout(t);return t},stderr:t=>{for(let s of e)t=s(r).stderr(t);return t}})}function jT(){return{icon:"\u{1F6A8}",now:()=>Date.now()}}var fi=e=>({colors:r,theme:t})=>{let s={...jT(),...e},o=t(r),a=new Date(s.now()),n=a.getUTCFullYear().toString().padStart(4,"0"),i=(a.getUTCMonth()+1).toString().padStart(2,"0"),l=a.getUTCDate().toString().padStart(2,"0"),c=`${n}-${i}-${l}`,_=a.getUTCHours().toString().padStart(2,"0"),u=a.getUTCMinutes().toString().padStart(2,"0"),d=a.getUTCSeconds().toString().padStart(2,"0"),g=a.getUTCMilliseconds().toString().padStart(3,"0"),h=`${_}:${u}:${d}.${g}`,x=`${c}::${h}`;return{stdout:F=>[o.timestamp(x),...F],stderr:F=>[o.timestampErr(x),...[s.icon].filter(Boolean),...F]}};function jf(){return Ha(hi(),fi())}var gi=()=>({stdout:async e=>{await Deno.stdout.write(new TextEncoder().encode(e+`
4
4
  `))},stderr:async e=>{await Deno.stderr.write(new TextEncoder().encode(e+`
5
- `))}});var gi=()=>({stdout:async e=>{process.stdout.write(e+`
5
+ `))}});var Mi=()=>({stdout:async e=>{process.stdout.write(e+`
6
6
  `)},stderr:async e=>{process.stderr.write(e+`
7
- `)}});var Mi=()=>({stdout:async e=>console.log(e),stderr:async e=>console.error(e)});var jf=()=>kc()?fi():Cc()?gi():Mi();var Vf=()=>({stdout:async()=>{},stderr:async()=>{}});function Wf(){return()=>({stdout:e=>e,stderr:e=>e})}var ia=class e{static writers={auto:jf,void:Vf,deno:fi,node:gi,console:Mi};static colors={auto:Sc,colorful:()=>Ga,colorless:()=>Ua};static themes={auto:Bf,basic:_i};static shapers={auto:Nf,none:Wf,errors:mi,timestamp:hi};writer=e.writers.auto();colors=e.colors.auto();theme=e.themes.auto();shaper=e.shapers.auto();async log(...r){await this.writer.stdout(this.shaper(this).stdout(r).join(" "))}async error(...r){await this.writer.stderr(this.shaper(this).stderr(r).join(" "))}setWriter(r){return this.writer=r,this}setColors(r){return this.colors=r,this}setTheme(r){return this.theme=r,this}setShaper(...r){return this.shaper=Ka(...r),this}};var Ha=class extends ia{static dummy(){return new this().setWriter(ia.writers.void())}rpcRequest=async({request:r,...t})=>{let s=this.colors.none;this.log(...this.#e(t),s(`${r.method}()`))};rpcError=async({request:r,error:t,...s})=>{this.error(...this.#e(s),`${r.method}()`,t)};#e({meta:r,label:t,remote:s}){let o=this.colors.mix(this.colors.blue,this.colors.dim),a=this.colors.mix(this.colors.cyan,this.colors.dim);return[r?this.#t(r):void 0,t||void 0,s===void 0?void 0:s?o("<-"):a("->")].filter(Boolean)}#t(r){let{headers:t}=r.request;return[this.colors.yellow(`[${r.ip}]`),this.colors.green(t.origin?t.origin:"(no-origin)")].join(" ")}};var Ls=class extends Ha{rpcRequest=async()=>{}};var Ks;(function(e){e.version="2.0";function r(t){return"id"in t?t.id:null}e.getId=r,e.errorCodes={serverError:-32e3,unexposedError:-32001}})(Ks||(Ks={}));var wi=class extends Error{name=this.constructor.name},To=class extends Error{name=this.constructor.name};async function Uf({tap:e,request:r,action:t}){let s=Ks.getId(r);try{let o=await t();return s===null?null:{id:s,result:o,jsonrpc:Ks.version}}catch(o){return e.rpcError({request:r,error:o}),s===null?null:{id:s,jsonrpc:Ks.version,error:o instanceof wi?{code:Ks.errorCodes.serverError,message:o.message}:{code:Ks.errorCodes.unexposedError,message:"unexposed error"}}}}function bi(e){let r=e.tap??new Ls;return async t=>{let s=t.method.split("."),o=Of(e.fns,s),a=async()=>await o(...t.params);return r.rpcRequest({request:t}),await Uf({tap:r,request:t,action:a})}}var Gf=Symbol("tune"),jT=Symbol("query"),VT=Symbol("notify"),WT=Symbol("settings");function Kf(e){function r(t){let s={notify:void 0};return new Proxy((()=>{}),{apply:(o,a,n)=>e(t,n,s),get:(o,a)=>{if(a!=="then")return a===Gf?n=>(...i)=>e(t,i,{...s,...n}):a===VT?(...n)=>e(t,n,{...s,notify:!0}):a===jT?(...n)=>e(t,n,{...s,notify:!1}):a===WT?s:(o[a]||(o[a]=r([...t,a])),o[a])},set:(o,a,n)=>(o[a]=n,!0)})}return r([])}function Po(e){let{endpoint:r,tap:t=new Ls}=e,s=1;return Kf(async(o,a,n)=>{let i=n.notify??e.notify??!1,l=n.transfer,c={jsonrpc:"2.0",method:o.join("."),params:a},_=i?c:{...c,id:s++};t.rpcRequest({request:_});let u=await r(_,{transfer:l});if(i&&!u)return null;if(!u)throw new To("response was null, but shouldn't be, because the request was not a notification");if("error"in u)throw new To(e.label?`${e.label}: ${u.error.message}`:u.error.message);return u.result})}function qa(e){return Po({endpoint:bi(e),tap:e.tap})}var Eo=class{recv=ui();sendRequest=ui();sendResponse=ui();static makeEntangledPair({origin:r="example.e280.org"}={}){let t=new this,s=new this,o=[t.sendRequest.sub(n=>s.recv(n,{origin:r})),t.sendResponse.sub(n=>s.recv(n,{origin:r})),s.sendRequest.sub(n=>t.recv(n,{origin:r})),s.sendResponse.sub(n=>t.recv(n,{origin:r}))];return[t,s,()=>o.forEach(n=>n())]}};function vi(e,r){return e.addEventListener("message",r),()=>e.removeEventListener("message",r)}function Hf(e,r){return async(t,{transfer:s}={})=>{if("id"in t){let o=ls();return r(t,s,o.promise),e.wait(t.id,t.method).then(a=>(o.resolve(a),a))}else{let o=Promise.resolve(null);return r(t,s,o),o}}}function qf(e){let r=[],t=[];for(let s of Array.isArray(e)?e:[e])"method"in s?r.push(s):t.push(s);return{requests:r,responses:t}}async function Qf(e,r){let t=(await Promise.all(r.map(async s=>e(s)))).filter(s=>s!==null);return t.length===0?null:t.length===1?t[0]:t}var la=class extends Eo{dispose=di();constructor(r){super(),this.dispose.schedule(this.sendRequest.sub((t,s)=>r.postMessage(t,s)),this.sendResponse.sub((t,s)=>r.postMessage(t,s)),vi(r,t=>this.recv(t.data,t)))}};var xi=class{remote;transfer;constructor(r){this.remote=r}};var Fc=Object.freeze({timeout:6e4,maxRequestBytes:1e7});var yi=class{timeout;pending=new Map;constructor(r){this.timeout=r}async wait(r,t){let s=ls();return this.pending.set(r,{method:t,deferred:s}),await Df(this.timeout,()=>s.promise).catch(o=>{throw o instanceof Wa&&(o.message=`request #${r} ${t}(), ${o.message}`),o})}deliverResponse(r){let t=this.pending.get(r.id);t&&("error"in r?t.deferred.reject(new To(r.error.message)):t.deferred.resolve(r))}};var ko=class{options;remote;remoteEndpoint;dispose=di();#e;constructor(r){this.options=r;let{conduit:t,tap:s}=r;this.#e=new yi(r.timeout??Fc.timeout),this.remoteEndpoint=Hf(this.#e,t.sendRequest.pub.bind(t.sendRequest)),this.remote=Po({endpoint:this.remoteEndpoint,tap:s&&Ec(s,{remote:!0})}),this.dispose.schedule(t.recv.sub(o=>this.recv(o)))}async recv(r){let t=new xi(this.remote),{conduit:s,rpc:o,tap:a}=this.options,{requests:n,responses:i}=qf(r);for(let u of i)this.#e.deliverResponse(u);if(!o)return;let l=await o(t),c=bi({fns:l,tap:a&&Ec(a,{remote:!1})}),_=await Qf(c,n);_&&await s.sendResponse(_,t.transfer)}};var Hs={derive:{host:e=>({host:e.remote.host,get transfer(){return e.transfer},set transfer(r){e.transfer=r}}),work:e=>({work:e.remote,get transfer(){return e.transfer},set transfer(r){e.transfer=r}})},mock:{host:()=>({host:void 0,transfer:void 0}),work:()=>({work:void 0,transfer:void 0})}};var qs=new Ls;async function Xf(e,r,t={}){let s=t.tap??qs,o=new ko({tap:s,timeout:t.timeout??1/0,conduit:new la(e.getSelf()),rpc:async a=>r(Hs.derive.host(a))});return await o.remote.infra.ready(),o.remote.host}var ca=class{worker;messenger;constructor(r,t){this.worker=r,this.messenger=t}static async make(r,t){let s=t.tap??qs,o=t.label??"comrade",a=r.loadWorker(t.workerUrl,o),n=ls(),i={async ready(){n.resolve()}},l=new ko({tap:s,timeout:t.timeout??1/0,conduit:new la(a),rpc:async c=>({infra:i,host:t.setupHost(Hs.derive.work(c))})});return await n.promise,new this(a,l)}get work(){return this.messenger.remote}terminate(){this.worker.terminate()}};var Ti=class{threads;static async make(r,t){let s=t.workerCount??r.guessOptimalThreadCount(),o=await Promise.all([...Array(s)].map(async(a,n)=>ca.make(r,{...t,label:t.label??`${t.label??"comrade"}_${n+1}`})));return new this(o,{tap:t.tap})}work;#e=new Set;#t=[];constructor(r,t={}){this.threads=r;let s=t.tap??qs,o=async(a,n)=>this.#s({request:a,prom:ls(),transfer:n?.transfer});this.work=Po({tap:s,endpoint:o}),r.forEach(a=>this.#e.add(a))}get threadCount(){return this.threads.length}terminate(){for(let r of this.threads)r.terminate()}#s(r){return this.#t.push(r),this.#r(),r.prom.promise}#r(){for(;this.#e.size>0&&this.#t.length>0;){let r=[...this.#e].pop();this.#e.delete(r);let t=this.#t.shift();this.#e.delete(r);let s=r.messenger.remoteEndpoint(t.request,{transfer:t.transfer});t.prom.entangle(s).finally(()=>{this.#e.add(r),this.#r()})}}};var Jf=e=>({thread:r=>ca.make(e,r),cluster:r=>Ti.make(e,r),worker:(r,t={})=>Xf(e,r,t),work:r=>r,host:r=>r,mocks(r){let{setupWork:t,setupHost:s,tap:o=qs}=r,a=Hs.mock.host(),n=Hs.mock.work();return n.work=qa({tap:o,fns:t(a)}),a.host=qa({tap:o,fns:s(n)}),{workShell:n,hostShell:a,work:n.work,host:a.host}},mockWork(r,t=qs){let s=Hs.mock.host(),o=Hs.mock.work();return o.work=qa({tap:t,fns:r(s)}),{workShell:o,hostShell:s,work:o.work,mockHost:a=>(s.host=qa({tap:t,fns:a(o)}),{workShell:o,hostShell:s,work:o.work,host:s.host})}}});var Yf=()=>({getSelf(){return self},guessOptimalThreadCount(){let e=navigator.hardwareConcurrency??1;return Math.max(1,e-1)},loadWorker(e,r){return new window.Worker(e,{name:r,type:"module"})},async loadWasm(e){return WebAssembly.instantiateStreaming(fetch(e))}});var KT=Yf(),Zf=Jf(KT);var Ac={};Af(Ac,{InferenceSession:()=>QT,TRACE:()=>hg,TRACE_FUNC_BEGIN:()=>Ei,TRACE_FUNC_END:()=>ki,Tensor:()=>Fo,env:()=>qT,registerBackend:()=>eg});var Pi=new Map,Co=[],eg=(e,r,t)=>{if(r&&typeof r.init=="function"&&typeof r.createInferenceSessionHandler=="function"){let s=Pi.get(e);if(s===void 0)Pi.set(e,{backend:r,priority:t});else{if(s.priority>t)return;if(s.priority===t&&s.backend!==r)throw new Error(`cannot register backend "${e}" using priority ${t}`)}if(t>=0){let o=Co.indexOf(e);o!==-1&&Co.splice(o,1);for(let a=0;a<Co.length;a++)if(Pi.get(Co[a]).priority<=t){Co.splice(a,0,e);return}Co.push(e)}return}throw new TypeError("not a valid backend")},HT=async e=>{let r=Pi.get(e);if(!r)return"backend not found.";if(r.initialized)return r.backend;if(r.aborted)return r.error;{let t=!!r.initPromise;try{return t||(r.initPromise=r.backend.init(e)),await r.initPromise,r.initialized=!0,r.backend}catch(s){return t||(r.error=`${s}`,r.aborted=!0),r.error}finally{delete r.initPromise}}},tg=async e=>{let r=e.executionProviders||[],t=r.map(l=>typeof l=="string"?l:l.name),s=t.length===0?Co:t,o,a=[],n=new Set;for(let l of s){let c=await HT(l);typeof c=="string"?a.push({name:l,err:c}):(o||(o=c),o===c&&n.add(l))}if(!o)throw new Error(`no available backend found. ERR: ${a.map(l=>`[${l.name}] ${l.err}`).join(", ")}`);for(let{name:l,err:c}of a)t.includes(l)&&console.warn(`removing requested execution provider "${l}" from session options because it is not available: ${c}`);let i=r.filter(l=>n.has(typeof l=="string"?l:l.name));return[o,new Proxy(e,{get:(l,c)=>c==="executionProviders"?i:Reflect.get(l,c)})]};var rg="1.21.0";var sg="warning",ts={wasm:{},webgl:{},webgpu:{},versions:{common:rg},set logLevel(e){if(e!==void 0){if(typeof e!="string"||["verbose","info","warning","error","fatal"].indexOf(e)===-1)throw new Error(`Unsupported logging level: ${e}`);sg=e}},get logLevel(){return sg}};Object.defineProperty(ts,"logLevel",{enumerable:!0});var qT=ts;var og=(e,r)=>{let t=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);t.width=e.dims[3],t.height=e.dims[2];let s=t.getContext("2d");if(s!=null){let o,a;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(o=e.dims[2],a=e.dims[3]):(o=e.dims[3],a=e.dims[2]);let n=r?.format!==void 0?r.format:"RGB",i=r?.norm,l,c;i===void 0||i.mean===void 0?l=[255,255,255,255]:typeof i.mean=="number"?l=[i.mean,i.mean,i.mean,i.mean]:(l=[i.mean[0],i.mean[1],i.mean[2],0],i.mean[3]!==void 0&&(l[3]=i.mean[3])),i===void 0||i.bias===void 0?c=[0,0,0,0]:typeof i.bias=="number"?c=[i.bias,i.bias,i.bias,i.bias]:(c=[i.bias[0],i.bias[1],i.bias[2],0],i.bias[3]!==void 0&&(c[3]=i.bias[3]));let _=a*o,u=0,d=_,g=_*2,h=-1;n==="RGBA"?(u=0,d=_,g=_*2,h=_*3):n==="RGB"?(u=0,d=_,g=_*2):n==="RBG"&&(u=0,g=_,d=_*2);for(let x=0;x<a;x++)for(let F=0;F<o;F++){let v=(e.data[u++]-c[0])*l[0],b=(e.data[d++]-c[1])*l[1],C=(e.data[g++]-c[2])*l[2],y=h===-1?255:(e.data[h++]-c[3])*l[3];s.fillStyle="rgba("+v+","+b+","+C+","+y+")",s.fillRect(F,x,1,1)}if("toDataURL"in t)return t.toDataURL();throw new Error("toDataURL is not supported")}else throw new Error("Can not access image data")},ag=(e,r)=>{let t=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),s;if(t!=null){let o,a,n;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(o=e.dims[2],a=e.dims[1],n=e.dims[3]):(o=e.dims[3],a=e.dims[2],n=e.dims[1]);let i=r!==void 0&&r.format!==void 0?r.format:"RGB",l=r?.norm,c,_;l===void 0||l.mean===void 0?c=[255,255,255,255]:typeof l.mean=="number"?c=[l.mean,l.mean,l.mean,l.mean]:(c=[l.mean[0],l.mean[1],l.mean[2],255],l.mean[3]!==void 0&&(c[3]=l.mean[3])),l===void 0||l.bias===void 0?_=[0,0,0,0]:typeof l.bias=="number"?_=[l.bias,l.bias,l.bias,l.bias]:(_=[l.bias[0],l.bias[1],l.bias[2],0],l.bias[3]!==void 0&&(_[3]=l.bias[3]));let u=a*o;if(r!==void 0&&(r.format!==void 0&&n===4&&r.format!=="RGBA"||n===3&&r.format!=="RGB"&&r.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let d=4,g=0,h=1,x=2,F=3,v=0,b=u,C=u*2,y=-1;i==="RGBA"?(v=0,b=u,C=u*2,y=u*3):i==="RGB"?(v=0,b=u,C=u*2):i==="RBG"&&(v=0,C=u,b=u*2),s=t.createImageData(o,a);for(let P=0;P<a*o;g+=d,h+=d,x+=d,F+=d,P++)s.data[g]=(e.data[v++]-_[0])*c[0],s.data[h]=(e.data[b++]-_[1])*c[1],s.data[x]=(e.data[C++]-_[2])*c[2],s.data[F]=y===-1?255:(e.data[y++]-_[3])*c[3]}else throw new Error("Can not access image data");return s};var Ic=(e,r)=>{if(e===void 0)throw new Error("Image buffer must be defined");if(r.height===void 0||r.width===void 0)throw new Error("Image height and width must be defined");if(r.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");let{height:t,width:s}=r,o=r.norm??{mean:255,bias:0},a,n;typeof o.mean=="number"?a=[o.mean,o.mean,o.mean,o.mean]:a=[o.mean[0],o.mean[1],o.mean[2],o.mean[3]??255],typeof o.bias=="number"?n=[o.bias,o.bias,o.bias,o.bias]:n=[o.bias[0],o.bias[1],o.bias[2],o.bias[3]??0];let i=r.format!==void 0?r.format:"RGBA",l=r.tensorFormat!==void 0&&r.tensorFormat!==void 0?r.tensorFormat:"RGB",c=t*s,_=l==="RGBA"?new Float32Array(c*4):new Float32Array(c*3),u=4,d=0,g=1,h=2,x=3,F=0,v=c,b=c*2,C=-1;i==="RGB"&&(u=3,d=0,g=1,h=2,x=-1),l==="RGBA"?C=c*3:l==="RBG"?(F=0,b=c,v=c*2):l==="BGR"&&(b=0,v=c,F=c*2);for(let P=0;P<c;P++,d+=u,h+=u,g+=u,x+=u)_[F++]=(e[d]+n[0])/a[0],_[v++]=(e[g]+n[1])/a[1],_[b++]=(e[h]+n[2])/a[2],C!==-1&&x!==-1&&(_[C++]=(e[x]+n[3])/a[3]);return l==="RGBA"?new Vr("float32",_,[1,4,t,s]):new Vr("float32",_,[1,3,t,s])},ng=async(e,r)=>{let t=typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement,s=typeof ImageData<"u"&&e instanceof ImageData,o=typeof ImageBitmap<"u"&&e instanceof ImageBitmap,a=typeof e=="string",n,i=r??{},l=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},c=_=>typeof HTMLCanvasElement<"u"&&_ instanceof HTMLCanvasElement||_ instanceof OffscreenCanvas?_.getContext("2d"):null;if(t){let _=l();_.width=e.width,_.height=e.height;let u=c(_);if(u!=null){let d=e.height,g=e.width;if(r!==void 0&&r.resizedHeight!==void 0&&r.resizedWidth!==void 0&&(d=r.resizedHeight,g=r.resizedWidth),r!==void 0){if(i=r,r.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");i.tensorFormat="RGBA",i.height=d,i.width=g}else i.tensorFormat="RGBA",i.height=d,i.width=g;u.drawImage(e,0,0),n=u.getImageData(0,0,g,d).data}else throw new Error("Can not access image data")}else if(s){let _,u;if(r!==void 0&&r.resizedWidth!==void 0&&r.resizedHeight!==void 0?(_=r.resizedHeight,u=r.resizedWidth):(_=e.height,u=e.width),r!==void 0&&(i=r),i.format="RGBA",i.height=_,i.width=u,r!==void 0){let d=l();d.width=u,d.height=_;let g=c(d);if(g!=null)g.putImageData(e,0,0),n=g.getImageData(0,0,u,_).data;else throw new Error("Can not access image data")}else n=e.data}else if(o){if(r===void 0)throw new Error("Please provide image config with format for Imagebitmap");let _=l();_.width=e.width,_.height=e.height;let u=c(_);if(u!=null){let d=e.height,g=e.width;return u.drawImage(e,0,0,g,d),n=u.getImageData(0,0,g,d).data,i.height=d,i.width=g,Ic(n,i)}else throw new Error("Can not access image data")}else{if(a)return new Promise((_,u)=>{let d=l(),g=c(d);if(!e||!g)return u();let h=new Image;h.crossOrigin="Anonymous",h.src=e,h.onload=()=>{d.width=h.width,d.height=h.height,g.drawImage(h,0,0,d.width,d.height);let x=g.getImageData(0,0,d.width,d.height);i.height=d.height,i.width=d.width,_(Ic(x.data,i))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(n!==void 0)return Ic(n,i);throw new Error("Input data provided is not supported - aborted tensor creation")},ig=(e,r)=>{let{width:t,height:s,download:o,dispose:a}=r,n=[1,s,t,4];return new Vr({location:"texture",type:"float32",texture:e,dims:n,download:o,dispose:a})},lg=(e,r)=>{let{dataType:t,dims:s,download:o,dispose:a}=r;return new Vr({location:"gpu-buffer",type:t??"float32",gpuBuffer:e,dims:s,download:o,dispose:a})},cg=(e,r)=>{let{dataType:t,dims:s,download:o,dispose:a}=r;return new Vr({location:"ml-tensor",type:t??"float32",mlTensor:e,dims:s,download:o,dispose:a})},dg=(e,r,t)=>new Vr({location:"cpu-pinned",type:e,data:r,dims:t??[r.length]});var So=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),Qa=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),ug=!1,_g=()=>{if(!ug){ug=!0;let e=typeof BigInt64Array<"u"&&BigInt64Array.from,r=typeof BigUint64Array<"u"&&BigUint64Array.from,t=globalThis.Float16Array,s=typeof t<"u"&&t.from;e&&(So.set("int64",BigInt64Array),Qa.set(BigInt64Array,"int64")),r&&(So.set("uint64",BigUint64Array),Qa.set(BigUint64Array,"uint64")),s?(So.set("float16",t),Qa.set(t,"float16")):So.set("float16",Uint16Array)}};var pg=e=>{let r=1;for(let t=0;t<e.length;t++){let s=e[t];if(typeof s!="number"||!Number.isSafeInteger(s))throw new TypeError(`dims[${t}] must be an integer, got: ${s}`);if(s<0)throw new RangeError(`dims[${t}] must be a non-negative integer, got: ${s}`);r*=s}return r},mg=(e,r)=>{switch(e.location){case"cpu":return new Vr(e.type,e.data,r);case"cpu-pinned":return new Vr({location:"cpu-pinned",data:e.data,type:e.type,dims:r});case"texture":return new Vr({location:"texture",texture:e.texture,type:e.type,dims:r});case"gpu-buffer":return new Vr({location:"gpu-buffer",gpuBuffer:e.gpuBuffer,type:e.type,dims:r});case"ml-tensor":return new Vr({location:"ml-tensor",mlTensor:e.mlTensor,type:e.type,dims:r});default:throw new Error(`tensorReshape: tensor location ${e.location} is not supported`)}};var Vr=class{constructor(r,t,s){_g();let o,a;if(typeof r=="object"&&"location"in r)switch(this.dataLocation=r.location,o=r.type,a=r.dims,r.location){case"cpu-pinned":{let i=So.get(o);if(!i)throw new TypeError(`unsupported type "${o}" to create tensor from pinned buffer`);if(!(r.data instanceof i))throw new TypeError(`buffer should be of type ${i.name}`);this.cpuData=r.data;break}case"texture":{if(o!=="float32")throw new TypeError(`unsupported type "${o}" to create tensor from texture`);this.gpuTextureData=r.texture,this.downloader=r.download,this.disposer=r.dispose;break}case"gpu-buffer":{if(o!=="float32"&&o!=="float16"&&o!=="int32"&&o!=="int64"&&o!=="uint32"&&o!=="uint8"&&o!=="bool"&&o!=="uint4"&&o!=="int4")throw new TypeError(`unsupported type "${o}" to create tensor from gpu buffer`);this.gpuBufferData=r.gpuBuffer,this.downloader=r.download,this.disposer=r.dispose;break}case"ml-tensor":{if(o!=="float32"&&o!=="float16"&&o!=="int32"&&o!=="int64"&&o!=="uint32"&&o!=="uint64"&&o!=="int8"&&o!=="uint8"&&o!=="bool"&&o!=="uint4"&&o!=="int4")throw new TypeError(`unsupported type "${o}" to create tensor from MLTensor`);this.mlTensorData=r.mlTensor,this.downloader=r.download,this.disposer=r.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let i,l;if(typeof r=="string")if(o=r,l=s,r==="string"){if(!Array.isArray(t))throw new TypeError("A string tensor's data must be a string array.");i=t}else{let c=So.get(r);if(c===void 0)throw new TypeError(`Unsupported tensor type: ${r}.`);if(Array.isArray(t)){if(r==="float16"&&c===Uint16Array||r==="uint4"||r==="int4")throw new TypeError(`Creating a ${r} tensor from number array is not supported. Please use ${c.name} as data.`);r==="uint64"||r==="int64"?i=c.from(t,BigInt):i=c.from(t)}else if(t instanceof c)i=t;else if(t instanceof Uint8ClampedArray)if(r==="uint8")i=Uint8Array.from(t);else throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else if(r==="float16"&&t instanceof Uint16Array&&c!==Uint16Array)i=new globalThis.Float16Array(t.buffer,t.byteOffset,t.length);else throw new TypeError(`A ${o} tensor's data must be type of ${c}`)}else if(l=t,Array.isArray(r)){if(r.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");let c=typeof r[0];if(c==="string")o="string",i=r;else if(c==="boolean")o="bool",i=Uint8Array.from(r);else throw new TypeError(`Invalid element type of data array: ${c}.`)}else if(r instanceof Uint8ClampedArray)o="uint8",i=Uint8Array.from(r);else{let c=Qa.get(r.constructor);if(c===void 0)throw new TypeError(`Unsupported type for tensor data: ${r.constructor}.`);o=c,i=r}if(l===void 0)l=[i.length];else if(!Array.isArray(l))throw new TypeError("A tensor's dims must be a number array");a=l,this.cpuData=i,this.dataLocation="cpu"}let n=pg(a);if(this.cpuData&&n!==this.cpuData.length&&!((o==="uint4"||o==="int4")&&Math.ceil(n/2)===this.cpuData.length))throw new Error(`Tensor's size(${n}) does not match data length(${this.cpuData.length}).`);this.type=o,this.dims=a,this.size=n}static async fromImage(r,t){return ng(r,t)}static fromTexture(r,t){return ig(r,t)}static fromGpuBuffer(r,t){return lg(r,t)}static fromMLTensor(r,t){return cg(r,t)}static fromPinnedBuffer(r,t,s){return dg(r,t,s)}toDataURL(r){return og(this,r)}toImageData(r){return ag(this,r)}get data(){if(this.ensureValid(),!this.cpuData)throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");return this.cpuData}get location(){return this.dataLocation}get texture(){if(this.ensureValid(),!this.gpuTextureData)throw new Error("The data is not stored as a WebGL texture.");return this.gpuTextureData}get gpuBuffer(){if(this.ensureValid(),!this.gpuBufferData)throw new Error("The data is not stored as a WebGPU buffer.");return this.gpuBufferData}get mlTensor(){if(this.ensureValid(),!this.mlTensorData)throw new Error("The data is not stored as a WebNN MLTensor.");return this.mlTensorData}async getData(r){switch(this.ensureValid(),this.dataLocation){case"cpu":case"cpu-pinned":return this.data;case"texture":case"gpu-buffer":case"ml-tensor":{if(!this.downloader)throw new Error("The current tensor is not created with a specified data downloader.");if(this.isDownloading)throw new Error("The current tensor is being downloaded.");try{this.isDownloading=!0;let t=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=t,r&&this.disposer&&(this.disposer(),this.disposer=void 0),t}finally{this.isDownloading=!1}}default:throw new Error(`cannot get data from location: ${this.dataLocation}`)}}dispose(){if(this.isDownloading)throw new Error("The current tensor is being downloaded.");this.disposer&&(this.disposer(),this.disposer=void 0),this.cpuData=void 0,this.gpuTextureData=void 0,this.gpuBufferData=void 0,this.mlTensorData=void 0,this.downloader=void 0,this.isDownloading=void 0,this.dataLocation="none"}ensureValid(){if(this.dataLocation==="none")throw new Error("The tensor is disposed.")}reshape(r){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return mg(this,r)}};var Fo=Vr;var hg=(e,r)=>{(typeof ts.trace>"u"?!ts.wasm.trace:!ts.trace)||console.timeStamp(`${e}::ORT::${r}`)},fg=(e,r)=>{let t=new Error().stack?.split(/\r\n|\r|\n/g)||[],s=!1;for(let o=0;o<t.length;o++){if(s&&!t[o].includes("TRACE_FUNC")){let a=`FUNC_${e}::${t[o].trim().split(" ")[1]}`;r&&(a+=`::${r}`),hg("CPU",a);return}t[o].includes("TRACE_FUNC")&&(s=!0)}},Ei=e=>{(typeof ts.trace>"u"?!ts.wasm.trace:!ts.trace)||fg("BEGIN",e)},ki=e=>{(typeof ts.trace>"u"?!ts.wasm.trace:!ts.trace)||fg("END",e)};var Ci=class e{constructor(r){this.handler=r}async run(r,t,s){Ei();let o={},a={};if(typeof r!="object"||r===null||r instanceof Fo||Array.isArray(r))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let n=!0;if(typeof t=="object"){if(t===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(t instanceof Fo)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(t)){if(t.length===0)throw new TypeError("'fetches' cannot be an empty array.");n=!1;for(let c of t){if(typeof c!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(c)===-1)throw new RangeError(`'fetches' contains invalid output name: ${c}.`);o[c]=null}if(typeof s=="object"&&s!==null)a=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else{let c=!1,_=Object.getOwnPropertyNames(t);for(let u of this.outputNames)if(_.indexOf(u)!==-1){let d=t[u];(d===null||d instanceof Fo)&&(c=!0,n=!1,o[u]=d)}if(c){if(typeof s=="object"&&s!==null)a=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else a=t}}else if(typeof t<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let c of this.inputNames)if(typeof r[c]>"u")throw new Error(`input '${c}' is missing in 'feeds'.`);if(n)for(let c of this.outputNames)o[c]=null;let i=await this.handler.run(r,o,a),l={};for(let c in i)if(Object.hasOwnProperty.call(i,c)){let _=i[c];_ instanceof Fo?l[c]=_:l[c]=new Fo(_.type,_.data,_.dims)}return ki(),l}async release(){return this.handler.dispose()}static async create(r,t,s,o){Ei();let a,n={};if(typeof r=="string"){if(a=r,typeof t=="object"&&t!==null)n=t;else if(typeof t<"u")throw new TypeError("'options' must be an object.")}else if(r instanceof Uint8Array){if(a=r,typeof t=="object"&&t!==null)n=t;else if(typeof t<"u")throw new TypeError("'options' must be an object.")}else if(r instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&r instanceof SharedArrayBuffer){let _=r,u=0,d=r.byteLength;if(typeof t=="object"&&t!==null)n=t;else if(typeof t=="number"){if(u=t,!Number.isSafeInteger(u))throw new RangeError("'byteOffset' must be an integer.");if(u<0||u>=_.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${_.byteLength}).`);if(d=r.byteLength-u,typeof s=="number"){if(d=s,!Number.isSafeInteger(d))throw new RangeError("'byteLength' must be an integer.");if(d<=0||u+d>_.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${_.byteLength-u}].`);if(typeof o=="object"&&o!==null)n=o;else if(typeof o<"u")throw new TypeError("'options' must be an object.")}else if(typeof s<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof t<"u")throw new TypeError("'options' must be an object.");a=new Uint8Array(_,u,d)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[i,l]=await tg(n),c=await i.createInferenceSessionHandler(a,l);return ki(),new e(c)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}};var QT=Ci;var Tu={};Af(Tu,{InferenceSession:()=>Xd,TRACE:()=>pn,TRACE_FUNC_BEGIN:()=>Es,TRACE_FUNC_END:()=>us,Tensor:()=>Ps,default:()=>hE,env:()=>Zt,registerBackend:()=>Bo});var qd=Object.defineProperty,XT=Object.getOwnPropertyDescriptor,JT=Object.getOwnPropertyNames,YT=Object.prototype.hasOwnProperty,ZT=(e=>typeof yo<"u"?yo:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof yo<"u"?yo:r)[t]}):e)(function(e){if(typeof yo<"u")return yo.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')}),Ve=(e,r)=>()=>(e&&(r=e(e=0)),r),ha=(e,r)=>{for(var t in r)qd(e,t,{get:r[t],enumerable:!0})},eP=(e,r,t,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of JT(r))!YT.call(e,o)&&o!==t&&qd(e,o,{get:()=>r[o],enumerable:!(s=XT(r,o))||s.enumerable});return e},_n=e=>eP(qd({},"__esModule",{value:!0}),e),Xa,lo,Bo,gg,Qb,Xb=Ve(()=>{"use strict";Xa=new Map,lo=[],Bo=(e,r,t)=>{if(r&&typeof r.init=="function"&&typeof r.createInferenceSessionHandler=="function"){let s=Xa.get(e);if(s===void 0)Xa.set(e,{backend:r,priority:t});else{if(s.priority>t)return;if(s.priority===t&&s.backend!==r)throw new Error(`cannot register backend "${e}" using priority ${t}`)}if(t>=0){let o=lo.indexOf(e);o!==-1&&lo.splice(o,1);for(let a=0;a<lo.length;a++)if(Xa.get(lo[a]).priority<=t){lo.splice(a,0,e);return}lo.push(e)}return}throw new TypeError("not a valid backend")},gg=async e=>{let r=Xa.get(e);if(!r)return"backend not found.";if(r.initialized)return r.backend;if(r.aborted)return r.error;{let t=!!r.initPromise;try{return t||(r.initPromise=r.backend.init(e)),await r.initPromise,r.initialized=!0,r.backend}catch(s){return t||(r.error=`${s}`,r.aborted=!0),r.error}finally{delete r.initPromise}}},Qb=async e=>{let r=e.executionProviders||[],t=r.map(l=>typeof l=="string"?l:l.name),s=t.length===0?lo:t,o,a=[],n=new Set;for(let l of s){let c=await gg(l);typeof c=="string"?a.push({name:l,err:c}):(o||(o=c),o===c&&n.add(l))}if(!o)throw new Error(`no available backend found. ERR: ${a.map(l=>`[${l.name}] ${l.err}`).join(", ")}`);for(let{name:l,err:c}of a)t.includes(l)&&console.warn(`removing requested execution provider "${l}" from session options because it is not available: ${c}`);let i=r.filter(l=>n.has(typeof l=="string"?l:l.name));return[o,new Proxy(e,{get:(l,c)=>c==="executionProviders"?i:Reflect.get(l,c)})]}}),tP=Ve(()=>{"use strict";Xb()}),Jb,rP=Ve(()=>{"use strict";Jb="1.22.0-dev.20250409-89f8206ba4"}),$c,ds,Yb=Ve(()=>{"use strict";rP(),$c="warning",ds={wasm:{},webgl:{},webgpu:{},versions:{common:Jb},set logLevel(e){if(e!==void 0){if(typeof e!="string"||["verbose","info","warning","error","fatal"].indexOf(e)===-1)throw new Error(`Unsupported logging level: ${e}`);$c=e}},get logLevel(){return $c}},Object.defineProperty(ds,"logLevel",{enumerable:!0})}),Zt,sP=Ve(()=>{"use strict";Yb(),Zt=ds}),Zb,ev,oP=Ve(()=>{"use strict";Zb=(e,r)=>{let t=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);t.width=e.dims[3],t.height=e.dims[2];let s=t.getContext("2d");if(s!=null){let o,a;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(o=e.dims[2],a=e.dims[3]):(o=e.dims[3],a=e.dims[2]);let n=r?.format!==void 0?r.format:"RGB",i=r?.norm,l,c;i===void 0||i.mean===void 0?l=[255,255,255,255]:typeof i.mean=="number"?l=[i.mean,i.mean,i.mean,i.mean]:(l=[i.mean[0],i.mean[1],i.mean[2],0],i.mean[3]!==void 0&&(l[3]=i.mean[3])),i===void 0||i.bias===void 0?c=[0,0,0,0]:typeof i.bias=="number"?c=[i.bias,i.bias,i.bias,i.bias]:(c=[i.bias[0],i.bias[1],i.bias[2],0],i.bias[3]!==void 0&&(c[3]=i.bias[3]));let _=a*o,u=0,d=_,g=_*2,h=-1;n==="RGBA"?(u=0,d=_,g=_*2,h=_*3):n==="RGB"?(u=0,d=_,g=_*2):n==="RBG"&&(u=0,g=_,d=_*2);for(let x=0;x<a;x++)for(let F=0;F<o;F++){let v=(e.data[u++]-c[0])*l[0],b=(e.data[d++]-c[1])*l[1],C=(e.data[g++]-c[2])*l[2],y=h===-1?255:(e.data[h++]-c[3])*l[3];s.fillStyle="rgba("+v+","+b+","+C+","+y+")",s.fillRect(F,x,1,1)}if("toDataURL"in t)return t.toDataURL();throw new Error("toDataURL is not supported")}else throw new Error("Can not access image data")},ev=(e,r)=>{let t=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),s;if(t!=null){let o,a,n;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(o=e.dims[2],a=e.dims[1],n=e.dims[3]):(o=e.dims[3],a=e.dims[2],n=e.dims[1]);let i=r!==void 0&&r.format!==void 0?r.format:"RGB",l=r?.norm,c,_;l===void 0||l.mean===void 0?c=[255,255,255,255]:typeof l.mean=="number"?c=[l.mean,l.mean,l.mean,l.mean]:(c=[l.mean[0],l.mean[1],l.mean[2],255],l.mean[3]!==void 0&&(c[3]=l.mean[3])),l===void 0||l.bias===void 0?_=[0,0,0,0]:typeof l.bias=="number"?_=[l.bias,l.bias,l.bias,l.bias]:(_=[l.bias[0],l.bias[1],l.bias[2],0],l.bias[3]!==void 0&&(_[3]=l.bias[3]));let u=a*o;if(r!==void 0&&(r.format!==void 0&&n===4&&r.format!=="RGBA"||n===3&&r.format!=="RGB"&&r.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let d=4,g=0,h=1,x=2,F=3,v=0,b=u,C=u*2,y=-1;i==="RGBA"?(v=0,b=u,C=u*2,y=u*3):i==="RGB"?(v=0,b=u,C=u*2):i==="RBG"&&(v=0,C=u,b=u*2),s=t.createImageData(o,a);for(let P=0;P<a*o;g+=d,h+=d,x+=d,F+=d,P++)s.data[g]=(e.data[v++]-_[0])*c[0],s.data[h]=(e.data[b++]-_[1])*c[1],s.data[x]=(e.data[C++]-_[2])*c[2],s.data[F]=y===-1?255:(e.data[y++]-_[3])*c[3]}else throw new Error("Can not access image data");return s}}),Si,tv,rv,sv,ov,av,aP=Ve(()=>{"use strict";Qd(),Si=(e,r)=>{if(e===void 0)throw new Error("Image buffer must be defined");if(r.height===void 0||r.width===void 0)throw new Error("Image height and width must be defined");if(r.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");let{height:t,width:s}=r,o=r.norm??{mean:255,bias:0},a,n;typeof o.mean=="number"?a=[o.mean,o.mean,o.mean,o.mean]:a=[o.mean[0],o.mean[1],o.mean[2],o.mean[3]??255],typeof o.bias=="number"?n=[o.bias,o.bias,o.bias,o.bias]:n=[o.bias[0],o.bias[1],o.bias[2],o.bias[3]??0];let i=r.format!==void 0?r.format:"RGBA",l=r.tensorFormat!==void 0&&r.tensorFormat!==void 0?r.tensorFormat:"RGB",c=t*s,_=l==="RGBA"?new Float32Array(c*4):new Float32Array(c*3),u=4,d=0,g=1,h=2,x=3,F=0,v=c,b=c*2,C=-1;i==="RGB"&&(u=3,d=0,g=1,h=2,x=-1),l==="RGBA"?C=c*3:l==="RBG"?(F=0,b=c,v=c*2):l==="BGR"&&(b=0,v=c,F=c*2);for(let y=0;y<c;y++,d+=u,h+=u,g+=u,x+=u)_[F++]=(e[d]+n[0])/a[0],_[v++]=(e[g]+n[1])/a[1],_[b++]=(e[h]+n[2])/a[2],C!==-1&&x!==-1&&(_[C++]=(e[x]+n[3])/a[3]);return l==="RGBA"?new ss("float32",_,[1,4,t,s]):new ss("float32",_,[1,3,t,s])},tv=async(e,r)=>{let t=typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement,s=typeof ImageData<"u"&&e instanceof ImageData,o=typeof ImageBitmap<"u"&&e instanceof ImageBitmap,a=typeof e=="string",n,i=r??{},l=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},c=_=>typeof HTMLCanvasElement<"u"&&_ instanceof HTMLCanvasElement||_ instanceof OffscreenCanvas?_.getContext("2d"):null;if(t){let _=l();_.width=e.width,_.height=e.height;let u=c(_);if(u!=null){let d=e.height,g=e.width;if(r!==void 0&&r.resizedHeight!==void 0&&r.resizedWidth!==void 0&&(d=r.resizedHeight,g=r.resizedWidth),r!==void 0){if(i=r,r.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");i.tensorFormat="RGBA",i.height=d,i.width=g}else i.tensorFormat="RGBA",i.height=d,i.width=g;u.drawImage(e,0,0),n=u.getImageData(0,0,g,d).data}else throw new Error("Can not access image data")}else if(s){let _,u;if(r!==void 0&&r.resizedWidth!==void 0&&r.resizedHeight!==void 0?(_=r.resizedHeight,u=r.resizedWidth):(_=e.height,u=e.width),r!==void 0&&(i=r),i.format="RGBA",i.height=_,i.width=u,r!==void 0){let d=l();d.width=u,d.height=_;let g=c(d);if(g!=null)g.putImageData(e,0,0),n=g.getImageData(0,0,u,_).data;else throw new Error("Can not access image data")}else n=e.data}else if(o){if(r===void 0)throw new Error("Please provide image config with format for Imagebitmap");let _=l();_.width=e.width,_.height=e.height;let u=c(_);if(u!=null){let d=e.height,g=e.width;return u.drawImage(e,0,0,g,d),n=u.getImageData(0,0,g,d).data,i.height=d,i.width=g,Si(n,i)}else throw new Error("Can not access image data")}else{if(a)return new Promise((_,u)=>{let d=l(),g=c(d);if(!e||!g)return u();let h=new Image;h.crossOrigin="Anonymous",h.src=e,h.onload=()=>{d.width=h.width,d.height=h.height,g.drawImage(h,0,0,d.width,d.height);let x=g.getImageData(0,0,d.width,d.height);i.height=d.height,i.width=d.width,_(Si(x.data,i))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(n!==void 0)return Si(n,i);throw new Error("Input data provided is not supported - aborted tensor creation")},rv=(e,r)=>{let{width:t,height:s,download:o,dispose:a}=r,n=[1,s,t,4];return new ss({location:"texture",type:"float32",texture:e,dims:n,download:o,dispose:a})},sv=(e,r)=>{let{dataType:t,dims:s,download:o,dispose:a}=r;return new ss({location:"gpu-buffer",type:t??"float32",gpuBuffer:e,dims:s,download:o,dispose:a})},ov=(e,r)=>{let{dataType:t,dims:s,download:o,dispose:a}=r;return new ss({location:"ml-tensor",type:t??"float32",mlTensor:e,dims:s,download:o,dispose:a})},av=(e,r,t)=>new ss({location:"cpu-pinned",type:e,data:r,dims:t??[r.length]})}),Oo,nn,Dc,nv,nP=Ve(()=>{"use strict";Oo=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),nn=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),Dc=!1,nv=()=>{if(!Dc){Dc=!0;let e=typeof BigInt64Array<"u"&&BigInt64Array.from,r=typeof BigUint64Array<"u"&&BigUint64Array.from,t=globalThis.Float16Array,s=typeof t<"u"&&t.from;e&&(Oo.set("int64",BigInt64Array),nn.set(BigInt64Array,"int64")),r&&(Oo.set("uint64",BigUint64Array),nn.set(BigUint64Array,"uint64")),s?(Oo.set("float16",t),nn.set(t,"float16")):Oo.set("float16",Uint16Array)}}}),iv,lv,iP=Ve(()=>{"use strict";Qd(),iv=e=>{let r=1;for(let t=0;t<e.length;t++){let s=e[t];if(typeof s!="number"||!Number.isSafeInteger(s))throw new TypeError(`dims[${t}] must be an integer, got: ${s}`);if(s<0)throw new RangeError(`dims[${t}] must be a non-negative integer, got: ${s}`);r*=s}return r},lv=(e,r)=>{switch(e.location){case"cpu":return new ss(e.type,e.data,r);case"cpu-pinned":return new ss({location:"cpu-pinned",data:e.data,type:e.type,dims:r});case"texture":return new ss({location:"texture",texture:e.texture,type:e.type,dims:r});case"gpu-buffer":return new ss({location:"gpu-buffer",gpuBuffer:e.gpuBuffer,type:e.type,dims:r});case"ml-tensor":return new ss({location:"ml-tensor",mlTensor:e.mlTensor,type:e.type,dims:r});default:throw new Error(`tensorReshape: tensor location ${e.location} is not supported`)}}}),ss,Qd=Ve(()=>{"use strict";oP(),aP(),nP(),iP(),ss=class{constructor(e,r,t){nv();let s,o;if(typeof e=="object"&&"location"in e)switch(this.dataLocation=e.location,s=e.type,o=e.dims,e.location){case"cpu-pinned":{let n=Oo.get(s);if(!n)throw new TypeError(`unsupported type "${s}" to create tensor from pinned buffer`);if(!(e.data instanceof n))throw new TypeError(`buffer should be of type ${n.name}`);this.cpuData=e.data;break}case"texture":{if(s!=="float32")throw new TypeError(`unsupported type "${s}" to create tensor from texture`);this.gpuTextureData=e.texture,this.downloader=e.download,this.disposer=e.dispose;break}case"gpu-buffer":{if(s!=="float32"&&s!=="float16"&&s!=="int32"&&s!=="int64"&&s!=="uint32"&&s!=="uint8"&&s!=="bool"&&s!=="uint4"&&s!=="int4")throw new TypeError(`unsupported type "${s}" to create tensor from gpu buffer`);this.gpuBufferData=e.gpuBuffer,this.downloader=e.download,this.disposer=e.dispose;break}case"ml-tensor":{if(s!=="float32"&&s!=="float16"&&s!=="int32"&&s!=="int64"&&s!=="uint32"&&s!=="uint64"&&s!=="int8"&&s!=="uint8"&&s!=="bool"&&s!=="uint4"&&s!=="int4")throw new TypeError(`unsupported type "${s}" to create tensor from MLTensor`);this.mlTensorData=e.mlTensor,this.downloader=e.download,this.disposer=e.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let n,i;if(typeof e=="string")if(s=e,i=t,e==="string"){if(!Array.isArray(r))throw new TypeError("A string tensor's data must be a string array.");n=r}else{let l=Oo.get(e);if(l===void 0)throw new TypeError(`Unsupported tensor type: ${e}.`);if(Array.isArray(r)){if(e==="float16"&&l===Uint16Array||e==="uint4"||e==="int4")throw new TypeError(`Creating a ${e} tensor from number array is not supported. Please use ${l.name} as data.`);e==="uint64"||e==="int64"?n=l.from(r,BigInt):n=l.from(r)}else if(r instanceof l)n=r;else if(r instanceof Uint8ClampedArray)if(e==="uint8")n=Uint8Array.from(r);else throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else if(e==="float16"&&r instanceof Uint16Array&&l!==Uint16Array)n=new globalThis.Float16Array(r.buffer,r.byteOffset,r.length);else throw new TypeError(`A ${s} tensor's data must be type of ${l}`)}else if(i=r,Array.isArray(e)){if(e.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");let l=typeof e[0];if(l==="string")s="string",n=e;else if(l==="boolean")s="bool",n=Uint8Array.from(e);else throw new TypeError(`Invalid element type of data array: ${l}.`)}else if(e instanceof Uint8ClampedArray)s="uint8",n=Uint8Array.from(e);else{let l=nn.get(e.constructor);if(l===void 0)throw new TypeError(`Unsupported type for tensor data: ${e.constructor}.`);s=l,n=e}if(i===void 0)i=[n.length];else if(!Array.isArray(i))throw new TypeError("A tensor's dims must be a number array");o=i,this.cpuData=n,this.dataLocation="cpu"}let a=iv(o);if(this.cpuData&&a!==this.cpuData.length&&!((s==="uint4"||s==="int4")&&Math.ceil(a/2)===this.cpuData.length))throw new Error(`Tensor's size(${a}) does not match data length(${this.cpuData.length}).`);this.type=s,this.dims=o,this.size=a}static async fromImage(e,r){return tv(e,r)}static fromTexture(e,r){return rv(e,r)}static fromGpuBuffer(e,r){return sv(e,r)}static fromMLTensor(e,r){return ov(e,r)}static fromPinnedBuffer(e,r,t){return av(e,r,t)}toDataURL(e){return Zb(this,e)}toImageData(e){return ev(this,e)}get data(){if(this.ensureValid(),!this.cpuData)throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");return this.cpuData}get location(){return this.dataLocation}get texture(){if(this.ensureValid(),!this.gpuTextureData)throw new Error("The data is not stored as a WebGL texture.");return this.gpuTextureData}get gpuBuffer(){if(this.ensureValid(),!this.gpuBufferData)throw new Error("The data is not stored as a WebGPU buffer.");return this.gpuBufferData}get mlTensor(){if(this.ensureValid(),!this.mlTensorData)throw new Error("The data is not stored as a WebNN MLTensor.");return this.mlTensorData}async getData(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 new Error("The current tensor is not created with a specified data downloader.");if(this.isDownloading)throw new Error("The current tensor is being downloaded.");try{this.isDownloading=!0;let r=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=r,e&&this.disposer&&(this.disposer(),this.disposer=void 0),r}finally{this.isDownloading=!1}}default:throw new Error(`cannot get data from location: ${this.dataLocation}`)}}dispose(){if(this.isDownloading)throw new Error("The current tensor is being downloaded.");this.disposer&&(this.disposer(),this.disposer=void 0),this.cpuData=void 0,this.gpuTextureData=void 0,this.gpuBufferData=void 0,this.mlTensorData=void 0,this.downloader=void 0,this.isDownloading=void 0,this.dataLocation="none"}ensureValid(){if(this.dataLocation==="none")throw new Error("The tensor is disposed.")}reshape(e){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return lv(this,e)}}}),Ps,cv=Ve(()=>{"use strict";Qd(),Ps=ss}),pn,Oc,Es,us,dv=Ve(()=>{"use strict";Yb(),pn=(e,r)=>{(typeof ds.trace>"u"?!ds.wasm.trace:!ds.trace)||console.timeStamp(`${e}::ORT::${r}`)},Oc=(e,r)=>{let t=new Error().stack?.split(/\r\n|\r|\n/g)||[],s=!1;for(let o=0;o<t.length;o++){if(s&&!t[o].includes("TRACE_FUNC")){let a=`FUNC_${e}::${t[o].trim().split(" ")[1]}`;r&&(a+=`::${r}`),pn("CPU",a);return}t[o].includes("TRACE_FUNC")&&(s=!0)}},Es=e=>{(typeof ds.trace>"u"?!ds.wasm.trace:!ds.trace)||Oc("BEGIN",e)},us=e=>{(typeof ds.trace>"u"?!ds.wasm.trace:!ds.trace)||Oc("END",e)}}),uv,lP=Ve(()=>{"use strict";Xb(),cv(),dv(),uv=class _v{constructor(r){this.handler=r}async run(r,t,s){Es();let o={},a={};if(typeof r!="object"||r===null||r instanceof Ps||Array.isArray(r))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let n=!0;if(typeof t=="object"){if(t===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(t instanceof Ps)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(t)){if(t.length===0)throw new TypeError("'fetches' cannot be an empty array.");n=!1;for(let c of t){if(typeof c!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(c)===-1)throw new RangeError(`'fetches' contains invalid output name: ${c}.`);o[c]=null}if(typeof s=="object"&&s!==null)a=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else{let c=!1,_=Object.getOwnPropertyNames(t);for(let u of this.outputNames)if(_.indexOf(u)!==-1){let d=t[u];(d===null||d instanceof Ps)&&(c=!0,n=!1,o[u]=d)}if(c){if(typeof s=="object"&&s!==null)a=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else a=t}}else if(typeof t<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let c of this.inputNames)if(typeof r[c]>"u")throw new Error(`input '${c}' is missing in 'feeds'.`);if(n)for(let c of this.outputNames)o[c]=null;let i=await this.handler.run(r,o,a),l={};for(let c in i)if(Object.hasOwnProperty.call(i,c)){let _=i[c];_ instanceof Ps?l[c]=_:l[c]=new Ps(_.type,_.data,_.dims)}return us(),l}async release(){return this.handler.dispose()}static async create(r,t,s,o){Es();let a,n={};if(typeof r=="string"){if(a=r,typeof t=="object"&&t!==null)n=t;else if(typeof t<"u")throw new TypeError("'options' must be an object.")}else if(r instanceof Uint8Array){if(a=r,typeof t=="object"&&t!==null)n=t;else if(typeof t<"u")throw new TypeError("'options' must be an object.")}else if(r instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&r instanceof SharedArrayBuffer){let _=r,u=0,d=r.byteLength;if(typeof t=="object"&&t!==null)n=t;else if(typeof t=="number"){if(u=t,!Number.isSafeInteger(u))throw new RangeError("'byteOffset' must be an integer.");if(u<0||u>=_.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${_.byteLength}).`);if(d=r.byteLength-u,typeof s=="number"){if(d=s,!Number.isSafeInteger(d))throw new RangeError("'byteLength' must be an integer.");if(d<=0||u+d>_.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${_.byteLength-u}].`);if(typeof o=="object"&&o!==null)n=o;else if(typeof o<"u")throw new TypeError("'options' must be an object.")}else if(typeof s<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof t<"u")throw new TypeError("'options' must be an object.");a=new Uint8Array(_,u,d)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[i,l]=await Qb(n),c=await i.createInferenceSessionHandler(a,l);return us(),new _v(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}}}),Xd,cP=Ve(()=>{"use strict";lP(),Xd=uv}),dP=Ve(()=>{"use strict"}),uP=Ve(()=>{"use strict"}),_P=Ve(()=>{"use strict"}),pP=Ve(()=>{"use strict"}),pv={};ha(pv,{InferenceSession:()=>Xd,TRACE:()=>pn,TRACE_FUNC_BEGIN:()=>Es,TRACE_FUNC_END:()=>us,Tensor:()=>Ps,env:()=>Zt,registerBackend:()=>Bo});var ks=Ve(()=>{"use strict";tP(),sP(),cP(),cv(),dP(),uP(),dv(),_P(),pP()}),Jd=Ve(()=>{"use strict"}),mv={};ha(mv,{default:()=>hv});var Lc,Bc,hv,mP=Ve(()=>{"use strict";b0(),jo(),Yd(),Lc="ort-wasm-proxy-worker",Bc=globalThis.self?.name===Lc,Bc&&(self.onmessage=e=>{let{type:r,in:t}=e.data;try{switch(r){case"init-wasm":Zd(t.wasm).then(()=>{gu(t).then(()=>{postMessage({type:r})},s=>{postMessage({type:r,err:s})})},s=>{postMessage({type:r,err:s})});break;case"init-ep":{let{epName:s,env:o}=t;Mu(o,s).then(()=>{postMessage({type:r})},a=>{postMessage({type:r,err:a})});break}case"copy-from":{let{buffer:s}=t,o=Ji(s);postMessage({type:r,out:o});break}case"create":{let{model:s,options:o}=t;wu(s,o).then(a=>{postMessage({type:r,out:a})},a=>{postMessage({type:r,err:a})});break}case"release":bu(t),postMessage({type:r});break;case"run":{let{sessionId:s,inputIndices:o,inputs:a,outputIndices:n,options:i}=t;vu(s,o,a,n,new Array(n.length).fill(null),i).then(l=>{l.some(c=>c[3]!=="cpu")?postMessage({type:r,err:"Proxy does not support non-cpu tensor location."}):postMessage({type:r,out:l},yu([...a,...l]))},l=>{postMessage({type:r,err:l})});break}case"end-profiling":xu(t),postMessage({type:r});break;default:}}catch(s){postMessage({type:r,err:s})}}),hv=Bc?null:e=>new Worker(e??rs,{type:"module",name:Lc})}),fv={};ha(fv,{default:()=>gv});var zc,Rc,gv,Mg,hP=Ve(()=>{"use strict";Rc=(zc=import.meta.url,async function(e={}){var r,t,s=e,o=new Promise((m,T)=>{r=m,t=T}),a=typeof window=="object",n=typeof WorkerGlobalScope<"u",i=n&&self.name?.startsWith("em-pthread");s.mountExternalData=(m,T)=>{m.startsWith("./")&&(m=m.substring(2)),(s.Eb||(s.Eb=new Map)).set(m,T)},s.unmountExternalData=()=>{delete s.Eb};var l=globalThis.SharedArrayBuffer??new WebAssembly.Memory({initial:0,maximum:0,pc:!0}).buffer.constructor;let c=m=>async(...T)=>{try{if(s.Fb)throw Error("Session already started");let $=s.Fb={dc:T[0],errors:[]},B=await m(...T);if(s.Fb!==$)throw Error("Session mismatch");s.Jb?.flush();let V=$.errors;if(0<V.length){let ie=await Promise.all(V);if(ie=ie.filter(Ee=>Ee),0<ie.length)throw Error(ie.join(`
8
- `))}return B}finally{s.Fb=null}};s.jsepInit=(m,T)=>{if(m==="webgpu"){[s.Jb,s.Ub,s.Yb,s.Kb,s.Xb,s.jb,s.Zb,s.ac,s.Vb,s.Wb,s.$b]=T;let $=s.Jb;s.jsepRegisterBuffer=(B,V,ie,Ee)=>$.registerBuffer(B,V,ie,Ee),s.jsepGetBuffer=B=>$.getBuffer(B),s.jsepCreateDownloader=(B,V,ie)=>$.createDownloader(B,V,ie),s.jsepOnCreateSession=B=>{$.onCreateSession(B)},s.jsepOnReleaseSession=B=>{$.onReleaseSession(B)},s.jsepOnRunStart=B=>$.onRunStart(B),s.bc=(B,V)=>{$.upload(B,V)}}else if(m==="webnn"){let $=T[0];[s.nc,s.Nb,s.webnnEnsureTensor,s.Ob,s.webnnDownloadTensor]=T.slice(1),s.webnnReleaseTensorId=s.Nb,s.webnnUploadTensor=s.Ob,s.webnnOnRunStart=B=>$.onRunStart(B),s.webnnOnRunEnd=$.onRunEnd.bind($),s.webnnRegisterMLContext=(B,V)=>{$.registerMLContext(B,V)},s.webnnOnReleaseSession=B=>{$.onReleaseSession(B)},s.webnnCreateMLTensorDownloader=(B,V)=>$.createMLTensorDownloader(B,V),s.webnnRegisterMLTensor=(B,V,ie,Ee)=>$.registerMLTensor(B,V,ie,Ee),s.webnnCreateMLContext=B=>$.createMLContext(B),s.webnnRegisterMLConstant=(B,V,ie,Ee,Be,Je)=>$.registerMLConstant(B,V,ie,Ee,Be,s.Eb,Je),s.webnnRegisterGraphInput=$.registerGraphInput.bind($),s.webnnIsGraphInput=$.isGraphInput.bind($),s.webnnCreateTemporaryTensor=$.createTemporaryTensor.bind($),s.webnnIsInt64Supported=$.isInt64Supported.bind($)}};let _=()=>{let m=(T,$,B)=>(...V)=>{let ie=zr,Ee=$?.();V=T(...V);let Be=$?.();return Ee!==Be&&(T=Be,B(Ee),$=B=null),zr!=ie?new Promise((Je,nt)=>{Jr={resolve:Je,reject:nt}}):V};(()=>{for(let T of["_OrtAppendExecutionProvider","_OrtCreateSession","_OrtRun","_OrtRunWithBinding","_OrtBindInput"])s[T]=m(s[T],()=>s[T],$=>s[T]=$)})(),c!==void 0&&(s._OrtRun=c(s._OrtRun),s._OrtRunWithBinding=c(s._OrtRunWithBinding)),_=void 0};s.asyncInit=()=>{_?.()};var u,d,g=Object.assign({},s),h=(m,T)=>{throw T},x="";(a||n)&&(n?x=self.location.href:typeof document<"u"&&document.currentScript&&(x=document.currentScript.src),zc&&(x=zc),x=x.startsWith("blob:")?"":x.slice(0,x.replace(/[?#].*/,"").lastIndexOf("/")+1),n&&(d=m=>{var T=new XMLHttpRequest;return T.open("GET",m,!1),T.responseType="arraybuffer",T.send(null),new Uint8Array(T.response)}),u=async m=>{if(ne(m))return new Promise(($,B)=>{var V=new XMLHttpRequest;V.open("GET",m,!0),V.responseType="arraybuffer",V.onload=()=>{V.status==200||V.status==0&&V.response?$(V.response):B(V.status)},V.onerror=B,V.send(null)});var T=await fetch(m,{credentials:"same-origin"});if(T.ok)return T.arrayBuffer();throw Error(T.status+" : "+T.url)});var F=console.log.bind(console),v=console.error.bind(console),b=F,C=v;Object.assign(s,g),g=null;var y,P,I,f,E,D,O,U,W,z,X,J,q,re=s.wasmBinary,oe=!1,ne=m=>m.startsWith("file://");function ye(){return y.buffer!=f.buffer&&we(),f}function Y(){return y.buffer!=f.buffer&&we(),E}function H(){return y.buffer!=f.buffer&&we(),D}function R(){return y.buffer!=f.buffer&&we(),O}function L(){return y.buffer!=f.buffer&&we(),U}function ee(){return y.buffer!=f.buffer&&we(),W}function ue(){return y.buffer!=f.buffer&&we(),z}function ke(){return y.buffer!=f.buffer&&we(),q}if(i){let m=function(T){try{var $=T.data,B=$.Bb;if(B==="load"){let V=[];self.onmessage=ie=>V.push(ie),self.startWorker=()=>{postMessage({Bb:"loaded"});for(let ie of V)m(ie);self.onmessage=m};for(let ie of $.Rb)s[ie]&&!s[ie].proxy||(s[ie]=(...Ee)=>{postMessage({Bb:"callHandler",Qb:ie,args:Ee})},ie=="print"&&(b=s[ie]),ie=="printErr"&&(C=s[ie]));y=$.kc,we(),Le($.lc)}else if(B==="run"){Ys($.Ab),go($.Ab,0,0,1,0,0),zt(),me($.Ab),rt||(Aa(),rt=!0);try{Zs($.fc,$.Hb)}catch(V){if(V!="unwind")throw V}}else $.target!=="setimmediate"&&(B==="checkMailbox"?rt&&Ce():B&&(C(`worker: received unknown command ${B}`),C($)))}catch(V){throw $a(),V}};var Ie=m,Le,rt=!1;C=function(...T){T=T.join(" "),console.error(T)},self.alert=function(...T){postMessage({Bb:"alert",text:T.join(" "),ic:so()})},self.onunhandledrejection=T=>{throw T.reason||T},self.onmessage=m}function we(){var m=y.buffer;s.HEAP8=f=new Int8Array(m),s.HEAP16=D=new Int16Array(m),s.HEAPU8=E=new Uint8Array(m),s.HEAPU16=O=new Uint16Array(m),s.HEAP32=U=new Int32Array(m),s.HEAPU32=W=new Uint32Array(m),s.HEAPF32=z=new Float32Array(m),s.HEAPF64=q=new Float64Array(m),s.HEAP64=X=new BigInt64Array(m),s.HEAPU64=J=new BigUint64Array(m)}function A(){i?startWorker(s):ct.Ca()}i||(y=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0}),we());var le,ge=0,be=null;function Ae(){if(--ge==0&&be){var m=be;be=null,m()}}function ve(m){throw C(m="Aborted("+m+")"),oe=!0,m=new WebAssembly.RuntimeError(m+". Build with -sASSERTIONS for more info."),t(m),m}function pe(){return{a:{L:Te,Aa:fe,b:Dr,$:Rs,A:Ss,pa:Qr,X:k,Z:Q,qa:N,na:K,ga:Z,ma:ce,J:xe,Y:et,V:ut,oa:qe,W:wt,va:Nt,E:Fs,Q:Ns,O:As,D:ns,u:Wr,r:ze,P:Ue,z:S,R:G,ja:te,T:Ye,aa:Ze,M:He,F:It,ia:me,sa:yt,t:nr,Ba:Br,w:is,o:pr,l:Kr,c:Gr,n:Os,j:gn,v:Mn,p:eo,f:wn,s:bn,m:vn,e:xn,k:yn,i:to,g:Tn,d:Pn,da:En,ea:kn,fa:Cn,ba:Go,ca:wa,N:Ko,xa:Zi,ua:va,h:In,C:An,G:$n,ta:Fn,x:Dn,ra:On,U:ya,q:Sn,y:Ln,K:Bn,S:Ta,za:zn,ya:Pa,ka:Ea,la:Nn,_:pt,B:ka,I:Qo,ha:Ca,H:Sa,a:y,wa:Qe}}}var Pe={829644:(m,T,$,B,V)=>{if(s===void 0||!s.Eb)return 1;if((m=qt(Number(m>>>0))).startsWith("./")&&(m=m.substring(2)),!(m=s.Eb.get(m)))return 2;if(T=Number(T>>>0),$=Number($>>>0),B=Number(B>>>0),T+$>m.byteLength)return 3;try{let ie=m.subarray(T,T+$);switch(V){case 0:Y().set(ie,B>>>0);break;case 1:s.mc?s.mc(B,ie):s.bc(B,ie);break;default:return 4}return 0}catch{return 4}},830468:(m,T,$)=>{s.Ob(m,Y().subarray(T>>>0,T+$>>>0))},830532:()=>s.nc(),830574:m=>{s.Nb(m)},830611:()=>{s.Vb()},830642:()=>{s.Wb()},830671:()=>{s.$b()},830696:m=>s.Ub(m),830729:m=>s.Yb(m),830761:(m,T,$)=>{s.Kb(Number(m),Number(T),Number($),!0)},830824:(m,T,$)=>{s.Kb(Number(m),Number(T),Number($))},830881:()=>typeof wasmOffsetConverter<"u",830938:m=>{s.jb("Abs",m,void 0)},830989:m=>{s.jb("Neg",m,void 0)},831040:m=>{s.jb("Floor",m,void 0)},831093:m=>{s.jb("Ceil",m,void 0)},831145:m=>{s.jb("Reciprocal",m,void 0)},831203:m=>{s.jb("Sqrt",m,void 0)},831255:m=>{s.jb("Exp",m,void 0)},831306:m=>{s.jb("Erf",m,void 0)},831357:m=>{s.jb("Sigmoid",m,void 0)},831412:(m,T,$)=>{s.jb("HardSigmoid",m,{alpha:T,beta:$})},831491:m=>{s.jb("Log",m,void 0)},831542:m=>{s.jb("Sin",m,void 0)},831593:m=>{s.jb("Cos",m,void 0)},831644:m=>{s.jb("Tan",m,void 0)},831695:m=>{s.jb("Asin",m,void 0)},831747:m=>{s.jb("Acos",m,void 0)},831799:m=>{s.jb("Atan",m,void 0)},831851:m=>{s.jb("Sinh",m,void 0)},831903:m=>{s.jb("Cosh",m,void 0)},831955:m=>{s.jb("Asinh",m,void 0)},832008:m=>{s.jb("Acosh",m,void 0)},832061:m=>{s.jb("Atanh",m,void 0)},832114:m=>{s.jb("Tanh",m,void 0)},832166:m=>{s.jb("Not",m,void 0)},832217:(m,T,$)=>{s.jb("Clip",m,{min:T,max:$})},832286:m=>{s.jb("Clip",m,void 0)},832338:(m,T)=>{s.jb("Elu",m,{alpha:T})},832396:m=>{s.jb("Gelu",m,void 0)},832448:m=>{s.jb("Relu",m,void 0)},832500:(m,T)=>{s.jb("LeakyRelu",m,{alpha:T})},832564:(m,T)=>{s.jb("ThresholdedRelu",m,{alpha:T})},832634:(m,T)=>{s.jb("Cast",m,{to:T})},832692:m=>{s.jb("Add",m,void 0)},832743:m=>{s.jb("Sub",m,void 0)},832794:m=>{s.jb("Mul",m,void 0)},832845:m=>{s.jb("Div",m,void 0)},832896:m=>{s.jb("Pow",m,void 0)},832947:m=>{s.jb("Equal",m,void 0)},833e3:m=>{s.jb("Greater",m,void 0)},833055:m=>{s.jb("GreaterOrEqual",m,void 0)},833117:m=>{s.jb("Less",m,void 0)},833169:m=>{s.jb("LessOrEqual",m,void 0)},833228:(m,T,$,B,V)=>{s.jb("ReduceMean",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},833403:(m,T,$,B,V)=>{s.jb("ReduceMax",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},833577:(m,T,$,B,V)=>{s.jb("ReduceMin",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},833751:(m,T,$,B,V)=>{s.jb("ReduceProd",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},833926:(m,T,$,B,V)=>{s.jb("ReduceSum",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},834100:(m,T,$,B,V)=>{s.jb("ReduceL1",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},834273:(m,T,$,B,V)=>{s.jb("ReduceL2",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},834446:(m,T,$,B,V)=>{s.jb("ReduceLogSum",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},834623:(m,T,$,B,V)=>{s.jb("ReduceSumSquare",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},834803:(m,T,$,B,V)=>{s.jb("ReduceLogSumExp",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},834983:m=>{s.jb("Where",m,void 0)},835036:(m,T,$)=>{s.jb("Transpose",m,{perm:T?Array.from(L().subarray(Number(T)>>>0,Number($)>>>0)):[]})},835160:(m,T,$,B)=>{s.jb("DepthToSpace",m,{blocksize:T,mode:qt($),format:B?"NHWC":"NCHW"})},835293:(m,T,$,B)=>{s.jb("DepthToSpace",m,{blocksize:T,mode:qt($),format:B?"NHWC":"NCHW"})},835426:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr,Gs)=>{s.jb("ConvTranspose",m,{format:Je?"NHWC":"NCHW",autoPad:T,dilations:[$],group:B,kernelShape:[V],pads:[ie,Ee],strides:[Be],wIsConst:()=>!!ye()[nt>>>0],outputPadding:Tt?Array.from(L().subarray(Number(Tt)>>>0,Number(Dt)>>>0)):[],outputShape:Wt?Array.from(L().subarray(Number(Wt)>>>0,Number(xr)>>>0)):[],activation:qt(Gs)})},835859:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr)=>{s.jb("ConvTranspose",m,{format:Be?"NHWC":"NCHW",autoPad:T,dilations:Array.from(L().subarray(Number($)>>>0,2+(Number($)>>>0)>>>0)),group:B,kernelShape:Array.from(L().subarray(Number(V)>>>0,2+(Number(V)>>>0)>>>0)),pads:Array.from(L().subarray(Number(ie)>>>0,4+(Number(ie)>>>0)>>>0)),strides:Array.from(L().subarray(Number(Ee)>>>0,2+(Number(Ee)>>>0)>>>0)),wIsConst:()=>!!ye()[Je>>>0],outputPadding:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],outputShape:Dt?Array.from(L().subarray(Number(Dt)>>>0,Number(Wt)>>>0)):[],activation:qt(xr)})},836520:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr,Gs)=>{s.jb("ConvTranspose",m,{format:Je?"NHWC":"NCHW",autoPad:T,dilations:[$],group:B,kernelShape:[V],pads:[ie,Ee],strides:[Be],wIsConst:()=>!!ye()[nt>>>0],outputPadding:Tt?Array.from(L().subarray(Number(Tt)>>>0,Number(Dt)>>>0)):[],outputShape:Wt?Array.from(L().subarray(Number(Wt)>>>0,Number(xr)>>>0)):[],activation:qt(Gs)})},836953:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr)=>{s.jb("ConvTranspose",m,{format:Be?"NHWC":"NCHW",autoPad:T,dilations:Array.from(L().subarray(Number($)>>>0,2+(Number($)>>>0)>>>0)),group:B,kernelShape:Array.from(L().subarray(Number(V)>>>0,2+(Number(V)>>>0)>>>0)),pads:Array.from(L().subarray(Number(ie)>>>0,4+(Number(ie)>>>0)>>>0)),strides:Array.from(L().subarray(Number(Ee)>>>0,2+(Number(Ee)>>>0)>>>0)),wIsConst:()=>!!ye()[Je>>>0],outputPadding:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],outputShape:Dt?Array.from(L().subarray(Number(Dt)>>>0,Number(Wt)>>>0)):[],activation:qt(xr)})},837614:(m,T)=>{s.jb("GlobalAveragePool",m,{format:T?"NHWC":"NCHW"})},837705:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr)=>{s.jb("AveragePool",m,{format:xr?"NHWC":"NCHW",auto_pad:T,ceil_mode:$,count_include_pad:B,storage_order:V,dilations:ie?Array.from(L().subarray(Number(ie)>>>0,Number(Ee)>>>0)):[],kernel_shape:Be?Array.from(L().subarray(Number(Be)>>>0,Number(Je)>>>0)):[],pads:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],strides:Dt?Array.from(L().subarray(Number(Dt)>>>0,Number(Wt)>>>0)):[]})},838184:(m,T)=>{s.jb("GlobalAveragePool",m,{format:T?"NHWC":"NCHW"})},838275:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr)=>{s.jb("AveragePool",m,{format:xr?"NHWC":"NCHW",auto_pad:T,ceil_mode:$,count_include_pad:B,storage_order:V,dilations:ie?Array.from(L().subarray(Number(ie)>>>0,Number(Ee)>>>0)):[],kernel_shape:Be?Array.from(L().subarray(Number(Be)>>>0,Number(Je)>>>0)):[],pads:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],strides:Dt?Array.from(L().subarray(Number(Dt)>>>0,Number(Wt)>>>0)):[]})},838754:(m,T)=>{s.jb("GlobalMaxPool",m,{format:T?"NHWC":"NCHW"})},838841:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr)=>{s.jb("MaxPool",m,{format:xr?"NHWC":"NCHW",auto_pad:T,ceil_mode:$,count_include_pad:B,storage_order:V,dilations:ie?Array.from(L().subarray(Number(ie)>>>0,Number(Ee)>>>0)):[],kernel_shape:Be?Array.from(L().subarray(Number(Be)>>>0,Number(Je)>>>0)):[],pads:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],strides:Dt?Array.from(L().subarray(Number(Dt)>>>0,Number(Wt)>>>0)):[]})},839316:(m,T)=>{s.jb("GlobalMaxPool",m,{format:T?"NHWC":"NCHW"})},839403:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr)=>{s.jb("MaxPool",m,{format:xr?"NHWC":"NCHW",auto_pad:T,ceil_mode:$,count_include_pad:B,storage_order:V,dilations:ie?Array.from(L().subarray(Number(ie)>>>0,Number(Ee)>>>0)):[],kernel_shape:Be?Array.from(L().subarray(Number(Be)>>>0,Number(Je)>>>0)):[],pads:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],strides:Dt?Array.from(L().subarray(Number(Dt)>>>0,Number(Wt)>>>0)):[]})},839878:(m,T,$,B,V)=>{s.jb("Gemm",m,{alpha:T,beta:$,transA:B,transB:V})},839982:m=>{s.jb("MatMul",m,void 0)},840036:(m,T,$,B)=>{s.jb("ArgMax",m,{keepDims:!!T,selectLastIndex:!!$,axis:B})},840144:(m,T,$,B)=>{s.jb("ArgMin",m,{keepDims:!!T,selectLastIndex:!!$,axis:B})},840252:(m,T)=>{s.jb("Softmax",m,{axis:T})},840315:(m,T)=>{s.jb("Concat",m,{axis:T})},840375:(m,T,$,B,V)=>{s.jb("Split",m,{axis:T,numOutputs:$,splitSizes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},840531:m=>{s.jb("Expand",m,void 0)},840585:(m,T)=>{s.jb("Gather",m,{axis:Number(T)})},840656:(m,T)=>{s.jb("GatherElements",m,{axis:Number(T)})},840735:(m,T)=>{s.jb("GatherND",m,{batch_dims:Number(T)})},840814:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt)=>{s.jb("Resize",m,{antialias:T,axes:$?Array.from(L().subarray(Number($)>>>0,Number(B)>>>0)):[],coordinateTransformMode:qt(V),cubicCoeffA:ie,excludeOutside:Ee,extrapolationValue:Be,keepAspectRatioPolicy:qt(Je),mode:qt(nt),nearestMode:qt(Tt)})},841176:(m,T,$,B,V,ie,Ee)=>{s.jb("Slice",m,{starts:T?Array.from(L().subarray(Number(T)>>>0,Number($)>>>0)):[],ends:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[],axes:ie?Array.from(L().subarray(Number(ie)>>>0,Number(Ee)>>>0)):[]})},841440:m=>{s.jb("Tile",m,void 0)},841492:(m,T,$)=>{s.jb("InstanceNormalization",m,{epsilon:T,format:$?"NHWC":"NCHW"})},841606:(m,T,$)=>{s.jb("InstanceNormalization",m,{epsilon:T,format:$?"NHWC":"NCHW"})},841720:m=>{s.jb("Range",m,void 0)},841773:(m,T)=>{s.jb("Einsum",m,{equation:qt(T)})},841854:(m,T,$,B,V)=>{s.jb("Pad",m,{mode:T,value:$,pads:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},841997:(m,T,$,B,V,ie)=>{s.jb("BatchNormalization",m,{epsilon:T,momentum:$,spatial:!!V,trainingMode:!!B,format:ie?"NHWC":"NCHW"})},842166:(m,T,$,B,V,ie)=>{s.jb("BatchNormalization",m,{epsilon:T,momentum:$,spatial:!!V,trainingMode:!!B,format:ie?"NHWC":"NCHW"})},842335:(m,T,$)=>{s.jb("CumSum",m,{exclusive:Number(T),reverse:Number($)})},842432:(m,T,$)=>{s.jb("DequantizeLinear",m,{axis:T,blockSize:$})},842522:(m,T,$,B,V)=>{s.jb("GridSample",m,{align_corners:T,mode:qt($),padding_mode:qt(B),format:V?"NHWC":"NCHW"})},842692:(m,T,$,B,V)=>{s.jb("GridSample",m,{align_corners:T,mode:qt($),padding_mode:qt(B),format:V?"NHWC":"NCHW"})},842862:(m,T)=>{s.jb("ScatterND",m,{reduction:qt(T)})},842947:(m,T,$,B,V,ie,Ee,Be,Je)=>{s.jb("Attention",m,{numHeads:T,isUnidirectional:$,maskFilterValue:B,scale:V,doRotary:ie,qkvHiddenSizes:Ee?Array.from(L().subarray(Number(Be)>>>0,Number(Be)+Ee>>>0)):[],pastPresentShareBuffer:!!Je})},843219:m=>{s.jb("BiasAdd",m,void 0)},843274:m=>{s.jb("BiasSplitGelu",m,void 0)},843335:m=>{s.jb("FastGelu",m,void 0)},843391:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr,Gs,Wn)=>{s.jb("Conv",m,{format:Dt?"NHWC":"NCHW",auto_pad:T,dilations:$?Array.from(L().subarray(Number($)>>>0,Number(B)>>>0)):[],group:V,kernel_shape:ie?Array.from(L().subarray(Number(ie)>>>0,Number(Ee)>>>0)):[],pads:Be?Array.from(L().subarray(Number(Be)>>>0,Number(Je)>>>0)):[],strides:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],w_is_const:()=>!!ye()[Number(Wt)>>>0],activation:qt(xr),activation_params:Gs?Array.from(ue().subarray(Number(Gs)>>>0,Number(Wn)>>>0)):[]})},843975:m=>{s.jb("Gelu",m,void 0)},844027:(m,T,$,B,V,ie,Ee,Be,Je)=>{s.jb("GroupQueryAttention",m,{numHeads:T,kvNumHeads:$,scale:B,softcap:V,doRotary:ie,rotaryInterleaved:Ee,smoothSoftmax:Be,localWindowSize:Je})},844244:(m,T,$,B)=>{s.jb("LayerNormalization",m,{axis:T,epsilon:$,simplified:!!B})},844355:(m,T,$,B)=>{s.jb("LayerNormalization",m,{axis:T,epsilon:$,simplified:!!B})},844466:(m,T,$,B,V,ie)=>{s.jb("MatMulNBits",m,{k:T,n:$,accuracyLevel:B,bits:V,blockSize:ie})},844593:(m,T,$,B,V,ie)=>{s.jb("MultiHeadAttention",m,{numHeads:T,isUnidirectional:$,maskFilterValue:B,scale:V,doRotary:ie})},844752:(m,T)=>{s.jb("QuickGelu",m,{alpha:T})},844816:(m,T,$,B,V)=>{s.jb("RotaryEmbedding",m,{interleaved:!!T,numHeads:$,rotaryEmbeddingDim:B,scale:V})},844955:(m,T,$)=>{s.jb("SkipLayerNormalization",m,{epsilon:T,simplified:!!$})},845057:(m,T,$)=>{s.jb("SkipLayerNormalization",m,{epsilon:T,simplified:!!$})},845159:(m,T,$,B)=>{s.jb("GatherBlockQuantized",m,{gatherAxis:T,quantizeAxis:$,blockSize:B})},845280:m=>{s.Zb(m)},845314:(m,T)=>s.ac(Number(m),Number(T),s.Fb.dc,s.Fb.errors)};function fe(m,T,$){return Fr(async()=>{await s.Xb(Number(m),Number(T),Number($))})}function Te(){return typeof wasmOffsetConverter<"u"}class We{name="ExitStatus";constructor(T){this.message=`Program terminated with exit(${T})`,this.status=T}}var $e=m=>{m.terminate(),m.onmessage=()=>{}},Re=[],Ne=m=>{Ke.length==0&&(zs(),yr(Ke[0]));var T=Ke.pop();if(!T)return 6;bt.push(T),Lt[m.Ab]=T,T.Ab=m.Ab;var $={Bb:"run",fc:m.ec,Hb:m.Hb,Ab:m.Ab};return T.postMessage($,m.Mb),0},ot=0,De=(m,T,...$)=>{for(var B=2*$.length,V=Zo(),ie=wo(8*B),Ee=ie>>>3,Be=0;Be<$.length;Be++){var Je=$[Be];typeof Je=="bigint"?(X[Ee+2*Be]=1n,X[Ee+2*Be+1]=Je):(X[Ee+2*Be]=0n,ke()[Ee+2*Be+1>>>0]=Je)}return m=Da(m,0,B,ie,T),Mo(V),m};function Qe(m){if(i)return De(0,1,m);if(I=m,!(0<ot)){for(var T of bt)$e(T);for(T of Ke)$e(T);Ke=[],bt=[],Lt={},oe=!0}h(0,new We(m))}function je(m){if(i)return De(1,0,m);pt(m)}var pt=m=>{if(I=m,i)throw je(m),"unwind";Qe(m)},Ke=[],bt=[],At=[],Lt={},fr=m=>{var T=m.Ab;delete Lt[T],Ke.push(m),bt.splice(bt.indexOf(m),1),m.Ab=0,Xo(T)};function zt(){At.forEach(m=>m())}var yr=m=>new Promise(T=>{m.onmessage=V=>{var ie=(V=V.data).Bb;if(V.Gb&&V.Gb!=so()){var Ee=Lt[V.Gb];Ee?Ee.postMessage(V,V.Mb):C(`Internal error! Worker sent a message "${ie}" to target pthread ${V.Gb}, but that thread no longer exists!`)}else ie==="checkMailbox"?Ce():ie==="spawnThread"?Ne(V):ie==="cleanupThread"?fr(Lt[V.hc]):ie==="loaded"?(m.loaded=!0,T(m)):ie==="alert"?alert(`Thread ${V.ic}: ${V.text}`):V.target==="setimmediate"?m.postMessage(V):ie==="callHandler"?s[V.Qb](...V.args):ie&&C(`worker sent an unknown command ${ie}`)},m.onerror=V=>{throw C(`worker sent an error! ${V.filename}:${V.lineno}: ${V.message}`),V};var $,B=[];for($ of[])s.propertyIsEnumerable($)&&B.push($);m.postMessage({Bb:"load",Rb:B,kc:y,lc:P})});function zs(){var m=new Worker((()=>{let T=URL;return import.meta.url>"file:"&&import.meta.url<"file;"?new T("ort.bundle.min.mjs",import.meta.url):new URL(import.meta.url)})(),{type:"module",workerData:"em-pthread",name:"em-pthread"});Ke.push(m)}var Ys=m=>{we();var T=ee()[m+52>>>2>>>0];m=ee()[m+56>>>2>>>0],La(T,T-m),Mo(T)},Zs=(m,T)=>{ot=0,m=Ba(m,T),0<ot?I=m:Jo(m)};class or{constructor(T){this.Ib=T-24}}function Dr(m,T,$){var B=new or(m>>>=0);throw T>>>=0,$>>>=0,ee()[B.Ib+16>>>2>>>0]=0,ee()[B.Ib+4>>>2>>>0]=T,ee()[B.Ib+8>>>2>>>0]=$,m}function Yr(m,T,$,B){return i?De(2,1,m,T,$,B):Rs(m,T,$,B)}function Rs(m,T,$,B){if(m>>>=0,$>>>=0,B>>>=0,l===void 0)return 6;var V=[];return i&&V.length===0?Yr(m,T>>>=0,$,B):(m={ec:$,Ab:m,Hb:B,Mb:V},i?(m.Bb="spawnThread",postMessage(m,V),0):Ne(m))}var ft=typeof TextDecoder<"u"?new TextDecoder:void 0,Cs=(m,T=0,$=NaN)=>{var B=(T>>>=0)+$;for($=T;m[$]&&!($>=B);)++$;if(16<$-T&&m.buffer&&ft)return ft.decode(m.buffer instanceof ArrayBuffer?m.subarray(T,$):m.slice(T,$));for(B="";T<$;){var V=m[T++];if(128&V){var ie=63&m[T++];if((224&V)==192)B+=String.fromCharCode((31&V)<<6|ie);else{var Ee=63&m[T++];65536>(V=(240&V)==224?(15&V)<<12|ie<<6|Ee:(7&V)<<18|ie<<12|Ee<<6|63&m[T++])?B+=String.fromCharCode(V):(V-=65536,B+=String.fromCharCode(55296|V>>10,56320|1023&V))}}else B+=String.fromCharCode(V)}return B},qt=(m,T)=>(m>>>=0)?Cs(Y(),m,T):"";function Ss(m,T,$){return i?De(3,1,m,T,$):0}function Qr(m,T){if(i)return De(4,1,m,T)}var St=m=>{for(var T=0,$=0;$<m.length;++$){var B=m.charCodeAt($);127>=B?T++:2047>=B?T+=2:55296<=B&&57343>=B?(T+=4,++$):T+=3}return T},Xr=(m,T,$)=>{var B=Y();if(T>>>=0,0<$){var V=T;$=T+$-1;for(var ie=0;ie<m.length;++ie){var Ee=m.charCodeAt(ie);if(55296<=Ee&&57343>=Ee&&(Ee=65536+((1023&Ee)<<10)|1023&m.charCodeAt(++ie)),127>=Ee){if(T>=$)break;B[T++>>>0]=Ee}else{if(2047>=Ee){if(T+1>=$)break;B[T++>>>0]=192|Ee>>6}else{if(65535>=Ee){if(T+2>=$)break;B[T++>>>0]=224|Ee>>12}else{if(T+3>=$)break;B[T++>>>0]=240|Ee>>18,B[T++>>>0]=128|Ee>>12&63}B[T++>>>0]=128|Ee>>6&63}B[T++>>>0]=128|63&Ee}}B[T>>>0]=0,m=T-V}else m=0;return m};function k(m,T){if(i)return De(5,1,m,T)}function Q(m,T,$){if(i)return De(6,1,m,T,$)}function N(m,T,$){return i?De(7,1,m,T,$):0}function K(m,T){if(i)return De(8,1,m,T)}function Z(m,T,$){if(i)return De(9,1,m,T,$)}function ce(m,T,$,B){if(i)return De(10,1,m,T,$,B)}function xe(m,T,$,B){if(i)return De(11,1,m,T,$,B)}function et(m,T,$,B){if(i)return De(12,1,m,T,$,B)}function ut(m){if(i)return De(13,1,m)}function qe(m,T){if(i)return De(14,1,m,T)}function wt(m,T,$){if(i)return De(15,1,m,T,$)}var tt,gt,Nt=()=>ve(""),Qt=m=>{for(var T="";Y()[m>>>0];)T+=tt[Y()[m++>>>0]];return T},ur={},Or={},Cr={};function Lr(m,T,$={}){return(function(B,V,ie={}){var Ee=V.name;if(!B)throw new gt(`type "${Ee}" must have a positive integer typeid pointer`);if(Or.hasOwnProperty(B)){if(ie.Sb)return;throw new gt(`Cannot register type '${Ee}' twice`)}Or[B]=V,delete Cr[B],ur.hasOwnProperty(B)&&(V=ur[B],delete ur[B],V.forEach(Be=>Be()))})(m,T,$)}var _s=(m,T,$)=>{switch(T){case 1:return $?B=>ye()[B>>>0]:B=>Y()[B>>>0];case 2:return $?B=>H()[B>>>1>>>0]:B=>R()[B>>>1>>>0];case 4:return $?B=>L()[B>>>2>>>0]:B=>ee()[B>>>2>>>0];case 8:return $?B=>X[B>>>3]:B=>J[B>>>3];default:throw new TypeError(`invalid integer width (${T}): ${m}`)}};function Fs(m,T,$){$>>>=0,Lr(m>>>=0,{name:T=Qt(T>>>0),fromWireType:B=>B,toWireType:function(B,V){if(typeof V!="bigint"&&typeof V!="number")throw V=V===null?"null":(B=typeof V)=="object"||B==="array"||B==="function"?V.toString():""+V,new TypeError(`Cannot convert "${V}" to ${this.name}`);return typeof V=="number"&&(V=BigInt(V)),V},Cb:gr,readValueFromPointer:_s(T,$,T.indexOf("u")==-1),Db:null})}var gr=8;function Ns(m,T,$,B){Lr(m>>>=0,{name:T=Qt(T>>>0),fromWireType:function(V){return!!V},toWireType:function(V,ie){return ie?$:B},Cb:gr,readValueFromPointer:function(V){return this.fromWireType(Y()[V>>>0])},Db:null})}var as=[],Nr=[];function Gr(m){9<(m>>>=0)&&--Nr[m+1]==0&&(Nr[m]=void 0,as.push(m))}var ar=m=>{if(!m)throw new gt("Cannot use deleted val. handle = "+m);return Nr[m]},_r=m=>{switch(m){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:let T=as.pop()||Nr.length;return Nr[T]=m,Nr[T+1]=1,T}};function ps(m){return this.fromWireType(ee()[m>>>2>>>0])}var Is={name:"emscripten::val",fromWireType:m=>{var T=ar(m);return Gr(m),T},toWireType:(m,T)=>_r(T),Cb:gr,readValueFromPointer:ps,Db:null};function As(m){return Lr(m>>>0,Is)}var $s=(m,T)=>{switch(T){case 4:return function($){return this.fromWireType(ue()[$>>>2>>>0])};case 8:return function($){return this.fromWireType(ke()[$>>>3>>>0])};default:throw new TypeError(`invalid float width (${T}): ${m}`)}};function ns(m,T,$){$>>>=0,Lr(m>>>=0,{name:T=Qt(T>>>0),fromWireType:B=>B,toWireType:(B,V)=>V,Cb:gr,readValueFromPointer:$s(T,$),Db:null})}function Wr(m,T,$,B,V){if(m>>>=0,$>>>=0,T=Qt(T>>>0),V===-1&&(V=4294967295),V=Be=>Be,B===0){var ie=32-8*$;V=Be=>Be<<ie>>>ie}var Ee=T.includes("unsigned")?function(Be,Je){return Je>>>0}:function(Be,Je){return Je};Lr(m,{name:T,fromWireType:V,toWireType:Ee,Cb:gr,readValueFromPointer:_s(T,$,B!==0),Db:null})}function ze(m,T,$){function B(ie){var Ee=ee()[ie>>>2>>>0];return ie=ee()[ie+4>>>2>>>0],new V(ye().buffer,ie,Ee)}var V=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][T];Lr(m>>>=0,{name:$=Qt($>>>0),fromWireType:B,Cb:gr,readValueFromPointer:B},{Sb:!0})}function Ue(m,T){Lr(m>>>=0,{name:T=Qt(T>>>0),fromWireType:function($){for(var B,V=ee()[$>>>2>>>0],ie=$+4,Ee=ie,Be=0;Be<=V;++Be){var Je=ie+Be;Be!=V&&Y()[Je>>>0]!=0||(Ee=qt(Ee,Je-Ee),B===void 0?B=Ee:(B+="\0",B+=Ee),Ee=Je+1)}return es($),B},toWireType:function($,B){B instanceof ArrayBuffer&&(B=new Uint8Array(B));var V=typeof B=="string";if(!(V||B instanceof Uint8Array||B instanceof Uint8ClampedArray||B instanceof Int8Array))throw new gt("Cannot pass non-string to std::string");var ie=V?St(B):B.length,Ee=fo(4+ie+1),Be=Ee+4;if(ee()[Ee>>>2>>>0]=ie,V)Xr(B,Be,ie+1);else if(V)for(V=0;V<ie;++V){var Je=B.charCodeAt(V);if(255<Je)throw es(Ee),new gt("String has UTF-16 code units that do not fit in 8 bits");Y()[Be+V>>>0]=Je}else for(V=0;V<ie;++V)Y()[Be+V>>>0]=B[V];return $!==null&&$.push(es,Ee),Ee},Cb:gr,readValueFromPointer:ps,Db($){es($)}})}var at=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,Ht=(m,T)=>{for(var $=m>>1,B=$+T/2;!($>=B)&&R()[$>>>0];)++$;if(32<($<<=1)-m&&at)return at.decode(Y().slice(m,$));for($="",B=0;!(B>=T/2);++B){var V=H()[m+2*B>>>1>>>0];if(V==0)break;$+=String.fromCharCode(V)}return $},js=(m,T,$)=>{if($??=2147483647,2>$)return 0;var B=T;$=($-=2)<2*m.length?$/2:m.length;for(var V=0;V<$;++V){var ie=m.charCodeAt(V);H()[T>>>1>>>0]=ie,T+=2}return H()[T>>>1>>>0]=0,T-B},Ds=m=>2*m.length,Vs=(m,T)=>{for(var $=0,B="";!($>=T/4);){var V=L()[m+4*$>>>2>>>0];if(V==0)break;++$,65536<=V?(V-=65536,B+=String.fromCharCode(55296|V>>10,56320|1023&V)):B+=String.fromCharCode(V)}return B},Wo=(m,T,$)=>{if(T>>>=0,$??=2147483647,4>$)return 0;var B=T;$=B+$-4;for(var V=0;V<m.length;++V){var ie=m.charCodeAt(V);if(55296<=ie&&57343>=ie&&(ie=65536+((1023&ie)<<10)|1023&m.charCodeAt(++V)),L()[T>>>2>>>0]=ie,(T+=4)+4>$)break}return L()[T>>>2>>>0]=0,T-B},de=m=>{for(var T=0,$=0;$<m.length;++$){var B=m.charCodeAt($);55296<=B&&57343>=B&&++$,T+=4}return T};function S(m,T,$){if(m>>>=0,T>>>=0,$=Qt($>>>=0),T===2)var B=Ht,V=js,ie=Ds,Ee=Be=>R()[Be>>>1>>>0];else T===4&&(B=Vs,V=Wo,ie=de,Ee=Be=>ee()[Be>>>2>>>0]);Lr(m,{name:$,fromWireType:Be=>{for(var Je,nt=ee()[Be>>>2>>>0],Tt=Be+4,Dt=0;Dt<=nt;++Dt){var Wt=Be+4+Dt*T;Dt!=nt&&Ee(Wt)!=0||(Tt=B(Tt,Wt-Tt),Je===void 0?Je=Tt:(Je+="\0",Je+=Tt),Tt=Wt+T)}return es(Be),Je},toWireType:(Be,Je)=>{if(typeof Je!="string")throw new gt(`Cannot pass non-string to C++ string type ${$}`);var nt=ie(Je),Tt=fo(4+nt+T);return ee()[Tt>>>2>>>0]=nt/T,V(Je,Tt+4,nt+T),Be!==null&&Be.push(es,Tt),Tt},Cb:gr,readValueFromPointer:ps,Db(Be){es(Be)}})}function G(m,T){Lr(m>>>=0,{Tb:!0,name:T=Qt(T>>>0),Cb:0,fromWireType:()=>{},toWireType:()=>{}})}function te(m){go(m>>>0,!n,1,!a,131072,!1),zt()}var se=m=>{if(!oe)try{if(m(),!(0<ot))try{i?Jo(I):pt(I)}catch(T){T instanceof We||T=="unwind"||h(0,T)}}catch(T){T instanceof We||T=="unwind"||h(0,T)}};function me(m){m>>>=0,typeof Atomics.jc=="function"&&(Atomics.jc(L(),m>>>2,m).value.then(Ce),m+=128,Atomics.store(L(),m>>>2,1))}var Ce=()=>{var m=so();m&&(me(m),se(Yo))};function Ye(m,T){(m>>>=0)==T>>>0?setTimeout(Ce):i?postMessage({Gb:m,Bb:"checkMailbox"}):(m=Lt[m])&&m.postMessage({Bb:"checkMailbox"})}var Xe=[];function Ze(m,T,$,B,V){for(T>>>=0,B/=2,Xe.length=B,$=V>>>0>>>3,V=0;V<B;V++)Xe[V]=X[$+2*V]?X[$+2*V+1]:ke()[$+2*V+1>>>0];return(T?Pe[T]:Vn[m])(...Xe)}var He=()=>{ot=0};function It(m){m>>>=0,i?postMessage({Bb:"cleanupThread",hc:m}):fr(Lt[m])}function yt(m){}var Xt=(m,T)=>{var $=Or[m];if($===void 0)throw m=Ia(m),$=Qt(m),es(m),new gt(`${T} has unknown type ${$}`);return $},Mr=(m,T,$)=>{var B=[];return m=m.toWireType(B,$),B.length&&(ee()[T>>>2>>>0]=_r(B)),m};function nr(m,T,$){return T>>>=0,$>>>=0,m=ar(m>>>0),T=Xt(T,"emval::as"),Mr(T,$,m)}function Br(m,T){return T>>>=0,m=ar(m>>>0),(T=Xt(T,"emval::as")).toWireType(null,m)}var ir=m=>{try{m()}catch(T){ve(T)}},Tr=0,zr=null,Pr=0,Zr=[],Yt={},vr={},Sr=0,Jr=null,ms=[];function Fr(m){return(function(T){if(!oe){if(Tr===0){var $=!1,B=!1;T((V=0)=>{if(!oe&&(Pr=V,$=!0,B)){Tr=2,ir(()=>Ra(zr)),typeof MainLoop<"u"&&MainLoop.Pb&&MainLoop.resume(),V=!1;try{var ie=(function(){var Je=L()[zr+8>>>2>>>0];return Je=ct[vr[Je]],--ot,Je()})()}catch(Je){ie=Je,V=!0}var Ee=!1;if(!zr){var Be=Jr;Be&&(Jr=null,(V?Be.reject:Be.resolve)(ie),Ee=!0)}if(V&&!Ee)throw ie}}),B=!0,$||(Tr=1,zr=(function(){var V=fo(65548),ie=V+12;ee()[V>>>2>>>0]=ie,ee()[V+4>>>2>>>0]=ie+65536,ie=Zr[0];var Ee=Yt[ie];return Ee===void 0&&(Ee=Sr++,Yt[ie]=Ee,vr[Ee]=ie),ie=Ee,L()[V+8>>>2>>>0]=ie,V})(),typeof MainLoop<"u"&&MainLoop.Pb&&MainLoop.pause(),ir(()=>ea(zr)))}else Tr===2?(Tr=0,ir(ta),es(zr),zr=null,ms.forEach(se)):ve(`invalid state: ${Tr}`);return Pr}})(T=>{m().then(T)})}function is(m){return m>>>=0,Fr(async()=>{var T=await ar(m);return _r(T)})}var lr=[];function pr(m,T,$,B){return $>>>=0,B>>>=0,(m=lr[m>>>0])(null,T=ar(T>>>0),$,B)}var wr={},er=m=>{var T=wr[m];return T===void 0?Qt(m):T};function Kr(m,T,$,B,V){return $>>>=0,B>>>=0,V>>>=0,(m=lr[m>>>0])(T=ar(T>>>0),T[$=er($)],B,V)}var Ws=()=>typeof globalThis=="object"?globalThis:Function("return this")();function Os(m){return(m>>>=0)==0?_r(Ws()):(m=er(m),_r(Ws()[m]))}var hn=m=>{var T=lr.length;return lr.push(m),T},fn=(m,T)=>{for(var $=Array(m),B=0;B<m;++B)$[B]=Xt(ee()[T+4*B>>>2>>>0],"parameter "+B);return $},fa=(m,T)=>Object.defineProperty(T,"name",{value:m});function gn(m,T,$){var B=(T=fn(m,T>>>0)).shift();m--;var V=`return function (obj, func, destructorsRef, args) {
7
+ `)}});var wi=()=>({stdout:async e=>console.log(e),stderr:async e=>console.error(e)});var Vf=()=>kc()?gi():Cc()?Mi():wi();var Wf=()=>({stdout:async()=>{},stderr:async()=>{}});function Uf(){return()=>({stdout:e=>e,stderr:e=>e})}var la=class e{static writers={auto:Vf,void:Wf,deno:gi,node:Mi,console:wi};static colors={auto:Sc,colorful:()=>Ka,colorless:()=>Ga};static themes={auto:zf,basic:pi};static shapers={auto:jf,none:Uf,errors:hi,timestamp:fi};writer=e.writers.auto();colors=e.colors.auto();theme=e.themes.auto();shaper=e.shapers.auto();async log(...r){await this.writer.stdout(this.shaper(this).stdout(r).join(" "))}async error(...r){await this.writer.stderr(this.shaper(this).stderr(r).join(" "))}setWriter(r){return this.writer=r,this}setColors(r){return this.colors=r,this}setTheme(r){return this.theme=r,this}setShaper(...r){return this.shaper=Ha(...r),this}};var qa=class extends la{static dummy(){return new this().setWriter(la.writers.void())}rpcRequest=async({request:r,...t})=>{let s=this.colors.none;this.log(...this.#e(t),s(`${r.method}()`))};rpcError=async({request:r,error:t,...s})=>{this.error(...this.#e(s),`${r.method}()`,t)};#e({meta:r,label:t,remote:s}){let o=this.colors.mix(this.colors.blue,this.colors.dim),a=this.colors.mix(this.colors.cyan,this.colors.dim);return[r?this.#t(r):void 0,t||void 0,s===void 0?void 0:s?o("<-"):a("->")].filter(Boolean)}#t(r){let{headers:t}=r.request;return[this.colors.yellow(`[${r.ip}]`),this.colors.green(t.origin?t.origin:"(no-origin)")].join(" ")}};var Ls=class extends qa{rpcRequest=async()=>{}};var Ks;(function(e){e.version="2.0";function r(t){return"id"in t?t.id:null}e.getId=r,e.errorCodes={serverError:-32e3,unexposedError:-32001}})(Ks||(Ks={}));var To=class extends Error{name=this.constructor.name},Po=class extends Error{name=this.constructor.name};async function Gf({tap:e,request:r,action:t}){let s=Ks.getId(r);try{let o=await t();return s===null?null:{id:s,result:o,jsonrpc:Ks.version}}catch(o){return e.rpcError({request:r,error:o}),s===null?null:{id:s,jsonrpc:Ks.version,error:o instanceof To?{code:Ks.errorCodes.serverError,message:o.message}:{code:Ks.errorCodes.unexposedError,message:"unexposed error"}}}}function bi(e){let r=e.tap??new Ls;return async t=>{let s=t.method.split("."),o=Lf(e.fns,s),a=async()=>await o(...t.params);return r.rpcRequest({request:t}),await Gf({tap:r,request:t,action:a})}}var Kf=Symbol("tune"),VT=Symbol("query"),WT=Symbol("notify"),UT=Symbol("settings");function Hf(e){function r(t){let s={notify:void 0};return new Proxy((()=>{}),{apply:(o,a,n)=>e(t,n,s),get:(o,a)=>{if(a!=="then")return a===Kf?n=>(...i)=>e(t,i,{...s,...n}):a===WT?(...n)=>e(t,n,{...s,notify:!0}):a===VT?(...n)=>e(t,n,{...s,notify:!1}):a===UT?s:(o[a]||(o[a]=r([...t,a])),o[a])},set:(o,a,n)=>(o[a]=n,!0)})}return r([])}function Eo(e){let{endpoint:r,tap:t=new Ls}=e,s=1;return Hf(async(o,a,n)=>{let i=n.notify??e.notify??!1,l=n.transfer,c={jsonrpc:"2.0",method:o.join("."),params:a},_=i?c:{...c,id:s++};t.rpcRequest({request:_});let u=await r(_,{transfer:l});if(i&&!u)return null;if(!u)throw new Po("response was null, but shouldn't be, because the request was not a notification");if("error"in u)throw new Po(e.label?`${e.label}: ${u.error.message}`:u.error.message);return u.result})}function Qa(e){return Eo({endpoint:bi(e),tap:e.tap})}var ko=class{recv=_i();sendRequest=_i();sendResponse=_i();static makeEntangledPair({origin:r="example.e280.org"}={}){let t=new this,s=new this,o=[t.sendRequest.sub(n=>s.recv(n,{origin:r})),t.sendResponse.sub(n=>s.recv(n,{origin:r})),s.sendRequest.sub(n=>t.recv(n,{origin:r})),s.sendResponse.sub(n=>t.recv(n,{origin:r}))];return[t,s,()=>o.forEach(n=>n())]}};function vi(e,r){return e.addEventListener("message",r),()=>e.removeEventListener("message",r)}function qf(e,r){return async(t,{transfer:s}={})=>{if("id"in t){let o=ls();return r(t,s,o.promise),e.wait(t.id,t.method).then(a=>(o.resolve(a),a))}else{let o=Promise.resolve(null);return r(t,s,o),o}}}function Qf(e){let r=[],t=[];for(let s of Array.isArray(e)?e:[e])"method"in s?r.push(s):t.push(s);return{requests:r,responses:t}}async function Xf(e,r){let t=(await Promise.all(r.map(async s=>e(s)))).filter(s=>s!==null);return t.length===0?null:t.length===1?t[0]:t}var ca=class extends ko{dispose=ui();constructor(r){super(),this.dispose.schedule(this.sendRequest.sub((t,s)=>r.postMessage(t,s)),this.sendResponse.sub((t,s)=>r.postMessage(t,s)),vi(r,t=>this.recv(t.data,t)))}};var xi=class{remote;transfer;constructor(r){this.remote=r}};var Fc=Object.freeze({timeout:6e4,maxRequestBytes:1e7});var yi=class{timeout;pending=new Map;constructor(r){this.timeout=r}async wait(r,t){let s=ls();return this.pending.set(r,{method:t,deferred:s}),await Of(this.timeout,()=>s.promise).catch(o=>{throw o instanceof Ua&&(o.message=`request #${r} ${t}(), ${o.message}`),o})}deliverResponse(r){let t=this.pending.get(r.id);t&&("error"in r?t.deferred.reject(new Po(r.error.message)):t.deferred.resolve(r))}};var Co=class{options;remote;remoteEndpoint;dispose=ui();#e;constructor(r){this.options=r;let{conduit:t,tap:s}=r;this.#e=new yi(r.timeout??Fc.timeout),this.remoteEndpoint=qf(this.#e,t.sendRequest.pub.bind(t.sendRequest)),this.remote=Eo({endpoint:this.remoteEndpoint,tap:s&&Ec(s,{remote:!0})}),this.dispose.schedule(t.recv.sub(o=>this.recv(o)))}async recv(r){let t=new xi(this.remote),{conduit:s,rpc:o,tap:a}=this.options,{requests:n,responses:i}=Qf(r);for(let u of i)this.#e.deliverResponse(u);if(!o)return;let l=await o(t),c=bi({fns:l,tap:a&&Ec(a,{remote:!1})}),_=await Xf(c,n);_&&await s.sendResponse(_,t.transfer)}};var Hs={derive:{host:e=>({host:e.remote.host,get transfer(){return e.transfer},set transfer(r){e.transfer=r}}),work:e=>({work:e.remote,get transfer(){return e.transfer},set transfer(r){e.transfer=r}})},mock:{host:()=>({host:void 0,transfer:void 0}),work:()=>({work:void 0,transfer:void 0})}};var qs=new Ls;async function Jf(e,r,t={}){let s=t.tap??qs,o=new Co({tap:s,timeout:t.timeout??1/0,conduit:new ca(e.getSelf()),rpc:async a=>r(Hs.derive.host(a))});return await o.remote.infra.ready(),o.remote.host}var da=class{worker;messenger;constructor(r,t){this.worker=r,this.messenger=t}static async make(r,t){let s=t.tap??qs,o=t.label??"comrade",a=r.loadWorker(t.workerUrl,o),n=ls(),i={async ready(){n.resolve()}},l=new Co({tap:s,timeout:t.timeout??1/0,conduit:new ca(a),rpc:async c=>({infra:i,host:t.setupHost(Hs.derive.work(c))})});return await n.promise,new this(a,l)}get work(){return this.messenger.remote}terminate(){this.worker.terminate()}};var Ti=class{threads;static async make(r,t){let s=t.workerCount??r.guessOptimalThreadCount(),o=await Promise.all([...Array(s)].map(async(a,n)=>da.make(r,{...t,label:t.label??`${t.label??"comrade"}_${n+1}`})));return new this(o,{tap:t.tap})}work;#e=new Set;#t=[];constructor(r,t={}){this.threads=r;let s=t.tap??qs,o=async(a,n)=>this.#s({request:a,prom:ls(),transfer:n?.transfer});this.work=Eo({tap:s,endpoint:o}),r.forEach(a=>this.#e.add(a))}get threadCount(){return this.threads.length}terminate(){for(let r of this.threads)r.terminate()}#s(r){return this.#t.push(r),this.#r(),r.prom.promise}#r(){for(;this.#e.size>0&&this.#t.length>0;){let r=[...this.#e].pop();this.#e.delete(r);let t=this.#t.shift();this.#e.delete(r);let s=r.messenger.remoteEndpoint(t.request,{transfer:t.transfer});t.prom.entangle(s).finally(()=>{this.#e.add(r),this.#r()})}}};var Yf=e=>({thread:r=>da.make(e,r),cluster:r=>Ti.make(e,r),worker:(r,t={})=>Jf(e,r,t),work:r=>r,host:r=>r,mocks(r){let{setupWork:t,setupHost:s,tap:o=qs}=r,a=Hs.mock.host(),n=Hs.mock.work();return n.work=Qa({tap:o,fns:t(a)}),a.host=Qa({tap:o,fns:s(n)}),{workShell:n,hostShell:a,work:n.work,host:a.host}},mockWork(r,t=qs){let s=Hs.mock.host(),o=Hs.mock.work();return o.work=Qa({tap:t,fns:r(s)}),{workShell:o,hostShell:s,work:o.work,mockHost:a=>(s.host=Qa({tap:t,fns:a(o)}),{workShell:o,hostShell:s,work:o.work,host:s.host})}}});var Zf=()=>({getSelf(){return self},guessOptimalThreadCount(){let e=navigator.hardwareConcurrency??1;return Math.max(1,e-1)},loadWorker(e,r){return new window.Worker(e,{name:r,type:"module"})},async loadWasm(e){return WebAssembly.instantiateStreaming(fetch(e))}});var HT=Zf(),eg=Yf(HT);var Ac={};$f(Ac,{InferenceSession:()=>XT,TRACE:()=>fg,TRACE_FUNC_BEGIN:()=>Ei,TRACE_FUNC_END:()=>ki,Tensor:()=>Io,env:()=>QT,registerBackend:()=>tg});var Pi=new Map,So=[],tg=(e,r,t)=>{if(r&&typeof r.init=="function"&&typeof r.createInferenceSessionHandler=="function"){let s=Pi.get(e);if(s===void 0)Pi.set(e,{backend:r,priority:t});else{if(s.priority>t)return;if(s.priority===t&&s.backend!==r)throw new Error(`cannot register backend "${e}" using priority ${t}`)}if(t>=0){let o=So.indexOf(e);o!==-1&&So.splice(o,1);for(let a=0;a<So.length;a++)if(Pi.get(So[a]).priority<=t){So.splice(a,0,e);return}So.push(e)}return}throw new TypeError("not a valid backend")},qT=async e=>{let r=Pi.get(e);if(!r)return"backend not found.";if(r.initialized)return r.backend;if(r.aborted)return r.error;{let t=!!r.initPromise;try{return t||(r.initPromise=r.backend.init(e)),await r.initPromise,r.initialized=!0,r.backend}catch(s){return t||(r.error=`${s}`,r.aborted=!0),r.error}finally{delete r.initPromise}}},rg=async e=>{let r=e.executionProviders||[],t=r.map(l=>typeof l=="string"?l:l.name),s=t.length===0?So:t,o,a=[],n=new Set;for(let l of s){let c=await qT(l);typeof c=="string"?a.push({name:l,err:c}):(o||(o=c),o===c&&n.add(l))}if(!o)throw new Error(`no available backend found. ERR: ${a.map(l=>`[${l.name}] ${l.err}`).join(", ")}`);for(let{name:l,err:c}of a)t.includes(l)&&console.warn(`removing requested execution provider "${l}" from session options because it is not available: ${c}`);let i=r.filter(l=>n.has(typeof l=="string"?l:l.name));return[o,new Proxy(e,{get:(l,c)=>c==="executionProviders"?i:Reflect.get(l,c)})]};var sg="1.21.0";var og="warning",ts={wasm:{},webgl:{},webgpu:{},versions:{common:sg},set logLevel(e){if(e!==void 0){if(typeof e!="string"||["verbose","info","warning","error","fatal"].indexOf(e)===-1)throw new Error(`Unsupported logging level: ${e}`);og=e}},get logLevel(){return og}};Object.defineProperty(ts,"logLevel",{enumerable:!0});var QT=ts;var ag=(e,r)=>{let t=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);t.width=e.dims[3],t.height=e.dims[2];let s=t.getContext("2d");if(s!=null){let o,a;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(o=e.dims[2],a=e.dims[3]):(o=e.dims[3],a=e.dims[2]);let n=r?.format!==void 0?r.format:"RGB",i=r?.norm,l,c;i===void 0||i.mean===void 0?l=[255,255,255,255]:typeof i.mean=="number"?l=[i.mean,i.mean,i.mean,i.mean]:(l=[i.mean[0],i.mean[1],i.mean[2],0],i.mean[3]!==void 0&&(l[3]=i.mean[3])),i===void 0||i.bias===void 0?c=[0,0,0,0]:typeof i.bias=="number"?c=[i.bias,i.bias,i.bias,i.bias]:(c=[i.bias[0],i.bias[1],i.bias[2],0],i.bias[3]!==void 0&&(c[3]=i.bias[3]));let _=a*o,u=0,d=_,g=_*2,h=-1;n==="RGBA"?(u=0,d=_,g=_*2,h=_*3):n==="RGB"?(u=0,d=_,g=_*2):n==="RBG"&&(u=0,g=_,d=_*2);for(let x=0;x<a;x++)for(let F=0;F<o;F++){let v=(e.data[u++]-c[0])*l[0],b=(e.data[d++]-c[1])*l[1],C=(e.data[g++]-c[2])*l[2],y=h===-1?255:(e.data[h++]-c[3])*l[3];s.fillStyle="rgba("+v+","+b+","+C+","+y+")",s.fillRect(F,x,1,1)}if("toDataURL"in t)return t.toDataURL();throw new Error("toDataURL is not supported")}else throw new Error("Can not access image data")},ng=(e,r)=>{let t=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),s;if(t!=null){let o,a,n;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(o=e.dims[2],a=e.dims[1],n=e.dims[3]):(o=e.dims[3],a=e.dims[2],n=e.dims[1]);let i=r!==void 0&&r.format!==void 0?r.format:"RGB",l=r?.norm,c,_;l===void 0||l.mean===void 0?c=[255,255,255,255]:typeof l.mean=="number"?c=[l.mean,l.mean,l.mean,l.mean]:(c=[l.mean[0],l.mean[1],l.mean[2],255],l.mean[3]!==void 0&&(c[3]=l.mean[3])),l===void 0||l.bias===void 0?_=[0,0,0,0]:typeof l.bias=="number"?_=[l.bias,l.bias,l.bias,l.bias]:(_=[l.bias[0],l.bias[1],l.bias[2],0],l.bias[3]!==void 0&&(_[3]=l.bias[3]));let u=a*o;if(r!==void 0&&(r.format!==void 0&&n===4&&r.format!=="RGBA"||n===3&&r.format!=="RGB"&&r.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let d=4,g=0,h=1,x=2,F=3,v=0,b=u,C=u*2,y=-1;i==="RGBA"?(v=0,b=u,C=u*2,y=u*3):i==="RGB"?(v=0,b=u,C=u*2):i==="RBG"&&(v=0,C=u,b=u*2),s=t.createImageData(o,a);for(let P=0;P<a*o;g+=d,h+=d,x+=d,F+=d,P++)s.data[g]=(e.data[v++]-_[0])*c[0],s.data[h]=(e.data[b++]-_[1])*c[1],s.data[x]=(e.data[C++]-_[2])*c[2],s.data[F]=y===-1?255:(e.data[y++]-_[3])*c[3]}else throw new Error("Can not access image data");return s};var Ic=(e,r)=>{if(e===void 0)throw new Error("Image buffer must be defined");if(r.height===void 0||r.width===void 0)throw new Error("Image height and width must be defined");if(r.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");let{height:t,width:s}=r,o=r.norm??{mean:255,bias:0},a,n;typeof o.mean=="number"?a=[o.mean,o.mean,o.mean,o.mean]:a=[o.mean[0],o.mean[1],o.mean[2],o.mean[3]??255],typeof o.bias=="number"?n=[o.bias,o.bias,o.bias,o.bias]:n=[o.bias[0],o.bias[1],o.bias[2],o.bias[3]??0];let i=r.format!==void 0?r.format:"RGBA",l=r.tensorFormat!==void 0&&r.tensorFormat!==void 0?r.tensorFormat:"RGB",c=t*s,_=l==="RGBA"?new Float32Array(c*4):new Float32Array(c*3),u=4,d=0,g=1,h=2,x=3,F=0,v=c,b=c*2,C=-1;i==="RGB"&&(u=3,d=0,g=1,h=2,x=-1),l==="RGBA"?C=c*3:l==="RBG"?(F=0,b=c,v=c*2):l==="BGR"&&(b=0,v=c,F=c*2);for(let P=0;P<c;P++,d+=u,h+=u,g+=u,x+=u)_[F++]=(e[d]+n[0])/a[0],_[v++]=(e[g]+n[1])/a[1],_[b++]=(e[h]+n[2])/a[2],C!==-1&&x!==-1&&(_[C++]=(e[x]+n[3])/a[3]);return l==="RGBA"?new Vr("float32",_,[1,4,t,s]):new Vr("float32",_,[1,3,t,s])},ig=async(e,r)=>{let t=typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement,s=typeof ImageData<"u"&&e instanceof ImageData,o=typeof ImageBitmap<"u"&&e instanceof ImageBitmap,a=typeof e=="string",n,i=r??{},l=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},c=_=>typeof HTMLCanvasElement<"u"&&_ instanceof HTMLCanvasElement||_ instanceof OffscreenCanvas?_.getContext("2d"):null;if(t){let _=l();_.width=e.width,_.height=e.height;let u=c(_);if(u!=null){let d=e.height,g=e.width;if(r!==void 0&&r.resizedHeight!==void 0&&r.resizedWidth!==void 0&&(d=r.resizedHeight,g=r.resizedWidth),r!==void 0){if(i=r,r.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");i.tensorFormat="RGBA",i.height=d,i.width=g}else i.tensorFormat="RGBA",i.height=d,i.width=g;u.drawImage(e,0,0),n=u.getImageData(0,0,g,d).data}else throw new Error("Can not access image data")}else if(s){let _,u;if(r!==void 0&&r.resizedWidth!==void 0&&r.resizedHeight!==void 0?(_=r.resizedHeight,u=r.resizedWidth):(_=e.height,u=e.width),r!==void 0&&(i=r),i.format="RGBA",i.height=_,i.width=u,r!==void 0){let d=l();d.width=u,d.height=_;let g=c(d);if(g!=null)g.putImageData(e,0,0),n=g.getImageData(0,0,u,_).data;else throw new Error("Can not access image data")}else n=e.data}else if(o){if(r===void 0)throw new Error("Please provide image config with format for Imagebitmap");let _=l();_.width=e.width,_.height=e.height;let u=c(_);if(u!=null){let d=e.height,g=e.width;return u.drawImage(e,0,0,g,d),n=u.getImageData(0,0,g,d).data,i.height=d,i.width=g,Ic(n,i)}else throw new Error("Can not access image data")}else{if(a)return new Promise((_,u)=>{let d=l(),g=c(d);if(!e||!g)return u();let h=new Image;h.crossOrigin="Anonymous",h.src=e,h.onload=()=>{d.width=h.width,d.height=h.height,g.drawImage(h,0,0,d.width,d.height);let x=g.getImageData(0,0,d.width,d.height);i.height=d.height,i.width=d.width,_(Ic(x.data,i))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(n!==void 0)return Ic(n,i);throw new Error("Input data provided is not supported - aborted tensor creation")},lg=(e,r)=>{let{width:t,height:s,download:o,dispose:a}=r,n=[1,s,t,4];return new Vr({location:"texture",type:"float32",texture:e,dims:n,download:o,dispose:a})},cg=(e,r)=>{let{dataType:t,dims:s,download:o,dispose:a}=r;return new Vr({location:"gpu-buffer",type:t??"float32",gpuBuffer:e,dims:s,download:o,dispose:a})},dg=(e,r)=>{let{dataType:t,dims:s,download:o,dispose:a}=r;return new Vr({location:"ml-tensor",type:t??"float32",mlTensor:e,dims:s,download:o,dispose:a})},ug=(e,r,t)=>new Vr({location:"cpu-pinned",type:e,data:r,dims:t??[r.length]});var Fo=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),Xa=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),_g=!1,pg=()=>{if(!_g){_g=!0;let e=typeof BigInt64Array<"u"&&BigInt64Array.from,r=typeof BigUint64Array<"u"&&BigUint64Array.from,t=globalThis.Float16Array,s=typeof t<"u"&&t.from;e&&(Fo.set("int64",BigInt64Array),Xa.set(BigInt64Array,"int64")),r&&(Fo.set("uint64",BigUint64Array),Xa.set(BigUint64Array,"uint64")),s?(Fo.set("float16",t),Xa.set(t,"float16")):Fo.set("float16",Uint16Array)}};var mg=e=>{let r=1;for(let t=0;t<e.length;t++){let s=e[t];if(typeof s!="number"||!Number.isSafeInteger(s))throw new TypeError(`dims[${t}] must be an integer, got: ${s}`);if(s<0)throw new RangeError(`dims[${t}] must be a non-negative integer, got: ${s}`);r*=s}return r},hg=(e,r)=>{switch(e.location){case"cpu":return new Vr(e.type,e.data,r);case"cpu-pinned":return new Vr({location:"cpu-pinned",data:e.data,type:e.type,dims:r});case"texture":return new Vr({location:"texture",texture:e.texture,type:e.type,dims:r});case"gpu-buffer":return new Vr({location:"gpu-buffer",gpuBuffer:e.gpuBuffer,type:e.type,dims:r});case"ml-tensor":return new Vr({location:"ml-tensor",mlTensor:e.mlTensor,type:e.type,dims:r});default:throw new Error(`tensorReshape: tensor location ${e.location} is not supported`)}};var Vr=class{constructor(r,t,s){pg();let o,a;if(typeof r=="object"&&"location"in r)switch(this.dataLocation=r.location,o=r.type,a=r.dims,r.location){case"cpu-pinned":{let i=Fo.get(o);if(!i)throw new TypeError(`unsupported type "${o}" to create tensor from pinned buffer`);if(!(r.data instanceof i))throw new TypeError(`buffer should be of type ${i.name}`);this.cpuData=r.data;break}case"texture":{if(o!=="float32")throw new TypeError(`unsupported type "${o}" to create tensor from texture`);this.gpuTextureData=r.texture,this.downloader=r.download,this.disposer=r.dispose;break}case"gpu-buffer":{if(o!=="float32"&&o!=="float16"&&o!=="int32"&&o!=="int64"&&o!=="uint32"&&o!=="uint8"&&o!=="bool"&&o!=="uint4"&&o!=="int4")throw new TypeError(`unsupported type "${o}" to create tensor from gpu buffer`);this.gpuBufferData=r.gpuBuffer,this.downloader=r.download,this.disposer=r.dispose;break}case"ml-tensor":{if(o!=="float32"&&o!=="float16"&&o!=="int32"&&o!=="int64"&&o!=="uint32"&&o!=="uint64"&&o!=="int8"&&o!=="uint8"&&o!=="bool"&&o!=="uint4"&&o!=="int4")throw new TypeError(`unsupported type "${o}" to create tensor from MLTensor`);this.mlTensorData=r.mlTensor,this.downloader=r.download,this.disposer=r.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let i,l;if(typeof r=="string")if(o=r,l=s,r==="string"){if(!Array.isArray(t))throw new TypeError("A string tensor's data must be a string array.");i=t}else{let c=Fo.get(r);if(c===void 0)throw new TypeError(`Unsupported tensor type: ${r}.`);if(Array.isArray(t)){if(r==="float16"&&c===Uint16Array||r==="uint4"||r==="int4")throw new TypeError(`Creating a ${r} tensor from number array is not supported. Please use ${c.name} as data.`);r==="uint64"||r==="int64"?i=c.from(t,BigInt):i=c.from(t)}else if(t instanceof c)i=t;else if(t instanceof Uint8ClampedArray)if(r==="uint8")i=Uint8Array.from(t);else throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else if(r==="float16"&&t instanceof Uint16Array&&c!==Uint16Array)i=new globalThis.Float16Array(t.buffer,t.byteOffset,t.length);else throw new TypeError(`A ${o} tensor's data must be type of ${c}`)}else if(l=t,Array.isArray(r)){if(r.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");let c=typeof r[0];if(c==="string")o="string",i=r;else if(c==="boolean")o="bool",i=Uint8Array.from(r);else throw new TypeError(`Invalid element type of data array: ${c}.`)}else if(r instanceof Uint8ClampedArray)o="uint8",i=Uint8Array.from(r);else{let c=Xa.get(r.constructor);if(c===void 0)throw new TypeError(`Unsupported type for tensor data: ${r.constructor}.`);o=c,i=r}if(l===void 0)l=[i.length];else if(!Array.isArray(l))throw new TypeError("A tensor's dims must be a number array");a=l,this.cpuData=i,this.dataLocation="cpu"}let n=mg(a);if(this.cpuData&&n!==this.cpuData.length&&!((o==="uint4"||o==="int4")&&Math.ceil(n/2)===this.cpuData.length))throw new Error(`Tensor's size(${n}) does not match data length(${this.cpuData.length}).`);this.type=o,this.dims=a,this.size=n}static async fromImage(r,t){return ig(r,t)}static fromTexture(r,t){return lg(r,t)}static fromGpuBuffer(r,t){return cg(r,t)}static fromMLTensor(r,t){return dg(r,t)}static fromPinnedBuffer(r,t,s){return ug(r,t,s)}toDataURL(r){return ag(this,r)}toImageData(r){return ng(this,r)}get data(){if(this.ensureValid(),!this.cpuData)throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");return this.cpuData}get location(){return this.dataLocation}get texture(){if(this.ensureValid(),!this.gpuTextureData)throw new Error("The data is not stored as a WebGL texture.");return this.gpuTextureData}get gpuBuffer(){if(this.ensureValid(),!this.gpuBufferData)throw new Error("The data is not stored as a WebGPU buffer.");return this.gpuBufferData}get mlTensor(){if(this.ensureValid(),!this.mlTensorData)throw new Error("The data is not stored as a WebNN MLTensor.");return this.mlTensorData}async getData(r){switch(this.ensureValid(),this.dataLocation){case"cpu":case"cpu-pinned":return this.data;case"texture":case"gpu-buffer":case"ml-tensor":{if(!this.downloader)throw new Error("The current tensor is not created with a specified data downloader.");if(this.isDownloading)throw new Error("The current tensor is being downloaded.");try{this.isDownloading=!0;let t=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=t,r&&this.disposer&&(this.disposer(),this.disposer=void 0),t}finally{this.isDownloading=!1}}default:throw new Error(`cannot get data from location: ${this.dataLocation}`)}}dispose(){if(this.isDownloading)throw new Error("The current tensor is being downloaded.");this.disposer&&(this.disposer(),this.disposer=void 0),this.cpuData=void 0,this.gpuTextureData=void 0,this.gpuBufferData=void 0,this.mlTensorData=void 0,this.downloader=void 0,this.isDownloading=void 0,this.dataLocation="none"}ensureValid(){if(this.dataLocation==="none")throw new Error("The tensor is disposed.")}reshape(r){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return hg(this,r)}};var Io=Vr;var fg=(e,r)=>{(typeof ts.trace>"u"?!ts.wasm.trace:!ts.trace)||console.timeStamp(`${e}::ORT::${r}`)},gg=(e,r)=>{let t=new Error().stack?.split(/\r\n|\r|\n/g)||[],s=!1;for(let o=0;o<t.length;o++){if(s&&!t[o].includes("TRACE_FUNC")){let a=`FUNC_${e}::${t[o].trim().split(" ")[1]}`;r&&(a+=`::${r}`),fg("CPU",a);return}t[o].includes("TRACE_FUNC")&&(s=!0)}},Ei=e=>{(typeof ts.trace>"u"?!ts.wasm.trace:!ts.trace)||gg("BEGIN",e)},ki=e=>{(typeof ts.trace>"u"?!ts.wasm.trace:!ts.trace)||gg("END",e)};var Ci=class e{constructor(r){this.handler=r}async run(r,t,s){Ei();let o={},a={};if(typeof r!="object"||r===null||r instanceof Io||Array.isArray(r))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let n=!0;if(typeof t=="object"){if(t===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(t instanceof Io)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(t)){if(t.length===0)throw new TypeError("'fetches' cannot be an empty array.");n=!1;for(let c of t){if(typeof c!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(c)===-1)throw new RangeError(`'fetches' contains invalid output name: ${c}.`);o[c]=null}if(typeof s=="object"&&s!==null)a=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else{let c=!1,_=Object.getOwnPropertyNames(t);for(let u of this.outputNames)if(_.indexOf(u)!==-1){let d=t[u];(d===null||d instanceof Io)&&(c=!0,n=!1,o[u]=d)}if(c){if(typeof s=="object"&&s!==null)a=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else a=t}}else if(typeof t<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let c of this.inputNames)if(typeof r[c]>"u")throw new Error(`input '${c}' is missing in 'feeds'.`);if(n)for(let c of this.outputNames)o[c]=null;let i=await this.handler.run(r,o,a),l={};for(let c in i)if(Object.hasOwnProperty.call(i,c)){let _=i[c];_ instanceof Io?l[c]=_:l[c]=new Io(_.type,_.data,_.dims)}return ki(),l}async release(){return this.handler.dispose()}static async create(r,t,s,o){Ei();let a,n={};if(typeof r=="string"){if(a=r,typeof t=="object"&&t!==null)n=t;else if(typeof t<"u")throw new TypeError("'options' must be an object.")}else if(r instanceof Uint8Array){if(a=r,typeof t=="object"&&t!==null)n=t;else if(typeof t<"u")throw new TypeError("'options' must be an object.")}else if(r instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&r instanceof SharedArrayBuffer){let _=r,u=0,d=r.byteLength;if(typeof t=="object"&&t!==null)n=t;else if(typeof t=="number"){if(u=t,!Number.isSafeInteger(u))throw new RangeError("'byteOffset' must be an integer.");if(u<0||u>=_.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${_.byteLength}).`);if(d=r.byteLength-u,typeof s=="number"){if(d=s,!Number.isSafeInteger(d))throw new RangeError("'byteLength' must be an integer.");if(d<=0||u+d>_.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${_.byteLength-u}].`);if(typeof o=="object"&&o!==null)n=o;else if(typeof o<"u")throw new TypeError("'options' must be an object.")}else if(typeof s<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof t<"u")throw new TypeError("'options' must be an object.");a=new Uint8Array(_,u,d)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[i,l]=await rg(n),c=await i.createInferenceSessionHandler(a,l);return ki(),new e(c)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}};var XT=Ci;var Tu={};$f(Tu,{InferenceSession:()=>Xd,TRACE:()=>mn,TRACE_FUNC_BEGIN:()=>Es,TRACE_FUNC_END:()=>us,Tensor:()=>Ps,default:()=>fE,env:()=>Zt,registerBackend:()=>zo});var qd=Object.defineProperty,JT=Object.getOwnPropertyDescriptor,YT=Object.getOwnPropertyNames,ZT=Object.prototype.hasOwnProperty,eP=(e=>typeof yo<"u"?yo:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof yo<"u"?yo:r)[t]}):e)(function(e){if(typeof yo<"u")return yo.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')}),Ve=(e,r)=>()=>(e&&(r=e(e=0)),r),fa=(e,r)=>{for(var t in r)qd(e,t,{get:r[t],enumerable:!0})},tP=(e,r,t,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of YT(r))!ZT.call(e,o)&&o!==t&&qd(e,o,{get:()=>r[o],enumerable:!(s=JT(r,o))||s.enumerable});return e},pn=e=>tP(qd({},"__esModule",{value:!0}),e),Ja,lo,zo,Mg,Xb,Jb=Ve(()=>{"use strict";Ja=new Map,lo=[],zo=(e,r,t)=>{if(r&&typeof r.init=="function"&&typeof r.createInferenceSessionHandler=="function"){let s=Ja.get(e);if(s===void 0)Ja.set(e,{backend:r,priority:t});else{if(s.priority>t)return;if(s.priority===t&&s.backend!==r)throw new Error(`cannot register backend "${e}" using priority ${t}`)}if(t>=0){let o=lo.indexOf(e);o!==-1&&lo.splice(o,1);for(let a=0;a<lo.length;a++)if(Ja.get(lo[a]).priority<=t){lo.splice(a,0,e);return}lo.push(e)}return}throw new TypeError("not a valid backend")},Mg=async e=>{let r=Ja.get(e);if(!r)return"backend not found.";if(r.initialized)return r.backend;if(r.aborted)return r.error;{let t=!!r.initPromise;try{return t||(r.initPromise=r.backend.init(e)),await r.initPromise,r.initialized=!0,r.backend}catch(s){return t||(r.error=`${s}`,r.aborted=!0),r.error}finally{delete r.initPromise}}},Xb=async e=>{let r=e.executionProviders||[],t=r.map(l=>typeof l=="string"?l:l.name),s=t.length===0?lo:t,o,a=[],n=new Set;for(let l of s){let c=await Mg(l);typeof c=="string"?a.push({name:l,err:c}):(o||(o=c),o===c&&n.add(l))}if(!o)throw new Error(`no available backend found. ERR: ${a.map(l=>`[${l.name}] ${l.err}`).join(", ")}`);for(let{name:l,err:c}of a)t.includes(l)&&console.warn(`removing requested execution provider "${l}" from session options because it is not available: ${c}`);let i=r.filter(l=>n.has(typeof l=="string"?l:l.name));return[o,new Proxy(e,{get:(l,c)=>c==="executionProviders"?i:Reflect.get(l,c)})]}}),rP=Ve(()=>{"use strict";Jb()}),Yb,sP=Ve(()=>{"use strict";Yb="1.22.0-dev.20250409-89f8206ba4"}),$c,ds,Zb=Ve(()=>{"use strict";sP(),$c="warning",ds={wasm:{},webgl:{},webgpu:{},versions:{common:Yb},set logLevel(e){if(e!==void 0){if(typeof e!="string"||["verbose","info","warning","error","fatal"].indexOf(e)===-1)throw new Error(`Unsupported logging level: ${e}`);$c=e}},get logLevel(){return $c}},Object.defineProperty(ds,"logLevel",{enumerable:!0})}),Zt,oP=Ve(()=>{"use strict";Zb(),Zt=ds}),ev,tv,aP=Ve(()=>{"use strict";ev=(e,r)=>{let t=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);t.width=e.dims[3],t.height=e.dims[2];let s=t.getContext("2d");if(s!=null){let o,a;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(o=e.dims[2],a=e.dims[3]):(o=e.dims[3],a=e.dims[2]);let n=r?.format!==void 0?r.format:"RGB",i=r?.norm,l,c;i===void 0||i.mean===void 0?l=[255,255,255,255]:typeof i.mean=="number"?l=[i.mean,i.mean,i.mean,i.mean]:(l=[i.mean[0],i.mean[1],i.mean[2],0],i.mean[3]!==void 0&&(l[3]=i.mean[3])),i===void 0||i.bias===void 0?c=[0,0,0,0]:typeof i.bias=="number"?c=[i.bias,i.bias,i.bias,i.bias]:(c=[i.bias[0],i.bias[1],i.bias[2],0],i.bias[3]!==void 0&&(c[3]=i.bias[3]));let _=a*o,u=0,d=_,g=_*2,h=-1;n==="RGBA"?(u=0,d=_,g=_*2,h=_*3):n==="RGB"?(u=0,d=_,g=_*2):n==="RBG"&&(u=0,g=_,d=_*2);for(let x=0;x<a;x++)for(let F=0;F<o;F++){let v=(e.data[u++]-c[0])*l[0],b=(e.data[d++]-c[1])*l[1],C=(e.data[g++]-c[2])*l[2],y=h===-1?255:(e.data[h++]-c[3])*l[3];s.fillStyle="rgba("+v+","+b+","+C+","+y+")",s.fillRect(F,x,1,1)}if("toDataURL"in t)return t.toDataURL();throw new Error("toDataURL is not supported")}else throw new Error("Can not access image data")},tv=(e,r)=>{let t=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),s;if(t!=null){let o,a,n;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(o=e.dims[2],a=e.dims[1],n=e.dims[3]):(o=e.dims[3],a=e.dims[2],n=e.dims[1]);let i=r!==void 0&&r.format!==void 0?r.format:"RGB",l=r?.norm,c,_;l===void 0||l.mean===void 0?c=[255,255,255,255]:typeof l.mean=="number"?c=[l.mean,l.mean,l.mean,l.mean]:(c=[l.mean[0],l.mean[1],l.mean[2],255],l.mean[3]!==void 0&&(c[3]=l.mean[3])),l===void 0||l.bias===void 0?_=[0,0,0,0]:typeof l.bias=="number"?_=[l.bias,l.bias,l.bias,l.bias]:(_=[l.bias[0],l.bias[1],l.bias[2],0],l.bias[3]!==void 0&&(_[3]=l.bias[3]));let u=a*o;if(r!==void 0&&(r.format!==void 0&&n===4&&r.format!=="RGBA"||n===3&&r.format!=="RGB"&&r.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let d=4,g=0,h=1,x=2,F=3,v=0,b=u,C=u*2,y=-1;i==="RGBA"?(v=0,b=u,C=u*2,y=u*3):i==="RGB"?(v=0,b=u,C=u*2):i==="RBG"&&(v=0,C=u,b=u*2),s=t.createImageData(o,a);for(let P=0;P<a*o;g+=d,h+=d,x+=d,F+=d,P++)s.data[g]=(e.data[v++]-_[0])*c[0],s.data[h]=(e.data[b++]-_[1])*c[1],s.data[x]=(e.data[C++]-_[2])*c[2],s.data[F]=y===-1?255:(e.data[y++]-_[3])*c[3]}else throw new Error("Can not access image data");return s}}),Si,rv,sv,ov,av,nv,nP=Ve(()=>{"use strict";Qd(),Si=(e,r)=>{if(e===void 0)throw new Error("Image buffer must be defined");if(r.height===void 0||r.width===void 0)throw new Error("Image height and width must be defined");if(r.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");let{height:t,width:s}=r,o=r.norm??{mean:255,bias:0},a,n;typeof o.mean=="number"?a=[o.mean,o.mean,o.mean,o.mean]:a=[o.mean[0],o.mean[1],o.mean[2],o.mean[3]??255],typeof o.bias=="number"?n=[o.bias,o.bias,o.bias,o.bias]:n=[o.bias[0],o.bias[1],o.bias[2],o.bias[3]??0];let i=r.format!==void 0?r.format:"RGBA",l=r.tensorFormat!==void 0&&r.tensorFormat!==void 0?r.tensorFormat:"RGB",c=t*s,_=l==="RGBA"?new Float32Array(c*4):new Float32Array(c*3),u=4,d=0,g=1,h=2,x=3,F=0,v=c,b=c*2,C=-1;i==="RGB"&&(u=3,d=0,g=1,h=2,x=-1),l==="RGBA"?C=c*3:l==="RBG"?(F=0,b=c,v=c*2):l==="BGR"&&(b=0,v=c,F=c*2);for(let y=0;y<c;y++,d+=u,h+=u,g+=u,x+=u)_[F++]=(e[d]+n[0])/a[0],_[v++]=(e[g]+n[1])/a[1],_[b++]=(e[h]+n[2])/a[2],C!==-1&&x!==-1&&(_[C++]=(e[x]+n[3])/a[3]);return l==="RGBA"?new ss("float32",_,[1,4,t,s]):new ss("float32",_,[1,3,t,s])},rv=async(e,r)=>{let t=typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement,s=typeof ImageData<"u"&&e instanceof ImageData,o=typeof ImageBitmap<"u"&&e instanceof ImageBitmap,a=typeof e=="string",n,i=r??{},l=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},c=_=>typeof HTMLCanvasElement<"u"&&_ instanceof HTMLCanvasElement||_ instanceof OffscreenCanvas?_.getContext("2d"):null;if(t){let _=l();_.width=e.width,_.height=e.height;let u=c(_);if(u!=null){let d=e.height,g=e.width;if(r!==void 0&&r.resizedHeight!==void 0&&r.resizedWidth!==void 0&&(d=r.resizedHeight,g=r.resizedWidth),r!==void 0){if(i=r,r.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");i.tensorFormat="RGBA",i.height=d,i.width=g}else i.tensorFormat="RGBA",i.height=d,i.width=g;u.drawImage(e,0,0),n=u.getImageData(0,0,g,d).data}else throw new Error("Can not access image data")}else if(s){let _,u;if(r!==void 0&&r.resizedWidth!==void 0&&r.resizedHeight!==void 0?(_=r.resizedHeight,u=r.resizedWidth):(_=e.height,u=e.width),r!==void 0&&(i=r),i.format="RGBA",i.height=_,i.width=u,r!==void 0){let d=l();d.width=u,d.height=_;let g=c(d);if(g!=null)g.putImageData(e,0,0),n=g.getImageData(0,0,u,_).data;else throw new Error("Can not access image data")}else n=e.data}else if(o){if(r===void 0)throw new Error("Please provide image config with format for Imagebitmap");let _=l();_.width=e.width,_.height=e.height;let u=c(_);if(u!=null){let d=e.height,g=e.width;return u.drawImage(e,0,0,g,d),n=u.getImageData(0,0,g,d).data,i.height=d,i.width=g,Si(n,i)}else throw new Error("Can not access image data")}else{if(a)return new Promise((_,u)=>{let d=l(),g=c(d);if(!e||!g)return u();let h=new Image;h.crossOrigin="Anonymous",h.src=e,h.onload=()=>{d.width=h.width,d.height=h.height,g.drawImage(h,0,0,d.width,d.height);let x=g.getImageData(0,0,d.width,d.height);i.height=d.height,i.width=d.width,_(Si(x.data,i))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(n!==void 0)return Si(n,i);throw new Error("Input data provided is not supported - aborted tensor creation")},sv=(e,r)=>{let{width:t,height:s,download:o,dispose:a}=r,n=[1,s,t,4];return new ss({location:"texture",type:"float32",texture:e,dims:n,download:o,dispose:a})},ov=(e,r)=>{let{dataType:t,dims:s,download:o,dispose:a}=r;return new ss({location:"gpu-buffer",type:t??"float32",gpuBuffer:e,dims:s,download:o,dispose:a})},av=(e,r)=>{let{dataType:t,dims:s,download:o,dispose:a}=r;return new ss({location:"ml-tensor",type:t??"float32",mlTensor:e,dims:s,download:o,dispose:a})},nv=(e,r,t)=>new ss({location:"cpu-pinned",type:e,data:r,dims:t??[r.length]})}),Lo,ln,Dc,iv,iP=Ve(()=>{"use strict";Lo=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),ln=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),Dc=!1,iv=()=>{if(!Dc){Dc=!0;let e=typeof BigInt64Array<"u"&&BigInt64Array.from,r=typeof BigUint64Array<"u"&&BigUint64Array.from,t=globalThis.Float16Array,s=typeof t<"u"&&t.from;e&&(Lo.set("int64",BigInt64Array),ln.set(BigInt64Array,"int64")),r&&(Lo.set("uint64",BigUint64Array),ln.set(BigUint64Array,"uint64")),s?(Lo.set("float16",t),ln.set(t,"float16")):Lo.set("float16",Uint16Array)}}}),lv,cv,lP=Ve(()=>{"use strict";Qd(),lv=e=>{let r=1;for(let t=0;t<e.length;t++){let s=e[t];if(typeof s!="number"||!Number.isSafeInteger(s))throw new TypeError(`dims[${t}] must be an integer, got: ${s}`);if(s<0)throw new RangeError(`dims[${t}] must be a non-negative integer, got: ${s}`);r*=s}return r},cv=(e,r)=>{switch(e.location){case"cpu":return new ss(e.type,e.data,r);case"cpu-pinned":return new ss({location:"cpu-pinned",data:e.data,type:e.type,dims:r});case"texture":return new ss({location:"texture",texture:e.texture,type:e.type,dims:r});case"gpu-buffer":return new ss({location:"gpu-buffer",gpuBuffer:e.gpuBuffer,type:e.type,dims:r});case"ml-tensor":return new ss({location:"ml-tensor",mlTensor:e.mlTensor,type:e.type,dims:r});default:throw new Error(`tensorReshape: tensor location ${e.location} is not supported`)}}}),ss,Qd=Ve(()=>{"use strict";aP(),nP(),iP(),lP(),ss=class{constructor(e,r,t){iv();let s,o;if(typeof e=="object"&&"location"in e)switch(this.dataLocation=e.location,s=e.type,o=e.dims,e.location){case"cpu-pinned":{let n=Lo.get(s);if(!n)throw new TypeError(`unsupported type "${s}" to create tensor from pinned buffer`);if(!(e.data instanceof n))throw new TypeError(`buffer should be of type ${n.name}`);this.cpuData=e.data;break}case"texture":{if(s!=="float32")throw new TypeError(`unsupported type "${s}" to create tensor from texture`);this.gpuTextureData=e.texture,this.downloader=e.download,this.disposer=e.dispose;break}case"gpu-buffer":{if(s!=="float32"&&s!=="float16"&&s!=="int32"&&s!=="int64"&&s!=="uint32"&&s!=="uint8"&&s!=="bool"&&s!=="uint4"&&s!=="int4")throw new TypeError(`unsupported type "${s}" to create tensor from gpu buffer`);this.gpuBufferData=e.gpuBuffer,this.downloader=e.download,this.disposer=e.dispose;break}case"ml-tensor":{if(s!=="float32"&&s!=="float16"&&s!=="int32"&&s!=="int64"&&s!=="uint32"&&s!=="uint64"&&s!=="int8"&&s!=="uint8"&&s!=="bool"&&s!=="uint4"&&s!=="int4")throw new TypeError(`unsupported type "${s}" to create tensor from MLTensor`);this.mlTensorData=e.mlTensor,this.downloader=e.download,this.disposer=e.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let n,i;if(typeof e=="string")if(s=e,i=t,e==="string"){if(!Array.isArray(r))throw new TypeError("A string tensor's data must be a string array.");n=r}else{let l=Lo.get(e);if(l===void 0)throw new TypeError(`Unsupported tensor type: ${e}.`);if(Array.isArray(r)){if(e==="float16"&&l===Uint16Array||e==="uint4"||e==="int4")throw new TypeError(`Creating a ${e} tensor from number array is not supported. Please use ${l.name} as data.`);e==="uint64"||e==="int64"?n=l.from(r,BigInt):n=l.from(r)}else if(r instanceof l)n=r;else if(r instanceof Uint8ClampedArray)if(e==="uint8")n=Uint8Array.from(r);else throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else if(e==="float16"&&r instanceof Uint16Array&&l!==Uint16Array)n=new globalThis.Float16Array(r.buffer,r.byteOffset,r.length);else throw new TypeError(`A ${s} tensor's data must be type of ${l}`)}else if(i=r,Array.isArray(e)){if(e.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");let l=typeof e[0];if(l==="string")s="string",n=e;else if(l==="boolean")s="bool",n=Uint8Array.from(e);else throw new TypeError(`Invalid element type of data array: ${l}.`)}else if(e instanceof Uint8ClampedArray)s="uint8",n=Uint8Array.from(e);else{let l=ln.get(e.constructor);if(l===void 0)throw new TypeError(`Unsupported type for tensor data: ${e.constructor}.`);s=l,n=e}if(i===void 0)i=[n.length];else if(!Array.isArray(i))throw new TypeError("A tensor's dims must be a number array");o=i,this.cpuData=n,this.dataLocation="cpu"}let a=lv(o);if(this.cpuData&&a!==this.cpuData.length&&!((s==="uint4"||s==="int4")&&Math.ceil(a/2)===this.cpuData.length))throw new Error(`Tensor's size(${a}) does not match data length(${this.cpuData.length}).`);this.type=s,this.dims=o,this.size=a}static async fromImage(e,r){return rv(e,r)}static fromTexture(e,r){return sv(e,r)}static fromGpuBuffer(e,r){return ov(e,r)}static fromMLTensor(e,r){return av(e,r)}static fromPinnedBuffer(e,r,t){return nv(e,r,t)}toDataURL(e){return ev(this,e)}toImageData(e){return tv(this,e)}get data(){if(this.ensureValid(),!this.cpuData)throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");return this.cpuData}get location(){return this.dataLocation}get texture(){if(this.ensureValid(),!this.gpuTextureData)throw new Error("The data is not stored as a WebGL texture.");return this.gpuTextureData}get gpuBuffer(){if(this.ensureValid(),!this.gpuBufferData)throw new Error("The data is not stored as a WebGPU buffer.");return this.gpuBufferData}get mlTensor(){if(this.ensureValid(),!this.mlTensorData)throw new Error("The data is not stored as a WebNN MLTensor.");return this.mlTensorData}async getData(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 new Error("The current tensor is not created with a specified data downloader.");if(this.isDownloading)throw new Error("The current tensor is being downloaded.");try{this.isDownloading=!0;let r=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=r,e&&this.disposer&&(this.disposer(),this.disposer=void 0),r}finally{this.isDownloading=!1}}default:throw new Error(`cannot get data from location: ${this.dataLocation}`)}}dispose(){if(this.isDownloading)throw new Error("The current tensor is being downloaded.");this.disposer&&(this.disposer(),this.disposer=void 0),this.cpuData=void 0,this.gpuTextureData=void 0,this.gpuBufferData=void 0,this.mlTensorData=void 0,this.downloader=void 0,this.isDownloading=void 0,this.dataLocation="none"}ensureValid(){if(this.dataLocation==="none")throw new Error("The tensor is disposed.")}reshape(e){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return cv(this,e)}}}),Ps,dv=Ve(()=>{"use strict";Qd(),Ps=ss}),mn,Oc,Es,us,uv=Ve(()=>{"use strict";Zb(),mn=(e,r)=>{(typeof ds.trace>"u"?!ds.wasm.trace:!ds.trace)||console.timeStamp(`${e}::ORT::${r}`)},Oc=(e,r)=>{let t=new Error().stack?.split(/\r\n|\r|\n/g)||[],s=!1;for(let o=0;o<t.length;o++){if(s&&!t[o].includes("TRACE_FUNC")){let a=`FUNC_${e}::${t[o].trim().split(" ")[1]}`;r&&(a+=`::${r}`),mn("CPU",a);return}t[o].includes("TRACE_FUNC")&&(s=!0)}},Es=e=>{(typeof ds.trace>"u"?!ds.wasm.trace:!ds.trace)||Oc("BEGIN",e)},us=e=>{(typeof ds.trace>"u"?!ds.wasm.trace:!ds.trace)||Oc("END",e)}}),_v,cP=Ve(()=>{"use strict";Jb(),dv(),uv(),_v=class pv{constructor(r){this.handler=r}async run(r,t,s){Es();let o={},a={};if(typeof r!="object"||r===null||r instanceof Ps||Array.isArray(r))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let n=!0;if(typeof t=="object"){if(t===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(t instanceof Ps)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(t)){if(t.length===0)throw new TypeError("'fetches' cannot be an empty array.");n=!1;for(let c of t){if(typeof c!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(c)===-1)throw new RangeError(`'fetches' contains invalid output name: ${c}.`);o[c]=null}if(typeof s=="object"&&s!==null)a=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else{let c=!1,_=Object.getOwnPropertyNames(t);for(let u of this.outputNames)if(_.indexOf(u)!==-1){let d=t[u];(d===null||d instanceof Ps)&&(c=!0,n=!1,o[u]=d)}if(c){if(typeof s=="object"&&s!==null)a=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else a=t}}else if(typeof t<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let c of this.inputNames)if(typeof r[c]>"u")throw new Error(`input '${c}' is missing in 'feeds'.`);if(n)for(let c of this.outputNames)o[c]=null;let i=await this.handler.run(r,o,a),l={};for(let c in i)if(Object.hasOwnProperty.call(i,c)){let _=i[c];_ instanceof Ps?l[c]=_:l[c]=new Ps(_.type,_.data,_.dims)}return us(),l}async release(){return this.handler.dispose()}static async create(r,t,s,o){Es();let a,n={};if(typeof r=="string"){if(a=r,typeof t=="object"&&t!==null)n=t;else if(typeof t<"u")throw new TypeError("'options' must be an object.")}else if(r instanceof Uint8Array){if(a=r,typeof t=="object"&&t!==null)n=t;else if(typeof t<"u")throw new TypeError("'options' must be an object.")}else if(r instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&r instanceof SharedArrayBuffer){let _=r,u=0,d=r.byteLength;if(typeof t=="object"&&t!==null)n=t;else if(typeof t=="number"){if(u=t,!Number.isSafeInteger(u))throw new RangeError("'byteOffset' must be an integer.");if(u<0||u>=_.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${_.byteLength}).`);if(d=r.byteLength-u,typeof s=="number"){if(d=s,!Number.isSafeInteger(d))throw new RangeError("'byteLength' must be an integer.");if(d<=0||u+d>_.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${_.byteLength-u}].`);if(typeof o=="object"&&o!==null)n=o;else if(typeof o<"u")throw new TypeError("'options' must be an object.")}else if(typeof s<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof t<"u")throw new TypeError("'options' must be an object.");a=new Uint8Array(_,u,d)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[i,l]=await Xb(n),c=await i.createInferenceSessionHandler(a,l);return us(),new pv(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}}}),Xd,dP=Ve(()=>{"use strict";cP(),Xd=_v}),uP=Ve(()=>{"use strict"}),_P=Ve(()=>{"use strict"}),pP=Ve(()=>{"use strict"}),mP=Ve(()=>{"use strict"}),mv={};fa(mv,{InferenceSession:()=>Xd,TRACE:()=>mn,TRACE_FUNC_BEGIN:()=>Es,TRACE_FUNC_END:()=>us,Tensor:()=>Ps,env:()=>Zt,registerBackend:()=>zo});var ks=Ve(()=>{"use strict";rP(),oP(),dP(),dv(),uP(),_P(),uv(),pP(),mP()}),Jd=Ve(()=>{"use strict"}),hv={};fa(hv,{default:()=>fv});var Lc,Bc,fv,hP=Ve(()=>{"use strict";v0(),Vo(),Yd(),Lc="ort-wasm-proxy-worker",Bc=globalThis.self?.name===Lc,Bc&&(self.onmessage=e=>{let{type:r,in:t}=e.data;try{switch(r){case"init-wasm":Zd(t.wasm).then(()=>{gu(t).then(()=>{postMessage({type:r})},s=>{postMessage({type:r,err:s})})},s=>{postMessage({type:r,err:s})});break;case"init-ep":{let{epName:s,env:o}=t;Mu(o,s).then(()=>{postMessage({type:r})},a=>{postMessage({type:r,err:a})});break}case"copy-from":{let{buffer:s}=t,o=Ji(s);postMessage({type:r,out:o});break}case"create":{let{model:s,options:o}=t;wu(s,o).then(a=>{postMessage({type:r,out:a})},a=>{postMessage({type:r,err:a})});break}case"release":bu(t),postMessage({type:r});break;case"run":{let{sessionId:s,inputIndices:o,inputs:a,outputIndices:n,options:i}=t;vu(s,o,a,n,new Array(n.length).fill(null),i).then(l=>{l.some(c=>c[3]!=="cpu")?postMessage({type:r,err:"Proxy does not support non-cpu tensor location."}):postMessage({type:r,out:l},yu([...a,...l]))},l=>{postMessage({type:r,err:l})});break}case"end-profiling":xu(t),postMessage({type:r});break;default:}}catch(s){postMessage({type:r,err:s})}}),fv=Bc?null:e=>new Worker(e??rs,{type:"module",name:Lc})}),gv={};fa(gv,{default:()=>Mv});var zc,Rc,Mv,wg,fP=Ve(()=>{"use strict";Rc=(zc=import.meta.url,async function(e={}){var r,t,s=e,o=new Promise((m,T)=>{r=m,t=T}),a=typeof window=="object",n=typeof WorkerGlobalScope<"u",i=n&&self.name?.startsWith("em-pthread");s.mountExternalData=(m,T)=>{m.startsWith("./")&&(m=m.substring(2)),(s.Eb||(s.Eb=new Map)).set(m,T)},s.unmountExternalData=()=>{delete s.Eb};var l=globalThis.SharedArrayBuffer??new WebAssembly.Memory({initial:0,maximum:0,pc:!0}).buffer.constructor;let c=m=>async(...T)=>{try{if(s.Fb)throw Error("Session already started");let $=s.Fb={dc:T[0],errors:[]},B=await m(...T);if(s.Fb!==$)throw Error("Session mismatch");s.Jb?.flush();let V=$.errors;if(0<V.length){let ie=await Promise.all(V);if(ie=ie.filter(Ee=>Ee),0<ie.length)throw Error(ie.join(`
8
+ `))}return B}finally{s.Fb=null}};s.jsepInit=(m,T)=>{if(m==="webgpu"){[s.Jb,s.Ub,s.Yb,s.Kb,s.Xb,s.jb,s.Zb,s.ac,s.Vb,s.Wb,s.$b]=T;let $=s.Jb;s.jsepRegisterBuffer=(B,V,ie,Ee)=>$.registerBuffer(B,V,ie,Ee),s.jsepGetBuffer=B=>$.getBuffer(B),s.jsepCreateDownloader=(B,V,ie)=>$.createDownloader(B,V,ie),s.jsepOnCreateSession=B=>{$.onCreateSession(B)},s.jsepOnReleaseSession=B=>{$.onReleaseSession(B)},s.jsepOnRunStart=B=>$.onRunStart(B),s.bc=(B,V)=>{$.upload(B,V)}}else if(m==="webnn"){let $=T[0];[s.nc,s.Nb,s.webnnEnsureTensor,s.Ob,s.webnnDownloadTensor]=T.slice(1),s.webnnReleaseTensorId=s.Nb,s.webnnUploadTensor=s.Ob,s.webnnOnRunStart=B=>$.onRunStart(B),s.webnnOnRunEnd=$.onRunEnd.bind($),s.webnnRegisterMLContext=(B,V)=>{$.registerMLContext(B,V)},s.webnnOnReleaseSession=B=>{$.onReleaseSession(B)},s.webnnCreateMLTensorDownloader=(B,V)=>$.createMLTensorDownloader(B,V),s.webnnRegisterMLTensor=(B,V,ie,Ee)=>$.registerMLTensor(B,V,ie,Ee),s.webnnCreateMLContext=B=>$.createMLContext(B),s.webnnRegisterMLConstant=(B,V,ie,Ee,Be,Je)=>$.registerMLConstant(B,V,ie,Ee,Be,s.Eb,Je),s.webnnRegisterGraphInput=$.registerGraphInput.bind($),s.webnnIsGraphInput=$.isGraphInput.bind($),s.webnnCreateTemporaryTensor=$.createTemporaryTensor.bind($),s.webnnIsInt64Supported=$.isInt64Supported.bind($)}};let _=()=>{let m=(T,$,B)=>(...V)=>{let ie=zr,Ee=$?.();V=T(...V);let Be=$?.();return Ee!==Be&&(T=Be,B(Ee),$=B=null),zr!=ie?new Promise((Je,nt)=>{Jr={resolve:Je,reject:nt}}):V};(()=>{for(let T of["_OrtAppendExecutionProvider","_OrtCreateSession","_OrtRun","_OrtRunWithBinding","_OrtBindInput"])s[T]=m(s[T],()=>s[T],$=>s[T]=$)})(),c!==void 0&&(s._OrtRun=c(s._OrtRun),s._OrtRunWithBinding=c(s._OrtRunWithBinding)),_=void 0};s.asyncInit=()=>{_?.()};var u,d,g=Object.assign({},s),h=(m,T)=>{throw T},x="";(a||n)&&(n?x=self.location.href:typeof document<"u"&&document.currentScript&&(x=document.currentScript.src),zc&&(x=zc),x=x.startsWith("blob:")?"":x.slice(0,x.replace(/[?#].*/,"").lastIndexOf("/")+1),n&&(d=m=>{var T=new XMLHttpRequest;return T.open("GET",m,!1),T.responseType="arraybuffer",T.send(null),new Uint8Array(T.response)}),u=async m=>{if(ne(m))return new Promise(($,B)=>{var V=new XMLHttpRequest;V.open("GET",m,!0),V.responseType="arraybuffer",V.onload=()=>{V.status==200||V.status==0&&V.response?$(V.response):B(V.status)},V.onerror=B,V.send(null)});var T=await fetch(m,{credentials:"same-origin"});if(T.ok)return T.arrayBuffer();throw Error(T.status+" : "+T.url)});var F=console.log.bind(console),v=console.error.bind(console),b=F,C=v;Object.assign(s,g),g=null;var y,P,I,f,E,D,O,U,W,z,X,J,q,re=s.wasmBinary,oe=!1,ne=m=>m.startsWith("file://");function ye(){return y.buffer!=f.buffer&&we(),f}function Y(){return y.buffer!=f.buffer&&we(),E}function H(){return y.buffer!=f.buffer&&we(),D}function R(){return y.buffer!=f.buffer&&we(),O}function L(){return y.buffer!=f.buffer&&we(),U}function ee(){return y.buffer!=f.buffer&&we(),W}function ue(){return y.buffer!=f.buffer&&we(),z}function ke(){return y.buffer!=f.buffer&&we(),q}if(i){let m=function(T){try{var $=T.data,B=$.Bb;if(B==="load"){let V=[];self.onmessage=ie=>V.push(ie),self.startWorker=()=>{postMessage({Bb:"loaded"});for(let ie of V)m(ie);self.onmessage=m};for(let ie of $.Rb)s[ie]&&!s[ie].proxy||(s[ie]=(...Ee)=>{postMessage({Bb:"callHandler",Qb:ie,args:Ee})},ie=="print"&&(b=s[ie]),ie=="printErr"&&(C=s[ie]));y=$.kc,we(),Le($.lc)}else if(B==="run"){Ys($.Ab),go($.Ab,0,0,1,0,0),zt(),me($.Ab),rt||($a(),rt=!0);try{Zs($.fc,$.Hb)}catch(V){if(V!="unwind")throw V}}else $.target!=="setimmediate"&&(B==="checkMailbox"?rt&&Ce():B&&(C(`worker: received unknown command ${B}`),C($)))}catch(V){throw Da(),V}};var Ie=m,Le,rt=!1;C=function(...T){T=T.join(" "),console.error(T)},self.alert=function(...T){postMessage({Bb:"alert",text:T.join(" "),ic:so()})},self.onunhandledrejection=T=>{throw T.reason||T},self.onmessage=m}function we(){var m=y.buffer;s.HEAP8=f=new Int8Array(m),s.HEAP16=D=new Int16Array(m),s.HEAPU8=E=new Uint8Array(m),s.HEAPU16=O=new Uint16Array(m),s.HEAP32=U=new Int32Array(m),s.HEAPU32=W=new Uint32Array(m),s.HEAPF32=z=new Float32Array(m),s.HEAPF64=q=new Float64Array(m),s.HEAP64=X=new BigInt64Array(m),s.HEAPU64=J=new BigUint64Array(m)}function A(){i?startWorker(s):ct.Ca()}i||(y=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0}),we());var le,ge=0,be=null;function Ae(){if(--ge==0&&be){var m=be;be=null,m()}}function ve(m){throw C(m="Aborted("+m+")"),oe=!0,m=new WebAssembly.RuntimeError(m+". Build with -sASSERTIONS for more info."),t(m),m}function pe(){return{a:{L:Te,Aa:fe,b:Dr,$:Rs,A:Ss,pa:Qr,X:k,Z:Q,qa:N,na:K,ga:Z,ma:ce,J:xe,Y:et,V:ut,oa:qe,W:wt,va:Nt,E:Fs,Q:Ns,O:As,D:ns,u:Wr,r:ze,P:Ue,z:S,R:G,ja:te,T:Ye,aa:Ze,M:He,F:It,ia:me,sa:yt,t:nr,Ba:Br,w:is,o:pr,l:Kr,c:Gr,n:Os,j:Mn,v:wn,p:eo,f:bn,s:vn,m:xn,e:yn,k:Tn,i:to,g:Pn,d:En,da:kn,ea:Cn,fa:Sn,ba:Ko,ca:ba,N:Ho,xa:Zi,ua:xa,h:An,C:$n,G:Dn,ta:In,x:On,ra:Ln,U:Ta,q:Fn,y:Bn,K:zn,S:Pa,za:Rn,ya:Ea,ka,la:jn,_:pt,B:Ca,I:Xo,ha:Sa,H:Fa,a:y,wa:Qe}}}var Pe={829644:(m,T,$,B,V)=>{if(s===void 0||!s.Eb)return 1;if((m=qt(Number(m>>>0))).startsWith("./")&&(m=m.substring(2)),!(m=s.Eb.get(m)))return 2;if(T=Number(T>>>0),$=Number($>>>0),B=Number(B>>>0),T+$>m.byteLength)return 3;try{let ie=m.subarray(T,T+$);switch(V){case 0:Y().set(ie,B>>>0);break;case 1:s.mc?s.mc(B,ie):s.bc(B,ie);break;default:return 4}return 0}catch{return 4}},830468:(m,T,$)=>{s.Ob(m,Y().subarray(T>>>0,T+$>>>0))},830532:()=>s.nc(),830574:m=>{s.Nb(m)},830611:()=>{s.Vb()},830642:()=>{s.Wb()},830671:()=>{s.$b()},830696:m=>s.Ub(m),830729:m=>s.Yb(m),830761:(m,T,$)=>{s.Kb(Number(m),Number(T),Number($),!0)},830824:(m,T,$)=>{s.Kb(Number(m),Number(T),Number($))},830881:()=>typeof wasmOffsetConverter<"u",830938:m=>{s.jb("Abs",m,void 0)},830989:m=>{s.jb("Neg",m,void 0)},831040:m=>{s.jb("Floor",m,void 0)},831093:m=>{s.jb("Ceil",m,void 0)},831145:m=>{s.jb("Reciprocal",m,void 0)},831203:m=>{s.jb("Sqrt",m,void 0)},831255:m=>{s.jb("Exp",m,void 0)},831306:m=>{s.jb("Erf",m,void 0)},831357:m=>{s.jb("Sigmoid",m,void 0)},831412:(m,T,$)=>{s.jb("HardSigmoid",m,{alpha:T,beta:$})},831491:m=>{s.jb("Log",m,void 0)},831542:m=>{s.jb("Sin",m,void 0)},831593:m=>{s.jb("Cos",m,void 0)},831644:m=>{s.jb("Tan",m,void 0)},831695:m=>{s.jb("Asin",m,void 0)},831747:m=>{s.jb("Acos",m,void 0)},831799:m=>{s.jb("Atan",m,void 0)},831851:m=>{s.jb("Sinh",m,void 0)},831903:m=>{s.jb("Cosh",m,void 0)},831955:m=>{s.jb("Asinh",m,void 0)},832008:m=>{s.jb("Acosh",m,void 0)},832061:m=>{s.jb("Atanh",m,void 0)},832114:m=>{s.jb("Tanh",m,void 0)},832166:m=>{s.jb("Not",m,void 0)},832217:(m,T,$)=>{s.jb("Clip",m,{min:T,max:$})},832286:m=>{s.jb("Clip",m,void 0)},832338:(m,T)=>{s.jb("Elu",m,{alpha:T})},832396:m=>{s.jb("Gelu",m,void 0)},832448:m=>{s.jb("Relu",m,void 0)},832500:(m,T)=>{s.jb("LeakyRelu",m,{alpha:T})},832564:(m,T)=>{s.jb("ThresholdedRelu",m,{alpha:T})},832634:(m,T)=>{s.jb("Cast",m,{to:T})},832692:m=>{s.jb("Add",m,void 0)},832743:m=>{s.jb("Sub",m,void 0)},832794:m=>{s.jb("Mul",m,void 0)},832845:m=>{s.jb("Div",m,void 0)},832896:m=>{s.jb("Pow",m,void 0)},832947:m=>{s.jb("Equal",m,void 0)},833e3:m=>{s.jb("Greater",m,void 0)},833055:m=>{s.jb("GreaterOrEqual",m,void 0)},833117:m=>{s.jb("Less",m,void 0)},833169:m=>{s.jb("LessOrEqual",m,void 0)},833228:(m,T,$,B,V)=>{s.jb("ReduceMean",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},833403:(m,T,$,B,V)=>{s.jb("ReduceMax",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},833577:(m,T,$,B,V)=>{s.jb("ReduceMin",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},833751:(m,T,$,B,V)=>{s.jb("ReduceProd",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},833926:(m,T,$,B,V)=>{s.jb("ReduceSum",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},834100:(m,T,$,B,V)=>{s.jb("ReduceL1",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},834273:(m,T,$,B,V)=>{s.jb("ReduceL2",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},834446:(m,T,$,B,V)=>{s.jb("ReduceLogSum",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},834623:(m,T,$,B,V)=>{s.jb("ReduceSumSquare",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},834803:(m,T,$,B,V)=>{s.jb("ReduceLogSumExp",m,{keepDims:!!T,noopWithEmptyAxes:!!$,axes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},834983:m=>{s.jb("Where",m,void 0)},835036:(m,T,$)=>{s.jb("Transpose",m,{perm:T?Array.from(L().subarray(Number(T)>>>0,Number($)>>>0)):[]})},835160:(m,T,$,B)=>{s.jb("DepthToSpace",m,{blocksize:T,mode:qt($),format:B?"NHWC":"NCHW"})},835293:(m,T,$,B)=>{s.jb("DepthToSpace",m,{blocksize:T,mode:qt($),format:B?"NHWC":"NCHW"})},835426:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr,Gs)=>{s.jb("ConvTranspose",m,{format:Je?"NHWC":"NCHW",autoPad:T,dilations:[$],group:B,kernelShape:[V],pads:[ie,Ee],strides:[Be],wIsConst:()=>!!ye()[nt>>>0],outputPadding:Tt?Array.from(L().subarray(Number(Tt)>>>0,Number(Dt)>>>0)):[],outputShape:Wt?Array.from(L().subarray(Number(Wt)>>>0,Number(xr)>>>0)):[],activation:qt(Gs)})},835859:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr)=>{s.jb("ConvTranspose",m,{format:Be?"NHWC":"NCHW",autoPad:T,dilations:Array.from(L().subarray(Number($)>>>0,2+(Number($)>>>0)>>>0)),group:B,kernelShape:Array.from(L().subarray(Number(V)>>>0,2+(Number(V)>>>0)>>>0)),pads:Array.from(L().subarray(Number(ie)>>>0,4+(Number(ie)>>>0)>>>0)),strides:Array.from(L().subarray(Number(Ee)>>>0,2+(Number(Ee)>>>0)>>>0)),wIsConst:()=>!!ye()[Je>>>0],outputPadding:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],outputShape:Dt?Array.from(L().subarray(Number(Dt)>>>0,Number(Wt)>>>0)):[],activation:qt(xr)})},836520:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr,Gs)=>{s.jb("ConvTranspose",m,{format:Je?"NHWC":"NCHW",autoPad:T,dilations:[$],group:B,kernelShape:[V],pads:[ie,Ee],strides:[Be],wIsConst:()=>!!ye()[nt>>>0],outputPadding:Tt?Array.from(L().subarray(Number(Tt)>>>0,Number(Dt)>>>0)):[],outputShape:Wt?Array.from(L().subarray(Number(Wt)>>>0,Number(xr)>>>0)):[],activation:qt(Gs)})},836953:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr)=>{s.jb("ConvTranspose",m,{format:Be?"NHWC":"NCHW",autoPad:T,dilations:Array.from(L().subarray(Number($)>>>0,2+(Number($)>>>0)>>>0)),group:B,kernelShape:Array.from(L().subarray(Number(V)>>>0,2+(Number(V)>>>0)>>>0)),pads:Array.from(L().subarray(Number(ie)>>>0,4+(Number(ie)>>>0)>>>0)),strides:Array.from(L().subarray(Number(Ee)>>>0,2+(Number(Ee)>>>0)>>>0)),wIsConst:()=>!!ye()[Je>>>0],outputPadding:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],outputShape:Dt?Array.from(L().subarray(Number(Dt)>>>0,Number(Wt)>>>0)):[],activation:qt(xr)})},837614:(m,T)=>{s.jb("GlobalAveragePool",m,{format:T?"NHWC":"NCHW"})},837705:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr)=>{s.jb("AveragePool",m,{format:xr?"NHWC":"NCHW",auto_pad:T,ceil_mode:$,count_include_pad:B,storage_order:V,dilations:ie?Array.from(L().subarray(Number(ie)>>>0,Number(Ee)>>>0)):[],kernel_shape:Be?Array.from(L().subarray(Number(Be)>>>0,Number(Je)>>>0)):[],pads:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],strides:Dt?Array.from(L().subarray(Number(Dt)>>>0,Number(Wt)>>>0)):[]})},838184:(m,T)=>{s.jb("GlobalAveragePool",m,{format:T?"NHWC":"NCHW"})},838275:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr)=>{s.jb("AveragePool",m,{format:xr?"NHWC":"NCHW",auto_pad:T,ceil_mode:$,count_include_pad:B,storage_order:V,dilations:ie?Array.from(L().subarray(Number(ie)>>>0,Number(Ee)>>>0)):[],kernel_shape:Be?Array.from(L().subarray(Number(Be)>>>0,Number(Je)>>>0)):[],pads:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],strides:Dt?Array.from(L().subarray(Number(Dt)>>>0,Number(Wt)>>>0)):[]})},838754:(m,T)=>{s.jb("GlobalMaxPool",m,{format:T?"NHWC":"NCHW"})},838841:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr)=>{s.jb("MaxPool",m,{format:xr?"NHWC":"NCHW",auto_pad:T,ceil_mode:$,count_include_pad:B,storage_order:V,dilations:ie?Array.from(L().subarray(Number(ie)>>>0,Number(Ee)>>>0)):[],kernel_shape:Be?Array.from(L().subarray(Number(Be)>>>0,Number(Je)>>>0)):[],pads:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],strides:Dt?Array.from(L().subarray(Number(Dt)>>>0,Number(Wt)>>>0)):[]})},839316:(m,T)=>{s.jb("GlobalMaxPool",m,{format:T?"NHWC":"NCHW"})},839403:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr)=>{s.jb("MaxPool",m,{format:xr?"NHWC":"NCHW",auto_pad:T,ceil_mode:$,count_include_pad:B,storage_order:V,dilations:ie?Array.from(L().subarray(Number(ie)>>>0,Number(Ee)>>>0)):[],kernel_shape:Be?Array.from(L().subarray(Number(Be)>>>0,Number(Je)>>>0)):[],pads:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],strides:Dt?Array.from(L().subarray(Number(Dt)>>>0,Number(Wt)>>>0)):[]})},839878:(m,T,$,B,V)=>{s.jb("Gemm",m,{alpha:T,beta:$,transA:B,transB:V})},839982:m=>{s.jb("MatMul",m,void 0)},840036:(m,T,$,B)=>{s.jb("ArgMax",m,{keepDims:!!T,selectLastIndex:!!$,axis:B})},840144:(m,T,$,B)=>{s.jb("ArgMin",m,{keepDims:!!T,selectLastIndex:!!$,axis:B})},840252:(m,T)=>{s.jb("Softmax",m,{axis:T})},840315:(m,T)=>{s.jb("Concat",m,{axis:T})},840375:(m,T,$,B,V)=>{s.jb("Split",m,{axis:T,numOutputs:$,splitSizes:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},840531:m=>{s.jb("Expand",m,void 0)},840585:(m,T)=>{s.jb("Gather",m,{axis:Number(T)})},840656:(m,T)=>{s.jb("GatherElements",m,{axis:Number(T)})},840735:(m,T)=>{s.jb("GatherND",m,{batch_dims:Number(T)})},840814:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt)=>{s.jb("Resize",m,{antialias:T,axes:$?Array.from(L().subarray(Number($)>>>0,Number(B)>>>0)):[],coordinateTransformMode:qt(V),cubicCoeffA:ie,excludeOutside:Ee,extrapolationValue:Be,keepAspectRatioPolicy:qt(Je),mode:qt(nt),nearestMode:qt(Tt)})},841176:(m,T,$,B,V,ie,Ee)=>{s.jb("Slice",m,{starts:T?Array.from(L().subarray(Number(T)>>>0,Number($)>>>0)):[],ends:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[],axes:ie?Array.from(L().subarray(Number(ie)>>>0,Number(Ee)>>>0)):[]})},841440:m=>{s.jb("Tile",m,void 0)},841492:(m,T,$)=>{s.jb("InstanceNormalization",m,{epsilon:T,format:$?"NHWC":"NCHW"})},841606:(m,T,$)=>{s.jb("InstanceNormalization",m,{epsilon:T,format:$?"NHWC":"NCHW"})},841720:m=>{s.jb("Range",m,void 0)},841773:(m,T)=>{s.jb("Einsum",m,{equation:qt(T)})},841854:(m,T,$,B,V)=>{s.jb("Pad",m,{mode:T,value:$,pads:B?Array.from(L().subarray(Number(B)>>>0,Number(V)>>>0)):[]})},841997:(m,T,$,B,V,ie)=>{s.jb("BatchNormalization",m,{epsilon:T,momentum:$,spatial:!!V,trainingMode:!!B,format:ie?"NHWC":"NCHW"})},842166:(m,T,$,B,V,ie)=>{s.jb("BatchNormalization",m,{epsilon:T,momentum:$,spatial:!!V,trainingMode:!!B,format:ie?"NHWC":"NCHW"})},842335:(m,T,$)=>{s.jb("CumSum",m,{exclusive:Number(T),reverse:Number($)})},842432:(m,T,$)=>{s.jb("DequantizeLinear",m,{axis:T,blockSize:$})},842522:(m,T,$,B,V)=>{s.jb("GridSample",m,{align_corners:T,mode:qt($),padding_mode:qt(B),format:V?"NHWC":"NCHW"})},842692:(m,T,$,B,V)=>{s.jb("GridSample",m,{align_corners:T,mode:qt($),padding_mode:qt(B),format:V?"NHWC":"NCHW"})},842862:(m,T)=>{s.jb("ScatterND",m,{reduction:qt(T)})},842947:(m,T,$,B,V,ie,Ee,Be,Je)=>{s.jb("Attention",m,{numHeads:T,isUnidirectional:$,maskFilterValue:B,scale:V,doRotary:ie,qkvHiddenSizes:Ee?Array.from(L().subarray(Number(Be)>>>0,Number(Be)+Ee>>>0)):[],pastPresentShareBuffer:!!Je})},843219:m=>{s.jb("BiasAdd",m,void 0)},843274:m=>{s.jb("BiasSplitGelu",m,void 0)},843335:m=>{s.jb("FastGelu",m,void 0)},843391:(m,T,$,B,V,ie,Ee,Be,Je,nt,Tt,Dt,Wt,xr,Gs,Un)=>{s.jb("Conv",m,{format:Dt?"NHWC":"NCHW",auto_pad:T,dilations:$?Array.from(L().subarray(Number($)>>>0,Number(B)>>>0)):[],group:V,kernel_shape:ie?Array.from(L().subarray(Number(ie)>>>0,Number(Ee)>>>0)):[],pads:Be?Array.from(L().subarray(Number(Be)>>>0,Number(Je)>>>0)):[],strides:nt?Array.from(L().subarray(Number(nt)>>>0,Number(Tt)>>>0)):[],w_is_const:()=>!!ye()[Number(Wt)>>>0],activation:qt(xr),activation_params:Gs?Array.from(ue().subarray(Number(Gs)>>>0,Number(Un)>>>0)):[]})},843975:m=>{s.jb("Gelu",m,void 0)},844027:(m,T,$,B,V,ie,Ee,Be,Je)=>{s.jb("GroupQueryAttention",m,{numHeads:T,kvNumHeads:$,scale:B,softcap:V,doRotary:ie,rotaryInterleaved:Ee,smoothSoftmax:Be,localWindowSize:Je})},844244:(m,T,$,B)=>{s.jb("LayerNormalization",m,{axis:T,epsilon:$,simplified:!!B})},844355:(m,T,$,B)=>{s.jb("LayerNormalization",m,{axis:T,epsilon:$,simplified:!!B})},844466:(m,T,$,B,V,ie)=>{s.jb("MatMulNBits",m,{k:T,n:$,accuracyLevel:B,bits:V,blockSize:ie})},844593:(m,T,$,B,V,ie)=>{s.jb("MultiHeadAttention",m,{numHeads:T,isUnidirectional:$,maskFilterValue:B,scale:V,doRotary:ie})},844752:(m,T)=>{s.jb("QuickGelu",m,{alpha:T})},844816:(m,T,$,B,V)=>{s.jb("RotaryEmbedding",m,{interleaved:!!T,numHeads:$,rotaryEmbeddingDim:B,scale:V})},844955:(m,T,$)=>{s.jb("SkipLayerNormalization",m,{epsilon:T,simplified:!!$})},845057:(m,T,$)=>{s.jb("SkipLayerNormalization",m,{epsilon:T,simplified:!!$})},845159:(m,T,$,B)=>{s.jb("GatherBlockQuantized",m,{gatherAxis:T,quantizeAxis:$,blockSize:B})},845280:m=>{s.Zb(m)},845314:(m,T)=>s.ac(Number(m),Number(T),s.Fb.dc,s.Fb.errors)};function fe(m,T,$){return Fr(async()=>{await s.Xb(Number(m),Number(T),Number($))})}function Te(){return typeof wasmOffsetConverter<"u"}class We{name="ExitStatus";constructor(T){this.message=`Program terminated with exit(${T})`,this.status=T}}var $e=m=>{m.terminate(),m.onmessage=()=>{}},Re=[],Ne=m=>{Ke.length==0&&(zs(),yr(Ke[0]));var T=Ke.pop();if(!T)return 6;bt.push(T),Lt[m.Ab]=T,T.Ab=m.Ab;var $={Bb:"run",fc:m.ec,Hb:m.Hb,Ab:m.Ab};return T.postMessage($,m.Mb),0},ot=0,De=(m,T,...$)=>{for(var B=2*$.length,V=ea(),ie=wo(8*B),Ee=ie>>>3,Be=0;Be<$.length;Be++){var Je=$[Be];typeof Je=="bigint"?(X[Ee+2*Be]=1n,X[Ee+2*Be+1]=Je):(X[Ee+2*Be]=0n,ke()[Ee+2*Be+1>>>0]=Je)}return m=Oa(m,0,B,ie,T),Mo(V),m};function Qe(m){if(i)return De(0,1,m);if(I=m,!(0<ot)){for(var T of bt)$e(T);for(T of Ke)$e(T);Ke=[],bt=[],Lt={},oe=!0}h(0,new We(m))}function je(m){if(i)return De(1,0,m);pt(m)}var pt=m=>{if(I=m,i)throw je(m),"unwind";Qe(m)},Ke=[],bt=[],At=[],Lt={},fr=m=>{var T=m.Ab;delete Lt[T],Ke.push(m),bt.splice(bt.indexOf(m),1),m.Ab=0,Jo(T)};function zt(){At.forEach(m=>m())}var yr=m=>new Promise(T=>{m.onmessage=V=>{var ie=(V=V.data).Bb;if(V.Gb&&V.Gb!=so()){var Ee=Lt[V.Gb];Ee?Ee.postMessage(V,V.Mb):C(`Internal error! Worker sent a message "${ie}" to target pthread ${V.Gb}, but that thread no longer exists!`)}else ie==="checkMailbox"?Ce():ie==="spawnThread"?Ne(V):ie==="cleanupThread"?fr(Lt[V.hc]):ie==="loaded"?(m.loaded=!0,T(m)):ie==="alert"?alert(`Thread ${V.ic}: ${V.text}`):V.target==="setimmediate"?m.postMessage(V):ie==="callHandler"?s[V.Qb](...V.args):ie&&C(`worker sent an unknown command ${ie}`)},m.onerror=V=>{throw C(`worker sent an error! ${V.filename}:${V.lineno}: ${V.message}`),V};var $,B=[];for($ of[])s.propertyIsEnumerable($)&&B.push($);m.postMessage({Bb:"load",Rb:B,kc:y,lc:P})});function zs(){var m=new Worker((()=>{let T=URL;return import.meta.url>"file:"&&import.meta.url<"file;"?new T("ort.bundle.min.mjs",import.meta.url):new URL(import.meta.url)})(),{type:"module",workerData:"em-pthread",name:"em-pthread"});Ke.push(m)}var Ys=m=>{we();var T=ee()[m+52>>>2>>>0];m=ee()[m+56>>>2>>>0],Ba(T,T-m),Mo(T)},Zs=(m,T)=>{ot=0,m=za(m,T),0<ot?I=m:Yo(m)};class or{constructor(T){this.Ib=T-24}}function Dr(m,T,$){var B=new or(m>>>=0);throw T>>>=0,$>>>=0,ee()[B.Ib+16>>>2>>>0]=0,ee()[B.Ib+4>>>2>>>0]=T,ee()[B.Ib+8>>>2>>>0]=$,m}function Yr(m,T,$,B){return i?De(2,1,m,T,$,B):Rs(m,T,$,B)}function Rs(m,T,$,B){if(m>>>=0,$>>>=0,B>>>=0,l===void 0)return 6;var V=[];return i&&V.length===0?Yr(m,T>>>=0,$,B):(m={ec:$,Ab:m,Hb:B,Mb:V},i?(m.Bb="spawnThread",postMessage(m,V),0):Ne(m))}var ft=typeof TextDecoder<"u"?new TextDecoder:void 0,Cs=(m,T=0,$=NaN)=>{var B=(T>>>=0)+$;for($=T;m[$]&&!($>=B);)++$;if(16<$-T&&m.buffer&&ft)return ft.decode(m.buffer instanceof ArrayBuffer?m.subarray(T,$):m.slice(T,$));for(B="";T<$;){var V=m[T++];if(128&V){var ie=63&m[T++];if((224&V)==192)B+=String.fromCharCode((31&V)<<6|ie);else{var Ee=63&m[T++];65536>(V=(240&V)==224?(15&V)<<12|ie<<6|Ee:(7&V)<<18|ie<<12|Ee<<6|63&m[T++])?B+=String.fromCharCode(V):(V-=65536,B+=String.fromCharCode(55296|V>>10,56320|1023&V))}}else B+=String.fromCharCode(V)}return B},qt=(m,T)=>(m>>>=0)?Cs(Y(),m,T):"";function Ss(m,T,$){return i?De(3,1,m,T,$):0}function Qr(m,T){if(i)return De(4,1,m,T)}var St=m=>{for(var T=0,$=0;$<m.length;++$){var B=m.charCodeAt($);127>=B?T++:2047>=B?T+=2:55296<=B&&57343>=B?(T+=4,++$):T+=3}return T},Xr=(m,T,$)=>{var B=Y();if(T>>>=0,0<$){var V=T;$=T+$-1;for(var ie=0;ie<m.length;++ie){var Ee=m.charCodeAt(ie);if(55296<=Ee&&57343>=Ee&&(Ee=65536+((1023&Ee)<<10)|1023&m.charCodeAt(++ie)),127>=Ee){if(T>=$)break;B[T++>>>0]=Ee}else{if(2047>=Ee){if(T+1>=$)break;B[T++>>>0]=192|Ee>>6}else{if(65535>=Ee){if(T+2>=$)break;B[T++>>>0]=224|Ee>>12}else{if(T+3>=$)break;B[T++>>>0]=240|Ee>>18,B[T++>>>0]=128|Ee>>12&63}B[T++>>>0]=128|Ee>>6&63}B[T++>>>0]=128|63&Ee}}B[T>>>0]=0,m=T-V}else m=0;return m};function k(m,T){if(i)return De(5,1,m,T)}function Q(m,T,$){if(i)return De(6,1,m,T,$)}function N(m,T,$){return i?De(7,1,m,T,$):0}function K(m,T){if(i)return De(8,1,m,T)}function Z(m,T,$){if(i)return De(9,1,m,T,$)}function ce(m,T,$,B){if(i)return De(10,1,m,T,$,B)}function xe(m,T,$,B){if(i)return De(11,1,m,T,$,B)}function et(m,T,$,B){if(i)return De(12,1,m,T,$,B)}function ut(m){if(i)return De(13,1,m)}function qe(m,T){if(i)return De(14,1,m,T)}function wt(m,T,$){if(i)return De(15,1,m,T,$)}var tt,gt,Nt=()=>ve(""),Qt=m=>{for(var T="";Y()[m>>>0];)T+=tt[Y()[m++>>>0]];return T},ur={},Or={},Cr={};function Lr(m,T,$={}){return(function(B,V,ie={}){var Ee=V.name;if(!B)throw new gt(`type "${Ee}" must have a positive integer typeid pointer`);if(Or.hasOwnProperty(B)){if(ie.Sb)return;throw new gt(`Cannot register type '${Ee}' twice`)}Or[B]=V,delete Cr[B],ur.hasOwnProperty(B)&&(V=ur[B],delete ur[B],V.forEach(Be=>Be()))})(m,T,$)}var _s=(m,T,$)=>{switch(T){case 1:return $?B=>ye()[B>>>0]:B=>Y()[B>>>0];case 2:return $?B=>H()[B>>>1>>>0]:B=>R()[B>>>1>>>0];case 4:return $?B=>L()[B>>>2>>>0]:B=>ee()[B>>>2>>>0];case 8:return $?B=>X[B>>>3]:B=>J[B>>>3];default:throw new TypeError(`invalid integer width (${T}): ${m}`)}};function Fs(m,T,$){$>>>=0,Lr(m>>>=0,{name:T=Qt(T>>>0),fromWireType:B=>B,toWireType:function(B,V){if(typeof V!="bigint"&&typeof V!="number")throw V=V===null?"null":(B=typeof V)=="object"||B==="array"||B==="function"?V.toString():""+V,new TypeError(`Cannot convert "${V}" to ${this.name}`);return typeof V=="number"&&(V=BigInt(V)),V},Cb:gr,readValueFromPointer:_s(T,$,T.indexOf("u")==-1),Db:null})}var gr=8;function Ns(m,T,$,B){Lr(m>>>=0,{name:T=Qt(T>>>0),fromWireType:function(V){return!!V},toWireType:function(V,ie){return ie?$:B},Cb:gr,readValueFromPointer:function(V){return this.fromWireType(Y()[V>>>0])},Db:null})}var as=[],Nr=[];function Gr(m){9<(m>>>=0)&&--Nr[m+1]==0&&(Nr[m]=void 0,as.push(m))}var ar=m=>{if(!m)throw new gt("Cannot use deleted val. handle = "+m);return Nr[m]},_r=m=>{switch(m){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:let T=as.pop()||Nr.length;return Nr[T]=m,Nr[T+1]=1,T}};function ps(m){return this.fromWireType(ee()[m>>>2>>>0])}var Is={name:"emscripten::val",fromWireType:m=>{var T=ar(m);return Gr(m),T},toWireType:(m,T)=>_r(T),Cb:gr,readValueFromPointer:ps,Db:null};function As(m){return Lr(m>>>0,Is)}var $s=(m,T)=>{switch(T){case 4:return function($){return this.fromWireType(ue()[$>>>2>>>0])};case 8:return function($){return this.fromWireType(ke()[$>>>3>>>0])};default:throw new TypeError(`invalid float width (${T}): ${m}`)}};function ns(m,T,$){$>>>=0,Lr(m>>>=0,{name:T=Qt(T>>>0),fromWireType:B=>B,toWireType:(B,V)=>V,Cb:gr,readValueFromPointer:$s(T,$),Db:null})}function Wr(m,T,$,B,V){if(m>>>=0,$>>>=0,T=Qt(T>>>0),V===-1&&(V=4294967295),V=Be=>Be,B===0){var ie=32-8*$;V=Be=>Be<<ie>>>ie}var Ee=T.includes("unsigned")?function(Be,Je){return Je>>>0}:function(Be,Je){return Je};Lr(m,{name:T,fromWireType:V,toWireType:Ee,Cb:gr,readValueFromPointer:_s(T,$,B!==0),Db:null})}function ze(m,T,$){function B(ie){var Ee=ee()[ie>>>2>>>0];return ie=ee()[ie+4>>>2>>>0],new V(ye().buffer,ie,Ee)}var V=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][T];Lr(m>>>=0,{name:$=Qt($>>>0),fromWireType:B,Cb:gr,readValueFromPointer:B},{Sb:!0})}function Ue(m,T){Lr(m>>>=0,{name:T=Qt(T>>>0),fromWireType:function($){for(var B,V=ee()[$>>>2>>>0],ie=$+4,Ee=ie,Be=0;Be<=V;++Be){var Je=ie+Be;Be!=V&&Y()[Je>>>0]!=0||(Ee=qt(Ee,Je-Ee),B===void 0?B=Ee:(B+="\0",B+=Ee),Ee=Je+1)}return es($),B},toWireType:function($,B){B instanceof ArrayBuffer&&(B=new Uint8Array(B));var V=typeof B=="string";if(!(V||B instanceof Uint8Array||B instanceof Uint8ClampedArray||B instanceof Int8Array))throw new gt("Cannot pass non-string to std::string");var ie=V?St(B):B.length,Ee=fo(4+ie+1),Be=Ee+4;if(ee()[Ee>>>2>>>0]=ie,V)Xr(B,Be,ie+1);else if(V)for(V=0;V<ie;++V){var Je=B.charCodeAt(V);if(255<Je)throw es(Ee),new gt("String has UTF-16 code units that do not fit in 8 bits");Y()[Be+V>>>0]=Je}else for(V=0;V<ie;++V)Y()[Be+V>>>0]=B[V];return $!==null&&$.push(es,Ee),Ee},Cb:gr,readValueFromPointer:ps,Db($){es($)}})}var at=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,Ht=(m,T)=>{for(var $=m>>1,B=$+T/2;!($>=B)&&R()[$>>>0];)++$;if(32<($<<=1)-m&&at)return at.decode(Y().slice(m,$));for($="",B=0;!(B>=T/2);++B){var V=H()[m+2*B>>>1>>>0];if(V==0)break;$+=String.fromCharCode(V)}return $},js=(m,T,$)=>{if($??=2147483647,2>$)return 0;var B=T;$=($-=2)<2*m.length?$/2:m.length;for(var V=0;V<$;++V){var ie=m.charCodeAt(V);H()[T>>>1>>>0]=ie,T+=2}return H()[T>>>1>>>0]=0,T-B},Ds=m=>2*m.length,Vs=(m,T)=>{for(var $=0,B="";!($>=T/4);){var V=L()[m+4*$>>>2>>>0];if(V==0)break;++$,65536<=V?(V-=65536,B+=String.fromCharCode(55296|V>>10,56320|1023&V)):B+=String.fromCharCode(V)}return B},Uo=(m,T,$)=>{if(T>>>=0,$??=2147483647,4>$)return 0;var B=T;$=B+$-4;for(var V=0;V<m.length;++V){var ie=m.charCodeAt(V);if(55296<=ie&&57343>=ie&&(ie=65536+((1023&ie)<<10)|1023&m.charCodeAt(++V)),L()[T>>>2>>>0]=ie,(T+=4)+4>$)break}return L()[T>>>2>>>0]=0,T-B},de=m=>{for(var T=0,$=0;$<m.length;++$){var B=m.charCodeAt($);55296<=B&&57343>=B&&++$,T+=4}return T};function S(m,T,$){if(m>>>=0,T>>>=0,$=Qt($>>>=0),T===2)var B=Ht,V=js,ie=Ds,Ee=Be=>R()[Be>>>1>>>0];else T===4&&(B=Vs,V=Uo,ie=de,Ee=Be=>ee()[Be>>>2>>>0]);Lr(m,{name:$,fromWireType:Be=>{for(var Je,nt=ee()[Be>>>2>>>0],Tt=Be+4,Dt=0;Dt<=nt;++Dt){var Wt=Be+4+Dt*T;Dt!=nt&&Ee(Wt)!=0||(Tt=B(Tt,Wt-Tt),Je===void 0?Je=Tt:(Je+="\0",Je+=Tt),Tt=Wt+T)}return es(Be),Je},toWireType:(Be,Je)=>{if(typeof Je!="string")throw new gt(`Cannot pass non-string to C++ string type ${$}`);var nt=ie(Je),Tt=fo(4+nt+T);return ee()[Tt>>>2>>>0]=nt/T,V(Je,Tt+4,nt+T),Be!==null&&Be.push(es,Tt),Tt},Cb:gr,readValueFromPointer:ps,Db(Be){es(Be)}})}function G(m,T){Lr(m>>>=0,{Tb:!0,name:T=Qt(T>>>0),Cb:0,fromWireType:()=>{},toWireType:()=>{}})}function te(m){go(m>>>0,!n,1,!a,131072,!1),zt()}var se=m=>{if(!oe)try{if(m(),!(0<ot))try{i?Yo(I):pt(I)}catch(T){T instanceof We||T=="unwind"||h(0,T)}}catch(T){T instanceof We||T=="unwind"||h(0,T)}};function me(m){m>>>=0,typeof Atomics.jc=="function"&&(Atomics.jc(L(),m>>>2,m).value.then(Ce),m+=128,Atomics.store(L(),m>>>2,1))}var Ce=()=>{var m=so();m&&(me(m),se(Zo))};function Ye(m,T){(m>>>=0)==T>>>0?setTimeout(Ce):i?postMessage({Gb:m,Bb:"checkMailbox"}):(m=Lt[m])&&m.postMessage({Bb:"checkMailbox"})}var Xe=[];function Ze(m,T,$,B,V){for(T>>>=0,B/=2,Xe.length=B,$=V>>>0>>>3,V=0;V<B;V++)Xe[V]=X[$+2*V]?X[$+2*V+1]:ke()[$+2*V+1>>>0];return(T?Pe[T]:Wn[m])(...Xe)}var He=()=>{ot=0};function It(m){m>>>=0,i?postMessage({Bb:"cleanupThread",hc:m}):fr(Lt[m])}function yt(m){}var Xt=(m,T)=>{var $=Or[m];if($===void 0)throw m=Aa(m),$=Qt(m),es(m),new gt(`${T} has unknown type ${$}`);return $},Mr=(m,T,$)=>{var B=[];return m=m.toWireType(B,$),B.length&&(ee()[T>>>2>>>0]=_r(B)),m};function nr(m,T,$){return T>>>=0,$>>>=0,m=ar(m>>>0),T=Xt(T,"emval::as"),Mr(T,$,m)}function Br(m,T){return T>>>=0,m=ar(m>>>0),(T=Xt(T,"emval::as")).toWireType(null,m)}var ir=m=>{try{m()}catch(T){ve(T)}},Tr=0,zr=null,Pr=0,Zr=[],Yt={},vr={},Sr=0,Jr=null,ms=[];function Fr(m){return(function(T){if(!oe){if(Tr===0){var $=!1,B=!1;T((V=0)=>{if(!oe&&(Pr=V,$=!0,B)){Tr=2,ir(()=>Na(zr)),typeof MainLoop<"u"&&MainLoop.Pb&&MainLoop.resume(),V=!1;try{var ie=(function(){var Je=L()[zr+8>>>2>>>0];return Je=ct[vr[Je]],--ot,Je()})()}catch(Je){ie=Je,V=!0}var Ee=!1;if(!zr){var Be=Jr;Be&&(Jr=null,(V?Be.reject:Be.resolve)(ie),Ee=!0)}if(V&&!Ee)throw ie}}),B=!0,$||(Tr=1,zr=(function(){var V=fo(65548),ie=V+12;ee()[V>>>2>>>0]=ie,ee()[V+4>>>2>>>0]=ie+65536,ie=Zr[0];var Ee=Yt[ie];return Ee===void 0&&(Ee=Sr++,Yt[ie]=Ee,vr[Ee]=ie),ie=Ee,L()[V+8>>>2>>>0]=ie,V})(),typeof MainLoop<"u"&&MainLoop.Pb&&MainLoop.pause(),ir(()=>ta(zr)))}else Tr===2?(Tr=0,ir(ra),es(zr),zr=null,ms.forEach(se)):ve(`invalid state: ${Tr}`);return Pr}})(T=>{m().then(T)})}function is(m){return m>>>=0,Fr(async()=>{var T=await ar(m);return _r(T)})}var lr=[];function pr(m,T,$,B){return $>>>=0,B>>>=0,(m=lr[m>>>0])(null,T=ar(T>>>0),$,B)}var wr={},er=m=>{var T=wr[m];return T===void 0?Qt(m):T};function Kr(m,T,$,B,V){return $>>>=0,B>>>=0,V>>>=0,(m=lr[m>>>0])(T=ar(T>>>0),T[$=er($)],B,V)}var Ws=()=>typeof globalThis=="object"?globalThis:Function("return this")();function Os(m){return(m>>>=0)==0?_r(Ws()):(m=er(m),_r(Ws()[m]))}var fn=m=>{var T=lr.length;return lr.push(m),T},gn=(m,T)=>{for(var $=Array(m),B=0;B<m;++B)$[B]=Xt(ee()[T+4*B>>>2>>>0],"parameter "+B);return $},ga=(m,T)=>Object.defineProperty(T,"name",{value:m});function Mn(m,T,$){var B=(T=gn(m,T>>>0)).shift();m--;var V=`return function (obj, func, destructorsRef, args) {
9
9
  `,ie=0,Ee=[];$===0&&Ee.push("obj");for(var Be=["retType"],Je=[B],nt=0;nt<m;++nt)Ee.push("arg"+nt),Be.push("argType"+nt),Je.push(T[nt]),V+=` var arg${nt} = argType${nt}.readValueFromPointer(args${ie?"+"+ie:""});
10
10
  `,ie+=T[nt].Cb;return V+=` var rv = ${$===1?"new func":"func.call"}(${Ee.join(", ")});
11
11
  `,B.Tb||(Be.push("emval_returnValue"),Je.push(Mr),V+=` return emval_returnValue(retType, destructorsRef, rv);
12
12
  `),Be.push(V+`};
13
- `),m=(function(Tt){var Dt=Function;if(!(Dt instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof Dt} which is not a function`);var Wt=fa(Dt.name||"unknownFunctionName",function(){});return Wt.prototype=Dt.prototype,Wt=new Wt,(Tt=Dt.apply(Wt,Tt))instanceof Object?Tt:Wt})(Be)(...Je),$=`methodCaller<(${T.map(Tt=>Tt.name).join(", ")}) => ${B.name}>`,hn(fa($,m))}function Mn(m){return m=er(m>>>0),_r(s[m])}function eo(m,T){return T>>>=0,m=ar(m>>>0),T=ar(T),_r(m[T])}function wn(m){9<(m>>>=0)&&(Nr[m+1]+=1)}function bn(){return _r([])}function vn(m){m=ar(m>>>0);for(var T=Array(m.length),$=0;$<m.length;$++)T[$]=m[$];return _r(T)}function xn(m){return _r(er(m>>>0))}function yn(){return _r({})}function to(m){for(var T=ar(m>>>=0);T.length;){var $=T.pop();T.pop()($)}Gr(m)}function Tn(m,T,$){T>>>=0,$>>>=0,m=ar(m>>>0),T=ar(T),$=ar($),m[T]=$}function Pn(m,T){return T>>>=0,m=(m=Xt(m>>>0,"_emval_take_value")).readValueFromPointer(T),_r(m)}function En(m,T){m=-9007199254740992>m||9007199254740992<m?NaN:Number(m),T>>>=0,m=new Date(1e3*m),L()[T>>>2>>>0]=m.getUTCSeconds(),L()[T+4>>>2>>>0]=m.getUTCMinutes(),L()[T+8>>>2>>>0]=m.getUTCHours(),L()[T+12>>>2>>>0]=m.getUTCDate(),L()[T+16>>>2>>>0]=m.getUTCMonth(),L()[T+20>>>2>>>0]=m.getUTCFullYear()-1900,L()[T+24>>>2>>>0]=m.getUTCDay(),m=(m.getTime()-Date.UTC(m.getUTCFullYear(),0,1,0,0,0,0))/864e5|0,L()[T+28>>>2>>>0]=m}var ga=m=>m%4==0&&(m%100!=0||m%400==0),Ma=[0,31,60,91,121,152,182,213,244,274,305,335],Uo=[0,31,59,90,120,151,181,212,243,273,304,334];function kn(m,T){m=-9007199254740992>m||9007199254740992<m?NaN:Number(m),T>>>=0,m=new Date(1e3*m),L()[T>>>2>>>0]=m.getSeconds(),L()[T+4>>>2>>>0]=m.getMinutes(),L()[T+8>>>2>>>0]=m.getHours(),L()[T+12>>>2>>>0]=m.getDate(),L()[T+16>>>2>>>0]=m.getMonth(),L()[T+20>>>2>>>0]=m.getFullYear()-1900,L()[T+24>>>2>>>0]=m.getDay();var $=(ga(m.getFullYear())?Ma:Uo)[m.getMonth()]+m.getDate()-1|0;L()[T+28>>>2>>>0]=$,L()[T+36>>>2>>>0]=-60*m.getTimezoneOffset(),$=new Date(m.getFullYear(),6,1).getTimezoneOffset();var B=new Date(m.getFullYear(),0,1).getTimezoneOffset();m=0|($!=B&&m.getTimezoneOffset()==Math.min(B,$)),L()[T+32>>>2>>>0]=m}function Cn(m){m>>>=0;var T=new Date(L()[m+20>>>2>>>0]+1900,L()[m+16>>>2>>>0],L()[m+12>>>2>>>0],L()[m+8>>>2>>>0],L()[m+4>>>2>>>0],L()[m>>>2>>>0],0),$=L()[m+32>>>2>>>0],B=T.getTimezoneOffset(),V=new Date(T.getFullYear(),6,1).getTimezoneOffset(),ie=new Date(T.getFullYear(),0,1).getTimezoneOffset(),Ee=Math.min(ie,V);return 0>$?L()[m+32>>>2>>>0]=+(V!=ie&&Ee==B):0<$!=(Ee==B)&&(V=Math.max(ie,V),T.setTime(T.getTime()+6e4*((0<$?Ee:V)-B))),L()[m+24>>>2>>>0]=T.getDay(),$=(ga(T.getFullYear())?Ma:Uo)[T.getMonth()]+T.getDate()-1|0,L()[m+28>>>2>>>0]=$,L()[m>>>2>>>0]=T.getSeconds(),L()[m+4>>>2>>>0]=T.getMinutes(),L()[m+8>>>2>>>0]=T.getHours(),L()[m+12>>>2>>>0]=T.getDate(),L()[m+16>>>2>>>0]=T.getMonth(),L()[m+20>>>2>>>0]=T.getYear(),m=T.getTime(),BigInt(isNaN(m)?-1:m/1e3)}function Go(m,T,$,B,V,ie,Ee){return i?De(16,1,m,T,$,B,V,ie,Ee):-52}function wa(m,T,$,B,V,ie){if(i)return De(17,1,m,T,$,B,V,ie)}var Us={},Sn=()=>performance.timeOrigin+performance.now();function Ko(m,T){if(i)return De(18,1,m,T);if(Us[m]&&(clearTimeout(Us[m].id),delete Us[m]),!T)return 0;var $=setTimeout(()=>{delete Us[m],se(()=>Oa(m,performance.timeOrigin+performance.now()))},T);return Us[m]={id:$,qc:T},0}function Zi(m,T,$,B){m>>>=0,T>>>=0,$>>>=0,B>>>=0;var V=new Date().getFullYear(),ie=new Date(V,0,1).getTimezoneOffset();V=new Date(V,6,1).getTimezoneOffset();var Ee=Math.max(ie,V);ee()[m>>>2>>>0]=60*Ee,L()[T>>>2>>>0]=+(ie!=V),m=(T=Be=>{var Je=Math.abs(Be);return`UTC${0<=Be?"-":"+"}${String(Math.floor(Je/60)).padStart(2,"0")}${String(Je%60).padStart(2,"0")}`})(ie),T=T(V),V<ie?(Xr(m,$,17),Xr(T,B,17)):(Xr(m,B,17),Xr(T,$,17))}var Fn=()=>Date.now(),ba=1;function va(m,T,$){if(!(0<=m&&3>=m))return 28;if(m===0)m=Date.now();else{if(!ba)return 52;m=performance.timeOrigin+performance.now()}return X[$>>>0>>>3]=BigInt(Math.round(1e6*m)),0}var ro=[],xa=(m,T)=>{ro.length=0;for(var $;$=Y()[m++>>>0];){var B=$!=105;T+=(B&=$!=112)&&T%8?4:0,ro.push($==112?ee()[T>>>2>>>0]:$==106?X[T>>>3]:$==105?L()[T>>>2>>>0]:ke()[T>>>3>>>0]),T+=B?8:4}return ro};function In(m,T,$){return m>>>=0,T=xa(T>>>0,$>>>0),Pe[m](...T)}function An(m,T,$){return m>>>=0,T=xa(T>>>0,$>>>0),Pe[m](...T)}var $n=()=>{};function Dn(m,T){return C(qt(m>>>0,T>>>0))}var On=()=>{throw ot+=1,"unwind"};function ya(){return 4294901760}var Ln=()=>navigator.hardwareConcurrency;function Bn(){return ve("Cannot use emscripten_pc_get_function without -sUSE_OFFSET_CONVERTER"),0}function Ta(m){m>>>=0;var T=Y().length;if(m<=T||4294901760<m)return!1;for(var $=1;4>=$;$*=2){var B=T*(1+.2/$);B=Math.min(B,m+100663296);e:{B=(Math.min(4294901760,65536*Math.ceil(Math.max(m,B)/65536))-y.buffer.byteLength+65535)/65536|0;try{y.grow(B),we();var V=1;break e}catch{}V=void 0}if(V)return!0}return!1}var mo=()=>(ve("Cannot use convertFrameToPC (needed by __builtin_return_address) without -sUSE_OFFSET_CONVERTER"),0),hs={},Ho=m=>{m.forEach(T=>{var $=mo();$&&(hs[$]=T)})};function zn(){var m=Error().stack.toString().split(`
14
- `);return m[0]=="Error"&&m.shift(),Ho(m),hs.Lb=mo(),hs.cc=m,hs.Lb}function Pa(m,T,$){if(m>>>=0,T>>>=0,hs.Lb==m)var B=hs.cc;else(B=Error().stack.toString().split(`
15
- `))[0]=="Error"&&B.shift(),Ho(B);for(var V=3;B[V]&&mo()!=m;)++V;for(m=0;m<$&&B[m+V];++m)L()[T+4*m>>>2>>>0]=mo();return m}var fs,qo={},Rn=()=>{if(!fs){var m,T={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:"./this.program"};for(m in qo)qo[m]===void 0?delete T[m]:T[m]=qo[m];var $=[];for(m in T)$.push(`${m}=${T[m]}`);fs=$}return fs};function Ea(m,T){if(i)return De(19,1,m,T);m>>>=0,T>>>=0;var $=0;return Rn().forEach((B,V)=>{var ie=T+$;for(V=ee()[m+4*V>>>2>>>0]=ie,ie=0;ie<B.length;++ie)ye()[V++>>>0]=B.charCodeAt(ie);ye()[V>>>0]=0,$+=B.length+1}),0}function Nn(m,T){if(i)return De(20,1,m,T);m>>>=0,T>>>=0;var $=Rn();ee()[m>>>2>>>0]=$.length;var B=0;return $.forEach(V=>B+=V.length+1),ee()[T>>>2>>>0]=B,0}function ka(m){return i?De(21,1,m):52}function Qo(m,T,$,B){return i?De(22,1,m,T,$,B):52}function Ca(m,T,$,B){return i?De(23,1,m,T,$,B):70}var jn=[null,[],[]];function Sa(m,T,$,B){if(i)return De(24,1,m,T,$,B);T>>>=0,$>>>=0,B>>>=0;for(var V=0,ie=0;ie<$;ie++){var Ee=ee()[T>>>2>>>0],Be=ee()[T+4>>>2>>>0];T+=8;for(var Je=0;Je<Be;Je++){var nt=Y()[Ee+Je>>>0],Tt=jn[m];nt===0||nt===10?((m===1?b:C)(Cs(Tt)),Tt.length=0):Tt.push(nt)}V+=Be}return ee()[B>>>2>>>0]=V,0}i||(function(){for(var m=s.numThreads-1;m--;)zs();Re.unshift(()=>{ge++,(function(T){i?T():Promise.all(Ke.map(yr)).then(T)})(()=>Ae())})})();for(var Fa=Array(256),ho=0;256>ho;++ho)Fa[ho]=String.fromCharCode(ho);tt=Fa,gt=s.BindingError=class extends Error{constructor(m){super(m),this.name="BindingError"}},s.InternalError=class extends Error{constructor(m){super(m),this.name="InternalError"}},Nr.push(0,1,void 0,1,null,1,!0,1,!1,1),s.count_emval_handles=()=>Nr.length/2-5-as.length;var ct,Vn=[Qe,je,Yr,Ss,Qr,k,Q,N,K,Z,ce,xe,et,ut,qe,wt,Go,wa,Ko,Ea,Nn,ka,Qo,Ca,Sa];(async function(){function m(B,V){return ct=B.exports,ct=(function(){var ie=ct,Ee={};for(let[Be,Je]of Object.entries(ie))Ee[Be]=typeof Je=="function"?(...nt)=>{Zr.push(Be);try{return Je(...nt)}finally{oe||(Zr.pop(),zr&&Tr===1&&Zr.length===0&&(Tr=0,ot+=1,ir(za),typeof Fibers<"u"&&Fibers.rc()))}}:Je;return Ee})(),ct=(function(){var ie=ct,Ee=Je=>nt=>Je(nt)>>>0,Be=Je=>()=>Je()>>>0;return(ie=Object.assign({},ie)).Da=Ee(ie.Da),ie.fb=Be(ie.fb),ie.hb=Ee(ie.hb),ie.tb=Ee(ie.tb),ie.ub=Be(ie.ub),ie.__cxa_get_exception_ptr=Ee(ie.__cxa_get_exception_ptr),ie})(),At.push(ct.ib),P=V,Ae(),ct}ge++;var T=pe();if(s.instantiateWasm)return new Promise(B=>{s.instantiateWasm(T,(V,ie)=>{m(V,ie),B(V.exports)})});if(i)return new Promise(B=>{Le=V=>{var ie=new WebAssembly.Instance(V,pe());B(m(ie,V))}});le??=s.locateFile?s.locateFile?s.locateFile("ort-wasm-simd-threaded.jsep.wasm",x):x+"ort-wasm-simd-threaded.jsep.wasm":new URL("ort-wasm-simd-threaded.jsep.wasm",import.meta.url).href;try{var $=await(async function(B){var V=le;if(!re&&typeof WebAssembly.instantiateStreaming=="function"&&!ne(V))try{var ie=fetch(V,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(ie,B)}catch(Ee){C(`wasm streaming compile failed: ${Ee}`),C("falling back to ArrayBuffer instantiation")}return(async function(Ee,Be){try{var Je=await(async function(nt){if(!re)try{var Tt=await u(nt);return new Uint8Array(Tt)}catch{}if(nt==le&&re)nt=new Uint8Array(re);else{if(!d)throw"both async and sync fetching of the wasm failed";nt=d(nt)}return nt})(Ee);return await WebAssembly.instantiate(Je,Be)}catch(nt){C(`failed to asynchronously prepare wasm: ${nt}`),ve(nt)}})(V,B)})(T);return m($.instance,$.module)}catch(B){return t(B),Promise.reject(B)}})();var Ia=m=>(Ia=ct.Da)(m),Aa=()=>(Aa=ct.Ea)();s._OrtInit=(m,T)=>(s._OrtInit=ct.Fa)(m,T),s._OrtGetLastError=(m,T)=>(s._OrtGetLastError=ct.Ga)(m,T),s._OrtCreateSessionOptions=(m,T,$,B,V,ie,Ee,Be,Je,nt)=>(s._OrtCreateSessionOptions=ct.Ha)(m,T,$,B,V,ie,Ee,Be,Je,nt),s._OrtAppendExecutionProvider=(m,T,$,B,V)=>(s._OrtAppendExecutionProvider=ct.Ia)(m,T,$,B,V),s._OrtAddFreeDimensionOverride=(m,T,$)=>(s._OrtAddFreeDimensionOverride=ct.Ja)(m,T,$),s._OrtAddSessionConfigEntry=(m,T,$)=>(s._OrtAddSessionConfigEntry=ct.Ka)(m,T,$),s._OrtReleaseSessionOptions=m=>(s._OrtReleaseSessionOptions=ct.La)(m),s._OrtCreateSession=(m,T,$)=>(s._OrtCreateSession=ct.Ma)(m,T,$),s._OrtReleaseSession=m=>(s._OrtReleaseSession=ct.Na)(m),s._OrtGetInputOutputCount=(m,T,$)=>(s._OrtGetInputOutputCount=ct.Oa)(m,T,$),s._OrtGetInputOutputMetadata=(m,T,$,B)=>(s._OrtGetInputOutputMetadata=ct.Pa)(m,T,$,B),s._OrtFree=m=>(s._OrtFree=ct.Qa)(m),s._OrtCreateTensor=(m,T,$,B,V,ie)=>(s._OrtCreateTensor=ct.Ra)(m,T,$,B,V,ie),s._OrtGetTensorData=(m,T,$,B,V)=>(s._OrtGetTensorData=ct.Sa)(m,T,$,B,V),s._OrtReleaseTensor=m=>(s._OrtReleaseTensor=ct.Ta)(m),s._OrtCreateRunOptions=(m,T,$,B)=>(s._OrtCreateRunOptions=ct.Ua)(m,T,$,B),s._OrtAddRunConfigEntry=(m,T,$)=>(s._OrtAddRunConfigEntry=ct.Va)(m,T,$),s._OrtReleaseRunOptions=m=>(s._OrtReleaseRunOptions=ct.Wa)(m),s._OrtCreateBinding=m=>(s._OrtCreateBinding=ct.Xa)(m),s._OrtBindInput=(m,T,$)=>(s._OrtBindInput=ct.Ya)(m,T,$),s._OrtBindOutput=(m,T,$,B)=>(s._OrtBindOutput=ct.Za)(m,T,$,B),s._OrtClearBoundOutputs=m=>(s._OrtClearBoundOutputs=ct._a)(m),s._OrtReleaseBinding=m=>(s._OrtReleaseBinding=ct.$a)(m),s._OrtRunWithBinding=(m,T,$,B,V)=>(s._OrtRunWithBinding=ct.ab)(m,T,$,B,V),s._OrtRun=(m,T,$,B,V,ie,Ee,Be)=>(s._OrtRun=ct.bb)(m,T,$,B,V,ie,Ee,Be),s._OrtEndProfiling=m=>(s._OrtEndProfiling=ct.cb)(m),s._JsepOutput=(m,T,$)=>(s._JsepOutput=ct.db)(m,T,$),s._JsepGetNodeName=m=>(s._JsepGetNodeName=ct.eb)(m);var so=()=>(so=ct.fb)(),es=s._free=m=>(es=s._free=ct.gb)(m),fo=s._malloc=m=>(fo=s._malloc=ct.hb)(m),go=(m,T,$,B,V,ie)=>(go=ct.kb)(m,T,$,B,V,ie),$a=()=>($a=ct.lb)(),Da=(m,T,$,B,V)=>(Da=ct.mb)(m,T,$,B,V),Xo=m=>(Xo=ct.nb)(m),Jo=m=>(Jo=ct.ob)(m),Oa=(m,T)=>(Oa=ct.pb)(m,T),Yo=()=>(Yo=ct.qb)(),La=(m,T)=>(La=ct.rb)(m,T),Mo=m=>(Mo=ct.sb)(m),wo=m=>(wo=ct.tb)(m),Zo=()=>(Zo=ct.ub)(),Ba=s.dynCall_ii=(m,T)=>(Ba=s.dynCall_ii=ct.vb)(m,T),ea=m=>(ea=ct.wb)(m),za=()=>(za=ct.xb)(),Ra=m=>(Ra=ct.yb)(m),ta=()=>(ta=ct.zb)();return s.stackSave=()=>Zo(),s.stackRestore=m=>Mo(m),s.stackAlloc=m=>wo(m),s.setValue=function(m,T,$="i8"){switch($.endsWith("*")&&($="*"),$){case"i1":case"i8":ye()[m>>>0]=T;break;case"i16":H()[m>>>1>>>0]=T;break;case"i32":L()[m>>>2>>>0]=T;break;case"i64":X[m>>>3]=BigInt(T);break;case"float":ue()[m>>>2>>>0]=T;break;case"double":ke()[m>>>3>>>0]=T;break;case"*":ee()[m>>>2>>>0]=T;break;default:ve(`invalid type for setValue: ${$}`)}},s.getValue=function(m,T="i8"){switch(T.endsWith("*")&&(T="*"),T){case"i1":case"i8":return ye()[m>>>0];case"i16":return H()[m>>>1>>>0];case"i32":return L()[m>>>2>>>0];case"i64":return X[m>>>3];case"float":return ue()[m>>>2>>>0];case"double":return ke()[m>>>3>>>0];case"*":return ee()[m>>>2>>>0];default:ve(`invalid type for getValue: ${T}`)}},s.UTF8ToString=qt,s.stringToUTF8=Xr,s.lengthBytesUTF8=St,(function m(){if(0<ge)be=m;else if(i)r(s),A();else{for(;0<Re.length;)Re.shift()(s);0<ge?be=m:(s.calledRun=!0,oe||(A(),r(s)))}})(),s.PTR_SIZE=4,o}),gv=Rc,Mg=globalThis.self?.name?.startsWith("em-pthread"),Mg&&Rc()}),Nc,Ad,wg,rs,Mv,Fi,bg,vg,jc,xg,Vc,wv,Wc,bv,Yd=Ve(()=>{"use strict";Jd(),Nc=typeof location>"u"?void 0:location.origin,Ad=import.meta.url>"file:"&&import.meta.url<"file;",wg=()=>{if(Ad){let e=URL;return new URL(new e("ort.bundle.min.mjs",import.meta.url).href,Nc).href}return import.meta.url},rs=wg(),Mv=()=>{if(rs&&!rs.startsWith("blob:"))return rs.substring(0,rs.lastIndexOf("/")+1)},Fi=(e,r)=>{try{let t=r??rs;return(t?new URL(e,t):new URL(e)).origin===Nc}catch{return!1}},bg=(e,r)=>{let t=r??rs;try{return(t?new URL(e,t):new URL(e)).href}catch{return}},vg=(e,r)=>`${r??"./"}${e}`,jc=async e=>{let r=await(await fetch(e,{credentials:"same-origin"})).blob();return URL.createObjectURL(r)},xg=async e=>(await import(e)).default,Vc=(mP(),_n(mv)).default,wv=async()=>{if(!rs)throw new Error("Failed to load proxy worker: cannot determine the script source URL.");if(Fi(rs))return[void 0,Vc()];let e=await jc(rs);return[e,Vc(e)]},Wc=(hP(),_n(fv)).default,bv=async(e,r,t)=>{if(!e&&!r&&Wc&&rs&&Fi(rs))return[void 0,Wc];{let s="ort-wasm-simd-threaded.jsep.mjs",o=e??bg(s,r),a=t&&o&&!Fi(o,r),n=a?await jc(o):o??vg(s,r);return[a?n:void 0,await xg(n)]}}}),Uc,Ii,Ja,Gc,yg,Tg,Pg,Zd,Jt,jo=Ve(()=>{"use strict";Yd(),Ii=!1,Ja=!1,Gc=!1,yg=()=>{if(typeof SharedArrayBuffer>"u")return!1;try{return typeof MessageChannel<"u"&&new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch{return!1}},Tg=()=>{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}},Pg=()=>{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}},Zd=async e=>{if(Ii)return Promise.resolve();if(Ja)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(Gc)throw new Error("previous call to 'initializeWebAssembly()' failed.");Ja=!0;let r=e.initTimeout,t=e.numThreads;if(e.simd!==!1){if(e.simd==="relaxed"){if(!Pg())throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.")}else if(!Tg())throw new Error("WebAssembly SIMD is not supported in the current environment.")}let s=yg();t>1&&!s&&(typeof self<"u"&&!self.crossOriginIsolated&&console.warn("env.wasm.numThreads is set to "+t+", 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=t=1);let o=e.wasmPaths,a=typeof o=="string"?o:void 0,n=o?.mjs,i=n?.href??n,l=o?.wasm,c=l?.href??l,_=e.wasmBinary,[u,d]=await bv(i,a,t>1),g=!1,h=[];if(r>0&&h.push(new Promise(x=>{setTimeout(()=>{g=!0,x()},r)})),h.push(new Promise((x,F)=>{let v={numThreads:t};if(_)v.wasmBinary=_;else if(c||a)v.locateFile=b=>c??a+b;else if(i&&i.indexOf("blob:")!==0)v.locateFile=b=>new URL(b,i).href;else if(u){let b=Mv();b&&(v.locateFile=C=>b+C)}d(v).then(b=>{Ja=!1,Ii=!0,Uc=b,x(),u&&URL.revokeObjectURL(u)},b=>{Ja=!1,Gc=!0,F(b)})})),await Promise.race(h),g)throw new Error(`WebAssembly backend initializing failed due to timeout: ${r}ms`)},Jt=()=>{if(Ii&&Uc)return Uc;throw new Error("WebAssembly is not initialized yet.")}}),Ts,Gi,Kt,eu=Ve(()=>{"use strict";jo(),Ts=(e,r)=>{let t=Jt(),s=t.lengthBytesUTF8(e)+1,o=t._malloc(s);return t.stringToUTF8(e,o,s),r.push(o),o},Gi=(e,r,t,s)=>{if(typeof e=="object"&&e!==null){if(t.has(e))throw new Error("Circular reference in options");t.add(e)}Object.entries(e).forEach(([o,a])=>{let n=r?r+o:o;if(typeof a=="object")Gi(a,n+".",t,s);else if(typeof a=="string"||typeof a=="number")s(n,a.toString());else if(typeof a=="boolean")s(n,a?"1":"0");else throw new Error(`Can't handle extra config type: ${typeof a}`)})},Kt=e=>{let r=Jt(),t=r.stackSave();try{let s=r.PTR_SIZE,o=r.stackAlloc(2*s);r._OrtGetLastError(o,o+s);let a=Number(r.getValue(o,s===4?"i32":"i64")),n=r.getValue(o+s,"*"),i=n?r.UTF8ToString(n):"";throw new Error(`${e} ERROR_CODE: ${a}, ERROR_MESSAGE: ${i}`)}finally{r.stackRestore(t)}}}),vv,fP=Ve(()=>{"use strict";jo(),eu(),vv=e=>{let r=Jt(),t=0,s=[],o=e||{};try{if(e?.logSeverityLevel===void 0)o.logSeverityLevel=2;else if(typeof e.logSeverityLevel!="number"||!Number.isInteger(e.logSeverityLevel)||e.logSeverityLevel<0||e.logSeverityLevel>4)throw new Error(`log serverity level is not valid: ${e.logSeverityLevel}`);if(e?.logVerbosityLevel===void 0)o.logVerbosityLevel=0;else if(typeof e.logVerbosityLevel!="number"||!Number.isInteger(e.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${e.logVerbosityLevel}`);e?.terminate===void 0&&(o.terminate=!1);let a=0;return e?.tag!==void 0&&(a=Ts(e.tag,s)),t=r._OrtCreateRunOptions(o.logSeverityLevel,o.logVerbosityLevel,!!o.terminate,a),t===0&&Kt("Can't create run options."),e?.extra!==void 0&&Gi(e.extra,"",new WeakSet,(n,i)=>{let l=Ts(n,s),c=Ts(i,s);r._OrtAddRunConfigEntry(t,l,c)!==0&&Kt(`Can't set a run config entry: ${n} - ${i}.`)}),[t,s]}catch(a){throw t!==0&&r._OrtReleaseRunOptions(t),s.forEach(n=>r._free(n)),a}}}),Eg,kg,Cg,Ya,Sg,xv,gP=Ve(()=>{"use strict";jo(),eu(),Eg=e=>{switch(e){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"all":return 99;default:throw new Error(`unsupported graph optimization level: ${e}`)}},kg=e=>{switch(e){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${e}`)}},Cg=e=>{e.extra||(e.extra={}),e.extra.session||(e.extra.session={});let r=e.extra.session;r.use_ort_model_bytes_directly||(r.use_ort_model_bytes_directly="1"),e.executionProviders&&e.executionProviders.some(t=>(typeof t=="string"?t:t.name)==="webgpu")&&(e.enableMemPattern=!1)},Ya=(e,r,t,s)=>{let o=Ts(r,s),a=Ts(t,s);Jt()._OrtAddSessionConfigEntry(e,o,a)!==0&&Kt(`Can't set a session config entry: ${r} - ${t}.`)},Sg=async(e,r,t)=>{for(let s of r){let o=typeof s=="string"?s:s.name,a=[];switch(o){case"webnn":if(o="WEBNN",typeof s!="string"){let _=s?.deviceType;_&&Ya(e,"deviceType",_,t)}break;case"webgpu":if(o="JS",typeof s!="string"){let _=s;if(_?.preferredLayout){if(_.preferredLayout!=="NCHW"&&_.preferredLayout!=="NHWC")throw new Error(`preferredLayout must be either 'NCHW' or 'NHWC': ${_.preferredLayout}`);Ya(e,"preferredLayout",_.preferredLayout,t)}}break;case"wasm":case"cpu":continue;default:throw new Error(`not supported execution provider: ${o}`)}let n=Ts(o,t),i=a.length,l=0,c=0;if(i>0){l=Jt()._malloc(i*Jt().PTR_SIZE),t.push(l),c=Jt()._malloc(i*Jt().PTR_SIZE),t.push(c);for(let _=0;_<i;_++)Jt().setValue(l+_*Jt().PTR_SIZE,a[_][0],"*"),Jt().setValue(c+_*Jt().PTR_SIZE,a[_][1],"*")}await Jt()._OrtAppendExecutionProvider(e,n,l,c,i)!==0&&Kt(`Can't append execution provider: ${o}.`)}},xv=async e=>{let r=Jt(),t=0,s=[],o=e||{};Cg(o);try{let a=Eg(o.graphOptimizationLevel??"all"),n=kg(o.executionMode??"sequential"),i=typeof o.logId=="string"?Ts(o.logId,s):0,l=o.logSeverityLevel??2;if(!Number.isInteger(l)||l<0||l>4)throw new Error(`log serverity level is not valid: ${l}`);let c=o.logVerbosityLevel??0;if(!Number.isInteger(c)||c<0||c>4)throw new Error(`log verbosity level is not valid: ${c}`);let _=typeof o.optimizedModelFilePath=="string"?Ts(o.optimizedModelFilePath,s):0;if(t=r._OrtCreateSessionOptions(a,!!o.enableCpuMemArena,!!o.enableMemPattern,n,!!o.enableProfiling,0,i,l,c,_),t===0&&Kt("Can't create session options."),o.executionProviders&&await Sg(t,o.executionProviders,s),o.enableGraphCapture!==void 0){if(typeof o.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${o.enableGraphCapture}`);Ya(t,"enableGraphCapture",o.enableGraphCapture.toString(),s)}if(o.freeDimensionOverrides)for(let[u,d]of Object.entries(o.freeDimensionOverrides)){if(typeof u!="string")throw new Error(`free dimension override name must be a string: ${u}`);if(typeof d!="number"||!Number.isInteger(d)||d<0)throw new Error(`free dimension override value must be a non-negative integer: ${d}`);let g=Ts(u,s);r._OrtAddFreeDimensionOverride(t,g,d)!==0&&Kt(`Can't set a free dimension override: ${u} - ${d}.`)}return o.extra!==void 0&&Gi(o.extra,"",new WeakSet,(u,d)=>{Ya(t,u,d,s)}),[t,s]}catch(a){throw t!==0&&r._OrtReleaseSessionOptions(t)!==0&&Kt("Can't release session options."),s.forEach(n=>r._free(n)),a}}}),ua,Xs,Lo,tu,Ki,ru,su,$d,Mt=Ve(()=>{"use strict";ua=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 new Error(`unsupported data type: ${e}`)}},Xs=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 new Error(`unsupported data type: ${e}`)}},Lo=(e,r)=>{let t=[-1,4,1,1,2,2,4,8,-1,1,2,8,4,8,-1,-1,-1,-1,-1,-1,-1,.5,.5][e],s=typeof r=="number"?r:r.reduce((o,a)=>o*a,1);return t>0?Math.ceil(s*t):void 0},tu=e=>{switch(e){case"float16":return typeof Float16Array<"u"&&Float16Array.from?Float16Array:Uint16Array;case"float32":return Float32Array;case"uint8":return Uint8Array;case"int8":return Int8Array;case"uint16":return Uint16Array;case"int16":return Int16Array;case"int32":return Int32Array;case"bool":return Uint8Array;case"float64":return Float64Array;case"uint32":return Uint32Array;case"int64":return BigInt64Array;case"uint64":return BigUint64Array;default:throw new Error(`unsupported type: ${e}`)}},Ki=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 new Error(`unsupported logging level: ${e}`)}},ru=e=>e==="float32"||e==="float16"||e==="int32"||e==="int64"||e==="uint32"||e==="uint8"||e==="bool"||e==="uint4"||e==="int4",su=e=>e==="float32"||e==="float16"||e==="int32"||e==="int64"||e==="uint32"||e==="uint64"||e==="int8"||e==="uint8"||e==="bool"||e==="uint4"||e==="int4",$d=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 new Error(`unsupported data location: ${e}`)}}}),ou,yv=Ve(()=>{"use strict";Jd(),ou=async e=>{if(typeof e=="string"){let r=await fetch(e);if(!r.ok)throw new Error(`failed to load external data file: ${e}`);let t=r.headers.get("Content-Length"),s=t?parseInt(t,10):0;if(s<1073741824)return new Uint8Array(await r.arrayBuffer());{if(!r.body)throw new Error(`failed to load external data file: ${e}, no response body.`);let o=r.body.getReader(),a;try{a=new ArrayBuffer(s)}catch(i){if(i instanceof RangeError){let l=Math.ceil(s/65536);a=new WebAssembly.Memory({initial:l,maximum:l}).buffer}else throw i}let n=0;for(;;){let{done:i,value:l}=await o.read();if(i)break;let c=l.byteLength;new Uint8Array(a,n,c).set(l),n+=c}return new Uint8Array(a,0,s)}}else return e instanceof Blob?new Uint8Array(await e.arrayBuffer()):e instanceof Uint8Array?e:new Uint8Array(e)}}),Fg,Ig,Ag,$g,au,Dg,Ot,Js=Ve(()=>{"use strict";Mt(),Fg=["V","I","W","E","F"],Ig=(e,r)=>{console.log(`[${Fg[e]},${new Date().toISOString()}]${r}`)},au=(e,r)=>{Ag=e,$g=r},Dg=(e,r)=>{let t=Ki(e),s=Ki(Ag);t>=s&&Ig(t,typeof r=="function"?r():r)},Ot=(...e)=>{$g&&Dg(...e)}}),Og,pa,Me,Hi,Tv,Pv,Ev,kt=Ve(()=>{"use strict";Og=class{static calcMatMulShape(e,r){return e[1]!==r[0]?void 0:[e[0],r[1]]}},pa=class{static calcShape(e,r,t=!1){let s=e.length,o=r.length;if(s===0)return r;if(o===0)return e;let a=Math.max(e.length,r.length),n=new Array(a);if(t){if(s<2||o<2)return;let i=Og.calcMatMulShape([e[s-2],e[s-1]],[r[o-2],r[o-1]]);if(i===void 0)return;[n[a-2],n[a-1]]=i}for(let i=t?3:1;i<=a;i++){let l=s-i<0?1:e[s-i],c=o-i<0?1:r[o-i];if(l!==c&&l>1&&c>1)return;let _=Math.max(l,c);if(l&&c)n[a-i]=Math.max(l,c);else{if(_>1)return;n[a-i]=0}}return n}static isValidBroadcast(e,r){let t=e.length,s=r.length;if(t>s)return!1;for(let o=1;o<=t;o++)if(e[t-o]!==1&&e[t-o]!==r[s-o])return!1;return!0}},Me=class Wi{static size(r){return Wi.getSizeFromDimensionRange(r,0,r.length)}static convertShape(r,t=4){let s=r.length;if(s===0)return[];let o=new Array(s),a=s-1;for(;a>=0;){if(r[a]%t===0){o[a]=r[a]/t;break}if(t%r[a]!==0)throw new Error("cannot convert shape");o[a]=1,t/=r[a],a--}for(a--;a>=0;a--)o[a]=r[a];return o}static sizeFromDimension(r,t){if(t<0||t>r.length)throw new Error(`invalid dimension of ${t} for sizeFromDimension as Tensor has ${r.length} dimensions.`);return Wi.getSizeFromDimensionRange(r,t,r.length)}static sizeToDimension(r,t){if(t<0||t>r.length)throw new Error(`invalid dimension of ${t} for sizeToDimension as Tensor has ${r.length} dimensions.`);return Wi.getSizeFromDimensionRange(r,0,t)}static getSizeFromDimensionRange(r,t,s){let o=1;for(let a=t;a<s;a++){if(r[a]<0)throw new Error("cannot get valid size from specified dimension range. Most likely the range contains negative values in them.");o*=Number(r[a])}return o}static computeStrides(r){let t=r.length;if(t===0)return[];if(t===1)return[1];let s=new Array(t);s[t-1]=1,s[t-2]=r[t-1];for(let o=t-3;o>=0;--o)s[o]=s[o+1]*r[o+1];return s}static normalizeAxis(r,t){if(r<-t&&r>=t)throw new Error("unsupported axis for this operation.");return r<0?r+t:r}static normalizeAxes(r,t){return r.map(s=>this.normalizeAxis(s,t??r.length))}static sortBasedOnPerm(r,t){return t?t.map(s=>r[s]):r.slice().reverse()}static padShape(r,t){let s=r.length;return r.map((o,a)=>o+t[a]+t[a+s])}static areEqual(r,t){return r.length!==t.length?!1:r.every((s,o)=>s===t[o])}},Hi=class ln{static adjustPoolAttributes(r,t,s,o,a,n){if(!r&&s.length!==t.length-2)throw new Error("length of specified kernel shapes should be 2 less than length of input dimensions");if(r)for(let i=0;i<t.length-2;i++)i>=s.length?s.push(t[i+2]):s[i]=t[i+2];for(let i=0;i<s.length;i++)if(i<o.length){if(o[i]<0)throw new Error("strides should be greater than or equal to 1")}else o.push(1);for(let i=0;i<s.length;i++)if(i<a.length){if(a[i]<0)throw new Error("dilations should be greater than or equal to 1")}else a.push(1);for(let i=0;i<s.length*2;i++)if(i<n.length){if(n[i]<0)throw new Error("pad should be greater than or equal to 1")}else n.push(0);for(let i=0;i<s.length;i++){if(s[i]<=0)throw new Error("kernel shapes need to be greater than 0");if(n[i]>=s[i]||n[i+s.length]>=s[i])throw new Error("pads should be smaller than kernel")}}static adjustPadsBasedOnAutoPad(r,t,s,o,a,n,i){if(i){if(a.length!==2*(r.length-2))throw new Error("length of pads should be twice the length of data dimensions");if(t.length!==r.length-2)throw new Error("length of strides should be the length of data dimensions");if(o.length!==r.length-2)throw new Error("length of kernel shapes should be the length of data dimensions");for(let l=0;l<r.length-2;l++)ln.adjustPadAndReturnShape(r[l+(n?1:2)],t[l],s[l],o[l],a,l,l+r.length-2,i)}}static computePoolOutputShape(r,t,s,o,a,n,i){if(t.length<=0)throw new Error("input shape must be of size greater than 0");let l=[t[0],t[1]];return ln.computeShapeHelper(r,t,l,s,o,a,n,i),l}static computeConvOutputShape(r,t,s,o,a,n,i){if(r.length<=0||t.length<=0)throw new Error("invalid input tensor dims or invalid filter tensor dims");let l=[r[0],t[0]];return ln.computeShapeHelper(!1,r,l,s,o,a,n,i),l}static computeShapeHelper(r,t,s,o,a,n,i,l){if(r)for(let c=0;c<t.length-2;c++)s.push(1);else for(let c=0;c<t.length-2;c++)s.push(ln.adjustPadAndReturnShape(t[c+2],o[c],a[c],n[c],i,c,c+t.length-2,l))}static adjustPadAndReturnShape(r,t,s,o,a,n,i,l){let c=s*(o-1)+1;if(l&&l!=="NOTSET")switch(l){case"VALID":return a[n]=0,a[i]=0,Math.floor((r-c)/t+1);case"SAME_LOWER":case"SAME_UPPER":if(s!==1)throw new Error("Dilation not supported for SAME_UPPER or SAME_LOWER");{let _=((r+t-1)/t-1)*t+o-r;return a[n]=Math.floor(l==="SAME_LOWER"?(_+1)/2:_/2),a[i]=_-a[n],Math.floor((r+_-o)/t+1)}default:throw new Error("Unsupported AutoPad type")}else return Math.floor((r+a[n]+a[i]-c)/t+1)}},Tv=class{static getShapeOfGemmResult(e,r,t,s,o){if(e.length!==2||t.length!==2)throw new Error("shape need to be of size 2");let a,n,i;r?(a=e[1],n=e[0]):(a=e[0],n=e[1]);let l=-1;if(s?(i=t[0],l=1):(i=t[1],l=0),t[l]!==n)throw new Error("dimension mismatch");if(a<=0||i<=0||n<=0)throw new Error("invalid shape specified");if(o&&!pa.isValidBroadcast(o,[a,i]))throw new Error("gemm: invalid bias shape for broadcast");return[a,i,n]}},Pv=-34028234663852886e22,Ev=34028234663852886e22}),nu,kv=Ve(()=>{"use strict";Mt(),nu=(e,r)=>new(tu(r))(e)}),Dd,Kc,Lg,Hc,Bg,qc,Qc,Xc,zg,Cv,MP=Ve(()=>{"use strict";Js(),Dd=(e,r=!0)=>{if(e.byteLength%8!==0)throw new Error("Invalid Uint8Array length - must be a multiple of 8 (BigInt).");let t=e.byteLength/8,s=new BigInt64Array(e.buffer,e.byteOffset,t),o=new Int32Array(t);for(let a=0;a<t;a++){let n=s[a];if(n>2147483647n||n<-2147483648n)throw new Error(`Overflow occurred when converting BigInt to Int32 at index ${a}: ${n}`);o[a]=Number(n)}return r?new Uint8Array(o.buffer):o},Kc=(e,r=!0)=>{if(e.byteLength%4!==0)throw new Error("Invalid Uint8Array length - must be a multiple of 4 (Int32).");let t=e.byteLength/4,s=new Int32Array(e.buffer,e.byteOffset,t),o=BigInt64Array.from(s,BigInt);return r?new Uint8Array(o.buffer):o},Lg=1,Hc=()=>Lg++,Bg=new Map([["float32",32],["float16",16],["int32",32],["uint32",32],["int64",64],["uint64",64],["int8",8],["uint8",8],["int4",4],["uint4",4]]),qc=(e,r)=>{let t=Bg.get(e);if(!t)throw new Error("Unsupported data type.");return r.length>0?Math.ceil(r.reduce((s,o)=>s*o)*t/8):0},Qc=class{constructor(e){this.shouldConvertInt64toInt32=!1,this.isInt64ToInt32Converted=!1;let{sessionId:r,context:t,tensor:s,dataType:o,shape:a,shouldConvertInt64toInt32:n=!1}=e;this.sessionId=r,this.mlContext=t,this.mlTensor=s,this.dataType=o,this.tensorShape=a,this.shouldConvertInt64toInt32=n}get tensor(){return this.mlTensor}get type(){return this.dataType}get shape(){return this.tensorShape}get byteLength(){return qc(this.dataType,this.tensorShape)}destroy(){Ot("verbose",()=>"[WebNN] TensorWrapper.destroy"),this.mlTensor.destroy()}write(e){this.mlContext.writeTensor(this.mlTensor,e)}async read(e,r){if(e){let t=await this.mlContext.readTensor(this.mlTensor),s=Kc(new Uint8Array(t));if(r){(r instanceof ArrayBuffer?new Uint8Array(r):new Uint8Array(r.buffer,r.byteOffset,r.byteLength)).set(s);return}else return s.buffer}else return r?this.mlContext.readTensor(this.mlTensor,r):this.mlContext.readTensor(this.mlTensor)}canReuseTensor(e,r,t){return this.mlContext===e&&this.dataType===r&&this.tensorShape.length===t.length&&this.tensorShape.every((s,o)=>s===t[o])}setIsInt64ToInt32Converted(e){this.isInt64ToInt32Converted=e}},Xc=class{constructor(e,r){this.tensorManager=e,this.wrapper=r}get tensorWrapper(){return this.wrapper}releaseTensor(){this.tensorWrapper&&(this.tensorManager.releaseTensor(this.tensorWrapper),this.wrapper=void 0)}async ensureTensor(e,r,t,s){let o=r,a=this.tensorManager.getMLContext(e),n=o==="int64"&&!a.opSupportLimits().input.dataTypes.includes("int64");if(n&&(o="int32",Ot("verbose",()=>"[WebNN] TensorIdTracker.ensureTensor: convert dataType from int64 to int32")),this.wrapper){if(this.wrapper.canReuseTensor(a,o,t))return this.wrapper.tensor;if(s){if(this.wrapper.byteLength!==qc(o,t))throw new Error("Unable to copy data to tensor with different size.");this.activeUpload=new Uint8Array(await this.wrapper.read())}this.tensorManager.releaseTensor(this.wrapper)}let i=typeof MLTensorUsage>"u"?void 0:MLTensorUsage.READ|MLTensorUsage.WRITE;return this.wrapper=await this.tensorManager.getCachedTensor(e,o,t,i,!0,!0,n),s&&this.activeUpload&&(this.wrapper.write(this.activeUpload),this.activeUpload=void 0),this.wrapper.tensor}upload(e){let r=e;if(this.wrapper)if(this.wrapper.shouldConvertInt64toInt32&&(r=Dd(e,!0),this.wrapper.setIsInt64ToInt32Converted(!0)),r.byteLength===this.wrapper.byteLength){this.wrapper.write(r);return}else Ot("verbose",()=>"Data size does not match tensor size. Releasing tensor."),this.releaseTensor();this.activeUpload?this.activeUpload.set(r):this.activeUpload=new Uint8Array(r)}async download(e){if(this.activeUpload){let r=this.wrapper?.isInt64ToInt32Converted?Kc(this.activeUpload):this.activeUpload;if(e){e instanceof ArrayBuffer?new Uint8Array(e).set(r):new Uint8Array(e.buffer,e.byteOffset,e.byteLength).set(r);return}else return r.buffer}if(!this.wrapper)throw new Error("Tensor has not been created.");return e?this.wrapper.read(this.wrapper?.shouldConvertInt64toInt32,e):this.wrapper.read(this.wrapper?.shouldConvertInt64toInt32)}},zg=class{constructor(e){this.backend=e,this.tensorTrackersById=new Map,this.freeTensors=[],this.externalTensors=new Set}getMLContext(e){let r=this.backend.getMLContext(e);if(!r)throw new Error("MLContext not found for session.");return r}reserveTensorId(){let e=Hc();return this.tensorTrackersById.set(e,new Xc(this)),e}releaseTensorId(e){let r=this.tensorTrackersById.get(e);r&&(this.tensorTrackersById.delete(e),r.tensorWrapper&&this.releaseTensor(r.tensorWrapper))}async ensureTensor(e,r,t,s,o){Ot("verbose",()=>`[WebNN] TensorManager.ensureTensor {tensorId: ${r}, dataType: ${t}, shape: ${s}, copyOld: ${o}}`);let a=this.tensorTrackersById.get(r);if(!a)throw new Error("Tensor not found.");return a.ensureTensor(e,t,s,o)}upload(e,r){let t=this.tensorTrackersById.get(e);if(!t)throw new Error("Tensor not found.");t.upload(r)}async download(e,r){Ot("verbose",()=>`[WebNN] TensorManager.download {tensorId: ${e}, dstBuffer: ${r?.byteLength}}`);let t=this.tensorTrackersById.get(e);if(!t)throw new Error("Tensor not found.");return t.download(r)}releaseTensorsForSession(e){for(let r of this.freeTensors)r.sessionId===e&&r.destroy();this.freeTensors=this.freeTensors.filter(r=>r.sessionId!==e)}registerTensor(e,r,t,s){let o=this.getMLContext(e),a=Hc(),n=new Qc({sessionId:e,context:o,tensor:r,dataType:t,shape:s});return this.tensorTrackersById.set(a,new Xc(this,n)),this.externalTensors.add(n),a}async getCachedTensor(e,r,t,s,o,a,n=!1){let i=this.getMLContext(e);for(let[c,_]of this.freeTensors.entries())if(_.canReuseTensor(i,r,t)){Ot("verbose",()=>`[WebNN] Reusing tensor {dataType: ${r}, shape: ${t}}`);let u=this.freeTensors.splice(c,1)[0];return u.sessionId=e,u}Ot("verbose",()=>`[WebNN] MLContext.createTensor {dataType: ${r}, shape: ${t}}`);let l=await i.createTensor({dataType:r,shape:t,dimensions:t,usage:s,writable:o,readable:a});return new Qc({sessionId:e,context:i,tensor:l,dataType:r,shape:t,shouldConvertInt64toInt32:n})}releaseTensor(e){this.externalTensors.has(e)&&this.externalTensors.delete(e),this.freeTensors.push(e)}},Cv=(...e)=>new zg(...e)}),Ai,Rg,Sv,wP=Ve(()=>{"use strict";Mt(),jo(),kv(),MP(),Js(),Ai=new Map([[1,"float32"],[10,"float16"],[6,"int32"],[12,"uint32"],[7,"int64"],[13,"uint64"],[22,"int4"],[21,"uint4"],[3,"int8"],[2,"uint8"],[9,"uint8"]]),Rg=(e,r)=>{if(e===r)return!0;if(e===void 0||r===void 0)return!1;let t=Object.keys(e).sort(),s=Object.keys(r).sort();return t.length===s.length&&t.every((o,a)=>o===s[a]&&e[o]===r[o])},Sv=class{constructor(e){this.tensorManager=Cv(this),this.mlContextBySessionId=new Map,this.sessionIdsByMLContext=new Map,this.mlContextCache=[],this.sessionGraphInputs=new Map,this.temporaryGraphInputs=[],this.temporarySessionTensorIds=new Map,au(e.logLevel,!!e.debug)}get currentSessionId(){if(this.activeSessionId===void 0)throw new Error("No active session");return this.activeSessionId}onRunStart(e){Ot("verbose",()=>`[WebNN] onRunStart {sessionId: ${e}}`),this.activeSessionId=e}onRunEnd(e){Ot("verbose",()=>`[WebNN] onRunEnd {sessionId: ${e}}`);let r=this.temporarySessionTensorIds.get(e);if(r){for(let t of r)Ot("verbose",()=>`[WebNN] releasing temporary tensor {tensorId: ${t}}`),this.tensorManager.releaseTensorId(t);this.temporarySessionTensorIds.delete(e),this.activeSessionId=void 0}}async createMLContext(e){if(e instanceof GPUDevice){let t=this.mlContextCache.findIndex(s=>s.gpuDevice===e);if(t!==-1)return this.mlContextCache[t].mlContext;{let s=await navigator.ml.createContext(e);return this.mlContextCache.push({gpuDevice:e,mlContext:s}),s}}else if(e===void 0){let t=this.mlContextCache.findIndex(s=>s.options===void 0&&s.gpuDevice===void 0);if(t!==-1)return this.mlContextCache[t].mlContext;{let s=await navigator.ml.createContext();return this.mlContextCache.push({mlContext:s}),s}}let r=this.mlContextCache.findIndex(t=>Rg(t.options,e));if(r!==-1)return this.mlContextCache[r].mlContext;{let t=await navigator.ml.createContext(e);return this.mlContextCache.push({options:e,mlContext:t}),t}}registerMLContext(e,r){this.mlContextBySessionId.set(e,r);let t=this.sessionIdsByMLContext.get(r);t||(t=new Set,this.sessionIdsByMLContext.set(r,t)),t.add(e),this.temporaryGraphInputs.length>0&&(this.sessionGraphInputs.set(e,this.temporaryGraphInputs),this.temporaryGraphInputs=[])}onReleaseSession(e){this.sessionGraphInputs.delete(e);let r=this.mlContextBySessionId.get(e);if(!r)return;this.tensorManager.releaseTensorsForSession(e),this.mlContextBySessionId.delete(e);let t=this.sessionIdsByMLContext.get(r);if(t.delete(e),t.size===0){this.sessionIdsByMLContext.delete(r);let s=this.mlContextCache.findIndex(o=>o.mlContext===r);s!==-1&&this.mlContextCache.splice(s,1)}}getMLContext(e){return this.mlContextBySessionId.get(e)}reserveTensorId(){return this.tensorManager.reserveTensorId()}releaseTensorId(e){Ot("verbose",()=>`[WebNN] releaseTensorId {tensorId: ${e}}`),this.tensorManager.releaseTensorId(e)}async ensureTensor(e,r,t,s,o){let a=Ai.get(t);if(!a)throw new Error(`Unsupported ONNX data type: ${t}`);return this.tensorManager.ensureTensor(e??this.currentSessionId,r,a,s,o)}async createTemporaryTensor(e,r,t){Ot("verbose",()=>`[WebNN] createTemporaryTensor {onnxDataType: ${r}, shape: ${t}}`);let s=Ai.get(r);if(!s)throw new Error(`Unsupported ONNX data type: ${r}`);let o=this.tensorManager.reserveTensorId();await this.tensorManager.ensureTensor(e,o,s,t,!1);let a=this.temporarySessionTensorIds.get(e);return a?a.push(o):this.temporarySessionTensorIds.set(e,[o]),o}uploadTensor(e,r){if(!Jt().shouldTransferToMLTensor)throw new Error("Trying to upload to a MLTensor while shouldTransferToMLTensor is false");Ot("verbose",()=>`[WebNN] uploadTensor {tensorId: ${e}, data: ${r.byteLength}}`),this.tensorManager.upload(e,r)}async downloadTensor(e,r){return this.tensorManager.download(e,r)}createMLTensorDownloader(e,r){return async()=>{let t=await this.tensorManager.download(e);return nu(t,r)}}registerMLTensor(e,r,t,s){let o=Ai.get(t);if(!o)throw new Error(`Unsupported ONNX data type: ${t}`);let a=this.tensorManager.registerTensor(e,r,o,s);return Ot("verbose",()=>`[WebNN] registerMLTensor {tensor: ${r}, dataType: ${o}, dimensions: ${s}} -> {tensorId: ${a}}`),a}registerMLConstant(e,r,t,s,o,a,n=!1){if(!a)throw new Error("External mounted files are not available.");let i=e;e.startsWith("./")&&(i=e.substring(2));let l=a.get(i);if(!l)throw new Error(`File with name ${i} not found in preloaded files.`);if(r+t>l.byteLength)throw new Error("Out of bounds: data offset and length exceed the external file data size.");let c=l.slice(r,r+t).buffer,_;switch(o.dataType){case"float32":_=new Float32Array(c);break;case"float16":_=typeof Float16Array<"u"&&Float16Array.from?new Float16Array(c):new Uint16Array(c);break;case"int32":_=new Int32Array(c);break;case"uint32":_=new Uint32Array(c);break;case"int64":n?(_=Dd(new Uint8Array(c),!1),o.dataType="int32"):_=new BigInt64Array(c);break;case"uint64":_=new BigUint64Array(c);break;case"int8":_=new Int8Array(c);break;case"int4":case"uint4":case"uint8":_=new Uint8Array(c);break;default:throw new Error(`Unsupported data type: ${o.dataType} in creating WebNN Constant from external data.`)}return Ot("verbose",()=>`[WebNN] registerMLConstant {dataType: ${o.dataType}, shape: ${o.shape}}} ${n?"(Note: it was int64 data type and registered to int32 as workaround)":""}`),s.constant(o,_)}registerGraphInput(e){this.temporaryGraphInputs.push(e)}isGraphInput(e,r){let t=this.sessionGraphInputs.get(e);return t?t.includes(r):!1}isInt64Supported(e){return!!this.mlContextBySessionId.get(e)?.opSupportLimits().input.dataTypes.includes("int64")}flush(){}}}),iu=Ve(()=>{"use strict"}),Jc,$i,Di,Ng,jg,Yc,Od,Vg,Fv,bP=Ve(()=>{"use strict";Js(),iu(),Jc=new Map([[64,250],[128,200],[256,200],[512,200],[2048,230],[4096,200],[8192,50],[16384,50],[32768,50],[65536,50],[131072,50],[262144,50],[524288,50],[1048576,50],[2097152,30],[4194304,20],[8388608,10],[12582912,10],[16777216,10],[26214400,15],[33554432,22],[44236800,2],[58982400,6],[67108864,6],[134217728,6],[167772160,6]]),$i=[],Di=e=>Math.ceil(Number(e)/16)*16,Ng=e=>{for(let r=0;r<$i.length;r++){let t=$i[r];if(e<=t)return t}return Math.ceil(e/16)*16},jg=1,Yc=()=>jg++,Od=async(e,r,t,s)=>{let o=Di(t),a=e.device.createBuffer({size:o,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ});try{let n=e.getCommandEncoder();e.endComputePass(),n.copyBufferToBuffer(r,0,a,0,o),e.flush(),await a.mapAsync(GPUMapMode.READ);let i=a.getMappedRange();if(s){let l=s();return l.set(new Uint8Array(i,0,t)),l}else return new Uint8Array(i.slice(0,t))}finally{a.destroy()}},Vg=class{constructor(e){this.backend=e,this.storageCache=new Map,this.freeBuffers=new Map,this.freeUniformBuffers=new Map,this.buffersPending=[],this.capturedPendingBuffers=new Map;for(let[r]of Jc)$i.push(r),this.freeBuffers.set(r,[]),this.freeUniformBuffers.set(r,[]);this.sessionCount=0}upload(e,r){let t=r.buffer,s=r.byteOffset,o=r.byteLength,a=Di(o),n=this.storageCache.get(e);if(!n)throw new Error("gpu data for uploading does not exist");if(Number(n.originalSize)!==o)throw new Error(`inconsistent data size. gpu data size=${n.originalSize}, data size=${o}`);let i=this.backend.device.createBuffer({mappedAtCreation:!0,size:a,usage:GPUBufferUsage.MAP_WRITE|GPUBufferUsage.COPY_SRC}),l=i.getMappedRange();new Uint8Array(l).set(new Uint8Array(t,s,o)),i.unmap();let c=this.backend.device.createCommandEncoder();c.copyBufferToBuffer(i,0,n.gpuData.buffer,0,a),this.backend.device.queue.submit([c.finish()]),i.destroy(),Ot("verbose",()=>`[WebGPU] GpuDataManager.upload(id=${e})`)}memcpy(e,r){let t=this.storageCache.get(e);if(!t)throw new Error("source gpu data for memcpy does not exist");let s=this.storageCache.get(r);if(!s)throw new Error("destination gpu data for memcpy does not exist");if(t.originalSize!==s.originalSize)throw new Error("inconsistent source and destination gpu data size");let o=Di(t.originalSize),a=this.backend.getCommandEncoder();this.backend.endComputePass(),a.copyBufferToBuffer(t.gpuData.buffer,0,s.gpuData.buffer,0,o)}registerExternalBuffer(e,r,t){let s;if(t){if(s=t[0],e===t[1])return Ot("verbose",()=>`[WebGPU] GpuDataManager.registerExternalBuffer(size=${r}) => id=${s}, buffer is the same, skip.`),s;if(this.backend.capturedCommandList.has(this.backend.currentSessionId))throw new Error(`Registering a different external buffer under graph capture mode is not supported yet.
16
- Please use the previous external buffer!`)}else s=Yc();return this.storageCache.set(s,{gpuData:{id:s,type:0,buffer:e},originalSize:r}),Ot("verbose",()=>`[WebGPU] GpuDataManager.registerExternalBuffer(size=${r}) => id=${s}, registered.`),s}unregisterExternalBuffer(e){e!==void 0&&(this.storageCache.delete(e),Ot("verbose",()=>`[WebGPU] GpuDataManager.unregisterExternalBuffer() => id=${e}`))}create(e,r=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST){let t=Ng(e),s,o=(r&GPUBufferUsage.STORAGE)===GPUBufferUsage.STORAGE,a=(r&GPUBufferUsage.UNIFORM)===GPUBufferUsage.UNIFORM;if(o||a){let i=(o?this.freeBuffers:this.freeUniformBuffers).get(t);i?i.length>0?s=i.pop():s=this.backend.device.createBuffer({size:t,usage:r}):s=this.backend.device.createBuffer({size:t,usage:r})}else s=this.backend.device.createBuffer({size:t,usage:r});let n={id:Yc(),type:0,buffer:s};return this.storageCache.set(n.id,{gpuData:n,originalSize:Number(e)}),Ot("verbose",()=>`[WebGPU] GpuDataManager.create(size=${e}) => id=${n.id}`),n}get(e){return this.storageCache.get(e)?.gpuData}release(e){let r=typeof e=="bigint"?Number(e):e,t=this.storageCache.get(r);if(!t){if(this.storageCache.size===0)return 0;throw new Error("releasing data does not exist")}return Ot("verbose",()=>`[WebGPU] GpuDataManager.release(id=${r}), gpuDataId=${t.gpuData.id}`),this.storageCache.delete(r),this.buffersPending.push(t.gpuData.buffer),t.originalSize}async download(e,r){let t=this.storageCache.get(Number(e));if(!t)throw new Error("data does not exist");await Od(this.backend,t.gpuData.buffer,t.originalSize,r)}refreshPendingBuffers(){if(this.buffersPending.length!==0)if(this.backend.sessionStatus==="default"){for(let e of this.buffersPending){let r=Jc.get(e.size);if((e.usage&GPUBufferUsage.STORAGE)===GPUBufferUsage.STORAGE){let t=this.freeBuffers.get(e.size)||[];r===void 0||t.length>=r?e.destroy():t.push(e)}else if((e.usage&GPUBufferUsage.UNIFORM)===GPUBufferUsage.UNIFORM){let t=this.freeUniformBuffers.get(e.size)||[];r===void 0||t.length>=r?e.destroy():t.push(e)}else e.destroy()}this.buffersPending=[]}else{let e=this.capturedPendingBuffers.get(this.backend.currentSessionId);e||(e=[],this.capturedPendingBuffers.set(this.backend.currentSessionId,e));for(let r of this.buffersPending)e.push(r);this.buffersPending=[]}}dispose(){this.freeBuffers.forEach(e=>{e.forEach(r=>{r.destroy()})}),this.freeUniformBuffers.forEach(e=>{e.forEach(r=>{r.destroy()})}),this.storageCache.forEach(e=>{e.gpuData.buffer.destroy()}),this.capturedPendingBuffers.forEach(e=>{e.forEach(r=>{r.destroy()})}),this.storageCache=new Map,this.freeBuffers=new Map,this.freeUniformBuffers=new Map,this.capturedPendingBuffers=new Map}onCreateSession(){this.sessionCount+=1}onReleaseSession(e){let r=this.capturedPendingBuffers.get(e);r&&(r.forEach(t=>{t.destroy()}),this.capturedPendingBuffers.delete(e)),this.sessionCount-=1,this.sessionCount===0&&(Ot("warning",()=>"[WebGPU] Clearing webgpu buffer cache"),this.storageCache.forEach(t=>{t.gpuData.buffer.destroy()}),this.storageCache=new Map)}},Fv=(...e)=>new Vg(...e)}),Wg,jt,hr=Ve(()=>{"use strict";Wg=class{constructor(e){Object.assign(this,e)}get cacheKey(){return this.key||(this.key=Object.getOwnPropertyNames(this).sort().map(e=>`${this[e]}`).join(";")),this.key}},jt=e=>new Wg(e)}),ma,Oi,$r,Ur,dt,dr,Ld,_a,_o,lt,Za,Fe,it,Iv,lu,Ug,Av,Ct=Ve(()=>{"use strict";Mt(),kt(),ma=64,Oi=(e,r)=>{if(r===3)throw new Error("vec3 has same alignment as vec4, use vec4 instead");switch(Number(e)){case 10:return r>1?`vec${r}<f16>`:"f16";case 1:return r>1?`vec${r}<f32>`:"f32";case 6:return r>1?`vec${r}<i32>`:"i32";case 12:return r>1?`vec${r}<u32>`:"u32";case 7:if(r>1)throw new Error("currently not supported vecX of uint64 yet");return["vec2<u32>","i32"];case 13:if(r>1)throw new Error("currently not supported vecX of uint64 yet");return["vec2<u32>","u32"];case 9:if(r!==4)throw new Error("bool must be vec4");return["u32","vec4<bool>"];case 22:return"i32";case 21:return"u32";default:throw new Error(`Unknown data type: ${e}`)}},$r=(e,r=1)=>{let t=Oi(e,r);return typeof t=="string"?t:t[0]},Ur=(e,r=1)=>{let t=Oi(e,r);return typeof t=="string"?t:t[1]},dt=(...e)=>{let r=[];return e.forEach(t=>{t.length!==0&&r.push({type:12,data:t},{type:12,data:Me.computeStrides(t)})}),r},dr=e=>e%4===0?4:e%2===0?2:1,Ld=(e="f32",r,t="0")=>!r||r===1?`${e}(${t})`:`vec${r}<${e}>(${t})`,_a=(e,r,t)=>e==="f32"?t:r===1?`f32(${t})`:`vec${r}<f32>(${t})`,_o=(e,r)=>r===4?`(${e}.x + ${e}.y + ${e}.z + ${e}.w)`:r===2?`(${e}.x + ${e}.y)`:r===3?`(${e}.x + ${e}.y + ${e}.z)`:e,lt=(e,r,t,s)=>e.startsWith("uniforms.")&&t>4?typeof r=="string"?s==="f16"?`${e}[(${r}) / 8][(${r}) % 8 / 4][(${r}) % 8 % 4]`:`${e}[(${r}) / 4][(${r}) % 4]`:s==="f16"?`${e}[${Math.floor(r/8)}][${Math.floor(r%8/4)}][${r%8%4}]`:`${e}[${Math.floor(r/4)}][${r%4}]`:t>1?`${e}[${r}]`:e,Za=(e,r,t,s,o)=>{let a=typeof t=="number",n=a?t:t.length,i=[...new Array(n).keys()],l=n<2?"u32":n<=4?`vec${n}<u32>`:`array<u32, ${n}>`,c=Oi(r,o),_=typeof c=="string"?c:c[1],u=typeof c=="string"?c:c[0],d={indices:l,value:_,storage:u,tensor:r},g=Y=>typeof Y=="string"?Y:`${Y}u`,h={offsetToIndices:!1,indicesToOffset:!1,broadcastedIndicesToOffset:!1,set:!1,setByIndices:!1,get:!1,getByIndices:!1},x=a?"uniforms.":"",F=`${x}${e}_shape`,v=`${x}${e}_strides`,b="";for(let Y=0;Y<n-1;Y++)b+=`
13
+ `),m=(function(Tt){var Dt=Function;if(!(Dt instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof Dt} which is not a function`);var Wt=ga(Dt.name||"unknownFunctionName",function(){});return Wt.prototype=Dt.prototype,Wt=new Wt,(Tt=Dt.apply(Wt,Tt))instanceof Object?Tt:Wt})(Be)(...Je),$=`methodCaller<(${T.map(Tt=>Tt.name).join(", ")}) => ${B.name}>`,fn(ga($,m))}function wn(m){return m=er(m>>>0),_r(s[m])}function eo(m,T){return T>>>=0,m=ar(m>>>0),T=ar(T),_r(m[T])}function bn(m){9<(m>>>=0)&&(Nr[m+1]+=1)}function vn(){return _r([])}function xn(m){m=ar(m>>>0);for(var T=Array(m.length),$=0;$<m.length;$++)T[$]=m[$];return _r(T)}function yn(m){return _r(er(m>>>0))}function Tn(){return _r({})}function to(m){for(var T=ar(m>>>=0);T.length;){var $=T.pop();T.pop()($)}Gr(m)}function Pn(m,T,$){T>>>=0,$>>>=0,m=ar(m>>>0),T=ar(T),$=ar($),m[T]=$}function En(m,T){return T>>>=0,m=(m=Xt(m>>>0,"_emval_take_value")).readValueFromPointer(T),_r(m)}function kn(m,T){m=-9007199254740992>m||9007199254740992<m?NaN:Number(m),T>>>=0,m=new Date(1e3*m),L()[T>>>2>>>0]=m.getUTCSeconds(),L()[T+4>>>2>>>0]=m.getUTCMinutes(),L()[T+8>>>2>>>0]=m.getUTCHours(),L()[T+12>>>2>>>0]=m.getUTCDate(),L()[T+16>>>2>>>0]=m.getUTCMonth(),L()[T+20>>>2>>>0]=m.getUTCFullYear()-1900,L()[T+24>>>2>>>0]=m.getUTCDay(),m=(m.getTime()-Date.UTC(m.getUTCFullYear(),0,1,0,0,0,0))/864e5|0,L()[T+28>>>2>>>0]=m}var Ma=m=>m%4==0&&(m%100!=0||m%400==0),wa=[0,31,60,91,121,152,182,213,244,274,305,335],Go=[0,31,59,90,120,151,181,212,243,273,304,334];function Cn(m,T){m=-9007199254740992>m||9007199254740992<m?NaN:Number(m),T>>>=0,m=new Date(1e3*m),L()[T>>>2>>>0]=m.getSeconds(),L()[T+4>>>2>>>0]=m.getMinutes(),L()[T+8>>>2>>>0]=m.getHours(),L()[T+12>>>2>>>0]=m.getDate(),L()[T+16>>>2>>>0]=m.getMonth(),L()[T+20>>>2>>>0]=m.getFullYear()-1900,L()[T+24>>>2>>>0]=m.getDay();var $=(Ma(m.getFullYear())?wa:Go)[m.getMonth()]+m.getDate()-1|0;L()[T+28>>>2>>>0]=$,L()[T+36>>>2>>>0]=-60*m.getTimezoneOffset(),$=new Date(m.getFullYear(),6,1).getTimezoneOffset();var B=new Date(m.getFullYear(),0,1).getTimezoneOffset();m=0|($!=B&&m.getTimezoneOffset()==Math.min(B,$)),L()[T+32>>>2>>>0]=m}function Sn(m){m>>>=0;var T=new Date(L()[m+20>>>2>>>0]+1900,L()[m+16>>>2>>>0],L()[m+12>>>2>>>0],L()[m+8>>>2>>>0],L()[m+4>>>2>>>0],L()[m>>>2>>>0],0),$=L()[m+32>>>2>>>0],B=T.getTimezoneOffset(),V=new Date(T.getFullYear(),6,1).getTimezoneOffset(),ie=new Date(T.getFullYear(),0,1).getTimezoneOffset(),Ee=Math.min(ie,V);return 0>$?L()[m+32>>>2>>>0]=+(V!=ie&&Ee==B):0<$!=(Ee==B)&&(V=Math.max(ie,V),T.setTime(T.getTime()+6e4*((0<$?Ee:V)-B))),L()[m+24>>>2>>>0]=T.getDay(),$=(Ma(T.getFullYear())?wa:Go)[T.getMonth()]+T.getDate()-1|0,L()[m+28>>>2>>>0]=$,L()[m>>>2>>>0]=T.getSeconds(),L()[m+4>>>2>>>0]=T.getMinutes(),L()[m+8>>>2>>>0]=T.getHours(),L()[m+12>>>2>>>0]=T.getDate(),L()[m+16>>>2>>>0]=T.getMonth(),L()[m+20>>>2>>>0]=T.getYear(),m=T.getTime(),BigInt(isNaN(m)?-1:m/1e3)}function Ko(m,T,$,B,V,ie,Ee){return i?De(16,1,m,T,$,B,V,ie,Ee):-52}function ba(m,T,$,B,V,ie){if(i)return De(17,1,m,T,$,B,V,ie)}var Us={},Fn=()=>performance.timeOrigin+performance.now();function Ho(m,T){if(i)return De(18,1,m,T);if(Us[m]&&(clearTimeout(Us[m].id),delete Us[m]),!T)return 0;var $=setTimeout(()=>{delete Us[m],se(()=>La(m,performance.timeOrigin+performance.now()))},T);return Us[m]={id:$,qc:T},0}function Zi(m,T,$,B){m>>>=0,T>>>=0,$>>>=0,B>>>=0;var V=new Date().getFullYear(),ie=new Date(V,0,1).getTimezoneOffset();V=new Date(V,6,1).getTimezoneOffset();var Ee=Math.max(ie,V);ee()[m>>>2>>>0]=60*Ee,L()[T>>>2>>>0]=+(ie!=V),m=(T=Be=>{var Je=Math.abs(Be);return`UTC${0<=Be?"-":"+"}${String(Math.floor(Je/60)).padStart(2,"0")}${String(Je%60).padStart(2,"0")}`})(ie),T=T(V),V<ie?(Xr(m,$,17),Xr(T,B,17)):(Xr(m,B,17),Xr(T,$,17))}var In=()=>Date.now(),va=1;function xa(m,T,$){if(!(0<=m&&3>=m))return 28;if(m===0)m=Date.now();else{if(!va)return 52;m=performance.timeOrigin+performance.now()}return X[$>>>0>>>3]=BigInt(Math.round(1e6*m)),0}var ro=[],ya=(m,T)=>{ro.length=0;for(var $;$=Y()[m++>>>0];){var B=$!=105;T+=(B&=$!=112)&&T%8?4:0,ro.push($==112?ee()[T>>>2>>>0]:$==106?X[T>>>3]:$==105?L()[T>>>2>>>0]:ke()[T>>>3>>>0]),T+=B?8:4}return ro};function An(m,T,$){return m>>>=0,T=ya(T>>>0,$>>>0),Pe[m](...T)}function $n(m,T,$){return m>>>=0,T=ya(T>>>0,$>>>0),Pe[m](...T)}var Dn=()=>{};function On(m,T){return C(qt(m>>>0,T>>>0))}var Ln=()=>{throw ot+=1,"unwind"};function Ta(){return 4294901760}var Bn=()=>navigator.hardwareConcurrency;function zn(){return ve("Cannot use emscripten_pc_get_function without -sUSE_OFFSET_CONVERTER"),0}function Pa(m){m>>>=0;var T=Y().length;if(m<=T||4294901760<m)return!1;for(var $=1;4>=$;$*=2){var B=T*(1+.2/$);B=Math.min(B,m+100663296);e:{B=(Math.min(4294901760,65536*Math.ceil(Math.max(m,B)/65536))-y.buffer.byteLength+65535)/65536|0;try{y.grow(B),we();var V=1;break e}catch{}V=void 0}if(V)return!0}return!1}var mo=()=>(ve("Cannot use convertFrameToPC (needed by __builtin_return_address) without -sUSE_OFFSET_CONVERTER"),0),hs={},qo=m=>{m.forEach(T=>{var $=mo();$&&(hs[$]=T)})};function Rn(){var m=Error().stack.toString().split(`
14
+ `);return m[0]=="Error"&&m.shift(),qo(m),hs.Lb=mo(),hs.cc=m,hs.Lb}function Ea(m,T,$){if(m>>>=0,T>>>=0,hs.Lb==m)var B=hs.cc;else(B=Error().stack.toString().split(`
15
+ `))[0]=="Error"&&B.shift(),qo(B);for(var V=3;B[V]&&mo()!=m;)++V;for(m=0;m<$&&B[m+V];++m)L()[T+4*m>>>2>>>0]=mo();return m}var fs,Qo={},Nn=()=>{if(!fs){var m,T={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:"./this.program"};for(m in Qo)Qo[m]===void 0?delete T[m]:T[m]=Qo[m];var $=[];for(m in T)$.push(`${m}=${T[m]}`);fs=$}return fs};function ka(m,T){if(i)return De(19,1,m,T);m>>>=0,T>>>=0;var $=0;return Nn().forEach((B,V)=>{var ie=T+$;for(V=ee()[m+4*V>>>2>>>0]=ie,ie=0;ie<B.length;++ie)ye()[V++>>>0]=B.charCodeAt(ie);ye()[V>>>0]=0,$+=B.length+1}),0}function jn(m,T){if(i)return De(20,1,m,T);m>>>=0,T>>>=0;var $=Nn();ee()[m>>>2>>>0]=$.length;var B=0;return $.forEach(V=>B+=V.length+1),ee()[T>>>2>>>0]=B,0}function Ca(m){return i?De(21,1,m):52}function Xo(m,T,$,B){return i?De(22,1,m,T,$,B):52}function Sa(m,T,$,B){return i?De(23,1,m,T,$,B):70}var Vn=[null,[],[]];function Fa(m,T,$,B){if(i)return De(24,1,m,T,$,B);T>>>=0,$>>>=0,B>>>=0;for(var V=0,ie=0;ie<$;ie++){var Ee=ee()[T>>>2>>>0],Be=ee()[T+4>>>2>>>0];T+=8;for(var Je=0;Je<Be;Je++){var nt=Y()[Ee+Je>>>0],Tt=Vn[m];nt===0||nt===10?((m===1?b:C)(Cs(Tt)),Tt.length=0):Tt.push(nt)}V+=Be}return ee()[B>>>2>>>0]=V,0}i||(function(){for(var m=s.numThreads-1;m--;)zs();Re.unshift(()=>{ge++,(function(T){i?T():Promise.all(Ke.map(yr)).then(T)})(()=>Ae())})})();for(var Ia=Array(256),ho=0;256>ho;++ho)Ia[ho]=String.fromCharCode(ho);tt=Ia,gt=s.BindingError=class extends Error{constructor(m){super(m),this.name="BindingError"}},s.InternalError=class extends Error{constructor(m){super(m),this.name="InternalError"}},Nr.push(0,1,void 0,1,null,1,!0,1,!1,1),s.count_emval_handles=()=>Nr.length/2-5-as.length;var ct,Wn=[Qe,je,Yr,Ss,Qr,k,Q,N,K,Z,ce,xe,et,ut,qe,wt,Ko,ba,Ho,ka,jn,Ca,Xo,Sa,Fa];(async function(){function m(B,V){return ct=B.exports,ct=(function(){var ie=ct,Ee={};for(let[Be,Je]of Object.entries(ie))Ee[Be]=typeof Je=="function"?(...nt)=>{Zr.push(Be);try{return Je(...nt)}finally{oe||(Zr.pop(),zr&&Tr===1&&Zr.length===0&&(Tr=0,ot+=1,ir(Ra),typeof Fibers<"u"&&Fibers.rc()))}}:Je;return Ee})(),ct=(function(){var ie=ct,Ee=Je=>nt=>Je(nt)>>>0,Be=Je=>()=>Je()>>>0;return(ie=Object.assign({},ie)).Da=Ee(ie.Da),ie.fb=Be(ie.fb),ie.hb=Ee(ie.hb),ie.tb=Ee(ie.tb),ie.ub=Be(ie.ub),ie.__cxa_get_exception_ptr=Ee(ie.__cxa_get_exception_ptr),ie})(),At.push(ct.ib),P=V,Ae(),ct}ge++;var T=pe();if(s.instantiateWasm)return new Promise(B=>{s.instantiateWasm(T,(V,ie)=>{m(V,ie),B(V.exports)})});if(i)return new Promise(B=>{Le=V=>{var ie=new WebAssembly.Instance(V,pe());B(m(ie,V))}});le??=s.locateFile?s.locateFile?s.locateFile("ort-wasm-simd-threaded.jsep.wasm",x):x+"ort-wasm-simd-threaded.jsep.wasm":new URL("ort-wasm-simd-threaded.jsep.wasm",import.meta.url).href;try{var $=await(async function(B){var V=le;if(!re&&typeof WebAssembly.instantiateStreaming=="function"&&!ne(V))try{var ie=fetch(V,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(ie,B)}catch(Ee){C(`wasm streaming compile failed: ${Ee}`),C("falling back to ArrayBuffer instantiation")}return(async function(Ee,Be){try{var Je=await(async function(nt){if(!re)try{var Tt=await u(nt);return new Uint8Array(Tt)}catch{}if(nt==le&&re)nt=new Uint8Array(re);else{if(!d)throw"both async and sync fetching of the wasm failed";nt=d(nt)}return nt})(Ee);return await WebAssembly.instantiate(Je,Be)}catch(nt){C(`failed to asynchronously prepare wasm: ${nt}`),ve(nt)}})(V,B)})(T);return m($.instance,$.module)}catch(B){return t(B),Promise.reject(B)}})();var Aa=m=>(Aa=ct.Da)(m),$a=()=>($a=ct.Ea)();s._OrtInit=(m,T)=>(s._OrtInit=ct.Fa)(m,T),s._OrtGetLastError=(m,T)=>(s._OrtGetLastError=ct.Ga)(m,T),s._OrtCreateSessionOptions=(m,T,$,B,V,ie,Ee,Be,Je,nt)=>(s._OrtCreateSessionOptions=ct.Ha)(m,T,$,B,V,ie,Ee,Be,Je,nt),s._OrtAppendExecutionProvider=(m,T,$,B,V)=>(s._OrtAppendExecutionProvider=ct.Ia)(m,T,$,B,V),s._OrtAddFreeDimensionOverride=(m,T,$)=>(s._OrtAddFreeDimensionOverride=ct.Ja)(m,T,$),s._OrtAddSessionConfigEntry=(m,T,$)=>(s._OrtAddSessionConfigEntry=ct.Ka)(m,T,$),s._OrtReleaseSessionOptions=m=>(s._OrtReleaseSessionOptions=ct.La)(m),s._OrtCreateSession=(m,T,$)=>(s._OrtCreateSession=ct.Ma)(m,T,$),s._OrtReleaseSession=m=>(s._OrtReleaseSession=ct.Na)(m),s._OrtGetInputOutputCount=(m,T,$)=>(s._OrtGetInputOutputCount=ct.Oa)(m,T,$),s._OrtGetInputOutputMetadata=(m,T,$,B)=>(s._OrtGetInputOutputMetadata=ct.Pa)(m,T,$,B),s._OrtFree=m=>(s._OrtFree=ct.Qa)(m),s._OrtCreateTensor=(m,T,$,B,V,ie)=>(s._OrtCreateTensor=ct.Ra)(m,T,$,B,V,ie),s._OrtGetTensorData=(m,T,$,B,V)=>(s._OrtGetTensorData=ct.Sa)(m,T,$,B,V),s._OrtReleaseTensor=m=>(s._OrtReleaseTensor=ct.Ta)(m),s._OrtCreateRunOptions=(m,T,$,B)=>(s._OrtCreateRunOptions=ct.Ua)(m,T,$,B),s._OrtAddRunConfigEntry=(m,T,$)=>(s._OrtAddRunConfigEntry=ct.Va)(m,T,$),s._OrtReleaseRunOptions=m=>(s._OrtReleaseRunOptions=ct.Wa)(m),s._OrtCreateBinding=m=>(s._OrtCreateBinding=ct.Xa)(m),s._OrtBindInput=(m,T,$)=>(s._OrtBindInput=ct.Ya)(m,T,$),s._OrtBindOutput=(m,T,$,B)=>(s._OrtBindOutput=ct.Za)(m,T,$,B),s._OrtClearBoundOutputs=m=>(s._OrtClearBoundOutputs=ct._a)(m),s._OrtReleaseBinding=m=>(s._OrtReleaseBinding=ct.$a)(m),s._OrtRunWithBinding=(m,T,$,B,V)=>(s._OrtRunWithBinding=ct.ab)(m,T,$,B,V),s._OrtRun=(m,T,$,B,V,ie,Ee,Be)=>(s._OrtRun=ct.bb)(m,T,$,B,V,ie,Ee,Be),s._OrtEndProfiling=m=>(s._OrtEndProfiling=ct.cb)(m),s._JsepOutput=(m,T,$)=>(s._JsepOutput=ct.db)(m,T,$),s._JsepGetNodeName=m=>(s._JsepGetNodeName=ct.eb)(m);var so=()=>(so=ct.fb)(),es=s._free=m=>(es=s._free=ct.gb)(m),fo=s._malloc=m=>(fo=s._malloc=ct.hb)(m),go=(m,T,$,B,V,ie)=>(go=ct.kb)(m,T,$,B,V,ie),Da=()=>(Da=ct.lb)(),Oa=(m,T,$,B,V)=>(Oa=ct.mb)(m,T,$,B,V),Jo=m=>(Jo=ct.nb)(m),Yo=m=>(Yo=ct.ob)(m),La=(m,T)=>(La=ct.pb)(m,T),Zo=()=>(Zo=ct.qb)(),Ba=(m,T)=>(Ba=ct.rb)(m,T),Mo=m=>(Mo=ct.sb)(m),wo=m=>(wo=ct.tb)(m),ea=()=>(ea=ct.ub)(),za=s.dynCall_ii=(m,T)=>(za=s.dynCall_ii=ct.vb)(m,T),ta=m=>(ta=ct.wb)(m),Ra=()=>(Ra=ct.xb)(),Na=m=>(Na=ct.yb)(m),ra=()=>(ra=ct.zb)();return s.stackSave=()=>ea(),s.stackRestore=m=>Mo(m),s.stackAlloc=m=>wo(m),s.setValue=function(m,T,$="i8"){switch($.endsWith("*")&&($="*"),$){case"i1":case"i8":ye()[m>>>0]=T;break;case"i16":H()[m>>>1>>>0]=T;break;case"i32":L()[m>>>2>>>0]=T;break;case"i64":X[m>>>3]=BigInt(T);break;case"float":ue()[m>>>2>>>0]=T;break;case"double":ke()[m>>>3>>>0]=T;break;case"*":ee()[m>>>2>>>0]=T;break;default:ve(`invalid type for setValue: ${$}`)}},s.getValue=function(m,T="i8"){switch(T.endsWith("*")&&(T="*"),T){case"i1":case"i8":return ye()[m>>>0];case"i16":return H()[m>>>1>>>0];case"i32":return L()[m>>>2>>>0];case"i64":return X[m>>>3];case"float":return ue()[m>>>2>>>0];case"double":return ke()[m>>>3>>>0];case"*":return ee()[m>>>2>>>0];default:ve(`invalid type for getValue: ${T}`)}},s.UTF8ToString=qt,s.stringToUTF8=Xr,s.lengthBytesUTF8=St,(function m(){if(0<ge)be=m;else if(i)r(s),A();else{for(;0<Re.length;)Re.shift()(s);0<ge?be=m:(s.calledRun=!0,oe||(A(),r(s)))}})(),s.PTR_SIZE=4,o}),Mv=Rc,wg=globalThis.self?.name?.startsWith("em-pthread"),wg&&Rc()}),Nc,Ad,bg,rs,wv,Fi,vg,xg,jc,yg,Vc,bv,Wc,vv,Yd=Ve(()=>{"use strict";Jd(),Nc=typeof location>"u"?void 0:location.origin,Ad=import.meta.url>"file:"&&import.meta.url<"file;",bg=()=>{if(Ad){let e=URL;return new URL(new e("ort.bundle.min.mjs",import.meta.url).href,Nc).href}return import.meta.url},rs=bg(),wv=()=>{if(rs&&!rs.startsWith("blob:"))return rs.substring(0,rs.lastIndexOf("/")+1)},Fi=(e,r)=>{try{let t=r??rs;return(t?new URL(e,t):new URL(e)).origin===Nc}catch{return!1}},vg=(e,r)=>{let t=r??rs;try{return(t?new URL(e,t):new URL(e)).href}catch{return}},xg=(e,r)=>`${r??"./"}${e}`,jc=async e=>{let r=await(await fetch(e,{credentials:"same-origin"})).blob();return URL.createObjectURL(r)},yg=async e=>(await import(e)).default,Vc=(hP(),pn(hv)).default,bv=async()=>{if(!rs)throw new Error("Failed to load proxy worker: cannot determine the script source URL.");if(Fi(rs))return[void 0,Vc()];let e=await jc(rs);return[e,Vc(e)]},Wc=(fP(),pn(gv)).default,vv=async(e,r,t)=>{if(!e&&!r&&Wc&&rs&&Fi(rs))return[void 0,Wc];{let s="ort-wasm-simd-threaded.jsep.mjs",o=e??vg(s,r),a=t&&o&&!Fi(o,r),n=a?await jc(o):o??xg(s,r);return[a?n:void 0,await yg(n)]}}}),Uc,Ii,Ya,Gc,Tg,Pg,Eg,Zd,Jt,Vo=Ve(()=>{"use strict";Yd(),Ii=!1,Ya=!1,Gc=!1,Tg=()=>{if(typeof SharedArrayBuffer>"u")return!1;try{return typeof MessageChannel<"u"&&new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch{return!1}},Pg=()=>{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}},Eg=()=>{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}},Zd=async e=>{if(Ii)return Promise.resolve();if(Ya)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(Gc)throw new Error("previous call to 'initializeWebAssembly()' failed.");Ya=!0;let r=e.initTimeout,t=e.numThreads;if(e.simd!==!1){if(e.simd==="relaxed"){if(!Eg())throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.")}else if(!Pg())throw new Error("WebAssembly SIMD is not supported in the current environment.")}let s=Tg();t>1&&!s&&(typeof self<"u"&&!self.crossOriginIsolated&&console.warn("env.wasm.numThreads is set to "+t+", 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=t=1);let o=e.wasmPaths,a=typeof o=="string"?o:void 0,n=o?.mjs,i=n?.href??n,l=o?.wasm,c=l?.href??l,_=e.wasmBinary,[u,d]=await vv(i,a,t>1),g=!1,h=[];if(r>0&&h.push(new Promise(x=>{setTimeout(()=>{g=!0,x()},r)})),h.push(new Promise((x,F)=>{let v={numThreads:t};if(_)v.wasmBinary=_;else if(c||a)v.locateFile=b=>c??a+b;else if(i&&i.indexOf("blob:")!==0)v.locateFile=b=>new URL(b,i).href;else if(u){let b=wv();b&&(v.locateFile=C=>b+C)}d(v).then(b=>{Ya=!1,Ii=!0,Uc=b,x(),u&&URL.revokeObjectURL(u)},b=>{Ya=!1,Gc=!0,F(b)})})),await Promise.race(h),g)throw new Error(`WebAssembly backend initializing failed due to timeout: ${r}ms`)},Jt=()=>{if(Ii&&Uc)return Uc;throw new Error("WebAssembly is not initialized yet.")}}),Ts,Gi,Kt,eu=Ve(()=>{"use strict";Vo(),Ts=(e,r)=>{let t=Jt(),s=t.lengthBytesUTF8(e)+1,o=t._malloc(s);return t.stringToUTF8(e,o,s),r.push(o),o},Gi=(e,r,t,s)=>{if(typeof e=="object"&&e!==null){if(t.has(e))throw new Error("Circular reference in options");t.add(e)}Object.entries(e).forEach(([o,a])=>{let n=r?r+o:o;if(typeof a=="object")Gi(a,n+".",t,s);else if(typeof a=="string"||typeof a=="number")s(n,a.toString());else if(typeof a=="boolean")s(n,a?"1":"0");else throw new Error(`Can't handle extra config type: ${typeof a}`)})},Kt=e=>{let r=Jt(),t=r.stackSave();try{let s=r.PTR_SIZE,o=r.stackAlloc(2*s);r._OrtGetLastError(o,o+s);let a=Number(r.getValue(o,s===4?"i32":"i64")),n=r.getValue(o+s,"*"),i=n?r.UTF8ToString(n):"";throw new Error(`${e} ERROR_CODE: ${a}, ERROR_MESSAGE: ${i}`)}finally{r.stackRestore(t)}}}),xv,gP=Ve(()=>{"use strict";Vo(),eu(),xv=e=>{let r=Jt(),t=0,s=[],o=e||{};try{if(e?.logSeverityLevel===void 0)o.logSeverityLevel=2;else if(typeof e.logSeverityLevel!="number"||!Number.isInteger(e.logSeverityLevel)||e.logSeverityLevel<0||e.logSeverityLevel>4)throw new Error(`log serverity level is not valid: ${e.logSeverityLevel}`);if(e?.logVerbosityLevel===void 0)o.logVerbosityLevel=0;else if(typeof e.logVerbosityLevel!="number"||!Number.isInteger(e.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${e.logVerbosityLevel}`);e?.terminate===void 0&&(o.terminate=!1);let a=0;return e?.tag!==void 0&&(a=Ts(e.tag,s)),t=r._OrtCreateRunOptions(o.logSeverityLevel,o.logVerbosityLevel,!!o.terminate,a),t===0&&Kt("Can't create run options."),e?.extra!==void 0&&Gi(e.extra,"",new WeakSet,(n,i)=>{let l=Ts(n,s),c=Ts(i,s);r._OrtAddRunConfigEntry(t,l,c)!==0&&Kt(`Can't set a run config entry: ${n} - ${i}.`)}),[t,s]}catch(a){throw t!==0&&r._OrtReleaseRunOptions(t),s.forEach(n=>r._free(n)),a}}}),kg,Cg,Sg,Za,Fg,yv,MP=Ve(()=>{"use strict";Vo(),eu(),kg=e=>{switch(e){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"all":return 99;default:throw new Error(`unsupported graph optimization level: ${e}`)}},Cg=e=>{switch(e){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${e}`)}},Sg=e=>{e.extra||(e.extra={}),e.extra.session||(e.extra.session={});let r=e.extra.session;r.use_ort_model_bytes_directly||(r.use_ort_model_bytes_directly="1"),e.executionProviders&&e.executionProviders.some(t=>(typeof t=="string"?t:t.name)==="webgpu")&&(e.enableMemPattern=!1)},Za=(e,r,t,s)=>{let o=Ts(r,s),a=Ts(t,s);Jt()._OrtAddSessionConfigEntry(e,o,a)!==0&&Kt(`Can't set a session config entry: ${r} - ${t}.`)},Fg=async(e,r,t)=>{for(let s of r){let o=typeof s=="string"?s:s.name,a=[];switch(o){case"webnn":if(o="WEBNN",typeof s!="string"){let _=s?.deviceType;_&&Za(e,"deviceType",_,t)}break;case"webgpu":if(o="JS",typeof s!="string"){let _=s;if(_?.preferredLayout){if(_.preferredLayout!=="NCHW"&&_.preferredLayout!=="NHWC")throw new Error(`preferredLayout must be either 'NCHW' or 'NHWC': ${_.preferredLayout}`);Za(e,"preferredLayout",_.preferredLayout,t)}}break;case"wasm":case"cpu":continue;default:throw new Error(`not supported execution provider: ${o}`)}let n=Ts(o,t),i=a.length,l=0,c=0;if(i>0){l=Jt()._malloc(i*Jt().PTR_SIZE),t.push(l),c=Jt()._malloc(i*Jt().PTR_SIZE),t.push(c);for(let _=0;_<i;_++)Jt().setValue(l+_*Jt().PTR_SIZE,a[_][0],"*"),Jt().setValue(c+_*Jt().PTR_SIZE,a[_][1],"*")}await Jt()._OrtAppendExecutionProvider(e,n,l,c,i)!==0&&Kt(`Can't append execution provider: ${o}.`)}},yv=async e=>{let r=Jt(),t=0,s=[],o=e||{};Sg(o);try{let a=kg(o.graphOptimizationLevel??"all"),n=Cg(o.executionMode??"sequential"),i=typeof o.logId=="string"?Ts(o.logId,s):0,l=o.logSeverityLevel??2;if(!Number.isInteger(l)||l<0||l>4)throw new Error(`log serverity level is not valid: ${l}`);let c=o.logVerbosityLevel??0;if(!Number.isInteger(c)||c<0||c>4)throw new Error(`log verbosity level is not valid: ${c}`);let _=typeof o.optimizedModelFilePath=="string"?Ts(o.optimizedModelFilePath,s):0;if(t=r._OrtCreateSessionOptions(a,!!o.enableCpuMemArena,!!o.enableMemPattern,n,!!o.enableProfiling,0,i,l,c,_),t===0&&Kt("Can't create session options."),o.executionProviders&&await Fg(t,o.executionProviders,s),o.enableGraphCapture!==void 0){if(typeof o.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${o.enableGraphCapture}`);Za(t,"enableGraphCapture",o.enableGraphCapture.toString(),s)}if(o.freeDimensionOverrides)for(let[u,d]of Object.entries(o.freeDimensionOverrides)){if(typeof u!="string")throw new Error(`free dimension override name must be a string: ${u}`);if(typeof d!="number"||!Number.isInteger(d)||d<0)throw new Error(`free dimension override value must be a non-negative integer: ${d}`);let g=Ts(u,s);r._OrtAddFreeDimensionOverride(t,g,d)!==0&&Kt(`Can't set a free dimension override: ${u} - ${d}.`)}return o.extra!==void 0&&Gi(o.extra,"",new WeakSet,(u,d)=>{Za(t,u,d,s)}),[t,s]}catch(a){throw t!==0&&r._OrtReleaseSessionOptions(t)!==0&&Kt("Can't release session options."),s.forEach(n=>r._free(n)),a}}}),_a,Xs,Bo,tu,Ki,ru,su,$d,Mt=Ve(()=>{"use strict";_a=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 new Error(`unsupported data type: ${e}`)}},Xs=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 new Error(`unsupported data type: ${e}`)}},Bo=(e,r)=>{let t=[-1,4,1,1,2,2,4,8,-1,1,2,8,4,8,-1,-1,-1,-1,-1,-1,-1,.5,.5][e],s=typeof r=="number"?r:r.reduce((o,a)=>o*a,1);return t>0?Math.ceil(s*t):void 0},tu=e=>{switch(e){case"float16":return typeof Float16Array<"u"&&Float16Array.from?Float16Array:Uint16Array;case"float32":return Float32Array;case"uint8":return Uint8Array;case"int8":return Int8Array;case"uint16":return Uint16Array;case"int16":return Int16Array;case"int32":return Int32Array;case"bool":return Uint8Array;case"float64":return Float64Array;case"uint32":return Uint32Array;case"int64":return BigInt64Array;case"uint64":return BigUint64Array;default:throw new Error(`unsupported type: ${e}`)}},Ki=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 new Error(`unsupported logging level: ${e}`)}},ru=e=>e==="float32"||e==="float16"||e==="int32"||e==="int64"||e==="uint32"||e==="uint8"||e==="bool"||e==="uint4"||e==="int4",su=e=>e==="float32"||e==="float16"||e==="int32"||e==="int64"||e==="uint32"||e==="uint64"||e==="int8"||e==="uint8"||e==="bool"||e==="uint4"||e==="int4",$d=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 new Error(`unsupported data location: ${e}`)}}}),ou,Tv=Ve(()=>{"use strict";Jd(),ou=async e=>{if(typeof e=="string"){let r=await fetch(e);if(!r.ok)throw new Error(`failed to load external data file: ${e}`);let t=r.headers.get("Content-Length"),s=t?parseInt(t,10):0;if(s<1073741824)return new Uint8Array(await r.arrayBuffer());{if(!r.body)throw new Error(`failed to load external data file: ${e}, no response body.`);let o=r.body.getReader(),a;try{a=new ArrayBuffer(s)}catch(i){if(i instanceof RangeError){let l=Math.ceil(s/65536);a=new WebAssembly.Memory({initial:l,maximum:l}).buffer}else throw i}let n=0;for(;;){let{done:i,value:l}=await o.read();if(i)break;let c=l.byteLength;new Uint8Array(a,n,c).set(l),n+=c}return new Uint8Array(a,0,s)}}else return e instanceof Blob?new Uint8Array(await e.arrayBuffer()):e instanceof Uint8Array?e:new Uint8Array(e)}}),Ig,Ag,$g,Dg,au,Og,Ot,Js=Ve(()=>{"use strict";Mt(),Ig=["V","I","W","E","F"],Ag=(e,r)=>{console.log(`[${Ig[e]},${new Date().toISOString()}]${r}`)},au=(e,r)=>{$g=e,Dg=r},Og=(e,r)=>{let t=Ki(e),s=Ki($g);t>=s&&Ag(t,typeof r=="function"?r():r)},Ot=(...e)=>{Dg&&Og(...e)}}),Lg,ma,Me,Hi,Pv,Ev,kv,kt=Ve(()=>{"use strict";Lg=class{static calcMatMulShape(e,r){return e[1]!==r[0]?void 0:[e[0],r[1]]}},ma=class{static calcShape(e,r,t=!1){let s=e.length,o=r.length;if(s===0)return r;if(o===0)return e;let a=Math.max(e.length,r.length),n=new Array(a);if(t){if(s<2||o<2)return;let i=Lg.calcMatMulShape([e[s-2],e[s-1]],[r[o-2],r[o-1]]);if(i===void 0)return;[n[a-2],n[a-1]]=i}for(let i=t?3:1;i<=a;i++){let l=s-i<0?1:e[s-i],c=o-i<0?1:r[o-i];if(l!==c&&l>1&&c>1)return;let _=Math.max(l,c);if(l&&c)n[a-i]=Math.max(l,c);else{if(_>1)return;n[a-i]=0}}return n}static isValidBroadcast(e,r){let t=e.length,s=r.length;if(t>s)return!1;for(let o=1;o<=t;o++)if(e[t-o]!==1&&e[t-o]!==r[s-o])return!1;return!0}},Me=class Wi{static size(r){return Wi.getSizeFromDimensionRange(r,0,r.length)}static convertShape(r,t=4){let s=r.length;if(s===0)return[];let o=new Array(s),a=s-1;for(;a>=0;){if(r[a]%t===0){o[a]=r[a]/t;break}if(t%r[a]!==0)throw new Error("cannot convert shape");o[a]=1,t/=r[a],a--}for(a--;a>=0;a--)o[a]=r[a];return o}static sizeFromDimension(r,t){if(t<0||t>r.length)throw new Error(`invalid dimension of ${t} for sizeFromDimension as Tensor has ${r.length} dimensions.`);return Wi.getSizeFromDimensionRange(r,t,r.length)}static sizeToDimension(r,t){if(t<0||t>r.length)throw new Error(`invalid dimension of ${t} for sizeToDimension as Tensor has ${r.length} dimensions.`);return Wi.getSizeFromDimensionRange(r,0,t)}static getSizeFromDimensionRange(r,t,s){let o=1;for(let a=t;a<s;a++){if(r[a]<0)throw new Error("cannot get valid size from specified dimension range. Most likely the range contains negative values in them.");o*=Number(r[a])}return o}static computeStrides(r){let t=r.length;if(t===0)return[];if(t===1)return[1];let s=new Array(t);s[t-1]=1,s[t-2]=r[t-1];for(let o=t-3;o>=0;--o)s[o]=s[o+1]*r[o+1];return s}static normalizeAxis(r,t){if(r<-t&&r>=t)throw new Error("unsupported axis for this operation.");return r<0?r+t:r}static normalizeAxes(r,t){return r.map(s=>this.normalizeAxis(s,t??r.length))}static sortBasedOnPerm(r,t){return t?t.map(s=>r[s]):r.slice().reverse()}static padShape(r,t){let s=r.length;return r.map((o,a)=>o+t[a]+t[a+s])}static areEqual(r,t){return r.length!==t.length?!1:r.every((s,o)=>s===t[o])}},Hi=class cn{static adjustPoolAttributes(r,t,s,o,a,n){if(!r&&s.length!==t.length-2)throw new Error("length of specified kernel shapes should be 2 less than length of input dimensions");if(r)for(let i=0;i<t.length-2;i++)i>=s.length?s.push(t[i+2]):s[i]=t[i+2];for(let i=0;i<s.length;i++)if(i<o.length){if(o[i]<0)throw new Error("strides should be greater than or equal to 1")}else o.push(1);for(let i=0;i<s.length;i++)if(i<a.length){if(a[i]<0)throw new Error("dilations should be greater than or equal to 1")}else a.push(1);for(let i=0;i<s.length*2;i++)if(i<n.length){if(n[i]<0)throw new Error("pad should be greater than or equal to 1")}else n.push(0);for(let i=0;i<s.length;i++){if(s[i]<=0)throw new Error("kernel shapes need to be greater than 0");if(n[i]>=s[i]||n[i+s.length]>=s[i])throw new Error("pads should be smaller than kernel")}}static adjustPadsBasedOnAutoPad(r,t,s,o,a,n,i){if(i){if(a.length!==2*(r.length-2))throw new Error("length of pads should be twice the length of data dimensions");if(t.length!==r.length-2)throw new Error("length of strides should be the length of data dimensions");if(o.length!==r.length-2)throw new Error("length of kernel shapes should be the length of data dimensions");for(let l=0;l<r.length-2;l++)cn.adjustPadAndReturnShape(r[l+(n?1:2)],t[l],s[l],o[l],a,l,l+r.length-2,i)}}static computePoolOutputShape(r,t,s,o,a,n,i){if(t.length<=0)throw new Error("input shape must be of size greater than 0");let l=[t[0],t[1]];return cn.computeShapeHelper(r,t,l,s,o,a,n,i),l}static computeConvOutputShape(r,t,s,o,a,n,i){if(r.length<=0||t.length<=0)throw new Error("invalid input tensor dims or invalid filter tensor dims");let l=[r[0],t[0]];return cn.computeShapeHelper(!1,r,l,s,o,a,n,i),l}static computeShapeHelper(r,t,s,o,a,n,i,l){if(r)for(let c=0;c<t.length-2;c++)s.push(1);else for(let c=0;c<t.length-2;c++)s.push(cn.adjustPadAndReturnShape(t[c+2],o[c],a[c],n[c],i,c,c+t.length-2,l))}static adjustPadAndReturnShape(r,t,s,o,a,n,i,l){let c=s*(o-1)+1;if(l&&l!=="NOTSET")switch(l){case"VALID":return a[n]=0,a[i]=0,Math.floor((r-c)/t+1);case"SAME_LOWER":case"SAME_UPPER":if(s!==1)throw new Error("Dilation not supported for SAME_UPPER or SAME_LOWER");{let _=((r+t-1)/t-1)*t+o-r;return a[n]=Math.floor(l==="SAME_LOWER"?(_+1)/2:_/2),a[i]=_-a[n],Math.floor((r+_-o)/t+1)}default:throw new Error("Unsupported AutoPad type")}else return Math.floor((r+a[n]+a[i]-c)/t+1)}},Pv=class{static getShapeOfGemmResult(e,r,t,s,o){if(e.length!==2||t.length!==2)throw new Error("shape need to be of size 2");let a,n,i;r?(a=e[1],n=e[0]):(a=e[0],n=e[1]);let l=-1;if(s?(i=t[0],l=1):(i=t[1],l=0),t[l]!==n)throw new Error("dimension mismatch");if(a<=0||i<=0||n<=0)throw new Error("invalid shape specified");if(o&&!ma.isValidBroadcast(o,[a,i]))throw new Error("gemm: invalid bias shape for broadcast");return[a,i,n]}},Ev=-34028234663852886e22,kv=34028234663852886e22}),nu,Cv=Ve(()=>{"use strict";Mt(),nu=(e,r)=>new(tu(r))(e)}),Dd,Kc,Bg,Hc,zg,qc,Qc,Xc,Rg,Sv,wP=Ve(()=>{"use strict";Js(),Dd=(e,r=!0)=>{if(e.byteLength%8!==0)throw new Error("Invalid Uint8Array length - must be a multiple of 8 (BigInt).");let t=e.byteLength/8,s=new BigInt64Array(e.buffer,e.byteOffset,t),o=new Int32Array(t);for(let a=0;a<t;a++){let n=s[a];if(n>2147483647n||n<-2147483648n)throw new Error(`Overflow occurred when converting BigInt to Int32 at index ${a}: ${n}`);o[a]=Number(n)}return r?new Uint8Array(o.buffer):o},Kc=(e,r=!0)=>{if(e.byteLength%4!==0)throw new Error("Invalid Uint8Array length - must be a multiple of 4 (Int32).");let t=e.byteLength/4,s=new Int32Array(e.buffer,e.byteOffset,t),o=BigInt64Array.from(s,BigInt);return r?new Uint8Array(o.buffer):o},Bg=1,Hc=()=>Bg++,zg=new Map([["float32",32],["float16",16],["int32",32],["uint32",32],["int64",64],["uint64",64],["int8",8],["uint8",8],["int4",4],["uint4",4]]),qc=(e,r)=>{let t=zg.get(e);if(!t)throw new Error("Unsupported data type.");return r.length>0?Math.ceil(r.reduce((s,o)=>s*o)*t/8):0},Qc=class{constructor(e){this.shouldConvertInt64toInt32=!1,this.isInt64ToInt32Converted=!1;let{sessionId:r,context:t,tensor:s,dataType:o,shape:a,shouldConvertInt64toInt32:n=!1}=e;this.sessionId=r,this.mlContext=t,this.mlTensor=s,this.dataType=o,this.tensorShape=a,this.shouldConvertInt64toInt32=n}get tensor(){return this.mlTensor}get type(){return this.dataType}get shape(){return this.tensorShape}get byteLength(){return qc(this.dataType,this.tensorShape)}destroy(){Ot("verbose",()=>"[WebNN] TensorWrapper.destroy"),this.mlTensor.destroy()}write(e){this.mlContext.writeTensor(this.mlTensor,e)}async read(e,r){if(e){let t=await this.mlContext.readTensor(this.mlTensor),s=Kc(new Uint8Array(t));if(r){(r instanceof ArrayBuffer?new Uint8Array(r):new Uint8Array(r.buffer,r.byteOffset,r.byteLength)).set(s);return}else return s.buffer}else return r?this.mlContext.readTensor(this.mlTensor,r):this.mlContext.readTensor(this.mlTensor)}canReuseTensor(e,r,t){return this.mlContext===e&&this.dataType===r&&this.tensorShape.length===t.length&&this.tensorShape.every((s,o)=>s===t[o])}setIsInt64ToInt32Converted(e){this.isInt64ToInt32Converted=e}},Xc=class{constructor(e,r){this.tensorManager=e,this.wrapper=r}get tensorWrapper(){return this.wrapper}releaseTensor(){this.tensorWrapper&&(this.tensorManager.releaseTensor(this.tensorWrapper),this.wrapper=void 0)}async ensureTensor(e,r,t,s){let o=r,a=this.tensorManager.getMLContext(e),n=o==="int64"&&!a.opSupportLimits().input.dataTypes.includes("int64");if(n&&(o="int32",Ot("verbose",()=>"[WebNN] TensorIdTracker.ensureTensor: convert dataType from int64 to int32")),this.wrapper){if(this.wrapper.canReuseTensor(a,o,t))return this.wrapper.tensor;if(s){if(this.wrapper.byteLength!==qc(o,t))throw new Error("Unable to copy data to tensor with different size.");this.activeUpload=new Uint8Array(await this.wrapper.read())}this.tensorManager.releaseTensor(this.wrapper)}let i=typeof MLTensorUsage>"u"?void 0:MLTensorUsage.READ|MLTensorUsage.WRITE;return this.wrapper=await this.tensorManager.getCachedTensor(e,o,t,i,!0,!0,n),s&&this.activeUpload&&(this.wrapper.write(this.activeUpload),this.activeUpload=void 0),this.wrapper.tensor}upload(e){let r=e;if(this.wrapper)if(this.wrapper.shouldConvertInt64toInt32&&(r=Dd(e,!0),this.wrapper.setIsInt64ToInt32Converted(!0)),r.byteLength===this.wrapper.byteLength){this.wrapper.write(r);return}else Ot("verbose",()=>"Data size does not match tensor size. Releasing tensor."),this.releaseTensor();this.activeUpload?this.activeUpload.set(r):this.activeUpload=new Uint8Array(r)}async download(e){if(this.activeUpload){let r=this.wrapper?.isInt64ToInt32Converted?Kc(this.activeUpload):this.activeUpload;if(e){e instanceof ArrayBuffer?new Uint8Array(e).set(r):new Uint8Array(e.buffer,e.byteOffset,e.byteLength).set(r);return}else return r.buffer}if(!this.wrapper)throw new Error("Tensor has not been created.");return e?this.wrapper.read(this.wrapper?.shouldConvertInt64toInt32,e):this.wrapper.read(this.wrapper?.shouldConvertInt64toInt32)}},Rg=class{constructor(e){this.backend=e,this.tensorTrackersById=new Map,this.freeTensors=[],this.externalTensors=new Set}getMLContext(e){let r=this.backend.getMLContext(e);if(!r)throw new Error("MLContext not found for session.");return r}reserveTensorId(){let e=Hc();return this.tensorTrackersById.set(e,new Xc(this)),e}releaseTensorId(e){let r=this.tensorTrackersById.get(e);r&&(this.tensorTrackersById.delete(e),r.tensorWrapper&&this.releaseTensor(r.tensorWrapper))}async ensureTensor(e,r,t,s,o){Ot("verbose",()=>`[WebNN] TensorManager.ensureTensor {tensorId: ${r}, dataType: ${t}, shape: ${s}, copyOld: ${o}}`);let a=this.tensorTrackersById.get(r);if(!a)throw new Error("Tensor not found.");return a.ensureTensor(e,t,s,o)}upload(e,r){let t=this.tensorTrackersById.get(e);if(!t)throw new Error("Tensor not found.");t.upload(r)}async download(e,r){Ot("verbose",()=>`[WebNN] TensorManager.download {tensorId: ${e}, dstBuffer: ${r?.byteLength}}`);let t=this.tensorTrackersById.get(e);if(!t)throw new Error("Tensor not found.");return t.download(r)}releaseTensorsForSession(e){for(let r of this.freeTensors)r.sessionId===e&&r.destroy();this.freeTensors=this.freeTensors.filter(r=>r.sessionId!==e)}registerTensor(e,r,t,s){let o=this.getMLContext(e),a=Hc(),n=new Qc({sessionId:e,context:o,tensor:r,dataType:t,shape:s});return this.tensorTrackersById.set(a,new Xc(this,n)),this.externalTensors.add(n),a}async getCachedTensor(e,r,t,s,o,a,n=!1){let i=this.getMLContext(e);for(let[c,_]of this.freeTensors.entries())if(_.canReuseTensor(i,r,t)){Ot("verbose",()=>`[WebNN] Reusing tensor {dataType: ${r}, shape: ${t}}`);let u=this.freeTensors.splice(c,1)[0];return u.sessionId=e,u}Ot("verbose",()=>`[WebNN] MLContext.createTensor {dataType: ${r}, shape: ${t}}`);let l=await i.createTensor({dataType:r,shape:t,dimensions:t,usage:s,writable:o,readable:a});return new Qc({sessionId:e,context:i,tensor:l,dataType:r,shape:t,shouldConvertInt64toInt32:n})}releaseTensor(e){this.externalTensors.has(e)&&this.externalTensors.delete(e),this.freeTensors.push(e)}},Sv=(...e)=>new Rg(...e)}),Ai,Ng,Fv,bP=Ve(()=>{"use strict";Mt(),Vo(),Cv(),wP(),Js(),Ai=new Map([[1,"float32"],[10,"float16"],[6,"int32"],[12,"uint32"],[7,"int64"],[13,"uint64"],[22,"int4"],[21,"uint4"],[3,"int8"],[2,"uint8"],[9,"uint8"]]),Ng=(e,r)=>{if(e===r)return!0;if(e===void 0||r===void 0)return!1;let t=Object.keys(e).sort(),s=Object.keys(r).sort();return t.length===s.length&&t.every((o,a)=>o===s[a]&&e[o]===r[o])},Fv=class{constructor(e){this.tensorManager=Sv(this),this.mlContextBySessionId=new Map,this.sessionIdsByMLContext=new Map,this.mlContextCache=[],this.sessionGraphInputs=new Map,this.temporaryGraphInputs=[],this.temporarySessionTensorIds=new Map,au(e.logLevel,!!e.debug)}get currentSessionId(){if(this.activeSessionId===void 0)throw new Error("No active session");return this.activeSessionId}onRunStart(e){Ot("verbose",()=>`[WebNN] onRunStart {sessionId: ${e}}`),this.activeSessionId=e}onRunEnd(e){Ot("verbose",()=>`[WebNN] onRunEnd {sessionId: ${e}}`);let r=this.temporarySessionTensorIds.get(e);if(r){for(let t of r)Ot("verbose",()=>`[WebNN] releasing temporary tensor {tensorId: ${t}}`),this.tensorManager.releaseTensorId(t);this.temporarySessionTensorIds.delete(e),this.activeSessionId=void 0}}async createMLContext(e){if(e instanceof GPUDevice){let t=this.mlContextCache.findIndex(s=>s.gpuDevice===e);if(t!==-1)return this.mlContextCache[t].mlContext;{let s=await navigator.ml.createContext(e);return this.mlContextCache.push({gpuDevice:e,mlContext:s}),s}}else if(e===void 0){let t=this.mlContextCache.findIndex(s=>s.options===void 0&&s.gpuDevice===void 0);if(t!==-1)return this.mlContextCache[t].mlContext;{let s=await navigator.ml.createContext();return this.mlContextCache.push({mlContext:s}),s}}let r=this.mlContextCache.findIndex(t=>Ng(t.options,e));if(r!==-1)return this.mlContextCache[r].mlContext;{let t=await navigator.ml.createContext(e);return this.mlContextCache.push({options:e,mlContext:t}),t}}registerMLContext(e,r){this.mlContextBySessionId.set(e,r);let t=this.sessionIdsByMLContext.get(r);t||(t=new Set,this.sessionIdsByMLContext.set(r,t)),t.add(e),this.temporaryGraphInputs.length>0&&(this.sessionGraphInputs.set(e,this.temporaryGraphInputs),this.temporaryGraphInputs=[])}onReleaseSession(e){this.sessionGraphInputs.delete(e);let r=this.mlContextBySessionId.get(e);if(!r)return;this.tensorManager.releaseTensorsForSession(e),this.mlContextBySessionId.delete(e);let t=this.sessionIdsByMLContext.get(r);if(t.delete(e),t.size===0){this.sessionIdsByMLContext.delete(r);let s=this.mlContextCache.findIndex(o=>o.mlContext===r);s!==-1&&this.mlContextCache.splice(s,1)}}getMLContext(e){return this.mlContextBySessionId.get(e)}reserveTensorId(){return this.tensorManager.reserveTensorId()}releaseTensorId(e){Ot("verbose",()=>`[WebNN] releaseTensorId {tensorId: ${e}}`),this.tensorManager.releaseTensorId(e)}async ensureTensor(e,r,t,s,o){let a=Ai.get(t);if(!a)throw new Error(`Unsupported ONNX data type: ${t}`);return this.tensorManager.ensureTensor(e??this.currentSessionId,r,a,s,o)}async createTemporaryTensor(e,r,t){Ot("verbose",()=>`[WebNN] createTemporaryTensor {onnxDataType: ${r}, shape: ${t}}`);let s=Ai.get(r);if(!s)throw new Error(`Unsupported ONNX data type: ${r}`);let o=this.tensorManager.reserveTensorId();await this.tensorManager.ensureTensor(e,o,s,t,!1);let a=this.temporarySessionTensorIds.get(e);return a?a.push(o):this.temporarySessionTensorIds.set(e,[o]),o}uploadTensor(e,r){if(!Jt().shouldTransferToMLTensor)throw new Error("Trying to upload to a MLTensor while shouldTransferToMLTensor is false");Ot("verbose",()=>`[WebNN] uploadTensor {tensorId: ${e}, data: ${r.byteLength}}`),this.tensorManager.upload(e,r)}async downloadTensor(e,r){return this.tensorManager.download(e,r)}createMLTensorDownloader(e,r){return async()=>{let t=await this.tensorManager.download(e);return nu(t,r)}}registerMLTensor(e,r,t,s){let o=Ai.get(t);if(!o)throw new Error(`Unsupported ONNX data type: ${t}`);let a=this.tensorManager.registerTensor(e,r,o,s);return Ot("verbose",()=>`[WebNN] registerMLTensor {tensor: ${r}, dataType: ${o}, dimensions: ${s}} -> {tensorId: ${a}}`),a}registerMLConstant(e,r,t,s,o,a,n=!1){if(!a)throw new Error("External mounted files are not available.");let i=e;e.startsWith("./")&&(i=e.substring(2));let l=a.get(i);if(!l)throw new Error(`File with name ${i} not found in preloaded files.`);if(r+t>l.byteLength)throw new Error("Out of bounds: data offset and length exceed the external file data size.");let c=l.slice(r,r+t).buffer,_;switch(o.dataType){case"float32":_=new Float32Array(c);break;case"float16":_=typeof Float16Array<"u"&&Float16Array.from?new Float16Array(c):new Uint16Array(c);break;case"int32":_=new Int32Array(c);break;case"uint32":_=new Uint32Array(c);break;case"int64":n?(_=Dd(new Uint8Array(c),!1),o.dataType="int32"):_=new BigInt64Array(c);break;case"uint64":_=new BigUint64Array(c);break;case"int8":_=new Int8Array(c);break;case"int4":case"uint4":case"uint8":_=new Uint8Array(c);break;default:throw new Error(`Unsupported data type: ${o.dataType} in creating WebNN Constant from external data.`)}return Ot("verbose",()=>`[WebNN] registerMLConstant {dataType: ${o.dataType}, shape: ${o.shape}}} ${n?"(Note: it was int64 data type and registered to int32 as workaround)":""}`),s.constant(o,_)}registerGraphInput(e){this.temporaryGraphInputs.push(e)}isGraphInput(e,r){let t=this.sessionGraphInputs.get(e);return t?t.includes(r):!1}isInt64Supported(e){return!!this.mlContextBySessionId.get(e)?.opSupportLimits().input.dataTypes.includes("int64")}flush(){}}}),iu=Ve(()=>{"use strict"}),Jc,$i,Di,jg,Vg,Yc,Od,Wg,Iv,vP=Ve(()=>{"use strict";Js(),iu(),Jc=new Map([[64,250],[128,200],[256,200],[512,200],[2048,230],[4096,200],[8192,50],[16384,50],[32768,50],[65536,50],[131072,50],[262144,50],[524288,50],[1048576,50],[2097152,30],[4194304,20],[8388608,10],[12582912,10],[16777216,10],[26214400,15],[33554432,22],[44236800,2],[58982400,6],[67108864,6],[134217728,6],[167772160,6]]),$i=[],Di=e=>Math.ceil(Number(e)/16)*16,jg=e=>{for(let r=0;r<$i.length;r++){let t=$i[r];if(e<=t)return t}return Math.ceil(e/16)*16},Vg=1,Yc=()=>Vg++,Od=async(e,r,t,s)=>{let o=Di(t),a=e.device.createBuffer({size:o,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ});try{let n=e.getCommandEncoder();e.endComputePass(),n.copyBufferToBuffer(r,0,a,0,o),e.flush(),await a.mapAsync(GPUMapMode.READ);let i=a.getMappedRange();if(s){let l=s();return l.set(new Uint8Array(i,0,t)),l}else return new Uint8Array(i.slice(0,t))}finally{a.destroy()}},Wg=class{constructor(e){this.backend=e,this.storageCache=new Map,this.freeBuffers=new Map,this.freeUniformBuffers=new Map,this.buffersPending=[],this.capturedPendingBuffers=new Map;for(let[r]of Jc)$i.push(r),this.freeBuffers.set(r,[]),this.freeUniformBuffers.set(r,[]);this.sessionCount=0}upload(e,r){let t=r.buffer,s=r.byteOffset,o=r.byteLength,a=Di(o),n=this.storageCache.get(e);if(!n)throw new Error("gpu data for uploading does not exist");if(Number(n.originalSize)!==o)throw new Error(`inconsistent data size. gpu data size=${n.originalSize}, data size=${o}`);let i=this.backend.device.createBuffer({mappedAtCreation:!0,size:a,usage:GPUBufferUsage.MAP_WRITE|GPUBufferUsage.COPY_SRC}),l=i.getMappedRange();new Uint8Array(l).set(new Uint8Array(t,s,o)),i.unmap();let c=this.backend.device.createCommandEncoder();c.copyBufferToBuffer(i,0,n.gpuData.buffer,0,a),this.backend.device.queue.submit([c.finish()]),i.destroy(),Ot("verbose",()=>`[WebGPU] GpuDataManager.upload(id=${e})`)}memcpy(e,r){let t=this.storageCache.get(e);if(!t)throw new Error("source gpu data for memcpy does not exist");let s=this.storageCache.get(r);if(!s)throw new Error("destination gpu data for memcpy does not exist");if(t.originalSize!==s.originalSize)throw new Error("inconsistent source and destination gpu data size");let o=Di(t.originalSize),a=this.backend.getCommandEncoder();this.backend.endComputePass(),a.copyBufferToBuffer(t.gpuData.buffer,0,s.gpuData.buffer,0,o)}registerExternalBuffer(e,r,t){let s;if(t){if(s=t[0],e===t[1])return Ot("verbose",()=>`[WebGPU] GpuDataManager.registerExternalBuffer(size=${r}) => id=${s}, buffer is the same, skip.`),s;if(this.backend.capturedCommandList.has(this.backend.currentSessionId))throw new Error(`Registering a different external buffer under graph capture mode is not supported yet.
16
+ Please use the previous external buffer!`)}else s=Yc();return this.storageCache.set(s,{gpuData:{id:s,type:0,buffer:e},originalSize:r}),Ot("verbose",()=>`[WebGPU] GpuDataManager.registerExternalBuffer(size=${r}) => id=${s}, registered.`),s}unregisterExternalBuffer(e){e!==void 0&&(this.storageCache.delete(e),Ot("verbose",()=>`[WebGPU] GpuDataManager.unregisterExternalBuffer() => id=${e}`))}create(e,r=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST){let t=jg(e),s,o=(r&GPUBufferUsage.STORAGE)===GPUBufferUsage.STORAGE,a=(r&GPUBufferUsage.UNIFORM)===GPUBufferUsage.UNIFORM;if(o||a){let i=(o?this.freeBuffers:this.freeUniformBuffers).get(t);i?i.length>0?s=i.pop():s=this.backend.device.createBuffer({size:t,usage:r}):s=this.backend.device.createBuffer({size:t,usage:r})}else s=this.backend.device.createBuffer({size:t,usage:r});let n={id:Yc(),type:0,buffer:s};return this.storageCache.set(n.id,{gpuData:n,originalSize:Number(e)}),Ot("verbose",()=>`[WebGPU] GpuDataManager.create(size=${e}) => id=${n.id}`),n}get(e){return this.storageCache.get(e)?.gpuData}release(e){let r=typeof e=="bigint"?Number(e):e,t=this.storageCache.get(r);if(!t){if(this.storageCache.size===0)return 0;throw new Error("releasing data does not exist")}return Ot("verbose",()=>`[WebGPU] GpuDataManager.release(id=${r}), gpuDataId=${t.gpuData.id}`),this.storageCache.delete(r),this.buffersPending.push(t.gpuData.buffer),t.originalSize}async download(e,r){let t=this.storageCache.get(Number(e));if(!t)throw new Error("data does not exist");await Od(this.backend,t.gpuData.buffer,t.originalSize,r)}refreshPendingBuffers(){if(this.buffersPending.length!==0)if(this.backend.sessionStatus==="default"){for(let e of this.buffersPending){let r=Jc.get(e.size);if((e.usage&GPUBufferUsage.STORAGE)===GPUBufferUsage.STORAGE){let t=this.freeBuffers.get(e.size)||[];r===void 0||t.length>=r?e.destroy():t.push(e)}else if((e.usage&GPUBufferUsage.UNIFORM)===GPUBufferUsage.UNIFORM){let t=this.freeUniformBuffers.get(e.size)||[];r===void 0||t.length>=r?e.destroy():t.push(e)}else e.destroy()}this.buffersPending=[]}else{let e=this.capturedPendingBuffers.get(this.backend.currentSessionId);e||(e=[],this.capturedPendingBuffers.set(this.backend.currentSessionId,e));for(let r of this.buffersPending)e.push(r);this.buffersPending=[]}}dispose(){this.freeBuffers.forEach(e=>{e.forEach(r=>{r.destroy()})}),this.freeUniformBuffers.forEach(e=>{e.forEach(r=>{r.destroy()})}),this.storageCache.forEach(e=>{e.gpuData.buffer.destroy()}),this.capturedPendingBuffers.forEach(e=>{e.forEach(r=>{r.destroy()})}),this.storageCache=new Map,this.freeBuffers=new Map,this.freeUniformBuffers=new Map,this.capturedPendingBuffers=new Map}onCreateSession(){this.sessionCount+=1}onReleaseSession(e){let r=this.capturedPendingBuffers.get(e);r&&(r.forEach(t=>{t.destroy()}),this.capturedPendingBuffers.delete(e)),this.sessionCount-=1,this.sessionCount===0&&(Ot("warning",()=>"[WebGPU] Clearing webgpu buffer cache"),this.storageCache.forEach(t=>{t.gpuData.buffer.destroy()}),this.storageCache=new Map)}},Iv=(...e)=>new Wg(...e)}),Ug,jt,hr=Ve(()=>{"use strict";Ug=class{constructor(e){Object.assign(this,e)}get cacheKey(){return this.key||(this.key=Object.getOwnPropertyNames(this).sort().map(e=>`${this[e]}`).join(";")),this.key}},jt=e=>new Ug(e)}),ha,Oi,$r,Ur,dt,dr,Ld,pa,_o,lt,en,Fe,it,Av,lu,Gg,$v,Ct=Ve(()=>{"use strict";Mt(),kt(),ha=64,Oi=(e,r)=>{if(r===3)throw new Error("vec3 has same alignment as vec4, use vec4 instead");switch(Number(e)){case 10:return r>1?`vec${r}<f16>`:"f16";case 1:return r>1?`vec${r}<f32>`:"f32";case 6:return r>1?`vec${r}<i32>`:"i32";case 12:return r>1?`vec${r}<u32>`:"u32";case 7:if(r>1)throw new Error("currently not supported vecX of uint64 yet");return["vec2<u32>","i32"];case 13:if(r>1)throw new Error("currently not supported vecX of uint64 yet");return["vec2<u32>","u32"];case 9:if(r!==4)throw new Error("bool must be vec4");return["u32","vec4<bool>"];case 22:return"i32";case 21:return"u32";default:throw new Error(`Unknown data type: ${e}`)}},$r=(e,r=1)=>{let t=Oi(e,r);return typeof t=="string"?t:t[0]},Ur=(e,r=1)=>{let t=Oi(e,r);return typeof t=="string"?t:t[1]},dt=(...e)=>{let r=[];return e.forEach(t=>{t.length!==0&&r.push({type:12,data:t},{type:12,data:Me.computeStrides(t)})}),r},dr=e=>e%4===0?4:e%2===0?2:1,Ld=(e="f32",r,t="0")=>!r||r===1?`${e}(${t})`:`vec${r}<${e}>(${t})`,pa=(e,r,t)=>e==="f32"?t:r===1?`f32(${t})`:`vec${r}<f32>(${t})`,_o=(e,r)=>r===4?`(${e}.x + ${e}.y + ${e}.z + ${e}.w)`:r===2?`(${e}.x + ${e}.y)`:r===3?`(${e}.x + ${e}.y + ${e}.z)`:e,lt=(e,r,t,s)=>e.startsWith("uniforms.")&&t>4?typeof r=="string"?s==="f16"?`${e}[(${r}) / 8][(${r}) % 8 / 4][(${r}) % 8 % 4]`:`${e}[(${r}) / 4][(${r}) % 4]`:s==="f16"?`${e}[${Math.floor(r/8)}][${Math.floor(r%8/4)}][${r%8%4}]`:`${e}[${Math.floor(r/4)}][${r%4}]`:t>1?`${e}[${r}]`:e,en=(e,r,t,s,o)=>{let a=typeof t=="number",n=a?t:t.length,i=[...new Array(n).keys()],l=n<2?"u32":n<=4?`vec${n}<u32>`:`array<u32, ${n}>`,c=Oi(r,o),_=typeof c=="string"?c:c[1],u=typeof c=="string"?c:c[0],d={indices:l,value:_,storage:u,tensor:r},g=Y=>typeof Y=="string"?Y:`${Y}u`,h={offsetToIndices:!1,indicesToOffset:!1,broadcastedIndicesToOffset:!1,set:!1,setByIndices:!1,get:!1,getByIndices:!1},x=a?"uniforms.":"",F=`${x}${e}_shape`,v=`${x}${e}_strides`,b="";for(let Y=0;Y<n-1;Y++)b+=`
17
17
  let dim${Y} = current / ${lt(v,Y,n)};
18
18
  let rest${Y} = current % ${lt(v,Y,n)};
19
19
  indices[${Y}] = dim${Y};
@@ -42,7 +42,7 @@ var $T=Object.defineProperty;var yo=(e=>typeof require<"u"?require:typeof Proxy<
42
42
  fn set_${e}(${Y}, value: ${_}) {
43
43
  set_${e}ByIndices(${E(H)}, value);
44
44
  }`})();return{impl:()=>{let Y=[],H=!1;return h.offsetToIndices&&(Y.push(C),H=!0),h.indicesToOffset&&(Y.push(I),H=!0),h.broadcastedIndicesToOffset&&(Object.values(U).forEach(R=>Y.push(R)),H=!0),h.set&&(Y.push(ye),H=!0),h.setByIndices&&(Y.push(ne),H=!0),h.get&&(Y.push(q),H=!0),h.getByIndices&&(Y.push(J),H=!0),!a&&H&&Y.unshift(`const ${F} = ${d.indices}(${t.join(",")});`,`const ${v} = ${d.indices}(${Me.computeStrides(t).join(",")});`),Y.join(`
45
- `)},type:d,offsetToIndices:y,indicesToOffset:f,broadcastedIndicesToOffset:W,indices:E,indicesGet:D,indicesSet:O,set:(...Y)=>{if(Y.length!==n+1)throw new Error(`indices length must be ${n}`);let H=Y[n];if(typeof H!="string")throw new Error("value must be string");let R=Y.slice(0,n).map(g).join(",");return n===0?z("0u",H):n===1?z(R[0],H):(h.set=!0,h.setByIndices=!0,h.indicesToOffset=!0,`set_${e}(${R}, ${H})`)},setByOffset:z,setByIndices:(Y,H)=>n<2?z(Y,H):(h.setByIndices=!0,h.indicesToOffset=!0,`set_${e}ByIndices(${Y}, ${H});`),get:re,getByOffset:X,getByIndices:oe,usage:s,name:e,strides:v,shape:F,rank:n}},Fe=(e,r,t,s=1)=>Za(e,r,t,"input",s),it=(e,r,t,s=1)=>Za(e,r,t,"output",s),Iv=(e,r,t)=>Za(e,r,t,"atomicOutput",1),lu=(e,r,t,s=1)=>Za(e,r,t,"internal",s),Ug=class{constructor(e,r){this.normalizedDispatchGroup=e,this.limits=r,this.internalVariables=[],this.variables=[],this.uniforms=[],this.variableIndex=0}guardAgainstOutOfBoundsWorkgroupSizes(e){return`if (global_idx >= ${typeof e=="number"?`${e}u`:e}) { return; }`}mainStart(e=ma){let r=typeof e=="number"?e:e[0],t=typeof e=="number"?1:e[1],s=typeof e=="number"?1:e[2];if(r>this.limits.maxComputeWorkgroupSizeX||t>this.limits.maxComputeWorkgroupSizeY||s>this.limits.maxComputeWorkgroupSizeZ)throw new Error(`workgroup size [${r}, ${t}, ${s}] exceeds the maximum workgroup size [${this.limits.maxComputeWorkgroupSizeX}, ${this.limits.maxComputeWorkgroupSizeY}, ${this.limits.maxComputeWorkgroupSizeZ}].`);if(r*t*s>this.limits.maxComputeInvocationsPerWorkgroup)throw new Error(`workgroup size [${r}, ${t}, ${s}] exceeds the maximum workgroup invocations ${this.limits.maxComputeInvocationsPerWorkgroup}.`);let o=this.normalizedDispatchGroup[1]===1&&this.normalizedDispatchGroup[2]===1,a=o?`@builtin(global_invocation_id) global_id : vec3<u32>,
45
+ `)},type:d,offsetToIndices:y,indicesToOffset:f,broadcastedIndicesToOffset:W,indices:E,indicesGet:D,indicesSet:O,set:(...Y)=>{if(Y.length!==n+1)throw new Error(`indices length must be ${n}`);let H=Y[n];if(typeof H!="string")throw new Error("value must be string");let R=Y.slice(0,n).map(g).join(",");return n===0?z("0u",H):n===1?z(R[0],H):(h.set=!0,h.setByIndices=!0,h.indicesToOffset=!0,`set_${e}(${R}, ${H})`)},setByOffset:z,setByIndices:(Y,H)=>n<2?z(Y,H):(h.setByIndices=!0,h.indicesToOffset=!0,`set_${e}ByIndices(${Y}, ${H});`),get:re,getByOffset:X,getByIndices:oe,usage:s,name:e,strides:v,shape:F,rank:n}},Fe=(e,r,t,s=1)=>en(e,r,t,"input",s),it=(e,r,t,s=1)=>en(e,r,t,"output",s),Av=(e,r,t)=>en(e,r,t,"atomicOutput",1),lu=(e,r,t,s=1)=>en(e,r,t,"internal",s),Gg=class{constructor(e,r){this.normalizedDispatchGroup=e,this.limits=r,this.internalVariables=[],this.variables=[],this.uniforms=[],this.variableIndex=0}guardAgainstOutOfBoundsWorkgroupSizes(e){return`if (global_idx >= ${typeof e=="number"?`${e}u`:e}) { return; }`}mainStart(e=ha){let r=typeof e=="number"?e:e[0],t=typeof e=="number"?1:e[1],s=typeof e=="number"?1:e[2];if(r>this.limits.maxComputeWorkgroupSizeX||t>this.limits.maxComputeWorkgroupSizeY||s>this.limits.maxComputeWorkgroupSizeZ)throw new Error(`workgroup size [${r}, ${t}, ${s}] exceeds the maximum workgroup size [${this.limits.maxComputeWorkgroupSizeX}, ${this.limits.maxComputeWorkgroupSizeY}, ${this.limits.maxComputeWorkgroupSizeZ}].`);if(r*t*s>this.limits.maxComputeInvocationsPerWorkgroup)throw new Error(`workgroup size [${r}, ${t}, ${s}] exceeds the maximum workgroup invocations ${this.limits.maxComputeInvocationsPerWorkgroup}.`);let o=this.normalizedDispatchGroup[1]===1&&this.normalizedDispatchGroup[2]===1,a=o?`@builtin(global_invocation_id) global_id : vec3<u32>,
46
46
  @builtin(workgroup_id) workgroup_id : vec3<u32>,
47
47
  @builtin(local_invocation_index) local_idx : u32,
48
48
  @builtin(local_invocation_id) local_id : vec3<u32>`:`@builtin(global_invocation_id) global_id : vec3<u32>,
@@ -60,13 +60,13 @@ var $T=Object.defineProperty;var yo=(e=>typeof require<"u"?require:typeof Proxy<
60
60
  struct Uniforms { ${e.join(", ")} };
61
61
  @group(0) @binding(${this.variableIndex}) var<uniform> uniforms: Uniforms;`}get additionalImplementations(){return this.uniformDeclaration()+this.variables.map(e=>e.impl()).join(`
62
62
  `)+this.internalVariables.map(e=>e.impl()).join(`
63
- `)}get variablesInfo(){if(this.uniforms.length===0)return;let e=r=>[12,10,1,6][["u32","f16","f32","i32"].indexOf(r)];return this.uniforms.map(r=>[e(r.type),r.length??1])}},Av=(e,r)=>new Ug(e,r)}),Gg,Zc,Kg,Hg,qg,Qg,os,$v,Dv,po=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),Gg=(e,r)=>{if(!e||e.length!==1)throw new Error("Transpose requires 1 input.");if(r.length!==0&&r.length!==e[0].dims.length)throw new Error(`perm size ${r.length} does not match input rank ${e[0].dims.length}`)},Zc=(e,r)=>r.length!==0?r:[...new Array(e).keys()].reverse(),Kg=(e,r)=>Me.sortBasedOnPerm(e,Zc(e.length,r)),Hg=(e,r,t,s)=>{let o=`fn perm(i: ${s.type.indices}) -> ${t.type.indices} {
64
- var a: ${t.type.indices};`;for(let a=0;a<r;++a)o+=`a[${e[a]}]=i[${a}];`;return o+="return a;}"},qg=(e,r)=>{let t=[],s=[];for(let o=0;o<e.length;++o)e[o]!==1&&t.push(e[o]),e[r[o]]!==1&&s.push(r[o]);return{newShape:t,newPerm:s}},Qg=(e,r)=>{let t=0;for(let s=0;s<e.length;++s)if(r[e[s]]!==1){if(e[s]<t)return!1;t=e[s]}return!0},os=(e,r)=>{let t=e.dataType,s=e.dims.length,o=Zc(s,r),a=Kg(e.dims,o),n=e.dims,i=a,l=s<2||Qg(o,e.dims),c;if(l)return c=h=>{let x=Fe("input",t,n,4),F=it("output",t,i,4);return`
63
+ `)}get variablesInfo(){if(this.uniforms.length===0)return;let e=r=>[12,10,1,6][["u32","f16","f32","i32"].indexOf(r)];return this.uniforms.map(r=>[e(r.type),r.length??1])}},$v=(e,r)=>new Gg(e,r)}),Kg,Zc,Hg,qg,Qg,Xg,os,Dv,Ov,po=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),Kg=(e,r)=>{if(!e||e.length!==1)throw new Error("Transpose requires 1 input.");if(r.length!==0&&r.length!==e[0].dims.length)throw new Error(`perm size ${r.length} does not match input rank ${e[0].dims.length}`)},Zc=(e,r)=>r.length!==0?r:[...new Array(e).keys()].reverse(),Hg=(e,r)=>Me.sortBasedOnPerm(e,Zc(e.length,r)),qg=(e,r,t,s)=>{let o=`fn perm(i: ${s.type.indices}) -> ${t.type.indices} {
64
+ var a: ${t.type.indices};`;for(let a=0;a<r;++a)o+=`a[${e[a]}]=i[${a}];`;return o+="return a;}"},Qg=(e,r)=>{let t=[],s=[];for(let o=0;o<e.length;++o)e[o]!==1&&t.push(e[o]),e[r[o]]!==1&&s.push(r[o]);return{newShape:t,newPerm:s}},Xg=(e,r)=>{let t=0;for(let s=0;s<e.length;++s)if(r[e[s]]!==1){if(e[s]<t)return!1;t=e[s]}return!0},os=(e,r)=>{let t=e.dataType,s=e.dims.length,o=Zc(s,r),a=Hg(e.dims,o),n=e.dims,i=a,l=s<2||Xg(o,e.dims),c;if(l)return c=h=>{let x=Fe("input",t,n,4),F=it("output",t,i,4);return`
65
65
  ${h.registerUniform("output_size","u32").declareVariables(x,F)}
66
66
  ${h.mainStart()}
67
67
  ${h.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
68
68
  output[global_idx] = input[global_idx];
69
- }`},{name:"TransposeCopy",shaderCache:{inputDependencies:["type"]},getRunData:()=>{let h=Me.size(a);return{outputs:[{dims:a,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(h/64/4)},programUniforms:[{type:12,data:Math.ceil(h/4)}]}},getShaderSource:c};let{newShape:_,newPerm:u}=qg(e.dims,o),d=Me.areEqual(u,[2,3,1]),g=Me.areEqual(u,[3,1,2]);if(_.length===2||d||g){n=d?[_[0],_[1]*_[2]]:g?[_[0]*_[1],_[2]]:_,i=[n[1],n[0]];let h=16;return c=x=>{let F=Fe("a",t,n.length),v=it("output",t,i.length);return`
69
+ }`},{name:"TransposeCopy",shaderCache:{inputDependencies:["type"]},getRunData:()=>{let h=Me.size(a);return{outputs:[{dims:a,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(h/64/4)},programUniforms:[{type:12,data:Math.ceil(h/4)}]}},getShaderSource:c};let{newShape:_,newPerm:u}=Qg(e.dims,o),d=Me.areEqual(u,[2,3,1]),g=Me.areEqual(u,[3,1,2]);if(_.length===2||d||g){n=d?[_[0],_[1]*_[2]]:g?[_[0]*_[1],_[2]]:_,i=[n[1],n[0]];let h=16;return c=x=>{let F=Fe("a",t,n.length),v=it("output",t,i.length);return`
70
70
  ${x.registerUniform("output_size","u32").declareVariables(F,v)}
71
71
  var<workgroup> tile : array<array<${v.type.value}, ${h+1}>, ${h}>;
72
72
  ${x.mainStart([h,h,1])}
@@ -88,7 +88,7 @@ var $T=Object.defineProperty;var yo=(e=>typeof require<"u"?require:typeof Proxy<
88
88
  }`},{name:"TransposeShared",shaderCache:{inputDependencies:["type"]},getRunData:()=>{let x=Me.size(a);return{outputs:[{dims:a,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(i[1]/h),y:Math.ceil(i[0]/h)},programUniforms:[{type:12,data:x},...dt(n,i)]}},getShaderSource:c}}return c=h=>{let x=Fe("a",t,n.length),F=it("output",t,i.length);return`
89
89
  ${h.registerUniform("output_size","u32").declareVariables(x,F)}
90
90
 
91
- ${Hg(o,s,x,F)}
91
+ ${qg(o,s,x,F)}
92
92
 
93
93
  ${h.mainStart()}
94
94
  ${h.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
@@ -97,7 +97,7 @@ var $T=Object.defineProperty;var yo=(e=>typeof require<"u"?require:typeof Proxy<
97
97
  let aIndices = perm(indices);
98
98
 
99
99
  ${F.setByOffset("global_idx",x.getByIndices("aIndices"))}
100
- }`},{name:"Transpose",shaderCache:{hint:`${r}`,inputDependencies:["rank"]},getRunData:()=>{let h=Me.size(a);return{outputs:[{dims:a,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(h/64)},programUniforms:[{type:12,data:h},...dt(n,i)]}},getShaderSource:c}},$v=(e,r)=>{Gg(e.inputs,r.perm),e.compute(os(e.inputs[0],r.perm))},Dv=e=>jt({perm:e.perm})}),Xg,Jg,Yg,Zg,eM,tM,rM,sM,oM,aM,ws,Ov,Lv,Bv,zv,Rv,Nv,jv,Vv,Wv,Uv,vP=Ve(()=>{"use strict";Mt(),kt(),Ct(),cu(),po(),Xg={max:"select(bestValue, candidate, candidate > bestValue)",min:"select(bestValue, candidate, candidate < bestValue)",mean:"bestValue + candidate",sum:"bestValue + candidate",prod:"bestValue * candidate",sumSquare:"bestValue + candidate * candidate",logSumExp:"bestValue + exp(candidate)",l1:"bestValue + abs(candidate)",l2:"bestValue + candidate * candidate",logSum:"bestValue + candidate"},Jg={max:"select(bestValue, candidate, candidate > bestValue)",min:"select(bestValue, candidate, candidate < bestValue)",mean:"bestValue + candidate",sum:"bestValue + candidate",prod:"bestValue * candidate",sumSquare:"bestValue + candidate",logSumExp:"bestValue + candidate",l1:"bestValue + candidate",l2:"bestValue + candidate",logSum:"bestValue + candidate"},Yg={max:"_A[offset]",min:"_A[offset]",mean:"0",sum:"0",prod:"1",sumSquare:"0",logSumExp:"0",l1:"0",l2:"0",logSum:"0"},Zg={max:"bestValue",min:"bestValue",sum:"bestValue",prod:"bestValue",sumSquare:"bestValue",logSumExp:"log(bestValue)",l1:"bestValue",l2:"sqrt(bestValue)",logSum:"log(bestValue)"},eM=(e,r)=>{let t=[];for(let s=r-e;s<r;++s)t.push(s);return t},tM=(e,r)=>{let t=[],s=e.length;for(let a=0;a<s;a++)r.indexOf(a)===-1&&t.push(e[a]);let o=r.map(a=>e[a]);return[t,o]},rM=(e,r)=>{let t=e.length+r.length,s=[],o=0;for(let a=0;a<t;a++)r.indexOf(a)===-1?s.push(e[o++]):s.push(1);return s},sM=(e,r)=>{for(let t=0;t<e.length;++t)if(e[e.length-t-1]!==r-1-t)return!1;return!0},oM=(e,r)=>{let t=[];if(!sM(e,r)){for(let s=0;s<r;++s)e.indexOf(s)===-1&&t.push(s);e.forEach(s=>t.push(s))}return t},aM=(e,r,t,s,o,a,n)=>{let i=t[0].dims,l=Me.size(a),c=Me.size(n),_=Fe("_A",t[0].dataType,i),u=it("output",o,a),d=64;l===1&&(d=256);let g=`
100
+ }`},{name:"Transpose",shaderCache:{hint:`${r}`,inputDependencies:["rank"]},getRunData:()=>{let h=Me.size(a);return{outputs:[{dims:a,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(h/64)},programUniforms:[{type:12,data:h},...dt(n,i)]}},getShaderSource:c}},Dv=(e,r)=>{Kg(e.inputs,r.perm),e.compute(os(e.inputs[0],r.perm))},Ov=e=>jt({perm:e.perm})}),Jg,Yg,Zg,eM,tM,rM,sM,oM,aM,nM,ws,Lv,Bv,zv,Rv,Nv,jv,Vv,Wv,Uv,Gv,xP=Ve(()=>{"use strict";Mt(),kt(),Ct(),cu(),po(),Jg={max:"select(bestValue, candidate, candidate > bestValue)",min:"select(bestValue, candidate, candidate < bestValue)",mean:"bestValue + candidate",sum:"bestValue + candidate",prod:"bestValue * candidate",sumSquare:"bestValue + candidate * candidate",logSumExp:"bestValue + exp(candidate)",l1:"bestValue + abs(candidate)",l2:"bestValue + candidate * candidate",logSum:"bestValue + candidate"},Yg={max:"select(bestValue, candidate, candidate > bestValue)",min:"select(bestValue, candidate, candidate < bestValue)",mean:"bestValue + candidate",sum:"bestValue + candidate",prod:"bestValue * candidate",sumSquare:"bestValue + candidate",logSumExp:"bestValue + candidate",l1:"bestValue + candidate",l2:"bestValue + candidate",logSum:"bestValue + candidate"},Zg={max:"_A[offset]",min:"_A[offset]",mean:"0",sum:"0",prod:"1",sumSquare:"0",logSumExp:"0",l1:"0",l2:"0",logSum:"0"},eM={max:"bestValue",min:"bestValue",sum:"bestValue",prod:"bestValue",sumSquare:"bestValue",logSumExp:"log(bestValue)",l1:"bestValue",l2:"sqrt(bestValue)",logSum:"log(bestValue)"},tM=(e,r)=>{let t=[];for(let s=r-e;s<r;++s)t.push(s);return t},rM=(e,r)=>{let t=[],s=e.length;for(let a=0;a<s;a++)r.indexOf(a)===-1&&t.push(e[a]);let o=r.map(a=>e[a]);return[t,o]},sM=(e,r)=>{let t=e.length+r.length,s=[],o=0;for(let a=0;a<t;a++)r.indexOf(a)===-1?s.push(e[o++]):s.push(1);return s},oM=(e,r)=>{for(let t=0;t<e.length;++t)if(e[e.length-t-1]!==r-1-t)return!1;return!0},aM=(e,r)=>{let t=[];if(!oM(e,r)){for(let s=0;s<r;++s)e.indexOf(s)===-1&&t.push(s);e.forEach(s=>t.push(s))}return t},nM=(e,r,t,s,o,a,n)=>{let i=t[0].dims,l=Me.size(a),c=Me.size(n),_=Fe("_A",t[0].dataType,i),u=it("output",o,a),d=64;l===1&&(d=256);let g=`
101
101
  var<workgroup> aBestValues : array<f32, ${d}>;
102
102
  `,h=x=>`
103
103
  ${x.registerUniform("reduceSize","u32").declareVariables(_,u)}
@@ -110,11 +110,11 @@ var $T=Object.defineProperty;var yo=(e=>typeof require<"u"?require:typeof Proxy<
110
110
  let outputIndex = global_idx / ${d};
111
111
  let offset = outputIndex * uniforms.reduceSize;
112
112
 
113
- var bestValue = f32(${Yg[s]});
113
+ var bestValue = f32(${Zg[s]});
114
114
  let Length = uniforms.reduceSize;
115
115
  for (var k = local_idx; k < Length; k = k + ${d}) {
116
116
  let candidate = f32(${_.getByOffset("offset + k")});
117
- bestValue = ${Xg[s]};
117
+ bestValue = ${Jg[s]};
118
118
  }
119
119
  aBestValues[local_idx] = bestValue;
120
120
  workgroupBarrier();
@@ -125,7 +125,7 @@ var $T=Object.defineProperty;var yo=(e=>typeof require<"u"?require:typeof Proxy<
125
125
  let interval = DIV_CEIL(reduceSize, 2u);
126
126
  if (local_idx < currentSize) {
127
127
  let candidate = aBestValues[local_idx + interval];
128
- bestValue = ${Jg[s]};
128
+ bestValue = ${Yg[s]};
129
129
  aBestValues[local_idx] = bestValue;
130
130
  }
131
131
  reduceSize = interval;
@@ -133,9 +133,9 @@ var $T=Object.defineProperty;var yo=(e=>typeof require<"u"?require:typeof Proxy<
133
133
  }
134
134
 
135
135
  if (local_idx == 0u) {
136
- ${u.setByOffset("outputIndex",`${s==="mean"?`${u.type.storage}(bestValue / f32(uniforms.reduceSize))`:`${u.type.storage}(${Zg[s]})`}`)};
136
+ ${u.setByOffset("outputIndex",`${s==="mean"?`${u.type.storage}(bestValue / f32(uniforms.reduceSize))`:`${u.type.storage}(${eM[s]})`}`)};
137
137
  }
138
- }`;return{name:e,shaderCache:{hint:`${r};${d}`,inputDependencies:["type"]},getShaderSource:h,getRunData:()=>({outputs:[{dims:a,dataType:o}],dispatchGroup:{x:l},programUniforms:[{type:12,data:c}]})}},ws=(e,r,t,s)=>{let o=e.inputs.length===1?t:Bd(e.inputs,t),a=o.axes;a.length===0&&!o.noopWithEmptyAxes&&(a=e.inputs[0].dims.map((g,h)=>h));let n=Me.normalizeAxes(a,e.inputs[0].dims.length),i=n,l=e.inputs[0],c=oM(i,e.inputs[0].dims.length);c.length>0&&(l=e.compute(os(e.inputs[0],c),{inputs:[0],outputs:[-1]})[0],i=eM(i.length,l.dims.length));let[_,u]=tM(l.dims,i),d=_;o.keepDims&&(d=rM(_,n)),e.compute(aM(r,o.cacheKey,[l],s,e.inputs[0].dataType,d,u),{inputs:[l]})},Ov=(e,r)=>{ws(e,"ReduceMeanShared",r,"mean")},Lv=(e,r)=>{ws(e,"ReduceL1Shared",r,"l1")},Bv=(e,r)=>{ws(e,"ReduceL2Shared",r,"l2")},zv=(e,r)=>{ws(e,"ReduceLogSumExpShared",r,"logSumExp")},Rv=(e,r)=>{ws(e,"ReduceMaxShared",r,"max")},Nv=(e,r)=>{ws(e,"ReduceMinShared",r,"min")},jv=(e,r)=>{ws(e,"ReduceProdShared",r,"prod")},Vv=(e,r)=>{ws(e,"ReduceSumShared",r,"sum")},Wv=(e,r)=>{ws(e,"ReduceSumSquareShared",r,"sumSquare")},Uv=(e,r)=>{ws(e,"ReduceLogSumShared",r,"logSum")}}),bs,nM,qi,Bd,vs,iM,lM,cM,dM,uM,_M,pM,mM,hM,fM,xs,Gv,Kv,Hv,qv,Qv,Xv,Jv,Yv,Zv,ex,cu=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),vP(),bs=e=>{if(!e||e.length===0||e.length>2)throw new Error("Reduce op requires 1 or 2 inputs.");if(e.length===2&&e[1].dims.length!==1)throw new Error("Invalid axes input dims.")},nM=e=>["","",`var value = ${e.getByIndices("input_indices")};`,""],qi=(e,r,t,s,o,a,n=!1,i=!1)=>{let l=[],c=t[0].dims,_=c.length,u=Me.normalizeAxes(o,_),d=!i&&u.length===0;c.forEach((x,F)=>{d||u.indexOf(F)>=0?n&&l.push(1):l.push(x)});let g=l.length,h=Me.size(l);return{name:e,shaderCache:r,getShaderSource:x=>{let F=[],v=Fe("_A",t[0].dataType,_),b=it("output",a,g),C=s(v,b,u),y=C[2];for(let P=0,I=0;P<_;P++)d||u.indexOf(P)>=0?(n&&I++,y=`for(var j${P}: u32 = 0; j${P} < ${c[P]}; j${P}++) {
138
+ }`;return{name:e,shaderCache:{hint:`${r};${d}`,inputDependencies:["type"]},getShaderSource:h,getRunData:()=>({outputs:[{dims:a,dataType:o}],dispatchGroup:{x:l},programUniforms:[{type:12,data:c}]})}},ws=(e,r,t,s)=>{let o=e.inputs.length===1?t:Bd(e.inputs,t),a=o.axes;a.length===0&&!o.noopWithEmptyAxes&&(a=e.inputs[0].dims.map((g,h)=>h));let n=Me.normalizeAxes(a,e.inputs[0].dims.length),i=n,l=e.inputs[0],c=aM(i,e.inputs[0].dims.length);c.length>0&&(l=e.compute(os(e.inputs[0],c),{inputs:[0],outputs:[-1]})[0],i=tM(i.length,l.dims.length));let[_,u]=rM(l.dims,i),d=_;o.keepDims&&(d=sM(_,n)),e.compute(nM(r,o.cacheKey,[l],s,e.inputs[0].dataType,d,u),{inputs:[l]})},Lv=(e,r)=>{ws(e,"ReduceMeanShared",r,"mean")},Bv=(e,r)=>{ws(e,"ReduceL1Shared",r,"l1")},zv=(e,r)=>{ws(e,"ReduceL2Shared",r,"l2")},Rv=(e,r)=>{ws(e,"ReduceLogSumExpShared",r,"logSumExp")},Nv=(e,r)=>{ws(e,"ReduceMaxShared",r,"max")},jv=(e,r)=>{ws(e,"ReduceMinShared",r,"min")},Vv=(e,r)=>{ws(e,"ReduceProdShared",r,"prod")},Wv=(e,r)=>{ws(e,"ReduceSumShared",r,"sum")},Uv=(e,r)=>{ws(e,"ReduceSumSquareShared",r,"sumSquare")},Gv=(e,r)=>{ws(e,"ReduceLogSumShared",r,"logSum")}}),bs,iM,qi,Bd,vs,lM,cM,dM,uM,_M,pM,mM,hM,fM,gM,xs,Kv,Hv,qv,Qv,Xv,Jv,Yv,Zv,ex,tx,cu=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),xP(),bs=e=>{if(!e||e.length===0||e.length>2)throw new Error("Reduce op requires 1 or 2 inputs.");if(e.length===2&&e[1].dims.length!==1)throw new Error("Invalid axes input dims.")},iM=e=>["","",`var value = ${e.getByIndices("input_indices")};`,""],qi=(e,r,t,s,o,a,n=!1,i=!1)=>{let l=[],c=t[0].dims,_=c.length,u=Me.normalizeAxes(o,_),d=!i&&u.length===0;c.forEach((x,F)=>{d||u.indexOf(F)>=0?n&&l.push(1):l.push(x)});let g=l.length,h=Me.size(l);return{name:e,shaderCache:r,getShaderSource:x=>{let F=[],v=Fe("_A",t[0].dataType,_),b=it("output",a,g),C=s(v,b,u),y=C[2];for(let P=0,I=0;P<_;P++)d||u.indexOf(P)>=0?(n&&I++,y=`for(var j${P}: u32 = 0; j${P} < ${c[P]}; j${P}++) {
139
139
  ${C[2].includes("last_index")?`let last_index = j${P};`:""}
140
140
  ${v.indicesSet("input_indices",P,`j${P}`)}
141
141
  ${y}
@@ -156,19 +156,19 @@ var $T=Object.defineProperty;var yo=(e=>typeof require<"u"?require:typeof Proxy<
156
156
  ${C[3]}
157
157
  ${C.length===4?b.setByOffset("global_idx","value"):C.slice(4).join(`
158
158
  `)}
159
- }`},getRunData:()=>({outputs:[{dims:l,dataType:a}],dispatchGroup:{x:Math.ceil(h/64)},programUniforms:[{type:12,data:h},...dt(c,l)]})}},Bd=(e,r)=>{let t=[];return e[1].dims[0]>0&&e[1].getBigInt64Array().forEach(s=>t.push(Number(s))),jt({axes:t,keepDims:r.keepDims,noopWithEmptyAxes:r.noopWithEmptyAxes})},vs=(e,r,t,s)=>{let o=e.inputs,a=o.length===1?t:Bd(o,t);e.compute(qi(r,{hint:a.cacheKey,inputDependencies:["rank"]},[o[0]],a.noopWithEmptyAxes&&a.axes.length===0?nM:s,a.axes,o[0].dataType,a.keepDims,a.noopWithEmptyAxes),{inputs:[0]})},iM=(e,r)=>{bs(e.inputs),vs(e,"ReduceLogSum",r,(t,s)=>[`var value = ${s.type.storage}(0);`,"",`value += ${t.getByIndices("input_indices")};`,"value = log(value);"])},lM=(e,r)=>{bs(e.inputs),vs(e,"ReduceL1",r,(t,s)=>[`var value = ${s.type.storage}(0);`,"",`value += abs(${t.getByIndices("input_indices")});`,""])},cM=(e,r)=>{bs(e.inputs),vs(e,"ReduceL2",r,(t,s)=>[`var t = ${s.type.value}(0); var value = ${s.type.value}(0);`,"",`t = ${t.getByIndices("input_indices")}; value += (t * t);`,"value = sqrt(value);"])},dM=(e,r)=>{bs(e.inputs),vs(e,"ReduceLogSumExp",r,(t,s)=>[`var value = ${s.type.storage}(0);`,"",`value += exp(${t.getByIndices("input_indices")});`,"value = log(value);"])},uM=(e,r)=>{bs(e.inputs),vs(e,"ReduceMax",r,(t,s,o)=>{let a=[];for(let n=0;n<t.rank;n++)(o.indexOf(n)>=0||o.length===0)&&a.push(t.indicesSet("input_indices",n,0));return[`${a.join(`
160
- `)}`,`var value = ${t.getByIndices("input_indices")};`,`value = max(value, ${t.getByIndices("input_indices")});`,""]})},_M=(e,r)=>{bs(e.inputs),vs(e,"ReduceMean",r,(t,s,o)=>{let a=1;for(let n=0;n<t.rank;n++)(o.indexOf(n)>=0||o.length===0)&&(a*=e.inputs[0].dims[n]);return["var sum = f32(0);","",`sum += f32(${t.getByIndices("input_indices")});`,`let value = ${s.type.value}(sum / ${a});`]})},pM=(e,r)=>{bs(e.inputs),vs(e,"ReduceMin",r,(t,s,o)=>{let a=[];for(let n=0;n<t.rank;n++)(o.indexOf(n)>=0||o.length===0)&&a.push(`input_indices[${n}] = 0;`);return[`${a.join(`
161
- `)}`,`var value = ${t.getByIndices("input_indices")};`,`value = min(value, ${t.getByIndices("input_indices")});`,""]})},mM=(e,r)=>{bs(e.inputs),vs(e,"ReduceProd",r,(t,s)=>[`var value = ${s.type.storage}(1);`,"",`value *= ${t.getByIndices("input_indices")};`,""])},hM=(e,r)=>{bs(e.inputs),vs(e,"ReduceSum",r,(t,s)=>[`var value = ${s.type.storage}(0);`,"",`value += ${t.getByIndices("input_indices")};`,""])},fM=(e,r)=>{bs(e.inputs),vs(e,"ReduceSumSquare",r,(t,s)=>[`var t = ${s.type.value}(0); var value = ${s.type.value}(0);`,"",`t = ${t.getByIndices("input_indices")}; value += t * t;`,""])},xs=(e,r,t)=>{if(r.length===0)return t;let s=1,o=1;for(let a=0;a<r.length;a++)r.indexOf(a)===-1?s*=e[a]:o*=e[a];return o<32&&s>1024},Gv=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?_M(e,r):Ov(e,r)},Kv=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?lM(e,r):Lv(e,r)},Hv=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?cM(e,r):Bv(e,r)},qv=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?dM(e,r):zv(e,r)},Qv=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?uM(e,r):Rv(e,r)},Xv=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?pM(e,r):Nv(e,r)},Jv=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?mM(e,r):jv(e,r)},Yv=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?hM(e,r):Vv(e,r)},Zv=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?fM(e,r):Wv(e,r)},ex=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?iM(e,r):Uv(e,r)}}),ed,tx,rx,zd,xP=Ve(()=>{"use strict";Mt(),hr(),cu(),ed=e=>{if(!e||e.length===0||e.length>2)throw new Error("ArgMinMaxOp op requires 1 or 2 inputs.");if(e[0].dataType!==1)throw new Error("Invalid input type.")},tx=(e,r)=>{ed(e.inputs);let t=(s,o,a)=>{let n=[];for(let i=0;i<s.rank;i++)(a.indexOf(i)>=0||a.length===0)&&n.push(`input_indices[${i}] = 0;`);return[`${n.join(`
159
+ }`},getRunData:()=>({outputs:[{dims:l,dataType:a}],dispatchGroup:{x:Math.ceil(h/64)},programUniforms:[{type:12,data:h},...dt(c,l)]})}},Bd=(e,r)=>{let t=[];return e[1].dims[0]>0&&e[1].getBigInt64Array().forEach(s=>t.push(Number(s))),jt({axes:t,keepDims:r.keepDims,noopWithEmptyAxes:r.noopWithEmptyAxes})},vs=(e,r,t,s)=>{let o=e.inputs,a=o.length===1?t:Bd(o,t);e.compute(qi(r,{hint:a.cacheKey,inputDependencies:["rank"]},[o[0]],a.noopWithEmptyAxes&&a.axes.length===0?iM:s,a.axes,o[0].dataType,a.keepDims,a.noopWithEmptyAxes),{inputs:[0]})},lM=(e,r)=>{bs(e.inputs),vs(e,"ReduceLogSum",r,(t,s)=>[`var value = ${s.type.storage}(0);`,"",`value += ${t.getByIndices("input_indices")};`,"value = log(value);"])},cM=(e,r)=>{bs(e.inputs),vs(e,"ReduceL1",r,(t,s)=>[`var value = ${s.type.storage}(0);`,"",`value += abs(${t.getByIndices("input_indices")});`,""])},dM=(e,r)=>{bs(e.inputs),vs(e,"ReduceL2",r,(t,s)=>[`var t = ${s.type.value}(0); var value = ${s.type.value}(0);`,"",`t = ${t.getByIndices("input_indices")}; value += (t * t);`,"value = sqrt(value);"])},uM=(e,r)=>{bs(e.inputs),vs(e,"ReduceLogSumExp",r,(t,s)=>[`var value = ${s.type.storage}(0);`,"",`value += exp(${t.getByIndices("input_indices")});`,"value = log(value);"])},_M=(e,r)=>{bs(e.inputs),vs(e,"ReduceMax",r,(t,s,o)=>{let a=[];for(let n=0;n<t.rank;n++)(o.indexOf(n)>=0||o.length===0)&&a.push(t.indicesSet("input_indices",n,0));return[`${a.join(`
160
+ `)}`,`var value = ${t.getByIndices("input_indices")};`,`value = max(value, ${t.getByIndices("input_indices")});`,""]})},pM=(e,r)=>{bs(e.inputs),vs(e,"ReduceMean",r,(t,s,o)=>{let a=1;for(let n=0;n<t.rank;n++)(o.indexOf(n)>=0||o.length===0)&&(a*=e.inputs[0].dims[n]);return["var sum = f32(0);","",`sum += f32(${t.getByIndices("input_indices")});`,`let value = ${s.type.value}(sum / ${a});`]})},mM=(e,r)=>{bs(e.inputs),vs(e,"ReduceMin",r,(t,s,o)=>{let a=[];for(let n=0;n<t.rank;n++)(o.indexOf(n)>=0||o.length===0)&&a.push(`input_indices[${n}] = 0;`);return[`${a.join(`
161
+ `)}`,`var value = ${t.getByIndices("input_indices")};`,`value = min(value, ${t.getByIndices("input_indices")});`,""]})},hM=(e,r)=>{bs(e.inputs),vs(e,"ReduceProd",r,(t,s)=>[`var value = ${s.type.storage}(1);`,"",`value *= ${t.getByIndices("input_indices")};`,""])},fM=(e,r)=>{bs(e.inputs),vs(e,"ReduceSum",r,(t,s)=>[`var value = ${s.type.storage}(0);`,"",`value += ${t.getByIndices("input_indices")};`,""])},gM=(e,r)=>{bs(e.inputs),vs(e,"ReduceSumSquare",r,(t,s)=>[`var t = ${s.type.value}(0); var value = ${s.type.value}(0);`,"",`t = ${t.getByIndices("input_indices")}; value += t * t;`,""])},xs=(e,r,t)=>{if(r.length===0)return t;let s=1,o=1;for(let a=0;a<r.length;a++)r.indexOf(a)===-1?s*=e[a]:o*=e[a];return o<32&&s>1024},Kv=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?pM(e,r):Lv(e,r)},Hv=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?cM(e,r):Bv(e,r)},qv=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?dM(e,r):zv(e,r)},Qv=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?uM(e,r):Rv(e,r)},Xv=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?_M(e,r):Nv(e,r)},Jv=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?mM(e,r):jv(e,r)},Yv=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?hM(e,r):Vv(e,r)},Zv=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?fM(e,r):Wv(e,r)},ex=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?gM(e,r):Uv(e,r)},tx=(e,r)=>{xs(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?lM(e,r):Gv(e,r)}}),ed,rx,sx,zd,yP=Ve(()=>{"use strict";Mt(),hr(),cu(),ed=e=>{if(!e||e.length===0||e.length>2)throw new Error("ArgMinMaxOp op requires 1 or 2 inputs.");if(e[0].dataType!==1)throw new Error("Invalid input type.")},rx=(e,r)=>{ed(e.inputs);let t=(s,o,a)=>{let n=[];for(let i=0;i<s.rank;i++)(a.indexOf(i)>=0||a.length===0)&&n.push(`input_indices[${i}] = 0;`);return[`${n.join(`
162
162
  `)}`,`var value = ${s.getByIndices("input_indices")};
163
163
  var best_index : i32 = 0;`,`if (${s.getByIndices("input_indices")} ${r.selectLastIndex>0?"<=":"<"} value) {
164
164
  value = ${s.getByIndices("input_indices")};
165
165
  best_index = i32(last_index);
166
- }`,"",o.setByOffset("global_idx","best_index")]};e.compute(qi("ArgMin",{hint:r.cacheKey,inputDependencies:["rank"]},[e.inputs[0]],t,[r.axis],7,r.keepDims),{inputs:[0]})},rx=(e,r)=>{ed(e.inputs);let t=(s,o,a)=>{let n=[];for(let i=0;i<s.rank;i++)(a.indexOf(i)>=0||a.length===0)&&n.push(`input_indices[${i}] = 0;`);return[`${n.join(`
166
+ }`,"",o.setByOffset("global_idx","best_index")]};e.compute(qi("ArgMin",{hint:r.cacheKey,inputDependencies:["rank"]},[e.inputs[0]],t,[r.axis],7,r.keepDims),{inputs:[0]})},sx=(e,r)=>{ed(e.inputs);let t=(s,o,a)=>{let n=[];for(let i=0;i<s.rank;i++)(a.indexOf(i)>=0||a.length===0)&&n.push(`input_indices[${i}] = 0;`);return[`${n.join(`
167
167
  `)}`,`var value = ${s.getByIndices("input_indices")};
168
168
  var best_index : i32 = 0;`,`if (${s.getByIndices("input_indices")} ${r.selectLastIndex>0?">=":">"} value) {
169
169
  value = ${s.getByIndices("input_indices")};
170
170
  best_index = i32(last_index);
171
- }`,"",o.setByOffset("global_idx","best_index")]};e.compute(qi("argMax",{hint:r.cacheKey,inputDependencies:["rank"]},[e.inputs[0]],t,[r.axis],7,r.keepDims),{inputs:[0]})},zd=e=>jt(e)}),gM,Li,MM,wM,bM,mn,vM,sx,du=Ve(()=>{"use strict";Mt(),kt(),iu(),Ct(),gM=(e,r)=>{let t=e[0],s=e[1],o=e[2],a=e[3],n=e[4],i=e[5];if(n&&i)throw new Error("Attention cannot have both past and attention_bias");if(t.dims.length!==3)throw new Error('Input "input" must have 3 dimensions');let l=t.dims[0],c=t.dims[1],_=t.dims[2];if(o.dims.length!==1)throw new Error('Input "bias" is expected to have 1 dimensions');if(s.dims.length!==2)throw new Error('Input "weights" is expected to have 2 dimensions');if(s.dims[0]!==_)throw new Error("Input 1 dimension 0 should have same length as dimension 2 of input 0");if(o.dims[0]!==s.dims[1])throw new Error('Input "bias" dimension 0 should have same length as dimension 1 of input "weights"');let u=o.dims[0]/3,d=u,g=d;if(r.qkvHiddenSizes.length>0){if(r.qkvHiddenSizes.length!==3)throw new Error("qkv_hidden_sizes attribute should have 3 elements");for(let C of r.qkvHiddenSizes)if(C%r.numHeads!==0)throw new Error("qkv_hidden_sizes should be divisible by num_heads");u=r.qkvHiddenSizes[0],d=r.qkvHiddenSizes[1],g=r.qkvHiddenSizes[2]}let h=c;if(u!==d)throw new Error("qkv_hidden_sizes first element should be same as the second");if(o.dims[0]!==u+d+g)throw new Error('Input "bias" dimension 0 should have same length as sum of Q/K/V hidden sizes');let x=0;if(n){if(d!==g)throw new Error('Input "past" expect k_hidden_size == v_hidden_size');if(n.dims.length!==5)throw new Error('Input "past" must have 5 dimensions');if(n.dims[0]!==2)throw new Error('Input "past" first dimension must be 2');if(n.dims[1]!==l)throw new Error('Input "past" second dimension must be batch_size');if(n.dims[2]!==r.numHeads)throw new Error('Input "past" third dimension must be num_heads');if(n.dims[4]!==d/r.numHeads)throw new Error('Input "past" fifth dimension must be k_hidden_size / num_heads');r.pastPresentShareBuffer||(x=n.dims[3])}let F=h+x,v=-1,b=0;if(a)throw new Error("Mask not supported");if(n)throw new Error("past is not supported");if(i){if(i.dims.length!==4)throw new Error('Input "attention_bias" must have 4 dimensions');if(i.dims[0]!==l||i.dims[1]!==r.numHeads||i.dims[2]!==c||i.dims[3]!==F)throw new Error('Expect "attention_bias" shape (batch_size, num_heads, sequence_length, total_sequence_length)')}return{batchSize:l,sequenceLength:c,pastSequenceLength:x,kvSequenceLength:h,totalSequenceLength:F,maxSequenceLength:v,inputHiddenSize:_,hiddenSize:u,vHiddenSize:g,headSize:Math.floor(u/r.numHeads),vHeadSize:Math.floor(g/r.numHeads),numHeads:r.numHeads,isUnidirectional:!1,pastPresentShareBuffer:!1,maskFilterValue:r.maskFilterValue,maskType:b,scale:r.scale,broadcastResPosBias:!1,passPastInKv:!1,qkvFormat:1}},Li=(e,r,t)=>r&&e?`
171
+ }`,"",o.setByOffset("global_idx","best_index")]};e.compute(qi("argMax",{hint:r.cacheKey,inputDependencies:["rank"]},[e.inputs[0]],t,[r.axis],7,r.keepDims),{inputs:[0]})},zd=e=>jt(e)}),MM,Li,wM,bM,vM,hn,xM,ox,du=Ve(()=>{"use strict";Mt(),kt(),iu(),Ct(),MM=(e,r)=>{let t=e[0],s=e[1],o=e[2],a=e[3],n=e[4],i=e[5];if(n&&i)throw new Error("Attention cannot have both past and attention_bias");if(t.dims.length!==3)throw new Error('Input "input" must have 3 dimensions');let l=t.dims[0],c=t.dims[1],_=t.dims[2];if(o.dims.length!==1)throw new Error('Input "bias" is expected to have 1 dimensions');if(s.dims.length!==2)throw new Error('Input "weights" is expected to have 2 dimensions');if(s.dims[0]!==_)throw new Error("Input 1 dimension 0 should have same length as dimension 2 of input 0");if(o.dims[0]!==s.dims[1])throw new Error('Input "bias" dimension 0 should have same length as dimension 1 of input "weights"');let u=o.dims[0]/3,d=u,g=d;if(r.qkvHiddenSizes.length>0){if(r.qkvHiddenSizes.length!==3)throw new Error("qkv_hidden_sizes attribute should have 3 elements");for(let C of r.qkvHiddenSizes)if(C%r.numHeads!==0)throw new Error("qkv_hidden_sizes should be divisible by num_heads");u=r.qkvHiddenSizes[0],d=r.qkvHiddenSizes[1],g=r.qkvHiddenSizes[2]}let h=c;if(u!==d)throw new Error("qkv_hidden_sizes first element should be same as the second");if(o.dims[0]!==u+d+g)throw new Error('Input "bias" dimension 0 should have same length as sum of Q/K/V hidden sizes');let x=0;if(n){if(d!==g)throw new Error('Input "past" expect k_hidden_size == v_hidden_size');if(n.dims.length!==5)throw new Error('Input "past" must have 5 dimensions');if(n.dims[0]!==2)throw new Error('Input "past" first dimension must be 2');if(n.dims[1]!==l)throw new Error('Input "past" second dimension must be batch_size');if(n.dims[2]!==r.numHeads)throw new Error('Input "past" third dimension must be num_heads');if(n.dims[4]!==d/r.numHeads)throw new Error('Input "past" fifth dimension must be k_hidden_size / num_heads');r.pastPresentShareBuffer||(x=n.dims[3])}let F=h+x,v=-1,b=0;if(a)throw new Error("Mask not supported");if(n)throw new Error("past is not supported");if(i){if(i.dims.length!==4)throw new Error('Input "attention_bias" must have 4 dimensions');if(i.dims[0]!==l||i.dims[1]!==r.numHeads||i.dims[2]!==c||i.dims[3]!==F)throw new Error('Expect "attention_bias" shape (batch_size, num_heads, sequence_length, total_sequence_length)')}return{batchSize:l,sequenceLength:c,pastSequenceLength:x,kvSequenceLength:h,totalSequenceLength:F,maxSequenceLength:v,inputHiddenSize:_,hiddenSize:u,vHiddenSize:g,headSize:Math.floor(u/r.numHeads),vHeadSize:Math.floor(g/r.numHeads),numHeads:r.numHeads,isUnidirectional:!1,pastPresentShareBuffer:!1,maskFilterValue:r.maskFilterValue,maskType:b,scale:r.scale,broadcastResPosBias:!1,passPastInKv:!1,qkvFormat:1}},Li=(e,r,t)=>r&&e?`
172
172
  let total_sequence_length_input = u32(${r.getByOffset("0")});
173
173
  let present_sequence_length = max(total_sequence_length_input, uniforms.past_sequence_length);
174
174
  let is_subsequent_prompt: bool = sequence_length > 1 && sequence_length != total_sequence_length_input;
@@ -181,7 +181,7 @@ var best_index : i32 = 0;`,`if (${s.getByIndices("input_indices")} ${r.selectLas
181
181
  `:`
182
182
  ${t?"let past_sequence_length = uniforms.past_sequence_length":""};
183
183
  let present_sequence_length = total_sequence_length;
184
- `,MM=(e,r,t,s,o,a,n,i)=>{let l=dr(n?1:a),c=64,_=a/l;_<c&&(c=32);let u=Math.ceil(a/l/c),d=[{type:12,data:r},{type:12,data:t},{type:12,data:s},{type:12,data:o},{type:12,data:_},{type:12,data:u}],g=$r(e.dataType,l),h=Ur(1,l),x=["type"];n&&x.push("type"),i&&x.push("type");let F=v=>{let b=it("x",e.dataType,e.dims,l),C=[b],y=n?Fe("seq_lens",n.dataType,n.dims):void 0;y&&C.push(y);let P=i?Fe("total_sequence_length_input",i.dataType,i.dims):void 0;P&&C.push(P);let I=Ur(e.dataType),f=[{name:"batch_size",type:"u32"},{name:"num_heads",type:"u32"},{name:"past_sequence_length",type:"u32"},{name:"sequence_length",type:"u32"},{name:"total_sequence_length",type:"u32"},{name:"elements_per_thread",type:"u32"}];return`
184
+ `,wM=(e,r,t,s,o,a,n,i)=>{let l=dr(n?1:a),c=64,_=a/l;_<c&&(c=32);let u=Math.ceil(a/l/c),d=[{type:12,data:r},{type:12,data:t},{type:12,data:s},{type:12,data:o},{type:12,data:_},{type:12,data:u}],g=$r(e.dataType,l),h=Ur(1,l),x=["type"];n&&x.push("type"),i&&x.push("type");let F=v=>{let b=it("x",e.dataType,e.dims,l),C=[b],y=n?Fe("seq_lens",n.dataType,n.dims):void 0;y&&C.push(y);let P=i?Fe("total_sequence_length_input",i.dataType,i.dims):void 0;P&&C.push(P);let I=Ur(e.dataType),f=[{name:"batch_size",type:"u32"},{name:"num_heads",type:"u32"},{name:"past_sequence_length",type:"u32"},{name:"sequence_length",type:"u32"},{name:"total_sequence_length",type:"u32"},{name:"elements_per_thread",type:"u32"}];return`
185
185
  var<workgroup> thread_max: array<f32, ${c}>;
186
186
  var<workgroup> thread_sum: array<f32, ${c}>;
187
187
  ${v.registerUniforms(f).declareVariables(...C)}
@@ -232,7 +232,7 @@ var best_index : i32 = 0;`,`if (${s.getByIndices("input_indices")} ${r.selectLas
232
232
  for (var total_seq_id: u32 = seq_causal_length; total_seq_id + local_offset < uniforms.total_sequence_length; total_seq_id++) {
233
233
  x[offset + total_seq_id] = ${b.type.value}(${I}(0));
234
234
  }`:""};
235
- }`};return{name:"AttentionProbsSoftmax",shaderCache:{hint:`${c};${g};${l}`,inputDependencies:x},getShaderSource:F,getRunData:()=>({outputs:[],dispatchGroup:{x:1,y:o,z:r*t},programUniforms:d})}},wM=(e,r,t,s,o,a,n,i,l)=>{let c=n+a.kvSequenceLength,_=[a.batchSize,a.numHeads,a.sequenceLength,c],u=e>1&&s,d=a.kvNumHeads?a.kvNumHeads:a.numHeads,g=u?[a.batchSize,d,c,a.headSize]:void 0,h=a.nReps?a.nReps:1,x=a.scale===0?1/Math.sqrt(a.headSize):a.scale,F=dr(a.headSize),v=a.headSize/F,b=12,C={x:Math.ceil(c/b),y:Math.ceil(a.sequenceLength/b),z:a.batchSize*a.numHeads},y=[{type:12,data:a.sequenceLength},{type:12,data:v},{type:12,data:c},{type:12,data:a.numHeads},{type:12,data:a.headSize},{type:1,data:x},{type:12,data:n},{type:12,data:a.kvSequenceLength},{type:12,data:h}],P=u&&s&&Me.size(s.dims)>0,I=["type","type"];P&&I.push("type"),o&&I.push("type"),i&&I.push("type"),l&&I.push("type");let f=[{dims:_,dataType:r.dataType,gpuDataType:0}];u&&f.push({dims:g,dataType:r.dataType,gpuDataType:0});let E=D=>{let O=Fe("q",r.dataType,r.dims,F),U=Fe("key",t.dataType,t.dims,F),W=[O,U];if(P){let ne=Fe("past_key",s.dataType,s.dims,F);W.push(ne)}o&&W.push(Fe("attention_bias",o.dataType,o.dims));let z=i?Fe("seq_lens",i.dataType,i.dims):void 0;z&&W.push(z);let X=l?Fe("total_sequence_length_input",l.dataType,l.dims):void 0;X&&W.push(X);let J=it("output",r.dataType,_),q=[J];u&&q.push(it("present_key",r.dataType,g,F));let re=Ur(1,F),oe=[{name:"M",type:"u32"},{name:"K",type:"u32"},{name:"N",type:"u32"},{name:"num_heads",type:"u32"},{name:"head_size",type:"u32"},{name:"alpha",type:"f32"},{name:"past_sequence_length",type:"u32"},{name:"kv_sequence_length",type:"u32"},{name:"n_reps",type:"u32"}];return`
235
+ }`};return{name:"AttentionProbsSoftmax",shaderCache:{hint:`${c};${g};${l}`,inputDependencies:x},getShaderSource:F,getRunData:()=>({outputs:[],dispatchGroup:{x:1,y:o,z:r*t},programUniforms:d})}},bM=(e,r,t,s,o,a,n,i,l)=>{let c=n+a.kvSequenceLength,_=[a.batchSize,a.numHeads,a.sequenceLength,c],u=e>1&&s,d=a.kvNumHeads?a.kvNumHeads:a.numHeads,g=u?[a.batchSize,d,c,a.headSize]:void 0,h=a.nReps?a.nReps:1,x=a.scale===0?1/Math.sqrt(a.headSize):a.scale,F=dr(a.headSize),v=a.headSize/F,b=12,C={x:Math.ceil(c/b),y:Math.ceil(a.sequenceLength/b),z:a.batchSize*a.numHeads},y=[{type:12,data:a.sequenceLength},{type:12,data:v},{type:12,data:c},{type:12,data:a.numHeads},{type:12,data:a.headSize},{type:1,data:x},{type:12,data:n},{type:12,data:a.kvSequenceLength},{type:12,data:h}],P=u&&s&&Me.size(s.dims)>0,I=["type","type"];P&&I.push("type"),o&&I.push("type"),i&&I.push("type"),l&&I.push("type");let f=[{dims:_,dataType:r.dataType,gpuDataType:0}];u&&f.push({dims:g,dataType:r.dataType,gpuDataType:0});let E=D=>{let O=Fe("q",r.dataType,r.dims,F),U=Fe("key",t.dataType,t.dims,F),W=[O,U];if(P){let ne=Fe("past_key",s.dataType,s.dims,F);W.push(ne)}o&&W.push(Fe("attention_bias",o.dataType,o.dims));let z=i?Fe("seq_lens",i.dataType,i.dims):void 0;z&&W.push(z);let X=l?Fe("total_sequence_length_input",l.dataType,l.dims):void 0;X&&W.push(X);let J=it("output",r.dataType,_),q=[J];u&&q.push(it("present_key",r.dataType,g,F));let re=Ur(1,F),oe=[{name:"M",type:"u32"},{name:"K",type:"u32"},{name:"N",type:"u32"},{name:"num_heads",type:"u32"},{name:"head_size",type:"u32"},{name:"alpha",type:"f32"},{name:"past_sequence_length",type:"u32"},{name:"kv_sequence_length",type:"u32"},{name:"n_reps",type:"u32"}];return`
236
236
  const TILE_SIZE = ${b}u;
237
237
 
238
238
  var<workgroup> tileQ: array<${O.type.storage}, ${b*b}>;
@@ -289,7 +289,7 @@ var best_index : i32 = 0;`,`if (${s.getByIndices("input_indices")} ${r.selectLas
289
289
  var sum: f32 = ${(()=>{switch(F){case 1:return"value";case 2:return"value.x + value.y";case 4:return"value.x + value.y + value.z + value.w";default:throw new Error(`Unsupported components: ${F}`)}})()};
290
290
  output[outputIdx] = ${J.type.value} (sum * uniforms.alpha) + ${o?"attention_bias[outputIdx]":"0.0"};
291
291
  }
292
- }`};return{name:"AttentionProbs",shaderCache:{hint:`${F};${o!==void 0};${s!==void 0};${e}`,inputDependencies:I},getRunData:()=>({outputs:f,dispatchGroup:C,programUniforms:y}),getShaderSource:E}},bM=(e,r,t,s,o,a,n=void 0,i=void 0)=>{let l=a+o.kvSequenceLength,c=o.nReps?o.nReps:1,_=o.vHiddenSize*c,u=e>1&&s,d=o.kvNumHeads?o.kvNumHeads:o.numHeads,g=u?[o.batchSize,d,l,o.headSize]:void 0,h=[o.batchSize,o.sequenceLength,_],x=12,F={x:Math.ceil(o.vHeadSize/x),y:Math.ceil(o.sequenceLength/x),z:o.batchSize*o.numHeads},v=[{type:12,data:o.sequenceLength},{type:12,data:l},{type:12,data:o.vHeadSize},{type:12,data:o.numHeads},{type:12,data:o.headSize},{type:12,data:_},{type:12,data:a},{type:12,data:o.kvSequenceLength},{type:12,data:c}],b=u&&s&&Me.size(s.dims)>0,C=["type","type"];b&&C.push("type"),n&&C.push("type"),i&&C.push("type");let y=[{dims:h,dataType:r.dataType,gpuDataType:0}];u&&y.push({dims:g,dataType:r.dataType,gpuDataType:0});let P=I=>{let f=Fe("probs",r.dataType,r.dims),E=Fe("v",t.dataType,t.dims),D=[f,E];b&&D.push(Fe("past_value",s.dataType,s.dims));let O=n?Fe("seq_lens",n.dataType,n.dims):void 0;n&&D.push(O);let U=i?Fe("total_sequence_length_input",i.dataType,i.dims):void 0;i&&D.push(U);let W=[it("output",r.dataType,h)];u&&W.push(it("present_value",r.dataType,g));let z=[{name:"M",type:"u32"},{name:"K",type:"u32"},{name:"N",type:"u32"},{name:"num_heads",type:"u32"},{name:"head_size",type:"u32"},{name:"v_hidden_size",type:"u32"},{name:"past_sequence_length",type:"u32"},{name:"kv_sequence_length",type:"u32"},{name:"n_reps",type:"u32"}];return`
292
+ }`};return{name:"AttentionProbs",shaderCache:{hint:`${F};${o!==void 0};${s!==void 0};${e}`,inputDependencies:I},getRunData:()=>({outputs:f,dispatchGroup:C,programUniforms:y}),getShaderSource:E}},vM=(e,r,t,s,o,a,n=void 0,i=void 0)=>{let l=a+o.kvSequenceLength,c=o.nReps?o.nReps:1,_=o.vHiddenSize*c,u=e>1&&s,d=o.kvNumHeads?o.kvNumHeads:o.numHeads,g=u?[o.batchSize,d,l,o.headSize]:void 0,h=[o.batchSize,o.sequenceLength,_],x=12,F={x:Math.ceil(o.vHeadSize/x),y:Math.ceil(o.sequenceLength/x),z:o.batchSize*o.numHeads},v=[{type:12,data:o.sequenceLength},{type:12,data:l},{type:12,data:o.vHeadSize},{type:12,data:o.numHeads},{type:12,data:o.headSize},{type:12,data:_},{type:12,data:a},{type:12,data:o.kvSequenceLength},{type:12,data:c}],b=u&&s&&Me.size(s.dims)>0,C=["type","type"];b&&C.push("type"),n&&C.push("type"),i&&C.push("type");let y=[{dims:h,dataType:r.dataType,gpuDataType:0}];u&&y.push({dims:g,dataType:r.dataType,gpuDataType:0});let P=I=>{let f=Fe("probs",r.dataType,r.dims),E=Fe("v",t.dataType,t.dims),D=[f,E];b&&D.push(Fe("past_value",s.dataType,s.dims));let O=n?Fe("seq_lens",n.dataType,n.dims):void 0;n&&D.push(O);let U=i?Fe("total_sequence_length_input",i.dataType,i.dims):void 0;i&&D.push(U);let W=[it("output",r.dataType,h)];u&&W.push(it("present_value",r.dataType,g));let z=[{name:"M",type:"u32"},{name:"K",type:"u32"},{name:"N",type:"u32"},{name:"num_heads",type:"u32"},{name:"head_size",type:"u32"},{name:"v_hidden_size",type:"u32"},{name:"past_sequence_length",type:"u32"},{name:"kv_sequence_length",type:"u32"},{name:"n_reps",type:"u32"}];return`
293
293
  const TILE_SIZE = ${x}u;
294
294
  var<workgroup> tileQ: array<${f.type.value}, ${x*x}>;
295
295
  var<workgroup> tileV: array<${f.type.value}, ${x*x}>;
@@ -344,7 +344,7 @@ var best_index : i32 = 0;`,`if (${s.getByIndices("input_indices")} ${r.selectLas
344
344
  + headIdx * uniforms.N + n;
345
345
  output[outputIdx] = value;
346
346
  }
347
- }`};return{name:"AttentionScore",shaderCache:{hint:`${s!==void 0};${e}`,inputDependencies:C},getRunData:()=>({outputs:y,dispatchGroup:F,programUniforms:v}),getShaderSource:P}},mn=(e,r,t,s,o,a,n,i,l,c,_=void 0,u=void 0)=>{let d=Math.min(e.outputCount,1+(n?1:0)+(i?1:0)),g=d>1?c.pastSequenceLength:0,h=g+c.kvSequenceLength,x=l&&Me.size(l.dims)>0?l:void 0,F=[r,t];d>1&&n&&Me.size(n.dims)>0&&F.push(n),x&&F.push(x),_&&F.push(_),u&&F.push(u);let v=e.compute(wM(d,r,t,n,x,c,g,_,u),{inputs:F,outputs:d>1?[-1,1]:[-1]})[0];e.compute(MM(v,c.batchSize,c.numHeads,g,c.sequenceLength,h,_,u),{inputs:_&&u?[v,_,u]:[v],outputs:[]});let b=[v,s];d>1&&i&&Me.size(i.dims)>0&&b.push(i),_&&b.push(_),u&&b.push(u),e.compute(bM(d,v,s,i,c,g,_,u),{inputs:b,outputs:d>1?[0,2]:[0]})},vM=(e,r)=>{let t=[r.batchSize,r.numHeads,r.sequenceLength,r.headSize],s=r.sequenceLength,o=r.inputHiddenSize,a=r.headSize,n=12,i={x:Math.ceil(r.headSize/n),y:Math.ceil(r.sequenceLength/n),z:r.batchSize*r.numHeads},l=[e.inputs[0],e.inputs[1],e.inputs[2]],c=[{type:12,data:s},{type:12,data:o},{type:12,data:a},{type:12,data:r.numHeads},{type:12,data:r.headSize},{type:12,data:r.hiddenSize},{type:12,data:r.hiddenSize+r.hiddenSize+r.vHiddenSize}],_=u=>{let d=it("output_q",l[0].dataType,t),g=it("output_k",l[0].dataType,t),h=it("output_v",l[0].dataType,t),x=Fe("input",l[0].dataType,l[0].dims),F=Fe("weight",l[1].dataType,l[1].dims),v=Fe("bias",l[2].dataType,l[2].dims),b=x.type.storage,C=[{name:"M",type:"u32"},{name:"K",type:"u32"},{name:"N",type:"u32"},{name:"num_heads",type:"u32"},{name:"head_size",type:"u32"},{name:"hidden_size",type:"u32"},{name:"ldb",type:"u32"}];return`
347
+ }`};return{name:"AttentionScore",shaderCache:{hint:`${s!==void 0};${e}`,inputDependencies:C},getRunData:()=>({outputs:y,dispatchGroup:F,programUniforms:v}),getShaderSource:P}},hn=(e,r,t,s,o,a,n,i,l,c,_=void 0,u=void 0)=>{let d=Math.min(e.outputCount,1+(n?1:0)+(i?1:0)),g=d>1?c.pastSequenceLength:0,h=g+c.kvSequenceLength,x=l&&Me.size(l.dims)>0?l:void 0,F=[r,t];d>1&&n&&Me.size(n.dims)>0&&F.push(n),x&&F.push(x),_&&F.push(_),u&&F.push(u);let v=e.compute(bM(d,r,t,n,x,c,g,_,u),{inputs:F,outputs:d>1?[-1,1]:[-1]})[0];e.compute(wM(v,c.batchSize,c.numHeads,g,c.sequenceLength,h,_,u),{inputs:_&&u?[v,_,u]:[v],outputs:[]});let b=[v,s];d>1&&i&&Me.size(i.dims)>0&&b.push(i),_&&b.push(_),u&&b.push(u),e.compute(vM(d,v,s,i,c,g,_,u),{inputs:b,outputs:d>1?[0,2]:[0]})},xM=(e,r)=>{let t=[r.batchSize,r.numHeads,r.sequenceLength,r.headSize],s=r.sequenceLength,o=r.inputHiddenSize,a=r.headSize,n=12,i={x:Math.ceil(r.headSize/n),y:Math.ceil(r.sequenceLength/n),z:r.batchSize*r.numHeads},l=[e.inputs[0],e.inputs[1],e.inputs[2]],c=[{type:12,data:s},{type:12,data:o},{type:12,data:a},{type:12,data:r.numHeads},{type:12,data:r.headSize},{type:12,data:r.hiddenSize},{type:12,data:r.hiddenSize+r.hiddenSize+r.vHiddenSize}],_=u=>{let d=it("output_q",l[0].dataType,t),g=it("output_k",l[0].dataType,t),h=it("output_v",l[0].dataType,t),x=Fe("input",l[0].dataType,l[0].dims),F=Fe("weight",l[1].dataType,l[1].dims),v=Fe("bias",l[2].dataType,l[2].dims),b=x.type.storage,C=[{name:"M",type:"u32"},{name:"K",type:"u32"},{name:"N",type:"u32"},{name:"num_heads",type:"u32"},{name:"head_size",type:"u32"},{name:"hidden_size",type:"u32"},{name:"ldb",type:"u32"}];return`
348
348
  const TILE_SIZE = ${n}u;
349
349
  var<workgroup> tileInput: array<${b}, ${n*n}>;
350
350
  var<workgroup> tileWeightQ: array<${b}, ${n*n}>;
@@ -399,7 +399,7 @@ var best_index : i32 = 0;`,`if (${s.getByIndices("input_indices")} ${r.selectLas
399
399
  output_k[outputIdx] = valueK;
400
400
  output_v[outputIdx] = valueV;
401
401
  }
402
- }`};return e.compute({name:"AttentionPrepare",shaderCache:{inputDependencies:["type","type","type"]},getRunData:()=>({outputs:[{dims:t,dataType:e.inputs[0].dataType,gpuDataType:0},{dims:t,dataType:e.inputs[0].dataType,gpuDataType:0},{dims:t,dataType:e.inputs[0].dataType,gpuDataType:0}],dispatchGroup:i,programUniforms:c}),getShaderSource:_},{inputs:l,outputs:[-1,-1,-1]})},sx=(e,r)=>{let t=gM(e.inputs,r),[s,o,a]=vM(e,t);return mn(e,s,o,a,e.inputs[4],void 0,void 0,void 0,e.inputs[5],t)}}),xM,yM,TM,ox,yP=Ve(()=>{"use strict";ks(),Mt(),kt(),hr(),Ct(),xM=(e,r)=>{if(!e||e.length!==5)throw new Error("BatchNormalization requires 5 inputs");let t=(s,o,a)=>{let n=o.length;if(n!==s.length)throw new Error(`${a}: num dimensions != ${n}`);o.forEach((i,l)=>{if(i!==s[l])throw new Error(`${a}: dim[${l}] do not match`)})};if(e[0].dims.length>1){let s=r.format==="NHWC"?r.spatial?e[0].dims.slice(-1):e[0].dims.slice(-1).concat(e[0].dims.slice(1,e[0].dims.length-1)):e[0].dims.slice(1,r.spatial?2:void 0);t(e[1].dims,s,"Invalid input scale"),t(e[2].dims,s,"Invalid input B"),t(e[3].dims,s,"Invalid input mean"),t(e[4].dims,s,"Invalid input var")}else t(e[1].dims,[1],"Invalid input scale"),t(e[2].dims,[1],"Invalid input B"),t(e[3].dims,[1],"Invalid input mean"),t(e[4].dims,[1],"Invalid input var")},yM=(e,r)=>{let{epsilon:t,spatial:s,format:o}=r,a=e[0].dims,n=s?dr(a[a.length-1]):1,i=o==="NHWC"&&a.length>1?n:1,l=Me.size(a)/n,c=s,_=c?a.length:a,u=Fe("x",e[0].dataType,e[0].dims,n),d=Fe("scale",e[1].dataType,e[1].dims,i),g=Fe("bias",e[2].dataType,e[2].dims,i),h=Fe("inputMean",e[3].dataType,e[3].dims,i),x=Fe("inputVar",e[4].dataType,e[4].dims,i),F=it("y",e[0].dataType,_,n),v=()=>{let C="";if(s)C=`let cOffset = ${a.length===1?"0u":o==="NHWC"?`outputIndices[${a.length-1}] / ${n}`:"outputIndices[1]"};`;else if(o==="NCHW")C=`
402
+ }`};return e.compute({name:"AttentionPrepare",shaderCache:{inputDependencies:["type","type","type"]},getRunData:()=>({outputs:[{dims:t,dataType:e.inputs[0].dataType,gpuDataType:0},{dims:t,dataType:e.inputs[0].dataType,gpuDataType:0},{dims:t,dataType:e.inputs[0].dataType,gpuDataType:0}],dispatchGroup:i,programUniforms:c}),getShaderSource:_},{inputs:l,outputs:[-1,-1,-1]})},ox=(e,r)=>{let t=MM(e.inputs,r),[s,o,a]=xM(e,t);return hn(e,s,o,a,e.inputs[4],void 0,void 0,void 0,e.inputs[5],t)}}),yM,TM,PM,ax,TP=Ve(()=>{"use strict";ks(),Mt(),kt(),hr(),Ct(),yM=(e,r)=>{if(!e||e.length!==5)throw new Error("BatchNormalization requires 5 inputs");let t=(s,o,a)=>{let n=o.length;if(n!==s.length)throw new Error(`${a}: num dimensions != ${n}`);o.forEach((i,l)=>{if(i!==s[l])throw new Error(`${a}: dim[${l}] do not match`)})};if(e[0].dims.length>1){let s=r.format==="NHWC"?r.spatial?e[0].dims.slice(-1):e[0].dims.slice(-1).concat(e[0].dims.slice(1,e[0].dims.length-1)):e[0].dims.slice(1,r.spatial?2:void 0);t(e[1].dims,s,"Invalid input scale"),t(e[2].dims,s,"Invalid input B"),t(e[3].dims,s,"Invalid input mean"),t(e[4].dims,s,"Invalid input var")}else t(e[1].dims,[1],"Invalid input scale"),t(e[2].dims,[1],"Invalid input B"),t(e[3].dims,[1],"Invalid input mean"),t(e[4].dims,[1],"Invalid input var")},TM=(e,r)=>{let{epsilon:t,spatial:s,format:o}=r,a=e[0].dims,n=s?dr(a[a.length-1]):1,i=o==="NHWC"&&a.length>1?n:1,l=Me.size(a)/n,c=s,_=c?a.length:a,u=Fe("x",e[0].dataType,e[0].dims,n),d=Fe("scale",e[1].dataType,e[1].dims,i),g=Fe("bias",e[2].dataType,e[2].dims,i),h=Fe("inputMean",e[3].dataType,e[3].dims,i),x=Fe("inputVar",e[4].dataType,e[4].dims,i),F=it("y",e[0].dataType,_,n),v=()=>{let C="";if(s)C=`let cOffset = ${a.length===1?"0u":o==="NHWC"?`outputIndices[${a.length-1}] / ${n}`:"outputIndices[1]"};`;else if(o==="NCHW")C=`
403
403
  ${F.indicesSet("outputIndices","0","0")}
404
404
  let cOffset = ${F.indicesToOffset("outputIndices")};`;else{C=`var cIndices = ${d.type.indices}(0);
405
405
  cIndices[0] = outputIndices[${a.length-1}];`;for(let y=1;y<d.rank;y++)C+=`cIndices[${y}] = outputIndices[${y}];`;C+=`let cOffset = ${d.indicesToOffset("cIndices")};`}return C},b=C=>`
@@ -416,7 +416,7 @@ var best_index : i32 = 0;`,`if (${s.getByIndices("input_indices")} ${r.selectLas
416
416
  let x = ${u.getByOffset("global_idx")};
417
417
  let value = (x - inputMean) * inverseSqrt(inputVar + epsilon) * scale + bias;
418
418
  ${F.setByOffset("global_idx","value")}
419
- }`;return{name:"BatchNormalization",shaderCache:{hint:`${r.epsilon}_${r.format}_${s}_${n}`,inputDependencies:c?["rank","type","type","type","type"]:void 0},getShaderSource:b,getRunData:()=>({outputs:[{dims:e[0].dims,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:c?[{type:12,data:l},...dt(a)]:[{type:12,data:l}]})}},TM=e=>jt(e),ox=(e,r)=>{let{inputs:t,outputCount:s}=e,o=TM({...r,outputCount:s});if(Zt.webgpu.validateInputContent&&xM(t,o),r.trainingMode)throw new Error("BatchNormalization trainingMode is not supported yet.");e.compute(yM(t,o))}}),PM,EM,ax,TP=Ve(()=>{"use strict";kt(),Ct(),PM=e=>{if(e[0].dims.length!==3)throw new Error("input should have 3 dimensions");if(![320,640,1280].includes(e[0].dims[2]))throw new Error("number of channels should be 320, 640 or 1280");if(e[1].dims.length!==1)throw new Error("bias is expected to have 1 dimensions");if(e[0].dims[2]!==e[1].dims[0])throw new Error("last dimension of input and bias are not the same")},EM=e=>{let r=e[0].dims,t=e[0].dims[2],s=Me.size(r)/4,o=e[0].dataType,a=Fe("input",o,r,4),n=Fe("bias",o,[t],4),i=Fe("residual",o,r,4),l=it("output",o,r,4);return{name:"BiasAdd",getRunData:()=>({outputs:[{dims:r,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(s/64)}}),getShaderSource:c=>`
419
+ }`;return{name:"BatchNormalization",shaderCache:{hint:`${r.epsilon}_${r.format}_${s}_${n}`,inputDependencies:c?["rank","type","type","type","type"]:void 0},getShaderSource:b,getRunData:()=>({outputs:[{dims:e[0].dims,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:c?[{type:12,data:l},...dt(a)]:[{type:12,data:l}]})}},PM=e=>jt(e),ax=(e,r)=>{let{inputs:t,outputCount:s}=e,o=PM({...r,outputCount:s});if(Zt.webgpu.validateInputContent&&yM(t,o),r.trainingMode)throw new Error("BatchNormalization trainingMode is not supported yet.");e.compute(TM(t,o))}}),EM,kM,nx,PP=Ve(()=>{"use strict";kt(),Ct(),EM=e=>{if(e[0].dims.length!==3)throw new Error("input should have 3 dimensions");if(![320,640,1280].includes(e[0].dims[2]))throw new Error("number of channels should be 320, 640 or 1280");if(e[1].dims.length!==1)throw new Error("bias is expected to have 1 dimensions");if(e[0].dims[2]!==e[1].dims[0])throw new Error("last dimension of input and bias are not the same")},kM=e=>{let r=e[0].dims,t=e[0].dims[2],s=Me.size(r)/4,o=e[0].dataType,a=Fe("input",o,r,4),n=Fe("bias",o,[t],4),i=Fe("residual",o,r,4),l=it("output",o,r,4);return{name:"BiasAdd",getRunData:()=>({outputs:[{dims:r,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(s/64)}}),getShaderSource:c=>`
420
420
  const channels = ${t}u / 4;
421
421
  ${c.declareVariables(a,n,i,l)}
422
422
 
@@ -425,7 +425,7 @@ var best_index : i32 = 0;`,`if (${s.getByIndices("input_indices")} ${r.selectLas
425
425
  let value = ${a.getByOffset("global_idx")}
426
426
  + ${n.getByOffset("global_idx % channels")} + ${i.getByOffset("global_idx")};
427
427
  ${l.setByOffset("global_idx","value")}
428
- }`}},ax=e=>{PM(e.inputs),e.compute(EM(e.inputs))}}),kM,Rt,nx,ix,lx,cx,dx,ux,_x,px,mx,CM,hx,fx,gx,Mx,cn,wx,Ui,bx,vx,xx,yx,Tx,Px,Ex,kx,Cx,Sx,Fx,Ix,Ax,$x,Dx,Ox,td,Lx,Rd,Nd,Bx,zx,Rx,SM,FM,Nx,uu=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),kM=(e,r,t,s,o,a,n)=>{let i=Math.ceil(r/4),l="";typeof o=="string"?l=`${o}(a)`:l=o("a");let c=Fe("inputData",t,[i],4),_=it("outputData",s,[i],4),u=[{name:"vec_size",type:"u32"}];return n&&u.push(...n),`
428
+ }`}},nx=e=>{EM(e.inputs),e.compute(kM(e.inputs))}}),CM,Rt,ix,lx,cx,dx,ux,_x,px,mx,hx,SM,fx,gx,Mx,wx,dn,bx,Ui,vx,xx,yx,Tx,Px,Ex,kx,Cx,Sx,Fx,Ix,Ax,$x,Dx,Ox,Lx,td,Bx,Rd,Nd,zx,Rx,Nx,FM,IM,jx,uu=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),CM=(e,r,t,s,o,a,n)=>{let i=Math.ceil(r/4),l="";typeof o=="string"?l=`${o}(a)`:l=o("a");let c=Fe("inputData",t,[i],4),_=it("outputData",s,[i],4),u=[{name:"vec_size",type:"u32"}];return n&&u.push(...n),`
429
429
  ${e.registerUniforms(u).declareVariables(c,_)}
430
430
 
431
431
  ${a??""}
@@ -435,7 +435,7 @@ var best_index : i32 = 0;`,`if (${s.getByIndices("input_indices")} ${r.selectLas
435
435
 
436
436
  let a = ${c.getByOffset("global_idx")};
437
437
  ${_.setByOffset("global_idx",l)}
438
- }`},Rt=(e,r,t,s,o,a=e.dataType,n,i)=>{let l=[{type:12,data:Math.ceil(Me.size(e.dims)/4)}];return n&&l.push(...n),{name:r,shaderCache:{hint:o,inputDependencies:["type"]},getShaderSource:c=>kM(c,Me.size(e.dims),e.dataType,a,t,s,i),getRunData:c=>({outputs:[{dims:e.dims,dataType:a}],dispatchGroup:{x:Math.ceil(Me.size(c[0].dims)/64/4)},programUniforms:l})}},nx=e=>{e.compute(Rt(e.inputs[0],"Abs","abs"))},ix=e=>{e.compute(Rt(e.inputs[0],"Acos","acos"))},lx=e=>{e.compute(Rt(e.inputs[0],"Acosh","acosh"))},cx=e=>{e.compute(Rt(e.inputs[0],"Asin","asin"))},dx=e=>{e.compute(Rt(e.inputs[0],"Asinh","asinh"))},ux=e=>{e.compute(Rt(e.inputs[0],"Atan","atan"))},_x=e=>{e.compute(Rt(e.inputs[0],"Atanh","atanh"))},px=e=>jt(e),mx=(e,r)=>{let t;switch(r.to){case 10:t="vec4<f16>";break;case 1:t="vec4<f32>";break;case 12:t="vec4<u32>";break;case 6:t="vec4<i32>";break;case 9:t="vec4<bool>";break;default:throw new RangeError(`not supported type (specified in attribute 'to' from 'Cast' operator): ${r.to}`)}e.compute(Rt(e.inputs[0],"Cast",t,void 0,r.cacheKey,r.to))},CM=e=>{let r,t,s=e.length>=2&&e[1].data!==0,o=e.length>=3&&e[2].data!==0;switch(e[0].dataType){case 1:r=s?e[1].getFloat32Array()[0]:-34028234663852886e22,t=o?e[2].getFloat32Array()[0]:34028234663852886e22;break;case 10:r=s?e[1].getUint16Array()[0]:64511,t=o?e[2].getUint16Array()[0]:31743;break;default:throw new Error("Unsupport data type")}return jt({min:r,max:t})},hx=(e,r)=>{let t=r||CM(e.inputs),s=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"Clip",o=>`clamp(${o}, vec4<${s}>(uniforms.min), vec4<${s}>(uniforms.max))`,void 0,t.cacheKey,void 0,[{type:e.inputs[0].dataType,data:t.min},{type:e.inputs[0].dataType,data:t.max}],[{name:"min",type:s},{name:"max",type:s}]),{inputs:[0]})},fx=e=>{e.compute(Rt(e.inputs[0],"Ceil","ceil"))},gx=e=>{e.compute(Rt(e.inputs[0],"Cos","cos"))},Mx=e=>{e.compute(Rt(e.inputs[0],"Cosh","cosh"))},cn=e=>jt(e),wx=(e,r)=>{let t=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"Elu",s=>`elu_vf32(${s})`,`
438
+ }`},Rt=(e,r,t,s,o,a=e.dataType,n,i)=>{let l=[{type:12,data:Math.ceil(Me.size(e.dims)/4)}];return n&&l.push(...n),{name:r,shaderCache:{hint:o,inputDependencies:["type"]},getShaderSource:c=>CM(c,Me.size(e.dims),e.dataType,a,t,s,i),getRunData:c=>({outputs:[{dims:e.dims,dataType:a}],dispatchGroup:{x:Math.ceil(Me.size(c[0].dims)/64/4)},programUniforms:l})}},ix=e=>{e.compute(Rt(e.inputs[0],"Abs","abs"))},lx=e=>{e.compute(Rt(e.inputs[0],"Acos","acos"))},cx=e=>{e.compute(Rt(e.inputs[0],"Acosh","acosh"))},dx=e=>{e.compute(Rt(e.inputs[0],"Asin","asin"))},ux=e=>{e.compute(Rt(e.inputs[0],"Asinh","asinh"))},_x=e=>{e.compute(Rt(e.inputs[0],"Atan","atan"))},px=e=>{e.compute(Rt(e.inputs[0],"Atanh","atanh"))},mx=e=>jt(e),hx=(e,r)=>{let t;switch(r.to){case 10:t="vec4<f16>";break;case 1:t="vec4<f32>";break;case 12:t="vec4<u32>";break;case 6:t="vec4<i32>";break;case 9:t="vec4<bool>";break;default:throw new RangeError(`not supported type (specified in attribute 'to' from 'Cast' operator): ${r.to}`)}e.compute(Rt(e.inputs[0],"Cast",t,void 0,r.cacheKey,r.to))},SM=e=>{let r,t,s=e.length>=2&&e[1].data!==0,o=e.length>=3&&e[2].data!==0;switch(e[0].dataType){case 1:r=s?e[1].getFloat32Array()[0]:-34028234663852886e22,t=o?e[2].getFloat32Array()[0]:34028234663852886e22;break;case 10:r=s?e[1].getUint16Array()[0]:64511,t=o?e[2].getUint16Array()[0]:31743;break;default:throw new Error("Unsupport data type")}return jt({min:r,max:t})},fx=(e,r)=>{let t=r||SM(e.inputs),s=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"Clip",o=>`clamp(${o}, vec4<${s}>(uniforms.min), vec4<${s}>(uniforms.max))`,void 0,t.cacheKey,void 0,[{type:e.inputs[0].dataType,data:t.min},{type:e.inputs[0].dataType,data:t.max}],[{name:"min",type:s},{name:"max",type:s}]),{inputs:[0]})},gx=e=>{e.compute(Rt(e.inputs[0],"Ceil","ceil"))},Mx=e=>{e.compute(Rt(e.inputs[0],"Cos","cos"))},wx=e=>{e.compute(Rt(e.inputs[0],"Cosh","cosh"))},dn=e=>jt(e),bx=(e,r)=>{let t=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"Elu",s=>`elu_vf32(${s})`,`
439
439
  const elu_alpha_ = ${t}(${r.alpha});
440
440
 
441
441
  fn elu_f32(a: ${t}) -> ${t} {
@@ -456,7 +456,7 @@ fn erf_vf32(v: vec4<${e}>) -> vec4<${e}> {
456
456
  let absv = abs(v);
457
457
  let x = 1.0 / (1.0 + r0 * absv);
458
458
  return sign(v) * (1.0 - ((((r5 * x + r4) * x + r3) * x + r2) * x + r1) * x * exp(-absv * absv));
459
- }`,bx=e=>{let r=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"Erf",t=>`erf_vf32(${t})`,Ui(r)))},vx=e=>{e.compute(Rt(e.inputs[0],"Exp","exp"))},xx=e=>{e.compute(Rt(e.inputs[0],"Floor","floor"))},yx=e=>{let r=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"Gelu",t=>`0.5 * ${t} * (1.0 + erf_vf32(${t} * 0.7071067811865475))`,Ui(r)))},Tx=(e,r)=>{let t=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"LeakyRelu",s=>`select(leaky_relu_alpha_ * ${s}, ${s}, ${s} >= vec4<${t}>(0.0))`,`const leaky_relu_alpha_ = ${t}(${r.alpha});`,r.cacheKey))},Px=e=>{e.compute(Rt(e.inputs[0],"Not",r=>`!${r}`))},Ex=e=>{e.compute(Rt(e.inputs[0],"Neg",r=>`-${r}`))},kx=e=>{e.compute(Rt(e.inputs[0],"Reciprocal",r=>`1.0/${r}`))},Cx=e=>{let r=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"Relu",t=>`select(vec4<${r}>(0.0), ${t}, ${t} > vec4<${r}>(0.0))`))},Sx=e=>{e.compute(Rt(e.inputs[0],"Sigmoid",r=>`(1.0 / (1.0 + exp(-${r})))`))},Fx=e=>jt(e),Ix=(e,r)=>{let t=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"HardSigmoid",s=>`max(vec4<${t}>(0.0), min(vec4<${t}>(1.0), ${r.alpha} * ${s} + vec4<${t}>(${r.beta})))`,void 0,r.cacheKey))},Ax=e=>{e.compute(Rt(e.inputs[0],"Sin","sin"))},$x=e=>{e.compute(Rt(e.inputs[0],"Sinh","sinh"))},Dx=e=>{e.compute(Rt(e.inputs[0],"Sqrt","sqrt"))},Ox=e=>{e.compute(Rt(e.inputs[0],"Tan","tan"))},td=e=>`sign(${e}) * (1 - exp(-2 * abs(${e}))) / (1 + exp(-2 * abs(${e})))`,Lx=e=>{e.compute(Rt(e.inputs[0],"Tanh",td))},Rd=(e="f32")=>`
459
+ }`,vx=e=>{let r=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"Erf",t=>`erf_vf32(${t})`,Ui(r)))},xx=e=>{e.compute(Rt(e.inputs[0],"Exp","exp"))},yx=e=>{e.compute(Rt(e.inputs[0],"Floor","floor"))},Tx=e=>{let r=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"Gelu",t=>`0.5 * ${t} * (1.0 + erf_vf32(${t} * 0.7071067811865475))`,Ui(r)))},Px=(e,r)=>{let t=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"LeakyRelu",s=>`select(leaky_relu_alpha_ * ${s}, ${s}, ${s} >= vec4<${t}>(0.0))`,`const leaky_relu_alpha_ = ${t}(${r.alpha});`,r.cacheKey))},Ex=e=>{e.compute(Rt(e.inputs[0],"Not",r=>`!${r}`))},kx=e=>{e.compute(Rt(e.inputs[0],"Neg",r=>`-${r}`))},Cx=e=>{e.compute(Rt(e.inputs[0],"Reciprocal",r=>`1.0/${r}`))},Sx=e=>{let r=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"Relu",t=>`select(vec4<${r}>(0.0), ${t}, ${t} > vec4<${r}>(0.0))`))},Fx=e=>{e.compute(Rt(e.inputs[0],"Sigmoid",r=>`(1.0 / (1.0 + exp(-${r})))`))},Ix=e=>jt(e),Ax=(e,r)=>{let t=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"HardSigmoid",s=>`max(vec4<${t}>(0.0), min(vec4<${t}>(1.0), ${r.alpha} * ${s} + vec4<${t}>(${r.beta})))`,void 0,r.cacheKey))},$x=e=>{e.compute(Rt(e.inputs[0],"Sin","sin"))},Dx=e=>{e.compute(Rt(e.inputs[0],"Sinh","sinh"))},Ox=e=>{e.compute(Rt(e.inputs[0],"Sqrt","sqrt"))},Lx=e=>{e.compute(Rt(e.inputs[0],"Tan","tan"))},td=e=>`sign(${e}) * (1 - exp(-2 * abs(${e}))) / (1 + exp(-2 * abs(${e})))`,Bx=e=>{e.compute(Rt(e.inputs[0],"Tanh",td))},Rd=(e="f32")=>`
460
460
  const fast_gelu_a: ${e} = 0.5;
461
461
  const fast_gelu_b: ${e} = 0.7978845608028654;
462
462
  const fast_gelu_c: ${e} = 0.035677408136300125;
@@ -464,7 +464,7 @@ const fast_gelu_c: ${e} = 0.035677408136300125;
464
464
  fn tanh_v(v: vec4<${e}>) -> vec4<${e}> {
465
465
  return ${td("v")};
466
466
  }
467
- `,Nd=e=>`(fast_gelu_a + fast_gelu_a * tanh_v(${e} * (fast_gelu_c * ${e} * ${e} + fast_gelu_b))) * ${e}`,Bx=e=>{let r=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"FastGelu",Nd,Rd(r),void 0,e.inputs[0].dataType))},zx=(e,r)=>{let t=Ur(e.inputs[0].dataType);return e.compute(Rt(e.inputs[0],"ThresholdedRelu",s=>`select(vec4<${t}>(0.0), ${s}, ${s} > thresholded_relu_alpha_)`,`const thresholded_relu_alpha_ = vec4<${t}>(${r.alpha});`,r.cacheKey)),0},Rx=e=>{e.compute(Rt(e.inputs[0],"Log","log"))},SM=(e,r)=>`
467
+ `,Nd=e=>`(fast_gelu_a + fast_gelu_a * tanh_v(${e} * (fast_gelu_c * ${e} * ${e} + fast_gelu_b))) * ${e}`,zx=e=>{let r=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"FastGelu",Nd,Rd(r),void 0,e.inputs[0].dataType))},Rx=(e,r)=>{let t=Ur(e.inputs[0].dataType);return e.compute(Rt(e.inputs[0],"ThresholdedRelu",s=>`select(vec4<${t}>(0.0), ${s}, ${s} > thresholded_relu_alpha_)`,`const thresholded_relu_alpha_ = vec4<${t}>(${r.alpha});`,r.cacheKey)),0},Nx=e=>{e.compute(Rt(e.inputs[0],"Log","log"))},FM=(e,r)=>`
468
468
  const alpha = vec4<${e}>(${r});
469
469
  const one = ${e}(1.0);
470
470
  const zero = ${e}(0.0);
@@ -481,7 +481,7 @@ fn quick_gelu_impl(x: vec4<${e}>) -> vec4<${e}> {
481
481
  }
482
482
  return x * x1;
483
483
  }
484
- `,FM=e=>`quick_gelu_impl(${e})`,Nx=(e,r)=>{let t=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"QuickGelu",FM,SM(t,r.alpha),r.cacheKey,e.inputs[0].dataType))}}),IM,AM,jx,PP=Ve(()=>{"use strict";kt(),Ct(),uu(),IM=e=>{if(e[0].dims.length!==3)throw new Error("input should have 3 dimensions");if(![2560,5120,10240].includes(e[0].dims[2]))throw new Error("hidden state should be 2560, 5120 or 10240");if(e[1].dims.length!==1)throw new Error("bias is expected to have 1 dimensions");if(e[0].dims[2]!==e[1].dims[0])throw new Error("last dimension of input and bias are not the same")},AM=e=>{let r=e[0].dims.slice();r[2]=r[2]/2;let t=Fe("input",e[0].dataType,e[0].dims,4),s=Fe("bias",e[0].dataType,[e[0].dims[2]],4),o=it("output",e[0].dataType,r,4),a=Me.size(r)/4,n=$r(e[0].dataType);return{name:"BiasSplitGelu",getRunData:()=>({outputs:[{dims:r,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(a/64)}}),getShaderSource:i=>`
484
+ `,IM=e=>`quick_gelu_impl(${e})`,jx=(e,r)=>{let t=Ur(e.inputs[0].dataType);e.compute(Rt(e.inputs[0],"QuickGelu",IM,FM(t,r.alpha),r.cacheKey,e.inputs[0].dataType))}}),AM,$M,Vx,EP=Ve(()=>{"use strict";kt(),Ct(),uu(),AM=e=>{if(e[0].dims.length!==3)throw new Error("input should have 3 dimensions");if(![2560,5120,10240].includes(e[0].dims[2]))throw new Error("hidden state should be 2560, 5120 or 10240");if(e[1].dims.length!==1)throw new Error("bias is expected to have 1 dimensions");if(e[0].dims[2]!==e[1].dims[0])throw new Error("last dimension of input and bias are not the same")},$M=e=>{let r=e[0].dims.slice();r[2]=r[2]/2;let t=Fe("input",e[0].dataType,e[0].dims,4),s=Fe("bias",e[0].dataType,[e[0].dims[2]],4),o=it("output",e[0].dataType,r,4),a=Me.size(r)/4,n=$r(e[0].dataType);return{name:"BiasSplitGelu",getRunData:()=>({outputs:[{dims:r,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(a/64)}}),getShaderSource:i=>`
485
485
  const M_SQRT2 = sqrt(2.0);
486
486
  const halfChannels = ${e[0].dims[2]/4/2}u;
487
487
 
@@ -499,7 +499,7 @@ fn quick_gelu_impl(x: vec4<${e}>) -> vec4<${e}> {
499
499
  let geluRight = valueRight * 0.5 * (erf_vf32(valueRight / M_SQRT2) + 1);
500
500
 
501
501
  ${o.setByOffset("global_idx","valueLeft * geluRight")}
502
- }`}},jx=e=>{IM(e.inputs),e.compute(AM(e.inputs))}}),$M,DM,ys,Vx,Wx,Ux,Gx,Kx,Hx,qx,Qx,Xx,Jx,EP=Ve(()=>{"use strict";Mt(),kt(),Ct(),$M=(e,r,t,s,o,a,n,i,l,c,_,u)=>{let d,g;typeof i=="string"?d=g=(b,C)=>`${i}((${b}),(${C}))`:typeof i=="function"?d=g=i:(d=i.scalar,g=i.vector);let h=it("outputData",_,s.length,4),x=Fe("aData",l,r.length,4),F=Fe("bData",c,t.length,4),v;if(o)if(a){let b=Me.size(r)===1,C=Me.size(t)===1,y=r.length>0&&r[r.length-1]%4===0,P=t.length>0&&t[t.length-1]%4===0;b||C?v=h.setByOffset("global_idx",g(b?`${x.type.value}(${x.getByOffset("0")}.x)`:x.getByOffset("global_idx"),C?`${F.type.value}(${F.getByOffset("0")}.x)`:F.getByOffset("global_idx"))):v=`
502
+ }`}},Vx=e=>{AM(e.inputs),e.compute($M(e.inputs))}}),DM,OM,ys,Wx,Ux,Gx,Kx,Hx,qx,Qx,Xx,Jx,Yx,kP=Ve(()=>{"use strict";Mt(),kt(),Ct(),DM=(e,r,t,s,o,a,n,i,l,c,_,u)=>{let d,g;typeof i=="string"?d=g=(b,C)=>`${i}((${b}),(${C}))`:typeof i=="function"?d=g=i:(d=i.scalar,g=i.vector);let h=it("outputData",_,s.length,4),x=Fe("aData",l,r.length,4),F=Fe("bData",c,t.length,4),v;if(o)if(a){let b=Me.size(r)===1,C=Me.size(t)===1,y=r.length>0&&r[r.length-1]%4===0,P=t.length>0&&t[t.length-1]%4===0;b||C?v=h.setByOffset("global_idx",g(b?`${x.type.value}(${x.getByOffset("0")}.x)`:x.getByOffset("global_idx"),C?`${F.type.value}(${F.getByOffset("0")}.x)`:F.getByOffset("global_idx"))):v=`
503
503
  let outputIndices = ${h.offsetToIndices("global_idx * 4u")};
504
504
  let offsetA = ${x.broadcastedIndicesToOffset("outputIndices",h)};
505
505
  let offsetB = ${F.broadcastedIndicesToOffset("outputIndices",h)};
@@ -532,7 +532,7 @@ fn quick_gelu_impl(x: vec4<${e}>) -> vec4<${e}> {
532
532
  ${e.mainStart()}
533
533
  ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")}
534
534
  ${v}
535
- }`},DM=(e,r,t,s,o,a,n=t.dataType)=>{let i=t.dims.map(x=>Number(x)??1),l=s.dims.map(x=>Number(x)??1),c=!Me.areEqual(i,l),_=i,u=Me.size(i),d=!1,g=!1,h=[c];if(c){let x=pa.calcShape(i,l,!1);if(!x)throw new Error("Can't perform binary op on the given tensors");_=x.slice(),u=Me.size(_);let F=Me.size(i)===1,v=Me.size(l)===1,b=i.length>0&&i[i.length-1]%4===0,C=l.length>0&&l[l.length-1]%4===0;h.push(F),h.push(v),h.push(b),h.push(C);let y=1;for(let P=1;P<_.length;P++){let I=i[i.length-P],f=l[l.length-P];if(I===f)y*=I;else break}y%4===0?(g=!0,d=!0):(F||v||b||C)&&(d=!0)}else d=!0;return h.push(d),{name:e,shaderCache:{hint:r+h.map(x=>x.toString()).join("_"),inputDependencies:["rank","rank"]},getShaderSource:x=>$M(x,i,l,_,d,c,g,o,t.dataType,s.dataType,n,a),getRunData:()=>({outputs:[{dims:_,dataType:n}],dispatchGroup:{x:Math.ceil(u/64/4)},programUniforms:[{type:12,data:Math.ceil(Me.size(_)/4)},...dt(i,l,_)]})}},ys=(e,r,t,s,o,a)=>{e.compute(DM(r,o??"",e.inputs[0],e.inputs[1],t,s,a))},Vx=e=>{ys(e,"Add",(r,t)=>`${r}+${t}`)},Wx=e=>{ys(e,"Div",(r,t)=>`${r}/${t}`)},Ux=e=>{ys(e,"Equal",{scalar:(r,t)=>`u32(${r}==${t})`,vector:(r,t)=>`vec4<u32>(${r}==${t})`},void 0,void 0,9)},Gx=e=>{ys(e,"Mul",(r,t)=>`${r}*${t}`)},Kx=e=>{let r=Fe("input",e.inputs[0].dataType,e.inputs[0].dims).type.value;ys(e,"Pow",{scalar:(t,s)=>`pow_custom(${t},${s})`,vector:(t,s)=>`pow_vector_custom(${t},${s})`},`
535
+ }`},OM=(e,r,t,s,o,a,n=t.dataType)=>{let i=t.dims.map(x=>Number(x)??1),l=s.dims.map(x=>Number(x)??1),c=!Me.areEqual(i,l),_=i,u=Me.size(i),d=!1,g=!1,h=[c];if(c){let x=ma.calcShape(i,l,!1);if(!x)throw new Error("Can't perform binary op on the given tensors");_=x.slice(),u=Me.size(_);let F=Me.size(i)===1,v=Me.size(l)===1,b=i.length>0&&i[i.length-1]%4===0,C=l.length>0&&l[l.length-1]%4===0;h.push(F),h.push(v),h.push(b),h.push(C);let y=1;for(let P=1;P<_.length;P++){let I=i[i.length-P],f=l[l.length-P];if(I===f)y*=I;else break}y%4===0?(g=!0,d=!0):(F||v||b||C)&&(d=!0)}else d=!0;return h.push(d),{name:e,shaderCache:{hint:r+h.map(x=>x.toString()).join("_"),inputDependencies:["rank","rank"]},getShaderSource:x=>DM(x,i,l,_,d,c,g,o,t.dataType,s.dataType,n,a),getRunData:()=>({outputs:[{dims:_,dataType:n}],dispatchGroup:{x:Math.ceil(u/64/4)},programUniforms:[{type:12,data:Math.ceil(Me.size(_)/4)},...dt(i,l,_)]})}},ys=(e,r,t,s,o,a)=>{e.compute(OM(r,o??"",e.inputs[0],e.inputs[1],t,s,a))},Wx=e=>{ys(e,"Add",(r,t)=>`${r}+${t}`)},Ux=e=>{ys(e,"Div",(r,t)=>`${r}/${t}`)},Gx=e=>{ys(e,"Equal",{scalar:(r,t)=>`u32(${r}==${t})`,vector:(r,t)=>`vec4<u32>(${r}==${t})`},void 0,void 0,9)},Kx=e=>{ys(e,"Mul",(r,t)=>`${r}*${t}`)},Hx=e=>{let r=Fe("input",e.inputs[0].dataType,e.inputs[0].dims).type.value;ys(e,"Pow",{scalar:(t,s)=>`pow_custom(${t},${s})`,vector:(t,s)=>`pow_vector_custom(${t},${s})`},`
536
536
  fn pow_custom(a : ${r}, b : ${r}) -> ${r} {
537
537
  if (b == ${r}(0.0)) {
538
538
  return ${r}(1.0);
@@ -545,7 +545,7 @@ fn quick_gelu_impl(x: vec4<${e}>) -> vec4<${e}> {
545
545
  // TODO: implement vectorized pow
546
546
  return vec4<${r}>(pow_custom(a.x, b.x), pow_custom(a.y, b.y), pow_custom(a.z, b.z), pow_custom(a.w, b.w));
547
547
  }
548
- `)},Hx=e=>{ys(e,"Sub",(r,t)=>`${r}-${t}`)},qx=e=>{ys(e,"Greater",{scalar:(r,t)=>`u32(${r}>${t})`,vector:(r,t)=>`vec4<u32>(${r}>${t})`},void 0,void 0,9)},Qx=e=>{ys(e,"Less",{scalar:(r,t)=>`u32(${r}<${t})`,vector:(r,t)=>`vec4<u32>(${r}<${t})`},void 0,void 0,9)},Xx=e=>{ys(e,"GreaterOrEqual",{scalar:(r,t)=>`u32(${r}>=${t})`,vector:(r,t)=>`vec4<u32>(${r}>=${t})`},void 0,void 0,9)},Jx=e=>{ys(e,"LessOrEqual",{scalar:(r,t)=>`u32(${r}<=${t})`,vector:(r,t)=>`vec4<u32>(${r}<=${t})`},void 0,void 0,9)}}),OM,LM,BM,zM,Yx,Zx,kP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),OM=(e,r)=>{if(!e||e.length<1)throw new Error("too few inputs");let t=0,s=e[t],o=s.dataType,a=s.dims.length;e.forEach((n,i)=>{if(i!==t){if(n.dataType!==o)throw new Error("input tensors should be one type");if(n.dims.length!==a)throw new Error("input tensors should have the same shape");n.dims.forEach((l,c)=>{if(c!==r&&l!==s.dims[c])throw new Error("non concat dimensions must match")})}})},LM=(e,r)=>`
548
+ `)},qx=e=>{ys(e,"Sub",(r,t)=>`${r}-${t}`)},Qx=e=>{ys(e,"Greater",{scalar:(r,t)=>`u32(${r}>${t})`,vector:(r,t)=>`vec4<u32>(${r}>${t})`},void 0,void 0,9)},Xx=e=>{ys(e,"Less",{scalar:(r,t)=>`u32(${r}<${t})`,vector:(r,t)=>`vec4<u32>(${r}<${t})`},void 0,void 0,9)},Jx=e=>{ys(e,"GreaterOrEqual",{scalar:(r,t)=>`u32(${r}>=${t})`,vector:(r,t)=>`vec4<u32>(${r}>=${t})`},void 0,void 0,9)},Yx=e=>{ys(e,"LessOrEqual",{scalar:(r,t)=>`u32(${r}<=${t})`,vector:(r,t)=>`vec4<u32>(${r}<=${t})`},void 0,void 0,9)}}),LM,BM,zM,RM,Zx,ey,CP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),LM=(e,r)=>{if(!e||e.length<1)throw new Error("too few inputs");let t=0,s=e[t],o=s.dataType,a=s.dims.length;e.forEach((n,i)=>{if(i!==t){if(n.dataType!==o)throw new Error("input tensors should be one type");if(n.dims.length!==a)throw new Error("input tensors should have the same shape");n.dims.forEach((l,c)=>{if(c!==r&&l!==s.dims[c])throw new Error("non concat dimensions must match")})}})},BM=(e,r)=>`
549
549
  fn calculateInputIndex(index: u32) -> u32 {
550
550
  let sizeInConcatAxis = array<u32, ${e}u>(${r});
551
551
  for (var i: u32 = 0u; i < ${e}; i += 1u ) {
@@ -554,12 +554,12 @@ fn quick_gelu_impl(x: vec4<${e}>) -> vec4<${e}> {
554
554
  }
555
555
  }
556
556
  return ${e}u;
557
- }`,BM=(e,r)=>{let t=e.length,s=[];for(let o=0;o<t;++o){let a=r.setByOffset("global_idx",e[o].getByIndices("indices"));t===1?s.push(a):o===0?s.push(`if (inputIndex == ${o}u) { ${a} }`):o===t-1?s.push(`else { ${a} }`):s.push(`else if (inputIndex == ${o}) { ${a} }`)}return s.join(`
558
- `)},zM=(e,r,t,s)=>{let o=Me.size(t),a=new Array(e.length),n=new Array(e.length),i=0,l=[],c=[],_=[{type:12,data:o}];for(let x=0;x<e.length;++x)i+=e[x].dims[r],a[x]=i,c.push(e[x].dims.length),n[x]=Fe(`input${x}`,s,c[x]),l.push("rank"),_.push({type:12,data:a[x]});for(let x=0;x<e.length;++x)_.push(...dt(e[x].dims));_.push(...dt(t));let u=it("output",s,t.length),d=u.indicesGet("indices",r),g=Array.from(Array(a.length).keys()).map(x=>`uniforms.sizeInConcatAxis${x}`).join(","),h=x=>`
557
+ }`,zM=(e,r)=>{let t=e.length,s=[];for(let o=0;o<t;++o){let a=r.setByOffset("global_idx",e[o].getByIndices("indices"));t===1?s.push(a):o===0?s.push(`if (inputIndex == ${o}u) { ${a} }`):o===t-1?s.push(`else { ${a} }`):s.push(`else if (inputIndex == ${o}) { ${a} }`)}return s.join(`
558
+ `)},RM=(e,r,t,s)=>{let o=Me.size(t),a=new Array(e.length),n=new Array(e.length),i=0,l=[],c=[],_=[{type:12,data:o}];for(let x=0;x<e.length;++x)i+=e[x].dims[r],a[x]=i,c.push(e[x].dims.length),n[x]=Fe(`input${x}`,s,c[x]),l.push("rank"),_.push({type:12,data:a[x]});for(let x=0;x<e.length;++x)_.push(...dt(e[x].dims));_.push(...dt(t));let u=it("output",s,t.length),d=u.indicesGet("indices",r),g=Array.from(Array(a.length).keys()).map(x=>`uniforms.sizeInConcatAxis${x}`).join(","),h=x=>`
559
559
 
560
560
  ${(()=>{x.registerUniform("outputSize","u32");for(let F=0;F<e.length;F++)x.registerUniform(`sizeInConcatAxis${F}`,"u32");return x.declareVariables(...n,u)})()}
561
561
 
562
- ${LM(a.length,g)}
562
+ ${BM(a.length,g)}
563
563
 
564
564
  ${x.mainStart()}
565
565
  ${x.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")}
@@ -572,12 +572,12 @@ fn quick_gelu_impl(x: vec4<${e}>) -> vec4<${e}> {
572
572
  ${d} -= sizeInConcatAxis[inputIndex - 1u];
573
573
  }
574
574
 
575
- ${BM(n,u)}
576
- }`;return{name:"Concat",shaderCache:{hint:`${r}`,inputDependencies:l},getRunData:()=>({outputs:[{dims:t,dataType:s}],dispatchGroup:{x:Math.ceil(o/64)},programUniforms:_}),getShaderSource:h}},Yx=(e,r)=>{let t=e.inputs,s=t[0].dims,o=Me.normalizeAxis(r.axis,s.length);OM(t,o);let a=s.slice();a[o]=t.reduce((i,l)=>i+(l.dims.length>o?l.dims[o]:0),0);let n=t.filter(i=>Me.size(i.dims)>0);e.compute(zM(n,o,a,t[0].dataType),{inputs:n})},Zx=e=>jt({axis:e.axis})}),zo,Ro,No,_u,Vo=Ve(()=>{"use strict";Mt(),kt(),zo=(e,r,t="f32")=>{switch(e.activation){case"Relu":return`value = max(value, ${r}(0.0));`;case"Sigmoid":return`value = (${r}(1.0) / (${r}(1.0) + exp(-value)));`;case"Clip":return`value = clamp(value, ${r}(${t}(uniforms.clip_min)), ${r}(${t}(uniforms.clip_max)));`;case"HardSigmoid":return`value = max(${r}(0.0), min(${r}(1.0), ${t}(uniforms.alpha) * value + ${t}(uniforms.beta)));`;case"LeakyRelu":return`value = select(${t}(uniforms.alpha) * value, value, value >= ${r}(0.0));`;case"Tanh":return`let e2x = exp(-2.0 * abs(value));
575
+ ${zM(n,u)}
576
+ }`;return{name:"Concat",shaderCache:{hint:`${r}`,inputDependencies:l},getRunData:()=>({outputs:[{dims:t,dataType:s}],dispatchGroup:{x:Math.ceil(o/64)},programUniforms:_}),getShaderSource:h}},Zx=(e,r)=>{let t=e.inputs,s=t[0].dims,o=Me.normalizeAxis(r.axis,s.length);LM(t,o);let a=s.slice();a[o]=t.reduce((i,l)=>i+(l.dims.length>o?l.dims[o]:0),0);let n=t.filter(i=>Me.size(i.dims)>0);e.compute(RM(n,o,a,t[0].dataType),{inputs:n})},ey=e=>jt({axis:e.axis})}),Ro,No,jo,_u,Wo=Ve(()=>{"use strict";Mt(),kt(),Ro=(e,r,t="f32")=>{switch(e.activation){case"Relu":return`value = max(value, ${r}(0.0));`;case"Sigmoid":return`value = (${r}(1.0) / (${r}(1.0) + exp(-value)));`;case"Clip":return`value = clamp(value, ${r}(${t}(uniforms.clip_min)), ${r}(${t}(uniforms.clip_max)));`;case"HardSigmoid":return`value = max(${r}(0.0), min(${r}(1.0), ${t}(uniforms.alpha) * value + ${t}(uniforms.beta)));`;case"LeakyRelu":return`value = select(${t}(uniforms.alpha) * value, value, value >= ${r}(0.0));`;case"Tanh":return`let e2x = exp(-2.0 * abs(value));
577
577
  value = sign(value) * (1.0 - e2x) / (1.0 + e2x);
578
- `;case"":return"";default:throw new Error(`Unsupported activation ${e.activation}`)}},Ro=(e,r)=>{e.activation==="Clip"?r.push({type:1,data:e.clipMax},{type:1,data:e.clipMin}):e.activation==="HardSigmoid"?r.push({type:1,data:e.alpha},{type:1,data:e.beta}):e.activation==="LeakyRelu"&&r.push({type:1,data:e.alpha})},No=(e,r)=>{e.activation==="Clip"?r.push({name:"clip_max",type:"f32"},{name:"clip_min",type:"f32"}):e.activation==="HardSigmoid"?r.push({name:"alpha",type:"f32"},{name:"beta",type:"f32"}):e.activation==="LeakyRelu"&&r.push({name:"alpha",type:"f32"})},_u=e=>{let r=e?.activation||"";if(r==="HardSigmoid"){let[t,s]=e?.activation_params||[.2,.5];return{activation:r,alpha:t,beta:s}}else if(r==="Clip"){let[t,s]=e?.activation_params||[Pv,Ev];return{activation:r,clipMax:s,clipMin:t}}else if(r==="LeakyRelu"){let[t]=e?.activation_params||[.01];return{activation:r,alpha:t}}return{activation:r}}}),Rr,ey,pu=Ve(()=>{"use strict";Rr=(e,r)=>{switch(e){case 1:return r;case 2:return`vec2<${r}>`;case 3:return`vec3<${r}>`;case 4:return`vec4<${r}>`;default:throw new Error(`${e}-component is not supported.`)}},ey=e=>`
578
+ `;case"":return"";default:throw new Error(`Unsupported activation ${e.activation}`)}},No=(e,r)=>{e.activation==="Clip"?r.push({type:1,data:e.clipMax},{type:1,data:e.clipMin}):e.activation==="HardSigmoid"?r.push({type:1,data:e.alpha},{type:1,data:e.beta}):e.activation==="LeakyRelu"&&r.push({type:1,data:e.alpha})},jo=(e,r)=>{e.activation==="Clip"?r.push({name:"clip_max",type:"f32"},{name:"clip_min",type:"f32"}):e.activation==="HardSigmoid"?r.push({name:"alpha",type:"f32"},{name:"beta",type:"f32"}):e.activation==="LeakyRelu"&&r.push({name:"alpha",type:"f32"})},_u=e=>{let r=e?.activation||"";if(r==="HardSigmoid"){let[t,s]=e?.activation_params||[.2,.5];return{activation:r,alpha:t,beta:s}}else if(r==="Clip"){let[t,s]=e?.activation_params||[Ev,kv];return{activation:r,clipMax:s,clipMin:t}}else if(r==="LeakyRelu"){let[t]=e?.activation_params||[.01];return{activation:r,alpha:t}}return{activation:r}}}),Rr,ty,pu=Ve(()=>{"use strict";Rr=(e,r)=>{switch(e){case 1:return r;case 2:return`vec2<${r}>`;case 3:return`vec3<${r}>`;case 4:return`vec4<${r}>`;default:throw new Error(`${e}-component is not supported.`)}},ty=e=>`
579
579
  ${e?"value = value + getBiasByOutputCoords(coords);":""}
580
- `}),ty,CP=Ve(()=>{"use strict";ty=e=>`
580
+ `}),ry,SP=Ve(()=>{"use strict";ry=e=>`
581
581
  fn getIndexFromCoords4D(coords : vec4<i32>, shape : vec4<i32>) -> i32 {
582
582
  return dot(coords, vec4<i32>(
583
583
  shape.y * shape.z * shape.w, shape.z * shape.w, shape.w, 1));
@@ -586,14 +586,14 @@ fn getOutputIndexFromCoords(coords : vec4<i32>) -> i32 {
586
586
  return dot(coords, vec4<i32>(
587
587
  i32(${e}.x), i32(${e}.y), i32(${e}.z), 1));
588
588
  }
589
- `}),un,mu,hu=Ve(()=>{"use strict";Mt(),kt(),Ct(),Vo(),un=(e,r,t,s,o)=>{let a=s-t;return`
589
+ `}),_n,mu,hu=Ve(()=>{"use strict";Mt(),kt(),Ct(),Wo(),_n=(e,r,t,s,o)=>{let a=s-t;return`
590
590
  ${Array.from({length:t}).map((n,i)=>`
591
591
  if (${lt(r.shape,i,r.rank)} != 1) {
592
592
  ${r.indicesSet(e,i,lt(o,i+a,s))}
593
593
  } else {
594
594
  ${r.indicesSet(e,i,0)}
595
595
  }`).join("")}
596
- `},mu=(e,r,t,s,o=!1,a)=>{let n=e[0].dims,i=e[1].dims,l=n[n.length-2],c=i[i.length-1],_=n[n.length-1],u=dr(c),d=dr(_),g=dr(l),h=Me.size(t)/u/g,x=e.length>2,F=s?s.slice(0,-2):t.slice(0,-2),v=[Me.size(F),l,c],b=[{type:12,data:h},{type:12,data:l},{type:12,data:c},{type:12,data:_}];Ro(r,b),b.push(...dt(F,n,i)),x&&b.push(...dt(e[2].dims)),b.push(...dt(v));let C=y=>{let P=lu("batch_dims",e[0].dataType,F.length),I=Fe("a",e[0].dataType,n.length,d),f=Fe("b",e[1].dataType,i.length,u),E=it("output",e[0].dataType,v.length,u),D=$r(E.type.tensor),O=zo(r,E.type.value,D),U=[I,f],W="";if(x){let J=o?u:1;U.push(Fe("bias",e[2].dataType,e[2].dims.length,J)),W=`${o?`value += bias[col / ${J}];`:`value += ${E.type.value}(bias[row + i]);`}`}let z=[{name:"output_size",type:"u32"},{name:"M",type:"u32"},{name:"N",type:"u32"},{name:"K",type:"u32"}];No(r,z);let X=()=>{let J=`var a_data: ${I.type.value};`;for(let q=0;q<d;q++)J+=`
596
+ `},mu=(e,r,t,s,o=!1,a)=>{let n=e[0].dims,i=e[1].dims,l=n[n.length-2],c=i[i.length-1],_=n[n.length-1],u=dr(c),d=dr(_),g=dr(l),h=Me.size(t)/u/g,x=e.length>2,F=s?s.slice(0,-2):t.slice(0,-2),v=[Me.size(F),l,c],b=[{type:12,data:h},{type:12,data:l},{type:12,data:c},{type:12,data:_}];No(r,b),b.push(...dt(F,n,i)),x&&b.push(...dt(e[2].dims)),b.push(...dt(v));let C=y=>{let P=lu("batch_dims",e[0].dataType,F.length),I=Fe("a",e[0].dataType,n.length,d),f=Fe("b",e[1].dataType,i.length,u),E=it("output",e[0].dataType,v.length,u),D=$r(E.type.tensor),O=Ro(r,E.type.value,D),U=[I,f],W="";if(x){let J=o?u:1;U.push(Fe("bias",e[2].dataType,e[2].dims.length,J)),W=`${o?`value += bias[col / ${J}];`:`value += ${E.type.value}(bias[row + i]);`}`}let z=[{name:"output_size",type:"u32"},{name:"M",type:"u32"},{name:"N",type:"u32"},{name:"K",type:"u32"}];jo(r,z);let X=()=>{let J=`var a_data: ${I.type.value};`;for(let q=0;q<d;q++)J+=`
597
597
  let b_data${q} = b[(b_offset + (k + ${q}) * uniforms.N + col) / ${u}];`;for(let q=0;q<g;q++){J+=`a_data = a[(a_offset + (row + ${q}) * uniforms.K + k) / ${d}];`;for(let re=0;re<d;re++)J+=`
598
598
  values[${q}] = fma(${f.type.value}(a_data${d===1?"":`[${re}]`}), b_data${re}, values[${q}]);
599
599
  `}return J};return`
@@ -609,13 +609,13 @@ fn getOutputIndexFromCoords(coords : vec4<i32>) -> i32 {
609
609
  ${t.length===2?"":`let batch_indices = ${P.offsetToIndices("batch")};`}
610
610
 
611
611
  var a_indices: ${I.type.indices};
612
- ${un("a_indices",I,I.rank-2,P.rank,"batch_indices")}
612
+ ${_n("a_indices",I,I.rank-2,P.rank,"batch_indices")}
613
613
  ${I.indicesSet("a_indices",I.rank-2,0)}
614
614
  ${I.indicesSet("a_indices",I.rank-1,0)}
615
615
  let a_offset = ${I.indicesToOffset("a_indices")};
616
616
 
617
617
  var b_indices: ${f.type.indices};
618
- ${un("b_indices",f,f.rank-2,P.rank,"batch_indices")}
618
+ ${_n("b_indices",f,f.rank-2,P.rank,"batch_indices")}
619
619
  ${f.indicesSet("b_indices",f.rank-2,0)}
620
620
  ${f.indicesSet("b_indices",f.rank-1,0)}
621
621
  let b_offset = ${f.indicesToOffset("b_indices")};
@@ -632,7 +632,7 @@ fn getOutputIndexFromCoords(coords : vec4<i32>) -> i32 {
632
632
  ${E.setByOffset(`offset / ${u}`,"value")};
633
633
  }
634
634
  }
635
- `};return{name:"MatMulNaive",shaderCache:{hint:`${r.activation};${u};${d};${g};${o}`,inputDependencies:x?["rank","rank","rank"]:["rank","rank"]},getRunData:()=>({outputs:[{dims:a?a(t):t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(h/64)},programUniforms:b}),getShaderSource:C}}}),RM,NM,jd,rd,jM,Vd,VM,Qi,fu=Ve(()=>{"use strict";Mt(),kt(),Ct(),Vo(),hu(),pu(),RM=(e,r)=>e?`
635
+ `};return{name:"MatMulNaive",shaderCache:{hint:`${r.activation};${u};${d};${g};${o}`,inputDependencies:x?["rank","rank","rank"]:["rank","rank"]},getRunData:()=>({outputs:[{dims:a?a(t):t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(h/64)},programUniforms:b}),getShaderSource:C}}}),NM,jM,jd,rd,VM,Vd,WM,Qi,fu=Ve(()=>{"use strict";Mt(),kt(),Ct(),Wo(),hu(),pu(),NM=(e,r)=>e?`
636
636
  mm_Asub[inputRow][inputCol] = mm_readA(batch,
637
637
  kStart + inputRow,
638
638
  globalRowStart / innerElementSize + inputCol${r?", batchIndices":""});
@@ -640,7 +640,7 @@ fn getOutputIndexFromCoords(coords : vec4<i32>) -> i32 {
640
640
  mm_Asub[inputRow][inputCol] = mm_readA(batch,
641
641
  globalRow + innerRow,
642
642
  kStart / innerElementSize + inputCol${r?", batchIndices":""});
643
- `,NM=(e,r)=>e?`
643
+ `,jM=(e,r)=>e?`
644
644
  let ACached0 = mm_Asub[k * innerElementSize][localRow];
645
645
  let ACached1 = mm_Asub[k * innerElementSize + 1][localRow];
646
646
  let ACached2 = mm_Asub[k * innerElementSize + 2][localRow];
@@ -694,7 +694,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
694
694
  for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) {
695
695
  let inputRow = tileRow + innerRow;
696
696
  let inputCol = tileCol;
697
- ${RM(o,s)}
697
+ ${NM(o,s)}
698
698
  }
699
699
 
700
700
  // Load one tile of B into local memory.
@@ -713,7 +713,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
713
713
  let BCached2 = mm_Bsub[k * innerElementSize + 2][tileCol];
714
714
  ${d===3?"":"let BCached3 = mm_Bsub[k * innerElementSize + 3][tileCol];"}
715
715
 
716
- ${NM(o,d)}
716
+ ${jM(o,d)}
717
717
  }
718
718
 
719
719
  workgroupBarrier();
@@ -730,7 +730,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
730
730
  mm_Asub[inputRow][inputCol] = mm_readA(batch,
731
731
  globalRowStart + inputRow,
732
732
  kStart + inputCol${r?", batchIndices":""});
733
- `,jM=e=>e?"let ACached = mm_Asub[k][tileRow + innerRow];":"let ACached = mm_Asub[tileRow + innerRow][k];",Vd=(e,r,t="f32",s,o=!1,a=32,n=!1,i=32,l=!1)=>{let c=e[1]*r[1],_=e[0]*r[0],u=o?c:a,d=o?a:c;if(!(d%r[1]===0&&u%r[0]===0&&a%r[1]===0))throw new Error(`tileAHight ${d} must be divisible by workgroupSize[1]${r[1]}, tileAWidth ${u} must be divisible by workgroupSize[0]${r[0]}, tileInner ${a} must be divisible by workgroupSize[1]${r[1]}`);let g=d/r[1],h=u/r[0],x=a/r[1],F=l?`
733
+ `,VM=e=>e?"let ACached = mm_Asub[k][tileRow + innerRow];":"let ACached = mm_Asub[tileRow + innerRow][k];",Vd=(e,r,t="f32",s,o=!1,a=32,n=!1,i=32,l=!1)=>{let c=e[1]*r[1],_=e[0]*r[0],u=o?c:a,d=o?a:c;if(!(d%r[1]===0&&u%r[0]===0&&a%r[1]===0))throw new Error(`tileAHight ${d} must be divisible by workgroupSize[1]${r[1]}, tileAWidth ${u} must be divisible by workgroupSize[0]${r[0]}, tileInner ${a} must be divisible by workgroupSize[1]${r[1]}`);let g=d/r[1],h=u/r[0],x=a/r[1],F=l?`
734
734
  let localRow = i32(localId.y);
735
735
  let localCol = i32(localId.x);
736
736
  let globalRowStart = i32(workgroupId.y) * ${c};
@@ -821,7 +821,7 @@ for (var t = 0; t < num_tiles; t = t + 1) {
821
821
  }
822
822
 
823
823
  for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) {
824
- ${jM(o)}
824
+ ${VM(o)}
825
825
  for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) {
826
826
  acc[innerRow][innerCol] = acc[innerRow][innerCol] + ACached * BCached[innerCol];
827
827
  }
@@ -856,14 +856,14 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
856
856
  var acc : array<array<${t}, colPerThread>, rowPerThread>;
857
857
  ${F}
858
858
  }
859
- `},VM=(e,r,t,s,o=!1)=>{let[a,n,i,l]=s,c=$r(s[0].type.tensor);return`
859
+ `},WM=(e,r,t,s,o=!1)=>{let[a,n,i,l]=s,c=$r(s[0].type.tensor);return`
860
860
  fn mm_readA(batch: i32, row: i32, colIn: i32, batchIndices: ${a.type.indices}) -> ${Rr(e,c)} {
861
861
  var value = ${Rr(e,c)}(0.0);
862
862
  let col = colIn * ${e};
863
863
  if(row < uniforms.dim_a_outer && col < uniforms.dim_inner)
864
864
  {
865
865
  var aIndices: ${n.type.indices};
866
- ${un("aIndices",n,n.rank-2,a.rank,"batchIndices")}
866
+ ${_n("aIndices",n,n.rank-2,a.rank,"batchIndices")}
867
867
  ${n.indicesSet("aIndices",n.rank-2,"u32(row)")}
868
868
  ${n.indicesSet("aIndices",n.rank-1,"u32(colIn)")}
869
869
  value = ${n.getByIndices("aIndices")};
@@ -877,7 +877,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
877
877
  if(row < uniforms.dim_inner && col < uniforms.dim_b_outer)
878
878
  {
879
879
  var bIndices: ${i.type.indices};
880
- ${un("bIndices",i,i.rank-2,a.rank,"batchIndices")}
880
+ ${_n("bIndices",i,i.rank-2,a.rank,"batchIndices")}
881
881
  ${i.indicesSet("bIndices",i.rank-2,"u32(row)")}
882
882
  ${i.indicesSet("bIndices",i.rank-1,"u32(colIn)")}
883
883
  value = ${i.getByIndices("bIndices")};
@@ -895,11 +895,11 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
895
895
  ${l.setByIndices("vec3<u32>(coords)","value")}
896
896
  }
897
897
  }
898
- `},Qi=(e,r,t,s,o=!1,a)=>{let n=e[0].dims,i=e[1].dims,l=n.slice(0,-2),c=i.slice(0,-2),_=s?s.slice(0,-2):t.slice(0,-2),u=Me.size(_),d=n[n.length-2],g=n[n.length-1],h=i[i.length-1],x=g%4===0&&h%4===0,F=d<=8?[4,1,1]:[4,4,1],v=[8,8,1],b=[Math.ceil(h/v[0]/F[0]),Math.ceil(d/v[1]/F[1]),Math.ceil(u/v[2]/F[2])],C=x?4:1,y=[...l,d,g/C],P=y.length,I=[...c,g,h/C],f=I.length,E=[u,d,h/C],D=[{type:6,data:d},{type:6,data:h},{type:6,data:g}];Ro(r,D),D.push(...dt(_,y,I));let O=["rank","rank"],U=e.length>2;U&&(D.push(...dt(e[2].dims)),O.push("rank")),D.push(...dt(E));let W=z=>{let X=_.length,J=lu("batchDims",e[0].dataType,X,1),q=$r(e[0].dataType),re=Fe("a",e[0].dataType,P,C),oe=Fe("b",e[1].dataType,f,C),ne=it("result",e[0].dataType,E.length,C),ye=[re,oe];if(U){let ee=o?C:1;ye.push(Fe("bias",e[2].dataType,e[2].dims.length,ee))}let Y=[{name:"dim_a_outer",type:"i32"},{name:"dim_b_outer",type:"i32"},{name:"dim_inner",type:"i32"}];No(r,Y);let H=$r(ne.type.tensor),R=zo(r,ne.type.value,H),L=VM(C,U,R,[J,re,oe,ne],o);return`
898
+ `},Qi=(e,r,t,s,o=!1,a)=>{let n=e[0].dims,i=e[1].dims,l=n.slice(0,-2),c=i.slice(0,-2),_=s?s.slice(0,-2):t.slice(0,-2),u=Me.size(_),d=n[n.length-2],g=n[n.length-1],h=i[i.length-1],x=g%4===0&&h%4===0,F=d<=8?[4,1,1]:[4,4,1],v=[8,8,1],b=[Math.ceil(h/v[0]/F[0]),Math.ceil(d/v[1]/F[1]),Math.ceil(u/v[2]/F[2])],C=x?4:1,y=[...l,d,g/C],P=y.length,I=[...c,g,h/C],f=I.length,E=[u,d,h/C],D=[{type:6,data:d},{type:6,data:h},{type:6,data:g}];No(r,D),D.push(...dt(_,y,I));let O=["rank","rank"],U=e.length>2;U&&(D.push(...dt(e[2].dims)),O.push("rank")),D.push(...dt(E));let W=z=>{let X=_.length,J=lu("batchDims",e[0].dataType,X,1),q=$r(e[0].dataType),re=Fe("a",e[0].dataType,P,C),oe=Fe("b",e[1].dataType,f,C),ne=it("result",e[0].dataType,E.length,C),ye=[re,oe];if(U){let ee=o?C:1;ye.push(Fe("bias",e[2].dataType,e[2].dims.length,ee))}let Y=[{name:"dim_a_outer",type:"i32"},{name:"dim_b_outer",type:"i32"},{name:"dim_inner",type:"i32"}];jo(r,Y);let H=$r(ne.type.tensor),R=Ro(r,ne.type.value,H),L=WM(C,U,R,[J,re,oe,ne],o);return`
899
899
  ${z.registerUniforms(Y).registerInternalVariables(J).declareVariables(...ye,ne)}
900
900
  ${L}
901
901
  ${x?jd(F,v,q,J):Vd(F,v,q,J)}
902
- `};return{name:"MatMul",shaderCache:{hint:`${F};${r.activation};${x};${o}`,inputDependencies:O},getRunData:()=>({outputs:[{dims:a?a(t):t,dataType:e[0].dataType}],dispatchGroup:{x:b[0],y:b[1],z:b[2]},programUniforms:D}),getShaderSource:W}}}),WM,ry,SP=Ve(()=>{"use strict";Mt(),Js(),Ct(),Vo(),pu(),CP(),fu(),WM=(e,r,t,s,o=!1,a,n=4,i=4,l=4,c="f32")=>{let _=D=>{switch(D){case 1:return"resData = x[xIndex];";case 3:return`resData = vec3<${c}>(x[xIndex], x[xIndex + 1], x[xIndex + 2]);`;case 4:return"resData = x[xIndex / 4];";default:throw new Error(`innerElementSize ${D} is not supported.`)}},u=D=>{switch(D){case 1:return"return w[row * i32(uniforms.w_shape[3]) + colIn];";case 4:return"return w[row * i32(uniforms.w_shape[3]) / 4 + colIn];";default:throw new Error(`innerElementSize ${D} is not supported.`)}},d=e?`
902
+ `};return{name:"MatMul",shaderCache:{hint:`${F};${r.activation};${x};${o}`,inputDependencies:O},getRunData:()=>({outputs:[{dims:a?a(t):t,dataType:e[0].dataType}],dispatchGroup:{x:b[0],y:b[1],z:b[2]},programUniforms:D}),getShaderSource:W}}}),UM,sy,FP=Ve(()=>{"use strict";Mt(),Js(),Ct(),Wo(),pu(),SP(),fu(),UM=(e,r,t,s,o=!1,a,n=4,i=4,l=4,c="f32")=>{let _=D=>{switch(D){case 1:return"resData = x[xIndex];";case 3:return`resData = vec3<${c}>(x[xIndex], x[xIndex + 1], x[xIndex + 2]);`;case 4:return"resData = x[xIndex / 4];";default:throw new Error(`innerElementSize ${D} is not supported.`)}},u=D=>{switch(D){case 1:return"return w[row * i32(uniforms.w_shape[3]) + colIn];";case 4:return"return w[row * i32(uniforms.w_shape[3]) / 4 + colIn];";default:throw new Error(`innerElementSize ${D} is not supported.`)}},d=e?`
903
903
  let coord = vec4<i32>(batch, xRow, xCol, xCh);
904
904
  `:`
905
905
  let coord = vec4<i32>(batch, xCh, xRow, xCol);
@@ -958,7 +958,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
958
958
  if (row < uniforms.dim_inner && col < uniforms.dim_a_outer) {
959
959
  ${u(i)}
960
960
  }
961
- return ${Rr(i,c)}(0.0);`,P=Rr(l,c),I=Rr(e?n:i,c),f=Rr(e?i:n,c),E=zo(a,P,c);return`
961
+ return ${Rr(i,c)}(0.0);`,P=Rr(l,c),I=Rr(e?n:i,c),f=Rr(e?i:n,c),E=Ro(a,P,c);return`
962
962
  fn mm_readA(batch: i32, row : i32, colIn : i32) -> ${I} {
963
963
  ${e?C:y}
964
964
  }
@@ -974,11 +974,11 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
974
974
  var value = valueIn;
975
975
  let outWidth = ${e?"i32(uniforms.result_shape[2])":"i32(uniforms.result_shape[3])"};
976
976
  ${g}
977
- ${ey(o)}
977
+ ${ty(o)}
978
978
  ${E}
979
979
  setOutputAtCoords(coords[0], coords[1], coords[2], coords[3], value);
980
980
  }
981
- }`},ry=(e,r,t,s,o,a,n,i,l)=>{let c=r.format==="NHWC",_=c?e[0].dims[3]:e[0].dims[1],u=t[0],d=c?t[2]:t[3],g=c?t[1]:t[2],h=c?t[3]:t[1],x=c&&(_%4===0||_%3===0)&&h%4===0,F=c?h:d*g,v=c?d*g:h,b=[8,8,1],C=s<=8?[4,1,1]:[4,4,1],y=[Math.ceil(F/b[0]/C[0]),Math.ceil(v/b[1]/C[1]),Math.ceil(u/b[2]/C[2])];Ot("verbose",()=>`[conv2d_mm_webgpu] dispatch = ${y}`);let P=x?c&&_%4!==0?3:4:1,I=b[1]*C[1],f=b[0]*C[0],E=Math.max(b[0]*P,b[1]),D=s%I===0,O=o%f===0,U=a%E===0,W=x?[P,4,4]:[1,1,1],z=[{type:6,data:s},{type:6,data:o},{type:6,data:a},{type:6,data:[r.pads[0],r.pads[1]]},{type:6,data:r.strides},{type:6,data:r.dilations}];Ro(r,z),z.push(...dt(e[0].dims,e[1].dims));let X=["rank","rank"];n&&(z.push(...dt(e[2].dims)),X.push("rank")),z.push(...dt(t));let J=q=>{let re=[{name:"dim_a_outer",type:"i32"},{name:"dim_b_outer",type:"i32"},{name:"dim_inner",type:"i32"},{name:"pad",type:"i32",length:2},{name:"stride",type:"i32",length:2},{name:"dilation",type:"i32",length:2}];No(r,re);let oe=x?4:1,ne=$r(e[0].dataType),ye=`
981
+ }`},sy=(e,r,t,s,o,a,n,i,l)=>{let c=r.format==="NHWC",_=c?e[0].dims[3]:e[0].dims[1],u=t[0],d=c?t[2]:t[3],g=c?t[1]:t[2],h=c?t[3]:t[1],x=c&&(_%4===0||_%3===0)&&h%4===0,F=c?h:d*g,v=c?d*g:h,b=[8,8,1],C=s<=8?[4,1,1]:[4,4,1],y=[Math.ceil(F/b[0]/C[0]),Math.ceil(v/b[1]/C[1]),Math.ceil(u/b[2]/C[2])];Ot("verbose",()=>`[conv2d_mm_webgpu] dispatch = ${y}`);let P=x?c&&_%4!==0?3:4:1,I=b[1]*C[1],f=b[0]*C[0],E=Math.max(b[0]*P,b[1]),D=s%I===0,O=o%f===0,U=a%E===0,W=x?[P,4,4]:[1,1,1],z=[{type:6,data:s},{type:6,data:o},{type:6,data:a},{type:6,data:[r.pads[0],r.pads[1]]},{type:6,data:r.strides},{type:6,data:r.dilations}];No(r,z),z.push(...dt(e[0].dims,e[1].dims));let X=["rank","rank"];n&&(z.push(...dt(e[2].dims)),X.push("rank")),z.push(...dt(t));let J=q=>{let re=[{name:"dim_a_outer",type:"i32"},{name:"dim_b_outer",type:"i32"},{name:"dim_inner",type:"i32"},{name:"pad",type:"i32",length:2},{name:"stride",type:"i32",length:2},{name:"dilation",type:"i32",length:2}];jo(r,re);let oe=x?4:1,ne=$r(e[0].dataType),ye=`
982
982
  fn setOutputAtIndex(flatIndex : i32, value : ${x?`vec4<${ne}>`:ne}) {
983
983
  result[flatIndex] = ${x?`vec4<${ne}>`:ne}(value);
984
984
  }
@@ -989,17 +989,17 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
989
989
  fn getBiasByOutputCoords(coords : vec4<i32>) -> ${x?`vec4<${ne}>`:ne} {
990
990
  return bias[coords.${c?"w":"y"}${x?"/ 4":""}];
991
991
  }`}return`
992
- ${ty("uniforms.result_strides")}
992
+ ${ry("uniforms.result_strides")}
993
993
  //struct Uniforms { xShape : vec4<i32>, wShape : vec4<i32>, outShape : vec4<i32>,
994
994
  // outShapeStrides: vec3<i32>, filterDims : vec2<i32>, pad : vec2<i32>, stride : vec2<i32>,
995
995
  // dilation : vec2<i32>, dimAOuter : i32, dimBOuter : i32, dimInner : i32 };
996
996
  ${q.registerUniforms(re).declareVariables(...R,L)}
997
997
  ${ye}
998
- ${WM(c,D,O,U,n,r,W[0],W[1],W[2],ne)}
999
- ${x?jd(C,b,ne,void 0,!c,E):Vd(C,b,ne,void 0,!c,E,!1,void 0,i)}`};return{name:"Conv2DMatMul",shaderCache:{hint:`${r.cacheKey};${P};${x};${D};${O};${U};${I};${f};${E}`,inputDependencies:X},getRunData:()=>({outputs:[{dims:l?l(t):t,dataType:e[0].dataType}],dispatchGroup:{x:y[0],y:y[1],z:y[2]},programUniforms:z}),getShaderSource:J}}}),UM,sd,en,GM,od,KM,sy,oy,FP=Ve(()=>{"use strict";Mt(),Js(),kt(),Ct(),Vo(),pu(),UM=e=>{let r=1;for(let t=0;t<e.length;t++)r*=e[t];return r},sd=e=>typeof e=="number"?[e,e,e]:e,en=(e,r)=>r<=1?e:e+(e-1)*(r-1),GM=(e,r,t,s=1)=>{let o=en(r,s);return Math.floor((e[0]*(t-1)-t+o)/2)},od=(e,r,t,s,o)=>{o==null&&(o=GM(e,r[0],s[0]));let a=[0,0,0,t];for(let n=0;n<3;n++)e[n]+2*o>=r[n]&&(a[n]=Math.trunc((e[n]-r[n]+2*o)/s[n]+1));return a},KM=(e,r,t,s,o,a,n,i,l,c)=>{let _,u,d,g;if(e==="VALID"&&(e=0),typeof e=="number"){_={top:e,bottom:e,left:e,right:e,front:e,back:e};let h=od([r,t,s,1],[i,l,c],1,[o,a,n],e);u=h[0],d=h[1],g=h[2]}else if(Array.isArray(e)){if(!e.every((x,F,v)=>x===v[0]))throw Error(`Unsupported padding parameter: ${e}`);_={top:e[0],bottom:e[1],left:e[2],right:e[3],front:e[4],back:e[5]};let h=od([r,t,s,1],[i,l,c],1,[o,a,n],e[0]);u=h[0],d=h[1],g=h[2]}else if(e==="SAME_UPPER"){u=Math.ceil(r/o),d=Math.ceil(t/a),g=Math.ceil(s/n);let h=(u-1)*o+i-r,x=(d-1)*a+l-t,F=(g-1)*n+c-s,v=Math.floor(h/2),b=h-v,C=Math.floor(x/2),y=x-C,P=Math.floor(F/2),I=F-P;_={top:C,bottom:y,left:P,right:I,front:v,back:b}}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:_,outDepth:u,outHeight:d,outWidth:g}},sy=(e,r,t,s,o,a=!1,n="channelsLast")=>{let i,l,c,_,u;if(n==="channelsLast")[i,l,c,_,u]=e;else if(n==="channelsFirst")[i,u,l,c,_]=e;else throw new Error(`Unknown dataFormat ${n}`);let[d,,g,h,x]=r,[F,v,b]=sd(t),[C,y,P]=sd(s),I=en(g,C),f=en(h,y),E=en(x,P),{padInfo:D,outDepth:O,outHeight:U,outWidth:W}=KM(o,l,c,_,F,v,b,I,f,E),z=a?d*u:d,X=[0,0,0,0,0];return n==="channelsFirst"?X=[i,z,O,U,W]:n==="channelsLast"&&(X=[i,O,U,W,z]),{batchSize:i,dataFormat:n,inDepth:l,inHeight:c,inWidth:_,inChannels:u,outDepth:O,outHeight:U,outWidth:W,outChannels:z,padInfo:D,strideDepth:F,strideHeight:v,strideWidth:b,filterDepth:g,filterHeight:h,filterWidth:x,effectiveFilterDepth:I,effectiveFilterHeight:f,effectiveFilterWidth:E,dilationDepth:C,dilationHeight:y,dilationWidth:P,inShape:e,outShape:X,filterShape:r}},oy=(e,r,t,s,o,a)=>{let n=a==="channelsLast",i=n?e[0].dims[3]:e[0].dims[1],l=!1,c=[64,1,1],_={x:t.map((b,C)=>C)},u=[Math.ceil(UM(_.x.map(b=>t[b]))/c[0]),1,1];Ot("verbose",()=>`[conv3d_naive_webgpu] dispatch = ${u}`);let d=l?n&&i%4!==0?3:4:1,g=Me.size(t),h=[{type:12,data:g},{type:12,data:s},{type:12,data:o},{type:12,data:r.strides},{type:12,data:r.dilations}];Ro(r,h),h.push(...dt(e[0].dims,e[1].dims));let x=["rank","rank"],F=e.length===3;F&&(h.push(...dt(e[2].dims)),x.push("rank")),h.push(...dt(t));let v=b=>{let C=[{name:"output_size",type:"u32"},{name:"filter_dims",type:"u32",length:s.length},{name:"pads",type:"u32",length:o.length},{name:"strides",type:"u32",length:r.strides.length},{name:"dilations",type:"u32",length:r.dilations.length}];No(r,C);let y=l?4:1,P=$r(e[0].dataType),I=Fe("x",e[0].dataType,e[0].dims.length,d===3?1:d),f=Fe("W",e[1].dataType,e[1].dims.length,y),E=[I,f],D=it("result",e[0].dataType,t.length,y),O="";if(F){let z=Fe("bias",e[2].dataType,e[2].dims.length,y);E.push(z),O+=`
998
+ ${UM(c,D,O,U,n,r,W[0],W[1],W[2],ne)}
999
+ ${x?jd(C,b,ne,void 0,!c,E):Vd(C,b,ne,void 0,!c,E,!1,void 0,i)}`};return{name:"Conv2DMatMul",shaderCache:{hint:`${r.cacheKey};${P};${x};${D};${O};${U};${I};${f};${E}`,inputDependencies:X},getRunData:()=>({outputs:[{dims:l?l(t):t,dataType:e[0].dataType}],dispatchGroup:{x:y[0],y:y[1],z:y[2]},programUniforms:z}),getShaderSource:J}}}),GM,sd,tn,KM,od,HM,oy,ay,IP=Ve(()=>{"use strict";Mt(),Js(),kt(),Ct(),Wo(),pu(),GM=e=>{let r=1;for(let t=0;t<e.length;t++)r*=e[t];return r},sd=e=>typeof e=="number"?[e,e,e]:e,tn=(e,r)=>r<=1?e:e+(e-1)*(r-1),KM=(e,r,t,s=1)=>{let o=tn(r,s);return Math.floor((e[0]*(t-1)-t+o)/2)},od=(e,r,t,s,o)=>{o==null&&(o=KM(e,r[0],s[0]));let a=[0,0,0,t];for(let n=0;n<3;n++)e[n]+2*o>=r[n]&&(a[n]=Math.trunc((e[n]-r[n]+2*o)/s[n]+1));return a},HM=(e,r,t,s,o,a,n,i,l,c)=>{let _,u,d,g;if(e==="VALID"&&(e=0),typeof e=="number"){_={top:e,bottom:e,left:e,right:e,front:e,back:e};let h=od([r,t,s,1],[i,l,c],1,[o,a,n],e);u=h[0],d=h[1],g=h[2]}else if(Array.isArray(e)){if(!e.every((x,F,v)=>x===v[0]))throw Error(`Unsupported padding parameter: ${e}`);_={top:e[0],bottom:e[1],left:e[2],right:e[3],front:e[4],back:e[5]};let h=od([r,t,s,1],[i,l,c],1,[o,a,n],e[0]);u=h[0],d=h[1],g=h[2]}else if(e==="SAME_UPPER"){u=Math.ceil(r/o),d=Math.ceil(t/a),g=Math.ceil(s/n);let h=(u-1)*o+i-r,x=(d-1)*a+l-t,F=(g-1)*n+c-s,v=Math.floor(h/2),b=h-v,C=Math.floor(x/2),y=x-C,P=Math.floor(F/2),I=F-P;_={top:C,bottom:y,left:P,right:I,front:v,back:b}}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:_,outDepth:u,outHeight:d,outWidth:g}},oy=(e,r,t,s,o,a=!1,n="channelsLast")=>{let i,l,c,_,u;if(n==="channelsLast")[i,l,c,_,u]=e;else if(n==="channelsFirst")[i,u,l,c,_]=e;else throw new Error(`Unknown dataFormat ${n}`);let[d,,g,h,x]=r,[F,v,b]=sd(t),[C,y,P]=sd(s),I=tn(g,C),f=tn(h,y),E=tn(x,P),{padInfo:D,outDepth:O,outHeight:U,outWidth:W}=HM(o,l,c,_,F,v,b,I,f,E),z=a?d*u:d,X=[0,0,0,0,0];return n==="channelsFirst"?X=[i,z,O,U,W]:n==="channelsLast"&&(X=[i,O,U,W,z]),{batchSize:i,dataFormat:n,inDepth:l,inHeight:c,inWidth:_,inChannels:u,outDepth:O,outHeight:U,outWidth:W,outChannels:z,padInfo:D,strideDepth:F,strideHeight:v,strideWidth:b,filterDepth:g,filterHeight:h,filterWidth:x,effectiveFilterDepth:I,effectiveFilterHeight:f,effectiveFilterWidth:E,dilationDepth:C,dilationHeight:y,dilationWidth:P,inShape:e,outShape:X,filterShape:r}},ay=(e,r,t,s,o,a)=>{let n=a==="channelsLast",i=n?e[0].dims[3]:e[0].dims[1],l=!1,c=[64,1,1],_={x:t.map((b,C)=>C)},u=[Math.ceil(GM(_.x.map(b=>t[b]))/c[0]),1,1];Ot("verbose",()=>`[conv3d_naive_webgpu] dispatch = ${u}`);let d=l?n&&i%4!==0?3:4:1,g=Me.size(t),h=[{type:12,data:g},{type:12,data:s},{type:12,data:o},{type:12,data:r.strides},{type:12,data:r.dilations}];No(r,h),h.push(...dt(e[0].dims,e[1].dims));let x=["rank","rank"],F=e.length===3;F&&(h.push(...dt(e[2].dims)),x.push("rank")),h.push(...dt(t));let v=b=>{let C=[{name:"output_size",type:"u32"},{name:"filter_dims",type:"u32",length:s.length},{name:"pads",type:"u32",length:o.length},{name:"strides",type:"u32",length:r.strides.length},{name:"dilations",type:"u32",length:r.dilations.length}];jo(r,C);let y=l?4:1,P=$r(e[0].dataType),I=Fe("x",e[0].dataType,e[0].dims.length,d===3?1:d),f=Fe("W",e[1].dataType,e[1].dims.length,y),E=[I,f],D=it("result",e[0].dataType,t.length,y),O="";if(F){let z=Fe("bias",e[2].dataType,e[2].dims.length,y);E.push(z),O+=`
1000
1000
  fn getBiasByOutputCoords(coords : array<u32, 5>) -> ${l?`vec4<${P}>`:P} {
1001
1001
  return bias[${n?lt("coords",4,5):lt("coords",1,5)}${l?"/ 4":""}];
1002
- }`}let U=Rr(d,P),W=zo(r,U,P);return`
1002
+ }`}let U=Rr(d,P),W=Ro(r,U,P);return`
1003
1003
  ${O}
1004
1004
  fn getX(d0 : u32, d1 : u32, d2 : u32, d3 : u32, d4 : u32) -> f32 {
1005
1005
  let aIndices = array<u32, 5>(d0, d1, d2, d3, d4);
@@ -1104,7 +1104,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
1104
1104
  ${F?"value = value + getBiasByOutputCoords(coords)":""};
1105
1105
  ${W}
1106
1106
  result[global_idx] = f32(value);
1107
- }`};return{name:"Conv3DNaive",shaderCache:{hint:`${r.cacheKey};${n};${d};${F}`,inputDependencies:x},getRunData:()=>({outputs:[{dims:t,dataType:e[0].dataType}],dispatchGroup:{x:u[0],y:u[1],z:u[2]},programUniforms:h}),getShaderSource:v}}}),ay,ny,IP=Ve(()=>{"use strict";Mt(),kt(),Ct(),Vo(),ay=(e,r,t,s)=>{let o=e.length>2,a=o?"value += b[output_channel];":"",n=e[0].dims,i=e[1].dims,l=r.format==="NHWC",c=l?t[3]:t[1],_=c/r.group,u=l&&_>=4?dr(c):1,d=Me.size(t)/u,g=[{type:12,data:d},{type:12,data:r.dilations},{type:12,data:[r.strides[0],r.strides[1]]},{type:12,data:[r.pads[0],r.pads[1]]},{type:12,data:_}];Ro(r,g),g.push(...dt(n,[i[0],i[1],i[2],i[3]/u]));let h=o?["rank","rank","rank"]:["rank","rank"];g.push(...dt([t[0],t[1],t[2],t[3]/u]));let x=F=>{let v=it("output",e[0].dataType,t.length,u),b=$r(v.type.tensor),C=zo(r,v.type.value,b),y=Fe("x",e[0].dataType,n.length),P=Fe("w",e[1].dataType,i.length,u),I=[y,P];o&&I.push(Fe("b",e[2].dataType,e[2].dims,u));let f=[{name:"output_size",type:"u32"},{name:"dilations",type:"u32",length:r.dilations.length},{name:"strides",type:"u32",length:2},{name:"pads",type:"u32",length:2},{name:"output_channels_per_group",type:"u32"}];No(r,f);let E=l?`
1107
+ }`};return{name:"Conv3DNaive",shaderCache:{hint:`${r.cacheKey};${n};${d};${F}`,inputDependencies:x},getRunData:()=>({outputs:[{dims:t,dataType:e[0].dataType}],dispatchGroup:{x:u[0],y:u[1],z:u[2]},programUniforms:h}),getShaderSource:v}}}),ny,iy,AP=Ve(()=>{"use strict";Mt(),kt(),Ct(),Wo(),ny=(e,r,t,s)=>{let o=e.length>2,a=o?"value += b[output_channel];":"",n=e[0].dims,i=e[1].dims,l=r.format==="NHWC",c=l?t[3]:t[1],_=c/r.group,u=l&&_>=4?dr(c):1,d=Me.size(t)/u,g=[{type:12,data:d},{type:12,data:r.dilations},{type:12,data:[r.strides[0],r.strides[1]]},{type:12,data:[r.pads[0],r.pads[1]]},{type:12,data:_}];No(r,g),g.push(...dt(n,[i[0],i[1],i[2],i[3]/u]));let h=o?["rank","rank","rank"]:["rank","rank"];g.push(...dt([t[0],t[1],t[2],t[3]/u]));let x=F=>{let v=it("output",e[0].dataType,t.length,u),b=$r(v.type.tensor),C=Ro(r,v.type.value,b),y=Fe("x",e[0].dataType,n.length),P=Fe("w",e[1].dataType,i.length,u),I=[y,P];o&&I.push(Fe("b",e[2].dataType,e[2].dims,u));let f=[{name:"output_size",type:"u32"},{name:"dilations",type:"u32",length:r.dilations.length},{name:"strides",type:"u32",length:2},{name:"pads",type:"u32",length:2},{name:"output_channels_per_group",type:"u32"}];jo(r,f);let E=l?`
1108
1108
  for (var wHeight: u32 = 0u; wHeight < uniforms.w_shape[0]; wHeight++) {
1109
1109
  let xHeight = xRCCorner.x + wHeight * uniforms.dilations[0];
1110
1110
 
@@ -1166,7 +1166,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
1166
1166
  ${a}
1167
1167
  ${C}
1168
1168
  ${v.setByOffset("global_idx","value")}
1169
- }`};return{name:"GroupedConv",shaderCache:{hint:`${r.cacheKey}_${u}`,inputDependencies:h},getRunData:()=>({outputs:[{dims:s?s(t):t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(d/64)},programUniforms:g}),getShaderSource:x}},ny=(e,r,t,s)=>{let o=e.length>2,a=dr(t[3]),n=dr(t[2]),i=Me.size(t)/a/n,l=[e[0].dims[0],e[0].dims[1],e[0].dims[2],e[0].dims[3]/a],c=[e[1].dims[0],e[1].dims[1],e[1].dims[2],e[1].dims[3]/a],_=[t[0],t[1],t[2],t[3]/a],u=[{type:12,data:i},{type:6,data:[r.strides[0],r.strides[1]]},{type:6,data:[r.pads[0],r.pads[1]]}];Ro(r,u),u.push(...dt(l,c,_));let d=(n-1)*r.strides[1]+c[1],g=h=>{let x=it("output",e[0].dataType,_.length,a),F=$r(x.type.tensor),v=zo(r,x.type.value,F),b=Fe("x",e[0].dataType,l.length,a),C=Fe("w",e[1].dataType,c.length,a),y=[b,C];o&&y.push(Fe("b",e[2].dataType,e[2].dims,a));let P=o?"value += b[output_channel];":"",I=[{name:"output_size",type:"u32"},{name:"strides",type:"i32",length:2},{name:"pads",type:"i32",length:2}];return No(r,I),`
1169
+ }`};return{name:"GroupedConv",shaderCache:{hint:`${r.cacheKey}_${u}`,inputDependencies:h},getRunData:()=>({outputs:[{dims:s?s(t):t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(d/64)},programUniforms:g}),getShaderSource:x}},iy=(e,r,t,s)=>{let o=e.length>2,a=dr(t[3]),n=dr(t[2]),i=Me.size(t)/a/n,l=[e[0].dims[0],e[0].dims[1],e[0].dims[2],e[0].dims[3]/a],c=[e[1].dims[0],e[1].dims[1],e[1].dims[2],e[1].dims[3]/a],_=[t[0],t[1],t[2],t[3]/a],u=[{type:12,data:i},{type:6,data:[r.strides[0],r.strides[1]]},{type:6,data:[r.pads[0],r.pads[1]]}];No(r,u),u.push(...dt(l,c,_));let d=(n-1)*r.strides[1]+c[1],g=h=>{let x=it("output",e[0].dataType,_.length,a),F=$r(x.type.tensor),v=Ro(r,x.type.value,F),b=Fe("x",e[0].dataType,l.length,a),C=Fe("w",e[1].dataType,c.length,a),y=[b,C];o&&y.push(Fe("b",e[2].dataType,e[2].dims,a));let P=o?"value += b[output_channel];":"",I=[{name:"output_size",type:"u32"},{name:"strides",type:"i32",length:2},{name:"pads",type:"i32",length:2}];return jo(r,I),`
1170
1170
  ${h.registerUniforms(I).declareVariables(...y,x)}
1171
1171
  ${h.mainStart()}
1172
1172
  ${h.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
@@ -1211,7 +1211,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
1211
1211
  ${v}
1212
1212
  ${x.set("batch","row","col + i","output_channel","value")};
1213
1213
  }
1214
- }`};return{name:"GroupedConv-Vectorize",shaderCache:{hint:`${r.cacheKey};${a};${n};${d};${c[0]};${c[1]}`,inputDependencies:o?["rank","rank","type"]:["rank","rank"]},getRunData:()=>({outputs:[{dims:s?s(t):t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(i/64)},programUniforms:u}),getShaderSource:g}}}),HM,Bi,qM,zi,Wd,ad,QM,XM,Ud,AP=Ve(()=>{"use strict";kt(),SP(),FP(),fu(),IP(),Vo(),hu(),po(),HM=(e,r,t,s,o,a)=>{let n=e[0],i=e.slice(a?1:2,a?3:4),l=i.length,c=r[0],_=r.slice(2).map((d,g)=>d+(d-1)*(t[g]-1)),u=i.map((d,g)=>d+s[g]+s[g+l]).map((d,g)=>Math.floor((d-_[g]+o[g])/o[g]));return u.splice(0,0,n),u.splice(a?3:1,0,c),u},Bi=[2,3,1,0],qM=(e,r)=>{if(!e||e.length!==2&&e.length!==3)throw new Error("Conv requires 2 or 3 inputs");if(e[0].dims.length>5)throw new Error("greater than 5D is not supported");if(e[0].dims.length!==e[1].dims.length)throw new Error("filter does not have same dimension as input");let t=e[0].dims[r.format==="NHWC"?e[0].dims.length-1:1],s=e[1].dims[1]*r.group;if(t!==s)throw new Error("FILTER_IN_CHANNEL should be equal to DATA_CHANNEL");if(e.length===3&&(e[2].dims.length!==1||e[1].dims[0]!==e[2].dims[0]))throw new Error("invalid bias");let o=e[0].dims.length-2;if(r.dilations.length!==o)throw new Error(`dilations should be ${o}D`);if(r.strides.length!==o)throw new Error(`strides should be ${o}D`);if(r.pads.length!==o*2)throw new Error(`pads should be ${o*2}D`);if(r.kernelShape.length!==0&&r.kernelShape.length!==e[1].dims.length-2)throw new Error("invalid kernel shape")},zi=(e,r)=>{let t=e.kernelShape.slice();t.length<r[1].dims.length-2&&t.push(...Array(r[1].dims.length-2-t.length).fill(0));for(let a=2;a<r[1].dims.length;++a)t[a-2]===0&&(t[a-2]=r[1].dims[a]);let s=e.pads.slice();Hi.adjustPadsBasedOnAutoPad(r[0].dims,e.strides,e.dilations,t,s,e.format==="NHWC",e.autoPad);let o=Object.assign({},e);return Object.assign(o,{kernelShape:t,pads:s}),o},Wd=e=>{let r=_u(e),t=e.format,s=["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][e.auto_pad],o=e.dilations,a=e.group,n=e.kernel_shape,i=e.pads,l=e.strides,c=e.w_is_const();return{autoPad:s,format:t,dilations:o,group:a,kernelShape:n,pads:i,strides:l,wIsConst:c,...r,cacheKey:`${e.format};${r.activation};`}},ad=(e,r,t,s)=>{let o=t.format==="NHWC",a=HM(r[0].dims,r[1].dims,t.dilations,t.pads,t.strides,o);if(t.group!==1){let I=[r[0]];if(o){let f=e.kernelCustomData.wT??e.compute(os(r[1],Bi),{inputs:[1],outputs:[t.wIsConst?-2:-1]})[0];t.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=f),I.push(f)}else I.push(r[1]);r.length===3&&I.push(r[2]),!e.adapterInfo.isArchitecture("ampere")&&o&&r[1].dims[0]===t.group&&r[1].dims[1]===1&&t.dilations[0]===1&&t.dilations[1]===1?e.compute(ny(I,t,a,s),{inputs:I}):e.compute(ay(I,t,a,s),{inputs:I});return}let n=r.length===3,i=r[0].dims[o?1:2],l=r[0].dims[o?2:3],c=r[0].dims[o?3:1],_=r[1].dims[2],u=r[1].dims[3],d=a[o?1:2],g=a[o?2:3],h=a[o?3:1],x=o&&_===i&&u===l&&t.pads[0]===0&&t.pads[1]===0;if(x||_===1&&u===1&&t.dilations[0]===1&&t.dilations[1]===1&&t.strides[0]===1&&t.strides[1]===1&&t.pads[0]===0&&t.pads[1]===0){let I=a[0],f,E,D,O=[];if(o){let z=e.kernelCustomData.wT??e.compute(os(r[1],Bi),{inputs:[1],outputs:[t.wIsConst?-2:-1]})[0];if(t.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=z),x){let X=i*l*c;f=r[0].reshape([1,I,X]),E=z.reshape([1,X,h]),D=[1,I,h]}else f=r[0].reshape([I,i*l,c]),E=z.reshape([1,c,h]),D=[I,d*g,h];O.push(f),O.push(E)}else f=r[0].reshape([I,c,i*l]),E=r[1].reshape([1,h,c]),D=[I,h,d*g],O.push(E),O.push(f);n&&O.push(r[2]);let U=D[2],W=O[0].dims[O[0].dims.length-1];U<8&&W<8?e.compute(mu(O,t,a,D,o,s),{inputs:O}):e.compute(Qi(O,t,a,D,o,s),{inputs:O});return}let F=!0,v=e.kernelCustomData.wT??e.compute(os(r[1],Bi),{inputs:[1],outputs:[t.wIsConst?-2:-1]})[0];t.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=v);let b=[r[0],v];n&&b.push(r[2]);let C=o?d*g:h,y=o?h:d*g,P=_*u*c;e.compute(ry(b,t,a,C,y,P,n,F,s),{inputs:b})},QM=(e,r)=>{let t=r.format==="NHWC",s=[e.inputs[0].reshape(t?[e.inputs[0].dims[0],1,e.inputs[0].dims[1],e.inputs[0].dims[2]]:[e.inputs[0].dims[0],e.inputs[0].dims[1],1,e.inputs[0].dims[2]]),e.inputs[1].reshape([e.inputs[1].dims[0],e.inputs[1].dims[1],1,e.inputs[1].dims[2]])];e.inputs.length===3&&s.push(e.inputs[2]);let o=[0,r.pads[0],0,r.pads[1]],a=[1].concat(r.strides),n=[1].concat(r.dilations),i=[1].concat(r.kernelShape),l=zi({...r,pads:o,strides:a,dilations:n,kernelShape:i},s);ad(e,s,l,c=>t?[c[0],c[2],c[3]]:[c[0],c[1],c[3]])},XM=(e,r,t)=>{let s=t.format==="NHWC"?"channelsLast":"channelsFirst",o=zi(t,r),a=t.autoPad==="NOTSET"?t.pads:t.autoPad,n=sy(r[0].dims,r[1].dims,t.strides,t.dilations,a,!1,s);e.compute(oy(r,o,n.outShape,[n.filterDepth,n.filterHeight,n.filterWidth],[n.padInfo.front,n.padInfo.top,n.padInfo.left],s))},Ud=(e,r)=>{if(qM(e.inputs,r),e.inputs[0].dims.length===3)QM(e,r);else if(e.inputs[0].dims.length===5)XM(e,e.inputs,r);else{let t=zi(r,e.inputs);ad(e,e.inputs,t)}}}),iy,$P=Ve(()=>{"use strict";Mt(),Js(),kt(),Ct(),iy=(e,r,t)=>{let s=e.length>2,o=r.outputShape,a=r.format==="NHWC",n=r.group,i=e[1].dims,l=i[2]/n,c=i[3],_=a?dr(l):1,u=a&&c===1&&l>=4,d=u?Math.floor(l/4)*4:Math.floor(l/_)*_,g=l-d,h=a?dr(c):1,x=a?c===1?_:h:1,F=Me.size(o)/h,v=[Math.ceil(F/64),1,1];Ot("verbose",()=>`[conv2d_backprop_webgpu] dispatch = ${v}`);let b=["rank","rank"],C=[r.strides[0],r.strides[1]],y=[r.kernelShape[a?1:2],r.kernelShape[a?2:3]],P=[r.dilations[0],r.dilations[1]],I=[y[0]+(r.dilations[0]<=1?0:(r.kernelShape[a?1:2]-1)*(r.dilations[0]-1)),y[1]+(r.dilations[1]<=1?0:(r.kernelShape[a?2:3]-1)*(r.dilations[1]-1))],f=[I[0]-1-Math.floor((r.pads[0]+r.pads[2])/2),I[1]-1-Math.floor((r.pads[1]+r.pads[3])/2)],E=[{type:12,data:F},{type:12,data:C},{type:12,data:y},{type:12,data:P},{type:12,data:I},{type:6,data:f},{type:12,data:d},{type:12,data:l},{type:12,data:c},...dt(e[0].dims,e[1].dims)];s&&(E.push(...dt(e[2].dims)),b.push("rank")),E.push(...dt(o));let D=O=>{let U=[{name:"output_size",type:"u32"},{name:"strides",type:"u32",length:C.length},{name:"filter_dims",type:"u32",length:y.length},{name:"dilations",type:"u32",length:y.length},{name:"effective_filter_dims",type:"u32",length:I.length},{name:"pads",type:"i32",length:f.length},{name:"input_channels_per_group_int",type:"u32"},{name:"input_channels_per_group",type:"u32"},{name:"output_channels_per_group",type:"u32"}],W=$r(e[0].dataType),z=a?1:2,X=a?2:3,J=a?3:1,q=Fe("W",e[1].dataType,e[1].dims.length,x),re=Fe("Dy",e[0].dataType,e[0].dims.length,_),oe=[re,q];s&&oe.push(Fe("bias",e[2].dataType,[o[J]].length,h));let ne=it("result",e[0].dataType,o.length,h),ye=()=>{let R="";if(u)_===4?R+=`
1214
+ }`};return{name:"GroupedConv-Vectorize",shaderCache:{hint:`${r.cacheKey};${a};${n};${d};${c[0]};${c[1]}`,inputDependencies:o?["rank","rank","type"]:["rank","rank"]},getRunData:()=>({outputs:[{dims:s?s(t):t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(i/64)},programUniforms:u}),getShaderSource:g}}}),qM,Bi,QM,zi,Wd,ad,XM,JM,Ud,$P=Ve(()=>{"use strict";kt(),FP(),IP(),fu(),AP(),Wo(),hu(),po(),qM=(e,r,t,s,o,a)=>{let n=e[0],i=e.slice(a?1:2,a?3:4),l=i.length,c=r[0],_=r.slice(2).map((d,g)=>d+(d-1)*(t[g]-1)),u=i.map((d,g)=>d+s[g]+s[g+l]).map((d,g)=>Math.floor((d-_[g]+o[g])/o[g]));return u.splice(0,0,n),u.splice(a?3:1,0,c),u},Bi=[2,3,1,0],QM=(e,r)=>{if(!e||e.length!==2&&e.length!==3)throw new Error("Conv requires 2 or 3 inputs");if(e[0].dims.length>5)throw new Error("greater than 5D is not supported");if(e[0].dims.length!==e[1].dims.length)throw new Error("filter does not have same dimension as input");let t=e[0].dims[r.format==="NHWC"?e[0].dims.length-1:1],s=e[1].dims[1]*r.group;if(t!==s)throw new Error("FILTER_IN_CHANNEL should be equal to DATA_CHANNEL");if(e.length===3&&(e[2].dims.length!==1||e[1].dims[0]!==e[2].dims[0]))throw new Error("invalid bias");let o=e[0].dims.length-2;if(r.dilations.length!==o)throw new Error(`dilations should be ${o}D`);if(r.strides.length!==o)throw new Error(`strides should be ${o}D`);if(r.pads.length!==o*2)throw new Error(`pads should be ${o*2}D`);if(r.kernelShape.length!==0&&r.kernelShape.length!==e[1].dims.length-2)throw new Error("invalid kernel shape")},zi=(e,r)=>{let t=e.kernelShape.slice();t.length<r[1].dims.length-2&&t.push(...Array(r[1].dims.length-2-t.length).fill(0));for(let a=2;a<r[1].dims.length;++a)t[a-2]===0&&(t[a-2]=r[1].dims[a]);let s=e.pads.slice();Hi.adjustPadsBasedOnAutoPad(r[0].dims,e.strides,e.dilations,t,s,e.format==="NHWC",e.autoPad);let o=Object.assign({},e);return Object.assign(o,{kernelShape:t,pads:s}),o},Wd=e=>{let r=_u(e),t=e.format,s=["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][e.auto_pad],o=e.dilations,a=e.group,n=e.kernel_shape,i=e.pads,l=e.strides,c=e.w_is_const();return{autoPad:s,format:t,dilations:o,group:a,kernelShape:n,pads:i,strides:l,wIsConst:c,...r,cacheKey:`${e.format};${r.activation};`}},ad=(e,r,t,s)=>{let o=t.format==="NHWC",a=qM(r[0].dims,r[1].dims,t.dilations,t.pads,t.strides,o);if(t.group!==1){let I=[r[0]];if(o){let f=e.kernelCustomData.wT??e.compute(os(r[1],Bi),{inputs:[1],outputs:[t.wIsConst?-2:-1]})[0];t.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=f),I.push(f)}else I.push(r[1]);r.length===3&&I.push(r[2]),!e.adapterInfo.isArchitecture("ampere")&&o&&r[1].dims[0]===t.group&&r[1].dims[1]===1&&t.dilations[0]===1&&t.dilations[1]===1?e.compute(iy(I,t,a,s),{inputs:I}):e.compute(ny(I,t,a,s),{inputs:I});return}let n=r.length===3,i=r[0].dims[o?1:2],l=r[0].dims[o?2:3],c=r[0].dims[o?3:1],_=r[1].dims[2],u=r[1].dims[3],d=a[o?1:2],g=a[o?2:3],h=a[o?3:1],x=o&&_===i&&u===l&&t.pads[0]===0&&t.pads[1]===0;if(x||_===1&&u===1&&t.dilations[0]===1&&t.dilations[1]===1&&t.strides[0]===1&&t.strides[1]===1&&t.pads[0]===0&&t.pads[1]===0){let I=a[0],f,E,D,O=[];if(o){let z=e.kernelCustomData.wT??e.compute(os(r[1],Bi),{inputs:[1],outputs:[t.wIsConst?-2:-1]})[0];if(t.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=z),x){let X=i*l*c;f=r[0].reshape([1,I,X]),E=z.reshape([1,X,h]),D=[1,I,h]}else f=r[0].reshape([I,i*l,c]),E=z.reshape([1,c,h]),D=[I,d*g,h];O.push(f),O.push(E)}else f=r[0].reshape([I,c,i*l]),E=r[1].reshape([1,h,c]),D=[I,h,d*g],O.push(E),O.push(f);n&&O.push(r[2]);let U=D[2],W=O[0].dims[O[0].dims.length-1];U<8&&W<8?e.compute(mu(O,t,a,D,o,s),{inputs:O}):e.compute(Qi(O,t,a,D,o,s),{inputs:O});return}let F=!0,v=e.kernelCustomData.wT??e.compute(os(r[1],Bi),{inputs:[1],outputs:[t.wIsConst?-2:-1]})[0];t.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=v);let b=[r[0],v];n&&b.push(r[2]);let C=o?d*g:h,y=o?h:d*g,P=_*u*c;e.compute(sy(b,t,a,C,y,P,n,F,s),{inputs:b})},XM=(e,r)=>{let t=r.format==="NHWC",s=[e.inputs[0].reshape(t?[e.inputs[0].dims[0],1,e.inputs[0].dims[1],e.inputs[0].dims[2]]:[e.inputs[0].dims[0],e.inputs[0].dims[1],1,e.inputs[0].dims[2]]),e.inputs[1].reshape([e.inputs[1].dims[0],e.inputs[1].dims[1],1,e.inputs[1].dims[2]])];e.inputs.length===3&&s.push(e.inputs[2]);let o=[0,r.pads[0],0,r.pads[1]],a=[1].concat(r.strides),n=[1].concat(r.dilations),i=[1].concat(r.kernelShape),l=zi({...r,pads:o,strides:a,dilations:n,kernelShape:i},s);ad(e,s,l,c=>t?[c[0],c[2],c[3]]:[c[0],c[1],c[3]])},JM=(e,r,t)=>{let s=t.format==="NHWC"?"channelsLast":"channelsFirst",o=zi(t,r),a=t.autoPad==="NOTSET"?t.pads:t.autoPad,n=oy(r[0].dims,r[1].dims,t.strides,t.dilations,a,!1,s);e.compute(ay(r,o,n.outShape,[n.filterDepth,n.filterHeight,n.filterWidth],[n.padInfo.front,n.padInfo.top,n.padInfo.left],s))},Ud=(e,r)=>{if(QM(e.inputs,r),e.inputs[0].dims.length===3)XM(e,r);else if(e.inputs[0].dims.length===5)JM(e,e.inputs,r);else{let t=zi(r,e.inputs);ad(e,e.inputs,t)}}}),ly,DP=Ve(()=>{"use strict";Mt(),Js(),kt(),Ct(),ly=(e,r,t)=>{let s=e.length>2,o=r.outputShape,a=r.format==="NHWC",n=r.group,i=e[1].dims,l=i[2]/n,c=i[3],_=a?dr(l):1,u=a&&c===1&&l>=4,d=u?Math.floor(l/4)*4:Math.floor(l/_)*_,g=l-d,h=a?dr(c):1,x=a?c===1?_:h:1,F=Me.size(o)/h,v=[Math.ceil(F/64),1,1];Ot("verbose",()=>`[conv2d_backprop_webgpu] dispatch = ${v}`);let b=["rank","rank"],C=[r.strides[0],r.strides[1]],y=[r.kernelShape[a?1:2],r.kernelShape[a?2:3]],P=[r.dilations[0],r.dilations[1]],I=[y[0]+(r.dilations[0]<=1?0:(r.kernelShape[a?1:2]-1)*(r.dilations[0]-1)),y[1]+(r.dilations[1]<=1?0:(r.kernelShape[a?2:3]-1)*(r.dilations[1]-1))],f=[I[0]-1-Math.floor((r.pads[0]+r.pads[2])/2),I[1]-1-Math.floor((r.pads[1]+r.pads[3])/2)],E=[{type:12,data:F},{type:12,data:C},{type:12,data:y},{type:12,data:P},{type:12,data:I},{type:6,data:f},{type:12,data:d},{type:12,data:l},{type:12,data:c},...dt(e[0].dims,e[1].dims)];s&&(E.push(...dt(e[2].dims)),b.push("rank")),E.push(...dt(o));let D=O=>{let U=[{name:"output_size",type:"u32"},{name:"strides",type:"u32",length:C.length},{name:"filter_dims",type:"u32",length:y.length},{name:"dilations",type:"u32",length:y.length},{name:"effective_filter_dims",type:"u32",length:I.length},{name:"pads",type:"i32",length:f.length},{name:"input_channels_per_group_int",type:"u32"},{name:"input_channels_per_group",type:"u32"},{name:"output_channels_per_group",type:"u32"}],W=$r(e[0].dataType),z=a?1:2,X=a?2:3,J=a?3:1,q=Fe("W",e[1].dataType,e[1].dims.length,x),re=Fe("Dy",e[0].dataType,e[0].dims.length,_),oe=[re,q];s&&oe.push(Fe("bias",e[2].dataType,[o[J]].length,h));let ne=it("result",e[0].dataType,o.length,h),ye=()=>{let R="";if(u)_===4?R+=`
1215
1215
  let xValue = ${re.getByOffset("x_offset")};
1216
1216
  let wValue = ${q.getByOffset("w_offset")};
1217
1217
  dotProd = dotProd + dot(xValue, wValue);
@@ -1299,7 +1299,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
1299
1299
  ${O.registerUniforms(U).declareVariables(...oe,ne)}
1300
1300
  ${O.mainStart()}
1301
1301
  ${O.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")};
1302
- ${H}}`};return{name:"ConvTranspose2D",shaderCache:{hint:`${r.cacheKey};${_}${x}${h}${u}${g}`,inputDependencies:b},getRunData:()=>({dispatchGroup:{x:v[0],y:v[1],z:v[2]},outputs:[{dims:t?t(o):o,dataType:e[0].dataType}],programUniforms:E}),getShaderSource:D}}}),JM,YM,ZM,nd,ly,ew,id,tw,cy,DP=Ve(()=>{"use strict";$P(),Vo(),po(),JM=(e,r,t,s,o,a)=>(e-1)*r+t+(s-1)*o+1-a,YM=(e,r,t,s,o)=>{let a=Math.floor(e/2);r==="SAME_UPPER"?(t[s]=a,t[o]=e-a):r==="SAME_LOWER"&&(t[s]=e-a,t[o]=a)},ZM=(e,r,t,s,o,a,n,i,l,c)=>{let _=e.length-2,u=c.length===0;l.length<_&&l.push(...Array(_-l.length).fill(0));let d=e[0],g=r[i?3:1]*o;for(let h=0,x=e.length-_-(i?1:0);h<_;++h,++x){let F=e[x],v=u?F*n[h]:c[h],b=JM(F,n[h],a[h],r[x],t[h],v);YM(b,s,a,h,h+_),u&&c.push(n[h]*(F-1)+l[h]+(r[x]-1)*t[h]+1-a[h]-a[h+_])}c.splice(0,0,d),c.splice(i?3:1,0,g)},nd=(e,r)=>{let t=e.kernelShape.slice();if(e.kernelShape.length===0||e.kernelShape.reduce((u,d)=>u*d,1)===0){t.length=0;for(let u=2;u<r[1].dims.length;++u)t.push(r[1].dims[u])}let s=e.format==="NHWC";t.splice(0,0,r[1].dims[0]),t.splice(s?3:1,0,r[1].dims[1]);let o=e.pads.slice(),a=e.outputShape.slice(),n=e.outputPadding.slice(),i=r[0].dims,l=e.dilations.slice();if(l.reduce((u,d)=>u+d,0)===0){let u=r[0].dims.length-2;l=new Array(u).fill(1)}let c=e.strides.slice();if(c.reduce((u,d)=>u+d,0)===0){let u=r[0].dims.length-2;c=new Array(u).fill(1)}ZM(i,t,l,e.autoPad,e.group,o,c,s,n,a);let _=Object.assign({},e);return Object.assign(_,{kernelShape:t,pads:o,outputPadding:n,outputShape:a,dilations:l,strides:c}),_},ly=e=>{let r=_u(e),t=e.format,s=["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][typeof e.autoPad>"u"?0:e.autoPad],o=e.dilations,a=e.group,n=e.kernelShape,i=e.pads,l=e.strides,c=e.wIsConst(),_=e.outputPadding,u=e.outputShape;return{autoPad:s,format:t,dilations:o,group:a,kernelShape:n,outputPadding:_,outputShape:u,pads:i,strides:l,wIsConst:c,...r,cacheKey:`${e.format};${r.activation};`}},ew=(e,r)=>{if(!e||e.length!==2&&e.length!==3)throw new Error("Conv requires 2 or 3 inputs");if(e[0].dims.length!==4&&e[0].dims.length!==3)throw new Error("currently only support 2-dimensional conv");if(e[0].dims.length!==e[1].dims.length)throw new Error("filter does not have same dimension as input");let t=e[0].dims[r.format==="NHWC"?e[0].dims.length-1:1],s=e[1].dims[0];if(t!==s)throw new Error("FILTER_IN_CHANNEL should be equal to DATA_CHANNEL");let o=e[1].dims[1]*r.group;if(e.length===3&&(e[2].dims.length!==1||e[2].dims[0]!==o))throw new Error("invalid bias");let a=e[0].dims.length-2;if(r.dilations.reduce((n,i)=>n+i,0)>0&&r.dilations.length!==a)throw new Error(`dilations should be ${a}D`);if(r.strides.reduce((n,i)=>n+i,0)>0&&r.strides.length!==a)throw new Error(`strides should be ${a}D`);if(r.pads.reduce((n,i)=>n+i,0)>0&&r.pads.length!==a*2)throw new Error(`pads should be ${a*2}D`);if(r.outputPadding.length!==a&&r.outputPadding.length!==0)throw new Error(`output_padding should be ${a}D`);if(r.kernelShape.reduce((n,i)=>n+i,0)>0&&r.kernelShape.length!==0&&r.kernelShape.length!==e[1].dims.length-2)throw new Error("invalid kernel shape");if(r.outputShape.length!==0&&r.outputShape.length!==e[0].dims.length-2)throw new Error("invalid output shape")},id=(e,r,t,s)=>{let o=e.kernelCustomData.wT??e.compute(os(r[1],[2,3,0,1]),{inputs:[1],outputs:[t.wIsConst?-2:-1]})[0];t.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=o);let a=[r[0],o];r.length===3&&a.push(r[2]),e.compute(iy(a,t,s),{inputs:a})},tw=(e,r)=>{let t=r.format==="NHWC",s=[e.inputs[0].reshape(t?[e.inputs[0].dims[0],1,e.inputs[0].dims[1],e.inputs[0].dims[2]]:[e.inputs[0].dims[0],e.inputs[0].dims[1],1,e.inputs[0].dims[2]]),e.inputs[1].reshape([e.inputs[1].dims[0],e.inputs[1].dims[1],1,e.inputs[1].dims[2]])];e.inputs.length===3&&s.push(e.inputs[2]);let o=r.kernelShape;(o.length===0||o[0]===0)&&(o=[e.inputs[1].dims[2]]);let a=r.dilations;(a.length===0||a[0]===0)&&(a=[1]);let n=r.strides;(n.length===0||n[0]===0)&&(n=[1]);let i=r.pads;i.length===0&&(i=[0,0]),i=[0,i[0],0,i[1]],n=[1].concat(n),a=[1].concat(a),o=[1].concat(o);let l=r.outputPadding;l=[0].concat(l);let c=nd({...r,pads:i,strides:n,dilations:a,kernelShape:o,outputPadding:l},s);id(e,s,c,_=>t?[_[0],_[2],_[3]]:[_[0],_[1],_[3]])},cy=(e,r)=>{if(ew(e.inputs,r),e.inputs[0].dims.length===3)tw(e,r);else{let t=nd(r,e.inputs);id(e,e.inputs,t)}}}),rw,dy,uy,OP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),rw=(e,r,t,s)=>{let o=Me.size(r),a=r.length,n=Fe("input",e,a),i=it("output",e,a),l=t.dataType===6?t.getInt32Array()[0]:Number(t.getBigInt64Array()[0]),c=Me.normalizeAxis(l,a),_=u=>{let d=` i32(${n.indicesGet("inputIndices","uniforms.axis")}) `,g=lt("uniforms.input_shape","uniforms.axis",a),h=s.reverse?d+(s.exclusive?" + 1":""):"0",x=s.reverse?g:d+(s.exclusive?"":" + 1");return`
1302
+ ${H}}`};return{name:"ConvTranspose2D",shaderCache:{hint:`${r.cacheKey};${_}${x}${h}${u}${g}`,inputDependencies:b},getRunData:()=>({dispatchGroup:{x:v[0],y:v[1],z:v[2]},outputs:[{dims:t?t(o):o,dataType:e[0].dataType}],programUniforms:E}),getShaderSource:D}}}),YM,ZM,ew,nd,cy,tw,id,rw,dy,OP=Ve(()=>{"use strict";DP(),Wo(),po(),YM=(e,r,t,s,o,a)=>(e-1)*r+t+(s-1)*o+1-a,ZM=(e,r,t,s,o)=>{let a=Math.floor(e/2);r==="SAME_UPPER"?(t[s]=a,t[o]=e-a):r==="SAME_LOWER"&&(t[s]=e-a,t[o]=a)},ew=(e,r,t,s,o,a,n,i,l,c)=>{let _=e.length-2,u=c.length===0;l.length<_&&l.push(...Array(_-l.length).fill(0));let d=e[0],g=r[i?3:1]*o;for(let h=0,x=e.length-_-(i?1:0);h<_;++h,++x){let F=e[x],v=u?F*n[h]:c[h],b=YM(F,n[h],a[h],r[x],t[h],v);ZM(b,s,a,h,h+_),u&&c.push(n[h]*(F-1)+l[h]+(r[x]-1)*t[h]+1-a[h]-a[h+_])}c.splice(0,0,d),c.splice(i?3:1,0,g)},nd=(e,r)=>{let t=e.kernelShape.slice();if(e.kernelShape.length===0||e.kernelShape.reduce((u,d)=>u*d,1)===0){t.length=0;for(let u=2;u<r[1].dims.length;++u)t.push(r[1].dims[u])}let s=e.format==="NHWC";t.splice(0,0,r[1].dims[0]),t.splice(s?3:1,0,r[1].dims[1]);let o=e.pads.slice(),a=e.outputShape.slice(),n=e.outputPadding.slice(),i=r[0].dims,l=e.dilations.slice();if(l.reduce((u,d)=>u+d,0)===0){let u=r[0].dims.length-2;l=new Array(u).fill(1)}let c=e.strides.slice();if(c.reduce((u,d)=>u+d,0)===0){let u=r[0].dims.length-2;c=new Array(u).fill(1)}ew(i,t,l,e.autoPad,e.group,o,c,s,n,a);let _=Object.assign({},e);return Object.assign(_,{kernelShape:t,pads:o,outputPadding:n,outputShape:a,dilations:l,strides:c}),_},cy=e=>{let r=_u(e),t=e.format,s=["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][typeof e.autoPad>"u"?0:e.autoPad],o=e.dilations,a=e.group,n=e.kernelShape,i=e.pads,l=e.strides,c=e.wIsConst(),_=e.outputPadding,u=e.outputShape;return{autoPad:s,format:t,dilations:o,group:a,kernelShape:n,outputPadding:_,outputShape:u,pads:i,strides:l,wIsConst:c,...r,cacheKey:`${e.format};${r.activation};`}},tw=(e,r)=>{if(!e||e.length!==2&&e.length!==3)throw new Error("Conv requires 2 or 3 inputs");if(e[0].dims.length!==4&&e[0].dims.length!==3)throw new Error("currently only support 2-dimensional conv");if(e[0].dims.length!==e[1].dims.length)throw new Error("filter does not have same dimension as input");let t=e[0].dims[r.format==="NHWC"?e[0].dims.length-1:1],s=e[1].dims[0];if(t!==s)throw new Error("FILTER_IN_CHANNEL should be equal to DATA_CHANNEL");let o=e[1].dims[1]*r.group;if(e.length===3&&(e[2].dims.length!==1||e[2].dims[0]!==o))throw new Error("invalid bias");let a=e[0].dims.length-2;if(r.dilations.reduce((n,i)=>n+i,0)>0&&r.dilations.length!==a)throw new Error(`dilations should be ${a}D`);if(r.strides.reduce((n,i)=>n+i,0)>0&&r.strides.length!==a)throw new Error(`strides should be ${a}D`);if(r.pads.reduce((n,i)=>n+i,0)>0&&r.pads.length!==a*2)throw new Error(`pads should be ${a*2}D`);if(r.outputPadding.length!==a&&r.outputPadding.length!==0)throw new Error(`output_padding should be ${a}D`);if(r.kernelShape.reduce((n,i)=>n+i,0)>0&&r.kernelShape.length!==0&&r.kernelShape.length!==e[1].dims.length-2)throw new Error("invalid kernel shape");if(r.outputShape.length!==0&&r.outputShape.length!==e[0].dims.length-2)throw new Error("invalid output shape")},id=(e,r,t,s)=>{let o=e.kernelCustomData.wT??e.compute(os(r[1],[2,3,0,1]),{inputs:[1],outputs:[t.wIsConst?-2:-1]})[0];t.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=o);let a=[r[0],o];r.length===3&&a.push(r[2]),e.compute(ly(a,t,s),{inputs:a})},rw=(e,r)=>{let t=r.format==="NHWC",s=[e.inputs[0].reshape(t?[e.inputs[0].dims[0],1,e.inputs[0].dims[1],e.inputs[0].dims[2]]:[e.inputs[0].dims[0],e.inputs[0].dims[1],1,e.inputs[0].dims[2]]),e.inputs[1].reshape([e.inputs[1].dims[0],e.inputs[1].dims[1],1,e.inputs[1].dims[2]])];e.inputs.length===3&&s.push(e.inputs[2]);let o=r.kernelShape;(o.length===0||o[0]===0)&&(o=[e.inputs[1].dims[2]]);let a=r.dilations;(a.length===0||a[0]===0)&&(a=[1]);let n=r.strides;(n.length===0||n[0]===0)&&(n=[1]);let i=r.pads;i.length===0&&(i=[0,0]),i=[0,i[0],0,i[1]],n=[1].concat(n),a=[1].concat(a),o=[1].concat(o);let l=r.outputPadding;l=[0].concat(l);let c=nd({...r,pads:i,strides:n,dilations:a,kernelShape:o,outputPadding:l},s);id(e,s,c,_=>t?[_[0],_[2],_[3]]:[_[0],_[1],_[3]])},dy=(e,r)=>{if(tw(e.inputs,r),e.inputs[0].dims.length===3)rw(e,r);else{let t=nd(r,e.inputs);id(e,e.inputs,t)}}}),sw,uy,_y,LP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),sw=(e,r,t,s)=>{let o=Me.size(r),a=r.length,n=Fe("input",e,a),i=it("output",e,a),l=t.dataType===6?t.getInt32Array()[0]:Number(t.getBigInt64Array()[0]),c=Me.normalizeAxis(l,a),_=u=>{let d=` i32(${n.indicesGet("inputIndices","uniforms.axis")}) `,g=lt("uniforms.input_shape","uniforms.axis",a),h=s.reverse?d+(s.exclusive?" + 1":""):"0",x=s.reverse?g:d+(s.exclusive?"":" + 1");return`
1303
1303
  ${u.registerUniform("outputSize","u32").registerUniform("axis","u32").declareVariables(n,i)}
1304
1304
  ${u.mainStart()}
1305
1305
  ${u.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")}
@@ -1312,12 +1312,12 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
1312
1312
  sum = sum + ${n.getByIndices("inputIndices")};
1313
1313
  }
1314
1314
  ${i.setByOffset("global_idx","sum")};
1315
- }`};return{name:"CumSum",shaderCache:{hint:s.cacheKey,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:r,dataType:e}],dispatchGroup:{x:Math.ceil(o/64)},programUniforms:[{type:12,data:o},{type:12,data:c},...dt(r,r)]}),getShaderSource:_}},dy=(e,r)=>{let t=e.inputs[0].dims,s=e.inputs[0].dataType,o=e.inputs[1];e.compute(rw(s,t,o,r),{inputs:[0]})},uy=e=>{let r=e.exclusive===1,t=e.reverse===1;return jt({exclusive:r,reverse:t})}}),sw,ow,aw,_y,py,LP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),sw=e=>{if(!e||e.length!==1)throw new Error("DepthToSpace requires 1 input.");if(e[0].dims.length!==4)throw new Error("DepthToSpace requires 4D input.")},ow=(e,r,t,s)=>{let o=[];o.push(`fn perm(i: ${s.type.indices}) -> ${t.type.indices} {
1315
+ }`};return{name:"CumSum",shaderCache:{hint:s.cacheKey,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:r,dataType:e}],dispatchGroup:{x:Math.ceil(o/64)},programUniforms:[{type:12,data:o},{type:12,data:c},...dt(r,r)]}),getShaderSource:_}},uy=(e,r)=>{let t=e.inputs[0].dims,s=e.inputs[0].dataType,o=e.inputs[1];e.compute(sw(s,t,o,r),{inputs:[0]})},_y=e=>{let r=e.exclusive===1,t=e.reverse===1;return jt({exclusive:r,reverse:t})}}),ow,aw,nw,py,my,BP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),ow=e=>{if(!e||e.length!==1)throw new Error("DepthToSpace requires 1 input.");if(e[0].dims.length!==4)throw new Error("DepthToSpace requires 4D input.")},aw=(e,r,t,s)=>{let o=[];o.push(`fn perm(i: ${s.type.indices}) -> ${t.type.indices} {
1316
1316
  var a: ${t.type.indices};`);for(let a=0;a<r;++a)o.push(t.indicesSet("a",e[a],`i[${a}]`));return o.push("return a;}"),o.join(`
1317
- `)},aw=(e,r)=>{let t,s,o,a,n,i,l=r.format==="NHWC",c=r.blocksize,_=r.mode==="DCR";l?([t,s,o,a]=e.dims,n=_?[t,s,o,c,c,a/c**2]:[t,s,o,a/c**2,c,c],i=_?[0,1,3,2,4,5]:[0,1,4,2,5,3]):([t,s,o,a]=[e.dims[0],e.dims[2],e.dims[3],e.dims[1]],n=_?[t,c,c,a/c**2,s,o]:[t,a/c**2,c,c,s,o],i=_?[0,3,4,1,5,2]:[0,1,4,2,5,3]);let u=e.reshape(n),d=u.dims.length,g=e.dataType,h=Fe("a",g,d),x=it("output",g,d),F=v=>`
1317
+ `)},nw=(e,r)=>{let t,s,o,a,n,i,l=r.format==="NHWC",c=r.blocksize,_=r.mode==="DCR";l?([t,s,o,a]=e.dims,n=_?[t,s,o,c,c,a/c**2]:[t,s,o,a/c**2,c,c],i=_?[0,1,3,2,4,5]:[0,1,4,2,5,3]):([t,s,o,a]=[e.dims[0],e.dims[2],e.dims[3],e.dims[1]],n=_?[t,c,c,a/c**2,s,o]:[t,a/c**2,c,c,s,o],i=_?[0,3,4,1,5,2]:[0,1,4,2,5,3]);let u=e.reshape(n),d=u.dims.length,g=e.dataType,h=Fe("a",g,d),x=it("output",g,d),F=v=>`
1318
1318
  ${v.registerUniform("output_size","u32").declareVariables(h,x)}
1319
1319
 
1320
- ${ow(i,d,h,x)}
1320
+ ${aw(i,d,h,x)}
1321
1321
 
1322
1322
  ${v.mainStart()}
1323
1323
  ${v.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
@@ -1326,7 +1326,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
1326
1326
  let aIndices = perm(indices);
1327
1327
 
1328
1328
  ${x.setByOffset("global_idx",h.getByIndices("aIndices"))}
1329
- }`;return{name:"DepthToSpace",shaderCache:{hint:`${e.dims};${r.blocksize};${r.mode}`,inputDependencies:["rank"]},getRunData:v=>{let b=l?[t,s*c,o*c,a/c**2]:[t,a/c**2,s*c,o*c],C=Me.size(b),y=u.dims,P=Me.sortBasedOnPerm(y,i);return{outputs:[{dims:b,dataType:v[0].dataType}],dispatchGroup:{x:Math.ceil(C/64)},programUniforms:[{type:12,data:C},...dt(y,P)]}},getShaderSource:F}},_y=(e,r)=>{sw(e.inputs),e.compute(aw(e.inputs[0],r))},py=e=>jt({blocksize:e.blocksize,mode:e.mode,format:e.format})}),Ri,tn,ld,nw,iw,lw,cw,cd,dw,my,hy,BP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),Ri="[a-zA-Z]|\\.\\.\\.",tn="("+Ri+")+",ld="^"+tn+"$",nw="("+tn+",)*"+tn,iw="^"+nw+"$",lw=class{constructor(e=-1){this.symbolToIndices=new Map,this.inputIndex=e}addSymbol(e,r){let t=this.symbolToIndices.get(e);t===void 0?t=[r]:t.push(r),this.symbolToIndices.set(e,t)}},cw=class{constructor(e,r){this.equation=r,this.hasEllipsis=!1,this.symbolToInfo=new Map,this.lhs=new Array,this.outputDims=[];let[t,s]=r.includes("->")?r.split("->",2):[r,""];if(!t.match(RegExp(iw)))throw new Error("Invalid LHS term");if(t.split(",").forEach((o,a)=>{let n=e[a].dims.slice();if(!o.match(RegExp(ld)))throw new Error("Invalid LHS term");let i=this.processTerm(o,!0,n,a);this.lhs.push(i)}),s==="")s+=[...this.symbolToInfo.entries()].filter(([o,a])=>a.count===1||o==="...").map(([o])=>o).join("");else if(!s.match(RegExp(tn)))throw new Error("Invalid RHS");s.match(RegExp(Ri,"g"))?.forEach(o=>{if(o==="...")this.outputDims=this.outputDims.concat(this.ellipsisDims);else{let a=this.symbolToInfo.get(o);if(a===void 0)throw new Error("Invalid RHS symbol");this.outputDims.push(a.dimValue)}}),this.rhs=this.processTerm(s,!1,this.outputDims)}addSymbol(e,r,t){let s=this.symbolToInfo.get(e);if(s!==void 0){if(s.dimValue!==r&&s.count!==1)throw new Error("Dimension mismatch");s.count++,s.inputIndices.push(t)}else s={count:1,dimValue:r,inputIndices:[t]};this.symbolToInfo.set(e,s)}processTerm(e,r,t,s=-1){let o=t.length,a=!1,n=[],i=0;if(!e.match(RegExp(ld))&&!r&&e!=="")throw new Error("Invalid LHS term");let l=e.match(RegExp(Ri,"g")),c=new lw(s);return l?.forEach((_,u)=>{if(_==="..."){if(a)throw new Error("Only one ellipsis is allowed per input term");a=!0;let d=o-l.length+1;if(d<0)throw new Error("Ellipsis out of bounds");if(n=t.slice(i,i+d),this.hasEllipsis){if(this.ellipsisDims.length!==n.length||this.ellipsisDims.toString()!==n.toString())throw new Error("Ellipsis dimensions mismatch")}else if(r)this.hasEllipsis=!0,this.ellipsisDims=n;else throw new Error("Ellipsis must be specified in the LHS");for(let g=0;g<n.length;g++){let h=String.fromCharCode(48+g);c.addSymbol(h,u+g),this.addSymbol(h,t[i++],s)}}else c.addSymbol(_,u+(this.hasEllipsis?this.ellipsisDims.length-1:0)),this.addSymbol(_,t[i++],s)}),c}},cd=e=>e+"_max",dw=(e,r,t,s)=>{let o=e.map(c=>c.length).map((c,_)=>Fe(`input${_}`,r,c)),a=Me.size(s),n=it("output",r,s.length),i=[...t.symbolToInfo.keys()].filter(c=>!t.rhs.symbolToIndices.has(c)),l=c=>{let _=[],u="var prod = 1.0;",d="var sum = 0.0;",g="sum += prod;",h=[],x=[],F=[],v=[],b=t.symbolToInfo.size===t.rhs.symbolToIndices.size;t.symbolToInfo.forEach((y,P)=>{if(t.rhs.symbolToIndices.has(P)){let I=t.rhs.symbolToIndices.get(P)?.[0];I!==void 0&&t.lhs.forEach((f,E)=>{if(y.inputIndices.includes(E)){let D=f.symbolToIndices.get(P);if(D===void 0)throw new Error("Invalid symbol error");D.forEach(O=>{_.push(`${o[E].indicesSet(`input${E}Indices`,O,n.indicesGet("outputIndices",I))}`)})}})}else t.lhs.forEach((I,f)=>{if(y.inputIndices.includes(f)){let E=I.symbolToIndices.get(P);if(E===void 0)throw new Error("Invalid symbol error");E.forEach(D=>{h.push(`${o[f].indicesSet(`input${f}Indices`,D,`${P}`)}`)}),v.push(`prod *= ${o[f].getByIndices(`input${f}Indices`)};`)}}),x.push(`for(var ${P}: u32 = 0; ${P} < uniforms.${cd(P)}; ${P}++) {`),F.push("}")});let C=b?[..._,`let sum = ${o.map((y,P)=>y.getByIndices(`input${P}Indices`)).join(" * ")};`]:[..._,d,...x,...h,u,...v,g,...F];return`
1329
+ }`;return{name:"DepthToSpace",shaderCache:{hint:`${e.dims};${r.blocksize};${r.mode}`,inputDependencies:["rank"]},getRunData:v=>{let b=l?[t,s*c,o*c,a/c**2]:[t,a/c**2,s*c,o*c],C=Me.size(b),y=u.dims,P=Me.sortBasedOnPerm(y,i);return{outputs:[{dims:b,dataType:v[0].dataType}],dispatchGroup:{x:Math.ceil(C/64)},programUniforms:[{type:12,data:C},...dt(y,P)]}},getShaderSource:F}},py=(e,r)=>{ow(e.inputs),e.compute(nw(e.inputs[0],r))},my=e=>jt({blocksize:e.blocksize,mode:e.mode,format:e.format})}),Ri,rn,ld,iw,lw,cw,dw,cd,uw,hy,fy,zP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),Ri="[a-zA-Z]|\\.\\.\\.",rn="("+Ri+")+",ld="^"+rn+"$",iw="("+rn+",)*"+rn,lw="^"+iw+"$",cw=class{constructor(e=-1){this.symbolToIndices=new Map,this.inputIndex=e}addSymbol(e,r){let t=this.symbolToIndices.get(e);t===void 0?t=[r]:t.push(r),this.symbolToIndices.set(e,t)}},dw=class{constructor(e,r){this.equation=r,this.hasEllipsis=!1,this.symbolToInfo=new Map,this.lhs=new Array,this.outputDims=[];let[t,s]=r.includes("->")?r.split("->",2):[r,""];if(!t.match(RegExp(lw)))throw new Error("Invalid LHS term");if(t.split(",").forEach((o,a)=>{let n=e[a].dims.slice();if(!o.match(RegExp(ld)))throw new Error("Invalid LHS term");let i=this.processTerm(o,!0,n,a);this.lhs.push(i)}),s==="")s+=[...this.symbolToInfo.entries()].filter(([o,a])=>a.count===1||o==="...").map(([o])=>o).join("");else if(!s.match(RegExp(rn)))throw new Error("Invalid RHS");s.match(RegExp(Ri,"g"))?.forEach(o=>{if(o==="...")this.outputDims=this.outputDims.concat(this.ellipsisDims);else{let a=this.symbolToInfo.get(o);if(a===void 0)throw new Error("Invalid RHS symbol");this.outputDims.push(a.dimValue)}}),this.rhs=this.processTerm(s,!1,this.outputDims)}addSymbol(e,r,t){let s=this.symbolToInfo.get(e);if(s!==void 0){if(s.dimValue!==r&&s.count!==1)throw new Error("Dimension mismatch");s.count++,s.inputIndices.push(t)}else s={count:1,dimValue:r,inputIndices:[t]};this.symbolToInfo.set(e,s)}processTerm(e,r,t,s=-1){let o=t.length,a=!1,n=[],i=0;if(!e.match(RegExp(ld))&&!r&&e!=="")throw new Error("Invalid LHS term");let l=e.match(RegExp(Ri,"g")),c=new cw(s);return l?.forEach((_,u)=>{if(_==="..."){if(a)throw new Error("Only one ellipsis is allowed per input term");a=!0;let d=o-l.length+1;if(d<0)throw new Error("Ellipsis out of bounds");if(n=t.slice(i,i+d),this.hasEllipsis){if(this.ellipsisDims.length!==n.length||this.ellipsisDims.toString()!==n.toString())throw new Error("Ellipsis dimensions mismatch")}else if(r)this.hasEllipsis=!0,this.ellipsisDims=n;else throw new Error("Ellipsis must be specified in the LHS");for(let g=0;g<n.length;g++){let h=String.fromCharCode(48+g);c.addSymbol(h,u+g),this.addSymbol(h,t[i++],s)}}else c.addSymbol(_,u+(this.hasEllipsis?this.ellipsisDims.length-1:0)),this.addSymbol(_,t[i++],s)}),c}},cd=e=>e+"_max",uw=(e,r,t,s)=>{let o=e.map(c=>c.length).map((c,_)=>Fe(`input${_}`,r,c)),a=Me.size(s),n=it("output",r,s.length),i=[...t.symbolToInfo.keys()].filter(c=>!t.rhs.symbolToIndices.has(c)),l=c=>{let _=[],u="var prod = 1.0;",d="var sum = 0.0;",g="sum += prod;",h=[],x=[],F=[],v=[],b=t.symbolToInfo.size===t.rhs.symbolToIndices.size;t.symbolToInfo.forEach((y,P)=>{if(t.rhs.symbolToIndices.has(P)){let I=t.rhs.symbolToIndices.get(P)?.[0];I!==void 0&&t.lhs.forEach((f,E)=>{if(y.inputIndices.includes(E)){let D=f.symbolToIndices.get(P);if(D===void 0)throw new Error("Invalid symbol error");D.forEach(O=>{_.push(`${o[E].indicesSet(`input${E}Indices`,O,n.indicesGet("outputIndices",I))}`)})}})}else t.lhs.forEach((I,f)=>{if(y.inputIndices.includes(f)){let E=I.symbolToIndices.get(P);if(E===void 0)throw new Error("Invalid symbol error");E.forEach(D=>{h.push(`${o[f].indicesSet(`input${f}Indices`,D,`${P}`)}`)}),v.push(`prod *= ${o[f].getByIndices(`input${f}Indices`)};`)}}),x.push(`for(var ${P}: u32 = 0; ${P} < uniforms.${cd(P)}; ${P}++) {`),F.push("}")});let C=b?[..._,`let sum = ${o.map((y,P)=>y.getByIndices(`input${P}Indices`)).join(" * ")};`]:[..._,d,...x,...h,u,...v,g,...F];return`
1330
1330
  ${c.registerUniforms(i.map(y=>({name:`${cd(y)}`,type:"u32"}))).registerUniform("outputSize","u32").declareVariables(...o,n)}
1331
1331
 
1332
1332
  ${c.mainStart()}
@@ -1337,7 +1337,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
1337
1337
  ${C.join(`
1338
1338
  `)};
1339
1339
  ${n.setByOffset("global_idx","sum")};
1340
- }`};return{name:"Einsum",shaderCache:{hint:t.equation,inputDependencies:e.map(()=>"rank")},getRunData:()=>{let c=i.filter(u=>t.symbolToInfo.has(u)).map(u=>({type:12,data:t.symbolToInfo.get(u)?.dimValue||0}));c.push({type:12,data:a});let _=e.map((u,d)=>[...dt(u)]).reduce((u,d)=>u.concat(d),c);return _.push(...dt(s)),{outputs:[{dims:s,dataType:r}],dispatchGroup:{x:Math.ceil(a/64)},programUniforms:_}},getShaderSource:l}},my=(e,r)=>{let t=new cw(e.inputs,r.equation),s=t.outputDims,o=e.inputs.map((a,n)=>a.dims);e.compute(dw(o,e.inputs[0].dataType,t,s))},hy=e=>{let r=e.equation.replace(/\s+/g,"");return jt({equation:r})}}),uw,dd,_w,pw,fy,zP=Ve(()=>{"use strict";Mt(),kt(),Ct(),uw=e=>{if(!e||e.length!==2)throw new Error("Expand requires 2 input.");let r=e[0].dims,t=Array.from(e[1].getBigInt64Array(),Number),s=t.length<r.length?0:t.length-r.length,o=r.length<t.length?0:r.length-t.length;for(;s<t.length&&o<r.length;++s,++o)if(t[s]!==r[o]&&t[s]!==1&&r[o]!==1)throw new Error("Expand requires shape to be broadcastable to input")},dd=(e,r)=>{let t=e.length-r.length,s=[];for(let o=0;o<t;++o)s.push(e[o]);for(let o=0;o<r.length;++o)s.push(r[o]===1?e[o+t]:r[o]);return s},_w=(e,r)=>e.length>r.length?dd(e,r):dd(r,e),pw=e=>{let r=e[0].dims,t=Array.from(e[1].getBigInt64Array(),Number),s=_w(r,t),o=e[0].dataType,a=o===9||Me.size(r)===1,n=o===9||r.length>0&&r[r.length-1]%4===0?4:1,i=a||s.length>0&&s[s.length-1]%4===0?4:1,l=Math.ceil(Me.size(s)/i),c=u=>{let d=Fe("input",o,r.length,n),g=it("output",o,s.length,i),h;if(o===9){let x=(F,v,b="")=>`
1340
+ }`};return{name:"Einsum",shaderCache:{hint:t.equation,inputDependencies:e.map(()=>"rank")},getRunData:()=>{let c=i.filter(u=>t.symbolToInfo.has(u)).map(u=>({type:12,data:t.symbolToInfo.get(u)?.dimValue||0}));c.push({type:12,data:a});let _=e.map((u,d)=>[...dt(u)]).reduce((u,d)=>u.concat(d),c);return _.push(...dt(s)),{outputs:[{dims:s,dataType:r}],dispatchGroup:{x:Math.ceil(a/64)},programUniforms:_}},getShaderSource:l}},hy=(e,r)=>{let t=new dw(e.inputs,r.equation),s=t.outputDims,o=e.inputs.map((a,n)=>a.dims);e.compute(uw(o,e.inputs[0].dataType,t,s))},fy=e=>{let r=e.equation.replace(/\s+/g,"");return jt({equation:r})}}),_w,dd,pw,mw,gy,RP=Ve(()=>{"use strict";Mt(),kt(),Ct(),_w=e=>{if(!e||e.length!==2)throw new Error("Expand requires 2 input.");let r=e[0].dims,t=Array.from(e[1].getBigInt64Array(),Number),s=t.length<r.length?0:t.length-r.length,o=r.length<t.length?0:r.length-t.length;for(;s<t.length&&o<r.length;++s,++o)if(t[s]!==r[o]&&t[s]!==1&&r[o]!==1)throw new Error("Expand requires shape to be broadcastable to input")},dd=(e,r)=>{let t=e.length-r.length,s=[];for(let o=0;o<t;++o)s.push(e[o]);for(let o=0;o<r.length;++o)s.push(r[o]===1?e[o+t]:r[o]);return s},pw=(e,r)=>e.length>r.length?dd(e,r):dd(r,e),mw=e=>{let r=e[0].dims,t=Array.from(e[1].getBigInt64Array(),Number),s=pw(r,t),o=e[0].dataType,a=o===9||Me.size(r)===1,n=o===9||r.length>0&&r[r.length-1]%4===0?4:1,i=a||s.length>0&&s[s.length-1]%4===0?4:1,l=Math.ceil(Me.size(s)/i),c=u=>{let d=Fe("input",o,r.length,n),g=it("output",o,s.length,i),h;if(o===9){let x=(F,v,b="")=>`
1341
1341
  let outputIndices${v} = ${g.offsetToIndices(`outputOffset + ${v}u`)};
1342
1342
  let offset${v} = ${d.broadcastedIndicesToOffset(`outputIndices${v}`,g)};
1343
1343
  let index${v} = offset${v} / 4u;
@@ -1360,7 +1360,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
1360
1360
  ${u.registerUniform("vec_size","u32").declareVariables(d,g)}
1361
1361
  ${u.mainStart()}
1362
1362
  ${u.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")}
1363
- ${h}`},_=[{type:12,data:l},...dt(r,s)];return{name:"Expand",shaderCache:{hint:`${s.length};${n}${i}`,inputDependencies:["rank"]},getShaderSource:c,getRunData:()=>({outputs:[{dims:s,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:_})}},fy=e=>{uw(e.inputs),e.compute(pw(e.inputs),{inputs:[0]})}}),mw,gy,RP=Ve(()=>{"use strict";Mt(),kt(),Ct(),uu(),mw=e=>{let r=e[0].dataType,t=Me.size(e[0].dims),s=Me.size(e[1].dims),o=s%4===0,a=n=>{let i=Fe("x",r,[1],4),l=Fe("bias",r,[1],4),c=it("y",r,[1],4),_=[{name:"output_vec_size",type:"u32"},{name:"bias_size",type:"u32"}],u=g=>`
1363
+ ${h}`},_=[{type:12,data:l},...dt(r,s)];return{name:"Expand",shaderCache:{hint:`${s.length};${n}${i}`,inputDependencies:["rank"]},getShaderSource:c,getRunData:()=>({outputs:[{dims:s,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:_})}},gy=e=>{_w(e.inputs),e.compute(mw(e.inputs),{inputs:[0]})}}),hw,My,NP=Ve(()=>{"use strict";Mt(),kt(),Ct(),uu(),hw=e=>{let r=e[0].dataType,t=Me.size(e[0].dims),s=Me.size(e[1].dims),o=s%4===0,a=n=>{let i=Fe("x",r,[1],4),l=Fe("bias",r,[1],4),c=it("y",r,[1],4),_=[{name:"output_vec_size",type:"u32"},{name:"bias_size",type:"u32"}],u=g=>`
1364
1364
  let bias${g}_offset: u32 = (global_idx * 4 + ${g}) % uniforms.bias_size;
1365
1365
  let bias${g} = ${l.getByOffset(`bias${g}_offset / 4`)}[bias${g}_offset % 4];`,d=o?`
1366
1366
  let bias = ${l.getByOffset("global_idx % (uniforms.bias_size / 4)")};`:`${u(0)}${u(1)}${u(2)}${u(3)}
@@ -1368,14 +1368,14 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
1368
1368
 
1369
1369
  ${Rd(Ur(r))}
1370
1370
 
1371
- ${n.mainStart(ma)}
1371
+ ${n.mainStart(ha)}
1372
1372
  ${n.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_vec_size")}
1373
1373
 
1374
1374
  let x = ${i.getByOffset("global_idx")};
1375
1375
  ${d}
1376
1376
  let x_in = x + bias;
1377
1377
  ${c.setByOffset("global_idx",Nd("x_in"))}
1378
- }`};return{name:"FastGeluWithBias",shaderCache:{hint:`${o}`,inputDependencies:["type","type"]},getShaderSource:a,getRunData:n=>({outputs:[{dims:n[0].dims,dataType:n[0].dataType}],programUniforms:[{type:12,data:Math.ceil(t/4)},{type:12,data:s}],dispatchGroup:{x:Math.ceil(t/ma/4)}})}},gy=e=>{e.inputs.length<2||Me.size(e.inputs[1].dims)===0?Bx(e):e.compute(mw(e.inputs))}}),hw,fw,My,wy,NP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),hw=e=>{if(!e||e.length!==2)throw new Error("Gather requires 2 inputs.")},fw=(e,r)=>{let t=e[0].dims,s=e[1].dims,o=t.length,a=Me.normalizeAxis(r.axis,o),n=t.slice(0);n.splice(a,1,...s);let i=t[a],l=e[0].dataType===9?4:1,c=Math.ceil(Me.size(n)/l),_=[{type:12,data:c},{type:6,data:i},{type:12,data:a},...dt(e[0].dims,e[1].dims,n)],u=d=>{let g=Fe("data",e[0].dataType,e[0].dims.length,l),h=Fe("inputIndices",e[1].dataType,e[1].dims.length),x=it("output",e[0].dataType,n.length,l),F=b=>{let C=s.length,y=`var indicesIndices${b} = ${h.type.indices}(0);`;for(let P=0;P<C;P++)y+=`${C>1?`indicesIndices${b}[${P}]`:`indicesIndices${b}`} = ${n.length>1?`outputIndices${b}[uniforms.axis + ${P}]`:`outputIndices${b}`};`;y+=`
1378
+ }`};return{name:"FastGeluWithBias",shaderCache:{hint:`${o}`,inputDependencies:["type","type"]},getShaderSource:a,getRunData:n=>({outputs:[{dims:n[0].dims,dataType:n[0].dataType}],programUniforms:[{type:12,data:Math.ceil(t/4)},{type:12,data:s}],dispatchGroup:{x:Math.ceil(t/ha/4)}})}},My=e=>{e.inputs.length<2||Me.size(e.inputs[1].dims)===0?zx(e):e.compute(hw(e.inputs))}}),fw,gw,wy,by,jP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),fw=e=>{if(!e||e.length!==2)throw new Error("Gather requires 2 inputs.")},gw=(e,r)=>{let t=e[0].dims,s=e[1].dims,o=t.length,a=Me.normalizeAxis(r.axis,o),n=t.slice(0);n.splice(a,1,...s);let i=t[a],l=e[0].dataType===9?4:1,c=Math.ceil(Me.size(n)/l),_=[{type:12,data:c},{type:6,data:i},{type:12,data:a},...dt(e[0].dims,e[1].dims,n)],u=d=>{let g=Fe("data",e[0].dataType,e[0].dims.length,l),h=Fe("inputIndices",e[1].dataType,e[1].dims.length),x=it("output",e[0].dataType,n.length,l),F=b=>{let C=s.length,y=`var indicesIndices${b} = ${h.type.indices}(0);`;for(let P=0;P<C;P++)y+=`${C>1?`indicesIndices${b}[${P}]`:`indicesIndices${b}`} = ${n.length>1?`outputIndices${b}[uniforms.axis + ${P}]`:`outputIndices${b}`};`;y+=`
1379
1379
  var idx${b} = ${h.getByIndices(`indicesIndices${b}`)};
1380
1380
  if (idx${b} < 0) {
1381
1381
  idx${b} = idx${b} + uniforms.axisDimLimit;
@@ -1406,7 +1406,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
1406
1406
  ${d.mainStart()}
1407
1407
  ${d.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")}
1408
1408
  ${v}
1409
- }`};return{name:"Gather",shaderCache:{hint:r.cacheKey,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:n,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(c/64)},programUniforms:_}),getShaderSource:u}},My=e=>jt({axis:e.axis}),wy=(e,r)=>{let t=e.inputs;hw(t),e.compute(fw(e.inputs,r))}}),gw,by,vy,jP=Ve(()=>{"use strict";Mt(),kt(),Ct(),gw=(e,r,t,s,o,a,n,i,l)=>{let c=[{type:12,data:a},{type:12,data:s},{type:12,data:o},{type:12,data:t},{type:12,data:n},{type:12,data:i},{type:12,data:l}],_=[a];c.push(...dt(r.dims,_));let u=d=>{let g=Fe("indices_data",r.dataType,r.dims.length),h=it("input_slice_offsets_data",12,1,1),x=[g,h],F=[{name:"output_size",type:"u32"},{name:"batch_dims",type:"u32"},{name:"input_dims",type:"u32",length:o.length},{name:"sizes_from_slice_dims_data",type:"u32",length:t.length},{name:"num_slices_per_batch",type:"u32"},{name:"input_batch_stride",type:"u32"},{name:"num_slice_dims",type:"u32"}];return`
1409
+ }`};return{name:"Gather",shaderCache:{hint:r.cacheKey,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:n,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(c/64)},programUniforms:_}),getShaderSource:u}},wy=e=>jt({axis:e.axis}),by=(e,r)=>{let t=e.inputs;fw(t),e.compute(gw(e.inputs,r))}}),Mw,vy,xy,VP=Ve(()=>{"use strict";Mt(),kt(),Ct(),Mw=(e,r,t,s,o,a,n,i,l)=>{let c=[{type:12,data:a},{type:12,data:s},{type:12,data:o},{type:12,data:t},{type:12,data:n},{type:12,data:i},{type:12,data:l}],_=[a];c.push(...dt(r.dims,_));let u=d=>{let g=Fe("indices_data",r.dataType,r.dims.length),h=it("input_slice_offsets_data",12,1,1),x=[g,h],F=[{name:"output_size",type:"u32"},{name:"batch_dims",type:"u32"},{name:"input_dims",type:"u32",length:o.length},{name:"sizes_from_slice_dims_data",type:"u32",length:t.length},{name:"num_slices_per_batch",type:"u32"},{name:"input_batch_stride",type:"u32"},{name:"num_slice_dims",type:"u32"}];return`
1410
1410
  ${d.registerUniforms(F).declareVariables(...x)}
1411
1411
  ${d.mainStart()}
1412
1412
  ${d.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
@@ -1425,13 +1425,13 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
1425
1425
  }
1426
1426
 
1427
1427
  input_slice_offsets_data[global_idx] = base_offset + u32(relative_slice_offset);
1428
- }`};return e.compute({name:"computeSliceOffsets",shaderCache:{hint:`${o.length}_${t.length}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:_,dataType:e.inputs[1].dataType}],dispatchGroup:{x:Math.ceil(a/64)},programUniforms:c}),getShaderSource:u},{inputs:[r],outputs:[-1]})[0]},by=(e,r)=>{let t=e.inputs,s=t[0].dims,o=t[0].dataType,a=t[1].dims,n=a[a.length-1],i=Me.sizeToDimension(a,a.length-1),l=Me.sizeFromDimension(s,r.batchDims+n),c=Me.sizeToDimension(s,r.batchDims),_=Me.sizeFromDimension(s,r.batchDims),u=i/c,d=new Array(n),g=l;for(let y=0;y<n;++y)d[n-1-y]=g,g*=s[r.batchDims+n-1-y];let h=gw(e,t[1],d,r.batchDims,s,i,u,_,n),x=r.batchDims+n;if(x>s.length)throw new Error("last dimension of indices must not be larger than rank of input tensor");let F=a.slice(0,-1).concat(s.slice(x)),v=Me.size(F),b=[{type:12,data:v},{type:12,data:l},...dt(t[0].dims,h.dims,F)],C=y=>{let P=Fe("data",t[0].dataType,t[0].dims.length),I=Fe("slice_offsets",12,h.dims.length),f=it("output",t[0].dataType,F.length);return`
1428
+ }`};return e.compute({name:"computeSliceOffsets",shaderCache:{hint:`${o.length}_${t.length}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:_,dataType:e.inputs[1].dataType}],dispatchGroup:{x:Math.ceil(a/64)},programUniforms:c}),getShaderSource:u},{inputs:[r],outputs:[-1]})[0]},vy=(e,r)=>{let t=e.inputs,s=t[0].dims,o=t[0].dataType,a=t[1].dims,n=a[a.length-1],i=Me.sizeToDimension(a,a.length-1),l=Me.sizeFromDimension(s,r.batchDims+n),c=Me.sizeToDimension(s,r.batchDims),_=Me.sizeFromDimension(s,r.batchDims),u=i/c,d=new Array(n),g=l;for(let y=0;y<n;++y)d[n-1-y]=g,g*=s[r.batchDims+n-1-y];let h=Mw(e,t[1],d,r.batchDims,s,i,u,_,n),x=r.batchDims+n;if(x>s.length)throw new Error("last dimension of indices must not be larger than rank of input tensor");let F=a.slice(0,-1).concat(s.slice(x)),v=Me.size(F),b=[{type:12,data:v},{type:12,data:l},...dt(t[0].dims,h.dims,F)],C=y=>{let P=Fe("data",t[0].dataType,t[0].dims.length),I=Fe("slice_offsets",12,h.dims.length),f=it("output",t[0].dataType,F.length);return`
1429
1429
  ${y.registerUniform("output_size","u32").registerUniform("slice_size","u32").declareVariables(P,I,f)}
1430
1430
  ${y.mainStart()}
1431
1431
  ${y.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
1432
1432
  let slice_offset = slice_offsets[global_idx / uniforms.slice_size];
1433
1433
  output[global_idx] = data[u32(slice_offset) + global_idx % uniforms.slice_size];
1434
- }`};e.compute({name:"GatherND",shaderCache:{hint:r.cacheKey,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:F,dataType:o}],dispatchGroup:{x:Math.ceil(v/64)},programUniforms:b}),getShaderSource:C},{inputs:[t[0],h]})},vy=e=>({batchDims:e.batch_dims,cacheKey:""})}),Mw,ww,xy,yy,VP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),Mw=(e,r)=>{if(e.length<3||e.length>4)throw new Error("GatherBlockQuantized requires 3 or 4 inputs.");let t=Me.normalizeAxis(r.quantizeAxis,e[0].dims.length),s=r.blockSize,o=e[0],a=e[2],n=e.length===4?e[3]:void 0;if(a.dims.length!==o.dims.length||!o.dims.map((i,l)=>l===t?Math.ceil(i/s)===a.dims[l]:i===a.dims[l]).reduce((i,l)=>i&&l,!0))throw new Error("Scales must have the same rank as the input tensor and the dims should match except on gatherAxis.");if(n){if(n.dataType!==o.dataType)throw new Error("Zero point must have the same data type as the input tensor.");if(n.dims.length!==a.dims.length||!n.dims.map((i,l)=>i===a.dims[l]).reduce((i,l)=>i&&l,!0))throw new Error("Zero point must have the same rank as the input tensor and the dims should match except on quantizeAxis.")}},ww=(e,r)=>{let t=e[0].dims,s=e[1].dims,o=t.length,a=Me.normalizeAxis(r.gatherAxis,o),n=Me.normalizeAxis(r.quantizeAxis,o),i=t.slice(0);i.splice(a,1,...s);let l=Me.size(i),c=e[2].dataType,_=e[0].dataType===22,u=[{type:12,data:l},{type:12,data:n},{type:12,data:a},{type:12,data:r.blockSize},...dt(...e.map((g,h)=>g.dims),i)],d=g=>{let h=Fe("data",e[0].dataType,e[0].dims.length),x=Fe("inputIndices",e[1].dataType,e[1].dims.length),F=Fe("scales",e[2].dataType,e[2].dims.length),v=e.length>3?Fe("zeroPoint",e[3].dataType,e[3].dims.length):void 0,b=it("output",c,i.length),C=[h,x,F];v&&C.push(v);let y=[{name:"output_size",type:"u32"},{name:"quantize_axis",type:"u32"},{name:"gather_axis",type:"u32"},{name:"block_size",type:"u32"}];return`
1434
+ }`};e.compute({name:"GatherND",shaderCache:{hint:r.cacheKey,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:F,dataType:o}],dispatchGroup:{x:Math.ceil(v/64)},programUniforms:b}),getShaderSource:C},{inputs:[t[0],h]})},xy=e=>({batchDims:e.batch_dims,cacheKey:""})}),ww,bw,yy,Ty,WP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),ww=(e,r)=>{if(e.length<3||e.length>4)throw new Error("GatherBlockQuantized requires 3 or 4 inputs.");let t=Me.normalizeAxis(r.quantizeAxis,e[0].dims.length),s=r.blockSize,o=e[0],a=e[2],n=e.length===4?e[3]:void 0;if(a.dims.length!==o.dims.length||!o.dims.map((i,l)=>l===t?Math.ceil(i/s)===a.dims[l]:i===a.dims[l]).reduce((i,l)=>i&&l,!0))throw new Error("Scales must have the same rank as the input tensor and the dims should match except on gatherAxis.");if(n){if(n.dataType!==o.dataType)throw new Error("Zero point must have the same data type as the input tensor.");if(n.dims.length!==a.dims.length||!n.dims.map((i,l)=>i===a.dims[l]).reduce((i,l)=>i&&l,!0))throw new Error("Zero point must have the same rank as the input tensor and the dims should match except on quantizeAxis.")}},bw=(e,r)=>{let t=e[0].dims,s=e[1].dims,o=t.length,a=Me.normalizeAxis(r.gatherAxis,o),n=Me.normalizeAxis(r.quantizeAxis,o),i=t.slice(0);i.splice(a,1,...s);let l=Me.size(i),c=e[2].dataType,_=e[0].dataType===22,u=[{type:12,data:l},{type:12,data:n},{type:12,data:a},{type:12,data:r.blockSize},...dt(...e.map((g,h)=>g.dims),i)],d=g=>{let h=Fe("data",e[0].dataType,e[0].dims.length),x=Fe("inputIndices",e[1].dataType,e[1].dims.length),F=Fe("scales",e[2].dataType,e[2].dims.length),v=e.length>3?Fe("zeroPoint",e[3].dataType,e[3].dims.length):void 0,b=it("output",c,i.length),C=[h,x,F];v&&C.push(v);let y=[{name:"output_size",type:"u32"},{name:"quantize_axis",type:"u32"},{name:"gather_axis",type:"u32"},{name:"block_size",type:"u32"}];return`
1435
1435
  ${g.registerUniforms(y).declareVariables(...C,b)}
1436
1436
  ${g.mainStart()}
1437
1437
  let output_indices = ${b.offsetToIndices("global_idx")};
@@ -1476,8 +1476,8 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
1476
1476
  let zero_point = zero_point_vec[zero_point_index / 2];`:"var zero_point = 0"};
1477
1477
  let dequantized_data = ${Ur(c)}(quantized_data - zero_point) * scale;
1478
1478
  ${b.setByOffset("global_idx","dequantized_data")};
1479
- }`};return{name:"GatherBlockQuantized",shaderCache:{hint:`${r.cacheKey};${e.filter((g,h)=>h!==1).map(g=>g.dims.join("_")).join(";")}`,inputDependencies:Array.from({length:e.length},(g,h)=>"rank")},getRunData:()=>({outputs:[{dims:i,dataType:c}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:u}),getShaderSource:d}},xy=(e,r)=>{let t=e.inputs;Mw(t,r),e.compute(ww(e.inputs,r))},yy=e=>jt({blockSize:e.blockSize,gatherAxis:e.gatherAxis,quantizeAxis:e.quantizeAxis})}),bw,vw,Ty,Py,WP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),bw=e=>{if(!e||e.length!==2)throw new Error("GatherElements requires 2 inputs.");if(e[0].dims.length<1)throw new Error("GatherElements requires that the data input be rank >= 1.");if(e[0].dims.length!==e[1].dims.length)throw new Error(`GatherElements requires that the data input and
1480
- indices input tensors be of same rank.`)},vw=(e,r)=>{let t=e[0].dims,s=e[0].dataType,o=t.length,a=e[1].dims,n=e[1].dataType,i=Me.normalizeAxis(r.axis,o),l=t[i],c=a.slice(0),_=Me.size(c),u=Fe("input",s,o),d=Fe("indicesInput",n,a.length),g=it("output",s,c.length),h=[{type:12,data:_},{type:6,data:l},{type:12,data:i}];return h.push(...dt(t,a,c)),{name:"GatherElements",shaderCache:{inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:c,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(_/64)},programUniforms:h}),getShaderSource:x=>`
1479
+ }`};return{name:"GatherBlockQuantized",shaderCache:{hint:`${r.cacheKey};${e.filter((g,h)=>h!==1).map(g=>g.dims.join("_")).join(";")}`,inputDependencies:Array.from({length:e.length},(g,h)=>"rank")},getRunData:()=>({outputs:[{dims:i,dataType:c}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:u}),getShaderSource:d}},yy=(e,r)=>{let t=e.inputs;ww(t,r),e.compute(bw(e.inputs,r))},Ty=e=>jt({blockSize:e.blockSize,gatherAxis:e.gatherAxis,quantizeAxis:e.quantizeAxis})}),vw,xw,Py,Ey,UP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),vw=e=>{if(!e||e.length!==2)throw new Error("GatherElements requires 2 inputs.");if(e[0].dims.length<1)throw new Error("GatherElements requires that the data input be rank >= 1.");if(e[0].dims.length!==e[1].dims.length)throw new Error(`GatherElements requires that the data input and
1480
+ indices input tensors be of same rank.`)},xw=(e,r)=>{let t=e[0].dims,s=e[0].dataType,o=t.length,a=e[1].dims,n=e[1].dataType,i=Me.normalizeAxis(r.axis,o),l=t[i],c=a.slice(0),_=Me.size(c),u=Fe("input",s,o),d=Fe("indicesInput",n,a.length),g=it("output",s,c.length),h=[{type:12,data:_},{type:6,data:l},{type:12,data:i}];return h.push(...dt(t,a,c)),{name:"GatherElements",shaderCache:{inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:c,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(_/64)},programUniforms:h}),getShaderSource:x=>`
1481
1481
  ${x.registerUniform("outputSize","u32").registerUniform("axisDimLimit","i32").registerUniform("axis","u32").declareVariables(u,d,g)}
1482
1482
  ${x.mainStart()}
1483
1483
  ${x.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")}
@@ -1493,7 +1493,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
1493
1493
  let value = ${u.getByIndices("inputIndices")};
1494
1494
 
1495
1495
  ${g.setByOffset("global_idx","value")};
1496
- }`}},Ty=e=>jt({axis:e.axis}),Py=(e,r)=>{let t=e.inputs;bw(t),e.compute(vw(e.inputs,r))}}),xw,yw,Ey,ky,UP=Ve(()=>{"use strict";Mt(),kt(),Ct(),xw=e=>{if(!e)throw new Error("Input is missing");if(e.length<2||e.length>3)throw new Error("Invaid input number.");if(e.length===3&&e[2].dims.length>2)throw new Error("Invalid input shape of C");if(e[0].dataType!==e[1].dataType||e.length===3&&e[0].dataType!==e[2].dataType)throw new Error("Input types are mismatched")},yw=(e,r)=>{let t=e[0].dims.slice(),s=e[1].dims.slice(),[o,a,n]=Tv.getShapeOfGemmResult(t,r.transA,s,r.transB,e.length===3?e[2].dims:void 0),i=[o,a];if(!i)throw new Error("Can't use gemm on the given tensors");let l=16,c=Math.ceil(a/l),_=Math.ceil(o/l),u=!0,d=Me.size(i),g=[{type:12,data:u?c:d},{type:12,data:o},{type:12,data:a},{type:12,data:n},{type:1,data:r.alpha},{type:1,data:r.beta}],h=["type","type"];e.length===3&&(g.push(...dt(e[2].dims)),h.push("rank")),g.push(...dt(i));let x=v=>{let b="";r.transA&&r.transB?b="value += a[k * uniforms.M + m] * b[n * uniforms.K + k];":r.transA&&!r.transB?b="value += a[k * uniforms.M + m] * b[k * uniforms.N + n];":!r.transA&&r.transB?b="value += a[m * uniforms.K + k] * b[n * uniforms.K + k];":!r.transA&&!r.transB&&(b="value += a[m * uniforms.K + k] * b[k * uniforms.N + n];");let C=r.alpha===1?"":"value *= uniforms.alpha;",y=Fe("a",e[0].dataType,e[0].dims),P=Fe("b",e[1].dataType,e[1].dims),I=y.type.value,f=null,E=[y,P];e.length===3&&(f=Fe("c",e[2].dataType,e[2].dims.length),E.push(f));let D=it("output",e[0].dataType,i.length);E.push(D);let O=[{name:"output_size",type:"u32"},{name:"M",type:"u32"},{name:"N",type:"u32"},{name:"K",type:"u32"},{name:"alpha",type:"f32"},{name:"beta",type:"f32"}];return`
1496
+ }`}},Py=e=>jt({axis:e.axis}),Ey=(e,r)=>{let t=e.inputs;vw(t),e.compute(xw(e.inputs,r))}}),yw,Tw,ky,Cy,GP=Ve(()=>{"use strict";Mt(),kt(),Ct(),yw=e=>{if(!e)throw new Error("Input is missing");if(e.length<2||e.length>3)throw new Error("Invaid input number.");if(e.length===3&&e[2].dims.length>2)throw new Error("Invalid input shape of C");if(e[0].dataType!==e[1].dataType||e.length===3&&e[0].dataType!==e[2].dataType)throw new Error("Input types are mismatched")},Tw=(e,r)=>{let t=e[0].dims.slice(),s=e[1].dims.slice(),[o,a,n]=Pv.getShapeOfGemmResult(t,r.transA,s,r.transB,e.length===3?e[2].dims:void 0),i=[o,a];if(!i)throw new Error("Can't use gemm on the given tensors");let l=16,c=Math.ceil(a/l),_=Math.ceil(o/l),u=!0,d=Me.size(i),g=[{type:12,data:u?c:d},{type:12,data:o},{type:12,data:a},{type:12,data:n},{type:1,data:r.alpha},{type:1,data:r.beta}],h=["type","type"];e.length===3&&(g.push(...dt(e[2].dims)),h.push("rank")),g.push(...dt(i));let x=v=>{let b="";r.transA&&r.transB?b="value += a[k * uniforms.M + m] * b[n * uniforms.K + k];":r.transA&&!r.transB?b="value += a[k * uniforms.M + m] * b[k * uniforms.N + n];":!r.transA&&r.transB?b="value += a[m * uniforms.K + k] * b[n * uniforms.K + k];":!r.transA&&!r.transB&&(b="value += a[m * uniforms.K + k] * b[k * uniforms.N + n];");let C=r.alpha===1?"":"value *= uniforms.alpha;",y=Fe("a",e[0].dataType,e[0].dims),P=Fe("b",e[1].dataType,e[1].dims),I=y.type.value,f=null,E=[y,P];e.length===3&&(f=Fe("c",e[2].dataType,e[2].dims.length),E.push(f));let D=it("output",e[0].dataType,i.length);E.push(D);let O=[{name:"output_size",type:"u32"},{name:"M",type:"u32"},{name:"N",type:"u32"},{name:"K",type:"u32"},{name:"alpha",type:"f32"},{name:"beta",type:"f32"}];return`
1497
1497
  ${v.registerUniforms(O).declareVariables(...E)}
1498
1498
 
1499
1499
  ${v.mainStart()}
@@ -1602,7 +1602,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
1602
1602
  if (m < uniforms.M && n < uniforms.N) {
1603
1603
  output[m * uniforms.N + n] = value;
1604
1604
  }
1605
- }`};return u?{name:"GemmShared",shaderCache:{hint:`${r.cacheKey}`,inputDependencies:h},getRunData:()=>({outputs:[{dims:i,dataType:e[0].dataType}],dispatchGroup:{x:c*_},programUniforms:g}),getShaderSource:F}:{name:"Gemm",shaderCache:{hint:`${r.cacheKey}`,inputDependencies:h},getRunData:()=>({outputs:[{dims:i,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(d/64)},programUniforms:g}),getShaderSource:x}},Ey=e=>{let r=e.transA,t=e.transB,s=e.alpha,o=e.beta;return{transA:r,transB:t,alpha:s,beta:o,cacheKey:`${e.transA};${e.transB};${e.alpha===1}`}},ky=(e,r)=>{xw(e.inputs),e.compute(yw(e.inputs,r))}}),Bs,Qs,Io,Ao,Tw,Pw,Ew,kw,Cw,Sw,Fw,Iw,Cy,Sy,GP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),[Bs,Qs,Io,Ao]=[0,1,2,3],Tw=e=>{if(e[0].dims.length!==4)throw new Error("only 4-D tensor is supported.");if(e[0].dims.length!==e[1].dims.length)throw new Error("input dimensions must be equal to grid dimensions");if(e[0].dims.length-2!==e[1].dims[e[1].dims.length-1])throw new Error(`last dimension of grid must be equal to ${e[0].dims.length-2}`);if(e[0].dims[0]!==e[1].dims[0])throw new Error("grid batch size must match input batch size")},Pw=`
1605
+ }`};return u?{name:"GemmShared",shaderCache:{hint:`${r.cacheKey}`,inputDependencies:h},getRunData:()=>({outputs:[{dims:i,dataType:e[0].dataType}],dispatchGroup:{x:c*_},programUniforms:g}),getShaderSource:F}:{name:"Gemm",shaderCache:{hint:`${r.cacheKey}`,inputDependencies:h},getRunData:()=>({outputs:[{dims:i,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(d/64)},programUniforms:g}),getShaderSource:x}},ky=e=>{let r=e.transA,t=e.transB,s=e.alpha,o=e.beta;return{transA:r,transB:t,alpha:s,beta:o,cacheKey:`${e.transA};${e.transB};${e.alpha===1}`}},Cy=(e,r)=>{yw(e.inputs),e.compute(Tw(e.inputs,r))}}),Bs,Qs,Ao,$o,Pw,Ew,kw,Cw,Sw,Fw,Iw,Aw,Sy,Fy,KP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),[Bs,Qs,Ao,$o]=[0,1,2,3],Pw=e=>{if(e[0].dims.length!==4)throw new Error("only 4-D tensor is supported.");if(e[0].dims.length!==e[1].dims.length)throw new Error("input dimensions must be equal to grid dimensions");if(e[0].dims.length-2!==e[1].dims[e[1].dims.length-1])throw new Error(`last dimension of grid must be equal to ${e[0].dims.length-2}`);if(e[0].dims[0]!==e[1].dims[0])throw new Error("grid batch size must match input batch size")},Ew=`
1606
1606
  fn gs_get_cubic_coeffs(x: f32) -> vec4<f32> {
1607
1607
  let cubic_alpha = -0.75f;
1608
1608
  let x_abs = abs(x);
@@ -1613,7 +1613,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
1613
1613
  coeffs[3] = (((cubic_alpha * (2 - x_abs) - 5 * cubic_alpha) * (2 - x_abs) + 8 * cubic_alpha) * (2 - x_abs) - 4 * cubic_alpha);
1614
1614
  return coeffs;
1615
1615
  }
1616
- `,Ew=e=>`
1616
+ `,kw=e=>`
1617
1617
  fn gs_bicubic_interpolate(p: mat4x4<${e}>, x: f32, y: f32) -> ${e} {
1618
1618
  var v: vec4<f32>;
1619
1619
  var coeffs = gs_get_cubic_coeffs(x);
@@ -1624,7 +1624,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
1624
1624
  let pixel = ${e}(coeffs[0] * v[0] + coeffs[1] * v[1] + coeffs[2] * v[2] + coeffs[3] * v[3]);
1625
1625
  return pixel;
1626
1626
  }
1627
- `,kw=e=>`
1627
+ `,Cw=e=>`
1628
1628
  fn gs_denormalize(n: f32, length: i32) -> f32 {
1629
1629
  ${e.alignCorners===0?`
1630
1630
  // alignCorners: false => [-1, 1] to [-0.5, length - 0.5]
@@ -1634,7 +1634,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
1634
1634
  return (n + 1.0) / 2.0 * (f32(length - 1));
1635
1635
  `}
1636
1636
  }
1637
- `,Cw=e=>`
1637
+ `,Sw=e=>`
1638
1638
  ${e.paddingMode==="reflection"?`
1639
1639
  fn gs_reflect(x: i32, x_min: f32, x_max: f32) -> u32 {
1640
1640
  var dx = 0.0;
@@ -1661,28 +1661,28 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
1661
1661
  }
1662
1662
  return u32(fx);
1663
1663
  }`:""}
1664
- `,Sw=(e,r,t)=>`
1664
+ `,Fw=(e,r,t)=>`
1665
1665
  fn pixel_at_grid(r: i32, c: i32, H: i32, W: i32, batch: u32, channel: u32, border: vec4<f32>) -> ${r} {
1666
1666
  var pixel = ${r}(0);
1667
1667
  var indices = vec4<u32>(0);
1668
1668
  indices[${Bs}] = batch;
1669
1669
  indices[${Qs}] = channel;`+(()=>{switch(t.paddingMode){case"zeros":return`
1670
1670
  if (r >= 0 && r < H && c >=0 && c < W) {
1671
- indices[${Io}] = u32(r);
1672
- indices[${Ao}] = u32(c);
1671
+ indices[${Ao}] = u32(r);
1672
+ indices[${$o}] = u32(c);
1673
1673
  } else {
1674
1674
  return ${r}(0);
1675
1675
  }
1676
1676
  `;case"border":return`
1677
- indices[${Io}] = u32(clamp(r, 0, H - 1));
1678
- indices[${Ao}] = u32(clamp(c, 0, W - 1));
1677
+ indices[${Ao}] = u32(clamp(r, 0, H - 1));
1678
+ indices[${$o}] = u32(clamp(c, 0, W - 1));
1679
1679
  `;case"reflection":return`
1680
- indices[${Io}] = gs_reflect(r, border[1], border[3]);
1681
- indices[${Ao}] = gs_reflect(c, border[0], border[2]);
1680
+ indices[${Ao}] = gs_reflect(r, border[1], border[3]);
1681
+ indices[${$o}] = gs_reflect(c, border[0], border[2]);
1682
1682
  `;default:throw new Error(`padding mode ${t.paddingMode} is not supported`)}})()+`
1683
1683
  return ${e.getByIndices("indices")};
1684
1684
  }
1685
- `,Fw=(e,r,t)=>(()=>{switch(t.mode){case"nearest":return`
1685
+ `,Iw=(e,r,t)=>(()=>{switch(t.mode){case"nearest":return`
1686
1686
  let result = pixel_at_grid(i32(round(y)), i32(round(x)), H_in, W_in, indices[${Bs}], indices[${Qs}], border);
1687
1687
  `;case"bilinear":return`
1688
1688
  let x1 = i32(floor(x));
@@ -1713,18 +1713,18 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
1713
1713
  let dx = x - f32(x0 + 1);
1714
1714
  let dy = y - f32(y0 + 1);
1715
1715
  let result = gs_bicubic_interpolate(p, dx, dy);
1716
- `;default:throw new Error(`mode ${t.mode} is not supported`)}})()+`${e.setByOffset("global_idx","result")}`,Iw=(e,r)=>{let t=Fe("x",e[0].dataType,e[0].dims.length),s=[e[1].dims[0],e[1].dims[1],e[1].dims[2]],o=Fe("grid",e[1].dataType,s.length,2),a=[e[0].dims[0],e[0].dims[1],e[1].dims[1],e[1].dims[2]];r.format==="NHWC"&&(a=[e[0].dims[0],e[1].dims[1],e[1].dims[2],e[0].dims[3]],[Bs,Qs,Io,Ao]=[0,3,1,2]);let n=it("output",e[0].dataType,a.length),i=t.type.value,l=Me.size(a),c=[{type:12,data:l},...dt(e[0].dims,s,a)],_=u=>`
1716
+ `;default:throw new Error(`mode ${t.mode} is not supported`)}})()+`${e.setByOffset("global_idx","result")}`,Aw=(e,r)=>{let t=Fe("x",e[0].dataType,e[0].dims.length),s=[e[1].dims[0],e[1].dims[1],e[1].dims[2]],o=Fe("grid",e[1].dataType,s.length,2),a=[e[0].dims[0],e[0].dims[1],e[1].dims[1],e[1].dims[2]];r.format==="NHWC"&&(a=[e[0].dims[0],e[1].dims[1],e[1].dims[2],e[0].dims[3]],[Bs,Qs,Ao,$o]=[0,3,1,2]);let n=it("output",e[0].dataType,a.length),i=t.type.value,l=Me.size(a),c=[{type:12,data:l},...dt(e[0].dims,s,a)],_=u=>`
1717
1717
  ${u.registerUniform("output_size","u32").declareVariables(t,o,n)}
1718
- ${Pw}
1719
- ${Ew(i)}
1720
- ${kw(r)}
1718
+ ${Ew}
1719
+ ${kw(i)}
1721
1720
  ${Cw(r)}
1722
- ${Sw(t,i,r)}
1721
+ ${Sw(r)}
1722
+ ${Fw(t,i,r)}
1723
1723
 
1724
1724
  ${u.mainStart()}
1725
1725
  ${u.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
1726
- let H_in = i32(uniforms.x_shape[${Io}]);
1727
- let W_in = i32(uniforms.x_shape[${Ao}]);
1726
+ let H_in = i32(uniforms.x_shape[${Ao}]);
1727
+ let W_in = i32(uniforms.x_shape[${$o}]);
1728
1728
 
1729
1729
  ${r.alignCorners===0?`
1730
1730
  let x_min = -0.5;
@@ -1740,20 +1740,20 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
1740
1740
  let border = vec4<f32>(x_min, y_min, x_max, y_max);
1741
1741
 
1742
1742
  let indices = ${n.offsetToIndices("global_idx")};
1743
- var grid_indices = vec3<u32>(indices[${Bs}], indices[${Io}], indices[${Ao}]);
1743
+ var grid_indices = vec3<u32>(indices[${Bs}], indices[${Ao}], indices[${$o}]);
1744
1744
  let nxy = ${o.getByIndices("grid_indices")};
1745
1745
  var x = gs_denormalize(f32(nxy[0]), W_in);
1746
1746
  var y = gs_denormalize(f32(nxy[1]), H_in);
1747
1747
 
1748
- ${Fw(n,i,r)}
1749
- }`;return{name:"GridSample",shaderCache:{hint:`${r.cacheKey}`,inputDependencies:["type","type"]},getRunData:u=>{let d=Me.size(a);return{outputs:[{dims:a,dataType:u[0].dataType}],dispatchGroup:{x:Math.ceil(d/64)},programUniforms:c}},getShaderSource:_}},Cy=(e,r)=>{Tw(e.inputs),e.compute(Iw(e.inputs,r))},Sy=e=>jt({alignCorners:e.align_corners,mode:e.mode,paddingMode:e.padding_mode,format:e.format})}),qr,Aw,Fy,ud,$w,dn,Iy,Ay=Ve(()=>{"use strict";Mt(),kt(),hr(),iu(),du(),Ct(),po(),qr=(e,r)=>e.length>r&&e[r].dims.length>0?e[r]:void 0,Aw=(e,r)=>{let t=e[0],s=qr(e,1),o=qr(e,2),a=qr(e,3),n=qr(e,4),i=qr(e,5),l=qr(e,6),c=qr(e,7);if(t.dims.length!==3&&t.dims.length!==5)throw new Error("Input query is expected to have 3 or 5 dimensions");let _=t.dims[0],u=t.dims[1],d=t.dims.length===3?t.dims[2]:r.numHeads*t.dims[4],g=u,h=0,x=0,F=Math.floor(d/r.numHeads);if(l&&c&&Me.size(l.dims)&&Me.size(c.dims)){if(l.dims.length!==4)throw new Error('Input "past_key" is expected to have 4 dimensions');if(l.dims[0]!==_||l.dims[1]!==r.numHeads||l.dims[3]!==F)throw new Error('Input "past_key" shape (batch_size, num_heads, past_sequence_length, head_size)');if(c.dims[0]!==_||c.dims[1]!==r.numHeads||c.dims[3]!==F)throw new Error('Input "past_value" shape (batch_size, num_heads, past_sequence_length, head_size)');if(l.dims[2]!==c.dims[2])throw new Error('Input "past_key" and "past_value" shall have same dim 2 (past_sequence_length)');if(c.dims.length!==4)throw new Error('Input "past_value" is expected to have 4 dimensions');h=l.dims[2],x=l.dims[2]}else if(l&&Me.size(l.dims)||c&&Me.size(c.dims))throw new Error('Input "past_key" and "past_value" shall be both present or both absent');let v;if(s&&Me.size(s.dims)>0){if(t.dims.length!==3)throw new Error('Input "query" is expected to have 3 dimensions when key is given');if(s.dims.length<3||s.dims.length>5)throw new Error('Input "key" is expected to have 3, 4, or 5 dimensions');if(t.dims[0]!==s.dims[0])throw new Error('Input "query" and "key" shall have same dim 0 (batch size)');if(s.dims.length===3){if(s.dims[2]!==t.dims[2])throw new Error('Input "query" and "key" shall have same dim 2 (hidden_size)');v=2,g=s.dims[1]}else if(s.dims.length===5){if(s.dims[2]!==r.numHeads||s.dims[3]!==2||s.dims[4]!==F)throw new Error('Expect "key" shape (batch_size, kv_sequence_length, num_heads, 2, head_size) for packed kv');if(o)throw new Error('Expect "value" be none when "key" has packed kv format.');v=5,g=s.dims[1]}else{if(s.dims[1]!==r.numHeads||s.dims[3]!==F)throw new Error('Expect "key" shape (batch_size, num_heads, kv_sequence_length, head_size) for past_key');v=0,g=s.dims[2]}}else{if(t.dims.length!==5)throw new Error('Input "query" is expected to have 5 dimensions when key is empty');if(t.dims[2]!==r.numHeads||t.dims[3]!==3)throw new Error('Expect "query" shape (batch_size, kv_sequence_length, num_heads, 3, head_size) for packed kv');v=3}if(a&&Me.size(a.dims)>0){if(a.dims.length!==1)throw new Error('Input "bias" is expected to have 1 dimension');if(s&&s.dims.length===5&&s.dims[3]===2)throw new Error("bias is not allowed for packed kv.")}let b=h+g,C=0;if(n&&Me.size(n.dims)>0){C=8;let f=n.dims;throw f.length===1?f[0]===_?C=1:f[0]===3*_+2&&(C=3):f.length===2&&f[0]===_&&f[1]===b&&(C=5),C===8?new Error('Input "key_padding_mask" shape shall be (batch_size) or (batch_size, total_sequence_length)'):new Error("Mask not supported")}let y=!1,P=d;if(o&&Me.size(o.dims)>0){if(o.dims.length!==3&&o.dims.length!==4)throw new Error('Input "value" is expected to have 3 or 4 dimensions');if(t.dims[0]!==o.dims[0])throw new Error('Input "query" and "value" shall have same dim 0 (batch_size)');if(o.dims.length===3){if(g!==o.dims[1])throw new Error('Input "key" and "value" shall have the same dim 1 (kv_sequence_length)');P=o.dims[2]}else{if(g!==o.dims[2])throw new Error('Input "key" and "value" shall have the same dim 2 (kv_sequence_length)');P=o.dims[1]*o.dims[3],y=!0}}let I=!1;if(n&&Me.size(n.dims)>0)throw new Error("Key padding mask is not supported");if(i&&Me.size(i.dims)>0){if(i.dims.length!==4)throw new Error('Input "attention_bias" is expected to have 4 dimensions');if(i.dims[0]!==_||i.dims[1]!==r.numHeads||i.dims[2]!==u||i.dims[3]!==b)throw new Error('Expect "attention_bias" shape (batch_size, num_heads, sequence_length, total_sequence_length)')}return{batchSize:_,sequenceLength:u,pastSequenceLength:h,kvSequenceLength:g,totalSequenceLength:b,maxSequenceLength:x,inputHiddenSize:0,hiddenSize:d,vHiddenSize:P,headSize:F,vHeadSize:Math.floor(P/r.numHeads),numHeads:r.numHeads,isUnidirectional:!1,pastPresentShareBuffer:!1,maskFilterValue:r.maskFilterValue,maskType:C,scale:r.scale,broadcastResPosBias:I,passPastInKv:y,qkvFormat:v}},Fy=e=>jt({...e}),ud=jt({perm:[0,2,1,3]}),$w=(e,r,t,s,o,a,n)=>{let i=[s,o,a],l=Me.size(i),c=[{type:12,data:l},{type:12,data:n},{type:12,data:a}],_=u=>{let d=it("qkv_with_bias",r.dataType,i),g=Fe("qkv",r.dataType,i),h=Fe("bias",t.dataType,i),x=[{name:"output_size",type:"u32"},{name:"bias_offset",type:"u32"},{name:"hidden_size",type:"u32"}];return`
1748
+ ${Iw(n,i,r)}
1749
+ }`;return{name:"GridSample",shaderCache:{hint:`${r.cacheKey}`,inputDependencies:["type","type"]},getRunData:u=>{let d=Me.size(a);return{outputs:[{dims:a,dataType:u[0].dataType}],dispatchGroup:{x:Math.ceil(d/64)},programUniforms:c}},getShaderSource:_}},Sy=(e,r)=>{Pw(e.inputs),e.compute(Aw(e.inputs,r))},Fy=e=>jt({alignCorners:e.align_corners,mode:e.mode,paddingMode:e.padding_mode,format:e.format})}),qr,$w,Iy,ud,Dw,un,Ay,$y=Ve(()=>{"use strict";Mt(),kt(),hr(),iu(),du(),Ct(),po(),qr=(e,r)=>e.length>r&&e[r].dims.length>0?e[r]:void 0,$w=(e,r)=>{let t=e[0],s=qr(e,1),o=qr(e,2),a=qr(e,3),n=qr(e,4),i=qr(e,5),l=qr(e,6),c=qr(e,7);if(t.dims.length!==3&&t.dims.length!==5)throw new Error("Input query is expected to have 3 or 5 dimensions");let _=t.dims[0],u=t.dims[1],d=t.dims.length===3?t.dims[2]:r.numHeads*t.dims[4],g=u,h=0,x=0,F=Math.floor(d/r.numHeads);if(l&&c&&Me.size(l.dims)&&Me.size(c.dims)){if(l.dims.length!==4)throw new Error('Input "past_key" is expected to have 4 dimensions');if(l.dims[0]!==_||l.dims[1]!==r.numHeads||l.dims[3]!==F)throw new Error('Input "past_key" shape (batch_size, num_heads, past_sequence_length, head_size)');if(c.dims[0]!==_||c.dims[1]!==r.numHeads||c.dims[3]!==F)throw new Error('Input "past_value" shape (batch_size, num_heads, past_sequence_length, head_size)');if(l.dims[2]!==c.dims[2])throw new Error('Input "past_key" and "past_value" shall have same dim 2 (past_sequence_length)');if(c.dims.length!==4)throw new Error('Input "past_value" is expected to have 4 dimensions');h=l.dims[2],x=l.dims[2]}else if(l&&Me.size(l.dims)||c&&Me.size(c.dims))throw new Error('Input "past_key" and "past_value" shall be both present or both absent');let v;if(s&&Me.size(s.dims)>0){if(t.dims.length!==3)throw new Error('Input "query" is expected to have 3 dimensions when key is given');if(s.dims.length<3||s.dims.length>5)throw new Error('Input "key" is expected to have 3, 4, or 5 dimensions');if(t.dims[0]!==s.dims[0])throw new Error('Input "query" and "key" shall have same dim 0 (batch size)');if(s.dims.length===3){if(s.dims[2]!==t.dims[2])throw new Error('Input "query" and "key" shall have same dim 2 (hidden_size)');v=2,g=s.dims[1]}else if(s.dims.length===5){if(s.dims[2]!==r.numHeads||s.dims[3]!==2||s.dims[4]!==F)throw new Error('Expect "key" shape (batch_size, kv_sequence_length, num_heads, 2, head_size) for packed kv');if(o)throw new Error('Expect "value" be none when "key" has packed kv format.');v=5,g=s.dims[1]}else{if(s.dims[1]!==r.numHeads||s.dims[3]!==F)throw new Error('Expect "key" shape (batch_size, num_heads, kv_sequence_length, head_size) for past_key');v=0,g=s.dims[2]}}else{if(t.dims.length!==5)throw new Error('Input "query" is expected to have 5 dimensions when key is empty');if(t.dims[2]!==r.numHeads||t.dims[3]!==3)throw new Error('Expect "query" shape (batch_size, kv_sequence_length, num_heads, 3, head_size) for packed kv');v=3}if(a&&Me.size(a.dims)>0){if(a.dims.length!==1)throw new Error('Input "bias" is expected to have 1 dimension');if(s&&s.dims.length===5&&s.dims[3]===2)throw new Error("bias is not allowed for packed kv.")}let b=h+g,C=0;if(n&&Me.size(n.dims)>0){C=8;let f=n.dims;throw f.length===1?f[0]===_?C=1:f[0]===3*_+2&&(C=3):f.length===2&&f[0]===_&&f[1]===b&&(C=5),C===8?new Error('Input "key_padding_mask" shape shall be (batch_size) or (batch_size, total_sequence_length)'):new Error("Mask not supported")}let y=!1,P=d;if(o&&Me.size(o.dims)>0){if(o.dims.length!==3&&o.dims.length!==4)throw new Error('Input "value" is expected to have 3 or 4 dimensions');if(t.dims[0]!==o.dims[0])throw new Error('Input "query" and "value" shall have same dim 0 (batch_size)');if(o.dims.length===3){if(g!==o.dims[1])throw new Error('Input "key" and "value" shall have the same dim 1 (kv_sequence_length)');P=o.dims[2]}else{if(g!==o.dims[2])throw new Error('Input "key" and "value" shall have the same dim 2 (kv_sequence_length)');P=o.dims[1]*o.dims[3],y=!0}}let I=!1;if(n&&Me.size(n.dims)>0)throw new Error("Key padding mask is not supported");if(i&&Me.size(i.dims)>0){if(i.dims.length!==4)throw new Error('Input "attention_bias" is expected to have 4 dimensions');if(i.dims[0]!==_||i.dims[1]!==r.numHeads||i.dims[2]!==u||i.dims[3]!==b)throw new Error('Expect "attention_bias" shape (batch_size, num_heads, sequence_length, total_sequence_length)')}return{batchSize:_,sequenceLength:u,pastSequenceLength:h,kvSequenceLength:g,totalSequenceLength:b,maxSequenceLength:x,inputHiddenSize:0,hiddenSize:d,vHiddenSize:P,headSize:F,vHeadSize:Math.floor(P/r.numHeads),numHeads:r.numHeads,isUnidirectional:!1,pastPresentShareBuffer:!1,maskFilterValue:r.maskFilterValue,maskType:C,scale:r.scale,broadcastResPosBias:I,passPastInKv:y,qkvFormat:v}},Iy=e=>jt({...e}),ud=jt({perm:[0,2,1,3]}),Dw=(e,r,t,s,o,a,n)=>{let i=[s,o,a],l=Me.size(i),c=[{type:12,data:l},{type:12,data:n},{type:12,data:a}],_=u=>{let d=it("qkv_with_bias",r.dataType,i),g=Fe("qkv",r.dataType,i),h=Fe("bias",t.dataType,i),x=[{name:"output_size",type:"u32"},{name:"bias_offset",type:"u32"},{name:"hidden_size",type:"u32"}];return`
1750
1750
  ${u.registerUniforms(x).declareVariables(g,h,d)}
1751
1751
  ${u.mainStart()}
1752
1752
  ${u.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
1753
1753
  let bias_offset_idx = (global_idx % uniforms.hidden_size) + uniforms.bias_offset;
1754
1754
 
1755
1755
  qkv_with_bias[global_idx] = qkv[global_idx] + bias[bias_offset_idx];
1756
- }`};return e.compute({name:"MultiHeadAttentionAddBias",shaderCache:{inputDependencies:["type","type"]},getRunData:()=>({outputs:[{dims:i,dataType:r.dataType,gpuDataType:0}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:c}),getShaderSource:_},{inputs:[r,t],outputs:[-1]})[0]},dn=(e,r,t,s,o,a,n,i)=>{let l=a;if(n&&Me.size(n.dims)>0){if(s===1)throw new Error("AddBiasReshape is not implemented. Please export your model with packed QKV or KV");return l=$w(e,a,n,r,s,t*o,i),l=l.reshape([r,s,t,o]),t===1||s===1?l:e.compute(os(l,ud.perm),{inputs:[l],outputs:[-1]})[0]}else return a.dims.length===3&&(l=a.reshape([r,s,t,o])),t===1||s===1?l:e.compute(os(l,ud.perm),{inputs:[l],outputs:[-1]})[0]},Iy=(e,r)=>{let t=Aw(e.inputs,r),s=e.inputs[0],o=qr(e.inputs,1),a=qr(e.inputs,2),n=qr(e.inputs,3),i=qr(e.inputs,4),l=qr(e.inputs,5),c=qr(e.inputs,6),_=qr(e.inputs,7);if(s.dims.length===5)throw new Error("Packed QKV is not implemented");if(o?.dims.length===5)throw new Error("Packed KV is not implemented");let u=o&&a&&o.dims.length===4&&a.dims.length===4,d=dn(e,t.batchSize,t.numHeads,t.sequenceLength,t.headSize,s,n,0);if(u)return mn(e,d,o,a,i,void 0,c,_,l,t);if(!o||!a)throw new Error("key and value must be provided");let g=dn(e,t.batchSize,t.numHeads,t.kvSequenceLength,t.headSize,o,n,t.hiddenSize),h=dn(e,t.batchSize,t.numHeads,t.kvSequenceLength,t.vHeadSize,a,n,2*t.hiddenSize);mn(e,d,g,h,i,void 0,c,_,l,t)}}),Dw,Ow,Lw,Bw,Gd,$y,Dy,Oy=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),Dw=e=>{if(!e||e.length<1)throw new Error("too few inputs")},Ow=(e,r)=>{let t=[],s=r.numOutputs;return e[1].dims[0]>0&&(e[1].getBigInt64Array().forEach(o=>t.push(Number(o))),s=t.length),jt({numOutputs:s,axis:r.axis,splitSizes:t})},Lw=e=>`
1756
+ }`};return e.compute({name:"MultiHeadAttentionAddBias",shaderCache:{inputDependencies:["type","type"]},getRunData:()=>({outputs:[{dims:i,dataType:r.dataType,gpuDataType:0}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:c}),getShaderSource:_},{inputs:[r,t],outputs:[-1]})[0]},un=(e,r,t,s,o,a,n,i)=>{let l=a;if(n&&Me.size(n.dims)>0){if(s===1)throw new Error("AddBiasReshape is not implemented. Please export your model with packed QKV or KV");return l=Dw(e,a,n,r,s,t*o,i),l=l.reshape([r,s,t,o]),t===1||s===1?l:e.compute(os(l,ud.perm),{inputs:[l],outputs:[-1]})[0]}else return a.dims.length===3&&(l=a.reshape([r,s,t,o])),t===1||s===1?l:e.compute(os(l,ud.perm),{inputs:[l],outputs:[-1]})[0]},Ay=(e,r)=>{let t=$w(e.inputs,r),s=e.inputs[0],o=qr(e.inputs,1),a=qr(e.inputs,2),n=qr(e.inputs,3),i=qr(e.inputs,4),l=qr(e.inputs,5),c=qr(e.inputs,6),_=qr(e.inputs,7);if(s.dims.length===5)throw new Error("Packed QKV is not implemented");if(o?.dims.length===5)throw new Error("Packed KV is not implemented");let u=o&&a&&o.dims.length===4&&a.dims.length===4,d=un(e,t.batchSize,t.numHeads,t.sequenceLength,t.headSize,s,n,0);if(u)return hn(e,d,o,a,i,void 0,c,_,l,t);if(!o||!a)throw new Error("key and value must be provided");let g=un(e,t.batchSize,t.numHeads,t.kvSequenceLength,t.headSize,o,n,t.hiddenSize),h=un(e,t.batchSize,t.numHeads,t.kvSequenceLength,t.vHeadSize,a,n,2*t.hiddenSize);hn(e,d,g,h,i,void 0,c,_,l,t)}}),Ow,Lw,Bw,zw,Gd,Dy,Oy,Ly=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),Ow=e=>{if(!e||e.length<1)throw new Error("too few inputs")},Lw=(e,r)=>{let t=[],s=r.numOutputs;return e[1].dims[0]>0&&(e[1].getBigInt64Array().forEach(o=>t.push(Number(o))),s=t.length),jt({numOutputs:s,axis:r.axis,splitSizes:t})},Bw=e=>`
1757
1757
  fn calculateOutputIndex(index: u32) -> u32 {
1758
1758
  for (var i: u32 = 0u; i < ${e}u; i += 1u ) {
1759
1759
  if (index < ${lt("uniforms.size_in_split_axis","i",e)}) {
@@ -1761,14 +1761,14 @@ fn calculateOutputIndex(index: u32) -> u32 {
1761
1761
  }
1762
1762
  }
1763
1763
  return ${e}u;
1764
- }`,Bw=e=>{let r=e.length,t=[];for(let s=0;s<r;++s){let o=e[s].setByIndices("indices","input[global_idx]");r===1?t.push(o):s===0?t.push(`if (output_number == ${s}u) { ${o} }`):s===r-1?t.push(`else { ${o} }`):t.push(`else if (output_number == ${s}) { ${o} }`)}return`
1764
+ }`,zw=e=>{let r=e.length,t=[];for(let s=0;s<r;++s){let o=e[s].setByIndices("indices","input[global_idx]");r===1?t.push(o):s===0?t.push(`if (output_number == ${s}u) { ${o} }`):s===r-1?t.push(`else { ${o} }`):t.push(`else if (output_number == ${s}) { ${o} }`)}return`
1765
1765
  fn writeBufferData(output_number: u32, indices: ${e[0].type.indices}, global_idx: u32) {
1766
1766
  ${t.join(`
1767
1767
  `)}
1768
1768
  }`},Gd=(e,r)=>{let t=e[0].dims,s=Me.size(t),o=e[0].dataType,a=Me.normalizeAxis(r.axis,t.length),n=new Array(r.numOutputs),i=Fe("input",o,t.length),l=new Array(r.numOutputs),c=[],_=[],u=0,d=[{type:12,data:s}];for(let h=0;h<r.numOutputs;h++){u+=r.splitSizes[h],l[h]=u;let x=t.slice();x[a]=r.splitSizes[h],_.push(x),n[h]=it(`output${h}`,o,x.length),c.push({dims:_[h],dataType:e[0].dataType})}d.push({type:12,data:l},...dt(t,..._));let g=h=>`
1769
1769
  ${h.registerUniform("input_size","u32").registerUniform("size_in_split_axis","u32",l.length).declareVariables(i,...n)}
1770
- ${Lw(l.length)}
1771
- ${Bw(n)}
1770
+ ${Bw(l.length)}
1771
+ ${zw(n)}
1772
1772
 
1773
1773
  ${h.mainStart()}
1774
1774
  ${h.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.input_size")}
@@ -1781,10 +1781,10 @@ fn calculateOutputIndex(index: u32) -> u32 {
1781
1781
  ${i.indicesSet("indices",a,"index")};
1782
1782
  }
1783
1783
  writeBufferData(output_number, indices, global_idx);
1784
- }`;return{name:"Split",shaderCache:{hint:r.cacheKey,inputDependencies:["rank"]},getShaderSource:g,getRunData:()=>({outputs:c,dispatchGroup:{x:Math.ceil(s/64)},programUniforms:d})}},$y=(e,r)=>{Dw(e.inputs);let t=e.inputs.length===1?r:Ow(e.inputs,r);e.compute(Gd(e.inputs,t),{inputs:[0]})},Dy=e=>{let r=e.axis,t=e.splitSizes,s=e.numOutputs<0?t.length:e.numOutputs;if(s!==t.length)throw new Error("numOutputs and splitSizes lengh must be equal");return jt({axis:r,numOutputs:s,splitSizes:t})}}),zw,Xi,Ly,By=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),zw=(e,r)=>{let[t,s,o,a]=e,{numHeads:n,rotaryEmbeddingDim:i}=r;if(t.dims.length!==3&&t.dims.length!==4)throw new Error(`Input 'x' is expected to have 3 or 4 dimensions, got ${t.dims.length}`);if(!Me.areEqual(s.dims,[])&&!Me.areEqual(s.dims,[1])&&s.dims.length!==2)throw new Error(`Input 'position_ids' is expected to have 0, 1, or 2 dimensions, got ${s.dims.length}`);if(o.dims.length!==2)throw new Error(`Input 'cos_cache' is expected to have 2 dimensions, got ${o.dims.length}`);if(a.dims.length!==2)throw new Error(`Input 'sin_cache' is expected to have 2 dimensions, got ${a.dims.length}`);if(!Me.areEqual(o.dims,a.dims))throw new Error("Inputs 'cos_cache' and 'sin_cache' are expected to have the same shape");if(i>0&&n===0)throw new Error("num_heads must be provided if rotary_embedding_dim is specified");let l=t.dims[0],c=t.dims[t.dims.length-2],_=o.dims[0],u=Me.sizeFromDimension(t.dims,1)/c,d=i===0?o.dims[1]*2:u/n;if(i>d)throw new Error("rotary_embedding_dim must be less than or equal to head_size");if(s.dims.length===2){if(l!==s.dims[0])throw new Error(`Input 'position_ids' dimension 0 should be of size batch_size, got ${s.dims[0]}`);if(c!==s.dims[1])throw new Error(`Input 'position_ids' dimension 1 should be of size sequence_length, got ${s.dims[1]}`)}if(d/2!==o.dims[1]&&i/2!==o.dims[1])throw new Error(`Input 'cos_cache' dimension 1 should be same as head_size / 2 or rotary_embedding_dim / 2, got ${o.dims[1]}`);if(c>_)throw new Error("Updating cos_cache and sin_cache in RotaryEmbedding is not currently supported")},Xi=(e,r)=>{let{interleaved:t,numHeads:s,rotaryEmbeddingDim:o,scale:a}=r,n=e[0].dims[0],i=Me.sizeFromDimension(e[0].dims,1),l=e[0].dims[e[0].dims.length-2],c=i/l,_=e[2].dims[1],u=o===0?_*2:c/s,d=new Array(n,l,c/u,u-_),g=Me.computeStrides(d),h=[{type:1,data:a},{type:12,data:d},{type:12,data:g},...e[0].dims.length===3?new Array({type:12,data:[i,c,u,1]}):[],...e[0].dims.length===4?new Array({type:12,data:[i,u,l*u,1]}):[],...dt(e[0].dims,e[1].dims,e[2].dims,e[3].dims,e[0].dims)],x=F=>{let v=Fe("input",e[0].dataType,e[0].dims.length),b=Fe("position_ids",e[1].dataType,e[1].dims.length),C=Fe("cos_cache",e[2].dataType,e[2].dims.length),y=Fe("sin_cache",e[3].dataType,e[3].dims.length),P=it("output",e[0].dataType,e[0].dims.length);return F.registerUniforms([{name:"scale",type:"f32"},{name:"global_shape",type:"u32",length:d.length},{name:"global_strides",type:"u32",length:g.length},{name:"input_output_strides",type:"u32",length:g.length}]),`
1784
+ }`;return{name:"Split",shaderCache:{hint:r.cacheKey,inputDependencies:["rank"]},getShaderSource:g,getRunData:()=>({outputs:c,dispatchGroup:{x:Math.ceil(s/64)},programUniforms:d})}},Dy=(e,r)=>{Ow(e.inputs);let t=e.inputs.length===1?r:Lw(e.inputs,r);e.compute(Gd(e.inputs,t),{inputs:[0]})},Oy=e=>{let r=e.axis,t=e.splitSizes,s=e.numOutputs<0?t.length:e.numOutputs;if(s!==t.length)throw new Error("numOutputs and splitSizes lengh must be equal");return jt({axis:r,numOutputs:s,splitSizes:t})}}),Rw,Xi,By,zy=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),Rw=(e,r)=>{let[t,s,o,a]=e,{numHeads:n,rotaryEmbeddingDim:i}=r;if(t.dims.length!==3&&t.dims.length!==4)throw new Error(`Input 'x' is expected to have 3 or 4 dimensions, got ${t.dims.length}`);if(!Me.areEqual(s.dims,[])&&!Me.areEqual(s.dims,[1])&&s.dims.length!==2)throw new Error(`Input 'position_ids' is expected to have 0, 1, or 2 dimensions, got ${s.dims.length}`);if(o.dims.length!==2)throw new Error(`Input 'cos_cache' is expected to have 2 dimensions, got ${o.dims.length}`);if(a.dims.length!==2)throw new Error(`Input 'sin_cache' is expected to have 2 dimensions, got ${a.dims.length}`);if(!Me.areEqual(o.dims,a.dims))throw new Error("Inputs 'cos_cache' and 'sin_cache' are expected to have the same shape");if(i>0&&n===0)throw new Error("num_heads must be provided if rotary_embedding_dim is specified");let l=t.dims[0],c=t.dims[t.dims.length-2],_=o.dims[0],u=Me.sizeFromDimension(t.dims,1)/c,d=i===0?o.dims[1]*2:u/n;if(i>d)throw new Error("rotary_embedding_dim must be less than or equal to head_size");if(s.dims.length===2){if(l!==s.dims[0])throw new Error(`Input 'position_ids' dimension 0 should be of size batch_size, got ${s.dims[0]}`);if(c!==s.dims[1])throw new Error(`Input 'position_ids' dimension 1 should be of size sequence_length, got ${s.dims[1]}`)}if(d/2!==o.dims[1]&&i/2!==o.dims[1])throw new Error(`Input 'cos_cache' dimension 1 should be same as head_size / 2 or rotary_embedding_dim / 2, got ${o.dims[1]}`);if(c>_)throw new Error("Updating cos_cache and sin_cache in RotaryEmbedding is not currently supported")},Xi=(e,r)=>{let{interleaved:t,numHeads:s,rotaryEmbeddingDim:o,scale:a}=r,n=e[0].dims[0],i=Me.sizeFromDimension(e[0].dims,1),l=e[0].dims[e[0].dims.length-2],c=i/l,_=e[2].dims[1],u=o===0?_*2:c/s,d=new Array(n,l,c/u,u-_),g=Me.computeStrides(d),h=[{type:1,data:a},{type:12,data:d},{type:12,data:g},...e[0].dims.length===3?new Array({type:12,data:[i,c,u,1]}):[],...e[0].dims.length===4?new Array({type:12,data:[i,u,l*u,1]}):[],...dt(e[0].dims,e[1].dims,e[2].dims,e[3].dims,e[0].dims)],x=F=>{let v=Fe("input",e[0].dataType,e[0].dims.length),b=Fe("position_ids",e[1].dataType,e[1].dims.length),C=Fe("cos_cache",e[2].dataType,e[2].dims.length),y=Fe("sin_cache",e[3].dataType,e[3].dims.length),P=it("output",e[0].dataType,e[0].dims.length);return F.registerUniforms([{name:"scale",type:"f32"},{name:"global_shape",type:"u32",length:d.length},{name:"global_strides",type:"u32",length:g.length},{name:"input_output_strides",type:"u32",length:g.length}]),`
1785
1785
  ${F.declareVariables(v,b,C,y,P)}
1786
1786
 
1787
- ${F.mainStart(ma)}
1787
+ ${F.mainStart(ha)}
1788
1788
  let half_rotary_emb_dim = uniforms.${C.name}_shape[1];
1789
1789
  let bsnh = global_idx / uniforms.global_strides % uniforms.global_shape;
1790
1790
  let size = uniforms.global_shape[0] * uniforms.global_strides[0];
@@ -1807,7 +1807,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
1807
1807
  let k = dot(bsnh, uniforms.input_output_strides) + half_rotary_emb_dim;
1808
1808
  ${P.setByOffset("k",v.getByOffset("k"))}
1809
1809
  }
1810
- }`};return{name:"RotaryEmbedding",shaderCache:{hint:jt({interleaved:t}).cacheKey,inputDependencies:["rank","rank","rank","rank"]},getShaderSource:x,getRunData:()=>({outputs:[{dims:e[0].dims,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(Me.size(d)/ma)},programUniforms:h})}},Ly=(e,r)=>{zw(e.inputs,r),e.compute(Xi(e.inputs,r))}}),Rw,Nw,_d,jw,zy,KP=Ve(()=>{"use strict";hr(),Mt(),du(),Ay(),Oy(),po(),By(),Ct(),Rw=(e,r)=>{if(r.doRotary&&e.length<=7)throw new Error("cos_cache and sin_cache inputs are required if do_rotary is specified");let t=e[0],s=e[1],o=e[2],a=e[3],n=e[4];if(r.doRotary!==0&&e.length<=7)throw new Error("cos_cast and sin_cache are expected if do_rotary attribute is non-zero");if(r.localWindowSize!==-1)throw new Error("Local attention is not supported");if(r.softcap!==0)throw new Error("Softcap is not supported");if(r.rotaryInterleaved!==0)throw new Error("Rotary interleaved is not supported");if(r.smoothSoftmax)throw new Error("Smooth softmax is not supported");if(t.dims.length!==3&&t.dims.length!==5)throw new Error("Input query is expected to have 3 or 5 dimensions");let i=!1,l=t.dims[0],c=t.dims[1],_=t.dims.length===3?i?t.dims[2]/3:t.dims[2]:r.numHeads*t.dims[4],u=c,d=0,g=!s||s.dims.length===0,h=Math.floor(g?_/(r.numHeads+2*r.kvNumHeads):_/r.numHeads);g&&(_=h*r.numHeads);let x=a&&a.dims.length!==0,F=n&&n.dims.length!==0;if(x&&a.dims.length===4&&a.dims[0]===l&&a.dims[1]!==r.kvNumHeads&&a.dims[2]===r.kvNumHeads&&a.dims[3]===h)throw new Error("BSNH pastKey/pastValue is not supported");if(x&&F){if(a.dims.length!==4)throw new Error('Input "past_key" is expected to have 4 dimensions');if(n.dims.length!==4)throw new Error('Input "past_value" is expected to have 4 dimensions');d=a.dims[2]}else if(x||F)throw new Error('Input "past_key" and "past_value" shall be both present or both absent');let v=1;if(s&&s.dims.length>0){if(t.dims.length!==3)throw new Error('Input "query" is expected to have 3 dimensions when key is given');if(s.dims.length<3||s.dims.length>5)throw new Error('Input "key" is expected to have 3, 4, or 5 dimensions');if(t.dims[0]!==s.dims[0])throw new Error('Input "query" and "key" shall have same dim 0 (batch size)');if(s.dims.length===3){if(t.dims[2]%s.dims[2]!==0)throw new Error('Dimension 2 of "query" should be a multiple of "key"');u=s.dims[1]}else if(s.dims.length===5){if(s.dims[2]!==r.numHeads||s.dims[3]!==2||s.dims[4]!==h)throw new Error('Expect "key" shape (batch_size, kv_sequence_length, num_heads, 2, head_size) for packed kv');if(o)throw new Error('Expect "value" be none when "key" has packed kv format.');u=s.dims[1]}else{if(s.dims[1]!==r.numHeads||s.dims[3]!==h)throw new Error('Expect "key" shape (batch_size, num_heads, kv_sequence_length, head_size) for past_key');u=s.dims[2]}}else{if(t.dims.length!==3&&t.dims.length!==5)throw new Error('Input "query" is expected to have 3 or 5 dimensions when key is empty');if(t.dims.length===5&&(t.dims[2]!==r.numHeads||t.dims[3]!==3))throw new Error('Expect "query" shape (batch_size, kv_sequence_length, num_heads, 3, head_size) for packed kv');v=3}let b=0,C=!1,y=r.kvNumHeads?h*r.kvNumHeads:_;if(o&&o.dims.length>0){if(o.dims.length!==3&&o.dims.length!==4)throw new Error('Input "value" is expected to have 3 or 4 dimensions');if(t.dims[0]!==o.dims[0])throw new Error('Input "query" and "value" shall have same dim 0 (batch_size)');if(o.dims.length===3){if(u!==o.dims[1])throw new Error('Input "key" and "value" shall have the same dim 1 (kv_sequence_length)');y=o.dims[2]}else{if(u!==o.dims[2])throw new Error('Input "past_key" and "past_value" shall have the same dim 2 (kv_sequence_length)');y=o.dims[1]*o.dims[3],C=!0}}let P=e.length>4?e[5]:void 0;if(P&&P.dims.length!==1&&P.dims[0]!==l)throw new Error('Input "seqlens" is expected to have 1 dimension and the same dim 0 as batch_size');return{batchSize:l,sequenceLength:c,pastSequenceLength:d,kvSequenceLength:u,totalSequenceLength:-1,maxSequenceLength:-1,inputHiddenSize:0,hiddenSize:_,vHiddenSize:y,headSize:h,vHeadSize:Math.floor(y/r.kvNumHeads),numHeads:r.numHeads,kvNumHeads:r.kvNumHeads,nReps:r.numHeads/r.kvNumHeads,pastPresentShareBuffer:!1,maskType:b,scale:r.scale,broadcastResPosBias:!1,passPastInKv:C,qkvFormat:v}},Nw=jt({perm:[0,2,1,3]}),_d=(e,r,t)=>{let s=r,o=t.kvNumHeads;return r.dims.length===3&&t.kvSequenceLength!==0&&(s=r.reshape([t.batchSize,t.kvSequenceLength,o,t.headSize]),s=e.compute(os(s,Nw.perm),{inputs:[s],outputs:[-1]})[0]),s},jw=(e,r,t,s)=>{let o=7,a=["type","type"],n=[e*r],i=e*r,l=[{type:12,data:i},{type:12,data:r},{type:12,data:e}],c=_=>{let u=Fe("seq_lens",t.dataType,t.dims),d=Fe("total_seq_lens",s.dataType,s.dims),g=it("pos_ids",o,n),h=[{name:"output_size",type:"u32"},{name:"sequence_length",type:"u32"},{name:"batch_size",type:"u32"}];return`
1810
+ }`};return{name:"RotaryEmbedding",shaderCache:{hint:jt({interleaved:t}).cacheKey,inputDependencies:["rank","rank","rank","rank"]},getShaderSource:x,getRunData:()=>({outputs:[{dims:e[0].dims,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(Me.size(d)/ha)},programUniforms:h})}},By=(e,r)=>{Rw(e.inputs,r),e.compute(Xi(e.inputs,r))}}),Nw,jw,_d,Vw,Ry,HP=Ve(()=>{"use strict";hr(),Mt(),du(),$y(),Ly(),po(),zy(),Ct(),Nw=(e,r)=>{if(r.doRotary&&e.length<=7)throw new Error("cos_cache and sin_cache inputs are required if do_rotary is specified");let t=e[0],s=e[1],o=e[2],a=e[3],n=e[4];if(r.doRotary!==0&&e.length<=7)throw new Error("cos_cast and sin_cache are expected if do_rotary attribute is non-zero");if(r.localWindowSize!==-1)throw new Error("Local attention is not supported");if(r.softcap!==0)throw new Error("Softcap is not supported");if(r.rotaryInterleaved!==0)throw new Error("Rotary interleaved is not supported");if(r.smoothSoftmax)throw new Error("Smooth softmax is not supported");if(t.dims.length!==3&&t.dims.length!==5)throw new Error("Input query is expected to have 3 or 5 dimensions");let i=!1,l=t.dims[0],c=t.dims[1],_=t.dims.length===3?i?t.dims[2]/3:t.dims[2]:r.numHeads*t.dims[4],u=c,d=0,g=!s||s.dims.length===0,h=Math.floor(g?_/(r.numHeads+2*r.kvNumHeads):_/r.numHeads);g&&(_=h*r.numHeads);let x=a&&a.dims.length!==0,F=n&&n.dims.length!==0;if(x&&a.dims.length===4&&a.dims[0]===l&&a.dims[1]!==r.kvNumHeads&&a.dims[2]===r.kvNumHeads&&a.dims[3]===h)throw new Error("BSNH pastKey/pastValue is not supported");if(x&&F){if(a.dims.length!==4)throw new Error('Input "past_key" is expected to have 4 dimensions');if(n.dims.length!==4)throw new Error('Input "past_value" is expected to have 4 dimensions');d=a.dims[2]}else if(x||F)throw new Error('Input "past_key" and "past_value" shall be both present or both absent');let v=1;if(s&&s.dims.length>0){if(t.dims.length!==3)throw new Error('Input "query" is expected to have 3 dimensions when key is given');if(s.dims.length<3||s.dims.length>5)throw new Error('Input "key" is expected to have 3, 4, or 5 dimensions');if(t.dims[0]!==s.dims[0])throw new Error('Input "query" and "key" shall have same dim 0 (batch size)');if(s.dims.length===3){if(t.dims[2]%s.dims[2]!==0)throw new Error('Dimension 2 of "query" should be a multiple of "key"');u=s.dims[1]}else if(s.dims.length===5){if(s.dims[2]!==r.numHeads||s.dims[3]!==2||s.dims[4]!==h)throw new Error('Expect "key" shape (batch_size, kv_sequence_length, num_heads, 2, head_size) for packed kv');if(o)throw new Error('Expect "value" be none when "key" has packed kv format.');u=s.dims[1]}else{if(s.dims[1]!==r.numHeads||s.dims[3]!==h)throw new Error('Expect "key" shape (batch_size, num_heads, kv_sequence_length, head_size) for past_key');u=s.dims[2]}}else{if(t.dims.length!==3&&t.dims.length!==5)throw new Error('Input "query" is expected to have 3 or 5 dimensions when key is empty');if(t.dims.length===5&&(t.dims[2]!==r.numHeads||t.dims[3]!==3))throw new Error('Expect "query" shape (batch_size, kv_sequence_length, num_heads, 3, head_size) for packed kv');v=3}let b=0,C=!1,y=r.kvNumHeads?h*r.kvNumHeads:_;if(o&&o.dims.length>0){if(o.dims.length!==3&&o.dims.length!==4)throw new Error('Input "value" is expected to have 3 or 4 dimensions');if(t.dims[0]!==o.dims[0])throw new Error('Input "query" and "value" shall have same dim 0 (batch_size)');if(o.dims.length===3){if(u!==o.dims[1])throw new Error('Input "key" and "value" shall have the same dim 1 (kv_sequence_length)');y=o.dims[2]}else{if(u!==o.dims[2])throw new Error('Input "past_key" and "past_value" shall have the same dim 2 (kv_sequence_length)');y=o.dims[1]*o.dims[3],C=!0}}let P=e.length>4?e[5]:void 0;if(P&&P.dims.length!==1&&P.dims[0]!==l)throw new Error('Input "seqlens" is expected to have 1 dimension and the same dim 0 as batch_size');return{batchSize:l,sequenceLength:c,pastSequenceLength:d,kvSequenceLength:u,totalSequenceLength:-1,maxSequenceLength:-1,inputHiddenSize:0,hiddenSize:_,vHiddenSize:y,headSize:h,vHeadSize:Math.floor(y/r.kvNumHeads),numHeads:r.numHeads,kvNumHeads:r.kvNumHeads,nReps:r.numHeads/r.kvNumHeads,pastPresentShareBuffer:!1,maskType:b,scale:r.scale,broadcastResPosBias:!1,passPastInKv:C,qkvFormat:v}},jw=jt({perm:[0,2,1,3]}),_d=(e,r,t)=>{let s=r,o=t.kvNumHeads;return r.dims.length===3&&t.kvSequenceLength!==0&&(s=r.reshape([t.batchSize,t.kvSequenceLength,o,t.headSize]),s=e.compute(os(s,jw.perm),{inputs:[s],outputs:[-1]})[0]),s},Vw=(e,r,t,s)=>{let o=7,a=["type","type"],n=[e*r],i=e*r,l=[{type:12,data:i},{type:12,data:r},{type:12,data:e}],c=_=>{let u=Fe("seq_lens",t.dataType,t.dims),d=Fe("total_seq_lens",s.dataType,s.dims),g=it("pos_ids",o,n),h=[{name:"output_size",type:"u32"},{name:"sequence_length",type:"u32"},{name:"batch_size",type:"u32"}];return`
1811
1811
  ${_.registerUniforms(h).declareVariables(u,d,g)}
1812
1812
  ${_.mainStart()}
1813
1813
  ${_.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
@@ -1838,7 +1838,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
1838
1838
  ${g.setByOffset("global_idx","seqlen")}
1839
1839
  };
1840
1840
  }
1841
- `};return{name:"GeneratePositionIds",shaderCache:{hint:`${e};${r}`,inputDependencies:a},getRunData:()=>({outputs:[{dims:n,dataType:o}],dispatchGroup:{x:Math.ceil(i/64)},programUniforms:l}),getShaderSource:c}},zy=(e,r)=>{let t=Rw(e.inputs,r);if(e.inputs[0].dims.length===5)throw new Error("Packed QKV is not implemented");if(e.inputs[1]?.dims.length===5)throw new Error("Packed KV is not implemented");let s=e.inputs[0],o=e.inputs[1]&&e.inputs[1].dims.length>0?e.inputs[1]:void 0,a=e.inputs[2]&&e.inputs[2].dims.length>0?e.inputs[2]:void 0,n=e.inputs[3]&&e.inputs[3].dims.length!==0?e.inputs[3]:void 0,i=e.inputs[4]&&e.inputs[4].dims.length!==0?e.inputs[4]:void 0,l=e.inputs.length>4?e.inputs[5]:void 0,c=e.inputs.length>5?e.inputs[6]:void 0,_=t.kvNumHeads?t.kvNumHeads:t.numHeads,u=jt({axis:2,numOutputs:3,splitSizes:[t.numHeads*t.headSize,_*t.headSize,_*t.headSize]}),[d,g,h]=!o&&!a?e.compute(Gd([s],u),{inputs:[s],outputs:[-1,-1,-1]}):[s,o,a],x,F;if(r.doRotary){let y=e.compute(jw(t.batchSize,t.sequenceLength,l,c),{inputs:[l,c],outputs:[-1]})[0],P=e.inputs[7],I=e.inputs[8],f=jt({interleaved:r.rotaryInterleaved!==0,numHeads:t.numHeads,rotaryEmbeddingDim:0,scale:r.scale}),E=[d,y,P,I],D=[-1];x=e.compute(Xi(E,f),{inputs:E,outputs:D})[0],E.splice(0,1,g);let O=jt({interleaved:r.rotaryInterleaved!==0,numHeads:t.kvNumHeads,rotaryEmbeddingDim:0,scale:r.scale});F=e.compute(Xi(E,O),{inputs:E,outputs:D})[0]}let v=dn(e,t.batchSize,t.numHeads,t.sequenceLength,t.headSize,r.doRotary?x:d,void 0,0),b=_d(e,r.doRotary?F:g,t),C=_d(e,h,t);mn(e,v,b,C,void 0,void 0,n,i,void 0,t,l,c)}}),pd,Vw,Ww,Ry,HP=Ve(()=>{"use strict";Mt(),kt(),po(),Ct(),pd=(e,r,t,s,o,a,n,i)=>{let l=dr(a),c=l===1?"f32":`vec${l}f`,_=l===1?"vec2f":`mat2x${l}f`,u=o*n,d=64;u===1&&(d=256);let g=[o,n,a/l],h=[o,n,2],x=["rank","type","type"],F=[];F.push(...dt(g,h));let v=b=>{let C=Fe("x",r.dataType,3,l),y=Fe("scale",t.dataType,t.dims),P=Fe("bias",s.dataType,s.dims),I=it("output",1,3,2),f=[C,y,P,I];return`
1841
+ `};return{name:"GeneratePositionIds",shaderCache:{hint:`${e};${r}`,inputDependencies:a},getRunData:()=>({outputs:[{dims:n,dataType:o}],dispatchGroup:{x:Math.ceil(i/64)},programUniforms:l}),getShaderSource:c}},Ry=(e,r)=>{let t=Nw(e.inputs,r);if(e.inputs[0].dims.length===5)throw new Error("Packed QKV is not implemented");if(e.inputs[1]?.dims.length===5)throw new Error("Packed KV is not implemented");let s=e.inputs[0],o=e.inputs[1]&&e.inputs[1].dims.length>0?e.inputs[1]:void 0,a=e.inputs[2]&&e.inputs[2].dims.length>0?e.inputs[2]:void 0,n=e.inputs[3]&&e.inputs[3].dims.length!==0?e.inputs[3]:void 0,i=e.inputs[4]&&e.inputs[4].dims.length!==0?e.inputs[4]:void 0,l=e.inputs.length>4?e.inputs[5]:void 0,c=e.inputs.length>5?e.inputs[6]:void 0,_=t.kvNumHeads?t.kvNumHeads:t.numHeads,u=jt({axis:2,numOutputs:3,splitSizes:[t.numHeads*t.headSize,_*t.headSize,_*t.headSize]}),[d,g,h]=!o&&!a?e.compute(Gd([s],u),{inputs:[s],outputs:[-1,-1,-1]}):[s,o,a],x,F;if(r.doRotary){let y=e.compute(Vw(t.batchSize,t.sequenceLength,l,c),{inputs:[l,c],outputs:[-1]})[0],P=e.inputs[7],I=e.inputs[8],f=jt({interleaved:r.rotaryInterleaved!==0,numHeads:t.numHeads,rotaryEmbeddingDim:0,scale:r.scale}),E=[d,y,P,I],D=[-1];x=e.compute(Xi(E,f),{inputs:E,outputs:D})[0],E.splice(0,1,g);let O=jt({interleaved:r.rotaryInterleaved!==0,numHeads:t.kvNumHeads,rotaryEmbeddingDim:0,scale:r.scale});F=e.compute(Xi(E,O),{inputs:E,outputs:D})[0]}let v=un(e,t.batchSize,t.numHeads,t.sequenceLength,t.headSize,r.doRotary?x:d,void 0,0),b=_d(e,r.doRotary?F:g,t),C=_d(e,h,t);hn(e,v,b,C,void 0,void 0,n,i,void 0,t,l,c)}}),pd,Ww,Uw,Ny,qP=Ve(()=>{"use strict";Mt(),kt(),po(),Ct(),pd=(e,r,t,s,o,a,n,i)=>{let l=dr(a),c=l===1?"f32":`vec${l}f`,_=l===1?"vec2f":`mat2x${l}f`,u=o*n,d=64;u===1&&(d=256);let g=[o,n,a/l],h=[o,n,2],x=["rank","type","type"],F=[];F.push(...dt(g,h));let v=b=>{let C=Fe("x",r.dataType,3,l),y=Fe("scale",t.dataType,t.dims),P=Fe("bias",s.dataType,s.dims),I=it("output",1,3,2),f=[C,y,P,I];return`
1842
1842
  var<workgroup> workgroup_shared : array<${_}, ${d}>;
1843
1843
  const workgroup_size = ${d}u;
1844
1844
  ${b.declareVariables(...f)}
@@ -1872,7 +1872,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
1872
1872
  let channel_shift = f32(bias[channel]) - sum_final * channel_scale;
1873
1873
  output[workgroup_index] = vec2f(channel_scale, channel_shift);
1874
1874
  }
1875
- }`};return e.compute({name:"InstanceNormComputeChannelScaleShift",shaderCache:{hint:`${l};${i};${d}`,inputDependencies:x},getRunData:()=>({outputs:[{dims:h,dataType:1}],dispatchGroup:{x:u},programUniforms:F}),getShaderSource:v},{inputs:[r,t,s],outputs:[-1]})[0]},Vw=(e,r,t)=>{let s=r[0].dims,o=s,a=2,n=s[0],i=s[1],l=Me.sizeFromDimension(s,a),c=dr(l),_=Me.size(o)/c,u=pd(e,r[0],r[1],r[2],n,l,i,t.epsilon),d=[n,i,l/c],g=[n,i],h=["type","none"],x=F=>{let v=Fe("x",r[0].dataType,d.length,c),b=Fe("scale_shift",1,g.length,2),C=it("output",r[0].dataType,d.length,c),y=[v,b,C];return`
1875
+ }`};return e.compute({name:"InstanceNormComputeChannelScaleShift",shaderCache:{hint:`${l};${i};${d}`,inputDependencies:x},getRunData:()=>({outputs:[{dims:h,dataType:1}],dispatchGroup:{x:u},programUniforms:F}),getShaderSource:v},{inputs:[r,t,s],outputs:[-1]})[0]},Ww=(e,r,t)=>{let s=r[0].dims,o=s,a=2,n=s[0],i=s[1],l=Me.sizeFromDimension(s,a),c=dr(l),_=Me.size(o)/c,u=pd(e,r[0],r[1],r[2],n,l,i,t.epsilon),d=[n,i,l/c],g=[n,i],h=["type","none"],x=F=>{let v=Fe("x",r[0].dataType,d.length,c),b=Fe("scale_shift",1,g.length,2),C=it("output",r[0].dataType,d.length,c),y=[v,b,C];return`
1876
1876
  ${F.registerUniform("output_size","u32").declareVariables(...y)}
1877
1877
  ${F.mainStart()}
1878
1878
  ${F.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
@@ -1882,7 +1882,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
1882
1882
  let scale_shift = ${b.getByIndices("vec2<u32>(batch, channel)")};
1883
1883
  let value = ${v.getByOffset("global_idx")} * ${C.type.value}(scale_shift.x) + ${C.type.value}(scale_shift.y);
1884
1884
  ${C.setByOffset("global_idx","value")};
1885
- }`};e.compute({name:"InstanceNormalization",shaderCache:{hint:`${c}`,inputDependencies:h},getRunData:()=>({outputs:[{dims:o,dataType:r[0].dataType}],dispatchGroup:{x:Math.ceil(_/64)},programUniforms:[{type:12,data:_},...dt(d,g,d)]}),getShaderSource:x},{inputs:[r[0],u]})},Ww=(e,r,t)=>{let s=r[0].dims,o=s,a=s[0],n=s[s.length-1],i=Me.sizeFromDimension(s,1)/n,l=dr(n),c=Me.size(o)/l,_=[{type:12,data:i},{type:12,data:Math.floor(n/l)}],u=["type","type"],d=!1,g=[0,s.length-1];for(let v=0;v<s.length-2;v++)d=d||s[v+1]!==1,g.push(v+1);d=d&&s[s.length-1]!==1;let h=d?e.compute(os(e.inputs[0],g),{inputs:[e.inputs[0]],outputs:[-1]})[0]:e.inputs[0].reshape(Array.from({length:s.length},(v,b)=>s[g[b]])),x=pd(e,h,r[1],r[2],a,i,n,t.epsilon),F=v=>{let b=$r(r[0].dataType),C=l===1?"vec2f":`mat${l}x2f`,y=f=>{let E=f===0?"x":"y",D=l===1?"f32":`vec${l}f`;switch(l){case 1:return`${b}(${D}(scale.${E}))`;case 2:return`vec2<${b}>(${D}(scale[0].${E}, scale[1].${E}))`;case 4:return`vec4<${b}>(${D}(scale[0].${E}, scale[1].${E}, scale[2].${E}, scale[3].${E}))`;default:throw new Error(`Not supported compoents ${l}`)}},P=Fe("input",r[0].dataType,r[0].dims,l),I=it("output",r[0].dataType,o,l);return`
1885
+ }`};e.compute({name:"InstanceNormalization",shaderCache:{hint:`${c}`,inputDependencies:h},getRunData:()=>({outputs:[{dims:o,dataType:r[0].dataType}],dispatchGroup:{x:Math.ceil(_/64)},programUniforms:[{type:12,data:_},...dt(d,g,d)]}),getShaderSource:x},{inputs:[r[0],u]})},Uw=(e,r,t)=>{let s=r[0].dims,o=s,a=s[0],n=s[s.length-1],i=Me.sizeFromDimension(s,1)/n,l=dr(n),c=Me.size(o)/l,_=[{type:12,data:i},{type:12,data:Math.floor(n/l)}],u=["type","type"],d=!1,g=[0,s.length-1];for(let v=0;v<s.length-2;v++)d=d||s[v+1]!==1,g.push(v+1);d=d&&s[s.length-1]!==1;let h=d?e.compute(os(e.inputs[0],g),{inputs:[e.inputs[0]],outputs:[-1]})[0]:e.inputs[0].reshape(Array.from({length:s.length},(v,b)=>s[g[b]])),x=pd(e,h,r[1],r[2],a,i,n,t.epsilon),F=v=>{let b=$r(r[0].dataType),C=l===1?"vec2f":`mat${l}x2f`,y=f=>{let E=f===0?"x":"y",D=l===1?"f32":`vec${l}f`;switch(l){case 1:return`${b}(${D}(scale.${E}))`;case 2:return`vec2<${b}>(${D}(scale[0].${E}, scale[1].${E}))`;case 4:return`vec4<${b}>(${D}(scale[0].${E}, scale[1].${E}, scale[2].${E}, scale[3].${E}))`;default:throw new Error(`Not supported compoents ${l}`)}},P=Fe("input",r[0].dataType,r[0].dims,l),I=it("output",r[0].dataType,o,l);return`
1886
1886
  @group(0) @binding(0) var<storage, read> input : array<${P.type.storage}>;
1887
1887
  @group(0) @binding(1) var<storage, read> scale_input : array<${C}>;
1888
1888
  @group(0) @binding(2) var<storage, read_write> output : array<${I.type.storage}>;
@@ -1896,7 +1896,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
1896
1896
  let scale_offset = current_image_number * uniforms.C + current_channel_number;
1897
1897
  let scale = scale_input[scale_offset];
1898
1898
  output[global_idx] = fma(input[global_idx], ${y(0)}, ${y(1)});
1899
- }`};e.compute({name:"InstanceNormalizationNHWC",shaderCache:{hint:`${l}`,inputDependencies:u},getRunData:()=>({outputs:[{dims:o,dataType:r[0].dataType}],dispatchGroup:{x:Math.ceil(c/64)},programUniforms:_}),getShaderSource:F},{inputs:[r[0],x]})},Ry=(e,r)=>{r.format==="NHWC"?Ww(e,e.inputs,r):Vw(e,e.inputs,r)}}),Uw,Gw,Ny,qP=Ve(()=>{"use strict";Mt(),kt(),Ct(),Uw=e=>{if(!e||e.length<2)throw new Error("layerNorm requires at least 2 inputs.")},Gw=(e,r,t)=>{let s=r.simplified,o=e[0].dims,a=e[1],n=!s&&e[2],i=o,l=Me.normalizeAxis(r.axis,o.length),c=Me.sizeToDimension(o,l),_=Me.sizeFromDimension(o,l),u=Me.size(a.dims),d=n?Me.size(n.dims):0;if(u!==_||n&&d!==_)throw new Error(`Size of X.shape()[axis:] == ${_}.
1899
+ }`};e.compute({name:"InstanceNormalizationNHWC",shaderCache:{hint:`${l}`,inputDependencies:u},getRunData:()=>({outputs:[{dims:o,dataType:r[0].dataType}],dispatchGroup:{x:Math.ceil(c/64)},programUniforms:_}),getShaderSource:F},{inputs:[r[0],x]})},Ny=(e,r)=>{r.format==="NHWC"?Uw(e,e.inputs,r):Ww(e,e.inputs,r)}}),Gw,Kw,jy,QP=Ve(()=>{"use strict";Mt(),kt(),Ct(),Gw=e=>{if(!e||e.length<2)throw new Error("layerNorm requires at least 2 inputs.")},Kw=(e,r,t)=>{let s=r.simplified,o=e[0].dims,a=e[1],n=!s&&e[2],i=o,l=Me.normalizeAxis(r.axis,o.length),c=Me.sizeToDimension(o,l),_=Me.sizeFromDimension(o,l),u=Me.size(a.dims),d=n?Me.size(n.dims):0;if(u!==_||n&&d!==_)throw new Error(`Size of X.shape()[axis:] == ${_}.
1900
1900
  Size of scale and bias (if provided) must match this.
1901
1901
  Got scale size of ${u} and bias size of ${d}`);let g=[];for(let P=0;P<o.length;++P)P<l?g.push(o[P]):g.push(1);let h=dr(_),x=["type","type"],F=[{type:12,data:c},{type:1,data:_},{type:12,data:Math.floor(_/h)},{type:1,data:r.epsilon}];n&&x.push("type");let v=t>1,b=t>2,C=P=>{let I=$r(e[0].dataType),f=[Fe("x",e[0].dataType,e[0].dims,h),Fe("scale",a.dataType,a.dims,h)];n&&f.push(Fe("bias",n.dataType,n.dims,h)),f.push(it("output",e[0].dataType,i,h)),v&&f.push(it("mean_data_output",1,g)),b&&f.push(it("inv_std_output",1,g));let E=[{name:"norm_count",type:"u32"},{name:"norm_size",type:"f32"},{name:"norm_size_vectorized",type:"u32"},{name:"epsilon",type:"f32"}];return`
1902
1902
  ${P.registerUniforms(E).declareVariables(...f)}
@@ -1907,7 +1907,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
1907
1907
  var mean_square_vector = ${Ld("f32",h)};
1908
1908
 
1909
1909
  for (var h: u32 = 0u; h < uniforms.norm_size_vectorized; h++) {
1910
- let value = ${_a(I,h,"x[h + offset]")};
1910
+ let value = ${pa(I,h,"x[h + offset]")};
1911
1911
  mean_vector += value;
1912
1912
  mean_square_vector += value * value;
1913
1913
  }
@@ -1915,16 +1915,16 @@ fn calculateOutputIndex(index: u32) -> u32 {
1915
1915
  let inv_std_dev = inverseSqrt(${_o("mean_square_vector",h)} / uniforms.norm_size ${s?"":"- mean * mean"} + uniforms.epsilon);
1916
1916
 
1917
1917
  for (var j: u32 = 0; j < uniforms.norm_size_vectorized; j++) {
1918
- let f32input = ${_a(I,h,"x[j + offset]")};
1919
- let f32scale = ${_a(I,h,"scale[j]")};
1918
+ let f32input = ${pa(I,h,"x[j + offset]")};
1919
+ let f32scale = ${pa(I,h,"scale[j]")};
1920
1920
  output[j + offset] = ${f[0].type.value}((f32input ${s?"":"- mean"}) * inv_std_dev * f32scale
1921
- ${n?`+ ${_a(I,h,"bias[j]")}`:""}
1921
+ ${n?`+ ${pa(I,h,"bias[j]")}`:""}
1922
1922
  );
1923
1923
  }
1924
1924
 
1925
1925
  ${v?"mean_data_output[global_idx] = mean":""};
1926
1926
  ${b?"inv_std_output[global_idx] = inv_std_dev":""};
1927
- }`},y=[{dims:i,dataType:e[0].dataType}];return v&&y.push({dims:g,dataType:1}),b&&y.push({dims:g,dataType:1}),{name:"LayerNormalization",shaderCache:{hint:`${h};${t};${s}`,inputDependencies:x},getRunData:()=>({outputs:y,dispatchGroup:{x:Math.ceil(c/64)},programUniforms:F}),getShaderSource:C}},Ny=(e,r)=>{Uw(e.inputs),e.compute(Gw(e.inputs,r,e.outputCount))}}),Kw,jy,QP=Ve(()=>{"use strict";kt(),hu(),fu(),Kw=e=>{if(!e||e.length!==2)throw new Error("MatMul requires 2 inputs.");if(e[0].dims[e[0].dims.length-1]!==e[1].dims[e[1].dims.length-2])throw new Error("shared dimension does not match.")},jy=e=>{Kw(e.inputs);let r=pa.calcShape(e.inputs[0].dims,e.inputs[1].dims,!0);if(!r)throw new Error("Can't use matmul on the given tensors");let t=r[r.length-1],s=e.inputs[0].dims[e.inputs[0].dims.length-1];if(t<8&&s<8)e.compute(mu(e.inputs,{activation:""},r));else{let o=r[r.length-2],a=Me.size(e.inputs[0].dims.slice(0,-2)),n=Me.size(e.inputs[1].dims.slice(0,-2));if(a!==1&&o===1&&n===1){let i=e.inputs[0].reshape([1,a,s]),l=e.inputs[1].reshape([1,s,t]),c=[1,a,t],_=[i,l];e.compute(Qi(_,{activation:""},r,c),{inputs:_})}else e.compute(Qi(e.inputs,{activation:""},r))}}}),Hw,qw,Qw,Vy,Wy,XP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),Hw=(e,r)=>{if(e.length<3||e.length>4)throw new Error("MatMulNBits requires 3 or 4 inputs");let t=e[0],s=t.dims.length;if(t.dims[s-1]!==r.k)throw new Error("The last dim of input shape does not match the k value");let o=Math.floor((r.k+r.blockSize-1)/r.blockSize),a=r.blockSize/8*r.bits,n=e[1];if(!Me.areEqual(n.dims,[r.n,o,a]))throw new Error("The second inputs must be 3D tensor with shape N X nBlocksPerCol X blobSize");let i=e[2].dims;if(Me.size(i)!==r.n*o)throw new Error("scales input size error.");if(e.length===4){let l=e[3].dims,c=r.bits>4?r.n*o:r.n*Math.floor((o+1)/2);if(Me.size(l)!==c)throw new Error("zeroPoints input size error.")}},qw=(e,r)=>{let t=e[0].dims,s=t.length,o=t[s-2],a=r.k,n=r.n,i=t.slice(0,s-2),l=Me.size(i),c=e[1].dims[2]/4,_=e[0].dataType,u=dr(r.k),d=dr(c),g=dr(n),h=i.concat([o,n]),x=o>1&&n/g%2===0?2:1,F=Me.size(h)/g/x,v=64,b=[],C=[l,o,a/u],y=Me.convertShape(e[1].dims).slice();y.splice(-1,1,c/d),b.push(...dt(C)),b.push(...dt(y)),b.push(...dt(e[2].dims)),e.length===4&&b.push(...dt(Me.convertShape(e[3].dims)));let P=[l,o,n/g];b.push(...dt(P));let I=f=>{let E=C.length,D=Fe("a",e[0].dataType,E,u),O=Fe("b",12,y.length,d),U=Fe("scales",e[2].dataType,e[2].dims.length),W=[D,O,U],z=e.length===4?Fe("zero_points",12,e[3].dims.length):void 0;z&&W.push(z);let X=P.length,J=it("output",e[0].dataType,X,g),q=$r(e[0].dataType),re=(()=>{switch(u){case 1:return`array<${q}, 8>`;case 2:return`mat4x2<${q}>`;case 4:return`mat2x4<${q}>`;default:throw new Error(`${u}-component is not supported.`)}})(),oe=()=>{let Y=`
1927
+ }`},y=[{dims:i,dataType:e[0].dataType}];return v&&y.push({dims:g,dataType:1}),b&&y.push({dims:g,dataType:1}),{name:"LayerNormalization",shaderCache:{hint:`${h};${t};${s}`,inputDependencies:x},getRunData:()=>({outputs:y,dispatchGroup:{x:Math.ceil(c/64)},programUniforms:F}),getShaderSource:C}},jy=(e,r)=>{Gw(e.inputs),e.compute(Kw(e.inputs,r,e.outputCount))}}),Hw,Vy,XP=Ve(()=>{"use strict";kt(),hu(),fu(),Hw=e=>{if(!e||e.length!==2)throw new Error("MatMul requires 2 inputs.");if(e[0].dims[e[0].dims.length-1]!==e[1].dims[e[1].dims.length-2])throw new Error("shared dimension does not match.")},Vy=e=>{Hw(e.inputs);let r=ma.calcShape(e.inputs[0].dims,e.inputs[1].dims,!0);if(!r)throw new Error("Can't use matmul on the given tensors");let t=r[r.length-1],s=e.inputs[0].dims[e.inputs[0].dims.length-1];if(t<8&&s<8)e.compute(mu(e.inputs,{activation:""},r));else{let o=r[r.length-2],a=Me.size(e.inputs[0].dims.slice(0,-2)),n=Me.size(e.inputs[1].dims.slice(0,-2));if(a!==1&&o===1&&n===1){let i=e.inputs[0].reshape([1,a,s]),l=e.inputs[1].reshape([1,s,t]),c=[1,a,t],_=[i,l];e.compute(Qi(_,{activation:""},r,c),{inputs:_})}else e.compute(Qi(e.inputs,{activation:""},r))}}}),qw,Qw,Xw,Wy,Uy,JP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),qw=(e,r)=>{if(e.length<3||e.length>4)throw new Error("MatMulNBits requires 3 or 4 inputs");let t=e[0],s=t.dims.length;if(t.dims[s-1]!==r.k)throw new Error("The last dim of input shape does not match the k value");let o=Math.floor((r.k+r.blockSize-1)/r.blockSize),a=r.blockSize/8*r.bits,n=e[1];if(!Me.areEqual(n.dims,[r.n,o,a]))throw new Error("The second inputs must be 3D tensor with shape N X nBlocksPerCol X blobSize");let i=e[2].dims;if(Me.size(i)!==r.n*o)throw new Error("scales input size error.");if(e.length===4){let l=e[3].dims,c=r.bits>4?r.n*o:r.n*Math.floor((o+1)/2);if(Me.size(l)!==c)throw new Error("zeroPoints input size error.")}},Qw=(e,r)=>{let t=e[0].dims,s=t.length,o=t[s-2],a=r.k,n=r.n,i=t.slice(0,s-2),l=Me.size(i),c=e[1].dims[2]/4,_=e[0].dataType,u=dr(r.k),d=dr(c),g=dr(n),h=i.concat([o,n]),x=o>1&&n/g%2===0?2:1,F=Me.size(h)/g/x,v=64,b=[],C=[l,o,a/u],y=Me.convertShape(e[1].dims).slice();y.splice(-1,1,c/d),b.push(...dt(C)),b.push(...dt(y)),b.push(...dt(e[2].dims)),e.length===4&&b.push(...dt(Me.convertShape(e[3].dims)));let P=[l,o,n/g];b.push(...dt(P));let I=f=>{let E=C.length,D=Fe("a",e[0].dataType,E,u),O=Fe("b",12,y.length,d),U=Fe("scales",e[2].dataType,e[2].dims.length),W=[D,O,U],z=e.length===4?Fe("zero_points",12,e[3].dims.length):void 0;z&&W.push(z);let X=P.length,J=it("output",e[0].dataType,X,g),q=$r(e[0].dataType),re=(()=>{switch(u){case 1:return`array<${q}, 8>`;case 2:return`mat4x2<${q}>`;case 4:return`mat2x4<${q}>`;default:throw new Error(`${u}-component is not supported.`)}})(),oe=()=>{let Y=`
1928
1928
  // reuse a data
1929
1929
  var input_offset = ${D.indicesToOffset(`${D.type.indices}(batch, row, word_offset)`)};
1930
1930
  var a_data: ${re};
@@ -2001,7 +2001,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
2001
2001
  }
2002
2002
  ${J.setByIndices(`${J.type.indices}(batch, row, col + local_id.x)`,"output_value")};
2003
2003
  }
2004
- }`};return{name:"MatMulNBits",shaderCache:{hint:`${r.blockSize};${r.bits};${u};${d};${g};${x};${v}`,inputDependencies:Array(e.length).fill("rank")},getRunData:()=>({outputs:[{dims:h,dataType:_}],dispatchGroup:{x:F},programUniforms:b}),getShaderSource:I}},Qw=(e,r)=>{let t=e[0].dims,s=t.length,o=t[s-2],a=r.k,n=r.n,i=t.slice(0,s-2),l=Me.size(i),c=e[1].dims[2]/4,_=e[0].dataType,u=dr(r.k),d=dr(c),g=i.concat([o,n]),h=128,x=n%8===0?8:n%4===0?4:1,F=h/x,v=F*d*8,b=v/u,C=v/r.blockSize,y=Me.size(g)/x,P=[],I=[l,o,a/u],f=Me.convertShape(e[1].dims).slice();f.splice(-1,1,c/d),P.push(...dt(I)),P.push(...dt(f)),P.push(...dt(e[2].dims)),e.length===4&&P.push(...dt(Me.convertShape(e[3].dims)));let E=[l,o,n];P.push(...dt(E));let D=O=>{let U=I.length,W=Fe("a",e[0].dataType,U,u),z=Fe("b",12,f.length,d),X=Fe("scales",e[2].dataType,e[2].dims.length),J=[W,z,X],q=e.length===4?Fe("zero_points",12,e[3].dims.length):void 0;q&&J.push(q);let re=E.length,oe=it("output",e[0].dataType,re),ne=$r(e[0].dataType),ye=()=>{switch(u){case 1:return`
2004
+ }`};return{name:"MatMulNBits",shaderCache:{hint:`${r.blockSize};${r.bits};${u};${d};${g};${x};${v}`,inputDependencies:Array(e.length).fill("rank")},getRunData:()=>({outputs:[{dims:h,dataType:_}],dispatchGroup:{x:F},programUniforms:b}),getShaderSource:I}},Xw=(e,r)=>{let t=e[0].dims,s=t.length,o=t[s-2],a=r.k,n=r.n,i=t.slice(0,s-2),l=Me.size(i),c=e[1].dims[2]/4,_=e[0].dataType,u=dr(r.k),d=dr(c),g=i.concat([o,n]),h=128,x=n%8===0?8:n%4===0?4:1,F=h/x,v=F*d*8,b=v/u,C=v/r.blockSize,y=Me.size(g)/x,P=[],I=[l,o,a/u],f=Me.convertShape(e[1].dims).slice();f.splice(-1,1,c/d),P.push(...dt(I)),P.push(...dt(f)),P.push(...dt(e[2].dims)),e.length===4&&P.push(...dt(Me.convertShape(e[3].dims)));let E=[l,o,n];P.push(...dt(E));let D=O=>{let U=I.length,W=Fe("a",e[0].dataType,U,u),z=Fe("b",12,f.length,d),X=Fe("scales",e[2].dataType,e[2].dims.length),J=[W,z,X],q=e.length===4?Fe("zero_points",12,e[3].dims.length):void 0;q&&J.push(q);let re=E.length,oe=it("output",e[0].dataType,re),ne=$r(e[0].dataType),ye=()=>{switch(u){case 1:return`
2005
2005
  let a_data0 = vec4<${ne}>(sub_a[word_offset], sub_a[word_offset + 1], sub_a[word_offset + 2], sub_a[word_offset + 3]);
2006
2006
  let a_data1 = vec4<${ne}>(sub_a[word_offset + 4], sub_a[word_offset + 5], sub_a[word_offset + 6], sub_a[word_offset + 7]);`;case 2:return`
2007
2007
  let a_data0 = vec4<${ne}>(sub_a[word_offset], sub_a[word_offset + 1]);
@@ -2075,7 +2075,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
2075
2075
  ${oe.setByIndices(`${oe.type.indices}(batch, row, col + local_idx)`,"output_value")}
2076
2076
  }
2077
2077
  }
2078
- }`};return{name:"BlockwiseMatMulNBits32",shaderCache:{hint:`${r.blockSize};${u};${d};${F};${x}`,inputDependencies:Array(e.length).fill("rank")},getRunData:()=>({outputs:[{dims:g,dataType:_}],dispatchGroup:{x:y},programUniforms:P}),getShaderSource:D}},Vy=(e,r)=>{Hw(e.inputs,r),r.blockSize===32&&e.adapterInfo.isVendor("intel")&&e.adapterInfo.isArchitecture("gen-12lp")?e.compute(Qw(e.inputs,r)):e.compute(qw(e.inputs,r))},Wy=e=>jt(e)}),Xw,Jw,Yw,Zw,eb,tb,rb,sb,Uy,JP=Ve(()=>{"use strict";Mt(),kt(),Ct(),Xw=e=>{if(!e||e.length<1)throw new Error("Too few inputs");if(e[0].dataType!==1&&e[0].dataType!==10)throw new Error("Input type must be float or float16.");if(e.length>=2){let r=e[0].dims.length*2===e[1].dims[0];if(e.length===4&&(r=e[3].dims[0]*2===e[1].dims[0]),!r)throw new Error("The pads should be a 1D tensor of shape [2 * input_rank] or [2 * num_axes].")}},Jw=(e,r,t)=>{let s="";for(let o=r-1;o>=0;--o)s+=`
2078
+ }`};return{name:"BlockwiseMatMulNBits32",shaderCache:{hint:`${r.blockSize};${u};${d};${F};${x}`,inputDependencies:Array(e.length).fill("rank")},getRunData:()=>({outputs:[{dims:g,dataType:_}],dispatchGroup:{x:y},programUniforms:P}),getShaderSource:D}},Wy=(e,r)=>{qw(e.inputs,r),r.blockSize===32&&e.adapterInfo.isVendor("intel")&&e.adapterInfo.isArchitecture("gen-12lp")?e.compute(Xw(e.inputs,r)):e.compute(Qw(e.inputs,r))},Uy=e=>jt(e)}),Jw,Yw,Zw,eb,tb,rb,sb,ob,Gy,YP=Ve(()=>{"use strict";Mt(),kt(),Ct(),Jw=e=>{if(!e||e.length<1)throw new Error("Too few inputs");if(e[0].dataType!==1&&e[0].dataType!==10)throw new Error("Input type must be float or float16.");if(e.length>=2){let r=e[0].dims.length*2===e[1].dims[0];if(e.length===4&&(r=e[3].dims[0]*2===e[1].dims[0]),!r)throw new Error("The pads should be a 1D tensor of shape [2 * input_rank] or [2 * num_axes].")}},Yw=(e,r,t)=>{let s="";for(let o=r-1;o>=0;--o)s+=`
2079
2079
  k = i32(${e.indicesGet("indices",o)}) - ${lt("uniforms.pads",o,t)};
2080
2080
  if (k < 0) {
2081
2081
  break;
@@ -2092,7 +2092,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
2092
2092
  ${s}
2093
2093
  value = x[offset];
2094
2094
  }
2095
- `},Yw=(e,r,t)=>{let s="";for(let o=r-1;o>=0;--o)s+=`
2095
+ `},Zw=(e,r,t)=>{let s="";for(let o=r-1;o>=0;--o)s+=`
2096
2096
  k = i32(${e.indicesGet("indices",o)}) - ${lt("uniforms.pads",o,t)};
2097
2097
  if (k < 0) {
2098
2098
  k = -k;
@@ -2110,7 +2110,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
2110
2110
  var k = 0;
2111
2111
  ${s}
2112
2112
  value = x[offset];
2113
- `},Zw=(e,r,t)=>{let s="";for(let o=r-1;o>=0;--o)s+=`
2113
+ `},eb=(e,r,t)=>{let s="";for(let o=r-1;o>=0;--o)s+=`
2114
2114
  k = i32(${e.indicesGet("indices",o)}) - ${lt("uniforms.pads",o,t)};
2115
2115
  if (k < 0) {
2116
2116
  k = 0;
@@ -2124,7 +2124,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
2124
2124
  var k = 0;
2125
2125
  ${s}
2126
2126
  value = x[offset];
2127
- `},eb=(e,r,t)=>{let s="";for(let o=r-1;o>=0;--o)s+=`
2127
+ `},tb=(e,r,t)=>{let s="";for(let o=r-1;o>=0;--o)s+=`
2128
2128
  k = i32(${e.indicesGet("indices",o)}) - ${lt("uniforms.pads",o,t)};
2129
2129
  if (k < 0) {
2130
2130
  k += i32(${lt("uniforms.x_shape",o,r)}]);
@@ -2138,7 +2138,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
2138
2138
  var k = 0;
2139
2139
  ${s}
2140
2140
  value = x[offset];
2141
- `},tb=(e,r,t)=>{switch(t.mode){case 0:return Jw(e,r,t.pads.length);case 1:return Yw(e,r,t.pads.length);case 2:return Zw(e,r,t.pads.length);case 3:return eb(e,r,t.pads.length);default:throw new Error("Invalid mode")}},rb=(e,r)=>{let t=Me.padShape(e[0].dims.slice(),r.pads),s=e[0].dims,o=Me.size(t),a=[{type:12,data:o},{type:6,data:r.pads}],n=e.length>=3&&e[2].data;r.mode===0&&a.push({type:n?e[2].dataType:1,data:r.value}),a.push(...dt(e[0].dims,t));let i=["rank"],l=c=>{let _=it("output",e[0].dataType,t.length),u=Fe("x",e[0].dataType,s.length),d=u.type.value,g=tb(_,s.length,r),h=[{name:"output_size",type:"u32"},{name:"pads",type:"i32",length:r.pads.length}];return r.mode===0&&h.push({name:"constant_value",type:n?d:"f32"}),`
2141
+ `},rb=(e,r,t)=>{switch(t.mode){case 0:return Yw(e,r,t.pads.length);case 1:return Zw(e,r,t.pads.length);case 2:return eb(e,r,t.pads.length);case 3:return tb(e,r,t.pads.length);default:throw new Error("Invalid mode")}},sb=(e,r)=>{let t=Me.padShape(e[0].dims.slice(),r.pads),s=e[0].dims,o=Me.size(t),a=[{type:12,data:o},{type:6,data:r.pads}],n=e.length>=3&&e[2].data;r.mode===0&&a.push({type:n?e[2].dataType:1,data:r.value}),a.push(...dt(e[0].dims,t));let i=["rank"],l=c=>{let _=it("output",e[0].dataType,t.length),u=Fe("x",e[0].dataType,s.length),d=u.type.value,g=rb(_,s.length,r),h=[{name:"output_size",type:"u32"},{name:"pads",type:"i32",length:r.pads.length}];return r.mode===0&&h.push({name:"constant_value",type:n?d:"f32"}),`
2142
2142
  ${c.registerUniforms(h).declareVariables(u,_)}
2143
2143
  ${c.mainStart()}
2144
2144
  ${c.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
@@ -2148,7 +2148,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
2148
2148
  var value = ${d}(0);
2149
2149
  ${g}
2150
2150
  output[global_idx] = value;
2151
- }`};return{name:"Pad",shaderCache:{hint:`${r.mode}${n}`,inputDependencies:i},getRunData:()=>({outputs:[{dims:t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(Me.size(t)/64)},programUniforms:a}),getShaderSource:l}},sb=(e,r)=>{if(e.length>1){let t=e[1].getBigInt64Array(),s=e.length>=3&&e[2].data?e[2].dataType===10?e[2].getUint16Array()[0]:e[2].getFloat32Array()[0]:0,o=e[0].dims.length,a=new Int32Array(2*o).fill(0);if(e.length>=4){let i=e[3].getBigInt64Array();for(let l=0;l<i.length;l++)a[Number(i[l])]=Number(t[l]),a[Number(i[l])+o]=Number(t[l+i.length])}else t.forEach((i,l)=>a[Number(l)]=Number(i));let n=[];return a.forEach(i=>n.push(i)),{mode:r.mode,value:s,pads:n}}else return r},Uy=(e,r)=>{Xw(e.inputs);let t=sb(e.inputs,r);e.compute(rb(e.inputs,t),{inputs:[0]})}}),rn,md,hd,fd,gd,ob,ab,Md,wd,Gy,Ky,bd,Hy,qy,vd,Qy,Xy,Jy,Yy,YP=Ve(()=>{"use strict";ks(),Mt(),kt(),Ct(),rn=e=>{if(Zt.webgpu.validateInputContent&&(!e||e.length!==1))throw new Error("Pool ops requires 1 input.")},md=(e,r,t)=>{let s=r.format==="NHWC",o=e.dims.slice();s&&o.splice(1,0,o.pop());let a=Object.hasOwnProperty.call(r,"dilations"),n=r.kernelShape.slice(),i=r.strides.slice(),l=a?r.dilations.slice():[],c=r.pads.slice();Hi.adjustPoolAttributes(t,o,n,i,l,c);let _=Hi.computePoolOutputShape(t,o,i,l,n,c,r.autoPad),u=Object.assign({},r);a?Object.assign(u,{kernelShape:n,strides:i,pads:c,dilations:l,cacheKey:r.cacheKey}):Object.assign(u,{kernelShape:n,strides:i,pads:c,cacheKey:r.cacheKey});let d=_.slice();return d.push(d.splice(1,1)[0]),[u,s?d:_]},hd=(e,r)=>{let t=r.format==="NHWC",s=Me.size(e),o=Me.size(r.kernelShape),a=[{type:12,data:s},{type:12,data:o}],n=[{name:"outputSize",type:"u32"},{name:"kernelSize",type:"u32"}];if(r.kernelShape.length<=2){let i=r.kernelShape[r.kernelShape.length-1],l=r.strides[r.strides.length-1],c=r.pads[r.pads.length/2-1],_=r.pads[r.pads.length-1],u=!!(c+_);a.push({type:12,data:i},{type:12,data:l},{type:12,data:c},{type:12,data:_}),n.push({name:"kw",type:"u32"},{name:"sw",type:"u32"},{name:"pwStart",type:"u32"},{name:"pwEnd",type:"u32"});let d=!1;if(r.kernelShape.length===2){let g=r.kernelShape[r.kernelShape.length-2],h=r.strides[r.strides.length-2],x=r.pads[r.pads.length/2-2],F=r.pads[r.pads.length-2];d=!!(x+F),a.push({type:12,data:g},{type:12,data:h},{type:12,data:x},{type:12,data:F}),n.push({name:"kh",type:"u32"},{name:"sh",type:"u32"},{name:"phStart",type:"u32"},{name:"phEnd",type:"u32"})}return[a,n,!0,u,d]}else{if(t)throw new Error("Pooling with kernelShape.length > 2 is not supported for NHWC format.");let i=Me.computeStrides(r.kernelShape);a.push({type:12,data:i},{type:12,data:r.pads},{type:12,data:r.strides}),n.push({name:"kernelStrides",type:"u32",length:i.length},{name:"pads",type:"u32",length:r.pads.length},{name:"strides",type:"u32",length:r.strides.length});let l=r.pads.reduce((c,_)=>c+_);return[a,n,!!l,!1,!1]}},fd=(e,r,t,s,o,a,n,i,l,c,_,u)=>{let d=o.format==="NHWC",g=r.type.value,h=it("output",r.type.tensor,s);if(o.kernelShape.length<=2){let x="",F="",v="",b=t-(d?2:1);if(_?x=`
2151
+ }`};return{name:"Pad",shaderCache:{hint:`${r.mode}${n}`,inputDependencies:i},getRunData:()=>({outputs:[{dims:t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(Me.size(t)/64)},programUniforms:a}),getShaderSource:l}},ob=(e,r)=>{if(e.length>1){let t=e[1].getBigInt64Array(),s=e.length>=3&&e[2].data?e[2].dataType===10?e[2].getUint16Array()[0]:e[2].getFloat32Array()[0]:0,o=e[0].dims.length,a=new Int32Array(2*o).fill(0);if(e.length>=4){let i=e[3].getBigInt64Array();for(let l=0;l<i.length;l++)a[Number(i[l])]=Number(t[l]),a[Number(i[l])+o]=Number(t[l+i.length])}else t.forEach((i,l)=>a[Number(l)]=Number(i));let n=[];return a.forEach(i=>n.push(i)),{mode:r.mode,value:s,pads:n}}else return r},Gy=(e,r)=>{Jw(e.inputs);let t=ob(e.inputs,r);e.compute(sb(e.inputs,t),{inputs:[0]})}}),sn,md,hd,fd,gd,ab,nb,Md,wd,Ky,Hy,bd,qy,Qy,vd,Xy,Jy,Yy,Zy,ZP=Ve(()=>{"use strict";ks(),Mt(),kt(),Ct(),sn=e=>{if(Zt.webgpu.validateInputContent&&(!e||e.length!==1))throw new Error("Pool ops requires 1 input.")},md=(e,r,t)=>{let s=r.format==="NHWC",o=e.dims.slice();s&&o.splice(1,0,o.pop());let a=Object.hasOwnProperty.call(r,"dilations"),n=r.kernelShape.slice(),i=r.strides.slice(),l=a?r.dilations.slice():[],c=r.pads.slice();Hi.adjustPoolAttributes(t,o,n,i,l,c);let _=Hi.computePoolOutputShape(t,o,i,l,n,c,r.autoPad),u=Object.assign({},r);a?Object.assign(u,{kernelShape:n,strides:i,pads:c,dilations:l,cacheKey:r.cacheKey}):Object.assign(u,{kernelShape:n,strides:i,pads:c,cacheKey:r.cacheKey});let d=_.slice();return d.push(d.splice(1,1)[0]),[u,s?d:_]},hd=(e,r)=>{let t=r.format==="NHWC",s=Me.size(e),o=Me.size(r.kernelShape),a=[{type:12,data:s},{type:12,data:o}],n=[{name:"outputSize",type:"u32"},{name:"kernelSize",type:"u32"}];if(r.kernelShape.length<=2){let i=r.kernelShape[r.kernelShape.length-1],l=r.strides[r.strides.length-1],c=r.pads[r.pads.length/2-1],_=r.pads[r.pads.length-1],u=!!(c+_);a.push({type:12,data:i},{type:12,data:l},{type:12,data:c},{type:12,data:_}),n.push({name:"kw",type:"u32"},{name:"sw",type:"u32"},{name:"pwStart",type:"u32"},{name:"pwEnd",type:"u32"});let d=!1;if(r.kernelShape.length===2){let g=r.kernelShape[r.kernelShape.length-2],h=r.strides[r.strides.length-2],x=r.pads[r.pads.length/2-2],F=r.pads[r.pads.length-2];d=!!(x+F),a.push({type:12,data:g},{type:12,data:h},{type:12,data:x},{type:12,data:F}),n.push({name:"kh",type:"u32"},{name:"sh",type:"u32"},{name:"phStart",type:"u32"},{name:"phEnd",type:"u32"})}return[a,n,!0,u,d]}else{if(t)throw new Error("Pooling with kernelShape.length > 2 is not supported for NHWC format.");let i=Me.computeStrides(r.kernelShape);a.push({type:12,data:i},{type:12,data:r.pads},{type:12,data:r.strides}),n.push({name:"kernelStrides",type:"u32",length:i.length},{name:"pads",type:"u32",length:r.pads.length},{name:"strides",type:"u32",length:r.strides.length});let l=r.pads.reduce((c,_)=>c+_);return[a,n,!!l,!1,!1]}},fd=(e,r,t,s,o,a,n,i,l,c,_,u)=>{let d=o.format==="NHWC",g=r.type.value,h=it("output",r.type.tensor,s);if(o.kernelShape.length<=2){let x="",F="",v="",b=t-(d?2:1);if(_?x=`
2152
2152
  for (var i: u32 = 0u; i < uniforms.kw; i++) {
2153
2153
  xIndices[${b}] = indices[${b}] * uniforms.sw - uniforms.pwStart + i;
2154
2154
  if (xIndices[${b}] < 0 || xIndices[${b}]
@@ -2237,9 +2237,9 @@ fn calculateOutputIndex(index: u32) -> u32 {
2237
2237
  ${n}
2238
2238
 
2239
2239
  output[global_idx] = value;
2240
- }`}},gd=e=>`${e.format};${e.ceilMode};${e.autoPad};${e.kernelShape.length}`,ob=e=>`${gd(e)};${e.countIncludePad}`,ab=e=>`${gd(e)};${e.storageOrder};${e.dilations}`,Md=e=>({format:e.format,autoPad:["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][e.auto_pad],ceilMode:e.ceil_mode,kernelShape:e.kernel_shape,strides:e.strides,pads:e.pads}),wd=(e,r,t,s)=>{let[o,a]=md(r,s,t),n=Fe("x",r.dataType,r.dims.length),i=n.type.value,l="value += x_val;",c="";o.countIncludePad?c+=`value /= ${i}(uniforms.kernelSize);`:c+=`value /= ${i}(i32(uniforms.kernelSize) - pad);`;let[_,u,d,g,h]=hd(a,o);_.push(...dt(r.dims,a));let x=["rank"];return{name:e,shaderCache:{hint:`${s.cacheKey};${d};${g};${h}`,inputDependencies:x},getRunData:()=>({outputs:[{dims:a,dataType:r.dataType}],dispatchGroup:{x:Math.ceil(Me.size(a)/64)},programUniforms:_}),getShaderSource:F=>fd(F,n,r.dims.length,a.length,o,l,c,0,u,d,g,h)}},Gy=e=>{let r=e.count_include_pad!==0,t=Md(e);if(t.ceilMode!==0)throw new Error("using ceil() in shape computation is not yet supported for AveragePool");let s={countIncludePad:r,...t,cacheKey:""};return{...s,cacheKey:ob(s)}},Ky=(e,r)=>{rn(e.inputs),e.compute(wd("AveragePool",e.inputs[0],!1,r))},bd={autoPad:"",ceilMode:0,countIncludePad:!1,kernelShape:[],strides:[],pads:[],storageOrder:0,dilations:[]},Hy=e=>{let r=e.format;return{format:r,...bd,cacheKey:r}},qy=(e,r)=>{rn(e.inputs),e.compute(wd("GlobalAveragePool",e.inputs[0],!0,r))},vd=(e,r,t,s)=>{let[o,a]=md(r,s,t),n=`
2240
+ }`}},gd=e=>`${e.format};${e.ceilMode};${e.autoPad};${e.kernelShape.length}`,ab=e=>`${gd(e)};${e.countIncludePad}`,nb=e=>`${gd(e)};${e.storageOrder};${e.dilations}`,Md=e=>({format:e.format,autoPad:["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][e.auto_pad],ceilMode:e.ceil_mode,kernelShape:e.kernel_shape,strides:e.strides,pads:e.pads}),wd=(e,r,t,s)=>{let[o,a]=md(r,s,t),n=Fe("x",r.dataType,r.dims.length),i=n.type.value,l="value += x_val;",c="";o.countIncludePad?c+=`value /= ${i}(uniforms.kernelSize);`:c+=`value /= ${i}(i32(uniforms.kernelSize) - pad);`;let[_,u,d,g,h]=hd(a,o);_.push(...dt(r.dims,a));let x=["rank"];return{name:e,shaderCache:{hint:`${s.cacheKey};${d};${g};${h}`,inputDependencies:x},getRunData:()=>({outputs:[{dims:a,dataType:r.dataType}],dispatchGroup:{x:Math.ceil(Me.size(a)/64)},programUniforms:_}),getShaderSource:F=>fd(F,n,r.dims.length,a.length,o,l,c,0,u,d,g,h)}},Ky=e=>{let r=e.count_include_pad!==0,t=Md(e);if(t.ceilMode!==0)throw new Error("using ceil() in shape computation is not yet supported for AveragePool");let s={countIncludePad:r,...t,cacheKey:""};return{...s,cacheKey:ab(s)}},Hy=(e,r)=>{sn(e.inputs),e.compute(wd("AveragePool",e.inputs[0],!1,r))},bd={autoPad:"",ceilMode:0,countIncludePad:!1,kernelShape:[],strides:[],pads:[],storageOrder:0,dilations:[]},qy=e=>{let r=e.format;return{format:r,...bd,cacheKey:r}},Qy=(e,r)=>{sn(e.inputs),e.compute(wd("GlobalAveragePool",e.inputs[0],!0,r))},vd=(e,r,t,s)=>{let[o,a]=md(r,s,t),n=`
2241
2241
  value = max(x_val, value);
2242
- `,i="",l=Fe("x",r.dataType,r.dims.length),c=["rank"],[_,u,d,g,h]=hd(a,o);return _.push(...dt(r.dims,a)),{name:e,shaderCache:{hint:`${s.cacheKey};${d};${g};${h}`,inputDependencies:c},getRunData:()=>({outputs:[{dims:a,dataType:r.dataType}],dispatchGroup:{x:Math.ceil(Me.size(a)/64)},programUniforms:_}),getShaderSource:x=>fd(x,l,r.dims.length,a.length,o,n,i,r.dataType===10?-65504:-1e5,u,d,g,h)}},Qy=(e,r)=>{rn(e.inputs),e.compute(vd("MaxPool",e.inputs[0],!1,r))},Xy=e=>{let r=e.storage_order,t=e.dilations,s=Md(e);if(r!==0)throw new Error("column major storage order is not yet supported for MaxPool");if(s.ceilMode!==0)throw new Error("using ceil() in shape computation is not yet supported for MaxPool");let o={storageOrder:r,dilations:t,...s,cacheKey:""};return{...o,cacheKey:ab(o)}},Jy=e=>{let r=e.format;return{format:r,...bd,cacheKey:r}},Yy=(e,r)=>{rn(e.inputs),e.compute(vd("GlobalMaxPool",e.inputs[0],!0,r))}}),nb,ib,Zy,e0,ZP=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),nb=(e,r)=>{if(e.length<2||e.length>3)throw new Error("DequantizeLinear requires 2 or 3 inputs.");if(e.length===3&&e[1].dims===e[2].dims)throw new Error("x-scale and x-zero-point must have the same shape.");if(e.length===3&&e[0].dataType!==e[2].dataType)throw new Error("x and x-zero-point must have the same data type.");if(e[0].dataType===6&&e.length>2)throw new Error("In the case of dequantizing int32 there is no zero point.");if(e[1].dims.length!==0&&e[1].dims.length!==1&&e[1].dims.length!==e[0].dims.length)throw new Error("scale input must be a scalar, a 1D tensor, or have the same rank as the input tensor.");if(e.length>2){if(e[0].dataType!==e[2].dataType)throw new Error("x and x-zero-point must have the same data type.");if(e[1].dims.length!==e[2].dims.length)throw new Error("scale and zero-point inputs must have the same rank.");if(!e[1].dims.map((t,s)=>t===e[2].dims[s]).reduce((t,s)=>t&&s,!0))throw new Error("scale and zero-point inputs must have the same shape.")}if(r.blockSize>0){if(e[1].dims.length===0||e[1].dims.length===1&&e[1].dims[0]===1)throw new Error("blockSize must be set only for block quantization.");if(!e[1].dims.map((o,a)=>a===r.axis||o===e[0].dims[a]).reduce((o,a)=>o&&a,!0))throw new Error("For block qunatization, scale input shape to match the input shape except for the axis");if(e[1].dims.length!==e[0].dims.length)throw new Error("For block qunatization the scale input rank must be the same as the x rank.");let t=e[0].dims[r.axis],s=e[1].dims[r.axis];if(r.blockSize<Math.ceil(t/s)||r.blockSize>Math.ceil(t/(s-1)-1))throw new Error("blockSize must be with in the range [ceil(dI / Si), ceil(dI / (Si - 1) - 1)].")}},ib=(e,r)=>{let t=Me.normalizeAxis(r.axis,e[0].dims.length),s=e[0].dataType,o=s===3,a=e[0].dims,n=e[1].dataType,i=Me.size(a),l=s===3||s===2,c=l?[Math.ceil(Me.size(e[0].dims)/4)]:e[0].dims,_=e[1].dims,u=e.length>2?e[2]:void 0,d=u?l?[Math.ceil(Me.size(u.dims)/4)]:u.dims:void 0,g=_.length===0||_.length===1&&_[0]===1,h=g===!1&&_.length===1,x=dr(i),F=g&&(!l||x===4),v=F?x:1,b=F&&!l?x:1,C=Fe("input",l?12:s,c.length,b),y=Fe("scale",n,_.length),P=u?Fe("zero_point",l?12:s,d.length):void 0,I=it("output",n,a.length,v),f=[C,y];P&&f.push(P);let E=[c,_];u&&E.push(d);let D=[{type:12,data:i/v},{type:12,data:t},{type:12,data:r.blockSize},...dt(...E,a)],O=U=>{let W=[{name:"output_size",type:"u32"},{name:"axis",type:"u32"},{name:"block_size",type:"u32"}];return`
2242
+ `,i="",l=Fe("x",r.dataType,r.dims.length),c=["rank"],[_,u,d,g,h]=hd(a,o);return _.push(...dt(r.dims,a)),{name:e,shaderCache:{hint:`${s.cacheKey};${d};${g};${h}`,inputDependencies:c},getRunData:()=>({outputs:[{dims:a,dataType:r.dataType}],dispatchGroup:{x:Math.ceil(Me.size(a)/64)},programUniforms:_}),getShaderSource:x=>fd(x,l,r.dims.length,a.length,o,n,i,r.dataType===10?-65504:-1e5,u,d,g,h)}},Xy=(e,r)=>{sn(e.inputs),e.compute(vd("MaxPool",e.inputs[0],!1,r))},Jy=e=>{let r=e.storage_order,t=e.dilations,s=Md(e);if(r!==0)throw new Error("column major storage order is not yet supported for MaxPool");if(s.ceilMode!==0)throw new Error("using ceil() in shape computation is not yet supported for MaxPool");let o={storageOrder:r,dilations:t,...s,cacheKey:""};return{...o,cacheKey:nb(o)}},Yy=e=>{let r=e.format;return{format:r,...bd,cacheKey:r}},Zy=(e,r)=>{sn(e.inputs),e.compute(vd("GlobalMaxPool",e.inputs[0],!0,r))}}),ib,lb,e0,t0,eE=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),ib=(e,r)=>{if(e.length<2||e.length>3)throw new Error("DequantizeLinear requires 2 or 3 inputs.");if(e.length===3&&e[1].dims===e[2].dims)throw new Error("x-scale and x-zero-point must have the same shape.");if(e.length===3&&e[0].dataType!==e[2].dataType)throw new Error("x and x-zero-point must have the same data type.");if(e[0].dataType===6&&e.length>2)throw new Error("In the case of dequantizing int32 there is no zero point.");if(e[1].dims.length!==0&&e[1].dims.length!==1&&e[1].dims.length!==e[0].dims.length)throw new Error("scale input must be a scalar, a 1D tensor, or have the same rank as the input tensor.");if(e.length>2){if(e[0].dataType!==e[2].dataType)throw new Error("x and x-zero-point must have the same data type.");if(e[1].dims.length!==e[2].dims.length)throw new Error("scale and zero-point inputs must have the same rank.");if(!e[1].dims.map((t,s)=>t===e[2].dims[s]).reduce((t,s)=>t&&s,!0))throw new Error("scale and zero-point inputs must have the same shape.")}if(r.blockSize>0){if(e[1].dims.length===0||e[1].dims.length===1&&e[1].dims[0]===1)throw new Error("blockSize must be set only for block quantization.");if(!e[1].dims.map((o,a)=>a===r.axis||o===e[0].dims[a]).reduce((o,a)=>o&&a,!0))throw new Error("For block qunatization, scale input shape to match the input shape except for the axis");if(e[1].dims.length!==e[0].dims.length)throw new Error("For block qunatization the scale input rank must be the same as the x rank.");let t=e[0].dims[r.axis],s=e[1].dims[r.axis];if(r.blockSize<Math.ceil(t/s)||r.blockSize>Math.ceil(t/(s-1)-1))throw new Error("blockSize must be with in the range [ceil(dI / Si), ceil(dI / (Si - 1) - 1)].")}},lb=(e,r)=>{let t=Me.normalizeAxis(r.axis,e[0].dims.length),s=e[0].dataType,o=s===3,a=e[0].dims,n=e[1].dataType,i=Me.size(a),l=s===3||s===2,c=l?[Math.ceil(Me.size(e[0].dims)/4)]:e[0].dims,_=e[1].dims,u=e.length>2?e[2]:void 0,d=u?l?[Math.ceil(Me.size(u.dims)/4)]:u.dims:void 0,g=_.length===0||_.length===1&&_[0]===1,h=g===!1&&_.length===1,x=dr(i),F=g&&(!l||x===4),v=F?x:1,b=F&&!l?x:1,C=Fe("input",l?12:s,c.length,b),y=Fe("scale",n,_.length),P=u?Fe("zero_point",l?12:s,d.length):void 0,I=it("output",n,a.length,v),f=[C,y];P&&f.push(P);let E=[c,_];u&&E.push(d);let D=[{type:12,data:i/v},{type:12,data:t},{type:12,data:r.blockSize},...dt(...E,a)],O=U=>{let W=[{name:"output_size",type:"u32"},{name:"axis",type:"u32"},{name:"block_size",type:"u32"}];return`
2243
2243
  ${U.registerUniforms(W).declareVariables(...f,I)}
2244
2244
  ${U.mainStart()}
2245
2245
  ${U.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
@@ -2277,12 +2277,12 @@ fn calculateOutputIndex(index: u32) -> u32 {
2277
2277
  let zero_point_value = zero_point_vec[zero_point_offset % 4];`:`let zero_point_value = ${P.getByIndices("scale_indices")};`:`let zero_point_value = ${l?o?"i32":"u32":C.type.value}(0);`};
2278
2278
  // Compute and write output
2279
2279
  ${I.setByOffset("global_idx",`${I.type.value}(x_value - zero_point_value) * scale_value`)};
2280
- }`};return{name:"DequantizeLinear",shaderCache:{hint:r.cacheKey,inputDependencies:P?["rank","rank","rank"]:["rank","rank"]},getShaderSource:O,getRunData:()=>({outputs:[{dims:a,dataType:n}],dispatchGroup:{x:Math.ceil(i/v/64),y:1,z:1},programUniforms:D})}},Zy=(e,r)=>{nb(e.inputs,r),e.compute(ib(e.inputs,r))},e0=e=>jt({axis:e.axis,blockSize:e.blockSize})}),lb,cb,t0,eE=Ve(()=>{"use strict";ks(),Mt(),Ct(),lb=(e,r,t)=>{let s=e===r,o=e<r&&t<0,a=e>r&&t>0;if(s||o||a)throw new Error("Range these inputs' contents are invalid.")},cb=(e,r,t,s)=>{let o=Math.abs(Math.ceil((r-e)/t)),a=[o],n=o,i=[{type:12,data:n},{type:s,data:e},{type:s,data:t},...dt(a)],l=c=>{let _=it("output",s,a.length),u=_.type.value,d=[{name:"outputSize",type:"u32"},{name:"start",type:u},{name:"delta",type:u}];return`
2280
+ }`};return{name:"DequantizeLinear",shaderCache:{hint:r.cacheKey,inputDependencies:P?["rank","rank","rank"]:["rank","rank"]},getShaderSource:O,getRunData:()=>({outputs:[{dims:a,dataType:n}],dispatchGroup:{x:Math.ceil(i/v/64),y:1,z:1},programUniforms:D})}},e0=(e,r)=>{ib(e.inputs,r),e.compute(lb(e.inputs,r))},t0=e=>jt({axis:e.axis,blockSize:e.blockSize})}),cb,db,r0,tE=Ve(()=>{"use strict";ks(),Mt(),Ct(),cb=(e,r,t)=>{let s=e===r,o=e<r&&t<0,a=e>r&&t>0;if(s||o||a)throw new Error("Range these inputs' contents are invalid.")},db=(e,r,t,s)=>{let o=Math.abs(Math.ceil((r-e)/t)),a=[o],n=o,i=[{type:12,data:n},{type:s,data:e},{type:s,data:t},...dt(a)],l=c=>{let _=it("output",s,a.length),u=_.type.value,d=[{name:"outputSize",type:"u32"},{name:"start",type:u},{name:"delta",type:u}];return`
2281
2281
  ${c.registerUniforms(d).declareVariables(_)}
2282
2282
  ${c.mainStart()}
2283
2283
  ${c.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")}
2284
2284
  output[global_idx] = uniforms.start + ${u}(global_idx) * uniforms.delta;
2285
- }`};return{name:"Range",shaderCache:{hint:`${s}`},getShaderSource:l,getRunData:()=>({outputs:[{dims:a,dataType:s}],dispatchGroup:{x:Math.ceil(n/64)},programUniforms:i})}},t0=e=>{let r=0,t=0,s=0;e.inputs[0].dataType===6?(r=e.inputs[0].getInt32Array()[0],t=e.inputs[1].getInt32Array()[0],s=e.inputs[2].getInt32Array()[0]):e.inputs[0].dataType===1&&(r=e.inputs[0].getFloat32Array()[0],t=e.inputs[1].getFloat32Array()[0],s=e.inputs[2].getFloat32Array()[0]),Zt.webgpu.validateInputContent&&lb(r,t,s),e.compute(cb(r,t,s,e.inputs[0].dataType),{inputs:[]})}}),db,xd,yd,ub,r0,s0,tE=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),db=(e,r,t,s)=>{if(e!=="none"&&s!=="i32"&&s!=="u32"&&s!=="f32")throw new Error(`Input ${s} is not supported with reduction ${e}.`);let o=`{
2285
+ }`};return{name:"Range",shaderCache:{hint:`${s}`},getShaderSource:l,getRunData:()=>({outputs:[{dims:a,dataType:s}],dispatchGroup:{x:Math.ceil(n/64)},programUniforms:i})}},r0=e=>{let r=0,t=0,s=0;e.inputs[0].dataType===6?(r=e.inputs[0].getInt32Array()[0],t=e.inputs[1].getInt32Array()[0],s=e.inputs[2].getInt32Array()[0]):e.inputs[0].dataType===1&&(r=e.inputs[0].getFloat32Array()[0],t=e.inputs[1].getFloat32Array()[0],s=e.inputs[2].getFloat32Array()[0]),Zt.webgpu.validateInputContent&&cb(r,t,s),e.compute(db(r,t,s,e.inputs[0].dataType),{inputs:[]})}}),ub,xd,yd,_b,s0,o0,rE=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),ub=(e,r,t,s)=>{if(e!=="none"&&s!=="i32"&&s!=="u32"&&s!=="f32")throw new Error(`Input ${s} is not supported with reduction ${e}.`);let o=`{
2286
2286
  var oldValue = 0;
2287
2287
  loop {
2288
2288
  let newValueF32 =`,a=`;
@@ -2314,8 +2314,8 @@ fn calculateOutputIndex(index: u32) -> u32 {
2314
2314
  }
2315
2315
  data_offset += u32((u32(index) * element_count_dim));`,yd=(e,r,t)=>`for (var i = 0u; i < uniforms.num_updates_elements; i++) {
2316
2316
  let value = updates[uniforms.num_updates_elements * ${t?"global_idx":"idx"} + i];
2317
- ${db(e.reduction,"output[data_offset + i]","value",r)}
2318
- }`,ub=(e,r)=>{let t=e[0].dims,s=e[1].dims,o=t,a=1,n=Math.ceil(Me.size(s)/a),i=s[s.length-1],l=Me.sizeFromDimension(t,i),c=Me.sizeFromDimension(s,0)/i,_=[{type:12,data:n},{type:12,data:i},{type:12,data:l},...dt(e[1].dims,e[2].dims,o)],u=d=>{let g=Fe("indices",e[1].dataType,e[1].dims.length),h=Fe("updates",e[2].dataType,e[2].dims.length,a),x=r.reduction!=="none"&&r.reduction!==""?Iv("output",e[0].dataType,o.length):it("output",e[0].dataType,o.length,a);return`
2317
+ ${ub(e.reduction,"output[data_offset + i]","value",r)}
2318
+ }`,_b=(e,r)=>{let t=e[0].dims,s=e[1].dims,o=t,a=1,n=Math.ceil(Me.size(s)/a),i=s[s.length-1],l=Me.sizeFromDimension(t,i),c=Me.sizeFromDimension(s,0)/i,_=[{type:12,data:n},{type:12,data:i},{type:12,data:l},...dt(e[1].dims,e[2].dims,o)],u=d=>{let g=Fe("indices",e[1].dataType,e[1].dims.length),h=Fe("updates",e[2].dataType,e[2].dims.length,a),x=r.reduction!=="none"&&r.reduction!==""?Av("output",e[0].dataType,o.length):it("output",e[0].dataType,o.length,a);return`
2319
2319
  ${d.registerUniform("output_size","u32").registerUniform("last_index_dimension","u32").registerUniform("num_updates_elements","u32").declareVariables(g,h,x)}
2320
2320
  ${d.mainStart()}
2321
2321
  ${d.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
@@ -2360,8 +2360,8 @@ fn calculateOutputIndex(index: u32) -> u32 {
2360
2360
  ${xd(t.length,!0)}
2361
2361
  }
2362
2362
  ${yd(r,x.type.value,!0)}
2363
- }`};return{name:"ScatterND",shaderCache:{hint:`${r.cacheKey}_${r.reduction}`,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:o,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(n/64)},programUniforms:_}),getShaderSource:u}},r0=e=>jt({reduction:e.reduction}),s0=(e,r)=>{e.compute(ub(e.inputs,r),{inputs:[e.inputs[1],e.inputs[2]],outputs:[]})}}),_b,pb,mb,Td,hb,fb,gb,Mb,wb,bb,vb,xb,Pd,yb,Tb,Pb,Eb,kb,o0,a0,rE=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),_b=(e,r)=>{if(e.every(t=>t>0||(()=>{throw new Error("Resize requires scales input values to be positive")})),e.length>0){if(r.mode==="linear"){if(!(e.length===2||e.length===3||e.length===4&&e[0]===1&&e[1]===1||e.length===4&&e[0]===1&&e[3]===1||e.length===5&&e[0]===1&&e[1]===1))throw new Error(`For linear mode, Resize requires scales to be 2D, 3D, 4D with either two outermost or one innermost and
2364
- one outermost scale values equal to 1, or 5D with two outermost scale values equal to 1`)}else if(r.mode==="cubic"&&!(e.length===2||e.length===4&&e[0]===1&&e[1]===1||e.length===4&&e[0]===1&&e[3]===1))throw new Error("Resize requires scales input size to be 2 or 4 for cubic mode")}},pb=(e,r,t)=>{r.every(o=>o>=0&&o<t||(()=>{throw new Error("Resize requires axes input values to be positive and less than rank")}));let s=new Array(t).fill(1);return r.forEach((o,a)=>s[o]=e[a]),s},mb=(e,r,t,s,o,a)=>{let[n,i,l]=t>10?[1,2,3]:[-1,e.length>1?1:-1,-1],c=e[0].dims.length;if(n>0&&e.length>n&&e[n].dims.length>0)e[n].getFloat32Array().forEach(_=>a.push(_));else if(r.coordinateTransformMode==="tf_crop_and_resize")throw new Error("Resize requires RoI input to be specified when coordinateTransformMode is tfCropAndResize");if(i>0&&e.length>i&&e[i].dims.length===1&&e[i].dims[0]>0){if(e[i].getFloat32Array().forEach(_=>s.push(_)),s.length!==0&&s.length!==c&&t>=18&&s.length!==r.axes.length)throw new Error("Resize requires scales input size to be same as input rank or axes size for opset 18 and up");_b(s,r),r.axes.length>0&&pb(s,r.axes,c).forEach((_,u)=>s[u]=_)}if(l>0&&e.length>l&&e[l].dims.length===1&&e[l].dims[0]>0&&(e[l].getBigInt64Array().forEach(_=>o.push(Number(_))),o.length!==0&&o.length!==c&&t>=18&&o.length!==r.axes.length))throw new Error("Resize requires sizes input size to be same as input rank or axes size for opset 18 and up");if(r.axes.length>0){if(s.length!==0&&s.length!==r.axes.length)throw new Error('Resize requires "scales" input size to be of axes rank when axes attributes is specified');if(o.length!==0&&o.length!==r.axes.length)throw new Error('Resize requires "sizes" input size to be of rank axes rank when axes attributes is specified')}if(typeof s<"u"&&typeof o<"u"&&s.length>0&&o.length>c)throw new Error("Resize requires only of scales or sizes to be specified")},Td=(e,r,t,s)=>`
2363
+ }`};return{name:"ScatterND",shaderCache:{hint:`${r.cacheKey}_${r.reduction}`,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:o,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(n/64)},programUniforms:_}),getShaderSource:u}},s0=e=>jt({reduction:e.reduction}),o0=(e,r)=>{e.compute(_b(e.inputs,r),{inputs:[e.inputs[1],e.inputs[2]],outputs:[]})}}),pb,mb,hb,Td,fb,gb,Mb,wb,bb,vb,xb,yb,Pd,Tb,Pb,Eb,kb,Cb,a0,n0,sE=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),pb=(e,r)=>{if(e.every(t=>t>0||(()=>{throw new Error("Resize requires scales input values to be positive")})),e.length>0){if(r.mode==="linear"){if(!(e.length===2||e.length===3||e.length===4&&e[0]===1&&e[1]===1||e.length===4&&e[0]===1&&e[3]===1||e.length===5&&e[0]===1&&e[1]===1))throw new Error(`For linear mode, Resize requires scales to be 2D, 3D, 4D with either two outermost or one innermost and
2364
+ one outermost scale values equal to 1, or 5D with two outermost scale values equal to 1`)}else if(r.mode==="cubic"&&!(e.length===2||e.length===4&&e[0]===1&&e[1]===1||e.length===4&&e[0]===1&&e[3]===1))throw new Error("Resize requires scales input size to be 2 or 4 for cubic mode")}},mb=(e,r,t)=>{r.every(o=>o>=0&&o<t||(()=>{throw new Error("Resize requires axes input values to be positive and less than rank")}));let s=new Array(t).fill(1);return r.forEach((o,a)=>s[o]=e[a]),s},hb=(e,r,t,s,o,a)=>{let[n,i,l]=t>10?[1,2,3]:[-1,e.length>1?1:-1,-1],c=e[0].dims.length;if(n>0&&e.length>n&&e[n].dims.length>0)e[n].getFloat32Array().forEach(_=>a.push(_));else if(r.coordinateTransformMode==="tf_crop_and_resize")throw new Error("Resize requires RoI input to be specified when coordinateTransformMode is tfCropAndResize");if(i>0&&e.length>i&&e[i].dims.length===1&&e[i].dims[0]>0){if(e[i].getFloat32Array().forEach(_=>s.push(_)),s.length!==0&&s.length!==c&&t>=18&&s.length!==r.axes.length)throw new Error("Resize requires scales input size to be same as input rank or axes size for opset 18 and up");pb(s,r),r.axes.length>0&&mb(s,r.axes,c).forEach((_,u)=>s[u]=_)}if(l>0&&e.length>l&&e[l].dims.length===1&&e[l].dims[0]>0&&(e[l].getBigInt64Array().forEach(_=>o.push(Number(_))),o.length!==0&&o.length!==c&&t>=18&&o.length!==r.axes.length))throw new Error("Resize requires sizes input size to be same as input rank or axes size for opset 18 and up");if(r.axes.length>0){if(s.length!==0&&s.length!==r.axes.length)throw new Error('Resize requires "scales" input size to be of axes rank when axes attributes is specified');if(o.length!==0&&o.length!==r.axes.length)throw new Error('Resize requires "sizes" input size to be of rank axes rank when axes attributes is specified')}if(typeof s<"u"&&typeof o<"u"&&s.length>0&&o.length>c)throw new Error("Resize requires only of scales or sizes to be specified")},Td=(e,r,t,s)=>`
2365
2365
  // The whole part and the fractional part are calculated separately due to inaccuracy of floating
2366
2366
  // point division. As an example, f32(21) / f32(7) may evaluate to 2.99... instead of 3, causing an
2367
2367
  // offset-by-one error later in floor().
@@ -2369,7 +2369,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
2369
2369
  let whole = ${s}(big / (${t}));
2370
2370
  let fract = ${s}(big % (${t})) / ${s}(${t});
2371
2371
  return whole + fract;
2372
- `,hb=(e,r)=>`fn getOriginalCoordinateFromResizedCoordinate(xResized: u32, xScale: f32, lengthResized: u32,
2372
+ `,fb=(e,r)=>`fn getOriginalCoordinateFromResizedCoordinate(xResized: u32, xScale: f32, lengthResized: u32,
2373
2373
  lengthOriginal: u32, roiStart: f32, roiEnd: f32) -> ${r} { `+(()=>{switch(e){case"asymmetric":return`
2374
2374
  if (xScale < 1.0 || floor(xScale) != xScale) {
2375
2375
  return ${r}(xResized) / ${r}(xScale);
@@ -2394,7 +2394,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
2394
2394
  const adjustment = ${r}(lengthResized) / outputWidth;
2395
2395
  const center = ${r}(lengthOriginal) / 2;
2396
2396
  const offset = center * (1 - adjustment);
2397
- return offset + ((${r}(xResized) + 0.5) / ${r}(xScale)) - 0.5;`;case"half_pixel":return`return ((${r}(xResized) + 0.5) / ${r}(xScale)) - 0.5;`;default:throw new Error(`Coordinate transform mode ${e} is not supported`)}})()+"}",fb=(e,r,t)=>`fn getNearestPixelFromOriginal(xOriginal: ${t}, isDownSample: bool) -> ${t} {`+(()=>{switch(e){case"round_prefer_ceil":return"if (fract(xOriginal) == 0.5) { return ceil(xOriginal); } else { return round(xOriginal); }";case"floor":return"return floor(xOriginal);";case"ceil":return"return ceil(xOriginal);";case"round_prefer_floor":return"if (fract(xOriginal) == 0.5) { return floor(xOriginal); } else { return round(xOriginal); }";default:if(r<11)return"if (isDownSample) { return ceil(xOriginal); } else { return xOriginal; }";throw new Error(`Nearest mode ${e} is not supported`)}})()+"}",gb=(e,r,t)=>{let s=new Array(t).fill(0).concat(new Array(t).fill(1)),o=e.length===0?s:e.slice();return r.length>0?(r.forEach((a,n)=>{s[a]=o[n],s[n+t]=o[r.length+n]}),s):o},Mb=(e,r,t,s)=>{let o=[];if(t.length>0)if(s.length>0){if(e.forEach(a=>o.push(a)),Math.max(...s)>e.length)throw new Error("axes is out of bound");s.forEach((a,n)=>o[a]=t[n])}else t.forEach(a=>o.push(a));else{if(r.length===0)throw new Error("Resize requires either scales or sizes.");o=e.map((a,n)=>Math.round(a*r[n]))}return o},wb=(e,r,t)=>{let s=(()=>{switch(t.keepAspectRatioPolicy){case"not_larger":return t.axes.length>0?Math.min(...t.axes.map(a=>r[a]),Number.MAX_VALUE):Math.min(...r,Number.MAX_VALUE);case"not_smaller":return t.axes.length>0?Math.max(...t.axes.map(a=>r[a]),Number.MIN_VALUE):Math.max(...r,Number.MIN_VALUE);default:throw new Error(`Keep aspect ratio policy ${t.keepAspectRatioPolicy} is not supported`)}})();r.fill(1,0,r.length);let o=e.slice();return t.axes.length>0?(t.axes.forEach(a=>r[a]=s),t.axes.forEach(a=>o[a]=Math.round(e[a]*r[a]))):(r.fill(s,0,r.length),o.forEach((a,n)=>o[n]=Math.round(a*r[n]))),o},bb=(e,r,t,s,o)=>`
2397
+ return offset + ((${r}(xResized) + 0.5) / ${r}(xScale)) - 0.5;`;case"half_pixel":return`return ((${r}(xResized) + 0.5) / ${r}(xScale)) - 0.5;`;default:throw new Error(`Coordinate transform mode ${e} is not supported`)}})()+"}",gb=(e,r,t)=>`fn getNearestPixelFromOriginal(xOriginal: ${t}, isDownSample: bool) -> ${t} {`+(()=>{switch(e){case"round_prefer_ceil":return"if (fract(xOriginal) == 0.5) { return ceil(xOriginal); } else { return round(xOriginal); }";case"floor":return"return floor(xOriginal);";case"ceil":return"return ceil(xOriginal);";case"round_prefer_floor":return"if (fract(xOriginal) == 0.5) { return floor(xOriginal); } else { return round(xOriginal); }";default:if(r<11)return"if (isDownSample) { return ceil(xOriginal); } else { return xOriginal; }";throw new Error(`Nearest mode ${e} is not supported`)}})()+"}",Mb=(e,r,t)=>{let s=new Array(t).fill(0).concat(new Array(t).fill(1)),o=e.length===0?s:e.slice();return r.length>0?(r.forEach((a,n)=>{s[a]=o[n],s[n+t]=o[r.length+n]}),s):o},wb=(e,r,t,s)=>{let o=[];if(t.length>0)if(s.length>0){if(e.forEach(a=>o.push(a)),Math.max(...s)>e.length)throw new Error("axes is out of bound");s.forEach((a,n)=>o[a]=t[n])}else t.forEach(a=>o.push(a));else{if(r.length===0)throw new Error("Resize requires either scales or sizes.");o=e.map((a,n)=>Math.round(a*r[n]))}return o},bb=(e,r,t)=>{let s=(()=>{switch(t.keepAspectRatioPolicy){case"not_larger":return t.axes.length>0?Math.min(...t.axes.map(a=>r[a]),Number.MAX_VALUE):Math.min(...r,Number.MAX_VALUE);case"not_smaller":return t.axes.length>0?Math.max(...t.axes.map(a=>r[a]),Number.MIN_VALUE):Math.max(...r,Number.MIN_VALUE);default:throw new Error(`Keep aspect ratio policy ${t.keepAspectRatioPolicy} is not supported`)}})();r.fill(1,0,r.length);let o=e.slice();return t.axes.length>0?(t.axes.forEach(a=>r[a]=s),t.axes.forEach(a=>o[a]=Math.round(e[a]*r[a]))):(r.fill(s,0,r.length),o.forEach((a,n)=>o[n]=Math.round(a*r[n]))),o},vb=(e,r,t,s,o)=>`
2398
2398
  fn calculateOriginalIndicesFromOutputIndices(output_indices: ${e.type.indices}) -> array<${e.type.value}, ${t.length}> {
2399
2399
  var original_indices: array<${e.type.value}, ${t.length}>;
2400
2400
  for (var i:u32 = 0; i < ${t.length}; i++) {
@@ -2412,7 +2412,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
2412
2412
  }
2413
2413
  }
2414
2414
  return original_indices;
2415
- }`,vb=(e,r,t,s,o,a,n)=>`
2415
+ }`,xb=(e,r,t,s,o,a,n)=>`
2416
2416
  fn calculateInputIndicesFromOutputIndices(output_indices: ${r.type.indices}) -> ${e.type.indices} {
2417
2417
  var input_indices: ${e.type.indices};
2418
2418
  for (var i:u32 = 0; i < ${s.length}; i++) {
@@ -2443,7 +2443,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
2443
2443
  ${e.indicesSet("input_indices","i","input_index")}
2444
2444
  }
2445
2445
  return input_indices;
2446
- }`,xb=(e,r)=>`
2446
+ }`,yb=(e,r)=>`
2447
2447
  fn checkInputIndices(input_indices: ${e.type.indices}) -> bool {
2448
2448
  for (var i:u32 = 0; i < ${r.length}; i++) {
2449
2449
  var input_index = ${e.indicesGet("input_indices","i")};
@@ -2455,7 +2455,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
2455
2455
  }`,Pd=(e,r,t,s)=>e.rank>s?`
2456
2456
  ${e.indicesSet("input_indices",r,"channel")};
2457
2457
  ${e.indicesSet("input_indices",t,"batch")};
2458
- `:"",yb=(e,r,t,s,o)=>{let[a,n,i,l]=t.length===2?[-1,0,1,-1]:[0,2,3,1],c=e.type.value;return`
2458
+ `:"",Tb=(e,r,t,s,o)=>{let[a,n,i,l]=t.length===2?[-1,0,1,-1]:[0,2,3,1],c=e.type.value;return`
2459
2459
  fn getInputValue(batch: u32, channel: u32, row: u32, col: u32) -> ${c} {
2460
2460
  var input_indices: ${e.type.indices};
2461
2461
  ${e.indicesSet("input_indices",n,`max(0, min(row, ${t[n]} - 1))`)};
@@ -2496,7 +2496,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
2496
2496
  dy2 = 0.5;
2497
2497
  }
2498
2498
  return (x11 * dx2 * dy2 + x12 * dx2 * dy1 + x21 * dx1 * dy2 + x22 * dx1 * dy1);
2499
- }`},Tb=(e,r,t,s,o,a,n,i,l,c)=>{let _=t.length===2,u=!0,[d,g]=_?[0,1]:u?[2,3]:[1,2],h=e.type.value,x=F=>{let v=F===d?"row":"col";return`
2499
+ }`},Pb=(e,r,t,s,o,a,n,i,l,c)=>{let _=t.length===2,u=!0,[d,g]=_?[0,1]:u?[2,3]:[1,2],h=e.type.value,x=F=>{let v=F===d?"row":"col";return`
2500
2500
  fn ${v}CubicInterpolation(input_indices: ${e.type.indices}, output_indices: ${r.type.indices}) -> ${h} {
2501
2501
  var output_index = ${r.indicesGet("output_indices",F)};
2502
2502
  var originalIdx: ${h} = getOriginalCoordinateFromResizedCoordinate(output_index, ${o[F]},
@@ -2544,7 +2544,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
2544
2544
  var input_indices: ${e.type.indices} = output_indices;
2545
2545
  return colCubicInterpolation(input_indices, output_indices);
2546
2546
  }
2547
- `},Pb=(e,r,t,s,o)=>{let[a,n,i,l,c]=t.length===3?[-1,0,1,2,-1]:[0,2,3,4,1],_=e.type.value;return`
2547
+ `},Eb=(e,r,t,s,o)=>{let[a,n,i,l,c]=t.length===3?[-1,0,1,2,-1]:[0,2,3,4,1],_=e.type.value;return`
2548
2548
  fn getInputValue(batch: u32, channel: u32, depth:u32, height: u32, width: u32) -> ${_} {
2549
2549
  var input_indices: ${e.type.indices};
2550
2550
  ${e.indicesSet("input_indices",n,`max(0, min(depth, ${t[n]} - 1))`)};
@@ -2603,18 +2603,18 @@ fn calculateOutputIndex(index: u32) -> u32 {
2603
2603
  }
2604
2604
  return (x111 * dx2 * dy2 * dz2 + x112 * dx2 * dy2 * dz1 + x121 * dx2 * dy1 *dz2 + x122 * dx2 * dy1 * dz1 +
2605
2605
  x211 * dx1 * dy2 * dz2 + x212 * dx1 * dy2 * dz1 + x221 * dx1 * dy1 *dz2 + x222 * dx1 * dy1 * dz1);
2606
- }`},Eb=(e,r,t,s,o,a)=>{let n=e.dims,i=gb(a,r.axes,n.length),l=Mb(n,s,o,r.axes),c=s.slice();s.length===0&&(c=n.map((b,C)=>b===0?1:l[C]/b),r.keepAspectRatioPolicy!=="stretch"&&(l=wb(n,c,r)));let _=it("output",e.dataType,l.length),u=Fe("input",e.dataType,n.length),d=Me.size(l),g=n.length===l.length&&n.every((b,C)=>b===l[C]),h=r.coordinateTransformMode==="tf_crop_and_resize",x=r.extrapolationValue,F=u.type.value,v=b=>`
2606
+ }`},kb=(e,r,t,s,o,a)=>{let n=e.dims,i=Mb(a,r.axes,n.length),l=wb(n,s,o,r.axes),c=s.slice();s.length===0&&(c=n.map((b,C)=>b===0?1:l[C]/b),r.keepAspectRatioPolicy!=="stretch"&&(l=bb(n,c,r)));let _=it("output",e.dataType,l.length),u=Fe("input",e.dataType,n.length),d=Me.size(l),g=n.length===l.length&&n.every((b,C)=>b===l[C]),h=r.coordinateTransformMode==="tf_crop_and_resize",x=r.extrapolationValue,F=u.type.value,v=b=>`
2607
2607
  ${g?"":`
2608
- ${hb(r.coordinateTransformMode,F)};
2608
+ ${fb(r.coordinateTransformMode,F)};
2609
2609
  ${(()=>{switch(r.mode){case"nearest":return`
2610
- ${xb(u,n)};
2611
- ${fb(r.nearestMode,t,F)};
2612
- ${vb(u,_,n,l,c.length,i.length,h)};
2610
+ ${yb(u,n)};
2611
+ ${gb(r.nearestMode,t,F)};
2612
+ ${xb(u,_,n,l,c.length,i.length,h)};
2613
2613
  `;case"linear":return`
2614
- ${bb(_,n,l,c.length,i.length)};
2615
- ${(()=>{if(n.length===2||n.length===4)return`${yb(u,_,n,h,x)}`;if(n.length===3||n.length===5)return`${Pb(u,_,n,h,x)}`;throw Error("Linear mode only supports input dims 2, 3, 4 and 5 are supported in linear mode.")})()};
2614
+ ${vb(_,n,l,c.length,i.length)};
2615
+ ${(()=>{if(n.length===2||n.length===4)return`${Tb(u,_,n,h,x)}`;if(n.length===3||n.length===5)return`${Eb(u,_,n,h,x)}`;throw Error("Linear mode only supports input dims 2, 3, 4 and 5 are supported in linear mode.")})()};
2616
2616
  `;case"cubic":return`
2617
- ${(()=>{if(n.length===2||n.length===4)return`${Tb(u,_,n,l,c,i,r.cubicCoeffA,h,r.extrapolationValue,r.excludeOutside)}`;throw Error("Cubic mode only supports input dims 2 and 4 are supported in linear mode.")})()};
2617
+ ${(()=>{if(n.length===2||n.length===4)return`${Pb(u,_,n,l,c,i,r.cubicCoeffA,h,r.extrapolationValue,r.excludeOutside)}`;throw Error("Cubic mode only supports input dims 2 and 4 are supported in linear mode.")})()};
2618
2618
  `;default:throw Error("Invalid resize mode")}})()};
2619
2619
  `}
2620
2620
  ${b.registerUniform("output_size","u32").registerUniform("scales","f32",c.length).registerUniform("roi","f32",i.length).declareVariables(u,_)}
@@ -2630,7 +2630,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
2630
2630
  output[global_idx] = ${r.extrapolationValue};
2631
2631
  }`;case"linear":return`output[global_idx] = ${n.length===2||n.length===4?"bilinearInterpolation":"trilinearInterpolation"}(output_indices);`;case"cubic":return"output[global_idx] = bicubicInterpolation(output_indices);";default:throw Error(`Unsupported resize mode: ${r.mode}`)}})()};
2632
2632
  `}
2633
- }`;return{name:"Resize",shaderCache:{hint:`${r.cacheKey}|${t}|${c.length>0?r.mode==="cubic"?c:c.length:""}|${o.length>0?o:""}|${i.length>0?i:""}|${g}|${r.mode==="nearest"?n.length:n}`,inputDependencies:["rank"]},getShaderSource:v,getRunData:()=>({outputs:[{dims:l,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(d/64)},programUniforms:[{type:12,data:d},{type:1,data:c},{type:1,data:i},...dt(n,l)]})}},kb=e=>{let r=e.customDataBuffer;return new Uint32Array(r,r.byteOffset,1)[0]},o0=(e,r)=>{let t=[],s=[],o=[],a=kb(e);if(r.antialias!==0)throw Error("Only default value (0) for Antialias attribute is supported");mb(e.inputs,r,a,t,s,o),e.compute(Eb(e.inputs[0],r,a,t,s,o),{inputs:[0]})},a0=e=>{let r=e.antialias,t=e.axes,s=e.coordinateTransformMode,o=e.cubicCoeffA,a=e.excludeOutside!==0,n=e.extrapolationValue,i=e.keepAspectRatioPolicy,l=e.mode,c=e.nearestMode===""?"simple":e.nearestMode;return jt({antialias:r,axes:t,coordinateTransformMode:s,cubicCoeffA:o,excludeOutside:a,extrapolationValue:n,keepAspectRatioPolicy:i,mode:l,nearestMode:c})}}),Cb,Sb,n0,sE=Ve(()=>{"use strict";Mt(),kt(),Ct(),Cb=e=>{if(!e||e.length<3)throw new Error("layerNorm requires at least 3 inputs.");let r=e[0],t=e[1],s=e[2];if(r.dataType!==t.dataType||r.dataType!==s.dataType)throw new Error("All inputs must have the same data type");if(r.dims.length!==3&&r.dims.length!==2)throw new Error("Input must be 2D or 3D");if(t.dims.length!==3&&t.dims.length!==2)throw new Error("Skip must be 2D or 3D");let o=r.dims[r.dims.length-1],a=r.dims[r.dims.length-2];if(t.dims[t.dims.length-1]!==o)throw new Error("Skip must have the same hidden size as input");if(t.dims[t.dims.length-2]!==a)throw new Error("Skip must have the same sequence length as input");if(s.dims.length!==1)throw new Error("Gamma must be 1D");if(s.dims[s.dims.length-1]!==o)throw new Error("Gamma must have the same hidden size as input");if(e.length>3){let n=e[3];if(n.dims.length!==1)throw new Error("Beta must be 1D");if(n.dims[n.dims.length-1]!==o)throw new Error("Beta must have the same hidden size as input")}if(e.length>4){let n=e[4];if(n.dims.length!==1)throw new Error("Bias must be 1D");if(n.dims[n.dims.length-1]!==o)throw new Error("Bias must have the same hidden size as input")}},Sb=(e,r,t,s)=>{let o=r.simplified,a=e[0].dims,n=Me.size(a),i=a,l=n,c=a.slice(-1)[0],_=s?a.slice(0,-1).concat(1):[],u=!o&&e.length>3,d=e.length>4,g=s&&t>1,h=s&&t>2,x=t>3,F=64,v=dr(c),b=[{type:12,data:l},{type:12,data:v},{type:12,data:c},{type:1,data:r.epsilon}],C=P=>{let I=[{name:"output_size",type:"u32"},{name:"components",type:"u32"},{name:"hidden_size",type:"u32"},{name:"epsilon",type:"f32"}],f=[Fe("x",e[0].dataType,e[0].dims,v),Fe("skip",e[1].dataType,e[1].dims,v),Fe("gamma",e[2].dataType,e[2].dims,v)];u&&f.push(Fe("beta",e[3].dataType,e[3].dims,v)),d&&f.push(Fe("bias",e[4].dataType,e[4].dims,v)),f.push(it("output",e[0].dataType,i,v)),g&&f.push(it("mean_output",1,_)),h&&f.push(it("inv_std_output",1,_)),x&&f.push(it("input_skip_bias_sum",e[0].dataType,i,v));let E=$r(e[0].dataType),D=$r(1,v);return`
2633
+ }`;return{name:"Resize",shaderCache:{hint:`${r.cacheKey}|${t}|${c.length>0?r.mode==="cubic"?c:c.length:""}|${o.length>0?o:""}|${i.length>0?i:""}|${g}|${r.mode==="nearest"?n.length:n}`,inputDependencies:["rank"]},getShaderSource:v,getRunData:()=>({outputs:[{dims:l,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(d/64)},programUniforms:[{type:12,data:d},{type:1,data:c},{type:1,data:i},...dt(n,l)]})}},Cb=e=>{let r=e.customDataBuffer;return new Uint32Array(r,r.byteOffset,1)[0]},a0=(e,r)=>{let t=[],s=[],o=[],a=Cb(e);if(r.antialias!==0)throw Error("Only default value (0) for Antialias attribute is supported");hb(e.inputs,r,a,t,s,o),e.compute(kb(e.inputs[0],r,a,t,s,o),{inputs:[0]})},n0=e=>{let r=e.antialias,t=e.axes,s=e.coordinateTransformMode,o=e.cubicCoeffA,a=e.excludeOutside!==0,n=e.extrapolationValue,i=e.keepAspectRatioPolicy,l=e.mode,c=e.nearestMode===""?"simple":e.nearestMode;return jt({antialias:r,axes:t,coordinateTransformMode:s,cubicCoeffA:o,excludeOutside:a,extrapolationValue:n,keepAspectRatioPolicy:i,mode:l,nearestMode:c})}}),Sb,Fb,i0,oE=Ve(()=>{"use strict";Mt(),kt(),Ct(),Sb=e=>{if(!e||e.length<3)throw new Error("layerNorm requires at least 3 inputs.");let r=e[0],t=e[1],s=e[2];if(r.dataType!==t.dataType||r.dataType!==s.dataType)throw new Error("All inputs must have the same data type");if(r.dims.length!==3&&r.dims.length!==2)throw new Error("Input must be 2D or 3D");if(t.dims.length!==3&&t.dims.length!==2)throw new Error("Skip must be 2D or 3D");let o=r.dims[r.dims.length-1],a=r.dims[r.dims.length-2];if(t.dims[t.dims.length-1]!==o)throw new Error("Skip must have the same hidden size as input");if(t.dims[t.dims.length-2]!==a)throw new Error("Skip must have the same sequence length as input");if(s.dims.length!==1)throw new Error("Gamma must be 1D");if(s.dims[s.dims.length-1]!==o)throw new Error("Gamma must have the same hidden size as input");if(e.length>3){let n=e[3];if(n.dims.length!==1)throw new Error("Beta must be 1D");if(n.dims[n.dims.length-1]!==o)throw new Error("Beta must have the same hidden size as input")}if(e.length>4){let n=e[4];if(n.dims.length!==1)throw new Error("Bias must be 1D");if(n.dims[n.dims.length-1]!==o)throw new Error("Bias must have the same hidden size as input")}},Fb=(e,r,t,s)=>{let o=r.simplified,a=e[0].dims,n=Me.size(a),i=a,l=n,c=a.slice(-1)[0],_=s?a.slice(0,-1).concat(1):[],u=!o&&e.length>3,d=e.length>4,g=s&&t>1,h=s&&t>2,x=t>3,F=64,v=dr(c),b=[{type:12,data:l},{type:12,data:v},{type:12,data:c},{type:1,data:r.epsilon}],C=P=>{let I=[{name:"output_size",type:"u32"},{name:"components",type:"u32"},{name:"hidden_size",type:"u32"},{name:"epsilon",type:"f32"}],f=[Fe("x",e[0].dataType,e[0].dims,v),Fe("skip",e[1].dataType,e[1].dims,v),Fe("gamma",e[2].dataType,e[2].dims,v)];u&&f.push(Fe("beta",e[3].dataType,e[3].dims,v)),d&&f.push(Fe("bias",e[4].dataType,e[4].dims,v)),f.push(it("output",e[0].dataType,i,v)),g&&f.push(it("mean_output",1,_)),h&&f.push(it("inv_std_output",1,_)),x&&f.push(it("input_skip_bias_sum",e[0].dataType,i,v));let E=$r(e[0].dataType),D=$r(1,v);return`
2634
2634
 
2635
2635
  ${P.registerUniforms(I).declareVariables(...f)}
2636
2636
  var<workgroup> sum_shared : array<${D}, ${F}>;
@@ -2654,7 +2654,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
2654
2654
  let value = input_value + skip_value + bias_value;
2655
2655
  ${x?"input_skip_bias_sum[offset + i] = value;":""}
2656
2656
  output[offset + i] = value;
2657
- let f32_value = ${_a(E,v,"value")};
2657
+ let f32_value = ${pa(E,v,"value")};
2658
2658
  sum_shared[ix] += f32_value;
2659
2659
  sum_squared_shared[ix] += f32_value * f32_value;
2660
2660
  }
@@ -2682,7 +2682,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
2682
2682
  ${E}(inv_std_dev) * gamma[offset1d + i]
2683
2683
  ${u?"+ beta[offset1d + i]":""};
2684
2684
  }
2685
- }`},y=[{dims:i,dataType:e[0].dataType}];return t>1&&y.push({dims:_,dataType:1}),t>2&&y.push({dims:_,dataType:1}),t>3&&y.push({dims:a,dataType:e[0].dataType}),{name:"SkipLayerNormalization",shaderCache:{hint:`${v};${g};${h};${x}`,inputDependencies:e.map((P,I)=>"type")},getShaderSource:C,getRunData:()=>({outputs:y,dispatchGroup:{x:Math.ceil(l/c)},programUniforms:b})}},n0=(e,r)=>{Cb(e.inputs);let t=[0];e.outputCount>1&&t.push(-3),e.outputCount>2&&t.push(-3),e.outputCount>3&&t.push(3),e.compute(Sb(e.inputs,r,e.outputCount,!1),{outputs:t})}}),Fb,sn,Ib,Ed,Ab,$b,i0,l0,oE=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),Fb=(e,r)=>{if(!e||e.length<1)throw new Error("too few inputs");if(r.axes.length!==0){if(r.axes.length!==r.starts.length||r.axes.length!==r.ends.length)throw new Error("axes, starts and ends must have the same length")}else if(r.starts.length!==r.ends.length)throw new Error("starts and ends must have the same length");e.slice(1).forEach((t,s)=>{if(e[s+1].dataType!==6&&e[s+1].dataType!==7)throw new Error(`Input ${s} must be an array of int32 or int64`)})},sn=(e,r)=>{let t=[];if(e.length>r)if(e[r].dataType===7)e[r].getBigInt64Array().forEach(s=>t.push(Number(s)));else if(e[r].dataType===6)e[r].getInt32Array().forEach(s=>t.push(Number(s)));else throw new Error(`Input ${r} must be an array of int32 or int64`);return t},Ib=(e,r)=>{if(e.length>1){let t=sn(e,1),s=sn(e,2),o=sn(e,3);return o.length===0&&(o=[...Array(e[0].dims.length).keys()]),jt({starts:t,ends:s,axes:o})}else return r},Ed=(e,r,t,s,o)=>{let a=e;return e<0&&(a+=t[s[r]]),o[r]<0?Math.max(0,Math.min(a,t[s[r]]-1)):Math.max(0,Math.min(a,t[s[r]]))},Ab=(e,r,t)=>`fn calculateInputIndices(output_indices: ${r.type.indices}) -> ${e.type.indices} {
2685
+ }`},y=[{dims:i,dataType:e[0].dataType}];return t>1&&y.push({dims:_,dataType:1}),t>2&&y.push({dims:_,dataType:1}),t>3&&y.push({dims:a,dataType:e[0].dataType}),{name:"SkipLayerNormalization",shaderCache:{hint:`${v};${g};${h};${x}`,inputDependencies:e.map((P,I)=>"type")},getShaderSource:C,getRunData:()=>({outputs:y,dispatchGroup:{x:Math.ceil(l/c)},programUniforms:b})}},i0=(e,r)=>{Sb(e.inputs);let t=[0];e.outputCount>1&&t.push(-3),e.outputCount>2&&t.push(-3),e.outputCount>3&&t.push(3),e.compute(Fb(e.inputs,r,e.outputCount,!1),{outputs:t})}}),Ib,on,Ab,Ed,$b,Db,l0,c0,aE=Ve(()=>{"use strict";Mt(),kt(),hr(),Ct(),Ib=(e,r)=>{if(!e||e.length<1)throw new Error("too few inputs");if(r.axes.length!==0){if(r.axes.length!==r.starts.length||r.axes.length!==r.ends.length)throw new Error("axes, starts and ends must have the same length")}else if(r.starts.length!==r.ends.length)throw new Error("starts and ends must have the same length");e.slice(1).forEach((t,s)=>{if(e[s+1].dataType!==6&&e[s+1].dataType!==7)throw new Error(`Input ${s} must be an array of int32 or int64`)})},on=(e,r)=>{let t=[];if(e.length>r)if(e[r].dataType===7)e[r].getBigInt64Array().forEach(s=>t.push(Number(s)));else if(e[r].dataType===6)e[r].getInt32Array().forEach(s=>t.push(Number(s)));else throw new Error(`Input ${r} must be an array of int32 or int64`);return t},Ab=(e,r)=>{if(e.length>1){let t=on(e,1),s=on(e,2),o=on(e,3);return o.length===0&&(o=[...Array(e[0].dims.length).keys()]),jt({starts:t,ends:s,axes:o})}else return r},Ed=(e,r,t,s,o)=>{let a=e;return e<0&&(a+=t[s[r]]),o[r]<0?Math.max(0,Math.min(a,t[s[r]]-1)):Math.max(0,Math.min(a,t[s[r]]))},$b=(e,r,t)=>`fn calculateInputIndices(output_indices: ${r.type.indices}) -> ${e.type.indices} {
2686
2686
  var input_indices: ${e.type.indices};
2687
2687
  var carry = 0u;
2688
2688
  for (var i = ${t.length}; i >= 0; i--) {
@@ -2700,15 +2700,15 @@ fn calculateOutputIndex(index: u32) -> u32 {
2700
2700
  ${e.indicesSet("input_indices","i","input_index")};
2701
2701
  }
2702
2702
  return input_indices;
2703
- }`,$b=(e,r)=>{let t=e[0].dims,s=Me.size(t),o=r.axes.length>0?Me.normalizeAxes(r.axes,t.length):[...Array(t.length).keys()],a=sn(e,4);a.forEach(v=>v!==0||(()=>{throw new Error("step cannot be 0")})),a.length===0&&(a=Array(o.length).fill(1));let n=r.starts.map((v,b)=>Ed(v,b,t,o,a)),i=r.ends.map((v,b)=>Ed(v,b,t,o,a));if(o.length!==n.length||o.length!==i.length)throw new Error("start, ends and axes should have the same number of elements");if(o.length!==t.length)for(let v=0;v<t.length;++v)o.includes(v)||(n.splice(v,0,0),i.splice(v,0,t[v]),a.splice(v,0,1));let l=a.map(v=>Math.sign(v));a.forEach((v,b,C)=>{if(v<0){let y=(i[b]-n[b])/v,P=n[b],I=P+y*a[b];n[b]=I,i[b]=P,C[b]=-v}});let c=t.slice(0);o.forEach((v,b)=>{c[v]=Math.ceil((i[v]-n[v])/a[v])});let _={dims:c,dataType:e[0].dataType},u=it("output",e[0].dataType,c.length),d=Fe("input",e[0].dataType,e[0].dims.length),g=Me.size(c),h=[{name:"outputSize",type:"u32"},{name:"starts",type:"u32",length:n.length},{name:"signs",type:"i32",length:l.length},{name:"steps",type:"u32",length:a.length}],x=[{type:12,data:g},{type:12,data:n},{type:6,data:l},{type:12,data:a},...dt(e[0].dims,c)],F=v=>`
2703
+ }`,Db=(e,r)=>{let t=e[0].dims,s=Me.size(t),o=r.axes.length>0?Me.normalizeAxes(r.axes,t.length):[...Array(t.length).keys()],a=on(e,4);a.forEach(v=>v!==0||(()=>{throw new Error("step cannot be 0")})),a.length===0&&(a=Array(o.length).fill(1));let n=r.starts.map((v,b)=>Ed(v,b,t,o,a)),i=r.ends.map((v,b)=>Ed(v,b,t,o,a));if(o.length!==n.length||o.length!==i.length)throw new Error("start, ends and axes should have the same number of elements");if(o.length!==t.length)for(let v=0;v<t.length;++v)o.includes(v)||(n.splice(v,0,0),i.splice(v,0,t[v]),a.splice(v,0,1));let l=a.map(v=>Math.sign(v));a.forEach((v,b,C)=>{if(v<0){let y=(i[b]-n[b])/v,P=n[b],I=P+y*a[b];n[b]=I,i[b]=P,C[b]=-v}});let c=t.slice(0);o.forEach((v,b)=>{c[v]=Math.ceil((i[v]-n[v])/a[v])});let _={dims:c,dataType:e[0].dataType},u=it("output",e[0].dataType,c.length),d=Fe("input",e[0].dataType,e[0].dims.length),g=Me.size(c),h=[{name:"outputSize",type:"u32"},{name:"starts",type:"u32",length:n.length},{name:"signs",type:"i32",length:l.length},{name:"steps",type:"u32",length:a.length}],x=[{type:12,data:g},{type:12,data:n},{type:6,data:l},{type:12,data:a},...dt(e[0].dims,c)],F=v=>`
2704
2704
  ${v.registerUniforms(h).declareVariables(d,u)}
2705
- ${Ab(d,u,t)}
2705
+ ${$b(d,u,t)}
2706
2706
  ${v.mainStart()}
2707
2707
  ${v.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")}
2708
2708
  let output_indices = ${u.offsetToIndices("global_idx")};
2709
2709
  let input_indices = calculateInputIndices(output_indices);
2710
2710
  ${u.setByOffset("global_idx",d.getByIndices("input_indices"))}
2711
- }`;return{name:"Slice",shaderCache:{hint:`${l.length}_${n.length}_${a.length}`,inputDependencies:["rank"]},getShaderSource:F,getRunData:()=>({outputs:[_],dispatchGroup:{x:Math.ceil(s/64)},programUniforms:x})}},i0=(e,r)=>{Fb(e.inputs,r);let t=Ib(e.inputs,r);e.compute($b(e.inputs,t),{inputs:[0]})},l0=e=>{let r=e.starts,t=e.ends,s=e.axes;return jt({starts:r,ends:t,axes:s})}}),Db,Ob,c0,d0,aE=Ve(()=>{"use strict";Mt(),kt(),hr(),po(),Ct(),Db=e=>{if(!e||e.length!==1)throw new Error("Softmax op requires 1 input.")},Ob=(e,r)=>{let t=e.inputs[0],s=t.dims,o=Me.size(s),a=s.length,n=Me.normalizeAxis(r.axis,a),i=n<s.length-1,l,c=[];i?(c=Array.from({length:a},(f,E)=>E),c[n]=a-1,c[a-1]=n,l=e.compute(os(t,c),{inputs:[t],outputs:[-1]})[0]):l=t;let _=l.dims,u=_[a-1],d=o/u,g=dr(u),h=u/g,x=64;d===1&&(x=256);let F=(f,E)=>E===4?`max(max(${f}.x, ${f}.y), max(${f}.z, ${f}.w))`:E===2?`max(${f}.x, ${f}.y)`:E===3?`max(max(${f}.x, ${f}.y), ${f}.z)`:f,v=Fe("x",l.dataType,l.dims,g),b=it("result",l.dataType,l.dims,g),C=v.type.value,y=$r(l.dataType)==="f32"?`var threadMax = ${C}(-3.402823e+38f);`:`var threadMax = ${C}(-65504.0h);`,P=f=>`
2711
+ }`;return{name:"Slice",shaderCache:{hint:`${l.length}_${n.length}_${a.length}`,inputDependencies:["rank"]},getShaderSource:F,getRunData:()=>({outputs:[_],dispatchGroup:{x:Math.ceil(s/64)},programUniforms:x})}},l0=(e,r)=>{Ib(e.inputs,r);let t=Ab(e.inputs,r);e.compute(Db(e.inputs,t),{inputs:[0]})},c0=e=>{let r=e.starts,t=e.ends,s=e.axes;return jt({starts:r,ends:t,axes:s})}}),Ob,Lb,d0,u0,nE=Ve(()=>{"use strict";Mt(),kt(),hr(),po(),Ct(),Ob=e=>{if(!e||e.length!==1)throw new Error("Softmax op requires 1 input.")},Lb=(e,r)=>{let t=e.inputs[0],s=t.dims,o=Me.size(s),a=s.length,n=Me.normalizeAxis(r.axis,a),i=n<s.length-1,l,c=[];i?(c=Array.from({length:a},(f,E)=>E),c[n]=a-1,c[a-1]=n,l=e.compute(os(t,c),{inputs:[t],outputs:[-1]})[0]):l=t;let _=l.dims,u=_[a-1],d=o/u,g=dr(u),h=u/g,x=64;d===1&&(x=256);let F=(f,E)=>E===4?`max(max(${f}.x, ${f}.y), max(${f}.z, ${f}.w))`:E===2?`max(${f}.x, ${f}.y)`:E===3?`max(max(${f}.x, ${f}.y), ${f}.z)`:f,v=Fe("x",l.dataType,l.dims,g),b=it("result",l.dataType,l.dims,g),C=v.type.value,y=$r(l.dataType)==="f32"?`var threadMax = ${C}(-3.402823e+38f);`:`var threadMax = ${C}(-65504.0h);`,P=f=>`
2712
2712
  var<workgroup> rowMaxShared : ${C};
2713
2713
  var<workgroup> rowSumShared : ${C};
2714
2714
  var<workgroup> threadShared : array<${C}, ${x}>;
@@ -2780,7 +2780,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
2780
2780
  let value = exp(getValue(row, col, row_stride) - rowMaxShared) / rowSumShared;
2781
2781
  setValue(row, col, row_stride, value);
2782
2782
  }
2783
- }`,I=e.compute({name:"Softmax",shaderCache:{hint:`${g};${x}`,inputDependencies:["type"]},getRunData:()=>({outputs:[{dims:_,dataType:l.dataType}],dispatchGroup:{x:d},programUniforms:[{type:6,data:h}]}),getShaderSource:P},{inputs:[l],outputs:[i?-1:0]})[0];i&&e.compute(os(I,c),{inputs:[I]})},c0=(e,r)=>{Db(e.inputs),Ob(e,r)},d0=e=>jt({axis:e.axis})}),kd,Lb,Bb,zb,u0,nE=Ve(()=>{"use strict";Mt(),kt(),Ct(),kd=e=>Array.from(e.getBigInt64Array(),Number),Lb=e=>{if(!e||e.length!==2)throw new Error("Tile requires 2 inputs.");if(e[0].dataType!==1&&e[0].dataType!==10&&e[0].dataType!==6&&e[0].dataType!==12)throw new Error("Tile only support float, float16, int32, and uint32 data types");if(e[1].dataType!==7)throw new Error("Tile `repeats` input should be of int64 data type");if(e[1].dims.length!==1)throw new Error("Tile `repeats` input should be 1-D");if(kd(e[1]).length!==e[0].dims.length)throw new Error("Tile `repeats` input should have same number of elements as rank of input data tensor")},Bb=(e,r)=>{let t=[];for(let s=0;s<e.length;++s)t.push(e[s]*r[s]);return t},zb=(e,r)=>{let t=e[0].dims,s=r??kd(e[1]),o=Bb(t,s),a=Me.size(o),n=e[0].dataType,i=Fe("input",n,t.length),l=it("output",n,o.length),c=_=>`
2783
+ }`,I=e.compute({name:"Softmax",shaderCache:{hint:`${g};${x}`,inputDependencies:["type"]},getRunData:()=>({outputs:[{dims:_,dataType:l.dataType}],dispatchGroup:{x:d},programUniforms:[{type:6,data:h}]}),getShaderSource:P},{inputs:[l],outputs:[i?-1:0]})[0];i&&e.compute(os(I,c),{inputs:[I]})},d0=(e,r)=>{Ob(e.inputs),Lb(e,r)},u0=e=>jt({axis:e.axis})}),kd,Bb,zb,Rb,_0,iE=Ve(()=>{"use strict";Mt(),kt(),Ct(),kd=e=>Array.from(e.getBigInt64Array(),Number),Bb=e=>{if(!e||e.length!==2)throw new Error("Tile requires 2 inputs.");if(e[0].dataType!==1&&e[0].dataType!==10&&e[0].dataType!==6&&e[0].dataType!==12)throw new Error("Tile only support float, float16, int32, and uint32 data types");if(e[1].dataType!==7)throw new Error("Tile `repeats` input should be of int64 data type");if(e[1].dims.length!==1)throw new Error("Tile `repeats` input should be 1-D");if(kd(e[1]).length!==e[0].dims.length)throw new Error("Tile `repeats` input should have same number of elements as rank of input data tensor")},zb=(e,r)=>{let t=[];for(let s=0;s<e.length;++s)t.push(e[s]*r[s]);return t},Rb=(e,r)=>{let t=e[0].dims,s=r??kd(e[1]),o=zb(t,s),a=Me.size(o),n=e[0].dataType,i=Fe("input",n,t.length),l=it("output",n,o.length),c=_=>`
2784
2784
  const inputShape = ${i.indices(...t)};
2785
2785
  ${_.registerUniform("output_size","u32").declareVariables(i,l)}
2786
2786
  ${_.mainStart()}
@@ -2794,7 +2794,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
2794
2794
  ${i.indicesSet("input_indices","i","input_dim_value")}
2795
2795
  }
2796
2796
  ${l.setByOffset("global_idx",i.getByIndices("input_indices"))}
2797
- }`;return{name:"Tile",shaderCache:{hint:`${s}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:o,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(a/64)},programUniforms:[{type:12,data:a},...dt(e[0].dims,o)]}),getShaderSource:c}},u0=e=>{Lb(e.inputs),e.compute(zb(e.inputs),{inputs:[0]})}}),Rb,Nb,_0,iE=Ve(()=>{"use strict";Mt(),kt(),Ct(),Rb=(e,r,t,s,o)=>{let a=it("output_data",o,t.length,4),n=Fe("a_data",r[1].dataType,r[1].dims.length,4),i=Fe("b_data",r[2].dataType,r[2].dims.length,4),l=Fe("c_data",r[0].dataType,r[0].dims.length,4),c,_=(u,d,g)=>`select(${d}, ${u}, ${g})`;if(!s)c=a.setByOffset("global_idx",_(n.getByOffset("global_idx"),i.getByOffset("global_idx"),l.getByOffset("global_idx")));else{let u=(d,g,h="")=>{let x=`a_data[index_a${g}][component_a${g}]`,F=`b_data[index_b${g}][component_b${g}]`,v=`bool(c_data[index_c${g}] & (0xffu << (component_c${g} * 8)))`;return`
2797
+ }`;return{name:"Tile",shaderCache:{hint:`${s}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:o,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(a/64)},programUniforms:[{type:12,data:a},...dt(e[0].dims,o)]}),getShaderSource:c}},_0=e=>{Bb(e.inputs),e.compute(Rb(e.inputs),{inputs:[0]})}}),Nb,jb,p0,lE=Ve(()=>{"use strict";Mt(),kt(),Ct(),Nb=(e,r,t,s,o)=>{let a=it("output_data",o,t.length,4),n=Fe("a_data",r[1].dataType,r[1].dims.length,4),i=Fe("b_data",r[2].dataType,r[2].dims.length,4),l=Fe("c_data",r[0].dataType,r[0].dims.length,4),c,_=(u,d,g)=>`select(${d}, ${u}, ${g})`;if(!s)c=a.setByOffset("global_idx",_(n.getByOffset("global_idx"),i.getByOffset("global_idx"),l.getByOffset("global_idx")));else{let u=(d,g,h="")=>{let x=`a_data[index_a${g}][component_a${g}]`,F=`b_data[index_b${g}][component_b${g}]`,v=`bool(c_data[index_c${g}] & (0xffu << (component_c${g} * 8)))`;return`
2798
2798
  let output_indices${g} = ${a.offsetToIndices(`global_idx * 4u + ${g}u`)};
2799
2799
  let offset_a${g} = ${n.broadcastedIndicesToOffset(`output_indices${g}`,a)};
2800
2800
  let offset_b${g} = ${i.broadcastedIndicesToOffset(`output_indices${g}`,a)};
@@ -2822,10 +2822,10 @@ fn calculateOutputIndex(index: u32) -> u32 {
2822
2822
  ${e.mainStart()}
2823
2823
  ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")}
2824
2824
  ${c}
2825
- }`},Nb=e=>{let r=e[1].dims,t=e[2].dims,s=e[0].dims,o=e[1].dataType,a=!(Me.areEqual(r,t)&&Me.areEqual(t,s)),n=r,i=Me.size(r);if(a){let c=pa.calcShape(pa.calcShape(r,t,!1),s,!1);if(!c)throw new Error("Can't perform where op on the given tensors");n=c,i=Me.size(n)}let l=Math.ceil(i/4);return{name:"Where",shaderCache:{inputDependencies:["rank","rank","rank"]},getShaderSource:c=>Rb(c,e,n,a,o),getRunData:()=>({outputs:[{dims:n,dataType:o}],dispatchGroup:{x:Math.ceil(i/64/4)},programUniforms:[{type:12,data:l},...dt(s,r,t,n)]})}},_0=e=>{e.compute(Nb(e.inputs))}}),p0,lE=Ve(()=>{"use strict";xP(),du(),yP(),TP(),PP(),EP(),kP(),AP(),DP(),OP(),LP(),BP(),zP(),RP(),NP(),jP(),VP(),WP(),UP(),GP(),KP(),HP(),qP(),QP(),XP(),Ay(),JP(),YP(),ZP(),eE(),tE(),cu(),rE(),By(),sE(),oE(),aE(),Oy(),nE(),po(),uu(),iE(),p0=new Map([["Abs",[nx]],["Acos",[ix]],["Acosh",[lx]],["Add",[Vx]],["ArgMax",[rx,zd]],["ArgMin",[tx,zd]],["Asin",[cx]],["Asinh",[dx]],["Atan",[ux]],["Atanh",[_x]],["Attention",[sx]],["AveragePool",[Ky,Gy]],["BatchNormalization",[ox]],["BiasAdd",[ax]],["BiasSplitGelu",[jx]],["Cast",[mx,px]],["Ceil",[fx]],["Clip",[hx]],["Concat",[Yx,Zx]],["Conv",[Ud,Wd]],["ConvTranspose",[cy,ly]],["Cos",[gx]],["Cosh",[Mx]],["CumSum",[dy,uy]],["DepthToSpace",[_y,py]],["DequantizeLinear",[Zy,e0]],["Div",[Wx]],["Einsum",[my,hy]],["Elu",[wx,cn]],["Equal",[Ux]],["Erf",[bx]],["Exp",[vx]],["Expand",[fy]],["FastGelu",[gy]],["Floor",[xx]],["FusedConv",[Ud,Wd]],["Gather",[wy,My]],["GatherElements",[Py,Ty]],["GatherBlockQuantized",[xy,yy]],["GatherND",[by,vy]],["Gelu",[yx]],["Gemm",[ky,Ey]],["GlobalAveragePool",[qy,Hy]],["GlobalMaxPool",[Yy,Jy]],["Greater",[qx]],["GreaterOrEqual",[Xx]],["GridSample",[Cy,Sy]],["GroupQueryAttention",[zy]],["HardSigmoid",[Ix,Fx]],["InstanceNormalization",[Ry]],["LayerNormalization",[Ny]],["LeakyRelu",[Tx,cn]],["Less",[Qx]],["LessOrEqual",[Jx]],["Log",[Rx]],["MatMul",[jy]],["MatMulNBits",[Vy,Wy]],["MaxPool",[Qy,Xy]],["Mul",[Gx]],["MultiHeadAttention",[Iy,Fy]],["Neg",[Ex]],["Not",[Px]],["Pad",[Uy]],["Pow",[Kx]],["QuickGelu",[Nx,cn]],["Range",[t0]],["Reciprocal",[kx]],["ReduceMin",[Xv]],["ReduceMean",[Gv]],["ReduceMax",[Qv]],["ReduceSum",[Yv]],["ReduceProd",[Jv]],["ReduceL1",[Kv]],["ReduceL2",[Hv]],["ReduceLogSum",[ex]],["ReduceLogSumExp",[qv]],["ReduceSumSquare",[Zv]],["Relu",[Cx]],["Resize",[o0,a0]],["RotaryEmbedding",[Ly]],["ScatterND",[s0,r0]],["Sigmoid",[Sx]],["Sin",[Ax]],["Sinh",[$x]],["Slice",[i0,l0]],["SkipLayerNormalization",[n0]],["Split",[$y,Dy]],["Sqrt",[Dx]],["Softmax",[c0,d0]],["Sub",[Hx]],["Tan",[Ox]],["Tanh",[Lx]],["ThresholdedRelu",[zx,cn]],["Tile",[u0]],["Transpose",[$v,Dv]],["Where",[_0]]])}),m0,cE=Ve(()=>{"use strict";ks(),Js(),Ct(),m0=class{constructor(e){this.backend=e,this.repo=new Map,this.attributesBound=!1}getArtifact(e){return this.repo.get(e)}setArtifact(e,r){this.repo.set(e,r)}run(e,r,t,s,o){Es(e.programInfo.name);let a=this.backend.device,n=this.backend.getComputePassEncoder();this.backend.writeTimestamp(this.backend.pendingDispatchNumber*2);let i=[];for(let c of r)i.push({binding:i.length,resource:{buffer:c.buffer}});for(let c of t)i.push({binding:i.length,resource:{buffer:c.buffer}});o&&i.push({binding:i.length,resource:o});let l=a.createBindGroup({layout:e.computePipeline.getBindGroupLayout(0),entries:i,label:e.programInfo.name});if(this.backend.sessionStatus==="capturing"){let c={kernelId:this.backend.currentKernelId,computePipeline:e.computePipeline,bindGroup:l,dispatchGroup:s};this.backend.capturedCommandList.get(this.backend.currentSessionId).push(c)}n.setPipeline(e.computePipeline),n.setBindGroup(0,l),n.dispatchWorkgroups(...s),this.backend.writeTimestamp(this.backend.pendingDispatchNumber*2+1),this.backend.pendingDispatchNumber++,(this.backend.pendingDispatchNumber>=this.backend.maxDispatchNumber||this.backend.queryType==="at-passes")&&this.backend.endComputePass(),this.backend.pendingDispatchNumber>=this.backend.maxDispatchNumber&&this.backend.flush(),us(e.programInfo.name)}dispose(){}build(e,r){Es(e.name);let t=this.backend.device,s=[];[{feature:"shader-f16",extension:"f16"},{feature:"subgroups",extension:"subgroups"}].forEach(c=>{t.features.has(c.feature)&&s.push(`enable ${c.extension};`)});let o=Av(r,this.backend.device.limits),a=e.getShaderSource(o),n=`${s.join(`
2825
+ }`},jb=e=>{let r=e[1].dims,t=e[2].dims,s=e[0].dims,o=e[1].dataType,a=!(Me.areEqual(r,t)&&Me.areEqual(t,s)),n=r,i=Me.size(r);if(a){let c=ma.calcShape(ma.calcShape(r,t,!1),s,!1);if(!c)throw new Error("Can't perform where op on the given tensors");n=c,i=Me.size(n)}let l=Math.ceil(i/4);return{name:"Where",shaderCache:{inputDependencies:["rank","rank","rank"]},getShaderSource:c=>Nb(c,e,n,a,o),getRunData:()=>({outputs:[{dims:n,dataType:o}],dispatchGroup:{x:Math.ceil(i/64/4)},programUniforms:[{type:12,data:l},...dt(s,r,t,n)]})}},p0=e=>{e.compute(jb(e.inputs))}}),m0,cE=Ve(()=>{"use strict";yP(),du(),TP(),PP(),EP(),kP(),CP(),$P(),OP(),LP(),BP(),zP(),RP(),NP(),jP(),VP(),WP(),UP(),GP(),KP(),HP(),qP(),QP(),XP(),JP(),$y(),YP(),ZP(),eE(),tE(),rE(),cu(),sE(),zy(),oE(),aE(),nE(),Ly(),iE(),po(),uu(),lE(),m0=new Map([["Abs",[ix]],["Acos",[lx]],["Acosh",[cx]],["Add",[Wx]],["ArgMax",[sx,zd]],["ArgMin",[rx,zd]],["Asin",[dx]],["Asinh",[ux]],["Atan",[_x]],["Atanh",[px]],["Attention",[ox]],["AveragePool",[Hy,Ky]],["BatchNormalization",[ax]],["BiasAdd",[nx]],["BiasSplitGelu",[Vx]],["Cast",[hx,mx]],["Ceil",[gx]],["Clip",[fx]],["Concat",[Zx,ey]],["Conv",[Ud,Wd]],["ConvTranspose",[dy,cy]],["Cos",[Mx]],["Cosh",[wx]],["CumSum",[uy,_y]],["DepthToSpace",[py,my]],["DequantizeLinear",[e0,t0]],["Div",[Ux]],["Einsum",[hy,fy]],["Elu",[bx,dn]],["Equal",[Gx]],["Erf",[vx]],["Exp",[xx]],["Expand",[gy]],["FastGelu",[My]],["Floor",[yx]],["FusedConv",[Ud,Wd]],["Gather",[by,wy]],["GatherElements",[Ey,Py]],["GatherBlockQuantized",[yy,Ty]],["GatherND",[vy,xy]],["Gelu",[Tx]],["Gemm",[Cy,ky]],["GlobalAveragePool",[Qy,qy]],["GlobalMaxPool",[Zy,Yy]],["Greater",[Qx]],["GreaterOrEqual",[Jx]],["GridSample",[Sy,Fy]],["GroupQueryAttention",[Ry]],["HardSigmoid",[Ax,Ix]],["InstanceNormalization",[Ny]],["LayerNormalization",[jy]],["LeakyRelu",[Px,dn]],["Less",[Xx]],["LessOrEqual",[Yx]],["Log",[Nx]],["MatMul",[Vy]],["MatMulNBits",[Wy,Uy]],["MaxPool",[Xy,Jy]],["Mul",[Kx]],["MultiHeadAttention",[Ay,Iy]],["Neg",[kx]],["Not",[Ex]],["Pad",[Gy]],["Pow",[Hx]],["QuickGelu",[jx,dn]],["Range",[r0]],["Reciprocal",[Cx]],["ReduceMin",[Jv]],["ReduceMean",[Kv]],["ReduceMax",[Xv]],["ReduceSum",[Zv]],["ReduceProd",[Yv]],["ReduceL1",[Hv]],["ReduceL2",[qv]],["ReduceLogSum",[tx]],["ReduceLogSumExp",[Qv]],["ReduceSumSquare",[ex]],["Relu",[Sx]],["Resize",[a0,n0]],["RotaryEmbedding",[By]],["ScatterND",[o0,s0]],["Sigmoid",[Fx]],["Sin",[$x]],["Sinh",[Dx]],["Slice",[l0,c0]],["SkipLayerNormalization",[i0]],["Split",[Dy,Oy]],["Sqrt",[Ox]],["Softmax",[d0,u0]],["Sub",[qx]],["Tan",[Lx]],["Tanh",[Bx]],["ThresholdedRelu",[Rx,dn]],["Tile",[_0]],["Transpose",[Dv,Ov]],["Where",[p0]]])}),h0,dE=Ve(()=>{"use strict";ks(),Js(),Ct(),h0=class{constructor(e){this.backend=e,this.repo=new Map,this.attributesBound=!1}getArtifact(e){return this.repo.get(e)}setArtifact(e,r){this.repo.set(e,r)}run(e,r,t,s,o){Es(e.programInfo.name);let a=this.backend.device,n=this.backend.getComputePassEncoder();this.backend.writeTimestamp(this.backend.pendingDispatchNumber*2);let i=[];for(let c of r)i.push({binding:i.length,resource:{buffer:c.buffer}});for(let c of t)i.push({binding:i.length,resource:{buffer:c.buffer}});o&&i.push({binding:i.length,resource:o});let l=a.createBindGroup({layout:e.computePipeline.getBindGroupLayout(0),entries:i,label:e.programInfo.name});if(this.backend.sessionStatus==="capturing"){let c={kernelId:this.backend.currentKernelId,computePipeline:e.computePipeline,bindGroup:l,dispatchGroup:s};this.backend.capturedCommandList.get(this.backend.currentSessionId).push(c)}n.setPipeline(e.computePipeline),n.setBindGroup(0,l),n.dispatchWorkgroups(...s),this.backend.writeTimestamp(this.backend.pendingDispatchNumber*2+1),this.backend.pendingDispatchNumber++,(this.backend.pendingDispatchNumber>=this.backend.maxDispatchNumber||this.backend.queryType==="at-passes")&&this.backend.endComputePass(),this.backend.pendingDispatchNumber>=this.backend.maxDispatchNumber&&this.backend.flush(),us(e.programInfo.name)}dispose(){}build(e,r){Es(e.name);let t=this.backend.device,s=[];[{feature:"shader-f16",extension:"f16"},{feature:"subgroups",extension:"subgroups"}].forEach(c=>{t.features.has(c.feature)&&s.push(`enable ${c.extension};`)});let o=$v(r,this.backend.device.limits),a=e.getShaderSource(o),n=`${s.join(`
2826
2826
  `)}
2827
2827
  ${o.additionalImplementations}
2828
- ${a}`,i=t.createShaderModule({code:n,label:e.name});Ot("verbose",()=>`[WebGPU] ${e.name} shader code: ${n}`);let l=t.createComputePipeline({compute:{module:i,entryPoint:"main"},layout:"auto",label:e.name});return us(e.name),{programInfo:e,computePipeline:l,uniformVariablesInfo:o.variablesInfo}}normalizeDispatchGroupSize(e){let r=typeof e=="number"?e:e.x,t=typeof e=="number"?1:e.y||1,s=typeof e=="number"?1:e.z||1,o=this.backend.device.limits.maxComputeWorkgroupsPerDimension;if(r<=o&&t<=o&&s<=o)return[r,t,s];let a=r*t*s,n=Math.ceil(Math.sqrt(a));if(n>o){if(n=Math.ceil(Math.cbrt(a)),n>o)throw new Error("Total dispatch size exceeds WebGPU maximum.");return[n,n,n]}else return[n,n,1]}}}),h0={};ha(h0,{WebGpuBackend:()=>f0});var jb,Vb,Wb,f0,dE=Ve(()=>{"use strict";ks(),Mt(),Js(),kv(),bP(),lE(),cE(),jb=(e,r)=>{if(r.length!==e.length)throw new Error(`inputDependencies length ${r.length} is not equal to inputTensors length ${e.length}.`);let t=[];for(let s=0;s<e.length;++s){let o=e[s].dataType;switch(r[s]){case"none":{t.push("");break}case"type":{t.push(`${o}`);break}case"rank":{let a=e[s].dims.length;t.push(`${o};${a}`);break}case"dims":{let a=e[s].dims.join(",");t.push(`${o};${a}`);break}default:throw new Error(`unsupported input dependency: ${r[s]}`)}}return t.join("|")},Vb=(e,r,t)=>{let s=e.name;return e.shaderCache?.hint&&(s+="["+e.shaderCache.hint+"]"),s+=":"+t+`:${jb(r,e.shaderCache?.inputDependencies??new Array(r.length).fill("dims"))}`,s},Wb=class{constructor(e){e&&(this.architecture=e.architecture,this.vendor=e.vendor)}isArchitecture(e){return this.architecture===e}isVendor(e){return this.vendor===e}},f0=class{constructor(){this.currentSessionId=null,this.currentKernelId=null,this.commandEncoder=null,this.computePassEncoder=null,this.maxDispatchNumber=16,this.pendingDispatchNumber=0,this.pendingKernels=[],this.pendingQueries=new Map,this.sessionStatus="default",this.capturedCommandList=new Map,this.capturedPendingKernels=new Map,this.sessionExternalDataMapping=new Map}get currentKernelCustomData(){if(this.currentKernelId===null)throw new Error("currentKernelCustomData(): currentKernelId is null. (should not happen)");let e=this.kernelCustomData.get(this.currentKernelId);return e||(e={},this.kernelCustomData.set(this.currentKernelId,e)),e}async initialize(e,r){this.env=e;let t=[],s={requiredLimits:{maxComputeWorkgroupStorageSize:r.limits.maxComputeWorkgroupStorageSize,maxComputeWorkgroupsPerDimension:r.limits.maxComputeWorkgroupsPerDimension,maxStorageBufferBindingSize:r.limits.maxStorageBufferBindingSize,maxBufferSize:r.limits.maxBufferSize,maxComputeInvocationsPerWorkgroup:r.limits.maxComputeInvocationsPerWorkgroup,maxComputeWorkgroupSizeX:r.limits.maxComputeWorkgroupSizeX,maxComputeWorkgroupSizeY:r.limits.maxComputeWorkgroupSizeY,maxComputeWorkgroupSizeZ:r.limits.maxComputeWorkgroupSizeZ},requiredFeatures:t},o=a=>r.features.has(a)&&t.push(a)&&!0;o("chromium-experimental-timestamp-query-inside-passes")||o("timestamp-query"),o("shader-f16"),o("subgroups"),this.device=await r.requestDevice(s),this.adapterInfo=new Wb(r.info||await r.requestAdapterInfo()),this.gpuDataManager=Fv(this),this.programManager=new m0(this),this.kernels=new Map,this.kernelPersistentData=new Map,this.kernelCustomData=new Map,au(e.logLevel,!!e.debug),this.device.onuncapturederror=a=>{a.error instanceof GPUValidationError&&console.error(`An uncaught WebGPU validation error was raised: ${a.error.message}`)},Object.defineProperty(this.env.webgpu,"device",{value:this.device,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(this.env.webgpu,"adapter",{value:r,writable:!1,enumerable:!0,configurable:!1}),this.setQueryType()}dispose(){typeof this.querySet<"u"&&this.querySet.destroy(),this.gpuDataManager.dispose()}getCommandEncoder(){return this.commandEncoder||(this.commandEncoder=this.device.createCommandEncoder()),this.commandEncoder}getComputePassEncoder(){if(!this.computePassEncoder){let e=this.getCommandEncoder(),r={};this.queryType==="at-passes"&&(r.timestampWrites={querySet:this.querySet,beginningOfPassWriteIndex:this.pendingDispatchNumber*2,endOfPassWriteIndex:this.pendingDispatchNumber*2+1}),this.computePassEncoder=e.beginComputePass(r)}return this.computePassEncoder}endComputePass(){this.computePassEncoder&&(this.computePassEncoder.end(),this.computePassEncoder=null)}flush(){if(!this.commandEncoder)return;Es(),this.endComputePass();let e;this.queryType!=="none"&&(this.commandEncoder.resolveQuerySet(this.querySet,0,this.pendingDispatchNumber*2,this.queryResolveBuffer,0),e=this.device.createBuffer({size:this.pendingDispatchNumber*2*8,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST}),this.pendingQueries.set(e,this.pendingKernels),this.pendingKernels=[],this.commandEncoder.copyBufferToBuffer(this.queryResolveBuffer,0,e,0,this.pendingDispatchNumber*2*8)),this.device.queue.submit([this.commandEncoder.finish()]),this.gpuDataManager.refreshPendingBuffers(),this.commandEncoder=null,this.pendingDispatchNumber=0,this.queryType!=="none"&&e.mapAsync(GPUMapMode.READ).then(()=>{let r=new BigUint64Array(e.getMappedRange()),t=this.pendingQueries.get(e);for(let s=0;s<r.length/2;s++){let o=t[s],a=o.kernelId,n=this.kernels.get(a),i=n.kernelType,l=n.kernelName,c=o.programName,_=o.inputTensorViews,u=o.outputTensorViews,d=r[s*2],g=r[s*2+1];typeof this.queryTimeBase>"u"&&(this.queryTimeBase=d);let h=Number(d-this.queryTimeBase),x=Number(g-this.queryTimeBase);if(!Number.isSafeInteger(h)||!Number.isSafeInteger(x))throw new RangeError("incorrect timestamp range");if(this.env.webgpu.profiling?.ondata)this.env.webgpu.profiling.ondata({version:1,inputsMetadata:_.map(F=>({dims:F.dims,dataType:Xs(F.dataType)})),outputsMetadata:u.map(F=>({dims:F.dims,dataType:Xs(F.dataType)})),kernelId:a,kernelType:i,kernelName:l,programName:c,startTime:h,endTime:x});else{let F="";_.forEach((b,C)=>{F+=`input[${C}]: [${b.dims}] | ${Xs(b.dataType)}, `});let v="";u.forEach((b,C)=>{v+=`output[${C}]: [${b.dims}] | ${Xs(b.dataType)}, `}),console.log(`[profiling] kernel "${a}|${i}|${l}|${c}" ${F}${v}execution time: ${x-h} ns`)}pn("GPU",`${c}::${d}::${g}`)}e.unmap(),this.pendingQueries.delete(e)}),us()}run(e,r,t,s,o,a){Es(e.name);let n=[];for(let b=0;b<r.length;++b){let C=r[b].data;if(C===0)continue;let y=this.gpuDataManager.get(C);if(!y)throw new Error(`no GPU data for input: ${C}`);n.push(y)}let{outputs:i,dispatchGroup:l,programUniforms:c}=e.getRunData(r),_=t.length===0?i.map((b,C)=>C):t;if(_.length!==i.length)throw new Error(`Output size ${_.length} must be equal to ${i.length}.`);let u=[],d=[];for(let b=0;b<i.length;++b){if(!Number.isInteger(_[b])||_[b]<-3||_[b]>=a)throw new Error(`Invalid output index: ${_[b]}`);if(_[b]===-3)continue;let C=_[b]===-1,y=_[b]===-2,P=C||y?o(i[b].dataType,i[b].dims):s(_[b],i[b].dataType,i[b].dims);if(u.push(P),P.data===0)continue;let I=this.gpuDataManager.get(P.data);if(!I)throw new Error(`no GPU data for output: ${P.data}`);if(C&&this.temporaryData.push(I),y){let f=this.kernelPersistentData.get(this.currentKernelId);f||(f=[],this.kernelPersistentData.set(this.currentKernelId,f)),f.push(I)}d.push(I)}if(n.length!==r.length||d.length!==u.length){if(d.length===0)return us(e.name),u;throw new Error(`Program ${e.name} has zero-sized tensor(s) in inputs or outputs. This is not supported now.`)}let g;if(c){let b=0,C=[];c.forEach(f=>{let E=typeof f.data=="number"?[f.data]:f.data;if(E.length===0)return;let D=f.type===10?2:4,O,U;f.type===10?(U=E.length>4?16:E.length>2?8:E.length*D,O=E.length>4?16:D*E.length):(U=E.length<=2?E.length*D:16,O=16),b=Math.ceil(b/U)*U,C.push(b);let W=f.type===10?8:4;b+=E.length>4?Math.ceil(E.length/W)*O:E.length*D});let y=16;b=Math.ceil(b/y)*y;let P=new ArrayBuffer(b);c.forEach((f,E)=>{let D=C[E],O=typeof f.data=="number"?[f.data]:f.data;if(f.type===6)new Int32Array(P,D,O.length).set(O);else if(f.type===12)new Uint32Array(P,D,O.length).set(O);else if(f.type===10)new Uint16Array(P,D,O.length).set(O);else if(f.type===1)new Float32Array(P,D,O.length).set(O);else throw new Error(`Unsupported uniform type: ${Xs(f.type)}`)});let I=this.gpuDataManager.create(b,GPUBufferUsage.COPY_DST|GPUBufferUsage.UNIFORM);this.device.queue.writeBuffer(I.buffer,0,P,0,b),this.gpuDataManager.release(I.id),g={offset:0,size:b,buffer:I.buffer}}let h=this.programManager.normalizeDispatchGroupSize(l),x=h[1]===1&&h[2]===1,F=Vb(e,r,x),v=this.programManager.getArtifact(F);if(v||(v=this.programManager.build(e,h),this.programManager.setArtifact(F,v),Ot("info",()=>`[artifact] key: ${F}, programName: ${e.name}`)),c&&v.uniformVariablesInfo){if(c.length!==v.uniformVariablesInfo.length)throw new Error(`Uniform variables count mismatch: expect ${v.uniformVariablesInfo.length}, got ${c.length} in program "${v.programInfo.name}".`);for(let b=0;b<c.length;b++){let C=c[b],y=C.type,P=typeof C.data=="number"?1:C.data.length,[I,f]=v.uniformVariablesInfo[b];if(y!==I||P!==f)throw new Error(`Uniform variable ${b} mismatch: expect type ${I} with size ${f}, got type ${y} with size ${P} in program "${v.programInfo.name}".`)}}if(Ot("info",()=>`[ProgramManager] run "${e.name}" (key=${F}) with ${h[0]}x${h[1]}x${h[2]}`),this.queryType!=="none"||this.sessionStatus==="capturing"){let b={kernelId:this.currentKernelId,programName:v.programInfo.name,inputTensorViews:r,outputTensorViews:u};this.pendingKernels.push(b),this.sessionStatus==="capturing"&&this.capturedPendingKernels.get(this.currentSessionId).push(b)}return this.programManager.run(v,n,d,h,g),us(e.name),u}upload(e,r){this.gpuDataManager.upload(e,r)}memcpy(e,r){this.gpuDataManager.memcpy(e,r)}async download(e,r){await this.gpuDataManager.download(e,r)}alloc(e){return this.gpuDataManager.create(e).id}free(e){return this.gpuDataManager.release(e)}createKernel(e,r,t,s){let o=p0.get(e);if(!o)throw new Error(`kernel not implemented: ${e}`);let a={kernelType:e,kernelName:s,kernelEntry:o[0],attributes:[o[1],t]};this.kernels.set(r,a)}releaseKernel(e){let r=this.kernelPersistentData.get(e);if(r){for(let t of r)this.gpuDataManager.release(t.id);this.kernelPersistentData.delete(e)}this.kernelCustomData.delete(e),this.kernels.delete(e)}computeKernel(e,r,t){let s=this.kernels.get(e);if(!s)throw new Error(`kernel not created: ${e}`);let o=s.kernelType,a=s.kernelName,n=s.kernelEntry,i=s.attributes;if(this.currentKernelId!==null)throw new Error(`kernel "[${o}] ${a}" is not allowed to be called recursively`);this.currentKernelId=e,i[0]&&(i[1]=i[0](i[1]),i[0]=void 0),Ot("info",()=>`[WebGPU] Start to run kernel "[${o}] ${a}"...`);let l=this.env.debug;this.temporaryData=[];try{return l&&this.device.pushErrorScope("validation"),n(r,i[1]),0}catch(c){return t.push(Promise.resolve(`[WebGPU] Kernel "[${o}] ${a}" failed. ${c}`)),1}finally{l&&t.push(this.device.popErrorScope().then(c=>c?`GPU validation error for kernel "[${o}] ${a}": ${c.message}`:null));for(let c of this.temporaryData)this.gpuDataManager.release(c.id);this.temporaryData=[],this.currentKernelId=null}}registerBuffer(e,r,t,s){let o=this.sessionExternalDataMapping.get(e);o||(o=new Map,this.sessionExternalDataMapping.set(e,o));let a=o.get(r),n=this.gpuDataManager.registerExternalBuffer(t,s,a);return o.set(r,[n,t]),n}unregisterBuffers(e){let r=this.sessionExternalDataMapping.get(e);r&&(r.forEach(t=>this.gpuDataManager.unregisterExternalBuffer(t[0])),this.sessionExternalDataMapping.delete(e))}getBuffer(e){let r=this.gpuDataManager.get(e);if(!r)throw new Error(`no GPU data for buffer: ${e}`);return r.buffer}createDownloader(e,r,t){return async()=>{let s=await Od(this,e,r);return nu(s.buffer,t)}}writeTimestamp(e){this.queryType==="inside-passes"&&this.computePassEncoder.writeTimestamp(this.querySet,e)}setQueryType(){this.queryType="none",(this.env.webgpu.profiling?.mode==="default"||(typeof this.env.trace>"u"?this.env.wasm.trace:this.env.trace))&&(this.device.features.has("chromium-experimental-timestamp-query-inside-passes")?this.queryType="inside-passes":this.device.features.has("timestamp-query")&&(this.queryType="at-passes"),this.queryType!=="none"&&typeof this.querySet>"u"&&(this.querySet=this.device.createQuerySet({type:"timestamp",count:this.maxDispatchNumber*2}),this.queryResolveBuffer=this.device.createBuffer({size:this.maxDispatchNumber*2*8,usage:GPUBufferUsage.COPY_SRC|GPUBufferUsage.QUERY_RESOLVE})))}captureBegin(){Ot("info","captureBegin"),this.capturedCommandList.get(this.currentSessionId)||this.capturedCommandList.set(this.currentSessionId,[]),this.capturedPendingKernels.get(this.currentSessionId)||this.capturedPendingKernels.set(this.currentSessionId,[]),this.flush(),this.sessionStatus="capturing"}captureEnd(){Ot("info","captureEnd"),this.flush(),this.sessionStatus="default"}replay(){Ot("info","replay"),this.sessionStatus="replaying";let e=this.capturedCommandList.get(this.currentSessionId),r=this.capturedPendingKernels.get(this.currentSessionId),t=e.length;this.pendingKernels=[];for(let s=0;s<t;s++){let o=this.getComputePassEncoder(),a=e[s];this.writeTimestamp(this.pendingDispatchNumber*2),o.setPipeline(a.computePipeline),o.setBindGroup(0,a.bindGroup),o.dispatchWorkgroups(...a.dispatchGroup),this.writeTimestamp(this.pendingDispatchNumber*2+1),this.pendingDispatchNumber++,this.queryType!=="none"&&this.pendingKernels.push(r[s]),(this.pendingDispatchNumber>=this.maxDispatchNumber||this.queryType==="at-passes")&&this.endComputePass(),this.pendingDispatchNumber>=this.maxDispatchNumber&&this.flush()}this.flush(),this.sessionStatus="default"}onCreateSession(){this.gpuDataManager.onCreateSession()}onReleaseSession(e){this.unregisterBuffers(e),this.capturedCommandList.has(e)&&this.capturedCommandList.delete(e),this.capturedPendingKernels.has(e)&&this.capturedPendingKernels.delete(e),this.gpuDataManager.onReleaseSession(e)}onRunStart(e){this.currentSessionId=e,this.setQueryType()}}}),g0={};ha(g0,{init:()=>M0});var Ni,Ub,M0,uE=Ve(()=>{"use strict";Mt(),Js(),kt(),wP(),Ni=class w0{constructor(r,t,s,o){this.module=r,this.dataType=t,this.data=s,this.dims=o}getFloat32Array(){if(this.dataType!==1)throw new Error("Invalid data type");let r=Me.size(this.dims);return r===0?new Float32Array:new Float32Array(this.module.HEAP8.buffer,this.data,r)}getBigInt64Array(){if(this.dataType!==7)throw new Error("Invalid data type");let r=Me.size(this.dims);return r===0?new BigInt64Array:new BigInt64Array(this.module.HEAP8.buffer,this.data,r)}getInt32Array(){if(this.dataType!==6)throw new Error("Invalid data type");let r=Me.size(this.dims);return r===0?new Int32Array:new Int32Array(this.module.HEAP8.buffer,this.data,r)}getUint16Array(){if(this.dataType!==10&&this.dataType!==4)throw new Error("Invalid data type");let r=Me.size(this.dims);return r===0?new Uint16Array:new Uint16Array(this.module.HEAP8.buffer,this.data,r)}reshape(r){if(Me.size(r)!==Me.size(this.dims))throw new Error("Invalid new shape");return new w0(this.module,this.dataType,this.data,r)}},Ub=class{constructor(e,r,t){this.module=e,this.backend=r,this.customDataOffset=0,this.customDataSize=0,this.adapterInfo=r.adapterInfo;let s=e.PTR_SIZE,o=t/e.PTR_SIZE,a=s===4?"i32":"i64";this.opKernelContext=Number(e.getValue(s*o++,a));let n=Number(e.getValue(s*o++,a));this.outputCount=Number(e.getValue(s*o++,a)),this.customDataOffset=Number(e.getValue(s*o++,"*")),this.customDataSize=Number(e.getValue(s*o++,a));let i=[];for(let l=0;l<n;l++){let c=Number(e.getValue(s*o++,a)),_=Number(e.getValue(s*o++,"*")),u=Number(e.getValue(s*o++,a)),d=[];for(let g=0;g<u;g++)d.push(Number(e.getValue(s*o++,a)));i.push(new Ni(e,c,_,d))}this.inputs=i}get kernelCustomData(){return this.backend.currentKernelCustomData}get customDataBuffer(){return this.module.HEAPU8.subarray(this.customDataOffset,this.customDataOffset+this.customDataSize)}compute(e,r){let t=r?.inputs?.map(n=>typeof n=="number"?this.inputs[n]:n)??this.inputs,s=r?.outputs??[],o=(n,i,l)=>new Ni(this.module,i,this.output(n,l),l),a=(n,i)=>{let l=Lo(n,i);if(!l)throw new Error(`Unsupported data type: ${n}`);let c=l>0?this.backend.gpuDataManager.create(l).id:0;return new Ni(this.module,n,c,i)};return this.backend.run(e,t,s,o,a,this.outputCount)}output(e,r){let t=this.module.stackSave();try{let s=this.module.PTR_SIZE,o=s===4?"i32":"i64",a=this.module.stackAlloc((1+r.length)*s);this.module.setValue(a,r.length,o);for(let n=0;n<r.length;n++)this.module.setValue(a+s*(n+1),r[n],o);return this.module._JsepOutput(this.opKernelContext,e,a)}catch(s){throw new Error(`Failed to generate kernel's output[${e}] with dims [${r}]. If you are running with pre-allocated output, please make sure the output type/dims are correct. Error: ${s}`)}finally{this.module.stackRestore(t)}}},M0=async(e,r,t,s)=>{let o=r.jsepInit;if(!o)throw new Error("Failed to initialize JSEP. The WebAssembly module is not built with JSEP support.");if(e==="webgpu"){let a=(dE(),_n(h0)).WebGpuBackend,n=new a;await n.initialize(t,s),o("webgpu",[n,i=>n.alloc(Number(i)),i=>n.free(i),(i,l,c,_=!1)=>{if(_)Ot("verbose",()=>`[WebGPU] jsepCopyGpuToGpu: src=${Number(i)}, dst=${Number(l)}, size=${Number(c)}`),n.memcpy(Number(i),Number(l));else{Ot("verbose",()=>`[WebGPU] jsepCopyCpuToGpu: dataOffset=${Number(i)}, gpuDataId=${Number(l)}, size=${Number(c)}`);let u=r.HEAPU8.subarray(Number(i>>>0),Number(i>>>0)+Number(c));n.upload(Number(l),u)}},async(i,l,c)=>{Ot("verbose",()=>`[WebGPU] jsepCopyGpuToCpu: gpuDataId=${i}, dataOffset=${l}, size=${c}`),await n.download(Number(i),()=>r.HEAPU8.subarray(Number(l)>>>0,Number(l+c)>>>0))},(i,l,c)=>n.createKernel(i,Number(l),c,r.UTF8ToString(r._JsepGetNodeName(Number(l)))),i=>n.releaseKernel(i),(i,l,c,_)=>{Ot("verbose",()=>`[WebGPU] jsepRun: sessionHandle=${c}, kernel=${i}, contextDataOffset=${l}`);let u=new Ub(r,n,Number(l));return n.computeKernel(Number(i),u,_)},()=>n.captureBegin(),()=>n.captureEnd(),()=>n.replay()])}else{let a=new Sv(t);o("webnn",[a,()=>a.reserveTensorId(),n=>a.releaseTensorId(n),async(n,i,l,c,_)=>a.ensureTensor(n,i,l,c,_),(n,i)=>{a.uploadTensor(n,i)},async(n,i)=>a.downloadTensor(n,i)])}}}),Gb,gu,Mu,co,Kb,Cd,Ji,wu,bu,Sd,vu,xu,yu,b0=Ve(()=>{"use strict";fP(),gP(),Mt(),jo(),eu(),yv(),Gb=(e,r)=>{Jt()._OrtInit(e,r)!==0&&Kt("Can't initialize onnxruntime.")},gu=async e=>{Gb(e.wasm.numThreads,Ki(e.logLevel))},Mu=async(e,r)=>{Jt().asyncInit?.();{let t=(uE(),_n(g0)).init;if(r==="webgpu"){if(typeof navigator>"u"||!navigator.gpu)throw new Error("WebGPU is not supported in current environment");let s=e.webgpu.adapter;if(s){if(typeof s.limits!="object"||typeof s.features!="object"||typeof s.requestDevice!="function")throw new Error("Invalid GPU adapter set in `env.webgpu.adapter`. It must be a GPUAdapter object.")}else{let o=e.webgpu.powerPreference;if(o!==void 0&&o!=="low-power"&&o!=="high-performance")throw new Error(`Invalid powerPreference setting: "${o}"`);let a=e.webgpu.forceFallbackAdapter;if(a!==void 0&&typeof a!="boolean")throw new Error(`Invalid forceFallbackAdapter setting: "${a}"`);if(s=await navigator.gpu.requestAdapter({powerPreference:o,forceFallbackAdapter:a}),!s)throw new Error('Failed to get GPU adapter. You may need to enable flag "--enable-unsafe-webgpu" if you are using Chrome.')}await t("webgpu",Jt(),e,s)}if(r==="webnn"){if(typeof navigator>"u"||!navigator.ml)throw new Error("WebNN is not supported in current environment");await t("webnn",Jt(),e)}}},co=new Map,Kb=e=>{let r=Jt(),t=r.stackSave();try{let s=r.PTR_SIZE,o=r.stackAlloc(2*s);r._OrtGetInputOutputCount(e,o,o+s)!==0&&Kt("Can't get session input/output count.");let a=s===4?"i32":"i64";return[Number(r.getValue(o,a)),Number(r.getValue(o+s,a))]}finally{r.stackRestore(t)}},Cd=(e,r)=>{let t=Jt(),s=t.stackSave(),o=0;try{let a=t.PTR_SIZE,n=t.stackAlloc(2*a);t._OrtGetInputOutputMetadata(e,r,n,n+a)!==0&&Kt("Can't get session input/output metadata.");let i=Number(t.getValue(n,"*"));o=Number(t.getValue(n+a,"*"));let l=t.HEAP32[o/4];if(l===0)return[i,0];let c=t.HEAPU32[o/4+1],_=[];for(let u=0;u<c;u++){let d=Number(t.getValue(o+8+u*a,"*"));_.push(d!==0?t.UTF8ToString(d):Number(t.getValue(o+8+(u+c)*a,"*")))}return[i,l,_]}finally{t.stackRestore(s),o!==0&&t._OrtFree(o)}},Ji=e=>{let r=Jt(),t=r._malloc(e.byteLength);if(t===0)throw new Error(`Can't create a session. failed to allocate a buffer of size ${e.byteLength}.`);return r.HEAPU8.set(e,t),[t,e.byteLength]},wu=async(e,r)=>{let t,s,o=Jt();Array.isArray(e)?[t,s]=e:e.buffer===o.HEAPU8.buffer?[t,s]=[e.byteOffset,e.byteLength]:[t,s]=Ji(e);let a=0,n=0,i=0,l=[],c=[],_=[];try{if([n,l]=await xv(r),r?.externalData&&o.mountExternalData){let y=[];for(let P of r.externalData){let I=typeof P=="string"?P:P.path;y.push(ou(typeof P=="string"?P:P.data).then(f=>{o.mountExternalData(I,f)}))}await Promise.all(y)}for(let y of r?.executionProviders??[])if((typeof y=="string"?y:y.name)==="webnn"){if(o.shouldTransferToMLTensor=!1,typeof y!="string"){let P=y,I=P?.context,f=P?.gpuDevice,E=P?.deviceType,D=P?.powerPreference;I?o.currentContext=I:f?o.currentContext=await o.webnnCreateMLContext(f):o.currentContext=await o.webnnCreateMLContext({deviceType:E,powerPreference:D})}else o.currentContext=await o.webnnCreateMLContext();break}a=await o._OrtCreateSession(t,s,n),o.webgpuOnCreateSession?.(a),a===0&&Kt("Can't create a session."),o.jsepOnCreateSession?.(),o.currentContext&&(o.webnnRegisterMLContext(a,o.currentContext),o.currentContext=void 0,o.shouldTransferToMLTensor=!0);let[u,d]=Kb(a),g=!!r?.enableGraphCapture,h=[],x=[],F=[],v=[],b=[];for(let y=0;y<u;y++){let[P,I,f]=Cd(a,y);P===0&&Kt("Can't get an input name."),c.push(P);let E=o.UTF8ToString(P);h.push(E),F.push(I===0?{name:E,isTensor:!1}:{name:E,isTensor:!0,type:Xs(I),shape:f})}for(let y=0;y<d;y++){let[P,I,f]=Cd(a,y+u);P===0&&Kt("Can't get an output name."),_.push(P);let E=o.UTF8ToString(P);x.push(E),v.push(I===0?{name:E,isTensor:!1}:{name:E,isTensor:!0,type:Xs(I),shape:f});{if(g&&r?.preferredOutputLocation===void 0){b.push("gpu-buffer");continue}let D=typeof r?.preferredOutputLocation=="string"?r.preferredOutputLocation:r?.preferredOutputLocation?.[E]??"cpu";if(D!=="cpu"&&D!=="cpu-pinned"&&D!=="gpu-buffer"&&D!=="ml-tensor")throw new Error(`Not supported preferred output location: ${D}.`);if(g&&D!=="gpu-buffer")throw new Error(`Not supported preferred output location: ${D}. Only 'gpu-buffer' location is supported when enableGraphCapture is true.`);b.push(D)}}let C=null;return b.some(y=>y==="gpu-buffer"||y==="ml-tensor")&&(i=o._OrtCreateBinding(a),i===0&&Kt("Can't create IO binding."),C={handle:i,outputPreferredLocations:b,outputPreferredLocationsEncoded:b.map(y=>$d(y))}),co.set(a,[a,c,_,C,g,!1]),[a,h,x,F,v]}catch(u){throw c.forEach(d=>o._OrtFree(d)),_.forEach(d=>o._OrtFree(d)),i!==0&&o._OrtReleaseBinding(i)!==0&&Kt("Can't release IO binding."),a!==0&&o._OrtReleaseSession(a)!==0&&Kt("Can't release session."),u}finally{o._free(t),n!==0&&o._OrtReleaseSessionOptions(n)!==0&&Kt("Can't release session options."),l.forEach(u=>o._free(u)),o.unmountExternalData?.()}},bu=e=>{let r=Jt(),t=co.get(e);if(!t)throw new Error(`cannot release session. invalid session id: ${e}`);let[s,o,a,n,i]=t;n&&(i&&r._OrtClearBoundOutputs(n.handle)!==0&&Kt("Can't clear bound outputs."),r._OrtReleaseBinding(n.handle)!==0&&Kt("Can't release IO binding.")),r.jsepOnReleaseSession?.(e),r.webnnOnReleaseSession?.(e),r.webgpuOnReleaseSession?.(e),o.forEach(l=>r._OrtFree(l)),a.forEach(l=>r._OrtFree(l)),r._OrtReleaseSession(s)!==0&&Kt("Can't release session."),co.delete(e)},Sd=async(e,r,t,s,o,a,n=!1)=>{if(!e){r.push(0);return}let i=Jt(),l=i.PTR_SIZE,c=e[0],_=e[1],u=e[3],d=u,g,h;if(c==="string"&&(u==="gpu-buffer"||u==="ml-tensor"))throw new Error("String tensor is not supported on GPU.");if(n&&u!=="gpu-buffer")throw new Error(`External buffer must be provided for input/output index ${a} when enableGraphCapture is true.`);if(u==="gpu-buffer"){let v=e[2].gpuBuffer;h=Lo(ua(c),_);{let b=i.jsepRegisterBuffer;if(!b)throw new Error('Tensor location "gpu-buffer" is not supported without using WebGPU.');g=b(s,a,v,h)}}else if(u==="ml-tensor"){let v=e[2].mlTensor;h=Lo(ua(c),_);let b=i.webnnRegisterMLTensor;if(!b)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');g=b(s,v,ua(c),_)}else{let v=e[2];if(Array.isArray(v)){h=l*v.length,g=i._malloc(h),t.push(g);for(let b=0;b<v.length;b++){if(typeof v[b]!="string")throw new TypeError(`tensor data at index ${b} is not a string`);i.setValue(g+b*l,Ts(v[b],t),"*")}}else{let b=i.webnnIsGraphInput;if(c!=="string"&&b){let C=i.UTF8ToString(o);if(b(s,C)){let y=ua(c);h=Lo(y,_),d="ml-tensor";let P=i.webnnCreateTemporaryTensor,I=i.webnnUploadTensor;if(!P||!I)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');let f=await P(s,y,_);I(f,new Uint8Array(v.buffer,v.byteOffset,v.byteLength)),g=f}else h=v.byteLength,g=i._malloc(h),t.push(g),i.HEAPU8.set(new Uint8Array(v.buffer,v.byteOffset,h),g)}else h=v.byteLength,g=i._malloc(h),t.push(g),i.HEAPU8.set(new Uint8Array(v.buffer,v.byteOffset,h),g)}}let x=i.stackSave(),F=i.stackAlloc(4*_.length);try{_.forEach((b,C)=>i.setValue(F+C*l,b,l===4?"i32":"i64"));let v=i._OrtCreateTensor(ua(c),g,h,F,_.length,$d(d));v===0&&Kt(`Can't create tensor for input/output. session=${s}, index=${a}.`),r.push(v)}finally{i.stackRestore(x)}},vu=async(e,r,t,s,o,a)=>{let n=Jt(),i=n.PTR_SIZE,l=co.get(e);if(!l)throw new Error(`cannot run inference. invalid session id: ${e}`);let c=l[0],_=l[1],u=l[2],d=l[3],g=l[4],h=l[5],x=r.length,F=s.length,v=0,b=[],C=[],y=[],P=[],I=n.stackSave(),f=n.stackAlloc(x*i),E=n.stackAlloc(x*i),D=n.stackAlloc(F*i),O=n.stackAlloc(F*i);try{[v,b]=vv(a);for(let z=0;z<x;z++)await Sd(t[z],C,P,e,_[r[z]],r[z],g);for(let z=0;z<F;z++)await Sd(o[z],y,P,e,u[s[z]],x+s[z],g);for(let z=0;z<x;z++)n.setValue(f+z*i,C[z],"*"),n.setValue(E+z*i,_[r[z]],"*");for(let z=0;z<F;z++)n.setValue(D+z*i,y[z],"*"),n.setValue(O+z*i,u[s[z]],"*");if(d&&!h){let{handle:z,outputPreferredLocations:X,outputPreferredLocationsEncoded:J}=d;if(_.length!==x)throw new Error(`input count from feeds (${x}) is expected to be always equal to model's input count (${_.length}).`);for(let q=0;q<x;q++){let re=r[q];await n._OrtBindInput(z,_[re],C[q])!==0&&Kt(`Can't bind input[${q}] for session=${e}.`)}for(let q=0;q<F;q++){let re=s[q];o[q]?.[3]?n._OrtBindOutput(z,u[re],y[q],0)!==0&&Kt(`Can't bind pre-allocated output[${q}] for session=${e}.`):n._OrtBindOutput(z,u[re],0,J[re])!==0&&Kt(`Can't bind output[${q}] to ${X[q]} for session=${e}.`)}co.set(e,[c,_,u,d,g,!0])}n.jsepOnRunStart?.(c),n.webnnOnRunStart?.(c);let U;d?U=await n._OrtRunWithBinding(c,d.handle,F,D,v):U=await n._OrtRun(c,E,f,x,O,F,D,v),U!==0&&Kt("failed to call OrtRun().");let W=[];for(let z=0;z<F;z++){let X=Number(n.getValue(D+z*i,"*"));if(X===y[z]){W.push(o[z]);continue}let J=n.stackSave(),q=n.stackAlloc(4*i),re=!1,oe,ne=0;try{n._OrtGetTensorData(X,q,q+i,q+2*i,q+3*i)!==0&&Kt(`Can't access output tensor data on index ${z}.`);let ye=i===4?"i32":"i64",Y=Number(n.getValue(q,ye));ne=n.getValue(q+i,"*");let H=n.getValue(q+i*2,"*"),R=Number(n.getValue(q+i*3,ye)),L=[];for(let ke=0;ke<R;ke++)L.push(Number(n.getValue(H+ke*i,ye)));n._OrtFree(H)!==0&&Kt("Can't free memory for tensor dims.");let ee=L.reduce((ke,Ie)=>ke*Ie,1);oe=Xs(Y);let ue=d?.outputPreferredLocations[s[z]];if(oe==="string"){if(ue==="gpu-buffer"||ue==="ml-tensor")throw new Error("String tensor is not supported on GPU.");let ke=[];for(let Ie=0;Ie<ee;Ie++){let Le=n.getValue(ne+Ie*i,"*"),rt=n.getValue(ne+(Ie+1)*i,"*"),we=Ie===ee-1?void 0:rt-Le;ke.push(n.UTF8ToString(Le,we))}W.push([oe,L,ke,"cpu"])}else if(ue==="gpu-buffer"&&ee>0){let ke=n.jsepGetBuffer;if(!ke)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let Ie=ke(ne),Le=Lo(Y,ee);if(Le===void 0||!ru(oe))throw new Error(`Unsupported data type: ${oe}`);re=!0,W.push([oe,L,{gpuBuffer:Ie,download:n.jsepCreateDownloader(Ie,Le,oe),dispose:()=>{n._OrtReleaseTensor(X)!==0&&Kt("Can't release tensor.")}},"gpu-buffer"])}else if(ue==="ml-tensor"&&ee>0){let ke=n.webnnEnsureTensor,Ie=n.webnnIsInt64Supported;if(!ke||!Ie)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(Lo(Y,ee)===void 0||!su(oe))throw new Error(`Unsupported data type: ${oe}`);if(oe==="int64"&&!Ie(e))throw new Error('preferredLocation "ml-tensor" for int64 output is not supported by current WebNN Context.');let Le=await ke(e,ne,Y,L,!1);re=!0,W.push([oe,L,{mlTensor:Le,download:n.webnnCreateMLTensorDownloader(ne,oe),dispose:()=>{n.webnnReleaseTensorId(ne),n._OrtReleaseTensor(X)}},"ml-tensor"])}else{let ke=tu(oe),Ie=new ke(ee);new Uint8Array(Ie.buffer,Ie.byteOffset,Ie.byteLength).set(n.HEAPU8.subarray(ne,ne+Ie.byteLength)),W.push([oe,L,Ie,"cpu"])}}finally{n.stackRestore(J),oe==="string"&&ne&&n._free(ne),re||n._OrtReleaseTensor(X),n.webnnOnRunEnd?.(c)}}return d&&!g&&(n._OrtClearBoundOutputs(d.handle)!==0&&Kt("Can't clear bound outputs."),co.set(e,[c,_,u,d,g,!1])),W}finally{n.stackRestore(I),C.forEach(U=>n._OrtReleaseTensor(U)),y.forEach(U=>n._OrtReleaseTensor(U)),P.forEach(U=>n._free(U)),v!==0&&n._OrtReleaseRunOptions(v),b.forEach(U=>n._free(U))}},xu=e=>{let r=Jt(),t=co.get(e);if(!t)throw new Error("invalid session id");let s=t[0],o=r._OrtEndProfiling(s);o===0&&Kt("Can't get an profile file name."),r._OrtFree(o)},yu=e=>{let r=[];for(let t of e){let s=t[2];!Array.isArray(s)&&"buffer"in s&&r.push(s.buffer)}return r}}),uo,cs,da,on,an,ji,Fd,Vi,$o,Do,Hb,v0,x0,y0,T0,P0,E0,k0,C0=Ve(()=>{"use strict";ks(),b0(),jo(),Yd(),uo=()=>!!Zt.wasm.proxy&&typeof document<"u",da=!1,on=!1,an=!1,Vi=new Map,$o=(e,r)=>{let t=Vi.get(e);t?t.push(r):Vi.set(e,[r])},Do=()=>{if(da||!on||an||!cs)throw new Error("worker not ready")},Hb=e=>{switch(e.data.type){case"init-wasm":da=!1,e.data.err?(an=!0,Fd[1](e.data.err)):(on=!0,Fd[0]()),ji&&(URL.revokeObjectURL(ji),ji=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let r=Vi.get(e.data.type);e.data.err?r.shift()[1](e.data.err):r.shift()[0](e.data.out);break}default:}},v0=async()=>{if(!on){if(da)throw new Error("multiple calls to 'initWasm()' detected.");if(an)throw new Error("previous call to 'initWasm()' failed.");if(da=!0,uo())return new Promise((e,r)=>{cs?.terminate(),wv().then(([t,s])=>{try{cs=s,cs.onerror=a=>r(a),cs.onmessage=Hb,Fd=[e,r];let o={type:"init-wasm",in:Zt};!o.in.wasm.wasmPaths&&(t||Ad)&&(o.in.wasm.wasmPaths={wasm:new URL("ort-wasm-simd-threaded.jsep.wasm",import.meta.url).href}),cs.postMessage(o),ji=t}catch(o){r(o)}},r)});try{await Zd(Zt.wasm),await gu(Zt),on=!0}catch(e){throw an=!0,e}finally{da=!1}}},x0=async e=>{if(uo())return Do(),new Promise((r,t)=>{$o("init-ep",[r,t]);let s={type:"init-ep",in:{epName:e,env:Zt}};cs.postMessage(s)});await Mu(Zt,e)},y0=async e=>uo()?(Do(),new Promise((r,t)=>{$o("copy-from",[r,t]);let s={type:"copy-from",in:{buffer:e}};cs.postMessage(s,[e.buffer])})):Ji(e),T0=async(e,r)=>{if(uo()){if(r?.preferredOutputLocation)throw new Error('session option "preferredOutputLocation" is not supported for proxy.');return Do(),new Promise((t,s)=>{$o("create",[t,s]);let o={type:"create",in:{model:e,options:{...r}}},a=[];e instanceof Uint8Array&&a.push(e.buffer),cs.postMessage(o,a)})}else return wu(e,r)},P0=async e=>{if(uo())return Do(),new Promise((r,t)=>{$o("release",[r,t]);let s={type:"release",in:e};cs.postMessage(s)});bu(e)},E0=async(e,r,t,s,o,a)=>{if(uo()){if(t.some(n=>n[3]!=="cpu"))throw new Error("input tensor on GPU is not supported for proxy.");if(o.some(n=>n))throw new Error("pre-allocated output tensor is not supported for proxy.");return Do(),new Promise((n,i)=>{$o("run",[n,i]);let l=t,c={type:"run",in:{sessionId:e,inputIndices:r,inputs:l,outputIndices:s,options:a}};cs.postMessage(c,yu(l))})}else return vu(e,r,t,s,o,a)},k0=async e=>{if(uo())return Do(),new Promise((r,t)=>{$o("end-profiling",[r,t]);let s={type:"end-profiling",in:e};cs.postMessage(s)});xu(e)}}),Id,qb,S0,_E=Ve(()=>{"use strict";ks(),C0(),Mt(),Jd(),yv(),Id=(e,r)=>{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 new Error(`invalid data location: ${e.location} for ${r()}`)}},qb=e=>{switch(e[3]){case"cpu":return new Ps(e[0],e[2],e[1]);case"gpu-buffer":{let r=e[0];if(!ru(r))throw new Error(`not supported data type: ${r} for deserializing GPU tensor`);let{gpuBuffer:t,download:s,dispose:o}=e[2];return Ps.fromGpuBuffer(t,{dataType:r,dims:e[1],download:s,dispose:o})}case"ml-tensor":{let r=e[0];if(!su(r))throw new Error(`not supported data type: ${r} for deserializing MLTensor tensor`);let{mlTensor:t,download:s,dispose:o}=e[2];return Ps.fromMLTensor(t,{dataType:r,dims:e[1],download:s,dispose:o})}default:throw new Error(`invalid data location: ${e[3]}`)}},S0=class{async fetchModelAndCopyToWasmMemory(e){return y0(await ou(e))}async loadModel(e,r){Es();let t;typeof e=="string"?t=await this.fetchModelAndCopyToWasmMemory(e):t=e,[this.sessionId,this.inputNames,this.outputNames,this.inputMetadata,this.outputMetadata]=await T0(t,r),us()}async dispose(){return P0(this.sessionId)}async run(e,r,t){Es();let s=[],o=[];Object.entries(e).forEach(u=>{let d=u[0],g=u[1],h=this.inputNames.indexOf(d);if(h===-1)throw new Error(`invalid input '${d}'`);s.push(g),o.push(h)});let a=[],n=[];Object.entries(r).forEach(u=>{let d=u[0],g=u[1],h=this.outputNames.indexOf(d);if(h===-1)throw new Error(`invalid output '${d}'`);a.push(g),n.push(h)});let i=s.map((u,d)=>Id(u,()=>`input "${this.inputNames[o[d]]}"`)),l=a.map((u,d)=>u?Id(u,()=>`output "${this.outputNames[n[d]]}"`):null),c=await E0(this.sessionId,o,i,n,l,t),_={};for(let u=0;u<c.length;u++)_[this.outputNames[n[u]]]=a[u]??qb(c[u]);return us(),_}startProfiling(){}endProfiling(){k0(this.sessionId)}}}),F0={};ha(F0,{OnnxruntimeWebAssemblyBackend:()=>Hd,initializeFlags:()=>Kd,wasmBackend:()=>I0});var Kd,Hd,I0,pE=Ve(()=>{"use strict";ks(),C0(),_E(),Kd=()=>{(typeof Zt.wasm.initTimeout!="number"||Zt.wasm.initTimeout<0)&&(Zt.wasm.initTimeout=0);let e=Zt.wasm.simd;if(typeof e!="boolean"&&e!==void 0&&e!=="fixed"&&e!=="relaxed"&&(console.warn(`Property "env.wasm.simd" is set to unknown value "${e}". Reset it to \`false\` and ignore SIMD feature checking.`),Zt.wasm.simd=!1),typeof Zt.wasm.proxy!="boolean"&&(Zt.wasm.proxy=!1),typeof Zt.wasm.trace!="boolean"&&(Zt.wasm.trace=!1),typeof Zt.wasm.numThreads!="number"||!Number.isInteger(Zt.wasm.numThreads)||Zt.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)Zt.wasm.numThreads=1;else{let r=typeof navigator>"u"?ZT("node:os").cpus().length:navigator.hardwareConcurrency;Zt.wasm.numThreads=Math.min(4,Math.ceil((r||1)/2))}},Hd=class{async init(e){Kd(),await v0(),await x0(e)}async createInferenceSessionHandler(e,r){let t=new S0;return await t.loadModel(e,r),t}},I0=new Hd});ks();ks();ks();var mE="1.22.0-dev.20250409-89f8206ba4",hE=pv;{let e=(pE(),_n(F0)).wasmBackend;Bo("webgpu",e,5),Bo("webnn",e,5),Bo("cpu",e,10),Bo("wasm",e,10)}Object.defineProperty(Zt.versions,"web",{value:mE,enumerable:!0});var fE={"onnxruntime-common":(e=>{e.exports=Ac}),"onnxruntime-web":(e=>{e.exports=Tu}),"?2ce3":(()=>{}),"?7992":(()=>{}),"?5af5":(()=>{}),"?2b25":(()=>{}),"?db59":(()=>{}),"?383f":(()=>{}),"?fa4b":(()=>{}),"./node_modules/@huggingface/jinja/dist/index.js":((e,r,t)=>{t.r(r),t.d(r,{Environment:()=>pt,Interpreter:()=>Lt,Template:()=>Xr,parse:()=>ke,tokenize:()=>u});var s=Object.freeze({Text:"Text",NumericLiteral:"NumericLiteral",StringLiteral:"StringLiteral",Identifier:"Identifier",Equals:"Equals",OpenParen:"OpenParen",CloseParen:"CloseParen",OpenStatement:"OpenStatement",CloseStatement:"CloseStatement",OpenExpression:"OpenExpression",CloseExpression:"CloseExpression",OpenSquareBracket:"OpenSquareBracket",CloseSquareBracket:"CloseSquareBracket",OpenCurlyBracket:"OpenCurlyBracket",CloseCurlyBracket:"CloseCurlyBracket",Comma:"Comma",Dot:"Dot",Colon:"Colon",Pipe:"Pipe",CallOperator:"CallOperator",AdditiveBinaryOperator:"AdditiveBinaryOperator",MultiplicativeBinaryOperator:"MultiplicativeBinaryOperator",ComparisonBinaryOperator:"ComparisonBinaryOperator",UnaryOperator:"UnaryOperator",Comment:"Comment"}),o=class{constructor(k,Q){this.value=k,this.type=Q}};function a(k){return/\w/.test(k)}function n(k){return/[0-9]/.test(k)}function i(k){return/\s/.test(k)}var l=[["{%",s.OpenStatement],["%}",s.CloseStatement],["{{",s.OpenExpression],["}}",s.CloseExpression],["(",s.OpenParen],[")",s.CloseParen],["{",s.OpenCurlyBracket],["}",s.CloseCurlyBracket],["[",s.OpenSquareBracket],["]",s.CloseSquareBracket],[",",s.Comma],[".",s.Dot],[":",s.Colon],["|",s.Pipe],["<=",s.ComparisonBinaryOperator],[">=",s.ComparisonBinaryOperator],["==",s.ComparisonBinaryOperator],["!=",s.ComparisonBinaryOperator],["<",s.ComparisonBinaryOperator],[">",s.ComparisonBinaryOperator],["+",s.AdditiveBinaryOperator],["-",s.AdditiveBinaryOperator],["~",s.AdditiveBinaryOperator],["*",s.MultiplicativeBinaryOperator],["/",s.MultiplicativeBinaryOperator],["%",s.MultiplicativeBinaryOperator],["=",s.Equals]],c=new Map([["n",`
2828
+ ${a}`,i=t.createShaderModule({code:n,label:e.name});Ot("verbose",()=>`[WebGPU] ${e.name} shader code: ${n}`);let l=t.createComputePipeline({compute:{module:i,entryPoint:"main"},layout:"auto",label:e.name});return us(e.name),{programInfo:e,computePipeline:l,uniformVariablesInfo:o.variablesInfo}}normalizeDispatchGroupSize(e){let r=typeof e=="number"?e:e.x,t=typeof e=="number"?1:e.y||1,s=typeof e=="number"?1:e.z||1,o=this.backend.device.limits.maxComputeWorkgroupsPerDimension;if(r<=o&&t<=o&&s<=o)return[r,t,s];let a=r*t*s,n=Math.ceil(Math.sqrt(a));if(n>o){if(n=Math.ceil(Math.cbrt(a)),n>o)throw new Error("Total dispatch size exceeds WebGPU maximum.");return[n,n,n]}else return[n,n,1]}}}),f0={};fa(f0,{WebGpuBackend:()=>g0});var Vb,Wb,Ub,g0,uE=Ve(()=>{"use strict";ks(),Mt(),Js(),Cv(),vP(),cE(),dE(),Vb=(e,r)=>{if(r.length!==e.length)throw new Error(`inputDependencies length ${r.length} is not equal to inputTensors length ${e.length}.`);let t=[];for(let s=0;s<e.length;++s){let o=e[s].dataType;switch(r[s]){case"none":{t.push("");break}case"type":{t.push(`${o}`);break}case"rank":{let a=e[s].dims.length;t.push(`${o};${a}`);break}case"dims":{let a=e[s].dims.join(",");t.push(`${o};${a}`);break}default:throw new Error(`unsupported input dependency: ${r[s]}`)}}return t.join("|")},Wb=(e,r,t)=>{let s=e.name;return e.shaderCache?.hint&&(s+="["+e.shaderCache.hint+"]"),s+=":"+t+`:${Vb(r,e.shaderCache?.inputDependencies??new Array(r.length).fill("dims"))}`,s},Ub=class{constructor(e){e&&(this.architecture=e.architecture,this.vendor=e.vendor)}isArchitecture(e){return this.architecture===e}isVendor(e){return this.vendor===e}},g0=class{constructor(){this.currentSessionId=null,this.currentKernelId=null,this.commandEncoder=null,this.computePassEncoder=null,this.maxDispatchNumber=16,this.pendingDispatchNumber=0,this.pendingKernels=[],this.pendingQueries=new Map,this.sessionStatus="default",this.capturedCommandList=new Map,this.capturedPendingKernels=new Map,this.sessionExternalDataMapping=new Map}get currentKernelCustomData(){if(this.currentKernelId===null)throw new Error("currentKernelCustomData(): currentKernelId is null. (should not happen)");let e=this.kernelCustomData.get(this.currentKernelId);return e||(e={},this.kernelCustomData.set(this.currentKernelId,e)),e}async initialize(e,r){this.env=e;let t=[],s={requiredLimits:{maxComputeWorkgroupStorageSize:r.limits.maxComputeWorkgroupStorageSize,maxComputeWorkgroupsPerDimension:r.limits.maxComputeWorkgroupsPerDimension,maxStorageBufferBindingSize:r.limits.maxStorageBufferBindingSize,maxBufferSize:r.limits.maxBufferSize,maxComputeInvocationsPerWorkgroup:r.limits.maxComputeInvocationsPerWorkgroup,maxComputeWorkgroupSizeX:r.limits.maxComputeWorkgroupSizeX,maxComputeWorkgroupSizeY:r.limits.maxComputeWorkgroupSizeY,maxComputeWorkgroupSizeZ:r.limits.maxComputeWorkgroupSizeZ},requiredFeatures:t},o=a=>r.features.has(a)&&t.push(a)&&!0;o("chromium-experimental-timestamp-query-inside-passes")||o("timestamp-query"),o("shader-f16"),o("subgroups"),this.device=await r.requestDevice(s),this.adapterInfo=new Ub(r.info||await r.requestAdapterInfo()),this.gpuDataManager=Iv(this),this.programManager=new h0(this),this.kernels=new Map,this.kernelPersistentData=new Map,this.kernelCustomData=new Map,au(e.logLevel,!!e.debug),this.device.onuncapturederror=a=>{a.error instanceof GPUValidationError&&console.error(`An uncaught WebGPU validation error was raised: ${a.error.message}`)},Object.defineProperty(this.env.webgpu,"device",{value:this.device,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(this.env.webgpu,"adapter",{value:r,writable:!1,enumerable:!0,configurable:!1}),this.setQueryType()}dispose(){typeof this.querySet<"u"&&this.querySet.destroy(),this.gpuDataManager.dispose()}getCommandEncoder(){return this.commandEncoder||(this.commandEncoder=this.device.createCommandEncoder()),this.commandEncoder}getComputePassEncoder(){if(!this.computePassEncoder){let e=this.getCommandEncoder(),r={};this.queryType==="at-passes"&&(r.timestampWrites={querySet:this.querySet,beginningOfPassWriteIndex:this.pendingDispatchNumber*2,endOfPassWriteIndex:this.pendingDispatchNumber*2+1}),this.computePassEncoder=e.beginComputePass(r)}return this.computePassEncoder}endComputePass(){this.computePassEncoder&&(this.computePassEncoder.end(),this.computePassEncoder=null)}flush(){if(!this.commandEncoder)return;Es(),this.endComputePass();let e;this.queryType!=="none"&&(this.commandEncoder.resolveQuerySet(this.querySet,0,this.pendingDispatchNumber*2,this.queryResolveBuffer,0),e=this.device.createBuffer({size:this.pendingDispatchNumber*2*8,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST}),this.pendingQueries.set(e,this.pendingKernels),this.pendingKernels=[],this.commandEncoder.copyBufferToBuffer(this.queryResolveBuffer,0,e,0,this.pendingDispatchNumber*2*8)),this.device.queue.submit([this.commandEncoder.finish()]),this.gpuDataManager.refreshPendingBuffers(),this.commandEncoder=null,this.pendingDispatchNumber=0,this.queryType!=="none"&&e.mapAsync(GPUMapMode.READ).then(()=>{let r=new BigUint64Array(e.getMappedRange()),t=this.pendingQueries.get(e);for(let s=0;s<r.length/2;s++){let o=t[s],a=o.kernelId,n=this.kernels.get(a),i=n.kernelType,l=n.kernelName,c=o.programName,_=o.inputTensorViews,u=o.outputTensorViews,d=r[s*2],g=r[s*2+1];typeof this.queryTimeBase>"u"&&(this.queryTimeBase=d);let h=Number(d-this.queryTimeBase),x=Number(g-this.queryTimeBase);if(!Number.isSafeInteger(h)||!Number.isSafeInteger(x))throw new RangeError("incorrect timestamp range");if(this.env.webgpu.profiling?.ondata)this.env.webgpu.profiling.ondata({version:1,inputsMetadata:_.map(F=>({dims:F.dims,dataType:Xs(F.dataType)})),outputsMetadata:u.map(F=>({dims:F.dims,dataType:Xs(F.dataType)})),kernelId:a,kernelType:i,kernelName:l,programName:c,startTime:h,endTime:x});else{let F="";_.forEach((b,C)=>{F+=`input[${C}]: [${b.dims}] | ${Xs(b.dataType)}, `});let v="";u.forEach((b,C)=>{v+=`output[${C}]: [${b.dims}] | ${Xs(b.dataType)}, `}),console.log(`[profiling] kernel "${a}|${i}|${l}|${c}" ${F}${v}execution time: ${x-h} ns`)}mn("GPU",`${c}::${d}::${g}`)}e.unmap(),this.pendingQueries.delete(e)}),us()}run(e,r,t,s,o,a){Es(e.name);let n=[];for(let b=0;b<r.length;++b){let C=r[b].data;if(C===0)continue;let y=this.gpuDataManager.get(C);if(!y)throw new Error(`no GPU data for input: ${C}`);n.push(y)}let{outputs:i,dispatchGroup:l,programUniforms:c}=e.getRunData(r),_=t.length===0?i.map((b,C)=>C):t;if(_.length!==i.length)throw new Error(`Output size ${_.length} must be equal to ${i.length}.`);let u=[],d=[];for(let b=0;b<i.length;++b){if(!Number.isInteger(_[b])||_[b]<-3||_[b]>=a)throw new Error(`Invalid output index: ${_[b]}`);if(_[b]===-3)continue;let C=_[b]===-1,y=_[b]===-2,P=C||y?o(i[b].dataType,i[b].dims):s(_[b],i[b].dataType,i[b].dims);if(u.push(P),P.data===0)continue;let I=this.gpuDataManager.get(P.data);if(!I)throw new Error(`no GPU data for output: ${P.data}`);if(C&&this.temporaryData.push(I),y){let f=this.kernelPersistentData.get(this.currentKernelId);f||(f=[],this.kernelPersistentData.set(this.currentKernelId,f)),f.push(I)}d.push(I)}if(n.length!==r.length||d.length!==u.length){if(d.length===0)return us(e.name),u;throw new Error(`Program ${e.name} has zero-sized tensor(s) in inputs or outputs. This is not supported now.`)}let g;if(c){let b=0,C=[];c.forEach(f=>{let E=typeof f.data=="number"?[f.data]:f.data;if(E.length===0)return;let D=f.type===10?2:4,O,U;f.type===10?(U=E.length>4?16:E.length>2?8:E.length*D,O=E.length>4?16:D*E.length):(U=E.length<=2?E.length*D:16,O=16),b=Math.ceil(b/U)*U,C.push(b);let W=f.type===10?8:4;b+=E.length>4?Math.ceil(E.length/W)*O:E.length*D});let y=16;b=Math.ceil(b/y)*y;let P=new ArrayBuffer(b);c.forEach((f,E)=>{let D=C[E],O=typeof f.data=="number"?[f.data]:f.data;if(f.type===6)new Int32Array(P,D,O.length).set(O);else if(f.type===12)new Uint32Array(P,D,O.length).set(O);else if(f.type===10)new Uint16Array(P,D,O.length).set(O);else if(f.type===1)new Float32Array(P,D,O.length).set(O);else throw new Error(`Unsupported uniform type: ${Xs(f.type)}`)});let I=this.gpuDataManager.create(b,GPUBufferUsage.COPY_DST|GPUBufferUsage.UNIFORM);this.device.queue.writeBuffer(I.buffer,0,P,0,b),this.gpuDataManager.release(I.id),g={offset:0,size:b,buffer:I.buffer}}let h=this.programManager.normalizeDispatchGroupSize(l),x=h[1]===1&&h[2]===1,F=Wb(e,r,x),v=this.programManager.getArtifact(F);if(v||(v=this.programManager.build(e,h),this.programManager.setArtifact(F,v),Ot("info",()=>`[artifact] key: ${F}, programName: ${e.name}`)),c&&v.uniformVariablesInfo){if(c.length!==v.uniformVariablesInfo.length)throw new Error(`Uniform variables count mismatch: expect ${v.uniformVariablesInfo.length}, got ${c.length} in program "${v.programInfo.name}".`);for(let b=0;b<c.length;b++){let C=c[b],y=C.type,P=typeof C.data=="number"?1:C.data.length,[I,f]=v.uniformVariablesInfo[b];if(y!==I||P!==f)throw new Error(`Uniform variable ${b} mismatch: expect type ${I} with size ${f}, got type ${y} with size ${P} in program "${v.programInfo.name}".`)}}if(Ot("info",()=>`[ProgramManager] run "${e.name}" (key=${F}) with ${h[0]}x${h[1]}x${h[2]}`),this.queryType!=="none"||this.sessionStatus==="capturing"){let b={kernelId:this.currentKernelId,programName:v.programInfo.name,inputTensorViews:r,outputTensorViews:u};this.pendingKernels.push(b),this.sessionStatus==="capturing"&&this.capturedPendingKernels.get(this.currentSessionId).push(b)}return this.programManager.run(v,n,d,h,g),us(e.name),u}upload(e,r){this.gpuDataManager.upload(e,r)}memcpy(e,r){this.gpuDataManager.memcpy(e,r)}async download(e,r){await this.gpuDataManager.download(e,r)}alloc(e){return this.gpuDataManager.create(e).id}free(e){return this.gpuDataManager.release(e)}createKernel(e,r,t,s){let o=m0.get(e);if(!o)throw new Error(`kernel not implemented: ${e}`);let a={kernelType:e,kernelName:s,kernelEntry:o[0],attributes:[o[1],t]};this.kernels.set(r,a)}releaseKernel(e){let r=this.kernelPersistentData.get(e);if(r){for(let t of r)this.gpuDataManager.release(t.id);this.kernelPersistentData.delete(e)}this.kernelCustomData.delete(e),this.kernels.delete(e)}computeKernel(e,r,t){let s=this.kernels.get(e);if(!s)throw new Error(`kernel not created: ${e}`);let o=s.kernelType,a=s.kernelName,n=s.kernelEntry,i=s.attributes;if(this.currentKernelId!==null)throw new Error(`kernel "[${o}] ${a}" is not allowed to be called recursively`);this.currentKernelId=e,i[0]&&(i[1]=i[0](i[1]),i[0]=void 0),Ot("info",()=>`[WebGPU] Start to run kernel "[${o}] ${a}"...`);let l=this.env.debug;this.temporaryData=[];try{return l&&this.device.pushErrorScope("validation"),n(r,i[1]),0}catch(c){return t.push(Promise.resolve(`[WebGPU] Kernel "[${o}] ${a}" failed. ${c}`)),1}finally{l&&t.push(this.device.popErrorScope().then(c=>c?`GPU validation error for kernel "[${o}] ${a}": ${c.message}`:null));for(let c of this.temporaryData)this.gpuDataManager.release(c.id);this.temporaryData=[],this.currentKernelId=null}}registerBuffer(e,r,t,s){let o=this.sessionExternalDataMapping.get(e);o||(o=new Map,this.sessionExternalDataMapping.set(e,o));let a=o.get(r),n=this.gpuDataManager.registerExternalBuffer(t,s,a);return o.set(r,[n,t]),n}unregisterBuffers(e){let r=this.sessionExternalDataMapping.get(e);r&&(r.forEach(t=>this.gpuDataManager.unregisterExternalBuffer(t[0])),this.sessionExternalDataMapping.delete(e))}getBuffer(e){let r=this.gpuDataManager.get(e);if(!r)throw new Error(`no GPU data for buffer: ${e}`);return r.buffer}createDownloader(e,r,t){return async()=>{let s=await Od(this,e,r);return nu(s.buffer,t)}}writeTimestamp(e){this.queryType==="inside-passes"&&this.computePassEncoder.writeTimestamp(this.querySet,e)}setQueryType(){this.queryType="none",(this.env.webgpu.profiling?.mode==="default"||(typeof this.env.trace>"u"?this.env.wasm.trace:this.env.trace))&&(this.device.features.has("chromium-experimental-timestamp-query-inside-passes")?this.queryType="inside-passes":this.device.features.has("timestamp-query")&&(this.queryType="at-passes"),this.queryType!=="none"&&typeof this.querySet>"u"&&(this.querySet=this.device.createQuerySet({type:"timestamp",count:this.maxDispatchNumber*2}),this.queryResolveBuffer=this.device.createBuffer({size:this.maxDispatchNumber*2*8,usage:GPUBufferUsage.COPY_SRC|GPUBufferUsage.QUERY_RESOLVE})))}captureBegin(){Ot("info","captureBegin"),this.capturedCommandList.get(this.currentSessionId)||this.capturedCommandList.set(this.currentSessionId,[]),this.capturedPendingKernels.get(this.currentSessionId)||this.capturedPendingKernels.set(this.currentSessionId,[]),this.flush(),this.sessionStatus="capturing"}captureEnd(){Ot("info","captureEnd"),this.flush(),this.sessionStatus="default"}replay(){Ot("info","replay"),this.sessionStatus="replaying";let e=this.capturedCommandList.get(this.currentSessionId),r=this.capturedPendingKernels.get(this.currentSessionId),t=e.length;this.pendingKernels=[];for(let s=0;s<t;s++){let o=this.getComputePassEncoder(),a=e[s];this.writeTimestamp(this.pendingDispatchNumber*2),o.setPipeline(a.computePipeline),o.setBindGroup(0,a.bindGroup),o.dispatchWorkgroups(...a.dispatchGroup),this.writeTimestamp(this.pendingDispatchNumber*2+1),this.pendingDispatchNumber++,this.queryType!=="none"&&this.pendingKernels.push(r[s]),(this.pendingDispatchNumber>=this.maxDispatchNumber||this.queryType==="at-passes")&&this.endComputePass(),this.pendingDispatchNumber>=this.maxDispatchNumber&&this.flush()}this.flush(),this.sessionStatus="default"}onCreateSession(){this.gpuDataManager.onCreateSession()}onReleaseSession(e){this.unregisterBuffers(e),this.capturedCommandList.has(e)&&this.capturedCommandList.delete(e),this.capturedPendingKernels.has(e)&&this.capturedPendingKernels.delete(e),this.gpuDataManager.onReleaseSession(e)}onRunStart(e){this.currentSessionId=e,this.setQueryType()}}}),M0={};fa(M0,{init:()=>w0});var Ni,Gb,w0,_E=Ve(()=>{"use strict";Mt(),Js(),kt(),bP(),Ni=class b0{constructor(r,t,s,o){this.module=r,this.dataType=t,this.data=s,this.dims=o}getFloat32Array(){if(this.dataType!==1)throw new Error("Invalid data type");let r=Me.size(this.dims);return r===0?new Float32Array:new Float32Array(this.module.HEAP8.buffer,this.data,r)}getBigInt64Array(){if(this.dataType!==7)throw new Error("Invalid data type");let r=Me.size(this.dims);return r===0?new BigInt64Array:new BigInt64Array(this.module.HEAP8.buffer,this.data,r)}getInt32Array(){if(this.dataType!==6)throw new Error("Invalid data type");let r=Me.size(this.dims);return r===0?new Int32Array:new Int32Array(this.module.HEAP8.buffer,this.data,r)}getUint16Array(){if(this.dataType!==10&&this.dataType!==4)throw new Error("Invalid data type");let r=Me.size(this.dims);return r===0?new Uint16Array:new Uint16Array(this.module.HEAP8.buffer,this.data,r)}reshape(r){if(Me.size(r)!==Me.size(this.dims))throw new Error("Invalid new shape");return new b0(this.module,this.dataType,this.data,r)}},Gb=class{constructor(e,r,t){this.module=e,this.backend=r,this.customDataOffset=0,this.customDataSize=0,this.adapterInfo=r.adapterInfo;let s=e.PTR_SIZE,o=t/e.PTR_SIZE,a=s===4?"i32":"i64";this.opKernelContext=Number(e.getValue(s*o++,a));let n=Number(e.getValue(s*o++,a));this.outputCount=Number(e.getValue(s*o++,a)),this.customDataOffset=Number(e.getValue(s*o++,"*")),this.customDataSize=Number(e.getValue(s*o++,a));let i=[];for(let l=0;l<n;l++){let c=Number(e.getValue(s*o++,a)),_=Number(e.getValue(s*o++,"*")),u=Number(e.getValue(s*o++,a)),d=[];for(let g=0;g<u;g++)d.push(Number(e.getValue(s*o++,a)));i.push(new Ni(e,c,_,d))}this.inputs=i}get kernelCustomData(){return this.backend.currentKernelCustomData}get customDataBuffer(){return this.module.HEAPU8.subarray(this.customDataOffset,this.customDataOffset+this.customDataSize)}compute(e,r){let t=r?.inputs?.map(n=>typeof n=="number"?this.inputs[n]:n)??this.inputs,s=r?.outputs??[],o=(n,i,l)=>new Ni(this.module,i,this.output(n,l),l),a=(n,i)=>{let l=Bo(n,i);if(!l)throw new Error(`Unsupported data type: ${n}`);let c=l>0?this.backend.gpuDataManager.create(l).id:0;return new Ni(this.module,n,c,i)};return this.backend.run(e,t,s,o,a,this.outputCount)}output(e,r){let t=this.module.stackSave();try{let s=this.module.PTR_SIZE,o=s===4?"i32":"i64",a=this.module.stackAlloc((1+r.length)*s);this.module.setValue(a,r.length,o);for(let n=0;n<r.length;n++)this.module.setValue(a+s*(n+1),r[n],o);return this.module._JsepOutput(this.opKernelContext,e,a)}catch(s){throw new Error(`Failed to generate kernel's output[${e}] with dims [${r}]. If you are running with pre-allocated output, please make sure the output type/dims are correct. Error: ${s}`)}finally{this.module.stackRestore(t)}}},w0=async(e,r,t,s)=>{let o=r.jsepInit;if(!o)throw new Error("Failed to initialize JSEP. The WebAssembly module is not built with JSEP support.");if(e==="webgpu"){let a=(uE(),pn(f0)).WebGpuBackend,n=new a;await n.initialize(t,s),o("webgpu",[n,i=>n.alloc(Number(i)),i=>n.free(i),(i,l,c,_=!1)=>{if(_)Ot("verbose",()=>`[WebGPU] jsepCopyGpuToGpu: src=${Number(i)}, dst=${Number(l)}, size=${Number(c)}`),n.memcpy(Number(i),Number(l));else{Ot("verbose",()=>`[WebGPU] jsepCopyCpuToGpu: dataOffset=${Number(i)}, gpuDataId=${Number(l)}, size=${Number(c)}`);let u=r.HEAPU8.subarray(Number(i>>>0),Number(i>>>0)+Number(c));n.upload(Number(l),u)}},async(i,l,c)=>{Ot("verbose",()=>`[WebGPU] jsepCopyGpuToCpu: gpuDataId=${i}, dataOffset=${l}, size=${c}`),await n.download(Number(i),()=>r.HEAPU8.subarray(Number(l)>>>0,Number(l+c)>>>0))},(i,l,c)=>n.createKernel(i,Number(l),c,r.UTF8ToString(r._JsepGetNodeName(Number(l)))),i=>n.releaseKernel(i),(i,l,c,_)=>{Ot("verbose",()=>`[WebGPU] jsepRun: sessionHandle=${c}, kernel=${i}, contextDataOffset=${l}`);let u=new Gb(r,n,Number(l));return n.computeKernel(Number(i),u,_)},()=>n.captureBegin(),()=>n.captureEnd(),()=>n.replay()])}else{let a=new Fv(t);o("webnn",[a,()=>a.reserveTensorId(),n=>a.releaseTensorId(n),async(n,i,l,c,_)=>a.ensureTensor(n,i,l,c,_),(n,i)=>{a.uploadTensor(n,i)},async(n,i)=>a.downloadTensor(n,i)])}}}),Kb,gu,Mu,co,Hb,Cd,Ji,wu,bu,Sd,vu,xu,yu,v0=Ve(()=>{"use strict";gP(),MP(),Mt(),Vo(),eu(),Tv(),Kb=(e,r)=>{Jt()._OrtInit(e,r)!==0&&Kt("Can't initialize onnxruntime.")},gu=async e=>{Kb(e.wasm.numThreads,Ki(e.logLevel))},Mu=async(e,r)=>{Jt().asyncInit?.();{let t=(_E(),pn(M0)).init;if(r==="webgpu"){if(typeof navigator>"u"||!navigator.gpu)throw new Error("WebGPU is not supported in current environment");let s=e.webgpu.adapter;if(s){if(typeof s.limits!="object"||typeof s.features!="object"||typeof s.requestDevice!="function")throw new Error("Invalid GPU adapter set in `env.webgpu.adapter`. It must be a GPUAdapter object.")}else{let o=e.webgpu.powerPreference;if(o!==void 0&&o!=="low-power"&&o!=="high-performance")throw new Error(`Invalid powerPreference setting: "${o}"`);let a=e.webgpu.forceFallbackAdapter;if(a!==void 0&&typeof a!="boolean")throw new Error(`Invalid forceFallbackAdapter setting: "${a}"`);if(s=await navigator.gpu.requestAdapter({powerPreference:o,forceFallbackAdapter:a}),!s)throw new Error('Failed to get GPU adapter. You may need to enable flag "--enable-unsafe-webgpu" if you are using Chrome.')}await t("webgpu",Jt(),e,s)}if(r==="webnn"){if(typeof navigator>"u"||!navigator.ml)throw new Error("WebNN is not supported in current environment");await t("webnn",Jt(),e)}}},co=new Map,Hb=e=>{let r=Jt(),t=r.stackSave();try{let s=r.PTR_SIZE,o=r.stackAlloc(2*s);r._OrtGetInputOutputCount(e,o,o+s)!==0&&Kt("Can't get session input/output count.");let a=s===4?"i32":"i64";return[Number(r.getValue(o,a)),Number(r.getValue(o+s,a))]}finally{r.stackRestore(t)}},Cd=(e,r)=>{let t=Jt(),s=t.stackSave(),o=0;try{let a=t.PTR_SIZE,n=t.stackAlloc(2*a);t._OrtGetInputOutputMetadata(e,r,n,n+a)!==0&&Kt("Can't get session input/output metadata.");let i=Number(t.getValue(n,"*"));o=Number(t.getValue(n+a,"*"));let l=t.HEAP32[o/4];if(l===0)return[i,0];let c=t.HEAPU32[o/4+1],_=[];for(let u=0;u<c;u++){let d=Number(t.getValue(o+8+u*a,"*"));_.push(d!==0?t.UTF8ToString(d):Number(t.getValue(o+8+(u+c)*a,"*")))}return[i,l,_]}finally{t.stackRestore(s),o!==0&&t._OrtFree(o)}},Ji=e=>{let r=Jt(),t=r._malloc(e.byteLength);if(t===0)throw new Error(`Can't create a session. failed to allocate a buffer of size ${e.byteLength}.`);return r.HEAPU8.set(e,t),[t,e.byteLength]},wu=async(e,r)=>{let t,s,o=Jt();Array.isArray(e)?[t,s]=e:e.buffer===o.HEAPU8.buffer?[t,s]=[e.byteOffset,e.byteLength]:[t,s]=Ji(e);let a=0,n=0,i=0,l=[],c=[],_=[];try{if([n,l]=await yv(r),r?.externalData&&o.mountExternalData){let y=[];for(let P of r.externalData){let I=typeof P=="string"?P:P.path;y.push(ou(typeof P=="string"?P:P.data).then(f=>{o.mountExternalData(I,f)}))}await Promise.all(y)}for(let y of r?.executionProviders??[])if((typeof y=="string"?y:y.name)==="webnn"){if(o.shouldTransferToMLTensor=!1,typeof y!="string"){let P=y,I=P?.context,f=P?.gpuDevice,E=P?.deviceType,D=P?.powerPreference;I?o.currentContext=I:f?o.currentContext=await o.webnnCreateMLContext(f):o.currentContext=await o.webnnCreateMLContext({deviceType:E,powerPreference:D})}else o.currentContext=await o.webnnCreateMLContext();break}a=await o._OrtCreateSession(t,s,n),o.webgpuOnCreateSession?.(a),a===0&&Kt("Can't create a session."),o.jsepOnCreateSession?.(),o.currentContext&&(o.webnnRegisterMLContext(a,o.currentContext),o.currentContext=void 0,o.shouldTransferToMLTensor=!0);let[u,d]=Hb(a),g=!!r?.enableGraphCapture,h=[],x=[],F=[],v=[],b=[];for(let y=0;y<u;y++){let[P,I,f]=Cd(a,y);P===0&&Kt("Can't get an input name."),c.push(P);let E=o.UTF8ToString(P);h.push(E),F.push(I===0?{name:E,isTensor:!1}:{name:E,isTensor:!0,type:Xs(I),shape:f})}for(let y=0;y<d;y++){let[P,I,f]=Cd(a,y+u);P===0&&Kt("Can't get an output name."),_.push(P);let E=o.UTF8ToString(P);x.push(E),v.push(I===0?{name:E,isTensor:!1}:{name:E,isTensor:!0,type:Xs(I),shape:f});{if(g&&r?.preferredOutputLocation===void 0){b.push("gpu-buffer");continue}let D=typeof r?.preferredOutputLocation=="string"?r.preferredOutputLocation:r?.preferredOutputLocation?.[E]??"cpu";if(D!=="cpu"&&D!=="cpu-pinned"&&D!=="gpu-buffer"&&D!=="ml-tensor")throw new Error(`Not supported preferred output location: ${D}.`);if(g&&D!=="gpu-buffer")throw new Error(`Not supported preferred output location: ${D}. Only 'gpu-buffer' location is supported when enableGraphCapture is true.`);b.push(D)}}let C=null;return b.some(y=>y==="gpu-buffer"||y==="ml-tensor")&&(i=o._OrtCreateBinding(a),i===0&&Kt("Can't create IO binding."),C={handle:i,outputPreferredLocations:b,outputPreferredLocationsEncoded:b.map(y=>$d(y))}),co.set(a,[a,c,_,C,g,!1]),[a,h,x,F,v]}catch(u){throw c.forEach(d=>o._OrtFree(d)),_.forEach(d=>o._OrtFree(d)),i!==0&&o._OrtReleaseBinding(i)!==0&&Kt("Can't release IO binding."),a!==0&&o._OrtReleaseSession(a)!==0&&Kt("Can't release session."),u}finally{o._free(t),n!==0&&o._OrtReleaseSessionOptions(n)!==0&&Kt("Can't release session options."),l.forEach(u=>o._free(u)),o.unmountExternalData?.()}},bu=e=>{let r=Jt(),t=co.get(e);if(!t)throw new Error(`cannot release session. invalid session id: ${e}`);let[s,o,a,n,i]=t;n&&(i&&r._OrtClearBoundOutputs(n.handle)!==0&&Kt("Can't clear bound outputs."),r._OrtReleaseBinding(n.handle)!==0&&Kt("Can't release IO binding.")),r.jsepOnReleaseSession?.(e),r.webnnOnReleaseSession?.(e),r.webgpuOnReleaseSession?.(e),o.forEach(l=>r._OrtFree(l)),a.forEach(l=>r._OrtFree(l)),r._OrtReleaseSession(s)!==0&&Kt("Can't release session."),co.delete(e)},Sd=async(e,r,t,s,o,a,n=!1)=>{if(!e){r.push(0);return}let i=Jt(),l=i.PTR_SIZE,c=e[0],_=e[1],u=e[3],d=u,g,h;if(c==="string"&&(u==="gpu-buffer"||u==="ml-tensor"))throw new Error("String tensor is not supported on GPU.");if(n&&u!=="gpu-buffer")throw new Error(`External buffer must be provided for input/output index ${a} when enableGraphCapture is true.`);if(u==="gpu-buffer"){let v=e[2].gpuBuffer;h=Bo(_a(c),_);{let b=i.jsepRegisterBuffer;if(!b)throw new Error('Tensor location "gpu-buffer" is not supported without using WebGPU.');g=b(s,a,v,h)}}else if(u==="ml-tensor"){let v=e[2].mlTensor;h=Bo(_a(c),_);let b=i.webnnRegisterMLTensor;if(!b)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');g=b(s,v,_a(c),_)}else{let v=e[2];if(Array.isArray(v)){h=l*v.length,g=i._malloc(h),t.push(g);for(let b=0;b<v.length;b++){if(typeof v[b]!="string")throw new TypeError(`tensor data at index ${b} is not a string`);i.setValue(g+b*l,Ts(v[b],t),"*")}}else{let b=i.webnnIsGraphInput;if(c!=="string"&&b){let C=i.UTF8ToString(o);if(b(s,C)){let y=_a(c);h=Bo(y,_),d="ml-tensor";let P=i.webnnCreateTemporaryTensor,I=i.webnnUploadTensor;if(!P||!I)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');let f=await P(s,y,_);I(f,new Uint8Array(v.buffer,v.byteOffset,v.byteLength)),g=f}else h=v.byteLength,g=i._malloc(h),t.push(g),i.HEAPU8.set(new Uint8Array(v.buffer,v.byteOffset,h),g)}else h=v.byteLength,g=i._malloc(h),t.push(g),i.HEAPU8.set(new Uint8Array(v.buffer,v.byteOffset,h),g)}}let x=i.stackSave(),F=i.stackAlloc(4*_.length);try{_.forEach((b,C)=>i.setValue(F+C*l,b,l===4?"i32":"i64"));let v=i._OrtCreateTensor(_a(c),g,h,F,_.length,$d(d));v===0&&Kt(`Can't create tensor for input/output. session=${s}, index=${a}.`),r.push(v)}finally{i.stackRestore(x)}},vu=async(e,r,t,s,o,a)=>{let n=Jt(),i=n.PTR_SIZE,l=co.get(e);if(!l)throw new Error(`cannot run inference. invalid session id: ${e}`);let c=l[0],_=l[1],u=l[2],d=l[3],g=l[4],h=l[5],x=r.length,F=s.length,v=0,b=[],C=[],y=[],P=[],I=n.stackSave(),f=n.stackAlloc(x*i),E=n.stackAlloc(x*i),D=n.stackAlloc(F*i),O=n.stackAlloc(F*i);try{[v,b]=xv(a);for(let z=0;z<x;z++)await Sd(t[z],C,P,e,_[r[z]],r[z],g);for(let z=0;z<F;z++)await Sd(o[z],y,P,e,u[s[z]],x+s[z],g);for(let z=0;z<x;z++)n.setValue(f+z*i,C[z],"*"),n.setValue(E+z*i,_[r[z]],"*");for(let z=0;z<F;z++)n.setValue(D+z*i,y[z],"*"),n.setValue(O+z*i,u[s[z]],"*");if(d&&!h){let{handle:z,outputPreferredLocations:X,outputPreferredLocationsEncoded:J}=d;if(_.length!==x)throw new Error(`input count from feeds (${x}) is expected to be always equal to model's input count (${_.length}).`);for(let q=0;q<x;q++){let re=r[q];await n._OrtBindInput(z,_[re],C[q])!==0&&Kt(`Can't bind input[${q}] for session=${e}.`)}for(let q=0;q<F;q++){let re=s[q];o[q]?.[3]?n._OrtBindOutput(z,u[re],y[q],0)!==0&&Kt(`Can't bind pre-allocated output[${q}] for session=${e}.`):n._OrtBindOutput(z,u[re],0,J[re])!==0&&Kt(`Can't bind output[${q}] to ${X[q]} for session=${e}.`)}co.set(e,[c,_,u,d,g,!0])}n.jsepOnRunStart?.(c),n.webnnOnRunStart?.(c);let U;d?U=await n._OrtRunWithBinding(c,d.handle,F,D,v):U=await n._OrtRun(c,E,f,x,O,F,D,v),U!==0&&Kt("failed to call OrtRun().");let W=[];for(let z=0;z<F;z++){let X=Number(n.getValue(D+z*i,"*"));if(X===y[z]){W.push(o[z]);continue}let J=n.stackSave(),q=n.stackAlloc(4*i),re=!1,oe,ne=0;try{n._OrtGetTensorData(X,q,q+i,q+2*i,q+3*i)!==0&&Kt(`Can't access output tensor data on index ${z}.`);let ye=i===4?"i32":"i64",Y=Number(n.getValue(q,ye));ne=n.getValue(q+i,"*");let H=n.getValue(q+i*2,"*"),R=Number(n.getValue(q+i*3,ye)),L=[];for(let ke=0;ke<R;ke++)L.push(Number(n.getValue(H+ke*i,ye)));n._OrtFree(H)!==0&&Kt("Can't free memory for tensor dims.");let ee=L.reduce((ke,Ie)=>ke*Ie,1);oe=Xs(Y);let ue=d?.outputPreferredLocations[s[z]];if(oe==="string"){if(ue==="gpu-buffer"||ue==="ml-tensor")throw new Error("String tensor is not supported on GPU.");let ke=[];for(let Ie=0;Ie<ee;Ie++){let Le=n.getValue(ne+Ie*i,"*"),rt=n.getValue(ne+(Ie+1)*i,"*"),we=Ie===ee-1?void 0:rt-Le;ke.push(n.UTF8ToString(Le,we))}W.push([oe,L,ke,"cpu"])}else if(ue==="gpu-buffer"&&ee>0){let ke=n.jsepGetBuffer;if(!ke)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let Ie=ke(ne),Le=Bo(Y,ee);if(Le===void 0||!ru(oe))throw new Error(`Unsupported data type: ${oe}`);re=!0,W.push([oe,L,{gpuBuffer:Ie,download:n.jsepCreateDownloader(Ie,Le,oe),dispose:()=>{n._OrtReleaseTensor(X)!==0&&Kt("Can't release tensor.")}},"gpu-buffer"])}else if(ue==="ml-tensor"&&ee>0){let ke=n.webnnEnsureTensor,Ie=n.webnnIsInt64Supported;if(!ke||!Ie)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(Bo(Y,ee)===void 0||!su(oe))throw new Error(`Unsupported data type: ${oe}`);if(oe==="int64"&&!Ie(e))throw new Error('preferredLocation "ml-tensor" for int64 output is not supported by current WebNN Context.');let Le=await ke(e,ne,Y,L,!1);re=!0,W.push([oe,L,{mlTensor:Le,download:n.webnnCreateMLTensorDownloader(ne,oe),dispose:()=>{n.webnnReleaseTensorId(ne),n._OrtReleaseTensor(X)}},"ml-tensor"])}else{let ke=tu(oe),Ie=new ke(ee);new Uint8Array(Ie.buffer,Ie.byteOffset,Ie.byteLength).set(n.HEAPU8.subarray(ne,ne+Ie.byteLength)),W.push([oe,L,Ie,"cpu"])}}finally{n.stackRestore(J),oe==="string"&&ne&&n._free(ne),re||n._OrtReleaseTensor(X),n.webnnOnRunEnd?.(c)}}return d&&!g&&(n._OrtClearBoundOutputs(d.handle)!==0&&Kt("Can't clear bound outputs."),co.set(e,[c,_,u,d,g,!1])),W}finally{n.stackRestore(I),C.forEach(U=>n._OrtReleaseTensor(U)),y.forEach(U=>n._OrtReleaseTensor(U)),P.forEach(U=>n._free(U)),v!==0&&n._OrtReleaseRunOptions(v),b.forEach(U=>n._free(U))}},xu=e=>{let r=Jt(),t=co.get(e);if(!t)throw new Error("invalid session id");let s=t[0],o=r._OrtEndProfiling(s);o===0&&Kt("Can't get an profile file name."),r._OrtFree(o)},yu=e=>{let r=[];for(let t of e){let s=t[2];!Array.isArray(s)&&"buffer"in s&&r.push(s.buffer)}return r}}),uo,cs,ua,an,nn,ji,Fd,Vi,Do,Oo,qb,x0,y0,T0,P0,E0,k0,C0,S0=Ve(()=>{"use strict";ks(),v0(),Vo(),Yd(),uo=()=>!!Zt.wasm.proxy&&typeof document<"u",ua=!1,an=!1,nn=!1,Vi=new Map,Do=(e,r)=>{let t=Vi.get(e);t?t.push(r):Vi.set(e,[r])},Oo=()=>{if(ua||!an||nn||!cs)throw new Error("worker not ready")},qb=e=>{switch(e.data.type){case"init-wasm":ua=!1,e.data.err?(nn=!0,Fd[1](e.data.err)):(an=!0,Fd[0]()),ji&&(URL.revokeObjectURL(ji),ji=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let r=Vi.get(e.data.type);e.data.err?r.shift()[1](e.data.err):r.shift()[0](e.data.out);break}default:}},x0=async()=>{if(!an){if(ua)throw new Error("multiple calls to 'initWasm()' detected.");if(nn)throw new Error("previous call to 'initWasm()' failed.");if(ua=!0,uo())return new Promise((e,r)=>{cs?.terminate(),bv().then(([t,s])=>{try{cs=s,cs.onerror=a=>r(a),cs.onmessage=qb,Fd=[e,r];let o={type:"init-wasm",in:Zt};!o.in.wasm.wasmPaths&&(t||Ad)&&(o.in.wasm.wasmPaths={wasm:new URL("ort-wasm-simd-threaded.jsep.wasm",import.meta.url).href}),cs.postMessage(o),ji=t}catch(o){r(o)}},r)});try{await Zd(Zt.wasm),await gu(Zt),an=!0}catch(e){throw nn=!0,e}finally{ua=!1}}},y0=async e=>{if(uo())return Oo(),new Promise((r,t)=>{Do("init-ep",[r,t]);let s={type:"init-ep",in:{epName:e,env:Zt}};cs.postMessage(s)});await Mu(Zt,e)},T0=async e=>uo()?(Oo(),new Promise((r,t)=>{Do("copy-from",[r,t]);let s={type:"copy-from",in:{buffer:e}};cs.postMessage(s,[e.buffer])})):Ji(e),P0=async(e,r)=>{if(uo()){if(r?.preferredOutputLocation)throw new Error('session option "preferredOutputLocation" is not supported for proxy.');return Oo(),new Promise((t,s)=>{Do("create",[t,s]);let o={type:"create",in:{model:e,options:{...r}}},a=[];e instanceof Uint8Array&&a.push(e.buffer),cs.postMessage(o,a)})}else return wu(e,r)},E0=async e=>{if(uo())return Oo(),new Promise((r,t)=>{Do("release",[r,t]);let s={type:"release",in:e};cs.postMessage(s)});bu(e)},k0=async(e,r,t,s,o,a)=>{if(uo()){if(t.some(n=>n[3]!=="cpu"))throw new Error("input tensor on GPU is not supported for proxy.");if(o.some(n=>n))throw new Error("pre-allocated output tensor is not supported for proxy.");return Oo(),new Promise((n,i)=>{Do("run",[n,i]);let l=t,c={type:"run",in:{sessionId:e,inputIndices:r,inputs:l,outputIndices:s,options:a}};cs.postMessage(c,yu(l))})}else return vu(e,r,t,s,o,a)},C0=async e=>{if(uo())return Oo(),new Promise((r,t)=>{Do("end-profiling",[r,t]);let s={type:"end-profiling",in:e};cs.postMessage(s)});xu(e)}}),Id,Qb,F0,pE=Ve(()=>{"use strict";ks(),S0(),Mt(),Jd(),Tv(),Id=(e,r)=>{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 new Error(`invalid data location: ${e.location} for ${r()}`)}},Qb=e=>{switch(e[3]){case"cpu":return new Ps(e[0],e[2],e[1]);case"gpu-buffer":{let r=e[0];if(!ru(r))throw new Error(`not supported data type: ${r} for deserializing GPU tensor`);let{gpuBuffer:t,download:s,dispose:o}=e[2];return Ps.fromGpuBuffer(t,{dataType:r,dims:e[1],download:s,dispose:o})}case"ml-tensor":{let r=e[0];if(!su(r))throw new Error(`not supported data type: ${r} for deserializing MLTensor tensor`);let{mlTensor:t,download:s,dispose:o}=e[2];return Ps.fromMLTensor(t,{dataType:r,dims:e[1],download:s,dispose:o})}default:throw new Error(`invalid data location: ${e[3]}`)}},F0=class{async fetchModelAndCopyToWasmMemory(e){return T0(await ou(e))}async loadModel(e,r){Es();let t;typeof e=="string"?t=await this.fetchModelAndCopyToWasmMemory(e):t=e,[this.sessionId,this.inputNames,this.outputNames,this.inputMetadata,this.outputMetadata]=await P0(t,r),us()}async dispose(){return E0(this.sessionId)}async run(e,r,t){Es();let s=[],o=[];Object.entries(e).forEach(u=>{let d=u[0],g=u[1],h=this.inputNames.indexOf(d);if(h===-1)throw new Error(`invalid input '${d}'`);s.push(g),o.push(h)});let a=[],n=[];Object.entries(r).forEach(u=>{let d=u[0],g=u[1],h=this.outputNames.indexOf(d);if(h===-1)throw new Error(`invalid output '${d}'`);a.push(g),n.push(h)});let i=s.map((u,d)=>Id(u,()=>`input "${this.inputNames[o[d]]}"`)),l=a.map((u,d)=>u?Id(u,()=>`output "${this.outputNames[n[d]]}"`):null),c=await k0(this.sessionId,o,i,n,l,t),_={};for(let u=0;u<c.length;u++)_[this.outputNames[n[u]]]=a[u]??Qb(c[u]);return us(),_}startProfiling(){}endProfiling(){C0(this.sessionId)}}}),I0={};fa(I0,{OnnxruntimeWebAssemblyBackend:()=>Hd,initializeFlags:()=>Kd,wasmBackend:()=>A0});var Kd,Hd,A0,mE=Ve(()=>{"use strict";ks(),S0(),pE(),Kd=()=>{(typeof Zt.wasm.initTimeout!="number"||Zt.wasm.initTimeout<0)&&(Zt.wasm.initTimeout=0);let e=Zt.wasm.simd;if(typeof e!="boolean"&&e!==void 0&&e!=="fixed"&&e!=="relaxed"&&(console.warn(`Property "env.wasm.simd" is set to unknown value "${e}". Reset it to \`false\` and ignore SIMD feature checking.`),Zt.wasm.simd=!1),typeof Zt.wasm.proxy!="boolean"&&(Zt.wasm.proxy=!1),typeof Zt.wasm.trace!="boolean"&&(Zt.wasm.trace=!1),typeof Zt.wasm.numThreads!="number"||!Number.isInteger(Zt.wasm.numThreads)||Zt.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)Zt.wasm.numThreads=1;else{let r=typeof navigator>"u"?eP("node:os").cpus().length:navigator.hardwareConcurrency;Zt.wasm.numThreads=Math.min(4,Math.ceil((r||1)/2))}},Hd=class{async init(e){Kd(),await x0(),await y0(e)}async createInferenceSessionHandler(e,r){let t=new F0;return await t.loadModel(e,r),t}},A0=new Hd});ks();ks();ks();var hE="1.22.0-dev.20250409-89f8206ba4",fE=mv;{let e=(mE(),pn(I0)).wasmBackend;zo("webgpu",e,5),zo("webnn",e,5),zo("cpu",e,10),zo("wasm",e,10)}Object.defineProperty(Zt.versions,"web",{value:hE,enumerable:!0});var gE={"onnxruntime-common":(e=>{e.exports=Ac}),"onnxruntime-web":(e=>{e.exports=Tu}),"?2ce3":(()=>{}),"?7992":(()=>{}),"?5af5":(()=>{}),"?2b25":(()=>{}),"?db59":(()=>{}),"?383f":(()=>{}),"?fa4b":(()=>{}),"./node_modules/@huggingface/jinja/dist/index.js":((e,r,t)=>{t.r(r),t.d(r,{Environment:()=>pt,Interpreter:()=>Lt,Template:()=>Xr,parse:()=>ke,tokenize:()=>u});var s=Object.freeze({Text:"Text",NumericLiteral:"NumericLiteral",StringLiteral:"StringLiteral",Identifier:"Identifier",Equals:"Equals",OpenParen:"OpenParen",CloseParen:"CloseParen",OpenStatement:"OpenStatement",CloseStatement:"CloseStatement",OpenExpression:"OpenExpression",CloseExpression:"CloseExpression",OpenSquareBracket:"OpenSquareBracket",CloseSquareBracket:"CloseSquareBracket",OpenCurlyBracket:"OpenCurlyBracket",CloseCurlyBracket:"CloseCurlyBracket",Comma:"Comma",Dot:"Dot",Colon:"Colon",Pipe:"Pipe",CallOperator:"CallOperator",AdditiveBinaryOperator:"AdditiveBinaryOperator",MultiplicativeBinaryOperator:"MultiplicativeBinaryOperator",ComparisonBinaryOperator:"ComparisonBinaryOperator",UnaryOperator:"UnaryOperator",Comment:"Comment"}),o=class{constructor(k,Q){this.value=k,this.type=Q}};function a(k){return/\w/.test(k)}function n(k){return/[0-9]/.test(k)}function i(k){return/\s/.test(k)}var l=[["{%",s.OpenStatement],["%}",s.CloseStatement],["{{",s.OpenExpression],["}}",s.CloseExpression],["(",s.OpenParen],[")",s.CloseParen],["{",s.OpenCurlyBracket],["}",s.CloseCurlyBracket],["[",s.OpenSquareBracket],["]",s.CloseSquareBracket],[",",s.Comma],[".",s.Dot],[":",s.Colon],["|",s.Pipe],["<=",s.ComparisonBinaryOperator],[">=",s.ComparisonBinaryOperator],["==",s.ComparisonBinaryOperator],["!=",s.ComparisonBinaryOperator],["<",s.ComparisonBinaryOperator],[">",s.ComparisonBinaryOperator],["+",s.AdditiveBinaryOperator],["-",s.AdditiveBinaryOperator],["~",s.AdditiveBinaryOperator],["*",s.MultiplicativeBinaryOperator],["/",s.MultiplicativeBinaryOperator],["%",s.MultiplicativeBinaryOperator],["=",s.Equals]],c=new Map([["n",`
2829
2829
  `],["t"," "],["r","\r"],["b","\b"],["f","\f"],["v","\v"],["'","'"],['"','"'],["\\","\\"]]);function _(k,Q={}){return k.endsWith(`
2830
2830
  `)&&(k=k.slice(0,-1)),Q.lstrip_blocks&&(k=k.replace(/^[ \t]*({[#%-])/gm,"$1")),Q.trim_blocks&&(k=k.replace(/([#%-]})\n/g,"$1")),k.replace(/{%\s*(end)?generation\s*%}/gs,"")}function u(k,Q={}){let N=[],K=_(k,Q),Z=0,ce=0,xe=qe=>{let wt="";for(;qe(K[Z]);){if(K[Z]==="\\"){if(++Z,Z>=K.length)throw new SyntaxError("Unexpected end of input");let tt=K[Z++],gt=c.get(tt);if(gt===void 0)throw new SyntaxError(`Unexpected escaped character: ${tt}`);wt+=gt;continue}if(wt+=K[Z++],Z>=K.length)throw new SyntaxError("Unexpected end of input")}return wt},et=()=>{let qe=N.at(-1);qe&&qe.type===s.Text&&(qe.value=qe.value.trimEnd(),qe.value===""&&N.pop())},ut=()=>{for(;Z<K.length&&i(K[Z]);)++Z};e:for(;Z<K.length;){let qe=N.at(-1)?.type;if(qe===void 0||qe===s.CloseStatement||qe===s.CloseExpression||qe===s.Comment){let tt="";for(;Z<K.length&&!(K[Z]==="{"&&(K[Z+1]==="%"||K[Z+1]==="{"||K[Z+1]==="#"));)tt+=K[Z++];if(tt.length>0){N.push(new o(tt,s.Text));continue}}if(K[Z]==="{"&&K[Z+1]==="#"){Z+=2;let tt=K[Z]==="-";tt&&++Z;let gt="";for(;K[Z]!=="#"||K[Z+1]!=="}";){if(Z+2>=K.length)throw new SyntaxError("Missing end of comment tag");gt+=K[Z++]}let Nt=gt.endsWith("-");Nt&&(gt=gt.slice(0,-1)),tt&&et(),N.push(new o(gt,s.Comment)),Z+=2,Nt&&ut();continue}if(K.slice(Z,Z+3)==="{%-"){et(),N.push(new o("{%",s.OpenStatement)),Z+=3;continue}if(K.slice(Z,Z+3)==="{{-"){et(),N.push(new o("{{",s.OpenExpression)),ce=0,Z+=3;continue}if(xe(i),K.slice(Z,Z+3)==="-%}"){N.push(new o("%}",s.CloseStatement)),Z+=3,ut();continue}if(K.slice(Z,Z+3)==="-}}"){N.push(new o("}}",s.CloseExpression)),Z+=3,ut();continue}let wt=K[Z];if(wt==="-"||wt==="+"){let tt=N.at(-1)?.type;if(tt===s.Text||tt===void 0)throw new SyntaxError(`Unexpected character: ${wt}`);switch(tt){case s.Identifier:case s.NumericLiteral:case s.StringLiteral:case s.CloseParen:case s.CloseSquareBracket:break;default:{++Z;let gt=xe(n);N.push(new o(`${wt}${gt}`,gt.length>0?s.NumericLiteral:s.UnaryOperator));continue}}}for(let[tt,gt]of l){if(tt==="}}"&&ce>0)continue;if(K.slice(Z,Z+tt.length)===tt){N.push(new o(tt,gt)),gt===s.OpenExpression?ce=0:gt===s.OpenCurlyBracket?++ce:gt===s.CloseCurlyBracket&&--ce,Z+=tt.length;continue e}}if(wt==="'"||wt==='"'){++Z;let tt=xe(gt=>gt!==wt);N.push(new o(tt,s.StringLiteral)),++Z;continue}if(n(wt)){let tt=xe(n);if(K[Z]==="."&&n(K[Z+1])){++Z;let gt=xe(n);tt=`${tt}.${gt}`}N.push(new o(tt,s.NumericLiteral));continue}if(a(wt)){let tt=xe(a);N.push(new o(tt,s.Identifier));continue}throw new SyntaxError(`Unexpected character: ${wt}`)}return N}var d=class{type="Statement"},g=class extends d{constructor(k){super(),this.body=k}type="Program"},h=class extends d{constructor(k,Q,N){super(),this.test=k,this.body=Q,this.alternate=N}type="If"},x=class extends d{constructor(k,Q,N,K){super(),this.loopvar=k,this.iterable=Q,this.body=N,this.defaultBlock=K}type="For"},F=class extends d{type="Break"},v=class extends d{type="Continue"},b=class extends d{constructor(k,Q,N){super(),this.assignee=k,this.value=Q,this.body=N}type="Set"},C=class extends d{constructor(k,Q,N){super(),this.name=k,this.args=Q,this.body=N}type="Macro"},y=class extends d{constructor(k){super(),this.value=k}type="Comment"},P=class extends d{type="Expression"},I=class extends P{constructor(k,Q,N){super(),this.object=k,this.property=Q,this.computed=N}type="MemberExpression"},f=class extends P{constructor(k,Q){super(),this.callee=k,this.args=Q}type="CallExpression"},E=class extends P{constructor(k){super(),this.value=k}type="Identifier"},D=class extends P{constructor(k){super(),this.value=k}type="Literal"},O=class extends D{type="IntegerLiteral"},U=class extends D{type="FloatLiteral"},W=class extends D{type="StringLiteral"},z=class extends D{type="ArrayLiteral"},X=class extends D{type="TupleLiteral"},J=class extends D{type="ObjectLiteral"},q=class extends P{constructor(k,Q,N){super(),this.operator=k,this.left=Q,this.right=N}type="BinaryExpression"},re=class extends P{constructor(k,Q){super(),this.operand=k,this.filter=Q}type="FilterExpression"},oe=class extends d{constructor(k,Q){super(),this.filter=k,this.body=Q}type="FilterStatement"},ne=class extends P{constructor(k,Q){super(),this.lhs=k,this.test=Q}type="SelectExpression"},ye=class extends P{constructor(k,Q,N){super(),this.operand=k,this.negate=Q,this.test=N}type="TestExpression"},Y=class extends P{constructor(k,Q){super(),this.operator=k,this.argument=Q}type="UnaryExpression"},H=class extends P{constructor(k=void 0,Q=void 0,N=void 0){super(),this.start=k,this.stop=Q,this.step=N}type="SliceExpression"},R=class extends P{constructor(k,Q){super(),this.key=k,this.value=Q}type="KeywordArgumentExpression"},L=class extends P{constructor(k){super(),this.argument=k}type="SpreadExpression"},ee=class extends d{constructor(k,Q,N){super(),this.call=k,this.callerArgs=Q,this.body=N}type="CallStatement"},ue=class extends P{constructor(k,Q,N){super(),this.condition=k,this.trueExpr=Q,this.falseExpr=N}type="Ternary"};function ke(k){let Q=new g([]),N=0;function K(ze,Ue){let at=k[N++];if(!at||at.type!==ze)throw new Error(`Parser Error: ${Ue}. ${at.type} !== ${ze}.`);return at}function Z(ze){if(!ut(ze))throw new SyntaxError(`Expected ${ze}`);++N}function ce(){switch(k[N].type){case s.Comment:return new y(k[N++].value);case s.Text:return qe();case s.OpenStatement:return wt();case s.OpenExpression:return tt();default:throw new SyntaxError(`Unexpected token type: ${k[N].type}`)}}function xe(...ze){return N+ze.length<=k.length&&ze.every((Ue,at)=>Ue===k[N+at].type)}function et(...ze){return k[N]?.type===s.OpenStatement&&k[N+1]?.type===s.Identifier&&ze.includes(k[N+1]?.value)}function ut(...ze){return N+ze.length<=k.length&&ze.every((Ue,at)=>k[N+at].type==="Identifier"&&Ue===k[N+at].value)}function qe(){return new W(K(s.Text,"Expected text token").value)}function wt(){if(K(s.OpenStatement,"Expected opening statement token"),k[N].type!==s.Identifier)throw new SyntaxError(`Unknown statement, got ${k[N].type}`);let ze=k[N].value,Ue;switch(ze){case"set":++N,Ue=gt();break;case"if":++N,Ue=Nt(),K(s.OpenStatement,"Expected {% token"),Z("endif"),K(s.CloseStatement,"Expected %} token");break;case"macro":++N,Ue=Qt(),K(s.OpenStatement,"Expected {% token"),Z("endmacro"),K(s.CloseStatement,"Expected %} token");break;case"for":++N,Ue=Or(),K(s.OpenStatement,"Expected {% token"),Z("endfor"),K(s.CloseStatement,"Expected %} token");break;case"call":{++N;let at=null;xe(s.OpenParen)&&(at=ar());let Ht=Wr();if(Ht.type!=="Identifier")throw new SyntaxError("Expected identifier following call statement");let js=ar();K(s.CloseStatement,"Expected closing statement token");let Ds=[];for(;!et("endcall");)Ds.push(ce());K(s.OpenStatement,"Expected '{%'"),Z("endcall"),K(s.CloseStatement,"Expected closing statement token");let Vs=new f(Ht,js);Ue=new ee(Vs,at,Ds);break}case"break":++N,K(s.CloseStatement,"Expected closing statement token"),Ue=new F;break;case"continue":++N,K(s.CloseStatement,"Expected closing statement token"),Ue=new v;break;case"filter":{++N;let at=Wr();at instanceof E&&xe(s.OpenParen)&&(at=Gr(at)),K(s.CloseStatement,"Expected closing statement token");let Ht=[];for(;!et("endfilter");)Ht.push(ce());K(s.OpenStatement,"Expected '{%'"),Z("endfilter"),K(s.CloseStatement,"Expected '%}'"),Ue=new oe(at,Ht);break}default:throw new SyntaxError(`Unknown statement type: ${ze}`)}return Ue}function tt(){K(s.OpenExpression,"Expected opening expression token");let ze=Cr();return K(s.CloseExpression,"Expected closing expression token"),ze}function gt(){let ze=ur(),Ue=null,at=[];if(xe(s.Equals))++N,Ue=ur();else{for(K(s.CloseStatement,"Expected %} token");!et("endset");)at.push(ce());K(s.OpenStatement,"Expected {% token"),Z("endset")}return K(s.CloseStatement,"Expected closing statement token"),new b(ze,Ue,at)}function Nt(){let ze=Cr();K(s.CloseStatement,"Expected closing statement token");let Ue=[],at=[];for(;!et("elif","else","endif");)Ue.push(ce());if(et("elif")){++N,++N;let Ht=Nt();at.push(Ht)}else if(et("else"))for(++N,++N,K(s.CloseStatement,"Expected closing statement token");!et("endif");)at.push(ce());return new h(ze,Ue,at)}function Qt(){let ze=Wr();if(ze.type!=="Identifier")throw new SyntaxError("Expected identifier following macro statement");let Ue=ar();K(s.CloseStatement,"Expected closing statement token");let at=[];for(;!et("endmacro");)at.push(ce());return new C(ze,Ue,at)}function ur(ze=!1){let Ue=ze?Wr:Cr,at=[Ue()],Ht=xe(s.Comma);for(;Ht&&(++N,at.push(Ue()),!!xe(s.Comma)););return Ht?new X(at):at[0]}function Or(){let ze=ur(!0);if(!(ze instanceof E||ze instanceof X))throw new SyntaxError(`Expected identifier/tuple for the loop variable, got ${ze.type} instead`);if(!ut("in"))throw new SyntaxError("Expected `in` keyword following loop variable");++N;let Ue=Cr();K(s.CloseStatement,"Expected closing statement token");let at=[];for(;!et("endfor","else");)at.push(ce());let Ht=[];if(et("else"))for(++N,++N,K(s.CloseStatement,"Expected closing statement token");!et("endfor");)Ht.push(ce());return new x(ze,Ue,at,Ht)}function Cr(){return Lr()}function Lr(){let ze=_s();if(ut("if")){++N;let Ue=_s();if(ut("else")){++N;let at=Lr();return new ue(Ue,ze,at)}else return new ne(ze,Ue)}return ze}function _s(){let ze=Fs();for(;ut("or");){let Ue=k[N];++N;let at=Fs();ze=new q(Ue,ze,at)}return ze}function Fs(){let ze=gr();for(;ut("and");){let Ue=k[N];++N;let at=gr();ze=new q(Ue,ze,at)}return ze}function gr(){let ze;for(;ut("not");){let Ue=k[N];++N;let at=gr();ze=new Y(Ue,at)}return ze??Ns()}function Ns(){let ze=as();for(;;){let Ue;if(ut("not","in"))Ue=new o("not in",s.Identifier),N+=2;else if(ut("in"))Ue=k[N++];else if(xe(s.ComparisonBinaryOperator))Ue=k[N++];else break;let at=as();ze=new q(Ue,ze,at)}return ze}function as(){let ze=As();for(;xe(s.AdditiveBinaryOperator);){let Ue=k[N];++N;let at=As();ze=new q(Ue,ze,at)}return ze}function Nr(){let ze=Is(Wr());return xe(s.OpenParen)?Gr(ze):ze}function Gr(ze){let Ue=new f(ze,ar());return Ue=Is(Ue),xe(s.OpenParen)&&(Ue=Gr(Ue)),Ue}function ar(){K(s.OpenParen,"Expected opening parenthesis for arguments list");let ze=_r();return K(s.CloseParen,"Expected closing parenthesis for arguments list"),ze}function _r(){let ze=[];for(;!xe(s.CloseParen);){let Ue;if(k[N].type===s.MultiplicativeBinaryOperator&&k[N].value==="*"){++N;let at=Cr();Ue=new L(at)}else if(Ue=Cr(),xe(s.Equals)){if(++N,!(Ue instanceof E))throw new SyntaxError("Expected identifier for keyword argument");let at=Cr();Ue=new R(Ue,at)}ze.push(Ue),xe(s.Comma)&&++N}return ze}function ps(){let ze=[],Ue=!1;for(;!xe(s.CloseSquareBracket);)xe(s.Colon)?(ze.push(void 0),++N,Ue=!0):(ze.push(Cr()),xe(s.Colon)&&(++N,Ue=!0));if(ze.length===0)throw new SyntaxError("Expected at least one argument for member/slice expression");if(Ue){if(ze.length>3)throw new SyntaxError("Expected 0-3 arguments for slice expression");return new H(...ze)}return ze[0]}function Is(ze){for(;xe(s.Dot)||xe(s.OpenSquareBracket);){let Ue=k[N];++N;let at,Ht=Ue.type===s.OpenSquareBracket;if(Ht)at=ps(),K(s.CloseSquareBracket,"Expected closing square bracket");else if(at=Wr(),at.type!=="Identifier")throw new SyntaxError("Expected identifier following dot operator");ze=new I(ze,at,Ht)}return ze}function As(){let ze=$s();for(;xe(s.MultiplicativeBinaryOperator);){let Ue=k[N++],at=$s();ze=new q(Ue,ze,at)}return ze}function $s(){let ze=ns();for(;ut("is");){++N;let Ue=ut("not");Ue&&++N;let at=Wr();if(!(at instanceof E))throw new SyntaxError("Expected identifier for the test");ze=new ye(ze,Ue,at)}return ze}function ns(){let ze=Nr();for(;xe(s.Pipe);){++N;let Ue=Wr();if(!(Ue instanceof E))throw new SyntaxError("Expected identifier for the filter");xe(s.OpenParen)&&(Ue=Gr(Ue)),ze=new re(ze,Ue)}return ze}function Wr(){let ze=k[N++];switch(ze.type){case s.NumericLiteral:{let Ue=ze.value;return Ue.includes(".")?new U(Number(Ue)):new O(Number(Ue))}case s.StringLiteral:{let Ue=ze.value;for(;xe(s.StringLiteral);)Ue+=k[N++].value;return new W(Ue)}case s.Identifier:return new E(ze.value);case s.OpenParen:{let Ue=ur();return K(s.CloseParen,"Expected closing parenthesis, got ${tokens[current].type} instead."),Ue}case s.OpenSquareBracket:{let Ue=[];for(;!xe(s.CloseSquareBracket);)Ue.push(Cr()),xe(s.Comma)&&++N;return++N,new z(Ue)}case s.OpenCurlyBracket:{let Ue=new Map;for(;!xe(s.CloseCurlyBracket);){let at=Cr();K(s.Colon,"Expected colon between key and value in object literal");let Ht=Cr();Ue.set(at,Ht),xe(s.Comma)&&++N}return++N,new J(Ue)}default:throw new SyntaxError(`Unexpected token: ${ze.type}`)}}for(;N<k.length;)Q.body.push(ce());return Q}function Ie(k,Q,N=1){Q===void 0&&(Q=k,k=0);let K=[];for(let Z=k;Z<Q;Z+=N)K.push(Z);return K}function Le(k,Q,N,K=1){let Z=Math.sign(K);Z>=0?(Q=(Q??=0)<0?Math.max(k.length+Q,0):Math.min(Q,k.length),N=(N??=k.length)<0?Math.max(k.length+N,0):Math.min(N,k.length)):(Q=(Q??=k.length-1)<0?Math.max(k.length+Q,-1):Math.min(Q,k.length-1),N=(N??=-1)<-1?Math.max(k.length+N,-1):Math.min(N,k.length-1));let ce=[];for(let xe=Q;Z*xe<Z*N;xe+=K)ce.push(k[xe]);return ce}function rt(k){return k.replace(/\b\w/g,Q=>Q.toUpperCase())}function we(k){return A(new Date,k)}function A(k,Q){let N=new Intl.DateTimeFormat(void 0,{month:"long"}),K=new Intl.DateTimeFormat(void 0,{month:"short"}),Z=ce=>ce<10?"0"+ce:ce.toString();return Q.replace(/%[YmdbBHM%]/g,ce=>{switch(ce){case"%Y":return k.getFullYear().toString();case"%m":return Z(k.getMonth()+1);case"%d":return Z(k.getDate());case"%b":return K.format(k);case"%B":return N.format(k);case"%H":return Z(k.getHours());case"%M":return Z(k.getMinutes());case"%%":return"%";default:return ce}})}function le(k){return k.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ge(k,Q,N,K){if(K===0)return k;let Z=K==null||K<0?1/0:K,ce=Q.length===0?new RegExp("(?=)","gu"):new RegExp(le(Q),"gu");return k.replaceAll(ce,xe=>Z>0?(--Z,N):xe)}var be=class extends Error{},Ae=class extends Error{},ve=class{type="RuntimeValue";value;builtins=new Map;constructor(k=void 0){this.value=k}__bool__(){return new Te(!!this.value)}toString(){return String(this.value)}},pe=class extends ve{type="IntegerValue"},Pe=class extends ve{type="FloatValue";toString(){return this.value%1===0?this.value.toFixed(1):this.value.toString()}},fe=class extends ve{type="StringValue";builtins=new Map([["upper",new De(()=>new fe(this.value.toUpperCase()))],["lower",new De(()=>new fe(this.value.toLowerCase()))],["strip",new De(()=>new fe(this.value.trim()))],["title",new De(()=>new fe(rt(this.value)))],["capitalize",new De(()=>new fe(this.value.charAt(0).toUpperCase()+this.value.slice(1)))],["length",new pe(this.value.length)],["rstrip",new De(()=>new fe(this.value.trimEnd()))],["lstrip",new De(()=>new fe(this.value.trimStart()))],["startswith",new De(k=>{if(k.length===0)throw new Error("startswith() requires at least one argument");let Q=k[0];if(Q instanceof fe)return new Te(this.value.startsWith(Q.value));if(Q instanceof Ne){for(let N of Q.value){if(!(N instanceof fe))throw new Error("startswith() tuple elements must be strings");if(this.value.startsWith(N.value))return new Te(!0)}return new Te(!1)}throw new Error("startswith() argument must be a string or tuple of strings")})],["endswith",new De(k=>{if(k.length===0)throw new Error("endswith() requires at least one argument");let Q=k[0];if(Q instanceof fe)return new Te(this.value.endsWith(Q.value));if(Q instanceof Ne){for(let N of Q.value){if(!(N instanceof fe))throw new Error("endswith() tuple elements must be strings");if(this.value.endsWith(N.value))return new Te(!0)}return new Te(!1)}throw new Error("endswith() argument must be a string or tuple of strings")})],["split",new De(k=>{let Q=k[0]??new Qe;if(!(Q instanceof fe||Q instanceof Qe))throw new Error("sep argument must be a string or null");let N=k[1]??new pe(-1);if(!(N instanceof pe))throw new Error("maxsplit argument must be a number");let K=[];if(Q instanceof Qe){let Z=this.value.trimStart();for(let{0:ce,index:xe}of Z.matchAll(/\S+/g)){if(N.value!==-1&&K.length>=N.value&&xe!==void 0){K.push(ce+Z.slice(xe+ce.length));break}K.push(ce)}}else{if(Q.value==="")throw new Error("empty separator");K=this.value.split(Q.value),N.value!==-1&&K.length>N.value&&K.push(K.splice(N.value).join(Q.value))}return new Ne(K.map(Z=>new fe(Z)))})],["replace",new De(k=>{if(k.length<2)throw new Error("replace() requires at least two arguments");let Q=k[0],N=k[1];if(!(Q instanceof fe&&N instanceof fe))throw new Error("replace() arguments must be strings");let K;if(k.length>2?k[2].type==="KeywordArgumentsValue"?K=k[2].value.get("count")??new Qe:K=k[2]:K=new Qe,!(K instanceof pe||K instanceof Qe))throw new Error("replace() count argument must be a number or null");return new fe(ge(this.value,Q.value,N.value,K.value))})]])},Te=class extends ve{type="BooleanValue"};function We(k,Q,N,K=!0){let Z=N??0;switch(k.type){case"NullValue":return"null";case"UndefinedValue":return K?"null":"undefined";case"IntegerValue":case"FloatValue":case"StringValue":case"BooleanValue":return JSON.stringify(k.value);case"ArrayValue":case"ObjectValue":{let ce=Q?" ".repeat(Q):"",xe=`
2831
2831
  `+ce.repeat(Z),et=xe+ce;if(k.type==="ArrayValue"){let ut=k.value.map(qe=>We(qe,Q,Z+1,K));return Q?`[${et}${ut.join(`,${et}`)}${xe}]`:`[${ut.join(", ")}]`}else{let ut=Array.from(k.value.entries()).map(([qe,wt])=>{let tt=`"${qe}": ${We(wt,Q,Z+1,K)}`;return Q?`${et}${tt}`:tt});return Q?`{${ut.join(",")}${xe}}`:`{${ut.join(", ")}}`}}default:throw new Error(`Cannot convert to JSON: ${k.type}`)}}var $e=class extends ve{type="ObjectValue";__bool__(){return new Te(this.value.size>0)}builtins=new Map([["get",new De(([k,Q])=>{if(!(k instanceof fe))throw new Error(`Object key must be a string: got ${k.type}`);return this.value.get(k.value)??Q??new Qe})],["items",new De(()=>this.items())],["keys",new De(()=>this.keys())],["values",new De(()=>this.values())],["dictsort",new De(k=>{let Q=new Map,N=k.filter(et=>et instanceof Re?(Q=et.value,!1):!0),K=N.at(0)??Q.get("case_sensitive")??new Te(!1);if(!(K instanceof Te))throw new Error("case_sensitive must be a boolean");let Z=N.at(1)??Q.get("by")??new fe("key");if(!(Z instanceof fe))throw new Error("by must be a string");if(!["key","value"].includes(Z.value))throw new Error("by must be either 'key' or 'value'");let ce=N.at(2)??Q.get("reverse")??new Te(!1);if(!(ce instanceof Te))throw new Error("reverse must be a boolean");let xe=Array.from(this.value.entries()).map(([et,ut])=>new Ne([new fe(et),ut])).sort((et,ut)=>{let qe=Z.value==="key"?0:1,wt=et.value[qe],tt=ut.value[qe],gt=At(wt,tt,K.value);return ce.value?-gt:gt});return new Ne(xe)})]]);items(){return new Ne(Array.from(this.value.entries()).map(([k,Q])=>new Ne([new fe(k),Q])))}keys(){return new Ne(Array.from(this.value.keys()).map(k=>new fe(k)))}values(){return new Ne(Array.from(this.value.values()))}toString(){return We(this,null,0,!1)}},Re=class extends $e{type="KeywordArgumentsValue"},Ne=class extends ve{type="ArrayValue";builtins=new Map([["length",new pe(this.value.length)]]);__bool__(){return new Te(this.value.length>0)}toString(){return We(this,null,0,!1)}},ot=class extends Ne{type="TupleValue"},De=class extends ve{type="FunctionValue"},Qe=class extends ve{type="NullValue"},je=class extends ve{type="UndefinedValue"},pt=class{constructor(k){this.parent=k}variables=new Map([["namespace",new De(k=>{if(k.length===0)return new $e(new Map);if(k.length!==1||!(k[0]instanceof $e))throw new Error("`namespace` expects either zero arguments or a single object argument");return k[0]})]]);tests=new Map([["boolean",k=>k.type==="BooleanValue"],["callable",k=>k instanceof De],["odd",k=>{if(!(k instanceof pe))throw new Error(`cannot odd on ${k.type}`);return k.value%2!==0}],["even",k=>{if(!(k instanceof pe))throw new Error(`cannot even on ${k.type}`);return k.value%2===0}],["false",k=>k.type==="BooleanValue"&&!k.value],["true",k=>k.type==="BooleanValue"&&k.value],["none",k=>k.type==="NullValue"],["string",k=>k.type==="StringValue"],["number",k=>k instanceof pe||k instanceof Pe],["integer",k=>k instanceof pe],["iterable",k=>k.type==="ArrayValue"||k.type==="StringValue"],["mapping",k=>k.type==="ObjectValue"],["lower",k=>{let Q=k.value;return k.type==="StringValue"&&Q===Q.toLowerCase()}],["upper",k=>{let Q=k.value;return k.type==="StringValue"&&Q===Q.toUpperCase()}],["none",k=>k.type==="NullValue"],["defined",k=>k.type!=="UndefinedValue"],["undefined",k=>k.type==="UndefinedValue"],["equalto",(k,Q)=>k.value===Q.value],["eq",(k,Q)=>k.value===Q.value]]);set(k,Q){return this.declareVariable(k,fr(Q))}declareVariable(k,Q){if(this.variables.has(k))throw new SyntaxError(`Variable already declared: ${k}`);return this.variables.set(k,Q),Q}setVariable(k,Q){return this.variables.set(k,Q),Q}resolve(k){if(this.variables.has(k))return this;if(this.parent)return this.parent.resolve(k);throw new Error(`Unknown variable: ${k}`)}lookupVariable(k){try{return this.resolve(k).variables.get(k)??new je}catch{return new je}}};function Ke(k){k.set("false",!1),k.set("true",!0),k.set("none",null),k.set("raise_exception",Q=>{throw new Error(Q)}),k.set("range",Ie),k.set("strftime_now",we),k.set("True",!0),k.set("False",!1),k.set("None",null)}function bt(k,Q){let N=Q.split("."),K=k;for(let Z of N)if(K instanceof $e)K=K.value.get(Z)??new je;else if(K instanceof Ne){let ce=parseInt(Z,10);if(!isNaN(ce)&&ce>=0&&ce<K.value.length)K=K.value[ce];else return new je}else return new je;return K}function At(k,Q,N=!1){if(k instanceof Qe&&Q instanceof Qe)return 0;if(k instanceof Qe||Q instanceof Qe)throw new Error(`Cannot compare ${k.type} with ${Q.type}`);if(k instanceof je&&Q instanceof je)return 0;if(k instanceof je||Q instanceof je)throw new Error(`Cannot compare ${k.type} with ${Q.type}`);let K=ce=>ce instanceof pe||ce instanceof Pe||ce instanceof Te,Z=ce=>ce instanceof Te?ce.value?1:0:ce.value;if(K(k)&&K(Q)){let ce=Z(k),xe=Z(Q);return ce<xe?-1:ce>xe?1:0}if(k.type!==Q.type)throw new Error(`Cannot compare different types: ${k.type} and ${Q.type}`);if(k.type==="StringValue"){let ce=k.value,xe=Q.value;return N||(ce=ce.toLowerCase(),xe=xe.toLowerCase()),ce<xe?-1:ce>xe?1:0}else throw new Error(`Cannot compare type: ${k.type}`)}var Lt=class{global;constructor(k){this.global=k??new pt}run(k){return this.evaluate(k,this.global)}evaluateBinaryExpression(k,Q){let N=this.evaluate(k.left,Q);switch(k.operator.value){case"and":return N.__bool__().value?this.evaluate(k.right,Q):N;case"or":return N.__bool__().value?N:this.evaluate(k.right,Q)}let K=this.evaluate(k.right,Q);switch(k.operator.value){case"==":return new Te(N.value==K.value);case"!=":return new Te(N.value!=K.value)}if(N instanceof je||K instanceof je){if(K instanceof je&&["in","not in"].includes(k.operator.value))return new Te(k.operator.value==="not in");throw new Error(`Cannot perform operation ${k.operator.value} on undefined values`)}else{if(N instanceof Qe||K instanceof Qe)throw new Error("Cannot perform operation on null values");if(k.operator.value==="~")return new fe(N.value.toString()+K.value.toString());if((N instanceof pe||N instanceof Pe)&&(K instanceof pe||K instanceof Pe)){let Z=N.value,ce=K.value;switch(k.operator.value){case"+":case"-":case"*":{let xe=k.operator.value==="+"?Z+ce:k.operator.value==="-"?Z-ce:Z*ce;return N instanceof Pe||K instanceof Pe?new Pe(xe):new pe(xe)}case"/":return new Pe(Z/ce);case"%":{let xe=Z%ce;return N instanceof Pe||K instanceof Pe?new Pe(xe):new pe(xe)}case"<":return new Te(Z<ce);case">":return new Te(Z>ce);case">=":return new Te(Z>=ce);case"<=":return new Te(Z<=ce)}}else if(N instanceof Ne&&K instanceof Ne){if(k.operator.value==="+")return new Ne(N.value.concat(K.value))}else if(K instanceof Ne){let Z=K.value.find(ce=>ce.value===N.value)!==void 0;switch(k.operator.value){case"in":return new Te(Z);case"not in":return new Te(!Z)}}}if((N instanceof fe||K instanceof fe)&&k.operator.value==="+")return new fe(N.value.toString()+K.value.toString());if(N instanceof fe&&K instanceof fe)switch(k.operator.value){case"in":return new Te(K.value.includes(N.value));case"not in":return new Te(!K.value.includes(N.value))}if(N instanceof fe&&K instanceof $e)switch(k.operator.value){case"in":return new Te(K.value.has(N.value));case"not in":return new Te(!K.value.has(N.value))}throw new SyntaxError(`Unknown operator "${k.operator.value}" between ${N.type} and ${K.type}`)}evaluateArguments(k,Q){let N=[],K=new Map;for(let Z of k)if(Z.type==="SpreadExpression"){let ce=Z,xe=this.evaluate(ce.argument,Q);if(!(xe instanceof Ne))throw new Error(`Cannot unpack non-iterable type: ${xe.type}`);for(let et of xe.value)N.push(et)}else if(Z.type==="KeywordArgumentExpression"){let ce=Z;K.set(ce.key.value,this.evaluate(ce.value,Q))}else{if(K.size>0)throw new Error("Positional arguments must come before keyword arguments");N.push(this.evaluate(Z,Q))}return[N,K]}applyFilter(k,Q,N){if(Q.type==="Identifier"){let K=Q;if(K.value==="tojson")return new fe(We(k));if(k instanceof Ne)switch(K.value){case"list":return k;case"first":return k.value[0];case"last":return k.value[k.value.length-1];case"length":return new pe(k.value.length);case"reverse":return new Ne(k.value.slice().reverse());case"sort":return new Ne(k.value.slice().sort((Z,ce)=>At(Z,ce,!1)));case"join":return new fe(k.value.map(Z=>Z.value).join(""));case"string":return new fe(We(k,null,0,!1));case"unique":{let Z=new Set,ce=[];for(let xe of k.value)Z.has(xe.value)||(Z.add(xe.value),ce.push(xe));return new Ne(ce)}default:throw new Error(`Unknown ArrayValue filter: ${K.value}`)}else if(k instanceof fe)switch(K.value){case"length":case"upper":case"lower":case"title":case"capitalize":{let Z=k.builtins.get(K.value);if(Z instanceof De)return Z.value([],N);if(Z instanceof pe)return Z;throw new Error(`Unknown StringValue filter: ${K.value}`)}case"trim":return new fe(k.value.trim());case"indent":return new fe(k.value.split(`
@@ -2835,7 +2835,7 @@ ${a}`,i=t.createShaderModule({code:n,label:e.name});Ot("verbose",()=>`[WebGPU] $
2835
2835
  `))}case"replace":{let ce=k.builtins.get("replace");if(!(ce instanceof De))throw new Error("replace filter not available");let[xe,et]=this.evaluateArguments(K.args,N);return ce.value([...xe,new Re(et)],N)}}throw new Error(`Unknown StringValue filter: ${Z}`)}else if(k instanceof $e){let ce=k.builtins.get(Z);if(ce&&ce instanceof De){let[xe,et]=this.evaluateArguments(K.args,N);return et.size>0&&xe.push(new Re(et)),ce.value(xe,N)}throw new Error(`Unknown ObjectValue filter: ${Z}`)}else throw new Error(`Cannot apply filter "${Z}" to type: ${k.type}`)}throw new Error(`Unknown filter: ${Q.type}`)}evaluateFilterExpression(k,Q){let N=this.evaluate(k.operand,Q);return this.applyFilter(N,k.filter,Q)}evaluateTestExpression(k,Q){let N=this.evaluate(k.operand,Q),K=Q.tests.get(k.test.value);if(!K)throw new Error(`Unknown test: ${k.test.value}`);let Z=K(N);return new Te(k.negate?!Z:Z)}evaluateSelectExpression(k,Q){return this.evaluate(k.test,Q).__bool__().value?this.evaluate(k.lhs,Q):new je}evaluateUnaryExpression(k,Q){let N=this.evaluate(k.argument,Q);if(k.operator.value==="not")return new Te(!N.value);throw new SyntaxError(`Unknown operator: ${k.operator.value}`)}evaluateTernaryExpression(k,Q){return this.evaluate(k.condition,Q).__bool__().value?this.evaluate(k.trueExpr,Q):this.evaluate(k.falseExpr,Q)}evalProgram(k,Q){return this.evaluateBlock(k.body,Q)}evaluateBlock(k,Q){let N="";for(let K of k){let Z=this.evaluate(K,Q);Z.type!=="NullValue"&&Z.type!=="UndefinedValue"&&(N+=Z.toString())}return new fe(N)}evaluateIdentifier(k,Q){return Q.lookupVariable(k.value)}evaluateCallExpression(k,Q){let[N,K]=this.evaluateArguments(k.args,Q);K.size>0&&N.push(new Re(K));let Z=this.evaluate(k.callee,Q);if(Z.type!=="FunctionValue")throw new Error(`Cannot call something that is not a function: got ${Z.type}`);return Z.value(N,Q)}evaluateSliceExpression(k,Q,N){if(!(k instanceof Ne||k instanceof fe))throw new Error("Slice object must be an array or string");let K=this.evaluate(Q.start,N),Z=this.evaluate(Q.stop,N),ce=this.evaluate(Q.step,N);if(!(K instanceof pe||K instanceof je))throw new Error("Slice start must be numeric or undefined");if(!(Z instanceof pe||Z instanceof je))throw new Error("Slice stop must be numeric or undefined");if(!(ce instanceof pe||ce instanceof je))throw new Error("Slice step must be numeric or undefined");return k instanceof Ne?new Ne(Le(k.value,K.value,Z.value,ce.value)):new fe(Le(Array.from(k.value),K.value,Z.value,ce.value).join(""))}evaluateMemberExpression(k,Q){let N=this.evaluate(k.object,Q),K;if(k.computed){if(k.property.type==="SliceExpression")return this.evaluateSliceExpression(N,k.property,Q);K=this.evaluate(k.property,Q)}else K=new fe(k.property.value);let Z;if(N instanceof $e){if(!(K instanceof fe))throw new Error(`Cannot access property with non-string: got ${K.type}`);Z=N.value.get(K.value)??N.builtins.get(K.value)}else if(N instanceof Ne||N instanceof fe)if(K instanceof pe)Z=N.value.at(K.value),N instanceof fe&&(Z=new fe(N.value.at(K.value)));else if(K instanceof fe)Z=N.builtins.get(K.value);else throw new Error(`Cannot access property with non-string/non-number: got ${K.type}`);else{if(!(K instanceof fe))throw new Error(`Cannot access property with non-string: got ${K.type}`);Z=N.builtins.get(K.value)}return Z instanceof ve?Z:new je}evaluateSet(k,Q){let N=k.value?this.evaluate(k.value,Q):this.evaluateBlock(k.body,Q);if(k.assignee.type==="Identifier"){let K=k.assignee.value;Q.setVariable(K,N)}else if(k.assignee.type==="TupleLiteral"){let K=k.assignee;if(!(N instanceof Ne))throw new Error(`Cannot unpack non-iterable type in set: ${N.type}`);let Z=N.value;if(Z.length!==K.value.length)throw new Error(`Too ${K.value.length>Z.length?"few":"many"} items to unpack in set`);for(let ce=0;ce<K.value.length;++ce){let xe=K.value[ce];if(xe.type!=="Identifier")throw new Error(`Cannot unpack to non-identifier in set: ${xe.type}`);Q.setVariable(xe.value,Z[ce])}}else if(k.assignee.type==="MemberExpression"){let K=k.assignee,Z=this.evaluate(K.object,Q);if(!(Z instanceof $e))throw new Error("Cannot assign to member of non-object");if(K.property.type!=="Identifier")throw new Error("Cannot assign to member with non-identifier property");Z.value.set(K.property.value,N)}else throw new Error(`Invalid LHS inside assignment expression: ${JSON.stringify(k.assignee)}`);return new Qe}evaluateIf(k,Q){let N=this.evaluate(k.test,Q);return this.evaluateBlock(N.__bool__().value?k.body:k.alternate,Q)}evaluateFor(k,Q){let N=new pt(Q),K,Z;if(k.iterable.type==="SelectExpression"){let qe=k.iterable;Z=this.evaluate(qe.lhs,N),K=qe.test}else Z=this.evaluate(k.iterable,N);if(!(Z instanceof Ne||Z instanceof $e))throw new Error(`Expected iterable or object type in for loop: got ${Z.type}`);Z instanceof $e&&(Z=Z.keys());let ce=[],xe=[];for(let qe=0;qe<Z.value.length;++qe){let wt=new pt(N),tt=Z.value[qe],gt;if(k.loopvar.type==="Identifier")gt=Nt=>Nt.setVariable(k.loopvar.value,tt);else if(k.loopvar.type==="TupleLiteral"){let Nt=k.loopvar;if(tt.type!=="ArrayValue")throw new Error(`Cannot unpack non-iterable type: ${tt.type}`);let Qt=tt;if(Nt.value.length!==Qt.value.length)throw new Error(`Too ${Nt.value.length>Qt.value.length?"few":"many"} items to unpack`);gt=ur=>{for(let Or=0;Or<Nt.value.length;++Or){if(Nt.value[Or].type!=="Identifier")throw new Error(`Cannot unpack non-identifier type: ${Nt.value[Or].type}`);ur.setVariable(Nt.value[Or].value,Qt.value[Or])}}}else throw new Error(`Invalid loop variable(s): ${k.loopvar.type}`);K&&(gt(wt),!this.evaluate(K,wt).__bool__().value)||(ce.push(tt),xe.push(gt))}let et="",ut=!0;for(let qe=0;qe<ce.length;++qe){let wt=new Map([["index",new pe(qe+1)],["index0",new pe(qe)],["revindex",new pe(ce.length-qe)],["revindex0",new pe(ce.length-qe-1)],["first",new Te(qe===0)],["last",new Te(qe===ce.length-1)],["length",new pe(ce.length)],["previtem",qe>0?ce[qe-1]:new je],["nextitem",qe<ce.length-1?ce[qe+1]:new je]]);N.setVariable("loop",new $e(wt)),xe[qe](N);try{let tt=this.evaluateBlock(k.body,N);et+=tt.value}catch(tt){if(tt instanceof Ae)continue;if(tt instanceof be)break;throw tt}ut=!1}if(ut){let qe=this.evaluateBlock(k.defaultBlock,N);et+=qe.value}return new fe(et)}evaluateMacro(k,Q){return Q.setVariable(k.name.value,new De((N,K)=>{let Z=new pt(K);N=N.slice();let ce;N.at(-1)?.type==="KeywordArgumentsValue"&&(ce=N.pop());for(let xe=0;xe<k.args.length;++xe){let et=k.args[xe],ut=N[xe];if(et.type==="Identifier"){let qe=et;if(!ut)throw new Error(`Missing positional argument: ${qe.value}`);Z.setVariable(qe.value,ut)}else if(et.type==="KeywordArgumentExpression"){let qe=et,wt=ut??ce?.value.get(qe.key.value)??this.evaluate(qe.value,Z);Z.setVariable(qe.key.value,wt)}else throw new Error(`Unknown argument type: ${et.type}`)}return this.evaluateBlock(k.body,Z)})),new Qe}evaluateCallStatement(k,Q){let N=new De((et,ut)=>{let qe=new pt(ut);if(k.callerArgs)for(let wt=0;wt<k.callerArgs.length;++wt){let tt=k.callerArgs[wt];if(tt.type!=="Identifier")throw new Error(`Caller parameter must be an identifier, got ${tt.type}`);qe.setVariable(tt.value,et[wt]??new je)}return this.evaluateBlock(k.body,qe)}),[K,Z]=this.evaluateArguments(k.call.args,Q);K.push(new Re(Z));let ce=this.evaluate(k.call.callee,Q);if(ce.type!=="FunctionValue")throw new Error(`Cannot call something that is not a function: got ${ce.type}`);let xe=new pt(Q);return xe.setVariable("caller",N),ce.value(K,xe)}evaluateFilterStatement(k,Q){let N=this.evaluateBlock(k.body,Q);return this.applyFilter(N,k.filter,Q)}evaluate(k,Q){if(!k)return new je;switch(k.type){case"Program":return this.evalProgram(k,Q);case"Set":return this.evaluateSet(k,Q);case"If":return this.evaluateIf(k,Q);case"For":return this.evaluateFor(k,Q);case"Macro":return this.evaluateMacro(k,Q);case"CallStatement":return this.evaluateCallStatement(k,Q);case"Break":throw new be;case"Continue":throw new Ae;case"IntegerLiteral":return new pe(k.value);case"FloatLiteral":return new Pe(k.value);case"StringLiteral":return new fe(k.value);case"ArrayLiteral":return new Ne(k.value.map(N=>this.evaluate(N,Q)));case"TupleLiteral":return new ot(k.value.map(N=>this.evaluate(N,Q)));case"ObjectLiteral":{let N=new Map;for(let[K,Z]of k.value){let ce=this.evaluate(K,Q);if(!(ce instanceof fe))throw new Error(`Object keys must be strings: got ${ce.type}`);N.set(ce.value,this.evaluate(Z,Q))}return new $e(N)}case"Identifier":return this.evaluateIdentifier(k,Q);case"CallExpression":return this.evaluateCallExpression(k,Q);case"MemberExpression":return this.evaluateMemberExpression(k,Q);case"UnaryExpression":return this.evaluateUnaryExpression(k,Q);case"BinaryExpression":return this.evaluateBinaryExpression(k,Q);case"FilterExpression":return this.evaluateFilterExpression(k,Q);case"FilterStatement":return this.evaluateFilterStatement(k,Q);case"TestExpression":return this.evaluateTestExpression(k,Q);case"SelectExpression":return this.evaluateSelectExpression(k,Q);case"Ternary":return this.evaluateTernaryExpression(k,Q);case"Comment":return new Qe;default:throw new SyntaxError(`Unknown node type: ${k.type}`)}}};function fr(k){switch(typeof k){case"number":return Number.isInteger(k)?new pe(k):new Pe(k);case"string":return new fe(k);case"boolean":return new Te(k);case"undefined":return new je;case"object":return k===null?new Qe:Array.isArray(k)?new Ne(k.map(fr)):new $e(new Map(Object.entries(k).map(([Q,N])=>[Q,fr(N)])));case"function":return new De((Q,N)=>{let K=k(...Q.map(Z=>Z.value))??null;return fr(K)});default:throw new Error(`Cannot convert to runtime value: ${k}`)}}var zt=`
2836
2836
  `,yr="{%- ",zs=" -%}";function Ys(k){switch(k.operator.type){case"MultiplicativeBinaryOperator":return 4;case"AdditiveBinaryOperator":return 3;case"ComparisonBinaryOperator":return 2;case"Identifier":return k.operator.value==="and"?1:k.operator.value==="in"||k.operator.value==="not in"?2:0}return 0}function Zs(k,Q=" "){let N=typeof Q=="number"?" ".repeat(Q):Q;return Dr(k.body,0,N).replace(/\n$/,"")}function or(...k){return yr+k.join(" ")+zs}function Dr(k,Q,N){return k.map(K=>Yr(K,Q,N)).join(zt)}function Yr(k,Q,N){let K=N.repeat(Q);switch(k.type){case"Program":return Dr(k.body,Q,N);case"If":return Rs(k,Q,N);case"For":return ft(k,Q,N);case"Set":return Cs(k,Q,N);case"Macro":return qt(k,Q,N);case"Break":return K+or("break");case"Continue":return K+or("continue");case"CallStatement":return Ss(k,Q,N);case"FilterStatement":return Qr(k,Q,N);case"Comment":return K+"{# "+k.value+" #}";default:return K+"{{- "+St(k)+" -}}"}}function Rs(k,Q,N){let K=N.repeat(Q),Z=[],ce=k;for(;ce&&(Z.push({test:ce.test,body:ce.body}),ce.alternate.length===1&&ce.alternate[0].type==="If");)ce=ce.alternate[0];let xe=K+or("if",St(Z[0].test))+zt+Dr(Z[0].body,Q+1,N);for(let et=1;et<Z.length;++et)xe+=zt+K+or("elif",St(Z[et].test))+zt+Dr(Z[et].body,Q+1,N);return ce&&ce.alternate.length>0&&(xe+=zt+K+or("else")+zt+Dr(ce.alternate,Q+1,N)),xe+=zt+K+or("endif"),xe}function ft(k,Q,N){let K=N.repeat(Q),Z="";if(k.iterable.type==="SelectExpression"){let xe=k.iterable;Z=`${St(xe.lhs)} if ${St(xe.test)}`}else Z=St(k.iterable);let ce=K+or("for",St(k.loopvar),"in",Z)+zt+Dr(k.body,Q+1,N);return k.defaultBlock.length>0&&(ce+=zt+K+or("else")+zt+Dr(k.defaultBlock,Q+1,N)),ce+=zt+K+or("endfor"),ce}function Cs(k,Q,N){let K=N.repeat(Q),Z=St(k.assignee),ce=k.value?St(k.value):"",xe=K+or("set",`${Z}${k.value?" = "+ce:""}`);return k.body.length===0?xe:xe+zt+Dr(k.body,Q+1,N)+zt+K+or("endset")}function qt(k,Q,N){let K=N.repeat(Q),Z=k.args.map(St).join(", ");return K+or("macro",`${k.name.value}(${Z})`)+zt+Dr(k.body,Q+1,N)+zt+K+or("endmacro")}function Ss(k,Q,N){let K=N.repeat(Q),Z=k.callerArgs&&k.callerArgs.length>0?`(${k.callerArgs.map(St).join(", ")})`:"",ce=St(k.call),xe=K+or(`call${Z}`,ce)+zt;return xe+=Dr(k.body,Q+1,N)+zt,xe+=K+or("endcall"),xe}function Qr(k,Q,N){let K=N.repeat(Q),Z=k.filter.type==="Identifier"?k.filter.value:St(k.filter),ce=K+or("filter",Z)+zt;return ce+=Dr(k.body,Q+1,N)+zt,ce+=K+or("endfilter"),ce}function St(k,Q=-1){switch(k.type){case"SpreadExpression":return`*${St(k.argument)}`;case"Identifier":return k.value;case"IntegerLiteral":return`${k.value}`;case"FloatLiteral":return`${k.value}`;case"StringLiteral":return JSON.stringify(k.value);case"BinaryExpression":{let N=k,K=Ys(N),Z=St(N.left,K),ce=St(N.right,K+1),xe=`${Z} ${N.operator.value} ${ce}`;return K<Q?`(${xe})`:xe}case"UnaryExpression":{let N=k;return N.operator.value+(N.operator.value==="not"?" ":"")+St(N.argument,1/0)}case"CallExpression":{let N=k,K=N.args.map(St).join(", ");return`${St(N.callee)}(${K})`}case"MemberExpression":{let N=k,K=St(N.object);["Identifier","MemberExpression","CallExpression","StringLiteral","IntegerLiteral","FloatLiteral","ArrayLiteral","TupleLiteral","ObjectLiteral"].includes(N.object.type)||(K=`(${K})`);let Z=St(N.property);return!N.computed&&N.property.type!=="Identifier"&&(Z=`(${Z})`),N.computed?`${K}[${Z}]`:`${K}.${Z}`}case"FilterExpression":{let N=k,K=St(N.operand,1/0);return N.filter.type==="CallExpression"?`${K} | ${St(N.filter)}`:`${K} | ${N.filter.value}`}case"SelectExpression":{let N=k;return`${St(N.lhs)} if ${St(N.test)}`}case"TestExpression":{let N=k;return`${St(N.operand)} is${N.negate?" not":""} ${N.test.value}`}case"ArrayLiteral":case"TupleLiteral":{let N=k.value.map(St),K=k.type==="ArrayLiteral"?"[]":"()";return`${K[0]}${N.join(", ")}${K[1]}`}case"ObjectLiteral":return`{${Array.from(k.value.entries()).map(([K,Z])=>`${St(K)}: ${St(Z)}`).join(", ")}}`;case"SliceExpression":{let N=k,K=N.start?St(N.start):"",Z=N.stop?St(N.stop):"",ce=N.step?`:${St(N.step)}`:"";return`${K}:${Z}${ce}`}case"KeywordArgumentExpression":{let N=k;return`${N.key.value}=${St(N.value)}`}case"Ternary":{let N=k,K=`${St(N.trueExpr)} if ${St(N.condition,0)} else ${St(N.falseExpr)}`;return Q>-1?`(${K})`:K}default:throw new Error(`Unknown expression type: ${k.type}`)}}var Xr=class{parsed;constructor(k){let Q=u(k,{lstrip_blocks:!0,trim_blocks:!0});this.parsed=ke(Q)}render(k){let Q=new pt;if(Ke(Q),k)for(let[Z,ce]of Object.entries(k))Q.set(Z,ce);return new Lt(Q).run(this.parsed).value}format(k){return Zs(this.parsed,k?.indent||" ")}}}),"./src/backends/onnx.js":((e,r,t)=>{var s;t.r(r),t.d(r,{Tensor:()=>i.Tensor,createInferenceSession:()=>F,deviceToExecutionProviders:()=>h,isONNXProxy:()=>I,isONNXTensor:()=>y,runInferenceSession:()=>C});var o=t("./src/env.js"),a=t("?2ce3"),n=t("onnxruntime-web"),i=t("onnxruntime-common");let l=Object.freeze({auto:null,gpu:null,cpu:"cpu",wasm:"wasm",webgpu:"webgpu",cuda:"cuda",dml:"dml",webnn:{name:"webnn",deviceType:"cpu"},"webnn-npu":{name:"webnn",deviceType:"npu"},"webnn-gpu":{name:"webnn",deviceType:"gpu"},"webnn-cpu":{name:"webnn",deviceType:"cpu"}}),c=[],_,u,d=Symbol.for("onnxruntime");if(d in globalThis)u=globalThis[d];else if(o.apis.IS_NODE_ENV){switch(u=a??(s||(s=t.t(a,2))),process.platform){case"win32":c.push("dml");break;case"linux":process.arch==="x64"&&c.push("cuda");break;case"darwin":break}c.push("cpu"),_=["cpu"]}else u=n,o.apis.IS_WEBNN_AVAILABLE&&c.push("webnn-npu","webnn-gpu","webnn-cpu","webnn"),o.apis.IS_WEBGPU_AVAILABLE&&c.push("webgpu"),c.push("wasm"),_=["wasm"];let g=u.InferenceSession;function h(f=null){if(!f)return _;switch(f){case"auto":return c;case"gpu":return c.filter(E=>["webgpu","cuda","dml","webnn-gpu"].includes(E))}if(c.includes(f))return[l[f]??f];throw new Error(`Unsupported device: "${f}". Should be one of: ${c.join(", ")}.`)}let x=null;async function F(f,E,D){x&&await x;let O=g.create(f,E);x??=O;let U=await O;return U.config=D,U}let v=Promise.resolve(),b=o.apis.IS_BROWSER_ENV||o.apis.IS_WEBWORKER_ENV;async function C(f,E){let D=()=>f.run(E);return await(b?v=v.then(D):D())}function y(f){return f instanceof u.Tensor}let P=u?.env;P?.wasm&&(!(typeof ServiceWorkerGlobalScope<"u"&&self instanceof ServiceWorkerGlobalScope)&&!P.wasm.wasmPaths&&(P.wasm.wasmPaths=`https://cdn.jsdelivr.net/npm/@huggingface/transformers@${o.env.version}/dist/`),P.wasm.proxy=!1),P?.webgpu&&(P.webgpu.powerPreference="high-performance");function I(){return P?.wasm?.proxy}o.env.backends.onnx=P}),"./src/base/feature_extraction_utils.js":((e,r,t)=>{t.r(r),t.d(r,{FeatureExtractor:()=>n,validate_audio_inputs:()=>i});var s=t("./src/utils/constants.js"),o=t("./src/utils/generic.js"),a=t("./src/utils/hub.js");class n extends o.Callable{constructor(c){super(),this.config=c}static async from_pretrained(c,_={}){let u=await(0,a.getModelJSON)(c,s.FEATURE_EXTRACTOR_NAME,!0,_);return new this(u)}}function i(l,c){if(!(l instanceof Float32Array||l instanceof Float64Array))throw new Error(`${c} expects input to be a Float32Array or a Float64Array, but got ${l?.constructor?.name??typeof l} instead. If using the feature extractor directly, remember to use \`read_audio(url, sampling_rate)\` to obtain the raw audio data of the file/url.`)}}),"./src/base/image_processors_utils.js":((e,r,t)=>{t.r(r),t.d(r,{ImageProcessor:()=>P,center_to_corners_format:()=>d,post_process_instance_segmentation:()=>y,post_process_object_detection:()=>g,post_process_panoptic_segmentation:()=>C,post_process_semantic_segmentation:()=>h});var s=t("./src/utils/generic.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/maths.js"),n=t("./src/utils/image.js"),i=t("./src/utils/core.js"),l=t("./src/utils/hub.js"),c=t("./src/utils/constants.js");function _(I,f,E=0,D=null){let O=I/f,U=(0,a.bankers_round)(O)*f;return D!==null&&U>D&&(U=Math.floor(O)*f),U<E&&(U=Math.ceil(O)*f),U}function u([I,f],E){return[Math.max(Math.floor(I/E),1)*E,Math.max(Math.floor(f/E),1)*E]}function d([I,f,E,D]){return[I-E/2,f-D/2,I+E/2,f+D/2]}function g(I,f=.5,E=null,D=!1){let O=I.logits,U=I.pred_boxes,[W,z,X]=O.dims;if(E!==null&&E.length!==W)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");let J=[];for(let q=0;q<W;++q){let re=E!==null?E[q]:null,oe={boxes:[],classes:[],scores:[]},ne=O[q],ye=U[q];for(let Y=0;Y<z;++Y){let H=ne[Y],R=[],L;if(D){L=H.sigmoid().data;for(let ee=0;ee<L.length;++ee)L[ee]>f&&R.push(ee)}else{let ee=(0,a.max)(H.data)[1];if(ee===X-1||(L=(0,a.softmax)(H.data),L[ee]<f))continue;R.push(ee)}for(let ee of R){let ue=ye[Y].data;ue=d(ue),re!==null&&(ue=ue.map((ke,Ie)=>ke*re[(Ie+1)%2])),oe.boxes.push(ue),oe.classes.push(ee),oe.scores.push(L[ee])}}J.push(oe)}return J}function h(I,f=null){let E=I.logits,D=E.dims[0];if(f!==null&&f.length!==D)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");let O=[];for(let U=0;U<D;++U){let W=f!==null?f[U]:null,z=E[U];W!==null&&(z=(0,o.interpolate)(z,W,"bilinear",!1));let[X,J]=W??z.dims.slice(-2),q=new o.Tensor("int32",new Int32Array(X*J),[X,J]),re=z[0].data,oe=q.data;for(let Y=1;Y<z.dims[0];++Y){let H=z[Y].data;for(let R=0;R<H.length;++R)H[R]>re[R]&&(re[R]=H[R],oe[R]=Y)}let ne=new Array(z.dims[0]);for(let Y=0;Y<oe.length;++Y){let H=oe[Y];ne[H]=H}let ye=ne.filter(Y=>Y!==void 0);O.push({segmentation:q,labels:ye})}return O}function x(I,f,E,D){let O=[],U=[],W=[];for(let z=0;z<I.dims[0];++z){let X=I[z],J=f[z],q=(0,a.max)(X.data)[1];if(q===D)continue;let oe=(0,a.softmax)(X.data)[q];oe>E&&(O.push(J),U.push(oe),W.push(q))}return[O,U,W]}function F(I,f,E,D=.5,O=.8){let U=[],W=0,z=0,X=f[E].data;for(let q=0;q<I.length;++q)I[q]===E&&(U.push(q),++W),X[q]>=D&&++z;let J=W>0&&z>0;return J&&(J=W/z>O),[J,U]}function v(I,f,E,D,O,U=null,W=null){let[z,X]=W??I[0].dims,J=new o.Tensor("int32",new Int32Array(z*X),[z,X]),q=[];if(W!==null)for(let Y=0;Y<I.length;++Y)I[Y]=(0,o.interpolate)(I[Y],W,"bilinear",!1);let re=new Int32Array(I[0].data.length),oe=new Float32Array(I[0].data.length);for(let Y=0;Y<I.length;++Y){let H=f[Y],R=I[Y].data;for(let L=0;L<R.length;++L)R[L]*=H,R[L]>oe[L]&&(re[L]=Y,oe[L]=R[L])}let ne=0,ye=J.data;for(let Y=0;Y<E.length;++Y){let H=E[Y],[R,L]=F(re,I,Y,D,O);if(R){++ne;for(let ee of L)ye[ee]=ne;q.push({id:ne,label_id:H,score:f[Y]})}}return[J,q]}function b(I,f,E=28,D=3136,O=784*1280){if(I<E||f<E)throw new Error(`height:${I} or width:${f} must be larger than factor:${E}`);if(Math.max(I,f)/Math.min(I,f)>200)throw new Error(`absolute aspect ratio must be smaller than 200, got ${Math.max(I,f)/Math.min(I,f)}`);let U=Math.round(I/E)*E,W=Math.round(f/E)*E;if(U*W>O){let z=Math.sqrt(I*f/O);U=Math.floor(I/z/E)*E,W=Math.floor(f/z/E)*E}else if(U*W<D){let z=Math.sqrt(D/(I*f));U=Math.ceil(I*z/E)*E,W=Math.ceil(f*z/E)*E}return[U,W]}function C(I,f=.5,E=.5,D=.8,O=null,U=null){O===null&&(console.warn("`label_ids_to_fuse` unset. No instance will be fused."),O=new Set);let W=I.class_queries_logits??I.logits,X=(I.masks_queries_logits??I.pred_masks).sigmoid(),[J,q,re]=W.dims;if(re-=1,U!==null&&U.length!==J)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");let oe=[];for(let ne=0;ne<J;++ne){let ye=U!==null?U[ne]:null,Y=W[ne],H=X[ne],[R,L,ee]=x(Y,H,f,re);if(ee.length===0){let[Ie,Le]=ye??H.dims.slice(-2),rt=new o.Tensor("int32",new Int32Array(Ie*Le).fill(-1),[Ie,Le]);oe.push({segmentation:rt,segments_info:[]});continue}let[ue,ke]=v(R,L,ee,E,D,O,ye);oe.push({segmentation:ue,segments_info:ke})}return oe}function y(I,f=.5,E=null){throw new Error("`post_process_instance_segmentation` is not yet implemented.")}class P extends s.Callable{constructor(f){super(),this.image_mean=f.image_mean??f.mean,this.image_std=f.image_std??f.std,this.resample=f.resample??2,this.do_rescale=f.do_rescale??!0,this.rescale_factor=f.rescale_factor??1/255,this.do_normalize=f.do_normalize,this.do_thumbnail=f.do_thumbnail,this.size=f.size??f.image_size,this.do_resize=f.do_resize??this.size!==void 0,this.size_divisibility=f.size_divisibility??f.size_divisor,this.do_center_crop=f.do_center_crop,this.crop_size=f.crop_size,this.do_convert_rgb=f.do_convert_rgb??!0,this.do_crop_margin=f.do_crop_margin,this.pad_size=f.pad_size,this.do_pad=f.do_pad,this.min_pixels=f.min_pixels,this.max_pixels=f.max_pixels,this.do_pad&&!this.pad_size&&this.size&&this.size.width!==void 0&&this.size.height!==void 0&&(this.pad_size=this.size),this.do_flip_channel_order=f.do_flip_channel_order??!1,this.config=f}async thumbnail(f,E,D=2){let O=f.height,U=f.width,W=E.height,z=E.width,X=Math.min(O,W),J=Math.min(U,z);return X===O&&J===U?f:(O>U?J=Math.floor(U*X/O):U>O&&(X=Math.floor(O*J/U)),await f.resize(J,X,{resample:D}))}async crop_margin(f,E=200){let D=f.clone().grayscale(),O=(0,a.min)(D.data)[0],W=(0,a.max)(D.data)[0]-O;if(W===0)return f;let z=E/255,X=D.width,J=D.height,q=0,re=0,oe=D.data;for(let ne=0;ne<D.height;++ne){let ye=ne*D.width;for(let Y=0;Y<D.width;++Y)(oe[ye+Y]-O)/W<z&&(X=Math.min(X,Y),J=Math.min(J,ne),q=Math.max(q,Y),re=Math.max(re,ne))}return f=await f.crop([X,J,q,re]),f}pad_image(f,E,D,{mode:O="constant",center:U=!1,constant_values:W=0}={}){let[z,X,J]=E,q,re;if(typeof D=="number"?(q=D,re=D):D==="square"?q=re=Math.max(z,X):(q=D.width,re=D.height),q!==X||re!==z){let oe=new Float32Array(q*re*J);if(Array.isArray(W))for(let Y=0;Y<oe.length;++Y)oe[Y]=W[Y%J];else W!==0&&oe.fill(W);let[ne,ye]=U?[Math.floor((q-X)/2),Math.floor((re-z)/2)]:[0,0];for(let Y=0;Y<z;++Y){let H=(Y+ye)*q,R=Y*X;for(let L=0;L<X;++L){let ee=(H+L+ne)*J,ue=(R+L)*J;for(let ke=0;ke<J;++ke)oe[ee+ke]=f[ue+ke]}}if(O==="symmetric"){if(U)throw new Error("`center` padding is not supported when `mode` is set to `symmetric`.");let Y=z-1,H=X-1;for(let R=0;R<re;++R){let L=R*q,ee=(0,i.calculateReflectOffset)(R,Y)*X;for(let ue=0;ue<q;++ue){if(R<z&&ue<X)continue;let ke=(L+ue)*J,Ie=(ee+(0,i.calculateReflectOffset)(ue,H))*J;for(let Le=0;Le<J;++Le)oe[ke+Le]=f[Ie+Le]}}}f=oe,E=[re,q,J]}return[f,E]}rescale(f){for(let E=0;E<f.length;++E)f[E]=this.rescale_factor*f[E]}get_resize_output_image_size(f,E){let[D,O]=f.size,U,W;if(this.do_thumbnail){let{height:z,width:X}=E;U=Math.min(z,X)}else Number.isInteger(E)?(U=E,W=this.config.max_size??U):E!==void 0&&(U=E.shortest_edge,W=E.longest_edge);if(U!==void 0||W!==void 0){let z=U===void 0?1:Math.max(U/D,U/O),X=D*z,J=O*z,q=W===void 0?1:Math.min(W/X,W/J),re=Math.floor(Number((X*q).toFixed(2))),oe=Math.floor(Number((J*q).toFixed(2)));return this.size_divisibility!==void 0&&([re,oe]=u([re,oe],this.size_divisibility)),[re,oe]}else if(E!==void 0&&E.width!==void 0&&E.height!==void 0){let z=E.width,X=E.height;if(this.config.keep_aspect_ratio&&this.config.ensure_multiple_of){let J=X/O,q=z/D;Math.abs(1-q)<Math.abs(1-J)?J=q:q=J,X=_(J*O,this.config.ensure_multiple_of),z=_(q*D,this.config.ensure_multiple_of)}return[z,X]}else{if(this.size_divisibility!==void 0)return u([D,O],this.size_divisibility);if(this.min_pixels!==void 0&&this.max_pixels!==void 0){let z=this.config.patch_size*this.config.merge_size;return b(O,D,z,this.min_pixels,this.max_pixels)}else throw new Error(`Could not resize image due to unsupported \`this.size\` option in config: ${JSON.stringify(E)}`)}}async resize(f){let[E,D]=this.get_resize_output_image_size(f,this.size);return await f.resize(E,D,{resample:this.resample})}async preprocess(f,{do_normalize:E=null,do_pad:D=null,do_convert_rgb:O=null,do_convert_grayscale:U=null,do_flip_channel_order:W=null}={}){this.do_crop_margin&&(f=await this.crop_margin(f));let[z,X]=f.size;if(O??this.do_convert_rgb?f=f.rgb():U&&(f=f.grayscale()),this.do_resize&&(f=await this.resize(f)),this.do_thumbnail&&(f=await this.thumbnail(f,this.size,this.resample)),this.do_center_crop){let ne,ye;Number.isInteger(this.crop_size)?(ne=this.crop_size,ye=this.crop_size):(ne=this.crop_size.width,ye=this.crop_size.height),f=await f.center_crop(ne,ye)}let J=[f.height,f.width],q=Float32Array.from(f.data),re=[f.height,f.width,f.channels];if(this.do_rescale&&this.rescale(q),E??this.do_normalize){let ne=this.image_mean;Array.isArray(this.image_mean)||(ne=new Array(f.channels).fill(ne));let ye=this.image_std;if(Array.isArray(this.image_std)||(ye=new Array(f.channels).fill(ye)),ne.length!==f.channels||ye.length!==f.channels)throw new Error(`When set to arrays, the length of \`image_mean\` (${ne.length}) and \`image_std\` (${ye.length}) must match the number of channels in the image (${f.channels}).`);for(let Y=0;Y<q.length;Y+=f.channels)for(let H=0;H<f.channels;++H)q[Y+H]=(q[Y+H]-ne[H])/ye[H]}if(D??this.do_pad){if(this.pad_size)[q,re]=this.pad_image(q,[f.height,f.width,f.channels],this.pad_size);else if(this.size_divisibility){let[ne,ye]=u([re[1],re[0]],this.size_divisibility);[q,re]=this.pad_image(q,re,{width:ne,height:ye})}}if(W??this.do_flip_channel_order){if(re[2]!==3)throw new Error("Flipping channel order is only supported for RGB images.");for(let ne=0;ne<q.length;ne+=3){let ye=q[ne];q[ne]=q[ne+2],q[ne+2]=ye}}let oe=new o.Tensor("float32",q,re).permute(2,0,1);return{original_size:[X,z],reshaped_input_size:J,pixel_values:oe}}async _call(f,...E){Array.isArray(f)||(f=[f]);let D=await Promise.all(f.map(U=>this.preprocess(U)));return{pixel_values:(0,o.stack)(D.map(U=>U.pixel_values),0),original_sizes:D.map(U=>U.original_size),reshaped_input_sizes:D.map(U=>U.reshaped_input_size)}}static async from_pretrained(f,E={}){let D=await(0,l.getModelJSON)(f,c.IMAGE_PROCESSOR_NAME,!0,E);return new this(D)}}}),"./src/base/processing_utils.js":((e,r,t)=>{t.r(r),t.d(r,{Processor:()=>n});var s=t("./src/utils/constants.js"),o=t("./src/utils/generic.js"),a=t("./src/utils/hub.js");class n extends o.Callable{static classes=["image_processor_class","tokenizer_class","feature_extractor_class"];static uses_processor_config=!1;static uses_chat_template_file=!1;constructor(l,c,_){super(),this.config=l,this.components=c,this.chat_template=_}get image_processor(){return this.components.image_processor}get tokenizer(){return this.components.tokenizer}get feature_extractor(){return this.components.feature_extractor}apply_chat_template(l,c={}){if(!this.tokenizer)throw new Error("Unable to apply chat template without a tokenizer.");return this.tokenizer.apply_chat_template(l,{tokenize:!1,chat_template:this.chat_template??void 0,...c})}batch_decode(...l){if(!this.tokenizer)throw new Error("Unable to decode without a tokenizer.");return this.tokenizer.batch_decode(...l)}decode(...l){if(!this.tokenizer)throw new Error("Unable to decode without a tokenizer.");return this.tokenizer.decode(...l)}async _call(l,...c){for(let _ of[this.image_processor,this.feature_extractor,this.tokenizer])if(_)return _(l,...c);throw new Error("No image processor, feature extractor, or tokenizer found.")}static async from_pretrained(l,c={}){let[_,u,d]=await Promise.all([this.uses_processor_config?(0,a.getModelJSON)(l,s.PROCESSOR_NAME,!0,c):{},Promise.all(this.classes.filter(g=>g in this).map(async g=>{let h=await this[g].from_pretrained(l,c);return[g.replace(/_class$/,""),h]})).then(Object.fromEntries),this.uses_chat_template_file?(0,a.getModelText)(l,s.CHAT_TEMPLATE_NAME,!0,c):null]);return new this(_,u,d)}}}),"./src/configs.js":((e,r,t)=>{t.r(r),t.d(r,{AutoConfig:()=>_,PretrainedConfig:()=>c,getCacheShapes:()=>i});var s=t("./src/utils/core.js"),o=t("./src/utils/hub.js");async function a(u,d){return await(0,o.getModelJSON)(u,"config.json",!0,d)}function n(u){let d={},g={};switch(u.model_type){case"llava":case"paligemma":case"gemma3":case"florence2":case"llava_onevision":case"idefics3":case"ultravox":case"voxtral":case"smolvlm":case"gemma3n":case"mistral3":g=n(u.text_config);break;case"moondream1":g=n(u.phi_config);break;case"musicgen":g=n(u.decoder);break;case"multi_modality":g=n(u.language_config);break;case"gpt2":case"gptj":case"jais":case"codegen":case"gpt_bigcode":d.num_heads="n_head",d.num_layers="n_layer",d.hidden_size="n_embd";break;case"gpt_neox":case"stablelm":case"opt":case"falcon":case"modernbert-decoder":d.num_heads="num_attention_heads",d.num_layers="num_hidden_layers",d.hidden_size="hidden_size";break;case"llama":case"llama4_text":case"nanochat":case"arcee":case"lfm2":case"smollm3":case"olmo":case"olmo2":case"mobilellm":case"granite":case"granitemoehybrid":case"cohere":case"mistral":case"starcoder2":case"qwen2":case"qwen2_vl":case"phi":case"phi3":case"phi3_v":case"llava_qwen2":d.num_heads="num_key_value_heads",d.num_layers="num_hidden_layers",d.hidden_size="hidden_size",d.num_attention_heads="num_attention_heads",d.dim_kv="head_dim";break;case"qwen3":case"gemma":case"gemma2":case"vaultgemma":case"gemma3_text":case"gemma3n_text":case"glm":case"helium":case"ernie4_5":case"ministral":case"ministral3":d.num_heads="num_key_value_heads",d.num_layers="num_hidden_layers",d.dim_kv="head_dim";break;case"openelm":d.num_heads="num_kv_heads",d.num_layers="num_transformer_layers",d.dim_kv="head_dim";break;case"gpt_neo":case"donut-swin":d.num_heads="num_heads",d.num_layers="num_layers",d.hidden_size="hidden_size";break;case"bloom":d.num_heads="n_head",d.num_layers="n_layer",d.hidden_size="hidden_size";break;case"mpt":d.num_heads="n_heads",d.num_layers="n_layers",d.hidden_size="d_model";break;case"exaone":d.num_heads="num_key_value_heads",d.num_layers="num_layers",d.dim_kv="head_dim",d.num_attention_heads="num_attention_heads";break;case"t5":case"mt5":case"longt5":d.num_decoder_layers="num_decoder_layers",d.num_decoder_heads="num_heads",d.decoder_dim_kv="d_kv",d.num_encoder_layers="num_layers",d.num_encoder_heads="num_heads",d.encoder_dim_kv="d_kv";break;case"bart":case"mbart":case"marian":case"whisper":case"lite-whisper":case"m2m_100":case"blenderbot":case"blenderbot-small":case"florence2_language":d.num_decoder_layers="decoder_layers",d.num_decoder_heads="decoder_attention_heads",d.decoder_hidden_size="d_model",d.num_encoder_layers="encoder_layers",d.num_encoder_heads="encoder_attention_heads",d.encoder_hidden_size="d_model";break;case"speecht5":d.num_decoder_layers="decoder_layers",d.num_decoder_heads="decoder_attention_heads",d.decoder_hidden_size="hidden_size",d.num_encoder_layers="encoder_layers",d.num_encoder_heads="encoder_attention_heads",d.encoder_hidden_size="hidden_size";break;case"trocr":d.num_encoder_layers=d.num_decoder_layers="decoder_layers",d.num_encoder_heads=d.num_decoder_heads="decoder_attention_heads",d.encoder_hidden_size=d.decoder_hidden_size="d_model";break;case"musicgen_decoder":d.num_encoder_layers=d.num_decoder_layers="num_hidden_layers",d.num_encoder_heads=d.num_decoder_heads="num_attention_heads",d.encoder_hidden_size=d.decoder_hidden_size="hidden_size";break;case"moonshine":d.num_decoder_layers="decoder_num_hidden_layers",d.num_decoder_heads="decoder_num_key_value_heads",d.num_encoder_layers="encoder_num_hidden_layers",d.num_encoder_heads="encoder_num_key_value_heads",d.encoder_hidden_size=d.decoder_hidden_size="hidden_size";break;case"vision-encoder-decoder":let x=n(u.decoder),F="num_decoder_layers"in x,v=(0,s.pick)(u,["model_type","is_encoder_decoder"]);return F?(v.num_decoder_layers=x.num_decoder_layers,v.num_decoder_heads=x.num_decoder_heads,v.decoder_hidden_size=x.decoder_hidden_size,v.num_encoder_layers=x.num_encoder_layers,v.num_encoder_heads=x.num_encoder_heads,v.encoder_hidden_size=x.encoder_hidden_size):(v.num_layers=x.num_layers,v.num_heads=x.num_heads,v.hidden_size=x.hidden_size),v}let h={...g,...(0,s.pick)(u,["model_type","multi_query","is_encoder_decoder"])};for(let x in d)h[x]=u[d[x]];return h}function i(u,d){if(u.model_type==="lfm2"){let g=d?.prefix??"past_key_values",h=g==="present"?"present":"past",x={},{layer_types:F,num_attention_heads:v,num_key_value_heads:b,hidden_size:C,conv_L_cache:y}=u,P=C/v,I=d?.batch_size??1;for(let f=0;f<F.length;++f)if(F[f]==="full_attention")for(let E of["key","value"])x[`${g}.${f}.${E}`]=[I,b,0,P];else if(F[f]==="conv")x[`${h}_conv.${f}`]=[I,C,y];else throw new Error(`Unsupported layer type: ${F[f]}`);return x}return l(u,d)}function l(u,{prefix:d="past_key_values",batch_size:g=1}={}){let h={},x=u.normalized_config;if(x.is_encoder_decoder&&"num_encoder_heads"in x&&"num_decoder_heads"in x){let F=x.encoder_dim_kv??x.encoder_hidden_size/x.num_encoder_heads,v=x.decoder_dim_kv??x.decoder_hidden_size/x.num_decoder_heads,b=[g,x.num_encoder_heads,0,F],C=[g,x.num_decoder_heads,0,v];for(let y=0;y<x.num_decoder_layers;++y)h[`${d}.${y}.encoder.key`]=b,h[`${d}.${y}.encoder.value`]=b,h[`${d}.${y}.decoder.key`]=C,h[`${d}.${y}.decoder.value`]=C}else{let F=x.num_heads,v=x.num_layers,b=x.dim_kv??x.hidden_size/(x.num_attention_heads??F);if(x.model_type==="falcon"){let C=[g*F,0,b];for(let y=0;y<v;++y)h[`${d}.${y}.key`]=C,h[`${d}.${y}.value`]=C}else if(x.multi_query){let C=[g*F,0,2*b];for(let y=0;y<v;++y)h[`${d}.${y}.key_value`]=C}else if(x.model_type==="bloom"){let C=[g*F,b,0],y=[g*F,0,b];for(let P=0;P<v;++P)h[`${d}.${P}.key`]=C,h[`${d}.${P}.value`]=y}else if(x.model_type==="openelm")for(let C=0;C<v;++C){let y=[g,F[C],0,b];h[`${d}.${C}.key`]=y,h[`${d}.${C}.value`]=y}else{let C=[g,F,0,b];for(let y=0;y<v;++y)h[`${d}.${y}.key`]=C,h[`${d}.${y}.value`]=C}}return h}class c{model_type=null;is_encoder_decoder=!1;max_position_embeddings;"transformers.js_config";constructor(d){Object.assign(this,d),this.normalized_config=n(this)}static async from_pretrained(d,{progress_callback:g=null,config:h=null,cache_dir:x=null,local_files_only:F=!1,revision:v="main"}={}){h&&!(h instanceof c)&&(h=new c(h));let b=h??await a(d,{progress_callback:g,config:h,cache_dir:x,local_files_only:F,revision:v});return new this(b)}}class _{static async from_pretrained(...d){return c.from_pretrained(...d)}}}),"./src/env.js":((e,r,t)=>{t.r(r),t.d(r,{apis:()=>b,env:()=>E});var s=t("?db59"),o=t("?383f"),a=t("?fa4b");let n="3.8.1",i=typeof window<"u"&&typeof window.document<"u",l=typeof self<"u"&&["DedicatedWorkerGlobalScope","ServiceWorkerGlobalScope","SharedWorkerGlobalScope"].includes(self.constructor?.name),c=typeof self<"u"&&"caches"in self,_=typeof navigator<"u"&&"gpu"in navigator,u=typeof navigator<"u"&&"ml"in navigator,d=typeof process<"u",g=d&&process?.release?.name==="node",h=!D(s),x=!D(o),F=typeof globalThis.Deno<"u",v=typeof globalThis.Bun<"u",b=Object.freeze({IS_BROWSER_ENV:i,IS_WEBWORKER_ENV:l,IS_WEB_CACHE_AVAILABLE:c,IS_WEBGPU_AVAILABLE:_,IS_WEBNN_AVAILABLE:u,IS_PROCESS_AVAILABLE:d,IS_NODE_ENV:g,IS_FS_AVAILABLE:h,IS_PATH_AVAILABLE:x}),C=h&&x,y="./";if(C){let O=Object(import.meta).url;O?y=o.dirname(o.dirname(a.fileURLToPath(O))):typeof __dirname<"u"&&(y=o.dirname(__dirname))}let P=C?o.join(y,"/.cache/"):null,I="/models/",f=C?o.join(y,I):I,E={version:n,backends:{onnx:{}},allowRemoteModels:!0,remoteHost:"https://huggingface.co/",remotePathTemplate:"{model}/resolve/{revision}/",allowLocalModels:!(i||l),localModelPath:f,useFS:h,useBrowserCache:c&&!F,useFSCache:h,cacheDir:P,useCustomCache:!1,customCache:null};function D(O){return Object.keys(O).length===0}}),"./src/generation/configuration_utils.js":((e,r,t)=>{t.r(r),t.d(r,{GenerationConfig:()=>o});var s=t("./src/utils/core.js");class o{max_length=20;max_new_tokens=null;min_length=0;min_new_tokens=null;early_stopping=!1;max_time=null;do_sample=!1;num_beams=1;num_beam_groups=1;penalty_alpha=null;use_cache=!0;temperature=1;top_k=50;top_p=1;typical_p=1;epsilon_cutoff=0;eta_cutoff=0;diversity_penalty=0;repetition_penalty=1;encoder_repetition_penalty=1;length_penalty=1;no_repeat_ngram_size=0;bad_words_ids=null;force_words_ids=null;renormalize_logits=!1;constraints=null;forced_bos_token_id=null;forced_eos_token_id=null;remove_invalid_values=!1;exponential_decay_length_penalty=null;suppress_tokens=null;streamer=null;begin_suppress_tokens=null;forced_decoder_ids=null;guidance_scale=null;num_return_sequences=1;output_attentions=!1;output_hidden_states=!1;output_scores=!1;return_dict_in_generate=!1;pad_token_id=null;bos_token_id=null;eos_token_id=null;encoder_no_repeat_ngram_size=0;decoder_start_token_id=null;generation_kwargs={};constructor(n){Object.assign(this,(0,s.pick)(n,Object.getOwnPropertyNames(this)))}}}),"./src/generation/logits_process.js":((e,r,t)=>{t.r(r),t.d(r,{ClassifierFreeGuidanceLogitsProcessor:()=>b,ForcedBOSTokenLogitsProcessor:()=>c,ForcedEOSTokenLogitsProcessor:()=>_,LogitsProcessor:()=>n,LogitsProcessorList:()=>l,LogitsWarper:()=>i,MinLengthLogitsProcessor:()=>x,MinNewTokensLengthLogitsProcessor:()=>F,NoBadWordsLogitsProcessor:()=>v,NoRepeatNGramLogitsProcessor:()=>g,RepetitionPenaltyLogitsProcessor:()=>h,SuppressTokensAtBeginLogitsProcessor:()=>u,TemperatureLogitsWarper:()=>C,TopKLogitsWarper:()=>P,TopPLogitsWarper:()=>y,WhisperTimeStampLogitsProcessor:()=>d});var s=t("./src/utils/generic.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/maths.js");class n extends s.Callable{_call(f,E){throw Error("`_call` should be implemented in a subclass")}}class i extends s.Callable{_call(f,E){throw Error("`_call` should be implemented in a subclass")}}class l extends s.Callable{constructor(){super(),this.processors=[]}push(f){this.processors.push(f)}extend(f){this.processors.push(...f)}_call(f,E){let D=E;for(let O of this.processors)D=O(f,D);return D}[Symbol.iterator](){return this.processors.values()}}class c extends n{constructor(f){super(),this.bos_token_id=f}_call(f,E){for(let D=0;D<f.length;++D)if(f[D].length===1){let O=E[D].data;O.fill(-1/0),O[this.bos_token_id]=0}return E}}class _ extends n{constructor(f,E){super(),this.max_length=f,this.eos_token_id=Array.isArray(E)?E:[E]}_call(f,E){for(let D=0;D<f.length;++D)if(f[D].length===this.max_length-1){let O=E[D].data;O.fill(-1/0);for(let U of this.eos_token_id)O[U]=0}return E}}class u extends n{constructor(f,E){super(),this.begin_suppress_tokens=f,this.begin_index=E}_call(f,E){for(let D=0;D<f.length;++D)if(f[D].length===this.begin_index){let O=E[D].data;for(let U of this.begin_suppress_tokens)O[U]=-1/0}return E}}class d extends n{constructor(f,E){super(),this.eos_token_id=Array.isArray(f.eos_token_id)?f.eos_token_id[0]:f.eos_token_id,this.no_timestamps_token_id=f.no_timestamps_token_id,this.timestamp_begin=this.no_timestamps_token_id+1,this.begin_index=E.length,E.at(-1)===this.no_timestamps_token_id&&(this.begin_index-=1),this.max_initial_timestamp_index=f.max_initial_timestamp_index}_call(f,E){for(let D=0;D<f.length;++D){let O=E[D].data;if(O[this.no_timestamps_token_id]=-1/0,f[D].length===this.begin_index-1){O.fill(-1/0),O[this.timestamp_begin]=0;continue}let U=f[D].slice(this.begin_index),W=U.length>=1&&U[U.length-1]>=this.timestamp_begin,z=U.length<2||U[U.length-2]>=this.timestamp_begin;if(W&&(z?O.subarray(this.timestamp_begin).fill(-1/0):O.subarray(0,this.eos_token_id).fill(-1/0)),f[D].length===this.begin_index&&this.max_initial_timestamp_index!==null){let re=this.timestamp_begin+this.max_initial_timestamp_index;O.subarray(re+1).fill(-1/0)}let X=(0,a.log_softmax)(O),J=Math.log(X.subarray(this.timestamp_begin).map(Math.exp).reduce((re,oe)=>re+oe)),q=(0,a.max)(X.subarray(0,this.timestamp_begin))[0];J>q&&O.subarray(0,this.timestamp_begin).fill(-1/0)}return E}}class g extends n{constructor(f){super(),this.no_repeat_ngram_size=f}getNgrams(f){let E=f.length,D=[];for(let U=0;U<E+1-this.no_repeat_ngram_size;++U){let W=[];for(let z=0;z<this.no_repeat_ngram_size;++z)W.push(f[U+z]);D.push(W.map(Number))}let O=new Map;for(let U of D){let W=U.slice(0,U.length-1),z=JSON.stringify(W),X=O.get(z)??[];X.push(U[U.length-1]),O.set(z,X)}return O}getGeneratedNgrams(f,E){let D=E.slice(E.length+1-this.no_repeat_ngram_size,E.length);return f.get(JSON.stringify(D.map(Number)))??[]}calcBannedNgramTokens(f){let E=[];if(f.length+1<this.no_repeat_ngram_size)return E;{let D=this.getNgrams(f);return this.getGeneratedNgrams(D,f)}}_call(f,E){for(let D=0;D<f.length;++D){let O=E[D].data,U=this.calcBannedNgramTokens(f[D]);for(let W of U)O[W]=-1/0}return E}}class h extends n{constructor(f){super(),this.penalty=f}_call(f,E){for(let D=0;D<f.length;++D){let O=E[D].data;for(let U of new Set(f[D])){let W=Number(U);O[W]<0?O[W]*=this.penalty:O[W]/=this.penalty}}return E}}class x extends n{constructor(f,E){super(),this.min_length=f,this.eos_token_id=Array.isArray(E)?E:[E]}_call(f,E){for(let D=0;D<f.length;++D)if(f[D].length<this.min_length){let O=E[D].data;for(let U of this.eos_token_id)O[U]=-1/0}return E}}class F extends n{constructor(f,E,D){super(),this.prompt_length_to_skip=f,this.min_new_tokens=E,this.eos_token_id=Array.isArray(D)?D:[D]}_call(f,E){for(let D=0;D<f.length;++D)if(f[D].length-this.prompt_length_to_skip<this.min_new_tokens){let U=E[D].data;for(let W of this.eos_token_id)U[W]=-1/0}return E}}class v extends n{constructor(f,E){super(),this.bad_words_ids=f,this.eos_token_id=Array.isArray(E)?E:[E]}_call(f,E){for(let D=0;D<f.length;++D){let O=E[D].data,U=f[D];for(let W of this.bad_words_ids){if(U.length<W.length-1)continue;let z=!0;for(let X=1;X<=W.length-1;++X)if(W.at(-X-1)!=U.at(-X)){z=!1;break}z&&(O[W.at(-1)]=-1/0)}}return E}}class b extends n{constructor(f){if(super(),f<=1)throw new Error(`Require guidance scale >1 to use the classifier free guidance processor, got guidance scale ${f}.`);this.guidance_scale=f}_call(f,E){if(E.dims[0]!==2*f.length)throw new Error(`Logits should have twice the batch size of the input ids, the first half of batches corresponding to the conditional inputs, and the second half of batches corresponding to the unconditional inputs. Got batch size ${E.dims[0]} for the logits and ${f.length} for the input ids.`);let D=f.length,O=E.slice([0,D],null),U=E.slice([D,E.dims[0]],null);for(let W=0;W<U.data.length;++W)U.data[W]+=(O.data[W]-U.data[W])*this.guidance_scale;return U}}class C extends i{constructor(f){if(super(),typeof f!="number"||f<=0){let E=`\`temperature\` (=${f}) must be a strictly positive float, otherwise your next token scores will be invalid.`;f===0&&(E+=" If you're looking for greedy decoding strategies, set `do_sample=false`.")}this.temperature=f}_call(f,E){let D=E.data;for(let O=0;O<D.length;++O)D[O]/=this.temperature;return E}}class y extends i{constructor(f,{filter_value:E=-1/0,min_tokens_to_keep:D=1}={}){if(super(),f<0||f>1)throw new Error(`\`top_p\` must be a float > 0 and < 1, but is ${f}`);if(!Number.isInteger(D)||D<1)throw new Error(`\`min_tokens_to_keep\` must be a positive integer, but is ${D}`);this.top_p=f,this.filter_value=E,this.min_tokens_to_keep=D}}class P extends i{constructor(f,{filter_value:E=-1/0,min_tokens_to_keep:D=1}={}){if(super(),!Number.isInteger(f)||f<0)throw new Error(`\`top_k\` must be a positive integer, but is ${f}`);this.top_k=Math.max(f,D),this.filter_value=E}}}),"./src/generation/logits_sampler.js":((e,r,t)=>{t.r(r),t.d(r,{LogitsSampler:()=>i});var s=t("./src/utils/generic.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/maths.js"),n=t("./src/generation/configuration_utils.js");class i extends s.Callable{constructor(d){super(),this.generation_config=d}async _call(d){return this.sample(d)}async sample(d){throw Error("sample should be implemented in subclasses.")}getLogits(d,g){let h=d.dims.at(-1),x=d.data;if(g===-1)x=x.slice(-h);else{let F=g*h;x=x.slice(F,F+h)}return x}randomSelect(d){let g=0;for(let x=0;x<d.length;++x)g+=d[x];let h=Math.random()*g;for(let x=0;x<d.length;++x)if(h-=d[x],h<=0)return x;return 0}static getSampler(d){if(d.do_sample)return new c(d);if(d.num_beams>1)return new _(d);if(d.num_return_sequences>1)throw Error(`num_return_sequences has to be 1 when doing greedy search, but is ${d.num_return_sequences}.`);return new l(d)}}class l extends i{async sample(d){let g=(0,a.max)(d.data)[1];return[[BigInt(g),0]]}}class c extends i{async sample(d){let g=d.dims.at(-1);this.generation_config.top_k>0&&(g=Math.min(this.generation_config.top_k,g));let[h,x]=await(0,o.topk)(d,g),F=(0,a.softmax)(h.data);return Array.from({length:this.generation_config.num_beams},()=>{let v=this.randomSelect(F);return[x.data[v],Math.log(F[v])]})}}class _ extends i{async sample(d){let g=d.dims.at(-1);this.generation_config.top_k>0&&(g=Math.min(this.generation_config.top_k,g));let[h,x]=await(0,o.topk)(d,g),F=(0,a.softmax)(h.data);return Array.from({length:this.generation_config.num_beams},(v,b)=>[x.data[b],Math.log(F[b])])}}}),"./src/generation/stopping_criteria.js":((e,r,t)=>{t.r(r),t.d(r,{EosTokenCriteria:()=>i,InterruptableStoppingCriteria:()=>l,MaxLengthCriteria:()=>n,StoppingCriteria:()=>o,StoppingCriteriaList:()=>a});var s=t("./src/utils/generic.js");class o extends s.Callable{_call(_,u){throw Error("StoppingCriteria needs to be subclassed")}}class a extends s.Callable{constructor(){super(),this.criteria=[]}push(_){this.criteria.push(_)}extend(_){_ instanceof a?_=_.criteria:_ instanceof o&&(_=[_]),this.criteria.push(..._)}_call(_,u){let d=new Array(_.length).fill(!1);for(let g of this.criteria){let h=g(_,u);for(let x=0;x<d.length;++x)d[x]||=h[x]}return d}[Symbol.iterator](){return this.criteria.values()}}class n extends o{constructor(_,u=null){super(),this.max_length=_,this.max_position_embeddings=u}_call(_){return _.map(u=>u.length>=this.max_length)}}class i extends o{constructor(_){super(),Array.isArray(_)||(_=[_]),this.eos_token_id=_}_call(_,u){return _.map(d=>{let g=d.at(-1);return this.eos_token_id.some(h=>g==h)})}}class l extends o{constructor(){super(),this.interrupted=!1}interrupt(){this.interrupted=!0}reset(){this.interrupted=!1}_call(_,u){return new Array(_.length).fill(this.interrupted)}}}),"./src/generation/streamers.js":((e,r,t)=>{t.r(r),t.d(r,{BaseStreamer:()=>n,TextStreamer:()=>l,WhisperTextStreamer:()=>c});var s=t("./src/utils/core.js"),o=t("./src/tokenizers.js"),a=t("./src/env.js");class n{put(u){throw Error("Not implemented")}end(){throw Error("Not implemented")}}let i=a.apis.IS_PROCESS_AVAILABLE?_=>process.stdout.write(_):_=>console.log(_);class l extends n{constructor(u,{skip_prompt:d=!1,callback_function:g=null,token_callback_function:h=null,skip_special_tokens:x=!0,decode_kwargs:F={},...v}={}){super(),this.tokenizer=u,this.skip_prompt=d,this.callback_function=g??i,this.token_callback_function=h,this.decode_kwargs={skip_special_tokens:x,...F,...v},this.token_cache=[],this.print_len=0,this.next_tokens_are_prompt=!0}put(u){if(u.length>1)throw Error("TextStreamer only supports batch size of 1");let d=this.next_tokens_are_prompt;if(d&&(this.next_tokens_are_prompt=!1,this.skip_prompt))return;let g=u[0];this.token_callback_function?.(g),this.token_cache=(0,s.mergeArrays)(this.token_cache,g);let h=this.tokenizer.decode(this.token_cache,this.decode_kwargs),x;d||h.endsWith(`
2837
2837
  `)?(x=h.slice(this.print_len),this.token_cache=[],this.print_len=0):h.length>0&&(0,o.is_chinese_char)(h.charCodeAt(h.length-1))?(x=h.slice(this.print_len),this.print_len+=x.length):(x=h.slice(this.print_len,h.lastIndexOf(" ")+1),this.print_len+=x.length),this.on_finalized_text(x,!1)}end(){let u;this.token_cache.length>0?(u=this.tokenizer.decode(this.token_cache,this.decode_kwargs).slice(this.print_len),this.token_cache=[],this.print_len=0):u="",this.next_tokens_are_prompt=!0,this.on_finalized_text(u,!0)}on_finalized_text(u,d){u.length>0&&this.callback_function?.(u),d&&this.callback_function===i&&a.apis.IS_PROCESS_AVAILABLE&&this.callback_function?.(`
2838
- `)}}class c extends l{constructor(u,{skip_prompt:d=!1,callback_function:g=null,token_callback_function:h=null,on_chunk_start:x=null,on_chunk_end:F=null,on_finalize:v=null,time_precision:b=.02,skip_special_tokens:C=!0,decode_kwargs:y={}}={}){super(u,{skip_prompt:d,skip_special_tokens:C,callback_function:g,token_callback_function:h,decode_kwargs:y}),this.timestamp_begin=u.timestamp_begin,this.on_chunk_start=x,this.on_chunk_end=F,this.on_finalize=v,this.time_precision=b,this.waiting_for_timestamp=!1}put(u){if(u.length>1)throw Error("WhisperTextStreamer only supports batch size of 1");let d=u[0];if(d.length===1){let g=Number(d[0])-this.timestamp_begin;if(g>=0){let h=g*this.time_precision;this.waiting_for_timestamp?this.on_chunk_end?.(h):this.on_chunk_start?.(h),this.waiting_for_timestamp=!this.waiting_for_timestamp,this.token_callback_function?.(d);return}}return super.put(u)}end(){super.end(),this.on_finalize?.()}}}),"./src/models.js":((e,r,t)=>{t.r(r),t.d(r,{ASTForAudioClassification:()=>Cn,ASTModel:()=>kn,ASTPreTrainedModel:()=>Uo,AlbertForMaskedLM:()=>He,AlbertForQuestionAnswering:()=>Ze,AlbertForSequenceClassification:()=>Xe,AlbertModel:()=>Ye,AlbertPreTrainedModel:()=>Ce,ArceeForCausalLM:()=>Wn,ArceeModel:()=>Gs,ArceePreTrainedModel:()=>xr,AutoModel:()=>Q0,AutoModelForAudioClassification:()=>mT,AutoModelForAudioFrameClassification:()=>fT,AutoModelForAudioTextToText:()=>PT,AutoModelForCTC:()=>pT,AutoModelForCausalLM:()=>rT,AutoModelForDepthEstimation:()=>bT,AutoModelForDocumentQuestionAnswering:()=>gT,AutoModelForImageClassification:()=>nT,AutoModelForImageFeatureExtraction:()=>yT,AutoModelForImageMatting:()=>MT,AutoModelForImageSegmentation:()=>iT,AutoModelForImageTextToText:()=>TT,AutoModelForImageToImage:()=>wT,AutoModelForMaskGeneration:()=>_T,AutoModelForMaskedLM:()=>sT,AutoModelForNormalEstimation:()=>vT,AutoModelForObjectDetection:()=>dT,AutoModelForPoseEstimation:()=>xT,AutoModelForQuestionAnswering:()=>oT,AutoModelForSemanticSegmentation:()=>lT,AutoModelForSeq2SeqLM:()=>Y0,AutoModelForSequenceClassification:()=>X0,AutoModelForSpeechSeq2Seq:()=>Z0,AutoModelForTextToSpectrogram:()=>eT,AutoModelForTextToWaveform:()=>tT,AutoModelForTokenClassification:()=>J0,AutoModelForUniversalSegmentation:()=>cT,AutoModelForVision2Seq:()=>aT,AutoModelForXVector:()=>hT,AutoModelForZeroShotObjectDetection:()=>uT,BartForConditionalGeneration:()=>Yt,BartForSequenceClassification:()=>vr,BartModel:()=>Zr,BartPretrainedModel:()=>Pr,BaseModelOutput:()=>ge,BeitForImageClassification:()=>K_,BeitModel:()=>G_,BeitPreTrainedModel:()=>Al,BertForMaskedLM:()=>ve,BertForQuestionAnswering:()=>fe,BertForSequenceClassification:()=>pe,BertForTokenClassification:()=>Pe,BertModel:()=>Ae,BertPreTrainedModel:()=>be,BlenderbotForConditionalGeneration:()=>wr,BlenderbotModel:()=>pr,BlenderbotPreTrainedModel:()=>lr,BlenderbotSmallForConditionalGeneration:()=>Ws,BlenderbotSmallModel:()=>Kr,BlenderbotSmallPreTrainedModel:()=>er,BloomForCausalLM:()=>m_,BloomModel:()=>p_,BloomPreTrainedModel:()=>bl,CLIPModel:()=>qo,CLIPPreTrainedModel:()=>fs,CLIPSegForImageSegmentation:()=>fo,CLIPSegModel:()=>es,CLIPSegPreTrainedModel:()=>so,CLIPTextModel:()=>Rn,CLIPTextModelWithProjection:()=>Ea,CLIPVisionModel:()=>Nn,CLIPVisionModelWithProjection:()=>ka,CamembertForMaskedLM:()=>ce,CamembertForQuestionAnswering:()=>ut,CamembertForSequenceClassification:()=>xe,CamembertForTokenClassification:()=>et,CamembertModel:()=>Z,CamembertPreTrainedModel:()=>K,CausalLMOutput:()=>ao,CausalLMOutputWithPast:()=>kT,ChineseCLIPModel:()=>ho,ChineseCLIPPreTrainedModel:()=>Fa,ClapAudioModelWithProjection:()=>ch,ClapModel:()=>ih,ClapPreTrainedModel:()=>Jn,ClapTextModelWithProjection:()=>lh,CodeGenForCausalLM:()=>V,CodeGenModel:()=>B,CodeGenPreTrainedModel:()=>$,CohereForCausalLM:()=>Ku,CohereModel:()=>Gu,CoherePreTrainedModel:()=>dl,ConvBertForMaskedLM:()=>ft,ConvBertForQuestionAnswering:()=>Ss,ConvBertForSequenceClassification:()=>Cs,ConvBertForTokenClassification:()=>qt,ConvBertModel:()=>Rs,ConvBertPreTrainedModel:()=>Yr,ConvNextForImageClassification:()=>Np,ConvNextModel:()=>Rp,ConvNextPreTrainedModel:()=>Hl,ConvNextV2ForImageClassification:()=>Vp,ConvNextV2Model:()=>jp,ConvNextV2PreTrainedModel:()=>ql,DFineForObjectDetection:()=>ap,DFineModel:()=>op,DFinePreTrainedModel:()=>zl,DINOv3ConvNextModel:()=>Xp,DINOv3ConvNextPreTrainedModel:()=>Qp,DINOv3ViTModel:()=>qp,DINOv3ViTPreTrainedModel:()=>Hp,DPTForDepthEstimation:()=>vp,DPTModel:()=>bp,DPTPreTrainedModel:()=>Ul,DacDecoderModel:()=>Jh,DacDecoderOutput:()=>qh,DacEncoderModel:()=>Xh,DacEncoderOutput:()=>Hh,DacModel:()=>Qh,DacPreTrainedModel:()=>oi,DebertaForMaskedLM:()=>tt,DebertaForQuestionAnswering:()=>Qt,DebertaForSequenceClassification:()=>gt,DebertaForTokenClassification:()=>Nt,DebertaModel:()=>wt,DebertaPreTrainedModel:()=>qe,DebertaV2ForMaskedLM:()=>Cr,DebertaV2ForQuestionAnswering:()=>Fs,DebertaV2ForSequenceClassification:()=>Lr,DebertaV2ForTokenClassification:()=>_s,DebertaV2Model:()=>Or,DebertaV2PreTrainedModel:()=>ur,DecisionTransformerModel:()=>Fh,DecisionTransformerPreTrainedModel:()=>Sh,DeiTForImageClassification:()=>dp,DeiTModel:()=>cp,DeiTPreTrainedModel:()=>Nl,DepthAnythingForDepthEstimation:()=>yp,DepthAnythingPreTrainedModel:()=>xp,DepthProForDepthEstimation:()=>Cp,DepthProPreTrainedModel:()=>kp,DetrForObjectDetection:()=>q_,DetrForSegmentation:()=>$l,DetrModel:()=>H_,DetrObjectDetectionOutput:()=>Dl,DetrPreTrainedModel:()=>Un,DetrSegmentationOutput:()=>Q_,Dinov2ForImageClassification:()=>Up,Dinov2Model:()=>Wp,Dinov2PreTrainedModel:()=>Ql,Dinov2WithRegistersForImageClassification:()=>Kp,Dinov2WithRegistersModel:()=>Gp,Dinov2WithRegistersPreTrainedModel:()=>Xl,DistilBertForMaskedLM:()=>ar,DistilBertForQuestionAnswering:()=>Gr,DistilBertForSequenceClassification:()=>as,DistilBertForTokenClassification:()=>Nr,DistilBertModel:()=>Ns,DistilBertPreTrainedModel:()=>gr,DonutSwinModel:()=>zp,DonutSwinPreTrainedModel:()=>Bp,EdgeTamModel:()=>im,EfficientNetForImageClassification:()=>fh,EfficientNetModel:()=>hh,EfficientNetPreTrainedModel:()=>dc,ElectraForMaskedLM:()=>Xr,ElectraForQuestionAnswering:()=>N,ElectraForSequenceClassification:()=>k,ElectraForTokenClassification:()=>Q,ElectraModel:()=>St,ElectraPreTrainedModel:()=>Qr,Ernie4_5ForCausalLM:()=>rh,Ernie4_5Model:()=>th,Ernie4_5PreTrainedModel:()=>ac,EsmForMaskedLM:()=>Is,EsmForSequenceClassification:()=>As,EsmForTokenClassification:()=>$s,EsmModel:()=>ps,EsmPreTrainedModel:()=>_r,ExaoneForCausalLM:()=>Du,ExaoneModel:()=>$u,ExaonePreTrainedModel:()=>ol,FalconForCausalLM:()=>nh,FalconModel:()=>ah,FalconPreTrainedModel:()=>ic,FastViTForImageClassification:()=>D_,FastViTModel:()=>$_,FastViTPreTrainedModel:()=>kl,Florence2ForConditionalGeneration:()=>$n,Florence2PreTrainedModel:()=>An,GLPNForDepthEstimation:()=>Lp,GLPNModel:()=>Op,GLPNPreTrainedModel:()=>Kl,GPT2LMHeadModel:()=>Da,GPT2Model:()=>$a,GPT2PreTrainedModel:()=>go,GPTBigCodeForCausalLM:()=>T,GPTBigCodeModel:()=>m,GPTBigCodePreTrainedModel:()=>ta,GPTJForCausalLM:()=>Ra,GPTJModel:()=>za,GPTJPreTrainedModel:()=>ea,GPTNeoForCausalLM:()=>Mo,GPTNeoModel:()=>La,GPTNeoPreTrainedModel:()=>Yo,GPTNeoXForCausalLM:()=>Ba,GPTNeoXModel:()=>Zo,GPTNeoXPreTrainedModel:()=>wo,Gemma2ForCausalLM:()=>Xu,Gemma2Model:()=>Qu,Gemma2PreTrainedModel:()=>_l,Gemma3ForCausalLM:()=>e_,Gemma3Model:()=>Zu,Gemma3PreTrainedModel:()=>ml,Gemma3nForConditionalGeneration:()=>Ta,Gemma3nPreTrainedModel:()=>Bn,GemmaForCausalLM:()=>qu,GemmaModel:()=>Hu,GemmaPreTrainedModel:()=>ul,GlmForCausalLM:()=>Au,GlmModel:()=>Iu,GlmPreTrainedModel:()=>sl,GraniteForCausalLM:()=>Vu,GraniteModel:()=>ju,GraniteMoeHybridForCausalLM:()=>Uu,GraniteMoeHybridModel:()=>Wu,GraniteMoeHybridPreTrainedModel:()=>cl,GranitePreTrainedModel:()=>ll,GroundingDinoForObjectDetection:()=>Yp,GroundingDinoPreTrainedModel:()=>Jp,GroupViTModel:()=>A_,GroupViTPreTrainedModel:()=>I_,HeliumForCausalLM:()=>Fu,HeliumModel:()=>Su,HeliumPreTrainedModel:()=>rl,HieraForImageClassification:()=>_p,HieraModel:()=>up,HieraPreTrainedModel:()=>jl,HubertForCTC:()=>Dm,HubertForSequenceClassification:()=>Om,HubertModel:()=>$m,HubertPreTrainedModel:()=>L0,IJepaForImageClassification:()=>x_,IJepaModel:()=>v_,IJepaPreTrainedModel:()=>Tl,Idefics3ForConditionalGeneration:()=>hs,Idefics3PreTrainedModel:()=>mo,ImageMattingOutput:()=>Sf,JAISLMHeadModel:()=>Oa,JAISModel:()=>Jo,JAISPreTrainedModel:()=>Xo,JinaCLIPModel:()=>Vn,JinaCLIPPreTrainedModel:()=>ct,JinaCLIPTextModel:()=>Ia,JinaCLIPVisionModel:()=>Aa,Lfm2ForCausalLM:()=>Eu,Lfm2Model:()=>Pu,Lfm2PreTrainedModel:()=>el,LiteWhisperForConditionalGeneration:()=>Sn,Llama4ForCausalLM:()=>nt,Llama4PreTrainedModel:()=>Je,LlamaForCausalLM:()=>Be,LlamaModel:()=>Ee,LlamaPreTrainedModel:()=>ie,LlavaForConditionalGeneration:()=>ro,LlavaOnevisionForConditionalGeneration:()=>xa,LlavaPreTrainedModel:()=>va,LlavaQwen2ForCausalLM:()=>ya,LongT5ForConditionalGeneration:()=>Br,LongT5Model:()=>nr,LongT5PreTrainedModel:()=>Mr,M2M100ForConditionalGeneration:()=>_m,M2M100Model:()=>um,M2M100PreTrainedModel:()=>Zl,MBartForCausalLM:()=>is,MBartForConditionalGeneration:()=>ms,MBartForSequenceClassification:()=>Fr,MBartModel:()=>Jr,MBartPreTrainedModel:()=>Sr,MPNetForMaskedLM:()=>Ds,MPNetForQuestionAnswering:()=>de,MPNetForSequenceClassification:()=>Vs,MPNetForTokenClassification:()=>Wo,MPNetModel:()=>js,MPNetPreTrainedModel:()=>Ht,MT5ForConditionalGeneration:()=>zr,MT5Model:()=>Tr,MT5PreTrainedModel:()=>ir,MarianMTModel:()=>dm,MarianModel:()=>cm,MarianPreTrainedModel:()=>Yl,MaskFormerForInstanceSegmentation:()=>Dp,MaskFormerModel:()=>$p,MaskFormerPreTrainedModel:()=>Gl,MaskedLMOutput:()=>Ir,Metric3DForDepthEstimation:()=>Fp,Metric3DPreTrainedModel:()=>Sp,Metric3Dv2ForDepthEstimation:()=>Ap,Metric3Dv2PreTrainedModel:()=>Ip,MgpstrForSceneTextRecognition:()=>Oh,MgpstrModelOutput:()=>$h,MgpstrPreTrainedModel:()=>Dh,MimiDecoderModel:()=>Kh,MimiDecoderOutput:()=>Wh,MimiEncoderModel:()=>Gh,MimiEncoderOutput:()=>Vh,MimiModel:()=>Uh,MimiPreTrainedModel:()=>si,Ministral3ForCausalLM:()=>eh,Ministral3Model:()=>Zm,Ministral3PreTrainedModel:()=>oc,MinistralForCausalLM:()=>Ym,MinistralModel:()=>Jm,MinistralPreTrainedModel:()=>sc,Mistral3ForConditionalGeneration:()=>Ln,MistralForCausalLM:()=>Xm,MistralModel:()=>Qm,MistralPreTrainedModel:()=>rc,MobileBertForMaskedLM:()=>ze,MobileBertForQuestionAnswering:()=>at,MobileBertForSequenceClassification:()=>Ue,MobileBertModel:()=>Wr,MobileBertPreTrainedModel:()=>ns,MobileLLMForCausalLM:()=>Lu,MobileLLMModel:()=>Ou,MobileLLMPreTrainedModel:()=>al,MobileNetV1ForImageClassification:()=>Mh,MobileNetV1ForSemanticSegmentation:()=>wh,MobileNetV1Model:()=>gh,MobileNetV1PreTrainedModel:()=>Zn,MobileNetV2ForImageClassification:()=>vh,MobileNetV2ForSemanticSegmentation:()=>xh,MobileNetV2Model:()=>bh,MobileNetV2PreTrainedModel:()=>ei,MobileNetV3ForImageClassification:()=>Th,MobileNetV3ForSemanticSegmentation:()=>Ph,MobileNetV3Model:()=>yh,MobileNetV3PreTrainedModel:()=>ti,MobileNetV4ForImageClassification:()=>kh,MobileNetV4ForSemanticSegmentation:()=>Ch,MobileNetV4Model:()=>Eh,MobileNetV4PreTrainedModel:()=>ri,MobileViTForImageClassification:()=>z_,MobileViTModel:()=>B_,MobileViTPreTrainedModel:()=>Cl,MobileViTV2ForImageClassification:()=>N_,MobileViTV2Model:()=>R_,MobileViTV2PreTrainedModel:()=>Sl,ModelOutput:()=>le,ModernBertDecoderForCausalLM:()=>Lt,ModernBertDecoderModel:()=>At,ModernBertDecoderPreTrainedModel:()=>bt,ModernBertForMaskedLM:()=>je,ModernBertForSequenceClassification:()=>pt,ModernBertForTokenClassification:()=>Ke,ModernBertModel:()=>Qe,ModernBertPreTrainedModel:()=>De,Moondream1ForConditionalGeneration:()=>In,MoonshineForConditionalGeneration:()=>Fn,MoonshineModel:()=>Zi,MoonshinePreTrainedModel:()=>Ko,MptForCausalLM:()=>f_,MptModel:()=>h_,MptPreTrainedModel:()=>vl,MultiModalityCausalLM:()=>Ah,MultiModalityPreTrainedModel:()=>Ih,MusicgenForCausalLM:()=>N0,MusicgenForConditionalGeneration:()=>_c,MusicgenModel:()=>R0,MusicgenPreTrainedModel:()=>uc,NanoChatForCausalLM:()=>Wt,NanoChatModel:()=>Dt,NanoChatPreTrainedModel:()=>Tt,NeoBertForMaskedLM:()=>$e,NeoBertForQuestionAnswering:()=>ot,NeoBertForSequenceClassification:()=>Re,NeoBertForTokenClassification:()=>Ne,NeoBertModel:()=>We,NeoBertPreTrainedModel:()=>Te,NomicBertModel:()=>zt,NomicBertPreTrainedModel:()=>fr,OPTForCausalLM:()=>M_,OPTModel:()=>g_,OPTPreTrainedModel:()=>xl,Olmo2ForCausalLM:()=>Nu,Olmo2Model:()=>Ru,Olmo2PreTrainedModel:()=>il,OlmoForCausalLM:()=>zu,OlmoModel:()=>Bu,OlmoPreTrainedModel:()=>nl,OpenELMForCausalLM:()=>r_,OpenELMModel:()=>t_,OpenELMPreTrainedModel:()=>hl,OwlViTForObjectDetection:()=>V_,OwlViTModel:()=>j_,OwlViTPreTrainedModel:()=>Fl,Owlv2ForObjectDetection:()=>U_,Owlv2Model:()=>W_,Owlv2PreTrainedModel:()=>Il,PaliGemmaForConditionalGeneration:()=>On,PaliGemmaPreTrainedModel:()=>Dn,ParakeetForCTC:()=>Mm,ParakeetPreTrainedModel:()=>gm,PatchTSMixerForPrediction:()=>Rh,PatchTSMixerModel:()=>zh,PatchTSMixerPreTrainedModel:()=>mc,PatchTSTForPrediction:()=>Bh,PatchTSTModel:()=>Lh,PatchTSTPreTrainedModel:()=>pc,Phi3ForCausalLM:()=>__,Phi3Model:()=>u_,Phi3PreTrainedModel:()=>wl,Phi3VForCausalLM:()=>Pa,Phi3VPreTrainedModel:()=>zn,PhiForCausalLM:()=>d_,PhiModel:()=>c_,PhiPreTrainedModel:()=>Ml,PreTrainedModel:()=>A,PretrainedMixin:()=>Ut,PvtForImageClassification:()=>E_,PvtModel:()=>P_,PvtPreTrainedModel:()=>Pl,PyAnnoteForAudioFrameClassification:()=>bm,PyAnnoteModel:()=>wm,PyAnnotePreTrainedModel:()=>ec,QuestionAnsweringModelOutput:()=>jr,Qwen2ForCausalLM:()=>o_,Qwen2Model:()=>s_,Qwen2PreTrainedModel:()=>fl,Qwen2VLForConditionalGeneration:()=>l_,Qwen2VLPreTrainedModel:()=>i_,Qwen3ForCausalLM:()=>n_,Qwen3Model:()=>a_,Qwen3PreTrainedModel:()=>gl,RFDetrForObjectDetection:()=>rp,RFDetrModel:()=>tp,RFDetrObjectDetectionOutput:()=>sp,RFDetrPreTrainedModel:()=>Bl,RTDetrForObjectDetection:()=>J_,RTDetrModel:()=>X_,RTDetrObjectDetectionOutput:()=>Na,RTDetrPreTrainedModel:()=>Ol,RTDetrV2ForObjectDetection:()=>Z_,RTDetrV2Model:()=>Y_,RTDetrV2ObjectDetectionOutput:()=>ep,RTDetrV2PreTrainedModel:()=>Ll,ResNetForImageClassification:()=>mp,ResNetModel:()=>pp,ResNetPreTrainedModel:()=>Vl,RoFormerForMaskedLM:()=>Ys,RoFormerForQuestionAnswering:()=>Dr,RoFormerForSequenceClassification:()=>Zs,RoFormerForTokenClassification:()=>or,RoFormerModel:()=>zs,RoFormerPreTrainedModel:()=>yr,RobertaForMaskedLM:()=>fn,RobertaForQuestionAnswering:()=>Mn,RobertaForSequenceClassification:()=>fa,RobertaForTokenClassification:()=>gn,RobertaModel:()=>hn,RobertaPreTrainedModel:()=>Os,Sam2ImageSegmentationOutput:()=>am,Sam2Model:()=>Hn,Sam2PreTrainedModel:()=>nm,Sam3TrackerModel:()=>lm,SamImageSegmentationOutput:()=>om,SamModel:()=>sm,SamPreTrainedModel:()=>rm,SapiensForDepthEstimation:()=>Pp,SapiensForNormalEstimation:()=>Ep,SapiensForSemanticSegmentation:()=>Tp,SapiensPreTrainedModel:()=>Kn,SegformerForImageClassification:()=>uh,SegformerForSemanticSegmentation:()=>_h,SegformerModel:()=>z0,SegformerPreTrainedModel:()=>Yn,Seq2SeqLMOutput:()=>ET,SequenceClassifierOutput:()=>Pt,SiglipModel:()=>Ca,SiglipPreTrainedModel:()=>Qo,SiglipTextModel:()=>jn,SiglipVisionModel:()=>Sa,SmolLM3ForCausalLM:()=>Cu,SmolLM3Model:()=>ku,SmolLM3PreTrainedModel:()=>tl,SmolVLMForConditionalGeneration:()=>Ho,SnacDecoderModel:()=>ef,SnacEncoderModel:()=>Zh,SnacModel:()=>Yh,SnacPreTrainedModel:()=>ai,SpeechT5ForSpeechToText:()=>Wm,SpeechT5ForTextToSpeech:()=>Um,SpeechT5HifiGan:()=>Gm,SpeechT5Model:()=>B0,SpeechT5PreTrainedModel:()=>Xn,SqueezeBertForMaskedLM:()=>te,SqueezeBertForQuestionAnswering:()=>me,SqueezeBertForSequenceClassification:()=>se,SqueezeBertModel:()=>G,SqueezeBertPreTrainedModel:()=>S,StableLmForCausalLM:()=>mh,StableLmModel:()=>ph,StableLmPreTrainedModel:()=>cc,Starcoder2ForCausalLM:()=>oh,Starcoder2Model:()=>sh,Starcoder2PreTrainedModel:()=>nc,StyleTextToSpeech2Model:()=>Vm,StyleTextToSpeech2PreTrainedModel:()=>jm,SupertonicForConditionalGeneration:()=>tc,SupertonicPreTrainedModel:()=>Km,Swin2SRForImageSuperResolution:()=>wp,Swin2SRModel:()=>Mp,Swin2SRPreTrainedModel:()=>Wl,SwinForImageClassification:()=>fp,SwinForSemanticSegmentation:()=>gp,SwinModel:()=>hp,SwinPreTrainedModel:()=>Gn,T5ForConditionalGeneration:()=>Xt,T5Model:()=>yt,T5PreTrainedModel:()=>It,TableTransformerForObjectDetection:()=>ip,TableTransformerModel:()=>np,TableTransformerObjectDetectionOutput:()=>lp,TableTransformerPreTrainedModel:()=>Rl,TokenClassifierOutput:()=>Er,TrOCRForCausalLM:()=>qm,TrOCRPreTrainedModel:()=>Hm,UltravoxModel:()=>hc,UltravoxPreTrainedModel:()=>Nh,UniSpeechForCTC:()=>Tm,UniSpeechForSequenceClassification:()=>Pm,UniSpeechModel:()=>ym,UniSpeechPreTrainedModel:()=>qn,UniSpeechSatForAudioFrameClassification:()=>Sm,UniSpeechSatForCTC:()=>km,UniSpeechSatForSequenceClassification:()=>Cm,UniSpeechSatModel:()=>Em,UniSpeechSatPreTrainedModel:()=>ja,VaultGemmaForCausalLM:()=>Yu,VaultGemmaModel:()=>Ju,VaultGemmaPreTrainedModel:()=>pl,ViTForImageClassification:()=>b_,ViTMAEModel:()=>C_,ViTMAEPreTrainedModel:()=>k_,ViTMSNForImageClassification:()=>F_,ViTMSNModel:()=>S_,ViTMSNPreTrainedModel:()=>El,ViTModel:()=>w_,ViTPreTrainedModel:()=>yl,VisionEncoderDecoderModel:()=>ba,VitMatteForImageMatting:()=>L_,VitMattePreTrainedModel:()=>O_,VitPoseForPoseEstimation:()=>T_,VitPosePreTrainedModel:()=>y_,VitsModel:()=>lc,VitsModelOutput:()=>Ff,VitsPreTrainedModel:()=>dh,VoxtralForConditionalGeneration:()=>jh,Wav2Vec2BertForCTC:()=>Im,Wav2Vec2BertForSequenceClassification:()=>Am,Wav2Vec2BertModel:()=>Fm,Wav2Vec2BertPreTrainedModel:()=>Qn,Wav2Vec2ForAudioFrameClassification:()=>fm,Wav2Vec2ForCTC:()=>mm,Wav2Vec2ForSequenceClassification:()=>hm,Wav2Vec2Model:()=>pm,Wav2Vec2PreTrainedModel:()=>oo,WavLMForAudioFrameClassification:()=>Nm,WavLMForCTC:()=>Bm,WavLMForSequenceClassification:()=>zm,WavLMForXVector:()=>Rm,WavLMModel:()=>Lm,WavLMPreTrainedModel:()=>ra,WeSpeakerResNetModel:()=>xm,WeSpeakerResNetPreTrainedModel:()=>vm,WhisperForConditionalGeneration:()=>Us,WhisperModel:()=>wa,WhisperPreTrainedModel:()=>Go,XLMForQuestionAnswering:()=>yn,XLMForSequenceClassification:()=>vn,XLMForTokenClassification:()=>xn,XLMModel:()=>wn,XLMPreTrainedModel:()=>eo,XLMRobertaForMaskedLM:()=>Pn,XLMRobertaForQuestionAnswering:()=>Ma,XLMRobertaForSequenceClassification:()=>En,XLMRobertaForTokenClassification:()=>ga,XLMRobertaModel:()=>Tn,XLMRobertaPreTrainedModel:()=>to,XLMWithLMHeadModel:()=>bn,XVectorOutput:()=>Cf,YolosForObjectDetection:()=>em,YolosModel:()=>Zp,YolosObjectDetectionOutput:()=>tm,YolosPreTrainedModel:()=>Jl});var s=t("./src/configs.js"),o=t("./src/backends/onnx.js"),a=t("./src/utils/dtypes.js"),n=t("./src/utils/generic.js"),i=t("./src/utils/core.js"),l=t("./src/utils/hub.js"),c=t("./src/utils/constants.js"),_=t("./src/generation/logits_process.js"),u=t("./src/generation/configuration_utils.js"),d=t("./src/utils/tensor.js"),g=t("./src/utils/image.js"),h=t("./src/utils/maths.js"),x=t("./src/generation/stopping_criteria.js"),F=t("./src/generation/logits_sampler.js"),v=t("./src/env.js"),b=t("./src/models/whisper/generation_whisper.js"),C=t("./src/models/whisper/common_whisper.js");let y={EncoderOnly:0,EncoderDecoder:1,Seq2Seq:2,Vision2Seq:3,DecoderOnly:4,MaskGeneration:5,ImageTextToText:6,Musicgen:7,MultiModality:8,Phi3V:9,AudioTextToText:10,AutoEncoder:11,ImageAudioTextToText:12,Supertonic:13},P=new Map,I=new Map,f=new Map;async function E(M,w,j){let ae=j.config?.["transformers.js_config"]??{},_e=j.device??ae.device;_e&&typeof _e!="string"&&(_e.hasOwnProperty(w)?_e=_e[w]:(console.warn(`device not specified for "${w}". Using the default device.`),_e=null));let he=_e??(v.apis.IS_NODE_ENV?"cpu":"wasm"),Se=(0,o.deviceToExecutionProviders)(he),Oe=ae.device_config??{};Oe.hasOwnProperty(he)&&(ae={...ae,...Oe[he]});let Ge=j.dtype??ae.dtype;if(typeof Ge!="string"&&(Ge&&Ge.hasOwnProperty(w)?Ge=Ge[w]:(Ge=a.DEFAULT_DEVICE_DTYPE_MAPPING[he]??a.DATA_TYPES.fp32,console.warn(`dtype not specified for "${w}". Using the default dtype (${Ge}) for this device (${he}).`))),Ge===a.DATA_TYPES.auto){let Ft=ae.dtype;typeof Ft!="string"&&(Ft=Ft?.[w]),Ft&&Ft!==a.DATA_TYPES.auto&&a.DATA_TYPES.hasOwnProperty(Ft)?Ge=Ft:Ge=a.DEFAULT_DEVICE_DTYPE_MAPPING[he]??a.DATA_TYPES.fp32}let st=Ge;if(a.DEFAULT_DTYPE_SUFFIX_MAPPING.hasOwnProperty(st)){if(st===a.DATA_TYPES.fp16&&he==="webgpu"&&!await(0,a.isWebGpuFp16Supported)())throw new Error(`The device (${he}) does not support fp16.`)}else throw new Error(`Invalid dtype: ${st}. Should be one of: ${Object.keys(a.DATA_TYPES).join(", ")}`);let vt=ae.kv_cache_dtype,xt=vt?typeof vt=="string"?vt:vt[st]??"float32":void 0;if(xt&&!["float32","float16"].includes(xt))throw new Error(`Invalid kv_cache_dtype: ${xt}. Should be one of: float32, float16`);let Et={dtype:st,kv_cache_dtype:xt,device:he},mt=a.DEFAULT_DTYPE_SUFFIX_MAPPING[st],Bt=`${w}${mt}.onnx`,ht=`${j.subfolder??""}/${Bt}`,_t={...j.session_options};_t.executionProviders??=Se;let $t=ae.free_dimension_overrides;$t?_t.freeDimensionOverrides??=$t:he.startsWith("webnn")&&!_t.freeDimensionOverrides&&console.warn(`WebNN does not currently support dynamic shapes and requires 'free_dimension_overrides' to be set in config.json, preferably as a field within config["transformers.js_config"]["device_config"]["${he}"]. When 'free_dimension_overrides' is not set, you may experience significant performance degradation.`);let Gt=v.apis.IS_NODE_ENV&&v.env.useFSCache,tr=(0,l.getModelFile)(M,ht,!0,j,Gt),sr=j.use_external_data_format??ae.use_external_data_format,mr=[];if(sr){let Ft;typeof sr=="object"?sr.hasOwnProperty(Bt)?Ft=sr[Bt]:sr.hasOwnProperty(w)?Ft=sr[w]:Ft=!1:Ft=sr;let cr=+Ft;if(cr>l.MAX_EXTERNAL_DATA_CHUNKS)throw new Error(`The number of external data chunks (${cr}) exceeds the maximum allowed value (${l.MAX_EXTERNAL_DATA_CHUNKS}).`);for(let Ar=0;Ar<cr;++Ar){let bo=`${Bt}_data${Ar===0?"":"_"+Ar}`,Hr=`${j.subfolder??""}/${bo}`;mr.push(new Promise(async(gs,oa)=>{let aa=await(0,l.getModelFile)(M,Hr,!0,j,Gt);gs(aa instanceof Uint8Array?{path:bo,data:aa}:bo)}))}}else _t.externalData!==void 0&&(mr=_t.externalData.map(async Ft=>{if(typeof Ft.data=="string"){let cr=await(0,l.getModelFile)(M,Ft.data,!0,j);return{...Ft,data:cr}}return Ft}));if(mr.length>0){let Ft=await Promise.all(mr);v.apis.IS_NODE_ENV||(_t.externalData=Ft)}if(he==="webgpu"){let Ft=(0,s.getCacheShapes)(j.config,{prefix:"present"});if(Object.keys(Ft).length>0&&!(0,o.isONNXProxy)()){let cr={};for(let Ar in Ft)cr[Ar]="gpu-buffer";_t.preferredOutputLocation=cr}}return{buffer_or_path:await tr,session_options:_t,session_config:Et}}async function D(M,w,j){return Object.fromEntries(await Promise.all(Object.keys(w).map(async ae=>{let{buffer_or_path:_e,session_options:he,session_config:Se}=await E(M,w[ae],j),Oe=await(0,o.createInferenceSession)(_e,he,Se);return[ae,Oe]})))}async function O(M,w,j){return Object.fromEntries(await Promise.all(Object.keys(w).map(async ae=>{let _e=await(0,l.getModelJSON)(M,w[ae],!1,j);return[ae,_e]})))}function U(M,w){let j=Object.create(null),ae=[];for(let Se of M.inputNames){let Oe=w[Se];if(!(Oe instanceof d.Tensor)){ae.push(Se);continue}j[Se]=(0,o.isONNXProxy)()?Oe.clone():Oe}if(ae.length>0)throw new Error(`An error occurred during model execution: "Missing the following inputs: ${ae.join(", ")}.`);let _e=Object.keys(w).length,he=M.inputNames.length;if(_e>he){let Se=Object.keys(w).filter(Oe=>!M.inputNames.includes(Oe));console.warn(`WARNING: Too many inputs were provided (${_e} > ${he}). The following inputs will be ignored: "${Se.join(", ")}".`)}return j}async function W(M,w){let j=U(M,w);try{let ae=Object.fromEntries(Object.entries(j).map(([he,Se])=>[he,Se.ort_tensor])),_e=await(0,o.runInferenceSession)(M,ae);return z(_e)}catch(ae){let _e=Object.fromEntries(Object.entries(j).map(([he,Se])=>{let Oe={type:Se.type,dims:Se.dims,location:Se.location};return Oe.location!=="gpu-buffer"&&(Oe.data=Se.data),[he,Oe]}));throw console.error(`An error occurred during model execution: "${ae}".`),console.error("Inputs given to model:",_e),ae}}function z(M){for(let w in M)(0,o.isONNXTensor)(M[w])?M[w]=new d.Tensor(M[w]):typeof M[w]=="object"&&z(M[w]);return M}function X(M){if(M instanceof d.Tensor)return M;if(M.length===0)throw Error("items must be non-empty");if(Array.isArray(M[0])){if(M.some(w=>w.length!==M[0].length))throw Error("Unable to create tensor, you should probably activate truncation and/or padding with 'padding=True' and/or 'truncation=True' to have batched tensors with the same length.");return new d.Tensor("int64",BigInt64Array.from(M.flat().map(w=>BigInt(w))),[M.length,M[0].length])}else return new d.Tensor("int64",BigInt64Array.from(M.map(w=>BigInt(w))),[1,M.length])}function J(M){return new d.Tensor("bool",[M],[1])}async function q(M,w){let{encoder_outputs:j,input_ids:ae,decoder_input_ids:_e,...he}=w;if(!j){let Oe=(0,i.pick)(w,M.sessions.model.inputNames);j=(await re(M,Oe)).last_hidden_state}return he.input_ids=_e,he.encoder_hidden_states=j,M.sessions.decoder_model_merged.inputNames.includes("encoder_attention_mask")&&(he.encoder_attention_mask=w.attention_mask),await ne(M,he,!0)}async function re(M,w){let j=M.sessions.model,ae=(0,i.pick)(w,j.inputNames);if(j.inputNames.includes("inputs_embeds")&&!ae.inputs_embeds){if(!w.input_ids)throw new Error("Both `input_ids` and `inputs_embeds` are missing in the model inputs.");ae.inputs_embeds=await M.encode_text({input_ids:w.input_ids})}if(j.inputNames.includes("token_type_ids")&&!ae.token_type_ids){if(!ae.input_ids)throw new Error("Both `input_ids` and `token_type_ids` are missing in the model inputs.");ae.token_type_ids=(0,d.zeros_like)(ae.input_ids)}if(j.inputNames.includes("pixel_mask")&&!ae.pixel_mask){if(!ae.pixel_values)throw new Error("Both `pixel_values` and `pixel_mask` are missing in the model inputs.");let _e=ae.pixel_values.dims;ae.pixel_mask=(0,d.ones)([_e[0],_e[2],_e[3]])}return await W(j,ae)}async function oe(M,w){let j=await M.encode(w);return await M.decode(j)}async function ne(M,w,j=!1){let ae=M.sessions[j?"decoder_model_merged":"model"],{past_key_values:_e,...he}=w;if(ae.inputNames.includes("use_cache_branch")&&(he.use_cache_branch=J(!!_e)),ae.inputNames.includes("position_ids")&&he.attention_mask&&!he.position_ids){let Oe=["paligemma","gemma3_text","gemma3"].includes(M.config.model_type)?1:0;he.position_ids=ke(he,_e,Oe)}M.addPastKeyValues(he,_e);let Se=(0,i.pick)(he,ae.inputNames);return await W(ae,Se)}function ye({modality_token_id:M,inputs_embeds:w,modality_features:j,input_ids:ae,attention_mask:_e}){let he=ae.tolist().map(st=>st.reduce((vt,xt,Et)=>(xt==M&&vt.push(Et),vt),[])),Se=he.reduce((st,vt)=>st+vt.length,0),Oe=j.dims[0];if(Se!==Oe)throw new Error(`Number of tokens and features do not match: tokens: ${Se}, features ${Oe}`);let Ge=0;for(let st=0;st<he.length;++st){let vt=he[st],xt=w[st];for(let Et=0;Et<vt.length;++Et)xt[vt[Et]].data.set(j[Ge++].data)}return{inputs_embeds:w,attention_mask:_e}}function Y({image_token_id:M,inputs_embeds:w,image_features:j,input_ids:ae,attention_mask:_e}){return ye({modality_token_id:M,inputs_embeds:w,modality_features:j,input_ids:ae,attention_mask:_e})}function H({audio_token_id:M,inputs_embeds:w,audio_features:j,input_ids:ae,attention_mask:_e}){return ye({modality_token_id:M,inputs_embeds:w,modality_features:j,input_ids:ae,attention_mask:_e})}async function R(M,{encode_function:w,merge_function:j,modality_input_name:ae,modality_output_name:_e,input_ids:he=null,attention_mask:Se=null,position_ids:Oe=null,inputs_embeds:Ge=null,past_key_values:st=null,generation_config:vt=null,logits_processor:xt=null,...Et}){let mt=Et[ae];if(!Ge){if(Ge=await M.encode_text({input_ids:he,...Et}),mt&&he.dims[1]!==1){let ht=await w({[ae]:mt,...Et});({inputs_embeds:Ge,attention_mask:Se}=j({[_e]:ht,inputs_embeds:Ge,input_ids:he,attention_mask:Se}))}else if(st&&mt&&he.dims[1]===1){let ht=he.dims[1],_t=Object.values(st)[0].dims.at(-2);Se=(0,d.cat)([(0,d.ones)([he.dims[0],_t]),Se.slice(null,[Se.dims[1]-ht,Se.dims[1]])],1)}}if(!Oe&&M.config.model_type==="qwen2_vl"){let{image_grid_thw:ht,video_grid_thw:_t}=Et;[Oe]=M.get_rope_index(he,ht,_t,Se)}return await ne(M,{inputs_embeds:Ge,past_key_values:st,attention_mask:Se,position_ids:Oe,generation_config:vt,logits_processor:xt},!0)}async function L(M,w){return await R(M,{...w,modality_input_name:"audio_values",modality_output_name:"audio_features",encode_function:M.encode_audio.bind(M),merge_function:M._merge_input_ids_with_audio_features.bind(M)})}async function ee(M,w){return await R(M,{...w,modality_input_name:"pixel_values",modality_output_name:"image_features",encode_function:M.encode_image.bind(M),merge_function:M._merge_input_ids_with_image_features.bind(M)})}function ue(M,w=0){let[j,ae]=M.dims,_e=M.data,he=new BigInt64Array(_e.length);for(let Se=0;Se<j;++Se){let Oe=Se*ae,Ge=BigInt(w);for(let st=0;st<ae;++st){let vt=Oe+st;_e[vt]===0n?he[vt]=BigInt(1):(he[vt]=Ge,Ge+=_e[vt])}}return{data:he,dims:M.dims}}function ke(M,w=null,j=0){let{input_ids:ae,inputs_embeds:_e,attention_mask:he}=M,{data:Se,dims:Oe}=ue(he,j),Ge=new d.Tensor("int64",Se,Oe);if(w){let st=-(ae??_e).dims.at(1);Ge=Ge.slice(null,[st,null])}return Ge}function Ie(M,w,j,ae){let _e=j.past_key_values?Object.values(j.past_key_values)[0].dims.at(-2):0;if(!j.attention_mask){let he;for(let Se of["input_ids","inputs_embeds","position_ids"])if(j[Se]){he=j[Se].dims;break}if(!he)throw new Error("attention_mask is not provided, and unable to infer its shape from model inputs.");j.attention_mask=(0,d.ones)([he[0],_e+he[1]])}if(j.past_key_values){let{input_ids:he,attention_mask:Se}=j;Se&&Se.dims[1]>he.dims[1]||_e<he.dims[1]&&(j.input_ids=he.slice(null,[_e,null]))}return j}function Le(M,w,j,ae){return j.past_key_values&&(w=w.map(_e=>[_e.at(-1)])),{...j,decoder_input_ids:X(w)}}function rt(M,...w){return M.config.is_encoder_decoder?Le(M,...w):Ie(M,...w)}function we(M,w,j,ae){let _e=!!j.past_key_values;return ae.guidance_scale!==null&&ae.guidance_scale>1&&(_e?j.input_ids=(0,d.cat)([j.input_ids,j.input_ids],0):(j.input_ids=(0,d.cat)([j.input_ids,(0,d.full_like)(j.input_ids,BigInt(ae.pad_token_id))],0),j.attention_mask=(0,d.cat)([j.attention_mask,(0,d.full_like)(j.attention_mask,0n)],0))),(_e||!j.pixel_values)&&(j.pixel_values=(0,d.full)([0,0,3,384,384],1)),_e&&(j.images_seq_mask=new d.Tensor("bool",new Array(1).fill(!0).fill(!1,0,1),[1,1]),j.images_emb_mask=new d.Tensor("bool",new Array(0).fill(!1),[1,1,0])),j}class A extends n.Callable{main_input_name="input_ids";forward_params=["input_ids","attention_mask"];constructor(w,j,ae){super(),this.config=w,this.sessions=j,this.configs=ae;let _e=f.get(this.constructor),he=P.get(_e);switch(this.can_generate=!1,this._forward=null,this._prepare_inputs_for_generation=null,he){case y.DecoderOnly:this.can_generate=!0,this._forward=ne,this._prepare_inputs_for_generation=Ie;break;case y.Seq2Seq:case y.Vision2Seq:case y.Musicgen:this.can_generate=!0,this._forward=q,this._prepare_inputs_for_generation=Le;break;case y.EncoderDecoder:this._forward=q;break;case y.ImageTextToText:this.can_generate=!0,this._forward=ee,this._prepare_inputs_for_generation=rt;break;case y.AudioTextToText:this.can_generate=!0,this._forward=L,this._prepare_inputs_for_generation=rt;break;case y.Phi3V:case y.ImageAudioTextToText:this.can_generate=!0,this._prepare_inputs_for_generation=rt;break;case y.MultiModality:this.can_generate=!0,this._prepare_inputs_for_generation=we;break;case y.AutoEncoder:this._forward=oe;break;default:this._forward=re;break}this.can_generate&&this.forward_params.push("past_key_values"),this.custom_config=this.config["transformers.js_config"]??{}}async dispose(){let w=[];for(let j of Object.values(this.sessions))j?.handler?.dispose&&w.push(j.handler.dispose());return await Promise.all(w)}static async from_pretrained(w,{progress_callback:j=null,config:ae=null,cache_dir:_e=null,local_files_only:he=!1,revision:Se="main",model_file_name:Oe=null,subfolder:Ge="onnx",device:st=null,dtype:vt=null,use_external_data_format:xt=null,session_options:Et={}}={}){let mt={progress_callback:j,config:ae,cache_dir:_e,local_files_only:he,revision:Se,model_file_name:Oe,subfolder:Ge,device:st,dtype:vt,use_external_data_format:xt,session_options:Et},Bt=f.get(this),ht=P.get(Bt);ae=mt.config=await s.AutoConfig.from_pretrained(w,mt);let _t;if(ht===y.DecoderOnly)_t=await Promise.all([D(w,{model:mt.model_file_name??"model"},mt),O(w,{generation_config:"generation_config.json"},mt)]);else if(ht===y.Seq2Seq||ht===y.Vision2Seq)_t=await Promise.all([D(w,{model:"encoder_model",decoder_model_merged:"decoder_model_merged"},mt),O(w,{generation_config:"generation_config.json"},mt)]);else if(ht===y.MaskGeneration)_t=await Promise.all([D(w,{model:"vision_encoder",prompt_encoder_mask_decoder:"prompt_encoder_mask_decoder"},mt)]);else if(ht===y.EncoderDecoder)_t=await Promise.all([D(w,{model:"encoder_model",decoder_model_merged:"decoder_model_merged"},mt)]);else if(ht===y.ImageTextToText){let $t={embed_tokens:"embed_tokens",vision_encoder:"vision_encoder",decoder_model_merged:"decoder_model_merged"};ae.is_encoder_decoder&&($t.model="encoder_model"),_t=await Promise.all([D(w,$t,mt),O(w,{generation_config:"generation_config.json"},mt)])}else if(ht===y.AudioTextToText){let $t={embed_tokens:"embed_tokens",audio_encoder:"audio_encoder",decoder_model_merged:"decoder_model_merged"};_t=await Promise.all([D(w,$t,mt),O(w,{generation_config:"generation_config.json"},mt)])}else if(ht===y.ImageAudioTextToText){let $t={embed_tokens:"embed_tokens",audio_encoder:"audio_encoder",vision_encoder:"vision_encoder",decoder_model_merged:"decoder_model_merged"};_t=await Promise.all([D(w,$t,mt),O(w,{generation_config:"generation_config.json"},mt)])}else if(ht===y.Musicgen)_t=await Promise.all([D(w,{model:"text_encoder",decoder_model_merged:"decoder_model_merged",encodec_decode:"encodec_decode"},mt),O(w,{generation_config:"generation_config.json"},mt)]);else if(ht===y.MultiModality)_t=await Promise.all([D(w,{prepare_inputs_embeds:"prepare_inputs_embeds",model:"language_model",lm_head:"lm_head",gen_head:"gen_head",gen_img_embeds:"gen_img_embeds",image_decode:"image_decode"},mt),O(w,{generation_config:"generation_config.json"},mt)]);else if(ht===y.Phi3V)_t=await Promise.all([D(w,{prepare_inputs_embeds:"prepare_inputs_embeds",model:"model",vision_encoder:"vision_encoder"},mt),O(w,{generation_config:"generation_config.json"},mt)]);else if(ht===y.AutoEncoder)_t=await Promise.all([D(w,{encoder_model:"encoder_model",decoder_model:"decoder_model"},mt)]);else if(ht===y.Supertonic)_t=await Promise.all([D(w,{text_encoder:"text_encoder",latent_denoiser:"latent_denoiser",voice_decoder:"voice_decoder"},mt)]);else{if(ht!==y.EncoderOnly){let $t=Bt??ae?.model_type;$t!=="custom"&&console.warn(`Model type for '${$t}' not found, assuming encoder-only architecture. Please report this at ${c.GITHUB_ISSUE_URL}.`)}_t=await Promise.all([D(w,{model:mt.model_file_name??"model"},mt)])}return new this(ae,..._t)}async _call(w){return await this.forward(w)}async forward(w){return await this._forward(this,w)}get generation_config(){return this.configs?.generation_config??null}_get_logits_processor(w,j,ae=null){let _e=new _.LogitsProcessorList;if(w.repetition_penalty!==null&&w.repetition_penalty!==1&&_e.push(new _.RepetitionPenaltyLogitsProcessor(w.repetition_penalty)),w.no_repeat_ngram_size!==null&&w.no_repeat_ngram_size>0&&_e.push(new _.NoRepeatNGramLogitsProcessor(w.no_repeat_ngram_size)),w.bad_words_ids!==null&&_e.push(new _.NoBadWordsLogitsProcessor(w.bad_words_ids,w.eos_token_id)),w.min_length!==null&&w.eos_token_id!==null&&w.min_length>0&&_e.push(new _.MinLengthLogitsProcessor(w.min_length,w.eos_token_id)),w.min_new_tokens!==null&&w.eos_token_id!==null&&w.min_new_tokens>0&&_e.push(new _.MinNewTokensLengthLogitsProcessor(j,w.min_new_tokens,w.eos_token_id)),w.forced_bos_token_id!==null&&_e.push(new _.ForcedBOSTokenLogitsProcessor(w.forced_bos_token_id)),w.forced_eos_token_id!==null&&_e.push(new _.ForcedEOSTokenLogitsProcessor(w.max_length,w.forced_eos_token_id)),w.begin_suppress_tokens!==null){let he=j>1||w.forced_bos_token_id===null?j:j+1;_e.push(new _.SuppressTokensAtBeginLogitsProcessor(w.begin_suppress_tokens,he))}return w.guidance_scale!==null&&w.guidance_scale>1&&_e.push(new _.ClassifierFreeGuidanceLogitsProcessor(w.guidance_scale)),w.temperature===0&&w.do_sample&&(console.warn("`do_sample` changed to false because `temperature: 0` implies greedy sampling (always selecting the most likely token), which is incompatible with `do_sample: true`."),w.do_sample=!1),w.do_sample&&w.temperature!==null&&w.temperature!==1&&_e.push(new _.TemperatureLogitsWarper(w.temperature)),ae!==null&&_e.extend(ae),_e}_prepare_generation_config(w,j,ae=u.GenerationConfig){let _e={...this.config};for(let Se of["decoder","generator","text_config"])Se in _e&&Object.assign(_e,_e[Se]);let he=new ae(_e);return Object.assign(he,this.generation_config??{}),w&&Object.assign(he,w),j&&Object.assign(he,(0,i.pick)(j,Object.getOwnPropertyNames(he))),he}_get_stopping_criteria(w,j=null){let ae=new x.StoppingCriteriaList;return w.max_length!==null&&ae.push(new x.MaxLengthCriteria(w.max_length,this.config.max_position_embeddings??null)),w.eos_token_id!==null&&ae.push(new x.EosTokenCriteria(w.eos_token_id)),j&&ae.extend(j),ae}_validate_model_class(){if(!this.can_generate){let w=[Mc,wc,gc,fc],j=f.get(this.constructor),ae=new Set,_e=this.config.model_type;for(let Se of w){let Oe=Se.get(_e);Oe&&ae.add(Oe[0])}let he=`The current model class (${j}) is not compatible with \`.generate()\`, as it doesn't have a language model head.`;throw ae.size>0&&(he+=` Please use the following class instead: ${[...ae].join(", ")}`),Error(he)}}prepare_inputs_for_generation(...w){return this._prepare_inputs_for_generation(this,...w)}_update_model_kwargs_for_generation({generated_input_ids:w,outputs:j,model_inputs:ae,is_encoder_decoder:_e}){return ae.past_key_values=this.getPastKeyValues(j,ae.past_key_values),ae.input_ids=new d.Tensor("int64",w.flat(),[w.length,1]),_e?"decoder_attention_mask"in ae:ae.attention_mask=(0,d.cat)([ae.attention_mask,(0,d.ones)([ae.attention_mask.dims[0],1])],1),ae.position_ids=null,ae}_prepare_model_inputs({inputs:w,bos_token_id:j,model_kwargs:ae}){let _e=(0,i.pick)(ae,this.forward_params),he=this.main_input_name;if(he in _e){if(w)throw new Error("`inputs`: {inputs}` were passed alongside {input_name} which is not allowed. Make sure to either pass {inputs} or {input_name}=...")}else _e[he]=w;return{inputs_tensor:_e[he],model_inputs:_e,model_input_name:he}}async _prepare_encoder_decoder_kwargs_for_generation({inputs_tensor:w,model_inputs:j,model_input_name:ae,generation_config:_e}){if(this.sessions.model.inputNames.includes("inputs_embeds")&&!j.inputs_embeds&&"_prepare_inputs_embeds"in this){let{input_ids:Se,pixel_values:Oe,attention_mask:Ge,...st}=j,vt=await this._prepare_inputs_embeds(j);j={...st,...(0,i.pick)(vt,["inputs_embeds","attention_mask"])}}let{last_hidden_state:he}=await re(this,j);if(_e.guidance_scale!==null&&_e.guidance_scale>1)he=(0,d.cat)([he,(0,d.full_like)(he,0)],0),"attention_mask"in j&&(j.attention_mask=(0,d.cat)([j.attention_mask,(0,d.zeros_like)(j.attention_mask)],0));else if(j.decoder_input_ids){let Se=X(j.decoder_input_ids).dims[0];if(Se!==he.dims[0]){if(he.dims[0]!==1)throw new Error(`The encoder outputs have a different batch size (${he.dims[0]}) than the decoder inputs (${Se}).`);he=(0,d.cat)(Array.from({length:Se},()=>he),0)}}return j.encoder_outputs=he,j}_prepare_decoder_input_ids_for_generation({batch_size:w,model_input_name:j,model_kwargs:ae,decoder_start_token_id:_e,bos_token_id:he,generation_config:Se}){let{decoder_input_ids:Oe,...Ge}=ae;if(!(Oe instanceof d.Tensor)){if(Oe)Array.isArray(Oe[0])||(Oe=Array.from({length:w},()=>Oe));else if(_e??=he,this.config.model_type==="musicgen")Oe=Array.from({length:w*this.config.decoder.num_codebooks},()=>[_e]);else if(Array.isArray(_e)){if(_e.length!==w)throw new Error(`\`decoder_start_token_id\` expcted to have length ${w} but got ${_e.length}`);Oe=_e}else Oe=Array.from({length:w},()=>[_e]);Oe=X(Oe)}return ae.decoder_attention_mask=(0,d.ones_like)(Oe),{input_ids:Oe,model_inputs:Ge}}async generate({inputs:w=null,generation_config:j=null,logits_processor:ae=null,stopping_criteria:_e=null,streamer:he=null,...Se}){this._validate_model_class(),j=this._prepare_generation_config(j,Se);let{inputs_tensor:Oe,model_inputs:Ge,model_input_name:st}=this._prepare_model_inputs({inputs:w,model_kwargs:Se}),vt=this.config.is_encoder_decoder;vt&&("encoder_outputs"in Ge||(Ge=await this._prepare_encoder_decoder_kwargs_for_generation({inputs_tensor:Oe,model_inputs:Ge,model_input_name:st,generation_config:j})));let xt;vt?{input_ids:xt,model_inputs:Ge}=this._prepare_decoder_input_ids_for_generation({batch_size:Ge[st].dims.at(0),model_input_name:st,model_kwargs:Ge,decoder_start_token_id:j.decoder_start_token_id,bos_token_id:j.bos_token_id,generation_config:j}):xt=Ge[st];let Et=xt.dims.at(-1);j.max_new_tokens!==null&&(j.max_length=Et+j.max_new_tokens);let mt=this._get_logits_processor(j,Et,ae),Bt=this._get_stopping_criteria(j,_e),ht=Ge[st].dims.at(0),_t=F.LogitsSampler.getSampler(j),$t=new Array(ht).fill(0),Gt=xt.tolist();he&&he.put(Gt);let tr,sr={};for(;;){if(Ge=this.prepare_inputs_for_generation(Gt,Ge,j),tr=await this.forward(Ge),j.output_attentions&&j.return_dict_in_generate){let Hr=this.getAttentions(tr);for(let gs in Hr)gs in sr||(sr[gs]=[]),sr[gs].push(Hr[gs])}let Ft=tr.logits.slice(null,-1,null),cr=mt(Gt,Ft),Ar=[];for(let Hr=0;Hr<cr.dims.at(0);++Hr){let gs=cr[Hr],oa=await _t(gs);for(let[aa,ni]of oa){let Va=BigInt(aa);$t[Hr]+=ni,Gt[Hr].push(Va),Ar.push([Va]);break}}if(he&&he.put(Ar),Bt(Gt).every(Hr=>Hr))break;Ge=this._update_model_kwargs_for_generation({generated_input_ids:Ar,outputs:tr,model_inputs:Ge,is_encoder_decoder:vt})}he&&he.end();let mr=this.getPastKeyValues(tr,Ge.past_key_values,!0),br=new d.Tensor("int64",Gt.flat(),[Gt.length,Gt[0].length]);if(j.return_dict_in_generate)return{sequences:br,past_key_values:mr,...sr};for(let Ft of Object.values(tr))Ft.location==="gpu-buffer"&&Ft.dispose();return br}getPastKeyValues(w,j,ae=!1){let _e=Object.create(null);for(let he in w)if(he.startsWith("present")){let Se=he.replace("present_conv","past_conv").replace("present","past_key_values"),Oe=he.includes("encoder");if(Oe&&j?_e[Se]=j[Se]:_e[Se]=w[he],j&&(!Oe||ae)){let Ge=j[Se];Ge.location==="gpu-buffer"&&Ge.dispose()}}return _e}getAttentions(w){let j={};for(let ae of["cross_attentions","encoder_attentions","decoder_attentions"])for(let _e in w)_e.startsWith(ae)&&(ae in j||(j[ae]=[]),j[ae].push(w[_e]));return j}addPastKeyValues(w,j){if(j)Object.assign(w,j);else{let ae=this.sessions.decoder_model_merged??this.sessions.model,_e=(w[this.main_input_name]??w.attention_mask)?.dims?.[0]??1,he=ae?.config?.kv_cache_dtype??"float32",Se=he==="float16"?d.DataTypeMap.float16:d.DataTypeMap.float32,Oe=(0,s.getCacheShapes)(this.config,{batch_size:_e});for(let Ge in Oe){let st=Oe[Ge].reduce((vt,xt)=>vt*xt,1);w[Ge]=new d.Tensor(he,new Se(st),Oe[Ge])}}}async encode_image({pixel_values:w}){return(await W(this.sessions.vision_encoder,{pixel_values:w})).image_features}async encode_text({input_ids:w}){return(await W(this.sessions.embed_tokens,{input_ids:w})).inputs_embeds}async encode_audio({audio_values:w}){return(await W(this.sessions.audio_encoder,{audio_values:w})).audio_features}}class le{}class ge extends le{constructor({last_hidden_state:w,hidden_states:j=null,attentions:ae=null}){super(),this.last_hidden_state=w,this.hidden_states=j,this.attentions=ae}}class be extends A{}class Ae extends be{}class ve extends be{async _call(w){return new Ir(await super._call(w))}}class pe extends be{async _call(w){return new Pt(await super._call(w))}}class Pe extends be{async _call(w){return new Er(await super._call(w))}}class fe extends be{async _call(w){return new jr(await super._call(w))}}class Te extends A{}class We extends Te{}class $e extends Te{async _call(w){return new Ir(await super._call(w))}}class Re extends Te{async _call(w){return new Pt(await super._call(w))}}class Ne extends Te{async _call(w){return new Er(await super._call(w))}}class ot extends Te{async _call(w){return new jr(await super._call(w))}}class De extends A{}class Qe extends De{}class je extends De{async _call(w){return new Ir(await super._call(w))}}class pt extends De{async _call(w){return new Pt(await super._call(w))}}class Ke extends De{async _call(w){return new Er(await super._call(w))}}class bt extends A{}class At extends bt{}class Lt extends bt{}class fr extends A{}class zt extends fr{}class yr extends A{}class zs extends yr{}class Ys extends yr{async _call(w){return new Ir(await super._call(w))}}class Zs extends yr{async _call(w){return new Pt(await super._call(w))}}class or extends yr{async _call(w){return new Er(await super._call(w))}}class Dr extends yr{async _call(w){return new jr(await super._call(w))}}class Yr extends A{}class Rs extends Yr{}class ft extends Yr{async _call(w){return new Ir(await super._call(w))}}class Cs extends Yr{async _call(w){return new Pt(await super._call(w))}}class qt extends Yr{async _call(w){return new Er(await super._call(w))}}class Ss extends Yr{async _call(w){return new jr(await super._call(w))}}class Qr extends A{}class St extends Qr{}class Xr extends Qr{async _call(w){return new Ir(await super._call(w))}}class k extends Qr{async _call(w){return new Pt(await super._call(w))}}class Q extends Qr{async _call(w){return new Er(await super._call(w))}}class N extends Qr{async _call(w){return new jr(await super._call(w))}}class K extends A{}class Z extends K{}class ce extends K{async _call(w){return new Ir(await super._call(w))}}class xe extends K{async _call(w){return new Pt(await super._call(w))}}class et extends K{async _call(w){return new Er(await super._call(w))}}class ut extends K{async _call(w){return new jr(await super._call(w))}}class qe extends A{}class wt extends qe{}class tt extends qe{async _call(w){return new Ir(await super._call(w))}}class gt extends qe{async _call(w){return new Pt(await super._call(w))}}class Nt extends qe{async _call(w){return new Er(await super._call(w))}}class Qt extends qe{async _call(w){return new jr(await super._call(w))}}class ur extends A{}class Or extends ur{}class Cr extends ur{async _call(w){return new Ir(await super._call(w))}}class Lr extends ur{async _call(w){return new Pt(await super._call(w))}}class _s extends ur{async _call(w){return new Er(await super._call(w))}}class Fs extends ur{async _call(w){return new jr(await super._call(w))}}class gr extends A{}class Ns extends gr{}class as extends gr{async _call(w){return new Pt(await super._call(w))}}class Nr extends gr{async _call(w){return new Er(await super._call(w))}}class Gr extends gr{async _call(w){return new jr(await super._call(w))}}class ar extends gr{async _call(w){return new Ir(await super._call(w))}}class _r extends A{}class ps extends _r{}class Is extends _r{async _call(w){return new Ir(await super._call(w))}}class As extends _r{async _call(w){return new Pt(await super._call(w))}}class $s extends _r{async _call(w){return new Er(await super._call(w))}}class ns extends A{}class Wr extends ns{}class ze extends ns{async _call(w){return new Ir(await super._call(w))}}class Ue extends ns{async _call(w){return new Pt(await super._call(w))}}class at extends ns{async _call(w){return new jr(await super._call(w))}}class Ht extends A{}class js extends Ht{}class Ds extends Ht{async _call(w){return new Ir(await super._call(w))}}class Vs extends Ht{async _call(w){return new Pt(await super._call(w))}}class Wo extends Ht{async _call(w){return new Er(await super._call(w))}}class de extends Ht{async _call(w){return new jr(await super._call(w))}}class S extends A{}class G extends S{}class te extends S{async _call(w){return new Ir(await super._call(w))}}class se extends S{async _call(w){return new Pt(await super._call(w))}}class me extends S{async _call(w){return new jr(await super._call(w))}}class Ce extends A{}class Ye extends Ce{}class Xe extends Ce{async _call(w){return new Pt(await super._call(w))}}class Ze extends Ce{async _call(w){return new jr(await super._call(w))}}class He extends Ce{async _call(w){return new Ir(await super._call(w))}}class It extends A{forward_params=["input_ids","attention_mask","encoder_outputs","decoder_input_ids","decoder_attention_mask","past_key_values"]}class yt extends It{}class Xt extends It{}class Mr extends A{}class nr extends Mr{}class Br extends Mr{}class ir extends A{}class Tr extends ir{}class zr extends ir{}class Pr extends A{}class Zr extends Pr{}class Yt extends Pr{}class vr extends Pr{async _call(w){return new Pt(await super._call(w))}}class Sr extends A{}class Jr extends Sr{}class ms extends Sr{}class Fr extends Sr{async _call(w){return new Pt(await super._call(w))}}class is extends Sr{}class lr extends A{}class pr extends lr{}class wr extends lr{}class er extends A{}class Kr extends er{}class Ws extends er{}class Os extends A{}class hn extends Os{}class fn extends Os{async _call(w){return new Ir(await super._call(w))}}class fa extends Os{async _call(w){return new Pt(await super._call(w))}}class gn extends Os{async _call(w){return new Er(await super._call(w))}}class Mn extends Os{async _call(w){return new jr(await super._call(w))}}class eo extends A{}class wn extends eo{}class bn extends eo{async _call(w){return new Ir(await super._call(w))}}class vn extends eo{async _call(w){return new Pt(await super._call(w))}}class xn extends eo{async _call(w){return new Er(await super._call(w))}}class yn extends eo{async _call(w){return new jr(await super._call(w))}}class to extends A{}class Tn extends to{}class Pn extends to{async _call(w){return new Ir(await super._call(w))}}class En extends to{async _call(w){return new Pt(await super._call(w))}}class ga extends to{async _call(w){return new Er(await super._call(w))}}class Ma extends to{async _call(w){return new jr(await super._call(w))}}class Uo extends A{}class kn extends Uo{}class Cn extends Uo{}class Go extends A{requires_attention_mask=!1;main_input_name="input_features";forward_params=["input_features","attention_mask","decoder_input_ids","decoder_attention_mask","past_key_values"]}class wa extends Go{}class Us extends Go{_prepare_generation_config(w,j){return super._prepare_generation_config(w,j,b.WhisperGenerationConfig)}_retrieve_init_tokens(w){let j=[w.decoder_start_token_id],ae=w.language,_e=w.task;if(w.is_multilingual){ae||(console.warn("No language specified - defaulting to English (en)."),ae="en");let Se=`<|${(0,C.whisper_language_to_code)(ae)}|>`;j.push(w.lang_to_id[Se]),j.push(w.task_to_id[_e??"transcribe"])}else if(ae||_e)throw new Error("Cannot specify `task` or `language` for an English-only model. If the model is intended to be multilingual, pass `is_multilingual=true` to generate, or update the generation config.");return!w.return_timestamps&&w.no_timestamps_token_id&&j.at(-1)!==w.no_timestamps_token_id?j.push(w.no_timestamps_token_id):w.return_timestamps&&j.at(-1)===w.no_timestamps_token_id&&(console.warn("<|notimestamps|> prompt token is removed from generation_config since `return_timestamps` is set to `true`."),j.pop()),j.filter(he=>he!=null)}async generate({inputs:w=null,generation_config:j=null,logits_processor:ae=null,stopping_criteria:_e=null,...he}){j=this._prepare_generation_config(j,he);let Se=he.decoder_input_ids??this._retrieve_init_tokens(j);if(j.return_timestamps&&(ae??=new _.LogitsProcessorList,ae.push(new _.WhisperTimeStampLogitsProcessor(j,Se))),j.begin_suppress_tokens&&(ae??=new _.LogitsProcessorList,ae.push(new _.SuppressTokensAtBeginLogitsProcessor(j.begin_suppress_tokens,Se.length))),j.return_token_timestamps){if(!j.alignment_heads)throw new Error("Model generation config has no `alignment_heads`, token-level timestamps not available. See https://gist.github.com/hollance/42e32852f24243b748ae6bc1f985b13a on how to add this property to the generation config.");j.task==="translate"&&console.warn("Token-level timestamps may not be reliable for task 'translate'."),j.output_attentions=!0,j.return_dict_in_generate=!0}let Oe=await super.generate({inputs:w,generation_config:j,logits_processor:ae,decoder_input_ids:Se,...he});return j.return_token_timestamps&&(Oe.token_timestamps=this._extract_token_timestamps(Oe,j.alignment_heads,j.num_frames)),Oe}_extract_token_timestamps(w,j,ae=null,_e=.02){if(!w.cross_attentions)throw new Error("Model outputs must contain cross attentions to extract timestamps. This is most likely because the model was not exported with `output_attentions=True`.");ae==null&&console.warn("`num_frames` has not been set, meaning the entire audio will be analyzed. This may lead to inaccurate token-level timestamps for short audios (< 30 seconds).");let he=this.config.median_filter_width;he===void 0&&(console.warn("Model config has no `median_filter_width`, using default value of 7."),he=7);let Se=w.cross_attentions,Oe=Array.from({length:this.config.decoder_layers},(ht,_t)=>(0,d.cat)(Se.map($t=>$t[_t]),2)),Ge=(0,d.stack)(j.map(([ht,_t])=>{if(ht>=Oe.length)throw new Error(`Layer index ${ht} is out of bounds for cross attentions (length ${Oe.length}).`);return ae?Oe[ht].slice(null,_t,null,[0,ae]):Oe[ht].slice(null,_t)})).transpose(1,0,2,3),[st,vt]=(0,d.std_mean)(Ge,-2,0,!0),xt=Ge.clone();for(let ht=0;ht<xt.dims[0];++ht){let _t=xt[ht];for(let $t=0;$t<_t.dims[0];++$t){let Gt=_t[$t],tr=st[ht][$t][0].data,sr=vt[ht][$t][0].data;for(let mr=0;mr<Gt.dims[0];++mr){let br=Gt[mr].data;for(let Ft=0;Ft<br.length;++Ft)br[Ft]=(br[Ft]-sr[Ft])/tr[Ft];br.set((0,h.medianFilter)(br,he))}}}let Et=[(0,d.mean)(xt,1)],mt=w.sequences.dims,Bt=new d.Tensor("float32",new Float32Array(mt[0]*mt[1]),mt);for(let ht=0;ht<mt[0];++ht){let _t=Et[ht].neg().squeeze_(0),[$t,Gt]=(0,h.dynamic_time_warping)(_t.tolist()),tr=Array.from({length:$t.length-1},(br,Ft)=>$t[Ft+1]-$t[Ft]),sr=(0,i.mergeArrays)([1],tr).map(br=>!!br),mr=[];for(let br=0;br<sr.length;++br)sr[br]&&mr.push(Gt[br]*_e);Bt[ht].data.set(mr,1)}return Bt}}class Sn extends Us{}class Ko extends A{requires_attention_mask=!1;main_input_name="input_values";forward_params=["input_values","decoder_input_ids","past_key_values"]}class Zi extends Ko{}class Fn extends Ko{}class ba extends A{main_input_name="pixel_values";forward_params=["pixel_values","decoder_input_ids","encoder_hidden_states","past_key_values"]}class va extends A{forward_params=["input_ids","attention_mask","pixel_values","position_ids","past_key_values"]}class ro extends va{_merge_input_ids_with_image_features(w){let j=w.image_features.dims.at(-1),ae=w.image_features.view(-1,j);return Y({image_token_id:this.config.image_token_index,...w,image_features:ae})}}class xa extends ro{}class In extends ro{}class An extends A{forward_params=["input_ids","inputs_embeds","attention_mask","pixel_values","encoder_outputs","decoder_input_ids","decoder_inputs_embeds","decoder_attention_mask","past_key_values"];main_input_name="inputs_embeds"}class $n extends An{_merge_input_ids_with_image_features({inputs_embeds:w,image_features:j,input_ids:ae,attention_mask:_e}){return{inputs_embeds:(0,d.cat)([j,w],1),attention_mask:(0,d.cat)([(0,d.ones)(j.dims.slice(0,2)),_e],1)}}async _prepare_inputs_embeds({input_ids:w,pixel_values:j,inputs_embeds:ae,attention_mask:_e}){if(!w&&!j)throw new Error("Either `input_ids` or `pixel_values` should be provided.");let he,Se;return w&&(he=await this.encode_text({input_ids:w})),j&&(Se=await this.encode_image({pixel_values:j})),he&&Se?{inputs_embeds:ae,attention_mask:_e}=this._merge_input_ids_with_image_features({inputs_embeds:he,image_features:Se,input_ids:w,attention_mask:_e}):ae=he||Se,{inputs_embeds:ae,attention_mask:_e}}async forward({input_ids:w,pixel_values:j,attention_mask:ae,decoder_input_ids:_e,decoder_attention_mask:he,encoder_outputs:Se,past_key_values:Oe,inputs_embeds:Ge,decoder_inputs_embeds:st}){if(Ge||({inputs_embeds:Ge,attention_mask:ae}=await this._prepare_inputs_embeds({input_ids:w,pixel_values:j,inputs_embeds:Ge,attention_mask:ae})),!Se){let{last_hidden_state:Et}=await re(this,{inputs_embeds:Ge,attention_mask:ae});Se=Et}if(!st){if(!_e)throw new Error("Either `decoder_input_ids` or `decoder_inputs_embeds` should be provided.");st=await this.encode_text({input_ids:_e})}return await ne(this,{inputs_embeds:st,attention_mask:he,encoder_attention_mask:ae,encoder_hidden_states:Se,past_key_values:Oe},!0)}}class Dn extends A{forward_params=["input_ids","attention_mask","pixel_values","position_ids","past_key_values"]}class On extends Dn{_merge_input_ids_with_image_features(w){let j=w.image_features.dims.at(-1),ae=w.image_features.view(-1,j);return Y({image_token_id:this.config.image_token_index,...w,image_features:ae})}}class ya extends va{_merge_input_ids_with_image_features(w){let j=w.image_features.dims.at(-1),ae=w.image_features.view(-1,j);return Y({image_token_id:this.config.image_token_index,...w,image_features:ae})}}class Ln extends ya{}class Bn extends A{forward_params=["input_ids","attention_mask","inputs_embeds","per_layer_inputs","position_ids","pixel_values","input_features","input_features_mask","past_key_values"]}class Ta extends Bn{async forward({input_ids:w=null,attention_mask:j=null,pixel_values:ae=null,input_features:_e=null,input_features_mask:he=null,position_ids:Se=null,inputs_embeds:Oe=null,per_layer_inputs:Ge=null,past_key_values:st=null,generation_config:vt=null,logits_processor:xt=null,...Et}){if((!Oe||!Ge)&&({inputs_embeds:Oe,per_layer_inputs:Ge}=await W(this.sessions.embed_tokens,{input_ids:w}),w.dims[1]!==1)){if(ae){let{image_features:Bt}=await W(this.sessions.vision_encoder,{pixel_values:ae});({inputs_embeds:Oe,attention_mask:j}=this._merge_input_ids_with_image_features({image_features:Bt,inputs_embeds:Oe,input_ids:w,attention_mask:j}))}if(_e){let{audio_features:Bt}=await W(this.sessions.audio_encoder,{input_features:_e,input_features_mask:he});({inputs_embeds:Oe,attention_mask:j}=this._merge_input_ids_with_audio_features({audio_features:Bt,inputs_embeds:Oe,input_ids:w,attention_mask:j}))}}return await ne(this,{inputs_embeds:Oe,per_layer_inputs:Ge,past_key_values:st,attention_mask:j,position_ids:Se,generation_config:vt,logits_processor:xt},!0)}_merge_input_ids_with_image_features(w){let j=w.image_features.dims.at(-1),ae=w.image_features.view(-1,j);return Y({image_token_id:this.config.image_token_id,...w,image_features:ae})}_merge_input_ids_with_audio_features(w){let j=w.audio_features.dims.at(-1),ae=w.audio_features.view(-1,j);return H({audio_token_id:this.config.audio_token_id,...w,audio_features:ae})}}class mo extends A{forward_params=["input_ids","attention_mask","pixel_values","pixel_attention_mask","position_ids","past_key_values"]}class hs extends mo{async encode_image({pixel_values:w,pixel_attention_mask:j}){return(await W(this.sessions.vision_encoder,{pixel_values:w,pixel_attention_mask:j})).image_features}_merge_input_ids_with_image_features(w){let j=w.image_features.dims.at(-1),ae=w.image_features.view(-1,j);return Y({image_token_id:this.config.image_token_id,...w,image_features:ae})}}class Ho extends hs{}class zn extends A{forward_params=["input_ids","inputs_embeds","attention_mask","position_ids","pixel_values","image_sizes","past_key_values"]}class Pa extends zn{async forward({input_ids:w=null,attention_mask:j=null,pixel_values:ae=null,image_sizes:_e=null,position_ids:he=null,inputs_embeds:Se=null,past_key_values:Oe=null,generation_config:Ge=null,logits_processor:st=null,...vt}){if(!Se){let Et;if(ae&&w.dims[1]!==1){if(!_e)throw new Error("`image_sizes` must be provided when `pixel_values` is provided.");({image_features:Et}=await W(this.sessions.vision_encoder,{pixel_values:ae,image_sizes:_e}))}else{let mt=this.config.normalized_config.hidden_size;Et=new d.Tensor("float32",[],[0,mt])}({inputs_embeds:Se}=await W(this.sessions.prepare_inputs_embeds,{input_ids:w,image_features:Et}))}return await ne(this,{inputs_embeds:Se,past_key_values:Oe,attention_mask:j,position_ids:he,generation_config:Ge,logits_processor:st},!1)}}class fs extends A{}class qo extends fs{}class Rn extends fs{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"text_model"})}}class Ea extends fs{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"text_model"})}}class Nn extends fs{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"vision_model"})}}class ka extends fs{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"vision_model"})}}class Qo extends A{}class Ca extends Qo{}class jn extends Qo{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"text_model"})}}class Sa extends fs{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"vision_model"})}}class Fa extends A{}class ho extends Fa{}class ct extends A{}class Vn extends ct{async forward(w){let j=!w.input_ids,ae=!w.pixel_values;if(j&&ae)throw new Error("Either `input_ids` or `pixel_values` should be provided.");if(j&&(w.input_ids=(0,d.ones)([w.pixel_values.dims[0],1])),ae){let{image_size:st}=this.config.vision_config;w.pixel_values=(0,d.full)([0,3,st,st],0)}let{text_embeddings:_e,image_embeddings:he,l2norm_text_embeddings:Se,l2norm_image_embeddings:Oe}=await super.forward(w),Ge={};return j||(Ge.text_embeddings=_e,Ge.l2norm_text_embeddings=Se),ae||(Ge.image_embeddings=he,Ge.l2norm_image_embeddings=Oe),Ge}}class Ia extends ct{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"text_model"})}}class Aa extends ct{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"vision_model"})}}class so extends A{}class es extends so{}class fo extends so{}class go extends A{}class $a extends go{}class Da extends go{}class Xo extends A{}class Jo extends Xo{}class Oa extends Xo{}class Yo extends A{}class La extends Yo{}class Mo extends Yo{}class wo extends A{}class Zo extends wo{}class Ba extends wo{}class ea extends A{}class za extends ea{}class Ra extends ea{}class ta extends A{}class m extends ta{}class T extends ta{}class $ extends A{}class B extends ${}class V extends ${}class ie extends A{}class Ee extends ie{}class Be extends ie{}class Je extends A{}class nt extends Je{}class Tt extends A{}class Dt extends Tt{}class Wt extends Tt{}class xr extends A{}class Gs extends xr{}class Wn extends xr{}class el extends A{}class Pu extends el{}class Eu extends el{}class tl extends A{}class ku extends tl{}class Cu extends tl{}class rl extends A{}class Su extends rl{}class Fu extends rl{}class sl extends A{}class Iu extends sl{}class Au extends sl{}class ol extends A{}class $u extends ol{}class Du extends ol{}class al extends A{}class Ou extends al{}class Lu extends al{}class nl extends A{}class Bu extends nl{}class zu extends nl{}class il extends A{}class Ru extends il{}class Nu extends il{}class ll extends A{}class ju extends ll{}class Vu extends ll{}class cl extends A{}class Wu extends cl{}class Uu extends cl{}class dl extends A{}class Gu extends dl{}class Ku extends dl{}class ul extends A{}class Hu extends ul{}class qu extends ul{}class _l extends A{}class Qu extends _l{}class Xu extends _l{}class pl extends A{}class Ju extends pl{}class Yu extends pl{}class ml extends A{}class Zu extends ml{}class e_ extends ml{}class hl extends A{}class t_ extends hl{}class r_ extends hl{}class fl extends A{}class s_ extends fl{}class o_ extends fl{}class gl extends A{}class a_ extends gl{}class n_ extends gl{}class i_ extends A{forward_params=["input_ids","attention_mask","position_ids","past_key_values","pixel_values","image_grid_thw"]}class l_ extends i_{get_rope_index(w,j,ae,_e){let{vision_config:he,image_token_id:Se,video_token_id:Oe,vision_start_token_id:Ge}=this.config,st=he.spatial_merge_size??2,vt=[];if(j||ae){let xt=w.tolist();_e||(_e=(0,d.ones_like)(w));let Et=_e.tolist(),mt=Array.from({length:3},Gt=>Array.from({length:w.dims[0]},tr=>Array.from({length:w.dims[1]},sr=>1))),Bt=j?j.tolist():[],ht=ae?ae.tolist():[],_t=0,$t=0;for(let Gt=0;Gt<xt.length;++Gt){let tr=xt[Gt].filter((rr,kr)=>Et[Gt][kr]==1),mr=tr.reduce((rr,kr,no)=>(kr==Ge&&rr.push(no),rr),[]).map(rr=>tr[rr+1]),br=mr.filter(rr=>rr==Se).length,Ft=mr.filter(rr=>rr==Oe).length,cr=[],Ar=0,bo=br,Hr=Ft;for(let rr=0;rr<mr.length;++rr){let kr=tr.findIndex((xo,Ms)=>Ms>Ar&&xo==Se),no=tr.findIndex((xo,Ms)=>Ms>Ar&&xo==Oe),vo=bo>0&&kr!==-1?kr:tr.length+1,na=Hr>0&&no!==-1?no:tr.length+1,ii,bc,vc,xc;vo<na?([bc,vc,xc]=Bt[_t],++_t,--bo,ii=vo):([bc,vc,xc]=ht[$t],++$t,--Hr,ii=na);let[ST,yc,li]=[Number(bc),Math.floor(Number(vc)/st),Math.floor(Number(xc)/st)],Tc=ii-Ar,If=cr.length>0?(0,h.max)(cr.at(-1))[0]+1:0;cr.push(Array.from({length:3*Tc},(xo,Ms)=>If+Ms%Tc));let Pc=Tc+If,ci=ST*yc*li,FT=Array.from({length:ci},(xo,Ms)=>Pc+Math.floor(Ms/(yc*li))),IT=Array.from({length:ci},(xo,Ms)=>Pc+Math.floor(Ms/li)%yc),AT=Array.from({length:ci},(xo,Ms)=>Pc+Ms%li);cr.push([FT,IT,AT].flat()),Ar=ii+ci}if(Ar<tr.length){let rr=cr.length>0?(0,h.max)(cr.at(-1))[0]+1:0,kr=tr.length-Ar;cr.push(Array.from({length:3*kr},(no,vo)=>rr+vo%kr))}let gs=cr.reduce((rr,kr)=>rr+kr.length,0),oa=new Array(gs),aa=0;for(let rr=0;rr<3;++rr)for(let kr=0;kr<cr.length;++kr){let no=cr[kr],vo=no.length/3;for(let na=rr*vo;na<(rr+1)*vo;++na)oa[aa++]=no[na]}let ni=0,Va=Et[Gt];for(let rr=0;rr<Va.length;++rr)if(Va[rr]==1){for(let kr=0;kr<3;++kr)mt[kr][Gt][rr]=oa[kr*gs/3+ni];++ni}let CT=(0,h.max)(oa)[0];vt.push(CT+1-xt[Gt].length)}return[new d.Tensor("int64",mt.flat(1/0),[3,w.dims[0],w.dims[1]]),new d.Tensor("int64",vt,[vt.length,1])]}else if(_e){let{data:xt,dims:Et}=ue(_e),mt=BigInt64Array.from({length:3*xt.length},(ht,_t)=>xt[_t%xt.length]),Bt=Array.from({length:Et[0]},(ht,_t)=>(0,h.max)(xt.subarray(Et[1]*_t,Et[1]*(_t+1)))[0]+1n+BigInt(Et[1]));return[new d.Tensor("int64",mt,[3,...Et]),new d.Tensor("int64",Bt,[Bt.length,1])]}else{let[xt,Et]=w.dims,mt=BigInt64Array.from({length:3*xt*Et},(Bt,ht)=>BigInt(Math.floor(ht%Et/xt)));return[new d.Tensor("int64",mt,[3,...w.dims]),(0,d.zeros)([xt,1])]}}async encode_image({pixel_values:w,image_grid_thw:j}){return(await W(this.sessions.vision_encoder,{pixel_values:w,grid_thw:j})).image_features}_merge_input_ids_with_image_features(w){return Y({image_token_id:this.config.image_token_id,...w})}prepare_inputs_for_generation(w,j,ae){if(j.attention_mask&&!j.position_ids)if(!j.past_key_values)[j.position_ids,j.rope_deltas]=this.get_rope_index(j.input_ids,j.image_grid_thw,j.video_grid_thw,j.attention_mask);else{j.pixel_values=null;let _e=BigInt(Object.values(j.past_key_values)[0].dims.at(-2)),he=j.rope_deltas.map(Se=>_e+Se);j.position_ids=(0,d.stack)([he,he,he],0)}return j}}class Ml extends A{}class c_ extends Ml{}class d_ extends Ml{}class wl extends A{}class u_ extends wl{}class __ extends wl{}class bl extends A{}class p_ extends bl{}class m_ extends bl{}class vl extends A{}class h_ extends vl{}class f_ extends vl{}class xl extends A{}class g_ extends xl{}class M_ extends xl{}class yl extends A{}class w_ extends yl{}class b_ extends yl{async _call(w){return new Pt(await super._call(w))}}class Tl extends A{}class v_ extends Tl{}class x_ extends Tl{async _call(w){return new Pt(await super._call(w))}}class y_ extends A{}class T_ extends y_{}class Pl extends A{}class P_ extends Pl{}class E_ extends Pl{async _call(w){return new Pt(await super._call(w))}}class k_ extends A{}class C_ extends k_{}class El extends A{}class S_ extends El{}class F_ extends El{async _call(w){return new Pt(await super._call(w))}}class I_ extends A{}class A_ extends I_{}class kl extends A{}class $_ extends kl{}class D_ extends kl{async _call(w){return new Pt(await super._call(w))}}class O_ extends A{}class L_ extends O_{async _call(w){return new Sf(await super._call(w))}}class Cl extends A{}class B_ extends Cl{}class z_ extends Cl{async _call(w){return new Pt(await super._call(w))}}class Sl extends A{}class R_ extends Sl{}class N_ extends Sl{async _call(w){return new Pt(await super._call(w))}}class Fl extends A{}class j_ extends Fl{}class V_ extends Fl{}class Il extends A{}class W_ extends Il{}class U_ extends Il{}class Al extends A{}class G_ extends Al{}class K_ extends Al{async _call(w){return new Pt(await super._call(w))}}class Un extends A{}class H_ extends Un{}class q_ extends Un{async _call(w){return new Dl(await super._call(w))}}class $l extends Un{async _call(w){return new Q_(await super._call(w))}}class Dl extends le{constructor({logits:w,pred_boxes:j}){super(),this.logits=w,this.pred_boxes=j}}class Q_ extends le{constructor({logits:w,pred_boxes:j,pred_masks:ae}){super(),this.logits=w,this.pred_boxes=j,this.pred_masks=ae}}class Ol extends A{}class X_ extends Ol{}class J_ extends Ol{async _call(w){return new Na(await super._call(w))}}class Na extends le{constructor({logits:w,pred_boxes:j}){super(),this.logits=w,this.pred_boxes=j}}class Ll extends A{}class Y_ extends Ll{}class Z_ extends Ll{async _call(w){return new ep(await super._call(w))}}class ep extends Na{}class Bl extends A{}class tp extends Bl{}class rp extends Bl{async _call(w){return new sp(await super._call(w))}}class sp extends Na{}class zl extends A{}class op extends zl{}class ap extends zl{async _call(w){return new Na(await super._call(w))}}class Rl extends A{}class np extends Rl{}class ip extends Rl{async _call(w){return new lp(await super._call(w))}}class lp extends Dl{}class Nl extends A{}class cp extends Nl{}class dp extends Nl{async _call(w){return new Pt(await super._call(w))}}class jl extends A{}class up extends jl{}class _p extends jl{async _call(w){return new Pt(await super._call(w))}}class Vl extends A{}class pp extends Vl{}class mp extends Vl{async _call(w){return new Pt(await super._call(w))}}class Gn extends A{}class hp extends Gn{}class fp extends Gn{async _call(w){return new Pt(await super._call(w))}}class gp extends Gn{}class Wl extends A{}class Mp extends Wl{}class wp extends Wl{}class Ul extends A{}class bp extends Ul{}class vp extends Ul{}class xp extends A{}class yp extends xp{}class Kn extends A{}class Tp extends Kn{}class Pp extends Kn{}class Ep extends Kn{}class kp extends A{}class Cp extends kp{}class Sp extends A{}class Fp extends Sp{}class Ip extends A{}class Ap extends Ip{}class Gl extends A{}class $p extends Gl{}class Dp extends Gl{}class Kl extends A{}class Op extends Kl{}class Lp extends Kl{}class Bp extends A{}class zp extends Bp{}class Hl extends A{}class Rp extends Hl{}class Np extends Hl{async _call(w){return new Pt(await super._call(w))}}class ql extends A{}class jp extends ql{}class Vp extends ql{async _call(w){return new Pt(await super._call(w))}}class Ql extends A{}class Wp extends Ql{}class Up extends Ql{async _call(w){return new Pt(await super._call(w))}}class Xl extends A{}class Gp extends Xl{}class Kp extends Xl{async _call(w){return new Pt(await super._call(w))}}class Hp extends A{}class qp extends Hp{}class Qp extends A{}class Xp extends Qp{}class Jp extends A{}class Yp extends Jp{}class Jl extends A{}class Zp extends Jl{}class em extends Jl{async _call(w){return new tm(await super._call(w))}}class tm extends le{constructor({logits:w,pred_boxes:j}){super(),this.logits=w,this.pred_boxes=j}}class rm extends A{}class sm extends rm{async get_image_embeddings({pixel_values:w}){return await re(this,{pixel_values:w})}async forward(w){!w.image_embeddings||!w.image_positional_embeddings?w={...w,...await this.get_image_embeddings(w)}:w={...w},w.input_labels??=(0,d.ones)(w.input_points.dims.slice(0,-1));let j={image_embeddings:w.image_embeddings,image_positional_embeddings:w.image_positional_embeddings};return w.input_points&&(j.input_points=w.input_points),w.input_labels&&(j.input_labels=w.input_labels),w.input_boxes&&(j.input_boxes=w.input_boxes),await W(this.sessions.prompt_encoder_mask_decoder,j)}async _call(w){return new om(await super._call(w))}}class om extends le{constructor({iou_scores:w,pred_masks:j}){super(),this.iou_scores=w,this.pred_masks=j}}class am extends le{constructor({iou_scores:w,pred_masks:j,object_score_logits:ae}){super(),this.iou_scores=w,this.pred_masks=j,this.object_score_logits=ae}}class nm extends A{}class Hn extends nm{async get_image_embeddings({pixel_values:w}){return await re(this,{pixel_values:w})}async forward(w){let{num_feature_levels:j}=this.config.vision_config;if(Array.from({length:j},(Se,Oe)=>`image_embeddings.${Oe}`).some(Se=>!w[Se])?w={...w,...await this.get_image_embeddings(w)}:w={...w},w.input_points){if(w.input_boxes&&w.input_boxes.dims[1]!==1)throw new Error("When both `input_points` and `input_boxes` are provided, the number of boxes per image must be 1.");let Se=w.input_points.dims;w.input_labels??=(0,d.ones)(Se.slice(0,-1)),w.input_boxes??=(0,d.full)([Se[0],0,4],0)}else if(w.input_boxes){let Se=w.input_boxes.dims;w.input_labels=(0,d.full)([Se[0],Se[1],0],-1n),w.input_points=(0,d.full)([Se[0],1,0,2],0)}else throw new Error("At least one of `input_points` or `input_boxes` must be provided.");let _e=this.sessions.prompt_encoder_mask_decoder,he=(0,i.pick)(w,_e.inputNames);return await W(_e,he)}async _call(w){return new am(await super._call(w))}}class im extends Hn{}class lm extends Hn{}class Yl extends A{}class cm extends Yl{}class dm extends Yl{}class Zl extends A{}class um extends Zl{}class _m extends Zl{}class oo extends A{}class pm extends oo{}class mm extends oo{async _call(w){return new ao(await super._call(w))}}class hm extends oo{async _call(w){return new Pt(await super._call(w))}}class fm extends oo{async _call(w){return new Er(await super._call(w))}}class gm extends A{}class Mm extends gm{async _call(w){return new ao(await super._call(w))}}class ec extends A{}class wm extends ec{}class bm extends ec{async _call(w){return new Er(await super._call(w))}}class vm extends A{}class xm extends vm{}class qn extends A{}class ym extends qn{}class Tm extends qn{async _call(w){return new ao(await super._call(w))}}class Pm extends qn{async _call(w){return new Pt(await super._call(w))}}class ja extends A{}class Em extends ja{}class km extends ja{async _call(w){return new ao(await super._call(w))}}class Cm extends ja{async _call(w){return new Pt(await super._call(w))}}class Sm extends ja{async _call(w){return new Er(await super._call(w))}}class Qn extends A{}class Fm extends Qn{}class Im extends Qn{async _call(w){return new ao(await super._call(w))}}class Am extends Qn{async _call(w){return new Pt(await super._call(w))}}class L0 extends A{}class $m extends oo{}class Dm extends oo{async _call(w){return new ao(await super._call(w))}}class Om extends oo{async _call(w){return new Pt(await super._call(w))}}class ra extends A{}class Lm extends ra{}class Bm extends ra{async _call(w){return new ao(await super._call(w))}}class zm extends ra{async _call(w){return new Pt(await super._call(w))}}class Rm extends ra{async _call(w){return new Cf(await super._call(w))}}class Nm extends ra{async _call(w){return new Er(await super._call(w))}}class jm extends A{}class Vm extends jm{}class Xn extends A{}class B0 extends Xn{}class Wm extends Xn{}class Um extends Xn{async generate_speech(w,j,{threshold:ae=.5,minlenratio:_e=0,maxlenratio:he=20,vocoder:Se=null}={}){let Oe={input_ids:w},{encoder_outputs:Ge,encoder_attention_mask:st}=await re(this,Oe),vt=Ge.dims[1]/this.config.reduction_factor,xt=Math.floor(vt*he),Et=Math.floor(vt*_e),mt=this.config.num_mel_bins,Bt=[],ht=null,_t=null,$t=0;for(;;){++$t;let sr=J(!!_t),mr;_t?mr=_t.output_sequence_out:mr=new d.Tensor("float32",new Float32Array(mt),[1,1,mt]);let br={use_cache_branch:sr,output_sequence:mr,encoder_attention_mask:st,speaker_embeddings:j,encoder_hidden_states:Ge};this.addPastKeyValues(br,ht),_t=await W(this.sessions.decoder_model_merged,br),ht=this.getPastKeyValues(_t,ht);let{prob:Ft,spectrum:cr}=_t;if(Bt.push(cr),$t>=Et&&(Array.from(Ft.data).filter(Ar=>Ar>=ae).length>0||$t>=xt))break}let Gt=(0,d.cat)(Bt),{waveform:tr}=await W(Se.sessions.model,{spectrogram:Gt});return{spectrogram:Gt,waveform:tr}}}class Gm extends A{main_input_name="spectrogram"}class Km extends A{}class tc extends Km{async generate_speech({input_ids:w,attention_mask:j,style:ae,num_inference_steps:_e=5,speed:he=1.05}){let{sampling_rate:Se,chunk_compress_factor:Oe,base_chunk_size:Ge,latent_dim:st}=this.config,{last_hidden_state:vt,durations:xt}=await W(this.sessions.text_encoder,{input_ids:w,attention_mask:j,style:ae});xt.div_(he);let Et=xt.max().item()*Se,mt=Ge*Oe,Bt=Math.floor((Et+mt-1)/mt),ht=w.dims[0],_t=(0,d.ones)([ht,Bt]),$t=(0,d.full)([ht],_e),Gt=(0,d.randn)([ht,st*Oe,Bt]);for(let sr=0;sr<_e;++sr){let mr=(0,d.full)([ht],sr);({denoised_latents:Gt}=await W(this.sessions.latent_denoiser,{style:ae,noisy_latents:Gt,latent_mask:_t,encoder_outputs:vt,attention_mask:j,timestep:mr,num_inference_steps:$t}))}let{waveform:tr}=await W(this.sessions.voice_decoder,{latents:Gt});return{waveform:tr,durations:xt}}}class Hm extends A{}class qm extends Hm{}class rc extends A{}class Qm extends rc{}class Xm extends rc{}class sc extends A{}class Jm extends sc{}class Ym extends sc{}class oc extends A{}class Zm extends oc{}class eh extends oc{}class ac extends A{}class th extends ac{}class rh extends ac{}class nc extends A{}class sh extends nc{}class oh extends nc{}class ic extends A{}class ah extends ic{}class nh extends ic{}class Jn extends A{}class ih extends Jn{}class lh extends Jn{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"text_model"})}}class ch extends Jn{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"audio_model"})}}class dh extends A{}class lc extends dh{async _call(w){return new Ff(await super._call(w))}}class Yn extends A{}class z0 extends Yn{}class uh extends Yn{}class _h extends Yn{}class cc extends A{}class ph extends cc{}class mh extends cc{}class dc extends A{}class hh extends dc{}class fh extends dc{async _call(w){return new Pt(await super._call(w))}}class uc extends A{}class R0 extends uc{}class N0 extends uc{}class _c extends A{forward_params=["input_ids","attention_mask","encoder_outputs","decoder_input_ids","decoder_attention_mask","past_key_values"];_apply_and_filter_by_delay_pattern_mask(w){let[j,ae]=w.dims,_e=this.config.decoder.num_codebooks,he=ae-_e,Se=0;for(let st=0;st<w.size;++st){if(w.data[st]===this.config.decoder.pad_token_id)continue;let vt=st%ae,xt=Math.floor(st/ae)%_e,Et=vt-xt;Et>0&&Et<=he&&(w.data[Se++]=w.data[st])}let Oe=Math.floor(j/_e),Ge=Se/(Oe*_e);return new d.Tensor(w.type,w.data.slice(0,Se),[Oe,_e,Ge])}prepare_inputs_for_generation(w,j,ae){let _e=structuredClone(w);for(let Se=0;Se<_e.length;++Se)for(let Oe=0;Oe<_e[Se].length;++Oe)Se%this.config.decoder.num_codebooks>=Oe&&(_e[Se][Oe]=BigInt(this.config.decoder.pad_token_id));return ae.guidance_scale!==null&&ae.guidance_scale>1&&(_e=_e.concat(_e)),super.prepare_inputs_for_generation(_e,j,ae)}async generate(w){let j=await super.generate(w),ae=this._apply_and_filter_by_delay_pattern_mask(j).unsqueeze_(0),{audio_values:_e}=await W(this.sessions.encodec_decode,{audio_codes:ae});return _e}}class Zn extends A{}class gh extends Zn{}class Mh extends Zn{async _call(w){return new Pt(await super._call(w))}}class wh extends Zn{}class ei extends A{}class bh extends ei{}class vh extends ei{async _call(w){return new Pt(await super._call(w))}}class xh extends ei{}class ti extends A{}class yh extends ti{}class Th extends ti{async _call(w){return new Pt(await super._call(w))}}class Ph extends ti{}class ri extends A{}class Eh extends ri{}class kh extends ri{async _call(w){return new Pt(await super._call(w))}}class Ch extends ri{}class Sh extends A{}class Fh extends Sh{}class Ih extends A{}class Ah extends Ih{forward_params=["input_ids","pixel_values","images_seq_mask","images_emb_mask","attention_mask","position_ids","past_key_values"];constructor(...w){super(...w),this._generation_mode="text"}async forward(w){let j=this._generation_mode??"text",ae;if(j==="text"||!w.past_key_values){let Ge=this.sessions.prepare_inputs_embeds,st=(0,i.pick)(w,Ge.inputNames);ae=await W(Ge,st)}else{let Ge=this.sessions.gen_img_embeds,st=(0,i.pick)({image_ids:w.input_ids},Ge.inputNames);ae=await W(Ge,st)}let _e={...w,...ae},he=await ne(this,_e),Se=this.sessions[j==="text"?"lm_head":"gen_head"];if(!Se)throw new Error(`Unable to find "${Se}" generation head`);let Oe=await W(Se,(0,i.pick)(he,Se.inputNames));return{...ae,...he,...Oe}}async generate(w){return this._generation_mode="text",super.generate(w)}async generate_images(w){this._generation_mode="image";let j=(w.inputs??w[this.main_input_name]).dims[1],_e=(await super.generate(w)).slice(null,[j,null]),he=this.sessions.image_decode,{decoded_image:Se}=await W(he,{generated_tokens:_e}),Oe=Se.add_(1).mul_(255/2).clamp_(0,255).to("uint8"),Ge=[];for(let st of Oe){let vt=g.RawImage.fromTensor(st);Ge.push(vt)}return Ge}}class $h extends le{constructor({char_logits:w,bpe_logits:j,wp_logits:ae}){super(),this.char_logits=w,this.bpe_logits=j,this.wp_logits=ae}get logits(){return[this.char_logits,this.bpe_logits,this.wp_logits]}}class Dh extends A{}class Oh extends Dh{async _call(w){return new $h(await super._call(w))}}class pc extends A{}class Lh extends pc{}class Bh extends pc{}class mc extends A{}class zh extends mc{}class Rh extends mc{}class Nh extends A{forward_params=["input_ids","attention_mask","position_ids","audio_values","past_key_values"]}class hc extends Nh{_merge_input_ids_with_audio_features(w){let j=w.audio_features.dims.at(-1),ae=w.audio_features.view(-1,j);return H({audio_token_id:this.config.ignore_index??this.config.audio_token_id,...w,audio_features:ae})}}class jh extends hc{}class si extends A{main_input_name="input_values";forward_params=["input_values"]}class Vh extends le{constructor({audio_codes:w}){super(),this.audio_codes=w}}class Wh extends le{constructor({audio_values:w}){super(),this.audio_values=w}}class Uh extends si{async encode(w){return new Vh(await W(this.sessions.encoder_model,w))}async decode(w){return new Wh(await W(this.sessions.decoder_model,w))}}class Gh extends si{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"encoder_model"})}}class Kh extends si{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"decoder_model"})}}class oi extends A{main_input_name="input_values";forward_params=["input_values"]}class Hh extends le{constructor({audio_codes:w}){super(),this.audio_codes=w}}class qh extends le{constructor({audio_values:w}){super(),this.audio_values=w}}class Qh extends oi{async encode(w){return new Hh(await W(this.sessions.encoder_model,w))}async decode(w){return new qh(await W(this.sessions.decoder_model,w))}}class Xh extends oi{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"encoder_model"})}}class Jh extends oi{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"decoder_model"})}}class ai extends A{main_input_name="input_values";forward_params=["input_values"]}class Yh extends ai{async encode(w){return await W(this.sessions.encoder_model,w)}async decode(w){return await W(this.sessions.decoder_model,w)}}class Zh extends ai{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"encoder_model"})}}class ef extends ai{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"decoder_model"})}}class Ut{static MODEL_CLASS_MAPPINGS=null;static BASE_IF_FAIL=!1;static async from_pretrained(w,{progress_callback:j=null,config:ae=null,cache_dir:_e=null,local_files_only:he=!1,revision:Se="main",model_file_name:Oe=null,subfolder:Ge="onnx",device:st=null,dtype:vt=null,use_external_data_format:xt=null,session_options:Et={}}={}){let mt={progress_callback:j,config:ae,cache_dir:_e,local_files_only:he,revision:Se,model_file_name:Oe,subfolder:Ge,device:st,dtype:vt,use_external_data_format:xt,session_options:Et};if(mt.config=await s.AutoConfig.from_pretrained(w,mt),!this.MODEL_CLASS_MAPPINGS)throw new Error("`MODEL_CLASS_MAPPINGS` not implemented for this type of `AutoClass`: "+this.name);let Bt=mt.config.model_type;for(let ht of this.MODEL_CLASS_MAPPINGS){let _t=ht.get(Bt);if(!_t){for(let $t of ht.values())if($t[0]===Bt){_t=$t;break}if(!_t)continue}return await _t[1].from_pretrained(w,mt)}if(this.BASE_IF_FAIL)return kf.has(Bt)||console.warn(`Unknown model class "${Bt}", attempting to construct from base class.`),await A.from_pretrained(w,mt);throw Error(`Unsupported model type: ${Bt}`)}}let j0=new Map([["bert",["BertModel",Ae]],["neobert",["NeoBertModel",We]],["modernbert",["ModernBertModel",Qe]],["nomic_bert",["NomicBertModel",zt]],["roformer",["RoFormerModel",zs]],["electra",["ElectraModel",St]],["esm",["EsmModel",ps]],["convbert",["ConvBertModel",Rs]],["camembert",["CamembertModel",Z]],["deberta",["DebertaModel",wt]],["deberta-v2",["DebertaV2Model",Or]],["mpnet",["MPNetModel",js]],["albert",["AlbertModel",Ye]],["distilbert",["DistilBertModel",Ns]],["roberta",["RobertaModel",hn]],["xlm",["XLMModel",wn]],["xlm-roberta",["XLMRobertaModel",Tn]],["clap",["ClapModel",ih]],["clip",["CLIPModel",qo]],["clipseg",["CLIPSegModel",es]],["chinese_clip",["ChineseCLIPModel",ho]],["siglip",["SiglipModel",Ca]],["jina_clip",["JinaCLIPModel",Vn]],["mobilebert",["MobileBertModel",Wr]],["squeezebert",["SqueezeBertModel",G]],["wav2vec2",["Wav2Vec2Model",pm]],["wav2vec2-bert",["Wav2Vec2BertModel",Fm]],["unispeech",["UniSpeechModel",ym]],["unispeech-sat",["UniSpeechSatModel",Em]],["hubert",["HubertModel",$m]],["wavlm",["WavLMModel",Lm]],["audio-spectrogram-transformer",["ASTModel",kn]],["vits",["VitsModel",lc]],["pyannote",["PyAnnoteModel",wm]],["wespeaker-resnet",["WeSpeakerResNetModel",xm]],["detr",["DetrModel",H_]],["rt_detr",["RTDetrModel",X_]],["rt_detr_v2",["RTDetrV2Model",Y_]],["rf_detr",["RFDetrModel",tp]],["d_fine",["DFineModel",op]],["table-transformer",["TableTransformerModel",np]],["vit",["ViTModel",w_]],["ijepa",["IJepaModel",v_]],["pvt",["PvtModel",P_]],["vit_msn",["ViTMSNModel",S_]],["vit_mae",["ViTMAEModel",C_]],["groupvit",["GroupViTModel",A_]],["fastvit",["FastViTModel",$_]],["mobilevit",["MobileViTModel",B_]],["mobilevitv2",["MobileViTV2Model",R_]],["owlvit",["OwlViTModel",j_]],["owlv2",["Owlv2Model",W_]],["beit",["BeitModel",G_]],["deit",["DeiTModel",cp]],["hiera",["HieraModel",up]],["convnext",["ConvNextModel",Rp]],["convnextv2",["ConvNextV2Model",jp]],["dinov2",["Dinov2Model",Wp]],["dinov2_with_registers",["Dinov2WithRegistersModel",Gp]],["dinov3_vit",["DINOv3ViTModel",qp]],["dinov3_convnext",["DINOv3ConvNextModel",Xp]],["resnet",["ResNetModel",pp]],["swin",["SwinModel",hp]],["swin2sr",["Swin2SRModel",Mp]],["donut-swin",["DonutSwinModel",zp]],["yolos",["YolosModel",Zp]],["dpt",["DPTModel",bp]],["glpn",["GLPNModel",Op]],["hifigan",["SpeechT5HifiGan",Gm]],["efficientnet",["EfficientNetModel",hh]],["decision_transformer",["DecisionTransformerModel",Fh]],["patchtst",["PatchTSTForPrediction",Lh]],["patchtsmixer",["PatchTSMixerForPrediction",zh]],["mobilenet_v1",["MobileNetV1Model",gh]],["mobilenet_v2",["MobileNetV2Model",bh]],["mobilenet_v3",["MobileNetV3Model",yh]],["mobilenet_v4",["MobileNetV4Model",Eh]],["maskformer",["MaskFormerModel",$p]],["mgp-str",["MgpstrForSceneTextRecognition",Oh]],["style_text_to_speech_2",["StyleTextToSpeech2Model",Vm]]]),V0=new Map([["t5",["T5Model",yt]],["longt5",["LongT5Model",nr]],["mt5",["MT5Model",Tr]],["bart",["BartModel",Zr]],["mbart",["MBartModel",Jr]],["marian",["MarianModel",cm]],["whisper",["WhisperModel",wa]],["m2m_100",["M2M100Model",um]],["blenderbot",["BlenderbotModel",pr]],["blenderbot-small",["BlenderbotSmallModel",Kr]]]),W0=new Map([["mimi",["MimiModel",Uh]],["dac",["DacModel",Qh]],["snac",["SnacModel",Yh]]]),U0=new Map([["bloom",["BloomModel",p_]],["jais",["JAISModel",Jo]],["gpt2",["GPT2Model",$a]],["gptj",["GPTJModel",za]],["gpt_bigcode",["GPTBigCodeModel",m]],["gpt_neo",["GPTNeoModel",La]],["gpt_neox",["GPTNeoXModel",Zo]],["codegen",["CodeGenModel",B]],["llama",["LlamaModel",Ee]],["nanochat",["NanoChatModel",Dt]],["arcee",["ArceeModel",Gs]],["lfm2",["Lfm2Model",Pu]],["smollm3",["SmolLM3Model",ku]],["exaone",["ExaoneModel",$u]],["olmo",["OlmoModel",Bu]],["olmo2",["Olmo2Model",Ru]],["mobilellm",["MobileLLMModel",Ou]],["granite",["GraniteModel",ju]],["granitemoehybrid",["GraniteMoeHybridModel",Wu]],["cohere",["CohereModel",Gu]],["gemma",["GemmaModel",Hu]],["gemma2",["Gemma2Model",Qu]],["vaultgemma",["VaultGemmaModel",Ju]],["gemma3_text",["Gemma3Model",Zu]],["helium",["HeliumModel",Su]],["glm",["GlmModel",Iu]],["openelm",["OpenELMModel",t_]],["qwen2",["Qwen2Model",s_]],["qwen3",["Qwen3Model",a_]],["phi",["PhiModel",c_]],["phi3",["Phi3Model",u_]],["mpt",["MptModel",h_]],["opt",["OPTModel",g_]],["mistral",["MistralModel",Qm]],["ministral",["MinistralModel",Jm]],["ministral3",["Ministral3Model",Zm]],["ernie4_5",["Ernie4_5Model",th]],["starcoder2",["Starcoder2Model",sh]],["falcon",["FalconModel",ah]],["stablelm",["StableLmModel",ph]],["modernbert-decoder",["ModernBertDecoderModel",At]]]),fc=new Map([["speecht5",["SpeechT5ForSpeechToText",Wm]],["whisper",["WhisperForConditionalGeneration",Us]],["lite-whisper",["LiteWhisperForConditionalGeneration",Sn]],["moonshine",["MoonshineForConditionalGeneration",Fn]]]),tf=new Map([["speecht5",["SpeechT5ForTextToSpeech",Um]]]),rf=new Map([["vits",["VitsModel",lc]],["musicgen",["MusicgenForConditionalGeneration",_c]],["supertonic",["SupertonicForConditionalGeneration",tc]]]),sf=new Map([["bert",["BertForSequenceClassification",pe]],["neobert",["NeoBertForSequenceClassification",Re]],["modernbert",["ModernBertForSequenceClassification",pt]],["roformer",["RoFormerForSequenceClassification",Zs]],["electra",["ElectraForSequenceClassification",k]],["esm",["EsmForSequenceClassification",As]],["convbert",["ConvBertForSequenceClassification",Cs]],["camembert",["CamembertForSequenceClassification",xe]],["deberta",["DebertaForSequenceClassification",gt]],["deberta-v2",["DebertaV2ForSequenceClassification",Lr]],["mpnet",["MPNetForSequenceClassification",Vs]],["albert",["AlbertForSequenceClassification",Xe]],["distilbert",["DistilBertForSequenceClassification",as]],["roberta",["RobertaForSequenceClassification",fa]],["xlm",["XLMForSequenceClassification",vn]],["xlm-roberta",["XLMRobertaForSequenceClassification",En]],["bart",["BartForSequenceClassification",vr]],["mbart",["MBartForSequenceClassification",Fr]],["mobilebert",["MobileBertForSequenceClassification",Ue]],["squeezebert",["SqueezeBertForSequenceClassification",se]]]),of=new Map([["bert",["BertForTokenClassification",Pe]],["neobert",["NeoBertForTokenClassification",Ne]],["modernbert",["ModernBertForTokenClassification",Ke]],["roformer",["RoFormerForTokenClassification",or]],["electra",["ElectraForTokenClassification",Q]],["esm",["EsmForTokenClassification",$s]],["convbert",["ConvBertForTokenClassification",qt]],["camembert",["CamembertForTokenClassification",et]],["deberta",["DebertaForTokenClassification",Nt]],["deberta-v2",["DebertaV2ForTokenClassification",_s]],["mpnet",["MPNetForTokenClassification",Wo]],["distilbert",["DistilBertForTokenClassification",Nr]],["roberta",["RobertaForTokenClassification",gn]],["xlm",["XLMForTokenClassification",xn]],["xlm-roberta",["XLMRobertaForTokenClassification",ga]]]),gc=new Map([["t5",["T5ForConditionalGeneration",Xt]],["longt5",["LongT5ForConditionalGeneration",Br]],["mt5",["MT5ForConditionalGeneration",zr]],["bart",["BartForConditionalGeneration",Yt]],["mbart",["MBartForConditionalGeneration",ms]],["marian",["MarianMTModel",dm]],["m2m_100",["M2M100ForConditionalGeneration",_m]],["blenderbot",["BlenderbotForConditionalGeneration",wr]],["blenderbot-small",["BlenderbotSmallForConditionalGeneration",Ws]]]),Mc=new Map([["bloom",["BloomForCausalLM",m_]],["gpt2",["GPT2LMHeadModel",Da]],["jais",["JAISLMHeadModel",Oa]],["gptj",["GPTJForCausalLM",Ra]],["gpt_bigcode",["GPTBigCodeForCausalLM",T]],["gpt_neo",["GPTNeoForCausalLM",Mo]],["gpt_neox",["GPTNeoXForCausalLM",Ba]],["codegen",["CodeGenForCausalLM",V]],["llama",["LlamaForCausalLM",Be]],["nanochat",["NanoChatForCausalLM",Wt]],["llama4_text",["Llama4ForCausalLM",nt]],["arcee",["ArceeForCausalLM",Wn]],["lfm2",["Lfm2ForCausalLM",Eu]],["smollm3",["SmolLM3ForCausalLM",Cu]],["exaone",["ExaoneForCausalLM",Du]],["olmo",["OlmoForCausalLM",zu]],["olmo2",["Olmo2ForCausalLM",Nu]],["mobilellm",["MobileLLMForCausalLM",Lu]],["granite",["GraniteForCausalLM",Vu]],["granitemoehybrid",["GraniteMoeHybridForCausalLM",Uu]],["cohere",["CohereForCausalLM",Ku]],["gemma",["GemmaForCausalLM",qu]],["gemma2",["Gemma2ForCausalLM",Xu]],["vaultgemma",["VaultGemmaForCausalLM",Yu]],["gemma3_text",["Gemma3ForCausalLM",e_]],["helium",["HeliumForCausalLM",Fu]],["glm",["GlmForCausalLM",Au]],["openelm",["OpenELMForCausalLM",r_]],["qwen2",["Qwen2ForCausalLM",o_]],["qwen3",["Qwen3ForCausalLM",n_]],["phi",["PhiForCausalLM",d_]],["phi3",["Phi3ForCausalLM",__]],["mpt",["MptForCausalLM",f_]],["opt",["OPTForCausalLM",M_]],["mbart",["MBartForCausalLM",is]],["mistral",["MistralForCausalLM",Xm]],["ministral",["MinistralForCausalLM",Ym]],["ministral3",["Ministral3ForCausalLM",eh]],["ernie4_5",["Ernie4_5ForCausalLM",rh]],["starcoder2",["Starcoder2ForCausalLM",oh]],["falcon",["FalconForCausalLM",nh]],["trocr",["TrOCRForCausalLM",qm]],["stablelm",["StableLmForCausalLM",mh]],["modernbert-decoder",["ModernBertDecoderForCausalLM",Lt]],["phi3_v",["Phi3VForCausalLM",Pa]]]),G0=new Map([["multi_modality",["MultiModalityCausalLM",Ah]]]),af=new Map([["bert",["BertForMaskedLM",ve]],["neobert",["NeoBertForMaskedLM",$e]],["modernbert",["ModernBertForMaskedLM",je]],["roformer",["RoFormerForMaskedLM",Ys]],["electra",["ElectraForMaskedLM",Xr]],["esm",["EsmForMaskedLM",Is]],["convbert",["ConvBertForMaskedLM",ft]],["camembert",["CamembertForMaskedLM",ce]],["deberta",["DebertaForMaskedLM",tt]],["deberta-v2",["DebertaV2ForMaskedLM",Cr]],["mpnet",["MPNetForMaskedLM",Ds]],["albert",["AlbertForMaskedLM",He]],["distilbert",["DistilBertForMaskedLM",ar]],["roberta",["RobertaForMaskedLM",fn]],["xlm",["XLMWithLMHeadModel",bn]],["xlm-roberta",["XLMRobertaForMaskedLM",Pn]],["mobilebert",["MobileBertForMaskedLM",ze]],["squeezebert",["SqueezeBertForMaskedLM",te]]]),nf=new Map([["bert",["BertForQuestionAnswering",fe]],["neobert",["NeoBertForQuestionAnswering",ot]],["roformer",["RoFormerForQuestionAnswering",Dr]],["electra",["ElectraForQuestionAnswering",N]],["convbert",["ConvBertForQuestionAnswering",Ss]],["camembert",["CamembertForQuestionAnswering",ut]],["deberta",["DebertaForQuestionAnswering",Qt]],["deberta-v2",["DebertaV2ForQuestionAnswering",Fs]],["mpnet",["MPNetForQuestionAnswering",de]],["albert",["AlbertForQuestionAnswering",Ze]],["distilbert",["DistilBertForQuestionAnswering",Gr]],["roberta",["RobertaForQuestionAnswering",Mn]],["xlm",["XLMForQuestionAnswering",yn]],["xlm-roberta",["XLMRobertaForQuestionAnswering",Ma]],["mobilebert",["MobileBertForQuestionAnswering",at]],["squeezebert",["SqueezeBertForQuestionAnswering",me]]]),wc=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",ba]],["idefics3",["Idefics3ForConditionalGeneration",hs]],["smolvlm",["SmolVLMForConditionalGeneration",Ho]]]),lf=new Map([["llava",["LlavaForConditionalGeneration",ro]],["llava_onevision",["LlavaOnevisionForConditionalGeneration",xa]],["moondream1",["Moondream1ForConditionalGeneration",In]],["florence2",["Florence2ForConditionalGeneration",$n]],["qwen2-vl",["Qwen2VLForConditionalGeneration",l_]],["idefics3",["Idefics3ForConditionalGeneration",hs]],["smolvlm",["SmolVLMForConditionalGeneration",Ho]],["paligemma",["PaliGemmaForConditionalGeneration",On]],["llava_qwen2",["LlavaQwen2ForCausalLM",ya]],["gemma3n",["Gemma3nForConditionalGeneration",Ta]],["mistral3",["Mistral3ForConditionalGeneration",Ln]]]),cf=new Map([["ultravox",["UltravoxModel",hc]],["voxtral",["VoxtralForConditionalGeneration",jh]]]),K0=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",ba]]]),df=new Map([["vit",["ViTForImageClassification",b_]],["ijepa",["IJepaForImageClassification",x_]],["pvt",["PvtForImageClassification",E_]],["vit_msn",["ViTMSNForImageClassification",F_]],["fastvit",["FastViTForImageClassification",D_]],["mobilevit",["MobileViTForImageClassification",z_]],["mobilevitv2",["MobileViTV2ForImageClassification",N_]],["beit",["BeitForImageClassification",K_]],["deit",["DeiTForImageClassification",dp]],["hiera",["HieraForImageClassification",_p]],["convnext",["ConvNextForImageClassification",Np]],["convnextv2",["ConvNextV2ForImageClassification",Vp]],["dinov2",["Dinov2ForImageClassification",Up]],["dinov2_with_registers",["Dinov2WithRegistersForImageClassification",Kp]],["resnet",["ResNetForImageClassification",mp]],["swin",["SwinForImageClassification",fp]],["segformer",["SegformerForImageClassification",uh]],["efficientnet",["EfficientNetForImageClassification",fh]],["mobilenet_v1",["MobileNetV1ForImageClassification",Mh]],["mobilenet_v2",["MobileNetV2ForImageClassification",vh]],["mobilenet_v3",["MobileNetV3ForImageClassification",Th]],["mobilenet_v4",["MobileNetV4ForImageClassification",kh]]]),uf=new Map([["detr",["DetrForObjectDetection",q_]],["rt_detr",["RTDetrForObjectDetection",J_]],["rt_detr_v2",["RTDetrV2ForObjectDetection",Z_]],["rf_detr",["RFDetrForObjectDetection",rp]],["d_fine",["DFineForObjectDetection",ap]],["table-transformer",["TableTransformerForObjectDetection",ip]],["yolos",["YolosForObjectDetection",em]]]),_f=new Map([["owlvit",["OwlViTForObjectDetection",V_]],["owlv2",["Owlv2ForObjectDetection",U_]],["grounding-dino",["GroundingDinoForObjectDetection",Yp]]]),sa=new Map([["detr",["DetrForSegmentation",$l]],["clipseg",["CLIPSegForImageSegmentation",fo]]]),pf=new Map([["segformer",["SegformerForSemanticSegmentation",_h]],["sapiens",["SapiensForSemanticSegmentation",Tp]],["swin",["SwinForSemanticSegmentation",gp]],["mobilenet_v1",["MobileNetV1ForSemanticSegmentation",wh]],["mobilenet_v2",["MobileNetV2ForSemanticSegmentation",xh]],["mobilenet_v3",["MobileNetV3ForSemanticSegmentation",Ph]],["mobilenet_v4",["MobileNetV4ForSemanticSegmentation",Ch]]]),mf=new Map([["detr",["DetrForSegmentation",$l]],["maskformer",["MaskFormerForInstanceSegmentation",Dp]]]),hf=new Map([["sam",["SamModel",sm]],["sam2",["Sam2Model",Hn]],["edgetam",["EdgeTamModel",im]],["sam3_tracker",["Sam3TrackerModel",lm]]]),ff=new Map([["wav2vec2",["Wav2Vec2ForCTC",mm]],["wav2vec2-bert",["Wav2Vec2BertForCTC",Im]],["unispeech",["UniSpeechForCTC",Tm]],["unispeech-sat",["UniSpeechSatForCTC",km]],["wavlm",["WavLMForCTC",Bm]],["hubert",["HubertForCTC",Dm]],["parakeet_ctc",["ParakeetForCTC",Mm]]]),gf=new Map([["wav2vec2",["Wav2Vec2ForSequenceClassification",hm]],["wav2vec2-bert",["Wav2Vec2BertForSequenceClassification",Am]],["unispeech",["UniSpeechForSequenceClassification",Pm]],["unispeech-sat",["UniSpeechSatForSequenceClassification",Cm]],["wavlm",["WavLMForSequenceClassification",zm]],["hubert",["HubertForSequenceClassification",Om]],["audio-spectrogram-transformer",["ASTForAudioClassification",Cn]]]),Mf=new Map([["wavlm",["WavLMForXVector",Rm]]]),wf=new Map([["unispeech-sat",["UniSpeechSatForAudioFrameClassification",Sm]],["wavlm",["WavLMForAudioFrameClassification",Nm]],["wav2vec2",["Wav2Vec2ForAudioFrameClassification",fm]],["pyannote",["PyAnnoteForAudioFrameClassification",bm]]]),bf=new Map([["vitmatte",["VitMatteForImageMatting",L_]]]),H0=new Map([["patchtst",["PatchTSTForPrediction",Bh]],["patchtsmixer",["PatchTSMixerForPrediction",Rh]]]),vf=new Map([["swin2sr",["Swin2SRForImageSuperResolution",wp]]]),xf=new Map([["dpt",["DPTForDepthEstimation",vp]],["depth_anything",["DepthAnythingForDepthEstimation",yp]],["glpn",["GLPNForDepthEstimation",Lp]],["sapiens",["SapiensForDepthEstimation",Pp]],["depth_pro",["DepthProForDepthEstimation",Cp]],["metric3d",["Metric3DForDepthEstimation",Fp]],["metric3dv2",["Metric3Dv2ForDepthEstimation",Ap]]]),yf=new Map([["sapiens",["SapiensForNormalEstimation",Ep]]]),Tf=new Map([["vitpose",["VitPoseForPoseEstimation",T_]]]),Pf=new Map([["clip",["CLIPVisionModelWithProjection",ka]],["siglip",["SiglipVisionModel",Sa]],["jina_clip",["JinaCLIPVisionModel",Aa]]]),Ef=[[j0,y.EncoderOnly],[V0,y.EncoderDecoder],[U0,y.DecoderOnly],[W0,y.AutoEncoder],[sf,y.EncoderOnly],[of,y.EncoderOnly],[gc,y.Seq2Seq],[fc,y.Seq2Seq],[Mc,y.DecoderOnly],[G0,y.MultiModality],[af,y.EncoderOnly],[nf,y.EncoderOnly],[wc,y.Vision2Seq],[lf,y.ImageTextToText],[cf,y.AudioTextToText],[df,y.EncoderOnly],[sa,y.EncoderOnly],[mf,y.EncoderOnly],[pf,y.EncoderOnly],[bf,y.EncoderOnly],[H0,y.EncoderOnly],[vf,y.EncoderOnly],[xf,y.EncoderOnly],[yf,y.EncoderOnly],[Tf,y.EncoderOnly],[uf,y.EncoderOnly],[_f,y.EncoderOnly],[hf,y.MaskGeneration],[ff,y.EncoderOnly],[gf,y.EncoderOnly],[tf,y.Seq2Seq],[rf,y.EncoderOnly],[Mf,y.EncoderOnly],[wf,y.EncoderOnly],[Pf,y.EncoderOnly]];for(let[M,w]of Ef)for(let[j,ae]of M.values())P.set(j,w),f.set(ae,j),I.set(j,ae);let q0=[["MusicgenForConditionalGeneration",_c,y.Musicgen],["Phi3VForCausalLM",Pa,y.Phi3V],["CLIPTextModelWithProjection",Ea,y.EncoderOnly],["SiglipTextModel",jn,y.EncoderOnly],["JinaCLIPTextModel",Ia,y.EncoderOnly],["ClapTextModelWithProjection",lh,y.EncoderOnly],["ClapAudioModelWithProjection",ch,y.EncoderOnly],["DacEncoderModel",Xh,y.EncoderOnly],["DacDecoderModel",Jh,y.EncoderOnly],["MimiEncoderModel",Gh,y.EncoderOnly],["MimiDecoderModel",Kh,y.EncoderOnly],["SnacEncoderModel",Zh,y.EncoderOnly],["SnacDecoderModel",ef,y.EncoderOnly],["Gemma3nForConditionalGeneration",Ta,y.ImageAudioTextToText],["SupertonicForConditionalGeneration",tc,y.Supertonic]];for(let[M,w,j]of q0)P.set(M,j),f.set(w,M),I.set(M,w);let kf=new Map([["modnet",sa],["birefnet",sa],["isnet",sa],["ben",sa]]);for(let[M,w]of kf.entries())w.set(M,["PreTrainedModel",A]),P.set(M,y.EncoderOnly),f.set(A,M),I.set(M,A);class Q0 extends Ut{static MODEL_CLASS_MAPPINGS=Ef.map(w=>w[0]);static BASE_IF_FAIL=!0}class X0 extends Ut{static MODEL_CLASS_MAPPINGS=[sf]}class J0 extends Ut{static MODEL_CLASS_MAPPINGS=[of]}class Y0 extends Ut{static MODEL_CLASS_MAPPINGS=[gc]}class Z0 extends Ut{static MODEL_CLASS_MAPPINGS=[fc]}class eT extends Ut{static MODEL_CLASS_MAPPINGS=[tf]}class tT extends Ut{static MODEL_CLASS_MAPPINGS=[rf]}class rT extends Ut{static MODEL_CLASS_MAPPINGS=[Mc]}class sT extends Ut{static MODEL_CLASS_MAPPINGS=[af]}class oT extends Ut{static MODEL_CLASS_MAPPINGS=[nf]}class aT extends Ut{static MODEL_CLASS_MAPPINGS=[wc]}class nT extends Ut{static MODEL_CLASS_MAPPINGS=[df]}class iT extends Ut{static MODEL_CLASS_MAPPINGS=[sa]}class lT extends Ut{static MODEL_CLASS_MAPPINGS=[pf]}class cT extends Ut{static MODEL_CLASS_MAPPINGS=[mf]}class dT extends Ut{static MODEL_CLASS_MAPPINGS=[uf]}class uT extends Ut{static MODEL_CLASS_MAPPINGS=[_f]}class _T extends Ut{static MODEL_CLASS_MAPPINGS=[hf]}class pT extends Ut{static MODEL_CLASS_MAPPINGS=[ff]}class mT extends Ut{static MODEL_CLASS_MAPPINGS=[gf]}class hT extends Ut{static MODEL_CLASS_MAPPINGS=[Mf]}class fT extends Ut{static MODEL_CLASS_MAPPINGS=[wf]}class gT extends Ut{static MODEL_CLASS_MAPPINGS=[K0]}class MT extends Ut{static MODEL_CLASS_MAPPINGS=[bf]}class wT extends Ut{static MODEL_CLASS_MAPPINGS=[vf]}class bT extends Ut{static MODEL_CLASS_MAPPINGS=[xf]}class vT extends Ut{static MODEL_CLASS_MAPPINGS=[yf]}class xT extends Ut{static MODEL_CLASS_MAPPINGS=[Tf]}class yT extends Ut{static MODEL_CLASS_MAPPINGS=[Pf]}class TT extends Ut{static MODEL_CLASS_MAPPINGS=[lf]}class PT extends Ut{static MODEL_CLASS_MAPPINGS=[cf]}class ET extends le{constructor({logits:w,past_key_values:j,encoder_outputs:ae,decoder_attentions:_e=null,cross_attentions:he=null}){super(),this.logits=w,this.past_key_values=j,this.encoder_outputs=ae,this.decoder_attentions=_e,this.cross_attentions=he}}class Pt extends le{constructor({logits:w,...j}){super(),this.logits=w;let ae=Object.values(j);ae.length>0&&(this.attentions=ae)}}class Cf extends le{constructor({logits:w,embeddings:j}){super(),this.logits=w,this.embeddings=j}}class Er extends le{constructor({logits:w}){super(),this.logits=w}}class Ir extends le{constructor({logits:w}){super(),this.logits=w}}class jr extends le{constructor({start_logits:w,end_logits:j}){super(),this.start_logits=w,this.end_logits=j}}class ao extends le{constructor({logits:w}){super(),this.logits=w}}class kT extends le{constructor({logits:w,past_key_values:j}){super(),this.logits=w,this.past_key_values=j}}class Sf extends le{constructor({alphas:w}){super(),this.alphas=w}}class Ff extends le{constructor({waveform:w,spectrogram:j}){super(),this.waveform=w,this.spectrogram=j}}}),"./src/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.js":((e,r,t)=>{t.r(r),t.d(r,{ASTFeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js");class n extends s.FeatureExtractor{constructor(l){super(l);let c=this.config.sampling_rate,_=(0,a.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(c/2),c,null,"kaldi",!0);this.mel_filters=_,this.window=(0,a.window_function)(400,"hann",{periodic:!1}),this.mean=this.config.mean,this.std=this.config.std}async _extract_fbank_features(l,c){return(0,a.spectrogram)(l,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,max_num_frames:c,transpose:!0})}async _call(l){(0,s.validate_audio_inputs)(l,"ASTFeatureExtractor");let c=await this._extract_fbank_features(l,this.config.max_length);if(this.config.do_normalize){let _=this.std*2,u=c.data;for(let d=0;d<u.length;++d)u[d]=(u[d]-this.mean)/_}return{input_values:c.unsqueeze_(0)}}}}),"./src/models/auto/feature_extraction_auto.js":((e,r,t)=>{t.r(r),t.d(r,{AutoFeatureExtractor:()=>i});var s=t("./src/utils/constants.js"),o=t("./src/utils/hub.js"),a=t("./src/base/feature_extraction_utils.js"),n=t("./src/models/feature_extractors.js");class i{static async from_pretrained(c,_={}){let u=await(0,o.getModelJSON)(c,s.FEATURE_EXTRACTOR_NAME,!0,_),d=u.feature_extractor_type,g=n[d];if(!g)throw new Error(`Unknown feature_extractor_type: '${d}'. Please report this at ${s.GITHUB_ISSUE_URL}.`);return new g(u)}}}),"./src/models/auto/image_processing_auto.js":((e,r,t)=>{t.r(r),t.d(r,{AutoImageProcessor:()=>i});var s=t("./src/utils/constants.js"),o=t("./src/utils/hub.js"),a=t("./src/base/image_processors_utils.js"),n=t("./src/models/image_processors.js");class i{static async from_pretrained(c,_={}){let u=await(0,o.getModelJSON)(c,s.IMAGE_PROCESSOR_NAME,!0,_),d=u.image_processor_type??u.feature_extractor_type,g=n[d?.replace(/Fast$/,"")];return g||(d!==void 0&&console.warn(`Image processor type '${d}' not found, assuming base ImageProcessor. Please report this at ${s.GITHUB_ISSUE_URL}.`),g=a.ImageProcessor),new g(u)}}}),"./src/models/auto/processing_auto.js":((e,r,t)=>{t.r(r),t.d(r,{AutoProcessor:()=>c});var s=t("./src/utils/constants.js"),o=t("./src/utils/hub.js"),a=t("./src/base/processing_utils.js"),n=t("./src/models/processors.js"),i=t("./src/models/image_processors.js"),l=t("./src/models/feature_extractors.js");class c{static async from_pretrained(u,d={}){let g=await(0,o.getModelJSON)(u,s.IMAGE_PROCESSOR_NAME,!0,d),{image_processor_type:h,feature_extractor_type:x,processor_class:F}=g;if(F&&n[F])return n[F].from_pretrained(u,d);if(!h&&!x)throw new Error("No `image_processor_type` or `feature_extractor_type` found in the config.");let v={};if(h){let C=i[h.replace(/Fast$/,"")];if(!C)throw new Error(`Unknown image_processor_type: '${h}'.`);v.image_processor=new C(g)}if(x){let C=i[x];if(C)v.image_processor=new C(g);else{let y=l[x];if(!y)throw new Error(`Unknown feature_extractor_type: '${x}'.`);v.feature_extractor=new y(g)}}let b={};return new a.Processor(b,v,null)}}}),"./src/models/beit/image_processing_beit.js":((e,r,t)=>{t.r(r),t.d(r,{BeitFeatureExtractor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}}),"./src/models/bit/image_processing_bit.js":((e,r,t)=>{t.r(r),t.d(r,{BitImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}}),"./src/models/chinese_clip/image_processing_chinese_clip.js":((e,r,t)=>{t.r(r),t.d(r,{ChineseCLIPFeatureExtractor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}}),"./src/models/clap/feature_extraction_clap.js":((e,r,t)=>{t.r(r),t.d(r,{ClapFeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js");class n extends s.FeatureExtractor{constructor(l){super(l),this.mel_filters=(0,a.mel_filter_bank)(this.config.nb_frequency_bins,this.config.feature_size,this.config.frequency_min,this.config.frequency_max,this.config.sampling_rate,null,"htk"),this.mel_filters_slaney=(0,a.mel_filter_bank)(this.config.nb_frequency_bins,this.config.feature_size,this.config.frequency_min,this.config.frequency_max,this.config.sampling_rate,"slaney","slaney"),this.window=(0,a.window_function)(this.config.fft_window_size,"hann")}async _get_input_mel(l,c,_,u){let d,g=!1,h=l.length-c;if(h>0)if(_==="rand_trunc"){g=!0;let x=Math.floor(Math.random()*(h+1));l=l.subarray(x,x+c),d=await this._extract_fbank_features(l,this.mel_filters_slaney,this.config.nb_max_samples)}else throw new Error(`Truncation strategy "${_}" not implemented`);else{if(h<0){let x=new Float64Array(c);if(x.set(l),u==="repeat")for(let F=l.length;F<c;F+=l.length)x.set(l.subarray(0,Math.min(l.length,c-F)),F);else if(u==="repeatpad")for(let F=l.length;F<-h;F+=l.length)x.set(l,F);l=x}if(_==="fusion")throw new Error(`Truncation strategy "${_}" not implemented`);d=await this._extract_fbank_features(l,this.mel_filters_slaney,this.config.nb_max_samples)}return d.unsqueeze_(0)}async _extract_fbank_features(l,c,_=null){return(0,a.spectrogram)(l,this.window,this.config.fft_window_size,this.config.hop_length,{power:2,mel_filters:c,log_mel:"dB",max_num_frames:_,do_pad:!1,transpose:!0})}async _call(l,{max_length:c=null}={}){return(0,s.validate_audio_inputs)(l,"ClapFeatureExtractor"),{input_features:(await this._get_input_mel(l,c??this.config.nb_max_samples,this.config.truncation,this.config.padding)).unsqueeze_(0)}}}}),"./src/models/clip/image_processing_clip.js":((e,r,t)=>{t.r(r),t.d(r,{CLIPFeatureExtractor:()=>a,CLIPImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class a extends o{}}),"./src/models/convnext/image_processing_convnext.js":((e,r,t)=>{t.r(r),t.d(r,{ConvNextFeatureExtractor:()=>a,ConvNextImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{constructor(i){super(i),this.crop_pct=this.config.crop_pct??224/256}async resize(i){let l=this.size?.shortest_edge;if(l===void 0)throw new Error("Size dictionary must contain 'shortest_edge' key.");if(l<384){let c=Math.floor(l/this.crop_pct),[_,u]=this.get_resize_output_image_size(i,{shortest_edge:c});i=await i.resize(_,u,{resample:this.resample}),i=await i.center_crop(l,l)}else i=await i.resize(l,l,{resample:this.resample});return i}}class a extends o{}}),"./src/models/dac/feature_extraction_dac.js":((e,r,t)=>{t.r(r),t.d(r,{DacFeatureExtractor:()=>o});var s=t("./src/models/encodec/feature_extraction_encodec.js");class o extends s.EncodecFeatureExtractor{}}),"./src/models/deit/image_processing_deit.js":((e,r,t)=>{t.r(r),t.d(r,{DeiTFeatureExtractor:()=>a,DeiTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class a extends o{}}),"./src/models/detr/image_processing_detr.js":((e,r,t)=>{t.r(r),t.d(r,{DetrFeatureExtractor:()=>n,DetrImageProcessor:()=>a});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/tensor.js");class a extends s.ImageProcessor{async _call(l){let c=await super._call(l),_=[c.pixel_values.dims[0],64,64],u=(0,o.full)(_,1n);return{...c,pixel_mask:u}}post_process_object_detection(...l){return(0,s.post_process_object_detection)(...l)}post_process_panoptic_segmentation(...l){return(0,s.post_process_panoptic_segmentation)(...l)}post_process_instance_segmentation(...l){return(0,s.post_process_instance_segmentation)(...l)}}class n extends a{}}),"./src/models/dinov3_vit/image_processing_dinov3_vit.js":((e,r,t)=>{t.r(r),t.d(r,{DINOv3ViTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}}),"./src/models/donut/image_processing_donut.js":((e,r,t)=>{t.r(r),t.d(r,{DonutFeatureExtractor:()=>a,DonutImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{pad_image(i,l,c,_={}){let[u,d,g]=l,h=this.image_mean;Array.isArray(this.image_mean)||(h=new Array(g).fill(h));let x=this.image_std;Array.isArray(x)||(x=new Array(g).fill(h));let F=h.map((v,b)=>-v/x[b]);return super.pad_image(i,l,c,{center:!0,constant_values:F,..._})}}class a extends o{}}),"./src/models/dpt/image_processing_dpt.js":((e,r,t)=>{t.r(r),t.d(r,{DPTFeatureExtractor:()=>a,DPTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class a extends o{}}),"./src/models/efficientnet/image_processing_efficientnet.js":((e,r,t)=>{t.r(r),t.d(r,{EfficientNetImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{constructor(n){super(n),this.include_top=this.config.include_top??!0,this.include_top&&(this.image_std=this.image_std.map(i=>i*i))}}}),"./src/models/encodec/feature_extraction_encodec.js":((e,r,t)=>{t.r(r),t.d(r,{EncodecFeatureExtractor:()=>a});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js");class a extends s.FeatureExtractor{async _call(i){(0,s.validate_audio_inputs)(i,"EncodecFeatureExtractor"),i instanceof Float64Array&&(i=new Float32Array(i));let l=this.config.feature_size;if(i.length%l!==0)throw new Error(`The length of the audio data must be a multiple of the number of channels (${l}).`);let c=[1,l,i.length/l];return{input_values:new o.Tensor("float32",i,c)}}}}),"./src/models/feature_extractors.js":((e,r,t)=>{t.r(r),t.d(r,{ASTFeatureExtractor:()=>s.ASTFeatureExtractor,ClapFeatureExtractor:()=>a.ClapFeatureExtractor,DacFeatureExtractor:()=>n.DacFeatureExtractor,EncodecFeatureExtractor:()=>o.EncodecFeatureExtractor,Gemma3nAudioFeatureExtractor:()=>i.Gemma3nAudioFeatureExtractor,ImageFeatureExtractor:()=>v.ImageProcessor,MoonshineFeatureExtractor:()=>l.MoonshineFeatureExtractor,ParakeetFeatureExtractor:()=>c.ParakeetFeatureExtractor,PyAnnoteFeatureExtractor:()=>_.PyAnnoteFeatureExtractor,SeamlessM4TFeatureExtractor:()=>u.SeamlessM4TFeatureExtractor,SnacFeatureExtractor:()=>d.SnacFeatureExtractor,SpeechT5FeatureExtractor:()=>g.SpeechT5FeatureExtractor,Wav2Vec2FeatureExtractor:()=>h.Wav2Vec2FeatureExtractor,WeSpeakerFeatureExtractor:()=>x.WeSpeakerFeatureExtractor,WhisperFeatureExtractor:()=>F.WhisperFeatureExtractor});var s=t("./src/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.js"),o=t("./src/models/encodec/feature_extraction_encodec.js"),a=t("./src/models/clap/feature_extraction_clap.js"),n=t("./src/models/dac/feature_extraction_dac.js"),i=t("./src/models/gemma3n/feature_extraction_gemma3n.js"),l=t("./src/models/moonshine/feature_extraction_moonshine.js"),c=t("./src/models/parakeet/feature_extraction_parakeet.js"),_=t("./src/models/pyannote/feature_extraction_pyannote.js"),u=t("./src/models/seamless_m4t/feature_extraction_seamless_m4t.js"),d=t("./src/models/snac/feature_extraction_snac.js"),g=t("./src/models/speecht5/feature_extraction_speecht5.js"),h=t("./src/models/wav2vec2/feature_extraction_wav2vec2.js"),x=t("./src/models/wespeaker/feature_extraction_wespeaker.js"),F=t("./src/models/whisper/feature_extraction_whisper.js"),v=t("./src/base/image_processors_utils.js")}),"./src/models/florence2/processing_florence2.js":((e,r,t)=>{t.r(r),t.d(r,{Florence2Processor:()=>n});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js");class n extends s.Processor{static tokenizer_class=a.AutoTokenizer;static image_processor_class=o.AutoImageProcessor;constructor(l,c,_){super(l,c,_);let{tasks_answer_post_processing_type:u,task_prompts_without_inputs:d,task_prompts_with_input:g}=this.image_processor.config;this.tasks_answer_post_processing_type=new Map(Object.entries(u??{})),this.task_prompts_without_inputs=new Map(Object.entries(d??{})),this.task_prompts_with_input=new Map(Object.entries(g??{})),this.regexes={quad_boxes:/(.+?)<loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)>/gm,bboxes:/([^<]+)?<loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)>/gm},this.size_per_bin=1e3}construct_prompts(l){typeof l=="string"&&(l=[l]);let c=[];for(let _ of l)if(this.task_prompts_without_inputs.has(_))c.push(this.task_prompts_without_inputs.get(_));else{for(let[u,d]of this.task_prompts_with_input)if(_.includes(u)){c.push(d.replaceAll("{input}",_).replaceAll(u,""));break}c.length!==l.length&&c.push(_)}return c}post_process_generation(l,c,_){let u=this.tasks_answer_post_processing_type.get(c)??"pure_text";l=l.replaceAll("<s>","").replaceAll("</s>","");let d;switch(u){case"pure_text":d=l;break;case"description_with_bboxes":case"bboxes":case"phrase_grounding":case"ocr":let g=u==="ocr"?"quad_boxes":"bboxes",h=l.matchAll(this.regexes[g]),x=[],F=[];for(let[v,b,...C]of h)x.push(b?b.trim():x.at(-1)??""),F.push(C.map((y,P)=>(Number(y)+.5)/this.size_per_bin*_[P%2]));d={labels:x,[g]:F};break;default:throw new Error(`Task "${c}" (of type "${u}") not yet implemented.`)}return{[c]:d}}async _call(l,c=null,_={}){if(!l&&!c)throw new Error("Either text or images must be provided");let u=await this.image_processor(l,_),d=c?this.tokenizer(this.construct_prompts(c),_):{};return{...u,...d}}}}),"./src/models/gemma3n/feature_extraction_gemma3n.js":((e,r,t)=>{t.r(r),t.d(r,{Gemma3nAudioFeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js");class n extends s.FeatureExtractor{constructor(l){super(l);let{fft_length:c,feature_size:_,min_frequency:u,max_frequency:d,sampling_rate:g,frame_length:h}=this.config,x=(0,a.mel_filter_bank)(Math.floor(1+c/2),_,u,d,g,null,"htk",!1);this.mel_filters=x,this.window=(0,a.window_function)(h,"hann")}async _extract_fbank_features(l,c){return(0,a.spectrogram)(l,this.window,this.config.frame_length,this.config.hop_length,{fft_length:this.config.fft_length,center:!1,onesided:!0,preemphasis:this.config.preemphasis,preemphasis_htk_flavor:this.config.preemphasis_htk_flavor,mel_filters:this.mel_filters,log_mel:"log",mel_floor:this.config.mel_floor,remove_dc_offset:!1,transpose:!0})}async _call(l,{max_length:c=48e4,truncation:_=!0,padding:u=!0,pad_to_multiple_of:d=128}={}){if((0,s.validate_audio_inputs)(l,"Gemma3nAudioFeatureExtractor"),_&&l.length>c&&(l=l.slice(0,c)),u&&l.length%d!==0){let x=d-l.length%d,F=new Float64Array(l.length+x);F.set(l),this.config.padding_value!==0&&F.fill(this.config.padding_value,l.length),l=F}let g=await this._extract_fbank_features(l,this.config.max_length),h=(0,o.full)([1,g.dims[0]],!0);return{input_features:g.unsqueeze_(0),input_features_mask:h}}}}),"./src/models/gemma3n/processing_gemma3n.js":((e,r,t)=>{t.r(r),t.d(r,{Gemma3nProcessor:()=>c});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/models/auto/feature_extraction_auto.js"),n=t("./src/tokenizers.js"),i=t("./src/utils/image.js"),l=t("./src/utils/audio.js");class c extends s.Processor{static image_processor_class=o.AutoImageProcessor;static feature_extractor_class=a.AutoFeatureExtractor;static tokenizer_class=n.AutoTokenizer;static uses_processor_config=!0;static uses_chat_template_file=!0;constructor(u,d,g){super(u,d,g),this.audio_seq_length=this.config.audio_seq_length,this.image_seq_length=this.config.image_seq_length;let{audio_token_id:h,boa_token:x,audio_token:F,eoa_token:v,image_token_id:b,boi_token:C,image_token:y,eoi_token:P}=this.tokenizer.config;this.audio_token_id=h,this.boa_token=x,this.audio_token=F;let I=F.repeat(this.audio_seq_length);this.full_audio_sequence=`
2838
+ `)}}class c extends l{constructor(u,{skip_prompt:d=!1,callback_function:g=null,token_callback_function:h=null,on_chunk_start:x=null,on_chunk_end:F=null,on_finalize:v=null,time_precision:b=.02,skip_special_tokens:C=!0,decode_kwargs:y={}}={}){super(u,{skip_prompt:d,skip_special_tokens:C,callback_function:g,token_callback_function:h,decode_kwargs:y}),this.timestamp_begin=u.timestamp_begin,this.on_chunk_start=x,this.on_chunk_end=F,this.on_finalize=v,this.time_precision=b,this.waiting_for_timestamp=!1}put(u){if(u.length>1)throw Error("WhisperTextStreamer only supports batch size of 1");let d=u[0];if(d.length===1){let g=Number(d[0])-this.timestamp_begin;if(g>=0){let h=g*this.time_precision;this.waiting_for_timestamp?this.on_chunk_end?.(h):this.on_chunk_start?.(h),this.waiting_for_timestamp=!this.waiting_for_timestamp,this.token_callback_function?.(d);return}}return super.put(u)}end(){super.end(),this.on_finalize?.()}}}),"./src/models.js":((e,r,t)=>{t.r(r),t.d(r,{ASTForAudioClassification:()=>Sn,ASTModel:()=>Cn,ASTPreTrainedModel:()=>Go,AlbertForMaskedLM:()=>He,AlbertForQuestionAnswering:()=>Ze,AlbertForSequenceClassification:()=>Xe,AlbertModel:()=>Ye,AlbertPreTrainedModel:()=>Ce,ArceeForCausalLM:()=>Un,ArceeModel:()=>Gs,ArceePreTrainedModel:()=>xr,AutoModel:()=>X0,AutoModelForAudioClassification:()=>hT,AutoModelForAudioFrameClassification:()=>gT,AutoModelForAudioTextToText:()=>ET,AutoModelForCTC:()=>mT,AutoModelForCausalLM:()=>sT,AutoModelForDepthEstimation:()=>vT,AutoModelForDocumentQuestionAnswering:()=>MT,AutoModelForImageClassification:()=>iT,AutoModelForImageFeatureExtraction:()=>TT,AutoModelForImageMatting:()=>wT,AutoModelForImageSegmentation:()=>lT,AutoModelForImageTextToText:()=>PT,AutoModelForImageToImage:()=>bT,AutoModelForMaskGeneration:()=>pT,AutoModelForMaskedLM:()=>oT,AutoModelForNormalEstimation:()=>xT,AutoModelForObjectDetection:()=>uT,AutoModelForPoseEstimation:()=>yT,AutoModelForQuestionAnswering:()=>aT,AutoModelForSemanticSegmentation:()=>cT,AutoModelForSeq2SeqLM:()=>Z0,AutoModelForSequenceClassification:()=>J0,AutoModelForSpeechSeq2Seq:()=>eT,AutoModelForTextToSpectrogram:()=>tT,AutoModelForTextToWaveform:()=>rT,AutoModelForTokenClassification:()=>Y0,AutoModelForUniversalSegmentation:()=>dT,AutoModelForVision2Seq:()=>nT,AutoModelForXVector:()=>fT,AutoModelForZeroShotObjectDetection:()=>_T,BartForConditionalGeneration:()=>Yt,BartForSequenceClassification:()=>vr,BartModel:()=>Zr,BartPretrainedModel:()=>Pr,BaseModelOutput:()=>ge,BeitForImageClassification:()=>H_,BeitModel:()=>K_,BeitPreTrainedModel:()=>Al,BertForMaskedLM:()=>ve,BertForQuestionAnswering:()=>fe,BertForSequenceClassification:()=>pe,BertForTokenClassification:()=>Pe,BertModel:()=>Ae,BertPreTrainedModel:()=>be,BlenderbotForConditionalGeneration:()=>wr,BlenderbotModel:()=>pr,BlenderbotPreTrainedModel:()=>lr,BlenderbotSmallForConditionalGeneration:()=>Ws,BlenderbotSmallModel:()=>Kr,BlenderbotSmallPreTrainedModel:()=>er,BloomForCausalLM:()=>h_,BloomModel:()=>m_,BloomPreTrainedModel:()=>bl,CLIPModel:()=>Qo,CLIPPreTrainedModel:()=>fs,CLIPSegForImageSegmentation:()=>fo,CLIPSegModel:()=>es,CLIPSegPreTrainedModel:()=>so,CLIPTextModel:()=>Nn,CLIPTextModelWithProjection:()=>ka,CLIPVisionModel:()=>jn,CLIPVisionModelWithProjection:()=>Ca,CamembertForMaskedLM:()=>ce,CamembertForQuestionAnswering:()=>ut,CamembertForSequenceClassification:()=>xe,CamembertForTokenClassification:()=>et,CamembertModel:()=>Z,CamembertPreTrainedModel:()=>K,CausalLMOutput:()=>ao,CausalLMOutputWithPast:()=>CT,ChineseCLIPModel:()=>ho,ChineseCLIPPreTrainedModel:()=>Ia,ClapAudioModelWithProjection:()=>dh,ClapModel:()=>lh,ClapPreTrainedModel:()=>Yn,ClapTextModelWithProjection:()=>ch,CodeGenForCausalLM:()=>V,CodeGenModel:()=>B,CodeGenPreTrainedModel:()=>$,CohereForCausalLM:()=>Hu,CohereModel:()=>Ku,CoherePreTrainedModel:()=>dl,ConvBertForMaskedLM:()=>ft,ConvBertForQuestionAnswering:()=>Ss,ConvBertForSequenceClassification:()=>Cs,ConvBertForTokenClassification:()=>qt,ConvBertModel:()=>Rs,ConvBertPreTrainedModel:()=>Yr,ConvNextForImageClassification:()=>jp,ConvNextModel:()=>Np,ConvNextPreTrainedModel:()=>Hl,ConvNextV2ForImageClassification:()=>Wp,ConvNextV2Model:()=>Vp,ConvNextV2PreTrainedModel:()=>ql,DFineForObjectDetection:()=>np,DFineModel:()=>ap,DFinePreTrainedModel:()=>zl,DINOv3ConvNextModel:()=>Jp,DINOv3ConvNextPreTrainedModel:()=>Xp,DINOv3ViTModel:()=>Qp,DINOv3ViTPreTrainedModel:()=>qp,DPTForDepthEstimation:()=>xp,DPTModel:()=>vp,DPTPreTrainedModel:()=>Ul,DacDecoderModel:()=>Yh,DacDecoderOutput:()=>Qh,DacEncoderModel:()=>Jh,DacEncoderOutput:()=>qh,DacModel:()=>Xh,DacPreTrainedModel:()=>ai,DebertaForMaskedLM:()=>tt,DebertaForQuestionAnswering:()=>Qt,DebertaForSequenceClassification:()=>gt,DebertaForTokenClassification:()=>Nt,DebertaModel:()=>wt,DebertaPreTrainedModel:()=>qe,DebertaV2ForMaskedLM:()=>Cr,DebertaV2ForQuestionAnswering:()=>Fs,DebertaV2ForSequenceClassification:()=>Lr,DebertaV2ForTokenClassification:()=>_s,DebertaV2Model:()=>Or,DebertaV2PreTrainedModel:()=>ur,DecisionTransformerModel:()=>Ih,DecisionTransformerPreTrainedModel:()=>Fh,DeiTForImageClassification:()=>up,DeiTModel:()=>dp,DeiTPreTrainedModel:()=>Nl,DepthAnythingForDepthEstimation:()=>Tp,DepthAnythingPreTrainedModel:()=>yp,DepthProForDepthEstimation:()=>Sp,DepthProPreTrainedModel:()=>Cp,DetrForObjectDetection:()=>Q_,DetrForSegmentation:()=>$l,DetrModel:()=>q_,DetrObjectDetectionOutput:()=>Dl,DetrPreTrainedModel:()=>Gn,DetrSegmentationOutput:()=>X_,Dinov2ForImageClassification:()=>Gp,Dinov2Model:()=>Up,Dinov2PreTrainedModel:()=>Ql,Dinov2WithRegistersForImageClassification:()=>Hp,Dinov2WithRegistersModel:()=>Kp,Dinov2WithRegistersPreTrainedModel:()=>Xl,DistilBertForMaskedLM:()=>ar,DistilBertForQuestionAnswering:()=>Gr,DistilBertForSequenceClassification:()=>as,DistilBertForTokenClassification:()=>Nr,DistilBertModel:()=>Ns,DistilBertPreTrainedModel:()=>gr,DonutSwinModel:()=>Rp,DonutSwinPreTrainedModel:()=>zp,EdgeTamModel:()=>lm,EfficientNetForImageClassification:()=>gh,EfficientNetModel:()=>fh,EfficientNetPreTrainedModel:()=>dc,ElectraForMaskedLM:()=>Xr,ElectraForQuestionAnswering:()=>N,ElectraForSequenceClassification:()=>k,ElectraForTokenClassification:()=>Q,ElectraModel:()=>St,ElectraPreTrainedModel:()=>Qr,Ernie4_5ForCausalLM:()=>sh,Ernie4_5Model:()=>rh,Ernie4_5PreTrainedModel:()=>ac,EsmForMaskedLM:()=>Is,EsmForSequenceClassification:()=>As,EsmForTokenClassification:()=>$s,EsmModel:()=>ps,EsmPreTrainedModel:()=>_r,ExaoneForCausalLM:()=>Ou,ExaoneModel:()=>Du,ExaonePreTrainedModel:()=>ol,FalconForCausalLM:()=>ih,FalconModel:()=>nh,FalconPreTrainedModel:()=>ic,FastViTForImageClassification:()=>O_,FastViTModel:()=>D_,FastViTPreTrainedModel:()=>kl,Florence2ForConditionalGeneration:()=>Dn,Florence2PreTrainedModel:()=>$n,GLPNForDepthEstimation:()=>Bp,GLPNModel:()=>Lp,GLPNPreTrainedModel:()=>Kl,GPT2LMHeadModel:()=>Oa,GPT2Model:()=>Da,GPT2PreTrainedModel:()=>go,GPTBigCodeForCausalLM:()=>T,GPTBigCodeModel:()=>m,GPTBigCodePreTrainedModel:()=>ra,GPTJForCausalLM:()=>Na,GPTJModel:()=>Ra,GPTJPreTrainedModel:()=>ta,GPTNeoForCausalLM:()=>Mo,GPTNeoModel:()=>Ba,GPTNeoPreTrainedModel:()=>Zo,GPTNeoXForCausalLM:()=>za,GPTNeoXModel:()=>ea,GPTNeoXPreTrainedModel:()=>wo,Gemma2ForCausalLM:()=>Ju,Gemma2Model:()=>Xu,Gemma2PreTrainedModel:()=>_l,Gemma3ForCausalLM:()=>t_,Gemma3Model:()=>e_,Gemma3PreTrainedModel:()=>ml,Gemma3nForConditionalGeneration:()=>Pa,Gemma3nPreTrainedModel:()=>zn,GemmaForCausalLM:()=>Qu,GemmaModel:()=>qu,GemmaPreTrainedModel:()=>ul,GlmForCausalLM:()=>$u,GlmModel:()=>Au,GlmPreTrainedModel:()=>sl,GraniteForCausalLM:()=>Wu,GraniteModel:()=>Vu,GraniteMoeHybridForCausalLM:()=>Gu,GraniteMoeHybridModel:()=>Uu,GraniteMoeHybridPreTrainedModel:()=>cl,GranitePreTrainedModel:()=>ll,GroundingDinoForObjectDetection:()=>Zp,GroundingDinoPreTrainedModel:()=>Yp,GroupViTModel:()=>$_,GroupViTPreTrainedModel:()=>A_,HeliumForCausalLM:()=>Iu,HeliumModel:()=>Fu,HeliumPreTrainedModel:()=>rl,HieraForImageClassification:()=>pp,HieraModel:()=>_p,HieraPreTrainedModel:()=>jl,HubertForCTC:()=>Om,HubertForSequenceClassification:()=>Lm,HubertModel:()=>Dm,HubertPreTrainedModel:()=>B0,IJepaForImageClassification:()=>y_,IJepaModel:()=>x_,IJepaPreTrainedModel:()=>Tl,Idefics3ForConditionalGeneration:()=>hs,Idefics3PreTrainedModel:()=>mo,ImageMattingOutput:()=>Ff,JAISLMHeadModel:()=>La,JAISModel:()=>Yo,JAISPreTrainedModel:()=>Jo,JinaCLIPModel:()=>Wn,JinaCLIPPreTrainedModel:()=>ct,JinaCLIPTextModel:()=>Aa,JinaCLIPVisionModel:()=>$a,Lfm2ForCausalLM:()=>ku,Lfm2Model:()=>Eu,Lfm2PreTrainedModel:()=>el,LiteWhisperForConditionalGeneration:()=>Fn,Llama4ForCausalLM:()=>nt,Llama4PreTrainedModel:()=>Je,LlamaForCausalLM:()=>Be,LlamaModel:()=>Ee,LlamaPreTrainedModel:()=>ie,LlavaForConditionalGeneration:()=>ro,LlavaOnevisionForConditionalGeneration:()=>ya,LlavaPreTrainedModel:()=>xa,LlavaQwen2ForCausalLM:()=>Ta,LongT5ForConditionalGeneration:()=>Br,LongT5Model:()=>nr,LongT5PreTrainedModel:()=>Mr,M2M100ForConditionalGeneration:()=>pm,M2M100Model:()=>_m,M2M100PreTrainedModel:()=>Zl,MBartForCausalLM:()=>is,MBartForConditionalGeneration:()=>ms,MBartForSequenceClassification:()=>Fr,MBartModel:()=>Jr,MBartPreTrainedModel:()=>Sr,MPNetForMaskedLM:()=>Ds,MPNetForQuestionAnswering:()=>de,MPNetForSequenceClassification:()=>Vs,MPNetForTokenClassification:()=>Uo,MPNetModel:()=>js,MPNetPreTrainedModel:()=>Ht,MT5ForConditionalGeneration:()=>zr,MT5Model:()=>Tr,MT5PreTrainedModel:()=>ir,MarianMTModel:()=>um,MarianModel:()=>dm,MarianPreTrainedModel:()=>Yl,MaskFormerForInstanceSegmentation:()=>Op,MaskFormerModel:()=>Dp,MaskFormerPreTrainedModel:()=>Gl,MaskedLMOutput:()=>Ir,Metric3DForDepthEstimation:()=>Ip,Metric3DPreTrainedModel:()=>Fp,Metric3Dv2ForDepthEstimation:()=>$p,Metric3Dv2PreTrainedModel:()=>Ap,MgpstrForSceneTextRecognition:()=>Lh,MgpstrModelOutput:()=>Dh,MgpstrPreTrainedModel:()=>Oh,MimiDecoderModel:()=>Hh,MimiDecoderOutput:()=>Uh,MimiEncoderModel:()=>Kh,MimiEncoderOutput:()=>Wh,MimiModel:()=>Gh,MimiPreTrainedModel:()=>oi,Ministral3ForCausalLM:()=>th,Ministral3Model:()=>eh,Ministral3PreTrainedModel:()=>oc,MinistralForCausalLM:()=>Zm,MinistralModel:()=>Ym,MinistralPreTrainedModel:()=>sc,Mistral3ForConditionalGeneration:()=>Bn,MistralForCausalLM:()=>Jm,MistralModel:()=>Xm,MistralPreTrainedModel:()=>rc,MobileBertForMaskedLM:()=>ze,MobileBertForQuestionAnswering:()=>at,MobileBertForSequenceClassification:()=>Ue,MobileBertModel:()=>Wr,MobileBertPreTrainedModel:()=>ns,MobileLLMForCausalLM:()=>Bu,MobileLLMModel:()=>Lu,MobileLLMPreTrainedModel:()=>al,MobileNetV1ForImageClassification:()=>wh,MobileNetV1ForSemanticSegmentation:()=>bh,MobileNetV1Model:()=>Mh,MobileNetV1PreTrainedModel:()=>ei,MobileNetV2ForImageClassification:()=>xh,MobileNetV2ForSemanticSegmentation:()=>yh,MobileNetV2Model:()=>vh,MobileNetV2PreTrainedModel:()=>ti,MobileNetV3ForImageClassification:()=>Ph,MobileNetV3ForSemanticSegmentation:()=>Eh,MobileNetV3Model:()=>Th,MobileNetV3PreTrainedModel:()=>ri,MobileNetV4ForImageClassification:()=>Ch,MobileNetV4ForSemanticSegmentation:()=>Sh,MobileNetV4Model:()=>kh,MobileNetV4PreTrainedModel:()=>si,MobileViTForImageClassification:()=>R_,MobileViTModel:()=>z_,MobileViTPreTrainedModel:()=>Cl,MobileViTV2ForImageClassification:()=>j_,MobileViTV2Model:()=>N_,MobileViTV2PreTrainedModel:()=>Sl,ModelOutput:()=>le,ModernBertDecoderForCausalLM:()=>Lt,ModernBertDecoderModel:()=>At,ModernBertDecoderPreTrainedModel:()=>bt,ModernBertForMaskedLM:()=>je,ModernBertForSequenceClassification:()=>pt,ModernBertForTokenClassification:()=>Ke,ModernBertModel:()=>Qe,ModernBertPreTrainedModel:()=>De,Moondream1ForConditionalGeneration:()=>An,MoonshineForConditionalGeneration:()=>In,MoonshineModel:()=>Zi,MoonshinePreTrainedModel:()=>Ho,MptForCausalLM:()=>g_,MptModel:()=>f_,MptPreTrainedModel:()=>vl,MultiModalityCausalLM:()=>$h,MultiModalityPreTrainedModel:()=>Ah,MusicgenForCausalLM:()=>j0,MusicgenForConditionalGeneration:()=>_c,MusicgenModel:()=>N0,MusicgenPreTrainedModel:()=>uc,NanoChatForCausalLM:()=>Wt,NanoChatModel:()=>Dt,NanoChatPreTrainedModel:()=>Tt,NeoBertForMaskedLM:()=>$e,NeoBertForQuestionAnswering:()=>ot,NeoBertForSequenceClassification:()=>Re,NeoBertForTokenClassification:()=>Ne,NeoBertModel:()=>We,NeoBertPreTrainedModel:()=>Te,NomicBertModel:()=>zt,NomicBertPreTrainedModel:()=>fr,OPTForCausalLM:()=>w_,OPTModel:()=>M_,OPTPreTrainedModel:()=>xl,Olmo2ForCausalLM:()=>ju,Olmo2Model:()=>Nu,Olmo2PreTrainedModel:()=>il,OlmoForCausalLM:()=>Ru,OlmoModel:()=>zu,OlmoPreTrainedModel:()=>nl,OpenELMForCausalLM:()=>s_,OpenELMModel:()=>r_,OpenELMPreTrainedModel:()=>hl,OwlViTForObjectDetection:()=>W_,OwlViTModel:()=>V_,OwlViTPreTrainedModel:()=>Fl,Owlv2ForObjectDetection:()=>G_,Owlv2Model:()=>U_,Owlv2PreTrainedModel:()=>Il,PaliGemmaForConditionalGeneration:()=>Ln,PaliGemmaPreTrainedModel:()=>On,ParakeetForCTC:()=>wm,ParakeetPreTrainedModel:()=>Mm,PatchTSMixerForPrediction:()=>Nh,PatchTSMixerModel:()=>Rh,PatchTSMixerPreTrainedModel:()=>mc,PatchTSTForPrediction:()=>zh,PatchTSTModel:()=>Bh,PatchTSTPreTrainedModel:()=>pc,Phi3ForCausalLM:()=>p_,Phi3Model:()=>__,Phi3PreTrainedModel:()=>wl,Phi3VForCausalLM:()=>Ea,Phi3VPreTrainedModel:()=>Rn,PhiForCausalLM:()=>u_,PhiModel:()=>d_,PhiPreTrainedModel:()=>Ml,PreTrainedModel:()=>A,PretrainedMixin:()=>Ut,PvtForImageClassification:()=>k_,PvtModel:()=>E_,PvtPreTrainedModel:()=>Pl,PyAnnoteForAudioFrameClassification:()=>vm,PyAnnoteModel:()=>bm,PyAnnotePreTrainedModel:()=>ec,QuestionAnsweringModelOutput:()=>jr,Qwen2ForCausalLM:()=>a_,Qwen2Model:()=>o_,Qwen2PreTrainedModel:()=>fl,Qwen2VLForConditionalGeneration:()=>c_,Qwen2VLPreTrainedModel:()=>l_,Qwen3ForCausalLM:()=>i_,Qwen3Model:()=>n_,Qwen3PreTrainedModel:()=>gl,RFDetrForObjectDetection:()=>sp,RFDetrModel:()=>rp,RFDetrObjectDetectionOutput:()=>op,RFDetrPreTrainedModel:()=>Bl,RTDetrForObjectDetection:()=>Y_,RTDetrModel:()=>J_,RTDetrObjectDetectionOutput:()=>ja,RTDetrPreTrainedModel:()=>Ol,RTDetrV2ForObjectDetection:()=>ep,RTDetrV2Model:()=>Z_,RTDetrV2ObjectDetectionOutput:()=>tp,RTDetrV2PreTrainedModel:()=>Ll,ResNetForImageClassification:()=>hp,ResNetModel:()=>mp,ResNetPreTrainedModel:()=>Vl,RoFormerForMaskedLM:()=>Ys,RoFormerForQuestionAnswering:()=>Dr,RoFormerForSequenceClassification:()=>Zs,RoFormerForTokenClassification:()=>or,RoFormerModel:()=>zs,RoFormerPreTrainedModel:()=>yr,RobertaForMaskedLM:()=>gn,RobertaForQuestionAnswering:()=>wn,RobertaForSequenceClassification:()=>ga,RobertaForTokenClassification:()=>Mn,RobertaModel:()=>fn,RobertaPreTrainedModel:()=>Os,Sam2ImageSegmentationOutput:()=>nm,Sam2Model:()=>qn,Sam2PreTrainedModel:()=>im,Sam3TrackerModel:()=>cm,SamImageSegmentationOutput:()=>am,SamModel:()=>om,SamPreTrainedModel:()=>sm,SapiensForDepthEstimation:()=>Ep,SapiensForNormalEstimation:()=>kp,SapiensForSemanticSegmentation:()=>Pp,SapiensPreTrainedModel:()=>Hn,SegformerForImageClassification:()=>_h,SegformerForSemanticSegmentation:()=>ph,SegformerModel:()=>R0,SegformerPreTrainedModel:()=>Zn,Seq2SeqLMOutput:()=>kT,SequenceClassifierOutput:()=>Pt,SiglipModel:()=>Sa,SiglipPreTrainedModel:()=>Xo,SiglipTextModel:()=>Vn,SiglipVisionModel:()=>Fa,SmolLM3ForCausalLM:()=>Su,SmolLM3Model:()=>Cu,SmolLM3PreTrainedModel:()=>tl,SmolVLMForConditionalGeneration:()=>qo,SnacDecoderModel:()=>tf,SnacEncoderModel:()=>ef,SnacModel:()=>Zh,SnacPreTrainedModel:()=>ni,SpeechT5ForSpeechToText:()=>Um,SpeechT5ForTextToSpeech:()=>Gm,SpeechT5HifiGan:()=>Km,SpeechT5Model:()=>z0,SpeechT5PreTrainedModel:()=>Jn,SqueezeBertForMaskedLM:()=>te,SqueezeBertForQuestionAnswering:()=>me,SqueezeBertForSequenceClassification:()=>se,SqueezeBertModel:()=>G,SqueezeBertPreTrainedModel:()=>S,StableLmForCausalLM:()=>hh,StableLmModel:()=>mh,StableLmPreTrainedModel:()=>cc,Starcoder2ForCausalLM:()=>ah,Starcoder2Model:()=>oh,Starcoder2PreTrainedModel:()=>nc,StyleTextToSpeech2Model:()=>Wm,StyleTextToSpeech2PreTrainedModel:()=>Vm,SupertonicForConditionalGeneration:()=>tc,SupertonicPreTrainedModel:()=>Hm,Swin2SRForImageSuperResolution:()=>bp,Swin2SRModel:()=>wp,Swin2SRPreTrainedModel:()=>Wl,SwinForImageClassification:()=>gp,SwinForSemanticSegmentation:()=>Mp,SwinModel:()=>fp,SwinPreTrainedModel:()=>Kn,T5ForConditionalGeneration:()=>Xt,T5Model:()=>yt,T5PreTrainedModel:()=>It,TableTransformerForObjectDetection:()=>lp,TableTransformerModel:()=>ip,TableTransformerObjectDetectionOutput:()=>cp,TableTransformerPreTrainedModel:()=>Rl,TokenClassifierOutput:()=>Er,TrOCRForCausalLM:()=>Qm,TrOCRPreTrainedModel:()=>qm,UltravoxModel:()=>hc,UltravoxPreTrainedModel:()=>jh,UniSpeechForCTC:()=>Pm,UniSpeechForSequenceClassification:()=>Em,UniSpeechModel:()=>Tm,UniSpeechPreTrainedModel:()=>Qn,UniSpeechSatForAudioFrameClassification:()=>Fm,UniSpeechSatForCTC:()=>Cm,UniSpeechSatForSequenceClassification:()=>Sm,UniSpeechSatModel:()=>km,UniSpeechSatPreTrainedModel:()=>Va,VaultGemmaForCausalLM:()=>Zu,VaultGemmaModel:()=>Yu,VaultGemmaPreTrainedModel:()=>pl,ViTForImageClassification:()=>v_,ViTMAEModel:()=>S_,ViTMAEPreTrainedModel:()=>C_,ViTMSNForImageClassification:()=>I_,ViTMSNModel:()=>F_,ViTMSNPreTrainedModel:()=>El,ViTModel:()=>b_,ViTPreTrainedModel:()=>yl,VisionEncoderDecoderModel:()=>va,VitMatteForImageMatting:()=>B_,VitMattePreTrainedModel:()=>L_,VitPoseForPoseEstimation:()=>P_,VitPosePreTrainedModel:()=>T_,VitsModel:()=>lc,VitsModelOutput:()=>If,VitsPreTrainedModel:()=>uh,VoxtralForConditionalGeneration:()=>Vh,Wav2Vec2BertForCTC:()=>Am,Wav2Vec2BertForSequenceClassification:()=>$m,Wav2Vec2BertModel:()=>Im,Wav2Vec2BertPreTrainedModel:()=>Xn,Wav2Vec2ForAudioFrameClassification:()=>gm,Wav2Vec2ForCTC:()=>hm,Wav2Vec2ForSequenceClassification:()=>fm,Wav2Vec2Model:()=>mm,Wav2Vec2PreTrainedModel:()=>oo,WavLMForAudioFrameClassification:()=>jm,WavLMForCTC:()=>zm,WavLMForSequenceClassification:()=>Rm,WavLMForXVector:()=>Nm,WavLMModel:()=>Bm,WavLMPreTrainedModel:()=>sa,WeSpeakerResNetModel:()=>ym,WeSpeakerResNetPreTrainedModel:()=>xm,WhisperForConditionalGeneration:()=>Us,WhisperModel:()=>ba,WhisperPreTrainedModel:()=>Ko,XLMForQuestionAnswering:()=>Tn,XLMForSequenceClassification:()=>xn,XLMForTokenClassification:()=>yn,XLMModel:()=>bn,XLMPreTrainedModel:()=>eo,XLMRobertaForMaskedLM:()=>En,XLMRobertaForQuestionAnswering:()=>wa,XLMRobertaForSequenceClassification:()=>kn,XLMRobertaForTokenClassification:()=>Ma,XLMRobertaModel:()=>Pn,XLMRobertaPreTrainedModel:()=>to,XLMWithLMHeadModel:()=>vn,XVectorOutput:()=>Sf,YolosForObjectDetection:()=>tm,YolosModel:()=>em,YolosObjectDetectionOutput:()=>rm,YolosPreTrainedModel:()=>Jl});var s=t("./src/configs.js"),o=t("./src/backends/onnx.js"),a=t("./src/utils/dtypes.js"),n=t("./src/utils/generic.js"),i=t("./src/utils/core.js"),l=t("./src/utils/hub.js"),c=t("./src/utils/constants.js"),_=t("./src/generation/logits_process.js"),u=t("./src/generation/configuration_utils.js"),d=t("./src/utils/tensor.js"),g=t("./src/utils/image.js"),h=t("./src/utils/maths.js"),x=t("./src/generation/stopping_criteria.js"),F=t("./src/generation/logits_sampler.js"),v=t("./src/env.js"),b=t("./src/models/whisper/generation_whisper.js"),C=t("./src/models/whisper/common_whisper.js");let y={EncoderOnly:0,EncoderDecoder:1,Seq2Seq:2,Vision2Seq:3,DecoderOnly:4,MaskGeneration:5,ImageTextToText:6,Musicgen:7,MultiModality:8,Phi3V:9,AudioTextToText:10,AutoEncoder:11,ImageAudioTextToText:12,Supertonic:13},P=new Map,I=new Map,f=new Map;async function E(M,w,j){let ae=j.config?.["transformers.js_config"]??{},_e=j.device??ae.device;_e&&typeof _e!="string"&&(_e.hasOwnProperty(w)?_e=_e[w]:(console.warn(`device not specified for "${w}". Using the default device.`),_e=null));let he=_e??(v.apis.IS_NODE_ENV?"cpu":"wasm"),Se=(0,o.deviceToExecutionProviders)(he),Oe=ae.device_config??{};Oe.hasOwnProperty(he)&&(ae={...ae,...Oe[he]});let Ge=j.dtype??ae.dtype;if(typeof Ge!="string"&&(Ge&&Ge.hasOwnProperty(w)?Ge=Ge[w]:(Ge=a.DEFAULT_DEVICE_DTYPE_MAPPING[he]??a.DATA_TYPES.fp32,console.warn(`dtype not specified for "${w}". Using the default dtype (${Ge}) for this device (${he}).`))),Ge===a.DATA_TYPES.auto){let Ft=ae.dtype;typeof Ft!="string"&&(Ft=Ft?.[w]),Ft&&Ft!==a.DATA_TYPES.auto&&a.DATA_TYPES.hasOwnProperty(Ft)?Ge=Ft:Ge=a.DEFAULT_DEVICE_DTYPE_MAPPING[he]??a.DATA_TYPES.fp32}let st=Ge;if(a.DEFAULT_DTYPE_SUFFIX_MAPPING.hasOwnProperty(st)){if(st===a.DATA_TYPES.fp16&&he==="webgpu"&&!await(0,a.isWebGpuFp16Supported)())throw new Error(`The device (${he}) does not support fp16.`)}else throw new Error(`Invalid dtype: ${st}. Should be one of: ${Object.keys(a.DATA_TYPES).join(", ")}`);let vt=ae.kv_cache_dtype,xt=vt?typeof vt=="string"?vt:vt[st]??"float32":void 0;if(xt&&!["float32","float16"].includes(xt))throw new Error(`Invalid kv_cache_dtype: ${xt}. Should be one of: float32, float16`);let Et={dtype:st,kv_cache_dtype:xt,device:he},mt=a.DEFAULT_DTYPE_SUFFIX_MAPPING[st],Bt=`${w}${mt}.onnx`,ht=`${j.subfolder??""}/${Bt}`,_t={...j.session_options};_t.executionProviders??=Se;let $t=ae.free_dimension_overrides;$t?_t.freeDimensionOverrides??=$t:he.startsWith("webnn")&&!_t.freeDimensionOverrides&&console.warn(`WebNN does not currently support dynamic shapes and requires 'free_dimension_overrides' to be set in config.json, preferably as a field within config["transformers.js_config"]["device_config"]["${he}"]. When 'free_dimension_overrides' is not set, you may experience significant performance degradation.`);let Gt=v.apis.IS_NODE_ENV&&v.env.useFSCache,tr=(0,l.getModelFile)(M,ht,!0,j,Gt),sr=j.use_external_data_format??ae.use_external_data_format,mr=[];if(sr){let Ft;typeof sr=="object"?sr.hasOwnProperty(Bt)?Ft=sr[Bt]:sr.hasOwnProperty(w)?Ft=sr[w]:Ft=!1:Ft=sr;let cr=+Ft;if(cr>l.MAX_EXTERNAL_DATA_CHUNKS)throw new Error(`The number of external data chunks (${cr}) exceeds the maximum allowed value (${l.MAX_EXTERNAL_DATA_CHUNKS}).`);for(let Ar=0;Ar<cr;++Ar){let bo=`${Bt}_data${Ar===0?"":"_"+Ar}`,Hr=`${j.subfolder??""}/${bo}`;mr.push(new Promise(async(gs,aa)=>{let na=await(0,l.getModelFile)(M,Hr,!0,j,Gt);gs(na instanceof Uint8Array?{path:bo,data:na}:bo)}))}}else _t.externalData!==void 0&&(mr=_t.externalData.map(async Ft=>{if(typeof Ft.data=="string"){let cr=await(0,l.getModelFile)(M,Ft.data,!0,j);return{...Ft,data:cr}}return Ft}));if(mr.length>0){let Ft=await Promise.all(mr);v.apis.IS_NODE_ENV||(_t.externalData=Ft)}if(he==="webgpu"){let Ft=(0,s.getCacheShapes)(j.config,{prefix:"present"});if(Object.keys(Ft).length>0&&!(0,o.isONNXProxy)()){let cr={};for(let Ar in Ft)cr[Ar]="gpu-buffer";_t.preferredOutputLocation=cr}}return{buffer_or_path:await tr,session_options:_t,session_config:Et}}async function D(M,w,j){return Object.fromEntries(await Promise.all(Object.keys(w).map(async ae=>{let{buffer_or_path:_e,session_options:he,session_config:Se}=await E(M,w[ae],j),Oe=await(0,o.createInferenceSession)(_e,he,Se);return[ae,Oe]})))}async function O(M,w,j){return Object.fromEntries(await Promise.all(Object.keys(w).map(async ae=>{let _e=await(0,l.getModelJSON)(M,w[ae],!1,j);return[ae,_e]})))}function U(M,w){let j=Object.create(null),ae=[];for(let Se of M.inputNames){let Oe=w[Se];if(!(Oe instanceof d.Tensor)){ae.push(Se);continue}j[Se]=(0,o.isONNXProxy)()?Oe.clone():Oe}if(ae.length>0)throw new Error(`An error occurred during model execution: "Missing the following inputs: ${ae.join(", ")}.`);let _e=Object.keys(w).length,he=M.inputNames.length;if(_e>he){let Se=Object.keys(w).filter(Oe=>!M.inputNames.includes(Oe));console.warn(`WARNING: Too many inputs were provided (${_e} > ${he}). The following inputs will be ignored: "${Se.join(", ")}".`)}return j}async function W(M,w){let j=U(M,w);try{let ae=Object.fromEntries(Object.entries(j).map(([he,Se])=>[he,Se.ort_tensor])),_e=await(0,o.runInferenceSession)(M,ae);return z(_e)}catch(ae){let _e=Object.fromEntries(Object.entries(j).map(([he,Se])=>{let Oe={type:Se.type,dims:Se.dims,location:Se.location};return Oe.location!=="gpu-buffer"&&(Oe.data=Se.data),[he,Oe]}));throw console.error(`An error occurred during model execution: "${ae}".`),console.error("Inputs given to model:",_e),ae}}function z(M){for(let w in M)(0,o.isONNXTensor)(M[w])?M[w]=new d.Tensor(M[w]):typeof M[w]=="object"&&z(M[w]);return M}function X(M){if(M instanceof d.Tensor)return M;if(M.length===0)throw Error("items must be non-empty");if(Array.isArray(M[0])){if(M.some(w=>w.length!==M[0].length))throw Error("Unable to create tensor, you should probably activate truncation and/or padding with 'padding=True' and/or 'truncation=True' to have batched tensors with the same length.");return new d.Tensor("int64",BigInt64Array.from(M.flat().map(w=>BigInt(w))),[M.length,M[0].length])}else return new d.Tensor("int64",BigInt64Array.from(M.map(w=>BigInt(w))),[1,M.length])}function J(M){return new d.Tensor("bool",[M],[1])}async function q(M,w){let{encoder_outputs:j,input_ids:ae,decoder_input_ids:_e,...he}=w;if(!j){let Oe=(0,i.pick)(w,M.sessions.model.inputNames);j=(await re(M,Oe)).last_hidden_state}return he.input_ids=_e,he.encoder_hidden_states=j,M.sessions.decoder_model_merged.inputNames.includes("encoder_attention_mask")&&(he.encoder_attention_mask=w.attention_mask),await ne(M,he,!0)}async function re(M,w){let j=M.sessions.model,ae=(0,i.pick)(w,j.inputNames);if(j.inputNames.includes("inputs_embeds")&&!ae.inputs_embeds){if(!w.input_ids)throw new Error("Both `input_ids` and `inputs_embeds` are missing in the model inputs.");ae.inputs_embeds=await M.encode_text({input_ids:w.input_ids})}if(j.inputNames.includes("token_type_ids")&&!ae.token_type_ids){if(!ae.input_ids)throw new Error("Both `input_ids` and `token_type_ids` are missing in the model inputs.");ae.token_type_ids=(0,d.zeros_like)(ae.input_ids)}if(j.inputNames.includes("pixel_mask")&&!ae.pixel_mask){if(!ae.pixel_values)throw new Error("Both `pixel_values` and `pixel_mask` are missing in the model inputs.");let _e=ae.pixel_values.dims;ae.pixel_mask=(0,d.ones)([_e[0],_e[2],_e[3]])}return await W(j,ae)}async function oe(M,w){let j=await M.encode(w);return await M.decode(j)}async function ne(M,w,j=!1){let ae=M.sessions[j?"decoder_model_merged":"model"],{past_key_values:_e,...he}=w;if(ae.inputNames.includes("use_cache_branch")&&(he.use_cache_branch=J(!!_e)),ae.inputNames.includes("position_ids")&&he.attention_mask&&!he.position_ids){let Oe=["paligemma","gemma3_text","gemma3"].includes(M.config.model_type)?1:0;he.position_ids=ke(he,_e,Oe)}M.addPastKeyValues(he,_e);let Se=(0,i.pick)(he,ae.inputNames);return await W(ae,Se)}function ye({modality_token_id:M,inputs_embeds:w,modality_features:j,input_ids:ae,attention_mask:_e}){let he=ae.tolist().map(st=>st.reduce((vt,xt,Et)=>(xt==M&&vt.push(Et),vt),[])),Se=he.reduce((st,vt)=>st+vt.length,0),Oe=j.dims[0];if(Se!==Oe)throw new Error(`Number of tokens and features do not match: tokens: ${Se}, features ${Oe}`);let Ge=0;for(let st=0;st<he.length;++st){let vt=he[st],xt=w[st];for(let Et=0;Et<vt.length;++Et)xt[vt[Et]].data.set(j[Ge++].data)}return{inputs_embeds:w,attention_mask:_e}}function Y({image_token_id:M,inputs_embeds:w,image_features:j,input_ids:ae,attention_mask:_e}){return ye({modality_token_id:M,inputs_embeds:w,modality_features:j,input_ids:ae,attention_mask:_e})}function H({audio_token_id:M,inputs_embeds:w,audio_features:j,input_ids:ae,attention_mask:_e}){return ye({modality_token_id:M,inputs_embeds:w,modality_features:j,input_ids:ae,attention_mask:_e})}async function R(M,{encode_function:w,merge_function:j,modality_input_name:ae,modality_output_name:_e,input_ids:he=null,attention_mask:Se=null,position_ids:Oe=null,inputs_embeds:Ge=null,past_key_values:st=null,generation_config:vt=null,logits_processor:xt=null,...Et}){let mt=Et[ae];if(!Ge){if(Ge=await M.encode_text({input_ids:he,...Et}),mt&&he.dims[1]!==1){let ht=await w({[ae]:mt,...Et});({inputs_embeds:Ge,attention_mask:Se}=j({[_e]:ht,inputs_embeds:Ge,input_ids:he,attention_mask:Se}))}else if(st&&mt&&he.dims[1]===1){let ht=he.dims[1],_t=Object.values(st)[0].dims.at(-2);Se=(0,d.cat)([(0,d.ones)([he.dims[0],_t]),Se.slice(null,[Se.dims[1]-ht,Se.dims[1]])],1)}}if(!Oe&&M.config.model_type==="qwen2_vl"){let{image_grid_thw:ht,video_grid_thw:_t}=Et;[Oe]=M.get_rope_index(he,ht,_t,Se)}return await ne(M,{inputs_embeds:Ge,past_key_values:st,attention_mask:Se,position_ids:Oe,generation_config:vt,logits_processor:xt},!0)}async function L(M,w){return await R(M,{...w,modality_input_name:"audio_values",modality_output_name:"audio_features",encode_function:M.encode_audio.bind(M),merge_function:M._merge_input_ids_with_audio_features.bind(M)})}async function ee(M,w){return await R(M,{...w,modality_input_name:"pixel_values",modality_output_name:"image_features",encode_function:M.encode_image.bind(M),merge_function:M._merge_input_ids_with_image_features.bind(M)})}function ue(M,w=0){let[j,ae]=M.dims,_e=M.data,he=new BigInt64Array(_e.length);for(let Se=0;Se<j;++Se){let Oe=Se*ae,Ge=BigInt(w);for(let st=0;st<ae;++st){let vt=Oe+st;_e[vt]===0n?he[vt]=BigInt(1):(he[vt]=Ge,Ge+=_e[vt])}}return{data:he,dims:M.dims}}function ke(M,w=null,j=0){let{input_ids:ae,inputs_embeds:_e,attention_mask:he}=M,{data:Se,dims:Oe}=ue(he,j),Ge=new d.Tensor("int64",Se,Oe);if(w){let st=-(ae??_e).dims.at(1);Ge=Ge.slice(null,[st,null])}return Ge}function Ie(M,w,j,ae){let _e=j.past_key_values?Object.values(j.past_key_values)[0].dims.at(-2):0;if(!j.attention_mask){let he;for(let Se of["input_ids","inputs_embeds","position_ids"])if(j[Se]){he=j[Se].dims;break}if(!he)throw new Error("attention_mask is not provided, and unable to infer its shape from model inputs.");j.attention_mask=(0,d.ones)([he[0],_e+he[1]])}if(j.past_key_values){let{input_ids:he,attention_mask:Se}=j;Se&&Se.dims[1]>he.dims[1]||_e<he.dims[1]&&(j.input_ids=he.slice(null,[_e,null]))}return j}function Le(M,w,j,ae){return j.past_key_values&&(w=w.map(_e=>[_e.at(-1)])),{...j,decoder_input_ids:X(w)}}function rt(M,...w){return M.config.is_encoder_decoder?Le(M,...w):Ie(M,...w)}function we(M,w,j,ae){let _e=!!j.past_key_values;return ae.guidance_scale!==null&&ae.guidance_scale>1&&(_e?j.input_ids=(0,d.cat)([j.input_ids,j.input_ids],0):(j.input_ids=(0,d.cat)([j.input_ids,(0,d.full_like)(j.input_ids,BigInt(ae.pad_token_id))],0),j.attention_mask=(0,d.cat)([j.attention_mask,(0,d.full_like)(j.attention_mask,0n)],0))),(_e||!j.pixel_values)&&(j.pixel_values=(0,d.full)([0,0,3,384,384],1)),_e&&(j.images_seq_mask=new d.Tensor("bool",new Array(1).fill(!0).fill(!1,0,1),[1,1]),j.images_emb_mask=new d.Tensor("bool",new Array(0).fill(!1),[1,1,0])),j}class A extends n.Callable{main_input_name="input_ids";forward_params=["input_ids","attention_mask"];constructor(w,j,ae){super(),this.config=w,this.sessions=j,this.configs=ae;let _e=f.get(this.constructor),he=P.get(_e);switch(this.can_generate=!1,this._forward=null,this._prepare_inputs_for_generation=null,he){case y.DecoderOnly:this.can_generate=!0,this._forward=ne,this._prepare_inputs_for_generation=Ie;break;case y.Seq2Seq:case y.Vision2Seq:case y.Musicgen:this.can_generate=!0,this._forward=q,this._prepare_inputs_for_generation=Le;break;case y.EncoderDecoder:this._forward=q;break;case y.ImageTextToText:this.can_generate=!0,this._forward=ee,this._prepare_inputs_for_generation=rt;break;case y.AudioTextToText:this.can_generate=!0,this._forward=L,this._prepare_inputs_for_generation=rt;break;case y.Phi3V:case y.ImageAudioTextToText:this.can_generate=!0,this._prepare_inputs_for_generation=rt;break;case y.MultiModality:this.can_generate=!0,this._prepare_inputs_for_generation=we;break;case y.AutoEncoder:this._forward=oe;break;default:this._forward=re;break}this.can_generate&&this.forward_params.push("past_key_values"),this.custom_config=this.config["transformers.js_config"]??{}}async dispose(){let w=[];for(let j of Object.values(this.sessions))j?.handler?.dispose&&w.push(j.handler.dispose());return await Promise.all(w)}static async from_pretrained(w,{progress_callback:j=null,config:ae=null,cache_dir:_e=null,local_files_only:he=!1,revision:Se="main",model_file_name:Oe=null,subfolder:Ge="onnx",device:st=null,dtype:vt=null,use_external_data_format:xt=null,session_options:Et={}}={}){let mt={progress_callback:j,config:ae,cache_dir:_e,local_files_only:he,revision:Se,model_file_name:Oe,subfolder:Ge,device:st,dtype:vt,use_external_data_format:xt,session_options:Et},Bt=f.get(this),ht=P.get(Bt);ae=mt.config=await s.AutoConfig.from_pretrained(w,mt);let _t;if(ht===y.DecoderOnly)_t=await Promise.all([D(w,{model:mt.model_file_name??"model"},mt),O(w,{generation_config:"generation_config.json"},mt)]);else if(ht===y.Seq2Seq||ht===y.Vision2Seq)_t=await Promise.all([D(w,{model:"encoder_model",decoder_model_merged:"decoder_model_merged"},mt),O(w,{generation_config:"generation_config.json"},mt)]);else if(ht===y.MaskGeneration)_t=await Promise.all([D(w,{model:"vision_encoder",prompt_encoder_mask_decoder:"prompt_encoder_mask_decoder"},mt)]);else if(ht===y.EncoderDecoder)_t=await Promise.all([D(w,{model:"encoder_model",decoder_model_merged:"decoder_model_merged"},mt)]);else if(ht===y.ImageTextToText){let $t={embed_tokens:"embed_tokens",vision_encoder:"vision_encoder",decoder_model_merged:"decoder_model_merged"};ae.is_encoder_decoder&&($t.model="encoder_model"),_t=await Promise.all([D(w,$t,mt),O(w,{generation_config:"generation_config.json"},mt)])}else if(ht===y.AudioTextToText){let $t={embed_tokens:"embed_tokens",audio_encoder:"audio_encoder",decoder_model_merged:"decoder_model_merged"};_t=await Promise.all([D(w,$t,mt),O(w,{generation_config:"generation_config.json"},mt)])}else if(ht===y.ImageAudioTextToText){let $t={embed_tokens:"embed_tokens",audio_encoder:"audio_encoder",vision_encoder:"vision_encoder",decoder_model_merged:"decoder_model_merged"};_t=await Promise.all([D(w,$t,mt),O(w,{generation_config:"generation_config.json"},mt)])}else if(ht===y.Musicgen)_t=await Promise.all([D(w,{model:"text_encoder",decoder_model_merged:"decoder_model_merged",encodec_decode:"encodec_decode"},mt),O(w,{generation_config:"generation_config.json"},mt)]);else if(ht===y.MultiModality)_t=await Promise.all([D(w,{prepare_inputs_embeds:"prepare_inputs_embeds",model:"language_model",lm_head:"lm_head",gen_head:"gen_head",gen_img_embeds:"gen_img_embeds",image_decode:"image_decode"},mt),O(w,{generation_config:"generation_config.json"},mt)]);else if(ht===y.Phi3V)_t=await Promise.all([D(w,{prepare_inputs_embeds:"prepare_inputs_embeds",model:"model",vision_encoder:"vision_encoder"},mt),O(w,{generation_config:"generation_config.json"},mt)]);else if(ht===y.AutoEncoder)_t=await Promise.all([D(w,{encoder_model:"encoder_model",decoder_model:"decoder_model"},mt)]);else if(ht===y.Supertonic)_t=await Promise.all([D(w,{text_encoder:"text_encoder",latent_denoiser:"latent_denoiser",voice_decoder:"voice_decoder"},mt)]);else{if(ht!==y.EncoderOnly){let $t=Bt??ae?.model_type;$t!=="custom"&&console.warn(`Model type for '${$t}' not found, assuming encoder-only architecture. Please report this at ${c.GITHUB_ISSUE_URL}.`)}_t=await Promise.all([D(w,{model:mt.model_file_name??"model"},mt)])}return new this(ae,..._t)}async _call(w){return await this.forward(w)}async forward(w){return await this._forward(this,w)}get generation_config(){return this.configs?.generation_config??null}_get_logits_processor(w,j,ae=null){let _e=new _.LogitsProcessorList;if(w.repetition_penalty!==null&&w.repetition_penalty!==1&&_e.push(new _.RepetitionPenaltyLogitsProcessor(w.repetition_penalty)),w.no_repeat_ngram_size!==null&&w.no_repeat_ngram_size>0&&_e.push(new _.NoRepeatNGramLogitsProcessor(w.no_repeat_ngram_size)),w.bad_words_ids!==null&&_e.push(new _.NoBadWordsLogitsProcessor(w.bad_words_ids,w.eos_token_id)),w.min_length!==null&&w.eos_token_id!==null&&w.min_length>0&&_e.push(new _.MinLengthLogitsProcessor(w.min_length,w.eos_token_id)),w.min_new_tokens!==null&&w.eos_token_id!==null&&w.min_new_tokens>0&&_e.push(new _.MinNewTokensLengthLogitsProcessor(j,w.min_new_tokens,w.eos_token_id)),w.forced_bos_token_id!==null&&_e.push(new _.ForcedBOSTokenLogitsProcessor(w.forced_bos_token_id)),w.forced_eos_token_id!==null&&_e.push(new _.ForcedEOSTokenLogitsProcessor(w.max_length,w.forced_eos_token_id)),w.begin_suppress_tokens!==null){let he=j>1||w.forced_bos_token_id===null?j:j+1;_e.push(new _.SuppressTokensAtBeginLogitsProcessor(w.begin_suppress_tokens,he))}return w.guidance_scale!==null&&w.guidance_scale>1&&_e.push(new _.ClassifierFreeGuidanceLogitsProcessor(w.guidance_scale)),w.temperature===0&&w.do_sample&&(console.warn("`do_sample` changed to false because `temperature: 0` implies greedy sampling (always selecting the most likely token), which is incompatible with `do_sample: true`."),w.do_sample=!1),w.do_sample&&w.temperature!==null&&w.temperature!==1&&_e.push(new _.TemperatureLogitsWarper(w.temperature)),ae!==null&&_e.extend(ae),_e}_prepare_generation_config(w,j,ae=u.GenerationConfig){let _e={...this.config};for(let Se of["decoder","generator","text_config"])Se in _e&&Object.assign(_e,_e[Se]);let he=new ae(_e);return Object.assign(he,this.generation_config??{}),w&&Object.assign(he,w),j&&Object.assign(he,(0,i.pick)(j,Object.getOwnPropertyNames(he))),he}_get_stopping_criteria(w,j=null){let ae=new x.StoppingCriteriaList;return w.max_length!==null&&ae.push(new x.MaxLengthCriteria(w.max_length,this.config.max_position_embeddings??null)),w.eos_token_id!==null&&ae.push(new x.EosTokenCriteria(w.eos_token_id)),j&&ae.extend(j),ae}_validate_model_class(){if(!this.can_generate){let w=[Mc,wc,gc,fc],j=f.get(this.constructor),ae=new Set,_e=this.config.model_type;for(let Se of w){let Oe=Se.get(_e);Oe&&ae.add(Oe[0])}let he=`The current model class (${j}) is not compatible with \`.generate()\`, as it doesn't have a language model head.`;throw ae.size>0&&(he+=` Please use the following class instead: ${[...ae].join(", ")}`),Error(he)}}prepare_inputs_for_generation(...w){return this._prepare_inputs_for_generation(this,...w)}_update_model_kwargs_for_generation({generated_input_ids:w,outputs:j,model_inputs:ae,is_encoder_decoder:_e}){return ae.past_key_values=this.getPastKeyValues(j,ae.past_key_values),ae.input_ids=new d.Tensor("int64",w.flat(),[w.length,1]),_e?"decoder_attention_mask"in ae:ae.attention_mask=(0,d.cat)([ae.attention_mask,(0,d.ones)([ae.attention_mask.dims[0],1])],1),ae.position_ids=null,ae}_prepare_model_inputs({inputs:w,bos_token_id:j,model_kwargs:ae}){let _e=(0,i.pick)(ae,this.forward_params),he=this.main_input_name;if(he in _e){if(w)throw new Error("`inputs`: {inputs}` were passed alongside {input_name} which is not allowed. Make sure to either pass {inputs} or {input_name}=...")}else _e[he]=w;return{inputs_tensor:_e[he],model_inputs:_e,model_input_name:he}}async _prepare_encoder_decoder_kwargs_for_generation({inputs_tensor:w,model_inputs:j,model_input_name:ae,generation_config:_e}){if(this.sessions.model.inputNames.includes("inputs_embeds")&&!j.inputs_embeds&&"_prepare_inputs_embeds"in this){let{input_ids:Se,pixel_values:Oe,attention_mask:Ge,...st}=j,vt=await this._prepare_inputs_embeds(j);j={...st,...(0,i.pick)(vt,["inputs_embeds","attention_mask"])}}let{last_hidden_state:he}=await re(this,j);if(_e.guidance_scale!==null&&_e.guidance_scale>1)he=(0,d.cat)([he,(0,d.full_like)(he,0)],0),"attention_mask"in j&&(j.attention_mask=(0,d.cat)([j.attention_mask,(0,d.zeros_like)(j.attention_mask)],0));else if(j.decoder_input_ids){let Se=X(j.decoder_input_ids).dims[0];if(Se!==he.dims[0]){if(he.dims[0]!==1)throw new Error(`The encoder outputs have a different batch size (${he.dims[0]}) than the decoder inputs (${Se}).`);he=(0,d.cat)(Array.from({length:Se},()=>he),0)}}return j.encoder_outputs=he,j}_prepare_decoder_input_ids_for_generation({batch_size:w,model_input_name:j,model_kwargs:ae,decoder_start_token_id:_e,bos_token_id:he,generation_config:Se}){let{decoder_input_ids:Oe,...Ge}=ae;if(!(Oe instanceof d.Tensor)){if(Oe)Array.isArray(Oe[0])||(Oe=Array.from({length:w},()=>Oe));else if(_e??=he,this.config.model_type==="musicgen")Oe=Array.from({length:w*this.config.decoder.num_codebooks},()=>[_e]);else if(Array.isArray(_e)){if(_e.length!==w)throw new Error(`\`decoder_start_token_id\` expcted to have length ${w} but got ${_e.length}`);Oe=_e}else Oe=Array.from({length:w},()=>[_e]);Oe=X(Oe)}return ae.decoder_attention_mask=(0,d.ones_like)(Oe),{input_ids:Oe,model_inputs:Ge}}async generate({inputs:w=null,generation_config:j=null,logits_processor:ae=null,stopping_criteria:_e=null,streamer:he=null,...Se}){this._validate_model_class(),j=this._prepare_generation_config(j,Se);let{inputs_tensor:Oe,model_inputs:Ge,model_input_name:st}=this._prepare_model_inputs({inputs:w,model_kwargs:Se}),vt=this.config.is_encoder_decoder;vt&&("encoder_outputs"in Ge||(Ge=await this._prepare_encoder_decoder_kwargs_for_generation({inputs_tensor:Oe,model_inputs:Ge,model_input_name:st,generation_config:j})));let xt;vt?{input_ids:xt,model_inputs:Ge}=this._prepare_decoder_input_ids_for_generation({batch_size:Ge[st].dims.at(0),model_input_name:st,model_kwargs:Ge,decoder_start_token_id:j.decoder_start_token_id,bos_token_id:j.bos_token_id,generation_config:j}):xt=Ge[st];let Et=xt.dims.at(-1);j.max_new_tokens!==null&&(j.max_length=Et+j.max_new_tokens);let mt=this._get_logits_processor(j,Et,ae),Bt=this._get_stopping_criteria(j,_e),ht=Ge[st].dims.at(0),_t=F.LogitsSampler.getSampler(j),$t=new Array(ht).fill(0),Gt=xt.tolist();he&&he.put(Gt);let tr,sr={};for(;;){if(Ge=this.prepare_inputs_for_generation(Gt,Ge,j),tr=await this.forward(Ge),j.output_attentions&&j.return_dict_in_generate){let Hr=this.getAttentions(tr);for(let gs in Hr)gs in sr||(sr[gs]=[]),sr[gs].push(Hr[gs])}let Ft=tr.logits.slice(null,-1,null),cr=mt(Gt,Ft),Ar=[];for(let Hr=0;Hr<cr.dims.at(0);++Hr){let gs=cr[Hr],aa=await _t(gs);for(let[na,ii]of aa){let Wa=BigInt(na);$t[Hr]+=ii,Gt[Hr].push(Wa),Ar.push([Wa]);break}}if(he&&he.put(Ar),Bt(Gt).every(Hr=>Hr))break;Ge=this._update_model_kwargs_for_generation({generated_input_ids:Ar,outputs:tr,model_inputs:Ge,is_encoder_decoder:vt})}he&&he.end();let mr=this.getPastKeyValues(tr,Ge.past_key_values,!0),br=new d.Tensor("int64",Gt.flat(),[Gt.length,Gt[0].length]);if(j.return_dict_in_generate)return{sequences:br,past_key_values:mr,...sr};for(let Ft of Object.values(tr))Ft.location==="gpu-buffer"&&Ft.dispose();return br}getPastKeyValues(w,j,ae=!1){let _e=Object.create(null);for(let he in w)if(he.startsWith("present")){let Se=he.replace("present_conv","past_conv").replace("present","past_key_values"),Oe=he.includes("encoder");if(Oe&&j?_e[Se]=j[Se]:_e[Se]=w[he],j&&(!Oe||ae)){let Ge=j[Se];Ge.location==="gpu-buffer"&&Ge.dispose()}}return _e}getAttentions(w){let j={};for(let ae of["cross_attentions","encoder_attentions","decoder_attentions"])for(let _e in w)_e.startsWith(ae)&&(ae in j||(j[ae]=[]),j[ae].push(w[_e]));return j}addPastKeyValues(w,j){if(j)Object.assign(w,j);else{let ae=this.sessions.decoder_model_merged??this.sessions.model,_e=(w[this.main_input_name]??w.attention_mask)?.dims?.[0]??1,he=ae?.config?.kv_cache_dtype??"float32",Se=he==="float16"?d.DataTypeMap.float16:d.DataTypeMap.float32,Oe=(0,s.getCacheShapes)(this.config,{batch_size:_e});for(let Ge in Oe){let st=Oe[Ge].reduce((vt,xt)=>vt*xt,1);w[Ge]=new d.Tensor(he,new Se(st),Oe[Ge])}}}async encode_image({pixel_values:w}){return(await W(this.sessions.vision_encoder,{pixel_values:w})).image_features}async encode_text({input_ids:w}){return(await W(this.sessions.embed_tokens,{input_ids:w})).inputs_embeds}async encode_audio({audio_values:w}){return(await W(this.sessions.audio_encoder,{audio_values:w})).audio_features}}class le{}class ge extends le{constructor({last_hidden_state:w,hidden_states:j=null,attentions:ae=null}){super(),this.last_hidden_state=w,this.hidden_states=j,this.attentions=ae}}class be extends A{}class Ae extends be{}class ve extends be{async _call(w){return new Ir(await super._call(w))}}class pe extends be{async _call(w){return new Pt(await super._call(w))}}class Pe extends be{async _call(w){return new Er(await super._call(w))}}class fe extends be{async _call(w){return new jr(await super._call(w))}}class Te extends A{}class We extends Te{}class $e extends Te{async _call(w){return new Ir(await super._call(w))}}class Re extends Te{async _call(w){return new Pt(await super._call(w))}}class Ne extends Te{async _call(w){return new Er(await super._call(w))}}class ot extends Te{async _call(w){return new jr(await super._call(w))}}class De extends A{}class Qe extends De{}class je extends De{async _call(w){return new Ir(await super._call(w))}}class pt extends De{async _call(w){return new Pt(await super._call(w))}}class Ke extends De{async _call(w){return new Er(await super._call(w))}}class bt extends A{}class At extends bt{}class Lt extends bt{}class fr extends A{}class zt extends fr{}class yr extends A{}class zs extends yr{}class Ys extends yr{async _call(w){return new Ir(await super._call(w))}}class Zs extends yr{async _call(w){return new Pt(await super._call(w))}}class or extends yr{async _call(w){return new Er(await super._call(w))}}class Dr extends yr{async _call(w){return new jr(await super._call(w))}}class Yr extends A{}class Rs extends Yr{}class ft extends Yr{async _call(w){return new Ir(await super._call(w))}}class Cs extends Yr{async _call(w){return new Pt(await super._call(w))}}class qt extends Yr{async _call(w){return new Er(await super._call(w))}}class Ss extends Yr{async _call(w){return new jr(await super._call(w))}}class Qr extends A{}class St extends Qr{}class Xr extends Qr{async _call(w){return new Ir(await super._call(w))}}class k extends Qr{async _call(w){return new Pt(await super._call(w))}}class Q extends Qr{async _call(w){return new Er(await super._call(w))}}class N extends Qr{async _call(w){return new jr(await super._call(w))}}class K extends A{}class Z extends K{}class ce extends K{async _call(w){return new Ir(await super._call(w))}}class xe extends K{async _call(w){return new Pt(await super._call(w))}}class et extends K{async _call(w){return new Er(await super._call(w))}}class ut extends K{async _call(w){return new jr(await super._call(w))}}class qe extends A{}class wt extends qe{}class tt extends qe{async _call(w){return new Ir(await super._call(w))}}class gt extends qe{async _call(w){return new Pt(await super._call(w))}}class Nt extends qe{async _call(w){return new Er(await super._call(w))}}class Qt extends qe{async _call(w){return new jr(await super._call(w))}}class ur extends A{}class Or extends ur{}class Cr extends ur{async _call(w){return new Ir(await super._call(w))}}class Lr extends ur{async _call(w){return new Pt(await super._call(w))}}class _s extends ur{async _call(w){return new Er(await super._call(w))}}class Fs extends ur{async _call(w){return new jr(await super._call(w))}}class gr extends A{}class Ns extends gr{}class as extends gr{async _call(w){return new Pt(await super._call(w))}}class Nr extends gr{async _call(w){return new Er(await super._call(w))}}class Gr extends gr{async _call(w){return new jr(await super._call(w))}}class ar extends gr{async _call(w){return new Ir(await super._call(w))}}class _r extends A{}class ps extends _r{}class Is extends _r{async _call(w){return new Ir(await super._call(w))}}class As extends _r{async _call(w){return new Pt(await super._call(w))}}class $s extends _r{async _call(w){return new Er(await super._call(w))}}class ns extends A{}class Wr extends ns{}class ze extends ns{async _call(w){return new Ir(await super._call(w))}}class Ue extends ns{async _call(w){return new Pt(await super._call(w))}}class at extends ns{async _call(w){return new jr(await super._call(w))}}class Ht extends A{}class js extends Ht{}class Ds extends Ht{async _call(w){return new Ir(await super._call(w))}}class Vs extends Ht{async _call(w){return new Pt(await super._call(w))}}class Uo extends Ht{async _call(w){return new Er(await super._call(w))}}class de extends Ht{async _call(w){return new jr(await super._call(w))}}class S extends A{}class G extends S{}class te extends S{async _call(w){return new Ir(await super._call(w))}}class se extends S{async _call(w){return new Pt(await super._call(w))}}class me extends S{async _call(w){return new jr(await super._call(w))}}class Ce extends A{}class Ye extends Ce{}class Xe extends Ce{async _call(w){return new Pt(await super._call(w))}}class Ze extends Ce{async _call(w){return new jr(await super._call(w))}}class He extends Ce{async _call(w){return new Ir(await super._call(w))}}class It extends A{forward_params=["input_ids","attention_mask","encoder_outputs","decoder_input_ids","decoder_attention_mask","past_key_values"]}class yt extends It{}class Xt extends It{}class Mr extends A{}class nr extends Mr{}class Br extends Mr{}class ir extends A{}class Tr extends ir{}class zr extends ir{}class Pr extends A{}class Zr extends Pr{}class Yt extends Pr{}class vr extends Pr{async _call(w){return new Pt(await super._call(w))}}class Sr extends A{}class Jr extends Sr{}class ms extends Sr{}class Fr extends Sr{async _call(w){return new Pt(await super._call(w))}}class is extends Sr{}class lr extends A{}class pr extends lr{}class wr extends lr{}class er extends A{}class Kr extends er{}class Ws extends er{}class Os extends A{}class fn extends Os{}class gn extends Os{async _call(w){return new Ir(await super._call(w))}}class ga extends Os{async _call(w){return new Pt(await super._call(w))}}class Mn extends Os{async _call(w){return new Er(await super._call(w))}}class wn extends Os{async _call(w){return new jr(await super._call(w))}}class eo extends A{}class bn extends eo{}class vn extends eo{async _call(w){return new Ir(await super._call(w))}}class xn extends eo{async _call(w){return new Pt(await super._call(w))}}class yn extends eo{async _call(w){return new Er(await super._call(w))}}class Tn extends eo{async _call(w){return new jr(await super._call(w))}}class to extends A{}class Pn extends to{}class En extends to{async _call(w){return new Ir(await super._call(w))}}class kn extends to{async _call(w){return new Pt(await super._call(w))}}class Ma extends to{async _call(w){return new Er(await super._call(w))}}class wa extends to{async _call(w){return new jr(await super._call(w))}}class Go extends A{}class Cn extends Go{}class Sn extends Go{}class Ko extends A{requires_attention_mask=!1;main_input_name="input_features";forward_params=["input_features","attention_mask","decoder_input_ids","decoder_attention_mask","past_key_values"]}class ba extends Ko{}class Us extends Ko{_prepare_generation_config(w,j){return super._prepare_generation_config(w,j,b.WhisperGenerationConfig)}_retrieve_init_tokens(w){let j=[w.decoder_start_token_id],ae=w.language,_e=w.task;if(w.is_multilingual){ae||(console.warn("No language specified - defaulting to English (en)."),ae="en");let Se=`<|${(0,C.whisper_language_to_code)(ae)}|>`;j.push(w.lang_to_id[Se]),j.push(w.task_to_id[_e??"transcribe"])}else if(ae||_e)throw new Error("Cannot specify `task` or `language` for an English-only model. If the model is intended to be multilingual, pass `is_multilingual=true` to generate, or update the generation config.");return!w.return_timestamps&&w.no_timestamps_token_id&&j.at(-1)!==w.no_timestamps_token_id?j.push(w.no_timestamps_token_id):w.return_timestamps&&j.at(-1)===w.no_timestamps_token_id&&(console.warn("<|notimestamps|> prompt token is removed from generation_config since `return_timestamps` is set to `true`."),j.pop()),j.filter(he=>he!=null)}async generate({inputs:w=null,generation_config:j=null,logits_processor:ae=null,stopping_criteria:_e=null,...he}){j=this._prepare_generation_config(j,he);let Se=he.decoder_input_ids??this._retrieve_init_tokens(j);if(j.return_timestamps&&(ae??=new _.LogitsProcessorList,ae.push(new _.WhisperTimeStampLogitsProcessor(j,Se))),j.begin_suppress_tokens&&(ae??=new _.LogitsProcessorList,ae.push(new _.SuppressTokensAtBeginLogitsProcessor(j.begin_suppress_tokens,Se.length))),j.return_token_timestamps){if(!j.alignment_heads)throw new Error("Model generation config has no `alignment_heads`, token-level timestamps not available. See https://gist.github.com/hollance/42e32852f24243b748ae6bc1f985b13a on how to add this property to the generation config.");j.task==="translate"&&console.warn("Token-level timestamps may not be reliable for task 'translate'."),j.output_attentions=!0,j.return_dict_in_generate=!0}let Oe=await super.generate({inputs:w,generation_config:j,logits_processor:ae,decoder_input_ids:Se,...he});return j.return_token_timestamps&&(Oe.token_timestamps=this._extract_token_timestamps(Oe,j.alignment_heads,j.num_frames)),Oe}_extract_token_timestamps(w,j,ae=null,_e=.02){if(!w.cross_attentions)throw new Error("Model outputs must contain cross attentions to extract timestamps. This is most likely because the model was not exported with `output_attentions=True`.");ae==null&&console.warn("`num_frames` has not been set, meaning the entire audio will be analyzed. This may lead to inaccurate token-level timestamps for short audios (< 30 seconds).");let he=this.config.median_filter_width;he===void 0&&(console.warn("Model config has no `median_filter_width`, using default value of 7."),he=7);let Se=w.cross_attentions,Oe=Array.from({length:this.config.decoder_layers},(ht,_t)=>(0,d.cat)(Se.map($t=>$t[_t]),2)),Ge=(0,d.stack)(j.map(([ht,_t])=>{if(ht>=Oe.length)throw new Error(`Layer index ${ht} is out of bounds for cross attentions (length ${Oe.length}).`);return ae?Oe[ht].slice(null,_t,null,[0,ae]):Oe[ht].slice(null,_t)})).transpose(1,0,2,3),[st,vt]=(0,d.std_mean)(Ge,-2,0,!0),xt=Ge.clone();for(let ht=0;ht<xt.dims[0];++ht){let _t=xt[ht];for(let $t=0;$t<_t.dims[0];++$t){let Gt=_t[$t],tr=st[ht][$t][0].data,sr=vt[ht][$t][0].data;for(let mr=0;mr<Gt.dims[0];++mr){let br=Gt[mr].data;for(let Ft=0;Ft<br.length;++Ft)br[Ft]=(br[Ft]-sr[Ft])/tr[Ft];br.set((0,h.medianFilter)(br,he))}}}let Et=[(0,d.mean)(xt,1)],mt=w.sequences.dims,Bt=new d.Tensor("float32",new Float32Array(mt[0]*mt[1]),mt);for(let ht=0;ht<mt[0];++ht){let _t=Et[ht].neg().squeeze_(0),[$t,Gt]=(0,h.dynamic_time_warping)(_t.tolist()),tr=Array.from({length:$t.length-1},(br,Ft)=>$t[Ft+1]-$t[Ft]),sr=(0,i.mergeArrays)([1],tr).map(br=>!!br),mr=[];for(let br=0;br<sr.length;++br)sr[br]&&mr.push(Gt[br]*_e);Bt[ht].data.set(mr,1)}return Bt}}class Fn extends Us{}class Ho extends A{requires_attention_mask=!1;main_input_name="input_values";forward_params=["input_values","decoder_input_ids","past_key_values"]}class Zi extends Ho{}class In extends Ho{}class va extends A{main_input_name="pixel_values";forward_params=["pixel_values","decoder_input_ids","encoder_hidden_states","past_key_values"]}class xa extends A{forward_params=["input_ids","attention_mask","pixel_values","position_ids","past_key_values"]}class ro extends xa{_merge_input_ids_with_image_features(w){let j=w.image_features.dims.at(-1),ae=w.image_features.view(-1,j);return Y({image_token_id:this.config.image_token_index,...w,image_features:ae})}}class ya extends ro{}class An extends ro{}class $n extends A{forward_params=["input_ids","inputs_embeds","attention_mask","pixel_values","encoder_outputs","decoder_input_ids","decoder_inputs_embeds","decoder_attention_mask","past_key_values"];main_input_name="inputs_embeds"}class Dn extends $n{_merge_input_ids_with_image_features({inputs_embeds:w,image_features:j,input_ids:ae,attention_mask:_e}){return{inputs_embeds:(0,d.cat)([j,w],1),attention_mask:(0,d.cat)([(0,d.ones)(j.dims.slice(0,2)),_e],1)}}async _prepare_inputs_embeds({input_ids:w,pixel_values:j,inputs_embeds:ae,attention_mask:_e}){if(!w&&!j)throw new Error("Either `input_ids` or `pixel_values` should be provided.");let he,Se;return w&&(he=await this.encode_text({input_ids:w})),j&&(Se=await this.encode_image({pixel_values:j})),he&&Se?{inputs_embeds:ae,attention_mask:_e}=this._merge_input_ids_with_image_features({inputs_embeds:he,image_features:Se,input_ids:w,attention_mask:_e}):ae=he||Se,{inputs_embeds:ae,attention_mask:_e}}async forward({input_ids:w,pixel_values:j,attention_mask:ae,decoder_input_ids:_e,decoder_attention_mask:he,encoder_outputs:Se,past_key_values:Oe,inputs_embeds:Ge,decoder_inputs_embeds:st}){if(Ge||({inputs_embeds:Ge,attention_mask:ae}=await this._prepare_inputs_embeds({input_ids:w,pixel_values:j,inputs_embeds:Ge,attention_mask:ae})),!Se){let{last_hidden_state:Et}=await re(this,{inputs_embeds:Ge,attention_mask:ae});Se=Et}if(!st){if(!_e)throw new Error("Either `decoder_input_ids` or `decoder_inputs_embeds` should be provided.");st=await this.encode_text({input_ids:_e})}return await ne(this,{inputs_embeds:st,attention_mask:he,encoder_attention_mask:ae,encoder_hidden_states:Se,past_key_values:Oe},!0)}}class On extends A{forward_params=["input_ids","attention_mask","pixel_values","position_ids","past_key_values"]}class Ln extends On{_merge_input_ids_with_image_features(w){let j=w.image_features.dims.at(-1),ae=w.image_features.view(-1,j);return Y({image_token_id:this.config.image_token_index,...w,image_features:ae})}}class Ta extends xa{_merge_input_ids_with_image_features(w){let j=w.image_features.dims.at(-1),ae=w.image_features.view(-1,j);return Y({image_token_id:this.config.image_token_index,...w,image_features:ae})}}class Bn extends Ta{}class zn extends A{forward_params=["input_ids","attention_mask","inputs_embeds","per_layer_inputs","position_ids","pixel_values","input_features","input_features_mask","past_key_values"]}class Pa extends zn{async forward({input_ids:w=null,attention_mask:j=null,pixel_values:ae=null,input_features:_e=null,input_features_mask:he=null,position_ids:Se=null,inputs_embeds:Oe=null,per_layer_inputs:Ge=null,past_key_values:st=null,generation_config:vt=null,logits_processor:xt=null,...Et}){if((!Oe||!Ge)&&({inputs_embeds:Oe,per_layer_inputs:Ge}=await W(this.sessions.embed_tokens,{input_ids:w}),w.dims[1]!==1)){if(ae){let{image_features:Bt}=await W(this.sessions.vision_encoder,{pixel_values:ae});({inputs_embeds:Oe,attention_mask:j}=this._merge_input_ids_with_image_features({image_features:Bt,inputs_embeds:Oe,input_ids:w,attention_mask:j}))}if(_e){let{audio_features:Bt}=await W(this.sessions.audio_encoder,{input_features:_e,input_features_mask:he});({inputs_embeds:Oe,attention_mask:j}=this._merge_input_ids_with_audio_features({audio_features:Bt,inputs_embeds:Oe,input_ids:w,attention_mask:j}))}}return await ne(this,{inputs_embeds:Oe,per_layer_inputs:Ge,past_key_values:st,attention_mask:j,position_ids:Se,generation_config:vt,logits_processor:xt},!0)}_merge_input_ids_with_image_features(w){let j=w.image_features.dims.at(-1),ae=w.image_features.view(-1,j);return Y({image_token_id:this.config.image_token_id,...w,image_features:ae})}_merge_input_ids_with_audio_features(w){let j=w.audio_features.dims.at(-1),ae=w.audio_features.view(-1,j);return H({audio_token_id:this.config.audio_token_id,...w,audio_features:ae})}}class mo extends A{forward_params=["input_ids","attention_mask","pixel_values","pixel_attention_mask","position_ids","past_key_values"]}class hs extends mo{async encode_image({pixel_values:w,pixel_attention_mask:j}){return(await W(this.sessions.vision_encoder,{pixel_values:w,pixel_attention_mask:j})).image_features}_merge_input_ids_with_image_features(w){let j=w.image_features.dims.at(-1),ae=w.image_features.view(-1,j);return Y({image_token_id:this.config.image_token_id,...w,image_features:ae})}}class qo extends hs{}class Rn extends A{forward_params=["input_ids","inputs_embeds","attention_mask","position_ids","pixel_values","image_sizes","past_key_values"]}class Ea extends Rn{async forward({input_ids:w=null,attention_mask:j=null,pixel_values:ae=null,image_sizes:_e=null,position_ids:he=null,inputs_embeds:Se=null,past_key_values:Oe=null,generation_config:Ge=null,logits_processor:st=null,...vt}){if(!Se){let Et;if(ae&&w.dims[1]!==1){if(!_e)throw new Error("`image_sizes` must be provided when `pixel_values` is provided.");({image_features:Et}=await W(this.sessions.vision_encoder,{pixel_values:ae,image_sizes:_e}))}else{let mt=this.config.normalized_config.hidden_size;Et=new d.Tensor("float32",[],[0,mt])}({inputs_embeds:Se}=await W(this.sessions.prepare_inputs_embeds,{input_ids:w,image_features:Et}))}return await ne(this,{inputs_embeds:Se,past_key_values:Oe,attention_mask:j,position_ids:he,generation_config:Ge,logits_processor:st},!1)}}class fs extends A{}class Qo extends fs{}class Nn extends fs{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"text_model"})}}class ka extends fs{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"text_model"})}}class jn extends fs{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"vision_model"})}}class Ca extends fs{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"vision_model"})}}class Xo extends A{}class Sa extends Xo{}class Vn extends Xo{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"text_model"})}}class Fa extends fs{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"vision_model"})}}class Ia extends A{}class ho extends Ia{}class ct extends A{}class Wn extends ct{async forward(w){let j=!w.input_ids,ae=!w.pixel_values;if(j&&ae)throw new Error("Either `input_ids` or `pixel_values` should be provided.");if(j&&(w.input_ids=(0,d.ones)([w.pixel_values.dims[0],1])),ae){let{image_size:st}=this.config.vision_config;w.pixel_values=(0,d.full)([0,3,st,st],0)}let{text_embeddings:_e,image_embeddings:he,l2norm_text_embeddings:Se,l2norm_image_embeddings:Oe}=await super.forward(w),Ge={};return j||(Ge.text_embeddings=_e,Ge.l2norm_text_embeddings=Se),ae||(Ge.image_embeddings=he,Ge.l2norm_image_embeddings=Oe),Ge}}class Aa extends ct{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"text_model"})}}class $a extends ct{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"vision_model"})}}class so extends A{}class es extends so{}class fo extends so{}class go extends A{}class Da extends go{}class Oa extends go{}class Jo extends A{}class Yo extends Jo{}class La extends Jo{}class Zo extends A{}class Ba extends Zo{}class Mo extends Zo{}class wo extends A{}class ea extends wo{}class za extends wo{}class ta extends A{}class Ra extends ta{}class Na extends ta{}class ra extends A{}class m extends ra{}class T extends ra{}class $ extends A{}class B extends ${}class V extends ${}class ie extends A{}class Ee extends ie{}class Be extends ie{}class Je extends A{}class nt extends Je{}class Tt extends A{}class Dt extends Tt{}class Wt extends Tt{}class xr extends A{}class Gs extends xr{}class Un extends xr{}class el extends A{}class Eu extends el{}class ku extends el{}class tl extends A{}class Cu extends tl{}class Su extends tl{}class rl extends A{}class Fu extends rl{}class Iu extends rl{}class sl extends A{}class Au extends sl{}class $u extends sl{}class ol extends A{}class Du extends ol{}class Ou extends ol{}class al extends A{}class Lu extends al{}class Bu extends al{}class nl extends A{}class zu extends nl{}class Ru extends nl{}class il extends A{}class Nu extends il{}class ju extends il{}class ll extends A{}class Vu extends ll{}class Wu extends ll{}class cl extends A{}class Uu extends cl{}class Gu extends cl{}class dl extends A{}class Ku extends dl{}class Hu extends dl{}class ul extends A{}class qu extends ul{}class Qu extends ul{}class _l extends A{}class Xu extends _l{}class Ju extends _l{}class pl extends A{}class Yu extends pl{}class Zu extends pl{}class ml extends A{}class e_ extends ml{}class t_ extends ml{}class hl extends A{}class r_ extends hl{}class s_ extends hl{}class fl extends A{}class o_ extends fl{}class a_ extends fl{}class gl extends A{}class n_ extends gl{}class i_ extends gl{}class l_ extends A{forward_params=["input_ids","attention_mask","position_ids","past_key_values","pixel_values","image_grid_thw"]}class c_ extends l_{get_rope_index(w,j,ae,_e){let{vision_config:he,image_token_id:Se,video_token_id:Oe,vision_start_token_id:Ge}=this.config,st=he.spatial_merge_size??2,vt=[];if(j||ae){let xt=w.tolist();_e||(_e=(0,d.ones_like)(w));let Et=_e.tolist(),mt=Array.from({length:3},Gt=>Array.from({length:w.dims[0]},tr=>Array.from({length:w.dims[1]},sr=>1))),Bt=j?j.tolist():[],ht=ae?ae.tolist():[],_t=0,$t=0;for(let Gt=0;Gt<xt.length;++Gt){let tr=xt[Gt].filter((rr,kr)=>Et[Gt][kr]==1),mr=tr.reduce((rr,kr,no)=>(kr==Ge&&rr.push(no),rr),[]).map(rr=>tr[rr+1]),br=mr.filter(rr=>rr==Se).length,Ft=mr.filter(rr=>rr==Oe).length,cr=[],Ar=0,bo=br,Hr=Ft;for(let rr=0;rr<mr.length;++rr){let kr=tr.findIndex((xo,Ms)=>Ms>Ar&&xo==Se),no=tr.findIndex((xo,Ms)=>Ms>Ar&&xo==Oe),vo=bo>0&&kr!==-1?kr:tr.length+1,ia=Hr>0&&no!==-1?no:tr.length+1,li,bc,vc,xc;vo<ia?([bc,vc,xc]=Bt[_t],++_t,--bo,li=vo):([bc,vc,xc]=ht[$t],++$t,--Hr,li=ia);let[FT,yc,ci]=[Number(bc),Math.floor(Number(vc)/st),Math.floor(Number(xc)/st)],Tc=li-Ar,Af=cr.length>0?(0,h.max)(cr.at(-1))[0]+1:0;cr.push(Array.from({length:3*Tc},(xo,Ms)=>Af+Ms%Tc));let Pc=Tc+Af,di=FT*yc*ci,IT=Array.from({length:di},(xo,Ms)=>Pc+Math.floor(Ms/(yc*ci))),AT=Array.from({length:di},(xo,Ms)=>Pc+Math.floor(Ms/ci)%yc),$T=Array.from({length:di},(xo,Ms)=>Pc+Ms%ci);cr.push([IT,AT,$T].flat()),Ar=li+di}if(Ar<tr.length){let rr=cr.length>0?(0,h.max)(cr.at(-1))[0]+1:0,kr=tr.length-Ar;cr.push(Array.from({length:3*kr},(no,vo)=>rr+vo%kr))}let gs=cr.reduce((rr,kr)=>rr+kr.length,0),aa=new Array(gs),na=0;for(let rr=0;rr<3;++rr)for(let kr=0;kr<cr.length;++kr){let no=cr[kr],vo=no.length/3;for(let ia=rr*vo;ia<(rr+1)*vo;++ia)aa[na++]=no[ia]}let ii=0,Wa=Et[Gt];for(let rr=0;rr<Wa.length;++rr)if(Wa[rr]==1){for(let kr=0;kr<3;++kr)mt[kr][Gt][rr]=aa[kr*gs/3+ii];++ii}let ST=(0,h.max)(aa)[0];vt.push(ST+1-xt[Gt].length)}return[new d.Tensor("int64",mt.flat(1/0),[3,w.dims[0],w.dims[1]]),new d.Tensor("int64",vt,[vt.length,1])]}else if(_e){let{data:xt,dims:Et}=ue(_e),mt=BigInt64Array.from({length:3*xt.length},(ht,_t)=>xt[_t%xt.length]),Bt=Array.from({length:Et[0]},(ht,_t)=>(0,h.max)(xt.subarray(Et[1]*_t,Et[1]*(_t+1)))[0]+1n+BigInt(Et[1]));return[new d.Tensor("int64",mt,[3,...Et]),new d.Tensor("int64",Bt,[Bt.length,1])]}else{let[xt,Et]=w.dims,mt=BigInt64Array.from({length:3*xt*Et},(Bt,ht)=>BigInt(Math.floor(ht%Et/xt)));return[new d.Tensor("int64",mt,[3,...w.dims]),(0,d.zeros)([xt,1])]}}async encode_image({pixel_values:w,image_grid_thw:j}){return(await W(this.sessions.vision_encoder,{pixel_values:w,grid_thw:j})).image_features}_merge_input_ids_with_image_features(w){return Y({image_token_id:this.config.image_token_id,...w})}prepare_inputs_for_generation(w,j,ae){if(j.attention_mask&&!j.position_ids)if(!j.past_key_values)[j.position_ids,j.rope_deltas]=this.get_rope_index(j.input_ids,j.image_grid_thw,j.video_grid_thw,j.attention_mask);else{j.pixel_values=null;let _e=BigInt(Object.values(j.past_key_values)[0].dims.at(-2)),he=j.rope_deltas.map(Se=>_e+Se);j.position_ids=(0,d.stack)([he,he,he],0)}return j}}class Ml extends A{}class d_ extends Ml{}class u_ extends Ml{}class wl extends A{}class __ extends wl{}class p_ extends wl{}class bl extends A{}class m_ extends bl{}class h_ extends bl{}class vl extends A{}class f_ extends vl{}class g_ extends vl{}class xl extends A{}class M_ extends xl{}class w_ extends xl{}class yl extends A{}class b_ extends yl{}class v_ extends yl{async _call(w){return new Pt(await super._call(w))}}class Tl extends A{}class x_ extends Tl{}class y_ extends Tl{async _call(w){return new Pt(await super._call(w))}}class T_ extends A{}class P_ extends T_{}class Pl extends A{}class E_ extends Pl{}class k_ extends Pl{async _call(w){return new Pt(await super._call(w))}}class C_ extends A{}class S_ extends C_{}class El extends A{}class F_ extends El{}class I_ extends El{async _call(w){return new Pt(await super._call(w))}}class A_ extends A{}class $_ extends A_{}class kl extends A{}class D_ extends kl{}class O_ extends kl{async _call(w){return new Pt(await super._call(w))}}class L_ extends A{}class B_ extends L_{async _call(w){return new Ff(await super._call(w))}}class Cl extends A{}class z_ extends Cl{}class R_ extends Cl{async _call(w){return new Pt(await super._call(w))}}class Sl extends A{}class N_ extends Sl{}class j_ extends Sl{async _call(w){return new Pt(await super._call(w))}}class Fl extends A{}class V_ extends Fl{}class W_ extends Fl{}class Il extends A{}class U_ extends Il{}class G_ extends Il{}class Al extends A{}class K_ extends Al{}class H_ extends Al{async _call(w){return new Pt(await super._call(w))}}class Gn extends A{}class q_ extends Gn{}class Q_ extends Gn{async _call(w){return new Dl(await super._call(w))}}class $l extends Gn{async _call(w){return new X_(await super._call(w))}}class Dl extends le{constructor({logits:w,pred_boxes:j}){super(),this.logits=w,this.pred_boxes=j}}class X_ extends le{constructor({logits:w,pred_boxes:j,pred_masks:ae}){super(),this.logits=w,this.pred_boxes=j,this.pred_masks=ae}}class Ol extends A{}class J_ extends Ol{}class Y_ extends Ol{async _call(w){return new ja(await super._call(w))}}class ja extends le{constructor({logits:w,pred_boxes:j}){super(),this.logits=w,this.pred_boxes=j}}class Ll extends A{}class Z_ extends Ll{}class ep extends Ll{async _call(w){return new tp(await super._call(w))}}class tp extends ja{}class Bl extends A{}class rp extends Bl{}class sp extends Bl{async _call(w){return new op(await super._call(w))}}class op extends ja{}class zl extends A{}class ap extends zl{}class np extends zl{async _call(w){return new ja(await super._call(w))}}class Rl extends A{}class ip extends Rl{}class lp extends Rl{async _call(w){return new cp(await super._call(w))}}class cp extends Dl{}class Nl extends A{}class dp extends Nl{}class up extends Nl{async _call(w){return new Pt(await super._call(w))}}class jl extends A{}class _p extends jl{}class pp extends jl{async _call(w){return new Pt(await super._call(w))}}class Vl extends A{}class mp extends Vl{}class hp extends Vl{async _call(w){return new Pt(await super._call(w))}}class Kn extends A{}class fp extends Kn{}class gp extends Kn{async _call(w){return new Pt(await super._call(w))}}class Mp extends Kn{}class Wl extends A{}class wp extends Wl{}class bp extends Wl{}class Ul extends A{}class vp extends Ul{}class xp extends Ul{}class yp extends A{}class Tp extends yp{}class Hn extends A{}class Pp extends Hn{}class Ep extends Hn{}class kp extends Hn{}class Cp extends A{}class Sp extends Cp{}class Fp extends A{}class Ip extends Fp{}class Ap extends A{}class $p extends Ap{}class Gl extends A{}class Dp extends Gl{}class Op extends Gl{}class Kl extends A{}class Lp extends Kl{}class Bp extends Kl{}class zp extends A{}class Rp extends zp{}class Hl extends A{}class Np extends Hl{}class jp extends Hl{async _call(w){return new Pt(await super._call(w))}}class ql extends A{}class Vp extends ql{}class Wp extends ql{async _call(w){return new Pt(await super._call(w))}}class Ql extends A{}class Up extends Ql{}class Gp extends Ql{async _call(w){return new Pt(await super._call(w))}}class Xl extends A{}class Kp extends Xl{}class Hp extends Xl{async _call(w){return new Pt(await super._call(w))}}class qp extends A{}class Qp extends qp{}class Xp extends A{}class Jp extends Xp{}class Yp extends A{}class Zp extends Yp{}class Jl extends A{}class em extends Jl{}class tm extends Jl{async _call(w){return new rm(await super._call(w))}}class rm extends le{constructor({logits:w,pred_boxes:j}){super(),this.logits=w,this.pred_boxes=j}}class sm extends A{}class om extends sm{async get_image_embeddings({pixel_values:w}){return await re(this,{pixel_values:w})}async forward(w){!w.image_embeddings||!w.image_positional_embeddings?w={...w,...await this.get_image_embeddings(w)}:w={...w},w.input_labels??=(0,d.ones)(w.input_points.dims.slice(0,-1));let j={image_embeddings:w.image_embeddings,image_positional_embeddings:w.image_positional_embeddings};return w.input_points&&(j.input_points=w.input_points),w.input_labels&&(j.input_labels=w.input_labels),w.input_boxes&&(j.input_boxes=w.input_boxes),await W(this.sessions.prompt_encoder_mask_decoder,j)}async _call(w){return new am(await super._call(w))}}class am extends le{constructor({iou_scores:w,pred_masks:j}){super(),this.iou_scores=w,this.pred_masks=j}}class nm extends le{constructor({iou_scores:w,pred_masks:j,object_score_logits:ae}){super(),this.iou_scores=w,this.pred_masks=j,this.object_score_logits=ae}}class im extends A{}class qn extends im{async get_image_embeddings({pixel_values:w}){return await re(this,{pixel_values:w})}async forward(w){let{num_feature_levels:j}=this.config.vision_config;if(Array.from({length:j},(Se,Oe)=>`image_embeddings.${Oe}`).some(Se=>!w[Se])?w={...w,...await this.get_image_embeddings(w)}:w={...w},w.input_points){if(w.input_boxes&&w.input_boxes.dims[1]!==1)throw new Error("When both `input_points` and `input_boxes` are provided, the number of boxes per image must be 1.");let Se=w.input_points.dims;w.input_labels??=(0,d.ones)(Se.slice(0,-1)),w.input_boxes??=(0,d.full)([Se[0],0,4],0)}else if(w.input_boxes){let Se=w.input_boxes.dims;w.input_labels=(0,d.full)([Se[0],Se[1],0],-1n),w.input_points=(0,d.full)([Se[0],1,0,2],0)}else throw new Error("At least one of `input_points` or `input_boxes` must be provided.");let _e=this.sessions.prompt_encoder_mask_decoder,he=(0,i.pick)(w,_e.inputNames);return await W(_e,he)}async _call(w){return new nm(await super._call(w))}}class lm extends qn{}class cm extends qn{}class Yl extends A{}class dm extends Yl{}class um extends Yl{}class Zl extends A{}class _m extends Zl{}class pm extends Zl{}class oo extends A{}class mm extends oo{}class hm extends oo{async _call(w){return new ao(await super._call(w))}}class fm extends oo{async _call(w){return new Pt(await super._call(w))}}class gm extends oo{async _call(w){return new Er(await super._call(w))}}class Mm extends A{}class wm extends Mm{async _call(w){return new ao(await super._call(w))}}class ec extends A{}class bm extends ec{}class vm extends ec{async _call(w){return new Er(await super._call(w))}}class xm extends A{}class ym extends xm{}class Qn extends A{}class Tm extends Qn{}class Pm extends Qn{async _call(w){return new ao(await super._call(w))}}class Em extends Qn{async _call(w){return new Pt(await super._call(w))}}class Va extends A{}class km extends Va{}class Cm extends Va{async _call(w){return new ao(await super._call(w))}}class Sm extends Va{async _call(w){return new Pt(await super._call(w))}}class Fm extends Va{async _call(w){return new Er(await super._call(w))}}class Xn extends A{}class Im extends Xn{}class Am extends Xn{async _call(w){return new ao(await super._call(w))}}class $m extends Xn{async _call(w){return new Pt(await super._call(w))}}class B0 extends A{}class Dm extends oo{}class Om extends oo{async _call(w){return new ao(await super._call(w))}}class Lm extends oo{async _call(w){return new Pt(await super._call(w))}}class sa extends A{}class Bm extends sa{}class zm extends sa{async _call(w){return new ao(await super._call(w))}}class Rm extends sa{async _call(w){return new Pt(await super._call(w))}}class Nm extends sa{async _call(w){return new Sf(await super._call(w))}}class jm extends sa{async _call(w){return new Er(await super._call(w))}}class Vm extends A{}class Wm extends Vm{}class Jn extends A{}class z0 extends Jn{}class Um extends Jn{}class Gm extends Jn{async generate_speech(w,j,{threshold:ae=.5,minlenratio:_e=0,maxlenratio:he=20,vocoder:Se=null}={}){let Oe={input_ids:w},{encoder_outputs:Ge,encoder_attention_mask:st}=await re(this,Oe),vt=Ge.dims[1]/this.config.reduction_factor,xt=Math.floor(vt*he),Et=Math.floor(vt*_e),mt=this.config.num_mel_bins,Bt=[],ht=null,_t=null,$t=0;for(;;){++$t;let sr=J(!!_t),mr;_t?mr=_t.output_sequence_out:mr=new d.Tensor("float32",new Float32Array(mt),[1,1,mt]);let br={use_cache_branch:sr,output_sequence:mr,encoder_attention_mask:st,speaker_embeddings:j,encoder_hidden_states:Ge};this.addPastKeyValues(br,ht),_t=await W(this.sessions.decoder_model_merged,br),ht=this.getPastKeyValues(_t,ht);let{prob:Ft,spectrum:cr}=_t;if(Bt.push(cr),$t>=Et&&(Array.from(Ft.data).filter(Ar=>Ar>=ae).length>0||$t>=xt))break}let Gt=(0,d.cat)(Bt),{waveform:tr}=await W(Se.sessions.model,{spectrogram:Gt});return{spectrogram:Gt,waveform:tr}}}class Km extends A{main_input_name="spectrogram"}class Hm extends A{}class tc extends Hm{async generate_speech({input_ids:w,attention_mask:j,style:ae,num_inference_steps:_e=5,speed:he=1.05}){let{sampling_rate:Se,chunk_compress_factor:Oe,base_chunk_size:Ge,latent_dim:st}=this.config,{last_hidden_state:vt,durations:xt}=await W(this.sessions.text_encoder,{input_ids:w,attention_mask:j,style:ae});xt.div_(he);let Et=xt.max().item()*Se,mt=Ge*Oe,Bt=Math.floor((Et+mt-1)/mt),ht=w.dims[0],_t=(0,d.ones)([ht,Bt]),$t=(0,d.full)([ht],_e),Gt=(0,d.randn)([ht,st*Oe,Bt]);for(let sr=0;sr<_e;++sr){let mr=(0,d.full)([ht],sr);({denoised_latents:Gt}=await W(this.sessions.latent_denoiser,{style:ae,noisy_latents:Gt,latent_mask:_t,encoder_outputs:vt,attention_mask:j,timestep:mr,num_inference_steps:$t}))}let{waveform:tr}=await W(this.sessions.voice_decoder,{latents:Gt});return{waveform:tr,durations:xt}}}class qm extends A{}class Qm extends qm{}class rc extends A{}class Xm extends rc{}class Jm extends rc{}class sc extends A{}class Ym extends sc{}class Zm extends sc{}class oc extends A{}class eh extends oc{}class th extends oc{}class ac extends A{}class rh extends ac{}class sh extends ac{}class nc extends A{}class oh extends nc{}class ah extends nc{}class ic extends A{}class nh extends ic{}class ih extends ic{}class Yn extends A{}class lh extends Yn{}class ch extends Yn{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"text_model"})}}class dh extends Yn{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"audio_model"})}}class uh extends A{}class lc extends uh{async _call(w){return new If(await super._call(w))}}class Zn extends A{}class R0 extends Zn{}class _h extends Zn{}class ph extends Zn{}class cc extends A{}class mh extends cc{}class hh extends cc{}class dc extends A{}class fh extends dc{}class gh extends dc{async _call(w){return new Pt(await super._call(w))}}class uc extends A{}class N0 extends uc{}class j0 extends uc{}class _c extends A{forward_params=["input_ids","attention_mask","encoder_outputs","decoder_input_ids","decoder_attention_mask","past_key_values"];_apply_and_filter_by_delay_pattern_mask(w){let[j,ae]=w.dims,_e=this.config.decoder.num_codebooks,he=ae-_e,Se=0;for(let st=0;st<w.size;++st){if(w.data[st]===this.config.decoder.pad_token_id)continue;let vt=st%ae,xt=Math.floor(st/ae)%_e,Et=vt-xt;Et>0&&Et<=he&&(w.data[Se++]=w.data[st])}let Oe=Math.floor(j/_e),Ge=Se/(Oe*_e);return new d.Tensor(w.type,w.data.slice(0,Se),[Oe,_e,Ge])}prepare_inputs_for_generation(w,j,ae){let _e=structuredClone(w);for(let Se=0;Se<_e.length;++Se)for(let Oe=0;Oe<_e[Se].length;++Oe)Se%this.config.decoder.num_codebooks>=Oe&&(_e[Se][Oe]=BigInt(this.config.decoder.pad_token_id));return ae.guidance_scale!==null&&ae.guidance_scale>1&&(_e=_e.concat(_e)),super.prepare_inputs_for_generation(_e,j,ae)}async generate(w){let j=await super.generate(w),ae=this._apply_and_filter_by_delay_pattern_mask(j).unsqueeze_(0),{audio_values:_e}=await W(this.sessions.encodec_decode,{audio_codes:ae});return _e}}class ei extends A{}class Mh extends ei{}class wh extends ei{async _call(w){return new Pt(await super._call(w))}}class bh extends ei{}class ti extends A{}class vh extends ti{}class xh extends ti{async _call(w){return new Pt(await super._call(w))}}class yh extends ti{}class ri extends A{}class Th extends ri{}class Ph extends ri{async _call(w){return new Pt(await super._call(w))}}class Eh extends ri{}class si extends A{}class kh extends si{}class Ch extends si{async _call(w){return new Pt(await super._call(w))}}class Sh extends si{}class Fh extends A{}class Ih extends Fh{}class Ah extends A{}class $h extends Ah{forward_params=["input_ids","pixel_values","images_seq_mask","images_emb_mask","attention_mask","position_ids","past_key_values"];constructor(...w){super(...w),this._generation_mode="text"}async forward(w){let j=this._generation_mode??"text",ae;if(j==="text"||!w.past_key_values){let Ge=this.sessions.prepare_inputs_embeds,st=(0,i.pick)(w,Ge.inputNames);ae=await W(Ge,st)}else{let Ge=this.sessions.gen_img_embeds,st=(0,i.pick)({image_ids:w.input_ids},Ge.inputNames);ae=await W(Ge,st)}let _e={...w,...ae},he=await ne(this,_e),Se=this.sessions[j==="text"?"lm_head":"gen_head"];if(!Se)throw new Error(`Unable to find "${Se}" generation head`);let Oe=await W(Se,(0,i.pick)(he,Se.inputNames));return{...ae,...he,...Oe}}async generate(w){return this._generation_mode="text",super.generate(w)}async generate_images(w){this._generation_mode="image";let j=(w.inputs??w[this.main_input_name]).dims[1],_e=(await super.generate(w)).slice(null,[j,null]),he=this.sessions.image_decode,{decoded_image:Se}=await W(he,{generated_tokens:_e}),Oe=Se.add_(1).mul_(255/2).clamp_(0,255).to("uint8"),Ge=[];for(let st of Oe){let vt=g.RawImage.fromTensor(st);Ge.push(vt)}return Ge}}class Dh extends le{constructor({char_logits:w,bpe_logits:j,wp_logits:ae}){super(),this.char_logits=w,this.bpe_logits=j,this.wp_logits=ae}get logits(){return[this.char_logits,this.bpe_logits,this.wp_logits]}}class Oh extends A{}class Lh extends Oh{async _call(w){return new Dh(await super._call(w))}}class pc extends A{}class Bh extends pc{}class zh extends pc{}class mc extends A{}class Rh extends mc{}class Nh extends mc{}class jh extends A{forward_params=["input_ids","attention_mask","position_ids","audio_values","past_key_values"]}class hc extends jh{_merge_input_ids_with_audio_features(w){let j=w.audio_features.dims.at(-1),ae=w.audio_features.view(-1,j);return H({audio_token_id:this.config.ignore_index??this.config.audio_token_id,...w,audio_features:ae})}}class Vh extends hc{}class oi extends A{main_input_name="input_values";forward_params=["input_values"]}class Wh extends le{constructor({audio_codes:w}){super(),this.audio_codes=w}}class Uh extends le{constructor({audio_values:w}){super(),this.audio_values=w}}class Gh extends oi{async encode(w){return new Wh(await W(this.sessions.encoder_model,w))}async decode(w){return new Uh(await W(this.sessions.decoder_model,w))}}class Kh extends oi{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"encoder_model"})}}class Hh extends oi{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"decoder_model"})}}class ai extends A{main_input_name="input_values";forward_params=["input_values"]}class qh extends le{constructor({audio_codes:w}){super(),this.audio_codes=w}}class Qh extends le{constructor({audio_values:w}){super(),this.audio_values=w}}class Xh extends ai{async encode(w){return new qh(await W(this.sessions.encoder_model,w))}async decode(w){return new Qh(await W(this.sessions.decoder_model,w))}}class Jh extends ai{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"encoder_model"})}}class Yh extends ai{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"decoder_model"})}}class ni extends A{main_input_name="input_values";forward_params=["input_values"]}class Zh extends ni{async encode(w){return await W(this.sessions.encoder_model,w)}async decode(w){return await W(this.sessions.decoder_model,w)}}class ef extends ni{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"encoder_model"})}}class tf extends ni{static async from_pretrained(w,j={}){return super.from_pretrained(w,{...j,model_file_name:j.model_file_name??"decoder_model"})}}class Ut{static MODEL_CLASS_MAPPINGS=null;static BASE_IF_FAIL=!1;static async from_pretrained(w,{progress_callback:j=null,config:ae=null,cache_dir:_e=null,local_files_only:he=!1,revision:Se="main",model_file_name:Oe=null,subfolder:Ge="onnx",device:st=null,dtype:vt=null,use_external_data_format:xt=null,session_options:Et={}}={}){let mt={progress_callback:j,config:ae,cache_dir:_e,local_files_only:he,revision:Se,model_file_name:Oe,subfolder:Ge,device:st,dtype:vt,use_external_data_format:xt,session_options:Et};if(mt.config=await s.AutoConfig.from_pretrained(w,mt),!this.MODEL_CLASS_MAPPINGS)throw new Error("`MODEL_CLASS_MAPPINGS` not implemented for this type of `AutoClass`: "+this.name);let Bt=mt.config.model_type;for(let ht of this.MODEL_CLASS_MAPPINGS){let _t=ht.get(Bt);if(!_t){for(let $t of ht.values())if($t[0]===Bt){_t=$t;break}if(!_t)continue}return await _t[1].from_pretrained(w,mt)}if(this.BASE_IF_FAIL)return Cf.has(Bt)||console.warn(`Unknown model class "${Bt}", attempting to construct from base class.`),await A.from_pretrained(w,mt);throw Error(`Unsupported model type: ${Bt}`)}}let V0=new Map([["bert",["BertModel",Ae]],["neobert",["NeoBertModel",We]],["modernbert",["ModernBertModel",Qe]],["nomic_bert",["NomicBertModel",zt]],["roformer",["RoFormerModel",zs]],["electra",["ElectraModel",St]],["esm",["EsmModel",ps]],["convbert",["ConvBertModel",Rs]],["camembert",["CamembertModel",Z]],["deberta",["DebertaModel",wt]],["deberta-v2",["DebertaV2Model",Or]],["mpnet",["MPNetModel",js]],["albert",["AlbertModel",Ye]],["distilbert",["DistilBertModel",Ns]],["roberta",["RobertaModel",fn]],["xlm",["XLMModel",bn]],["xlm-roberta",["XLMRobertaModel",Pn]],["clap",["ClapModel",lh]],["clip",["CLIPModel",Qo]],["clipseg",["CLIPSegModel",es]],["chinese_clip",["ChineseCLIPModel",ho]],["siglip",["SiglipModel",Sa]],["jina_clip",["JinaCLIPModel",Wn]],["mobilebert",["MobileBertModel",Wr]],["squeezebert",["SqueezeBertModel",G]],["wav2vec2",["Wav2Vec2Model",mm]],["wav2vec2-bert",["Wav2Vec2BertModel",Im]],["unispeech",["UniSpeechModel",Tm]],["unispeech-sat",["UniSpeechSatModel",km]],["hubert",["HubertModel",Dm]],["wavlm",["WavLMModel",Bm]],["audio-spectrogram-transformer",["ASTModel",Cn]],["vits",["VitsModel",lc]],["pyannote",["PyAnnoteModel",bm]],["wespeaker-resnet",["WeSpeakerResNetModel",ym]],["detr",["DetrModel",q_]],["rt_detr",["RTDetrModel",J_]],["rt_detr_v2",["RTDetrV2Model",Z_]],["rf_detr",["RFDetrModel",rp]],["d_fine",["DFineModel",ap]],["table-transformer",["TableTransformerModel",ip]],["vit",["ViTModel",b_]],["ijepa",["IJepaModel",x_]],["pvt",["PvtModel",E_]],["vit_msn",["ViTMSNModel",F_]],["vit_mae",["ViTMAEModel",S_]],["groupvit",["GroupViTModel",$_]],["fastvit",["FastViTModel",D_]],["mobilevit",["MobileViTModel",z_]],["mobilevitv2",["MobileViTV2Model",N_]],["owlvit",["OwlViTModel",V_]],["owlv2",["Owlv2Model",U_]],["beit",["BeitModel",K_]],["deit",["DeiTModel",dp]],["hiera",["HieraModel",_p]],["convnext",["ConvNextModel",Np]],["convnextv2",["ConvNextV2Model",Vp]],["dinov2",["Dinov2Model",Up]],["dinov2_with_registers",["Dinov2WithRegistersModel",Kp]],["dinov3_vit",["DINOv3ViTModel",Qp]],["dinov3_convnext",["DINOv3ConvNextModel",Jp]],["resnet",["ResNetModel",mp]],["swin",["SwinModel",fp]],["swin2sr",["Swin2SRModel",wp]],["donut-swin",["DonutSwinModel",Rp]],["yolos",["YolosModel",em]],["dpt",["DPTModel",vp]],["glpn",["GLPNModel",Lp]],["hifigan",["SpeechT5HifiGan",Km]],["efficientnet",["EfficientNetModel",fh]],["decision_transformer",["DecisionTransformerModel",Ih]],["patchtst",["PatchTSTForPrediction",Bh]],["patchtsmixer",["PatchTSMixerForPrediction",Rh]],["mobilenet_v1",["MobileNetV1Model",Mh]],["mobilenet_v2",["MobileNetV2Model",vh]],["mobilenet_v3",["MobileNetV3Model",Th]],["mobilenet_v4",["MobileNetV4Model",kh]],["maskformer",["MaskFormerModel",Dp]],["mgp-str",["MgpstrForSceneTextRecognition",Lh]],["style_text_to_speech_2",["StyleTextToSpeech2Model",Wm]]]),W0=new Map([["t5",["T5Model",yt]],["longt5",["LongT5Model",nr]],["mt5",["MT5Model",Tr]],["bart",["BartModel",Zr]],["mbart",["MBartModel",Jr]],["marian",["MarianModel",dm]],["whisper",["WhisperModel",ba]],["m2m_100",["M2M100Model",_m]],["blenderbot",["BlenderbotModel",pr]],["blenderbot-small",["BlenderbotSmallModel",Kr]]]),U0=new Map([["mimi",["MimiModel",Gh]],["dac",["DacModel",Xh]],["snac",["SnacModel",Zh]]]),G0=new Map([["bloom",["BloomModel",m_]],["jais",["JAISModel",Yo]],["gpt2",["GPT2Model",Da]],["gptj",["GPTJModel",Ra]],["gpt_bigcode",["GPTBigCodeModel",m]],["gpt_neo",["GPTNeoModel",Ba]],["gpt_neox",["GPTNeoXModel",ea]],["codegen",["CodeGenModel",B]],["llama",["LlamaModel",Ee]],["nanochat",["NanoChatModel",Dt]],["arcee",["ArceeModel",Gs]],["lfm2",["Lfm2Model",Eu]],["smollm3",["SmolLM3Model",Cu]],["exaone",["ExaoneModel",Du]],["olmo",["OlmoModel",zu]],["olmo2",["Olmo2Model",Nu]],["mobilellm",["MobileLLMModel",Lu]],["granite",["GraniteModel",Vu]],["granitemoehybrid",["GraniteMoeHybridModel",Uu]],["cohere",["CohereModel",Ku]],["gemma",["GemmaModel",qu]],["gemma2",["Gemma2Model",Xu]],["vaultgemma",["VaultGemmaModel",Yu]],["gemma3_text",["Gemma3Model",e_]],["helium",["HeliumModel",Fu]],["glm",["GlmModel",Au]],["openelm",["OpenELMModel",r_]],["qwen2",["Qwen2Model",o_]],["qwen3",["Qwen3Model",n_]],["phi",["PhiModel",d_]],["phi3",["Phi3Model",__]],["mpt",["MptModel",f_]],["opt",["OPTModel",M_]],["mistral",["MistralModel",Xm]],["ministral",["MinistralModel",Ym]],["ministral3",["Ministral3Model",eh]],["ernie4_5",["Ernie4_5Model",rh]],["starcoder2",["Starcoder2Model",oh]],["falcon",["FalconModel",nh]],["stablelm",["StableLmModel",mh]],["modernbert-decoder",["ModernBertDecoderModel",At]]]),fc=new Map([["speecht5",["SpeechT5ForSpeechToText",Um]],["whisper",["WhisperForConditionalGeneration",Us]],["lite-whisper",["LiteWhisperForConditionalGeneration",Fn]],["moonshine",["MoonshineForConditionalGeneration",In]]]),rf=new Map([["speecht5",["SpeechT5ForTextToSpeech",Gm]]]),sf=new Map([["vits",["VitsModel",lc]],["musicgen",["MusicgenForConditionalGeneration",_c]],["supertonic",["SupertonicForConditionalGeneration",tc]]]),of=new Map([["bert",["BertForSequenceClassification",pe]],["neobert",["NeoBertForSequenceClassification",Re]],["modernbert",["ModernBertForSequenceClassification",pt]],["roformer",["RoFormerForSequenceClassification",Zs]],["electra",["ElectraForSequenceClassification",k]],["esm",["EsmForSequenceClassification",As]],["convbert",["ConvBertForSequenceClassification",Cs]],["camembert",["CamembertForSequenceClassification",xe]],["deberta",["DebertaForSequenceClassification",gt]],["deberta-v2",["DebertaV2ForSequenceClassification",Lr]],["mpnet",["MPNetForSequenceClassification",Vs]],["albert",["AlbertForSequenceClassification",Xe]],["distilbert",["DistilBertForSequenceClassification",as]],["roberta",["RobertaForSequenceClassification",ga]],["xlm",["XLMForSequenceClassification",xn]],["xlm-roberta",["XLMRobertaForSequenceClassification",kn]],["bart",["BartForSequenceClassification",vr]],["mbart",["MBartForSequenceClassification",Fr]],["mobilebert",["MobileBertForSequenceClassification",Ue]],["squeezebert",["SqueezeBertForSequenceClassification",se]]]),af=new Map([["bert",["BertForTokenClassification",Pe]],["neobert",["NeoBertForTokenClassification",Ne]],["modernbert",["ModernBertForTokenClassification",Ke]],["roformer",["RoFormerForTokenClassification",or]],["electra",["ElectraForTokenClassification",Q]],["esm",["EsmForTokenClassification",$s]],["convbert",["ConvBertForTokenClassification",qt]],["camembert",["CamembertForTokenClassification",et]],["deberta",["DebertaForTokenClassification",Nt]],["deberta-v2",["DebertaV2ForTokenClassification",_s]],["mpnet",["MPNetForTokenClassification",Uo]],["distilbert",["DistilBertForTokenClassification",Nr]],["roberta",["RobertaForTokenClassification",Mn]],["xlm",["XLMForTokenClassification",yn]],["xlm-roberta",["XLMRobertaForTokenClassification",Ma]]]),gc=new Map([["t5",["T5ForConditionalGeneration",Xt]],["longt5",["LongT5ForConditionalGeneration",Br]],["mt5",["MT5ForConditionalGeneration",zr]],["bart",["BartForConditionalGeneration",Yt]],["mbart",["MBartForConditionalGeneration",ms]],["marian",["MarianMTModel",um]],["m2m_100",["M2M100ForConditionalGeneration",pm]],["blenderbot",["BlenderbotForConditionalGeneration",wr]],["blenderbot-small",["BlenderbotSmallForConditionalGeneration",Ws]]]),Mc=new Map([["bloom",["BloomForCausalLM",h_]],["gpt2",["GPT2LMHeadModel",Oa]],["jais",["JAISLMHeadModel",La]],["gptj",["GPTJForCausalLM",Na]],["gpt_bigcode",["GPTBigCodeForCausalLM",T]],["gpt_neo",["GPTNeoForCausalLM",Mo]],["gpt_neox",["GPTNeoXForCausalLM",za]],["codegen",["CodeGenForCausalLM",V]],["llama",["LlamaForCausalLM",Be]],["nanochat",["NanoChatForCausalLM",Wt]],["llama4_text",["Llama4ForCausalLM",nt]],["arcee",["ArceeForCausalLM",Un]],["lfm2",["Lfm2ForCausalLM",ku]],["smollm3",["SmolLM3ForCausalLM",Su]],["exaone",["ExaoneForCausalLM",Ou]],["olmo",["OlmoForCausalLM",Ru]],["olmo2",["Olmo2ForCausalLM",ju]],["mobilellm",["MobileLLMForCausalLM",Bu]],["granite",["GraniteForCausalLM",Wu]],["granitemoehybrid",["GraniteMoeHybridForCausalLM",Gu]],["cohere",["CohereForCausalLM",Hu]],["gemma",["GemmaForCausalLM",Qu]],["gemma2",["Gemma2ForCausalLM",Ju]],["vaultgemma",["VaultGemmaForCausalLM",Zu]],["gemma3_text",["Gemma3ForCausalLM",t_]],["helium",["HeliumForCausalLM",Iu]],["glm",["GlmForCausalLM",$u]],["openelm",["OpenELMForCausalLM",s_]],["qwen2",["Qwen2ForCausalLM",a_]],["qwen3",["Qwen3ForCausalLM",i_]],["phi",["PhiForCausalLM",u_]],["phi3",["Phi3ForCausalLM",p_]],["mpt",["MptForCausalLM",g_]],["opt",["OPTForCausalLM",w_]],["mbart",["MBartForCausalLM",is]],["mistral",["MistralForCausalLM",Jm]],["ministral",["MinistralForCausalLM",Zm]],["ministral3",["Ministral3ForCausalLM",th]],["ernie4_5",["Ernie4_5ForCausalLM",sh]],["starcoder2",["Starcoder2ForCausalLM",ah]],["falcon",["FalconForCausalLM",ih]],["trocr",["TrOCRForCausalLM",Qm]],["stablelm",["StableLmForCausalLM",hh]],["modernbert-decoder",["ModernBertDecoderForCausalLM",Lt]],["phi3_v",["Phi3VForCausalLM",Ea]]]),K0=new Map([["multi_modality",["MultiModalityCausalLM",$h]]]),nf=new Map([["bert",["BertForMaskedLM",ve]],["neobert",["NeoBertForMaskedLM",$e]],["modernbert",["ModernBertForMaskedLM",je]],["roformer",["RoFormerForMaskedLM",Ys]],["electra",["ElectraForMaskedLM",Xr]],["esm",["EsmForMaskedLM",Is]],["convbert",["ConvBertForMaskedLM",ft]],["camembert",["CamembertForMaskedLM",ce]],["deberta",["DebertaForMaskedLM",tt]],["deberta-v2",["DebertaV2ForMaskedLM",Cr]],["mpnet",["MPNetForMaskedLM",Ds]],["albert",["AlbertForMaskedLM",He]],["distilbert",["DistilBertForMaskedLM",ar]],["roberta",["RobertaForMaskedLM",gn]],["xlm",["XLMWithLMHeadModel",vn]],["xlm-roberta",["XLMRobertaForMaskedLM",En]],["mobilebert",["MobileBertForMaskedLM",ze]],["squeezebert",["SqueezeBertForMaskedLM",te]]]),lf=new Map([["bert",["BertForQuestionAnswering",fe]],["neobert",["NeoBertForQuestionAnswering",ot]],["roformer",["RoFormerForQuestionAnswering",Dr]],["electra",["ElectraForQuestionAnswering",N]],["convbert",["ConvBertForQuestionAnswering",Ss]],["camembert",["CamembertForQuestionAnswering",ut]],["deberta",["DebertaForQuestionAnswering",Qt]],["deberta-v2",["DebertaV2ForQuestionAnswering",Fs]],["mpnet",["MPNetForQuestionAnswering",de]],["albert",["AlbertForQuestionAnswering",Ze]],["distilbert",["DistilBertForQuestionAnswering",Gr]],["roberta",["RobertaForQuestionAnswering",wn]],["xlm",["XLMForQuestionAnswering",Tn]],["xlm-roberta",["XLMRobertaForQuestionAnswering",wa]],["mobilebert",["MobileBertForQuestionAnswering",at]],["squeezebert",["SqueezeBertForQuestionAnswering",me]]]),wc=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",va]],["idefics3",["Idefics3ForConditionalGeneration",hs]],["smolvlm",["SmolVLMForConditionalGeneration",qo]]]),cf=new Map([["llava",["LlavaForConditionalGeneration",ro]],["llava_onevision",["LlavaOnevisionForConditionalGeneration",ya]],["moondream1",["Moondream1ForConditionalGeneration",An]],["florence2",["Florence2ForConditionalGeneration",Dn]],["qwen2-vl",["Qwen2VLForConditionalGeneration",c_]],["idefics3",["Idefics3ForConditionalGeneration",hs]],["smolvlm",["SmolVLMForConditionalGeneration",qo]],["paligemma",["PaliGemmaForConditionalGeneration",Ln]],["llava_qwen2",["LlavaQwen2ForCausalLM",Ta]],["gemma3n",["Gemma3nForConditionalGeneration",Pa]],["mistral3",["Mistral3ForConditionalGeneration",Bn]]]),df=new Map([["ultravox",["UltravoxModel",hc]],["voxtral",["VoxtralForConditionalGeneration",Vh]]]),H0=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",va]]]),uf=new Map([["vit",["ViTForImageClassification",v_]],["ijepa",["IJepaForImageClassification",y_]],["pvt",["PvtForImageClassification",k_]],["vit_msn",["ViTMSNForImageClassification",I_]],["fastvit",["FastViTForImageClassification",O_]],["mobilevit",["MobileViTForImageClassification",R_]],["mobilevitv2",["MobileViTV2ForImageClassification",j_]],["beit",["BeitForImageClassification",H_]],["deit",["DeiTForImageClassification",up]],["hiera",["HieraForImageClassification",pp]],["convnext",["ConvNextForImageClassification",jp]],["convnextv2",["ConvNextV2ForImageClassification",Wp]],["dinov2",["Dinov2ForImageClassification",Gp]],["dinov2_with_registers",["Dinov2WithRegistersForImageClassification",Hp]],["resnet",["ResNetForImageClassification",hp]],["swin",["SwinForImageClassification",gp]],["segformer",["SegformerForImageClassification",_h]],["efficientnet",["EfficientNetForImageClassification",gh]],["mobilenet_v1",["MobileNetV1ForImageClassification",wh]],["mobilenet_v2",["MobileNetV2ForImageClassification",xh]],["mobilenet_v3",["MobileNetV3ForImageClassification",Ph]],["mobilenet_v4",["MobileNetV4ForImageClassification",Ch]]]),_f=new Map([["detr",["DetrForObjectDetection",Q_]],["rt_detr",["RTDetrForObjectDetection",Y_]],["rt_detr_v2",["RTDetrV2ForObjectDetection",ep]],["rf_detr",["RFDetrForObjectDetection",sp]],["d_fine",["DFineForObjectDetection",np]],["table-transformer",["TableTransformerForObjectDetection",lp]],["yolos",["YolosForObjectDetection",tm]]]),pf=new Map([["owlvit",["OwlViTForObjectDetection",W_]],["owlv2",["Owlv2ForObjectDetection",G_]],["grounding-dino",["GroundingDinoForObjectDetection",Zp]]]),oa=new Map([["detr",["DetrForSegmentation",$l]],["clipseg",["CLIPSegForImageSegmentation",fo]]]),mf=new Map([["segformer",["SegformerForSemanticSegmentation",ph]],["sapiens",["SapiensForSemanticSegmentation",Pp]],["swin",["SwinForSemanticSegmentation",Mp]],["mobilenet_v1",["MobileNetV1ForSemanticSegmentation",bh]],["mobilenet_v2",["MobileNetV2ForSemanticSegmentation",yh]],["mobilenet_v3",["MobileNetV3ForSemanticSegmentation",Eh]],["mobilenet_v4",["MobileNetV4ForSemanticSegmentation",Sh]]]),hf=new Map([["detr",["DetrForSegmentation",$l]],["maskformer",["MaskFormerForInstanceSegmentation",Op]]]),ff=new Map([["sam",["SamModel",om]],["sam2",["Sam2Model",qn]],["edgetam",["EdgeTamModel",lm]],["sam3_tracker",["Sam3TrackerModel",cm]]]),gf=new Map([["wav2vec2",["Wav2Vec2ForCTC",hm]],["wav2vec2-bert",["Wav2Vec2BertForCTC",Am]],["unispeech",["UniSpeechForCTC",Pm]],["unispeech-sat",["UniSpeechSatForCTC",Cm]],["wavlm",["WavLMForCTC",zm]],["hubert",["HubertForCTC",Om]],["parakeet_ctc",["ParakeetForCTC",wm]]]),Mf=new Map([["wav2vec2",["Wav2Vec2ForSequenceClassification",fm]],["wav2vec2-bert",["Wav2Vec2BertForSequenceClassification",$m]],["unispeech",["UniSpeechForSequenceClassification",Em]],["unispeech-sat",["UniSpeechSatForSequenceClassification",Sm]],["wavlm",["WavLMForSequenceClassification",Rm]],["hubert",["HubertForSequenceClassification",Lm]],["audio-spectrogram-transformer",["ASTForAudioClassification",Sn]]]),wf=new Map([["wavlm",["WavLMForXVector",Nm]]]),bf=new Map([["unispeech-sat",["UniSpeechSatForAudioFrameClassification",Fm]],["wavlm",["WavLMForAudioFrameClassification",jm]],["wav2vec2",["Wav2Vec2ForAudioFrameClassification",gm]],["pyannote",["PyAnnoteForAudioFrameClassification",vm]]]),vf=new Map([["vitmatte",["VitMatteForImageMatting",B_]]]),q0=new Map([["patchtst",["PatchTSTForPrediction",zh]],["patchtsmixer",["PatchTSMixerForPrediction",Nh]]]),xf=new Map([["swin2sr",["Swin2SRForImageSuperResolution",bp]]]),yf=new Map([["dpt",["DPTForDepthEstimation",xp]],["depth_anything",["DepthAnythingForDepthEstimation",Tp]],["glpn",["GLPNForDepthEstimation",Bp]],["sapiens",["SapiensForDepthEstimation",Ep]],["depth_pro",["DepthProForDepthEstimation",Sp]],["metric3d",["Metric3DForDepthEstimation",Ip]],["metric3dv2",["Metric3Dv2ForDepthEstimation",$p]]]),Tf=new Map([["sapiens",["SapiensForNormalEstimation",kp]]]),Pf=new Map([["vitpose",["VitPoseForPoseEstimation",P_]]]),Ef=new Map([["clip",["CLIPVisionModelWithProjection",Ca]],["siglip",["SiglipVisionModel",Fa]],["jina_clip",["JinaCLIPVisionModel",$a]]]),kf=[[V0,y.EncoderOnly],[W0,y.EncoderDecoder],[G0,y.DecoderOnly],[U0,y.AutoEncoder],[of,y.EncoderOnly],[af,y.EncoderOnly],[gc,y.Seq2Seq],[fc,y.Seq2Seq],[Mc,y.DecoderOnly],[K0,y.MultiModality],[nf,y.EncoderOnly],[lf,y.EncoderOnly],[wc,y.Vision2Seq],[cf,y.ImageTextToText],[df,y.AudioTextToText],[uf,y.EncoderOnly],[oa,y.EncoderOnly],[hf,y.EncoderOnly],[mf,y.EncoderOnly],[vf,y.EncoderOnly],[q0,y.EncoderOnly],[xf,y.EncoderOnly],[yf,y.EncoderOnly],[Tf,y.EncoderOnly],[Pf,y.EncoderOnly],[_f,y.EncoderOnly],[pf,y.EncoderOnly],[ff,y.MaskGeneration],[gf,y.EncoderOnly],[Mf,y.EncoderOnly],[rf,y.Seq2Seq],[sf,y.EncoderOnly],[wf,y.EncoderOnly],[bf,y.EncoderOnly],[Ef,y.EncoderOnly]];for(let[M,w]of kf)for(let[j,ae]of M.values())P.set(j,w),f.set(ae,j),I.set(j,ae);let Q0=[["MusicgenForConditionalGeneration",_c,y.Musicgen],["Phi3VForCausalLM",Ea,y.Phi3V],["CLIPTextModelWithProjection",ka,y.EncoderOnly],["SiglipTextModel",Vn,y.EncoderOnly],["JinaCLIPTextModel",Aa,y.EncoderOnly],["ClapTextModelWithProjection",ch,y.EncoderOnly],["ClapAudioModelWithProjection",dh,y.EncoderOnly],["DacEncoderModel",Jh,y.EncoderOnly],["DacDecoderModel",Yh,y.EncoderOnly],["MimiEncoderModel",Kh,y.EncoderOnly],["MimiDecoderModel",Hh,y.EncoderOnly],["SnacEncoderModel",ef,y.EncoderOnly],["SnacDecoderModel",tf,y.EncoderOnly],["Gemma3nForConditionalGeneration",Pa,y.ImageAudioTextToText],["SupertonicForConditionalGeneration",tc,y.Supertonic]];for(let[M,w,j]of Q0)P.set(M,j),f.set(w,M),I.set(M,w);let Cf=new Map([["modnet",oa],["birefnet",oa],["isnet",oa],["ben",oa]]);for(let[M,w]of Cf.entries())w.set(M,["PreTrainedModel",A]),P.set(M,y.EncoderOnly),f.set(A,M),I.set(M,A);class X0 extends Ut{static MODEL_CLASS_MAPPINGS=kf.map(w=>w[0]);static BASE_IF_FAIL=!0}class J0 extends Ut{static MODEL_CLASS_MAPPINGS=[of]}class Y0 extends Ut{static MODEL_CLASS_MAPPINGS=[af]}class Z0 extends Ut{static MODEL_CLASS_MAPPINGS=[gc]}class eT extends Ut{static MODEL_CLASS_MAPPINGS=[fc]}class tT extends Ut{static MODEL_CLASS_MAPPINGS=[rf]}class rT extends Ut{static MODEL_CLASS_MAPPINGS=[sf]}class sT extends Ut{static MODEL_CLASS_MAPPINGS=[Mc]}class oT extends Ut{static MODEL_CLASS_MAPPINGS=[nf]}class aT extends Ut{static MODEL_CLASS_MAPPINGS=[lf]}class nT extends Ut{static MODEL_CLASS_MAPPINGS=[wc]}class iT extends Ut{static MODEL_CLASS_MAPPINGS=[uf]}class lT extends Ut{static MODEL_CLASS_MAPPINGS=[oa]}class cT extends Ut{static MODEL_CLASS_MAPPINGS=[mf]}class dT extends Ut{static MODEL_CLASS_MAPPINGS=[hf]}class uT extends Ut{static MODEL_CLASS_MAPPINGS=[_f]}class _T extends Ut{static MODEL_CLASS_MAPPINGS=[pf]}class pT extends Ut{static MODEL_CLASS_MAPPINGS=[ff]}class mT extends Ut{static MODEL_CLASS_MAPPINGS=[gf]}class hT extends Ut{static MODEL_CLASS_MAPPINGS=[Mf]}class fT extends Ut{static MODEL_CLASS_MAPPINGS=[wf]}class gT extends Ut{static MODEL_CLASS_MAPPINGS=[bf]}class MT extends Ut{static MODEL_CLASS_MAPPINGS=[H0]}class wT extends Ut{static MODEL_CLASS_MAPPINGS=[vf]}class bT extends Ut{static MODEL_CLASS_MAPPINGS=[xf]}class vT extends Ut{static MODEL_CLASS_MAPPINGS=[yf]}class xT extends Ut{static MODEL_CLASS_MAPPINGS=[Tf]}class yT extends Ut{static MODEL_CLASS_MAPPINGS=[Pf]}class TT extends Ut{static MODEL_CLASS_MAPPINGS=[Ef]}class PT extends Ut{static MODEL_CLASS_MAPPINGS=[cf]}class ET extends Ut{static MODEL_CLASS_MAPPINGS=[df]}class kT extends le{constructor({logits:w,past_key_values:j,encoder_outputs:ae,decoder_attentions:_e=null,cross_attentions:he=null}){super(),this.logits=w,this.past_key_values=j,this.encoder_outputs=ae,this.decoder_attentions=_e,this.cross_attentions=he}}class Pt extends le{constructor({logits:w,...j}){super(),this.logits=w;let ae=Object.values(j);ae.length>0&&(this.attentions=ae)}}class Sf extends le{constructor({logits:w,embeddings:j}){super(),this.logits=w,this.embeddings=j}}class Er extends le{constructor({logits:w}){super(),this.logits=w}}class Ir extends le{constructor({logits:w}){super(),this.logits=w}}class jr extends le{constructor({start_logits:w,end_logits:j}){super(),this.start_logits=w,this.end_logits=j}}class ao extends le{constructor({logits:w}){super(),this.logits=w}}class CT extends le{constructor({logits:w,past_key_values:j}){super(),this.logits=w,this.past_key_values=j}}class Ff extends le{constructor({alphas:w}){super(),this.alphas=w}}class If extends le{constructor({waveform:w,spectrogram:j}){super(),this.waveform=w,this.spectrogram=j}}}),"./src/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.js":((e,r,t)=>{t.r(r),t.d(r,{ASTFeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js");class n extends s.FeatureExtractor{constructor(l){super(l);let c=this.config.sampling_rate,_=(0,a.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(c/2),c,null,"kaldi",!0);this.mel_filters=_,this.window=(0,a.window_function)(400,"hann",{periodic:!1}),this.mean=this.config.mean,this.std=this.config.std}async _extract_fbank_features(l,c){return(0,a.spectrogram)(l,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,max_num_frames:c,transpose:!0})}async _call(l){(0,s.validate_audio_inputs)(l,"ASTFeatureExtractor");let c=await this._extract_fbank_features(l,this.config.max_length);if(this.config.do_normalize){let _=this.std*2,u=c.data;for(let d=0;d<u.length;++d)u[d]=(u[d]-this.mean)/_}return{input_values:c.unsqueeze_(0)}}}}),"./src/models/auto/feature_extraction_auto.js":((e,r,t)=>{t.r(r),t.d(r,{AutoFeatureExtractor:()=>i});var s=t("./src/utils/constants.js"),o=t("./src/utils/hub.js"),a=t("./src/base/feature_extraction_utils.js"),n=t("./src/models/feature_extractors.js");class i{static async from_pretrained(c,_={}){let u=await(0,o.getModelJSON)(c,s.FEATURE_EXTRACTOR_NAME,!0,_),d=u.feature_extractor_type,g=n[d];if(!g)throw new Error(`Unknown feature_extractor_type: '${d}'. Please report this at ${s.GITHUB_ISSUE_URL}.`);return new g(u)}}}),"./src/models/auto/image_processing_auto.js":((e,r,t)=>{t.r(r),t.d(r,{AutoImageProcessor:()=>i});var s=t("./src/utils/constants.js"),o=t("./src/utils/hub.js"),a=t("./src/base/image_processors_utils.js"),n=t("./src/models/image_processors.js");class i{static async from_pretrained(c,_={}){let u=await(0,o.getModelJSON)(c,s.IMAGE_PROCESSOR_NAME,!0,_),d=u.image_processor_type??u.feature_extractor_type,g=n[d?.replace(/Fast$/,"")];return g||(d!==void 0&&console.warn(`Image processor type '${d}' not found, assuming base ImageProcessor. Please report this at ${s.GITHUB_ISSUE_URL}.`),g=a.ImageProcessor),new g(u)}}}),"./src/models/auto/processing_auto.js":((e,r,t)=>{t.r(r),t.d(r,{AutoProcessor:()=>c});var s=t("./src/utils/constants.js"),o=t("./src/utils/hub.js"),a=t("./src/base/processing_utils.js"),n=t("./src/models/processors.js"),i=t("./src/models/image_processors.js"),l=t("./src/models/feature_extractors.js");class c{static async from_pretrained(u,d={}){let g=await(0,o.getModelJSON)(u,s.IMAGE_PROCESSOR_NAME,!0,d),{image_processor_type:h,feature_extractor_type:x,processor_class:F}=g;if(F&&n[F])return n[F].from_pretrained(u,d);if(!h&&!x)throw new Error("No `image_processor_type` or `feature_extractor_type` found in the config.");let v={};if(h){let C=i[h.replace(/Fast$/,"")];if(!C)throw new Error(`Unknown image_processor_type: '${h}'.`);v.image_processor=new C(g)}if(x){let C=i[x];if(C)v.image_processor=new C(g);else{let y=l[x];if(!y)throw new Error(`Unknown feature_extractor_type: '${x}'.`);v.feature_extractor=new y(g)}}let b={};return new a.Processor(b,v,null)}}}),"./src/models/beit/image_processing_beit.js":((e,r,t)=>{t.r(r),t.d(r,{BeitFeatureExtractor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}}),"./src/models/bit/image_processing_bit.js":((e,r,t)=>{t.r(r),t.d(r,{BitImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}}),"./src/models/chinese_clip/image_processing_chinese_clip.js":((e,r,t)=>{t.r(r),t.d(r,{ChineseCLIPFeatureExtractor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}}),"./src/models/clap/feature_extraction_clap.js":((e,r,t)=>{t.r(r),t.d(r,{ClapFeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js");class n extends s.FeatureExtractor{constructor(l){super(l),this.mel_filters=(0,a.mel_filter_bank)(this.config.nb_frequency_bins,this.config.feature_size,this.config.frequency_min,this.config.frequency_max,this.config.sampling_rate,null,"htk"),this.mel_filters_slaney=(0,a.mel_filter_bank)(this.config.nb_frequency_bins,this.config.feature_size,this.config.frequency_min,this.config.frequency_max,this.config.sampling_rate,"slaney","slaney"),this.window=(0,a.window_function)(this.config.fft_window_size,"hann")}async _get_input_mel(l,c,_,u){let d,g=!1,h=l.length-c;if(h>0)if(_==="rand_trunc"){g=!0;let x=Math.floor(Math.random()*(h+1));l=l.subarray(x,x+c),d=await this._extract_fbank_features(l,this.mel_filters_slaney,this.config.nb_max_samples)}else throw new Error(`Truncation strategy "${_}" not implemented`);else{if(h<0){let x=new Float64Array(c);if(x.set(l),u==="repeat")for(let F=l.length;F<c;F+=l.length)x.set(l.subarray(0,Math.min(l.length,c-F)),F);else if(u==="repeatpad")for(let F=l.length;F<-h;F+=l.length)x.set(l,F);l=x}if(_==="fusion")throw new Error(`Truncation strategy "${_}" not implemented`);d=await this._extract_fbank_features(l,this.mel_filters_slaney,this.config.nb_max_samples)}return d.unsqueeze_(0)}async _extract_fbank_features(l,c,_=null){return(0,a.spectrogram)(l,this.window,this.config.fft_window_size,this.config.hop_length,{power:2,mel_filters:c,log_mel:"dB",max_num_frames:_,do_pad:!1,transpose:!0})}async _call(l,{max_length:c=null}={}){return(0,s.validate_audio_inputs)(l,"ClapFeatureExtractor"),{input_features:(await this._get_input_mel(l,c??this.config.nb_max_samples,this.config.truncation,this.config.padding)).unsqueeze_(0)}}}}),"./src/models/clip/image_processing_clip.js":((e,r,t)=>{t.r(r),t.d(r,{CLIPFeatureExtractor:()=>a,CLIPImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class a extends o{}}),"./src/models/convnext/image_processing_convnext.js":((e,r,t)=>{t.r(r),t.d(r,{ConvNextFeatureExtractor:()=>a,ConvNextImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{constructor(i){super(i),this.crop_pct=this.config.crop_pct??224/256}async resize(i){let l=this.size?.shortest_edge;if(l===void 0)throw new Error("Size dictionary must contain 'shortest_edge' key.");if(l<384){let c=Math.floor(l/this.crop_pct),[_,u]=this.get_resize_output_image_size(i,{shortest_edge:c});i=await i.resize(_,u,{resample:this.resample}),i=await i.center_crop(l,l)}else i=await i.resize(l,l,{resample:this.resample});return i}}class a extends o{}}),"./src/models/dac/feature_extraction_dac.js":((e,r,t)=>{t.r(r),t.d(r,{DacFeatureExtractor:()=>o});var s=t("./src/models/encodec/feature_extraction_encodec.js");class o extends s.EncodecFeatureExtractor{}}),"./src/models/deit/image_processing_deit.js":((e,r,t)=>{t.r(r),t.d(r,{DeiTFeatureExtractor:()=>a,DeiTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class a extends o{}}),"./src/models/detr/image_processing_detr.js":((e,r,t)=>{t.r(r),t.d(r,{DetrFeatureExtractor:()=>n,DetrImageProcessor:()=>a});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/tensor.js");class a extends s.ImageProcessor{async _call(l){let c=await super._call(l),_=[c.pixel_values.dims[0],64,64],u=(0,o.full)(_,1n);return{...c,pixel_mask:u}}post_process_object_detection(...l){return(0,s.post_process_object_detection)(...l)}post_process_panoptic_segmentation(...l){return(0,s.post_process_panoptic_segmentation)(...l)}post_process_instance_segmentation(...l){return(0,s.post_process_instance_segmentation)(...l)}}class n extends a{}}),"./src/models/dinov3_vit/image_processing_dinov3_vit.js":((e,r,t)=>{t.r(r),t.d(r,{DINOv3ViTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}}),"./src/models/donut/image_processing_donut.js":((e,r,t)=>{t.r(r),t.d(r,{DonutFeatureExtractor:()=>a,DonutImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{pad_image(i,l,c,_={}){let[u,d,g]=l,h=this.image_mean;Array.isArray(this.image_mean)||(h=new Array(g).fill(h));let x=this.image_std;Array.isArray(x)||(x=new Array(g).fill(h));let F=h.map((v,b)=>-v/x[b]);return super.pad_image(i,l,c,{center:!0,constant_values:F,..._})}}class a extends o{}}),"./src/models/dpt/image_processing_dpt.js":((e,r,t)=>{t.r(r),t.d(r,{DPTFeatureExtractor:()=>a,DPTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class a extends o{}}),"./src/models/efficientnet/image_processing_efficientnet.js":((e,r,t)=>{t.r(r),t.d(r,{EfficientNetImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{constructor(n){super(n),this.include_top=this.config.include_top??!0,this.include_top&&(this.image_std=this.image_std.map(i=>i*i))}}}),"./src/models/encodec/feature_extraction_encodec.js":((e,r,t)=>{t.r(r),t.d(r,{EncodecFeatureExtractor:()=>a});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js");class a extends s.FeatureExtractor{async _call(i){(0,s.validate_audio_inputs)(i,"EncodecFeatureExtractor"),i instanceof Float64Array&&(i=new Float32Array(i));let l=this.config.feature_size;if(i.length%l!==0)throw new Error(`The length of the audio data must be a multiple of the number of channels (${l}).`);let c=[1,l,i.length/l];return{input_values:new o.Tensor("float32",i,c)}}}}),"./src/models/feature_extractors.js":((e,r,t)=>{t.r(r),t.d(r,{ASTFeatureExtractor:()=>s.ASTFeatureExtractor,ClapFeatureExtractor:()=>a.ClapFeatureExtractor,DacFeatureExtractor:()=>n.DacFeatureExtractor,EncodecFeatureExtractor:()=>o.EncodecFeatureExtractor,Gemma3nAudioFeatureExtractor:()=>i.Gemma3nAudioFeatureExtractor,ImageFeatureExtractor:()=>v.ImageProcessor,MoonshineFeatureExtractor:()=>l.MoonshineFeatureExtractor,ParakeetFeatureExtractor:()=>c.ParakeetFeatureExtractor,PyAnnoteFeatureExtractor:()=>_.PyAnnoteFeatureExtractor,SeamlessM4TFeatureExtractor:()=>u.SeamlessM4TFeatureExtractor,SnacFeatureExtractor:()=>d.SnacFeatureExtractor,SpeechT5FeatureExtractor:()=>g.SpeechT5FeatureExtractor,Wav2Vec2FeatureExtractor:()=>h.Wav2Vec2FeatureExtractor,WeSpeakerFeatureExtractor:()=>x.WeSpeakerFeatureExtractor,WhisperFeatureExtractor:()=>F.WhisperFeatureExtractor});var s=t("./src/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.js"),o=t("./src/models/encodec/feature_extraction_encodec.js"),a=t("./src/models/clap/feature_extraction_clap.js"),n=t("./src/models/dac/feature_extraction_dac.js"),i=t("./src/models/gemma3n/feature_extraction_gemma3n.js"),l=t("./src/models/moonshine/feature_extraction_moonshine.js"),c=t("./src/models/parakeet/feature_extraction_parakeet.js"),_=t("./src/models/pyannote/feature_extraction_pyannote.js"),u=t("./src/models/seamless_m4t/feature_extraction_seamless_m4t.js"),d=t("./src/models/snac/feature_extraction_snac.js"),g=t("./src/models/speecht5/feature_extraction_speecht5.js"),h=t("./src/models/wav2vec2/feature_extraction_wav2vec2.js"),x=t("./src/models/wespeaker/feature_extraction_wespeaker.js"),F=t("./src/models/whisper/feature_extraction_whisper.js"),v=t("./src/base/image_processors_utils.js")}),"./src/models/florence2/processing_florence2.js":((e,r,t)=>{t.r(r),t.d(r,{Florence2Processor:()=>n});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js");class n extends s.Processor{static tokenizer_class=a.AutoTokenizer;static image_processor_class=o.AutoImageProcessor;constructor(l,c,_){super(l,c,_);let{tasks_answer_post_processing_type:u,task_prompts_without_inputs:d,task_prompts_with_input:g}=this.image_processor.config;this.tasks_answer_post_processing_type=new Map(Object.entries(u??{})),this.task_prompts_without_inputs=new Map(Object.entries(d??{})),this.task_prompts_with_input=new Map(Object.entries(g??{})),this.regexes={quad_boxes:/(.+?)<loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)>/gm,bboxes:/([^<]+)?<loc_(\d+)><loc_(\d+)><loc_(\d+)><loc_(\d+)>/gm},this.size_per_bin=1e3}construct_prompts(l){typeof l=="string"&&(l=[l]);let c=[];for(let _ of l)if(this.task_prompts_without_inputs.has(_))c.push(this.task_prompts_without_inputs.get(_));else{for(let[u,d]of this.task_prompts_with_input)if(_.includes(u)){c.push(d.replaceAll("{input}",_).replaceAll(u,""));break}c.length!==l.length&&c.push(_)}return c}post_process_generation(l,c,_){let u=this.tasks_answer_post_processing_type.get(c)??"pure_text";l=l.replaceAll("<s>","").replaceAll("</s>","");let d;switch(u){case"pure_text":d=l;break;case"description_with_bboxes":case"bboxes":case"phrase_grounding":case"ocr":let g=u==="ocr"?"quad_boxes":"bboxes",h=l.matchAll(this.regexes[g]),x=[],F=[];for(let[v,b,...C]of h)x.push(b?b.trim():x.at(-1)??""),F.push(C.map((y,P)=>(Number(y)+.5)/this.size_per_bin*_[P%2]));d={labels:x,[g]:F};break;default:throw new Error(`Task "${c}" (of type "${u}") not yet implemented.`)}return{[c]:d}}async _call(l,c=null,_={}){if(!l&&!c)throw new Error("Either text or images must be provided");let u=await this.image_processor(l,_),d=c?this.tokenizer(this.construct_prompts(c),_):{};return{...u,...d}}}}),"./src/models/gemma3n/feature_extraction_gemma3n.js":((e,r,t)=>{t.r(r),t.d(r,{Gemma3nAudioFeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js");class n extends s.FeatureExtractor{constructor(l){super(l);let{fft_length:c,feature_size:_,min_frequency:u,max_frequency:d,sampling_rate:g,frame_length:h}=this.config,x=(0,a.mel_filter_bank)(Math.floor(1+c/2),_,u,d,g,null,"htk",!1);this.mel_filters=x,this.window=(0,a.window_function)(h,"hann")}async _extract_fbank_features(l,c){return(0,a.spectrogram)(l,this.window,this.config.frame_length,this.config.hop_length,{fft_length:this.config.fft_length,center:!1,onesided:!0,preemphasis:this.config.preemphasis,preemphasis_htk_flavor:this.config.preemphasis_htk_flavor,mel_filters:this.mel_filters,log_mel:"log",mel_floor:this.config.mel_floor,remove_dc_offset:!1,transpose:!0})}async _call(l,{max_length:c=48e4,truncation:_=!0,padding:u=!0,pad_to_multiple_of:d=128}={}){if((0,s.validate_audio_inputs)(l,"Gemma3nAudioFeatureExtractor"),_&&l.length>c&&(l=l.slice(0,c)),u&&l.length%d!==0){let x=d-l.length%d,F=new Float64Array(l.length+x);F.set(l),this.config.padding_value!==0&&F.fill(this.config.padding_value,l.length),l=F}let g=await this._extract_fbank_features(l,this.config.max_length),h=(0,o.full)([1,g.dims[0]],!0);return{input_features:g.unsqueeze_(0),input_features_mask:h}}}}),"./src/models/gemma3n/processing_gemma3n.js":((e,r,t)=>{t.r(r),t.d(r,{Gemma3nProcessor:()=>c});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/models/auto/feature_extraction_auto.js"),n=t("./src/tokenizers.js"),i=t("./src/utils/image.js"),l=t("./src/utils/audio.js");class c extends s.Processor{static image_processor_class=o.AutoImageProcessor;static feature_extractor_class=a.AutoFeatureExtractor;static tokenizer_class=n.AutoTokenizer;static uses_processor_config=!0;static uses_chat_template_file=!0;constructor(u,d,g){super(u,d,g),this.audio_seq_length=this.config.audio_seq_length,this.image_seq_length=this.config.image_seq_length;let{audio_token_id:h,boa_token:x,audio_token:F,eoa_token:v,image_token_id:b,boi_token:C,image_token:y,eoi_token:P}=this.tokenizer.config;this.audio_token_id=h,this.boa_token=x,this.audio_token=F;let I=F.repeat(this.audio_seq_length);this.full_audio_sequence=`
2839
2839
 
2840
2840
  ${x}${I}${v}
2841
2841
 
@@ -2847,8 +2847,8 @@ ${C}${f}${P}
2847
2847
  `}return b+=`
2848
2848
  ${x}${v}`+F.repeat(d)+`${x}`,b}function c(d,g,h,x){return`${g}${x}`+h.repeat(d)+`${g}`}function _(d,g,h,x,F,v){return d===0&&g===0?c(h,x,F,v):l(h,d,g,x,F,v)}class u extends s.Processor{static image_processor_class=o.AutoImageProcessor;static tokenizer_class=a.AutoTokenizer;static uses_processor_config=!0;fake_image_token="<fake_token_around_image>";image_token="<image>";global_img_token="<global-img>";async _call(g,h=null,x={}){x.return_row_col_info??=!0;let F;h&&(F=await this.image_processor(h,x)),Array.isArray(g)||(g=[g]);let v=F.rows??[new Array(g.length).fill(0)],b=F.cols??[new Array(g.length).fill(0)],C=this.config.image_seq_len,y=[],P=[];for(let f=0;f<g.length;++f){let E=g[f],D=v[f],O=b[f];y.push((0,i.count)(E,this.image_token));let U=D.map((X,J)=>_(X,O[J],C,this.fake_image_token,this.image_token,this.global_img_token)),W=E.split(this.image_token);if(W.length===0)throw new Error("The image token should be present in the text.");let z=W[0];for(let X=0;X<U.length;++X)z+=U[X]+W[X+1];P.push(z)}return{...this.tokenizer(P),...F}}}}),"./src/models/image_processors.js":((e,r,t)=>{t.r(r),t.d(r,{BeitFeatureExtractor:()=>s.BeitFeatureExtractor,BitImageProcessor:()=>o.BitImageProcessor,CLIPFeatureExtractor:()=>n.CLIPFeatureExtractor,CLIPImageProcessor:()=>n.CLIPImageProcessor,ChineseCLIPFeatureExtractor:()=>a.ChineseCLIPFeatureExtractor,ConvNextFeatureExtractor:()=>i.ConvNextFeatureExtractor,ConvNextImageProcessor:()=>i.ConvNextImageProcessor,DINOv3ViTImageProcessor:()=>_.DINOv3ViTImageProcessor,DPTFeatureExtractor:()=>d.DPTFeatureExtractor,DPTImageProcessor:()=>d.DPTImageProcessor,DeiTFeatureExtractor:()=>l.DeiTFeatureExtractor,DeiTImageProcessor:()=>l.DeiTImageProcessor,DetrFeatureExtractor:()=>c.DetrFeatureExtractor,DetrImageProcessor:()=>c.DetrImageProcessor,DonutFeatureExtractor:()=>u.DonutFeatureExtractor,DonutImageProcessor:()=>u.DonutImageProcessor,EfficientNetImageProcessor:()=>g.EfficientNetImageProcessor,GLPNFeatureExtractor:()=>h.GLPNFeatureExtractor,GroundingDinoImageProcessor:()=>x.GroundingDinoImageProcessor,Idefics3ImageProcessor:()=>F.Idefics3ImageProcessor,JinaCLIPImageProcessor:()=>b.JinaCLIPImageProcessor,LlavaOnevisionImageProcessor:()=>C.LlavaOnevisionImageProcessor,Mask2FormerImageProcessor:()=>y.Mask2FormerImageProcessor,MaskFormerFeatureExtractor:()=>P.MaskFormerFeatureExtractor,MaskFormerImageProcessor:()=>P.MaskFormerImageProcessor,MobileNetV1FeatureExtractor:()=>I.MobileNetV1FeatureExtractor,MobileNetV1ImageProcessor:()=>I.MobileNetV1ImageProcessor,MobileNetV2FeatureExtractor:()=>f.MobileNetV2FeatureExtractor,MobileNetV2ImageProcessor:()=>f.MobileNetV2ImageProcessor,MobileNetV3FeatureExtractor:()=>E.MobileNetV3FeatureExtractor,MobileNetV3ImageProcessor:()=>E.MobileNetV3ImageProcessor,MobileNetV4FeatureExtractor:()=>D.MobileNetV4FeatureExtractor,MobileNetV4ImageProcessor:()=>D.MobileNetV4ImageProcessor,MobileViTFeatureExtractor:()=>O.MobileViTFeatureExtractor,MobileViTImageProcessor:()=>O.MobileViTImageProcessor,NougatImageProcessor:()=>U.NougatImageProcessor,OwlViTFeatureExtractor:()=>z.OwlViTFeatureExtractor,OwlViTImageProcessor:()=>z.OwlViTImageProcessor,Owlv2ImageProcessor:()=>W.Owlv2ImageProcessor,Phi3VImageProcessor:()=>X.Phi3VImageProcessor,PixtralImageProcessor:()=>J.PixtralImageProcessor,PvtImageProcessor:()=>q.PvtImageProcessor,Qwen2VLImageProcessor:()=>re.Qwen2VLImageProcessor,RTDetrImageProcessor:()=>oe.RTDetrImageProcessor,Sam2ImageProcessor:()=>ye.Sam2ImageProcessor,Sam3ImageProcessor:()=>Y.Sam3ImageProcessor,SamImageProcessor:()=>ne.SamImageProcessor,SegformerFeatureExtractor:()=>H.SegformerFeatureExtractor,SegformerImageProcessor:()=>H.SegformerImageProcessor,SiglipImageProcessor:()=>R.SiglipImageProcessor,SmolVLMImageProcessor:()=>L.SmolVLMImageProcessor,Swin2SRImageProcessor:()=>ee.Swin2SRImageProcessor,VLMImageProcessor:()=>v.VLMImageProcessor,ViTFeatureExtractor:()=>ue.ViTFeatureExtractor,ViTImageProcessor:()=>ue.ViTImageProcessor,VitMatteImageProcessor:()=>ke.VitMatteImageProcessor,VitPoseImageProcessor:()=>Ie.VitPoseImageProcessor,YolosFeatureExtractor:()=>Le.YolosFeatureExtractor,YolosImageProcessor:()=>Le.YolosImageProcessor});var s=t("./src/models/beit/image_processing_beit.js"),o=t("./src/models/bit/image_processing_bit.js"),a=t("./src/models/chinese_clip/image_processing_chinese_clip.js"),n=t("./src/models/clip/image_processing_clip.js"),i=t("./src/models/convnext/image_processing_convnext.js"),l=t("./src/models/deit/image_processing_deit.js"),c=t("./src/models/detr/image_processing_detr.js"),_=t("./src/models/dinov3_vit/image_processing_dinov3_vit.js"),u=t("./src/models/donut/image_processing_donut.js"),d=t("./src/models/dpt/image_processing_dpt.js"),g=t("./src/models/efficientnet/image_processing_efficientnet.js"),h=t("./src/models/glpn/image_processing_glpn.js"),x=t("./src/models/grounding_dino/image_processing_grounding_dino.js"),F=t("./src/models/idefics3/image_processing_idefics3.js"),v=t("./src/models/janus/image_processing_janus.js"),b=t("./src/models/jina_clip/image_processing_jina_clip.js"),C=t("./src/models/llava_onevision/image_processing_llava_onevision.js"),y=t("./src/models/mask2former/image_processing_mask2former.js"),P=t("./src/models/maskformer/image_processing_maskformer.js"),I=t("./src/models/mobilenet_v1/image_processing_mobilenet_v1.js"),f=t("./src/models/mobilenet_v2/image_processing_mobilenet_v2.js"),E=t("./src/models/mobilenet_v3/image_processing_mobilenet_v3.js"),D=t("./src/models/mobilenet_v4/image_processing_mobilenet_v4.js"),O=t("./src/models/mobilevit/image_processing_mobilevit.js"),U=t("./src/models/nougat/image_processing_nougat.js"),W=t("./src/models/owlv2/image_processing_owlv2.js"),z=t("./src/models/owlvit/image_processing_owlvit.js"),X=t("./src/models/phi3_v/image_processing_phi3_v.js"),J=t("./src/models/pixtral/image_processing_pixtral.js"),q=t("./src/models/pvt/image_processing_pvt.js"),re=t("./src/models/qwen2_vl/image_processing_qwen2_vl.js"),oe=t("./src/models/rt_detr/image_processing_rt_detr.js"),ne=t("./src/models/sam/image_processing_sam.js"),ye=t("./src/models/sam2/image_processing_sam2.js"),Y=t("./src/models/sam3/image_processing_sam3.js"),H=t("./src/models/segformer/image_processing_segformer.js"),R=t("./src/models/siglip/image_processing_siglip.js"),L=t("./src/models/smolvlm/image_processing_smolvlm.js"),ee=t("./src/models/swin2sr/image_processing_swin2sr.js"),ue=t("./src/models/vit/image_processing_vit.js"),ke=t("./src/models/vitmatte/image_processing_vitmatte.js"),Ie=t("./src/models/vitpose/image_processing_vitpose.js"),Le=t("./src/models/yolos/image_processing_yolos.js")}),"./src/models/janus/image_processing_janus.js":((e,r,t)=>{t.r(r),t.d(r,{VLMImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{constructor(n){super({do_pad:!0,pad_size:{width:n.image_size,height:n.image_size},...n}),this.constant_values=this.config.background_color.map(i=>i*this.rescale_factor)}pad_image(n,i,l,c){return super.pad_image(n,i,l,{constant_values:this.constant_values,center:!0,...c})}}}),"./src/models/janus/processing_janus.js":((e,r,t)=>{t.r(r),t.d(r,{VLChatProcessor:()=>c});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js"),n=t("./src/utils/core.js"),i=t("./src/utils/tensor.js"),l=t("./src/utils/image.js");class c extends s.Processor{static image_processor_class=o.AutoImageProcessor;static tokenizer_class=a.AutoTokenizer;static uses_processor_config=!0;constructor(u,d,g){super(u,d,g),this.image_tag=this.config.image_tag,this.image_start_tag=this.config.image_start_tag,this.image_end_tag=this.config.image_end_tag,this.num_image_tokens=this.config.num_image_tokens}async _call(u,{images:d=null,chat_template:g="default"}={}){d?Array.isArray(d)||(d=[d]):d=await Promise.all(u.filter(O=>O.images).flatMap(O=>O.images).map(O=>l.RawImage.read(O)));let h=this.tokenizer,x=h.apply_chat_template(u,{tokenize:!1,add_generation_prompt:!0,chat_template:g}),F=O=>h.encode(O,{add_special_tokens:!1}),v=x.split(this.image_tag),b=v.length-1;if(d.length!==b)throw new Error(`Number of images provided (${d.length}) does not match number of "${this.image_tag}" image tags (${b})`);let[C,y,P]=h.model.convert_tokens_to_ids([this.image_tag,this.image_start_tag,this.image_end_tag]),I=F(v[0]),f=new Array(I.length).fill(!1);for(let O=1;O<v.length;++O){let U=new Array(this.num_image_tokens).fill(C),W=F(v[O]);I=(0,n.mergeArrays)(I,[y],U,[P],W);let z=new Array(this.num_image_tokens).fill(!0);f=(0,n.mergeArrays)(f,[!1],z,[!1],new Array(W.length).fill(!1))}let E=[1,I.length],D={input_ids:new i.Tensor("int64",I,E),attention_mask:new i.Tensor("int64",new Array(I.length).fill(1),E),images_seq_mask:new i.Tensor("bool",f,E),images_emb_mask:new i.Tensor("bool",new Array(b*this.num_image_tokens).fill(!0),[1,b,this.num_image_tokens])};if(d&&d.length>0){let O=await this.image_processor(d);return O.pixel_values.unsqueeze_(0),{...D,...O}}return D}}}),"./src/models/jina_clip/image_processing_jina_clip.js":((e,r,t)=>{t.r(r),t.d(r,{JinaCLIPImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{constructor(n){let{resize_mode:i,fill_color:l,interpolation:c,size:_,...u}=n,d=i==="squash"?{width:_,height:_}:i==="shortest"?{shortest_edge:_}:{longest_edge:_},g=c==="bicubic"?3:2;super({...u,size:d,resample:g,do_center_crop:!0,crop_size:_,do_normalize:!0})}}}),"./src/models/jina_clip/processing_jina_clip.js":((e,r,t)=>{t.r(r),t.d(r,{JinaCLIPProcessor:()=>n});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js");class n extends s.Processor{static tokenizer_class=a.AutoTokenizer;static image_processor_class=o.AutoImageProcessor;async _call(l=null,c=null,_={}){if(!l&&!c)throw new Error("Either text or images must be provided");let u=l?this.tokenizer(l,_):{},d=c?await this.image_processor(c,_):{};return{...u,...d}}}}),"./src/models/llava/processing_llava.js":((e,r,t)=>{t.r(r),t.d(r,{LlavaProcessor:()=>n});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js");class n extends s.Processor{static tokenizer_class=a.AutoTokenizer;static image_processor_class=o.AutoImageProcessor;static uses_processor_config=!0;async _call(l,c=null,_={}){let u=await this.image_processor(l,_);if(c){let[g,h]=u.pixel_values.dims.slice(-2),{image_token:x,patch_size:F,num_additional_image_tokens:v}=this.config,b=Math.floor(g/F)*Math.floor(h/F)+v;c=structuredClone(c),Array.isArray(c)||(c=[c]);for(let C=0;C<c.length;++C)c[C]=c[C].replace(x,x.repeat(b))}let d=c?this.tokenizer(c,_):{};return{...u,...d}}}}),"./src/models/llava_onevision/image_processing_llava_onevision.js":((e,r,t)=>{t.r(r),t.d(r,{LlavaOnevisionImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}}),"./src/models/mask2former/image_processing_mask2former.js":((e,r,t)=>{t.r(r),t.d(r,{Mask2FormerImageProcessor:()=>o});var s=t("./src/models/maskformer/image_processing_maskformer.js");class o extends s.MaskFormerImageProcessor{}}),"./src/models/maskformer/image_processing_maskformer.js":((e,r,t)=>{t.r(r),t.d(r,{MaskFormerFeatureExtractor:()=>a,MaskFormerImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{post_process_panoptic_segmentation(...i){return(0,s.post_process_panoptic_segmentation)(...i)}post_process_instance_segmentation(...i){return(0,s.post_process_instance_segmentation)(...i)}}class a extends o{}}),"./src/models/mgp_str/processing_mgp_str.js":((e,r,t)=>{t.r(r),t.d(r,{MgpstrProcessor:()=>l});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js"),n=t("./src/utils/maths.js");let i={char:["char_decode",1],bpe:["bpe_decode",2],wp:["wp_decode",102]};class l extends s.Processor{static tokenizer_class=a.AutoTokenizer;static image_processor_class=o.AutoImageProcessor;get char_tokenizer(){return this.components.char_tokenizer}get bpe_tokenizer(){return this.components.bpe_tokenizer}get wp_tokenizer(){return this.components.wp_tokenizer}_decode_helper(_,u){if(!i.hasOwnProperty(u))throw new Error(`Format ${u} is not supported.`);let[d,g]=i[u],h=this[d].bind(this),[x,F]=_.dims,v=[],b=[],C=_.tolist();for(let P=0;P<x;++P){let I=C[P],f=[],E=[];for(let O=1;O<F;++O){let[U,W]=(0,n.max)((0,n.softmax)(I[O]));if(E.push(U),W==g)break;f.push(W)}let D=E.length>0?E.reduce((O,U)=>O*U,1):0;b.push(f),v.push(D)}return[h(b),v]}char_decode(_){return this.char_tokenizer.batch_decode(_).map(u=>u.replaceAll(" ",""))}bpe_decode(_){return this.bpe_tokenizer.batch_decode(_)}wp_decode(_){return this.wp_tokenizer.batch_decode(_).map(u=>u.replaceAll(" ",""))}batch_decode([_,u,d]){let[g,h]=this._decode_helper(_,"char"),[x,F]=this._decode_helper(u,"bpe"),[v,b]=this._decode_helper(d,"wp"),C=[],y=[];for(let P=0;P<g.length;++P){let[I,f]=(0,n.max)([h[P],F[P],b[P]]);C.push([g[P],x[P],v[P]][f]),y.push(I)}return{generated_text:C,scores:y,char_preds:g,bpe_preds:x,wp_preds:v}}static async from_pretrained(..._){let u=await super.from_pretrained(..._),d=await a.AutoTokenizer.from_pretrained("Xenova/gpt2"),g=await a.AutoTokenizer.from_pretrained("Xenova/bert-base-uncased");return u.components={image_processor:u.image_processor,char_tokenizer:u.tokenizer,bpe_tokenizer:d,wp_tokenizer:g},u}async _call(_,u=null){let d=await this.image_processor(_);return u&&(d.labels=this.tokenizer(u).input_ids),d}}}),"./src/models/mobilenet_v1/image_processing_mobilenet_v1.js":((e,r,t)=>{t.r(r),t.d(r,{MobileNetV1FeatureExtractor:()=>a,MobileNetV1ImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class a extends o{}}),"./src/models/mobilenet_v2/image_processing_mobilenet_v2.js":((e,r,t)=>{t.r(r),t.d(r,{MobileNetV2FeatureExtractor:()=>a,MobileNetV2ImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class a extends o{}}),"./src/models/mobilenet_v3/image_processing_mobilenet_v3.js":((e,r,t)=>{t.r(r),t.d(r,{MobileNetV3FeatureExtractor:()=>a,MobileNetV3ImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class a extends o{}}),"./src/models/mobilenet_v4/image_processing_mobilenet_v4.js":((e,r,t)=>{t.r(r),t.d(r,{MobileNetV4FeatureExtractor:()=>a,MobileNetV4ImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class a extends o{}}),"./src/models/mobilevit/image_processing_mobilevit.js":((e,r,t)=>{t.r(r),t.d(r,{MobileViTFeatureExtractor:()=>a,MobileViTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class a extends o{}}),"./src/models/moonshine/feature_extraction_moonshine.js":((e,r,t)=>{t.r(r),t.d(r,{MoonshineFeatureExtractor:()=>a});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js");class a extends s.FeatureExtractor{async _call(i){(0,s.validate_audio_inputs)(i,"MoonshineFeatureExtractor"),i instanceof Float64Array&&(i=new Float32Array(i));let l=[1,i.length];return{input_values:new o.Tensor("float32",i,l)}}}}),"./src/models/moonshine/processing_moonshine.js":((e,r,t)=>{t.r(r),t.d(r,{MoonshineProcessor:()=>n});var s=t("./src/models/auto/feature_extraction_auto.js"),o=t("./src/tokenizers.js"),a=t("./src/base/processing_utils.js");class n extends a.Processor{static tokenizer_class=o.AutoTokenizer;static feature_extractor_class=s.AutoFeatureExtractor;async _call(l){return await this.feature_extractor(l)}}}),"./src/models/nougat/image_processing_nougat.js":((e,r,t)=>{t.r(r),t.d(r,{NougatImageProcessor:()=>o});var s=t("./src/models/donut/image_processing_donut.js");class o extends s.DonutImageProcessor{}}),"./src/models/owlv2/image_processing_owlv2.js":((e,r,t)=>{t.r(r),t.d(r,{Owlv2ImageProcessor:()=>o});var s=t("./src/models/owlvit/image_processing_owlvit.js");class o extends s.OwlViTImageProcessor{}}),"./src/models/owlvit/image_processing_owlvit.js":((e,r,t)=>{t.r(r),t.d(r,{OwlViTFeatureExtractor:()=>a,OwlViTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{post_process_object_detection(...i){return(0,s.post_process_object_detection)(...i)}}class a extends o{}}),"./src/models/owlvit/processing_owlvit.js":((e,r,t)=>{t.r(r),t.d(r,{OwlViTProcessor:()=>n});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js");class n extends s.Processor{static tokenizer_class=a.AutoTokenizer;static image_processor_class=o.AutoImageProcessor}}),"./src/models/paligemma/processing_paligemma.js":((e,r,t)=>{t.r(r),t.d(r,{PaliGemmaProcessor:()=>l});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js");let n="<image>";function i(c,_,u,d,g){return`${d.repeat(u*g)}${_}${c}
2849
2849
  `}class l extends s.Processor{static tokenizer_class=a.AutoTokenizer;static image_processor_class=o.AutoImageProcessor;static uses_processor_config=!1;async _call(_,u=null,d={}){u||(console.warn("You are using PaliGemma without a text prefix. It will perform as a picture-captioning model."),u=""),Array.isArray(_)||(_=[_]),Array.isArray(u)||(u=[u]);let g=this.tokenizer.bos_token,h=this.image_processor.config.image_seq_length,x;u.some(b=>b.includes(n))?x=u.map(b=>{let C=b.replaceAll(n,n.repeat(h)),y=C.lastIndexOf(n),P=y===-1?0:y+n.length;return C.slice(0,P)+g+C.slice(P)+`
2850
- `}):(console.warn("You are passing both `text` and `images` to `PaliGemmaProcessor`. The processor expects special image tokens in the text, as many tokens as there are images per each text. It is recommended to add `<image>` tokens in the very beginning of your text. For this call, we will infer how many images each text has and add special tokens."),x=u.map(b=>i(b,g,h,n,_.length)));let F=this.tokenizer(x,d);return{...await this.image_processor(_,d),...F}}}}),"./src/models/parakeet/feature_extraction_parakeet.js":((e,r,t)=>{t.r(r),t.d(r,{ParakeetFeatureExtractor:()=>i});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js");let n=1e-5;class i extends s.FeatureExtractor{constructor(c){super(c),this.config.mel_filters??=(0,a.mel_filter_bank)(Math.floor(1+this.config.n_fft/2),this.config.feature_size,0,this.config.sampling_rate/2,this.config.sampling_rate,"slaney","slaney");let _=(0,a.window_function)(this.config.win_length,"hann",{periodic:!1});this.window=new Float64Array(this.config.n_fft);let u=Math.floor((this.config.n_fft-this.config.win_length)/2);this.window.set(_,u)}async _extract_fbank_features(c){let _=this.config.preemphasis;c=new Float64Array(c);for(let d=c.length-1;d>=1;--d)c[d]-=_*c[d-1];return await(0,a.spectrogram)(c,this.window,this.window.length,this.config.hop_length,{fft_length:this.config.n_fft,power:2,mel_filters:this.config.mel_filters,log_mel:"log",mel_floor:-1/0,pad_mode:"constant",center:!0,transpose:!0,mel_offset:2**-24})}async _call(c){(0,s.validate_audio_inputs)(c,"ParakeetFeatureExtractor");let _=await this._extract_fbank_features(c),u=Math.floor((c.length+Math.floor(this.config.n_fft/2)*2-this.config.n_fft)/this.config.hop_length),d=_.data;d.fill(0,u*_.dims[1]);let[g,h]=_.dims,x=new Float64Array(h),F=new Float64Array(h);for(let C=0;C<u;++C){let y=C*h;for(let P=0;P<h;++P){let I=d[y+P];x[P]+=I,F[P]+=I*I}}let v=u>1?u-1:1;for(let C=0;C<h;++C){let y=x[C]/u,P=(F[C]-u*y*y)/v,f=1/(Math.sqrt(P)+n);for(let E=0;E<u;++E){let D=E*h+C;d[D]=(d[D]-y)*f}}let b=new BigInt64Array(g);return b.fill(1n,0,u),{input_features:_.unsqueeze_(0),attention_mask:new o.Tensor("int64",b,[1,g])}}}}),"./src/models/phi3_v/image_processing_phi3_v.js":((e,r,t)=>{t.r(r),t.d(r,{Phi3VImageProcessor:()=>_});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/tensor.js");let a=336,n=[2,3],{ceil:i,floor:l,sqrt:c}=Math;class _ extends s.ImageProcessor{constructor(d){super({...d,do_normalize:!0,do_pad:!0,pad_size:"custom",do_convert_rgb:!0,do_resize:!0}),this._num_crops=d.num_crops}calc_num_image_tokens_from_image_size(d,g){let{num_img_tokens:h}=this.config;return l((l(g/a)*l(d/a)+1)*h+1+(l(g/a)+1)*c(h))}get_resize_output_image_size(d,g){let h=this._num_crops,[x,F]=d.size,v=x/F,b=1;for(;b*Math.ceil(b/v)<=h;)b+=1;b-=1;let C=Math.floor(b*336),y=Math.floor(C/v);return[C,y]}pad_image(d,g,h,x={}){let[F,v]=g,b=a*i(F/a),C=a*i(v/a),y=[1,1,1].map((P,I)=>(P-this.image_mean[I])/this.image_std[I]);return super.pad_image(d,g,{width:C,height:b},{center:!0,constant_values:y,...x})}async _call(d,{num_crops:g=null}={}){if(this._num_crops=g??=this.config.num_crops,g<4||c(g)%1!==0)throw new Error("num_crops must be a square number >= 4");Array.isArray(d)||(d=[d]);let h=d.length,x=await Promise.all(d.map(f=>this.preprocess(f))),F=x.map(f=>f.original_size),v=x.map(f=>f.reshaped_input_size),b=[];for(let{pixel_values:f}of x){f.unsqueeze_(0);let[E,D]=f.dims.slice(-2),O=await(0,o.interpolate_4d)(f,{size:[a,a],mode:"bicubic"});if(g>0){let U=[],W=c(g),z=l(D/W),X=l(E/W);for(let q=0;q<W;++q)for(let re=0;re<W;++re){let oe,ne,ye,Y;q===W-1?(ne=E-X,Y=E):(ne=q*X,Y=(q+1)*X),re===W-1?(oe=D-z,ye=D):(oe=re*z,ye=(re+1)*z);let H=[ne,oe],R=[Y,ye],L=await(0,o.slice)(f,H,R,n);U.push(L)}let J=await(0,o.interpolate_4d)((0,o.cat)(U,0),{size:[a,a],mode:"bicubic"});b.push((0,o.cat)([O,J],0))}else b.push(O)}let C=(0,o.stack)(b,0),y=v.map(f=>f.map(E=>a*i(E/a))),P=new o.Tensor("int64",y.flat(),[h,2]),I=y.map(([f,E])=>this.calc_num_image_tokens_from_image_size(E,f));return{pixel_values:C,original_sizes:F,reshaped_input_sizes:v,image_sizes:P,num_img_tokens:I}}}}),"./src/models/phi3_v/processing_phi3_v.js":((e,r,t)=>{t.r(r),t.d(r,{Phi3VProcessor:()=>c});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js"),n=t("./src/utils/image.js");let i="<|image|>",l=/<\|image_\d+\|>/g;class c extends s.Processor{static image_processor_class=o.AutoImageProcessor;static tokenizer_class=a.AutoTokenizer;async _call(u,d=null,{padding:g=!0,truncation:h=!0,num_crops:x=null}={}){Array.isArray(u)||(u=[u]);let F,v;if(d){v=await this.image_processor(d,{num_crops:x});let{num_img_tokens:b}=v,C=u.map((P,I)=>P.split(l).join(i.repeat(b[I])));F=this.tokenizer(C,{padding:g,truncation:h});let y=this.tokenizer.model.convert_tokens_to_ids([i])[0];F.input_ids.map_(P=>P==y?-P:P)}else F=this.tokenizer(u);return{...F,...v}}}}),"./src/models/pixtral/image_processing_pixtral.js":((e,r,t)=>{t.r(r),t.d(r,{PixtralImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{get_resize_output_image_size(n,i){let{longest_edge:l}=i;if(l===void 0)throw new Error("size must contain 'longest_edge'");let[c,_]=n.size,u=Math.max(c,_)/l,d=c,g=_;u>1&&(d=Math.floor(c/u),g=Math.floor(_/u));let{patch_size:h,spatial_merge_size:x}=this.config;if(!x)throw new Error("config must contain 'spatial_merge_size'");let F=h*x,v=Math.floor((d-1)/F)+1,b=Math.floor((g-1)/F)+1;return[v*F,b*F]}}}),"./src/models/pixtral/processing_pixtral.js":((e,r,t)=>{t.r(r),t.d(r,{PixtralProcessor:()=>n});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js");class n extends s.Processor{static tokenizer_class=a.AutoTokenizer;static image_processor_class=o.AutoImageProcessor;static uses_processor_config=!0;async _call(l,c=null,_={}){let u=await this.image_processor(l,_);if(c){let[g,h]=u.pixel_values.dims.slice(-2),{image_token:x,image_break_token:F,image_end_token:v,patch_size:b,spatial_merge_size:C}=this.config,y=b*C,P=Math.floor(g/y),I=Math.floor(h/y);c=structuredClone(c),Array.isArray(c)||(c=[c]);for(let f=0;f<c.length;++f){let E=x.repeat(I),D=E+F,O=E+v,U=D.repeat(P-1)+O;c[f]=c[f].replace(x,U)}}let d=c?this.tokenizer(c,_):{};return{...u,...d}}}}),"./src/models/processors.js":((e,r,t)=>{t.r(r),t.d(r,{Florence2Processor:()=>s.Florence2Processor,Gemma3nProcessor:()=>o.Gemma3nProcessor,GroundingDinoProcessor:()=>a.GroundingDinoProcessor,Idefics3Processor:()=>n.Idefics3Processor,JinaCLIPProcessor:()=>l.JinaCLIPProcessor,LlavaProcessor:()=>c.LlavaProcessor,MgpstrProcessor:()=>_.MgpstrProcessor,MoonshineProcessor:()=>u.MoonshineProcessor,OwlViTProcessor:()=>d.OwlViTProcessor,PaliGemmaProcessor:()=>g.PaliGemmaProcessor,Phi3VProcessor:()=>h.Phi3VProcessor,PixtralProcessor:()=>x.PixtralProcessor,PyAnnoteProcessor:()=>F.PyAnnoteProcessor,Qwen2VLProcessor:()=>v.Qwen2VLProcessor,Sam2Processor:()=>C.Sam2Processor,Sam2VideoProcessor:()=>C.Sam2VideoProcessor,SamProcessor:()=>b.SamProcessor,SmolVLMProcessor:()=>y.SmolVLMProcessor,SpeechT5Processor:()=>P.SpeechT5Processor,UltravoxProcessor:()=>I.UltravoxProcessor,VLChatProcessor:()=>i.VLChatProcessor,VoxtralProcessor:()=>f.VoxtralProcessor,Wav2Vec2Processor:()=>E.Wav2Vec2Processor,Wav2Vec2ProcessorWithLM:()=>D.Wav2Vec2ProcessorWithLM,WhisperProcessor:()=>O.WhisperProcessor});var s=t("./src/models/florence2/processing_florence2.js"),o=t("./src/models/gemma3n/processing_gemma3n.js"),a=t("./src/models/grounding_dino/processing_grounding_dino.js"),n=t("./src/models/idefics3/processing_idefics3.js"),i=t("./src/models/janus/processing_janus.js"),l=t("./src/models/jina_clip/processing_jina_clip.js"),c=t("./src/models/llava/processing_llava.js"),_=t("./src/models/mgp_str/processing_mgp_str.js"),u=t("./src/models/moonshine/processing_moonshine.js"),d=t("./src/models/owlvit/processing_owlvit.js"),g=t("./src/models/paligemma/processing_paligemma.js"),h=t("./src/models/phi3_v/processing_phi3_v.js"),x=t("./src/models/pixtral/processing_pixtral.js"),F=t("./src/models/pyannote/processing_pyannote.js"),v=t("./src/models/qwen2_vl/processing_qwen2_vl.js"),b=t("./src/models/sam/processing_sam.js"),C=t("./src/models/sam2/processing_sam2.js"),y=t("./src/models/smolvlm/processing_smolvlm.js"),P=t("./src/models/speecht5/processing_speecht5.js"),I=t("./src/models/ultravox/processing_ultravox.js"),f=t("./src/models/voxtral/processing_voxtral.js"),E=t("./src/models/wav2vec2/processing_wav2vec2.js"),D=t("./src/models/wav2vec2_with_lm/processing_wav2vec2_with_lm.js"),O=t("./src/models/whisper/processing_whisper.js")}),"./src/models/pvt/image_processing_pvt.js":((e,r,t)=>{t.r(r),t.d(r,{PvtImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}}),"./src/models/pyannote/feature_extraction_pyannote.js":((e,r,t)=>{t.r(r),t.d(r,{PyAnnoteFeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/maths.js");class n extends s.FeatureExtractor{async _call(l){(0,s.validate_audio_inputs)(l,"PyAnnoteFeatureExtractor"),l instanceof Float64Array&&(l=new Float32Array(l));let c=[1,1,l.length];return{input_values:new o.Tensor("float32",l,c)}}samples_to_frames(l){return(l-this.config.offset)/this.config.step}post_process_speaker_diarization(l,c){let _=c/this.samples_to_frames(c)/this.config.sampling_rate,u=[];for(let d of l.tolist()){let g=[],h=-1;for(let x=0;x<d.length;++x){let F=(0,a.softmax)(d[x]),[v,b]=(0,a.max)(F),[C,y]=[x,x+1];b!==h?(h=b,g.push({id:b,start:C,end:y,score:v})):(g.at(-1).end=y,g.at(-1).score+=v)}u.push(g.map(({id:x,start:F,end:v,score:b})=>({id:x,start:F*_,end:v*_,confidence:b/(v-F)})))}return u}}}),"./src/models/pyannote/processing_pyannote.js":((e,r,t)=>{t.r(r),t.d(r,{PyAnnoteProcessor:()=>a});var s=t("./src/base/processing_utils.js"),o=t("./src/models/pyannote/feature_extraction_pyannote.js");class a extends s.Processor{static feature_extractor_class=o.PyAnnoteFeatureExtractor;async _call(i){return await this.feature_extractor(i)}post_process_speaker_diarization(...i){return this.feature_extractor.post_process_speaker_diarization(...i)}get sampling_rate(){return this.feature_extractor.config.sampling_rate}}}),"./src/models/qwen2_vl/image_processing_qwen2_vl.js":((e,r,t)=>{t.r(r),t.d(r,{Qwen2VLImageProcessor:()=>a});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/tensor.js");class a extends s.ImageProcessor{async _call(i,...l){let{pixel_values:c,original_sizes:_,reshaped_input_sizes:u}=await super._call(i,...l),d=c,{temporal_patch_size:g,merge_size:h,patch_size:x}=this.config;d.dims[0]===1&&(d=(0,o.cat)(Array.from({length:g},()=>d),0));let F=d.dims[0]/g,v=d.dims[1],b=Math.floor(d.dims[2]/x),C=Math.floor(d.dims[3]/x),y=d.view(F,g,v,Math.floor(b/h),h,x,Math.floor(C/h),h,x).permute(0,3,6,4,7,2,1,5,8).view(F*b*C,v*g*x*x),P=new o.Tensor("int64",[F,b,C],[1,3]);return{pixel_values:y,image_grid_thw:P,original_sizes:_,reshaped_input_sizes:u}}}}),"./src/models/qwen2_vl/processing_qwen2_vl.js":((e,r,t)=>{t.r(r),t.d(r,{Qwen2VLProcessor:()=>i});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js"),n=t("./src/utils/image.js");class i extends s.Processor{static image_processor_class=o.AutoImageProcessor;static tokenizer_class=a.AutoTokenizer;async _call(c,_=null,...u){Array.isArray(c)||(c=[c]);let d,g;if(_&&(d=await this.image_processor(_),g=d.image_grid_thw),g){let x=this.image_processor.config.merge_size**2,F=0,v=g.tolist();c=c.map(b=>{for(;b.includes("<|image_pad|>");){let C=Number(v[F++].reduce((y,P)=>y*P,1n));b=b.replace("<|image_pad|>","<|placeholder|>".repeat(Math.floor(C/x)))}return b.replaceAll("<|placeholder|>","<|image_pad|>")})}return{...this.tokenizer(c),...d}}}}),"./src/models/rt_detr/image_processing_rt_detr.js":((e,r,t)=>{t.r(r),t.d(r,{RTDetrImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{post_process_object_detection(...n){return(0,s.post_process_object_detection)(...n)}}}),"./src/models/sam/image_processing_sam.js":((e,r,t)=>{t.r(r),t.d(r,{SamImageProcessor:()=>n});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/core.js"),a=t("./src/utils/tensor.js");class n extends s.ImageProcessor{reshape_input_points(l,c,_,u=!1){l=structuredClone(l);let d=(0,o.calculateDimensions)(l);if(d.length===3)u||(d=[1,...d]),l=[l];else if(d.length!==4)throw Error("The input_points must be a 4D tensor of shape `batch_size`, `point_batch_size`, `nb_points_per_image`, `2`.");for(let g=0;g<l.length;++g){let[h,x]=c[g],[F,v]=_[g],b=[v/x,F/h];for(let C=0;C<l[g].length;++C)for(let y=0;y<l[g][C].length;++y)for(let P=0;P<l[g][C][y].length;++P)l[g][C][y][P]*=b[P%2]}return new a.Tensor("float32",Float32Array.from(l.flat(1/0)),d)}add_input_labels(l,c){let _=(0,o.calculateDimensions)(l);if(_.length===2)_=[1,..._],l=[l];else if(_.length!==3)throw Error("The input_points must be a 4D tensor of shape `batch_size`, `point_batch_size`, `nb_points_per_image`, `2`.");if(_.some((u,d)=>u!==c.dims[d]))throw Error(`The first ${_.length} dimensions of 'input_points' and 'input_labels' must be the same.`);return new a.Tensor("int64",l.flat(1/0).map(BigInt),_)}async _call(l,{input_points:c=null,input_labels:_=null,input_boxes:u=null}={}){let d=await super._call(l);if(c&&(d.input_points=this.reshape_input_points(c,d.original_sizes,d.reshaped_input_sizes)),_){if(!d.input_points)throw Error("`input_points` must be provided if `input_labels` are provided.");d.input_labels=this.add_input_labels(_,d.input_points)}return u&&(d.input_boxes=this.reshape_input_points(u,d.original_sizes,d.reshaped_input_sizes,!0)),d}async post_process_masks(l,c,_,{mask_threshold:u=0,binarize:d=!0,pad_size:g=null}={}){let h=[];g=g??this.pad_size??this.size;let x=[g.height,g.width];for(let F=0;F<c.length;++F){let v=c[F],b=_[F],C=await(0,a.interpolate_4d)(l[F],{mode:"bilinear",size:x});if(C=C.slice(null,null,[0,b[0]],[0,b[1]]),C=await(0,a.interpolate_4d)(C,{mode:"bilinear",size:v}),d){let y=C.data,P=new Uint8Array(y.length);for(let I=0;I<y.length;++I)y[I]>u&&(P[I]=1);C=new a.Tensor("bool",P,C.dims)}h.push(C)}return h}generate_crop_boxes(l,c,{crop_n_layers:_=0,overlap_ratio:u=512/1500,points_per_crop:d=32,crop_n_points_downscale_factor:g=1}={}){}}}),"./src/models/sam/processing_sam.js":((e,r,t)=>{t.r(r),t.d(r,{SamProcessor:()=>a});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js");class a extends s.Processor{static image_processor_class=o.AutoImageProcessor;async _call(...i){return await this.image_processor(...i)}post_process_masks(...i){return this.image_processor.post_process_masks(...i)}reshape_input_points(...i){return this.image_processor.reshape_input_points(...i)}}}),"./src/models/sam2/image_processing_sam2.js":((e,r,t)=>{t.r(r),t.d(r,{Sam2ImageProcessor:()=>s.SamImageProcessor});var s=t("./src/models/sam/image_processing_sam.js")}),"./src/models/sam2/processing_sam2.js":((e,r,t)=>{t.r(r),t.d(r,{Sam2Processor:()=>o,Sam2VideoProcessor:()=>a});var s=t("./src/models/sam/processing_sam.js");class o extends s.SamProcessor{}class a extends o{}}),"./src/models/sam3/image_processing_sam3.js":((e,r,t)=>{t.r(r),t.d(r,{Sam3ImageProcessor:()=>s.Sam2ImageProcessor});var s=t("./src/models/sam2/image_processing_sam2.js")}),"./src/models/seamless_m4t/feature_extraction_seamless_m4t.js":((e,r,t)=>{t.r(r),t.d(r,{SeamlessM4TFeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js");class n extends s.FeatureExtractor{constructor(l){super(l);let c=this.config.sampling_rate,_=(0,a.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(c/2),c,null,"kaldi",!0);this.mel_filters=_,this.window=(0,a.window_function)(400,"povey",{periodic:!1})}async _extract_fbank_features(l,c){return l=l.map(_=>_*32768),(0,a.spectrogram)(l,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,max_num_frames:c,transpose:!0})}async _call(l,{padding:c=!0,pad_to_multiple_of:_=2,do_normalize_per_mel_bins:u=!0,return_attention_mask:d=!0}={}){(0,s.validate_audio_inputs)(l,"SeamlessM4TFeatureExtractor");let g=await this._extract_fbank_features(l,this.config.max_length);if(u){let[P,I]=g.dims,f=g.data;for(let E=0;E<I;++E){let D=0;for(let z=0;z<P;++z)D+=f[z*I+E];let O=D/P,U=0;for(let z=0;z<P;++z)U+=(f[z*I+E]-O)**2;U/=P-1;let W=Math.sqrt(U+1e-7);for(let z=0;z<P;++z){let X=z*I+E;f[X]=(f[X]-O)/W}}}let h;if(c){let[P,I]=g.dims,f=g.data,E=P%_;if(E>0){let D=new Float32Array(I*(P+E));D.set(f),D.fill(this.config.padding_value,f.length);let O=P+E;g=new o.Tensor(g.type,D,[O,I]),d&&(h=new o.Tensor("int64",new BigInt64Array(O),[1,O]),h.data.fill(1n,0,P))}}let[x,F]=g.dims,v=this.config.stride;if(x%v!==0)throw new Error(`The number of frames (${x}) must be a multiple of the stride (${v}).`);let C=g.view(1,Math.floor(x/v),F*v),y={input_features:C};if(d){let P=C.dims[1],I=new BigInt64Array(P);if(h){let f=h.data;for(let E=1,D=0;E<x;E+=v,++D)I[D]=f[E]}else I.fill(1n);y.attention_mask=new o.Tensor("int64",I,[1,P])}return y}}}),"./src/models/segformer/image_processing_segformer.js":((e,r,t)=>{t.r(r),t.d(r,{SegformerFeatureExtractor:()=>a,SegformerImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{post_process_semantic_segmentation(...i){return(0,s.post_process_semantic_segmentation)(...i)}}class a extends o{}}),"./src/models/siglip/image_processing_siglip.js":((e,r,t)=>{t.r(r),t.d(r,{SiglipImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}}),"./src/models/smolvlm/image_processing_smolvlm.js":((e,r,t)=>{t.r(r),t.d(r,{SmolVLMImageProcessor:()=>s.Idefics3ImageProcessor});var s=t("./src/models/idefics3/image_processing_idefics3.js")}),"./src/models/smolvlm/processing_smolvlm.js":((e,r,t)=>{t.r(r),t.d(r,{SmolVLMProcessor:()=>s.Idefics3Processor});var s=t("./src/models/idefics3/processing_idefics3.js")}),"./src/models/snac/feature_extraction_snac.js":((e,r,t)=>{t.r(r),t.d(r,{SnacFeatureExtractor:()=>o});var s=t("./src/models/dac/feature_extraction_dac.js");class o extends s.DacFeatureExtractor{}}),"./src/models/speecht5/feature_extraction_speecht5.js":((e,r,t)=>{t.r(r),t.d(r,{SpeechT5FeatureExtractor:()=>o});var s=t("./src/base/feature_extraction_utils.js");class o extends s.FeatureExtractor{}}),"./src/models/speecht5/processing_speecht5.js":((e,r,t)=>{t.r(r),t.d(r,{SpeechT5Processor:()=>n});var s=t("./src/base/processing_utils.js"),o=t("./src/tokenizers.js"),a=t("./src/models/auto/feature_extraction_auto.js");class n extends s.Processor{static tokenizer_class=o.AutoTokenizer;static feature_extractor_class=a.AutoFeatureExtractor;async _call(l){return await this.feature_extractor(l)}}}),"./src/models/swin2sr/image_processing_swin2sr.js":((e,r,t)=>{t.r(r),t.d(r,{Swin2SRImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{pad_image(n,i,l,c={}){let[_,u,d]=i;return super.pad_image(n,i,{width:u+(l-u%l)%l,height:_+(l-_%l)%l},{mode:"symmetric",center:!1,constant_values:-1,...c})}}}),"./src/models/ultravox/processing_ultravox.js":((e,r,t)=>{t.r(r),t.d(r,{UltravoxProcessor:()=>n});var s=t("./src/models/auto/feature_extraction_auto.js"),o=t("./src/tokenizers.js"),a=t("./src/base/processing_utils.js");class n extends a.Processor{static tokenizer_class=o.AutoTokenizer;static feature_extractor_class=s.AutoFeatureExtractor;static uses_processor_config=!0;async _call(l,c=null,_={}){if(Array.isArray(l))throw new Error("Batched inputs are not supported yet.");let u={};if(c){let g=c.length,{input_features:h}=await this.feature_extractor(c,{..._,max_length:g}),x=Math.round(g/this.config.encoder_ds_factor+1e-4),F=1+Math.ceil(x/this.config.stack_factor);u.audio_token_len=[F],u.audio_values=h;let v=this.config.audio_placeholder;if(!l.includes(v))throw new Error(`The input text does not contain the image token ${v}.`);l=l.replaceAll(v,v.repeat(F))}return{...this.tokenizer(l,{add_special_tokens:!1,..._}),...u}}}}),"./src/models/vit/image_processing_vit.js":((e,r,t)=>{t.r(r),t.d(r,{ViTFeatureExtractor:()=>a,ViTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class a extends o{}}),"./src/models/vitmatte/image_processing_vitmatte.js":((e,r,t)=>{t.r(r),t.d(r,{VitMatteImageProcessor:()=>a});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/tensor.js");class a extends s.ImageProcessor{async _call(i,l){Array.isArray(i)||(i=[i]),Array.isArray(l)||(l=[l]);let c=await Promise.all(i.map(d=>this.preprocess(d))),_=await Promise.all(l.map(d=>this.preprocess(d,{do_normalize:!1,do_convert_rgb:!1,do_convert_grayscale:!0})));return{pixel_values:(0,o.stack)(c.map((d,g)=>(0,o.cat)([d.pixel_values,_[g].pixel_values],0)),0),original_sizes:c.map(d=>d.original_size),reshaped_input_sizes:c.map(d=>d.reshaped_input_size)}}}}),"./src/models/vitpose/image_processing_vitpose.js":((e,r,t)=>{t.r(r),t.d(r,{VitPoseImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{post_process_pose_estimation(n,i,{threshold:l=null}={}){let c=n.tolist(),[_,u,d,g]=n.dims,h=[];for(let x=0;x<_;++x){let F=c[x],v=i[x],b=[];for(let C=0;C<v.length;++C){let y=v[C],P=[],I=[],f=[],E=y.at(-2)/g,D=y.at(-1)/d;for(let O=0;O<F.length;++O){let[U,W]=[0,0],z=0,X=-1/0,J=F[O];for(let re=0;re<J.length;++re){let oe=J[re];for(let ne=0;ne<oe.length;++ne){let ye=oe[ne];z+=ye,X=Math.max(X,ye),U+=(ne+.5)*ye,W+=re*ye}}if(l!=null&&X<l)continue;let q=[E*U/z,D*W/z];P.push(q),f.push(O),I.push(X)}b.push({bbox:y,scores:I,labels:f,keypoints:P})}h.push(b)}return h}}}),"./src/models/voxtral/processing_voxtral.js":((e,r,t)=>{t.r(r),t.d(r,{VoxtralProcessor:()=>u});var s=t("./src/models/auto/feature_extraction_auto.js"),o=t("./src/tokenizers.js"),a=t("./src/base/processing_utils.js"),n=t("./src/utils/tensor.js");let i="[AUDIO]",l="[BEGIN_AUDIO]",c=375;function _(d,g){let h=[];for(let x=0;x<d.length;x+=g)h.push(d.subarray(x,Math.min(x+g,d.length)));return h}class u extends a.Processor{static tokenizer_class=o.AutoTokenizer;static feature_extractor_class=s.AutoFeatureExtractor;static uses_processor_config=!1;async _call(g,h=null,x={}){if(Array.isArray(g))throw new Error("Batched inputs are not supported yet.");let F={};if(h){if(!g.includes(i))throw new Error(`The input text does not contain the audio token ${i}.`);Array.isArray(h)||(h=[h]);let b=g.split(i),C=b.length-1;if(C!==h.length)throw new Error(`The number of audio inputs (${h.length}) does not match the number of audio tokens in the text (${C}).`);let y=this.feature_extractor.config.n_samples,P=h.map(O=>_(O,y)),I=P.map(O=>O.length),f=P.flat(),E=(await Promise.all(f.map(O=>this.feature_extractor(O,x)))).map(O=>O.input_features);F.audio_values=E.length>1?(0,n.cat)(E,0):E[0];let D=b[0];for(let O=0;O<I.length;++O){D+=l;for(let U=0;U<I[O];++U)D+=i.repeat(c);D+=b[O+1]}g=D}return{...this.tokenizer(g,{add_special_tokens:!1,...x}),...F}}}}),"./src/models/wav2vec2/feature_extraction_wav2vec2.js":((e,r,t)=>{t.r(r),t.d(r,{Wav2Vec2FeatureExtractor:()=>a});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js");class a extends s.FeatureExtractor{_zero_mean_unit_var_norm(i){let c=i.reduce((u,d)=>u+d,0)/i.length,_=i.reduce((u,d)=>u+(d-c)**2,0)/i.length;return i.map(u=>(u-c)/Math.sqrt(_+1e-7))}async _call(i){(0,s.validate_audio_inputs)(i,"Wav2Vec2FeatureExtractor"),i instanceof Float64Array&&(i=new Float32Array(i));let l=i;this.config.do_normalize&&(l=this._zero_mean_unit_var_norm(l));let c=[1,l.length];return{input_values:new o.Tensor("float32",l,c),attention_mask:new o.Tensor("int64",new BigInt64Array(l.length).fill(1n),c)}}}}),"./src/models/wav2vec2/processing_wav2vec2.js":((e,r,t)=>{t.r(r),t.d(r,{Wav2Vec2Processor:()=>n});var s=t("./src/tokenizers.js"),o=t("./src/models/auto/feature_extraction_auto.js"),a=t("./src/base/processing_utils.js");class n extends a.Processor{static tokenizer_class=s.AutoTokenizer;static feature_extractor_class=o.AutoFeatureExtractor;async _call(l){return await this.feature_extractor(l)}}}),"./src/models/wav2vec2_with_lm/processing_wav2vec2_with_lm.js":((e,r,t)=>{t.r(r),t.d(r,{Wav2Vec2ProcessorWithLM:()=>n});var s=t("./src/tokenizers.js"),o=t("./src/models/auto/feature_extraction_auto.js"),a=t("./src/base/processing_utils.js");class n extends a.Processor{static tokenizer_class=s.AutoTokenizer;static feature_extractor_class=o.AutoFeatureExtractor;async _call(l){return await this.feature_extractor(l)}}}),"./src/models/wespeaker/feature_extraction_wespeaker.js":((e,r,t)=>{t.r(r),t.d(r,{WeSpeakerFeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js");class n extends s.FeatureExtractor{constructor(l){super(l);let c=this.config.sampling_rate,_=(0,a.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(c/2),c,null,"kaldi",!0);this.mel_filters=_,this.window=(0,a.window_function)(400,"hamming",{periodic:!1}),this.min_num_frames=this.config.min_num_frames}async _extract_fbank_features(l){return l=l.map(c=>c*32768),(0,a.spectrogram)(l,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,transpose:!0,min_num_frames:this.min_num_frames})}async _call(l){(0,s.validate_audio_inputs)(l,"WeSpeakerFeatureExtractor");let c=(await this._extract_fbank_features(l)).unsqueeze_(0);if(this.config.fbank_centering_span===null){let _=c.mean(1).data,u=c.data,[d,g,h]=c.dims;for(let x=0;x<d;++x){let F=x*g*h,v=x*h;for(let b=0;b<g;++b){let C=F+b*h;for(let y=0;y<h;++y)u[C+y]-=_[v+y]}}}return{input_features:c}}}}),"./src/models/whisper/common_whisper.js":((e,r,t)=>{t.r(r),t.d(r,{WHISPER_LANGUAGE_MAPPING:()=>o,WHISPER_TO_LANGUAGE_CODE_MAPPING:()=>a,whisper_language_to_code:()=>n});let s=[["en","english"],["zh","chinese"],["de","german"],["es","spanish"],["ru","russian"],["ko","korean"],["fr","french"],["ja","japanese"],["pt","portuguese"],["tr","turkish"],["pl","polish"],["ca","catalan"],["nl","dutch"],["ar","arabic"],["sv","swedish"],["it","italian"],["id","indonesian"],["hi","hindi"],["fi","finnish"],["vi","vietnamese"],["he","hebrew"],["uk","ukrainian"],["el","greek"],["ms","malay"],["cs","czech"],["ro","romanian"],["da","danish"],["hu","hungarian"],["ta","tamil"],["no","norwegian"],["th","thai"],["ur","urdu"],["hr","croatian"],["bg","bulgarian"],["lt","lithuanian"],["la","latin"],["mi","maori"],["ml","malayalam"],["cy","welsh"],["sk","slovak"],["te","telugu"],["fa","persian"],["lv","latvian"],["bn","bengali"],["sr","serbian"],["az","azerbaijani"],["sl","slovenian"],["kn","kannada"],["et","estonian"],["mk","macedonian"],["br","breton"],["eu","basque"],["is","icelandic"],["hy","armenian"],["ne","nepali"],["mn","mongolian"],["bs","bosnian"],["kk","kazakh"],["sq","albanian"],["sw","swahili"],["gl","galician"],["mr","marathi"],["pa","punjabi"],["si","sinhala"],["km","khmer"],["sn","shona"],["yo","yoruba"],["so","somali"],["af","afrikaans"],["oc","occitan"],["ka","georgian"],["be","belarusian"],["tg","tajik"],["sd","sindhi"],["gu","gujarati"],["am","amharic"],["yi","yiddish"],["lo","lao"],["uz","uzbek"],["fo","faroese"],["ht","haitian creole"],["ps","pashto"],["tk","turkmen"],["nn","nynorsk"],["mt","maltese"],["sa","sanskrit"],["lb","luxembourgish"],["my","myanmar"],["bo","tibetan"],["tl","tagalog"],["mg","malagasy"],["as","assamese"],["tt","tatar"],["haw","hawaiian"],["ln","lingala"],["ha","hausa"],["ba","bashkir"],["jw","javanese"],["su","sundanese"]],o=new Map(s),a=new Map([...s.map(([i,l])=>[l,i]),["burmese","my"],["valencian","ca"],["flemish","nl"],["haitian","ht"],["letzeburgesch","lb"],["pushto","ps"],["panjabi","pa"],["moldavian","ro"],["moldovan","ro"],["sinhalese","si"],["castilian","es"]]);function n(i){i=i.toLowerCase();let l=a.get(i);if(l===void 0){let c=i.match(/^<\|([a-z]{2})\|>$/);if(c&&(i=c[1]),o.has(i))l=i;else{let u=i.length===2?o.keys():o.values();throw new Error(`Language "${i}" is not supported. Must be one of: ${JSON.stringify(Array.from(u))}`)}}return l}}),"./src/models/whisper/feature_extraction_whisper.js":((e,r,t)=>{t.r(r),t.d(r,{WhisperFeatureExtractor:()=>i});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js"),n=t("./src/utils/maths.js");class i extends s.FeatureExtractor{constructor(c){super(c),this.config.mel_filters??=(0,a.mel_filter_bank)(Math.floor(1+this.config.n_fft/2),this.config.feature_size,0,8e3,this.config.sampling_rate,"slaney","slaney"),this.window=(0,a.window_function)(this.config.n_fft,"hann")}async _extract_fbank_features(c){let _=await(0,a.spectrogram)(c,this.window,this.config.n_fft,this.config.hop_length,{power:2,mel_filters:this.config.mel_filters,log_mel:"log10",max_num_frames:Math.min(Math.floor(c.length/this.config.hop_length),this.config.nb_max_frames)}),u=_.data,d=(0,n.max)(u)[0];for(let g=0;g<u.length;++g)u[g]=(Math.max(u[g],d-8)+4)/4;return _}async _call(c,{max_length:_=null}={}){(0,s.validate_audio_inputs)(c,"WhisperFeatureExtractor");let u,d=_??this.config.n_samples;return c.length>d?(c.length>this.config.n_samples&&console.warn("Attempting to extract features for audio longer than 30 seconds. If using a pipeline to extract transcript from a long audio clip, remember to specify `chunk_length_s` and/or `stride_length_s`."),u=c.slice(0,d)):(u=new Float32Array(d),u.set(c)),{input_features:(await this._extract_fbank_features(u)).unsqueeze_(0)}}}}),"./src/models/whisper/generation_whisper.js":((e,r,t)=>{t.r(r),t.d(r,{WhisperGenerationConfig:()=>o});var s=t("./src/generation/configuration_utils.js");class o extends s.GenerationConfig{return_timestamps=null;return_token_timestamps=null;num_frames=null;alignment_heads=null;task=null;language=null;no_timestamps_token_id=null;prompt_ids=null;is_multilingual=null;lang_to_id=null;task_to_id=null;max_initial_timestamp_index=1}}),"./src/models/whisper/processing_whisper.js":((e,r,t)=>{t.r(r),t.d(r,{WhisperProcessor:()=>n});var s=t("./src/models/auto/feature_extraction_auto.js"),o=t("./src/tokenizers.js"),a=t("./src/base/processing_utils.js");class n extends a.Processor{static tokenizer_class=o.AutoTokenizer;static feature_extractor_class=s.AutoFeatureExtractor;async _call(l){return await this.feature_extractor(l)}}}),"./src/models/yolos/image_processing_yolos.js":((e,r,t)=>{t.r(r),t.d(r,{YolosFeatureExtractor:()=>a,YolosImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{post_process_object_detection(...i){return(0,s.post_process_object_detection)(...i)}}class a extends o{}}),"./src/ops/registry.js":((e,r,t)=>{t.r(r),t.d(r,{TensorOpRegistry:()=>n});var s=t("./src/backends/onnx.js"),o=t("./src/utils/tensor.js");let a=async(i,l,c)=>{let _=await(0,s.createInferenceSession)(new Uint8Array(i),l);return(async u=>{let d=(0,s.isONNXProxy)(),g=Object.fromEntries(Object.entries(u).map(([x,F])=>[x,(d?F.clone():F).ort_tensor])),h=await(0,s.runInferenceSession)(_,g);return Array.isArray(c)?c.map(x=>new o.Tensor(h[x])):new o.Tensor(h[c])})};class n{static session_options={};static get nearest_interpolate_4d(){return this._nearest_interpolate_4d||(this._nearest_interpolate_4d=a([8,10,18,0,58,129,1,10,41,10,1,120,10,0,10,0,10,1,115,18,1,121,34,6,82,101,115,105,122,101,42,18,10,4,109,111,100,101,34,7,110,101,97,114,101,115,116,160,1,3,18,1,114,90,31,10,1,120,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,90,15,10,1,115,18,10,10,8,8,7,18,4,10,2,8,4,98,31,10,1,121,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,66,2,16,21],this.session_options,"y")),this._nearest_interpolate_4d}static get bilinear_interpolate_4d(){return this._bilinear_interpolate_4d||(this._bilinear_interpolate_4d=a([8,9,18,0,58,128,1,10,40,10,1,120,10,0,10,0,10,1,115,18,1,121,34,6,82,101,115,105,122,101,42,17,10,4,109,111,100,101,34,6,108,105,110,101,97,114,160,1,3,18,1,114,90,31,10,1,120,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,90,15,10,1,115,18,10,10,8,8,7,18,4,10,2,8,4,98,31,10,1,121,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,66,2,16,20],this.session_options,"y")),this._bilinear_interpolate_4d}static get bicubic_interpolate_4d(){return this._bicubic_interpolate_4d||(this._bicubic_interpolate_4d=a([8,9,18,0,58,127,10,39,10,1,120,10,0,10,0,10,1,115,18,1,121,34,6,82,101,115,105,122,101,42,16,10,4,109,111,100,101,34,5,99,117,98,105,99,160,1,3,18,1,114,90,31,10,1,120,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,90,15,10,1,115,18,10,10,8,8,7,18,4,10,2,8,4,98,31,10,1,121,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,66,2,16,20],this.session_options,"y")),this._bicubic_interpolate_4d}static get matmul(){return this._matmul||(this._matmul=a([8,9,18,0,58,55,10,17,10,1,97,10,1,98,18,1,99,34,6,77,97,116,77,117,108,18,1,114,90,9,10,1,97,18,4,10,2,8,1,90,9,10,1,98,18,4,10,2,8,1,98,9,10,1,99,18,4,10,2,8,1,66,2,16,20],this.session_options,"c")),this._matmul}static get stft(){return this._stft||(this._stft=a([8,7,18,0,58,148,1,10,38,10,1,115,10,1,106,10,1,119,10,1,108,18,1,111,34,4,83,84,70,84,42,15,10,8,111,110,101,115,105,100,101,100,24,1,160,1,2,18,1,115,90,26,10,1,115,18,21,10,19,8,1,18,15,10,3,18,1,98,10,3,18,1,115,10,3,18,1,99,90,11,10,1,106,18,6,10,4,8,7,18,0,90,16,10,1,119,18,11,10,9,8,1,18,5,10,3,18,1,119,90,11,10,1,108,18,6,10,4,8,7,18,0,98,31,10,1,111,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,102,10,3,18,1,100,10,3,18,1,99,66,2,16,17],this.session_options,"o")),this._stft}static get rfft(){return this._rfft||(this._rfft=a([8,9,18,0,58,97,10,33,10,1,120,10,0,10,1,97,18,1,121,34,3,68,70,84,42,15,10,8,111,110,101,115,105,100,101,100,24,1,160,1,2,18,1,100,90,21,10,1,120,18,16,10,14,8,1,18,10,10,3,18,1,115,10,3,18,1,99,90,11,10,1,97,18,6,10,4,8,7,18,0,98,21,10,1,121,18,16,10,14,8,1,18,10,10,3,18,1,115,10,3,18,1,99,66,2,16,20],this.session_options,"y")),this._rfft}static get top_k(){return this._top_k||(this._top_k=a([8,10,18,0,58,73,10,18,10,1,120,10,1,107,18,1,118,18,1,105,34,4,84,111,112,75,18,1,116,90,9,10,1,120,18,4,10,2,8,1,90,15,10,1,107,18,10,10,8,8,7,18,4,10,2,8,1,98,9,10,1,118,18,4,10,2,8,1,98,9,10,1,105,18,4,10,2,8,7,66,2,16,21],this.session_options,["v","i"])),this._top_k}static get slice(){return this._slice||(this._slice=a([8,7,18,0,58,96,10,25,10,1,120,10,1,115,10,1,101,10,1,97,10,1,116,18,1,121,34,5,83,108,105,99,101,18,1,114,90,9,10,1,120,18,4,10,2,8,1,90,9,10,1,115,18,4,10,2,8,7,90,9,10,1,101,18,4,10,2,8,7,90,9,10,1,97,18,4,10,2,8,7,90,9,10,1,116,18,4,10,2,8,7,98,9,10,1,121,18,4,10,2,8,1,66,2,16,13],this.session_options,"y")),this._slice}}}),"./src/pipelines.js":((e,r,t)=>{t.r(r),t.d(r,{AudioClassificationPipeline:()=>z,AutomaticSpeechRecognitionPipeline:()=>J,BackgroundRemovalPipeline:()=>ne,DepthEstimationPipeline:()=>ue,DocumentQuestionAnsweringPipeline:()=>R,FeatureExtractionPipeline:()=>U,FillMaskPipeline:()=>y,ImageClassificationPipeline:()=>re,ImageFeatureExtractionPipeline:()=>W,ImageSegmentationPipeline:()=>oe,ImageToImagePipeline:()=>ee,ImageToTextPipeline:()=>q,ObjectDetectionPipeline:()=>Y,Pipeline:()=>F,QuestionAnsweringPipeline:()=>C,SummarizationPipeline:()=>I,Text2TextGenerationPipeline:()=>P,TextClassificationPipeline:()=>v,TextGenerationPipeline:()=>D,TextToAudioPipeline:()=>L,TokenClassificationPipeline:()=>b,TranslationPipeline:()=>f,ZeroShotAudioClassificationPipeline:()=>X,ZeroShotClassificationPipeline:()=>O,ZeroShotImageClassificationPipeline:()=>ye,ZeroShotObjectDetectionPipeline:()=>H,pipeline:()=>Le});var s=t("./src/tokenizers.js"),o=t("./src/models.js"),a=t("./src/models/auto/processing_auto.js"),n=t("./src/base/processing_utils.js"),i=t("./src/utils/generic.js"),l=t("./src/utils/core.js"),c=t("./src/utils/maths.js"),_=t("./src/utils/audio.js"),u=t("./src/utils/tensor.js"),d=t("./src/utils/image.js");async function g(we){return Array.isArray(we)||(we=[we]),await Promise.all(we.map(A=>d.RawImage.read(A)))}async function h(we,A){return Array.isArray(we)||(we=[we]),await Promise.all(we.map(le=>typeof le=="string"||le instanceof URL?(0,_.read_audio)(le,A):le instanceof Float64Array?new Float32Array(le):le))}function x(we,A){A&&(we=we.map(ve=>ve|0));let[le,ge,be,Ae]=we;return{xmin:le,ymin:ge,xmax:be,ymax:Ae}}class F extends i.Callable{constructor({task:A,model:le,tokenizer:ge=null,processor:be=null}){super(),this.task=A,this.model=le,this.tokenizer=ge,this.processor=be}async dispose(){await this.model.dispose()}}class v extends F{constructor(A){super(A)}async _call(A,{top_k:le=1}={}){let ge=this.tokenizer(A,{padding:!0,truncation:!0}),be=await this.model(ge),Ae=this.model.config.problem_type==="multi_label_classification"?Pe=>Pe.sigmoid():Pe=>new u.Tensor("float32",(0,c.softmax)(Pe.data),Pe.dims),ve=this.model.config.id2label,pe=[];for(let Pe of be.logits){let fe=Ae(Pe),Te=await(0,u.topk)(fe,le),We=Te[0].tolist(),Re=Te[1].tolist().map((Ne,ot)=>({label:ve?ve[Ne]:`LABEL_${Ne}`,score:We[ot]}));le===1?pe.push(...Re):pe.push(Re)}return Array.isArray(A)||le===1?pe:pe[0]}}class b extends F{constructor(A){super(A)}async _call(A,{ignore_labels:le=["O"]}={}){let ge=Array.isArray(A),be=this.tokenizer(ge?A:[A],{padding:!0,truncation:!0}),ve=(await this.model(be)).logits,pe=this.model.config.id2label,Pe=[];for(let fe=0;fe<ve.dims[0];++fe){let Te=be.input_ids[fe],We=ve[fe],$e=[];for(let Re=0;Re<We.dims[0];++Re){let Ne=We[Re],ot=(0,c.max)(Ne.data)[1],De=pe?pe[ot]:`LABEL_${ot}`;if(le.includes(De))continue;let Qe=this.tokenizer.decode([Te[Re].item()],{skip_special_tokens:!0});if(Qe==="")continue;let je=(0,c.softmax)(Ne.data);$e.push({entity:De,score:je[ot],index:Re,word:Qe})}Pe.push($e)}return ge?Pe:Pe[0]}}class C extends F{constructor(A){super(A)}async _call(A,le,{top_k:ge=1}={}){let be=this.tokenizer(A,{text_pair:le,padding:!0,truncation:!0}),{start_logits:Ae,end_logits:ve}=await this.model(be),pe=be.input_ids.tolist(),Pe=be.attention_mask.tolist(),fe=this.tokenizer.all_special_ids,Te=[];for(let We=0;We<Ae.dims[0];++We){let $e=pe[We],Re=$e.findIndex(Ke=>Ke==this.tokenizer.sep_token_id),Ne=Pe[We].map((Ke,bt)=>Ke==1&&(bt===0||bt>Re&&fe.findIndex(At=>At==$e[bt])===-1)),ot=Ae[We].tolist(),De=ve[We].tolist();for(let Ke=1;Ke<ot.length;++Ke)(Pe[We]==0||Ke<=Re||fe.findIndex(bt=>bt==$e[Ke])!==-1)&&(ot[Ke]=-1/0,De[Ke]=-1/0);let Qe=(0,c.softmax)(ot).map((Ke,bt)=>[Ke,bt]),je=(0,c.softmax)(De).map((Ke,bt)=>[Ke,bt]);Qe[0][0]=0,je[0][0]=0;let pt=(0,l.product)(Qe,je).filter(Ke=>Ke[0][1]<=Ke[1][1]).map(Ke=>[Ke[0][1],Ke[1][1],Ke[0][0]*Ke[1][0]]).sort((Ke,bt)=>bt[2]-Ke[2]);for(let Ke=0;Ke<Math.min(pt.length,ge);++Ke){let[bt,At,Lt]=pt[Ke],fr=$e.slice(bt,At+1),zt=this.tokenizer.decode(fr,{skip_special_tokens:!0});Te.push({answer:zt,score:Lt})}}return ge===1?Te[0]:Te}}class y extends F{constructor(A){super(A)}async _call(A,{top_k:le=5}={}){let ge=this.tokenizer(A,{padding:!0,truncation:!0}),{logits:be}=await this.model(ge),Ae=[],ve=ge.input_ids.tolist();for(let pe=0;pe<ve.length;++pe){let Pe=ve[pe],fe=Pe.findIndex(Ne=>Ne==this.tokenizer.mask_token_id);if(fe===-1)throw Error(`Mask token (${this.tokenizer.mask_token}) not found in text.`);let Te=be[pe][fe],We=await(0,u.topk)(new u.Tensor("float32",(0,c.softmax)(Te.data),Te.dims),le),$e=We[0].tolist(),Re=We[1].tolist();Ae.push(Re.map((Ne,ot)=>{let De=Pe.slice();return De[fe]=Ne,{score:$e[ot],token:Number(Ne),token_str:this.tokenizer.decode([Ne]),sequence:this.tokenizer.decode(De,{skip_special_tokens:!0})}}))}return Array.isArray(A)?Ae:Ae[0]}}class P extends F{_key="generated_text";constructor(A){super(A)}async _call(A,le={}){Array.isArray(A)||(A=[A]),this.model.config.prefix&&(A=A.map(Pe=>this.model.config.prefix+Pe));let ge=this.model.config.task_specific_params;ge&&ge[this.task]&&ge[this.task].prefix&&(A=A.map(Pe=>ge[this.task].prefix+Pe));let be=this.tokenizer,Ae={padding:!0,truncation:!0},ve;this instanceof f&&"_build_translation_inputs"in be?ve=be._build_translation_inputs(A,Ae,le):ve=be(A,Ae);let pe=await this.model.generate({...ve,...le});return be.batch_decode(pe,{skip_special_tokens:!0}).map(Pe=>({[this._key]:Pe}))}}class I extends P{_key="summary_text";constructor(A){super(A)}}class f extends P{_key="translation_text";constructor(A){super(A)}}function E(we){return Array.isArray(we)&&we.every(A=>"role"in A&&"content"in A)}class D extends F{constructor(A){super(A)}async _call(A,le={}){let ge=!1,be=!1,Ae=le.add_special_tokens??(this.tokenizer.add_bos_token||this.tokenizer.add_eos_token)??!1,ve;if(typeof A=="string")ve=A=[A];else if(Array.isArray(A)&&A.every(Re=>typeof Re=="string"))ge=!0,ve=A;else{if(E(A))A=[A];else if(Array.isArray(A)&&A.every(E))ge=!0;else throw new Error("Input must be a string, an array of strings, a Chat, or an array of Chats");be=!0,ve=A.map(Re=>this.tokenizer.apply_chat_template(Re,{tokenize:!1,add_generation_prompt:!0})),Ae=!1}let pe=be?!1:le.return_full_text??!0;this.tokenizer.padding_side="left";let Pe=this.tokenizer(ve,{add_special_tokens:Ae,padding:!0,truncation:!0}),fe=await this.model.generate({...Pe,...le}),Te=this.tokenizer.batch_decode(fe,{skip_special_tokens:!0}),We;!pe&&Pe.input_ids.dims.at(-1)>0&&(We=this.tokenizer.batch_decode(Pe.input_ids,{skip_special_tokens:!0}).map(Re=>Re.length));let $e=Array.from({length:A.length},Re=>[]);for(let Re=0;Re<Te.length;++Re){let Ne=Math.floor(Re/fe.dims[0]*A.length);We&&(Te[Re]=Te[Re].slice(We[Ne])),$e[Ne].push({generated_text:be?[...A[Ne],{role:"assistant",content:Te[Re]}]:Te[Re]})}return!ge&&$e.length===1?$e[0]:$e}}class O extends F{constructor(A){super(A),this.label2id=Object.fromEntries(Object.entries(this.model.config.label2id).map(([le,ge])=>[le.toLowerCase(),ge])),this.entailment_id=this.label2id.entailment,this.entailment_id===void 0&&(console.warn("Could not find 'entailment' in label2id mapping. Using 2 as entailment_id."),this.entailment_id=2),this.contradiction_id=this.label2id.contradiction??this.label2id.not_entailment,this.contradiction_id===void 0&&(console.warn("Could not find 'contradiction' in label2id mapping. Using 0 as contradiction_id."),this.contradiction_id=0)}async _call(A,le,{hypothesis_template:ge="This example is {}.",multi_label:be=!1}={}){let Ae=Array.isArray(A);Ae||(A=[A]),Array.isArray(le)||(le=[le]);let ve=le.map(fe=>ge.replace("{}",fe)),pe=be||le.length===1,Pe=[];for(let fe of A){let Te=[];for(let Re of ve){let Ne=this.tokenizer(fe,{text_pair:Re,padding:!0,truncation:!0}),ot=await this.model(Ne);pe?Te.push([ot.logits.data[this.contradiction_id],ot.logits.data[this.entailment_id]]):Te.push(ot.logits.data[this.entailment_id])}let $e=(pe?Te.map(Re=>(0,c.softmax)(Re)[1]):(0,c.softmax)(Te)).map((Re,Ne)=>[Re,Ne]).sort((Re,Ne)=>Ne[0]-Re[0]);Pe.push({sequence:fe,labels:$e.map(Re=>le[Re[1]]),scores:$e.map(Re=>Re[0])})}return Ae?Pe:Pe[0]}}class U extends F{constructor(A){super(A)}async _call(A,{pooling:le="none",normalize:ge=!1,quantize:be=!1,precision:Ae="binary"}={}){let ve=this.tokenizer(A,{padding:!0,truncation:!0}),pe=await this.model(ve),Pe=pe.last_hidden_state??pe.logits??pe.token_embeddings;switch(le){case"none":break;case"mean":Pe=(0,u.mean_pooling)(Pe,ve.attention_mask);break;case"first_token":case"cls":Pe=Pe.slice(null,0);break;case"last_token":case"eos":Pe=Pe.slice(null,-1);break;default:throw Error(`Pooling method '${le}' not supported.`)}return ge&&(Pe=Pe.normalize(2,-1)),be&&(Pe=(0,u.quantize_embeddings)(Pe,Ae)),Pe}}class W extends F{constructor(A){super(A)}async _call(A,{pool:le=null}={}){let ge=await g(A),{pixel_values:be}=await this.processor(ge),Ae=await this.model({pixel_values:be}),ve;if(le){if(!("pooler_output"in Ae))throw Error("No pooled output was returned. Make sure the model has a 'pooler' layer when using the 'pool' option.");ve=Ae.pooler_output}else ve=Ae.last_hidden_state??Ae.logits??Ae.image_embeds;return ve}}class z extends F{constructor(A){super(A)}async _call(A,{top_k:le=5}={}){let ge=this.processor.feature_extractor.config.sampling_rate,be=await h(A,ge),Ae=this.model.config.id2label,ve=[];for(let pe of be){let Pe=await this.processor(pe),Te=(await this.model(Pe)).logits[0],We=await(0,u.topk)(new u.Tensor("float32",(0,c.softmax)(Te.data),Te.dims),le),$e=We[0].tolist(),Ne=We[1].tolist().map((ot,De)=>({label:Ae?Ae[ot]:`LABEL_${ot}`,score:$e[De]}));ve.push(Ne)}return Array.isArray(A)?ve:ve[0]}}class X extends F{constructor(A){super(A)}async _call(A,le,{hypothesis_template:ge="This is a sound of {}."}={}){let be=!Array.isArray(A);be&&(A=[A]);let Ae=le.map(Te=>ge.replace("{}",Te)),ve=this.tokenizer(Ae,{padding:!0,truncation:!0}),pe=this.processor.feature_extractor.config.sampling_rate,Pe=await h(A,pe),fe=[];for(let Te of Pe){let We=await this.processor(Te),$e=await this.model({...ve,...We}),Re=(0,c.softmax)($e.logits_per_audio.data);fe.push([...Re].map((Ne,ot)=>({score:Ne,label:le[ot]})))}return be?fe[0]:fe}}class J extends F{constructor(A){super(A)}async _call(A,le={}){switch(this.model.config.model_type){case"whisper":case"lite-whisper":return this._call_whisper(A,le);case"wav2vec2":case"wav2vec2-bert":case"unispeech":case"unispeech-sat":case"hubert":case"parakeet_ctc":return this._call_wav2vec2(A,le);case"moonshine":return this._call_moonshine(A,le);default:throw new Error(`AutomaticSpeechRecognitionPipeline does not support model type '${this.model.config.model_type}'.`)}}async _call_wav2vec2(A,le){le.language&&console.warn('`language` parameter is not yet supported for `wav2vec2` models, defaulting to "English".'),le.task&&console.warn('`task` parameter is not yet supported for `wav2vec2` models, defaulting to "transcribe".');let ge=!Array.isArray(A);ge&&(A=[A]);let be=this.processor.feature_extractor.config.sampling_rate,Ae=await h(A,be),ve=[];for(let pe of Ae){let Pe=await this.processor(pe),Te=(await this.model(Pe)).logits[0],We=[];for(let Re of Te)We.push((0,c.max)(Re.data)[1]);let $e=this.tokenizer.decode(We,{skip_special_tokens:!0}).trim();ve.push({text:$e})}return ge?ve[0]:ve}async _call_whisper(A,le){let ge=le.return_timestamps??!1,be=le.chunk_length_s??0,Ae=le.force_full_sequences??!1,ve=le.stride_length_s??null,pe={...le};ge==="word"&&(pe.return_token_timestamps=!0,pe.return_timestamps=!1);let Pe=!Array.isArray(A);Pe&&(A=[A]);let fe=this.processor.feature_extractor.config.chunk_length/this.model.config.max_source_positions,Te=this.processor.feature_extractor.config.hop_length,We=this.processor.feature_extractor.config.sampling_rate,$e=await h(A,We),Re=[];for(let Ne of $e){let ot=[];if(be>0){if(ve===null)ve=be/6;else if(be<=ve)throw Error("`chunk_length_s` must be larger than `stride_length_s`.");let je=We*be,pt=We*ve,Ke=je-2*pt,bt=0;for(;;){let At=bt+je,Lt=Ne.subarray(bt,At),fr=await this.processor(Lt),zt=bt===0,yr=At>=Ne.length;if(ot.push({stride:[Lt.length,zt?0:pt,yr?0:pt],input_features:fr.input_features,is_last:yr}),yr)break;bt+=Ke}}else ot=[{stride:[Ne.length,0,0],input_features:(await this.processor(Ne)).input_features,is_last:!0}];for(let je of ot){pe.num_frames=Math.floor(je.stride[0]/Te);let pt=await this.model.generate({inputs:je.input_features,...pe});ge==="word"?(je.tokens=pt.sequences.tolist()[0],je.token_timestamps=pt.token_timestamps.tolist()[0].map(Ke=>(0,c.round)(Ke,2))):je.tokens=pt[0].tolist(),je.stride=je.stride.map(Ke=>Ke/We)}let[De,Qe]=this.tokenizer._decode_asr(ot,{time_precision:fe,return_timestamps:ge,force_full_sequences:Ae});Re.push({text:De,...Qe})}return Pe?Re[0]:Re}async _call_moonshine(A,le){let ge=!Array.isArray(A);ge&&(A=[A]);let be=this.processor.feature_extractor.config.sampling_rate,Ae=await h(A,be),ve=[];for(let pe of Ae){let Pe=await this.processor(pe),fe=Math.floor(pe.length/be)*6,Te=await this.model.generate({max_new_tokens:fe,...le,...Pe}),We=this.processor.batch_decode(Te,{skip_special_tokens:!0})[0];ve.push({text:We})}return ge?ve[0]:ve}}class q extends F{constructor(A){super(A)}async _call(A,le={}){let ge=Array.isArray(A),be=await g(A),{pixel_values:Ae}=await this.processor(be),ve=[];for(let pe of Ae){pe.dims=[1,...pe.dims];let Pe=await this.model.generate({inputs:pe,...le}),fe=this.tokenizer.batch_decode(Pe,{skip_special_tokens:!0}).map(Te=>({generated_text:Te.trim()}));ve.push(fe)}return ge?ve:ve[0]}}class re extends F{constructor(A){super(A)}async _call(A,{top_k:le=5}={}){let ge=await g(A),{pixel_values:be}=await this.processor(ge),Ae=await this.model({pixel_values:be}),ve=this.model.config.id2label,pe=[];for(let Pe of Ae.logits){let fe=await(0,u.topk)(new u.Tensor("float32",(0,c.softmax)(Pe.data),Pe.dims),le),Te=fe[0].tolist(),$e=fe[1].tolist().map((Re,Ne)=>({label:ve?ve[Re]:`LABEL_${Re}`,score:Te[Ne]}));pe.push($e)}return Array.isArray(A)?pe:pe[0]}}class oe extends F{constructor(A){super(A),this.subtasks_mapping={panoptic:"post_process_panoptic_segmentation",instance:"post_process_instance_segmentation",semantic:"post_process_semantic_segmentation"}}async _call(A,{threshold:le=.5,mask_threshold:ge=.5,overlap_mask_area_threshold:be=.8,label_ids_to_fuse:Ae=null,target_sizes:ve=null,subtask:pe=null}={}){if(Array.isArray(A)&&A.length!==1)throw Error("Image segmentation pipeline currently only supports a batch size of 1.");let fe=await g(A),Te=fe.map(je=>[je.height,je.width]),We=await this.processor(fe),{inputNames:$e,outputNames:Re}=this.model.sessions.model;if(!$e.includes("pixel_values")){if($e.length!==1)throw Error(`Expected a single input name, but got ${$e.length} inputs: ${$e}.`);let je=$e[0];if(je in We)throw Error(`Input name ${je} already exists in the inputs.`);We[je]=We.pixel_values}let Ne=await this.model(We),ot=null;if(pe!==null)ot=this.subtasks_mapping[pe];else if(this.processor.image_processor){for(let[je,pt]of Object.entries(this.subtasks_mapping))if(pt in this.processor.image_processor){ot=this.processor.image_processor[pt].bind(this.processor.image_processor),pe=je;break}}let De=this.model.config.id2label,Qe=[];if(pe)if(pe==="panoptic"||pe==="instance"){let je=ot(Ne,le,ge,be,Ae,ve??Te)[0],pt=je.segmentation;for(let Ke of je.segments_info){let bt=new Uint8ClampedArray(pt.data.length);for(let Lt=0;Lt<pt.data.length;++Lt)pt.data[Lt]===Ke.id&&(bt[Lt]=255);let At=new d.RawImage(bt,pt.dims[1],pt.dims[0],1);Qe.push({score:Ke.score,label:De[Ke.label_id],mask:At})}}else if(pe==="semantic"){let{segmentation:je,labels:pt}=ot(Ne,ve??Te)[0];for(let Ke of pt){let bt=new Uint8ClampedArray(je.data.length);for(let Lt=0;Lt<je.data.length;++Lt)je.data[Lt]===Ke&&(bt[Lt]=255);let At=new d.RawImage(bt,je.dims[1],je.dims[0],1);Qe.push({score:null,label:De[Ke],mask:At})}}else throw Error(`Subtask ${pe} not supported.`);else{let pt=Ne[Re[0]];for(let Ke=0;Ke<Te.length;++Ke){let bt=Te[Ke],At=pt[Ke];At.data.some(fr=>fr<-1e-5||fr>1+1e-5)&&At.sigmoid_();let Lt=await d.RawImage.fromTensor(At.mul_(255).to("uint8")).resize(bt[1],bt[0]);Qe.push({label:null,score:null,mask:Lt})}}return Qe}}class ne extends oe{constructor(A){super(A)}async _call(A,le={}){if(Array.isArray(A)&&A.length!==1)throw Error("Background removal pipeline currently only supports a batch size of 1.");let be=await g(A),Ae=await super._call(A,le);return be.map((pe,Pe)=>{let fe=pe.clone();return fe.putAlpha(Ae[Pe].mask),fe})}}class ye extends F{constructor(A){super(A)}async _call(A,le,{hypothesis_template:ge="This is a photo of {}"}={}){let be=Array.isArray(A),Ae=await g(A),ve=le.map($e=>ge.replace("{}",$e)),pe=this.tokenizer(ve,{padding:this.model.config.model_type==="siglip"?"max_length":!0,truncation:!0}),{pixel_values:Pe}=await this.processor(Ae),fe=await this.model({...pe,pixel_values:Pe}),Te=this.model.config.model_type==="siglip"?$e=>$e.sigmoid().data:$e=>(0,c.softmax)($e.data),We=[];for(let $e of fe.logits_per_image){let Ne=[...Te($e)].map((ot,De)=>({score:ot,label:le[De]}));Ne.sort((ot,De)=>De.score-ot.score),We.push(Ne)}return be?We:We[0]}}class Y extends F{constructor(A){super(A)}async _call(A,{threshold:le=.9,percentage:ge=!1}={}){let be=Array.isArray(A);if(be&&A.length!==1)throw Error("Object detection pipeline currently only supports a batch size of 1.");let Ae=await g(A),ve=ge?null:Ae.map(Re=>[Re.height,Re.width]),{pixel_values:pe,pixel_mask:Pe}=await this.processor(Ae),fe=await this.model({pixel_values:pe,pixel_mask:Pe}),Te=this.processor.image_processor.post_process_object_detection(fe,le,ve),We=this.model.config.id2label,$e=Te.map(Re=>Re.boxes.map((Ne,ot)=>({score:Re.scores[ot],label:We[Re.classes[ot]],box:x(Ne,!ge)})));return be?$e:$e[0]}}class H extends F{constructor(A){super(A)}async _call(A,le,{threshold:ge=.1,top_k:be=null,percentage:Ae=!1}={}){let ve=Array.isArray(A),pe=await g(A),Pe=this.tokenizer(le,{padding:!0,truncation:!0}),fe=await this.processor(pe),Te=[];for(let We=0;We<pe.length;++We){let $e=pe[We],Re=Ae?null:[[$e.height,$e.width]],Ne=fe.pixel_values[We].unsqueeze_(0),ot=await this.model({...Pe,pixel_values:Ne}),De;if("post_process_grounded_object_detection"in this.processor){let Qe=this.processor.post_process_grounded_object_detection(ot,Pe.input_ids,{box_threshold:ge,text_threshold:ge,target_sizes:Re})[0];De=Qe.boxes.map((je,pt)=>({score:Qe.scores[pt],label:Qe.labels[pt],box:x(je,!Ae)}))}else{let Qe=this.processor.image_processor.post_process_object_detection(ot,ge,Re,!0)[0];De=Qe.boxes.map((je,pt)=>({score:Qe.scores[pt],label:le[Qe.classes[pt]],box:x(je,!Ae)}))}De.sort((Qe,je)=>je.score-Qe.score),be!==null&&(De=De.slice(0,be)),Te.push(De)}return ve?Te:Te[0]}}class R extends F{constructor(A){super(A)}async _call(A,le,ge={}){let be=(await g(A))[0],{pixel_values:Ae}=await this.processor(be),ve=`<s_docvqa><s_question>${le}</s_question><s_answer>`,pe=this.tokenizer(ve,{add_special_tokens:!1,padding:!0,truncation:!0}).input_ids,Pe=await this.model.generate({inputs:Ae,max_length:this.model.config.decoder.max_position_embeddings,decoder_input_ids:pe,...ge}),Te=this.tokenizer.batch_decode(Pe)[0].match(/<s_answer>(.*?)<\/s_answer>/),We=null;return Te&&Te.length>=2&&(We=Te[1].trim()),[{answer:We}]}}class L extends F{DEFAULT_VOCODER_ID="Xenova/speecht5_hifigan";constructor(A){super(A),this.vocoder=A.vocoder??null}async _prepare_speaker_embeddings(A){if((typeof A=="string"||A instanceof URL)&&(A=new Float32Array(await(await fetch(A)).arrayBuffer())),A instanceof Float32Array)A=new u.Tensor("float32",A,[A.length]);else if(!(A instanceof u.Tensor))throw new Error("Speaker embeddings must be a `Tensor`, `Float32Array`, `string`, or `URL`.");return A}async _call(A,{speaker_embeddings:le=null,num_inference_steps:ge,speed:be}={}){return this.processor?this._call_text_to_spectrogram(A,{speaker_embeddings:le}):this.model.config.model_type==="supertonic"?this._call_supertonic(A,{speaker_embeddings:le,num_inference_steps:ge,speed:be}):this._call_text_to_waveform(A)}async _call_supertonic(A,{speaker_embeddings:le,num_inference_steps:ge,speed:be}){if(!le)throw new Error("Speaker embeddings must be provided for Supertonic models.");le=await this._prepare_speaker_embeddings(le);let{sampling_rate:Ae,style_dim:ve}=this.model.config;le=le.view(1,-1,ve);let pe=this.tokenizer(A,{padding:!0,truncation:!0}),{waveform:Pe}=await this.model.generate_speech({...pe,style:le,num_inference_steps:ge,speed:be});return new _.RawAudio(Pe.data,Ae)}async _call_text_to_waveform(A){let le=this.tokenizer(A,{padding:!0,truncation:!0}),{waveform:ge}=await this.model(le),be=this.model.config.sampling_rate;return new _.RawAudio(ge.data,be)}async _call_text_to_spectrogram(A,{speaker_embeddings:le}){this.vocoder||(console.log("No vocoder specified, using default HifiGan vocoder."),this.vocoder=await o.AutoModel.from_pretrained(this.DEFAULT_VOCODER_ID,{dtype:"fp32"}));let{input_ids:ge}=this.tokenizer(A,{padding:!0,truncation:!0});le=await this._prepare_speaker_embeddings(le),le=le.view(1,-1);let{waveform:be}=await this.model.generate_speech(ge,le,{vocoder:this.vocoder}),Ae=this.processor.feature_extractor.config.sampling_rate;return new _.RawAudio(be.data,Ae)}}class ee extends F{constructor(A){super(A)}async _call(A){let le=await g(A),ge=await this.processor(le),be=await this.model(ge),Ae=[];for(let ve of be.reconstruction){let pe=ve.squeeze().clamp_(0,1).mul_(255).round_().to("uint8");Ae.push(d.RawImage.fromTensor(pe))}return Ae.length>1?Ae:Ae[0]}}class ue extends F{constructor(A){super(A)}async _call(A){let le=await g(A),ge=await this.processor(le),{predicted_depth:be}=await this.model(ge),Ae=[];for(let ve=0;ve<le.length;++ve){let pe=be[ve],[Pe,fe]=pe.dims.slice(-2),[Te,We]=le[ve].size,$e=(await(0,u.interpolate_4d)(pe.view(1,1,Pe,fe),{size:[We,Te],mode:"bilinear"})).view(We,Te),Re=$e.min().item(),Ne=$e.max().item(),ot=$e.sub(Re).div_(Ne-Re).mul_(255).to("uint8").unsqueeze(0),De=d.RawImage.fromTensor(ot);Ae.push({predicted_depth:$e,depth:De})}return Ae.length>1?Ae:Ae[0]}}let ke=Object.freeze({"text-classification":{tokenizer:s.AutoTokenizer,pipeline:v,model:o.AutoModelForSequenceClassification,default:{model:"Xenova/distilbert-base-uncased-finetuned-sst-2-english"},type:"text"},"token-classification":{tokenizer:s.AutoTokenizer,pipeline:b,model:o.AutoModelForTokenClassification,default:{model:"Xenova/bert-base-multilingual-cased-ner-hrl"},type:"text"},"question-answering":{tokenizer:s.AutoTokenizer,pipeline:C,model:o.AutoModelForQuestionAnswering,default:{model:"Xenova/distilbert-base-cased-distilled-squad"},type:"text"},"fill-mask":{tokenizer:s.AutoTokenizer,pipeline:y,model:o.AutoModelForMaskedLM,default:{model:"Xenova/bert-base-uncased"},type:"text"},summarization:{tokenizer:s.AutoTokenizer,pipeline:I,model:o.AutoModelForSeq2SeqLM,default:{model:"Xenova/distilbart-cnn-6-6"},type:"text"},translation:{tokenizer:s.AutoTokenizer,pipeline:f,model:o.AutoModelForSeq2SeqLM,default:{model:"Xenova/t5-small"},type:"text"},"text2text-generation":{tokenizer:s.AutoTokenizer,pipeline:P,model:o.AutoModelForSeq2SeqLM,default:{model:"Xenova/flan-t5-small"},type:"text"},"text-generation":{tokenizer:s.AutoTokenizer,pipeline:D,model:o.AutoModelForCausalLM,default:{model:"Xenova/gpt2"},type:"text"},"zero-shot-classification":{tokenizer:s.AutoTokenizer,pipeline:O,model:o.AutoModelForSequenceClassification,default:{model:"Xenova/distilbert-base-uncased-mnli"},type:"text"},"audio-classification":{pipeline:z,model:o.AutoModelForAudioClassification,processor:a.AutoProcessor,default:{model:"Xenova/wav2vec2-base-superb-ks"},type:"audio"},"zero-shot-audio-classification":{tokenizer:s.AutoTokenizer,pipeline:X,model:o.AutoModel,processor:a.AutoProcessor,default:{model:"Xenova/clap-htsat-unfused"},type:"multimodal"},"automatic-speech-recognition":{tokenizer:s.AutoTokenizer,pipeline:J,model:[o.AutoModelForSpeechSeq2Seq,o.AutoModelForCTC],processor:a.AutoProcessor,default:{model:"Xenova/whisper-tiny.en"},type:"multimodal"},"text-to-audio":{tokenizer:s.AutoTokenizer,pipeline:L,model:[o.AutoModelForTextToWaveform,o.AutoModelForTextToSpectrogram],processor:[a.AutoProcessor,null],default:{model:"Xenova/speecht5_tts"},type:"text"},"image-to-text":{tokenizer:s.AutoTokenizer,pipeline:q,model:o.AutoModelForVision2Seq,processor:a.AutoProcessor,default:{model:"Xenova/vit-gpt2-image-captioning"},type:"multimodal"},"image-classification":{pipeline:re,model:o.AutoModelForImageClassification,processor:a.AutoProcessor,default:{model:"Xenova/vit-base-patch16-224"},type:"multimodal"},"image-segmentation":{pipeline:oe,model:[o.AutoModelForImageSegmentation,o.AutoModelForSemanticSegmentation,o.AutoModelForUniversalSegmentation],processor:a.AutoProcessor,default:{model:"Xenova/detr-resnet-50-panoptic"},type:"multimodal"},"background-removal":{pipeline:ne,model:[o.AutoModelForImageSegmentation,o.AutoModelForSemanticSegmentation,o.AutoModelForUniversalSegmentation],processor:a.AutoProcessor,default:{model:"Xenova/modnet"},type:"image"},"zero-shot-image-classification":{tokenizer:s.AutoTokenizer,pipeline:ye,model:o.AutoModel,processor:a.AutoProcessor,default:{model:"Xenova/clip-vit-base-patch32"},type:"multimodal"},"object-detection":{pipeline:Y,model:o.AutoModelForObjectDetection,processor:a.AutoProcessor,default:{model:"Xenova/detr-resnet-50"},type:"multimodal"},"zero-shot-object-detection":{tokenizer:s.AutoTokenizer,pipeline:H,model:o.AutoModelForZeroShotObjectDetection,processor:a.AutoProcessor,default:{model:"Xenova/owlvit-base-patch32"},type:"multimodal"},"document-question-answering":{tokenizer:s.AutoTokenizer,pipeline:R,model:o.AutoModelForDocumentQuestionAnswering,processor:a.AutoProcessor,default:{model:"Xenova/donut-base-finetuned-docvqa"},type:"multimodal"},"image-to-image":{pipeline:ee,model:o.AutoModelForImageToImage,processor:a.AutoProcessor,default:{model:"Xenova/swin2SR-classical-sr-x2-64"},type:"image"},"depth-estimation":{pipeline:ue,model:o.AutoModelForDepthEstimation,processor:a.AutoProcessor,default:{model:"Xenova/dpt-large"},type:"image"},"feature-extraction":{tokenizer:s.AutoTokenizer,pipeline:U,model:o.AutoModel,default:{model:"Xenova/all-MiniLM-L6-v2"},type:"text"},"image-feature-extraction":{processor:a.AutoProcessor,pipeline:W,model:[o.AutoModelForImageFeatureExtraction,o.AutoModel],default:{model:"Xenova/vit-base-patch16-224-in21k"},type:"image"}}),Ie=Object.freeze({"sentiment-analysis":"text-classification",ner:"token-classification",asr:"automatic-speech-recognition","text-to-speech":"text-to-audio",embeddings:"feature-extraction"});async function Le(we,A=null,{progress_callback:le=null,config:ge=null,cache_dir:be=null,local_files_only:Ae=!1,revision:ve="main",device:pe=null,dtype:Pe=null,subfolder:fe="onnx",use_external_data_format:Te=null,model_file_name:We=null,session_options:$e={}}={}){we=Ie[we]??we;let Re=ke[we.split("_",1)[0]];if(!Re)throw Error(`Unsupported pipeline: ${we}. Must be one of [${Object.keys(ke)}]`);A||(A=Re.default.model,console.log(`No model specified. Using default model: "${A}".`));let Ne={progress_callback:le,config:ge,cache_dir:be,local_files_only:Ae,revision:ve,device:pe,dtype:Pe,subfolder:fe,use_external_data_format:Te,model_file_name:We,session_options:$e},ot=new Map([["tokenizer",Re.tokenizer],["model",Re.model],["processor",Re.processor]]),De=await rt(ot,A,Ne);De.task=we,(0,l.dispatchCallback)(le,{status:"ready",task:we,model:A});let Qe=Re.pipeline;return new Qe(De)}async function rt(we,A,le){let ge=Object.create(null),be=[];for(let[Ae,ve]of we.entries()){if(!ve)continue;let pe;Array.isArray(ve)?pe=new Promise(async(Pe,fe)=>{let Te;for(let We of ve){if(We===null){Pe(null);return}try{Pe(await We.from_pretrained(A,le));return}catch($e){if($e.message?.includes("Unsupported model type"))Te=$e;else if($e.message?.includes("Could not locate file"))Te=$e;else{fe($e);return}}}fe(Te)}):pe=ve.from_pretrained(A,le),ge[Ae]=pe,be.push(pe)}await Promise.all(be);for(let[Ae,ve]of Object.entries(ge))ge[Ae]=await ve;return ge}}),"./src/tokenizers.js":((e,r,t)=>{t.r(r),t.d(r,{AlbertTokenizer:()=>qt,AutoTokenizer:()=>Wo,BartTokenizer:()=>qe,BertTokenizer:()=>Cs,BlenderbotSmallTokenizer:()=>Ue,BlenderbotTokenizer:()=>ze,BloomTokenizer:()=>Nt,CLIPTokenizer:()=>As,CamembertTokenizer:()=>Z,CodeGenTokenizer:()=>Is,CodeLlamaTokenizer:()=>Or,CohereTokenizer:()=>Ds,ConvBertTokenizer:()=>Q,DebertaTokenizer:()=>St,DebertaV2Tokenizer:()=>Xr,DistilBertTokenizer:()=>K,ElectraTokenizer:()=>xe,EsmTokenizer:()=>gr,FalconTokenizer:()=>_s,GPT2Tokenizer:()=>ut,GPTNeoXTokenizer:()=>Fs,GemmaTokenizer:()=>as,Grok1Tokenizer:()=>Nr,HerbertTokenizer:()=>k,LlamaTokenizer:()=>ur,M2M100Tokenizer:()=>_r,MBart50Tokenizer:()=>tt,MBartTokenizer:()=>wt,MPNetTokenizer:()=>Lr,MarianTokenizer:()=>ns,MgpstrTokenizer:()=>Vs,MobileBertTokenizer:()=>Ss,NllbTokenizer:()=>ar,NougatTokenizer:()=>Ht,PreTrainedTokenizer:()=>ft,Qwen2Tokenizer:()=>Ns,RoFormerTokenizer:()=>N,RobertaTokenizer:()=>gt,SiglipTokenizer:()=>$s,SpeechT5Tokenizer:()=>at,SqueezeBertTokenizer:()=>Qr,T5Tokenizer:()=>et,TokenizerModel:()=>U,VitsTokenizer:()=>js,Wav2Vec2CTCTokenizer:()=>Wr,WhisperTokenizer:()=>ps,XLMRobertaTokenizer:()=>Cr,XLMTokenizer:()=>ce,is_chinese_char:()=>C});var s=t("./src/utils/generic.js"),o=t("./src/utils/core.js"),a=t("./src/utils/hub.js"),n=t("./src/utils/maths.js"),i=t("./src/utils/tensor.js"),l=t("./src/utils/data-structures.js"),c=t("./node_modules/@huggingface/jinja/dist/index.js"),_=t("./src/models/whisper/common_whisper.js");async function u(de,S){let G=await Promise.all([(0,a.getModelJSON)(de,"tokenizer.json",!0,S),(0,a.getModelJSON)(de,"tokenizer_config.json",!0,S)]);return S.legacy!==null&&(G[1].legacy=S.legacy),G}function d(de,S){let G=[],te=0;for(let se of de.matchAll(S)){let me=se[0];te<se.index&&G.push(de.slice(te,se.index)),me.length>0&&G.push(me),te=se.index+me.length}return te<de.length&&G.push(de.slice(te)),G}function g(de,S=!0){if(de.Regex!==void 0){let G=de.Regex.replace(/\\([#&~])/g,"$1");for(let[te,se]of D)G=G.replaceAll(te,se);return new RegExp(G,"gu")}else if(de.String!==void 0){let G=(0,o.escapeRegExp)(de.String);return new RegExp(S?G:`(${G})`,"gu")}else return console.warn("Unknown pattern type:",de),null}function h(de){return new Map(Object.entries(de))}function x(de){let S=de.dims;switch(S.length){case 1:return de.tolist();case 2:if(S[0]!==1)throw new Error("Unable to decode tensor with `batch size !== 1`. Use `tokenizer.batch_decode(...)` for batched inputs.");return de.tolist()[0];default:throw new Error(`Expected tensor to have 1-2 dimensions, got ${S.length}.`)}}function F(de){return de.replace(/ \./g,".").replace(/ \?/g,"?").replace(/ \!/g,"!").replace(/ ,/g,",").replace(/ \' /g,"'").replace(/ n\'t/g,"n't").replace(/ \'m/g,"'m").replace(/ \'s/g,"'s").replace(/ \'ve/g,"'ve").replace(/ \'re/g,"'re")}function v(de){return de.replace(/\p{M}/gu,"")}function b(de){return v(de.toLowerCase())}function C(de){return de>=19968&&de<=40959||de>=13312&&de<=19903||de>=131072&&de<=173791||de>=173824&&de<=177983||de>=177984&&de<=178207||de>=178208&&de<=183983||de>=63744&&de<=64255||de>=194560&&de<=195103}function y(de,S,G){let te=[],se=0;for(;se<de.length;){if(te.push(de[se]),(S.get(de[se])??G)!==G){++se;continue}for(;++se<de.length&&(S.get(de[se])??G)===G;)S.get(te.at(-1))!==G&&(te[te.length-1]+=de[se])}return te}function P(de){return de.match(/\S+/g)||[]}let I="\\p{P}\\u0021-\\u002F\\u003A-\\u0040\\u005B-\\u0060\\u007B-\\u007E",f=new RegExp(`^[${I}]+$`,"gu"),E=".,!?\u2026\u3002\uFF0C\u3001\u0964\u06D4\u060C",D=new Map([["(?i:'s|'t|'re|'ve|'m|'ll|'d)","(?:'([sS]|[tT]|[rR][eE]|[vV][eE]|[mM]|[lL][lL]|[dD]))"],["(?i:[sdmt]|ll|ve|re)","(?:[sS]|[dD]|[mM]|[tT]|[lL][lL]|[vV][eE]|[rR][eE])"],["[^\\r\\n\\p{L}\\p{N}]?+","[^\\r\\n\\p{L}\\p{N}]?"],["[^\\s\\p{L}\\p{N}]++","[^\\s\\p{L}\\p{N}]+"],[` ?[^(\\s|[${E}])]+`,` ?[^\\s${E}]+`]]);class O{constructor(S){this.content=S.content,this.id=S.id,this.single_word=S.single_word??!1,this.lstrip=S.lstrip??!1,this.rstrip=S.rstrip??!1,this.special=S.special??!1,this.normalized=S.normalized??null}}class U extends s.Callable{constructor(S){super(),this.config=S,this.vocab=[],this.tokens_to_ids=new Map,this.unk_token_id=void 0,this.unk_token=void 0,this.end_of_word_suffix=void 0,this.fuse_unk=this.config.fuse_unk??!1}static fromConfig(S,...G){switch(S.type){case"WordPiece":return new W(S);case"Unigram":return new z(S,...G);case"BPE":return new q(S);default:if(S.vocab)return Array.isArray(S.vocab)?new z(S,...G):Object.hasOwn(S,"continuing_subword_prefix")&&Object.hasOwn(S,"unk_token")?Object.hasOwn(S,"merges")?new q(S):new W(S):new re(S,...G);throw new Error(`Unknown TokenizerModel type: ${S.type}`)}}_call(S){return S=this.encode(S),this.fuse_unk&&(S=y(S,this.tokens_to_ids,this.unk_token_id)),S}encode(S){throw Error("encode should be implemented in subclass.")}convert_tokens_to_ids(S){return S.map(G=>this.tokens_to_ids.get(G)??this.unk_token_id)}convert_ids_to_tokens(S){return S.map(G=>this.vocab[G]??this.unk_token)}}class W extends U{constructor(S){super(S),this.tokens_to_ids=h(S.vocab),this.unk_token_id=this.tokens_to_ids.get(S.unk_token),this.unk_token=S.unk_token,this.max_input_chars_per_word=S.max_input_chars_per_word??100,this.vocab=new Array(this.tokens_to_ids.size);for(let[G,te]of this.tokens_to_ids)this.vocab[te]=G}encode(S){let G=[];for(let te of S){let se=[...te];if(se.length>this.max_input_chars_per_word){G.push(this.unk_token);continue}let me=!1,Ce=0,Ye=[];for(;Ce<se.length;){let Xe=se.length,Ze=null;for(;Ce<Xe;){let He=se.slice(Ce,Xe).join("");if(Ce>0&&(He=this.config.continuing_subword_prefix+He),this.tokens_to_ids.has(He)){Ze=He;break}--Xe}if(Ze===null){me=!0;break}Ye.push(Ze),Ce=Xe}me?G.push(this.unk_token):G.push(...Ye)}return G}}class z extends U{constructor(S,G){super(S);let te=S.vocab.length;this.vocab=new Array(te),this.scores=new Array(te);for(let se=0;se<te;++se)[this.vocab[se],this.scores[se]]=S.vocab[se];this.unk_token_id=S.unk_id,this.unk_token=this.vocab[S.unk_id],this.tokens_to_ids=new Map(this.vocab.map((se,me)=>[se,me])),this.bos_token=" ",this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=G.eos_token,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.unk_token=this.vocab[this.unk_token_id],this.minScore=(0,n.min)(this.scores)[0],this.unk_score=this.minScore-10,this.scores[this.unk_token_id]=this.unk_score,this.trie=new l.CharTrie,this.trie.extend(this.vocab),this.fuse_unk=!0}populateNodes(S){let G=S.chars,te=1,se=0;for(;se<G.length;){let me=!1,Ce=[],Ye=G.slice(se).join(""),Xe=this.trie.commonPrefixSearch(Ye);for(let Ze of Xe){Ce.push(Ze);let He=this.tokens_to_ids.get(Ze),It=this.scores[He],yt=(0,o.len)(Ze);S.insert(se,yt,It,He),!me&&yt===te&&(me=!0)}me||S.insert(se,te,this.unk_score,this.unk_token_id),se+=te}}tokenize(S){let G=new l.TokenLattice(S,this.bos_token_id,this.eos_token_id);return this.populateNodes(G),G.tokens()}encode(S){let G=[];for(let te of S){let se=this.tokenize(te);G.push(...se)}return G}}let X=(()=>{let de=[...Array.from({length:94},(se,me)=>me+33),...Array.from({length:12},(se,me)=>me+161),...Array.from({length:82},(se,me)=>me+174)],S=de.slice(),G=0;for(let se=0;se<256;++se)de.includes(se)||(de.push(se),S.push(256+G),G+=1);let te=S.map(se=>String.fromCharCode(se));return Object.fromEntries(de.map((se,me)=>[se,te[me]]))})(),J=(0,o.reverseDictionary)(X);class q extends U{constructor(S){super(S),this.tokens_to_ids=h(S.vocab),this.unk_token_id=this.tokens_to_ids.get(S.unk_token),this.unk_token=S.unk_token,this.vocab=new Array(this.tokens_to_ids.size);for(let[te,se]of this.tokens_to_ids)this.vocab[se]=te;let G=Array.isArray(S.merges[0]);this.merges=G?S.merges:S.merges.map(te=>te.split(" ",2)),this.bpe_ranks=new Map(this.merges.map((te,se)=>[JSON.stringify(te),se])),this.end_of_word_suffix=S.end_of_word_suffix,this.continuing_subword_suffix=S.continuing_subword_suffix??null,this.byte_fallback=this.config.byte_fallback??!1,this.byte_fallback&&(this.text_encoder=new TextEncoder),this.ignore_merges=this.config.ignore_merges??!1,this.max_length_to_cache=256,this.cache_capacity=1e4,this.cache=new l.LRUCache(this.cache_capacity)}clear_cache(){this.cache.clear()}bpe(S){if(S.length===0)return[];let G=this.cache.get(S);if(G!==void 0)return G;let te=Array.from(S);this.end_of_word_suffix&&(te[te.length-1]+=this.end_of_word_suffix);let se=[];if(te.length>1){let me=new l.PriorityQueue((Xe,Ze)=>Xe.score<Ze.score),Ce={token:te[0],bias:0,prev:null,next:null},Ye=Ce;for(let Xe=1;Xe<te.length;++Xe){let Ze={bias:Xe/te.length,token:te[Xe],prev:Ye,next:null};Ye.next=Ze,this._add_node(me,Ye),Ye=Ze}for(;!me.isEmpty();){let Xe=me.pop();if(Xe.deleted||!Xe.next||Xe.next.deleted)continue;if(Xe.deleted=!0,Xe.next.deleted=!0,Xe.prev){let He={...Xe.prev};Xe.prev.deleted=!0,Xe.prev=He,He.prev?He.prev.next=He:Ce=He}let Ze={token:Xe.token+Xe.next.token,bias:Xe.bias,prev:Xe.prev,next:Xe.next.next};Ze.prev?(Ze.prev.next=Ze,this._add_node(me,Ze.prev)):Ce=Ze,Ze.next&&(Ze.next.prev=Ze,this._add_node(me,Ze))}for(let Xe=Ce;Xe!==null;Xe=Xe.next)se.push(Xe.token)}else se=te;if(this.continuing_subword_suffix)for(let me=0;me<se.length-1;++me)se[me]+=this.continuing_subword_suffix;return S.length<this.max_length_to_cache&&this.cache.put(S,se),se}_add_node(S,G){let te=this.bpe_ranks.get(JSON.stringify([G.token,G.next.token]));te!==void 0&&(G.score=te+G.bias,S.push(G))}encode(S){let G=[];for(let te of S){if(this.ignore_merges&&this.tokens_to_ids.has(te)){G.push(te);continue}let se=this.bpe(te);for(let me of se)if(this.tokens_to_ids.has(me))G.push(me);else if(this.byte_fallback){let Ce=Array.from(this.text_encoder.encode(me)).map(Ye=>`<0x${Ye.toString(16).toUpperCase().padStart(2,"0")}>`);Ce.every(Ye=>this.tokens_to_ids.has(Ye))?G.push(...Ce):G.push(this.unk_token)}else G.push(this.unk_token)}return G}}class re extends U{constructor(S,G){super(S),this.tokens_to_ids=h(G.target_lang?S.vocab[G.target_lang]:S.vocab),this.bos_token=G.bos_token,this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=G.eos_token,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.pad_token=G.pad_token,this.pad_token_id=this.tokens_to_ids.get(this.pad_token),this.unk_token=G.unk_token,this.unk_token_id=this.tokens_to_ids.get(this.unk_token),this.vocab=new Array(this.tokens_to_ids.size);for(let[te,se]of this.tokens_to_ids)this.vocab[se]=te}encode(S){return S}}class oe extends s.Callable{constructor(S){super(),this.config=S}static fromConfig(S){if(S===null)return null;switch(S.type){case"BertNormalizer":return new rt(S);case"Precompiled":return new zt(S);case"Sequence":return new Le(S);case"Replace":return new ne(S);case"NFC":return new Y(S);case"NFD":return new H(S);case"NFKC":return new R(S);case"NFKD":return new L(S);case"Strip":return new ee(S);case"StripAccents":return new ue(S);case"Lowercase":return new ke(S);case"Prepend":return new Ie(S);default:throw new Error(`Unknown Normalizer type: ${S.type}`)}}normalize(S){throw Error("normalize should be implemented in subclass.")}_call(S){return this.normalize(S)}}class ne extends oe{normalize(S){let G=g(this.config.pattern);return G===null?S:S.replaceAll(G,this.config.content)}}class ye extends oe{form=void 0;normalize(S){return S=S.normalize(this.form),S}}class Y extends ye{form="NFC"}class H extends ye{form="NFD"}class R extends ye{form="NFKC"}class L extends ye{form="NFKD"}class ee extends oe{normalize(S){return this.config.strip_left&&this.config.strip_right?S=S.trim():(this.config.strip_left&&(S=S.trimStart()),this.config.strip_right&&(S=S.trimEnd())),S}}class ue extends oe{normalize(S){return S=v(S),S}}class ke extends oe{normalize(S){return S=S.toLowerCase(),S}}class Ie extends oe{normalize(S){return S=this.config.prepend+S,S}}class Le extends oe{constructor(S){super(S),this.normalizers=S.normalizers.map(G=>oe.fromConfig(G))}normalize(S){return this.normalizers.reduce((G,te)=>te.normalize(G),S)}}class rt extends oe{_tokenize_chinese_chars(S){let G=[];for(let te=0;te<S.length;++te){let se=S[te],me=se.charCodeAt(0);C(me)?(G.push(" "),G.push(se),G.push(" ")):G.push(se)}return G.join("")}stripAccents(S){return S.normalize("NFD").replace(/\p{Mn}/gu,"")}_is_control(S){switch(S){case" ":case`
2851
- `:case"\r":return!1;default:return/^\p{Cc}|\p{Cf}|\p{Co}|\p{Cs}$/u.test(S)}}_clean_text(S){let G=[];for(let te of S){let se=te.charCodeAt(0);se===0||se===65533||this._is_control(te)||(/^\s$/.test(te)?G.push(" "):G.push(te))}return G.join("")}normalize(S){return this.config.clean_text&&(S=this._clean_text(S)),this.config.handle_chinese_chars&&(S=this._tokenize_chinese_chars(S)),this.config.lowercase?(S=S.toLowerCase(),this.config.strip_accents!==!1&&(S=this.stripAccents(S))):this.config.strip_accents&&(S=this.stripAccents(S)),S}}class we extends s.Callable{static fromConfig(S){if(S===null)return null;switch(S.type){case"BertPreTokenizer":return new A(S);case"Sequence":return new yr(S);case"Whitespace":return new zs(S);case"WhitespaceSplit":return new Ys(S);case"Metaspace":return new Lt(S);case"ByteLevel":return new le(S);case"Split":return new ge(S);case"Punctuation":return new be(S);case"Digits":return new Ae(S);case"Replace":return new Zs(S);case"FixedLength":return new or(S);default:throw new Error(`Unknown PreTokenizer type: ${S.type}`)}}pre_tokenize_text(S,G){throw Error("pre_tokenize_text should be implemented in subclass.")}pre_tokenize(S,G){return(Array.isArray(S)?S.map(te=>this.pre_tokenize_text(te,G)):this.pre_tokenize_text(S,G)).flat()}_call(S,G){return this.pre_tokenize(S,G)}}class A extends we{constructor(S){super(),this.pattern=new RegExp(`[^\\s${I}]+|[${I}]`,"gu")}pre_tokenize_text(S,G){return S.trim().match(this.pattern)||[]}}class le extends we{constructor(S){super(),this.config=S,this.add_prefix_space=this.config.add_prefix_space,this.trim_offsets=this.config.trim_offsets,this.use_regex=this.config.use_regex??!0,this.pattern=/'s|'t|'re|'ve|'m|'ll|'d| ?\p{L}+| ?\p{N}+| ?[^\s\p{L}\p{N}]+|\s+(?!\S)|\s+/gu,this.byte_encoder=X,this.text_encoder=new TextEncoder}pre_tokenize_text(S,G){return this.add_prefix_space&&!S.startsWith(" ")&&(S=" "+S),(this.use_regex?S.match(this.pattern)||[]:[S]).map(se=>Array.from(this.text_encoder.encode(se),me=>this.byte_encoder[me]).join(""))}}class ge extends we{constructor(S){super(),this.config=S,this.pattern=g(this.config.pattern,this.config.invert)}pre_tokenize_text(S,G){return this.pattern===null?[]:this.config.invert?S.match(this.pattern)||[]:this.config.behavior?.toLowerCase()==="removed"?S.split(this.pattern).filter(te=>te):d(S,this.pattern)}}class be extends we{constructor(S){super(),this.config=S,this.pattern=new RegExp(`[^${I}]+|[${I}]+`,"gu")}pre_tokenize_text(S,G){return S.match(this.pattern)||[]}}class Ae extends we{constructor(S){super(),this.config=S;let G=`[^\\d]+|\\d${this.config.individual_digits?"":"+"}`;this.pattern=new RegExp(G,"gu")}pre_tokenize_text(S,G){return S.match(this.pattern)||[]}}class ve extends s.Callable{constructor(S){super(),this.config=S}static fromConfig(S){if(S===null)return null;switch(S.type){case"TemplateProcessing":return new fe(S);case"ByteLevel":return new Te(S);case"RobertaProcessing":return new Pe(S);case"BertProcessing":return new pe(S);case"Sequence":return new We(S);default:throw new Error(`Unknown PostProcessor type: ${S.type}`)}}post_process(S,...G){throw Error("post_process should be implemented in subclass.")}_call(S,...G){return this.post_process(S,...G)}}class pe extends ve{constructor(S){super(S),this.cls=S.cls[0],this.sep=S.sep[0]}post_process(S,G=null,{add_special_tokens:te=!0}={}){te&&(S=(0,o.mergeArrays)([this.cls],S,[this.sep]));let se=new Array(S.length).fill(0);if(G!==null){let me=te&&this instanceof Pe?[this.sep]:[],Ce=te?[this.sep]:[];S=(0,o.mergeArrays)(S,me,G,Ce),se=(0,o.mergeArrays)(se,new Array(G.length+me.length+Ce.length).fill(1))}return{tokens:S,token_type_ids:se}}}class Pe extends pe{}class fe extends ve{constructor(S){super(S),this.single=S.single,this.pair=S.pair}post_process(S,G=null,{add_special_tokens:te=!0}={}){let se=G===null?this.single:this.pair,me=[],Ce=[];for(let Ye of se)"SpecialToken"in Ye?te&&(me.push(Ye.SpecialToken.id),Ce.push(Ye.SpecialToken.type_id)):"Sequence"in Ye&&(Ye.Sequence.id==="A"?(me=(0,o.mergeArrays)(me,S),Ce=(0,o.mergeArrays)(Ce,new Array(S.length).fill(Ye.Sequence.type_id))):Ye.Sequence.id==="B"&&(me=(0,o.mergeArrays)(me,G),Ce=(0,o.mergeArrays)(Ce,new Array(G.length).fill(Ye.Sequence.type_id))));return{tokens:me,token_type_ids:Ce}}}class Te extends ve{post_process(S,G=null){return G&&(S=(0,o.mergeArrays)(S,G)),{tokens:S}}}class We extends ve{constructor(S){super(S),this.processors=S.processors.map(G=>ve.fromConfig(G))}post_process(S,G=null,te={}){let se;for(let me of this.processors)if(me instanceof Te)S=me.post_process(S).tokens,G&&(G=me.post_process(G).tokens);else{let Ce=me.post_process(S,G,te);S=Ce.tokens,se=Ce.token_type_ids}return{tokens:S,token_type_ids:se}}}class $e extends s.Callable{constructor(S){super(),this.config=S,this.added_tokens=[],this.end_of_word_suffix=null,this.trim_offsets=S.trim_offsets}static fromConfig(S){if(S===null)return null;switch(S.type){case"WordPiece":return new Qe(S);case"Metaspace":return new fr(S);case"ByteLevel":return new je(S);case"Replace":return new Re(S);case"ByteFallback":return new Ne(S);case"Fuse":return new ot(S);case"Strip":return new De(S);case"Sequence":return new Ke(S);case"CTC":return new pt(S);case"BPEDecoder":return new bt(S);default:throw new Error(`Unknown Decoder type: ${S.type}`)}}_call(S){return this.decode(S)}decode(S){return this.decode_chain(S).join("")}decode_chain(S){throw Error("`decode_chain` should be implemented in subclass.")}}class Re extends $e{decode_chain(S){let G=g(this.config.pattern);return G===null?S:S.map(te=>te.replaceAll(G,this.config.content))}}class Ne extends $e{constructor(S){super(S),this.text_decoder=new TextDecoder}decode_chain(S){let G=[],te=[];for(let se of S){let me=null;if(se.length===6&&se.startsWith("<0x")&&se.endsWith(">")){let Ce=parseInt(se.slice(3,5),16);isNaN(Ce)||(me=Ce)}if(me!==null)te.push(me);else{if(te.length>0){let Ce=this.text_decoder.decode(Uint8Array.from(te));G.push(Ce),te=[]}G.push(se)}}if(te.length>0){let se=this.text_decoder.decode(Uint8Array.from(te));G.push(se),te=[]}return G}}class ot extends $e{decode_chain(S){return[S.join("")]}}class De extends $e{constructor(S){super(S),this.content=this.config.content,this.start=this.config.start,this.stop=this.config.stop}decode_chain(S){return S.map(G=>{let te=0;for(let me=0;me<this.start&&G[me]===this.content;++me){te=me+1;continue}let se=G.length;for(let me=0;me<this.stop;++me){let Ce=G.length-me-1;if(G[Ce]===this.content){se=Ce;continue}else break}return G.slice(te,se)})}}class Qe extends $e{constructor(S){super(S),this.cleanup=S.cleanup}decode_chain(S){return S.map((G,te)=>(te!==0&&(G.startsWith(this.config.prefix)?G=G.replace(this.config.prefix,""):G=" "+G),this.cleanup&&(G=F(G)),G))}}class je extends $e{constructor(S){super(S),this.byte_decoder=J,this.text_decoder=new TextDecoder("utf-8",{fatal:!1,ignoreBOM:!0}),this.end_of_word_suffix=null}convert_tokens_to_string(S){let G=S.join(""),te=new Uint8Array([...G].map(me=>this.byte_decoder[me]));return this.text_decoder.decode(te)}decode_chain(S){let G=[],te=[];for(let se of S)this.added_tokens.find(me=>me.content===se)!==void 0?(te.length>0&&(G.push(this.convert_tokens_to_string(te)),te=[]),G.push(se)):te.push(se);return te.length>0&&G.push(this.convert_tokens_to_string(te)),G}}class pt extends $e{constructor(S){super(S),this.pad_token=this.config.pad_token,this.word_delimiter_token=this.config.word_delimiter_token,this.cleanup=this.config.cleanup}convert_tokens_to_string(S){if(S.length===0)return"";let G=[S[0]];for(let me=1;me<S.length;++me)S[me]!==G.at(-1)&&G.push(S[me]);let se=G.filter(me=>me!==this.pad_token).join("");return this.cleanup&&(se=F(se).replaceAll(this.word_delimiter_token," ").trim()),se}decode_chain(S){return[this.convert_tokens_to_string(S)]}}class Ke extends $e{constructor(S){super(S),this.decoders=S.decoders.map(G=>$e.fromConfig(G))}decode_chain(S){return this.decoders.reduce((G,te)=>te.decode_chain(G),S)}}class bt extends $e{constructor(S){super(S),this.suffix=this.config.suffix}decode_chain(S){return S.map((G,te)=>G.replaceAll(this.suffix,te===S.length-1?"":" "))}}class At extends $e{decode_chain(S){let G="";for(let te=1;te<S.length;te+=2)G+=S[te];return[G]}}class Lt extends we{constructor(S){super(),this.replacement=S.replacement,this.strRep=S.str_rep||this.replacement,this.prepend_scheme=S.prepend_scheme??"always"}pre_tokenize_text(S,{section_index:G=void 0}={}){let te=S.replaceAll(" ",this.strRep);return!te.startsWith(this.replacement)&&(this.prepend_scheme==="always"||this.prepend_scheme==="first"&&G===0)&&(te=this.strRep+te),[te]}}class fr extends $e{constructor(S){super(S),this.replacement=S.replacement}decode_chain(S){let G=[];for(let te=0;te<S.length;++te){let se=S[te].replaceAll(this.replacement," ");te==0&&se.startsWith(" ")&&(se=se.substring(1)),G.push(se)}return G}}class zt extends oe{constructor(S){super(S),this.charsmap=S.precompiled_charsmap}normalize(S){return S=S.replace(/[\u0001-\u0008\u000B\u000E-\u001F\u007F\u008F\u009F]/gm,""),S=S.replace(/[\u0009\u000A\u000C\u000D\u00A0\u1680\u2000-\u200F\u2028\u2029\u202F\u205F\u2581\u3000\uFEFF\uFFFD]/gm," "),S.includes("\uFF5E")?S=S.split("\uFF5E").map(te=>te.normalize("NFKC")).join("\uFF5E"):S=S.normalize("NFKC"),S}}class yr extends we{constructor(S){super(),this.tokenizers=S.pretokenizers.map(G=>we.fromConfig(G))}pre_tokenize_text(S,G){return this.tokenizers.reduce((te,se)=>se.pre_tokenize(te,G),[S])}}class zs extends we{constructor(S){super()}pre_tokenize_text(S,G){return S.match(/\w+|[^\w\s]+/g)||[]}}class Ys extends we{constructor(S){super()}pre_tokenize_text(S,G){return P(S)}}class Zs extends we{constructor(S){super(),this.config=S,this.pattern=g(this.config.pattern),this.content=this.config.content}pre_tokenize_text(S,G){return this.pattern===null?[S]:[S.replaceAll(this.pattern,this.config.content)]}}class or extends we{constructor(S){super(),this._length=S.length}pre_tokenize_text(S,G){let te=[];for(let se=0;se<S.length;se+=this._length)te.push(S.slice(se,se+this._length));return te}}let Dr=["bos_token","eos_token","unk_token","sep_token","pad_token","cls_token","mask_token"];function Yr(de,S,G,te){for(let se of Object.keys(de)){let me=S-de[se].length,Ce=G(se),Ye=new Array(me).fill(Ce);de[se]=te==="right"?(0,o.mergeArrays)(de[se],Ye):(0,o.mergeArrays)(Ye,de[se])}}function Rs(de,S){for(let G of Object.keys(de))de[G].length=S}class ft extends s.Callable{return_token_type_ids=!1;padding_side="right";constructor(S,G){super(),this.config=G,this.normalizer=oe.fromConfig(S.normalizer),this.pre_tokenizer=we.fromConfig(S.pre_tokenizer),this.model=U.fromConfig(S.model,G),this.post_processor=ve.fromConfig(S.post_processor),this.decoder=$e.fromConfig(S.decoder),this.special_tokens=[],this.all_special_ids=[],this.added_tokens=[];for(let te of S.added_tokens){let se=new O(te);this.added_tokens.push(se),this.model.tokens_to_ids.set(se.content,se.id),this.model.vocab[se.id]=se.content,se.special&&(this.special_tokens.push(se.content),this.all_special_ids.push(se.id))}if(this.additional_special_tokens=G.additional_special_tokens??[],this.special_tokens.push(...this.additional_special_tokens),this.special_tokens=[...new Set(this.special_tokens)],this.decoder&&(this.decoder.added_tokens=this.added_tokens,this.decoder.end_of_word_suffix=this.model.end_of_word_suffix),this.added_tokens_splitter=new l.DictionarySplitter(this.added_tokens.map(te=>te.content)),this.added_tokens_map=new Map(this.added_tokens.map(te=>[te.content,te])),this.mask_token=this.getToken("mask_token"),this.mask_token_id=this.model.tokens_to_ids.get(this.mask_token),this.pad_token=this.getToken("pad_token","eos_token"),this.pad_token_id=this.model.tokens_to_ids.get(this.pad_token),this.sep_token=this.getToken("sep_token"),this.sep_token_id=this.model.tokens_to_ids.get(this.sep_token),this.unk_token=this.getToken("unk_token"),this.unk_token_id=this.model.tokens_to_ids.get(this.unk_token),this.bos_token=this.getToken("bos_token"),this.bos_token_id=this.model.tokens_to_ids.get(this.bos_token),this.eos_token=this.getToken("eos_token"),this.eos_token_id=this.model.tokens_to_ids.get(this.eos_token),this.model_max_length=G.model_max_length,this.remove_space=G.remove_space,this.clean_up_tokenization_spaces=G.clean_up_tokenization_spaces??!0,this.do_lowercase_and_remove_accent=G.do_lowercase_and_remove_accent??!1,G.padding_side&&(this.padding_side=G.padding_side),this.add_bos_token=G.add_bos_token,this.add_eos_token=G.add_eos_token,this.legacy=!1,this.chat_template=G.chat_template??null,Array.isArray(this.chat_template)){let te=Object.create(null);for(let{name:se,template:me}of this.chat_template){if(typeof se!="string"||typeof me!="string")throw new Error('Chat template must be a list of objects with "name" and "template" properties');te[se]=me}this.chat_template=te}this._compiled_template_cache=new Map}getToken(...S){for(let G of S){let te=this.config[G];if(te)if(typeof te=="object"){if(te.__type==="AddedToken")return te.content;throw Error(`Unknown token: ${te}`)}else return te}return null}static async from_pretrained(S,{progress_callback:G=null,config:te=null,cache_dir:se=null,local_files_only:me=!1,revision:Ce="main",legacy:Ye=null}={}){let Xe=await u(S,{progress_callback:G,config:te,cache_dir:se,local_files_only:me,revision:Ce,legacy:Ye});return new this(...Xe)}_call(S,{text_pair:G=null,add_special_tokens:te=!0,padding:se=!1,truncation:me=null,max_length:Ce=null,return_tensor:Ye=!0,return_token_type_ids:Xe=null}={}){let Ze=Array.isArray(S),He;if(Ze){if(S.length===0)throw Error("text array must be non-empty");if(G!==null){if(Array.isArray(G)){if(S.length!==G.length)throw Error("text and text_pair must have the same length")}else throw Error("text_pair must also be an array");He=S.map((yt,Xt)=>this._encode_plus(yt,{text_pair:G[Xt],add_special_tokens:te,return_token_type_ids:Xe}))}else He=S.map(yt=>this._encode_plus(yt,{add_special_tokens:te,return_token_type_ids:Xe}))}else{if(S==null)throw Error("text may not be null or undefined");if(Array.isArray(G))throw Error("When specifying `text_pair`, since `text` is a string, `text_pair` must also be a string (i.e., not an array).");He=[this._encode_plus(S,{text_pair:G,add_special_tokens:te,return_token_type_ids:Xe})]}if(Ce===null?Ce=this.model_max_length:me===null&&(se===!0?(console.warn("`max_length` is ignored when `padding: true` and there is no truncation strategy. To pad to max length, use `padding: 'max_length'`."),Ce=this.model_max_length):se===!1&&(console.warn("Truncation was not explicitly activated but `max_length` is provided a specific value, please use `truncation: true` to explicitly truncate examples to max length."),me=!0)),se===!0&&(Ce=Math.min((0,n.max)(He.map(yt=>yt.input_ids.length))[0],Ce??1/0)),Ce=Math.min(Ce,this.model_max_length??1/0),se||me)for(let yt=0;yt<He.length;++yt)He[yt].input_ids.length!==Ce&&(He[yt].input_ids.length>Ce?me&&Rs(He[yt],Ce):se&&Yr(He[yt],Ce,Xt=>Xt==="input_ids"?this.pad_token_id:0,this.padding_side));let It={};if(Ye){if(!(se&&me)&&He.some(Xt=>{for(let Mr of Object.keys(Xt))if(Xt[Mr].length!==He[0][Mr]?.length)return!0;return!1}))throw Error("Unable to create tensor, you should probably activate truncation and/or padding with 'padding=true' and 'truncation=true' to have batched tensors with the same length.");let yt=[He.length,He[0].input_ids.length];for(let Xt of Object.keys(He[0]))It[Xt]=new i.Tensor("int64",BigInt64Array.from(He.flatMap(Mr=>Mr[Xt]).map(BigInt)),yt)}else{for(let yt of Object.keys(He[0]))It[yt]=He.map(Xt=>Xt[yt]);if(!Ze)for(let yt of Object.keys(It))It[yt]=It[yt][0]}return It}_encode_text(S){if(S===null)return null;let G=this.added_tokens_splitter.split(S);for(let se=0;se<G.length;++se){let me=this.added_tokens_map.get(G[se]);me&&(me.lstrip&&se>0&&(G[se-1]=G[se-1].trimEnd()),me.rstrip&&se<G.length-1&&(G[se+1]=G[se+1].trimStart()))}return G.flatMap((se,me)=>{if(se.length===0)return[];if(this.added_tokens_map.has(se))return[se];if(this.remove_space===!0&&(se=se.trim().split(/\s+/).join(" ")),this.do_lowercase_and_remove_accent&&(se=b(se)),this.normalizer!==null&&(se=this.normalizer(se)),se.length===0)return[];let Ce=this.pre_tokenizer!==null?this.pre_tokenizer(se,{section_index:me}):[se];return this.model(Ce)})}_encode_plus(S,{text_pair:G=null,add_special_tokens:te=!0,return_token_type_ids:se=null}={}){let{tokens:me,token_type_ids:Ce}=this._tokenize_helper(S,{pair:G,add_special_tokens:te}),Ye=this.model.convert_tokens_to_ids(me),Xe={input_ids:Ye,attention_mask:new Array(Ye.length).fill(1)};return(se??this.return_token_type_ids)&&Ce&&(Xe.token_type_ids=Ce),Xe}_tokenize_helper(S,{pair:G=null,add_special_tokens:te=!1}={}){let se=this._encode_text(S),me=this._encode_text(G);return this.post_processor?this.post_processor(se,me,{add_special_tokens:te}):{tokens:(0,o.mergeArrays)(se??[],me??[])}}tokenize(S,{pair:G=null,add_special_tokens:te=!1}={}){return this._tokenize_helper(S,{pair:G,add_special_tokens:te}).tokens}encode(S,{text_pair:G=null,add_special_tokens:te=!0,return_token_type_ids:se=null}={}){return this._encode_plus(S,{text_pair:G,add_special_tokens:te,return_token_type_ids:se}).input_ids}batch_decode(S,G={}){return S instanceof i.Tensor&&(S=S.tolist()),S.map(te=>this.decode(te,G))}decode(S,G={}){if(S instanceof i.Tensor&&(S=x(S)),!Array.isArray(S)||S.length===0||!(0,o.isIntegralNumber)(S[0]))throw Error("token_ids must be a non-empty array of integers.");return this.decode_single(S,G)}decode_single(S,{skip_special_tokens:G=!1,clean_up_tokenization_spaces:te=null}){let se=this.model.convert_ids_to_tokens(S);G&&(se=se.filter(Ce=>!this.special_tokens.includes(Ce)));let me=this.decoder?this.decoder(se):se.join(" ");return this.decoder&&this.decoder.end_of_word_suffix&&(me=me.replaceAll(this.decoder.end_of_word_suffix," "),G&&(me=me.trim())),(te??this.clean_up_tokenization_spaces)&&(me=F(me)),me}get_chat_template({chat_template:S=null,tools:G=null}={}){if(this.chat_template&&typeof this.chat_template=="object"){let te=this.chat_template;if(S!==null&&Object.hasOwn(te,S))S=te[S];else if(S===null)if(G!==null&&"tool_use"in te)S=te.tool_use;else if("default"in te)S=te.default;else throw Error(`This model has multiple chat templates with no default specified! Please either pass a chat template or the name of the template you wish to use to the 'chat_template' argument. Available template names are ${Object.keys(te).sort()}.`)}else if(S===null)if(this.chat_template)S=this.chat_template;else throw Error("Cannot use apply_chat_template() because tokenizer.chat_template is not set and no template argument was passed! For information about writing templates and setting the tokenizer.chat_template attribute, please see the documentation at https://huggingface.co/docs/transformers/main/en/chat_templating");return S}apply_chat_template(S,{tools:G=null,documents:te=null,chat_template:se=null,add_generation_prompt:me=!1,tokenize:Ce=!0,padding:Ye=!1,truncation:Xe=!1,max_length:Ze=null,return_tensor:He=!0,return_dict:It=!1,tokenizer_kwargs:yt={},...Xt}={}){if(se=this.get_chat_template({chat_template:se,tools:G}),typeof se!="string")throw Error(`chat_template must be a string, but got ${typeof se}`);let Mr=this._compiled_template_cache.get(se);Mr===void 0&&(Mr=new c.Template(se),this._compiled_template_cache.set(se,Mr));let nr=Object.create(null);for(let ir of Dr){let Tr=this.getToken(ir);Tr&&(nr[ir]=Tr)}let Br=Mr.render({messages:S,add_generation_prompt:me,tools:G,documents:te,...nr,...Xt});if(Ce){let ir=this._call(Br,{add_special_tokens:!1,padding:Ye,truncation:Xe,max_length:Ze,return_tensor:He,...yt});return It?ir:ir.input_ids}return Br}}class Cs extends ft{return_token_type_ids=!0}class qt extends ft{return_token_type_ids=!0}class Ss extends ft{return_token_type_ids=!0}class Qr extends ft{return_token_type_ids=!0}class St extends ft{return_token_type_ids=!0}class Xr extends ft{return_token_type_ids=!0}class k extends ft{return_token_type_ids=!0}class Q extends ft{return_token_type_ids=!0}class N extends ft{return_token_type_ids=!0}class K extends ft{}class Z extends ft{}class ce extends ft{return_token_type_ids=!0;constructor(S,G){super(S,G),console.warn('WARNING: `XLMTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.')}}class xe extends ft{return_token_type_ids=!0}class et extends ft{}class ut extends ft{}class qe extends ft{}class wt extends ft{constructor(S,G){super(S,G),this.languageRegex=/^[a-z]{2}_[A-Z]{2}$/,this.language_codes=this.special_tokens.filter(te=>this.languageRegex.test(te)),this.lang_to_token=te=>te}_build_translation_inputs(S,G,te){return Gr(this,S,G,te)}}class tt extends wt{}class gt extends ft{}class Nt extends ft{}let Qt="\u2581";class ur extends ft{padding_side="left";constructor(S,G){super(S,G),this.legacy=G.legacy??!0,this.legacy||(this.normalizer=null,this.pre_tokenizer=new Lt({replacement:Qt,prepend_scheme:"first"}))}_encode_text(S){if(S===null)return null;if(this.legacy||S.length===0)return super._encode_text(S);let G=super._encode_text(Qt+S.replaceAll(Qt," "));return G.length>1&&G[0]===Qt&&this.special_tokens.includes(G[1])&&(G=G.slice(1)),G}}class Or extends ft{}class Cr extends ft{}class Lr extends ft{}class _s extends ft{}class Fs extends ft{}class gr extends ft{}class Ns extends ft{}class as extends ft{}class Nr extends ft{}function Gr(de,S,G,te){if(!("language_codes"in de)||!Array.isArray(de.language_codes))throw new Error("Tokenizer must have `language_codes` attribute set and it should be an array of language ids.");if(!("languageRegex"in de)||!(de.languageRegex instanceof RegExp))throw new Error("Tokenizer must have `languageRegex` attribute set and it should be a regular expression.");if(!("lang_to_token"in de)||typeof de.lang_to_token!="function")throw new Error("Tokenizer must have `lang_to_token` attribute set and it should be a function.");let se=te.src_lang,me=te.tgt_lang;if(!de.language_codes.includes(me))throw new Error(`Target language code "${me}" is not valid. Must be one of: {${de.language_codes.join(", ")}}`);if(se!==void 0){if(!de.language_codes.includes(se))throw new Error(`Source language code "${se}" is not valid. Must be one of: {${de.language_codes.join(", ")}}`);for(let Ce of de.post_processor.config.single)if("SpecialToken"in Ce&&de.languageRegex.test(Ce.SpecialToken.id)){Ce.SpecialToken.id=de.lang_to_token(se);break}}return te.forced_bos_token_id=de.model.convert_tokens_to_ids([de.lang_to_token(me)])[0],de._call(S,G)}class ar extends ft{constructor(S,G){super(S,G),this.languageRegex=/^[a-z]{3}_[A-Z][a-z]{3}$/,this.language_codes=this.special_tokens.filter(te=>this.languageRegex.test(te)),this.lang_to_token=te=>te}_build_translation_inputs(S,G,te){return Gr(this,S,G,te)}}class _r extends ft{constructor(S,G){super(S,G),this.languageRegex=/^__[a-z]{2,3}__$/,this.language_codes=this.special_tokens.filter(te=>this.languageRegex.test(te)).map(te=>te.slice(2,-2)),this.lang_to_token=te=>`__${te}__`}_build_translation_inputs(S,G,te){return Gr(this,S,G,te)}}class ps extends ft{get timestamp_begin(){return this.model.convert_tokens_to_ids(["<|notimestamps|>"])[0]+1}_decode_asr(S,{return_timestamps:G=!1,return_language:te=!1,time_precision:se=null,force_full_sequences:me=!0}={}){if(se===null)throw Error("Must specify time_precision");let Ce=null,Ye=G==="word";function Xe(){return{language:Ce,timestamp:[null,null],text:""}}let Ze=[],He=Xe(),It=0,yt=this.timestamp_begin,Mr=yt+1500,nr=[],Br=[],ir=!1,Tr=null,zr=new Set(this.all_special_ids);for(let Yt of S){let vr=Yt.tokens,Sr=Ye?Yt.token_timestamps:null,Jr=null,ms=yt;if("stride"in Yt){let[lr,pr,wr]=Yt.stride;if(It-=pr,Tr=lr-wr,pr&&(ms=pr/se+yt),wr)for(let er=vr.length-1;er>=0;--er){let Kr=Number(vr[er]);if(Kr>=yt){if(Jr!==null&&(Kr-yt)*se<Tr)break;Jr=Kr}}}let Fr=[],is=[];for(let lr=0;lr<vr.length;++lr){let pr=Number(vr[lr]);if(zr.has(pr)){let wr=this.decode([pr]),er=_.WHISPER_LANGUAGE_MAPPING.get(wr.slice(2,-2));if(er!==void 0){if(Ce!==null&&er!==Ce&&!G){nr.push(Fr);let Kr=this.findLongestCommonSequence(nr)[0],Ws=this.decode(Kr);He.text=Ws,Ze.push(He),nr=[],Fr=[],He=Xe()}Ce=He.language=er}}else if(pr>=yt&&pr<=Mr){let wr=(pr-yt)*se+It,er=(0,n.round)(wr,2);if(Jr!==null&&pr>=Jr)ir=!0;else if(ir||nr.length>0&&pr<ms)ir=!1;else if(He.timestamp[0]===null)He.timestamp[0]=er;else if(er!==He.timestamp[0]){He.timestamp[1]=er,nr.push(Fr),Ye&&Br.push(is);let[Kr,Ws]=this.findLongestCommonSequence(nr,Br),Os=this.decode(Kr);He.text=Os,Ye&&(He.words=this.collateWordTimestamps(Kr,Ws,Ce)),Ze.push(He),nr=[],Fr=[],Br=[],is=[],He=Xe()}}else if(Fr.push(pr),Ye){let wr=(0,n.round)(Sr[lr]+It,2),er;if(lr+1<Sr.length){er=(0,n.round)(Sr[lr+1]+It,2);let Kr=this.decode([pr]);f.test(Kr)&&(er=(0,n.round)(Math.min(wr+se,er),2))}else er=null;is.push([wr,er])}}if("stride"in Yt){let[lr,pr,wr]=Yt.stride;It+=lr-wr}Fr.length>0?(nr.push(Fr),Ye&&Br.push(is)):nr.every(lr=>lr.length===0)&&(He=Xe(),nr=[],Fr=[],Br=[],is=[])}if(nr.length>0){if(me&&G)throw new Error("Whisper did not predict an ending timestamp, which can happen if audio is cut off in the middle of a word. Also make sure WhisperTimeStampLogitsProcessor was used during generation.");let[Yt,vr]=this.findLongestCommonSequence(nr,Br),Sr=this.decode(Yt);He.text=Sr,Ye&&(He.words=this.collateWordTimestamps(Yt,vr,Ce)),Ze.push(He)}let Pr=Object.create(null),Zr=Ze.map(Yt=>Yt.text).join("");if(G||te){for(let Yt=0;Yt<Ze.length;++Yt){let vr=Ze[Yt];G||delete vr.timestamp,te||delete vr.language}if(Ye){let Yt=[];for(let vr of Ze)for(let Sr of vr.words)Yt.push(Sr);Pr={chunks:Yt}}else Pr={chunks:Ze}}return[Zr,Pr]}findLongestCommonSequence(S,G=null){let te=S[0],se=te.length,me=[],Ce=Array.isArray(G)&&G.length>0,Ye=Ce?[]:null,Xe=Ce?G[0]:null;for(let Ze=1;Ze<S.length;++Ze){let He=S[Ze],It=0,yt=[se,se,0,0],Xt=He.length;for(let Pr=1;Pr<se+Xt;++Pr){let Zr=Math.max(0,se-Pr),Yt=Math.min(se,se+Xt-Pr),vr=te.slice(Zr,Yt),Sr=Math.max(0,Pr-se),Jr=Math.min(Xt,Pr),ms=He.slice(Sr,Jr);if(vr.length!==ms.length)throw new Error("There is a bug within whisper `decode_asr` function, please report it. Dropping to prevent bad inference.");let Fr;Ce?Fr=vr.filter((pr,wr)=>pr===ms[wr]&&Xe[Zr+wr]<=G[Ze][Sr+wr]).length:Fr=vr.filter((pr,wr)=>pr===ms[wr]).length;let is=Pr/1e4,lr=Fr/Pr+is;Fr>1&&lr>It&&(It=lr,yt=[Zr,Yt,Sr,Jr])}let[Mr,nr,Br,ir]=yt,Tr=Math.floor((nr+Mr)/2),zr=Math.floor((ir+Br)/2);me.push(...te.slice(0,Tr)),te=He.slice(zr),se=te.length,Ce&&(Ye.push(...Xe.slice(0,Tr)),Xe=G[Ze].slice(zr))}return me.push(...te),Ce?(Ye.push(...Xe),[me,Ye]):[me,[]]}collateWordTimestamps(S,G,te){let[se,me,Ce]=this.combineTokensIntoWords(S,te),Ye=[];for(let Xe=0;Xe<se.length;++Xe){let Ze=Ce[Xe];Ye.push({text:se[Xe],timestamp:[G[Ze.at(0)][0],G[Ze.at(-1)][1]]})}return Ye}combineTokensIntoWords(S,G,te=`"'\u201C\xA1\xBF([{-`,se=`"'.\u3002,\uFF0C!\uFF01?\uFF1F:\uFF1A\u201D)]}\u3001`){G=G??"english";let me,Ce,Ye;return["chinese","japanese","thai","lao","myanmar"].includes(G)?[me,Ce,Ye]=this.splitTokensOnUnicode(S):[me,Ce,Ye]=this.splitTokensOnSpaces(S),this.mergePunctuations(me,Ce,Ye,te,se)}decode(S,G){let te;return G?.decode_with_timestamps?(S instanceof i.Tensor&&(S=x(S)),te=this.decodeWithTimestamps(S,G)):te=super.decode(S,G),te}decodeWithTimestamps(S,G){let te=G?.time_precision??.02,se=Array.from(this.all_special_ids).at(-1)+1,me=[[]];for(let Ce of S)if(Ce=Number(Ce),Ce>=se){let Ye=((Ce-se)*te).toFixed(2);me.push(`<|${Ye}|>`),me.push([])}else me[me.length-1].push(Ce);return me=me.map(Ce=>typeof Ce=="string"?Ce:super.decode(Ce,G)),me.join("")}splitTokensOnUnicode(S){let G=this.decode(S,{decode_with_timestamps:!0}),te="\uFFFD",se=[],me=[],Ce=[],Ye=[],Xe=[],Ze=0;for(let He=0;He<S.length;++He){let It=S[He];Ye.push(It),Xe.push(He);let yt=this.decode(Ye,{decode_with_timestamps:!0});(!yt.includes(te)||G[Ze+yt.indexOf(te)]===te)&&(se.push(yt),me.push(Ye),Ce.push(Xe),Ye=[],Xe=[],Ze+=yt.length)}return[se,me,Ce]}splitTokensOnSpaces(S){let[G,te,se]=this.splitTokensOnUnicode(S),me=[],Ce=[],Ye=[],Xe=new RegExp(`^[${I}]$`,"gu");for(let Ze=0;Ze<G.length;++Ze){let He=G[Ze],It=te[Ze],yt=se[Ze],Xt=It[0]>=this.model.tokens_to_ids.get("<|endoftext|>"),Mr=He.startsWith(" "),nr=He.trim(),Br=Xe.test(nr);if(Xt||Mr||Br||me.length===0)me.push(He),Ce.push(It),Ye.push(yt);else{let ir=me.length-1;me[ir]+=He,Ce[ir].push(...It),Ye[ir].push(...yt)}}return[me,Ce,Ye]}mergePunctuations(S,G,te,se,me){let Ce=structuredClone(S),Ye=structuredClone(G),Xe=structuredClone(te),Ze=Ce.length-2,He=Ce.length-1;for(;Ze>=0;)Ce[Ze].startsWith(" ")&&se.includes(Ce[Ze].trim())?(Ce[He]=Ce[Ze]+Ce[He],Ye[He]=(0,o.mergeArrays)(Ye[Ze],Ye[He]),Xe[He]=(0,o.mergeArrays)(Xe[Ze],Xe[He]),Ce[Ze]="",Ye[Ze]=[],Xe[Ze]=[]):He=Ze,--Ze;for(Ze=0,He=1;He<Ce.length;)!Ce[Ze].endsWith(" ")&&me.includes(Ce[He])?(Ce[Ze]+=Ce[He],Ye[Ze]=(0,o.mergeArrays)(Ye[Ze],Ye[He]),Xe[Ze]=(0,o.mergeArrays)(Xe[Ze],Xe[He]),Ce[He]="",Ye[He]=[],Xe[He]=[]):Ze=He,++He;return[Ce.filter(It=>It),Ye.filter(It=>It.length>0),Xe.filter(It=>It.length>0)]}}class Is extends ft{}class As extends ft{}class $s extends ft{}class ns extends ft{constructor(S,G){super(S,G),this.languageRegex=/^(>>\w+<<)\s*/g,this.supported_language_codes=this.model.vocab.filter(te=>this.languageRegex.test(te)),console.warn('WARNING: `MarianTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.')}_encode_text(S){if(S===null)return null;let[G,...te]=S.trim().split(this.languageRegex);if(te.length===0)return super._encode_text(G);if(te.length===2){let[se,me]=te;return this.supported_language_codes.includes(se)||console.warn(`Unsupported language code "${se}" detected, which may lead to unexpected behavior. Should be one of: ${JSON.stringify(this.supported_language_codes)}`),(0,o.mergeArrays)([se],super._encode_text(me))}}}class Wr extends ft{}class ze extends ft{}class Ue extends ft{}class at extends ft{}class Ht extends ft{}class js extends ft{constructor(S,G){super(S,G),this.decoder=new At({})}}class Ds extends ft{}class Vs extends ft{}class Wo{static TOKENIZER_CLASS_MAPPING={T5Tokenizer:et,DistilBertTokenizer:K,CamembertTokenizer:Z,DebertaTokenizer:St,DebertaV2Tokenizer:Xr,BertTokenizer:Cs,HerbertTokenizer:k,ConvBertTokenizer:Q,RoFormerTokenizer:N,XLMTokenizer:ce,ElectraTokenizer:xe,MobileBertTokenizer:Ss,SqueezeBertTokenizer:Qr,AlbertTokenizer:qt,GPT2Tokenizer:ut,BartTokenizer:qe,MBartTokenizer:wt,MBart50Tokenizer:tt,RobertaTokenizer:gt,WhisperTokenizer:ps,CodeGenTokenizer:Is,CLIPTokenizer:As,SiglipTokenizer:$s,MarianTokenizer:ns,BloomTokenizer:Nt,NllbTokenizer:ar,M2M100Tokenizer:_r,LlamaTokenizer:ur,CodeLlamaTokenizer:Or,XLMRobertaTokenizer:Cr,MPNetTokenizer:Lr,FalconTokenizer:_s,GPTNeoXTokenizer:Fs,EsmTokenizer:gr,Wav2Vec2CTCTokenizer:Wr,BlenderbotTokenizer:ze,BlenderbotSmallTokenizer:Ue,SpeechT5Tokenizer:at,NougatTokenizer:Ht,VitsTokenizer:js,Qwen2Tokenizer:Ns,GemmaTokenizer:as,Grok1Tokenizer:Nr,CohereTokenizer:Ds,MgpstrTokenizer:Vs,PreTrainedTokenizer:ft};static async from_pretrained(S,{progress_callback:G=null,config:te=null,cache_dir:se=null,local_files_only:me=!1,revision:Ce="main",legacy:Ye=null}={}){let[Xe,Ze]=await u(S,{progress_callback:G,config:te,cache_dir:se,local_files_only:me,revision:Ce,legacy:Ye}),He=Ze.tokenizer_class?.replace(/Fast$/,"")??"PreTrainedTokenizer",It=this.TOKENIZER_CLASS_MAPPING[He];return It||(console.warn(`Unknown tokenizer class "${He}", attempting to construct from base class.`),It=ft),new It(Xe,Ze)}}}),"./src/utils/audio.js":((e,r,t)=>{t.r(r),t.d(r,{RawAudio:()=>W,hamming:()=>d,hanning:()=>u,mel_filter_bank:()=>C,read_audio:()=>c,spectrogram:()=>E,window_function:()=>D});var s=t("./src/utils/hub.js"),o=t("./src/utils/maths.js"),a=t("./src/utils/core.js"),n=t("./src/env.js"),i=t("./src/utils/tensor.js"),l=t("?7992");async function c(z,X){if(typeof AudioContext>"u")throw Error("Unable to load audio from path/URL since `AudioContext` is not available in your environment. Instead, audio data should be passed directly to the pipeline/processor. For more information and some example code, see https://huggingface.co/docs/transformers.js/guides/node-audio-processing.");let J=await(await(0,s.getFile)(z)).arrayBuffer(),q=new AudioContext({sampleRate:X});typeof X>"u"&&console.warn(`No sampling rate provided, using default of ${q.sampleRate}Hz.`);let re=await q.decodeAudioData(J),oe;if(re.numberOfChannels===2){let ne=Math.sqrt(2),ye=re.getChannelData(0),Y=re.getChannelData(1);oe=new Float32Array(ye.length);for(let H=0;H<re.length;++H)oe[H]=ne*(ye[H]+Y[H])/2}else oe=re.getChannelData(0);return oe}function _(z,X){if(z<1)return new Float64Array;if(z===1)return new Float64Array([1]);let J=1-X,q=2*Math.PI/(z-1),re=new Float64Array(z);for(let oe=0;oe<z;++oe)re[oe]=X-J*Math.cos(oe*q);return re}function u(z){return _(z,.5)}function d(z){return _(z,.54)}let g={htk:z=>2595*Math.log10(1+z/700),kaldi:z=>1127*Math.log(1+z/700),slaney:(z,X=1e3,J=15,q=27/Math.log(6.4))=>z>=X?J+Math.log(z/X)*q:3*z/200};function h(z,X="htk"){let J=g[X];if(!J)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return typeof z=="number"?J(z):z.map(q=>J(q))}let x={htk:z=>700*(10**(z/2595)-1),kaldi:z=>700*(Math.exp(z/1127)-1),slaney:(z,X=1e3,J=15,q=Math.log(6.4)/27)=>z>=J?X*Math.exp(q*(z-J)):200*z/3};function F(z,X="htk"){let J=x[X];if(!J)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return typeof z=="number"?J(z):z.map(q=>J(q))}function v(z,X){let J=Float64Array.from({length:X.length-1},(ne,ye)=>X[ye+1]-X[ye]),q=Array.from({length:z.length},()=>new Array(X.length));for(let ne=0;ne<z.length;++ne){let ye=q[ne];for(let Y=0;Y<X.length;++Y)ye[Y]=X[Y]-z[ne]}let re=X.length-2,oe=Array.from({length:re},()=>new Array(z.length));for(let ne=0;ne<z.length;++ne){let ye=q[ne];for(let Y=0;Y<re;++Y){let H=-ye[Y]/J[Y],R=ye[Y+2]/J[Y+1];oe[Y][ne]=Math.max(0,Math.min(H,R))}}return oe}function b(z,X,J){let q=(X-z)/(J-1);return Float64Array.from({length:J},(re,oe)=>z+q*oe)}function C(z,X,J,q,re,oe=null,ne="htk",ye=!1){if(oe!==null&&oe!=="slaney")throw new Error('norm must be one of null or "slaney"');if(z<2)throw new Error(`Require num_frequency_bins: ${z} >= 2`);if(J>q)throw new Error(`Require min_frequency: ${J} <= max_frequency: ${q}`);let Y=h(J,ne),H=h(q,ne),R=b(Y,H,X+2),L=F(R,ne),ee;if(ye){let ke=re/((z-1)*2);ee=h(Float64Array.from({length:z},(Ie,Le)=>Le*ke),ne),L=R}else ee=b(0,Math.floor(re/2),z);let ue=v(ee,L);if(oe!==null&&oe==="slaney")for(let ke=0;ke<X;++ke){let Ie=ue[ke],Le=2/(L[ke+2]-L[ke]);for(let rt=0;rt<z;++rt)Ie[rt]*=Le}return ue}function y(z,X,J){let q=new z.constructor(z.length+X+J),re=z.length-1;for(let oe=0;oe<z.length;++oe)q[X+oe]=z[oe];for(let oe=1;oe<=X;++oe)q[X-oe]=z[(0,a.calculateReflectOffset)(oe,re)];for(let oe=1;oe<=J;++oe)q[re+X+oe]=z[(0,a.calculateReflectOffset)(re-oe,re)];return q}function P(z,X,J,q,re){if(J<=0)throw new Error("reference must be greater than zero");if(q<=0)throw new Error("min_value must be greater than zero");J=Math.max(q,J);let oe=Math.log10(J);for(let ne=0;ne<z.length;++ne)z[ne]=X*Math.log10(Math.max(q,z[ne])-oe);if(re!==null){if(re<=0)throw new Error("db_range must be greater than zero");let ne=(0,o.max)(z)[0]-re;for(let ye=0;ye<z.length;++ye)z[ye]=Math.max(z[ye],ne)}return z}function I(z,X=1,J=1e-5,q=null){return P(z,20,X,J,q)}function f(z,X=1,J=1e-10,q=null){return P(z,10,X,J,q)}async function E(z,X,J,q,{fft_length:re=null,power:oe=1,center:ne=!0,pad_mode:ye="reflect",onesided:Y=!0,preemphasis:H=null,preemphasis_htk_flavor:R=!0,mel_filters:L=null,mel_floor:ee=1e-10,log_mel:ue=null,reference:ke=1,min_value:Ie=1e-10,db_range:Le=null,remove_dc_offset:rt=null,min_num_frames:we=null,max_num_frames:A=null,do_pad:le=!0,transpose:ge=!1,mel_offset:be=0}={}){let Ae=X.length;if(re===null&&(re=J),J>re)throw Error(`frame_length (${J}) may not be larger than fft_length (${re})`);if(Ae!==J)throw new Error(`Length of the window (${Ae}) must equal frame_length (${J})`);if(q<=0)throw new Error("hop_length must be greater than zero");if(oe===null&&L!==null)throw new Error("You have provided `mel_filters` but `power` is `None`. Mel spectrogram computation is not yet supported for complex-valued spectrogram. Specify `power` to fix this issue.");if(!R)throw new Error("`preemphasis_htk_flavor=false` is not currently supported.");if(ne)switch(ye){case"reflect":{let Qe=Math.floor((re-1)/2)+1;z=y(z,Qe,Qe);break}case"constant":{let Qe=Math.floor(re/2),je=new z.constructor(z.length+2*Qe);je.set(z,Qe),z=je;break}default:throw new Error(`pad_mode="${ye}" not implemented yet.`)}let ve=Math.floor(1+Math.floor((z.length-J)/q));we!==null&&ve<we&&(ve=we);let pe=Y?Math.floor(re/2)+1:re,Pe=ve,fe=ve;A!==null&&(A>ve?le&&(fe=A):fe=Pe=A);let Te=new o.FFT(re),We=new Float64Array(re),$e=new Float64Array(Te.outputBufferSize),Re=new Float32Array(pe*fe);for(let Qe=0;Qe<Pe;++Qe){let je=Qe*q,pt=Math.min(z.length-je,J);pt!==J&&We.fill(0,0,J);for(let Ke=0;Ke<pt;++Ke)We[Ke]=z[je+Ke];if(rt){let Ke=0;for(let At=0;At<pt;++At)Ke+=We[At];let bt=Ke/pt;for(let At=0;At<pt;++At)We[At]-=bt}if(H!==null){for(let Ke=pt-1;Ke>=1;--Ke)We[Ke]-=H*We[Ke-1];We[0]*=1-H}for(let Ke=0;Ke<X.length;++Ke)We[Ke]*=X[Ke];Te.realTransform($e,We);for(let Ke=0;Ke<pe;++Ke){let bt=Ke<<1;Re[Ke*fe+Qe]=$e[bt]**2+$e[bt+1]**2}}if(oe!==null&&oe!==2){let Qe=oe/2;for(let je=0;je<Re.length;++je)Re[je]**=Qe}let Ne=L.length,ot=await(0,i.matmul)(new i.Tensor("float32",L.flat(),[Ne,pe]),new i.Tensor("float32",Re,[pe,fe]));ge&&(ot=ot.transpose(1,0));let De=ot.data;for(let Qe=0;Qe<De.length;++Qe)De[Qe]=be+Math.max(ee,De[Qe]);if(oe!==null&&ue!==null){let Qe=Math.min(De.length,Pe*Ne);switch(ue){case"log":for(let je=0;je<Qe;++je)De[je]=Math.log(De[je]);break;case"log10":for(let je=0;je<Qe;++je)De[je]=Math.log10(De[je]);break;case"dB":if(oe===1)I(De,ke,Ie,Le);else if(oe===2)f(De,ke,Ie,Le);else throw new Error(`Cannot use log_mel option '${ue}' with power ${oe}`);break;default:throw new Error(`log_mel must be one of null, 'log', 'log10' or 'dB'. Got '${ue}'`)}}return ot}function D(z,X,{periodic:J=!0,frame_length:q=null,center:re=!0}={}){let oe=J?z+1:z,ne;switch(X){case"boxcar":ne=new Float64Array(oe).fill(1);break;case"hann":case"hann_window":ne=u(oe);break;case"hamming":ne=d(oe);break;case"povey":ne=u(oe).map(ye=>Math.pow(ye,.85));break;default:throw new Error(`Unknown window type ${X}.`)}if(J&&(ne=ne.subarray(0,z)),q===null)return ne;if(z>q)throw new Error(`Length of the window (${z}) may not be larger than frame_length (${q})`);return ne}function O(z,X){let J=44,q=new ArrayBuffer(J+z.length*4),re=new DataView(q);U(re,0,"RIFF"),re.setUint32(4,36+z.length*4,!0),U(re,8,"WAVE"),U(re,12,"fmt "),re.setUint32(16,16,!0),re.setUint16(20,3,!0),re.setUint16(22,1,!0),re.setUint32(24,X,!0),re.setUint32(28,X*4,!0),re.setUint16(32,4,!0),re.setUint16(34,32,!0),U(re,36,"data"),re.setUint32(40,z.length*4,!0);for(let oe=0;oe<z.length;++oe,J+=4)re.setFloat32(J,z[oe],!0);return q}function U(z,X,J){for(let q=0;q<J.length;++q)z.setUint8(X+q,J.charCodeAt(q))}class W{constructor(X,J){this.audio=X,this.sampling_rate=J}toWav(){return O(this.audio,this.sampling_rate)}toBlob(){let X=this.toWav();return new Blob([X],{type:"audio/wav"})}async save(X){let J;if(n.apis.IS_BROWSER_ENV){if(n.apis.IS_WEBWORKER_ENV)throw new Error("Unable to save a file from a Web Worker.");J=a.saveBlob}else if(n.apis.IS_FS_AVAILABLE)J=async(q,re)=>{let oe=await re.arrayBuffer();l.writeFileSync(q,Buffer.from(oe))};else throw new Error("Unable to save because filesystem is disabled in this environment.");await J(X,this.toBlob())}}}),"./src/utils/constants.js":((e,r,t)=>{t.r(r),t.d(r,{CHAT_TEMPLATE_NAME:()=>l,CONFIG_NAME:()=>o,FEATURE_EXTRACTOR_NAME:()=>a,GENERATION_CONFIG_NAME:()=>c,GITHUB_ISSUE_URL:()=>s,IMAGE_PROCESSOR_NAME:()=>n,PROCESSOR_NAME:()=>i});let s="https://github.com/huggingface/transformers.js/issues/new/choose",o="config.json",a="preprocessor_config.json",n=a,i="processor_config.json",l="chat_template.jinja",c="generation_config.json"}),"./src/utils/core.js":((e,r,t)=>{t.r(r),t.d(r,{calculateDimensions:()=>c,calculateReflectOffset:()=>g,count:()=>v,dispatchCallback:()=>s,escapeRegExp:()=>a,isIntegralNumber:()=>i,isNullishDimension:()=>l,isTypedArray:()=>n,len:()=>F,mergeArrays:()=>u,pick:()=>x,pop:()=>_,product:()=>d,reverseDictionary:()=>o,saveBlob:()=>h});function s(b,C){b&&b(C)}function o(b){return Object.fromEntries(Object.entries(b).map(([C,y])=>[y,C]))}function a(b){return b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function n(b){return b?.prototype?.__proto__?.constructor?.name==="TypedArray"}function i(b){return Number.isInteger(b)||typeof b=="bigint"}function l(b){return b==null||b===-1}function c(b){let C=[],y=b;for(;Array.isArray(y);)C.push(y.length),y=y[0];return C}function _(b,C,y=void 0){let P=b[C];if(P!==void 0)return delete b[C],P;if(y===void 0)throw Error(`Key ${C} does not exist in object.`);return y}function u(...b){return Array.prototype.concat.apply([],b)}function d(...b){return b.reduce((C,y)=>C.flatMap(P=>y.map(I=>[P,I])))}function g(b,C){return Math.abs((b+C)%(2*C)-C)}function h(b,C){let y=URL.createObjectURL(C),P=document.createElement("a");P.href=y,P.download=b,P.click(),P.remove(),URL.revokeObjectURL(y)}function x(b,C){return Object.assign({},...C.map(y=>{if(b[y]!==void 0)return{[y]:b[y]}}))}function F(b){let C=0;for(let y of b)++C;return C}function v(b,C){let y=0;for(let P of b)P===C&&++y;return y}}),"./src/utils/data-structures.js":((e,r,t)=>{t.r(r),t.d(r,{CharTrie:()=>o,DictionarySplitter:()=>l,LRUCache:()=>c,PriorityQueue:()=>s,TokenLattice:()=>n});class s{constructor(u=(g,h)=>g>h,d=1/0){this._heap=[],this._comparator=u,this._maxSize=d}get size(){return this._heap.length}isEmpty(){return this.size===0}peek(){return this._heap[0]}push(...u){return this.extend(u)}extend(u){for(let d of u)if(this.size<this._maxSize)this._heap.push(d),this._siftUp();else{let g=this._smallest();this._comparator(d,this._heap[g])&&(this._heap[g]=d,this._siftUpFrom(g))}return this.size}pop(){let u=this.peek(),d=this.size-1;return d>0&&this._swap(0,d),this._heap.pop(),this._siftDown(),u}replace(u){let d=this.peek();return this._heap[0]=u,this._siftDown(),d}_parent(u){return(u+1>>>1)-1}_left(u){return(u<<1)+1}_right(u){return u+1<<1}_greater(u,d){return this._comparator(this._heap[u],this._heap[d])}_swap(u,d){let g=this._heap[u];this._heap[u]=this._heap[d],this._heap[d]=g}_siftUp(){this._siftUpFrom(this.size-1)}_siftUpFrom(u){for(;u>0&&this._greater(u,this._parent(u));)this._swap(u,this._parent(u)),u=this._parent(u)}_siftDown(){let u=0;for(;this._left(u)<this.size&&this._greater(this._left(u),u)||this._right(u)<this.size&&this._greater(this._right(u),u);){let d=this._right(u)<this.size&&this._greater(this._right(u),this._left(u))?this._right(u):this._left(u);this._swap(u,d),u=d}}_smallest(){return 2**Math.floor(Math.log2(this.size))-1}}class o{constructor(){this.root=a.default()}extend(u){for(let d of u)this.push(d)}push(u){let d=this.root;for(let g of u){let h=d.children.get(g);h===void 0&&(h=a.default(),d.children.set(g,h)),d=h}d.isLeaf=!0}*commonPrefixSearch(u){let d=this.root;if(d===void 0)return;let g="";for(let h of u){if(g+=h,d=d.children.get(h),d===void 0)return;d.isLeaf&&(yield g)}}}class a{constructor(u,d){this.isLeaf=u,this.children=d}static default(){return new a(!1,new Map)}}class n{constructor(u,d,g){this.chars=Array.from(u),this.len=this.chars.length,this.bosTokenId=d,this.eosTokenId=g,this.nodes=[],this.beginNodes=Array.from({length:this.len+1},()=>[]),this.endNodes=Array.from({length:this.len+1},()=>[]);let h=new i(this.bosTokenId,0,0,0,0),x=new i(this.eosTokenId,1,this.len,0,0);this.nodes.push(h.clone()),this.nodes.push(x.clone()),this.beginNodes[this.len].push(x),this.endNodes[0].push(h)}insert(u,d,g,h){let x=this.nodes.length,F=new i(h,x,u,d,g);this.beginNodes[u].push(F),this.endNodes[u+d].push(F),this.nodes.push(F)}viterbi(){let u=this.len,d=0;for(;d<=u;){if(this.beginNodes[d].length==0)return[];for(let v of this.beginNodes[d]){v.prev=null;let b=0,C=null;for(let y of this.endNodes[d]){let P=y.backtraceScore+v.score;(C===null||P>b)&&(C=y.clone(),b=P)}if(C!==null)v.prev=C,v.backtraceScore=b;else return[]}++d}let g=[],x=this.beginNodes[u][0].prev;if(x===null)return[];let F=x.clone();for(;F.prev!==null;)g.push(F.clone()),F=F.clone().prev.clone();return g.reverse(),g}piece(u){return this.chars.slice(u.pos,u.pos+u.length).join("")}tokens(){return this.viterbi().map(d=>this.piece(d))}tokenIds(){return this.viterbi().map(d=>d.tokenId)}}class i{constructor(u,d,g,h,x){this.tokenId=u,this.nodeId=d,this.pos=g,this.length=h,this.score=x,this.prev=null,this.backtraceScore=0}clone(){let u=new i(this.tokenId,this.nodeId,this.pos,this.length,this.score);return u.prev=this.prev,u.backtraceScore=this.backtraceScore,u}}class l{constructor(u){this.trie=this._buildTrie(u)}_buildTrie(u){let d=Object.create(null);for(let g of u){let h=d;for(let x=0;x<g.length;++x)h=h[g[x]]??=Object.create(null);h.end=g}return d}split(u){let d=[],g=u.length,h=0,x=0;for(;x<g;){let F=this.trie,v=null,b=x;for(;b<g&&(F=F[u[b]]);)F.end&&(v=F.end),++b;v?(x>h&&d.push(u.slice(h,x)),d.push(v),x+=v.length,h=x):++x}return h<g&&d.push(u.slice(h)),d}}class c{constructor(u){this.capacity=u,this.cache=new Map}get(u){if(!this.cache.has(u))return;let d=this.cache.get(u);return this.cache.delete(u),this.cache.set(u,d),d}put(u,d){this.cache.has(u)&&this.cache.delete(u),this.cache.set(u,d),this.cache.size>this.capacity&&this.cache.delete(this.cache.keys().next().value)}clear(){this.cache.clear()}}}),"./src/utils/devices.js":((e,r,t)=>{t.r(r),t.d(r,{DEVICE_TYPES:()=>s});let s=Object.freeze({auto:"auto",gpu:"gpu",cpu:"cpu",wasm:"wasm",webgpu:"webgpu",cuda:"cuda",dml:"dml",webnn:"webnn","webnn-npu":"webnn-npu","webnn-gpu":"webnn-gpu","webnn-cpu":"webnn-cpu"})}),"./src/utils/dtypes.js":((e,r,t)=>{t.r(r),t.d(r,{DATA_TYPES:()=>n,DEFAULT_DEVICE_DTYPE_MAPPING:()=>i,DEFAULT_DTYPE_SUFFIX_MAPPING:()=>l,isWebGpuFp16Supported:()=>a});var s=t("./src/env.js"),o=t("./src/utils/devices.js");let a=(function(){let c;return async function(){if(c===void 0)if(!s.apis.IS_WEBGPU_AVAILABLE)c=!1;else try{c=(await navigator.gpu.requestAdapter()).features.has("shader-f16")}catch{c=!1}return c}})(),n=Object.freeze({auto:"auto",fp32:"fp32",fp16:"fp16",q8:"q8",int8:"int8",uint8:"uint8",q4:"q4",bnb4:"bnb4",q4f16:"q4f16"}),i=Object.freeze({[o.DEVICE_TYPES.wasm]:n.q8}),l=Object.freeze({[n.fp32]:"",[n.fp16]:"_fp16",[n.int8]:"_int8",[n.uint8]:"_uint8",[n.q8]:"_quantized",[n.q4]:"_q4",[n.q4f16]:"_q4f16",[n.bnb4]:"_bnb4"})}),"./src/utils/generic.js":((e,r,t)=>{t.r(r),t.d(r,{Callable:()=>s});let s=class{constructor(){let o=function(...a){return o._call(...a)};return Object.setPrototypeOf(o,new.target.prototype)}_call(...o){throw Error("Must implement _call method in subclass")}}}),"./src/utils/hub.js":((e,r,t)=>{t.r(r),t.d(r,{MAX_EXTERNAL_DATA_CHUNKS:()=>i,getFile:()=>g,getModelFile:()=>b,getModelJSON:()=>y,getModelText:()=>C});var s=t("?7992"),o=t("?5af5"),a=t("./src/env.js"),n=t("./src/utils/core.js");let i=100,l={txt:"text/plain",html:"text/html",css:"text/css",js:"text/javascript",json:"application/json",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif"};class c{constructor(E){if(this.filePath=E,this.headers=new Headers,this.exists=s.existsSync(E),this.exists){this.status=200,this.statusText="OK";let D=s.statSync(E);this.headers.set("content-length",D.size.toString()),this.updateContentType();let O=s.createReadStream(E);this.body=new ReadableStream({start(U){O.on("data",W=>U.enqueue(W)),O.on("end",()=>U.close()),O.on("error",W=>U.error(W))},cancel(){O.destroy()}})}else this.status=404,this.statusText="Not Found",this.body=null}updateContentType(){let E=this.filePath.toString().split(".").pop().toLowerCase();this.headers.set("content-type",l[E]??"application/octet-stream")}clone(){let E=new c(this.filePath);return E.exists=this.exists,E.status=this.status,E.statusText=this.statusText,E.headers=new Headers(this.headers),E}async arrayBuffer(){return(await s.promises.readFile(this.filePath)).buffer}async blob(){let E=await s.promises.readFile(this.filePath);return new Blob([E],{type:this.headers.get("content-type")})}async text(){return await s.promises.readFile(this.filePath,"utf8")}async json(){return JSON.parse(await this.text())}}function _(f,E=null,D=null){let O;try{O=new URL(f)}catch{return!1}return!(E&&!E.includes(O.protocol)||D&&!D.includes(O.hostname))}let u=/^(\b[\w\-.]+\b\/)?\b[\w\-.]{1,96}\b$/;function d(f){return!(!u.test(f)||f.includes("..")||f.includes("--")||f.endsWith(".git")||f.endsWith(".ipynb"))}async function g(f){if(a.env.useFS&&!_(f,["http:","https:","blob:"]))return new c(f instanceof URL?f.protocol==="file:"?f.pathname:f.toString():f);if(typeof process<"u"&&process?.release?.name==="node"){let E=!!process.env?.TESTING_REMOTELY,D=a.env.version,O=new Headers;if(O.set("User-Agent",`transformers.js/${D}; is_ci/${E};`),_(f,["http:","https:"],["huggingface.co","hf.co"])){let W=process.env?.HF_TOKEN??process.env?.HF_ACCESS_TOKEN;W&&O.set("Authorization",`Bearer ${W}`)}return fetch(f,{headers:O})}else return fetch(f)}let h={400:"Bad request error occurred while trying to load file",401:"Unauthorized access to file",403:"Forbidden access to file",404:"Could not locate file",408:"Request timeout error occurred while trying to load file",500:"Internal server error error occurred while trying to load file",502:"Bad gateway error occurred while trying to load file",503:"Service unavailable error occurred while trying to load file",504:"Gateway timeout error occurred while trying to load file"};function x(f,E,D){if(!D)return null;let O=h[f]??`Error (${f}) occurred while trying to load file`;throw Error(`${O}: "${E}".`)}class F{constructor(E){this.path=E}async match(E){let D=o.join(this.path,E),O=new c(D);if(O.exists)return O}async put(E,D,O=void 0){let U=o.join(this.path,E);try{let W=D.headers.get("Content-Length"),z=parseInt(W??"0"),X=0;await s.promises.mkdir(o.dirname(U),{recursive:!0});let J=s.createWriteStream(U),q=D.body.getReader();for(;;){let{done:re,value:oe}=await q.read();if(re)break;await new Promise((ye,Y)=>{J.write(oe,H=>{if(H){Y(H);return}ye()})}),X+=oe.length;let ne=z?X/z*100:0;O?.({progress:ne,loaded:X,total:z})}J.close()}catch(W){try{await s.promises.unlink(U)}catch{}throw W}}}async function v(f,...E){for(let D of E)try{let O=await f.match(D);if(O)return O}catch{continue}}async function b(f,E,D=!0,O={},U=!1){if(!a.env.allowLocalModels){if(O.local_files_only)throw Error("Invalid configuration detected: local models are disabled (`env.allowLocalModels=false`) but you have requested to only use local models (`local_files_only=true`).");if(!a.env.allowRemoteModels)throw Error("Invalid configuration detected: both local and remote models are disabled. Fix by setting `env.allowLocalModels` or `env.allowRemoteModels` to `true`.")}(0,n.dispatchCallback)(O.progress_callback,{status:"initiate",name:f,file:E});let W;if(!W&&a.env.useCustomCache){if(!a.env.customCache)throw Error("`env.useCustomCache=true`, but `env.customCache` is not defined.");if(!a.env.customCache.match||!a.env.customCache.put)throw new Error("`env.customCache` must be an object which implements the `match` and `put` functions of the Web Cache API. For more information, see https://developer.mozilla.org/en-US/docs/Web/API/Cache");W=a.env.customCache}if(!W&&a.env.useBrowserCache){if(typeof caches>"u")throw Error("Browser cache is not available in this environment.");try{W=await caches.open("transformers-cache")}catch(ee){console.warn("An error occurred while opening the browser cache:",ee)}}if(!W&&a.env.useFSCache){if(!a.apis.IS_FS_AVAILABLE)throw Error("File System Cache is not available in this environment.");W=new F(O.cache_dir??a.env.cacheDir)}let z=O.revision??"main",X=I(f,E),J=d(f),q=J?I(a.env.localModelPath,X):X,re=I(a.env.remoteHost,a.env.remotePathTemplate.replaceAll("{model}",f).replaceAll("{revision}",encodeURIComponent(z)),E),oe,ne=W instanceof F?z==="main"?X:I(f,z,E):re,ye=!1,Y;W&&(Y=await v(W,q,ne));let H=Y!==void 0;if(Y===void 0){if(a.env.allowLocalModels)if(_(X,["http:","https:"])){if(O.local_files_only)throw new Error(`\`local_files_only=true\`, but attempted to load a remote file from: ${X}.`);if(!a.env.allowRemoteModels)throw new Error(`\`env.allowRemoteModels=false\`, but attempted to load a remote file from: ${X}.`)}else try{Y=await g(q),oe=q}catch(ue){console.warn(`Unable to load from local path "${q}": "${ue}"`)}if(Y===void 0||Y.status===404){if(O.local_files_only||!a.env.allowRemoteModels){if(D)throw Error(`\`local_files_only=true\` or \`env.allowRemoteModels=false\` and file was not found locally at "${q}".`);return null}if(!J)throw Error(`Local file missing at "${q}" and download aborted due to invalid model ID "${f}".`);if(Y=await g(re),Y.status!==200)return x(Y.status,re,D);oe=ne}ye=W&&typeof Response<"u"&&Y instanceof Response&&Y.status===200}(0,n.dispatchCallback)(O.progress_callback,{status:"download",name:f,file:E});let R;if(!(a.apis.IS_NODE_ENV&&U)){let ee;O.progress_callback?H&&typeof navigator<"u"&&/firefox/i.test(navigator.userAgent)?(ee=new Uint8Array(await Y.arrayBuffer()),(0,n.dispatchCallback)(O.progress_callback,{status:"progress",name:f,file:E,progress:100,loaded:ee.length,total:ee.length})):ee=await P(Y,ue=>{(0,n.dispatchCallback)(O.progress_callback,{status:"progress",name:f,file:E,...ue})}):ee=new Uint8Array(await Y.arrayBuffer()),R=ee}if(ye&&oe&&await W.match(oe)===void 0)if(R)await W.put(oe,new Response(R,{headers:Y.headers})).catch(ee=>{console.warn(`Unable to add response to browser cache: ${ee}.`)});else{let ee=O.progress_callback?ue=>(0,n.dispatchCallback)(O.progress_callback,{status:"progress",name:f,file:E,...ue}):void 0;await W.put(oe,Y,ee)}if((0,n.dispatchCallback)(O.progress_callback,{status:"done",name:f,file:E}),R){if(!a.apis.IS_NODE_ENV&&U)throw new Error("Cannot return path in a browser environment.");return R}if(Y instanceof c)return Y.filePath;let L=await W?.match(oe);if(L instanceof c)return L.filePath;if(L instanceof Response)return new Uint8Array(await L.arrayBuffer());if(typeof L=="string")return L;throw new Error("Unable to get model file path or buffer.")}async function C(f,E,D=!0,O={}){let U=await b(f,E,D,O,!1);return U===null?null:new TextDecoder("utf-8").decode(U)}async function y(f,E,D=!0,O={}){let U=await C(f,E,D,O);return U===null?{}:JSON.parse(U)}async function P(f,E){let D=f.headers.get("Content-Length");D===null&&console.warn("Unable to determine content-length from response headers. Will expand buffer when needed.");let O=parseInt(D??"0"),U=new Uint8Array(O),W=0,z=f.body.getReader();async function X(){let{done:J,value:q}=await z.read();if(J)return;let re=W+q.length;if(re>O){O=re;let ne=new Uint8Array(O);ne.set(U),U=ne}U.set(q,W),W=re;let oe=W/O*100;return E({progress:oe,loaded:W,total:O}),X()}return await X(),U}function I(...f){return f=f.map((E,D)=>(D&&(E=E.replace(new RegExp("^/"),"")),D!==f.length-1&&(E=E.replace(new RegExp("/$"),"")),E)),f.join("/")}}),"./src/utils/image.js":((e,r,t)=>{t.r(r),t.d(r,{RawImage:()=>h,load_image:()=>x});var s=t("./src/utils/core.js"),o=t("./src/utils/hub.js"),a=t("./src/env.js"),n=t("./src/utils/tensor.js"),i=t("?2b25");let l,c,_,u=a.apis.IS_BROWSER_ENV||a.apis.IS_WEBWORKER_ENV;if(u)l=(F,v)=>{if(!self.OffscreenCanvas)throw new Error("OffscreenCanvas not supported by this browser.");return new self.OffscreenCanvas(F,v)},_=self.createImageBitmap,c=self.ImageData;else if(i)_=async F=>{let b=(await F.metadata()).channels,{data:C,info:y}=await F.rotate().raw().toBuffer({resolveWithObject:!0}),P=new h(new Uint8ClampedArray(C),y.width,y.height,y.channels);return b!==void 0&&b!==y.channels&&P.convert(b),P};else throw new Error("Unable to load image processing library.");let d={0:"nearest",1:"lanczos",2:"bilinear",3:"bicubic",4:"box",5:"hamming"},g=new Map([["png","image/png"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["gif","image/gif"]]);class h{constructor(v,b,C,y){this.data=v,this.width=b,this.height=C,this.channels=y}get size(){return[this.width,this.height]}static async read(v){if(v instanceof h)return v;if(typeof v=="string"||v instanceof URL)return await this.fromURL(v);if(v instanceof Blob)return await this.fromBlob(v);if(typeof HTMLCanvasElement<"u"&&v instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&v instanceof OffscreenCanvas)return this.fromCanvas(v);throw new Error(`Unsupported input type: ${typeof v}`)}static fromCanvas(v){if(!u)throw new Error("fromCanvas() is only supported in browser environments.");let C=v.getContext("2d").getImageData(0,0,v.width,v.height).data;return new h(C,v.width,v.height,4)}static async fromURL(v){let b=await(0,o.getFile)(v);if(b.status!==200)throw new Error(`Unable to read image from "${v}" (${b.status} ${b.statusText})`);let C=await b.blob();return this.fromBlob(C)}static async fromBlob(v){if(u){let b=await _(v),C=l(b.width,b.height).getContext("2d");return C.drawImage(b,0,0),new this(C.getImageData(0,0,b.width,b.height).data,b.width,b.height,4)}else{let b=i(await v.arrayBuffer());return await _(b)}}static fromTensor(v,b="CHW"){if(v.dims.length!==3)throw new Error(`Tensor should have 3 dimensions, but has ${v.dims.length} dimensions.`);if(b==="CHW")v=v.transpose(1,2,0);else if(b!=="HWC")throw new Error(`Unsupported channel format: ${b}`);if(!(v.data instanceof Uint8ClampedArray||v.data instanceof Uint8Array))throw new Error(`Unsupported tensor type: ${v.type}`);switch(v.dims[2]){case 1:case 2:case 3:case 4:return new h(v.data,v.dims[1],v.dims[0],v.dims[2]);default:throw new Error(`Unsupported number of channels: ${v.dims[2]}`)}}grayscale(){if(this.channels===1)return this;let v=new Uint8ClampedArray(this.width*this.height*1);switch(this.channels){case 3:case 4:for(let b=0,C=0;b<this.data.length;b+=this.channels){let y=this.data[b],P=this.data[b+1],I=this.data[b+2];v[C++]=Math.round(.2989*y+.587*P+.114*I)}break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(v,this.width,this.height,1)}rgb(){if(this.channels===3)return this;let v=new Uint8ClampedArray(this.width*this.height*3);switch(this.channels){case 1:for(let b=0,C=0;b<this.data.length;++b)v[C++]=this.data[b],v[C++]=this.data[b],v[C++]=this.data[b];break;case 4:for(let b=0,C=0;b<this.data.length;b+=4)v[C++]=this.data[b],v[C++]=this.data[b+1],v[C++]=this.data[b+2];break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(v,this.width,this.height,3)}rgba(){if(this.channels===4)return this;let v=new Uint8ClampedArray(this.width*this.height*4);switch(this.channels){case 1:for(let b=0,C=0;b<this.data.length;++b)v[C++]=this.data[b],v[C++]=this.data[b],v[C++]=this.data[b],v[C++]=255;break;case 3:for(let b=0,C=0;b<this.data.length;b+=3)v[C++]=this.data[b],v[C++]=this.data[b+1],v[C++]=this.data[b+2],v[C++]=255;break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(v,this.width,this.height,4)}putAlpha(v){if(v.width!==this.width||v.height!==this.height)throw new Error(`Expected mask size to be ${this.width}x${this.height}, but got ${v.width}x${v.height}`);if(v.channels!==1)throw new Error(`Expected mask to have 1 channel, but got ${v.channels}`);let b=this.data,C=v.data,y=this.width*this.height;if(this.channels===3){let P=new Uint8ClampedArray(y*4);for(let I=0,f=0,E=0;I<y;++I)P[E++]=b[f++],P[E++]=b[f++],P[E++]=b[f++],P[E++]=C[I];return this._update(P,this.width,this.height,4)}else if(this.channels===4){for(let P=0;P<y;++P)b[4*P+3]=C[P];return this}throw new Error(`Expected image to have 3 or 4 channels, but got ${this.channels}`)}async resize(v,b,{resample:C=2}={}){if(this.width===v&&this.height===b)return this;let y=d[C]??C,P=(0,s.isNullishDimension)(v),I=(0,s.isNullishDimension)(b);if(P&&I)return this;if(P?v=b/this.height*this.width:I&&(b=v/this.width*this.height),u){let f=this.channels,E=this.toCanvas(),D=l(v,b).getContext("2d");return D.drawImage(E,0,0,v,b),new h(D.getImageData(0,0,v,b).data,v,b,4).convert(f)}else{let f=this.toSharp();switch(y){case"box":case"hamming":(y==="box"||y==="hamming")&&(console.warn(`Resampling method ${y} is not yet supported. Using bilinear instead.`),y="bilinear");case"nearest":case"bilinear":case"bicubic":f=f.affine([v/this.width,0,0,b/this.height],{interpolator:y});break;case"lanczos":f=f.resize({width:v,height:b,fit:"fill",kernel:"lanczos3"});break;default:throw new Error(`Resampling method ${y} is not supported.`)}return await _(f)}}async pad([v,b,C,y]){if(v=Math.max(v,0),b=Math.max(b,0),C=Math.max(C,0),y=Math.max(y,0),v===0&&b===0&&C===0&&y===0)return this;if(u){let P=this.channels,I=this.toCanvas(),f=this.width+v+b,E=this.height+C+y,D=l(f,E).getContext("2d");return D.drawImage(I,0,0,this.width,this.height,v,C,this.width,this.height),new h(D.getImageData(0,0,f,E).data,f,E,4).convert(P)}else{let P=this.toSharp().extend({left:v,right:b,top:C,bottom:y});return await _(P)}}async crop([v,b,C,y]){if(v=Math.max(v,0),b=Math.max(b,0),C=Math.min(C,this.width-1),y=Math.min(y,this.height-1),v===0&&b===0&&C===this.width-1&&y===this.height-1)return this;let P=C-v+1,I=y-b+1;if(u){let f=this.channels,E=this.toCanvas(),D=l(P,I).getContext("2d");return D.drawImage(E,v,b,P,I,0,0,P,I),new h(D.getImageData(0,0,P,I).data,P,I,4).convert(f)}else{let f=this.toSharp().extract({left:v,top:b,width:P,height:I});return await _(f)}}async center_crop(v,b){if(this.width===v&&this.height===b)return this;let C=(this.width-v)/2,y=(this.height-b)/2;if(u){let P=this.channels,I=this.toCanvas(),f=l(v,b).getContext("2d"),E=0,D=0,O=0,U=0;return C>=0?E=C:O=-C,y>=0?D=y:U=-y,f.drawImage(I,E,D,v,b,O,U,v,b),new h(f.getImageData(0,0,v,b).data,v,b,4).convert(P)}else{let P=this.toSharp();if(C>=0&&y>=0)P=P.extract({left:Math.floor(C),top:Math.floor(y),width:v,height:b});else if(C<=0&&y<=0){let I=Math.floor(-y),f=Math.floor(-C);P=P.extend({top:I,left:f,right:v-this.width-f,bottom:b-this.height-I})}else{let I=[0,0],f=0;y<0?(I[0]=Math.floor(-y),I[1]=b-this.height-I[0]):f=Math.floor(y);let E=[0,0],D=0;C<0?(E[0]=Math.floor(-C),E[1]=v-this.width-E[0]):D=Math.floor(C),P=P.extend({top:I[0],bottom:I[1],left:E[0],right:E[1]}).extract({left:D,top:f,width:v,height:b})}return await _(P)}}async toBlob(v="image/png",b=1){if(!u)throw new Error("toBlob() is only supported in browser environments.");return await this.toCanvas().convertToBlob({type:v,quality:b})}toTensor(v="CHW"){let b=new n.Tensor("uint8",new Uint8Array(this.data),[this.height,this.width,this.channels]);if(v!=="HWC")if(v==="CHW")b=b.permute(2,0,1);else throw new Error(`Unsupported channel format: ${v}`);return b}toCanvas(){if(!u)throw new Error("toCanvas() is only supported in browser environments.");let v=this.clone().rgba(),b=l(v.width,v.height),C=new c(v.data,v.width,v.height);return b.getContext("2d").putImageData(C,0,0),b}split(){let{data:v,width:b,height:C,channels:y}=this,P=v.constructor,I=v.length/y,f=Array.from({length:y},()=>new P(I));for(let E=0;E<I;++E){let D=y*E;for(let O=0;O<y;++O)f[O][E]=v[D+O]}return f.map(E=>new h(E,b,C,1))}_update(v,b,C,y=null){return this.data=v,this.width=b,this.height=C,y!==null&&(this.channels=y),this}clone(){return new h(this.data.slice(),this.width,this.height,this.channels)}convert(v){if(this.channels===v)return this;switch(v){case 1:this.grayscale();break;case 3:this.rgb();break;case 4:this.rgba();break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this}async save(v){if(u){if(a.apis.IS_WEBWORKER_ENV)throw new Error("Unable to save an image from a Web Worker.");let b=v.split(".").pop().toLowerCase(),C=g.get(b)??"image/png",y=await this.toBlob(C);(0,s.saveBlob)(v,y)}else{if(a.apis.IS_FS_AVAILABLE)return await this.toSharp().toFile(v);throw new Error("Unable to save the image because filesystem is disabled in this environment.")}}toSharp(){if(u)throw new Error("toSharp() is only supported in server-side environments.");return i(this.data,{raw:{width:this.width,height:this.height,channels:this.channels}})}}let x=h.read.bind(h)}),"./src/utils/maths.js":((e,r,t)=>{t.r(r),t.d(r,{FFT:()=>x,bankers_round:()=>b,cos_sim:()=>l,dot:()=>i,dynamic_time_warping:()=>C,interpolate_data:()=>s,log_softmax:()=>n,magnitude:()=>c,max:()=>u,medianFilter:()=>F,min:()=>_,permute_data:()=>o,round:()=>v,softmax:()=>a});function s(y,[P,I,f],[E,D],O="bilinear",U=!1){let W=D/f,z=E/I,X=new y.constructor(E*D*P),J=I*f,q=E*D;for(let re=0;re<E;++re)for(let oe=0;oe<D;++oe){let ne=re*D+oe,ye=(oe+.5)/W-.5,Y=(re+.5)/z-.5,H=Math.floor(ye),R=Math.floor(Y),L=Math.min(H+1,f-1),ee=Math.min(R+1,I-1);H=Math.max(H,0),R=Math.max(R,0);let ue=ye-H,ke=Y-R,Ie=(1-ue)*(1-ke),Le=ue*(1-ke),rt=(1-ue)*ke,we=ue*ke,A=R*f,le=ee*f,ge=A+H,be=A+L,Ae=le+H,ve=le+L;for(let pe=0;pe<P;++pe){let Pe=pe*J;X[pe*q+ne]=Ie*y[Pe+ge]+Le*y[Pe+be]+rt*y[Pe+Ae]+we*y[Pe+ve]}}return X}function o(y,P,I){let f=new Array(I.length),E=new Array(I.length);for(let U=I.length-1,W=1;U>=0;--U)E[U]=W,f[U]=P[I[U]],W*=f[U];let D=I.map((U,W)=>E[I.indexOf(W)]),O=new y.constructor(y.length);for(let U=0;U<y.length;++U){let W=0;for(let z=P.length-1,X=U;z>=0;--z)W+=X%P[z]*D[z],X=Math.floor(X/P[z]);O[W]=y[U]}return[O,f]}function a(y){let P=u(y)[0],I=y.map(D=>Math.exp(D-P)),f=I.reduce((D,O)=>D+O,0);return I.map(D=>D/f)}function n(y){let P=u(y)[0],I=0;for(let D=0;D<y.length;++D)I+=Math.exp(y[D]-P);let f=Math.log(I);return y.map(D=>D-P-f)}function i(y,P){let I=0;for(let f=0;f<y.length;++f)I+=y[f]*P[f];return I}function l(y,P){let I=i(y,P),f=c(y),E=c(P);return I/(f*E)}function c(y){return Math.sqrt(y.reduce((P,I)=>P+I*I,0))}function _(y){if(y.length===0)throw Error("Array must not be empty");let P=y[0],I=0;for(let f=1;f<y.length;++f)y[f]<P&&(P=y[f],I=f);return[P,I]}function u(y){if(y.length===0)throw Error("Array must not be empty");let P=y[0],I=0;for(let f=1;f<y.length;++f)y[f]>P&&(P=y[f],I=f);return[P,I]}function d(y){return y>0&&(y&y-1)===0}class g{constructor(P){if(this.size=P|0,this.size<=1||!d(this.size))throw new Error("FFT size must be a power of two larger than 1");this._csize=P<<1,this.table=new Float64Array(this.size*2);for(let f=0;f<this.table.length;f+=2){let E=Math.PI*f/this.size;this.table[f]=Math.cos(E),this.table[f+1]=-Math.sin(E)}let I=0;for(let f=1;this.size>f;f<<=1)++I;this._width=I%2===0?I-1:I,this._bitrev=new Int32Array(1<<this._width);for(let f=0;f<this._bitrev.length;++f){this._bitrev[f]=0;for(let E=0;E<this._width;E+=2){let D=this._width-E-2;this._bitrev[f]|=(f>>>E&3)<<D}}}createComplexArray(){return new Float64Array(this._csize)}fromComplexArray(P,I){let f=I||new Array(P.length>>>1);for(let E=0;E<P.length;E+=2)f[E>>>1]=P[E];return f}toComplexArray(P,I){let f=I||this.createComplexArray();for(let E=0;E<f.length;E+=2)f[E]=P[E>>>1],f[E+1]=0;return f}transform(P,I){if(P===I)throw new Error("Input and output buffers must be different");this._transform4(P,I,1)}realTransform(P,I){if(P===I)throw new Error("Input and output buffers must be different");this._realTransform4(P,I,1)}inverseTransform(P,I){if(P===I)throw new Error("Input and output buffers must be different");this._transform4(P,I,-1);for(let f=0;f<P.length;++f)P[f]/=this.size}_transform4(P,I,f){let E=this._csize,O=1<<this._width,U=E/O<<1,W,z,X=this._bitrev;if(U===4)for(W=0,z=0;W<E;W+=U,++z){let q=X[z];this._singleTransform2(I,P,W,q,O)}else for(W=0,z=0;W<E;W+=U,++z){let q=X[z];this._singleTransform4(I,P,W,q,O,f)}let J=this.table;for(O>>=2;O>=2;O>>=2){U=E/O<<1;let q=U>>>2;for(W=0;W<E;W+=U){let re=W+q-1;for(let oe=W,ne=0;oe<re;oe+=2,ne+=O){let ye=oe,Y=ye+q,H=Y+q,R=H+q,L=P[ye],ee=P[ye+1],ue=P[Y],ke=P[Y+1],Ie=P[H],Le=P[H+1],rt=P[R],we=P[R+1],A=J[ne],le=f*J[ne+1],ge=ue*A-ke*le,be=ue*le+ke*A,Ae=J[2*ne],ve=f*J[2*ne+1],pe=Ie*Ae-Le*ve,Pe=Ie*ve+Le*Ae,fe=J[3*ne],Te=f*J[3*ne+1],We=rt*fe-we*Te,$e=rt*Te+we*fe,Re=L+pe,Ne=ee+Pe,ot=L-pe,De=ee-Pe,Qe=ge+We,je=be+$e,pt=f*(ge-We),Ke=f*(be-$e);P[ye]=Re+Qe,P[ye+1]=Ne+je,P[Y]=ot+Ke,P[Y+1]=De-pt,P[H]=Re-Qe,P[H+1]=Ne-je,P[R]=ot-Ke,P[R+1]=De+pt}}}}_singleTransform2(P,I,f,E,D){let O=P[E],U=P[E+1],W=P[E+D],z=P[E+D+1];I[f]=O+W,I[f+1]=U+z,I[f+2]=O-W,I[f+3]=U-z}_singleTransform4(P,I,f,E,D,O){let U=D*2,W=D*3,z=P[E],X=P[E+1],J=P[E+D],q=P[E+D+1],re=P[E+U],oe=P[E+U+1],ne=P[E+W],ye=P[E+W+1],Y=z+re,H=X+oe,R=z-re,L=X-oe,ee=J+ne,ue=q+ye,ke=O*(J-ne),Ie=O*(q-ye);I[f]=Y+ee,I[f+1]=H+ue,I[f+2]=R+Ie,I[f+3]=L-ke,I[f+4]=Y-ee,I[f+5]=H-ue,I[f+6]=R-Ie,I[f+7]=L+ke}_realTransform4(P,I,f){let E=this._csize,O=1<<this._width,U=E/O<<1,W,z,X=this._bitrev;if(U===4)for(W=0,z=0;W<E;W+=U,++z){let re=X[z];this._singleRealTransform2(I,P,W,re>>>1,O>>>1)}else for(W=0,z=0;W<E;W+=U,++z){let re=X[z];this._singleRealTransform4(I,P,W,re>>>1,O>>>1,f)}let J=this.table;for(O>>=2;O>=2;O>>=2){U=E/O<<1;let re=U>>>1,oe=re>>>1,ne=oe>>>1;for(W=0;W<E;W+=U)for(let ye=0,Y=0;ye<=ne;ye+=2,Y+=O){let H=W+ye,R=H+oe,L=R+oe,ee=L+oe,ue=P[H],ke=P[H+1],Ie=P[R],Le=P[R+1],rt=P[L],we=P[L+1],A=P[ee],le=P[ee+1],ge=ue,be=ke,Ae=J[Y],ve=f*J[Y+1],pe=Ie*Ae-Le*ve,Pe=Ie*ve+Le*Ae,fe=J[2*Y],Te=f*J[2*Y+1],We=rt*fe-we*Te,$e=rt*Te+we*fe,Re=J[3*Y],Ne=f*J[3*Y+1],ot=A*Re-le*Ne,De=A*Ne+le*Re,Qe=ge+We,je=be+$e,pt=ge-We,Ke=be-$e,bt=pe+ot,At=Pe+De,Lt=f*(pe-ot),fr=f*(Pe-De);if(P[H]=Qe+bt,P[H+1]=je+At,P[R]=pt+fr,P[R+1]=Ke-Lt,ye===0){P[L]=Qe-bt,P[L+1]=je-At;continue}if(ye===ne)continue;let zt=W+oe-ye,yr=W+re-ye;P[zt]=pt-f*fr,P[zt+1]=-Ke-f*Lt,P[yr]=Qe-f*bt,P[yr+1]=-je+f*At}}let q=E>>>1;for(let re=2;re<q;re+=2)P[E-re]=P[re],P[E-re+1]=-P[re+1]}_singleRealTransform2(P,I,f,E,D){let O=P[E],U=P[E+D];I[f]=O+U,I[f+1]=0,I[f+2]=O-U,I[f+3]=0}_singleRealTransform4(P,I,f,E,D,O){let U=D*2,W=D*3,z=P[E],X=P[E+D],J=P[E+U],q=P[E+W],re=z+J,oe=z-J,ne=X+q,ye=O*(X-q);I[f]=re+ne,I[f+1]=0,I[f+2]=oe,I[f+3]=-ye,I[f+4]=re-ne,I[f+5]=0,I[f+6]=oe,I[f+7]=ye}}class h{constructor(P){let I=2*(P-1),f=2*(2*P-1),E=2**Math.ceil(Math.log2(f));this.bufferSize=E,this._a=I;let D=new Float64Array(f),O=new Float64Array(E);this._chirpBuffer=new Float64Array(E),this._buffer1=new Float64Array(E),this._buffer2=new Float64Array(E),this._outBuffer1=new Float64Array(E),this._outBuffer2=new Float64Array(E);let U=-2*Math.PI/P,W=Math.cos(U),z=Math.sin(U);for(let X=0;X<f>>1;++X){let J=(X+1-P)**2/2,q=Math.sqrt(W**2+z**2)**J,re=J*Math.atan2(z,W),oe=2*X;D[oe]=q*Math.cos(re),D[oe+1]=q*Math.sin(re),O[oe]=D[oe],O[oe+1]=-D[oe+1]}this._slicedChirpBuffer=D.subarray(I,f),this._f=new g(E>>1),this._f.transform(this._chirpBuffer,O)}_transform(P,I,f){let E=this._buffer1,D=this._buffer2,O=this._outBuffer1,U=this._outBuffer2,W=this._chirpBuffer,z=this._slicedChirpBuffer,X=this._a;if(f)for(let J=0;J<z.length;J+=2){let q=J+1,re=J>>1,oe=I[re];E[J]=oe*z[J],E[q]=oe*z[q]}else for(let J=0;J<z.length;J+=2){let q=J+1;E[J]=I[J]*z[J]-I[q]*z[q],E[q]=I[J]*z[q]+I[q]*z[J]}this._f.transform(O,E);for(let J=0;J<W.length;J+=2){let q=J+1;D[J]=O[J]*W[J]-O[q]*W[q],D[q]=O[J]*W[q]+O[q]*W[J]}this._f.inverseTransform(U,D);for(let J=0;J<U.length;J+=2){let q=U[J+X],re=U[J+X+1],oe=z[J],ne=z[J+1];P[J]=q*oe-re*ne,P[J+1]=q*ne+re*oe}}transform(P,I){this._transform(P,I,!1)}realTransform(P,I){this._transform(P,I,!0)}}class x{constructor(P){this.fft_length=P,this.isPowerOfTwo=d(P),this.isPowerOfTwo?(this.fft=new g(P),this.outputBufferSize=2*P):(this.fft=new h(P),this.outputBufferSize=this.fft.bufferSize)}realTransform(P,I){this.fft.realTransform(P,I)}transform(P,I){this.fft.transform(P,I)}}function F(y,P){if(P%2===0||P<=0)throw new Error("Window size must be a positive odd number");let I=new y.constructor(y.length),f=new y.constructor(P),E=Math.floor(P/2);for(let D=0;D<y.length;++D){let O=0;for(let U=-E;U<=E;++U){let W=D+U;W<0?W=Math.abs(W):W>=y.length&&(W=2*(y.length-1)-W),f[O++]=y[W]}f.sort(),I[D]=f[E]}return I}function v(y,P){let I=Math.pow(10,P);return Math.round(y*I)/I}function b(y){let P=Math.round(y);return Math.abs(y)%1===.5?P%2===0?P:P-1:P}function C(y){let P=y.length,I=y[0].length,f=[P+1,I+1],E=Array.from({length:f[0]},()=>Array(f[1]).fill(1/0));E[0][0]=0;let D=Array.from({length:f[0]},()=>Array(f[1]).fill(-1));for(let X=1;X<f[1];++X)for(let J=1;J<f[0];++J){let q=E[J-1][X-1],re=E[J-1][X],oe=E[J][X-1],ne,ye;q<re&&q<oe?(ne=q,ye=0):re<q&&re<oe?(ne=re,ye=1):(ne=oe,ye=2),E[J][X]=y[J-1][X-1]+ne,D[J][X]=ye}for(let X=0;X<f[1];++X)D[0][X]=2;for(let X=0;X<f[0];++X)D[X][0]=1;let O=P,U=I,W=[],z=[];for(;O>0||U>0;)switch(W.push(O-1),z.push(U-1),D[O][U]){case 0:--O,--U;break;case 1:--O;break;case 2:--U;break;default:throw new Error(`Internal error in dynamic time warping. Unexpected trace[${O}, ${U}]. Please file a bug report.`)}return W.reverse(),z.reverse(),[W,z]}}),"./src/utils/tensor.js":((e,r,t)=>{t.r(r),t.d(r,{DataTypeMap:()=>n,Tensor:()=>i,cat:()=>I,full:()=>z,full_like:()=>X,interpolate:()=>_,interpolate_4d:()=>u,layer_norm:()=>b,matmul:()=>d,mean:()=>O,mean_pooling:()=>v,ones:()=>J,ones_like:()=>q,permute:()=>c,quantize_embeddings:()=>Y,rand:()=>ne,randn:()=>ye,rfft:()=>g,slice:()=>F,stack:()=>f,std_mean:()=>D,topk:()=>h,zeros:()=>re,zeros_like:()=>oe});var s=t("./src/utils/maths.js"),o=t("./src/backends/onnx.js"),a=t("./src/ops/registry.js");let n=Object.freeze({float32:Float32Array,float16:typeof Float16Array<"u"?Float16Array:Uint16Array,float64:Float64Array,string:Array,int8:Int8Array,uint8:Uint8Array,int16:Int16Array,uint16:Uint16Array,int32:Int32Array,uint32:Uint32Array,int64:BigInt64Array,uint64:BigUint64Array,bool:Uint8Array,uint4:Uint8Array,int4:Int8Array});class i{get dims(){return this.ort_tensor.dims}set dims(R){this.ort_tensor.dims=R}get type(){return this.ort_tensor.type}get data(){return this.ort_tensor.data}get size(){return this.ort_tensor.size}get location(){return this.ort_tensor.location}ort_tensor;constructor(...R){return(0,o.isONNXTensor)(R[0])?this.ort_tensor=R[0]:this.ort_tensor=new o.Tensor(R[0],R[1],R[2]),new Proxy(this,{get:(L,ee)=>{if(typeof ee=="string"){let ue=Number(ee);if(Number.isInteger(ue))return L._getitem(ue)}return L[ee]},set:(L,ee,ue)=>L[ee]=ue})}dispose(){this.ort_tensor.dispose()}*[Symbol.iterator](){let[R,...L]=this.dims;if(L.length>0){let ee=L.reduce((ue,ke)=>ue*ke);for(let ue=0;ue<R;++ue)yield this._subarray(ue,ee,L)}else yield*this.data}_getitem(R){let[L,...ee]=this.dims;if(R=P(R,L),ee.length>0){let ue=ee.reduce((ke,Ie)=>ke*Ie);return this._subarray(R,ue,ee)}else return new i(this.type,[this.data[R]],ee)}indexOf(R){let L=this.data;for(let ee=0;ee<L.length;++ee)if(L[ee]==R)return ee;return-1}_subarray(R,L,ee){let ue=R*L,ke=(R+1)*L,Ie="subarray"in this.data?this.data.subarray(ue,ke):this.data.slice(ue,ke);return new i(this.type,Ie,ee)}item(){let R=this.data;if(R.length!==1)throw new Error(`a Tensor with ${R.length} elements cannot be converted to Scalar`);return R[0]}tolist(){return l(this.data,this.dims)}sigmoid(){return this.clone().sigmoid_()}sigmoid_(){let R=this.data;for(let L=0;L<R.length;++L)R[L]=1/(1+Math.exp(-R[L]));return this}map(R){return this.clone().map_(R)}map_(R){let L=this.data;for(let ee=0;ee<L.length;++ee)L[ee]=R(L[ee],ee,L);return this}mul(R){return this.clone().mul_(R)}mul_(R){let L=this.data;for(let ee=0;ee<L.length;++ee)L[ee]*=R;return this}div(R){return this.clone().div_(R)}div_(R){let L=this.data;for(let ee=0;ee<L.length;++ee)L[ee]/=R;return this}add(R){return this.clone().add_(R)}add_(R){let L=this.data;for(let ee=0;ee<L.length;++ee)L[ee]+=R;return this}sub(R){return this.clone().sub_(R)}sub_(R){let L=this.data;for(let ee=0;ee<L.length;++ee)L[ee]-=R;return this}clone(){return new i(this.type,this.data.slice(),this.dims.slice())}slice(...R){let L=[],ee=[];for(let A=0;A<this.dims.length;++A){let le=R[A];if(le==null)ee.push([0,this.dims[A]]),L.push(this.dims[A]);else if(typeof le=="number")le=P(le,this.dims[A],A),ee.push([le,le+1]);else if(Array.isArray(le)&&le.length===2){let[ge,be]=le;if(ge=ge===null?0:P(ge,this.dims[A],A,!1),be=be===null?this.dims[A]:P(be,this.dims[A],A,!1),ge>be)throw new Error(`Invalid slice: ${le}`);let Ae=[Math.max(ge,0),Math.min(be,this.dims[A])];ee.push(Ae),L.push(Ae[1]-Ae[0])}else throw new Error(`Invalid slice: ${le}`)}let ue=ee.map(([A,le])=>le-A),ke=ue.reduce((A,le)=>A*le),Ie=this.data,Le=new Ie.constructor(ke),rt=this.stride(),we=!0;for(let A=1;A<ue.length;++A)if(ee[A][0]!==0||ee[A][1]!==this.dims[A]){we=!1;break}if(we){let A=ee[0][0]*rt[0],le=ee[0][1]*rt[0];if(ArrayBuffer.isView(Ie))Le.set(Ie.subarray(A,le));else if(Array.isArray(Ie)){let ge=Ie.slice(A,le);for(let be=0;be<ge.length;++be)Le[be]=ge[be]}else throw new Error("Unsupported data type for slicing")}else for(let A=0;A<ke;++A){let le=0;for(let ge=ue.length-1,be=A;ge>=0;--ge){let Ae=ue[ge];le+=(be%Ae+ee[ge][0])*rt[ge],be=Math.floor(be/Ae)}Le[A]=Ie[le]}return new i(this.type,Le,L)}permute(...R){return c(this,R)}transpose(...R){return this.permute(...R)}sum(R=null,L=!1){return this.norm(1,R,L)}norm(R="fro",L=null,ee=!1){if(R==="fro")R=2;else if(typeof R=="string")throw Error(`Unsupported norm: ${R}`);let ue=this.data,ke=(we,A)=>we+A**R;if(L===null){let we=ue.reduce(ke,0)**(1/R);return new i(this.type,[we],[])}let[Ie,Le,rt]=E(ke,this,L,ee);if(R!==1)for(let we=0;we<Le.length;++we)Le[we]=Le[we]**(1/R);return new i(Ie,Le,rt)}normalize_(R=2,L=1){L=P(L,this.dims.length);let ee=this.norm(R,L,!0),ue=this.data,ke=ee.data;for(let Ie=0;Ie<ue.length;++Ie){let Le=0;for(let rt=this.dims.length-1,we=Ie,A=1;rt>=0;--rt){let le=this.dims[rt];if(rt!==L){let ge=we%le;Le+=ge*A,A*=this.dims[rt]}we=Math.floor(we/le)}ue[Ie]/=ke[Le]}return this}normalize(R=2,L=1){return this.clone().normalize_(R,L)}stride(){return U(this.dims)}squeeze(R=null){return new i(this.type,this.data,C(this.dims,R))}squeeze_(R=null){return this.dims=C(this.dims,R),this}unsqueeze(R=null){return new i(this.type,this.data,y(this.dims,R))}unsqueeze_(R=null){return this.dims=y(this.dims,R),this}flatten_(R=0,L=-1){L=(L+this.dims.length)%this.dims.length;let ee=this.dims.slice(0,R),ue=this.dims.slice(R,L+1),ke=this.dims.slice(L+1);return this.dims=[...ee,ue.reduce((Ie,Le)=>Ie*Le,1),...ke],this}flatten(R=0,L=-1){return this.clone().flatten_(R,L)}view(...R){let L=-1;for(let ue=0;ue<R.length;++ue)if(R[ue]===-1){if(L!==-1)throw new Error("Only one dimension can be inferred");L=ue}let ee=this.data;if(L!==-1){let ue=R.reduce((ke,Ie,Le)=>Le!==L?ke*Ie:ke,1);R[L]=ee.length/ue}return new i(this.type,ee,R)}neg_(){let R=this.data;for(let L=0;L<R.length;++L)R[L]=-R[L];return this}neg(){return this.clone().neg_()}gt(R){let L=new Uint8Array(this.data.length),ee=this.data;for(let ue=0;ue<ee.length;++ue)L[ue]=ee[ue]>R?1:0;return new i("bool",L,this.dims)}lt(R){let L=new Uint8Array(this.data.length),ee=this.data;for(let ue=0;ue<ee.length;++ue)L[ue]=ee[ue]<R?1:0;return new i("bool",L,this.dims)}clamp_(R,L){let ee=this.data;for(let ue=0;ue<ee.length;++ue)ee[ue]=Math.min(Math.max(ee[ue],R),L);return this}clamp(R,L){return this.clone().clamp_(R,L)}round_(){let R=this.data;for(let L=0;L<R.length;++L)R[L]=Math.round(R[L]);return this}round(){return this.clone().round_()}mean(R=null,L=!1){return O(this,R,L)}min(R=null,L=!1){if(R===null){let Ie=(0,s.min)(this.data)[0];return new i(this.type,[Ie],[])}let[ee,ue,ke]=E((Ie,Le)=>Math.min(Ie,Le),this,R,L,1/0);return new i(ee,ue,ke)}max(R=null,L=!1){if(R===null){let Ie=(0,s.max)(this.data)[0];return new i(this.type,[Ie],[])}let[ee,ue,ke]=E((Ie,Le)=>Math.max(Ie,Le),this,R,L,-1/0);return new i(ee,ue,ke)}argmin(R=null,L=!1){if(R!==null)throw new Error("`dim !== null` not yet implemented.");let ee=(0,s.min)(this.data)[1];return new i("int64",[BigInt(ee)],[])}argmax(R=null,L=!1){if(R!==null)throw new Error("`dim !== null` not yet implemented.");let ee=(0,s.max)(this.data)[1];return new i("int64",[BigInt(ee)],[])}to(R){if(this.type===R)return this;if(!n.hasOwnProperty(R))throw new Error(`Unsupported type: ${R}`);let L,ee=["int64","uint64"].includes(this.type),ue=["int64","uint64"].includes(R);return ee&&!ue?L=Number:!ee&&ue&&(["float16","float32","float64"].includes(this.type)?L=ke=>BigInt(Math.floor(ke)):L=BigInt),new i(R,n[R].from(this.data,L),this.dims)}}function l(H,R){let L=H.length,ee=R.reduce((ke,Ie)=>ke*Ie);if(L!==ee)throw Error(`cannot reshape array of size ${L} into shape (${R})`);let ue=H;for(let ke=R.length-1;ke>=0;ke--)ue=ue.reduce((Ie,Le)=>{let rt=Ie[Ie.length-1];return rt.length<R[ke]?rt.push(Le):Ie.push([Le]),Ie},[[]]);return ue[0]}function c(H,R){let[L,ee]=(0,s.permute_data)(H.data,H.dims,R);return new i(H.type,L,ee)}function _(H,[R,L],ee="bilinear",ue=!1){let ke=H.dims.at(-3)??1,Ie=H.dims.at(-2),Le=H.dims.at(-1),rt=(0,s.interpolate_data)(H.data,[ke,Ie,Le],[R,L],ee,ue);return new i(H.type,rt,[ke,R,L])}async function u(H,{size:R=null,mode:L="bilinear"}={}){if(H.dims.length!==4)throw new Error("`interpolate_4d` currently only supports 4D input.");if(!R)throw new Error("`interpolate_4d` requires a `size` argument.");let ee;if(R.length===2)ee=[...H.dims.slice(0,2),...R];else if(R.length===3)ee=[H.dims[0],...R];else if(R.length===4)ee=R;else throw new Error("`size` must be of length 2, 3, or 4.");let ue;if(L==="nearest")ue=await a.TensorOpRegistry.nearest_interpolate_4d;else if(L==="bilinear")ue=await a.TensorOpRegistry.bilinear_interpolate_4d;else if(L==="bicubic")ue=await a.TensorOpRegistry.bicubic_interpolate_4d;else throw new Error(`Unsupported mode: ${L}`);let ke=new i("int64",new BigInt64Array(ee.map(BigInt)),[ee.length]);return await ue({x:H,s:ke})}async function d(H,R){return await(await a.TensorOpRegistry.matmul)({a:H,b:R})}async function g(H,R){return await(await a.TensorOpRegistry.rfft)({x:H,a:R})}async function h(H,R){let L=await a.TensorOpRegistry.top_k;return R==null?R=H.dims.at(-1):R=Math.min(R,H.dims.at(-1)),await L({x:H,k:new i("int64",[BigInt(R)],[1])})}let x=H=>new i("int64",H,[H.length]);async function F(H,R,L,ee,ue){return await(await a.TensorOpRegistry.slice)({x:H,s:x(R),e:x(L),a:x(ee),t:x(ue??new Array(ee.length).fill(1))})}function v(H,R){let L=H.data,ee=R.data,ue=[H.dims[0],H.dims[2]],ke=new L.constructor(ue[0]*ue[1]),[Ie,Le,rt]=H.dims,we=0;for(let A=0;A<Ie;++A){let le=A*rt*Le;for(let ge=0;ge<rt;++ge){let be=0,Ae=0,ve=A*Le,pe=le+ge;for(let fe=0;fe<Le;++fe){let Te=Number(ee[ve+fe]);Ae+=Te,be+=L[pe+fe*rt]*Te}let Pe=be/Ae;ke[we++]=Pe}}return new i(H.type,ke,ue)}function b(H,R,{eps:L=1e-5}={}){if(H.dims.length!==2)throw new Error("`layer_norm` currently only supports 2D input.");let[ee,ue]=H.dims;if(R.length!==1&&R[0]!==ue)throw new Error("`normalized_shape` must be a 1D array with shape `[input.dims[1]]`.");let[ke,Ie]=D(H,1,0,!0),Le=ke.data,rt=Ie.data,we=H.data,A=new we.constructor(we.length);for(let le=0;le<ee;++le){let ge=le*ue;for(let be=0;be<ue;++be){let Ae=ge+be;A[Ae]=(we[Ae]-rt[le])/(Le[le]+L)}}return new i(H.type,A,H.dims)}function C(H,R){return H=H.slice(),R===null?H=H.filter(L=>L!==1):typeof R=="number"?H[R]===1&&H.splice(R,1):Array.isArray(R)&&(H=H.filter((L,ee)=>L!==1||!R.includes(ee))),H}function y(H,R){return R=P(R,H.length+1),H=H.slice(),H.splice(R,0,1),H}function P(H,R,L=null,ee=!0){if(H<-R||H>=R){if(ee)throw new Error(`IndexError: index ${H} is out of bounds for dimension${L===null?"":" "+L} with size ${R}`);return H<-R?0:R}return H<0&&(H=(H%R+R)%R),H}function I(H,R=0){R=P(R,H[0].dims.length);let L=H[0].dims.slice();L[R]=H.reduce((Ie,Le)=>Ie+Le.dims[R],0);let ee=L.reduce((Ie,Le)=>Ie*Le,1),ue=new H[0].data.constructor(ee),ke=H[0].type;if(R===0){let Ie=0;for(let Le of H){let rt=Le.data;ue.set(rt,Ie),Ie+=rt.length}}else{let Ie=0;for(let Le=0;Le<H.length;++Le){let{data:rt,dims:we}=H[Le];for(let A=0;A<rt.length;++A){let le=0;for(let ge=we.length-1,be=A,Ae=1;ge>=0;--ge){let ve=we[ge],pe=be%ve;ge===R&&(pe+=Ie),le+=pe*Ae,Ae*=L[ge],be=Math.floor(be/ve)}ue[le]=rt[A]}Ie+=we[R]}}return new i(ke,ue,L)}function f(H,R=0){return I(H.map(L=>L.unsqueeze(R)),R)}function E(H,R,L=null,ee=!1,ue=null){let ke=R.data,Ie=R.dims;L=P(L,Ie.length);let Le=Ie.slice();Le[L]=1;let rt=new ke.constructor(ke.length/Ie[L]);ue!==null&&rt.fill(ue);for(let we=0;we<ke.length;++we){let A=0;for(let le=Ie.length-1,ge=we,be=1;le>=0;--le){let Ae=Ie[le];if(le!==L){let ve=ge%Ae;A+=ve*be,be*=Le[le]}ge=Math.floor(ge/Ae)}rt[A]=H(rt[A],ke[we],we,A)}return ee||Le.splice(L,1),[R.type,rt,Le]}function D(H,R=null,L=1,ee=!1){let ue=H.data,ke=H.dims;if(R===null){let be=ue.reduce((Pe,fe)=>Pe+fe,0)/ue.length,Ae=Math.sqrt(ue.reduce((Pe,fe)=>Pe+(fe-be)**2,0)/(ue.length-L)),ve=new i(H.type,[be],[]);return[new i(H.type,[Ae],[]),ve]}R=P(R,ke.length);let Ie=O(H,R,ee),Le=Ie.data,[rt,we,A]=E((ge,be,Ae,ve)=>ge+(be-Le[ve])**2,H,R,ee);for(let ge=0;ge<we.length;++ge)we[ge]=Math.sqrt(we[ge]/(ke[R]-L));return[new i(rt,we,A),Ie]}function O(H,R=null,L=!1){let ee=H.dims,ue=H.data;if(R===null){let rt=ue.reduce((we,A)=>we+A,0);return new i(H.type,[rt/ue.length],[])}R=P(R,ee.length);let[ke,Ie,Le]=E((rt,we)=>rt+we,H,R,L);if(ee[R]!==1)for(let rt=0;rt<Ie.length;++rt)Ie[rt]/=ee[R];return new i(ke,Ie,Le)}function U(H){let R=new Array(H.length);for(let L=H.length-1,ee=1;L>=0;--L)R[L]=ee,ee*=H[L];return R}function W(H,R,L,ee){let ue=H.reduce((ke,Ie)=>ke*Ie,1);return new i(L,new ee(ue).fill(R),H)}function z(H,R){let L,ee;if(typeof R=="number")L="float32",ee=Float32Array;else if(typeof R=="bigint")L="int64",ee=BigInt64Array;else if(typeof R=="boolean")L="bool",ee=Uint8Array;else throw new Error(`Unsupported data type: ${typeof R}`);return W(H,R,L,ee)}function X(H,R){return z(H.dims,R)}function J(H){return W(H,1n,"int64",BigInt64Array)}function q(H){return J(H.dims)}function re(H){return W(H,0n,"int64",BigInt64Array)}function oe(H){return re(H.dims)}function ne(H){let R=H.reduce((L,ee)=>L*ee,1);return new i("float32",Float32Array.from({length:R},()=>Math.random()),H)}function ye(H){let R=H.reduce((ee,ue)=>ee*ue,1);function L(){let ee=1-Math.random(),ue=1-Math.random();return Math.sqrt(-2*Math.log(ee))*Math.cos(2*Math.PI*ue)}return new i("float32",Float32Array.from({length:R},()=>L()),H)}function Y(H,R){if(H.dims.length!==2)throw new Error("The tensor must have 2 dimensions");if(H.dims.at(-1)%8!==0)throw new Error("The last dimension of the tensor must be a multiple of 8");if(!["binary","ubinary"].includes(R))throw new Error("The precision must be either 'binary' or 'ubinary'");let L=R==="binary",ee=L?"int8":"uint8",ue=L?Int8Array:Uint8Array,ke=H.data,Ie=new ue(ke.length/8);for(let Le=0;Le<ke.length;++Le){let rt=ke[Le]>0?1:0,we=Math.floor(Le/8),A=Le%8;Ie[we]|=rt<<7-A,L&&A===0&&(Ie[we]-=128)}return new i(ee,Ie,[H.dims[0],H.dims[1]/8])}}),"./src/utils/video.js":((e,r,t)=>{t.r(r),t.d(r,{RawVideo:()=>n,RawVideoFrame:()=>a,load_video:()=>i});var s=t("./src/utils/image.js"),o=t("./src/env.js");class a{constructor(c,_){this.image=c,this.timestamp=_}}class n{constructor(c,_){c.length>0&&c[0]instanceof s.RawImage&&(c=c.map((u,d)=>new a(u,(d+1)/(c.length+1)*_))),this.frames=c,this.duration=_}get width(){return this.frames[0].image.width}get height(){return this.frames[0].image.height}get fps(){return this.frames.length/this.duration}}async function i(l,{num_frames:c=null,fps:_=null}={}){if(!o.apis.IS_BROWSER_ENV)throw new Error("`load_video` is currently only supported in browser environments.");if(c==null&&_==null)throw new Error("Either num_frames or fps must be provided.");let u=[],d=document.createElement("video");if(d.crossOrigin="anonymous",d.muted=!0,typeof l=="string")d.src=l;else if(l instanceof Blob)d.src=URL.createObjectURL(l);else if(l instanceof HTMLVideoElement)d.src=l.src;else throw new Error("Invalid URL or video element provided.");if(await new Promise(C=>d.onloadedmetadata=C),d.seekable.start(0)===d.seekable.end(0)){let y=await(await fetch(d.src)).blob();d.src=URL.createObjectURL(y),await new Promise(P=>d.onloadedmetadata=P)}let g=d.duration,h,x;c!=null?(h=c,x=c===1?0:g/(c-1)):(x=1/_,h=Math.floor(g/x));let F=[];for(let C=0;C<h;++C)F.push(c===1?g/2:C*x);let v=document.createElement("canvas");v.width=d.videoWidth,v.height=d.videoHeight;let b=v.getContext("2d",{willReadFrequently:!0});for(let C of F){d.currentTime=C,await new Promise(f=>{d.onseeked=f}),b.drawImage(d,0,0,v.width,v.height);let y=b.getImageData(0,0,v.width,v.height),P=new s.RawImage(y.data,v.width,v.height,4),I=new a(P,C);u.push(I)}return d.remove(),new n(u,g)}})},A0={};function Vt(e){var r=A0[e];if(r!==void 0)return r.exports;var t=A0[e]={exports:{}};return fE[e](t,t.exports,Vt),t.exports}(()=>{var e=Object.getPrototypeOf?t=>Object.getPrototypeOf(t):t=>t.__proto__,r;Vt.t=function(t,s){if(s&1&&(t=this(t)),s&8||typeof t=="object"&&t&&(s&4&&t.__esModule||s&16&&typeof t.then=="function"))return t;var o=Object.create(null);Vt.r(o);var a={};r=r||[null,e({}),e([]),e(e)];for(var n=s&2&&t;typeof n=="object"&&!~r.indexOf(n);n=e(n))Object.getOwnPropertyNames(n).forEach(i=>a[i]=()=>t[i]);return a.default=()=>t,Vt.d(o,a),o}})();Vt.d=(e,r)=>{for(var t in r)Vt.o(r,t)&&!Vt.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})};Vt.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);Vt.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var p={};(()=>{Vt.r(p),Vt.d(p,{ASTFeatureExtractor:()=>u.ASTFeatureExtractor,ASTForAudioClassification:()=>t.ASTForAudioClassification,ASTModel:()=>t.ASTModel,ASTPreTrainedModel:()=>t.ASTPreTrainedModel,AlbertForMaskedLM:()=>t.AlbertForMaskedLM,AlbertForQuestionAnswering:()=>t.AlbertForQuestionAnswering,AlbertForSequenceClassification:()=>t.AlbertForSequenceClassification,AlbertModel:()=>t.AlbertModel,AlbertPreTrainedModel:()=>t.AlbertPreTrainedModel,AlbertTokenizer:()=>s.AlbertTokenizer,ArceeForCausalLM:()=>t.ArceeForCausalLM,ArceeModel:()=>t.ArceeModel,ArceePreTrainedModel:()=>t.ArceePreTrainedModel,AudioClassificationPipeline:()=>r.AudioClassificationPipeline,AutoConfig:()=>o.AutoConfig,AutoFeatureExtractor:()=>d.AutoFeatureExtractor,AutoImageProcessor:()=>x.AutoImageProcessor,AutoModel:()=>t.AutoModel,AutoModelForAudioClassification:()=>t.AutoModelForAudioClassification,AutoModelForAudioFrameClassification:()=>t.AutoModelForAudioFrameClassification,AutoModelForAudioTextToText:()=>t.AutoModelForAudioTextToText,AutoModelForCTC:()=>t.AutoModelForCTC,AutoModelForCausalLM:()=>t.AutoModelForCausalLM,AutoModelForDepthEstimation:()=>t.AutoModelForDepthEstimation,AutoModelForDocumentQuestionAnswering:()=>t.AutoModelForDocumentQuestionAnswering,AutoModelForImageClassification:()=>t.AutoModelForImageClassification,AutoModelForImageFeatureExtraction:()=>t.AutoModelForImageFeatureExtraction,AutoModelForImageMatting:()=>t.AutoModelForImageMatting,AutoModelForImageSegmentation:()=>t.AutoModelForImageSegmentation,AutoModelForImageTextToText:()=>t.AutoModelForImageTextToText,AutoModelForImageToImage:()=>t.AutoModelForImageToImage,AutoModelForMaskGeneration:()=>t.AutoModelForMaskGeneration,AutoModelForMaskedLM:()=>t.AutoModelForMaskedLM,AutoModelForNormalEstimation:()=>t.AutoModelForNormalEstimation,AutoModelForObjectDetection:()=>t.AutoModelForObjectDetection,AutoModelForPoseEstimation:()=>t.AutoModelForPoseEstimation,AutoModelForQuestionAnswering:()=>t.AutoModelForQuestionAnswering,AutoModelForSemanticSegmentation:()=>t.AutoModelForSemanticSegmentation,AutoModelForSeq2SeqLM:()=>t.AutoModelForSeq2SeqLM,AutoModelForSequenceClassification:()=>t.AutoModelForSequenceClassification,AutoModelForSpeechSeq2Seq:()=>t.AutoModelForSpeechSeq2Seq,AutoModelForTextToSpectrogram:()=>t.AutoModelForTextToSpectrogram,AutoModelForTextToWaveform:()=>t.AutoModelForTextToWaveform,AutoModelForTokenClassification:()=>t.AutoModelForTokenClassification,AutoModelForUniversalSegmentation:()=>t.AutoModelForUniversalSegmentation,AutoModelForVision2Seq:()=>t.AutoModelForVision2Seq,AutoModelForXVector:()=>t.AutoModelForXVector,AutoModelForZeroShotObjectDetection:()=>t.AutoModelForZeroShotObjectDetection,AutoProcessor:()=>b.AutoProcessor,AutoTokenizer:()=>s.AutoTokenizer,AutomaticSpeechRecognitionPipeline:()=>r.AutomaticSpeechRecognitionPipeline,BackgroundRemovalPipeline:()=>r.BackgroundRemovalPipeline,BartForConditionalGeneration:()=>t.BartForConditionalGeneration,BartForSequenceClassification:()=>t.BartForSequenceClassification,BartModel:()=>t.BartModel,BartPretrainedModel:()=>t.BartPretrainedModel,BartTokenizer:()=>s.BartTokenizer,BaseModelOutput:()=>t.BaseModelOutput,BaseStreamer:()=>C.BaseStreamer,BeitFeatureExtractor:()=>h.BeitFeatureExtractor,BeitForImageClassification:()=>t.BeitForImageClassification,BeitModel:()=>t.BeitModel,BeitPreTrainedModel:()=>t.BeitPreTrainedModel,BertForMaskedLM:()=>t.BertForMaskedLM,BertForQuestionAnswering:()=>t.BertForQuestionAnswering,BertForSequenceClassification:()=>t.BertForSequenceClassification,BertForTokenClassification:()=>t.BertForTokenClassification,BertModel:()=>t.BertModel,BertPreTrainedModel:()=>t.BertPreTrainedModel,BertTokenizer:()=>s.BertTokenizer,BitImageProcessor:()=>h.BitImageProcessor,BlenderbotForConditionalGeneration:()=>t.BlenderbotForConditionalGeneration,BlenderbotModel:()=>t.BlenderbotModel,BlenderbotPreTrainedModel:()=>t.BlenderbotPreTrainedModel,BlenderbotSmallForConditionalGeneration:()=>t.BlenderbotSmallForConditionalGeneration,BlenderbotSmallModel:()=>t.BlenderbotSmallModel,BlenderbotSmallPreTrainedModel:()=>t.BlenderbotSmallPreTrainedModel,BlenderbotSmallTokenizer:()=>s.BlenderbotSmallTokenizer,BlenderbotTokenizer:()=>s.BlenderbotTokenizer,BloomForCausalLM:()=>t.BloomForCausalLM,BloomModel:()=>t.BloomModel,BloomPreTrainedModel:()=>t.BloomPreTrainedModel,BloomTokenizer:()=>s.BloomTokenizer,CLIPFeatureExtractor:()=>h.CLIPFeatureExtractor,CLIPImageProcessor:()=>h.CLIPImageProcessor,CLIPModel:()=>t.CLIPModel,CLIPPreTrainedModel:()=>t.CLIPPreTrainedModel,CLIPSegForImageSegmentation:()=>t.CLIPSegForImageSegmentation,CLIPSegModel:()=>t.CLIPSegModel,CLIPSegPreTrainedModel:()=>t.CLIPSegPreTrainedModel,CLIPTextModel:()=>t.CLIPTextModel,CLIPTextModelWithProjection:()=>t.CLIPTextModelWithProjection,CLIPTokenizer:()=>s.CLIPTokenizer,CLIPVisionModel:()=>t.CLIPVisionModel,CLIPVisionModelWithProjection:()=>t.CLIPVisionModelWithProjection,CamembertForMaskedLM:()=>t.CamembertForMaskedLM,CamembertForQuestionAnswering:()=>t.CamembertForQuestionAnswering,CamembertForSequenceClassification:()=>t.CamembertForSequenceClassification,CamembertForTokenClassification:()=>t.CamembertForTokenClassification,CamembertModel:()=>t.CamembertModel,CamembertPreTrainedModel:()=>t.CamembertPreTrainedModel,CamembertTokenizer:()=>s.CamembertTokenizer,CausalLMOutput:()=>t.CausalLMOutput,CausalLMOutputWithPast:()=>t.CausalLMOutputWithPast,ChineseCLIPFeatureExtractor:()=>h.ChineseCLIPFeatureExtractor,ChineseCLIPModel:()=>t.ChineseCLIPModel,ChineseCLIPPreTrainedModel:()=>t.ChineseCLIPPreTrainedModel,ClapAudioModelWithProjection:()=>t.ClapAudioModelWithProjection,ClapFeatureExtractor:()=>u.ClapFeatureExtractor,ClapModel:()=>t.ClapModel,ClapPreTrainedModel:()=>t.ClapPreTrainedModel,ClapTextModelWithProjection:()=>t.ClapTextModelWithProjection,ClassifierFreeGuidanceLogitsProcessor:()=>P.ClassifierFreeGuidanceLogitsProcessor,CodeGenForCausalLM:()=>t.CodeGenForCausalLM,CodeGenModel:()=>t.CodeGenModel,CodeGenPreTrainedModel:()=>t.CodeGenPreTrainedModel,CodeGenTokenizer:()=>s.CodeGenTokenizer,CodeLlamaTokenizer:()=>s.CodeLlamaTokenizer,CohereForCausalLM:()=>t.CohereForCausalLM,CohereModel:()=>t.CohereModel,CoherePreTrainedModel:()=>t.CoherePreTrainedModel,CohereTokenizer:()=>s.CohereTokenizer,ConvBertForMaskedLM:()=>t.ConvBertForMaskedLM,ConvBertForQuestionAnswering:()=>t.ConvBertForQuestionAnswering,ConvBertForSequenceClassification:()=>t.ConvBertForSequenceClassification,ConvBertForTokenClassification:()=>t.ConvBertForTokenClassification,ConvBertModel:()=>t.ConvBertModel,ConvBertPreTrainedModel:()=>t.ConvBertPreTrainedModel,ConvBertTokenizer:()=>s.ConvBertTokenizer,ConvNextFeatureExtractor:()=>h.ConvNextFeatureExtractor,ConvNextForImageClassification:()=>t.ConvNextForImageClassification,ConvNextImageProcessor:()=>h.ConvNextImageProcessor,ConvNextModel:()=>t.ConvNextModel,ConvNextPreTrainedModel:()=>t.ConvNextPreTrainedModel,ConvNextV2ForImageClassification:()=>t.ConvNextV2ForImageClassification,ConvNextV2Model:()=>t.ConvNextV2Model,ConvNextV2PreTrainedModel:()=>t.ConvNextV2PreTrainedModel,DFineForObjectDetection:()=>t.DFineForObjectDetection,DFineModel:()=>t.DFineModel,DFinePreTrainedModel:()=>t.DFinePreTrainedModel,DINOv3ConvNextModel:()=>t.DINOv3ConvNextModel,DINOv3ConvNextPreTrainedModel:()=>t.DINOv3ConvNextPreTrainedModel,DINOv3ViTImageProcessor:()=>h.DINOv3ViTImageProcessor,DINOv3ViTModel:()=>t.DINOv3ViTModel,DINOv3ViTPreTrainedModel:()=>t.DINOv3ViTPreTrainedModel,DPTFeatureExtractor:()=>h.DPTFeatureExtractor,DPTForDepthEstimation:()=>t.DPTForDepthEstimation,DPTImageProcessor:()=>h.DPTImageProcessor,DPTModel:()=>t.DPTModel,DPTPreTrainedModel:()=>t.DPTPreTrainedModel,DacDecoderModel:()=>t.DacDecoderModel,DacDecoderOutput:()=>t.DacDecoderOutput,DacEncoderModel:()=>t.DacEncoderModel,DacEncoderOutput:()=>t.DacEncoderOutput,DacFeatureExtractor:()=>u.DacFeatureExtractor,DacModel:()=>t.DacModel,DacPreTrainedModel:()=>t.DacPreTrainedModel,DataTypeMap:()=>l.DataTypeMap,DebertaForMaskedLM:()=>t.DebertaForMaskedLM,DebertaForQuestionAnswering:()=>t.DebertaForQuestionAnswering,DebertaForSequenceClassification:()=>t.DebertaForSequenceClassification,DebertaForTokenClassification:()=>t.DebertaForTokenClassification,DebertaModel:()=>t.DebertaModel,DebertaPreTrainedModel:()=>t.DebertaPreTrainedModel,DebertaTokenizer:()=>s.DebertaTokenizer,DebertaV2ForMaskedLM:()=>t.DebertaV2ForMaskedLM,DebertaV2ForQuestionAnswering:()=>t.DebertaV2ForQuestionAnswering,DebertaV2ForSequenceClassification:()=>t.DebertaV2ForSequenceClassification,DebertaV2ForTokenClassification:()=>t.DebertaV2ForTokenClassification,DebertaV2Model:()=>t.DebertaV2Model,DebertaV2PreTrainedModel:()=>t.DebertaV2PreTrainedModel,DebertaV2Tokenizer:()=>s.DebertaV2Tokenizer,DecisionTransformerModel:()=>t.DecisionTransformerModel,DecisionTransformerPreTrainedModel:()=>t.DecisionTransformerPreTrainedModel,DeiTFeatureExtractor:()=>h.DeiTFeatureExtractor,DeiTForImageClassification:()=>t.DeiTForImageClassification,DeiTImageProcessor:()=>h.DeiTImageProcessor,DeiTModel:()=>t.DeiTModel,DeiTPreTrainedModel:()=>t.DeiTPreTrainedModel,DepthAnythingForDepthEstimation:()=>t.DepthAnythingForDepthEstimation,DepthAnythingPreTrainedModel:()=>t.DepthAnythingPreTrainedModel,DepthEstimationPipeline:()=>r.DepthEstimationPipeline,DepthProForDepthEstimation:()=>t.DepthProForDepthEstimation,DepthProPreTrainedModel:()=>t.DepthProPreTrainedModel,DetrFeatureExtractor:()=>h.DetrFeatureExtractor,DetrForObjectDetection:()=>t.DetrForObjectDetection,DetrForSegmentation:()=>t.DetrForSegmentation,DetrImageProcessor:()=>h.DetrImageProcessor,DetrModel:()=>t.DetrModel,DetrObjectDetectionOutput:()=>t.DetrObjectDetectionOutput,DetrPreTrainedModel:()=>t.DetrPreTrainedModel,DetrSegmentationOutput:()=>t.DetrSegmentationOutput,Dinov2ForImageClassification:()=>t.Dinov2ForImageClassification,Dinov2Model:()=>t.Dinov2Model,Dinov2PreTrainedModel:()=>t.Dinov2PreTrainedModel,Dinov2WithRegistersForImageClassification:()=>t.Dinov2WithRegistersForImageClassification,Dinov2WithRegistersModel:()=>t.Dinov2WithRegistersModel,Dinov2WithRegistersPreTrainedModel:()=>t.Dinov2WithRegistersPreTrainedModel,DistilBertForMaskedLM:()=>t.DistilBertForMaskedLM,DistilBertForQuestionAnswering:()=>t.DistilBertForQuestionAnswering,DistilBertForSequenceClassification:()=>t.DistilBertForSequenceClassification,DistilBertForTokenClassification:()=>t.DistilBertForTokenClassification,DistilBertModel:()=>t.DistilBertModel,DistilBertPreTrainedModel:()=>t.DistilBertPreTrainedModel,DistilBertTokenizer:()=>s.DistilBertTokenizer,DocumentQuestionAnsweringPipeline:()=>r.DocumentQuestionAnsweringPipeline,DonutFeatureExtractor:()=>h.DonutFeatureExtractor,DonutImageProcessor:()=>h.DonutImageProcessor,DonutSwinModel:()=>t.DonutSwinModel,DonutSwinPreTrainedModel:()=>t.DonutSwinPreTrainedModel,EdgeTamModel:()=>t.EdgeTamModel,EfficientNetForImageClassification:()=>t.EfficientNetForImageClassification,EfficientNetImageProcessor:()=>h.EfficientNetImageProcessor,EfficientNetModel:()=>t.EfficientNetModel,EfficientNetPreTrainedModel:()=>t.EfficientNetPreTrainedModel,ElectraForMaskedLM:()=>t.ElectraForMaskedLM,ElectraForQuestionAnswering:()=>t.ElectraForQuestionAnswering,ElectraForSequenceClassification:()=>t.ElectraForSequenceClassification,ElectraForTokenClassification:()=>t.ElectraForTokenClassification,ElectraModel:()=>t.ElectraModel,ElectraPreTrainedModel:()=>t.ElectraPreTrainedModel,ElectraTokenizer:()=>s.ElectraTokenizer,EncodecFeatureExtractor:()=>u.EncodecFeatureExtractor,EosTokenCriteria:()=>y.EosTokenCriteria,Ernie4_5ForCausalLM:()=>t.Ernie4_5ForCausalLM,Ernie4_5Model:()=>t.Ernie4_5Model,Ernie4_5PreTrainedModel:()=>t.Ernie4_5PreTrainedModel,EsmForMaskedLM:()=>t.EsmForMaskedLM,EsmForSequenceClassification:()=>t.EsmForSequenceClassification,EsmForTokenClassification:()=>t.EsmForTokenClassification,EsmModel:()=>t.EsmModel,EsmPreTrainedModel:()=>t.EsmPreTrainedModel,EsmTokenizer:()=>s.EsmTokenizer,ExaoneForCausalLM:()=>t.ExaoneForCausalLM,ExaoneModel:()=>t.ExaoneModel,ExaonePreTrainedModel:()=>t.ExaonePreTrainedModel,FFT:()=>c.FFT,FalconForCausalLM:()=>t.FalconForCausalLM,FalconModel:()=>t.FalconModel,FalconPreTrainedModel:()=>t.FalconPreTrainedModel,FalconTokenizer:()=>s.FalconTokenizer,FastViTForImageClassification:()=>t.FastViTForImageClassification,FastViTModel:()=>t.FastViTModel,FastViTPreTrainedModel:()=>t.FastViTPreTrainedModel,FeatureExtractionPipeline:()=>r.FeatureExtractionPipeline,FeatureExtractor:()=>_.FeatureExtractor,FillMaskPipeline:()=>r.FillMaskPipeline,Florence2ForConditionalGeneration:()=>t.Florence2ForConditionalGeneration,Florence2PreTrainedModel:()=>t.Florence2PreTrainedModel,Florence2Processor:()=>v.Florence2Processor,ForcedBOSTokenLogitsProcessor:()=>P.ForcedBOSTokenLogitsProcessor,ForcedEOSTokenLogitsProcessor:()=>P.ForcedEOSTokenLogitsProcessor,GLPNFeatureExtractor:()=>h.GLPNFeatureExtractor,GLPNForDepthEstimation:()=>t.GLPNForDepthEstimation,GLPNModel:()=>t.GLPNModel,GLPNPreTrainedModel:()=>t.GLPNPreTrainedModel,GPT2LMHeadModel:()=>t.GPT2LMHeadModel,GPT2Model:()=>t.GPT2Model,GPT2PreTrainedModel:()=>t.GPT2PreTrainedModel,GPT2Tokenizer:()=>s.GPT2Tokenizer,GPTBigCodeForCausalLM:()=>t.GPTBigCodeForCausalLM,GPTBigCodeModel:()=>t.GPTBigCodeModel,GPTBigCodePreTrainedModel:()=>t.GPTBigCodePreTrainedModel,GPTJForCausalLM:()=>t.GPTJForCausalLM,GPTJModel:()=>t.GPTJModel,GPTJPreTrainedModel:()=>t.GPTJPreTrainedModel,GPTNeoForCausalLM:()=>t.GPTNeoForCausalLM,GPTNeoModel:()=>t.GPTNeoModel,GPTNeoPreTrainedModel:()=>t.GPTNeoPreTrainedModel,GPTNeoXForCausalLM:()=>t.GPTNeoXForCausalLM,GPTNeoXModel:()=>t.GPTNeoXModel,GPTNeoXPreTrainedModel:()=>t.GPTNeoXPreTrainedModel,GPTNeoXTokenizer:()=>s.GPTNeoXTokenizer,Gemma2ForCausalLM:()=>t.Gemma2ForCausalLM,Gemma2Model:()=>t.Gemma2Model,Gemma2PreTrainedModel:()=>t.Gemma2PreTrainedModel,Gemma3ForCausalLM:()=>t.Gemma3ForCausalLM,Gemma3Model:()=>t.Gemma3Model,Gemma3PreTrainedModel:()=>t.Gemma3PreTrainedModel,Gemma3nAudioFeatureExtractor:()=>u.Gemma3nAudioFeatureExtractor,Gemma3nForConditionalGeneration:()=>t.Gemma3nForConditionalGeneration,Gemma3nPreTrainedModel:()=>t.Gemma3nPreTrainedModel,Gemma3nProcessor:()=>v.Gemma3nProcessor,GemmaForCausalLM:()=>t.GemmaForCausalLM,GemmaModel:()=>t.GemmaModel,GemmaPreTrainedModel:()=>t.GemmaPreTrainedModel,GemmaTokenizer:()=>s.GemmaTokenizer,GlmForCausalLM:()=>t.GlmForCausalLM,GlmModel:()=>t.GlmModel,GlmPreTrainedModel:()=>t.GlmPreTrainedModel,GraniteForCausalLM:()=>t.GraniteForCausalLM,GraniteModel:()=>t.GraniteModel,GraniteMoeHybridForCausalLM:()=>t.GraniteMoeHybridForCausalLM,GraniteMoeHybridModel:()=>t.GraniteMoeHybridModel,GraniteMoeHybridPreTrainedModel:()=>t.GraniteMoeHybridPreTrainedModel,GranitePreTrainedModel:()=>t.GranitePreTrainedModel,Grok1Tokenizer:()=>s.Grok1Tokenizer,GroundingDinoForObjectDetection:()=>t.GroundingDinoForObjectDetection,GroundingDinoImageProcessor:()=>h.GroundingDinoImageProcessor,GroundingDinoPreTrainedModel:()=>t.GroundingDinoPreTrainedModel,GroundingDinoProcessor:()=>v.GroundingDinoProcessor,GroupViTModel:()=>t.GroupViTModel,GroupViTPreTrainedModel:()=>t.GroupViTPreTrainedModel,HeliumForCausalLM:()=>t.HeliumForCausalLM,HeliumModel:()=>t.HeliumModel,HeliumPreTrainedModel:()=>t.HeliumPreTrainedModel,HerbertTokenizer:()=>s.HerbertTokenizer,HieraForImageClassification:()=>t.HieraForImageClassification,HieraModel:()=>t.HieraModel,HieraPreTrainedModel:()=>t.HieraPreTrainedModel,HubertForCTC:()=>t.HubertForCTC,HubertForSequenceClassification:()=>t.HubertForSequenceClassification,HubertModel:()=>t.HubertModel,HubertPreTrainedModel:()=>t.HubertPreTrainedModel,IJepaForImageClassification:()=>t.IJepaForImageClassification,IJepaModel:()=>t.IJepaModel,IJepaPreTrainedModel:()=>t.IJepaPreTrainedModel,Idefics3ForConditionalGeneration:()=>t.Idefics3ForConditionalGeneration,Idefics3ImageProcessor:()=>h.Idefics3ImageProcessor,Idefics3PreTrainedModel:()=>t.Idefics3PreTrainedModel,Idefics3Processor:()=>v.Idefics3Processor,ImageClassificationPipeline:()=>r.ImageClassificationPipeline,ImageFeatureExtractionPipeline:()=>r.ImageFeatureExtractionPipeline,ImageFeatureExtractor:()=>u.ImageFeatureExtractor,ImageMattingOutput:()=>t.ImageMattingOutput,ImageProcessor:()=>g.ImageProcessor,ImageSegmentationPipeline:()=>r.ImageSegmentationPipeline,ImageToImagePipeline:()=>r.ImageToImagePipeline,ImageToTextPipeline:()=>r.ImageToTextPipeline,InterruptableStoppingCriteria:()=>y.InterruptableStoppingCriteria,JAISLMHeadModel:()=>t.JAISLMHeadModel,JAISModel:()=>t.JAISModel,JAISPreTrainedModel:()=>t.JAISPreTrainedModel,JinaCLIPImageProcessor:()=>h.JinaCLIPImageProcessor,JinaCLIPModel:()=>t.JinaCLIPModel,JinaCLIPPreTrainedModel:()=>t.JinaCLIPPreTrainedModel,JinaCLIPProcessor:()=>v.JinaCLIPProcessor,JinaCLIPTextModel:()=>t.JinaCLIPTextModel,JinaCLIPVisionModel:()=>t.JinaCLIPVisionModel,Lfm2ForCausalLM:()=>t.Lfm2ForCausalLM,Lfm2Model:()=>t.Lfm2Model,Lfm2PreTrainedModel:()=>t.Lfm2PreTrainedModel,LiteWhisperForConditionalGeneration:()=>t.LiteWhisperForConditionalGeneration,Llama4ForCausalLM:()=>t.Llama4ForCausalLM,Llama4PreTrainedModel:()=>t.Llama4PreTrainedModel,LlamaForCausalLM:()=>t.LlamaForCausalLM,LlamaModel:()=>t.LlamaModel,LlamaPreTrainedModel:()=>t.LlamaPreTrainedModel,LlamaTokenizer:()=>s.LlamaTokenizer,LlavaForConditionalGeneration:()=>t.LlavaForConditionalGeneration,LlavaOnevisionForConditionalGeneration:()=>t.LlavaOnevisionForConditionalGeneration,LlavaOnevisionImageProcessor:()=>h.LlavaOnevisionImageProcessor,LlavaPreTrainedModel:()=>t.LlavaPreTrainedModel,LlavaProcessor:()=>v.LlavaProcessor,LlavaQwen2ForCausalLM:()=>t.LlavaQwen2ForCausalLM,LogitsProcessor:()=>P.LogitsProcessor,LogitsProcessorList:()=>P.LogitsProcessorList,LogitsWarper:()=>P.LogitsWarper,LongT5ForConditionalGeneration:()=>t.LongT5ForConditionalGeneration,LongT5Model:()=>t.LongT5Model,LongT5PreTrainedModel:()=>t.LongT5PreTrainedModel,M2M100ForConditionalGeneration:()=>t.M2M100ForConditionalGeneration,M2M100Model:()=>t.M2M100Model,M2M100PreTrainedModel:()=>t.M2M100PreTrainedModel,M2M100Tokenizer:()=>s.M2M100Tokenizer,MBart50Tokenizer:()=>s.MBart50Tokenizer,MBartForCausalLM:()=>t.MBartForCausalLM,MBartForConditionalGeneration:()=>t.MBartForConditionalGeneration,MBartForSequenceClassification:()=>t.MBartForSequenceClassification,MBartModel:()=>t.MBartModel,MBartPreTrainedModel:()=>t.MBartPreTrainedModel,MBartTokenizer:()=>s.MBartTokenizer,MPNetForMaskedLM:()=>t.MPNetForMaskedLM,MPNetForQuestionAnswering:()=>t.MPNetForQuestionAnswering,MPNetForSequenceClassification:()=>t.MPNetForSequenceClassification,MPNetForTokenClassification:()=>t.MPNetForTokenClassification,MPNetModel:()=>t.MPNetModel,MPNetPreTrainedModel:()=>t.MPNetPreTrainedModel,MPNetTokenizer:()=>s.MPNetTokenizer,MT5ForConditionalGeneration:()=>t.MT5ForConditionalGeneration,MT5Model:()=>t.MT5Model,MT5PreTrainedModel:()=>t.MT5PreTrainedModel,MarianMTModel:()=>t.MarianMTModel,MarianModel:()=>t.MarianModel,MarianPreTrainedModel:()=>t.MarianPreTrainedModel,MarianTokenizer:()=>s.MarianTokenizer,Mask2FormerImageProcessor:()=>h.Mask2FormerImageProcessor,MaskFormerFeatureExtractor:()=>h.MaskFormerFeatureExtractor,MaskFormerForInstanceSegmentation:()=>t.MaskFormerForInstanceSegmentation,MaskFormerImageProcessor:()=>h.MaskFormerImageProcessor,MaskFormerModel:()=>t.MaskFormerModel,MaskFormerPreTrainedModel:()=>t.MaskFormerPreTrainedModel,MaskedLMOutput:()=>t.MaskedLMOutput,MaxLengthCriteria:()=>y.MaxLengthCriteria,Metric3DForDepthEstimation:()=>t.Metric3DForDepthEstimation,Metric3DPreTrainedModel:()=>t.Metric3DPreTrainedModel,Metric3Dv2ForDepthEstimation:()=>t.Metric3Dv2ForDepthEstimation,Metric3Dv2PreTrainedModel:()=>t.Metric3Dv2PreTrainedModel,MgpstrForSceneTextRecognition:()=>t.MgpstrForSceneTextRecognition,MgpstrModelOutput:()=>t.MgpstrModelOutput,MgpstrPreTrainedModel:()=>t.MgpstrPreTrainedModel,MgpstrProcessor:()=>v.MgpstrProcessor,MgpstrTokenizer:()=>s.MgpstrTokenizer,MimiDecoderModel:()=>t.MimiDecoderModel,MimiDecoderOutput:()=>t.MimiDecoderOutput,MimiEncoderModel:()=>t.MimiEncoderModel,MimiEncoderOutput:()=>t.MimiEncoderOutput,MimiModel:()=>t.MimiModel,MimiPreTrainedModel:()=>t.MimiPreTrainedModel,MinLengthLogitsProcessor:()=>P.MinLengthLogitsProcessor,MinNewTokensLengthLogitsProcessor:()=>P.MinNewTokensLengthLogitsProcessor,Ministral3ForCausalLM:()=>t.Ministral3ForCausalLM,Ministral3Model:()=>t.Ministral3Model,Ministral3PreTrainedModel:()=>t.Ministral3PreTrainedModel,MinistralForCausalLM:()=>t.MinistralForCausalLM,MinistralModel:()=>t.MinistralModel,MinistralPreTrainedModel:()=>t.MinistralPreTrainedModel,Mistral3ForConditionalGeneration:()=>t.Mistral3ForConditionalGeneration,MistralForCausalLM:()=>t.MistralForCausalLM,MistralModel:()=>t.MistralModel,MistralPreTrainedModel:()=>t.MistralPreTrainedModel,MobileBertForMaskedLM:()=>t.MobileBertForMaskedLM,MobileBertForQuestionAnswering:()=>t.MobileBertForQuestionAnswering,MobileBertForSequenceClassification:()=>t.MobileBertForSequenceClassification,MobileBertModel:()=>t.MobileBertModel,MobileBertPreTrainedModel:()=>t.MobileBertPreTrainedModel,MobileBertTokenizer:()=>s.MobileBertTokenizer,MobileLLMForCausalLM:()=>t.MobileLLMForCausalLM,MobileLLMModel:()=>t.MobileLLMModel,MobileLLMPreTrainedModel:()=>t.MobileLLMPreTrainedModel,MobileNetV1FeatureExtractor:()=>h.MobileNetV1FeatureExtractor,MobileNetV1ForImageClassification:()=>t.MobileNetV1ForImageClassification,MobileNetV1ForSemanticSegmentation:()=>t.MobileNetV1ForSemanticSegmentation,MobileNetV1ImageProcessor:()=>h.MobileNetV1ImageProcessor,MobileNetV1Model:()=>t.MobileNetV1Model,MobileNetV1PreTrainedModel:()=>t.MobileNetV1PreTrainedModel,MobileNetV2FeatureExtractor:()=>h.MobileNetV2FeatureExtractor,MobileNetV2ForImageClassification:()=>t.MobileNetV2ForImageClassification,MobileNetV2ForSemanticSegmentation:()=>t.MobileNetV2ForSemanticSegmentation,MobileNetV2ImageProcessor:()=>h.MobileNetV2ImageProcessor,MobileNetV2Model:()=>t.MobileNetV2Model,MobileNetV2PreTrainedModel:()=>t.MobileNetV2PreTrainedModel,MobileNetV3FeatureExtractor:()=>h.MobileNetV3FeatureExtractor,MobileNetV3ForImageClassification:()=>t.MobileNetV3ForImageClassification,MobileNetV3ForSemanticSegmentation:()=>t.MobileNetV3ForSemanticSegmentation,MobileNetV3ImageProcessor:()=>h.MobileNetV3ImageProcessor,MobileNetV3Model:()=>t.MobileNetV3Model,MobileNetV3PreTrainedModel:()=>t.MobileNetV3PreTrainedModel,MobileNetV4FeatureExtractor:()=>h.MobileNetV4FeatureExtractor,MobileNetV4ForImageClassification:()=>t.MobileNetV4ForImageClassification,MobileNetV4ForSemanticSegmentation:()=>t.MobileNetV4ForSemanticSegmentation,MobileNetV4ImageProcessor:()=>h.MobileNetV4ImageProcessor,MobileNetV4Model:()=>t.MobileNetV4Model,MobileNetV4PreTrainedModel:()=>t.MobileNetV4PreTrainedModel,MobileViTFeatureExtractor:()=>h.MobileViTFeatureExtractor,MobileViTForImageClassification:()=>t.MobileViTForImageClassification,MobileViTImageProcessor:()=>h.MobileViTImageProcessor,MobileViTModel:()=>t.MobileViTModel,MobileViTPreTrainedModel:()=>t.MobileViTPreTrainedModel,MobileViTV2ForImageClassification:()=>t.MobileViTV2ForImageClassification,MobileViTV2Model:()=>t.MobileViTV2Model,MobileViTV2PreTrainedModel:()=>t.MobileViTV2PreTrainedModel,ModelOutput:()=>t.ModelOutput,ModernBertDecoderForCausalLM:()=>t.ModernBertDecoderForCausalLM,ModernBertDecoderModel:()=>t.ModernBertDecoderModel,ModernBertDecoderPreTrainedModel:()=>t.ModernBertDecoderPreTrainedModel,ModernBertForMaskedLM:()=>t.ModernBertForMaskedLM,ModernBertForSequenceClassification:()=>t.ModernBertForSequenceClassification,ModernBertForTokenClassification:()=>t.ModernBertForTokenClassification,ModernBertModel:()=>t.ModernBertModel,ModernBertPreTrainedModel:()=>t.ModernBertPreTrainedModel,Moondream1ForConditionalGeneration:()=>t.Moondream1ForConditionalGeneration,MoonshineFeatureExtractor:()=>u.MoonshineFeatureExtractor,MoonshineForConditionalGeneration:()=>t.MoonshineForConditionalGeneration,MoonshineModel:()=>t.MoonshineModel,MoonshinePreTrainedModel:()=>t.MoonshinePreTrainedModel,MoonshineProcessor:()=>v.MoonshineProcessor,MptForCausalLM:()=>t.MptForCausalLM,MptModel:()=>t.MptModel,MptPreTrainedModel:()=>t.MptPreTrainedModel,MultiModalityCausalLM:()=>t.MultiModalityCausalLM,MultiModalityPreTrainedModel:()=>t.MultiModalityPreTrainedModel,MusicgenForCausalLM:()=>t.MusicgenForCausalLM,MusicgenForConditionalGeneration:()=>t.MusicgenForConditionalGeneration,MusicgenModel:()=>t.MusicgenModel,MusicgenPreTrainedModel:()=>t.MusicgenPreTrainedModel,NanoChatForCausalLM:()=>t.NanoChatForCausalLM,NanoChatModel:()=>t.NanoChatModel,NanoChatPreTrainedModel:()=>t.NanoChatPreTrainedModel,NeoBertForMaskedLM:()=>t.NeoBertForMaskedLM,NeoBertForQuestionAnswering:()=>t.NeoBertForQuestionAnswering,NeoBertForSequenceClassification:()=>t.NeoBertForSequenceClassification,NeoBertForTokenClassification:()=>t.NeoBertForTokenClassification,NeoBertModel:()=>t.NeoBertModel,NeoBertPreTrainedModel:()=>t.NeoBertPreTrainedModel,NllbTokenizer:()=>s.NllbTokenizer,NoBadWordsLogitsProcessor:()=>P.NoBadWordsLogitsProcessor,NoRepeatNGramLogitsProcessor:()=>P.NoRepeatNGramLogitsProcessor,NomicBertModel:()=>t.NomicBertModel,NomicBertPreTrainedModel:()=>t.NomicBertPreTrainedModel,NougatImageProcessor:()=>h.NougatImageProcessor,NougatTokenizer:()=>s.NougatTokenizer,OPTForCausalLM:()=>t.OPTForCausalLM,OPTModel:()=>t.OPTModel,OPTPreTrainedModel:()=>t.OPTPreTrainedModel,ObjectDetectionPipeline:()=>r.ObjectDetectionPipeline,Olmo2ForCausalLM:()=>t.Olmo2ForCausalLM,Olmo2Model:()=>t.Olmo2Model,Olmo2PreTrainedModel:()=>t.Olmo2PreTrainedModel,OlmoForCausalLM:()=>t.OlmoForCausalLM,OlmoModel:()=>t.OlmoModel,OlmoPreTrainedModel:()=>t.OlmoPreTrainedModel,OpenELMForCausalLM:()=>t.OpenELMForCausalLM,OpenELMModel:()=>t.OpenELMModel,OpenELMPreTrainedModel:()=>t.OpenELMPreTrainedModel,OwlViTFeatureExtractor:()=>h.OwlViTFeatureExtractor,OwlViTForObjectDetection:()=>t.OwlViTForObjectDetection,OwlViTImageProcessor:()=>h.OwlViTImageProcessor,OwlViTModel:()=>t.OwlViTModel,OwlViTPreTrainedModel:()=>t.OwlViTPreTrainedModel,OwlViTProcessor:()=>v.OwlViTProcessor,Owlv2ForObjectDetection:()=>t.Owlv2ForObjectDetection,Owlv2ImageProcessor:()=>h.Owlv2ImageProcessor,Owlv2Model:()=>t.Owlv2Model,Owlv2PreTrainedModel:()=>t.Owlv2PreTrainedModel,PaliGemmaForConditionalGeneration:()=>t.PaliGemmaForConditionalGeneration,PaliGemmaPreTrainedModel:()=>t.PaliGemmaPreTrainedModel,PaliGemmaProcessor:()=>v.PaliGemmaProcessor,ParakeetFeatureExtractor:()=>u.ParakeetFeatureExtractor,ParakeetForCTC:()=>t.ParakeetForCTC,ParakeetPreTrainedModel:()=>t.ParakeetPreTrainedModel,PatchTSMixerForPrediction:()=>t.PatchTSMixerForPrediction,PatchTSMixerModel:()=>t.PatchTSMixerModel,PatchTSMixerPreTrainedModel:()=>t.PatchTSMixerPreTrainedModel,PatchTSTForPrediction:()=>t.PatchTSTForPrediction,PatchTSTModel:()=>t.PatchTSTModel,PatchTSTPreTrainedModel:()=>t.PatchTSTPreTrainedModel,Phi3ForCausalLM:()=>t.Phi3ForCausalLM,Phi3Model:()=>t.Phi3Model,Phi3PreTrainedModel:()=>t.Phi3PreTrainedModel,Phi3VForCausalLM:()=>t.Phi3VForCausalLM,Phi3VImageProcessor:()=>h.Phi3VImageProcessor,Phi3VPreTrainedModel:()=>t.Phi3VPreTrainedModel,Phi3VProcessor:()=>v.Phi3VProcessor,PhiForCausalLM:()=>t.PhiForCausalLM,PhiModel:()=>t.PhiModel,PhiPreTrainedModel:()=>t.PhiPreTrainedModel,Pipeline:()=>r.Pipeline,PixtralImageProcessor:()=>h.PixtralImageProcessor,PixtralProcessor:()=>v.PixtralProcessor,PreTrainedModel:()=>t.PreTrainedModel,PreTrainedTokenizer:()=>s.PreTrainedTokenizer,PretrainedConfig:()=>o.PretrainedConfig,PretrainedMixin:()=>t.PretrainedMixin,Processor:()=>F.Processor,PvtForImageClassification:()=>t.PvtForImageClassification,PvtImageProcessor:()=>h.PvtImageProcessor,PvtModel:()=>t.PvtModel,PvtPreTrainedModel:()=>t.PvtPreTrainedModel,PyAnnoteFeatureExtractor:()=>u.PyAnnoteFeatureExtractor,PyAnnoteForAudioFrameClassification:()=>t.PyAnnoteForAudioFrameClassification,PyAnnoteModel:()=>t.PyAnnoteModel,PyAnnotePreTrainedModel:()=>t.PyAnnotePreTrainedModel,PyAnnoteProcessor:()=>v.PyAnnoteProcessor,QuestionAnsweringModelOutput:()=>t.QuestionAnsweringModelOutput,QuestionAnsweringPipeline:()=>r.QuestionAnsweringPipeline,Qwen2ForCausalLM:()=>t.Qwen2ForCausalLM,Qwen2Model:()=>t.Qwen2Model,Qwen2PreTrainedModel:()=>t.Qwen2PreTrainedModel,Qwen2Tokenizer:()=>s.Qwen2Tokenizer,Qwen2VLForConditionalGeneration:()=>t.Qwen2VLForConditionalGeneration,Qwen2VLImageProcessor:()=>h.Qwen2VLImageProcessor,Qwen2VLPreTrainedModel:()=>t.Qwen2VLPreTrainedModel,Qwen2VLProcessor:()=>v.Qwen2VLProcessor,Qwen3ForCausalLM:()=>t.Qwen3ForCausalLM,Qwen3Model:()=>t.Qwen3Model,Qwen3PreTrainedModel:()=>t.Qwen3PreTrainedModel,RFDetrForObjectDetection:()=>t.RFDetrForObjectDetection,RFDetrModel:()=>t.RFDetrModel,RFDetrObjectDetectionOutput:()=>t.RFDetrObjectDetectionOutput,RFDetrPreTrainedModel:()=>t.RFDetrPreTrainedModel,RTDetrForObjectDetection:()=>t.RTDetrForObjectDetection,RTDetrImageProcessor:()=>h.RTDetrImageProcessor,RTDetrModel:()=>t.RTDetrModel,RTDetrObjectDetectionOutput:()=>t.RTDetrObjectDetectionOutput,RTDetrPreTrainedModel:()=>t.RTDetrPreTrainedModel,RTDetrV2ForObjectDetection:()=>t.RTDetrV2ForObjectDetection,RTDetrV2Model:()=>t.RTDetrV2Model,RTDetrV2ObjectDetectionOutput:()=>t.RTDetrV2ObjectDetectionOutput,RTDetrV2PreTrainedModel:()=>t.RTDetrV2PreTrainedModel,RawAudio:()=>a.RawAudio,RawImage:()=>n.RawImage,RawVideo:()=>i.RawVideo,RawVideoFrame:()=>i.RawVideoFrame,RepetitionPenaltyLogitsProcessor:()=>P.RepetitionPenaltyLogitsProcessor,ResNetForImageClassification:()=>t.ResNetForImageClassification,ResNetModel:()=>t.ResNetModel,ResNetPreTrainedModel:()=>t.ResNetPreTrainedModel,RoFormerForMaskedLM:()=>t.RoFormerForMaskedLM,RoFormerForQuestionAnswering:()=>t.RoFormerForQuestionAnswering,RoFormerForSequenceClassification:()=>t.RoFormerForSequenceClassification,RoFormerForTokenClassification:()=>t.RoFormerForTokenClassification,RoFormerModel:()=>t.RoFormerModel,RoFormerPreTrainedModel:()=>t.RoFormerPreTrainedModel,RoFormerTokenizer:()=>s.RoFormerTokenizer,RobertaForMaskedLM:()=>t.RobertaForMaskedLM,RobertaForQuestionAnswering:()=>t.RobertaForQuestionAnswering,RobertaForSequenceClassification:()=>t.RobertaForSequenceClassification,RobertaForTokenClassification:()=>t.RobertaForTokenClassification,RobertaModel:()=>t.RobertaModel,RobertaPreTrainedModel:()=>t.RobertaPreTrainedModel,RobertaTokenizer:()=>s.RobertaTokenizer,Sam2ImageProcessor:()=>h.Sam2ImageProcessor,Sam2ImageSegmentationOutput:()=>t.Sam2ImageSegmentationOutput,Sam2Model:()=>t.Sam2Model,Sam2PreTrainedModel:()=>t.Sam2PreTrainedModel,Sam2Processor:()=>v.Sam2Processor,Sam2VideoProcessor:()=>v.Sam2VideoProcessor,Sam3ImageProcessor:()=>h.Sam3ImageProcessor,Sam3TrackerModel:()=>t.Sam3TrackerModel,SamImageProcessor:()=>h.SamImageProcessor,SamImageSegmentationOutput:()=>t.SamImageSegmentationOutput,SamModel:()=>t.SamModel,SamPreTrainedModel:()=>t.SamPreTrainedModel,SamProcessor:()=>v.SamProcessor,SapiensForDepthEstimation:()=>t.SapiensForDepthEstimation,SapiensForNormalEstimation:()=>t.SapiensForNormalEstimation,SapiensForSemanticSegmentation:()=>t.SapiensForSemanticSegmentation,SapiensPreTrainedModel:()=>t.SapiensPreTrainedModel,SeamlessM4TFeatureExtractor:()=>u.SeamlessM4TFeatureExtractor,SegformerFeatureExtractor:()=>h.SegformerFeatureExtractor,SegformerForImageClassification:()=>t.SegformerForImageClassification,SegformerForSemanticSegmentation:()=>t.SegformerForSemanticSegmentation,SegformerImageProcessor:()=>h.SegformerImageProcessor,SegformerModel:()=>t.SegformerModel,SegformerPreTrainedModel:()=>t.SegformerPreTrainedModel,Seq2SeqLMOutput:()=>t.Seq2SeqLMOutput,SequenceClassifierOutput:()=>t.SequenceClassifierOutput,SiglipImageProcessor:()=>h.SiglipImageProcessor,SiglipModel:()=>t.SiglipModel,SiglipPreTrainedModel:()=>t.SiglipPreTrainedModel,SiglipTextModel:()=>t.SiglipTextModel,SiglipTokenizer:()=>s.SiglipTokenizer,SiglipVisionModel:()=>t.SiglipVisionModel,SmolLM3ForCausalLM:()=>t.SmolLM3ForCausalLM,SmolLM3Model:()=>t.SmolLM3Model,SmolLM3PreTrainedModel:()=>t.SmolLM3PreTrainedModel,SmolVLMForConditionalGeneration:()=>t.SmolVLMForConditionalGeneration,SmolVLMImageProcessor:()=>h.SmolVLMImageProcessor,SmolVLMProcessor:()=>v.SmolVLMProcessor,SnacDecoderModel:()=>t.SnacDecoderModel,SnacEncoderModel:()=>t.SnacEncoderModel,SnacFeatureExtractor:()=>u.SnacFeatureExtractor,SnacModel:()=>t.SnacModel,SnacPreTrainedModel:()=>t.SnacPreTrainedModel,SpeechT5FeatureExtractor:()=>u.SpeechT5FeatureExtractor,SpeechT5ForSpeechToText:()=>t.SpeechT5ForSpeechToText,SpeechT5ForTextToSpeech:()=>t.SpeechT5ForTextToSpeech,SpeechT5HifiGan:()=>t.SpeechT5HifiGan,SpeechT5Model:()=>t.SpeechT5Model,SpeechT5PreTrainedModel:()=>t.SpeechT5PreTrainedModel,SpeechT5Processor:()=>v.SpeechT5Processor,SpeechT5Tokenizer:()=>s.SpeechT5Tokenizer,SqueezeBertForMaskedLM:()=>t.SqueezeBertForMaskedLM,SqueezeBertForQuestionAnswering:()=>t.SqueezeBertForQuestionAnswering,SqueezeBertForSequenceClassification:()=>t.SqueezeBertForSequenceClassification,SqueezeBertModel:()=>t.SqueezeBertModel,SqueezeBertPreTrainedModel:()=>t.SqueezeBertPreTrainedModel,SqueezeBertTokenizer:()=>s.SqueezeBertTokenizer,StableLmForCausalLM:()=>t.StableLmForCausalLM,StableLmModel:()=>t.StableLmModel,StableLmPreTrainedModel:()=>t.StableLmPreTrainedModel,Starcoder2ForCausalLM:()=>t.Starcoder2ForCausalLM,Starcoder2Model:()=>t.Starcoder2Model,Starcoder2PreTrainedModel:()=>t.Starcoder2PreTrainedModel,StoppingCriteria:()=>y.StoppingCriteria,StoppingCriteriaList:()=>y.StoppingCriteriaList,StyleTextToSpeech2Model:()=>t.StyleTextToSpeech2Model,StyleTextToSpeech2PreTrainedModel:()=>t.StyleTextToSpeech2PreTrainedModel,SummarizationPipeline:()=>r.SummarizationPipeline,SupertonicForConditionalGeneration:()=>t.SupertonicForConditionalGeneration,SupertonicPreTrainedModel:()=>t.SupertonicPreTrainedModel,SuppressTokensAtBeginLogitsProcessor:()=>P.SuppressTokensAtBeginLogitsProcessor,Swin2SRForImageSuperResolution:()=>t.Swin2SRForImageSuperResolution,Swin2SRImageProcessor:()=>h.Swin2SRImageProcessor,Swin2SRModel:()=>t.Swin2SRModel,Swin2SRPreTrainedModel:()=>t.Swin2SRPreTrainedModel,SwinForImageClassification:()=>t.SwinForImageClassification,SwinForSemanticSegmentation:()=>t.SwinForSemanticSegmentation,SwinModel:()=>t.SwinModel,SwinPreTrainedModel:()=>t.SwinPreTrainedModel,T5ForConditionalGeneration:()=>t.T5ForConditionalGeneration,T5Model:()=>t.T5Model,T5PreTrainedModel:()=>t.T5PreTrainedModel,T5Tokenizer:()=>s.T5Tokenizer,TableTransformerForObjectDetection:()=>t.TableTransformerForObjectDetection,TableTransformerModel:()=>t.TableTransformerModel,TableTransformerObjectDetectionOutput:()=>t.TableTransformerObjectDetectionOutput,TableTransformerPreTrainedModel:()=>t.TableTransformerPreTrainedModel,TemperatureLogitsWarper:()=>P.TemperatureLogitsWarper,Tensor:()=>l.Tensor,Text2TextGenerationPipeline:()=>r.Text2TextGenerationPipeline,TextClassificationPipeline:()=>r.TextClassificationPipeline,TextGenerationPipeline:()=>r.TextGenerationPipeline,TextStreamer:()=>C.TextStreamer,TextToAudioPipeline:()=>r.TextToAudioPipeline,TokenClassificationPipeline:()=>r.TokenClassificationPipeline,TokenClassifierOutput:()=>t.TokenClassifierOutput,TokenizerModel:()=>s.TokenizerModel,TopKLogitsWarper:()=>P.TopKLogitsWarper,TopPLogitsWarper:()=>P.TopPLogitsWarper,TrOCRForCausalLM:()=>t.TrOCRForCausalLM,TrOCRPreTrainedModel:()=>t.TrOCRPreTrainedModel,TranslationPipeline:()=>r.TranslationPipeline,UltravoxModel:()=>t.UltravoxModel,UltravoxPreTrainedModel:()=>t.UltravoxPreTrainedModel,UltravoxProcessor:()=>v.UltravoxProcessor,UniSpeechForCTC:()=>t.UniSpeechForCTC,UniSpeechForSequenceClassification:()=>t.UniSpeechForSequenceClassification,UniSpeechModel:()=>t.UniSpeechModel,UniSpeechPreTrainedModel:()=>t.UniSpeechPreTrainedModel,UniSpeechSatForAudioFrameClassification:()=>t.UniSpeechSatForAudioFrameClassification,UniSpeechSatForCTC:()=>t.UniSpeechSatForCTC,UniSpeechSatForSequenceClassification:()=>t.UniSpeechSatForSequenceClassification,UniSpeechSatModel:()=>t.UniSpeechSatModel,UniSpeechSatPreTrainedModel:()=>t.UniSpeechSatPreTrainedModel,VLChatProcessor:()=>v.VLChatProcessor,VLMImageProcessor:()=>h.VLMImageProcessor,VaultGemmaForCausalLM:()=>t.VaultGemmaForCausalLM,VaultGemmaModel:()=>t.VaultGemmaModel,VaultGemmaPreTrainedModel:()=>t.VaultGemmaPreTrainedModel,ViTFeatureExtractor:()=>h.ViTFeatureExtractor,ViTForImageClassification:()=>t.ViTForImageClassification,ViTImageProcessor:()=>h.ViTImageProcessor,ViTMAEModel:()=>t.ViTMAEModel,ViTMAEPreTrainedModel:()=>t.ViTMAEPreTrainedModel,ViTMSNForImageClassification:()=>t.ViTMSNForImageClassification,ViTMSNModel:()=>t.ViTMSNModel,ViTMSNPreTrainedModel:()=>t.ViTMSNPreTrainedModel,ViTModel:()=>t.ViTModel,ViTPreTrainedModel:()=>t.ViTPreTrainedModel,VisionEncoderDecoderModel:()=>t.VisionEncoderDecoderModel,VitMatteForImageMatting:()=>t.VitMatteForImageMatting,VitMatteImageProcessor:()=>h.VitMatteImageProcessor,VitMattePreTrainedModel:()=>t.VitMattePreTrainedModel,VitPoseForPoseEstimation:()=>t.VitPoseForPoseEstimation,VitPoseImageProcessor:()=>h.VitPoseImageProcessor,VitPosePreTrainedModel:()=>t.VitPosePreTrainedModel,VitsModel:()=>t.VitsModel,VitsModelOutput:()=>t.VitsModelOutput,VitsPreTrainedModel:()=>t.VitsPreTrainedModel,VitsTokenizer:()=>s.VitsTokenizer,VoxtralForConditionalGeneration:()=>t.VoxtralForConditionalGeneration,VoxtralProcessor:()=>v.VoxtralProcessor,Wav2Vec2BertForCTC:()=>t.Wav2Vec2BertForCTC,Wav2Vec2BertForSequenceClassification:()=>t.Wav2Vec2BertForSequenceClassification,Wav2Vec2BertModel:()=>t.Wav2Vec2BertModel,Wav2Vec2BertPreTrainedModel:()=>t.Wav2Vec2BertPreTrainedModel,Wav2Vec2CTCTokenizer:()=>s.Wav2Vec2CTCTokenizer,Wav2Vec2FeatureExtractor:()=>u.Wav2Vec2FeatureExtractor,Wav2Vec2ForAudioFrameClassification:()=>t.Wav2Vec2ForAudioFrameClassification,Wav2Vec2ForCTC:()=>t.Wav2Vec2ForCTC,Wav2Vec2ForSequenceClassification:()=>t.Wav2Vec2ForSequenceClassification,Wav2Vec2Model:()=>t.Wav2Vec2Model,Wav2Vec2PreTrainedModel:()=>t.Wav2Vec2PreTrainedModel,Wav2Vec2Processor:()=>v.Wav2Vec2Processor,Wav2Vec2ProcessorWithLM:()=>v.Wav2Vec2ProcessorWithLM,WavLMForAudioFrameClassification:()=>t.WavLMForAudioFrameClassification,WavLMForCTC:()=>t.WavLMForCTC,WavLMForSequenceClassification:()=>t.WavLMForSequenceClassification,WavLMForXVector:()=>t.WavLMForXVector,WavLMModel:()=>t.WavLMModel,WavLMPreTrainedModel:()=>t.WavLMPreTrainedModel,WeSpeakerFeatureExtractor:()=>u.WeSpeakerFeatureExtractor,WeSpeakerResNetModel:()=>t.WeSpeakerResNetModel,WeSpeakerResNetPreTrainedModel:()=>t.WeSpeakerResNetPreTrainedModel,WhisperFeatureExtractor:()=>u.WhisperFeatureExtractor,WhisperForConditionalGeneration:()=>t.WhisperForConditionalGeneration,WhisperModel:()=>t.WhisperModel,WhisperPreTrainedModel:()=>t.WhisperPreTrainedModel,WhisperProcessor:()=>v.WhisperProcessor,WhisperTextStreamer:()=>C.WhisperTextStreamer,WhisperTimeStampLogitsProcessor:()=>P.WhisperTimeStampLogitsProcessor,WhisperTokenizer:()=>s.WhisperTokenizer,XLMForQuestionAnswering:()=>t.XLMForQuestionAnswering,XLMForSequenceClassification:()=>t.XLMForSequenceClassification,XLMForTokenClassification:()=>t.XLMForTokenClassification,XLMModel:()=>t.XLMModel,XLMPreTrainedModel:()=>t.XLMPreTrainedModel,XLMRobertaForMaskedLM:()=>t.XLMRobertaForMaskedLM,XLMRobertaForQuestionAnswering:()=>t.XLMRobertaForQuestionAnswering,XLMRobertaForSequenceClassification:()=>t.XLMRobertaForSequenceClassification,XLMRobertaForTokenClassification:()=>t.XLMRobertaForTokenClassification,XLMRobertaModel:()=>t.XLMRobertaModel,XLMRobertaPreTrainedModel:()=>t.XLMRobertaPreTrainedModel,XLMRobertaTokenizer:()=>s.XLMRobertaTokenizer,XLMTokenizer:()=>s.XLMTokenizer,XLMWithLMHeadModel:()=>t.XLMWithLMHeadModel,XVectorOutput:()=>t.XVectorOutput,YolosFeatureExtractor:()=>h.YolosFeatureExtractor,YolosForObjectDetection:()=>t.YolosForObjectDetection,YolosImageProcessor:()=>h.YolosImageProcessor,YolosModel:()=>t.YolosModel,YolosObjectDetectionOutput:()=>t.YolosObjectDetectionOutput,YolosPreTrainedModel:()=>t.YolosPreTrainedModel,ZeroShotAudioClassificationPipeline:()=>r.ZeroShotAudioClassificationPipeline,ZeroShotClassificationPipeline:()=>r.ZeroShotClassificationPipeline,ZeroShotImageClassificationPipeline:()=>r.ZeroShotImageClassificationPipeline,ZeroShotObjectDetectionPipeline:()=>r.ZeroShotObjectDetectionPipeline,bankers_round:()=>c.bankers_round,cat:()=>l.cat,cos_sim:()=>c.cos_sim,dot:()=>c.dot,dynamic_time_warping:()=>c.dynamic_time_warping,env:()=>e.env,full:()=>l.full,full_like:()=>l.full_like,getCacheShapes:()=>o.getCacheShapes,hamming:()=>a.hamming,hanning:()=>a.hanning,interpolate:()=>l.interpolate,interpolate_4d:()=>l.interpolate_4d,interpolate_data:()=>c.interpolate_data,is_chinese_char:()=>s.is_chinese_char,layer_norm:()=>l.layer_norm,load_image:()=>n.load_image,load_video:()=>i.load_video,log_softmax:()=>c.log_softmax,magnitude:()=>c.magnitude,matmul:()=>l.matmul,max:()=>c.max,mean:()=>l.mean,mean_pooling:()=>l.mean_pooling,medianFilter:()=>c.medianFilter,mel_filter_bank:()=>a.mel_filter_bank,min:()=>c.min,ones:()=>l.ones,ones_like:()=>l.ones_like,permute:()=>l.permute,permute_data:()=>c.permute_data,pipeline:()=>r.pipeline,quantize_embeddings:()=>l.quantize_embeddings,rand:()=>l.rand,randn:()=>l.randn,read_audio:()=>a.read_audio,rfft:()=>l.rfft,round:()=>c.round,slice:()=>l.slice,softmax:()=>c.softmax,spectrogram:()=>a.spectrogram,stack:()=>l.stack,std_mean:()=>l.std_mean,topk:()=>l.topk,window_function:()=>a.window_function,zeros:()=>l.zeros,zeros_like:()=>l.zeros_like});var e=Vt("./src/env.js"),r=Vt("./src/pipelines.js"),t=Vt("./src/models.js"),s=Vt("./src/tokenizers.js"),o=Vt("./src/configs.js"),a=Vt("./src/utils/audio.js"),n=Vt("./src/utils/image.js"),i=Vt("./src/utils/video.js"),l=Vt("./src/utils/tensor.js"),c=Vt("./src/utils/maths.js"),_=Vt("./src/base/feature_extraction_utils.js"),u=Vt("./src/models/feature_extractors.js"),d=Vt("./src/models/auto/feature_extraction_auto.js"),g=Vt("./src/base/image_processors_utils.js"),h=Vt("./src/models/image_processors.js"),x=Vt("./src/models/auto/image_processing_auto.js"),F=Vt("./src/base/processing_utils.js"),v=Vt("./src/models/processors.js"),b=Vt("./src/models/auto/processing_auto.js"),C=Vt("./src/generation/streamers.js"),y=Vt("./src/generation/stopping_criteria.js"),P=Vt("./src/generation/logits_process.js")})();var VS=p.ASTFeatureExtractor,WS=p.ASTForAudioClassification,US=p.ASTModel,GS=p.ASTPreTrainedModel,KS=p.AlbertForMaskedLM,HS=p.AlbertForQuestionAnswering,qS=p.AlbertForSequenceClassification,QS=p.AlbertModel,XS=p.AlbertPreTrainedModel,JS=p.AlbertTokenizer,YS=p.ArceeForCausalLM,ZS=p.ArceeModel,eF=p.ArceePreTrainedModel,tF=p.AudioClassificationPipeline,rF=p.AutoConfig,sF=p.AutoFeatureExtractor,oF=p.AutoImageProcessor,aF=p.AutoModel,nF=p.AutoModelForAudioClassification,iF=p.AutoModelForAudioFrameClassification,lF=p.AutoModelForAudioTextToText,cF=p.AutoModelForCTC,dF=p.AutoModelForCausalLM,uF=p.AutoModelForDepthEstimation,_F=p.AutoModelForDocumentQuestionAnswering,pF=p.AutoModelForImageClassification,mF=p.AutoModelForImageFeatureExtraction,hF=p.AutoModelForImageMatting,fF=p.AutoModelForImageSegmentation,gF=p.AutoModelForImageTextToText,MF=p.AutoModelForImageToImage,wF=p.AutoModelForMaskGeneration,bF=p.AutoModelForMaskedLM,vF=p.AutoModelForNormalEstimation,xF=p.AutoModelForObjectDetection,yF=p.AutoModelForPoseEstimation,TF=p.AutoModelForQuestionAnswering,PF=p.AutoModelForSemanticSegmentation,EF=p.AutoModelForSeq2SeqLM,kF=p.AutoModelForSequenceClassification,CF=p.AutoModelForSpeechSeq2Seq,SF=p.AutoModelForTextToSpectrogram,FF=p.AutoModelForTextToWaveform,IF=p.AutoModelForTokenClassification,AF=p.AutoModelForUniversalSegmentation,$F=p.AutoModelForVision2Seq,DF=p.AutoModelForXVector,OF=p.AutoModelForZeroShotObjectDetection,LF=p.AutoProcessor,BF=p.AutoTokenizer,zF=p.AutomaticSpeechRecognitionPipeline,RF=p.BackgroundRemovalPipeline,NF=p.BartForConditionalGeneration,jF=p.BartForSequenceClassification,VF=p.BartModel,WF=p.BartPretrainedModel,UF=p.BartTokenizer,GF=p.BaseModelOutput,KF=p.BaseStreamer,HF=p.BeitFeatureExtractor,qF=p.BeitForImageClassification,QF=p.BeitModel,XF=p.BeitPreTrainedModel,JF=p.BertForMaskedLM,YF=p.BertForQuestionAnswering,ZF=p.BertForSequenceClassification,eI=p.BertForTokenClassification,tI=p.BertModel,rI=p.BertPreTrainedModel,sI=p.BertTokenizer,oI=p.BitImageProcessor,aI=p.BlenderbotForConditionalGeneration,nI=p.BlenderbotModel,iI=p.BlenderbotPreTrainedModel,lI=p.BlenderbotSmallForConditionalGeneration,cI=p.BlenderbotSmallModel,dI=p.BlenderbotSmallPreTrainedModel,uI=p.BlenderbotSmallTokenizer,_I=p.BlenderbotTokenizer,pI=p.BloomForCausalLM,mI=p.BloomModel,hI=p.BloomPreTrainedModel,fI=p.BloomTokenizer,gI=p.CLIPFeatureExtractor,MI=p.CLIPImageProcessor,wI=p.CLIPModel,bI=p.CLIPPreTrainedModel,vI=p.CLIPSegForImageSegmentation,xI=p.CLIPSegModel,yI=p.CLIPSegPreTrainedModel,TI=p.CLIPTextModel,PI=p.CLIPTextModelWithProjection,EI=p.CLIPTokenizer,kI=p.CLIPVisionModel,CI=p.CLIPVisionModelWithProjection,SI=p.CamembertForMaskedLM,FI=p.CamembertForQuestionAnswering,II=p.CamembertForSequenceClassification,AI=p.CamembertForTokenClassification,$I=p.CamembertModel,DI=p.CamembertPreTrainedModel,OI=p.CamembertTokenizer,LI=p.CausalLMOutput,BI=p.CausalLMOutputWithPast,zI=p.ChineseCLIPFeatureExtractor,RI=p.ChineseCLIPModel,NI=p.ChineseCLIPPreTrainedModel,jI=p.ClapAudioModelWithProjection,VI=p.ClapFeatureExtractor,WI=p.ClapModel,UI=p.ClapPreTrainedModel,GI=p.ClapTextModelWithProjection,KI=p.ClassifierFreeGuidanceLogitsProcessor,HI=p.CodeGenForCausalLM,qI=p.CodeGenModel,QI=p.CodeGenPreTrainedModel,XI=p.CodeGenTokenizer,JI=p.CodeLlamaTokenizer,YI=p.CohereForCausalLM,ZI=p.CohereModel,eA=p.CoherePreTrainedModel,tA=p.CohereTokenizer,rA=p.ConvBertForMaskedLM,sA=p.ConvBertForQuestionAnswering,oA=p.ConvBertForSequenceClassification,aA=p.ConvBertForTokenClassification,nA=p.ConvBertModel,iA=p.ConvBertPreTrainedModel,lA=p.ConvBertTokenizer,cA=p.ConvNextFeatureExtractor,dA=p.ConvNextForImageClassification,uA=p.ConvNextImageProcessor,_A=p.ConvNextModel,pA=p.ConvNextPreTrainedModel,mA=p.ConvNextV2ForImageClassification,hA=p.ConvNextV2Model,fA=p.ConvNextV2PreTrainedModel,gA=p.DFineForObjectDetection,MA=p.DFineModel,wA=p.DFinePreTrainedModel,bA=p.DINOv3ConvNextModel,vA=p.DINOv3ConvNextPreTrainedModel,xA=p.DINOv3ViTImageProcessor,yA=p.DINOv3ViTModel,TA=p.DINOv3ViTPreTrainedModel,PA=p.DPTFeatureExtractor,EA=p.DPTForDepthEstimation,kA=p.DPTImageProcessor,CA=p.DPTModel,SA=p.DPTPreTrainedModel,FA=p.DacDecoderModel,IA=p.DacDecoderOutput,AA=p.DacEncoderModel,$A=p.DacEncoderOutput,DA=p.DacFeatureExtractor,OA=p.DacModel,LA=p.DacPreTrainedModel,BA=p.DataTypeMap,zA=p.DebertaForMaskedLM,RA=p.DebertaForQuestionAnswering,NA=p.DebertaForSequenceClassification,jA=p.DebertaForTokenClassification,VA=p.DebertaModel,WA=p.DebertaPreTrainedModel,UA=p.DebertaTokenizer,GA=p.DebertaV2ForMaskedLM,KA=p.DebertaV2ForQuestionAnswering,HA=p.DebertaV2ForSequenceClassification,qA=p.DebertaV2ForTokenClassification,QA=p.DebertaV2Model,XA=p.DebertaV2PreTrainedModel,JA=p.DebertaV2Tokenizer,YA=p.DecisionTransformerModel,ZA=p.DecisionTransformerPreTrainedModel,e$=p.DeiTFeatureExtractor,t$=p.DeiTForImageClassification,r$=p.DeiTImageProcessor,s$=p.DeiTModel,o$=p.DeiTPreTrainedModel,a$=p.DepthAnythingForDepthEstimation,n$=p.DepthAnythingPreTrainedModel,i$=p.DepthEstimationPipeline,l$=p.DepthProForDepthEstimation,c$=p.DepthProPreTrainedModel,d$=p.DetrFeatureExtractor,u$=p.DetrForObjectDetection,_$=p.DetrForSegmentation,p$=p.DetrImageProcessor,m$=p.DetrModel,h$=p.DetrObjectDetectionOutput,f$=p.DetrPreTrainedModel,g$=p.DetrSegmentationOutput,M$=p.Dinov2ForImageClassification,w$=p.Dinov2Model,b$=p.Dinov2PreTrainedModel,v$=p.Dinov2WithRegistersForImageClassification,x$=p.Dinov2WithRegistersModel,y$=p.Dinov2WithRegistersPreTrainedModel,T$=p.DistilBertForMaskedLM,P$=p.DistilBertForQuestionAnswering,E$=p.DistilBertForSequenceClassification,k$=p.DistilBertForTokenClassification,C$=p.DistilBertModel,S$=p.DistilBertPreTrainedModel,F$=p.DistilBertTokenizer,I$=p.DocumentQuestionAnsweringPipeline,A$=p.DonutFeatureExtractor,$$=p.DonutImageProcessor,D$=p.DonutSwinModel,O$=p.DonutSwinPreTrainedModel,L$=p.EdgeTamModel,B$=p.EfficientNetForImageClassification,z$=p.EfficientNetImageProcessor,R$=p.EfficientNetModel,N$=p.EfficientNetPreTrainedModel,j$=p.ElectraForMaskedLM,V$=p.ElectraForQuestionAnswering,W$=p.ElectraForSequenceClassification,U$=p.ElectraForTokenClassification,G$=p.ElectraModel,K$=p.ElectraPreTrainedModel,H$=p.ElectraTokenizer,q$=p.EncodecFeatureExtractor,Q$=p.EosTokenCriteria,X$=p.Ernie4_5ForCausalLM,J$=p.Ernie4_5Model,Y$=p.Ernie4_5PreTrainedModel,Z$=p.EsmForMaskedLM,eD=p.EsmForSequenceClassification,tD=p.EsmForTokenClassification,rD=p.EsmModel,sD=p.EsmPreTrainedModel,oD=p.EsmTokenizer,aD=p.ExaoneForCausalLM,nD=p.ExaoneModel,iD=p.ExaonePreTrainedModel,lD=p.FFT,cD=p.FalconForCausalLM,dD=p.FalconModel,uD=p.FalconPreTrainedModel,_D=p.FalconTokenizer,pD=p.FastViTForImageClassification,mD=p.FastViTModel,hD=p.FastViTPreTrainedModel,fD=p.FeatureExtractionPipeline,gD=p.FeatureExtractor,MD=p.FillMaskPipeline,wD=p.Florence2ForConditionalGeneration,bD=p.Florence2PreTrainedModel,vD=p.Florence2Processor,xD=p.ForcedBOSTokenLogitsProcessor,yD=p.ForcedEOSTokenLogitsProcessor,TD=p.GLPNFeatureExtractor,PD=p.GLPNForDepthEstimation,ED=p.GLPNModel,kD=p.GLPNPreTrainedModel,CD=p.GPT2LMHeadModel,SD=p.GPT2Model,FD=p.GPT2PreTrainedModel,ID=p.GPT2Tokenizer,AD=p.GPTBigCodeForCausalLM,$D=p.GPTBigCodeModel,DD=p.GPTBigCodePreTrainedModel,OD=p.GPTJForCausalLM,LD=p.GPTJModel,BD=p.GPTJPreTrainedModel,zD=p.GPTNeoForCausalLM,RD=p.GPTNeoModel,ND=p.GPTNeoPreTrainedModel,jD=p.GPTNeoXForCausalLM,VD=p.GPTNeoXModel,WD=p.GPTNeoXPreTrainedModel,UD=p.GPTNeoXTokenizer,GD=p.Gemma2ForCausalLM,KD=p.Gemma2Model,HD=p.Gemma2PreTrainedModel,qD=p.Gemma3ForCausalLM,QD=p.Gemma3Model,XD=p.Gemma3PreTrainedModel,JD=p.Gemma3nAudioFeatureExtractor,YD=p.Gemma3nForConditionalGeneration,ZD=p.Gemma3nPreTrainedModel,eO=p.Gemma3nProcessor,tO=p.GemmaForCausalLM,rO=p.GemmaModel,sO=p.GemmaPreTrainedModel,oO=p.GemmaTokenizer,aO=p.GlmForCausalLM,nO=p.GlmModel,iO=p.GlmPreTrainedModel,lO=p.GraniteForCausalLM,cO=p.GraniteModel,dO=p.GraniteMoeHybridForCausalLM,uO=p.GraniteMoeHybridModel,_O=p.GraniteMoeHybridPreTrainedModel,pO=p.GranitePreTrainedModel,mO=p.Grok1Tokenizer,hO=p.GroundingDinoForObjectDetection,fO=p.GroundingDinoImageProcessor,gO=p.GroundingDinoPreTrainedModel,MO=p.GroundingDinoProcessor,wO=p.GroupViTModel,bO=p.GroupViTPreTrainedModel,vO=p.HeliumForCausalLM,xO=p.HeliumModel,yO=p.HeliumPreTrainedModel,TO=p.HerbertTokenizer,PO=p.HieraForImageClassification,EO=p.HieraModel,kO=p.HieraPreTrainedModel,CO=p.HubertForCTC,SO=p.HubertForSequenceClassification,FO=p.HubertModel,IO=p.HubertPreTrainedModel,AO=p.IJepaForImageClassification,$O=p.IJepaModel,DO=p.IJepaPreTrainedModel,OO=p.Idefics3ForConditionalGeneration,LO=p.Idefics3ImageProcessor,BO=p.Idefics3PreTrainedModel,zO=p.Idefics3Processor,RO=p.ImageClassificationPipeline,NO=p.ImageFeatureExtractionPipeline,jO=p.ImageFeatureExtractor,VO=p.ImageMattingOutput,WO=p.ImageProcessor,UO=p.ImageSegmentationPipeline,GO=p.ImageToImagePipeline,KO=p.ImageToTextPipeline,HO=p.InterruptableStoppingCriteria,qO=p.JAISLMHeadModel,QO=p.JAISModel,XO=p.JAISPreTrainedModel,JO=p.JinaCLIPImageProcessor,YO=p.JinaCLIPModel,ZO=p.JinaCLIPPreTrainedModel,eL=p.JinaCLIPProcessor,tL=p.JinaCLIPTextModel,rL=p.JinaCLIPVisionModel,sL=p.Lfm2ForCausalLM,oL=p.Lfm2Model,aL=p.Lfm2PreTrainedModel,nL=p.LiteWhisperForConditionalGeneration,iL=p.Llama4ForCausalLM,lL=p.Llama4PreTrainedModel,cL=p.LlamaForCausalLM,dL=p.LlamaModel,uL=p.LlamaPreTrainedModel,_L=p.LlamaTokenizer,pL=p.LlavaForConditionalGeneration,mL=p.LlavaOnevisionForConditionalGeneration,hL=p.LlavaOnevisionImageProcessor,fL=p.LlavaPreTrainedModel,gL=p.LlavaProcessor,ML=p.LlavaQwen2ForCausalLM,wL=p.LogitsProcessor,bL=p.LogitsProcessorList,vL=p.LogitsWarper,xL=p.LongT5ForConditionalGeneration,yL=p.LongT5Model,TL=p.LongT5PreTrainedModel,PL=p.M2M100ForConditionalGeneration,EL=p.M2M100Model,kL=p.M2M100PreTrainedModel,CL=p.M2M100Tokenizer,SL=p.MBart50Tokenizer,FL=p.MBartForCausalLM,IL=p.MBartForConditionalGeneration,AL=p.MBartForSequenceClassification,$L=p.MBartModel,DL=p.MBartPreTrainedModel,OL=p.MBartTokenizer,LL=p.MPNetForMaskedLM,BL=p.MPNetForQuestionAnswering,zL=p.MPNetForSequenceClassification,RL=p.MPNetForTokenClassification,NL=p.MPNetModel,jL=p.MPNetPreTrainedModel,VL=p.MPNetTokenizer,WL=p.MT5ForConditionalGeneration,UL=p.MT5Model,GL=p.MT5PreTrainedModel,KL=p.MarianMTModel,HL=p.MarianModel,qL=p.MarianPreTrainedModel,QL=p.MarianTokenizer,XL=p.Mask2FormerImageProcessor,JL=p.MaskFormerFeatureExtractor,YL=p.MaskFormerForInstanceSegmentation,ZL=p.MaskFormerImageProcessor,e3=p.MaskFormerModel,t3=p.MaskFormerPreTrainedModel,r3=p.MaskedLMOutput,s3=p.MaxLengthCriteria,o3=p.Metric3DForDepthEstimation,a3=p.Metric3DPreTrainedModel,n3=p.Metric3Dv2ForDepthEstimation,i3=p.Metric3Dv2PreTrainedModel,l3=p.MgpstrForSceneTextRecognition,c3=p.MgpstrModelOutput,d3=p.MgpstrPreTrainedModel,u3=p.MgpstrProcessor,_3=p.MgpstrTokenizer,p3=p.MimiDecoderModel,m3=p.MimiDecoderOutput,h3=p.MimiEncoderModel,f3=p.MimiEncoderOutput,g3=p.MimiModel,M3=p.MimiPreTrainedModel,w3=p.MinLengthLogitsProcessor,b3=p.MinNewTokensLengthLogitsProcessor,v3=p.Ministral3ForCausalLM,x3=p.Ministral3Model,y3=p.Ministral3PreTrainedModel,T3=p.MinistralForCausalLM,P3=p.MinistralModel,E3=p.MinistralPreTrainedModel,k3=p.Mistral3ForConditionalGeneration,C3=p.MistralForCausalLM,S3=p.MistralModel,F3=p.MistralPreTrainedModel,I3=p.MobileBertForMaskedLM,A3=p.MobileBertForQuestionAnswering,$3=p.MobileBertForSequenceClassification,D3=p.MobileBertModel,O3=p.MobileBertPreTrainedModel,L3=p.MobileBertTokenizer,B3=p.MobileLLMForCausalLM,z3=p.MobileLLMModel,R3=p.MobileLLMPreTrainedModel,N3=p.MobileNetV1FeatureExtractor,j3=p.MobileNetV1ForImageClassification,V3=p.MobileNetV1ForSemanticSegmentation,W3=p.MobileNetV1ImageProcessor,U3=p.MobileNetV1Model,G3=p.MobileNetV1PreTrainedModel,K3=p.MobileNetV2FeatureExtractor,H3=p.MobileNetV2ForImageClassification,q3=p.MobileNetV2ForSemanticSegmentation,Q3=p.MobileNetV2ImageProcessor,X3=p.MobileNetV2Model,J3=p.MobileNetV2PreTrainedModel,Y3=p.MobileNetV3FeatureExtractor,Z3=p.MobileNetV3ForImageClassification,eB=p.MobileNetV3ForSemanticSegmentation,tB=p.MobileNetV3ImageProcessor,rB=p.MobileNetV3Model,sB=p.MobileNetV3PreTrainedModel,oB=p.MobileNetV4FeatureExtractor,aB=p.MobileNetV4ForImageClassification,nB=p.MobileNetV4ForSemanticSegmentation,iB=p.MobileNetV4ImageProcessor,lB=p.MobileNetV4Model,cB=p.MobileNetV4PreTrainedModel,dB=p.MobileViTFeatureExtractor,uB=p.MobileViTForImageClassification,_B=p.MobileViTImageProcessor,pB=p.MobileViTModel,mB=p.MobileViTPreTrainedModel,hB=p.MobileViTV2ForImageClassification,fB=p.MobileViTV2Model,gB=p.MobileViTV2PreTrainedModel,MB=p.ModelOutput,wB=p.ModernBertDecoderForCausalLM,bB=p.ModernBertDecoderModel,vB=p.ModernBertDecoderPreTrainedModel,xB=p.ModernBertForMaskedLM,yB=p.ModernBertForSequenceClassification,TB=p.ModernBertForTokenClassification,PB=p.ModernBertModel,EB=p.ModernBertPreTrainedModel,kB=p.Moondream1ForConditionalGeneration,CB=p.MoonshineFeatureExtractor,SB=p.MoonshineForConditionalGeneration,FB=p.MoonshineModel,IB=p.MoonshinePreTrainedModel,AB=p.MoonshineProcessor,$B=p.MptForCausalLM,DB=p.MptModel,OB=p.MptPreTrainedModel,LB=p.MultiModalityCausalLM,BB=p.MultiModalityPreTrainedModel,zB=p.MusicgenForCausalLM,RB=p.MusicgenForConditionalGeneration,NB=p.MusicgenModel,jB=p.MusicgenPreTrainedModel,VB=p.NanoChatForCausalLM,WB=p.NanoChatModel,UB=p.NanoChatPreTrainedModel,GB=p.NeoBertForMaskedLM,KB=p.NeoBertForQuestionAnswering,HB=p.NeoBertForSequenceClassification,qB=p.NeoBertForTokenClassification,QB=p.NeoBertModel,XB=p.NeoBertPreTrainedModel,JB=p.NllbTokenizer,YB=p.NoBadWordsLogitsProcessor,ZB=p.NoRepeatNGramLogitsProcessor,ez=p.NomicBertModel,tz=p.NomicBertPreTrainedModel,rz=p.NougatImageProcessor,sz=p.NougatTokenizer,oz=p.OPTForCausalLM,az=p.OPTModel,nz=p.OPTPreTrainedModel,iz=p.ObjectDetectionPipeline,lz=p.Olmo2ForCausalLM,cz=p.Olmo2Model,dz=p.Olmo2PreTrainedModel,uz=p.OlmoForCausalLM,_z=p.OlmoModel,pz=p.OlmoPreTrainedModel,mz=p.OpenELMForCausalLM,hz=p.OpenELMModel,fz=p.OpenELMPreTrainedModel,gz=p.OwlViTFeatureExtractor,Mz=p.OwlViTForObjectDetection,wz=p.OwlViTImageProcessor,bz=p.OwlViTModel,vz=p.OwlViTPreTrainedModel,xz=p.OwlViTProcessor,yz=p.Owlv2ForObjectDetection,Tz=p.Owlv2ImageProcessor,Pz=p.Owlv2Model,Ez=p.Owlv2PreTrainedModel,kz=p.PaliGemmaForConditionalGeneration,Cz=p.PaliGemmaPreTrainedModel,Sz=p.PaliGemmaProcessor,Fz=p.ParakeetFeatureExtractor,Iz=p.ParakeetForCTC,Az=p.ParakeetPreTrainedModel,$z=p.PatchTSMixerForPrediction,Dz=p.PatchTSMixerModel,Oz=p.PatchTSMixerPreTrainedModel,Lz=p.PatchTSTForPrediction,Bz=p.PatchTSTModel,zz=p.PatchTSTPreTrainedModel,Rz=p.Phi3ForCausalLM,Nz=p.Phi3Model,jz=p.Phi3PreTrainedModel,Vz=p.Phi3VForCausalLM,Wz=p.Phi3VImageProcessor,Uz=p.Phi3VPreTrainedModel,Gz=p.Phi3VProcessor,Kz=p.PhiForCausalLM,Hz=p.PhiModel,qz=p.PhiPreTrainedModel,Qz=p.Pipeline,Xz=p.PixtralImageProcessor,Jz=p.PixtralProcessor,Yz=p.PreTrainedModel,Zz=p.PreTrainedTokenizer,eR=p.PretrainedConfig,tR=p.PretrainedMixin,rR=p.Processor,sR=p.PvtForImageClassification,oR=p.PvtImageProcessor,aR=p.PvtModel,nR=p.PvtPreTrainedModel,iR=p.PyAnnoteFeatureExtractor,lR=p.PyAnnoteForAudioFrameClassification,cR=p.PyAnnoteModel,dR=p.PyAnnotePreTrainedModel,uR=p.PyAnnoteProcessor,_R=p.QuestionAnsweringModelOutput,pR=p.QuestionAnsweringPipeline,mR=p.Qwen2ForCausalLM,hR=p.Qwen2Model,fR=p.Qwen2PreTrainedModel,gR=p.Qwen2Tokenizer,MR=p.Qwen2VLForConditionalGeneration,wR=p.Qwen2VLImageProcessor,bR=p.Qwen2VLPreTrainedModel,vR=p.Qwen2VLProcessor,xR=p.Qwen3ForCausalLM,yR=p.Qwen3Model,TR=p.Qwen3PreTrainedModel,PR=p.RFDetrForObjectDetection,ER=p.RFDetrModel,kR=p.RFDetrObjectDetectionOutput,CR=p.RFDetrPreTrainedModel,SR=p.RTDetrForObjectDetection,FR=p.RTDetrImageProcessor,IR=p.RTDetrModel,AR=p.RTDetrObjectDetectionOutput,$R=p.RTDetrPreTrainedModel,DR=p.RTDetrV2ForObjectDetection,OR=p.RTDetrV2Model,LR=p.RTDetrV2ObjectDetectionOutput,BR=p.RTDetrV2PreTrainedModel,zR=p.RawAudio,RR=p.RawImage,NR=p.RawVideo,jR=p.RawVideoFrame,VR=p.RepetitionPenaltyLogitsProcessor,WR=p.ResNetForImageClassification,UR=p.ResNetModel,GR=p.ResNetPreTrainedModel,KR=p.RoFormerForMaskedLM,HR=p.RoFormerForQuestionAnswering,qR=p.RoFormerForSequenceClassification,QR=p.RoFormerForTokenClassification,XR=p.RoFormerModel,JR=p.RoFormerPreTrainedModel,YR=p.RoFormerTokenizer,ZR=p.RobertaForMaskedLM,eN=p.RobertaForQuestionAnswering,tN=p.RobertaForSequenceClassification,rN=p.RobertaForTokenClassification,sN=p.RobertaModel,oN=p.RobertaPreTrainedModel,aN=p.RobertaTokenizer,nN=p.Sam2ImageProcessor,iN=p.Sam2ImageSegmentationOutput,lN=p.Sam2Model,cN=p.Sam2PreTrainedModel,dN=p.Sam2Processor,uN=p.Sam2VideoProcessor,_N=p.Sam3ImageProcessor,pN=p.Sam3TrackerModel,mN=p.SamImageProcessor,hN=p.SamImageSegmentationOutput,fN=p.SamModel,gN=p.SamPreTrainedModel,MN=p.SamProcessor,wN=p.SapiensForDepthEstimation,bN=p.SapiensForNormalEstimation,vN=p.SapiensForSemanticSegmentation,xN=p.SapiensPreTrainedModel,yN=p.SeamlessM4TFeatureExtractor,TN=p.SegformerFeatureExtractor,PN=p.SegformerForImageClassification,EN=p.SegformerForSemanticSegmentation,kN=p.SegformerImageProcessor,CN=p.SegformerModel,SN=p.SegformerPreTrainedModel,FN=p.Seq2SeqLMOutput,IN=p.SequenceClassifierOutput,AN=p.SiglipImageProcessor,$N=p.SiglipModel,DN=p.SiglipPreTrainedModel,ON=p.SiglipTextModel,LN=p.SiglipTokenizer,BN=p.SiglipVisionModel,zN=p.SmolLM3ForCausalLM,RN=p.SmolLM3Model,NN=p.SmolLM3PreTrainedModel,jN=p.SmolVLMForConditionalGeneration,VN=p.SmolVLMImageProcessor,WN=p.SmolVLMProcessor,UN=p.SnacDecoderModel,GN=p.SnacEncoderModel,KN=p.SnacFeatureExtractor,HN=p.SnacModel,qN=p.SnacPreTrainedModel,QN=p.SpeechT5FeatureExtractor,XN=p.SpeechT5ForSpeechToText,JN=p.SpeechT5ForTextToSpeech,YN=p.SpeechT5HifiGan,ZN=p.SpeechT5Model,ej=p.SpeechT5PreTrainedModel,tj=p.SpeechT5Processor,rj=p.SpeechT5Tokenizer,sj=p.SqueezeBertForMaskedLM,oj=p.SqueezeBertForQuestionAnswering,aj=p.SqueezeBertForSequenceClassification,nj=p.SqueezeBertModel,ij=p.SqueezeBertPreTrainedModel,lj=p.SqueezeBertTokenizer,cj=p.StableLmForCausalLM,dj=p.StableLmModel,uj=p.StableLmPreTrainedModel,_j=p.Starcoder2ForCausalLM,pj=p.Starcoder2Model,mj=p.Starcoder2PreTrainedModel,hj=p.StoppingCriteria,fj=p.StoppingCriteriaList,gj=p.StyleTextToSpeech2Model,Mj=p.StyleTextToSpeech2PreTrainedModel,wj=p.SummarizationPipeline,bj=p.SupertonicForConditionalGeneration,vj=p.SupertonicPreTrainedModel,xj=p.SuppressTokensAtBeginLogitsProcessor,yj=p.Swin2SRForImageSuperResolution,Tj=p.Swin2SRImageProcessor,Pj=p.Swin2SRModel,Ej=p.Swin2SRPreTrainedModel,kj=p.SwinForImageClassification,Cj=p.SwinForSemanticSegmentation,Sj=p.SwinModel,Fj=p.SwinPreTrainedModel,Ij=p.T5ForConditionalGeneration,Aj=p.T5Model,$j=p.T5PreTrainedModel,Dj=p.T5Tokenizer,Oj=p.TableTransformerForObjectDetection,Lj=p.TableTransformerModel,Bj=p.TableTransformerObjectDetectionOutput,zj=p.TableTransformerPreTrainedModel,Rj=p.TemperatureLogitsWarper,Nj=p.Tensor,jj=p.Text2TextGenerationPipeline,Vj=p.TextClassificationPipeline,Wj=p.TextGenerationPipeline,Uj=p.TextStreamer,Gj=p.TextToAudioPipeline,Kj=p.TokenClassificationPipeline,Hj=p.TokenClassifierOutput,qj=p.TokenizerModel,Qj=p.TopKLogitsWarper,Xj=p.TopPLogitsWarper,Jj=p.TrOCRForCausalLM,Yj=p.TrOCRPreTrainedModel,Zj=p.TranslationPipeline,eV=p.UltravoxModel,tV=p.UltravoxPreTrainedModel,rV=p.UltravoxProcessor,sV=p.UniSpeechForCTC,oV=p.UniSpeechForSequenceClassification,aV=p.UniSpeechModel,nV=p.UniSpeechPreTrainedModel,iV=p.UniSpeechSatForAudioFrameClassification,lV=p.UniSpeechSatForCTC,cV=p.UniSpeechSatForSequenceClassification,dV=p.UniSpeechSatModel,uV=p.UniSpeechSatPreTrainedModel,_V=p.VLChatProcessor,pV=p.VLMImageProcessor,mV=p.VaultGemmaForCausalLM,hV=p.VaultGemmaModel,fV=p.VaultGemmaPreTrainedModel,gV=p.ViTFeatureExtractor,MV=p.ViTForImageClassification,wV=p.ViTImageProcessor,bV=p.ViTMAEModel,vV=p.ViTMAEPreTrainedModel,xV=p.ViTMSNForImageClassification,yV=p.ViTMSNModel,TV=p.ViTMSNPreTrainedModel,PV=p.ViTModel,EV=p.ViTPreTrainedModel,kV=p.VisionEncoderDecoderModel,CV=p.VitMatteForImageMatting,SV=p.VitMatteImageProcessor,FV=p.VitMattePreTrainedModel,IV=p.VitPoseForPoseEstimation,AV=p.VitPoseImageProcessor,$V=p.VitPosePreTrainedModel,DV=p.VitsModel,OV=p.VitsModelOutput,LV=p.VitsPreTrainedModel,BV=p.VitsTokenizer,zV=p.VoxtralForConditionalGeneration,RV=p.VoxtralProcessor,NV=p.Wav2Vec2BertForCTC,jV=p.Wav2Vec2BertForSequenceClassification,VV=p.Wav2Vec2BertModel,WV=p.Wav2Vec2BertPreTrainedModel,UV=p.Wav2Vec2CTCTokenizer,GV=p.Wav2Vec2FeatureExtractor,KV=p.Wav2Vec2ForAudioFrameClassification,HV=p.Wav2Vec2ForCTC,qV=p.Wav2Vec2ForSequenceClassification,QV=p.Wav2Vec2Model,XV=p.Wav2Vec2PreTrainedModel,JV=p.Wav2Vec2Processor,YV=p.Wav2Vec2ProcessorWithLM,ZV=p.WavLMForAudioFrameClassification,e4=p.WavLMForCTC,t4=p.WavLMForSequenceClassification,r4=p.WavLMForXVector,s4=p.WavLMModel,o4=p.WavLMPreTrainedModel,a4=p.WeSpeakerFeatureExtractor,n4=p.WeSpeakerResNetModel,i4=p.WeSpeakerResNetPreTrainedModel,l4=p.WhisperFeatureExtractor,c4=p.WhisperForConditionalGeneration,d4=p.WhisperModel,u4=p.WhisperPreTrainedModel,_4=p.WhisperProcessor,p4=p.WhisperTextStreamer,m4=p.WhisperTimeStampLogitsProcessor,h4=p.WhisperTokenizer,f4=p.XLMForQuestionAnswering,g4=p.XLMForSequenceClassification,M4=p.XLMForTokenClassification,w4=p.XLMModel,b4=p.XLMPreTrainedModel,v4=p.XLMRobertaForMaskedLM,x4=p.XLMRobertaForQuestionAnswering,y4=p.XLMRobertaForSequenceClassification,T4=p.XLMRobertaForTokenClassification,P4=p.XLMRobertaModel,E4=p.XLMRobertaPreTrainedModel,k4=p.XLMRobertaTokenizer,C4=p.XLMTokenizer,S4=p.XLMWithLMHeadModel,F4=p.XVectorOutput,I4=p.YolosFeatureExtractor,A4=p.YolosForObjectDetection,$4=p.YolosImageProcessor,D4=p.YolosModel,O4=p.YolosObjectDetectionOutput,L4=p.YolosPreTrainedModel,B4=p.ZeroShotAudioClassificationPipeline,z4=p.ZeroShotClassificationPipeline,R4=p.ZeroShotImageClassificationPipeline,N4=p.ZeroShotObjectDetectionPipeline,j4=p.bankers_round,V4=p.cat,W4=p.cos_sim,U4=p.dot,G4=p.dynamic_time_warping,K4=p.env,H4=p.full,q4=p.full_like,Q4=p.getCacheShapes,X4=p.hamming,J4=p.hanning,Y4=p.interpolate,Z4=p.interpolate_4d,eW=p.interpolate_data,tW=p.is_chinese_char,rW=p.layer_norm,sW=p.load_image,oW=p.load_video,aW=p.log_softmax,nW=p.magnitude,iW=p.matmul,lW=p.max,cW=p.mean,dW=p.mean_pooling,uW=p.medianFilter,_W=p.mel_filter_bank,pW=p.min,mW=p.ones,hW=p.ones_like,fW=p.permute,gW=p.permute_data,$0=p.pipeline,MW=p.quantize_embeddings,wW=p.rand,bW=p.randn,vW=p.read_audio,xW=p.rfft,yW=p.round,TW=p.slice,PW=p.softmax,EW=p.spectrogram,kW=p.stack,CW=p.std_mean,SW=p.topk,FW=p.window_function,IW=p.zeros,AW=p.zeros_like;async function D0(e){let{spec:r,onLoading:t}=e;return await $0(e.task,r.model,{device:r.device,dtype:r.dtype,progress_callback:o=>{t({total:o.total,progress:o.progress})}})}var O0=ls(),gE=e=>Lf(async r=>{O0.resolve({spec:r,pipe:await D0({spec:r,task:"background-removal",onLoading:t=>e.loading(t)})})}),Yi=new OffscreenCanvas(1920,1080),ME=Yi.getContext("2d");await Zf.worker(e=>({prepare:gE(e.host),async remove(t){let{pipe:s}=await O0.promise;Yi.width=t.displayWidth,Yi.height=t.displayHeight,ME?.drawImage(t,0,0);let a=(await s(Yi))[0],n=new VideoFrame(a.toCanvas(),{timestamp:t.timestamp,duration:t.duration??void 0});return t.close(),e.transfer=[n],n}}));
2850
+ `}):(console.warn("You are passing both `text` and `images` to `PaliGemmaProcessor`. The processor expects special image tokens in the text, as many tokens as there are images per each text. It is recommended to add `<image>` tokens in the very beginning of your text. For this call, we will infer how many images each text has and add special tokens."),x=u.map(b=>i(b,g,h,n,_.length)));let F=this.tokenizer(x,d);return{...await this.image_processor(_,d),...F}}}}),"./src/models/parakeet/feature_extraction_parakeet.js":((e,r,t)=>{t.r(r),t.d(r,{ParakeetFeatureExtractor:()=>i});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js");let n=1e-5;class i extends s.FeatureExtractor{constructor(c){super(c),this.config.mel_filters??=(0,a.mel_filter_bank)(Math.floor(1+this.config.n_fft/2),this.config.feature_size,0,this.config.sampling_rate/2,this.config.sampling_rate,"slaney","slaney");let _=(0,a.window_function)(this.config.win_length,"hann",{periodic:!1});this.window=new Float64Array(this.config.n_fft);let u=Math.floor((this.config.n_fft-this.config.win_length)/2);this.window.set(_,u)}async _extract_fbank_features(c){let _=this.config.preemphasis;c=new Float64Array(c);for(let d=c.length-1;d>=1;--d)c[d]-=_*c[d-1];return await(0,a.spectrogram)(c,this.window,this.window.length,this.config.hop_length,{fft_length:this.config.n_fft,power:2,mel_filters:this.config.mel_filters,log_mel:"log",mel_floor:-1/0,pad_mode:"constant",center:!0,transpose:!0,mel_offset:2**-24})}async _call(c){(0,s.validate_audio_inputs)(c,"ParakeetFeatureExtractor");let _=await this._extract_fbank_features(c),u=Math.floor((c.length+Math.floor(this.config.n_fft/2)*2-this.config.n_fft)/this.config.hop_length),d=_.data;d.fill(0,u*_.dims[1]);let[g,h]=_.dims,x=new Float64Array(h),F=new Float64Array(h);for(let C=0;C<u;++C){let y=C*h;for(let P=0;P<h;++P){let I=d[y+P];x[P]+=I,F[P]+=I*I}}let v=u>1?u-1:1;for(let C=0;C<h;++C){let y=x[C]/u,P=(F[C]-u*y*y)/v,f=1/(Math.sqrt(P)+n);for(let E=0;E<u;++E){let D=E*h+C;d[D]=(d[D]-y)*f}}let b=new BigInt64Array(g);return b.fill(1n,0,u),{input_features:_.unsqueeze_(0),attention_mask:new o.Tensor("int64",b,[1,g])}}}}),"./src/models/phi3_v/image_processing_phi3_v.js":((e,r,t)=>{t.r(r),t.d(r,{Phi3VImageProcessor:()=>_});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/tensor.js");let a=336,n=[2,3],{ceil:i,floor:l,sqrt:c}=Math;class _ extends s.ImageProcessor{constructor(d){super({...d,do_normalize:!0,do_pad:!0,pad_size:"custom",do_convert_rgb:!0,do_resize:!0}),this._num_crops=d.num_crops}calc_num_image_tokens_from_image_size(d,g){let{num_img_tokens:h}=this.config;return l((l(g/a)*l(d/a)+1)*h+1+(l(g/a)+1)*c(h))}get_resize_output_image_size(d,g){let h=this._num_crops,[x,F]=d.size,v=x/F,b=1;for(;b*Math.ceil(b/v)<=h;)b+=1;b-=1;let C=Math.floor(b*336),y=Math.floor(C/v);return[C,y]}pad_image(d,g,h,x={}){let[F,v]=g,b=a*i(F/a),C=a*i(v/a),y=[1,1,1].map((P,I)=>(P-this.image_mean[I])/this.image_std[I]);return super.pad_image(d,g,{width:C,height:b},{center:!0,constant_values:y,...x})}async _call(d,{num_crops:g=null}={}){if(this._num_crops=g??=this.config.num_crops,g<4||c(g)%1!==0)throw new Error("num_crops must be a square number >= 4");Array.isArray(d)||(d=[d]);let h=d.length,x=await Promise.all(d.map(f=>this.preprocess(f))),F=x.map(f=>f.original_size),v=x.map(f=>f.reshaped_input_size),b=[];for(let{pixel_values:f}of x){f.unsqueeze_(0);let[E,D]=f.dims.slice(-2),O=await(0,o.interpolate_4d)(f,{size:[a,a],mode:"bicubic"});if(g>0){let U=[],W=c(g),z=l(D/W),X=l(E/W);for(let q=0;q<W;++q)for(let re=0;re<W;++re){let oe,ne,ye,Y;q===W-1?(ne=E-X,Y=E):(ne=q*X,Y=(q+1)*X),re===W-1?(oe=D-z,ye=D):(oe=re*z,ye=(re+1)*z);let H=[ne,oe],R=[Y,ye],L=await(0,o.slice)(f,H,R,n);U.push(L)}let J=await(0,o.interpolate_4d)((0,o.cat)(U,0),{size:[a,a],mode:"bicubic"});b.push((0,o.cat)([O,J],0))}else b.push(O)}let C=(0,o.stack)(b,0),y=v.map(f=>f.map(E=>a*i(E/a))),P=new o.Tensor("int64",y.flat(),[h,2]),I=y.map(([f,E])=>this.calc_num_image_tokens_from_image_size(E,f));return{pixel_values:C,original_sizes:F,reshaped_input_sizes:v,image_sizes:P,num_img_tokens:I}}}}),"./src/models/phi3_v/processing_phi3_v.js":((e,r,t)=>{t.r(r),t.d(r,{Phi3VProcessor:()=>c});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js"),n=t("./src/utils/image.js");let i="<|image|>",l=/<\|image_\d+\|>/g;class c extends s.Processor{static image_processor_class=o.AutoImageProcessor;static tokenizer_class=a.AutoTokenizer;async _call(u,d=null,{padding:g=!0,truncation:h=!0,num_crops:x=null}={}){Array.isArray(u)||(u=[u]);let F,v;if(d){v=await this.image_processor(d,{num_crops:x});let{num_img_tokens:b}=v,C=u.map((P,I)=>P.split(l).join(i.repeat(b[I])));F=this.tokenizer(C,{padding:g,truncation:h});let y=this.tokenizer.model.convert_tokens_to_ids([i])[0];F.input_ids.map_(P=>P==y?-P:P)}else F=this.tokenizer(u);return{...F,...v}}}}),"./src/models/pixtral/image_processing_pixtral.js":((e,r,t)=>{t.r(r),t.d(r,{PixtralImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{get_resize_output_image_size(n,i){let{longest_edge:l}=i;if(l===void 0)throw new Error("size must contain 'longest_edge'");let[c,_]=n.size,u=Math.max(c,_)/l,d=c,g=_;u>1&&(d=Math.floor(c/u),g=Math.floor(_/u));let{patch_size:h,spatial_merge_size:x}=this.config;if(!x)throw new Error("config must contain 'spatial_merge_size'");let F=h*x,v=Math.floor((d-1)/F)+1,b=Math.floor((g-1)/F)+1;return[v*F,b*F]}}}),"./src/models/pixtral/processing_pixtral.js":((e,r,t)=>{t.r(r),t.d(r,{PixtralProcessor:()=>n});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js");class n extends s.Processor{static tokenizer_class=a.AutoTokenizer;static image_processor_class=o.AutoImageProcessor;static uses_processor_config=!0;async _call(l,c=null,_={}){let u=await this.image_processor(l,_);if(c){let[g,h]=u.pixel_values.dims.slice(-2),{image_token:x,image_break_token:F,image_end_token:v,patch_size:b,spatial_merge_size:C}=this.config,y=b*C,P=Math.floor(g/y),I=Math.floor(h/y);c=structuredClone(c),Array.isArray(c)||(c=[c]);for(let f=0;f<c.length;++f){let E=x.repeat(I),D=E+F,O=E+v,U=D.repeat(P-1)+O;c[f]=c[f].replace(x,U)}}let d=c?this.tokenizer(c,_):{};return{...u,...d}}}}),"./src/models/processors.js":((e,r,t)=>{t.r(r),t.d(r,{Florence2Processor:()=>s.Florence2Processor,Gemma3nProcessor:()=>o.Gemma3nProcessor,GroundingDinoProcessor:()=>a.GroundingDinoProcessor,Idefics3Processor:()=>n.Idefics3Processor,JinaCLIPProcessor:()=>l.JinaCLIPProcessor,LlavaProcessor:()=>c.LlavaProcessor,MgpstrProcessor:()=>_.MgpstrProcessor,MoonshineProcessor:()=>u.MoonshineProcessor,OwlViTProcessor:()=>d.OwlViTProcessor,PaliGemmaProcessor:()=>g.PaliGemmaProcessor,Phi3VProcessor:()=>h.Phi3VProcessor,PixtralProcessor:()=>x.PixtralProcessor,PyAnnoteProcessor:()=>F.PyAnnoteProcessor,Qwen2VLProcessor:()=>v.Qwen2VLProcessor,Sam2Processor:()=>C.Sam2Processor,Sam2VideoProcessor:()=>C.Sam2VideoProcessor,SamProcessor:()=>b.SamProcessor,SmolVLMProcessor:()=>y.SmolVLMProcessor,SpeechT5Processor:()=>P.SpeechT5Processor,UltravoxProcessor:()=>I.UltravoxProcessor,VLChatProcessor:()=>i.VLChatProcessor,VoxtralProcessor:()=>f.VoxtralProcessor,Wav2Vec2Processor:()=>E.Wav2Vec2Processor,Wav2Vec2ProcessorWithLM:()=>D.Wav2Vec2ProcessorWithLM,WhisperProcessor:()=>O.WhisperProcessor});var s=t("./src/models/florence2/processing_florence2.js"),o=t("./src/models/gemma3n/processing_gemma3n.js"),a=t("./src/models/grounding_dino/processing_grounding_dino.js"),n=t("./src/models/idefics3/processing_idefics3.js"),i=t("./src/models/janus/processing_janus.js"),l=t("./src/models/jina_clip/processing_jina_clip.js"),c=t("./src/models/llava/processing_llava.js"),_=t("./src/models/mgp_str/processing_mgp_str.js"),u=t("./src/models/moonshine/processing_moonshine.js"),d=t("./src/models/owlvit/processing_owlvit.js"),g=t("./src/models/paligemma/processing_paligemma.js"),h=t("./src/models/phi3_v/processing_phi3_v.js"),x=t("./src/models/pixtral/processing_pixtral.js"),F=t("./src/models/pyannote/processing_pyannote.js"),v=t("./src/models/qwen2_vl/processing_qwen2_vl.js"),b=t("./src/models/sam/processing_sam.js"),C=t("./src/models/sam2/processing_sam2.js"),y=t("./src/models/smolvlm/processing_smolvlm.js"),P=t("./src/models/speecht5/processing_speecht5.js"),I=t("./src/models/ultravox/processing_ultravox.js"),f=t("./src/models/voxtral/processing_voxtral.js"),E=t("./src/models/wav2vec2/processing_wav2vec2.js"),D=t("./src/models/wav2vec2_with_lm/processing_wav2vec2_with_lm.js"),O=t("./src/models/whisper/processing_whisper.js")}),"./src/models/pvt/image_processing_pvt.js":((e,r,t)=>{t.r(r),t.d(r,{PvtImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}}),"./src/models/pyannote/feature_extraction_pyannote.js":((e,r,t)=>{t.r(r),t.d(r,{PyAnnoteFeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/maths.js");class n extends s.FeatureExtractor{async _call(l){(0,s.validate_audio_inputs)(l,"PyAnnoteFeatureExtractor"),l instanceof Float64Array&&(l=new Float32Array(l));let c=[1,1,l.length];return{input_values:new o.Tensor("float32",l,c)}}samples_to_frames(l){return(l-this.config.offset)/this.config.step}post_process_speaker_diarization(l,c){let _=c/this.samples_to_frames(c)/this.config.sampling_rate,u=[];for(let d of l.tolist()){let g=[],h=-1;for(let x=0;x<d.length;++x){let F=(0,a.softmax)(d[x]),[v,b]=(0,a.max)(F),[C,y]=[x,x+1];b!==h?(h=b,g.push({id:b,start:C,end:y,score:v})):(g.at(-1).end=y,g.at(-1).score+=v)}u.push(g.map(({id:x,start:F,end:v,score:b})=>({id:x,start:F*_,end:v*_,confidence:b/(v-F)})))}return u}}}),"./src/models/pyannote/processing_pyannote.js":((e,r,t)=>{t.r(r),t.d(r,{PyAnnoteProcessor:()=>a});var s=t("./src/base/processing_utils.js"),o=t("./src/models/pyannote/feature_extraction_pyannote.js");class a extends s.Processor{static feature_extractor_class=o.PyAnnoteFeatureExtractor;async _call(i){return await this.feature_extractor(i)}post_process_speaker_diarization(...i){return this.feature_extractor.post_process_speaker_diarization(...i)}get sampling_rate(){return this.feature_extractor.config.sampling_rate}}}),"./src/models/qwen2_vl/image_processing_qwen2_vl.js":((e,r,t)=>{t.r(r),t.d(r,{Qwen2VLImageProcessor:()=>a});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/tensor.js");class a extends s.ImageProcessor{async _call(i,...l){let{pixel_values:c,original_sizes:_,reshaped_input_sizes:u}=await super._call(i,...l),d=c,{temporal_patch_size:g,merge_size:h,patch_size:x}=this.config;d.dims[0]===1&&(d=(0,o.cat)(Array.from({length:g},()=>d),0));let F=d.dims[0]/g,v=d.dims[1],b=Math.floor(d.dims[2]/x),C=Math.floor(d.dims[3]/x),y=d.view(F,g,v,Math.floor(b/h),h,x,Math.floor(C/h),h,x).permute(0,3,6,4,7,2,1,5,8).view(F*b*C,v*g*x*x),P=new o.Tensor("int64",[F,b,C],[1,3]);return{pixel_values:y,image_grid_thw:P,original_sizes:_,reshaped_input_sizes:u}}}}),"./src/models/qwen2_vl/processing_qwen2_vl.js":((e,r,t)=>{t.r(r),t.d(r,{Qwen2VLProcessor:()=>i});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),a=t("./src/tokenizers.js"),n=t("./src/utils/image.js");class i extends s.Processor{static image_processor_class=o.AutoImageProcessor;static tokenizer_class=a.AutoTokenizer;async _call(c,_=null,...u){Array.isArray(c)||(c=[c]);let d,g;if(_&&(d=await this.image_processor(_),g=d.image_grid_thw),g){let x=this.image_processor.config.merge_size**2,F=0,v=g.tolist();c=c.map(b=>{for(;b.includes("<|image_pad|>");){let C=Number(v[F++].reduce((y,P)=>y*P,1n));b=b.replace("<|image_pad|>","<|placeholder|>".repeat(Math.floor(C/x)))}return b.replaceAll("<|placeholder|>","<|image_pad|>")})}return{...this.tokenizer(c),...d}}}}),"./src/models/rt_detr/image_processing_rt_detr.js":((e,r,t)=>{t.r(r),t.d(r,{RTDetrImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{post_process_object_detection(...n){return(0,s.post_process_object_detection)(...n)}}}),"./src/models/sam/image_processing_sam.js":((e,r,t)=>{t.r(r),t.d(r,{SamImageProcessor:()=>n});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/core.js"),a=t("./src/utils/tensor.js");class n extends s.ImageProcessor{reshape_input_points(l,c,_,u=!1){l=structuredClone(l);let d=(0,o.calculateDimensions)(l);if(d.length===3)u||(d=[1,...d]),l=[l];else if(d.length!==4)throw Error("The input_points must be a 4D tensor of shape `batch_size`, `point_batch_size`, `nb_points_per_image`, `2`.");for(let g=0;g<l.length;++g){let[h,x]=c[g],[F,v]=_[g],b=[v/x,F/h];for(let C=0;C<l[g].length;++C)for(let y=0;y<l[g][C].length;++y)for(let P=0;P<l[g][C][y].length;++P)l[g][C][y][P]*=b[P%2]}return new a.Tensor("float32",Float32Array.from(l.flat(1/0)),d)}add_input_labels(l,c){let _=(0,o.calculateDimensions)(l);if(_.length===2)_=[1,..._],l=[l];else if(_.length!==3)throw Error("The input_points must be a 4D tensor of shape `batch_size`, `point_batch_size`, `nb_points_per_image`, `2`.");if(_.some((u,d)=>u!==c.dims[d]))throw Error(`The first ${_.length} dimensions of 'input_points' and 'input_labels' must be the same.`);return new a.Tensor("int64",l.flat(1/0).map(BigInt),_)}async _call(l,{input_points:c=null,input_labels:_=null,input_boxes:u=null}={}){let d=await super._call(l);if(c&&(d.input_points=this.reshape_input_points(c,d.original_sizes,d.reshaped_input_sizes)),_){if(!d.input_points)throw Error("`input_points` must be provided if `input_labels` are provided.");d.input_labels=this.add_input_labels(_,d.input_points)}return u&&(d.input_boxes=this.reshape_input_points(u,d.original_sizes,d.reshaped_input_sizes,!0)),d}async post_process_masks(l,c,_,{mask_threshold:u=0,binarize:d=!0,pad_size:g=null}={}){let h=[];g=g??this.pad_size??this.size;let x=[g.height,g.width];for(let F=0;F<c.length;++F){let v=c[F],b=_[F],C=await(0,a.interpolate_4d)(l[F],{mode:"bilinear",size:x});if(C=C.slice(null,null,[0,b[0]],[0,b[1]]),C=await(0,a.interpolate_4d)(C,{mode:"bilinear",size:v}),d){let y=C.data,P=new Uint8Array(y.length);for(let I=0;I<y.length;++I)y[I]>u&&(P[I]=1);C=new a.Tensor("bool",P,C.dims)}h.push(C)}return h}generate_crop_boxes(l,c,{crop_n_layers:_=0,overlap_ratio:u=512/1500,points_per_crop:d=32,crop_n_points_downscale_factor:g=1}={}){}}}),"./src/models/sam/processing_sam.js":((e,r,t)=>{t.r(r),t.d(r,{SamProcessor:()=>a});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js");class a extends s.Processor{static image_processor_class=o.AutoImageProcessor;async _call(...i){return await this.image_processor(...i)}post_process_masks(...i){return this.image_processor.post_process_masks(...i)}reshape_input_points(...i){return this.image_processor.reshape_input_points(...i)}}}),"./src/models/sam2/image_processing_sam2.js":((e,r,t)=>{t.r(r),t.d(r,{Sam2ImageProcessor:()=>s.SamImageProcessor});var s=t("./src/models/sam/image_processing_sam.js")}),"./src/models/sam2/processing_sam2.js":((e,r,t)=>{t.r(r),t.d(r,{Sam2Processor:()=>o,Sam2VideoProcessor:()=>a});var s=t("./src/models/sam/processing_sam.js");class o extends s.SamProcessor{}class a extends o{}}),"./src/models/sam3/image_processing_sam3.js":((e,r,t)=>{t.r(r),t.d(r,{Sam3ImageProcessor:()=>s.Sam2ImageProcessor});var s=t("./src/models/sam2/image_processing_sam2.js")}),"./src/models/seamless_m4t/feature_extraction_seamless_m4t.js":((e,r,t)=>{t.r(r),t.d(r,{SeamlessM4TFeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js");class n extends s.FeatureExtractor{constructor(l){super(l);let c=this.config.sampling_rate,_=(0,a.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(c/2),c,null,"kaldi",!0);this.mel_filters=_,this.window=(0,a.window_function)(400,"povey",{periodic:!1})}async _extract_fbank_features(l,c){return l=l.map(_=>_*32768),(0,a.spectrogram)(l,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,max_num_frames:c,transpose:!0})}async _call(l,{padding:c=!0,pad_to_multiple_of:_=2,do_normalize_per_mel_bins:u=!0,return_attention_mask:d=!0}={}){(0,s.validate_audio_inputs)(l,"SeamlessM4TFeatureExtractor");let g=await this._extract_fbank_features(l,this.config.max_length);if(u){let[P,I]=g.dims,f=g.data;for(let E=0;E<I;++E){let D=0;for(let z=0;z<P;++z)D+=f[z*I+E];let O=D/P,U=0;for(let z=0;z<P;++z)U+=(f[z*I+E]-O)**2;U/=P-1;let W=Math.sqrt(U+1e-7);for(let z=0;z<P;++z){let X=z*I+E;f[X]=(f[X]-O)/W}}}let h;if(c){let[P,I]=g.dims,f=g.data,E=P%_;if(E>0){let D=new Float32Array(I*(P+E));D.set(f),D.fill(this.config.padding_value,f.length);let O=P+E;g=new o.Tensor(g.type,D,[O,I]),d&&(h=new o.Tensor("int64",new BigInt64Array(O),[1,O]),h.data.fill(1n,0,P))}}let[x,F]=g.dims,v=this.config.stride;if(x%v!==0)throw new Error(`The number of frames (${x}) must be a multiple of the stride (${v}).`);let C=g.view(1,Math.floor(x/v),F*v),y={input_features:C};if(d){let P=C.dims[1],I=new BigInt64Array(P);if(h){let f=h.data;for(let E=1,D=0;E<x;E+=v,++D)I[D]=f[E]}else I.fill(1n);y.attention_mask=new o.Tensor("int64",I,[1,P])}return y}}}),"./src/models/segformer/image_processing_segformer.js":((e,r,t)=>{t.r(r),t.d(r,{SegformerFeatureExtractor:()=>a,SegformerImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{post_process_semantic_segmentation(...i){return(0,s.post_process_semantic_segmentation)(...i)}}class a extends o{}}),"./src/models/siglip/image_processing_siglip.js":((e,r,t)=>{t.r(r),t.d(r,{SiglipImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}}),"./src/models/smolvlm/image_processing_smolvlm.js":((e,r,t)=>{t.r(r),t.d(r,{SmolVLMImageProcessor:()=>s.Idefics3ImageProcessor});var s=t("./src/models/idefics3/image_processing_idefics3.js")}),"./src/models/smolvlm/processing_smolvlm.js":((e,r,t)=>{t.r(r),t.d(r,{SmolVLMProcessor:()=>s.Idefics3Processor});var s=t("./src/models/idefics3/processing_idefics3.js")}),"./src/models/snac/feature_extraction_snac.js":((e,r,t)=>{t.r(r),t.d(r,{SnacFeatureExtractor:()=>o});var s=t("./src/models/dac/feature_extraction_dac.js");class o extends s.DacFeatureExtractor{}}),"./src/models/speecht5/feature_extraction_speecht5.js":((e,r,t)=>{t.r(r),t.d(r,{SpeechT5FeatureExtractor:()=>o});var s=t("./src/base/feature_extraction_utils.js");class o extends s.FeatureExtractor{}}),"./src/models/speecht5/processing_speecht5.js":((e,r,t)=>{t.r(r),t.d(r,{SpeechT5Processor:()=>n});var s=t("./src/base/processing_utils.js"),o=t("./src/tokenizers.js"),a=t("./src/models/auto/feature_extraction_auto.js");class n extends s.Processor{static tokenizer_class=o.AutoTokenizer;static feature_extractor_class=a.AutoFeatureExtractor;async _call(l){return await this.feature_extractor(l)}}}),"./src/models/swin2sr/image_processing_swin2sr.js":((e,r,t)=>{t.r(r),t.d(r,{Swin2SRImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{pad_image(n,i,l,c={}){let[_,u,d]=i;return super.pad_image(n,i,{width:u+(l-u%l)%l,height:_+(l-_%l)%l},{mode:"symmetric",center:!1,constant_values:-1,...c})}}}),"./src/models/ultravox/processing_ultravox.js":((e,r,t)=>{t.r(r),t.d(r,{UltravoxProcessor:()=>n});var s=t("./src/models/auto/feature_extraction_auto.js"),o=t("./src/tokenizers.js"),a=t("./src/base/processing_utils.js");class n extends a.Processor{static tokenizer_class=o.AutoTokenizer;static feature_extractor_class=s.AutoFeatureExtractor;static uses_processor_config=!0;async _call(l,c=null,_={}){if(Array.isArray(l))throw new Error("Batched inputs are not supported yet.");let u={};if(c){let g=c.length,{input_features:h}=await this.feature_extractor(c,{..._,max_length:g}),x=Math.round(g/this.config.encoder_ds_factor+1e-4),F=1+Math.ceil(x/this.config.stack_factor);u.audio_token_len=[F],u.audio_values=h;let v=this.config.audio_placeholder;if(!l.includes(v))throw new Error(`The input text does not contain the image token ${v}.`);l=l.replaceAll(v,v.repeat(F))}return{...this.tokenizer(l,{add_special_tokens:!1,..._}),...u}}}}),"./src/models/vit/image_processing_vit.js":((e,r,t)=>{t.r(r),t.d(r,{ViTFeatureExtractor:()=>a,ViTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class a extends o{}}),"./src/models/vitmatte/image_processing_vitmatte.js":((e,r,t)=>{t.r(r),t.d(r,{VitMatteImageProcessor:()=>a});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/tensor.js");class a extends s.ImageProcessor{async _call(i,l){Array.isArray(i)||(i=[i]),Array.isArray(l)||(l=[l]);let c=await Promise.all(i.map(d=>this.preprocess(d))),_=await Promise.all(l.map(d=>this.preprocess(d,{do_normalize:!1,do_convert_rgb:!1,do_convert_grayscale:!0})));return{pixel_values:(0,o.stack)(c.map((d,g)=>(0,o.cat)([d.pixel_values,_[g].pixel_values],0)),0),original_sizes:c.map(d=>d.original_size),reshaped_input_sizes:c.map(d=>d.reshaped_input_size)}}}}),"./src/models/vitpose/image_processing_vitpose.js":((e,r,t)=>{t.r(r),t.d(r,{VitPoseImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{post_process_pose_estimation(n,i,{threshold:l=null}={}){let c=n.tolist(),[_,u,d,g]=n.dims,h=[];for(let x=0;x<_;++x){let F=c[x],v=i[x],b=[];for(let C=0;C<v.length;++C){let y=v[C],P=[],I=[],f=[],E=y.at(-2)/g,D=y.at(-1)/d;for(let O=0;O<F.length;++O){let[U,W]=[0,0],z=0,X=-1/0,J=F[O];for(let re=0;re<J.length;++re){let oe=J[re];for(let ne=0;ne<oe.length;++ne){let ye=oe[ne];z+=ye,X=Math.max(X,ye),U+=(ne+.5)*ye,W+=re*ye}}if(l!=null&&X<l)continue;let q=[E*U/z,D*W/z];P.push(q),f.push(O),I.push(X)}b.push({bbox:y,scores:I,labels:f,keypoints:P})}h.push(b)}return h}}}),"./src/models/voxtral/processing_voxtral.js":((e,r,t)=>{t.r(r),t.d(r,{VoxtralProcessor:()=>u});var s=t("./src/models/auto/feature_extraction_auto.js"),o=t("./src/tokenizers.js"),a=t("./src/base/processing_utils.js"),n=t("./src/utils/tensor.js");let i="[AUDIO]",l="[BEGIN_AUDIO]",c=375;function _(d,g){let h=[];for(let x=0;x<d.length;x+=g)h.push(d.subarray(x,Math.min(x+g,d.length)));return h}class u extends a.Processor{static tokenizer_class=o.AutoTokenizer;static feature_extractor_class=s.AutoFeatureExtractor;static uses_processor_config=!1;async _call(g,h=null,x={}){if(Array.isArray(g))throw new Error("Batched inputs are not supported yet.");let F={};if(h){if(!g.includes(i))throw new Error(`The input text does not contain the audio token ${i}.`);Array.isArray(h)||(h=[h]);let b=g.split(i),C=b.length-1;if(C!==h.length)throw new Error(`The number of audio inputs (${h.length}) does not match the number of audio tokens in the text (${C}).`);let y=this.feature_extractor.config.n_samples,P=h.map(O=>_(O,y)),I=P.map(O=>O.length),f=P.flat(),E=(await Promise.all(f.map(O=>this.feature_extractor(O,x)))).map(O=>O.input_features);F.audio_values=E.length>1?(0,n.cat)(E,0):E[0];let D=b[0];for(let O=0;O<I.length;++O){D+=l;for(let U=0;U<I[O];++U)D+=i.repeat(c);D+=b[O+1]}g=D}return{...this.tokenizer(g,{add_special_tokens:!1,...x}),...F}}}}),"./src/models/wav2vec2/feature_extraction_wav2vec2.js":((e,r,t)=>{t.r(r),t.d(r,{Wav2Vec2FeatureExtractor:()=>a});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js");class a extends s.FeatureExtractor{_zero_mean_unit_var_norm(i){let c=i.reduce((u,d)=>u+d,0)/i.length,_=i.reduce((u,d)=>u+(d-c)**2,0)/i.length;return i.map(u=>(u-c)/Math.sqrt(_+1e-7))}async _call(i){(0,s.validate_audio_inputs)(i,"Wav2Vec2FeatureExtractor"),i instanceof Float64Array&&(i=new Float32Array(i));let l=i;this.config.do_normalize&&(l=this._zero_mean_unit_var_norm(l));let c=[1,l.length];return{input_values:new o.Tensor("float32",l,c),attention_mask:new o.Tensor("int64",new BigInt64Array(l.length).fill(1n),c)}}}}),"./src/models/wav2vec2/processing_wav2vec2.js":((e,r,t)=>{t.r(r),t.d(r,{Wav2Vec2Processor:()=>n});var s=t("./src/tokenizers.js"),o=t("./src/models/auto/feature_extraction_auto.js"),a=t("./src/base/processing_utils.js");class n extends a.Processor{static tokenizer_class=s.AutoTokenizer;static feature_extractor_class=o.AutoFeatureExtractor;async _call(l){return await this.feature_extractor(l)}}}),"./src/models/wav2vec2_with_lm/processing_wav2vec2_with_lm.js":((e,r,t)=>{t.r(r),t.d(r,{Wav2Vec2ProcessorWithLM:()=>n});var s=t("./src/tokenizers.js"),o=t("./src/models/auto/feature_extraction_auto.js"),a=t("./src/base/processing_utils.js");class n extends a.Processor{static tokenizer_class=s.AutoTokenizer;static feature_extractor_class=o.AutoFeatureExtractor;async _call(l){return await this.feature_extractor(l)}}}),"./src/models/wespeaker/feature_extraction_wespeaker.js":((e,r,t)=>{t.r(r),t.d(r,{WeSpeakerFeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js");class n extends s.FeatureExtractor{constructor(l){super(l);let c=this.config.sampling_rate,_=(0,a.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(c/2),c,null,"kaldi",!0);this.mel_filters=_,this.window=(0,a.window_function)(400,"hamming",{periodic:!1}),this.min_num_frames=this.config.min_num_frames}async _extract_fbank_features(l){return l=l.map(c=>c*32768),(0,a.spectrogram)(l,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,transpose:!0,min_num_frames:this.min_num_frames})}async _call(l){(0,s.validate_audio_inputs)(l,"WeSpeakerFeatureExtractor");let c=(await this._extract_fbank_features(l)).unsqueeze_(0);if(this.config.fbank_centering_span===null){let _=c.mean(1).data,u=c.data,[d,g,h]=c.dims;for(let x=0;x<d;++x){let F=x*g*h,v=x*h;for(let b=0;b<g;++b){let C=F+b*h;for(let y=0;y<h;++y)u[C+y]-=_[v+y]}}}return{input_features:c}}}}),"./src/models/whisper/common_whisper.js":((e,r,t)=>{t.r(r),t.d(r,{WHISPER_LANGUAGE_MAPPING:()=>o,WHISPER_TO_LANGUAGE_CODE_MAPPING:()=>a,whisper_language_to_code:()=>n});let s=[["en","english"],["zh","chinese"],["de","german"],["es","spanish"],["ru","russian"],["ko","korean"],["fr","french"],["ja","japanese"],["pt","portuguese"],["tr","turkish"],["pl","polish"],["ca","catalan"],["nl","dutch"],["ar","arabic"],["sv","swedish"],["it","italian"],["id","indonesian"],["hi","hindi"],["fi","finnish"],["vi","vietnamese"],["he","hebrew"],["uk","ukrainian"],["el","greek"],["ms","malay"],["cs","czech"],["ro","romanian"],["da","danish"],["hu","hungarian"],["ta","tamil"],["no","norwegian"],["th","thai"],["ur","urdu"],["hr","croatian"],["bg","bulgarian"],["lt","lithuanian"],["la","latin"],["mi","maori"],["ml","malayalam"],["cy","welsh"],["sk","slovak"],["te","telugu"],["fa","persian"],["lv","latvian"],["bn","bengali"],["sr","serbian"],["az","azerbaijani"],["sl","slovenian"],["kn","kannada"],["et","estonian"],["mk","macedonian"],["br","breton"],["eu","basque"],["is","icelandic"],["hy","armenian"],["ne","nepali"],["mn","mongolian"],["bs","bosnian"],["kk","kazakh"],["sq","albanian"],["sw","swahili"],["gl","galician"],["mr","marathi"],["pa","punjabi"],["si","sinhala"],["km","khmer"],["sn","shona"],["yo","yoruba"],["so","somali"],["af","afrikaans"],["oc","occitan"],["ka","georgian"],["be","belarusian"],["tg","tajik"],["sd","sindhi"],["gu","gujarati"],["am","amharic"],["yi","yiddish"],["lo","lao"],["uz","uzbek"],["fo","faroese"],["ht","haitian creole"],["ps","pashto"],["tk","turkmen"],["nn","nynorsk"],["mt","maltese"],["sa","sanskrit"],["lb","luxembourgish"],["my","myanmar"],["bo","tibetan"],["tl","tagalog"],["mg","malagasy"],["as","assamese"],["tt","tatar"],["haw","hawaiian"],["ln","lingala"],["ha","hausa"],["ba","bashkir"],["jw","javanese"],["su","sundanese"]],o=new Map(s),a=new Map([...s.map(([i,l])=>[l,i]),["burmese","my"],["valencian","ca"],["flemish","nl"],["haitian","ht"],["letzeburgesch","lb"],["pushto","ps"],["panjabi","pa"],["moldavian","ro"],["moldovan","ro"],["sinhalese","si"],["castilian","es"]]);function n(i){i=i.toLowerCase();let l=a.get(i);if(l===void 0){let c=i.match(/^<\|([a-z]{2})\|>$/);if(c&&(i=c[1]),o.has(i))l=i;else{let u=i.length===2?o.keys():o.values();throw new Error(`Language "${i}" is not supported. Must be one of: ${JSON.stringify(Array.from(u))}`)}}return l}}),"./src/models/whisper/feature_extraction_whisper.js":((e,r,t)=>{t.r(r),t.d(r,{WhisperFeatureExtractor:()=>i});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),a=t("./src/utils/audio.js"),n=t("./src/utils/maths.js");class i extends s.FeatureExtractor{constructor(c){super(c),this.config.mel_filters??=(0,a.mel_filter_bank)(Math.floor(1+this.config.n_fft/2),this.config.feature_size,0,8e3,this.config.sampling_rate,"slaney","slaney"),this.window=(0,a.window_function)(this.config.n_fft,"hann")}async _extract_fbank_features(c){let _=await(0,a.spectrogram)(c,this.window,this.config.n_fft,this.config.hop_length,{power:2,mel_filters:this.config.mel_filters,log_mel:"log10",max_num_frames:Math.min(Math.floor(c.length/this.config.hop_length),this.config.nb_max_frames)}),u=_.data,d=(0,n.max)(u)[0];for(let g=0;g<u.length;++g)u[g]=(Math.max(u[g],d-8)+4)/4;return _}async _call(c,{max_length:_=null}={}){(0,s.validate_audio_inputs)(c,"WhisperFeatureExtractor");let u,d=_??this.config.n_samples;return c.length>d?(c.length>this.config.n_samples&&console.warn("Attempting to extract features for audio longer than 30 seconds. If using a pipeline to extract transcript from a long audio clip, remember to specify `chunk_length_s` and/or `stride_length_s`."),u=c.slice(0,d)):(u=new Float32Array(d),u.set(c)),{input_features:(await this._extract_fbank_features(u)).unsqueeze_(0)}}}}),"./src/models/whisper/generation_whisper.js":((e,r,t)=>{t.r(r),t.d(r,{WhisperGenerationConfig:()=>o});var s=t("./src/generation/configuration_utils.js");class o extends s.GenerationConfig{return_timestamps=null;return_token_timestamps=null;num_frames=null;alignment_heads=null;task=null;language=null;no_timestamps_token_id=null;prompt_ids=null;is_multilingual=null;lang_to_id=null;task_to_id=null;max_initial_timestamp_index=1}}),"./src/models/whisper/processing_whisper.js":((e,r,t)=>{t.r(r),t.d(r,{WhisperProcessor:()=>n});var s=t("./src/models/auto/feature_extraction_auto.js"),o=t("./src/tokenizers.js"),a=t("./src/base/processing_utils.js");class n extends a.Processor{static tokenizer_class=o.AutoTokenizer;static feature_extractor_class=s.AutoFeatureExtractor;async _call(l){return await this.feature_extractor(l)}}}),"./src/models/yolos/image_processing_yolos.js":((e,r,t)=>{t.r(r),t.d(r,{YolosFeatureExtractor:()=>a,YolosImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{post_process_object_detection(...i){return(0,s.post_process_object_detection)(...i)}}class a extends o{}}),"./src/ops/registry.js":((e,r,t)=>{t.r(r),t.d(r,{TensorOpRegistry:()=>n});var s=t("./src/backends/onnx.js"),o=t("./src/utils/tensor.js");let a=async(i,l,c)=>{let _=await(0,s.createInferenceSession)(new Uint8Array(i),l);return(async u=>{let d=(0,s.isONNXProxy)(),g=Object.fromEntries(Object.entries(u).map(([x,F])=>[x,(d?F.clone():F).ort_tensor])),h=await(0,s.runInferenceSession)(_,g);return Array.isArray(c)?c.map(x=>new o.Tensor(h[x])):new o.Tensor(h[c])})};class n{static session_options={};static get nearest_interpolate_4d(){return this._nearest_interpolate_4d||(this._nearest_interpolate_4d=a([8,10,18,0,58,129,1,10,41,10,1,120,10,0,10,0,10,1,115,18,1,121,34,6,82,101,115,105,122,101,42,18,10,4,109,111,100,101,34,7,110,101,97,114,101,115,116,160,1,3,18,1,114,90,31,10,1,120,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,90,15,10,1,115,18,10,10,8,8,7,18,4,10,2,8,4,98,31,10,1,121,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,66,2,16,21],this.session_options,"y")),this._nearest_interpolate_4d}static get bilinear_interpolate_4d(){return this._bilinear_interpolate_4d||(this._bilinear_interpolate_4d=a([8,9,18,0,58,128,1,10,40,10,1,120,10,0,10,0,10,1,115,18,1,121,34,6,82,101,115,105,122,101,42,17,10,4,109,111,100,101,34,6,108,105,110,101,97,114,160,1,3,18,1,114,90,31,10,1,120,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,90,15,10,1,115,18,10,10,8,8,7,18,4,10,2,8,4,98,31,10,1,121,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,66,2,16,20],this.session_options,"y")),this._bilinear_interpolate_4d}static get bicubic_interpolate_4d(){return this._bicubic_interpolate_4d||(this._bicubic_interpolate_4d=a([8,9,18,0,58,127,10,39,10,1,120,10,0,10,0,10,1,115,18,1,121,34,6,82,101,115,105,122,101,42,16,10,4,109,111,100,101,34,5,99,117,98,105,99,160,1,3,18,1,114,90,31,10,1,120,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,90,15,10,1,115,18,10,10,8,8,7,18,4,10,2,8,4,98,31,10,1,121,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,66,2,16,20],this.session_options,"y")),this._bicubic_interpolate_4d}static get matmul(){return this._matmul||(this._matmul=a([8,9,18,0,58,55,10,17,10,1,97,10,1,98,18,1,99,34,6,77,97,116,77,117,108,18,1,114,90,9,10,1,97,18,4,10,2,8,1,90,9,10,1,98,18,4,10,2,8,1,98,9,10,1,99,18,4,10,2,8,1,66,2,16,20],this.session_options,"c")),this._matmul}static get stft(){return this._stft||(this._stft=a([8,7,18,0,58,148,1,10,38,10,1,115,10,1,106,10,1,119,10,1,108,18,1,111,34,4,83,84,70,84,42,15,10,8,111,110,101,115,105,100,101,100,24,1,160,1,2,18,1,115,90,26,10,1,115,18,21,10,19,8,1,18,15,10,3,18,1,98,10,3,18,1,115,10,3,18,1,99,90,11,10,1,106,18,6,10,4,8,7,18,0,90,16,10,1,119,18,11,10,9,8,1,18,5,10,3,18,1,119,90,11,10,1,108,18,6,10,4,8,7,18,0,98,31,10,1,111,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,102,10,3,18,1,100,10,3,18,1,99,66,2,16,17],this.session_options,"o")),this._stft}static get rfft(){return this._rfft||(this._rfft=a([8,9,18,0,58,97,10,33,10,1,120,10,0,10,1,97,18,1,121,34,3,68,70,84,42,15,10,8,111,110,101,115,105,100,101,100,24,1,160,1,2,18,1,100,90,21,10,1,120,18,16,10,14,8,1,18,10,10,3,18,1,115,10,3,18,1,99,90,11,10,1,97,18,6,10,4,8,7,18,0,98,21,10,1,121,18,16,10,14,8,1,18,10,10,3,18,1,115,10,3,18,1,99,66,2,16,20],this.session_options,"y")),this._rfft}static get top_k(){return this._top_k||(this._top_k=a([8,10,18,0,58,73,10,18,10,1,120,10,1,107,18,1,118,18,1,105,34,4,84,111,112,75,18,1,116,90,9,10,1,120,18,4,10,2,8,1,90,15,10,1,107,18,10,10,8,8,7,18,4,10,2,8,1,98,9,10,1,118,18,4,10,2,8,1,98,9,10,1,105,18,4,10,2,8,7,66,2,16,21],this.session_options,["v","i"])),this._top_k}static get slice(){return this._slice||(this._slice=a([8,7,18,0,58,96,10,25,10,1,120,10,1,115,10,1,101,10,1,97,10,1,116,18,1,121,34,5,83,108,105,99,101,18,1,114,90,9,10,1,120,18,4,10,2,8,1,90,9,10,1,115,18,4,10,2,8,7,90,9,10,1,101,18,4,10,2,8,7,90,9,10,1,97,18,4,10,2,8,7,90,9,10,1,116,18,4,10,2,8,7,98,9,10,1,121,18,4,10,2,8,1,66,2,16,13],this.session_options,"y")),this._slice}}}),"./src/pipelines.js":((e,r,t)=>{t.r(r),t.d(r,{AudioClassificationPipeline:()=>z,AutomaticSpeechRecognitionPipeline:()=>J,BackgroundRemovalPipeline:()=>ne,DepthEstimationPipeline:()=>ue,DocumentQuestionAnsweringPipeline:()=>R,FeatureExtractionPipeline:()=>U,FillMaskPipeline:()=>y,ImageClassificationPipeline:()=>re,ImageFeatureExtractionPipeline:()=>W,ImageSegmentationPipeline:()=>oe,ImageToImagePipeline:()=>ee,ImageToTextPipeline:()=>q,ObjectDetectionPipeline:()=>Y,Pipeline:()=>F,QuestionAnsweringPipeline:()=>C,SummarizationPipeline:()=>I,Text2TextGenerationPipeline:()=>P,TextClassificationPipeline:()=>v,TextGenerationPipeline:()=>D,TextToAudioPipeline:()=>L,TokenClassificationPipeline:()=>b,TranslationPipeline:()=>f,ZeroShotAudioClassificationPipeline:()=>X,ZeroShotClassificationPipeline:()=>O,ZeroShotImageClassificationPipeline:()=>ye,ZeroShotObjectDetectionPipeline:()=>H,pipeline:()=>Le});var s=t("./src/tokenizers.js"),o=t("./src/models.js"),a=t("./src/models/auto/processing_auto.js"),n=t("./src/base/processing_utils.js"),i=t("./src/utils/generic.js"),l=t("./src/utils/core.js"),c=t("./src/utils/maths.js"),_=t("./src/utils/audio.js"),u=t("./src/utils/tensor.js"),d=t("./src/utils/image.js");async function g(we){return Array.isArray(we)||(we=[we]),await Promise.all(we.map(A=>d.RawImage.read(A)))}async function h(we,A){return Array.isArray(we)||(we=[we]),await Promise.all(we.map(le=>typeof le=="string"||le instanceof URL?(0,_.read_audio)(le,A):le instanceof Float64Array?new Float32Array(le):le))}function x(we,A){A&&(we=we.map(ve=>ve|0));let[le,ge,be,Ae]=we;return{xmin:le,ymin:ge,xmax:be,ymax:Ae}}class F extends i.Callable{constructor({task:A,model:le,tokenizer:ge=null,processor:be=null}){super(),this.task=A,this.model=le,this.tokenizer=ge,this.processor=be}async dispose(){await this.model.dispose()}}class v extends F{constructor(A){super(A)}async _call(A,{top_k:le=1}={}){let ge=this.tokenizer(A,{padding:!0,truncation:!0}),be=await this.model(ge),Ae=this.model.config.problem_type==="multi_label_classification"?Pe=>Pe.sigmoid():Pe=>new u.Tensor("float32",(0,c.softmax)(Pe.data),Pe.dims),ve=this.model.config.id2label,pe=[];for(let Pe of be.logits){let fe=Ae(Pe),Te=await(0,u.topk)(fe,le),We=Te[0].tolist(),Re=Te[1].tolist().map((Ne,ot)=>({label:ve?ve[Ne]:`LABEL_${Ne}`,score:We[ot]}));le===1?pe.push(...Re):pe.push(Re)}return Array.isArray(A)||le===1?pe:pe[0]}}class b extends F{constructor(A){super(A)}async _call(A,{ignore_labels:le=["O"]}={}){let ge=Array.isArray(A),be=this.tokenizer(ge?A:[A],{padding:!0,truncation:!0}),ve=(await this.model(be)).logits,pe=this.model.config.id2label,Pe=[];for(let fe=0;fe<ve.dims[0];++fe){let Te=be.input_ids[fe],We=ve[fe],$e=[];for(let Re=0;Re<We.dims[0];++Re){let Ne=We[Re],ot=(0,c.max)(Ne.data)[1],De=pe?pe[ot]:`LABEL_${ot}`;if(le.includes(De))continue;let Qe=this.tokenizer.decode([Te[Re].item()],{skip_special_tokens:!0});if(Qe==="")continue;let je=(0,c.softmax)(Ne.data);$e.push({entity:De,score:je[ot],index:Re,word:Qe})}Pe.push($e)}return ge?Pe:Pe[0]}}class C extends F{constructor(A){super(A)}async _call(A,le,{top_k:ge=1}={}){let be=this.tokenizer(A,{text_pair:le,padding:!0,truncation:!0}),{start_logits:Ae,end_logits:ve}=await this.model(be),pe=be.input_ids.tolist(),Pe=be.attention_mask.tolist(),fe=this.tokenizer.all_special_ids,Te=[];for(let We=0;We<Ae.dims[0];++We){let $e=pe[We],Re=$e.findIndex(Ke=>Ke==this.tokenizer.sep_token_id),Ne=Pe[We].map((Ke,bt)=>Ke==1&&(bt===0||bt>Re&&fe.findIndex(At=>At==$e[bt])===-1)),ot=Ae[We].tolist(),De=ve[We].tolist();for(let Ke=1;Ke<ot.length;++Ke)(Pe[We]==0||Ke<=Re||fe.findIndex(bt=>bt==$e[Ke])!==-1)&&(ot[Ke]=-1/0,De[Ke]=-1/0);let Qe=(0,c.softmax)(ot).map((Ke,bt)=>[Ke,bt]),je=(0,c.softmax)(De).map((Ke,bt)=>[Ke,bt]);Qe[0][0]=0,je[0][0]=0;let pt=(0,l.product)(Qe,je).filter(Ke=>Ke[0][1]<=Ke[1][1]).map(Ke=>[Ke[0][1],Ke[1][1],Ke[0][0]*Ke[1][0]]).sort((Ke,bt)=>bt[2]-Ke[2]);for(let Ke=0;Ke<Math.min(pt.length,ge);++Ke){let[bt,At,Lt]=pt[Ke],fr=$e.slice(bt,At+1),zt=this.tokenizer.decode(fr,{skip_special_tokens:!0});Te.push({answer:zt,score:Lt})}}return ge===1?Te[0]:Te}}class y extends F{constructor(A){super(A)}async _call(A,{top_k:le=5}={}){let ge=this.tokenizer(A,{padding:!0,truncation:!0}),{logits:be}=await this.model(ge),Ae=[],ve=ge.input_ids.tolist();for(let pe=0;pe<ve.length;++pe){let Pe=ve[pe],fe=Pe.findIndex(Ne=>Ne==this.tokenizer.mask_token_id);if(fe===-1)throw Error(`Mask token (${this.tokenizer.mask_token}) not found in text.`);let Te=be[pe][fe],We=await(0,u.topk)(new u.Tensor("float32",(0,c.softmax)(Te.data),Te.dims),le),$e=We[0].tolist(),Re=We[1].tolist();Ae.push(Re.map((Ne,ot)=>{let De=Pe.slice();return De[fe]=Ne,{score:$e[ot],token:Number(Ne),token_str:this.tokenizer.decode([Ne]),sequence:this.tokenizer.decode(De,{skip_special_tokens:!0})}}))}return Array.isArray(A)?Ae:Ae[0]}}class P extends F{_key="generated_text";constructor(A){super(A)}async _call(A,le={}){Array.isArray(A)||(A=[A]),this.model.config.prefix&&(A=A.map(Pe=>this.model.config.prefix+Pe));let ge=this.model.config.task_specific_params;ge&&ge[this.task]&&ge[this.task].prefix&&(A=A.map(Pe=>ge[this.task].prefix+Pe));let be=this.tokenizer,Ae={padding:!0,truncation:!0},ve;this instanceof f&&"_build_translation_inputs"in be?ve=be._build_translation_inputs(A,Ae,le):ve=be(A,Ae);let pe=await this.model.generate({...ve,...le});return be.batch_decode(pe,{skip_special_tokens:!0}).map(Pe=>({[this._key]:Pe}))}}class I extends P{_key="summary_text";constructor(A){super(A)}}class f extends P{_key="translation_text";constructor(A){super(A)}}function E(we){return Array.isArray(we)&&we.every(A=>"role"in A&&"content"in A)}class D extends F{constructor(A){super(A)}async _call(A,le={}){let ge=!1,be=!1,Ae=le.add_special_tokens??(this.tokenizer.add_bos_token||this.tokenizer.add_eos_token)??!1,ve;if(typeof A=="string")ve=A=[A];else if(Array.isArray(A)&&A.every(Re=>typeof Re=="string"))ge=!0,ve=A;else{if(E(A))A=[A];else if(Array.isArray(A)&&A.every(E))ge=!0;else throw new Error("Input must be a string, an array of strings, a Chat, or an array of Chats");be=!0,ve=A.map(Re=>this.tokenizer.apply_chat_template(Re,{tokenize:!1,add_generation_prompt:!0})),Ae=!1}let pe=be?!1:le.return_full_text??!0;this.tokenizer.padding_side="left";let Pe=this.tokenizer(ve,{add_special_tokens:Ae,padding:!0,truncation:!0}),fe=await this.model.generate({...Pe,...le}),Te=this.tokenizer.batch_decode(fe,{skip_special_tokens:!0}),We;!pe&&Pe.input_ids.dims.at(-1)>0&&(We=this.tokenizer.batch_decode(Pe.input_ids,{skip_special_tokens:!0}).map(Re=>Re.length));let $e=Array.from({length:A.length},Re=>[]);for(let Re=0;Re<Te.length;++Re){let Ne=Math.floor(Re/fe.dims[0]*A.length);We&&(Te[Re]=Te[Re].slice(We[Ne])),$e[Ne].push({generated_text:be?[...A[Ne],{role:"assistant",content:Te[Re]}]:Te[Re]})}return!ge&&$e.length===1?$e[0]:$e}}class O extends F{constructor(A){super(A),this.label2id=Object.fromEntries(Object.entries(this.model.config.label2id).map(([le,ge])=>[le.toLowerCase(),ge])),this.entailment_id=this.label2id.entailment,this.entailment_id===void 0&&(console.warn("Could not find 'entailment' in label2id mapping. Using 2 as entailment_id."),this.entailment_id=2),this.contradiction_id=this.label2id.contradiction??this.label2id.not_entailment,this.contradiction_id===void 0&&(console.warn("Could not find 'contradiction' in label2id mapping. Using 0 as contradiction_id."),this.contradiction_id=0)}async _call(A,le,{hypothesis_template:ge="This example is {}.",multi_label:be=!1}={}){let Ae=Array.isArray(A);Ae||(A=[A]),Array.isArray(le)||(le=[le]);let ve=le.map(fe=>ge.replace("{}",fe)),pe=be||le.length===1,Pe=[];for(let fe of A){let Te=[];for(let Re of ve){let Ne=this.tokenizer(fe,{text_pair:Re,padding:!0,truncation:!0}),ot=await this.model(Ne);pe?Te.push([ot.logits.data[this.contradiction_id],ot.logits.data[this.entailment_id]]):Te.push(ot.logits.data[this.entailment_id])}let $e=(pe?Te.map(Re=>(0,c.softmax)(Re)[1]):(0,c.softmax)(Te)).map((Re,Ne)=>[Re,Ne]).sort((Re,Ne)=>Ne[0]-Re[0]);Pe.push({sequence:fe,labels:$e.map(Re=>le[Re[1]]),scores:$e.map(Re=>Re[0])})}return Ae?Pe:Pe[0]}}class U extends F{constructor(A){super(A)}async _call(A,{pooling:le="none",normalize:ge=!1,quantize:be=!1,precision:Ae="binary"}={}){let ve=this.tokenizer(A,{padding:!0,truncation:!0}),pe=await this.model(ve),Pe=pe.last_hidden_state??pe.logits??pe.token_embeddings;switch(le){case"none":break;case"mean":Pe=(0,u.mean_pooling)(Pe,ve.attention_mask);break;case"first_token":case"cls":Pe=Pe.slice(null,0);break;case"last_token":case"eos":Pe=Pe.slice(null,-1);break;default:throw Error(`Pooling method '${le}' not supported.`)}return ge&&(Pe=Pe.normalize(2,-1)),be&&(Pe=(0,u.quantize_embeddings)(Pe,Ae)),Pe}}class W extends F{constructor(A){super(A)}async _call(A,{pool:le=null}={}){let ge=await g(A),{pixel_values:be}=await this.processor(ge),Ae=await this.model({pixel_values:be}),ve;if(le){if(!("pooler_output"in Ae))throw Error("No pooled output was returned. Make sure the model has a 'pooler' layer when using the 'pool' option.");ve=Ae.pooler_output}else ve=Ae.last_hidden_state??Ae.logits??Ae.image_embeds;return ve}}class z extends F{constructor(A){super(A)}async _call(A,{top_k:le=5}={}){let ge=this.processor.feature_extractor.config.sampling_rate,be=await h(A,ge),Ae=this.model.config.id2label,ve=[];for(let pe of be){let Pe=await this.processor(pe),Te=(await this.model(Pe)).logits[0],We=await(0,u.topk)(new u.Tensor("float32",(0,c.softmax)(Te.data),Te.dims),le),$e=We[0].tolist(),Ne=We[1].tolist().map((ot,De)=>({label:Ae?Ae[ot]:`LABEL_${ot}`,score:$e[De]}));ve.push(Ne)}return Array.isArray(A)?ve:ve[0]}}class X extends F{constructor(A){super(A)}async _call(A,le,{hypothesis_template:ge="This is a sound of {}."}={}){let be=!Array.isArray(A);be&&(A=[A]);let Ae=le.map(Te=>ge.replace("{}",Te)),ve=this.tokenizer(Ae,{padding:!0,truncation:!0}),pe=this.processor.feature_extractor.config.sampling_rate,Pe=await h(A,pe),fe=[];for(let Te of Pe){let We=await this.processor(Te),$e=await this.model({...ve,...We}),Re=(0,c.softmax)($e.logits_per_audio.data);fe.push([...Re].map((Ne,ot)=>({score:Ne,label:le[ot]})))}return be?fe[0]:fe}}class J extends F{constructor(A){super(A)}async _call(A,le={}){switch(this.model.config.model_type){case"whisper":case"lite-whisper":return this._call_whisper(A,le);case"wav2vec2":case"wav2vec2-bert":case"unispeech":case"unispeech-sat":case"hubert":case"parakeet_ctc":return this._call_wav2vec2(A,le);case"moonshine":return this._call_moonshine(A,le);default:throw new Error(`AutomaticSpeechRecognitionPipeline does not support model type '${this.model.config.model_type}'.`)}}async _call_wav2vec2(A,le){le.language&&console.warn('`language` parameter is not yet supported for `wav2vec2` models, defaulting to "English".'),le.task&&console.warn('`task` parameter is not yet supported for `wav2vec2` models, defaulting to "transcribe".');let ge=!Array.isArray(A);ge&&(A=[A]);let be=this.processor.feature_extractor.config.sampling_rate,Ae=await h(A,be),ve=[];for(let pe of Ae){let Pe=await this.processor(pe),Te=(await this.model(Pe)).logits[0],We=[];for(let Re of Te)We.push((0,c.max)(Re.data)[1]);let $e=this.tokenizer.decode(We,{skip_special_tokens:!0}).trim();ve.push({text:$e})}return ge?ve[0]:ve}async _call_whisper(A,le){let ge=le.return_timestamps??!1,be=le.chunk_length_s??0,Ae=le.force_full_sequences??!1,ve=le.stride_length_s??null,pe={...le};ge==="word"&&(pe.return_token_timestamps=!0,pe.return_timestamps=!1);let Pe=!Array.isArray(A);Pe&&(A=[A]);let fe=this.processor.feature_extractor.config.chunk_length/this.model.config.max_source_positions,Te=this.processor.feature_extractor.config.hop_length,We=this.processor.feature_extractor.config.sampling_rate,$e=await h(A,We),Re=[];for(let Ne of $e){let ot=[];if(be>0){if(ve===null)ve=be/6;else if(be<=ve)throw Error("`chunk_length_s` must be larger than `stride_length_s`.");let je=We*be,pt=We*ve,Ke=je-2*pt,bt=0;for(;;){let At=bt+je,Lt=Ne.subarray(bt,At),fr=await this.processor(Lt),zt=bt===0,yr=At>=Ne.length;if(ot.push({stride:[Lt.length,zt?0:pt,yr?0:pt],input_features:fr.input_features,is_last:yr}),yr)break;bt+=Ke}}else ot=[{stride:[Ne.length,0,0],input_features:(await this.processor(Ne)).input_features,is_last:!0}];for(let je of ot){pe.num_frames=Math.floor(je.stride[0]/Te);let pt=await this.model.generate({inputs:je.input_features,...pe});ge==="word"?(je.tokens=pt.sequences.tolist()[0],je.token_timestamps=pt.token_timestamps.tolist()[0].map(Ke=>(0,c.round)(Ke,2))):je.tokens=pt[0].tolist(),je.stride=je.stride.map(Ke=>Ke/We)}let[De,Qe]=this.tokenizer._decode_asr(ot,{time_precision:fe,return_timestamps:ge,force_full_sequences:Ae});Re.push({text:De,...Qe})}return Pe?Re[0]:Re}async _call_moonshine(A,le){let ge=!Array.isArray(A);ge&&(A=[A]);let be=this.processor.feature_extractor.config.sampling_rate,Ae=await h(A,be),ve=[];for(let pe of Ae){let Pe=await this.processor(pe),fe=Math.floor(pe.length/be)*6,Te=await this.model.generate({max_new_tokens:fe,...le,...Pe}),We=this.processor.batch_decode(Te,{skip_special_tokens:!0})[0];ve.push({text:We})}return ge?ve[0]:ve}}class q extends F{constructor(A){super(A)}async _call(A,le={}){let ge=Array.isArray(A),be=await g(A),{pixel_values:Ae}=await this.processor(be),ve=[];for(let pe of Ae){pe.dims=[1,...pe.dims];let Pe=await this.model.generate({inputs:pe,...le}),fe=this.tokenizer.batch_decode(Pe,{skip_special_tokens:!0}).map(Te=>({generated_text:Te.trim()}));ve.push(fe)}return ge?ve:ve[0]}}class re extends F{constructor(A){super(A)}async _call(A,{top_k:le=5}={}){let ge=await g(A),{pixel_values:be}=await this.processor(ge),Ae=await this.model({pixel_values:be}),ve=this.model.config.id2label,pe=[];for(let Pe of Ae.logits){let fe=await(0,u.topk)(new u.Tensor("float32",(0,c.softmax)(Pe.data),Pe.dims),le),Te=fe[0].tolist(),$e=fe[1].tolist().map((Re,Ne)=>({label:ve?ve[Re]:`LABEL_${Re}`,score:Te[Ne]}));pe.push($e)}return Array.isArray(A)?pe:pe[0]}}class oe extends F{constructor(A){super(A),this.subtasks_mapping={panoptic:"post_process_panoptic_segmentation",instance:"post_process_instance_segmentation",semantic:"post_process_semantic_segmentation"}}async _call(A,{threshold:le=.5,mask_threshold:ge=.5,overlap_mask_area_threshold:be=.8,label_ids_to_fuse:Ae=null,target_sizes:ve=null,subtask:pe=null}={}){if(Array.isArray(A)&&A.length!==1)throw Error("Image segmentation pipeline currently only supports a batch size of 1.");let fe=await g(A),Te=fe.map(je=>[je.height,je.width]),We=await this.processor(fe),{inputNames:$e,outputNames:Re}=this.model.sessions.model;if(!$e.includes("pixel_values")){if($e.length!==1)throw Error(`Expected a single input name, but got ${$e.length} inputs: ${$e}.`);let je=$e[0];if(je in We)throw Error(`Input name ${je} already exists in the inputs.`);We[je]=We.pixel_values}let Ne=await this.model(We),ot=null;if(pe!==null)ot=this.subtasks_mapping[pe];else if(this.processor.image_processor){for(let[je,pt]of Object.entries(this.subtasks_mapping))if(pt in this.processor.image_processor){ot=this.processor.image_processor[pt].bind(this.processor.image_processor),pe=je;break}}let De=this.model.config.id2label,Qe=[];if(pe)if(pe==="panoptic"||pe==="instance"){let je=ot(Ne,le,ge,be,Ae,ve??Te)[0],pt=je.segmentation;for(let Ke of je.segments_info){let bt=new Uint8ClampedArray(pt.data.length);for(let Lt=0;Lt<pt.data.length;++Lt)pt.data[Lt]===Ke.id&&(bt[Lt]=255);let At=new d.RawImage(bt,pt.dims[1],pt.dims[0],1);Qe.push({score:Ke.score,label:De[Ke.label_id],mask:At})}}else if(pe==="semantic"){let{segmentation:je,labels:pt}=ot(Ne,ve??Te)[0];for(let Ke of pt){let bt=new Uint8ClampedArray(je.data.length);for(let Lt=0;Lt<je.data.length;++Lt)je.data[Lt]===Ke&&(bt[Lt]=255);let At=new d.RawImage(bt,je.dims[1],je.dims[0],1);Qe.push({score:null,label:De[Ke],mask:At})}}else throw Error(`Subtask ${pe} not supported.`);else{let pt=Ne[Re[0]];for(let Ke=0;Ke<Te.length;++Ke){let bt=Te[Ke],At=pt[Ke];At.data.some(fr=>fr<-1e-5||fr>1+1e-5)&&At.sigmoid_();let Lt=await d.RawImage.fromTensor(At.mul_(255).to("uint8")).resize(bt[1],bt[0]);Qe.push({label:null,score:null,mask:Lt})}}return Qe}}class ne extends oe{constructor(A){super(A)}async _call(A,le={}){if(Array.isArray(A)&&A.length!==1)throw Error("Background removal pipeline currently only supports a batch size of 1.");let be=await g(A),Ae=await super._call(A,le);return be.map((pe,Pe)=>{let fe=pe.clone();return fe.putAlpha(Ae[Pe].mask),fe})}}class ye extends F{constructor(A){super(A)}async _call(A,le,{hypothesis_template:ge="This is a photo of {}"}={}){let be=Array.isArray(A),Ae=await g(A),ve=le.map($e=>ge.replace("{}",$e)),pe=this.tokenizer(ve,{padding:this.model.config.model_type==="siglip"?"max_length":!0,truncation:!0}),{pixel_values:Pe}=await this.processor(Ae),fe=await this.model({...pe,pixel_values:Pe}),Te=this.model.config.model_type==="siglip"?$e=>$e.sigmoid().data:$e=>(0,c.softmax)($e.data),We=[];for(let $e of fe.logits_per_image){let Ne=[...Te($e)].map((ot,De)=>({score:ot,label:le[De]}));Ne.sort((ot,De)=>De.score-ot.score),We.push(Ne)}return be?We:We[0]}}class Y extends F{constructor(A){super(A)}async _call(A,{threshold:le=.9,percentage:ge=!1}={}){let be=Array.isArray(A);if(be&&A.length!==1)throw Error("Object detection pipeline currently only supports a batch size of 1.");let Ae=await g(A),ve=ge?null:Ae.map(Re=>[Re.height,Re.width]),{pixel_values:pe,pixel_mask:Pe}=await this.processor(Ae),fe=await this.model({pixel_values:pe,pixel_mask:Pe}),Te=this.processor.image_processor.post_process_object_detection(fe,le,ve),We=this.model.config.id2label,$e=Te.map(Re=>Re.boxes.map((Ne,ot)=>({score:Re.scores[ot],label:We[Re.classes[ot]],box:x(Ne,!ge)})));return be?$e:$e[0]}}class H extends F{constructor(A){super(A)}async _call(A,le,{threshold:ge=.1,top_k:be=null,percentage:Ae=!1}={}){let ve=Array.isArray(A),pe=await g(A),Pe=this.tokenizer(le,{padding:!0,truncation:!0}),fe=await this.processor(pe),Te=[];for(let We=0;We<pe.length;++We){let $e=pe[We],Re=Ae?null:[[$e.height,$e.width]],Ne=fe.pixel_values[We].unsqueeze_(0),ot=await this.model({...Pe,pixel_values:Ne}),De;if("post_process_grounded_object_detection"in this.processor){let Qe=this.processor.post_process_grounded_object_detection(ot,Pe.input_ids,{box_threshold:ge,text_threshold:ge,target_sizes:Re})[0];De=Qe.boxes.map((je,pt)=>({score:Qe.scores[pt],label:Qe.labels[pt],box:x(je,!Ae)}))}else{let Qe=this.processor.image_processor.post_process_object_detection(ot,ge,Re,!0)[0];De=Qe.boxes.map((je,pt)=>({score:Qe.scores[pt],label:le[Qe.classes[pt]],box:x(je,!Ae)}))}De.sort((Qe,je)=>je.score-Qe.score),be!==null&&(De=De.slice(0,be)),Te.push(De)}return ve?Te:Te[0]}}class R extends F{constructor(A){super(A)}async _call(A,le,ge={}){let be=(await g(A))[0],{pixel_values:Ae}=await this.processor(be),ve=`<s_docvqa><s_question>${le}</s_question><s_answer>`,pe=this.tokenizer(ve,{add_special_tokens:!1,padding:!0,truncation:!0}).input_ids,Pe=await this.model.generate({inputs:Ae,max_length:this.model.config.decoder.max_position_embeddings,decoder_input_ids:pe,...ge}),Te=this.tokenizer.batch_decode(Pe)[0].match(/<s_answer>(.*?)<\/s_answer>/),We=null;return Te&&Te.length>=2&&(We=Te[1].trim()),[{answer:We}]}}class L extends F{DEFAULT_VOCODER_ID="Xenova/speecht5_hifigan";constructor(A){super(A),this.vocoder=A.vocoder??null}async _prepare_speaker_embeddings(A){if((typeof A=="string"||A instanceof URL)&&(A=new Float32Array(await(await fetch(A)).arrayBuffer())),A instanceof Float32Array)A=new u.Tensor("float32",A,[A.length]);else if(!(A instanceof u.Tensor))throw new Error("Speaker embeddings must be a `Tensor`, `Float32Array`, `string`, or `URL`.");return A}async _call(A,{speaker_embeddings:le=null,num_inference_steps:ge,speed:be}={}){return this.processor?this._call_text_to_spectrogram(A,{speaker_embeddings:le}):this.model.config.model_type==="supertonic"?this._call_supertonic(A,{speaker_embeddings:le,num_inference_steps:ge,speed:be}):this._call_text_to_waveform(A)}async _call_supertonic(A,{speaker_embeddings:le,num_inference_steps:ge,speed:be}){if(!le)throw new Error("Speaker embeddings must be provided for Supertonic models.");le=await this._prepare_speaker_embeddings(le);let{sampling_rate:Ae,style_dim:ve}=this.model.config;le=le.view(1,-1,ve);let pe=this.tokenizer(A,{padding:!0,truncation:!0}),{waveform:Pe}=await this.model.generate_speech({...pe,style:le,num_inference_steps:ge,speed:be});return new _.RawAudio(Pe.data,Ae)}async _call_text_to_waveform(A){let le=this.tokenizer(A,{padding:!0,truncation:!0}),{waveform:ge}=await this.model(le),be=this.model.config.sampling_rate;return new _.RawAudio(ge.data,be)}async _call_text_to_spectrogram(A,{speaker_embeddings:le}){this.vocoder||(console.log("No vocoder specified, using default HifiGan vocoder."),this.vocoder=await o.AutoModel.from_pretrained(this.DEFAULT_VOCODER_ID,{dtype:"fp32"}));let{input_ids:ge}=this.tokenizer(A,{padding:!0,truncation:!0});le=await this._prepare_speaker_embeddings(le),le=le.view(1,-1);let{waveform:be}=await this.model.generate_speech(ge,le,{vocoder:this.vocoder}),Ae=this.processor.feature_extractor.config.sampling_rate;return new _.RawAudio(be.data,Ae)}}class ee extends F{constructor(A){super(A)}async _call(A){let le=await g(A),ge=await this.processor(le),be=await this.model(ge),Ae=[];for(let ve of be.reconstruction){let pe=ve.squeeze().clamp_(0,1).mul_(255).round_().to("uint8");Ae.push(d.RawImage.fromTensor(pe))}return Ae.length>1?Ae:Ae[0]}}class ue extends F{constructor(A){super(A)}async _call(A){let le=await g(A),ge=await this.processor(le),{predicted_depth:be}=await this.model(ge),Ae=[];for(let ve=0;ve<le.length;++ve){let pe=be[ve],[Pe,fe]=pe.dims.slice(-2),[Te,We]=le[ve].size,$e=(await(0,u.interpolate_4d)(pe.view(1,1,Pe,fe),{size:[We,Te],mode:"bilinear"})).view(We,Te),Re=$e.min().item(),Ne=$e.max().item(),ot=$e.sub(Re).div_(Ne-Re).mul_(255).to("uint8").unsqueeze(0),De=d.RawImage.fromTensor(ot);Ae.push({predicted_depth:$e,depth:De})}return Ae.length>1?Ae:Ae[0]}}let ke=Object.freeze({"text-classification":{tokenizer:s.AutoTokenizer,pipeline:v,model:o.AutoModelForSequenceClassification,default:{model:"Xenova/distilbert-base-uncased-finetuned-sst-2-english"},type:"text"},"token-classification":{tokenizer:s.AutoTokenizer,pipeline:b,model:o.AutoModelForTokenClassification,default:{model:"Xenova/bert-base-multilingual-cased-ner-hrl"},type:"text"},"question-answering":{tokenizer:s.AutoTokenizer,pipeline:C,model:o.AutoModelForQuestionAnswering,default:{model:"Xenova/distilbert-base-cased-distilled-squad"},type:"text"},"fill-mask":{tokenizer:s.AutoTokenizer,pipeline:y,model:o.AutoModelForMaskedLM,default:{model:"Xenova/bert-base-uncased"},type:"text"},summarization:{tokenizer:s.AutoTokenizer,pipeline:I,model:o.AutoModelForSeq2SeqLM,default:{model:"Xenova/distilbart-cnn-6-6"},type:"text"},translation:{tokenizer:s.AutoTokenizer,pipeline:f,model:o.AutoModelForSeq2SeqLM,default:{model:"Xenova/t5-small"},type:"text"},"text2text-generation":{tokenizer:s.AutoTokenizer,pipeline:P,model:o.AutoModelForSeq2SeqLM,default:{model:"Xenova/flan-t5-small"},type:"text"},"text-generation":{tokenizer:s.AutoTokenizer,pipeline:D,model:o.AutoModelForCausalLM,default:{model:"Xenova/gpt2"},type:"text"},"zero-shot-classification":{tokenizer:s.AutoTokenizer,pipeline:O,model:o.AutoModelForSequenceClassification,default:{model:"Xenova/distilbert-base-uncased-mnli"},type:"text"},"audio-classification":{pipeline:z,model:o.AutoModelForAudioClassification,processor:a.AutoProcessor,default:{model:"Xenova/wav2vec2-base-superb-ks"},type:"audio"},"zero-shot-audio-classification":{tokenizer:s.AutoTokenizer,pipeline:X,model:o.AutoModel,processor:a.AutoProcessor,default:{model:"Xenova/clap-htsat-unfused"},type:"multimodal"},"automatic-speech-recognition":{tokenizer:s.AutoTokenizer,pipeline:J,model:[o.AutoModelForSpeechSeq2Seq,o.AutoModelForCTC],processor:a.AutoProcessor,default:{model:"Xenova/whisper-tiny.en"},type:"multimodal"},"text-to-audio":{tokenizer:s.AutoTokenizer,pipeline:L,model:[o.AutoModelForTextToWaveform,o.AutoModelForTextToSpectrogram],processor:[a.AutoProcessor,null],default:{model:"Xenova/speecht5_tts"},type:"text"},"image-to-text":{tokenizer:s.AutoTokenizer,pipeline:q,model:o.AutoModelForVision2Seq,processor:a.AutoProcessor,default:{model:"Xenova/vit-gpt2-image-captioning"},type:"multimodal"},"image-classification":{pipeline:re,model:o.AutoModelForImageClassification,processor:a.AutoProcessor,default:{model:"Xenova/vit-base-patch16-224"},type:"multimodal"},"image-segmentation":{pipeline:oe,model:[o.AutoModelForImageSegmentation,o.AutoModelForSemanticSegmentation,o.AutoModelForUniversalSegmentation],processor:a.AutoProcessor,default:{model:"Xenova/detr-resnet-50-panoptic"},type:"multimodal"},"background-removal":{pipeline:ne,model:[o.AutoModelForImageSegmentation,o.AutoModelForSemanticSegmentation,o.AutoModelForUniversalSegmentation],processor:a.AutoProcessor,default:{model:"Xenova/modnet"},type:"image"},"zero-shot-image-classification":{tokenizer:s.AutoTokenizer,pipeline:ye,model:o.AutoModel,processor:a.AutoProcessor,default:{model:"Xenova/clip-vit-base-patch32"},type:"multimodal"},"object-detection":{pipeline:Y,model:o.AutoModelForObjectDetection,processor:a.AutoProcessor,default:{model:"Xenova/detr-resnet-50"},type:"multimodal"},"zero-shot-object-detection":{tokenizer:s.AutoTokenizer,pipeline:H,model:o.AutoModelForZeroShotObjectDetection,processor:a.AutoProcessor,default:{model:"Xenova/owlvit-base-patch32"},type:"multimodal"},"document-question-answering":{tokenizer:s.AutoTokenizer,pipeline:R,model:o.AutoModelForDocumentQuestionAnswering,processor:a.AutoProcessor,default:{model:"Xenova/donut-base-finetuned-docvqa"},type:"multimodal"},"image-to-image":{pipeline:ee,model:o.AutoModelForImageToImage,processor:a.AutoProcessor,default:{model:"Xenova/swin2SR-classical-sr-x2-64"},type:"image"},"depth-estimation":{pipeline:ue,model:o.AutoModelForDepthEstimation,processor:a.AutoProcessor,default:{model:"Xenova/dpt-large"},type:"image"},"feature-extraction":{tokenizer:s.AutoTokenizer,pipeline:U,model:o.AutoModel,default:{model:"Xenova/all-MiniLM-L6-v2"},type:"text"},"image-feature-extraction":{processor:a.AutoProcessor,pipeline:W,model:[o.AutoModelForImageFeatureExtraction,o.AutoModel],default:{model:"Xenova/vit-base-patch16-224-in21k"},type:"image"}}),Ie=Object.freeze({"sentiment-analysis":"text-classification",ner:"token-classification",asr:"automatic-speech-recognition","text-to-speech":"text-to-audio",embeddings:"feature-extraction"});async function Le(we,A=null,{progress_callback:le=null,config:ge=null,cache_dir:be=null,local_files_only:Ae=!1,revision:ve="main",device:pe=null,dtype:Pe=null,subfolder:fe="onnx",use_external_data_format:Te=null,model_file_name:We=null,session_options:$e={}}={}){we=Ie[we]??we;let Re=ke[we.split("_",1)[0]];if(!Re)throw Error(`Unsupported pipeline: ${we}. Must be one of [${Object.keys(ke)}]`);A||(A=Re.default.model,console.log(`No model specified. Using default model: "${A}".`));let Ne={progress_callback:le,config:ge,cache_dir:be,local_files_only:Ae,revision:ve,device:pe,dtype:Pe,subfolder:fe,use_external_data_format:Te,model_file_name:We,session_options:$e},ot=new Map([["tokenizer",Re.tokenizer],["model",Re.model],["processor",Re.processor]]),De=await rt(ot,A,Ne);De.task=we,(0,l.dispatchCallback)(le,{status:"ready",task:we,model:A});let Qe=Re.pipeline;return new Qe(De)}async function rt(we,A,le){let ge=Object.create(null),be=[];for(let[Ae,ve]of we.entries()){if(!ve)continue;let pe;Array.isArray(ve)?pe=new Promise(async(Pe,fe)=>{let Te;for(let We of ve){if(We===null){Pe(null);return}try{Pe(await We.from_pretrained(A,le));return}catch($e){if($e.message?.includes("Unsupported model type"))Te=$e;else if($e.message?.includes("Could not locate file"))Te=$e;else{fe($e);return}}}fe(Te)}):pe=ve.from_pretrained(A,le),ge[Ae]=pe,be.push(pe)}await Promise.all(be);for(let[Ae,ve]of Object.entries(ge))ge[Ae]=await ve;return ge}}),"./src/tokenizers.js":((e,r,t)=>{t.r(r),t.d(r,{AlbertTokenizer:()=>qt,AutoTokenizer:()=>Uo,BartTokenizer:()=>qe,BertTokenizer:()=>Cs,BlenderbotSmallTokenizer:()=>Ue,BlenderbotTokenizer:()=>ze,BloomTokenizer:()=>Nt,CLIPTokenizer:()=>As,CamembertTokenizer:()=>Z,CodeGenTokenizer:()=>Is,CodeLlamaTokenizer:()=>Or,CohereTokenizer:()=>Ds,ConvBertTokenizer:()=>Q,DebertaTokenizer:()=>St,DebertaV2Tokenizer:()=>Xr,DistilBertTokenizer:()=>K,ElectraTokenizer:()=>xe,EsmTokenizer:()=>gr,FalconTokenizer:()=>_s,GPT2Tokenizer:()=>ut,GPTNeoXTokenizer:()=>Fs,GemmaTokenizer:()=>as,Grok1Tokenizer:()=>Nr,HerbertTokenizer:()=>k,LlamaTokenizer:()=>ur,M2M100Tokenizer:()=>_r,MBart50Tokenizer:()=>tt,MBartTokenizer:()=>wt,MPNetTokenizer:()=>Lr,MarianTokenizer:()=>ns,MgpstrTokenizer:()=>Vs,MobileBertTokenizer:()=>Ss,NllbTokenizer:()=>ar,NougatTokenizer:()=>Ht,PreTrainedTokenizer:()=>ft,Qwen2Tokenizer:()=>Ns,RoFormerTokenizer:()=>N,RobertaTokenizer:()=>gt,SiglipTokenizer:()=>$s,SpeechT5Tokenizer:()=>at,SqueezeBertTokenizer:()=>Qr,T5Tokenizer:()=>et,TokenizerModel:()=>U,VitsTokenizer:()=>js,Wav2Vec2CTCTokenizer:()=>Wr,WhisperTokenizer:()=>ps,XLMRobertaTokenizer:()=>Cr,XLMTokenizer:()=>ce,is_chinese_char:()=>C});var s=t("./src/utils/generic.js"),o=t("./src/utils/core.js"),a=t("./src/utils/hub.js"),n=t("./src/utils/maths.js"),i=t("./src/utils/tensor.js"),l=t("./src/utils/data-structures.js"),c=t("./node_modules/@huggingface/jinja/dist/index.js"),_=t("./src/models/whisper/common_whisper.js");async function u(de,S){let G=await Promise.all([(0,a.getModelJSON)(de,"tokenizer.json",!0,S),(0,a.getModelJSON)(de,"tokenizer_config.json",!0,S)]);return S.legacy!==null&&(G[1].legacy=S.legacy),G}function d(de,S){let G=[],te=0;for(let se of de.matchAll(S)){let me=se[0];te<se.index&&G.push(de.slice(te,se.index)),me.length>0&&G.push(me),te=se.index+me.length}return te<de.length&&G.push(de.slice(te)),G}function g(de,S=!0){if(de.Regex!==void 0){let G=de.Regex.replace(/\\([#&~])/g,"$1");for(let[te,se]of D)G=G.replaceAll(te,se);return new RegExp(G,"gu")}else if(de.String!==void 0){let G=(0,o.escapeRegExp)(de.String);return new RegExp(S?G:`(${G})`,"gu")}else return console.warn("Unknown pattern type:",de),null}function h(de){return new Map(Object.entries(de))}function x(de){let S=de.dims;switch(S.length){case 1:return de.tolist();case 2:if(S[0]!==1)throw new Error("Unable to decode tensor with `batch size !== 1`. Use `tokenizer.batch_decode(...)` for batched inputs.");return de.tolist()[0];default:throw new Error(`Expected tensor to have 1-2 dimensions, got ${S.length}.`)}}function F(de){return de.replace(/ \./g,".").replace(/ \?/g,"?").replace(/ \!/g,"!").replace(/ ,/g,",").replace(/ \' /g,"'").replace(/ n\'t/g,"n't").replace(/ \'m/g,"'m").replace(/ \'s/g,"'s").replace(/ \'ve/g,"'ve").replace(/ \'re/g,"'re")}function v(de){return de.replace(/\p{M}/gu,"")}function b(de){return v(de.toLowerCase())}function C(de){return de>=19968&&de<=40959||de>=13312&&de<=19903||de>=131072&&de<=173791||de>=173824&&de<=177983||de>=177984&&de<=178207||de>=178208&&de<=183983||de>=63744&&de<=64255||de>=194560&&de<=195103}function y(de,S,G){let te=[],se=0;for(;se<de.length;){if(te.push(de[se]),(S.get(de[se])??G)!==G){++se;continue}for(;++se<de.length&&(S.get(de[se])??G)===G;)S.get(te.at(-1))!==G&&(te[te.length-1]+=de[se])}return te}function P(de){return de.match(/\S+/g)||[]}let I="\\p{P}\\u0021-\\u002F\\u003A-\\u0040\\u005B-\\u0060\\u007B-\\u007E",f=new RegExp(`^[${I}]+$`,"gu"),E=".,!?\u2026\u3002\uFF0C\u3001\u0964\u06D4\u060C",D=new Map([["(?i:'s|'t|'re|'ve|'m|'ll|'d)","(?:'([sS]|[tT]|[rR][eE]|[vV][eE]|[mM]|[lL][lL]|[dD]))"],["(?i:[sdmt]|ll|ve|re)","(?:[sS]|[dD]|[mM]|[tT]|[lL][lL]|[vV][eE]|[rR][eE])"],["[^\\r\\n\\p{L}\\p{N}]?+","[^\\r\\n\\p{L}\\p{N}]?"],["[^\\s\\p{L}\\p{N}]++","[^\\s\\p{L}\\p{N}]+"],[` ?[^(\\s|[${E}])]+`,` ?[^\\s${E}]+`]]);class O{constructor(S){this.content=S.content,this.id=S.id,this.single_word=S.single_word??!1,this.lstrip=S.lstrip??!1,this.rstrip=S.rstrip??!1,this.special=S.special??!1,this.normalized=S.normalized??null}}class U extends s.Callable{constructor(S){super(),this.config=S,this.vocab=[],this.tokens_to_ids=new Map,this.unk_token_id=void 0,this.unk_token=void 0,this.end_of_word_suffix=void 0,this.fuse_unk=this.config.fuse_unk??!1}static fromConfig(S,...G){switch(S.type){case"WordPiece":return new W(S);case"Unigram":return new z(S,...G);case"BPE":return new q(S);default:if(S.vocab)return Array.isArray(S.vocab)?new z(S,...G):Object.hasOwn(S,"continuing_subword_prefix")&&Object.hasOwn(S,"unk_token")?Object.hasOwn(S,"merges")?new q(S):new W(S):new re(S,...G);throw new Error(`Unknown TokenizerModel type: ${S.type}`)}}_call(S){return S=this.encode(S),this.fuse_unk&&(S=y(S,this.tokens_to_ids,this.unk_token_id)),S}encode(S){throw Error("encode should be implemented in subclass.")}convert_tokens_to_ids(S){return S.map(G=>this.tokens_to_ids.get(G)??this.unk_token_id)}convert_ids_to_tokens(S){return S.map(G=>this.vocab[G]??this.unk_token)}}class W extends U{constructor(S){super(S),this.tokens_to_ids=h(S.vocab),this.unk_token_id=this.tokens_to_ids.get(S.unk_token),this.unk_token=S.unk_token,this.max_input_chars_per_word=S.max_input_chars_per_word??100,this.vocab=new Array(this.tokens_to_ids.size);for(let[G,te]of this.tokens_to_ids)this.vocab[te]=G}encode(S){let G=[];for(let te of S){let se=[...te];if(se.length>this.max_input_chars_per_word){G.push(this.unk_token);continue}let me=!1,Ce=0,Ye=[];for(;Ce<se.length;){let Xe=se.length,Ze=null;for(;Ce<Xe;){let He=se.slice(Ce,Xe).join("");if(Ce>0&&(He=this.config.continuing_subword_prefix+He),this.tokens_to_ids.has(He)){Ze=He;break}--Xe}if(Ze===null){me=!0;break}Ye.push(Ze),Ce=Xe}me?G.push(this.unk_token):G.push(...Ye)}return G}}class z extends U{constructor(S,G){super(S);let te=S.vocab.length;this.vocab=new Array(te),this.scores=new Array(te);for(let se=0;se<te;++se)[this.vocab[se],this.scores[se]]=S.vocab[se];this.unk_token_id=S.unk_id,this.unk_token=this.vocab[S.unk_id],this.tokens_to_ids=new Map(this.vocab.map((se,me)=>[se,me])),this.bos_token=" ",this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=G.eos_token,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.unk_token=this.vocab[this.unk_token_id],this.minScore=(0,n.min)(this.scores)[0],this.unk_score=this.minScore-10,this.scores[this.unk_token_id]=this.unk_score,this.trie=new l.CharTrie,this.trie.extend(this.vocab),this.fuse_unk=!0}populateNodes(S){let G=S.chars,te=1,se=0;for(;se<G.length;){let me=!1,Ce=[],Ye=G.slice(se).join(""),Xe=this.trie.commonPrefixSearch(Ye);for(let Ze of Xe){Ce.push(Ze);let He=this.tokens_to_ids.get(Ze),It=this.scores[He],yt=(0,o.len)(Ze);S.insert(se,yt,It,He),!me&&yt===te&&(me=!0)}me||S.insert(se,te,this.unk_score,this.unk_token_id),se+=te}}tokenize(S){let G=new l.TokenLattice(S,this.bos_token_id,this.eos_token_id);return this.populateNodes(G),G.tokens()}encode(S){let G=[];for(let te of S){let se=this.tokenize(te);G.push(...se)}return G}}let X=(()=>{let de=[...Array.from({length:94},(se,me)=>me+33),...Array.from({length:12},(se,me)=>me+161),...Array.from({length:82},(se,me)=>me+174)],S=de.slice(),G=0;for(let se=0;se<256;++se)de.includes(se)||(de.push(se),S.push(256+G),G+=1);let te=S.map(se=>String.fromCharCode(se));return Object.fromEntries(de.map((se,me)=>[se,te[me]]))})(),J=(0,o.reverseDictionary)(X);class q extends U{constructor(S){super(S),this.tokens_to_ids=h(S.vocab),this.unk_token_id=this.tokens_to_ids.get(S.unk_token),this.unk_token=S.unk_token,this.vocab=new Array(this.tokens_to_ids.size);for(let[te,se]of this.tokens_to_ids)this.vocab[se]=te;let G=Array.isArray(S.merges[0]);this.merges=G?S.merges:S.merges.map(te=>te.split(" ",2)),this.bpe_ranks=new Map(this.merges.map((te,se)=>[JSON.stringify(te),se])),this.end_of_word_suffix=S.end_of_word_suffix,this.continuing_subword_suffix=S.continuing_subword_suffix??null,this.byte_fallback=this.config.byte_fallback??!1,this.byte_fallback&&(this.text_encoder=new TextEncoder),this.ignore_merges=this.config.ignore_merges??!1,this.max_length_to_cache=256,this.cache_capacity=1e4,this.cache=new l.LRUCache(this.cache_capacity)}clear_cache(){this.cache.clear()}bpe(S){if(S.length===0)return[];let G=this.cache.get(S);if(G!==void 0)return G;let te=Array.from(S);this.end_of_word_suffix&&(te[te.length-1]+=this.end_of_word_suffix);let se=[];if(te.length>1){let me=new l.PriorityQueue((Xe,Ze)=>Xe.score<Ze.score),Ce={token:te[0],bias:0,prev:null,next:null},Ye=Ce;for(let Xe=1;Xe<te.length;++Xe){let Ze={bias:Xe/te.length,token:te[Xe],prev:Ye,next:null};Ye.next=Ze,this._add_node(me,Ye),Ye=Ze}for(;!me.isEmpty();){let Xe=me.pop();if(Xe.deleted||!Xe.next||Xe.next.deleted)continue;if(Xe.deleted=!0,Xe.next.deleted=!0,Xe.prev){let He={...Xe.prev};Xe.prev.deleted=!0,Xe.prev=He,He.prev?He.prev.next=He:Ce=He}let Ze={token:Xe.token+Xe.next.token,bias:Xe.bias,prev:Xe.prev,next:Xe.next.next};Ze.prev?(Ze.prev.next=Ze,this._add_node(me,Ze.prev)):Ce=Ze,Ze.next&&(Ze.next.prev=Ze,this._add_node(me,Ze))}for(let Xe=Ce;Xe!==null;Xe=Xe.next)se.push(Xe.token)}else se=te;if(this.continuing_subword_suffix)for(let me=0;me<se.length-1;++me)se[me]+=this.continuing_subword_suffix;return S.length<this.max_length_to_cache&&this.cache.put(S,se),se}_add_node(S,G){let te=this.bpe_ranks.get(JSON.stringify([G.token,G.next.token]));te!==void 0&&(G.score=te+G.bias,S.push(G))}encode(S){let G=[];for(let te of S){if(this.ignore_merges&&this.tokens_to_ids.has(te)){G.push(te);continue}let se=this.bpe(te);for(let me of se)if(this.tokens_to_ids.has(me))G.push(me);else if(this.byte_fallback){let Ce=Array.from(this.text_encoder.encode(me)).map(Ye=>`<0x${Ye.toString(16).toUpperCase().padStart(2,"0")}>`);Ce.every(Ye=>this.tokens_to_ids.has(Ye))?G.push(...Ce):G.push(this.unk_token)}else G.push(this.unk_token)}return G}}class re extends U{constructor(S,G){super(S),this.tokens_to_ids=h(G.target_lang?S.vocab[G.target_lang]:S.vocab),this.bos_token=G.bos_token,this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=G.eos_token,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.pad_token=G.pad_token,this.pad_token_id=this.tokens_to_ids.get(this.pad_token),this.unk_token=G.unk_token,this.unk_token_id=this.tokens_to_ids.get(this.unk_token),this.vocab=new Array(this.tokens_to_ids.size);for(let[te,se]of this.tokens_to_ids)this.vocab[se]=te}encode(S){return S}}class oe extends s.Callable{constructor(S){super(),this.config=S}static fromConfig(S){if(S===null)return null;switch(S.type){case"BertNormalizer":return new rt(S);case"Precompiled":return new zt(S);case"Sequence":return new Le(S);case"Replace":return new ne(S);case"NFC":return new Y(S);case"NFD":return new H(S);case"NFKC":return new R(S);case"NFKD":return new L(S);case"Strip":return new ee(S);case"StripAccents":return new ue(S);case"Lowercase":return new ke(S);case"Prepend":return new Ie(S);default:throw new Error(`Unknown Normalizer type: ${S.type}`)}}normalize(S){throw Error("normalize should be implemented in subclass.")}_call(S){return this.normalize(S)}}class ne extends oe{normalize(S){let G=g(this.config.pattern);return G===null?S:S.replaceAll(G,this.config.content)}}class ye extends oe{form=void 0;normalize(S){return S=S.normalize(this.form),S}}class Y extends ye{form="NFC"}class H extends ye{form="NFD"}class R extends ye{form="NFKC"}class L extends ye{form="NFKD"}class ee extends oe{normalize(S){return this.config.strip_left&&this.config.strip_right?S=S.trim():(this.config.strip_left&&(S=S.trimStart()),this.config.strip_right&&(S=S.trimEnd())),S}}class ue extends oe{normalize(S){return S=v(S),S}}class ke extends oe{normalize(S){return S=S.toLowerCase(),S}}class Ie extends oe{normalize(S){return S=this.config.prepend+S,S}}class Le extends oe{constructor(S){super(S),this.normalizers=S.normalizers.map(G=>oe.fromConfig(G))}normalize(S){return this.normalizers.reduce((G,te)=>te.normalize(G),S)}}class rt extends oe{_tokenize_chinese_chars(S){let G=[];for(let te=0;te<S.length;++te){let se=S[te],me=se.charCodeAt(0);C(me)?(G.push(" "),G.push(se),G.push(" ")):G.push(se)}return G.join("")}stripAccents(S){return S.normalize("NFD").replace(/\p{Mn}/gu,"")}_is_control(S){switch(S){case" ":case`
2851
+ `:case"\r":return!1;default:return/^\p{Cc}|\p{Cf}|\p{Co}|\p{Cs}$/u.test(S)}}_clean_text(S){let G=[];for(let te of S){let se=te.charCodeAt(0);se===0||se===65533||this._is_control(te)||(/^\s$/.test(te)?G.push(" "):G.push(te))}return G.join("")}normalize(S){return this.config.clean_text&&(S=this._clean_text(S)),this.config.handle_chinese_chars&&(S=this._tokenize_chinese_chars(S)),this.config.lowercase?(S=S.toLowerCase(),this.config.strip_accents!==!1&&(S=this.stripAccents(S))):this.config.strip_accents&&(S=this.stripAccents(S)),S}}class we extends s.Callable{static fromConfig(S){if(S===null)return null;switch(S.type){case"BertPreTokenizer":return new A(S);case"Sequence":return new yr(S);case"Whitespace":return new zs(S);case"WhitespaceSplit":return new Ys(S);case"Metaspace":return new Lt(S);case"ByteLevel":return new le(S);case"Split":return new ge(S);case"Punctuation":return new be(S);case"Digits":return new Ae(S);case"Replace":return new Zs(S);case"FixedLength":return new or(S);default:throw new Error(`Unknown PreTokenizer type: ${S.type}`)}}pre_tokenize_text(S,G){throw Error("pre_tokenize_text should be implemented in subclass.")}pre_tokenize(S,G){return(Array.isArray(S)?S.map(te=>this.pre_tokenize_text(te,G)):this.pre_tokenize_text(S,G)).flat()}_call(S,G){return this.pre_tokenize(S,G)}}class A extends we{constructor(S){super(),this.pattern=new RegExp(`[^\\s${I}]+|[${I}]`,"gu")}pre_tokenize_text(S,G){return S.trim().match(this.pattern)||[]}}class le extends we{constructor(S){super(),this.config=S,this.add_prefix_space=this.config.add_prefix_space,this.trim_offsets=this.config.trim_offsets,this.use_regex=this.config.use_regex??!0,this.pattern=/'s|'t|'re|'ve|'m|'ll|'d| ?\p{L}+| ?\p{N}+| ?[^\s\p{L}\p{N}]+|\s+(?!\S)|\s+/gu,this.byte_encoder=X,this.text_encoder=new TextEncoder}pre_tokenize_text(S,G){return this.add_prefix_space&&!S.startsWith(" ")&&(S=" "+S),(this.use_regex?S.match(this.pattern)||[]:[S]).map(se=>Array.from(this.text_encoder.encode(se),me=>this.byte_encoder[me]).join(""))}}class ge extends we{constructor(S){super(),this.config=S,this.pattern=g(this.config.pattern,this.config.invert)}pre_tokenize_text(S,G){return this.pattern===null?[]:this.config.invert?S.match(this.pattern)||[]:this.config.behavior?.toLowerCase()==="removed"?S.split(this.pattern).filter(te=>te):d(S,this.pattern)}}class be extends we{constructor(S){super(),this.config=S,this.pattern=new RegExp(`[^${I}]+|[${I}]+`,"gu")}pre_tokenize_text(S,G){return S.match(this.pattern)||[]}}class Ae extends we{constructor(S){super(),this.config=S;let G=`[^\\d]+|\\d${this.config.individual_digits?"":"+"}`;this.pattern=new RegExp(G,"gu")}pre_tokenize_text(S,G){return S.match(this.pattern)||[]}}class ve extends s.Callable{constructor(S){super(),this.config=S}static fromConfig(S){if(S===null)return null;switch(S.type){case"TemplateProcessing":return new fe(S);case"ByteLevel":return new Te(S);case"RobertaProcessing":return new Pe(S);case"BertProcessing":return new pe(S);case"Sequence":return new We(S);default:throw new Error(`Unknown PostProcessor type: ${S.type}`)}}post_process(S,...G){throw Error("post_process should be implemented in subclass.")}_call(S,...G){return this.post_process(S,...G)}}class pe extends ve{constructor(S){super(S),this.cls=S.cls[0],this.sep=S.sep[0]}post_process(S,G=null,{add_special_tokens:te=!0}={}){te&&(S=(0,o.mergeArrays)([this.cls],S,[this.sep]));let se=new Array(S.length).fill(0);if(G!==null){let me=te&&this instanceof Pe?[this.sep]:[],Ce=te?[this.sep]:[];S=(0,o.mergeArrays)(S,me,G,Ce),se=(0,o.mergeArrays)(se,new Array(G.length+me.length+Ce.length).fill(1))}return{tokens:S,token_type_ids:se}}}class Pe extends pe{}class fe extends ve{constructor(S){super(S),this.single=S.single,this.pair=S.pair}post_process(S,G=null,{add_special_tokens:te=!0}={}){let se=G===null?this.single:this.pair,me=[],Ce=[];for(let Ye of se)"SpecialToken"in Ye?te&&(me.push(Ye.SpecialToken.id),Ce.push(Ye.SpecialToken.type_id)):"Sequence"in Ye&&(Ye.Sequence.id==="A"?(me=(0,o.mergeArrays)(me,S),Ce=(0,o.mergeArrays)(Ce,new Array(S.length).fill(Ye.Sequence.type_id))):Ye.Sequence.id==="B"&&(me=(0,o.mergeArrays)(me,G),Ce=(0,o.mergeArrays)(Ce,new Array(G.length).fill(Ye.Sequence.type_id))));return{tokens:me,token_type_ids:Ce}}}class Te extends ve{post_process(S,G=null){return G&&(S=(0,o.mergeArrays)(S,G)),{tokens:S}}}class We extends ve{constructor(S){super(S),this.processors=S.processors.map(G=>ve.fromConfig(G))}post_process(S,G=null,te={}){let se;for(let me of this.processors)if(me instanceof Te)S=me.post_process(S).tokens,G&&(G=me.post_process(G).tokens);else{let Ce=me.post_process(S,G,te);S=Ce.tokens,se=Ce.token_type_ids}return{tokens:S,token_type_ids:se}}}class $e extends s.Callable{constructor(S){super(),this.config=S,this.added_tokens=[],this.end_of_word_suffix=null,this.trim_offsets=S.trim_offsets}static fromConfig(S){if(S===null)return null;switch(S.type){case"WordPiece":return new Qe(S);case"Metaspace":return new fr(S);case"ByteLevel":return new je(S);case"Replace":return new Re(S);case"ByteFallback":return new Ne(S);case"Fuse":return new ot(S);case"Strip":return new De(S);case"Sequence":return new Ke(S);case"CTC":return new pt(S);case"BPEDecoder":return new bt(S);default:throw new Error(`Unknown Decoder type: ${S.type}`)}}_call(S){return this.decode(S)}decode(S){return this.decode_chain(S).join("")}decode_chain(S){throw Error("`decode_chain` should be implemented in subclass.")}}class Re extends $e{decode_chain(S){let G=g(this.config.pattern);return G===null?S:S.map(te=>te.replaceAll(G,this.config.content))}}class Ne extends $e{constructor(S){super(S),this.text_decoder=new TextDecoder}decode_chain(S){let G=[],te=[];for(let se of S){let me=null;if(se.length===6&&se.startsWith("<0x")&&se.endsWith(">")){let Ce=parseInt(se.slice(3,5),16);isNaN(Ce)||(me=Ce)}if(me!==null)te.push(me);else{if(te.length>0){let Ce=this.text_decoder.decode(Uint8Array.from(te));G.push(Ce),te=[]}G.push(se)}}if(te.length>0){let se=this.text_decoder.decode(Uint8Array.from(te));G.push(se),te=[]}return G}}class ot extends $e{decode_chain(S){return[S.join("")]}}class De extends $e{constructor(S){super(S),this.content=this.config.content,this.start=this.config.start,this.stop=this.config.stop}decode_chain(S){return S.map(G=>{let te=0;for(let me=0;me<this.start&&G[me]===this.content;++me){te=me+1;continue}let se=G.length;for(let me=0;me<this.stop;++me){let Ce=G.length-me-1;if(G[Ce]===this.content){se=Ce;continue}else break}return G.slice(te,se)})}}class Qe extends $e{constructor(S){super(S),this.cleanup=S.cleanup}decode_chain(S){return S.map((G,te)=>(te!==0&&(G.startsWith(this.config.prefix)?G=G.replace(this.config.prefix,""):G=" "+G),this.cleanup&&(G=F(G)),G))}}class je extends $e{constructor(S){super(S),this.byte_decoder=J,this.text_decoder=new TextDecoder("utf-8",{fatal:!1,ignoreBOM:!0}),this.end_of_word_suffix=null}convert_tokens_to_string(S){let G=S.join(""),te=new Uint8Array([...G].map(me=>this.byte_decoder[me]));return this.text_decoder.decode(te)}decode_chain(S){let G=[],te=[];for(let se of S)this.added_tokens.find(me=>me.content===se)!==void 0?(te.length>0&&(G.push(this.convert_tokens_to_string(te)),te=[]),G.push(se)):te.push(se);return te.length>0&&G.push(this.convert_tokens_to_string(te)),G}}class pt extends $e{constructor(S){super(S),this.pad_token=this.config.pad_token,this.word_delimiter_token=this.config.word_delimiter_token,this.cleanup=this.config.cleanup}convert_tokens_to_string(S){if(S.length===0)return"";let G=[S[0]];for(let me=1;me<S.length;++me)S[me]!==G.at(-1)&&G.push(S[me]);let se=G.filter(me=>me!==this.pad_token).join("");return this.cleanup&&(se=F(se).replaceAll(this.word_delimiter_token," ").trim()),se}decode_chain(S){return[this.convert_tokens_to_string(S)]}}class Ke extends $e{constructor(S){super(S),this.decoders=S.decoders.map(G=>$e.fromConfig(G))}decode_chain(S){return this.decoders.reduce((G,te)=>te.decode_chain(G),S)}}class bt extends $e{constructor(S){super(S),this.suffix=this.config.suffix}decode_chain(S){return S.map((G,te)=>G.replaceAll(this.suffix,te===S.length-1?"":" "))}}class At extends $e{decode_chain(S){let G="";for(let te=1;te<S.length;te+=2)G+=S[te];return[G]}}class Lt extends we{constructor(S){super(),this.replacement=S.replacement,this.strRep=S.str_rep||this.replacement,this.prepend_scheme=S.prepend_scheme??"always"}pre_tokenize_text(S,{section_index:G=void 0}={}){let te=S.replaceAll(" ",this.strRep);return!te.startsWith(this.replacement)&&(this.prepend_scheme==="always"||this.prepend_scheme==="first"&&G===0)&&(te=this.strRep+te),[te]}}class fr extends $e{constructor(S){super(S),this.replacement=S.replacement}decode_chain(S){let G=[];for(let te=0;te<S.length;++te){let se=S[te].replaceAll(this.replacement," ");te==0&&se.startsWith(" ")&&(se=se.substring(1)),G.push(se)}return G}}class zt extends oe{constructor(S){super(S),this.charsmap=S.precompiled_charsmap}normalize(S){return S=S.replace(/[\u0001-\u0008\u000B\u000E-\u001F\u007F\u008F\u009F]/gm,""),S=S.replace(/[\u0009\u000A\u000C\u000D\u00A0\u1680\u2000-\u200F\u2028\u2029\u202F\u205F\u2581\u3000\uFEFF\uFFFD]/gm," "),S.includes("\uFF5E")?S=S.split("\uFF5E").map(te=>te.normalize("NFKC")).join("\uFF5E"):S=S.normalize("NFKC"),S}}class yr extends we{constructor(S){super(),this.tokenizers=S.pretokenizers.map(G=>we.fromConfig(G))}pre_tokenize_text(S,G){return this.tokenizers.reduce((te,se)=>se.pre_tokenize(te,G),[S])}}class zs extends we{constructor(S){super()}pre_tokenize_text(S,G){return S.match(/\w+|[^\w\s]+/g)||[]}}class Ys extends we{constructor(S){super()}pre_tokenize_text(S,G){return P(S)}}class Zs extends we{constructor(S){super(),this.config=S,this.pattern=g(this.config.pattern),this.content=this.config.content}pre_tokenize_text(S,G){return this.pattern===null?[S]:[S.replaceAll(this.pattern,this.config.content)]}}class or extends we{constructor(S){super(),this._length=S.length}pre_tokenize_text(S,G){let te=[];for(let se=0;se<S.length;se+=this._length)te.push(S.slice(se,se+this._length));return te}}let Dr=["bos_token","eos_token","unk_token","sep_token","pad_token","cls_token","mask_token"];function Yr(de,S,G,te){for(let se of Object.keys(de)){let me=S-de[se].length,Ce=G(se),Ye=new Array(me).fill(Ce);de[se]=te==="right"?(0,o.mergeArrays)(de[se],Ye):(0,o.mergeArrays)(Ye,de[se])}}function Rs(de,S){for(let G of Object.keys(de))de[G].length=S}class ft extends s.Callable{return_token_type_ids=!1;padding_side="right";constructor(S,G){super(),this.config=G,this.normalizer=oe.fromConfig(S.normalizer),this.pre_tokenizer=we.fromConfig(S.pre_tokenizer),this.model=U.fromConfig(S.model,G),this.post_processor=ve.fromConfig(S.post_processor),this.decoder=$e.fromConfig(S.decoder),this.special_tokens=[],this.all_special_ids=[],this.added_tokens=[];for(let te of S.added_tokens){let se=new O(te);this.added_tokens.push(se),this.model.tokens_to_ids.set(se.content,se.id),this.model.vocab[se.id]=se.content,se.special&&(this.special_tokens.push(se.content),this.all_special_ids.push(se.id))}if(this.additional_special_tokens=G.additional_special_tokens??[],this.special_tokens.push(...this.additional_special_tokens),this.special_tokens=[...new Set(this.special_tokens)],this.decoder&&(this.decoder.added_tokens=this.added_tokens,this.decoder.end_of_word_suffix=this.model.end_of_word_suffix),this.added_tokens_splitter=new l.DictionarySplitter(this.added_tokens.map(te=>te.content)),this.added_tokens_map=new Map(this.added_tokens.map(te=>[te.content,te])),this.mask_token=this.getToken("mask_token"),this.mask_token_id=this.model.tokens_to_ids.get(this.mask_token),this.pad_token=this.getToken("pad_token","eos_token"),this.pad_token_id=this.model.tokens_to_ids.get(this.pad_token),this.sep_token=this.getToken("sep_token"),this.sep_token_id=this.model.tokens_to_ids.get(this.sep_token),this.unk_token=this.getToken("unk_token"),this.unk_token_id=this.model.tokens_to_ids.get(this.unk_token),this.bos_token=this.getToken("bos_token"),this.bos_token_id=this.model.tokens_to_ids.get(this.bos_token),this.eos_token=this.getToken("eos_token"),this.eos_token_id=this.model.tokens_to_ids.get(this.eos_token),this.model_max_length=G.model_max_length,this.remove_space=G.remove_space,this.clean_up_tokenization_spaces=G.clean_up_tokenization_spaces??!0,this.do_lowercase_and_remove_accent=G.do_lowercase_and_remove_accent??!1,G.padding_side&&(this.padding_side=G.padding_side),this.add_bos_token=G.add_bos_token,this.add_eos_token=G.add_eos_token,this.legacy=!1,this.chat_template=G.chat_template??null,Array.isArray(this.chat_template)){let te=Object.create(null);for(let{name:se,template:me}of this.chat_template){if(typeof se!="string"||typeof me!="string")throw new Error('Chat template must be a list of objects with "name" and "template" properties');te[se]=me}this.chat_template=te}this._compiled_template_cache=new Map}getToken(...S){for(let G of S){let te=this.config[G];if(te)if(typeof te=="object"){if(te.__type==="AddedToken")return te.content;throw Error(`Unknown token: ${te}`)}else return te}return null}static async from_pretrained(S,{progress_callback:G=null,config:te=null,cache_dir:se=null,local_files_only:me=!1,revision:Ce="main",legacy:Ye=null}={}){let Xe=await u(S,{progress_callback:G,config:te,cache_dir:se,local_files_only:me,revision:Ce,legacy:Ye});return new this(...Xe)}_call(S,{text_pair:G=null,add_special_tokens:te=!0,padding:se=!1,truncation:me=null,max_length:Ce=null,return_tensor:Ye=!0,return_token_type_ids:Xe=null}={}){let Ze=Array.isArray(S),He;if(Ze){if(S.length===0)throw Error("text array must be non-empty");if(G!==null){if(Array.isArray(G)){if(S.length!==G.length)throw Error("text and text_pair must have the same length")}else throw Error("text_pair must also be an array");He=S.map((yt,Xt)=>this._encode_plus(yt,{text_pair:G[Xt],add_special_tokens:te,return_token_type_ids:Xe}))}else He=S.map(yt=>this._encode_plus(yt,{add_special_tokens:te,return_token_type_ids:Xe}))}else{if(S==null)throw Error("text may not be null or undefined");if(Array.isArray(G))throw Error("When specifying `text_pair`, since `text` is a string, `text_pair` must also be a string (i.e., not an array).");He=[this._encode_plus(S,{text_pair:G,add_special_tokens:te,return_token_type_ids:Xe})]}if(Ce===null?Ce=this.model_max_length:me===null&&(se===!0?(console.warn("`max_length` is ignored when `padding: true` and there is no truncation strategy. To pad to max length, use `padding: 'max_length'`."),Ce=this.model_max_length):se===!1&&(console.warn("Truncation was not explicitly activated but `max_length` is provided a specific value, please use `truncation: true` to explicitly truncate examples to max length."),me=!0)),se===!0&&(Ce=Math.min((0,n.max)(He.map(yt=>yt.input_ids.length))[0],Ce??1/0)),Ce=Math.min(Ce,this.model_max_length??1/0),se||me)for(let yt=0;yt<He.length;++yt)He[yt].input_ids.length!==Ce&&(He[yt].input_ids.length>Ce?me&&Rs(He[yt],Ce):se&&Yr(He[yt],Ce,Xt=>Xt==="input_ids"?this.pad_token_id:0,this.padding_side));let It={};if(Ye){if(!(se&&me)&&He.some(Xt=>{for(let Mr of Object.keys(Xt))if(Xt[Mr].length!==He[0][Mr]?.length)return!0;return!1}))throw Error("Unable to create tensor, you should probably activate truncation and/or padding with 'padding=true' and 'truncation=true' to have batched tensors with the same length.");let yt=[He.length,He[0].input_ids.length];for(let Xt of Object.keys(He[0]))It[Xt]=new i.Tensor("int64",BigInt64Array.from(He.flatMap(Mr=>Mr[Xt]).map(BigInt)),yt)}else{for(let yt of Object.keys(He[0]))It[yt]=He.map(Xt=>Xt[yt]);if(!Ze)for(let yt of Object.keys(It))It[yt]=It[yt][0]}return It}_encode_text(S){if(S===null)return null;let G=this.added_tokens_splitter.split(S);for(let se=0;se<G.length;++se){let me=this.added_tokens_map.get(G[se]);me&&(me.lstrip&&se>0&&(G[se-1]=G[se-1].trimEnd()),me.rstrip&&se<G.length-1&&(G[se+1]=G[se+1].trimStart()))}return G.flatMap((se,me)=>{if(se.length===0)return[];if(this.added_tokens_map.has(se))return[se];if(this.remove_space===!0&&(se=se.trim().split(/\s+/).join(" ")),this.do_lowercase_and_remove_accent&&(se=b(se)),this.normalizer!==null&&(se=this.normalizer(se)),se.length===0)return[];let Ce=this.pre_tokenizer!==null?this.pre_tokenizer(se,{section_index:me}):[se];return this.model(Ce)})}_encode_plus(S,{text_pair:G=null,add_special_tokens:te=!0,return_token_type_ids:se=null}={}){let{tokens:me,token_type_ids:Ce}=this._tokenize_helper(S,{pair:G,add_special_tokens:te}),Ye=this.model.convert_tokens_to_ids(me),Xe={input_ids:Ye,attention_mask:new Array(Ye.length).fill(1)};return(se??this.return_token_type_ids)&&Ce&&(Xe.token_type_ids=Ce),Xe}_tokenize_helper(S,{pair:G=null,add_special_tokens:te=!1}={}){let se=this._encode_text(S),me=this._encode_text(G);return this.post_processor?this.post_processor(se,me,{add_special_tokens:te}):{tokens:(0,o.mergeArrays)(se??[],me??[])}}tokenize(S,{pair:G=null,add_special_tokens:te=!1}={}){return this._tokenize_helper(S,{pair:G,add_special_tokens:te}).tokens}encode(S,{text_pair:G=null,add_special_tokens:te=!0,return_token_type_ids:se=null}={}){return this._encode_plus(S,{text_pair:G,add_special_tokens:te,return_token_type_ids:se}).input_ids}batch_decode(S,G={}){return S instanceof i.Tensor&&(S=S.tolist()),S.map(te=>this.decode(te,G))}decode(S,G={}){if(S instanceof i.Tensor&&(S=x(S)),!Array.isArray(S)||S.length===0||!(0,o.isIntegralNumber)(S[0]))throw Error("token_ids must be a non-empty array of integers.");return this.decode_single(S,G)}decode_single(S,{skip_special_tokens:G=!1,clean_up_tokenization_spaces:te=null}){let se=this.model.convert_ids_to_tokens(S);G&&(se=se.filter(Ce=>!this.special_tokens.includes(Ce)));let me=this.decoder?this.decoder(se):se.join(" ");return this.decoder&&this.decoder.end_of_word_suffix&&(me=me.replaceAll(this.decoder.end_of_word_suffix," "),G&&(me=me.trim())),(te??this.clean_up_tokenization_spaces)&&(me=F(me)),me}get_chat_template({chat_template:S=null,tools:G=null}={}){if(this.chat_template&&typeof this.chat_template=="object"){let te=this.chat_template;if(S!==null&&Object.hasOwn(te,S))S=te[S];else if(S===null)if(G!==null&&"tool_use"in te)S=te.tool_use;else if("default"in te)S=te.default;else throw Error(`This model has multiple chat templates with no default specified! Please either pass a chat template or the name of the template you wish to use to the 'chat_template' argument. Available template names are ${Object.keys(te).sort()}.`)}else if(S===null)if(this.chat_template)S=this.chat_template;else throw Error("Cannot use apply_chat_template() because tokenizer.chat_template is not set and no template argument was passed! For information about writing templates and setting the tokenizer.chat_template attribute, please see the documentation at https://huggingface.co/docs/transformers/main/en/chat_templating");return S}apply_chat_template(S,{tools:G=null,documents:te=null,chat_template:se=null,add_generation_prompt:me=!1,tokenize:Ce=!0,padding:Ye=!1,truncation:Xe=!1,max_length:Ze=null,return_tensor:He=!0,return_dict:It=!1,tokenizer_kwargs:yt={},...Xt}={}){if(se=this.get_chat_template({chat_template:se,tools:G}),typeof se!="string")throw Error(`chat_template must be a string, but got ${typeof se}`);let Mr=this._compiled_template_cache.get(se);Mr===void 0&&(Mr=new c.Template(se),this._compiled_template_cache.set(se,Mr));let nr=Object.create(null);for(let ir of Dr){let Tr=this.getToken(ir);Tr&&(nr[ir]=Tr)}let Br=Mr.render({messages:S,add_generation_prompt:me,tools:G,documents:te,...nr,...Xt});if(Ce){let ir=this._call(Br,{add_special_tokens:!1,padding:Ye,truncation:Xe,max_length:Ze,return_tensor:He,...yt});return It?ir:ir.input_ids}return Br}}class Cs extends ft{return_token_type_ids=!0}class qt extends ft{return_token_type_ids=!0}class Ss extends ft{return_token_type_ids=!0}class Qr extends ft{return_token_type_ids=!0}class St extends ft{return_token_type_ids=!0}class Xr extends ft{return_token_type_ids=!0}class k extends ft{return_token_type_ids=!0}class Q extends ft{return_token_type_ids=!0}class N extends ft{return_token_type_ids=!0}class K extends ft{}class Z extends ft{}class ce extends ft{return_token_type_ids=!0;constructor(S,G){super(S,G),console.warn('WARNING: `XLMTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.')}}class xe extends ft{return_token_type_ids=!0}class et extends ft{}class ut extends ft{}class qe extends ft{}class wt extends ft{constructor(S,G){super(S,G),this.languageRegex=/^[a-z]{2}_[A-Z]{2}$/,this.language_codes=this.special_tokens.filter(te=>this.languageRegex.test(te)),this.lang_to_token=te=>te}_build_translation_inputs(S,G,te){return Gr(this,S,G,te)}}class tt extends wt{}class gt extends ft{}class Nt extends ft{}let Qt="\u2581";class ur extends ft{padding_side="left";constructor(S,G){super(S,G),this.legacy=G.legacy??!0,this.legacy||(this.normalizer=null,this.pre_tokenizer=new Lt({replacement:Qt,prepend_scheme:"first"}))}_encode_text(S){if(S===null)return null;if(this.legacy||S.length===0)return super._encode_text(S);let G=super._encode_text(Qt+S.replaceAll(Qt," "));return G.length>1&&G[0]===Qt&&this.special_tokens.includes(G[1])&&(G=G.slice(1)),G}}class Or extends ft{}class Cr extends ft{}class Lr extends ft{}class _s extends ft{}class Fs extends ft{}class gr extends ft{}class Ns extends ft{}class as extends ft{}class Nr extends ft{}function Gr(de,S,G,te){if(!("language_codes"in de)||!Array.isArray(de.language_codes))throw new Error("Tokenizer must have `language_codes` attribute set and it should be an array of language ids.");if(!("languageRegex"in de)||!(de.languageRegex instanceof RegExp))throw new Error("Tokenizer must have `languageRegex` attribute set and it should be a regular expression.");if(!("lang_to_token"in de)||typeof de.lang_to_token!="function")throw new Error("Tokenizer must have `lang_to_token` attribute set and it should be a function.");let se=te.src_lang,me=te.tgt_lang;if(!de.language_codes.includes(me))throw new Error(`Target language code "${me}" is not valid. Must be one of: {${de.language_codes.join(", ")}}`);if(se!==void 0){if(!de.language_codes.includes(se))throw new Error(`Source language code "${se}" is not valid. Must be one of: {${de.language_codes.join(", ")}}`);for(let Ce of de.post_processor.config.single)if("SpecialToken"in Ce&&de.languageRegex.test(Ce.SpecialToken.id)){Ce.SpecialToken.id=de.lang_to_token(se);break}}return te.forced_bos_token_id=de.model.convert_tokens_to_ids([de.lang_to_token(me)])[0],de._call(S,G)}class ar extends ft{constructor(S,G){super(S,G),this.languageRegex=/^[a-z]{3}_[A-Z][a-z]{3}$/,this.language_codes=this.special_tokens.filter(te=>this.languageRegex.test(te)),this.lang_to_token=te=>te}_build_translation_inputs(S,G,te){return Gr(this,S,G,te)}}class _r extends ft{constructor(S,G){super(S,G),this.languageRegex=/^__[a-z]{2,3}__$/,this.language_codes=this.special_tokens.filter(te=>this.languageRegex.test(te)).map(te=>te.slice(2,-2)),this.lang_to_token=te=>`__${te}__`}_build_translation_inputs(S,G,te){return Gr(this,S,G,te)}}class ps extends ft{get timestamp_begin(){return this.model.convert_tokens_to_ids(["<|notimestamps|>"])[0]+1}_decode_asr(S,{return_timestamps:G=!1,return_language:te=!1,time_precision:se=null,force_full_sequences:me=!0}={}){if(se===null)throw Error("Must specify time_precision");let Ce=null,Ye=G==="word";function Xe(){return{language:Ce,timestamp:[null,null],text:""}}let Ze=[],He=Xe(),It=0,yt=this.timestamp_begin,Mr=yt+1500,nr=[],Br=[],ir=!1,Tr=null,zr=new Set(this.all_special_ids);for(let Yt of S){let vr=Yt.tokens,Sr=Ye?Yt.token_timestamps:null,Jr=null,ms=yt;if("stride"in Yt){let[lr,pr,wr]=Yt.stride;if(It-=pr,Tr=lr-wr,pr&&(ms=pr/se+yt),wr)for(let er=vr.length-1;er>=0;--er){let Kr=Number(vr[er]);if(Kr>=yt){if(Jr!==null&&(Kr-yt)*se<Tr)break;Jr=Kr}}}let Fr=[],is=[];for(let lr=0;lr<vr.length;++lr){let pr=Number(vr[lr]);if(zr.has(pr)){let wr=this.decode([pr]),er=_.WHISPER_LANGUAGE_MAPPING.get(wr.slice(2,-2));if(er!==void 0){if(Ce!==null&&er!==Ce&&!G){nr.push(Fr);let Kr=this.findLongestCommonSequence(nr)[0],Ws=this.decode(Kr);He.text=Ws,Ze.push(He),nr=[],Fr=[],He=Xe()}Ce=He.language=er}}else if(pr>=yt&&pr<=Mr){let wr=(pr-yt)*se+It,er=(0,n.round)(wr,2);if(Jr!==null&&pr>=Jr)ir=!0;else if(ir||nr.length>0&&pr<ms)ir=!1;else if(He.timestamp[0]===null)He.timestamp[0]=er;else if(er!==He.timestamp[0]){He.timestamp[1]=er,nr.push(Fr),Ye&&Br.push(is);let[Kr,Ws]=this.findLongestCommonSequence(nr,Br),Os=this.decode(Kr);He.text=Os,Ye&&(He.words=this.collateWordTimestamps(Kr,Ws,Ce)),Ze.push(He),nr=[],Fr=[],Br=[],is=[],He=Xe()}}else if(Fr.push(pr),Ye){let wr=(0,n.round)(Sr[lr]+It,2),er;if(lr+1<Sr.length){er=(0,n.round)(Sr[lr+1]+It,2);let Kr=this.decode([pr]);f.test(Kr)&&(er=(0,n.round)(Math.min(wr+se,er),2))}else er=null;is.push([wr,er])}}if("stride"in Yt){let[lr,pr,wr]=Yt.stride;It+=lr-wr}Fr.length>0?(nr.push(Fr),Ye&&Br.push(is)):nr.every(lr=>lr.length===0)&&(He=Xe(),nr=[],Fr=[],Br=[],is=[])}if(nr.length>0){if(me&&G)throw new Error("Whisper did not predict an ending timestamp, which can happen if audio is cut off in the middle of a word. Also make sure WhisperTimeStampLogitsProcessor was used during generation.");let[Yt,vr]=this.findLongestCommonSequence(nr,Br),Sr=this.decode(Yt);He.text=Sr,Ye&&(He.words=this.collateWordTimestamps(Yt,vr,Ce)),Ze.push(He)}let Pr=Object.create(null),Zr=Ze.map(Yt=>Yt.text).join("");if(G||te){for(let Yt=0;Yt<Ze.length;++Yt){let vr=Ze[Yt];G||delete vr.timestamp,te||delete vr.language}if(Ye){let Yt=[];for(let vr of Ze)for(let Sr of vr.words)Yt.push(Sr);Pr={chunks:Yt}}else Pr={chunks:Ze}}return[Zr,Pr]}findLongestCommonSequence(S,G=null){let te=S[0],se=te.length,me=[],Ce=Array.isArray(G)&&G.length>0,Ye=Ce?[]:null,Xe=Ce?G[0]:null;for(let Ze=1;Ze<S.length;++Ze){let He=S[Ze],It=0,yt=[se,se,0,0],Xt=He.length;for(let Pr=1;Pr<se+Xt;++Pr){let Zr=Math.max(0,se-Pr),Yt=Math.min(se,se+Xt-Pr),vr=te.slice(Zr,Yt),Sr=Math.max(0,Pr-se),Jr=Math.min(Xt,Pr),ms=He.slice(Sr,Jr);if(vr.length!==ms.length)throw new Error("There is a bug within whisper `decode_asr` function, please report it. Dropping to prevent bad inference.");let Fr;Ce?Fr=vr.filter((pr,wr)=>pr===ms[wr]&&Xe[Zr+wr]<=G[Ze][Sr+wr]).length:Fr=vr.filter((pr,wr)=>pr===ms[wr]).length;let is=Pr/1e4,lr=Fr/Pr+is;Fr>1&&lr>It&&(It=lr,yt=[Zr,Yt,Sr,Jr])}let[Mr,nr,Br,ir]=yt,Tr=Math.floor((nr+Mr)/2),zr=Math.floor((ir+Br)/2);me.push(...te.slice(0,Tr)),te=He.slice(zr),se=te.length,Ce&&(Ye.push(...Xe.slice(0,Tr)),Xe=G[Ze].slice(zr))}return me.push(...te),Ce?(Ye.push(...Xe),[me,Ye]):[me,[]]}collateWordTimestamps(S,G,te){let[se,me,Ce]=this.combineTokensIntoWords(S,te),Ye=[];for(let Xe=0;Xe<se.length;++Xe){let Ze=Ce[Xe];Ye.push({text:se[Xe],timestamp:[G[Ze.at(0)][0],G[Ze.at(-1)][1]]})}return Ye}combineTokensIntoWords(S,G,te=`"'\u201C\xA1\xBF([{-`,se=`"'.\u3002,\uFF0C!\uFF01?\uFF1F:\uFF1A\u201D)]}\u3001`){G=G??"english";let me,Ce,Ye;return["chinese","japanese","thai","lao","myanmar"].includes(G)?[me,Ce,Ye]=this.splitTokensOnUnicode(S):[me,Ce,Ye]=this.splitTokensOnSpaces(S),this.mergePunctuations(me,Ce,Ye,te,se)}decode(S,G){let te;return G?.decode_with_timestamps?(S instanceof i.Tensor&&(S=x(S)),te=this.decodeWithTimestamps(S,G)):te=super.decode(S,G),te}decodeWithTimestamps(S,G){let te=G?.time_precision??.02,se=Array.from(this.all_special_ids).at(-1)+1,me=[[]];for(let Ce of S)if(Ce=Number(Ce),Ce>=se){let Ye=((Ce-se)*te).toFixed(2);me.push(`<|${Ye}|>`),me.push([])}else me[me.length-1].push(Ce);return me=me.map(Ce=>typeof Ce=="string"?Ce:super.decode(Ce,G)),me.join("")}splitTokensOnUnicode(S){let G=this.decode(S,{decode_with_timestamps:!0}),te="\uFFFD",se=[],me=[],Ce=[],Ye=[],Xe=[],Ze=0;for(let He=0;He<S.length;++He){let It=S[He];Ye.push(It),Xe.push(He);let yt=this.decode(Ye,{decode_with_timestamps:!0});(!yt.includes(te)||G[Ze+yt.indexOf(te)]===te)&&(se.push(yt),me.push(Ye),Ce.push(Xe),Ye=[],Xe=[],Ze+=yt.length)}return[se,me,Ce]}splitTokensOnSpaces(S){let[G,te,se]=this.splitTokensOnUnicode(S),me=[],Ce=[],Ye=[],Xe=new RegExp(`^[${I}]$`,"gu");for(let Ze=0;Ze<G.length;++Ze){let He=G[Ze],It=te[Ze],yt=se[Ze],Xt=It[0]>=this.model.tokens_to_ids.get("<|endoftext|>"),Mr=He.startsWith(" "),nr=He.trim(),Br=Xe.test(nr);if(Xt||Mr||Br||me.length===0)me.push(He),Ce.push(It),Ye.push(yt);else{let ir=me.length-1;me[ir]+=He,Ce[ir].push(...It),Ye[ir].push(...yt)}}return[me,Ce,Ye]}mergePunctuations(S,G,te,se,me){let Ce=structuredClone(S),Ye=structuredClone(G),Xe=structuredClone(te),Ze=Ce.length-2,He=Ce.length-1;for(;Ze>=0;)Ce[Ze].startsWith(" ")&&se.includes(Ce[Ze].trim())?(Ce[He]=Ce[Ze]+Ce[He],Ye[He]=(0,o.mergeArrays)(Ye[Ze],Ye[He]),Xe[He]=(0,o.mergeArrays)(Xe[Ze],Xe[He]),Ce[Ze]="",Ye[Ze]=[],Xe[Ze]=[]):He=Ze,--Ze;for(Ze=0,He=1;He<Ce.length;)!Ce[Ze].endsWith(" ")&&me.includes(Ce[He])?(Ce[Ze]+=Ce[He],Ye[Ze]=(0,o.mergeArrays)(Ye[Ze],Ye[He]),Xe[Ze]=(0,o.mergeArrays)(Xe[Ze],Xe[He]),Ce[He]="",Ye[He]=[],Xe[He]=[]):Ze=He,++He;return[Ce.filter(It=>It),Ye.filter(It=>It.length>0),Xe.filter(It=>It.length>0)]}}class Is extends ft{}class As extends ft{}class $s extends ft{}class ns extends ft{constructor(S,G){super(S,G),this.languageRegex=/^(>>\w+<<)\s*/g,this.supported_language_codes=this.model.vocab.filter(te=>this.languageRegex.test(te)),console.warn('WARNING: `MarianTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.')}_encode_text(S){if(S===null)return null;let[G,...te]=S.trim().split(this.languageRegex);if(te.length===0)return super._encode_text(G);if(te.length===2){let[se,me]=te;return this.supported_language_codes.includes(se)||console.warn(`Unsupported language code "${se}" detected, which may lead to unexpected behavior. Should be one of: ${JSON.stringify(this.supported_language_codes)}`),(0,o.mergeArrays)([se],super._encode_text(me))}}}class Wr extends ft{}class ze extends ft{}class Ue extends ft{}class at extends ft{}class Ht extends ft{}class js extends ft{constructor(S,G){super(S,G),this.decoder=new At({})}}class Ds extends ft{}class Vs extends ft{}class Uo{static TOKENIZER_CLASS_MAPPING={T5Tokenizer:et,DistilBertTokenizer:K,CamembertTokenizer:Z,DebertaTokenizer:St,DebertaV2Tokenizer:Xr,BertTokenizer:Cs,HerbertTokenizer:k,ConvBertTokenizer:Q,RoFormerTokenizer:N,XLMTokenizer:ce,ElectraTokenizer:xe,MobileBertTokenizer:Ss,SqueezeBertTokenizer:Qr,AlbertTokenizer:qt,GPT2Tokenizer:ut,BartTokenizer:qe,MBartTokenizer:wt,MBart50Tokenizer:tt,RobertaTokenizer:gt,WhisperTokenizer:ps,CodeGenTokenizer:Is,CLIPTokenizer:As,SiglipTokenizer:$s,MarianTokenizer:ns,BloomTokenizer:Nt,NllbTokenizer:ar,M2M100Tokenizer:_r,LlamaTokenizer:ur,CodeLlamaTokenizer:Or,XLMRobertaTokenizer:Cr,MPNetTokenizer:Lr,FalconTokenizer:_s,GPTNeoXTokenizer:Fs,EsmTokenizer:gr,Wav2Vec2CTCTokenizer:Wr,BlenderbotTokenizer:ze,BlenderbotSmallTokenizer:Ue,SpeechT5Tokenizer:at,NougatTokenizer:Ht,VitsTokenizer:js,Qwen2Tokenizer:Ns,GemmaTokenizer:as,Grok1Tokenizer:Nr,CohereTokenizer:Ds,MgpstrTokenizer:Vs,PreTrainedTokenizer:ft};static async from_pretrained(S,{progress_callback:G=null,config:te=null,cache_dir:se=null,local_files_only:me=!1,revision:Ce="main",legacy:Ye=null}={}){let[Xe,Ze]=await u(S,{progress_callback:G,config:te,cache_dir:se,local_files_only:me,revision:Ce,legacy:Ye}),He=Ze.tokenizer_class?.replace(/Fast$/,"")??"PreTrainedTokenizer",It=this.TOKENIZER_CLASS_MAPPING[He];return It||(console.warn(`Unknown tokenizer class "${He}", attempting to construct from base class.`),It=ft),new It(Xe,Ze)}}}),"./src/utils/audio.js":((e,r,t)=>{t.r(r),t.d(r,{RawAudio:()=>W,hamming:()=>d,hanning:()=>u,mel_filter_bank:()=>C,read_audio:()=>c,spectrogram:()=>E,window_function:()=>D});var s=t("./src/utils/hub.js"),o=t("./src/utils/maths.js"),a=t("./src/utils/core.js"),n=t("./src/env.js"),i=t("./src/utils/tensor.js"),l=t("?7992");async function c(z,X){if(typeof AudioContext>"u")throw Error("Unable to load audio from path/URL since `AudioContext` is not available in your environment. Instead, audio data should be passed directly to the pipeline/processor. For more information and some example code, see https://huggingface.co/docs/transformers.js/guides/node-audio-processing.");let J=await(await(0,s.getFile)(z)).arrayBuffer(),q=new AudioContext({sampleRate:X});typeof X>"u"&&console.warn(`No sampling rate provided, using default of ${q.sampleRate}Hz.`);let re=await q.decodeAudioData(J),oe;if(re.numberOfChannels===2){let ne=Math.sqrt(2),ye=re.getChannelData(0),Y=re.getChannelData(1);oe=new Float32Array(ye.length);for(let H=0;H<re.length;++H)oe[H]=ne*(ye[H]+Y[H])/2}else oe=re.getChannelData(0);return oe}function _(z,X){if(z<1)return new Float64Array;if(z===1)return new Float64Array([1]);let J=1-X,q=2*Math.PI/(z-1),re=new Float64Array(z);for(let oe=0;oe<z;++oe)re[oe]=X-J*Math.cos(oe*q);return re}function u(z){return _(z,.5)}function d(z){return _(z,.54)}let g={htk:z=>2595*Math.log10(1+z/700),kaldi:z=>1127*Math.log(1+z/700),slaney:(z,X=1e3,J=15,q=27/Math.log(6.4))=>z>=X?J+Math.log(z/X)*q:3*z/200};function h(z,X="htk"){let J=g[X];if(!J)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return typeof z=="number"?J(z):z.map(q=>J(q))}let x={htk:z=>700*(10**(z/2595)-1),kaldi:z=>700*(Math.exp(z/1127)-1),slaney:(z,X=1e3,J=15,q=Math.log(6.4)/27)=>z>=J?X*Math.exp(q*(z-J)):200*z/3};function F(z,X="htk"){let J=x[X];if(!J)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return typeof z=="number"?J(z):z.map(q=>J(q))}function v(z,X){let J=Float64Array.from({length:X.length-1},(ne,ye)=>X[ye+1]-X[ye]),q=Array.from({length:z.length},()=>new Array(X.length));for(let ne=0;ne<z.length;++ne){let ye=q[ne];for(let Y=0;Y<X.length;++Y)ye[Y]=X[Y]-z[ne]}let re=X.length-2,oe=Array.from({length:re},()=>new Array(z.length));for(let ne=0;ne<z.length;++ne){let ye=q[ne];for(let Y=0;Y<re;++Y){let H=-ye[Y]/J[Y],R=ye[Y+2]/J[Y+1];oe[Y][ne]=Math.max(0,Math.min(H,R))}}return oe}function b(z,X,J){let q=(X-z)/(J-1);return Float64Array.from({length:J},(re,oe)=>z+q*oe)}function C(z,X,J,q,re,oe=null,ne="htk",ye=!1){if(oe!==null&&oe!=="slaney")throw new Error('norm must be one of null or "slaney"');if(z<2)throw new Error(`Require num_frequency_bins: ${z} >= 2`);if(J>q)throw new Error(`Require min_frequency: ${J} <= max_frequency: ${q}`);let Y=h(J,ne),H=h(q,ne),R=b(Y,H,X+2),L=F(R,ne),ee;if(ye){let ke=re/((z-1)*2);ee=h(Float64Array.from({length:z},(Ie,Le)=>Le*ke),ne),L=R}else ee=b(0,Math.floor(re/2),z);let ue=v(ee,L);if(oe!==null&&oe==="slaney")for(let ke=0;ke<X;++ke){let Ie=ue[ke],Le=2/(L[ke+2]-L[ke]);for(let rt=0;rt<z;++rt)Ie[rt]*=Le}return ue}function y(z,X,J){let q=new z.constructor(z.length+X+J),re=z.length-1;for(let oe=0;oe<z.length;++oe)q[X+oe]=z[oe];for(let oe=1;oe<=X;++oe)q[X-oe]=z[(0,a.calculateReflectOffset)(oe,re)];for(let oe=1;oe<=J;++oe)q[re+X+oe]=z[(0,a.calculateReflectOffset)(re-oe,re)];return q}function P(z,X,J,q,re){if(J<=0)throw new Error("reference must be greater than zero");if(q<=0)throw new Error("min_value must be greater than zero");J=Math.max(q,J);let oe=Math.log10(J);for(let ne=0;ne<z.length;++ne)z[ne]=X*Math.log10(Math.max(q,z[ne])-oe);if(re!==null){if(re<=0)throw new Error("db_range must be greater than zero");let ne=(0,o.max)(z)[0]-re;for(let ye=0;ye<z.length;++ye)z[ye]=Math.max(z[ye],ne)}return z}function I(z,X=1,J=1e-5,q=null){return P(z,20,X,J,q)}function f(z,X=1,J=1e-10,q=null){return P(z,10,X,J,q)}async function E(z,X,J,q,{fft_length:re=null,power:oe=1,center:ne=!0,pad_mode:ye="reflect",onesided:Y=!0,preemphasis:H=null,preemphasis_htk_flavor:R=!0,mel_filters:L=null,mel_floor:ee=1e-10,log_mel:ue=null,reference:ke=1,min_value:Ie=1e-10,db_range:Le=null,remove_dc_offset:rt=null,min_num_frames:we=null,max_num_frames:A=null,do_pad:le=!0,transpose:ge=!1,mel_offset:be=0}={}){let Ae=X.length;if(re===null&&(re=J),J>re)throw Error(`frame_length (${J}) may not be larger than fft_length (${re})`);if(Ae!==J)throw new Error(`Length of the window (${Ae}) must equal frame_length (${J})`);if(q<=0)throw new Error("hop_length must be greater than zero");if(oe===null&&L!==null)throw new Error("You have provided `mel_filters` but `power` is `None`. Mel spectrogram computation is not yet supported for complex-valued spectrogram. Specify `power` to fix this issue.");if(!R)throw new Error("`preemphasis_htk_flavor=false` is not currently supported.");if(ne)switch(ye){case"reflect":{let Qe=Math.floor((re-1)/2)+1;z=y(z,Qe,Qe);break}case"constant":{let Qe=Math.floor(re/2),je=new z.constructor(z.length+2*Qe);je.set(z,Qe),z=je;break}default:throw new Error(`pad_mode="${ye}" not implemented yet.`)}let ve=Math.floor(1+Math.floor((z.length-J)/q));we!==null&&ve<we&&(ve=we);let pe=Y?Math.floor(re/2)+1:re,Pe=ve,fe=ve;A!==null&&(A>ve?le&&(fe=A):fe=Pe=A);let Te=new o.FFT(re),We=new Float64Array(re),$e=new Float64Array(Te.outputBufferSize),Re=new Float32Array(pe*fe);for(let Qe=0;Qe<Pe;++Qe){let je=Qe*q,pt=Math.min(z.length-je,J);pt!==J&&We.fill(0,0,J);for(let Ke=0;Ke<pt;++Ke)We[Ke]=z[je+Ke];if(rt){let Ke=0;for(let At=0;At<pt;++At)Ke+=We[At];let bt=Ke/pt;for(let At=0;At<pt;++At)We[At]-=bt}if(H!==null){for(let Ke=pt-1;Ke>=1;--Ke)We[Ke]-=H*We[Ke-1];We[0]*=1-H}for(let Ke=0;Ke<X.length;++Ke)We[Ke]*=X[Ke];Te.realTransform($e,We);for(let Ke=0;Ke<pe;++Ke){let bt=Ke<<1;Re[Ke*fe+Qe]=$e[bt]**2+$e[bt+1]**2}}if(oe!==null&&oe!==2){let Qe=oe/2;for(let je=0;je<Re.length;++je)Re[je]**=Qe}let Ne=L.length,ot=await(0,i.matmul)(new i.Tensor("float32",L.flat(),[Ne,pe]),new i.Tensor("float32",Re,[pe,fe]));ge&&(ot=ot.transpose(1,0));let De=ot.data;for(let Qe=0;Qe<De.length;++Qe)De[Qe]=be+Math.max(ee,De[Qe]);if(oe!==null&&ue!==null){let Qe=Math.min(De.length,Pe*Ne);switch(ue){case"log":for(let je=0;je<Qe;++je)De[je]=Math.log(De[je]);break;case"log10":for(let je=0;je<Qe;++je)De[je]=Math.log10(De[je]);break;case"dB":if(oe===1)I(De,ke,Ie,Le);else if(oe===2)f(De,ke,Ie,Le);else throw new Error(`Cannot use log_mel option '${ue}' with power ${oe}`);break;default:throw new Error(`log_mel must be one of null, 'log', 'log10' or 'dB'. Got '${ue}'`)}}return ot}function D(z,X,{periodic:J=!0,frame_length:q=null,center:re=!0}={}){let oe=J?z+1:z,ne;switch(X){case"boxcar":ne=new Float64Array(oe).fill(1);break;case"hann":case"hann_window":ne=u(oe);break;case"hamming":ne=d(oe);break;case"povey":ne=u(oe).map(ye=>Math.pow(ye,.85));break;default:throw new Error(`Unknown window type ${X}.`)}if(J&&(ne=ne.subarray(0,z)),q===null)return ne;if(z>q)throw new Error(`Length of the window (${z}) may not be larger than frame_length (${q})`);return ne}function O(z,X){let J=44,q=new ArrayBuffer(J+z.length*4),re=new DataView(q);U(re,0,"RIFF"),re.setUint32(4,36+z.length*4,!0),U(re,8,"WAVE"),U(re,12,"fmt "),re.setUint32(16,16,!0),re.setUint16(20,3,!0),re.setUint16(22,1,!0),re.setUint32(24,X,!0),re.setUint32(28,X*4,!0),re.setUint16(32,4,!0),re.setUint16(34,32,!0),U(re,36,"data"),re.setUint32(40,z.length*4,!0);for(let oe=0;oe<z.length;++oe,J+=4)re.setFloat32(J,z[oe],!0);return q}function U(z,X,J){for(let q=0;q<J.length;++q)z.setUint8(X+q,J.charCodeAt(q))}class W{constructor(X,J){this.audio=X,this.sampling_rate=J}toWav(){return O(this.audio,this.sampling_rate)}toBlob(){let X=this.toWav();return new Blob([X],{type:"audio/wav"})}async save(X){let J;if(n.apis.IS_BROWSER_ENV){if(n.apis.IS_WEBWORKER_ENV)throw new Error("Unable to save a file from a Web Worker.");J=a.saveBlob}else if(n.apis.IS_FS_AVAILABLE)J=async(q,re)=>{let oe=await re.arrayBuffer();l.writeFileSync(q,Buffer.from(oe))};else throw new Error("Unable to save because filesystem is disabled in this environment.");await J(X,this.toBlob())}}}),"./src/utils/constants.js":((e,r,t)=>{t.r(r),t.d(r,{CHAT_TEMPLATE_NAME:()=>l,CONFIG_NAME:()=>o,FEATURE_EXTRACTOR_NAME:()=>a,GENERATION_CONFIG_NAME:()=>c,GITHUB_ISSUE_URL:()=>s,IMAGE_PROCESSOR_NAME:()=>n,PROCESSOR_NAME:()=>i});let s="https://github.com/huggingface/transformers.js/issues/new/choose",o="config.json",a="preprocessor_config.json",n=a,i="processor_config.json",l="chat_template.jinja",c="generation_config.json"}),"./src/utils/core.js":((e,r,t)=>{t.r(r),t.d(r,{calculateDimensions:()=>c,calculateReflectOffset:()=>g,count:()=>v,dispatchCallback:()=>s,escapeRegExp:()=>a,isIntegralNumber:()=>i,isNullishDimension:()=>l,isTypedArray:()=>n,len:()=>F,mergeArrays:()=>u,pick:()=>x,pop:()=>_,product:()=>d,reverseDictionary:()=>o,saveBlob:()=>h});function s(b,C){b&&b(C)}function o(b){return Object.fromEntries(Object.entries(b).map(([C,y])=>[y,C]))}function a(b){return b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function n(b){return b?.prototype?.__proto__?.constructor?.name==="TypedArray"}function i(b){return Number.isInteger(b)||typeof b=="bigint"}function l(b){return b==null||b===-1}function c(b){let C=[],y=b;for(;Array.isArray(y);)C.push(y.length),y=y[0];return C}function _(b,C,y=void 0){let P=b[C];if(P!==void 0)return delete b[C],P;if(y===void 0)throw Error(`Key ${C} does not exist in object.`);return y}function u(...b){return Array.prototype.concat.apply([],b)}function d(...b){return b.reduce((C,y)=>C.flatMap(P=>y.map(I=>[P,I])))}function g(b,C){return Math.abs((b+C)%(2*C)-C)}function h(b,C){let y=URL.createObjectURL(C),P=document.createElement("a");P.href=y,P.download=b,P.click(),P.remove(),URL.revokeObjectURL(y)}function x(b,C){return Object.assign({},...C.map(y=>{if(b[y]!==void 0)return{[y]:b[y]}}))}function F(b){let C=0;for(let y of b)++C;return C}function v(b,C){let y=0;for(let P of b)P===C&&++y;return y}}),"./src/utils/data-structures.js":((e,r,t)=>{t.r(r),t.d(r,{CharTrie:()=>o,DictionarySplitter:()=>l,LRUCache:()=>c,PriorityQueue:()=>s,TokenLattice:()=>n});class s{constructor(u=(g,h)=>g>h,d=1/0){this._heap=[],this._comparator=u,this._maxSize=d}get size(){return this._heap.length}isEmpty(){return this.size===0}peek(){return this._heap[0]}push(...u){return this.extend(u)}extend(u){for(let d of u)if(this.size<this._maxSize)this._heap.push(d),this._siftUp();else{let g=this._smallest();this._comparator(d,this._heap[g])&&(this._heap[g]=d,this._siftUpFrom(g))}return this.size}pop(){let u=this.peek(),d=this.size-1;return d>0&&this._swap(0,d),this._heap.pop(),this._siftDown(),u}replace(u){let d=this.peek();return this._heap[0]=u,this._siftDown(),d}_parent(u){return(u+1>>>1)-1}_left(u){return(u<<1)+1}_right(u){return u+1<<1}_greater(u,d){return this._comparator(this._heap[u],this._heap[d])}_swap(u,d){let g=this._heap[u];this._heap[u]=this._heap[d],this._heap[d]=g}_siftUp(){this._siftUpFrom(this.size-1)}_siftUpFrom(u){for(;u>0&&this._greater(u,this._parent(u));)this._swap(u,this._parent(u)),u=this._parent(u)}_siftDown(){let u=0;for(;this._left(u)<this.size&&this._greater(this._left(u),u)||this._right(u)<this.size&&this._greater(this._right(u),u);){let d=this._right(u)<this.size&&this._greater(this._right(u),this._left(u))?this._right(u):this._left(u);this._swap(u,d),u=d}}_smallest(){return 2**Math.floor(Math.log2(this.size))-1}}class o{constructor(){this.root=a.default()}extend(u){for(let d of u)this.push(d)}push(u){let d=this.root;for(let g of u){let h=d.children.get(g);h===void 0&&(h=a.default(),d.children.set(g,h)),d=h}d.isLeaf=!0}*commonPrefixSearch(u){let d=this.root;if(d===void 0)return;let g="";for(let h of u){if(g+=h,d=d.children.get(h),d===void 0)return;d.isLeaf&&(yield g)}}}class a{constructor(u,d){this.isLeaf=u,this.children=d}static default(){return new a(!1,new Map)}}class n{constructor(u,d,g){this.chars=Array.from(u),this.len=this.chars.length,this.bosTokenId=d,this.eosTokenId=g,this.nodes=[],this.beginNodes=Array.from({length:this.len+1},()=>[]),this.endNodes=Array.from({length:this.len+1},()=>[]);let h=new i(this.bosTokenId,0,0,0,0),x=new i(this.eosTokenId,1,this.len,0,0);this.nodes.push(h.clone()),this.nodes.push(x.clone()),this.beginNodes[this.len].push(x),this.endNodes[0].push(h)}insert(u,d,g,h){let x=this.nodes.length,F=new i(h,x,u,d,g);this.beginNodes[u].push(F),this.endNodes[u+d].push(F),this.nodes.push(F)}viterbi(){let u=this.len,d=0;for(;d<=u;){if(this.beginNodes[d].length==0)return[];for(let v of this.beginNodes[d]){v.prev=null;let b=0,C=null;for(let y of this.endNodes[d]){let P=y.backtraceScore+v.score;(C===null||P>b)&&(C=y.clone(),b=P)}if(C!==null)v.prev=C,v.backtraceScore=b;else return[]}++d}let g=[],x=this.beginNodes[u][0].prev;if(x===null)return[];let F=x.clone();for(;F.prev!==null;)g.push(F.clone()),F=F.clone().prev.clone();return g.reverse(),g}piece(u){return this.chars.slice(u.pos,u.pos+u.length).join("")}tokens(){return this.viterbi().map(d=>this.piece(d))}tokenIds(){return this.viterbi().map(d=>d.tokenId)}}class i{constructor(u,d,g,h,x){this.tokenId=u,this.nodeId=d,this.pos=g,this.length=h,this.score=x,this.prev=null,this.backtraceScore=0}clone(){let u=new i(this.tokenId,this.nodeId,this.pos,this.length,this.score);return u.prev=this.prev,u.backtraceScore=this.backtraceScore,u}}class l{constructor(u){this.trie=this._buildTrie(u)}_buildTrie(u){let d=Object.create(null);for(let g of u){let h=d;for(let x=0;x<g.length;++x)h=h[g[x]]??=Object.create(null);h.end=g}return d}split(u){let d=[],g=u.length,h=0,x=0;for(;x<g;){let F=this.trie,v=null,b=x;for(;b<g&&(F=F[u[b]]);)F.end&&(v=F.end),++b;v?(x>h&&d.push(u.slice(h,x)),d.push(v),x+=v.length,h=x):++x}return h<g&&d.push(u.slice(h)),d}}class c{constructor(u){this.capacity=u,this.cache=new Map}get(u){if(!this.cache.has(u))return;let d=this.cache.get(u);return this.cache.delete(u),this.cache.set(u,d),d}put(u,d){this.cache.has(u)&&this.cache.delete(u),this.cache.set(u,d),this.cache.size>this.capacity&&this.cache.delete(this.cache.keys().next().value)}clear(){this.cache.clear()}}}),"./src/utils/devices.js":((e,r,t)=>{t.r(r),t.d(r,{DEVICE_TYPES:()=>s});let s=Object.freeze({auto:"auto",gpu:"gpu",cpu:"cpu",wasm:"wasm",webgpu:"webgpu",cuda:"cuda",dml:"dml",webnn:"webnn","webnn-npu":"webnn-npu","webnn-gpu":"webnn-gpu","webnn-cpu":"webnn-cpu"})}),"./src/utils/dtypes.js":((e,r,t)=>{t.r(r),t.d(r,{DATA_TYPES:()=>n,DEFAULT_DEVICE_DTYPE_MAPPING:()=>i,DEFAULT_DTYPE_SUFFIX_MAPPING:()=>l,isWebGpuFp16Supported:()=>a});var s=t("./src/env.js"),o=t("./src/utils/devices.js");let a=(function(){let c;return async function(){if(c===void 0)if(!s.apis.IS_WEBGPU_AVAILABLE)c=!1;else try{c=(await navigator.gpu.requestAdapter()).features.has("shader-f16")}catch{c=!1}return c}})(),n=Object.freeze({auto:"auto",fp32:"fp32",fp16:"fp16",q8:"q8",int8:"int8",uint8:"uint8",q4:"q4",bnb4:"bnb4",q4f16:"q4f16"}),i=Object.freeze({[o.DEVICE_TYPES.wasm]:n.q8}),l=Object.freeze({[n.fp32]:"",[n.fp16]:"_fp16",[n.int8]:"_int8",[n.uint8]:"_uint8",[n.q8]:"_quantized",[n.q4]:"_q4",[n.q4f16]:"_q4f16",[n.bnb4]:"_bnb4"})}),"./src/utils/generic.js":((e,r,t)=>{t.r(r),t.d(r,{Callable:()=>s});let s=class{constructor(){let o=function(...a){return o._call(...a)};return Object.setPrototypeOf(o,new.target.prototype)}_call(...o){throw Error("Must implement _call method in subclass")}}}),"./src/utils/hub.js":((e,r,t)=>{t.r(r),t.d(r,{MAX_EXTERNAL_DATA_CHUNKS:()=>i,getFile:()=>g,getModelFile:()=>b,getModelJSON:()=>y,getModelText:()=>C});var s=t("?7992"),o=t("?5af5"),a=t("./src/env.js"),n=t("./src/utils/core.js");let i=100,l={txt:"text/plain",html:"text/html",css:"text/css",js:"text/javascript",json:"application/json",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif"};class c{constructor(E){if(this.filePath=E,this.headers=new Headers,this.exists=s.existsSync(E),this.exists){this.status=200,this.statusText="OK";let D=s.statSync(E);this.headers.set("content-length",D.size.toString()),this.updateContentType();let O=s.createReadStream(E);this.body=new ReadableStream({start(U){O.on("data",W=>U.enqueue(W)),O.on("end",()=>U.close()),O.on("error",W=>U.error(W))},cancel(){O.destroy()}})}else this.status=404,this.statusText="Not Found",this.body=null}updateContentType(){let E=this.filePath.toString().split(".").pop().toLowerCase();this.headers.set("content-type",l[E]??"application/octet-stream")}clone(){let E=new c(this.filePath);return E.exists=this.exists,E.status=this.status,E.statusText=this.statusText,E.headers=new Headers(this.headers),E}async arrayBuffer(){return(await s.promises.readFile(this.filePath)).buffer}async blob(){let E=await s.promises.readFile(this.filePath);return new Blob([E],{type:this.headers.get("content-type")})}async text(){return await s.promises.readFile(this.filePath,"utf8")}async json(){return JSON.parse(await this.text())}}function _(f,E=null,D=null){let O;try{O=new URL(f)}catch{return!1}return!(E&&!E.includes(O.protocol)||D&&!D.includes(O.hostname))}let u=/^(\b[\w\-.]+\b\/)?\b[\w\-.]{1,96}\b$/;function d(f){return!(!u.test(f)||f.includes("..")||f.includes("--")||f.endsWith(".git")||f.endsWith(".ipynb"))}async function g(f){if(a.env.useFS&&!_(f,["http:","https:","blob:"]))return new c(f instanceof URL?f.protocol==="file:"?f.pathname:f.toString():f);if(typeof process<"u"&&process?.release?.name==="node"){let E=!!process.env?.TESTING_REMOTELY,D=a.env.version,O=new Headers;if(O.set("User-Agent",`transformers.js/${D}; is_ci/${E};`),_(f,["http:","https:"],["huggingface.co","hf.co"])){let W=process.env?.HF_TOKEN??process.env?.HF_ACCESS_TOKEN;W&&O.set("Authorization",`Bearer ${W}`)}return fetch(f,{headers:O})}else return fetch(f)}let h={400:"Bad request error occurred while trying to load file",401:"Unauthorized access to file",403:"Forbidden access to file",404:"Could not locate file",408:"Request timeout error occurred while trying to load file",500:"Internal server error error occurred while trying to load file",502:"Bad gateway error occurred while trying to load file",503:"Service unavailable error occurred while trying to load file",504:"Gateway timeout error occurred while trying to load file"};function x(f,E,D){if(!D)return null;let O=h[f]??`Error (${f}) occurred while trying to load file`;throw Error(`${O}: "${E}".`)}class F{constructor(E){this.path=E}async match(E){let D=o.join(this.path,E),O=new c(D);if(O.exists)return O}async put(E,D,O=void 0){let U=o.join(this.path,E);try{let W=D.headers.get("Content-Length"),z=parseInt(W??"0"),X=0;await s.promises.mkdir(o.dirname(U),{recursive:!0});let J=s.createWriteStream(U),q=D.body.getReader();for(;;){let{done:re,value:oe}=await q.read();if(re)break;await new Promise((ye,Y)=>{J.write(oe,H=>{if(H){Y(H);return}ye()})}),X+=oe.length;let ne=z?X/z*100:0;O?.({progress:ne,loaded:X,total:z})}J.close()}catch(W){try{await s.promises.unlink(U)}catch{}throw W}}}async function v(f,...E){for(let D of E)try{let O=await f.match(D);if(O)return O}catch{continue}}async function b(f,E,D=!0,O={},U=!1){if(!a.env.allowLocalModels){if(O.local_files_only)throw Error("Invalid configuration detected: local models are disabled (`env.allowLocalModels=false`) but you have requested to only use local models (`local_files_only=true`).");if(!a.env.allowRemoteModels)throw Error("Invalid configuration detected: both local and remote models are disabled. Fix by setting `env.allowLocalModels` or `env.allowRemoteModels` to `true`.")}(0,n.dispatchCallback)(O.progress_callback,{status:"initiate",name:f,file:E});let W;if(!W&&a.env.useCustomCache){if(!a.env.customCache)throw Error("`env.useCustomCache=true`, but `env.customCache` is not defined.");if(!a.env.customCache.match||!a.env.customCache.put)throw new Error("`env.customCache` must be an object which implements the `match` and `put` functions of the Web Cache API. For more information, see https://developer.mozilla.org/en-US/docs/Web/API/Cache");W=a.env.customCache}if(!W&&a.env.useBrowserCache){if(typeof caches>"u")throw Error("Browser cache is not available in this environment.");try{W=await caches.open("transformers-cache")}catch(ee){console.warn("An error occurred while opening the browser cache:",ee)}}if(!W&&a.env.useFSCache){if(!a.apis.IS_FS_AVAILABLE)throw Error("File System Cache is not available in this environment.");W=new F(O.cache_dir??a.env.cacheDir)}let z=O.revision??"main",X=I(f,E),J=d(f),q=J?I(a.env.localModelPath,X):X,re=I(a.env.remoteHost,a.env.remotePathTemplate.replaceAll("{model}",f).replaceAll("{revision}",encodeURIComponent(z)),E),oe,ne=W instanceof F?z==="main"?X:I(f,z,E):re,ye=!1,Y;W&&(Y=await v(W,q,ne));let H=Y!==void 0;if(Y===void 0){if(a.env.allowLocalModels)if(_(X,["http:","https:"])){if(O.local_files_only)throw new Error(`\`local_files_only=true\`, but attempted to load a remote file from: ${X}.`);if(!a.env.allowRemoteModels)throw new Error(`\`env.allowRemoteModels=false\`, but attempted to load a remote file from: ${X}.`)}else try{Y=await g(q),oe=q}catch(ue){console.warn(`Unable to load from local path "${q}": "${ue}"`)}if(Y===void 0||Y.status===404){if(O.local_files_only||!a.env.allowRemoteModels){if(D)throw Error(`\`local_files_only=true\` or \`env.allowRemoteModels=false\` and file was not found locally at "${q}".`);return null}if(!J)throw Error(`Local file missing at "${q}" and download aborted due to invalid model ID "${f}".`);if(Y=await g(re),Y.status!==200)return x(Y.status,re,D);oe=ne}ye=W&&typeof Response<"u"&&Y instanceof Response&&Y.status===200}(0,n.dispatchCallback)(O.progress_callback,{status:"download",name:f,file:E});let R;if(!(a.apis.IS_NODE_ENV&&U)){let ee;O.progress_callback?H&&typeof navigator<"u"&&/firefox/i.test(navigator.userAgent)?(ee=new Uint8Array(await Y.arrayBuffer()),(0,n.dispatchCallback)(O.progress_callback,{status:"progress",name:f,file:E,progress:100,loaded:ee.length,total:ee.length})):ee=await P(Y,ue=>{(0,n.dispatchCallback)(O.progress_callback,{status:"progress",name:f,file:E,...ue})}):ee=new Uint8Array(await Y.arrayBuffer()),R=ee}if(ye&&oe&&await W.match(oe)===void 0)if(R)await W.put(oe,new Response(R,{headers:Y.headers})).catch(ee=>{console.warn(`Unable to add response to browser cache: ${ee}.`)});else{let ee=O.progress_callback?ue=>(0,n.dispatchCallback)(O.progress_callback,{status:"progress",name:f,file:E,...ue}):void 0;await W.put(oe,Y,ee)}if((0,n.dispatchCallback)(O.progress_callback,{status:"done",name:f,file:E}),R){if(!a.apis.IS_NODE_ENV&&U)throw new Error("Cannot return path in a browser environment.");return R}if(Y instanceof c)return Y.filePath;let L=await W?.match(oe);if(L instanceof c)return L.filePath;if(L instanceof Response)return new Uint8Array(await L.arrayBuffer());if(typeof L=="string")return L;throw new Error("Unable to get model file path or buffer.")}async function C(f,E,D=!0,O={}){let U=await b(f,E,D,O,!1);return U===null?null:new TextDecoder("utf-8").decode(U)}async function y(f,E,D=!0,O={}){let U=await C(f,E,D,O);return U===null?{}:JSON.parse(U)}async function P(f,E){let D=f.headers.get("Content-Length");D===null&&console.warn("Unable to determine content-length from response headers. Will expand buffer when needed.");let O=parseInt(D??"0"),U=new Uint8Array(O),W=0,z=f.body.getReader();async function X(){let{done:J,value:q}=await z.read();if(J)return;let re=W+q.length;if(re>O){O=re;let ne=new Uint8Array(O);ne.set(U),U=ne}U.set(q,W),W=re;let oe=W/O*100;return E({progress:oe,loaded:W,total:O}),X()}return await X(),U}function I(...f){return f=f.map((E,D)=>(D&&(E=E.replace(new RegExp("^/"),"")),D!==f.length-1&&(E=E.replace(new RegExp("/$"),"")),E)),f.join("/")}}),"./src/utils/image.js":((e,r,t)=>{t.r(r),t.d(r,{RawImage:()=>h,load_image:()=>x});var s=t("./src/utils/core.js"),o=t("./src/utils/hub.js"),a=t("./src/env.js"),n=t("./src/utils/tensor.js"),i=t("?2b25");let l,c,_,u=a.apis.IS_BROWSER_ENV||a.apis.IS_WEBWORKER_ENV;if(u)l=(F,v)=>{if(!self.OffscreenCanvas)throw new Error("OffscreenCanvas not supported by this browser.");return new self.OffscreenCanvas(F,v)},_=self.createImageBitmap,c=self.ImageData;else if(i)_=async F=>{let b=(await F.metadata()).channels,{data:C,info:y}=await F.rotate().raw().toBuffer({resolveWithObject:!0}),P=new h(new Uint8ClampedArray(C),y.width,y.height,y.channels);return b!==void 0&&b!==y.channels&&P.convert(b),P};else throw new Error("Unable to load image processing library.");let d={0:"nearest",1:"lanczos",2:"bilinear",3:"bicubic",4:"box",5:"hamming"},g=new Map([["png","image/png"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["gif","image/gif"]]);class h{constructor(v,b,C,y){this.data=v,this.width=b,this.height=C,this.channels=y}get size(){return[this.width,this.height]}static async read(v){if(v instanceof h)return v;if(typeof v=="string"||v instanceof URL)return await this.fromURL(v);if(v instanceof Blob)return await this.fromBlob(v);if(typeof HTMLCanvasElement<"u"&&v instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&v instanceof OffscreenCanvas)return this.fromCanvas(v);throw new Error(`Unsupported input type: ${typeof v}`)}static fromCanvas(v){if(!u)throw new Error("fromCanvas() is only supported in browser environments.");let C=v.getContext("2d").getImageData(0,0,v.width,v.height).data;return new h(C,v.width,v.height,4)}static async fromURL(v){let b=await(0,o.getFile)(v);if(b.status!==200)throw new Error(`Unable to read image from "${v}" (${b.status} ${b.statusText})`);let C=await b.blob();return this.fromBlob(C)}static async fromBlob(v){if(u){let b=await _(v),C=l(b.width,b.height).getContext("2d");return C.drawImage(b,0,0),new this(C.getImageData(0,0,b.width,b.height).data,b.width,b.height,4)}else{let b=i(await v.arrayBuffer());return await _(b)}}static fromTensor(v,b="CHW"){if(v.dims.length!==3)throw new Error(`Tensor should have 3 dimensions, but has ${v.dims.length} dimensions.`);if(b==="CHW")v=v.transpose(1,2,0);else if(b!=="HWC")throw new Error(`Unsupported channel format: ${b}`);if(!(v.data instanceof Uint8ClampedArray||v.data instanceof Uint8Array))throw new Error(`Unsupported tensor type: ${v.type}`);switch(v.dims[2]){case 1:case 2:case 3:case 4:return new h(v.data,v.dims[1],v.dims[0],v.dims[2]);default:throw new Error(`Unsupported number of channels: ${v.dims[2]}`)}}grayscale(){if(this.channels===1)return this;let v=new Uint8ClampedArray(this.width*this.height*1);switch(this.channels){case 3:case 4:for(let b=0,C=0;b<this.data.length;b+=this.channels){let y=this.data[b],P=this.data[b+1],I=this.data[b+2];v[C++]=Math.round(.2989*y+.587*P+.114*I)}break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(v,this.width,this.height,1)}rgb(){if(this.channels===3)return this;let v=new Uint8ClampedArray(this.width*this.height*3);switch(this.channels){case 1:for(let b=0,C=0;b<this.data.length;++b)v[C++]=this.data[b],v[C++]=this.data[b],v[C++]=this.data[b];break;case 4:for(let b=0,C=0;b<this.data.length;b+=4)v[C++]=this.data[b],v[C++]=this.data[b+1],v[C++]=this.data[b+2];break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(v,this.width,this.height,3)}rgba(){if(this.channels===4)return this;let v=new Uint8ClampedArray(this.width*this.height*4);switch(this.channels){case 1:for(let b=0,C=0;b<this.data.length;++b)v[C++]=this.data[b],v[C++]=this.data[b],v[C++]=this.data[b],v[C++]=255;break;case 3:for(let b=0,C=0;b<this.data.length;b+=3)v[C++]=this.data[b],v[C++]=this.data[b+1],v[C++]=this.data[b+2],v[C++]=255;break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(v,this.width,this.height,4)}putAlpha(v){if(v.width!==this.width||v.height!==this.height)throw new Error(`Expected mask size to be ${this.width}x${this.height}, but got ${v.width}x${v.height}`);if(v.channels!==1)throw new Error(`Expected mask to have 1 channel, but got ${v.channels}`);let b=this.data,C=v.data,y=this.width*this.height;if(this.channels===3){let P=new Uint8ClampedArray(y*4);for(let I=0,f=0,E=0;I<y;++I)P[E++]=b[f++],P[E++]=b[f++],P[E++]=b[f++],P[E++]=C[I];return this._update(P,this.width,this.height,4)}else if(this.channels===4){for(let P=0;P<y;++P)b[4*P+3]=C[P];return this}throw new Error(`Expected image to have 3 or 4 channels, but got ${this.channels}`)}async resize(v,b,{resample:C=2}={}){if(this.width===v&&this.height===b)return this;let y=d[C]??C,P=(0,s.isNullishDimension)(v),I=(0,s.isNullishDimension)(b);if(P&&I)return this;if(P?v=b/this.height*this.width:I&&(b=v/this.width*this.height),u){let f=this.channels,E=this.toCanvas(),D=l(v,b).getContext("2d");return D.drawImage(E,0,0,v,b),new h(D.getImageData(0,0,v,b).data,v,b,4).convert(f)}else{let f=this.toSharp();switch(y){case"box":case"hamming":(y==="box"||y==="hamming")&&(console.warn(`Resampling method ${y} is not yet supported. Using bilinear instead.`),y="bilinear");case"nearest":case"bilinear":case"bicubic":f=f.affine([v/this.width,0,0,b/this.height],{interpolator:y});break;case"lanczos":f=f.resize({width:v,height:b,fit:"fill",kernel:"lanczos3"});break;default:throw new Error(`Resampling method ${y} is not supported.`)}return await _(f)}}async pad([v,b,C,y]){if(v=Math.max(v,0),b=Math.max(b,0),C=Math.max(C,0),y=Math.max(y,0),v===0&&b===0&&C===0&&y===0)return this;if(u){let P=this.channels,I=this.toCanvas(),f=this.width+v+b,E=this.height+C+y,D=l(f,E).getContext("2d");return D.drawImage(I,0,0,this.width,this.height,v,C,this.width,this.height),new h(D.getImageData(0,0,f,E).data,f,E,4).convert(P)}else{let P=this.toSharp().extend({left:v,right:b,top:C,bottom:y});return await _(P)}}async crop([v,b,C,y]){if(v=Math.max(v,0),b=Math.max(b,0),C=Math.min(C,this.width-1),y=Math.min(y,this.height-1),v===0&&b===0&&C===this.width-1&&y===this.height-1)return this;let P=C-v+1,I=y-b+1;if(u){let f=this.channels,E=this.toCanvas(),D=l(P,I).getContext("2d");return D.drawImage(E,v,b,P,I,0,0,P,I),new h(D.getImageData(0,0,P,I).data,P,I,4).convert(f)}else{let f=this.toSharp().extract({left:v,top:b,width:P,height:I});return await _(f)}}async center_crop(v,b){if(this.width===v&&this.height===b)return this;let C=(this.width-v)/2,y=(this.height-b)/2;if(u){let P=this.channels,I=this.toCanvas(),f=l(v,b).getContext("2d"),E=0,D=0,O=0,U=0;return C>=0?E=C:O=-C,y>=0?D=y:U=-y,f.drawImage(I,E,D,v,b,O,U,v,b),new h(f.getImageData(0,0,v,b).data,v,b,4).convert(P)}else{let P=this.toSharp();if(C>=0&&y>=0)P=P.extract({left:Math.floor(C),top:Math.floor(y),width:v,height:b});else if(C<=0&&y<=0){let I=Math.floor(-y),f=Math.floor(-C);P=P.extend({top:I,left:f,right:v-this.width-f,bottom:b-this.height-I})}else{let I=[0,0],f=0;y<0?(I[0]=Math.floor(-y),I[1]=b-this.height-I[0]):f=Math.floor(y);let E=[0,0],D=0;C<0?(E[0]=Math.floor(-C),E[1]=v-this.width-E[0]):D=Math.floor(C),P=P.extend({top:I[0],bottom:I[1],left:E[0],right:E[1]}).extract({left:D,top:f,width:v,height:b})}return await _(P)}}async toBlob(v="image/png",b=1){if(!u)throw new Error("toBlob() is only supported in browser environments.");return await this.toCanvas().convertToBlob({type:v,quality:b})}toTensor(v="CHW"){let b=new n.Tensor("uint8",new Uint8Array(this.data),[this.height,this.width,this.channels]);if(v!=="HWC")if(v==="CHW")b=b.permute(2,0,1);else throw new Error(`Unsupported channel format: ${v}`);return b}toCanvas(){if(!u)throw new Error("toCanvas() is only supported in browser environments.");let v=this.clone().rgba(),b=l(v.width,v.height),C=new c(v.data,v.width,v.height);return b.getContext("2d").putImageData(C,0,0),b}split(){let{data:v,width:b,height:C,channels:y}=this,P=v.constructor,I=v.length/y,f=Array.from({length:y},()=>new P(I));for(let E=0;E<I;++E){let D=y*E;for(let O=0;O<y;++O)f[O][E]=v[D+O]}return f.map(E=>new h(E,b,C,1))}_update(v,b,C,y=null){return this.data=v,this.width=b,this.height=C,y!==null&&(this.channels=y),this}clone(){return new h(this.data.slice(),this.width,this.height,this.channels)}convert(v){if(this.channels===v)return this;switch(v){case 1:this.grayscale();break;case 3:this.rgb();break;case 4:this.rgba();break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this}async save(v){if(u){if(a.apis.IS_WEBWORKER_ENV)throw new Error("Unable to save an image from a Web Worker.");let b=v.split(".").pop().toLowerCase(),C=g.get(b)??"image/png",y=await this.toBlob(C);(0,s.saveBlob)(v,y)}else{if(a.apis.IS_FS_AVAILABLE)return await this.toSharp().toFile(v);throw new Error("Unable to save the image because filesystem is disabled in this environment.")}}toSharp(){if(u)throw new Error("toSharp() is only supported in server-side environments.");return i(this.data,{raw:{width:this.width,height:this.height,channels:this.channels}})}}let x=h.read.bind(h)}),"./src/utils/maths.js":((e,r,t)=>{t.r(r),t.d(r,{FFT:()=>x,bankers_round:()=>b,cos_sim:()=>l,dot:()=>i,dynamic_time_warping:()=>C,interpolate_data:()=>s,log_softmax:()=>n,magnitude:()=>c,max:()=>u,medianFilter:()=>F,min:()=>_,permute_data:()=>o,round:()=>v,softmax:()=>a});function s(y,[P,I,f],[E,D],O="bilinear",U=!1){let W=D/f,z=E/I,X=new y.constructor(E*D*P),J=I*f,q=E*D;for(let re=0;re<E;++re)for(let oe=0;oe<D;++oe){let ne=re*D+oe,ye=(oe+.5)/W-.5,Y=(re+.5)/z-.5,H=Math.floor(ye),R=Math.floor(Y),L=Math.min(H+1,f-1),ee=Math.min(R+1,I-1);H=Math.max(H,0),R=Math.max(R,0);let ue=ye-H,ke=Y-R,Ie=(1-ue)*(1-ke),Le=ue*(1-ke),rt=(1-ue)*ke,we=ue*ke,A=R*f,le=ee*f,ge=A+H,be=A+L,Ae=le+H,ve=le+L;for(let pe=0;pe<P;++pe){let Pe=pe*J;X[pe*q+ne]=Ie*y[Pe+ge]+Le*y[Pe+be]+rt*y[Pe+Ae]+we*y[Pe+ve]}}return X}function o(y,P,I){let f=new Array(I.length),E=new Array(I.length);for(let U=I.length-1,W=1;U>=0;--U)E[U]=W,f[U]=P[I[U]],W*=f[U];let D=I.map((U,W)=>E[I.indexOf(W)]),O=new y.constructor(y.length);for(let U=0;U<y.length;++U){let W=0;for(let z=P.length-1,X=U;z>=0;--z)W+=X%P[z]*D[z],X=Math.floor(X/P[z]);O[W]=y[U]}return[O,f]}function a(y){let P=u(y)[0],I=y.map(D=>Math.exp(D-P)),f=I.reduce((D,O)=>D+O,0);return I.map(D=>D/f)}function n(y){let P=u(y)[0],I=0;for(let D=0;D<y.length;++D)I+=Math.exp(y[D]-P);let f=Math.log(I);return y.map(D=>D-P-f)}function i(y,P){let I=0;for(let f=0;f<y.length;++f)I+=y[f]*P[f];return I}function l(y,P){let I=i(y,P),f=c(y),E=c(P);return I/(f*E)}function c(y){return Math.sqrt(y.reduce((P,I)=>P+I*I,0))}function _(y){if(y.length===0)throw Error("Array must not be empty");let P=y[0],I=0;for(let f=1;f<y.length;++f)y[f]<P&&(P=y[f],I=f);return[P,I]}function u(y){if(y.length===0)throw Error("Array must not be empty");let P=y[0],I=0;for(let f=1;f<y.length;++f)y[f]>P&&(P=y[f],I=f);return[P,I]}function d(y){return y>0&&(y&y-1)===0}class g{constructor(P){if(this.size=P|0,this.size<=1||!d(this.size))throw new Error("FFT size must be a power of two larger than 1");this._csize=P<<1,this.table=new Float64Array(this.size*2);for(let f=0;f<this.table.length;f+=2){let E=Math.PI*f/this.size;this.table[f]=Math.cos(E),this.table[f+1]=-Math.sin(E)}let I=0;for(let f=1;this.size>f;f<<=1)++I;this._width=I%2===0?I-1:I,this._bitrev=new Int32Array(1<<this._width);for(let f=0;f<this._bitrev.length;++f){this._bitrev[f]=0;for(let E=0;E<this._width;E+=2){let D=this._width-E-2;this._bitrev[f]|=(f>>>E&3)<<D}}}createComplexArray(){return new Float64Array(this._csize)}fromComplexArray(P,I){let f=I||new Array(P.length>>>1);for(let E=0;E<P.length;E+=2)f[E>>>1]=P[E];return f}toComplexArray(P,I){let f=I||this.createComplexArray();for(let E=0;E<f.length;E+=2)f[E]=P[E>>>1],f[E+1]=0;return f}transform(P,I){if(P===I)throw new Error("Input and output buffers must be different");this._transform4(P,I,1)}realTransform(P,I){if(P===I)throw new Error("Input and output buffers must be different");this._realTransform4(P,I,1)}inverseTransform(P,I){if(P===I)throw new Error("Input and output buffers must be different");this._transform4(P,I,-1);for(let f=0;f<P.length;++f)P[f]/=this.size}_transform4(P,I,f){let E=this._csize,O=1<<this._width,U=E/O<<1,W,z,X=this._bitrev;if(U===4)for(W=0,z=0;W<E;W+=U,++z){let q=X[z];this._singleTransform2(I,P,W,q,O)}else for(W=0,z=0;W<E;W+=U,++z){let q=X[z];this._singleTransform4(I,P,W,q,O,f)}let J=this.table;for(O>>=2;O>=2;O>>=2){U=E/O<<1;let q=U>>>2;for(W=0;W<E;W+=U){let re=W+q-1;for(let oe=W,ne=0;oe<re;oe+=2,ne+=O){let ye=oe,Y=ye+q,H=Y+q,R=H+q,L=P[ye],ee=P[ye+1],ue=P[Y],ke=P[Y+1],Ie=P[H],Le=P[H+1],rt=P[R],we=P[R+1],A=J[ne],le=f*J[ne+1],ge=ue*A-ke*le,be=ue*le+ke*A,Ae=J[2*ne],ve=f*J[2*ne+1],pe=Ie*Ae-Le*ve,Pe=Ie*ve+Le*Ae,fe=J[3*ne],Te=f*J[3*ne+1],We=rt*fe-we*Te,$e=rt*Te+we*fe,Re=L+pe,Ne=ee+Pe,ot=L-pe,De=ee-Pe,Qe=ge+We,je=be+$e,pt=f*(ge-We),Ke=f*(be-$e);P[ye]=Re+Qe,P[ye+1]=Ne+je,P[Y]=ot+Ke,P[Y+1]=De-pt,P[H]=Re-Qe,P[H+1]=Ne-je,P[R]=ot-Ke,P[R+1]=De+pt}}}}_singleTransform2(P,I,f,E,D){let O=P[E],U=P[E+1],W=P[E+D],z=P[E+D+1];I[f]=O+W,I[f+1]=U+z,I[f+2]=O-W,I[f+3]=U-z}_singleTransform4(P,I,f,E,D,O){let U=D*2,W=D*3,z=P[E],X=P[E+1],J=P[E+D],q=P[E+D+1],re=P[E+U],oe=P[E+U+1],ne=P[E+W],ye=P[E+W+1],Y=z+re,H=X+oe,R=z-re,L=X-oe,ee=J+ne,ue=q+ye,ke=O*(J-ne),Ie=O*(q-ye);I[f]=Y+ee,I[f+1]=H+ue,I[f+2]=R+Ie,I[f+3]=L-ke,I[f+4]=Y-ee,I[f+5]=H-ue,I[f+6]=R-Ie,I[f+7]=L+ke}_realTransform4(P,I,f){let E=this._csize,O=1<<this._width,U=E/O<<1,W,z,X=this._bitrev;if(U===4)for(W=0,z=0;W<E;W+=U,++z){let re=X[z];this._singleRealTransform2(I,P,W,re>>>1,O>>>1)}else for(W=0,z=0;W<E;W+=U,++z){let re=X[z];this._singleRealTransform4(I,P,W,re>>>1,O>>>1,f)}let J=this.table;for(O>>=2;O>=2;O>>=2){U=E/O<<1;let re=U>>>1,oe=re>>>1,ne=oe>>>1;for(W=0;W<E;W+=U)for(let ye=0,Y=0;ye<=ne;ye+=2,Y+=O){let H=W+ye,R=H+oe,L=R+oe,ee=L+oe,ue=P[H],ke=P[H+1],Ie=P[R],Le=P[R+1],rt=P[L],we=P[L+1],A=P[ee],le=P[ee+1],ge=ue,be=ke,Ae=J[Y],ve=f*J[Y+1],pe=Ie*Ae-Le*ve,Pe=Ie*ve+Le*Ae,fe=J[2*Y],Te=f*J[2*Y+1],We=rt*fe-we*Te,$e=rt*Te+we*fe,Re=J[3*Y],Ne=f*J[3*Y+1],ot=A*Re-le*Ne,De=A*Ne+le*Re,Qe=ge+We,je=be+$e,pt=ge-We,Ke=be-$e,bt=pe+ot,At=Pe+De,Lt=f*(pe-ot),fr=f*(Pe-De);if(P[H]=Qe+bt,P[H+1]=je+At,P[R]=pt+fr,P[R+1]=Ke-Lt,ye===0){P[L]=Qe-bt,P[L+1]=je-At;continue}if(ye===ne)continue;let zt=W+oe-ye,yr=W+re-ye;P[zt]=pt-f*fr,P[zt+1]=-Ke-f*Lt,P[yr]=Qe-f*bt,P[yr+1]=-je+f*At}}let q=E>>>1;for(let re=2;re<q;re+=2)P[E-re]=P[re],P[E-re+1]=-P[re+1]}_singleRealTransform2(P,I,f,E,D){let O=P[E],U=P[E+D];I[f]=O+U,I[f+1]=0,I[f+2]=O-U,I[f+3]=0}_singleRealTransform4(P,I,f,E,D,O){let U=D*2,W=D*3,z=P[E],X=P[E+D],J=P[E+U],q=P[E+W],re=z+J,oe=z-J,ne=X+q,ye=O*(X-q);I[f]=re+ne,I[f+1]=0,I[f+2]=oe,I[f+3]=-ye,I[f+4]=re-ne,I[f+5]=0,I[f+6]=oe,I[f+7]=ye}}class h{constructor(P){let I=2*(P-1),f=2*(2*P-1),E=2**Math.ceil(Math.log2(f));this.bufferSize=E,this._a=I;let D=new Float64Array(f),O=new Float64Array(E);this._chirpBuffer=new Float64Array(E),this._buffer1=new Float64Array(E),this._buffer2=new Float64Array(E),this._outBuffer1=new Float64Array(E),this._outBuffer2=new Float64Array(E);let U=-2*Math.PI/P,W=Math.cos(U),z=Math.sin(U);for(let X=0;X<f>>1;++X){let J=(X+1-P)**2/2,q=Math.sqrt(W**2+z**2)**J,re=J*Math.atan2(z,W),oe=2*X;D[oe]=q*Math.cos(re),D[oe+1]=q*Math.sin(re),O[oe]=D[oe],O[oe+1]=-D[oe+1]}this._slicedChirpBuffer=D.subarray(I,f),this._f=new g(E>>1),this._f.transform(this._chirpBuffer,O)}_transform(P,I,f){let E=this._buffer1,D=this._buffer2,O=this._outBuffer1,U=this._outBuffer2,W=this._chirpBuffer,z=this._slicedChirpBuffer,X=this._a;if(f)for(let J=0;J<z.length;J+=2){let q=J+1,re=J>>1,oe=I[re];E[J]=oe*z[J],E[q]=oe*z[q]}else for(let J=0;J<z.length;J+=2){let q=J+1;E[J]=I[J]*z[J]-I[q]*z[q],E[q]=I[J]*z[q]+I[q]*z[J]}this._f.transform(O,E);for(let J=0;J<W.length;J+=2){let q=J+1;D[J]=O[J]*W[J]-O[q]*W[q],D[q]=O[J]*W[q]+O[q]*W[J]}this._f.inverseTransform(U,D);for(let J=0;J<U.length;J+=2){let q=U[J+X],re=U[J+X+1],oe=z[J],ne=z[J+1];P[J]=q*oe-re*ne,P[J+1]=q*ne+re*oe}}transform(P,I){this._transform(P,I,!1)}realTransform(P,I){this._transform(P,I,!0)}}class x{constructor(P){this.fft_length=P,this.isPowerOfTwo=d(P),this.isPowerOfTwo?(this.fft=new g(P),this.outputBufferSize=2*P):(this.fft=new h(P),this.outputBufferSize=this.fft.bufferSize)}realTransform(P,I){this.fft.realTransform(P,I)}transform(P,I){this.fft.transform(P,I)}}function F(y,P){if(P%2===0||P<=0)throw new Error("Window size must be a positive odd number");let I=new y.constructor(y.length),f=new y.constructor(P),E=Math.floor(P/2);for(let D=0;D<y.length;++D){let O=0;for(let U=-E;U<=E;++U){let W=D+U;W<0?W=Math.abs(W):W>=y.length&&(W=2*(y.length-1)-W),f[O++]=y[W]}f.sort(),I[D]=f[E]}return I}function v(y,P){let I=Math.pow(10,P);return Math.round(y*I)/I}function b(y){let P=Math.round(y);return Math.abs(y)%1===.5?P%2===0?P:P-1:P}function C(y){let P=y.length,I=y[0].length,f=[P+1,I+1],E=Array.from({length:f[0]},()=>Array(f[1]).fill(1/0));E[0][0]=0;let D=Array.from({length:f[0]},()=>Array(f[1]).fill(-1));for(let X=1;X<f[1];++X)for(let J=1;J<f[0];++J){let q=E[J-1][X-1],re=E[J-1][X],oe=E[J][X-1],ne,ye;q<re&&q<oe?(ne=q,ye=0):re<q&&re<oe?(ne=re,ye=1):(ne=oe,ye=2),E[J][X]=y[J-1][X-1]+ne,D[J][X]=ye}for(let X=0;X<f[1];++X)D[0][X]=2;for(let X=0;X<f[0];++X)D[X][0]=1;let O=P,U=I,W=[],z=[];for(;O>0||U>0;)switch(W.push(O-1),z.push(U-1),D[O][U]){case 0:--O,--U;break;case 1:--O;break;case 2:--U;break;default:throw new Error(`Internal error in dynamic time warping. Unexpected trace[${O}, ${U}]. Please file a bug report.`)}return W.reverse(),z.reverse(),[W,z]}}),"./src/utils/tensor.js":((e,r,t)=>{t.r(r),t.d(r,{DataTypeMap:()=>n,Tensor:()=>i,cat:()=>I,full:()=>z,full_like:()=>X,interpolate:()=>_,interpolate_4d:()=>u,layer_norm:()=>b,matmul:()=>d,mean:()=>O,mean_pooling:()=>v,ones:()=>J,ones_like:()=>q,permute:()=>c,quantize_embeddings:()=>Y,rand:()=>ne,randn:()=>ye,rfft:()=>g,slice:()=>F,stack:()=>f,std_mean:()=>D,topk:()=>h,zeros:()=>re,zeros_like:()=>oe});var s=t("./src/utils/maths.js"),o=t("./src/backends/onnx.js"),a=t("./src/ops/registry.js");let n=Object.freeze({float32:Float32Array,float16:typeof Float16Array<"u"?Float16Array:Uint16Array,float64:Float64Array,string:Array,int8:Int8Array,uint8:Uint8Array,int16:Int16Array,uint16:Uint16Array,int32:Int32Array,uint32:Uint32Array,int64:BigInt64Array,uint64:BigUint64Array,bool:Uint8Array,uint4:Uint8Array,int4:Int8Array});class i{get dims(){return this.ort_tensor.dims}set dims(R){this.ort_tensor.dims=R}get type(){return this.ort_tensor.type}get data(){return this.ort_tensor.data}get size(){return this.ort_tensor.size}get location(){return this.ort_tensor.location}ort_tensor;constructor(...R){return(0,o.isONNXTensor)(R[0])?this.ort_tensor=R[0]:this.ort_tensor=new o.Tensor(R[0],R[1],R[2]),new Proxy(this,{get:(L,ee)=>{if(typeof ee=="string"){let ue=Number(ee);if(Number.isInteger(ue))return L._getitem(ue)}return L[ee]},set:(L,ee,ue)=>L[ee]=ue})}dispose(){this.ort_tensor.dispose()}*[Symbol.iterator](){let[R,...L]=this.dims;if(L.length>0){let ee=L.reduce((ue,ke)=>ue*ke);for(let ue=0;ue<R;++ue)yield this._subarray(ue,ee,L)}else yield*this.data}_getitem(R){let[L,...ee]=this.dims;if(R=P(R,L),ee.length>0){let ue=ee.reduce((ke,Ie)=>ke*Ie);return this._subarray(R,ue,ee)}else return new i(this.type,[this.data[R]],ee)}indexOf(R){let L=this.data;for(let ee=0;ee<L.length;++ee)if(L[ee]==R)return ee;return-1}_subarray(R,L,ee){let ue=R*L,ke=(R+1)*L,Ie="subarray"in this.data?this.data.subarray(ue,ke):this.data.slice(ue,ke);return new i(this.type,Ie,ee)}item(){let R=this.data;if(R.length!==1)throw new Error(`a Tensor with ${R.length} elements cannot be converted to Scalar`);return R[0]}tolist(){return l(this.data,this.dims)}sigmoid(){return this.clone().sigmoid_()}sigmoid_(){let R=this.data;for(let L=0;L<R.length;++L)R[L]=1/(1+Math.exp(-R[L]));return this}map(R){return this.clone().map_(R)}map_(R){let L=this.data;for(let ee=0;ee<L.length;++ee)L[ee]=R(L[ee],ee,L);return this}mul(R){return this.clone().mul_(R)}mul_(R){let L=this.data;for(let ee=0;ee<L.length;++ee)L[ee]*=R;return this}div(R){return this.clone().div_(R)}div_(R){let L=this.data;for(let ee=0;ee<L.length;++ee)L[ee]/=R;return this}add(R){return this.clone().add_(R)}add_(R){let L=this.data;for(let ee=0;ee<L.length;++ee)L[ee]+=R;return this}sub(R){return this.clone().sub_(R)}sub_(R){let L=this.data;for(let ee=0;ee<L.length;++ee)L[ee]-=R;return this}clone(){return new i(this.type,this.data.slice(),this.dims.slice())}slice(...R){let L=[],ee=[];for(let A=0;A<this.dims.length;++A){let le=R[A];if(le==null)ee.push([0,this.dims[A]]),L.push(this.dims[A]);else if(typeof le=="number")le=P(le,this.dims[A],A),ee.push([le,le+1]);else if(Array.isArray(le)&&le.length===2){let[ge,be]=le;if(ge=ge===null?0:P(ge,this.dims[A],A,!1),be=be===null?this.dims[A]:P(be,this.dims[A],A,!1),ge>be)throw new Error(`Invalid slice: ${le}`);let Ae=[Math.max(ge,0),Math.min(be,this.dims[A])];ee.push(Ae),L.push(Ae[1]-Ae[0])}else throw new Error(`Invalid slice: ${le}`)}let ue=ee.map(([A,le])=>le-A),ke=ue.reduce((A,le)=>A*le),Ie=this.data,Le=new Ie.constructor(ke),rt=this.stride(),we=!0;for(let A=1;A<ue.length;++A)if(ee[A][0]!==0||ee[A][1]!==this.dims[A]){we=!1;break}if(we){let A=ee[0][0]*rt[0],le=ee[0][1]*rt[0];if(ArrayBuffer.isView(Ie))Le.set(Ie.subarray(A,le));else if(Array.isArray(Ie)){let ge=Ie.slice(A,le);for(let be=0;be<ge.length;++be)Le[be]=ge[be]}else throw new Error("Unsupported data type for slicing")}else for(let A=0;A<ke;++A){let le=0;for(let ge=ue.length-1,be=A;ge>=0;--ge){let Ae=ue[ge];le+=(be%Ae+ee[ge][0])*rt[ge],be=Math.floor(be/Ae)}Le[A]=Ie[le]}return new i(this.type,Le,L)}permute(...R){return c(this,R)}transpose(...R){return this.permute(...R)}sum(R=null,L=!1){return this.norm(1,R,L)}norm(R="fro",L=null,ee=!1){if(R==="fro")R=2;else if(typeof R=="string")throw Error(`Unsupported norm: ${R}`);let ue=this.data,ke=(we,A)=>we+A**R;if(L===null){let we=ue.reduce(ke,0)**(1/R);return new i(this.type,[we],[])}let[Ie,Le,rt]=E(ke,this,L,ee);if(R!==1)for(let we=0;we<Le.length;++we)Le[we]=Le[we]**(1/R);return new i(Ie,Le,rt)}normalize_(R=2,L=1){L=P(L,this.dims.length);let ee=this.norm(R,L,!0),ue=this.data,ke=ee.data;for(let Ie=0;Ie<ue.length;++Ie){let Le=0;for(let rt=this.dims.length-1,we=Ie,A=1;rt>=0;--rt){let le=this.dims[rt];if(rt!==L){let ge=we%le;Le+=ge*A,A*=this.dims[rt]}we=Math.floor(we/le)}ue[Ie]/=ke[Le]}return this}normalize(R=2,L=1){return this.clone().normalize_(R,L)}stride(){return U(this.dims)}squeeze(R=null){return new i(this.type,this.data,C(this.dims,R))}squeeze_(R=null){return this.dims=C(this.dims,R),this}unsqueeze(R=null){return new i(this.type,this.data,y(this.dims,R))}unsqueeze_(R=null){return this.dims=y(this.dims,R),this}flatten_(R=0,L=-1){L=(L+this.dims.length)%this.dims.length;let ee=this.dims.slice(0,R),ue=this.dims.slice(R,L+1),ke=this.dims.slice(L+1);return this.dims=[...ee,ue.reduce((Ie,Le)=>Ie*Le,1),...ke],this}flatten(R=0,L=-1){return this.clone().flatten_(R,L)}view(...R){let L=-1;for(let ue=0;ue<R.length;++ue)if(R[ue]===-1){if(L!==-1)throw new Error("Only one dimension can be inferred");L=ue}let ee=this.data;if(L!==-1){let ue=R.reduce((ke,Ie,Le)=>Le!==L?ke*Ie:ke,1);R[L]=ee.length/ue}return new i(this.type,ee,R)}neg_(){let R=this.data;for(let L=0;L<R.length;++L)R[L]=-R[L];return this}neg(){return this.clone().neg_()}gt(R){let L=new Uint8Array(this.data.length),ee=this.data;for(let ue=0;ue<ee.length;++ue)L[ue]=ee[ue]>R?1:0;return new i("bool",L,this.dims)}lt(R){let L=new Uint8Array(this.data.length),ee=this.data;for(let ue=0;ue<ee.length;++ue)L[ue]=ee[ue]<R?1:0;return new i("bool",L,this.dims)}clamp_(R,L){let ee=this.data;for(let ue=0;ue<ee.length;++ue)ee[ue]=Math.min(Math.max(ee[ue],R),L);return this}clamp(R,L){return this.clone().clamp_(R,L)}round_(){let R=this.data;for(let L=0;L<R.length;++L)R[L]=Math.round(R[L]);return this}round(){return this.clone().round_()}mean(R=null,L=!1){return O(this,R,L)}min(R=null,L=!1){if(R===null){let Ie=(0,s.min)(this.data)[0];return new i(this.type,[Ie],[])}let[ee,ue,ke]=E((Ie,Le)=>Math.min(Ie,Le),this,R,L,1/0);return new i(ee,ue,ke)}max(R=null,L=!1){if(R===null){let Ie=(0,s.max)(this.data)[0];return new i(this.type,[Ie],[])}let[ee,ue,ke]=E((Ie,Le)=>Math.max(Ie,Le),this,R,L,-1/0);return new i(ee,ue,ke)}argmin(R=null,L=!1){if(R!==null)throw new Error("`dim !== null` not yet implemented.");let ee=(0,s.min)(this.data)[1];return new i("int64",[BigInt(ee)],[])}argmax(R=null,L=!1){if(R!==null)throw new Error("`dim !== null` not yet implemented.");let ee=(0,s.max)(this.data)[1];return new i("int64",[BigInt(ee)],[])}to(R){if(this.type===R)return this;if(!n.hasOwnProperty(R))throw new Error(`Unsupported type: ${R}`);let L,ee=["int64","uint64"].includes(this.type),ue=["int64","uint64"].includes(R);return ee&&!ue?L=Number:!ee&&ue&&(["float16","float32","float64"].includes(this.type)?L=ke=>BigInt(Math.floor(ke)):L=BigInt),new i(R,n[R].from(this.data,L),this.dims)}}function l(H,R){let L=H.length,ee=R.reduce((ke,Ie)=>ke*Ie);if(L!==ee)throw Error(`cannot reshape array of size ${L} into shape (${R})`);let ue=H;for(let ke=R.length-1;ke>=0;ke--)ue=ue.reduce((Ie,Le)=>{let rt=Ie[Ie.length-1];return rt.length<R[ke]?rt.push(Le):Ie.push([Le]),Ie},[[]]);return ue[0]}function c(H,R){let[L,ee]=(0,s.permute_data)(H.data,H.dims,R);return new i(H.type,L,ee)}function _(H,[R,L],ee="bilinear",ue=!1){let ke=H.dims.at(-3)??1,Ie=H.dims.at(-2),Le=H.dims.at(-1),rt=(0,s.interpolate_data)(H.data,[ke,Ie,Le],[R,L],ee,ue);return new i(H.type,rt,[ke,R,L])}async function u(H,{size:R=null,mode:L="bilinear"}={}){if(H.dims.length!==4)throw new Error("`interpolate_4d` currently only supports 4D input.");if(!R)throw new Error("`interpolate_4d` requires a `size` argument.");let ee;if(R.length===2)ee=[...H.dims.slice(0,2),...R];else if(R.length===3)ee=[H.dims[0],...R];else if(R.length===4)ee=R;else throw new Error("`size` must be of length 2, 3, or 4.");let ue;if(L==="nearest")ue=await a.TensorOpRegistry.nearest_interpolate_4d;else if(L==="bilinear")ue=await a.TensorOpRegistry.bilinear_interpolate_4d;else if(L==="bicubic")ue=await a.TensorOpRegistry.bicubic_interpolate_4d;else throw new Error(`Unsupported mode: ${L}`);let ke=new i("int64",new BigInt64Array(ee.map(BigInt)),[ee.length]);return await ue({x:H,s:ke})}async function d(H,R){return await(await a.TensorOpRegistry.matmul)({a:H,b:R})}async function g(H,R){return await(await a.TensorOpRegistry.rfft)({x:H,a:R})}async function h(H,R){let L=await a.TensorOpRegistry.top_k;return R==null?R=H.dims.at(-1):R=Math.min(R,H.dims.at(-1)),await L({x:H,k:new i("int64",[BigInt(R)],[1])})}let x=H=>new i("int64",H,[H.length]);async function F(H,R,L,ee,ue){return await(await a.TensorOpRegistry.slice)({x:H,s:x(R),e:x(L),a:x(ee),t:x(ue??new Array(ee.length).fill(1))})}function v(H,R){let L=H.data,ee=R.data,ue=[H.dims[0],H.dims[2]],ke=new L.constructor(ue[0]*ue[1]),[Ie,Le,rt]=H.dims,we=0;for(let A=0;A<Ie;++A){let le=A*rt*Le;for(let ge=0;ge<rt;++ge){let be=0,Ae=0,ve=A*Le,pe=le+ge;for(let fe=0;fe<Le;++fe){let Te=Number(ee[ve+fe]);Ae+=Te,be+=L[pe+fe*rt]*Te}let Pe=be/Ae;ke[we++]=Pe}}return new i(H.type,ke,ue)}function b(H,R,{eps:L=1e-5}={}){if(H.dims.length!==2)throw new Error("`layer_norm` currently only supports 2D input.");let[ee,ue]=H.dims;if(R.length!==1&&R[0]!==ue)throw new Error("`normalized_shape` must be a 1D array with shape `[input.dims[1]]`.");let[ke,Ie]=D(H,1,0,!0),Le=ke.data,rt=Ie.data,we=H.data,A=new we.constructor(we.length);for(let le=0;le<ee;++le){let ge=le*ue;for(let be=0;be<ue;++be){let Ae=ge+be;A[Ae]=(we[Ae]-rt[le])/(Le[le]+L)}}return new i(H.type,A,H.dims)}function C(H,R){return H=H.slice(),R===null?H=H.filter(L=>L!==1):typeof R=="number"?H[R]===1&&H.splice(R,1):Array.isArray(R)&&(H=H.filter((L,ee)=>L!==1||!R.includes(ee))),H}function y(H,R){return R=P(R,H.length+1),H=H.slice(),H.splice(R,0,1),H}function P(H,R,L=null,ee=!0){if(H<-R||H>=R){if(ee)throw new Error(`IndexError: index ${H} is out of bounds for dimension${L===null?"":" "+L} with size ${R}`);return H<-R?0:R}return H<0&&(H=(H%R+R)%R),H}function I(H,R=0){R=P(R,H[0].dims.length);let L=H[0].dims.slice();L[R]=H.reduce((Ie,Le)=>Ie+Le.dims[R],0);let ee=L.reduce((Ie,Le)=>Ie*Le,1),ue=new H[0].data.constructor(ee),ke=H[0].type;if(R===0){let Ie=0;for(let Le of H){let rt=Le.data;ue.set(rt,Ie),Ie+=rt.length}}else{let Ie=0;for(let Le=0;Le<H.length;++Le){let{data:rt,dims:we}=H[Le];for(let A=0;A<rt.length;++A){let le=0;for(let ge=we.length-1,be=A,Ae=1;ge>=0;--ge){let ve=we[ge],pe=be%ve;ge===R&&(pe+=Ie),le+=pe*Ae,Ae*=L[ge],be=Math.floor(be/ve)}ue[le]=rt[A]}Ie+=we[R]}}return new i(ke,ue,L)}function f(H,R=0){return I(H.map(L=>L.unsqueeze(R)),R)}function E(H,R,L=null,ee=!1,ue=null){let ke=R.data,Ie=R.dims;L=P(L,Ie.length);let Le=Ie.slice();Le[L]=1;let rt=new ke.constructor(ke.length/Ie[L]);ue!==null&&rt.fill(ue);for(let we=0;we<ke.length;++we){let A=0;for(let le=Ie.length-1,ge=we,be=1;le>=0;--le){let Ae=Ie[le];if(le!==L){let ve=ge%Ae;A+=ve*be,be*=Le[le]}ge=Math.floor(ge/Ae)}rt[A]=H(rt[A],ke[we],we,A)}return ee||Le.splice(L,1),[R.type,rt,Le]}function D(H,R=null,L=1,ee=!1){let ue=H.data,ke=H.dims;if(R===null){let be=ue.reduce((Pe,fe)=>Pe+fe,0)/ue.length,Ae=Math.sqrt(ue.reduce((Pe,fe)=>Pe+(fe-be)**2,0)/(ue.length-L)),ve=new i(H.type,[be],[]);return[new i(H.type,[Ae],[]),ve]}R=P(R,ke.length);let Ie=O(H,R,ee),Le=Ie.data,[rt,we,A]=E((ge,be,Ae,ve)=>ge+(be-Le[ve])**2,H,R,ee);for(let ge=0;ge<we.length;++ge)we[ge]=Math.sqrt(we[ge]/(ke[R]-L));return[new i(rt,we,A),Ie]}function O(H,R=null,L=!1){let ee=H.dims,ue=H.data;if(R===null){let rt=ue.reduce((we,A)=>we+A,0);return new i(H.type,[rt/ue.length],[])}R=P(R,ee.length);let[ke,Ie,Le]=E((rt,we)=>rt+we,H,R,L);if(ee[R]!==1)for(let rt=0;rt<Ie.length;++rt)Ie[rt]/=ee[R];return new i(ke,Ie,Le)}function U(H){let R=new Array(H.length);for(let L=H.length-1,ee=1;L>=0;--L)R[L]=ee,ee*=H[L];return R}function W(H,R,L,ee){let ue=H.reduce((ke,Ie)=>ke*Ie,1);return new i(L,new ee(ue).fill(R),H)}function z(H,R){let L,ee;if(typeof R=="number")L="float32",ee=Float32Array;else if(typeof R=="bigint")L="int64",ee=BigInt64Array;else if(typeof R=="boolean")L="bool",ee=Uint8Array;else throw new Error(`Unsupported data type: ${typeof R}`);return W(H,R,L,ee)}function X(H,R){return z(H.dims,R)}function J(H){return W(H,1n,"int64",BigInt64Array)}function q(H){return J(H.dims)}function re(H){return W(H,0n,"int64",BigInt64Array)}function oe(H){return re(H.dims)}function ne(H){let R=H.reduce((L,ee)=>L*ee,1);return new i("float32",Float32Array.from({length:R},()=>Math.random()),H)}function ye(H){let R=H.reduce((ee,ue)=>ee*ue,1);function L(){let ee=1-Math.random(),ue=1-Math.random();return Math.sqrt(-2*Math.log(ee))*Math.cos(2*Math.PI*ue)}return new i("float32",Float32Array.from({length:R},()=>L()),H)}function Y(H,R){if(H.dims.length!==2)throw new Error("The tensor must have 2 dimensions");if(H.dims.at(-1)%8!==0)throw new Error("The last dimension of the tensor must be a multiple of 8");if(!["binary","ubinary"].includes(R))throw new Error("The precision must be either 'binary' or 'ubinary'");let L=R==="binary",ee=L?"int8":"uint8",ue=L?Int8Array:Uint8Array,ke=H.data,Ie=new ue(ke.length/8);for(let Le=0;Le<ke.length;++Le){let rt=ke[Le]>0?1:0,we=Math.floor(Le/8),A=Le%8;Ie[we]|=rt<<7-A,L&&A===0&&(Ie[we]-=128)}return new i(ee,Ie,[H.dims[0],H.dims[1]/8])}}),"./src/utils/video.js":((e,r,t)=>{t.r(r),t.d(r,{RawVideo:()=>n,RawVideoFrame:()=>a,load_video:()=>i});var s=t("./src/utils/image.js"),o=t("./src/env.js");class a{constructor(c,_){this.image=c,this.timestamp=_}}class n{constructor(c,_){c.length>0&&c[0]instanceof s.RawImage&&(c=c.map((u,d)=>new a(u,(d+1)/(c.length+1)*_))),this.frames=c,this.duration=_}get width(){return this.frames[0].image.width}get height(){return this.frames[0].image.height}get fps(){return this.frames.length/this.duration}}async function i(l,{num_frames:c=null,fps:_=null}={}){if(!o.apis.IS_BROWSER_ENV)throw new Error("`load_video` is currently only supported in browser environments.");if(c==null&&_==null)throw new Error("Either num_frames or fps must be provided.");let u=[],d=document.createElement("video");if(d.crossOrigin="anonymous",d.muted=!0,typeof l=="string")d.src=l;else if(l instanceof Blob)d.src=URL.createObjectURL(l);else if(l instanceof HTMLVideoElement)d.src=l.src;else throw new Error("Invalid URL or video element provided.");if(await new Promise(C=>d.onloadedmetadata=C),d.seekable.start(0)===d.seekable.end(0)){let y=await(await fetch(d.src)).blob();d.src=URL.createObjectURL(y),await new Promise(P=>d.onloadedmetadata=P)}let g=d.duration,h,x;c!=null?(h=c,x=c===1?0:g/(c-1)):(x=1/_,h=Math.floor(g/x));let F=[];for(let C=0;C<h;++C)F.push(c===1?g/2:C*x);let v=document.createElement("canvas");v.width=d.videoWidth,v.height=d.videoHeight;let b=v.getContext("2d",{willReadFrequently:!0});for(let C of F){d.currentTime=C,await new Promise(f=>{d.onseeked=f}),b.drawImage(d,0,0,v.width,v.height);let y=b.getImageData(0,0,v.width,v.height),P=new s.RawImage(y.data,v.width,v.height,4),I=new a(P,C);u.push(I)}return d.remove(),new n(u,g)}})},$0={};function Vt(e){var r=$0[e];if(r!==void 0)return r.exports;var t=$0[e]={exports:{}};return gE[e](t,t.exports,Vt),t.exports}(()=>{var e=Object.getPrototypeOf?t=>Object.getPrototypeOf(t):t=>t.__proto__,r;Vt.t=function(t,s){if(s&1&&(t=this(t)),s&8||typeof t=="object"&&t&&(s&4&&t.__esModule||s&16&&typeof t.then=="function"))return t;var o=Object.create(null);Vt.r(o);var a={};r=r||[null,e({}),e([]),e(e)];for(var n=s&2&&t;typeof n=="object"&&!~r.indexOf(n);n=e(n))Object.getOwnPropertyNames(n).forEach(i=>a[i]=()=>t[i]);return a.default=()=>t,Vt.d(o,a),o}})();Vt.d=(e,r)=>{for(var t in r)Vt.o(r,t)&&!Vt.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})};Vt.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);Vt.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var p={};(()=>{Vt.r(p),Vt.d(p,{ASTFeatureExtractor:()=>u.ASTFeatureExtractor,ASTForAudioClassification:()=>t.ASTForAudioClassification,ASTModel:()=>t.ASTModel,ASTPreTrainedModel:()=>t.ASTPreTrainedModel,AlbertForMaskedLM:()=>t.AlbertForMaskedLM,AlbertForQuestionAnswering:()=>t.AlbertForQuestionAnswering,AlbertForSequenceClassification:()=>t.AlbertForSequenceClassification,AlbertModel:()=>t.AlbertModel,AlbertPreTrainedModel:()=>t.AlbertPreTrainedModel,AlbertTokenizer:()=>s.AlbertTokenizer,ArceeForCausalLM:()=>t.ArceeForCausalLM,ArceeModel:()=>t.ArceeModel,ArceePreTrainedModel:()=>t.ArceePreTrainedModel,AudioClassificationPipeline:()=>r.AudioClassificationPipeline,AutoConfig:()=>o.AutoConfig,AutoFeatureExtractor:()=>d.AutoFeatureExtractor,AutoImageProcessor:()=>x.AutoImageProcessor,AutoModel:()=>t.AutoModel,AutoModelForAudioClassification:()=>t.AutoModelForAudioClassification,AutoModelForAudioFrameClassification:()=>t.AutoModelForAudioFrameClassification,AutoModelForAudioTextToText:()=>t.AutoModelForAudioTextToText,AutoModelForCTC:()=>t.AutoModelForCTC,AutoModelForCausalLM:()=>t.AutoModelForCausalLM,AutoModelForDepthEstimation:()=>t.AutoModelForDepthEstimation,AutoModelForDocumentQuestionAnswering:()=>t.AutoModelForDocumentQuestionAnswering,AutoModelForImageClassification:()=>t.AutoModelForImageClassification,AutoModelForImageFeatureExtraction:()=>t.AutoModelForImageFeatureExtraction,AutoModelForImageMatting:()=>t.AutoModelForImageMatting,AutoModelForImageSegmentation:()=>t.AutoModelForImageSegmentation,AutoModelForImageTextToText:()=>t.AutoModelForImageTextToText,AutoModelForImageToImage:()=>t.AutoModelForImageToImage,AutoModelForMaskGeneration:()=>t.AutoModelForMaskGeneration,AutoModelForMaskedLM:()=>t.AutoModelForMaskedLM,AutoModelForNormalEstimation:()=>t.AutoModelForNormalEstimation,AutoModelForObjectDetection:()=>t.AutoModelForObjectDetection,AutoModelForPoseEstimation:()=>t.AutoModelForPoseEstimation,AutoModelForQuestionAnswering:()=>t.AutoModelForQuestionAnswering,AutoModelForSemanticSegmentation:()=>t.AutoModelForSemanticSegmentation,AutoModelForSeq2SeqLM:()=>t.AutoModelForSeq2SeqLM,AutoModelForSequenceClassification:()=>t.AutoModelForSequenceClassification,AutoModelForSpeechSeq2Seq:()=>t.AutoModelForSpeechSeq2Seq,AutoModelForTextToSpectrogram:()=>t.AutoModelForTextToSpectrogram,AutoModelForTextToWaveform:()=>t.AutoModelForTextToWaveform,AutoModelForTokenClassification:()=>t.AutoModelForTokenClassification,AutoModelForUniversalSegmentation:()=>t.AutoModelForUniversalSegmentation,AutoModelForVision2Seq:()=>t.AutoModelForVision2Seq,AutoModelForXVector:()=>t.AutoModelForXVector,AutoModelForZeroShotObjectDetection:()=>t.AutoModelForZeroShotObjectDetection,AutoProcessor:()=>b.AutoProcessor,AutoTokenizer:()=>s.AutoTokenizer,AutomaticSpeechRecognitionPipeline:()=>r.AutomaticSpeechRecognitionPipeline,BackgroundRemovalPipeline:()=>r.BackgroundRemovalPipeline,BartForConditionalGeneration:()=>t.BartForConditionalGeneration,BartForSequenceClassification:()=>t.BartForSequenceClassification,BartModel:()=>t.BartModel,BartPretrainedModel:()=>t.BartPretrainedModel,BartTokenizer:()=>s.BartTokenizer,BaseModelOutput:()=>t.BaseModelOutput,BaseStreamer:()=>C.BaseStreamer,BeitFeatureExtractor:()=>h.BeitFeatureExtractor,BeitForImageClassification:()=>t.BeitForImageClassification,BeitModel:()=>t.BeitModel,BeitPreTrainedModel:()=>t.BeitPreTrainedModel,BertForMaskedLM:()=>t.BertForMaskedLM,BertForQuestionAnswering:()=>t.BertForQuestionAnswering,BertForSequenceClassification:()=>t.BertForSequenceClassification,BertForTokenClassification:()=>t.BertForTokenClassification,BertModel:()=>t.BertModel,BertPreTrainedModel:()=>t.BertPreTrainedModel,BertTokenizer:()=>s.BertTokenizer,BitImageProcessor:()=>h.BitImageProcessor,BlenderbotForConditionalGeneration:()=>t.BlenderbotForConditionalGeneration,BlenderbotModel:()=>t.BlenderbotModel,BlenderbotPreTrainedModel:()=>t.BlenderbotPreTrainedModel,BlenderbotSmallForConditionalGeneration:()=>t.BlenderbotSmallForConditionalGeneration,BlenderbotSmallModel:()=>t.BlenderbotSmallModel,BlenderbotSmallPreTrainedModel:()=>t.BlenderbotSmallPreTrainedModel,BlenderbotSmallTokenizer:()=>s.BlenderbotSmallTokenizer,BlenderbotTokenizer:()=>s.BlenderbotTokenizer,BloomForCausalLM:()=>t.BloomForCausalLM,BloomModel:()=>t.BloomModel,BloomPreTrainedModel:()=>t.BloomPreTrainedModel,BloomTokenizer:()=>s.BloomTokenizer,CLIPFeatureExtractor:()=>h.CLIPFeatureExtractor,CLIPImageProcessor:()=>h.CLIPImageProcessor,CLIPModel:()=>t.CLIPModel,CLIPPreTrainedModel:()=>t.CLIPPreTrainedModel,CLIPSegForImageSegmentation:()=>t.CLIPSegForImageSegmentation,CLIPSegModel:()=>t.CLIPSegModel,CLIPSegPreTrainedModel:()=>t.CLIPSegPreTrainedModel,CLIPTextModel:()=>t.CLIPTextModel,CLIPTextModelWithProjection:()=>t.CLIPTextModelWithProjection,CLIPTokenizer:()=>s.CLIPTokenizer,CLIPVisionModel:()=>t.CLIPVisionModel,CLIPVisionModelWithProjection:()=>t.CLIPVisionModelWithProjection,CamembertForMaskedLM:()=>t.CamembertForMaskedLM,CamembertForQuestionAnswering:()=>t.CamembertForQuestionAnswering,CamembertForSequenceClassification:()=>t.CamembertForSequenceClassification,CamembertForTokenClassification:()=>t.CamembertForTokenClassification,CamembertModel:()=>t.CamembertModel,CamembertPreTrainedModel:()=>t.CamembertPreTrainedModel,CamembertTokenizer:()=>s.CamembertTokenizer,CausalLMOutput:()=>t.CausalLMOutput,CausalLMOutputWithPast:()=>t.CausalLMOutputWithPast,ChineseCLIPFeatureExtractor:()=>h.ChineseCLIPFeatureExtractor,ChineseCLIPModel:()=>t.ChineseCLIPModel,ChineseCLIPPreTrainedModel:()=>t.ChineseCLIPPreTrainedModel,ClapAudioModelWithProjection:()=>t.ClapAudioModelWithProjection,ClapFeatureExtractor:()=>u.ClapFeatureExtractor,ClapModel:()=>t.ClapModel,ClapPreTrainedModel:()=>t.ClapPreTrainedModel,ClapTextModelWithProjection:()=>t.ClapTextModelWithProjection,ClassifierFreeGuidanceLogitsProcessor:()=>P.ClassifierFreeGuidanceLogitsProcessor,CodeGenForCausalLM:()=>t.CodeGenForCausalLM,CodeGenModel:()=>t.CodeGenModel,CodeGenPreTrainedModel:()=>t.CodeGenPreTrainedModel,CodeGenTokenizer:()=>s.CodeGenTokenizer,CodeLlamaTokenizer:()=>s.CodeLlamaTokenizer,CohereForCausalLM:()=>t.CohereForCausalLM,CohereModel:()=>t.CohereModel,CoherePreTrainedModel:()=>t.CoherePreTrainedModel,CohereTokenizer:()=>s.CohereTokenizer,ConvBertForMaskedLM:()=>t.ConvBertForMaskedLM,ConvBertForQuestionAnswering:()=>t.ConvBertForQuestionAnswering,ConvBertForSequenceClassification:()=>t.ConvBertForSequenceClassification,ConvBertForTokenClassification:()=>t.ConvBertForTokenClassification,ConvBertModel:()=>t.ConvBertModel,ConvBertPreTrainedModel:()=>t.ConvBertPreTrainedModel,ConvBertTokenizer:()=>s.ConvBertTokenizer,ConvNextFeatureExtractor:()=>h.ConvNextFeatureExtractor,ConvNextForImageClassification:()=>t.ConvNextForImageClassification,ConvNextImageProcessor:()=>h.ConvNextImageProcessor,ConvNextModel:()=>t.ConvNextModel,ConvNextPreTrainedModel:()=>t.ConvNextPreTrainedModel,ConvNextV2ForImageClassification:()=>t.ConvNextV2ForImageClassification,ConvNextV2Model:()=>t.ConvNextV2Model,ConvNextV2PreTrainedModel:()=>t.ConvNextV2PreTrainedModel,DFineForObjectDetection:()=>t.DFineForObjectDetection,DFineModel:()=>t.DFineModel,DFinePreTrainedModel:()=>t.DFinePreTrainedModel,DINOv3ConvNextModel:()=>t.DINOv3ConvNextModel,DINOv3ConvNextPreTrainedModel:()=>t.DINOv3ConvNextPreTrainedModel,DINOv3ViTImageProcessor:()=>h.DINOv3ViTImageProcessor,DINOv3ViTModel:()=>t.DINOv3ViTModel,DINOv3ViTPreTrainedModel:()=>t.DINOv3ViTPreTrainedModel,DPTFeatureExtractor:()=>h.DPTFeatureExtractor,DPTForDepthEstimation:()=>t.DPTForDepthEstimation,DPTImageProcessor:()=>h.DPTImageProcessor,DPTModel:()=>t.DPTModel,DPTPreTrainedModel:()=>t.DPTPreTrainedModel,DacDecoderModel:()=>t.DacDecoderModel,DacDecoderOutput:()=>t.DacDecoderOutput,DacEncoderModel:()=>t.DacEncoderModel,DacEncoderOutput:()=>t.DacEncoderOutput,DacFeatureExtractor:()=>u.DacFeatureExtractor,DacModel:()=>t.DacModel,DacPreTrainedModel:()=>t.DacPreTrainedModel,DataTypeMap:()=>l.DataTypeMap,DebertaForMaskedLM:()=>t.DebertaForMaskedLM,DebertaForQuestionAnswering:()=>t.DebertaForQuestionAnswering,DebertaForSequenceClassification:()=>t.DebertaForSequenceClassification,DebertaForTokenClassification:()=>t.DebertaForTokenClassification,DebertaModel:()=>t.DebertaModel,DebertaPreTrainedModel:()=>t.DebertaPreTrainedModel,DebertaTokenizer:()=>s.DebertaTokenizer,DebertaV2ForMaskedLM:()=>t.DebertaV2ForMaskedLM,DebertaV2ForQuestionAnswering:()=>t.DebertaV2ForQuestionAnswering,DebertaV2ForSequenceClassification:()=>t.DebertaV2ForSequenceClassification,DebertaV2ForTokenClassification:()=>t.DebertaV2ForTokenClassification,DebertaV2Model:()=>t.DebertaV2Model,DebertaV2PreTrainedModel:()=>t.DebertaV2PreTrainedModel,DebertaV2Tokenizer:()=>s.DebertaV2Tokenizer,DecisionTransformerModel:()=>t.DecisionTransformerModel,DecisionTransformerPreTrainedModel:()=>t.DecisionTransformerPreTrainedModel,DeiTFeatureExtractor:()=>h.DeiTFeatureExtractor,DeiTForImageClassification:()=>t.DeiTForImageClassification,DeiTImageProcessor:()=>h.DeiTImageProcessor,DeiTModel:()=>t.DeiTModel,DeiTPreTrainedModel:()=>t.DeiTPreTrainedModel,DepthAnythingForDepthEstimation:()=>t.DepthAnythingForDepthEstimation,DepthAnythingPreTrainedModel:()=>t.DepthAnythingPreTrainedModel,DepthEstimationPipeline:()=>r.DepthEstimationPipeline,DepthProForDepthEstimation:()=>t.DepthProForDepthEstimation,DepthProPreTrainedModel:()=>t.DepthProPreTrainedModel,DetrFeatureExtractor:()=>h.DetrFeatureExtractor,DetrForObjectDetection:()=>t.DetrForObjectDetection,DetrForSegmentation:()=>t.DetrForSegmentation,DetrImageProcessor:()=>h.DetrImageProcessor,DetrModel:()=>t.DetrModel,DetrObjectDetectionOutput:()=>t.DetrObjectDetectionOutput,DetrPreTrainedModel:()=>t.DetrPreTrainedModel,DetrSegmentationOutput:()=>t.DetrSegmentationOutput,Dinov2ForImageClassification:()=>t.Dinov2ForImageClassification,Dinov2Model:()=>t.Dinov2Model,Dinov2PreTrainedModel:()=>t.Dinov2PreTrainedModel,Dinov2WithRegistersForImageClassification:()=>t.Dinov2WithRegistersForImageClassification,Dinov2WithRegistersModel:()=>t.Dinov2WithRegistersModel,Dinov2WithRegistersPreTrainedModel:()=>t.Dinov2WithRegistersPreTrainedModel,DistilBertForMaskedLM:()=>t.DistilBertForMaskedLM,DistilBertForQuestionAnswering:()=>t.DistilBertForQuestionAnswering,DistilBertForSequenceClassification:()=>t.DistilBertForSequenceClassification,DistilBertForTokenClassification:()=>t.DistilBertForTokenClassification,DistilBertModel:()=>t.DistilBertModel,DistilBertPreTrainedModel:()=>t.DistilBertPreTrainedModel,DistilBertTokenizer:()=>s.DistilBertTokenizer,DocumentQuestionAnsweringPipeline:()=>r.DocumentQuestionAnsweringPipeline,DonutFeatureExtractor:()=>h.DonutFeatureExtractor,DonutImageProcessor:()=>h.DonutImageProcessor,DonutSwinModel:()=>t.DonutSwinModel,DonutSwinPreTrainedModel:()=>t.DonutSwinPreTrainedModel,EdgeTamModel:()=>t.EdgeTamModel,EfficientNetForImageClassification:()=>t.EfficientNetForImageClassification,EfficientNetImageProcessor:()=>h.EfficientNetImageProcessor,EfficientNetModel:()=>t.EfficientNetModel,EfficientNetPreTrainedModel:()=>t.EfficientNetPreTrainedModel,ElectraForMaskedLM:()=>t.ElectraForMaskedLM,ElectraForQuestionAnswering:()=>t.ElectraForQuestionAnswering,ElectraForSequenceClassification:()=>t.ElectraForSequenceClassification,ElectraForTokenClassification:()=>t.ElectraForTokenClassification,ElectraModel:()=>t.ElectraModel,ElectraPreTrainedModel:()=>t.ElectraPreTrainedModel,ElectraTokenizer:()=>s.ElectraTokenizer,EncodecFeatureExtractor:()=>u.EncodecFeatureExtractor,EosTokenCriteria:()=>y.EosTokenCriteria,Ernie4_5ForCausalLM:()=>t.Ernie4_5ForCausalLM,Ernie4_5Model:()=>t.Ernie4_5Model,Ernie4_5PreTrainedModel:()=>t.Ernie4_5PreTrainedModel,EsmForMaskedLM:()=>t.EsmForMaskedLM,EsmForSequenceClassification:()=>t.EsmForSequenceClassification,EsmForTokenClassification:()=>t.EsmForTokenClassification,EsmModel:()=>t.EsmModel,EsmPreTrainedModel:()=>t.EsmPreTrainedModel,EsmTokenizer:()=>s.EsmTokenizer,ExaoneForCausalLM:()=>t.ExaoneForCausalLM,ExaoneModel:()=>t.ExaoneModel,ExaonePreTrainedModel:()=>t.ExaonePreTrainedModel,FFT:()=>c.FFT,FalconForCausalLM:()=>t.FalconForCausalLM,FalconModel:()=>t.FalconModel,FalconPreTrainedModel:()=>t.FalconPreTrainedModel,FalconTokenizer:()=>s.FalconTokenizer,FastViTForImageClassification:()=>t.FastViTForImageClassification,FastViTModel:()=>t.FastViTModel,FastViTPreTrainedModel:()=>t.FastViTPreTrainedModel,FeatureExtractionPipeline:()=>r.FeatureExtractionPipeline,FeatureExtractor:()=>_.FeatureExtractor,FillMaskPipeline:()=>r.FillMaskPipeline,Florence2ForConditionalGeneration:()=>t.Florence2ForConditionalGeneration,Florence2PreTrainedModel:()=>t.Florence2PreTrainedModel,Florence2Processor:()=>v.Florence2Processor,ForcedBOSTokenLogitsProcessor:()=>P.ForcedBOSTokenLogitsProcessor,ForcedEOSTokenLogitsProcessor:()=>P.ForcedEOSTokenLogitsProcessor,GLPNFeatureExtractor:()=>h.GLPNFeatureExtractor,GLPNForDepthEstimation:()=>t.GLPNForDepthEstimation,GLPNModel:()=>t.GLPNModel,GLPNPreTrainedModel:()=>t.GLPNPreTrainedModel,GPT2LMHeadModel:()=>t.GPT2LMHeadModel,GPT2Model:()=>t.GPT2Model,GPT2PreTrainedModel:()=>t.GPT2PreTrainedModel,GPT2Tokenizer:()=>s.GPT2Tokenizer,GPTBigCodeForCausalLM:()=>t.GPTBigCodeForCausalLM,GPTBigCodeModel:()=>t.GPTBigCodeModel,GPTBigCodePreTrainedModel:()=>t.GPTBigCodePreTrainedModel,GPTJForCausalLM:()=>t.GPTJForCausalLM,GPTJModel:()=>t.GPTJModel,GPTJPreTrainedModel:()=>t.GPTJPreTrainedModel,GPTNeoForCausalLM:()=>t.GPTNeoForCausalLM,GPTNeoModel:()=>t.GPTNeoModel,GPTNeoPreTrainedModel:()=>t.GPTNeoPreTrainedModel,GPTNeoXForCausalLM:()=>t.GPTNeoXForCausalLM,GPTNeoXModel:()=>t.GPTNeoXModel,GPTNeoXPreTrainedModel:()=>t.GPTNeoXPreTrainedModel,GPTNeoXTokenizer:()=>s.GPTNeoXTokenizer,Gemma2ForCausalLM:()=>t.Gemma2ForCausalLM,Gemma2Model:()=>t.Gemma2Model,Gemma2PreTrainedModel:()=>t.Gemma2PreTrainedModel,Gemma3ForCausalLM:()=>t.Gemma3ForCausalLM,Gemma3Model:()=>t.Gemma3Model,Gemma3PreTrainedModel:()=>t.Gemma3PreTrainedModel,Gemma3nAudioFeatureExtractor:()=>u.Gemma3nAudioFeatureExtractor,Gemma3nForConditionalGeneration:()=>t.Gemma3nForConditionalGeneration,Gemma3nPreTrainedModel:()=>t.Gemma3nPreTrainedModel,Gemma3nProcessor:()=>v.Gemma3nProcessor,GemmaForCausalLM:()=>t.GemmaForCausalLM,GemmaModel:()=>t.GemmaModel,GemmaPreTrainedModel:()=>t.GemmaPreTrainedModel,GemmaTokenizer:()=>s.GemmaTokenizer,GlmForCausalLM:()=>t.GlmForCausalLM,GlmModel:()=>t.GlmModel,GlmPreTrainedModel:()=>t.GlmPreTrainedModel,GraniteForCausalLM:()=>t.GraniteForCausalLM,GraniteModel:()=>t.GraniteModel,GraniteMoeHybridForCausalLM:()=>t.GraniteMoeHybridForCausalLM,GraniteMoeHybridModel:()=>t.GraniteMoeHybridModel,GraniteMoeHybridPreTrainedModel:()=>t.GraniteMoeHybridPreTrainedModel,GranitePreTrainedModel:()=>t.GranitePreTrainedModel,Grok1Tokenizer:()=>s.Grok1Tokenizer,GroundingDinoForObjectDetection:()=>t.GroundingDinoForObjectDetection,GroundingDinoImageProcessor:()=>h.GroundingDinoImageProcessor,GroundingDinoPreTrainedModel:()=>t.GroundingDinoPreTrainedModel,GroundingDinoProcessor:()=>v.GroundingDinoProcessor,GroupViTModel:()=>t.GroupViTModel,GroupViTPreTrainedModel:()=>t.GroupViTPreTrainedModel,HeliumForCausalLM:()=>t.HeliumForCausalLM,HeliumModel:()=>t.HeliumModel,HeliumPreTrainedModel:()=>t.HeliumPreTrainedModel,HerbertTokenizer:()=>s.HerbertTokenizer,HieraForImageClassification:()=>t.HieraForImageClassification,HieraModel:()=>t.HieraModel,HieraPreTrainedModel:()=>t.HieraPreTrainedModel,HubertForCTC:()=>t.HubertForCTC,HubertForSequenceClassification:()=>t.HubertForSequenceClassification,HubertModel:()=>t.HubertModel,HubertPreTrainedModel:()=>t.HubertPreTrainedModel,IJepaForImageClassification:()=>t.IJepaForImageClassification,IJepaModel:()=>t.IJepaModel,IJepaPreTrainedModel:()=>t.IJepaPreTrainedModel,Idefics3ForConditionalGeneration:()=>t.Idefics3ForConditionalGeneration,Idefics3ImageProcessor:()=>h.Idefics3ImageProcessor,Idefics3PreTrainedModel:()=>t.Idefics3PreTrainedModel,Idefics3Processor:()=>v.Idefics3Processor,ImageClassificationPipeline:()=>r.ImageClassificationPipeline,ImageFeatureExtractionPipeline:()=>r.ImageFeatureExtractionPipeline,ImageFeatureExtractor:()=>u.ImageFeatureExtractor,ImageMattingOutput:()=>t.ImageMattingOutput,ImageProcessor:()=>g.ImageProcessor,ImageSegmentationPipeline:()=>r.ImageSegmentationPipeline,ImageToImagePipeline:()=>r.ImageToImagePipeline,ImageToTextPipeline:()=>r.ImageToTextPipeline,InterruptableStoppingCriteria:()=>y.InterruptableStoppingCriteria,JAISLMHeadModel:()=>t.JAISLMHeadModel,JAISModel:()=>t.JAISModel,JAISPreTrainedModel:()=>t.JAISPreTrainedModel,JinaCLIPImageProcessor:()=>h.JinaCLIPImageProcessor,JinaCLIPModel:()=>t.JinaCLIPModel,JinaCLIPPreTrainedModel:()=>t.JinaCLIPPreTrainedModel,JinaCLIPProcessor:()=>v.JinaCLIPProcessor,JinaCLIPTextModel:()=>t.JinaCLIPTextModel,JinaCLIPVisionModel:()=>t.JinaCLIPVisionModel,Lfm2ForCausalLM:()=>t.Lfm2ForCausalLM,Lfm2Model:()=>t.Lfm2Model,Lfm2PreTrainedModel:()=>t.Lfm2PreTrainedModel,LiteWhisperForConditionalGeneration:()=>t.LiteWhisperForConditionalGeneration,Llama4ForCausalLM:()=>t.Llama4ForCausalLM,Llama4PreTrainedModel:()=>t.Llama4PreTrainedModel,LlamaForCausalLM:()=>t.LlamaForCausalLM,LlamaModel:()=>t.LlamaModel,LlamaPreTrainedModel:()=>t.LlamaPreTrainedModel,LlamaTokenizer:()=>s.LlamaTokenizer,LlavaForConditionalGeneration:()=>t.LlavaForConditionalGeneration,LlavaOnevisionForConditionalGeneration:()=>t.LlavaOnevisionForConditionalGeneration,LlavaOnevisionImageProcessor:()=>h.LlavaOnevisionImageProcessor,LlavaPreTrainedModel:()=>t.LlavaPreTrainedModel,LlavaProcessor:()=>v.LlavaProcessor,LlavaQwen2ForCausalLM:()=>t.LlavaQwen2ForCausalLM,LogitsProcessor:()=>P.LogitsProcessor,LogitsProcessorList:()=>P.LogitsProcessorList,LogitsWarper:()=>P.LogitsWarper,LongT5ForConditionalGeneration:()=>t.LongT5ForConditionalGeneration,LongT5Model:()=>t.LongT5Model,LongT5PreTrainedModel:()=>t.LongT5PreTrainedModel,M2M100ForConditionalGeneration:()=>t.M2M100ForConditionalGeneration,M2M100Model:()=>t.M2M100Model,M2M100PreTrainedModel:()=>t.M2M100PreTrainedModel,M2M100Tokenizer:()=>s.M2M100Tokenizer,MBart50Tokenizer:()=>s.MBart50Tokenizer,MBartForCausalLM:()=>t.MBartForCausalLM,MBartForConditionalGeneration:()=>t.MBartForConditionalGeneration,MBartForSequenceClassification:()=>t.MBartForSequenceClassification,MBartModel:()=>t.MBartModel,MBartPreTrainedModel:()=>t.MBartPreTrainedModel,MBartTokenizer:()=>s.MBartTokenizer,MPNetForMaskedLM:()=>t.MPNetForMaskedLM,MPNetForQuestionAnswering:()=>t.MPNetForQuestionAnswering,MPNetForSequenceClassification:()=>t.MPNetForSequenceClassification,MPNetForTokenClassification:()=>t.MPNetForTokenClassification,MPNetModel:()=>t.MPNetModel,MPNetPreTrainedModel:()=>t.MPNetPreTrainedModel,MPNetTokenizer:()=>s.MPNetTokenizer,MT5ForConditionalGeneration:()=>t.MT5ForConditionalGeneration,MT5Model:()=>t.MT5Model,MT5PreTrainedModel:()=>t.MT5PreTrainedModel,MarianMTModel:()=>t.MarianMTModel,MarianModel:()=>t.MarianModel,MarianPreTrainedModel:()=>t.MarianPreTrainedModel,MarianTokenizer:()=>s.MarianTokenizer,Mask2FormerImageProcessor:()=>h.Mask2FormerImageProcessor,MaskFormerFeatureExtractor:()=>h.MaskFormerFeatureExtractor,MaskFormerForInstanceSegmentation:()=>t.MaskFormerForInstanceSegmentation,MaskFormerImageProcessor:()=>h.MaskFormerImageProcessor,MaskFormerModel:()=>t.MaskFormerModel,MaskFormerPreTrainedModel:()=>t.MaskFormerPreTrainedModel,MaskedLMOutput:()=>t.MaskedLMOutput,MaxLengthCriteria:()=>y.MaxLengthCriteria,Metric3DForDepthEstimation:()=>t.Metric3DForDepthEstimation,Metric3DPreTrainedModel:()=>t.Metric3DPreTrainedModel,Metric3Dv2ForDepthEstimation:()=>t.Metric3Dv2ForDepthEstimation,Metric3Dv2PreTrainedModel:()=>t.Metric3Dv2PreTrainedModel,MgpstrForSceneTextRecognition:()=>t.MgpstrForSceneTextRecognition,MgpstrModelOutput:()=>t.MgpstrModelOutput,MgpstrPreTrainedModel:()=>t.MgpstrPreTrainedModel,MgpstrProcessor:()=>v.MgpstrProcessor,MgpstrTokenizer:()=>s.MgpstrTokenizer,MimiDecoderModel:()=>t.MimiDecoderModel,MimiDecoderOutput:()=>t.MimiDecoderOutput,MimiEncoderModel:()=>t.MimiEncoderModel,MimiEncoderOutput:()=>t.MimiEncoderOutput,MimiModel:()=>t.MimiModel,MimiPreTrainedModel:()=>t.MimiPreTrainedModel,MinLengthLogitsProcessor:()=>P.MinLengthLogitsProcessor,MinNewTokensLengthLogitsProcessor:()=>P.MinNewTokensLengthLogitsProcessor,Ministral3ForCausalLM:()=>t.Ministral3ForCausalLM,Ministral3Model:()=>t.Ministral3Model,Ministral3PreTrainedModel:()=>t.Ministral3PreTrainedModel,MinistralForCausalLM:()=>t.MinistralForCausalLM,MinistralModel:()=>t.MinistralModel,MinistralPreTrainedModel:()=>t.MinistralPreTrainedModel,Mistral3ForConditionalGeneration:()=>t.Mistral3ForConditionalGeneration,MistralForCausalLM:()=>t.MistralForCausalLM,MistralModel:()=>t.MistralModel,MistralPreTrainedModel:()=>t.MistralPreTrainedModel,MobileBertForMaskedLM:()=>t.MobileBertForMaskedLM,MobileBertForQuestionAnswering:()=>t.MobileBertForQuestionAnswering,MobileBertForSequenceClassification:()=>t.MobileBertForSequenceClassification,MobileBertModel:()=>t.MobileBertModel,MobileBertPreTrainedModel:()=>t.MobileBertPreTrainedModel,MobileBertTokenizer:()=>s.MobileBertTokenizer,MobileLLMForCausalLM:()=>t.MobileLLMForCausalLM,MobileLLMModel:()=>t.MobileLLMModel,MobileLLMPreTrainedModel:()=>t.MobileLLMPreTrainedModel,MobileNetV1FeatureExtractor:()=>h.MobileNetV1FeatureExtractor,MobileNetV1ForImageClassification:()=>t.MobileNetV1ForImageClassification,MobileNetV1ForSemanticSegmentation:()=>t.MobileNetV1ForSemanticSegmentation,MobileNetV1ImageProcessor:()=>h.MobileNetV1ImageProcessor,MobileNetV1Model:()=>t.MobileNetV1Model,MobileNetV1PreTrainedModel:()=>t.MobileNetV1PreTrainedModel,MobileNetV2FeatureExtractor:()=>h.MobileNetV2FeatureExtractor,MobileNetV2ForImageClassification:()=>t.MobileNetV2ForImageClassification,MobileNetV2ForSemanticSegmentation:()=>t.MobileNetV2ForSemanticSegmentation,MobileNetV2ImageProcessor:()=>h.MobileNetV2ImageProcessor,MobileNetV2Model:()=>t.MobileNetV2Model,MobileNetV2PreTrainedModel:()=>t.MobileNetV2PreTrainedModel,MobileNetV3FeatureExtractor:()=>h.MobileNetV3FeatureExtractor,MobileNetV3ForImageClassification:()=>t.MobileNetV3ForImageClassification,MobileNetV3ForSemanticSegmentation:()=>t.MobileNetV3ForSemanticSegmentation,MobileNetV3ImageProcessor:()=>h.MobileNetV3ImageProcessor,MobileNetV3Model:()=>t.MobileNetV3Model,MobileNetV3PreTrainedModel:()=>t.MobileNetV3PreTrainedModel,MobileNetV4FeatureExtractor:()=>h.MobileNetV4FeatureExtractor,MobileNetV4ForImageClassification:()=>t.MobileNetV4ForImageClassification,MobileNetV4ForSemanticSegmentation:()=>t.MobileNetV4ForSemanticSegmentation,MobileNetV4ImageProcessor:()=>h.MobileNetV4ImageProcessor,MobileNetV4Model:()=>t.MobileNetV4Model,MobileNetV4PreTrainedModel:()=>t.MobileNetV4PreTrainedModel,MobileViTFeatureExtractor:()=>h.MobileViTFeatureExtractor,MobileViTForImageClassification:()=>t.MobileViTForImageClassification,MobileViTImageProcessor:()=>h.MobileViTImageProcessor,MobileViTModel:()=>t.MobileViTModel,MobileViTPreTrainedModel:()=>t.MobileViTPreTrainedModel,MobileViTV2ForImageClassification:()=>t.MobileViTV2ForImageClassification,MobileViTV2Model:()=>t.MobileViTV2Model,MobileViTV2PreTrainedModel:()=>t.MobileViTV2PreTrainedModel,ModelOutput:()=>t.ModelOutput,ModernBertDecoderForCausalLM:()=>t.ModernBertDecoderForCausalLM,ModernBertDecoderModel:()=>t.ModernBertDecoderModel,ModernBertDecoderPreTrainedModel:()=>t.ModernBertDecoderPreTrainedModel,ModernBertForMaskedLM:()=>t.ModernBertForMaskedLM,ModernBertForSequenceClassification:()=>t.ModernBertForSequenceClassification,ModernBertForTokenClassification:()=>t.ModernBertForTokenClassification,ModernBertModel:()=>t.ModernBertModel,ModernBertPreTrainedModel:()=>t.ModernBertPreTrainedModel,Moondream1ForConditionalGeneration:()=>t.Moondream1ForConditionalGeneration,MoonshineFeatureExtractor:()=>u.MoonshineFeatureExtractor,MoonshineForConditionalGeneration:()=>t.MoonshineForConditionalGeneration,MoonshineModel:()=>t.MoonshineModel,MoonshinePreTrainedModel:()=>t.MoonshinePreTrainedModel,MoonshineProcessor:()=>v.MoonshineProcessor,MptForCausalLM:()=>t.MptForCausalLM,MptModel:()=>t.MptModel,MptPreTrainedModel:()=>t.MptPreTrainedModel,MultiModalityCausalLM:()=>t.MultiModalityCausalLM,MultiModalityPreTrainedModel:()=>t.MultiModalityPreTrainedModel,MusicgenForCausalLM:()=>t.MusicgenForCausalLM,MusicgenForConditionalGeneration:()=>t.MusicgenForConditionalGeneration,MusicgenModel:()=>t.MusicgenModel,MusicgenPreTrainedModel:()=>t.MusicgenPreTrainedModel,NanoChatForCausalLM:()=>t.NanoChatForCausalLM,NanoChatModel:()=>t.NanoChatModel,NanoChatPreTrainedModel:()=>t.NanoChatPreTrainedModel,NeoBertForMaskedLM:()=>t.NeoBertForMaskedLM,NeoBertForQuestionAnswering:()=>t.NeoBertForQuestionAnswering,NeoBertForSequenceClassification:()=>t.NeoBertForSequenceClassification,NeoBertForTokenClassification:()=>t.NeoBertForTokenClassification,NeoBertModel:()=>t.NeoBertModel,NeoBertPreTrainedModel:()=>t.NeoBertPreTrainedModel,NllbTokenizer:()=>s.NllbTokenizer,NoBadWordsLogitsProcessor:()=>P.NoBadWordsLogitsProcessor,NoRepeatNGramLogitsProcessor:()=>P.NoRepeatNGramLogitsProcessor,NomicBertModel:()=>t.NomicBertModel,NomicBertPreTrainedModel:()=>t.NomicBertPreTrainedModel,NougatImageProcessor:()=>h.NougatImageProcessor,NougatTokenizer:()=>s.NougatTokenizer,OPTForCausalLM:()=>t.OPTForCausalLM,OPTModel:()=>t.OPTModel,OPTPreTrainedModel:()=>t.OPTPreTrainedModel,ObjectDetectionPipeline:()=>r.ObjectDetectionPipeline,Olmo2ForCausalLM:()=>t.Olmo2ForCausalLM,Olmo2Model:()=>t.Olmo2Model,Olmo2PreTrainedModel:()=>t.Olmo2PreTrainedModel,OlmoForCausalLM:()=>t.OlmoForCausalLM,OlmoModel:()=>t.OlmoModel,OlmoPreTrainedModel:()=>t.OlmoPreTrainedModel,OpenELMForCausalLM:()=>t.OpenELMForCausalLM,OpenELMModel:()=>t.OpenELMModel,OpenELMPreTrainedModel:()=>t.OpenELMPreTrainedModel,OwlViTFeatureExtractor:()=>h.OwlViTFeatureExtractor,OwlViTForObjectDetection:()=>t.OwlViTForObjectDetection,OwlViTImageProcessor:()=>h.OwlViTImageProcessor,OwlViTModel:()=>t.OwlViTModel,OwlViTPreTrainedModel:()=>t.OwlViTPreTrainedModel,OwlViTProcessor:()=>v.OwlViTProcessor,Owlv2ForObjectDetection:()=>t.Owlv2ForObjectDetection,Owlv2ImageProcessor:()=>h.Owlv2ImageProcessor,Owlv2Model:()=>t.Owlv2Model,Owlv2PreTrainedModel:()=>t.Owlv2PreTrainedModel,PaliGemmaForConditionalGeneration:()=>t.PaliGemmaForConditionalGeneration,PaliGemmaPreTrainedModel:()=>t.PaliGemmaPreTrainedModel,PaliGemmaProcessor:()=>v.PaliGemmaProcessor,ParakeetFeatureExtractor:()=>u.ParakeetFeatureExtractor,ParakeetForCTC:()=>t.ParakeetForCTC,ParakeetPreTrainedModel:()=>t.ParakeetPreTrainedModel,PatchTSMixerForPrediction:()=>t.PatchTSMixerForPrediction,PatchTSMixerModel:()=>t.PatchTSMixerModel,PatchTSMixerPreTrainedModel:()=>t.PatchTSMixerPreTrainedModel,PatchTSTForPrediction:()=>t.PatchTSTForPrediction,PatchTSTModel:()=>t.PatchTSTModel,PatchTSTPreTrainedModel:()=>t.PatchTSTPreTrainedModel,Phi3ForCausalLM:()=>t.Phi3ForCausalLM,Phi3Model:()=>t.Phi3Model,Phi3PreTrainedModel:()=>t.Phi3PreTrainedModel,Phi3VForCausalLM:()=>t.Phi3VForCausalLM,Phi3VImageProcessor:()=>h.Phi3VImageProcessor,Phi3VPreTrainedModel:()=>t.Phi3VPreTrainedModel,Phi3VProcessor:()=>v.Phi3VProcessor,PhiForCausalLM:()=>t.PhiForCausalLM,PhiModel:()=>t.PhiModel,PhiPreTrainedModel:()=>t.PhiPreTrainedModel,Pipeline:()=>r.Pipeline,PixtralImageProcessor:()=>h.PixtralImageProcessor,PixtralProcessor:()=>v.PixtralProcessor,PreTrainedModel:()=>t.PreTrainedModel,PreTrainedTokenizer:()=>s.PreTrainedTokenizer,PretrainedConfig:()=>o.PretrainedConfig,PretrainedMixin:()=>t.PretrainedMixin,Processor:()=>F.Processor,PvtForImageClassification:()=>t.PvtForImageClassification,PvtImageProcessor:()=>h.PvtImageProcessor,PvtModel:()=>t.PvtModel,PvtPreTrainedModel:()=>t.PvtPreTrainedModel,PyAnnoteFeatureExtractor:()=>u.PyAnnoteFeatureExtractor,PyAnnoteForAudioFrameClassification:()=>t.PyAnnoteForAudioFrameClassification,PyAnnoteModel:()=>t.PyAnnoteModel,PyAnnotePreTrainedModel:()=>t.PyAnnotePreTrainedModel,PyAnnoteProcessor:()=>v.PyAnnoteProcessor,QuestionAnsweringModelOutput:()=>t.QuestionAnsweringModelOutput,QuestionAnsweringPipeline:()=>r.QuestionAnsweringPipeline,Qwen2ForCausalLM:()=>t.Qwen2ForCausalLM,Qwen2Model:()=>t.Qwen2Model,Qwen2PreTrainedModel:()=>t.Qwen2PreTrainedModel,Qwen2Tokenizer:()=>s.Qwen2Tokenizer,Qwen2VLForConditionalGeneration:()=>t.Qwen2VLForConditionalGeneration,Qwen2VLImageProcessor:()=>h.Qwen2VLImageProcessor,Qwen2VLPreTrainedModel:()=>t.Qwen2VLPreTrainedModel,Qwen2VLProcessor:()=>v.Qwen2VLProcessor,Qwen3ForCausalLM:()=>t.Qwen3ForCausalLM,Qwen3Model:()=>t.Qwen3Model,Qwen3PreTrainedModel:()=>t.Qwen3PreTrainedModel,RFDetrForObjectDetection:()=>t.RFDetrForObjectDetection,RFDetrModel:()=>t.RFDetrModel,RFDetrObjectDetectionOutput:()=>t.RFDetrObjectDetectionOutput,RFDetrPreTrainedModel:()=>t.RFDetrPreTrainedModel,RTDetrForObjectDetection:()=>t.RTDetrForObjectDetection,RTDetrImageProcessor:()=>h.RTDetrImageProcessor,RTDetrModel:()=>t.RTDetrModel,RTDetrObjectDetectionOutput:()=>t.RTDetrObjectDetectionOutput,RTDetrPreTrainedModel:()=>t.RTDetrPreTrainedModel,RTDetrV2ForObjectDetection:()=>t.RTDetrV2ForObjectDetection,RTDetrV2Model:()=>t.RTDetrV2Model,RTDetrV2ObjectDetectionOutput:()=>t.RTDetrV2ObjectDetectionOutput,RTDetrV2PreTrainedModel:()=>t.RTDetrV2PreTrainedModel,RawAudio:()=>a.RawAudio,RawImage:()=>n.RawImage,RawVideo:()=>i.RawVideo,RawVideoFrame:()=>i.RawVideoFrame,RepetitionPenaltyLogitsProcessor:()=>P.RepetitionPenaltyLogitsProcessor,ResNetForImageClassification:()=>t.ResNetForImageClassification,ResNetModel:()=>t.ResNetModel,ResNetPreTrainedModel:()=>t.ResNetPreTrainedModel,RoFormerForMaskedLM:()=>t.RoFormerForMaskedLM,RoFormerForQuestionAnswering:()=>t.RoFormerForQuestionAnswering,RoFormerForSequenceClassification:()=>t.RoFormerForSequenceClassification,RoFormerForTokenClassification:()=>t.RoFormerForTokenClassification,RoFormerModel:()=>t.RoFormerModel,RoFormerPreTrainedModel:()=>t.RoFormerPreTrainedModel,RoFormerTokenizer:()=>s.RoFormerTokenizer,RobertaForMaskedLM:()=>t.RobertaForMaskedLM,RobertaForQuestionAnswering:()=>t.RobertaForQuestionAnswering,RobertaForSequenceClassification:()=>t.RobertaForSequenceClassification,RobertaForTokenClassification:()=>t.RobertaForTokenClassification,RobertaModel:()=>t.RobertaModel,RobertaPreTrainedModel:()=>t.RobertaPreTrainedModel,RobertaTokenizer:()=>s.RobertaTokenizer,Sam2ImageProcessor:()=>h.Sam2ImageProcessor,Sam2ImageSegmentationOutput:()=>t.Sam2ImageSegmentationOutput,Sam2Model:()=>t.Sam2Model,Sam2PreTrainedModel:()=>t.Sam2PreTrainedModel,Sam2Processor:()=>v.Sam2Processor,Sam2VideoProcessor:()=>v.Sam2VideoProcessor,Sam3ImageProcessor:()=>h.Sam3ImageProcessor,Sam3TrackerModel:()=>t.Sam3TrackerModel,SamImageProcessor:()=>h.SamImageProcessor,SamImageSegmentationOutput:()=>t.SamImageSegmentationOutput,SamModel:()=>t.SamModel,SamPreTrainedModel:()=>t.SamPreTrainedModel,SamProcessor:()=>v.SamProcessor,SapiensForDepthEstimation:()=>t.SapiensForDepthEstimation,SapiensForNormalEstimation:()=>t.SapiensForNormalEstimation,SapiensForSemanticSegmentation:()=>t.SapiensForSemanticSegmentation,SapiensPreTrainedModel:()=>t.SapiensPreTrainedModel,SeamlessM4TFeatureExtractor:()=>u.SeamlessM4TFeatureExtractor,SegformerFeatureExtractor:()=>h.SegformerFeatureExtractor,SegformerForImageClassification:()=>t.SegformerForImageClassification,SegformerForSemanticSegmentation:()=>t.SegformerForSemanticSegmentation,SegformerImageProcessor:()=>h.SegformerImageProcessor,SegformerModel:()=>t.SegformerModel,SegformerPreTrainedModel:()=>t.SegformerPreTrainedModel,Seq2SeqLMOutput:()=>t.Seq2SeqLMOutput,SequenceClassifierOutput:()=>t.SequenceClassifierOutput,SiglipImageProcessor:()=>h.SiglipImageProcessor,SiglipModel:()=>t.SiglipModel,SiglipPreTrainedModel:()=>t.SiglipPreTrainedModel,SiglipTextModel:()=>t.SiglipTextModel,SiglipTokenizer:()=>s.SiglipTokenizer,SiglipVisionModel:()=>t.SiglipVisionModel,SmolLM3ForCausalLM:()=>t.SmolLM3ForCausalLM,SmolLM3Model:()=>t.SmolLM3Model,SmolLM3PreTrainedModel:()=>t.SmolLM3PreTrainedModel,SmolVLMForConditionalGeneration:()=>t.SmolVLMForConditionalGeneration,SmolVLMImageProcessor:()=>h.SmolVLMImageProcessor,SmolVLMProcessor:()=>v.SmolVLMProcessor,SnacDecoderModel:()=>t.SnacDecoderModel,SnacEncoderModel:()=>t.SnacEncoderModel,SnacFeatureExtractor:()=>u.SnacFeatureExtractor,SnacModel:()=>t.SnacModel,SnacPreTrainedModel:()=>t.SnacPreTrainedModel,SpeechT5FeatureExtractor:()=>u.SpeechT5FeatureExtractor,SpeechT5ForSpeechToText:()=>t.SpeechT5ForSpeechToText,SpeechT5ForTextToSpeech:()=>t.SpeechT5ForTextToSpeech,SpeechT5HifiGan:()=>t.SpeechT5HifiGan,SpeechT5Model:()=>t.SpeechT5Model,SpeechT5PreTrainedModel:()=>t.SpeechT5PreTrainedModel,SpeechT5Processor:()=>v.SpeechT5Processor,SpeechT5Tokenizer:()=>s.SpeechT5Tokenizer,SqueezeBertForMaskedLM:()=>t.SqueezeBertForMaskedLM,SqueezeBertForQuestionAnswering:()=>t.SqueezeBertForQuestionAnswering,SqueezeBertForSequenceClassification:()=>t.SqueezeBertForSequenceClassification,SqueezeBertModel:()=>t.SqueezeBertModel,SqueezeBertPreTrainedModel:()=>t.SqueezeBertPreTrainedModel,SqueezeBertTokenizer:()=>s.SqueezeBertTokenizer,StableLmForCausalLM:()=>t.StableLmForCausalLM,StableLmModel:()=>t.StableLmModel,StableLmPreTrainedModel:()=>t.StableLmPreTrainedModel,Starcoder2ForCausalLM:()=>t.Starcoder2ForCausalLM,Starcoder2Model:()=>t.Starcoder2Model,Starcoder2PreTrainedModel:()=>t.Starcoder2PreTrainedModel,StoppingCriteria:()=>y.StoppingCriteria,StoppingCriteriaList:()=>y.StoppingCriteriaList,StyleTextToSpeech2Model:()=>t.StyleTextToSpeech2Model,StyleTextToSpeech2PreTrainedModel:()=>t.StyleTextToSpeech2PreTrainedModel,SummarizationPipeline:()=>r.SummarizationPipeline,SupertonicForConditionalGeneration:()=>t.SupertonicForConditionalGeneration,SupertonicPreTrainedModel:()=>t.SupertonicPreTrainedModel,SuppressTokensAtBeginLogitsProcessor:()=>P.SuppressTokensAtBeginLogitsProcessor,Swin2SRForImageSuperResolution:()=>t.Swin2SRForImageSuperResolution,Swin2SRImageProcessor:()=>h.Swin2SRImageProcessor,Swin2SRModel:()=>t.Swin2SRModel,Swin2SRPreTrainedModel:()=>t.Swin2SRPreTrainedModel,SwinForImageClassification:()=>t.SwinForImageClassification,SwinForSemanticSegmentation:()=>t.SwinForSemanticSegmentation,SwinModel:()=>t.SwinModel,SwinPreTrainedModel:()=>t.SwinPreTrainedModel,T5ForConditionalGeneration:()=>t.T5ForConditionalGeneration,T5Model:()=>t.T5Model,T5PreTrainedModel:()=>t.T5PreTrainedModel,T5Tokenizer:()=>s.T5Tokenizer,TableTransformerForObjectDetection:()=>t.TableTransformerForObjectDetection,TableTransformerModel:()=>t.TableTransformerModel,TableTransformerObjectDetectionOutput:()=>t.TableTransformerObjectDetectionOutput,TableTransformerPreTrainedModel:()=>t.TableTransformerPreTrainedModel,TemperatureLogitsWarper:()=>P.TemperatureLogitsWarper,Tensor:()=>l.Tensor,Text2TextGenerationPipeline:()=>r.Text2TextGenerationPipeline,TextClassificationPipeline:()=>r.TextClassificationPipeline,TextGenerationPipeline:()=>r.TextGenerationPipeline,TextStreamer:()=>C.TextStreamer,TextToAudioPipeline:()=>r.TextToAudioPipeline,TokenClassificationPipeline:()=>r.TokenClassificationPipeline,TokenClassifierOutput:()=>t.TokenClassifierOutput,TokenizerModel:()=>s.TokenizerModel,TopKLogitsWarper:()=>P.TopKLogitsWarper,TopPLogitsWarper:()=>P.TopPLogitsWarper,TrOCRForCausalLM:()=>t.TrOCRForCausalLM,TrOCRPreTrainedModel:()=>t.TrOCRPreTrainedModel,TranslationPipeline:()=>r.TranslationPipeline,UltravoxModel:()=>t.UltravoxModel,UltravoxPreTrainedModel:()=>t.UltravoxPreTrainedModel,UltravoxProcessor:()=>v.UltravoxProcessor,UniSpeechForCTC:()=>t.UniSpeechForCTC,UniSpeechForSequenceClassification:()=>t.UniSpeechForSequenceClassification,UniSpeechModel:()=>t.UniSpeechModel,UniSpeechPreTrainedModel:()=>t.UniSpeechPreTrainedModel,UniSpeechSatForAudioFrameClassification:()=>t.UniSpeechSatForAudioFrameClassification,UniSpeechSatForCTC:()=>t.UniSpeechSatForCTC,UniSpeechSatForSequenceClassification:()=>t.UniSpeechSatForSequenceClassification,UniSpeechSatModel:()=>t.UniSpeechSatModel,UniSpeechSatPreTrainedModel:()=>t.UniSpeechSatPreTrainedModel,VLChatProcessor:()=>v.VLChatProcessor,VLMImageProcessor:()=>h.VLMImageProcessor,VaultGemmaForCausalLM:()=>t.VaultGemmaForCausalLM,VaultGemmaModel:()=>t.VaultGemmaModel,VaultGemmaPreTrainedModel:()=>t.VaultGemmaPreTrainedModel,ViTFeatureExtractor:()=>h.ViTFeatureExtractor,ViTForImageClassification:()=>t.ViTForImageClassification,ViTImageProcessor:()=>h.ViTImageProcessor,ViTMAEModel:()=>t.ViTMAEModel,ViTMAEPreTrainedModel:()=>t.ViTMAEPreTrainedModel,ViTMSNForImageClassification:()=>t.ViTMSNForImageClassification,ViTMSNModel:()=>t.ViTMSNModel,ViTMSNPreTrainedModel:()=>t.ViTMSNPreTrainedModel,ViTModel:()=>t.ViTModel,ViTPreTrainedModel:()=>t.ViTPreTrainedModel,VisionEncoderDecoderModel:()=>t.VisionEncoderDecoderModel,VitMatteForImageMatting:()=>t.VitMatteForImageMatting,VitMatteImageProcessor:()=>h.VitMatteImageProcessor,VitMattePreTrainedModel:()=>t.VitMattePreTrainedModel,VitPoseForPoseEstimation:()=>t.VitPoseForPoseEstimation,VitPoseImageProcessor:()=>h.VitPoseImageProcessor,VitPosePreTrainedModel:()=>t.VitPosePreTrainedModel,VitsModel:()=>t.VitsModel,VitsModelOutput:()=>t.VitsModelOutput,VitsPreTrainedModel:()=>t.VitsPreTrainedModel,VitsTokenizer:()=>s.VitsTokenizer,VoxtralForConditionalGeneration:()=>t.VoxtralForConditionalGeneration,VoxtralProcessor:()=>v.VoxtralProcessor,Wav2Vec2BertForCTC:()=>t.Wav2Vec2BertForCTC,Wav2Vec2BertForSequenceClassification:()=>t.Wav2Vec2BertForSequenceClassification,Wav2Vec2BertModel:()=>t.Wav2Vec2BertModel,Wav2Vec2BertPreTrainedModel:()=>t.Wav2Vec2BertPreTrainedModel,Wav2Vec2CTCTokenizer:()=>s.Wav2Vec2CTCTokenizer,Wav2Vec2FeatureExtractor:()=>u.Wav2Vec2FeatureExtractor,Wav2Vec2ForAudioFrameClassification:()=>t.Wav2Vec2ForAudioFrameClassification,Wav2Vec2ForCTC:()=>t.Wav2Vec2ForCTC,Wav2Vec2ForSequenceClassification:()=>t.Wav2Vec2ForSequenceClassification,Wav2Vec2Model:()=>t.Wav2Vec2Model,Wav2Vec2PreTrainedModel:()=>t.Wav2Vec2PreTrainedModel,Wav2Vec2Processor:()=>v.Wav2Vec2Processor,Wav2Vec2ProcessorWithLM:()=>v.Wav2Vec2ProcessorWithLM,WavLMForAudioFrameClassification:()=>t.WavLMForAudioFrameClassification,WavLMForCTC:()=>t.WavLMForCTC,WavLMForSequenceClassification:()=>t.WavLMForSequenceClassification,WavLMForXVector:()=>t.WavLMForXVector,WavLMModel:()=>t.WavLMModel,WavLMPreTrainedModel:()=>t.WavLMPreTrainedModel,WeSpeakerFeatureExtractor:()=>u.WeSpeakerFeatureExtractor,WeSpeakerResNetModel:()=>t.WeSpeakerResNetModel,WeSpeakerResNetPreTrainedModel:()=>t.WeSpeakerResNetPreTrainedModel,WhisperFeatureExtractor:()=>u.WhisperFeatureExtractor,WhisperForConditionalGeneration:()=>t.WhisperForConditionalGeneration,WhisperModel:()=>t.WhisperModel,WhisperPreTrainedModel:()=>t.WhisperPreTrainedModel,WhisperProcessor:()=>v.WhisperProcessor,WhisperTextStreamer:()=>C.WhisperTextStreamer,WhisperTimeStampLogitsProcessor:()=>P.WhisperTimeStampLogitsProcessor,WhisperTokenizer:()=>s.WhisperTokenizer,XLMForQuestionAnswering:()=>t.XLMForQuestionAnswering,XLMForSequenceClassification:()=>t.XLMForSequenceClassification,XLMForTokenClassification:()=>t.XLMForTokenClassification,XLMModel:()=>t.XLMModel,XLMPreTrainedModel:()=>t.XLMPreTrainedModel,XLMRobertaForMaskedLM:()=>t.XLMRobertaForMaskedLM,XLMRobertaForQuestionAnswering:()=>t.XLMRobertaForQuestionAnswering,XLMRobertaForSequenceClassification:()=>t.XLMRobertaForSequenceClassification,XLMRobertaForTokenClassification:()=>t.XLMRobertaForTokenClassification,XLMRobertaModel:()=>t.XLMRobertaModel,XLMRobertaPreTrainedModel:()=>t.XLMRobertaPreTrainedModel,XLMRobertaTokenizer:()=>s.XLMRobertaTokenizer,XLMTokenizer:()=>s.XLMTokenizer,XLMWithLMHeadModel:()=>t.XLMWithLMHeadModel,XVectorOutput:()=>t.XVectorOutput,YolosFeatureExtractor:()=>h.YolosFeatureExtractor,YolosForObjectDetection:()=>t.YolosForObjectDetection,YolosImageProcessor:()=>h.YolosImageProcessor,YolosModel:()=>t.YolosModel,YolosObjectDetectionOutput:()=>t.YolosObjectDetectionOutput,YolosPreTrainedModel:()=>t.YolosPreTrainedModel,ZeroShotAudioClassificationPipeline:()=>r.ZeroShotAudioClassificationPipeline,ZeroShotClassificationPipeline:()=>r.ZeroShotClassificationPipeline,ZeroShotImageClassificationPipeline:()=>r.ZeroShotImageClassificationPipeline,ZeroShotObjectDetectionPipeline:()=>r.ZeroShotObjectDetectionPipeline,bankers_round:()=>c.bankers_round,cat:()=>l.cat,cos_sim:()=>c.cos_sim,dot:()=>c.dot,dynamic_time_warping:()=>c.dynamic_time_warping,env:()=>e.env,full:()=>l.full,full_like:()=>l.full_like,getCacheShapes:()=>o.getCacheShapes,hamming:()=>a.hamming,hanning:()=>a.hanning,interpolate:()=>l.interpolate,interpolate_4d:()=>l.interpolate_4d,interpolate_data:()=>c.interpolate_data,is_chinese_char:()=>s.is_chinese_char,layer_norm:()=>l.layer_norm,load_image:()=>n.load_image,load_video:()=>i.load_video,log_softmax:()=>c.log_softmax,magnitude:()=>c.magnitude,matmul:()=>l.matmul,max:()=>c.max,mean:()=>l.mean,mean_pooling:()=>l.mean_pooling,medianFilter:()=>c.medianFilter,mel_filter_bank:()=>a.mel_filter_bank,min:()=>c.min,ones:()=>l.ones,ones_like:()=>l.ones_like,permute:()=>l.permute,permute_data:()=>c.permute_data,pipeline:()=>r.pipeline,quantize_embeddings:()=>l.quantize_embeddings,rand:()=>l.rand,randn:()=>l.randn,read_audio:()=>a.read_audio,rfft:()=>l.rfft,round:()=>c.round,slice:()=>l.slice,softmax:()=>c.softmax,spectrogram:()=>a.spectrogram,stack:()=>l.stack,std_mean:()=>l.std_mean,topk:()=>l.topk,window_function:()=>a.window_function,zeros:()=>l.zeros,zeros_like:()=>l.zeros_like});var e=Vt("./src/env.js"),r=Vt("./src/pipelines.js"),t=Vt("./src/models.js"),s=Vt("./src/tokenizers.js"),o=Vt("./src/configs.js"),a=Vt("./src/utils/audio.js"),n=Vt("./src/utils/image.js"),i=Vt("./src/utils/video.js"),l=Vt("./src/utils/tensor.js"),c=Vt("./src/utils/maths.js"),_=Vt("./src/base/feature_extraction_utils.js"),u=Vt("./src/models/feature_extractors.js"),d=Vt("./src/models/auto/feature_extraction_auto.js"),g=Vt("./src/base/image_processors_utils.js"),h=Vt("./src/models/image_processors.js"),x=Vt("./src/models/auto/image_processing_auto.js"),F=Vt("./src/base/processing_utils.js"),v=Vt("./src/models/processors.js"),b=Vt("./src/models/auto/processing_auto.js"),C=Vt("./src/generation/streamers.js"),y=Vt("./src/generation/stopping_criteria.js"),P=Vt("./src/generation/logits_process.js")})();var GS=p.ASTFeatureExtractor,KS=p.ASTForAudioClassification,HS=p.ASTModel,qS=p.ASTPreTrainedModel,QS=p.AlbertForMaskedLM,XS=p.AlbertForQuestionAnswering,JS=p.AlbertForSequenceClassification,YS=p.AlbertModel,ZS=p.AlbertPreTrainedModel,eF=p.AlbertTokenizer,tF=p.ArceeForCausalLM,rF=p.ArceeModel,sF=p.ArceePreTrainedModel,oF=p.AudioClassificationPipeline,aF=p.AutoConfig,nF=p.AutoFeatureExtractor,iF=p.AutoImageProcessor,lF=p.AutoModel,cF=p.AutoModelForAudioClassification,dF=p.AutoModelForAudioFrameClassification,uF=p.AutoModelForAudioTextToText,_F=p.AutoModelForCTC,pF=p.AutoModelForCausalLM,mF=p.AutoModelForDepthEstimation,hF=p.AutoModelForDocumentQuestionAnswering,fF=p.AutoModelForImageClassification,gF=p.AutoModelForImageFeatureExtraction,MF=p.AutoModelForImageMatting,wF=p.AutoModelForImageSegmentation,bF=p.AutoModelForImageTextToText,vF=p.AutoModelForImageToImage,xF=p.AutoModelForMaskGeneration,yF=p.AutoModelForMaskedLM,TF=p.AutoModelForNormalEstimation,PF=p.AutoModelForObjectDetection,EF=p.AutoModelForPoseEstimation,kF=p.AutoModelForQuestionAnswering,CF=p.AutoModelForSemanticSegmentation,SF=p.AutoModelForSeq2SeqLM,FF=p.AutoModelForSequenceClassification,IF=p.AutoModelForSpeechSeq2Seq,AF=p.AutoModelForTextToSpectrogram,$F=p.AutoModelForTextToWaveform,DF=p.AutoModelForTokenClassification,OF=p.AutoModelForUniversalSegmentation,LF=p.AutoModelForVision2Seq,BF=p.AutoModelForXVector,zF=p.AutoModelForZeroShotObjectDetection,RF=p.AutoProcessor,NF=p.AutoTokenizer,jF=p.AutomaticSpeechRecognitionPipeline,VF=p.BackgroundRemovalPipeline,WF=p.BartForConditionalGeneration,UF=p.BartForSequenceClassification,GF=p.BartModel,KF=p.BartPretrainedModel,HF=p.BartTokenizer,qF=p.BaseModelOutput,QF=p.BaseStreamer,XF=p.BeitFeatureExtractor,JF=p.BeitForImageClassification,YF=p.BeitModel,ZF=p.BeitPreTrainedModel,eI=p.BertForMaskedLM,tI=p.BertForQuestionAnswering,rI=p.BertForSequenceClassification,sI=p.BertForTokenClassification,oI=p.BertModel,aI=p.BertPreTrainedModel,nI=p.BertTokenizer,iI=p.BitImageProcessor,lI=p.BlenderbotForConditionalGeneration,cI=p.BlenderbotModel,dI=p.BlenderbotPreTrainedModel,uI=p.BlenderbotSmallForConditionalGeneration,_I=p.BlenderbotSmallModel,pI=p.BlenderbotSmallPreTrainedModel,mI=p.BlenderbotSmallTokenizer,hI=p.BlenderbotTokenizer,fI=p.BloomForCausalLM,gI=p.BloomModel,MI=p.BloomPreTrainedModel,wI=p.BloomTokenizer,bI=p.CLIPFeatureExtractor,vI=p.CLIPImageProcessor,xI=p.CLIPModel,yI=p.CLIPPreTrainedModel,TI=p.CLIPSegForImageSegmentation,PI=p.CLIPSegModel,EI=p.CLIPSegPreTrainedModel,kI=p.CLIPTextModel,CI=p.CLIPTextModelWithProjection,SI=p.CLIPTokenizer,FI=p.CLIPVisionModel,II=p.CLIPVisionModelWithProjection,AI=p.CamembertForMaskedLM,$I=p.CamembertForQuestionAnswering,DI=p.CamembertForSequenceClassification,OI=p.CamembertForTokenClassification,LI=p.CamembertModel,BI=p.CamembertPreTrainedModel,zI=p.CamembertTokenizer,RI=p.CausalLMOutput,NI=p.CausalLMOutputWithPast,jI=p.ChineseCLIPFeatureExtractor,VI=p.ChineseCLIPModel,WI=p.ChineseCLIPPreTrainedModel,UI=p.ClapAudioModelWithProjection,GI=p.ClapFeatureExtractor,KI=p.ClapModel,HI=p.ClapPreTrainedModel,qI=p.ClapTextModelWithProjection,QI=p.ClassifierFreeGuidanceLogitsProcessor,XI=p.CodeGenForCausalLM,JI=p.CodeGenModel,YI=p.CodeGenPreTrainedModel,ZI=p.CodeGenTokenizer,eA=p.CodeLlamaTokenizer,tA=p.CohereForCausalLM,rA=p.CohereModel,sA=p.CoherePreTrainedModel,oA=p.CohereTokenizer,aA=p.ConvBertForMaskedLM,nA=p.ConvBertForQuestionAnswering,iA=p.ConvBertForSequenceClassification,lA=p.ConvBertForTokenClassification,cA=p.ConvBertModel,dA=p.ConvBertPreTrainedModel,uA=p.ConvBertTokenizer,_A=p.ConvNextFeatureExtractor,pA=p.ConvNextForImageClassification,mA=p.ConvNextImageProcessor,hA=p.ConvNextModel,fA=p.ConvNextPreTrainedModel,gA=p.ConvNextV2ForImageClassification,MA=p.ConvNextV2Model,wA=p.ConvNextV2PreTrainedModel,bA=p.DFineForObjectDetection,vA=p.DFineModel,xA=p.DFinePreTrainedModel,yA=p.DINOv3ConvNextModel,TA=p.DINOv3ConvNextPreTrainedModel,PA=p.DINOv3ViTImageProcessor,EA=p.DINOv3ViTModel,kA=p.DINOv3ViTPreTrainedModel,CA=p.DPTFeatureExtractor,SA=p.DPTForDepthEstimation,FA=p.DPTImageProcessor,IA=p.DPTModel,AA=p.DPTPreTrainedModel,$A=p.DacDecoderModel,DA=p.DacDecoderOutput,OA=p.DacEncoderModel,LA=p.DacEncoderOutput,BA=p.DacFeatureExtractor,zA=p.DacModel,RA=p.DacPreTrainedModel,NA=p.DataTypeMap,jA=p.DebertaForMaskedLM,VA=p.DebertaForQuestionAnswering,WA=p.DebertaForSequenceClassification,UA=p.DebertaForTokenClassification,GA=p.DebertaModel,KA=p.DebertaPreTrainedModel,HA=p.DebertaTokenizer,qA=p.DebertaV2ForMaskedLM,QA=p.DebertaV2ForQuestionAnswering,XA=p.DebertaV2ForSequenceClassification,JA=p.DebertaV2ForTokenClassification,YA=p.DebertaV2Model,ZA=p.DebertaV2PreTrainedModel,e$=p.DebertaV2Tokenizer,t$=p.DecisionTransformerModel,r$=p.DecisionTransformerPreTrainedModel,s$=p.DeiTFeatureExtractor,o$=p.DeiTForImageClassification,a$=p.DeiTImageProcessor,n$=p.DeiTModel,i$=p.DeiTPreTrainedModel,l$=p.DepthAnythingForDepthEstimation,c$=p.DepthAnythingPreTrainedModel,d$=p.DepthEstimationPipeline,u$=p.DepthProForDepthEstimation,_$=p.DepthProPreTrainedModel,p$=p.DetrFeatureExtractor,m$=p.DetrForObjectDetection,h$=p.DetrForSegmentation,f$=p.DetrImageProcessor,g$=p.DetrModel,M$=p.DetrObjectDetectionOutput,w$=p.DetrPreTrainedModel,b$=p.DetrSegmentationOutput,v$=p.Dinov2ForImageClassification,x$=p.Dinov2Model,y$=p.Dinov2PreTrainedModel,T$=p.Dinov2WithRegistersForImageClassification,P$=p.Dinov2WithRegistersModel,E$=p.Dinov2WithRegistersPreTrainedModel,k$=p.DistilBertForMaskedLM,C$=p.DistilBertForQuestionAnswering,S$=p.DistilBertForSequenceClassification,F$=p.DistilBertForTokenClassification,I$=p.DistilBertModel,A$=p.DistilBertPreTrainedModel,$$=p.DistilBertTokenizer,D$=p.DocumentQuestionAnsweringPipeline,O$=p.DonutFeatureExtractor,L$=p.DonutImageProcessor,B$=p.DonutSwinModel,z$=p.DonutSwinPreTrainedModel,R$=p.EdgeTamModel,N$=p.EfficientNetForImageClassification,j$=p.EfficientNetImageProcessor,V$=p.EfficientNetModel,W$=p.EfficientNetPreTrainedModel,U$=p.ElectraForMaskedLM,G$=p.ElectraForQuestionAnswering,K$=p.ElectraForSequenceClassification,H$=p.ElectraForTokenClassification,q$=p.ElectraModel,Q$=p.ElectraPreTrainedModel,X$=p.ElectraTokenizer,J$=p.EncodecFeatureExtractor,Y$=p.EosTokenCriteria,Z$=p.Ernie4_5ForCausalLM,eD=p.Ernie4_5Model,tD=p.Ernie4_5PreTrainedModel,rD=p.EsmForMaskedLM,sD=p.EsmForSequenceClassification,oD=p.EsmForTokenClassification,aD=p.EsmModel,nD=p.EsmPreTrainedModel,iD=p.EsmTokenizer,lD=p.ExaoneForCausalLM,cD=p.ExaoneModel,dD=p.ExaonePreTrainedModel,uD=p.FFT,_D=p.FalconForCausalLM,pD=p.FalconModel,mD=p.FalconPreTrainedModel,hD=p.FalconTokenizer,fD=p.FastViTForImageClassification,gD=p.FastViTModel,MD=p.FastViTPreTrainedModel,wD=p.FeatureExtractionPipeline,bD=p.FeatureExtractor,vD=p.FillMaskPipeline,xD=p.Florence2ForConditionalGeneration,yD=p.Florence2PreTrainedModel,TD=p.Florence2Processor,PD=p.ForcedBOSTokenLogitsProcessor,ED=p.ForcedEOSTokenLogitsProcessor,kD=p.GLPNFeatureExtractor,CD=p.GLPNForDepthEstimation,SD=p.GLPNModel,FD=p.GLPNPreTrainedModel,ID=p.GPT2LMHeadModel,AD=p.GPT2Model,$D=p.GPT2PreTrainedModel,DD=p.GPT2Tokenizer,OD=p.GPTBigCodeForCausalLM,LD=p.GPTBigCodeModel,BD=p.GPTBigCodePreTrainedModel,zD=p.GPTJForCausalLM,RD=p.GPTJModel,ND=p.GPTJPreTrainedModel,jD=p.GPTNeoForCausalLM,VD=p.GPTNeoModel,WD=p.GPTNeoPreTrainedModel,UD=p.GPTNeoXForCausalLM,GD=p.GPTNeoXModel,KD=p.GPTNeoXPreTrainedModel,HD=p.GPTNeoXTokenizer,qD=p.Gemma2ForCausalLM,QD=p.Gemma2Model,XD=p.Gemma2PreTrainedModel,JD=p.Gemma3ForCausalLM,YD=p.Gemma3Model,ZD=p.Gemma3PreTrainedModel,eO=p.Gemma3nAudioFeatureExtractor,tO=p.Gemma3nForConditionalGeneration,rO=p.Gemma3nPreTrainedModel,sO=p.Gemma3nProcessor,oO=p.GemmaForCausalLM,aO=p.GemmaModel,nO=p.GemmaPreTrainedModel,iO=p.GemmaTokenizer,lO=p.GlmForCausalLM,cO=p.GlmModel,dO=p.GlmPreTrainedModel,uO=p.GraniteForCausalLM,_O=p.GraniteModel,pO=p.GraniteMoeHybridForCausalLM,mO=p.GraniteMoeHybridModel,hO=p.GraniteMoeHybridPreTrainedModel,fO=p.GranitePreTrainedModel,gO=p.Grok1Tokenizer,MO=p.GroundingDinoForObjectDetection,wO=p.GroundingDinoImageProcessor,bO=p.GroundingDinoPreTrainedModel,vO=p.GroundingDinoProcessor,xO=p.GroupViTModel,yO=p.GroupViTPreTrainedModel,TO=p.HeliumForCausalLM,PO=p.HeliumModel,EO=p.HeliumPreTrainedModel,kO=p.HerbertTokenizer,CO=p.HieraForImageClassification,SO=p.HieraModel,FO=p.HieraPreTrainedModel,IO=p.HubertForCTC,AO=p.HubertForSequenceClassification,$O=p.HubertModel,DO=p.HubertPreTrainedModel,OO=p.IJepaForImageClassification,LO=p.IJepaModel,BO=p.IJepaPreTrainedModel,zO=p.Idefics3ForConditionalGeneration,RO=p.Idefics3ImageProcessor,NO=p.Idefics3PreTrainedModel,jO=p.Idefics3Processor,VO=p.ImageClassificationPipeline,WO=p.ImageFeatureExtractionPipeline,UO=p.ImageFeatureExtractor,GO=p.ImageMattingOutput,KO=p.ImageProcessor,HO=p.ImageSegmentationPipeline,qO=p.ImageToImagePipeline,QO=p.ImageToTextPipeline,XO=p.InterruptableStoppingCriteria,JO=p.JAISLMHeadModel,YO=p.JAISModel,ZO=p.JAISPreTrainedModel,eL=p.JinaCLIPImageProcessor,tL=p.JinaCLIPModel,rL=p.JinaCLIPPreTrainedModel,sL=p.JinaCLIPProcessor,oL=p.JinaCLIPTextModel,aL=p.JinaCLIPVisionModel,nL=p.Lfm2ForCausalLM,iL=p.Lfm2Model,lL=p.Lfm2PreTrainedModel,cL=p.LiteWhisperForConditionalGeneration,dL=p.Llama4ForCausalLM,uL=p.Llama4PreTrainedModel,_L=p.LlamaForCausalLM,pL=p.LlamaModel,mL=p.LlamaPreTrainedModel,hL=p.LlamaTokenizer,fL=p.LlavaForConditionalGeneration,gL=p.LlavaOnevisionForConditionalGeneration,ML=p.LlavaOnevisionImageProcessor,wL=p.LlavaPreTrainedModel,bL=p.LlavaProcessor,vL=p.LlavaQwen2ForCausalLM,xL=p.LogitsProcessor,yL=p.LogitsProcessorList,TL=p.LogitsWarper,PL=p.LongT5ForConditionalGeneration,EL=p.LongT5Model,kL=p.LongT5PreTrainedModel,CL=p.M2M100ForConditionalGeneration,SL=p.M2M100Model,FL=p.M2M100PreTrainedModel,IL=p.M2M100Tokenizer,AL=p.MBart50Tokenizer,$L=p.MBartForCausalLM,DL=p.MBartForConditionalGeneration,OL=p.MBartForSequenceClassification,LL=p.MBartModel,BL=p.MBartPreTrainedModel,zL=p.MBartTokenizer,RL=p.MPNetForMaskedLM,NL=p.MPNetForQuestionAnswering,jL=p.MPNetForSequenceClassification,VL=p.MPNetForTokenClassification,WL=p.MPNetModel,UL=p.MPNetPreTrainedModel,GL=p.MPNetTokenizer,KL=p.MT5ForConditionalGeneration,HL=p.MT5Model,qL=p.MT5PreTrainedModel,QL=p.MarianMTModel,XL=p.MarianModel,JL=p.MarianPreTrainedModel,YL=p.MarianTokenizer,ZL=p.Mask2FormerImageProcessor,e3=p.MaskFormerFeatureExtractor,t3=p.MaskFormerForInstanceSegmentation,r3=p.MaskFormerImageProcessor,s3=p.MaskFormerModel,o3=p.MaskFormerPreTrainedModel,a3=p.MaskedLMOutput,n3=p.MaxLengthCriteria,i3=p.Metric3DForDepthEstimation,l3=p.Metric3DPreTrainedModel,c3=p.Metric3Dv2ForDepthEstimation,d3=p.Metric3Dv2PreTrainedModel,u3=p.MgpstrForSceneTextRecognition,_3=p.MgpstrModelOutput,p3=p.MgpstrPreTrainedModel,m3=p.MgpstrProcessor,h3=p.MgpstrTokenizer,f3=p.MimiDecoderModel,g3=p.MimiDecoderOutput,M3=p.MimiEncoderModel,w3=p.MimiEncoderOutput,b3=p.MimiModel,v3=p.MimiPreTrainedModel,x3=p.MinLengthLogitsProcessor,y3=p.MinNewTokensLengthLogitsProcessor,T3=p.Ministral3ForCausalLM,P3=p.Ministral3Model,E3=p.Ministral3PreTrainedModel,k3=p.MinistralForCausalLM,C3=p.MinistralModel,S3=p.MinistralPreTrainedModel,F3=p.Mistral3ForConditionalGeneration,I3=p.MistralForCausalLM,A3=p.MistralModel,$3=p.MistralPreTrainedModel,D3=p.MobileBertForMaskedLM,O3=p.MobileBertForQuestionAnswering,L3=p.MobileBertForSequenceClassification,B3=p.MobileBertModel,z3=p.MobileBertPreTrainedModel,R3=p.MobileBertTokenizer,N3=p.MobileLLMForCausalLM,j3=p.MobileLLMModel,V3=p.MobileLLMPreTrainedModel,W3=p.MobileNetV1FeatureExtractor,U3=p.MobileNetV1ForImageClassification,G3=p.MobileNetV1ForSemanticSegmentation,K3=p.MobileNetV1ImageProcessor,H3=p.MobileNetV1Model,q3=p.MobileNetV1PreTrainedModel,Q3=p.MobileNetV2FeatureExtractor,X3=p.MobileNetV2ForImageClassification,J3=p.MobileNetV2ForSemanticSegmentation,Y3=p.MobileNetV2ImageProcessor,Z3=p.MobileNetV2Model,eB=p.MobileNetV2PreTrainedModel,tB=p.MobileNetV3FeatureExtractor,rB=p.MobileNetV3ForImageClassification,sB=p.MobileNetV3ForSemanticSegmentation,oB=p.MobileNetV3ImageProcessor,aB=p.MobileNetV3Model,nB=p.MobileNetV3PreTrainedModel,iB=p.MobileNetV4FeatureExtractor,lB=p.MobileNetV4ForImageClassification,cB=p.MobileNetV4ForSemanticSegmentation,dB=p.MobileNetV4ImageProcessor,uB=p.MobileNetV4Model,_B=p.MobileNetV4PreTrainedModel,pB=p.MobileViTFeatureExtractor,mB=p.MobileViTForImageClassification,hB=p.MobileViTImageProcessor,fB=p.MobileViTModel,gB=p.MobileViTPreTrainedModel,MB=p.MobileViTV2ForImageClassification,wB=p.MobileViTV2Model,bB=p.MobileViTV2PreTrainedModel,vB=p.ModelOutput,xB=p.ModernBertDecoderForCausalLM,yB=p.ModernBertDecoderModel,TB=p.ModernBertDecoderPreTrainedModel,PB=p.ModernBertForMaskedLM,EB=p.ModernBertForSequenceClassification,kB=p.ModernBertForTokenClassification,CB=p.ModernBertModel,SB=p.ModernBertPreTrainedModel,FB=p.Moondream1ForConditionalGeneration,IB=p.MoonshineFeatureExtractor,AB=p.MoonshineForConditionalGeneration,$B=p.MoonshineModel,DB=p.MoonshinePreTrainedModel,OB=p.MoonshineProcessor,LB=p.MptForCausalLM,BB=p.MptModel,zB=p.MptPreTrainedModel,RB=p.MultiModalityCausalLM,NB=p.MultiModalityPreTrainedModel,jB=p.MusicgenForCausalLM,VB=p.MusicgenForConditionalGeneration,WB=p.MusicgenModel,UB=p.MusicgenPreTrainedModel,GB=p.NanoChatForCausalLM,KB=p.NanoChatModel,HB=p.NanoChatPreTrainedModel,qB=p.NeoBertForMaskedLM,QB=p.NeoBertForQuestionAnswering,XB=p.NeoBertForSequenceClassification,JB=p.NeoBertForTokenClassification,YB=p.NeoBertModel,ZB=p.NeoBertPreTrainedModel,ez=p.NllbTokenizer,tz=p.NoBadWordsLogitsProcessor,rz=p.NoRepeatNGramLogitsProcessor,sz=p.NomicBertModel,oz=p.NomicBertPreTrainedModel,az=p.NougatImageProcessor,nz=p.NougatTokenizer,iz=p.OPTForCausalLM,lz=p.OPTModel,cz=p.OPTPreTrainedModel,dz=p.ObjectDetectionPipeline,uz=p.Olmo2ForCausalLM,_z=p.Olmo2Model,pz=p.Olmo2PreTrainedModel,mz=p.OlmoForCausalLM,hz=p.OlmoModel,fz=p.OlmoPreTrainedModel,gz=p.OpenELMForCausalLM,Mz=p.OpenELMModel,wz=p.OpenELMPreTrainedModel,bz=p.OwlViTFeatureExtractor,vz=p.OwlViTForObjectDetection,xz=p.OwlViTImageProcessor,yz=p.OwlViTModel,Tz=p.OwlViTPreTrainedModel,Pz=p.OwlViTProcessor,Ez=p.Owlv2ForObjectDetection,kz=p.Owlv2ImageProcessor,Cz=p.Owlv2Model,Sz=p.Owlv2PreTrainedModel,Fz=p.PaliGemmaForConditionalGeneration,Iz=p.PaliGemmaPreTrainedModel,Az=p.PaliGemmaProcessor,$z=p.ParakeetFeatureExtractor,Dz=p.ParakeetForCTC,Oz=p.ParakeetPreTrainedModel,Lz=p.PatchTSMixerForPrediction,Bz=p.PatchTSMixerModel,zz=p.PatchTSMixerPreTrainedModel,Rz=p.PatchTSTForPrediction,Nz=p.PatchTSTModel,jz=p.PatchTSTPreTrainedModel,Vz=p.Phi3ForCausalLM,Wz=p.Phi3Model,Uz=p.Phi3PreTrainedModel,Gz=p.Phi3VForCausalLM,Kz=p.Phi3VImageProcessor,Hz=p.Phi3VPreTrainedModel,qz=p.Phi3VProcessor,Qz=p.PhiForCausalLM,Xz=p.PhiModel,Jz=p.PhiPreTrainedModel,Yz=p.Pipeline,Zz=p.PixtralImageProcessor,eR=p.PixtralProcessor,tR=p.PreTrainedModel,rR=p.PreTrainedTokenizer,sR=p.PretrainedConfig,oR=p.PretrainedMixin,aR=p.Processor,nR=p.PvtForImageClassification,iR=p.PvtImageProcessor,lR=p.PvtModel,cR=p.PvtPreTrainedModel,dR=p.PyAnnoteFeatureExtractor,uR=p.PyAnnoteForAudioFrameClassification,_R=p.PyAnnoteModel,pR=p.PyAnnotePreTrainedModel,mR=p.PyAnnoteProcessor,hR=p.QuestionAnsweringModelOutput,fR=p.QuestionAnsweringPipeline,gR=p.Qwen2ForCausalLM,MR=p.Qwen2Model,wR=p.Qwen2PreTrainedModel,bR=p.Qwen2Tokenizer,vR=p.Qwen2VLForConditionalGeneration,xR=p.Qwen2VLImageProcessor,yR=p.Qwen2VLPreTrainedModel,TR=p.Qwen2VLProcessor,PR=p.Qwen3ForCausalLM,ER=p.Qwen3Model,kR=p.Qwen3PreTrainedModel,CR=p.RFDetrForObjectDetection,SR=p.RFDetrModel,FR=p.RFDetrObjectDetectionOutput,IR=p.RFDetrPreTrainedModel,AR=p.RTDetrForObjectDetection,$R=p.RTDetrImageProcessor,DR=p.RTDetrModel,OR=p.RTDetrObjectDetectionOutput,LR=p.RTDetrPreTrainedModel,BR=p.RTDetrV2ForObjectDetection,zR=p.RTDetrV2Model,RR=p.RTDetrV2ObjectDetectionOutput,NR=p.RTDetrV2PreTrainedModel,jR=p.RawAudio,VR=p.RawImage,WR=p.RawVideo,UR=p.RawVideoFrame,GR=p.RepetitionPenaltyLogitsProcessor,KR=p.ResNetForImageClassification,HR=p.ResNetModel,qR=p.ResNetPreTrainedModel,QR=p.RoFormerForMaskedLM,XR=p.RoFormerForQuestionAnswering,JR=p.RoFormerForSequenceClassification,YR=p.RoFormerForTokenClassification,ZR=p.RoFormerModel,eN=p.RoFormerPreTrainedModel,tN=p.RoFormerTokenizer,rN=p.RobertaForMaskedLM,sN=p.RobertaForQuestionAnswering,oN=p.RobertaForSequenceClassification,aN=p.RobertaForTokenClassification,nN=p.RobertaModel,iN=p.RobertaPreTrainedModel,lN=p.RobertaTokenizer,cN=p.Sam2ImageProcessor,dN=p.Sam2ImageSegmentationOutput,uN=p.Sam2Model,_N=p.Sam2PreTrainedModel,pN=p.Sam2Processor,mN=p.Sam2VideoProcessor,hN=p.Sam3ImageProcessor,fN=p.Sam3TrackerModel,gN=p.SamImageProcessor,MN=p.SamImageSegmentationOutput,wN=p.SamModel,bN=p.SamPreTrainedModel,vN=p.SamProcessor,xN=p.SapiensForDepthEstimation,yN=p.SapiensForNormalEstimation,TN=p.SapiensForSemanticSegmentation,PN=p.SapiensPreTrainedModel,EN=p.SeamlessM4TFeatureExtractor,kN=p.SegformerFeatureExtractor,CN=p.SegformerForImageClassification,SN=p.SegformerForSemanticSegmentation,FN=p.SegformerImageProcessor,IN=p.SegformerModel,AN=p.SegformerPreTrainedModel,$N=p.Seq2SeqLMOutput,DN=p.SequenceClassifierOutput,ON=p.SiglipImageProcessor,LN=p.SiglipModel,BN=p.SiglipPreTrainedModel,zN=p.SiglipTextModel,RN=p.SiglipTokenizer,NN=p.SiglipVisionModel,jN=p.SmolLM3ForCausalLM,VN=p.SmolLM3Model,WN=p.SmolLM3PreTrainedModel,UN=p.SmolVLMForConditionalGeneration,GN=p.SmolVLMImageProcessor,KN=p.SmolVLMProcessor,HN=p.SnacDecoderModel,qN=p.SnacEncoderModel,QN=p.SnacFeatureExtractor,XN=p.SnacModel,JN=p.SnacPreTrainedModel,YN=p.SpeechT5FeatureExtractor,ZN=p.SpeechT5ForSpeechToText,ej=p.SpeechT5ForTextToSpeech,tj=p.SpeechT5HifiGan,rj=p.SpeechT5Model,sj=p.SpeechT5PreTrainedModel,oj=p.SpeechT5Processor,aj=p.SpeechT5Tokenizer,nj=p.SqueezeBertForMaskedLM,ij=p.SqueezeBertForQuestionAnswering,lj=p.SqueezeBertForSequenceClassification,cj=p.SqueezeBertModel,dj=p.SqueezeBertPreTrainedModel,uj=p.SqueezeBertTokenizer,_j=p.StableLmForCausalLM,pj=p.StableLmModel,mj=p.StableLmPreTrainedModel,hj=p.Starcoder2ForCausalLM,fj=p.Starcoder2Model,gj=p.Starcoder2PreTrainedModel,Mj=p.StoppingCriteria,wj=p.StoppingCriteriaList,bj=p.StyleTextToSpeech2Model,vj=p.StyleTextToSpeech2PreTrainedModel,xj=p.SummarizationPipeline,yj=p.SupertonicForConditionalGeneration,Tj=p.SupertonicPreTrainedModel,Pj=p.SuppressTokensAtBeginLogitsProcessor,Ej=p.Swin2SRForImageSuperResolution,kj=p.Swin2SRImageProcessor,Cj=p.Swin2SRModel,Sj=p.Swin2SRPreTrainedModel,Fj=p.SwinForImageClassification,Ij=p.SwinForSemanticSegmentation,Aj=p.SwinModel,$j=p.SwinPreTrainedModel,Dj=p.T5ForConditionalGeneration,Oj=p.T5Model,Lj=p.T5PreTrainedModel,Bj=p.T5Tokenizer,zj=p.TableTransformerForObjectDetection,Rj=p.TableTransformerModel,Nj=p.TableTransformerObjectDetectionOutput,jj=p.TableTransformerPreTrainedModel,Vj=p.TemperatureLogitsWarper,Wj=p.Tensor,Uj=p.Text2TextGenerationPipeline,Gj=p.TextClassificationPipeline,Kj=p.TextGenerationPipeline,Hj=p.TextStreamer,qj=p.TextToAudioPipeline,Qj=p.TokenClassificationPipeline,Xj=p.TokenClassifierOutput,Jj=p.TokenizerModel,Yj=p.TopKLogitsWarper,Zj=p.TopPLogitsWarper,eV=p.TrOCRForCausalLM,tV=p.TrOCRPreTrainedModel,rV=p.TranslationPipeline,sV=p.UltravoxModel,oV=p.UltravoxPreTrainedModel,aV=p.UltravoxProcessor,nV=p.UniSpeechForCTC,iV=p.UniSpeechForSequenceClassification,lV=p.UniSpeechModel,cV=p.UniSpeechPreTrainedModel,dV=p.UniSpeechSatForAudioFrameClassification,uV=p.UniSpeechSatForCTC,_V=p.UniSpeechSatForSequenceClassification,pV=p.UniSpeechSatModel,mV=p.UniSpeechSatPreTrainedModel,hV=p.VLChatProcessor,fV=p.VLMImageProcessor,gV=p.VaultGemmaForCausalLM,MV=p.VaultGemmaModel,wV=p.VaultGemmaPreTrainedModel,bV=p.ViTFeatureExtractor,vV=p.ViTForImageClassification,xV=p.ViTImageProcessor,yV=p.ViTMAEModel,TV=p.ViTMAEPreTrainedModel,PV=p.ViTMSNForImageClassification,EV=p.ViTMSNModel,kV=p.ViTMSNPreTrainedModel,CV=p.ViTModel,SV=p.ViTPreTrainedModel,FV=p.VisionEncoderDecoderModel,IV=p.VitMatteForImageMatting,AV=p.VitMatteImageProcessor,$V=p.VitMattePreTrainedModel,DV=p.VitPoseForPoseEstimation,OV=p.VitPoseImageProcessor,LV=p.VitPosePreTrainedModel,BV=p.VitsModel,zV=p.VitsModelOutput,RV=p.VitsPreTrainedModel,NV=p.VitsTokenizer,jV=p.VoxtralForConditionalGeneration,VV=p.VoxtralProcessor,WV=p.Wav2Vec2BertForCTC,UV=p.Wav2Vec2BertForSequenceClassification,GV=p.Wav2Vec2BertModel,KV=p.Wav2Vec2BertPreTrainedModel,HV=p.Wav2Vec2CTCTokenizer,qV=p.Wav2Vec2FeatureExtractor,QV=p.Wav2Vec2ForAudioFrameClassification,XV=p.Wav2Vec2ForCTC,JV=p.Wav2Vec2ForSequenceClassification,YV=p.Wav2Vec2Model,ZV=p.Wav2Vec2PreTrainedModel,e4=p.Wav2Vec2Processor,t4=p.Wav2Vec2ProcessorWithLM,r4=p.WavLMForAudioFrameClassification,s4=p.WavLMForCTC,o4=p.WavLMForSequenceClassification,a4=p.WavLMForXVector,n4=p.WavLMModel,i4=p.WavLMPreTrainedModel,l4=p.WeSpeakerFeatureExtractor,c4=p.WeSpeakerResNetModel,d4=p.WeSpeakerResNetPreTrainedModel,u4=p.WhisperFeatureExtractor,_4=p.WhisperForConditionalGeneration,p4=p.WhisperModel,m4=p.WhisperPreTrainedModel,h4=p.WhisperProcessor,f4=p.WhisperTextStreamer,g4=p.WhisperTimeStampLogitsProcessor,M4=p.WhisperTokenizer,w4=p.XLMForQuestionAnswering,b4=p.XLMForSequenceClassification,v4=p.XLMForTokenClassification,x4=p.XLMModel,y4=p.XLMPreTrainedModel,T4=p.XLMRobertaForMaskedLM,P4=p.XLMRobertaForQuestionAnswering,E4=p.XLMRobertaForSequenceClassification,k4=p.XLMRobertaForTokenClassification,C4=p.XLMRobertaModel,S4=p.XLMRobertaPreTrainedModel,F4=p.XLMRobertaTokenizer,I4=p.XLMTokenizer,A4=p.XLMWithLMHeadModel,$4=p.XVectorOutput,D4=p.YolosFeatureExtractor,O4=p.YolosForObjectDetection,L4=p.YolosImageProcessor,B4=p.YolosModel,z4=p.YolosObjectDetectionOutput,R4=p.YolosPreTrainedModel,N4=p.ZeroShotAudioClassificationPipeline,j4=p.ZeroShotClassificationPipeline,V4=p.ZeroShotImageClassificationPipeline,W4=p.ZeroShotObjectDetectionPipeline,U4=p.bankers_round,G4=p.cat,K4=p.cos_sim,H4=p.dot,q4=p.dynamic_time_warping,Q4=p.env,X4=p.full,J4=p.full_like,Y4=p.getCacheShapes,Z4=p.hamming,eW=p.hanning,tW=p.interpolate,rW=p.interpolate_4d,sW=p.interpolate_data,oW=p.is_chinese_char,aW=p.layer_norm,nW=p.load_image,iW=p.load_video,lW=p.log_softmax,cW=p.magnitude,dW=p.matmul,uW=p.max,_W=p.mean,pW=p.mean_pooling,mW=p.medianFilter,hW=p.mel_filter_bank,fW=p.min,gW=p.ones,MW=p.ones_like,wW=p.permute,bW=p.permute_data,D0=p.pipeline,vW=p.quantize_embeddings,xW=p.rand,yW=p.randn,TW=p.read_audio,PW=p.rfft,EW=p.round,kW=p.slice,CW=p.softmax,SW=p.spectrogram,FW=p.stack,IW=p.std_mean,AW=p.topk,$W=p.window_function,DW=p.zeros,OW=p.zeros_like;async function O0(e){let{spec:r,onLoading:t}=e;return await D0(e.task,r.model,{device:r.device,dtype:r.dtype,progress_callback:o=>{t({total:o.total,progress:o.progress})}})}function ME(e){if(e instanceof To)return e;let r=new To(wE(e));return e instanceof Error&&(r.stack=e.stack),r}function Pu(e){return async(...r)=>{try{return await e(...r)}catch(t){throw ME(t)}}}function wE(e){if(e instanceof Error)return e.message;if(typeof e=="string")return e;try{return JSON.stringify(e)??String(e)}catch{return String(e)}}var L0=ls(),bE=e=>Bf(async r=>{L0.resolve({spec:r,pipe:await O0({spec:r,task:"background-removal",onLoading:t=>e.loading(t)})})}),Yi=new OffscreenCanvas(1920,1080),vE=Yi.getContext("2d");await eg.worker(e=>{let r=bE(e.host);return{prepare:Pu(r),remove:Pu(async t=>{let{pipe:s}=await L0.promise;Yi.width=t.displayWidth,Yi.height=t.displayHeight,vE?.drawImage(t,0,0);let a=(await s(Yi))[0],n=new VideoFrame(a.toCanvas(),{timestamp:t.timestamp,duration:t.duration??void 0});return t.close(),e.transfer=[n],n})}});
2852
2852
  /*! Bundled license information:
2853
2853
 
2854
2854
  onnxruntime-web/dist/ort.bundle.min.mjs: