@omnimedia/omnitool 1.1.0-30 → 1.1.0-32

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 ET=Object.defineProperty;var Eo=(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 gh=(e,r)=>{for(var t in r)ET(e,t,{get:r[t],enumerable:!0})};var $s=Object.freeze({eq(e,r){if(e.length!==r.length)return!1;for(let t=0;t<=e.length;t++)if(e.at(t)!==r.at(t))return!1;return!0},random(e){return crypto.getRandomValues(new Uint8Array(e))}});var ko=Object.freeze({fromBytes(e){return[...e].map(r=>r.toString(16).padStart(2,"0")).join("")},toBytes(e){if(e.length%2!==0)throw new Error("must have even number of hex characters");let r=new Uint8Array(e.length/2);for(let t=0;t<e.length;t+=2)r[t/2]=parseInt(e.slice(t,t+2),16);return r},random(e=32){return this.fromBytes($s.random(e))},string(e){return ko.fromBytes(e)},bytes(e){return ko.toBytes(e)}});var Ec=58,fi="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",kc=Object.freeze({fromBytes(e){let r=BigInt("0x"+ko.fromBytes(e)),t="";for(;r>0;){let s=r%BigInt(Ec);r=r/BigInt(Ec),t=fi[Number(s)]+t}for(let s of e)if(s===0)t=fi[0]+t;else break;return t},toBytes(e){let r=BigInt(0);for(let a of e){let i=fi.indexOf(a);if(i===-1)throw new Error(`Invalid character '${a}' in base58 string`);r=r*BigInt(Ec)+BigInt(i)}let t=r.toString(16);t.length%2!==0&&(t="0"+t);let s=ko.toBytes(t),o=0;for(let a of e)if(a===fi[0])o++;else break;let n=new Uint8Array(o+s.length);return n.set(s,o),n},random(e=32){return this.fromBytes($s.random(e))},string(e){return kc.fromBytes(e)},bytes(e){return kc.toBytes(e)}});var wh=class{lexicon;static lexicons=Object.freeze({base2:{characters:"01"},hex:{characters:"0123456789abcdef"},base36:{characters:"0123456789abcdefghijklmnopqrstuvwxyz"},base58:{characters:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"},base62:{characters:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"},base64url:{negativePrefix:"~",characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},base64:{characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",padding:{character:"=",size:4}}});lookup;negativePrefix;constructor(r){this.lexicon=r,this.lookup=Object.fromEntries([...r.characters].map((t,s)=>[t,s])),this.negativePrefix=r.negativePrefix??"-"}toBytes(r){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let i=0,l=0,c=[];for(let p of r){if(p===this.lexicon.padding?.character)continue;let u=this.lookup[p];if(u===void 0)throw new Error(`Invalid character: ${p}`);for(i=i<<t|u,l+=t;l>=8;)l-=8,c.push(i>>l&255)}return new Uint8Array(c)}let s=0n,o=BigInt(this.lexicon.characters.length),n=!1;r.startsWith(this.negativePrefix)&&(r=r.slice(this.negativePrefix.length),n=!0);for(let i of r){let l=this.lookup[i];if(l===void 0)throw new Error(`Invalid character: ${i}`);s=s*o+BigInt(l)}let a=[];for(;s>0n;)a.unshift(Number(s%256n)),s=s/256n;return new Uint8Array(a)}fromBytes(r){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let a=0,i=0,l="";for(let c of r)for(a=a<<8|c,i+=8;i>=t;){i-=t;let p=a>>i&(1<<t)-1;l+=this.lexicon.characters[p]}if(i>0){let c=a<<t-i&(1<<t)-1;l+=this.lexicon.characters[c]}if(this.lexicon.padding)for(;l.length%this.lexicon.padding.size!==0;)l+=this.lexicon.padding.character;return l}let s=0n;for(let a of r)s=(s<<8n)+BigInt(a);if(s===0n)return this.lexicon.characters[0];let o=BigInt(this.lexicon.characters.length),n="";for(;s>0n;)n=this.lexicon.characters[Number(s%o)]+n,s=s/o;return n}toInteger(r){if(!r)return 0;let t=0n,s=!1,o=BigInt(this.lexicon.characters.length);r.startsWith(this.negativePrefix)&&(r=r.slice(this.negativePrefix.length),s=!0);for(let n of r){let a=this.lookup[n];if(a===void 0)throw new Error(`Invalid character: ${n}`);t=t*o+BigInt(a)}return Number(s?-t:t)}fromInteger(r){r=Math.floor(r);let t=r<0,s=BigInt(t?-r:r);if(s===0n)return this.lexicon.characters[0];let o=BigInt(this.lexicon.characters.length),n="";for(;s>0n;)n=this.lexicon.characters[Number(s%o)]+n,s=s/o;return t?`${this.negativePrefix}${n}`:n}random(r=32){return this.fromBytes($s.random(r))}};var Cc=Object.freeze({fromBytes(e){return typeof btoa=="function"?btoa(String.fromCharCode(...e)):Buffer.from(e).toString("base64")},toBytes(e){return typeof atob=="function"?Uint8Array.from(atob(e),r=>r.charCodeAt(0)):Uint8Array.from(Buffer.from(e,"base64"))},random(e=32){return this.fromBytes($s.random(e))},string(e){return Cc.fromBytes(e)},bytes(e){return Cc.toBytes(e)}});var bh=Object.freeze({fromBytes(e){return new TextDecoder().decode(e)},toBytes(e){return new TextEncoder().encode(e)},string(e){return bh.fromBytes(e)},bytes(e){return bh.toBytes(e)}});var Sc=Object.freeze({set:e=>e!=null,unset: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"});function Co(){let e,r,t=new Promise((o,n)=>{e=o,r=n});function s(o){return o.then(e).catch(r),t}return{promise:t,resolve:e,reject:r,entangle:s}}function kT(e){return{map:r=>Mh(e,r),filter:r=>xh(e,r)}}kT.pipe=Object.freeze({map:e=>r=>Mh(r,e),filter:e=>r=>xh(r,e)});var Mh=(e,r)=>Object.fromEntries(Object.entries(e).map(([t,s])=>[t,r(s,t)])),xh=(e,r)=>Object.fromEntries(Object.entries(e).filter(([t,s])=>r(s,t)));function vh(e){let r=!1,t;return(...s)=>(r||(r=!0,t=e(...s)),t)}function Fc(e,r){return{error:t=>e.error({...r,...t}),rpcRequest:t=>e.rpcRequest({...r,...t}),rpcError:t=>e.rpcError({...r,...t})}}var hi=()=>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 yh(){return hi()}var oo=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 gi=()=>({none:e=>e,uncolor:ST,mix:FT,hex:IT,rgb:Th,bgRgb:AT});function ST(e){return e.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,"")}function FT(...e){return r=>{for(let t of e)r=t(r);return r}}function IT(e){e=e.replace(/^#/,"");let r,t,s,o;if(e.length===3)r=parseInt(e.split("").map(n=>n+n).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,Th(t,s,o)}function Th(e,r,t){let s=`\x1B[38;2;${e};${r};${t}m`;return o=>`${s}${o}${oo.reset}`}function AT(e,r,t){let s=`\x1B[48;2;${e};${r};${t}m`;return o=>`${s}${o}${oo.reset}`}var Yn={...Object.fromEntries(Object.entries(oo).map(([e])=>[e,r=>r])),...gi()};var Zn={...Object.fromEntries(Object.entries(oo).map(([e,r])=>[e,t=>`${r}${t}${oo.reset}`])),...gi()};function Ic(){return typeof Deno<"u"&&typeof Deno.version<"u"}function Ac(){return typeof process<"u"&&process.versions&&process.versions.node}function Ph(){return Ac()?process.env.FORCE_COLOR||process.stdout.isTTY&&process.env.TERM!=="dumb":Ic()?Deno.env.get("FORCE_COLOR")||Deno.isatty(Deno.stdout.rid)&&Deno.env.get("TERM")!=="dumb":!1}var $c=()=>Ph()?Zn:Yn;var wi=()=>({colors:e,theme:r})=>{let t=r(e);function s(a){let i=a.stack?`
1
+ var kT=Object.defineProperty;var Eo=(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 gh=(e,r)=>{for(var t in r)kT(e,t,{get:r[t],enumerable:!0})};function wh(){let e,r,t=new Promise((o,n)=>{e=o,r=n});function s(o){return o.then(e).catch(r),t}return{promise:t,resolve:e,reject:r,entangle:s}}function bh(e){let r=!1,t;return(...s)=>(r||(r=!0,t=e(...s)),t)}function Ec(e,r){return{error:t=>e.error({...r,...t}),rpcRequest:t=>e.rpcRequest({...r,...t}),rpcError:t=>e.rpcError({...r,...t})}}var fi=()=>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 Mh(){return fi()}var oo=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 hi=()=>({none:e=>e,uncolor:ST,mix:FT,hex:IT,rgb:xh,bgRgb:AT});function ST(e){return e.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,"")}function FT(...e){return r=>{for(let t of e)r=t(r);return r}}function IT(e){e=e.replace(/^#/,"");let r,t,s,o;if(e.length===3)r=parseInt(e.split("").map(n=>n+n).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,xh(t,s,o)}function xh(e,r,t){let s=`\x1B[38;2;${e};${r};${t}m`;return o=>`${s}${o}${oo.reset}`}function AT(e,r,t){let s=`\x1B[48;2;${e};${r};${t}m`;return o=>`${s}${o}${oo.reset}`}var Jn={...Object.fromEntries(Object.entries(oo).map(([e])=>[e,r=>r])),...hi()};var Yn={...Object.fromEntries(Object.entries(oo).map(([e,r])=>[e,t=>`${r}${t}${oo.reset}`])),...hi()};function kc(){return typeof Deno<"u"&&typeof Deno.version<"u"}function Cc(){return typeof process<"u"&&process.versions&&process.versions.node}function vh(){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=()=>vh()?Yn:Jn;var gi=()=>({colors:e,theme:r})=>{let t=r(e);function s(a){let i=a.stack?`
2
2
  `+a.stack+`
3
- `:"";return[t.errName(a.name+":"),t.errMessage(a.message)].join(" ")+t.errStack(i)}function o(a){return a&&a instanceof Error?s(a):a}function n(a){return a&&a instanceof Error?s(a):t.errMessage(a)}return{stdout:a=>a.map(o),stderr:a=>a.map(n)}};function ea(...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 $T(){return{icon:"\u{1F6A8}",now:()=>Date.now()}}var bi=e=>({colors:r,theme:t})=>{let s={...$T(),...e},o=t(r),n=new Date(s.now()),a=n.getUTCFullYear().toString().padStart(4,"0"),i=(n.getUTCMonth()+1).toString().padStart(2,"0"),l=n.getUTCDate().toString().padStart(2,"0"),c=`${a}-${i}-${l}`,p=n.getUTCHours().toString().padStart(2,"0"),u=n.getUTCMinutes().toString().padStart(2,"0"),d=n.getUTCSeconds().toString().padStart(2,"0"),h=n.getUTCMilliseconds().toString().padStart(3,"0"),f=`${p}:${u}:${d}.${h}`,v=`${c}::${f}`;return{stdout:F=>[o.timestamp(v),...F],stderr:F=>[o.timestampErr(v),...[s.icon].filter(Boolean),...F]}};function Eh(){return ea(wi(),bi())}var Mi=()=>({stdout:async e=>{await Deno.stdout.write(new TextEncoder().encode(e+`
3
+ `:"";return[t.errName(a.name+":"),t.errMessage(a.message)].join(" ")+t.errStack(i)}function o(a){return a&&a instanceof Error?s(a):a}function n(a){return a&&a instanceof Error?s(a):t.errMessage(a)}return{stdout:a=>a.map(o),stderr:a=>a.map(n)}};function Zn(...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 $T(){return{icon:"\u{1F6A8}",now:()=>Date.now()}}var wi=e=>({colors:r,theme:t})=>{let s={...$T(),...e},o=t(r),n=new Date(s.now()),a=n.getUTCFullYear().toString().padStart(4,"0"),i=(n.getUTCMonth()+1).toString().padStart(2,"0"),l=n.getUTCDate().toString().padStart(2,"0"),c=`${a}-${i}-${l}`,p=n.getUTCHours().toString().padStart(2,"0"),u=n.getUTCMinutes().toString().padStart(2,"0"),d=n.getUTCSeconds().toString().padStart(2,"0"),h=n.getUTCMilliseconds().toString().padStart(3,"0"),f=`${p}:${u}:${d}.${h}`,v=`${c}::${f}`;return{stdout:F=>[o.timestamp(v),...F],stderr:F=>[o.timestampErr(v),...[s.icon].filter(Boolean),...F]}};function yh(){return Zn(gi(),wi())}var bi=()=>({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 xi=()=>({stdout:async e=>void process.stdout.write(e+`
5
+ `))}});var Mi=()=>({stdout:async e=>void process.stdout.write(e+`
6
6
  `),stderr:async e=>void process.stderr.write(e+`
7
- `)});var vi=()=>({stdout:async e=>console.log(e),stderr:async e=>console.error(e)});var kh=()=>Ic()?Mi():Ac()?xi():vi();var Ch=()=>({stdout:async()=>{},stderr:async()=>{}});function Sh(){return()=>({stdout:e=>e,stderr:e=>e})}var mn=class e{static writers={auto:kh,void:Ch,deno:Mi,node:xi,console:vi};static colors={auto:$c,colorful:()=>Zn,colorless:()=>Yn};static themes={auto:yh,basic:hi};static shapers={auto:Eh,none:Sh,errors:wi,timestamp:bi};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=ea(...r),this}};var ta=class extends mn{static dummy(){return new this().setWriter(mn.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),n=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("<-"):n("->")].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 Ds=class extends ta{rpcRequest=async()=>{}};var Os=Object.freeze({eq(e,r){if(e.length!==r.length)return!1;for(let t=0;t<=e.length;t++)if(e.at(t)!==r.at(t))return!1;return!0},random(e){return crypto.getRandomValues(new Uint8Array(e))}});var So=Object.freeze({fromBytes(e){return[...e].map(r=>r.toString(16).padStart(2,"0")).join("")},toBytes(e){if(e.length%2!==0)throw new Error("must have even number of hex characters");let r=new Uint8Array(e.length/2);for(let t=0;t<e.length;t+=2)r[t/2]=parseInt(e.slice(t,t+2),16);return r},random(e=32){return this.fromBytes(Os.random(e))},string(e){return So.fromBytes(e)},bytes(e){return So.toBytes(e)}});var Dc=58,yi="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Oc=Object.freeze({fromBytes(e){let r=BigInt("0x"+So.fromBytes(e)),t="";for(;r>0;){let s=r%BigInt(Dc);r=r/BigInt(Dc),t=yi[Number(s)]+t}for(let s of e)if(s===0)t=yi[0]+t;else break;return t},toBytes(e){let r=BigInt(0);for(let a of e){let i=yi.indexOf(a);if(i===-1)throw new Error(`Invalid character '${a}' in base58 string`);r=r*BigInt(Dc)+BigInt(i)}let t=r.toString(16);t.length%2!==0&&(t="0"+t);let s=So.toBytes(t),o=0;for(let a of e)if(a===yi[0])o++;else break;let n=new Uint8Array(o+s.length);return n.set(s,o),n},random(e=32){return this.fromBytes(Os.random(e))},string(e){return Oc.fromBytes(e)},bytes(e){return Oc.toBytes(e)}});var Fh=class{lexicon;static lexicons=Object.freeze({base2:{characters:"01"},hex:{characters:"0123456789abcdef"},base36:{characters:"0123456789abcdefghijklmnopqrstuvwxyz"},base58:{characters:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"},base62:{characters:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"},base64url:{negativePrefix:"~",characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},base64:{characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",padding:{character:"=",size:4}}});lookup;negativePrefix;constructor(r){this.lexicon=r,this.lookup=Object.fromEntries([...r.characters].map((t,s)=>[t,s])),this.negativePrefix=r.negativePrefix??"-"}toBytes(r){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let i=0,l=0,c=[];for(let p of r){if(p===this.lexicon.padding?.character)continue;let u=this.lookup[p];if(u===void 0)throw new Error(`Invalid character: ${p}`);for(i=i<<t|u,l+=t;l>=8;)l-=8,c.push(i>>l&255)}return new Uint8Array(c)}let s=0n,o=BigInt(this.lexicon.characters.length),n=!1;r.startsWith(this.negativePrefix)&&(r=r.slice(this.negativePrefix.length),n=!0);for(let i of r){let l=this.lookup[i];if(l===void 0)throw new Error(`Invalid character: ${i}`);s=s*o+BigInt(l)}let a=[];for(;s>0n;)a.unshift(Number(s%256n)),s=s/256n;return new Uint8Array(a)}fromBytes(r){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let a=0,i=0,l="";for(let c of r)for(a=a<<8|c,i+=8;i>=t;){i-=t;let p=a>>i&(1<<t)-1;l+=this.lexicon.characters[p]}if(i>0){let c=a<<t-i&(1<<t)-1;l+=this.lexicon.characters[c]}if(this.lexicon.padding)for(;l.length%this.lexicon.padding.size!==0;)l+=this.lexicon.padding.character;return l}let s=0n;for(let a of r)s=(s<<8n)+BigInt(a);if(s===0n)return this.lexicon.characters[0];let o=BigInt(this.lexicon.characters.length),n="";for(;s>0n;)n=this.lexicon.characters[Number(s%o)]+n,s=s/o;return n}toInteger(r){if(!r)return 0;let t=0n,s=!1,o=BigInt(this.lexicon.characters.length);r.startsWith(this.negativePrefix)&&(r=r.slice(this.negativePrefix.length),s=!0);for(let n of r){let a=this.lookup[n];if(a===void 0)throw new Error(`Invalid character: ${n}`);t=t*o+BigInt(a)}return Number(s?-t:t)}fromInteger(r){r=Math.floor(r);let t=r<0,s=BigInt(t?-r:r);if(s===0n)return this.lexicon.characters[0];let o=BigInt(this.lexicon.characters.length),n="";for(;s>0n;)n=this.lexicon.characters[Number(s%o)]+n,s=s/o;return t?`${this.negativePrefix}${n}`:n}random(r=32){return this.fromBytes(Os.random(r))}};var Lc=Object.freeze({fromBytes(e){return typeof btoa=="function"?btoa(String.fromCharCode(...e)):Buffer.from(e).toString("base64")},toBytes(e){return typeof atob=="function"?Uint8Array.from(atob(e),r=>r.charCodeAt(0)):Uint8Array.from(Buffer.from(e,"base64"))},random(e=32){return this.fromBytes(Os.random(e))},string(e){return Lc.fromBytes(e)},bytes(e){return Lc.toBytes(e)}});var Ih=Object.freeze({fromBytes(e){return new TextDecoder().decode(e)},toBytes(e){return new TextEncoder().encode(e)},string(e){return Ih.fromBytes(e)},bytes(e){return Ih.toBytes(e)}});var Ti=Object.freeze({set:e=>e!=null,unset: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 ra=class extends Error{milliseconds;name=this.constructor.name;constructor(r){super(`deadline exceeded (${(r/1e3).toFixed(1)} seconds)`),this.milliseconds=r}};function Pi(e,r){return e<=0||e===1/0?r():new Promise((t,s)=>{let o=setTimeout(()=>s(new ra(e)),e);r().then(t).catch(s).finally(()=>clearTimeout(o))})}function Fo(){let e,r,t=new Promise((o,n)=>{e=o,r=n});function s(o){return o.then(e).catch(r),t}return{promise:t,resolve:e,reject:r,entangle:s}}function Ah(e,r){let t=e;for(let s of r)if(t=t[s],Ti.unset(t))break;return t}function DT(e){return{map:r=>$h(e,r),filter:r=>Dh(e,r)}}DT.pipe=Object.freeze({map:e=>r=>$h(r,e),filter:e=>r=>Dh(r,e)});var $h=(e,r)=>Object.fromEntries(Object.entries(e).map(([t,s])=>[t,r(s,t)])),Dh=(e,r)=>Object.fromEntries(Object.entries(e).filter(([t,s])=>r(s,t)));function OT(){let e=new Set;function r(n){return e.add(n),()=>{e.delete(n)}}async function t(...n){await Promise.all([...e].map(a=>a(...n)))}async function s(){let{promise:n,resolve:a}=Fo(),i=r((...l)=>{a(l),i()});return n}function o(){e.clear()}return r.pub=t,r.sub=r,r.on=r,r.next=s,r.clear=o,t.pub=t,t.sub=r,t.on=r,t.next=s,t.clear=o,[t,r]}function Ei(e){let r=OT()[0];return e&&r.sub(e),r}var Vs=class{#e=[];add(...r){return this.#e.push(...r),this}disposable(r){return this.bag(r,()=>r.dispose())}bag(r,t){return this.add(()=>t(r)),r}dispose(){for(let r of this.#e.reverse())r();this.#e=[]}};var no;(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}})(no||(no={}));var ki=class extends Error{name=this.constructor.name},Io=class extends Error{name=this.constructor.name};async function Oh({tap:e,request:r,action:t}){let s=no.getId(r);try{let o=await t();return s===null?null:{id:s,result:o,jsonrpc:no.version}}catch(o){return e.rpcError({request:r,error:o}),s===null?null:{id:s,jsonrpc:no.version,error:o instanceof ki?{code:no.errorCodes.serverError,message:o.message}:{code:no.errorCodes.unexposedError,message:"unexposed error"}}}}function Ci(e){let r=e.tap??new Ds;return async t=>{let s=t.method.split("."),o=Ah(e.fns,s),n=async()=>await o(...t.params);return r.rpcRequest({request:t}),await Oh({tap:r,request:t,action:n})}}var Lh=Symbol("tune"),LT=Symbol("query"),BT=Symbol("notify"),zT=Symbol("settings");function Bh(e){function r(t){let s={notify:void 0};return new Proxy(()=>{},{apply:(o,n,a)=>e(t,a,s),get:(o,n)=>{if(n!=="then")return n===Lh?a=>(...i)=>e(t,i,{...s,...a}):n===BT?(...a)=>e(t,a,{...s,notify:!0}):n===LT?(...a)=>e(t,a,{...s,notify:!1}):n===zT?s:(o[n]||(o[n]=r([...t,n])),o[n])},set:(o,n,a)=>(o[n]=a,!0)})}return r([])}function Ao(e){let{endpoint:r,tap:t=new Ds}=e,s=1;return Bh(async(o,n,a)=>{let i=a.notify??e.notify??!1,l=a.transfer,c={jsonrpc:"2.0",method:o.join("."),params:n},p=i?c:{...c,id:s++};t.rpcRequest({request:p});let u=await r(p,{transfer:l});if(i&&!u)return null;if(!u)throw new Io("response was null, but shouldn't be, because the request was not a notification");if("error"in u)throw new Io(e.label?`${e.label}: ${u.error.message}`:u.error.message);return u.result})}function sa(e){return Ao({endpoint:Ci(e),tap:e.tap})}var $o=class{recv=Ei();sendRequest=Ei();sendResponse=Ei();static makeEntangledPair({origin:r="example.e280.org"}={}){let t=new this,s=new this,o=[t.sendRequest.sub(a=>s.recv(a,{origin:r})),t.sendResponse.sub(a=>s.recv(a,{origin:r})),s.sendRequest.sub(a=>t.recv(a,{origin:r})),s.sendResponse.sub(a=>t.recv(a,{origin:r}))];return[t,s,()=>o.forEach(a=>a())]}};function Si(e,r){return e.addEventListener("message",r),()=>e.removeEventListener("message",r)}function zh(e,r){return async(t,{transfer:s}={})=>{if("id"in t){let o=Fo();return r(t,s,o.promise),e.wait(t.id,t.method).then(n=>(o.resolve(n),n))}else{let o=Promise.resolve(null);return r(t,s,o),o}}}function Rh(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 jh(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 fn=class extends $o{#e=new Vs;constructor(r){super(),this.#e.add(this.sendRequest.sub((t,s)=>r.postMessage(t,s)),this.sendResponse.sub((t,s)=>r.postMessage(t,s)),Si(r,t=>this.recv(t.data,t)))}dispose(){this.#e.dispose()}};var Fi=class{remote;transfer;constructor(r){this.remote=r}};var Bc=Object.freeze({timeout:6e4,maxRequestBytes:1e7});var Ii=class{timeout;pending=new Map;constructor(r){this.timeout=r}async wait(r,t){let s=Fo();return this.pending.set(r,{method:t,deferred:s}),await Pi(this.timeout,()=>s.promise).catch(o=>{throw o instanceof ra&&(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 Io(r.error.message)):t.deferred.resolve(r))}};var Do=class{options;remote;remoteEndpoint;#e;#t=new Vs;constructor(r){this.options=r;let{conduit:t,tap:s}=r;this.#e=new Ii(r.timeout??Bc.timeout),this.remoteEndpoint=zh(this.#e,t.sendRequest.pub.bind(t.sendRequest)),this.remote=Ao({endpoint:this.remoteEndpoint,tap:s&&Fc(s,{remote:!0})}),this.#t.add(t.recv.sub(o=>this.recv(o)))}async recv(r){let t=new Fi(this.remote),{conduit:s,rpc:o,tap:n}=this.options,{requests:a,responses:i}=Rh(r);for(let u of i)this.#e.deliverResponse(u);if(!o)return;let l=await o(t),c=Ci({fns:l,tap:n&&Fc(n,{remote:!1})}),p=await jh(c,a);p&&await s.sendResponse(p,t.transfer)}dispose(){this.#t.dispose()}};var Ws={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 Us=new Ds;async function Nh(e,r,t={}){let s=t.tap??Us,o=new Do({tap:s,timeout:t.timeout??1/0,conduit:new fn(e.getSelf()),rpc:async n=>r(Ws.derive.host(n))});return await o.remote.infra.ready(),o.remote.host}var hn=class{worker;messenger;constructor(r,t){this.worker=r,this.messenger=t}static async make(r,t){let s=t.tap??Us,o=t.label??"comrade",n=r.loadWorker(t.workerUrl,o),a=Co(),i={async ready(){a.resolve()}},l=new Do({tap:s,timeout:t.timeout??1/0,conduit:new fn(n),rpc:async c=>({infra:i,host:t.setupHost(Ws.derive.work(c))})});return await a.promise,new this(n,l)}get work(){return this.messenger.remote}terminate(){this.worker.terminate()}};var Ai=class{threads;static async make(r,t){let s=t.workerCount??r.guessOptimalThreadCount(),o=await Promise.all([...Array(s)].map(async(n,a)=>hn.make(r,{...t,label:t.label??`${t.label??"comrade"}_${a+1}`})));return new this(o,{tap:t.tap})}work;#e=new Set;#t=[];constructor(r,t={}){this.threads=r;let s=t.tap??Us,o=async(n,a)=>this.#s({request:n,prom:Co(),transfer:a?.transfer});this.work=Ao({tap:s,endpoint:o}),r.forEach(n=>this.#e.add(n))}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 Vh=e=>({thread:r=>hn.make(e,r),cluster:r=>Ai.make(e,r),worker:(r,t={})=>Nh(e,r,t),work:r=>r,host:r=>r,mocks(r){let{setupWork:t,setupHost:s,tap:o=Us}=r,n=Ws.mock.host(),a=Ws.mock.work();return a.work=sa({tap:o,fns:t(n)}),n.host=sa({tap:o,fns:s(a)}),{workShell:a,hostShell:n,work:a.work,host:n.host}},mockWork(r,t=Us){let s=Ws.mock.host(),o=Ws.mock.work();return o.work=sa({tap:t,fns:r(s)}),{workShell:o,hostShell:s,work:o.work,mockHost:n=>(s.host=sa({tap:t,fns:n(o)}),{workShell:o,hostShell:s,work:o.work,host:s.host})}}});var Wh=()=>({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 VT=Wh(),Uh=Vh(VT);var Rc={};gh(Rc,{InferenceSession:()=>GT,TRACE:()=>ag,TRACE_FUNC_BEGIN:()=>Di,TRACE_FUNC_END:()=>Oi,Tensor:()=>Bo,env:()=>UT,registerBackend:()=>Gh});var $i=new Map,Oo=[],Gh=(e,r,t)=>{if(r&&typeof r.init=="function"&&typeof r.createInferenceSessionHandler=="function"){let s=$i.get(e);if(s===void 0)$i.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=Oo.indexOf(e);o!==-1&&Oo.splice(o,1);for(let n=0;n<Oo.length;n++)if($i.get(Oo[n]).priority<=t){Oo.splice(n,0,e);return}Oo.push(e)}return}throw new TypeError("not a valid backend")},WT=async e=>{let r=$i.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}}},Kh=async e=>{let r=e.executionProviders||[],t=r.map(l=>typeof l=="string"?l:l.name),s=t.length===0?Oo:t,o,n=[],a=new Set;for(let l of s){let c=await WT(l);typeof c=="string"?n.push({name:l,err:c}):(o||(o=c),o===c&&a.add(l))}if(!o)throw new Error(`no available backend found. ERR: ${n.map(l=>`[${l.name}] ${l.err}`).join(", ")}`);for(let{name:l,err:c}of n)t.includes(l)&&console.warn(`removing requested execution provider "${l}" from session options because it is not available: ${c}`);let i=r.filter(l=>a.has(typeof l=="string"?l:l.name));return[o,new Proxy(e,{get:(l,c)=>c==="executionProviders"?i:Reflect.get(l,c)})]};var qh="1.21.0";var Hh="warning",es={wasm:{},webgl:{},webgpu:{},versions:{common:qh},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}`);Hh=e}},get logLevel(){return Hh}};Object.defineProperty(es,"logLevel",{enumerable:!0});var UT=es;var Qh=(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,n;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(o=e.dims[2],n=e.dims[3]):(o=e.dims[3],n=e.dims[2]);let a=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 p=n*o,u=0,d=p,h=p*2,f=-1;a==="RGBA"?(u=0,d=p,h=p*2,f=p*3):a==="RGB"?(u=0,d=p,h=p*2):a==="RBG"&&(u=0,h=p,d=p*2);for(let v=0;v<n;v++)for(let F=0;F<o;F++){let x=(e.data[u++]-c[0])*l[0],w=(e.data[d++]-c[1])*l[1],C=(e.data[h++]-c[2])*l[2],y=f===-1?255:(e.data[f++]-c[3])*l[3];s.fillStyle="rgba("+x+","+w+","+C+","+y+")",s.fillRect(F,v,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")},Xh=(e,r)=>{let t=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),s;if(t!=null){let o,n,a;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(o=e.dims[2],n=e.dims[1],a=e.dims[3]):(o=e.dims[3],n=e.dims[2],a=e.dims[1]);let i=r!==void 0&&r.format!==void 0?r.format:"RGB",l=r?.norm,c,p;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?p=[0,0,0,0]:typeof l.bias=="number"?p=[l.bias,l.bias,l.bias,l.bias]:(p=[l.bias[0],l.bias[1],l.bias[2],0],l.bias[3]!==void 0&&(p[3]=l.bias[3]));let u=n*o;if(r!==void 0&&(r.format!==void 0&&a===4&&r.format!=="RGBA"||a===3&&r.format!=="RGB"&&r.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let d=4,h=0,f=1,v=2,F=3,x=0,w=u,C=u*2,y=-1;i==="RGBA"?(x=0,w=u,C=u*2,y=u*3):i==="RGB"?(x=0,w=u,C=u*2):i==="RBG"&&(x=0,C=u,w=u*2),s=t.createImageData(o,n);for(let P=0;P<n*o;h+=d,f+=d,v+=d,F+=d,P++)s.data[h]=(e.data[x++]-p[0])*c[0],s.data[f]=(e.data[w++]-p[1])*c[1],s.data[v]=(e.data[C++]-p[2])*c[2],s.data[F]=y===-1?255:(e.data[y++]-p[3])*c[3]}else throw new Error("Can not access image data");return s};var zc=(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},n,a;typeof o.mean=="number"?n=[o.mean,o.mean,o.mean,o.mean]:n=[o.mean[0],o.mean[1],o.mean[2],o.mean[3]??255],typeof o.bias=="number"?a=[o.bias,o.bias,o.bias,o.bias]:a=[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,p=l==="RGBA"?new Float32Array(c*4):new Float32Array(c*3),u=4,d=0,h=1,f=2,v=3,F=0,x=c,w=c*2,C=-1;i==="RGB"&&(u=3,d=0,h=1,f=2,v=-1),l==="RGBA"?C=c*3:l==="RBG"?(F=0,w=c,x=c*2):l==="BGR"&&(w=0,x=c,F=c*2);for(let P=0;P<c;P++,d+=u,f+=u,h+=u,v+=u)p[F++]=(e[d]+a[0])/n[0],p[x++]=(e[h]+a[1])/n[1],p[w++]=(e[f]+a[2])/n[2],C!==-1&&v!==-1&&(p[C++]=(e[v]+a[3])/n[3]);return l==="RGBA"?new Br("float32",p,[1,4,t,s]):new Br("float32",p,[1,3,t,s])},Jh=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,n=typeof e=="string",a,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=p=>typeof HTMLCanvasElement<"u"&&p instanceof HTMLCanvasElement||p instanceof OffscreenCanvas?p.getContext("2d"):null;if(t){let p=l();p.width=e.width,p.height=e.height;let u=c(p);if(u!=null){let d=e.height,h=e.width;if(r!==void 0&&r.resizedHeight!==void 0&&r.resizedWidth!==void 0&&(d=r.resizedHeight,h=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=h}else i.tensorFormat="RGBA",i.height=d,i.width=h;u.drawImage(e,0,0),a=u.getImageData(0,0,h,d).data}else throw new Error("Can not access image data")}else if(s){let p,u;if(r!==void 0&&r.resizedWidth!==void 0&&r.resizedHeight!==void 0?(p=r.resizedHeight,u=r.resizedWidth):(p=e.height,u=e.width),r!==void 0&&(i=r),i.format="RGBA",i.height=p,i.width=u,r!==void 0){let d=l();d.width=u,d.height=p;let h=c(d);if(h!=null)h.putImageData(e,0,0),a=h.getImageData(0,0,u,p).data;else throw new Error("Can not access image data")}else a=e.data}else if(o){if(r===void 0)throw new Error("Please provide image config with format for Imagebitmap");let p=l();p.width=e.width,p.height=e.height;let u=c(p);if(u!=null){let d=e.height,h=e.width;return u.drawImage(e,0,0,h,d),a=u.getImageData(0,0,h,d).data,i.height=d,i.width=h,zc(a,i)}else throw new Error("Can not access image data")}else{if(n)return new Promise((p,u)=>{let d=l(),h=c(d);if(!e||!h)return u();let f=new Image;f.crossOrigin="Anonymous",f.src=e,f.onload=()=>{d.width=f.width,d.height=f.height,h.drawImage(f,0,0,d.width,d.height);let v=h.getImageData(0,0,d.width,d.height);i.height=d.height,i.width=d.width,p(zc(v.data,i))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(a!==void 0)return zc(a,i);throw new Error("Input data provided is not supported - aborted tensor creation")},Yh=(e,r)=>{let{width:t,height:s,download:o,dispose:n}=r,a=[1,s,t,4];return new Br({location:"texture",type:"float32",texture:e,dims:a,download:o,dispose:n})},Zh=(e,r)=>{let{dataType:t,dims:s,download:o,dispose:n}=r;return new Br({location:"gpu-buffer",type:t??"float32",gpuBuffer:e,dims:s,download:o,dispose:n})},eg=(e,r)=>{let{dataType:t,dims:s,download:o,dispose:n}=r;return new Br({location:"ml-tensor",type:t??"float32",mlTensor:e,dims:s,download:o,dispose:n})},tg=(e,r,t)=>new Br({location:"cpu-pinned",type:e,data:r,dims:t??[r.length]});var 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]]),oa=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),rg=!1,sg=()=>{if(!rg){rg=!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),oa.set(BigInt64Array,"int64")),r&&(Lo.set("uint64",BigUint64Array),oa.set(BigUint64Array,"uint64")),s?(Lo.set("float16",t),oa.set(t,"float16")):Lo.set("float16",Uint16Array)}};var og=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},ng=(e,r)=>{switch(e.location){case"cpu":return new Br(e.type,e.data,r);case"cpu-pinned":return new Br({location:"cpu-pinned",data:e.data,type:e.type,dims:r});case"texture":return new Br({location:"texture",texture:e.texture,type:e.type,dims:r});case"gpu-buffer":return new Br({location:"gpu-buffer",gpuBuffer:e.gpuBuffer,type:e.type,dims:r});case"ml-tensor":return new Br({location:"ml-tensor",mlTensor:e.mlTensor,type:e.type,dims:r});default:throw new Error(`tensorReshape: tensor location ${e.location} is not supported`)}};var Br=class{constructor(r,t,s){sg();let o,n;if(typeof r=="object"&&"location"in r)switch(this.dataLocation=r.location,o=r.type,n=r.dims,r.location){case"cpu-pinned":{let i=Lo.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=Lo.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=oa.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");n=l,this.cpuData=i,this.dataLocation="cpu"}let a=og(n);if(this.cpuData&&a!==this.cpuData.length&&!((o==="uint4"||o==="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=o,this.dims=n,this.size=a}static async fromImage(r,t){return Jh(r,t)}static fromTexture(r,t){return Yh(r,t)}static fromGpuBuffer(r,t){return Zh(r,t)}static fromMLTensor(r,t){return eg(r,t)}static fromPinnedBuffer(r,t,s){return tg(r,t,s)}toDataURL(r){return Qh(this,r)}toImageData(r){return Xh(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 ng(this,r)}};var Bo=Br;var ag=(e,r)=>{(typeof es.trace>"u"?!es.wasm.trace:!es.trace)||console.timeStamp(`${e}::ORT::${r}`)},ig=(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 n=`FUNC_${e}::${t[o].trim().split(" ")[1]}`;r&&(n+=`::${r}`),ag("CPU",n);return}t[o].includes("TRACE_FUNC")&&(s=!0)}},Di=e=>{(typeof es.trace>"u"?!es.wasm.trace:!es.trace)||ig("BEGIN",e)},Oi=e=>{(typeof es.trace>"u"?!es.wasm.trace:!es.trace)||ig("END",e)};var Li=class e{constructor(r){this.handler=r}async run(r,t,s){Di();let o={},n={};if(typeof r!="object"||r===null||r instanceof Bo||Array.isArray(r))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let a=!0;if(typeof t=="object"){if(t===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(t instanceof Bo)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.");a=!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)n=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else{let c=!1,p=Object.getOwnPropertyNames(t);for(let u of this.outputNames)if(p.indexOf(u)!==-1){let d=t[u];(d===null||d instanceof Bo)&&(c=!0,a=!1,o[u]=d)}if(c){if(typeof s=="object"&&s!==null)n=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else n=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(a)for(let c of this.outputNames)o[c]=null;let i=await this.handler.run(r,o,n),l={};for(let c in i)if(Object.hasOwnProperty.call(i,c)){let p=i[c];p instanceof Bo?l[c]=p:l[c]=new Bo(p.type,p.data,p.dims)}return Oi(),l}async release(){return this.handler.dispose()}static async create(r,t,s,o){Di();let n,a={};if(typeof r=="string"){if(n=r,typeof t=="object"&&t!==null)a=t;else if(typeof t<"u")throw new TypeError("'options' must be an object.")}else if(r instanceof Uint8Array){if(n=r,typeof t=="object"&&t!==null)a=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 p=r,u=0,d=r.byteLength;if(typeof t=="object"&&t!==null)a=t;else if(typeof t=="number"){if(u=t,!Number.isSafeInteger(u))throw new RangeError("'byteOffset' must be an integer.");if(u<0||u>=p.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${p.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>p.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${p.byteLength-u}].`);if(typeof o=="object"&&o!==null)a=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.");n=new Uint8Array(p,u,d)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[i,l]=await Kh(a),c=await i.createInferenceSessionHandler(n,l);return Oi(),new e(c)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}};var GT=Li;var Iu={};gh(Iu,{InferenceSession:()=>su,TRACE:()=>xa,TRACE_FUNC_BEGIN:()=>Ts,TRACE_FUNC_END:()=>ls,Tensor:()=>ys,default:()=>uE,env:()=>Xt,registerBackend:()=>Uo});var tu=Object.defineProperty,KT=Object.getOwnPropertyDescriptor,qT=Object.getOwnPropertyNames,HT=Object.prototype.hasOwnProperty,QT=(e=>typeof Eo<"u"?Eo:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof Eo<"u"?Eo:r)[t]}):e)(function(e){if(typeof Eo<"u")return Eo.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')}),ze=(e,r)=>()=>(e&&(r=e(e=0)),r),vn=(e,r)=>{for(var t in r)tu(e,t,{get:r[t],enumerable:!0})},XT=(e,r,t,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of qT(r))!HT.call(e,o)&&o!==t&&tu(e,o,{get:()=>r[o],enumerable:!(s=KT(r,o))||s.enumerable});return e},Ma=e=>XT(tu({},"__esModule",{value:!0}),e),na,ao,Uo,lg,jM,NM=ze(()=>{"use strict";na=new Map,ao=[],Uo=(e,r,t)=>{if(r&&typeof r.init=="function"&&typeof r.createInferenceSessionHandler=="function"){let s=na.get(e);if(s===void 0)na.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=ao.indexOf(e);o!==-1&&ao.splice(o,1);for(let n=0;n<ao.length;n++)if(na.get(ao[n]).priority<=t){ao.splice(n,0,e);return}ao.push(e)}return}throw new TypeError("not a valid backend")},lg=async e=>{let r=na.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}}},jM=async e=>{let r=e.executionProviders||[],t=r.map(l=>typeof l=="string"?l:l.name),s=t.length===0?ao:t,o,n=[],a=new Set;for(let l of s){let c=await lg(l);typeof c=="string"?n.push({name:l,err:c}):(o||(o=c),o===c&&a.add(l))}if(!o)throw new Error(`no available backend found. ERR: ${n.map(l=>`[${l.name}] ${l.err}`).join(", ")}`);for(let{name:l,err:c}of n)t.includes(l)&&console.warn(`removing requested execution provider "${l}" from session options because it is not available: ${c}`);let i=r.filter(l=>a.has(typeof l=="string"?l:l.name));return[o,new Proxy(e,{get:(l,c)=>c==="executionProviders"?i:Reflect.get(l,c)})]}}),JT=ze(()=>{"use strict";NM()}),VM,YT=ze(()=>{"use strict";VM="1.22.0-dev.20250409-89f8206ba4"}),jc,is,WM=ze(()=>{"use strict";YT(),jc="warning",is={wasm:{},webgl:{},webgpu:{},versions:{common:VM},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}`);jc=e}},get logLevel(){return jc}},Object.defineProperty(is,"logLevel",{enumerable:!0})}),Xt,ZT=ze(()=>{"use strict";WM(),Xt=is}),UM,GM,eP=ze(()=>{"use strict";UM=(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,n;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(o=e.dims[2],n=e.dims[3]):(o=e.dims[3],n=e.dims[2]);let a=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 p=n*o,u=0,d=p,h=p*2,f=-1;a==="RGBA"?(u=0,d=p,h=p*2,f=p*3):a==="RGB"?(u=0,d=p,h=p*2):a==="RBG"&&(u=0,h=p,d=p*2);for(let v=0;v<n;v++)for(let F=0;F<o;F++){let x=(e.data[u++]-c[0])*l[0],w=(e.data[d++]-c[1])*l[1],C=(e.data[h++]-c[2])*l[2],y=f===-1?255:(e.data[f++]-c[3])*l[3];s.fillStyle="rgba("+x+","+w+","+C+","+y+")",s.fillRect(F,v,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")},GM=(e,r)=>{let t=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),s;if(t!=null){let o,n,a;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(o=e.dims[2],n=e.dims[1],a=e.dims[3]):(o=e.dims[3],n=e.dims[2],a=e.dims[1]);let i=r!==void 0&&r.format!==void 0?r.format:"RGB",l=r?.norm,c,p;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?p=[0,0,0,0]:typeof l.bias=="number"?p=[l.bias,l.bias,l.bias,l.bias]:(p=[l.bias[0],l.bias[1],l.bias[2],0],l.bias[3]!==void 0&&(p[3]=l.bias[3]));let u=n*o;if(r!==void 0&&(r.format!==void 0&&a===4&&r.format!=="RGBA"||a===3&&r.format!=="RGB"&&r.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let d=4,h=0,f=1,v=2,F=3,x=0,w=u,C=u*2,y=-1;i==="RGBA"?(x=0,w=u,C=u*2,y=u*3):i==="RGB"?(x=0,w=u,C=u*2):i==="RBG"&&(x=0,C=u,w=u*2),s=t.createImageData(o,n);for(let P=0;P<n*o;h+=d,f+=d,v+=d,F+=d,P++)s.data[h]=(e.data[x++]-p[0])*c[0],s.data[f]=(e.data[w++]-p[1])*c[1],s.data[v]=(e.data[C++]-p[2])*c[2],s.data[F]=y===-1?255:(e.data[y++]-p[3])*c[3]}else throw new Error("Can not access image data");return s}}),Bi,KM,qM,HM,QM,XM,tP=ze(()=>{"use strict";ru(),Bi=(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},n,a;typeof o.mean=="number"?n=[o.mean,o.mean,o.mean,o.mean]:n=[o.mean[0],o.mean[1],o.mean[2],o.mean[3]??255],typeof o.bias=="number"?a=[o.bias,o.bias,o.bias,o.bias]:a=[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,p=l==="RGBA"?new Float32Array(c*4):new Float32Array(c*3),u=4,d=0,h=1,f=2,v=3,F=0,x=c,w=c*2,C=-1;i==="RGB"&&(u=3,d=0,h=1,f=2,v=-1),l==="RGBA"?C=c*3:l==="RBG"?(F=0,w=c,x=c*2):l==="BGR"&&(w=0,x=c,F=c*2);for(let y=0;y<c;y++,d+=u,f+=u,h+=u,v+=u)p[F++]=(e[d]+a[0])/n[0],p[x++]=(e[h]+a[1])/n[1],p[w++]=(e[f]+a[2])/n[2],C!==-1&&v!==-1&&(p[C++]=(e[v]+a[3])/n[3]);return l==="RGBA"?new rs("float32",p,[1,4,t,s]):new rs("float32",p,[1,3,t,s])},KM=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,n=typeof e=="string",a,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=p=>typeof HTMLCanvasElement<"u"&&p instanceof HTMLCanvasElement||p instanceof OffscreenCanvas?p.getContext("2d"):null;if(t){let p=l();p.width=e.width,p.height=e.height;let u=c(p);if(u!=null){let d=e.height,h=e.width;if(r!==void 0&&r.resizedHeight!==void 0&&r.resizedWidth!==void 0&&(d=r.resizedHeight,h=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=h}else i.tensorFormat="RGBA",i.height=d,i.width=h;u.drawImage(e,0,0),a=u.getImageData(0,0,h,d).data}else throw new Error("Can not access image data")}else if(s){let p,u;if(r!==void 0&&r.resizedWidth!==void 0&&r.resizedHeight!==void 0?(p=r.resizedHeight,u=r.resizedWidth):(p=e.height,u=e.width),r!==void 0&&(i=r),i.format="RGBA",i.height=p,i.width=u,r!==void 0){let d=l();d.width=u,d.height=p;let h=c(d);if(h!=null)h.putImageData(e,0,0),a=h.getImageData(0,0,u,p).data;else throw new Error("Can not access image data")}else a=e.data}else if(o){if(r===void 0)throw new Error("Please provide image config with format for Imagebitmap");let p=l();p.width=e.width,p.height=e.height;let u=c(p);if(u!=null){let d=e.height,h=e.width;return u.drawImage(e,0,0,h,d),a=u.getImageData(0,0,h,d).data,i.height=d,i.width=h,Bi(a,i)}else throw new Error("Can not access image data")}else{if(n)return new Promise((p,u)=>{let d=l(),h=c(d);if(!e||!h)return u();let f=new Image;f.crossOrigin="Anonymous",f.src=e,f.onload=()=>{d.width=f.width,d.height=f.height,h.drawImage(f,0,0,d.width,d.height);let v=h.getImageData(0,0,d.width,d.height);i.height=d.height,i.width=d.width,p(Bi(v.data,i))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(a!==void 0)return Bi(a,i);throw new Error("Input data provided is not supported - aborted tensor creation")},qM=(e,r)=>{let{width:t,height:s,download:o,dispose:n}=r,a=[1,s,t,4];return new rs({location:"texture",type:"float32",texture:e,dims:a,download:o,dispose:n})},HM=(e,r)=>{let{dataType:t,dims:s,download:o,dispose:n}=r;return new rs({location:"gpu-buffer",type:t??"float32",gpuBuffer:e,dims:s,download:o,dispose:n})},QM=(e,r)=>{let{dataType:t,dims:s,download:o,dispose:n}=r;return new rs({location:"ml-tensor",type:t??"float32",mlTensor:e,dims:s,download:o,dispose:n})},XM=(e,r,t)=>new rs({location:"cpu-pinned",type:e,data:r,dims:t??[r.length]})}),Vo,fa,Nc,JM,rP=ze(()=>{"use strict";Vo=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),fa=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),Nc=!1,JM=()=>{if(!Nc){Nc=!0;let e=typeof BigInt64Array<"u"&&BigInt64Array.from,r=typeof BigUint64Array<"u"&&BigUint64Array.from,t=globalThis.Float16Array,s=typeof t<"u"&&t.from;e&&(Vo.set("int64",BigInt64Array),fa.set(BigInt64Array,"int64")),r&&(Vo.set("uint64",BigUint64Array),fa.set(BigUint64Array,"uint64")),s?(Vo.set("float16",t),fa.set(t,"float16")):Vo.set("float16",Uint16Array)}}}),YM,ZM,sP=ze(()=>{"use strict";ru(),YM=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},ZM=(e,r)=>{switch(e.location){case"cpu":return new rs(e.type,e.data,r);case"cpu-pinned":return new rs({location:"cpu-pinned",data:e.data,type:e.type,dims:r});case"texture":return new rs({location:"texture",texture:e.texture,type:e.type,dims:r});case"gpu-buffer":return new rs({location:"gpu-buffer",gpuBuffer:e.gpuBuffer,type:e.type,dims:r});case"ml-tensor":return new rs({location:"ml-tensor",mlTensor:e.mlTensor,type:e.type,dims:r});default:throw new Error(`tensorReshape: tensor location ${e.location} is not supported`)}}}),rs,ru=ze(()=>{"use strict";eP(),tP(),rP(),sP(),rs=class{constructor(e,r,t){JM();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 a=Vo.get(s);if(!a)throw new TypeError(`unsupported type "${s}" to create tensor from pinned buffer`);if(!(e.data instanceof a))throw new TypeError(`buffer should be of type ${a.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 a,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.");a=r}else{let l=Vo.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"?a=l.from(r,BigInt):a=l.from(r)}else if(r instanceof l)a=r;else if(r instanceof Uint8ClampedArray)if(e==="uint8")a=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)a=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",a=e;else if(l==="boolean")s="bool",a=Uint8Array.from(e);else throw new TypeError(`Invalid element type of data array: ${l}.`)}else if(e instanceof Uint8ClampedArray)s="uint8",a=Uint8Array.from(e);else{let l=fa.get(e.constructor);if(l===void 0)throw new TypeError(`Unsupported type for tensor data: ${e.constructor}.`);s=l,a=e}if(i===void 0)i=[a.length];else if(!Array.isArray(i))throw new TypeError("A tensor's dims must be a number array");o=i,this.cpuData=a,this.dataLocation="cpu"}let n=YM(o);if(this.cpuData&&n!==this.cpuData.length&&!((s==="uint4"||s==="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=s,this.dims=o,this.size=n}static async fromImage(e,r){return KM(e,r)}static fromTexture(e,r){return qM(e,r)}static fromGpuBuffer(e,r){return HM(e,r)}static fromMLTensor(e,r){return QM(e,r)}static fromPinnedBuffer(e,r,t){return XM(e,r,t)}toDataURL(e){return UM(this,e)}toImageData(e){return GM(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 ZM(this,e)}}}),ys,ex=ze(()=>{"use strict";ru(),ys=rs}),xa,Vc,Ts,ls,tx=ze(()=>{"use strict";WM(),xa=(e,r)=>{(typeof is.trace>"u"?!is.wasm.trace:!is.trace)||console.timeStamp(`${e}::ORT::${r}`)},Vc=(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 n=`FUNC_${e}::${t[o].trim().split(" ")[1]}`;r&&(n+=`::${r}`),xa("CPU",n);return}t[o].includes("TRACE_FUNC")&&(s=!0)}},Ts=e=>{(typeof is.trace>"u"?!is.wasm.trace:!is.trace)||Vc("BEGIN",e)},ls=e=>{(typeof is.trace>"u"?!is.wasm.trace:!is.trace)||Vc("END",e)}}),rx,oP=ze(()=>{"use strict";NM(),ex(),tx(),rx=class sx{constructor(r){this.handler=r}async run(r,t,s){Ts();let o={},n={};if(typeof r!="object"||r===null||r instanceof ys||Array.isArray(r))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let a=!0;if(typeof t=="object"){if(t===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(t instanceof ys)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.");a=!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)n=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else{let c=!1,p=Object.getOwnPropertyNames(t);for(let u of this.outputNames)if(p.indexOf(u)!==-1){let d=t[u];(d===null||d instanceof ys)&&(c=!0,a=!1,o[u]=d)}if(c){if(typeof s=="object"&&s!==null)n=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else n=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(a)for(let c of this.outputNames)o[c]=null;let i=await this.handler.run(r,o,n),l={};for(let c in i)if(Object.hasOwnProperty.call(i,c)){let p=i[c];p instanceof ys?l[c]=p:l[c]=new ys(p.type,p.data,p.dims)}return ls(),l}async release(){return this.handler.dispose()}static async create(r,t,s,o){Ts();let n,a={};if(typeof r=="string"){if(n=r,typeof t=="object"&&t!==null)a=t;else if(typeof t<"u")throw new TypeError("'options' must be an object.")}else if(r instanceof Uint8Array){if(n=r,typeof t=="object"&&t!==null)a=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 p=r,u=0,d=r.byteLength;if(typeof t=="object"&&t!==null)a=t;else if(typeof t=="number"){if(u=t,!Number.isSafeInteger(u))throw new RangeError("'byteOffset' must be an integer.");if(u<0||u>=p.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${p.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>p.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${p.byteLength-u}].`);if(typeof o=="object"&&o!==null)a=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.");n=new Uint8Array(p,u,d)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[i,l]=await jM(a),c=await i.createInferenceSessionHandler(n,l);return ls(),new sx(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}}}),su,nP=ze(()=>{"use strict";oP(),su=rx}),aP=ze(()=>{"use strict"}),iP=ze(()=>{"use strict"}),lP=ze(()=>{"use strict"}),cP=ze(()=>{"use strict"}),ox={};vn(ox,{InferenceSession:()=>su,TRACE:()=>xa,TRACE_FUNC_BEGIN:()=>Ts,TRACE_FUNC_END:()=>ls,Tensor:()=>ys,env:()=>Xt,registerBackend:()=>Uo});var Ps=ze(()=>{"use strict";JT(),ZT(),nP(),ex(),aP(),iP(),tx(),lP(),cP()}),ou=ze(()=>{"use strict"}),nx={};vn(nx,{default:()=>ax});var Wc,Uc,ax,dP=ze(()=>{"use strict";u0(),Ho(),nu(),Wc="ort-wasm-proxy-worker",Uc=globalThis.self?.name===Wc,Uc&&(self.onmessage=e=>{let{type:r,in:t}=e.data;try{switch(r){case"init-wasm":au(t.wasm).then(()=>{Tu(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;Pu(o,s).then(()=>{postMessage({type:r})},n=>{postMessage({type:r,err:n})});break}case"copy-from":{let{buffer:s}=t,o=nl(s);postMessage({type:r,out:o});break}case"create":{let{model:s,options:o}=t;Eu(s,o).then(n=>{postMessage({type:r,out:n})},n=>{postMessage({type:r,err:n})});break}case"release":ku(t),postMessage({type:r});break;case"run":{let{sessionId:s,inputIndices:o,inputs:n,outputIndices:a,options:i}=t;Cu(s,o,n,a,new Array(a.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},Fu([...n,...l]))},l=>{postMessage({type:r,err:l})});break}case"end-profiling":Su(t),postMessage({type:r});break;default:}}catch(s){postMessage({type:r,err:s})}}),ax=Uc?null:e=>new Worker(e??ts,{type:"module",name:Wc})}),ix={};vn(ix,{default:()=>lx});var Gc,Kc,lx,cg,uP=ze(()=>{"use strict";Kc=(Gc=import.meta.url,async function(e={}){var r,t,s=e,o=new Promise((_,T)=>{r=_,t=T}),n=typeof window=="object",a=typeof WorkerGlobalScope<"u",i=a&&self.name?.startsWith("em-pthread");s.mountExternalData=(_,T)=>{_.startsWith("./")&&(_=_.substring(2)),(s.Eb||(s.Eb=new Map)).set(_,T)},s.unmountExternalData=()=>{delete s.Eb};var l=globalThis.SharedArrayBuffer??new WebAssembly.Memory({initial:0,maximum:0,pc:!0}).buffer.constructor;let c=_=>async(...T)=>{try{if(s.Fb)throw Error("Session already started");let A=s.Fb={dc:T[0],errors:[]},B=await _(...T);if(s.Fb!==A)throw Error("Session mismatch");s.Jb?.flush();let W=A.errors;if(0<W.length){let ie=await Promise.all(W);if(ie=ie.filter(ve=>ve),0<ie.length)throw Error(ie.join(`
8
- `))}return B}finally{s.Fb=null}};s.jsepInit=(_,T)=>{if(_==="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 A=s.Jb;s.jsepRegisterBuffer=(B,W,ie,ve)=>A.registerBuffer(B,W,ie,ve),s.jsepGetBuffer=B=>A.getBuffer(B),s.jsepCreateDownloader=(B,W,ie)=>A.createDownloader(B,W,ie),s.jsepOnCreateSession=B=>{A.onCreateSession(B)},s.jsepOnReleaseSession=B=>{A.onReleaseSession(B)},s.jsepOnRunStart=B=>A.onRunStart(B),s.bc=(B,W)=>{A.upload(B,W)}}else if(_==="webnn"){let A=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=>A.onRunStart(B),s.webnnOnRunEnd=A.onRunEnd.bind(A),s.webnnRegisterMLContext=(B,W)=>{A.registerMLContext(B,W)},s.webnnOnReleaseSession=B=>{A.onReleaseSession(B)},s.webnnCreateMLTensorDownloader=(B,W)=>A.createMLTensorDownloader(B,W),s.webnnRegisterMLTensor=(B,W,ie,ve)=>A.registerMLTensor(B,W,ie,ve),s.webnnCreateMLContext=B=>A.createMLContext(B),s.webnnRegisterMLConstant=(B,W,ie,ve,Oe,Qe)=>A.registerMLConstant(B,W,ie,ve,Oe,s.Eb,Qe),s.webnnRegisterGraphInput=A.registerGraphInput.bind(A),s.webnnIsGraphInput=A.isGraphInput.bind(A),s.webnnCreateTemporaryTensor=A.createTemporaryTensor.bind(A),s.webnnIsInt64Supported=A.isInt64Supported.bind(A)}};let p=()=>{let _=(T,A,B)=>(...W)=>{let ie=Ar,ve=A?.();W=T(...W);let Oe=A?.();return ve!==Oe&&(T=Oe,B(ve),A=B=null),Ar!=ie?new Promise((Qe,nt)=>{Or={resolve:Qe,reject:nt}}):W};(()=>{for(let T of["_OrtAppendExecutionProvider","_OrtCreateSession","_OrtRun","_OrtRunWithBinding","_OrtBindInput"])s[T]=_(s[T],()=>s[T],A=>s[T]=A)})(),c!==void 0&&(s._OrtRun=c(s._OrtRun),s._OrtRunWithBinding=c(s._OrtRunWithBinding)),p=void 0};s.asyncInit=()=>{p?.()};var u,d,h=Object.assign({},s),f=(_,T)=>{throw T},v="";(n||a)&&(a?v=self.location.href:typeof document<"u"&&document.currentScript&&(v=document.currentScript.src),Gc&&(v=Gc),v=v.startsWith("blob:")?"":v.slice(0,v.replace(/[?#].*/,"").lastIndexOf("/")+1),a&&(d=_=>{var T=new XMLHttpRequest;return T.open("GET",_,!1),T.responseType="arraybuffer",T.send(null),new Uint8Array(T.response)}),u=async _=>{if(le(_))return new Promise((A,B)=>{var W=new XMLHttpRequest;W.open("GET",_,!0),W.responseType="arraybuffer",W.onload=()=>{W.status==200||W.status==0&&W.response?A(W.response):B(W.status)},W.onerror=B,W.send(null)});var T=await fetch(_,{credentials:"same-origin"});if(T.ok)return T.arrayBuffer();throw Error(T.status+" : "+T.url)});var F=console.log.bind(console),x=console.error.bind(console),w=F,C=x;Object.assign(s,h),h=null;var y,P,I,g,E,$,L,G,q,O,J,Q,H,te=s.wasmBinary,re=!1,le=_=>_.startsWith("file://");function be(){return y.buffer!=g.buffer&&_e(),g}function z(){return y.buffer!=g.buffer&&_e(),E}function D(){return y.buffer!=g.buffer&&_e(),$}function K(){return y.buffer!=g.buffer&&_e(),L}function R(){return y.buffer!=g.buffer&&_e(),G}function ne(){return y.buffer!=g.buffer&&_e(),q}function Ce(){return y.buffer!=g.buffer&&_e(),O}function Me(){return y.buffer!=g.buffer&&_e(),H}if(i){let _=function(T){try{var A=T.data,B=A.Bb;if(B==="load"){let W=[];self.onmessage=ie=>W.push(ie),self.startWorker=()=>{postMessage({Bb:"loaded"});for(let ie of W)_(ie);self.onmessage=_};for(let ie of A.Rb)s[ie]&&!s[ie].proxy||(s[ie]=(...ve)=>{postMessage({Bb:"callHandler",Qb:ie,args:ve})},ie=="print"&&(w=s[ie]),ie=="printErr"&&(C=s[ie]));y=A.kc,_e(),Ke(A.lc)}else if(B==="run"){Cr(A.Ab),bo(A.Ab,0,0,1,0,0),zr(),me(A.Ab),et||(Nn(),et=!0);try{Hs(A.fc,A.Hb)}catch(W){if(W!="unwind")throw W}}else A.target!=="setimmediate"&&(B==="checkMailbox"?et&&Te():B&&(C(`worker: received unknown command ${B}`),C(A)))}catch(W){throw Vn(),W}};var Ie=_,Ke,et=!1;C=function(...T){T=T.join(" "),console.error(T)},self.alert=function(...T){postMessage({Bb:"alert",text:T.join(" "),ic:to()})},self.onunhandledrejection=T=>{throw T.reason||T},self.onmessage=_}function _e(){var _=y.buffer;s.HEAP8=g=new Int8Array(_),s.HEAP16=$=new Int16Array(_),s.HEAPU8=E=new Uint8Array(_),s.HEAPU16=L=new Uint16Array(_),s.HEAP32=G=new Int32Array(_),s.HEAPU32=q=new Uint32Array(_),s.HEAPF32=O=new Float32Array(_),s.HEAPF64=H=new Float64Array(_),s.HEAP64=J=new BigInt64Array(_),s.HEAPU64=Q=new BigUint64Array(_)}function Z(){i?startWorker(s):ut.Ca()}i||(y=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0}),_e());var V,fe=0,Se=null;function Pe(){if(--fe==0&&Se){var _=Se;Se=null,_()}}function pe(_){throw C(_="Aborted("+_+")"),re=!0,_=new WebAssembly.RuntimeError(_+". Build with -sASSERTIONS for more info."),t(_),_}function xe(){return{a:{L:$e,Aa:Ae,b:Xs,$:_t,A:Cs,pa:k,X:Y,Z:se,qa:he,na:ke,ga:Ze,ma:dt,J:qe,Y:Ct,V:St,oa:ur,W:Rt,va:Sr,E:Is,Q:Wr,O:Ur,D:Re,u:tt,r:Jt,P:Rs,z:S,R:U,ja:ee,T:He,aa:Je,M:We,F:It,ia:me,sa:bt,t:Zt,Ba:Ir,w:ns,o:tr,l:Kr,c:cs,n:Jo,j:Ta,v:Pa,p:Ea,f:Ys,s:ka,m:Ca,e:Sa,k:Fa,i:Ia,g:Zs,d:Aa,da:$a,ea:kn,fa:Da,ba:Cn,ca:Yo,N:Fn,xa:In,ua:An,h:La,C:Ba,G:za,ta:al,x:Ra,ra:ja,U:Na,q:Sn,y:Va,K:Wa,S:$n,za:Ua,ya:Dn,ka:On,la:Ka,_:rt,B:Ln,I:tn,ha:Bn,H:zn,a:y,wa:ot}}}var de={829644:(_,T,A,B,W)=>{if(s===void 0||!s.Eb)return 1;if((_=ct(Number(_>>>0))).startsWith("./")&&(_=_.substring(2)),!(_=s.Eb.get(_)))return 2;if(T=Number(T>>>0),A=Number(A>>>0),B=Number(B>>>0),T+A>_.byteLength)return 3;try{let ie=_.subarray(T,T+A);switch(W){case 0:z().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:(_,T,A)=>{s.Ob(_,z().subarray(T>>>0,T+A>>>0))},830532:()=>s.nc(),830574:_=>{s.Nb(_)},830611:()=>{s.Vb()},830642:()=>{s.Wb()},830671:()=>{s.$b()},830696:_=>s.Ub(_),830729:_=>s.Yb(_),830761:(_,T,A)=>{s.Kb(Number(_),Number(T),Number(A),!0)},830824:(_,T,A)=>{s.Kb(Number(_),Number(T),Number(A))},830881:()=>typeof wasmOffsetConverter<"u",830938:_=>{s.jb("Abs",_,void 0)},830989:_=>{s.jb("Neg",_,void 0)},831040:_=>{s.jb("Floor",_,void 0)},831093:_=>{s.jb("Ceil",_,void 0)},831145:_=>{s.jb("Reciprocal",_,void 0)},831203:_=>{s.jb("Sqrt",_,void 0)},831255:_=>{s.jb("Exp",_,void 0)},831306:_=>{s.jb("Erf",_,void 0)},831357:_=>{s.jb("Sigmoid",_,void 0)},831412:(_,T,A)=>{s.jb("HardSigmoid",_,{alpha:T,beta:A})},831491:_=>{s.jb("Log",_,void 0)},831542:_=>{s.jb("Sin",_,void 0)},831593:_=>{s.jb("Cos",_,void 0)},831644:_=>{s.jb("Tan",_,void 0)},831695:_=>{s.jb("Asin",_,void 0)},831747:_=>{s.jb("Acos",_,void 0)},831799:_=>{s.jb("Atan",_,void 0)},831851:_=>{s.jb("Sinh",_,void 0)},831903:_=>{s.jb("Cosh",_,void 0)},831955:_=>{s.jb("Asinh",_,void 0)},832008:_=>{s.jb("Acosh",_,void 0)},832061:_=>{s.jb("Atanh",_,void 0)},832114:_=>{s.jb("Tanh",_,void 0)},832166:_=>{s.jb("Not",_,void 0)},832217:(_,T,A)=>{s.jb("Clip",_,{min:T,max:A})},832286:_=>{s.jb("Clip",_,void 0)},832338:(_,T)=>{s.jb("Elu",_,{alpha:T})},832396:_=>{s.jb("Gelu",_,void 0)},832448:_=>{s.jb("Relu",_,void 0)},832500:(_,T)=>{s.jb("LeakyRelu",_,{alpha:T})},832564:(_,T)=>{s.jb("ThresholdedRelu",_,{alpha:T})},832634:(_,T)=>{s.jb("Cast",_,{to:T})},832692:_=>{s.jb("Add",_,void 0)},832743:_=>{s.jb("Sub",_,void 0)},832794:_=>{s.jb("Mul",_,void 0)},832845:_=>{s.jb("Div",_,void 0)},832896:_=>{s.jb("Pow",_,void 0)},832947:_=>{s.jb("Equal",_,void 0)},833e3:_=>{s.jb("Greater",_,void 0)},833055:_=>{s.jb("GreaterOrEqual",_,void 0)},833117:_=>{s.jb("Less",_,void 0)},833169:_=>{s.jb("LessOrEqual",_,void 0)},833228:(_,T,A,B,W)=>{s.jb("ReduceMean",_,{keepDims:!!T,noopWithEmptyAxes:!!A,axes:B?Array.from(R().subarray(Number(B)>>>0,Number(W)>>>0)):[]})},833403:(_,T,A,B,W)=>{s.jb("ReduceMax",_,{keepDims:!!T,noopWithEmptyAxes:!!A,axes:B?Array.from(R().subarray(Number(B)>>>0,Number(W)>>>0)):[]})},833577:(_,T,A,B,W)=>{s.jb("ReduceMin",_,{keepDims:!!T,noopWithEmptyAxes:!!A,axes:B?Array.from(R().subarray(Number(B)>>>0,Number(W)>>>0)):[]})},833751:(_,T,A,B,W)=>{s.jb("ReduceProd",_,{keepDims:!!T,noopWithEmptyAxes:!!A,axes:B?Array.from(R().subarray(Number(B)>>>0,Number(W)>>>0)):[]})},833926:(_,T,A,B,W)=>{s.jb("ReduceSum",_,{keepDims:!!T,noopWithEmptyAxes:!!A,axes:B?Array.from(R().subarray(Number(B)>>>0,Number(W)>>>0)):[]})},834100:(_,T,A,B,W)=>{s.jb("ReduceL1",_,{keepDims:!!T,noopWithEmptyAxes:!!A,axes:B?Array.from(R().subarray(Number(B)>>>0,Number(W)>>>0)):[]})},834273:(_,T,A,B,W)=>{s.jb("ReduceL2",_,{keepDims:!!T,noopWithEmptyAxes:!!A,axes:B?Array.from(R().subarray(Number(B)>>>0,Number(W)>>>0)):[]})},834446:(_,T,A,B,W)=>{s.jb("ReduceLogSum",_,{keepDims:!!T,noopWithEmptyAxes:!!A,axes:B?Array.from(R().subarray(Number(B)>>>0,Number(W)>>>0)):[]})},834623:(_,T,A,B,W)=>{s.jb("ReduceSumSquare",_,{keepDims:!!T,noopWithEmptyAxes:!!A,axes:B?Array.from(R().subarray(Number(B)>>>0,Number(W)>>>0)):[]})},834803:(_,T,A,B,W)=>{s.jb("ReduceLogSumExp",_,{keepDims:!!T,noopWithEmptyAxes:!!A,axes:B?Array.from(R().subarray(Number(B)>>>0,Number(W)>>>0)):[]})},834983:_=>{s.jb("Where",_,void 0)},835036:(_,T,A)=>{s.jb("Transpose",_,{perm:T?Array.from(R().subarray(Number(T)>>>0,Number(A)>>>0)):[]})},835160:(_,T,A,B)=>{s.jb("DepthToSpace",_,{blocksize:T,mode:ct(A),format:B?"NHWC":"NCHW"})},835293:(_,T,A,B)=>{s.jb("DepthToSpace",_,{blocksize:T,mode:ct(A),format:B?"NHWC":"NCHW"})},835426:(_,T,A,B,W,ie,ve,Oe,Qe,nt,Mt,At,jt,br,As)=>{s.jb("ConvTranspose",_,{format:Qe?"NHWC":"NCHW",autoPad:T,dilations:[A],group:B,kernelShape:[W],pads:[ie,ve],strides:[Oe],wIsConst:()=>!!be()[nt>>>0],outputPadding:Mt?Array.from(R().subarray(Number(Mt)>>>0,Number(At)>>>0)):[],outputShape:jt?Array.from(R().subarray(Number(jt)>>>0,Number(br)>>>0)):[],activation:ct(As)})},835859:(_,T,A,B,W,ie,ve,Oe,Qe,nt,Mt,At,jt,br)=>{s.jb("ConvTranspose",_,{format:Oe?"NHWC":"NCHW",autoPad:T,dilations:Array.from(R().subarray(Number(A)>>>0,2+(Number(A)>>>0)>>>0)),group:B,kernelShape:Array.from(R().subarray(Number(W)>>>0,2+(Number(W)>>>0)>>>0)),pads:Array.from(R().subarray(Number(ie)>>>0,4+(Number(ie)>>>0)>>>0)),strides:Array.from(R().subarray(Number(ve)>>>0,2+(Number(ve)>>>0)>>>0)),wIsConst:()=>!!be()[Qe>>>0],outputPadding:nt?Array.from(R().subarray(Number(nt)>>>0,Number(Mt)>>>0)):[],outputShape:At?Array.from(R().subarray(Number(At)>>>0,Number(jt)>>>0)):[],activation:ct(br)})},836520:(_,T,A,B,W,ie,ve,Oe,Qe,nt,Mt,At,jt,br,As)=>{s.jb("ConvTranspose",_,{format:Qe?"NHWC":"NCHW",autoPad:T,dilations:[A],group:B,kernelShape:[W],pads:[ie,ve],strides:[Oe],wIsConst:()=>!!be()[nt>>>0],outputPadding:Mt?Array.from(R().subarray(Number(Mt)>>>0,Number(At)>>>0)):[],outputShape:jt?Array.from(R().subarray(Number(jt)>>>0,Number(br)>>>0)):[],activation:ct(As)})},836953:(_,T,A,B,W,ie,ve,Oe,Qe,nt,Mt,At,jt,br)=>{s.jb("ConvTranspose",_,{format:Oe?"NHWC":"NCHW",autoPad:T,dilations:Array.from(R().subarray(Number(A)>>>0,2+(Number(A)>>>0)>>>0)),group:B,kernelShape:Array.from(R().subarray(Number(W)>>>0,2+(Number(W)>>>0)>>>0)),pads:Array.from(R().subarray(Number(ie)>>>0,4+(Number(ie)>>>0)>>>0)),strides:Array.from(R().subarray(Number(ve)>>>0,2+(Number(ve)>>>0)>>>0)),wIsConst:()=>!!be()[Qe>>>0],outputPadding:nt?Array.from(R().subarray(Number(nt)>>>0,Number(Mt)>>>0)):[],outputShape:At?Array.from(R().subarray(Number(At)>>>0,Number(jt)>>>0)):[],activation:ct(br)})},837614:(_,T)=>{s.jb("GlobalAveragePool",_,{format:T?"NHWC":"NCHW"})},837705:(_,T,A,B,W,ie,ve,Oe,Qe,nt,Mt,At,jt,br)=>{s.jb("AveragePool",_,{format:br?"NHWC":"NCHW",auto_pad:T,ceil_mode:A,count_include_pad:B,storage_order:W,dilations:ie?Array.from(R().subarray(Number(ie)>>>0,Number(ve)>>>0)):[],kernel_shape:Oe?Array.from(R().subarray(Number(Oe)>>>0,Number(Qe)>>>0)):[],pads:nt?Array.from(R().subarray(Number(nt)>>>0,Number(Mt)>>>0)):[],strides:At?Array.from(R().subarray(Number(At)>>>0,Number(jt)>>>0)):[]})},838184:(_,T)=>{s.jb("GlobalAveragePool",_,{format:T?"NHWC":"NCHW"})},838275:(_,T,A,B,W,ie,ve,Oe,Qe,nt,Mt,At,jt,br)=>{s.jb("AveragePool",_,{format:br?"NHWC":"NCHW",auto_pad:T,ceil_mode:A,count_include_pad:B,storage_order:W,dilations:ie?Array.from(R().subarray(Number(ie)>>>0,Number(ve)>>>0)):[],kernel_shape:Oe?Array.from(R().subarray(Number(Oe)>>>0,Number(Qe)>>>0)):[],pads:nt?Array.from(R().subarray(Number(nt)>>>0,Number(Mt)>>>0)):[],strides:At?Array.from(R().subarray(Number(At)>>>0,Number(jt)>>>0)):[]})},838754:(_,T)=>{s.jb("GlobalMaxPool",_,{format:T?"NHWC":"NCHW"})},838841:(_,T,A,B,W,ie,ve,Oe,Qe,nt,Mt,At,jt,br)=>{s.jb("MaxPool",_,{format:br?"NHWC":"NCHW",auto_pad:T,ceil_mode:A,count_include_pad:B,storage_order:W,dilations:ie?Array.from(R().subarray(Number(ie)>>>0,Number(ve)>>>0)):[],kernel_shape:Oe?Array.from(R().subarray(Number(Oe)>>>0,Number(Qe)>>>0)):[],pads:nt?Array.from(R().subarray(Number(nt)>>>0,Number(Mt)>>>0)):[],strides:At?Array.from(R().subarray(Number(At)>>>0,Number(jt)>>>0)):[]})},839316:(_,T)=>{s.jb("GlobalMaxPool",_,{format:T?"NHWC":"NCHW"})},839403:(_,T,A,B,W,ie,ve,Oe,Qe,nt,Mt,At,jt,br)=>{s.jb("MaxPool",_,{format:br?"NHWC":"NCHW",auto_pad:T,ceil_mode:A,count_include_pad:B,storage_order:W,dilations:ie?Array.from(R().subarray(Number(ie)>>>0,Number(ve)>>>0)):[],kernel_shape:Oe?Array.from(R().subarray(Number(Oe)>>>0,Number(Qe)>>>0)):[],pads:nt?Array.from(R().subarray(Number(nt)>>>0,Number(Mt)>>>0)):[],strides:At?Array.from(R().subarray(Number(At)>>>0,Number(jt)>>>0)):[]})},839878:(_,T,A,B,W)=>{s.jb("Gemm",_,{alpha:T,beta:A,transA:B,transB:W})},839982:_=>{s.jb("MatMul",_,void 0)},840036:(_,T,A,B)=>{s.jb("ArgMax",_,{keepDims:!!T,selectLastIndex:!!A,axis:B})},840144:(_,T,A,B)=>{s.jb("ArgMin",_,{keepDims:!!T,selectLastIndex:!!A,axis:B})},840252:(_,T)=>{s.jb("Softmax",_,{axis:T})},840315:(_,T)=>{s.jb("Concat",_,{axis:T})},840375:(_,T,A,B,W)=>{s.jb("Split",_,{axis:T,numOutputs:A,splitSizes:B?Array.from(R().subarray(Number(B)>>>0,Number(W)>>>0)):[]})},840531:_=>{s.jb("Expand",_,void 0)},840585:(_,T)=>{s.jb("Gather",_,{axis:Number(T)})},840656:(_,T)=>{s.jb("GatherElements",_,{axis:Number(T)})},840735:(_,T)=>{s.jb("GatherND",_,{batch_dims:Number(T)})},840814:(_,T,A,B,W,ie,ve,Oe,Qe,nt,Mt)=>{s.jb("Resize",_,{antialias:T,axes:A?Array.from(R().subarray(Number(A)>>>0,Number(B)>>>0)):[],coordinateTransformMode:ct(W),cubicCoeffA:ie,excludeOutside:ve,extrapolationValue:Oe,keepAspectRatioPolicy:ct(Qe),mode:ct(nt),nearestMode:ct(Mt)})},841176:(_,T,A,B,W,ie,ve)=>{s.jb("Slice",_,{starts:T?Array.from(R().subarray(Number(T)>>>0,Number(A)>>>0)):[],ends:B?Array.from(R().subarray(Number(B)>>>0,Number(W)>>>0)):[],axes:ie?Array.from(R().subarray(Number(ie)>>>0,Number(ve)>>>0)):[]})},841440:_=>{s.jb("Tile",_,void 0)},841492:(_,T,A)=>{s.jb("InstanceNormalization",_,{epsilon:T,format:A?"NHWC":"NCHW"})},841606:(_,T,A)=>{s.jb("InstanceNormalization",_,{epsilon:T,format:A?"NHWC":"NCHW"})},841720:_=>{s.jb("Range",_,void 0)},841773:(_,T)=>{s.jb("Einsum",_,{equation:ct(T)})},841854:(_,T,A,B,W)=>{s.jb("Pad",_,{mode:T,value:A,pads:B?Array.from(R().subarray(Number(B)>>>0,Number(W)>>>0)):[]})},841997:(_,T,A,B,W,ie)=>{s.jb("BatchNormalization",_,{epsilon:T,momentum:A,spatial:!!W,trainingMode:!!B,format:ie?"NHWC":"NCHW"})},842166:(_,T,A,B,W,ie)=>{s.jb("BatchNormalization",_,{epsilon:T,momentum:A,spatial:!!W,trainingMode:!!B,format:ie?"NHWC":"NCHW"})},842335:(_,T,A)=>{s.jb("CumSum",_,{exclusive:Number(T),reverse:Number(A)})},842432:(_,T,A)=>{s.jb("DequantizeLinear",_,{axis:T,blockSize:A})},842522:(_,T,A,B,W)=>{s.jb("GridSample",_,{align_corners:T,mode:ct(A),padding_mode:ct(B),format:W?"NHWC":"NCHW"})},842692:(_,T,A,B,W)=>{s.jb("GridSample",_,{align_corners:T,mode:ct(A),padding_mode:ct(B),format:W?"NHWC":"NCHW"})},842862:(_,T)=>{s.jb("ScatterND",_,{reduction:ct(T)})},842947:(_,T,A,B,W,ie,ve,Oe,Qe)=>{s.jb("Attention",_,{numHeads:T,isUnidirectional:A,maskFilterValue:B,scale:W,doRotary:ie,qkvHiddenSizes:ve?Array.from(R().subarray(Number(Oe)>>>0,Number(Oe)+ve>>>0)):[],pastPresentShareBuffer:!!Qe})},843219:_=>{s.jb("BiasAdd",_,void 0)},843274:_=>{s.jb("BiasSplitGelu",_,void 0)},843335:_=>{s.jb("FastGelu",_,void 0)},843391:(_,T,A,B,W,ie,ve,Oe,Qe,nt,Mt,At,jt,br,As,Qa)=>{s.jb("Conv",_,{format:At?"NHWC":"NCHW",auto_pad:T,dilations:A?Array.from(R().subarray(Number(A)>>>0,Number(B)>>>0)):[],group:W,kernel_shape:ie?Array.from(R().subarray(Number(ie)>>>0,Number(ve)>>>0)):[],pads:Oe?Array.from(R().subarray(Number(Oe)>>>0,Number(Qe)>>>0)):[],strides:nt?Array.from(R().subarray(Number(nt)>>>0,Number(Mt)>>>0)):[],w_is_const:()=>!!be()[Number(jt)>>>0],activation:ct(br),activation_params:As?Array.from(Ce().subarray(Number(As)>>>0,Number(Qa)>>>0)):[]})},843975:_=>{s.jb("Gelu",_,void 0)},844027:(_,T,A,B,W,ie,ve,Oe,Qe)=>{s.jb("GroupQueryAttention",_,{numHeads:T,kvNumHeads:A,scale:B,softcap:W,doRotary:ie,rotaryInterleaved:ve,smoothSoftmax:Oe,localWindowSize:Qe})},844244:(_,T,A,B)=>{s.jb("LayerNormalization",_,{axis:T,epsilon:A,simplified:!!B})},844355:(_,T,A,B)=>{s.jb("LayerNormalization",_,{axis:T,epsilon:A,simplified:!!B})},844466:(_,T,A,B,W,ie)=>{s.jb("MatMulNBits",_,{k:T,n:A,accuracyLevel:B,bits:W,blockSize:ie})},844593:(_,T,A,B,W,ie)=>{s.jb("MultiHeadAttention",_,{numHeads:T,isUnidirectional:A,maskFilterValue:B,scale:W,doRotary:ie})},844752:(_,T)=>{s.jb("QuickGelu",_,{alpha:T})},844816:(_,T,A,B,W)=>{s.jb("RotaryEmbedding",_,{interleaved:!!T,numHeads:A,rotaryEmbeddingDim:B,scale:W})},844955:(_,T,A)=>{s.jb("SkipLayerNormalization",_,{epsilon:T,simplified:!!A})},845057:(_,T,A)=>{s.jb("SkipLayerNormalization",_,{epsilon:T,simplified:!!A})},845159:(_,T,A,B)=>{s.jb("GatherBlockQuantized",_,{gatherAxis:T,quantizeAxis:A,blockSize:B})},845280:_=>{s.Zb(_)},845314:(_,T)=>s.ac(Number(_),Number(T),s.Fb.dc,s.Fb.errors)};function Ae(_,T,A){return Tr(async()=>{await s.Xb(Number(_),Number(T),Number(A))})}function $e(){return typeof wasmOffsetConverter<"u"}class Ue{name="ExitStatus";constructor(T){this.message=`Program terminated with exit(${T})`,this.status=T}}var Ee=_=>{_.terminate(),_.onmessage=()=>{}},je=[],Ge=_=>{Ye.length==0&&(Ut(),Rr(Ye[0]));var T=Ye.pop();if(!T)return 6;ft.push(T),Ot[_.Ab]=T,T.Ab=_.Ab;var A={Bb:"run",fc:_.ec,Hb:_.Hb,Ab:_.Ab};return T.postMessage(A,_.Mb),0},Ve=0,De=(_,T,...A)=>{for(var B=2*A.length,W=nn(),ie=xo(8*B),ve=ie>>>3,Oe=0;Oe<A.length;Oe++){var Qe=A[Oe];typeof Qe=="bigint"?(J[ve+2*Oe]=1n,J[ve+2*Oe+1]=Qe):(J[ve+2*Oe]=0n,Me()[ve+2*Oe+1>>>0]=Qe)}return _=Wn(_,0,B,ie,T),Mo(W),_};function ot(_){if(i)return De(0,1,_);if(I=_,!(0<Ve)){for(var T of ft)Ee(T);for(T of Ye)Ee(T);Ye=[],ft=[],Ot={},re=!0}f(0,new Ue(_))}function lt(_){if(i)return De(1,0,_);rt(_)}var rt=_=>{if(I=_,i)throw lt(_),"unwind";ot(_)},Ye=[],ft=[],yt=[],Ot={},vr=_=>{var T=_.Ab;delete Ot[T],Ye.push(_),ft.splice(ft.indexOf(_),1),_.Ab=0,rn(T)};function zr(){yt.forEach(_=>_())}var Rr=_=>new Promise(T=>{_.onmessage=W=>{var ie=(W=W.data).Bb;if(W.Gb&&W.Gb!=to()){var ve=Ot[W.Gb];ve?ve.postMessage(W,W.Mb):C(`Internal error! Worker sent a message "${ie}" to target pthread ${W.Gb}, but that thread no longer exists!`)}else ie==="checkMailbox"?Te():ie==="spawnThread"?Ge(W):ie==="cleanupThread"?vr(Ot[W.hc]):ie==="loaded"?(_.loaded=!0,T(_)):ie==="alert"?alert(`Thread ${W.ic}: ${W.text}`):W.target==="setimmediate"?_.postMessage(W):ie==="callHandler"?s[W.Qb](...W.args):ie&&C(`worker sent an unknown command ${ie}`)},_.onerror=W=>{throw C(`worker sent an error! ${W.filename}:${W.lineno}: ${W.message}`),W};var A,B=[];for(A of[])s.propertyIsEnumerable(A)&&B.push(A);_.postMessage({Bb:"load",Rb:B,kc:y,lc:P})});function Ut(){var _=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"});Ye.push(_)}var Cr=_=>{_e();var T=ne()[_+52>>>2>>>0];_=ne()[_+56>>>2>>>0],Gn(T,T-_),Mo(T)},Hs=(_,T)=>{Ve=0,_=Kn(_,T),0<Ve?I=_:sn(_)};class Qs{constructor(T){this.Ib=T-24}}function Xs(_,T,A){var B=new Qs(_>>>=0);throw T>>>=0,A>>>=0,ne()[B.Ib+16>>>2>>>0]=0,ne()[B.Ib+4>>>2>>>0]=T,ne()[B.Ib+8>>>2>>>0]=A,_}function Bs(_,T,A,B){return i?De(2,1,_,T,A,B):_t(_,T,A,B)}function _t(_,T,A,B){if(_>>>=0,A>>>=0,B>>>=0,l===void 0)return 6;var W=[];return i&&W.length===0?Bs(_,T>>>=0,A,B):(_={ec:A,Ab:_,Hb:B,Mb:W},i?(_.Bb="spawnThread",postMessage(_,W),0):Ge(_))}var Es=typeof TextDecoder<"u"?new TextDecoder:void 0,ks=(_,T=0,A=NaN)=>{var B=(T>>>=0)+A;for(A=T;_[A]&&!(A>=B);)++A;if(16<A-T&&_.buffer&&Es)return Es.decode(_.buffer instanceof ArrayBuffer?_.subarray(T,A):_.slice(T,A));for(B="";T<A;){var W=_[T++];if(128&W){var ie=63&_[T++];if((224&W)==192)B+=String.fromCharCode((31&W)<<6|ie);else{var ve=63&_[T++];65536>(W=(240&W)==224?(15&W)<<12|ie<<6|ve:(7&W)<<18|ie<<12|ve<<6|63&_[T++])?B+=String.fromCharCode(W):(W-=65536,B+=String.fromCharCode(55296|W>>10,56320|1023&W))}}else B+=String.fromCharCode(W)}return B},ct=(_,T)=>(_>>>=0)?ks(z(),_,T):"";function Cs(_,T,A){return i?De(3,1,_,T,A):0}function k(_,T){if(i)return De(4,1,_,T)}var X=_=>{for(var T=0,A=0;A<_.length;++A){var B=_.charCodeAt(A);127>=B?T++:2047>=B?T+=2:55296<=B&&57343>=B?(T+=4,++A):T+=3}return T},N=(_,T,A)=>{var B=z();if(T>>>=0,0<A){var W=T;A=T+A-1;for(var ie=0;ie<_.length;++ie){var ve=_.charCodeAt(ie);if(55296<=ve&&57343>=ve&&(ve=65536+((1023&ve)<<10)|1023&_.charCodeAt(++ie)),127>=ve){if(T>=A)break;B[T++>>>0]=ve}else{if(2047>=ve){if(T+1>=A)break;B[T++>>>0]=192|ve>>6}else{if(65535>=ve){if(T+2>=A)break;B[T++>>>0]=224|ve>>12}else{if(T+3>=A)break;B[T++>>>0]=240|ve>>18,B[T++>>>0]=128|ve>>12&63}B[T++>>>0]=128|ve>>6&63}B[T++>>>0]=128|63&ve}}B[T>>>0]=0,_=T-W}else _=0;return _};function Y(_,T){if(i)return De(5,1,_,T)}function se(_,T,A){if(i)return De(6,1,_,T,A)}function he(_,T,A){return i?De(7,1,_,T,A):0}function ke(_,T){if(i)return De(8,1,_,T)}function Ze(_,T,A){if(i)return De(9,1,_,T,A)}function dt(_,T,A,B){if(i)return De(10,1,_,T,A,B)}function qe(_,T,A,B){if(i)return De(11,1,_,T,A,B)}function Ct(_,T,A,B){if(i)return De(12,1,_,T,A,B)}function St(_){if(i)return De(13,1,_)}function ur(_,T){if(i)return De(14,1,_,T)}function Rt(_,T,A){if(i)return De(15,1,_,T,A)}var jr,pr,Sr=()=>pe(""),Gt=_=>{for(var T="";z()[_>>>0];)T+=jr[z()[_++>>>0]];return T},os={},Nr={},Ss={};function yr(_,T,A={}){return function(B,W,ie={}){var ve=W.name;if(!B)throw new pr(`type "${ve}" must have a positive integer typeid pointer`);if(Nr.hasOwnProperty(B)){if(ie.Sb)return;throw new pr(`Cannot register type '${ve}' twice`)}Nr[B]=W,delete Ss[B],os.hasOwnProperty(B)&&(W=os[B],delete os[B],W.forEach(Oe=>Oe()))}(_,T,A)}var Fs=(_,T,A)=>{switch(T){case 1:return A?B=>be()[B>>>0]:B=>z()[B>>>0];case 2:return A?B=>D()[B>>>1>>>0]:B=>K()[B>>>1>>>0];case 4:return A?B=>R()[B>>>2>>>0]:B=>ne()[B>>>2>>>0];case 8:return A?B=>J[B>>>3]:B=>Q[B>>>3];default:throw new TypeError(`invalid integer width (${T}): ${_}`)}};function Is(_,T,A){A>>>=0,yr(_>>>=0,{name:T=Gt(T>>>0),fromWireType:B=>B,toWireType:function(B,W){if(typeof W!="bigint"&&typeof W!="number")throw W=W===null?"null":(B=typeof W)=="object"||B==="array"||B==="function"?W.toString():""+W,new TypeError(`Cannot convert "${W}" to ${this.name}`);return typeof W=="number"&&(W=BigInt(W)),W},Cb:Vr,readValueFromPointer:Fs(T,A,T.indexOf("u")==-1),Db:null})}var Vr=8;function Wr(_,T,A,B){yr(_>>>=0,{name:T=Gt(T>>>0),fromWireType:function(W){return!!W},toWireType:function(W,ie){return ie?A:B},Cb:Vr,readValueFromPointer:function(W){return this.fromWireType(z()[W>>>0])},Db:null})}var Yr=[],Fr=[];function cs(_){9<(_>>>=0)&&--Fr[_+1]==0&&(Fr[_]=void 0,Yr.push(_))}var lr=_=>{if(!_)throw new pr("Cannot use deleted val. handle = "+_);return Fr[_]},_r=_=>{switch(_){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:let T=Yr.pop()||Fr.length;return Fr[T]=_,Fr[T+1]=1,T}};function Hr(_){return this.fromWireType(ne()[_>>>2>>>0])}var zs={name:"emscripten::val",fromWireType:_=>{var T=lr(_);return cs(_),T},toWireType:(_,T)=>_r(T),Cb:Vr,readValueFromPointer:Hr,Db:null};function Ur(_){return yr(_>>>0,zs)}var Le=(_,T)=>{switch(T){case 4:return function(A){return this.fromWireType(Ce()[A>>>2>>>0])};case 8:return function(A){return this.fromWireType(Me()[A>>>3>>>0])};default:throw new TypeError(`invalid float width (${T}): ${_}`)}};function Re(_,T,A){A>>>=0,yr(_>>>=0,{name:T=Gt(T>>>0),fromWireType:B=>B,toWireType:(B,W)=>W,Cb:Vr,readValueFromPointer:Le(T,A),Db:null})}function tt(_,T,A,B,W){if(_>>>=0,A>>>=0,T=Gt(T>>>0),W===-1&&(W=4294967295),W=Oe=>Oe,B===0){var ie=32-8*A;W=Oe=>Oe<<ie>>>ie}var ve=T.includes("unsigned")?function(Oe,Qe){return Qe>>>0}:function(Oe,Qe){return Qe};yr(_,{name:T,fromWireType:W,toWireType:ve,Cb:Vr,readValueFromPointer:Fs(T,A,B!==0),Db:null})}function Jt(_,T,A){function B(ie){var ve=ne()[ie>>>2>>>0];return ie=ne()[ie+4>>>2>>>0],new W(be().buffer,ie,ve)}var W=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][T];yr(_>>>=0,{name:A=Gt(A>>>0),fromWireType:B,Cb:Vr,readValueFromPointer:B},{Sb:!0})}function Rs(_,T){yr(_>>>=0,{name:T=Gt(T>>>0),fromWireType:function(A){for(var B,W=ne()[A>>>2>>>0],ie=A+4,ve=ie,Oe=0;Oe<=W;++Oe){var Qe=ie+Oe;Oe!=W&&z()[Qe>>>0]!=0||(ve=ct(ve,Qe-ve),B===void 0?B=ve:(B+="\0",B+=ve),ve=Qe+1)}return Zr(A),B},toWireType:function(A,B){B instanceof ArrayBuffer&&(B=new Uint8Array(B));var W=typeof B=="string";if(!(W||B instanceof Uint8Array||B instanceof Uint8ClampedArray||B instanceof Int8Array))throw new pr("Cannot pass non-string to std::string");var ie=W?X(B):B.length,ve=wo(4+ie+1),Oe=ve+4;if(ne()[ve>>>2>>>0]=ie,W)N(B,Oe,ie+1);else if(W)for(W=0;W<ie;++W){var Qe=B.charCodeAt(W);if(255<Qe)throw Zr(ve),new pr("String has UTF-16 code units that do not fit in 8 bits");z()[Oe+W>>>0]=Qe}else for(W=0;W<ie;++W)z()[Oe+W>>>0]=B[W];return A!==null&&A.push(Zr,ve),ve},Cb:Vr,readValueFromPointer:Hr,Db(A){Zr(A)}})}var ds=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,js=(_,T)=>{for(var A=_>>1,B=A+T/2;!(A>=B)&&K()[A>>>0];)++A;if(32<(A<<=1)-_&&ds)return ds.decode(z().slice(_,A));for(A="",B=0;!(B>=T/2);++B){var W=D()[_+2*B>>>1>>>0];if(W==0)break;A+=String.fromCharCode(W)}return A},us=(_,T,A)=>{if(A??=2147483647,2>A)return 0;var B=T;A=(A-=2)<2*_.length?A/2:_.length;for(var W=0;W<A;++W){var ie=_.charCodeAt(W);D()[T>>>1>>>0]=ie,T+=2}return D()[T>>>1>>>0]=0,T-B},po=_=>2*_.length,_o=(_,T)=>{for(var A=0,B="";!(A>=T/4);){var W=R()[_+4*A>>>2>>>0];if(W==0)break;++A,65536<=W?(W-=65536,B+=String.fromCharCode(55296|W>>10,56320|1023&W)):B+=String.fromCharCode(W)}return B},Xo=(_,T,A)=>{if(T>>>=0,A??=2147483647,4>A)return 0;var B=T;A=B+A-4;for(var W=0;W<_.length;++W){var ie=_.charCodeAt(W);if(55296<=ie&&57343>=ie&&(ie=65536+((1023&ie)<<10)|1023&_.charCodeAt(++W)),R()[T>>>2>>>0]=ie,(T+=4)+4>A)break}return R()[T>>>2>>>0]=0,T-B},ce=_=>{for(var T=0,A=0;A<_.length;++A){var B=_.charCodeAt(A);55296<=B&&57343>=B&&++A,T+=4}return T};function S(_,T,A){if(_>>>=0,T>>>=0,A=Gt(A>>>=0),T===2)var B=js,W=us,ie=po,ve=Oe=>K()[Oe>>>1>>>0];else T===4&&(B=_o,W=Xo,ie=ce,ve=Oe=>ne()[Oe>>>2>>>0]);yr(_,{name:A,fromWireType:Oe=>{for(var Qe,nt=ne()[Oe>>>2>>>0],Mt=Oe+4,At=0;At<=nt;++At){var jt=Oe+4+At*T;At!=nt&&ve(jt)!=0||(Mt=B(Mt,jt-Mt),Qe===void 0?Qe=Mt:(Qe+="\0",Qe+=Mt),Mt=jt+T)}return Zr(Oe),Qe},toWireType:(Oe,Qe)=>{if(typeof Qe!="string")throw new pr(`Cannot pass non-string to C++ string type ${A}`);var nt=ie(Qe),Mt=wo(4+nt+T);return ne()[Mt>>>2>>>0]=nt/T,W(Qe,Mt+4,nt+T),Oe!==null&&Oe.push(Zr,Mt),Mt},Cb:Vr,readValueFromPointer:Hr,Db(Oe){Zr(Oe)}})}function U(_,T){yr(_>>>=0,{Tb:!0,name:T=Gt(T>>>0),Cb:0,fromWireType:()=>{},toWireType:()=>{}})}function ee(_){bo(_>>>0,!a,1,!n,131072,!1),zr()}var oe=_=>{if(!re)try{if(_(),!(0<Ve))try{i?sn(I):rt(I)}catch(T){T instanceof Ue||T=="unwind"||f(0,T)}}catch(T){T instanceof Ue||T=="unwind"||f(0,T)}};function me(_){_>>>=0,typeof Atomics.jc=="function"&&(Atomics.jc(R(),_>>>2,_).value.then(Te),_+=128,Atomics.store(R(),_>>>2,1))}var Te=()=>{var _=to();_&&(me(_),oe(on))};function He(_,T){(_>>>=0)==T>>>0?setTimeout(Te):i?postMessage({Gb:_,Bb:"checkMailbox"}):(_=Ot[_])&&_.postMessage({Bb:"checkMailbox"})}var Xe=[];function Je(_,T,A,B,W){for(T>>>=0,B/=2,Xe.length=B,A=W>>>0>>>3,W=0;W<B;W++)Xe[W]=J[A+2*W]?J[A+2*W+1]:Me()[A+2*W+1>>>0];return(T?de[T]:Ha[_])(...Xe)}var We=()=>{Ve=0};function It(_){_>>>=0,i?postMessage({Bb:"cleanupThread",hc:_}):vr(Ot[_])}function bt(_){}var Kt=(_,T)=>{var A=Nr[_];if(A===void 0)throw _=jn(_),A=Gt(_),Zr(_),new pr(`${T} has unknown type ${A}`);return A},mr=(_,T,A)=>{var B=[];return _=_.toWireType(B,A),B.length&&(ne()[T>>>2>>>0]=_r(B)),_};function Zt(_,T,A){return T>>>=0,A>>>=0,_=lr(_>>>0),T=Kt(T,"emval::as"),mr(T,A,_)}function Ir(_,T){return T>>>=0,_=lr(_>>>0),(T=Kt(T,"emval::as")).toWireType(null,_)}var nr=_=>{try{_()}catch(T){pe(T)}},fr=0,Ar=null,$r=0,Qr=[],Qt={},hr={},Gr=0,Or=null,ps=[];function Tr(_){return function(T){if(!re){if(fr===0){var A=!1,B=!1;T((W=0)=>{if(!re&&($r=W,A=!0,B)){fr=2,nr(()=>Hn(Ar)),typeof MainLoop<"u"&&MainLoop.Pb&&MainLoop.resume(),W=!1;try{var ie=function(){var Qe=R()[Ar+8>>>2>>>0];return Qe=ut[hr[Qe]],--Ve,Qe()}()}catch(Qe){ie=Qe,W=!0}var ve=!1;if(!Ar){var Oe=Or;Oe&&(Or=null,(W?Oe.reject:Oe.resolve)(ie),ve=!0)}if(W&&!ve)throw ie}}),B=!0,A||(fr=1,Ar=function(){var W=wo(65548),ie=W+12;ne()[W>>>2>>>0]=ie,ne()[W+4>>>2>>>0]=ie+65536,ie=Qr[0];var ve=Qt[ie];return ve===void 0&&(ve=Gr++,Qt[ie]=ve,hr[ve]=ie),ie=ve,R()[W+8>>>2>>>0]=ie,W}(),typeof MainLoop<"u"&&MainLoop.Pb&&MainLoop.pause(),nr(()=>an(Ar)))}else fr===2?(fr=0,nr(ln),Zr(Ar),Ar=null,ps.forEach(oe)):pe(`invalid state: ${fr}`);return $r}}(T=>{_().then(T)})}function ns(_){return _>>>=0,Tr(async()=>{var T=await lr(_);return _r(T)})}var ar=[];function tr(_,T,A,B){return A>>>=0,B>>>=0,(_=ar[_>>>0])(null,T=lr(T>>>0),A,B)}var cr={},er=_=>{var T=cr[_];return T===void 0?Gt(_):T};function Kr(_,T,A,B,W){return A>>>=0,B>>>=0,W>>>=0,(_=ar[_>>>0])(T=lr(T>>>0),T[A=er(A)],B,W)}var Ns=()=>typeof globalThis=="object"?globalThis:Function("return this")();function Jo(_){return(_>>>=0)==0?_r(Ns()):(_=er(_),_r(Ns()[_]))}var Js=_=>{var T=ar.length;return ar.push(_),T},ya=(_,T)=>{for(var A=Array(_),B=0;B<_;++B)A[B]=Kt(ne()[T+4*B>>>2>>>0],"parameter "+B);return A},yn=(_,T)=>Object.defineProperty(T,"name",{value:_});function Ta(_,T,A){var B=(T=ya(_,T>>>0)).shift();_--;var W=`return function (obj, func, destructorsRef, args) {
7
+ `)});var xi=()=>({stdout:async e=>console.log(e),stderr:async e=>console.error(e)});var Th=()=>kc()?bi():Cc()?Mi():xi();var Ph=()=>({stdout:async()=>{},stderr:async()=>{}});function Eh(){return()=>({stdout:e=>e,stderr:e=>e})}var _n=class e{static writers={auto:Th,void:Ph,deno:bi,node:Mi,console:xi};static colors={auto:Sc,colorful:()=>Yn,colorless:()=>Jn};static themes={auto:Mh,basic:fi};static shapers={auto:yh,none:Eh,errors:gi,timestamp:wi};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=Zn(...r),this}};var ea=class extends _n{static dummy(){return new this().setWriter(_n.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),n=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("<-"):n("->")].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 $s=class extends ea{rpcRequest=async()=>{}};var Ds=Object.freeze({eq(e,r){if(e.length!==r.length)return!1;for(let t=0;t<=e.length;t++)if(e.at(t)!==r.at(t))return!1;return!0},random(e){return crypto.getRandomValues(new Uint8Array(e))}});var ko=Object.freeze({fromBytes(e){return[...e].map(r=>r.toString(16).padStart(2,"0")).join("")},toBytes(e){if(e.length%2!==0)throw new Error("must have even number of hex characters");let r=new Uint8Array(e.length/2);for(let t=0;t<e.length;t+=2)r[t/2]=parseInt(e.slice(t,t+2),16);return r},random(e=32){return this.fromBytes(Ds.random(e))},string(e){return ko.fromBytes(e)},bytes(e){return ko.toBytes(e)}});var Fc=58,vi="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Ic=Object.freeze({fromBytes(e){let r=BigInt("0x"+ko.fromBytes(e)),t="";for(;r>0;){let s=r%BigInt(Fc);r=r/BigInt(Fc),t=vi[Number(s)]+t}for(let s of e)if(s===0)t=vi[0]+t;else break;return t},toBytes(e){let r=BigInt(0);for(let a of e){let i=vi.indexOf(a);if(i===-1)throw new Error(`Invalid character '${a}' in base58 string`);r=r*BigInt(Fc)+BigInt(i)}let t=r.toString(16);t.length%2!==0&&(t="0"+t);let s=ko.toBytes(t),o=0;for(let a of e)if(a===vi[0])o++;else break;let n=new Uint8Array(o+s.length);return n.set(s,o),n},random(e=32){return this.fromBytes(Ds.random(e))},string(e){return Ic.fromBytes(e)},bytes(e){return Ic.toBytes(e)}});var kh=class{lexicon;static lexicons=Object.freeze({base2:{characters:"01"},hex:{characters:"0123456789abcdef"},base36:{characters:"0123456789abcdefghijklmnopqrstuvwxyz"},base58:{characters:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"},base62:{characters:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"},base64url:{negativePrefix:"~",characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},base64:{characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",padding:{character:"=",size:4}}});lookup;negativePrefix;constructor(r){this.lexicon=r,this.lookup=Object.fromEntries([...r.characters].map((t,s)=>[t,s])),this.negativePrefix=r.negativePrefix??"-"}toBytes(r){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let i=0,l=0,c=[];for(let p of r){if(p===this.lexicon.padding?.character)continue;let u=this.lookup[p];if(u===void 0)throw new Error(`Invalid character: ${p}`);for(i=i<<t|u,l+=t;l>=8;)l-=8,c.push(i>>l&255)}return new Uint8Array(c)}let s=0n,o=BigInt(this.lexicon.characters.length),n=!1;r.startsWith(this.negativePrefix)&&(r=r.slice(this.negativePrefix.length),n=!0);for(let i of r){let l=this.lookup[i];if(l===void 0)throw new Error(`Invalid character: ${i}`);s=s*o+BigInt(l)}let a=[];for(;s>0n;)a.unshift(Number(s%256n)),s=s/256n;return new Uint8Array(a)}fromBytes(r){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let a=0,i=0,l="";for(let c of r)for(a=a<<8|c,i+=8;i>=t;){i-=t;let p=a>>i&(1<<t)-1;l+=this.lexicon.characters[p]}if(i>0){let c=a<<t-i&(1<<t)-1;l+=this.lexicon.characters[c]}if(this.lexicon.padding)for(;l.length%this.lexicon.padding.size!==0;)l+=this.lexicon.padding.character;return l}let s=0n;for(let a of r)s=(s<<8n)+BigInt(a);if(s===0n)return this.lexicon.characters[0];let o=BigInt(this.lexicon.characters.length),n="";for(;s>0n;)n=this.lexicon.characters[Number(s%o)]+n,s=s/o;return n}toInteger(r){if(!r)return 0;let t=0n,s=!1,o=BigInt(this.lexicon.characters.length);r.startsWith(this.negativePrefix)&&(r=r.slice(this.negativePrefix.length),s=!0);for(let n of r){let a=this.lookup[n];if(a===void 0)throw new Error(`Invalid character: ${n}`);t=t*o+BigInt(a)}return Number(s?-t:t)}fromInteger(r){r=Math.floor(r);let t=r<0,s=BigInt(t?-r:r);if(s===0n)return this.lexicon.characters[0];let o=BigInt(this.lexicon.characters.length),n="";for(;s>0n;)n=this.lexicon.characters[Number(s%o)]+n,s=s/o;return t?`${this.negativePrefix}${n}`:n}random(r=32){return this.fromBytes(Ds.random(r))}};var Ac=Object.freeze({fromBytes(e){return typeof btoa=="function"?btoa(String.fromCharCode(...e)):Buffer.from(e).toString("base64")},toBytes(e){return typeof atob=="function"?Uint8Array.from(atob(e),r=>r.charCodeAt(0)):Uint8Array.from(Buffer.from(e,"base64"))},random(e=32){return this.fromBytes(Ds.random(e))},string(e){return Ac.fromBytes(e)},bytes(e){return Ac.toBytes(e)}});var Ch=Object.freeze({fromBytes(e){return new TextDecoder().decode(e)},toBytes(e){return new TextEncoder().encode(e)},string(e){return Ch.fromBytes(e)},bytes(e){return Ch.toBytes(e)}});var yi=Object.freeze({set:e=>e!=null,unset: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 ta=class extends Error{milliseconds;name=this.constructor.name;constructor(r){super(`deadline exceeded (${(r/1e3).toFixed(1)} seconds)`),this.milliseconds=r}};function Ti(e,r){return e<=0||e===1/0?r():new Promise((t,s)=>{let o=setTimeout(()=>s(new ta(e)),e);r().then(t).catch(s).finally(()=>clearTimeout(o))})}function Co(){let e,r,t=new Promise((o,n)=>{e=o,r=n});function s(o){return o.then(e).catch(r),t}return{promise:t,resolve:e,reject:r,entangle:s}}function Sh(e,r){let t=e;for(let s of r)if(t=t[s],yi.unset(t))break;return t}function DT(e){return{map:r=>Fh(e,r),filter:r=>Ih(e,r)}}DT.pipe=Object.freeze({map:e=>r=>Fh(r,e),filter:e=>r=>Ih(r,e)});var Fh=(e,r)=>Object.fromEntries(Object.entries(e).map(([t,s])=>[t,r(s,t)])),Ih=(e,r)=>Object.fromEntries(Object.entries(e).filter(([t,s])=>r(s,t)));function OT(){let e=new Set;function r(n){return e.add(n),()=>{e.delete(n)}}async function t(...n){await Promise.all([...e].map(a=>a(...n)))}async function s(){let{promise:n,resolve:a}=Co(),i=r((...l)=>{a(l),i()});return n}function o(){e.clear()}return r.pub=t,r.sub=r,r.on=r,r.next=s,r.clear=o,t.pub=t,t.sub=r,t.on=r,t.next=s,t.clear=o,[t,r]}function Pi(e){let r=OT()[0];return e&&r.sub(e),r}var Vs=class{#e=[];add(...r){return this.#e.push(...r),this}disposable(r){return this.bag(r,()=>r.dispose())}bag(r,t){return this.add(()=>t(r)),r}dispose(){for(let r of this.#e.reverse())r();this.#e=[]}};var no;(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}})(no||(no={}));var Ei=class extends Error{name=this.constructor.name},So=class extends Error{name=this.constructor.name};async function Ah({tap:e,request:r,action:t}){let s=no.getId(r);try{let o=await t();return s===null?null:{id:s,result:o,jsonrpc:no.version}}catch(o){return e.rpcError({request:r,error:o}),s===null?null:{id:s,jsonrpc:no.version,error:o instanceof Ei?{code:no.errorCodes.serverError,message:o.message}:{code:no.errorCodes.unexposedError,message:"unexposed error"}}}}function ki(e){let r=e.tap??new $s;return async t=>{let s=t.method.split("."),o=Sh(e.fns,s),n=async()=>await o(...t.params);return r.rpcRequest({request:t}),await Ah({tap:r,request:t,action:n})}}var $h=Symbol("tune"),LT=Symbol("query"),BT=Symbol("notify"),zT=Symbol("settings");function Dh(e){function r(t){let s={notify:void 0};return new Proxy(()=>{},{apply:(o,n,a)=>e(t,a,s),get:(o,n)=>{if(n!=="then")return n===$h?a=>(...i)=>e(t,i,{...s,...a}):n===BT?(...a)=>e(t,a,{...s,notify:!0}):n===LT?(...a)=>e(t,a,{...s,notify:!1}):n===zT?s:(o[n]||(o[n]=r([...t,n])),o[n])},set:(o,n,a)=>(o[n]=a,!0)})}return r([])}function Fo(e){let{endpoint:r,tap:t=new $s}=e,s=1;return Dh(async(o,n,a)=>{let i=a.notify??e.notify??!1,l=a.transfer,c={jsonrpc:"2.0",method:o.join("."),params:n},p=i?c:{...c,id:s++};t.rpcRequest({request:p});let u=await r(p,{transfer:l});if(i&&!u)return null;if(!u)throw new So("response was null, but shouldn't be, because the request was not a notification");if("error"in u)throw new So(e.label?`${e.label}: ${u.error.message}`:u.error.message);return u.result})}function ra(e){return Fo({endpoint:ki(e),tap:e.tap})}var Io=class{recv=Pi();sendRequest=Pi();sendResponse=Pi();static makeEntangledPair({origin:r="example.e280.org"}={}){let t=new this,s=new this,o=[t.sendRequest.sub(a=>s.recv(a,{origin:r})),t.sendResponse.sub(a=>s.recv(a,{origin:r})),s.sendRequest.sub(a=>t.recv(a,{origin:r})),s.sendResponse.sub(a=>t.recv(a,{origin:r}))];return[t,s,()=>o.forEach(a=>a())]}};function Ci(e,r){return e.addEventListener("message",r),()=>e.removeEventListener("message",r)}function Oh(e,r){return async(t,{transfer:s}={})=>{if("id"in t){let o=Co();return r(t,s,o.promise),e.wait(t.id,t.method).then(n=>(o.resolve(n),n))}else{let o=Promise.resolve(null);return r(t,s,o),o}}}function Lh(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 Bh(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 mn=class extends Io{#e=new Vs;constructor(r){super(),this.#e.add(this.sendRequest.sub((t,s)=>r.postMessage(t,s)),this.sendResponse.sub((t,s)=>r.postMessage(t,s)),Ci(r,t=>this.recv(t.data,t)))}dispose(){this.#e.dispose()}};var Si=class{remote;transfer;constructor(r){this.remote=r}};var $c=Object.freeze({timeout:6e4,maxRequestBytes:1e7});var Fi=class{timeout;pending=new Map;constructor(r){this.timeout=r}async wait(r,t){let s=Co();return this.pending.set(r,{method:t,deferred:s}),await Ti(this.timeout,()=>s.promise).catch(o=>{throw o instanceof ta&&(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 So(r.error.message)):t.deferred.resolve(r))}};var Ao=class{options;remote;remoteEndpoint;#e;#t=new Vs;constructor(r){this.options=r;let{conduit:t,tap:s}=r;this.#e=new Fi(r.timeout??$c.timeout),this.remoteEndpoint=Oh(this.#e,t.sendRequest.pub.bind(t.sendRequest)),this.remote=Fo({endpoint:this.remoteEndpoint,tap:s&&Ec(s,{remote:!0})}),this.#t.add(t.recv.sub(o=>this.recv(o)))}async recv(r){let t=new Si(this.remote),{conduit:s,rpc:o,tap:n}=this.options,{requests:a,responses:i}=Lh(r);for(let u of i)this.#e.deliverResponse(u);if(!o)return;let l=await o(t),c=ki({fns:l,tap:n&&Ec(n,{remote:!1})}),p=await Bh(c,a);p&&await s.sendResponse(p,t.transfer)}dispose(){this.#t.dispose()}};var Ws={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 Us=new $s;async function zh(e,r,t={}){let s=t.tap??Us,o=new Ao({tap:s,timeout:t.timeout??1/0,conduit:new mn(e.getSelf()),rpc:async n=>r(Ws.derive.host(n))});return await o.remote.infra.ready(),o.remote.host}var Os=Object.freeze({eq(e,r){if(e.length!==r.length)return!1;for(let t=0;t<=e.length;t++)if(e.at(t)!==r.at(t))return!1;return!0},random(e){return crypto.getRandomValues(new Uint8Array(e))}});var $o=Object.freeze({fromBytes(e){return[...e].map(r=>r.toString(16).padStart(2,"0")).join("")},toBytes(e){if(e.length%2!==0)throw new Error("must have even number of hex characters");let r=new Uint8Array(e.length/2);for(let t=0;t<e.length;t+=2)r[t/2]=parseInt(e.slice(t,t+2),16);return r},random(e=32){return this.fromBytes(Os.random(e))},string(e){return $o.fromBytes(e)},bytes(e){return $o.toBytes(e)}});var Dc=58,Ii="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Oc=Object.freeze({fromBytes(e){let r=BigInt("0x"+$o.fromBytes(e)),t="";for(;r>0;){let s=r%BigInt(Dc);r=r/BigInt(Dc),t=Ii[Number(s)]+t}for(let s of e)if(s===0)t=Ii[0]+t;else break;return t},toBytes(e){let r=BigInt(0);for(let a of e){let i=Ii.indexOf(a);if(i===-1)throw new Error(`Invalid character '${a}' in base58 string`);r=r*BigInt(Dc)+BigInt(i)}let t=r.toString(16);t.length%2!==0&&(t="0"+t);let s=$o.toBytes(t),o=0;for(let a of e)if(a===Ii[0])o++;else break;let n=new Uint8Array(o+s.length);return n.set(s,o),n},random(e=32){return this.fromBytes(Os.random(e))},string(e){return Oc.fromBytes(e)},bytes(e){return Oc.toBytes(e)}});var Rh=class{lexicon;static lexicons=Object.freeze({base2:{characters:"01"},hex:{characters:"0123456789abcdef"},base36:{characters:"0123456789abcdefghijklmnopqrstuvwxyz"},base58:{characters:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"},base62:{characters:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"},base64url:{negativePrefix:"~",characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},base64:{characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",padding:{character:"=",size:4}}});lookup;negativePrefix;constructor(r){this.lexicon=r,this.lookup=Object.fromEntries([...r.characters].map((t,s)=>[t,s])),this.negativePrefix=r.negativePrefix??"-"}toBytes(r){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let i=0,l=0,c=[];for(let p of r){if(p===this.lexicon.padding?.character)continue;let u=this.lookup[p];if(u===void 0)throw new Error(`Invalid character: ${p}`);for(i=i<<t|u,l+=t;l>=8;)l-=8,c.push(i>>l&255)}return new Uint8Array(c)}let s=0n,o=BigInt(this.lexicon.characters.length),n=!1;r.startsWith(this.negativePrefix)&&(r=r.slice(this.negativePrefix.length),n=!0);for(let i of r){let l=this.lookup[i];if(l===void 0)throw new Error(`Invalid character: ${i}`);s=s*o+BigInt(l)}let a=[];for(;s>0n;)a.unshift(Number(s%256n)),s=s/256n;return new Uint8Array(a)}fromBytes(r){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let a=0,i=0,l="";for(let c of r)for(a=a<<8|c,i+=8;i>=t;){i-=t;let p=a>>i&(1<<t)-1;l+=this.lexicon.characters[p]}if(i>0){let c=a<<t-i&(1<<t)-1;l+=this.lexicon.characters[c]}if(this.lexicon.padding)for(;l.length%this.lexicon.padding.size!==0;)l+=this.lexicon.padding.character;return l}let s=0n;for(let a of r)s=(s<<8n)+BigInt(a);if(s===0n)return this.lexicon.characters[0];let o=BigInt(this.lexicon.characters.length),n="";for(;s>0n;)n=this.lexicon.characters[Number(s%o)]+n,s=s/o;return n}toInteger(r){if(!r)return 0;let t=0n,s=!1,o=BigInt(this.lexicon.characters.length);r.startsWith(this.negativePrefix)&&(r=r.slice(this.negativePrefix.length),s=!0);for(let n of r){let a=this.lookup[n];if(a===void 0)throw new Error(`Invalid character: ${n}`);t=t*o+BigInt(a)}return Number(s?-t:t)}fromInteger(r){r=Math.floor(r);let t=r<0,s=BigInt(t?-r:r);if(s===0n)return this.lexicon.characters[0];let o=BigInt(this.lexicon.characters.length),n="";for(;s>0n;)n=this.lexicon.characters[Number(s%o)]+n,s=s/o;return t?`${this.negativePrefix}${n}`:n}random(r=32){return this.fromBytes(Os.random(r))}};var Lc=Object.freeze({fromBytes(e){return typeof btoa=="function"?btoa(String.fromCharCode(...e)):Buffer.from(e).toString("base64")},toBytes(e){return typeof atob=="function"?Uint8Array.from(atob(e),r=>r.charCodeAt(0)):Uint8Array.from(Buffer.from(e,"base64"))},random(e=32){return this.fromBytes(Os.random(e))},string(e){return Lc.fromBytes(e)},bytes(e){return Lc.toBytes(e)}});var jh=Object.freeze({fromBytes(e){return new TextDecoder().decode(e)},toBytes(e){return new TextEncoder().encode(e)},string(e){return jh.fromBytes(e)},bytes(e){return jh.toBytes(e)}});var Bc=Object.freeze({set:e=>e!=null,unset: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"});function sa(){let e,r,t=new Promise((o,n)=>{e=o,r=n});function s(o){return o.then(e).catch(r),t}return{promise:t,resolve:e,reject:r,entangle:s}}function VT(e){return{map:r=>Nh(e,r),filter:r=>Vh(e,r)}}VT.pipe=Object.freeze({map:e=>r=>Nh(r,e),filter:e=>r=>Vh(r,e)});var Nh=(e,r)=>Object.fromEntries(Object.entries(e).map(([t,s])=>[t,r(s,t)])),Vh=(e,r)=>Object.fromEntries(Object.entries(e).filter(([t,s])=>r(s,t)));var fn=class{worker;messenger;constructor(r,t){this.worker=r,this.messenger=t}static async make(r,t){let s=t.tap??Us,o=t.label??"comrade",n=r.loadWorker(t.workerUrl,o),a=sa(),i={async ready(){a.resolve()}},l=new Ao({tap:s,timeout:t.timeout??1/0,conduit:new mn(n),rpc:async c=>({infra:i,host:t.setupHost(Ws.derive.work(c))})});return await a.promise,new this(n,l)}get work(){return this.messenger.remote}terminate(){this.worker.terminate()}};var Ai=class{threads;static async make(r,t){let s=t.workerCount??r.guessOptimalThreadCount(),o=await Promise.all([...Array(s)].map(async(n,a)=>fn.make(r,{...t,label:t.label??`${t.label??"comrade"}_${a+1}`})));return new this(o,{tap:t.tap})}work;#e=new Set;#t=[];constructor(r,t={}){this.threads=r;let s=t.tap??Us,o=async(n,a)=>this.#s({request:n,prom:sa(),transfer:a?.transfer});this.work=Fo({tap:s,endpoint:o}),r.forEach(n=>this.#e.add(n))}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 Wh=e=>({thread:r=>fn.make(e,r),cluster:r=>Ai.make(e,r),worker:(r,t={})=>zh(e,r,t),work:r=>r,host:r=>r,mocks(r){let{setupWork:t,setupHost:s,tap:o=Us}=r,n=Ws.mock.host(),a=Ws.mock.work();return a.work=ra({tap:o,fns:t(n)}),n.host=ra({tap:o,fns:s(a)}),{workShell:a,hostShell:n,work:a.work,host:n.host}},mockWork(r,t=Us){let s=Ws.mock.host(),o=Ws.mock.work();return o.work=ra({tap:t,fns:r(s)}),{workShell:o,hostShell:s,work:o.work,mockHost:n=>(s.host=ra({tap:t,fns:n(o)}),{workShell:o,hostShell:s,work:o.work,host:s.host})}}});var Uh=()=>({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 WT=Uh(),Gh=Wh(WT);var Rc={};gh(Rc,{InferenceSession:()=>KT,TRACE:()=>ig,TRACE_FUNC_BEGIN:()=>Di,TRACE_FUNC_END:()=>Oi,Tensor:()=>Lo,env:()=>GT,registerBackend:()=>Kh});var $i=new Map,Do=[],Kh=(e,r,t)=>{if(r&&typeof r.init=="function"&&typeof r.createInferenceSessionHandler=="function"){let s=$i.get(e);if(s===void 0)$i.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=Do.indexOf(e);o!==-1&&Do.splice(o,1);for(let n=0;n<Do.length;n++)if($i.get(Do[n]).priority<=t){Do.splice(n,0,e);return}Do.push(e)}return}throw new TypeError("not a valid backend")},UT=async e=>{let r=$i.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}}},qh=async e=>{let r=e.executionProviders||[],t=r.map(l=>typeof l=="string"?l:l.name),s=t.length===0?Do:t,o,n=[],a=new Set;for(let l of s){let c=await UT(l);typeof c=="string"?n.push({name:l,err:c}):(o||(o=c),o===c&&a.add(l))}if(!o)throw new Error(`no available backend found. ERR: ${n.map(l=>`[${l.name}] ${l.err}`).join(", ")}`);for(let{name:l,err:c}of n)t.includes(l)&&console.warn(`removing requested execution provider "${l}" from session options because it is not available: ${c}`);let i=r.filter(l=>a.has(typeof l=="string"?l:l.name));return[o,new Proxy(e,{get:(l,c)=>c==="executionProviders"?i:Reflect.get(l,c)})]};var Hh="1.21.0";var Qh="warning",es={wasm:{},webgl:{},webgpu:{},versions:{common:Hh},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}`);Qh=e}},get logLevel(){return Qh}};Object.defineProperty(es,"logLevel",{enumerable:!0});var GT=es;var Xh=(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,n;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(o=e.dims[2],n=e.dims[3]):(o=e.dims[3],n=e.dims[2]);let a=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 p=n*o,u=0,d=p,h=p*2,f=-1;a==="RGBA"?(u=0,d=p,h=p*2,f=p*3):a==="RGB"?(u=0,d=p,h=p*2):a==="RBG"&&(u=0,h=p,d=p*2);for(let v=0;v<n;v++)for(let F=0;F<o;F++){let x=(e.data[u++]-c[0])*l[0],w=(e.data[d++]-c[1])*l[1],C=(e.data[h++]-c[2])*l[2],y=f===-1?255:(e.data[f++]-c[3])*l[3];s.fillStyle="rgba("+x+","+w+","+C+","+y+")",s.fillRect(F,v,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")},Jh=(e,r)=>{let t=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),s;if(t!=null){let o,n,a;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(o=e.dims[2],n=e.dims[1],a=e.dims[3]):(o=e.dims[3],n=e.dims[2],a=e.dims[1]);let i=r!==void 0&&r.format!==void 0?r.format:"RGB",l=r?.norm,c,p;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?p=[0,0,0,0]:typeof l.bias=="number"?p=[l.bias,l.bias,l.bias,l.bias]:(p=[l.bias[0],l.bias[1],l.bias[2],0],l.bias[3]!==void 0&&(p[3]=l.bias[3]));let u=n*o;if(r!==void 0&&(r.format!==void 0&&a===4&&r.format!=="RGBA"||a===3&&r.format!=="RGB"&&r.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let d=4,h=0,f=1,v=2,F=3,x=0,w=u,C=u*2,y=-1;i==="RGBA"?(x=0,w=u,C=u*2,y=u*3):i==="RGB"?(x=0,w=u,C=u*2):i==="RBG"&&(x=0,C=u,w=u*2),s=t.createImageData(o,n);for(let P=0;P<n*o;h+=d,f+=d,v+=d,F+=d,P++)s.data[h]=(e.data[x++]-p[0])*c[0],s.data[f]=(e.data[w++]-p[1])*c[1],s.data[v]=(e.data[C++]-p[2])*c[2],s.data[F]=y===-1?255:(e.data[y++]-p[3])*c[3]}else throw new Error("Can not access image data");return s};var zc=(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},n,a;typeof o.mean=="number"?n=[o.mean,o.mean,o.mean,o.mean]:n=[o.mean[0],o.mean[1],o.mean[2],o.mean[3]??255],typeof o.bias=="number"?a=[o.bias,o.bias,o.bias,o.bias]:a=[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,p=l==="RGBA"?new Float32Array(c*4):new Float32Array(c*3),u=4,d=0,h=1,f=2,v=3,F=0,x=c,w=c*2,C=-1;i==="RGB"&&(u=3,d=0,h=1,f=2,v=-1),l==="RGBA"?C=c*3:l==="RBG"?(F=0,w=c,x=c*2):l==="BGR"&&(w=0,x=c,F=c*2);for(let P=0;P<c;P++,d+=u,f+=u,h+=u,v+=u)p[F++]=(e[d]+a[0])/n[0],p[x++]=(e[h]+a[1])/n[1],p[w++]=(e[f]+a[2])/n[2],C!==-1&&v!==-1&&(p[C++]=(e[v]+a[3])/n[3]);return l==="RGBA"?new Br("float32",p,[1,4,t,s]):new Br("float32",p,[1,3,t,s])},Yh=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,n=typeof e=="string",a,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=p=>typeof HTMLCanvasElement<"u"&&p instanceof HTMLCanvasElement||p instanceof OffscreenCanvas?p.getContext("2d"):null;if(t){let p=l();p.width=e.width,p.height=e.height;let u=c(p);if(u!=null){let d=e.height,h=e.width;if(r!==void 0&&r.resizedHeight!==void 0&&r.resizedWidth!==void 0&&(d=r.resizedHeight,h=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=h}else i.tensorFormat="RGBA",i.height=d,i.width=h;u.drawImage(e,0,0),a=u.getImageData(0,0,h,d).data}else throw new Error("Can not access image data")}else if(s){let p,u;if(r!==void 0&&r.resizedWidth!==void 0&&r.resizedHeight!==void 0?(p=r.resizedHeight,u=r.resizedWidth):(p=e.height,u=e.width),r!==void 0&&(i=r),i.format="RGBA",i.height=p,i.width=u,r!==void 0){let d=l();d.width=u,d.height=p;let h=c(d);if(h!=null)h.putImageData(e,0,0),a=h.getImageData(0,0,u,p).data;else throw new Error("Can not access image data")}else a=e.data}else if(o){if(r===void 0)throw new Error("Please provide image config with format for Imagebitmap");let p=l();p.width=e.width,p.height=e.height;let u=c(p);if(u!=null){let d=e.height,h=e.width;return u.drawImage(e,0,0,h,d),a=u.getImageData(0,0,h,d).data,i.height=d,i.width=h,zc(a,i)}else throw new Error("Can not access image data")}else{if(n)return new Promise((p,u)=>{let d=l(),h=c(d);if(!e||!h)return u();let f=new Image;f.crossOrigin="Anonymous",f.src=e,f.onload=()=>{d.width=f.width,d.height=f.height,h.drawImage(f,0,0,d.width,d.height);let v=h.getImageData(0,0,d.width,d.height);i.height=d.height,i.width=d.width,p(zc(v.data,i))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(a!==void 0)return zc(a,i);throw new Error("Input data provided is not supported - aborted tensor creation")},Zh=(e,r)=>{let{width:t,height:s,download:o,dispose:n}=r,a=[1,s,t,4];return new Br({location:"texture",type:"float32",texture:e,dims:a,download:o,dispose:n})},eg=(e,r)=>{let{dataType:t,dims:s,download:o,dispose:n}=r;return new Br({location:"gpu-buffer",type:t??"float32",gpuBuffer:e,dims:s,download:o,dispose:n})},tg=(e,r)=>{let{dataType:t,dims:s,download:o,dispose:n}=r;return new Br({location:"ml-tensor",type:t??"float32",mlTensor:e,dims:s,download:o,dispose:n})},rg=(e,r,t)=>new Br({location:"cpu-pinned",type:e,data:r,dims:t??[r.length]});var 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]]),oa=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),sg=!1,og=()=>{if(!sg){sg=!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),oa.set(BigInt64Array,"int64")),r&&(Oo.set("uint64",BigUint64Array),oa.set(BigUint64Array,"uint64")),s?(Oo.set("float16",t),oa.set(t,"float16")):Oo.set("float16",Uint16Array)}};var ng=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},ag=(e,r)=>{switch(e.location){case"cpu":return new Br(e.type,e.data,r);case"cpu-pinned":return new Br({location:"cpu-pinned",data:e.data,type:e.type,dims:r});case"texture":return new Br({location:"texture",texture:e.texture,type:e.type,dims:r});case"gpu-buffer":return new Br({location:"gpu-buffer",gpuBuffer:e.gpuBuffer,type:e.type,dims:r});case"ml-tensor":return new Br({location:"ml-tensor",mlTensor:e.mlTensor,type:e.type,dims:r});default:throw new Error(`tensorReshape: tensor location ${e.location} is not supported`)}};var Br=class{constructor(r,t,s){og();let o,n;if(typeof r=="object"&&"location"in r)switch(this.dataLocation=r.location,o=r.type,n=r.dims,r.location){case"cpu-pinned":{let i=Oo.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=Oo.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=oa.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");n=l,this.cpuData=i,this.dataLocation="cpu"}let a=ng(n);if(this.cpuData&&a!==this.cpuData.length&&!((o==="uint4"||o==="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=o,this.dims=n,this.size=a}static async fromImage(r,t){return Yh(r,t)}static fromTexture(r,t){return Zh(r,t)}static fromGpuBuffer(r,t){return eg(r,t)}static fromMLTensor(r,t){return tg(r,t)}static fromPinnedBuffer(r,t,s){return rg(r,t,s)}toDataURL(r){return Xh(this,r)}toImageData(r){return Jh(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 ag(this,r)}};var Lo=Br;var ig=(e,r)=>{(typeof es.trace>"u"?!es.wasm.trace:!es.trace)||console.timeStamp(`${e}::ORT::${r}`)},lg=(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 n=`FUNC_${e}::${t[o].trim().split(" ")[1]}`;r&&(n+=`::${r}`),ig("CPU",n);return}t[o].includes("TRACE_FUNC")&&(s=!0)}},Di=e=>{(typeof es.trace>"u"?!es.wasm.trace:!es.trace)||lg("BEGIN",e)},Oi=e=>{(typeof es.trace>"u"?!es.wasm.trace:!es.trace)||lg("END",e)};var Li=class e{constructor(r){this.handler=r}async run(r,t,s){Di();let o={},n={};if(typeof r!="object"||r===null||r instanceof Lo||Array.isArray(r))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let a=!0;if(typeof t=="object"){if(t===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(t instanceof Lo)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.");a=!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)n=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else{let c=!1,p=Object.getOwnPropertyNames(t);for(let u of this.outputNames)if(p.indexOf(u)!==-1){let d=t[u];(d===null||d instanceof Lo)&&(c=!0,a=!1,o[u]=d)}if(c){if(typeof s=="object"&&s!==null)n=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else n=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(a)for(let c of this.outputNames)o[c]=null;let i=await this.handler.run(r,o,n),l={};for(let c in i)if(Object.hasOwnProperty.call(i,c)){let p=i[c];p instanceof Lo?l[c]=p:l[c]=new Lo(p.type,p.data,p.dims)}return Oi(),l}async release(){return this.handler.dispose()}static async create(r,t,s,o){Di();let n,a={};if(typeof r=="string"){if(n=r,typeof t=="object"&&t!==null)a=t;else if(typeof t<"u")throw new TypeError("'options' must be an object.")}else if(r instanceof Uint8Array){if(n=r,typeof t=="object"&&t!==null)a=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 p=r,u=0,d=r.byteLength;if(typeof t=="object"&&t!==null)a=t;else if(typeof t=="number"){if(u=t,!Number.isSafeInteger(u))throw new RangeError("'byteOffset' must be an integer.");if(u<0||u>=p.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${p.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>p.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${p.byteLength-u}].`);if(typeof o=="object"&&o!==null)a=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.");n=new Uint8Array(p,u,d)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[i,l]=await qh(a),c=await i.createInferenceSessionHandler(n,l);return Oi(),new e(c)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}};var KT=Li;var Iu={};gh(Iu,{InferenceSession:()=>su,TRACE:()=>xa,TRACE_FUNC_BEGIN:()=>Ts,TRACE_FUNC_END:()=>ls,Tensor:()=>ys,default:()=>pE,env:()=>Xt,registerBackend:()=>Wo});var tu=Object.defineProperty,qT=Object.getOwnPropertyDescriptor,HT=Object.getOwnPropertyNames,QT=Object.prototype.hasOwnProperty,XT=(e=>typeof Eo<"u"?Eo:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof Eo<"u"?Eo:r)[t]}):e)(function(e){if(typeof Eo<"u")return Eo.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')}),ze=(e,r)=>()=>(e&&(r=e(e=0)),r),xn=(e,r)=>{for(var t in r)tu(e,t,{get:r[t],enumerable:!0})},JT=(e,r,t,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of HT(r))!QT.call(e,o)&&o!==t&&tu(e,o,{get:()=>r[o],enumerable:!(s=qT(r,o))||s.enumerable});return e},Ma=e=>JT(tu({},"__esModule",{value:!0}),e),na,ao,Wo,cg,NM,VM=ze(()=>{"use strict";na=new Map,ao=[],Wo=(e,r,t)=>{if(r&&typeof r.init=="function"&&typeof r.createInferenceSessionHandler=="function"){let s=na.get(e);if(s===void 0)na.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=ao.indexOf(e);o!==-1&&ao.splice(o,1);for(let n=0;n<ao.length;n++)if(na.get(ao[n]).priority<=t){ao.splice(n,0,e);return}ao.push(e)}return}throw new TypeError("not a valid backend")},cg=async e=>{let r=na.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}}},NM=async e=>{let r=e.executionProviders||[],t=r.map(l=>typeof l=="string"?l:l.name),s=t.length===0?ao:t,o,n=[],a=new Set;for(let l of s){let c=await cg(l);typeof c=="string"?n.push({name:l,err:c}):(o||(o=c),o===c&&a.add(l))}if(!o)throw new Error(`no available backend found. ERR: ${n.map(l=>`[${l.name}] ${l.err}`).join(", ")}`);for(let{name:l,err:c}of n)t.includes(l)&&console.warn(`removing requested execution provider "${l}" from session options because it is not available: ${c}`);let i=r.filter(l=>a.has(typeof l=="string"?l:l.name));return[o,new Proxy(e,{get:(l,c)=>c==="executionProviders"?i:Reflect.get(l,c)})]}}),YT=ze(()=>{"use strict";VM()}),WM,ZT=ze(()=>{"use strict";WM="1.22.0-dev.20250409-89f8206ba4"}),jc,is,UM=ze(()=>{"use strict";ZT(),jc="warning",is={wasm:{},webgl:{},webgpu:{},versions:{common:WM},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}`);jc=e}},get logLevel(){return jc}},Object.defineProperty(is,"logLevel",{enumerable:!0})}),Xt,eP=ze(()=>{"use strict";UM(),Xt=is}),GM,KM,tP=ze(()=>{"use strict";GM=(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,n;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(o=e.dims[2],n=e.dims[3]):(o=e.dims[3],n=e.dims[2]);let a=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 p=n*o,u=0,d=p,h=p*2,f=-1;a==="RGBA"?(u=0,d=p,h=p*2,f=p*3):a==="RGB"?(u=0,d=p,h=p*2):a==="RBG"&&(u=0,h=p,d=p*2);for(let v=0;v<n;v++)for(let F=0;F<o;F++){let x=(e.data[u++]-c[0])*l[0],w=(e.data[d++]-c[1])*l[1],C=(e.data[h++]-c[2])*l[2],y=f===-1?255:(e.data[f++]-c[3])*l[3];s.fillStyle="rgba("+x+","+w+","+C+","+y+")",s.fillRect(F,v,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")},KM=(e,r)=>{let t=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),s;if(t!=null){let o,n,a;r?.tensorLayout!==void 0&&r.tensorLayout==="NHWC"?(o=e.dims[2],n=e.dims[1],a=e.dims[3]):(o=e.dims[3],n=e.dims[2],a=e.dims[1]);let i=r!==void 0&&r.format!==void 0?r.format:"RGB",l=r?.norm,c,p;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?p=[0,0,0,0]:typeof l.bias=="number"?p=[l.bias,l.bias,l.bias,l.bias]:(p=[l.bias[0],l.bias[1],l.bias[2],0],l.bias[3]!==void 0&&(p[3]=l.bias[3]));let u=n*o;if(r!==void 0&&(r.format!==void 0&&a===4&&r.format!=="RGBA"||a===3&&r.format!=="RGB"&&r.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let d=4,h=0,f=1,v=2,F=3,x=0,w=u,C=u*2,y=-1;i==="RGBA"?(x=0,w=u,C=u*2,y=u*3):i==="RGB"?(x=0,w=u,C=u*2):i==="RBG"&&(x=0,C=u,w=u*2),s=t.createImageData(o,n);for(let P=0;P<n*o;h+=d,f+=d,v+=d,F+=d,P++)s.data[h]=(e.data[x++]-p[0])*c[0],s.data[f]=(e.data[w++]-p[1])*c[1],s.data[v]=(e.data[C++]-p[2])*c[2],s.data[F]=y===-1?255:(e.data[y++]-p[3])*c[3]}else throw new Error("Can not access image data");return s}}),Bi,qM,HM,QM,XM,JM,rP=ze(()=>{"use strict";ru(),Bi=(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},n,a;typeof o.mean=="number"?n=[o.mean,o.mean,o.mean,o.mean]:n=[o.mean[0],o.mean[1],o.mean[2],o.mean[3]??255],typeof o.bias=="number"?a=[o.bias,o.bias,o.bias,o.bias]:a=[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,p=l==="RGBA"?new Float32Array(c*4):new Float32Array(c*3),u=4,d=0,h=1,f=2,v=3,F=0,x=c,w=c*2,C=-1;i==="RGB"&&(u=3,d=0,h=1,f=2,v=-1),l==="RGBA"?C=c*3:l==="RBG"?(F=0,w=c,x=c*2):l==="BGR"&&(w=0,x=c,F=c*2);for(let y=0;y<c;y++,d+=u,f+=u,h+=u,v+=u)p[F++]=(e[d]+a[0])/n[0],p[x++]=(e[h]+a[1])/n[1],p[w++]=(e[f]+a[2])/n[2],C!==-1&&v!==-1&&(p[C++]=(e[v]+a[3])/n[3]);return l==="RGBA"?new rs("float32",p,[1,4,t,s]):new rs("float32",p,[1,3,t,s])},qM=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,n=typeof e=="string",a,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=p=>typeof HTMLCanvasElement<"u"&&p instanceof HTMLCanvasElement||p instanceof OffscreenCanvas?p.getContext("2d"):null;if(t){let p=l();p.width=e.width,p.height=e.height;let u=c(p);if(u!=null){let d=e.height,h=e.width;if(r!==void 0&&r.resizedHeight!==void 0&&r.resizedWidth!==void 0&&(d=r.resizedHeight,h=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=h}else i.tensorFormat="RGBA",i.height=d,i.width=h;u.drawImage(e,0,0),a=u.getImageData(0,0,h,d).data}else throw new Error("Can not access image data")}else if(s){let p,u;if(r!==void 0&&r.resizedWidth!==void 0&&r.resizedHeight!==void 0?(p=r.resizedHeight,u=r.resizedWidth):(p=e.height,u=e.width),r!==void 0&&(i=r),i.format="RGBA",i.height=p,i.width=u,r!==void 0){let d=l();d.width=u,d.height=p;let h=c(d);if(h!=null)h.putImageData(e,0,0),a=h.getImageData(0,0,u,p).data;else throw new Error("Can not access image data")}else a=e.data}else if(o){if(r===void 0)throw new Error("Please provide image config with format for Imagebitmap");let p=l();p.width=e.width,p.height=e.height;let u=c(p);if(u!=null){let d=e.height,h=e.width;return u.drawImage(e,0,0,h,d),a=u.getImageData(0,0,h,d).data,i.height=d,i.width=h,Bi(a,i)}else throw new Error("Can not access image data")}else{if(n)return new Promise((p,u)=>{let d=l(),h=c(d);if(!e||!h)return u();let f=new Image;f.crossOrigin="Anonymous",f.src=e,f.onload=()=>{d.width=f.width,d.height=f.height,h.drawImage(f,0,0,d.width,d.height);let v=h.getImageData(0,0,d.width,d.height);i.height=d.height,i.width=d.width,p(Bi(v.data,i))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(a!==void 0)return Bi(a,i);throw new Error("Input data provided is not supported - aborted tensor creation")},HM=(e,r)=>{let{width:t,height:s,download:o,dispose:n}=r,a=[1,s,t,4];return new rs({location:"texture",type:"float32",texture:e,dims:a,download:o,dispose:n})},QM=(e,r)=>{let{dataType:t,dims:s,download:o,dispose:n}=r;return new rs({location:"gpu-buffer",type:t??"float32",gpuBuffer:e,dims:s,download:o,dispose:n})},XM=(e,r)=>{let{dataType:t,dims:s,download:o,dispose:n}=r;return new rs({location:"ml-tensor",type:t??"float32",mlTensor:e,dims:s,download:o,dispose:n})},JM=(e,r,t)=>new rs({location:"cpu-pinned",type:e,data:r,dims:t??[r.length]})}),No,fa,Nc,YM,sP=ze(()=>{"use strict";No=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),fa=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),Nc=!1,YM=()=>{if(!Nc){Nc=!0;let e=typeof BigInt64Array<"u"&&BigInt64Array.from,r=typeof BigUint64Array<"u"&&BigUint64Array.from,t=globalThis.Float16Array,s=typeof t<"u"&&t.from;e&&(No.set("int64",BigInt64Array),fa.set(BigInt64Array,"int64")),r&&(No.set("uint64",BigUint64Array),fa.set(BigUint64Array,"uint64")),s?(No.set("float16",t),fa.set(t,"float16")):No.set("float16",Uint16Array)}}}),ZM,ex,oP=ze(()=>{"use strict";ru(),ZM=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},ex=(e,r)=>{switch(e.location){case"cpu":return new rs(e.type,e.data,r);case"cpu-pinned":return new rs({location:"cpu-pinned",data:e.data,type:e.type,dims:r});case"texture":return new rs({location:"texture",texture:e.texture,type:e.type,dims:r});case"gpu-buffer":return new rs({location:"gpu-buffer",gpuBuffer:e.gpuBuffer,type:e.type,dims:r});case"ml-tensor":return new rs({location:"ml-tensor",mlTensor:e.mlTensor,type:e.type,dims:r});default:throw new Error(`tensorReshape: tensor location ${e.location} is not supported`)}}}),rs,ru=ze(()=>{"use strict";tP(),rP(),sP(),oP(),rs=class{constructor(e,r,t){YM();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 a=No.get(s);if(!a)throw new TypeError(`unsupported type "${s}" to create tensor from pinned buffer`);if(!(e.data instanceof a))throw new TypeError(`buffer should be of type ${a.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 a,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.");a=r}else{let l=No.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"?a=l.from(r,BigInt):a=l.from(r)}else if(r instanceof l)a=r;else if(r instanceof Uint8ClampedArray)if(e==="uint8")a=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)a=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",a=e;else if(l==="boolean")s="bool",a=Uint8Array.from(e);else throw new TypeError(`Invalid element type of data array: ${l}.`)}else if(e instanceof Uint8ClampedArray)s="uint8",a=Uint8Array.from(e);else{let l=fa.get(e.constructor);if(l===void 0)throw new TypeError(`Unsupported type for tensor data: ${e.constructor}.`);s=l,a=e}if(i===void 0)i=[a.length];else if(!Array.isArray(i))throw new TypeError("A tensor's dims must be a number array");o=i,this.cpuData=a,this.dataLocation="cpu"}let n=ZM(o);if(this.cpuData&&n!==this.cpuData.length&&!((s==="uint4"||s==="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=s,this.dims=o,this.size=n}static async fromImage(e,r){return qM(e,r)}static fromTexture(e,r){return HM(e,r)}static fromGpuBuffer(e,r){return QM(e,r)}static fromMLTensor(e,r){return XM(e,r)}static fromPinnedBuffer(e,r,t){return JM(e,r,t)}toDataURL(e){return GM(this,e)}toImageData(e){return KM(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 ex(this,e)}}}),ys,tx=ze(()=>{"use strict";ru(),ys=rs}),xa,Vc,Ts,ls,rx=ze(()=>{"use strict";UM(),xa=(e,r)=>{(typeof is.trace>"u"?!is.wasm.trace:!is.trace)||console.timeStamp(`${e}::ORT::${r}`)},Vc=(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 n=`FUNC_${e}::${t[o].trim().split(" ")[1]}`;r&&(n+=`::${r}`),xa("CPU",n);return}t[o].includes("TRACE_FUNC")&&(s=!0)}},Ts=e=>{(typeof is.trace>"u"?!is.wasm.trace:!is.trace)||Vc("BEGIN",e)},ls=e=>{(typeof is.trace>"u"?!is.wasm.trace:!is.trace)||Vc("END",e)}}),sx,nP=ze(()=>{"use strict";VM(),tx(),rx(),sx=class ox{constructor(r){this.handler=r}async run(r,t,s){Ts();let o={},n={};if(typeof r!="object"||r===null||r instanceof ys||Array.isArray(r))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let a=!0;if(typeof t=="object"){if(t===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(t instanceof ys)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.");a=!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)n=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else{let c=!1,p=Object.getOwnPropertyNames(t);for(let u of this.outputNames)if(p.indexOf(u)!==-1){let d=t[u];(d===null||d instanceof ys)&&(c=!0,a=!1,o[u]=d)}if(c){if(typeof s=="object"&&s!==null)n=s;else if(typeof s<"u")throw new TypeError("'options' must be an object.")}else n=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(a)for(let c of this.outputNames)o[c]=null;let i=await this.handler.run(r,o,n),l={};for(let c in i)if(Object.hasOwnProperty.call(i,c)){let p=i[c];p instanceof ys?l[c]=p:l[c]=new ys(p.type,p.data,p.dims)}return ls(),l}async release(){return this.handler.dispose()}static async create(r,t,s,o){Ts();let n,a={};if(typeof r=="string"){if(n=r,typeof t=="object"&&t!==null)a=t;else if(typeof t<"u")throw new TypeError("'options' must be an object.")}else if(r instanceof Uint8Array){if(n=r,typeof t=="object"&&t!==null)a=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 p=r,u=0,d=r.byteLength;if(typeof t=="object"&&t!==null)a=t;else if(typeof t=="number"){if(u=t,!Number.isSafeInteger(u))throw new RangeError("'byteOffset' must be an integer.");if(u<0||u>=p.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${p.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>p.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${p.byteLength-u}].`);if(typeof o=="object"&&o!==null)a=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.");n=new Uint8Array(p,u,d)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[i,l]=await NM(a),c=await i.createInferenceSessionHandler(n,l);return ls(),new ox(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}}}),su,aP=ze(()=>{"use strict";nP(),su=sx}),iP=ze(()=>{"use strict"}),lP=ze(()=>{"use strict"}),cP=ze(()=>{"use strict"}),dP=ze(()=>{"use strict"}),nx={};xn(nx,{InferenceSession:()=>su,TRACE:()=>xa,TRACE_FUNC_BEGIN:()=>Ts,TRACE_FUNC_END:()=>ls,Tensor:()=>ys,env:()=>Xt,registerBackend:()=>Wo});var Ps=ze(()=>{"use strict";YT(),eP(),aP(),tx(),iP(),lP(),rx(),cP(),dP()}),ou=ze(()=>{"use strict"}),ax={};xn(ax,{default:()=>ix});var Wc,Uc,ix,uP=ze(()=>{"use strict";p0(),qo(),nu(),Wc="ort-wasm-proxy-worker",Uc=globalThis.self?.name===Wc,Uc&&(self.onmessage=e=>{let{type:r,in:t}=e.data;try{switch(r){case"init-wasm":au(t.wasm).then(()=>{Tu(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;Pu(o,s).then(()=>{postMessage({type:r})},n=>{postMessage({type:r,err:n})});break}case"copy-from":{let{buffer:s}=t,o=nl(s);postMessage({type:r,out:o});break}case"create":{let{model:s,options:o}=t;Eu(s,o).then(n=>{postMessage({type:r,out:n})},n=>{postMessage({type:r,err:n})});break}case"release":ku(t),postMessage({type:r});break;case"run":{let{sessionId:s,inputIndices:o,inputs:n,outputIndices:a,options:i}=t;Cu(s,o,n,a,new Array(a.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},Fu([...n,...l]))},l=>{postMessage({type:r,err:l})});break}case"end-profiling":Su(t),postMessage({type:r});break;default:}}catch(s){postMessage({type:r,err:s})}}),ix=Uc?null:e=>new Worker(e??ts,{type:"module",name:Wc})}),lx={};xn(lx,{default:()=>cx});var Gc,Kc,cx,dg,pP=ze(()=>{"use strict";Kc=(Gc=import.meta.url,async function(e={}){var r,t,s=e,o=new Promise((_,T)=>{r=_,t=T}),n=typeof window=="object",a=typeof WorkerGlobalScope<"u",i=a&&self.name?.startsWith("em-pthread");s.mountExternalData=(_,T)=>{_.startsWith("./")&&(_=_.substring(2)),(s.Eb||(s.Eb=new Map)).set(_,T)},s.unmountExternalData=()=>{delete s.Eb};var l=globalThis.SharedArrayBuffer??new WebAssembly.Memory({initial:0,maximum:0,pc:!0}).buffer.constructor;let c=_=>async(...T)=>{try{if(s.Fb)throw Error("Session already started");let A=s.Fb={dc:T[0],errors:[]},B=await _(...T);if(s.Fb!==A)throw Error("Session mismatch");s.Jb?.flush();let W=A.errors;if(0<W.length){let ie=await Promise.all(W);if(ie=ie.filter(ve=>ve),0<ie.length)throw Error(ie.join(`
8
+ `))}return B}finally{s.Fb=null}};s.jsepInit=(_,T)=>{if(_==="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 A=s.Jb;s.jsepRegisterBuffer=(B,W,ie,ve)=>A.registerBuffer(B,W,ie,ve),s.jsepGetBuffer=B=>A.getBuffer(B),s.jsepCreateDownloader=(B,W,ie)=>A.createDownloader(B,W,ie),s.jsepOnCreateSession=B=>{A.onCreateSession(B)},s.jsepOnReleaseSession=B=>{A.onReleaseSession(B)},s.jsepOnRunStart=B=>A.onRunStart(B),s.bc=(B,W)=>{A.upload(B,W)}}else if(_==="webnn"){let A=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=>A.onRunStart(B),s.webnnOnRunEnd=A.onRunEnd.bind(A),s.webnnRegisterMLContext=(B,W)=>{A.registerMLContext(B,W)},s.webnnOnReleaseSession=B=>{A.onReleaseSession(B)},s.webnnCreateMLTensorDownloader=(B,W)=>A.createMLTensorDownloader(B,W),s.webnnRegisterMLTensor=(B,W,ie,ve)=>A.registerMLTensor(B,W,ie,ve),s.webnnCreateMLContext=B=>A.createMLContext(B),s.webnnRegisterMLConstant=(B,W,ie,ve,Oe,Qe)=>A.registerMLConstant(B,W,ie,ve,Oe,s.Eb,Qe),s.webnnRegisterGraphInput=A.registerGraphInput.bind(A),s.webnnIsGraphInput=A.isGraphInput.bind(A),s.webnnCreateTemporaryTensor=A.createTemporaryTensor.bind(A),s.webnnIsInt64Supported=A.isInt64Supported.bind(A)}};let p=()=>{let _=(T,A,B)=>(...W)=>{let ie=Ar,ve=A?.();W=T(...W);let Oe=A?.();return ve!==Oe&&(T=Oe,B(ve),A=B=null),Ar!=ie?new Promise((Qe,nt)=>{Or={resolve:Qe,reject:nt}}):W};(()=>{for(let T of["_OrtAppendExecutionProvider","_OrtCreateSession","_OrtRun","_OrtRunWithBinding","_OrtBindInput"])s[T]=_(s[T],()=>s[T],A=>s[T]=A)})(),c!==void 0&&(s._OrtRun=c(s._OrtRun),s._OrtRunWithBinding=c(s._OrtRunWithBinding)),p=void 0};s.asyncInit=()=>{p?.()};var u,d,h=Object.assign({},s),f=(_,T)=>{throw T},v="";(n||a)&&(a?v=self.location.href:typeof document<"u"&&document.currentScript&&(v=document.currentScript.src),Gc&&(v=Gc),v=v.startsWith("blob:")?"":v.slice(0,v.replace(/[?#].*/,"").lastIndexOf("/")+1),a&&(d=_=>{var T=new XMLHttpRequest;return T.open("GET",_,!1),T.responseType="arraybuffer",T.send(null),new Uint8Array(T.response)}),u=async _=>{if(le(_))return new Promise((A,B)=>{var W=new XMLHttpRequest;W.open("GET",_,!0),W.responseType="arraybuffer",W.onload=()=>{W.status==200||W.status==0&&W.response?A(W.response):B(W.status)},W.onerror=B,W.send(null)});var T=await fetch(_,{credentials:"same-origin"});if(T.ok)return T.arrayBuffer();throw Error(T.status+" : "+T.url)});var F=console.log.bind(console),x=console.error.bind(console),w=F,C=x;Object.assign(s,h),h=null;var y,P,I,g,E,$,L,G,q,O,J,Q,H,te=s.wasmBinary,re=!1,le=_=>_.startsWith("file://");function be(){return y.buffer!=g.buffer&&_e(),g}function z(){return y.buffer!=g.buffer&&_e(),E}function D(){return y.buffer!=g.buffer&&_e(),$}function K(){return y.buffer!=g.buffer&&_e(),L}function R(){return y.buffer!=g.buffer&&_e(),G}function ne(){return y.buffer!=g.buffer&&_e(),q}function Ce(){return y.buffer!=g.buffer&&_e(),O}function Me(){return y.buffer!=g.buffer&&_e(),H}if(i){let _=function(T){try{var A=T.data,B=A.Bb;if(B==="load"){let W=[];self.onmessage=ie=>W.push(ie),self.startWorker=()=>{postMessage({Bb:"loaded"});for(let ie of W)_(ie);self.onmessage=_};for(let ie of A.Rb)s[ie]&&!s[ie].proxy||(s[ie]=(...ve)=>{postMessage({Bb:"callHandler",Qb:ie,args:ve})},ie=="print"&&(w=s[ie]),ie=="printErr"&&(C=s[ie]));y=A.kc,_e(),Ke(A.lc)}else if(B==="run"){Cr(A.Ab),bo(A.Ab,0,0,1,0,0),zr(),me(A.Ab),et||(jn(),et=!0);try{Hs(A.fc,A.Hb)}catch(W){if(W!="unwind")throw W}}else A.target!=="setimmediate"&&(B==="checkMailbox"?et&&Te():B&&(C(`worker: received unknown command ${B}`),C(A)))}catch(W){throw Nn(),W}};var Ie=_,Ke,et=!1;C=function(...T){T=T.join(" "),console.error(T)},self.alert=function(...T){postMessage({Bb:"alert",text:T.join(" "),ic:to()})},self.onunhandledrejection=T=>{throw T.reason||T},self.onmessage=_}function _e(){var _=y.buffer;s.HEAP8=g=new Int8Array(_),s.HEAP16=$=new Int16Array(_),s.HEAPU8=E=new Uint8Array(_),s.HEAPU16=L=new Uint16Array(_),s.HEAP32=G=new Int32Array(_),s.HEAPU32=q=new Uint32Array(_),s.HEAPF32=O=new Float32Array(_),s.HEAPF64=H=new Float64Array(_),s.HEAP64=J=new BigInt64Array(_),s.HEAPU64=Q=new BigUint64Array(_)}function Z(){i?startWorker(s):ut.Ca()}i||(y=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0}),_e());var V,fe=0,Se=null;function Pe(){if(--fe==0&&Se){var _=Se;Se=null,_()}}function pe(_){throw C(_="Aborted("+_+")"),re=!0,_=new WebAssembly.RuntimeError(_+". Build with -sASSERTIONS for more info."),t(_),_}function xe(){return{a:{L:$e,Aa:Ae,b:Xs,$:_t,A:Cs,pa:k,X:Y,Z:se,qa:he,na:ke,ga:Ze,ma:dt,J:qe,Y:Ct,V:St,oa:ur,W:Rt,va:Sr,E:Is,Q:Wr,O:Ur,D:Re,u:tt,r:Jt,P:Rs,z:S,R:U,ja:ee,T:He,aa:Je,M:We,F:It,ia:me,sa:bt,t:Zt,Ba:Ir,w:ns,o:tr,l:Kr,c:cs,n:Xo,j:Ta,v:Pa,p:Ea,f:Ys,s:ka,m:Ca,e:Sa,k:Fa,i:Ia,g:Zs,d:Aa,da:$a,ea:En,fa:Da,ba:kn,ca:Jo,N:Sn,xa:Fn,ua:In,h:La,C:Ba,G:za,ta:al,x:Ra,ra:ja,U:Na,q:Cn,y:Va,K:Wa,S:An,za:Ua,ya:$n,ka:Dn,la:Ka,_:rt,B:On,I:en,ha:Ln,H:Bn,a:y,wa:ot}}}var de={829644:(_,T,A,B,W)=>{if(s===void 0||!s.Eb)return 1;if((_=ct(Number(_>>>0))).startsWith("./")&&(_=_.substring(2)),!(_=s.Eb.get(_)))return 2;if(T=Number(T>>>0),A=Number(A>>>0),B=Number(B>>>0),T+A>_.byteLength)return 3;try{let ie=_.subarray(T,T+A);switch(W){case 0:z().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:(_,T,A)=>{s.Ob(_,z().subarray(T>>>0,T+A>>>0))},830532:()=>s.nc(),830574:_=>{s.Nb(_)},830611:()=>{s.Vb()},830642:()=>{s.Wb()},830671:()=>{s.$b()},830696:_=>s.Ub(_),830729:_=>s.Yb(_),830761:(_,T,A)=>{s.Kb(Number(_),Number(T),Number(A),!0)},830824:(_,T,A)=>{s.Kb(Number(_),Number(T),Number(A))},830881:()=>typeof wasmOffsetConverter<"u",830938:_=>{s.jb("Abs",_,void 0)},830989:_=>{s.jb("Neg",_,void 0)},831040:_=>{s.jb("Floor",_,void 0)},831093:_=>{s.jb("Ceil",_,void 0)},831145:_=>{s.jb("Reciprocal",_,void 0)},831203:_=>{s.jb("Sqrt",_,void 0)},831255:_=>{s.jb("Exp",_,void 0)},831306:_=>{s.jb("Erf",_,void 0)},831357:_=>{s.jb("Sigmoid",_,void 0)},831412:(_,T,A)=>{s.jb("HardSigmoid",_,{alpha:T,beta:A})},831491:_=>{s.jb("Log",_,void 0)},831542:_=>{s.jb("Sin",_,void 0)},831593:_=>{s.jb("Cos",_,void 0)},831644:_=>{s.jb("Tan",_,void 0)},831695:_=>{s.jb("Asin",_,void 0)},831747:_=>{s.jb("Acos",_,void 0)},831799:_=>{s.jb("Atan",_,void 0)},831851:_=>{s.jb("Sinh",_,void 0)},831903:_=>{s.jb("Cosh",_,void 0)},831955:_=>{s.jb("Asinh",_,void 0)},832008:_=>{s.jb("Acosh",_,void 0)},832061:_=>{s.jb("Atanh",_,void 0)},832114:_=>{s.jb("Tanh",_,void 0)},832166:_=>{s.jb("Not",_,void 0)},832217:(_,T,A)=>{s.jb("Clip",_,{min:T,max:A})},832286:_=>{s.jb("Clip",_,void 0)},832338:(_,T)=>{s.jb("Elu",_,{alpha:T})},832396:_=>{s.jb("Gelu",_,void 0)},832448:_=>{s.jb("Relu",_,void 0)},832500:(_,T)=>{s.jb("LeakyRelu",_,{alpha:T})},832564:(_,T)=>{s.jb("ThresholdedRelu",_,{alpha:T})},832634:(_,T)=>{s.jb("Cast",_,{to:T})},832692:_=>{s.jb("Add",_,void 0)},832743:_=>{s.jb("Sub",_,void 0)},832794:_=>{s.jb("Mul",_,void 0)},832845:_=>{s.jb("Div",_,void 0)},832896:_=>{s.jb("Pow",_,void 0)},832947:_=>{s.jb("Equal",_,void 0)},833e3:_=>{s.jb("Greater",_,void 0)},833055:_=>{s.jb("GreaterOrEqual",_,void 0)},833117:_=>{s.jb("Less",_,void 0)},833169:_=>{s.jb("LessOrEqual",_,void 0)},833228:(_,T,A,B,W)=>{s.jb("ReduceMean",_,{keepDims:!!T,noopWithEmptyAxes:!!A,axes:B?Array.from(R().subarray(Number(B)>>>0,Number(W)>>>0)):[]})},833403:(_,T,A,B,W)=>{s.jb("ReduceMax",_,{keepDims:!!T,noopWithEmptyAxes:!!A,axes:B?Array.from(R().subarray(Number(B)>>>0,Number(W)>>>0)):[]})},833577:(_,T,A,B,W)=>{s.jb("ReduceMin",_,{keepDims:!!T,noopWithEmptyAxes:!!A,axes:B?Array.from(R().subarray(Number(B)>>>0,Number(W)>>>0)):[]})},833751:(_,T,A,B,W)=>{s.jb("ReduceProd",_,{keepDims:!!T,noopWithEmptyAxes:!!A,axes:B?Array.from(R().subarray(Number(B)>>>0,Number(W)>>>0)):[]})},833926:(_,T,A,B,W)=>{s.jb("ReduceSum",_,{keepDims:!!T,noopWithEmptyAxes:!!A,axes:B?Array.from(R().subarray(Number(B)>>>0,Number(W)>>>0)):[]})},834100:(_,T,A,B,W)=>{s.jb("ReduceL1",_,{keepDims:!!T,noopWithEmptyAxes:!!A,axes:B?Array.from(R().subarray(Number(B)>>>0,Number(W)>>>0)):[]})},834273:(_,T,A,B,W)=>{s.jb("ReduceL2",_,{keepDims:!!T,noopWithEmptyAxes:!!A,axes:B?Array.from(R().subarray(Number(B)>>>0,Number(W)>>>0)):[]})},834446:(_,T,A,B,W)=>{s.jb("ReduceLogSum",_,{keepDims:!!T,noopWithEmptyAxes:!!A,axes:B?Array.from(R().subarray(Number(B)>>>0,Number(W)>>>0)):[]})},834623:(_,T,A,B,W)=>{s.jb("ReduceSumSquare",_,{keepDims:!!T,noopWithEmptyAxes:!!A,axes:B?Array.from(R().subarray(Number(B)>>>0,Number(W)>>>0)):[]})},834803:(_,T,A,B,W)=>{s.jb("ReduceLogSumExp",_,{keepDims:!!T,noopWithEmptyAxes:!!A,axes:B?Array.from(R().subarray(Number(B)>>>0,Number(W)>>>0)):[]})},834983:_=>{s.jb("Where",_,void 0)},835036:(_,T,A)=>{s.jb("Transpose",_,{perm:T?Array.from(R().subarray(Number(T)>>>0,Number(A)>>>0)):[]})},835160:(_,T,A,B)=>{s.jb("DepthToSpace",_,{blocksize:T,mode:ct(A),format:B?"NHWC":"NCHW"})},835293:(_,T,A,B)=>{s.jb("DepthToSpace",_,{blocksize:T,mode:ct(A),format:B?"NHWC":"NCHW"})},835426:(_,T,A,B,W,ie,ve,Oe,Qe,nt,Mt,At,jt,br,As)=>{s.jb("ConvTranspose",_,{format:Qe?"NHWC":"NCHW",autoPad:T,dilations:[A],group:B,kernelShape:[W],pads:[ie,ve],strides:[Oe],wIsConst:()=>!!be()[nt>>>0],outputPadding:Mt?Array.from(R().subarray(Number(Mt)>>>0,Number(At)>>>0)):[],outputShape:jt?Array.from(R().subarray(Number(jt)>>>0,Number(br)>>>0)):[],activation:ct(As)})},835859:(_,T,A,B,W,ie,ve,Oe,Qe,nt,Mt,At,jt,br)=>{s.jb("ConvTranspose",_,{format:Oe?"NHWC":"NCHW",autoPad:T,dilations:Array.from(R().subarray(Number(A)>>>0,2+(Number(A)>>>0)>>>0)),group:B,kernelShape:Array.from(R().subarray(Number(W)>>>0,2+(Number(W)>>>0)>>>0)),pads:Array.from(R().subarray(Number(ie)>>>0,4+(Number(ie)>>>0)>>>0)),strides:Array.from(R().subarray(Number(ve)>>>0,2+(Number(ve)>>>0)>>>0)),wIsConst:()=>!!be()[Qe>>>0],outputPadding:nt?Array.from(R().subarray(Number(nt)>>>0,Number(Mt)>>>0)):[],outputShape:At?Array.from(R().subarray(Number(At)>>>0,Number(jt)>>>0)):[],activation:ct(br)})},836520:(_,T,A,B,W,ie,ve,Oe,Qe,nt,Mt,At,jt,br,As)=>{s.jb("ConvTranspose",_,{format:Qe?"NHWC":"NCHW",autoPad:T,dilations:[A],group:B,kernelShape:[W],pads:[ie,ve],strides:[Oe],wIsConst:()=>!!be()[nt>>>0],outputPadding:Mt?Array.from(R().subarray(Number(Mt)>>>0,Number(At)>>>0)):[],outputShape:jt?Array.from(R().subarray(Number(jt)>>>0,Number(br)>>>0)):[],activation:ct(As)})},836953:(_,T,A,B,W,ie,ve,Oe,Qe,nt,Mt,At,jt,br)=>{s.jb("ConvTranspose",_,{format:Oe?"NHWC":"NCHW",autoPad:T,dilations:Array.from(R().subarray(Number(A)>>>0,2+(Number(A)>>>0)>>>0)),group:B,kernelShape:Array.from(R().subarray(Number(W)>>>0,2+(Number(W)>>>0)>>>0)),pads:Array.from(R().subarray(Number(ie)>>>0,4+(Number(ie)>>>0)>>>0)),strides:Array.from(R().subarray(Number(ve)>>>0,2+(Number(ve)>>>0)>>>0)),wIsConst:()=>!!be()[Qe>>>0],outputPadding:nt?Array.from(R().subarray(Number(nt)>>>0,Number(Mt)>>>0)):[],outputShape:At?Array.from(R().subarray(Number(At)>>>0,Number(jt)>>>0)):[],activation:ct(br)})},837614:(_,T)=>{s.jb("GlobalAveragePool",_,{format:T?"NHWC":"NCHW"})},837705:(_,T,A,B,W,ie,ve,Oe,Qe,nt,Mt,At,jt,br)=>{s.jb("AveragePool",_,{format:br?"NHWC":"NCHW",auto_pad:T,ceil_mode:A,count_include_pad:B,storage_order:W,dilations:ie?Array.from(R().subarray(Number(ie)>>>0,Number(ve)>>>0)):[],kernel_shape:Oe?Array.from(R().subarray(Number(Oe)>>>0,Number(Qe)>>>0)):[],pads:nt?Array.from(R().subarray(Number(nt)>>>0,Number(Mt)>>>0)):[],strides:At?Array.from(R().subarray(Number(At)>>>0,Number(jt)>>>0)):[]})},838184:(_,T)=>{s.jb("GlobalAveragePool",_,{format:T?"NHWC":"NCHW"})},838275:(_,T,A,B,W,ie,ve,Oe,Qe,nt,Mt,At,jt,br)=>{s.jb("AveragePool",_,{format:br?"NHWC":"NCHW",auto_pad:T,ceil_mode:A,count_include_pad:B,storage_order:W,dilations:ie?Array.from(R().subarray(Number(ie)>>>0,Number(ve)>>>0)):[],kernel_shape:Oe?Array.from(R().subarray(Number(Oe)>>>0,Number(Qe)>>>0)):[],pads:nt?Array.from(R().subarray(Number(nt)>>>0,Number(Mt)>>>0)):[],strides:At?Array.from(R().subarray(Number(At)>>>0,Number(jt)>>>0)):[]})},838754:(_,T)=>{s.jb("GlobalMaxPool",_,{format:T?"NHWC":"NCHW"})},838841:(_,T,A,B,W,ie,ve,Oe,Qe,nt,Mt,At,jt,br)=>{s.jb("MaxPool",_,{format:br?"NHWC":"NCHW",auto_pad:T,ceil_mode:A,count_include_pad:B,storage_order:W,dilations:ie?Array.from(R().subarray(Number(ie)>>>0,Number(ve)>>>0)):[],kernel_shape:Oe?Array.from(R().subarray(Number(Oe)>>>0,Number(Qe)>>>0)):[],pads:nt?Array.from(R().subarray(Number(nt)>>>0,Number(Mt)>>>0)):[],strides:At?Array.from(R().subarray(Number(At)>>>0,Number(jt)>>>0)):[]})},839316:(_,T)=>{s.jb("GlobalMaxPool",_,{format:T?"NHWC":"NCHW"})},839403:(_,T,A,B,W,ie,ve,Oe,Qe,nt,Mt,At,jt,br)=>{s.jb("MaxPool",_,{format:br?"NHWC":"NCHW",auto_pad:T,ceil_mode:A,count_include_pad:B,storage_order:W,dilations:ie?Array.from(R().subarray(Number(ie)>>>0,Number(ve)>>>0)):[],kernel_shape:Oe?Array.from(R().subarray(Number(Oe)>>>0,Number(Qe)>>>0)):[],pads:nt?Array.from(R().subarray(Number(nt)>>>0,Number(Mt)>>>0)):[],strides:At?Array.from(R().subarray(Number(At)>>>0,Number(jt)>>>0)):[]})},839878:(_,T,A,B,W)=>{s.jb("Gemm",_,{alpha:T,beta:A,transA:B,transB:W})},839982:_=>{s.jb("MatMul",_,void 0)},840036:(_,T,A,B)=>{s.jb("ArgMax",_,{keepDims:!!T,selectLastIndex:!!A,axis:B})},840144:(_,T,A,B)=>{s.jb("ArgMin",_,{keepDims:!!T,selectLastIndex:!!A,axis:B})},840252:(_,T)=>{s.jb("Softmax",_,{axis:T})},840315:(_,T)=>{s.jb("Concat",_,{axis:T})},840375:(_,T,A,B,W)=>{s.jb("Split",_,{axis:T,numOutputs:A,splitSizes:B?Array.from(R().subarray(Number(B)>>>0,Number(W)>>>0)):[]})},840531:_=>{s.jb("Expand",_,void 0)},840585:(_,T)=>{s.jb("Gather",_,{axis:Number(T)})},840656:(_,T)=>{s.jb("GatherElements",_,{axis:Number(T)})},840735:(_,T)=>{s.jb("GatherND",_,{batch_dims:Number(T)})},840814:(_,T,A,B,W,ie,ve,Oe,Qe,nt,Mt)=>{s.jb("Resize",_,{antialias:T,axes:A?Array.from(R().subarray(Number(A)>>>0,Number(B)>>>0)):[],coordinateTransformMode:ct(W),cubicCoeffA:ie,excludeOutside:ve,extrapolationValue:Oe,keepAspectRatioPolicy:ct(Qe),mode:ct(nt),nearestMode:ct(Mt)})},841176:(_,T,A,B,W,ie,ve)=>{s.jb("Slice",_,{starts:T?Array.from(R().subarray(Number(T)>>>0,Number(A)>>>0)):[],ends:B?Array.from(R().subarray(Number(B)>>>0,Number(W)>>>0)):[],axes:ie?Array.from(R().subarray(Number(ie)>>>0,Number(ve)>>>0)):[]})},841440:_=>{s.jb("Tile",_,void 0)},841492:(_,T,A)=>{s.jb("InstanceNormalization",_,{epsilon:T,format:A?"NHWC":"NCHW"})},841606:(_,T,A)=>{s.jb("InstanceNormalization",_,{epsilon:T,format:A?"NHWC":"NCHW"})},841720:_=>{s.jb("Range",_,void 0)},841773:(_,T)=>{s.jb("Einsum",_,{equation:ct(T)})},841854:(_,T,A,B,W)=>{s.jb("Pad",_,{mode:T,value:A,pads:B?Array.from(R().subarray(Number(B)>>>0,Number(W)>>>0)):[]})},841997:(_,T,A,B,W,ie)=>{s.jb("BatchNormalization",_,{epsilon:T,momentum:A,spatial:!!W,trainingMode:!!B,format:ie?"NHWC":"NCHW"})},842166:(_,T,A,B,W,ie)=>{s.jb("BatchNormalization",_,{epsilon:T,momentum:A,spatial:!!W,trainingMode:!!B,format:ie?"NHWC":"NCHW"})},842335:(_,T,A)=>{s.jb("CumSum",_,{exclusive:Number(T),reverse:Number(A)})},842432:(_,T,A)=>{s.jb("DequantizeLinear",_,{axis:T,blockSize:A})},842522:(_,T,A,B,W)=>{s.jb("GridSample",_,{align_corners:T,mode:ct(A),padding_mode:ct(B),format:W?"NHWC":"NCHW"})},842692:(_,T,A,B,W)=>{s.jb("GridSample",_,{align_corners:T,mode:ct(A),padding_mode:ct(B),format:W?"NHWC":"NCHW"})},842862:(_,T)=>{s.jb("ScatterND",_,{reduction:ct(T)})},842947:(_,T,A,B,W,ie,ve,Oe,Qe)=>{s.jb("Attention",_,{numHeads:T,isUnidirectional:A,maskFilterValue:B,scale:W,doRotary:ie,qkvHiddenSizes:ve?Array.from(R().subarray(Number(Oe)>>>0,Number(Oe)+ve>>>0)):[],pastPresentShareBuffer:!!Qe})},843219:_=>{s.jb("BiasAdd",_,void 0)},843274:_=>{s.jb("BiasSplitGelu",_,void 0)},843335:_=>{s.jb("FastGelu",_,void 0)},843391:(_,T,A,B,W,ie,ve,Oe,Qe,nt,Mt,At,jt,br,As,Qa)=>{s.jb("Conv",_,{format:At?"NHWC":"NCHW",auto_pad:T,dilations:A?Array.from(R().subarray(Number(A)>>>0,Number(B)>>>0)):[],group:W,kernel_shape:ie?Array.from(R().subarray(Number(ie)>>>0,Number(ve)>>>0)):[],pads:Oe?Array.from(R().subarray(Number(Oe)>>>0,Number(Qe)>>>0)):[],strides:nt?Array.from(R().subarray(Number(nt)>>>0,Number(Mt)>>>0)):[],w_is_const:()=>!!be()[Number(jt)>>>0],activation:ct(br),activation_params:As?Array.from(Ce().subarray(Number(As)>>>0,Number(Qa)>>>0)):[]})},843975:_=>{s.jb("Gelu",_,void 0)},844027:(_,T,A,B,W,ie,ve,Oe,Qe)=>{s.jb("GroupQueryAttention",_,{numHeads:T,kvNumHeads:A,scale:B,softcap:W,doRotary:ie,rotaryInterleaved:ve,smoothSoftmax:Oe,localWindowSize:Qe})},844244:(_,T,A,B)=>{s.jb("LayerNormalization",_,{axis:T,epsilon:A,simplified:!!B})},844355:(_,T,A,B)=>{s.jb("LayerNormalization",_,{axis:T,epsilon:A,simplified:!!B})},844466:(_,T,A,B,W,ie)=>{s.jb("MatMulNBits",_,{k:T,n:A,accuracyLevel:B,bits:W,blockSize:ie})},844593:(_,T,A,B,W,ie)=>{s.jb("MultiHeadAttention",_,{numHeads:T,isUnidirectional:A,maskFilterValue:B,scale:W,doRotary:ie})},844752:(_,T)=>{s.jb("QuickGelu",_,{alpha:T})},844816:(_,T,A,B,W)=>{s.jb("RotaryEmbedding",_,{interleaved:!!T,numHeads:A,rotaryEmbeddingDim:B,scale:W})},844955:(_,T,A)=>{s.jb("SkipLayerNormalization",_,{epsilon:T,simplified:!!A})},845057:(_,T,A)=>{s.jb("SkipLayerNormalization",_,{epsilon:T,simplified:!!A})},845159:(_,T,A,B)=>{s.jb("GatherBlockQuantized",_,{gatherAxis:T,quantizeAxis:A,blockSize:B})},845280:_=>{s.Zb(_)},845314:(_,T)=>s.ac(Number(_),Number(T),s.Fb.dc,s.Fb.errors)};function Ae(_,T,A){return Tr(async()=>{await s.Xb(Number(_),Number(T),Number(A))})}function $e(){return typeof wasmOffsetConverter<"u"}class Ue{name="ExitStatus";constructor(T){this.message=`Program terminated with exit(${T})`,this.status=T}}var Ee=_=>{_.terminate(),_.onmessage=()=>{}},je=[],Ge=_=>{Ye.length==0&&(Ut(),Rr(Ye[0]));var T=Ye.pop();if(!T)return 6;ft.push(T),Ot[_.Ab]=T,T.Ab=_.Ab;var A={Bb:"run",fc:_.ec,Hb:_.Hb,Ab:_.Ab};return T.postMessage(A,_.Mb),0},Ve=0,De=(_,T,...A)=>{for(var B=2*A.length,W=on(),ie=xo(8*B),ve=ie>>>3,Oe=0;Oe<A.length;Oe++){var Qe=A[Oe];typeof Qe=="bigint"?(J[ve+2*Oe]=1n,J[ve+2*Oe+1]=Qe):(J[ve+2*Oe]=0n,Me()[ve+2*Oe+1>>>0]=Qe)}return _=Vn(_,0,B,ie,T),Mo(W),_};function ot(_){if(i)return De(0,1,_);if(I=_,!(0<Ve)){for(var T of ft)Ee(T);for(T of Ye)Ee(T);Ye=[],ft=[],Ot={},re=!0}f(0,new Ue(_))}function lt(_){if(i)return De(1,0,_);rt(_)}var rt=_=>{if(I=_,i)throw lt(_),"unwind";ot(_)},Ye=[],ft=[],yt=[],Ot={},vr=_=>{var T=_.Ab;delete Ot[T],Ye.push(_),ft.splice(ft.indexOf(_),1),_.Ab=0,tn(T)};function zr(){yt.forEach(_=>_())}var Rr=_=>new Promise(T=>{_.onmessage=W=>{var ie=(W=W.data).Bb;if(W.Gb&&W.Gb!=to()){var ve=Ot[W.Gb];ve?ve.postMessage(W,W.Mb):C(`Internal error! Worker sent a message "${ie}" to target pthread ${W.Gb}, but that thread no longer exists!`)}else ie==="checkMailbox"?Te():ie==="spawnThread"?Ge(W):ie==="cleanupThread"?vr(Ot[W.hc]):ie==="loaded"?(_.loaded=!0,T(_)):ie==="alert"?alert(`Thread ${W.ic}: ${W.text}`):W.target==="setimmediate"?_.postMessage(W):ie==="callHandler"?s[W.Qb](...W.args):ie&&C(`worker sent an unknown command ${ie}`)},_.onerror=W=>{throw C(`worker sent an error! ${W.filename}:${W.lineno}: ${W.message}`),W};var A,B=[];for(A of[])s.propertyIsEnumerable(A)&&B.push(A);_.postMessage({Bb:"load",Rb:B,kc:y,lc:P})});function Ut(){var _=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"});Ye.push(_)}var Cr=_=>{_e();var T=ne()[_+52>>>2>>>0];_=ne()[_+56>>>2>>>0],Un(T,T-_),Mo(T)},Hs=(_,T)=>{Ve=0,_=Gn(_,T),0<Ve?I=_:rn(_)};class Qs{constructor(T){this.Ib=T-24}}function Xs(_,T,A){var B=new Qs(_>>>=0);throw T>>>=0,A>>>=0,ne()[B.Ib+16>>>2>>>0]=0,ne()[B.Ib+4>>>2>>>0]=T,ne()[B.Ib+8>>>2>>>0]=A,_}function Bs(_,T,A,B){return i?De(2,1,_,T,A,B):_t(_,T,A,B)}function _t(_,T,A,B){if(_>>>=0,A>>>=0,B>>>=0,l===void 0)return 6;var W=[];return i&&W.length===0?Bs(_,T>>>=0,A,B):(_={ec:A,Ab:_,Hb:B,Mb:W},i?(_.Bb="spawnThread",postMessage(_,W),0):Ge(_))}var Es=typeof TextDecoder<"u"?new TextDecoder:void 0,ks=(_,T=0,A=NaN)=>{var B=(T>>>=0)+A;for(A=T;_[A]&&!(A>=B);)++A;if(16<A-T&&_.buffer&&Es)return Es.decode(_.buffer instanceof ArrayBuffer?_.subarray(T,A):_.slice(T,A));for(B="";T<A;){var W=_[T++];if(128&W){var ie=63&_[T++];if((224&W)==192)B+=String.fromCharCode((31&W)<<6|ie);else{var ve=63&_[T++];65536>(W=(240&W)==224?(15&W)<<12|ie<<6|ve:(7&W)<<18|ie<<12|ve<<6|63&_[T++])?B+=String.fromCharCode(W):(W-=65536,B+=String.fromCharCode(55296|W>>10,56320|1023&W))}}else B+=String.fromCharCode(W)}return B},ct=(_,T)=>(_>>>=0)?ks(z(),_,T):"";function Cs(_,T,A){return i?De(3,1,_,T,A):0}function k(_,T){if(i)return De(4,1,_,T)}var X=_=>{for(var T=0,A=0;A<_.length;++A){var B=_.charCodeAt(A);127>=B?T++:2047>=B?T+=2:55296<=B&&57343>=B?(T+=4,++A):T+=3}return T},N=(_,T,A)=>{var B=z();if(T>>>=0,0<A){var W=T;A=T+A-1;for(var ie=0;ie<_.length;++ie){var ve=_.charCodeAt(ie);if(55296<=ve&&57343>=ve&&(ve=65536+((1023&ve)<<10)|1023&_.charCodeAt(++ie)),127>=ve){if(T>=A)break;B[T++>>>0]=ve}else{if(2047>=ve){if(T+1>=A)break;B[T++>>>0]=192|ve>>6}else{if(65535>=ve){if(T+2>=A)break;B[T++>>>0]=224|ve>>12}else{if(T+3>=A)break;B[T++>>>0]=240|ve>>18,B[T++>>>0]=128|ve>>12&63}B[T++>>>0]=128|ve>>6&63}B[T++>>>0]=128|63&ve}}B[T>>>0]=0,_=T-W}else _=0;return _};function Y(_,T){if(i)return De(5,1,_,T)}function se(_,T,A){if(i)return De(6,1,_,T,A)}function he(_,T,A){return i?De(7,1,_,T,A):0}function ke(_,T){if(i)return De(8,1,_,T)}function Ze(_,T,A){if(i)return De(9,1,_,T,A)}function dt(_,T,A,B){if(i)return De(10,1,_,T,A,B)}function qe(_,T,A,B){if(i)return De(11,1,_,T,A,B)}function Ct(_,T,A,B){if(i)return De(12,1,_,T,A,B)}function St(_){if(i)return De(13,1,_)}function ur(_,T){if(i)return De(14,1,_,T)}function Rt(_,T,A){if(i)return De(15,1,_,T,A)}var jr,pr,Sr=()=>pe(""),Gt=_=>{for(var T="";z()[_>>>0];)T+=jr[z()[_++>>>0]];return T},os={},Nr={},Ss={};function yr(_,T,A={}){return function(B,W,ie={}){var ve=W.name;if(!B)throw new pr(`type "${ve}" must have a positive integer typeid pointer`);if(Nr.hasOwnProperty(B)){if(ie.Sb)return;throw new pr(`Cannot register type '${ve}' twice`)}Nr[B]=W,delete Ss[B],os.hasOwnProperty(B)&&(W=os[B],delete os[B],W.forEach(Oe=>Oe()))}(_,T,A)}var Fs=(_,T,A)=>{switch(T){case 1:return A?B=>be()[B>>>0]:B=>z()[B>>>0];case 2:return A?B=>D()[B>>>1>>>0]:B=>K()[B>>>1>>>0];case 4:return A?B=>R()[B>>>2>>>0]:B=>ne()[B>>>2>>>0];case 8:return A?B=>J[B>>>3]:B=>Q[B>>>3];default:throw new TypeError(`invalid integer width (${T}): ${_}`)}};function Is(_,T,A){A>>>=0,yr(_>>>=0,{name:T=Gt(T>>>0),fromWireType:B=>B,toWireType:function(B,W){if(typeof W!="bigint"&&typeof W!="number")throw W=W===null?"null":(B=typeof W)=="object"||B==="array"||B==="function"?W.toString():""+W,new TypeError(`Cannot convert "${W}" to ${this.name}`);return typeof W=="number"&&(W=BigInt(W)),W},Cb:Vr,readValueFromPointer:Fs(T,A,T.indexOf("u")==-1),Db:null})}var Vr=8;function Wr(_,T,A,B){yr(_>>>=0,{name:T=Gt(T>>>0),fromWireType:function(W){return!!W},toWireType:function(W,ie){return ie?A:B},Cb:Vr,readValueFromPointer:function(W){return this.fromWireType(z()[W>>>0])},Db:null})}var Yr=[],Fr=[];function cs(_){9<(_>>>=0)&&--Fr[_+1]==0&&(Fr[_]=void 0,Yr.push(_))}var lr=_=>{if(!_)throw new pr("Cannot use deleted val. handle = "+_);return Fr[_]},_r=_=>{switch(_){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:let T=Yr.pop()||Fr.length;return Fr[T]=_,Fr[T+1]=1,T}};function Hr(_){return this.fromWireType(ne()[_>>>2>>>0])}var zs={name:"emscripten::val",fromWireType:_=>{var T=lr(_);return cs(_),T},toWireType:(_,T)=>_r(T),Cb:Vr,readValueFromPointer:Hr,Db:null};function Ur(_){return yr(_>>>0,zs)}var Le=(_,T)=>{switch(T){case 4:return function(A){return this.fromWireType(Ce()[A>>>2>>>0])};case 8:return function(A){return this.fromWireType(Me()[A>>>3>>>0])};default:throw new TypeError(`invalid float width (${T}): ${_}`)}};function Re(_,T,A){A>>>=0,yr(_>>>=0,{name:T=Gt(T>>>0),fromWireType:B=>B,toWireType:(B,W)=>W,Cb:Vr,readValueFromPointer:Le(T,A),Db:null})}function tt(_,T,A,B,W){if(_>>>=0,A>>>=0,T=Gt(T>>>0),W===-1&&(W=4294967295),W=Oe=>Oe,B===0){var ie=32-8*A;W=Oe=>Oe<<ie>>>ie}var ve=T.includes("unsigned")?function(Oe,Qe){return Qe>>>0}:function(Oe,Qe){return Qe};yr(_,{name:T,fromWireType:W,toWireType:ve,Cb:Vr,readValueFromPointer:Fs(T,A,B!==0),Db:null})}function Jt(_,T,A){function B(ie){var ve=ne()[ie>>>2>>>0];return ie=ne()[ie+4>>>2>>>0],new W(be().buffer,ie,ve)}var W=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][T];yr(_>>>=0,{name:A=Gt(A>>>0),fromWireType:B,Cb:Vr,readValueFromPointer:B},{Sb:!0})}function Rs(_,T){yr(_>>>=0,{name:T=Gt(T>>>0),fromWireType:function(A){for(var B,W=ne()[A>>>2>>>0],ie=A+4,ve=ie,Oe=0;Oe<=W;++Oe){var Qe=ie+Oe;Oe!=W&&z()[Qe>>>0]!=0||(ve=ct(ve,Qe-ve),B===void 0?B=ve:(B+="\0",B+=ve),ve=Qe+1)}return Zr(A),B},toWireType:function(A,B){B instanceof ArrayBuffer&&(B=new Uint8Array(B));var W=typeof B=="string";if(!(W||B instanceof Uint8Array||B instanceof Uint8ClampedArray||B instanceof Int8Array))throw new pr("Cannot pass non-string to std::string");var ie=W?X(B):B.length,ve=wo(4+ie+1),Oe=ve+4;if(ne()[ve>>>2>>>0]=ie,W)N(B,Oe,ie+1);else if(W)for(W=0;W<ie;++W){var Qe=B.charCodeAt(W);if(255<Qe)throw Zr(ve),new pr("String has UTF-16 code units that do not fit in 8 bits");z()[Oe+W>>>0]=Qe}else for(W=0;W<ie;++W)z()[Oe+W>>>0]=B[W];return A!==null&&A.push(Zr,ve),ve},Cb:Vr,readValueFromPointer:Hr,Db(A){Zr(A)}})}var ds=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,js=(_,T)=>{for(var A=_>>1,B=A+T/2;!(A>=B)&&K()[A>>>0];)++A;if(32<(A<<=1)-_&&ds)return ds.decode(z().slice(_,A));for(A="",B=0;!(B>=T/2);++B){var W=D()[_+2*B>>>1>>>0];if(W==0)break;A+=String.fromCharCode(W)}return A},us=(_,T,A)=>{if(A??=2147483647,2>A)return 0;var B=T;A=(A-=2)<2*_.length?A/2:_.length;for(var W=0;W<A;++W){var ie=_.charCodeAt(W);D()[T>>>1>>>0]=ie,T+=2}return D()[T>>>1>>>0]=0,T-B},po=_=>2*_.length,_o=(_,T)=>{for(var A=0,B="";!(A>=T/4);){var W=R()[_+4*A>>>2>>>0];if(W==0)break;++A,65536<=W?(W-=65536,B+=String.fromCharCode(55296|W>>10,56320|1023&W)):B+=String.fromCharCode(W)}return B},Qo=(_,T,A)=>{if(T>>>=0,A??=2147483647,4>A)return 0;var B=T;A=B+A-4;for(var W=0;W<_.length;++W){var ie=_.charCodeAt(W);if(55296<=ie&&57343>=ie&&(ie=65536+((1023&ie)<<10)|1023&_.charCodeAt(++W)),R()[T>>>2>>>0]=ie,(T+=4)+4>A)break}return R()[T>>>2>>>0]=0,T-B},ce=_=>{for(var T=0,A=0;A<_.length;++A){var B=_.charCodeAt(A);55296<=B&&57343>=B&&++A,T+=4}return T};function S(_,T,A){if(_>>>=0,T>>>=0,A=Gt(A>>>=0),T===2)var B=js,W=us,ie=po,ve=Oe=>K()[Oe>>>1>>>0];else T===4&&(B=_o,W=Qo,ie=ce,ve=Oe=>ne()[Oe>>>2>>>0]);yr(_,{name:A,fromWireType:Oe=>{for(var Qe,nt=ne()[Oe>>>2>>>0],Mt=Oe+4,At=0;At<=nt;++At){var jt=Oe+4+At*T;At!=nt&&ve(jt)!=0||(Mt=B(Mt,jt-Mt),Qe===void 0?Qe=Mt:(Qe+="\0",Qe+=Mt),Mt=jt+T)}return Zr(Oe),Qe},toWireType:(Oe,Qe)=>{if(typeof Qe!="string")throw new pr(`Cannot pass non-string to C++ string type ${A}`);var nt=ie(Qe),Mt=wo(4+nt+T);return ne()[Mt>>>2>>>0]=nt/T,W(Qe,Mt+4,nt+T),Oe!==null&&Oe.push(Zr,Mt),Mt},Cb:Vr,readValueFromPointer:Hr,Db(Oe){Zr(Oe)}})}function U(_,T){yr(_>>>=0,{Tb:!0,name:T=Gt(T>>>0),Cb:0,fromWireType:()=>{},toWireType:()=>{}})}function ee(_){bo(_>>>0,!a,1,!n,131072,!1),zr()}var oe=_=>{if(!re)try{if(_(),!(0<Ve))try{i?rn(I):rt(I)}catch(T){T instanceof Ue||T=="unwind"||f(0,T)}}catch(T){T instanceof Ue||T=="unwind"||f(0,T)}};function me(_){_>>>=0,typeof Atomics.jc=="function"&&(Atomics.jc(R(),_>>>2,_).value.then(Te),_+=128,Atomics.store(R(),_>>>2,1))}var Te=()=>{var _=to();_&&(me(_),oe(sn))};function He(_,T){(_>>>=0)==T>>>0?setTimeout(Te):i?postMessage({Gb:_,Bb:"checkMailbox"}):(_=Ot[_])&&_.postMessage({Bb:"checkMailbox"})}var Xe=[];function Je(_,T,A,B,W){for(T>>>=0,B/=2,Xe.length=B,A=W>>>0>>>3,W=0;W<B;W++)Xe[W]=J[A+2*W]?J[A+2*W+1]:Me()[A+2*W+1>>>0];return(T?de[T]:Ha[_])(...Xe)}var We=()=>{Ve=0};function It(_){_>>>=0,i?postMessage({Bb:"cleanupThread",hc:_}):vr(Ot[_])}function bt(_){}var Kt=(_,T)=>{var A=Nr[_];if(A===void 0)throw _=Rn(_),A=Gt(_),Zr(_),new pr(`${T} has unknown type ${A}`);return A},mr=(_,T,A)=>{var B=[];return _=_.toWireType(B,A),B.length&&(ne()[T>>>2>>>0]=_r(B)),_};function Zt(_,T,A){return T>>>=0,A>>>=0,_=lr(_>>>0),T=Kt(T,"emval::as"),mr(T,A,_)}function Ir(_,T){return T>>>=0,_=lr(_>>>0),(T=Kt(T,"emval::as")).toWireType(null,_)}var nr=_=>{try{_()}catch(T){pe(T)}},fr=0,Ar=null,$r=0,Qr=[],Qt={},hr={},Gr=0,Or=null,ps=[];function Tr(_){return function(T){if(!re){if(fr===0){var A=!1,B=!1;T((W=0)=>{if(!re&&($r=W,A=!0,B)){fr=2,nr(()=>qn(Ar)),typeof MainLoop<"u"&&MainLoop.Pb&&MainLoop.resume(),W=!1;try{var ie=function(){var Qe=R()[Ar+8>>>2>>>0];return Qe=ut[hr[Qe]],--Ve,Qe()}()}catch(Qe){ie=Qe,W=!0}var ve=!1;if(!Ar){var Oe=Or;Oe&&(Or=null,(W?Oe.reject:Oe.resolve)(ie),ve=!0)}if(W&&!ve)throw ie}}),B=!0,A||(fr=1,Ar=function(){var W=wo(65548),ie=W+12;ne()[W>>>2>>>0]=ie,ne()[W+4>>>2>>>0]=ie+65536,ie=Qr[0];var ve=Qt[ie];return ve===void 0&&(ve=Gr++,Qt[ie]=ve,hr[ve]=ie),ie=ve,R()[W+8>>>2>>>0]=ie,W}(),typeof MainLoop<"u"&&MainLoop.Pb&&MainLoop.pause(),nr(()=>nn(Ar)))}else fr===2?(fr=0,nr(an),Zr(Ar),Ar=null,ps.forEach(oe)):pe(`invalid state: ${fr}`);return $r}}(T=>{_().then(T)})}function ns(_){return _>>>=0,Tr(async()=>{var T=await lr(_);return _r(T)})}var ar=[];function tr(_,T,A,B){return A>>>=0,B>>>=0,(_=ar[_>>>0])(null,T=lr(T>>>0),A,B)}var cr={},er=_=>{var T=cr[_];return T===void 0?Gt(_):T};function Kr(_,T,A,B,W){return A>>>=0,B>>>=0,W>>>=0,(_=ar[_>>>0])(T=lr(T>>>0),T[A=er(A)],B,W)}var Ns=()=>typeof globalThis=="object"?globalThis:Function("return this")();function Xo(_){return(_>>>=0)==0?_r(Ns()):(_=er(_),_r(Ns()[_]))}var Js=_=>{var T=ar.length;return ar.push(_),T},ya=(_,T)=>{for(var A=Array(_),B=0;B<_;++B)A[B]=Kt(ne()[T+4*B>>>2>>>0],"parameter "+B);return A},vn=(_,T)=>Object.defineProperty(T,"name",{value:_});function Ta(_,T,A){var B=(T=ya(_,T>>>0)).shift();_--;var W=`return function (obj, func, destructorsRef, args) {
9
9
  `,ie=0,ve=[];A===0&&ve.push("obj");for(var Oe=["retType"],Qe=[B],nt=0;nt<_;++nt)ve.push("arg"+nt),Oe.push("argType"+nt),Qe.push(T[nt]),W+=` var arg${nt} = argType${nt}.readValueFromPointer(args${ie?"+"+ie:""});
10
10
  `,ie+=T[nt].Cb;return W+=` var rv = ${A===1?"new func":"func.call"}(${ve.join(", ")});
11
11
  `,B.Tb||(Oe.push("emval_returnValue"),Qe.push(mr),W+=` return emval_returnValue(retType, destructorsRef, rv);
12
12
  `),Oe.push(W+`};
13
- `),_=function(Mt){var At=Function;if(!(At instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof At} which is not a function`);var jt=yn(At.name||"unknownFunctionName",function(){});return jt.prototype=At.prototype,jt=new jt,(Mt=At.apply(jt,Mt))instanceof Object?Mt:jt}(Oe)(...Qe),A=`methodCaller<(${T.map(Mt=>Mt.name).join(", ")}) => ${B.name}>`,Js(yn(A,_))}function Pa(_){return _=er(_>>>0),_r(s[_])}function Ea(_,T){return T>>>=0,_=lr(_>>>0),T=lr(T),_r(_[T])}function Ys(_){9<(_>>>=0)&&(Fr[_+1]+=1)}function ka(){return _r([])}function Ca(_){_=lr(_>>>0);for(var T=Array(_.length),A=0;A<_.length;A++)T[A]=_[A];return _r(T)}function Sa(_){return _r(er(_>>>0))}function Fa(){return _r({})}function Ia(_){for(var T=lr(_>>>=0);T.length;){var A=T.pop();T.pop()(A)}cs(_)}function Zs(_,T,A){T>>>=0,A>>>=0,_=lr(_>>>0),T=lr(T),A=lr(A),_[T]=A}function Aa(_,T){return T>>>=0,_=(_=Kt(_>>>0,"_emval_take_value")).readValueFromPointer(T),_r(_)}function $a(_,T){_=-9007199254740992>_||9007199254740992<_?NaN:Number(_),T>>>=0,_=new Date(1e3*_),R()[T>>>2>>>0]=_.getUTCSeconds(),R()[T+4>>>2>>>0]=_.getUTCMinutes(),R()[T+8>>>2>>>0]=_.getUTCHours(),R()[T+12>>>2>>>0]=_.getUTCDate(),R()[T+16>>>2>>>0]=_.getUTCMonth(),R()[T+20>>>2>>>0]=_.getUTCFullYear()-1900,R()[T+24>>>2>>>0]=_.getUTCDay(),_=(_.getTime()-Date.UTC(_.getUTCFullYear(),0,1,0,0,0,0))/864e5|0,R()[T+28>>>2>>>0]=_}var Tn=_=>_%4==0&&(_%100!=0||_%400==0),Pn=[0,31,60,91,121,152,182,213,244,274,305,335],En=[0,31,59,90,120,151,181,212,243,273,304,334];function kn(_,T){_=-9007199254740992>_||9007199254740992<_?NaN:Number(_),T>>>=0,_=new Date(1e3*_),R()[T>>>2>>>0]=_.getSeconds(),R()[T+4>>>2>>>0]=_.getMinutes(),R()[T+8>>>2>>>0]=_.getHours(),R()[T+12>>>2>>>0]=_.getDate(),R()[T+16>>>2>>>0]=_.getMonth(),R()[T+20>>>2>>>0]=_.getFullYear()-1900,R()[T+24>>>2>>>0]=_.getDay();var A=(Tn(_.getFullYear())?Pn:En)[_.getMonth()]+_.getDate()-1|0;R()[T+28>>>2>>>0]=A,R()[T+36>>>2>>>0]=-60*_.getTimezoneOffset(),A=new Date(_.getFullYear(),6,1).getTimezoneOffset();var B=new Date(_.getFullYear(),0,1).getTimezoneOffset();_=0|(A!=B&&_.getTimezoneOffset()==Math.min(B,A)),R()[T+32>>>2>>>0]=_}function Da(_){_>>>=0;var T=new Date(R()[_+20>>>2>>>0]+1900,R()[_+16>>>2>>>0],R()[_+12>>>2>>>0],R()[_+8>>>2>>>0],R()[_+4>>>2>>>0],R()[_>>>2>>>0],0),A=R()[_+32>>>2>>>0],B=T.getTimezoneOffset(),W=new Date(T.getFullYear(),6,1).getTimezoneOffset(),ie=new Date(T.getFullYear(),0,1).getTimezoneOffset(),ve=Math.min(ie,W);return 0>A?R()[_+32>>>2>>>0]=+(W!=ie&&ve==B):0<A!=(ve==B)&&(W=Math.max(ie,W),T.setTime(T.getTime()+6e4*((0<A?ve:W)-B))),R()[_+24>>>2>>>0]=T.getDay(),A=(Tn(T.getFullYear())?Pn:En)[T.getMonth()]+T.getDate()-1|0,R()[_+28>>>2>>>0]=A,R()[_>>>2>>>0]=T.getSeconds(),R()[_+4>>>2>>>0]=T.getMinutes(),R()[_+8>>>2>>>0]=T.getHours(),R()[_+12>>>2>>>0]=T.getDate(),R()[_+16>>>2>>>0]=T.getMonth(),R()[_+20>>>2>>>0]=T.getYear(),_=T.getTime(),BigInt(isNaN(_)?-1:_/1e3)}function Cn(_,T,A,B,W,ie,ve){return i?De(16,1,_,T,A,B,W,ie,ve):-52}function Yo(_,T,A,B,W,ie){if(i)return De(17,1,_,T,A,B,W,ie)}var eo={},Sn=()=>performance.timeOrigin+performance.now();function Fn(_,T){if(i)return De(18,1,_,T);if(eo[_]&&(clearTimeout(eo[_].id),delete eo[_]),!T)return 0;var A=setTimeout(()=>{delete eo[_],oe(()=>Un(_,performance.timeOrigin+performance.now()))},T);return eo[_]={id:A,qc:T},0}function In(_,T,A,B){_>>>=0,T>>>=0,A>>>=0,B>>>=0;var W=new Date().getFullYear(),ie=new Date(W,0,1).getTimezoneOffset();W=new Date(W,6,1).getTimezoneOffset();var ve=Math.max(ie,W);ne()[_>>>2>>>0]=60*ve,R()[T>>>2>>>0]=+(ie!=W),_=(T=Oe=>{var Qe=Math.abs(Oe);return`UTC${0<=Oe?"-":"+"}${String(Math.floor(Qe/60)).padStart(2,"0")}${String(Qe%60).padStart(2,"0")}`})(ie),T=T(W),W<ie?(N(_,A,17),N(T,B,17)):(N(_,B,17),N(T,A,17))}var al=()=>Date.now(),Oa=1;function An(_,T,A){if(!(0<=_&&3>=_))return 28;if(_===0)_=Date.now();else{if(!Oa)return 52;_=performance.timeOrigin+performance.now()}return J[A>>>0>>>3]=BigInt(Math.round(1e6*_)),0}var mo=[],fo=(_,T)=>{mo.length=0;for(var A;A=z()[_++>>>0];){var B=A!=105;T+=(B&=A!=112)&&T%8?4:0,mo.push(A==112?ne()[T>>>2>>>0]:A==106?J[T>>>3]:A==105?R()[T>>>2>>>0]:Me()[T>>>3>>>0]),T+=B?8:4}return mo};function La(_,T,A){return _>>>=0,T=fo(T>>>0,A>>>0),de[_](...T)}function Ba(_,T,A){return _>>>=0,T=fo(T>>>0,A>>>0),de[_](...T)}var za=()=>{};function Ra(_,T){return C(ct(_>>>0,T>>>0))}var ja=()=>{throw Ve+=1,"unwind"};function Na(){return 4294901760}var Va=()=>navigator.hardwareConcurrency;function Wa(){return pe("Cannot use emscripten_pc_get_function without -sUSE_OFFSET_CONVERTER"),0}function $n(_){_>>>=0;var T=z().length;if(_<=T||4294901760<_)return!1;for(var A=1;4>=A;A*=2){var B=T*(1+.2/A);B=Math.min(B,_+100663296);e:{B=(Math.min(4294901760,65536*Math.ceil(Math.max(_,B)/65536))-y.buffer.byteLength+65535)/65536|0;try{y.grow(B),_e();var W=1;break e}catch{}W=void 0}if(W)return!0}return!1}var ho=()=>(pe("Cannot use convertFrameToPC (needed by __builtin_return_address) without -sUSE_OFFSET_CONVERTER"),0),_s={},Zo=_=>{_.forEach(T=>{var A=ho();A&&(_s[A]=T)})};function Ua(){var _=Error().stack.toString().split(`
14
- `);return _[0]=="Error"&&_.shift(),Zo(_),_s.Lb=ho(),_s.cc=_,_s.Lb}function Dn(_,T,A){if(_>>>=0,T>>>=0,_s.Lb==_)var B=_s.cc;else(B=Error().stack.toString().split(`
15
- `))[0]=="Error"&&B.shift(),Zo(B);for(var W=3;B[W]&&ho()!=_;)++W;for(_=0;_<A&&B[_+W];++_)R()[T+4*_>>>2>>>0]=ho();return _}var ms,en={},Ga=()=>{if(!ms){var _,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(_ in en)en[_]===void 0?delete T[_]:T[_]=en[_];var A=[];for(_ in T)A.push(`${_}=${T[_]}`);ms=A}return ms};function On(_,T){if(i)return De(19,1,_,T);_>>>=0,T>>>=0;var A=0;return Ga().forEach((B,W)=>{var ie=T+A;for(W=ne()[_+4*W>>>2>>>0]=ie,ie=0;ie<B.length;++ie)be()[W++>>>0]=B.charCodeAt(ie);be()[W>>>0]=0,A+=B.length+1}),0}function Ka(_,T){if(i)return De(20,1,_,T);_>>>=0,T>>>=0;var A=Ga();ne()[_>>>2>>>0]=A.length;var B=0;return A.forEach(W=>B+=W.length+1),ne()[T>>>2>>>0]=B,0}function Ln(_){return i?De(21,1,_):52}function tn(_,T,A,B){return i?De(22,1,_,T,A,B):52}function Bn(_,T,A,B){return i?De(23,1,_,T,A,B):70}var qa=[null,[],[]];function zn(_,T,A,B){if(i)return De(24,1,_,T,A,B);T>>>=0,A>>>=0,B>>>=0;for(var W=0,ie=0;ie<A;ie++){var ve=ne()[T>>>2>>>0],Oe=ne()[T+4>>>2>>>0];T+=8;for(var Qe=0;Qe<Oe;Qe++){var nt=z()[ve+Qe>>>0],Mt=qa[_];nt===0||nt===10?((_===1?w:C)(ks(Mt)),Mt.length=0):Mt.push(nt)}W+=Oe}return ne()[B>>>2>>>0]=W,0}i||function(){for(var _=s.numThreads-1;_--;)Ut();je.unshift(()=>{fe++,function(T){i?T():Promise.all(Ye.map(Rr)).then(T)}(()=>Pe())})}();for(var Rn=Array(256),go=0;256>go;++go)Rn[go]=String.fromCharCode(go);jr=Rn,pr=s.BindingError=class extends Error{constructor(_){super(_),this.name="BindingError"}},s.InternalError=class extends Error{constructor(_){super(_),this.name="InternalError"}},Fr.push(0,1,void 0,1,null,1,!0,1,!1,1),s.count_emval_handles=()=>Fr.length/2-5-Yr.length;var ut,Ha=[ot,lt,Bs,Cs,k,Y,se,he,ke,Ze,dt,qe,Ct,St,ur,Rt,Cn,Yo,Fn,On,Ka,Ln,tn,Bn,zn];(async function(){function _(B,W){return ut=B.exports,ut=function(){var ie=ut,ve={};for(let[Oe,Qe]of Object.entries(ie))ve[Oe]=typeof Qe=="function"?(...nt)=>{Qr.push(Oe);try{return Qe(...nt)}finally{re||(Qr.pop(),Ar&&fr===1&&Qr.length===0&&(fr=0,Ve+=1,nr(qn),typeof Fibers<"u"&&Fibers.rc()))}}:Qe;return ve}(),ut=function(){var ie=ut,ve=Qe=>nt=>Qe(nt)>>>0,Oe=Qe=>()=>Qe()>>>0;return(ie=Object.assign({},ie)).Da=ve(ie.Da),ie.fb=Oe(ie.fb),ie.hb=ve(ie.hb),ie.tb=ve(ie.tb),ie.ub=Oe(ie.ub),ie.__cxa_get_exception_ptr=ve(ie.__cxa_get_exception_ptr),ie}(),yt.push(ut.ib),P=W,Pe(),ut}fe++;var T=xe();if(s.instantiateWasm)return new Promise(B=>{s.instantiateWasm(T,(W,ie)=>{_(W,ie),B(W.exports)})});if(i)return new Promise(B=>{Ke=W=>{var ie=new WebAssembly.Instance(W,xe());B(_(ie,W))}});V??=s.locateFile?s.locateFile?s.locateFile("ort-wasm-simd-threaded.jsep.wasm",v):v+"ort-wasm-simd-threaded.jsep.wasm":new URL("ort-wasm-simd-threaded.jsep.wasm",import.meta.url).href;try{var A=await async function(B){var W=V;if(!te&&typeof WebAssembly.instantiateStreaming=="function"&&!le(W))try{var ie=fetch(W,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(ie,B)}catch(ve){C(`wasm streaming compile failed: ${ve}`),C("falling back to ArrayBuffer instantiation")}return async function(ve,Oe){try{var Qe=await async function(nt){if(!te)try{var Mt=await u(nt);return new Uint8Array(Mt)}catch{}if(nt==V&&te)nt=new Uint8Array(te);else{if(!d)throw"both async and sync fetching of the wasm failed";nt=d(nt)}return nt}(ve);return await WebAssembly.instantiate(Qe,Oe)}catch(nt){C(`failed to asynchronously prepare wasm: ${nt}`),pe(nt)}}(W,B)}(T);return _(A.instance,A.module)}catch(B){return t(B),Promise.reject(B)}})();var jn=_=>(jn=ut.Da)(_),Nn=()=>(Nn=ut.Ea)();s._OrtInit=(_,T)=>(s._OrtInit=ut.Fa)(_,T),s._OrtGetLastError=(_,T)=>(s._OrtGetLastError=ut.Ga)(_,T),s._OrtCreateSessionOptions=(_,T,A,B,W,ie,ve,Oe,Qe,nt)=>(s._OrtCreateSessionOptions=ut.Ha)(_,T,A,B,W,ie,ve,Oe,Qe,nt),s._OrtAppendExecutionProvider=(_,T,A,B,W)=>(s._OrtAppendExecutionProvider=ut.Ia)(_,T,A,B,W),s._OrtAddFreeDimensionOverride=(_,T,A)=>(s._OrtAddFreeDimensionOverride=ut.Ja)(_,T,A),s._OrtAddSessionConfigEntry=(_,T,A)=>(s._OrtAddSessionConfigEntry=ut.Ka)(_,T,A),s._OrtReleaseSessionOptions=_=>(s._OrtReleaseSessionOptions=ut.La)(_),s._OrtCreateSession=(_,T,A)=>(s._OrtCreateSession=ut.Ma)(_,T,A),s._OrtReleaseSession=_=>(s._OrtReleaseSession=ut.Na)(_),s._OrtGetInputOutputCount=(_,T,A)=>(s._OrtGetInputOutputCount=ut.Oa)(_,T,A),s._OrtGetInputOutputMetadata=(_,T,A,B)=>(s._OrtGetInputOutputMetadata=ut.Pa)(_,T,A,B),s._OrtFree=_=>(s._OrtFree=ut.Qa)(_),s._OrtCreateTensor=(_,T,A,B,W,ie)=>(s._OrtCreateTensor=ut.Ra)(_,T,A,B,W,ie),s._OrtGetTensorData=(_,T,A,B,W)=>(s._OrtGetTensorData=ut.Sa)(_,T,A,B,W),s._OrtReleaseTensor=_=>(s._OrtReleaseTensor=ut.Ta)(_),s._OrtCreateRunOptions=(_,T,A,B)=>(s._OrtCreateRunOptions=ut.Ua)(_,T,A,B),s._OrtAddRunConfigEntry=(_,T,A)=>(s._OrtAddRunConfigEntry=ut.Va)(_,T,A),s._OrtReleaseRunOptions=_=>(s._OrtReleaseRunOptions=ut.Wa)(_),s._OrtCreateBinding=_=>(s._OrtCreateBinding=ut.Xa)(_),s._OrtBindInput=(_,T,A)=>(s._OrtBindInput=ut.Ya)(_,T,A),s._OrtBindOutput=(_,T,A,B)=>(s._OrtBindOutput=ut.Za)(_,T,A,B),s._OrtClearBoundOutputs=_=>(s._OrtClearBoundOutputs=ut._a)(_),s._OrtReleaseBinding=_=>(s._OrtReleaseBinding=ut.$a)(_),s._OrtRunWithBinding=(_,T,A,B,W)=>(s._OrtRunWithBinding=ut.ab)(_,T,A,B,W),s._OrtRun=(_,T,A,B,W,ie,ve,Oe)=>(s._OrtRun=ut.bb)(_,T,A,B,W,ie,ve,Oe),s._OrtEndProfiling=_=>(s._OrtEndProfiling=ut.cb)(_),s._JsepOutput=(_,T,A)=>(s._JsepOutput=ut.db)(_,T,A),s._JsepGetNodeName=_=>(s._JsepGetNodeName=ut.eb)(_);var to=()=>(to=ut.fb)(),Zr=s._free=_=>(Zr=s._free=ut.gb)(_),wo=s._malloc=_=>(wo=s._malloc=ut.hb)(_),bo=(_,T,A,B,W,ie)=>(bo=ut.kb)(_,T,A,B,W,ie),Vn=()=>(Vn=ut.lb)(),Wn=(_,T,A,B,W)=>(Wn=ut.mb)(_,T,A,B,W),rn=_=>(rn=ut.nb)(_),sn=_=>(sn=ut.ob)(_),Un=(_,T)=>(Un=ut.pb)(_,T),on=()=>(on=ut.qb)(),Gn=(_,T)=>(Gn=ut.rb)(_,T),Mo=_=>(Mo=ut.sb)(_),xo=_=>(xo=ut.tb)(_),nn=()=>(nn=ut.ub)(),Kn=s.dynCall_ii=(_,T)=>(Kn=s.dynCall_ii=ut.vb)(_,T),an=_=>(an=ut.wb)(_),qn=()=>(qn=ut.xb)(),Hn=_=>(Hn=ut.yb)(_),ln=()=>(ln=ut.zb)();return s.stackSave=()=>nn(),s.stackRestore=_=>Mo(_),s.stackAlloc=_=>xo(_),s.setValue=function(_,T,A="i8"){switch(A.endsWith("*")&&(A="*"),A){case"i1":case"i8":be()[_>>>0]=T;break;case"i16":D()[_>>>1>>>0]=T;break;case"i32":R()[_>>>2>>>0]=T;break;case"i64":J[_>>>3]=BigInt(T);break;case"float":Ce()[_>>>2>>>0]=T;break;case"double":Me()[_>>>3>>>0]=T;break;case"*":ne()[_>>>2>>>0]=T;break;default:pe(`invalid type for setValue: ${A}`)}},s.getValue=function(_,T="i8"){switch(T.endsWith("*")&&(T="*"),T){case"i1":case"i8":return be()[_>>>0];case"i16":return D()[_>>>1>>>0];case"i32":return R()[_>>>2>>>0];case"i64":return J[_>>>3];case"float":return Ce()[_>>>2>>>0];case"double":return Me()[_>>>3>>>0];case"*":return ne()[_>>>2>>>0];default:pe(`invalid type for getValue: ${T}`)}},s.UTF8ToString=ct,s.stringToUTF8=N,s.lengthBytesUTF8=X,function _(){if(0<fe)Se=_;else if(i)r(s),Z();else{for(;0<je.length;)je.shift()(s);0<fe?Se=_:(s.calledRun=!0,re||(Z(),r(s)))}}(),s.PTR_SIZE=4,o}),lx=Kc,cg=globalThis.self?.name?.startsWith("em-pthread"),cg&&Kc()}),qc,Rd,dg,ts,cx,zi,ug,pg,Hc,_g,Qc,dx,Xc,ux,nu=ze(()=>{"use strict";ou(),qc=typeof location>"u"?void 0:location.origin,Rd=import.meta.url>"file:"&&import.meta.url<"file;",dg=()=>{if(Rd){let e=URL;return new URL(new e("ort.bundle.min.mjs",import.meta.url).href,qc).href}return import.meta.url},ts=dg(),cx=()=>{if(ts&&!ts.startsWith("blob:"))return ts.substring(0,ts.lastIndexOf("/")+1)},zi=(e,r)=>{try{let t=r??ts;return(t?new URL(e,t):new URL(e)).origin===qc}catch{return!1}},ug=(e,r)=>{let t=r??ts;try{return(t?new URL(e,t):new URL(e)).href}catch{return}},pg=(e,r)=>`${r??"./"}${e}`,Hc=async e=>{let r=await(await fetch(e,{credentials:"same-origin"})).blob();return URL.createObjectURL(r)},_g=async e=>(await import(e)).default,Qc=(dP(),Ma(nx)).default,dx=async()=>{if(!ts)throw new Error("Failed to load proxy worker: cannot determine the script source URL.");if(zi(ts))return[void 0,Qc()];let e=await Hc(ts);return[e,Qc(e)]},Xc=(uP(),Ma(ix)).default,ux=async(e,r,t)=>{if(!e&&!r&&Xc&&ts&&zi(ts))return[void 0,Xc];{let s="ort-wasm-simd-threaded.jsep.mjs",o=e??ug(s,r),n=t&&o&&!zi(o,r),a=n?await Hc(o):o??pg(s,r);return[n?a:void 0,await _g(a)]}}}),Jc,Ri,aa,Yc,mg,fg,hg,au,Ht,Ho=ze(()=>{"use strict";nu(),Ri=!1,aa=!1,Yc=!1,mg=()=>{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}},fg=()=>{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}},hg=()=>{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}},au=async e=>{if(Ri)return Promise.resolve();if(aa)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(Yc)throw new Error("previous call to 'initializeWebAssembly()' failed.");aa=!0;let r=e.initTimeout,t=e.numThreads;if(e.simd!==!1){if(e.simd==="relaxed"){if(!hg())throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.")}else if(!fg())throw new Error("WebAssembly SIMD is not supported in the current environment.")}let s=mg();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,n=typeof o=="string"?o:void 0,a=o?.mjs,i=a?.href??a,l=o?.wasm,c=l?.href??l,p=e.wasmBinary,[u,d]=await ux(i,n,t>1),h=!1,f=[];if(r>0&&f.push(new Promise(v=>{setTimeout(()=>{h=!0,v()},r)})),f.push(new Promise((v,F)=>{let x={numThreads:t};if(p)x.wasmBinary=p;else if(c||n)x.locateFile=w=>c??n+w;else if(i&&i.indexOf("blob:")!==0)x.locateFile=w=>new URL(w,i).href;else if(u){let w=cx();w&&(x.locateFile=C=>w+C)}d(x).then(w=>{aa=!1,Ri=!0,Jc=w,v(),u&&URL.revokeObjectURL(u)},w=>{aa=!1,Yc=!0,F(w)})})),await Promise.race(f),h)throw new Error(`WebAssembly backend initializing failed due to timeout: ${r}ms`)},Ht=()=>{if(Ri&&Jc)return Jc;throw new Error("WebAssembly is not initialized yet.")}}),vs,Zi,Wt,iu=ze(()=>{"use strict";Ho(),vs=(e,r)=>{let t=Ht(),s=t.lengthBytesUTF8(e)+1,o=t._malloc(s);return t.stringToUTF8(e,o,s),r.push(o),o},Zi=(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,n])=>{let a=r?r+o:o;if(typeof n=="object")Zi(n,a+".",t,s);else if(typeof n=="string"||typeof n=="number")s(a,n.toString());else if(typeof n=="boolean")s(a,n?"1":"0");else throw new Error(`Can't handle extra config type: ${typeof n}`)})},Wt=e=>{let r=Ht(),t=r.stackSave();try{let s=r.PTR_SIZE,o=r.stackAlloc(2*s);r._OrtGetLastError(o,o+s);let n=Number(r.getValue(o,s===4?"i32":"i64")),a=r.getValue(o+s,"*"),i=a?r.UTF8ToString(a):"";throw new Error(`${e} ERROR_CODE: ${n}, ERROR_MESSAGE: ${i}`)}finally{r.stackRestore(t)}}}),px,pP=ze(()=>{"use strict";Ho(),iu(),px=e=>{let r=Ht(),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 n=0;return e?.tag!==void 0&&(n=vs(e.tag,s)),t=r._OrtCreateRunOptions(o.logSeverityLevel,o.logVerbosityLevel,!!o.terminate,n),t===0&&Wt("Can't create run options."),e?.extra!==void 0&&Zi(e.extra,"",new WeakSet,(a,i)=>{let l=vs(a,s),c=vs(i,s);r._OrtAddRunConfigEntry(t,l,c)!==0&&Wt(`Can't set a run config entry: ${a} - ${i}.`)}),[t,s]}catch(n){throw t!==0&&r._OrtReleaseRunOptions(t),s.forEach(a=>r._free(a)),n}}}),gg,wg,bg,ia,Mg,_x,_P=ze(()=>{"use strict";Ho(),iu(),gg=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}`)}},wg=e=>{switch(e){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${e}`)}},bg=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)},ia=(e,r,t,s)=>{let o=vs(r,s),n=vs(t,s);Ht()._OrtAddSessionConfigEntry(e,o,n)!==0&&Wt(`Can't set a session config entry: ${r} - ${t}.`)},Mg=async(e,r,t)=>{for(let s of r){let o=typeof s=="string"?s:s.name,n=[];switch(o){case"webnn":if(o="WEBNN",typeof s!="string"){let p=s?.deviceType;p&&ia(e,"deviceType",p,t)}break;case"webgpu":if(o="JS",typeof s!="string"){let p=s;if(p?.preferredLayout){if(p.preferredLayout!=="NCHW"&&p.preferredLayout!=="NHWC")throw new Error(`preferredLayout must be either 'NCHW' or 'NHWC': ${p.preferredLayout}`);ia(e,"preferredLayout",p.preferredLayout,t)}}break;case"wasm":case"cpu":continue;default:throw new Error(`not supported execution provider: ${o}`)}let a=vs(o,t),i=n.length,l=0,c=0;if(i>0){l=Ht()._malloc(i*Ht().PTR_SIZE),t.push(l),c=Ht()._malloc(i*Ht().PTR_SIZE),t.push(c);for(let p=0;p<i;p++)Ht().setValue(l+p*Ht().PTR_SIZE,n[p][0],"*"),Ht().setValue(c+p*Ht().PTR_SIZE,n[p][1],"*")}await Ht()._OrtAppendExecutionProvider(e,a,l,c,i)!==0&&Wt(`Can't append execution provider: ${o}.`)}},_x=async e=>{let r=Ht(),t=0,s=[],o=e||{};bg(o);try{let n=gg(o.graphOptimizationLevel??"all"),a=wg(o.executionMode??"sequential"),i=typeof o.logId=="string"?vs(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 p=typeof o.optimizedModelFilePath=="string"?vs(o.optimizedModelFilePath,s):0;if(t=r._OrtCreateSessionOptions(n,!!o.enableCpuMemArena,!!o.enableMemPattern,a,!!o.enableProfiling,0,i,l,c,p),t===0&&Wt("Can't create session options."),o.executionProviders&&await Mg(t,o.executionProviders,s),o.enableGraphCapture!==void 0){if(typeof o.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${o.enableGraphCapture}`);ia(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 h=vs(u,s);r._OrtAddFreeDimensionOverride(t,h,d)!==0&&Wt(`Can't set a free dimension override: ${u} - ${d}.`)}return o.extra!==void 0&&Zi(o.extra,"",new WeakSet,(u,d)=>{ia(t,u,d,s)}),[t,s]}catch(n){throw t!==0&&r._OrtReleaseSessionOptions(t)!==0&&Wt("Can't release session options."),s.forEach(a=>r._free(a)),n}}}),wn,Ks,Wo,lu,el,cu,du,jd,wt=ze(()=>{"use strict";wn=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}`)}},Ks=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}`)}},Wo=(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,n)=>o*n,1);return t>0?Math.ceil(s*t):void 0},lu=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}`)}},el=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}`)}},cu=e=>e==="float32"||e==="float16"||e==="int32"||e==="int64"||e==="uint32"||e==="uint8"||e==="bool"||e==="uint4"||e==="int4",du=e=>e==="float32"||e==="float16"||e==="int32"||e==="int64"||e==="uint32"||e==="uint64"||e==="int8"||e==="uint8"||e==="bool"||e==="uint4"||e==="int4",jd=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}`)}}}),uu,mx=ze(()=>{"use strict";ou(),uu=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(),n;try{n=new ArrayBuffer(s)}catch(i){if(i instanceof RangeError){let l=Math.ceil(s/65536);n=new WebAssembly.Memory({initial:l,maximum:l}).buffer}else throw i}let a=0;for(;;){let{done:i,value:l}=await o.read();if(i)break;let c=l.byteLength;new Uint8Array(n,a,c).set(l),a+=c}return new Uint8Array(n,0,s)}}else return e instanceof Blob?new Uint8Array(await e.arrayBuffer()):e instanceof Uint8Array?e:new Uint8Array(e)}}),xg,vg,yg,Tg,pu,Pg,$t,qs=ze(()=>{"use strict";wt(),xg=["V","I","W","E","F"],vg=(e,r)=>{console.log(`[${xg[e]},${new Date().toISOString()}]${r}`)},pu=(e,r)=>{yg=e,Tg=r},Pg=(e,r)=>{let t=el(e),s=el(yg);t>=s&&vg(t,typeof r=="function"?r():r)},$t=(...e)=>{Tg&&Pg(...e)}}),Eg,Mn,we,tl,fx,hx,gx,Tt=ze(()=>{"use strict";Eg=class{static calcMatMulShape(e,r){return e[1]!==r[0]?void 0:[e[0],r[1]]}},Mn=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 n=Math.max(e.length,r.length),a=new Array(n);if(t){if(s<2||o<2)return;let i=Eg.calcMatMulShape([e[s-2],e[s-1]],[r[o-2],r[o-1]]);if(i===void 0)return;[a[n-2],a[n-1]]=i}for(let i=t?3:1;i<=n;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 p=Math.max(l,c);if(l&&c)a[n-i]=Math.max(l,c);else{if(p>1)return;a[n-i]=0}}return a}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}},we=class Ji{static size(r){return Ji.getSizeFromDimensionRange(r,0,r.length)}static convertShape(r,t=4){let s=r.length;if(s===0)return[];let o=new Array(s),n=s-1;for(;n>=0;){if(r[n]%t===0){o[n]=r[n]/t;break}if(t%r[n]!==0)throw new Error("cannot convert shape");o[n]=1,t/=r[n],n--}for(n--;n>=0;n--)o[n]=r[n];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 Ji.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 Ji.getSizeFromDimensionRange(r,0,t)}static getSizeFromDimensionRange(r,t,s){let o=1;for(let n=t;n<s;n++){if(r[n]<0)throw new Error("cannot get valid size from specified dimension range. Most likely the range contains negative values in them.");o*=Number(r[n])}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,n)=>o+t[n]+t[n+s])}static areEqual(r,t){return r.length!==t.length?!1:r.every((s,o)=>s===t[o])}},tl=class ha{static adjustPoolAttributes(r,t,s,o,n,a){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<n.length){if(n[i]<0)throw new Error("dilations should be greater than or equal to 1")}else n.push(1);for(let i=0;i<s.length*2;i++)if(i<a.length){if(a[i]<0)throw new Error("pad should be greater than or equal to 1")}else a.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(a[i]>=s[i]||a[i+s.length]>=s[i])throw new Error("pads should be smaller than kernel")}}static adjustPadsBasedOnAutoPad(r,t,s,o,n,a,i){if(i){if(n.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++)ha.adjustPadAndReturnShape(r[l+(a?1:2)],t[l],s[l],o[l],n,l,l+r.length-2,i)}}static computePoolOutputShape(r,t,s,o,n,a,i){if(t.length<=0)throw new Error("input shape must be of size greater than 0");let l=[t[0],t[1]];return ha.computeShapeHelper(r,t,l,s,o,n,a,i),l}static computeConvOutputShape(r,t,s,o,n,a,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 ha.computeShapeHelper(!1,r,l,s,o,n,a,i),l}static computeShapeHelper(r,t,s,o,n,a,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(ha.adjustPadAndReturnShape(t[c+2],o[c],n[c],a[c],i,c,c+t.length-2,l))}static adjustPadAndReturnShape(r,t,s,o,n,a,i,l){let c=s*(o-1)+1;if(l&&l!=="NOTSET")switch(l){case"VALID":return n[a]=0,n[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 p=((r+t-1)/t-1)*t+o-r;return n[a]=Math.floor(l==="SAME_LOWER"?(p+1)/2:p/2),n[i]=p-n[a],Math.floor((r+p-o)/t+1)}default:throw new Error("Unsupported AutoPad type")}else return Math.floor((r+n[a]+n[i]-c)/t+1)}},fx=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 n,a,i;r?(n=e[1],a=e[0]):(n=e[0],a=e[1]);let l=-1;if(s?(i=t[0],l=1):(i=t[1],l=0),t[l]!==a)throw new Error("dimension mismatch");if(n<=0||i<=0||a<=0)throw new Error("invalid shape specified");if(o&&!Mn.isValidBroadcast(o,[n,i]))throw new Error("gemm: invalid bias shape for broadcast");return[n,i,a]}},hx=-34028234663852886e22,gx=34028234663852886e22}),_u,wx=ze(()=>{"use strict";wt(),_u=(e,r)=>new(lu(r))(e)}),Nd,Zc,kg,ed,Cg,td,rd,sd,Sg,bx,mP=ze(()=>{"use strict";qs(),Nd=(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 n=0;n<t;n++){let a=s[n];if(a>2147483647n||a<-2147483648n)throw new Error(`Overflow occurred when converting BigInt to Int32 at index ${n}: ${a}`);o[n]=Number(a)}return r?new Uint8Array(o.buffer):o},Zc=(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},kg=1,ed=()=>kg++,Cg=new Map([["float32",32],["float16",16],["int32",32],["uint32",32],["int64",64],["uint64",64],["int8",8],["uint8",8],["int4",4],["uint4",4]]),td=(e,r)=>{let t=Cg.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},rd=class{constructor(e){this.shouldConvertInt64toInt32=!1,this.isInt64ToInt32Converted=!1;let{sessionId:r,context:t,tensor:s,dataType:o,shape:n,shouldConvertInt64toInt32:a=!1}=e;this.sessionId=r,this.mlContext=t,this.mlTensor=s,this.dataType=o,this.tensorShape=n,this.shouldConvertInt64toInt32=a}get tensor(){return this.mlTensor}get type(){return this.dataType}get shape(){return this.tensorShape}get byteLength(){return td(this.dataType,this.tensorShape)}destroy(){$t("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=Zc(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}},sd=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,n=this.tensorManager.getMLContext(e),a=o==="int64"&&!n.opSupportLimits().input.dataTypes.includes("int64");if(a&&(o="int32",$t("verbose",()=>"[WebNN] TensorIdTracker.ensureTensor: convert dataType from int64 to int32")),this.wrapper){if(this.wrapper.canReuseTensor(n,o,t))return this.wrapper.tensor;if(s){if(this.wrapper.byteLength!==td(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,a),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=Nd(e,!0),this.wrapper.setIsInt64ToInt32Converted(!0)),r.byteLength===this.wrapper.byteLength){this.wrapper.write(r);return}else $t("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?Zc(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)}},Sg=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=ed();return this.tensorTrackersById.set(e,new sd(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){$t("verbose",()=>`[WebNN] TensorManager.ensureTensor {tensorId: ${r}, dataType: ${t}, shape: ${s}, copyOld: ${o}}`);let n=this.tensorTrackersById.get(r);if(!n)throw new Error("Tensor not found.");return n.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){$t("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),n=ed(),a=new rd({sessionId:e,context:o,tensor:r,dataType:t,shape:s});return this.tensorTrackersById.set(n,new sd(this,a)),this.externalTensors.add(a),n}async getCachedTensor(e,r,t,s,o,n,a=!1){let i=this.getMLContext(e);for(let[c,p]of this.freeTensors.entries())if(p.canReuseTensor(i,r,t)){$t("verbose",()=>`[WebNN] Reusing tensor {dataType: ${r}, shape: ${t}}`);let u=this.freeTensors.splice(c,1)[0];return u.sessionId=e,u}$t("verbose",()=>`[WebNN] MLContext.createTensor {dataType: ${r}, shape: ${t}}`);let l=await i.createTensor({dataType:r,shape:t,dimensions:t,usage:s,writable:o,readable:n});return new rd({sessionId:e,context:i,tensor:l,dataType:r,shape:t,shouldConvertInt64toInt32:a})}releaseTensor(e){this.externalTensors.has(e)&&this.externalTensors.delete(e),this.freeTensors.push(e)}},bx=(...e)=>new Sg(...e)}),ji,Fg,Mx,fP=ze(()=>{"use strict";wt(),Ho(),wx(),mP(),qs(),ji=new Map([[1,"float32"],[10,"float16"],[6,"int32"],[12,"uint32"],[7,"int64"],[13,"uint64"],[22,"int4"],[21,"uint4"],[3,"int8"],[2,"uint8"],[9,"uint8"]]),Fg=(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,n)=>o===s[n]&&e[o]===r[o])},Mx=class{constructor(e){this.tensorManager=bx(this),this.mlContextBySessionId=new Map,this.sessionIdsByMLContext=new Map,this.mlContextCache=[],this.sessionGraphInputs=new Map,this.temporaryGraphInputs=[],this.temporarySessionTensorIds=new Map,pu(e.logLevel,!!e.debug)}get currentSessionId(){if(this.activeSessionId===void 0)throw new Error("No active session");return this.activeSessionId}onRunStart(e){$t("verbose",()=>`[WebNN] onRunStart {sessionId: ${e}}`),this.activeSessionId=e}onRunEnd(e){$t("verbose",()=>`[WebNN] onRunEnd {sessionId: ${e}}`);let r=this.temporarySessionTensorIds.get(e);if(r){for(let t of r)$t("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=>Fg(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){$t("verbose",()=>`[WebNN] releaseTensorId {tensorId: ${e}}`),this.tensorManager.releaseTensorId(e)}async ensureTensor(e,r,t,s,o){let n=ji.get(t);if(!n)throw new Error(`Unsupported ONNX data type: ${t}`);return this.tensorManager.ensureTensor(e??this.currentSessionId,r,n,s,o)}async createTemporaryTensor(e,r,t){$t("verbose",()=>`[WebNN] createTemporaryTensor {onnxDataType: ${r}, shape: ${t}}`);let s=ji.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 n=this.temporarySessionTensorIds.get(e);return n?n.push(o):this.temporarySessionTensorIds.set(e,[o]),o}uploadTensor(e,r){if(!Ht().shouldTransferToMLTensor)throw new Error("Trying to upload to a MLTensor while shouldTransferToMLTensor is false");$t("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 _u(t,r)}}registerMLTensor(e,r,t,s){let o=ji.get(t);if(!o)throw new Error(`Unsupported ONNX data type: ${t}`);let n=this.tensorManager.registerTensor(e,r,o,s);return $t("verbose",()=>`[WebNN] registerMLTensor {tensor: ${r}, dataType: ${o}, dimensions: ${s}} -> {tensorId: ${n}}`),n}registerMLConstant(e,r,t,s,o,n,a=!1){if(!n)throw new Error("External mounted files are not available.");let i=e;e.startsWith("./")&&(i=e.substring(2));let l=n.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,p;switch(o.dataType){case"float32":p=new Float32Array(c);break;case"float16":p=typeof Float16Array<"u"&&Float16Array.from?new Float16Array(c):new Uint16Array(c);break;case"int32":p=new Int32Array(c);break;case"uint32":p=new Uint32Array(c);break;case"int64":a?(p=Nd(new Uint8Array(c),!1),o.dataType="int32"):p=new BigInt64Array(c);break;case"uint64":p=new BigUint64Array(c);break;case"int8":p=new Int8Array(c);break;case"int4":case"uint4":case"uint8":p=new Uint8Array(c);break;default:throw new Error(`Unsupported data type: ${o.dataType} in creating WebNN Constant from external data.`)}return $t("verbose",()=>`[WebNN] registerMLConstant {dataType: ${o.dataType}, shape: ${o.shape}}} ${a?"(Note: it was int64 data type and registered to int32 as workaround)":""}`),s.constant(o,p)}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(){}}}),mu=ze(()=>{"use strict"}),od,Ni,Vi,Ig,Ag,nd,Vd,$g,xx,hP=ze(()=>{"use strict";qs(),mu(),od=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]]),Ni=[],Vi=e=>Math.ceil(Number(e)/16)*16,Ig=e=>{for(let r=0;r<Ni.length;r++){let t=Ni[r];if(e<=t)return t}return Math.ceil(e/16)*16},Ag=1,nd=()=>Ag++,Vd=async(e,r,t,s)=>{let o=Vi(t),n=e.device.createBuffer({size:o,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ});try{let a=e.getCommandEncoder();e.endComputePass(),a.copyBufferToBuffer(r,0,n,0,o),e.flush(),await n.mapAsync(GPUMapMode.READ);let i=n.getMappedRange();if(s){let l=s();return l.set(new Uint8Array(i,0,t)),l}else return new Uint8Array(i.slice(0,t))}finally{n.destroy()}},$g=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 od)Ni.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,n=Vi(o),a=this.storageCache.get(e);if(!a)throw new Error("gpu data for uploading does not exist");if(Number(a.originalSize)!==o)throw new Error(`inconsistent data size. gpu data size=${a.originalSize}, data size=${o}`);let i=this.backend.device.createBuffer({mappedAtCreation:!0,size:n,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,a.gpuData.buffer,0,n),this.backend.device.queue.submit([c.finish()]),i.destroy(),$t("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=Vi(t.originalSize),n=this.backend.getCommandEncoder();this.backend.endComputePass(),n.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 $t("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=nd();return this.storageCache.set(s,{gpuData:{id:s,type:0,buffer:e},originalSize:r}),$t("verbose",()=>`[WebGPU] GpuDataManager.registerExternalBuffer(size=${r}) => id=${s}, registered.`),s}unregisterExternalBuffer(e){e!==void 0&&(this.storageCache.delete(e),$t("verbose",()=>`[WebGPU] GpuDataManager.unregisterExternalBuffer() => id=${e}`))}create(e,r=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST){let t=Ig(e),s,o=(r&GPUBufferUsage.STORAGE)===GPUBufferUsage.STORAGE,n=(r&GPUBufferUsage.UNIFORM)===GPUBufferUsage.UNIFORM;if(o||n){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 a={id:nd(),type:0,buffer:s};return this.storageCache.set(a.id,{gpuData:a,originalSize:Number(e)}),$t("verbose",()=>`[WebGPU] GpuDataManager.create(size=${e}) => id=${a.id}`),a}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 $t("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 Vd(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=od.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&&($t("warning",()=>"[WebGPU] Clearing webgpu buffer cache"),this.storageCache.forEach(t=>{t.gpuData.buffer.destroy()}),this.storageCache=new Map)}},xx=(...e)=>new $g(...e)}),Dg,Bt,ir=ze(()=>{"use strict";Dg=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}},Bt=e=>new Dg(e)}),xn,Wi,kr,qr,pt,or,Wd,bn,co,it,la,ye,at,vx,fu,Og,yx,Et=ze(()=>{"use strict";wt(),Tt(),xn=64,Wi=(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}`)}},kr=(e,r=1)=>{let t=Wi(e,r);return typeof t=="string"?t:t[0]},qr=(e,r=1)=>{let t=Wi(e,r);return typeof t=="string"?t:t[1]},pt=(...e)=>{let r=[];return e.forEach(t=>{t.length!==0&&r.push({type:12,data:t},{type:12,data:we.computeStrides(t)})}),r},or=e=>e%4===0?4:e%2===0?2:1,Wd=(e="f32",r,t="0")=>!r||r===1?`${e}(${t})`:`vec${r}<${e}>(${t})`,bn=(e,r,t)=>e==="f32"?t:r===1?`f32(${t})`:`vec${r}<f32>(${t})`,co=(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,it=(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,la=(e,r,t,s,o)=>{let n=typeof t=="number",a=n?t:t.length,i=[...new Array(a).keys()],l=a<2?"u32":a<=4?`vec${a}<u32>`:`array<u32, ${a}>`,c=Wi(r,o),p=typeof c=="string"?c:c[1],u=typeof c=="string"?c:c[0],d={indices:l,value:p,storage:u,tensor:r},h=z=>typeof z=="string"?z:`${z}u`,f={offsetToIndices:!1,indicesToOffset:!1,broadcastedIndicesToOffset:!1,set:!1,setByIndices:!1,get:!1,getByIndices:!1},v=n?"uniforms.":"",F=`${v}${e}_shape`,x=`${v}${e}_strides`,w="";for(let z=0;z<a-1;z++)w+=`
13
+ `),_=function(Mt){var At=Function;if(!(At instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof At} which is not a function`);var jt=vn(At.name||"unknownFunctionName",function(){});return jt.prototype=At.prototype,jt=new jt,(Mt=At.apply(jt,Mt))instanceof Object?Mt:jt}(Oe)(...Qe),A=`methodCaller<(${T.map(Mt=>Mt.name).join(", ")}) => ${B.name}>`,Js(vn(A,_))}function Pa(_){return _=er(_>>>0),_r(s[_])}function Ea(_,T){return T>>>=0,_=lr(_>>>0),T=lr(T),_r(_[T])}function Ys(_){9<(_>>>=0)&&(Fr[_+1]+=1)}function ka(){return _r([])}function Ca(_){_=lr(_>>>0);for(var T=Array(_.length),A=0;A<_.length;A++)T[A]=_[A];return _r(T)}function Sa(_){return _r(er(_>>>0))}function Fa(){return _r({})}function Ia(_){for(var T=lr(_>>>=0);T.length;){var A=T.pop();T.pop()(A)}cs(_)}function Zs(_,T,A){T>>>=0,A>>>=0,_=lr(_>>>0),T=lr(T),A=lr(A),_[T]=A}function Aa(_,T){return T>>>=0,_=(_=Kt(_>>>0,"_emval_take_value")).readValueFromPointer(T),_r(_)}function $a(_,T){_=-9007199254740992>_||9007199254740992<_?NaN:Number(_),T>>>=0,_=new Date(1e3*_),R()[T>>>2>>>0]=_.getUTCSeconds(),R()[T+4>>>2>>>0]=_.getUTCMinutes(),R()[T+8>>>2>>>0]=_.getUTCHours(),R()[T+12>>>2>>>0]=_.getUTCDate(),R()[T+16>>>2>>>0]=_.getUTCMonth(),R()[T+20>>>2>>>0]=_.getUTCFullYear()-1900,R()[T+24>>>2>>>0]=_.getUTCDay(),_=(_.getTime()-Date.UTC(_.getUTCFullYear(),0,1,0,0,0,0))/864e5|0,R()[T+28>>>2>>>0]=_}var yn=_=>_%4==0&&(_%100!=0||_%400==0),Tn=[0,31,60,91,121,152,182,213,244,274,305,335],Pn=[0,31,59,90,120,151,181,212,243,273,304,334];function En(_,T){_=-9007199254740992>_||9007199254740992<_?NaN:Number(_),T>>>=0,_=new Date(1e3*_),R()[T>>>2>>>0]=_.getSeconds(),R()[T+4>>>2>>>0]=_.getMinutes(),R()[T+8>>>2>>>0]=_.getHours(),R()[T+12>>>2>>>0]=_.getDate(),R()[T+16>>>2>>>0]=_.getMonth(),R()[T+20>>>2>>>0]=_.getFullYear()-1900,R()[T+24>>>2>>>0]=_.getDay();var A=(yn(_.getFullYear())?Tn:Pn)[_.getMonth()]+_.getDate()-1|0;R()[T+28>>>2>>>0]=A,R()[T+36>>>2>>>0]=-60*_.getTimezoneOffset(),A=new Date(_.getFullYear(),6,1).getTimezoneOffset();var B=new Date(_.getFullYear(),0,1).getTimezoneOffset();_=0|(A!=B&&_.getTimezoneOffset()==Math.min(B,A)),R()[T+32>>>2>>>0]=_}function Da(_){_>>>=0;var T=new Date(R()[_+20>>>2>>>0]+1900,R()[_+16>>>2>>>0],R()[_+12>>>2>>>0],R()[_+8>>>2>>>0],R()[_+4>>>2>>>0],R()[_>>>2>>>0],0),A=R()[_+32>>>2>>>0],B=T.getTimezoneOffset(),W=new Date(T.getFullYear(),6,1).getTimezoneOffset(),ie=new Date(T.getFullYear(),0,1).getTimezoneOffset(),ve=Math.min(ie,W);return 0>A?R()[_+32>>>2>>>0]=+(W!=ie&&ve==B):0<A!=(ve==B)&&(W=Math.max(ie,W),T.setTime(T.getTime()+6e4*((0<A?ve:W)-B))),R()[_+24>>>2>>>0]=T.getDay(),A=(yn(T.getFullYear())?Tn:Pn)[T.getMonth()]+T.getDate()-1|0,R()[_+28>>>2>>>0]=A,R()[_>>>2>>>0]=T.getSeconds(),R()[_+4>>>2>>>0]=T.getMinutes(),R()[_+8>>>2>>>0]=T.getHours(),R()[_+12>>>2>>>0]=T.getDate(),R()[_+16>>>2>>>0]=T.getMonth(),R()[_+20>>>2>>>0]=T.getYear(),_=T.getTime(),BigInt(isNaN(_)?-1:_/1e3)}function kn(_,T,A,B,W,ie,ve){return i?De(16,1,_,T,A,B,W,ie,ve):-52}function Jo(_,T,A,B,W,ie){if(i)return De(17,1,_,T,A,B,W,ie)}var eo={},Cn=()=>performance.timeOrigin+performance.now();function Sn(_,T){if(i)return De(18,1,_,T);if(eo[_]&&(clearTimeout(eo[_].id),delete eo[_]),!T)return 0;var A=setTimeout(()=>{delete eo[_],oe(()=>Wn(_,performance.timeOrigin+performance.now()))},T);return eo[_]={id:A,qc:T},0}function Fn(_,T,A,B){_>>>=0,T>>>=0,A>>>=0,B>>>=0;var W=new Date().getFullYear(),ie=new Date(W,0,1).getTimezoneOffset();W=new Date(W,6,1).getTimezoneOffset();var ve=Math.max(ie,W);ne()[_>>>2>>>0]=60*ve,R()[T>>>2>>>0]=+(ie!=W),_=(T=Oe=>{var Qe=Math.abs(Oe);return`UTC${0<=Oe?"-":"+"}${String(Math.floor(Qe/60)).padStart(2,"0")}${String(Qe%60).padStart(2,"0")}`})(ie),T=T(W),W<ie?(N(_,A,17),N(T,B,17)):(N(_,B,17),N(T,A,17))}var al=()=>Date.now(),Oa=1;function In(_,T,A){if(!(0<=_&&3>=_))return 28;if(_===0)_=Date.now();else{if(!Oa)return 52;_=performance.timeOrigin+performance.now()}return J[A>>>0>>>3]=BigInt(Math.round(1e6*_)),0}var mo=[],fo=(_,T)=>{mo.length=0;for(var A;A=z()[_++>>>0];){var B=A!=105;T+=(B&=A!=112)&&T%8?4:0,mo.push(A==112?ne()[T>>>2>>>0]:A==106?J[T>>>3]:A==105?R()[T>>>2>>>0]:Me()[T>>>3>>>0]),T+=B?8:4}return mo};function La(_,T,A){return _>>>=0,T=fo(T>>>0,A>>>0),de[_](...T)}function Ba(_,T,A){return _>>>=0,T=fo(T>>>0,A>>>0),de[_](...T)}var za=()=>{};function Ra(_,T){return C(ct(_>>>0,T>>>0))}var ja=()=>{throw Ve+=1,"unwind"};function Na(){return 4294901760}var Va=()=>navigator.hardwareConcurrency;function Wa(){return pe("Cannot use emscripten_pc_get_function without -sUSE_OFFSET_CONVERTER"),0}function An(_){_>>>=0;var T=z().length;if(_<=T||4294901760<_)return!1;for(var A=1;4>=A;A*=2){var B=T*(1+.2/A);B=Math.min(B,_+100663296);e:{B=(Math.min(4294901760,65536*Math.ceil(Math.max(_,B)/65536))-y.buffer.byteLength+65535)/65536|0;try{y.grow(B),_e();var W=1;break e}catch{}W=void 0}if(W)return!0}return!1}var ho=()=>(pe("Cannot use convertFrameToPC (needed by __builtin_return_address) without -sUSE_OFFSET_CONVERTER"),0),_s={},Yo=_=>{_.forEach(T=>{var A=ho();A&&(_s[A]=T)})};function Ua(){var _=Error().stack.toString().split(`
14
+ `);return _[0]=="Error"&&_.shift(),Yo(_),_s.Lb=ho(),_s.cc=_,_s.Lb}function $n(_,T,A){if(_>>>=0,T>>>=0,_s.Lb==_)var B=_s.cc;else(B=Error().stack.toString().split(`
15
+ `))[0]=="Error"&&B.shift(),Yo(B);for(var W=3;B[W]&&ho()!=_;)++W;for(_=0;_<A&&B[_+W];++_)R()[T+4*_>>>2>>>0]=ho();return _}var ms,Zo={},Ga=()=>{if(!ms){var _,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(_ in Zo)Zo[_]===void 0?delete T[_]:T[_]=Zo[_];var A=[];for(_ in T)A.push(`${_}=${T[_]}`);ms=A}return ms};function Dn(_,T){if(i)return De(19,1,_,T);_>>>=0,T>>>=0;var A=0;return Ga().forEach((B,W)=>{var ie=T+A;for(W=ne()[_+4*W>>>2>>>0]=ie,ie=0;ie<B.length;++ie)be()[W++>>>0]=B.charCodeAt(ie);be()[W>>>0]=0,A+=B.length+1}),0}function Ka(_,T){if(i)return De(20,1,_,T);_>>>=0,T>>>=0;var A=Ga();ne()[_>>>2>>>0]=A.length;var B=0;return A.forEach(W=>B+=W.length+1),ne()[T>>>2>>>0]=B,0}function On(_){return i?De(21,1,_):52}function en(_,T,A,B){return i?De(22,1,_,T,A,B):52}function Ln(_,T,A,B){return i?De(23,1,_,T,A,B):70}var qa=[null,[],[]];function Bn(_,T,A,B){if(i)return De(24,1,_,T,A,B);T>>>=0,A>>>=0,B>>>=0;for(var W=0,ie=0;ie<A;ie++){var ve=ne()[T>>>2>>>0],Oe=ne()[T+4>>>2>>>0];T+=8;for(var Qe=0;Qe<Oe;Qe++){var nt=z()[ve+Qe>>>0],Mt=qa[_];nt===0||nt===10?((_===1?w:C)(ks(Mt)),Mt.length=0):Mt.push(nt)}W+=Oe}return ne()[B>>>2>>>0]=W,0}i||function(){for(var _=s.numThreads-1;_--;)Ut();je.unshift(()=>{fe++,function(T){i?T():Promise.all(Ye.map(Rr)).then(T)}(()=>Pe())})}();for(var zn=Array(256),go=0;256>go;++go)zn[go]=String.fromCharCode(go);jr=zn,pr=s.BindingError=class extends Error{constructor(_){super(_),this.name="BindingError"}},s.InternalError=class extends Error{constructor(_){super(_),this.name="InternalError"}},Fr.push(0,1,void 0,1,null,1,!0,1,!1,1),s.count_emval_handles=()=>Fr.length/2-5-Yr.length;var ut,Ha=[ot,lt,Bs,Cs,k,Y,se,he,ke,Ze,dt,qe,Ct,St,ur,Rt,kn,Jo,Sn,Dn,Ka,On,en,Ln,Bn];(async function(){function _(B,W){return ut=B.exports,ut=function(){var ie=ut,ve={};for(let[Oe,Qe]of Object.entries(ie))ve[Oe]=typeof Qe=="function"?(...nt)=>{Qr.push(Oe);try{return Qe(...nt)}finally{re||(Qr.pop(),Ar&&fr===1&&Qr.length===0&&(fr=0,Ve+=1,nr(Kn),typeof Fibers<"u"&&Fibers.rc()))}}:Qe;return ve}(),ut=function(){var ie=ut,ve=Qe=>nt=>Qe(nt)>>>0,Oe=Qe=>()=>Qe()>>>0;return(ie=Object.assign({},ie)).Da=ve(ie.Da),ie.fb=Oe(ie.fb),ie.hb=ve(ie.hb),ie.tb=ve(ie.tb),ie.ub=Oe(ie.ub),ie.__cxa_get_exception_ptr=ve(ie.__cxa_get_exception_ptr),ie}(),yt.push(ut.ib),P=W,Pe(),ut}fe++;var T=xe();if(s.instantiateWasm)return new Promise(B=>{s.instantiateWasm(T,(W,ie)=>{_(W,ie),B(W.exports)})});if(i)return new Promise(B=>{Ke=W=>{var ie=new WebAssembly.Instance(W,xe());B(_(ie,W))}});V??=s.locateFile?s.locateFile?s.locateFile("ort-wasm-simd-threaded.jsep.wasm",v):v+"ort-wasm-simd-threaded.jsep.wasm":new URL("ort-wasm-simd-threaded.jsep.wasm",import.meta.url).href;try{var A=await async function(B){var W=V;if(!te&&typeof WebAssembly.instantiateStreaming=="function"&&!le(W))try{var ie=fetch(W,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(ie,B)}catch(ve){C(`wasm streaming compile failed: ${ve}`),C("falling back to ArrayBuffer instantiation")}return async function(ve,Oe){try{var Qe=await async function(nt){if(!te)try{var Mt=await u(nt);return new Uint8Array(Mt)}catch{}if(nt==V&&te)nt=new Uint8Array(te);else{if(!d)throw"both async and sync fetching of the wasm failed";nt=d(nt)}return nt}(ve);return await WebAssembly.instantiate(Qe,Oe)}catch(nt){C(`failed to asynchronously prepare wasm: ${nt}`),pe(nt)}}(W,B)}(T);return _(A.instance,A.module)}catch(B){return t(B),Promise.reject(B)}})();var Rn=_=>(Rn=ut.Da)(_),jn=()=>(jn=ut.Ea)();s._OrtInit=(_,T)=>(s._OrtInit=ut.Fa)(_,T),s._OrtGetLastError=(_,T)=>(s._OrtGetLastError=ut.Ga)(_,T),s._OrtCreateSessionOptions=(_,T,A,B,W,ie,ve,Oe,Qe,nt)=>(s._OrtCreateSessionOptions=ut.Ha)(_,T,A,B,W,ie,ve,Oe,Qe,nt),s._OrtAppendExecutionProvider=(_,T,A,B,W)=>(s._OrtAppendExecutionProvider=ut.Ia)(_,T,A,B,W),s._OrtAddFreeDimensionOverride=(_,T,A)=>(s._OrtAddFreeDimensionOverride=ut.Ja)(_,T,A),s._OrtAddSessionConfigEntry=(_,T,A)=>(s._OrtAddSessionConfigEntry=ut.Ka)(_,T,A),s._OrtReleaseSessionOptions=_=>(s._OrtReleaseSessionOptions=ut.La)(_),s._OrtCreateSession=(_,T,A)=>(s._OrtCreateSession=ut.Ma)(_,T,A),s._OrtReleaseSession=_=>(s._OrtReleaseSession=ut.Na)(_),s._OrtGetInputOutputCount=(_,T,A)=>(s._OrtGetInputOutputCount=ut.Oa)(_,T,A),s._OrtGetInputOutputMetadata=(_,T,A,B)=>(s._OrtGetInputOutputMetadata=ut.Pa)(_,T,A,B),s._OrtFree=_=>(s._OrtFree=ut.Qa)(_),s._OrtCreateTensor=(_,T,A,B,W,ie)=>(s._OrtCreateTensor=ut.Ra)(_,T,A,B,W,ie),s._OrtGetTensorData=(_,T,A,B,W)=>(s._OrtGetTensorData=ut.Sa)(_,T,A,B,W),s._OrtReleaseTensor=_=>(s._OrtReleaseTensor=ut.Ta)(_),s._OrtCreateRunOptions=(_,T,A,B)=>(s._OrtCreateRunOptions=ut.Ua)(_,T,A,B),s._OrtAddRunConfigEntry=(_,T,A)=>(s._OrtAddRunConfigEntry=ut.Va)(_,T,A),s._OrtReleaseRunOptions=_=>(s._OrtReleaseRunOptions=ut.Wa)(_),s._OrtCreateBinding=_=>(s._OrtCreateBinding=ut.Xa)(_),s._OrtBindInput=(_,T,A)=>(s._OrtBindInput=ut.Ya)(_,T,A),s._OrtBindOutput=(_,T,A,B)=>(s._OrtBindOutput=ut.Za)(_,T,A,B),s._OrtClearBoundOutputs=_=>(s._OrtClearBoundOutputs=ut._a)(_),s._OrtReleaseBinding=_=>(s._OrtReleaseBinding=ut.$a)(_),s._OrtRunWithBinding=(_,T,A,B,W)=>(s._OrtRunWithBinding=ut.ab)(_,T,A,B,W),s._OrtRun=(_,T,A,B,W,ie,ve,Oe)=>(s._OrtRun=ut.bb)(_,T,A,B,W,ie,ve,Oe),s._OrtEndProfiling=_=>(s._OrtEndProfiling=ut.cb)(_),s._JsepOutput=(_,T,A)=>(s._JsepOutput=ut.db)(_,T,A),s._JsepGetNodeName=_=>(s._JsepGetNodeName=ut.eb)(_);var to=()=>(to=ut.fb)(),Zr=s._free=_=>(Zr=s._free=ut.gb)(_),wo=s._malloc=_=>(wo=s._malloc=ut.hb)(_),bo=(_,T,A,B,W,ie)=>(bo=ut.kb)(_,T,A,B,W,ie),Nn=()=>(Nn=ut.lb)(),Vn=(_,T,A,B,W)=>(Vn=ut.mb)(_,T,A,B,W),tn=_=>(tn=ut.nb)(_),rn=_=>(rn=ut.ob)(_),Wn=(_,T)=>(Wn=ut.pb)(_,T),sn=()=>(sn=ut.qb)(),Un=(_,T)=>(Un=ut.rb)(_,T),Mo=_=>(Mo=ut.sb)(_),xo=_=>(xo=ut.tb)(_),on=()=>(on=ut.ub)(),Gn=s.dynCall_ii=(_,T)=>(Gn=s.dynCall_ii=ut.vb)(_,T),nn=_=>(nn=ut.wb)(_),Kn=()=>(Kn=ut.xb)(),qn=_=>(qn=ut.yb)(_),an=()=>(an=ut.zb)();return s.stackSave=()=>on(),s.stackRestore=_=>Mo(_),s.stackAlloc=_=>xo(_),s.setValue=function(_,T,A="i8"){switch(A.endsWith("*")&&(A="*"),A){case"i1":case"i8":be()[_>>>0]=T;break;case"i16":D()[_>>>1>>>0]=T;break;case"i32":R()[_>>>2>>>0]=T;break;case"i64":J[_>>>3]=BigInt(T);break;case"float":Ce()[_>>>2>>>0]=T;break;case"double":Me()[_>>>3>>>0]=T;break;case"*":ne()[_>>>2>>>0]=T;break;default:pe(`invalid type for setValue: ${A}`)}},s.getValue=function(_,T="i8"){switch(T.endsWith("*")&&(T="*"),T){case"i1":case"i8":return be()[_>>>0];case"i16":return D()[_>>>1>>>0];case"i32":return R()[_>>>2>>>0];case"i64":return J[_>>>3];case"float":return Ce()[_>>>2>>>0];case"double":return Me()[_>>>3>>>0];case"*":return ne()[_>>>2>>>0];default:pe(`invalid type for getValue: ${T}`)}},s.UTF8ToString=ct,s.stringToUTF8=N,s.lengthBytesUTF8=X,function _(){if(0<fe)Se=_;else if(i)r(s),Z();else{for(;0<je.length;)je.shift()(s);0<fe?Se=_:(s.calledRun=!0,re||(Z(),r(s)))}}(),s.PTR_SIZE=4,o}),cx=Kc,dg=globalThis.self?.name?.startsWith("em-pthread"),dg&&Kc()}),qc,Rd,ug,ts,dx,zi,pg,_g,Hc,mg,Qc,ux,Xc,px,nu=ze(()=>{"use strict";ou(),qc=typeof location>"u"?void 0:location.origin,Rd=import.meta.url>"file:"&&import.meta.url<"file;",ug=()=>{if(Rd){let e=URL;return new URL(new e("ort.bundle.min.mjs",import.meta.url).href,qc).href}return import.meta.url},ts=ug(),dx=()=>{if(ts&&!ts.startsWith("blob:"))return ts.substring(0,ts.lastIndexOf("/")+1)},zi=(e,r)=>{try{let t=r??ts;return(t?new URL(e,t):new URL(e)).origin===qc}catch{return!1}},pg=(e,r)=>{let t=r??ts;try{return(t?new URL(e,t):new URL(e)).href}catch{return}},_g=(e,r)=>`${r??"./"}${e}`,Hc=async e=>{let r=await(await fetch(e,{credentials:"same-origin"})).blob();return URL.createObjectURL(r)},mg=async e=>(await import(e)).default,Qc=(uP(),Ma(ax)).default,ux=async()=>{if(!ts)throw new Error("Failed to load proxy worker: cannot determine the script source URL.");if(zi(ts))return[void 0,Qc()];let e=await Hc(ts);return[e,Qc(e)]},Xc=(pP(),Ma(lx)).default,px=async(e,r,t)=>{if(!e&&!r&&Xc&&ts&&zi(ts))return[void 0,Xc];{let s="ort-wasm-simd-threaded.jsep.mjs",o=e??pg(s,r),n=t&&o&&!zi(o,r),a=n?await Hc(o):o??_g(s,r);return[n?a:void 0,await mg(a)]}}}),Jc,Ri,aa,Yc,fg,hg,gg,au,Ht,qo=ze(()=>{"use strict";nu(),Ri=!1,aa=!1,Yc=!1,fg=()=>{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}},hg=()=>{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}},gg=()=>{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}},au=async e=>{if(Ri)return Promise.resolve();if(aa)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(Yc)throw new Error("previous call to 'initializeWebAssembly()' failed.");aa=!0;let r=e.initTimeout,t=e.numThreads;if(e.simd!==!1){if(e.simd==="relaxed"){if(!gg())throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.")}else if(!hg())throw new Error("WebAssembly SIMD is not supported in the current environment.")}let s=fg();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,n=typeof o=="string"?o:void 0,a=o?.mjs,i=a?.href??a,l=o?.wasm,c=l?.href??l,p=e.wasmBinary,[u,d]=await px(i,n,t>1),h=!1,f=[];if(r>0&&f.push(new Promise(v=>{setTimeout(()=>{h=!0,v()},r)})),f.push(new Promise((v,F)=>{let x={numThreads:t};if(p)x.wasmBinary=p;else if(c||n)x.locateFile=w=>c??n+w;else if(i&&i.indexOf("blob:")!==0)x.locateFile=w=>new URL(w,i).href;else if(u){let w=dx();w&&(x.locateFile=C=>w+C)}d(x).then(w=>{aa=!1,Ri=!0,Jc=w,v(),u&&URL.revokeObjectURL(u)},w=>{aa=!1,Yc=!0,F(w)})})),await Promise.race(f),h)throw new Error(`WebAssembly backend initializing failed due to timeout: ${r}ms`)},Ht=()=>{if(Ri&&Jc)return Jc;throw new Error("WebAssembly is not initialized yet.")}}),vs,Zi,Wt,iu=ze(()=>{"use strict";qo(),vs=(e,r)=>{let t=Ht(),s=t.lengthBytesUTF8(e)+1,o=t._malloc(s);return t.stringToUTF8(e,o,s),r.push(o),o},Zi=(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,n])=>{let a=r?r+o:o;if(typeof n=="object")Zi(n,a+".",t,s);else if(typeof n=="string"||typeof n=="number")s(a,n.toString());else if(typeof n=="boolean")s(a,n?"1":"0");else throw new Error(`Can't handle extra config type: ${typeof n}`)})},Wt=e=>{let r=Ht(),t=r.stackSave();try{let s=r.PTR_SIZE,o=r.stackAlloc(2*s);r._OrtGetLastError(o,o+s);let n=Number(r.getValue(o,s===4?"i32":"i64")),a=r.getValue(o+s,"*"),i=a?r.UTF8ToString(a):"";throw new Error(`${e} ERROR_CODE: ${n}, ERROR_MESSAGE: ${i}`)}finally{r.stackRestore(t)}}}),_x,_P=ze(()=>{"use strict";qo(),iu(),_x=e=>{let r=Ht(),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 n=0;return e?.tag!==void 0&&(n=vs(e.tag,s)),t=r._OrtCreateRunOptions(o.logSeverityLevel,o.logVerbosityLevel,!!o.terminate,n),t===0&&Wt("Can't create run options."),e?.extra!==void 0&&Zi(e.extra,"",new WeakSet,(a,i)=>{let l=vs(a,s),c=vs(i,s);r._OrtAddRunConfigEntry(t,l,c)!==0&&Wt(`Can't set a run config entry: ${a} - ${i}.`)}),[t,s]}catch(n){throw t!==0&&r._OrtReleaseRunOptions(t),s.forEach(a=>r._free(a)),n}}}),wg,bg,Mg,ia,xg,mx,mP=ze(()=>{"use strict";qo(),iu(),wg=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}`)}},bg=e=>{switch(e){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${e}`)}},Mg=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)},ia=(e,r,t,s)=>{let o=vs(r,s),n=vs(t,s);Ht()._OrtAddSessionConfigEntry(e,o,n)!==0&&Wt(`Can't set a session config entry: ${r} - ${t}.`)},xg=async(e,r,t)=>{for(let s of r){let o=typeof s=="string"?s:s.name,n=[];switch(o){case"webnn":if(o="WEBNN",typeof s!="string"){let p=s?.deviceType;p&&ia(e,"deviceType",p,t)}break;case"webgpu":if(o="JS",typeof s!="string"){let p=s;if(p?.preferredLayout){if(p.preferredLayout!=="NCHW"&&p.preferredLayout!=="NHWC")throw new Error(`preferredLayout must be either 'NCHW' or 'NHWC': ${p.preferredLayout}`);ia(e,"preferredLayout",p.preferredLayout,t)}}break;case"wasm":case"cpu":continue;default:throw new Error(`not supported execution provider: ${o}`)}let a=vs(o,t),i=n.length,l=0,c=0;if(i>0){l=Ht()._malloc(i*Ht().PTR_SIZE),t.push(l),c=Ht()._malloc(i*Ht().PTR_SIZE),t.push(c);for(let p=0;p<i;p++)Ht().setValue(l+p*Ht().PTR_SIZE,n[p][0],"*"),Ht().setValue(c+p*Ht().PTR_SIZE,n[p][1],"*")}await Ht()._OrtAppendExecutionProvider(e,a,l,c,i)!==0&&Wt(`Can't append execution provider: ${o}.`)}},mx=async e=>{let r=Ht(),t=0,s=[],o=e||{};Mg(o);try{let n=wg(o.graphOptimizationLevel??"all"),a=bg(o.executionMode??"sequential"),i=typeof o.logId=="string"?vs(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 p=typeof o.optimizedModelFilePath=="string"?vs(o.optimizedModelFilePath,s):0;if(t=r._OrtCreateSessionOptions(n,!!o.enableCpuMemArena,!!o.enableMemPattern,a,!!o.enableProfiling,0,i,l,c,p),t===0&&Wt("Can't create session options."),o.executionProviders&&await xg(t,o.executionProviders,s),o.enableGraphCapture!==void 0){if(typeof o.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${o.enableGraphCapture}`);ia(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 h=vs(u,s);r._OrtAddFreeDimensionOverride(t,h,d)!==0&&Wt(`Can't set a free dimension override: ${u} - ${d}.`)}return o.extra!==void 0&&Zi(o.extra,"",new WeakSet,(u,d)=>{ia(t,u,d,s)}),[t,s]}catch(n){throw t!==0&&r._OrtReleaseSessionOptions(t)!==0&&Wt("Can't release session options."),s.forEach(a=>r._free(a)),n}}}),gn,Ks,Vo,lu,el,cu,du,jd,wt=ze(()=>{"use strict";gn=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}`)}},Ks=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}`)}},Vo=(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,n)=>o*n,1);return t>0?Math.ceil(s*t):void 0},lu=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}`)}},el=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}`)}},cu=e=>e==="float32"||e==="float16"||e==="int32"||e==="int64"||e==="uint32"||e==="uint8"||e==="bool"||e==="uint4"||e==="int4",du=e=>e==="float32"||e==="float16"||e==="int32"||e==="int64"||e==="uint32"||e==="uint64"||e==="int8"||e==="uint8"||e==="bool"||e==="uint4"||e==="int4",jd=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}`)}}}),uu,fx=ze(()=>{"use strict";ou(),uu=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(),n;try{n=new ArrayBuffer(s)}catch(i){if(i instanceof RangeError){let l=Math.ceil(s/65536);n=new WebAssembly.Memory({initial:l,maximum:l}).buffer}else throw i}let a=0;for(;;){let{done:i,value:l}=await o.read();if(i)break;let c=l.byteLength;new Uint8Array(n,a,c).set(l),a+=c}return new Uint8Array(n,0,s)}}else return e instanceof Blob?new Uint8Array(await e.arrayBuffer()):e instanceof Uint8Array?e:new Uint8Array(e)}}),vg,yg,Tg,Pg,pu,Eg,$t,qs=ze(()=>{"use strict";wt(),vg=["V","I","W","E","F"],yg=(e,r)=>{console.log(`[${vg[e]},${new Date().toISOString()}]${r}`)},pu=(e,r)=>{Tg=e,Pg=r},Eg=(e,r)=>{let t=el(e),s=el(Tg);t>=s&&yg(t,typeof r=="function"?r():r)},$t=(...e)=>{Pg&&Eg(...e)}}),kg,bn,we,tl,hx,gx,wx,Tt=ze(()=>{"use strict";kg=class{static calcMatMulShape(e,r){return e[1]!==r[0]?void 0:[e[0],r[1]]}},bn=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 n=Math.max(e.length,r.length),a=new Array(n);if(t){if(s<2||o<2)return;let i=kg.calcMatMulShape([e[s-2],e[s-1]],[r[o-2],r[o-1]]);if(i===void 0)return;[a[n-2],a[n-1]]=i}for(let i=t?3:1;i<=n;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 p=Math.max(l,c);if(l&&c)a[n-i]=Math.max(l,c);else{if(p>1)return;a[n-i]=0}}return a}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}},we=class Ji{static size(r){return Ji.getSizeFromDimensionRange(r,0,r.length)}static convertShape(r,t=4){let s=r.length;if(s===0)return[];let o=new Array(s),n=s-1;for(;n>=0;){if(r[n]%t===0){o[n]=r[n]/t;break}if(t%r[n]!==0)throw new Error("cannot convert shape");o[n]=1,t/=r[n],n--}for(n--;n>=0;n--)o[n]=r[n];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 Ji.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 Ji.getSizeFromDimensionRange(r,0,t)}static getSizeFromDimensionRange(r,t,s){let o=1;for(let n=t;n<s;n++){if(r[n]<0)throw new Error("cannot get valid size from specified dimension range. Most likely the range contains negative values in them.");o*=Number(r[n])}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,n)=>o+t[n]+t[n+s])}static areEqual(r,t){return r.length!==t.length?!1:r.every((s,o)=>s===t[o])}},tl=class ha{static adjustPoolAttributes(r,t,s,o,n,a){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<n.length){if(n[i]<0)throw new Error("dilations should be greater than or equal to 1")}else n.push(1);for(let i=0;i<s.length*2;i++)if(i<a.length){if(a[i]<0)throw new Error("pad should be greater than or equal to 1")}else a.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(a[i]>=s[i]||a[i+s.length]>=s[i])throw new Error("pads should be smaller than kernel")}}static adjustPadsBasedOnAutoPad(r,t,s,o,n,a,i){if(i){if(n.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++)ha.adjustPadAndReturnShape(r[l+(a?1:2)],t[l],s[l],o[l],n,l,l+r.length-2,i)}}static computePoolOutputShape(r,t,s,o,n,a,i){if(t.length<=0)throw new Error("input shape must be of size greater than 0");let l=[t[0],t[1]];return ha.computeShapeHelper(r,t,l,s,o,n,a,i),l}static computeConvOutputShape(r,t,s,o,n,a,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 ha.computeShapeHelper(!1,r,l,s,o,n,a,i),l}static computeShapeHelper(r,t,s,o,n,a,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(ha.adjustPadAndReturnShape(t[c+2],o[c],n[c],a[c],i,c,c+t.length-2,l))}static adjustPadAndReturnShape(r,t,s,o,n,a,i,l){let c=s*(o-1)+1;if(l&&l!=="NOTSET")switch(l){case"VALID":return n[a]=0,n[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 p=((r+t-1)/t-1)*t+o-r;return n[a]=Math.floor(l==="SAME_LOWER"?(p+1)/2:p/2),n[i]=p-n[a],Math.floor((r+p-o)/t+1)}default:throw new Error("Unsupported AutoPad type")}else return Math.floor((r+n[a]+n[i]-c)/t+1)}},hx=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 n,a,i;r?(n=e[1],a=e[0]):(n=e[0],a=e[1]);let l=-1;if(s?(i=t[0],l=1):(i=t[1],l=0),t[l]!==a)throw new Error("dimension mismatch");if(n<=0||i<=0||a<=0)throw new Error("invalid shape specified");if(o&&!bn.isValidBroadcast(o,[n,i]))throw new Error("gemm: invalid bias shape for broadcast");return[n,i,a]}},gx=-34028234663852886e22,wx=34028234663852886e22}),_u,bx=ze(()=>{"use strict";wt(),_u=(e,r)=>new(lu(r))(e)}),Nd,Zc,Cg,ed,Sg,td,rd,sd,Fg,Mx,fP=ze(()=>{"use strict";qs(),Nd=(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 n=0;n<t;n++){let a=s[n];if(a>2147483647n||a<-2147483648n)throw new Error(`Overflow occurred when converting BigInt to Int32 at index ${n}: ${a}`);o[n]=Number(a)}return r?new Uint8Array(o.buffer):o},Zc=(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},Cg=1,ed=()=>Cg++,Sg=new Map([["float32",32],["float16",16],["int32",32],["uint32",32],["int64",64],["uint64",64],["int8",8],["uint8",8],["int4",4],["uint4",4]]),td=(e,r)=>{let t=Sg.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},rd=class{constructor(e){this.shouldConvertInt64toInt32=!1,this.isInt64ToInt32Converted=!1;let{sessionId:r,context:t,tensor:s,dataType:o,shape:n,shouldConvertInt64toInt32:a=!1}=e;this.sessionId=r,this.mlContext=t,this.mlTensor=s,this.dataType=o,this.tensorShape=n,this.shouldConvertInt64toInt32=a}get tensor(){return this.mlTensor}get type(){return this.dataType}get shape(){return this.tensorShape}get byteLength(){return td(this.dataType,this.tensorShape)}destroy(){$t("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=Zc(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}},sd=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,n=this.tensorManager.getMLContext(e),a=o==="int64"&&!n.opSupportLimits().input.dataTypes.includes("int64");if(a&&(o="int32",$t("verbose",()=>"[WebNN] TensorIdTracker.ensureTensor: convert dataType from int64 to int32")),this.wrapper){if(this.wrapper.canReuseTensor(n,o,t))return this.wrapper.tensor;if(s){if(this.wrapper.byteLength!==td(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,a),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=Nd(e,!0),this.wrapper.setIsInt64ToInt32Converted(!0)),r.byteLength===this.wrapper.byteLength){this.wrapper.write(r);return}else $t("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?Zc(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)}},Fg=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=ed();return this.tensorTrackersById.set(e,new sd(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){$t("verbose",()=>`[WebNN] TensorManager.ensureTensor {tensorId: ${r}, dataType: ${t}, shape: ${s}, copyOld: ${o}}`);let n=this.tensorTrackersById.get(r);if(!n)throw new Error("Tensor not found.");return n.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){$t("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),n=ed(),a=new rd({sessionId:e,context:o,tensor:r,dataType:t,shape:s});return this.tensorTrackersById.set(n,new sd(this,a)),this.externalTensors.add(a),n}async getCachedTensor(e,r,t,s,o,n,a=!1){let i=this.getMLContext(e);for(let[c,p]of this.freeTensors.entries())if(p.canReuseTensor(i,r,t)){$t("verbose",()=>`[WebNN] Reusing tensor {dataType: ${r}, shape: ${t}}`);let u=this.freeTensors.splice(c,1)[0];return u.sessionId=e,u}$t("verbose",()=>`[WebNN] MLContext.createTensor {dataType: ${r}, shape: ${t}}`);let l=await i.createTensor({dataType:r,shape:t,dimensions:t,usage:s,writable:o,readable:n});return new rd({sessionId:e,context:i,tensor:l,dataType:r,shape:t,shouldConvertInt64toInt32:a})}releaseTensor(e){this.externalTensors.has(e)&&this.externalTensors.delete(e),this.freeTensors.push(e)}},Mx=(...e)=>new Fg(...e)}),ji,Ig,xx,hP=ze(()=>{"use strict";wt(),qo(),bx(),fP(),qs(),ji=new Map([[1,"float32"],[10,"float16"],[6,"int32"],[12,"uint32"],[7,"int64"],[13,"uint64"],[22,"int4"],[21,"uint4"],[3,"int8"],[2,"uint8"],[9,"uint8"]]),Ig=(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,n)=>o===s[n]&&e[o]===r[o])},xx=class{constructor(e){this.tensorManager=Mx(this),this.mlContextBySessionId=new Map,this.sessionIdsByMLContext=new Map,this.mlContextCache=[],this.sessionGraphInputs=new Map,this.temporaryGraphInputs=[],this.temporarySessionTensorIds=new Map,pu(e.logLevel,!!e.debug)}get currentSessionId(){if(this.activeSessionId===void 0)throw new Error("No active session");return this.activeSessionId}onRunStart(e){$t("verbose",()=>`[WebNN] onRunStart {sessionId: ${e}}`),this.activeSessionId=e}onRunEnd(e){$t("verbose",()=>`[WebNN] onRunEnd {sessionId: ${e}}`);let r=this.temporarySessionTensorIds.get(e);if(r){for(let t of r)$t("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=>Ig(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){$t("verbose",()=>`[WebNN] releaseTensorId {tensorId: ${e}}`),this.tensorManager.releaseTensorId(e)}async ensureTensor(e,r,t,s,o){let n=ji.get(t);if(!n)throw new Error(`Unsupported ONNX data type: ${t}`);return this.tensorManager.ensureTensor(e??this.currentSessionId,r,n,s,o)}async createTemporaryTensor(e,r,t){$t("verbose",()=>`[WebNN] createTemporaryTensor {onnxDataType: ${r}, shape: ${t}}`);let s=ji.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 n=this.temporarySessionTensorIds.get(e);return n?n.push(o):this.temporarySessionTensorIds.set(e,[o]),o}uploadTensor(e,r){if(!Ht().shouldTransferToMLTensor)throw new Error("Trying to upload to a MLTensor while shouldTransferToMLTensor is false");$t("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 _u(t,r)}}registerMLTensor(e,r,t,s){let o=ji.get(t);if(!o)throw new Error(`Unsupported ONNX data type: ${t}`);let n=this.tensorManager.registerTensor(e,r,o,s);return $t("verbose",()=>`[WebNN] registerMLTensor {tensor: ${r}, dataType: ${o}, dimensions: ${s}} -> {tensorId: ${n}}`),n}registerMLConstant(e,r,t,s,o,n,a=!1){if(!n)throw new Error("External mounted files are not available.");let i=e;e.startsWith("./")&&(i=e.substring(2));let l=n.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,p;switch(o.dataType){case"float32":p=new Float32Array(c);break;case"float16":p=typeof Float16Array<"u"&&Float16Array.from?new Float16Array(c):new Uint16Array(c);break;case"int32":p=new Int32Array(c);break;case"uint32":p=new Uint32Array(c);break;case"int64":a?(p=Nd(new Uint8Array(c),!1),o.dataType="int32"):p=new BigInt64Array(c);break;case"uint64":p=new BigUint64Array(c);break;case"int8":p=new Int8Array(c);break;case"int4":case"uint4":case"uint8":p=new Uint8Array(c);break;default:throw new Error(`Unsupported data type: ${o.dataType} in creating WebNN Constant from external data.`)}return $t("verbose",()=>`[WebNN] registerMLConstant {dataType: ${o.dataType}, shape: ${o.shape}}} ${a?"(Note: it was int64 data type and registered to int32 as workaround)":""}`),s.constant(o,p)}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(){}}}),mu=ze(()=>{"use strict"}),od,Ni,Vi,Ag,$g,nd,Vd,Dg,vx,gP=ze(()=>{"use strict";qs(),mu(),od=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]]),Ni=[],Vi=e=>Math.ceil(Number(e)/16)*16,Ag=e=>{for(let r=0;r<Ni.length;r++){let t=Ni[r];if(e<=t)return t}return Math.ceil(e/16)*16},$g=1,nd=()=>$g++,Vd=async(e,r,t,s)=>{let o=Vi(t),n=e.device.createBuffer({size:o,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ});try{let a=e.getCommandEncoder();e.endComputePass(),a.copyBufferToBuffer(r,0,n,0,o),e.flush(),await n.mapAsync(GPUMapMode.READ);let i=n.getMappedRange();if(s){let l=s();return l.set(new Uint8Array(i,0,t)),l}else return new Uint8Array(i.slice(0,t))}finally{n.destroy()}},Dg=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 od)Ni.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,n=Vi(o),a=this.storageCache.get(e);if(!a)throw new Error("gpu data for uploading does not exist");if(Number(a.originalSize)!==o)throw new Error(`inconsistent data size. gpu data size=${a.originalSize}, data size=${o}`);let i=this.backend.device.createBuffer({mappedAtCreation:!0,size:n,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,a.gpuData.buffer,0,n),this.backend.device.queue.submit([c.finish()]),i.destroy(),$t("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=Vi(t.originalSize),n=this.backend.getCommandEncoder();this.backend.endComputePass(),n.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 $t("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=nd();return this.storageCache.set(s,{gpuData:{id:s,type:0,buffer:e},originalSize:r}),$t("verbose",()=>`[WebGPU] GpuDataManager.registerExternalBuffer(size=${r}) => id=${s}, registered.`),s}unregisterExternalBuffer(e){e!==void 0&&(this.storageCache.delete(e),$t("verbose",()=>`[WebGPU] GpuDataManager.unregisterExternalBuffer() => id=${e}`))}create(e,r=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST){let t=Ag(e),s,o=(r&GPUBufferUsage.STORAGE)===GPUBufferUsage.STORAGE,n=(r&GPUBufferUsage.UNIFORM)===GPUBufferUsage.UNIFORM;if(o||n){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 a={id:nd(),type:0,buffer:s};return this.storageCache.set(a.id,{gpuData:a,originalSize:Number(e)}),$t("verbose",()=>`[WebGPU] GpuDataManager.create(size=${e}) => id=${a.id}`),a}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 $t("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 Vd(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=od.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&&($t("warning",()=>"[WebGPU] Clearing webgpu buffer cache"),this.storageCache.forEach(t=>{t.gpuData.buffer.destroy()}),this.storageCache=new Map)}},vx=(...e)=>new Dg(...e)}),Og,Bt,ir=ze(()=>{"use strict";Og=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}},Bt=e=>new Og(e)}),Mn,Wi,kr,qr,pt,or,Wd,wn,co,it,la,ye,at,yx,fu,Lg,Tx,Et=ze(()=>{"use strict";wt(),Tt(),Mn=64,Wi=(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}`)}},kr=(e,r=1)=>{let t=Wi(e,r);return typeof t=="string"?t:t[0]},qr=(e,r=1)=>{let t=Wi(e,r);return typeof t=="string"?t:t[1]},pt=(...e)=>{let r=[];return e.forEach(t=>{t.length!==0&&r.push({type:12,data:t},{type:12,data:we.computeStrides(t)})}),r},or=e=>e%4===0?4:e%2===0?2:1,Wd=(e="f32",r,t="0")=>!r||r===1?`${e}(${t})`:`vec${r}<${e}>(${t})`,wn=(e,r,t)=>e==="f32"?t:r===1?`f32(${t})`:`vec${r}<f32>(${t})`,co=(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,it=(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,la=(e,r,t,s,o)=>{let n=typeof t=="number",a=n?t:t.length,i=[...new Array(a).keys()],l=a<2?"u32":a<=4?`vec${a}<u32>`:`array<u32, ${a}>`,c=Wi(r,o),p=typeof c=="string"?c:c[1],u=typeof c=="string"?c:c[0],d={indices:l,value:p,storage:u,tensor:r},h=z=>typeof z=="string"?z:`${z}u`,f={offsetToIndices:!1,indicesToOffset:!1,broadcastedIndicesToOffset:!1,set:!1,setByIndices:!1,get:!1,getByIndices:!1},v=n?"uniforms.":"",F=`${v}${e}_shape`,x=`${v}${e}_strides`,w="";for(let z=0;z<a-1;z++)w+=`
17
17
  let dim${z} = current / ${it(x,z,a)};
18
18
  let rest${z} = current % ${it(x,z,a)};
19
19
  indices[${z}] = dim${z};
@@ -42,7 +42,7 @@ var ET=Object.defineProperty;var Eo=(e=>typeof require<"u"?require:typeof Proxy<
42
42
  fn set_${e}(${z}, value: ${p}) {
43
43
  set_${e}ByIndices(${E(D)}, value);
44
44
  }`})();return{impl:()=>{let z=[],D=!1;return f.offsetToIndices&&(z.push(C),D=!0),f.indicesToOffset&&(z.push(I),D=!0),f.broadcastedIndicesToOffset&&(Object.values(G).forEach(K=>z.push(K)),D=!0),f.set&&(z.push(be),D=!0),f.setByIndices&&(z.push(le),D=!0),f.get&&(z.push(H),D=!0),f.getByIndices&&(z.push(Q),D=!0),!n&&D&&z.unshift(`const ${F} = ${d.indices}(${t.join(",")});`,`const ${x} = ${d.indices}(${we.computeStrides(t).join(",")});`),z.join(`
45
- `)},type:d,offsetToIndices:y,indicesToOffset:g,broadcastedIndicesToOffset:q,indices:E,indicesGet:$,indicesSet:L,set:(...z)=>{if(z.length!==a+1)throw new Error(`indices length must be ${a}`);let D=z[a];if(typeof D!="string")throw new Error("value must be string");let K=z.slice(0,a).map(h).join(",");return a===0?O("0u",D):a===1?O(K[0],D):(f.set=!0,f.setByIndices=!0,f.indicesToOffset=!0,`set_${e}(${K}, ${D})`)},setByOffset:O,setByIndices:(z,D)=>a<2?O(z,D):(f.setByIndices=!0,f.indicesToOffset=!0,`set_${e}ByIndices(${z}, ${D});`),get:te,getByOffset:J,getByIndices:re,usage:s,name:e,strides:x,shape:F,rank:a}},ye=(e,r,t,s=1)=>la(e,r,t,"input",s),at=(e,r,t,s=1)=>la(e,r,t,"output",s),vx=(e,r,t)=>la(e,r,t,"atomicOutput",1),fu=(e,r,t,s=1)=>la(e,r,t,"internal",s),Og=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=xn){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,n=o?`@builtin(global_invocation_id) global_id : vec3<u32>,
45
+ `)},type:d,offsetToIndices:y,indicesToOffset:g,broadcastedIndicesToOffset:q,indices:E,indicesGet:$,indicesSet:L,set:(...z)=>{if(z.length!==a+1)throw new Error(`indices length must be ${a}`);let D=z[a];if(typeof D!="string")throw new Error("value must be string");let K=z.slice(0,a).map(h).join(",");return a===0?O("0u",D):a===1?O(K[0],D):(f.set=!0,f.setByIndices=!0,f.indicesToOffset=!0,`set_${e}(${K}, ${D})`)},setByOffset:O,setByIndices:(z,D)=>a<2?O(z,D):(f.setByIndices=!0,f.indicesToOffset=!0,`set_${e}ByIndices(${z}, ${D});`),get:te,getByOffset:J,getByIndices:re,usage:s,name:e,strides:x,shape:F,rank:a}},ye=(e,r,t,s=1)=>la(e,r,t,"input",s),at=(e,r,t,s=1)=>la(e,r,t,"output",s),yx=(e,r,t)=>la(e,r,t,"atomicOutput",1),fu=(e,r,t,s=1)=>la(e,r,t,"internal",s),Lg=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=Mn){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,n=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 ET=Object.defineProperty;var Eo=(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])}},yx=(e,r)=>new Og(e,r)}),Lg,ad,Bg,zg,Rg,jg,ss,Tx,Px,uo=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),Lg=(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}`)},ad=(e,r)=>r.length!==0?r:[...new Array(e).keys()].reverse(),Bg=(e,r)=>we.sortBasedOnPerm(e,ad(e.length,r)),zg=(e,r,t,s)=>{let o=`fn perm(i: ${s.type.indices}) -> ${t.type.indices} {
64
- var a: ${t.type.indices};`;for(let n=0;n<r;++n)o+=`a[${e[n]}]=i[${n}];`;return o+="return a;}"},Rg=(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}},jg=(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},ss=(e,r)=>{let t=e.dataType,s=e.dims.length,o=ad(s,r),n=Bg(e.dims,o),a=e.dims,i=n,l=s<2||jg(o,e.dims),c;if(l)return c=f=>{let v=ye("input",t,a,4),F=at("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])}},Tx=(e,r)=>new Lg(e,r)}),Bg,ad,zg,Rg,jg,Ng,ss,Px,Ex,uo=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),Bg=(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}`)},ad=(e,r)=>r.length!==0?r:[...new Array(e).keys()].reverse(),zg=(e,r)=>we.sortBasedOnPerm(e,ad(e.length,r)),Rg=(e,r,t,s)=>{let o=`fn perm(i: ${s.type.indices}) -> ${t.type.indices} {
64
+ var a: ${t.type.indices};`;for(let n=0;n<r;++n)o+=`a[${e[n]}]=i[${n}];`;return o+="return a;}"},jg=(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}},Ng=(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},ss=(e,r)=>{let t=e.dataType,s=e.dims.length,o=ad(s,r),n=zg(e.dims,o),a=e.dims,i=n,l=s<2||Ng(o,e.dims),c;if(l)return c=f=>{let v=ye("input",t,a,4),F=at("output",t,i,4);return`
65
65
  ${f.registerUniform("output_size","u32").declareVariables(v,F)}
66
66
  ${f.mainStart()}
67
67
  ${f.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
68
68
  output[global_idx] = input[global_idx];
69
- }`},{name:"TransposeCopy",shaderCache:{inputDependencies:["type"]},getRunData:()=>{let f=we.size(n);return{outputs:[{dims:n,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(f/64/4)},programUniforms:[{type:12,data:Math.ceil(f/4)}]}},getShaderSource:c};let{newShape:p,newPerm:u}=Rg(e.dims,o),d=we.areEqual(u,[2,3,1]),h=we.areEqual(u,[3,1,2]);if(p.length===2||d||h){a=d?[p[0],p[1]*p[2]]:h?[p[0]*p[1],p[2]]:p,i=[a[1],a[0]];let f=16;return c=v=>{let F=ye("a",t,a.length),x=at("output",t,i.length);return`
69
+ }`},{name:"TransposeCopy",shaderCache:{inputDependencies:["type"]},getRunData:()=>{let f=we.size(n);return{outputs:[{dims:n,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(f/64/4)},programUniforms:[{type:12,data:Math.ceil(f/4)}]}},getShaderSource:c};let{newShape:p,newPerm:u}=jg(e.dims,o),d=we.areEqual(u,[2,3,1]),h=we.areEqual(u,[3,1,2]);if(p.length===2||d||h){a=d?[p[0],p[1]*p[2]]:h?[p[0]*p[1],p[2]]:p,i=[a[1],a[0]];let f=16;return c=v=>{let F=ye("a",t,a.length),x=at("output",t,i.length);return`
70
70
  ${v.registerUniform("output_size","u32").declareVariables(F,x)}
71
71
  var<workgroup> tile : array<array<${x.type.value}, ${f+1}>, ${f}>;
72
72
  ${v.mainStart([f,f,1])}
@@ -88,7 +88,7 @@ var ET=Object.defineProperty;var Eo=(e=>typeof require<"u"?require:typeof Proxy<
88
88
  }`},{name:"TransposeShared",shaderCache:{inputDependencies:["type"]},getRunData:()=>{let v=we.size(n);return{outputs:[{dims:n,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(i[1]/f),y:Math.ceil(i[0]/f)},programUniforms:[{type:12,data:v},...pt(a,i)]}},getShaderSource:c}}return c=f=>{let v=ye("a",t,a.length),F=at("output",t,i.length);return`
89
89
  ${f.registerUniform("output_size","u32").declareVariables(v,F)}
90
90
 
91
- ${zg(o,s,v,F)}
91
+ ${Rg(o,s,v,F)}
92
92
 
93
93
  ${f.mainStart()}
94
94
  ${f.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
@@ -97,7 +97,7 @@ var ET=Object.defineProperty;var Eo=(e=>typeof require<"u"?require:typeof Proxy<
97
97
  let aIndices = perm(indices);
98
98
 
99
99
  ${F.setByOffset("global_idx",v.getByIndices("aIndices"))}
100
- }`},{name:"Transpose",shaderCache:{hint:`${r}`,inputDependencies:["rank"]},getRunData:()=>{let f=we.size(n);return{outputs:[{dims:n,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(f/64)},programUniforms:[{type:12,data:f},...pt(a,i)]}},getShaderSource:c}},Tx=(e,r)=>{Lg(e.inputs,r.perm),e.compute(ss(e.inputs[0],r.perm))},Px=e=>Bt({perm:e.perm})}),Ng,Vg,Wg,Ug,Gg,Kg,qg,Hg,Qg,Xg,gs,Ex,kx,Cx,Sx,Fx,Ix,Ax,$x,Dx,Ox,gP=ze(()=>{"use strict";wt(),Tt(),Et(),hu(),uo(),Ng={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"},Vg={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"},Wg={max:"_A[offset]",min:"_A[offset]",mean:"0",sum:"0",prod:"1",sumSquare:"0",logSumExp:"0",l1:"0",l2:"0",logSum:"0"},Ug={max:"bestValue",min:"bestValue",sum:"bestValue",prod:"bestValue",sumSquare:"bestValue",logSumExp:"log(bestValue)",l1:"bestValue",l2:"sqrt(bestValue)",logSum:"log(bestValue)"},Gg=(e,r)=>{let t=[];for(let s=r-e;s<r;++s)t.push(s);return t},Kg=(e,r)=>{let t=[],s=e.length;for(let n=0;n<s;n++)r.indexOf(n)===-1&&t.push(e[n]);let o=r.map(n=>e[n]);return[t,o]},qg=(e,r)=>{let t=e.length+r.length,s=[],o=0;for(let n=0;n<t;n++)r.indexOf(n)===-1?s.push(e[o++]):s.push(1);return s},Hg=(e,r)=>{for(let t=0;t<e.length;++t)if(e[e.length-t-1]!==r-1-t)return!1;return!0},Qg=(e,r)=>{let t=[];if(!Hg(e,r)){for(let s=0;s<r;++s)e.indexOf(s)===-1&&t.push(s);e.forEach(s=>t.push(s))}return t},Xg=(e,r,t,s,o,n,a)=>{let i=t[0].dims,l=we.size(n),c=we.size(a),p=ye("_A",t[0].dataType,i),u=at("output",o,n),d=64;l===1&&(d=256);let h=`
100
+ }`},{name:"Transpose",shaderCache:{hint:`${r}`,inputDependencies:["rank"]},getRunData:()=>{let f=we.size(n);return{outputs:[{dims:n,dataType:e.dataType}],dispatchGroup:{x:Math.ceil(f/64)},programUniforms:[{type:12,data:f},...pt(a,i)]}},getShaderSource:c}},Px=(e,r)=>{Bg(e.inputs,r.perm),e.compute(ss(e.inputs[0],r.perm))},Ex=e=>Bt({perm:e.perm})}),Vg,Wg,Ug,Gg,Kg,qg,Hg,Qg,Xg,Jg,gs,kx,Cx,Sx,Fx,Ix,Ax,$x,Dx,Ox,Lx,wP=ze(()=>{"use strict";wt(),Tt(),Et(),hu(),uo(),Vg={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"},Wg={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"},Ug={max:"_A[offset]",min:"_A[offset]",mean:"0",sum:"0",prod:"1",sumSquare:"0",logSumExp:"0",l1:"0",l2:"0",logSum:"0"},Gg={max:"bestValue",min:"bestValue",sum:"bestValue",prod:"bestValue",sumSquare:"bestValue",logSumExp:"log(bestValue)",l1:"bestValue",l2:"sqrt(bestValue)",logSum:"log(bestValue)"},Kg=(e,r)=>{let t=[];for(let s=r-e;s<r;++s)t.push(s);return t},qg=(e,r)=>{let t=[],s=e.length;for(let n=0;n<s;n++)r.indexOf(n)===-1&&t.push(e[n]);let o=r.map(n=>e[n]);return[t,o]},Hg=(e,r)=>{let t=e.length+r.length,s=[],o=0;for(let n=0;n<t;n++)r.indexOf(n)===-1?s.push(e[o++]):s.push(1);return s},Qg=(e,r)=>{for(let t=0;t<e.length;++t)if(e[e.length-t-1]!==r-1-t)return!1;return!0},Xg=(e,r)=>{let t=[];if(!Qg(e,r)){for(let s=0;s<r;++s)e.indexOf(s)===-1&&t.push(s);e.forEach(s=>t.push(s))}return t},Jg=(e,r,t,s,o,n,a)=>{let i=t[0].dims,l=we.size(n),c=we.size(a),p=ye("_A",t[0].dataType,i),u=at("output",o,n),d=64;l===1&&(d=256);let h=`
101
101
  var<workgroup> aBestValues : array<f32, ${d}>;
102
102
  `,f=v=>`
103
103
  ${v.registerUniform("reduceSize","u32").declareVariables(p,u)}
@@ -110,11 +110,11 @@ var ET=Object.defineProperty;var Eo=(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(${Wg[s]});
113
+ var bestValue = f32(${Ug[s]});
114
114
  let Length = uniforms.reduceSize;
115
115
  for (var k = local_idx; k < Length; k = k + ${d}) {
116
116
  let candidate = f32(${p.getByOffset("offset + k")});
117
- bestValue = ${Ng[s]};
117
+ bestValue = ${Vg[s]};
118
118
  }
119
119
  aBestValues[local_idx] = bestValue;
120
120
  workgroupBarrier();
@@ -125,7 +125,7 @@ var ET=Object.defineProperty;var Eo=(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 = ${Vg[s]};
128
+ bestValue = ${Wg[s]};
129
129
  aBestValues[local_idx] = bestValue;
130
130
  }
131
131
  reduceSize = interval;
@@ -133,9 +133,9 @@ var ET=Object.defineProperty;var Eo=(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}(${Ug[s]})`}`)};
136
+ ${u.setByOffset("outputIndex",`${s==="mean"?`${u.type.storage}(bestValue / f32(uniforms.reduceSize))`:`${u.type.storage}(${Gg[s]})`}`)};
137
137
  }
138
- }`;return{name:e,shaderCache:{hint:`${r};${d}`,inputDependencies:["type"]},getShaderSource:f,getRunData:()=>({outputs:[{dims:n,dataType:o}],dispatchGroup:{x:l},programUniforms:[{type:12,data:c}]})}},gs=(e,r,t,s)=>{let o=e.inputs.length===1?t:Ud(e.inputs,t),n=o.axes;n.length===0&&!o.noopWithEmptyAxes&&(n=e.inputs[0].dims.map((h,f)=>f));let a=we.normalizeAxes(n,e.inputs[0].dims.length),i=a,l=e.inputs[0],c=Qg(i,e.inputs[0].dims.length);c.length>0&&(l=e.compute(ss(e.inputs[0],c),{inputs:[0],outputs:[-1]})[0],i=Gg(i.length,l.dims.length));let[p,u]=Kg(l.dims,i),d=p;o.keepDims&&(d=qg(p,a)),e.compute(Xg(r,o.cacheKey,[l],s,e.inputs[0].dataType,d,u),{inputs:[l]})},Ex=(e,r)=>{gs(e,"ReduceMeanShared",r,"mean")},kx=(e,r)=>{gs(e,"ReduceL1Shared",r,"l1")},Cx=(e,r)=>{gs(e,"ReduceL2Shared",r,"l2")},Sx=(e,r)=>{gs(e,"ReduceLogSumExpShared",r,"logSumExp")},Fx=(e,r)=>{gs(e,"ReduceMaxShared",r,"max")},Ix=(e,r)=>{gs(e,"ReduceMinShared",r,"min")},Ax=(e,r)=>{gs(e,"ReduceProdShared",r,"prod")},$x=(e,r)=>{gs(e,"ReduceSumShared",r,"sum")},Dx=(e,r)=>{gs(e,"ReduceSumSquareShared",r,"sumSquare")},Ox=(e,r)=>{gs(e,"ReduceLogSumShared",r,"logSum")}}),ws,Jg,rl,Ud,bs,Yg,Zg,ew,tw,rw,sw,ow,nw,aw,iw,Ms,Lx,Bx,zx,Rx,jx,Nx,Vx,Wx,Ux,Gx,hu=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),gP(),ws=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.")},Jg=e=>["","",`var value = ${e.getByIndices("input_indices")};`,""],rl=(e,r,t,s,o,n,a=!1,i=!1)=>{let l=[],c=t[0].dims,p=c.length,u=we.normalizeAxes(o,p),d=!i&&u.length===0;c.forEach((v,F)=>{d||u.indexOf(F)>=0?a&&l.push(1):l.push(v)});let h=l.length,f=we.size(l);return{name:e,shaderCache:r,getShaderSource:v=>{let F=[],x=ye("_A",t[0].dataType,p),w=at("output",n,h),C=s(x,w,u),y=C[2];for(let P=0,I=0;P<p;P++)d||u.indexOf(P)>=0?(a&&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:f,getRunData:()=>({outputs:[{dims:n,dataType:o}],dispatchGroup:{x:l},programUniforms:[{type:12,data:c}]})}},gs=(e,r,t,s)=>{let o=e.inputs.length===1?t:Ud(e.inputs,t),n=o.axes;n.length===0&&!o.noopWithEmptyAxes&&(n=e.inputs[0].dims.map((h,f)=>f));let a=we.normalizeAxes(n,e.inputs[0].dims.length),i=a,l=e.inputs[0],c=Xg(i,e.inputs[0].dims.length);c.length>0&&(l=e.compute(ss(e.inputs[0],c),{inputs:[0],outputs:[-1]})[0],i=Kg(i.length,l.dims.length));let[p,u]=qg(l.dims,i),d=p;o.keepDims&&(d=Hg(p,a)),e.compute(Jg(r,o.cacheKey,[l],s,e.inputs[0].dataType,d,u),{inputs:[l]})},kx=(e,r)=>{gs(e,"ReduceMeanShared",r,"mean")},Cx=(e,r)=>{gs(e,"ReduceL1Shared",r,"l1")},Sx=(e,r)=>{gs(e,"ReduceL2Shared",r,"l2")},Fx=(e,r)=>{gs(e,"ReduceLogSumExpShared",r,"logSumExp")},Ix=(e,r)=>{gs(e,"ReduceMaxShared",r,"max")},Ax=(e,r)=>{gs(e,"ReduceMinShared",r,"min")},$x=(e,r)=>{gs(e,"ReduceProdShared",r,"prod")},Dx=(e,r)=>{gs(e,"ReduceSumShared",r,"sum")},Ox=(e,r)=>{gs(e,"ReduceSumSquareShared",r,"sumSquare")},Lx=(e,r)=>{gs(e,"ReduceLogSumShared",r,"logSum")}}),ws,Yg,rl,Ud,bs,Zg,ew,tw,rw,sw,ow,nw,aw,iw,lw,Ms,Bx,zx,Rx,jx,Nx,Vx,Wx,Ux,Gx,Kx,hu=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),wP(),ws=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.")},Yg=e=>["","",`var value = ${e.getByIndices("input_indices")};`,""],rl=(e,r,t,s,o,n,a=!1,i=!1)=>{let l=[],c=t[0].dims,p=c.length,u=we.normalizeAxes(o,p),d=!i&&u.length===0;c.forEach((v,F)=>{d||u.indexOf(F)>=0?a&&l.push(1):l.push(v)});let h=l.length,f=we.size(l);return{name:e,shaderCache:r,getShaderSource:v=>{let F=[],x=ye("_A",t[0].dataType,p),w=at("output",n,h),C=s(x,w,u),y=C[2];for(let P=0,I=0;P<p;P++)d||u.indexOf(P)>=0?(a&&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
  ${x.indicesSet("input_indices",P,`j${P}`)}
141
141
  ${y}
@@ -156,19 +156,19 @@ var ET=Object.defineProperty;var Eo=(e=>typeof require<"u"?require:typeof Proxy<
156
156
  ${C[3]}
157
157
  ${C.length===4?w.setByOffset("global_idx","value"):C.slice(4).join(`
158
158
  `)}
159
- }`},getRunData:()=>({outputs:[{dims:l,dataType:n}],dispatchGroup:{x:Math.ceil(f/64)},programUniforms:[{type:12,data:f},...pt(c,l)]})}},Ud=(e,r)=>{let t=[];return e[1].dims[0]>0&&e[1].getBigInt64Array().forEach(s=>t.push(Number(s))),Bt({axes:t,keepDims:r.keepDims,noopWithEmptyAxes:r.noopWithEmptyAxes})},bs=(e,r,t,s)=>{let o=e.inputs,n=o.length===1?t:Ud(o,t);e.compute(rl(r,{hint:n.cacheKey,inputDependencies:["rank"]},[o[0]],n.noopWithEmptyAxes&&n.axes.length===0?Jg:s,n.axes,o[0].dataType,n.keepDims,n.noopWithEmptyAxes),{inputs:[0]})},Yg=(e,r)=>{ws(e.inputs),bs(e,"ReduceLogSum",r,(t,s)=>[`var value = ${s.type.storage}(0);`,"",`value += ${t.getByIndices("input_indices")};`,"value = log(value);"])},Zg=(e,r)=>{ws(e.inputs),bs(e,"ReduceL1",r,(t,s)=>[`var value = ${s.type.storage}(0);`,"",`value += abs(${t.getByIndices("input_indices")});`,""])},ew=(e,r)=>{ws(e.inputs),bs(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);"])},tw=(e,r)=>{ws(e.inputs),bs(e,"ReduceLogSumExp",r,(t,s)=>[`var value = ${s.type.storage}(0);`,"",`value += exp(${t.getByIndices("input_indices")});`,"value = log(value);"])},rw=(e,r)=>{ws(e.inputs),bs(e,"ReduceMax",r,(t,s,o)=>{let n=[];for(let a=0;a<t.rank;a++)(o.indexOf(a)>=0||o.length===0)&&n.push(t.indicesSet("input_indices",a,0));return[`${n.join(`
160
- `)}`,`var value = ${t.getByIndices("input_indices")};`,`value = max(value, ${t.getByIndices("input_indices")});`,""]})},sw=(e,r)=>{ws(e.inputs),bs(e,"ReduceMean",r,(t,s,o)=>{let n=1;for(let a=0;a<t.rank;a++)(o.indexOf(a)>=0||o.length===0)&&(n*=e.inputs[0].dims[a]);return["var sum = f32(0);","",`sum += f32(${t.getByIndices("input_indices")});`,`let value = ${s.type.value}(sum / ${n});`]})},ow=(e,r)=>{ws(e.inputs),bs(e,"ReduceMin",r,(t,s,o)=>{let n=[];for(let a=0;a<t.rank;a++)(o.indexOf(a)>=0||o.length===0)&&n.push(`input_indices[${a}] = 0;`);return[`${n.join(`
161
- `)}`,`var value = ${t.getByIndices("input_indices")};`,`value = min(value, ${t.getByIndices("input_indices")});`,""]})},nw=(e,r)=>{ws(e.inputs),bs(e,"ReduceProd",r,(t,s)=>[`var value = ${s.type.storage}(1);`,"",`value *= ${t.getByIndices("input_indices")};`,""])},aw=(e,r)=>{ws(e.inputs),bs(e,"ReduceSum",r,(t,s)=>[`var value = ${s.type.storage}(0);`,"",`value += ${t.getByIndices("input_indices")};`,""])},iw=(e,r)=>{ws(e.inputs),bs(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;`,""])},Ms=(e,r,t)=>{if(r.length===0)return t;let s=1,o=1;for(let n=0;n<r.length;n++)r.indexOf(n)===-1?s*=e[n]:o*=e[n];return o<32&&s>1024},Lx=(e,r)=>{Ms(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?sw(e,r):Ex(e,r)},Bx=(e,r)=>{Ms(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?Zg(e,r):kx(e,r)},zx=(e,r)=>{Ms(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?ew(e,r):Cx(e,r)},Rx=(e,r)=>{Ms(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?tw(e,r):Sx(e,r)},jx=(e,r)=>{Ms(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?rw(e,r):Fx(e,r)},Nx=(e,r)=>{Ms(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?ow(e,r):Ix(e,r)},Vx=(e,r)=>{Ms(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?nw(e,r):Ax(e,r)},Wx=(e,r)=>{Ms(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?aw(e,r):$x(e,r)},Ux=(e,r)=>{Ms(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?iw(e,r):Dx(e,r)},Gx=(e,r)=>{Ms(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?Yg(e,r):Ox(e,r)}}),id,Kx,qx,Gd,wP=ze(()=>{"use strict";wt(),ir(),hu(),id=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.")},Kx=(e,r)=>{id(e.inputs);let t=(s,o,n)=>{let a=[];for(let i=0;i<s.rank;i++)(n.indexOf(i)>=0||n.length===0)&&a.push(`input_indices[${i}] = 0;`);return[`${a.join(`
159
+ }`},getRunData:()=>({outputs:[{dims:l,dataType:n}],dispatchGroup:{x:Math.ceil(f/64)},programUniforms:[{type:12,data:f},...pt(c,l)]})}},Ud=(e,r)=>{let t=[];return e[1].dims[0]>0&&e[1].getBigInt64Array().forEach(s=>t.push(Number(s))),Bt({axes:t,keepDims:r.keepDims,noopWithEmptyAxes:r.noopWithEmptyAxes})},bs=(e,r,t,s)=>{let o=e.inputs,n=o.length===1?t:Ud(o,t);e.compute(rl(r,{hint:n.cacheKey,inputDependencies:["rank"]},[o[0]],n.noopWithEmptyAxes&&n.axes.length===0?Yg:s,n.axes,o[0].dataType,n.keepDims,n.noopWithEmptyAxes),{inputs:[0]})},Zg=(e,r)=>{ws(e.inputs),bs(e,"ReduceLogSum",r,(t,s)=>[`var value = ${s.type.storage}(0);`,"",`value += ${t.getByIndices("input_indices")};`,"value = log(value);"])},ew=(e,r)=>{ws(e.inputs),bs(e,"ReduceL1",r,(t,s)=>[`var value = ${s.type.storage}(0);`,"",`value += abs(${t.getByIndices("input_indices")});`,""])},tw=(e,r)=>{ws(e.inputs),bs(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);"])},rw=(e,r)=>{ws(e.inputs),bs(e,"ReduceLogSumExp",r,(t,s)=>[`var value = ${s.type.storage}(0);`,"",`value += exp(${t.getByIndices("input_indices")});`,"value = log(value);"])},sw=(e,r)=>{ws(e.inputs),bs(e,"ReduceMax",r,(t,s,o)=>{let n=[];for(let a=0;a<t.rank;a++)(o.indexOf(a)>=0||o.length===0)&&n.push(t.indicesSet("input_indices",a,0));return[`${n.join(`
160
+ `)}`,`var value = ${t.getByIndices("input_indices")};`,`value = max(value, ${t.getByIndices("input_indices")});`,""]})},ow=(e,r)=>{ws(e.inputs),bs(e,"ReduceMean",r,(t,s,o)=>{let n=1;for(let a=0;a<t.rank;a++)(o.indexOf(a)>=0||o.length===0)&&(n*=e.inputs[0].dims[a]);return["var sum = f32(0);","",`sum += f32(${t.getByIndices("input_indices")});`,`let value = ${s.type.value}(sum / ${n});`]})},nw=(e,r)=>{ws(e.inputs),bs(e,"ReduceMin",r,(t,s,o)=>{let n=[];for(let a=0;a<t.rank;a++)(o.indexOf(a)>=0||o.length===0)&&n.push(`input_indices[${a}] = 0;`);return[`${n.join(`
161
+ `)}`,`var value = ${t.getByIndices("input_indices")};`,`value = min(value, ${t.getByIndices("input_indices")});`,""]})},aw=(e,r)=>{ws(e.inputs),bs(e,"ReduceProd",r,(t,s)=>[`var value = ${s.type.storage}(1);`,"",`value *= ${t.getByIndices("input_indices")};`,""])},iw=(e,r)=>{ws(e.inputs),bs(e,"ReduceSum",r,(t,s)=>[`var value = ${s.type.storage}(0);`,"",`value += ${t.getByIndices("input_indices")};`,""])},lw=(e,r)=>{ws(e.inputs),bs(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;`,""])},Ms=(e,r,t)=>{if(r.length===0)return t;let s=1,o=1;for(let n=0;n<r.length;n++)r.indexOf(n)===-1?s*=e[n]:o*=e[n];return o<32&&s>1024},Bx=(e,r)=>{Ms(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?ow(e,r):kx(e,r)},zx=(e,r)=>{Ms(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?ew(e,r):Cx(e,r)},Rx=(e,r)=>{Ms(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?tw(e,r):Sx(e,r)},jx=(e,r)=>{Ms(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?rw(e,r):Fx(e,r)},Nx=(e,r)=>{Ms(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?sw(e,r):Ix(e,r)},Vx=(e,r)=>{Ms(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?nw(e,r):Ax(e,r)},Wx=(e,r)=>{Ms(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?aw(e,r):$x(e,r)},Ux=(e,r)=>{Ms(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?iw(e,r):Dx(e,r)},Gx=(e,r)=>{Ms(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?lw(e,r):Ox(e,r)},Kx=(e,r)=>{Ms(e.inputs[0].dims,r.axes,r.noopWithEmptyAxes)?Zg(e,r):Lx(e,r)}}),id,qx,Hx,Gd,bP=ze(()=>{"use strict";wt(),ir(),hu(),id=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.")},qx=(e,r)=>{id(e.inputs);let t=(s,o,n)=>{let a=[];for(let i=0;i<s.rank;i++)(n.indexOf(i)>=0||n.length===0)&&a.push(`input_indices[${i}] = 0;`);return[`${a.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(rl("ArgMin",{hint:r.cacheKey,inputDependencies:["rank"]},[e.inputs[0]],t,[r.axis],7,r.keepDims),{inputs:[0]})},qx=(e,r)=>{id(e.inputs);let t=(s,o,n)=>{let a=[];for(let i=0;i<s.rank;i++)(n.indexOf(i)>=0||n.length===0)&&a.push(`input_indices[${i}] = 0;`);return[`${a.join(`
166
+ }`,"",o.setByOffset("global_idx","best_index")]};e.compute(rl("ArgMin",{hint:r.cacheKey,inputDependencies:["rank"]},[e.inputs[0]],t,[r.axis],7,r.keepDims),{inputs:[0]})},Hx=(e,r)=>{id(e.inputs);let t=(s,o,n)=>{let a=[];for(let i=0;i<s.rank;i++)(n.indexOf(i)>=0||n.length===0)&&a.push(`input_indices[${i}] = 0;`);return[`${a.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(rl("argMax",{hint:r.cacheKey,inputDependencies:["rank"]},[e.inputs[0]],t,[r.axis],7,r.keepDims),{inputs:[0]})},Gd=e=>Bt(e)}),lw,Ui,cw,dw,uw,va,pw,Hx,gu=ze(()=>{"use strict";wt(),Tt(),mu(),Et(),lw=(e,r)=>{let t=e[0],s=e[1],o=e[2],n=e[3],a=e[4],i=e[5];if(a&&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],p=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]!==p)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,h=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],h=r.qkvHiddenSizes[2]}let f=c;if(u!==d)throw new Error("qkv_hidden_sizes first element should be same as the second");if(o.dims[0]!==u+d+h)throw new Error('Input "bias" dimension 0 should have same length as sum of Q/K/V hidden sizes');let v=0;if(a){if(d!==h)throw new Error('Input "past" expect k_hidden_size == v_hidden_size');if(a.dims.length!==5)throw new Error('Input "past" must have 5 dimensions');if(a.dims[0]!==2)throw new Error('Input "past" first dimension must be 2');if(a.dims[1]!==l)throw new Error('Input "past" second dimension must be batch_size');if(a.dims[2]!==r.numHeads)throw new Error('Input "past" third dimension must be num_heads');if(a.dims[4]!==d/r.numHeads)throw new Error('Input "past" fifth dimension must be k_hidden_size / num_heads');r.pastPresentShareBuffer||(v=a.dims[3])}let F=f+v,x=-1,w=0;if(n)throw new Error("Mask not supported");if(a)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:v,kvSequenceLength:f,totalSequenceLength:F,maxSequenceLength:x,inputHiddenSize:p,hiddenSize:u,vHiddenSize:h,headSize:Math.floor(u/r.numHeads),vHeadSize:Math.floor(h/r.numHeads),numHeads:r.numHeads,isUnidirectional:!1,pastPresentShareBuffer:!1,maskFilterValue:r.maskFilterValue,maskType:w,scale:r.scale,broadcastResPosBias:!1,passPastInKv:!1,qkvFormat:1}},Ui=(e,r,t)=>r&&e?`
171
+ }`,"",o.setByOffset("global_idx","best_index")]};e.compute(rl("argMax",{hint:r.cacheKey,inputDependencies:["rank"]},[e.inputs[0]],t,[r.axis],7,r.keepDims),{inputs:[0]})},Gd=e=>Bt(e)}),cw,Ui,dw,uw,pw,va,_w,Qx,gu=ze(()=>{"use strict";wt(),Tt(),mu(),Et(),cw=(e,r)=>{let t=e[0],s=e[1],o=e[2],n=e[3],a=e[4],i=e[5];if(a&&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],p=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]!==p)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,h=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],h=r.qkvHiddenSizes[2]}let f=c;if(u!==d)throw new Error("qkv_hidden_sizes first element should be same as the second");if(o.dims[0]!==u+d+h)throw new Error('Input "bias" dimension 0 should have same length as sum of Q/K/V hidden sizes');let v=0;if(a){if(d!==h)throw new Error('Input "past" expect k_hidden_size == v_hidden_size');if(a.dims.length!==5)throw new Error('Input "past" must have 5 dimensions');if(a.dims[0]!==2)throw new Error('Input "past" first dimension must be 2');if(a.dims[1]!==l)throw new Error('Input "past" second dimension must be batch_size');if(a.dims[2]!==r.numHeads)throw new Error('Input "past" third dimension must be num_heads');if(a.dims[4]!==d/r.numHeads)throw new Error('Input "past" fifth dimension must be k_hidden_size / num_heads');r.pastPresentShareBuffer||(v=a.dims[3])}let F=f+v,x=-1,w=0;if(n)throw new Error("Mask not supported");if(a)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:v,kvSequenceLength:f,totalSequenceLength:F,maxSequenceLength:x,inputHiddenSize:p,hiddenSize:u,vHiddenSize:h,headSize:Math.floor(u/r.numHeads),vHeadSize:Math.floor(h/r.numHeads),numHeads:r.numHeads,isUnidirectional:!1,pastPresentShareBuffer:!1,maskFilterValue:r.maskFilterValue,maskType:w,scale:r.scale,broadcastResPosBias:!1,passPastInKv:!1,qkvFormat:1}},Ui=(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
- `,cw=(e,r,t,s,o,n,a,i)=>{let l=or(a?1:n),c=64,p=n/l;p<c&&(c=32);let u=Math.ceil(n/l/c),d=[{type:12,data:r},{type:12,data:t},{type:12,data:s},{type:12,data:o},{type:12,data:p},{type:12,data:u}],h=kr(e.dataType,l),f=qr(1,l),v=["type"];a&&v.push("type"),i&&v.push("type");let F=x=>{let w=at("x",e.dataType,e.dims,l),C=[w],y=a?ye("seq_lens",a.dataType,a.dims):void 0;y&&C.push(y);let P=i?ye("total_sequence_length_input",i.dataType,i.dims):void 0;P&&C.push(P);let I=qr(e.dataType),g=[{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
+ `,dw=(e,r,t,s,o,n,a,i)=>{let l=or(a?1:n),c=64,p=n/l;p<c&&(c=32);let u=Math.ceil(n/l/c),d=[{type:12,data:r},{type:12,data:t},{type:12,data:s},{type:12,data:o},{type:12,data:p},{type:12,data:u}],h=kr(e.dataType,l),f=qr(1,l),v=["type"];a&&v.push("type"),i&&v.push("type");let F=x=>{let w=at("x",e.dataType,e.dims,l),C=[w],y=a?ye("seq_lens",a.dataType,a.dims):void 0;y&&C.push(y);let P=i?ye("total_sequence_length_input",i.dataType,i.dims):void 0;P&&C.push(P);let I=qr(e.dataType),g=[{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
  ${x.registerUniforms(g).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] = ${w.type.value}(${I}(0));
234
234
  }`:""};
235
- }`};return{name:"AttentionProbsSoftmax",shaderCache:{hint:`${c};${h};${l}`,inputDependencies:v},getShaderSource:F,getRunData:()=>({outputs:[],dispatchGroup:{x:1,y:o,z:r*t},programUniforms:d})}},dw=(e,r,t,s,o,n,a,i,l)=>{let c=a+n.kvSequenceLength,p=[n.batchSize,n.numHeads,n.sequenceLength,c],u=e>1&&s,d=n.kvNumHeads?n.kvNumHeads:n.numHeads,h=u?[n.batchSize,d,c,n.headSize]:void 0,f=n.nReps?n.nReps:1,v=n.scale===0?1/Math.sqrt(n.headSize):n.scale,F=or(n.headSize),x=n.headSize/F,w=12,C={x:Math.ceil(c/w),y:Math.ceil(n.sequenceLength/w),z:n.batchSize*n.numHeads},y=[{type:12,data:n.sequenceLength},{type:12,data:x},{type:12,data:c},{type:12,data:n.numHeads},{type:12,data:n.headSize},{type:1,data:v},{type:12,data:a},{type:12,data:n.kvSequenceLength},{type:12,data:f}],P=u&&s&&we.size(s.dims)>0,I=["type","type"];P&&I.push("type"),o&&I.push("type"),i&&I.push("type"),l&&I.push("type");let g=[{dims:p,dataType:r.dataType,gpuDataType:0}];u&&g.push({dims:h,dataType:r.dataType,gpuDataType:0});let E=$=>{let L=ye("q",r.dataType,r.dims,F),G=ye("key",t.dataType,t.dims,F),q=[L,G];if(P){let le=ye("past_key",s.dataType,s.dims,F);q.push(le)}o&&q.push(ye("attention_bias",o.dataType,o.dims));let O=i?ye("seq_lens",i.dataType,i.dims):void 0;O&&q.push(O);let J=l?ye("total_sequence_length_input",l.dataType,l.dims):void 0;J&&q.push(J);let Q=at("output",r.dataType,p),H=[Q];u&&H.push(at("present_key",r.dataType,h,F));let te=qr(1,F),re=[{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};${h};${l}`,inputDependencies:v},getShaderSource:F,getRunData:()=>({outputs:[],dispatchGroup:{x:1,y:o,z:r*t},programUniforms:d})}},uw=(e,r,t,s,o,n,a,i,l)=>{let c=a+n.kvSequenceLength,p=[n.batchSize,n.numHeads,n.sequenceLength,c],u=e>1&&s,d=n.kvNumHeads?n.kvNumHeads:n.numHeads,h=u?[n.batchSize,d,c,n.headSize]:void 0,f=n.nReps?n.nReps:1,v=n.scale===0?1/Math.sqrt(n.headSize):n.scale,F=or(n.headSize),x=n.headSize/F,w=12,C={x:Math.ceil(c/w),y:Math.ceil(n.sequenceLength/w),z:n.batchSize*n.numHeads},y=[{type:12,data:n.sequenceLength},{type:12,data:x},{type:12,data:c},{type:12,data:n.numHeads},{type:12,data:n.headSize},{type:1,data:v},{type:12,data:a},{type:12,data:n.kvSequenceLength},{type:12,data:f}],P=u&&s&&we.size(s.dims)>0,I=["type","type"];P&&I.push("type"),o&&I.push("type"),i&&I.push("type"),l&&I.push("type");let g=[{dims:p,dataType:r.dataType,gpuDataType:0}];u&&g.push({dims:h,dataType:r.dataType,gpuDataType:0});let E=$=>{let L=ye("q",r.dataType,r.dims,F),G=ye("key",t.dataType,t.dims,F),q=[L,G];if(P){let le=ye("past_key",s.dataType,s.dims,F);q.push(le)}o&&q.push(ye("attention_bias",o.dataType,o.dims));let O=i?ye("seq_lens",i.dataType,i.dims):void 0;O&&q.push(O);let J=l?ye("total_sequence_length_input",l.dataType,l.dims):void 0;J&&q.push(J);let Q=at("output",r.dataType,p),H=[Q];u&&H.push(at("present_key",r.dataType,h,F));let te=qr(1,F),re=[{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 = ${w}u;
237
237
 
238
238
  var<workgroup> tileQ: array<${L.type.storage}, ${w*w}>;
@@ -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] = ${Q.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:g,dispatchGroup:C,programUniforms:y}),getShaderSource:E}},uw=(e,r,t,s,o,n,a=void 0,i=void 0)=>{let l=n+o.kvSequenceLength,c=o.nReps?o.nReps:1,p=o.vHiddenSize*c,u=e>1&&s,d=o.kvNumHeads?o.kvNumHeads:o.numHeads,h=u?[o.batchSize,d,l,o.headSize]:void 0,f=[o.batchSize,o.sequenceLength,p],v=12,F={x:Math.ceil(o.vHeadSize/v),y:Math.ceil(o.sequenceLength/v),z:o.batchSize*o.numHeads},x=[{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:p},{type:12,data:n},{type:12,data:o.kvSequenceLength},{type:12,data:c}],w=u&&s&&we.size(s.dims)>0,C=["type","type"];w&&C.push("type"),a&&C.push("type"),i&&C.push("type");let y=[{dims:f,dataType:r.dataType,gpuDataType:0}];u&&y.push({dims:h,dataType:r.dataType,gpuDataType:0});let P=I=>{let g=ye("probs",r.dataType,r.dims),E=ye("v",t.dataType,t.dims),$=[g,E];w&&$.push(ye("past_value",s.dataType,s.dims));let L=a?ye("seq_lens",a.dataType,a.dims):void 0;a&&$.push(L);let G=i?ye("total_sequence_length_input",i.dataType,i.dims):void 0;i&&$.push(G);let q=[at("output",r.dataType,f)];u&&q.push(at("present_value",r.dataType,h));let O=[{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:g,dispatchGroup:C,programUniforms:y}),getShaderSource:E}},pw=(e,r,t,s,o,n,a=void 0,i=void 0)=>{let l=n+o.kvSequenceLength,c=o.nReps?o.nReps:1,p=o.vHiddenSize*c,u=e>1&&s,d=o.kvNumHeads?o.kvNumHeads:o.numHeads,h=u?[o.batchSize,d,l,o.headSize]:void 0,f=[o.batchSize,o.sequenceLength,p],v=12,F={x:Math.ceil(o.vHeadSize/v),y:Math.ceil(o.sequenceLength/v),z:o.batchSize*o.numHeads},x=[{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:p},{type:12,data:n},{type:12,data:o.kvSequenceLength},{type:12,data:c}],w=u&&s&&we.size(s.dims)>0,C=["type","type"];w&&C.push("type"),a&&C.push("type"),i&&C.push("type");let y=[{dims:f,dataType:r.dataType,gpuDataType:0}];u&&y.push({dims:h,dataType:r.dataType,gpuDataType:0});let P=I=>{let g=ye("probs",r.dataType,r.dims),E=ye("v",t.dataType,t.dims),$=[g,E];w&&$.push(ye("past_value",s.dataType,s.dims));let L=a?ye("seq_lens",a.dataType,a.dims):void 0;a&&$.push(L);let G=i?ye("total_sequence_length_input",i.dataType,i.dims):void 0;i&&$.push(G);let q=[at("output",r.dataType,f)];u&&q.push(at("present_value",r.dataType,h));let O=[{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 = ${v}u;
294
294
  var<workgroup> tileQ: array<${g.type.value}, ${v*v}>;
295
295
  var<workgroup> tileV: array<${g.type.value}, ${v*v}>;
@@ -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:x}),getShaderSource:P}},va=(e,r,t,s,o,n,a,i,l,c,p=void 0,u=void 0)=>{let d=Math.min(e.outputCount,1+(a?1:0)+(i?1:0)),h=d>1?c.pastSequenceLength:0,f=h+c.kvSequenceLength,v=l&&we.size(l.dims)>0?l:void 0,F=[r,t];d>1&&a&&we.size(a.dims)>0&&F.push(a),v&&F.push(v),p&&F.push(p),u&&F.push(u);let x=e.compute(dw(d,r,t,a,v,c,h,p,u),{inputs:F,outputs:d>1?[-1,1]:[-1]})[0];e.compute(cw(x,c.batchSize,c.numHeads,h,c.sequenceLength,f,p,u),{inputs:p&&u?[x,p,u]:[x],outputs:[]});let w=[x,s];d>1&&i&&we.size(i.dims)>0&&w.push(i),p&&w.push(p),u&&w.push(u),e.compute(uw(d,x,s,i,c,h,p,u),{inputs:w,outputs:d>1?[0,2]:[0]})},pw=(e,r)=>{let t=[r.batchSize,r.numHeads,r.sequenceLength,r.headSize],s=r.sequenceLength,o=r.inputHiddenSize,n=r.headSize,a=12,i={x:Math.ceil(r.headSize/a),y:Math.ceil(r.sequenceLength/a),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:n},{type:12,data:r.numHeads},{type:12,data:r.headSize},{type:12,data:r.hiddenSize},{type:12,data:r.hiddenSize+r.hiddenSize+r.vHiddenSize}],p=u=>{let d=at("output_q",l[0].dataType,t),h=at("output_k",l[0].dataType,t),f=at("output_v",l[0].dataType,t),v=ye("input",l[0].dataType,l[0].dims),F=ye("weight",l[1].dataType,l[1].dims),x=ye("bias",l[2].dataType,l[2].dims),w=v.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:x}),getShaderSource:P}},va=(e,r,t,s,o,n,a,i,l,c,p=void 0,u=void 0)=>{let d=Math.min(e.outputCount,1+(a?1:0)+(i?1:0)),h=d>1?c.pastSequenceLength:0,f=h+c.kvSequenceLength,v=l&&we.size(l.dims)>0?l:void 0,F=[r,t];d>1&&a&&we.size(a.dims)>0&&F.push(a),v&&F.push(v),p&&F.push(p),u&&F.push(u);let x=e.compute(uw(d,r,t,a,v,c,h,p,u),{inputs:F,outputs:d>1?[-1,1]:[-1]})[0];e.compute(dw(x,c.batchSize,c.numHeads,h,c.sequenceLength,f,p,u),{inputs:p&&u?[x,p,u]:[x],outputs:[]});let w=[x,s];d>1&&i&&we.size(i.dims)>0&&w.push(i),p&&w.push(p),u&&w.push(u),e.compute(pw(d,x,s,i,c,h,p,u),{inputs:w,outputs:d>1?[0,2]:[0]})},_w=(e,r)=>{let t=[r.batchSize,r.numHeads,r.sequenceLength,r.headSize],s=r.sequenceLength,o=r.inputHiddenSize,n=r.headSize,a=12,i={x:Math.ceil(r.headSize/a),y:Math.ceil(r.sequenceLength/a),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:n},{type:12,data:r.numHeads},{type:12,data:r.headSize},{type:12,data:r.hiddenSize},{type:12,data:r.hiddenSize+r.hiddenSize+r.vHiddenSize}],p=u=>{let d=at("output_q",l[0].dataType,t),h=at("output_k",l[0].dataType,t),f=at("output_v",l[0].dataType,t),v=ye("input",l[0].dataType,l[0].dims),F=ye("weight",l[1].dataType,l[1].dims),x=ye("bias",l[2].dataType,l[2].dims),w=v.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 = ${a}u;
349
349
  var<workgroup> tileInput: array<${w}, ${a*a}>;
350
350
  var<workgroup> tileWeightQ: array<${w}, ${a*a}>;
@@ -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:p},{inputs:l,outputs:[-1,-1,-1]})},Hx=(e,r)=>{let t=lw(e.inputs,r),[s,o,n]=pw(e,t);return va(e,s,o,n,e.inputs[4],void 0,void 0,void 0,e.inputs[5],t)}}),_w,mw,fw,Qx,bP=ze(()=>{"use strict";Ps(),wt(),Tt(),ir(),Et(),_w=(e,r)=>{if(!e||e.length!==5)throw new Error("BatchNormalization requires 5 inputs");let t=(s,o,n)=>{let a=o.length;if(a!==s.length)throw new Error(`${n}: num dimensions != ${a}`);o.forEach((i,l)=>{if(i!==s[l])throw new Error(`${n}: 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")},mw=(e,r)=>{let{epsilon:t,spatial:s,format:o}=r,n=e[0].dims,a=s?or(n[n.length-1]):1,i=o==="NHWC"&&n.length>1?a:1,l=we.size(n)/a,c=s,p=c?n.length:n,u=ye("x",e[0].dataType,e[0].dims,a),d=ye("scale",e[1].dataType,e[1].dims,i),h=ye("bias",e[2].dataType,e[2].dims,i),f=ye("inputMean",e[3].dataType,e[3].dims,i),v=ye("inputVar",e[4].dataType,e[4].dims,i),F=at("y",e[0].dataType,p,a),x=()=>{let C="";if(s)C=`let cOffset = ${n.length===1?"0u":o==="NHWC"?`outputIndices[${n.length-1}] / ${a}`:"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:p},{inputs:l,outputs:[-1,-1,-1]})},Qx=(e,r)=>{let t=cw(e.inputs,r),[s,o,n]=_w(e,t);return va(e,s,o,n,e.inputs[4],void 0,void 0,void 0,e.inputs[5],t)}}),mw,fw,hw,Xx,MP=ze(()=>{"use strict";Ps(),wt(),Tt(),ir(),Et(),mw=(e,r)=>{if(!e||e.length!==5)throw new Error("BatchNormalization requires 5 inputs");let t=(s,o,n)=>{let a=o.length;if(a!==s.length)throw new Error(`${n}: num dimensions != ${a}`);o.forEach((i,l)=>{if(i!==s[l])throw new Error(`${n}: 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")},fw=(e,r)=>{let{epsilon:t,spatial:s,format:o}=r,n=e[0].dims,a=s?or(n[n.length-1]):1,i=o==="NHWC"&&n.length>1?a:1,l=we.size(n)/a,c=s,p=c?n.length:n,u=ye("x",e[0].dataType,e[0].dims,a),d=ye("scale",e[1].dataType,e[1].dims,i),h=ye("bias",e[2].dataType,e[2].dims,i),f=ye("inputMean",e[3].dataType,e[3].dims,i),v=ye("inputVar",e[4].dataType,e[4].dims,i),F=at("y",e[0].dataType,p,a),x=()=>{let C="";if(s)C=`let cOffset = ${n.length===1?"0u":o==="NHWC"?`outputIndices[${n.length-1}] / ${a}`:"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[${n.length-1}];`;for(let y=1;y<d.rank;y++)C+=`cIndices[${y}] = outputIndices[${y}];`;C+=`let cOffset = ${d.indicesToOffset("cIndices")};`}return C},w=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}_${a}`,inputDependencies:c?["rank","type","type","type","type"]:void 0},getShaderSource:w,getRunData:()=>({outputs:[{dims:e[0].dims,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:c?[{type:12,data:l},...pt(n)]:[{type:12,data:l}]})}},fw=e=>Bt(e),Qx=(e,r)=>{let{inputs:t,outputCount:s}=e,o=fw({...r,outputCount:s});if(Xt.webgpu.validateInputContent&&_w(t,o),r.trainingMode)throw new Error("BatchNormalization trainingMode is not supported yet.");e.compute(mw(t,o))}}),hw,gw,Xx,MP=ze(()=>{"use strict";Tt(),Et(),hw=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")},gw=e=>{let r=e[0].dims,t=e[0].dims[2],s=we.size(r)/4,o=e[0].dataType,n=ye("input",o,r,4),a=ye("bias",o,[t],4),i=ye("residual",o,r,4),l=at("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}_${a}`,inputDependencies:c?["rank","type","type","type","type"]:void 0},getShaderSource:w,getRunData:()=>({outputs:[{dims:e[0].dims,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:c?[{type:12,data:l},...pt(n)]:[{type:12,data:l}]})}},hw=e=>Bt(e),Xx=(e,r)=>{let{inputs:t,outputCount:s}=e,o=hw({...r,outputCount:s});if(Xt.webgpu.validateInputContent&&mw(t,o),r.trainingMode)throw new Error("BatchNormalization trainingMode is not supported yet.");e.compute(fw(t,o))}}),gw,ww,Jx,xP=ze(()=>{"use strict";Tt(),Et(),gw=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")},ww=e=>{let r=e[0].dims,t=e[0].dims[2],s=we.size(r)/4,o=e[0].dataType,n=ye("input",o,r,4),a=ye("bias",o,[t],4),i=ye("residual",o,r,4),l=at("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(n,a,i,l)}
422
422
 
@@ -425,7 +425,7 @@ var best_index : i32 = 0;`,`if (${s.getByIndices("input_indices")} ${r.selectLas
425
425
  let value = ${n.getByOffset("global_idx")}
426
426
  + ${a.getByOffset("global_idx % channels")} + ${i.getByOffset("global_idx")};
427
427
  ${l.setByOffset("global_idx","value")}
428
- }`}},Xx=e=>{hw(e.inputs),e.compute(gw(e.inputs))}}),ww,Lt,Jx,Yx,Zx,ev,tv,rv,sv,ov,nv,bw,av,iv,lv,cv,ga,dv,Yi,uv,pv,_v,mv,fv,hv,gv,wv,bv,Mv,xv,vv,yv,Tv,Pv,Ev,ld,kv,Kd,qd,Cv,Sv,Fv,Mw,xw,Iv,wu=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),ww=(e,r,t,s,o,n,a)=>{let i=Math.ceil(r/4),l="";typeof o=="string"?l=`${o}(a)`:l=o("a");let c=ye("inputData",t,[i],4),p=at("outputData",s,[i],4),u=[{name:"vec_size",type:"u32"}];return a&&u.push(...a),`
428
+ }`}},Jx=e=>{gw(e.inputs),e.compute(ww(e.inputs))}}),bw,Lt,Yx,Zx,ev,tv,rv,sv,ov,nv,av,Mw,iv,lv,cv,dv,ga,uv,Yi,pv,_v,mv,fv,hv,gv,wv,bv,Mv,xv,vv,yv,Tv,Pv,Ev,kv,ld,Cv,Kd,qd,Sv,Fv,Iv,xw,vw,Av,wu=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),bw=(e,r,t,s,o,n,a)=>{let i=Math.ceil(r/4),l="";typeof o=="string"?l=`${o}(a)`:l=o("a");let c=ye("inputData",t,[i],4),p=at("outputData",s,[i],4),u=[{name:"vec_size",type:"u32"}];return a&&u.push(...a),`
429
429
  ${e.registerUniforms(u).declareVariables(c,p)}
430
430
 
431
431
  ${n??""}
@@ -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
  ${p.setByOffset("global_idx",l)}
438
- }`},Lt=(e,r,t,s,o,n=e.dataType,a,i)=>{let l=[{type:12,data:Math.ceil(we.size(e.dims)/4)}];return a&&l.push(...a),{name:r,shaderCache:{hint:o,inputDependencies:["type"]},getShaderSource:c=>ww(c,we.size(e.dims),e.dataType,n,t,s,i),getRunData:c=>({outputs:[{dims:e.dims,dataType:n}],dispatchGroup:{x:Math.ceil(we.size(c[0].dims)/64/4)},programUniforms:l})}},Jx=e=>{e.compute(Lt(e.inputs[0],"Abs","abs"))},Yx=e=>{e.compute(Lt(e.inputs[0],"Acos","acos"))},Zx=e=>{e.compute(Lt(e.inputs[0],"Acosh","acosh"))},ev=e=>{e.compute(Lt(e.inputs[0],"Asin","asin"))},tv=e=>{e.compute(Lt(e.inputs[0],"Asinh","asinh"))},rv=e=>{e.compute(Lt(e.inputs[0],"Atan","atan"))},sv=e=>{e.compute(Lt(e.inputs[0],"Atanh","atanh"))},ov=e=>Bt(e),nv=(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(Lt(e.inputs[0],"Cast",t,void 0,r.cacheKey,r.to))},bw=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 Bt({min:r,max:t})},av=(e,r)=>{let t=r||bw(e.inputs),s=qr(e.inputs[0].dataType);e.compute(Lt(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]})},iv=e=>{e.compute(Lt(e.inputs[0],"Ceil","ceil"))},lv=e=>{e.compute(Lt(e.inputs[0],"Cos","cos"))},cv=e=>{e.compute(Lt(e.inputs[0],"Cosh","cosh"))},ga=e=>Bt(e),dv=(e,r)=>{let t=qr(e.inputs[0].dataType);e.compute(Lt(e.inputs[0],"Elu",s=>`elu_vf32(${s})`,`
438
+ }`},Lt=(e,r,t,s,o,n=e.dataType,a,i)=>{let l=[{type:12,data:Math.ceil(we.size(e.dims)/4)}];return a&&l.push(...a),{name:r,shaderCache:{hint:o,inputDependencies:["type"]},getShaderSource:c=>bw(c,we.size(e.dims),e.dataType,n,t,s,i),getRunData:c=>({outputs:[{dims:e.dims,dataType:n}],dispatchGroup:{x:Math.ceil(we.size(c[0].dims)/64/4)},programUniforms:l})}},Yx=e=>{e.compute(Lt(e.inputs[0],"Abs","abs"))},Zx=e=>{e.compute(Lt(e.inputs[0],"Acos","acos"))},ev=e=>{e.compute(Lt(e.inputs[0],"Acosh","acosh"))},tv=e=>{e.compute(Lt(e.inputs[0],"Asin","asin"))},rv=e=>{e.compute(Lt(e.inputs[0],"Asinh","asinh"))},sv=e=>{e.compute(Lt(e.inputs[0],"Atan","atan"))},ov=e=>{e.compute(Lt(e.inputs[0],"Atanh","atanh"))},nv=e=>Bt(e),av=(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(Lt(e.inputs[0],"Cast",t,void 0,r.cacheKey,r.to))},Mw=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 Bt({min:r,max:t})},iv=(e,r)=>{let t=r||Mw(e.inputs),s=qr(e.inputs[0].dataType);e.compute(Lt(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]})},lv=e=>{e.compute(Lt(e.inputs[0],"Ceil","ceil"))},cv=e=>{e.compute(Lt(e.inputs[0],"Cos","cos"))},dv=e=>{e.compute(Lt(e.inputs[0],"Cosh","cosh"))},ga=e=>Bt(e),uv=(e,r)=>{let t=qr(e.inputs[0].dataType);e.compute(Lt(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
- }`,uv=e=>{let r=qr(e.inputs[0].dataType);e.compute(Lt(e.inputs[0],"Erf",t=>`erf_vf32(${t})`,Yi(r)))},pv=e=>{e.compute(Lt(e.inputs[0],"Exp","exp"))},_v=e=>{e.compute(Lt(e.inputs[0],"Floor","floor"))},mv=e=>{let r=qr(e.inputs[0].dataType);e.compute(Lt(e.inputs[0],"Gelu",t=>`0.5 * ${t} * (1.0 + erf_vf32(${t} * 0.7071067811865475))`,Yi(r)))},fv=(e,r)=>{let t=qr(e.inputs[0].dataType);e.compute(Lt(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))},hv=e=>{e.compute(Lt(e.inputs[0],"Not",r=>`!${r}`))},gv=e=>{e.compute(Lt(e.inputs[0],"Neg",r=>`-${r}`))},wv=e=>{e.compute(Lt(e.inputs[0],"Reciprocal",r=>`1.0/${r}`))},bv=e=>{let r=qr(e.inputs[0].dataType);e.compute(Lt(e.inputs[0],"Relu",t=>`select(vec4<${r}>(0.0), ${t}, ${t} > vec4<${r}>(0.0))`))},Mv=e=>{e.compute(Lt(e.inputs[0],"Sigmoid",r=>`(1.0 / (1.0 + exp(-${r})))`))},xv=e=>Bt(e),vv=(e,r)=>{let t=qr(e.inputs[0].dataType);e.compute(Lt(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))},yv=e=>{e.compute(Lt(e.inputs[0],"Sin","sin"))},Tv=e=>{e.compute(Lt(e.inputs[0],"Sinh","sinh"))},Pv=e=>{e.compute(Lt(e.inputs[0],"Sqrt","sqrt"))},Ev=e=>{e.compute(Lt(e.inputs[0],"Tan","tan"))},ld=e=>`sign(${e}) * (1 - exp(-2 * abs(${e}))) / (1 + exp(-2 * abs(${e})))`,kv=e=>{e.compute(Lt(e.inputs[0],"Tanh",ld))},Kd=(e="f32")=>`
459
+ }`,pv=e=>{let r=qr(e.inputs[0].dataType);e.compute(Lt(e.inputs[0],"Erf",t=>`erf_vf32(${t})`,Yi(r)))},_v=e=>{e.compute(Lt(e.inputs[0],"Exp","exp"))},mv=e=>{e.compute(Lt(e.inputs[0],"Floor","floor"))},fv=e=>{let r=qr(e.inputs[0].dataType);e.compute(Lt(e.inputs[0],"Gelu",t=>`0.5 * ${t} * (1.0 + erf_vf32(${t} * 0.7071067811865475))`,Yi(r)))},hv=(e,r)=>{let t=qr(e.inputs[0].dataType);e.compute(Lt(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))},gv=e=>{e.compute(Lt(e.inputs[0],"Not",r=>`!${r}`))},wv=e=>{e.compute(Lt(e.inputs[0],"Neg",r=>`-${r}`))},bv=e=>{e.compute(Lt(e.inputs[0],"Reciprocal",r=>`1.0/${r}`))},Mv=e=>{let r=qr(e.inputs[0].dataType);e.compute(Lt(e.inputs[0],"Relu",t=>`select(vec4<${r}>(0.0), ${t}, ${t} > vec4<${r}>(0.0))`))},xv=e=>{e.compute(Lt(e.inputs[0],"Sigmoid",r=>`(1.0 / (1.0 + exp(-${r})))`))},vv=e=>Bt(e),yv=(e,r)=>{let t=qr(e.inputs[0].dataType);e.compute(Lt(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))},Tv=e=>{e.compute(Lt(e.inputs[0],"Sin","sin"))},Pv=e=>{e.compute(Lt(e.inputs[0],"Sinh","sinh"))},Ev=e=>{e.compute(Lt(e.inputs[0],"Sqrt","sqrt"))},kv=e=>{e.compute(Lt(e.inputs[0],"Tan","tan"))},ld=e=>`sign(${e}) * (1 - exp(-2 * abs(${e}))) / (1 + exp(-2 * abs(${e})))`,Cv=e=>{e.compute(Lt(e.inputs[0],"Tanh",ld))},Kd=(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 ${ld("v")};
466
466
  }
467
- `,qd=e=>`(fast_gelu_a + fast_gelu_a * tanh_v(${e} * (fast_gelu_c * ${e} * ${e} + fast_gelu_b))) * ${e}`,Cv=e=>{let r=qr(e.inputs[0].dataType);e.compute(Lt(e.inputs[0],"FastGelu",qd,Kd(r),void 0,e.inputs[0].dataType))},Sv=(e,r)=>{let t=qr(e.inputs[0].dataType);return e.compute(Lt(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},Fv=e=>{e.compute(Lt(e.inputs[0],"Log","log"))},Mw=(e,r)=>`
467
+ `,qd=e=>`(fast_gelu_a + fast_gelu_a * tanh_v(${e} * (fast_gelu_c * ${e} * ${e} + fast_gelu_b))) * ${e}`,Sv=e=>{let r=qr(e.inputs[0].dataType);e.compute(Lt(e.inputs[0],"FastGelu",qd,Kd(r),void 0,e.inputs[0].dataType))},Fv=(e,r)=>{let t=qr(e.inputs[0].dataType);return e.compute(Lt(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},Iv=e=>{e.compute(Lt(e.inputs[0],"Log","log"))},xw=(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
- `,xw=e=>`quick_gelu_impl(${e})`,Iv=(e,r)=>{let t=qr(e.inputs[0].dataType);e.compute(Lt(e.inputs[0],"QuickGelu",xw,Mw(t,r.alpha),r.cacheKey,e.inputs[0].dataType))}}),vw,yw,Av,xP=ze(()=>{"use strict";Tt(),Et(),wu(),vw=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")},yw=e=>{let r=e[0].dims.slice();r[2]=r[2]/2;let t=ye("input",e[0].dataType,e[0].dims,4),s=ye("bias",e[0].dataType,[e[0].dims[2]],4),o=at("output",e[0].dataType,r,4),n=we.size(r)/4,a=kr(e[0].dataType);return{name:"BiasSplitGelu",getRunData:()=>({outputs:[{dims:r,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(n/64)}}),getShaderSource:i=>`
484
+ `,vw=e=>`quick_gelu_impl(${e})`,Av=(e,r)=>{let t=qr(e.inputs[0].dataType);e.compute(Lt(e.inputs[0],"QuickGelu",vw,xw(t,r.alpha),r.cacheKey,e.inputs[0].dataType))}}),yw,Tw,$v,vP=ze(()=>{"use strict";Tt(),Et(),wu(),yw=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")},Tw=e=>{let r=e[0].dims.slice();r[2]=r[2]/2;let t=ye("input",e[0].dataType,e[0].dims,4),s=ye("bias",e[0].dataType,[e[0].dims[2]],4),o=at("output",e[0].dataType,r,4),n=we.size(r)/4,a=kr(e[0].dataType);return{name:"BiasSplitGelu",getRunData:()=>({outputs:[{dims:r,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(n/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
- }`}},Av=e=>{vw(e.inputs),e.compute(yw(e.inputs))}}),Tw,Pw,xs,$v,Dv,Ov,Lv,Bv,zv,Rv,jv,Nv,Vv,vP=ze(()=>{"use strict";wt(),Tt(),Et(),Tw=(e,r,t,s,o,n,a,i,l,c,p,u)=>{let d,h;typeof i=="string"?d=h=(w,C)=>`${i}((${w}),(${C}))`:typeof i=="function"?d=h=i:(d=i.scalar,h=i.vector);let f=at("outputData",p,s.length,4),v=ye("aData",l,r.length,4),F=ye("bData",c,t.length,4),x;if(o)if(n){let w=we.size(r)===1,C=we.size(t)===1,y=r.length>0&&r[r.length-1]%4===0,P=t.length>0&&t[t.length-1]%4===0;w||C?x=f.setByOffset("global_idx",h(w?`${v.type.value}(${v.getByOffset("0")}.x)`:v.getByOffset("global_idx"),C?`${F.type.value}(${F.getByOffset("0")}.x)`:F.getByOffset("global_idx"))):x=`
502
+ }`}},$v=e=>{yw(e.inputs),e.compute(Tw(e.inputs))}}),Pw,Ew,xs,Dv,Ov,Lv,Bv,zv,Rv,jv,Nv,Vv,Wv,yP=ze(()=>{"use strict";wt(),Tt(),Et(),Pw=(e,r,t,s,o,n,a,i,l,c,p,u)=>{let d,h;typeof i=="string"?d=h=(w,C)=>`${i}((${w}),(${C}))`:typeof i=="function"?d=h=i:(d=i.scalar,h=i.vector);let f=at("outputData",p,s.length,4),v=ye("aData",l,r.length,4),F=ye("bData",c,t.length,4),x;if(o)if(n){let w=we.size(r)===1,C=we.size(t)===1,y=r.length>0&&r[r.length-1]%4===0,P=t.length>0&&t[t.length-1]%4===0;w||C?x=f.setByOffset("global_idx",h(w?`${v.type.value}(${v.getByOffset("0")}.x)`:v.getByOffset("global_idx"),C?`${F.type.value}(${F.getByOffset("0")}.x)`:F.getByOffset("global_idx"))):x=`
503
503
  let outputIndices = ${f.offsetToIndices("global_idx * 4u")};
504
504
  let offsetA = ${v.broadcastedIndicesToOffset("outputIndices",f)};
505
505
  let offsetB = ${F.broadcastedIndicesToOffset("outputIndices",f)};
@@ -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
  ${x}
535
- }`},Pw=(e,r,t,s,o,n,a=t.dataType)=>{let i=t.dims.map(v=>Number(v)??1),l=s.dims.map(v=>Number(v)??1),c=!we.areEqual(i,l),p=i,u=we.size(i),d=!1,h=!1,f=[c];if(c){let v=Mn.calcShape(i,l,!1);if(!v)throw new Error("Can't perform binary op on the given tensors");p=v.slice(),u=we.size(p);let F=we.size(i)===1,x=we.size(l)===1,w=i.length>0&&i[i.length-1]%4===0,C=l.length>0&&l[l.length-1]%4===0;f.push(F),f.push(x),f.push(w),f.push(C);let y=1;for(let P=1;P<p.length;P++){let I=i[i.length-P],g=l[l.length-P];if(I===g)y*=I;else break}y%4===0?(h=!0,d=!0):(F||x||w||C)&&(d=!0)}else d=!0;return f.push(d),{name:e,shaderCache:{hint:r+f.map(v=>v.toString()).join("_"),inputDependencies:["rank","rank"]},getShaderSource:v=>Tw(v,i,l,p,d,c,h,o,t.dataType,s.dataType,a,n),getRunData:()=>({outputs:[{dims:p,dataType:a}],dispatchGroup:{x:Math.ceil(u/64/4)},programUniforms:[{type:12,data:Math.ceil(we.size(p)/4)},...pt(i,l,p)]})}},xs=(e,r,t,s,o,n)=>{e.compute(Pw(r,o??"",e.inputs[0],e.inputs[1],t,s,n))},$v=e=>{xs(e,"Add",(r,t)=>`${r}+${t}`)},Dv=e=>{xs(e,"Div",(r,t)=>`${r}/${t}`)},Ov=e=>{xs(e,"Equal",{scalar:(r,t)=>`u32(${r}==${t})`,vector:(r,t)=>`vec4<u32>(${r}==${t})`},void 0,void 0,9)},Lv=e=>{xs(e,"Mul",(r,t)=>`${r}*${t}`)},Bv=e=>{let r=ye("input",e.inputs[0].dataType,e.inputs[0].dims).type.value;xs(e,"Pow",{scalar:(t,s)=>`pow_custom(${t},${s})`,vector:(t,s)=>`pow_vector_custom(${t},${s})`},`
535
+ }`},Ew=(e,r,t,s,o,n,a=t.dataType)=>{let i=t.dims.map(v=>Number(v)??1),l=s.dims.map(v=>Number(v)??1),c=!we.areEqual(i,l),p=i,u=we.size(i),d=!1,h=!1,f=[c];if(c){let v=bn.calcShape(i,l,!1);if(!v)throw new Error("Can't perform binary op on the given tensors");p=v.slice(),u=we.size(p);let F=we.size(i)===1,x=we.size(l)===1,w=i.length>0&&i[i.length-1]%4===0,C=l.length>0&&l[l.length-1]%4===0;f.push(F),f.push(x),f.push(w),f.push(C);let y=1;for(let P=1;P<p.length;P++){let I=i[i.length-P],g=l[l.length-P];if(I===g)y*=I;else break}y%4===0?(h=!0,d=!0):(F||x||w||C)&&(d=!0)}else d=!0;return f.push(d),{name:e,shaderCache:{hint:r+f.map(v=>v.toString()).join("_"),inputDependencies:["rank","rank"]},getShaderSource:v=>Pw(v,i,l,p,d,c,h,o,t.dataType,s.dataType,a,n),getRunData:()=>({outputs:[{dims:p,dataType:a}],dispatchGroup:{x:Math.ceil(u/64/4)},programUniforms:[{type:12,data:Math.ceil(we.size(p)/4)},...pt(i,l,p)]})}},xs=(e,r,t,s,o,n)=>{e.compute(Ew(r,o??"",e.inputs[0],e.inputs[1],t,s,n))},Dv=e=>{xs(e,"Add",(r,t)=>`${r}+${t}`)},Ov=e=>{xs(e,"Div",(r,t)=>`${r}/${t}`)},Lv=e=>{xs(e,"Equal",{scalar:(r,t)=>`u32(${r}==${t})`,vector:(r,t)=>`vec4<u32>(${r}==${t})`},void 0,void 0,9)},Bv=e=>{xs(e,"Mul",(r,t)=>`${r}*${t}`)},zv=e=>{let r=ye("input",e.inputs[0].dataType,e.inputs[0].dims).type.value;xs(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
- `)},zv=e=>{xs(e,"Sub",(r,t)=>`${r}-${t}`)},Rv=e=>{xs(e,"Greater",{scalar:(r,t)=>`u32(${r}>${t})`,vector:(r,t)=>`vec4<u32>(${r}>${t})`},void 0,void 0,9)},jv=e=>{xs(e,"Less",{scalar:(r,t)=>`u32(${r}<${t})`,vector:(r,t)=>`vec4<u32>(${r}<${t})`},void 0,void 0,9)},Nv=e=>{xs(e,"GreaterOrEqual",{scalar:(r,t)=>`u32(${r}>=${t})`,vector:(r,t)=>`vec4<u32>(${r}>=${t})`},void 0,void 0,9)},Vv=e=>{xs(e,"LessOrEqual",{scalar:(r,t)=>`u32(${r}<=${t})`,vector:(r,t)=>`vec4<u32>(${r}<=${t})`},void 0,void 0,9)}}),Ew,kw,Cw,Sw,Wv,Uv,yP=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),Ew=(e,r)=>{if(!e||e.length<1)throw new Error("too few inputs");let t=0,s=e[t],o=s.dataType,n=s.dims.length;e.forEach((a,i)=>{if(i!==t){if(a.dataType!==o)throw new Error("input tensors should be one type");if(a.dims.length!==n)throw new Error("input tensors should have the same shape");a.dims.forEach((l,c)=>{if(c!==r&&l!==s.dims[c])throw new Error("non concat dimensions must match")})}})},kw=(e,r)=>`
548
+ `)},Rv=e=>{xs(e,"Sub",(r,t)=>`${r}-${t}`)},jv=e=>{xs(e,"Greater",{scalar:(r,t)=>`u32(${r}>${t})`,vector:(r,t)=>`vec4<u32>(${r}>${t})`},void 0,void 0,9)},Nv=e=>{xs(e,"Less",{scalar:(r,t)=>`u32(${r}<${t})`,vector:(r,t)=>`vec4<u32>(${r}<${t})`},void 0,void 0,9)},Vv=e=>{xs(e,"GreaterOrEqual",{scalar:(r,t)=>`u32(${r}>=${t})`,vector:(r,t)=>`vec4<u32>(${r}>=${t})`},void 0,void 0,9)},Wv=e=>{xs(e,"LessOrEqual",{scalar:(r,t)=>`u32(${r}<=${t})`,vector:(r,t)=>`vec4<u32>(${r}<=${t})`},void 0,void 0,9)}}),kw,Cw,Sw,Fw,Uv,Gv,TP=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),kw=(e,r)=>{if(!e||e.length<1)throw new Error("too few inputs");let t=0,s=e[t],o=s.dataType,n=s.dims.length;e.forEach((a,i)=>{if(i!==t){if(a.dataType!==o)throw new Error("input tensors should be one type");if(a.dims.length!==n)throw new Error("input tensors should have the same shape");a.dims.forEach((l,c)=>{if(c!==r&&l!==s.dims[c])throw new Error("non concat dimensions must match")})}})},Cw=(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
- }`,Cw=(e,r)=>{let t=e.length,s=[];for(let o=0;o<t;++o){let n=r.setByOffset("global_idx",e[o].getByIndices("indices"));t===1?s.push(n):o===0?s.push(`if (inputIndex == ${o}u) { ${n} }`):o===t-1?s.push(`else { ${n} }`):s.push(`else if (inputIndex == ${o}) { ${n} }`)}return s.join(`
558
- `)},Sw=(e,r,t,s)=>{let o=we.size(t),n=new Array(e.length),a=new Array(e.length),i=0,l=[],c=[],p=[{type:12,data:o}];for(let v=0;v<e.length;++v)i+=e[v].dims[r],n[v]=i,c.push(e[v].dims.length),a[v]=ye(`input${v}`,s,c[v]),l.push("rank"),p.push({type:12,data:n[v]});for(let v=0;v<e.length;++v)p.push(...pt(e[v].dims));p.push(...pt(t));let u=at("output",s,t.length),d=u.indicesGet("indices",r),h=Array.from(Array(n.length).keys()).map(v=>`uniforms.sizeInConcatAxis${v}`).join(","),f=v=>`
557
+ }`,Sw=(e,r)=>{let t=e.length,s=[];for(let o=0;o<t;++o){let n=r.setByOffset("global_idx",e[o].getByIndices("indices"));t===1?s.push(n):o===0?s.push(`if (inputIndex == ${o}u) { ${n} }`):o===t-1?s.push(`else { ${n} }`):s.push(`else if (inputIndex == ${o}) { ${n} }`)}return s.join(`
558
+ `)},Fw=(e,r,t,s)=>{let o=we.size(t),n=new Array(e.length),a=new Array(e.length),i=0,l=[],c=[],p=[{type:12,data:o}];for(let v=0;v<e.length;++v)i+=e[v].dims[r],n[v]=i,c.push(e[v].dims.length),a[v]=ye(`input${v}`,s,c[v]),l.push("rank"),p.push({type:12,data:n[v]});for(let v=0;v<e.length;++v)p.push(...pt(e[v].dims));p.push(...pt(t));let u=at("output",s,t.length),d=u.indicesGet("indices",r),h=Array.from(Array(n.length).keys()).map(v=>`uniforms.sizeInConcatAxis${v}`).join(","),f=v=>`
559
559
 
560
560
  ${(()=>{v.registerUniform("outputSize","u32");for(let F=0;F<e.length;F++)v.registerUniform(`sizeInConcatAxis${F}`,"u32");return v.declareVariables(...a,u)})()}
561
561
 
562
- ${kw(n.length,h)}
562
+ ${Cw(n.length,h)}
563
563
 
564
564
  ${v.mainStart()}
565
565
  ${v.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
- ${Cw(a,u)}
576
- }`;return{name:"Concat",shaderCache:{hint:`${r}`,inputDependencies:l},getRunData:()=>({outputs:[{dims:t,dataType:s}],dispatchGroup:{x:Math.ceil(o/64)},programUniforms:p}),getShaderSource:f}},Wv=(e,r)=>{let t=e.inputs,s=t[0].dims,o=we.normalizeAxis(r.axis,s.length);Ew(t,o);let n=s.slice();n[o]=t.reduce((i,l)=>i+(l.dims.length>o?l.dims[o]:0),0);let a=t.filter(i=>we.size(i.dims)>0);e.compute(Sw(a,o,n,t[0].dataType),{inputs:a})},Uv=e=>Bt({axis:e.axis})}),Go,Ko,qo,bu,Qo=ze(()=>{"use strict";wt(),Tt(),Go=(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
+ ${Sw(a,u)}
576
+ }`;return{name:"Concat",shaderCache:{hint:`${r}`,inputDependencies:l},getRunData:()=>({outputs:[{dims:t,dataType:s}],dispatchGroup:{x:Math.ceil(o/64)},programUniforms:p}),getShaderSource:f}},Uv=(e,r)=>{let t=e.inputs,s=t[0].dims,o=we.normalizeAxis(r.axis,s.length);kw(t,o);let n=s.slice();n[o]=t.reduce((i,l)=>i+(l.dims.length>o?l.dims[o]:0),0);let a=t.filter(i=>we.size(i.dims)>0);e.compute(Fw(a,o,n,t[0].dataType),{inputs:a})},Gv=e=>Bt({axis:e.axis})}),Uo,Go,Ko,bu,Ho=ze(()=>{"use strict";wt(),Tt(),Uo=(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}`)}},Ko=(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})},qo=(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"})},bu=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||[hx,gx];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}}}),Dr,Gv,Mu=ze(()=>{"use strict";Dr=(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.`)}},Gv=e=>`
578
+ `;case"":return"";default:throw new Error(`Unsupported activation ${e.activation}`)}},Go=(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})},Ko=(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"})},bu=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||[gx,wx];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}}}),Dr,Kv,Mu=ze(()=>{"use strict";Dr=(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.`)}},Kv=e=>`
579
579
  ${e?"value = value + getBiasByOutputCoords(coords);":""}
580
- `}),Kv,TP=ze(()=>{"use strict";Kv=e=>`
580
+ `}),qv,PP=ze(()=>{"use strict";qv=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
- `}),ba,xu,vu=ze(()=>{"use strict";wt(),Tt(),Et(),Qo(),ba=(e,r,t,s,o)=>{let n=s-t;return`
589
+ `}),ba,xu,vu=ze(()=>{"use strict";wt(),Tt(),Et(),Ho(),ba=(e,r,t,s,o)=>{let n=s-t;return`
590
590
  ${Array.from({length:t}).map((a,i)=>`
591
591
  if (${it(r.shape,i,r.rank)} != 1) {
592
592
  ${r.indicesSet(e,i,it(o,i+n,s))}
593
593
  } else {
594
594
  ${r.indicesSet(e,i,0)}
595
595
  }`).join("")}
596
- `},xu=(e,r,t,s,o=!1,n)=>{let a=e[0].dims,i=e[1].dims,l=a[a.length-2],c=i[i.length-1],p=a[a.length-1],u=or(c),d=or(p),h=or(l),f=we.size(t)/u/h,v=e.length>2,F=s?s.slice(0,-2):t.slice(0,-2),x=[we.size(F),l,c],w=[{type:12,data:f},{type:12,data:l},{type:12,data:c},{type:12,data:p}];Ko(r,w),w.push(...pt(F,a,i)),v&&w.push(...pt(e[2].dims)),w.push(...pt(x));let C=y=>{let P=fu("batch_dims",e[0].dataType,F.length),I=ye("a",e[0].dataType,a.length,d),g=ye("b",e[1].dataType,i.length,u),E=at("output",e[0].dataType,x.length,u),$=kr(E.type.tensor),L=Go(r,E.type.value,$),G=[I,g],q="";if(v){let Q=o?u:1;G.push(ye("bias",e[2].dataType,e[2].dims.length,Q)),q=`${o?`value += bias[col / ${Q}];`:`value += ${E.type.value}(bias[row + i]);`}`}let O=[{name:"output_size",type:"u32"},{name:"M",type:"u32"},{name:"N",type:"u32"},{name:"K",type:"u32"}];qo(r,O);let J=()=>{let Q=`var a_data: ${I.type.value};`;for(let H=0;H<d;H++)Q+=`
596
+ `},xu=(e,r,t,s,o=!1,n)=>{let a=e[0].dims,i=e[1].dims,l=a[a.length-2],c=i[i.length-1],p=a[a.length-1],u=or(c),d=or(p),h=or(l),f=we.size(t)/u/h,v=e.length>2,F=s?s.slice(0,-2):t.slice(0,-2),x=[we.size(F),l,c],w=[{type:12,data:f},{type:12,data:l},{type:12,data:c},{type:12,data:p}];Go(r,w),w.push(...pt(F,a,i)),v&&w.push(...pt(e[2].dims)),w.push(...pt(x));let C=y=>{let P=fu("batch_dims",e[0].dataType,F.length),I=ye("a",e[0].dataType,a.length,d),g=ye("b",e[1].dataType,i.length,u),E=at("output",e[0].dataType,x.length,u),$=kr(E.type.tensor),L=Uo(r,E.type.value,$),G=[I,g],q="";if(v){let Q=o?u:1;G.push(ye("bias",e[2].dataType,e[2].dims.length,Q)),q=`${o?`value += bias[col / ${Q}];`:`value += ${E.type.value}(bias[row + i]);`}`}let O=[{name:"output_size",type:"u32"},{name:"M",type:"u32"},{name:"N",type:"u32"},{name:"K",type:"u32"}];Ko(r,O);let J=()=>{let Q=`var a_data: ${I.type.value};`;for(let H=0;H<d;H++)Q+=`
597
597
  let b_data${H} = b[(b_offset + (k + ${H}) * uniforms.N + col) / ${u}];`;for(let H=0;H<h;H++){Q+=`a_data = a[(a_offset + (row + ${H}) * uniforms.K + k) / ${d}];`;for(let te=0;te<d;te++)Q+=`
598
598
  values[${H}] = fma(${g.type.value}(a_data${d===1?"":`[${te}]`}), b_data${te}, values[${H}]);
599
599
  `}return Q};return`
@@ -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};${h};${o}`,inputDependencies:v?["rank","rank","rank"]:["rank","rank"]},getRunData:()=>({outputs:[{dims:n?n(t):t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(f/64)},programUniforms:w}),getShaderSource:C}}}),Fw,Iw,Hd,cd,Aw,Qd,$w,sl,yu=ze(()=>{"use strict";wt(),Tt(),Et(),Qo(),vu(),Mu(),Fw=(e,r)=>e?`
635
+ `};return{name:"MatMulNaive",shaderCache:{hint:`${r.activation};${u};${d};${h};${o}`,inputDependencies:v?["rank","rank","rank"]:["rank","rank"]},getRunData:()=>({outputs:[{dims:n?n(t):t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(f/64)},programUniforms:w}),getShaderSource:C}}}),Iw,Aw,Hd,cd,$w,Qd,Dw,sl,yu=ze(()=>{"use strict";wt(),Tt(),Et(),Ho(),vu(),Mu(),Iw=(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
- `,Iw=(e,r)=>e?`
643
+ `,Aw=(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
- ${Fw(o,s)}
697
+ ${Iw(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
- ${Iw(o,d)}
716
+ ${Aw(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
- `,Aw=e=>e?"let ACached = mm_Asub[k][tileRow + innerRow];":"let ACached = mm_Asub[tileRow + innerRow][k];",Qd=(e,r,t="f32",s,o=!1,n=32,a=!1,i=32,l=!1)=>{let c=e[1]*r[1],p=e[0]*r[0],u=o?c:n,d=o?n:c;if(!(d%r[1]===0&&u%r[0]===0&&n%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 ${n} must be divisible by workgroupSize[1]${r[1]}`);let h=d/r[1],f=u/r[0],v=n/r[1],F=l?`
733
+ `,$w=e=>e?"let ACached = mm_Asub[k][tileRow + innerRow];":"let ACached = mm_Asub[tileRow + innerRow][k];",Qd=(e,r,t="f32",s,o=!1,n=32,a=!1,i=32,l=!1)=>{let c=e[1]*r[1],p=e[0]*r[0],u=o?c:n,d=o?n:c;if(!(d%r[1]===0&&u%r[0]===0&&n%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 ${n} must be divisible by workgroupSize[1]${r[1]}`);let h=d/r[1],f=u/r[0],v=n/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
- ${Aw(o)}
824
+ ${$w(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,7 +856,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
856
856
  var acc : array<array<${t}, colPerThread>, rowPerThread>;
857
857
  ${F}
858
858
  }
859
- `},$w=(e,r,t,s,o=!1)=>{let[n,a,i,l]=s,c=kr(s[0].type.tensor);return`
859
+ `},Dw=(e,r,t,s,o=!1)=>{let[n,a,i,l]=s,c=kr(s[0].type.tensor);return`
860
860
  fn mm_readA(batch: i32, row: i32, colIn: i32, batchIndices: ${n.type.indices}) -> ${Dr(e,c)} {
861
861
  var value = ${Dr(e,c)}(0.0);
862
862
  let col = colIn * ${e};
@@ -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
- `},sl=(e,r,t,s,o=!1,n)=>{let a=e[0].dims,i=e[1].dims,l=a.slice(0,-2),c=i.slice(0,-2),p=s?s.slice(0,-2):t.slice(0,-2),u=we.size(p),d=a[a.length-2],h=a[a.length-1],f=i[i.length-1],v=h%4===0&&f%4===0,F=d<=8?[4,1,1]:[4,4,1],x=[8,8,1],w=[Math.ceil(f/x[0]/F[0]),Math.ceil(d/x[1]/F[1]),Math.ceil(u/x[2]/F[2])],C=v?4:1,y=[...l,d,h/C],P=y.length,I=[...c,h,f/C],g=I.length,E=[u,d,f/C],$=[{type:6,data:d},{type:6,data:f},{type:6,data:h}];Ko(r,$),$.push(...pt(p,y,I));let L=["rank","rank"],G=e.length>2;G&&($.push(...pt(e[2].dims)),L.push("rank")),$.push(...pt(E));let q=O=>{let J=p.length,Q=fu("batchDims",e[0].dataType,J,1),H=kr(e[0].dataType),te=ye("a",e[0].dataType,P,C),re=ye("b",e[1].dataType,g,C),le=at("result",e[0].dataType,E.length,C),be=[te,re];if(G){let ne=o?C:1;be.push(ye("bias",e[2].dataType,e[2].dims.length,ne))}let z=[{name:"dim_a_outer",type:"i32"},{name:"dim_b_outer",type:"i32"},{name:"dim_inner",type:"i32"}];qo(r,z);let D=kr(le.type.tensor),K=Go(r,le.type.value,D),R=$w(C,G,K,[Q,te,re,le],o);return`
898
+ `},sl=(e,r,t,s,o=!1,n)=>{let a=e[0].dims,i=e[1].dims,l=a.slice(0,-2),c=i.slice(0,-2),p=s?s.slice(0,-2):t.slice(0,-2),u=we.size(p),d=a[a.length-2],h=a[a.length-1],f=i[i.length-1],v=h%4===0&&f%4===0,F=d<=8?[4,1,1]:[4,4,1],x=[8,8,1],w=[Math.ceil(f/x[0]/F[0]),Math.ceil(d/x[1]/F[1]),Math.ceil(u/x[2]/F[2])],C=v?4:1,y=[...l,d,h/C],P=y.length,I=[...c,h,f/C],g=I.length,E=[u,d,f/C],$=[{type:6,data:d},{type:6,data:f},{type:6,data:h}];Go(r,$),$.push(...pt(p,y,I));let L=["rank","rank"],G=e.length>2;G&&($.push(...pt(e[2].dims)),L.push("rank")),$.push(...pt(E));let q=O=>{let J=p.length,Q=fu("batchDims",e[0].dataType,J,1),H=kr(e[0].dataType),te=ye("a",e[0].dataType,P,C),re=ye("b",e[1].dataType,g,C),le=at("result",e[0].dataType,E.length,C),be=[te,re];if(G){let ne=o?C:1;be.push(ye("bias",e[2].dataType,e[2].dims.length,ne))}let z=[{name:"dim_a_outer",type:"i32"},{name:"dim_b_outer",type:"i32"},{name:"dim_inner",type:"i32"}];Ko(r,z);let D=kr(le.type.tensor),K=Uo(r,le.type.value,D),R=Dw(C,G,K,[Q,te,re,le],o);return`
899
899
  ${O.registerUniforms(z).registerInternalVariables(Q).declareVariables(...be,le)}
900
900
  ${R}
901
901
  ${v?Hd(F,x,H,Q):Qd(F,x,H,Q)}
902
- `};return{name:"MatMul",shaderCache:{hint:`${F};${r.activation};${v};${o}`,inputDependencies:L},getRunData:()=>({outputs:[{dims:n?n(t):t,dataType:e[0].dataType}],dispatchGroup:{x:w[0],y:w[1],z:w[2]},programUniforms:$}),getShaderSource:q}}}),Dw,qv,PP=ze(()=>{"use strict";wt(),qs(),Et(),Qo(),Mu(),TP(),yu(),Dw=(e,r,t,s,o=!1,n,a=4,i=4,l=4,c="f32")=>{let p=$=>{switch($){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 ${$} is not supported.`)}},u=$=>{switch($){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 ${$} is not supported.`)}},d=e?`
902
+ `};return{name:"MatMul",shaderCache:{hint:`${F};${r.activation};${v};${o}`,inputDependencies:L},getRunData:()=>({outputs:[{dims:n?n(t):t,dataType:e[0].dataType}],dispatchGroup:{x:w[0],y:w[1],z:w[2]},programUniforms:$}),getShaderSource:q}}}),Ow,Hv,EP=ze(()=>{"use strict";wt(),qs(),Et(),Ho(),Mu(),PP(),yu(),Ow=(e,r,t,s,o=!1,n,a=4,i=4,l=4,c="f32")=>{let p=$=>{switch($){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 ${$} is not supported.`)}},u=$=>{switch($){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 ${$} 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 ${Dr(i,c)}(0.0);`,P=Dr(l,c),I=Dr(e?a:i,c),g=Dr(e?i:a,c),E=Go(n,P,c);return`
961
+ return ${Dr(i,c)}(0.0);`,P=Dr(l,c),I=Dr(e?a:i,c),g=Dr(e?i:a,c),E=Uo(n,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
  ${h}
977
- ${Gv(o)}
977
+ ${Kv(o)}
978
978
  ${E}
979
979
  setOutputAtCoords(coords[0], coords[1], coords[2], coords[3], value);
980
980
  }
981
- }`},qv=(e,r,t,s,o,n,a,i,l)=>{let c=r.format==="NHWC",p=c?e[0].dims[3]:e[0].dims[1],u=t[0],d=c?t[2]:t[3],h=c?t[1]:t[2],f=c?t[3]:t[1],v=c&&(p%4===0||p%3===0)&&f%4===0,F=c?f:d*h,x=c?d*h:f,w=[8,8,1],C=s<=8?[4,1,1]:[4,4,1],y=[Math.ceil(F/w[0]/C[0]),Math.ceil(x/w[1]/C[1]),Math.ceil(u/w[2]/C[2])];$t("verbose",()=>`[conv2d_mm_webgpu] dispatch = ${y}`);let P=v?c&&p%4!==0?3:4:1,I=w[1]*C[1],g=w[0]*C[0],E=Math.max(w[0]*P,w[1]),$=s%I===0,L=o%g===0,G=n%E===0,q=v?[P,4,4]:[1,1,1],O=[{type:6,data:s},{type:6,data:o},{type:6,data:n},{type:6,data:[r.pads[0],r.pads[1]]},{type:6,data:r.strides},{type:6,data:r.dilations}];Ko(r,O),O.push(...pt(e[0].dims,e[1].dims));let J=["rank","rank"];a&&(O.push(...pt(e[2].dims)),J.push("rank")),O.push(...pt(t));let Q=H=>{let te=[{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}];qo(r,te);let re=v?4:1,le=kr(e[0].dataType),be=`
981
+ }`},Hv=(e,r,t,s,o,n,a,i,l)=>{let c=r.format==="NHWC",p=c?e[0].dims[3]:e[0].dims[1],u=t[0],d=c?t[2]:t[3],h=c?t[1]:t[2],f=c?t[3]:t[1],v=c&&(p%4===0||p%3===0)&&f%4===0,F=c?f:d*h,x=c?d*h:f,w=[8,8,1],C=s<=8?[4,1,1]:[4,4,1],y=[Math.ceil(F/w[0]/C[0]),Math.ceil(x/w[1]/C[1]),Math.ceil(u/w[2]/C[2])];$t("verbose",()=>`[conv2d_mm_webgpu] dispatch = ${y}`);let P=v?c&&p%4!==0?3:4:1,I=w[1]*C[1],g=w[0]*C[0],E=Math.max(w[0]*P,w[1]),$=s%I===0,L=o%g===0,G=n%E===0,q=v?[P,4,4]:[1,1,1],O=[{type:6,data:s},{type:6,data:o},{type:6,data:n},{type:6,data:[r.pads[0],r.pads[1]]},{type:6,data:r.strides},{type:6,data:r.dilations}];Go(r,O),O.push(...pt(e[0].dims,e[1].dims));let J=["rank","rank"];a&&(O.push(...pt(e[2].dims)),J.push("rank")),O.push(...pt(t));let Q=H=>{let te=[{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}];Ko(r,te);let re=v?4:1,le=kr(e[0].dataType),be=`
982
982
  fn setOutputAtIndex(flatIndex : i32, value : ${v?`vec4<${le}>`:le}) {
983
983
  result[flatIndex] = ${v?`vec4<${le}>`:le}(value);
984
984
  }
@@ -989,17 +989,17 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
989
989
  fn getBiasByOutputCoords(coords : vec4<i32>) -> ${v?`vec4<${le}>`:le} {
990
990
  return bias[coords.${c?"w":"y"}${v?"/ 4":""}];
991
991
  }`}return`
992
- ${Kv("uniforms.result_strides")}
992
+ ${qv("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
  ${H.registerUniforms(te).declareVariables(...K,R)}
997
997
  ${be}
998
- ${Dw(c,$,L,G,a,r,q[0],q[1],q[2],le)}
999
- ${v?Hd(C,w,le,void 0,!c,E):Qd(C,w,le,void 0,!c,E,!1,void 0,i)}`};return{name:"Conv2DMatMul",shaderCache:{hint:`${r.cacheKey};${P};${v};${$};${L};${G};${I};${g};${E}`,inputDependencies:J},getRunData:()=>({outputs:[{dims:l?l(t):t,dataType:e[0].dataType}],dispatchGroup:{x:y[0],y:y[1],z:y[2]},programUniforms:O}),getShaderSource:Q}}}),Ow,dd,ca,Lw,ud,Bw,Hv,Qv,EP=ze(()=>{"use strict";wt(),qs(),Tt(),Et(),Qo(),Mu(),Ow=e=>{let r=1;for(let t=0;t<e.length;t++)r*=e[t];return r},dd=e=>typeof e=="number"?[e,e,e]:e,ca=(e,r)=>r<=1?e:e+(e-1)*(r-1),Lw=(e,r,t,s=1)=>{let o=ca(r,s);return Math.floor((e[0]*(t-1)-t+o)/2)},ud=(e,r,t,s,o)=>{o==null&&(o=Lw(e,r[0],s[0]));let n=[0,0,0,t];for(let a=0;a<3;a++)e[a]+2*o>=r[a]&&(n[a]=Math.trunc((e[a]-r[a]+2*o)/s[a]+1));return n},Bw=(e,r,t,s,o,n,a,i,l,c)=>{let p,u,d,h;if(e==="VALID"&&(e=0),typeof e=="number"){p={top:e,bottom:e,left:e,right:e,front:e,back:e};let f=ud([r,t,s,1],[i,l,c],1,[o,n,a],e);u=f[0],d=f[1],h=f[2]}else if(Array.isArray(e)){if(!e.every((v,F,x)=>v===x[0]))throw Error(`Unsupported padding parameter: ${e}`);p={top:e[0],bottom:e[1],left:e[2],right:e[3],front:e[4],back:e[5]};let f=ud([r,t,s,1],[i,l,c],1,[o,n,a],e[0]);u=f[0],d=f[1],h=f[2]}else if(e==="SAME_UPPER"){u=Math.ceil(r/o),d=Math.ceil(t/n),h=Math.ceil(s/a);let f=(u-1)*o+i-r,v=(d-1)*n+l-t,F=(h-1)*a+c-s,x=Math.floor(f/2),w=f-x,C=Math.floor(v/2),y=v-C,P=Math.floor(F/2),I=F-P;p={top:C,bottom:y,left:P,right:I,front:x,back:w}}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:p,outDepth:u,outHeight:d,outWidth:h}},Hv=(e,r,t,s,o,n=!1,a="channelsLast")=>{let i,l,c,p,u;if(a==="channelsLast")[i,l,c,p,u]=e;else if(a==="channelsFirst")[i,u,l,c,p]=e;else throw new Error(`Unknown dataFormat ${a}`);let[d,,h,f,v]=r,[F,x,w]=dd(t),[C,y,P]=dd(s),I=ca(h,C),g=ca(f,y),E=ca(v,P),{padInfo:$,outDepth:L,outHeight:G,outWidth:q}=Bw(o,l,c,p,F,x,w,I,g,E),O=n?d*u:d,J=[0,0,0,0,0];return a==="channelsFirst"?J=[i,O,L,G,q]:a==="channelsLast"&&(J=[i,L,G,q,O]),{batchSize:i,dataFormat:a,inDepth:l,inHeight:c,inWidth:p,inChannels:u,outDepth:L,outHeight:G,outWidth:q,outChannels:O,padInfo:$,strideDepth:F,strideHeight:x,strideWidth:w,filterDepth:h,filterHeight:f,filterWidth:v,effectiveFilterDepth:I,effectiveFilterHeight:g,effectiveFilterWidth:E,dilationDepth:C,dilationHeight:y,dilationWidth:P,inShape:e,outShape:J,filterShape:r}},Qv=(e,r,t,s,o,n)=>{let a=n==="channelsLast",i=a?e[0].dims[3]:e[0].dims[1],l=!1,c=[64,1,1],p={x:t.map((w,C)=>C)},u=[Math.ceil(Ow(p.x.map(w=>t[w]))/c[0]),1,1];$t("verbose",()=>`[conv3d_naive_webgpu] dispatch = ${u}`);let d=l?a&&i%4!==0?3:4:1,h=we.size(t),f=[{type:12,data:h},{type:12,data:s},{type:12,data:o},{type:12,data:r.strides},{type:12,data:r.dilations}];Ko(r,f),f.push(...pt(e[0].dims,e[1].dims));let v=["rank","rank"],F=e.length===3;F&&(f.push(...pt(e[2].dims)),v.push("rank")),f.push(...pt(t));let x=w=>{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}];qo(r,C);let y=l?4:1,P=kr(e[0].dataType),I=ye("x",e[0].dataType,e[0].dims.length,d===3?1:d),g=ye("W",e[1].dataType,e[1].dims.length,y),E=[I,g],$=at("result",e[0].dataType,t.length,y),L="";if(F){let O=ye("bias",e[2].dataType,e[2].dims.length,y);E.push(O),L+=`
998
+ ${Ow(c,$,L,G,a,r,q[0],q[1],q[2],le)}
999
+ ${v?Hd(C,w,le,void 0,!c,E):Qd(C,w,le,void 0,!c,E,!1,void 0,i)}`};return{name:"Conv2DMatMul",shaderCache:{hint:`${r.cacheKey};${P};${v};${$};${L};${G};${I};${g};${E}`,inputDependencies:J},getRunData:()=>({outputs:[{dims:l?l(t):t,dataType:e[0].dataType}],dispatchGroup:{x:y[0],y:y[1],z:y[2]},programUniforms:O}),getShaderSource:Q}}}),Lw,dd,ca,Bw,ud,zw,Qv,Xv,kP=ze(()=>{"use strict";wt(),qs(),Tt(),Et(),Ho(),Mu(),Lw=e=>{let r=1;for(let t=0;t<e.length;t++)r*=e[t];return r},dd=e=>typeof e=="number"?[e,e,e]:e,ca=(e,r)=>r<=1?e:e+(e-1)*(r-1),Bw=(e,r,t,s=1)=>{let o=ca(r,s);return Math.floor((e[0]*(t-1)-t+o)/2)},ud=(e,r,t,s,o)=>{o==null&&(o=Bw(e,r[0],s[0]));let n=[0,0,0,t];for(let a=0;a<3;a++)e[a]+2*o>=r[a]&&(n[a]=Math.trunc((e[a]-r[a]+2*o)/s[a]+1));return n},zw=(e,r,t,s,o,n,a,i,l,c)=>{let p,u,d,h;if(e==="VALID"&&(e=0),typeof e=="number"){p={top:e,bottom:e,left:e,right:e,front:e,back:e};let f=ud([r,t,s,1],[i,l,c],1,[o,n,a],e);u=f[0],d=f[1],h=f[2]}else if(Array.isArray(e)){if(!e.every((v,F,x)=>v===x[0]))throw Error(`Unsupported padding parameter: ${e}`);p={top:e[0],bottom:e[1],left:e[2],right:e[3],front:e[4],back:e[5]};let f=ud([r,t,s,1],[i,l,c],1,[o,n,a],e[0]);u=f[0],d=f[1],h=f[2]}else if(e==="SAME_UPPER"){u=Math.ceil(r/o),d=Math.ceil(t/n),h=Math.ceil(s/a);let f=(u-1)*o+i-r,v=(d-1)*n+l-t,F=(h-1)*a+c-s,x=Math.floor(f/2),w=f-x,C=Math.floor(v/2),y=v-C,P=Math.floor(F/2),I=F-P;p={top:C,bottom:y,left:P,right:I,front:x,back:w}}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:p,outDepth:u,outHeight:d,outWidth:h}},Qv=(e,r,t,s,o,n=!1,a="channelsLast")=>{let i,l,c,p,u;if(a==="channelsLast")[i,l,c,p,u]=e;else if(a==="channelsFirst")[i,u,l,c,p]=e;else throw new Error(`Unknown dataFormat ${a}`);let[d,,h,f,v]=r,[F,x,w]=dd(t),[C,y,P]=dd(s),I=ca(h,C),g=ca(f,y),E=ca(v,P),{padInfo:$,outDepth:L,outHeight:G,outWidth:q}=zw(o,l,c,p,F,x,w,I,g,E),O=n?d*u:d,J=[0,0,0,0,0];return a==="channelsFirst"?J=[i,O,L,G,q]:a==="channelsLast"&&(J=[i,L,G,q,O]),{batchSize:i,dataFormat:a,inDepth:l,inHeight:c,inWidth:p,inChannels:u,outDepth:L,outHeight:G,outWidth:q,outChannels:O,padInfo:$,strideDepth:F,strideHeight:x,strideWidth:w,filterDepth:h,filterHeight:f,filterWidth:v,effectiveFilterDepth:I,effectiveFilterHeight:g,effectiveFilterWidth:E,dilationDepth:C,dilationHeight:y,dilationWidth:P,inShape:e,outShape:J,filterShape:r}},Xv=(e,r,t,s,o,n)=>{let a=n==="channelsLast",i=a?e[0].dims[3]:e[0].dims[1],l=!1,c=[64,1,1],p={x:t.map((w,C)=>C)},u=[Math.ceil(Lw(p.x.map(w=>t[w]))/c[0]),1,1];$t("verbose",()=>`[conv3d_naive_webgpu] dispatch = ${u}`);let d=l?a&&i%4!==0?3:4:1,h=we.size(t),f=[{type:12,data:h},{type:12,data:s},{type:12,data:o},{type:12,data:r.strides},{type:12,data:r.dilations}];Go(r,f),f.push(...pt(e[0].dims,e[1].dims));let v=["rank","rank"],F=e.length===3;F&&(f.push(...pt(e[2].dims)),v.push("rank")),f.push(...pt(t));let x=w=>{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}];Ko(r,C);let y=l?4:1,P=kr(e[0].dataType),I=ye("x",e[0].dataType,e[0].dims.length,d===3?1:d),g=ye("W",e[1].dataType,e[1].dims.length,y),E=[I,g],$=at("result",e[0].dataType,t.length,y),L="";if(F){let O=ye("bias",e[2].dataType,e[2].dims.length,y);E.push(O),L+=`
1000
1000
  fn getBiasByOutputCoords(coords : array<u32, 5>) -> ${l?`vec4<${P}>`:P} {
1001
1001
  return bias[${a?it("coords",4,5):it("coords",1,5)}${l?"/ 4":""}];
1002
- }`}let G=Dr(d,P),q=Go(r,G,P);return`
1002
+ }`}let G=Dr(d,P),q=Uo(r,G,P);return`
1003
1003
  ${L}
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
  ${q}
1106
1106
  result[global_idx] = f32(value);
1107
- }`};return{name:"Conv3DNaive",shaderCache:{hint:`${r.cacheKey};${a};${d};${F}`,inputDependencies:v},getRunData:()=>({outputs:[{dims:t,dataType:e[0].dataType}],dispatchGroup:{x:u[0],y:u[1],z:u[2]},programUniforms:f}),getShaderSource:x}}}),Xv,Jv,kP=ze(()=>{"use strict";wt(),Tt(),Et(),Qo(),Xv=(e,r,t,s)=>{let o=e.length>2,n=o?"value += b[output_channel];":"",a=e[0].dims,i=e[1].dims,l=r.format==="NHWC",c=l?t[3]:t[1],p=c/r.group,u=l&&p>=4?or(c):1,d=we.size(t)/u,h=[{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:p}];Ko(r,h),h.push(...pt(a,[i[0],i[1],i[2],i[3]/u]));let f=o?["rank","rank","rank"]:["rank","rank"];h.push(...pt([t[0],t[1],t[2],t[3]/u]));let v=F=>{let x=at("output",e[0].dataType,t.length,u),w=kr(x.type.tensor),C=Go(r,x.type.value,w),y=ye("x",e[0].dataType,a.length),P=ye("w",e[1].dataType,i.length,u),I=[y,P];o&&I.push(ye("b",e[2].dataType,e[2].dims,u));let g=[{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"}];qo(r,g);let E=l?`
1107
+ }`};return{name:"Conv3DNaive",shaderCache:{hint:`${r.cacheKey};${a};${d};${F}`,inputDependencies:v},getRunData:()=>({outputs:[{dims:t,dataType:e[0].dataType}],dispatchGroup:{x:u[0],y:u[1],z:u[2]},programUniforms:f}),getShaderSource:x}}}),Jv,Yv,CP=ze(()=>{"use strict";wt(),Tt(),Et(),Ho(),Jv=(e,r,t,s)=>{let o=e.length>2,n=o?"value += b[output_channel];":"",a=e[0].dims,i=e[1].dims,l=r.format==="NHWC",c=l?t[3]:t[1],p=c/r.group,u=l&&p>=4?or(c):1,d=we.size(t)/u,h=[{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:p}];Go(r,h),h.push(...pt(a,[i[0],i[1],i[2],i[3]/u]));let f=o?["rank","rank","rank"]:["rank","rank"];h.push(...pt([t[0],t[1],t[2],t[3]/u]));let v=F=>{let x=at("output",e[0].dataType,t.length,u),w=kr(x.type.tensor),C=Uo(r,x.type.value,w),y=ye("x",e[0].dataType,a.length),P=ye("w",e[1].dataType,i.length,u),I=[y,P];o&&I.push(ye("b",e[2].dataType,e[2].dims,u));let g=[{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"}];Ko(r,g);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
  ${n}
1167
1167
  ${C}
1168
1168
  ${x.setByOffset("global_idx","value")}
1169
- }`};return{name:"GroupedConv",shaderCache:{hint:`${r.cacheKey}_${u}`,inputDependencies:f},getRunData:()=>({outputs:[{dims:s?s(t):t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(d/64)},programUniforms:h}),getShaderSource:v}},Jv=(e,r,t,s)=>{let o=e.length>2,n=or(t[3]),a=or(t[2]),i=we.size(t)/n/a,l=[e[0].dims[0],e[0].dims[1],e[0].dims[2],e[0].dims[3]/n],c=[e[1].dims[0],e[1].dims[1],e[1].dims[2],e[1].dims[3]/n],p=[t[0],t[1],t[2],t[3]/n],u=[{type:12,data:i},{type:6,data:[r.strides[0],r.strides[1]]},{type:6,data:[r.pads[0],r.pads[1]]}];Ko(r,u),u.push(...pt(l,c,p));let d=(a-1)*r.strides[1]+c[1],h=f=>{let v=at("output",e[0].dataType,p.length,n),F=kr(v.type.tensor),x=Go(r,v.type.value,F),w=ye("x",e[0].dataType,l.length,n),C=ye("w",e[1].dataType,c.length,n),y=[w,C];o&&y.push(ye("b",e[2].dataType,e[2].dims,n));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 qo(r,I),`
1169
+ }`};return{name:"GroupedConv",shaderCache:{hint:`${r.cacheKey}_${u}`,inputDependencies:f},getRunData:()=>({outputs:[{dims:s?s(t):t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(d/64)},programUniforms:h}),getShaderSource:v}},Yv=(e,r,t,s)=>{let o=e.length>2,n=or(t[3]),a=or(t[2]),i=we.size(t)/n/a,l=[e[0].dims[0],e[0].dims[1],e[0].dims[2],e[0].dims[3]/n],c=[e[1].dims[0],e[1].dims[1],e[1].dims[2],e[1].dims[3]/n],p=[t[0],t[1],t[2],t[3]/n],u=[{type:12,data:i},{type:6,data:[r.strides[0],r.strides[1]]},{type:6,data:[r.pads[0],r.pads[1]]}];Go(r,u),u.push(...pt(l,c,p));let d=(a-1)*r.strides[1]+c[1],h=f=>{let v=at("output",e[0].dataType,p.length,n),F=kr(v.type.tensor),x=Uo(r,v.type.value,F),w=ye("x",e[0].dataType,l.length,n),C=ye("w",e[1].dataType,c.length,n),y=[w,C];o&&y.push(ye("b",e[2].dataType,e[2].dims,n));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 Ko(r,I),`
1170
1170
  ${f.registerUniforms(I).declareVariables(...y,v)}
1171
1171
  ${f.mainStart()}
1172
1172
  ${f.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
@@ -1211,7 +1211,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
1211
1211
  ${x}
1212
1212
  ${v.set("batch","row","col + i","output_channel","value")};
1213
1213
  }
1214
- }`};return{name:"GroupedConv-Vectorize",shaderCache:{hint:`${r.cacheKey};${n};${a};${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:h}}}),zw,Gi,Rw,Ki,Xd,pd,jw,Nw,Jd,CP=ze(()=>{"use strict";Tt(),PP(),EP(),yu(),kP(),Qo(),vu(),uo(),zw=(e,r,t,s,o,n)=>{let a=e[0],i=e.slice(n?1:2,n?3:4),l=i.length,c=r[0],p=r.slice(2).map((d,h)=>d+(d-1)*(t[h]-1)),u=i.map((d,h)=>d+s[h]+s[h+l]).map((d,h)=>Math.floor((d-p[h]+o[h])/o[h]));return u.splice(0,0,a),u.splice(n?3:1,0,c),u},Gi=[2,3,1,0],Rw=(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")},Ki=(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 n=2;n<r[1].dims.length;++n)t[n-2]===0&&(t[n-2]=r[1].dims[n]);let s=e.pads.slice();tl.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},Xd=e=>{let r=bu(e),t=e.format,s=["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][e.auto_pad],o=e.dilations,n=e.group,a=e.kernel_shape,i=e.pads,l=e.strides,c=e.w_is_const();return{autoPad:s,format:t,dilations:o,group:n,kernelShape:a,pads:i,strides:l,wIsConst:c,...r,cacheKey:`${e.format};${r.activation};`}},pd=(e,r,t,s)=>{let o=t.format==="NHWC",n=zw(r[0].dims,r[1].dims,t.dilations,t.pads,t.strides,o);if(t.group!==1){let I=[r[0]];if(o){let g=e.kernelCustomData.wT??e.compute(ss(r[1],Gi),{inputs:[1],outputs:[t.wIsConst?-2:-1]})[0];t.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=g),I.push(g)}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(Jv(I,t,n,s),{inputs:I}):e.compute(Xv(I,t,n,s),{inputs:I});return}let a=r.length===3,i=r[0].dims[o?1:2],l=r[0].dims[o?2:3],c=r[0].dims[o?3:1],p=r[1].dims[2],u=r[1].dims[3],d=n[o?1:2],h=n[o?2:3],f=n[o?3:1],v=o&&p===i&&u===l&&t.pads[0]===0&&t.pads[1]===0;if(v||p===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=n[0],g,E,$,L=[];if(o){let O=e.kernelCustomData.wT??e.compute(ss(r[1],Gi),{inputs:[1],outputs:[t.wIsConst?-2:-1]})[0];if(t.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=O),v){let J=i*l*c;g=r[0].reshape([1,I,J]),E=O.reshape([1,J,f]),$=[1,I,f]}else g=r[0].reshape([I,i*l,c]),E=O.reshape([1,c,f]),$=[I,d*h,f];L.push(g),L.push(E)}else g=r[0].reshape([I,c,i*l]),E=r[1].reshape([1,f,c]),$=[I,f,d*h],L.push(E),L.push(g);a&&L.push(r[2]);let G=$[2],q=L[0].dims[L[0].dims.length-1];G<8&&q<8?e.compute(xu(L,t,n,$,o,s),{inputs:L}):e.compute(sl(L,t,n,$,o,s),{inputs:L});return}let F=!0,x=e.kernelCustomData.wT??e.compute(ss(r[1],Gi),{inputs:[1],outputs:[t.wIsConst?-2:-1]})[0];t.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=x);let w=[r[0],x];a&&w.push(r[2]);let C=o?d*h:f,y=o?f:d*h,P=p*u*c;e.compute(qv(w,t,n,C,y,P,a,F,s),{inputs:w})},jw=(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]],n=[1].concat(r.strides),a=[1].concat(r.dilations),i=[1].concat(r.kernelShape),l=Ki({...r,pads:o,strides:n,dilations:a,kernelShape:i},s);pd(e,s,l,c=>t?[c[0],c[2],c[3]]:[c[0],c[1],c[3]])},Nw=(e,r,t)=>{let s=t.format==="NHWC"?"channelsLast":"channelsFirst",o=Ki(t,r),n=t.autoPad==="NOTSET"?t.pads:t.autoPad,a=Hv(r[0].dims,r[1].dims,t.strides,t.dilations,n,!1,s);e.compute(Qv(r,o,a.outShape,[a.filterDepth,a.filterHeight,a.filterWidth],[a.padInfo.front,a.padInfo.top,a.padInfo.left],s))},Jd=(e,r)=>{if(Rw(e.inputs,r),e.inputs[0].dims.length===3)jw(e,r);else if(e.inputs[0].dims.length===5)Nw(e,e.inputs,r);else{let t=Ki(r,e.inputs);pd(e,e.inputs,t)}}}),Yv,SP=ze(()=>{"use strict";wt(),qs(),Tt(),Et(),Yv=(e,r,t)=>{let s=e.length>2,o=r.outputShape,n=r.format==="NHWC",a=r.group,i=e[1].dims,l=i[2]/a,c=i[3],p=n?or(l):1,u=n&&c===1&&l>=4,d=u?Math.floor(l/4)*4:Math.floor(l/p)*p,h=l-d,f=n?or(c):1,v=n?c===1?p:f:1,F=we.size(o)/f,x=[Math.ceil(F/64),1,1];$t("verbose",()=>`[conv2d_backprop_webgpu] dispatch = ${x}`);let w=["rank","rank"],C=[r.strides[0],r.strides[1]],y=[r.kernelShape[n?1:2],r.kernelShape[n?2:3]],P=[r.dilations[0],r.dilations[1]],I=[y[0]+(r.dilations[0]<=1?0:(r.kernelShape[n?1:2]-1)*(r.dilations[0]-1)),y[1]+(r.dilations[1]<=1?0:(r.kernelShape[n?2:3]-1)*(r.dilations[1]-1))],g=[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:g},{type:12,data:d},{type:12,data:l},{type:12,data:c},...pt(e[0].dims,e[1].dims)];s&&(E.push(...pt(e[2].dims)),w.push("rank")),E.push(...pt(o));let $=L=>{let G=[{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:g.length},{name:"input_channels_per_group_int",type:"u32"},{name:"input_channels_per_group",type:"u32"},{name:"output_channels_per_group",type:"u32"}],q=kr(e[0].dataType),O=n?1:2,J=n?2:3,Q=n?3:1,H=ye("W",e[1].dataType,e[1].dims.length,v),te=ye("Dy",e[0].dataType,e[0].dims.length,p),re=[te,H];s&&re.push(ye("bias",e[2].dataType,[o[Q]].length,f));let le=at("result",e[0].dataType,o.length,f),be=()=>{let K="";if(u)p===4?K+=`
1214
+ }`};return{name:"GroupedConv-Vectorize",shaderCache:{hint:`${r.cacheKey};${n};${a};${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:h}}}),Rw,Gi,jw,Ki,Xd,pd,Nw,Vw,Jd,SP=ze(()=>{"use strict";Tt(),EP(),kP(),yu(),CP(),Ho(),vu(),uo(),Rw=(e,r,t,s,o,n)=>{let a=e[0],i=e.slice(n?1:2,n?3:4),l=i.length,c=r[0],p=r.slice(2).map((d,h)=>d+(d-1)*(t[h]-1)),u=i.map((d,h)=>d+s[h]+s[h+l]).map((d,h)=>Math.floor((d-p[h]+o[h])/o[h]));return u.splice(0,0,a),u.splice(n?3:1,0,c),u},Gi=[2,3,1,0],jw=(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")},Ki=(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 n=2;n<r[1].dims.length;++n)t[n-2]===0&&(t[n-2]=r[1].dims[n]);let s=e.pads.slice();tl.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},Xd=e=>{let r=bu(e),t=e.format,s=["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][e.auto_pad],o=e.dilations,n=e.group,a=e.kernel_shape,i=e.pads,l=e.strides,c=e.w_is_const();return{autoPad:s,format:t,dilations:o,group:n,kernelShape:a,pads:i,strides:l,wIsConst:c,...r,cacheKey:`${e.format};${r.activation};`}},pd=(e,r,t,s)=>{let o=t.format==="NHWC",n=Rw(r[0].dims,r[1].dims,t.dilations,t.pads,t.strides,o);if(t.group!==1){let I=[r[0]];if(o){let g=e.kernelCustomData.wT??e.compute(ss(r[1],Gi),{inputs:[1],outputs:[t.wIsConst?-2:-1]})[0];t.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=g),I.push(g)}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(Yv(I,t,n,s),{inputs:I}):e.compute(Jv(I,t,n,s),{inputs:I});return}let a=r.length===3,i=r[0].dims[o?1:2],l=r[0].dims[o?2:3],c=r[0].dims[o?3:1],p=r[1].dims[2],u=r[1].dims[3],d=n[o?1:2],h=n[o?2:3],f=n[o?3:1],v=o&&p===i&&u===l&&t.pads[0]===0&&t.pads[1]===0;if(v||p===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=n[0],g,E,$,L=[];if(o){let O=e.kernelCustomData.wT??e.compute(ss(r[1],Gi),{inputs:[1],outputs:[t.wIsConst?-2:-1]})[0];if(t.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=O),v){let J=i*l*c;g=r[0].reshape([1,I,J]),E=O.reshape([1,J,f]),$=[1,I,f]}else g=r[0].reshape([I,i*l,c]),E=O.reshape([1,c,f]),$=[I,d*h,f];L.push(g),L.push(E)}else g=r[0].reshape([I,c,i*l]),E=r[1].reshape([1,f,c]),$=[I,f,d*h],L.push(E),L.push(g);a&&L.push(r[2]);let G=$[2],q=L[0].dims[L[0].dims.length-1];G<8&&q<8?e.compute(xu(L,t,n,$,o,s),{inputs:L}):e.compute(sl(L,t,n,$,o,s),{inputs:L});return}let F=!0,x=e.kernelCustomData.wT??e.compute(ss(r[1],Gi),{inputs:[1],outputs:[t.wIsConst?-2:-1]})[0];t.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=x);let w=[r[0],x];a&&w.push(r[2]);let C=o?d*h:f,y=o?f:d*h,P=p*u*c;e.compute(Hv(w,t,n,C,y,P,a,F,s),{inputs:w})},Nw=(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]],n=[1].concat(r.strides),a=[1].concat(r.dilations),i=[1].concat(r.kernelShape),l=Ki({...r,pads:o,strides:n,dilations:a,kernelShape:i},s);pd(e,s,l,c=>t?[c[0],c[2],c[3]]:[c[0],c[1],c[3]])},Vw=(e,r,t)=>{let s=t.format==="NHWC"?"channelsLast":"channelsFirst",o=Ki(t,r),n=t.autoPad==="NOTSET"?t.pads:t.autoPad,a=Qv(r[0].dims,r[1].dims,t.strides,t.dilations,n,!1,s);e.compute(Xv(r,o,a.outShape,[a.filterDepth,a.filterHeight,a.filterWidth],[a.padInfo.front,a.padInfo.top,a.padInfo.left],s))},Jd=(e,r)=>{if(jw(e.inputs,r),e.inputs[0].dims.length===3)Nw(e,r);else if(e.inputs[0].dims.length===5)Vw(e,e.inputs,r);else{let t=Ki(r,e.inputs);pd(e,e.inputs,t)}}}),Zv,FP=ze(()=>{"use strict";wt(),qs(),Tt(),Et(),Zv=(e,r,t)=>{let s=e.length>2,o=r.outputShape,n=r.format==="NHWC",a=r.group,i=e[1].dims,l=i[2]/a,c=i[3],p=n?or(l):1,u=n&&c===1&&l>=4,d=u?Math.floor(l/4)*4:Math.floor(l/p)*p,h=l-d,f=n?or(c):1,v=n?c===1?p:f:1,F=we.size(o)/f,x=[Math.ceil(F/64),1,1];$t("verbose",()=>`[conv2d_backprop_webgpu] dispatch = ${x}`);let w=["rank","rank"],C=[r.strides[0],r.strides[1]],y=[r.kernelShape[n?1:2],r.kernelShape[n?2:3]],P=[r.dilations[0],r.dilations[1]],I=[y[0]+(r.dilations[0]<=1?0:(r.kernelShape[n?1:2]-1)*(r.dilations[0]-1)),y[1]+(r.dilations[1]<=1?0:(r.kernelShape[n?2:3]-1)*(r.dilations[1]-1))],g=[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:g},{type:12,data:d},{type:12,data:l},{type:12,data:c},...pt(e[0].dims,e[1].dims)];s&&(E.push(...pt(e[2].dims)),w.push("rank")),E.push(...pt(o));let $=L=>{let G=[{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:g.length},{name:"input_channels_per_group_int",type:"u32"},{name:"input_channels_per_group",type:"u32"},{name:"output_channels_per_group",type:"u32"}],q=kr(e[0].dataType),O=n?1:2,J=n?2:3,Q=n?3:1,H=ye("W",e[1].dataType,e[1].dims.length,v),te=ye("Dy",e[0].dataType,e[0].dims.length,p),re=[te,H];s&&re.push(ye("bias",e[2].dataType,[o[Q]].length,f));let le=at("result",e[0].dataType,o.length,f),be=()=>{let K="";if(u)p===4?K+=`
1215
1215
  let xValue = ${te.getByOffset("x_offset")};
1216
1216
  let wValue = ${H.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
  ${L.registerUniforms(G).declareVariables(...re,le)}
1300
1300
  ${L.mainStart()}
1301
1301
  ${L.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")};
1302
- ${D}}`};return{name:"ConvTranspose2D",shaderCache:{hint:`${r.cacheKey};${p}${v}${f}${u}${h}`,inputDependencies:w},getRunData:()=>({dispatchGroup:{x:x[0],y:x[1],z:x[2]},outputs:[{dims:t?t(o):o,dataType:e[0].dataType}],programUniforms:E}),getShaderSource:$}}}),Vw,Ww,Uw,_d,Zv,Gw,md,Kw,ey,FP=ze(()=>{"use strict";SP(),Qo(),uo(),Vw=(e,r,t,s,o,n)=>(e-1)*r+t+(s-1)*o+1-n,Ww=(e,r,t,s,o)=>{let n=Math.floor(e/2);r==="SAME_UPPER"?(t[s]=n,t[o]=e-n):r==="SAME_LOWER"&&(t[s]=e-n,t[o]=n)},Uw=(e,r,t,s,o,n,a,i,l,c)=>{let p=e.length-2,u=c.length===0;l.length<p&&l.push(...Array(p-l.length).fill(0));let d=e[0],h=r[i?3:1]*o;for(let f=0,v=e.length-p-(i?1:0);f<p;++f,++v){let F=e[v],x=u?F*a[f]:c[f],w=Vw(F,a[f],n[f],r[v],t[f],x);Ww(w,s,n,f,f+p),u&&c.push(a[f]*(F-1)+l[f]+(r[v]-1)*t[f]+1-n[f]-n[f+p])}c.splice(0,0,d),c.splice(i?3:1,0,h)},_d=(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(),n=e.outputShape.slice(),a=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)}Uw(i,t,l,e.autoPad,e.group,o,c,s,a,n);let p=Object.assign({},e);return Object.assign(p,{kernelShape:t,pads:o,outputPadding:a,outputShape:n,dilations:l,strides:c}),p},Zv=e=>{let r=bu(e),t=e.format,s=["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][typeof e.autoPad>"u"?0:e.autoPad],o=e.dilations,n=e.group,a=e.kernelShape,i=e.pads,l=e.strides,c=e.wIsConst(),p=e.outputPadding,u=e.outputShape;return{autoPad:s,format:t,dilations:o,group:n,kernelShape:a,outputPadding:p,outputShape:u,pads:i,strides:l,wIsConst:c,...r,cacheKey:`${e.format};${r.activation};`}},Gw=(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 n=e[0].dims.length-2;if(r.dilations.reduce((a,i)=>a+i,0)>0&&r.dilations.length!==n)throw new Error(`dilations should be ${n}D`);if(r.strides.reduce((a,i)=>a+i,0)>0&&r.strides.length!==n)throw new Error(`strides should be ${n}D`);if(r.pads.reduce((a,i)=>a+i,0)>0&&r.pads.length!==n*2)throw new Error(`pads should be ${n*2}D`);if(r.outputPadding.length!==n&&r.outputPadding.length!==0)throw new Error(`output_padding should be ${n}D`);if(r.kernelShape.reduce((a,i)=>a+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")},md=(e,r,t,s)=>{let o=e.kernelCustomData.wT??e.compute(ss(r[1],[2,3,0,1]),{inputs:[1],outputs:[t.wIsConst?-2:-1]})[0];t.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=o);let n=[r[0],o];r.length===3&&n.push(r[2]),e.compute(Yv(n,t,s),{inputs:n})},Kw=(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 n=r.dilations;(n.length===0||n[0]===0)&&(n=[1]);let a=r.strides;(a.length===0||a[0]===0)&&(a=[1]);let i=r.pads;i.length===0&&(i=[0,0]),i=[0,i[0],0,i[1]],a=[1].concat(a),n=[1].concat(n),o=[1].concat(o);let l=r.outputPadding;l=[0].concat(l);let c=_d({...r,pads:i,strides:a,dilations:n,kernelShape:o,outputPadding:l},s);md(e,s,c,p=>t?[p[0],p[2],p[3]]:[p[0],p[1],p[3]])},ey=(e,r)=>{if(Gw(e.inputs,r),e.inputs[0].dims.length===3)Kw(e,r);else{let t=_d(r,e.inputs);md(e,e.inputs,t)}}}),qw,ty,ry,IP=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),qw=(e,r,t,s)=>{let o=we.size(r),n=r.length,a=ye("input",e,n),i=at("output",e,n),l=t.dataType===6?t.getInt32Array()[0]:Number(t.getBigInt64Array()[0]),c=we.normalizeAxis(l,n),p=u=>{let d=` i32(${a.indicesGet("inputIndices","uniforms.axis")}) `,h=it("uniforms.input_shape","uniforms.axis",n),f=s.reverse?d+(s.exclusive?" + 1":""):"0",v=s.reverse?h:d+(s.exclusive?"":" + 1");return`
1302
+ ${D}}`};return{name:"ConvTranspose2D",shaderCache:{hint:`${r.cacheKey};${p}${v}${f}${u}${h}`,inputDependencies:w},getRunData:()=>({dispatchGroup:{x:x[0],y:x[1],z:x[2]},outputs:[{dims:t?t(o):o,dataType:e[0].dataType}],programUniforms:E}),getShaderSource:$}}}),Ww,Uw,Gw,_d,ey,Kw,md,qw,ty,IP=ze(()=>{"use strict";FP(),Ho(),uo(),Ww=(e,r,t,s,o,n)=>(e-1)*r+t+(s-1)*o+1-n,Uw=(e,r,t,s,o)=>{let n=Math.floor(e/2);r==="SAME_UPPER"?(t[s]=n,t[o]=e-n):r==="SAME_LOWER"&&(t[s]=e-n,t[o]=n)},Gw=(e,r,t,s,o,n,a,i,l,c)=>{let p=e.length-2,u=c.length===0;l.length<p&&l.push(...Array(p-l.length).fill(0));let d=e[0],h=r[i?3:1]*o;for(let f=0,v=e.length-p-(i?1:0);f<p;++f,++v){let F=e[v],x=u?F*a[f]:c[f],w=Ww(F,a[f],n[f],r[v],t[f],x);Uw(w,s,n,f,f+p),u&&c.push(a[f]*(F-1)+l[f]+(r[v]-1)*t[f]+1-n[f]-n[f+p])}c.splice(0,0,d),c.splice(i?3:1,0,h)},_d=(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(),n=e.outputShape.slice(),a=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)}Gw(i,t,l,e.autoPad,e.group,o,c,s,a,n);let p=Object.assign({},e);return Object.assign(p,{kernelShape:t,pads:o,outputPadding:a,outputShape:n,dilations:l,strides:c}),p},ey=e=>{let r=bu(e),t=e.format,s=["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][typeof e.autoPad>"u"?0:e.autoPad],o=e.dilations,n=e.group,a=e.kernelShape,i=e.pads,l=e.strides,c=e.wIsConst(),p=e.outputPadding,u=e.outputShape;return{autoPad:s,format:t,dilations:o,group:n,kernelShape:a,outputPadding:p,outputShape:u,pads:i,strides:l,wIsConst:c,...r,cacheKey:`${e.format};${r.activation};`}},Kw=(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 n=e[0].dims.length-2;if(r.dilations.reduce((a,i)=>a+i,0)>0&&r.dilations.length!==n)throw new Error(`dilations should be ${n}D`);if(r.strides.reduce((a,i)=>a+i,0)>0&&r.strides.length!==n)throw new Error(`strides should be ${n}D`);if(r.pads.reduce((a,i)=>a+i,0)>0&&r.pads.length!==n*2)throw new Error(`pads should be ${n*2}D`);if(r.outputPadding.length!==n&&r.outputPadding.length!==0)throw new Error(`output_padding should be ${n}D`);if(r.kernelShape.reduce((a,i)=>a+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")},md=(e,r,t,s)=>{let o=e.kernelCustomData.wT??e.compute(ss(r[1],[2,3,0,1]),{inputs:[1],outputs:[t.wIsConst?-2:-1]})[0];t.wIsConst&&!e.kernelCustomData.wT&&(e.kernelCustomData.wT=o);let n=[r[0],o];r.length===3&&n.push(r[2]),e.compute(Zv(n,t,s),{inputs:n})},qw=(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 n=r.dilations;(n.length===0||n[0]===0)&&(n=[1]);let a=r.strides;(a.length===0||a[0]===0)&&(a=[1]);let i=r.pads;i.length===0&&(i=[0,0]),i=[0,i[0],0,i[1]],a=[1].concat(a),n=[1].concat(n),o=[1].concat(o);let l=r.outputPadding;l=[0].concat(l);let c=_d({...r,pads:i,strides:a,dilations:n,kernelShape:o,outputPadding:l},s);md(e,s,c,p=>t?[p[0],p[2],p[3]]:[p[0],p[1],p[3]])},ty=(e,r)=>{if(Kw(e.inputs,r),e.inputs[0].dims.length===3)qw(e,r);else{let t=_d(r,e.inputs);md(e,e.inputs,t)}}}),Hw,ry,sy,AP=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),Hw=(e,r,t,s)=>{let o=we.size(r),n=r.length,a=ye("input",e,n),i=at("output",e,n),l=t.dataType===6?t.getInt32Array()[0]:Number(t.getBigInt64Array()[0]),c=we.normalizeAxis(l,n),p=u=>{let d=` i32(${a.indicesGet("inputIndices","uniforms.axis")}) `,h=it("uniforms.input_shape","uniforms.axis",n),f=s.reverse?d+(s.exclusive?" + 1":""):"0",v=s.reverse?h:d+(s.exclusive?"":" + 1");return`
1303
1303
  ${u.registerUniform("outputSize","u32").registerUniform("axis","u32").declareVariables(a,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 + ${a.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},...pt(r,r)]}),getShaderSource:p}},ty=(e,r)=>{let t=e.inputs[0].dims,s=e.inputs[0].dataType,o=e.inputs[1];e.compute(qw(s,t,o,r),{inputs:[0]})},ry=e=>{let r=e.exclusive===1,t=e.reverse===1;return Bt({exclusive:r,reverse:t})}}),Hw,Qw,Xw,sy,oy,AP=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),Hw=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.")},Qw=(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},...pt(r,r)]}),getShaderSource:p}},ry=(e,r)=>{let t=e.inputs[0].dims,s=e.inputs[0].dataType,o=e.inputs[1];e.compute(Hw(s,t,o,r),{inputs:[0]})},sy=e=>{let r=e.exclusive===1,t=e.reverse===1;return Bt({exclusive:r,reverse:t})}}),Qw,Xw,Jw,oy,ny,$P=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),Qw=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.")},Xw=(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 n=0;n<r;++n)o.push(t.indicesSet("a",e[n],`i[${n}]`));return o.push("return a;}"),o.join(`
1317
- `)},Xw=(e,r)=>{let t,s,o,n,a,i,l=r.format==="NHWC",c=r.blocksize,p=r.mode==="DCR";l?([t,s,o,n]=e.dims,a=p?[t,s,o,c,c,n/c**2]:[t,s,o,n/c**2,c,c],i=p?[0,1,3,2,4,5]:[0,1,4,2,5,3]):([t,s,o,n]=[e.dims[0],e.dims[2],e.dims[3],e.dims[1]],a=p?[t,c,c,n/c**2,s,o]:[t,n/c**2,c,c,s,o],i=p?[0,3,4,1,5,2]:[0,1,4,2,5,3]);let u=e.reshape(a),d=u.dims.length,h=e.dataType,f=ye("a",h,d),v=at("output",h,d),F=x=>`
1317
+ `)},Jw=(e,r)=>{let t,s,o,n,a,i,l=r.format==="NHWC",c=r.blocksize,p=r.mode==="DCR";l?([t,s,o,n]=e.dims,a=p?[t,s,o,c,c,n/c**2]:[t,s,o,n/c**2,c,c],i=p?[0,1,3,2,4,5]:[0,1,4,2,5,3]):([t,s,o,n]=[e.dims[0],e.dims[2],e.dims[3],e.dims[1]],a=p?[t,c,c,n/c**2,s,o]:[t,n/c**2,c,c,s,o],i=p?[0,3,4,1,5,2]:[0,1,4,2,5,3]);let u=e.reshape(a),d=u.dims.length,h=e.dataType,f=ye("a",h,d),v=at("output",h,d),F=x=>`
1318
1318
  ${x.registerUniform("output_size","u32").declareVariables(f,v)}
1319
1319
 
1320
- ${Qw(i,d,f,v)}
1320
+ ${Xw(i,d,f,v)}
1321
1321
 
1322
1322
  ${x.mainStart()}
1323
1323
  ${x.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
  ${v.setByOffset("global_idx",f.getByIndices("aIndices"))}
1329
- }`;return{name:"DepthToSpace",shaderCache:{hint:`${e.dims};${r.blocksize};${r.mode}`,inputDependencies:["rank"]},getRunData:x=>{let w=l?[t,s*c,o*c,n/c**2]:[t,n/c**2,s*c,o*c],C=we.size(w),y=u.dims,P=we.sortBasedOnPerm(y,i);return{outputs:[{dims:w,dataType:x[0].dataType}],dispatchGroup:{x:Math.ceil(C/64)},programUniforms:[{type:12,data:C},...pt(y,P)]}},getShaderSource:F}},sy=(e,r)=>{Hw(e.inputs),e.compute(Xw(e.inputs[0],r))},oy=e=>Bt({blocksize:e.blocksize,mode:e.mode,format:e.format})}),qi,da,fd,Jw,Yw,Zw,eb,hd,tb,ny,ay,$P=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),qi="[a-zA-Z]|\\.\\.\\.",da="("+qi+")+",fd="^"+da+"$",Jw="("+da+",)*"+da,Yw="^"+Jw+"$",Zw=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)}},eb=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(Yw)))throw new Error("Invalid LHS term");if(t.split(",").forEach((o,n)=>{let a=e[n].dims.slice();if(!o.match(RegExp(fd)))throw new Error("Invalid LHS term");let i=this.processTerm(o,!0,a,n);this.lhs.push(i)}),s==="")s+=[...this.symbolToInfo.entries()].filter(([o,n])=>n.count===1||o==="...").map(([o])=>o).join("");else if(!s.match(RegExp(da)))throw new Error("Invalid RHS");s.match(RegExp(qi,"g"))?.forEach(o=>{if(o==="...")this.outputDims=this.outputDims.concat(this.ellipsisDims);else{let n=this.symbolToInfo.get(o);if(n===void 0)throw new Error("Invalid RHS symbol");this.outputDims.push(n.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,n=!1,a=[],i=0;if(!e.match(RegExp(fd))&&!r&&e!=="")throw new Error("Invalid LHS term");let l=e.match(RegExp(qi,"g")),c=new Zw(s);return l?.forEach((p,u)=>{if(p==="..."){if(n)throw new Error("Only one ellipsis is allowed per input term");n=!0;let d=o-l.length+1;if(d<0)throw new Error("Ellipsis out of bounds");if(a=t.slice(i,i+d),this.hasEllipsis){if(this.ellipsisDims.length!==a.length||this.ellipsisDims.toString()!==a.toString())throw new Error("Ellipsis dimensions mismatch")}else if(r)this.hasEllipsis=!0,this.ellipsisDims=a;else throw new Error("Ellipsis must be specified in the LHS");for(let h=0;h<a.length;h++){let f=String.fromCharCode(48+h);c.addSymbol(f,u+h),this.addSymbol(f,t[i++],s)}}else c.addSymbol(p,u+(this.hasEllipsis?this.ellipsisDims.length-1:0)),this.addSymbol(p,t[i++],s)}),c}},hd=e=>e+"_max",tb=(e,r,t,s)=>{let o=e.map(c=>c.length).map((c,p)=>ye(`input${p}`,r,c)),n=we.size(s),a=at("output",r,s.length),i=[...t.symbolToInfo.keys()].filter(c=>!t.rhs.symbolToIndices.has(c)),l=c=>{let p=[],u="var prod = 1.0;",d="var sum = 0.0;",h="sum += prod;",f=[],v=[],F=[],x=[],w=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((g,E)=>{if(y.inputIndices.includes(E)){let $=g.symbolToIndices.get(P);if($===void 0)throw new Error("Invalid symbol error");$.forEach(L=>{p.push(`${o[E].indicesSet(`input${E}Indices`,L,a.indicesGet("outputIndices",I))}`)})}})}else t.lhs.forEach((I,g)=>{if(y.inputIndices.includes(g)){let E=I.symbolToIndices.get(P);if(E===void 0)throw new Error("Invalid symbol error");E.forEach($=>{f.push(`${o[g].indicesSet(`input${g}Indices`,$,`${P}`)}`)}),x.push(`prod *= ${o[g].getByIndices(`input${g}Indices`)};`)}}),v.push(`for(var ${P}: u32 = 0; ${P} < uniforms.${hd(P)}; ${P}++) {`),F.push("}")});let C=w?[...p,`let sum = ${o.map((y,P)=>y.getByIndices(`input${P}Indices`)).join(" * ")};`]:[...p,d,...v,...f,u,...x,h,...F];return`
1329
+ }`;return{name:"DepthToSpace",shaderCache:{hint:`${e.dims};${r.blocksize};${r.mode}`,inputDependencies:["rank"]},getRunData:x=>{let w=l?[t,s*c,o*c,n/c**2]:[t,n/c**2,s*c,o*c],C=we.size(w),y=u.dims,P=we.sortBasedOnPerm(y,i);return{outputs:[{dims:w,dataType:x[0].dataType}],dispatchGroup:{x:Math.ceil(C/64)},programUniforms:[{type:12,data:C},...pt(y,P)]}},getShaderSource:F}},oy=(e,r)=>{Qw(e.inputs),e.compute(Jw(e.inputs[0],r))},ny=e=>Bt({blocksize:e.blocksize,mode:e.mode,format:e.format})}),qi,da,fd,Yw,Zw,eb,tb,hd,rb,ay,iy,DP=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),qi="[a-zA-Z]|\\.\\.\\.",da="("+qi+")+",fd="^"+da+"$",Yw="("+da+",)*"+da,Zw="^"+Yw+"$",eb=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)}},tb=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(Zw)))throw new Error("Invalid LHS term");if(t.split(",").forEach((o,n)=>{let a=e[n].dims.slice();if(!o.match(RegExp(fd)))throw new Error("Invalid LHS term");let i=this.processTerm(o,!0,a,n);this.lhs.push(i)}),s==="")s+=[...this.symbolToInfo.entries()].filter(([o,n])=>n.count===1||o==="...").map(([o])=>o).join("");else if(!s.match(RegExp(da)))throw new Error("Invalid RHS");s.match(RegExp(qi,"g"))?.forEach(o=>{if(o==="...")this.outputDims=this.outputDims.concat(this.ellipsisDims);else{let n=this.symbolToInfo.get(o);if(n===void 0)throw new Error("Invalid RHS symbol");this.outputDims.push(n.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,n=!1,a=[],i=0;if(!e.match(RegExp(fd))&&!r&&e!=="")throw new Error("Invalid LHS term");let l=e.match(RegExp(qi,"g")),c=new eb(s);return l?.forEach((p,u)=>{if(p==="..."){if(n)throw new Error("Only one ellipsis is allowed per input term");n=!0;let d=o-l.length+1;if(d<0)throw new Error("Ellipsis out of bounds");if(a=t.slice(i,i+d),this.hasEllipsis){if(this.ellipsisDims.length!==a.length||this.ellipsisDims.toString()!==a.toString())throw new Error("Ellipsis dimensions mismatch")}else if(r)this.hasEllipsis=!0,this.ellipsisDims=a;else throw new Error("Ellipsis must be specified in the LHS");for(let h=0;h<a.length;h++){let f=String.fromCharCode(48+h);c.addSymbol(f,u+h),this.addSymbol(f,t[i++],s)}}else c.addSymbol(p,u+(this.hasEllipsis?this.ellipsisDims.length-1:0)),this.addSymbol(p,t[i++],s)}),c}},hd=e=>e+"_max",rb=(e,r,t,s)=>{let o=e.map(c=>c.length).map((c,p)=>ye(`input${p}`,r,c)),n=we.size(s),a=at("output",r,s.length),i=[...t.symbolToInfo.keys()].filter(c=>!t.rhs.symbolToIndices.has(c)),l=c=>{let p=[],u="var prod = 1.0;",d="var sum = 0.0;",h="sum += prod;",f=[],v=[],F=[],x=[],w=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((g,E)=>{if(y.inputIndices.includes(E)){let $=g.symbolToIndices.get(P);if($===void 0)throw new Error("Invalid symbol error");$.forEach(L=>{p.push(`${o[E].indicesSet(`input${E}Indices`,L,a.indicesGet("outputIndices",I))}`)})}})}else t.lhs.forEach((I,g)=>{if(y.inputIndices.includes(g)){let E=I.symbolToIndices.get(P);if(E===void 0)throw new Error("Invalid symbol error");E.forEach($=>{f.push(`${o[g].indicesSet(`input${g}Indices`,$,`${P}`)}`)}),x.push(`prod *= ${o[g].getByIndices(`input${g}Indices`)};`)}}),v.push(`for(var ${P}: u32 = 0; ${P} < uniforms.${hd(P)}; ${P}++) {`),F.push("}")});let C=w?[...p,`let sum = ${o.map((y,P)=>y.getByIndices(`input${P}Indices`)).join(" * ")};`]:[...p,d,...v,...f,u,...x,h,...F];return`
1330
1330
  ${c.registerUniforms(i.map(y=>({name:`${hd(y)}`,type:"u32"}))).registerUniform("outputSize","u32").declareVariables(...o,a)}
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
  ${a.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:n});let p=e.map((u,d)=>[...pt(u)]).reduce((u,d)=>u.concat(d),c);return p.push(...pt(s)),{outputs:[{dims:s,dataType:r}],dispatchGroup:{x:Math.ceil(n/64)},programUniforms:p}},getShaderSource:l}},ny=(e,r)=>{let t=new eb(e.inputs,r.equation),s=t.outputDims,o=e.inputs.map((n,a)=>n.dims);e.compute(tb(o,e.inputs[0].dataType,t,s))},ay=e=>{let r=e.equation.replace(/\s+/g,"");return Bt({equation:r})}}),rb,gd,sb,ob,iy,DP=ze(()=>{"use strict";wt(),Tt(),Et(),rb=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")},gd=(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},sb=(e,r)=>e.length>r.length?gd(e,r):gd(r,e),ob=e=>{let r=e[0].dims,t=Array.from(e[1].getBigInt64Array(),Number),s=sb(r,t),o=e[0].dataType,n=o===9||we.size(r)===1,a=o===9||r.length>0&&r[r.length-1]%4===0?4:1,i=n||s.length>0&&s[s.length-1]%4===0?4:1,l=Math.ceil(we.size(s)/i),c=u=>{let d=ye("input",o,r.length,a),h=at("output",o,s.length,i),f;if(o===9){let v=(F,x,w="")=>`
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:n});let p=e.map((u,d)=>[...pt(u)]).reduce((u,d)=>u.concat(d),c);return p.push(...pt(s)),{outputs:[{dims:s,dataType:r}],dispatchGroup:{x:Math.ceil(n/64)},programUniforms:p}},getShaderSource:l}},ay=(e,r)=>{let t=new tb(e.inputs,r.equation),s=t.outputDims,o=e.inputs.map((n,a)=>n.dims);e.compute(rb(o,e.inputs[0].dataType,t,s))},iy=e=>{let r=e.equation.replace(/\s+/g,"");return Bt({equation:r})}}),sb,gd,ob,nb,ly,OP=ze(()=>{"use strict";wt(),Tt(),Et(),sb=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")},gd=(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},ob=(e,r)=>e.length>r.length?gd(e,r):gd(r,e),nb=e=>{let r=e[0].dims,t=Array.from(e[1].getBigInt64Array(),Number),s=ob(r,t),o=e[0].dataType,n=o===9||we.size(r)===1,a=o===9||r.length>0&&r[r.length-1]%4===0?4:1,i=n||s.length>0&&s[s.length-1]%4===0?4:1,l=Math.ceil(we.size(s)/i),c=u=>{let d=ye("input",o,r.length,a),h=at("output",o,s.length,i),f;if(o===9){let v=(F,x,w="")=>`
1341
1341
  let outputIndices${x} = ${h.offsetToIndices(`outputOffset + ${x}u`)};
1342
1342
  let offset${x} = ${d.broadcastedIndicesToOffset(`outputIndices${x}`,h)};
1343
1343
  let index${x} = offset${x} / 4u;
@@ -1360,7 +1360,7 @@ fn main(@builtin(local_invocation_id) localId : vec3<u32>,
1360
1360
  ${u.registerUniform("vec_size","u32").declareVariables(d,h)}
1361
1361
  ${u.mainStart()}
1362
1362
  ${u.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")}
1363
- ${f}`},p=[{type:12,data:l},...pt(r,s)];return{name:"Expand",shaderCache:{hint:`${s.length};${a}${i}`,inputDependencies:["rank"]},getShaderSource:c,getRunData:()=>({outputs:[{dims:s,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:p})}},iy=e=>{rb(e.inputs),e.compute(ob(e.inputs),{inputs:[0]})}}),nb,ly,OP=ze(()=>{"use strict";wt(),Tt(),Et(),wu(),nb=e=>{let r=e[0].dataType,t=we.size(e[0].dims),s=we.size(e[1].dims),o=s%4===0,n=a=>{let i=ye("x",r,[1],4),l=ye("bias",r,[1],4),c=at("y",r,[1],4),p=[{name:"output_vec_size",type:"u32"},{name:"bias_size",type:"u32"}],u=h=>`
1363
+ ${f}`},p=[{type:12,data:l},...pt(r,s)];return{name:"Expand",shaderCache:{hint:`${s.length};${a}${i}`,inputDependencies:["rank"]},getShaderSource:c,getRunData:()=>({outputs:[{dims:s,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:p})}},ly=e=>{sb(e.inputs),e.compute(nb(e.inputs),{inputs:[0]})}}),ab,cy,LP=ze(()=>{"use strict";wt(),Tt(),Et(),wu(),ab=e=>{let r=e[0].dataType,t=we.size(e[0].dims),s=we.size(e[1].dims),o=s%4===0,n=a=>{let i=ye("x",r,[1],4),l=ye("bias",r,[1],4),c=at("y",r,[1],4),p=[{name:"output_vec_size",type:"u32"},{name:"bias_size",type:"u32"}],u=h=>`
1364
1364
  let bias${h}_offset: u32 = (global_idx * 4 + ${h}) % uniforms.bias_size;
1365
1365
  let bias${h} = ${l.getByOffset(`bias${h}_offset / 4`)}[bias${h}_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
  ${Kd(qr(r))}
1370
1370
 
1371
- ${a.mainStart(xn)}
1371
+ ${a.mainStart(Mn)}
1372
1372
  ${a.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",qd("x_in"))}
1378
- }`};return{name:"FastGeluWithBias",shaderCache:{hint:`${o}`,inputDependencies:["type","type"]},getShaderSource:n,getRunData:a=>({outputs:[{dims:a[0].dims,dataType:a[0].dataType}],programUniforms:[{type:12,data:Math.ceil(t/4)},{type:12,data:s}],dispatchGroup:{x:Math.ceil(t/xn/4)}})}},ly=e=>{e.inputs.length<2||we.size(e.inputs[1].dims)===0?Cv(e):e.compute(nb(e.inputs))}}),ab,ib,cy,dy,LP=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),ab=e=>{if(!e||e.length!==2)throw new Error("Gather requires 2 inputs.")},ib=(e,r)=>{let t=e[0].dims,s=e[1].dims,o=t.length,n=we.normalizeAxis(r.axis,o),a=t.slice(0);a.splice(n,1,...s);let i=t[n],l=e[0].dataType===9?4:1,c=Math.ceil(we.size(a)/l),p=[{type:12,data:c},{type:6,data:i},{type:12,data:n},...pt(e[0].dims,e[1].dims,a)],u=d=>{let h=ye("data",e[0].dataType,e[0].dims.length,l),f=ye("inputIndices",e[1].dataType,e[1].dims.length),v=at("output",e[0].dataType,a.length,l),F=w=>{let C=s.length,y=`var indicesIndices${w} = ${f.type.indices}(0);`;for(let P=0;P<C;P++)y+=`${C>1?`indicesIndices${w}[${P}]`:`indicesIndices${w}`} = ${a.length>1?`outputIndices${w}[uniforms.axis + ${P}]`:`outputIndices${w}`};`;y+=`
1378
+ }`};return{name:"FastGeluWithBias",shaderCache:{hint:`${o}`,inputDependencies:["type","type"]},getShaderSource:n,getRunData:a=>({outputs:[{dims:a[0].dims,dataType:a[0].dataType}],programUniforms:[{type:12,data:Math.ceil(t/4)},{type:12,data:s}],dispatchGroup:{x:Math.ceil(t/Mn/4)}})}},cy=e=>{e.inputs.length<2||we.size(e.inputs[1].dims)===0?Sv(e):e.compute(ab(e.inputs))}}),ib,lb,dy,uy,BP=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),ib=e=>{if(!e||e.length!==2)throw new Error("Gather requires 2 inputs.")},lb=(e,r)=>{let t=e[0].dims,s=e[1].dims,o=t.length,n=we.normalizeAxis(r.axis,o),a=t.slice(0);a.splice(n,1,...s);let i=t[n],l=e[0].dataType===9?4:1,c=Math.ceil(we.size(a)/l),p=[{type:12,data:c},{type:6,data:i},{type:12,data:n},...pt(e[0].dims,e[1].dims,a)],u=d=>{let h=ye("data",e[0].dataType,e[0].dims.length,l),f=ye("inputIndices",e[1].dataType,e[1].dims.length),v=at("output",e[0].dataType,a.length,l),F=w=>{let C=s.length,y=`var indicesIndices${w} = ${f.type.indices}(0);`;for(let P=0;P<C;P++)y+=`${C>1?`indicesIndices${w}[${P}]`:`indicesIndices${w}`} = ${a.length>1?`outputIndices${w}[uniforms.axis + ${P}]`:`outputIndices${w}`};`;y+=`
1379
1379
  var idx${w} = ${f.getByIndices(`indicesIndices${w}`)};
1380
1380
  if (idx${w} < 0) {
1381
1381
  idx${w} = idx${w} + 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
  ${x}
1409
- }`};return{name:"Gather",shaderCache:{hint:r.cacheKey,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:a,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(c/64)},programUniforms:p}),getShaderSource:u}},cy=e=>Bt({axis:e.axis}),dy=(e,r)=>{let t=e.inputs;ab(t),e.compute(ib(e.inputs,r))}}),lb,uy,py,BP=ze(()=>{"use strict";wt(),Tt(),Et(),lb=(e,r,t,s,o,n,a,i,l)=>{let c=[{type:12,data:n},{type:12,data:s},{type:12,data:o},{type:12,data:t},{type:12,data:a},{type:12,data:i},{type:12,data:l}],p=[n];c.push(...pt(r.dims,p));let u=d=>{let h=ye("indices_data",r.dataType,r.dims.length),f=at("input_slice_offsets_data",12,1,1),v=[h,f],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:a,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(c/64)},programUniforms:p}),getShaderSource:u}},dy=e=>Bt({axis:e.axis}),uy=(e,r)=>{let t=e.inputs;ib(t),e.compute(lb(e.inputs,r))}}),cb,py,_y,zP=ze(()=>{"use strict";wt(),Tt(),Et(),cb=(e,r,t,s,o,n,a,i,l)=>{let c=[{type:12,data:n},{type:12,data:s},{type:12,data:o},{type:12,data:t},{type:12,data:a},{type:12,data:i},{type:12,data:l}],p=[n];c.push(...pt(r.dims,p));let u=d=>{let h=ye("indices_data",r.dataType,r.dims.length),f=at("input_slice_offsets_data",12,1,1),v=[h,f],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(...v)}
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:p,dataType:e.inputs[1].dataType}],dispatchGroup:{x:Math.ceil(n/64)},programUniforms:c}),getShaderSource:u},{inputs:[r],outputs:[-1]})[0]},uy=(e,r)=>{let t=e.inputs,s=t[0].dims,o=t[0].dataType,n=t[1].dims,a=n[n.length-1],i=we.sizeToDimension(n,n.length-1),l=we.sizeFromDimension(s,r.batchDims+a),c=we.sizeToDimension(s,r.batchDims),p=we.sizeFromDimension(s,r.batchDims),u=i/c,d=new Array(a),h=l;for(let y=0;y<a;++y)d[a-1-y]=h,h*=s[r.batchDims+a-1-y];let f=lb(e,t[1],d,r.batchDims,s,i,u,p,a),v=r.batchDims+a;if(v>s.length)throw new Error("last dimension of indices must not be larger than rank of input tensor");let F=n.slice(0,-1).concat(s.slice(v)),x=we.size(F),w=[{type:12,data:x},{type:12,data:l},...pt(t[0].dims,f.dims,F)],C=y=>{let P=ye("data",t[0].dataType,t[0].dims.length),I=ye("slice_offsets",12,f.dims.length),g=at("output",t[0].dataType,F.length);return`
1428
+ }`};return e.compute({name:"computeSliceOffsets",shaderCache:{hint:`${o.length}_${t.length}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:p,dataType:e.inputs[1].dataType}],dispatchGroup:{x:Math.ceil(n/64)},programUniforms:c}),getShaderSource:u},{inputs:[r],outputs:[-1]})[0]},py=(e,r)=>{let t=e.inputs,s=t[0].dims,o=t[0].dataType,n=t[1].dims,a=n[n.length-1],i=we.sizeToDimension(n,n.length-1),l=we.sizeFromDimension(s,r.batchDims+a),c=we.sizeToDimension(s,r.batchDims),p=we.sizeFromDimension(s,r.batchDims),u=i/c,d=new Array(a),h=l;for(let y=0;y<a;++y)d[a-1-y]=h,h*=s[r.batchDims+a-1-y];let f=cb(e,t[1],d,r.batchDims,s,i,u,p,a),v=r.batchDims+a;if(v>s.length)throw new Error("last dimension of indices must not be larger than rank of input tensor");let F=n.slice(0,-1).concat(s.slice(v)),x=we.size(F),w=[{type:12,data:x},{type:12,data:l},...pt(t[0].dims,f.dims,F)],C=y=>{let P=ye("data",t[0].dataType,t[0].dims.length),I=ye("slice_offsets",12,f.dims.length),g=at("output",t[0].dataType,F.length);return`
1429
1429
  ${y.registerUniform("output_size","u32").registerUniform("slice_size","u32").declareVariables(P,I,g)}
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(x/64)},programUniforms:w}),getShaderSource:C},{inputs:[t[0],f]})},py=e=>({batchDims:e.batch_dims,cacheKey:""})}),cb,db,_y,my,zP=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),cb=(e,r)=>{if(e.length<3||e.length>4)throw new Error("GatherBlockQuantized requires 3 or 4 inputs.");let t=we.normalizeAxis(r.quantizeAxis,e[0].dims.length),s=r.blockSize,o=e[0],n=e[2],a=e.length===4?e[3]:void 0;if(n.dims.length!==o.dims.length||!o.dims.map((i,l)=>l===t?Math.ceil(i/s)===n.dims[l]:i===n.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(a){if(a.dataType!==o.dataType)throw new Error("Zero point must have the same data type as the input tensor.");if(a.dims.length!==n.dims.length||!a.dims.map((i,l)=>i===n.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.")}},db=(e,r)=>{let t=e[0].dims,s=e[1].dims,o=t.length,n=we.normalizeAxis(r.gatherAxis,o),a=we.normalizeAxis(r.quantizeAxis,o),i=t.slice(0);i.splice(n,1,...s);let l=we.size(i),c=e[2].dataType,p=e[0].dataType===22,u=[{type:12,data:l},{type:12,data:a},{type:12,data:n},{type:12,data:r.blockSize},...pt(...e.map((h,f)=>h.dims),i)],d=h=>{let f=ye("data",e[0].dataType,e[0].dims.length),v=ye("inputIndices",e[1].dataType,e[1].dims.length),F=ye("scales",e[2].dataType,e[2].dims.length),x=e.length>3?ye("zeroPoint",e[3].dataType,e[3].dims.length):void 0,w=at("output",c,i.length),C=[f,v,F];x&&C.push(x);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(x/64)},programUniforms:w}),getShaderSource:C},{inputs:[t[0],f]})},_y=e=>({batchDims:e.batch_dims,cacheKey:""})}),db,ub,my,fy,RP=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),db=(e,r)=>{if(e.length<3||e.length>4)throw new Error("GatherBlockQuantized requires 3 or 4 inputs.");let t=we.normalizeAxis(r.quantizeAxis,e[0].dims.length),s=r.blockSize,o=e[0],n=e[2],a=e.length===4?e[3]:void 0;if(n.dims.length!==o.dims.length||!o.dims.map((i,l)=>l===t?Math.ceil(i/s)===n.dims[l]:i===n.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(a){if(a.dataType!==o.dataType)throw new Error("Zero point must have the same data type as the input tensor.");if(a.dims.length!==n.dims.length||!a.dims.map((i,l)=>i===n.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.")}},ub=(e,r)=>{let t=e[0].dims,s=e[1].dims,o=t.length,n=we.normalizeAxis(r.gatherAxis,o),a=we.normalizeAxis(r.quantizeAxis,o),i=t.slice(0);i.splice(n,1,...s);let l=we.size(i),c=e[2].dataType,p=e[0].dataType===22,u=[{type:12,data:l},{type:12,data:a},{type:12,data:n},{type:12,data:r.blockSize},...pt(...e.map((h,f)=>h.dims),i)],d=h=>{let f=ye("data",e[0].dataType,e[0].dims.length),v=ye("inputIndices",e[1].dataType,e[1].dims.length),F=ye("scales",e[2].dataType,e[2].dims.length),x=e.length>3?ye("zeroPoint",e[3].dataType,e[3].dims.length):void 0,w=at("output",c,i.length),C=[f,v,F];x&&C.push(x);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
  ${h.registerUniforms(y).declareVariables(...C,w)}
1436
1436
  ${h.mainStart()}
1437
1437
  let output_indices = ${w.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 = ${qr(c)}(quantized_data - zero_point) * scale;
1478
1478
  ${w.setByOffset("global_idx","dequantized_data")};
1479
- }`};return{name:"GatherBlockQuantized",shaderCache:{hint:`${r.cacheKey};${e.filter((h,f)=>f!==1).map(h=>h.dims.join("_")).join(";")}`,inputDependencies:Array.from({length:e.length},(h,f)=>"rank")},getRunData:()=>({outputs:[{dims:i,dataType:c}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:u}),getShaderSource:d}},_y=(e,r)=>{let t=e.inputs;cb(t,r),e.compute(db(e.inputs,r))},my=e=>Bt({blockSize:e.blockSize,gatherAxis:e.gatherAxis,quantizeAxis:e.quantizeAxis})}),ub,pb,fy,hy,RP=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),ub=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.`)},pb=(e,r)=>{let t=e[0].dims,s=e[0].dataType,o=t.length,n=e[1].dims,a=e[1].dataType,i=we.normalizeAxis(r.axis,o),l=t[i],c=n.slice(0),p=we.size(c),u=ye("input",s,o),d=ye("indicesInput",a,n.length),h=at("output",s,c.length),f=[{type:12,data:p},{type:6,data:l},{type:12,data:i}];return f.push(...pt(t,n,c)),{name:"GatherElements",shaderCache:{inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:c,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(p/64)},programUniforms:f}),getShaderSource:v=>`
1479
+ }`};return{name:"GatherBlockQuantized",shaderCache:{hint:`${r.cacheKey};${e.filter((h,f)=>f!==1).map(h=>h.dims.join("_")).join(";")}`,inputDependencies:Array.from({length:e.length},(h,f)=>"rank")},getRunData:()=>({outputs:[{dims:i,dataType:c}],dispatchGroup:{x:Math.ceil(l/64)},programUniforms:u}),getShaderSource:d}},my=(e,r)=>{let t=e.inputs;db(t,r),e.compute(ub(e.inputs,r))},fy=e=>Bt({blockSize:e.blockSize,gatherAxis:e.gatherAxis,quantizeAxis:e.quantizeAxis})}),pb,_b,hy,gy,jP=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),pb=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.`)},_b=(e,r)=>{let t=e[0].dims,s=e[0].dataType,o=t.length,n=e[1].dims,a=e[1].dataType,i=we.normalizeAxis(r.axis,o),l=t[i],c=n.slice(0),p=we.size(c),u=ye("input",s,o),d=ye("indicesInput",a,n.length),h=at("output",s,c.length),f=[{type:12,data:p},{type:6,data:l},{type:12,data:i}];return f.push(...pt(t,n,c)),{name:"GatherElements",shaderCache:{inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:c,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(p/64)},programUniforms:f}),getShaderSource:v=>`
1481
1481
  ${v.registerUniform("outputSize","u32").registerUniform("axisDimLimit","i32").registerUniform("axis","u32").declareVariables(u,d,h)}
1482
1482
  ${v.mainStart()}
1483
1483
  ${v.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
  ${h.setByOffset("global_idx","value")};
1496
- }`}},fy=e=>Bt({axis:e.axis}),hy=(e,r)=>{let t=e.inputs;ub(t),e.compute(pb(e.inputs,r))}}),_b,mb,gy,wy,jP=ze(()=>{"use strict";wt(),Tt(),Et(),_b=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")},mb=(e,r)=>{let t=e[0].dims.slice(),s=e[1].dims.slice(),[o,n,a]=fx.getShapeOfGemmResult(t,r.transA,s,r.transB,e.length===3?e[2].dims:void 0),i=[o,n];if(!i)throw new Error("Can't use gemm on the given tensors");let l=16,c=Math.ceil(n/l),p=Math.ceil(o/l),u=!0,d=we.size(i),h=[{type:12,data:u?c:d},{type:12,data:o},{type:12,data:n},{type:12,data:a},{type:1,data:r.alpha},{type:1,data:r.beta}],f=["type","type"];e.length===3&&(h.push(...pt(e[2].dims)),f.push("rank")),h.push(...pt(i));let v=x=>{let w="";r.transA&&r.transB?w="value += a[k * uniforms.M + m] * b[n * uniforms.K + k];":r.transA&&!r.transB?w="value += a[k * uniforms.M + m] * b[k * uniforms.N + n];":!r.transA&&r.transB?w="value += a[m * uniforms.K + k] * b[n * uniforms.K + k];":!r.transA&&!r.transB&&(w="value += a[m * uniforms.K + k] * b[k * uniforms.N + n];");let C=r.alpha===1?"":"value *= uniforms.alpha;",y=ye("a",e[0].dataType,e[0].dims),P=ye("b",e[1].dataType,e[1].dims),I=y.type.value,g=null,E=[y,P];e.length===3&&(g=ye("c",e[2].dataType,e[2].dims.length),E.push(g));let $=at("output",e[0].dataType,i.length);E.push($);let L=[{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
+ }`}},hy=e=>Bt({axis:e.axis}),gy=(e,r)=>{let t=e.inputs;pb(t),e.compute(_b(e.inputs,r))}}),mb,fb,wy,by,NP=ze(()=>{"use strict";wt(),Tt(),Et(),mb=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")},fb=(e,r)=>{let t=e[0].dims.slice(),s=e[1].dims.slice(),[o,n,a]=hx.getShapeOfGemmResult(t,r.transA,s,r.transB,e.length===3?e[2].dims:void 0),i=[o,n];if(!i)throw new Error("Can't use gemm on the given tensors");let l=16,c=Math.ceil(n/l),p=Math.ceil(o/l),u=!0,d=we.size(i),h=[{type:12,data:u?c:d},{type:12,data:o},{type:12,data:n},{type:12,data:a},{type:1,data:r.alpha},{type:1,data:r.beta}],f=["type","type"];e.length===3&&(h.push(...pt(e[2].dims)),f.push("rank")),h.push(...pt(i));let v=x=>{let w="";r.transA&&r.transB?w="value += a[k * uniforms.M + m] * b[n * uniforms.K + k];":r.transA&&!r.transB?w="value += a[k * uniforms.M + m] * b[k * uniforms.N + n];":!r.transA&&r.transB?w="value += a[m * uniforms.K + k] * b[n * uniforms.K + k];":!r.transA&&!r.transB&&(w="value += a[m * uniforms.K + k] * b[k * uniforms.N + n];");let C=r.alpha===1?"":"value *= uniforms.alpha;",y=ye("a",e[0].dataType,e[0].dims),P=ye("b",e[1].dataType,e[1].dims),I=y.type.value,g=null,E=[y,P];e.length===3&&(g=ye("c",e[2].dataType,e[2].dims.length),E.push(g));let $=at("output",e[0].dataType,i.length);E.push($);let L=[{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
  ${x.registerUniforms(L).declareVariables(...E)}
1498
1498
 
1499
1499
  ${x.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:f},getRunData:()=>({outputs:[{dims:i,dataType:e[0].dataType}],dispatchGroup:{x:c*p},programUniforms:h}),getShaderSource:F}:{name:"Gemm",shaderCache:{hint:`${r.cacheKey}`,inputDependencies:f},getRunData:()=>({outputs:[{dims:i,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(d/64)},programUniforms:h}),getShaderSource:v}},gy=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}`}},wy=(e,r)=>{_b(e.inputs),e.compute(mb(e.inputs,r))}}),Ls,Gs,zo,Ro,fb,hb,gb,wb,bb,Mb,xb,vb,by,My,NP=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),[Ls,Gs,zo,Ro]=[0,1,2,3],fb=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")},hb=`
1605
+ }`};return u?{name:"GemmShared",shaderCache:{hint:`${r.cacheKey}`,inputDependencies:f},getRunData:()=>({outputs:[{dims:i,dataType:e[0].dataType}],dispatchGroup:{x:c*p},programUniforms:h}),getShaderSource:F}:{name:"Gemm",shaderCache:{hint:`${r.cacheKey}`,inputDependencies:f},getRunData:()=>({outputs:[{dims:i,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(d/64)},programUniforms:h}),getShaderSource:v}},wy=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}`}},by=(e,r)=>{mb(e.inputs),e.compute(fb(e.inputs,r))}}),Ls,Gs,Bo,zo,hb,gb,wb,bb,Mb,xb,vb,yb,My,xy,VP=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),[Ls,Gs,Bo,zo]=[0,1,2,3],hb=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")},gb=`
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
- `,gb=e=>`
1616
+ `,wb=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
- `,wb=e=>`
1627
+ `,bb=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
- `,bb=e=>`
1637
+ `,Mb=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
- `,Mb=(e,r,t)=>`
1664
+ `,xb=(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[${Ls}] = batch;
1669
1669
  indices[${Gs}] = channel;`+(()=>{switch(t.paddingMode){case"zeros":return`
1670
1670
  if (r >= 0 && r < H && c >=0 && c < W) {
1671
- indices[${zo}] = u32(r);
1672
- indices[${Ro}] = u32(c);
1671
+ indices[${Bo}] = u32(r);
1672
+ indices[${zo}] = u32(c);
1673
1673
  } else {
1674
1674
  return ${r}(0);
1675
1675
  }
1676
1676
  `;case"border":return`
1677
- indices[${zo}] = u32(clamp(r, 0, H - 1));
1678
- indices[${Ro}] = u32(clamp(c, 0, W - 1));
1677
+ indices[${Bo}] = u32(clamp(r, 0, H - 1));
1678
+ indices[${zo}] = u32(clamp(c, 0, W - 1));
1679
1679
  `;case"reflection":return`
1680
- indices[${zo}] = gs_reflect(r, border[1], border[3]);
1681
- indices[${Ro}] = gs_reflect(c, border[0], border[2]);
1680
+ indices[${Bo}] = gs_reflect(r, border[1], border[3]);
1681
+ indices[${zo}] = 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
- `,xb=(e,r,t)=>(()=>{switch(t.mode){case"nearest":return`
1685
+ `,vb=(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[${Ls}], indices[${Gs}], 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")}`,vb=(e,r)=>{let t=ye("x",e[0].dataType,e[0].dims.length),s=[e[1].dims[0],e[1].dims[1],e[1].dims[2]],o=ye("grid",e[1].dataType,s.length,2),n=[e[0].dims[0],e[0].dims[1],e[1].dims[1],e[1].dims[2]];r.format==="NHWC"&&(n=[e[0].dims[0],e[1].dims[1],e[1].dims[2],e[0].dims[3]],[Ls,Gs,zo,Ro]=[0,3,1,2]);let a=at("output",e[0].dataType,n.length),i=t.type.value,l=we.size(n),c=[{type:12,data:l},...pt(e[0].dims,s,n)],p=u=>`
1716
+ `;default:throw new Error(`mode ${t.mode} is not supported`)}})()+`${e.setByOffset("global_idx","result")}`,yb=(e,r)=>{let t=ye("x",e[0].dataType,e[0].dims.length),s=[e[1].dims[0],e[1].dims[1],e[1].dims[2]],o=ye("grid",e[1].dataType,s.length,2),n=[e[0].dims[0],e[0].dims[1],e[1].dims[1],e[1].dims[2]];r.format==="NHWC"&&(n=[e[0].dims[0],e[1].dims[1],e[1].dims[2],e[0].dims[3]],[Ls,Gs,Bo,zo]=[0,3,1,2]);let a=at("output",e[0].dataType,n.length),i=t.type.value,l=we.size(n),c=[{type:12,data:l},...pt(e[0].dims,s,n)],p=u=>`
1717
1717
  ${u.registerUniform("output_size","u32").declareVariables(t,o,a)}
1718
- ${hb}
1719
- ${gb(i)}
1720
- ${wb(r)}
1718
+ ${gb}
1719
+ ${wb(i)}
1721
1720
  ${bb(r)}
1722
- ${Mb(t,i,r)}
1721
+ ${Mb(r)}
1722
+ ${xb(t,i,r)}
1723
1723
 
1724
1724
  ${u.mainStart()}
1725
1725
  ${u.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
1726
- let H_in = i32(uniforms.x_shape[${zo}]);
1727
- let W_in = i32(uniforms.x_shape[${Ro}]);
1726
+ let H_in = i32(uniforms.x_shape[${Bo}]);
1727
+ let W_in = i32(uniforms.x_shape[${zo}]);
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 = ${a.offsetToIndices("global_idx")};
1743
- var grid_indices = vec3<u32>(indices[${Ls}], indices[${zo}], indices[${Ro}]);
1743
+ var grid_indices = vec3<u32>(indices[${Ls}], indices[${Bo}], indices[${zo}]);
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
- ${xb(a,i,r)}
1749
- }`;return{name:"GridSample",shaderCache:{hint:`${r.cacheKey}`,inputDependencies:["type","type"]},getRunData:u=>{let d=we.size(n);return{outputs:[{dims:n,dataType:u[0].dataType}],dispatchGroup:{x:Math.ceil(d/64)},programUniforms:c}},getShaderSource:p}},by=(e,r)=>{fb(e.inputs),e.compute(vb(e.inputs,r))},My=e=>Bt({alignCorners:e.align_corners,mode:e.mode,paddingMode:e.padding_mode,format:e.format})}),Jr,yb,xy,wd,Tb,wa,vy,yy=ze(()=>{"use strict";wt(),Tt(),ir(),mu(),gu(),Et(),uo(),Jr=(e,r)=>e.length>r&&e[r].dims.length>0?e[r]:void 0,yb=(e,r)=>{let t=e[0],s=Jr(e,1),o=Jr(e,2),n=Jr(e,3),a=Jr(e,4),i=Jr(e,5),l=Jr(e,6),c=Jr(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 p=t.dims[0],u=t.dims[1],d=t.dims.length===3?t.dims[2]:r.numHeads*t.dims[4],h=u,f=0,v=0,F=Math.floor(d/r.numHeads);if(l&&c&&we.size(l.dims)&&we.size(c.dims)){if(l.dims.length!==4)throw new Error('Input "past_key" is expected to have 4 dimensions');if(l.dims[0]!==p||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]!==p||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');f=l.dims[2],v=l.dims[2]}else if(l&&we.size(l.dims)||c&&we.size(c.dims))throw new Error('Input "past_key" and "past_value" shall be both present or both absent');let x;if(s&&we.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)');x=2,h=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.');x=5,h=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');x=0,h=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');x=3}if(n&&we.size(n.dims)>0){if(n.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 w=f+h,C=0;if(a&&we.size(a.dims)>0){C=8;let g=a.dims;throw g.length===1?g[0]===p?C=1:g[0]===3*p+2&&(C=3):g.length===2&&g[0]===p&&g[1]===w&&(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&&we.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(h!==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(h!==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(a&&we.size(a.dims)>0)throw new Error("Key padding mask is not supported");if(i&&we.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]!==p||i.dims[1]!==r.numHeads||i.dims[2]!==u||i.dims[3]!==w)throw new Error('Expect "attention_bias" shape (batch_size, num_heads, sequence_length, total_sequence_length)')}return{batchSize:p,sequenceLength:u,pastSequenceLength:f,kvSequenceLength:h,totalSequenceLength:w,maxSequenceLength:v,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:x}},xy=e=>Bt({...e}),wd=Bt({perm:[0,2,1,3]}),Tb=(e,r,t,s,o,n,a)=>{let i=[s,o,n],l=we.size(i),c=[{type:12,data:l},{type:12,data:a},{type:12,data:n}],p=u=>{let d=at("qkv_with_bias",r.dataType,i),h=ye("qkv",r.dataType,i),f=ye("bias",t.dataType,i),v=[{name:"output_size",type:"u32"},{name:"bias_offset",type:"u32"},{name:"hidden_size",type:"u32"}];return`
1748
+ ${vb(a,i,r)}
1749
+ }`;return{name:"GridSample",shaderCache:{hint:`${r.cacheKey}`,inputDependencies:["type","type"]},getRunData:u=>{let d=we.size(n);return{outputs:[{dims:n,dataType:u[0].dataType}],dispatchGroup:{x:Math.ceil(d/64)},programUniforms:c}},getShaderSource:p}},My=(e,r)=>{hb(e.inputs),e.compute(yb(e.inputs,r))},xy=e=>Bt({alignCorners:e.align_corners,mode:e.mode,paddingMode:e.padding_mode,format:e.format})}),Jr,Tb,vy,wd,Pb,wa,yy,Ty=ze(()=>{"use strict";wt(),Tt(),ir(),mu(),gu(),Et(),uo(),Jr=(e,r)=>e.length>r&&e[r].dims.length>0?e[r]:void 0,Tb=(e,r)=>{let t=e[0],s=Jr(e,1),o=Jr(e,2),n=Jr(e,3),a=Jr(e,4),i=Jr(e,5),l=Jr(e,6),c=Jr(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 p=t.dims[0],u=t.dims[1],d=t.dims.length===3?t.dims[2]:r.numHeads*t.dims[4],h=u,f=0,v=0,F=Math.floor(d/r.numHeads);if(l&&c&&we.size(l.dims)&&we.size(c.dims)){if(l.dims.length!==4)throw new Error('Input "past_key" is expected to have 4 dimensions');if(l.dims[0]!==p||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]!==p||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');f=l.dims[2],v=l.dims[2]}else if(l&&we.size(l.dims)||c&&we.size(c.dims))throw new Error('Input "past_key" and "past_value" shall be both present or both absent');let x;if(s&&we.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)');x=2,h=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.');x=5,h=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');x=0,h=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');x=3}if(n&&we.size(n.dims)>0){if(n.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 w=f+h,C=0;if(a&&we.size(a.dims)>0){C=8;let g=a.dims;throw g.length===1?g[0]===p?C=1:g[0]===3*p+2&&(C=3):g.length===2&&g[0]===p&&g[1]===w&&(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&&we.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(h!==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(h!==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(a&&we.size(a.dims)>0)throw new Error("Key padding mask is not supported");if(i&&we.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]!==p||i.dims[1]!==r.numHeads||i.dims[2]!==u||i.dims[3]!==w)throw new Error('Expect "attention_bias" shape (batch_size, num_heads, sequence_length, total_sequence_length)')}return{batchSize:p,sequenceLength:u,pastSequenceLength:f,kvSequenceLength:h,totalSequenceLength:w,maxSequenceLength:v,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:x}},vy=e=>Bt({...e}),wd=Bt({perm:[0,2,1,3]}),Pb=(e,r,t,s,o,n,a)=>{let i=[s,o,n],l=we.size(i),c=[{type:12,data:l},{type:12,data:a},{type:12,data:n}],p=u=>{let d=at("qkv_with_bias",r.dataType,i),h=ye("qkv",r.dataType,i),f=ye("bias",t.dataType,i),v=[{name:"output_size",type:"u32"},{name:"bias_offset",type:"u32"},{name:"hidden_size",type:"u32"}];return`
1750
1750
  ${u.registerUniforms(v).declareVariables(h,f,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:p},{inputs:[r,t],outputs:[-1]})[0]},wa=(e,r,t,s,o,n,a,i)=>{let l=n;if(a&&we.size(a.dims)>0){if(s===1)throw new Error("AddBiasReshape is not implemented. Please export your model with packed QKV or KV");return l=Tb(e,n,a,r,s,t*o,i),l=l.reshape([r,s,t,o]),t===1||s===1?l:e.compute(ss(l,wd.perm),{inputs:[l],outputs:[-1]})[0]}else return n.dims.length===3&&(l=n.reshape([r,s,t,o])),t===1||s===1?l:e.compute(ss(l,wd.perm),{inputs:[l],outputs:[-1]})[0]},vy=(e,r)=>{let t=yb(e.inputs,r),s=e.inputs[0],o=Jr(e.inputs,1),n=Jr(e.inputs,2),a=Jr(e.inputs,3),i=Jr(e.inputs,4),l=Jr(e.inputs,5),c=Jr(e.inputs,6),p=Jr(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&&n&&o.dims.length===4&&n.dims.length===4,d=wa(e,t.batchSize,t.numHeads,t.sequenceLength,t.headSize,s,a,0);if(u)return va(e,d,o,n,i,void 0,c,p,l,t);if(!o||!n)throw new Error("key and value must be provided");let h=wa(e,t.batchSize,t.numHeads,t.kvSequenceLength,t.headSize,o,a,t.hiddenSize),f=wa(e,t.batchSize,t.numHeads,t.kvSequenceLength,t.vHeadSize,n,a,2*t.hiddenSize);va(e,d,h,f,i,void 0,c,p,l,t)}}),Pb,Eb,kb,Cb,Yd,Ty,Py,Ey=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),Pb=e=>{if(!e||e.length<1)throw new Error("too few inputs")},Eb=(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),Bt({numOutputs:s,axis:r.axis,splitSizes:t})},kb=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:p},{inputs:[r,t],outputs:[-1]})[0]},wa=(e,r,t,s,o,n,a,i)=>{let l=n;if(a&&we.size(a.dims)>0){if(s===1)throw new Error("AddBiasReshape is not implemented. Please export your model with packed QKV or KV");return l=Pb(e,n,a,r,s,t*o,i),l=l.reshape([r,s,t,o]),t===1||s===1?l:e.compute(ss(l,wd.perm),{inputs:[l],outputs:[-1]})[0]}else return n.dims.length===3&&(l=n.reshape([r,s,t,o])),t===1||s===1?l:e.compute(ss(l,wd.perm),{inputs:[l],outputs:[-1]})[0]},yy=(e,r)=>{let t=Tb(e.inputs,r),s=e.inputs[0],o=Jr(e.inputs,1),n=Jr(e.inputs,2),a=Jr(e.inputs,3),i=Jr(e.inputs,4),l=Jr(e.inputs,5),c=Jr(e.inputs,6),p=Jr(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&&n&&o.dims.length===4&&n.dims.length===4,d=wa(e,t.batchSize,t.numHeads,t.sequenceLength,t.headSize,s,a,0);if(u)return va(e,d,o,n,i,void 0,c,p,l,t);if(!o||!n)throw new Error("key and value must be provided");let h=wa(e,t.batchSize,t.numHeads,t.kvSequenceLength,t.headSize,o,a,t.hiddenSize),f=wa(e,t.batchSize,t.numHeads,t.kvSequenceLength,t.vHeadSize,n,a,2*t.hiddenSize);va(e,d,h,f,i,void 0,c,p,l,t)}}),Eb,kb,Cb,Sb,Yd,Py,Ey,ky=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),Eb=e=>{if(!e||e.length<1)throw new Error("too few inputs")},kb=(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),Bt({numOutputs:s,axis:r.axis,splitSizes:t})},Cb=e=>`
1757
1757
  fn calculateOutputIndex(index: u32) -> u32 {
1758
1758
  for (var i: u32 = 0u; i < ${e}u; i += 1u ) {
1759
1759
  if (index < ${it("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
- }`,Cb=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
+ }`,Sb=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
  }`},Yd=(e,r)=>{let t=e[0].dims,s=we.size(t),o=e[0].dataType,n=we.normalizeAxis(r.axis,t.length),a=new Array(r.numOutputs),i=ye("input",o,t.length),l=new Array(r.numOutputs),c=[],p=[],u=0,d=[{type:12,data:s}];for(let f=0;f<r.numOutputs;f++){u+=r.splitSizes[f],l[f]=u;let v=t.slice();v[n]=r.splitSizes[f],p.push(v),a[f]=at(`output${f}`,o,v.length),c.push({dims:p[f],dataType:e[0].dataType})}d.push({type:12,data:l},...pt(t,...p));let h=f=>`
1769
1769
  ${f.registerUniform("input_size","u32").registerUniform("size_in_split_axis","u32",l.length).declareVariables(i,...a)}
1770
- ${kb(l.length)}
1771
- ${Cb(a)}
1770
+ ${Cb(l.length)}
1771
+ ${Sb(a)}
1772
1772
 
1773
1773
  ${f.mainStart()}
1774
1774
  ${f.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.input_size")}
@@ -1781,10 +1781,10 @@ fn calculateOutputIndex(index: u32) -> u32 {
1781
1781
  ${i.indicesSet("indices",n,"index")};
1782
1782
  }
1783
1783
  writeBufferData(output_number, indices, global_idx);
1784
- }`;return{name:"Split",shaderCache:{hint:r.cacheKey,inputDependencies:["rank"]},getShaderSource:h,getRunData:()=>({outputs:c,dispatchGroup:{x:Math.ceil(s/64)},programUniforms:d})}},Ty=(e,r)=>{Pb(e.inputs);let t=e.inputs.length===1?r:Eb(e.inputs,r);e.compute(Yd(e.inputs,t),{inputs:[0]})},Py=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 Bt({axis:r,numOutputs:s,splitSizes:t})}}),Sb,ol,ky,Cy=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),Sb=(e,r)=>{let[t,s,o,n]=e,{numHeads:a,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(!we.areEqual(s.dims,[])&&!we.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(n.dims.length!==2)throw new Error(`Input 'sin_cache' is expected to have 2 dimensions, got ${n.dims.length}`);if(!we.areEqual(o.dims,n.dims))throw new Error("Inputs 'cos_cache' and 'sin_cache' are expected to have the same shape");if(i>0&&a===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],p=o.dims[0],u=we.sizeFromDimension(t.dims,1)/c,d=i===0?o.dims[1]*2:u/a;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>p)throw new Error("Updating cos_cache and sin_cache in RotaryEmbedding is not currently supported")},ol=(e,r)=>{let{interleaved:t,numHeads:s,rotaryEmbeddingDim:o,scale:n}=r,a=e[0].dims[0],i=we.sizeFromDimension(e[0].dims,1),l=e[0].dims[e[0].dims.length-2],c=i/l,p=e[2].dims[1],u=o===0?p*2:c/s,d=new Array(a,l,c/u,u-p),h=we.computeStrides(d),f=[{type:1,data:n},{type:12,data:d},{type:12,data:h},...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]}):[],...pt(e[0].dims,e[1].dims,e[2].dims,e[3].dims,e[0].dims)],v=F=>{let x=ye("input",e[0].dataType,e[0].dims.length),w=ye("position_ids",e[1].dataType,e[1].dims.length),C=ye("cos_cache",e[2].dataType,e[2].dims.length),y=ye("sin_cache",e[3].dataType,e[3].dims.length),P=at("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:h.length},{name:"input_output_strides",type:"u32",length:h.length}]),`
1784
+ }`;return{name:"Split",shaderCache:{hint:r.cacheKey,inputDependencies:["rank"]},getShaderSource:h,getRunData:()=>({outputs:c,dispatchGroup:{x:Math.ceil(s/64)},programUniforms:d})}},Py=(e,r)=>{Eb(e.inputs);let t=e.inputs.length===1?r:kb(e.inputs,r);e.compute(Yd(e.inputs,t),{inputs:[0]})},Ey=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 Bt({axis:r,numOutputs:s,splitSizes:t})}}),Fb,ol,Cy,Sy=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),Fb=(e,r)=>{let[t,s,o,n]=e,{numHeads:a,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(!we.areEqual(s.dims,[])&&!we.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(n.dims.length!==2)throw new Error(`Input 'sin_cache' is expected to have 2 dimensions, got ${n.dims.length}`);if(!we.areEqual(o.dims,n.dims))throw new Error("Inputs 'cos_cache' and 'sin_cache' are expected to have the same shape");if(i>0&&a===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],p=o.dims[0],u=we.sizeFromDimension(t.dims,1)/c,d=i===0?o.dims[1]*2:u/a;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>p)throw new Error("Updating cos_cache and sin_cache in RotaryEmbedding is not currently supported")},ol=(e,r)=>{let{interleaved:t,numHeads:s,rotaryEmbeddingDim:o,scale:n}=r,a=e[0].dims[0],i=we.sizeFromDimension(e[0].dims,1),l=e[0].dims[e[0].dims.length-2],c=i/l,p=e[2].dims[1],u=o===0?p*2:c/s,d=new Array(a,l,c/u,u-p),h=we.computeStrides(d),f=[{type:1,data:n},{type:12,data:d},{type:12,data:h},...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]}):[],...pt(e[0].dims,e[1].dims,e[2].dims,e[3].dims,e[0].dims)],v=F=>{let x=ye("input",e[0].dataType,e[0].dims.length),w=ye("position_ids",e[1].dataType,e[1].dims.length),C=ye("cos_cache",e[2].dataType,e[2].dims.length),y=ye("sin_cache",e[3].dataType,e[3].dims.length),P=at("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:h.length},{name:"input_output_strides",type:"u32",length:h.length}]),`
1785
1785
  ${F.declareVariables(x,w,C,y,P)}
1786
1786
 
1787
- ${F.mainStart(xn)}
1787
+ ${F.mainStart(Mn)}
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",x.getByOffset("k"))}
1809
1809
  }
1810
- }`};return{name:"RotaryEmbedding",shaderCache:{hint:Bt({interleaved:t}).cacheKey,inputDependencies:["rank","rank","rank","rank"]},getShaderSource:v,getRunData:()=>({outputs:[{dims:e[0].dims,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(we.size(d)/xn)},programUniforms:f})}},ky=(e,r)=>{Sb(e.inputs,r),e.compute(ol(e.inputs,r))}}),Fb,Ib,bd,Ab,Sy,VP=ze(()=>{"use strict";ir(),wt(),gu(),yy(),Ey(),uo(),Cy(),Et(),Fb=(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],n=e[3],a=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],p=t.dims.length===3?i?t.dims[2]/3:t.dims[2]:r.numHeads*t.dims[4],u=c,d=0,h=!s||s.dims.length===0,f=Math.floor(h?p/(r.numHeads+2*r.kvNumHeads):p/r.numHeads);h&&(p=f*r.numHeads);let v=n&&n.dims.length!==0,F=a&&a.dims.length!==0;if(v&&n.dims.length===4&&n.dims[0]===l&&n.dims[1]!==r.kvNumHeads&&n.dims[2]===r.kvNumHeads&&n.dims[3]===f)throw new Error("BSNH pastKey/pastValue is not supported");if(v&&F){if(n.dims.length!==4)throw new Error('Input "past_key" is expected to have 4 dimensions');if(a.dims.length!==4)throw new Error('Input "past_value" is expected to have 4 dimensions');d=n.dims[2]}else if(v||F)throw new Error('Input "past_key" and "past_value" shall be both present or both absent');let x=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]!==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.');u=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');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');x=3}let w=0,C=!1,y=r.kvNumHeads?f*r.kvNumHeads:p;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:p,vHiddenSize:y,headSize:f,vHeadSize:Math.floor(y/r.kvNumHeads),numHeads:r.numHeads,kvNumHeads:r.kvNumHeads,nReps:r.numHeads/r.kvNumHeads,pastPresentShareBuffer:!1,maskType:w,scale:r.scale,broadcastResPosBias:!1,passPastInKv:C,qkvFormat:x}},Ib=Bt({perm:[0,2,1,3]}),bd=(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(ss(s,Ib.perm),{inputs:[s],outputs:[-1]})[0]),s},Ab=(e,r,t,s)=>{let o=7,n=["type","type"],a=[e*r],i=e*r,l=[{type:12,data:i},{type:12,data:r},{type:12,data:e}],c=p=>{let u=ye("seq_lens",t.dataType,t.dims),d=ye("total_seq_lens",s.dataType,s.dims),h=at("pos_ids",o,a),f=[{name:"output_size",type:"u32"},{name:"sequence_length",type:"u32"},{name:"batch_size",type:"u32"}];return`
1810
+ }`};return{name:"RotaryEmbedding",shaderCache:{hint:Bt({interleaved:t}).cacheKey,inputDependencies:["rank","rank","rank","rank"]},getShaderSource:v,getRunData:()=>({outputs:[{dims:e[0].dims,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(we.size(d)/Mn)},programUniforms:f})}},Cy=(e,r)=>{Fb(e.inputs,r),e.compute(ol(e.inputs,r))}}),Ib,Ab,bd,$b,Fy,WP=ze(()=>{"use strict";ir(),wt(),gu(),Ty(),ky(),uo(),Sy(),Et(),Ib=(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],n=e[3],a=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],p=t.dims.length===3?i?t.dims[2]/3:t.dims[2]:r.numHeads*t.dims[4],u=c,d=0,h=!s||s.dims.length===0,f=Math.floor(h?p/(r.numHeads+2*r.kvNumHeads):p/r.numHeads);h&&(p=f*r.numHeads);let v=n&&n.dims.length!==0,F=a&&a.dims.length!==0;if(v&&n.dims.length===4&&n.dims[0]===l&&n.dims[1]!==r.kvNumHeads&&n.dims[2]===r.kvNumHeads&&n.dims[3]===f)throw new Error("BSNH pastKey/pastValue is not supported");if(v&&F){if(n.dims.length!==4)throw new Error('Input "past_key" is expected to have 4 dimensions');if(a.dims.length!==4)throw new Error('Input "past_value" is expected to have 4 dimensions');d=n.dims[2]}else if(v||F)throw new Error('Input "past_key" and "past_value" shall be both present or both absent');let x=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]!==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.');u=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');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');x=3}let w=0,C=!1,y=r.kvNumHeads?f*r.kvNumHeads:p;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:p,vHiddenSize:y,headSize:f,vHeadSize:Math.floor(y/r.kvNumHeads),numHeads:r.numHeads,kvNumHeads:r.kvNumHeads,nReps:r.numHeads/r.kvNumHeads,pastPresentShareBuffer:!1,maskType:w,scale:r.scale,broadcastResPosBias:!1,passPastInKv:C,qkvFormat:x}},Ab=Bt({perm:[0,2,1,3]}),bd=(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(ss(s,Ab.perm),{inputs:[s],outputs:[-1]})[0]),s},$b=(e,r,t,s)=>{let o=7,n=["type","type"],a=[e*r],i=e*r,l=[{type:12,data:i},{type:12,data:r},{type:12,data:e}],c=p=>{let u=ye("seq_lens",t.dataType,t.dims),d=ye("total_seq_lens",s.dataType,s.dims),h=at("pos_ids",o,a),f=[{name:"output_size",type:"u32"},{name:"sequence_length",type:"u32"},{name:"batch_size",type:"u32"}];return`
1811
1811
  ${p.registerUniforms(f).declareVariables(u,d,h)}
1812
1812
  ${p.mainStart()}
1813
1813
  ${p.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
@@ -1838,7 +1838,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
1838
1838
  ${h.setByOffset("global_idx","seqlen")}
1839
1839
  };
1840
1840
  }
1841
- `};return{name:"GeneratePositionIds",shaderCache:{hint:`${e};${r}`,inputDependencies:n},getRunData:()=>({outputs:[{dims:a,dataType:o}],dispatchGroup:{x:Math.ceil(i/64)},programUniforms:l}),getShaderSource:c}},Sy=(e,r)=>{let t=Fb(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,n=e.inputs[2]&&e.inputs[2].dims.length>0?e.inputs[2]:void 0,a=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,p=t.kvNumHeads?t.kvNumHeads:t.numHeads,u=Bt({axis:2,numOutputs:3,splitSizes:[t.numHeads*t.headSize,p*t.headSize,p*t.headSize]}),[d,h,f]=!o&&!n?e.compute(Yd([s],u),{inputs:[s],outputs:[-1,-1,-1]}):[s,o,n],v,F;if(r.doRotary){let y=e.compute(Ab(t.batchSize,t.sequenceLength,l,c),{inputs:[l,c],outputs:[-1]})[0],P=e.inputs[7],I=e.inputs[8],g=Bt({interleaved:r.rotaryInterleaved!==0,numHeads:t.numHeads,rotaryEmbeddingDim:0,scale:r.scale}),E=[d,y,P,I],$=[-1];v=e.compute(ol(E,g),{inputs:E,outputs:$})[0],E.splice(0,1,h);let L=Bt({interleaved:r.rotaryInterleaved!==0,numHeads:t.kvNumHeads,rotaryEmbeddingDim:0,scale:r.scale});F=e.compute(ol(E,L),{inputs:E,outputs:$})[0]}let x=wa(e,t.batchSize,t.numHeads,t.sequenceLength,t.headSize,r.doRotary?v:d,void 0,0),w=bd(e,r.doRotary?F:h,t),C=bd(e,f,t);va(e,x,w,C,void 0,void 0,a,i,void 0,t,l,c)}}),Md,$b,Db,Fy,WP=ze(()=>{"use strict";wt(),Tt(),uo(),Et(),Md=(e,r,t,s,o,n,a,i)=>{let l=or(n),c=l===1?"f32":`vec${l}f`,p=l===1?"vec2f":`mat2x${l}f`,u=o*a,d=64;u===1&&(d=256);let h=[o,a,n/l],f=[o,a,2],v=["rank","type","type"],F=[];F.push(...pt(h,f));let x=w=>{let C=ye("x",r.dataType,3,l),y=ye("scale",t.dataType,t.dims),P=ye("bias",s.dataType,s.dims),I=at("output",1,3,2),g=[C,y,P,I];return`
1841
+ `};return{name:"GeneratePositionIds",shaderCache:{hint:`${e};${r}`,inputDependencies:n},getRunData:()=>({outputs:[{dims:a,dataType:o}],dispatchGroup:{x:Math.ceil(i/64)},programUniforms:l}),getShaderSource:c}},Fy=(e,r)=>{let t=Ib(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,n=e.inputs[2]&&e.inputs[2].dims.length>0?e.inputs[2]:void 0,a=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,p=t.kvNumHeads?t.kvNumHeads:t.numHeads,u=Bt({axis:2,numOutputs:3,splitSizes:[t.numHeads*t.headSize,p*t.headSize,p*t.headSize]}),[d,h,f]=!o&&!n?e.compute(Yd([s],u),{inputs:[s],outputs:[-1,-1,-1]}):[s,o,n],v,F;if(r.doRotary){let y=e.compute($b(t.batchSize,t.sequenceLength,l,c),{inputs:[l,c],outputs:[-1]})[0],P=e.inputs[7],I=e.inputs[8],g=Bt({interleaved:r.rotaryInterleaved!==0,numHeads:t.numHeads,rotaryEmbeddingDim:0,scale:r.scale}),E=[d,y,P,I],$=[-1];v=e.compute(ol(E,g),{inputs:E,outputs:$})[0],E.splice(0,1,h);let L=Bt({interleaved:r.rotaryInterleaved!==0,numHeads:t.kvNumHeads,rotaryEmbeddingDim:0,scale:r.scale});F=e.compute(ol(E,L),{inputs:E,outputs:$})[0]}let x=wa(e,t.batchSize,t.numHeads,t.sequenceLength,t.headSize,r.doRotary?v:d,void 0,0),w=bd(e,r.doRotary?F:h,t),C=bd(e,f,t);va(e,x,w,C,void 0,void 0,a,i,void 0,t,l,c)}}),Md,Db,Ob,Iy,UP=ze(()=>{"use strict";wt(),Tt(),uo(),Et(),Md=(e,r,t,s,o,n,a,i)=>{let l=or(n),c=l===1?"f32":`vec${l}f`,p=l===1?"vec2f":`mat2x${l}f`,u=o*a,d=64;u===1&&(d=256);let h=[o,a,n/l],f=[o,a,2],v=["rank","type","type"],F=[];F.push(...pt(h,f));let x=w=>{let C=ye("x",r.dataType,3,l),y=ye("scale",t.dataType,t.dims),P=ye("bias",s.dataType,s.dims),I=at("output",1,3,2),g=[C,y,P,I];return`
1842
1842
  var<workgroup> workgroup_shared : array<${p}, ${d}>;
1843
1843
  const workgroup_size = ${d}u;
1844
1844
  ${w.declareVariables(...g)}
@@ -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:v},getRunData:()=>({outputs:[{dims:f,dataType:1}],dispatchGroup:{x:u},programUniforms:F}),getShaderSource:x},{inputs:[r,t,s],outputs:[-1]})[0]},$b=(e,r,t)=>{let s=r[0].dims,o=s,n=2,a=s[0],i=s[1],l=we.sizeFromDimension(s,n),c=or(l),p=we.size(o)/c,u=Md(e,r[0],r[1],r[2],a,l,i,t.epsilon),d=[a,i,l/c],h=[a,i],f=["type","none"],v=F=>{let x=ye("x",r[0].dataType,d.length,c),w=ye("scale_shift",1,h.length,2),C=at("output",r[0].dataType,d.length,c),y=[x,w,C];return`
1875
+ }`};return e.compute({name:"InstanceNormComputeChannelScaleShift",shaderCache:{hint:`${l};${i};${d}`,inputDependencies:v},getRunData:()=>({outputs:[{dims:f,dataType:1}],dispatchGroup:{x:u},programUniforms:F}),getShaderSource:x},{inputs:[r,t,s],outputs:[-1]})[0]},Db=(e,r,t)=>{let s=r[0].dims,o=s,n=2,a=s[0],i=s[1],l=we.sizeFromDimension(s,n),c=or(l),p=we.size(o)/c,u=Md(e,r[0],r[1],r[2],a,l,i,t.epsilon),d=[a,i,l/c],h=[a,i],f=["type","none"],v=F=>{let x=ye("x",r[0].dataType,d.length,c),w=ye("scale_shift",1,h.length,2),C=at("output",r[0].dataType,d.length,c),y=[x,w,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 = ${w.getByIndices("vec2<u32>(batch, channel)")};
1883
1883
  let value = ${x.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:f},getRunData:()=>({outputs:[{dims:o,dataType:r[0].dataType}],dispatchGroup:{x:Math.ceil(p/64)},programUniforms:[{type:12,data:p},...pt(d,h,d)]}),getShaderSource:v},{inputs:[r[0],u]})},Db=(e,r,t)=>{let s=r[0].dims,o=s,n=s[0],a=s[s.length-1],i=we.sizeFromDimension(s,1)/a,l=or(a),c=we.size(o)/l,p=[{type:12,data:i},{type:12,data:Math.floor(a/l)}],u=["type","type"],d=!1,h=[0,s.length-1];for(let x=0;x<s.length-2;x++)d=d||s[x+1]!==1,h.push(x+1);d=d&&s[s.length-1]!==1;let f=d?e.compute(ss(e.inputs[0],h),{inputs:[e.inputs[0]],outputs:[-1]})[0]:e.inputs[0].reshape(Array.from({length:s.length},(x,w)=>s[h[w]])),v=Md(e,f,r[1],r[2],n,i,a,t.epsilon),F=x=>{let w=kr(r[0].dataType),C=l===1?"vec2f":`mat${l}x2f`,y=g=>{let E=g===0?"x":"y",$=l===1?"f32":`vec${l}f`;switch(l){case 1:return`${w}(${$}(scale.${E}))`;case 2:return`vec2<${w}>(${$}(scale[0].${E}, scale[1].${E}))`;case 4:return`vec4<${w}>(${$}(scale[0].${E}, scale[1].${E}, scale[2].${E}, scale[3].${E}))`;default:throw new Error(`Not supported compoents ${l}`)}},P=ye("input",r[0].dataType,r[0].dims,l),I=at("output",r[0].dataType,o,l);return`
1885
+ }`};e.compute({name:"InstanceNormalization",shaderCache:{hint:`${c}`,inputDependencies:f},getRunData:()=>({outputs:[{dims:o,dataType:r[0].dataType}],dispatchGroup:{x:Math.ceil(p/64)},programUniforms:[{type:12,data:p},...pt(d,h,d)]}),getShaderSource:v},{inputs:[r[0],u]})},Ob=(e,r,t)=>{let s=r[0].dims,o=s,n=s[0],a=s[s.length-1],i=we.sizeFromDimension(s,1)/a,l=or(a),c=we.size(o)/l,p=[{type:12,data:i},{type:12,data:Math.floor(a/l)}],u=["type","type"],d=!1,h=[0,s.length-1];for(let x=0;x<s.length-2;x++)d=d||s[x+1]!==1,h.push(x+1);d=d&&s[s.length-1]!==1;let f=d?e.compute(ss(e.inputs[0],h),{inputs:[e.inputs[0]],outputs:[-1]})[0]:e.inputs[0].reshape(Array.from({length:s.length},(x,w)=>s[h[w]])),v=Md(e,f,r[1],r[2],n,i,a,t.epsilon),F=x=>{let w=kr(r[0].dataType),C=l===1?"vec2f":`mat${l}x2f`,y=g=>{let E=g===0?"x":"y",$=l===1?"f32":`vec${l}f`;switch(l){case 1:return`${w}(${$}(scale.${E}))`;case 2:return`vec2<${w}>(${$}(scale[0].${E}, scale[1].${E}))`;case 4:return`vec4<${w}>(${$}(scale[0].${E}, scale[1].${E}, scale[2].${E}, scale[3].${E}))`;default:throw new Error(`Not supported compoents ${l}`)}},P=ye("input",r[0].dataType,r[0].dims,l),I=at("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:p}),getShaderSource:F},{inputs:[r[0],v]})},Fy=(e,r)=>{r.format==="NHWC"?Db(e,e.inputs,r):$b(e,e.inputs,r)}}),Ob,Lb,Iy,UP=ze(()=>{"use strict";wt(),Tt(),Et(),Ob=e=>{if(!e||e.length<2)throw new Error("layerNorm requires at least 2 inputs.")},Lb=(e,r,t)=>{let s=r.simplified,o=e[0].dims,n=e[1],a=!s&&e[2],i=o,l=we.normalizeAxis(r.axis,o.length),c=we.sizeToDimension(o,l),p=we.sizeFromDimension(o,l),u=we.size(n.dims),d=a?we.size(a.dims):0;if(u!==p||a&&d!==p)throw new Error(`Size of X.shape()[axis:] == ${p}.
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:p}),getShaderSource:F},{inputs:[r[0],v]})},Iy=(e,r)=>{r.format==="NHWC"?Ob(e,e.inputs,r):Db(e,e.inputs,r)}}),Lb,Bb,Ay,GP=ze(()=>{"use strict";wt(),Tt(),Et(),Lb=e=>{if(!e||e.length<2)throw new Error("layerNorm requires at least 2 inputs.")},Bb=(e,r,t)=>{let s=r.simplified,o=e[0].dims,n=e[1],a=!s&&e[2],i=o,l=we.normalizeAxis(r.axis,o.length),c=we.sizeToDimension(o,l),p=we.sizeFromDimension(o,l),u=we.size(n.dims),d=a?we.size(a.dims):0;if(u!==p||a&&d!==p)throw new Error(`Size of X.shape()[axis:] == ${p}.
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 h=[];for(let P=0;P<o.length;++P)P<l?h.push(o[P]):h.push(1);let f=or(p),v=["type","type"],F=[{type:12,data:c},{type:1,data:p},{type:12,data:Math.floor(p/f)},{type:1,data:r.epsilon}];a&&v.push("type");let x=t>1,w=t>2,C=P=>{let I=kr(e[0].dataType),g=[ye("x",e[0].dataType,e[0].dims,f),ye("scale",n.dataType,n.dims,f)];a&&g.push(ye("bias",a.dataType,a.dims,f)),g.push(at("output",e[0].dataType,i,f)),x&&g.push(at("mean_data_output",1,h)),w&&g.push(at("inv_std_output",1,h));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(...g)}
@@ -1907,7 +1907,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
1907
1907
  var mean_square_vector = ${Wd("f32",f)};
1908
1908
 
1909
1909
  for (var h: u32 = 0u; h < uniforms.norm_size_vectorized; h++) {
1910
- let value = ${bn(I,f,"x[h + offset]")};
1910
+ let value = ${wn(I,f,"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(${co("mean_square_vector",f)} / 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 = ${bn(I,f,"x[j + offset]")};
1919
- let f32scale = ${bn(I,f,"scale[j]")};
1918
+ let f32input = ${wn(I,f,"x[j + offset]")};
1919
+ let f32scale = ${wn(I,f,"scale[j]")};
1920
1920
  output[j + offset] = ${g[0].type.value}((f32input ${s?"":"- mean"}) * inv_std_dev * f32scale
1921
- ${a?`+ ${bn(I,f,"bias[j]")}`:""}
1921
+ ${a?`+ ${wn(I,f,"bias[j]")}`:""}
1922
1922
  );
1923
1923
  }
1924
1924
 
1925
1925
  ${x?"mean_data_output[global_idx] = mean":""};
1926
1926
  ${w?"inv_std_output[global_idx] = inv_std_dev":""};
1927
- }`},y=[{dims:i,dataType:e[0].dataType}];return x&&y.push({dims:h,dataType:1}),w&&y.push({dims:h,dataType:1}),{name:"LayerNormalization",shaderCache:{hint:`${f};${t};${s}`,inputDependencies:v},getRunData:()=>({outputs:y,dispatchGroup:{x:Math.ceil(c/64)},programUniforms:F}),getShaderSource:C}},Iy=(e,r)=>{Ob(e.inputs),e.compute(Lb(e.inputs,r,e.outputCount))}}),Bb,Ay,GP=ze(()=>{"use strict";Tt(),vu(),yu(),Bb=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.")},Ay=e=>{Bb(e.inputs);let r=Mn.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(xu(e.inputs,{activation:""},r));else{let o=r[r.length-2],n=we.size(e.inputs[0].dims.slice(0,-2)),a=we.size(e.inputs[1].dims.slice(0,-2));if(n!==1&&o===1&&a===1){let i=e.inputs[0].reshape([1,n,s]),l=e.inputs[1].reshape([1,s,t]),c=[1,n,t],p=[i,l];e.compute(sl(p,{activation:""},r,c),{inputs:p})}else e.compute(sl(e.inputs,{activation:""},r))}}}),zb,Rb,jb,$y,Dy,KP=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),zb=(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),n=r.blockSize/8*r.bits,a=e[1];if(!we.areEqual(a.dims,[r.n,o,n]))throw new Error("The second inputs must be 3D tensor with shape N X nBlocksPerCol X blobSize");let i=e[2].dims;if(we.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(we.size(l)!==c)throw new Error("zeroPoints input size error.")}},Rb=(e,r)=>{let t=e[0].dims,s=t.length,o=t[s-2],n=r.k,a=r.n,i=t.slice(0,s-2),l=we.size(i),c=e[1].dims[2]/4,p=e[0].dataType,u=or(r.k),d=or(c),h=or(a),f=i.concat([o,a]),v=o>1&&a/h%2===0?2:1,F=we.size(f)/h/v,x=64,w=[],C=[l,o,n/u],y=we.convertShape(e[1].dims).slice();y.splice(-1,1,c/d),w.push(...pt(C)),w.push(...pt(y)),w.push(...pt(e[2].dims)),e.length===4&&w.push(...pt(we.convertShape(e[3].dims)));let P=[l,o,a/h];w.push(...pt(P));let I=g=>{let E=C.length,$=ye("a",e[0].dataType,E,u),L=ye("b",12,y.length,d),G=ye("scales",e[2].dataType,e[2].dims.length),q=[$,L,G],O=e.length===4?ye("zero_points",12,e[3].dims.length):void 0;O&&q.push(O);let J=P.length,Q=at("output",e[0].dataType,J,h),H=kr(e[0].dataType),te=(()=>{switch(u){case 1:return`array<${H}, 8>`;case 2:return`mat4x2<${H}>`;case 4:return`mat2x4<${H}>`;default:throw new Error(`${u}-component is not supported.`)}})(),re=()=>{let z=`
1927
+ }`},y=[{dims:i,dataType:e[0].dataType}];return x&&y.push({dims:h,dataType:1}),w&&y.push({dims:h,dataType:1}),{name:"LayerNormalization",shaderCache:{hint:`${f};${t};${s}`,inputDependencies:v},getRunData:()=>({outputs:y,dispatchGroup:{x:Math.ceil(c/64)},programUniforms:F}),getShaderSource:C}},Ay=(e,r)=>{Lb(e.inputs),e.compute(Bb(e.inputs,r,e.outputCount))}}),zb,$y,KP=ze(()=>{"use strict";Tt(),vu(),yu(),zb=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.")},$y=e=>{zb(e.inputs);let r=bn.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(xu(e.inputs,{activation:""},r));else{let o=r[r.length-2],n=we.size(e.inputs[0].dims.slice(0,-2)),a=we.size(e.inputs[1].dims.slice(0,-2));if(n!==1&&o===1&&a===1){let i=e.inputs[0].reshape([1,n,s]),l=e.inputs[1].reshape([1,s,t]),c=[1,n,t],p=[i,l];e.compute(sl(p,{activation:""},r,c),{inputs:p})}else e.compute(sl(e.inputs,{activation:""},r))}}}),Rb,jb,Nb,Dy,Oy,qP=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),Rb=(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),n=r.blockSize/8*r.bits,a=e[1];if(!we.areEqual(a.dims,[r.n,o,n]))throw new Error("The second inputs must be 3D tensor with shape N X nBlocksPerCol X blobSize");let i=e[2].dims;if(we.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(we.size(l)!==c)throw new Error("zeroPoints input size error.")}},jb=(e,r)=>{let t=e[0].dims,s=t.length,o=t[s-2],n=r.k,a=r.n,i=t.slice(0,s-2),l=we.size(i),c=e[1].dims[2]/4,p=e[0].dataType,u=or(r.k),d=or(c),h=or(a),f=i.concat([o,a]),v=o>1&&a/h%2===0?2:1,F=we.size(f)/h/v,x=64,w=[],C=[l,o,n/u],y=we.convertShape(e[1].dims).slice();y.splice(-1,1,c/d),w.push(...pt(C)),w.push(...pt(y)),w.push(...pt(e[2].dims)),e.length===4&&w.push(...pt(we.convertShape(e[3].dims)));let P=[l,o,a/h];w.push(...pt(P));let I=g=>{let E=C.length,$=ye("a",e[0].dataType,E,u),L=ye("b",12,y.length,d),G=ye("scales",e[2].dataType,e[2].dims.length),q=[$,L,G],O=e.length===4?ye("zero_points",12,e[3].dims.length):void 0;O&&q.push(O);let J=P.length,Q=at("output",e[0].dataType,J,h),H=kr(e[0].dataType),te=(()=>{switch(u){case 1:return`array<${H}, 8>`;case 2:return`mat4x2<${H}>`;case 4:return`mat2x4<${H}>`;default:throw new Error(`${u}-component is not supported.`)}})(),re=()=>{let z=`
1928
1928
  // reuse a data
1929
1929
  var input_offset = ${$.indicesToOffset(`${$.type.indices}(batch, row, word_offset)`)};
1930
1930
  var a_data: ${te};
@@ -2001,7 +2001,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
2001
2001
  }
2002
2002
  ${Q.setByIndices(`${Q.type.indices}(batch, row, col + local_id.x)`,"output_value")};
2003
2003
  }
2004
- }`};return{name:"MatMulNBits",shaderCache:{hint:`${r.blockSize};${r.bits};${u};${d};${h};${v};${x}`,inputDependencies:Array(e.length).fill("rank")},getRunData:()=>({outputs:[{dims:f,dataType:p}],dispatchGroup:{x:F},programUniforms:w}),getShaderSource:I}},jb=(e,r)=>{let t=e[0].dims,s=t.length,o=t[s-2],n=r.k,a=r.n,i=t.slice(0,s-2),l=we.size(i),c=e[1].dims[2]/4,p=e[0].dataType,u=or(r.k),d=or(c),h=i.concat([o,a]),f=128,v=a%8===0?8:a%4===0?4:1,F=f/v,x=F*d*8,w=x/u,C=x/r.blockSize,y=we.size(h)/v,P=[],I=[l,o,n/u],g=we.convertShape(e[1].dims).slice();g.splice(-1,1,c/d),P.push(...pt(I)),P.push(...pt(g)),P.push(...pt(e[2].dims)),e.length===4&&P.push(...pt(we.convertShape(e[3].dims)));let E=[l,o,a];P.push(...pt(E));let $=L=>{let G=I.length,q=ye("a",e[0].dataType,G,u),O=ye("b",12,g.length,d),J=ye("scales",e[2].dataType,e[2].dims.length),Q=[q,O,J],H=e.length===4?ye("zero_points",12,e[3].dims.length):void 0;H&&Q.push(H);let te=E.length,re=at("output",e[0].dataType,te),le=kr(e[0].dataType),be=()=>{switch(u){case 1:return`
2004
+ }`};return{name:"MatMulNBits",shaderCache:{hint:`${r.blockSize};${r.bits};${u};${d};${h};${v};${x}`,inputDependencies:Array(e.length).fill("rank")},getRunData:()=>({outputs:[{dims:f,dataType:p}],dispatchGroup:{x:F},programUniforms:w}),getShaderSource:I}},Nb=(e,r)=>{let t=e[0].dims,s=t.length,o=t[s-2],n=r.k,a=r.n,i=t.slice(0,s-2),l=we.size(i),c=e[1].dims[2]/4,p=e[0].dataType,u=or(r.k),d=or(c),h=i.concat([o,a]),f=128,v=a%8===0?8:a%4===0?4:1,F=f/v,x=F*d*8,w=x/u,C=x/r.blockSize,y=we.size(h)/v,P=[],I=[l,o,n/u],g=we.convertShape(e[1].dims).slice();g.splice(-1,1,c/d),P.push(...pt(I)),P.push(...pt(g)),P.push(...pt(e[2].dims)),e.length===4&&P.push(...pt(we.convertShape(e[3].dims)));let E=[l,o,a];P.push(...pt(E));let $=L=>{let G=I.length,q=ye("a",e[0].dataType,G,u),O=ye("b",12,g.length,d),J=ye("scales",e[2].dataType,e[2].dims.length),Q=[q,O,J],H=e.length===4?ye("zero_points",12,e[3].dims.length):void 0;H&&Q.push(H);let te=E.length,re=at("output",e[0].dataType,te),le=kr(e[0].dataType),be=()=>{switch(u){case 1:return`
2005
2005
  let a_data0 = vec4<${le}>(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<${le}>(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<${le}>(sub_a[word_offset], sub_a[word_offset + 1]);
@@ -2075,7 +2075,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
2075
2075
  ${re.setByIndices(`${re.type.indices}(batch, row, col + local_idx)`,"output_value")}
2076
2076
  }
2077
2077
  }
2078
- }`};return{name:"BlockwiseMatMulNBits32",shaderCache:{hint:`${r.blockSize};${u};${d};${F};${v}`,inputDependencies:Array(e.length).fill("rank")},getRunData:()=>({outputs:[{dims:h,dataType:p}],dispatchGroup:{x:y},programUniforms:P}),getShaderSource:$}},$y=(e,r)=>{zb(e.inputs,r),r.blockSize===32&&e.adapterInfo.isVendor("intel")&&e.adapterInfo.isArchitecture("gen-12lp")?e.compute(jb(e.inputs,r)):e.compute(Rb(e.inputs,r))},Dy=e=>Bt(e)}),Nb,Vb,Wb,Ub,Gb,Kb,qb,Hb,Oy,qP=ze(()=>{"use strict";wt(),Tt(),Et(),Nb=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].")}},Vb=(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};${v}`,inputDependencies:Array(e.length).fill("rank")},getRunData:()=>({outputs:[{dims:h,dataType:p}],dispatchGroup:{x:y},programUniforms:P}),getShaderSource:$}},Dy=(e,r)=>{Rb(e.inputs,r),r.blockSize===32&&e.adapterInfo.isVendor("intel")&&e.adapterInfo.isArchitecture("gen-12lp")?e.compute(Nb(e.inputs,r)):e.compute(jb(e.inputs,r))},Oy=e=>Bt(e)}),Vb,Wb,Ub,Gb,Kb,qb,Hb,Qb,Ly,HP=ze(()=>{"use strict";wt(),Tt(),Et(),Vb=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].")}},Wb=(e,r,t)=>{let s="";for(let o=r-1;o>=0;--o)s+=`
2079
2079
  k = i32(${e.indicesGet("indices",o)}) - ${it("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
- `},Wb=(e,r,t)=>{let s="";for(let o=r-1;o>=0;--o)s+=`
2095
+ `},Ub=(e,r,t)=>{let s="";for(let o=r-1;o>=0;--o)s+=`
2096
2096
  k = i32(${e.indicesGet("indices",o)}) - ${it("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
- `},Ub=(e,r,t)=>{let s="";for(let o=r-1;o>=0;--o)s+=`
2113
+ `},Gb=(e,r,t)=>{let s="";for(let o=r-1;o>=0;--o)s+=`
2114
2114
  k = i32(${e.indicesGet("indices",o)}) - ${it("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
- `},Gb=(e,r,t)=>{let s="";for(let o=r-1;o>=0;--o)s+=`
2127
+ `},Kb=(e,r,t)=>{let s="";for(let o=r-1;o>=0;--o)s+=`
2128
2128
  k = i32(${e.indicesGet("indices",o)}) - ${it("uniforms.pads",o,t)};
2129
2129
  if (k < 0) {
2130
2130
  k += i32(${it("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
- `},Kb=(e,r,t)=>{switch(t.mode){case 0:return Vb(e,r,t.pads.length);case 1:return Wb(e,r,t.pads.length);case 2:return Ub(e,r,t.pads.length);case 3:return Gb(e,r,t.pads.length);default:throw new Error("Invalid mode")}},qb=(e,r)=>{let t=we.padShape(e[0].dims.slice(),r.pads),s=e[0].dims,o=we.size(t),n=[{type:12,data:o},{type:6,data:r.pads}],a=e.length>=3&&e[2].data;r.mode===0&&n.push({type:a?e[2].dataType:1,data:r.value}),n.push(...pt(e[0].dims,t));let i=["rank"],l=c=>{let p=at("output",e[0].dataType,t.length),u=ye("x",e[0].dataType,s.length),d=u.type.value,h=Kb(p,s.length,r),f=[{name:"output_size",type:"u32"},{name:"pads",type:"i32",length:r.pads.length}];return r.mode===0&&f.push({name:"constant_value",type:a?d:"f32"}),`
2141
+ `},qb=(e,r,t)=>{switch(t.mode){case 0:return Wb(e,r,t.pads.length);case 1:return Ub(e,r,t.pads.length);case 2:return Gb(e,r,t.pads.length);case 3:return Kb(e,r,t.pads.length);default:throw new Error("Invalid mode")}},Hb=(e,r)=>{let t=we.padShape(e[0].dims.slice(),r.pads),s=e[0].dims,o=we.size(t),n=[{type:12,data:o},{type:6,data:r.pads}],a=e.length>=3&&e[2].data;r.mode===0&&n.push({type:a?e[2].dataType:1,data:r.value}),n.push(...pt(e[0].dims,t));let i=["rank"],l=c=>{let p=at("output",e[0].dataType,t.length),u=ye("x",e[0].dataType,s.length),d=u.type.value,h=qb(p,s.length,r),f=[{name:"output_size",type:"u32"},{name:"pads",type:"i32",length:r.pads.length}];return r.mode===0&&f.push({name:"constant_value",type:a?d:"f32"}),`
2142
2142
  ${c.registerUniforms(f).declareVariables(u,p)}
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
  ${h}
2150
2150
  output[global_idx] = value;
2151
- }`};return{name:"Pad",shaderCache:{hint:`${r.mode}${a}`,inputDependencies:i},getRunData:()=>({outputs:[{dims:t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(we.size(t)/64)},programUniforms:n}),getShaderSource:l}},Hb=(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,n=new Int32Array(2*o).fill(0);if(e.length>=4){let i=e[3].getBigInt64Array();for(let l=0;l<i.length;l++)n[Number(i[l])]=Number(t[l]),n[Number(i[l])+o]=Number(t[l+i.length])}else t.forEach((i,l)=>n[Number(l)]=Number(i));let a=[];return n.forEach(i=>a.push(i)),{mode:r.mode,value:s,pads:a}}else return r},Oy=(e,r)=>{Nb(e.inputs);let t=Hb(e.inputs,r);e.compute(qb(e.inputs,t),{inputs:[0]})}}),ua,xd,vd,yd,Td,Qb,Xb,Pd,Ed,Ly,By,kd,zy,Ry,Cd,jy,Ny,Vy,Wy,HP=ze(()=>{"use strict";Ps(),wt(),Tt(),Et(),ua=e=>{if(Xt.webgpu.validateInputContent&&(!e||e.length!==1))throw new Error("Pool ops requires 1 input.")},xd=(e,r,t)=>{let s=r.format==="NHWC",o=e.dims.slice();s&&o.splice(1,0,o.pop());let n=Object.hasOwnProperty.call(r,"dilations"),a=r.kernelShape.slice(),i=r.strides.slice(),l=n?r.dilations.slice():[],c=r.pads.slice();tl.adjustPoolAttributes(t,o,a,i,l,c);let p=tl.computePoolOutputShape(t,o,i,l,a,c,r.autoPad),u=Object.assign({},r);n?Object.assign(u,{kernelShape:a,strides:i,pads:c,dilations:l,cacheKey:r.cacheKey}):Object.assign(u,{kernelShape:a,strides:i,pads:c,cacheKey:r.cacheKey});let d=p.slice();return d.push(d.splice(1,1)[0]),[u,s?d:p]},vd=(e,r)=>{let t=r.format==="NHWC",s=we.size(e),o=we.size(r.kernelShape),n=[{type:12,data:s},{type:12,data:o}],a=[{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],p=r.pads[r.pads.length-1],u=!!(c+p);n.push({type:12,data:i},{type:12,data:l},{type:12,data:c},{type:12,data:p}),a.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 h=r.kernelShape[r.kernelShape.length-2],f=r.strides[r.strides.length-2],v=r.pads[r.pads.length/2-2],F=r.pads[r.pads.length-2];d=!!(v+F),n.push({type:12,data:h},{type:12,data:f},{type:12,data:v},{type:12,data:F}),a.push({name:"kh",type:"u32"},{name:"sh",type:"u32"},{name:"phStart",type:"u32"},{name:"phEnd",type:"u32"})}return[n,a,!0,u,d]}else{if(t)throw new Error("Pooling with kernelShape.length > 2 is not supported for NHWC format.");let i=we.computeStrides(r.kernelShape);n.push({type:12,data:i},{type:12,data:r.pads},{type:12,data:r.strides}),a.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,p)=>c+p);return[n,a,!!l,!1,!1]}},yd=(e,r,t,s,o,n,a,i,l,c,p,u)=>{let d=o.format==="NHWC",h=r.type.value,f=at("output",r.type.tensor,s);if(o.kernelShape.length<=2){let v="",F="",x="",w=t-(d?2:1);if(p?v=`
2151
+ }`};return{name:"Pad",shaderCache:{hint:`${r.mode}${a}`,inputDependencies:i},getRunData:()=>({outputs:[{dims:t,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(we.size(t)/64)},programUniforms:n}),getShaderSource:l}},Qb=(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,n=new Int32Array(2*o).fill(0);if(e.length>=4){let i=e[3].getBigInt64Array();for(let l=0;l<i.length;l++)n[Number(i[l])]=Number(t[l]),n[Number(i[l])+o]=Number(t[l+i.length])}else t.forEach((i,l)=>n[Number(l)]=Number(i));let a=[];return n.forEach(i=>a.push(i)),{mode:r.mode,value:s,pads:a}}else return r},Ly=(e,r)=>{Vb(e.inputs);let t=Qb(e.inputs,r);e.compute(Hb(e.inputs,t),{inputs:[0]})}}),ua,xd,vd,yd,Td,Xb,Jb,Pd,Ed,By,zy,kd,Ry,jy,Cd,Ny,Vy,Wy,Uy,QP=ze(()=>{"use strict";Ps(),wt(),Tt(),Et(),ua=e=>{if(Xt.webgpu.validateInputContent&&(!e||e.length!==1))throw new Error("Pool ops requires 1 input.")},xd=(e,r,t)=>{let s=r.format==="NHWC",o=e.dims.slice();s&&o.splice(1,0,o.pop());let n=Object.hasOwnProperty.call(r,"dilations"),a=r.kernelShape.slice(),i=r.strides.slice(),l=n?r.dilations.slice():[],c=r.pads.slice();tl.adjustPoolAttributes(t,o,a,i,l,c);let p=tl.computePoolOutputShape(t,o,i,l,a,c,r.autoPad),u=Object.assign({},r);n?Object.assign(u,{kernelShape:a,strides:i,pads:c,dilations:l,cacheKey:r.cacheKey}):Object.assign(u,{kernelShape:a,strides:i,pads:c,cacheKey:r.cacheKey});let d=p.slice();return d.push(d.splice(1,1)[0]),[u,s?d:p]},vd=(e,r)=>{let t=r.format==="NHWC",s=we.size(e),o=we.size(r.kernelShape),n=[{type:12,data:s},{type:12,data:o}],a=[{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],p=r.pads[r.pads.length-1],u=!!(c+p);n.push({type:12,data:i},{type:12,data:l},{type:12,data:c},{type:12,data:p}),a.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 h=r.kernelShape[r.kernelShape.length-2],f=r.strides[r.strides.length-2],v=r.pads[r.pads.length/2-2],F=r.pads[r.pads.length-2];d=!!(v+F),n.push({type:12,data:h},{type:12,data:f},{type:12,data:v},{type:12,data:F}),a.push({name:"kh",type:"u32"},{name:"sh",type:"u32"},{name:"phStart",type:"u32"},{name:"phEnd",type:"u32"})}return[n,a,!0,u,d]}else{if(t)throw new Error("Pooling with kernelShape.length > 2 is not supported for NHWC format.");let i=we.computeStrides(r.kernelShape);n.push({type:12,data:i},{type:12,data:r.pads},{type:12,data:r.strides}),a.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,p)=>c+p);return[n,a,!!l,!1,!1]}},yd=(e,r,t,s,o,n,a,i,l,c,p,u)=>{let d=o.format==="NHWC",h=r.type.value,f=at("output",r.type.tensor,s);if(o.kernelShape.length<=2){let v="",F="",x="",w=t-(d?2:1);if(p?v=`
2152
2152
  for (var i: u32 = 0u; i < uniforms.kw; i++) {
2153
2153
  xIndices[${w}] = indices[${w}] * uniforms.sw - uniforms.pwStart + i;
2154
2154
  if (xIndices[${w}] < 0 || xIndices[${w}]
@@ -2237,9 +2237,9 @@ fn calculateOutputIndex(index: u32) -> u32 {
2237
2237
  ${a}
2238
2238
 
2239
2239
  output[global_idx] = value;
2240
- }`}},Td=e=>`${e.format};${e.ceilMode};${e.autoPad};${e.kernelShape.length}`,Qb=e=>`${Td(e)};${e.countIncludePad}`,Xb=e=>`${Td(e)};${e.storageOrder};${e.dilations}`,Pd=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}),Ed=(e,r,t,s)=>{let[o,n]=xd(r,s,t),a=ye("x",r.dataType,r.dims.length),i=a.type.value,l="value += x_val;",c="";o.countIncludePad?c+=`value /= ${i}(uniforms.kernelSize);`:c+=`value /= ${i}(i32(uniforms.kernelSize) - pad);`;let[p,u,d,h,f]=vd(n,o);p.push(...pt(r.dims,n));let v=["rank"];return{name:e,shaderCache:{hint:`${s.cacheKey};${d};${h};${f}`,inputDependencies:v},getRunData:()=>({outputs:[{dims:n,dataType:r.dataType}],dispatchGroup:{x:Math.ceil(we.size(n)/64)},programUniforms:p}),getShaderSource:F=>yd(F,a,r.dims.length,n.length,o,l,c,0,u,d,h,f)}},Ly=e=>{let r=e.count_include_pad!==0,t=Pd(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:Qb(s)}},By=(e,r)=>{ua(e.inputs),e.compute(Ed("AveragePool",e.inputs[0],!1,r))},kd={autoPad:"",ceilMode:0,countIncludePad:!1,kernelShape:[],strides:[],pads:[],storageOrder:0,dilations:[]},zy=e=>{let r=e.format;return{format:r,...kd,cacheKey:r}},Ry=(e,r)=>{ua(e.inputs),e.compute(Ed("GlobalAveragePool",e.inputs[0],!0,r))},Cd=(e,r,t,s)=>{let[o,n]=xd(r,s,t),a=`
2240
+ }`}},Td=e=>`${e.format};${e.ceilMode};${e.autoPad};${e.kernelShape.length}`,Xb=e=>`${Td(e)};${e.countIncludePad}`,Jb=e=>`${Td(e)};${e.storageOrder};${e.dilations}`,Pd=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}),Ed=(e,r,t,s)=>{let[o,n]=xd(r,s,t),a=ye("x",r.dataType,r.dims.length),i=a.type.value,l="value += x_val;",c="";o.countIncludePad?c+=`value /= ${i}(uniforms.kernelSize);`:c+=`value /= ${i}(i32(uniforms.kernelSize) - pad);`;let[p,u,d,h,f]=vd(n,o);p.push(...pt(r.dims,n));let v=["rank"];return{name:e,shaderCache:{hint:`${s.cacheKey};${d};${h};${f}`,inputDependencies:v},getRunData:()=>({outputs:[{dims:n,dataType:r.dataType}],dispatchGroup:{x:Math.ceil(we.size(n)/64)},programUniforms:p}),getShaderSource:F=>yd(F,a,r.dims.length,n.length,o,l,c,0,u,d,h,f)}},By=e=>{let r=e.count_include_pad!==0,t=Pd(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:Xb(s)}},zy=(e,r)=>{ua(e.inputs),e.compute(Ed("AveragePool",e.inputs[0],!1,r))},kd={autoPad:"",ceilMode:0,countIncludePad:!1,kernelShape:[],strides:[],pads:[],storageOrder:0,dilations:[]},Ry=e=>{let r=e.format;return{format:r,...kd,cacheKey:r}},jy=(e,r)=>{ua(e.inputs),e.compute(Ed("GlobalAveragePool",e.inputs[0],!0,r))},Cd=(e,r,t,s)=>{let[o,n]=xd(r,s,t),a=`
2241
2241
  value = max(x_val, value);
2242
- `,i="",l=ye("x",r.dataType,r.dims.length),c=["rank"],[p,u,d,h,f]=vd(n,o);return p.push(...pt(r.dims,n)),{name:e,shaderCache:{hint:`${s.cacheKey};${d};${h};${f}`,inputDependencies:c},getRunData:()=>({outputs:[{dims:n,dataType:r.dataType}],dispatchGroup:{x:Math.ceil(we.size(n)/64)},programUniforms:p}),getShaderSource:v=>yd(v,l,r.dims.length,n.length,o,a,i,r.dataType===10?-65504:-1e5,u,d,h,f)}},jy=(e,r)=>{ua(e.inputs),e.compute(Cd("MaxPool",e.inputs[0],!1,r))},Ny=e=>{let r=e.storage_order,t=e.dilations,s=Pd(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:Xb(o)}},Vy=e=>{let r=e.format;return{format:r,...kd,cacheKey:r}},Wy=(e,r)=>{ua(e.inputs),e.compute(Cd("GlobalMaxPool",e.inputs[0],!0,r))}}),Jb,Yb,Uy,Gy,QP=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),Jb=(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,n)=>n===r.axis||o===e[0].dims[n]).reduce((o,n)=>o&&n,!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)].")}},Yb=(e,r)=>{let t=we.normalizeAxis(r.axis,e[0].dims.length),s=e[0].dataType,o=s===3,n=e[0].dims,a=e[1].dataType,i=we.size(n),l=s===3||s===2,c=l?[Math.ceil(we.size(e[0].dims)/4)]:e[0].dims,p=e[1].dims,u=e.length>2?e[2]:void 0,d=u?l?[Math.ceil(we.size(u.dims)/4)]:u.dims:void 0,h=p.length===0||p.length===1&&p[0]===1,f=h===!1&&p.length===1,v=or(i),F=h&&(!l||v===4),x=F?v:1,w=F&&!l?v:1,C=ye("input",l?12:s,c.length,w),y=ye("scale",a,p.length),P=u?ye("zero_point",l?12:s,d.length):void 0,I=at("output",a,n.length,x),g=[C,y];P&&g.push(P);let E=[c,p];u&&E.push(d);let $=[{type:12,data:i/x},{type:12,data:t},{type:12,data:r.blockSize},...pt(...E,n)],L=G=>{let q=[{name:"output_size",type:"u32"},{name:"axis",type:"u32"},{name:"block_size",type:"u32"}];return`
2242
+ `,i="",l=ye("x",r.dataType,r.dims.length),c=["rank"],[p,u,d,h,f]=vd(n,o);return p.push(...pt(r.dims,n)),{name:e,shaderCache:{hint:`${s.cacheKey};${d};${h};${f}`,inputDependencies:c},getRunData:()=>({outputs:[{dims:n,dataType:r.dataType}],dispatchGroup:{x:Math.ceil(we.size(n)/64)},programUniforms:p}),getShaderSource:v=>yd(v,l,r.dims.length,n.length,o,a,i,r.dataType===10?-65504:-1e5,u,d,h,f)}},Ny=(e,r)=>{ua(e.inputs),e.compute(Cd("MaxPool",e.inputs[0],!1,r))},Vy=e=>{let r=e.storage_order,t=e.dilations,s=Pd(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:Jb(o)}},Wy=e=>{let r=e.format;return{format:r,...kd,cacheKey:r}},Uy=(e,r)=>{ua(e.inputs),e.compute(Cd("GlobalMaxPool",e.inputs[0],!0,r))}}),Yb,Zb,Gy,Ky,XP=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),Yb=(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,n)=>n===r.axis||o===e[0].dims[n]).reduce((o,n)=>o&&n,!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)].")}},Zb=(e,r)=>{let t=we.normalizeAxis(r.axis,e[0].dims.length),s=e[0].dataType,o=s===3,n=e[0].dims,a=e[1].dataType,i=we.size(n),l=s===3||s===2,c=l?[Math.ceil(we.size(e[0].dims)/4)]:e[0].dims,p=e[1].dims,u=e.length>2?e[2]:void 0,d=u?l?[Math.ceil(we.size(u.dims)/4)]:u.dims:void 0,h=p.length===0||p.length===1&&p[0]===1,f=h===!1&&p.length===1,v=or(i),F=h&&(!l||v===4),x=F?v:1,w=F&&!l?v:1,C=ye("input",l?12:s,c.length,w),y=ye("scale",a,p.length),P=u?ye("zero_point",l?12:s,d.length):void 0,I=at("output",a,n.length,x),g=[C,y];P&&g.push(P);let E=[c,p];u&&E.push(d);let $=[{type:12,data:i/x},{type:12,data:t},{type:12,data:r.blockSize},...pt(...E,n)],L=G=>{let q=[{name:"output_size",type:"u32"},{name:"axis",type:"u32"},{name:"block_size",type:"u32"}];return`
2243
2243
  ${G.registerUniforms(q).declareVariables(...g,I)}
2244
2244
  ${G.mainStart()}
2245
2245
  ${G.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:L,getRunData:()=>({outputs:[{dims:n,dataType:a}],dispatchGroup:{x:Math.ceil(i/x/64),y:1,z:1},programUniforms:$})}},Uy=(e,r)=>{Jb(e.inputs,r),e.compute(Yb(e.inputs,r))},Gy=e=>Bt({axis:e.axis,blockSize:e.blockSize})}),Zb,eM,Ky,XP=ze(()=>{"use strict";Ps(),wt(),Et(),Zb=(e,r,t)=>{let s=e===r,o=e<r&&t<0,n=e>r&&t>0;if(s||o||n)throw new Error("Range these inputs' contents are invalid.")},eM=(e,r,t,s)=>{let o=Math.abs(Math.ceil((r-e)/t)),n=[o],a=o,i=[{type:12,data:a},{type:s,data:e},{type:s,data:t},...pt(n)],l=c=>{let p=at("output",s,n.length),u=p.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:L,getRunData:()=>({outputs:[{dims:n,dataType:a}],dispatchGroup:{x:Math.ceil(i/x/64),y:1,z:1},programUniforms:$})}},Gy=(e,r)=>{Yb(e.inputs,r),e.compute(Zb(e.inputs,r))},Ky=e=>Bt({axis:e.axis,blockSize:e.blockSize})}),eM,tM,qy,JP=ze(()=>{"use strict";Ps(),wt(),Et(),eM=(e,r,t)=>{let s=e===r,o=e<r&&t<0,n=e>r&&t>0;if(s||o||n)throw new Error("Range these inputs' contents are invalid.")},tM=(e,r,t,s)=>{let o=Math.abs(Math.ceil((r-e)/t)),n=[o],a=o,i=[{type:12,data:a},{type:s,data:e},{type:s,data:t},...pt(n)],l=c=>{let p=at("output",s,n.length),u=p.type.value,d=[{name:"outputSize",type:"u32"},{name:"start",type:u},{name:"delta",type:u}];return`
2281
2281
  ${c.registerUniforms(d).declareVariables(p)}
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:n,dataType:s}],dispatchGroup:{x:Math.ceil(a/64)},programUniforms:i})}},Ky=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]),Xt.webgpu.validateInputContent&&Zb(r,t,s),e.compute(eM(r,t,s,e.inputs[0].dataType),{inputs:[]})}}),tM,Sd,Fd,rM,qy,Hy,JP=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),tM=(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:n,dataType:s}],dispatchGroup:{x:Math.ceil(a/64)},programUniforms:i})}},qy=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]),Xt.webgpu.validateInputContent&&eM(r,t,s),e.compute(tM(r,t,s,e.inputs[0].dataType),{inputs:[]})}}),rM,Sd,Fd,sM,Hy,Qy,YP=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),rM=(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 =`,n=`;
@@ -2314,8 +2314,8 @@ fn calculateOutputIndex(index: u32) -> u32 {
2314
2314
  }
2315
2315
  data_offset += u32((u32(index) * element_count_dim));`,Fd=(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
- ${tM(e.reduction,"output[data_offset + i]","value",r)}
2318
- }`,rM=(e,r)=>{let t=e[0].dims,s=e[1].dims,o=t,n=1,a=Math.ceil(we.size(s)/n),i=s[s.length-1],l=we.sizeFromDimension(t,i),c=we.sizeFromDimension(s,0)/i,p=[{type:12,data:a},{type:12,data:i},{type:12,data:l},...pt(e[1].dims,e[2].dims,o)],u=d=>{let h=ye("indices",e[1].dataType,e[1].dims.length),f=ye("updates",e[2].dataType,e[2].dims.length,n),v=r.reduction!=="none"&&r.reduction!==""?vx("output",e[0].dataType,o.length):at("output",e[0].dataType,o.length,n);return`
2317
+ ${rM(e.reduction,"output[data_offset + i]","value",r)}
2318
+ }`,sM=(e,r)=>{let t=e[0].dims,s=e[1].dims,o=t,n=1,a=Math.ceil(we.size(s)/n),i=s[s.length-1],l=we.sizeFromDimension(t,i),c=we.sizeFromDimension(s,0)/i,p=[{type:12,data:a},{type:12,data:i},{type:12,data:l},...pt(e[1].dims,e[2].dims,o)],u=d=>{let h=ye("indices",e[1].dataType,e[1].dims.length),f=ye("updates",e[2].dataType,e[2].dims.length,n),v=r.reduction!=="none"&&r.reduction!==""?yx("output",e[0].dataType,o.length):at("output",e[0].dataType,o.length,n);return`
2319
2319
  ${d.registerUniform("output_size","u32").registerUniform("last_index_dimension","u32").registerUniform("num_updates_elements","u32").declareVariables(h,f,v)}
2320
2320
  ${d.mainStart()}
2321
2321
  ${d.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}
@@ -2360,8 +2360,8 @@ fn calculateOutputIndex(index: u32) -> u32 {
2360
2360
  ${Sd(t.length,!0)}
2361
2361
  }
2362
2362
  ${Fd(r,v.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(a/64)},programUniforms:p}),getShaderSource:u}},qy=e=>Bt({reduction:e.reduction}),Hy=(e,r)=>{e.compute(rM(e.inputs,r),{inputs:[e.inputs[1],e.inputs[2]],outputs:[]})}}),sM,oM,nM,Id,aM,iM,lM,cM,dM,uM,pM,_M,Ad,mM,fM,hM,gM,wM,Qy,Xy,YP=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),sM=(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")}},oM=(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,n)=>s[o]=e[n]),s},nM=(e,r,t,s,o,n)=>{let[a,i,l]=t>10?[1,2,3]:[-1,e.length>1?1:-1,-1],c=e[0].dims.length;if(a>0&&e.length>a&&e[a].dims.length>0)e[a].getFloat32Array().forEach(p=>n.push(p));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(p=>s.push(p)),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");sM(s,r),r.axes.length>0&&oM(s,r.axes,c).forEach((p,u)=>s[u]=p)}if(l>0&&e.length>l&&e[l].dims.length===1&&e[l].dims[0]>0&&(e[l].getBigInt64Array().forEach(p=>o.push(Number(p))),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")},Id=(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(a/64)},programUniforms:p}),getShaderSource:u}},Hy=e=>Bt({reduction:e.reduction}),Qy=(e,r)=>{e.compute(sM(e.inputs,r),{inputs:[e.inputs[1],e.inputs[2]],outputs:[]})}}),oM,nM,aM,Id,iM,lM,cM,dM,uM,pM,_M,mM,Ad,fM,hM,gM,wM,bM,Xy,Jy,ZP=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),oM=(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")}},nM=(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,n)=>s[o]=e[n]),s},aM=(e,r,t,s,o,n)=>{let[a,i,l]=t>10?[1,2,3]:[-1,e.length>1?1:-1,-1],c=e[0].dims.length;if(a>0&&e.length>a&&e[a].dims.length>0)e[a].getFloat32Array().forEach(p=>n.push(p));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(p=>s.push(p)),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");oM(s,r),r.axes.length>0&&nM(s,r.axes,c).forEach((p,u)=>s[u]=p)}if(l>0&&e.length>l&&e[l].dims.length===1&&e[l].dims[0]>0&&(e[l].getBigInt64Array().forEach(p=>o.push(Number(p))),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")},Id=(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
- `,aM=(e,r)=>`fn getOriginalCoordinateFromResizedCoordinate(xResized: u32, xScale: f32, lengthResized: u32,
2372
+ `,iM=(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`)}})()+"}",iM=(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); }";case"simple":default:if(r<11)return"if (isDownSample) { return ceil(xOriginal); } else { return xOriginal; }";throw new Error(`Nearest mode ${e} is not supported`)}})()+"}",lM=(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((n,a)=>{s[n]=o[a],s[a+t]=o[r.length+a]}),s):o},cM=(e,r,t,s)=>{let o=[];if(t.length>0)if(s.length>0){if(e.forEach(n=>o.push(n)),Math.max(...s)>e.length)throw new Error("axes is out of bound");s.forEach((n,a)=>o[n]=t[a])}else t.forEach(n=>o.push(n));else{if(r.length===0)throw new Error("Resize requires either scales or sizes.");o=e.map((n,a)=>Math.round(n*r[a]))}return o},dM=(e,r,t)=>{let s=(()=>{switch(t.keepAspectRatioPolicy){case"not_larger":return t.axes.length>0?Math.min(...t.axes.map(n=>r[n]),Number.MAX_VALUE):Math.min(...r,Number.MAX_VALUE);case"not_smaller":return t.axes.length>0?Math.max(...t.axes.map(n=>r[n]),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(n=>r[n]=s),t.axes.forEach(n=>o[n]=Math.round(e[n]*r[n]))):(r.fill(s,0,r.length),o.forEach((n,a)=>o[a]=Math.round(n*r[a]))),o},uM=(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`)}})()+"}",lM=(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); }";case"simple":default:if(r<11)return"if (isDownSample) { return ceil(xOriginal); } else { return xOriginal; }";throw new Error(`Nearest mode ${e} is not supported`)}})()+"}",cM=(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((n,a)=>{s[n]=o[a],s[a+t]=o[r.length+a]}),s):o},dM=(e,r,t,s)=>{let o=[];if(t.length>0)if(s.length>0){if(e.forEach(n=>o.push(n)),Math.max(...s)>e.length)throw new Error("axes is out of bound");s.forEach((n,a)=>o[n]=t[a])}else t.forEach(n=>o.push(n));else{if(r.length===0)throw new Error("Resize requires either scales or sizes.");o=e.map((n,a)=>Math.round(n*r[a]))}return o},uM=(e,r,t)=>{let s=(()=>{switch(t.keepAspectRatioPolicy){case"not_larger":return t.axes.length>0?Math.min(...t.axes.map(n=>r[n]),Number.MAX_VALUE):Math.min(...r,Number.MAX_VALUE);case"not_smaller":return t.axes.length>0?Math.max(...t.axes.map(n=>r[n]),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(n=>r[n]=s),t.axes.forEach(n=>o[n]=Math.round(e[n]*r[n]))):(r.fill(s,0,r.length),o.forEach((n,a)=>o[a]=Math.round(n*r[a]))),o},pM=(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
- }`,pM=(e,r,t,s,o,n,a)=>`
2415
+ }`,_M=(e,r,t,s,o,n,a)=>`
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
- }`,_M=(e,r)=>`
2446
+ }`,mM=(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
  }`,Ad=(e,r,t,s)=>e.rank>s?`
2456
2456
  ${e.indicesSet("input_indices",r,"channel")};
2457
2457
  ${e.indicesSet("input_indices",t,"batch")};
2458
- `:"",mM=(e,r,t,s,o)=>{let[n,a,i,l]=t.length===2?[-1,0,1,-1]:[0,2,3,1],c=e.type.value;return`
2458
+ `:"",fM=(e,r,t,s,o)=>{let[n,a,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",a,`max(0, min(row, ${t[a]} - 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
- }`},fM=(e,r,t,s,o,n,a,i,l,c)=>{let p=t.length===2,u=!0,[d,h]=p?[0,1]:u?[2,3]:[1,2],f=e.type.value,v=F=>{let x=F===d?"row":"col";return`
2499
+ }`},hM=(e,r,t,s,o,n,a,i,l,c)=>{let p=t.length===2,u=!0,[d,h]=p?[0,1]:u?[2,3]:[1,2],f=e.type.value,v=F=>{let x=F===d?"row":"col";return`
2500
2500
  fn ${x}CubicInterpolation(input_indices: ${e.type.indices}, output_indices: ${r.type.indices}) -> ${f} {
2501
2501
  var output_index = ${r.indicesGet("output_indices",F)};
2502
2502
  var originalIdx: ${f} = 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
- `},hM=(e,r,t,s,o)=>{let[n,a,i,l,c]=t.length===3?[-1,0,1,2,-1]:[0,2,3,4,1],p=e.type.value;return`
2547
+ `},gM=(e,r,t,s,o)=>{let[n,a,i,l,c]=t.length===3?[-1,0,1,2,-1]:[0,2,3,4,1],p=e.type.value;return`
2548
2548
  fn getInputValue(batch: u32, channel: u32, depth:u32, height: u32, width: u32) -> ${p} {
2549
2549
  var input_indices: ${e.type.indices};
2550
2550
  ${e.indicesSet("input_indices",a,`max(0, min(depth, ${t[a]} - 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
- }`},gM=(e,r,t,s,o,n)=>{let a=e.dims,i=lM(n,r.axes,a.length),l=cM(a,s,o,r.axes),c=s.slice();s.length===0&&(c=a.map((w,C)=>w===0?1:l[C]/w),r.keepAspectRatioPolicy!=="stretch"&&(l=dM(a,c,r)));let p=at("output",e.dataType,l.length),u=ye("input",e.dataType,a.length),d=we.size(l),h=a.length===l.length&&a.every((w,C)=>w===l[C]),f=r.coordinateTransformMode==="tf_crop_and_resize",v=r.extrapolationValue,F=u.type.value,x=w=>`
2606
+ }`},wM=(e,r,t,s,o,n)=>{let a=e.dims,i=cM(n,r.axes,a.length),l=dM(a,s,o,r.axes),c=s.slice();s.length===0&&(c=a.map((w,C)=>w===0?1:l[C]/w),r.keepAspectRatioPolicy!=="stretch"&&(l=uM(a,c,r)));let p=at("output",e.dataType,l.length),u=ye("input",e.dataType,a.length),d=we.size(l),h=a.length===l.length&&a.every((w,C)=>w===l[C]),f=r.coordinateTransformMode==="tf_crop_and_resize",v=r.extrapolationValue,F=u.type.value,x=w=>`
2607
2607
  ${h?"":`
2608
- ${aM(r.coordinateTransformMode,F)};
2608
+ ${iM(r.coordinateTransformMode,F)};
2609
2609
  ${(()=>{switch(r.mode){case"nearest":return`
2610
- ${_M(u,a)};
2611
- ${iM(r.nearestMode,t,F)};
2612
- ${pM(u,p,a,l,c.length,i.length,f)};
2610
+ ${mM(u,a)};
2611
+ ${lM(r.nearestMode,t,F)};
2612
+ ${_M(u,p,a,l,c.length,i.length,f)};
2613
2613
  `;case"linear":return`
2614
- ${uM(p,a,l,c.length,i.length)};
2615
- ${(()=>{if(a.length===2||a.length===4)return`${mM(u,p,a,f,v)}`;if(a.length===3||a.length===5)return`${hM(u,p,a,f,v)}`;throw Error("Linear mode only supports input dims 2, 3, 4 and 5 are supported in linear mode.")})()};
2614
+ ${pM(p,a,l,c.length,i.length)};
2615
+ ${(()=>{if(a.length===2||a.length===4)return`${fM(u,p,a,f,v)}`;if(a.length===3||a.length===5)return`${gM(u,p,a,f,v)}`;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(a.length===2||a.length===4)return`${fM(u,p,a,l,c,i,r.cubicCoeffA,f,r.extrapolationValue,r.excludeOutside)}`;throw Error("Cubic mode only supports input dims 2 and 4 are supported in linear mode.")})()};
2617
+ ${(()=>{if(a.length===2||a.length===4)return`${hM(u,p,a,l,c,i,r.cubicCoeffA,f,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
  ${w.registerUniform("output_size","u32").registerUniform("scales","f32",c.length).registerUniform("roi","f32",i.length).declareVariables(u,p)}
@@ -2630,7 +2630,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
2630
2630
  output[global_idx] = ${r.extrapolationValue};
2631
2631
  }`;case"linear":return`output[global_idx] = ${a.length===2||a.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:""}|${h}|${r.mode==="nearest"?a.length:a}`,inputDependencies:["rank"]},getShaderSource:x,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},...pt(a,l)]})}},wM=e=>{let r=e.customDataBuffer;return new Uint32Array(r,r.byteOffset,1)[0]},Qy=(e,r)=>{let t=[],s=[],o=[],n=wM(e);if(r.antialias!==0)throw Error("Only default value (0) for Antialias attribute is supported");nM(e.inputs,r,n,t,s,o),e.compute(gM(e.inputs[0],r,n,t,s,o),{inputs:[0]})},Xy=e=>{let r=e.antialias,t=e.axes,s=e.coordinateTransformMode,o=e.cubicCoeffA,n=e.excludeOutside!==0,a=e.extrapolationValue,i=e.keepAspectRatioPolicy,l=e.mode,c=e.nearestMode===""?"simple":e.nearestMode;return Bt({antialias:r,axes:t,coordinateTransformMode:s,cubicCoeffA:o,excludeOutside:n,extrapolationValue:a,keepAspectRatioPolicy:i,mode:l,nearestMode:c})}}),bM,MM,Jy,ZP=ze(()=>{"use strict";wt(),Tt(),Et(),bM=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],n=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]!==n)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 a=e[3];if(a.dims.length!==1)throw new Error("Beta must be 1D");if(a.dims[a.dims.length-1]!==o)throw new Error("Beta must have the same hidden size as input")}if(e.length>4){let a=e[4];if(a.dims.length!==1)throw new Error("Bias must be 1D");if(a.dims[a.dims.length-1]!==o)throw new Error("Bias must have the same hidden size as input")}},MM=(e,r,t,s)=>{let o=r.simplified,n=e[0].dims,a=we.size(n),i=n,l=a,c=n.slice(-1)[0],p=s?n.slice(0,-1).concat(1):[],u=!o&&e.length>3,d=e.length>4,h=s&&t>1,f=s&&t>2,v=t>3,F=64,x=or(c),w=[{type:12,data:l},{type:12,data:x},{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"}],g=[ye("x",e[0].dataType,e[0].dims,x),ye("skip",e[1].dataType,e[1].dims,x),ye("gamma",e[2].dataType,e[2].dims,x)];u&&g.push(ye("beta",e[3].dataType,e[3].dims,x)),d&&g.push(ye("bias",e[4].dataType,e[4].dims,x)),g.push(at("output",e[0].dataType,i,x)),h&&g.push(at("mean_output",1,p)),f&&g.push(at("inv_std_output",1,p)),v&&g.push(at("input_skip_bias_sum",e[0].dataType,i,x));let E=kr(e[0].dataType),$=kr(1,x);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:""}|${h}|${r.mode==="nearest"?a.length:a}`,inputDependencies:["rank"]},getShaderSource:x,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},...pt(a,l)]})}},bM=e=>{let r=e.customDataBuffer;return new Uint32Array(r,r.byteOffset,1)[0]},Xy=(e,r)=>{let t=[],s=[],o=[],n=bM(e);if(r.antialias!==0)throw Error("Only default value (0) for Antialias attribute is supported");aM(e.inputs,r,n,t,s,o),e.compute(wM(e.inputs[0],r,n,t,s,o),{inputs:[0]})},Jy=e=>{let r=e.antialias,t=e.axes,s=e.coordinateTransformMode,o=e.cubicCoeffA,n=e.excludeOutside!==0,a=e.extrapolationValue,i=e.keepAspectRatioPolicy,l=e.mode,c=e.nearestMode===""?"simple":e.nearestMode;return Bt({antialias:r,axes:t,coordinateTransformMode:s,cubicCoeffA:o,excludeOutside:n,extrapolationValue:a,keepAspectRatioPolicy:i,mode:l,nearestMode:c})}}),MM,xM,Yy,eE=ze(()=>{"use strict";wt(),Tt(),Et(),MM=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],n=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]!==n)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 a=e[3];if(a.dims.length!==1)throw new Error("Beta must be 1D");if(a.dims[a.dims.length-1]!==o)throw new Error("Beta must have the same hidden size as input")}if(e.length>4){let a=e[4];if(a.dims.length!==1)throw new Error("Bias must be 1D");if(a.dims[a.dims.length-1]!==o)throw new Error("Bias must have the same hidden size as input")}},xM=(e,r,t,s)=>{let o=r.simplified,n=e[0].dims,a=we.size(n),i=n,l=a,c=n.slice(-1)[0],p=s?n.slice(0,-1).concat(1):[],u=!o&&e.length>3,d=e.length>4,h=s&&t>1,f=s&&t>2,v=t>3,F=64,x=or(c),w=[{type:12,data:l},{type:12,data:x},{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"}],g=[ye("x",e[0].dataType,e[0].dims,x),ye("skip",e[1].dataType,e[1].dims,x),ye("gamma",e[2].dataType,e[2].dims,x)];u&&g.push(ye("beta",e[3].dataType,e[3].dims,x)),d&&g.push(ye("bias",e[4].dataType,e[4].dims,x)),g.push(at("output",e[0].dataType,i,x)),h&&g.push(at("mean_output",1,p)),f&&g.push(at("inv_std_output",1,p)),v&&g.push(at("input_skip_bias_sum",e[0].dataType,i,x));let E=kr(e[0].dataType),$=kr(1,x);return`
2634
2634
 
2635
2635
  ${P.registerUniforms(I).declareVariables(...g)}
2636
2636
  var<workgroup> sum_shared : array<${$}, ${F}>;
@@ -2654,7 +2654,7 @@ fn calculateOutputIndex(index: u32) -> u32 {
2654
2654
  let value = input_value + skip_value + bias_value;
2655
2655
  ${v?"input_skip_bias_sum[offset + i] = value;":""}
2656
2656
  output[offset + i] = value;
2657
- let f32_value = ${bn(E,x,"value")};
2657
+ let f32_value = ${wn(E,x,"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:p,dataType:1}),t>2&&y.push({dims:p,dataType:1}),t>3&&y.push({dims:n,dataType:e[0].dataType}),{name:"SkipLayerNormalization",shaderCache:{hint:`${x};${h};${f};${v}`,inputDependencies:e.map((P,I)=>"type")},getShaderSource:C,getRunData:()=>({outputs:y,dispatchGroup:{x:Math.ceil(l/c)},programUniforms:w})}},Jy=(e,r)=>{bM(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(MM(e.inputs,r,e.outputCount,!1),{outputs:t})}}),xM,pa,vM,$d,yM,TM,Yy,Zy,eE=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),xM=(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`)})},pa=(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},vM=(e,r)=>{if(e.length>1){let t=pa(e,1),s=pa(e,2),o=pa(e,3);return o.length===0&&(o=[...Array(e[0].dims.length).keys()]),Bt({starts:t,ends:s,axes:o})}else return r},$d=(e,r,t,s,o)=>{let n=e;return e<0&&(n+=t[s[r]]),o[r]<0?Math.max(0,Math.min(n,t[s[r]]-1)):Math.max(0,Math.min(n,t[s[r]]))},yM=(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:p,dataType:1}),t>2&&y.push({dims:p,dataType:1}),t>3&&y.push({dims:n,dataType:e[0].dataType}),{name:"SkipLayerNormalization",shaderCache:{hint:`${x};${h};${f};${v}`,inputDependencies:e.map((P,I)=>"type")},getShaderSource:C,getRunData:()=>({outputs:y,dispatchGroup:{x:Math.ceil(l/c)},programUniforms:w})}},Yy=(e,r)=>{MM(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(xM(e.inputs,r,e.outputCount,!1),{outputs:t})}}),vM,pa,yM,$d,TM,PM,Zy,e0,tE=ze(()=>{"use strict";wt(),Tt(),ir(),Et(),vM=(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`)})},pa=(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},yM=(e,r)=>{if(e.length>1){let t=pa(e,1),s=pa(e,2),o=pa(e,3);return o.length===0&&(o=[...Array(e[0].dims.length).keys()]),Bt({starts:t,ends:s,axes:o})}else return r},$d=(e,r,t,s,o)=>{let n=e;return e<0&&(n+=t[s[r]]),o[r]<0?Math.max(0,Math.min(n,t[s[r]]-1)):Math.max(0,Math.min(n,t[s[r]]))},TM=(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
- }`,TM=(e,r)=>{let t=e[0].dims,s=we.size(t),o=r.axes.length>0?we.normalizeAxes(r.axes,t.length):[...Array(t.length).keys()],n=pa(e,4);n.forEach(x=>x!==0||(()=>{throw new Error("step cannot be 0")})),n.length===0&&(n=Array(o.length).fill(1));let a=r.starts.map((x,w)=>$d(x,w,t,o,n)),i=r.ends.map((x,w)=>$d(x,w,t,o,n));if(o.length!==a.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 x=0;x<t.length;++x)o.includes(x)||(a.splice(x,0,0),i.splice(x,0,t[x]),n.splice(x,0,1));let l=n.map(x=>Math.sign(x));n.forEach((x,w,C)=>{if(x<0){let y=(i[w]-a[w])/x,P=a[w],I=P+y*n[w];a[w]=I,i[w]=P,C[w]=-x}});let c=t.slice(0);o.forEach((x,w)=>{c[x]=Math.ceil((i[x]-a[x])/n[x])});let p={dims:c,dataType:e[0].dataType},u=at("output",e[0].dataType,c.length),d=ye("input",e[0].dataType,e[0].dims.length),h=we.size(c),f=[{name:"outputSize",type:"u32"},{name:"starts",type:"u32",length:a.length},{name:"signs",type:"i32",length:l.length},{name:"steps",type:"u32",length:n.length}],v=[{type:12,data:h},{type:12,data:a},{type:6,data:l},{type:12,data:n},...pt(e[0].dims,c)],F=x=>`
2703
+ }`,PM=(e,r)=>{let t=e[0].dims,s=we.size(t),o=r.axes.length>0?we.normalizeAxes(r.axes,t.length):[...Array(t.length).keys()],n=pa(e,4);n.forEach(x=>x!==0||(()=>{throw new Error("step cannot be 0")})),n.length===0&&(n=Array(o.length).fill(1));let a=r.starts.map((x,w)=>$d(x,w,t,o,n)),i=r.ends.map((x,w)=>$d(x,w,t,o,n));if(o.length!==a.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 x=0;x<t.length;++x)o.includes(x)||(a.splice(x,0,0),i.splice(x,0,t[x]),n.splice(x,0,1));let l=n.map(x=>Math.sign(x));n.forEach((x,w,C)=>{if(x<0){let y=(i[w]-a[w])/x,P=a[w],I=P+y*n[w];a[w]=I,i[w]=P,C[w]=-x}});let c=t.slice(0);o.forEach((x,w)=>{c[x]=Math.ceil((i[x]-a[x])/n[x])});let p={dims:c,dataType:e[0].dataType},u=at("output",e[0].dataType,c.length),d=ye("input",e[0].dataType,e[0].dims.length),h=we.size(c),f=[{name:"outputSize",type:"u32"},{name:"starts",type:"u32",length:a.length},{name:"signs",type:"i32",length:l.length},{name:"steps",type:"u32",length:n.length}],v=[{type:12,data:h},{type:12,data:a},{type:6,data:l},{type:12,data:n},...pt(e[0].dims,c)],F=x=>`
2704
2704
  ${x.registerUniforms(f).declareVariables(d,u)}
2705
- ${yM(d,u,t)}
2705
+ ${TM(d,u,t)}
2706
2706
  ${x.mainStart()}
2707
2707
  ${x.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}_${a.length}_${n.length}`,inputDependencies:["rank"]},getShaderSource:F,getRunData:()=>({outputs:[p],dispatchGroup:{x:Math.ceil(s/64)},programUniforms:v})}},Yy=(e,r)=>{xM(e.inputs,r);let t=vM(e.inputs,r);e.compute(TM(e.inputs,t),{inputs:[0]})},Zy=e=>{let r=e.starts,t=e.ends,s=e.axes;return Bt({starts:r,ends:t,axes:s})}}),PM,EM,e0,t0,tE=ze(()=>{"use strict";wt(),Tt(),ir(),uo(),Et(),PM=e=>{if(!e||e.length!==1)throw new Error("Softmax op requires 1 input.")},EM=(e,r)=>{let t=e.inputs[0],s=t.dims,o=we.size(s),n=s.length,a=we.normalizeAxis(r.axis,n),i=a<s.length-1,l,c=[];i?(c=Array.from({length:n},(g,E)=>E),c[a]=n-1,c[n-1]=a,l=e.compute(ss(t,c),{inputs:[t],outputs:[-1]})[0]):l=t;let p=l.dims,u=p[n-1],d=o/u,h=or(u),f=u/h,v=64;d===1&&(v=256);let F=(g,E)=>E===4?`max(max(${g}.x, ${g}.y), max(${g}.z, ${g}.w))`:E===2?`max(${g}.x, ${g}.y)`:E===3?`max(max(${g}.x, ${g}.y), ${g}.z)`:g,x=ye("x",l.dataType,l.dims,h),w=at("result",l.dataType,l.dims,h),C=x.type.value,y=kr(l.dataType)==="f32"?`var threadMax = ${C}(-3.402823e+38f);`:`var threadMax = ${C}(-65504.0h);`,P=g=>`
2711
+ }`;return{name:"Slice",shaderCache:{hint:`${l.length}_${a.length}_${n.length}`,inputDependencies:["rank"]},getShaderSource:F,getRunData:()=>({outputs:[p],dispatchGroup:{x:Math.ceil(s/64)},programUniforms:v})}},Zy=(e,r)=>{vM(e.inputs,r);let t=yM(e.inputs,r);e.compute(PM(e.inputs,t),{inputs:[0]})},e0=e=>{let r=e.starts,t=e.ends,s=e.axes;return Bt({starts:r,ends:t,axes:s})}}),EM,kM,t0,r0,rE=ze(()=>{"use strict";wt(),Tt(),ir(),uo(),Et(),EM=e=>{if(!e||e.length!==1)throw new Error("Softmax op requires 1 input.")},kM=(e,r)=>{let t=e.inputs[0],s=t.dims,o=we.size(s),n=s.length,a=we.normalizeAxis(r.axis,n),i=a<s.length-1,l,c=[];i?(c=Array.from({length:n},(g,E)=>E),c[a]=n-1,c[n-1]=a,l=e.compute(ss(t,c),{inputs:[t],outputs:[-1]})[0]):l=t;let p=l.dims,u=p[n-1],d=o/u,h=or(u),f=u/h,v=64;d===1&&(v=256);let F=(g,E)=>E===4?`max(max(${g}.x, ${g}.y), max(${g}.z, ${g}.w))`:E===2?`max(${g}.x, ${g}.y)`:E===3?`max(max(${g}.x, ${g}.y), ${g}.z)`:g,x=ye("x",l.dataType,l.dims,h),w=at("result",l.dataType,l.dims,h),C=x.type.value,y=kr(l.dataType)==="f32"?`var threadMax = ${C}(-3.402823e+38f);`:`var threadMax = ${C}(-65504.0h);`,P=g=>`
2712
2712
  var<workgroup> rowMaxShared : ${C};
2713
2713
  var<workgroup> rowSumShared : ${C};
2714
2714
  var<workgroup> threadShared : array<${C}, ${v}>;
@@ -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:`${h};${v}`,inputDependencies:["type"]},getRunData:()=>({outputs:[{dims:p,dataType:l.dataType}],dispatchGroup:{x:d},programUniforms:[{type:6,data:f}]}),getShaderSource:P},{inputs:[l],outputs:[i?-1:0]})[0];i&&e.compute(ss(I,c),{inputs:[I]})},e0=(e,r)=>{PM(e.inputs),EM(e,r)},t0=e=>Bt({axis:e.axis})}),Dd,kM,CM,SM,r0,rE=ze(()=>{"use strict";wt(),Tt(),Et(),Dd=e=>Array.from(e.getBigInt64Array(),Number),kM=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(Dd(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")},CM=(e,r)=>{let t=[];for(let s=0;s<e.length;++s)t.push(e[s]*r[s]);return t},SM=(e,r)=>{let t=e[0].dims,s=r??Dd(e[1]),o=CM(t,s),n=we.size(o),a=e[0].dataType,i=ye("input",a,t.length),l=at("output",a,o.length),c=p=>`
2783
+ }`,I=e.compute({name:"Softmax",shaderCache:{hint:`${h};${v}`,inputDependencies:["type"]},getRunData:()=>({outputs:[{dims:p,dataType:l.dataType}],dispatchGroup:{x:d},programUniforms:[{type:6,data:f}]}),getShaderSource:P},{inputs:[l],outputs:[i?-1:0]})[0];i&&e.compute(ss(I,c),{inputs:[I]})},t0=(e,r)=>{EM(e.inputs),kM(e,r)},r0=e=>Bt({axis:e.axis})}),Dd,CM,SM,FM,s0,sE=ze(()=>{"use strict";wt(),Tt(),Et(),Dd=e=>Array.from(e.getBigInt64Array(),Number),CM=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(Dd(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")},SM=(e,r)=>{let t=[];for(let s=0;s<e.length;++s)t.push(e[s]*r[s]);return t},FM=(e,r)=>{let t=e[0].dims,s=r??Dd(e[1]),o=SM(t,s),n=we.size(o),a=e[0].dataType,i=ye("input",a,t.length),l=at("output",a,o.length),c=p=>`
2784
2784
  const inputShape = ${i.indices(...t)};
2785
2785
  ${p.registerUniform("output_size","u32").declareVariables(i,l)}
2786
2786
  ${p.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(n/64)},programUniforms:[{type:12,data:n},...pt(e[0].dims,o)]}),getShaderSource:c}},r0=e=>{kM(e.inputs),e.compute(SM(e.inputs),{inputs:[0]})}}),FM,IM,s0,sE=ze(()=>{"use strict";wt(),Tt(),Et(),FM=(e,r,t,s,o)=>{let n=at("output_data",o,t.length,4),a=ye("a_data",r[1].dataType,r[1].dims.length,4),i=ye("b_data",r[2].dataType,r[2].dims.length,4),l=ye("c_data",r[0].dataType,r[0].dims.length,4),c,p=(u,d,h)=>`select(${d}, ${u}, ${h})`;if(!s)c=n.setByOffset("global_idx",p(a.getByOffset("global_idx"),i.getByOffset("global_idx"),l.getByOffset("global_idx")));else{let u=(d,h,f="")=>{let v=`a_data[index_a${h}][component_a${h}]`,F=`b_data[index_b${h}][component_b${h}]`,x=`bool(c_data[index_c${h}] & (0xffu << (component_c${h} * 8)))`;return`
2797
+ }`;return{name:"Tile",shaderCache:{hint:`${s}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:o,dataType:e[0].dataType}],dispatchGroup:{x:Math.ceil(n/64)},programUniforms:[{type:12,data:n},...pt(e[0].dims,o)]}),getShaderSource:c}},s0=e=>{CM(e.inputs),e.compute(FM(e.inputs),{inputs:[0]})}}),IM,AM,o0,oE=ze(()=>{"use strict";wt(),Tt(),Et(),IM=(e,r,t,s,o)=>{let n=at("output_data",o,t.length,4),a=ye("a_data",r[1].dataType,r[1].dims.length,4),i=ye("b_data",r[2].dataType,r[2].dims.length,4),l=ye("c_data",r[0].dataType,r[0].dims.length,4),c,p=(u,d,h)=>`select(${d}, ${u}, ${h})`;if(!s)c=n.setByOffset("global_idx",p(a.getByOffset("global_idx"),i.getByOffset("global_idx"),l.getByOffset("global_idx")));else{let u=(d,h,f="")=>{let v=`a_data[index_a${h}][component_a${h}]`,F=`b_data[index_b${h}][component_b${h}]`,x=`bool(c_data[index_c${h}] & (0xffu << (component_c${h} * 8)))`;return`
2798
2798
  let output_indices${h} = ${n.offsetToIndices(`global_idx * 4u + ${h}u`)};
2799
2799
  let offset_a${h} = ${a.broadcastedIndicesToOffset(`output_indices${h}`,n)};
2800
2800
  let offset_b${h} = ${i.broadcastedIndicesToOffset(`output_indices${h}`,n)};
@@ -2822,10 +2822,10 @@ fn calculateOutputIndex(index: u32) -> u32 {
2822
2822
  ${e.mainStart()}
2823
2823
  ${e.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")}
2824
2824
  ${c}
2825
- }`},IM=e=>{let r=e[1].dims,t=e[2].dims,s=e[0].dims,o=e[1].dataType,n=!(we.areEqual(r,t)&&we.areEqual(t,s)),a=r,i=we.size(r);if(n){let c=Mn.calcShape(Mn.calcShape(r,t,!1),s,!1);if(!c)throw new Error("Can't perform where op on the given tensors");a=c,i=we.size(a)}let l=Math.ceil(i/4);return{name:"Where",shaderCache:{inputDependencies:["rank","rank","rank"]},getShaderSource:c=>FM(c,e,a,n,o),getRunData:()=>({outputs:[{dims:a,dataType:o}],dispatchGroup:{x:Math.ceil(i/64/4)},programUniforms:[{type:12,data:l},...pt(s,r,t,a)]})}},s0=e=>{e.compute(IM(e.inputs))}}),o0,oE=ze(()=>{"use strict";wP(),gu(),bP(),MP(),xP(),vP(),yP(),CP(),FP(),IP(),AP(),$P(),DP(),OP(),LP(),BP(),zP(),RP(),jP(),NP(),VP(),WP(),UP(),GP(),KP(),yy(),qP(),HP(),QP(),XP(),JP(),hu(),YP(),Cy(),ZP(),eE(),tE(),Ey(),rE(),uo(),wu(),sE(),o0=new Map([["Abs",[Jx]],["Acos",[Yx]],["Acosh",[Zx]],["Add",[$v]],["ArgMax",[qx,Gd]],["ArgMin",[Kx,Gd]],["Asin",[ev]],["Asinh",[tv]],["Atan",[rv]],["Atanh",[sv]],["Attention",[Hx]],["AveragePool",[By,Ly]],["BatchNormalization",[Qx]],["BiasAdd",[Xx]],["BiasSplitGelu",[Av]],["Cast",[nv,ov]],["Ceil",[iv]],["Clip",[av]],["Concat",[Wv,Uv]],["Conv",[Jd,Xd]],["ConvTranspose",[ey,Zv]],["Cos",[lv]],["Cosh",[cv]],["CumSum",[ty,ry]],["DepthToSpace",[sy,oy]],["DequantizeLinear",[Uy,Gy]],["Div",[Dv]],["Einsum",[ny,ay]],["Elu",[dv,ga]],["Equal",[Ov]],["Erf",[uv]],["Exp",[pv]],["Expand",[iy]],["FastGelu",[ly]],["Floor",[_v]],["FusedConv",[Jd,Xd]],["Gather",[dy,cy]],["GatherElements",[hy,fy]],["GatherBlockQuantized",[_y,my]],["GatherND",[uy,py]],["Gelu",[mv]],["Gemm",[wy,gy]],["GlobalAveragePool",[Ry,zy]],["GlobalMaxPool",[Wy,Vy]],["Greater",[Rv]],["GreaterOrEqual",[Nv]],["GridSample",[by,My]],["GroupQueryAttention",[Sy]],["HardSigmoid",[vv,xv]],["InstanceNormalization",[Fy]],["LayerNormalization",[Iy]],["LeakyRelu",[fv,ga]],["Less",[jv]],["LessOrEqual",[Vv]],["Log",[Fv]],["MatMul",[Ay]],["MatMulNBits",[$y,Dy]],["MaxPool",[jy,Ny]],["Mul",[Lv]],["MultiHeadAttention",[vy,xy]],["Neg",[gv]],["Not",[hv]],["Pad",[Oy]],["Pow",[Bv]],["QuickGelu",[Iv,ga]],["Range",[Ky]],["Reciprocal",[wv]],["ReduceMin",[Nx]],["ReduceMean",[Lx]],["ReduceMax",[jx]],["ReduceSum",[Wx]],["ReduceProd",[Vx]],["ReduceL1",[Bx]],["ReduceL2",[zx]],["ReduceLogSum",[Gx]],["ReduceLogSumExp",[Rx]],["ReduceSumSquare",[Ux]],["Relu",[bv]],["Resize",[Qy,Xy]],["RotaryEmbedding",[ky]],["ScatterND",[Hy,qy]],["Sigmoid",[Mv]],["Sin",[yv]],["Sinh",[Tv]],["Slice",[Yy,Zy]],["SkipLayerNormalization",[Jy]],["Split",[Ty,Py]],["Sqrt",[Pv]],["Softmax",[e0,t0]],["Sub",[zv]],["Tan",[Ev]],["Tanh",[kv]],["ThresholdedRelu",[Sv,ga]],["Tile",[r0]],["Transpose",[Tx,Px]],["Where",[s0]]])}),n0,nE=ze(()=>{"use strict";Ps(),qs(),Et(),n0=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){Ts(e.programInfo.name);let n=this.backend.device,a=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=n.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)}a.setPipeline(e.computePipeline),a.setBindGroup(0,l),a.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(),ls(e.programInfo.name)}dispose(){}build(e,r){Ts(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=yx(r,this.backend.device.limits),n=e.getShaderSource(o),a=`${s.join(`
2825
+ }`},AM=e=>{let r=e[1].dims,t=e[2].dims,s=e[0].dims,o=e[1].dataType,n=!(we.areEqual(r,t)&&we.areEqual(t,s)),a=r,i=we.size(r);if(n){let c=bn.calcShape(bn.calcShape(r,t,!1),s,!1);if(!c)throw new Error("Can't perform where op on the given tensors");a=c,i=we.size(a)}let l=Math.ceil(i/4);return{name:"Where",shaderCache:{inputDependencies:["rank","rank","rank"]},getShaderSource:c=>IM(c,e,a,n,o),getRunData:()=>({outputs:[{dims:a,dataType:o}],dispatchGroup:{x:Math.ceil(i/64/4)},programUniforms:[{type:12,data:l},...pt(s,r,t,a)]})}},o0=e=>{e.compute(AM(e.inputs))}}),n0,nE=ze(()=>{"use strict";bP(),gu(),MP(),xP(),vP(),yP(),TP(),SP(),IP(),AP(),$P(),DP(),OP(),LP(),BP(),zP(),RP(),jP(),NP(),VP(),WP(),UP(),GP(),KP(),qP(),Ty(),HP(),QP(),XP(),JP(),YP(),hu(),ZP(),Sy(),eE(),tE(),rE(),ky(),sE(),uo(),wu(),oE(),n0=new Map([["Abs",[Yx]],["Acos",[Zx]],["Acosh",[ev]],["Add",[Dv]],["ArgMax",[Hx,Gd]],["ArgMin",[qx,Gd]],["Asin",[tv]],["Asinh",[rv]],["Atan",[sv]],["Atanh",[ov]],["Attention",[Qx]],["AveragePool",[zy,By]],["BatchNormalization",[Xx]],["BiasAdd",[Jx]],["BiasSplitGelu",[$v]],["Cast",[av,nv]],["Ceil",[lv]],["Clip",[iv]],["Concat",[Uv,Gv]],["Conv",[Jd,Xd]],["ConvTranspose",[ty,ey]],["Cos",[cv]],["Cosh",[dv]],["CumSum",[ry,sy]],["DepthToSpace",[oy,ny]],["DequantizeLinear",[Gy,Ky]],["Div",[Ov]],["Einsum",[ay,iy]],["Elu",[uv,ga]],["Equal",[Lv]],["Erf",[pv]],["Exp",[_v]],["Expand",[ly]],["FastGelu",[cy]],["Floor",[mv]],["FusedConv",[Jd,Xd]],["Gather",[uy,dy]],["GatherElements",[gy,hy]],["GatherBlockQuantized",[my,fy]],["GatherND",[py,_y]],["Gelu",[fv]],["Gemm",[by,wy]],["GlobalAveragePool",[jy,Ry]],["GlobalMaxPool",[Uy,Wy]],["Greater",[jv]],["GreaterOrEqual",[Vv]],["GridSample",[My,xy]],["GroupQueryAttention",[Fy]],["HardSigmoid",[yv,vv]],["InstanceNormalization",[Iy]],["LayerNormalization",[Ay]],["LeakyRelu",[hv,ga]],["Less",[Nv]],["LessOrEqual",[Wv]],["Log",[Iv]],["MatMul",[$y]],["MatMulNBits",[Dy,Oy]],["MaxPool",[Ny,Vy]],["Mul",[Bv]],["MultiHeadAttention",[yy,vy]],["Neg",[wv]],["Not",[gv]],["Pad",[Ly]],["Pow",[zv]],["QuickGelu",[Av,ga]],["Range",[qy]],["Reciprocal",[bv]],["ReduceMin",[Vx]],["ReduceMean",[Bx]],["ReduceMax",[Nx]],["ReduceSum",[Ux]],["ReduceProd",[Wx]],["ReduceL1",[zx]],["ReduceL2",[Rx]],["ReduceLogSum",[Kx]],["ReduceLogSumExp",[jx]],["ReduceSumSquare",[Gx]],["Relu",[Mv]],["Resize",[Xy,Jy]],["RotaryEmbedding",[Cy]],["ScatterND",[Qy,Hy]],["Sigmoid",[xv]],["Sin",[Tv]],["Sinh",[Pv]],["Slice",[Zy,e0]],["SkipLayerNormalization",[Yy]],["Split",[Py,Ey]],["Sqrt",[Ev]],["Softmax",[t0,r0]],["Sub",[Rv]],["Tan",[kv]],["Tanh",[Cv]],["ThresholdedRelu",[Fv,ga]],["Tile",[s0]],["Transpose",[Px,Ex]],["Where",[o0]]])}),a0,aE=ze(()=>{"use strict";Ps(),qs(),Et(),a0=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){Ts(e.programInfo.name);let n=this.backend.device,a=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=n.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)}a.setPipeline(e.computePipeline),a.setBindGroup(0,l),a.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(),ls(e.programInfo.name)}dispose(){}build(e,r){Ts(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=Tx(r,this.backend.device.limits),n=e.getShaderSource(o),a=`${s.join(`
2826
2826
  `)}
2827
2827
  ${o.additionalImplementations}
2828
- ${n}`,i=t.createShaderModule({code:a,label:e.name});$t("verbose",()=>`[WebGPU] ${e.name} shader code: ${a}`);let l=t.createComputePipeline({compute:{module:i,entryPoint:"main"},layout:"auto",label:e.name});return ls(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 n=r*t*s,a=Math.ceil(Math.sqrt(n));if(a>o){if(a=Math.ceil(Math.cbrt(n)),a>o)throw new Error("Total dispatch size exceeds WebGPU maximum.");return[a,a,a]}else return[a,a,1]}}}),a0={};vn(a0,{WebGpuBackend:()=>i0});var AM,$M,DM,i0,aE=ze(()=>{"use strict";Ps(),wt(),qs(),wx(),hP(),oE(),nE(),AM=(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 n=e[s].dims.length;t.push(`${o};${n}`);break}case"dims":{let n=e[s].dims.join(",");t.push(`${o};${n}`);break}default:throw new Error(`unsupported input dependency: ${r[s]}`)}}return t.join("|")},$M=(e,r,t)=>{let s=e.name;return e.shaderCache?.hint&&(s+="["+e.shaderCache.hint+"]"),s+=":"+t+`:${AM(r,e.shaderCache?.inputDependencies??new Array(r.length).fill("dims"))}`,s},DM=class{constructor(e){e&&(this.architecture=e.architecture,this.vendor=e.vendor)}isArchitecture(e){return this.architecture===e}isVendor(e){return this.vendor===e}},i0=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=n=>r.features.has(n)&&t.push(n)&&!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 DM(r.info||await r.requestAdapterInfo()),this.gpuDataManager=xx(this),this.programManager=new n0(this),this.kernels=new Map,this.kernelPersistentData=new Map,this.kernelCustomData=new Map,pu(e.logLevel,!!e.debug),this.device.onuncapturederror=n=>{n.error instanceof GPUValidationError&&console.error(`An uncaught WebGPU validation error was raised: ${n.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;Ts(),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],n=o.kernelId,a=this.kernels.get(n),i=a.kernelType,l=a.kernelName,c=o.programName,p=o.inputTensorViews,u=o.outputTensorViews,d=r[s*2],h=r[s*2+1];typeof this.queryTimeBase>"u"&&(this.queryTimeBase=d);let f=Number(d-this.queryTimeBase),v=Number(h-this.queryTimeBase);if(!Number.isSafeInteger(f)||!Number.isSafeInteger(v))throw new RangeError("incorrect timestamp range");if(this.env.webgpu.profiling?.ondata)this.env.webgpu.profiling.ondata({version:1,inputsMetadata:p.map(F=>({dims:F.dims,dataType:Ks(F.dataType)})),outputsMetadata:u.map(F=>({dims:F.dims,dataType:Ks(F.dataType)})),kernelId:n,kernelType:i,kernelName:l,programName:c,startTime:f,endTime:v});else{let F="";p.forEach((w,C)=>{F+=`input[${C}]: [${w.dims}] | ${Ks(w.dataType)}, `});let x="";u.forEach((w,C)=>{x+=`output[${C}]: [${w.dims}] | ${Ks(w.dataType)}, `}),console.log(`[profiling] kernel "${n}|${i}|${l}|${c}" ${F}${x}execution time: ${v-f} ns`)}xa("GPU",`${c}::${d}::${h}`)}e.unmap(),this.pendingQueries.delete(e)}),ls()}run(e,r,t,s,o,n){Ts(e.name);let a=[];for(let w=0;w<r.length;++w){let C=r[w].data;if(C===0)continue;let y=this.gpuDataManager.get(C);if(!y)throw new Error(`no GPU data for input: ${C}`);a.push(y)}let{outputs:i,dispatchGroup:l,programUniforms:c}=e.getRunData(r),p=t.length===0?i.map((w,C)=>C):t;if(p.length!==i.length)throw new Error(`Output size ${p.length} must be equal to ${i.length}.`);let u=[],d=[];for(let w=0;w<i.length;++w){if(!Number.isInteger(p[w])||p[w]<-3||p[w]>=n)throw new Error(`Invalid output index: ${p[w]}`);if(p[w]===-3)continue;let C=p[w]===-1,y=p[w]===-2,P=C||y?o(i[w].dataType,i[w].dims):s(p[w],i[w].dataType,i[w].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 g=this.kernelPersistentData.get(this.currentKernelId);g||(g=[],this.kernelPersistentData.set(this.currentKernelId,g)),g.push(I)}d.push(I)}if(a.length!==r.length||d.length!==u.length){if(d.length===0)return ls(e.name),u;throw new Error(`Program ${e.name} has zero-sized tensor(s) in inputs or outputs. This is not supported now.`)}let h;if(c){let w=0,C=[];c.forEach(g=>{let E=typeof g.data=="number"?[g.data]:g.data;if(E.length===0)return;let $=g.type===10?2:4,L,G;g.type===10?(G=E.length>4?16:E.length>2?8:E.length*$,L=E.length>4?16:$*E.length):(G=E.length<=2?E.length*$:16,L=16),w=Math.ceil(w/G)*G,C.push(w);let q=g.type===10?8:4;w+=E.length>4?Math.ceil(E.length/q)*L:E.length*$});let y=16;w=Math.ceil(w/y)*y;let P=new ArrayBuffer(w);c.forEach((g,E)=>{let $=C[E],L=typeof g.data=="number"?[g.data]:g.data;if(g.type===6)new Int32Array(P,$,L.length).set(L);else if(g.type===12)new Uint32Array(P,$,L.length).set(L);else if(g.type===10)new Uint16Array(P,$,L.length).set(L);else if(g.type===1)new Float32Array(P,$,L.length).set(L);else throw new Error(`Unsupported uniform type: ${Ks(g.type)}`)});let I=this.gpuDataManager.create(w,GPUBufferUsage.COPY_DST|GPUBufferUsage.UNIFORM);this.device.queue.writeBuffer(I.buffer,0,P,0,w),this.gpuDataManager.release(I.id),h={offset:0,size:w,buffer:I.buffer}}let f=this.programManager.normalizeDispatchGroupSize(l),v=f[1]===1&&f[2]===1,F=$M(e,r,v),x=this.programManager.getArtifact(F);if(x||(x=this.programManager.build(e,f),this.programManager.setArtifact(F,x),$t("info",()=>`[artifact] key: ${F}, programName: ${e.name}`)),c&&x.uniformVariablesInfo){if(c.length!==x.uniformVariablesInfo.length)throw new Error(`Uniform variables count mismatch: expect ${x.uniformVariablesInfo.length}, got ${c.length} in program "${x.programInfo.name}".`);for(let w=0;w<c.length;w++){let C=c[w],y=C.type,P=typeof C.data=="number"?1:C.data.length,[I,g]=x.uniformVariablesInfo[w];if(y!==I||P!==g)throw new Error(`Uniform variable ${w} mismatch: expect type ${I} with size ${g}, got type ${y} with size ${P} in program "${x.programInfo.name}".`)}}if($t("info",()=>`[ProgramManager] run "${e.name}" (key=${F}) with ${f[0]}x${f[1]}x${f[2]}`),this.queryType!=="none"||this.sessionStatus==="capturing"){let w={kernelId:this.currentKernelId,programName:x.programInfo.name,inputTensorViews:r,outputTensorViews:u};this.pendingKernels.push(w),this.sessionStatus==="capturing"&&this.capturedPendingKernels.get(this.currentSessionId).push(w)}return this.programManager.run(x,a,d,f,h),ls(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=o0.get(e);if(!o)throw new Error(`kernel not implemented: ${e}`);let n={kernelType:e,kernelName:s,kernelEntry:o[0],attributes:[o[1],t]};this.kernels.set(r,n)}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,n=s.kernelName,a=s.kernelEntry,i=s.attributes;if(this.currentKernelId!==null)throw new Error(`kernel "[${o}] ${n}" is not allowed to be called recursively`);this.currentKernelId=e,i[0]&&(i[1]=i[0](i[1]),i[0]=void 0),$t("info",()=>`[WebGPU] Start to run kernel "[${o}] ${n}"...`);let l=this.env.debug;this.temporaryData=[];try{return l&&this.device.pushErrorScope("validation"),a(r,i[1]),0}catch(c){return t.push(Promise.resolve(`[WebGPU] Kernel "[${o}] ${n}" failed. ${c}`)),1}finally{l&&t.push(this.device.popErrorScope().then(c=>c?`GPU validation error for kernel "[${o}] ${n}": ${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 n=o.get(r),a=this.gpuDataManager.registerExternalBuffer(t,s,n);return o.set(r,[a,t]),a}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 Vd(this,e,r);return _u(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(){$t("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(){$t("info","captureEnd"),this.flush(),this.sessionStatus="default"}replay(){$t("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(),n=e[s];this.writeTimestamp(this.pendingDispatchNumber*2),o.setPipeline(n.computePipeline),o.setBindGroup(0,n.bindGroup),o.dispatchWorkgroups(...n.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()}}}),l0={};vn(l0,{init:()=>c0});var Hi,OM,c0,iE=ze(()=>{"use strict";wt(),qs(),Tt(),fP(),Hi=class d0{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=we.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=we.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=we.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=we.size(this.dims);return r===0?new Uint16Array:new Uint16Array(this.module.HEAP8.buffer,this.data,r)}reshape(r){if(we.size(r)!==we.size(this.dims))throw new Error("Invalid new shape");return new d0(this.module,this.dataType,this.data,r)}},OM=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,n=s===4?"i32":"i64";this.opKernelContext=Number(e.getValue(s*o++,n));let a=Number(e.getValue(s*o++,n));this.outputCount=Number(e.getValue(s*o++,n)),this.customDataOffset=Number(e.getValue(s*o++,"*")),this.customDataSize=Number(e.getValue(s*o++,n));let i=[];for(let l=0;l<a;l++){let c=Number(e.getValue(s*o++,n)),p=Number(e.getValue(s*o++,"*")),u=Number(e.getValue(s*o++,n)),d=[];for(let h=0;h<u;h++)d.push(Number(e.getValue(s*o++,n)));i.push(new Hi(e,c,p,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(a=>typeof a=="number"?this.inputs[a]:a)??this.inputs,s=r?.outputs??[],o=(a,i,l)=>new Hi(this.module,i,this.output(a,l),l),n=(a,i)=>{let l=Wo(a,i);if(!l)throw new Error(`Unsupported data type: ${a}`);let c=l>0?this.backend.gpuDataManager.create(l).id:0;return new Hi(this.module,a,c,i)};return this.backend.run(e,t,s,o,n,this.outputCount)}output(e,r){let t=this.module.stackSave();try{let s=this.module.PTR_SIZE,o=s===4?"i32":"i64",n=this.module.stackAlloc((1+r.length)*s);this.module.setValue(n,r.length,o);for(let a=0;a<r.length;a++)this.module.setValue(n+s*(a+1),r[a],o);return this.module._JsepOutput(this.opKernelContext,e,n)}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)}}},c0=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 n=(aE(),Ma(a0)).WebGpuBackend,a=new n;await a.initialize(t,s),o("webgpu",[a,i=>a.alloc(Number(i)),i=>a.free(i),(i,l,c,p=!1)=>{if(p)$t("verbose",()=>`[WebGPU] jsepCopyGpuToGpu: src=${Number(i)}, dst=${Number(l)}, size=${Number(c)}`),a.memcpy(Number(i),Number(l));else{$t("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));a.upload(Number(l),u)}},async(i,l,c)=>{$t("verbose",()=>`[WebGPU] jsepCopyGpuToCpu: gpuDataId=${i}, dataOffset=${l}, size=${c}`),await a.download(Number(i),()=>r.HEAPU8.subarray(Number(l)>>>0,Number(l+c)>>>0))},(i,l,c)=>a.createKernel(i,Number(l),c,r.UTF8ToString(r._JsepGetNodeName(Number(l)))),i=>a.releaseKernel(i),(i,l,c,p)=>{$t("verbose",()=>`[WebGPU] jsepRun: sessionHandle=${c}, kernel=${i}, contextDataOffset=${l}`);let u=new OM(r,a,Number(l));return a.computeKernel(Number(i),u,p)},()=>a.captureBegin(),()=>a.captureEnd(),()=>a.replay()])}else{let n=new Mx(t);o("webnn",[n,()=>n.reserveTensorId(),a=>n.releaseTensorId(a),async(a,i,l,c,p)=>n.ensureTensor(a,i,l,c,p),(a,i)=>{n.uploadTensor(a,i)},async(a,i)=>n.downloadTensor(a,i)])}}}),LM,Tu,Pu,io,BM,Od,nl,Eu,ku,Ld,Cu,Su,Fu,u0=ze(()=>{"use strict";pP(),_P(),wt(),Ho(),iu(),mx(),LM=(e,r)=>{Ht()._OrtInit(e,r)!==0&&Wt("Can't initialize onnxruntime.")},Tu=async e=>{LM(e.wasm.numThreads,el(e.logLevel))},Pu=async(e,r)=>{Ht().asyncInit?.();{let t=(iE(),Ma(l0)).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 n=e.webgpu.forceFallbackAdapter;if(n!==void 0&&typeof n!="boolean")throw new Error(`Invalid forceFallbackAdapter setting: "${n}"`);if(s=await navigator.gpu.requestAdapter({powerPreference:o,forceFallbackAdapter:n}),!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",Ht(),e,s)}if(r==="webnn"){if(typeof navigator>"u"||!navigator.ml)throw new Error("WebNN is not supported in current environment");await t("webnn",Ht(),e)}}},io=new Map,BM=e=>{let r=Ht(),t=r.stackSave();try{let s=r.PTR_SIZE,o=r.stackAlloc(2*s);r._OrtGetInputOutputCount(e,o,o+s)!==0&&Wt("Can't get session input/output count.");let n=s===4?"i32":"i64";return[Number(r.getValue(o,n)),Number(r.getValue(o+s,n))]}finally{r.stackRestore(t)}},Od=(e,r)=>{let t=Ht(),s=t.stackSave(),o=0;try{let n=t.PTR_SIZE,a=t.stackAlloc(2*n);t._OrtGetInputOutputMetadata(e,r,a,a+n)!==0&&Wt("Can't get session input/output metadata.");let i=Number(t.getValue(a,"*"));o=Number(t.getValue(a+n,"*"));let l=t.HEAP32[o/4];if(l===0)return[i,0];let c=t.HEAPU32[o/4+1],p=[];for(let u=0;u<c;u++){let d=Number(t.getValue(o+8+u*n,"*"));p.push(d!==0?t.UTF8ToString(d):Number(t.getValue(o+8+(u+c)*n,"*")))}return[i,l,p]}finally{t.stackRestore(s),o!==0&&t._OrtFree(o)}},nl=e=>{let r=Ht(),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]},Eu=async(e,r)=>{let t,s,o=Ht();Array.isArray(e)?[t,s]=e:e.buffer===o.HEAPU8.buffer?[t,s]=[e.byteOffset,e.byteLength]:[t,s]=nl(e);let n=0,a=0,i=0,l=[],c=[],p=[];try{if([a,l]=await _x(r),r?.externalData&&o.mountExternalData){let y=[];for(let P of r.externalData){let I=typeof P=="string"?P:P.path;y.push(uu(typeof P=="string"?P:P.data).then(g=>{o.mountExternalData(I,g)}))}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,g=P?.gpuDevice,E=P?.deviceType,$=P?.powerPreference;I?o.currentContext=I:g?o.currentContext=await o.webnnCreateMLContext(g):o.currentContext=await o.webnnCreateMLContext({deviceType:E,powerPreference:$})}else o.currentContext=await o.webnnCreateMLContext();break}n=await o._OrtCreateSession(t,s,a),o.webgpuOnCreateSession?.(n),n===0&&Wt("Can't create a session."),o.jsepOnCreateSession?.(),o.currentContext&&(o.webnnRegisterMLContext(n,o.currentContext),o.currentContext=void 0,o.shouldTransferToMLTensor=!0);let[u,d]=BM(n),h=!!r?.enableGraphCapture,f=[],v=[],F=[],x=[],w=[];for(let y=0;y<u;y++){let[P,I,g]=Od(n,y);P===0&&Wt("Can't get an input name."),c.push(P);let E=o.UTF8ToString(P);f.push(E),F.push(I===0?{name:E,isTensor:!1}:{name:E,isTensor:!0,type:Ks(I),shape:g})}for(let y=0;y<d;y++){let[P,I,g]=Od(n,y+u);P===0&&Wt("Can't get an output name."),p.push(P);let E=o.UTF8ToString(P);v.push(E),x.push(I===0?{name:E,isTensor:!1}:{name:E,isTensor:!0,type:Ks(I),shape:g});{if(h&&r?.preferredOutputLocation===void 0){w.push("gpu-buffer");continue}let $=typeof r?.preferredOutputLocation=="string"?r.preferredOutputLocation:r?.preferredOutputLocation?.[E]??"cpu";if($!=="cpu"&&$!=="cpu-pinned"&&$!=="gpu-buffer"&&$!=="ml-tensor")throw new Error(`Not supported preferred output location: ${$}.`);if(h&&$!=="gpu-buffer")throw new Error(`Not supported preferred output location: ${$}. Only 'gpu-buffer' location is supported when enableGraphCapture is true.`);w.push($)}}let C=null;return w.some(y=>y==="gpu-buffer"||y==="ml-tensor")&&(i=o._OrtCreateBinding(n),i===0&&Wt("Can't create IO binding."),C={handle:i,outputPreferredLocations:w,outputPreferredLocationsEncoded:w.map(y=>jd(y))}),io.set(n,[n,c,p,C,h,!1]),[n,f,v,F,x]}catch(u){throw c.forEach(d=>o._OrtFree(d)),p.forEach(d=>o._OrtFree(d)),i!==0&&o._OrtReleaseBinding(i)!==0&&Wt("Can't release IO binding."),n!==0&&o._OrtReleaseSession(n)!==0&&Wt("Can't release session."),u}finally{o._free(t),a!==0&&o._OrtReleaseSessionOptions(a)!==0&&Wt("Can't release session options."),l.forEach(u=>o._free(u)),o.unmountExternalData?.()}},ku=e=>{let r=Ht(),t=io.get(e);if(!t)throw new Error(`cannot release session. invalid session id: ${e}`);let[s,o,n,a,i]=t;a&&(i&&r._OrtClearBoundOutputs(a.handle)!==0&&Wt("Can't clear bound outputs."),r._OrtReleaseBinding(a.handle)!==0&&Wt("Can't release IO binding.")),r.jsepOnReleaseSession?.(e),r.webnnOnReleaseSession?.(e),r.webgpuOnReleaseSession?.(e),o.forEach(l=>r._OrtFree(l)),n.forEach(l=>r._OrtFree(l)),r._OrtReleaseSession(s)!==0&&Wt("Can't release session."),io.delete(e)},Ld=async(e,r,t,s,o,n,a=!1)=>{if(!e){r.push(0);return}let i=Ht(),l=i.PTR_SIZE,c=e[0],p=e[1],u=e[3],d=u,h,f;if(c==="string"&&(u==="gpu-buffer"||u==="ml-tensor"))throw new Error("String tensor is not supported on GPU.");if(a&&u!=="gpu-buffer")throw new Error(`External buffer must be provided for input/output index ${n} when enableGraphCapture is true.`);if(u==="gpu-buffer"){let x=e[2].gpuBuffer;f=Wo(wn(c),p);{let w=i.jsepRegisterBuffer;if(!w)throw new Error('Tensor location "gpu-buffer" is not supported without using WebGPU.');h=w(s,n,x,f)}}else if(u==="ml-tensor"){let x=e[2].mlTensor;f=Wo(wn(c),p);let w=i.webnnRegisterMLTensor;if(!w)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');h=w(s,x,wn(c),p)}else{let x=e[2];if(Array.isArray(x)){f=l*x.length,h=i._malloc(f),t.push(h);for(let w=0;w<x.length;w++){if(typeof x[w]!="string")throw new TypeError(`tensor data at index ${w} is not a string`);i.setValue(h+w*l,vs(x[w],t),"*")}}else{let w=i.webnnIsGraphInput;if(c!=="string"&&w){let C=i.UTF8ToString(o);if(w(s,C)){let y=wn(c);f=Wo(y,p),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 g=await P(s,y,p);I(g,new Uint8Array(x.buffer,x.byteOffset,x.byteLength)),h=g}else f=x.byteLength,h=i._malloc(f),t.push(h),i.HEAPU8.set(new Uint8Array(x.buffer,x.byteOffset,f),h)}else f=x.byteLength,h=i._malloc(f),t.push(h),i.HEAPU8.set(new Uint8Array(x.buffer,x.byteOffset,f),h)}}let v=i.stackSave(),F=i.stackAlloc(4*p.length);try{p.forEach((w,C)=>i.setValue(F+C*l,w,l===4?"i32":"i64"));let x=i._OrtCreateTensor(wn(c),h,f,F,p.length,jd(d));x===0&&Wt(`Can't create tensor for input/output. session=${s}, index=${n}.`),r.push(x)}finally{i.stackRestore(v)}},Cu=async(e,r,t,s,o,n)=>{let a=Ht(),i=a.PTR_SIZE,l=io.get(e);if(!l)throw new Error(`cannot run inference. invalid session id: ${e}`);let c=l[0],p=l[1],u=l[2],d=l[3],h=l[4],f=l[5],v=r.length,F=s.length,x=0,w=[],C=[],y=[],P=[],I=a.stackSave(),g=a.stackAlloc(v*i),E=a.stackAlloc(v*i),$=a.stackAlloc(F*i),L=a.stackAlloc(F*i);try{[x,w]=px(n);for(let O=0;O<v;O++)await Ld(t[O],C,P,e,p[r[O]],r[O],h);for(let O=0;O<F;O++)await Ld(o[O],y,P,e,u[s[O]],v+s[O],h);for(let O=0;O<v;O++)a.setValue(g+O*i,C[O],"*"),a.setValue(E+O*i,p[r[O]],"*");for(let O=0;O<F;O++)a.setValue($+O*i,y[O],"*"),a.setValue(L+O*i,u[s[O]],"*");if(d&&!f){let{handle:O,outputPreferredLocations:J,outputPreferredLocationsEncoded:Q}=d;if(p.length!==v)throw new Error(`input count from feeds (${v}) is expected to be always equal to model's input count (${p.length}).`);for(let H=0;H<v;H++){let te=r[H];await a._OrtBindInput(O,p[te],C[H])!==0&&Wt(`Can't bind input[${H}] for session=${e}.`)}for(let H=0;H<F;H++){let te=s[H];o[H]?.[3]?a._OrtBindOutput(O,u[te],y[H],0)!==0&&Wt(`Can't bind pre-allocated output[${H}] for session=${e}.`):a._OrtBindOutput(O,u[te],0,Q[te])!==0&&Wt(`Can't bind output[${H}] to ${J[H]} for session=${e}.`)}io.set(e,[c,p,u,d,h,!0])}a.jsepOnRunStart?.(c),a.webnnOnRunStart?.(c);let G;d?G=await a._OrtRunWithBinding(c,d.handle,F,$,x):G=await a._OrtRun(c,E,g,v,L,F,$,x),G!==0&&Wt("failed to call OrtRun().");let q=[];for(let O=0;O<F;O++){let J=Number(a.getValue($+O*i,"*"));if(J===y[O]){q.push(o[O]);continue}let Q=a.stackSave(),H=a.stackAlloc(4*i),te=!1,re,le=0;try{a._OrtGetTensorData(J,H,H+i,H+2*i,H+3*i)!==0&&Wt(`Can't access output tensor data on index ${O}.`);let be=i===4?"i32":"i64",z=Number(a.getValue(H,be));le=a.getValue(H+i,"*");let D=a.getValue(H+i*2,"*"),K=Number(a.getValue(H+i*3,be)),R=[];for(let Me=0;Me<K;Me++)R.push(Number(a.getValue(D+Me*i,be)));a._OrtFree(D)!==0&&Wt("Can't free memory for tensor dims.");let ne=R.reduce((Me,Ie)=>Me*Ie,1);re=Ks(z);let Ce=d?.outputPreferredLocations[s[O]];if(re==="string"){if(Ce==="gpu-buffer"||Ce==="ml-tensor")throw new Error("String tensor is not supported on GPU.");let Me=[];for(let Ie=0;Ie<ne;Ie++){let Ke=a.getValue(le+Ie*i,"*"),et=a.getValue(le+(Ie+1)*i,"*"),_e=Ie===ne-1?void 0:et-Ke;Me.push(a.UTF8ToString(Ke,_e))}q.push([re,R,Me,"cpu"])}else if(Ce==="gpu-buffer"&&ne>0){let Me=a.jsepGetBuffer;if(!Me)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let Ie=Me(le),Ke=Wo(z,ne);if(Ke===void 0||!cu(re))throw new Error(`Unsupported data type: ${re}`);te=!0,q.push([re,R,{gpuBuffer:Ie,download:a.jsepCreateDownloader(Ie,Ke,re),dispose:()=>{a._OrtReleaseTensor(J)!==0&&Wt("Can't release tensor.")}},"gpu-buffer"])}else if(Ce==="ml-tensor"&&ne>0){let Me=a.webnnEnsureTensor,Ie=a.webnnIsInt64Supported;if(!Me||!Ie)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(Wo(z,ne)===void 0||!du(re))throw new Error(`Unsupported data type: ${re}`);if(re==="int64"&&!Ie(e))throw new Error('preferredLocation "ml-tensor" for int64 output is not supported by current WebNN Context.');let Ke=await Me(e,le,z,R,!1);te=!0,q.push([re,R,{mlTensor:Ke,download:a.webnnCreateMLTensorDownloader(le,re),dispose:()=>{a.webnnReleaseTensorId(le),a._OrtReleaseTensor(J)}},"ml-tensor"])}else{let Me=lu(re),Ie=new Me(ne);new Uint8Array(Ie.buffer,Ie.byteOffset,Ie.byteLength).set(a.HEAPU8.subarray(le,le+Ie.byteLength)),q.push([re,R,Ie,"cpu"])}}finally{a.stackRestore(Q),re==="string"&&le&&a._free(le),te||a._OrtReleaseTensor(J),a.webnnOnRunEnd?.(c)}}return d&&!h&&(a._OrtClearBoundOutputs(d.handle)!==0&&Wt("Can't clear bound outputs."),io.set(e,[c,p,u,d,h,!1])),q}finally{a.stackRestore(I),C.forEach(G=>a._OrtReleaseTensor(G)),y.forEach(G=>a._OrtReleaseTensor(G)),P.forEach(G=>a._free(G)),x!==0&&a._OrtReleaseRunOptions(x),w.forEach(G=>a._free(G))}},Su=e=>{let r=Ht(),t=io.get(e);if(!t)throw new Error("invalid session id");let s=t[0],o=r._OrtEndProfiling(s);o===0&&Wt("Can't get an profile file name."),r._OrtFree(o)},Fu=e=>{let r=[];for(let t of e){let s=t[2];!Array.isArray(s)&&"buffer"in s&&r.push(s.buffer)}return r}}),lo,as,gn,_a,ma,Qi,Bd,Xi,jo,No,zM,p0,_0,m0,f0,h0,g0,w0,b0=ze(()=>{"use strict";Ps(),u0(),Ho(),nu(),lo=()=>!!Xt.wasm.proxy&&typeof document<"u",gn=!1,_a=!1,ma=!1,Xi=new Map,jo=(e,r)=>{let t=Xi.get(e);t?t.push(r):Xi.set(e,[r])},No=()=>{if(gn||!_a||ma||!as)throw new Error("worker not ready")},zM=e=>{switch(e.data.type){case"init-wasm":gn=!1,e.data.err?(ma=!0,Bd[1](e.data.err)):(_a=!0,Bd[0]()),Qi&&(URL.revokeObjectURL(Qi),Qi=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let r=Xi.get(e.data.type);e.data.err?r.shift()[1](e.data.err):r.shift()[0](e.data.out);break}default:}},p0=async()=>{if(!_a){if(gn)throw new Error("multiple calls to 'initWasm()' detected.");if(ma)throw new Error("previous call to 'initWasm()' failed.");if(gn=!0,lo())return new Promise((e,r)=>{as?.terminate(),dx().then(([t,s])=>{try{as=s,as.onerror=n=>r(n),as.onmessage=zM,Bd=[e,r];let o={type:"init-wasm",in:Xt};!o.in.wasm.wasmPaths&&(t||Rd)&&(o.in.wasm.wasmPaths={wasm:new URL("ort-wasm-simd-threaded.jsep.wasm",import.meta.url).href}),as.postMessage(o),Qi=t}catch(o){r(o)}},r)});try{await au(Xt.wasm),await Tu(Xt),_a=!0}catch(e){throw ma=!0,e}finally{gn=!1}}},_0=async e=>{if(lo())return No(),new Promise((r,t)=>{jo("init-ep",[r,t]);let s={type:"init-ep",in:{epName:e,env:Xt}};as.postMessage(s)});await Pu(Xt,e)},m0=async e=>lo()?(No(),new Promise((r,t)=>{jo("copy-from",[r,t]);let s={type:"copy-from",in:{buffer:e}};as.postMessage(s,[e.buffer])})):nl(e),f0=async(e,r)=>{if(lo()){if(r?.preferredOutputLocation)throw new Error('session option "preferredOutputLocation" is not supported for proxy.');return No(),new Promise((t,s)=>{jo("create",[t,s]);let o={type:"create",in:{model:e,options:{...r}}},n=[];e instanceof Uint8Array&&n.push(e.buffer),as.postMessage(o,n)})}else return Eu(e,r)},h0=async e=>{if(lo())return No(),new Promise((r,t)=>{jo("release",[r,t]);let s={type:"release",in:e};as.postMessage(s)});ku(e)},g0=async(e,r,t,s,o,n)=>{if(lo()){if(t.some(a=>a[3]!=="cpu"))throw new Error("input tensor on GPU is not supported for proxy.");if(o.some(a=>a))throw new Error("pre-allocated output tensor is not supported for proxy.");return No(),new Promise((a,i)=>{jo("run",[a,i]);let l=t,c={type:"run",in:{sessionId:e,inputIndices:r,inputs:l,outputIndices:s,options:n}};as.postMessage(c,Fu(l))})}else return Cu(e,r,t,s,o,n)},w0=async e=>{if(lo())return No(),new Promise((r,t)=>{jo("end-profiling",[r,t]);let s={type:"end-profiling",in:e};as.postMessage(s)});Su(e)}}),zd,RM,M0,lE=ze(()=>{"use strict";Ps(),b0(),wt(),ou(),mx(),zd=(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()}`)}},RM=e=>{switch(e[3]){case"cpu":return new ys(e[0],e[2],e[1]);case"gpu-buffer":{let r=e[0];if(!cu(r))throw new Error(`not supported data type: ${r} for deserializing GPU tensor`);let{gpuBuffer:t,download:s,dispose:o}=e[2];return ys.fromGpuBuffer(t,{dataType:r,dims:e[1],download:s,dispose:o})}case"ml-tensor":{let r=e[0];if(!du(r))throw new Error(`not supported data type: ${r} for deserializing MLTensor tensor`);let{mlTensor:t,download:s,dispose:o}=e[2];return ys.fromMLTensor(t,{dataType:r,dims:e[1],download:s,dispose:o})}default:throw new Error(`invalid data location: ${e[3]}`)}},M0=class{async fetchModelAndCopyToWasmMemory(e){return m0(await uu(e))}async loadModel(e,r){Ts();let t;typeof e=="string"?t=await this.fetchModelAndCopyToWasmMemory(e):t=e,[this.sessionId,this.inputNames,this.outputNames,this.inputMetadata,this.outputMetadata]=await f0(t,r),ls()}async dispose(){return h0(this.sessionId)}async run(e,r,t){Ts();let s=[],o=[];Object.entries(e).forEach(u=>{let d=u[0],h=u[1],f=this.inputNames.indexOf(d);if(f===-1)throw new Error(`invalid input '${d}'`);s.push(h),o.push(f)});let n=[],a=[];Object.entries(r).forEach(u=>{let d=u[0],h=u[1],f=this.outputNames.indexOf(d);if(f===-1)throw new Error(`invalid output '${d}'`);n.push(h),a.push(f)});let i=s.map((u,d)=>zd(u,()=>`input "${this.inputNames[o[d]]}"`)),l=n.map((u,d)=>u?zd(u,()=>`output "${this.outputNames[a[d]]}"`):null),c=await g0(this.sessionId,o,i,a,l,t),p={};for(let u=0;u<c.length;u++)p[this.outputNames[a[u]]]=n[u]??RM(c[u]);return ls(),p}startProfiling(){}endProfiling(){w0(this.sessionId)}}}),x0={};vn(x0,{OnnxruntimeWebAssemblyBackend:()=>eu,initializeFlags:()=>Zd,wasmBackend:()=>v0});var Zd,eu,v0,cE=ze(()=>{"use strict";Ps(),b0(),lE(),Zd=()=>{(typeof Xt.wasm.initTimeout!="number"||Xt.wasm.initTimeout<0)&&(Xt.wasm.initTimeout=0);let e=Xt.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.`),Xt.wasm.simd=!1),typeof Xt.wasm.proxy!="boolean"&&(Xt.wasm.proxy=!1),typeof Xt.wasm.trace!="boolean"&&(Xt.wasm.trace=!1),typeof Xt.wasm.numThreads!="number"||!Number.isInteger(Xt.wasm.numThreads)||Xt.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)Xt.wasm.numThreads=1;else{let r=typeof navigator>"u"?QT("node:os").cpus().length:navigator.hardwareConcurrency;Xt.wasm.numThreads=Math.min(4,Math.ceil((r||1)/2))}},eu=class{async init(e){Zd(),await p0(),await _0(e)}async createInferenceSessionHandler(e,r){let t=new M0;return await t.loadModel(e,r),t}},v0=new eu});Ps();Ps();Ps();var dE="1.22.0-dev.20250409-89f8206ba4",uE=ox;{let e=(cE(),Ma(x0)).wasmBackend;Uo("webgpu",e,5),Uo("webnn",e,5),Uo("cpu",e,10),Uo("wasm",e,10)}Object.defineProperty(Xt.versions,"web",{value:dE,enumerable:!0});var pE={"onnxruntime-common":e=>{e.exports=Rc},"onnxruntime-web":e=>{e.exports=Iu},"?2ce3":()=>{},"?7992":()=>{},"?5af5":()=>{},"?2b25":()=>{},"?db59":()=>{},"?383f":()=>{},"?fa4b":()=>{},"./node_modules/@huggingface/jinja/dist/index.js":(e,r,t)=>{t.r(r),t.d(r,{Environment:()=>ot,Interpreter:()=>rt,Template:()=>Cs,parse:()=>Ce,tokenize:()=>p});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,X){this.value=k,this.type=X}};function n(k){return/\w/.test(k)}function a(k){return/[0-9]/.test(k)}var i=[["{%",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]],l=new Map([["n",`
2828
+ ${n}`,i=t.createShaderModule({code:a,label:e.name});$t("verbose",()=>`[WebGPU] ${e.name} shader code: ${a}`);let l=t.createComputePipeline({compute:{module:i,entryPoint:"main"},layout:"auto",label:e.name});return ls(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 n=r*t*s,a=Math.ceil(Math.sqrt(n));if(a>o){if(a=Math.ceil(Math.cbrt(n)),a>o)throw new Error("Total dispatch size exceeds WebGPU maximum.");return[a,a,a]}else return[a,a,1]}}}),i0={};xn(i0,{WebGpuBackend:()=>l0});var $M,DM,OM,l0,iE=ze(()=>{"use strict";Ps(),wt(),qs(),bx(),gP(),nE(),aE(),$M=(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 n=e[s].dims.length;t.push(`${o};${n}`);break}case"dims":{let n=e[s].dims.join(",");t.push(`${o};${n}`);break}default:throw new Error(`unsupported input dependency: ${r[s]}`)}}return t.join("|")},DM=(e,r,t)=>{let s=e.name;return e.shaderCache?.hint&&(s+="["+e.shaderCache.hint+"]"),s+=":"+t+`:${$M(r,e.shaderCache?.inputDependencies??new Array(r.length).fill("dims"))}`,s},OM=class{constructor(e){e&&(this.architecture=e.architecture,this.vendor=e.vendor)}isArchitecture(e){return this.architecture===e}isVendor(e){return this.vendor===e}},l0=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=n=>r.features.has(n)&&t.push(n)&&!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 OM(r.info||await r.requestAdapterInfo()),this.gpuDataManager=vx(this),this.programManager=new a0(this),this.kernels=new Map,this.kernelPersistentData=new Map,this.kernelCustomData=new Map,pu(e.logLevel,!!e.debug),this.device.onuncapturederror=n=>{n.error instanceof GPUValidationError&&console.error(`An uncaught WebGPU validation error was raised: ${n.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;Ts(),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],n=o.kernelId,a=this.kernels.get(n),i=a.kernelType,l=a.kernelName,c=o.programName,p=o.inputTensorViews,u=o.outputTensorViews,d=r[s*2],h=r[s*2+1];typeof this.queryTimeBase>"u"&&(this.queryTimeBase=d);let f=Number(d-this.queryTimeBase),v=Number(h-this.queryTimeBase);if(!Number.isSafeInteger(f)||!Number.isSafeInteger(v))throw new RangeError("incorrect timestamp range");if(this.env.webgpu.profiling?.ondata)this.env.webgpu.profiling.ondata({version:1,inputsMetadata:p.map(F=>({dims:F.dims,dataType:Ks(F.dataType)})),outputsMetadata:u.map(F=>({dims:F.dims,dataType:Ks(F.dataType)})),kernelId:n,kernelType:i,kernelName:l,programName:c,startTime:f,endTime:v});else{let F="";p.forEach((w,C)=>{F+=`input[${C}]: [${w.dims}] | ${Ks(w.dataType)}, `});let x="";u.forEach((w,C)=>{x+=`output[${C}]: [${w.dims}] | ${Ks(w.dataType)}, `}),console.log(`[profiling] kernel "${n}|${i}|${l}|${c}" ${F}${x}execution time: ${v-f} ns`)}xa("GPU",`${c}::${d}::${h}`)}e.unmap(),this.pendingQueries.delete(e)}),ls()}run(e,r,t,s,o,n){Ts(e.name);let a=[];for(let w=0;w<r.length;++w){let C=r[w].data;if(C===0)continue;let y=this.gpuDataManager.get(C);if(!y)throw new Error(`no GPU data for input: ${C}`);a.push(y)}let{outputs:i,dispatchGroup:l,programUniforms:c}=e.getRunData(r),p=t.length===0?i.map((w,C)=>C):t;if(p.length!==i.length)throw new Error(`Output size ${p.length} must be equal to ${i.length}.`);let u=[],d=[];for(let w=0;w<i.length;++w){if(!Number.isInteger(p[w])||p[w]<-3||p[w]>=n)throw new Error(`Invalid output index: ${p[w]}`);if(p[w]===-3)continue;let C=p[w]===-1,y=p[w]===-2,P=C||y?o(i[w].dataType,i[w].dims):s(p[w],i[w].dataType,i[w].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 g=this.kernelPersistentData.get(this.currentKernelId);g||(g=[],this.kernelPersistentData.set(this.currentKernelId,g)),g.push(I)}d.push(I)}if(a.length!==r.length||d.length!==u.length){if(d.length===0)return ls(e.name),u;throw new Error(`Program ${e.name} has zero-sized tensor(s) in inputs or outputs. This is not supported now.`)}let h;if(c){let w=0,C=[];c.forEach(g=>{let E=typeof g.data=="number"?[g.data]:g.data;if(E.length===0)return;let $=g.type===10?2:4,L,G;g.type===10?(G=E.length>4?16:E.length>2?8:E.length*$,L=E.length>4?16:$*E.length):(G=E.length<=2?E.length*$:16,L=16),w=Math.ceil(w/G)*G,C.push(w);let q=g.type===10?8:4;w+=E.length>4?Math.ceil(E.length/q)*L:E.length*$});let y=16;w=Math.ceil(w/y)*y;let P=new ArrayBuffer(w);c.forEach((g,E)=>{let $=C[E],L=typeof g.data=="number"?[g.data]:g.data;if(g.type===6)new Int32Array(P,$,L.length).set(L);else if(g.type===12)new Uint32Array(P,$,L.length).set(L);else if(g.type===10)new Uint16Array(P,$,L.length).set(L);else if(g.type===1)new Float32Array(P,$,L.length).set(L);else throw new Error(`Unsupported uniform type: ${Ks(g.type)}`)});let I=this.gpuDataManager.create(w,GPUBufferUsage.COPY_DST|GPUBufferUsage.UNIFORM);this.device.queue.writeBuffer(I.buffer,0,P,0,w),this.gpuDataManager.release(I.id),h={offset:0,size:w,buffer:I.buffer}}let f=this.programManager.normalizeDispatchGroupSize(l),v=f[1]===1&&f[2]===1,F=DM(e,r,v),x=this.programManager.getArtifact(F);if(x||(x=this.programManager.build(e,f),this.programManager.setArtifact(F,x),$t("info",()=>`[artifact] key: ${F}, programName: ${e.name}`)),c&&x.uniformVariablesInfo){if(c.length!==x.uniformVariablesInfo.length)throw new Error(`Uniform variables count mismatch: expect ${x.uniformVariablesInfo.length}, got ${c.length} in program "${x.programInfo.name}".`);for(let w=0;w<c.length;w++){let C=c[w],y=C.type,P=typeof C.data=="number"?1:C.data.length,[I,g]=x.uniformVariablesInfo[w];if(y!==I||P!==g)throw new Error(`Uniform variable ${w} mismatch: expect type ${I} with size ${g}, got type ${y} with size ${P} in program "${x.programInfo.name}".`)}}if($t("info",()=>`[ProgramManager] run "${e.name}" (key=${F}) with ${f[0]}x${f[1]}x${f[2]}`),this.queryType!=="none"||this.sessionStatus==="capturing"){let w={kernelId:this.currentKernelId,programName:x.programInfo.name,inputTensorViews:r,outputTensorViews:u};this.pendingKernels.push(w),this.sessionStatus==="capturing"&&this.capturedPendingKernels.get(this.currentSessionId).push(w)}return this.programManager.run(x,a,d,f,h),ls(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=n0.get(e);if(!o)throw new Error(`kernel not implemented: ${e}`);let n={kernelType:e,kernelName:s,kernelEntry:o[0],attributes:[o[1],t]};this.kernels.set(r,n)}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,n=s.kernelName,a=s.kernelEntry,i=s.attributes;if(this.currentKernelId!==null)throw new Error(`kernel "[${o}] ${n}" is not allowed to be called recursively`);this.currentKernelId=e,i[0]&&(i[1]=i[0](i[1]),i[0]=void 0),$t("info",()=>`[WebGPU] Start to run kernel "[${o}] ${n}"...`);let l=this.env.debug;this.temporaryData=[];try{return l&&this.device.pushErrorScope("validation"),a(r,i[1]),0}catch(c){return t.push(Promise.resolve(`[WebGPU] Kernel "[${o}] ${n}" failed. ${c}`)),1}finally{l&&t.push(this.device.popErrorScope().then(c=>c?`GPU validation error for kernel "[${o}] ${n}": ${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 n=o.get(r),a=this.gpuDataManager.registerExternalBuffer(t,s,n);return o.set(r,[a,t]),a}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 Vd(this,e,r);return _u(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(){$t("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(){$t("info","captureEnd"),this.flush(),this.sessionStatus="default"}replay(){$t("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(),n=e[s];this.writeTimestamp(this.pendingDispatchNumber*2),o.setPipeline(n.computePipeline),o.setBindGroup(0,n.bindGroup),o.dispatchWorkgroups(...n.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()}}}),c0={};xn(c0,{init:()=>d0});var Hi,LM,d0,lE=ze(()=>{"use strict";wt(),qs(),Tt(),hP(),Hi=class u0{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=we.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=we.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=we.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=we.size(this.dims);return r===0?new Uint16Array:new Uint16Array(this.module.HEAP8.buffer,this.data,r)}reshape(r){if(we.size(r)!==we.size(this.dims))throw new Error("Invalid new shape");return new u0(this.module,this.dataType,this.data,r)}},LM=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,n=s===4?"i32":"i64";this.opKernelContext=Number(e.getValue(s*o++,n));let a=Number(e.getValue(s*o++,n));this.outputCount=Number(e.getValue(s*o++,n)),this.customDataOffset=Number(e.getValue(s*o++,"*")),this.customDataSize=Number(e.getValue(s*o++,n));let i=[];for(let l=0;l<a;l++){let c=Number(e.getValue(s*o++,n)),p=Number(e.getValue(s*o++,"*")),u=Number(e.getValue(s*o++,n)),d=[];for(let h=0;h<u;h++)d.push(Number(e.getValue(s*o++,n)));i.push(new Hi(e,c,p,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(a=>typeof a=="number"?this.inputs[a]:a)??this.inputs,s=r?.outputs??[],o=(a,i,l)=>new Hi(this.module,i,this.output(a,l),l),n=(a,i)=>{let l=Vo(a,i);if(!l)throw new Error(`Unsupported data type: ${a}`);let c=l>0?this.backend.gpuDataManager.create(l).id:0;return new Hi(this.module,a,c,i)};return this.backend.run(e,t,s,o,n,this.outputCount)}output(e,r){let t=this.module.stackSave();try{let s=this.module.PTR_SIZE,o=s===4?"i32":"i64",n=this.module.stackAlloc((1+r.length)*s);this.module.setValue(n,r.length,o);for(let a=0;a<r.length;a++)this.module.setValue(n+s*(a+1),r[a],o);return this.module._JsepOutput(this.opKernelContext,e,n)}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)}}},d0=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 n=(iE(),Ma(i0)).WebGpuBackend,a=new n;await a.initialize(t,s),o("webgpu",[a,i=>a.alloc(Number(i)),i=>a.free(i),(i,l,c,p=!1)=>{if(p)$t("verbose",()=>`[WebGPU] jsepCopyGpuToGpu: src=${Number(i)}, dst=${Number(l)}, size=${Number(c)}`),a.memcpy(Number(i),Number(l));else{$t("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));a.upload(Number(l),u)}},async(i,l,c)=>{$t("verbose",()=>`[WebGPU] jsepCopyGpuToCpu: gpuDataId=${i}, dataOffset=${l}, size=${c}`),await a.download(Number(i),()=>r.HEAPU8.subarray(Number(l)>>>0,Number(l+c)>>>0))},(i,l,c)=>a.createKernel(i,Number(l),c,r.UTF8ToString(r._JsepGetNodeName(Number(l)))),i=>a.releaseKernel(i),(i,l,c,p)=>{$t("verbose",()=>`[WebGPU] jsepRun: sessionHandle=${c}, kernel=${i}, contextDataOffset=${l}`);let u=new LM(r,a,Number(l));return a.computeKernel(Number(i),u,p)},()=>a.captureBegin(),()=>a.captureEnd(),()=>a.replay()])}else{let n=new xx(t);o("webnn",[n,()=>n.reserveTensorId(),a=>n.releaseTensorId(a),async(a,i,l,c,p)=>n.ensureTensor(a,i,l,c,p),(a,i)=>{n.uploadTensor(a,i)},async(a,i)=>n.downloadTensor(a,i)])}}}),BM,Tu,Pu,io,zM,Od,nl,Eu,ku,Ld,Cu,Su,Fu,p0=ze(()=>{"use strict";_P(),mP(),wt(),qo(),iu(),fx(),BM=(e,r)=>{Ht()._OrtInit(e,r)!==0&&Wt("Can't initialize onnxruntime.")},Tu=async e=>{BM(e.wasm.numThreads,el(e.logLevel))},Pu=async(e,r)=>{Ht().asyncInit?.();{let t=(lE(),Ma(c0)).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 n=e.webgpu.forceFallbackAdapter;if(n!==void 0&&typeof n!="boolean")throw new Error(`Invalid forceFallbackAdapter setting: "${n}"`);if(s=await navigator.gpu.requestAdapter({powerPreference:o,forceFallbackAdapter:n}),!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",Ht(),e,s)}if(r==="webnn"){if(typeof navigator>"u"||!navigator.ml)throw new Error("WebNN is not supported in current environment");await t("webnn",Ht(),e)}}},io=new Map,zM=e=>{let r=Ht(),t=r.stackSave();try{let s=r.PTR_SIZE,o=r.stackAlloc(2*s);r._OrtGetInputOutputCount(e,o,o+s)!==0&&Wt("Can't get session input/output count.");let n=s===4?"i32":"i64";return[Number(r.getValue(o,n)),Number(r.getValue(o+s,n))]}finally{r.stackRestore(t)}},Od=(e,r)=>{let t=Ht(),s=t.stackSave(),o=0;try{let n=t.PTR_SIZE,a=t.stackAlloc(2*n);t._OrtGetInputOutputMetadata(e,r,a,a+n)!==0&&Wt("Can't get session input/output metadata.");let i=Number(t.getValue(a,"*"));o=Number(t.getValue(a+n,"*"));let l=t.HEAP32[o/4];if(l===0)return[i,0];let c=t.HEAPU32[o/4+1],p=[];for(let u=0;u<c;u++){let d=Number(t.getValue(o+8+u*n,"*"));p.push(d!==0?t.UTF8ToString(d):Number(t.getValue(o+8+(u+c)*n,"*")))}return[i,l,p]}finally{t.stackRestore(s),o!==0&&t._OrtFree(o)}},nl=e=>{let r=Ht(),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]},Eu=async(e,r)=>{let t,s,o=Ht();Array.isArray(e)?[t,s]=e:e.buffer===o.HEAPU8.buffer?[t,s]=[e.byteOffset,e.byteLength]:[t,s]=nl(e);let n=0,a=0,i=0,l=[],c=[],p=[];try{if([a,l]=await mx(r),r?.externalData&&o.mountExternalData){let y=[];for(let P of r.externalData){let I=typeof P=="string"?P:P.path;y.push(uu(typeof P=="string"?P:P.data).then(g=>{o.mountExternalData(I,g)}))}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,g=P?.gpuDevice,E=P?.deviceType,$=P?.powerPreference;I?o.currentContext=I:g?o.currentContext=await o.webnnCreateMLContext(g):o.currentContext=await o.webnnCreateMLContext({deviceType:E,powerPreference:$})}else o.currentContext=await o.webnnCreateMLContext();break}n=await o._OrtCreateSession(t,s,a),o.webgpuOnCreateSession?.(n),n===0&&Wt("Can't create a session."),o.jsepOnCreateSession?.(),o.currentContext&&(o.webnnRegisterMLContext(n,o.currentContext),o.currentContext=void 0,o.shouldTransferToMLTensor=!0);let[u,d]=zM(n),h=!!r?.enableGraphCapture,f=[],v=[],F=[],x=[],w=[];for(let y=0;y<u;y++){let[P,I,g]=Od(n,y);P===0&&Wt("Can't get an input name."),c.push(P);let E=o.UTF8ToString(P);f.push(E),F.push(I===0?{name:E,isTensor:!1}:{name:E,isTensor:!0,type:Ks(I),shape:g})}for(let y=0;y<d;y++){let[P,I,g]=Od(n,y+u);P===0&&Wt("Can't get an output name."),p.push(P);let E=o.UTF8ToString(P);v.push(E),x.push(I===0?{name:E,isTensor:!1}:{name:E,isTensor:!0,type:Ks(I),shape:g});{if(h&&r?.preferredOutputLocation===void 0){w.push("gpu-buffer");continue}let $=typeof r?.preferredOutputLocation=="string"?r.preferredOutputLocation:r?.preferredOutputLocation?.[E]??"cpu";if($!=="cpu"&&$!=="cpu-pinned"&&$!=="gpu-buffer"&&$!=="ml-tensor")throw new Error(`Not supported preferred output location: ${$}.`);if(h&&$!=="gpu-buffer")throw new Error(`Not supported preferred output location: ${$}. Only 'gpu-buffer' location is supported when enableGraphCapture is true.`);w.push($)}}let C=null;return w.some(y=>y==="gpu-buffer"||y==="ml-tensor")&&(i=o._OrtCreateBinding(n),i===0&&Wt("Can't create IO binding."),C={handle:i,outputPreferredLocations:w,outputPreferredLocationsEncoded:w.map(y=>jd(y))}),io.set(n,[n,c,p,C,h,!1]),[n,f,v,F,x]}catch(u){throw c.forEach(d=>o._OrtFree(d)),p.forEach(d=>o._OrtFree(d)),i!==0&&o._OrtReleaseBinding(i)!==0&&Wt("Can't release IO binding."),n!==0&&o._OrtReleaseSession(n)!==0&&Wt("Can't release session."),u}finally{o._free(t),a!==0&&o._OrtReleaseSessionOptions(a)!==0&&Wt("Can't release session options."),l.forEach(u=>o._free(u)),o.unmountExternalData?.()}},ku=e=>{let r=Ht(),t=io.get(e);if(!t)throw new Error(`cannot release session. invalid session id: ${e}`);let[s,o,n,a,i]=t;a&&(i&&r._OrtClearBoundOutputs(a.handle)!==0&&Wt("Can't clear bound outputs."),r._OrtReleaseBinding(a.handle)!==0&&Wt("Can't release IO binding.")),r.jsepOnReleaseSession?.(e),r.webnnOnReleaseSession?.(e),r.webgpuOnReleaseSession?.(e),o.forEach(l=>r._OrtFree(l)),n.forEach(l=>r._OrtFree(l)),r._OrtReleaseSession(s)!==0&&Wt("Can't release session."),io.delete(e)},Ld=async(e,r,t,s,o,n,a=!1)=>{if(!e){r.push(0);return}let i=Ht(),l=i.PTR_SIZE,c=e[0],p=e[1],u=e[3],d=u,h,f;if(c==="string"&&(u==="gpu-buffer"||u==="ml-tensor"))throw new Error("String tensor is not supported on GPU.");if(a&&u!=="gpu-buffer")throw new Error(`External buffer must be provided for input/output index ${n} when enableGraphCapture is true.`);if(u==="gpu-buffer"){let x=e[2].gpuBuffer;f=Vo(gn(c),p);{let w=i.jsepRegisterBuffer;if(!w)throw new Error('Tensor location "gpu-buffer" is not supported without using WebGPU.');h=w(s,n,x,f)}}else if(u==="ml-tensor"){let x=e[2].mlTensor;f=Vo(gn(c),p);let w=i.webnnRegisterMLTensor;if(!w)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');h=w(s,x,gn(c),p)}else{let x=e[2];if(Array.isArray(x)){f=l*x.length,h=i._malloc(f),t.push(h);for(let w=0;w<x.length;w++){if(typeof x[w]!="string")throw new TypeError(`tensor data at index ${w} is not a string`);i.setValue(h+w*l,vs(x[w],t),"*")}}else{let w=i.webnnIsGraphInput;if(c!=="string"&&w){let C=i.UTF8ToString(o);if(w(s,C)){let y=gn(c);f=Vo(y,p),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 g=await P(s,y,p);I(g,new Uint8Array(x.buffer,x.byteOffset,x.byteLength)),h=g}else f=x.byteLength,h=i._malloc(f),t.push(h),i.HEAPU8.set(new Uint8Array(x.buffer,x.byteOffset,f),h)}else f=x.byteLength,h=i._malloc(f),t.push(h),i.HEAPU8.set(new Uint8Array(x.buffer,x.byteOffset,f),h)}}let v=i.stackSave(),F=i.stackAlloc(4*p.length);try{p.forEach((w,C)=>i.setValue(F+C*l,w,l===4?"i32":"i64"));let x=i._OrtCreateTensor(gn(c),h,f,F,p.length,jd(d));x===0&&Wt(`Can't create tensor for input/output. session=${s}, index=${n}.`),r.push(x)}finally{i.stackRestore(v)}},Cu=async(e,r,t,s,o,n)=>{let a=Ht(),i=a.PTR_SIZE,l=io.get(e);if(!l)throw new Error(`cannot run inference. invalid session id: ${e}`);let c=l[0],p=l[1],u=l[2],d=l[3],h=l[4],f=l[5],v=r.length,F=s.length,x=0,w=[],C=[],y=[],P=[],I=a.stackSave(),g=a.stackAlloc(v*i),E=a.stackAlloc(v*i),$=a.stackAlloc(F*i),L=a.stackAlloc(F*i);try{[x,w]=_x(n);for(let O=0;O<v;O++)await Ld(t[O],C,P,e,p[r[O]],r[O],h);for(let O=0;O<F;O++)await Ld(o[O],y,P,e,u[s[O]],v+s[O],h);for(let O=0;O<v;O++)a.setValue(g+O*i,C[O],"*"),a.setValue(E+O*i,p[r[O]],"*");for(let O=0;O<F;O++)a.setValue($+O*i,y[O],"*"),a.setValue(L+O*i,u[s[O]],"*");if(d&&!f){let{handle:O,outputPreferredLocations:J,outputPreferredLocationsEncoded:Q}=d;if(p.length!==v)throw new Error(`input count from feeds (${v}) is expected to be always equal to model's input count (${p.length}).`);for(let H=0;H<v;H++){let te=r[H];await a._OrtBindInput(O,p[te],C[H])!==0&&Wt(`Can't bind input[${H}] for session=${e}.`)}for(let H=0;H<F;H++){let te=s[H];o[H]?.[3]?a._OrtBindOutput(O,u[te],y[H],0)!==0&&Wt(`Can't bind pre-allocated output[${H}] for session=${e}.`):a._OrtBindOutput(O,u[te],0,Q[te])!==0&&Wt(`Can't bind output[${H}] to ${J[H]} for session=${e}.`)}io.set(e,[c,p,u,d,h,!0])}a.jsepOnRunStart?.(c),a.webnnOnRunStart?.(c);let G;d?G=await a._OrtRunWithBinding(c,d.handle,F,$,x):G=await a._OrtRun(c,E,g,v,L,F,$,x),G!==0&&Wt("failed to call OrtRun().");let q=[];for(let O=0;O<F;O++){let J=Number(a.getValue($+O*i,"*"));if(J===y[O]){q.push(o[O]);continue}let Q=a.stackSave(),H=a.stackAlloc(4*i),te=!1,re,le=0;try{a._OrtGetTensorData(J,H,H+i,H+2*i,H+3*i)!==0&&Wt(`Can't access output tensor data on index ${O}.`);let be=i===4?"i32":"i64",z=Number(a.getValue(H,be));le=a.getValue(H+i,"*");let D=a.getValue(H+i*2,"*"),K=Number(a.getValue(H+i*3,be)),R=[];for(let Me=0;Me<K;Me++)R.push(Number(a.getValue(D+Me*i,be)));a._OrtFree(D)!==0&&Wt("Can't free memory for tensor dims.");let ne=R.reduce((Me,Ie)=>Me*Ie,1);re=Ks(z);let Ce=d?.outputPreferredLocations[s[O]];if(re==="string"){if(Ce==="gpu-buffer"||Ce==="ml-tensor")throw new Error("String tensor is not supported on GPU.");let Me=[];for(let Ie=0;Ie<ne;Ie++){let Ke=a.getValue(le+Ie*i,"*"),et=a.getValue(le+(Ie+1)*i,"*"),_e=Ie===ne-1?void 0:et-Ke;Me.push(a.UTF8ToString(Ke,_e))}q.push([re,R,Me,"cpu"])}else if(Ce==="gpu-buffer"&&ne>0){let Me=a.jsepGetBuffer;if(!Me)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let Ie=Me(le),Ke=Vo(z,ne);if(Ke===void 0||!cu(re))throw new Error(`Unsupported data type: ${re}`);te=!0,q.push([re,R,{gpuBuffer:Ie,download:a.jsepCreateDownloader(Ie,Ke,re),dispose:()=>{a._OrtReleaseTensor(J)!==0&&Wt("Can't release tensor.")}},"gpu-buffer"])}else if(Ce==="ml-tensor"&&ne>0){let Me=a.webnnEnsureTensor,Ie=a.webnnIsInt64Supported;if(!Me||!Ie)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(Vo(z,ne)===void 0||!du(re))throw new Error(`Unsupported data type: ${re}`);if(re==="int64"&&!Ie(e))throw new Error('preferredLocation "ml-tensor" for int64 output is not supported by current WebNN Context.');let Ke=await Me(e,le,z,R,!1);te=!0,q.push([re,R,{mlTensor:Ke,download:a.webnnCreateMLTensorDownloader(le,re),dispose:()=>{a.webnnReleaseTensorId(le),a._OrtReleaseTensor(J)}},"ml-tensor"])}else{let Me=lu(re),Ie=new Me(ne);new Uint8Array(Ie.buffer,Ie.byteOffset,Ie.byteLength).set(a.HEAPU8.subarray(le,le+Ie.byteLength)),q.push([re,R,Ie,"cpu"])}}finally{a.stackRestore(Q),re==="string"&&le&&a._free(le),te||a._OrtReleaseTensor(J),a.webnnOnRunEnd?.(c)}}return d&&!h&&(a._OrtClearBoundOutputs(d.handle)!==0&&Wt("Can't clear bound outputs."),io.set(e,[c,p,u,d,h,!1])),q}finally{a.stackRestore(I),C.forEach(G=>a._OrtReleaseTensor(G)),y.forEach(G=>a._OrtReleaseTensor(G)),P.forEach(G=>a._free(G)),x!==0&&a._OrtReleaseRunOptions(x),w.forEach(G=>a._free(G))}},Su=e=>{let r=Ht(),t=io.get(e);if(!t)throw new Error("invalid session id");let s=t[0],o=r._OrtEndProfiling(s);o===0&&Wt("Can't get an profile file name."),r._OrtFree(o)},Fu=e=>{let r=[];for(let t of e){let s=t[2];!Array.isArray(s)&&"buffer"in s&&r.push(s.buffer)}return r}}),lo,as,hn,_a,ma,Qi,Bd,Xi,Ro,jo,RM,_0,m0,f0,h0,g0,w0,b0,M0=ze(()=>{"use strict";Ps(),p0(),qo(),nu(),lo=()=>!!Xt.wasm.proxy&&typeof document<"u",hn=!1,_a=!1,ma=!1,Xi=new Map,Ro=(e,r)=>{let t=Xi.get(e);t?t.push(r):Xi.set(e,[r])},jo=()=>{if(hn||!_a||ma||!as)throw new Error("worker not ready")},RM=e=>{switch(e.data.type){case"init-wasm":hn=!1,e.data.err?(ma=!0,Bd[1](e.data.err)):(_a=!0,Bd[0]()),Qi&&(URL.revokeObjectURL(Qi),Qi=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let r=Xi.get(e.data.type);e.data.err?r.shift()[1](e.data.err):r.shift()[0](e.data.out);break}default:}},_0=async()=>{if(!_a){if(hn)throw new Error("multiple calls to 'initWasm()' detected.");if(ma)throw new Error("previous call to 'initWasm()' failed.");if(hn=!0,lo())return new Promise((e,r)=>{as?.terminate(),ux().then(([t,s])=>{try{as=s,as.onerror=n=>r(n),as.onmessage=RM,Bd=[e,r];let o={type:"init-wasm",in:Xt};!o.in.wasm.wasmPaths&&(t||Rd)&&(o.in.wasm.wasmPaths={wasm:new URL("ort-wasm-simd-threaded.jsep.wasm",import.meta.url).href}),as.postMessage(o),Qi=t}catch(o){r(o)}},r)});try{await au(Xt.wasm),await Tu(Xt),_a=!0}catch(e){throw ma=!0,e}finally{hn=!1}}},m0=async e=>{if(lo())return jo(),new Promise((r,t)=>{Ro("init-ep",[r,t]);let s={type:"init-ep",in:{epName:e,env:Xt}};as.postMessage(s)});await Pu(Xt,e)},f0=async e=>lo()?(jo(),new Promise((r,t)=>{Ro("copy-from",[r,t]);let s={type:"copy-from",in:{buffer:e}};as.postMessage(s,[e.buffer])})):nl(e),h0=async(e,r)=>{if(lo()){if(r?.preferredOutputLocation)throw new Error('session option "preferredOutputLocation" is not supported for proxy.');return jo(),new Promise((t,s)=>{Ro("create",[t,s]);let o={type:"create",in:{model:e,options:{...r}}},n=[];e instanceof Uint8Array&&n.push(e.buffer),as.postMessage(o,n)})}else return Eu(e,r)},g0=async e=>{if(lo())return jo(),new Promise((r,t)=>{Ro("release",[r,t]);let s={type:"release",in:e};as.postMessage(s)});ku(e)},w0=async(e,r,t,s,o,n)=>{if(lo()){if(t.some(a=>a[3]!=="cpu"))throw new Error("input tensor on GPU is not supported for proxy.");if(o.some(a=>a))throw new Error("pre-allocated output tensor is not supported for proxy.");return jo(),new Promise((a,i)=>{Ro("run",[a,i]);let l=t,c={type:"run",in:{sessionId:e,inputIndices:r,inputs:l,outputIndices:s,options:n}};as.postMessage(c,Fu(l))})}else return Cu(e,r,t,s,o,n)},b0=async e=>{if(lo())return jo(),new Promise((r,t)=>{Ro("end-profiling",[r,t]);let s={type:"end-profiling",in:e};as.postMessage(s)});Su(e)}}),zd,jM,x0,cE=ze(()=>{"use strict";Ps(),M0(),wt(),ou(),fx(),zd=(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()}`)}},jM=e=>{switch(e[3]){case"cpu":return new ys(e[0],e[2],e[1]);case"gpu-buffer":{let r=e[0];if(!cu(r))throw new Error(`not supported data type: ${r} for deserializing GPU tensor`);let{gpuBuffer:t,download:s,dispose:o}=e[2];return ys.fromGpuBuffer(t,{dataType:r,dims:e[1],download:s,dispose:o})}case"ml-tensor":{let r=e[0];if(!du(r))throw new Error(`not supported data type: ${r} for deserializing MLTensor tensor`);let{mlTensor:t,download:s,dispose:o}=e[2];return ys.fromMLTensor(t,{dataType:r,dims:e[1],download:s,dispose:o})}default:throw new Error(`invalid data location: ${e[3]}`)}},x0=class{async fetchModelAndCopyToWasmMemory(e){return f0(await uu(e))}async loadModel(e,r){Ts();let t;typeof e=="string"?t=await this.fetchModelAndCopyToWasmMemory(e):t=e,[this.sessionId,this.inputNames,this.outputNames,this.inputMetadata,this.outputMetadata]=await h0(t,r),ls()}async dispose(){return g0(this.sessionId)}async run(e,r,t){Ts();let s=[],o=[];Object.entries(e).forEach(u=>{let d=u[0],h=u[1],f=this.inputNames.indexOf(d);if(f===-1)throw new Error(`invalid input '${d}'`);s.push(h),o.push(f)});let n=[],a=[];Object.entries(r).forEach(u=>{let d=u[0],h=u[1],f=this.outputNames.indexOf(d);if(f===-1)throw new Error(`invalid output '${d}'`);n.push(h),a.push(f)});let i=s.map((u,d)=>zd(u,()=>`input "${this.inputNames[o[d]]}"`)),l=n.map((u,d)=>u?zd(u,()=>`output "${this.outputNames[a[d]]}"`):null),c=await w0(this.sessionId,o,i,a,l,t),p={};for(let u=0;u<c.length;u++)p[this.outputNames[a[u]]]=n[u]??jM(c[u]);return ls(),p}startProfiling(){}endProfiling(){b0(this.sessionId)}}}),v0={};xn(v0,{OnnxruntimeWebAssemblyBackend:()=>eu,initializeFlags:()=>Zd,wasmBackend:()=>y0});var Zd,eu,y0,dE=ze(()=>{"use strict";Ps(),M0(),cE(),Zd=()=>{(typeof Xt.wasm.initTimeout!="number"||Xt.wasm.initTimeout<0)&&(Xt.wasm.initTimeout=0);let e=Xt.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.`),Xt.wasm.simd=!1),typeof Xt.wasm.proxy!="boolean"&&(Xt.wasm.proxy=!1),typeof Xt.wasm.trace!="boolean"&&(Xt.wasm.trace=!1),typeof Xt.wasm.numThreads!="number"||!Number.isInteger(Xt.wasm.numThreads)||Xt.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)Xt.wasm.numThreads=1;else{let r=typeof navigator>"u"?XT("node:os").cpus().length:navigator.hardwareConcurrency;Xt.wasm.numThreads=Math.min(4,Math.ceil((r||1)/2))}},eu=class{async init(e){Zd(),await _0(),await m0(e)}async createInferenceSessionHandler(e,r){let t=new x0;return await t.loadModel(e,r),t}},y0=new eu});Ps();Ps();Ps();var uE="1.22.0-dev.20250409-89f8206ba4",pE=nx;{let e=(dE(),Ma(v0)).wasmBackend;Wo("webgpu",e,5),Wo("webnn",e,5),Wo("cpu",e,10),Wo("wasm",e,10)}Object.defineProperty(Xt.versions,"web",{value:uE,enumerable:!0});var _E={"onnxruntime-common":e=>{e.exports=Rc},"onnxruntime-web":e=>{e.exports=Iu},"?2ce3":()=>{},"?7992":()=>{},"?5af5":()=>{},"?2b25":()=>{},"?db59":()=>{},"?383f":()=>{},"?fa4b":()=>{},"./node_modules/@huggingface/jinja/dist/index.js":(e,r,t)=>{t.r(r),t.d(r,{Environment:()=>ot,Interpreter:()=>rt,Template:()=>Cs,parse:()=>Ce,tokenize:()=>p});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,X){this.value=k,this.type=X}};function n(k){return/\w/.test(k)}function a(k){return/[0-9]/.test(k)}var i=[["{%",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]],l=new Map([["n",`
2829
2829
  `],["t"," "],["r","\r"],["b","\b"],["f","\f"],["v","\v"],["'","'"],['"','"'],["\\","\\"]]);function c(k,X={}){return k.endsWith(`
2830
2830
  `)&&(k=k.slice(0,-1)),X.lstrip_blocks&&(k=k.replace(/^[ \t]*({[#%-])/gm,"$1")),X.trim_blocks&&(k=k.replace(/([#%-]})\n/g,"$1")),k.replace(/-%}\s*/g,"%}").replace(/\s*{%-/g,"{%").replace(/-}}\s*/g,"}}").replace(/\s*{{-/g,"{{").replace(/-#}\s*/g,"#}").replace(/\s*{#-/g,"{#").replace(/{%\s*(end)?generation\s*%}/gs,"")}function p(k,X={}){let N=[],Y=c(k,X),se=0,he=0,ke=Ze=>{let dt="";for(;Ze(Y[se]);){if(Y[se]==="\\"){if(++se,se>=Y.length)throw new SyntaxError("Unexpected end of input");let qe=Y[se++],Ct=l.get(qe);if(Ct===void 0)throw new SyntaxError(`Unexpected escaped character: ${qe}`);dt+=Ct;continue}if(dt+=Y[se++],se>=Y.length)throw new SyntaxError("Unexpected end of input")}return dt};e:for(;se<Y.length;){let Ze=N.at(-1)?.type;if(Ze===void 0||Ze===s.CloseStatement||Ze===s.CloseExpression||Ze===s.Comment){let qe="";for(;se<Y.length&&!(Y[se]==="{"&&(Y[se+1]==="%"||Y[se+1]==="{"||Y[se+1]==="#"));)qe+=Y[se++];if(qe.length>0){N.push(new o(qe,s.Text));continue}}if(Y[se]==="{"&&Y[se+1]==="#"){se+=2;let qe="";for(;Y[se]!=="#"||Y[se+1]!=="}";){if(se+2>=Y.length)throw new SyntaxError("Missing end of comment tag");qe+=Y[se++]}N.push(new o(qe,s.Comment)),se+=2;continue}ke(qe=>/\s/.test(qe));let dt=Y[se];if(dt==="-"||dt==="+"){let qe=N.at(-1)?.type;if(qe===s.Text||qe===void 0)throw new SyntaxError(`Unexpected character: ${dt}`);switch(qe){case s.Identifier:case s.NumericLiteral:case s.StringLiteral:case s.CloseParen:case s.CloseSquareBracket:break;default:{++se;let Ct=ke(a);N.push(new o(`${dt}${Ct}`,Ct.length>0?s.NumericLiteral:s.UnaryOperator));continue}}}for(let[qe,Ct]of i){if(qe==="}}"&&he>0)continue;if(Y.slice(se,se+qe.length)===qe){N.push(new o(qe,Ct)),Ct===s.OpenExpression?he=0:Ct===s.OpenCurlyBracket?++he:Ct===s.CloseCurlyBracket&&--he,se+=qe.length;continue e}}if(dt==="'"||dt==='"'){++se;let qe=ke(Ct=>Ct!==dt);N.push(new o(qe,s.StringLiteral)),++se;continue}if(a(dt)){let qe=ke(a);if(Y[se]==="."&&a(Y[se+1])){++se;let Ct=ke(a);qe=`${qe}.${Ct}`}N.push(new o(qe,s.NumericLiteral));continue}if(n(dt)){let qe=ke(n);N.push(new o(qe,s.Identifier));continue}throw new SyntaxError(`Unexpected character: ${dt}`)}return N}var u=class{type="Statement"},d=class extends u{constructor(k){super(),this.body=k}type="Program"},h=class extends u{constructor(k,X,N){super(),this.test=k,this.body=X,this.alternate=N}type="If"},f=class extends u{constructor(k,X,N,Y){super(),this.loopvar=k,this.iterable=X,this.body=N,this.defaultBlock=Y}type="For"},v=class extends u{type="Break"},F=class extends u{type="Continue"},x=class extends u{constructor(k,X,N){super(),this.assignee=k,this.value=X,this.body=N}type="Set"},w=class extends u{constructor(k,X,N){super(),this.name=k,this.args=X,this.body=N}type="Macro"},C=class extends u{constructor(k){super(),this.value=k}type="Comment"},y=class extends u{type="Expression"},P=class extends y{constructor(k,X,N){super(),this.object=k,this.property=X,this.computed=N}type="MemberExpression"},I=class extends y{constructor(k,X){super(),this.callee=k,this.args=X}type="CallExpression"},g=class extends y{constructor(k){super(),this.value=k}type="Identifier"},E=class extends y{constructor(k){super(),this.value=k}type="Literal"},$=class extends E{type="IntegerLiteral"},L=class extends E{type="FloatLiteral"},G=class extends E{type="StringLiteral"},q=class extends E{type="ArrayLiteral"},O=class extends E{type="TupleLiteral"},J=class extends E{type="ObjectLiteral"},Q=class extends y{constructor(k,X,N){super(),this.operator=k,this.left=X,this.right=N}type="BinaryExpression"},H=class extends y{constructor(k,X){super(),this.operand=k,this.filter=X}type="FilterExpression"},te=class extends u{constructor(k,X){super(),this.filter=k,this.body=X}type="FilterStatement"},re=class extends y{constructor(k,X){super(),this.lhs=k,this.test=X}type="SelectExpression"},le=class extends y{constructor(k,X,N){super(),this.operand=k,this.negate=X,this.test=N}type="TestExpression"},be=class extends y{constructor(k,X){super(),this.operator=k,this.argument=X}type="UnaryExpression"},z=class extends y{constructor(k=void 0,X=void 0,N=void 0){super(),this.start=k,this.stop=X,this.step=N}type="SliceExpression"},D=class extends y{constructor(k,X){super(),this.key=k,this.value=X}type="KeywordArgumentExpression"},K=class extends y{constructor(k){super(),this.argument=k}type="SpreadExpression"},R=class extends u{constructor(k,X,N){super(),this.call=k,this.callerArgs=X,this.body=N}type="CallStatement"},ne=class extends y{constructor(k,X,N){super(),this.condition=k,this.trueExpr=X,this.falseExpr=N}type="Ternary"};function Ce(k){let X=new d([]),N=0;function Y(Le,Re){let tt=k[N++];if(!tt||tt.type!==Le)throw new Error(`Parser Error: ${Re}. ${tt.type} !== ${Le}.`);return tt}function se(Le){if(!dt(Le))throw new SyntaxError(`Expected ${Le}`);++N}function he(){switch(k[N].type){case s.Comment:return new C(k[N++].value);case s.Text:return qe();case s.OpenStatement:return Ct();case s.OpenExpression:return St();default:throw new SyntaxError(`Unexpected token type: ${k[N].type}`)}}function ke(...Le){return N+Le.length<=k.length&&Le.every((Re,tt)=>Re===k[N+tt].type)}function Ze(...Le){return k[N]?.type===s.OpenStatement&&k[N+1]?.type===s.Identifier&&Le.includes(k[N+1]?.value)}function dt(...Le){return N+Le.length<=k.length&&Le.every((Re,tt)=>k[N+tt].type==="Identifier"&&Re===k[N+tt].value)}function qe(){return new G(Y(s.Text,"Expected text token").value)}function Ct(){if(Y(s.OpenStatement,"Expected opening statement token"),k[N].type!==s.Identifier)throw new SyntaxError(`Unknown statement, got ${k[N].type}`);let Le=k[N].value,Re;switch(Le){case"set":++N,Re=ur();break;case"if":++N,Re=Rt(),Y(s.OpenStatement,"Expected {% token"),se("endif"),Y(s.CloseStatement,"Expected %} token");break;case"macro":++N,Re=jr(),Y(s.OpenStatement,"Expected {% token"),se("endmacro"),Y(s.CloseStatement,"Expected %} token");break;case"for":++N,Re=Sr(),Y(s.OpenStatement,"Expected {% token"),se("endfor"),Y(s.CloseStatement,"Expected %} token");break;case"call":{++N;let tt=null;ke(s.OpenParen)&&(tt=Yr());let Jt=Ur();if(Jt.type!=="Identifier")throw new SyntaxError("Expected identifier following call statement");let Rs=Yr();Y(s.CloseStatement,"Expected closing statement token");let ds=[];for(;!Ze("endcall");)ds.push(he());Y(s.OpenStatement,"Expected '{%'"),se("endcall"),Y(s.CloseStatement,"Expected closing statement token");let js=new I(Jt,Rs);Re=new R(js,tt,ds);break}case"break":++N,Y(s.CloseStatement,"Expected closing statement token"),Re=new v;break;case"continue":++N,Y(s.CloseStatement,"Expected closing statement token"),Re=new F;break;case"filter":{++N;let tt=Ur();tt instanceof g&&ke(s.OpenParen)&&(tt=Wr(tt)),Y(s.CloseStatement,"Expected closing statement token");let Jt=[];for(;!Ze("endfilter");)Jt.push(he());Y(s.OpenStatement,"Expected '{%'"),se("endfilter"),Y(s.CloseStatement,"Expected '%}'"),Re=new te(tt,Jt);break}default:throw new SyntaxError(`Unknown statement type: ${Le}`)}return Re}function St(){Y(s.OpenExpression,"Expected opening expression token");let Le=Gt();return Y(s.CloseExpression,"Expected closing expression token"),Le}function ur(){let Le=pr(),Re=null,tt=[];if(ke(s.Equals))++N,Re=pr();else{for(Y(s.CloseStatement,"Expected %} token");!Ze("endset");)tt.push(he());Y(s.OpenStatement,"Expected {% token"),se("endset")}return Y(s.CloseStatement,"Expected closing statement token"),new x(Le,Re,tt)}function Rt(){let Le=Gt();Y(s.CloseStatement,"Expected closing statement token");let Re=[],tt=[];for(;!Ze("elif","else","endif");)Re.push(he());if(Ze("elif")){++N,++N;let Jt=Rt();tt.push(Jt)}else if(Ze("else"))for(++N,++N,Y(s.CloseStatement,"Expected closing statement token");!Ze("endif");)tt.push(he());return new h(Le,Re,tt)}function jr(){let Le=Ur();if(Le.type!=="Identifier")throw new SyntaxError("Expected identifier following macro statement");let Re=Yr();Y(s.CloseStatement,"Expected closing statement token");let tt=[];for(;!Ze("endmacro");)tt.push(he());return new w(Le,Re,tt)}function pr(Le=!1){let Re=Le?Ur:Gt,tt=[Re()],Jt=ke(s.Comma);for(;Jt&&(++N,tt.push(Re()),!!ke(s.Comma)););return Jt?new O(tt):tt[0]}function Sr(){let Le=pr(!0);if(!(Le instanceof g||Le instanceof O))throw new SyntaxError(`Expected identifier/tuple for the loop variable, got ${Le.type} instead`);if(!dt("in"))throw new SyntaxError("Expected `in` keyword following loop variable");++N;let Re=Gt();Y(s.CloseStatement,"Expected closing statement token");let tt=[];for(;!Ze("endfor","else");)tt.push(he());let Jt=[];if(Ze("else"))for(++N,++N,Y(s.CloseStatement,"Expected closing statement token");!Ze("endfor");)Jt.push(he());return new f(Le,Re,tt,Jt)}function Gt(){return os()}function os(){let Le=Nr();if(dt("if")){++N;let Re=Nr();if(dt("else")){++N;let tt=os();return new ne(Re,Le,tt)}else return new re(Le,Re)}return Le}function Nr(){let Le=Ss();for(;dt("or");){let Re=k[N];++N;let tt=Ss();Le=new Q(Re,Le,tt)}return Le}function Ss(){let Le=yr();for(;dt("and");){let Re=k[N];++N;let tt=yr();Le=new Q(Re,Le,tt)}return Le}function yr(){let Le;for(;dt("not");){let Re=k[N];++N;let tt=yr();Le=new be(Re,tt)}return Le??Fs()}function Fs(){let Le=Is();for(;;){let Re;if(dt("not","in"))Re=new o("not in",s.Identifier),N+=2;else if(dt("in"))Re=k[N++];else if(ke(s.ComparisonBinaryOperator))Re=k[N++];else break;let tt=Is();Le=new Q(Re,Le,tt)}return Le}function Is(){let Le=_r();for(;ke(s.AdditiveBinaryOperator);){let Re=k[N];++N;let tt=_r();Le=new Q(Re,Le,tt)}return Le}function Vr(){let Le=lr(Ur());return ke(s.OpenParen)?Wr(Le):Le}function Wr(Le){let Re=new I(Le,Yr());return Re=lr(Re),ke(s.OpenParen)&&(Re=Wr(Re)),Re}function Yr(){Y(s.OpenParen,"Expected opening parenthesis for arguments list");let Le=Fr();return Y(s.CloseParen,"Expected closing parenthesis for arguments list"),Le}function Fr(){let Le=[];for(;!ke(s.CloseParen);){let Re;if(k[N].type===s.MultiplicativeBinaryOperator&&k[N].value==="*"){++N;let tt=Gt();Re=new K(tt)}else if(Re=Gt(),ke(s.Equals)){if(++N,!(Re instanceof g))throw new SyntaxError("Expected identifier for keyword argument");let tt=Gt();Re=new D(Re,tt)}Le.push(Re),ke(s.Comma)&&++N}return Le}function cs(){let Le=[],Re=!1;for(;!ke(s.CloseSquareBracket);)ke(s.Colon)?(Le.push(void 0),++N,Re=!0):(Le.push(Gt()),ke(s.Colon)&&(++N,Re=!0));if(Le.length===0)throw new SyntaxError("Expected at least one argument for member/slice expression");if(Re){if(Le.length>3)throw new SyntaxError("Expected 0-3 arguments for slice expression");return new z(...Le)}return Le[0]}function lr(Le){for(;ke(s.Dot)||ke(s.OpenSquareBracket);){let Re=k[N];++N;let tt,Jt=Re.type===s.OpenSquareBracket;if(Jt)tt=cs(),Y(s.CloseSquareBracket,"Expected closing square bracket");else if(tt=Ur(),tt.type!=="Identifier")throw new SyntaxError("Expected identifier following dot operator");Le=new P(Le,tt,Jt)}return Le}function _r(){let Le=Hr();for(;ke(s.MultiplicativeBinaryOperator);){let Re=k[N++],tt=Hr();Le=new Q(Re,Le,tt)}return Le}function Hr(){let Le=zs();for(;dt("is");){++N;let Re=dt("not");Re&&++N;let tt=Ur();if(!(tt instanceof g))throw new SyntaxError("Expected identifier for the test");Le=new le(Le,Re,tt)}return Le}function zs(){let Le=Vr();for(;ke(s.Pipe);){++N;let Re=Ur();if(!(Re instanceof g))throw new SyntaxError("Expected identifier for the filter");ke(s.OpenParen)&&(Re=Wr(Re)),Le=new H(Le,Re)}return Le}function Ur(){let Le=k[N++];switch(Le.type){case s.NumericLiteral:{let Re=Le.value;return Re.includes(".")?new L(Number(Re)):new $(Number(Re))}case s.StringLiteral:{let Re=Le.value;for(;ke(s.StringLiteral);)Re+=k[N++].value;return new G(Re)}case s.Identifier:return new g(Le.value);case s.OpenParen:{let Re=pr();return Y(s.CloseParen,"Expected closing parenthesis, got ${tokens[current].type} instead."),Re}case s.OpenSquareBracket:{let Re=[];for(;!ke(s.CloseSquareBracket);)Re.push(Gt()),ke(s.Comma)&&++N;return++N,new q(Re)}case s.OpenCurlyBracket:{let Re=new Map;for(;!ke(s.CloseCurlyBracket);){let tt=Gt();Y(s.Colon,"Expected colon between key and value in object literal");let Jt=Gt();Re.set(tt,Jt),ke(s.Comma)&&++N}return++N,new J(Re)}default:throw new SyntaxError(`Unexpected token: ${Le.type}`)}}for(;N<k.length;)X.body.push(he());return X}function Me(k,X,N=1){X===void 0&&(X=k,k=0);let Y=[];for(let se=k;se<X;se+=N)Y.push(se);return Y}function Ie(k,X,N,Y=1){let se=Math.sign(Y);se>=0?(X=(X??=0)<0?Math.max(k.length+X,0):Math.min(X,k.length),N=(N??=k.length)<0?Math.max(k.length+N,0):Math.min(N,k.length)):(X=(X??=k.length-1)<0?Math.max(k.length+X,-1):Math.min(X,k.length-1),N=(N??=-1)<-1?Math.max(k.length+N,-1):Math.min(N,k.length-1));let he=[];for(let ke=X;se*ke<se*N;ke+=Y)he.push(k[ke]);return he}function Ke(k){return k.replace(/\b\w/g,X=>X.toUpperCase())}function et(k){return _e(new Date,k)}function _e(k,X){let N=new Intl.DateTimeFormat(void 0,{month:"long"}),Y=new Intl.DateTimeFormat(void 0,{month:"short"}),se=he=>he<10?"0"+he:he.toString();return X.replace(/%[YmdbBHM%]/g,he=>{switch(he){case"%Y":return k.getFullYear().toString();case"%m":return se(k.getMonth()+1);case"%d":return se(k.getDate());case"%b":return Y.format(k);case"%B":return N.format(k);case"%H":return se(k.getHours());case"%M":return se(k.getMinutes());case"%%":return"%";default:return he}})}function Z(k){return k.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function V(k,X,N,Y){if(Y===0)return k;let se=Y==null||Y<0?1/0:Y,he=X.length===0?new RegExp("(?=)","gu"):new RegExp(Z(X),"gu");return k.replaceAll(he,ke=>se>0?(--se,N):ke)}var fe=class extends Error{},Se=class extends Error{},Pe=class{type="RuntimeValue";value;builtins=new Map;constructor(k=void 0){this.value=k}__bool__(){return new Ae(!!this.value)}toString(){return String(this.value)}},pe=class extends Pe{type="IntegerValue"},xe=class extends Pe{type="FloatValue";toString(){return this.value%1===0?this.value.toFixed(1):this.value.toString()}},de=class extends Pe{type="StringValue";builtins=new Map([["upper",new Ge(()=>new de(this.value.toUpperCase()))],["lower",new Ge(()=>new de(this.value.toLowerCase()))],["strip",new Ge(()=>new de(this.value.trim()))],["title",new Ge(()=>new de(Ke(this.value)))],["capitalize",new Ge(()=>new de(this.value.charAt(0).toUpperCase()+this.value.slice(1)))],["length",new pe(this.value.length)],["rstrip",new Ge(()=>new de(this.value.trimEnd()))],["lstrip",new Ge(()=>new de(this.value.trimStart()))],["startswith",new Ge(k=>{if(k.length===0)throw new Error("startswith() requires at least one argument");let X=k[0];if(X instanceof de)return new Ae(this.value.startsWith(X.value));if(X instanceof Ee){for(let N of X.value){if(!(N instanceof de))throw new Error("startswith() tuple elements must be strings");if(this.value.startsWith(N.value))return new Ae(!0)}return new Ae(!1)}throw new Error("startswith() argument must be a string or tuple of strings")})],["endswith",new Ge(k=>{if(k.length===0)throw new Error("endswith() requires at least one argument");let X=k[0];if(X instanceof de)return new Ae(this.value.endsWith(X.value));if(X instanceof Ee){for(let N of X.value){if(!(N instanceof de))throw new Error("endswith() tuple elements must be strings");if(this.value.endsWith(N.value))return new Ae(!0)}return new Ae(!1)}throw new Error("endswith() argument must be a string or tuple of strings")})],["split",new Ge(k=>{let X=k[0]??new Ve;if(!(X instanceof de||X instanceof Ve))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 Y=[];if(X instanceof Ve){let se=this.value.trimStart();for(let{0:he,index:ke}of se.matchAll(/\S+/g)){if(N.value!==-1&&Y.length>=N.value&&ke!==void 0){Y.push(he+se.slice(ke+he.length));break}Y.push(he)}}else{if(X.value==="")throw new Error("empty separator");Y=this.value.split(X.value),N.value!==-1&&Y.length>N.value&&Y.push(Y.splice(N.value).join(X.value))}return new Ee(Y.map(se=>new de(se)))})],["replace",new Ge(k=>{if(k.length<2)throw new Error("replace() requires at least two arguments");let X=k[0],N=k[1];if(!(X instanceof de&&N instanceof de))throw new Error("replace() arguments must be strings");let Y;if(k.length>2?k[2].type==="KeywordArgumentsValue"?Y=k[2].value.get("count")??new Ve:Y=k[2]:Y=new Ve,!(Y instanceof pe||Y instanceof Ve))throw new Error("replace() count argument must be a number or null");return new de(V(this.value,X.value,N.value,Y.value))})]])},Ae=class extends Pe{type="BooleanValue"},$e=class extends Pe{type="ObjectValue";__bool__(){return new Ae(this.value.size>0)}builtins=new Map([["get",new Ge(([k,X])=>{if(!(k instanceof de))throw new Error(`Object key must be a string: got ${k.type}`);return this.value.get(k.value)??X??new Ve})],["items",new Ge(()=>this.items())],["keys",new Ge(()=>this.keys())],["values",new Ge(()=>this.values())]]);items(){return new Ee(Array.from(this.value.entries()).map(([k,X])=>new Ee([new de(k),X])))}keys(){return new Ee(Array.from(this.value.keys()).map(k=>new de(k)))}values(){return new Ee(Array.from(this.value.values()))}},Ue=class extends $e{type="KeywordArgumentsValue"},Ee=class extends Pe{type="ArrayValue";builtins=new Map([["length",new pe(this.value.length)]]);__bool__(){return new Ae(this.value.length>0)}},je=class extends Ee{type="TupleValue"},Ge=class extends Pe{type="FunctionValue"},Ve=class extends Pe{type="NullValue"},De=class extends Pe{type="UndefinedValue"},ot=class{constructor(k){this.parent=k}variables=new Map([["namespace",new Ge(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 Ge],["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 xe],["integer",k=>k instanceof pe],["iterable",k=>k.type==="ArrayValue"||k.type==="StringValue"],["mapping",k=>k.type==="ObjectValue"],["lower",k=>{let X=k.value;return k.type==="StringValue"&&X===X.toLowerCase()}],["upper",k=>{let X=k.value;return k.type==="StringValue"&&X===X.toUpperCase()}],["none",k=>k.type==="NullValue"],["defined",k=>k.type!=="UndefinedValue"],["undefined",k=>k.type==="UndefinedValue"],["equalto",(k,X)=>k.value===X.value],["eq",(k,X)=>k.value===X.value]]);set(k,X){return this.declareVariable(k,Ye(X))}declareVariable(k,X){if(this.variables.has(k))throw new SyntaxError(`Variable already declared: ${k}`);return this.variables.set(k,X),X}setVariable(k,X){return this.variables.set(k,X),X}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 De}catch{return new De}}};function lt(k){k.set("false",!1),k.set("true",!0),k.set("none",null),k.set("raise_exception",X=>{throw new Error(X)}),k.set("range",Me),k.set("strftime_now",et),k.set("True",!0),k.set("False",!1),k.set("None",null)}var rt=class{global;constructor(k){this.global=k??new ot}run(k){return this.evaluate(k,this.global)}evaluateBinaryExpression(k,X){let N=this.evaluate(k.left,X);switch(k.operator.value){case"and":return N.__bool__().value?this.evaluate(k.right,X):N;case"or":return N.__bool__().value?N:this.evaluate(k.right,X)}let Y=this.evaluate(k.right,X);switch(k.operator.value){case"==":return new Ae(N.value==Y.value);case"!=":return new Ae(N.value!=Y.value)}if(N instanceof De||Y instanceof De){if(Y instanceof De&&["in","not in"].includes(k.operator.value))return new Ae(k.operator.value==="not in");throw new Error(`Cannot perform operation ${k.operator.value} on undefined values`)}else{if(N instanceof Ve||Y instanceof Ve)throw new Error("Cannot perform operation on null values");if(k.operator.value==="~")return new de(N.value.toString()+Y.value.toString());if((N instanceof pe||N instanceof xe)&&(Y instanceof pe||Y instanceof xe)){let se=N.value,he=Y.value;switch(k.operator.value){case"+":case"-":case"*":{let ke=k.operator.value==="+"?se+he:k.operator.value==="-"?se-he:se*he;return N instanceof xe||Y instanceof xe?new xe(ke):new pe(ke)}case"/":return new xe(se/he);case"%":{let ke=se%he;return N instanceof xe||Y instanceof xe?new xe(ke):new pe(ke)}case"<":return new Ae(se<he);case">":return new Ae(se>he);case">=":return new Ae(se>=he);case"<=":return new Ae(se<=he)}}else if(N instanceof Ee&&Y instanceof Ee)switch(k.operator.value){case"+":return new Ee(N.value.concat(Y.value))}else if(Y instanceof Ee){let se=Y.value.find(he=>he.value===N.value)!==void 0;switch(k.operator.value){case"in":return new Ae(se);case"not in":return new Ae(!se)}}}if(N instanceof de||Y instanceof de)switch(k.operator.value){case"+":return new de(N.value.toString()+Y.value.toString())}if(N instanceof de&&Y instanceof de)switch(k.operator.value){case"in":return new Ae(Y.value.includes(N.value));case"not in":return new Ae(!Y.value.includes(N.value))}if(N instanceof de&&Y instanceof $e)switch(k.operator.value){case"in":return new Ae(Y.value.has(N.value));case"not in":return new Ae(!Y.value.has(N.value))}throw new SyntaxError(`Unknown operator "${k.operator.value}" between ${N.type} and ${Y.type}`)}evaluateArguments(k,X){let N=[],Y=new Map;for(let se of k)if(se.type==="SpreadExpression"){let he=se,ke=this.evaluate(he.argument,X);if(!(ke instanceof Ee))throw new Error(`Cannot unpack non-iterable type: ${ke.type}`);for(let Ze of ke.value)N.push(Ze)}else if(se.type==="KeywordArgumentExpression"){let he=se;Y.set(he.key.value,this.evaluate(he.value,X))}else{if(Y.size>0)throw new Error("Positional arguments must come before keyword arguments");N.push(this.evaluate(se,X))}return[N,Y]}applyFilter(k,X,N){if(X.type==="Identifier"){let Y=X;if(Y.value==="tojson")return new de(ft(k));if(k instanceof Ee)switch(Y.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 Ee(k.value.reverse());case"sort":return new Ee(k.value.sort((se,he)=>{if(se.type!==he.type)throw new Error(`Cannot compare different types: ${se.type} and ${he.type}`);switch(se.type){case"IntegerValue":case"FloatValue":return se.value-he.value;case"StringValue":return se.value.localeCompare(he.value);default:throw new Error(`Cannot compare type: ${se.type}`)}}));case"join":return new de(k.value.map(se=>se.value).join(""));case"string":return new de(ft(k));case"unique":{let se=new Set,he=[];for(let ke of k.value)se.has(ke.value)||(se.add(ke.value),he.push(ke));return new Ee(he)}default:throw new Error(`Unknown ArrayValue filter: ${Y.value}`)}else if(k instanceof de)switch(Y.value){case"length":case"upper":case"lower":case"title":case"capitalize":{let se=k.builtins.get(Y.value);if(se instanceof Ge)return se.value([],N);if(se instanceof pe)return se;throw new Error(`Unknown StringValue filter: ${Y.value}`)}case"trim":return new de(k.value.trim());case"indent":return new de(k.value.split(`
2831
2831
  `).map((se,he)=>he===0||se.length===0?se:" "+se).join(`
@@ -2835,7 +2835,7 @@ ${n}`,i=t.createShaderModule({code:a,label:e.name});$t("verbose",()=>`[WebGPU] $
2835
2835
  `+se.repeat(Y),ke=he+se;if(k.type==="ArrayValue"){let Ze=k.value.map(dt=>ft(dt,X,Y+1));return X?`[${ke}${Ze.join(`,${ke}`)}${he}]`:`[${Ze.join(", ")}]`}else{let Ze=Array.from(k.value.entries()).map(([dt,qe])=>{let Ct=`"${dt}": ${ft(qe,X,Y+1)}`;return X?`${ke}${Ct}`:Ct});return X?`{${Ze.join(",")}${he}}`:`{${Ze.join(", ")}}`}}default:throw new Error(`Cannot convert to JSON: ${k.type}`)}}var yt=`
2836
2836
  `,Ot="{%- ",vr=" -%}";function zr(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 Rr(k,X=" "){let N=typeof X=="number"?" ".repeat(X):X;return Cr(k.body,0,N).replace(/\n$/,"")}function Ut(...k){return Ot+k.join(" ")+vr}function Cr(k,X,N){return k.map(Y=>Hs(Y,X,N)).join(yt)}function Hs(k,X,N){let Y=N.repeat(X);switch(k.type){case"Program":return Cr(k.body,X,N);case"If":return Qs(k,X,N);case"For":return Xs(k,X,N);case"Set":return Bs(k,X,N);case"Macro":return _t(k,X,N);case"Break":return Y+Ut("break");case"Continue":return Y+Ut("continue");case"CallStatement":return Es(k,X,N);case"FilterStatement":return ks(k,X,N);case"Comment":return Y+"{# "+k.value+" #}";default:return Y+"{{- "+ct(k)+" -}}"}}function Qs(k,X,N){let Y=N.repeat(X),se=[],he=k;for(;he&&(se.push({test:he.test,body:he.body}),he.alternate.length===1&&he.alternate[0].type==="If");)he=he.alternate[0];let ke=Y+Ut("if",ct(se[0].test))+yt+Cr(se[0].body,X+1,N);for(let Ze=1;Ze<se.length;++Ze)ke+=yt+Y+Ut("elif",ct(se[Ze].test))+yt+Cr(se[Ze].body,X+1,N);return he&&he.alternate.length>0&&(ke+=yt+Y+Ut("else")+yt+Cr(he.alternate,X+1,N)),ke+=yt+Y+Ut("endif"),ke}function Xs(k,X,N){let Y=N.repeat(X),se="";if(k.iterable.type==="SelectExpression"){let ke=k.iterable;se=`${ct(ke.lhs)} if ${ct(ke.test)}`}else se=ct(k.iterable);let he=Y+Ut("for",ct(k.loopvar),"in",se)+yt+Cr(k.body,X+1,N);return k.defaultBlock.length>0&&(he+=yt+Y+Ut("else")+yt+Cr(k.defaultBlock,X+1,N)),he+=yt+Y+Ut("endfor"),he}function Bs(k,X,N){let Y=N.repeat(X),se=ct(k.assignee),he=k.value?ct(k.value):"",ke=Y+Ut("set",`${se}${k.value?" = "+he:""}`);return k.body.length===0?ke:ke+yt+Cr(k.body,X+1,N)+yt+Y+Ut("endset")}function _t(k,X,N){let Y=N.repeat(X),se=k.args.map(ct).join(", ");return Y+Ut("macro",`${k.name.value}(${se})`)+yt+Cr(k.body,X+1,N)+yt+Y+Ut("endmacro")}function Es(k,X,N){let Y=N.repeat(X),se=k.callerArgs&&k.callerArgs.length>0?`(${k.callerArgs.map(ct).join(", ")})`:"",he=ct(k.call),ke=Y+Ut(`call${se}`,he)+yt;return ke+=Cr(k.body,X+1,N)+yt,ke+=Y+Ut("endcall"),ke}function ks(k,X,N){let Y=N.repeat(X),se=k.filter.type==="Identifier"?k.filter.value:ct(k.filter),he=Y+Ut("filter",se)+yt;return he+=Cr(k.body,X+1,N)+yt,he+=Y+Ut("endfilter"),he}function ct(k,X=-1){switch(k.type){case"SpreadExpression":return`*${ct(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,Y=zr(N),se=ct(N.left,Y),he=ct(N.right,Y+1),ke=`${se} ${N.operator.value} ${he}`;return Y<X?`(${ke})`:ke}case"UnaryExpression":{let N=k;return N.operator.value+(N.operator.value==="not"?" ":"")+ct(N.argument,1/0)}case"CallExpression":{let N=k,Y=N.args.map(ct).join(", ");return`${ct(N.callee)}(${Y})`}case"MemberExpression":{let N=k,Y=ct(N.object);["Identifier","MemberExpression","CallExpression","StringLiteral","IntegerLiteral","FloatLiteral","ArrayLiteral","TupleLiteral","ObjectLiteral"].includes(N.object.type)||(Y=`(${Y})`);let se=ct(N.property);return!N.computed&&N.property.type!=="Identifier"&&(se=`(${se})`),N.computed?`${Y}[${se}]`:`${Y}.${se}`}case"FilterExpression":{let N=k,Y=ct(N.operand,1/0);return N.filter.type==="CallExpression"?`${Y} | ${ct(N.filter)}`:`${Y} | ${N.filter.value}`}case"SelectExpression":{let N=k;return`${ct(N.lhs)} if ${ct(N.test)}`}case"TestExpression":{let N=k;return`${ct(N.operand)} is${N.negate?" not":""} ${N.test.value}`}case"ArrayLiteral":case"TupleLiteral":{let N=k.value.map(ct),Y=k.type==="ArrayLiteral"?"[]":"()";return`${Y[0]}${N.join(", ")}${Y[1]}`}case"ObjectLiteral":return`{${Array.from(k.value.entries()).map(([Y,se])=>`${ct(Y)}: ${ct(se)}`).join(", ")}}`;case"SliceExpression":{let N=k,Y=N.start?ct(N.start):"",se=N.stop?ct(N.stop):"",he=N.step?`:${ct(N.step)}`:"";return`${Y}:${se}${he}`}case"KeywordArgumentExpression":{let N=k;return`${N.key.value}=${ct(N.value)}`}case"Ternary":{let N=k,Y=`${ct(N.trueExpr)} if ${ct(N.condition,0)} else ${ct(N.falseExpr)}`;return X>-1?`(${Y})`:Y}default:throw new Error(`Unknown expression type: ${k.type}`)}}var Cs=class{parsed;constructor(k){let X=p(k,{lstrip_blocks:!0,trim_blocks:!0});this.parsed=Ce(X)}render(k){let X=new ot;if(lt(X),k)for(let[se,he]of Object.entries(k))X.set(se,he);return new rt(X).run(this.parsed).value}format(k){return Rr(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:()=>f,isONNXProxy:()=>C,isONNXTensor:()=>x});var o=t("./src/env.js"),n=t("?2ce3"),a=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=[],p,u,d=Symbol.for("onnxruntime");if(d in globalThis)u=globalThis[d];else if(o.apis.IS_NODE_ENV){switch(u=n??(s||(s=t.t(n,2))),process.platform){case"win32":c.push("dml");break;case"linux":process.arch==="x64"&&c.push("cuda");break;case"darwin":break}c.push("cpu"),p=["cpu"]}else u=a,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"),p=["wasm"];let h=u.InferenceSession;function f(y=null){if(!y)return p;switch(y){case"auto":return c;case"gpu":return c.filter(P=>["webgpu","cuda","dml","webnn-gpu"].includes(P))}if(c.includes(y))return[l[y]??y];throw new Error(`Unsupported device: "${y}". Should be one of: ${c.join(", ")}.`)}let v=null;async function F(y,P,I){v&&await v;let g=h.create(y,P);v??=g;let E=await g;return E.config=I,E}function x(y){return y instanceof u.Tensor}let w=u?.env;w?.wasm&&(!(typeof ServiceWorkerGlobalScope<"u"&&self instanceof ServiceWorkerGlobalScope)&&!w.wasm.wasmPaths&&(w.wasm.wasmPaths=`https://cdn.jsdelivr.net/npm/@huggingface/transformers@${o.env.version}/dist/`),w.wasm.proxy=!1),w?.webgpu&&(w.webgpu.powerPreference="high-performance");function C(){return w?.wasm?.proxy}o.env.backends.onnx=w},"./src/base/feature_extraction_utils.js":(e,r,t)=>{t.r(r),t.d(r,{FeatureExtractor:()=>a,validate_audio_inputs:()=>i});var s=t("./src/utils/constants.js"),o=t("./src/utils/generic.js"),n=t("./src/utils/hub.js");class a extends o.Callable{constructor(c){super(),this.config=c}static async from_pretrained(c,p={}){let u=await(0,n.getModelJSON)(c,s.FEATURE_EXTRACTOR_NAME,!0,p);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:()=>h,post_process_panoptic_segmentation:()=>C,post_process_semantic_segmentation:()=>f});var s=t("./src/utils/generic.js"),o=t("./src/utils/tensor.js"),n=t("./src/utils/maths.js"),a=t("./src/utils/image.js"),i=t("./src/utils/core.js"),l=t("./src/utils/hub.js"),c=t("./src/utils/constants.js");function p(I,g,E=0,$=null){let L=I/g,G=(0,n.bankers_round)(L)*g;return $!==null&&G>$&&(G=Math.floor(L)*g),G<E&&(G=Math.ceil(L)*g),G}function u([I,g],E){return[Math.max(Math.floor(I/E),1)*E,Math.max(Math.floor(g/E),1)*E]}function d([I,g,E,$]){return[I-E/2,g-$/2,I+E/2,g+$/2]}function h(I,g=.5,E=null,$=!1){let L=I.logits,G=I.pred_boxes,[q,O,J]=L.dims;if(E!==null&&E.length!==q)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");let Q=[];for(let H=0;H<q;++H){let te=E!==null?E[H]:null,re={boxes:[],classes:[],scores:[]},le=L[H],be=G[H];for(let z=0;z<O;++z){let D=le[z],K=[],R;if($){R=D.sigmoid().data;for(let ne=0;ne<R.length;++ne)R[ne]>g&&K.push(ne)}else{let ne=(0,n.max)(D.data)[1];if(ne===J-1||(R=(0,n.softmax)(D.data),R[ne]<g))continue;K.push(ne)}for(let ne of K){let Ce=be[z].data;Ce=d(Ce),te!==null&&(Ce=Ce.map((Me,Ie)=>Me*te[(Ie+1)%2])),re.boxes.push(Ce),re.classes.push(ne),re.scores.push(R[ne])}}Q.push(re)}return Q}function f(I,g=null){let E=I.logits,$=E.dims[0];if(g!==null&&g.length!==$)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");let L=[];for(let G=0;G<$;++G){let q=g!==null?g[G]:null,O=E[G];q!==null&&(O=(0,o.interpolate)(O,q,"bilinear",!1));let[J,Q]=q??O.dims.slice(-2),H=new o.Tensor("int32",new Int32Array(J*Q),[J,Q]),te=O[0].data,re=H.data;for(let z=1;z<O.dims[0];++z){let D=O[z].data;for(let K=0;K<D.length;++K)D[K]>te[K]&&(te[K]=D[K],re[K]=z)}let le=new Array(O.dims[0]);for(let z=0;z<re.length;++z){let D=re[z];le[D]=D}let be=le.filter(z=>z!==void 0);L.push({segmentation:H,labels:be})}return L}function v(I,g,E,$){let L=[],G=[],q=[];for(let O=0;O<I.dims[0];++O){let J=I[O],Q=g[O],H=(0,n.max)(J.data)[1];if(H===$)continue;let re=(0,n.softmax)(J.data)[H];re>E&&(L.push(Q),G.push(re),q.push(H))}return[L,G,q]}function F(I,g,E,$=.5,L=.8){let G=[],q=0,O=0,J=g[E].data;for(let H=0;H<I.length;++H)I[H]===E&&(G.push(H),++q),J[H]>=$&&++O;let Q=q>0&&O>0;return Q&&(Q=q/O>L),[Q,G]}function x(I,g,E,$,L,G=null,q=null){let[O,J]=q??I[0].dims,Q=new o.Tensor("int32",new Int32Array(O*J),[O,J]),H=[];if(q!==null)for(let z=0;z<I.length;++z)I[z]=(0,o.interpolate)(I[z],q,"bilinear",!1);let te=new Int32Array(I[0].data.length),re=new Float32Array(I[0].data.length);for(let z=0;z<I.length;++z){let D=g[z],K=I[z].data;for(let R=0;R<K.length;++R)K[R]*=D,K[R]>re[R]&&(te[R]=z,re[R]=K[R])}let le=0,be=Q.data;for(let z=0;z<E.length;++z){let D=E[z],[K,R]=F(te,I,z,$,L);if(K){++le;for(let ne of R)be[ne]=le;H.push({id:le,label_id:D,score:g[z]})}}return[Q,H]}function w(I,g,E=28,$=3136,L=784*1280){if(I<E||g<E)throw new Error(`height:${I} or width:${g} must be larger than factor:${E}`);if(Math.max(I,g)/Math.min(I,g)>200)throw new Error(`absolute aspect ratio must be smaller than 200, got ${Math.max(I,g)/Math.min(I,g)}`);let G=Math.round(I/E)*E,q=Math.round(g/E)*E;if(G*q>L){let O=Math.sqrt(I*g/L);G=Math.floor(I/O/E)*E,q=Math.floor(g/O/E)*E}else if(G*q<$){let O=Math.sqrt($/(I*g));G=Math.ceil(I*O/E)*E,q=Math.ceil(g*O/E)*E}return[G,q]}function C(I,g=.5,E=.5,$=.8,L=null,G=null){L===null&&(console.warn("`label_ids_to_fuse` unset. No instance will be fused."),L=new Set);let q=I.class_queries_logits??I.logits,J=(I.masks_queries_logits??I.pred_masks).sigmoid(),[Q,H,te]=q.dims;if(te-=1,G!==null&&G.length!==Q)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");let re=[];for(let le=0;le<Q;++le){let be=G!==null?G[le]:null,z=q[le],D=J[le],[K,R,ne]=v(z,D,g,te);if(ne.length===0){let[Ie,Ke]=be??D.dims.slice(-2),et=new o.Tensor("int32",new Int32Array(Ie*Ke).fill(-1),[Ie,Ke]);re.push({segmentation:et,segments_info:[]});continue}let[Ce,Me]=x(K,R,ne,E,$,L,be);re.push({segmentation:Ce,segments_info:Me})}return re}function y(I,g=.5,E=null){throw new Error("`post_process_instance_segmentation` is not yet implemented.")}class P extends s.Callable{constructor(g){super(),this.image_mean=g.image_mean??g.mean,this.image_std=g.image_std??g.std,this.resample=g.resample??2,this.do_rescale=g.do_rescale??!0,this.rescale_factor=g.rescale_factor??1/255,this.do_normalize=g.do_normalize,this.do_thumbnail=g.do_thumbnail,this.size=g.size??g.image_size,this.do_resize=g.do_resize??this.size!==void 0,this.size_divisibility=g.size_divisibility??g.size_divisor,this.do_center_crop=g.do_center_crop,this.crop_size=g.crop_size,this.do_convert_rgb=g.do_convert_rgb??!0,this.do_crop_margin=g.do_crop_margin,this.pad_size=g.pad_size,this.do_pad=g.do_pad,this.min_pixels=g.min_pixels,this.max_pixels=g.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=g.do_flip_channel_order??!1,this.config=g}async thumbnail(g,E,$=2){let L=g.height,G=g.width,q=E.height,O=E.width,J=Math.min(L,q),Q=Math.min(G,O);return J===L&&Q===G?g:(L>G?Q=Math.floor(G*J/L):G>L&&(J=Math.floor(L*Q/G)),await g.resize(Q,J,{resample:$}))}async crop_margin(g,E=200){let $=g.clone().grayscale(),L=(0,n.min)($.data)[0],q=(0,n.max)($.data)[0]-L;if(q===0)return g;let O=E/255,J=$.width,Q=$.height,H=0,te=0,re=$.data;for(let le=0;le<$.height;++le){let be=le*$.width;for(let z=0;z<$.width;++z)(re[be+z]-L)/q<O&&(J=Math.min(J,z),Q=Math.min(Q,le),H=Math.max(H,z),te=Math.max(te,le))}return g=await g.crop([J,Q,H,te]),g}pad_image(g,E,$,{mode:L="constant",center:G=!1,constant_values:q=0}={}){let[O,J,Q]=E,H,te;if(typeof $=="number"?(H=$,te=$):$==="square"?H=te=Math.max(O,J):(H=$.width,te=$.height),H!==J||te!==O){let re=new Float32Array(H*te*Q);if(Array.isArray(q))for(let z=0;z<re.length;++z)re[z]=q[z%Q];else q!==0&&re.fill(q);let[le,be]=G?[Math.floor((H-J)/2),Math.floor((te-O)/2)]:[0,0];for(let z=0;z<O;++z){let D=(z+be)*H,K=z*J;for(let R=0;R<J;++R){let ne=(D+R+le)*Q,Ce=(K+R)*Q;for(let Me=0;Me<Q;++Me)re[ne+Me]=g[Ce+Me]}}if(L==="symmetric"){if(G)throw new Error("`center` padding is not supported when `mode` is set to `symmetric`.");let z=O-1,D=J-1;for(let K=0;K<te;++K){let R=K*H,ne=(0,i.calculateReflectOffset)(K,z)*J;for(let Ce=0;Ce<H;++Ce){if(K<O&&Ce<J)continue;let Me=(R+Ce)*Q,Ie=(ne+(0,i.calculateReflectOffset)(Ce,D))*Q;for(let Ke=0;Ke<Q;++Ke)re[Me+Ke]=g[Ie+Ke]}}}g=re,E=[te,H,Q]}return[g,E]}rescale(g){for(let E=0;E<g.length;++E)g[E]=this.rescale_factor*g[E]}get_resize_output_image_size(g,E){let[$,L]=g.size,G,q;if(this.do_thumbnail){let{height:O,width:J}=E;G=Math.min(O,J)}else Number.isInteger(E)?(G=E,q=this.config.max_size??G):E!==void 0&&(G=E.shortest_edge,q=E.longest_edge);if(G!==void 0||q!==void 0){let O=G===void 0?1:Math.max(G/$,G/L),J=$*O,Q=L*O,H=q===void 0?1:Math.min(q/J,q/Q),te=Math.floor(Number((J*H).toFixed(2))),re=Math.floor(Number((Q*H).toFixed(2)));return this.size_divisibility!==void 0&&([te,re]=u([te,re],this.size_divisibility)),[te,re]}else if(E!==void 0&&E.width!==void 0&&E.height!==void 0){let O=E.width,J=E.height;if(this.config.keep_aspect_ratio&&this.config.ensure_multiple_of){let Q=J/L,H=O/$;Math.abs(1-H)<Math.abs(1-Q)?Q=H:H=Q,J=p(Q*L,this.config.ensure_multiple_of),O=p(H*$,this.config.ensure_multiple_of)}return[O,J]}else{if(this.size_divisibility!==void 0)return u([$,L],this.size_divisibility);if(this.min_pixels!==void 0&&this.max_pixels!==void 0){let O=this.config.patch_size*this.config.merge_size;return w(L,$,O,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(g){let[E,$]=this.get_resize_output_image_size(g,this.size);return await g.resize(E,$,{resample:this.resample})}async preprocess(g,{do_normalize:E=null,do_pad:$=null,do_convert_rgb:L=null,do_convert_grayscale:G=null,do_flip_channel_order:q=null}={}){this.do_crop_margin&&(g=await this.crop_margin(g));let[O,J]=g.size;if(L??this.do_convert_rgb?g=g.rgb():G&&(g=g.grayscale()),this.do_resize&&(g=await this.resize(g)),this.do_thumbnail&&(g=await this.thumbnail(g,this.size,this.resample)),this.do_center_crop){let le,be;Number.isInteger(this.crop_size)?(le=this.crop_size,be=this.crop_size):(le=this.crop_size.width,be=this.crop_size.height),g=await g.center_crop(le,be)}let Q=[g.height,g.width],H=Float32Array.from(g.data),te=[g.height,g.width,g.channels];if(this.do_rescale&&this.rescale(H),E??this.do_normalize){let le=this.image_mean;Array.isArray(this.image_mean)||(le=new Array(g.channels).fill(le));let be=this.image_std;if(Array.isArray(this.image_std)||(be=new Array(g.channels).fill(le)),le.length!==g.channels||be.length!==g.channels)throw new Error(`When set to arrays, the length of \`image_mean\` (${le.length}) and \`image_std\` (${be.length}) must match the number of channels in the image (${g.channels}).`);for(let z=0;z<H.length;z+=g.channels)for(let D=0;D<g.channels;++D)H[z+D]=(H[z+D]-le[D])/be[D]}if($??this.do_pad){if(this.pad_size)[H,te]=this.pad_image(H,[g.height,g.width,g.channels],this.pad_size);else if(this.size_divisibility){let[le,be]=u([te[1],te[0]],this.size_divisibility);[H,te]=this.pad_image(H,te,{width:le,height:be})}}if(q??this.do_flip_channel_order){if(te[2]!==3)throw new Error("Flipping channel order is only supported for RGB images.");for(let le=0;le<H.length;le+=3){let be=H[le];H[le]=H[le+2],H[le+2]=be}}let re=new o.Tensor("float32",H,te).permute(2,0,1);return{original_size:[J,O],reshaped_input_size:Q,pixel_values:re}}async _call(g,...E){Array.isArray(g)||(g=[g]);let $=await Promise.all(g.map(G=>this.preprocess(G)));return{pixel_values:(0,o.stack)($.map(G=>G.pixel_values),0),original_sizes:$.map(G=>G.original_size),reshaped_input_sizes:$.map(G=>G.reshaped_input_size)}}static async from_pretrained(g,E={}){let $=await(0,l.getModelJSON)(g,c.IMAGE_PROCESSOR_NAME,!0,E);return new this($)}}},"./src/base/processing_utils.js":(e,r,t)=>{t.r(r),t.d(r,{Processor:()=>a});var s=t("./src/utils/constants.js"),o=t("./src/utils/generic.js"),n=t("./src/utils/hub.js");class a 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,p){super(),this.config=l,this.components=c,this.chat_template=p}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 p of[this.image_processor,this.feature_extractor,this.tokenizer])if(p)return p(l,...c);throw new Error("No image processor, feature extractor, or tokenizer found.")}static async from_pretrained(l,c={}){let[p,u,d]=await Promise.all([this.uses_processor_config?(0,n.getModelJSON)(l,s.PROCESSOR_NAME,!0,c):{},Promise.all(this.classes.filter(h=>h in this).map(async h=>{let f=await this[h].from_pretrained(l,c);return[h.replace(/_class$/,""),f]})).then(Object.fromEntries),this.uses_chat_template_file?(0,n.getModelText)(l,s.CHAT_TEMPLATE_NAME,!0,c):null]);return new this(p,u,d)}}},"./src/configs.js":(e,r,t)=>{t.r(r),t.d(r,{AutoConfig:()=>p,PretrainedConfig:()=>c,getCacheShapes:()=>i});var s=t("./src/utils/core.js"),o=t("./src/utils/hub.js");async function n(u,d){return await(0,o.getModelJSON)(u,"config.json",!0,d)}function a(u){let d={},h={};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":h=a(u.text_config);break;case"moondream1":h=a(u.phi_config);break;case"musicgen":h=a(u.decoder);break;case"multi_modality":h=a(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"arcee":case"lfm2":case"smollm3":case"olmo":case"olmo2":case"mobilellm":case"granite":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"gemma3_text":case"gemma3n_text":case"glm":case"helium":case"ernie4_5":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 v=a(u.decoder),F="num_decoder_layers"in v,x=(0,s.pick)(u,["model_type","is_encoder_decoder"]);return F?(x.num_decoder_layers=v.num_decoder_layers,x.num_decoder_heads=v.num_decoder_heads,x.decoder_hidden_size=v.decoder_hidden_size,x.num_encoder_layers=v.num_encoder_layers,x.num_encoder_heads=v.num_encoder_heads,x.encoder_hidden_size=v.encoder_hidden_size):(x.num_layers=v.num_layers,x.num_heads=v.num_heads,x.hidden_size=v.hidden_size),x}let f={...h,...(0,s.pick)(u,["model_type","multi_query","is_encoder_decoder"])};for(let v in d)f[v]=u[d[v]];return f}function i(u,d){if(u.model_type==="lfm2"){let h=d?.prefix??"past_key_values",f=h==="present"?"present":"past",v={},{layer_types:F,num_attention_heads:x,num_key_value_heads:w,hidden_size:C,conv_L_cache:y}=u,P=C/x,I=d?.batch_size??1;for(let g=0;g<F.length;++g)if(F[g]==="full_attention")for(let E of["key","value"])v[`${h}.${g}.${E}`]=[I,w,0,P];else if(F[g]==="conv")v[`${f}_conv.${g}`]=[I,C,y];else throw new Error(`Unsupported layer type: ${F[g]}`);return v}return l(u,d)}function l(u,{prefix:d="past_key_values",batch_size:h=1}={}){let f={},v=u.normalized_config;if(v.is_encoder_decoder&&"num_encoder_heads"in v&&"num_decoder_heads"in v){let F=v.encoder_dim_kv??v.encoder_hidden_size/v.num_encoder_heads,x=v.decoder_dim_kv??v.decoder_hidden_size/v.num_decoder_heads,w=[h,v.num_encoder_heads,0,F],C=[h,v.num_decoder_heads,0,x];for(let y=0;y<v.num_decoder_layers;++y)f[`${d}.${y}.encoder.key`]=w,f[`${d}.${y}.encoder.value`]=w,f[`${d}.${y}.decoder.key`]=C,f[`${d}.${y}.decoder.value`]=C}else{let F=v.num_heads,x=v.num_layers,w=v.dim_kv??v.hidden_size/(v.num_attention_heads??F);if(v.model_type==="falcon"){let C=[h*F,0,w];for(let y=0;y<x;++y)f[`${d}.${y}.key`]=C,f[`${d}.${y}.value`]=C}else if(v.multi_query){let C=[h*F,0,2*w];for(let y=0;y<x;++y)f[`${d}.${y}.key_value`]=C}else if(v.model_type==="bloom"){let C=[h*F,w,0],y=[h*F,0,w];for(let P=0;P<x;++P)f[`${d}.${P}.key`]=C,f[`${d}.${P}.value`]=y}else if(v.model_type==="openelm")for(let C=0;C<x;++C){let y=[h,F[C],0,w];f[`${d}.${C}.key`]=y,f[`${d}.${C}.value`]=y}else{let C=[h,F,0,w];for(let y=0;y<x;++y)f[`${d}.${y}.key`]=C,f[`${d}.${y}.value`]=C}}return f}class c{model_type=null;is_encoder_decoder=!1;max_position_embeddings;"transformers.js_config";constructor(d){Object.assign(this,d),this.normalized_config=a(this)}static async from_pretrained(d,{progress_callback:h=null,config:f=null,cache_dir:v=null,local_files_only:F=!1,revision:x="main"}={}){f&&!(f instanceof c)&&(f=new c(f));let w=f??await n(d,{progress_callback:h,config:f,cache_dir:v,local_files_only:F,revision:x});return new this(w)}}class p{static async from_pretrained(...d){return c.from_pretrained(...d)}}},"./src/env.js":(e,r,t)=>{t.r(r),t.d(r,{apis:()=>w,env:()=>E});var s=t("?db59"),o=t("?383f"),n=t("?fa4b");let a="3.7.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,p=typeof navigator<"u"&&"gpu"in navigator,u=typeof navigator<"u"&&"ml"in navigator,d=typeof process<"u",h=d&&process?.release?.name==="node",f=!$(s),v=!$(o),F=typeof globalThis.Deno<"u",x=typeof globalThis.Bun<"u",w=Object.freeze({IS_BROWSER_ENV:i,IS_WEBWORKER_ENV:l,IS_WEB_CACHE_AVAILABLE:c,IS_WEBGPU_AVAILABLE:p,IS_WEBNN_AVAILABLE:u,IS_PROCESS_AVAILABLE:d,IS_NODE_ENV:h,IS_FS_AVAILABLE:f,IS_PATH_AVAILABLE:v}),C=f&&v,y="./";if(C){let L=Object(import.meta).url;L?y=o.dirname(o.dirname(n.fileURLToPath(L))):typeof __dirname<"u"&&(y=o.dirname(__dirname))}let P=C?o.join(y,"/.cache/"):null,I="/models/",g=C?o.join(y,I):I,E={version:a,backends:{onnx:{}},allowRemoteModels:!0,remoteHost:"https://huggingface.co/",remotePathTemplate:"{model}/resolve/{revision}/",allowLocalModels:!(i||l),localModelPath:g,useFS:f,useBrowserCache:c&&!F,useFSCache:f,cacheDir:P,useCustomCache:!1,customCache:null};function $(L){return Object.keys(L).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(a){Object.assign(this,(0,s.pick)(a,Object.getOwnPropertyNames(this)))}}},"./src/generation/logits_process.js":(e,r,t)=>{t.r(r),t.d(r,{ClassifierFreeGuidanceLogitsProcessor:()=>w,ForcedBOSTokenLogitsProcessor:()=>c,ForcedEOSTokenLogitsProcessor:()=>p,LogitsProcessor:()=>a,LogitsProcessorList:()=>l,LogitsWarper:()=>i,MinLengthLogitsProcessor:()=>v,MinNewTokensLengthLogitsProcessor:()=>F,NoBadWordsLogitsProcessor:()=>x,NoRepeatNGramLogitsProcessor:()=>h,RepetitionPenaltyLogitsProcessor:()=>f,SuppressTokensAtBeginLogitsProcessor:()=>u,TemperatureLogitsWarper:()=>C,TopKLogitsWarper:()=>P,TopPLogitsWarper:()=>y,WhisperTimeStampLogitsProcessor:()=>d});var s=t("./src/utils/generic.js"),o=t("./src/utils/tensor.js"),n=t("./src/utils/maths.js");class a extends s.Callable{_call(g,E){throw Error("`_call` should be implemented in a subclass")}}class i extends s.Callable{_call(g,E){throw Error("`_call` should be implemented in a subclass")}}class l extends s.Callable{constructor(){super(),this.processors=[]}push(g){this.processors.push(g)}extend(g){this.processors.push(...g)}_call(g,E){let $=E;for(let L of this.processors)$=L(g,$);return $}[Symbol.iterator](){return this.processors.values()}}class c extends a{constructor(g){super(),this.bos_token_id=g}_call(g,E){for(let $=0;$<g.length;++$)if(g[$].length===1){let L=E[$].data;L.fill(-1/0),L[this.bos_token_id]=0}return E}}class p extends a{constructor(g,E){super(),this.max_length=g,this.eos_token_id=Array.isArray(E)?E:[E]}_call(g,E){for(let $=0;$<g.length;++$)if(g[$].length===this.max_length-1){let L=E[$].data;L.fill(-1/0);for(let G of this.eos_token_id)L[G]=0}return E}}class u extends a{constructor(g,E){super(),this.begin_suppress_tokens=g,this.begin_index=E}_call(g,E){for(let $=0;$<g.length;++$)if(g[$].length===this.begin_index){let L=E[$].data;for(let G of this.begin_suppress_tokens)L[G]=-1/0}return E}}class d extends a{constructor(g,E){super(),this.eos_token_id=Array.isArray(g.eos_token_id)?g.eos_token_id[0]:g.eos_token_id,this.no_timestamps_token_id=g.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=g.max_initial_timestamp_index}_call(g,E){for(let $=0;$<g.length;++$){let L=E[$].data;if(L[this.no_timestamps_token_id]=-1/0,g[$].length===this.begin_index-1){L.fill(-1/0),L[this.timestamp_begin]=0;continue}let G=g[$].slice(this.begin_index),q=G.length>=1&&G[G.length-1]>=this.timestamp_begin,O=G.length<2||G[G.length-2]>=this.timestamp_begin;if(q&&(O?L.subarray(this.timestamp_begin).fill(-1/0):L.subarray(0,this.eos_token_id).fill(-1/0)),g[$].length===this.begin_index&&this.max_initial_timestamp_index!==null){let te=this.timestamp_begin+this.max_initial_timestamp_index;L.subarray(te+1).fill(-1/0)}let J=(0,n.log_softmax)(L),Q=Math.log(J.subarray(this.timestamp_begin).map(Math.exp).reduce((te,re)=>te+re)),H=(0,n.max)(J.subarray(0,this.timestamp_begin))[0];Q>H&&L.subarray(0,this.timestamp_begin).fill(-1/0)}return E}}class h extends a{constructor(g){super(),this.no_repeat_ngram_size=g}getNgrams(g){let E=g.length,$=[];for(let G=0;G<E+1-this.no_repeat_ngram_size;++G){let q=[];for(let O=0;O<this.no_repeat_ngram_size;++O)q.push(g[G+O]);$.push(q.map(Number))}let L=new Map;for(let G of $){let q=G.slice(0,G.length-1),O=JSON.stringify(q),J=L.get(O)??[];J.push(G[G.length-1]),L.set(O,J)}return L}getGeneratedNgrams(g,E){let $=E.slice(E.length+1-this.no_repeat_ngram_size,E.length);return g.get(JSON.stringify($.map(Number)))??[]}calcBannedNgramTokens(g){let E=[];if(g.length+1<this.no_repeat_ngram_size)return E;{let $=this.getNgrams(g);return this.getGeneratedNgrams($,g)}}_call(g,E){for(let $=0;$<g.length;++$){let L=E[$].data,G=this.calcBannedNgramTokens(g[$]);for(let q of G)L[q]=-1/0}return E}}class f extends a{constructor(g){super(),this.penalty=g}_call(g,E){for(let $=0;$<g.length;++$){let L=E[$].data;for(let G of new Set(g[$])){let q=Number(G);L[q]<0?L[q]*=this.penalty:L[q]/=this.penalty}}return E}}class v extends a{constructor(g,E){super(),this.min_length=g,this.eos_token_id=Array.isArray(E)?E:[E]}_call(g,E){for(let $=0;$<g.length;++$)if(g[$].length<this.min_length){let L=E[$].data;for(let G of this.eos_token_id)L[G]=-1/0}return E}}class F extends a{constructor(g,E,$){super(),this.prompt_length_to_skip=g,this.min_new_tokens=E,this.eos_token_id=Array.isArray($)?$:[$]}_call(g,E){for(let $=0;$<g.length;++$)if(g[$].length-this.prompt_length_to_skip<this.min_new_tokens){let G=E[$].data;for(let q of this.eos_token_id)G[q]=-1/0}return E}}class x extends a{constructor(g,E){super(),this.bad_words_ids=g,this.eos_token_id=Array.isArray(E)?E:[E]}_call(g,E){for(let $=0;$<g.length;++$){let L=E[$].data,G=g[$];for(let q of this.bad_words_ids){if(G.length<q.length-1)continue;let O=!0;for(let J=1;J<=q.length-1;++J)if(q.at(-J-1)!=G.at(-J)){O=!1;break}O&&(L[q.at(-1)]=-1/0)}}return E}}class w extends a{constructor(g){if(super(),g<=1)throw new Error(`Require guidance scale >1 to use the classifier free guidance processor, got guidance scale ${g}.`);this.guidance_scale=g}_call(g,E){if(E.dims[0]!==2*g.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 ${g.length} for the input ids.`);let $=g.length,L=E.slice([0,$],null),G=E.slice([$,E.dims[0]],null);for(let q=0;q<G.data.length;++q)G.data[q]+=(L.data[q]-G.data[q])*this.guidance_scale;return G}}class C extends i{constructor(g){if(super(),typeof g!="number"||g<=0){let E=`\`temperature\` (=${g}) must be a strictly positive float, otherwise your next token scores will be invalid.`;g===0&&(E+=" If you're looking for greedy decoding strategies, set `do_sample=false`.")}this.temperature=g}_call(g,E){let $=E.data;for(let L=0;L<$.length;++L)$[L]/=this.temperature;return E}}class y extends i{constructor(g,{filter_value:E=-1/0,min_tokens_to_keep:$=1}={}){if(super(),g<0||g>1)throw new Error(`\`top_p\` must be a float > 0 and < 1, but is ${g}`);if(!Number.isInteger($)||$<1)throw new Error(`\`min_tokens_to_keep\` must be a positive integer, but is ${$}`);this.top_p=g,this.filter_value=E,this.min_tokens_to_keep=$}}class P extends i{constructor(g,{filter_value:E=-1/0,min_tokens_to_keep:$=1}={}){if(super(),!Number.isInteger(g)||g<0)throw new Error(`\`top_k\` must be a positive integer, but is ${g}`);this.top_k=Math.max(g,$),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"),n=t("./src/utils/maths.js"),a=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,h){let f=d.dims.at(-1),v=d.data;if(h===-1)v=v.slice(-f);else{let F=h*f;v=v.slice(F,F+f)}return v}randomSelect(d){let h=0;for(let v=0;v<d.length;++v)h+=d[v];let f=Math.random()*h;for(let v=0;v<d.length;++v)if(f-=d[v],f<=0)return v;return 0}static getSampler(d){if(d.do_sample)return new c(d);if(d.num_beams>1)return new p(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 h=(0,n.max)(d.data)[1];return[[BigInt(h),0]]}}class c extends i{async sample(d){let h=d.dims.at(-1);this.generation_config.top_k>0&&(h=Math.min(this.generation_config.top_k,h));let[f,v]=await(0,o.topk)(d,h),F=(0,n.softmax)(f.data);return Array.from({length:this.generation_config.num_beams},()=>{let x=this.randomSelect(F);return[v.data[x],Math.log(F[x])]})}}class p extends i{async sample(d){let h=d.dims.at(-1);this.generation_config.top_k>0&&(h=Math.min(this.generation_config.top_k,h));let[f,v]=await(0,o.topk)(d,h),F=(0,n.softmax)(f.data);return Array.from({length:this.generation_config.num_beams},(x,w)=>[v.data[w],Math.log(F[w])])}}},"./src/generation/stopping_criteria.js":(e,r,t)=>{t.r(r),t.d(r,{EosTokenCriteria:()=>i,InterruptableStoppingCriteria:()=>l,MaxLengthCriteria:()=>a,StoppingCriteria:()=>o,StoppingCriteriaList:()=>n});var s=t("./src/utils/generic.js");class o extends s.Callable{_call(p,u){throw Error("StoppingCriteria needs to be subclassed")}}class n extends s.Callable{constructor(){super(),this.criteria=[]}push(p){this.criteria.push(p)}extend(p){p instanceof n?p=p.criteria:p instanceof o&&(p=[p]),this.criteria.push(...p)}_call(p,u){let d=new Array(p.length).fill(!1);for(let h of this.criteria){let f=h(p,u);for(let v=0;v<d.length;++v)d[v]||=f[v]}return d}[Symbol.iterator](){return this.criteria.values()}}class a extends o{constructor(p,u=null){super(),this.max_length=p,this.max_position_embeddings=u}_call(p){return p.map(u=>u.length>=this.max_length)}}class i extends o{constructor(p){super(),Array.isArray(p)||(p=[p]),this.eos_token_id=p}_call(p,u){return p.map(d=>{let h=d.at(-1);return this.eos_token_id.some(f=>h==f)})}}class l extends o{constructor(){super(),this.interrupted=!1}interrupt(){this.interrupted=!0}reset(){this.interrupted=!1}_call(p,u){return new Array(p.length).fill(this.interrupted)}}},"./src/generation/streamers.js":(e,r,t)=>{t.r(r),t.d(r,{BaseStreamer:()=>a,TextStreamer:()=>l,WhisperTextStreamer:()=>c});var s=t("./src/utils/core.js"),o=t("./src/tokenizers.js"),n=t("./src/env.js");class a{put(u){throw Error("Not implemented")}end(){throw Error("Not implemented")}}let i=n.apis.IS_PROCESS_AVAILABLE?p=>process.stdout.write(p):p=>console.log(p);class l extends a{constructor(u,{skip_prompt:d=!1,callback_function:h=null,token_callback_function:f=null,skip_special_tokens:v=!0,decode_kwargs:F={},...x}={}){super(),this.tokenizer=u,this.skip_prompt=d,this.callback_function=h??i,this.token_callback_function=f,this.decode_kwargs={skip_special_tokens:v,...F,...x},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 h=u[0];this.token_callback_function?.(h),this.token_cache=(0,s.mergeArrays)(this.token_cache,h);let f=this.tokenizer.decode(this.token_cache,this.decode_kwargs),v;d||f.endsWith(`
2837
2837
  `)?(v=f.slice(this.print_len),this.token_cache=[],this.print_len=0):f.length>0&&(0,o.is_chinese_char)(f.charCodeAt(f.length-1))?(v=f.slice(this.print_len),this.print_len+=v.length):(v=f.slice(this.print_len,f.lastIndexOf(" ")+1),this.print_len+=v.length),this.on_finalized_text(v,!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&&n.apis.IS_PROCESS_AVAILABLE&&this.callback_function?.(`
2838
- `)}}class c extends l{constructor(u,{skip_prompt:d=!1,callback_function:h=null,token_callback_function:f=null,on_chunk_start:v=null,on_chunk_end:F=null,on_finalize:x=null,time_precision:w=.02,skip_special_tokens:C=!0,decode_kwargs:y={}}={}){super(u,{skip_prompt:d,skip_special_tokens:C,callback_function:h,token_callback_function:f,decode_kwargs:y}),this.timestamp_begin=u.timestamp_begin,this.on_chunk_start=v,this.on_chunk_end=F,this.on_finalize=x,this.time_precision=w,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 h=Number(d[0])-this.timestamp_begin;if(h>=0){let f=h*this.time_precision;this.waiting_for_timestamp?this.on_chunk_end?.(f):this.on_chunk_start?.(f),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:()=>Da,ASTPreTrainedModel:()=>kn,AlbertForMaskedLM:()=>It,AlbertForQuestionAnswering:()=>We,AlbertForSequenceClassification:()=>Je,AlbertModel:()=>Xe,AlbertPreTrainedModel:()=>He,ArceeForCausalLM:()=>Mt,ArceeModel:()=>nt,ArceePreTrainedModel:()=>Qe,AutoModel:()=>V0,AutoModelForAudioClassification:()=>iT,AutoModelForAudioFrameClassification:()=>cT,AutoModelForAudioTextToText:()=>wT,AutoModelForCTC:()=>aT,AutoModelForCausalLM:()=>Q0,AutoModelForDepthEstimation:()=>_T,AutoModelForDocumentQuestionAnswering:()=>dT,AutoModelForImageClassification:()=>Z0,AutoModelForImageFeatureExtraction:()=>hT,AutoModelForImageMatting:()=>uT,AutoModelForImageSegmentation:()=>eT,AutoModelForImageTextToText:()=>gT,AutoModelForImageToImage:()=>pT,AutoModelForMaskGeneration:()=>nT,AutoModelForMaskedLM:()=>X0,AutoModelForNormalEstimation:()=>mT,AutoModelForObjectDetection:()=>sT,AutoModelForPoseEstimation:()=>fT,AutoModelForQuestionAnswering:()=>J0,AutoModelForSemanticSegmentation:()=>tT,AutoModelForSeq2SeqLM:()=>G0,AutoModelForSequenceClassification:()=>W0,AutoModelForSpeechSeq2Seq:()=>K0,AutoModelForTextToSpectrogram:()=>q0,AutoModelForTextToWaveform:()=>H0,AutoModelForTokenClassification:()=>U0,AutoModelForUniversalSegmentation:()=>rT,AutoModelForVision2Seq:()=>Y0,AutoModelForXVector:()=>lT,AutoModelForZeroShotObjectDetection:()=>oT,BartForConditionalGeneration:()=>hr,BartForSequenceClassification:()=>Gr,BartModel:()=>Qt,BartPretrainedModel:()=>Qr,BaseModelOutput:()=>Se,BeitForImageClassification:()=>Kp,BeitModel:()=>Gp,BeitPreTrainedModel:()=>Ol,BertForMaskedLM:()=>xe,BertForQuestionAnswering:()=>$e,BertForSequenceClassification:()=>de,BertForTokenClassification:()=>Ae,BertModel:()=>pe,BertPreTrainedModel:()=>Pe,BlenderbotForConditionalGeneration:()=>er,BlenderbotModel:()=>cr,BlenderbotPreTrainedModel:()=>tr,BlenderbotSmallForConditionalGeneration:()=>Jo,BlenderbotSmallModel:()=>Ns,BlenderbotSmallPreTrainedModel:()=>Kr,BloomForCausalLM:()=>mp,BloomModel:()=>_p,BloomPreTrainedModel:()=>yl,CLIPModel:()=>en,CLIPPreTrainedModel:()=>ms,CLIPSegForImageSegmentation:()=>wo,CLIPSegModel:()=>Zr,CLIPSegPreTrainedModel:()=>to,CLIPTextModel:()=>Ga,CLIPTextModelWithProjection:()=>On,CLIPVisionModel:()=>Ka,CLIPVisionModelWithProjection:()=>Ln,CamembertForMaskedLM:()=>qe,CamembertForQuestionAnswering:()=>ur,CamembertForSequenceClassification:()=>Ct,CamembertForTokenClassification:()=>St,CamembertModel:()=>dt,CamembertPreTrainedModel:()=>Ze,CausalLMOutput:()=>vo,CausalLMOutputWithPast:()=>MT,ChineseCLIPModel:()=>go,ChineseCLIPPreTrainedModel:()=>Rn,ClapAudioModelWithProjection:()=>Hm,ClapModel:()=>Km,ClapPreTrainedModel:()=>ri,ClapTextModelWithProjection:()=>qm,CodeGenForCausalLM:()=>W,CodeGenModel:()=>B,CodeGenPreTrainedModel:()=>A,CohereForCausalLM:()=>Hu,CohereModel:()=>qu,CoherePreTrainedModel:()=>ml,ConvBertForMaskedLM:()=>ks,ConvBertForQuestionAnswering:()=>k,ConvBertForSequenceClassification:()=>ct,ConvBertForTokenClassification:()=>Cs,ConvBertModel:()=>Es,ConvBertPreTrainedModel:()=>_t,ConvNextForImageClassification:()=>j_,ConvNextModel:()=>R_,ConvNextPreTrainedModel:()=>Xl,ConvNextV2ForImageClassification:()=>V_,ConvNextV2Model:()=>N_,ConvNextV2PreTrainedModel:()=>Jl,DFineForObjectDetection:()=>n_,DFineModel:()=>o_,DFinePreTrainedModel:()=>Nl,DPTForDepthEstimation:()=>x_,DPTModel:()=>M_,DPTPreTrainedModel:()=>ql,DacDecoderModel:()=>Bf,DacDecoderOutput:()=>Df,DacEncoderModel:()=>Lf,DacEncoderOutput:()=>$f,DacModel:()=>Of,DacPreTrainedModel:()=>ci,DebertaForMaskedLM:()=>pr,DebertaForQuestionAnswering:()=>os,DebertaForSequenceClassification:()=>Sr,DebertaForTokenClassification:()=>Gt,DebertaModel:()=>jr,DebertaPreTrainedModel:()=>Rt,DebertaV2ForMaskedLM:()=>yr,DebertaV2ForQuestionAnswering:()=>Vr,DebertaV2ForSequenceClassification:()=>Fs,DebertaV2ForTokenClassification:()=>Is,DebertaV2Model:()=>Ss,DebertaV2PreTrainedModel:()=>Nr,DecisionTransformerModel:()=>hf,DecisionTransformerPreTrainedModel:()=>ff,DeiTForImageClassification:()=>d_,DeiTModel:()=>c_,DeiTPreTrainedModel:()=>Wl,DepthAnythingForDepthEstimation:()=>y_,DepthAnythingPreTrainedModel:()=>v_,DepthProForDepthEstimation:()=>C_,DepthProPreTrainedModel:()=>k_,DetrForObjectDetection:()=>Hp,DetrForSegmentation:()=>Ll,DetrModel:()=>qp,DetrObjectDetectionOutput:()=>Bl,DetrPreTrainedModel:()=>Xa,DetrSegmentationOutput:()=>Qp,Dinov2ForImageClassification:()=>U_,Dinov2Model:()=>W_,Dinov2PreTrainedModel:()=>Yl,Dinov2WithRegistersForImageClassification:()=>K_,Dinov2WithRegistersModel:()=>G_,Dinov2WithRegistersPreTrainedModel:()=>Zl,DistilBertForMaskedLM:()=>_r,DistilBertForQuestionAnswering:()=>lr,DistilBertForSequenceClassification:()=>Fr,DistilBertForTokenClassification:()=>cs,DistilBertModel:()=>Yr,DistilBertPreTrainedModel:()=>Wr,DonutSwinModel:()=>z_,DonutSwinPreTrainedModel:()=>B_,EfficientNetForImageClassification:()=>tf,EfficientNetModel:()=>ef,EfficientNetPreTrainedModel:()=>dc,ElectraForMaskedLM:()=>Y,ElectraForQuestionAnswering:()=>ke,ElectraForSequenceClassification:()=>se,ElectraForTokenClassification:()=>he,ElectraModel:()=>N,ElectraPreTrainedModel:()=>X,Ernie4_5_ForCausalLM:()=>Nm,Ernie4_5_Model:()=>jm,Ernie4_5_PretrainedModel:()=>nc,EsmForMaskedLM:()=>Ur,EsmForSequenceClassification:()=>Le,EsmForTokenClassification:()=>Re,EsmModel:()=>zs,EsmPreTrainedModel:()=>Hr,ExaoneForCausalLM:()=>zu,ExaoneModel:()=>Bu,ExaonePreTrainedModel:()=>cl,FalconForCausalLM:()=>Gm,FalconModel:()=>Um,FalconPreTrainedModel:()=>ic,FastViTForImageClassification:()=>Dp,FastViTModel:()=>$p,FastViTPreTrainedModel:()=>Fl,Florence2ForConditionalGeneration:()=>Ra,Florence2PreTrainedModel:()=>za,GLPNForDepthEstimation:()=>L_,GLPNModel:()=>O_,GLPNPreTrainedModel:()=>Ql,GPT2LMHeadModel:()=>Wn,GPT2Model:()=>Vn,GPT2PreTrainedModel:()=>bo,GPTBigCodeForCausalLM:()=>T,GPTBigCodeModel:()=>_,GPTBigCodePreTrainedModel:()=>ln,GPTJForCausalLM:()=>Hn,GPTJModel:()=>qn,GPTJPreTrainedModel:()=>an,GPTNeoForCausalLM:()=>Mo,GPTNeoModel:()=>Gn,GPTNeoPreTrainedModel:()=>on,GPTNeoXForCausalLM:()=>Kn,GPTNeoXModel:()=>nn,GPTNeoXPreTrainedModel:()=>xo,Gemma2ForCausalLM:()=>Yu,Gemma2Model:()=>Ju,Gemma2PreTrainedModel:()=>hl,Gemma3ForCausalLM:()=>ep,Gemma3Model:()=>Zu,Gemma3PreTrainedModel:()=>gl,Gemma3nForConditionalGeneration:()=>$n,Gemma3nPreTrainedModel:()=>Wa,GemmaForCausalLM:()=>Xu,GemmaModel:()=>Qu,GemmaPreTrainedModel:()=>fl,GlmForCausalLM:()=>Lu,GlmModel:()=>Ou,GlmPreTrainedModel:()=>ll,GraniteForCausalLM:()=>Ku,GraniteModel:()=>Gu,GranitePreTrainedModel:()=>_l,GroundingDinoForObjectDetection:()=>H_,GroundingDinoPreTrainedModel:()=>q_,GroupViTModel:()=>Ap,GroupViTPreTrainedModel:()=>Ip,HeliumForCausalLM:()=>Du,HeliumModel:()=>$u,HeliumPreTrainedModel:()=>il,HieraForImageClassification:()=>p_,HieraModel:()=>u_,HieraPreTrainedModel:()=>Ul,HubertForCTC:()=>Tm,HubertForSequenceClassification:()=>Pm,HubertModel:()=>ym,HubertPreTrainedModel:()=>S0,IJepaForImageClassification:()=>vp,IJepaModel:()=>xp,IJepaPreTrainedModel:()=>kl,Idefics3ForConditionalGeneration:()=>_s,Idefics3PreTrainedModel:()=>ho,ImageMattingOutput:()=>mh,JAISLMHeadModel:()=>Un,JAISModel:()=>sn,JAISPreTrainedModel:()=>rn,JinaCLIPModel:()=>Ha,JinaCLIPPreTrainedModel:()=>ut,JinaCLIPTextModel:()=>jn,JinaCLIPVisionModel:()=>Nn,Lfm2ForCausalLM:()=>br,Lfm2Model:()=>jt,Lfm2PreTrainedModel:()=>At,LiteWhisperForConditionalGeneration:()=>Fn,LlamaForCausalLM:()=>Oe,LlamaModel:()=>ve,LlamaPreTrainedModel:()=>ie,LlavaForConditionalGeneration:()=>fo,LlavaOnevisionForConditionalGeneration:()=>La,LlavaPreTrainedModel:()=>mo,LlavaQwen2ForCausalLM:()=>Va,LongT5ForConditionalGeneration:()=>nr,LongT5Model:()=>Ir,LongT5PreTrainedModel:()=>Zt,M2M100ForConditionalGeneration:()=>om,M2M100Model:()=>sm,M2M100PreTrainedModel:()=>rc,MBartForCausalLM:()=>ar,MBartForConditionalGeneration:()=>Tr,MBartForSequenceClassification:()=>ns,MBartModel:()=>ps,MBartPreTrainedModel:()=>Or,MPNetForMaskedLM:()=>_o,MPNetForQuestionAnswering:()=>S,MPNetForSequenceClassification:()=>Xo,MPNetForTokenClassification:()=>ce,MPNetModel:()=>po,MPNetPreTrainedModel:()=>us,MT5ForConditionalGeneration:()=>$r,MT5Model:()=>Ar,MT5PreTrainedModel:()=>fr,MarianMTModel:()=>rm,MarianModel:()=>tm,MarianPreTrainedModel:()=>tc,MaskFormerForInstanceSegmentation:()=>D_,MaskFormerModel:()=>$_,MaskFormerPreTrainedModel:()=>Hl,MaskedLMOutput:()=>Pr,Metric3DForDepthEstimation:()=>F_,Metric3DPreTrainedModel:()=>S_,Metric3Dv2ForDepthEstimation:()=>A_,Metric3Dv2PreTrainedModel:()=>I_,MgpstrForSceneTextRecognition:()=>xf,MgpstrModelOutput:()=>bf,MgpstrPreTrainedModel:()=>Mf,MimiDecoderModel:()=>Af,MimiDecoderOutput:()=>Sf,MimiEncoderModel:()=>If,MimiEncoderOutput:()=>Cf,MimiModel:()=>Ff,MimiPreTrainedModel:()=>li,MistralForCausalLM:()=>Rm,MistralModel:()=>zm,MistralPreTrainedModel:()=>oc,MobileBertForMaskedLM:()=>Rs,MobileBertForQuestionAnswering:()=>js,MobileBertForSequenceClassification:()=>ds,MobileBertModel:()=>Jt,MobileBertPreTrainedModel:()=>tt,MobileLLMForCausalLM:()=>ju,MobileLLMModel:()=>Ru,MobileLLMPreTrainedModel:()=>dl,MobileNetV1ForImageClassification:()=>sf,MobileNetV1ForSemanticSegmentation:()=>of,MobileNetV1Model:()=>rf,MobileNetV1PreTrainedModel:()=>oi,MobileNetV2ForImageClassification:()=>af,MobileNetV2ForSemanticSegmentation:()=>lf,MobileNetV2Model:()=>nf,MobileNetV2PreTrainedModel:()=>ni,MobileNetV3ForImageClassification:()=>df,MobileNetV3ForSemanticSegmentation:()=>uf,MobileNetV3Model:()=>cf,MobileNetV3PreTrainedModel:()=>ai,MobileNetV4ForImageClassification:()=>_f,MobileNetV4ForSemanticSegmentation:()=>mf,MobileNetV4Model:()=>pf,MobileNetV4PreTrainedModel:()=>ii,MobileViTForImageClassification:()=>zp,MobileViTModel:()=>Bp,MobileViTPreTrainedModel:()=>Il,MobileViTV2ForImageClassification:()=>jp,MobileViTV2Model:()=>Rp,MobileViTV2PreTrainedModel:()=>Al,ModelOutput:()=>fe,ModernBertDecoderForCausalLM:()=>vr,ModernBertDecoderModel:()=>Ot,ModernBertDecoderPreTrainedModel:()=>yt,ModernBertForMaskedLM:()=>rt,ModernBertForSequenceClassification:()=>Ye,ModernBertForTokenClassification:()=>ft,ModernBertModel:()=>lt,ModernBertPreTrainedModel:()=>ot,Moondream1ForConditionalGeneration:()=>Ba,MoonshineForConditionalGeneration:()=>Oa,MoonshineModel:()=>al,MoonshinePreTrainedModel:()=>In,MptForCausalLM:()=>hp,MptModel:()=>fp,MptPreTrainedModel:()=>Tl,MultiModalityCausalLM:()=>wf,MultiModalityPreTrainedModel:()=>gf,MusicgenForCausalLM:()=>$0,MusicgenForConditionalGeneration:()=>pc,MusicgenModel:()=>A0,MusicgenPreTrainedModel:()=>uc,NeoBertForMaskedLM:()=>je,NeoBertForQuestionAnswering:()=>De,NeoBertForSequenceClassification:()=>Ge,NeoBertForTokenClassification:()=>Ve,NeoBertModel:()=>Ee,NeoBertPreTrainedModel:()=>Ue,NomicBertModel:()=>Rr,NomicBertPreTrainedModel:()=>zr,OPTForCausalLM:()=>wp,OPTModel:()=>gp,OPTPreTrainedModel:()=>Pl,Olmo2ForCausalLM:()=>Uu,Olmo2Model:()=>Wu,Olmo2PreTrainedModel:()=>pl,OlmoForCausalLM:()=>Vu,OlmoModel:()=>Nu,OlmoPreTrainedModel:()=>ul,OpenELMForCausalLM:()=>rp,OpenELMModel:()=>tp,OpenELMPreTrainedModel:()=>wl,OwlViTForObjectDetection:()=>Vp,OwlViTModel:()=>Np,OwlViTPreTrainedModel:()=>$l,Owlv2ForObjectDetection:()=>Up,Owlv2Model:()=>Wp,Owlv2PreTrainedModel:()=>Dl,PaliGemmaForConditionalGeneration:()=>Na,PaliGemmaPreTrainedModel:()=>ja,PatchTSMixerForPrediction:()=>Pf,PatchTSMixerModel:()=>Tf,PatchTSMixerPreTrainedModel:()=>mc,PatchTSTForPrediction:()=>yf,PatchTSTModel:()=>vf,PatchTSTPreTrainedModel:()=>_c,Phi3ForCausalLM:()=>pp,Phi3Model:()=>up,Phi3PreTrainedModel:()=>vl,Phi3VForCausalLM:()=>Dn,Phi3VPreTrainedModel:()=>Ua,PhiForCausalLM:()=>dp,PhiModel:()=>cp,PhiPreTrainedModel:()=>xl,PreTrainedModel:()=>V,PretrainedMixin:()=>Nt,PvtForImageClassification:()=>Ep,PvtModel:()=>Pp,PvtPreTrainedModel:()=>Cl,PyAnnoteForAudioFrameClassification:()=>dm,PyAnnoteModel:()=>cm,PyAnnotePreTrainedModel:()=>sc,QuestionAnsweringModelOutput:()=>Lr,Qwen2ForCausalLM:()=>op,Qwen2Model:()=>sp,Qwen2PreTrainedModel:()=>bl,Qwen2VLForConditionalGeneration:()=>lp,Qwen2VLPreTrainedModel:()=>ip,Qwen3ForCausalLM:()=>ap,Qwen3Model:()=>np,Qwen3PreTrainedModel:()=>Ml,RFDetrForObjectDetection:()=>r_,RFDetrModel:()=>t_,RFDetrObjectDetectionOutput:()=>s_,RFDetrPreTrainedModel:()=>jl,RTDetrForObjectDetection:()=>Jp,RTDetrModel:()=>Xp,RTDetrObjectDetectionOutput:()=>Qn,RTDetrPreTrainedModel:()=>zl,RTDetrV2ForObjectDetection:()=>Zp,RTDetrV2Model:()=>Yp,RTDetrV2ObjectDetectionOutput:()=>e_,RTDetrV2PreTrainedModel:()=>Rl,ResNetForImageClassification:()=>m_,ResNetModel:()=>__,ResNetPreTrainedModel:()=>Gl,RoFormerForMaskedLM:()=>Hs,RoFormerForQuestionAnswering:()=>Bs,RoFormerForSequenceClassification:()=>Qs,RoFormerForTokenClassification:()=>Xs,RoFormerModel:()=>Cr,RoFormerPreTrainedModel:()=>Ut,RobertaForMaskedLM:()=>yn,RobertaForQuestionAnswering:()=>Ea,RobertaForSequenceClassification:()=>Ta,RobertaForTokenClassification:()=>Pa,RobertaModel:()=>ya,RobertaPreTrainedModel:()=>Js,SamImageSegmentationOutput:()=>em,SamModel:()=>Z_,SamPreTrainedModel:()=>Y_,SapiensForDepthEstimation:()=>P_,SapiensForNormalEstimation:()=>E_,SapiensForSemanticSegmentation:()=>T_,SapiensPreTrainedModel:()=>Ya,SegformerForImageClassification:()=>Xm,SegformerForSemanticSegmentation:()=>Jm,SegformerModel:()=>I0,SegformerPreTrainedModel:()=>si,Seq2SeqLMOutput:()=>bT,SequenceClassifierOutput:()=>xt,SiglipModel:()=>Bn,SiglipPreTrainedModel:()=>tn,SiglipTextModel:()=>qa,SiglipVisionModel:()=>zn,SmolLM3ForCausalLM:()=>Au,SmolLM3Model:()=>Qa,SmolLM3PreTrainedModel:()=>As,SmolVLMForConditionalGeneration:()=>Zo,SnacDecoderModel:()=>jf,SnacEncoderModel:()=>Rf,SnacModel:()=>zf,SnacPreTrainedModel:()=>di,SpeechT5ForSpeechToText:()=>$m,SpeechT5ForTextToSpeech:()=>Dm,SpeechT5HifiGan:()=>Om,SpeechT5Model:()=>F0,SpeechT5PreTrainedModel:()=>ti,SqueezeBertForMaskedLM:()=>oe,SqueezeBertForQuestionAnswering:()=>Te,SqueezeBertForSequenceClassification:()=>me,SqueezeBertModel:()=>ee,SqueezeBertPreTrainedModel:()=>U,StableLmForCausalLM:()=>Zm,StableLmModel:()=>Ym,StableLmPreTrainedModel:()=>cc,Starcoder2ForCausalLM:()=>Wm,Starcoder2Model:()=>Vm,Starcoder2PreTrainedModel:()=>ac,StyleTextToSpeech2Model:()=>Am,StyleTextToSpeech2PreTrainedModel:()=>Im,Swin2SRForImageSuperResolution:()=>b_,Swin2SRModel:()=>w_,Swin2SRPreTrainedModel:()=>Kl,SwinForImageClassification:()=>h_,SwinForSemanticSegmentation:()=>g_,SwinModel:()=>f_,SwinPreTrainedModel:()=>Ja,T5ForConditionalGeneration:()=>mr,T5Model:()=>Kt,T5PreTrainedModel:()=>bt,TableTransformerForObjectDetection:()=>i_,TableTransformerModel:()=>a_,TableTransformerObjectDetectionOutput:()=>l_,TableTransformerPreTrainedModel:()=>Vl,TokenClassifierOutput:()=>Mr,TrOCRForCausalLM:()=>Bm,TrOCRPreTrainedModel:()=>Lm,UltravoxModel:()=>fc,UltravoxPreTrainedModel:()=>Ef,UniSpeechForCTC:()=>mm,UniSpeechForSequenceClassification:()=>fm,UniSpeechModel:()=>_m,UniSpeechPreTrainedModel:()=>Za,UniSpeechSatForAudioFrameClassification:()=>bm,UniSpeechSatForCTC:()=>gm,UniSpeechSatForSequenceClassification:()=>wm,UniSpeechSatModel:()=>hm,UniSpeechSatPreTrainedModel:()=>Xn,ViTForImageClassification:()=>Mp,ViTMAEModel:()=>Cp,ViTMAEPreTrainedModel:()=>kp,ViTMSNForImageClassification:()=>Fp,ViTMSNModel:()=>Sp,ViTMSNPreTrainedModel:()=>Sl,ViTModel:()=>bp,ViTPreTrainedModel:()=>El,VisionEncoderDecoderModel:()=>An,VitMatteForImageMatting:()=>Lp,VitMattePreTrainedModel:()=>Op,VitPoseForPoseEstimation:()=>Tp,VitPosePreTrainedModel:()=>yp,VitsModel:()=>lc,VitsModelOutput:()=>fh,VitsPreTrainedModel:()=>Qm,VoxtralForConditionalGeneration:()=>kf,Wav2Vec2BertForCTC:()=>xm,Wav2Vec2BertForSequenceClassification:()=>vm,Wav2Vec2BertModel:()=>Mm,Wav2Vec2BertPreTrainedModel:()=>ei,Wav2Vec2ForAudioFrameClassification:()=>lm,Wav2Vec2ForCTC:()=>am,Wav2Vec2ForSequenceClassification:()=>im,Wav2Vec2Model:()=>nm,Wav2Vec2PreTrainedModel:()=>ro,WavLMForAudioFrameClassification:()=>Fm,WavLMForCTC:()=>km,WavLMForSequenceClassification:()=>Cm,WavLMForXVector:()=>Sm,WavLMModel:()=>Em,WavLMPreTrainedModel:()=>cn,WeSpeakerResNetModel:()=>pm,WeSpeakerResNetPreTrainedModel:()=>um,WhisperForConditionalGeneration:()=>Sn,WhisperModel:()=>eo,WhisperPreTrainedModel:()=>Yo,XLMForQuestionAnswering:()=>Ia,XLMForSequenceClassification:()=>Sa,XLMForTokenClassification:()=>Fa,XLMModel:()=>ka,XLMPreTrainedModel:()=>Ys,XLMRobertaForMaskedLM:()=>$a,XLMRobertaForQuestionAnswering:()=>En,XLMRobertaForSequenceClassification:()=>Tn,XLMRobertaForTokenClassification:()=>Pn,XLMRobertaModel:()=>Aa,XLMRobertaPreTrainedModel:()=>Zs,XLMWithLMHeadModel:()=>Ca,XVectorOutput:()=>_h,YolosForObjectDetection:()=>X_,YolosModel:()=>Q_,YolosObjectDetectionOutput:()=>J_,YolosPreTrainedModel:()=>ec});var s=t("./src/configs.js"),o=t("./src/backends/onnx.js"),n=t("./src/utils/dtypes.js"),a=t("./src/utils/generic.js"),i=t("./src/utils/core.js"),l=t("./src/utils/hub.js"),c=t("./src/utils/constants.js"),p=t("./src/generation/logits_process.js"),u=t("./src/generation/configuration_utils.js"),d=t("./src/utils/tensor.js"),h=t("./src/utils/image.js"),f=t("./src/utils/maths.js"),v=t("./src/generation/stopping_criteria.js"),F=t("./src/generation/logits_sampler.js"),x=t("./src/env.js"),w=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},P=new Map,I=new Map,g=new Map;async function E(b,M,j){let ae=j.config?.["transformers.js_config"]??{},ue=j.device??ae.device;ue&&typeof ue!="string"&&(ue.hasOwnProperty(M)?ue=ue[M]:(console.warn(`device not specified for "${M}". Using the default device.`),ue=null));let ge=ue??(x.apis.IS_NODE_ENV?"cpu":"wasm"),Fe=(0,o.deviceToExecutionProviders)(ge),Be=ae.device_config??{};Be.hasOwnProperty(ge)&&(ae={...ae,...Be[ge]});let Ne=j.dtype??ae.dtype;if(typeof Ne!="string"&&(Ne&&Ne.hasOwnProperty(M)?Ne=Ne[M]:(Ne=n.DEFAULT_DEVICE_DTYPE_MAPPING[ge]??n.DATA_TYPES.fp32,console.warn(`dtype not specified for "${M}". Using the default dtype (${Ne}) for this device (${ge}).`))),Ne===n.DATA_TYPES.auto){let Ft=ae.dtype;typeof Ft!="string"&&(Ft=Ft?.[M]),Ft&&Ft!==n.DATA_TYPES.auto&&n.DATA_TYPES.hasOwnProperty(Ft)?Ne=Ft:Ne=n.DEFAULT_DEVICE_DTYPE_MAPPING[ge]??n.DATA_TYPES.fp32}let st=Ne;if(n.DEFAULT_DTYPE_SUFFIX_MAPPING.hasOwnProperty(st)){if(st===n.DATA_TYPES.fp16&&ge==="webgpu"&&!await(0,n.isWebGpuFp16Supported)())throw new Error(`The device (${ge}) does not support fp16.`)}else throw new Error(`Invalid dtype: ${st}. Should be one of: ${Object.keys(n.DATA_TYPES).join(", ")}`);let vt=ae.kv_cache_dtype,Pt=vt?typeof vt=="string"?vt:vt[st]??"float32":void 0;if(Pt&&!["float32","float16"].includes(Pt))throw new Error(`Invalid kv_cache_dtype: ${Pt}. Should be one of: float32, float16`);let kt={dtype:st,kv_cache_dtype:Pt,device:ge},ht=n.DEFAULT_DTYPE_SUFFIX_MAPPING[st],Vt=`${M}${ht}.onnx`,gt=`${j.subfolder??""}/${Vt}`,mt={...j.session_options};mt.executionProviders??=Fe;let Dt=ae.free_dimension_overrides;Dt?mt.freeDimensionOverrides??=Dt:ge.startsWith("webnn")&&!mt.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"]["${ge}"]. When 'free_dimension_overrides' is not set, you may experience significant performance degradation.`);let qt=x.apis.IS_NODE_ENV&&x.env.useFSCache,rr=(0,l.getModelFile)(b,gt,!0,j,qt),gr=j.use_external_data_format??ae.use_external_data_format,wr=[];if(gr){let Ft;typeof gr=="object"?gr.hasOwnProperty(Vt)?Ft=gr[Vt]:gr.hasOwnProperty(M)?Ft=gr[M]:Ft=!1:Ft=gr;let sr=+Ft;if(sr>l.MAX_EXTERNAL_DATA_CHUNKS)throw new Error(`The number of external data chunks (${sr}) exceeds the maximum allowed value (${l.MAX_EXTERNAL_DATA_CHUNKS}).`);for(let Er=0;Er<sr;++Er){let yo=`${Vt}_data${Er===0?"":"_"+Er}`,Xr=`${j.subfolder??""}/${yo}`;wr.push(new Promise(async(fs,un)=>{let pn=await(0,l.getModelFile)(b,Xr,!0,j,qt);fs(pn instanceof Uint8Array?{path:yo,data:pn}:yo)}))}}else mt.externalData!==void 0&&(wr=mt.externalData.map(async Ft=>{if(typeof Ft.data=="string"){let sr=await(0,l.getModelFile)(b,Ft.data,!0,j);return{...Ft,data:sr}}return Ft}));if(wr.length>0){let Ft=await Promise.all(wr);x.apis.IS_NODE_ENV||(mt.externalData=Ft)}if(ge==="webgpu"){let Ft=(0,s.getCacheShapes)(j.config,{prefix:"present"});if(Object.keys(Ft).length>0&&!(0,o.isONNXProxy)()){let sr={};for(let Er in Ft)sr[Er]="gpu-buffer";mt.preferredOutputLocation=sr}}return{buffer_or_path:await rr,session_options:mt,session_config:kt}}async function $(b,M,j){return Object.fromEntries(await Promise.all(Object.keys(M).map(async ae=>{let{buffer_or_path:ue,session_options:ge,session_config:Fe}=await E(b,M[ae],j),Be=await(0,o.createInferenceSession)(ue,ge,Fe);return[ae,Be]})))}async function L(b,M,j){return Object.fromEntries(await Promise.all(Object.keys(M).map(async ae=>{let ue=await(0,l.getModelJSON)(b,M[ae],!1,j);return[ae,ue]})))}function G(b,M){let j=Object.create(null),ae=[];for(let Fe of b.inputNames){let Be=M[Fe];if(!(Be instanceof d.Tensor)){ae.push(Fe);continue}j[Fe]=(0,o.isONNXProxy)()?Be.clone():Be}if(ae.length>0)throw new Error(`An error occurred during model execution: "Missing the following inputs: ${ae.join(", ")}.`);let ue=Object.keys(M).length,ge=b.inputNames.length;if(ue>ge){let Fe=Object.keys(M).filter(Be=>!b.inputNames.includes(Be));console.warn(`WARNING: Too many inputs were provided (${ue} > ${ge}). The following inputs will be ignored: "${Fe.join(", ")}".`)}return j}let q=Promise.resolve();async function O(b,M){let j=G(b,M);try{let ae=Object.fromEntries(Object.entries(j).map(([Fe,Be])=>[Fe,Be.ort_tensor])),ue=()=>b.run(ae),ge=await(x.apis.IS_BROWSER_ENV||x.apis.IS_WEBWORKER_ENV?q=q.then(ue):ue());return J(ge)}catch(ae){let ue=Object.fromEntries(Object.entries(j).map(([ge,Fe])=>{let Be={type:Fe.type,dims:Fe.dims,location:Fe.location};return Be.location!=="gpu-buffer"&&(Be.data=Fe.data),[ge,Be]}));throw console.error(`An error occurred during model execution: "${ae}".`),console.error("Inputs given to model:",ue),ae}}function J(b){for(let M in b)(0,o.isONNXTensor)(b[M])?b[M]=new d.Tensor(b[M]):typeof b[M]=="object"&&J(b[M]);return b}function Q(b){if(b instanceof d.Tensor)return b;if(b.length===0)throw Error("items must be non-empty");if(Array.isArray(b[0])){if(b.some(M=>M.length!==b[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(b.flat().map(M=>BigInt(M))),[b.length,b[0].length])}else return new d.Tensor("int64",BigInt64Array.from(b.map(M=>BigInt(M))),[1,b.length])}function H(b){return new d.Tensor("bool",[b],[1])}async function te(b,M){let{encoder_outputs:j,input_ids:ae,decoder_input_ids:ue,...ge}=M;if(!j){let Be=(0,i.pick)(M,b.sessions.model.inputNames);j=(await re(b,Be)).last_hidden_state}return ge.input_ids=ue,ge.encoder_hidden_states=j,b.sessions.decoder_model_merged.inputNames.includes("encoder_attention_mask")&&(ge.encoder_attention_mask=M.attention_mask),await be(b,ge,!0)}async function re(b,M){let j=b.sessions.model,ae=(0,i.pick)(M,j.inputNames);if(j.inputNames.includes("inputs_embeds")&&!ae.inputs_embeds){if(!M.input_ids)throw new Error("Both `input_ids` and `inputs_embeds` are missing in the model inputs.");ae.inputs_embeds=await b.encode_text({input_ids:M.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 ue=ae.pixel_values.dims;ae.pixel_mask=(0,d.ones)([ue[0],ue[2],ue[3]])}return await O(j,ae)}async function le(b,M){let j=await b.encode(M);return await b.decode(j)}async function be(b,M,j=!1){let ae=b.sessions[j?"decoder_model_merged":"model"],{past_key_values:ue,...ge}=M;if(ae.inputNames.includes("use_cache_branch")&&(ge.use_cache_branch=H(!!ue)),ae.inputNames.includes("position_ids")&&ge.attention_mask&&!ge.position_ids){let Be=["paligemma","gemma3_text","gemma3"].includes(b.config.model_type)?1:0;ge.position_ids=Ie(ge,ue,Be)}b.addPastKeyValues(ge,ue);let Fe=(0,i.pick)(ge,ae.inputNames);return await O(ae,Fe)}function z({modality_token_id:b,inputs_embeds:M,modality_features:j,input_ids:ae,attention_mask:ue}){let ge=ae.tolist().map(st=>st.reduce((vt,Pt,kt)=>(Pt==b&&vt.push(kt),vt),[])),Fe=ge.reduce((st,vt)=>st+vt.length,0),Be=j.dims[0];if(Fe!==Be)throw new Error(`Number of tokens and features do not match: tokens: ${Fe}, features ${Be}`);let Ne=0;for(let st=0;st<ge.length;++st){let vt=ge[st],Pt=M[st];for(let kt=0;kt<vt.length;++kt)Pt[vt[kt]].data.set(j[Ne++].data)}return{inputs_embeds:M,attention_mask:ue}}function D({image_token_id:b,inputs_embeds:M,image_features:j,input_ids:ae,attention_mask:ue}){return z({modality_token_id:b,inputs_embeds:M,modality_features:j,input_ids:ae,attention_mask:ue})}function K({audio_token_id:b,inputs_embeds:M,audio_features:j,input_ids:ae,attention_mask:ue}){return z({modality_token_id:b,inputs_embeds:M,modality_features:j,input_ids:ae,attention_mask:ue})}async function R(b,{encode_function:M,merge_function:j,modality_input_name:ae,modality_output_name:ue,input_ids:ge=null,attention_mask:Fe=null,position_ids:Be=null,inputs_embeds:Ne=null,past_key_values:st=null,generation_config:vt=null,logits_processor:Pt=null,...kt}){let ht=kt[ae];if(!Ne){if(Ne=await b.encode_text({input_ids:ge,...kt}),ht&&ge.dims[1]!==1){let gt=await M({[ae]:ht,...kt});({inputs_embeds:Ne,attention_mask:Fe}=j({[ue]:gt,inputs_embeds:Ne,input_ids:ge,attention_mask:Fe}))}else if(st&&ht&&ge.dims[1]===1){let gt=ge.dims[1],mt=Object.values(st)[0].dims.at(-2);Fe=(0,d.cat)([(0,d.ones)([ge.dims[0],mt]),Fe.slice(null,[Fe.dims[1]-gt,Fe.dims[1]])],1)}}if(!Be&&b.config.model_type==="qwen2_vl"){let{image_grid_thw:gt,video_grid_thw:mt}=kt;[Be]=b.get_rope_index(ge,gt,mt,Fe)}return await be(b,{inputs_embeds:Ne,past_key_values:st,attention_mask:Fe,position_ids:Be,generation_config:vt,logits_processor:Pt},!0)}async function ne(b,M){return await R(b,{...M,modality_input_name:"audio_values",modality_output_name:"audio_features",encode_function:b.encode_audio.bind(b),merge_function:b._merge_input_ids_with_audio_features.bind(b)})}async function Ce(b,M){return await R(b,{...M,modality_input_name:"pixel_values",modality_output_name:"image_features",encode_function:b.encode_image.bind(b),merge_function:b._merge_input_ids_with_image_features.bind(b)})}function Me(b,M=0){let[j,ae]=b.dims,ue=b.data,ge=new BigInt64Array(ue.length);for(let Fe=0;Fe<j;++Fe){let Be=Fe*ae,Ne=BigInt(M);for(let st=0;st<ae;++st){let vt=Be+st;ue[vt]===0n?ge[vt]=BigInt(1):(ge[vt]=Ne,Ne+=ue[vt])}}return{data:ge,dims:b.dims}}function Ie(b,M=null,j=0){let{input_ids:ae,inputs_embeds:ue,attention_mask:ge}=b,{data:Fe,dims:Be}=Me(ge,j),Ne=new d.Tensor("int64",Fe,Be);if(M){let st=-(ae??ue).dims.at(1);Ne=Ne.slice(null,[st,null])}return Ne}function Ke(b,M,j,ae){let ue=j.past_key_values?Object.values(j.past_key_values)[0].dims.at(-2):0;if(!j.attention_mask){let ge;for(let Fe of["input_ids","inputs_embeds","position_ids"])if(j[Fe]){ge=j[Fe].dims;break}if(!ge)throw new Error("attention_mask is not provided, and unable to infer its shape from model inputs.");j.attention_mask=(0,d.ones)([ge[0],ue+ge[1]])}if(j.past_key_values){let{input_ids:ge,attention_mask:Fe}=j;Fe&&Fe.dims[1]>ge.dims[1]||ue<ge.dims[1]&&(j.input_ids=ge.slice(null,[ue,null]))}return j}function et(b,M,j,ae){return j.past_key_values&&(M=M.map(ue=>[ue.at(-1)])),{...j,decoder_input_ids:Q(M)}}function _e(b,...M){return b.config.is_encoder_decoder?et(b,...M):Ke(b,...M)}function Z(b,M,j,ae){let ue=!!j.past_key_values;return ae.guidance_scale!==null&&ae.guidance_scale>1&&(ue?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))),(ue||!j.pixel_values)&&(j.pixel_values=(0,d.full)([0,0,3,384,384],1)),ue&&(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 V extends a.Callable{main_input_name="input_ids";forward_params=["input_ids","attention_mask"];constructor(M,j,ae){super(),this.config=M,this.sessions=j,this.configs=ae;let ue=g.get(this.constructor),ge=P.get(ue);switch(this.can_generate=!1,this._forward=null,this._prepare_inputs_for_generation=null,ge){case y.DecoderOnly:this.can_generate=!0,this._forward=be,this._prepare_inputs_for_generation=Ke;break;case y.Seq2Seq:case y.Vision2Seq:case y.Musicgen:this.can_generate=!0,this._forward=te,this._prepare_inputs_for_generation=et;break;case y.EncoderDecoder:this._forward=te;break;case y.ImageTextToText:this.can_generate=!0,this._forward=Ce,this._prepare_inputs_for_generation=_e;break;case y.AudioTextToText:this.can_generate=!0,this._forward=ne,this._prepare_inputs_for_generation=_e;break;case y.Phi3V:case y.ImageAudioTextToText:this.can_generate=!0,this._prepare_inputs_for_generation=_e;break;case y.MultiModality:this.can_generate=!0,this._prepare_inputs_for_generation=Z;break;case y.AutoEncoder:this._forward=le;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 M=[];for(let j of Object.values(this.sessions))j?.handler?.dispose&&M.push(j.handler.dispose());return await Promise.all(M)}static async from_pretrained(M,{progress_callback:j=null,config:ae=null,cache_dir:ue=null,local_files_only:ge=!1,revision:Fe="main",model_file_name:Be=null,subfolder:Ne="onnx",device:st=null,dtype:vt=null,use_external_data_format:Pt=null,session_options:kt={}}={}){let ht={progress_callback:j,config:ae,cache_dir:ue,local_files_only:ge,revision:Fe,model_file_name:Be,subfolder:Ne,device:st,dtype:vt,use_external_data_format:Pt,session_options:kt},Vt=g.get(this),gt=P.get(Vt);ae=ht.config=await s.AutoConfig.from_pretrained(M,ht);let mt;if(gt===y.DecoderOnly)mt=await Promise.all([$(M,{model:ht.model_file_name??"model"},ht),L(M,{generation_config:"generation_config.json"},ht)]);else if(gt===y.Seq2Seq||gt===y.Vision2Seq)mt=await Promise.all([$(M,{model:"encoder_model",decoder_model_merged:"decoder_model_merged"},ht),L(M,{generation_config:"generation_config.json"},ht)]);else if(gt===y.MaskGeneration)mt=await Promise.all([$(M,{model:"vision_encoder",prompt_encoder_mask_decoder:"prompt_encoder_mask_decoder"},ht)]);else if(gt===y.EncoderDecoder)mt=await Promise.all([$(M,{model:"encoder_model",decoder_model_merged:"decoder_model_merged"},ht)]);else if(gt===y.ImageTextToText){let Dt={embed_tokens:"embed_tokens",vision_encoder:"vision_encoder",decoder_model_merged:"decoder_model_merged"};ae.is_encoder_decoder&&(Dt.model="encoder_model"),mt=await Promise.all([$(M,Dt,ht),L(M,{generation_config:"generation_config.json"},ht)])}else if(gt===y.AudioTextToText){let Dt={embed_tokens:"embed_tokens",audio_encoder:"audio_encoder",decoder_model_merged:"decoder_model_merged"};mt=await Promise.all([$(M,Dt,ht),L(M,{generation_config:"generation_config.json"},ht)])}else if(gt===y.ImageAudioTextToText){let Dt={embed_tokens:"embed_tokens",audio_encoder:"audio_encoder",vision_encoder:"vision_encoder",decoder_model_merged:"decoder_model_merged"};mt=await Promise.all([$(M,Dt,ht),L(M,{generation_config:"generation_config.json"},ht)])}else if(gt===y.Musicgen)mt=await Promise.all([$(M,{model:"text_encoder",decoder_model_merged:"decoder_model_merged",encodec_decode:"encodec_decode"},ht),L(M,{generation_config:"generation_config.json"},ht)]);else if(gt===y.MultiModality)mt=await Promise.all([$(M,{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"},ht),L(M,{generation_config:"generation_config.json"},ht)]);else if(gt===y.Phi3V)mt=await Promise.all([$(M,{prepare_inputs_embeds:"prepare_inputs_embeds",model:"model",vision_encoder:"vision_encoder"},ht),L(M,{generation_config:"generation_config.json"},ht)]);else if(gt===y.AutoEncoder)mt=await Promise.all([$(M,{encoder_model:"encoder_model",decoder_model:"decoder_model"},ht)]);else{if(gt!==y.EncoderOnly){let Dt=Vt??ae?.model_type;Dt!=="custom"&&console.warn(`Model type for '${Dt}' not found, assuming encoder-only architecture. Please report this at ${c.GITHUB_ISSUE_URL}.`)}mt=await Promise.all([$(M,{model:ht.model_file_name??"model"},ht)])}return new this(ae,...mt)}async _call(M){return await this.forward(M)}async forward(M){return await this._forward(this,M)}get generation_config(){return this.configs?.generation_config??null}_get_logits_warper(M){let j=new p.LogitsProcessorList;return M.temperature!==null&&M.temperature!==1&&j.push(new p.TemperatureLogitsWarper(M.temperature)),M.top_k!==null&&M.top_k!==0&&j.push(new p.TopKLogitsWarper(M.top_k)),M.top_p!==null&&M.top_p<1&&j.push(new p.TopPLogitsWarper(M.top_p)),j}_get_logits_processor(M,j,ae=null){let ue=new p.LogitsProcessorList;if(M.repetition_penalty!==null&&M.repetition_penalty!==1&&ue.push(new p.RepetitionPenaltyLogitsProcessor(M.repetition_penalty)),M.no_repeat_ngram_size!==null&&M.no_repeat_ngram_size>0&&ue.push(new p.NoRepeatNGramLogitsProcessor(M.no_repeat_ngram_size)),M.bad_words_ids!==null&&ue.push(new p.NoBadWordsLogitsProcessor(M.bad_words_ids,M.eos_token_id)),M.min_length!==null&&M.eos_token_id!==null&&M.min_length>0&&ue.push(new p.MinLengthLogitsProcessor(M.min_length,M.eos_token_id)),M.min_new_tokens!==null&&M.eos_token_id!==null&&M.min_new_tokens>0&&ue.push(new p.MinNewTokensLengthLogitsProcessor(j,M.min_new_tokens,M.eos_token_id)),M.forced_bos_token_id!==null&&ue.push(new p.ForcedBOSTokenLogitsProcessor(M.forced_bos_token_id)),M.forced_eos_token_id!==null&&ue.push(new p.ForcedEOSTokenLogitsProcessor(M.max_length,M.forced_eos_token_id)),M.begin_suppress_tokens!==null){let ge=j>1||M.forced_bos_token_id===null?j:j+1;ue.push(new p.SuppressTokensAtBeginLogitsProcessor(M.begin_suppress_tokens,ge))}return M.guidance_scale!==null&&M.guidance_scale>1&&ue.push(new p.ClassifierFreeGuidanceLogitsProcessor(M.guidance_scale)),ae!==null&&ue.extend(ae),ue}_prepare_generation_config(M,j,ae=u.GenerationConfig){let ue={...this.config};for(let Fe of["decoder","generator","text_config"])Fe in ue&&Object.assign(ue,ue[Fe]);let ge=new ae(ue);return Object.assign(ge,this.generation_config??{}),M&&Object.assign(ge,M),j&&Object.assign(ge,(0,i.pick)(j,Object.getOwnPropertyNames(ge))),ge}_get_stopping_criteria(M,j=null){let ae=new v.StoppingCriteriaList;return M.max_length!==null&&ae.push(new v.MaxLengthCriteria(M.max_length,this.config.max_position_embeddings??null)),M.eos_token_id!==null&&ae.push(new v.EosTokenCriteria(M.eos_token_id)),j&&ae.extend(j),ae}_validate_model_class(){if(!this.can_generate){let M=[wc,bc,gc,hc],j=g.get(this.constructor),ae=new Set,ue=this.config.model_type;for(let Fe of M){let Be=Fe.get(ue);Be&&ae.add(Be[0])}let ge=`The current model class (${j}) is not compatible with \`.generate()\`, as it doesn't have a language model head.`;throw ae.size>0&&(ge+=` Please use the following class instead: ${[...ae].join(", ")}`),Error(ge)}}prepare_inputs_for_generation(...M){return this._prepare_inputs_for_generation(this,...M)}_update_model_kwargs_for_generation({generated_input_ids:M,outputs:j,model_inputs:ae,is_encoder_decoder:ue}){return ae.past_key_values=this.getPastKeyValues(j,ae.past_key_values),ae.input_ids=new d.Tensor("int64",M.flat(),[M.length,1]),ue?"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:M,bos_token_id:j,model_kwargs:ae}){let ue=(0,i.pick)(ae,this.forward_params),ge=this.main_input_name;if(ge in ue){if(M)throw new Error("`inputs`: {inputs}` were passed alongside {input_name} which is not allowed. Make sure to either pass {inputs} or {input_name}=...")}else ue[ge]=M;return{inputs_tensor:ue[ge],model_inputs:ue,model_input_name:ge}}async _prepare_encoder_decoder_kwargs_for_generation({inputs_tensor:M,model_inputs:j,model_input_name:ae,generation_config:ue}){if(this.sessions.model.inputNames.includes("inputs_embeds")&&!j.inputs_embeds&&"_prepare_inputs_embeds"in this){let{input_ids:Fe,pixel_values:Be,attention_mask:Ne,...st}=j,vt=await this._prepare_inputs_embeds(j);j={...st,...(0,i.pick)(vt,["inputs_embeds","attention_mask"])}}let{last_hidden_state:ge}=await re(this,j);if(ue.guidance_scale!==null&&ue.guidance_scale>1)ge=(0,d.cat)([ge,(0,d.full_like)(ge,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 Fe=Q(j.decoder_input_ids).dims[0];if(Fe!==ge.dims[0]){if(ge.dims[0]!==1)throw new Error(`The encoder outputs have a different batch size (${ge.dims[0]}) than the decoder inputs (${Fe}).`);ge=(0,d.cat)(Array.from({length:Fe},()=>ge),0)}}return j.encoder_outputs=ge,j}_prepare_decoder_input_ids_for_generation({batch_size:M,model_input_name:j,model_kwargs:ae,decoder_start_token_id:ue,bos_token_id:ge,generation_config:Fe}){let{decoder_input_ids:Be,...Ne}=ae;if(!(Be instanceof d.Tensor)){if(Be)Array.isArray(Be[0])||(Be=Array.from({length:M},()=>Be));else if(ue??=ge,this.config.model_type==="musicgen")Be=Array.from({length:M*this.config.decoder.num_codebooks},()=>[ue]);else if(Array.isArray(ue)){if(ue.length!==M)throw new Error(`\`decoder_start_token_id\` expcted to have length ${M} but got ${ue.length}`);Be=ue}else Be=Array.from({length:M},()=>[ue]);Be=Q(Be)}return ae.decoder_attention_mask=(0,d.ones_like)(Be),{input_ids:Be,model_inputs:Ne}}async generate({inputs:M=null,generation_config:j=null,logits_processor:ae=null,stopping_criteria:ue=null,streamer:ge=null,...Fe}){this._validate_model_class(),j=this._prepare_generation_config(j,Fe);let{inputs_tensor:Be,model_inputs:Ne,model_input_name:st}=this._prepare_model_inputs({inputs:M,model_kwargs:Fe}),vt=this.config.is_encoder_decoder;vt&&("encoder_outputs"in Ne||(Ne=await this._prepare_encoder_decoder_kwargs_for_generation({inputs_tensor:Be,model_inputs:Ne,model_input_name:st,generation_config:j})));let Pt;vt?{input_ids:Pt,model_inputs:Ne}=this._prepare_decoder_input_ids_for_generation({batch_size:Ne[st].dims.at(0),model_input_name:st,model_kwargs:Ne,decoder_start_token_id:j.decoder_start_token_id,bos_token_id:j.bos_token_id,generation_config:j}):Pt=Ne[st];let kt=Pt.dims.at(-1);j.max_new_tokens!==null&&(j.max_length=kt+j.max_new_tokens);let ht=this._get_logits_processor(j,kt,ae),Vt=this._get_stopping_criteria(j,ue),gt=Ne[st].dims.at(0),mt=F.LogitsSampler.getSampler(j),Dt=new Array(gt).fill(0),qt=Pt.tolist();ge&&ge.put(qt);let rr,gr={};for(;;){if(Ne=this.prepare_inputs_for_generation(qt,Ne,j),rr=await this.forward(Ne),j.output_attentions&&j.return_dict_in_generate){let Xr=this.getAttentions(rr);for(let fs in Xr)fs in gr||(gr[fs]=[]),gr[fs].push(Xr[fs])}let Ft=rr.logits.slice(null,-1,null),sr=ht(qt,Ft),Er=[];for(let Xr=0;Xr<sr.dims.at(0);++Xr){let fs=sr[Xr],un=await mt(fs);for(let[pn,ui]of un){let Jn=BigInt(pn);Dt[Xr]+=ui,qt[Xr].push(Jn),Er.push([Jn]);break}}if(ge&&ge.put(Er),Vt(qt).every(Xr=>Xr))break;Ne=this._update_model_kwargs_for_generation({generated_input_ids:Er,outputs:rr,model_inputs:Ne,is_encoder_decoder:vt})}ge&&ge.end();let wr=this.getPastKeyValues(rr,Ne.past_key_values,!0),dr=new d.Tensor("int64",qt.flat(),[qt.length,qt[0].length]);if(j.return_dict_in_generate)return{sequences:dr,past_key_values:wr,...gr};for(let Ft of Object.values(rr))Ft.location==="gpu-buffer"&&Ft.dispose();return dr}getPastKeyValues(M,j,ae=!1){let ue=Object.create(null);for(let ge in M)if(ge.startsWith("present")){let Fe=ge.replace("present_conv","past_conv").replace("present","past_key_values"),Be=ge.includes("encoder");if(Be&&j?ue[Fe]=j[Fe]:ue[Fe]=M[ge],j&&(!Be||ae)){let Ne=j[Fe];Ne.location==="gpu-buffer"&&Ne.dispose()}}return ue}getAttentions(M){let j={};for(let ae of["cross_attentions","encoder_attentions","decoder_attentions"])for(let ue in M)ue.startsWith(ae)&&(ae in j||(j[ae]=[]),j[ae].push(M[ue]));return j}addPastKeyValues(M,j){if(j)Object.assign(M,j);else{let ae=this.sessions.decoder_model_merged??this.sessions.model,ue=(M[this.main_input_name]??M.attention_mask)?.dims?.[0]??1,ge=ae?.config?.kv_cache_dtype??"float32",Fe=ge==="float16"?d.DataTypeMap.float16:d.DataTypeMap.float32,Be=(0,s.getCacheShapes)(this.config,{batch_size:ue});for(let Ne in Be){let st=Be[Ne].reduce((vt,Pt)=>vt*Pt,1);M[Ne]=new d.Tensor(ge,new Fe(st),Be[Ne])}}}async encode_image({pixel_values:M}){return(await O(this.sessions.vision_encoder,{pixel_values:M})).image_features}async encode_text({input_ids:M}){return(await O(this.sessions.embed_tokens,{input_ids:M})).inputs_embeds}async encode_audio({audio_values:M}){return(await O(this.sessions.audio_encoder,{audio_values:M})).audio_features}}class fe{}class Se extends fe{constructor({last_hidden_state:M,hidden_states:j=null,attentions:ae=null}){super(),this.last_hidden_state=M,this.hidden_states=j,this.attentions=ae}}class Pe extends V{}class pe extends Pe{}class xe extends Pe{async _call(M){return new Pr(await super._call(M))}}class de extends Pe{async _call(M){return new xt(await super._call(M))}}class Ae extends Pe{async _call(M){return new Mr(await super._call(M))}}class $e extends Pe{async _call(M){return new Lr(await super._call(M))}}class Ue extends V{}class Ee extends Ue{}class je extends Ue{async _call(M){return new Pr(await super._call(M))}}class Ge extends Ue{async _call(M){return new xt(await super._call(M))}}class Ve extends Ue{async _call(M){return new Mr(await super._call(M))}}class De extends Ue{async _call(M){return new Lr(await super._call(M))}}class ot extends V{}class lt extends ot{}class rt extends ot{async _call(M){return new Pr(await super._call(M))}}class Ye extends ot{async _call(M){return new xt(await super._call(M))}}class ft extends ot{async _call(M){return new Mr(await super._call(M))}}class yt extends V{}class Ot extends yt{}class vr extends yt{}class zr extends V{}class Rr extends zr{}class Ut extends V{}class Cr extends Ut{}class Hs extends Ut{async _call(M){return new Pr(await super._call(M))}}class Qs extends Ut{async _call(M){return new xt(await super._call(M))}}class Xs extends Ut{async _call(M){return new Mr(await super._call(M))}}class Bs extends Ut{async _call(M){return new Lr(await super._call(M))}}class _t extends V{}class Es extends _t{}class ks extends _t{async _call(M){return new Pr(await super._call(M))}}class ct extends _t{async _call(M){return new xt(await super._call(M))}}class Cs extends _t{async _call(M){return new Mr(await super._call(M))}}class k extends _t{async _call(M){return new Lr(await super._call(M))}}class X extends V{}class N extends X{}class Y extends X{async _call(M){return new Pr(await super._call(M))}}class se extends X{async _call(M){return new xt(await super._call(M))}}class he extends X{async _call(M){return new Mr(await super._call(M))}}class ke extends X{async _call(M){return new Lr(await super._call(M))}}class Ze extends V{}class dt extends Ze{}class qe extends Ze{async _call(M){return new Pr(await super._call(M))}}class Ct extends Ze{async _call(M){return new xt(await super._call(M))}}class St extends Ze{async _call(M){return new Mr(await super._call(M))}}class ur extends Ze{async _call(M){return new Lr(await super._call(M))}}class Rt extends V{}class jr extends Rt{}class pr extends Rt{async _call(M){return new Pr(await super._call(M))}}class Sr extends Rt{async _call(M){return new xt(await super._call(M))}}class Gt extends Rt{async _call(M){return new Mr(await super._call(M))}}class os extends Rt{async _call(M){return new Lr(await super._call(M))}}class Nr extends V{}class Ss extends Nr{}class yr extends Nr{async _call(M){return new Pr(await super._call(M))}}class Fs extends Nr{async _call(M){return new xt(await super._call(M))}}class Is extends Nr{async _call(M){return new Mr(await super._call(M))}}class Vr extends Nr{async _call(M){return new Lr(await super._call(M))}}class Wr extends V{}class Yr extends Wr{}class Fr extends Wr{async _call(M){return new xt(await super._call(M))}}class cs extends Wr{async _call(M){return new Mr(await super._call(M))}}class lr extends Wr{async _call(M){return new Lr(await super._call(M))}}class _r extends Wr{async _call(M){return new Pr(await super._call(M))}}class Hr extends V{}class zs extends Hr{}class Ur extends Hr{async _call(M){return new Pr(await super._call(M))}}class Le extends Hr{async _call(M){return new xt(await super._call(M))}}class Re extends Hr{async _call(M){return new Mr(await super._call(M))}}class tt extends V{}class Jt extends tt{}class Rs extends tt{async _call(M){return new Pr(await super._call(M))}}class ds extends tt{async _call(M){return new xt(await super._call(M))}}class js extends tt{async _call(M){return new Lr(await super._call(M))}}class us extends V{}class po extends us{}class _o extends us{async _call(M){return new Pr(await super._call(M))}}class Xo extends us{async _call(M){return new xt(await super._call(M))}}class ce extends us{async _call(M){return new Mr(await super._call(M))}}class S extends us{async _call(M){return new Lr(await super._call(M))}}class U extends V{}class ee extends U{}class oe extends U{async _call(M){return new Pr(await super._call(M))}}class me extends U{async _call(M){return new xt(await super._call(M))}}class Te extends U{async _call(M){return new Lr(await super._call(M))}}class He extends V{}class Xe extends He{}class Je extends He{async _call(M){return new xt(await super._call(M))}}class We extends He{async _call(M){return new Lr(await super._call(M))}}class It extends He{async _call(M){return new Pr(await super._call(M))}}class bt extends V{forward_params=["input_ids","attention_mask","encoder_outputs","decoder_input_ids","decoder_attention_mask","past_key_values"]}class Kt extends bt{}class mr extends bt{}class Zt extends V{}class Ir extends Zt{}class nr extends Zt{}class fr extends V{}class Ar extends fr{}class $r extends fr{}class Qr extends V{}class Qt extends Qr{}class hr extends Qr{}class Gr extends Qr{async _call(M){return new xt(await super._call(M))}}class Or extends V{}class ps extends Or{}class Tr extends Or{}class ns extends Or{async _call(M){return new xt(await super._call(M))}}class ar extends Or{}class tr extends V{}class cr extends tr{}class er extends tr{}class Kr extends V{}class Ns extends Kr{}class Jo extends Kr{}class Js extends V{}class ya extends Js{}class yn extends Js{async _call(M){return new Pr(await super._call(M))}}class Ta extends Js{async _call(M){return new xt(await super._call(M))}}class Pa extends Js{async _call(M){return new Mr(await super._call(M))}}class Ea extends Js{async _call(M){return new Lr(await super._call(M))}}class Ys extends V{}class ka extends Ys{}class Ca extends Ys{async _call(M){return new Pr(await super._call(M))}}class Sa extends Ys{async _call(M){return new xt(await super._call(M))}}class Fa extends Ys{async _call(M){return new Mr(await super._call(M))}}class Ia extends Ys{async _call(M){return new Lr(await super._call(M))}}class Zs extends V{}class Aa extends Zs{}class $a extends Zs{async _call(M){return new Pr(await super._call(M))}}class Tn extends Zs{async _call(M){return new xt(await super._call(M))}}class Pn extends Zs{async _call(M){return new Mr(await super._call(M))}}class En extends Zs{async _call(M){return new Lr(await super._call(M))}}class kn extends V{}class Da extends kn{}class Cn extends kn{}class Yo extends V{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 eo extends Yo{}class Sn extends Yo{_prepare_generation_config(M,j){return super._prepare_generation_config(M,j,w.WhisperGenerationConfig)}_retrieve_init_tokens(M){let j=[M.decoder_start_token_id],ae=M.language,ue=M.task;if(M.is_multilingual){ae||(console.warn("No language specified - defaulting to English (en)."),ae="en");let Fe=`<|${(0,C.whisper_language_to_code)(ae)}|>`;j.push(M.lang_to_id[Fe]),j.push(M.task_to_id[ue??"transcribe"])}else if(ae||ue)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!M.return_timestamps&&M.no_timestamps_token_id&&j.at(-1)!==M.no_timestamps_token_id?j.push(M.no_timestamps_token_id):M.return_timestamps&&j.at(-1)===M.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(ge=>ge!=null)}async generate({inputs:M=null,generation_config:j=null,logits_processor:ae=null,stopping_criteria:ue=null,...ge}){j=this._prepare_generation_config(j,ge);let Fe=ge.decoder_input_ids??this._retrieve_init_tokens(j);if(j.return_timestamps&&(ae??=new p.LogitsProcessorList,ae.push(new p.WhisperTimeStampLogitsProcessor(j,Fe))),j.begin_suppress_tokens&&(ae??=new p.LogitsProcessorList,ae.push(new p.SuppressTokensAtBeginLogitsProcessor(j.begin_suppress_tokens,Fe.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 Be=await super.generate({inputs:M,generation_config:j,logits_processor:ae,decoder_input_ids:Fe,...ge});return j.return_token_timestamps&&(Be.token_timestamps=this._extract_token_timestamps(Be,j.alignment_heads,j.num_frames)),Be}_extract_token_timestamps(M,j,ae=null,ue=.02){if(!M.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 ge=this.config.median_filter_width;ge===void 0&&(console.warn("Model config has no `median_filter_width`, using default value of 7."),ge=7);let Fe=M.cross_attentions,Be=Array.from({length:this.config.decoder_layers},(gt,mt)=>(0,d.cat)(Fe.map(Dt=>Dt[mt]),2)),Ne=(0,d.stack)(j.map(([gt,mt])=>{if(gt>=Be.length)throw new Error(`Layer index ${gt} is out of bounds for cross attentions (length ${Be.length}).`);return ae?Be[gt].slice(null,mt,null,[0,ae]):Be[gt].slice(null,mt)})).transpose(1,0,2,3),[st,vt]=(0,d.std_mean)(Ne,-2,0,!0),Pt=Ne.clone();for(let gt=0;gt<Pt.dims[0];++gt){let mt=Pt[gt];for(let Dt=0;Dt<mt.dims[0];++Dt){let qt=mt[Dt],rr=st[gt][Dt][0].data,gr=vt[gt][Dt][0].data;for(let wr=0;wr<qt.dims[0];++wr){let dr=qt[wr].data;for(let Ft=0;Ft<dr.length;++Ft)dr[Ft]=(dr[Ft]-gr[Ft])/rr[Ft];dr.set((0,f.medianFilter)(dr,ge))}}}let kt=[(0,d.mean)(Pt,1)],ht=M.sequences.dims,Vt=new d.Tensor("float32",new Float32Array(ht[0]*ht[1]),ht);for(let gt=0;gt<ht[0];++gt){let mt=kt[gt].neg().squeeze_(0),[Dt,qt]=(0,f.dynamic_time_warping)(mt.tolist()),rr=Array.from({length:Dt.length-1},(dr,Ft)=>Dt[Ft+1]-Dt[Ft]),gr=(0,i.mergeArrays)([1],rr).map(dr=>!!dr),wr=[];for(let dr=0;dr<gr.length;++dr)gr[dr]&&wr.push(qt[dr]*ue);Vt[gt].data.set(wr,1)}return Vt}}class Fn extends Sn{}class In extends V{requires_attention_mask=!1;main_input_name="input_values";forward_params=["input_values","decoder_input_ids","past_key_values"]}class al extends In{}class Oa extends In{}class An extends V{main_input_name="pixel_values";forward_params=["pixel_values","decoder_input_ids","encoder_hidden_states","past_key_values"]}class mo extends V{forward_params=["input_ids","attention_mask","pixel_values","position_ids","past_key_values"]}class fo extends mo{_merge_input_ids_with_image_features(M){let j=M.image_features.dims.at(-1),ae=M.image_features.view(-1,j);return D({image_token_id:this.config.image_token_index,...M,image_features:ae})}}class La extends fo{}class Ba extends fo{}class za extends V{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 Ra extends za{_merge_input_ids_with_image_features({inputs_embeds:M,image_features:j,input_ids:ae,attention_mask:ue}){return{inputs_embeds:(0,d.cat)([j,M],1),attention_mask:(0,d.cat)([(0,d.ones)(j.dims.slice(0,2)),ue],1)}}async _prepare_inputs_embeds({input_ids:M,pixel_values:j,inputs_embeds:ae,attention_mask:ue}){if(!M&&!j)throw new Error("Either `input_ids` or `pixel_values` should be provided.");let ge,Fe;return M&&(ge=await this.encode_text({input_ids:M})),j&&(Fe=await this.encode_image({pixel_values:j})),ge&&Fe?{inputs_embeds:ae,attention_mask:ue}=this._merge_input_ids_with_image_features({inputs_embeds:ge,image_features:Fe,input_ids:M,attention_mask:ue}):ae=ge||Fe,{inputs_embeds:ae,attention_mask:ue}}async forward({input_ids:M,pixel_values:j,attention_mask:ae,decoder_input_ids:ue,decoder_attention_mask:ge,encoder_outputs:Fe,past_key_values:Be,inputs_embeds:Ne,decoder_inputs_embeds:st}){if(Ne||({inputs_embeds:Ne,attention_mask:ae}=await this._prepare_inputs_embeds({input_ids:M,pixel_values:j,inputs_embeds:Ne,attention_mask:ae})),!Fe){let{last_hidden_state:kt}=await re(this,{inputs_embeds:Ne,attention_mask:ae});Fe=kt}if(!st){if(!ue)throw new Error("Either `decoder_input_ids` or `decoder_inputs_embeds` should be provided.");st=await this.encode_text({input_ids:ue})}return await be(this,{inputs_embeds:st,attention_mask:ge,encoder_attention_mask:ae,encoder_hidden_states:Fe,past_key_values:Be},!0)}}class ja extends V{forward_params=["input_ids","attention_mask","pixel_values","position_ids","past_key_values"]}class Na extends ja{_merge_input_ids_with_image_features(M){let j=M.image_features.dims.at(-1),ae=M.image_features.view(-1,j);return D({image_token_id:this.config.image_token_index,...M,image_features:ae})}}class Va extends mo{_merge_input_ids_with_image_features(M){let j=M.image_features.dims.at(-1),ae=M.image_features.view(-1,j);return D({image_token_id:this.config.image_token_index,...M,image_features:ae})}}class Wa extends V{forward_params=["input_ids","attention_mask","inputs_embeds","per_layer_inputs","position_ids","pixel_values","input_features","input_features_mask","past_key_values"]}class $n extends Wa{async forward({input_ids:M=null,attention_mask:j=null,pixel_values:ae=null,input_features:ue=null,input_features_mask:ge=null,position_ids:Fe=null,inputs_embeds:Be=null,per_layer_inputs:Ne=null,past_key_values:st=null,generation_config:vt=null,logits_processor:Pt=null,...kt}){if((!Be||!Ne)&&({inputs_embeds:Be,per_layer_inputs:Ne}=await O(this.sessions.embed_tokens,{input_ids:M}),M.dims[1]!==1)){if(ae){let{image_features:Vt}=await O(this.sessions.vision_encoder,{pixel_values:ae});({inputs_embeds:Be,attention_mask:j}=this._merge_input_ids_with_image_features({image_features:Vt,inputs_embeds:Be,input_ids:M,attention_mask:j}))}if(ue){let{audio_features:Vt}=await O(this.sessions.audio_encoder,{input_features:ue,input_features_mask:ge});({inputs_embeds:Be,attention_mask:j}=this._merge_input_ids_with_audio_features({audio_features:Vt,inputs_embeds:Be,input_ids:M,attention_mask:j}))}}return await be(this,{inputs_embeds:Be,per_layer_inputs:Ne,past_key_values:st,attention_mask:j,position_ids:Fe,generation_config:vt,logits_processor:Pt},!0)}_merge_input_ids_with_image_features(M){let j=M.image_features.dims.at(-1),ae=M.image_features.view(-1,j);return D({image_token_id:this.config.image_token_id,...M,image_features:ae})}_merge_input_ids_with_audio_features(M){let j=M.audio_features.dims.at(-1),ae=M.audio_features.view(-1,j);return K({audio_token_id:this.config.audio_token_id,...M,audio_features:ae})}}class ho extends V{forward_params=["input_ids","attention_mask","pixel_values","pixel_attention_mask","position_ids","past_key_values"]}class _s extends ho{async encode_image({pixel_values:M,pixel_attention_mask:j}){return(await O(this.sessions.vision_encoder,{pixel_values:M,pixel_attention_mask:j})).image_features}_merge_input_ids_with_image_features(M){let j=M.image_features.dims.at(-1),ae=M.image_features.view(-1,j);return D({image_token_id:this.config.image_token_id,...M,image_features:ae})}}class Zo extends _s{}class Ua extends V{forward_params=["input_ids","inputs_embeds","attention_mask","position_ids","pixel_values","image_sizes","past_key_values"]}class Dn extends Ua{async forward({input_ids:M=null,attention_mask:j=null,pixel_values:ae=null,image_sizes:ue=null,position_ids:ge=null,inputs_embeds:Fe=null,past_key_values:Be=null,generation_config:Ne=null,logits_processor:st=null,...vt}){if(!Fe){let kt;if(ae&&M.dims[1]!==1){if(!ue)throw new Error("`image_sizes` must be provided when `pixel_values` is provided.");({image_features:kt}=await O(this.sessions.vision_encoder,{pixel_values:ae,image_sizes:ue}))}else{let ht=this.config.normalized_config.hidden_size;kt=new d.Tensor("float32",[],[0,ht])}({inputs_embeds:Fe}=await O(this.sessions.prepare_inputs_embeds,{input_ids:M,image_features:kt}))}return await be(this,{inputs_embeds:Fe,past_key_values:Be,attention_mask:j,position_ids:ge,generation_config:Ne,logits_processor:st},!1)}}class ms extends V{}class en extends ms{}class Ga extends ms{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"text_model"})}}class On extends ms{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"text_model"})}}class Ka extends ms{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"vision_model"})}}class Ln extends ms{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"vision_model"})}}class tn extends V{}class Bn extends tn{}class qa extends tn{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"text_model"})}}class zn extends ms{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"vision_model"})}}class Rn extends V{}class go extends Rn{}class ut extends V{}class Ha extends ut{async forward(M){let j=!M.input_ids,ae=!M.pixel_values;if(j&&ae)throw new Error("Either `input_ids` or `pixel_values` should be provided.");if(j&&(M.input_ids=(0,d.ones)([M.pixel_values.dims[0],1])),ae){let{image_size:st}=this.config.vision_config;M.pixel_values=(0,d.full)([0,3,st,st],0)}let{text_embeddings:ue,image_embeddings:ge,l2norm_text_embeddings:Fe,l2norm_image_embeddings:Be}=await super.forward(M),Ne={};return j||(Ne.text_embeddings=ue,Ne.l2norm_text_embeddings=Fe),ae||(Ne.image_embeddings=ge,Ne.l2norm_image_embeddings=Be),Ne}}class jn extends ut{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"text_model"})}}class Nn extends ut{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"vision_model"})}}class to extends V{}class Zr extends to{}class wo extends to{}class bo extends V{}class Vn extends bo{}class Wn extends bo{}class rn extends V{}class sn extends rn{}class Un extends rn{}class on extends V{}class Gn extends on{}class Mo extends on{}class xo extends V{}class nn extends xo{}class Kn extends xo{}class an extends V{}class qn extends an{}class Hn extends an{}class ln extends V{}class _ extends ln{}class T extends ln{}class A extends V{}class B extends A{}class W extends A{}class ie extends V{}class ve extends ie{}class Oe extends ie{}class Qe extends V{}class nt extends Qe{}class Mt extends Qe{}class At extends V{}class jt extends At{}class br extends At{}class As extends V{}class Qa extends As{}class Au extends As{}class il extends V{}class $u extends il{}class Du extends il{}class ll extends V{}class Ou extends ll{}class Lu extends ll{}class cl extends V{}class Bu extends cl{}class zu extends cl{}class dl extends V{}class Ru extends dl{}class ju extends dl{}class ul extends V{}class Nu extends ul{}class Vu extends ul{}class pl extends V{}class Wu extends pl{}class Uu extends pl{}class _l extends V{}class Gu extends _l{}class Ku extends _l{}class ml extends V{}class qu extends ml{}class Hu extends ml{}class fl extends V{}class Qu extends fl{}class Xu extends fl{}class hl extends V{}class Ju extends hl{}class Yu extends hl{}class gl extends V{}class Zu extends gl{}class ep extends gl{}class wl extends V{}class tp extends wl{}class rp extends wl{}class bl extends V{}class sp extends bl{}class op extends bl{}class Ml extends V{}class np extends Ml{}class ap extends Ml{}class ip extends V{forward_params=["input_ids","attention_mask","position_ids","past_key_values","pixel_values","image_grid_thw"]}class lp extends ip{get_rope_index(M,j,ae,ue){let{vision_config:ge,image_token_id:Fe,video_token_id:Be,vision_start_token_id:Ne}=this.config,st=ge.spatial_merge_size??2,vt=[];if(j||ae){let Pt=M.tolist();ue||(ue=(0,d.ones_like)(M));let kt=ue.tolist(),ht=Array.from({length:3},qt=>Array.from({length:M.dims[0]},rr=>Array.from({length:M.dims[1]},gr=>1))),Vt=j?j.tolist():[],gt=ae?ae.tolist():[],mt=0,Dt=0;for(let qt=0;qt<Pt.length;++qt){let rr=Pt[qt].filter((Yt,xr)=>kt[qt][xr]==1),wr=rr.reduce((Yt,xr,so)=>(xr==Ne&&Yt.push(so),Yt),[]).map(Yt=>rr[Yt+1]),dr=wr.filter(Yt=>Yt==Fe).length,Ft=wr.filter(Yt=>Yt==Be).length,sr=[],Er=0,yo=dr,Xr=Ft;for(let Yt=0;Yt<wr.length;++Yt){let xr=rr.findIndex((Po,hs)=>hs>Er&&Po==Fe),so=rr.findIndex((Po,hs)=>hs>Er&&Po==Be),To=yo>0&&xr!==-1?xr:rr.length+1,_n=Xr>0&&so!==-1?so:rr.length+1,pi,Mc,xc,vc;To<_n?([Mc,xc,vc]=Vt[mt],++mt,--yo,pi=To):([Mc,xc,vc]=gt[Dt],++Dt,--Xr,pi=_n);let[vT,yc,_i]=[Number(Mc),Math.floor(Number(xc)/st),Math.floor(Number(vc)/st)],Tc=pi-Er,hh=sr.length>0?(0,f.max)(sr.at(-1))[0]+1:0;sr.push(Array.from({length:3*Tc},(Po,hs)=>hh+hs%Tc));let Pc=Tc+hh,mi=vT*yc*_i,yT=Array.from({length:mi},(Po,hs)=>Pc+Math.floor(hs/(yc*_i))),TT=Array.from({length:mi},(Po,hs)=>Pc+Math.floor(hs/_i)%yc),PT=Array.from({length:mi},(Po,hs)=>Pc+hs%_i);sr.push([yT,TT,PT].flat()),Er=pi+mi}if(Er<rr.length){let Yt=sr.length>0?(0,f.max)(sr.at(-1))[0]+1:0,xr=rr.length-Er;sr.push(Array.from({length:3*xr},(so,To)=>Yt+To%xr))}let fs=sr.reduce((Yt,xr)=>Yt+xr.length,0),un=new Array(fs),pn=0;for(let Yt=0;Yt<3;++Yt)for(let xr=0;xr<sr.length;++xr){let so=sr[xr],To=so.length/3;for(let _n=Yt*To;_n<(Yt+1)*To;++_n)un[pn++]=so[_n]}let ui=0,Jn=kt[qt];for(let Yt=0;Yt<Jn.length;++Yt)if(Jn[Yt]==1){for(let xr=0;xr<3;++xr)ht[xr][qt][Yt]=un[xr*fs/3+ui];++ui}let xT=(0,f.max)(un)[0];vt.push(xT+1-Pt[qt].length)}return[new d.Tensor("int64",ht.flat(1/0),[3,M.dims[0],M.dims[1]]),new d.Tensor("int64",vt,[vt.length,1])]}else if(ue){let{data:Pt,dims:kt}=Me(ue),ht=BigInt64Array.from({length:3*Pt.length},(gt,mt)=>Pt[mt%Pt.length]),Vt=Array.from({length:kt[0]},(gt,mt)=>(0,f.max)(Pt.subarray(kt[1]*mt,kt[1]*(mt+1)))[0]+1n+BigInt(kt[1]));return[new d.Tensor("int64",ht,[3,...kt]),new d.Tensor("int64",Vt,[Vt.length,1])]}else{let[Pt,kt]=M.dims,ht=BigInt64Array.from({length:3*Pt*kt},(Vt,gt)=>BigInt(Math.floor(gt%kt/Pt)));return[new d.Tensor("int64",ht,[3,...M.dims]),(0,d.zeros)([Pt,1])]}}async encode_image({pixel_values:M,image_grid_thw:j}){return(await O(this.sessions.vision_encoder,{pixel_values:M,grid_thw:j})).image_features}_merge_input_ids_with_image_features(M){return D({image_token_id:this.config.image_token_id,...M})}prepare_inputs_for_generation(M,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 ue=BigInt(Object.values(j.past_key_values)[0].dims.at(-2)),ge=j.rope_deltas.map(Fe=>ue+Fe);j.position_ids=(0,d.stack)([ge,ge,ge],0)}return j}}class xl extends V{}class cp extends xl{}class dp extends xl{}class vl extends V{}class up extends vl{}class pp extends vl{}class yl extends V{}class _p extends yl{}class mp extends yl{}class Tl extends V{}class fp extends Tl{}class hp extends Tl{}class Pl extends V{}class gp extends Pl{}class wp extends Pl{}class El extends V{}class bp extends El{}class Mp extends El{async _call(M){return new xt(await super._call(M))}}class kl extends V{}class xp extends kl{}class vp extends kl{async _call(M){return new xt(await super._call(M))}}class yp extends V{}class Tp extends yp{}class Cl extends V{}class Pp extends Cl{}class Ep extends Cl{async _call(M){return new xt(await super._call(M))}}class kp extends V{}class Cp extends kp{}class Sl extends V{}class Sp extends Sl{}class Fp extends Sl{async _call(M){return new xt(await super._call(M))}}class Ip extends V{}class Ap extends Ip{}class Fl extends V{}class $p extends Fl{}class Dp extends Fl{async _call(M){return new xt(await super._call(M))}}class Op extends V{}class Lp extends Op{async _call(M){return new mh(await super._call(M))}}class Il extends V{}class Bp extends Il{}class zp extends Il{async _call(M){return new xt(await super._call(M))}}class Al extends V{}class Rp extends Al{}class jp extends Al{async _call(M){return new xt(await super._call(M))}}class $l extends V{}class Np extends $l{}class Vp extends $l{}class Dl extends V{}class Wp extends Dl{}class Up extends Dl{}class Ol extends V{}class Gp extends Ol{}class Kp extends Ol{async _call(M){return new xt(await super._call(M))}}class Xa extends V{}class qp extends Xa{}class Hp extends Xa{async _call(M){return new Bl(await super._call(M))}}class Ll extends Xa{async _call(M){return new Qp(await super._call(M))}}class Bl extends fe{constructor({logits:M,pred_boxes:j}){super(),this.logits=M,this.pred_boxes=j}}class Qp extends fe{constructor({logits:M,pred_boxes:j,pred_masks:ae}){super(),this.logits=M,this.pred_boxes=j,this.pred_masks=ae}}class zl extends V{}class Xp extends zl{}class Jp extends zl{async _call(M){return new Qn(await super._call(M))}}class Qn extends fe{constructor({logits:M,pred_boxes:j}){super(),this.logits=M,this.pred_boxes=j}}class Rl extends V{}class Yp extends Rl{}class Zp extends Rl{async _call(M){return new e_(await super._call(M))}}class e_ extends Qn{}class jl extends V{}class t_ extends jl{}class r_ extends jl{async _call(M){return new s_(await super._call(M))}}class s_ extends Qn{}class Nl extends V{}class o_ extends Nl{}class n_ extends Nl{async _call(M){return new Qn(await super._call(M))}}class Vl extends V{}class a_ extends Vl{}class i_ extends Vl{async _call(M){return new l_(await super._call(M))}}class l_ extends Bl{}class Wl extends V{}class c_ extends Wl{}class d_ extends Wl{async _call(M){return new xt(await super._call(M))}}class Ul extends V{}class u_ extends Ul{}class p_ extends Ul{async _call(M){return new xt(await super._call(M))}}class Gl extends V{}class __ extends Gl{}class m_ extends Gl{async _call(M){return new xt(await super._call(M))}}class Ja extends V{}class f_ extends Ja{}class h_ extends Ja{async _call(M){return new xt(await super._call(M))}}class g_ extends Ja{}class Kl extends V{}class w_ extends Kl{}class b_ extends Kl{}class ql extends V{}class M_ extends ql{}class x_ extends ql{}class v_ extends V{}class y_ extends v_{}class Ya extends V{}class T_ extends Ya{}class P_ extends Ya{}class E_ extends Ya{}class k_ extends V{}class C_ extends k_{}class S_ extends V{}class F_ extends S_{}class I_ extends V{}class A_ extends I_{}class Hl extends V{}class $_ extends Hl{}class D_ extends Hl{}class Ql extends V{}class O_ extends Ql{}class L_ extends Ql{}class B_ extends V{}class z_ extends B_{}class Xl extends V{}class R_ extends Xl{}class j_ extends Xl{async _call(M){return new xt(await super._call(M))}}class Jl extends V{}class N_ extends Jl{}class V_ extends Jl{async _call(M){return new xt(await super._call(M))}}class Yl extends V{}class W_ extends Yl{}class U_ extends Yl{async _call(M){return new xt(await super._call(M))}}class Zl extends V{}class G_ extends Zl{}class K_ extends Zl{async _call(M){return new xt(await super._call(M))}}class q_ extends V{}class H_ extends q_{}class ec extends V{}class Q_ extends ec{}class X_ extends ec{async _call(M){return new J_(await super._call(M))}}class J_ extends fe{constructor({logits:M,pred_boxes:j}){super(),this.logits=M,this.pred_boxes=j}}class Y_ extends V{}class Z_ extends Y_{async get_image_embeddings({pixel_values:M}){return await re(this,{pixel_values:M})}async forward(M){if((!M.image_embeddings||!M.image_positional_embeddings)&&(M={...M,...await this.get_image_embeddings(M)}),!M.input_labels&&M.input_points){let ae=M.input_points.dims.slice(0,-1),ue=ae.reduce((ge,Fe)=>ge*Fe,1);M.input_labels=new d.Tensor("int64",new BigInt64Array(ue).fill(1n),ae)}let j={image_embeddings:M.image_embeddings,image_positional_embeddings:M.image_positional_embeddings};return M.input_points&&(j.input_points=M.input_points),M.input_labels&&(j.input_labels=M.input_labels),M.input_boxes&&(j.input_boxes=M.input_boxes),await O(this.sessions.prompt_encoder_mask_decoder,j)}async _call(M){return new em(await super._call(M))}}class em extends fe{constructor({iou_scores:M,pred_masks:j}){super(),this.iou_scores=M,this.pred_masks=j}}class tc extends V{}class tm extends tc{}class rm extends tc{}class rc extends V{}class sm extends rc{}class om extends rc{}class ro extends V{}class nm extends ro{}class am extends ro{async _call(M){return new vo(await super._call(M))}}class im extends ro{async _call(M){return new xt(await super._call(M))}}class lm extends ro{async _call(M){return new Mr(await super._call(M))}}class sc extends V{}class cm extends sc{}class dm extends sc{async _call(M){return new Mr(await super._call(M))}}class um extends V{}class pm extends um{}class Za extends V{}class _m extends Za{}class mm extends Za{async _call(M){return new vo(await super._call(M))}}class fm extends Za{async _call(M){return new xt(await super._call(M))}}class Xn extends V{}class hm extends Xn{}class gm extends Xn{async _call(M){return new vo(await super._call(M))}}class wm extends Xn{async _call(M){return new xt(await super._call(M))}}class bm extends Xn{async _call(M){return new Mr(await super._call(M))}}class ei extends V{}class Mm extends ei{}class xm extends ei{async _call(M){return new vo(await super._call(M))}}class vm extends ei{async _call(M){return new xt(await super._call(M))}}class S0 extends V{}class ym extends ro{}class Tm extends ro{async _call(M){return new vo(await super._call(M))}}class Pm extends ro{async _call(M){return new xt(await super._call(M))}}class cn extends V{}class Em extends cn{}class km extends cn{async _call(M){return new vo(await super._call(M))}}class Cm extends cn{async _call(M){return new xt(await super._call(M))}}class Sm extends cn{async _call(M){return new _h(await super._call(M))}}class Fm extends cn{async _call(M){return new Mr(await super._call(M))}}class Im extends V{}class Am extends Im{}class ti extends V{}class F0 extends ti{}class $m extends ti{}class Dm extends ti{async generate_speech(M,j,{threshold:ae=.5,minlenratio:ue=0,maxlenratio:ge=20,vocoder:Fe=null}={}){let Be={input_ids:M},{encoder_outputs:Ne,encoder_attention_mask:st}=await re(this,Be),vt=Ne.dims[1]/this.config.reduction_factor,Pt=Math.floor(vt*ge),kt=Math.floor(vt*ue),ht=this.config.num_mel_bins,Vt=[],gt=null,mt=null,Dt=0;for(;;){++Dt;let gr=H(!!mt),wr;mt?wr=mt.output_sequence_out:wr=new d.Tensor("float32",new Float32Array(ht),[1,1,ht]);let dr={use_cache_branch:gr,output_sequence:wr,encoder_attention_mask:st,speaker_embeddings:j,encoder_hidden_states:Ne};this.addPastKeyValues(dr,gt),mt=await O(this.sessions.decoder_model_merged,dr),gt=this.getPastKeyValues(mt,gt);let{prob:Ft,spectrum:sr}=mt;if(Vt.push(sr),Dt>=kt&&(Array.from(Ft.data).filter(Er=>Er>=ae).length>0||Dt>=Pt))break}let qt=(0,d.cat)(Vt),{waveform:rr}=await O(Fe.sessions.model,{spectrogram:qt});return{spectrogram:qt,waveform:rr}}}class Om extends V{main_input_name="spectrogram"}class Lm extends V{}class Bm extends Lm{}class oc extends V{}class zm extends oc{}class Rm extends oc{}class nc extends V{}class jm extends nc{}class Nm extends nc{}class ac extends V{}class Vm extends ac{}class Wm extends ac{}class ic extends V{}class Um extends ic{}class Gm extends ic{}class ri extends V{}class Km extends ri{}class qm extends ri{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"text_model"})}}class Hm extends ri{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"audio_model"})}}class Qm extends V{}class lc extends Qm{async _call(M){return new fh(await super._call(M))}}class si extends V{}class I0 extends si{}class Xm extends si{}class Jm extends si{}class cc extends V{}class Ym extends cc{}class Zm extends cc{}class dc extends V{}class ef extends dc{}class tf extends dc{async _call(M){return new xt(await super._call(M))}}class uc extends V{}class A0 extends uc{}class $0 extends uc{}class pc extends V{forward_params=["input_ids","attention_mask","encoder_outputs","decoder_input_ids","decoder_attention_mask","past_key_values"];_apply_and_filter_by_delay_pattern_mask(M){let[j,ae]=M.dims,ue=this.config.decoder.num_codebooks,ge=ae-ue,Fe=0;for(let st=0;st<M.size;++st){if(M.data[st]===this.config.decoder.pad_token_id)continue;let vt=st%ae,Pt=Math.floor(st/ae)%ue,kt=vt-Pt;kt>0&&kt<=ge&&(M.data[Fe++]=M.data[st])}let Be=Math.floor(j/ue),Ne=Fe/(Be*ue);return new d.Tensor(M.type,M.data.slice(0,Fe),[Be,ue,Ne])}prepare_inputs_for_generation(M,j,ae){let ue=structuredClone(M);for(let Fe=0;Fe<ue.length;++Fe)for(let Be=0;Be<ue[Fe].length;++Be)Fe%this.config.decoder.num_codebooks>=Be&&(ue[Fe][Be]=BigInt(this.config.decoder.pad_token_id));return ae.guidance_scale!==null&&ae.guidance_scale>1&&(ue=ue.concat(ue)),super.prepare_inputs_for_generation(ue,j,ae)}async generate(M){let j=await super.generate(M),ae=this._apply_and_filter_by_delay_pattern_mask(j).unsqueeze_(0),{audio_values:ue}=await O(this.sessions.encodec_decode,{audio_codes:ae});return ue}}class oi extends V{}class rf extends oi{}class sf extends oi{async _call(M){return new xt(await super._call(M))}}class of extends oi{}class ni extends V{}class nf extends ni{}class af extends ni{async _call(M){return new xt(await super._call(M))}}class lf extends ni{}class ai extends V{}class cf extends ai{}class df extends ai{async _call(M){return new xt(await super._call(M))}}class uf extends ai{}class ii extends V{}class pf extends ii{}class _f extends ii{async _call(M){return new xt(await super._call(M))}}class mf extends ii{}class ff extends V{}class hf extends ff{}class gf extends V{}class wf extends gf{forward_params=["input_ids","pixel_values","images_seq_mask","images_emb_mask","attention_mask","position_ids","past_key_values"];constructor(...M){super(...M),this._generation_mode="text"}async forward(M){let j=this._generation_mode??"text",ae;if(j==="text"||!M.past_key_values){let Ne=this.sessions.prepare_inputs_embeds,st=(0,i.pick)(M,Ne.inputNames);ae=await O(Ne,st)}else{let Ne=this.sessions.gen_img_embeds,st=(0,i.pick)({image_ids:M.input_ids},Ne.inputNames);ae=await O(Ne,st)}let ue={...M,...ae},ge=await be(this,ue),Fe=this.sessions[j==="text"?"lm_head":"gen_head"];if(!Fe)throw new Error(`Unable to find "${Fe}" generation head`);let Be=await O(Fe,(0,i.pick)(ge,Fe.inputNames));return{...ae,...ge,...Be}}async generate(M){return this._generation_mode="text",super.generate(M)}async generate_images(M){this._generation_mode="image";let j=(M.inputs??M[this.main_input_name]).dims[1],ue=(await super.generate(M)).slice(null,[j,null]),ge=this.sessions.image_decode,{decoded_image:Fe}=await O(ge,{generated_tokens:ue}),Be=Fe.add_(1).mul_(255/2).clamp_(0,255).to("uint8"),Ne=[];for(let st of Be){let vt=h.RawImage.fromTensor(st);Ne.push(vt)}return Ne}}class bf extends fe{constructor({char_logits:M,bpe_logits:j,wp_logits:ae}){super(),this.char_logits=M,this.bpe_logits=j,this.wp_logits=ae}get logits(){return[this.char_logits,this.bpe_logits,this.wp_logits]}}class Mf extends V{}class xf extends Mf{async _call(M){return new bf(await super._call(M))}}class _c extends V{}class vf extends _c{}class yf extends _c{}class mc extends V{}class Tf extends mc{}class Pf extends mc{}class Ef extends V{forward_params=["input_ids","attention_mask","position_ids","audio_values","past_key_values"]}class fc extends Ef{_merge_input_ids_with_audio_features(M){let j=M.audio_features.dims.at(-1),ae=M.audio_features.view(-1,j);return K({audio_token_id:this.config.ignore_index??this.config.audio_token_id,...M,audio_features:ae})}}class kf extends fc{}class li extends V{main_input_name="input_values";forward_params=["input_values"]}class Cf extends fe{constructor({audio_codes:M}){super(),this.audio_codes=M}}class Sf extends fe{constructor({audio_values:M}){super(),this.audio_values=M}}class Ff extends li{async encode(M){return new Cf(await O(this.sessions.encoder_model,M))}async decode(M){return new Sf(await O(this.sessions.decoder_model,M))}}class If extends li{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"encoder_model"})}}class Af extends li{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"decoder_model"})}}class ci extends V{main_input_name="input_values";forward_params=["input_values"]}class $f extends fe{constructor({audio_codes:M}){super(),this.audio_codes=M}}class Df extends fe{constructor({audio_values:M}){super(),this.audio_values=M}}class Of extends ci{async encode(M){return new $f(await O(this.sessions.encoder_model,M))}async decode(M){return new Df(await O(this.sessions.decoder_model,M))}}class Lf extends ci{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"encoder_model"})}}class Bf extends ci{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"decoder_model"})}}class di extends V{main_input_name="input_values";forward_params=["input_values"]}class zf extends di{async encode(M){return await O(this.sessions.encoder_model,M)}async decode(M){return await O(this.sessions.decoder_model,M)}}class Rf extends di{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"encoder_model"})}}class jf extends di{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"decoder_model"})}}class Nt{static MODEL_CLASS_MAPPINGS=null;static BASE_IF_FAIL=!1;static async from_pretrained(M,{progress_callback:j=null,config:ae=null,cache_dir:ue=null,local_files_only:ge=!1,revision:Fe="main",model_file_name:Be=null,subfolder:Ne="onnx",device:st=null,dtype:vt=null,use_external_data_format:Pt=null,session_options:kt={}}={}){let ht={progress_callback:j,config:ae,cache_dir:ue,local_files_only:ge,revision:Fe,model_file_name:Be,subfolder:Ne,device:st,dtype:vt,use_external_data_format:Pt,session_options:kt};if(ht.config=await s.AutoConfig.from_pretrained(M,ht),!this.MODEL_CLASS_MAPPINGS)throw new Error("`MODEL_CLASS_MAPPINGS` not implemented for this type of `AutoClass`: "+this.name);let Vt=ht.config.model_type;for(let gt of this.MODEL_CLASS_MAPPINGS){let mt=gt.get(Vt);if(!mt){for(let Dt of gt.values())if(Dt[0]===Vt){mt=Dt;break}if(!mt)continue}return await mt[1].from_pretrained(M,ht)}if(this.BASE_IF_FAIL)return ph.has(Vt)||console.warn(`Unknown model class "${Vt}", attempting to construct from base class.`),await V.from_pretrained(M,ht);throw Error(`Unsupported model type: ${Vt}`)}}let D0=new Map([["bert",["BertModel",pe]],["neobert",["NeoBertModel",Ee]],["modernbert",["ModernBertModel",lt]],["nomic_bert",["NomicBertModel",Rr]],["roformer",["RoFormerModel",Cr]],["electra",["ElectraModel",N]],["esm",["EsmModel",zs]],["convbert",["ConvBertModel",Es]],["camembert",["CamembertModel",dt]],["deberta",["DebertaModel",jr]],["deberta-v2",["DebertaV2Model",Ss]],["mpnet",["MPNetModel",po]],["albert",["AlbertModel",Xe]],["distilbert",["DistilBertModel",Yr]],["roberta",["RobertaModel",ya]],["xlm",["XLMModel",ka]],["xlm-roberta",["XLMRobertaModel",Aa]],["clap",["ClapModel",Km]],["clip",["CLIPModel",en]],["clipseg",["CLIPSegModel",Zr]],["chinese_clip",["ChineseCLIPModel",go]],["siglip",["SiglipModel",Bn]],["jina_clip",["JinaCLIPModel",Ha]],["mobilebert",["MobileBertModel",Jt]],["squeezebert",["SqueezeBertModel",ee]],["wav2vec2",["Wav2Vec2Model",nm]],["wav2vec2-bert",["Wav2Vec2BertModel",Mm]],["unispeech",["UniSpeechModel",_m]],["unispeech-sat",["UniSpeechSatModel",hm]],["hubert",["HubertModel",ym]],["wavlm",["WavLMModel",Em]],["audio-spectrogram-transformer",["ASTModel",Da]],["vits",["VitsModel",lc]],["pyannote",["PyAnnoteModel",cm]],["wespeaker-resnet",["WeSpeakerResNetModel",pm]],["detr",["DetrModel",qp]],["rt_detr",["RTDetrModel",Xp]],["rt_detr_v2",["RTDetrV2Model",Yp]],["rf_detr",["RFDetrModel",t_]],["d_fine",["DFineModel",o_]],["table-transformer",["TableTransformerModel",a_]],["vit",["ViTModel",bp]],["ijepa",["IJepaModel",xp]],["pvt",["PvtModel",Pp]],["vit_msn",["ViTMSNModel",Sp]],["vit_mae",["ViTMAEModel",Cp]],["groupvit",["GroupViTModel",Ap]],["fastvit",["FastViTModel",$p]],["mobilevit",["MobileViTModel",Bp]],["mobilevitv2",["MobileViTV2Model",Rp]],["owlvit",["OwlViTModel",Np]],["owlv2",["Owlv2Model",Wp]],["beit",["BeitModel",Gp]],["deit",["DeiTModel",c_]],["hiera",["HieraModel",u_]],["convnext",["ConvNextModel",R_]],["convnextv2",["ConvNextV2Model",N_]],["dinov2",["Dinov2Model",W_]],["dinov2_with_registers",["Dinov2WithRegistersModel",G_]],["resnet",["ResNetModel",__]],["swin",["SwinModel",f_]],["swin2sr",["Swin2SRModel",w_]],["donut-swin",["DonutSwinModel",z_]],["yolos",["YolosModel",Q_]],["dpt",["DPTModel",M_]],["glpn",["GLPNModel",O_]],["hifigan",["SpeechT5HifiGan",Om]],["efficientnet",["EfficientNetModel",ef]],["decision_transformer",["DecisionTransformerModel",hf]],["patchtst",["PatchTSTForPrediction",vf]],["patchtsmixer",["PatchTSMixerForPrediction",Tf]],["mobilenet_v1",["MobileNetV1Model",rf]],["mobilenet_v2",["MobileNetV2Model",nf]],["mobilenet_v3",["MobileNetV3Model",cf]],["mobilenet_v4",["MobileNetV4Model",pf]],["maskformer",["MaskFormerModel",$_]],["mgp-str",["MgpstrForSceneTextRecognition",xf]],["style_text_to_speech_2",["StyleTextToSpeech2Model",Am]]]),O0=new Map([["t5",["T5Model",Kt]],["longt5",["LongT5Model",Ir]],["mt5",["MT5Model",Ar]],["bart",["BartModel",Qt]],["mbart",["MBartModel",ps]],["marian",["MarianModel",tm]],["whisper",["WhisperModel",eo]],["m2m_100",["M2M100Model",sm]],["blenderbot",["BlenderbotModel",cr]],["blenderbot-small",["BlenderbotSmallModel",Ns]]]),L0=new Map([["mimi",["MimiModel",Ff]],["dac",["DacModel",Of]],["snac",["SnacModel",zf]]]),B0=new Map([["bloom",["BloomModel",_p]],["jais",["JAISModel",sn]],["gpt2",["GPT2Model",Vn]],["gptj",["GPTJModel",qn]],["gpt_bigcode",["GPTBigCodeModel",_]],["gpt_neo",["GPTNeoModel",Gn]],["gpt_neox",["GPTNeoXModel",nn]],["codegen",["CodeGenModel",B]],["llama",["LlamaModel",ve]],["arcee",["ArceeModel",nt]],["lfm2",["Lfm2Model",jt]],["smollm3",["SmolLM3Model",Qa]],["exaone",["ExaoneModel",Bu]],["olmo",["OlmoModel",Nu]],["olmo2",["Olmo2Model",Wu]],["mobilellm",["MobileLLMModel",Ru]],["granite",["GraniteModel",Gu]],["cohere",["CohereModel",qu]],["gemma",["GemmaModel",Qu]],["gemma2",["Gemma2Model",Ju]],["gemma3_text",["Gemma3Model",Zu]],["helium",["HeliumModel",$u]],["glm",["GlmModel",Ou]],["openelm",["OpenELMModel",tp]],["qwen2",["Qwen2Model",sp]],["qwen3",["Qwen3Model",np]],["phi",["PhiModel",cp]],["phi3",["Phi3Model",up]],["mpt",["MptModel",fp]],["opt",["OPTModel",gp]],["mistral",["MistralModel",zm]],["ernie4_5",["Ernie4_5_Model",jm]],["starcoder2",["Starcoder2Model",Vm]],["falcon",["FalconModel",Um]],["stablelm",["StableLmModel",Ym]],["modernbert-decoder",["ModernBertDecoderModel",Ot]]]),hc=new Map([["speecht5",["SpeechT5ForSpeechToText",$m]],["whisper",["WhisperForConditionalGeneration",Sn]],["lite-whisper",["LiteWhisperForConditionalGeneration",Fn]],["moonshine",["MoonshineForConditionalGeneration",Oa]]]),Nf=new Map([["speecht5",["SpeechT5ForTextToSpeech",Dm]]]),Vf=new Map([["vits",["VitsModel",lc]],["musicgen",["MusicgenForConditionalGeneration",pc]]]),Wf=new Map([["bert",["BertForSequenceClassification",de]],["neobert",["NeoBertForSequenceClassification",Ge]],["modernbert",["ModernBertForSequenceClassification",Ye]],["roformer",["RoFormerForSequenceClassification",Qs]],["electra",["ElectraForSequenceClassification",se]],["esm",["EsmForSequenceClassification",Le]],["convbert",["ConvBertForSequenceClassification",ct]],["camembert",["CamembertForSequenceClassification",Ct]],["deberta",["DebertaForSequenceClassification",Sr]],["deberta-v2",["DebertaV2ForSequenceClassification",Fs]],["mpnet",["MPNetForSequenceClassification",Xo]],["albert",["AlbertForSequenceClassification",Je]],["distilbert",["DistilBertForSequenceClassification",Fr]],["roberta",["RobertaForSequenceClassification",Ta]],["xlm",["XLMForSequenceClassification",Sa]],["xlm-roberta",["XLMRobertaForSequenceClassification",Tn]],["bart",["BartForSequenceClassification",Gr]],["mbart",["MBartForSequenceClassification",ns]],["mobilebert",["MobileBertForSequenceClassification",ds]],["squeezebert",["SqueezeBertForSequenceClassification",me]]]),Uf=new Map([["bert",["BertForTokenClassification",Ae]],["neobert",["NeoBertForTokenClassification",Ve]],["modernbert",["ModernBertForTokenClassification",ft]],["roformer",["RoFormerForTokenClassification",Xs]],["electra",["ElectraForTokenClassification",he]],["esm",["EsmForTokenClassification",Re]],["convbert",["ConvBertForTokenClassification",Cs]],["camembert",["CamembertForTokenClassification",St]],["deberta",["DebertaForTokenClassification",Gt]],["deberta-v2",["DebertaV2ForTokenClassification",Is]],["mpnet",["MPNetForTokenClassification",ce]],["distilbert",["DistilBertForTokenClassification",cs]],["roberta",["RobertaForTokenClassification",Pa]],["xlm",["XLMForTokenClassification",Fa]],["xlm-roberta",["XLMRobertaForTokenClassification",Pn]]]),gc=new Map([["t5",["T5ForConditionalGeneration",mr]],["longt5",["LongT5ForConditionalGeneration",nr]],["mt5",["MT5ForConditionalGeneration",$r]],["bart",["BartForConditionalGeneration",hr]],["mbart",["MBartForConditionalGeneration",Tr]],["marian",["MarianMTModel",rm]],["m2m_100",["M2M100ForConditionalGeneration",om]],["blenderbot",["BlenderbotForConditionalGeneration",er]],["blenderbot-small",["BlenderbotSmallForConditionalGeneration",Jo]]]),wc=new Map([["bloom",["BloomForCausalLM",mp]],["gpt2",["GPT2LMHeadModel",Wn]],["jais",["JAISLMHeadModel",Un]],["gptj",["GPTJForCausalLM",Hn]],["gpt_bigcode",["GPTBigCodeForCausalLM",T]],["gpt_neo",["GPTNeoForCausalLM",Mo]],["gpt_neox",["GPTNeoXForCausalLM",Kn]],["codegen",["CodeGenForCausalLM",W]],["llama",["LlamaForCausalLM",Oe]],["arcee",["ArceeForCausalLM",Mt]],["lfm2",["Lfm2ForCausalLM",br]],["smollm3",["SmolLM3ForCausalLM",Au]],["exaone",["ExaoneForCausalLM",zu]],["olmo",["OlmoForCausalLM",Vu]],["olmo2",["Olmo2ForCausalLM",Uu]],["mobilellm",["MobileLLMForCausalLM",ju]],["granite",["GraniteForCausalLM",Ku]],["cohere",["CohereForCausalLM",Hu]],["gemma",["GemmaForCausalLM",Xu]],["gemma2",["Gemma2ForCausalLM",Yu]],["gemma3_text",["Gemma3ForCausalLM",ep]],["helium",["HeliumForCausalLM",Du]],["glm",["GlmForCausalLM",Lu]],["openelm",["OpenELMForCausalLM",rp]],["qwen2",["Qwen2ForCausalLM",op]],["qwen3",["Qwen3ForCausalLM",ap]],["phi",["PhiForCausalLM",dp]],["phi3",["Phi3ForCausalLM",pp]],["mpt",["MptForCausalLM",hp]],["opt",["OPTForCausalLM",wp]],["mbart",["MBartForCausalLM",ar]],["mistral",["MistralForCausalLM",Rm]],["ernie4_5",["Ernie4_5_ForCausalLM",Nm]],["starcoder2",["Starcoder2ForCausalLM",Wm]],["falcon",["FalconForCausalLM",Gm]],["trocr",["TrOCRForCausalLM",Bm]],["stablelm",["StableLmForCausalLM",Zm]],["modernbert-decoder",["ModernBertDecoderForCausalLM",vr]],["phi3_v",["Phi3VForCausalLM",Dn]]]),z0=new Map([["multi_modality",["MultiModalityCausalLM",wf]]]),Gf=new Map([["bert",["BertForMaskedLM",xe]],["neobert",["NeoBertForMaskedLM",je]],["modernbert",["ModernBertForMaskedLM",rt]],["roformer",["RoFormerForMaskedLM",Hs]],["electra",["ElectraForMaskedLM",Y]],["esm",["EsmForMaskedLM",Ur]],["convbert",["ConvBertForMaskedLM",ks]],["camembert",["CamembertForMaskedLM",qe]],["deberta",["DebertaForMaskedLM",pr]],["deberta-v2",["DebertaV2ForMaskedLM",yr]],["mpnet",["MPNetForMaskedLM",_o]],["albert",["AlbertForMaskedLM",It]],["distilbert",["DistilBertForMaskedLM",_r]],["roberta",["RobertaForMaskedLM",yn]],["xlm",["XLMWithLMHeadModel",Ca]],["xlm-roberta",["XLMRobertaForMaskedLM",$a]],["mobilebert",["MobileBertForMaskedLM",Rs]],["squeezebert",["SqueezeBertForMaskedLM",oe]]]),Kf=new Map([["bert",["BertForQuestionAnswering",$e]],["neobert",["NeoBertForQuestionAnswering",De]],["roformer",["RoFormerForQuestionAnswering",Bs]],["electra",["ElectraForQuestionAnswering",ke]],["convbert",["ConvBertForQuestionAnswering",k]],["camembert",["CamembertForQuestionAnswering",ur]],["deberta",["DebertaForQuestionAnswering",os]],["deberta-v2",["DebertaV2ForQuestionAnswering",Vr]],["mpnet",["MPNetForQuestionAnswering",S]],["albert",["AlbertForQuestionAnswering",We]],["distilbert",["DistilBertForQuestionAnswering",lr]],["roberta",["RobertaForQuestionAnswering",Ea]],["xlm",["XLMForQuestionAnswering",Ia]],["xlm-roberta",["XLMRobertaForQuestionAnswering",En]],["mobilebert",["MobileBertForQuestionAnswering",js]],["squeezebert",["SqueezeBertForQuestionAnswering",Te]]]),bc=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",An]],["idefics3",["Idefics3ForConditionalGeneration",_s]],["smolvlm",["SmolVLMForConditionalGeneration",Zo]]]),qf=new Map([["llava",["LlavaForConditionalGeneration",fo]],["llava_onevision",["LlavaOnevisionForConditionalGeneration",La]],["moondream1",["Moondream1ForConditionalGeneration",Ba]],["florence2",["Florence2ForConditionalGeneration",Ra]],["qwen2-vl",["Qwen2VLForConditionalGeneration",lp]],["idefics3",["Idefics3ForConditionalGeneration",_s]],["smolvlm",["SmolVLMForConditionalGeneration",Zo]],["paligemma",["PaliGemmaForConditionalGeneration",Na]],["llava_qwen2",["LlavaQwen2ForCausalLM",Va]],["gemma3n",["Gemma3nForConditionalGeneration",$n]]]),Hf=new Map([["ultravox",["UltravoxModel",fc]],["voxtral",["VoxtralForConditionalGeneration",kf]]]),R0=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",An]]]),Qf=new Map([["vit",["ViTForImageClassification",Mp]],["ijepa",["IJepaForImageClassification",vp]],["pvt",["PvtForImageClassification",Ep]],["vit_msn",["ViTMSNForImageClassification",Fp]],["fastvit",["FastViTForImageClassification",Dp]],["mobilevit",["MobileViTForImageClassification",zp]],["mobilevitv2",["MobileViTV2ForImageClassification",jp]],["beit",["BeitForImageClassification",Kp]],["deit",["DeiTForImageClassification",d_]],["hiera",["HieraForImageClassification",p_]],["convnext",["ConvNextForImageClassification",j_]],["convnextv2",["ConvNextV2ForImageClassification",V_]],["dinov2",["Dinov2ForImageClassification",U_]],["dinov2_with_registers",["Dinov2WithRegistersForImageClassification",K_]],["resnet",["ResNetForImageClassification",m_]],["swin",["SwinForImageClassification",h_]],["segformer",["SegformerForImageClassification",Xm]],["efficientnet",["EfficientNetForImageClassification",tf]],["mobilenet_v1",["MobileNetV1ForImageClassification",sf]],["mobilenet_v2",["MobileNetV2ForImageClassification",af]],["mobilenet_v3",["MobileNetV3ForImageClassification",df]],["mobilenet_v4",["MobileNetV4ForImageClassification",_f]]]),Xf=new Map([["detr",["DetrForObjectDetection",Hp]],["rt_detr",["RTDetrForObjectDetection",Jp]],["rt_detr_v2",["RTDetrV2ForObjectDetection",Zp]],["rf_detr",["RFDetrForObjectDetection",r_]],["d_fine",["DFineForObjectDetection",n_]],["table-transformer",["TableTransformerForObjectDetection",i_]],["yolos",["YolosForObjectDetection",X_]]]),Jf=new Map([["owlvit",["OwlViTForObjectDetection",Vp]],["owlv2",["Owlv2ForObjectDetection",Up]],["grounding-dino",["GroundingDinoForObjectDetection",H_]]]),dn=new Map([["detr",["DetrForSegmentation",Ll]],["clipseg",["CLIPSegForImageSegmentation",wo]]]),Yf=new Map([["segformer",["SegformerForSemanticSegmentation",Jm]],["sapiens",["SapiensForSemanticSegmentation",T_]],["swin",["SwinForSemanticSegmentation",g_]],["mobilenet_v1",["MobileNetV1ForSemanticSegmentation",of]],["mobilenet_v2",["MobileNetV2ForSemanticSegmentation",lf]],["mobilenet_v3",["MobileNetV3ForSemanticSegmentation",uf]],["mobilenet_v4",["MobileNetV4ForSemanticSegmentation",mf]]]),Zf=new Map([["detr",["DetrForSegmentation",Ll]],["maskformer",["MaskFormerForInstanceSegmentation",D_]]]),eh=new Map([["sam",["SamModel",Z_]]]),th=new Map([["wav2vec2",["Wav2Vec2ForCTC",am]],["wav2vec2-bert",["Wav2Vec2BertForCTC",xm]],["unispeech",["UniSpeechForCTC",mm]],["unispeech-sat",["UniSpeechSatForCTC",gm]],["wavlm",["WavLMForCTC",km]],["hubert",["HubertForCTC",Tm]]]),rh=new Map([["wav2vec2",["Wav2Vec2ForSequenceClassification",im]],["wav2vec2-bert",["Wav2Vec2BertForSequenceClassification",vm]],["unispeech",["UniSpeechForSequenceClassification",fm]],["unispeech-sat",["UniSpeechSatForSequenceClassification",wm]],["wavlm",["WavLMForSequenceClassification",Cm]],["hubert",["HubertForSequenceClassification",Pm]],["audio-spectrogram-transformer",["ASTForAudioClassification",Cn]]]),sh=new Map([["wavlm",["WavLMForXVector",Sm]]]),oh=new Map([["unispeech-sat",["UniSpeechSatForAudioFrameClassification",bm]],["wavlm",["WavLMForAudioFrameClassification",Fm]],["wav2vec2",["Wav2Vec2ForAudioFrameClassification",lm]],["pyannote",["PyAnnoteForAudioFrameClassification",dm]]]),nh=new Map([["vitmatte",["VitMatteForImageMatting",Lp]]]),j0=new Map([["patchtst",["PatchTSTForPrediction",yf]],["patchtsmixer",["PatchTSMixerForPrediction",Pf]]]),ah=new Map([["swin2sr",["Swin2SRForImageSuperResolution",b_]]]),ih=new Map([["dpt",["DPTForDepthEstimation",x_]],["depth_anything",["DepthAnythingForDepthEstimation",y_]],["glpn",["GLPNForDepthEstimation",L_]],["sapiens",["SapiensForDepthEstimation",P_]],["depth_pro",["DepthProForDepthEstimation",C_]],["metric3d",["Metric3DForDepthEstimation",F_]],["metric3dv2",["Metric3Dv2ForDepthEstimation",A_]]]),lh=new Map([["sapiens",["SapiensForNormalEstimation",E_]]]),ch=new Map([["vitpose",["VitPoseForPoseEstimation",Tp]]]),dh=new Map([["clip",["CLIPVisionModelWithProjection",Ln]],["siglip",["SiglipVisionModel",zn]],["jina_clip",["JinaCLIPVisionModel",Nn]]]),uh=[[D0,y.EncoderOnly],[O0,y.EncoderDecoder],[B0,y.DecoderOnly],[L0,y.AutoEncoder],[Wf,y.EncoderOnly],[Uf,y.EncoderOnly],[gc,y.Seq2Seq],[hc,y.Seq2Seq],[wc,y.DecoderOnly],[z0,y.MultiModality],[Gf,y.EncoderOnly],[Kf,y.EncoderOnly],[bc,y.Vision2Seq],[qf,y.ImageTextToText],[Hf,y.AudioTextToText],[Qf,y.EncoderOnly],[dn,y.EncoderOnly],[Zf,y.EncoderOnly],[Yf,y.EncoderOnly],[nh,y.EncoderOnly],[j0,y.EncoderOnly],[ah,y.EncoderOnly],[ih,y.EncoderOnly],[lh,y.EncoderOnly],[ch,y.EncoderOnly],[Xf,y.EncoderOnly],[Jf,y.EncoderOnly],[eh,y.MaskGeneration],[th,y.EncoderOnly],[rh,y.EncoderOnly],[Nf,y.Seq2Seq],[Vf,y.EncoderOnly],[sh,y.EncoderOnly],[oh,y.EncoderOnly],[dh,y.EncoderOnly]];for(let[b,M]of uh)for(let[j,ae]of b.values())P.set(j,M),g.set(ae,j),I.set(j,ae);let N0=[["MusicgenForConditionalGeneration",pc,y.Musicgen],["Phi3VForCausalLM",Dn,y.Phi3V],["CLIPTextModelWithProjection",On,y.EncoderOnly],["SiglipTextModel",qa,y.EncoderOnly],["JinaCLIPTextModel",jn,y.EncoderOnly],["ClapTextModelWithProjection",qm,y.EncoderOnly],["ClapAudioModelWithProjection",Hm,y.EncoderOnly],["DacEncoderModel",Lf,y.EncoderOnly],["DacDecoderModel",Bf,y.EncoderOnly],["MimiEncoderModel",If,y.EncoderOnly],["MimiDecoderModel",Af,y.EncoderOnly],["SnacEncoderModel",Rf,y.EncoderOnly],["SnacDecoderModel",jf,y.EncoderOnly],["Gemma3nForConditionalGeneration",$n,y.ImageAudioTextToText]];for(let[b,M,j]of N0)P.set(b,j),g.set(M,b),I.set(b,M);let ph=new Map([["modnet",dn],["birefnet",dn],["isnet",dn],["ben",dn]]);for(let[b,M]of ph.entries())M.set(b,["PreTrainedModel",V]),P.set(b,y.EncoderOnly),g.set(V,b),I.set(b,V);class V0 extends Nt{static MODEL_CLASS_MAPPINGS=uh.map(M=>M[0]);static BASE_IF_FAIL=!0}class W0 extends Nt{static MODEL_CLASS_MAPPINGS=[Wf]}class U0 extends Nt{static MODEL_CLASS_MAPPINGS=[Uf]}class G0 extends Nt{static MODEL_CLASS_MAPPINGS=[gc]}class K0 extends Nt{static MODEL_CLASS_MAPPINGS=[hc]}class q0 extends Nt{static MODEL_CLASS_MAPPINGS=[Nf]}class H0 extends Nt{static MODEL_CLASS_MAPPINGS=[Vf]}class Q0 extends Nt{static MODEL_CLASS_MAPPINGS=[wc]}class X0 extends Nt{static MODEL_CLASS_MAPPINGS=[Gf]}class J0 extends Nt{static MODEL_CLASS_MAPPINGS=[Kf]}class Y0 extends Nt{static MODEL_CLASS_MAPPINGS=[bc]}class Z0 extends Nt{static MODEL_CLASS_MAPPINGS=[Qf]}class eT extends Nt{static MODEL_CLASS_MAPPINGS=[dn]}class tT extends Nt{static MODEL_CLASS_MAPPINGS=[Yf]}class rT extends Nt{static MODEL_CLASS_MAPPINGS=[Zf]}class sT extends Nt{static MODEL_CLASS_MAPPINGS=[Xf]}class oT extends Nt{static MODEL_CLASS_MAPPINGS=[Jf]}class nT extends Nt{static MODEL_CLASS_MAPPINGS=[eh]}class aT extends Nt{static MODEL_CLASS_MAPPINGS=[th]}class iT extends Nt{static MODEL_CLASS_MAPPINGS=[rh]}class lT extends Nt{static MODEL_CLASS_MAPPINGS=[sh]}class cT extends Nt{static MODEL_CLASS_MAPPINGS=[oh]}class dT extends Nt{static MODEL_CLASS_MAPPINGS=[R0]}class uT extends Nt{static MODEL_CLASS_MAPPINGS=[nh]}class pT extends Nt{static MODEL_CLASS_MAPPINGS=[ah]}class _T extends Nt{static MODEL_CLASS_MAPPINGS=[ih]}class mT extends Nt{static MODEL_CLASS_MAPPINGS=[lh]}class fT extends Nt{static MODEL_CLASS_MAPPINGS=[ch]}class hT extends Nt{static MODEL_CLASS_MAPPINGS=[dh]}class gT extends Nt{static MODEL_CLASS_MAPPINGS=[qf]}class wT extends Nt{static MODEL_CLASS_MAPPINGS=[Hf]}class bT extends fe{constructor({logits:M,past_key_values:j,encoder_outputs:ae,decoder_attentions:ue=null,cross_attentions:ge=null}){super(),this.logits=M,this.past_key_values=j,this.encoder_outputs=ae,this.decoder_attentions=ue,this.cross_attentions=ge}}class xt extends fe{constructor({logits:M,...j}){super(),this.logits=M;let ae=Object.values(j);ae.length>0&&(this.attentions=ae)}}class _h extends fe{constructor({logits:M,embeddings:j}){super(),this.logits=M,this.embeddings=j}}class Mr extends fe{constructor({logits:M}){super(),this.logits=M}}class Pr extends fe{constructor({logits:M}){super(),this.logits=M}}class Lr extends fe{constructor({start_logits:M,end_logits:j}){super(),this.start_logits=M,this.end_logits=j}}class vo extends fe{constructor({logits:M}){super(),this.logits=M}}class MT extends fe{constructor({logits:M,past_key_values:j}){super(),this.logits=M,this.past_key_values=j}}class mh extends fe{constructor({alphas:M}){super(),this.alphas=M}}class fh extends fe{constructor({waveform:M,spectrogram:j}){super(),this.waveform=M,this.spectrogram=j}}},"./src/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.js":(e,r,t)=>{t.r(r),t.d(r,{ASTFeatureExtractor:()=>a});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),n=t("./src/utils/audio.js");class a extends s.FeatureExtractor{constructor(l){super(l);let c=this.config.sampling_rate,p=(0,n.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(c/2),c,null,"kaldi",!0);this.mel_filters=p,this.window=(0,n.window_function)(400,"hann",{periodic:!1}),this.mean=this.config.mean,this.std=this.config.std}async _extract_fbank_features(l,c){return(0,n.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 p=this.std*2,u=c.data;for(let d=0;d<u.length;++d)u[d]=(u[d]-this.mean)/p}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"),n=t("./src/base/feature_extraction_utils.js"),a=t("./src/models/feature_extractors.js");class i{static async from_pretrained(c,p={}){let u=await(0,o.getModelJSON)(c,s.FEATURE_EXTRACTOR_NAME,!0,p),d=u.feature_extractor_type,h=a[d];if(!h)throw new Error(`Unknown feature_extractor_type: '${d}'. Please report this at ${s.GITHUB_ISSUE_URL}.`);return new h(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"),n=t("./src/base/image_processors_utils.js"),a=t("./src/models/image_processors.js");class i{static async from_pretrained(c,p={}){let u=await(0,o.getModelJSON)(c,s.IMAGE_PROCESSOR_NAME,!0,p),d=u.image_processor_type??u.feature_extractor_type,h=a[d?.replace(/Fast$/,"")];return h||(d!==void 0&&console.warn(`Image processor type '${d}' not found, assuming base ImageProcessor. Please report this at ${s.GITHUB_ISSUE_URL}.`),h=n.ImageProcessor),new h(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"),n=t("./src/base/processing_utils.js"),a=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 h=await(0,o.getModelJSON)(u,s.IMAGE_PROCESSOR_NAME,!0,d),{image_processor_type:f,feature_extractor_type:v,processor_class:F}=h;if(F&&a[F])return a[F].from_pretrained(u,d);if(!f&&!v)throw new Error("No `image_processor_type` or `feature_extractor_type` found in the config.");let x={};if(f){let C=i[f.replace(/Fast$/,"")];if(!C)throw new Error(`Unknown image_processor_type: '${f}'.`);x.image_processor=new C(h)}if(v){let C=i[v];if(C)x.image_processor=new C(h);else{let y=l[v];if(!y)throw new Error(`Unknown feature_extractor_type: '${v}'.`);x.feature_extractor=new y(h)}}let w={};return new n.Processor(w,x,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:()=>a});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),n=t("./src/utils/audio.js");class a extends s.FeatureExtractor{constructor(l){super(l),this.mel_filters=(0,n.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,n.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,n.window_function)(this.config.fft_window_size,"hann")}async _get_input_mel(l,c,p,u){let d,h=!1,f=l.length-c;if(f>0)if(p==="rand_trunc"){h=!0;let v=Math.floor(Math.random()*(f+1));l=l.subarray(v,v+c),d=await this._extract_fbank_features(l,this.mel_filters_slaney,this.config.nb_max_samples)}else throw new Error(`Truncation strategy "${p}" not implemented`);else{if(f<0){let v=new Float64Array(c);if(v.set(l),u==="repeat")for(let F=l.length;F<c;F+=l.length)v.set(l.subarray(0,Math.min(l.length,c-F)),F);else if(u==="repeatpad")for(let F=l.length;F<-f;F+=l.length)v.set(l,F);l=v}if(p==="fusion")throw new Error(`Truncation strategy "${p}" 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,p=null){return(0,n.spectrogram)(l,this.window,this.config.fft_window_size,this.config.hop_length,{power:2,mel_filters:c,log_mel:"dB",max_num_frames:p,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:()=>n,CLIPImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class n extends o{}},"./src/models/convnext/image_processing_convnext.js":(e,r,t)=>{t.r(r),t.d(r,{ConvNextFeatureExtractor:()=>n,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),[p,u]=this.get_resize_output_image_size(i,{shortest_edge:c});i=await i.resize(p,u,{resample:this.resample}),i=await i.center_crop(l,l)}else i=await i.resize(l,l,{resample:this.resample});return i}}class n 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:()=>n,DeiTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class n extends o{}},"./src/models/detr/image_processing_detr.js":(e,r,t)=>{t.r(r),t.d(r,{DetrFeatureExtractor:()=>a,DetrImageProcessor:()=>n});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/tensor.js");class n extends s.ImageProcessor{async _call(l){let c=await super._call(l),p=[c.pixel_values.dims[0],64,64],u=(0,o.full)(p,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 a extends n{}},"./src/models/donut/image_processing_donut.js":(e,r,t)=>{t.r(r),t.d(r,{DonutFeatureExtractor:()=>n,DonutImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{pad_image(i,l,c,p={}){let[u,d,h]=l,f=this.image_mean;Array.isArray(this.image_mean)||(f=new Array(h).fill(f));let v=this.image_std;Array.isArray(v)||(v=new Array(h).fill(f));let F=f.map((x,w)=>-x/v[w]);return super.pad_image(i,l,c,{center:!0,constant_values:F,...p})}}class n extends o{}},"./src/models/dpt/image_processing_dpt.js":(e,r,t)=>{t.r(r),t.d(r,{DPTFeatureExtractor:()=>n,DPTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class n 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(a){super(a),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:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js");class n 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:()=>n.ClapFeatureExtractor,DacFeatureExtractor:()=>a.DacFeatureExtractor,EncodecFeatureExtractor:()=>o.EncodecFeatureExtractor,Gemma3nAudioFeatureExtractor:()=>i.Gemma3nAudioFeatureExtractor,ImageFeatureExtractor:()=>F.ImageProcessor,MoonshineFeatureExtractor:()=>l.MoonshineFeatureExtractor,PyAnnoteFeatureExtractor:()=>c.PyAnnoteFeatureExtractor,SeamlessM4TFeatureExtractor:()=>p.SeamlessM4TFeatureExtractor,SnacFeatureExtractor:()=>u.SnacFeatureExtractor,SpeechT5FeatureExtractor:()=>d.SpeechT5FeatureExtractor,Wav2Vec2FeatureExtractor:()=>h.Wav2Vec2FeatureExtractor,WeSpeakerFeatureExtractor:()=>f.WeSpeakerFeatureExtractor,WhisperFeatureExtractor:()=>v.WhisperFeatureExtractor});var s=t("./src/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.js"),o=t("./src/models/encodec/feature_extraction_encodec.js"),n=t("./src/models/clap/feature_extraction_clap.js"),a=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/pyannote/feature_extraction_pyannote.js"),p=t("./src/models/seamless_m4t/feature_extraction_seamless_m4t.js"),u=t("./src/models/snac/feature_extraction_snac.js"),d=t("./src/models/speecht5/feature_extraction_speecht5.js"),h=t("./src/models/wav2vec2/feature_extraction_wav2vec2.js"),f=t("./src/models/wespeaker/feature_extraction_wespeaker.js"),v=t("./src/models/whisper/feature_extraction_whisper.js"),F=t("./src/base/image_processors_utils.js")},"./src/models/florence2/processing_florence2.js":(e,r,t)=>{t.r(r),t.d(r,{Florence2Processor:()=>a});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),n=t("./src/tokenizers.js");class a extends s.Processor{static tokenizer_class=n.AutoTokenizer;static image_processor_class=o.AutoImageProcessor;constructor(l,c,p){super(l,c,p);let{tasks_answer_post_processing_type:u,task_prompts_without_inputs:d,task_prompts_with_input:h}=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(h??{})),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 p of l)if(this.task_prompts_without_inputs.has(p))c.push(this.task_prompts_without_inputs.get(p));else{for(let[u,d]of this.task_prompts_with_input)if(p.includes(u)){c.push(d.replaceAll("{input}",p).replaceAll(u,""));break}c.length!==l.length&&c.push(p)}return c}post_process_generation(l,c,p){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 h=u==="ocr"?"quad_boxes":"bboxes",f=l.matchAll(this.regexes[h]),v=[],F=[];for(let[x,w,...C]of f)v.push(w?w.trim():v.at(-1)??""),F.push(C.map((y,P)=>(Number(y)+.5)/this.size_per_bin*p[P%2]));d={labels:v,[h]:F};break;default:throw new Error(`Task "${c}" (of type "${u}") not yet implemented.`)}return{[c]:d}}async _call(l,c=null,p={}){if(!l&&!c)throw new Error("Either text or images must be provided");let u=await this.image_processor(l,p),d=c?this.tokenizer(this.construct_prompts(c),p):{};return{...u,...d}}}},"./src/models/gemma3n/feature_extraction_gemma3n.js":(e,r,t)=>{t.r(r),t.d(r,{Gemma3nAudioFeatureExtractor:()=>a});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),n=t("./src/utils/audio.js");class a extends s.FeatureExtractor{constructor(l){super(l);let{fft_length:c,feature_size:p,min_frequency:u,max_frequency:d,sampling_rate:h,frame_length:f}=this.config,v=(0,n.mel_filter_bank)(Math.floor(1+c/2),p,u,d,h,null,"htk",!1);this.mel_filters=v,this.window=(0,n.window_function)(f,"hann")}async _extract_fbank_features(l,c){return(0,n.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:p=!0,padding:u=!0,pad_to_multiple_of:d=128}={}){if((0,s.validate_audio_inputs)(l,"Gemma3nAudioFeatureExtractor"),p&&l.length>c&&(l=l.slice(0,c)),u&&l.length%d!==0){let v=d-l.length%d,F=new Float64Array(l.length+v);F.set(l),this.config.padding_value!==0&&F.fill(this.config.padding_value,l.length),l=F}let h=await this._extract_fbank_features(l,this.config.max_length),f=(0,o.full)([1,h.dims[0]],!0);return{input_features:h.unsqueeze_(0),input_features_mask:f}}}},"./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"),n=t("./src/models/auto/feature_extraction_auto.js"),a=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=n.AutoFeatureExtractor;static tokenizer_class=a.AutoTokenizer;static uses_processor_config=!0;static uses_chat_template_file=!0;constructor(u,d,h){super(u,d,h),this.audio_seq_length=this.config.audio_seq_length,this.image_seq_length=this.config.image_seq_length;let{audio_token_id:f,boa_token:v,audio_token:F,eoa_token:x,image_token_id:w,boi_token:C,image_token:y,eoi_token:P}=this.tokenizer.config;this.audio_token_id=f,this.boa_token=v,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:h=null,token_callback_function:f=null,on_chunk_start:v=null,on_chunk_end:F=null,on_finalize:x=null,time_precision:w=.02,skip_special_tokens:C=!0,decode_kwargs:y={}}={}){super(u,{skip_prompt:d,skip_special_tokens:C,callback_function:h,token_callback_function:f,decode_kwargs:y}),this.timestamp_begin=u.timestamp_begin,this.on_chunk_start=v,this.on_chunk_end=F,this.on_finalize=x,this.time_precision=w,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 h=Number(d[0])-this.timestamp_begin;if(h>=0){let f=h*this.time_precision;this.waiting_for_timestamp?this.on_chunk_end?.(f):this.on_chunk_start?.(f),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:()=>kn,ASTModel:()=>Da,ASTPreTrainedModel:()=>En,AlbertForMaskedLM:()=>It,AlbertForQuestionAnswering:()=>We,AlbertForSequenceClassification:()=>Je,AlbertModel:()=>Xe,AlbertPreTrainedModel:()=>He,ArceeForCausalLM:()=>Mt,ArceeModel:()=>nt,ArceePreTrainedModel:()=>Qe,AutoModel:()=>W0,AutoModelForAudioClassification:()=>lT,AutoModelForAudioFrameClassification:()=>dT,AutoModelForAudioTextToText:()=>bT,AutoModelForCTC:()=>iT,AutoModelForCausalLM:()=>X0,AutoModelForDepthEstimation:()=>mT,AutoModelForDocumentQuestionAnswering:()=>uT,AutoModelForImageClassification:()=>eT,AutoModelForImageFeatureExtraction:()=>gT,AutoModelForImageMatting:()=>pT,AutoModelForImageSegmentation:()=>tT,AutoModelForImageTextToText:()=>wT,AutoModelForImageToImage:()=>_T,AutoModelForMaskGeneration:()=>aT,AutoModelForMaskedLM:()=>J0,AutoModelForNormalEstimation:()=>fT,AutoModelForObjectDetection:()=>oT,AutoModelForPoseEstimation:()=>hT,AutoModelForQuestionAnswering:()=>Y0,AutoModelForSemanticSegmentation:()=>rT,AutoModelForSeq2SeqLM:()=>K0,AutoModelForSequenceClassification:()=>U0,AutoModelForSpeechSeq2Seq:()=>q0,AutoModelForTextToSpectrogram:()=>H0,AutoModelForTextToWaveform:()=>Q0,AutoModelForTokenClassification:()=>G0,AutoModelForUniversalSegmentation:()=>sT,AutoModelForVision2Seq:()=>Z0,AutoModelForXVector:()=>cT,AutoModelForZeroShotObjectDetection:()=>nT,BartForConditionalGeneration:()=>hr,BartForSequenceClassification:()=>Gr,BartModel:()=>Qt,BartPretrainedModel:()=>Qr,BaseModelOutput:()=>Se,BeitForImageClassification:()=>Kp,BeitModel:()=>Gp,BeitPreTrainedModel:()=>Ol,BertForMaskedLM:()=>xe,BertForQuestionAnswering:()=>$e,BertForSequenceClassification:()=>de,BertForTokenClassification:()=>Ae,BertModel:()=>pe,BertPreTrainedModel:()=>Pe,BlenderbotForConditionalGeneration:()=>er,BlenderbotModel:()=>cr,BlenderbotPreTrainedModel:()=>tr,BlenderbotSmallForConditionalGeneration:()=>Xo,BlenderbotSmallModel:()=>Ns,BlenderbotSmallPreTrainedModel:()=>Kr,BloomForCausalLM:()=>mp,BloomModel:()=>_p,BloomPreTrainedModel:()=>yl,CLIPModel:()=>Zo,CLIPPreTrainedModel:()=>ms,CLIPSegForImageSegmentation:()=>wo,CLIPSegModel:()=>Zr,CLIPSegPreTrainedModel:()=>to,CLIPTextModel:()=>Ga,CLIPTextModelWithProjection:()=>Dn,CLIPVisionModel:()=>Ka,CLIPVisionModelWithProjection:()=>On,CamembertForMaskedLM:()=>qe,CamembertForQuestionAnswering:()=>ur,CamembertForSequenceClassification:()=>Ct,CamembertForTokenClassification:()=>St,CamembertModel:()=>dt,CamembertPreTrainedModel:()=>Ze,CausalLMOutput:()=>vo,CausalLMOutputWithPast:()=>xT,ChineseCLIPModel:()=>go,ChineseCLIPPreTrainedModel:()=>zn,ClapAudioModelWithProjection:()=>Hm,ClapModel:()=>Km,ClapPreTrainedModel:()=>ri,ClapTextModelWithProjection:()=>qm,CodeGenForCausalLM:()=>W,CodeGenModel:()=>B,CodeGenPreTrainedModel:()=>A,CohereForCausalLM:()=>Hu,CohereModel:()=>qu,CoherePreTrainedModel:()=>ml,ConvBertForMaskedLM:()=>ks,ConvBertForQuestionAnswering:()=>k,ConvBertForSequenceClassification:()=>ct,ConvBertForTokenClassification:()=>Cs,ConvBertModel:()=>Es,ConvBertPreTrainedModel:()=>_t,ConvNextForImageClassification:()=>j_,ConvNextModel:()=>R_,ConvNextPreTrainedModel:()=>Xl,ConvNextV2ForImageClassification:()=>V_,ConvNextV2Model:()=>N_,ConvNextV2PreTrainedModel:()=>Jl,DFineForObjectDetection:()=>n_,DFineModel:()=>o_,DFinePreTrainedModel:()=>Nl,DPTForDepthEstimation:()=>x_,DPTModel:()=>M_,DPTPreTrainedModel:()=>ql,DacDecoderModel:()=>Bf,DacDecoderOutput:()=>Df,DacEncoderModel:()=>Lf,DacEncoderOutput:()=>$f,DacModel:()=>Of,DacPreTrainedModel:()=>ci,DebertaForMaskedLM:()=>pr,DebertaForQuestionAnswering:()=>os,DebertaForSequenceClassification:()=>Sr,DebertaForTokenClassification:()=>Gt,DebertaModel:()=>jr,DebertaPreTrainedModel:()=>Rt,DebertaV2ForMaskedLM:()=>yr,DebertaV2ForQuestionAnswering:()=>Vr,DebertaV2ForSequenceClassification:()=>Fs,DebertaV2ForTokenClassification:()=>Is,DebertaV2Model:()=>Ss,DebertaV2PreTrainedModel:()=>Nr,DecisionTransformerModel:()=>hf,DecisionTransformerPreTrainedModel:()=>ff,DeiTForImageClassification:()=>d_,DeiTModel:()=>c_,DeiTPreTrainedModel:()=>Wl,DepthAnythingForDepthEstimation:()=>y_,DepthAnythingPreTrainedModel:()=>v_,DepthProForDepthEstimation:()=>C_,DepthProPreTrainedModel:()=>k_,DetrForObjectDetection:()=>Hp,DetrForSegmentation:()=>Ll,DetrModel:()=>qp,DetrObjectDetectionOutput:()=>Bl,DetrPreTrainedModel:()=>Xa,DetrSegmentationOutput:()=>Qp,Dinov2ForImageClassification:()=>U_,Dinov2Model:()=>W_,Dinov2PreTrainedModel:()=>Yl,Dinov2WithRegistersForImageClassification:()=>K_,Dinov2WithRegistersModel:()=>G_,Dinov2WithRegistersPreTrainedModel:()=>Zl,DistilBertForMaskedLM:()=>_r,DistilBertForQuestionAnswering:()=>lr,DistilBertForSequenceClassification:()=>Fr,DistilBertForTokenClassification:()=>cs,DistilBertModel:()=>Yr,DistilBertPreTrainedModel:()=>Wr,DonutSwinModel:()=>z_,DonutSwinPreTrainedModel:()=>B_,EfficientNetForImageClassification:()=>tf,EfficientNetModel:()=>ef,EfficientNetPreTrainedModel:()=>dc,ElectraForMaskedLM:()=>Y,ElectraForQuestionAnswering:()=>ke,ElectraForSequenceClassification:()=>se,ElectraForTokenClassification:()=>he,ElectraModel:()=>N,ElectraPreTrainedModel:()=>X,Ernie4_5_ForCausalLM:()=>Nm,Ernie4_5_Model:()=>jm,Ernie4_5_PretrainedModel:()=>nc,EsmForMaskedLM:()=>Ur,EsmForSequenceClassification:()=>Le,EsmForTokenClassification:()=>Re,EsmModel:()=>zs,EsmPreTrainedModel:()=>Hr,ExaoneForCausalLM:()=>zu,ExaoneModel:()=>Bu,ExaonePreTrainedModel:()=>cl,FalconForCausalLM:()=>Gm,FalconModel:()=>Um,FalconPreTrainedModel:()=>ic,FastViTForImageClassification:()=>Dp,FastViTModel:()=>$p,FastViTPreTrainedModel:()=>Fl,Florence2ForConditionalGeneration:()=>Ra,Florence2PreTrainedModel:()=>za,GLPNForDepthEstimation:()=>L_,GLPNModel:()=>O_,GLPNPreTrainedModel:()=>Ql,GPT2LMHeadModel:()=>Vn,GPT2Model:()=>Nn,GPT2PreTrainedModel:()=>bo,GPTBigCodeForCausalLM:()=>T,GPTBigCodeModel:()=>_,GPTBigCodePreTrainedModel:()=>an,GPTJForCausalLM:()=>qn,GPTJModel:()=>Kn,GPTJPreTrainedModel:()=>nn,GPTNeoForCausalLM:()=>Mo,GPTNeoModel:()=>Un,GPTNeoPreTrainedModel:()=>sn,GPTNeoXForCausalLM:()=>Gn,GPTNeoXModel:()=>on,GPTNeoXPreTrainedModel:()=>xo,Gemma2ForCausalLM:()=>Yu,Gemma2Model:()=>Ju,Gemma2PreTrainedModel:()=>hl,Gemma3ForCausalLM:()=>ep,Gemma3Model:()=>Zu,Gemma3PreTrainedModel:()=>gl,Gemma3nForConditionalGeneration:()=>An,Gemma3nPreTrainedModel:()=>Wa,GemmaForCausalLM:()=>Xu,GemmaModel:()=>Qu,GemmaPreTrainedModel:()=>fl,GlmForCausalLM:()=>Lu,GlmModel:()=>Ou,GlmPreTrainedModel:()=>ll,GraniteForCausalLM:()=>Ku,GraniteModel:()=>Gu,GranitePreTrainedModel:()=>_l,GroundingDinoForObjectDetection:()=>H_,GroundingDinoPreTrainedModel:()=>q_,GroupViTModel:()=>Ap,GroupViTPreTrainedModel:()=>Ip,HeliumForCausalLM:()=>Du,HeliumModel:()=>$u,HeliumPreTrainedModel:()=>il,HieraForImageClassification:()=>p_,HieraModel:()=>u_,HieraPreTrainedModel:()=>Ul,HubertForCTC:()=>Tm,HubertForSequenceClassification:()=>Pm,HubertModel:()=>ym,HubertPreTrainedModel:()=>F0,IJepaForImageClassification:()=>vp,IJepaModel:()=>xp,IJepaPreTrainedModel:()=>kl,Idefics3ForConditionalGeneration:()=>_s,Idefics3PreTrainedModel:()=>ho,ImageMattingOutput:()=>mh,JAISLMHeadModel:()=>Wn,JAISModel:()=>rn,JAISPreTrainedModel:()=>tn,JinaCLIPModel:()=>Ha,JinaCLIPPreTrainedModel:()=>ut,JinaCLIPTextModel:()=>Rn,JinaCLIPVisionModel:()=>jn,Lfm2ForCausalLM:()=>br,Lfm2Model:()=>jt,Lfm2PreTrainedModel:()=>At,LiteWhisperForConditionalGeneration:()=>Sn,LlamaForCausalLM:()=>Oe,LlamaModel:()=>ve,LlamaPreTrainedModel:()=>ie,LlavaForConditionalGeneration:()=>fo,LlavaOnevisionForConditionalGeneration:()=>La,LlavaPreTrainedModel:()=>mo,LlavaQwen2ForCausalLM:()=>Va,LongT5ForConditionalGeneration:()=>nr,LongT5Model:()=>Ir,LongT5PreTrainedModel:()=>Zt,M2M100ForConditionalGeneration:()=>om,M2M100Model:()=>sm,M2M100PreTrainedModel:()=>rc,MBartForCausalLM:()=>ar,MBartForConditionalGeneration:()=>Tr,MBartForSequenceClassification:()=>ns,MBartModel:()=>ps,MBartPreTrainedModel:()=>Or,MPNetForMaskedLM:()=>_o,MPNetForQuestionAnswering:()=>S,MPNetForSequenceClassification:()=>Qo,MPNetForTokenClassification:()=>ce,MPNetModel:()=>po,MPNetPreTrainedModel:()=>us,MT5ForConditionalGeneration:()=>$r,MT5Model:()=>Ar,MT5PreTrainedModel:()=>fr,MarianMTModel:()=>rm,MarianModel:()=>tm,MarianPreTrainedModel:()=>tc,MaskFormerForInstanceSegmentation:()=>D_,MaskFormerModel:()=>$_,MaskFormerPreTrainedModel:()=>Hl,MaskedLMOutput:()=>Pr,Metric3DForDepthEstimation:()=>F_,Metric3DPreTrainedModel:()=>S_,Metric3Dv2ForDepthEstimation:()=>A_,Metric3Dv2PreTrainedModel:()=>I_,MgpstrForSceneTextRecognition:()=>xf,MgpstrModelOutput:()=>bf,MgpstrPreTrainedModel:()=>Mf,MimiDecoderModel:()=>Af,MimiDecoderOutput:()=>Sf,MimiEncoderModel:()=>If,MimiEncoderOutput:()=>Cf,MimiModel:()=>Ff,MimiPreTrainedModel:()=>li,MistralForCausalLM:()=>Rm,MistralModel:()=>zm,MistralPreTrainedModel:()=>oc,MobileBertForMaskedLM:()=>Rs,MobileBertForQuestionAnswering:()=>js,MobileBertForSequenceClassification:()=>ds,MobileBertModel:()=>Jt,MobileBertPreTrainedModel:()=>tt,MobileLLMForCausalLM:()=>ju,MobileLLMModel:()=>Ru,MobileLLMPreTrainedModel:()=>dl,MobileNetV1ForImageClassification:()=>sf,MobileNetV1ForSemanticSegmentation:()=>of,MobileNetV1Model:()=>rf,MobileNetV1PreTrainedModel:()=>oi,MobileNetV2ForImageClassification:()=>af,MobileNetV2ForSemanticSegmentation:()=>lf,MobileNetV2Model:()=>nf,MobileNetV2PreTrainedModel:()=>ni,MobileNetV3ForImageClassification:()=>df,MobileNetV3ForSemanticSegmentation:()=>uf,MobileNetV3Model:()=>cf,MobileNetV3PreTrainedModel:()=>ai,MobileNetV4ForImageClassification:()=>_f,MobileNetV4ForSemanticSegmentation:()=>mf,MobileNetV4Model:()=>pf,MobileNetV4PreTrainedModel:()=>ii,MobileViTForImageClassification:()=>zp,MobileViTModel:()=>Bp,MobileViTPreTrainedModel:()=>Il,MobileViTV2ForImageClassification:()=>jp,MobileViTV2Model:()=>Rp,MobileViTV2PreTrainedModel:()=>Al,ModelOutput:()=>fe,ModernBertDecoderForCausalLM:()=>vr,ModernBertDecoderModel:()=>Ot,ModernBertDecoderPreTrainedModel:()=>yt,ModernBertForMaskedLM:()=>rt,ModernBertForSequenceClassification:()=>Ye,ModernBertForTokenClassification:()=>ft,ModernBertModel:()=>lt,ModernBertPreTrainedModel:()=>ot,Moondream1ForConditionalGeneration:()=>Ba,MoonshineForConditionalGeneration:()=>Oa,MoonshineModel:()=>al,MoonshinePreTrainedModel:()=>Fn,MptForCausalLM:()=>hp,MptModel:()=>fp,MptPreTrainedModel:()=>Tl,MultiModalityCausalLM:()=>wf,MultiModalityPreTrainedModel:()=>gf,MusicgenForCausalLM:()=>D0,MusicgenForConditionalGeneration:()=>pc,MusicgenModel:()=>$0,MusicgenPreTrainedModel:()=>uc,NeoBertForMaskedLM:()=>je,NeoBertForQuestionAnswering:()=>De,NeoBertForSequenceClassification:()=>Ge,NeoBertForTokenClassification:()=>Ve,NeoBertModel:()=>Ee,NeoBertPreTrainedModel:()=>Ue,NomicBertModel:()=>Rr,NomicBertPreTrainedModel:()=>zr,OPTForCausalLM:()=>wp,OPTModel:()=>gp,OPTPreTrainedModel:()=>Pl,Olmo2ForCausalLM:()=>Uu,Olmo2Model:()=>Wu,Olmo2PreTrainedModel:()=>pl,OlmoForCausalLM:()=>Vu,OlmoModel:()=>Nu,OlmoPreTrainedModel:()=>ul,OpenELMForCausalLM:()=>rp,OpenELMModel:()=>tp,OpenELMPreTrainedModel:()=>wl,OwlViTForObjectDetection:()=>Vp,OwlViTModel:()=>Np,OwlViTPreTrainedModel:()=>$l,Owlv2ForObjectDetection:()=>Up,Owlv2Model:()=>Wp,Owlv2PreTrainedModel:()=>Dl,PaliGemmaForConditionalGeneration:()=>Na,PaliGemmaPreTrainedModel:()=>ja,PatchTSMixerForPrediction:()=>Pf,PatchTSMixerModel:()=>Tf,PatchTSMixerPreTrainedModel:()=>mc,PatchTSTForPrediction:()=>yf,PatchTSTModel:()=>vf,PatchTSTPreTrainedModel:()=>_c,Phi3ForCausalLM:()=>pp,Phi3Model:()=>up,Phi3PreTrainedModel:()=>vl,Phi3VForCausalLM:()=>$n,Phi3VPreTrainedModel:()=>Ua,PhiForCausalLM:()=>dp,PhiModel:()=>cp,PhiPreTrainedModel:()=>xl,PreTrainedModel:()=>V,PretrainedMixin:()=>Nt,PvtForImageClassification:()=>Ep,PvtModel:()=>Pp,PvtPreTrainedModel:()=>Cl,PyAnnoteForAudioFrameClassification:()=>dm,PyAnnoteModel:()=>cm,PyAnnotePreTrainedModel:()=>sc,QuestionAnsweringModelOutput:()=>Lr,Qwen2ForCausalLM:()=>op,Qwen2Model:()=>sp,Qwen2PreTrainedModel:()=>bl,Qwen2VLForConditionalGeneration:()=>lp,Qwen2VLPreTrainedModel:()=>ip,Qwen3ForCausalLM:()=>ap,Qwen3Model:()=>np,Qwen3PreTrainedModel:()=>Ml,RFDetrForObjectDetection:()=>r_,RFDetrModel:()=>t_,RFDetrObjectDetectionOutput:()=>s_,RFDetrPreTrainedModel:()=>jl,RTDetrForObjectDetection:()=>Jp,RTDetrModel:()=>Xp,RTDetrObjectDetectionOutput:()=>Hn,RTDetrPreTrainedModel:()=>zl,RTDetrV2ForObjectDetection:()=>Zp,RTDetrV2Model:()=>Yp,RTDetrV2ObjectDetectionOutput:()=>e_,RTDetrV2PreTrainedModel:()=>Rl,ResNetForImageClassification:()=>m_,ResNetModel:()=>__,ResNetPreTrainedModel:()=>Gl,RoFormerForMaskedLM:()=>Hs,RoFormerForQuestionAnswering:()=>Bs,RoFormerForSequenceClassification:()=>Qs,RoFormerForTokenClassification:()=>Xs,RoFormerModel:()=>Cr,RoFormerPreTrainedModel:()=>Ut,RobertaForMaskedLM:()=>vn,RobertaForQuestionAnswering:()=>Ea,RobertaForSequenceClassification:()=>Ta,RobertaForTokenClassification:()=>Pa,RobertaModel:()=>ya,RobertaPreTrainedModel:()=>Js,SamImageSegmentationOutput:()=>em,SamModel:()=>Z_,SamPreTrainedModel:()=>Y_,SapiensForDepthEstimation:()=>P_,SapiensForNormalEstimation:()=>E_,SapiensForSemanticSegmentation:()=>T_,SapiensPreTrainedModel:()=>Ya,SegformerForImageClassification:()=>Xm,SegformerForSemanticSegmentation:()=>Jm,SegformerModel:()=>A0,SegformerPreTrainedModel:()=>si,Seq2SeqLMOutput:()=>MT,SequenceClassifierOutput:()=>xt,SiglipModel:()=>Ln,SiglipPreTrainedModel:()=>en,SiglipTextModel:()=>qa,SiglipVisionModel:()=>Bn,SmolLM3ForCausalLM:()=>Au,SmolLM3Model:()=>Qa,SmolLM3PreTrainedModel:()=>As,SmolVLMForConditionalGeneration:()=>Yo,SnacDecoderModel:()=>jf,SnacEncoderModel:()=>Rf,SnacModel:()=>zf,SnacPreTrainedModel:()=>di,SpeechT5ForSpeechToText:()=>$m,SpeechT5ForTextToSpeech:()=>Dm,SpeechT5HifiGan:()=>Om,SpeechT5Model:()=>I0,SpeechT5PreTrainedModel:()=>ti,SqueezeBertForMaskedLM:()=>oe,SqueezeBertForQuestionAnswering:()=>Te,SqueezeBertForSequenceClassification:()=>me,SqueezeBertModel:()=>ee,SqueezeBertPreTrainedModel:()=>U,StableLmForCausalLM:()=>Zm,StableLmModel:()=>Ym,StableLmPreTrainedModel:()=>cc,Starcoder2ForCausalLM:()=>Wm,Starcoder2Model:()=>Vm,Starcoder2PreTrainedModel:()=>ac,StyleTextToSpeech2Model:()=>Am,StyleTextToSpeech2PreTrainedModel:()=>Im,Swin2SRForImageSuperResolution:()=>b_,Swin2SRModel:()=>w_,Swin2SRPreTrainedModel:()=>Kl,SwinForImageClassification:()=>h_,SwinForSemanticSegmentation:()=>g_,SwinModel:()=>f_,SwinPreTrainedModel:()=>Ja,T5ForConditionalGeneration:()=>mr,T5Model:()=>Kt,T5PreTrainedModel:()=>bt,TableTransformerForObjectDetection:()=>i_,TableTransformerModel:()=>a_,TableTransformerObjectDetectionOutput:()=>l_,TableTransformerPreTrainedModel:()=>Vl,TokenClassifierOutput:()=>Mr,TrOCRForCausalLM:()=>Bm,TrOCRPreTrainedModel:()=>Lm,UltravoxModel:()=>fc,UltravoxPreTrainedModel:()=>Ef,UniSpeechForCTC:()=>mm,UniSpeechForSequenceClassification:()=>fm,UniSpeechModel:()=>_m,UniSpeechPreTrainedModel:()=>Za,UniSpeechSatForAudioFrameClassification:()=>bm,UniSpeechSatForCTC:()=>gm,UniSpeechSatForSequenceClassification:()=>wm,UniSpeechSatModel:()=>hm,UniSpeechSatPreTrainedModel:()=>Qn,ViTForImageClassification:()=>Mp,ViTMAEModel:()=>Cp,ViTMAEPreTrainedModel:()=>kp,ViTMSNForImageClassification:()=>Fp,ViTMSNModel:()=>Sp,ViTMSNPreTrainedModel:()=>Sl,ViTModel:()=>bp,ViTPreTrainedModel:()=>El,VisionEncoderDecoderModel:()=>In,VitMatteForImageMatting:()=>Lp,VitMattePreTrainedModel:()=>Op,VitPoseForPoseEstimation:()=>Tp,VitPosePreTrainedModel:()=>yp,VitsModel:()=>lc,VitsModelOutput:()=>fh,VitsPreTrainedModel:()=>Qm,VoxtralForConditionalGeneration:()=>kf,Wav2Vec2BertForCTC:()=>xm,Wav2Vec2BertForSequenceClassification:()=>vm,Wav2Vec2BertModel:()=>Mm,Wav2Vec2BertPreTrainedModel:()=>ei,Wav2Vec2ForAudioFrameClassification:()=>lm,Wav2Vec2ForCTC:()=>am,Wav2Vec2ForSequenceClassification:()=>im,Wav2Vec2Model:()=>nm,Wav2Vec2PreTrainedModel:()=>ro,WavLMForAudioFrameClassification:()=>Fm,WavLMForCTC:()=>km,WavLMForSequenceClassification:()=>Cm,WavLMForXVector:()=>Sm,WavLMModel:()=>Em,WavLMPreTrainedModel:()=>ln,WeSpeakerResNetModel:()=>pm,WeSpeakerResNetPreTrainedModel:()=>um,WhisperForConditionalGeneration:()=>Cn,WhisperModel:()=>eo,WhisperPreTrainedModel:()=>Jo,XLMForQuestionAnswering:()=>Ia,XLMForSequenceClassification:()=>Sa,XLMForTokenClassification:()=>Fa,XLMModel:()=>ka,XLMPreTrainedModel:()=>Ys,XLMRobertaForMaskedLM:()=>$a,XLMRobertaForQuestionAnswering:()=>Pn,XLMRobertaForSequenceClassification:()=>yn,XLMRobertaForTokenClassification:()=>Tn,XLMRobertaModel:()=>Aa,XLMRobertaPreTrainedModel:()=>Zs,XLMWithLMHeadModel:()=>Ca,XVectorOutput:()=>_h,YolosForObjectDetection:()=>X_,YolosModel:()=>Q_,YolosObjectDetectionOutput:()=>J_,YolosPreTrainedModel:()=>ec});var s=t("./src/configs.js"),o=t("./src/backends/onnx.js"),n=t("./src/utils/dtypes.js"),a=t("./src/utils/generic.js"),i=t("./src/utils/core.js"),l=t("./src/utils/hub.js"),c=t("./src/utils/constants.js"),p=t("./src/generation/logits_process.js"),u=t("./src/generation/configuration_utils.js"),d=t("./src/utils/tensor.js"),h=t("./src/utils/image.js"),f=t("./src/utils/maths.js"),v=t("./src/generation/stopping_criteria.js"),F=t("./src/generation/logits_sampler.js"),x=t("./src/env.js"),w=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},P=new Map,I=new Map,g=new Map;async function E(b,M,j){let ae=j.config?.["transformers.js_config"]??{},ue=j.device??ae.device;ue&&typeof ue!="string"&&(ue.hasOwnProperty(M)?ue=ue[M]:(console.warn(`device not specified for "${M}". Using the default device.`),ue=null));let ge=ue??(x.apis.IS_NODE_ENV?"cpu":"wasm"),Fe=(0,o.deviceToExecutionProviders)(ge),Be=ae.device_config??{};Be.hasOwnProperty(ge)&&(ae={...ae,...Be[ge]});let Ne=j.dtype??ae.dtype;if(typeof Ne!="string"&&(Ne&&Ne.hasOwnProperty(M)?Ne=Ne[M]:(Ne=n.DEFAULT_DEVICE_DTYPE_MAPPING[ge]??n.DATA_TYPES.fp32,console.warn(`dtype not specified for "${M}". Using the default dtype (${Ne}) for this device (${ge}).`))),Ne===n.DATA_TYPES.auto){let Ft=ae.dtype;typeof Ft!="string"&&(Ft=Ft?.[M]),Ft&&Ft!==n.DATA_TYPES.auto&&n.DATA_TYPES.hasOwnProperty(Ft)?Ne=Ft:Ne=n.DEFAULT_DEVICE_DTYPE_MAPPING[ge]??n.DATA_TYPES.fp32}let st=Ne;if(n.DEFAULT_DTYPE_SUFFIX_MAPPING.hasOwnProperty(st)){if(st===n.DATA_TYPES.fp16&&ge==="webgpu"&&!await(0,n.isWebGpuFp16Supported)())throw new Error(`The device (${ge}) does not support fp16.`)}else throw new Error(`Invalid dtype: ${st}. Should be one of: ${Object.keys(n.DATA_TYPES).join(", ")}`);let vt=ae.kv_cache_dtype,Pt=vt?typeof vt=="string"?vt:vt[st]??"float32":void 0;if(Pt&&!["float32","float16"].includes(Pt))throw new Error(`Invalid kv_cache_dtype: ${Pt}. Should be one of: float32, float16`);let kt={dtype:st,kv_cache_dtype:Pt,device:ge},ht=n.DEFAULT_DTYPE_SUFFIX_MAPPING[st],Vt=`${M}${ht}.onnx`,gt=`${j.subfolder??""}/${Vt}`,mt={...j.session_options};mt.executionProviders??=Fe;let Dt=ae.free_dimension_overrides;Dt?mt.freeDimensionOverrides??=Dt:ge.startsWith("webnn")&&!mt.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"]["${ge}"]. When 'free_dimension_overrides' is not set, you may experience significant performance degradation.`);let qt=x.apis.IS_NODE_ENV&&x.env.useFSCache,rr=(0,l.getModelFile)(b,gt,!0,j,qt),gr=j.use_external_data_format??ae.use_external_data_format,wr=[];if(gr){let Ft;typeof gr=="object"?gr.hasOwnProperty(Vt)?Ft=gr[Vt]:gr.hasOwnProperty(M)?Ft=gr[M]:Ft=!1:Ft=gr;let sr=+Ft;if(sr>l.MAX_EXTERNAL_DATA_CHUNKS)throw new Error(`The number of external data chunks (${sr}) exceeds the maximum allowed value (${l.MAX_EXTERNAL_DATA_CHUNKS}).`);for(let Er=0;Er<sr;++Er){let yo=`${Vt}_data${Er===0?"":"_"+Er}`,Xr=`${j.subfolder??""}/${yo}`;wr.push(new Promise(async(fs,dn)=>{let un=await(0,l.getModelFile)(b,Xr,!0,j,qt);fs(un instanceof Uint8Array?{path:yo,data:un}:yo)}))}}else mt.externalData!==void 0&&(wr=mt.externalData.map(async Ft=>{if(typeof Ft.data=="string"){let sr=await(0,l.getModelFile)(b,Ft.data,!0,j);return{...Ft,data:sr}}return Ft}));if(wr.length>0){let Ft=await Promise.all(wr);x.apis.IS_NODE_ENV||(mt.externalData=Ft)}if(ge==="webgpu"){let Ft=(0,s.getCacheShapes)(j.config,{prefix:"present"});if(Object.keys(Ft).length>0&&!(0,o.isONNXProxy)()){let sr={};for(let Er in Ft)sr[Er]="gpu-buffer";mt.preferredOutputLocation=sr}}return{buffer_or_path:await rr,session_options:mt,session_config:kt}}async function $(b,M,j){return Object.fromEntries(await Promise.all(Object.keys(M).map(async ae=>{let{buffer_or_path:ue,session_options:ge,session_config:Fe}=await E(b,M[ae],j),Be=await(0,o.createInferenceSession)(ue,ge,Fe);return[ae,Be]})))}async function L(b,M,j){return Object.fromEntries(await Promise.all(Object.keys(M).map(async ae=>{let ue=await(0,l.getModelJSON)(b,M[ae],!1,j);return[ae,ue]})))}function G(b,M){let j=Object.create(null),ae=[];for(let Fe of b.inputNames){let Be=M[Fe];if(!(Be instanceof d.Tensor)){ae.push(Fe);continue}j[Fe]=(0,o.isONNXProxy)()?Be.clone():Be}if(ae.length>0)throw new Error(`An error occurred during model execution: "Missing the following inputs: ${ae.join(", ")}.`);let ue=Object.keys(M).length,ge=b.inputNames.length;if(ue>ge){let Fe=Object.keys(M).filter(Be=>!b.inputNames.includes(Be));console.warn(`WARNING: Too many inputs were provided (${ue} > ${ge}). The following inputs will be ignored: "${Fe.join(", ")}".`)}return j}let q=Promise.resolve();async function O(b,M){let j=G(b,M);try{let ae=Object.fromEntries(Object.entries(j).map(([Fe,Be])=>[Fe,Be.ort_tensor])),ue=()=>b.run(ae),ge=await(x.apis.IS_BROWSER_ENV||x.apis.IS_WEBWORKER_ENV?q=q.then(ue):ue());return J(ge)}catch(ae){let ue=Object.fromEntries(Object.entries(j).map(([ge,Fe])=>{let Be={type:Fe.type,dims:Fe.dims,location:Fe.location};return Be.location!=="gpu-buffer"&&(Be.data=Fe.data),[ge,Be]}));throw console.error(`An error occurred during model execution: "${ae}".`),console.error("Inputs given to model:",ue),ae}}function J(b){for(let M in b)(0,o.isONNXTensor)(b[M])?b[M]=new d.Tensor(b[M]):typeof b[M]=="object"&&J(b[M]);return b}function Q(b){if(b instanceof d.Tensor)return b;if(b.length===0)throw Error("items must be non-empty");if(Array.isArray(b[0])){if(b.some(M=>M.length!==b[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(b.flat().map(M=>BigInt(M))),[b.length,b[0].length])}else return new d.Tensor("int64",BigInt64Array.from(b.map(M=>BigInt(M))),[1,b.length])}function H(b){return new d.Tensor("bool",[b],[1])}async function te(b,M){let{encoder_outputs:j,input_ids:ae,decoder_input_ids:ue,...ge}=M;if(!j){let Be=(0,i.pick)(M,b.sessions.model.inputNames);j=(await re(b,Be)).last_hidden_state}return ge.input_ids=ue,ge.encoder_hidden_states=j,b.sessions.decoder_model_merged.inputNames.includes("encoder_attention_mask")&&(ge.encoder_attention_mask=M.attention_mask),await be(b,ge,!0)}async function re(b,M){let j=b.sessions.model,ae=(0,i.pick)(M,j.inputNames);if(j.inputNames.includes("inputs_embeds")&&!ae.inputs_embeds){if(!M.input_ids)throw new Error("Both `input_ids` and `inputs_embeds` are missing in the model inputs.");ae.inputs_embeds=await b.encode_text({input_ids:M.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 ue=ae.pixel_values.dims;ae.pixel_mask=(0,d.ones)([ue[0],ue[2],ue[3]])}return await O(j,ae)}async function le(b,M){let j=await b.encode(M);return await b.decode(j)}async function be(b,M,j=!1){let ae=b.sessions[j?"decoder_model_merged":"model"],{past_key_values:ue,...ge}=M;if(ae.inputNames.includes("use_cache_branch")&&(ge.use_cache_branch=H(!!ue)),ae.inputNames.includes("position_ids")&&ge.attention_mask&&!ge.position_ids){let Be=["paligemma","gemma3_text","gemma3"].includes(b.config.model_type)?1:0;ge.position_ids=Ie(ge,ue,Be)}b.addPastKeyValues(ge,ue);let Fe=(0,i.pick)(ge,ae.inputNames);return await O(ae,Fe)}function z({modality_token_id:b,inputs_embeds:M,modality_features:j,input_ids:ae,attention_mask:ue}){let ge=ae.tolist().map(st=>st.reduce((vt,Pt,kt)=>(Pt==b&&vt.push(kt),vt),[])),Fe=ge.reduce((st,vt)=>st+vt.length,0),Be=j.dims[0];if(Fe!==Be)throw new Error(`Number of tokens and features do not match: tokens: ${Fe}, features ${Be}`);let Ne=0;for(let st=0;st<ge.length;++st){let vt=ge[st],Pt=M[st];for(let kt=0;kt<vt.length;++kt)Pt[vt[kt]].data.set(j[Ne++].data)}return{inputs_embeds:M,attention_mask:ue}}function D({image_token_id:b,inputs_embeds:M,image_features:j,input_ids:ae,attention_mask:ue}){return z({modality_token_id:b,inputs_embeds:M,modality_features:j,input_ids:ae,attention_mask:ue})}function K({audio_token_id:b,inputs_embeds:M,audio_features:j,input_ids:ae,attention_mask:ue}){return z({modality_token_id:b,inputs_embeds:M,modality_features:j,input_ids:ae,attention_mask:ue})}async function R(b,{encode_function:M,merge_function:j,modality_input_name:ae,modality_output_name:ue,input_ids:ge=null,attention_mask:Fe=null,position_ids:Be=null,inputs_embeds:Ne=null,past_key_values:st=null,generation_config:vt=null,logits_processor:Pt=null,...kt}){let ht=kt[ae];if(!Ne){if(Ne=await b.encode_text({input_ids:ge,...kt}),ht&&ge.dims[1]!==1){let gt=await M({[ae]:ht,...kt});({inputs_embeds:Ne,attention_mask:Fe}=j({[ue]:gt,inputs_embeds:Ne,input_ids:ge,attention_mask:Fe}))}else if(st&&ht&&ge.dims[1]===1){let gt=ge.dims[1],mt=Object.values(st)[0].dims.at(-2);Fe=(0,d.cat)([(0,d.ones)([ge.dims[0],mt]),Fe.slice(null,[Fe.dims[1]-gt,Fe.dims[1]])],1)}}if(!Be&&b.config.model_type==="qwen2_vl"){let{image_grid_thw:gt,video_grid_thw:mt}=kt;[Be]=b.get_rope_index(ge,gt,mt,Fe)}return await be(b,{inputs_embeds:Ne,past_key_values:st,attention_mask:Fe,position_ids:Be,generation_config:vt,logits_processor:Pt},!0)}async function ne(b,M){return await R(b,{...M,modality_input_name:"audio_values",modality_output_name:"audio_features",encode_function:b.encode_audio.bind(b),merge_function:b._merge_input_ids_with_audio_features.bind(b)})}async function Ce(b,M){return await R(b,{...M,modality_input_name:"pixel_values",modality_output_name:"image_features",encode_function:b.encode_image.bind(b),merge_function:b._merge_input_ids_with_image_features.bind(b)})}function Me(b,M=0){let[j,ae]=b.dims,ue=b.data,ge=new BigInt64Array(ue.length);for(let Fe=0;Fe<j;++Fe){let Be=Fe*ae,Ne=BigInt(M);for(let st=0;st<ae;++st){let vt=Be+st;ue[vt]===0n?ge[vt]=BigInt(1):(ge[vt]=Ne,Ne+=ue[vt])}}return{data:ge,dims:b.dims}}function Ie(b,M=null,j=0){let{input_ids:ae,inputs_embeds:ue,attention_mask:ge}=b,{data:Fe,dims:Be}=Me(ge,j),Ne=new d.Tensor("int64",Fe,Be);if(M){let st=-(ae??ue).dims.at(1);Ne=Ne.slice(null,[st,null])}return Ne}function Ke(b,M,j,ae){let ue=j.past_key_values?Object.values(j.past_key_values)[0].dims.at(-2):0;if(!j.attention_mask){let ge;for(let Fe of["input_ids","inputs_embeds","position_ids"])if(j[Fe]){ge=j[Fe].dims;break}if(!ge)throw new Error("attention_mask is not provided, and unable to infer its shape from model inputs.");j.attention_mask=(0,d.ones)([ge[0],ue+ge[1]])}if(j.past_key_values){let{input_ids:ge,attention_mask:Fe}=j;Fe&&Fe.dims[1]>ge.dims[1]||ue<ge.dims[1]&&(j.input_ids=ge.slice(null,[ue,null]))}return j}function et(b,M,j,ae){return j.past_key_values&&(M=M.map(ue=>[ue.at(-1)])),{...j,decoder_input_ids:Q(M)}}function _e(b,...M){return b.config.is_encoder_decoder?et(b,...M):Ke(b,...M)}function Z(b,M,j,ae){let ue=!!j.past_key_values;return ae.guidance_scale!==null&&ae.guidance_scale>1&&(ue?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))),(ue||!j.pixel_values)&&(j.pixel_values=(0,d.full)([0,0,3,384,384],1)),ue&&(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 V extends a.Callable{main_input_name="input_ids";forward_params=["input_ids","attention_mask"];constructor(M,j,ae){super(),this.config=M,this.sessions=j,this.configs=ae;let ue=g.get(this.constructor),ge=P.get(ue);switch(this.can_generate=!1,this._forward=null,this._prepare_inputs_for_generation=null,ge){case y.DecoderOnly:this.can_generate=!0,this._forward=be,this._prepare_inputs_for_generation=Ke;break;case y.Seq2Seq:case y.Vision2Seq:case y.Musicgen:this.can_generate=!0,this._forward=te,this._prepare_inputs_for_generation=et;break;case y.EncoderDecoder:this._forward=te;break;case y.ImageTextToText:this.can_generate=!0,this._forward=Ce,this._prepare_inputs_for_generation=_e;break;case y.AudioTextToText:this.can_generate=!0,this._forward=ne,this._prepare_inputs_for_generation=_e;break;case y.Phi3V:case y.ImageAudioTextToText:this.can_generate=!0,this._prepare_inputs_for_generation=_e;break;case y.MultiModality:this.can_generate=!0,this._prepare_inputs_for_generation=Z;break;case y.AutoEncoder:this._forward=le;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 M=[];for(let j of Object.values(this.sessions))j?.handler?.dispose&&M.push(j.handler.dispose());return await Promise.all(M)}static async from_pretrained(M,{progress_callback:j=null,config:ae=null,cache_dir:ue=null,local_files_only:ge=!1,revision:Fe="main",model_file_name:Be=null,subfolder:Ne="onnx",device:st=null,dtype:vt=null,use_external_data_format:Pt=null,session_options:kt={}}={}){let ht={progress_callback:j,config:ae,cache_dir:ue,local_files_only:ge,revision:Fe,model_file_name:Be,subfolder:Ne,device:st,dtype:vt,use_external_data_format:Pt,session_options:kt},Vt=g.get(this),gt=P.get(Vt);ae=ht.config=await s.AutoConfig.from_pretrained(M,ht);let mt;if(gt===y.DecoderOnly)mt=await Promise.all([$(M,{model:ht.model_file_name??"model"},ht),L(M,{generation_config:"generation_config.json"},ht)]);else if(gt===y.Seq2Seq||gt===y.Vision2Seq)mt=await Promise.all([$(M,{model:"encoder_model",decoder_model_merged:"decoder_model_merged"},ht),L(M,{generation_config:"generation_config.json"},ht)]);else if(gt===y.MaskGeneration)mt=await Promise.all([$(M,{model:"vision_encoder",prompt_encoder_mask_decoder:"prompt_encoder_mask_decoder"},ht)]);else if(gt===y.EncoderDecoder)mt=await Promise.all([$(M,{model:"encoder_model",decoder_model_merged:"decoder_model_merged"},ht)]);else if(gt===y.ImageTextToText){let Dt={embed_tokens:"embed_tokens",vision_encoder:"vision_encoder",decoder_model_merged:"decoder_model_merged"};ae.is_encoder_decoder&&(Dt.model="encoder_model"),mt=await Promise.all([$(M,Dt,ht),L(M,{generation_config:"generation_config.json"},ht)])}else if(gt===y.AudioTextToText){let Dt={embed_tokens:"embed_tokens",audio_encoder:"audio_encoder",decoder_model_merged:"decoder_model_merged"};mt=await Promise.all([$(M,Dt,ht),L(M,{generation_config:"generation_config.json"},ht)])}else if(gt===y.ImageAudioTextToText){let Dt={embed_tokens:"embed_tokens",audio_encoder:"audio_encoder",vision_encoder:"vision_encoder",decoder_model_merged:"decoder_model_merged"};mt=await Promise.all([$(M,Dt,ht),L(M,{generation_config:"generation_config.json"},ht)])}else if(gt===y.Musicgen)mt=await Promise.all([$(M,{model:"text_encoder",decoder_model_merged:"decoder_model_merged",encodec_decode:"encodec_decode"},ht),L(M,{generation_config:"generation_config.json"},ht)]);else if(gt===y.MultiModality)mt=await Promise.all([$(M,{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"},ht),L(M,{generation_config:"generation_config.json"},ht)]);else if(gt===y.Phi3V)mt=await Promise.all([$(M,{prepare_inputs_embeds:"prepare_inputs_embeds",model:"model",vision_encoder:"vision_encoder"},ht),L(M,{generation_config:"generation_config.json"},ht)]);else if(gt===y.AutoEncoder)mt=await Promise.all([$(M,{encoder_model:"encoder_model",decoder_model:"decoder_model"},ht)]);else{if(gt!==y.EncoderOnly){let Dt=Vt??ae?.model_type;Dt!=="custom"&&console.warn(`Model type for '${Dt}' not found, assuming encoder-only architecture. Please report this at ${c.GITHUB_ISSUE_URL}.`)}mt=await Promise.all([$(M,{model:ht.model_file_name??"model"},ht)])}return new this(ae,...mt)}async _call(M){return await this.forward(M)}async forward(M){return await this._forward(this,M)}get generation_config(){return this.configs?.generation_config??null}_get_logits_warper(M){let j=new p.LogitsProcessorList;return M.temperature!==null&&M.temperature!==1&&j.push(new p.TemperatureLogitsWarper(M.temperature)),M.top_k!==null&&M.top_k!==0&&j.push(new p.TopKLogitsWarper(M.top_k)),M.top_p!==null&&M.top_p<1&&j.push(new p.TopPLogitsWarper(M.top_p)),j}_get_logits_processor(M,j,ae=null){let ue=new p.LogitsProcessorList;if(M.repetition_penalty!==null&&M.repetition_penalty!==1&&ue.push(new p.RepetitionPenaltyLogitsProcessor(M.repetition_penalty)),M.no_repeat_ngram_size!==null&&M.no_repeat_ngram_size>0&&ue.push(new p.NoRepeatNGramLogitsProcessor(M.no_repeat_ngram_size)),M.bad_words_ids!==null&&ue.push(new p.NoBadWordsLogitsProcessor(M.bad_words_ids,M.eos_token_id)),M.min_length!==null&&M.eos_token_id!==null&&M.min_length>0&&ue.push(new p.MinLengthLogitsProcessor(M.min_length,M.eos_token_id)),M.min_new_tokens!==null&&M.eos_token_id!==null&&M.min_new_tokens>0&&ue.push(new p.MinNewTokensLengthLogitsProcessor(j,M.min_new_tokens,M.eos_token_id)),M.forced_bos_token_id!==null&&ue.push(new p.ForcedBOSTokenLogitsProcessor(M.forced_bos_token_id)),M.forced_eos_token_id!==null&&ue.push(new p.ForcedEOSTokenLogitsProcessor(M.max_length,M.forced_eos_token_id)),M.begin_suppress_tokens!==null){let ge=j>1||M.forced_bos_token_id===null?j:j+1;ue.push(new p.SuppressTokensAtBeginLogitsProcessor(M.begin_suppress_tokens,ge))}return M.guidance_scale!==null&&M.guidance_scale>1&&ue.push(new p.ClassifierFreeGuidanceLogitsProcessor(M.guidance_scale)),ae!==null&&ue.extend(ae),ue}_prepare_generation_config(M,j,ae=u.GenerationConfig){let ue={...this.config};for(let Fe of["decoder","generator","text_config"])Fe in ue&&Object.assign(ue,ue[Fe]);let ge=new ae(ue);return Object.assign(ge,this.generation_config??{}),M&&Object.assign(ge,M),j&&Object.assign(ge,(0,i.pick)(j,Object.getOwnPropertyNames(ge))),ge}_get_stopping_criteria(M,j=null){let ae=new v.StoppingCriteriaList;return M.max_length!==null&&ae.push(new v.MaxLengthCriteria(M.max_length,this.config.max_position_embeddings??null)),M.eos_token_id!==null&&ae.push(new v.EosTokenCriteria(M.eos_token_id)),j&&ae.extend(j),ae}_validate_model_class(){if(!this.can_generate){let M=[wc,bc,gc,hc],j=g.get(this.constructor),ae=new Set,ue=this.config.model_type;for(let Fe of M){let Be=Fe.get(ue);Be&&ae.add(Be[0])}let ge=`The current model class (${j}) is not compatible with \`.generate()\`, as it doesn't have a language model head.`;throw ae.size>0&&(ge+=` Please use the following class instead: ${[...ae].join(", ")}`),Error(ge)}}prepare_inputs_for_generation(...M){return this._prepare_inputs_for_generation(this,...M)}_update_model_kwargs_for_generation({generated_input_ids:M,outputs:j,model_inputs:ae,is_encoder_decoder:ue}){return ae.past_key_values=this.getPastKeyValues(j,ae.past_key_values),ae.input_ids=new d.Tensor("int64",M.flat(),[M.length,1]),ue?"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:M,bos_token_id:j,model_kwargs:ae}){let ue=(0,i.pick)(ae,this.forward_params),ge=this.main_input_name;if(ge in ue){if(M)throw new Error("`inputs`: {inputs}` were passed alongside {input_name} which is not allowed. Make sure to either pass {inputs} or {input_name}=...")}else ue[ge]=M;return{inputs_tensor:ue[ge],model_inputs:ue,model_input_name:ge}}async _prepare_encoder_decoder_kwargs_for_generation({inputs_tensor:M,model_inputs:j,model_input_name:ae,generation_config:ue}){if(this.sessions.model.inputNames.includes("inputs_embeds")&&!j.inputs_embeds&&"_prepare_inputs_embeds"in this){let{input_ids:Fe,pixel_values:Be,attention_mask:Ne,...st}=j,vt=await this._prepare_inputs_embeds(j);j={...st,...(0,i.pick)(vt,["inputs_embeds","attention_mask"])}}let{last_hidden_state:ge}=await re(this,j);if(ue.guidance_scale!==null&&ue.guidance_scale>1)ge=(0,d.cat)([ge,(0,d.full_like)(ge,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 Fe=Q(j.decoder_input_ids).dims[0];if(Fe!==ge.dims[0]){if(ge.dims[0]!==1)throw new Error(`The encoder outputs have a different batch size (${ge.dims[0]}) than the decoder inputs (${Fe}).`);ge=(0,d.cat)(Array.from({length:Fe},()=>ge),0)}}return j.encoder_outputs=ge,j}_prepare_decoder_input_ids_for_generation({batch_size:M,model_input_name:j,model_kwargs:ae,decoder_start_token_id:ue,bos_token_id:ge,generation_config:Fe}){let{decoder_input_ids:Be,...Ne}=ae;if(!(Be instanceof d.Tensor)){if(Be)Array.isArray(Be[0])||(Be=Array.from({length:M},()=>Be));else if(ue??=ge,this.config.model_type==="musicgen")Be=Array.from({length:M*this.config.decoder.num_codebooks},()=>[ue]);else if(Array.isArray(ue)){if(ue.length!==M)throw new Error(`\`decoder_start_token_id\` expcted to have length ${M} but got ${ue.length}`);Be=ue}else Be=Array.from({length:M},()=>[ue]);Be=Q(Be)}return ae.decoder_attention_mask=(0,d.ones_like)(Be),{input_ids:Be,model_inputs:Ne}}async generate({inputs:M=null,generation_config:j=null,logits_processor:ae=null,stopping_criteria:ue=null,streamer:ge=null,...Fe}){this._validate_model_class(),j=this._prepare_generation_config(j,Fe);let{inputs_tensor:Be,model_inputs:Ne,model_input_name:st}=this._prepare_model_inputs({inputs:M,model_kwargs:Fe}),vt=this.config.is_encoder_decoder;vt&&("encoder_outputs"in Ne||(Ne=await this._prepare_encoder_decoder_kwargs_for_generation({inputs_tensor:Be,model_inputs:Ne,model_input_name:st,generation_config:j})));let Pt;vt?{input_ids:Pt,model_inputs:Ne}=this._prepare_decoder_input_ids_for_generation({batch_size:Ne[st].dims.at(0),model_input_name:st,model_kwargs:Ne,decoder_start_token_id:j.decoder_start_token_id,bos_token_id:j.bos_token_id,generation_config:j}):Pt=Ne[st];let kt=Pt.dims.at(-1);j.max_new_tokens!==null&&(j.max_length=kt+j.max_new_tokens);let ht=this._get_logits_processor(j,kt,ae),Vt=this._get_stopping_criteria(j,ue),gt=Ne[st].dims.at(0),mt=F.LogitsSampler.getSampler(j),Dt=new Array(gt).fill(0),qt=Pt.tolist();ge&&ge.put(qt);let rr,gr={};for(;;){if(Ne=this.prepare_inputs_for_generation(qt,Ne,j),rr=await this.forward(Ne),j.output_attentions&&j.return_dict_in_generate){let Xr=this.getAttentions(rr);for(let fs in Xr)fs in gr||(gr[fs]=[]),gr[fs].push(Xr[fs])}let Ft=rr.logits.slice(null,-1,null),sr=ht(qt,Ft),Er=[];for(let Xr=0;Xr<sr.dims.at(0);++Xr){let fs=sr[Xr],dn=await mt(fs);for(let[un,ui]of dn){let Xn=BigInt(un);Dt[Xr]+=ui,qt[Xr].push(Xn),Er.push([Xn]);break}}if(ge&&ge.put(Er),Vt(qt).every(Xr=>Xr))break;Ne=this._update_model_kwargs_for_generation({generated_input_ids:Er,outputs:rr,model_inputs:Ne,is_encoder_decoder:vt})}ge&&ge.end();let wr=this.getPastKeyValues(rr,Ne.past_key_values,!0),dr=new d.Tensor("int64",qt.flat(),[qt.length,qt[0].length]);if(j.return_dict_in_generate)return{sequences:dr,past_key_values:wr,...gr};for(let Ft of Object.values(rr))Ft.location==="gpu-buffer"&&Ft.dispose();return dr}getPastKeyValues(M,j,ae=!1){let ue=Object.create(null);for(let ge in M)if(ge.startsWith("present")){let Fe=ge.replace("present_conv","past_conv").replace("present","past_key_values"),Be=ge.includes("encoder");if(Be&&j?ue[Fe]=j[Fe]:ue[Fe]=M[ge],j&&(!Be||ae)){let Ne=j[Fe];Ne.location==="gpu-buffer"&&Ne.dispose()}}return ue}getAttentions(M){let j={};for(let ae of["cross_attentions","encoder_attentions","decoder_attentions"])for(let ue in M)ue.startsWith(ae)&&(ae in j||(j[ae]=[]),j[ae].push(M[ue]));return j}addPastKeyValues(M,j){if(j)Object.assign(M,j);else{let ae=this.sessions.decoder_model_merged??this.sessions.model,ue=(M[this.main_input_name]??M.attention_mask)?.dims?.[0]??1,ge=ae?.config?.kv_cache_dtype??"float32",Fe=ge==="float16"?d.DataTypeMap.float16:d.DataTypeMap.float32,Be=(0,s.getCacheShapes)(this.config,{batch_size:ue});for(let Ne in Be){let st=Be[Ne].reduce((vt,Pt)=>vt*Pt,1);M[Ne]=new d.Tensor(ge,new Fe(st),Be[Ne])}}}async encode_image({pixel_values:M}){return(await O(this.sessions.vision_encoder,{pixel_values:M})).image_features}async encode_text({input_ids:M}){return(await O(this.sessions.embed_tokens,{input_ids:M})).inputs_embeds}async encode_audio({audio_values:M}){return(await O(this.sessions.audio_encoder,{audio_values:M})).audio_features}}class fe{}class Se extends fe{constructor({last_hidden_state:M,hidden_states:j=null,attentions:ae=null}){super(),this.last_hidden_state=M,this.hidden_states=j,this.attentions=ae}}class Pe extends V{}class pe extends Pe{}class xe extends Pe{async _call(M){return new Pr(await super._call(M))}}class de extends Pe{async _call(M){return new xt(await super._call(M))}}class Ae extends Pe{async _call(M){return new Mr(await super._call(M))}}class $e extends Pe{async _call(M){return new Lr(await super._call(M))}}class Ue extends V{}class Ee extends Ue{}class je extends Ue{async _call(M){return new Pr(await super._call(M))}}class Ge extends Ue{async _call(M){return new xt(await super._call(M))}}class Ve extends Ue{async _call(M){return new Mr(await super._call(M))}}class De extends Ue{async _call(M){return new Lr(await super._call(M))}}class ot extends V{}class lt extends ot{}class rt extends ot{async _call(M){return new Pr(await super._call(M))}}class Ye extends ot{async _call(M){return new xt(await super._call(M))}}class ft extends ot{async _call(M){return new Mr(await super._call(M))}}class yt extends V{}class Ot extends yt{}class vr extends yt{}class zr extends V{}class Rr extends zr{}class Ut extends V{}class Cr extends Ut{}class Hs extends Ut{async _call(M){return new Pr(await super._call(M))}}class Qs extends Ut{async _call(M){return new xt(await super._call(M))}}class Xs extends Ut{async _call(M){return new Mr(await super._call(M))}}class Bs extends Ut{async _call(M){return new Lr(await super._call(M))}}class _t extends V{}class Es extends _t{}class ks extends _t{async _call(M){return new Pr(await super._call(M))}}class ct extends _t{async _call(M){return new xt(await super._call(M))}}class Cs extends _t{async _call(M){return new Mr(await super._call(M))}}class k extends _t{async _call(M){return new Lr(await super._call(M))}}class X extends V{}class N extends X{}class Y extends X{async _call(M){return new Pr(await super._call(M))}}class se extends X{async _call(M){return new xt(await super._call(M))}}class he extends X{async _call(M){return new Mr(await super._call(M))}}class ke extends X{async _call(M){return new Lr(await super._call(M))}}class Ze extends V{}class dt extends Ze{}class qe extends Ze{async _call(M){return new Pr(await super._call(M))}}class Ct extends Ze{async _call(M){return new xt(await super._call(M))}}class St extends Ze{async _call(M){return new Mr(await super._call(M))}}class ur extends Ze{async _call(M){return new Lr(await super._call(M))}}class Rt extends V{}class jr extends Rt{}class pr extends Rt{async _call(M){return new Pr(await super._call(M))}}class Sr extends Rt{async _call(M){return new xt(await super._call(M))}}class Gt extends Rt{async _call(M){return new Mr(await super._call(M))}}class os extends Rt{async _call(M){return new Lr(await super._call(M))}}class Nr extends V{}class Ss extends Nr{}class yr extends Nr{async _call(M){return new Pr(await super._call(M))}}class Fs extends Nr{async _call(M){return new xt(await super._call(M))}}class Is extends Nr{async _call(M){return new Mr(await super._call(M))}}class Vr extends Nr{async _call(M){return new Lr(await super._call(M))}}class Wr extends V{}class Yr extends Wr{}class Fr extends Wr{async _call(M){return new xt(await super._call(M))}}class cs extends Wr{async _call(M){return new Mr(await super._call(M))}}class lr extends Wr{async _call(M){return new Lr(await super._call(M))}}class _r extends Wr{async _call(M){return new Pr(await super._call(M))}}class Hr extends V{}class zs extends Hr{}class Ur extends Hr{async _call(M){return new Pr(await super._call(M))}}class Le extends Hr{async _call(M){return new xt(await super._call(M))}}class Re extends Hr{async _call(M){return new Mr(await super._call(M))}}class tt extends V{}class Jt extends tt{}class Rs extends tt{async _call(M){return new Pr(await super._call(M))}}class ds extends tt{async _call(M){return new xt(await super._call(M))}}class js extends tt{async _call(M){return new Lr(await super._call(M))}}class us extends V{}class po extends us{}class _o extends us{async _call(M){return new Pr(await super._call(M))}}class Qo extends us{async _call(M){return new xt(await super._call(M))}}class ce extends us{async _call(M){return new Mr(await super._call(M))}}class S extends us{async _call(M){return new Lr(await super._call(M))}}class U extends V{}class ee extends U{}class oe extends U{async _call(M){return new Pr(await super._call(M))}}class me extends U{async _call(M){return new xt(await super._call(M))}}class Te extends U{async _call(M){return new Lr(await super._call(M))}}class He extends V{}class Xe extends He{}class Je extends He{async _call(M){return new xt(await super._call(M))}}class We extends He{async _call(M){return new Lr(await super._call(M))}}class It extends He{async _call(M){return new Pr(await super._call(M))}}class bt extends V{forward_params=["input_ids","attention_mask","encoder_outputs","decoder_input_ids","decoder_attention_mask","past_key_values"]}class Kt extends bt{}class mr extends bt{}class Zt extends V{}class Ir extends Zt{}class nr extends Zt{}class fr extends V{}class Ar extends fr{}class $r extends fr{}class Qr extends V{}class Qt extends Qr{}class hr extends Qr{}class Gr extends Qr{async _call(M){return new xt(await super._call(M))}}class Or extends V{}class ps extends Or{}class Tr extends Or{}class ns extends Or{async _call(M){return new xt(await super._call(M))}}class ar extends Or{}class tr extends V{}class cr extends tr{}class er extends tr{}class Kr extends V{}class Ns extends Kr{}class Xo extends Kr{}class Js extends V{}class ya extends Js{}class vn extends Js{async _call(M){return new Pr(await super._call(M))}}class Ta extends Js{async _call(M){return new xt(await super._call(M))}}class Pa extends Js{async _call(M){return new Mr(await super._call(M))}}class Ea extends Js{async _call(M){return new Lr(await super._call(M))}}class Ys extends V{}class ka extends Ys{}class Ca extends Ys{async _call(M){return new Pr(await super._call(M))}}class Sa extends Ys{async _call(M){return new xt(await super._call(M))}}class Fa extends Ys{async _call(M){return new Mr(await super._call(M))}}class Ia extends Ys{async _call(M){return new Lr(await super._call(M))}}class Zs extends V{}class Aa extends Zs{}class $a extends Zs{async _call(M){return new Pr(await super._call(M))}}class yn extends Zs{async _call(M){return new xt(await super._call(M))}}class Tn extends Zs{async _call(M){return new Mr(await super._call(M))}}class Pn extends Zs{async _call(M){return new Lr(await super._call(M))}}class En extends V{}class Da extends En{}class kn extends En{}class Jo extends V{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 eo extends Jo{}class Cn extends Jo{_prepare_generation_config(M,j){return super._prepare_generation_config(M,j,w.WhisperGenerationConfig)}_retrieve_init_tokens(M){let j=[M.decoder_start_token_id],ae=M.language,ue=M.task;if(M.is_multilingual){ae||(console.warn("No language specified - defaulting to English (en)."),ae="en");let Fe=`<|${(0,C.whisper_language_to_code)(ae)}|>`;j.push(M.lang_to_id[Fe]),j.push(M.task_to_id[ue??"transcribe"])}else if(ae||ue)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!M.return_timestamps&&M.no_timestamps_token_id&&j.at(-1)!==M.no_timestamps_token_id?j.push(M.no_timestamps_token_id):M.return_timestamps&&j.at(-1)===M.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(ge=>ge!=null)}async generate({inputs:M=null,generation_config:j=null,logits_processor:ae=null,stopping_criteria:ue=null,...ge}){j=this._prepare_generation_config(j,ge);let Fe=ge.decoder_input_ids??this._retrieve_init_tokens(j);if(j.return_timestamps&&(ae??=new p.LogitsProcessorList,ae.push(new p.WhisperTimeStampLogitsProcessor(j,Fe))),j.begin_suppress_tokens&&(ae??=new p.LogitsProcessorList,ae.push(new p.SuppressTokensAtBeginLogitsProcessor(j.begin_suppress_tokens,Fe.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 Be=await super.generate({inputs:M,generation_config:j,logits_processor:ae,decoder_input_ids:Fe,...ge});return j.return_token_timestamps&&(Be.token_timestamps=this._extract_token_timestamps(Be,j.alignment_heads,j.num_frames)),Be}_extract_token_timestamps(M,j,ae=null,ue=.02){if(!M.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 ge=this.config.median_filter_width;ge===void 0&&(console.warn("Model config has no `median_filter_width`, using default value of 7."),ge=7);let Fe=M.cross_attentions,Be=Array.from({length:this.config.decoder_layers},(gt,mt)=>(0,d.cat)(Fe.map(Dt=>Dt[mt]),2)),Ne=(0,d.stack)(j.map(([gt,mt])=>{if(gt>=Be.length)throw new Error(`Layer index ${gt} is out of bounds for cross attentions (length ${Be.length}).`);return ae?Be[gt].slice(null,mt,null,[0,ae]):Be[gt].slice(null,mt)})).transpose(1,0,2,3),[st,vt]=(0,d.std_mean)(Ne,-2,0,!0),Pt=Ne.clone();for(let gt=0;gt<Pt.dims[0];++gt){let mt=Pt[gt];for(let Dt=0;Dt<mt.dims[0];++Dt){let qt=mt[Dt],rr=st[gt][Dt][0].data,gr=vt[gt][Dt][0].data;for(let wr=0;wr<qt.dims[0];++wr){let dr=qt[wr].data;for(let Ft=0;Ft<dr.length;++Ft)dr[Ft]=(dr[Ft]-gr[Ft])/rr[Ft];dr.set((0,f.medianFilter)(dr,ge))}}}let kt=[(0,d.mean)(Pt,1)],ht=M.sequences.dims,Vt=new d.Tensor("float32",new Float32Array(ht[0]*ht[1]),ht);for(let gt=0;gt<ht[0];++gt){let mt=kt[gt].neg().squeeze_(0),[Dt,qt]=(0,f.dynamic_time_warping)(mt.tolist()),rr=Array.from({length:Dt.length-1},(dr,Ft)=>Dt[Ft+1]-Dt[Ft]),gr=(0,i.mergeArrays)([1],rr).map(dr=>!!dr),wr=[];for(let dr=0;dr<gr.length;++dr)gr[dr]&&wr.push(qt[dr]*ue);Vt[gt].data.set(wr,1)}return Vt}}class Sn extends Cn{}class Fn extends V{requires_attention_mask=!1;main_input_name="input_values";forward_params=["input_values","decoder_input_ids","past_key_values"]}class al extends Fn{}class Oa extends Fn{}class In extends V{main_input_name="pixel_values";forward_params=["pixel_values","decoder_input_ids","encoder_hidden_states","past_key_values"]}class mo extends V{forward_params=["input_ids","attention_mask","pixel_values","position_ids","past_key_values"]}class fo extends mo{_merge_input_ids_with_image_features(M){let j=M.image_features.dims.at(-1),ae=M.image_features.view(-1,j);return D({image_token_id:this.config.image_token_index,...M,image_features:ae})}}class La extends fo{}class Ba extends fo{}class za extends V{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 Ra extends za{_merge_input_ids_with_image_features({inputs_embeds:M,image_features:j,input_ids:ae,attention_mask:ue}){return{inputs_embeds:(0,d.cat)([j,M],1),attention_mask:(0,d.cat)([(0,d.ones)(j.dims.slice(0,2)),ue],1)}}async _prepare_inputs_embeds({input_ids:M,pixel_values:j,inputs_embeds:ae,attention_mask:ue}){if(!M&&!j)throw new Error("Either `input_ids` or `pixel_values` should be provided.");let ge,Fe;return M&&(ge=await this.encode_text({input_ids:M})),j&&(Fe=await this.encode_image({pixel_values:j})),ge&&Fe?{inputs_embeds:ae,attention_mask:ue}=this._merge_input_ids_with_image_features({inputs_embeds:ge,image_features:Fe,input_ids:M,attention_mask:ue}):ae=ge||Fe,{inputs_embeds:ae,attention_mask:ue}}async forward({input_ids:M,pixel_values:j,attention_mask:ae,decoder_input_ids:ue,decoder_attention_mask:ge,encoder_outputs:Fe,past_key_values:Be,inputs_embeds:Ne,decoder_inputs_embeds:st}){if(Ne||({inputs_embeds:Ne,attention_mask:ae}=await this._prepare_inputs_embeds({input_ids:M,pixel_values:j,inputs_embeds:Ne,attention_mask:ae})),!Fe){let{last_hidden_state:kt}=await re(this,{inputs_embeds:Ne,attention_mask:ae});Fe=kt}if(!st){if(!ue)throw new Error("Either `decoder_input_ids` or `decoder_inputs_embeds` should be provided.");st=await this.encode_text({input_ids:ue})}return await be(this,{inputs_embeds:st,attention_mask:ge,encoder_attention_mask:ae,encoder_hidden_states:Fe,past_key_values:Be},!0)}}class ja extends V{forward_params=["input_ids","attention_mask","pixel_values","position_ids","past_key_values"]}class Na extends ja{_merge_input_ids_with_image_features(M){let j=M.image_features.dims.at(-1),ae=M.image_features.view(-1,j);return D({image_token_id:this.config.image_token_index,...M,image_features:ae})}}class Va extends mo{_merge_input_ids_with_image_features(M){let j=M.image_features.dims.at(-1),ae=M.image_features.view(-1,j);return D({image_token_id:this.config.image_token_index,...M,image_features:ae})}}class Wa extends V{forward_params=["input_ids","attention_mask","inputs_embeds","per_layer_inputs","position_ids","pixel_values","input_features","input_features_mask","past_key_values"]}class An extends Wa{async forward({input_ids:M=null,attention_mask:j=null,pixel_values:ae=null,input_features:ue=null,input_features_mask:ge=null,position_ids:Fe=null,inputs_embeds:Be=null,per_layer_inputs:Ne=null,past_key_values:st=null,generation_config:vt=null,logits_processor:Pt=null,...kt}){if((!Be||!Ne)&&({inputs_embeds:Be,per_layer_inputs:Ne}=await O(this.sessions.embed_tokens,{input_ids:M}),M.dims[1]!==1)){if(ae){let{image_features:Vt}=await O(this.sessions.vision_encoder,{pixel_values:ae});({inputs_embeds:Be,attention_mask:j}=this._merge_input_ids_with_image_features({image_features:Vt,inputs_embeds:Be,input_ids:M,attention_mask:j}))}if(ue){let{audio_features:Vt}=await O(this.sessions.audio_encoder,{input_features:ue,input_features_mask:ge});({inputs_embeds:Be,attention_mask:j}=this._merge_input_ids_with_audio_features({audio_features:Vt,inputs_embeds:Be,input_ids:M,attention_mask:j}))}}return await be(this,{inputs_embeds:Be,per_layer_inputs:Ne,past_key_values:st,attention_mask:j,position_ids:Fe,generation_config:vt,logits_processor:Pt},!0)}_merge_input_ids_with_image_features(M){let j=M.image_features.dims.at(-1),ae=M.image_features.view(-1,j);return D({image_token_id:this.config.image_token_id,...M,image_features:ae})}_merge_input_ids_with_audio_features(M){let j=M.audio_features.dims.at(-1),ae=M.audio_features.view(-1,j);return K({audio_token_id:this.config.audio_token_id,...M,audio_features:ae})}}class ho extends V{forward_params=["input_ids","attention_mask","pixel_values","pixel_attention_mask","position_ids","past_key_values"]}class _s extends ho{async encode_image({pixel_values:M,pixel_attention_mask:j}){return(await O(this.sessions.vision_encoder,{pixel_values:M,pixel_attention_mask:j})).image_features}_merge_input_ids_with_image_features(M){let j=M.image_features.dims.at(-1),ae=M.image_features.view(-1,j);return D({image_token_id:this.config.image_token_id,...M,image_features:ae})}}class Yo extends _s{}class Ua extends V{forward_params=["input_ids","inputs_embeds","attention_mask","position_ids","pixel_values","image_sizes","past_key_values"]}class $n extends Ua{async forward({input_ids:M=null,attention_mask:j=null,pixel_values:ae=null,image_sizes:ue=null,position_ids:ge=null,inputs_embeds:Fe=null,past_key_values:Be=null,generation_config:Ne=null,logits_processor:st=null,...vt}){if(!Fe){let kt;if(ae&&M.dims[1]!==1){if(!ue)throw new Error("`image_sizes` must be provided when `pixel_values` is provided.");({image_features:kt}=await O(this.sessions.vision_encoder,{pixel_values:ae,image_sizes:ue}))}else{let ht=this.config.normalized_config.hidden_size;kt=new d.Tensor("float32",[],[0,ht])}({inputs_embeds:Fe}=await O(this.sessions.prepare_inputs_embeds,{input_ids:M,image_features:kt}))}return await be(this,{inputs_embeds:Fe,past_key_values:Be,attention_mask:j,position_ids:ge,generation_config:Ne,logits_processor:st},!1)}}class ms extends V{}class Zo extends ms{}class Ga extends ms{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"text_model"})}}class Dn extends ms{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"text_model"})}}class Ka extends ms{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"vision_model"})}}class On extends ms{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"vision_model"})}}class en extends V{}class Ln extends en{}class qa extends en{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"text_model"})}}class Bn extends ms{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"vision_model"})}}class zn extends V{}class go extends zn{}class ut extends V{}class Ha extends ut{async forward(M){let j=!M.input_ids,ae=!M.pixel_values;if(j&&ae)throw new Error("Either `input_ids` or `pixel_values` should be provided.");if(j&&(M.input_ids=(0,d.ones)([M.pixel_values.dims[0],1])),ae){let{image_size:st}=this.config.vision_config;M.pixel_values=(0,d.full)([0,3,st,st],0)}let{text_embeddings:ue,image_embeddings:ge,l2norm_text_embeddings:Fe,l2norm_image_embeddings:Be}=await super.forward(M),Ne={};return j||(Ne.text_embeddings=ue,Ne.l2norm_text_embeddings=Fe),ae||(Ne.image_embeddings=ge,Ne.l2norm_image_embeddings=Be),Ne}}class Rn extends ut{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"text_model"})}}class jn extends ut{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"vision_model"})}}class to extends V{}class Zr extends to{}class wo extends to{}class bo extends V{}class Nn extends bo{}class Vn extends bo{}class tn extends V{}class rn extends tn{}class Wn extends tn{}class sn extends V{}class Un extends sn{}class Mo extends sn{}class xo extends V{}class on extends xo{}class Gn extends xo{}class nn extends V{}class Kn extends nn{}class qn extends nn{}class an extends V{}class _ extends an{}class T extends an{}class A extends V{}class B extends A{}class W extends A{}class ie extends V{}class ve extends ie{}class Oe extends ie{}class Qe extends V{}class nt extends Qe{}class Mt extends Qe{}class At extends V{}class jt extends At{}class br extends At{}class As extends V{}class Qa extends As{}class Au extends As{}class il extends V{}class $u extends il{}class Du extends il{}class ll extends V{}class Ou extends ll{}class Lu extends ll{}class cl extends V{}class Bu extends cl{}class zu extends cl{}class dl extends V{}class Ru extends dl{}class ju extends dl{}class ul extends V{}class Nu extends ul{}class Vu extends ul{}class pl extends V{}class Wu extends pl{}class Uu extends pl{}class _l extends V{}class Gu extends _l{}class Ku extends _l{}class ml extends V{}class qu extends ml{}class Hu extends ml{}class fl extends V{}class Qu extends fl{}class Xu extends fl{}class hl extends V{}class Ju extends hl{}class Yu extends hl{}class gl extends V{}class Zu extends gl{}class ep extends gl{}class wl extends V{}class tp extends wl{}class rp extends wl{}class bl extends V{}class sp extends bl{}class op extends bl{}class Ml extends V{}class np extends Ml{}class ap extends Ml{}class ip extends V{forward_params=["input_ids","attention_mask","position_ids","past_key_values","pixel_values","image_grid_thw"]}class lp extends ip{get_rope_index(M,j,ae,ue){let{vision_config:ge,image_token_id:Fe,video_token_id:Be,vision_start_token_id:Ne}=this.config,st=ge.spatial_merge_size??2,vt=[];if(j||ae){let Pt=M.tolist();ue||(ue=(0,d.ones_like)(M));let kt=ue.tolist(),ht=Array.from({length:3},qt=>Array.from({length:M.dims[0]},rr=>Array.from({length:M.dims[1]},gr=>1))),Vt=j?j.tolist():[],gt=ae?ae.tolist():[],mt=0,Dt=0;for(let qt=0;qt<Pt.length;++qt){let rr=Pt[qt].filter((Yt,xr)=>kt[qt][xr]==1),wr=rr.reduce((Yt,xr,so)=>(xr==Ne&&Yt.push(so),Yt),[]).map(Yt=>rr[Yt+1]),dr=wr.filter(Yt=>Yt==Fe).length,Ft=wr.filter(Yt=>Yt==Be).length,sr=[],Er=0,yo=dr,Xr=Ft;for(let Yt=0;Yt<wr.length;++Yt){let xr=rr.findIndex((Po,hs)=>hs>Er&&Po==Fe),so=rr.findIndex((Po,hs)=>hs>Er&&Po==Be),To=yo>0&&xr!==-1?xr:rr.length+1,pn=Xr>0&&so!==-1?so:rr.length+1,pi,Mc,xc,vc;To<pn?([Mc,xc,vc]=Vt[mt],++mt,--yo,pi=To):([Mc,xc,vc]=gt[Dt],++Dt,--Xr,pi=pn);let[yT,yc,_i]=[Number(Mc),Math.floor(Number(xc)/st),Math.floor(Number(vc)/st)],Tc=pi-Er,hh=sr.length>0?(0,f.max)(sr.at(-1))[0]+1:0;sr.push(Array.from({length:3*Tc},(Po,hs)=>hh+hs%Tc));let Pc=Tc+hh,mi=yT*yc*_i,TT=Array.from({length:mi},(Po,hs)=>Pc+Math.floor(hs/(yc*_i))),PT=Array.from({length:mi},(Po,hs)=>Pc+Math.floor(hs/_i)%yc),ET=Array.from({length:mi},(Po,hs)=>Pc+hs%_i);sr.push([TT,PT,ET].flat()),Er=pi+mi}if(Er<rr.length){let Yt=sr.length>0?(0,f.max)(sr.at(-1))[0]+1:0,xr=rr.length-Er;sr.push(Array.from({length:3*xr},(so,To)=>Yt+To%xr))}let fs=sr.reduce((Yt,xr)=>Yt+xr.length,0),dn=new Array(fs),un=0;for(let Yt=0;Yt<3;++Yt)for(let xr=0;xr<sr.length;++xr){let so=sr[xr],To=so.length/3;for(let pn=Yt*To;pn<(Yt+1)*To;++pn)dn[un++]=so[pn]}let ui=0,Xn=kt[qt];for(let Yt=0;Yt<Xn.length;++Yt)if(Xn[Yt]==1){for(let xr=0;xr<3;++xr)ht[xr][qt][Yt]=dn[xr*fs/3+ui];++ui}let vT=(0,f.max)(dn)[0];vt.push(vT+1-Pt[qt].length)}return[new d.Tensor("int64",ht.flat(1/0),[3,M.dims[0],M.dims[1]]),new d.Tensor("int64",vt,[vt.length,1])]}else if(ue){let{data:Pt,dims:kt}=Me(ue),ht=BigInt64Array.from({length:3*Pt.length},(gt,mt)=>Pt[mt%Pt.length]),Vt=Array.from({length:kt[0]},(gt,mt)=>(0,f.max)(Pt.subarray(kt[1]*mt,kt[1]*(mt+1)))[0]+1n+BigInt(kt[1]));return[new d.Tensor("int64",ht,[3,...kt]),new d.Tensor("int64",Vt,[Vt.length,1])]}else{let[Pt,kt]=M.dims,ht=BigInt64Array.from({length:3*Pt*kt},(Vt,gt)=>BigInt(Math.floor(gt%kt/Pt)));return[new d.Tensor("int64",ht,[3,...M.dims]),(0,d.zeros)([Pt,1])]}}async encode_image({pixel_values:M,image_grid_thw:j}){return(await O(this.sessions.vision_encoder,{pixel_values:M,grid_thw:j})).image_features}_merge_input_ids_with_image_features(M){return D({image_token_id:this.config.image_token_id,...M})}prepare_inputs_for_generation(M,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 ue=BigInt(Object.values(j.past_key_values)[0].dims.at(-2)),ge=j.rope_deltas.map(Fe=>ue+Fe);j.position_ids=(0,d.stack)([ge,ge,ge],0)}return j}}class xl extends V{}class cp extends xl{}class dp extends xl{}class vl extends V{}class up extends vl{}class pp extends vl{}class yl extends V{}class _p extends yl{}class mp extends yl{}class Tl extends V{}class fp extends Tl{}class hp extends Tl{}class Pl extends V{}class gp extends Pl{}class wp extends Pl{}class El extends V{}class bp extends El{}class Mp extends El{async _call(M){return new xt(await super._call(M))}}class kl extends V{}class xp extends kl{}class vp extends kl{async _call(M){return new xt(await super._call(M))}}class yp extends V{}class Tp extends yp{}class Cl extends V{}class Pp extends Cl{}class Ep extends Cl{async _call(M){return new xt(await super._call(M))}}class kp extends V{}class Cp extends kp{}class Sl extends V{}class Sp extends Sl{}class Fp extends Sl{async _call(M){return new xt(await super._call(M))}}class Ip extends V{}class Ap extends Ip{}class Fl extends V{}class $p extends Fl{}class Dp extends Fl{async _call(M){return new xt(await super._call(M))}}class Op extends V{}class Lp extends Op{async _call(M){return new mh(await super._call(M))}}class Il extends V{}class Bp extends Il{}class zp extends Il{async _call(M){return new xt(await super._call(M))}}class Al extends V{}class Rp extends Al{}class jp extends Al{async _call(M){return new xt(await super._call(M))}}class $l extends V{}class Np extends $l{}class Vp extends $l{}class Dl extends V{}class Wp extends Dl{}class Up extends Dl{}class Ol extends V{}class Gp extends Ol{}class Kp extends Ol{async _call(M){return new xt(await super._call(M))}}class Xa extends V{}class qp extends Xa{}class Hp extends Xa{async _call(M){return new Bl(await super._call(M))}}class Ll extends Xa{async _call(M){return new Qp(await super._call(M))}}class Bl extends fe{constructor({logits:M,pred_boxes:j}){super(),this.logits=M,this.pred_boxes=j}}class Qp extends fe{constructor({logits:M,pred_boxes:j,pred_masks:ae}){super(),this.logits=M,this.pred_boxes=j,this.pred_masks=ae}}class zl extends V{}class Xp extends zl{}class Jp extends zl{async _call(M){return new Hn(await super._call(M))}}class Hn extends fe{constructor({logits:M,pred_boxes:j}){super(),this.logits=M,this.pred_boxes=j}}class Rl extends V{}class Yp extends Rl{}class Zp extends Rl{async _call(M){return new e_(await super._call(M))}}class e_ extends Hn{}class jl extends V{}class t_ extends jl{}class r_ extends jl{async _call(M){return new s_(await super._call(M))}}class s_ extends Hn{}class Nl extends V{}class o_ extends Nl{}class n_ extends Nl{async _call(M){return new Hn(await super._call(M))}}class Vl extends V{}class a_ extends Vl{}class i_ extends Vl{async _call(M){return new l_(await super._call(M))}}class l_ extends Bl{}class Wl extends V{}class c_ extends Wl{}class d_ extends Wl{async _call(M){return new xt(await super._call(M))}}class Ul extends V{}class u_ extends Ul{}class p_ extends Ul{async _call(M){return new xt(await super._call(M))}}class Gl extends V{}class __ extends Gl{}class m_ extends Gl{async _call(M){return new xt(await super._call(M))}}class Ja extends V{}class f_ extends Ja{}class h_ extends Ja{async _call(M){return new xt(await super._call(M))}}class g_ extends Ja{}class Kl extends V{}class w_ extends Kl{}class b_ extends Kl{}class ql extends V{}class M_ extends ql{}class x_ extends ql{}class v_ extends V{}class y_ extends v_{}class Ya extends V{}class T_ extends Ya{}class P_ extends Ya{}class E_ extends Ya{}class k_ extends V{}class C_ extends k_{}class S_ extends V{}class F_ extends S_{}class I_ extends V{}class A_ extends I_{}class Hl extends V{}class $_ extends Hl{}class D_ extends Hl{}class Ql extends V{}class O_ extends Ql{}class L_ extends Ql{}class B_ extends V{}class z_ extends B_{}class Xl extends V{}class R_ extends Xl{}class j_ extends Xl{async _call(M){return new xt(await super._call(M))}}class Jl extends V{}class N_ extends Jl{}class V_ extends Jl{async _call(M){return new xt(await super._call(M))}}class Yl extends V{}class W_ extends Yl{}class U_ extends Yl{async _call(M){return new xt(await super._call(M))}}class Zl extends V{}class G_ extends Zl{}class K_ extends Zl{async _call(M){return new xt(await super._call(M))}}class q_ extends V{}class H_ extends q_{}class ec extends V{}class Q_ extends ec{}class X_ extends ec{async _call(M){return new J_(await super._call(M))}}class J_ extends fe{constructor({logits:M,pred_boxes:j}){super(),this.logits=M,this.pred_boxes=j}}class Y_ extends V{}class Z_ extends Y_{async get_image_embeddings({pixel_values:M}){return await re(this,{pixel_values:M})}async forward(M){if((!M.image_embeddings||!M.image_positional_embeddings)&&(M={...M,...await this.get_image_embeddings(M)}),!M.input_labels&&M.input_points){let ae=M.input_points.dims.slice(0,-1),ue=ae.reduce((ge,Fe)=>ge*Fe,1);M.input_labels=new d.Tensor("int64",new BigInt64Array(ue).fill(1n),ae)}let j={image_embeddings:M.image_embeddings,image_positional_embeddings:M.image_positional_embeddings};return M.input_points&&(j.input_points=M.input_points),M.input_labels&&(j.input_labels=M.input_labels),M.input_boxes&&(j.input_boxes=M.input_boxes),await O(this.sessions.prompt_encoder_mask_decoder,j)}async _call(M){return new em(await super._call(M))}}class em extends fe{constructor({iou_scores:M,pred_masks:j}){super(),this.iou_scores=M,this.pred_masks=j}}class tc extends V{}class tm extends tc{}class rm extends tc{}class rc extends V{}class sm extends rc{}class om extends rc{}class ro extends V{}class nm extends ro{}class am extends ro{async _call(M){return new vo(await super._call(M))}}class im extends ro{async _call(M){return new xt(await super._call(M))}}class lm extends ro{async _call(M){return new Mr(await super._call(M))}}class sc extends V{}class cm extends sc{}class dm extends sc{async _call(M){return new Mr(await super._call(M))}}class um extends V{}class pm extends um{}class Za extends V{}class _m extends Za{}class mm extends Za{async _call(M){return new vo(await super._call(M))}}class fm extends Za{async _call(M){return new xt(await super._call(M))}}class Qn extends V{}class hm extends Qn{}class gm extends Qn{async _call(M){return new vo(await super._call(M))}}class wm extends Qn{async _call(M){return new xt(await super._call(M))}}class bm extends Qn{async _call(M){return new Mr(await super._call(M))}}class ei extends V{}class Mm extends ei{}class xm extends ei{async _call(M){return new vo(await super._call(M))}}class vm extends ei{async _call(M){return new xt(await super._call(M))}}class F0 extends V{}class ym extends ro{}class Tm extends ro{async _call(M){return new vo(await super._call(M))}}class Pm extends ro{async _call(M){return new xt(await super._call(M))}}class ln extends V{}class Em extends ln{}class km extends ln{async _call(M){return new vo(await super._call(M))}}class Cm extends ln{async _call(M){return new xt(await super._call(M))}}class Sm extends ln{async _call(M){return new _h(await super._call(M))}}class Fm extends ln{async _call(M){return new Mr(await super._call(M))}}class Im extends V{}class Am extends Im{}class ti extends V{}class I0 extends ti{}class $m extends ti{}class Dm extends ti{async generate_speech(M,j,{threshold:ae=.5,minlenratio:ue=0,maxlenratio:ge=20,vocoder:Fe=null}={}){let Be={input_ids:M},{encoder_outputs:Ne,encoder_attention_mask:st}=await re(this,Be),vt=Ne.dims[1]/this.config.reduction_factor,Pt=Math.floor(vt*ge),kt=Math.floor(vt*ue),ht=this.config.num_mel_bins,Vt=[],gt=null,mt=null,Dt=0;for(;;){++Dt;let gr=H(!!mt),wr;mt?wr=mt.output_sequence_out:wr=new d.Tensor("float32",new Float32Array(ht),[1,1,ht]);let dr={use_cache_branch:gr,output_sequence:wr,encoder_attention_mask:st,speaker_embeddings:j,encoder_hidden_states:Ne};this.addPastKeyValues(dr,gt),mt=await O(this.sessions.decoder_model_merged,dr),gt=this.getPastKeyValues(mt,gt);let{prob:Ft,spectrum:sr}=mt;if(Vt.push(sr),Dt>=kt&&(Array.from(Ft.data).filter(Er=>Er>=ae).length>0||Dt>=Pt))break}let qt=(0,d.cat)(Vt),{waveform:rr}=await O(Fe.sessions.model,{spectrogram:qt});return{spectrogram:qt,waveform:rr}}}class Om extends V{main_input_name="spectrogram"}class Lm extends V{}class Bm extends Lm{}class oc extends V{}class zm extends oc{}class Rm extends oc{}class nc extends V{}class jm extends nc{}class Nm extends nc{}class ac extends V{}class Vm extends ac{}class Wm extends ac{}class ic extends V{}class Um extends ic{}class Gm extends ic{}class ri extends V{}class Km extends ri{}class qm extends ri{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"text_model"})}}class Hm extends ri{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"audio_model"})}}class Qm extends V{}class lc extends Qm{async _call(M){return new fh(await super._call(M))}}class si extends V{}class A0 extends si{}class Xm extends si{}class Jm extends si{}class cc extends V{}class Ym extends cc{}class Zm extends cc{}class dc extends V{}class ef extends dc{}class tf extends dc{async _call(M){return new xt(await super._call(M))}}class uc extends V{}class $0 extends uc{}class D0 extends uc{}class pc extends V{forward_params=["input_ids","attention_mask","encoder_outputs","decoder_input_ids","decoder_attention_mask","past_key_values"];_apply_and_filter_by_delay_pattern_mask(M){let[j,ae]=M.dims,ue=this.config.decoder.num_codebooks,ge=ae-ue,Fe=0;for(let st=0;st<M.size;++st){if(M.data[st]===this.config.decoder.pad_token_id)continue;let vt=st%ae,Pt=Math.floor(st/ae)%ue,kt=vt-Pt;kt>0&&kt<=ge&&(M.data[Fe++]=M.data[st])}let Be=Math.floor(j/ue),Ne=Fe/(Be*ue);return new d.Tensor(M.type,M.data.slice(0,Fe),[Be,ue,Ne])}prepare_inputs_for_generation(M,j,ae){let ue=structuredClone(M);for(let Fe=0;Fe<ue.length;++Fe)for(let Be=0;Be<ue[Fe].length;++Be)Fe%this.config.decoder.num_codebooks>=Be&&(ue[Fe][Be]=BigInt(this.config.decoder.pad_token_id));return ae.guidance_scale!==null&&ae.guidance_scale>1&&(ue=ue.concat(ue)),super.prepare_inputs_for_generation(ue,j,ae)}async generate(M){let j=await super.generate(M),ae=this._apply_and_filter_by_delay_pattern_mask(j).unsqueeze_(0),{audio_values:ue}=await O(this.sessions.encodec_decode,{audio_codes:ae});return ue}}class oi extends V{}class rf extends oi{}class sf extends oi{async _call(M){return new xt(await super._call(M))}}class of extends oi{}class ni extends V{}class nf extends ni{}class af extends ni{async _call(M){return new xt(await super._call(M))}}class lf extends ni{}class ai extends V{}class cf extends ai{}class df extends ai{async _call(M){return new xt(await super._call(M))}}class uf extends ai{}class ii extends V{}class pf extends ii{}class _f extends ii{async _call(M){return new xt(await super._call(M))}}class mf extends ii{}class ff extends V{}class hf extends ff{}class gf extends V{}class wf extends gf{forward_params=["input_ids","pixel_values","images_seq_mask","images_emb_mask","attention_mask","position_ids","past_key_values"];constructor(...M){super(...M),this._generation_mode="text"}async forward(M){let j=this._generation_mode??"text",ae;if(j==="text"||!M.past_key_values){let Ne=this.sessions.prepare_inputs_embeds,st=(0,i.pick)(M,Ne.inputNames);ae=await O(Ne,st)}else{let Ne=this.sessions.gen_img_embeds,st=(0,i.pick)({image_ids:M.input_ids},Ne.inputNames);ae=await O(Ne,st)}let ue={...M,...ae},ge=await be(this,ue),Fe=this.sessions[j==="text"?"lm_head":"gen_head"];if(!Fe)throw new Error(`Unable to find "${Fe}" generation head`);let Be=await O(Fe,(0,i.pick)(ge,Fe.inputNames));return{...ae,...ge,...Be}}async generate(M){return this._generation_mode="text",super.generate(M)}async generate_images(M){this._generation_mode="image";let j=(M.inputs??M[this.main_input_name]).dims[1],ue=(await super.generate(M)).slice(null,[j,null]),ge=this.sessions.image_decode,{decoded_image:Fe}=await O(ge,{generated_tokens:ue}),Be=Fe.add_(1).mul_(255/2).clamp_(0,255).to("uint8"),Ne=[];for(let st of Be){let vt=h.RawImage.fromTensor(st);Ne.push(vt)}return Ne}}class bf extends fe{constructor({char_logits:M,bpe_logits:j,wp_logits:ae}){super(),this.char_logits=M,this.bpe_logits=j,this.wp_logits=ae}get logits(){return[this.char_logits,this.bpe_logits,this.wp_logits]}}class Mf extends V{}class xf extends Mf{async _call(M){return new bf(await super._call(M))}}class _c extends V{}class vf extends _c{}class yf extends _c{}class mc extends V{}class Tf extends mc{}class Pf extends mc{}class Ef extends V{forward_params=["input_ids","attention_mask","position_ids","audio_values","past_key_values"]}class fc extends Ef{_merge_input_ids_with_audio_features(M){let j=M.audio_features.dims.at(-1),ae=M.audio_features.view(-1,j);return K({audio_token_id:this.config.ignore_index??this.config.audio_token_id,...M,audio_features:ae})}}class kf extends fc{}class li extends V{main_input_name="input_values";forward_params=["input_values"]}class Cf extends fe{constructor({audio_codes:M}){super(),this.audio_codes=M}}class Sf extends fe{constructor({audio_values:M}){super(),this.audio_values=M}}class Ff extends li{async encode(M){return new Cf(await O(this.sessions.encoder_model,M))}async decode(M){return new Sf(await O(this.sessions.decoder_model,M))}}class If extends li{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"encoder_model"})}}class Af extends li{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"decoder_model"})}}class ci extends V{main_input_name="input_values";forward_params=["input_values"]}class $f extends fe{constructor({audio_codes:M}){super(),this.audio_codes=M}}class Df extends fe{constructor({audio_values:M}){super(),this.audio_values=M}}class Of extends ci{async encode(M){return new $f(await O(this.sessions.encoder_model,M))}async decode(M){return new Df(await O(this.sessions.decoder_model,M))}}class Lf extends ci{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"encoder_model"})}}class Bf extends ci{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"decoder_model"})}}class di extends V{main_input_name="input_values";forward_params=["input_values"]}class zf extends di{async encode(M){return await O(this.sessions.encoder_model,M)}async decode(M){return await O(this.sessions.decoder_model,M)}}class Rf extends di{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"encoder_model"})}}class jf extends di{static async from_pretrained(M,j={}){return super.from_pretrained(M,{...j,model_file_name:j.model_file_name??"decoder_model"})}}class Nt{static MODEL_CLASS_MAPPINGS=null;static BASE_IF_FAIL=!1;static async from_pretrained(M,{progress_callback:j=null,config:ae=null,cache_dir:ue=null,local_files_only:ge=!1,revision:Fe="main",model_file_name:Be=null,subfolder:Ne="onnx",device:st=null,dtype:vt=null,use_external_data_format:Pt=null,session_options:kt={}}={}){let ht={progress_callback:j,config:ae,cache_dir:ue,local_files_only:ge,revision:Fe,model_file_name:Be,subfolder:Ne,device:st,dtype:vt,use_external_data_format:Pt,session_options:kt};if(ht.config=await s.AutoConfig.from_pretrained(M,ht),!this.MODEL_CLASS_MAPPINGS)throw new Error("`MODEL_CLASS_MAPPINGS` not implemented for this type of `AutoClass`: "+this.name);let Vt=ht.config.model_type;for(let gt of this.MODEL_CLASS_MAPPINGS){let mt=gt.get(Vt);if(!mt){for(let Dt of gt.values())if(Dt[0]===Vt){mt=Dt;break}if(!mt)continue}return await mt[1].from_pretrained(M,ht)}if(this.BASE_IF_FAIL)return ph.has(Vt)||console.warn(`Unknown model class "${Vt}", attempting to construct from base class.`),await V.from_pretrained(M,ht);throw Error(`Unsupported model type: ${Vt}`)}}let O0=new Map([["bert",["BertModel",pe]],["neobert",["NeoBertModel",Ee]],["modernbert",["ModernBertModel",lt]],["nomic_bert",["NomicBertModel",Rr]],["roformer",["RoFormerModel",Cr]],["electra",["ElectraModel",N]],["esm",["EsmModel",zs]],["convbert",["ConvBertModel",Es]],["camembert",["CamembertModel",dt]],["deberta",["DebertaModel",jr]],["deberta-v2",["DebertaV2Model",Ss]],["mpnet",["MPNetModel",po]],["albert",["AlbertModel",Xe]],["distilbert",["DistilBertModel",Yr]],["roberta",["RobertaModel",ya]],["xlm",["XLMModel",ka]],["xlm-roberta",["XLMRobertaModel",Aa]],["clap",["ClapModel",Km]],["clip",["CLIPModel",Zo]],["clipseg",["CLIPSegModel",Zr]],["chinese_clip",["ChineseCLIPModel",go]],["siglip",["SiglipModel",Ln]],["jina_clip",["JinaCLIPModel",Ha]],["mobilebert",["MobileBertModel",Jt]],["squeezebert",["SqueezeBertModel",ee]],["wav2vec2",["Wav2Vec2Model",nm]],["wav2vec2-bert",["Wav2Vec2BertModel",Mm]],["unispeech",["UniSpeechModel",_m]],["unispeech-sat",["UniSpeechSatModel",hm]],["hubert",["HubertModel",ym]],["wavlm",["WavLMModel",Em]],["audio-spectrogram-transformer",["ASTModel",Da]],["vits",["VitsModel",lc]],["pyannote",["PyAnnoteModel",cm]],["wespeaker-resnet",["WeSpeakerResNetModel",pm]],["detr",["DetrModel",qp]],["rt_detr",["RTDetrModel",Xp]],["rt_detr_v2",["RTDetrV2Model",Yp]],["rf_detr",["RFDetrModel",t_]],["d_fine",["DFineModel",o_]],["table-transformer",["TableTransformerModel",a_]],["vit",["ViTModel",bp]],["ijepa",["IJepaModel",xp]],["pvt",["PvtModel",Pp]],["vit_msn",["ViTMSNModel",Sp]],["vit_mae",["ViTMAEModel",Cp]],["groupvit",["GroupViTModel",Ap]],["fastvit",["FastViTModel",$p]],["mobilevit",["MobileViTModel",Bp]],["mobilevitv2",["MobileViTV2Model",Rp]],["owlvit",["OwlViTModel",Np]],["owlv2",["Owlv2Model",Wp]],["beit",["BeitModel",Gp]],["deit",["DeiTModel",c_]],["hiera",["HieraModel",u_]],["convnext",["ConvNextModel",R_]],["convnextv2",["ConvNextV2Model",N_]],["dinov2",["Dinov2Model",W_]],["dinov2_with_registers",["Dinov2WithRegistersModel",G_]],["resnet",["ResNetModel",__]],["swin",["SwinModel",f_]],["swin2sr",["Swin2SRModel",w_]],["donut-swin",["DonutSwinModel",z_]],["yolos",["YolosModel",Q_]],["dpt",["DPTModel",M_]],["glpn",["GLPNModel",O_]],["hifigan",["SpeechT5HifiGan",Om]],["efficientnet",["EfficientNetModel",ef]],["decision_transformer",["DecisionTransformerModel",hf]],["patchtst",["PatchTSTForPrediction",vf]],["patchtsmixer",["PatchTSMixerForPrediction",Tf]],["mobilenet_v1",["MobileNetV1Model",rf]],["mobilenet_v2",["MobileNetV2Model",nf]],["mobilenet_v3",["MobileNetV3Model",cf]],["mobilenet_v4",["MobileNetV4Model",pf]],["maskformer",["MaskFormerModel",$_]],["mgp-str",["MgpstrForSceneTextRecognition",xf]],["style_text_to_speech_2",["StyleTextToSpeech2Model",Am]]]),L0=new Map([["t5",["T5Model",Kt]],["longt5",["LongT5Model",Ir]],["mt5",["MT5Model",Ar]],["bart",["BartModel",Qt]],["mbart",["MBartModel",ps]],["marian",["MarianModel",tm]],["whisper",["WhisperModel",eo]],["m2m_100",["M2M100Model",sm]],["blenderbot",["BlenderbotModel",cr]],["blenderbot-small",["BlenderbotSmallModel",Ns]]]),B0=new Map([["mimi",["MimiModel",Ff]],["dac",["DacModel",Of]],["snac",["SnacModel",zf]]]),z0=new Map([["bloom",["BloomModel",_p]],["jais",["JAISModel",rn]],["gpt2",["GPT2Model",Nn]],["gptj",["GPTJModel",Kn]],["gpt_bigcode",["GPTBigCodeModel",_]],["gpt_neo",["GPTNeoModel",Un]],["gpt_neox",["GPTNeoXModel",on]],["codegen",["CodeGenModel",B]],["llama",["LlamaModel",ve]],["arcee",["ArceeModel",nt]],["lfm2",["Lfm2Model",jt]],["smollm3",["SmolLM3Model",Qa]],["exaone",["ExaoneModel",Bu]],["olmo",["OlmoModel",Nu]],["olmo2",["Olmo2Model",Wu]],["mobilellm",["MobileLLMModel",Ru]],["granite",["GraniteModel",Gu]],["cohere",["CohereModel",qu]],["gemma",["GemmaModel",Qu]],["gemma2",["Gemma2Model",Ju]],["gemma3_text",["Gemma3Model",Zu]],["helium",["HeliumModel",$u]],["glm",["GlmModel",Ou]],["openelm",["OpenELMModel",tp]],["qwen2",["Qwen2Model",sp]],["qwen3",["Qwen3Model",np]],["phi",["PhiModel",cp]],["phi3",["Phi3Model",up]],["mpt",["MptModel",fp]],["opt",["OPTModel",gp]],["mistral",["MistralModel",zm]],["ernie4_5",["Ernie4_5_Model",jm]],["starcoder2",["Starcoder2Model",Vm]],["falcon",["FalconModel",Um]],["stablelm",["StableLmModel",Ym]],["modernbert-decoder",["ModernBertDecoderModel",Ot]]]),hc=new Map([["speecht5",["SpeechT5ForSpeechToText",$m]],["whisper",["WhisperForConditionalGeneration",Cn]],["lite-whisper",["LiteWhisperForConditionalGeneration",Sn]],["moonshine",["MoonshineForConditionalGeneration",Oa]]]),Nf=new Map([["speecht5",["SpeechT5ForTextToSpeech",Dm]]]),Vf=new Map([["vits",["VitsModel",lc]],["musicgen",["MusicgenForConditionalGeneration",pc]]]),Wf=new Map([["bert",["BertForSequenceClassification",de]],["neobert",["NeoBertForSequenceClassification",Ge]],["modernbert",["ModernBertForSequenceClassification",Ye]],["roformer",["RoFormerForSequenceClassification",Qs]],["electra",["ElectraForSequenceClassification",se]],["esm",["EsmForSequenceClassification",Le]],["convbert",["ConvBertForSequenceClassification",ct]],["camembert",["CamembertForSequenceClassification",Ct]],["deberta",["DebertaForSequenceClassification",Sr]],["deberta-v2",["DebertaV2ForSequenceClassification",Fs]],["mpnet",["MPNetForSequenceClassification",Qo]],["albert",["AlbertForSequenceClassification",Je]],["distilbert",["DistilBertForSequenceClassification",Fr]],["roberta",["RobertaForSequenceClassification",Ta]],["xlm",["XLMForSequenceClassification",Sa]],["xlm-roberta",["XLMRobertaForSequenceClassification",yn]],["bart",["BartForSequenceClassification",Gr]],["mbart",["MBartForSequenceClassification",ns]],["mobilebert",["MobileBertForSequenceClassification",ds]],["squeezebert",["SqueezeBertForSequenceClassification",me]]]),Uf=new Map([["bert",["BertForTokenClassification",Ae]],["neobert",["NeoBertForTokenClassification",Ve]],["modernbert",["ModernBertForTokenClassification",ft]],["roformer",["RoFormerForTokenClassification",Xs]],["electra",["ElectraForTokenClassification",he]],["esm",["EsmForTokenClassification",Re]],["convbert",["ConvBertForTokenClassification",Cs]],["camembert",["CamembertForTokenClassification",St]],["deberta",["DebertaForTokenClassification",Gt]],["deberta-v2",["DebertaV2ForTokenClassification",Is]],["mpnet",["MPNetForTokenClassification",ce]],["distilbert",["DistilBertForTokenClassification",cs]],["roberta",["RobertaForTokenClassification",Pa]],["xlm",["XLMForTokenClassification",Fa]],["xlm-roberta",["XLMRobertaForTokenClassification",Tn]]]),gc=new Map([["t5",["T5ForConditionalGeneration",mr]],["longt5",["LongT5ForConditionalGeneration",nr]],["mt5",["MT5ForConditionalGeneration",$r]],["bart",["BartForConditionalGeneration",hr]],["mbart",["MBartForConditionalGeneration",Tr]],["marian",["MarianMTModel",rm]],["m2m_100",["M2M100ForConditionalGeneration",om]],["blenderbot",["BlenderbotForConditionalGeneration",er]],["blenderbot-small",["BlenderbotSmallForConditionalGeneration",Xo]]]),wc=new Map([["bloom",["BloomForCausalLM",mp]],["gpt2",["GPT2LMHeadModel",Vn]],["jais",["JAISLMHeadModel",Wn]],["gptj",["GPTJForCausalLM",qn]],["gpt_bigcode",["GPTBigCodeForCausalLM",T]],["gpt_neo",["GPTNeoForCausalLM",Mo]],["gpt_neox",["GPTNeoXForCausalLM",Gn]],["codegen",["CodeGenForCausalLM",W]],["llama",["LlamaForCausalLM",Oe]],["arcee",["ArceeForCausalLM",Mt]],["lfm2",["Lfm2ForCausalLM",br]],["smollm3",["SmolLM3ForCausalLM",Au]],["exaone",["ExaoneForCausalLM",zu]],["olmo",["OlmoForCausalLM",Vu]],["olmo2",["Olmo2ForCausalLM",Uu]],["mobilellm",["MobileLLMForCausalLM",ju]],["granite",["GraniteForCausalLM",Ku]],["cohere",["CohereForCausalLM",Hu]],["gemma",["GemmaForCausalLM",Xu]],["gemma2",["Gemma2ForCausalLM",Yu]],["gemma3_text",["Gemma3ForCausalLM",ep]],["helium",["HeliumForCausalLM",Du]],["glm",["GlmForCausalLM",Lu]],["openelm",["OpenELMForCausalLM",rp]],["qwen2",["Qwen2ForCausalLM",op]],["qwen3",["Qwen3ForCausalLM",ap]],["phi",["PhiForCausalLM",dp]],["phi3",["Phi3ForCausalLM",pp]],["mpt",["MptForCausalLM",hp]],["opt",["OPTForCausalLM",wp]],["mbart",["MBartForCausalLM",ar]],["mistral",["MistralForCausalLM",Rm]],["ernie4_5",["Ernie4_5_ForCausalLM",Nm]],["starcoder2",["Starcoder2ForCausalLM",Wm]],["falcon",["FalconForCausalLM",Gm]],["trocr",["TrOCRForCausalLM",Bm]],["stablelm",["StableLmForCausalLM",Zm]],["modernbert-decoder",["ModernBertDecoderForCausalLM",vr]],["phi3_v",["Phi3VForCausalLM",$n]]]),R0=new Map([["multi_modality",["MultiModalityCausalLM",wf]]]),Gf=new Map([["bert",["BertForMaskedLM",xe]],["neobert",["NeoBertForMaskedLM",je]],["modernbert",["ModernBertForMaskedLM",rt]],["roformer",["RoFormerForMaskedLM",Hs]],["electra",["ElectraForMaskedLM",Y]],["esm",["EsmForMaskedLM",Ur]],["convbert",["ConvBertForMaskedLM",ks]],["camembert",["CamembertForMaskedLM",qe]],["deberta",["DebertaForMaskedLM",pr]],["deberta-v2",["DebertaV2ForMaskedLM",yr]],["mpnet",["MPNetForMaskedLM",_o]],["albert",["AlbertForMaskedLM",It]],["distilbert",["DistilBertForMaskedLM",_r]],["roberta",["RobertaForMaskedLM",vn]],["xlm",["XLMWithLMHeadModel",Ca]],["xlm-roberta",["XLMRobertaForMaskedLM",$a]],["mobilebert",["MobileBertForMaskedLM",Rs]],["squeezebert",["SqueezeBertForMaskedLM",oe]]]),Kf=new Map([["bert",["BertForQuestionAnswering",$e]],["neobert",["NeoBertForQuestionAnswering",De]],["roformer",["RoFormerForQuestionAnswering",Bs]],["electra",["ElectraForQuestionAnswering",ke]],["convbert",["ConvBertForQuestionAnswering",k]],["camembert",["CamembertForQuestionAnswering",ur]],["deberta",["DebertaForQuestionAnswering",os]],["deberta-v2",["DebertaV2ForQuestionAnswering",Vr]],["mpnet",["MPNetForQuestionAnswering",S]],["albert",["AlbertForQuestionAnswering",We]],["distilbert",["DistilBertForQuestionAnswering",lr]],["roberta",["RobertaForQuestionAnswering",Ea]],["xlm",["XLMForQuestionAnswering",Ia]],["xlm-roberta",["XLMRobertaForQuestionAnswering",Pn]],["mobilebert",["MobileBertForQuestionAnswering",js]],["squeezebert",["SqueezeBertForQuestionAnswering",Te]]]),bc=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",In]],["idefics3",["Idefics3ForConditionalGeneration",_s]],["smolvlm",["SmolVLMForConditionalGeneration",Yo]]]),qf=new Map([["llava",["LlavaForConditionalGeneration",fo]],["llava_onevision",["LlavaOnevisionForConditionalGeneration",La]],["moondream1",["Moondream1ForConditionalGeneration",Ba]],["florence2",["Florence2ForConditionalGeneration",Ra]],["qwen2-vl",["Qwen2VLForConditionalGeneration",lp]],["idefics3",["Idefics3ForConditionalGeneration",_s]],["smolvlm",["SmolVLMForConditionalGeneration",Yo]],["paligemma",["PaliGemmaForConditionalGeneration",Na]],["llava_qwen2",["LlavaQwen2ForCausalLM",Va]],["gemma3n",["Gemma3nForConditionalGeneration",An]]]),Hf=new Map([["ultravox",["UltravoxModel",fc]],["voxtral",["VoxtralForConditionalGeneration",kf]]]),j0=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",In]]]),Qf=new Map([["vit",["ViTForImageClassification",Mp]],["ijepa",["IJepaForImageClassification",vp]],["pvt",["PvtForImageClassification",Ep]],["vit_msn",["ViTMSNForImageClassification",Fp]],["fastvit",["FastViTForImageClassification",Dp]],["mobilevit",["MobileViTForImageClassification",zp]],["mobilevitv2",["MobileViTV2ForImageClassification",jp]],["beit",["BeitForImageClassification",Kp]],["deit",["DeiTForImageClassification",d_]],["hiera",["HieraForImageClassification",p_]],["convnext",["ConvNextForImageClassification",j_]],["convnextv2",["ConvNextV2ForImageClassification",V_]],["dinov2",["Dinov2ForImageClassification",U_]],["dinov2_with_registers",["Dinov2WithRegistersForImageClassification",K_]],["resnet",["ResNetForImageClassification",m_]],["swin",["SwinForImageClassification",h_]],["segformer",["SegformerForImageClassification",Xm]],["efficientnet",["EfficientNetForImageClassification",tf]],["mobilenet_v1",["MobileNetV1ForImageClassification",sf]],["mobilenet_v2",["MobileNetV2ForImageClassification",af]],["mobilenet_v3",["MobileNetV3ForImageClassification",df]],["mobilenet_v4",["MobileNetV4ForImageClassification",_f]]]),Xf=new Map([["detr",["DetrForObjectDetection",Hp]],["rt_detr",["RTDetrForObjectDetection",Jp]],["rt_detr_v2",["RTDetrV2ForObjectDetection",Zp]],["rf_detr",["RFDetrForObjectDetection",r_]],["d_fine",["DFineForObjectDetection",n_]],["table-transformer",["TableTransformerForObjectDetection",i_]],["yolos",["YolosForObjectDetection",X_]]]),Jf=new Map([["owlvit",["OwlViTForObjectDetection",Vp]],["owlv2",["Owlv2ForObjectDetection",Up]],["grounding-dino",["GroundingDinoForObjectDetection",H_]]]),cn=new Map([["detr",["DetrForSegmentation",Ll]],["clipseg",["CLIPSegForImageSegmentation",wo]]]),Yf=new Map([["segformer",["SegformerForSemanticSegmentation",Jm]],["sapiens",["SapiensForSemanticSegmentation",T_]],["swin",["SwinForSemanticSegmentation",g_]],["mobilenet_v1",["MobileNetV1ForSemanticSegmentation",of]],["mobilenet_v2",["MobileNetV2ForSemanticSegmentation",lf]],["mobilenet_v3",["MobileNetV3ForSemanticSegmentation",uf]],["mobilenet_v4",["MobileNetV4ForSemanticSegmentation",mf]]]),Zf=new Map([["detr",["DetrForSegmentation",Ll]],["maskformer",["MaskFormerForInstanceSegmentation",D_]]]),eh=new Map([["sam",["SamModel",Z_]]]),th=new Map([["wav2vec2",["Wav2Vec2ForCTC",am]],["wav2vec2-bert",["Wav2Vec2BertForCTC",xm]],["unispeech",["UniSpeechForCTC",mm]],["unispeech-sat",["UniSpeechSatForCTC",gm]],["wavlm",["WavLMForCTC",km]],["hubert",["HubertForCTC",Tm]]]),rh=new Map([["wav2vec2",["Wav2Vec2ForSequenceClassification",im]],["wav2vec2-bert",["Wav2Vec2BertForSequenceClassification",vm]],["unispeech",["UniSpeechForSequenceClassification",fm]],["unispeech-sat",["UniSpeechSatForSequenceClassification",wm]],["wavlm",["WavLMForSequenceClassification",Cm]],["hubert",["HubertForSequenceClassification",Pm]],["audio-spectrogram-transformer",["ASTForAudioClassification",kn]]]),sh=new Map([["wavlm",["WavLMForXVector",Sm]]]),oh=new Map([["unispeech-sat",["UniSpeechSatForAudioFrameClassification",bm]],["wavlm",["WavLMForAudioFrameClassification",Fm]],["wav2vec2",["Wav2Vec2ForAudioFrameClassification",lm]],["pyannote",["PyAnnoteForAudioFrameClassification",dm]]]),nh=new Map([["vitmatte",["VitMatteForImageMatting",Lp]]]),N0=new Map([["patchtst",["PatchTSTForPrediction",yf]],["patchtsmixer",["PatchTSMixerForPrediction",Pf]]]),ah=new Map([["swin2sr",["Swin2SRForImageSuperResolution",b_]]]),ih=new Map([["dpt",["DPTForDepthEstimation",x_]],["depth_anything",["DepthAnythingForDepthEstimation",y_]],["glpn",["GLPNForDepthEstimation",L_]],["sapiens",["SapiensForDepthEstimation",P_]],["depth_pro",["DepthProForDepthEstimation",C_]],["metric3d",["Metric3DForDepthEstimation",F_]],["metric3dv2",["Metric3Dv2ForDepthEstimation",A_]]]),lh=new Map([["sapiens",["SapiensForNormalEstimation",E_]]]),ch=new Map([["vitpose",["VitPoseForPoseEstimation",Tp]]]),dh=new Map([["clip",["CLIPVisionModelWithProjection",On]],["siglip",["SiglipVisionModel",Bn]],["jina_clip",["JinaCLIPVisionModel",jn]]]),uh=[[O0,y.EncoderOnly],[L0,y.EncoderDecoder],[z0,y.DecoderOnly],[B0,y.AutoEncoder],[Wf,y.EncoderOnly],[Uf,y.EncoderOnly],[gc,y.Seq2Seq],[hc,y.Seq2Seq],[wc,y.DecoderOnly],[R0,y.MultiModality],[Gf,y.EncoderOnly],[Kf,y.EncoderOnly],[bc,y.Vision2Seq],[qf,y.ImageTextToText],[Hf,y.AudioTextToText],[Qf,y.EncoderOnly],[cn,y.EncoderOnly],[Zf,y.EncoderOnly],[Yf,y.EncoderOnly],[nh,y.EncoderOnly],[N0,y.EncoderOnly],[ah,y.EncoderOnly],[ih,y.EncoderOnly],[lh,y.EncoderOnly],[ch,y.EncoderOnly],[Xf,y.EncoderOnly],[Jf,y.EncoderOnly],[eh,y.MaskGeneration],[th,y.EncoderOnly],[rh,y.EncoderOnly],[Nf,y.Seq2Seq],[Vf,y.EncoderOnly],[sh,y.EncoderOnly],[oh,y.EncoderOnly],[dh,y.EncoderOnly]];for(let[b,M]of uh)for(let[j,ae]of b.values())P.set(j,M),g.set(ae,j),I.set(j,ae);let V0=[["MusicgenForConditionalGeneration",pc,y.Musicgen],["Phi3VForCausalLM",$n,y.Phi3V],["CLIPTextModelWithProjection",Dn,y.EncoderOnly],["SiglipTextModel",qa,y.EncoderOnly],["JinaCLIPTextModel",Rn,y.EncoderOnly],["ClapTextModelWithProjection",qm,y.EncoderOnly],["ClapAudioModelWithProjection",Hm,y.EncoderOnly],["DacEncoderModel",Lf,y.EncoderOnly],["DacDecoderModel",Bf,y.EncoderOnly],["MimiEncoderModel",If,y.EncoderOnly],["MimiDecoderModel",Af,y.EncoderOnly],["SnacEncoderModel",Rf,y.EncoderOnly],["SnacDecoderModel",jf,y.EncoderOnly],["Gemma3nForConditionalGeneration",An,y.ImageAudioTextToText]];for(let[b,M,j]of V0)P.set(b,j),g.set(M,b),I.set(b,M);let ph=new Map([["modnet",cn],["birefnet",cn],["isnet",cn],["ben",cn]]);for(let[b,M]of ph.entries())M.set(b,["PreTrainedModel",V]),P.set(b,y.EncoderOnly),g.set(V,b),I.set(b,V);class W0 extends Nt{static MODEL_CLASS_MAPPINGS=uh.map(M=>M[0]);static BASE_IF_FAIL=!0}class U0 extends Nt{static MODEL_CLASS_MAPPINGS=[Wf]}class G0 extends Nt{static MODEL_CLASS_MAPPINGS=[Uf]}class K0 extends Nt{static MODEL_CLASS_MAPPINGS=[gc]}class q0 extends Nt{static MODEL_CLASS_MAPPINGS=[hc]}class H0 extends Nt{static MODEL_CLASS_MAPPINGS=[Nf]}class Q0 extends Nt{static MODEL_CLASS_MAPPINGS=[Vf]}class X0 extends Nt{static MODEL_CLASS_MAPPINGS=[wc]}class J0 extends Nt{static MODEL_CLASS_MAPPINGS=[Gf]}class Y0 extends Nt{static MODEL_CLASS_MAPPINGS=[Kf]}class Z0 extends Nt{static MODEL_CLASS_MAPPINGS=[bc]}class eT extends Nt{static MODEL_CLASS_MAPPINGS=[Qf]}class tT extends Nt{static MODEL_CLASS_MAPPINGS=[cn]}class rT extends Nt{static MODEL_CLASS_MAPPINGS=[Yf]}class sT extends Nt{static MODEL_CLASS_MAPPINGS=[Zf]}class oT extends Nt{static MODEL_CLASS_MAPPINGS=[Xf]}class nT extends Nt{static MODEL_CLASS_MAPPINGS=[Jf]}class aT extends Nt{static MODEL_CLASS_MAPPINGS=[eh]}class iT extends Nt{static MODEL_CLASS_MAPPINGS=[th]}class lT extends Nt{static MODEL_CLASS_MAPPINGS=[rh]}class cT extends Nt{static MODEL_CLASS_MAPPINGS=[sh]}class dT extends Nt{static MODEL_CLASS_MAPPINGS=[oh]}class uT extends Nt{static MODEL_CLASS_MAPPINGS=[j0]}class pT extends Nt{static MODEL_CLASS_MAPPINGS=[nh]}class _T extends Nt{static MODEL_CLASS_MAPPINGS=[ah]}class mT extends Nt{static MODEL_CLASS_MAPPINGS=[ih]}class fT extends Nt{static MODEL_CLASS_MAPPINGS=[lh]}class hT extends Nt{static MODEL_CLASS_MAPPINGS=[ch]}class gT extends Nt{static MODEL_CLASS_MAPPINGS=[dh]}class wT extends Nt{static MODEL_CLASS_MAPPINGS=[qf]}class bT extends Nt{static MODEL_CLASS_MAPPINGS=[Hf]}class MT extends fe{constructor({logits:M,past_key_values:j,encoder_outputs:ae,decoder_attentions:ue=null,cross_attentions:ge=null}){super(),this.logits=M,this.past_key_values=j,this.encoder_outputs=ae,this.decoder_attentions=ue,this.cross_attentions=ge}}class xt extends fe{constructor({logits:M,...j}){super(),this.logits=M;let ae=Object.values(j);ae.length>0&&(this.attentions=ae)}}class _h extends fe{constructor({logits:M,embeddings:j}){super(),this.logits=M,this.embeddings=j}}class Mr extends fe{constructor({logits:M}){super(),this.logits=M}}class Pr extends fe{constructor({logits:M}){super(),this.logits=M}}class Lr extends fe{constructor({start_logits:M,end_logits:j}){super(),this.start_logits=M,this.end_logits=j}}class vo extends fe{constructor({logits:M}){super(),this.logits=M}}class xT extends fe{constructor({logits:M,past_key_values:j}){super(),this.logits=M,this.past_key_values=j}}class mh extends fe{constructor({alphas:M}){super(),this.alphas=M}}class fh extends fe{constructor({waveform:M,spectrogram:j}){super(),this.waveform=M,this.spectrogram=j}}},"./src/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.js":(e,r,t)=>{t.r(r),t.d(r,{ASTFeatureExtractor:()=>a});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),n=t("./src/utils/audio.js");class a extends s.FeatureExtractor{constructor(l){super(l);let c=this.config.sampling_rate,p=(0,n.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(c/2),c,null,"kaldi",!0);this.mel_filters=p,this.window=(0,n.window_function)(400,"hann",{periodic:!1}),this.mean=this.config.mean,this.std=this.config.std}async _extract_fbank_features(l,c){return(0,n.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 p=this.std*2,u=c.data;for(let d=0;d<u.length;++d)u[d]=(u[d]-this.mean)/p}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"),n=t("./src/base/feature_extraction_utils.js"),a=t("./src/models/feature_extractors.js");class i{static async from_pretrained(c,p={}){let u=await(0,o.getModelJSON)(c,s.FEATURE_EXTRACTOR_NAME,!0,p),d=u.feature_extractor_type,h=a[d];if(!h)throw new Error(`Unknown feature_extractor_type: '${d}'. Please report this at ${s.GITHUB_ISSUE_URL}.`);return new h(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"),n=t("./src/base/image_processors_utils.js"),a=t("./src/models/image_processors.js");class i{static async from_pretrained(c,p={}){let u=await(0,o.getModelJSON)(c,s.IMAGE_PROCESSOR_NAME,!0,p),d=u.image_processor_type??u.feature_extractor_type,h=a[d?.replace(/Fast$/,"")];return h||(d!==void 0&&console.warn(`Image processor type '${d}' not found, assuming base ImageProcessor. Please report this at ${s.GITHUB_ISSUE_URL}.`),h=n.ImageProcessor),new h(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"),n=t("./src/base/processing_utils.js"),a=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 h=await(0,o.getModelJSON)(u,s.IMAGE_PROCESSOR_NAME,!0,d),{image_processor_type:f,feature_extractor_type:v,processor_class:F}=h;if(F&&a[F])return a[F].from_pretrained(u,d);if(!f&&!v)throw new Error("No `image_processor_type` or `feature_extractor_type` found in the config.");let x={};if(f){let C=i[f.replace(/Fast$/,"")];if(!C)throw new Error(`Unknown image_processor_type: '${f}'.`);x.image_processor=new C(h)}if(v){let C=i[v];if(C)x.image_processor=new C(h);else{let y=l[v];if(!y)throw new Error(`Unknown feature_extractor_type: '${v}'.`);x.feature_extractor=new y(h)}}let w={};return new n.Processor(w,x,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:()=>a});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),n=t("./src/utils/audio.js");class a extends s.FeatureExtractor{constructor(l){super(l),this.mel_filters=(0,n.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,n.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,n.window_function)(this.config.fft_window_size,"hann")}async _get_input_mel(l,c,p,u){let d,h=!1,f=l.length-c;if(f>0)if(p==="rand_trunc"){h=!0;let v=Math.floor(Math.random()*(f+1));l=l.subarray(v,v+c),d=await this._extract_fbank_features(l,this.mel_filters_slaney,this.config.nb_max_samples)}else throw new Error(`Truncation strategy "${p}" not implemented`);else{if(f<0){let v=new Float64Array(c);if(v.set(l),u==="repeat")for(let F=l.length;F<c;F+=l.length)v.set(l.subarray(0,Math.min(l.length,c-F)),F);else if(u==="repeatpad")for(let F=l.length;F<-f;F+=l.length)v.set(l,F);l=v}if(p==="fusion")throw new Error(`Truncation strategy "${p}" 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,p=null){return(0,n.spectrogram)(l,this.window,this.config.fft_window_size,this.config.hop_length,{power:2,mel_filters:c,log_mel:"dB",max_num_frames:p,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:()=>n,CLIPImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class n extends o{}},"./src/models/convnext/image_processing_convnext.js":(e,r,t)=>{t.r(r),t.d(r,{ConvNextFeatureExtractor:()=>n,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),[p,u]=this.get_resize_output_image_size(i,{shortest_edge:c});i=await i.resize(p,u,{resample:this.resample}),i=await i.center_crop(l,l)}else i=await i.resize(l,l,{resample:this.resample});return i}}class n 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:()=>n,DeiTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class n extends o{}},"./src/models/detr/image_processing_detr.js":(e,r,t)=>{t.r(r),t.d(r,{DetrFeatureExtractor:()=>a,DetrImageProcessor:()=>n});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/tensor.js");class n extends s.ImageProcessor{async _call(l){let c=await super._call(l),p=[c.pixel_values.dims[0],64,64],u=(0,o.full)(p,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 a extends n{}},"./src/models/donut/image_processing_donut.js":(e,r,t)=>{t.r(r),t.d(r,{DonutFeatureExtractor:()=>n,DonutImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{pad_image(i,l,c,p={}){let[u,d,h]=l,f=this.image_mean;Array.isArray(this.image_mean)||(f=new Array(h).fill(f));let v=this.image_std;Array.isArray(v)||(v=new Array(h).fill(f));let F=f.map((x,w)=>-x/v[w]);return super.pad_image(i,l,c,{center:!0,constant_values:F,...p})}}class n extends o{}},"./src/models/dpt/image_processing_dpt.js":(e,r,t)=>{t.r(r),t.d(r,{DPTFeatureExtractor:()=>n,DPTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class n 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(a){super(a),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:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js");class n 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:()=>n.ClapFeatureExtractor,DacFeatureExtractor:()=>a.DacFeatureExtractor,EncodecFeatureExtractor:()=>o.EncodecFeatureExtractor,Gemma3nAudioFeatureExtractor:()=>i.Gemma3nAudioFeatureExtractor,ImageFeatureExtractor:()=>F.ImageProcessor,MoonshineFeatureExtractor:()=>l.MoonshineFeatureExtractor,PyAnnoteFeatureExtractor:()=>c.PyAnnoteFeatureExtractor,SeamlessM4TFeatureExtractor:()=>p.SeamlessM4TFeatureExtractor,SnacFeatureExtractor:()=>u.SnacFeatureExtractor,SpeechT5FeatureExtractor:()=>d.SpeechT5FeatureExtractor,Wav2Vec2FeatureExtractor:()=>h.Wav2Vec2FeatureExtractor,WeSpeakerFeatureExtractor:()=>f.WeSpeakerFeatureExtractor,WhisperFeatureExtractor:()=>v.WhisperFeatureExtractor});var s=t("./src/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.js"),o=t("./src/models/encodec/feature_extraction_encodec.js"),n=t("./src/models/clap/feature_extraction_clap.js"),a=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/pyannote/feature_extraction_pyannote.js"),p=t("./src/models/seamless_m4t/feature_extraction_seamless_m4t.js"),u=t("./src/models/snac/feature_extraction_snac.js"),d=t("./src/models/speecht5/feature_extraction_speecht5.js"),h=t("./src/models/wav2vec2/feature_extraction_wav2vec2.js"),f=t("./src/models/wespeaker/feature_extraction_wespeaker.js"),v=t("./src/models/whisper/feature_extraction_whisper.js"),F=t("./src/base/image_processors_utils.js")},"./src/models/florence2/processing_florence2.js":(e,r,t)=>{t.r(r),t.d(r,{Florence2Processor:()=>a});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),n=t("./src/tokenizers.js");class a extends s.Processor{static tokenizer_class=n.AutoTokenizer;static image_processor_class=o.AutoImageProcessor;constructor(l,c,p){super(l,c,p);let{tasks_answer_post_processing_type:u,task_prompts_without_inputs:d,task_prompts_with_input:h}=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(h??{})),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 p of l)if(this.task_prompts_without_inputs.has(p))c.push(this.task_prompts_without_inputs.get(p));else{for(let[u,d]of this.task_prompts_with_input)if(p.includes(u)){c.push(d.replaceAll("{input}",p).replaceAll(u,""));break}c.length!==l.length&&c.push(p)}return c}post_process_generation(l,c,p){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 h=u==="ocr"?"quad_boxes":"bboxes",f=l.matchAll(this.regexes[h]),v=[],F=[];for(let[x,w,...C]of f)v.push(w?w.trim():v.at(-1)??""),F.push(C.map((y,P)=>(Number(y)+.5)/this.size_per_bin*p[P%2]));d={labels:v,[h]:F};break;default:throw new Error(`Task "${c}" (of type "${u}") not yet implemented.`)}return{[c]:d}}async _call(l,c=null,p={}){if(!l&&!c)throw new Error("Either text or images must be provided");let u=await this.image_processor(l,p),d=c?this.tokenizer(this.construct_prompts(c),p):{};return{...u,...d}}}},"./src/models/gemma3n/feature_extraction_gemma3n.js":(e,r,t)=>{t.r(r),t.d(r,{Gemma3nAudioFeatureExtractor:()=>a});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),n=t("./src/utils/audio.js");class a extends s.FeatureExtractor{constructor(l){super(l);let{fft_length:c,feature_size:p,min_frequency:u,max_frequency:d,sampling_rate:h,frame_length:f}=this.config,v=(0,n.mel_filter_bank)(Math.floor(1+c/2),p,u,d,h,null,"htk",!1);this.mel_filters=v,this.window=(0,n.window_function)(f,"hann")}async _extract_fbank_features(l,c){return(0,n.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:p=!0,padding:u=!0,pad_to_multiple_of:d=128}={}){if((0,s.validate_audio_inputs)(l,"Gemma3nAudioFeatureExtractor"),p&&l.length>c&&(l=l.slice(0,c)),u&&l.length%d!==0){let v=d-l.length%d,F=new Float64Array(l.length+v);F.set(l),this.config.padding_value!==0&&F.fill(this.config.padding_value,l.length),l=F}let h=await this._extract_fbank_features(l,this.config.max_length),f=(0,o.full)([1,h.dims[0]],!0);return{input_features:h.unsqueeze_(0),input_features_mask:f}}}},"./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"),n=t("./src/models/auto/feature_extraction_auto.js"),a=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=n.AutoFeatureExtractor;static tokenizer_class=a.AutoTokenizer;static uses_processor_config=!0;static uses_chat_template_file=!0;constructor(u,d,h){super(u,d,h),this.audio_seq_length=this.config.audio_seq_length,this.image_seq_length=this.config.image_seq_length;let{audio_token_id:f,boa_token:v,audio_token:F,eoa_token:x,image_token_id:w,boi_token:C,image_token:y,eoi_token:P}=this.tokenizer.config;this.audio_token_id=f,this.boa_token=v,this.audio_token=F;let I=F.repeat(this.audio_seq_length);this.full_audio_sequence=`
2839
2839
 
2840
2840
  ${v}${I}${x}
2841
2841
 
@@ -2847,8 +2847,8 @@ ${C}${g}${P}
2847
2847
  `}return w+=`
2848
2848
  ${v}${x}`+F.repeat(d)+`${v}`,w}function c(d,h,f,v){return`${h}${v}`+f.repeat(d)+`${h}`}function p(d,h,f,v,F,x){return d===0&&h===0?c(f,v,F,x):l(f,d,h,v,F,x)}class u extends s.Processor{static image_processor_class=o.AutoImageProcessor;static tokenizer_class=n.AutoTokenizer;static uses_processor_config=!0;fake_image_token="<fake_token_around_image>";image_token="<image>";global_img_token="<global-img>";async _call(h,f=null,v={}){v.return_row_col_info??=!0;let F;f&&(F=await this.image_processor(f,v)),Array.isArray(h)||(h=[h]);let x=F.rows??[new Array(h.length).fill(0)],w=F.cols??[new Array(h.length).fill(0)],C=this.config.image_seq_len,y=[],P=[];for(let g=0;g<h.length;++g){let E=h[g],$=x[g],L=w[g];y.push((0,i.count)(E,this.image_token));let G=$.map((J,Q)=>p(J,L[Q],C,this.fake_image_token,this.image_token,this.global_img_token)),q=E.split(this.image_token);if(q.length===0)throw new Error("The image token should be present in the text.");let O=q[0];for(let J=0;J<G.length;++J)O+=G[J]+q[J+1];P.push(O)}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:()=>a.CLIPFeatureExtractor,CLIPImageProcessor:()=>a.CLIPImageProcessor,ChineseCLIPFeatureExtractor:()=>n.ChineseCLIPFeatureExtractor,ConvNextFeatureExtractor:()=>i.ConvNextFeatureExtractor,ConvNextImageProcessor:()=>i.ConvNextImageProcessor,DPTFeatureExtractor:()=>u.DPTFeatureExtractor,DPTImageProcessor:()=>u.DPTImageProcessor,DeiTFeatureExtractor:()=>l.DeiTFeatureExtractor,DeiTImageProcessor:()=>l.DeiTImageProcessor,DetrFeatureExtractor:()=>c.DetrFeatureExtractor,DetrImageProcessor:()=>c.DetrImageProcessor,DonutFeatureExtractor:()=>p.DonutFeatureExtractor,DonutImageProcessor:()=>p.DonutImageProcessor,EfficientNetImageProcessor:()=>d.EfficientNetImageProcessor,GLPNFeatureExtractor:()=>h.GLPNFeatureExtractor,GroundingDinoImageProcessor:()=>f.GroundingDinoImageProcessor,Idefics3ImageProcessor:()=>v.Idefics3ImageProcessor,JinaCLIPImageProcessor:()=>x.JinaCLIPImageProcessor,LlavaOnevisionImageProcessor:()=>w.LlavaOnevisionImageProcessor,Mask2FormerImageProcessor:()=>C.Mask2FormerImageProcessor,MaskFormerFeatureExtractor:()=>y.MaskFormerFeatureExtractor,MaskFormerImageProcessor:()=>y.MaskFormerImageProcessor,MobileNetV1FeatureExtractor:()=>P.MobileNetV1FeatureExtractor,MobileNetV1ImageProcessor:()=>P.MobileNetV1ImageProcessor,MobileNetV2FeatureExtractor:()=>I.MobileNetV2FeatureExtractor,MobileNetV2ImageProcessor:()=>I.MobileNetV2ImageProcessor,MobileNetV3FeatureExtractor:()=>g.MobileNetV3FeatureExtractor,MobileNetV3ImageProcessor:()=>g.MobileNetV3ImageProcessor,MobileNetV4FeatureExtractor:()=>E.MobileNetV4FeatureExtractor,MobileNetV4ImageProcessor:()=>E.MobileNetV4ImageProcessor,MobileViTFeatureExtractor:()=>$.MobileViTFeatureExtractor,MobileViTImageProcessor:()=>$.MobileViTImageProcessor,NougatImageProcessor:()=>L.NougatImageProcessor,OwlViTFeatureExtractor:()=>q.OwlViTFeatureExtractor,OwlViTImageProcessor:()=>q.OwlViTImageProcessor,Owlv2ImageProcessor:()=>G.Owlv2ImageProcessor,Phi3VImageProcessor:()=>O.Phi3VImageProcessor,PvtImageProcessor:()=>J.PvtImageProcessor,Qwen2VLImageProcessor:()=>Q.Qwen2VLImageProcessor,RTDetrImageProcessor:()=>H.RTDetrImageProcessor,SamImageProcessor:()=>te.SamImageProcessor,SegformerFeatureExtractor:()=>re.SegformerFeatureExtractor,SegformerImageProcessor:()=>re.SegformerImageProcessor,SiglipImageProcessor:()=>le.SiglipImageProcessor,SmolVLMImageProcessor:()=>be.SmolVLMImageProcessor,Swin2SRImageProcessor:()=>z.Swin2SRImageProcessor,VLMImageProcessor:()=>F.VLMImageProcessor,ViTFeatureExtractor:()=>D.ViTFeatureExtractor,ViTImageProcessor:()=>D.ViTImageProcessor,VitMatteImageProcessor:()=>K.VitMatteImageProcessor,VitPoseImageProcessor:()=>R.VitPoseImageProcessor,YolosFeatureExtractor:()=>ne.YolosFeatureExtractor,YolosImageProcessor:()=>ne.YolosImageProcessor});var s=t("./src/models/beit/image_processing_beit.js"),o=t("./src/models/bit/image_processing_bit.js"),n=t("./src/models/chinese_clip/image_processing_chinese_clip.js"),a=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"),p=t("./src/models/donut/image_processing_donut.js"),u=t("./src/models/dpt/image_processing_dpt.js"),d=t("./src/models/efficientnet/image_processing_efficientnet.js"),h=t("./src/models/glpn/image_processing_glpn.js"),f=t("./src/models/grounding_dino/image_processing_grounding_dino.js"),v=t("./src/models/idefics3/image_processing_idefics3.js"),F=t("./src/models/janus/image_processing_janus.js"),x=t("./src/models/jina_clip/image_processing_jina_clip.js"),w=t("./src/models/llava_onevision/image_processing_llava_onevision.js"),C=t("./src/models/mask2former/image_processing_mask2former.js"),y=t("./src/models/maskformer/image_processing_maskformer.js"),P=t("./src/models/mobilenet_v1/image_processing_mobilenet_v1.js"),I=t("./src/models/mobilenet_v2/image_processing_mobilenet_v2.js"),g=t("./src/models/mobilenet_v3/image_processing_mobilenet_v3.js"),E=t("./src/models/mobilenet_v4/image_processing_mobilenet_v4.js"),$=t("./src/models/mobilevit/image_processing_mobilevit.js"),L=t("./src/models/nougat/image_processing_nougat.js"),G=t("./src/models/owlv2/image_processing_owlv2.js"),q=t("./src/models/owlvit/image_processing_owlvit.js"),O=t("./src/models/phi3_v/image_processing_phi3_v.js"),J=t("./src/models/pvt/image_processing_pvt.js"),Q=t("./src/models/qwen2_vl/image_processing_qwen2_vl.js"),H=t("./src/models/rt_detr/image_processing_rt_detr.js"),te=t("./src/models/sam/image_processing_sam.js"),re=t("./src/models/segformer/image_processing_segformer.js"),le=t("./src/models/siglip/image_processing_siglip.js"),be=t("./src/models/smolvlm/image_processing_smolvlm.js"),z=t("./src/models/swin2sr/image_processing_swin2sr.js"),D=t("./src/models/vit/image_processing_vit.js"),K=t("./src/models/vitmatte/image_processing_vitmatte.js"),R=t("./src/models/vitpose/image_processing_vitpose.js"),ne=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(a){super({do_pad:!0,pad_size:{width:a.image_size,height:a.image_size},...a}),this.constant_values=this.config.background_color.map(i=>i*this.rescale_factor)}pad_image(a,i,l,c){return super.pad_image(a,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"),n=t("./src/tokenizers.js"),a=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=n.AutoTokenizer;static uses_processor_config=!0;constructor(u,d,h){super(u,d,h),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:h="default"}={}){d?Array.isArray(d)||(d=[d]):d=await Promise.all(u.filter(L=>L.images).flatMap(L=>L.images).map(L=>l.RawImage.read(L)));let f=this.tokenizer,v=f.apply_chat_template(u,{tokenize:!1,add_generation_prompt:!0,chat_template:h}),F=L=>f.encode(L,{add_special_tokens:!1}),x=v.split(this.image_tag),w=x.length-1;if(d.length!==w)throw new Error(`Number of images provided (${d.length}) does not match number of "${this.image_tag}" image tags (${w})`);let[C,y,P]=f.model.convert_tokens_to_ids([this.image_tag,this.image_start_tag,this.image_end_tag]),I=F(x[0]),g=new Array(I.length).fill(!1);for(let L=1;L<x.length;++L){let G=new Array(this.num_image_tokens).fill(C),q=F(x[L]);I=(0,a.mergeArrays)(I,[y],G,[P],q);let O=new Array(this.num_image_tokens).fill(!0);g=(0,a.mergeArrays)(g,[!1],O,[!1],new Array(q.length).fill(!1))}let E=[1,I.length],$={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",g,E),images_emb_mask:new i.Tensor("bool",new Array(w*this.num_image_tokens).fill(!0),[1,w,this.num_image_tokens])};if(d&&d.length>0){let L=await this.image_processor(d);return L.pixel_values.unsqueeze_(0),{...$,...L}}return $}}},"./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(a){let{resize_mode:i,fill_color:l,interpolation:c,size:p,...u}=a,d=i==="squash"?{width:p,height:p}:i==="shortest"?{shortest_edge:p}:{longest_edge:p},h=c==="bicubic"?3:2;super({...u,size:d,resample:h,do_center_crop:!0,crop_size:p,do_normalize:!0})}}},"./src/models/jina_clip/processing_jina_clip.js":(e,r,t)=>{t.r(r),t.d(r,{JinaCLIPProcessor:()=>a});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),n=t("./src/tokenizers.js");class a extends s.Processor{static tokenizer_class=n.AutoTokenizer;static image_processor_class=o.AutoImageProcessor;async _call(l=null,c=null,p={}){if(!l&&!c)throw new Error("Either text or images must be provided");let u=l?this.tokenizer(l,p):{},d=c?await this.image_processor(c,p):{};return{...u,...d}}}},"./src/models/llava/processing_llava.js":(e,r,t)=>{t.r(r),t.d(r,{LlavaProcessor:()=>a});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),n=t("./src/tokenizers.js");class a extends s.Processor{static tokenizer_class=n.AutoTokenizer;static image_processor_class=o.AutoImageProcessor;static uses_processor_config=!0;async _call(l,c=null,p={}){let u=await this.image_processor(l,p);if(c){let[h,f]=u.pixel_values.dims.slice(-2),{image_token:v,patch_size:F,num_additional_image_tokens:x}=this.config,w=Math.floor(h/F)*Math.floor(f/F)+x;c=structuredClone(c),Array.isArray(c)||(c=[c]);for(let C=0;C<c.length;++C)c[C]=c[C].replace(v,v.repeat(w))}let d=c?this.tokenizer(c,p):{};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:()=>n,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 n 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"),n=t("./src/tokenizers.js"),a=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=n.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(p,u){if(!i.hasOwnProperty(u))throw new Error(`Format ${u} is not supported.`);let[d,h]=i[u],f=this[d].bind(this),[v,F]=p.dims,x=[],w=[],C=p.tolist();for(let P=0;P<v;++P){let I=C[P],g=[],E=[];for(let L=1;L<F;++L){let[G,q]=(0,a.max)((0,a.softmax)(I[L]));if(E.push(G),q==h)break;g.push(q)}let $=E.length>0?E.reduce((L,G)=>L*G,1):0;w.push(g),x.push($)}return[f(w),x]}char_decode(p){return this.char_tokenizer.batch_decode(p).map(u=>u.replaceAll(" ",""))}bpe_decode(p){return this.bpe_tokenizer.batch_decode(p)}wp_decode(p){return this.wp_tokenizer.batch_decode(p).map(u=>u.replaceAll(" ",""))}batch_decode([p,u,d]){let[h,f]=this._decode_helper(p,"char"),[v,F]=this._decode_helper(u,"bpe"),[x,w]=this._decode_helper(d,"wp"),C=[],y=[];for(let P=0;P<h.length;++P){let[I,g]=(0,a.max)([f[P],F[P],w[P]]);C.push([h[P],v[P],x[P]][g]),y.push(I)}return{generated_text:C,scores:y,char_preds:h,bpe_preds:v,wp_preds:x}}static async from_pretrained(...p){let u=await super.from_pretrained(...p),d=await n.AutoTokenizer.from_pretrained("Xenova/gpt2"),h=await n.AutoTokenizer.from_pretrained("Xenova/bert-base-uncased");return u.components={image_processor:u.image_processor,char_tokenizer:u.tokenizer,bpe_tokenizer:d,wp_tokenizer:h},u}async _call(p,u=null){let d=await this.image_processor(p);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:()=>n,MobileNetV1ImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class n extends o{}},"./src/models/mobilenet_v2/image_processing_mobilenet_v2.js":(e,r,t)=>{t.r(r),t.d(r,{MobileNetV2FeatureExtractor:()=>n,MobileNetV2ImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class n extends o{}},"./src/models/mobilenet_v3/image_processing_mobilenet_v3.js":(e,r,t)=>{t.r(r),t.d(r,{MobileNetV3FeatureExtractor:()=>n,MobileNetV3ImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class n extends o{}},"./src/models/mobilenet_v4/image_processing_mobilenet_v4.js":(e,r,t)=>{t.r(r),t.d(r,{MobileNetV4FeatureExtractor:()=>n,MobileNetV4ImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class n extends o{}},"./src/models/mobilevit/image_processing_mobilevit.js":(e,r,t)=>{t.r(r),t.d(r,{MobileViTFeatureExtractor:()=>n,MobileViTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class n extends o{}},"./src/models/moonshine/feature_extraction_moonshine.js":(e,r,t)=>{t.r(r),t.d(r,{MoonshineFeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js");class n 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:()=>a});var s=t("./src/models/auto/feature_extraction_auto.js"),o=t("./src/tokenizers.js"),n=t("./src/base/processing_utils.js");class a extends n.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:()=>n,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 n extends o{}},"./src/models/owlvit/processing_owlvit.js":(e,r,t)=>{t.r(r),t.d(r,{OwlViTProcessor:()=>a});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js"),n=t("./src/tokenizers.js");class a extends s.Processor{static tokenizer_class=n.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"),n=t("./src/tokenizers.js");let a="<image>";function i(c,p,u,d,h){return`${d.repeat(u*h)}${p}${c}
2849
2849
  `}class l extends s.Processor{static tokenizer_class=n.AutoTokenizer;static image_processor_class=o.AutoImageProcessor;static uses_processor_config=!1;async _call(p,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(p)||(p=[p]),Array.isArray(u)||(u=[u]);let h=this.tokenizer.bos_token,f=this.image_processor.config.image_seq_length,v;u.some(w=>w.includes(a))?v=u.map(w=>{let C=w.replaceAll(a,a.repeat(f)),y=C.lastIndexOf(a),P=y===-1?0:y+a.length;return C.slice(0,P)+h+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."),v=u.map(w=>i(w,h,f,a,p.length)));let F=this.tokenizer(v,d);return{...await this.image_processor(p,d),...F}}}},"./src/models/phi3_v/image_processing_phi3_v.js":(e,r,t)=>{t.r(r),t.d(r,{Phi3VImageProcessor:()=>p});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/tensor.js");let n=336,a=[2,3],{ceil:i,floor:l,sqrt:c}=Math;class p 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,h){let{num_img_tokens:f}=this.config;return l((l(h/n)*l(d/n)+1)*f+1+(l(h/n)+1)*c(f))}get_resize_output_image_size(d,h){let f=this._num_crops,[v,F]=d.size,x=v/F,w=1;for(;w*Math.ceil(w/x)<=f;)w+=1;w-=1;let C=Math.floor(w*336),y=Math.floor(C/x);return[C,y]}pad_image(d,h,f,v={}){let[F,x]=h,w=n*i(F/n),C=n*i(x/n),y=[1,1,1].map((P,I)=>(P-this.image_mean[I])/this.image_std[I]);return super.pad_image(d,h,{width:C,height:w},{center:!0,constant_values:y,...v})}async _call(d,{num_crops:h=null}={}){if(this._num_crops=h??=this.config.num_crops,h<4||c(h)%1!==0)throw new Error("num_crops must be a square number >= 4");Array.isArray(d)||(d=[d]);let f=d.length,v=await Promise.all(d.map(g=>this.preprocess(g))),F=v.map(g=>g.original_size),x=v.map(g=>g.reshaped_input_size),w=[];for(let{pixel_values:g}of v){g.unsqueeze_(0);let[E,$]=g.dims.slice(-2),L=await(0,o.interpolate_4d)(g,{size:[n,n],mode:"bicubic"});if(h>0){let G=[],q=c(h),O=l($/q),J=l(E/q);for(let H=0;H<q;++H)for(let te=0;te<q;++te){let re,le,be,z;H===q-1?(le=E-J,z=E):(le=H*J,z=(H+1)*J),te===q-1?(re=$-O,be=$):(re=te*O,be=(te+1)*O);let D=[le,re],K=[z,be],R=await(0,o.slice)(g,D,K,a);G.push(R)}let Q=await(0,o.interpolate_4d)((0,o.cat)(G,0),{size:[n,n],mode:"bicubic"});w.push((0,o.cat)([L,Q],0))}else w.push(L)}let C=(0,o.stack)(w,0),y=x.map(g=>g.map(E=>n*i(E/n))),P=new o.Tensor("int64",y.flat(),[f,2]),I=y.map(([g,E])=>this.calc_num_image_tokens_from_image_size(E,g));return{pixel_values:C,original_sizes:F,reshaped_input_sizes:x,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"),n=t("./src/tokenizers.js"),a=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=n.AutoTokenizer;async _call(u,d=null,{padding:h=!0,truncation:f=!0,num_crops:v=null}={}){Array.isArray(u)||(u=[u]);let F,x;if(d){x=await this.image_processor(d,{num_crops:v});let{num_img_tokens:w}=x,C=u.map((P,I)=>P.split(l).join(i.repeat(w[I])));F=this.tokenizer(C,{padding:h,truncation:f});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,...x}}}},"./src/models/processors.js":(e,r,t)=>{t.r(r),t.d(r,{Florence2Processor:()=>s.Florence2Processor,Gemma3nProcessor:()=>o.Gemma3nProcessor,GroundingDinoProcessor:()=>n.GroundingDinoProcessor,Idefics3Processor:()=>a.Idefics3Processor,JinaCLIPProcessor:()=>l.JinaCLIPProcessor,LlavaProcessor:()=>c.LlavaProcessor,MgpstrProcessor:()=>p.MgpstrProcessor,MoonshineProcessor:()=>u.MoonshineProcessor,OwlViTProcessor:()=>d.OwlViTProcessor,PaliGemmaProcessor:()=>f.PaliGemmaProcessor,Phi3VProcessor:()=>h.Phi3VProcessor,PyAnnoteProcessor:()=>v.PyAnnoteProcessor,Qwen2VLProcessor:()=>F.Qwen2VLProcessor,SamProcessor:()=>x.SamProcessor,SmolVLMProcessor:()=>w.SmolVLMProcessor,SpeechT5Processor:()=>C.SpeechT5Processor,UltravoxProcessor:()=>y.UltravoxProcessor,VLChatProcessor:()=>i.VLChatProcessor,VoxtralProcessor:()=>P.VoxtralProcessor,Wav2Vec2Processor:()=>I.Wav2Vec2Processor,Wav2Vec2ProcessorWithLM:()=>g.Wav2Vec2ProcessorWithLM,WhisperProcessor:()=>E.WhisperProcessor});var s=t("./src/models/florence2/processing_florence2.js"),o=t("./src/models/gemma3n/processing_gemma3n.js"),n=t("./src/models/grounding_dino/processing_grounding_dino.js"),a=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"),p=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"),h=t("./src/models/phi3_v/processing_phi3_v.js"),f=t("./src/models/paligemma/processing_paligemma.js"),v=t("./src/models/pyannote/processing_pyannote.js"),F=t("./src/models/qwen2_vl/processing_qwen2_vl.js"),x=t("./src/models/sam/processing_sam.js"),w=t("./src/models/smolvlm/processing_smolvlm.js"),C=t("./src/models/speecht5/processing_speecht5.js"),y=t("./src/models/ultravox/processing_ultravox.js"),P=t("./src/models/voxtral/processing_voxtral.js"),I=t("./src/models/wav2vec2/processing_wav2vec2.js"),g=t("./src/models/wav2vec2_with_lm/processing_wav2vec2_with_lm.js"),E=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:()=>a});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),n=t("./src/utils/maths.js");class a 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 p=c/this.samples_to_frames(c)/this.config.sampling_rate,u=[];for(let d of l.tolist()){let h=[],f=-1;for(let v=0;v<d.length;++v){let F=(0,n.softmax)(d[v]),[x,w]=(0,n.max)(F),[C,y]=[v,v+1];w!==f?(f=w,h.push({id:w,start:C,end:y,score:x})):(h.at(-1).end=y,h.at(-1).score+=x)}u.push(h.map(({id:v,start:F,end:x,score:w})=>({id:v,start:F*p,end:x*p,confidence:w/(x-F)})))}return u}}},"./src/models/pyannote/processing_pyannote.js":(e,r,t)=>{t.r(r),t.d(r,{PyAnnoteProcessor:()=>n});var s=t("./src/base/processing_utils.js"),o=t("./src/models/pyannote/feature_extraction_pyannote.js");class n 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:()=>n});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/tensor.js");class n extends s.ImageProcessor{async _call(i,...l){let{pixel_values:c,original_sizes:p,reshaped_input_sizes:u}=await super._call(i,...l),d=c,{temporal_patch_size:h,merge_size:f,patch_size:v}=this.config;d.dims[0]===1&&(d=(0,o.cat)(Array.from({length:h},()=>d),0));let F=d.dims[0]/h,x=d.dims[1],w=Math.floor(d.dims[2]/v),C=Math.floor(d.dims[3]/v),y=d.view(F,h,x,Math.floor(w/f),f,v,Math.floor(C/f),f,v).permute(0,3,6,4,7,2,1,5,8).view(F*w*C,x*h*v*v),P=new o.Tensor("int64",[F,w,C],[1,3]);return{pixel_values:y,image_grid_thw:P,original_sizes:p,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"),n=t("./src/tokenizers.js"),a=t("./src/utils/image.js");class i extends s.Processor{static image_processor_class=o.AutoImageProcessor;static tokenizer_class=n.AutoTokenizer;async _call(c,p=null,...u){Array.isArray(c)||(c=[c]);let d,h;if(p&&(d=await this.image_processor(p),h=d.image_grid_thw),h){let v=this.image_processor.config.merge_size**2,F=0,x=h.tolist();c=c.map(w=>{for(;w.includes("<|image_pad|>");){let C=Number(x[F++].reduce((y,P)=>y*P,1n));w=w.replace("<|image_pad|>","<|placeholder|>".repeat(Math.floor(C/v)))}return w.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(...a){return(0,s.post_process_object_detection)(...a)}}},"./src/models/sam/image_processing_sam.js":(e,r,t)=>{t.r(r),t.d(r,{SamImageProcessor:()=>a});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/core.js"),n=t("./src/utils/tensor.js");class a extends s.ImageProcessor{reshape_input_points(l,c,p,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 h=0;h<l.length;++h){let f=c[h],v=p[h],F=[v[0]/f[0],v[1]/f[1]];for(let x=0;x<l[h].length;++x)for(let w=0;w<l[h][x].length;++w)for(let C=0;C<l[h][x][w].length;++C)l[h][x][w][C]*=F[C%2]}return new n.Tensor("float32",Float32Array.from(l.flat(1/0)),d)}add_input_labels(l,c){let p=(0,o.calculateDimensions)(l);if(p.length===2)p=[1,...p],l=[l];else if(p.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(p.some((u,d)=>u!==c.dims[d]))throw Error(`The first ${p.length} dimensions of 'input_points' and 'input_labels' must be the same.`);return new n.Tensor("int64",l.flat(1/0).map(BigInt),p)}async _call(l,{input_points:c=null,input_labels:p=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)),p){if(!d.input_points)throw Error("`input_points` must be provided if `input_labels` are provided.");d.input_labels=this.add_input_labels(p,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,p,{mask_threshold:u=0,binarize:d=!0,pad_size:h=null}={}){let f=[];h=h??this.pad_size;let v=[h.height,h.width];for(let F=0;F<c.length;++F){let x=c[F],w=p[F],C=await(0,n.interpolate_4d)(l[F],{mode:"bilinear",size:v});if(C=C.slice(null,null,[0,w[0]],[0,w[1]]),C=await(0,n.interpolate_4d)(C,{mode:"bilinear",size:x}),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 n.Tensor("bool",P,C.dims)}f.push(C)}return f}generate_crop_boxes(l,c,{crop_n_layers:p=0,overlap_ratio:u=512/1500,points_per_crop:d=32,crop_n_points_downscale_factor:h=1}={}){}}},"./src/models/sam/processing_sam.js":(e,r,t)=>{t.r(r),t.d(r,{SamProcessor:()=>n});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js");class n 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/seamless_m4t/feature_extraction_seamless_m4t.js":(e,r,t)=>{t.r(r),t.d(r,{SeamlessM4TFeatureExtractor:()=>a});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),n=t("./src/utils/audio.js");class a extends s.FeatureExtractor{constructor(l){super(l);let c=this.config.sampling_rate,p=(0,n.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(c/2),c,null,"kaldi",!0);this.mel_filters=p,this.window=(0,n.window_function)(400,"povey",{periodic:!1})}async _extract_fbank_features(l,c){return l=l.map(p=>p*32768),(0,n.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:p=2,do_normalize_per_mel_bins:u=!0,return_attention_mask:d=!0}={}){(0,s.validate_audio_inputs)(l,"SeamlessM4TFeatureExtractor");let h=await this._extract_fbank_features(l,this.config.max_length);if(u){let[P,I]=h.dims,g=h.data;for(let E=0;E<I;++E){let $=0;for(let O=0;O<P;++O)$+=g[O*I+E];let L=$/P,G=0;for(let O=0;O<P;++O)G+=(g[O*I+E]-L)**2;G/=P-1;let q=Math.sqrt(G+1e-7);for(let O=0;O<P;++O){let J=O*I+E;g[J]=(g[J]-L)/q}}}let f;if(c){let[P,I]=h.dims,g=h.data,E=P%p;if(E>0){let $=new Float32Array(I*(P+E));$.set(g),$.fill(this.config.padding_value,g.length);let L=P+E;h=new o.Tensor(h.type,$,[L,I]),d&&(f=new o.Tensor("int64",new BigInt64Array(L),[1,L]),f.data.fill(1n,0,P))}}let[v,F]=h.dims,x=this.config.stride;if(v%x!==0)throw new Error(`The number of frames (${v}) must be a multiple of the stride (${x}).`);let C=h.view(1,Math.floor(v/x),F*x),y={input_features:C};if(d){let P=C.dims[1],I=new BigInt64Array(P);if(f){let g=f.data;for(let E=1,$=0;E<v;E+=x,++$)I[$]=g[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:()=>n,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 n 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:()=>a});var s=t("./src/base/processing_utils.js"),o=t("./src/tokenizers.js"),n=t("./src/models/auto/feature_extraction_auto.js");class a extends s.Processor{static tokenizer_class=o.AutoTokenizer;static feature_extractor_class=n.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(a,i,l,c={}){let[p,u,d]=i;return super.pad_image(a,i,{width:u+(l-u%l)%l,height:p+(l-p%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:()=>a});var s=t("./src/models/auto/feature_extraction_auto.js"),o=t("./src/tokenizers.js"),n=t("./src/base/processing_utils.js");class a extends n.Processor{static tokenizer_class=o.AutoTokenizer;static feature_extractor_class=s.AutoFeatureExtractor;static uses_processor_config=!0;async _call(l,c=null,p={}){if(Array.isArray(l))throw new Error("Batched inputs are not supported yet.");let u={};if(c){let h=c.length,{input_features:f}=await this.feature_extractor(c,{...p,max_length:h}),v=Math.round(h/this.config.encoder_ds_factor+1e-4),F=1+Math.ceil(v/this.config.stack_factor);u.audio_token_len=[F],u.audio_values=f;let x=this.config.audio_placeholder;if(!l.includes(x))throw new Error(`The input text does not contain the image token ${x}.`);l=l.replaceAll(x,x.repeat(F))}return{...this.tokenizer(l,{add_special_tokens:!1,...p}),...u}}}},"./src/models/vit/image_processing_vit.js":(e,r,t)=>{t.r(r),t.d(r,{ViTFeatureExtractor:()=>n,ViTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class n extends o{}},"./src/models/vitmatte/image_processing_vitmatte.js":(e,r,t)=>{t.r(r),t.d(r,{VitMatteImageProcessor:()=>n});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/tensor.js");class n 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))),p=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,h)=>(0,o.cat)([d.pixel_values,p[h].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(a,i,{threshold:l=null}={}){let c=a.tolist(),[p,u,d,h]=a.dims,f=[];for(let v=0;v<p;++v){let F=c[v],x=i[v],w=[];for(let C=0;C<x.length;++C){let y=x[C],P=[],I=[],g=[],E=y.at(-2)/h,$=y.at(-1)/d;for(let L=0;L<F.length;++L){let[G,q]=[0,0],O=0,J=-1/0,Q=F[L];for(let te=0;te<Q.length;++te){let re=Q[te];for(let le=0;le<re.length;++le){let be=re[le];O+=be,J=Math.max(J,be),G+=(le+.5)*be,q+=te*be}}if(l!=null&&J<l)continue;let H=[E*G/O,$*q/O];P.push(H),g.push(L),I.push(J)}w.push({bbox:y,scores:I,labels:g,keypoints:P})}f.push(w)}return f}}},"./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"),n=t("./src/base/processing_utils.js"),a=t("./src/utils/tensor.js");let i="[AUDIO]",l="[BEGIN_AUDIO]",c=375;function p(d,h){let f=[];for(let v=0;v<d.length;v+=h)f.push(d.subarray(v,Math.min(v+h,d.length)));return f}class u extends n.Processor{static tokenizer_class=o.AutoTokenizer;static feature_extractor_class=s.AutoFeatureExtractor;static uses_processor_config=!1;async _call(h,f=null,v={}){if(Array.isArray(h))throw new Error("Batched inputs are not supported yet.");let F={};if(f){if(!h.includes(i))throw new Error(`The input text does not contain the audio token ${i}.`);Array.isArray(f)||(f=[f]);let w=h.split(i),C=w.length-1;if(C!==f.length)throw new Error(`The number of audio inputs (${f.length}) does not match the number of audio tokens in the text (${C}).`);let y=this.feature_extractor.config.n_samples,P=f.map(L=>p(L,y)),I=P.map(L=>L.length),g=P.flat(),E=(await Promise.all(g.map(L=>this.feature_extractor(L,v)))).map(L=>L.input_features);F.audio_values=E.length>1?(0,a.cat)(E,0):E[0];let $=w[0];for(let L=0;L<I.length;++L){$+=l;for(let G=0;G<I[L];++G)$+=i.repeat(c);$+=w[L+1]}h=$}return{...this.tokenizer(h,{add_special_tokens:!1,...v}),...F}}}},"./src/models/wav2vec2/feature_extraction_wav2vec2.js":(e,r,t)=>{t.r(r),t.d(r,{Wav2Vec2FeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js");class n extends s.FeatureExtractor{_zero_mean_unit_var_norm(i){let c=i.reduce((u,d)=>u+d,0)/i.length,p=i.reduce((u,d)=>u+(d-c)**2,0)/i.length;return i.map(u=>(u-c)/Math.sqrt(p+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:()=>a});var s=t("./src/tokenizers.js"),o=t("./src/models/auto/feature_extraction_auto.js"),n=t("./src/base/processing_utils.js");class a extends n.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:()=>a});var s=t("./src/tokenizers.js"),o=t("./src/models/auto/feature_extraction_auto.js"),n=t("./src/base/processing_utils.js");class a extends n.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:()=>a});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),n=t("./src/utils/audio.js");class a extends s.FeatureExtractor{constructor(l){super(l);let c=this.config.sampling_rate,p=(0,n.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(c/2),c,null,"kaldi",!0);this.mel_filters=p,this.window=(0,n.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,n.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 p=c.mean(1).data,u=c.data,[d,h,f]=c.dims;for(let v=0;v<d;++v){let F=v*h*f,x=v*f;for(let w=0;w<h;++w){let C=F+w*f;for(let y=0;y<f;++y)u[C+y]-=p[x+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:()=>n,whisper_language_to_code:()=>a});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),n=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 a(i){i=i.toLowerCase();let l=n.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"),n=t("./src/utils/audio.js"),a=t("./src/utils/maths.js");class i extends s.FeatureExtractor{constructor(c){super(c),this.config.mel_filters??=(0,n.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,n.window_function)(this.config.n_fft,"hann")}async _extract_fbank_features(c){let p=await(0,n.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=p.data,d=(0,a.max)(u)[0];for(let h=0;h<u.length;++h)u[h]=(Math.max(u[h],d-8)+4)/4;return p}async _call(c,{max_length:p=null}={}){(0,s.validate_audio_inputs)(c,"WhisperFeatureExtractor");let u,d=p??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:()=>a});var s=t("./src/models/auto/feature_extraction_auto.js"),o=t("./src/tokenizers.js"),n=t("./src/base/processing_utils.js");class a extends n.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:()=>n,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 n extends o{}},"./src/ops/registry.js":(e,r,t)=>{t.r(r),t.d(r,{TensorOpRegistry:()=>l});var s=t("./src/backends/onnx.js"),o=t("./src/utils/tensor.js"),n=t("./src/env.js");let a=n.apis.IS_BROWSER_ENV||n.apis.IS_WEBWORKER_ENV,i=async(c,p,u)=>{let d=await(0,s.createInferenceSession)(new Uint8Array(c),p),h=Promise.resolve();return async f=>{let v=(0,s.isONNXProxy)(),F=Object.fromEntries(Object.entries(f).map(([w,C])=>[w,(v?C.clone():C).ort_tensor])),x=await(h=a?h.then(()=>d.run(F)):d.run(F));return Array.isArray(u)?u.map(w=>new o.Tensor(x[w])):new o.Tensor(x[u])}};class l{static session_options={};static get nearest_interpolate_4d(){return this._nearest_interpolate_4d||(this._nearest_interpolate_4d=i([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=i([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=i([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=i([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=i([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=i([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=i([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=i([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:()=>O,AutomaticSpeechRecognitionPipeline:()=>Q,BackgroundRemovalPipeline:()=>le,DepthEstimationPipeline:()=>Ce,DocumentQuestionAnsweringPipeline:()=>K,FeatureExtractionPipeline:()=>G,FillMaskPipeline:()=>y,ImageClassificationPipeline:()=>te,ImageFeatureExtractionPipeline:()=>q,ImageSegmentationPipeline:()=>re,ImageToImagePipeline:()=>ne,ImageToTextPipeline:()=>H,ObjectDetectionPipeline:()=>z,Pipeline:()=>F,QuestionAnsweringPipeline:()=>C,SummarizationPipeline:()=>I,Text2TextGenerationPipeline:()=>P,TextClassificationPipeline:()=>x,TextGenerationPipeline:()=>$,TextToAudioPipeline:()=>R,TokenClassificationPipeline:()=>w,TranslationPipeline:()=>g,ZeroShotAudioClassificationPipeline:()=>J,ZeroShotClassificationPipeline:()=>L,ZeroShotImageClassificationPipeline:()=>be,ZeroShotObjectDetectionPipeline:()=>D,pipeline:()=>Ke});var s=t("./src/tokenizers.js"),o=t("./src/models.js"),n=t("./src/models/auto/processing_auto.js"),a=t("./src/base/processing_utils.js"),i=t("./src/utils/generic.js"),l=t("./src/utils/core.js"),c=t("./src/utils/maths.js"),p=t("./src/utils/audio.js"),u=t("./src/utils/tensor.js"),d=t("./src/utils/image.js");async function h(_e){return Array.isArray(_e)||(_e=[_e]),await Promise.all(_e.map(Z=>d.RawImage.read(Z)))}async function f(_e,Z){return Array.isArray(_e)||(_e=[_e]),await Promise.all(_e.map(V=>typeof V=="string"||V instanceof URL?(0,p.read_audio)(V,Z):V instanceof Float64Array?new Float32Array(V):V))}function v(_e,Z){Z&&(_e=_e.map(pe=>pe|0));let[V,fe,Se,Pe]=_e;return{xmin:V,ymin:fe,xmax:Se,ymax:Pe}}class F extends i.Callable{constructor({task:Z,model:V,tokenizer:fe=null,processor:Se=null}){super(),this.task=Z,this.model=V,this.tokenizer=fe,this.processor=Se}async dispose(){await this.model.dispose()}}class x extends F{constructor(Z){super(Z)}async _call(Z,{top_k:V=1}={}){let fe=this.tokenizer(Z,{padding:!0,truncation:!0}),Se=await this.model(fe),Pe=this.model.config.problem_type==="multi_label_classification"?de=>de.sigmoid():de=>new u.Tensor("float32",(0,c.softmax)(de.data),de.dims),pe=this.model.config.id2label,xe=[];for(let de of Se.logits){let Ae=Pe(de),$e=await(0,u.topk)(Ae,V),Ue=$e[0].tolist(),je=$e[1].tolist().map((Ge,Ve)=>({label:pe?pe[Ge]:`LABEL_${Ge}`,score:Ue[Ve]}));V===1?xe.push(...je):xe.push(je)}return Array.isArray(Z)||V===1?xe:xe[0]}}class w extends F{constructor(Z){super(Z)}async _call(Z,{ignore_labels:V=["O"]}={}){let fe=Array.isArray(Z),Se=this.tokenizer(fe?Z:[Z],{padding:!0,truncation:!0}),pe=(await this.model(Se)).logits,xe=this.model.config.id2label,de=[];for(let Ae=0;Ae<pe.dims[0];++Ae){let $e=Se.input_ids[Ae],Ue=pe[Ae],Ee=[];for(let je=0;je<Ue.dims[0];++je){let Ge=Ue[je],Ve=(0,c.max)(Ge.data)[1],De=xe?xe[Ve]:`LABEL_${Ve}`;if(V.includes(De))continue;let ot=this.tokenizer.decode([$e[je].item()],{skip_special_tokens:!0});if(ot==="")continue;let lt=(0,c.softmax)(Ge.data);Ee.push({entity:De,score:lt[Ve],index:je,word:ot})}de.push(Ee)}return fe?de:de[0]}}class C extends F{constructor(Z){super(Z)}async _call(Z,V,{top_k:fe=1}={}){let Se=this.tokenizer(Z,{text_pair:V,padding:!0,truncation:!0}),{start_logits:Pe,end_logits:pe}=await this.model(Se),xe=Se.input_ids.tolist(),de=Se.attention_mask.tolist(),Ae=this.tokenizer.all_special_ids,$e=[];for(let Ue=0;Ue<Pe.dims[0];++Ue){let Ee=xe[Ue],je=Ee.findIndex(Ye=>Ye==this.tokenizer.sep_token_id),Ge=de[Ue].map((Ye,ft)=>Ye==1&&(ft===0||ft>je&&Ae.findIndex(yt=>yt==Ee[ft])===-1)),Ve=Pe[Ue].tolist(),De=pe[Ue].tolist();for(let Ye=1;Ye<Ve.length;++Ye)(de[Ue]==0||Ye<=je||Ae.findIndex(ft=>ft==Ee[Ye])!==-1)&&(Ve[Ye]=-1/0,De[Ye]=-1/0);let ot=(0,c.softmax)(Ve).map((Ye,ft)=>[Ye,ft]),lt=(0,c.softmax)(De).map((Ye,ft)=>[Ye,ft]);ot[0][0]=0,lt[0][0]=0;let rt=(0,l.product)(ot,lt).filter(Ye=>Ye[0][1]<=Ye[1][1]).map(Ye=>[Ye[0][1],Ye[1][1],Ye[0][0]*Ye[1][0]]).sort((Ye,ft)=>ft[2]-Ye[2]);for(let Ye=0;Ye<Math.min(rt.length,fe);++Ye){let[ft,yt,Ot]=rt[Ye],vr=Ee.slice(ft,yt+1),zr=this.tokenizer.decode(vr,{skip_special_tokens:!0});$e.push({answer:zr,score:Ot})}}return fe===1?$e[0]:$e}}class y extends F{constructor(Z){super(Z)}async _call(Z,{top_k:V=5}={}){let fe=this.tokenizer(Z,{padding:!0,truncation:!0}),{logits:Se}=await this.model(fe),Pe=[],pe=fe.input_ids.tolist();for(let xe=0;xe<pe.length;++xe){let de=pe[xe],Ae=de.findIndex(Ge=>Ge==this.tokenizer.mask_token_id);if(Ae===-1)throw Error(`Mask token (${this.tokenizer.mask_token}) not found in text.`);let $e=Se[xe][Ae],Ue=await(0,u.topk)(new u.Tensor("float32",(0,c.softmax)($e.data),$e.dims),V),Ee=Ue[0].tolist(),je=Ue[1].tolist();Pe.push(je.map((Ge,Ve)=>{let De=de.slice();return De[Ae]=Ge,{score:Ee[Ve],token:Number(Ge),token_str:this.tokenizer.decode([Ge]),sequence:this.tokenizer.decode(De,{skip_special_tokens:!0})}}))}return Array.isArray(Z)?Pe:Pe[0]}}class P extends F{_key="generated_text";constructor(Z){super(Z)}async _call(Z,V={}){Array.isArray(Z)||(Z=[Z]),this.model.config.prefix&&(Z=Z.map(de=>this.model.config.prefix+de));let fe=this.model.config.task_specific_params;fe&&fe[this.task]&&fe[this.task].prefix&&(Z=Z.map(de=>fe[this.task].prefix+de));let Se=this.tokenizer,Pe={padding:!0,truncation:!0},pe;this instanceof g&&"_build_translation_inputs"in Se?pe=Se._build_translation_inputs(Z,Pe,V):pe=Se(Z,Pe);let xe=await this.model.generate({...pe,...V});return Se.batch_decode(xe,{skip_special_tokens:!0}).map(de=>({[this._key]:de}))}}class I extends P{_key="summary_text";constructor(Z){super(Z)}}class g extends P{_key="translation_text";constructor(Z){super(Z)}}function E(_e){return Array.isArray(_e)&&_e.every(Z=>"role"in Z&&"content"in Z)}class $ extends F{constructor(Z){super(Z)}async _call(Z,V={}){let fe=!1,Se=!1,Pe=V.add_special_tokens??(this.tokenizer.add_bos_token||this.tokenizer.add_eos_token)??!1,pe;if(typeof Z=="string")pe=Z=[Z];else if(Array.isArray(Z)&&Z.every(je=>typeof je=="string"))fe=!0,pe=Z;else{if(E(Z))Z=[Z];else if(Array.isArray(Z)&&Z.every(E))fe=!0;else throw new Error("Input must be a string, an array of strings, a Chat, or an array of Chats");Se=!0,pe=Z.map(je=>this.tokenizer.apply_chat_template(je,{tokenize:!1,add_generation_prompt:!0})),Pe=!1}let xe=Se?!1:V.return_full_text??!0;this.tokenizer.padding_side="left";let de=this.tokenizer(pe,{add_special_tokens:Pe,padding:!0,truncation:!0}),Ae=await this.model.generate({...de,...V}),$e=this.tokenizer.batch_decode(Ae,{skip_special_tokens:!0}),Ue;!xe&&de.input_ids.dims.at(-1)>0&&(Ue=this.tokenizer.batch_decode(de.input_ids,{skip_special_tokens:!0}).map(je=>je.length));let Ee=Array.from({length:Z.length},je=>[]);for(let je=0;je<$e.length;++je){let Ge=Math.floor(je/Ae.dims[0]*Z.length);Ue&&($e[je]=$e[je].slice(Ue[Ge])),Ee[Ge].push({generated_text:Se?[...Z[Ge],{role:"assistant",content:$e[je]}]:$e[je]})}return!fe&&Ee.length===1?Ee[0]:Ee}}class L extends F{constructor(Z){super(Z),this.label2id=Object.fromEntries(Object.entries(this.model.config.label2id).map(([V,fe])=>[V.toLowerCase(),fe])),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(Z,V,{hypothesis_template:fe="This example is {}.",multi_label:Se=!1}={}){let Pe=Array.isArray(Z);Pe||(Z=[Z]),Array.isArray(V)||(V=[V]);let pe=V.map(Ae=>fe.replace("{}",Ae)),xe=Se||V.length===1,de=[];for(let Ae of Z){let $e=[];for(let je of pe){let Ge=this.tokenizer(Ae,{text_pair:je,padding:!0,truncation:!0}),Ve=await this.model(Ge);xe?$e.push([Ve.logits.data[this.contradiction_id],Ve.logits.data[this.entailment_id]]):$e.push(Ve.logits.data[this.entailment_id])}let Ee=(xe?$e.map(je=>(0,c.softmax)(je)[1]):(0,c.softmax)($e)).map((je,Ge)=>[je,Ge]).sort((je,Ge)=>Ge[0]-je[0]);de.push({sequence:Ae,labels:Ee.map(je=>V[je[1]]),scores:Ee.map(je=>je[0])})}return Pe?de:de[0]}}class G extends F{constructor(Z){super(Z)}async _call(Z,{pooling:V="none",normalize:fe=!1,quantize:Se=!1,precision:Pe="binary"}={}){let pe=this.tokenizer(Z,{padding:!0,truncation:!0}),xe=await this.model(pe),de=xe.last_hidden_state??xe.logits??xe.token_embeddings;switch(V){case"none":break;case"mean":de=(0,u.mean_pooling)(de,pe.attention_mask);break;case"first_token":case"cls":de=de.slice(null,0);break;case"last_token":case"eos":de=de.slice(null,-1);break;default:throw Error(`Pooling method '${V}' not supported.`)}return fe&&(de=de.normalize(2,-1)),Se&&(de=(0,u.quantize_embeddings)(de,Pe)),de}}class q extends F{constructor(Z){super(Z)}async _call(Z,{pool:V=null}={}){let fe=await h(Z),{pixel_values:Se}=await this.processor(fe),Pe=await this.model({pixel_values:Se}),pe;if(V){if(!("pooler_output"in Pe))throw Error("No pooled output was returned. Make sure the model has a 'pooler' layer when using the 'pool' option.");pe=Pe.pooler_output}else pe=Pe.last_hidden_state??Pe.logits??Pe.image_embeds;return pe}}class O extends F{constructor(Z){super(Z)}async _call(Z,{top_k:V=5}={}){let fe=this.processor.feature_extractor.config.sampling_rate,Se=await f(Z,fe),Pe=this.model.config.id2label,pe=[];for(let xe of Se){let de=await this.processor(xe),$e=(await this.model(de)).logits[0],Ue=await(0,u.topk)(new u.Tensor("float32",(0,c.softmax)($e.data),$e.dims),V),Ee=Ue[0].tolist(),Ge=Ue[1].tolist().map((Ve,De)=>({label:Pe?Pe[Ve]:`LABEL_${Ve}`,score:Ee[De]}));pe.push(Ge)}return Array.isArray(Z)?pe:pe[0]}}class J extends F{constructor(Z){super(Z)}async _call(Z,V,{hypothesis_template:fe="This is a sound of {}."}={}){let Se=!Array.isArray(Z);Se&&(Z=[Z]);let Pe=V.map($e=>fe.replace("{}",$e)),pe=this.tokenizer(Pe,{padding:!0,truncation:!0}),xe=this.processor.feature_extractor.config.sampling_rate,de=await f(Z,xe),Ae=[];for(let $e of de){let Ue=await this.processor($e),Ee=await this.model({...pe,...Ue}),je=(0,c.softmax)(Ee.logits_per_audio.data);Ae.push([...je].map((Ge,Ve)=>({score:Ge,label:V[Ve]})))}return Se?Ae[0]:Ae}}class Q extends F{constructor(Z){super(Z)}async _call(Z,V={}){switch(this.model.config.model_type){case"whisper":case"lite-whisper":return this._call_whisper(Z,V);case"wav2vec2":case"wav2vec2-bert":case"unispeech":case"unispeech-sat":case"hubert":return this._call_wav2vec2(Z,V);case"moonshine":return this._call_moonshine(Z,V);default:throw new Error(`AutomaticSpeechRecognitionPipeline does not support model type '${this.model.config.model_type}'.`)}}async _call_wav2vec2(Z,V){V.language&&console.warn('`language` parameter is not yet supported for `wav2vec2` models, defaulting to "English".'),V.task&&console.warn('`task` parameter is not yet supported for `wav2vec2` models, defaulting to "transcribe".');let fe=!Array.isArray(Z);fe&&(Z=[Z]);let Se=this.processor.feature_extractor.config.sampling_rate,Pe=await f(Z,Se),pe=[];for(let xe of Pe){let de=await this.processor(xe),$e=(await this.model(de)).logits[0],Ue=[];for(let je of $e)Ue.push((0,c.max)(je.data)[1]);let Ee=this.tokenizer.decode(Ue);pe.push({text:Ee})}return fe?pe[0]:pe}async _call_whisper(Z,V){let fe=V.return_timestamps??!1,Se=V.chunk_length_s??0,Pe=V.force_full_sequences??!1,pe=V.stride_length_s??null,xe={...V};fe==="word"&&(xe.return_token_timestamps=!0,xe.return_timestamps=!1);let de=!Array.isArray(Z);de&&(Z=[Z]);let Ae=this.processor.feature_extractor.config.chunk_length/this.model.config.max_source_positions,$e=this.processor.feature_extractor.config.hop_length,Ue=this.processor.feature_extractor.config.sampling_rate,Ee=await f(Z,Ue),je=[];for(let Ge of Ee){let Ve=[];if(Se>0){if(pe===null)pe=Se/6;else if(Se<=pe)throw Error("`chunk_length_s` must be larger than `stride_length_s`.");let lt=Ue*Se,rt=Ue*pe,Ye=lt-2*rt,ft=0;for(;;){let yt=ft+lt,Ot=Ge.subarray(ft,yt),vr=await this.processor(Ot),zr=ft===0,Rr=yt>=Ge.length;if(Ve.push({stride:[Ot.length,zr?0:rt,Rr?0:rt],input_features:vr.input_features,is_last:Rr}),Rr)break;ft+=Ye}}else Ve=[{stride:[Ge.length,0,0],input_features:(await this.processor(Ge)).input_features,is_last:!0}];for(let lt of Ve){xe.num_frames=Math.floor(lt.stride[0]/$e);let rt=await this.model.generate({inputs:lt.input_features,...xe});fe==="word"?(lt.tokens=rt.sequences.tolist()[0],lt.token_timestamps=rt.token_timestamps.tolist()[0].map(Ye=>(0,c.round)(Ye,2))):lt.tokens=rt[0].tolist(),lt.stride=lt.stride.map(Ye=>Ye/Ue)}let[De,ot]=this.tokenizer._decode_asr(Ve,{time_precision:Ae,return_timestamps:fe,force_full_sequences:Pe});je.push({text:De,...ot})}return de?je[0]:je}async _call_moonshine(Z,V){let fe=!Array.isArray(Z);fe&&(Z=[Z]);let Se=this.processor.feature_extractor.config.sampling_rate,Pe=await f(Z,Se),pe=[];for(let xe of Pe){let de=await this.processor(xe),Ae=Math.floor(xe.length/Se)*6,$e=await this.model.generate({max_new_tokens:Ae,...V,...de}),Ue=this.processor.batch_decode($e,{skip_special_tokens:!0})[0];pe.push({text:Ue})}return fe?pe[0]:pe}}class H extends F{constructor(Z){super(Z)}async _call(Z,V={}){let fe=Array.isArray(Z),Se=await h(Z),{pixel_values:Pe}=await this.processor(Se),pe=[];for(let xe of Pe){xe.dims=[1,...xe.dims];let de=await this.model.generate({inputs:xe,...V}),Ae=this.tokenizer.batch_decode(de,{skip_special_tokens:!0}).map($e=>({generated_text:$e.trim()}));pe.push(Ae)}return fe?pe:pe[0]}}class te extends F{constructor(Z){super(Z)}async _call(Z,{top_k:V=5}={}){let fe=await h(Z),{pixel_values:Se}=await this.processor(fe),Pe=await this.model({pixel_values:Se}),pe=this.model.config.id2label,xe=[];for(let de of Pe.logits){let Ae=await(0,u.topk)(new u.Tensor("float32",(0,c.softmax)(de.data),de.dims),V),$e=Ae[0].tolist(),Ee=Ae[1].tolist().map((je,Ge)=>({label:pe?pe[je]:`LABEL_${je}`,score:$e[Ge]}));xe.push(Ee)}return Array.isArray(Z)?xe:xe[0]}}class re extends F{constructor(Z){super(Z),this.subtasks_mapping={panoptic:"post_process_panoptic_segmentation",instance:"post_process_instance_segmentation",semantic:"post_process_semantic_segmentation"}}async _call(Z,{threshold:V=.5,mask_threshold:fe=.5,overlap_mask_area_threshold:Se=.8,label_ids_to_fuse:Pe=null,target_sizes:pe=null,subtask:xe=null}={}){if(Array.isArray(Z)&&Z.length!==1)throw Error("Image segmentation pipeline currently only supports a batch size of 1.");let Ae=await h(Z),$e=Ae.map(lt=>[lt.height,lt.width]),Ue=await this.processor(Ae),{inputNames:Ee,outputNames:je}=this.model.sessions.model;if(!Ee.includes("pixel_values")){if(Ee.length!==1)throw Error(`Expected a single input name, but got ${Ee.length} inputs: ${Ee}.`);let lt=Ee[0];if(lt in Ue)throw Error(`Input name ${lt} already exists in the inputs.`);Ue[lt]=Ue.pixel_values}let Ge=await this.model(Ue),Ve=null;if(xe!==null)Ve=this.subtasks_mapping[xe];else if(this.processor.image_processor){for(let[lt,rt]of Object.entries(this.subtasks_mapping))if(rt in this.processor.image_processor){Ve=this.processor.image_processor[rt].bind(this.processor.image_processor),xe=lt;break}}let De=this.model.config.id2label,ot=[];if(xe)if(xe==="panoptic"||xe==="instance"){let lt=Ve(Ge,V,fe,Se,Pe,pe??$e)[0],rt=lt.segmentation;for(let Ye of lt.segments_info){let ft=new Uint8ClampedArray(rt.data.length);for(let Ot=0;Ot<rt.data.length;++Ot)rt.data[Ot]===Ye.id&&(ft[Ot]=255);let yt=new d.RawImage(ft,rt.dims[1],rt.dims[0],1);ot.push({score:Ye.score,label:De[Ye.label_id],mask:yt})}}else if(xe==="semantic"){let{segmentation:lt,labels:rt}=Ve(Ge,pe??$e)[0];for(let Ye of rt){let ft=new Uint8ClampedArray(lt.data.length);for(let Ot=0;Ot<lt.data.length;++Ot)lt.data[Ot]===Ye&&(ft[Ot]=255);let yt=new d.RawImage(ft,lt.dims[1],lt.dims[0],1);ot.push({score:null,label:De[Ye],mask:yt})}}else throw Error(`Subtask ${xe} not supported.`);else{let rt=Ge[je[0]];for(let Ye=0;Ye<$e.length;++Ye){let ft=$e[Ye],yt=rt[Ye];yt.data.some(vr=>vr<-1e-5||vr>1+1e-5)&&yt.sigmoid_();let Ot=await d.RawImage.fromTensor(yt.mul_(255).to("uint8")).resize(ft[1],ft[0]);ot.push({label:null,score:null,mask:Ot})}}return ot}}class le extends re{constructor(Z){super(Z)}async _call(Z,V={}){if(Array.isArray(Z)&&Z.length!==1)throw Error("Background removal pipeline currently only supports a batch size of 1.");let Se=await h(Z),Pe=await super._call(Z,V);return Se.map((xe,de)=>{let Ae=xe.clone();return Ae.putAlpha(Pe[de].mask),Ae})}}class be extends F{constructor(Z){super(Z)}async _call(Z,V,{hypothesis_template:fe="This is a photo of {}"}={}){let Se=Array.isArray(Z),Pe=await h(Z),pe=V.map(Ee=>fe.replace("{}",Ee)),xe=this.tokenizer(pe,{padding:this.model.config.model_type==="siglip"?"max_length":!0,truncation:!0}),{pixel_values:de}=await this.processor(Pe),Ae=await this.model({...xe,pixel_values:de}),$e=this.model.config.model_type==="siglip"?Ee=>Ee.sigmoid().data:Ee=>(0,c.softmax)(Ee.data),Ue=[];for(let Ee of Ae.logits_per_image){let Ge=[...$e(Ee)].map((Ve,De)=>({score:Ve,label:V[De]}));Ge.sort((Ve,De)=>De.score-Ve.score),Ue.push(Ge)}return Se?Ue:Ue[0]}}class z extends F{constructor(Z){super(Z)}async _call(Z,{threshold:V=.9,percentage:fe=!1}={}){let Se=Array.isArray(Z);if(Se&&Z.length!==1)throw Error("Object detection pipeline currently only supports a batch size of 1.");let Pe=await h(Z),pe=fe?null:Pe.map(je=>[je.height,je.width]),{pixel_values:xe,pixel_mask:de}=await this.processor(Pe),Ae=await this.model({pixel_values:xe,pixel_mask:de}),$e=this.processor.image_processor.post_process_object_detection(Ae,V,pe),Ue=this.model.config.id2label,Ee=$e.map(je=>je.boxes.map((Ge,Ve)=>({score:je.scores[Ve],label:Ue[je.classes[Ve]],box:v(Ge,!fe)})));return Se?Ee:Ee[0]}}class D extends F{constructor(Z){super(Z)}async _call(Z,V,{threshold:fe=.1,top_k:Se=null,percentage:Pe=!1}={}){let pe=Array.isArray(Z),xe=await h(Z),de=this.tokenizer(V,{padding:!0,truncation:!0}),Ae=await this.processor(xe),$e=[];for(let Ue=0;Ue<xe.length;++Ue){let Ee=xe[Ue],je=Pe?null:[[Ee.height,Ee.width]],Ge=Ae.pixel_values[Ue].unsqueeze_(0),Ve=await this.model({...de,pixel_values:Ge}),De;if("post_process_grounded_object_detection"in this.processor){let ot=this.processor.post_process_grounded_object_detection(Ve,de.input_ids,{box_threshold:fe,text_threshold:fe,target_sizes:je})[0];De=ot.boxes.map((lt,rt)=>({score:ot.scores[rt],label:ot.labels[rt],box:v(lt,!Pe)}))}else{let ot=this.processor.image_processor.post_process_object_detection(Ve,fe,je,!0)[0];De=ot.boxes.map((lt,rt)=>({score:ot.scores[rt],label:V[ot.classes[rt]],box:v(lt,!Pe)}))}De.sort((ot,lt)=>lt.score-ot.score),Se!==null&&(De=De.slice(0,Se)),$e.push(De)}return pe?$e:$e[0]}}class K extends F{constructor(Z){super(Z)}async _call(Z,V,fe={}){let Se=(await h(Z))[0],{pixel_values:Pe}=await this.processor(Se),pe=`<s_docvqa><s_question>${V}</s_question><s_answer>`,xe=this.tokenizer(pe,{add_special_tokens:!1,padding:!0,truncation:!0}).input_ids,de=await this.model.generate({inputs:Pe,max_length:this.model.config.decoder.max_position_embeddings,decoder_input_ids:xe,...fe}),$e=this.tokenizer.batch_decode(de)[0].match(/<s_answer>(.*?)<\/s_answer>/),Ue=null;return $e&&$e.length>=2&&(Ue=$e[1].trim()),[{answer:Ue}]}}class R extends F{DEFAULT_VOCODER_ID="Xenova/speecht5_hifigan";constructor(Z){super(Z),this.vocoder=Z.vocoder??null}async _call(Z,{speaker_embeddings:V=null}={}){return this.processor?this._call_text_to_spectrogram(Z,{speaker_embeddings:V}):this._call_text_to_waveform(Z)}async _call_text_to_waveform(Z){let V=this.tokenizer(Z,{padding:!0,truncation:!0}),{waveform:fe}=await this.model(V),Se=this.model.config.sampling_rate;return new p.RawAudio(fe.data,Se)}async _call_text_to_spectrogram(Z,{speaker_embeddings:V}){if(this.vocoder||(console.log("No vocoder specified, using default HifiGan vocoder."),this.vocoder=await o.AutoModel.from_pretrained(this.DEFAULT_VOCODER_ID,{dtype:"fp32"})),(typeof V=="string"||V instanceof URL)&&(V=new Float32Array(await(await fetch(V)).arrayBuffer())),V instanceof Float32Array)V=new u.Tensor("float32",V,[1,V.length]);else if(!(V instanceof u.Tensor))throw new Error("Speaker embeddings must be a `Tensor`, `Float32Array`, `string`, or `URL`.");let{input_ids:fe}=this.tokenizer(Z,{padding:!0,truncation:!0}),{waveform:Se}=await this.model.generate_speech(fe,V,{vocoder:this.vocoder}),Pe=this.processor.feature_extractor.config.sampling_rate;return new p.RawAudio(Se.data,Pe)}}class ne extends F{constructor(Z){super(Z)}async _call(Z){let V=await h(Z),fe=await this.processor(V),Se=await this.model(fe),Pe=[];for(let pe of Se.reconstruction){let xe=pe.squeeze().clamp_(0,1).mul_(255).round_().to("uint8");Pe.push(d.RawImage.fromTensor(xe))}return Pe.length>1?Pe:Pe[0]}}class Ce extends F{constructor(Z){super(Z)}async _call(Z){let V=await h(Z),fe=await this.processor(V),{predicted_depth:Se}=await this.model(fe),Pe=[];for(let pe=0;pe<V.length;++pe){let xe=Se[pe],[de,Ae]=xe.dims.slice(-2),[$e,Ue]=V[pe].size,Ee=(await(0,u.interpolate_4d)(xe.view(1,1,de,Ae),{size:[Ue,$e],mode:"bilinear"})).view(Ue,$e),je=Ee.min().item(),Ge=Ee.max().item(),Ve=Ee.sub(je).div_(Ge-je).mul_(255).to("uint8").unsqueeze(0),De=d.RawImage.fromTensor(Ve);Pe.push({predicted_depth:Ee,depth:De})}return Pe.length>1?Pe:Pe[0]}}let Me=Object.freeze({"text-classification":{tokenizer:s.AutoTokenizer,pipeline:x,model:o.AutoModelForSequenceClassification,default:{model:"Xenova/distilbert-base-uncased-finetuned-sst-2-english"},type:"text"},"token-classification":{tokenizer:s.AutoTokenizer,pipeline:w,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:g,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:$,model:o.AutoModelForCausalLM,default:{model:"Xenova/gpt2"},type:"text"},"zero-shot-classification":{tokenizer:s.AutoTokenizer,pipeline:L,model:o.AutoModelForSequenceClassification,default:{model:"Xenova/distilbert-base-uncased-mnli"},type:"text"},"audio-classification":{pipeline:O,model:o.AutoModelForAudioClassification,processor:n.AutoProcessor,default:{model:"Xenova/wav2vec2-base-superb-ks"},type:"audio"},"zero-shot-audio-classification":{tokenizer:s.AutoTokenizer,pipeline:J,model:o.AutoModel,processor:n.AutoProcessor,default:{model:"Xenova/clap-htsat-unfused"},type:"multimodal"},"automatic-speech-recognition":{tokenizer:s.AutoTokenizer,pipeline:Q,model:[o.AutoModelForSpeechSeq2Seq,o.AutoModelForCTC],processor:n.AutoProcessor,default:{model:"Xenova/whisper-tiny.en"},type:"multimodal"},"text-to-audio":{tokenizer:s.AutoTokenizer,pipeline:R,model:[o.AutoModelForTextToWaveform,o.AutoModelForTextToSpectrogram],processor:[n.AutoProcessor,null],default:{model:"Xenova/speecht5_tts"},type:"text"},"image-to-text":{tokenizer:s.AutoTokenizer,pipeline:H,model:o.AutoModelForVision2Seq,processor:n.AutoProcessor,default:{model:"Xenova/vit-gpt2-image-captioning"},type:"multimodal"},"image-classification":{pipeline:te,model:o.AutoModelForImageClassification,processor:n.AutoProcessor,default:{model:"Xenova/vit-base-patch16-224"},type:"multimodal"},"image-segmentation":{pipeline:re,model:[o.AutoModelForImageSegmentation,o.AutoModelForSemanticSegmentation,o.AutoModelForUniversalSegmentation],processor:n.AutoProcessor,default:{model:"Xenova/detr-resnet-50-panoptic"},type:"multimodal"},"background-removal":{pipeline:le,model:[o.AutoModelForImageSegmentation,o.AutoModelForSemanticSegmentation,o.AutoModelForUniversalSegmentation],processor:n.AutoProcessor,default:{model:"Xenova/modnet"},type:"image"},"zero-shot-image-classification":{tokenizer:s.AutoTokenizer,pipeline:be,model:o.AutoModel,processor:n.AutoProcessor,default:{model:"Xenova/clip-vit-base-patch32"},type:"multimodal"},"object-detection":{pipeline:z,model:o.AutoModelForObjectDetection,processor:n.AutoProcessor,default:{model:"Xenova/detr-resnet-50"},type:"multimodal"},"zero-shot-object-detection":{tokenizer:s.AutoTokenizer,pipeline:D,model:o.AutoModelForZeroShotObjectDetection,processor:n.AutoProcessor,default:{model:"Xenova/owlvit-base-patch32"},type:"multimodal"},"document-question-answering":{tokenizer:s.AutoTokenizer,pipeline:K,model:o.AutoModelForDocumentQuestionAnswering,processor:n.AutoProcessor,default:{model:"Xenova/donut-base-finetuned-docvqa"},type:"multimodal"},"image-to-image":{pipeline:ne,model:o.AutoModelForImageToImage,processor:n.AutoProcessor,default:{model:"Xenova/swin2SR-classical-sr-x2-64"},type:"image"},"depth-estimation":{pipeline:Ce,model:o.AutoModelForDepthEstimation,processor:n.AutoProcessor,default:{model:"Xenova/dpt-large"},type:"image"},"feature-extraction":{tokenizer:s.AutoTokenizer,pipeline:G,model:o.AutoModel,default:{model:"Xenova/all-MiniLM-L6-v2"},type:"text"},"image-feature-extraction":{processor:n.AutoProcessor,pipeline:q,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 Ke(_e,Z=null,{progress_callback:V=null,config:fe=null,cache_dir:Se=null,local_files_only:Pe=!1,revision:pe="main",device:xe=null,dtype:de=null,subfolder:Ae="onnx",use_external_data_format:$e=null,model_file_name:Ue=null,session_options:Ee={}}={}){_e=Ie[_e]??_e;let je=Me[_e.split("_",1)[0]];if(!je)throw Error(`Unsupported pipeline: ${_e}. Must be one of [${Object.keys(Me)}]`);Z||(Z=je.default.model,console.log(`No model specified. Using default model: "${Z}".`));let Ge={progress_callback:V,config:fe,cache_dir:Se,local_files_only:Pe,revision:pe,device:xe,dtype:de,subfolder:Ae,use_external_data_format:$e,model_file_name:Ue,session_options:Ee},Ve=new Map([["tokenizer",je.tokenizer],["model",je.model],["processor",je.processor]]),De=await et(Ve,Z,Ge);De.task=_e,(0,l.dispatchCallback)(V,{status:"ready",task:_e,model:Z});let ot=je.pipeline;return new ot(De)}async function et(_e,Z,V){let fe=Object.create(null),Se=[];for(let[Pe,pe]of _e.entries()){if(!pe)continue;let xe;Array.isArray(pe)?xe=new Promise(async(de,Ae)=>{let $e;for(let Ue of pe){if(Ue===null){de(null);return}try{de(await Ue.from_pretrained(Z,V));return}catch(Ee){if(Ee.message?.includes("Unsupported model type"))$e=Ee;else if(Ee.message?.includes("Could not locate file"))$e=Ee;else{Ae(Ee);return}}}Ae($e)}):xe=pe.from_pretrained(Z,V),fe[Pe]=xe,Se.push(xe)}await Promise.all(Se);for(let[Pe,pe]of Object.entries(fe))fe[Pe]=await pe;return fe}},"./src/tokenizers.js":(e,r,t)=>{t.r(r),t.d(r,{AlbertTokenizer:()=>ks,AutoTokenizer:()=>Xo,BartTokenizer:()=>St,BertTokenizer:()=>Es,BlenderbotSmallTokenizer:()=>Jt,BlenderbotTokenizer:()=>tt,BloomTokenizer:()=>pr,CLIPTokenizer:()=>zs,CamembertTokenizer:()=>ke,CodeGenTokenizer:()=>Hr,CodeLlamaTokenizer:()=>os,CohereTokenizer:()=>us,ConvBertTokenizer:()=>Y,DebertaTokenizer:()=>k,DebertaV2Tokenizer:()=>X,DistilBertTokenizer:()=>he,ElectraTokenizer:()=>dt,Ernie4_5_Tokenizer:()=>_o,EsmTokenizer:()=>Is,FalconTokenizer:()=>yr,GPT2Tokenizer:()=>Ct,GPTNeoXTokenizer:()=>Fs,GemmaTokenizer:()=>Wr,Grok1Tokenizer:()=>Yr,HerbertTokenizer:()=>N,LlamaTokenizer:()=>Gt,M2M100Tokenizer:()=>lr,MBart50Tokenizer:()=>Rt,MBartTokenizer:()=>ur,MPNetTokenizer:()=>Ss,MarianTokenizer:()=>Le,MgpstrTokenizer:()=>po,MobileBertTokenizer:()=>ct,NllbTokenizer:()=>cs,NougatTokenizer:()=>ds,PreTrainedTokenizer:()=>_t,Qwen2Tokenizer:()=>Vr,RoFormerTokenizer:()=>se,RobertaTokenizer:()=>jr,SiglipTokenizer:()=>Ur,SpeechT5Tokenizer:()=>Rs,SqueezeBertTokenizer:()=>Cs,T5Tokenizer:()=>qe,TokenizerModel:()=>G,VitsTokenizer:()=>js,Wav2Vec2CTCTokenizer:()=>Re,WhisperTokenizer:()=>_r,XLMRobertaTokenizer:()=>Nr,XLMTokenizer:()=>Ze,is_chinese_char:()=>C});var s=t("./src/utils/generic.js"),o=t("./src/utils/core.js"),n=t("./src/utils/hub.js"),a=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"),p=t("./src/models/whisper/common_whisper.js");async function u(ce,S){let U=await Promise.all([(0,n.getModelJSON)(ce,"tokenizer.json",!0,S),(0,n.getModelJSON)(ce,"tokenizer_config.json",!0,S)]);return S.legacy!==null&&(U[1].legacy=S.legacy),U}function d(ce,S){let U=[],ee=0;for(let oe of ce.matchAll(S)){let me=oe[0];ee<oe.index&&U.push(ce.slice(ee,oe.index)),me.length>0&&U.push(me),ee=oe.index+me.length}return ee<ce.length&&U.push(ce.slice(ee)),U}function h(ce,S=!0){if(ce.Regex!==void 0){let U=ce.Regex.replace(/\\([#&~])/g,"$1");for(let[ee,oe]of $)U=U.replaceAll(ee,oe);return new RegExp(U,"gu")}else if(ce.String!==void 0){let U=(0,o.escapeRegExp)(ce.String);return new RegExp(S?U:`(${U})`,"gu")}else return console.warn("Unknown pattern type:",ce),null}function f(ce){return new Map(Object.entries(ce))}function v(ce){let S=ce.dims;switch(S.length){case 1:return ce.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 ce.tolist()[0];default:throw new Error(`Expected tensor to have 1-2 dimensions, got ${S.length}.`)}}function F(ce){return ce.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 x(ce){return ce.replace(/\p{M}/gu,"")}function w(ce){return x(ce.toLowerCase())}function C(ce){return ce>=19968&&ce<=40959||ce>=13312&&ce<=19903||ce>=131072&&ce<=173791||ce>=173824&&ce<=177983||ce>=177984&&ce<=178207||ce>=178208&&ce<=183983||ce>=63744&&ce<=64255||ce>=194560&&ce<=195103}function y(ce,S,U){let ee=[],oe=0;for(;oe<ce.length;){if(ee.push(ce[oe]),(S.get(ce[oe])??U)!==U){++oe;continue}for(;++oe<ce.length&&(S.get(ce[oe])??U)===U;)S.get(ee.at(-1))!==U&&(ee[ee.length-1]+=ce[oe])}return ee}function P(ce){return ce.match(/\S+/g)||[]}let I="\\p{P}\\u0021-\\u002F\\u003A-\\u0040\\u005B-\\u0060\\u007B-\\u007E",g=new RegExp(`^[${I}]+$`,"gu"),E=".,!?\u2026\u3002\uFF0C\u3001\u0964\u06D4\u060C",$=new Map([["(?i:'s|'t|'re|'ve|'m|'ll|'d)","(?:'([sS]|[tT]|[rR][eE]|[vV][eE]|[mM]|[lL][lL]|[dD]))"],[` ?[^(\\s|[${E}])]+`,` ?[^\\s${E}]+`]]);class L{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 G 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,...U){switch(S.type){case"WordPiece":return new q(S);case"Unigram":return new O(S,...U);case"BPE":return new H(S);default:if(S.vocab)return Array.isArray(S.vocab)?new O(S,...U):Object.hasOwn(S,"continuing_subword_prefix")&&Object.hasOwn(S,"unk_token")?Object.hasOwn(S,"merges")?new H(S):new q(S):new te(S,...U);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(U=>this.tokens_to_ids.get(U)??this.unk_token_id)}convert_ids_to_tokens(S){return S.map(U=>this.vocab[U]??this.unk_token)}}class q extends G{constructor(S){super(S),this.tokens_to_ids=f(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[U,ee]of this.tokens_to_ids)this.vocab[ee]=U}encode(S){let U=[];for(let ee of S){let oe=[...ee];if(oe.length>this.max_input_chars_per_word){U.push(this.unk_token);continue}let me=!1,Te=0,He=[];for(;Te<oe.length;){let Xe=oe.length,Je=null;for(;Te<Xe;){let We=oe.slice(Te,Xe).join("");if(Te>0&&(We=this.config.continuing_subword_prefix+We),this.tokens_to_ids.has(We)){Je=We;break}--Xe}if(Je===null){me=!0;break}He.push(Je),Te=Xe}me?U.push(this.unk_token):U.push(...He)}return U}}class O extends G{constructor(S,U){super(S);let ee=S.vocab.length;this.vocab=new Array(ee),this.scores=new Array(ee);for(let oe=0;oe<ee;++oe)[this.vocab[oe],this.scores[oe]]=S.vocab[oe];this.unk_token_id=S.unk_id,this.unk_token=this.vocab[S.unk_id],this.tokens_to_ids=new Map(this.vocab.map((oe,me)=>[oe,me])),this.bos_token=" ",this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=U.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,a.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 U=S.chars,ee=1,oe=0;for(;oe<U.length;){let me=!1,Te=[],He=U.slice(oe).join(""),Xe=this.trie.commonPrefixSearch(He);for(let Je of Xe){Te.push(Je);let We=this.tokens_to_ids.get(Je),It=this.scores[We],bt=(0,o.len)(Je);S.insert(oe,bt,It,We),!me&&bt===ee&&(me=!0)}me||S.insert(oe,ee,this.unk_score,this.unk_token_id),oe+=ee}}tokenize(S){let U=new l.TokenLattice(S,this.bos_token_id,this.eos_token_id);return this.populateNodes(U),U.tokens()}encode(S){let U=[];for(let ee of S){let oe=this.tokenize(ee);U.push(...oe)}return U}}let J=(()=>{let ce=[...Array.from({length:94},(oe,me)=>me+33),...Array.from({length:12},(oe,me)=>me+161),...Array.from({length:82},(oe,me)=>me+174)],S=ce.slice(),U=0;for(let oe=0;oe<256;++oe)ce.includes(oe)||(ce.push(oe),S.push(256+U),U+=1);let ee=S.map(oe=>String.fromCharCode(oe));return Object.fromEntries(ce.map((oe,me)=>[oe,ee[me]]))})(),Q=(0,o.reverseDictionary)(J);class H extends G{constructor(S){super(S),this.tokens_to_ids=f(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[ee,oe]of this.tokens_to_ids)this.vocab[oe]=ee;let U=Array.isArray(S.merges[0]);this.merges=U?S.merges:S.merges.map(ee=>ee.split(" ",2)),this.bpe_ranks=new Map(this.merges.map((ee,oe)=>[JSON.stringify(ee),oe])),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 U=this.cache.get(S);if(U!==void 0)return U;let ee=Array.from(S);this.end_of_word_suffix&&(ee[ee.length-1]+=this.end_of_word_suffix);let oe=[];if(ee.length>1){let me=new l.PriorityQueue((Xe,Je)=>Xe.score<Je.score),Te={token:ee[0],bias:0,prev:null,next:null},He=Te;for(let Xe=1;Xe<ee.length;++Xe){let Je={bias:Xe/ee.length,token:ee[Xe],prev:He,next:null};He.next=Je,this._add_node(me,He),He=Je}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 We={...Xe.prev};Xe.prev.deleted=!0,Xe.prev=We,We.prev?We.prev.next=We:Te=We}let Je={token:Xe.token+Xe.next.token,bias:Xe.bias,prev:Xe.prev,next:Xe.next.next};Je.prev?(Je.prev.next=Je,this._add_node(me,Je.prev)):Te=Je,Je.next&&(Je.next.prev=Je,this._add_node(me,Je))}for(let Xe=Te;Xe!==null;Xe=Xe.next)oe.push(Xe.token)}else oe=ee;if(this.continuing_subword_suffix)for(let me=0;me<oe.length-1;++me)oe[me]+=this.continuing_subword_suffix;return S.length<this.max_length_to_cache&&this.cache.put(S,oe),oe}_add_node(S,U){let ee=this.bpe_ranks.get(JSON.stringify([U.token,U.next.token]));ee!==void 0&&(U.score=ee+U.bias,S.push(U))}encode(S){let U=[];for(let ee of S){if(this.ignore_merges&&this.tokens_to_ids.has(ee)){U.push(ee);continue}let oe=this.bpe(ee);for(let me of oe)if(this.tokens_to_ids.has(me))U.push(me);else if(this.byte_fallback){let Te=Array.from(this.text_encoder.encode(me)).map(He=>`<0x${He.toString(16).toUpperCase().padStart(2,"0")}>`);Te.every(He=>this.tokens_to_ids.has(He))?U.push(...Te):U.push(this.unk_token)}else U.push(this.unk_token)}return U}}class te extends G{constructor(S,U){super(S),this.tokens_to_ids=f(U.target_lang?S.vocab[U.target_lang]:S.vocab),this.bos_token=U.bos_token,this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=U.eos_token,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.pad_token=U.pad_token,this.pad_token_id=this.tokens_to_ids.get(this.pad_token),this.unk_token=U.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[ee,oe]of this.tokens_to_ids)this.vocab[oe]=ee}encode(S){return S}}class re extends s.Callable{constructor(S){super(),this.config=S}static fromConfig(S){if(S===null)return null;switch(S.type){case"BertNormalizer":return new et(S);case"Precompiled":return new zr(S);case"Sequence":return new Ke(S);case"Replace":return new le(S);case"NFC":return new z(S);case"NFD":return new D(S);case"NFKC":return new K(S);case"NFKD":return new R(S);case"Strip":return new ne(S);case"StripAccents":return new Ce(S);case"Lowercase":return new Me(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 le extends re{normalize(S){let U=h(this.config.pattern);return U===null?S:S.replaceAll(U,this.config.content)}}class be extends re{form=void 0;normalize(S){return S=S.normalize(this.form),S}}class z extends be{form="NFC"}class D extends be{form="NFD"}class K extends be{form="NFKC"}class R extends be{form="NFKD"}class ne extends re{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 Ce extends re{normalize(S){return S=x(S),S}}class Me extends re{normalize(S){return S=S.toLowerCase(),S}}class Ie extends re{normalize(S){return S=this.config.prepend+S,S}}class Ke extends re{constructor(S){super(S),this.normalizers=S.normalizers.map(U=>re.fromConfig(U))}normalize(S){return this.normalizers.reduce((U,ee)=>ee.normalize(U),S)}}class et extends re{_tokenize_chinese_chars(S){let U=[];for(let ee=0;ee<S.length;++ee){let oe=S[ee],me=oe.charCodeAt(0);C(me)?(U.push(" "),U.push(oe),U.push(" ")):U.push(oe)}return U.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 U=[];for(let ee of S){let oe=ee.charCodeAt(0);oe===0||oe===65533||this._is_control(ee)||(/^\s$/.test(ee)?U.push(" "):U.push(ee))}return U.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 _e extends s.Callable{static fromConfig(S){if(S===null)return null;switch(S.type){case"BertPreTokenizer":return new Z(S);case"Sequence":return new Rr(S);case"Whitespace":return new Ut(S);case"WhitespaceSplit":return new Cr(S);case"Metaspace":return new Ot(S);case"ByteLevel":return new V(S);case"Split":return new fe(S);case"Punctuation":return new Se(S);case"Digits":return new Pe(S);case"Replace":return new Hs(S);default:throw new Error(`Unknown PreTokenizer type: ${S.type}`)}}pre_tokenize_text(S,U){throw Error("pre_tokenize_text should be implemented in subclass.")}pre_tokenize(S,U){return(Array.isArray(S)?S.map(ee=>this.pre_tokenize_text(ee,U)):this.pre_tokenize_text(S,U)).flat()}_call(S,U){return this.pre_tokenize(S,U)}}class Z extends _e{constructor(S){super(),this.pattern=new RegExp(`[^\\s${I}]+|[${I}]`,"gu")}pre_tokenize_text(S,U){return S.trim().match(this.pattern)||[]}}class V extends _e{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=J,this.text_encoder=new TextEncoder}pre_tokenize_text(S,U){return this.add_prefix_space&&!S.startsWith(" ")&&(S=" "+S),(this.use_regex?S.match(this.pattern)||[]:[S]).map(oe=>Array.from(this.text_encoder.encode(oe),me=>this.byte_encoder[me]).join(""))}}class fe extends _e{constructor(S){super(),this.config=S,this.pattern=h(this.config.pattern,this.config.invert)}pre_tokenize_text(S,U){return this.pattern===null?[]:this.config.invert?S.match(this.pattern)||[]:this.config.behavior?.toLowerCase()==="removed"?S.split(this.pattern).filter(ee=>ee):d(S,this.pattern)}}class Se extends _e{constructor(S){super(),this.config=S,this.pattern=new RegExp(`[^${I}]+|[${I}]+`,"gu")}pre_tokenize_text(S,U){return S.match(this.pattern)||[]}}class Pe extends _e{constructor(S){super(),this.config=S;let U=`[^\\d]+|\\d${this.config.individual_digits?"":"+"}`;this.pattern=new RegExp(U,"gu")}pre_tokenize_text(S,U){return S.match(this.pattern)||[]}}class pe extends s.Callable{constructor(S){super(),this.config=S}static fromConfig(S){if(S===null)return null;switch(S.type){case"TemplateProcessing":return new Ae(S);case"ByteLevel":return new $e(S);case"RobertaProcessing":return new de(S);case"BertProcessing":return new xe(S);case"Sequence":return new Ue(S);default:throw new Error(`Unknown PostProcessor type: ${S.type}`)}}post_process(S,...U){throw Error("post_process should be implemented in subclass.")}_call(S,...U){return this.post_process(S,...U)}}class xe extends pe{constructor(S){super(S),this.cls=S.cls[0],this.sep=S.sep[0]}post_process(S,U=null,{add_special_tokens:ee=!0}={}){ee&&(S=(0,o.mergeArrays)([this.cls],S,[this.sep]));let oe=new Array(S.length).fill(0);if(U!==null){let me=ee&&this instanceof de?[this.sep]:[],Te=ee?[this.sep]:[];S=(0,o.mergeArrays)(S,me,U,Te),oe=(0,o.mergeArrays)(oe,new Array(U.length+me.length+Te.length).fill(1))}return{tokens:S,token_type_ids:oe}}}class de extends xe{}class Ae extends pe{constructor(S){super(S),this.single=S.single,this.pair=S.pair}post_process(S,U=null,{add_special_tokens:ee=!0}={}){let oe=U===null?this.single:this.pair,me=[],Te=[];for(let He of oe)"SpecialToken"in He?ee&&(me.push(He.SpecialToken.id),Te.push(He.SpecialToken.type_id)):"Sequence"in He&&(He.Sequence.id==="A"?(me=(0,o.mergeArrays)(me,S),Te=(0,o.mergeArrays)(Te,new Array(S.length).fill(He.Sequence.type_id))):He.Sequence.id==="B"&&(me=(0,o.mergeArrays)(me,U),Te=(0,o.mergeArrays)(Te,new Array(U.length).fill(He.Sequence.type_id))));return{tokens:me,token_type_ids:Te}}}class $e extends pe{post_process(S,U=null){return U&&(S=(0,o.mergeArrays)(S,U)),{tokens:S}}}class Ue extends pe{constructor(S){super(S),this.processors=S.processors.map(U=>pe.fromConfig(U))}post_process(S,U=null,ee={}){let oe;for(let me of this.processors)if(me instanceof $e)S=me.post_process(S).tokens,U&&(U=me.post_process(U).tokens);else{let Te=me.post_process(S,U,ee);S=Te.tokens,oe=Te.token_type_ids}return{tokens:S,token_type_ids:oe}}}class Ee 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 ot(S);case"Metaspace":return new vr(S);case"ByteLevel":return new lt(S);case"Replace":return new je(S);case"ByteFallback":return new Ge(S);case"Fuse":return new Ve(S);case"Strip":return new De(S);case"Sequence":return new Ye(S);case"CTC":return new rt(S);case"BPEDecoder":return new ft(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 je extends Ee{decode_chain(S){let U=h(this.config.pattern);return U===null?S:S.map(ee=>ee.replaceAll(U,this.config.content))}}class Ge extends Ee{constructor(S){super(S),this.text_decoder=new TextDecoder}decode_chain(S){let U=[],ee=[];for(let oe of S){let me=null;if(oe.length===6&&oe.startsWith("<0x")&&oe.endsWith(">")){let Te=parseInt(oe.slice(3,5),16);isNaN(Te)||(me=Te)}if(me!==null)ee.push(me);else{if(ee.length>0){let Te=this.text_decoder.decode(Uint8Array.from(ee));U.push(Te),ee=[]}U.push(oe)}}if(ee.length>0){let oe=this.text_decoder.decode(Uint8Array.from(ee));U.push(oe),ee=[]}return U}}class Ve extends Ee{decode_chain(S){return[S.join("")]}}class De extends Ee{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(U=>{let ee=0;for(let me=0;me<this.start&&U[me]===this.content;++me){ee=me+1;continue}let oe=U.length;for(let me=0;me<this.stop;++me){let Te=U.length-me-1;if(U[Te]===this.content){oe=Te;continue}else break}return U.slice(ee,oe)})}}class ot extends Ee{constructor(S){super(S),this.cleanup=S.cleanup}decode_chain(S){return S.map((U,ee)=>(ee!==0&&(U.startsWith(this.config.prefix)?U=U.replace(this.config.prefix,""):U=" "+U),this.cleanup&&(U=F(U)),U))}}class lt extends Ee{constructor(S){super(S),this.byte_decoder=Q,this.text_decoder=new TextDecoder("utf-8",{fatal:!1,ignoreBOM:!0}),this.end_of_word_suffix=null}convert_tokens_to_string(S){let U=S.join(""),ee=new Uint8Array([...U].map(me=>this.byte_decoder[me]));return this.text_decoder.decode(ee)}decode_chain(S){let U=[],ee=[];for(let oe of S)this.added_tokens.find(me=>me.content===oe)!==void 0?(ee.length>0&&(U.push(this.convert_tokens_to_string(ee)),ee=[]),U.push(oe)):ee.push(oe);return ee.length>0&&U.push(this.convert_tokens_to_string(ee)),U}}class rt extends Ee{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 U=[S[0]];for(let me=1;me<S.length;++me)S[me]!==U.at(-1)&&U.push(S[me]);let oe=U.filter(me=>me!==this.pad_token).join("");return this.cleanup&&(oe=F(oe).replaceAll(this.word_delimiter_token," ").trim()),oe}decode_chain(S){return[this.convert_tokens_to_string(S)]}}class Ye extends Ee{constructor(S){super(S),this.decoders=S.decoders.map(U=>Ee.fromConfig(U))}decode_chain(S){return this.decoders.reduce((U,ee)=>ee.decode_chain(U),S)}}class ft extends Ee{constructor(S){super(S),this.suffix=this.config.suffix}decode_chain(S){return S.map((U,ee)=>U.replaceAll(this.suffix,ee===S.length-1?"":" "))}}class yt extends Ee{decode_chain(S){let U="";for(let ee=1;ee<S.length;ee+=2)U+=S[ee];return[U]}}class Ot extends _e{constructor(S){super(),this.addPrefixSpace=S.add_prefix_space,this.replacement=S.replacement,this.strRep=S.str_rep||this.replacement,this.prepend_scheme=S.prepend_scheme??"always"}pre_tokenize_text(S,{section_index:U=void 0}={}){let ee=S.replaceAll(" ",this.strRep);return this.addPrefixSpace&&!ee.startsWith(this.replacement)&&(this.prepend_scheme==="always"||this.prepend_scheme==="first"&&U===0)&&(ee=this.strRep+ee),[ee]}}class vr extends Ee{constructor(S){super(S),this.addPrefixSpace=S.add_prefix_space,this.replacement=S.replacement}decode_chain(S){let U=[];for(let ee=0;ee<S.length;++ee){let oe=S[ee].replaceAll(this.replacement," ");this.addPrefixSpace&&ee==0&&oe.startsWith(" ")&&(oe=oe.substring(1)),U.push(oe)}return U}}class zr extends re{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(ee=>ee.normalize("NFKC")).join("\uFF5E"):S=S.normalize("NFKC"),S}}class Rr extends _e{constructor(S){super(),this.tokenizers=S.pretokenizers.map(U=>_e.fromConfig(U))}pre_tokenize_text(S,U){return this.tokenizers.reduce((ee,oe)=>oe.pre_tokenize(ee,U),[S])}}class Ut extends _e{constructor(S){super()}pre_tokenize_text(S,U){return S.match(/\w+|[^\w\s]+/g)||[]}}class Cr extends _e{constructor(S){super()}pre_tokenize_text(S,U){return P(S)}}class Hs extends _e{constructor(S){super(),this.config=S,this.pattern=h(this.config.pattern),this.content=this.config.content}pre_tokenize_text(S,U){return this.pattern===null?[S]:[S.replaceAll(this.pattern,this.config.content)]}}let Qs=["bos_token","eos_token","unk_token","sep_token","pad_token","cls_token","mask_token"];function Xs(ce,S,U,ee){for(let oe of Object.keys(ce)){let me=S-ce[oe].length,Te=U(oe),He=new Array(me).fill(Te);ce[oe]=ee==="right"?(0,o.mergeArrays)(ce[oe],He):(0,o.mergeArrays)(He,ce[oe])}}function Bs(ce,S){for(let U of Object.keys(ce))ce[U].length=S}class _t extends s.Callable{return_token_type_ids=!1;padding_side="right";constructor(S,U){super(),this.config=U,this.normalizer=re.fromConfig(S.normalizer),this.pre_tokenizer=_e.fromConfig(S.pre_tokenizer),this.model=G.fromConfig(S.model,U),this.post_processor=pe.fromConfig(S.post_processor),this.decoder=Ee.fromConfig(S.decoder),this.special_tokens=[],this.all_special_ids=[],this.added_tokens=[];for(let ee of S.added_tokens){let oe=new L(ee);this.added_tokens.push(oe),this.model.tokens_to_ids.set(oe.content,oe.id),this.model.vocab[oe.id]=oe.content,oe.special&&(this.special_tokens.push(oe.content),this.all_special_ids.push(oe.id))}if(this.additional_special_tokens=U.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(ee=>ee.content)),this.added_tokens_map=new Map(this.added_tokens.map(ee=>[ee.content,ee])),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=U.model_max_length,this.remove_space=U.remove_space,this.clean_up_tokenization_spaces=U.clean_up_tokenization_spaces??!0,this.do_lowercase_and_remove_accent=U.do_lowercase_and_remove_accent??!1,U.padding_side&&(this.padding_side=U.padding_side),this.add_bos_token=U.add_bos_token,this.add_eos_token=U.add_eos_token,this.legacy=!1,this.chat_template=U.chat_template??null,Array.isArray(this.chat_template)){let ee=Object.create(null);for(let{name:oe,template:me}of this.chat_template){if(typeof oe!="string"||typeof me!="string")throw new Error('Chat template must be a list of objects with "name" and "template" properties');ee[oe]=me}this.chat_template=ee}this._compiled_template_cache=new Map}getToken(...S){for(let U of S){let ee=this.config[U];if(ee)if(typeof ee=="object"){if(ee.__type==="AddedToken")return ee.content;throw Error(`Unknown token: ${ee}`)}else return ee}return null}static async from_pretrained(S,{progress_callback:U=null,config:ee=null,cache_dir:oe=null,local_files_only:me=!1,revision:Te="main",legacy:He=null}={}){let Xe=await u(S,{progress_callback:U,config:ee,cache_dir:oe,local_files_only:me,revision:Te,legacy:He});return new this(...Xe)}_call(S,{text_pair:U=null,add_special_tokens:ee=!0,padding:oe=!1,truncation:me=null,max_length:Te=null,return_tensor:He=!0,return_token_type_ids:Xe=null}={}){let Je=Array.isArray(S),We;if(Je){if(S.length===0)throw Error("text array must be non-empty");if(U!==null){if(Array.isArray(U)){if(S.length!==U.length)throw Error("text and text_pair must have the same length")}else throw Error("text_pair must also be an array");We=S.map((bt,Kt)=>this._encode_plus(bt,{text_pair:U[Kt],add_special_tokens:ee,return_token_type_ids:Xe}))}else We=S.map(bt=>this._encode_plus(bt,{add_special_tokens:ee,return_token_type_ids:Xe}))}else{if(S==null)throw Error("text may not be null or undefined");if(Array.isArray(U))throw Error("When specifying `text_pair`, since `text` is a string, `text_pair` must also be a string (i.e., not an array).");We=[this._encode_plus(S,{text_pair:U,add_special_tokens:ee,return_token_type_ids:Xe})]}if(Te===null?Te=this.model_max_length:me===null&&(oe===!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'`."),Te=this.model_max_length):oe===!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)),oe===!0&&(Te=Math.min((0,a.max)(We.map(bt=>bt.input_ids.length))[0],Te??1/0)),Te=Math.min(Te,this.model_max_length??1/0),oe||me)for(let bt=0;bt<We.length;++bt)We[bt].input_ids.length!==Te&&(We[bt].input_ids.length>Te?me&&Bs(We[bt],Te):oe&&Xs(We[bt],Te,Kt=>Kt==="input_ids"?this.pad_token_id:0,this.padding_side));let It={};if(He){if(!(oe&&me)&&We.some(Kt=>{for(let mr of Object.keys(Kt))if(Kt[mr].length!==We[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 bt=[We.length,We[0].input_ids.length];for(let Kt of Object.keys(We[0]))It[Kt]=new i.Tensor("int64",BigInt64Array.from(We.flatMap(mr=>mr[Kt]).map(BigInt)),bt)}else{for(let bt of Object.keys(We[0]))It[bt]=We.map(Kt=>Kt[bt]);if(!Je)for(let bt of Object.keys(It))It[bt]=It[bt][0]}return It}_encode_text(S){if(S===null)return null;let U=this.added_tokens_splitter.split(S);for(let oe=0;oe<U.length;++oe){let me=this.added_tokens_map.get(U[oe]);me&&(me.lstrip&&oe>0&&(U[oe-1]=U[oe-1].trimEnd()),me.rstrip&&oe<U.length-1&&(U[oe+1]=U[oe+1].trimStart()))}return U.flatMap((oe,me)=>{if(oe.length===0)return[];if(this.added_tokens_map.has(oe))return[oe];if(this.remove_space===!0&&(oe=oe.trim().split(/\s+/).join(" ")),this.do_lowercase_and_remove_accent&&(oe=w(oe)),this.normalizer!==null&&(oe=this.normalizer(oe)),oe.length===0)return[];let Te=this.pre_tokenizer!==null?this.pre_tokenizer(oe,{section_index:me}):[oe];return this.model(Te)})}_encode_plus(S,{text_pair:U=null,add_special_tokens:ee=!0,return_token_type_ids:oe=null}={}){let{tokens:me,token_type_ids:Te}=this._tokenize_helper(S,{pair:U,add_special_tokens:ee}),He=this.model.convert_tokens_to_ids(me),Xe={input_ids:He,attention_mask:new Array(He.length).fill(1)};return(oe??this.return_token_type_ids)&&Te&&(Xe.token_type_ids=Te),Xe}_tokenize_helper(S,{pair:U=null,add_special_tokens:ee=!1}={}){let oe=this._encode_text(S),me=this._encode_text(U);return this.post_processor?this.post_processor(oe,me,{add_special_tokens:ee}):{tokens:(0,o.mergeArrays)(oe??[],me??[])}}tokenize(S,{pair:U=null,add_special_tokens:ee=!1}={}){return this._tokenize_helper(S,{pair:U,add_special_tokens:ee}).tokens}encode(S,{text_pair:U=null,add_special_tokens:ee=!0,return_token_type_ids:oe=null}={}){return this._encode_plus(S,{text_pair:U,add_special_tokens:ee,return_token_type_ids:oe}).input_ids}batch_decode(S,U={}){return S instanceof i.Tensor&&(S=S.tolist()),S.map(ee=>this.decode(ee,U))}decode(S,U={}){if(S instanceof i.Tensor&&(S=v(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,U)}decode_single(S,{skip_special_tokens:U=!1,clean_up_tokenization_spaces:ee=null}){let oe=this.model.convert_ids_to_tokens(S);U&&(oe=oe.filter(Te=>!this.special_tokens.includes(Te)));let me=this.decoder?this.decoder(oe):oe.join(" ");return this.decoder&&this.decoder.end_of_word_suffix&&(me=me.replaceAll(this.decoder.end_of_word_suffix," "),U&&(me=me.trim())),(ee??this.clean_up_tokenization_spaces)&&(me=F(me)),me}get_chat_template({chat_template:S=null,tools:U=null}={}){if(this.chat_template&&typeof this.chat_template=="object"){let ee=this.chat_template;if(S!==null&&Object.hasOwn(ee,S))S=ee[S];else if(S===null)if(U!==null&&"tool_use"in ee)S=ee.tool_use;else if("default"in ee)S=ee.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(ee).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:U=null,documents:ee=null,chat_template:oe=null,add_generation_prompt:me=!1,tokenize:Te=!0,padding:He=!1,truncation:Xe=!1,max_length:Je=null,return_tensor:We=!0,return_dict:It=!1,tokenizer_kwargs:bt={},...Kt}={}){if(oe=this.get_chat_template({chat_template:oe,tools:U}),typeof oe!="string")throw Error(`chat_template must be a string, but got ${typeof oe}`);let mr=this._compiled_template_cache.get(oe);mr===void 0&&(mr=new c.Template(oe),this._compiled_template_cache.set(oe,mr));let Zt=Object.create(null);for(let nr of Qs){let fr=this.getToken(nr);fr&&(Zt[nr]=fr)}let Ir=mr.render({messages:S,add_generation_prompt:me,tools:U,documents:ee,...Zt,...Kt});if(Te){let nr=this._call(Ir,{add_special_tokens:!1,padding:He,truncation:Xe,max_length:Je,return_tensor:We,...bt});return It?nr:nr.input_ids}return Ir}}class Es extends _t{return_token_type_ids=!0}class ks extends _t{return_token_type_ids=!0}class ct extends _t{return_token_type_ids=!0}class Cs extends _t{return_token_type_ids=!0}class k extends _t{return_token_type_ids=!0}class X extends _t{return_token_type_ids=!0}class N extends _t{return_token_type_ids=!0}class Y extends _t{return_token_type_ids=!0}class se extends _t{return_token_type_ids=!0}class he extends _t{}class ke extends _t{}class Ze extends _t{return_token_type_ids=!0;constructor(S,U){super(S,U),console.warn('WARNING: `XLMTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.')}}class dt extends _t{return_token_type_ids=!0}class qe extends _t{}class Ct extends _t{}class St extends _t{}class ur extends _t{constructor(S,U){super(S,U),this.languageRegex=/^[a-z]{2}_[A-Z]{2}$/,this.language_codes=this.special_tokens.filter(ee=>this.languageRegex.test(ee)),this.lang_to_token=ee=>ee}_build_translation_inputs(S,U,ee){return Fr(this,S,U,ee)}}class Rt extends ur{}class jr extends _t{}class pr extends _t{}let Sr="\u2581";class Gt extends _t{padding_side="left";constructor(S,U){super(S,U),this.legacy=U.legacy??!0,this.legacy||(this.normalizer=null,this.pre_tokenizer=new Ot({replacement:Sr,add_prefix_space:!0,prepend_scheme:"first"}))}_encode_text(S){if(S===null)return null;if(this.legacy||S.length===0)return super._encode_text(S);let U=super._encode_text(Sr+S.replaceAll(Sr," "));return U.length>1&&U[0]===Sr&&this.special_tokens.includes(U[1])&&(U=U.slice(1)),U}}class os extends _t{}class Nr extends _t{}class Ss extends _t{}class yr extends _t{}class Fs extends _t{}class Is extends _t{}class Vr extends _t{}class Wr extends _t{}class Yr extends _t{}function Fr(ce,S,U,ee){if(!("language_codes"in ce)||!Array.isArray(ce.language_codes))throw new Error("Tokenizer must have `language_codes` attribute set and it should be an array of language ids.");if(!("languageRegex"in ce)||!(ce.languageRegex instanceof RegExp))throw new Error("Tokenizer must have `languageRegex` attribute set and it should be a regular expression.");if(!("lang_to_token"in ce)||typeof ce.lang_to_token!="function")throw new Error("Tokenizer must have `lang_to_token` attribute set and it should be a function.");let oe=ee.src_lang,me=ee.tgt_lang;if(!ce.language_codes.includes(me))throw new Error(`Target language code "${me}" is not valid. Must be one of: {${ce.language_codes.join(", ")}}`);if(oe!==void 0){if(!ce.language_codes.includes(oe))throw new Error(`Source language code "${oe}" is not valid. Must be one of: {${ce.language_codes.join(", ")}}`);for(let Te of ce.post_processor.config.single)if("SpecialToken"in Te&&ce.languageRegex.test(Te.SpecialToken.id)){Te.SpecialToken.id=ce.lang_to_token(oe);break}}return ee.forced_bos_token_id=ce.model.convert_tokens_to_ids([ce.lang_to_token(me)])[0],ce._call(S,U)}class cs extends _t{constructor(S,U){super(S,U),this.languageRegex=/^[a-z]{3}_[A-Z][a-z]{3}$/,this.language_codes=this.special_tokens.filter(ee=>this.languageRegex.test(ee)),this.lang_to_token=ee=>ee}_build_translation_inputs(S,U,ee){return Fr(this,S,U,ee)}}class lr extends _t{constructor(S,U){super(S,U),this.languageRegex=/^__[a-z]{2,3}__$/,this.language_codes=this.special_tokens.filter(ee=>this.languageRegex.test(ee)).map(ee=>ee.slice(2,-2)),this.lang_to_token=ee=>`__${ee}__`}_build_translation_inputs(S,U,ee){return Fr(this,S,U,ee)}}class _r extends _t{get timestamp_begin(){return this.model.convert_tokens_to_ids(["<|notimestamps|>"])[0]+1}_decode_asr(S,{return_timestamps:U=!1,return_language:ee=!1,time_precision:oe=null,force_full_sequences:me=!0}={}){if(oe===null)throw Error("Must specify time_precision");let Te=null,He=U==="word";function Xe(){return{language:Te,timestamp:[null,null],text:""}}let Je=[],We=Xe(),It=0,bt=this.timestamp_begin,mr=bt+1500,Zt=[],Ir=[],nr=!1,fr=null,Ar=new Set(this.all_special_ids);for(let Qt of S){let hr=Qt.tokens,Gr=He?Qt.token_timestamps:null,Or=null,ps=bt;if("stride"in Qt){let[ar,tr,cr]=Qt.stride;if(It-=tr,fr=ar-cr,tr&&(ps=tr/oe+bt),cr)for(let er=hr.length-1;er>=0;--er){let Kr=Number(hr[er]);if(Kr>=bt){if(Or!==null&&(Kr-bt)*oe<fr)break;Or=Kr}}}let Tr=[],ns=[];for(let ar=0;ar<hr.length;++ar){let tr=Number(hr[ar]);if(Ar.has(tr)){let cr=this.decode([tr]),er=p.WHISPER_LANGUAGE_MAPPING.get(cr.slice(2,-2));if(er!==void 0){if(Te!==null&&er!==Te&&!U){Zt.push(Tr);let Kr=this.findLongestCommonSequence(Zt)[0],Ns=this.decode(Kr);We.text=Ns,Je.push(We),Zt=[],Tr=[],We=Xe()}Te=We.language=er}}else if(tr>=bt&&tr<=mr){let cr=(tr-bt)*oe+It,er=(0,a.round)(cr,2);if(Or!==null&&tr>=Or)nr=!0;else if(nr||Zt.length>0&&tr<ps)nr=!1;else if(We.timestamp[0]===null)We.timestamp[0]=er;else if(er!==We.timestamp[0]){We.timestamp[1]=er,Zt.push(Tr),He&&Ir.push(ns);let[Kr,Ns]=this.findLongestCommonSequence(Zt,Ir),Jo=this.decode(Kr);We.text=Jo,He&&(We.words=this.collateWordTimestamps(Kr,Ns,Te)),Je.push(We),Zt=[],Tr=[],Ir=[],ns=[],We=Xe()}}else if(Tr.push(tr),He){let cr=(0,a.round)(Gr[ar]+It,2),er;if(ar+1<Gr.length){er=(0,a.round)(Gr[ar+1]+It,2);let Kr=this.decode([tr]);g.test(Kr)&&(er=(0,a.round)(Math.min(cr+oe,er),2))}else er=null;ns.push([cr,er])}}if("stride"in Qt){let[ar,tr,cr]=Qt.stride;It+=ar-cr}Tr.length>0?(Zt.push(Tr),He&&Ir.push(ns)):Zt.every(ar=>ar.length===0)&&(We=Xe(),Zt=[],Tr=[],Ir=[],ns=[])}if(Zt.length>0){if(me&&U)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[Qt,hr]=this.findLongestCommonSequence(Zt,Ir),Gr=this.decode(Qt);We.text=Gr,He&&(We.words=this.collateWordTimestamps(Qt,hr,Te)),Je.push(We)}let $r=Object.create(null),Qr=Je.map(Qt=>Qt.text).join("");if(U||ee){for(let Qt=0;Qt<Je.length;++Qt){let hr=Je[Qt];U||delete hr.timestamp,ee||delete hr.language}if(He){let Qt=[];for(let hr of Je)for(let Gr of hr.words)Qt.push(Gr);$r={chunks:Qt}}else $r={chunks:Je}}return[Qr,$r]}findLongestCommonSequence(S,U=null){let ee=S[0],oe=ee.length,me=[],Te=Array.isArray(U)&&U.length>0,He=Te?[]:null,Xe=Te?U[0]:null;for(let Je=1;Je<S.length;++Je){let We=S[Je],It=0,bt=[oe,oe,0,0],Kt=We.length;for(let $r=1;$r<oe+Kt;++$r){let Qr=Math.max(0,oe-$r),Qt=Math.min(oe,oe+Kt-$r),hr=ee.slice(Qr,Qt),Gr=Math.max(0,$r-oe),Or=Math.min(Kt,$r),ps=We.slice(Gr,Or);if(hr.length!==ps.length)throw new Error("There is a bug within whisper `decode_asr` function, please report it. Dropping to prevent bad inference.");let Tr;Te?Tr=hr.filter((tr,cr)=>tr===ps[cr]&&Xe[Qr+cr]<=U[Je][Gr+cr]).length:Tr=hr.filter((tr,cr)=>tr===ps[cr]).length;let ns=$r/1e4,ar=Tr/$r+ns;Tr>1&&ar>It&&(It=ar,bt=[Qr,Qt,Gr,Or])}let[mr,Zt,Ir,nr]=bt,fr=Math.floor((Zt+mr)/2),Ar=Math.floor((nr+Ir)/2);me.push(...ee.slice(0,fr)),ee=We.slice(Ar),oe=ee.length,Te&&(He.push(...Xe.slice(0,fr)),Xe=U[Je].slice(Ar))}return me.push(...ee),Te?(He.push(...Xe),[me,He]):[me,[]]}collateWordTimestamps(S,U,ee){let[oe,me,Te]=this.combineTokensIntoWords(S,ee),He=[];for(let Xe=0;Xe<oe.length;++Xe){let Je=Te[Xe];He.push({text:oe[Xe],timestamp:[U[Je.at(0)][0],U[Je.at(-1)][1]]})}return He}combineTokensIntoWords(S,U,ee=`"'\u201C\xA1\xBF([{-`,oe=`"'.\u3002,\uFF0C!\uFF01?\uFF1F:\uFF1A\u201D)]}\u3001`){U=U??"english";let me,Te,He;return["chinese","japanese","thai","lao","myanmar"].includes(U)?[me,Te,He]=this.splitTokensOnUnicode(S):[me,Te,He]=this.splitTokensOnSpaces(S),this.mergePunctuations(me,Te,He,ee,oe)}decode(S,U){let ee;return U?.decode_with_timestamps?(S instanceof i.Tensor&&(S=v(S)),ee=this.decodeWithTimestamps(S,U)):ee=super.decode(S,U),ee}decodeWithTimestamps(S,U){let ee=U?.time_precision??.02,oe=Array.from(this.all_special_ids).at(-1)+1,me=[[]];for(let Te of S)if(Te=Number(Te),Te>=oe){let He=((Te-oe)*ee).toFixed(2);me.push(`<|${He}|>`),me.push([])}else me[me.length-1].push(Te);return me=me.map(Te=>typeof Te=="string"?Te:super.decode(Te,U)),me.join("")}splitTokensOnUnicode(S){let U=this.decode(S,{decode_with_timestamps:!0}),ee="\uFFFD",oe=[],me=[],Te=[],He=[],Xe=[],Je=0;for(let We=0;We<S.length;++We){let It=S[We];He.push(It),Xe.push(We);let bt=this.decode(He,{decode_with_timestamps:!0});(!bt.includes(ee)||U[Je+bt.indexOf(ee)]===ee)&&(oe.push(bt),me.push(He),Te.push(Xe),He=[],Xe=[],Je+=bt.length)}return[oe,me,Te]}splitTokensOnSpaces(S){let[U,ee,oe]=this.splitTokensOnUnicode(S),me=[],Te=[],He=[],Xe=new RegExp(`^[${I}]$`,"gu");for(let Je=0;Je<U.length;++Je){let We=U[Je],It=ee[Je],bt=oe[Je],Kt=It[0]>=this.model.tokens_to_ids.get("<|endoftext|>"),mr=We.startsWith(" "),Zt=We.trim(),Ir=Xe.test(Zt);if(Kt||mr||Ir||me.length===0)me.push(We),Te.push(It),He.push(bt);else{let nr=me.length-1;me[nr]+=We,Te[nr].push(...It),He[nr].push(...bt)}}return[me,Te,He]}mergePunctuations(S,U,ee,oe,me){let Te=structuredClone(S),He=structuredClone(U),Xe=structuredClone(ee),Je=Te.length-2,We=Te.length-1;for(;Je>=0;)Te[Je].startsWith(" ")&&oe.includes(Te[Je].trim())?(Te[We]=Te[Je]+Te[We],He[We]=(0,o.mergeArrays)(He[Je],He[We]),Xe[We]=(0,o.mergeArrays)(Xe[Je],Xe[We]),Te[Je]="",He[Je]=[],Xe[Je]=[]):We=Je,--Je;for(Je=0,We=1;We<Te.length;)!Te[Je].endsWith(" ")&&me.includes(Te[We])?(Te[Je]+=Te[We],He[Je]=(0,o.mergeArrays)(He[Je],He[We]),Xe[Je]=(0,o.mergeArrays)(Xe[Je],Xe[We]),Te[We]="",He[We]=[],Xe[We]=[]):Je=We,++We;return[Te.filter(It=>It),He.filter(It=>It.length>0),Xe.filter(It=>It.length>0)]}}class Hr extends _t{}class zs extends _t{}class Ur extends _t{}class Le extends _t{constructor(S,U){super(S,U),this.languageRegex=/^(>>\w+<<)\s*/g,this.supported_language_codes=this.model.vocab.filter(ee=>this.languageRegex.test(ee)),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[U,...ee]=S.trim().split(this.languageRegex);if(ee.length===0)return super._encode_text(U);if(ee.length===2){let[oe,me]=ee;return this.supported_language_codes.includes(oe)||console.warn(`Unsupported language code "${oe}" detected, which may lead to unexpected behavior. Should be one of: ${JSON.stringify(this.supported_language_codes)}`),(0,o.mergeArrays)([oe],super._encode_text(me))}}}class Re extends _t{}class tt extends _t{}class Jt extends _t{}class Rs extends _t{}class ds extends _t{}class js extends _t{constructor(S,U){super(S,U),this.decoder=new yt({})}}class us extends _t{}class po extends _t{}class _o extends _t{}class Xo{static TOKENIZER_CLASS_MAPPING={T5Tokenizer:qe,DistilBertTokenizer:he,CamembertTokenizer:ke,DebertaTokenizer:k,DebertaV2Tokenizer:X,BertTokenizer:Es,HerbertTokenizer:N,ConvBertTokenizer:Y,RoFormerTokenizer:se,XLMTokenizer:Ze,ElectraTokenizer:dt,MobileBertTokenizer:ct,SqueezeBertTokenizer:Cs,AlbertTokenizer:ks,GPT2Tokenizer:Ct,BartTokenizer:St,MBartTokenizer:ur,MBart50Tokenizer:Rt,RobertaTokenizer:jr,WhisperTokenizer:_r,CodeGenTokenizer:Hr,CLIPTokenizer:zs,SiglipTokenizer:Ur,MarianTokenizer:Le,BloomTokenizer:pr,NllbTokenizer:cs,M2M100Tokenizer:lr,LlamaTokenizer:Gt,CodeLlamaTokenizer:os,XLMRobertaTokenizer:Nr,MPNetTokenizer:Ss,FalconTokenizer:yr,GPTNeoXTokenizer:Fs,EsmTokenizer:Is,Wav2Vec2CTCTokenizer:Re,BlenderbotTokenizer:tt,BlenderbotSmallTokenizer:Jt,SpeechT5Tokenizer:Rs,NougatTokenizer:ds,VitsTokenizer:js,Qwen2Tokenizer:Vr,GemmaTokenizer:Wr,Grok1Tokenizer:Yr,CohereTokenizer:us,MgpstrTokenizer:po,Ernie4_5_Tokenizer:_o,PreTrainedTokenizer:_t};static async from_pretrained(S,{progress_callback:U=null,config:ee=null,cache_dir:oe=null,local_files_only:me=!1,revision:Te="main",legacy:He=null}={}){let[Xe,Je]=await u(S,{progress_callback:U,config:ee,cache_dir:oe,local_files_only:me,revision:Te,legacy:He}),We=Je.tokenizer_class?.replace(/Fast$/,"")??"PreTrainedTokenizer",It=this.TOKENIZER_CLASS_MAPPING[We];return It||(console.warn(`Unknown tokenizer class "${We}", attempting to construct from base class.`),It=_t),new It(Xe,Je)}}},"./src/utils/audio.js":(e,r,t)=>{t.r(r),t.d(r,{RawAudio:()=>q,hamming:()=>d,hanning:()=>u,mel_filter_bank:()=>C,read_audio:()=>c,spectrogram:()=>E,window_function:()=>$});var s=t("./src/utils/hub.js"),o=t("./src/utils/maths.js"),n=t("./src/utils/core.js"),a=t("./src/env.js"),i=t("./src/utils/tensor.js"),l=t("?7992");async function c(O,J){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 Q=await(await(0,s.getFile)(O)).arrayBuffer(),H=new AudioContext({sampleRate:J});typeof J>"u"&&console.warn(`No sampling rate provided, using default of ${H.sampleRate}Hz.`);let te=await H.decodeAudioData(Q),re;if(te.numberOfChannels===2){let le=Math.sqrt(2),be=te.getChannelData(0),z=te.getChannelData(1);re=new Float32Array(be.length);for(let D=0;D<te.length;++D)re[D]=le*(be[D]+z[D])/2}else re=te.getChannelData(0);return re}function p(O,J){if(O<1)return new Float64Array;if(O===1)return new Float64Array([1]);let Q=1-J,H=2*Math.PI/(O-1),te=new Float64Array(O);for(let re=0;re<O;++re)te[re]=J-Q*Math.cos(re*H);return te}function u(O){return p(O,.5)}function d(O){return p(O,.54)}let h={htk:O=>2595*Math.log10(1+O/700),kaldi:O=>1127*Math.log(1+O/700),slaney:(O,J=1e3,Q=15,H=27/Math.log(6.4))=>O>=J?Q+Math.log(O/J)*H:3*O/200};function f(O,J="htk"){let Q=h[J];if(!Q)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return typeof O=="number"?Q(O):O.map(H=>Q(H))}let v={htk:O=>700*(10**(O/2595)-1),kaldi:O=>700*(Math.exp(O/1127)-1),slaney:(O,J=1e3,Q=15,H=Math.log(6.4)/27)=>O>=Q?J*Math.exp(H*(O-Q)):200*O/3};function F(O,J="htk"){let Q=v[J];if(!Q)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return typeof O=="number"?Q(O):O.map(H=>Q(H))}function x(O,J){let Q=Float64Array.from({length:J.length-1},(le,be)=>J[be+1]-J[be]),H=Array.from({length:O.length},()=>new Array(J.length));for(let le=0;le<O.length;++le){let be=H[le];for(let z=0;z<J.length;++z)be[z]=J[z]-O[le]}let te=J.length-2,re=Array.from({length:te},()=>new Array(O.length));for(let le=0;le<O.length;++le){let be=H[le];for(let z=0;z<te;++z){let D=-be[z]/Q[z],K=be[z+2]/Q[z+1];re[z][le]=Math.max(0,Math.min(D,K))}}return re}function w(O,J,Q){let H=(J-O)/(Q-1);return Float64Array.from({length:Q},(te,re)=>O+H*re)}function C(O,J,Q,H,te,re=null,le="htk",be=!1){if(re!==null&&re!=="slaney")throw new Error('norm must be one of null or "slaney"');if(O<2)throw new Error(`Require num_frequency_bins: ${O} >= 2`);if(Q>H)throw new Error(`Require min_frequency: ${Q} <= max_frequency: ${H}`);let z=f(Q,le),D=f(H,le),K=w(z,D,J+2),R=F(K,le),ne;if(be){let Me=te/((O-1)*2);ne=f(Float64Array.from({length:O},(Ie,Ke)=>Ke*Me),le),R=K}else ne=w(0,Math.floor(te/2),O);let Ce=x(ne,R);if(re!==null&&re==="slaney")for(let Me=0;Me<J;++Me){let Ie=Ce[Me],Ke=2/(R[Me+2]-R[Me]);for(let et=0;et<O;++et)Ie[et]*=Ke}return Ce}function y(O,J,Q){let H=new O.constructor(O.length+J+Q),te=O.length-1;for(let re=0;re<O.length;++re)H[J+re]=O[re];for(let re=1;re<=J;++re)H[J-re]=O[(0,n.calculateReflectOffset)(re,te)];for(let re=1;re<=Q;++re)H[te+J+re]=O[(0,n.calculateReflectOffset)(te-re,te)];return H}function P(O,J,Q,H,te){if(Q<=0)throw new Error("reference must be greater than zero");if(H<=0)throw new Error("min_value must be greater than zero");Q=Math.max(H,Q);let re=Math.log10(Q);for(let le=0;le<O.length;++le)O[le]=J*Math.log10(Math.max(H,O[le])-re);if(te!==null){if(te<=0)throw new Error("db_range must be greater than zero");let le=(0,o.max)(O)[0]-te;for(let be=0;be<O.length;++be)O[be]=Math.max(O[be],le)}return O}function I(O,J=1,Q=1e-5,H=null){return P(O,20,J,Q,H)}function g(O,J=1,Q=1e-10,H=null){return P(O,10,J,Q,H)}async function E(O,J,Q,H,{fft_length:te=null,power:re=1,center:le=!0,pad_mode:be="reflect",onesided:z=!0,preemphasis:D=null,preemphasis_htk_flavor:K=!0,mel_filters:R=null,mel_floor:ne=1e-10,log_mel:Ce=null,reference:Me=1,min_value:Ie=1e-10,db_range:Ke=null,remove_dc_offset:et=null,min_num_frames:_e=null,max_num_frames:Z=null,do_pad:V=!0,transpose:fe=!1}={}){let Se=J.length;if(te===null&&(te=Q),Q>te)throw Error(`frame_length (${Q}) may not be larger than fft_length (${te})`);if(Se!==Q)throw new Error(`Length of the window (${Se}) must equal frame_length (${Q})`);if(H<=0)throw new Error("hop_length must be greater than zero");if(re===null&&R!==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(!K)throw new Error("`preemphasis_htk_flavor=false` is not currently supported.");if(le){if(be!=="reflect")throw new Error(`pad_mode="${be}" not implemented yet.`);let De=Math.floor((te-1)/2)+1;O=y(O,De,De)}let Pe=Math.floor(1+Math.floor((O.length-Q)/H));_e!==null&&Pe<_e&&(Pe=_e);let pe=z?Math.floor(te/2)+1:te,xe=Pe,de=Pe;Z!==null&&(Z>Pe?V&&(de=Z):de=xe=Z);let Ae=new o.FFT(te),$e=new Float64Array(te),Ue=new Float64Array(Ae.outputBufferSize),Ee=new Float32Array(pe*de);for(let De=0;De<xe;++De){let ot=De*H,lt=Math.min(O.length-ot,Q);lt!==Q&&$e.fill(0,0,Q);for(let rt=0;rt<lt;++rt)$e[rt]=O[ot+rt];if(et){let rt=0;for(let ft=0;ft<lt;++ft)rt+=$e[ft];let Ye=rt/lt;for(let ft=0;ft<lt;++ft)$e[ft]-=Ye}if(D!==null){for(let rt=lt-1;rt>=1;--rt)$e[rt]-=D*$e[rt-1];$e[0]*=1-D}for(let rt=0;rt<J.length;++rt)$e[rt]*=J[rt];Ae.realTransform(Ue,$e);for(let rt=0;rt<pe;++rt){let Ye=rt<<1;Ee[rt*de+De]=Ue[Ye]**2+Ue[Ye+1]**2}}if(re!==null&&re!==2){let De=re/2;for(let ot=0;ot<Ee.length;++ot)Ee[ot]**=De}let je=R.length,Ge=await(0,i.matmul)(new i.Tensor("float32",R.flat(),[je,pe]),new i.Tensor("float32",Ee,[pe,de]));fe&&(Ge=Ge.transpose(1,0));let Ve=Ge.data;for(let De=0;De<Ve.length;++De)Ve[De]=Math.max(ne,Ve[De]);if(re!==null&&Ce!==null){let De=Math.min(Ve.length,xe*je);switch(Ce){case"log":for(let ot=0;ot<De;++ot)Ve[ot]=Math.log(Ve[ot]);break;case"log10":for(let ot=0;ot<De;++ot)Ve[ot]=Math.log10(Ve[ot]);break;case"dB":if(re===1)I(Ve,Me,Ie,Ke);else if(re===2)g(Ve,Me,Ie,Ke);else throw new Error(`Cannot use log_mel option '${Ce}' with power ${re}`);break;default:throw new Error(`log_mel must be one of null, 'log', 'log10' or 'dB'. Got '${Ce}'`)}}return Ge}function $(O,J,{periodic:Q=!0,frame_length:H=null,center:te=!0}={}){let re=Q?O+1:O,le;switch(J){case"boxcar":le=new Float64Array(re).fill(1);break;case"hann":case"hann_window":le=u(re);break;case"hamming":le=d(re);break;case"povey":le=u(re).map(be=>Math.pow(be,.85));break;default:throw new Error(`Unknown window type ${J}.`)}if(Q&&(le=le.subarray(0,O)),H===null)return le;if(O>H)throw new Error(`Length of the window (${O}) may not be larger than frame_length (${H})`);return le}function L(O,J){let Q=44,H=new ArrayBuffer(Q+O.length*4),te=new DataView(H);G(te,0,"RIFF"),te.setUint32(4,36+O.length*4,!0),G(te,8,"WAVE"),G(te,12,"fmt "),te.setUint32(16,16,!0),te.setUint16(20,3,!0),te.setUint16(22,1,!0),te.setUint32(24,J,!0),te.setUint32(28,J*4,!0),te.setUint16(32,4,!0),te.setUint16(34,32,!0),G(te,36,"data"),te.setUint32(40,O.length*4,!0);for(let re=0;re<O.length;++re,Q+=4)te.setFloat32(Q,O[re],!0);return H}function G(O,J,Q){for(let H=0;H<Q.length;++H)O.setUint8(J+H,Q.charCodeAt(H))}class q{constructor(J,Q){this.audio=J,this.sampling_rate=Q}toWav(){return L(this.audio,this.sampling_rate)}toBlob(){let J=this.toWav();return new Blob([J],{type:"audio/wav"})}async save(J){let Q;if(a.apis.IS_BROWSER_ENV){if(a.apis.IS_WEBWORKER_ENV)throw new Error("Unable to save a file from a Web Worker.");Q=n.saveBlob}else if(a.apis.IS_FS_AVAILABLE)Q=async(H,te)=>{let re=await te.arrayBuffer();l.writeFileSync(H,Buffer.from(re))};else throw new Error("Unable to save because filesystem is disabled in this environment.");await Q(J,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:()=>n,GENERATION_CONFIG_NAME:()=>c,GITHUB_ISSUE_URL:()=>s,IMAGE_PROCESSOR_NAME:()=>a,PROCESSOR_NAME:()=>i});let s="https://github.com/huggingface/transformers.js/issues/new/choose",o="config.json",n="preprocessor_config.json",a=n,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:()=>h,count:()=>x,dispatchCallback:()=>s,escapeRegExp:()=>n,isIntegralNumber:()=>i,isNullishDimension:()=>l,isTypedArray:()=>a,len:()=>F,mergeArrays:()=>u,pick:()=>v,pop:()=>p,product:()=>d,reverseDictionary:()=>o,saveBlob:()=>f});function s(w,C){w&&w(C)}function o(w){return Object.fromEntries(Object.entries(w).map(([C,y])=>[y,C]))}function n(w){return w.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function a(w){return w?.prototype?.__proto__?.constructor?.name==="TypedArray"}function i(w){return Number.isInteger(w)||typeof w=="bigint"}function l(w){return w==null||w===-1}function c(w){let C=[],y=w;for(;Array.isArray(y);)C.push(y.length),y=y[0];return C}function p(w,C,y=void 0){let P=w[C];if(P!==void 0)return delete w[C],P;if(y===void 0)throw Error(`Key ${C} does not exist in object.`);return y}function u(...w){return Array.prototype.concat.apply([],w)}function d(...w){return w.reduce((C,y)=>C.flatMap(P=>y.map(I=>[P,I])))}function h(w,C){return Math.abs((w+C)%(2*C)-C)}function f(w,C){let y=URL.createObjectURL(C),P=document.createElement("a");P.href=y,P.download=w,P.click(),P.remove(),URL.revokeObjectURL(y)}function v(w,C){return Object.assign({},...C.map(y=>{if(w[y]!==void 0)return{[y]:w[y]}}))}function F(w){let C=0;for(let y of w)++C;return C}function x(w,C){let y=0;for(let P of w)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:()=>a});class s{constructor(u=(h,f)=>h>f,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 h=this._smallest();this._comparator(d,this._heap[h])&&(this._heap[h]=d,this._siftUpFrom(h))}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 h=this._heap[u];this._heap[u]=this._heap[d],this._heap[d]=h}_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=n.default()}extend(u){for(let d of u)this.push(d)}push(u){let d=this.root;for(let h of u){let f=d.children.get(h);f===void 0&&(f=n.default(),d.children.set(h,f)),d=f}d.isLeaf=!0}*commonPrefixSearch(u){let d=this.root;if(d===void 0)return;let h="";for(let f of u){if(h+=f,d=d.children.get(f),d===void 0)return;d.isLeaf&&(yield h)}}}class n{constructor(u,d){this.isLeaf=u,this.children=d}static default(){return new n(!1,new Map)}}class a{constructor(u,d,h){this.chars=Array.from(u),this.len=this.chars.length,this.bosTokenId=d,this.eosTokenId=h,this.nodes=[],this.beginNodes=Array.from({length:this.len+1},()=>[]),this.endNodes=Array.from({length:this.len+1},()=>[]);let f=new i(this.bosTokenId,0,0,0,0),v=new i(this.eosTokenId,1,this.len,0,0);this.nodes.push(f.clone()),this.nodes.push(v.clone()),this.beginNodes[this.len].push(v),this.endNodes[0].push(f)}insert(u,d,h,f){let v=this.nodes.length,F=new i(f,v,u,d,h);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 x of this.beginNodes[d]){x.prev=null;let w=0,C=null;for(let y of this.endNodes[d]){let P=y.backtraceScore+x.score;(C===null||P>w)&&(C=y.clone(),w=P)}if(C!==null)x.prev=C,x.backtraceScore=w;else return[]}++d}let h=[],v=this.beginNodes[u][0].prev;if(v===null)return[];let F=v.clone();for(;F.prev!==null;)h.push(F.clone()),F=F.clone().prev.clone();return h.reverse(),h}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,h,f,v){this.tokenId=u,this.nodeId=d,this.pos=h,this.length=f,this.score=v,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 h of u){let f=d;for(let v=0;v<h.length;++v)f=f[h[v]]??=Object.create(null);f.end=h}return d}split(u){let d=[],h=u.length,f=0,v=0;for(;v<h;){let F=this.trie,x=null,w=v;for(;w<h&&(F=F[u[w]]);)F.end&&(x=F.end),++w;x?(v>f&&d.push(u.slice(f,v)),d.push(x),v+=x.length,f=v):++v}return f<h&&d.push(u.slice(f)),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:()=>a,DEFAULT_DEVICE_DTYPE_MAPPING:()=>i,DEFAULT_DTYPE_SUFFIX_MAPPING:()=>l,isWebGpuFp16Supported:()=>n});var s=t("./src/env.js"),o=t("./src/utils/devices.js");let n=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}}(),a=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]:a.q8}),l=Object.freeze({[a.fp32]:"",[a.fp16]:"_fp16",[a.int8]:"_int8",[a.uint8]:"_uint8",[a.q8]:"_quantized",[a.q4]:"_q4",[a.q4f16]:"_q4f16",[a.bnb4]:"_bnb4"})},"./src/utils/generic.js":(e,r,t)=>{t.r(r),t.d(r,{Callable:()=>s});let s=class{constructor(){let o=function(...n){return o._call(...n)};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:()=>h,getModelFile:()=>w,getModelJSON:()=>y,getModelText:()=>C});var s=t("?7992"),o=t("?5af5"),n=t("./src/env.js"),a=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 $=s.statSync(E);this.headers.set("content-length",$.size.toString()),this.updateContentType();let L=s.createReadStream(E);this.body=new ReadableStream({start(G){L.on("data",q=>G.enqueue(q)),L.on("end",()=>G.close()),L.on("error",q=>G.error(q))},cancel(){L.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 p(g,E=null,$=null){let L;try{L=new URL(g)}catch{return!1}return!(E&&!E.includes(L.protocol)||$&&!$.includes(L.hostname))}let u=/^(\b[\w\-.]+\b\/)?\b[\w\-.]{1,96}\b$/;function d(g){return!(!u.test(g)||g.includes("..")||g.includes("--")||g.endsWith(".git")||g.endsWith(".ipynb"))}async function h(g){if(n.env.useFS&&!p(g,["http:","https:","blob:"]))return new c(g instanceof URL?g.protocol==="file:"?g.pathname:g.toString():g);if(typeof process<"u"&&process?.release?.name==="node"){let E=!!process.env?.TESTING_REMOTELY,$=n.env.version,L=new Headers;if(L.set("User-Agent",`transformers.js/${$}; is_ci/${E};`),p(g,["http:","https:"],["huggingface.co","hf.co"])){let q=process.env?.HF_TOKEN??process.env?.HF_ACCESS_TOKEN;q&&L.set("Authorization",`Bearer ${q}`)}return fetch(g,{headers:L})}else return fetch(g)}let f={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 v(g,E,$){if(!$)return null;let L=f[g]??`Error (${g}) occurred while trying to load file`;throw Error(`${L}: "${E}".`)}class F{constructor(E){this.path=E}async match(E){let $=o.join(this.path,E),L=new c($);if(L.exists)return L}async put(E,$,L=void 0){let G=o.join(this.path,E);try{let q=$.headers.get("Content-Length"),O=parseInt(q??"0"),J=0;await s.promises.mkdir(o.dirname(G),{recursive:!0});let Q=s.createWriteStream(G),H=$.body.getReader();for(;;){let{done:te,value:re}=await H.read();if(te)break;await new Promise((be,z)=>{Q.write(re,D=>{if(D){z(D);return}be()})}),J+=re.length;let le=O?J/O*100:0;L?.({progress:le,loaded:J,total:O})}Q.close()}catch(q){try{await s.promises.unlink(G)}catch{}throw q}}}async function x(g,...E){for(let $ of E)try{let L=await g.match($);if(L)return L}catch{continue}}async function w(g,E,$=!0,L={},G=!1){if(!n.env.allowLocalModels){if(L.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(!n.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,a.dispatchCallback)(L.progress_callback,{status:"initiate",name:g,file:E});let q;if(!q&&n.env.useCustomCache){if(!n.env.customCache)throw Error("`env.useCustomCache=true`, but `env.customCache` is not defined.");if(!n.env.customCache.match||!n.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");q=n.env.customCache}if(!q&&n.env.useBrowserCache){if(typeof caches>"u")throw Error("Browser cache is not available in this environment.");try{q=await caches.open("transformers-cache")}catch(ne){console.warn("An error occurred while opening the browser cache:",ne)}}if(!q&&n.env.useFSCache){if(!n.apis.IS_FS_AVAILABLE)throw Error("File System Cache is not available in this environment.");q=new F(L.cache_dir??n.env.cacheDir)}let O=L.revision??"main",J=I(g,E),Q=d(g),H=Q?I(n.env.localModelPath,J):J,te=I(n.env.remoteHost,n.env.remotePathTemplate.replaceAll("{model}",g).replaceAll("{revision}",encodeURIComponent(O)),E),re,le=q instanceof F?O==="main"?J:I(g,O,E):te,be=!1,z;q&&(z=await x(q,H,le));let D=z!==void 0;if(z===void 0){if(n.env.allowLocalModels)if(p(J,["http:","https:"])){if(L.local_files_only)throw new Error(`\`local_files_only=true\`, but attempted to load a remote file from: ${J}.`);if(!n.env.allowRemoteModels)throw new Error(`\`env.allowRemoteModels=false\`, but attempted to load a remote file from: ${J}.`)}else try{z=await h(H),re=H}catch(Ce){console.warn(`Unable to load from local path "${H}": "${Ce}"`)}if(z===void 0||z.status===404){if(L.local_files_only||!n.env.allowRemoteModels){if($)throw Error(`\`local_files_only=true\` or \`env.allowRemoteModels=false\` and file was not found locally at "${H}".`);return null}if(!Q)throw Error(`Local file missing at "${H}" and download aborted due to invalid model ID "${g}".`);if(z=await h(te),z.status!==200)return v(z.status,te,$);re=le}be=q&&typeof Response<"u"&&z instanceof Response&&z.status===200}(0,a.dispatchCallback)(L.progress_callback,{status:"download",name:g,file:E});let K;if(!(n.apis.IS_NODE_ENV&&G)){let ne;L.progress_callback?D&&typeof navigator<"u"&&/firefox/i.test(navigator.userAgent)?(ne=new Uint8Array(await z.arrayBuffer()),(0,a.dispatchCallback)(L.progress_callback,{status:"progress",name:g,file:E,progress:100,loaded:ne.length,total:ne.length})):ne=await P(z,Ce=>{(0,a.dispatchCallback)(L.progress_callback,{status:"progress",name:g,file:E,...Ce})}):ne=new Uint8Array(await z.arrayBuffer()),K=ne}if(be&&re&&await q.match(re)===void 0&&(K?await q.put(re,new Response(K,{headers:z.headers})).catch(ne=>{console.warn(`Unable to add response to browser cache: ${ne}.`)}):await q.put(re,z,L.progress_callback)),(0,a.dispatchCallback)(L.progress_callback,{status:"done",name:g,file:E}),K){if(!n.apis.IS_NODE_ENV&&G)throw new Error("Cannot return path in a browser environment.");return K}if(z instanceof c)return z.filePath;let R=await q?.match(re);if(R instanceof c)return R.filePath;if(R instanceof Response)return new Uint8Array(await R.arrayBuffer());if(typeof R=="string")return R;throw new Error("Unable to get model file path or buffer.")}async function C(g,E,$=!0,L={}){let G=await w(g,E,$,L,!1);return G===null?null:new TextDecoder("utf-8").decode(G)}async function y(g,E,$=!0,L={}){let G=await C(g,E,$,L);return G===null?{}:JSON.parse(G)}async function P(g,E){let $=g.headers.get("Content-Length");$===null&&console.warn("Unable to determine content-length from response headers. Will expand buffer when needed.");let L=parseInt($??"0"),G=new Uint8Array(L),q=0,O=g.body.getReader();async function J(){let{done:Q,value:H}=await O.read();if(Q)return;let te=q+H.length;if(te>L){L=te;let le=new Uint8Array(L);le.set(G),G=le}G.set(H,q),q=te;let re=q/L*100;return E({progress:re,loaded:q,total:L}),J()}return await J(),G}function I(...g){return g=g.map((E,$)=>($&&(E=E.replace(new RegExp("^/"),"")),$!==g.length-1&&(E=E.replace(new RegExp("/$"),"")),E)),g.join("/")}},"./src/utils/image.js":(e,r,t)=>{t.r(r),t.d(r,{RawImage:()=>f,load_image:()=>v});var s=t("./src/utils/core.js"),o=t("./src/utils/hub.js"),n=t("./src/env.js"),a=t("./src/utils/tensor.js"),i=t("?2b25");let l,c,p,u=n.apis.IS_BROWSER_ENV||n.apis.IS_WEBWORKER_ENV;if(u)l=(F,x)=>{if(!self.OffscreenCanvas)throw new Error("OffscreenCanvas not supported by this browser.");return new self.OffscreenCanvas(F,x)},p=self.createImageBitmap,c=self.ImageData;else if(i)p=async F=>{let w=(await F.metadata()).channels,{data:C,info:y}=await F.rotate().raw().toBuffer({resolveWithObject:!0}),P=new f(new Uint8ClampedArray(C),y.width,y.height,y.channels);return w!==void 0&&w!==y.channels&&P.convert(w),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"},h=new Map([["png","image/png"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["gif","image/gif"]]);class f{constructor(x,w,C,y){this.data=x,this.width=w,this.height=C,this.channels=y}get size(){return[this.width,this.height]}static async read(x){if(x instanceof f)return x;if(typeof x=="string"||x instanceof URL)return await this.fromURL(x);if(x instanceof Blob)return await this.fromBlob(x);if(typeof HTMLCanvasElement<"u"&&x instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&x instanceof OffscreenCanvas)return this.fromCanvas(x);throw new Error(`Unsupported input type: ${typeof x}`)}static fromCanvas(x){if(!u)throw new Error("fromCanvas() is only supported in browser environments.");let C=x.getContext("2d").getImageData(0,0,x.width,x.height).data;return new f(C,x.width,x.height,4)}static async fromURL(x){let w=await(0,o.getFile)(x);if(w.status!==200)throw new Error(`Unable to read image from "${x}" (${w.status} ${w.statusText})`);let C=await w.blob();return this.fromBlob(C)}static async fromBlob(x){if(u){let w=await p(x),C=l(w.width,w.height).getContext("2d");return C.drawImage(w,0,0),new this(C.getImageData(0,0,w.width,w.height).data,w.width,w.height,4)}else{let w=i(await x.arrayBuffer());return await p(w)}}static fromTensor(x,w="CHW"){if(x.dims.length!==3)throw new Error(`Tensor should have 3 dimensions, but has ${x.dims.length} dimensions.`);if(w==="CHW")x=x.transpose(1,2,0);else if(w!=="HWC")throw new Error(`Unsupported channel format: ${w}`);if(!(x.data instanceof Uint8ClampedArray||x.data instanceof Uint8Array))throw new Error(`Unsupported tensor type: ${x.type}`);switch(x.dims[2]){case 1:case 2:case 3:case 4:return new f(x.data,x.dims[1],x.dims[0],x.dims[2]);default:throw new Error(`Unsupported number of channels: ${x.dims[2]}`)}}grayscale(){if(this.channels===1)return this;let x=new Uint8ClampedArray(this.width*this.height*1);switch(this.channels){case 3:case 4:for(let w=0,C=0;w<this.data.length;w+=this.channels){let y=this.data[w],P=this.data[w+1],I=this.data[w+2];x[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(x,this.width,this.height,1)}rgb(){if(this.channels===3)return this;let x=new Uint8ClampedArray(this.width*this.height*3);switch(this.channels){case 1:for(let w=0,C=0;w<this.data.length;++w)x[C++]=this.data[w],x[C++]=this.data[w],x[C++]=this.data[w];break;case 4:for(let w=0,C=0;w<this.data.length;w+=4)x[C++]=this.data[w],x[C++]=this.data[w+1],x[C++]=this.data[w+2];break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(x,this.width,this.height,3)}rgba(){if(this.channels===4)return this;let x=new Uint8ClampedArray(this.width*this.height*4);switch(this.channels){case 1:for(let w=0,C=0;w<this.data.length;++w)x[C++]=this.data[w],x[C++]=this.data[w],x[C++]=this.data[w],x[C++]=255;break;case 3:for(let w=0,C=0;w<this.data.length;w+=3)x[C++]=this.data[w],x[C++]=this.data[w+1],x[C++]=this.data[w+2],x[C++]=255;break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(x,this.width,this.height,4)}putAlpha(x){if(x.width!==this.width||x.height!==this.height)throw new Error(`Expected mask size to be ${this.width}x${this.height}, but got ${x.width}x${x.height}`);if(x.channels!==1)throw new Error(`Expected mask to have 1 channel, but got ${x.channels}`);let w=this.data,C=x.data,y=this.width*this.height;if(this.channels===3){let P=new Uint8ClampedArray(y*4);for(let I=0,g=0,E=0;I<y;++I)P[E++]=w[g++],P[E++]=w[g++],P[E++]=w[g++],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)w[4*P+3]=C[P];return this}throw new Error(`Expected image to have 3 or 4 channels, but got ${this.channels}`)}async resize(x,w,{resample:C=2}={}){if(this.width===x&&this.height===w)return this;let y=d[C]??C,P=(0,s.isNullishDimension)(x),I=(0,s.isNullishDimension)(w);if(P&&I)return this;if(P?x=w/this.height*this.width:I&&(w=x/this.width*this.height),u){let g=this.channels,E=this.toCanvas(),$=l(x,w).getContext("2d");return $.drawImage(E,0,0,x,w),new f($.getImageData(0,0,x,w).data,x,w,4).convert(g)}else{let g=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":g=g.affine([x/this.width,0,0,w/this.height],{interpolator:y});break;case"lanczos":g=g.resize({width:x,height:w,fit:"fill",kernel:"lanczos3"});break;default:throw new Error(`Resampling method ${y} is not supported.`)}return await p(g)}}async pad([x,w,C,y]){if(x=Math.max(x,0),w=Math.max(w,0),C=Math.max(C,0),y=Math.max(y,0),x===0&&w===0&&C===0&&y===0)return this;if(u){let P=this.channels,I=this.toCanvas(),g=this.width+x+w,E=this.height+C+y,$=l(g,E).getContext("2d");return $.drawImage(I,0,0,this.width,this.height,x,C,this.width,this.height),new f($.getImageData(0,0,g,E).data,g,E,4).convert(P)}else{let P=this.toSharp().extend({left:x,right:w,top:C,bottom:y});return await p(P)}}async crop([x,w,C,y]){if(x=Math.max(x,0),w=Math.max(w,0),C=Math.min(C,this.width-1),y=Math.min(y,this.height-1),x===0&&w===0&&C===this.width-1&&y===this.height-1)return this;let P=C-x+1,I=y-w+1;if(u){let g=this.channels,E=this.toCanvas(),$=l(P,I).getContext("2d");return $.drawImage(E,x,w,P,I,0,0,P,I),new f($.getImageData(0,0,P,I).data,P,I,4).convert(g)}else{let g=this.toSharp().extract({left:x,top:w,width:P,height:I});return await p(g)}}async center_crop(x,w){if(this.width===x&&this.height===w)return this;let C=(this.width-x)/2,y=(this.height-w)/2;if(u){let P=this.channels,I=this.toCanvas(),g=l(x,w).getContext("2d"),E=0,$=0,L=0,G=0;return C>=0?E=C:L=-C,y>=0?$=y:G=-y,g.drawImage(I,E,$,x,w,L,G,x,w),new f(g.getImageData(0,0,x,w).data,x,w,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:x,height:w});else if(C<=0&&y<=0){let I=Math.floor(-y),g=Math.floor(-C);P=P.extend({top:I,left:g,right:x-this.width-g,bottom:w-this.height-I})}else{let I=[0,0],g=0;y<0?(I[0]=Math.floor(-y),I[1]=w-this.height-I[0]):g=Math.floor(y);let E=[0,0],$=0;C<0?(E[0]=Math.floor(-C),E[1]=x-this.width-E[0]):$=Math.floor(C),P=P.extend({top:I[0],bottom:I[1],left:E[0],right:E[1]}).extract({left:$,top:g,width:x,height:w})}return await p(P)}}async toBlob(x="image/png",w=1){if(!u)throw new Error("toBlob() is only supported in browser environments.");return await this.toCanvas().convertToBlob({type:x,quality:w})}toTensor(x="CHW"){let w=new a.Tensor("uint8",new Uint8Array(this.data),[this.height,this.width,this.channels]);if(x!=="HWC")if(x==="CHW")w=w.permute(2,0,1);else throw new Error(`Unsupported channel format: ${x}`);return w}toCanvas(){if(!u)throw new Error("toCanvas() is only supported in browser environments.");let x=this.clone().rgba(),w=l(x.width,x.height),C=new c(x.data,x.width,x.height);return w.getContext("2d").putImageData(C,0,0),w}split(){let{data:x,width:w,height:C,channels:y}=this,P=x.constructor,I=x.length/y,g=Array.from({length:y},()=>new P(I));for(let E=0;E<I;++E){let $=y*E;for(let L=0;L<y;++L)g[L][E]=x[$+L]}return g.map(E=>new f(E,w,C,1))}_update(x,w,C,y=null){return this.data=x,this.width=w,this.height=C,y!==null&&(this.channels=y),this}clone(){return new f(this.data.slice(),this.width,this.height,this.channels)}convert(x){if(this.channels===x)return this;switch(x){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(x){if(u){if(n.apis.IS_WEBWORKER_ENV)throw new Error("Unable to save an image from a Web Worker.");let w=x.split(".").pop().toLowerCase(),C=h.get(w)??"image/png",y=await this.toBlob(C);(0,s.saveBlob)(x,y)}else{if(n.apis.IS_FS_AVAILABLE)return await this.toSharp().toFile(x);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 v=f.read.bind(f)},"./src/utils/maths.js":(e,r,t)=>{t.r(r),t.d(r,{FFT:()=>v,bankers_round:()=>w,cos_sim:()=>l,dot:()=>i,dynamic_time_warping:()=>C,interpolate_data:()=>s,log_softmax:()=>a,magnitude:()=>c,max:()=>u,medianFilter:()=>F,min:()=>p,permute_data:()=>o,round:()=>x,softmax:()=>n});function s(y,[P,I,g],[E,$],L="bilinear",G=!1){let q=$/g,O=E/I,J=new y.constructor(E*$*P),Q=I*g,H=E*$;for(let te=0;te<E;++te)for(let re=0;re<$;++re){let le=te*$+re,be=(re+.5)/q-.5,z=(te+.5)/O-.5,D=Math.floor(be),K=Math.floor(z),R=Math.min(D+1,g-1),ne=Math.min(K+1,I-1);D=Math.max(D,0),K=Math.max(K,0);let Ce=be-D,Me=z-K,Ie=(1-Ce)*(1-Me),Ke=Ce*(1-Me),et=(1-Ce)*Me,_e=Ce*Me,Z=K*g,V=ne*g,fe=Z+D,Se=Z+R,Pe=V+D,pe=V+R;for(let xe=0;xe<P;++xe){let de=xe*Q;J[xe*H+le]=Ie*y[de+fe]+Ke*y[de+Se]+et*y[de+Pe]+_e*y[de+pe]}}return J}function o(y,P,I){let g=new Array(I.length),E=new Array(I.length);for(let G=I.length-1,q=1;G>=0;--G)E[G]=q,g[G]=P[I[G]],q*=g[G];let $=I.map((G,q)=>E[I.indexOf(q)]),L=new y.constructor(y.length);for(let G=0;G<y.length;++G){let q=0;for(let O=P.length-1,J=G;O>=0;--O)q+=J%P[O]*$[O],J=Math.floor(J/P[O]);L[q]=y[G]}return[L,g]}function n(y){let P=u(y)[0],I=y.map($=>Math.exp($-P)),g=I.reduce(($,L)=>$+L,0);return I.map($=>$/g)}function a(y){let P=u(y)[0],I=0;for(let $=0;$<y.length;++$)I+=Math.exp(y[$]-P);let g=Math.log(I);return y.map($=>$-P-g)}function i(y,P){let I=0;for(let g=0;g<y.length;++g)I+=y[g]*P[g];return I}function l(y,P){let I=i(y,P),g=c(y),E=c(P);return I/(g*E)}function c(y){return Math.sqrt(y.reduce((P,I)=>P+I*I,0))}function p(y){if(y.length===0)throw Error("Array must not be empty");let P=y[0],I=0;for(let g=1;g<y.length;++g)y[g]<P&&(P=y[g],I=g);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 g=1;g<y.length;++g)y[g]>P&&(P=y[g],I=g);return[P,I]}function d(y){return y>0&&(y&y-1)===0}class h{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 g=0;g<this.table.length;g+=2){let E=Math.PI*g/this.size;this.table[g]=Math.cos(E),this.table[g+1]=-Math.sin(E)}let I=0;for(let g=1;this.size>g;g<<=1)++I;this._width=I%2===0?I-1:I,this._bitrev=new Int32Array(1<<this._width);for(let g=0;g<this._bitrev.length;++g){this._bitrev[g]=0;for(let E=0;E<this._width;E+=2){let $=this._width-E-2;this._bitrev[g]|=(g>>>E&3)<<$}}}createComplexArray(){return new Float64Array(this._csize)}fromComplexArray(P,I){let g=I||new Array(P.length>>>1);for(let E=0;E<P.length;E+=2)g[E>>>1]=P[E];return g}toComplexArray(P,I){let g=I||this.createComplexArray();for(let E=0;E<g.length;E+=2)g[E]=P[E>>>1],g[E+1]=0;return g}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 g=0;g<P.length;++g)P[g]/=this.size}_transform4(P,I,g){let E=this._csize,L=1<<this._width,G=E/L<<1,q,O,J=this._bitrev;if(G===4)for(q=0,O=0;q<E;q+=G,++O){let H=J[O];this._singleTransform2(I,P,q,H,L)}else for(q=0,O=0;q<E;q+=G,++O){let H=J[O];this._singleTransform4(I,P,q,H,L,g)}let Q=this.table;for(L>>=2;L>=2;L>>=2){G=E/L<<1;let H=G>>>2;for(q=0;q<E;q+=G){let te=q+H-1;for(let re=q,le=0;re<te;re+=2,le+=L){let be=re,z=be+H,D=z+H,K=D+H,R=P[be],ne=P[be+1],Ce=P[z],Me=P[z+1],Ie=P[D],Ke=P[D+1],et=P[K],_e=P[K+1],Z=Q[le],V=g*Q[le+1],fe=Ce*Z-Me*V,Se=Ce*V+Me*Z,Pe=Q[2*le],pe=g*Q[2*le+1],xe=Ie*Pe-Ke*pe,de=Ie*pe+Ke*Pe,Ae=Q[3*le],$e=g*Q[3*le+1],Ue=et*Ae-_e*$e,Ee=et*$e+_e*Ae,je=R+xe,Ge=ne+de,Ve=R-xe,De=ne-de,ot=fe+Ue,lt=Se+Ee,rt=g*(fe-Ue),Ye=g*(Se-Ee);P[be]=je+ot,P[be+1]=Ge+lt,P[z]=Ve+Ye,P[z+1]=De-rt,P[D]=je-ot,P[D+1]=Ge-lt,P[K]=Ve-Ye,P[K+1]=De+rt}}}}_singleTransform2(P,I,g,E,$){let L=P[E],G=P[E+1],q=P[E+$],O=P[E+$+1];I[g]=L+q,I[g+1]=G+O,I[g+2]=L-q,I[g+3]=G-O}_singleTransform4(P,I,g,E,$,L){let G=$*2,q=$*3,O=P[E],J=P[E+1],Q=P[E+$],H=P[E+$+1],te=P[E+G],re=P[E+G+1],le=P[E+q],be=P[E+q+1],z=O+te,D=J+re,K=O-te,R=J-re,ne=Q+le,Ce=H+be,Me=L*(Q-le),Ie=L*(H-be);I[g]=z+ne,I[g+1]=D+Ce,I[g+2]=K+Ie,I[g+3]=R-Me,I[g+4]=z-ne,I[g+5]=D-Ce,I[g+6]=K-Ie,I[g+7]=R+Me}_realTransform4(P,I,g){let E=this._csize,L=1<<this._width,G=E/L<<1,q,O,J=this._bitrev;if(G===4)for(q=0,O=0;q<E;q+=G,++O){let te=J[O];this._singleRealTransform2(I,P,q,te>>>1,L>>>1)}else for(q=0,O=0;q<E;q+=G,++O){let te=J[O];this._singleRealTransform4(I,P,q,te>>>1,L>>>1,g)}let Q=this.table;for(L>>=2;L>=2;L>>=2){G=E/L<<1;let te=G>>>1,re=te>>>1,le=re>>>1;for(q=0;q<E;q+=G)for(let be=0,z=0;be<=le;be+=2,z+=L){let D=q+be,K=D+re,R=K+re,ne=R+re,Ce=P[D],Me=P[D+1],Ie=P[K],Ke=P[K+1],et=P[R],_e=P[R+1],Z=P[ne],V=P[ne+1],fe=Ce,Se=Me,Pe=Q[z],pe=g*Q[z+1],xe=Ie*Pe-Ke*pe,de=Ie*pe+Ke*Pe,Ae=Q[2*z],$e=g*Q[2*z+1],Ue=et*Ae-_e*$e,Ee=et*$e+_e*Ae,je=Q[3*z],Ge=g*Q[3*z+1],Ve=Z*je-V*Ge,De=Z*Ge+V*je,ot=fe+Ue,lt=Se+Ee,rt=fe-Ue,Ye=Se-Ee,ft=xe+Ve,yt=de+De,Ot=g*(xe-Ve),vr=g*(de-De);if(P[D]=ot+ft,P[D+1]=lt+yt,P[K]=rt+vr,P[K+1]=Ye-Ot,be===0){P[R]=ot-ft,P[R+1]=lt-yt;continue}if(be===le)continue;let zr=q+re-be,Rr=q+te-be;P[zr]=rt-g*vr,P[zr+1]=-Ye-g*Ot,P[Rr]=ot-g*ft,P[Rr+1]=-lt+g*yt}}let H=E>>>1;for(let te=2;te<H;te+=2)P[E-te]=P[te],P[E-te+1]=-P[te+1]}_singleRealTransform2(P,I,g,E,$){let L=P[E],G=P[E+$];I[g]=L+G,I[g+1]=0,I[g+2]=L-G,I[g+3]=0}_singleRealTransform4(P,I,g,E,$,L){let G=$*2,q=$*3,O=P[E],J=P[E+$],Q=P[E+G],H=P[E+q],te=O+Q,re=O-Q,le=J+H,be=L*(J-H);I[g]=te+le,I[g+1]=0,I[g+2]=re,I[g+3]=-be,I[g+4]=te-le,I[g+5]=0,I[g+6]=re,I[g+7]=be}}class f{constructor(P){let I=2*(P-1),g=2*(2*P-1),E=2**Math.ceil(Math.log2(g));this.bufferSize=E,this._a=I;let $=new Float64Array(g),L=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 G=-2*Math.PI/P,q=Math.cos(G),O=Math.sin(G);for(let J=0;J<g>>1;++J){let Q=(J+1-P)**2/2,H=Math.sqrt(q**2+O**2)**Q,te=Q*Math.atan2(O,q),re=2*J;$[re]=H*Math.cos(te),$[re+1]=H*Math.sin(te),L[re]=$[re],L[re+1]=-$[re+1]}this._slicedChirpBuffer=$.subarray(I,g),this._f=new h(E>>1),this._f.transform(this._chirpBuffer,L)}_transform(P,I,g){let E=this._buffer1,$=this._buffer2,L=this._outBuffer1,G=this._outBuffer2,q=this._chirpBuffer,O=this._slicedChirpBuffer,J=this._a;if(g)for(let Q=0;Q<O.length;Q+=2){let H=Q+1,te=Q>>1,re=I[te];E[Q]=re*O[Q],E[H]=re*O[H]}else for(let Q=0;Q<O.length;Q+=2){let H=Q+1;E[Q]=I[Q]*O[Q]-I[H]*O[H],E[H]=I[Q]*O[H]+I[H]*O[Q]}this._f.transform(L,E);for(let Q=0;Q<q.length;Q+=2){let H=Q+1;$[Q]=L[Q]*q[Q]-L[H]*q[H],$[H]=L[Q]*q[H]+L[H]*q[Q]}this._f.inverseTransform(G,$);for(let Q=0;Q<G.length;Q+=2){let H=G[Q+J],te=G[Q+J+1],re=O[Q],le=O[Q+1];P[Q]=H*re-te*le,P[Q+1]=H*le+te*re}}transform(P,I){this._transform(P,I,!1)}realTransform(P,I){this._transform(P,I,!0)}}class v{constructor(P){this.fft_length=P,this.isPowerOfTwo=d(P),this.isPowerOfTwo?(this.fft=new h(P),this.outputBufferSize=2*P):(this.fft=new f(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),g=new y.constructor(P),E=Math.floor(P/2);for(let $=0;$<y.length;++$){let L=0;for(let G=-E;G<=E;++G){let q=$+G;q<0?q=Math.abs(q):q>=y.length&&(q=2*(y.length-1)-q),g[L++]=y[q]}g.sort(),I[$]=g[E]}return I}function x(y,P){let I=Math.pow(10,P);return Math.round(y*I)/I}function w(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,g=[P+1,I+1],E=Array.from({length:g[0]},()=>Array(g[1]).fill(1/0));E[0][0]=0;let $=Array.from({length:g[0]},()=>Array(g[1]).fill(-1));for(let J=1;J<g[1];++J)for(let Q=1;Q<g[0];++Q){let H=E[Q-1][J-1],te=E[Q-1][J],re=E[Q][J-1],le,be;H<te&&H<re?(le=H,be=0):te<H&&te<re?(le=te,be=1):(le=re,be=2),E[Q][J]=y[Q-1][J-1]+le,$[Q][J]=be}for(let J=0;J<g[1];++J)$[0][J]=2;for(let J=0;J<g[0];++J)$[J][0]=1;let L=P,G=I,q=[],O=[];for(;L>0||G>0;)switch(q.push(L-1),O.push(G-1),$[L][G]){case 0:--L,--G;break;case 1:--L;break;case 2:--G;break;default:throw new Error(`Internal error in dynamic time warping. Unexpected trace[${L}, ${G}]. Please file a bug report.`)}return q.reverse(),O.reverse(),[q,O]}},"./src/utils/tensor.js":(e,r,t)=>{t.r(r),t.d(r,{DataTypeMap:()=>a,Tensor:()=>i,cat:()=>I,full:()=>O,full_like:()=>J,interpolate:()=>p,interpolate_4d:()=>u,layer_norm:()=>w,matmul:()=>d,mean:()=>L,mean_pooling:()=>x,ones:()=>Q,ones_like:()=>H,permute:()=>c,quantize_embeddings:()=>be,rand:()=>le,rfft:()=>h,slice:()=>F,stack:()=>g,std_mean:()=>$,topk:()=>f,zeros:()=>te,zeros_like:()=>re});var s=t("./src/utils/maths.js"),o=t("./src/backends/onnx.js"),n=t("./src/ops/registry.js");let a=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(D){this.ort_tensor.dims=D}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(...D){return(0,o.isONNXTensor)(D[0])?this.ort_tensor=D[0]:this.ort_tensor=new o.Tensor(D[0],D[1],D[2]),new Proxy(this,{get:(K,R)=>{if(typeof R=="string"){let ne=Number(R);if(Number.isInteger(ne))return K._getitem(ne)}return K[R]},set:(K,R,ne)=>K[R]=ne})}dispose(){this.ort_tensor.dispose()}*[Symbol.iterator](){let[D,...K]=this.dims;if(K.length>0){let R=K.reduce((ne,Ce)=>ne*Ce);for(let ne=0;ne<D;++ne)yield this._subarray(ne,R,K)}else yield*this.data}_getitem(D){let[K,...R]=this.dims;if(D=P(D,K),R.length>0){let ne=R.reduce((Ce,Me)=>Ce*Me);return this._subarray(D,ne,R)}else return new i(this.type,[this.data[D]],R)}indexOf(D){let K=this.data;for(let R=0;R<K.length;++R)if(K[R]==D)return R;return-1}_subarray(D,K,R){let ne=D*K,Ce=(D+1)*K,Me="subarray"in this.data?this.data.subarray(ne,Ce):this.data.slice(ne,Ce);return new i(this.type,Me,R)}item(){let D=this.data;if(D.length!==1)throw new Error(`a Tensor with ${D.length} elements cannot be converted to Scalar`);return D[0]}tolist(){return l(this.data,this.dims)}sigmoid(){return this.clone().sigmoid_()}sigmoid_(){let D=this.data;for(let K=0;K<D.length;++K)D[K]=1/(1+Math.exp(-D[K]));return this}map(D){return this.clone().map_(D)}map_(D){let K=this.data;for(let R=0;R<K.length;++R)K[R]=D(K[R],R,K);return this}mul(D){return this.clone().mul_(D)}mul_(D){let K=this.data;for(let R=0;R<K.length;++R)K[R]*=D;return this}div(D){return this.clone().div_(D)}div_(D){let K=this.data;for(let R=0;R<K.length;++R)K[R]/=D;return this}add(D){return this.clone().add_(D)}add_(D){let K=this.data;for(let R=0;R<K.length;++R)K[R]+=D;return this}sub(D){return this.clone().sub_(D)}sub_(D){let K=this.data;for(let R=0;R<K.length;++R)K[R]-=D;return this}clone(){return new i(this.type,this.data.slice(),this.dims.slice())}slice(...D){let K=[],R=[];for(let _e=0;_e<this.dims.length;++_e){let Z=D[_e];if(Z==null)R.push([0,this.dims[_e]]),K.push(this.dims[_e]);else if(typeof Z=="number")Z=P(Z,this.dims[_e],_e),R.push([Z,Z+1]);else if(Array.isArray(Z)&&Z.length===2){let[V,fe]=Z;if(V=V===null?0:P(V,this.dims[_e],_e,!1),fe=fe===null?this.dims[_e]:P(fe,this.dims[_e],_e,!1),V>fe)throw new Error(`Invalid slice: ${Z}`);let Se=[Math.max(V,0),Math.min(fe,this.dims[_e])];R.push(Se),K.push(Se[1]-Se[0])}else throw new Error(`Invalid slice: ${Z}`)}let ne=R.map(([_e,Z])=>Z-_e),Ce=ne.reduce((_e,Z)=>_e*Z),Me=this.data,Ie=new Me.constructor(Ce),Ke=this.stride(),et=!0;for(let _e=1;_e<ne.length;++_e)if(R[_e][0]!==0||R[_e][1]!==this.dims[_e]){et=!1;break}if(et){let _e=R[0][0]*Ke[0],Z=R[0][1]*Ke[0];if(ArrayBuffer.isView(Me))Ie.set(Me.subarray(_e,Z));else if(Array.isArray(Me)){let V=Me.slice(_e,Z);for(let fe=0;fe<V.length;++fe)Ie[fe]=V[fe]}else throw new Error("Unsupported data type for slicing")}else for(let _e=0;_e<Ce;++_e){let Z=0;for(let V=ne.length-1,fe=_e;V>=0;--V){let Se=ne[V];Z+=(fe%Se+R[V][0])*Ke[V],fe=Math.floor(fe/Se)}Ie[_e]=Me[Z]}return new i(this.type,Ie,K)}permute(...D){return c(this,D)}transpose(...D){return this.permute(...D)}sum(D=null,K=!1){return this.norm(1,D,K)}norm(D="fro",K=null,R=!1){if(D==="fro")D=2;else if(typeof D=="string")throw Error(`Unsupported norm: ${D}`);let ne=this.data,Ce=(et,_e)=>et+_e**D;if(K===null){let et=ne.reduce(Ce,0)**(1/D);return new i(this.type,[et],[])}let[Me,Ie,Ke]=E(Ce,this,K,R);if(D!==1)for(let et=0;et<Ie.length;++et)Ie[et]=Ie[et]**(1/D);return new i(Me,Ie,Ke)}normalize_(D=2,K=1){K=P(K,this.dims.length);let R=this.norm(D,K,!0),ne=this.data,Ce=R.data;for(let Me=0;Me<ne.length;++Me){let Ie=0;for(let Ke=this.dims.length-1,et=Me,_e=1;Ke>=0;--Ke){let Z=this.dims[Ke];if(Ke!==K){let V=et%Z;Ie+=V*_e,_e*=this.dims[Ke]}et=Math.floor(et/Z)}ne[Me]/=Ce[Ie]}return this}normalize(D=2,K=1){return this.clone().normalize_(D,K)}stride(){return G(this.dims)}squeeze(D=null){return new i(this.type,this.data,C(this.dims,D))}squeeze_(D=null){return this.dims=C(this.dims,D),this}unsqueeze(D=null){return new i(this.type,this.data,y(this.dims,D))}unsqueeze_(D=null){return this.dims=y(this.dims,D),this}flatten_(D=0,K=-1){K=(K+this.dims.length)%this.dims.length;let R=this.dims.slice(0,D),ne=this.dims.slice(D,K+1),Ce=this.dims.slice(K+1);return this.dims=[...R,ne.reduce((Me,Ie)=>Me*Ie,1),...Ce],this}flatten(D=0,K=-1){return this.clone().flatten_(D,K)}view(...D){let K=-1;for(let ne=0;ne<D.length;++ne)if(D[ne]===-1){if(K!==-1)throw new Error("Only one dimension can be inferred");K=ne}let R=this.data;if(K!==-1){let ne=D.reduce((Ce,Me,Ie)=>Ie!==K?Ce*Me:Ce,1);D[K]=R.length/ne}return new i(this.type,R,D)}neg_(){let D=this.data;for(let K=0;K<D.length;++K)D[K]=-D[K];return this}neg(){return this.clone().neg_()}gt(D){let K=new Uint8Array(this.data.length),R=this.data;for(let ne=0;ne<R.length;++ne)K[ne]=R[ne]>D?1:0;return new i("bool",K,this.dims)}lt(D){let K=new Uint8Array(this.data.length),R=this.data;for(let ne=0;ne<R.length;++ne)K[ne]=R[ne]<D?1:0;return new i("bool",K,this.dims)}clamp_(D,K){let R=this.data;for(let ne=0;ne<R.length;++ne)R[ne]=Math.min(Math.max(R[ne],D),K);return this}clamp(D,K){return this.clone().clamp_(D,K)}round_(){let D=this.data;for(let K=0;K<D.length;++K)D[K]=Math.round(D[K]);return this}round(){return this.clone().round_()}mean(D=null,K=!1){return L(this,D,K)}min(D=null,K=!1){if(D===null){let Me=(0,s.min)(this.data)[0];return new i(this.type,[Me],[])}let[R,ne,Ce]=E((Me,Ie)=>Math.min(Me,Ie),this,D,K,1/0);return new i(R,ne,Ce)}max(D=null,K=!1){if(D===null){let Me=(0,s.max)(this.data)[0];return new i(this.type,[Me],[])}let[R,ne,Ce]=E((Me,Ie)=>Math.max(Me,Ie),this,D,K,-1/0);return new i(R,ne,Ce)}argmin(D=null,K=!1){if(D!==null)throw new Error("`dim !== null` not yet implemented.");let R=(0,s.min)(this.data)[1];return new i("int64",[BigInt(R)],[])}argmax(D=null,K=!1){if(D!==null)throw new Error("`dim !== null` not yet implemented.");let R=(0,s.max)(this.data)[1];return new i("int64",[BigInt(R)],[])}to(D){if(this.type===D)return this;if(!a.hasOwnProperty(D))throw new Error(`Unsupported type: ${D}`);let K,R=["int64","uint64"].includes(this.type),ne=["int64","uint64"].includes(D);return R&&!ne?K=Number:!R&&ne&&(K=BigInt),new i(D,a[D].from(this.data,K),this.dims)}}function l(z,D){let K=z.length,R=D.reduce((Ce,Me)=>Ce*Me);if(K!==R)throw Error(`cannot reshape array of size ${K} into shape (${D})`);let ne=z;for(let Ce=D.length-1;Ce>=0;Ce--)ne=ne.reduce((Me,Ie)=>{let Ke=Me[Me.length-1];return Ke.length<D[Ce]?Ke.push(Ie):Me.push([Ie]),Me},[[]]);return ne[0]}function c(z,D){let[K,R]=(0,s.permute_data)(z.data,z.dims,D);return new i(z.type,K,R)}function p(z,[D,K],R="bilinear",ne=!1){let Ce=z.dims.at(-3)??1,Me=z.dims.at(-2),Ie=z.dims.at(-1),Ke=(0,s.interpolate_data)(z.data,[Ce,Me,Ie],[D,K],R,ne);return new i(z.type,Ke,[Ce,D,K])}async function u(z,{size:D=null,mode:K="bilinear"}={}){if(z.dims.length!==4)throw new Error("`interpolate_4d` currently only supports 4D input.");if(!D)throw new Error("`interpolate_4d` requires a `size` argument.");let R;if(D.length===2)R=[...z.dims.slice(0,2),...D];else if(D.length===3)R=[z.dims[0],...D];else if(D.length===4)R=D;else throw new Error("`size` must be of length 2, 3, or 4.");let ne;if(K==="nearest")ne=await n.TensorOpRegistry.nearest_interpolate_4d;else if(K==="bilinear")ne=await n.TensorOpRegistry.bilinear_interpolate_4d;else if(K==="bicubic")ne=await n.TensorOpRegistry.bicubic_interpolate_4d;else throw new Error(`Unsupported mode: ${K}`);let Ce=new i("int64",new BigInt64Array(R.map(BigInt)),[R.length]);return await ne({x:z,s:Ce})}async function d(z,D){return await(await n.TensorOpRegistry.matmul)({a:z,b:D})}async function h(z,D){return await(await n.TensorOpRegistry.rfft)({x:z,a:D})}async function f(z,D){let K=await n.TensorOpRegistry.top_k;return D==null?D=z.dims.at(-1):D=Math.min(D,z.dims.at(-1)),await K({x:z,k:new i("int64",[BigInt(D)],[1])})}let v=z=>new i("int64",z,[z.length]);async function F(z,D,K,R,ne){return await(await n.TensorOpRegistry.slice)({x:z,s:v(D),e:v(K),a:v(R),t:v(ne??new Array(R.length).fill(1))})}function x(z,D){let K=z.data,R=D.data,ne=[z.dims[0],z.dims[2]],Ce=new K.constructor(ne[0]*ne[1]),[Me,Ie,Ke]=z.dims,et=0;for(let _e=0;_e<Me;++_e){let Z=_e*Ke*Ie;for(let V=0;V<Ke;++V){let fe=0,Se=0,Pe=_e*Ie,pe=Z+V;for(let de=0;de<Ie;++de){let Ae=Number(R[Pe+de]);Se+=Ae,fe+=K[pe+de*Ke]*Ae}let xe=fe/Se;Ce[et++]=xe}}return new i(z.type,Ce,ne)}function w(z,D,{eps:K=1e-5}={}){if(z.dims.length!==2)throw new Error("`layer_norm` currently only supports 2D input.");let[R,ne]=z.dims;if(D.length!==1&&D[0]!==ne)throw new Error("`normalized_shape` must be a 1D array with shape `[input.dims[1]]`.");let[Ce,Me]=$(z,1,0,!0),Ie=Ce.data,Ke=Me.data,et=z.data,_e=new et.constructor(et.length);for(let Z=0;Z<R;++Z){let V=Z*ne;for(let fe=0;fe<ne;++fe){let Se=V+fe;_e[Se]=(et[Se]-Ke[Z])/(Ie[Z]+K)}}return new i(z.type,_e,z.dims)}function C(z,D){return z=z.slice(),D===null?z=z.filter(K=>K!==1):typeof D=="number"?z[D]===1&&z.splice(D,1):Array.isArray(D)&&(z=z.filter((K,R)=>K!==1||!D.includes(R))),z}function y(z,D){return D=P(D,z.length+1),z=z.slice(),z.splice(D,0,1),z}function P(z,D,K=null,R=!0){if(z<-D||z>=D){if(R)throw new Error(`IndexError: index ${z} is out of bounds for dimension${K===null?"":" "+K} with size ${D}`);return z<-D?0:D}return z<0&&(z=(z%D+D)%D),z}function I(z,D=0){D=P(D,z[0].dims.length);let K=z[0].dims.slice();K[D]=z.reduce((Me,Ie)=>Me+Ie.dims[D],0);let R=K.reduce((Me,Ie)=>Me*Ie,1),ne=new z[0].data.constructor(R),Ce=z[0].type;if(D===0){let Me=0;for(let Ie of z){let Ke=Ie.data;ne.set(Ke,Me),Me+=Ke.length}}else{let Me=0;for(let Ie=0;Ie<z.length;++Ie){let{data:Ke,dims:et}=z[Ie];for(let _e=0;_e<Ke.length;++_e){let Z=0;for(let V=et.length-1,fe=_e,Se=1;V>=0;--V){let Pe=et[V],pe=fe%Pe;V===D&&(pe+=Me),Z+=pe*Se,Se*=K[V],fe=Math.floor(fe/Pe)}ne[Z]=Ke[_e]}Me+=et[D]}}return new i(Ce,ne,K)}function g(z,D=0){return I(z.map(K=>K.unsqueeze(D)),D)}function E(z,D,K=null,R=!1,ne=null){let Ce=D.data,Me=D.dims;K=P(K,Me.length);let Ie=Me.slice();Ie[K]=1;let Ke=new Ce.constructor(Ce.length/Me[K]);ne!==null&&Ke.fill(ne);for(let et=0;et<Ce.length;++et){let _e=0;for(let Z=Me.length-1,V=et,fe=1;Z>=0;--Z){let Se=Me[Z];if(Z!==K){let Pe=V%Se;_e+=Pe*fe,fe*=Ie[Z]}V=Math.floor(V/Se)}Ke[_e]=z(Ke[_e],Ce[et],et,_e)}return R||Ie.splice(K,1),[D.type,Ke,Ie]}function $(z,D=null,K=1,R=!1){let ne=z.data,Ce=z.dims;if(D===null){let fe=ne.reduce((xe,de)=>xe+de,0)/ne.length,Se=Math.sqrt(ne.reduce((xe,de)=>xe+(de-fe)**2,0)/(ne.length-K)),Pe=new i(z.type,[fe],[]);return[new i(z.type,[Se],[]),Pe]}D=P(D,Ce.length);let Me=L(z,D,R),Ie=Me.data,[Ke,et,_e]=E((V,fe,Se,Pe)=>V+(fe-Ie[Pe])**2,z,D,R);for(let V=0;V<et.length;++V)et[V]=Math.sqrt(et[V]/(Ce[D]-K));return[new i(Ke,et,_e),Me]}function L(z,D=null,K=!1){let R=z.dims,ne=z.data;if(D===null){let Ke=ne.reduce((et,_e)=>et+_e,0);return new i(z.type,[Ke/ne.length],[])}D=P(D,R.length);let[Ce,Me,Ie]=E((Ke,et)=>Ke+et,z,D,K);if(R[D]!==1)for(let Ke=0;Ke<Me.length;++Ke)Me[Ke]/=R[D];return new i(Ce,Me,Ie)}function G(z){let D=new Array(z.length);for(let K=z.length-1,R=1;K>=0;--K)D[K]=R,R*=z[K];return D}function q(z,D,K,R){let ne=z.reduce((Ce,Me)=>Ce*Me,1);return new i(K,new R(ne).fill(D),z)}function O(z,D){let K,R;if(typeof D=="number")K="float32",R=Float32Array;else if(typeof D=="bigint")K="int64",R=BigInt64Array;else if(typeof D=="boolean")K="bool",R=Uint8Array;else throw new Error(`Unsupported data type: ${typeof D}`);return q(z,D,K,R)}function J(z,D){return O(z.dims,D)}function Q(z){return q(z,1n,"int64",BigInt64Array)}function H(z){return Q(z.dims)}function te(z){return q(z,0n,"int64",BigInt64Array)}function re(z){return te(z.dims)}function le(z){let D=z.reduce((K,R)=>K*R,1);return new i("float32",Float32Array.from({length:D},()=>Math.random()),z)}function be(z,D){if(z.dims.length!==2)throw new Error("The tensor must have 2 dimensions");if(z.dims.at(-1)%8!==0)throw new Error("The last dimension of the tensor must be a multiple of 8");if(!["binary","ubinary"].includes(D))throw new Error("The precision must be either 'binary' or 'ubinary'");let K=D==="binary",R=K?"int8":"uint8",ne=K?Int8Array:Uint8Array,Ce=z.data,Me=new ne(Ce.length/8);for(let Ie=0;Ie<Ce.length;++Ie){let Ke=Ce[Ie]>0?1:0,et=Math.floor(Ie/8),_e=Ie%8;Me[et]|=Ke<<7-_e,K&&_e===0&&(Me[et]-=128)}return new i(R,Me,[z.dims[0],z.dims[1]/8])}},"./src/utils/video.js":(e,r,t)=>{t.r(r),t.d(r,{RawVideo:()=>a,RawVideoFrame:()=>n,load_video:()=>i});var s=t("./src/utils/image.js"),o=t("./src/env.js");class n{constructor(c,p){this.image=c,this.timestamp=p}}class a{constructor(c,p){c.length>0&&c[0]instanceof s.RawImage&&(c=c.map((u,d)=>new n(u,(d+1)/(c.length+1)*p))),this.frames=c,this.duration=p}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:p=null}={}){if(!o.apis.IS_BROWSER_ENV)throw new Error("`load_video` is currently only supported in browser environments.");if(c==null&&p==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 h=d.duration,f,v;c!=null?(f=c,v=c===1?0:h/(c-1)):(v=1/p,f=Math.floor(h/v));let F=[];for(let C=0;C<f;++C)F.push(c===1?h/2:C*v);let x=document.createElement("canvas");x.width=d.videoWidth,x.height=d.videoHeight;let w=x.getContext("2d",{willReadFrequently:!0});for(let C of F){d.currentTime=C,await new Promise(g=>{d.onseeked=g}),w.drawImage(d,0,0,x.width,x.height);let y=w.getImageData(0,0,x.width,x.height),P=new s.RawImage(y.data,x.width,x.height,4),I=new n(P,C);u.push(I)}return d.remove(),new a(u,h)}}},y0={};function zt(e){var r=y0[e];if(r!==void 0)return r.exports;var t=y0[e]={exports:{}};return pE[e](t,t.exports,zt),t.exports}(()=>{var e=Object.getPrototypeOf?t=>Object.getPrototypeOf(t):t=>t.__proto__,r;zt.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);zt.r(o);var n={};r=r||[null,e({}),e([]),e(e)];for(var a=s&2&&t;typeof a=="object"&&!~r.indexOf(a);a=e(a))Object.getOwnPropertyNames(a).forEach(i=>n[i]=()=>t[i]);return n.default=()=>t,zt.d(o,n),o}})();zt.d=(e,r)=>{for(var t in r)zt.o(r,t)&&!zt.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})};zt.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);zt.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var m={};(()=>{zt.r(m),zt.d(m,{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:()=>v.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:()=>w.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:()=>f.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:()=>f.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:()=>f.CLIPFeatureExtractor,CLIPImageProcessor:()=>f.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:()=>f.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:()=>f.ConvNextFeatureExtractor,ConvNextForImageClassification:()=>t.ConvNextForImageClassification,ConvNextImageProcessor:()=>f.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,DPTFeatureExtractor:()=>f.DPTFeatureExtractor,DPTForDepthEstimation:()=>t.DPTForDepthEstimation,DPTImageProcessor:()=>f.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:()=>f.DeiTFeatureExtractor,DeiTForImageClassification:()=>t.DeiTForImageClassification,DeiTImageProcessor:()=>f.DeiTImageProcessor,DeiTModel:()=>t.DeiTModel,DeiTPreTrainedModel:()=>t.DeiTPreTrainedModel,DepthAnythingForDepthEstimation:()=>t.DepthAnythingForDepthEstimation,DepthAnythingPreTrainedModel:()=>t.DepthAnythingPreTrainedModel,DepthEstimationPipeline:()=>r.DepthEstimationPipeline,DepthProForDepthEstimation:()=>t.DepthProForDepthEstimation,DepthProPreTrainedModel:()=>t.DepthProPreTrainedModel,DetrFeatureExtractor:()=>f.DetrFeatureExtractor,DetrForObjectDetection:()=>t.DetrForObjectDetection,DetrForSegmentation:()=>t.DetrForSegmentation,DetrImageProcessor:()=>f.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:()=>f.DonutFeatureExtractor,DonutImageProcessor:()=>f.DonutImageProcessor,DonutSwinModel:()=>t.DonutSwinModel,DonutSwinPreTrainedModel:()=>t.DonutSwinPreTrainedModel,EfficientNetForImageClassification:()=>t.EfficientNetForImageClassification,EfficientNetImageProcessor:()=>f.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_5_ForCausalLM:()=>t.Ernie4_5_ForCausalLM,Ernie4_5_Model:()=>t.Ernie4_5_Model,Ernie4_5_PretrainedModel:()=>t.Ernie4_5_PretrainedModel,Ernie4_5_Tokenizer:()=>s.Ernie4_5_Tokenizer,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:()=>p.FeatureExtractor,FillMaskPipeline:()=>r.FillMaskPipeline,Florence2ForConditionalGeneration:()=>t.Florence2ForConditionalGeneration,Florence2PreTrainedModel:()=>t.Florence2PreTrainedModel,Florence2Processor:()=>x.Florence2Processor,ForcedBOSTokenLogitsProcessor:()=>P.ForcedBOSTokenLogitsProcessor,ForcedEOSTokenLogitsProcessor:()=>P.ForcedEOSTokenLogitsProcessor,GLPNFeatureExtractor:()=>f.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:()=>x.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,GranitePreTrainedModel:()=>t.GranitePreTrainedModel,Grok1Tokenizer:()=>s.Grok1Tokenizer,GroundingDinoForObjectDetection:()=>t.GroundingDinoForObjectDetection,GroundingDinoImageProcessor:()=>f.GroundingDinoImageProcessor,GroundingDinoPreTrainedModel:()=>t.GroundingDinoPreTrainedModel,GroundingDinoProcessor:()=>x.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:()=>f.Idefics3ImageProcessor,Idefics3PreTrainedModel:()=>t.Idefics3PreTrainedModel,Idefics3Processor:()=>x.Idefics3Processor,ImageClassificationPipeline:()=>r.ImageClassificationPipeline,ImageFeatureExtractionPipeline:()=>r.ImageFeatureExtractionPipeline,ImageFeatureExtractor:()=>u.ImageFeatureExtractor,ImageMattingOutput:()=>t.ImageMattingOutput,ImageProcessor:()=>h.ImageProcessor,ImageSegmentationPipeline:()=>r.ImageSegmentationPipeline,ImageToImagePipeline:()=>r.ImageToImagePipeline,ImageToTextPipeline:()=>r.ImageToTextPipeline,InterruptableStoppingCriteria:()=>y.InterruptableStoppingCriteria,JAISLMHeadModel:()=>t.JAISLMHeadModel,JAISModel:()=>t.JAISModel,JAISPreTrainedModel:()=>t.JAISPreTrainedModel,JinaCLIPImageProcessor:()=>f.JinaCLIPImageProcessor,JinaCLIPModel:()=>t.JinaCLIPModel,JinaCLIPPreTrainedModel:()=>t.JinaCLIPPreTrainedModel,JinaCLIPProcessor:()=>x.JinaCLIPProcessor,JinaCLIPTextModel:()=>t.JinaCLIPTextModel,JinaCLIPVisionModel:()=>t.JinaCLIPVisionModel,Lfm2ForCausalLM:()=>t.Lfm2ForCausalLM,Lfm2Model:()=>t.Lfm2Model,Lfm2PreTrainedModel:()=>t.Lfm2PreTrainedModel,LiteWhisperForConditionalGeneration:()=>t.LiteWhisperForConditionalGeneration,LlamaForCausalLM:()=>t.LlamaForCausalLM,LlamaModel:()=>t.LlamaModel,LlamaPreTrainedModel:()=>t.LlamaPreTrainedModel,LlamaTokenizer:()=>s.LlamaTokenizer,LlavaForConditionalGeneration:()=>t.LlavaForConditionalGeneration,LlavaOnevisionForConditionalGeneration:()=>t.LlavaOnevisionForConditionalGeneration,LlavaOnevisionImageProcessor:()=>f.LlavaOnevisionImageProcessor,LlavaPreTrainedModel:()=>t.LlavaPreTrainedModel,LlavaProcessor:()=>x.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:()=>f.Mask2FormerImageProcessor,MaskFormerFeatureExtractor:()=>f.MaskFormerFeatureExtractor,MaskFormerForInstanceSegmentation:()=>t.MaskFormerForInstanceSegmentation,MaskFormerImageProcessor:()=>f.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:()=>x.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,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:()=>f.MobileNetV1FeatureExtractor,MobileNetV1ForImageClassification:()=>t.MobileNetV1ForImageClassification,MobileNetV1ForSemanticSegmentation:()=>t.MobileNetV1ForSemanticSegmentation,MobileNetV1ImageProcessor:()=>f.MobileNetV1ImageProcessor,MobileNetV1Model:()=>t.MobileNetV1Model,MobileNetV1PreTrainedModel:()=>t.MobileNetV1PreTrainedModel,MobileNetV2FeatureExtractor:()=>f.MobileNetV2FeatureExtractor,MobileNetV2ForImageClassification:()=>t.MobileNetV2ForImageClassification,MobileNetV2ForSemanticSegmentation:()=>t.MobileNetV2ForSemanticSegmentation,MobileNetV2ImageProcessor:()=>f.MobileNetV2ImageProcessor,MobileNetV2Model:()=>t.MobileNetV2Model,MobileNetV2PreTrainedModel:()=>t.MobileNetV2PreTrainedModel,MobileNetV3FeatureExtractor:()=>f.MobileNetV3FeatureExtractor,MobileNetV3ForImageClassification:()=>t.MobileNetV3ForImageClassification,MobileNetV3ForSemanticSegmentation:()=>t.MobileNetV3ForSemanticSegmentation,MobileNetV3ImageProcessor:()=>f.MobileNetV3ImageProcessor,MobileNetV3Model:()=>t.MobileNetV3Model,MobileNetV3PreTrainedModel:()=>t.MobileNetV3PreTrainedModel,MobileNetV4FeatureExtractor:()=>f.MobileNetV4FeatureExtractor,MobileNetV4ForImageClassification:()=>t.MobileNetV4ForImageClassification,MobileNetV4ForSemanticSegmentation:()=>t.MobileNetV4ForSemanticSegmentation,MobileNetV4ImageProcessor:()=>f.MobileNetV4ImageProcessor,MobileNetV4Model:()=>t.MobileNetV4Model,MobileNetV4PreTrainedModel:()=>t.MobileNetV4PreTrainedModel,MobileViTFeatureExtractor:()=>f.MobileViTFeatureExtractor,MobileViTForImageClassification:()=>t.MobileViTForImageClassification,MobileViTImageProcessor:()=>f.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:()=>x.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,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:()=>f.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:()=>f.OwlViTFeatureExtractor,OwlViTForObjectDetection:()=>t.OwlViTForObjectDetection,OwlViTImageProcessor:()=>f.OwlViTImageProcessor,OwlViTModel:()=>t.OwlViTModel,OwlViTPreTrainedModel:()=>t.OwlViTPreTrainedModel,OwlViTProcessor:()=>x.OwlViTProcessor,Owlv2ForObjectDetection:()=>t.Owlv2ForObjectDetection,Owlv2ImageProcessor:()=>f.Owlv2ImageProcessor,Owlv2Model:()=>t.Owlv2Model,Owlv2PreTrainedModel:()=>t.Owlv2PreTrainedModel,PaliGemmaForConditionalGeneration:()=>t.PaliGemmaForConditionalGeneration,PaliGemmaPreTrainedModel:()=>t.PaliGemmaPreTrainedModel,PaliGemmaProcessor:()=>x.PaliGemmaProcessor,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:()=>f.Phi3VImageProcessor,Phi3VPreTrainedModel:()=>t.Phi3VPreTrainedModel,Phi3VProcessor:()=>x.Phi3VProcessor,PhiForCausalLM:()=>t.PhiForCausalLM,PhiModel:()=>t.PhiModel,PhiPreTrainedModel:()=>t.PhiPreTrainedModel,Pipeline:()=>r.Pipeline,PreTrainedModel:()=>t.PreTrainedModel,PreTrainedTokenizer:()=>s.PreTrainedTokenizer,PretrainedConfig:()=>o.PretrainedConfig,PretrainedMixin:()=>t.PretrainedMixin,Processor:()=>F.Processor,PvtForImageClassification:()=>t.PvtForImageClassification,PvtImageProcessor:()=>f.PvtImageProcessor,PvtModel:()=>t.PvtModel,PvtPreTrainedModel:()=>t.PvtPreTrainedModel,PyAnnoteFeatureExtractor:()=>u.PyAnnoteFeatureExtractor,PyAnnoteForAudioFrameClassification:()=>t.PyAnnoteForAudioFrameClassification,PyAnnoteModel:()=>t.PyAnnoteModel,PyAnnotePreTrainedModel:()=>t.PyAnnotePreTrainedModel,PyAnnoteProcessor:()=>x.PyAnnoteProcessor,QuestionAnsweringModelOutput:()=>t.QuestionAnsweringModelOutput,QuestionAnsweringPipeline:()=>r.QuestionAnsweringPipeline,Qwen2ForCausalLM:()=>t.Qwen2ForCausalLM,Qwen2Model:()=>t.Qwen2Model,Qwen2PreTrainedModel:()=>t.Qwen2PreTrainedModel,Qwen2Tokenizer:()=>s.Qwen2Tokenizer,Qwen2VLForConditionalGeneration:()=>t.Qwen2VLForConditionalGeneration,Qwen2VLImageProcessor:()=>f.Qwen2VLImageProcessor,Qwen2VLPreTrainedModel:()=>t.Qwen2VLPreTrainedModel,Qwen2VLProcessor:()=>x.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:()=>f.RTDetrImageProcessor,RTDetrModel:()=>t.RTDetrModel,RTDetrObjectDetectionOutput:()=>t.RTDetrObjectDetectionOutput,RTDetrPreTrainedModel:()=>t.RTDetrPreTrainedModel,RTDetrV2ForObjectDetection:()=>t.RTDetrV2ForObjectDetection,RTDetrV2Model:()=>t.RTDetrV2Model,RTDetrV2ObjectDetectionOutput:()=>t.RTDetrV2ObjectDetectionOutput,RTDetrV2PreTrainedModel:()=>t.RTDetrV2PreTrainedModel,RawAudio:()=>n.RawAudio,RawImage:()=>a.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,SamImageProcessor:()=>f.SamImageProcessor,SamImageSegmentationOutput:()=>t.SamImageSegmentationOutput,SamModel:()=>t.SamModel,SamPreTrainedModel:()=>t.SamPreTrainedModel,SamProcessor:()=>x.SamProcessor,SapiensForDepthEstimation:()=>t.SapiensForDepthEstimation,SapiensForNormalEstimation:()=>t.SapiensForNormalEstimation,SapiensForSemanticSegmentation:()=>t.SapiensForSemanticSegmentation,SapiensPreTrainedModel:()=>t.SapiensPreTrainedModel,SeamlessM4TFeatureExtractor:()=>u.SeamlessM4TFeatureExtractor,SegformerFeatureExtractor:()=>f.SegformerFeatureExtractor,SegformerForImageClassification:()=>t.SegformerForImageClassification,SegformerForSemanticSegmentation:()=>t.SegformerForSemanticSegmentation,SegformerImageProcessor:()=>f.SegformerImageProcessor,SegformerModel:()=>t.SegformerModel,SegformerPreTrainedModel:()=>t.SegformerPreTrainedModel,Seq2SeqLMOutput:()=>t.Seq2SeqLMOutput,SequenceClassifierOutput:()=>t.SequenceClassifierOutput,SiglipImageProcessor:()=>f.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:()=>f.SmolVLMImageProcessor,SmolVLMProcessor:()=>x.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:()=>x.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,SuppressTokensAtBeginLogitsProcessor:()=>P.SuppressTokensAtBeginLogitsProcessor,Swin2SRForImageSuperResolution:()=>t.Swin2SRForImageSuperResolution,Swin2SRImageProcessor:()=>f.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:()=>x.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:()=>x.VLChatProcessor,VLMImageProcessor:()=>f.VLMImageProcessor,ViTFeatureExtractor:()=>f.ViTFeatureExtractor,ViTForImageClassification:()=>t.ViTForImageClassification,ViTImageProcessor:()=>f.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:()=>f.VitMatteImageProcessor,VitMattePreTrainedModel:()=>t.VitMattePreTrainedModel,VitPoseForPoseEstimation:()=>t.VitPoseForPoseEstimation,VitPoseImageProcessor:()=>f.VitPoseImageProcessor,VitPosePreTrainedModel:()=>t.VitPosePreTrainedModel,VitsModel:()=>t.VitsModel,VitsModelOutput:()=>t.VitsModelOutput,VitsPreTrainedModel:()=>t.VitsPreTrainedModel,VitsTokenizer:()=>s.VitsTokenizer,VoxtralForConditionalGeneration:()=>t.VoxtralForConditionalGeneration,VoxtralProcessor:()=>x.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:()=>x.Wav2Vec2Processor,Wav2Vec2ProcessorWithLM:()=>x.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:()=>x.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:()=>f.YolosFeatureExtractor,YolosForObjectDetection:()=>t.YolosForObjectDetection,YolosImageProcessor:()=>f.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:()=>n.hamming,hanning:()=>n.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:()=>a.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:()=>n.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,read_audio:()=>n.read_audio,rfft:()=>l.rfft,round:()=>c.round,slice:()=>l.slice,softmax:()=>c.softmax,spectrogram:()=>n.spectrogram,stack:()=>l.stack,std_mean:()=>l.std_mean,topk:()=>l.topk,window_function:()=>n.window_function,zeros:()=>l.zeros,zeros_like:()=>l.zeros_like});var e=zt("./src/env.js"),r=zt("./src/pipelines.js"),t=zt("./src/models.js"),s=zt("./src/tokenizers.js"),o=zt("./src/configs.js"),n=zt("./src/utils/audio.js"),a=zt("./src/utils/image.js"),i=zt("./src/utils/video.js"),l=zt("./src/utils/tensor.js"),c=zt("./src/utils/maths.js"),p=zt("./src/base/feature_extraction_utils.js"),u=zt("./src/models/feature_extractors.js"),d=zt("./src/models/auto/feature_extraction_auto.js"),h=zt("./src/base/image_processors_utils.js"),f=zt("./src/models/image_processors.js"),v=zt("./src/models/auto/image_processing_auto.js"),F=zt("./src/base/processing_utils.js"),x=zt("./src/models/processors.js"),w=zt("./src/models/auto/processing_auto.js"),C=zt("./src/generation/streamers.js"),y=zt("./src/generation/stopping_criteria.js"),P=zt("./src/generation/logits_process.js")})();var R$=m.ASTFeatureExtractor,j$=m.ASTForAudioClassification,N$=m.ASTModel,V$=m.ASTPreTrainedModel,W$=m.AlbertForMaskedLM,U$=m.AlbertForQuestionAnswering,G$=m.AlbertForSequenceClassification,K$=m.AlbertModel,q$=m.AlbertPreTrainedModel,H$=m.AlbertTokenizer,Q$=m.ArceeForCausalLM,X$=m.ArceeModel,J$=m.ArceePreTrainedModel,Y$=m.AudioClassificationPipeline,Z$=m.AutoConfig,eD=m.AutoFeatureExtractor,tD=m.AutoImageProcessor,rD=m.AutoModel,sD=m.AutoModelForAudioClassification,oD=m.AutoModelForAudioFrameClassification,nD=m.AutoModelForAudioTextToText,aD=m.AutoModelForCTC,iD=m.AutoModelForCausalLM,lD=m.AutoModelForDepthEstimation,cD=m.AutoModelForDocumentQuestionAnswering,dD=m.AutoModelForImageClassification,uD=m.AutoModelForImageFeatureExtraction,pD=m.AutoModelForImageMatting,_D=m.AutoModelForImageSegmentation,mD=m.AutoModelForImageTextToText,fD=m.AutoModelForImageToImage,hD=m.AutoModelForMaskGeneration,gD=m.AutoModelForMaskedLM,wD=m.AutoModelForNormalEstimation,bD=m.AutoModelForObjectDetection,MD=m.AutoModelForPoseEstimation,xD=m.AutoModelForQuestionAnswering,vD=m.AutoModelForSemanticSegmentation,yD=m.AutoModelForSeq2SeqLM,TD=m.AutoModelForSequenceClassification,PD=m.AutoModelForSpeechSeq2Seq,ED=m.AutoModelForTextToSpectrogram,kD=m.AutoModelForTextToWaveform,CD=m.AutoModelForTokenClassification,SD=m.AutoModelForUniversalSegmentation,FD=m.AutoModelForVision2Seq,ID=m.AutoModelForXVector,AD=m.AutoModelForZeroShotObjectDetection,$D=m.AutoProcessor,DD=m.AutoTokenizer,OD=m.AutomaticSpeechRecognitionPipeline,LD=m.BackgroundRemovalPipeline,BD=m.BartForConditionalGeneration,zD=m.BartForSequenceClassification,RD=m.BartModel,jD=m.BartPretrainedModel,ND=m.BartTokenizer,VD=m.BaseModelOutput,WD=m.BaseStreamer,UD=m.BeitFeatureExtractor,GD=m.BeitForImageClassification,KD=m.BeitModel,qD=m.BeitPreTrainedModel,HD=m.BertForMaskedLM,QD=m.BertForQuestionAnswering,XD=m.BertForSequenceClassification,JD=m.BertForTokenClassification,YD=m.BertModel,ZD=m.BertPreTrainedModel,eO=m.BertTokenizer,tO=m.BitImageProcessor,rO=m.BlenderbotForConditionalGeneration,sO=m.BlenderbotModel,oO=m.BlenderbotPreTrainedModel,nO=m.BlenderbotSmallForConditionalGeneration,aO=m.BlenderbotSmallModel,iO=m.BlenderbotSmallPreTrainedModel,lO=m.BlenderbotSmallTokenizer,cO=m.BlenderbotTokenizer,dO=m.BloomForCausalLM,uO=m.BloomModel,pO=m.BloomPreTrainedModel,_O=m.BloomTokenizer,mO=m.CLIPFeatureExtractor,fO=m.CLIPImageProcessor,hO=m.CLIPModel,gO=m.CLIPPreTrainedModel,wO=m.CLIPSegForImageSegmentation,bO=m.CLIPSegModel,MO=m.CLIPSegPreTrainedModel,xO=m.CLIPTextModel,vO=m.CLIPTextModelWithProjection,yO=m.CLIPTokenizer,TO=m.CLIPVisionModel,PO=m.CLIPVisionModelWithProjection,EO=m.CamembertForMaskedLM,kO=m.CamembertForQuestionAnswering,CO=m.CamembertForSequenceClassification,SO=m.CamembertForTokenClassification,FO=m.CamembertModel,IO=m.CamembertPreTrainedModel,AO=m.CamembertTokenizer,$O=m.CausalLMOutput,DO=m.CausalLMOutputWithPast,OO=m.ChineseCLIPFeatureExtractor,LO=m.ChineseCLIPModel,BO=m.ChineseCLIPPreTrainedModel,zO=m.ClapAudioModelWithProjection,RO=m.ClapFeatureExtractor,jO=m.ClapModel,NO=m.ClapPreTrainedModel,VO=m.ClapTextModelWithProjection,WO=m.ClassifierFreeGuidanceLogitsProcessor,UO=m.CodeGenForCausalLM,GO=m.CodeGenModel,KO=m.CodeGenPreTrainedModel,qO=m.CodeGenTokenizer,HO=m.CodeLlamaTokenizer,QO=m.CohereForCausalLM,XO=m.CohereModel,JO=m.CoherePreTrainedModel,YO=m.CohereTokenizer,ZO=m.ConvBertForMaskedLM,eL=m.ConvBertForQuestionAnswering,tL=m.ConvBertForSequenceClassification,rL=m.ConvBertForTokenClassification,sL=m.ConvBertModel,oL=m.ConvBertPreTrainedModel,nL=m.ConvBertTokenizer,aL=m.ConvNextFeatureExtractor,iL=m.ConvNextForImageClassification,lL=m.ConvNextImageProcessor,cL=m.ConvNextModel,dL=m.ConvNextPreTrainedModel,uL=m.ConvNextV2ForImageClassification,pL=m.ConvNextV2Model,_L=m.ConvNextV2PreTrainedModel,mL=m.DFineForObjectDetection,fL=m.DFineModel,hL=m.DFinePreTrainedModel,gL=m.DPTFeatureExtractor,wL=m.DPTForDepthEstimation,bL=m.DPTImageProcessor,ML=m.DPTModel,xL=m.DPTPreTrainedModel,vL=m.DacDecoderModel,yL=m.DacDecoderOutput,TL=m.DacEncoderModel,PL=m.DacEncoderOutput,EL=m.DacFeatureExtractor,kL=m.DacModel,CL=m.DacPreTrainedModel,SL=m.DataTypeMap,FL=m.DebertaForMaskedLM,IL=m.DebertaForQuestionAnswering,AL=m.DebertaForSequenceClassification,$L=m.DebertaForTokenClassification,DL=m.DebertaModel,OL=m.DebertaPreTrainedModel,LL=m.DebertaTokenizer,BL=m.DebertaV2ForMaskedLM,zL=m.DebertaV2ForQuestionAnswering,RL=m.DebertaV2ForSequenceClassification,jL=m.DebertaV2ForTokenClassification,NL=m.DebertaV2Model,VL=m.DebertaV2PreTrainedModel,WL=m.DebertaV2Tokenizer,UL=m.DecisionTransformerModel,GL=m.DecisionTransformerPreTrainedModel,KL=m.DeiTFeatureExtractor,qL=m.DeiTForImageClassification,HL=m.DeiTImageProcessor,QL=m.DeiTModel,XL=m.DeiTPreTrainedModel,JL=m.DepthAnythingForDepthEstimation,YL=m.DepthAnythingPreTrainedModel,ZL=m.DepthEstimationPipeline,eB=m.DepthProForDepthEstimation,tB=m.DepthProPreTrainedModel,rB=m.DetrFeatureExtractor,sB=m.DetrForObjectDetection,oB=m.DetrForSegmentation,nB=m.DetrImageProcessor,aB=m.DetrModel,iB=m.DetrObjectDetectionOutput,lB=m.DetrPreTrainedModel,cB=m.DetrSegmentationOutput,dB=m.Dinov2ForImageClassification,uB=m.Dinov2Model,pB=m.Dinov2PreTrainedModel,_B=m.Dinov2WithRegistersForImageClassification,mB=m.Dinov2WithRegistersModel,fB=m.Dinov2WithRegistersPreTrainedModel,hB=m.DistilBertForMaskedLM,gB=m.DistilBertForQuestionAnswering,wB=m.DistilBertForSequenceClassification,bB=m.DistilBertForTokenClassification,MB=m.DistilBertModel,xB=m.DistilBertPreTrainedModel,vB=m.DistilBertTokenizer,yB=m.DocumentQuestionAnsweringPipeline,TB=m.DonutFeatureExtractor,PB=m.DonutImageProcessor,EB=m.DonutSwinModel,kB=m.DonutSwinPreTrainedModel,CB=m.EfficientNetForImageClassification,SB=m.EfficientNetImageProcessor,FB=m.EfficientNetModel,IB=m.EfficientNetPreTrainedModel,AB=m.ElectraForMaskedLM,$B=m.ElectraForQuestionAnswering,DB=m.ElectraForSequenceClassification,OB=m.ElectraForTokenClassification,LB=m.ElectraModel,BB=m.ElectraPreTrainedModel,zB=m.ElectraTokenizer,RB=m.EncodecFeatureExtractor,jB=m.EosTokenCriteria,NB=m.Ernie4_5_ForCausalLM,VB=m.Ernie4_5_Model,WB=m.Ernie4_5_PretrainedModel,UB=m.Ernie4_5_Tokenizer,GB=m.EsmForMaskedLM,KB=m.EsmForSequenceClassification,qB=m.EsmForTokenClassification,HB=m.EsmModel,QB=m.EsmPreTrainedModel,XB=m.EsmTokenizer,JB=m.ExaoneForCausalLM,YB=m.ExaoneModel,ZB=m.ExaonePreTrainedModel,e3=m.FFT,t3=m.FalconForCausalLM,r3=m.FalconModel,s3=m.FalconPreTrainedModel,o3=m.FalconTokenizer,n3=m.FastViTForImageClassification,a3=m.FastViTModel,i3=m.FastViTPreTrainedModel,l3=m.FeatureExtractionPipeline,c3=m.FeatureExtractor,d3=m.FillMaskPipeline,u3=m.Florence2ForConditionalGeneration,p3=m.Florence2PreTrainedModel,_3=m.Florence2Processor,m3=m.ForcedBOSTokenLogitsProcessor,f3=m.ForcedEOSTokenLogitsProcessor,h3=m.GLPNFeatureExtractor,g3=m.GLPNForDepthEstimation,w3=m.GLPNModel,b3=m.GLPNPreTrainedModel,M3=m.GPT2LMHeadModel,x3=m.GPT2Model,v3=m.GPT2PreTrainedModel,y3=m.GPT2Tokenizer,T3=m.GPTBigCodeForCausalLM,P3=m.GPTBigCodeModel,E3=m.GPTBigCodePreTrainedModel,k3=m.GPTJForCausalLM,C3=m.GPTJModel,S3=m.GPTJPreTrainedModel,F3=m.GPTNeoForCausalLM,I3=m.GPTNeoModel,A3=m.GPTNeoPreTrainedModel,$3=m.GPTNeoXForCausalLM,D3=m.GPTNeoXModel,O3=m.GPTNeoXPreTrainedModel,L3=m.GPTNeoXTokenizer,B3=m.Gemma2ForCausalLM,z3=m.Gemma2Model,R3=m.Gemma2PreTrainedModel,j3=m.Gemma3ForCausalLM,N3=m.Gemma3Model,V3=m.Gemma3PreTrainedModel,W3=m.Gemma3nAudioFeatureExtractor,U3=m.Gemma3nForConditionalGeneration,G3=m.Gemma3nPreTrainedModel,K3=m.Gemma3nProcessor,q3=m.GemmaForCausalLM,H3=m.GemmaModel,Q3=m.GemmaPreTrainedModel,X3=m.GemmaTokenizer,J3=m.GlmForCausalLM,Y3=m.GlmModel,Z3=m.GlmPreTrainedModel,ez=m.GraniteForCausalLM,tz=m.GraniteModel,rz=m.GranitePreTrainedModel,sz=m.Grok1Tokenizer,oz=m.GroundingDinoForObjectDetection,nz=m.GroundingDinoImageProcessor,az=m.GroundingDinoPreTrainedModel,iz=m.GroundingDinoProcessor,lz=m.GroupViTModel,cz=m.GroupViTPreTrainedModel,dz=m.HeliumForCausalLM,uz=m.HeliumModel,pz=m.HeliumPreTrainedModel,_z=m.HerbertTokenizer,mz=m.HieraForImageClassification,fz=m.HieraModel,hz=m.HieraPreTrainedModel,gz=m.HubertForCTC,wz=m.HubertForSequenceClassification,bz=m.HubertModel,Mz=m.HubertPreTrainedModel,xz=m.IJepaForImageClassification,vz=m.IJepaModel,yz=m.IJepaPreTrainedModel,Tz=m.Idefics3ForConditionalGeneration,Pz=m.Idefics3ImageProcessor,Ez=m.Idefics3PreTrainedModel,kz=m.Idefics3Processor,Cz=m.ImageClassificationPipeline,Sz=m.ImageFeatureExtractionPipeline,Fz=m.ImageFeatureExtractor,Iz=m.ImageMattingOutput,Az=m.ImageProcessor,$z=m.ImageSegmentationPipeline,Dz=m.ImageToImagePipeline,Oz=m.ImageToTextPipeline,Lz=m.InterruptableStoppingCriteria,Bz=m.JAISLMHeadModel,zz=m.JAISModel,Rz=m.JAISPreTrainedModel,jz=m.JinaCLIPImageProcessor,Nz=m.JinaCLIPModel,Vz=m.JinaCLIPPreTrainedModel,Wz=m.JinaCLIPProcessor,Uz=m.JinaCLIPTextModel,Gz=m.JinaCLIPVisionModel,Kz=m.Lfm2ForCausalLM,qz=m.Lfm2Model,Hz=m.Lfm2PreTrainedModel,Qz=m.LiteWhisperForConditionalGeneration,Xz=m.LlamaForCausalLM,Jz=m.LlamaModel,Yz=m.LlamaPreTrainedModel,Zz=m.LlamaTokenizer,eR=m.LlavaForConditionalGeneration,tR=m.LlavaOnevisionForConditionalGeneration,rR=m.LlavaOnevisionImageProcessor,sR=m.LlavaPreTrainedModel,oR=m.LlavaProcessor,nR=m.LlavaQwen2ForCausalLM,aR=m.LogitsProcessor,iR=m.LogitsProcessorList,lR=m.LogitsWarper,cR=m.LongT5ForConditionalGeneration,dR=m.LongT5Model,uR=m.LongT5PreTrainedModel,pR=m.M2M100ForConditionalGeneration,_R=m.M2M100Model,mR=m.M2M100PreTrainedModel,fR=m.M2M100Tokenizer,hR=m.MBart50Tokenizer,gR=m.MBartForCausalLM,wR=m.MBartForConditionalGeneration,bR=m.MBartForSequenceClassification,MR=m.MBartModel,xR=m.MBartPreTrainedModel,vR=m.MBartTokenizer,yR=m.MPNetForMaskedLM,TR=m.MPNetForQuestionAnswering,PR=m.MPNetForSequenceClassification,ER=m.MPNetForTokenClassification,kR=m.MPNetModel,CR=m.MPNetPreTrainedModel,SR=m.MPNetTokenizer,FR=m.MT5ForConditionalGeneration,IR=m.MT5Model,AR=m.MT5PreTrainedModel,$R=m.MarianMTModel,DR=m.MarianModel,OR=m.MarianPreTrainedModel,LR=m.MarianTokenizer,BR=m.Mask2FormerImageProcessor,zR=m.MaskFormerFeatureExtractor,RR=m.MaskFormerForInstanceSegmentation,jR=m.MaskFormerImageProcessor,NR=m.MaskFormerModel,VR=m.MaskFormerPreTrainedModel,WR=m.MaskedLMOutput,UR=m.MaxLengthCriteria,GR=m.Metric3DForDepthEstimation,KR=m.Metric3DPreTrainedModel,qR=m.Metric3Dv2ForDepthEstimation,HR=m.Metric3Dv2PreTrainedModel,QR=m.MgpstrForSceneTextRecognition,XR=m.MgpstrModelOutput,JR=m.MgpstrPreTrainedModel,YR=m.MgpstrProcessor,ZR=m.MgpstrTokenizer,ej=m.MimiDecoderModel,tj=m.MimiDecoderOutput,rj=m.MimiEncoderModel,sj=m.MimiEncoderOutput,oj=m.MimiModel,nj=m.MimiPreTrainedModel,aj=m.MinLengthLogitsProcessor,ij=m.MinNewTokensLengthLogitsProcessor,lj=m.MistralForCausalLM,cj=m.MistralModel,dj=m.MistralPreTrainedModel,uj=m.MobileBertForMaskedLM,pj=m.MobileBertForQuestionAnswering,_j=m.MobileBertForSequenceClassification,mj=m.MobileBertModel,fj=m.MobileBertPreTrainedModel,hj=m.MobileBertTokenizer,gj=m.MobileLLMForCausalLM,wj=m.MobileLLMModel,bj=m.MobileLLMPreTrainedModel,Mj=m.MobileNetV1FeatureExtractor,xj=m.MobileNetV1ForImageClassification,vj=m.MobileNetV1ForSemanticSegmentation,yj=m.MobileNetV1ImageProcessor,Tj=m.MobileNetV1Model,Pj=m.MobileNetV1PreTrainedModel,Ej=m.MobileNetV2FeatureExtractor,kj=m.MobileNetV2ForImageClassification,Cj=m.MobileNetV2ForSemanticSegmentation,Sj=m.MobileNetV2ImageProcessor,Fj=m.MobileNetV2Model,Ij=m.MobileNetV2PreTrainedModel,Aj=m.MobileNetV3FeatureExtractor,$j=m.MobileNetV3ForImageClassification,Dj=m.MobileNetV3ForSemanticSegmentation,Oj=m.MobileNetV3ImageProcessor,Lj=m.MobileNetV3Model,Bj=m.MobileNetV3PreTrainedModel,zj=m.MobileNetV4FeatureExtractor,Rj=m.MobileNetV4ForImageClassification,jj=m.MobileNetV4ForSemanticSegmentation,Nj=m.MobileNetV4ImageProcessor,Vj=m.MobileNetV4Model,Wj=m.MobileNetV4PreTrainedModel,Uj=m.MobileViTFeatureExtractor,Gj=m.MobileViTForImageClassification,Kj=m.MobileViTImageProcessor,qj=m.MobileViTModel,Hj=m.MobileViTPreTrainedModel,Qj=m.MobileViTV2ForImageClassification,Xj=m.MobileViTV2Model,Jj=m.MobileViTV2PreTrainedModel,Yj=m.ModelOutput,Zj=m.ModernBertDecoderForCausalLM,eN=m.ModernBertDecoderModel,tN=m.ModernBertDecoderPreTrainedModel,rN=m.ModernBertForMaskedLM,sN=m.ModernBertForSequenceClassification,oN=m.ModernBertForTokenClassification,nN=m.ModernBertModel,aN=m.ModernBertPreTrainedModel,iN=m.Moondream1ForConditionalGeneration,lN=m.MoonshineFeatureExtractor,cN=m.MoonshineForConditionalGeneration,dN=m.MoonshineModel,uN=m.MoonshinePreTrainedModel,pN=m.MoonshineProcessor,_N=m.MptForCausalLM,mN=m.MptModel,fN=m.MptPreTrainedModel,hN=m.MultiModalityCausalLM,gN=m.MultiModalityPreTrainedModel,wN=m.MusicgenForCausalLM,bN=m.MusicgenForConditionalGeneration,MN=m.MusicgenModel,xN=m.MusicgenPreTrainedModel,vN=m.NeoBertForMaskedLM,yN=m.NeoBertForQuestionAnswering,TN=m.NeoBertForSequenceClassification,PN=m.NeoBertForTokenClassification,EN=m.NeoBertModel,kN=m.NeoBertPreTrainedModel,CN=m.NllbTokenizer,SN=m.NoBadWordsLogitsProcessor,FN=m.NoRepeatNGramLogitsProcessor,IN=m.NomicBertModel,AN=m.NomicBertPreTrainedModel,$N=m.NougatImageProcessor,DN=m.NougatTokenizer,ON=m.OPTForCausalLM,LN=m.OPTModel,BN=m.OPTPreTrainedModel,zN=m.ObjectDetectionPipeline,RN=m.Olmo2ForCausalLM,jN=m.Olmo2Model,NN=m.Olmo2PreTrainedModel,VN=m.OlmoForCausalLM,WN=m.OlmoModel,UN=m.OlmoPreTrainedModel,GN=m.OpenELMForCausalLM,KN=m.OpenELMModel,qN=m.OpenELMPreTrainedModel,HN=m.OwlViTFeatureExtractor,QN=m.OwlViTForObjectDetection,XN=m.OwlViTImageProcessor,JN=m.OwlViTModel,YN=m.OwlViTPreTrainedModel,ZN=m.OwlViTProcessor,eV=m.Owlv2ForObjectDetection,tV=m.Owlv2ImageProcessor,rV=m.Owlv2Model,sV=m.Owlv2PreTrainedModel,oV=m.PaliGemmaForConditionalGeneration,nV=m.PaliGemmaPreTrainedModel,aV=m.PaliGemmaProcessor,iV=m.PatchTSMixerForPrediction,lV=m.PatchTSMixerModel,cV=m.PatchTSMixerPreTrainedModel,dV=m.PatchTSTForPrediction,uV=m.PatchTSTModel,pV=m.PatchTSTPreTrainedModel,_V=m.Phi3ForCausalLM,mV=m.Phi3Model,fV=m.Phi3PreTrainedModel,hV=m.Phi3VForCausalLM,gV=m.Phi3VImageProcessor,wV=m.Phi3VPreTrainedModel,bV=m.Phi3VProcessor,MV=m.PhiForCausalLM,xV=m.PhiModel,vV=m.PhiPreTrainedModel,yV=m.Pipeline,TV=m.PreTrainedModel,PV=m.PreTrainedTokenizer,EV=m.PretrainedConfig,kV=m.PretrainedMixin,CV=m.Processor,SV=m.PvtForImageClassification,FV=m.PvtImageProcessor,IV=m.PvtModel,AV=m.PvtPreTrainedModel,$V=m.PyAnnoteFeatureExtractor,DV=m.PyAnnoteForAudioFrameClassification,OV=m.PyAnnoteModel,LV=m.PyAnnotePreTrainedModel,BV=m.PyAnnoteProcessor,zV=m.QuestionAnsweringModelOutput,RV=m.QuestionAnsweringPipeline,jV=m.Qwen2ForCausalLM,NV=m.Qwen2Model,VV=m.Qwen2PreTrainedModel,WV=m.Qwen2Tokenizer,UV=m.Qwen2VLForConditionalGeneration,GV=m.Qwen2VLImageProcessor,KV=m.Qwen2VLPreTrainedModel,qV=m.Qwen2VLProcessor,HV=m.Qwen3ForCausalLM,QV=m.Qwen3Model,XV=m.Qwen3PreTrainedModel,JV=m.RFDetrForObjectDetection,YV=m.RFDetrModel,ZV=m.RFDetrObjectDetectionOutput,e4=m.RFDetrPreTrainedModel,t4=m.RTDetrForObjectDetection,r4=m.RTDetrImageProcessor,s4=m.RTDetrModel,o4=m.RTDetrObjectDetectionOutput,n4=m.RTDetrPreTrainedModel,a4=m.RTDetrV2ForObjectDetection,i4=m.RTDetrV2Model,l4=m.RTDetrV2ObjectDetectionOutput,c4=m.RTDetrV2PreTrainedModel,d4=m.RawAudio,u4=m.RawImage,p4=m.RawVideo,_4=m.RawVideoFrame,m4=m.RepetitionPenaltyLogitsProcessor,f4=m.ResNetForImageClassification,h4=m.ResNetModel,g4=m.ResNetPreTrainedModel,w4=m.RoFormerForMaskedLM,b4=m.RoFormerForQuestionAnswering,M4=m.RoFormerForSequenceClassification,x4=m.RoFormerForTokenClassification,v4=m.RoFormerModel,y4=m.RoFormerPreTrainedModel,T4=m.RoFormerTokenizer,P4=m.RobertaForMaskedLM,E4=m.RobertaForQuestionAnswering,k4=m.RobertaForSequenceClassification,C4=m.RobertaForTokenClassification,S4=m.RobertaModel,F4=m.RobertaPreTrainedModel,I4=m.RobertaTokenizer,A4=m.SamImageProcessor,$4=m.SamImageSegmentationOutput,D4=m.SamModel,O4=m.SamPreTrainedModel,L4=m.SamProcessor,B4=m.SapiensForDepthEstimation,z4=m.SapiensForNormalEstimation,R4=m.SapiensForSemanticSegmentation,j4=m.SapiensPreTrainedModel,N4=m.SeamlessM4TFeatureExtractor,V4=m.SegformerFeatureExtractor,W4=m.SegformerForImageClassification,U4=m.SegformerForSemanticSegmentation,G4=m.SegformerImageProcessor,K4=m.SegformerModel,q4=m.SegformerPreTrainedModel,H4=m.Seq2SeqLMOutput,Q4=m.SequenceClassifierOutput,X4=m.SiglipImageProcessor,J4=m.SiglipModel,Y4=m.SiglipPreTrainedModel,Z4=m.SiglipTextModel,eW=m.SiglipTokenizer,tW=m.SiglipVisionModel,rW=m.SmolLM3ForCausalLM,sW=m.SmolLM3Model,oW=m.SmolLM3PreTrainedModel,nW=m.SmolVLMForConditionalGeneration,aW=m.SmolVLMImageProcessor,iW=m.SmolVLMProcessor,lW=m.SnacDecoderModel,cW=m.SnacEncoderModel,dW=m.SnacFeatureExtractor,uW=m.SnacModel,pW=m.SnacPreTrainedModel,_W=m.SpeechT5FeatureExtractor,mW=m.SpeechT5ForSpeechToText,fW=m.SpeechT5ForTextToSpeech,hW=m.SpeechT5HifiGan,gW=m.SpeechT5Model,wW=m.SpeechT5PreTrainedModel,bW=m.SpeechT5Processor,MW=m.SpeechT5Tokenizer,xW=m.SqueezeBertForMaskedLM,vW=m.SqueezeBertForQuestionAnswering,yW=m.SqueezeBertForSequenceClassification,TW=m.SqueezeBertModel,PW=m.SqueezeBertPreTrainedModel,EW=m.SqueezeBertTokenizer,kW=m.StableLmForCausalLM,CW=m.StableLmModel,SW=m.StableLmPreTrainedModel,FW=m.Starcoder2ForCausalLM,IW=m.Starcoder2Model,AW=m.Starcoder2PreTrainedModel,$W=m.StoppingCriteria,DW=m.StoppingCriteriaList,OW=m.StyleTextToSpeech2Model,LW=m.StyleTextToSpeech2PreTrainedModel,BW=m.SummarizationPipeline,zW=m.SuppressTokensAtBeginLogitsProcessor,RW=m.Swin2SRForImageSuperResolution,jW=m.Swin2SRImageProcessor,NW=m.Swin2SRModel,VW=m.Swin2SRPreTrainedModel,WW=m.SwinForImageClassification,UW=m.SwinForSemanticSegmentation,GW=m.SwinModel,KW=m.SwinPreTrainedModel,qW=m.T5ForConditionalGeneration,HW=m.T5Model,QW=m.T5PreTrainedModel,XW=m.T5Tokenizer,JW=m.TableTransformerForObjectDetection,YW=m.TableTransformerModel,ZW=m.TableTransformerObjectDetectionOutput,eU=m.TableTransformerPreTrainedModel,tU=m.TemperatureLogitsWarper,rU=m.Tensor,sU=m.Text2TextGenerationPipeline,oU=m.TextClassificationPipeline,nU=m.TextGenerationPipeline,aU=m.TextStreamer,iU=m.TextToAudioPipeline,lU=m.TokenClassificationPipeline,cU=m.TokenClassifierOutput,dU=m.TokenizerModel,uU=m.TopKLogitsWarper,pU=m.TopPLogitsWarper,_U=m.TrOCRForCausalLM,mU=m.TrOCRPreTrainedModel,fU=m.TranslationPipeline,hU=m.UltravoxModel,gU=m.UltravoxPreTrainedModel,wU=m.UltravoxProcessor,bU=m.UniSpeechForCTC,MU=m.UniSpeechForSequenceClassification,xU=m.UniSpeechModel,vU=m.UniSpeechPreTrainedModel,yU=m.UniSpeechSatForAudioFrameClassification,TU=m.UniSpeechSatForCTC,PU=m.UniSpeechSatForSequenceClassification,EU=m.UniSpeechSatModel,kU=m.UniSpeechSatPreTrainedModel,CU=m.VLChatProcessor,SU=m.VLMImageProcessor,FU=m.ViTFeatureExtractor,IU=m.ViTForImageClassification,AU=m.ViTImageProcessor,$U=m.ViTMAEModel,DU=m.ViTMAEPreTrainedModel,OU=m.ViTMSNForImageClassification,LU=m.ViTMSNModel,BU=m.ViTMSNPreTrainedModel,zU=m.ViTModel,RU=m.ViTPreTrainedModel,jU=m.VisionEncoderDecoderModel,NU=m.VitMatteForImageMatting,VU=m.VitMatteImageProcessor,WU=m.VitMattePreTrainedModel,UU=m.VitPoseForPoseEstimation,GU=m.VitPoseImageProcessor,KU=m.VitPosePreTrainedModel,qU=m.VitsModel,HU=m.VitsModelOutput,QU=m.VitsPreTrainedModel,XU=m.VitsTokenizer,JU=m.VoxtralForConditionalGeneration,YU=m.VoxtralProcessor,ZU=m.Wav2Vec2BertForCTC,eG=m.Wav2Vec2BertForSequenceClassification,tG=m.Wav2Vec2BertModel,rG=m.Wav2Vec2BertPreTrainedModel,sG=m.Wav2Vec2CTCTokenizer,oG=m.Wav2Vec2FeatureExtractor,nG=m.Wav2Vec2ForAudioFrameClassification,aG=m.Wav2Vec2ForCTC,iG=m.Wav2Vec2ForSequenceClassification,lG=m.Wav2Vec2Model,cG=m.Wav2Vec2PreTrainedModel,dG=m.Wav2Vec2Processor,uG=m.Wav2Vec2ProcessorWithLM,pG=m.WavLMForAudioFrameClassification,_G=m.WavLMForCTC,mG=m.WavLMForSequenceClassification,fG=m.WavLMForXVector,hG=m.WavLMModel,gG=m.WavLMPreTrainedModel,wG=m.WeSpeakerFeatureExtractor,bG=m.WeSpeakerResNetModel,MG=m.WeSpeakerResNetPreTrainedModel,xG=m.WhisperFeatureExtractor,vG=m.WhisperForConditionalGeneration,yG=m.WhisperModel,TG=m.WhisperPreTrainedModel,PG=m.WhisperProcessor,T0=m.WhisperTextStreamer,EG=m.WhisperTimeStampLogitsProcessor,kG=m.WhisperTokenizer,CG=m.XLMForQuestionAnswering,SG=m.XLMForSequenceClassification,FG=m.XLMForTokenClassification,IG=m.XLMModel,AG=m.XLMPreTrainedModel,$G=m.XLMRobertaForMaskedLM,DG=m.XLMRobertaForQuestionAnswering,OG=m.XLMRobertaForSequenceClassification,LG=m.XLMRobertaForTokenClassification,BG=m.XLMRobertaModel,zG=m.XLMRobertaPreTrainedModel,RG=m.XLMRobertaTokenizer,jG=m.XLMTokenizer,NG=m.XLMWithLMHeadModel,VG=m.XVectorOutput,WG=m.YolosFeatureExtractor,UG=m.YolosForObjectDetection,GG=m.YolosImageProcessor,KG=m.YolosModel,qG=m.YolosObjectDetectionOutput,HG=m.YolosPreTrainedModel,QG=m.ZeroShotAudioClassificationPipeline,XG=m.ZeroShotClassificationPipeline,JG=m.ZeroShotImageClassificationPipeline,YG=m.ZeroShotObjectDetectionPipeline,ZG=m.bankers_round,e8=m.cat,t8=m.cos_sim,r8=m.dot,s8=m.dynamic_time_warping,o8=m.env,n8=m.full,a8=m.full_like,i8=m.getCacheShapes,l8=m.hamming,c8=m.hanning,d8=m.interpolate,u8=m.interpolate_4d,p8=m.interpolate_data,_8=m.is_chinese_char,m8=m.layer_norm,f8=m.load_image,h8=m.load_video,g8=m.log_softmax,w8=m.magnitude,b8=m.matmul,M8=m.max,x8=m.mean,v8=m.mean_pooling,y8=m.medianFilter,T8=m.mel_filter_bank,P8=m.min,E8=m.ones,k8=m.ones_like,C8=m.permute,S8=m.permute_data,P0=m.pipeline,F8=m.quantize_embeddings,I8=m.rand,A8=m.read_audio,$8=m.rfft,D8=m.round,O8=m.slice,L8=m.softmax,B8=m.spectrogram,z8=m.stack,R8=m.std_mean,j8=m.topk,N8=m.window_function,V8=m.zeros,W8=m.zeros_like;async function E0(e){let{spec:r,onLoading:t}=e;return await P0("automatic-speech-recognition",r.model,{device:r.device,dtype:r.dtype,progress_callback:o=>{t({total:o.total,progress:o.progress})}})}async function k0(e){let{pipe:r,spec:t,request:s,callbacks:o}=e;if(!r.processor.feature_extractor)throw new Error("no feature_extractor");let n=r.processor.feature_extractor?.config.chunk_length/r.model.config.max_source_positions,a=0,i=null,l=0,c=0,p=t.chunkLength-t.strideLength,u=()=>{let v=a*p;return Math.min(v/s.duration,1)},d=r.tokenizer,h=new T0(d,{time_precision:n,token_callback_function:()=>{i??=performance.now(),++l>1&&(c=l/(performance.now()-i)*1e3)},callback_function:v=>{o.onTranscription(v),o.onReport({tokensPerSecond:c,progress:u()})},on_finalize:()=>{i=null,l=0,a++,o.onReport({tokensPerSecond:c,progress:u()})}}),f=await r(new Float32Array(s.audio),{top_k:0,do_sample:!1,chunk_length_s:t.chunkLength,stride_length_s:t.strideLength,language:s.language,task:"transcribe",return_timestamps:"word",force_full_sequences:!1,streamer:h});return{text:f.text,chunks:f.chunks}}var C0=Co(),_E=e=>vh(async r=>{C0.resolve({spec:r,pipe:await E0({spec:r,onLoading:t=>e.loading(t)})})});await Uh.worker(e=>({prepare:_E(e.host),async transcribe(t){let{pipe:s,spec:o}=await C0.promise;return k0({pipe:s,spec:o,request:t,callbacks:{onReport:n=>e.host.deliverReport(n),onTranscription:n=>e.host.deliverTranscription(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."),v=u.map(w=>i(w,h,f,a,p.length)));let F=this.tokenizer(v,d);return{...await this.image_processor(p,d),...F}}}},"./src/models/phi3_v/image_processing_phi3_v.js":(e,r,t)=>{t.r(r),t.d(r,{Phi3VImageProcessor:()=>p});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/tensor.js");let n=336,a=[2,3],{ceil:i,floor:l,sqrt:c}=Math;class p 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,h){let{num_img_tokens:f}=this.config;return l((l(h/n)*l(d/n)+1)*f+1+(l(h/n)+1)*c(f))}get_resize_output_image_size(d,h){let f=this._num_crops,[v,F]=d.size,x=v/F,w=1;for(;w*Math.ceil(w/x)<=f;)w+=1;w-=1;let C=Math.floor(w*336),y=Math.floor(C/x);return[C,y]}pad_image(d,h,f,v={}){let[F,x]=h,w=n*i(F/n),C=n*i(x/n),y=[1,1,1].map((P,I)=>(P-this.image_mean[I])/this.image_std[I]);return super.pad_image(d,h,{width:C,height:w},{center:!0,constant_values:y,...v})}async _call(d,{num_crops:h=null}={}){if(this._num_crops=h??=this.config.num_crops,h<4||c(h)%1!==0)throw new Error("num_crops must be a square number >= 4");Array.isArray(d)||(d=[d]);let f=d.length,v=await Promise.all(d.map(g=>this.preprocess(g))),F=v.map(g=>g.original_size),x=v.map(g=>g.reshaped_input_size),w=[];for(let{pixel_values:g}of v){g.unsqueeze_(0);let[E,$]=g.dims.slice(-2),L=await(0,o.interpolate_4d)(g,{size:[n,n],mode:"bicubic"});if(h>0){let G=[],q=c(h),O=l($/q),J=l(E/q);for(let H=0;H<q;++H)for(let te=0;te<q;++te){let re,le,be,z;H===q-1?(le=E-J,z=E):(le=H*J,z=(H+1)*J),te===q-1?(re=$-O,be=$):(re=te*O,be=(te+1)*O);let D=[le,re],K=[z,be],R=await(0,o.slice)(g,D,K,a);G.push(R)}let Q=await(0,o.interpolate_4d)((0,o.cat)(G,0),{size:[n,n],mode:"bicubic"});w.push((0,o.cat)([L,Q],0))}else w.push(L)}let C=(0,o.stack)(w,0),y=x.map(g=>g.map(E=>n*i(E/n))),P=new o.Tensor("int64",y.flat(),[f,2]),I=y.map(([g,E])=>this.calc_num_image_tokens_from_image_size(E,g));return{pixel_values:C,original_sizes:F,reshaped_input_sizes:x,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"),n=t("./src/tokenizers.js"),a=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=n.AutoTokenizer;async _call(u,d=null,{padding:h=!0,truncation:f=!0,num_crops:v=null}={}){Array.isArray(u)||(u=[u]);let F,x;if(d){x=await this.image_processor(d,{num_crops:v});let{num_img_tokens:w}=x,C=u.map((P,I)=>P.split(l).join(i.repeat(w[I])));F=this.tokenizer(C,{padding:h,truncation:f});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,...x}}}},"./src/models/processors.js":(e,r,t)=>{t.r(r),t.d(r,{Florence2Processor:()=>s.Florence2Processor,Gemma3nProcessor:()=>o.Gemma3nProcessor,GroundingDinoProcessor:()=>n.GroundingDinoProcessor,Idefics3Processor:()=>a.Idefics3Processor,JinaCLIPProcessor:()=>l.JinaCLIPProcessor,LlavaProcessor:()=>c.LlavaProcessor,MgpstrProcessor:()=>p.MgpstrProcessor,MoonshineProcessor:()=>u.MoonshineProcessor,OwlViTProcessor:()=>d.OwlViTProcessor,PaliGemmaProcessor:()=>f.PaliGemmaProcessor,Phi3VProcessor:()=>h.Phi3VProcessor,PyAnnoteProcessor:()=>v.PyAnnoteProcessor,Qwen2VLProcessor:()=>F.Qwen2VLProcessor,SamProcessor:()=>x.SamProcessor,SmolVLMProcessor:()=>w.SmolVLMProcessor,SpeechT5Processor:()=>C.SpeechT5Processor,UltravoxProcessor:()=>y.UltravoxProcessor,VLChatProcessor:()=>i.VLChatProcessor,VoxtralProcessor:()=>P.VoxtralProcessor,Wav2Vec2Processor:()=>I.Wav2Vec2Processor,Wav2Vec2ProcessorWithLM:()=>g.Wav2Vec2ProcessorWithLM,WhisperProcessor:()=>E.WhisperProcessor});var s=t("./src/models/florence2/processing_florence2.js"),o=t("./src/models/gemma3n/processing_gemma3n.js"),n=t("./src/models/grounding_dino/processing_grounding_dino.js"),a=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"),p=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"),h=t("./src/models/phi3_v/processing_phi3_v.js"),f=t("./src/models/paligemma/processing_paligemma.js"),v=t("./src/models/pyannote/processing_pyannote.js"),F=t("./src/models/qwen2_vl/processing_qwen2_vl.js"),x=t("./src/models/sam/processing_sam.js"),w=t("./src/models/smolvlm/processing_smolvlm.js"),C=t("./src/models/speecht5/processing_speecht5.js"),y=t("./src/models/ultravox/processing_ultravox.js"),P=t("./src/models/voxtral/processing_voxtral.js"),I=t("./src/models/wav2vec2/processing_wav2vec2.js"),g=t("./src/models/wav2vec2_with_lm/processing_wav2vec2_with_lm.js"),E=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:()=>a});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),n=t("./src/utils/maths.js");class a 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 p=c/this.samples_to_frames(c)/this.config.sampling_rate,u=[];for(let d of l.tolist()){let h=[],f=-1;for(let v=0;v<d.length;++v){let F=(0,n.softmax)(d[v]),[x,w]=(0,n.max)(F),[C,y]=[v,v+1];w!==f?(f=w,h.push({id:w,start:C,end:y,score:x})):(h.at(-1).end=y,h.at(-1).score+=x)}u.push(h.map(({id:v,start:F,end:x,score:w})=>({id:v,start:F*p,end:x*p,confidence:w/(x-F)})))}return u}}},"./src/models/pyannote/processing_pyannote.js":(e,r,t)=>{t.r(r),t.d(r,{PyAnnoteProcessor:()=>n});var s=t("./src/base/processing_utils.js"),o=t("./src/models/pyannote/feature_extraction_pyannote.js");class n 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:()=>n});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/tensor.js");class n extends s.ImageProcessor{async _call(i,...l){let{pixel_values:c,original_sizes:p,reshaped_input_sizes:u}=await super._call(i,...l),d=c,{temporal_patch_size:h,merge_size:f,patch_size:v}=this.config;d.dims[0]===1&&(d=(0,o.cat)(Array.from({length:h},()=>d),0));let F=d.dims[0]/h,x=d.dims[1],w=Math.floor(d.dims[2]/v),C=Math.floor(d.dims[3]/v),y=d.view(F,h,x,Math.floor(w/f),f,v,Math.floor(C/f),f,v).permute(0,3,6,4,7,2,1,5,8).view(F*w*C,x*h*v*v),P=new o.Tensor("int64",[F,w,C],[1,3]);return{pixel_values:y,image_grid_thw:P,original_sizes:p,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"),n=t("./src/tokenizers.js"),a=t("./src/utils/image.js");class i extends s.Processor{static image_processor_class=o.AutoImageProcessor;static tokenizer_class=n.AutoTokenizer;async _call(c,p=null,...u){Array.isArray(c)||(c=[c]);let d,h;if(p&&(d=await this.image_processor(p),h=d.image_grid_thw),h){let v=this.image_processor.config.merge_size**2,F=0,x=h.tolist();c=c.map(w=>{for(;w.includes("<|image_pad|>");){let C=Number(x[F++].reduce((y,P)=>y*P,1n));w=w.replace("<|image_pad|>","<|placeholder|>".repeat(Math.floor(C/v)))}return w.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(...a){return(0,s.post_process_object_detection)(...a)}}},"./src/models/sam/image_processing_sam.js":(e,r,t)=>{t.r(r),t.d(r,{SamImageProcessor:()=>a});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/core.js"),n=t("./src/utils/tensor.js");class a extends s.ImageProcessor{reshape_input_points(l,c,p,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 h=0;h<l.length;++h){let f=c[h],v=p[h],F=[v[0]/f[0],v[1]/f[1]];for(let x=0;x<l[h].length;++x)for(let w=0;w<l[h][x].length;++w)for(let C=0;C<l[h][x][w].length;++C)l[h][x][w][C]*=F[C%2]}return new n.Tensor("float32",Float32Array.from(l.flat(1/0)),d)}add_input_labels(l,c){let p=(0,o.calculateDimensions)(l);if(p.length===2)p=[1,...p],l=[l];else if(p.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(p.some((u,d)=>u!==c.dims[d]))throw Error(`The first ${p.length} dimensions of 'input_points' and 'input_labels' must be the same.`);return new n.Tensor("int64",l.flat(1/0).map(BigInt),p)}async _call(l,{input_points:c=null,input_labels:p=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)),p){if(!d.input_points)throw Error("`input_points` must be provided if `input_labels` are provided.");d.input_labels=this.add_input_labels(p,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,p,{mask_threshold:u=0,binarize:d=!0,pad_size:h=null}={}){let f=[];h=h??this.pad_size;let v=[h.height,h.width];for(let F=0;F<c.length;++F){let x=c[F],w=p[F],C=await(0,n.interpolate_4d)(l[F],{mode:"bilinear",size:v});if(C=C.slice(null,null,[0,w[0]],[0,w[1]]),C=await(0,n.interpolate_4d)(C,{mode:"bilinear",size:x}),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 n.Tensor("bool",P,C.dims)}f.push(C)}return f}generate_crop_boxes(l,c,{crop_n_layers:p=0,overlap_ratio:u=512/1500,points_per_crop:d=32,crop_n_points_downscale_factor:h=1}={}){}}},"./src/models/sam/processing_sam.js":(e,r,t)=>{t.r(r),t.d(r,{SamProcessor:()=>n});var s=t("./src/base/processing_utils.js"),o=t("./src/models/auto/image_processing_auto.js");class n 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/seamless_m4t/feature_extraction_seamless_m4t.js":(e,r,t)=>{t.r(r),t.d(r,{SeamlessM4TFeatureExtractor:()=>a});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),n=t("./src/utils/audio.js");class a extends s.FeatureExtractor{constructor(l){super(l);let c=this.config.sampling_rate,p=(0,n.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(c/2),c,null,"kaldi",!0);this.mel_filters=p,this.window=(0,n.window_function)(400,"povey",{periodic:!1})}async _extract_fbank_features(l,c){return l=l.map(p=>p*32768),(0,n.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:p=2,do_normalize_per_mel_bins:u=!0,return_attention_mask:d=!0}={}){(0,s.validate_audio_inputs)(l,"SeamlessM4TFeatureExtractor");let h=await this._extract_fbank_features(l,this.config.max_length);if(u){let[P,I]=h.dims,g=h.data;for(let E=0;E<I;++E){let $=0;for(let O=0;O<P;++O)$+=g[O*I+E];let L=$/P,G=0;for(let O=0;O<P;++O)G+=(g[O*I+E]-L)**2;G/=P-1;let q=Math.sqrt(G+1e-7);for(let O=0;O<P;++O){let J=O*I+E;g[J]=(g[J]-L)/q}}}let f;if(c){let[P,I]=h.dims,g=h.data,E=P%p;if(E>0){let $=new Float32Array(I*(P+E));$.set(g),$.fill(this.config.padding_value,g.length);let L=P+E;h=new o.Tensor(h.type,$,[L,I]),d&&(f=new o.Tensor("int64",new BigInt64Array(L),[1,L]),f.data.fill(1n,0,P))}}let[v,F]=h.dims,x=this.config.stride;if(v%x!==0)throw new Error(`The number of frames (${v}) must be a multiple of the stride (${x}).`);let C=h.view(1,Math.floor(v/x),F*x),y={input_features:C};if(d){let P=C.dims[1],I=new BigInt64Array(P);if(f){let g=f.data;for(let E=1,$=0;E<v;E+=x,++$)I[$]=g[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:()=>n,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 n 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:()=>a});var s=t("./src/base/processing_utils.js"),o=t("./src/tokenizers.js"),n=t("./src/models/auto/feature_extraction_auto.js");class a extends s.Processor{static tokenizer_class=o.AutoTokenizer;static feature_extractor_class=n.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(a,i,l,c={}){let[p,u,d]=i;return super.pad_image(a,i,{width:u+(l-u%l)%l,height:p+(l-p%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:()=>a});var s=t("./src/models/auto/feature_extraction_auto.js"),o=t("./src/tokenizers.js"),n=t("./src/base/processing_utils.js");class a extends n.Processor{static tokenizer_class=o.AutoTokenizer;static feature_extractor_class=s.AutoFeatureExtractor;static uses_processor_config=!0;async _call(l,c=null,p={}){if(Array.isArray(l))throw new Error("Batched inputs are not supported yet.");let u={};if(c){let h=c.length,{input_features:f}=await this.feature_extractor(c,{...p,max_length:h}),v=Math.round(h/this.config.encoder_ds_factor+1e-4),F=1+Math.ceil(v/this.config.stack_factor);u.audio_token_len=[F],u.audio_values=f;let x=this.config.audio_placeholder;if(!l.includes(x))throw new Error(`The input text does not contain the image token ${x}.`);l=l.replaceAll(x,x.repeat(F))}return{...this.tokenizer(l,{add_special_tokens:!1,...p}),...u}}}},"./src/models/vit/image_processing_vit.js":(e,r,t)=>{t.r(r),t.d(r,{ViTFeatureExtractor:()=>n,ViTImageProcessor:()=>o});var s=t("./src/base/image_processors_utils.js");class o extends s.ImageProcessor{}class n extends o{}},"./src/models/vitmatte/image_processing_vitmatte.js":(e,r,t)=>{t.r(r),t.d(r,{VitMatteImageProcessor:()=>n});var s=t("./src/base/image_processors_utils.js"),o=t("./src/utils/tensor.js");class n 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))),p=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,h)=>(0,o.cat)([d.pixel_values,p[h].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(a,i,{threshold:l=null}={}){let c=a.tolist(),[p,u,d,h]=a.dims,f=[];for(let v=0;v<p;++v){let F=c[v],x=i[v],w=[];for(let C=0;C<x.length;++C){let y=x[C],P=[],I=[],g=[],E=y.at(-2)/h,$=y.at(-1)/d;for(let L=0;L<F.length;++L){let[G,q]=[0,0],O=0,J=-1/0,Q=F[L];for(let te=0;te<Q.length;++te){let re=Q[te];for(let le=0;le<re.length;++le){let be=re[le];O+=be,J=Math.max(J,be),G+=(le+.5)*be,q+=te*be}}if(l!=null&&J<l)continue;let H=[E*G/O,$*q/O];P.push(H),g.push(L),I.push(J)}w.push({bbox:y,scores:I,labels:g,keypoints:P})}f.push(w)}return f}}},"./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"),n=t("./src/base/processing_utils.js"),a=t("./src/utils/tensor.js");let i="[AUDIO]",l="[BEGIN_AUDIO]",c=375;function p(d,h){let f=[];for(let v=0;v<d.length;v+=h)f.push(d.subarray(v,Math.min(v+h,d.length)));return f}class u extends n.Processor{static tokenizer_class=o.AutoTokenizer;static feature_extractor_class=s.AutoFeatureExtractor;static uses_processor_config=!1;async _call(h,f=null,v={}){if(Array.isArray(h))throw new Error("Batched inputs are not supported yet.");let F={};if(f){if(!h.includes(i))throw new Error(`The input text does not contain the audio token ${i}.`);Array.isArray(f)||(f=[f]);let w=h.split(i),C=w.length-1;if(C!==f.length)throw new Error(`The number of audio inputs (${f.length}) does not match the number of audio tokens in the text (${C}).`);let y=this.feature_extractor.config.n_samples,P=f.map(L=>p(L,y)),I=P.map(L=>L.length),g=P.flat(),E=(await Promise.all(g.map(L=>this.feature_extractor(L,v)))).map(L=>L.input_features);F.audio_values=E.length>1?(0,a.cat)(E,0):E[0];let $=w[0];for(let L=0;L<I.length;++L){$+=l;for(let G=0;G<I[L];++G)$+=i.repeat(c);$+=w[L+1]}h=$}return{...this.tokenizer(h,{add_special_tokens:!1,...v}),...F}}}},"./src/models/wav2vec2/feature_extraction_wav2vec2.js":(e,r,t)=>{t.r(r),t.d(r,{Wav2Vec2FeatureExtractor:()=>n});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js");class n extends s.FeatureExtractor{_zero_mean_unit_var_norm(i){let c=i.reduce((u,d)=>u+d,0)/i.length,p=i.reduce((u,d)=>u+(d-c)**2,0)/i.length;return i.map(u=>(u-c)/Math.sqrt(p+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:()=>a});var s=t("./src/tokenizers.js"),o=t("./src/models/auto/feature_extraction_auto.js"),n=t("./src/base/processing_utils.js");class a extends n.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:()=>a});var s=t("./src/tokenizers.js"),o=t("./src/models/auto/feature_extraction_auto.js"),n=t("./src/base/processing_utils.js");class a extends n.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:()=>a});var s=t("./src/base/feature_extraction_utils.js"),o=t("./src/utils/tensor.js"),n=t("./src/utils/audio.js");class a extends s.FeatureExtractor{constructor(l){super(l);let c=this.config.sampling_rate,p=(0,n.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(c/2),c,null,"kaldi",!0);this.mel_filters=p,this.window=(0,n.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,n.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 p=c.mean(1).data,u=c.data,[d,h,f]=c.dims;for(let v=0;v<d;++v){let F=v*h*f,x=v*f;for(let w=0;w<h;++w){let C=F+w*f;for(let y=0;y<f;++y)u[C+y]-=p[x+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:()=>n,whisper_language_to_code:()=>a});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),n=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 a(i){i=i.toLowerCase();let l=n.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"),n=t("./src/utils/audio.js"),a=t("./src/utils/maths.js");class i extends s.FeatureExtractor{constructor(c){super(c),this.config.mel_filters??=(0,n.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,n.window_function)(this.config.n_fft,"hann")}async _extract_fbank_features(c){let p=await(0,n.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=p.data,d=(0,a.max)(u)[0];for(let h=0;h<u.length;++h)u[h]=(Math.max(u[h],d-8)+4)/4;return p}async _call(c,{max_length:p=null}={}){(0,s.validate_audio_inputs)(c,"WhisperFeatureExtractor");let u,d=p??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:()=>a});var s=t("./src/models/auto/feature_extraction_auto.js"),o=t("./src/tokenizers.js"),n=t("./src/base/processing_utils.js");class a extends n.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:()=>n,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 n extends o{}},"./src/ops/registry.js":(e,r,t)=>{t.r(r),t.d(r,{TensorOpRegistry:()=>l});var s=t("./src/backends/onnx.js"),o=t("./src/utils/tensor.js"),n=t("./src/env.js");let a=n.apis.IS_BROWSER_ENV||n.apis.IS_WEBWORKER_ENV,i=async(c,p,u)=>{let d=await(0,s.createInferenceSession)(new Uint8Array(c),p),h=Promise.resolve();return async f=>{let v=(0,s.isONNXProxy)(),F=Object.fromEntries(Object.entries(f).map(([w,C])=>[w,(v?C.clone():C).ort_tensor])),x=await(h=a?h.then(()=>d.run(F)):d.run(F));return Array.isArray(u)?u.map(w=>new o.Tensor(x[w])):new o.Tensor(x[u])}};class l{static session_options={};static get nearest_interpolate_4d(){return this._nearest_interpolate_4d||(this._nearest_interpolate_4d=i([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=i([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=i([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=i([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=i([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=i([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=i([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=i([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:()=>O,AutomaticSpeechRecognitionPipeline:()=>Q,BackgroundRemovalPipeline:()=>le,DepthEstimationPipeline:()=>Ce,DocumentQuestionAnsweringPipeline:()=>K,FeatureExtractionPipeline:()=>G,FillMaskPipeline:()=>y,ImageClassificationPipeline:()=>te,ImageFeatureExtractionPipeline:()=>q,ImageSegmentationPipeline:()=>re,ImageToImagePipeline:()=>ne,ImageToTextPipeline:()=>H,ObjectDetectionPipeline:()=>z,Pipeline:()=>F,QuestionAnsweringPipeline:()=>C,SummarizationPipeline:()=>I,Text2TextGenerationPipeline:()=>P,TextClassificationPipeline:()=>x,TextGenerationPipeline:()=>$,TextToAudioPipeline:()=>R,TokenClassificationPipeline:()=>w,TranslationPipeline:()=>g,ZeroShotAudioClassificationPipeline:()=>J,ZeroShotClassificationPipeline:()=>L,ZeroShotImageClassificationPipeline:()=>be,ZeroShotObjectDetectionPipeline:()=>D,pipeline:()=>Ke});var s=t("./src/tokenizers.js"),o=t("./src/models.js"),n=t("./src/models/auto/processing_auto.js"),a=t("./src/base/processing_utils.js"),i=t("./src/utils/generic.js"),l=t("./src/utils/core.js"),c=t("./src/utils/maths.js"),p=t("./src/utils/audio.js"),u=t("./src/utils/tensor.js"),d=t("./src/utils/image.js");async function h(_e){return Array.isArray(_e)||(_e=[_e]),await Promise.all(_e.map(Z=>d.RawImage.read(Z)))}async function f(_e,Z){return Array.isArray(_e)||(_e=[_e]),await Promise.all(_e.map(V=>typeof V=="string"||V instanceof URL?(0,p.read_audio)(V,Z):V instanceof Float64Array?new Float32Array(V):V))}function v(_e,Z){Z&&(_e=_e.map(pe=>pe|0));let[V,fe,Se,Pe]=_e;return{xmin:V,ymin:fe,xmax:Se,ymax:Pe}}class F extends i.Callable{constructor({task:Z,model:V,tokenizer:fe=null,processor:Se=null}){super(),this.task=Z,this.model=V,this.tokenizer=fe,this.processor=Se}async dispose(){await this.model.dispose()}}class x extends F{constructor(Z){super(Z)}async _call(Z,{top_k:V=1}={}){let fe=this.tokenizer(Z,{padding:!0,truncation:!0}),Se=await this.model(fe),Pe=this.model.config.problem_type==="multi_label_classification"?de=>de.sigmoid():de=>new u.Tensor("float32",(0,c.softmax)(de.data),de.dims),pe=this.model.config.id2label,xe=[];for(let de of Se.logits){let Ae=Pe(de),$e=await(0,u.topk)(Ae,V),Ue=$e[0].tolist(),je=$e[1].tolist().map((Ge,Ve)=>({label:pe?pe[Ge]:`LABEL_${Ge}`,score:Ue[Ve]}));V===1?xe.push(...je):xe.push(je)}return Array.isArray(Z)||V===1?xe:xe[0]}}class w extends F{constructor(Z){super(Z)}async _call(Z,{ignore_labels:V=["O"]}={}){let fe=Array.isArray(Z),Se=this.tokenizer(fe?Z:[Z],{padding:!0,truncation:!0}),pe=(await this.model(Se)).logits,xe=this.model.config.id2label,de=[];for(let Ae=0;Ae<pe.dims[0];++Ae){let $e=Se.input_ids[Ae],Ue=pe[Ae],Ee=[];for(let je=0;je<Ue.dims[0];++je){let Ge=Ue[je],Ve=(0,c.max)(Ge.data)[1],De=xe?xe[Ve]:`LABEL_${Ve}`;if(V.includes(De))continue;let ot=this.tokenizer.decode([$e[je].item()],{skip_special_tokens:!0});if(ot==="")continue;let lt=(0,c.softmax)(Ge.data);Ee.push({entity:De,score:lt[Ve],index:je,word:ot})}de.push(Ee)}return fe?de:de[0]}}class C extends F{constructor(Z){super(Z)}async _call(Z,V,{top_k:fe=1}={}){let Se=this.tokenizer(Z,{text_pair:V,padding:!0,truncation:!0}),{start_logits:Pe,end_logits:pe}=await this.model(Se),xe=Se.input_ids.tolist(),de=Se.attention_mask.tolist(),Ae=this.tokenizer.all_special_ids,$e=[];for(let Ue=0;Ue<Pe.dims[0];++Ue){let Ee=xe[Ue],je=Ee.findIndex(Ye=>Ye==this.tokenizer.sep_token_id),Ge=de[Ue].map((Ye,ft)=>Ye==1&&(ft===0||ft>je&&Ae.findIndex(yt=>yt==Ee[ft])===-1)),Ve=Pe[Ue].tolist(),De=pe[Ue].tolist();for(let Ye=1;Ye<Ve.length;++Ye)(de[Ue]==0||Ye<=je||Ae.findIndex(ft=>ft==Ee[Ye])!==-1)&&(Ve[Ye]=-1/0,De[Ye]=-1/0);let ot=(0,c.softmax)(Ve).map((Ye,ft)=>[Ye,ft]),lt=(0,c.softmax)(De).map((Ye,ft)=>[Ye,ft]);ot[0][0]=0,lt[0][0]=0;let rt=(0,l.product)(ot,lt).filter(Ye=>Ye[0][1]<=Ye[1][1]).map(Ye=>[Ye[0][1],Ye[1][1],Ye[0][0]*Ye[1][0]]).sort((Ye,ft)=>ft[2]-Ye[2]);for(let Ye=0;Ye<Math.min(rt.length,fe);++Ye){let[ft,yt,Ot]=rt[Ye],vr=Ee.slice(ft,yt+1),zr=this.tokenizer.decode(vr,{skip_special_tokens:!0});$e.push({answer:zr,score:Ot})}}return fe===1?$e[0]:$e}}class y extends F{constructor(Z){super(Z)}async _call(Z,{top_k:V=5}={}){let fe=this.tokenizer(Z,{padding:!0,truncation:!0}),{logits:Se}=await this.model(fe),Pe=[],pe=fe.input_ids.tolist();for(let xe=0;xe<pe.length;++xe){let de=pe[xe],Ae=de.findIndex(Ge=>Ge==this.tokenizer.mask_token_id);if(Ae===-1)throw Error(`Mask token (${this.tokenizer.mask_token}) not found in text.`);let $e=Se[xe][Ae],Ue=await(0,u.topk)(new u.Tensor("float32",(0,c.softmax)($e.data),$e.dims),V),Ee=Ue[0].tolist(),je=Ue[1].tolist();Pe.push(je.map((Ge,Ve)=>{let De=de.slice();return De[Ae]=Ge,{score:Ee[Ve],token:Number(Ge),token_str:this.tokenizer.decode([Ge]),sequence:this.tokenizer.decode(De,{skip_special_tokens:!0})}}))}return Array.isArray(Z)?Pe:Pe[0]}}class P extends F{_key="generated_text";constructor(Z){super(Z)}async _call(Z,V={}){Array.isArray(Z)||(Z=[Z]),this.model.config.prefix&&(Z=Z.map(de=>this.model.config.prefix+de));let fe=this.model.config.task_specific_params;fe&&fe[this.task]&&fe[this.task].prefix&&(Z=Z.map(de=>fe[this.task].prefix+de));let Se=this.tokenizer,Pe={padding:!0,truncation:!0},pe;this instanceof g&&"_build_translation_inputs"in Se?pe=Se._build_translation_inputs(Z,Pe,V):pe=Se(Z,Pe);let xe=await this.model.generate({...pe,...V});return Se.batch_decode(xe,{skip_special_tokens:!0}).map(de=>({[this._key]:de}))}}class I extends P{_key="summary_text";constructor(Z){super(Z)}}class g extends P{_key="translation_text";constructor(Z){super(Z)}}function E(_e){return Array.isArray(_e)&&_e.every(Z=>"role"in Z&&"content"in Z)}class $ extends F{constructor(Z){super(Z)}async _call(Z,V={}){let fe=!1,Se=!1,Pe=V.add_special_tokens??(this.tokenizer.add_bos_token||this.tokenizer.add_eos_token)??!1,pe;if(typeof Z=="string")pe=Z=[Z];else if(Array.isArray(Z)&&Z.every(je=>typeof je=="string"))fe=!0,pe=Z;else{if(E(Z))Z=[Z];else if(Array.isArray(Z)&&Z.every(E))fe=!0;else throw new Error("Input must be a string, an array of strings, a Chat, or an array of Chats");Se=!0,pe=Z.map(je=>this.tokenizer.apply_chat_template(je,{tokenize:!1,add_generation_prompt:!0})),Pe=!1}let xe=Se?!1:V.return_full_text??!0;this.tokenizer.padding_side="left";let de=this.tokenizer(pe,{add_special_tokens:Pe,padding:!0,truncation:!0}),Ae=await this.model.generate({...de,...V}),$e=this.tokenizer.batch_decode(Ae,{skip_special_tokens:!0}),Ue;!xe&&de.input_ids.dims.at(-1)>0&&(Ue=this.tokenizer.batch_decode(de.input_ids,{skip_special_tokens:!0}).map(je=>je.length));let Ee=Array.from({length:Z.length},je=>[]);for(let je=0;je<$e.length;++je){let Ge=Math.floor(je/Ae.dims[0]*Z.length);Ue&&($e[je]=$e[je].slice(Ue[Ge])),Ee[Ge].push({generated_text:Se?[...Z[Ge],{role:"assistant",content:$e[je]}]:$e[je]})}return!fe&&Ee.length===1?Ee[0]:Ee}}class L extends F{constructor(Z){super(Z),this.label2id=Object.fromEntries(Object.entries(this.model.config.label2id).map(([V,fe])=>[V.toLowerCase(),fe])),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(Z,V,{hypothesis_template:fe="This example is {}.",multi_label:Se=!1}={}){let Pe=Array.isArray(Z);Pe||(Z=[Z]),Array.isArray(V)||(V=[V]);let pe=V.map(Ae=>fe.replace("{}",Ae)),xe=Se||V.length===1,de=[];for(let Ae of Z){let $e=[];for(let je of pe){let Ge=this.tokenizer(Ae,{text_pair:je,padding:!0,truncation:!0}),Ve=await this.model(Ge);xe?$e.push([Ve.logits.data[this.contradiction_id],Ve.logits.data[this.entailment_id]]):$e.push(Ve.logits.data[this.entailment_id])}let Ee=(xe?$e.map(je=>(0,c.softmax)(je)[1]):(0,c.softmax)($e)).map((je,Ge)=>[je,Ge]).sort((je,Ge)=>Ge[0]-je[0]);de.push({sequence:Ae,labels:Ee.map(je=>V[je[1]]),scores:Ee.map(je=>je[0])})}return Pe?de:de[0]}}class G extends F{constructor(Z){super(Z)}async _call(Z,{pooling:V="none",normalize:fe=!1,quantize:Se=!1,precision:Pe="binary"}={}){let pe=this.tokenizer(Z,{padding:!0,truncation:!0}),xe=await this.model(pe),de=xe.last_hidden_state??xe.logits??xe.token_embeddings;switch(V){case"none":break;case"mean":de=(0,u.mean_pooling)(de,pe.attention_mask);break;case"first_token":case"cls":de=de.slice(null,0);break;case"last_token":case"eos":de=de.slice(null,-1);break;default:throw Error(`Pooling method '${V}' not supported.`)}return fe&&(de=de.normalize(2,-1)),Se&&(de=(0,u.quantize_embeddings)(de,Pe)),de}}class q extends F{constructor(Z){super(Z)}async _call(Z,{pool:V=null}={}){let fe=await h(Z),{pixel_values:Se}=await this.processor(fe),Pe=await this.model({pixel_values:Se}),pe;if(V){if(!("pooler_output"in Pe))throw Error("No pooled output was returned. Make sure the model has a 'pooler' layer when using the 'pool' option.");pe=Pe.pooler_output}else pe=Pe.last_hidden_state??Pe.logits??Pe.image_embeds;return pe}}class O extends F{constructor(Z){super(Z)}async _call(Z,{top_k:V=5}={}){let fe=this.processor.feature_extractor.config.sampling_rate,Se=await f(Z,fe),Pe=this.model.config.id2label,pe=[];for(let xe of Se){let de=await this.processor(xe),$e=(await this.model(de)).logits[0],Ue=await(0,u.topk)(new u.Tensor("float32",(0,c.softmax)($e.data),$e.dims),V),Ee=Ue[0].tolist(),Ge=Ue[1].tolist().map((Ve,De)=>({label:Pe?Pe[Ve]:`LABEL_${Ve}`,score:Ee[De]}));pe.push(Ge)}return Array.isArray(Z)?pe:pe[0]}}class J extends F{constructor(Z){super(Z)}async _call(Z,V,{hypothesis_template:fe="This is a sound of {}."}={}){let Se=!Array.isArray(Z);Se&&(Z=[Z]);let Pe=V.map($e=>fe.replace("{}",$e)),pe=this.tokenizer(Pe,{padding:!0,truncation:!0}),xe=this.processor.feature_extractor.config.sampling_rate,de=await f(Z,xe),Ae=[];for(let $e of de){let Ue=await this.processor($e),Ee=await this.model({...pe,...Ue}),je=(0,c.softmax)(Ee.logits_per_audio.data);Ae.push([...je].map((Ge,Ve)=>({score:Ge,label:V[Ve]})))}return Se?Ae[0]:Ae}}class Q extends F{constructor(Z){super(Z)}async _call(Z,V={}){switch(this.model.config.model_type){case"whisper":case"lite-whisper":return this._call_whisper(Z,V);case"wav2vec2":case"wav2vec2-bert":case"unispeech":case"unispeech-sat":case"hubert":return this._call_wav2vec2(Z,V);case"moonshine":return this._call_moonshine(Z,V);default:throw new Error(`AutomaticSpeechRecognitionPipeline does not support model type '${this.model.config.model_type}'.`)}}async _call_wav2vec2(Z,V){V.language&&console.warn('`language` parameter is not yet supported for `wav2vec2` models, defaulting to "English".'),V.task&&console.warn('`task` parameter is not yet supported for `wav2vec2` models, defaulting to "transcribe".');let fe=!Array.isArray(Z);fe&&(Z=[Z]);let Se=this.processor.feature_extractor.config.sampling_rate,Pe=await f(Z,Se),pe=[];for(let xe of Pe){let de=await this.processor(xe),$e=(await this.model(de)).logits[0],Ue=[];for(let je of $e)Ue.push((0,c.max)(je.data)[1]);let Ee=this.tokenizer.decode(Ue);pe.push({text:Ee})}return fe?pe[0]:pe}async _call_whisper(Z,V){let fe=V.return_timestamps??!1,Se=V.chunk_length_s??0,Pe=V.force_full_sequences??!1,pe=V.stride_length_s??null,xe={...V};fe==="word"&&(xe.return_token_timestamps=!0,xe.return_timestamps=!1);let de=!Array.isArray(Z);de&&(Z=[Z]);let Ae=this.processor.feature_extractor.config.chunk_length/this.model.config.max_source_positions,$e=this.processor.feature_extractor.config.hop_length,Ue=this.processor.feature_extractor.config.sampling_rate,Ee=await f(Z,Ue),je=[];for(let Ge of Ee){let Ve=[];if(Se>0){if(pe===null)pe=Se/6;else if(Se<=pe)throw Error("`chunk_length_s` must be larger than `stride_length_s`.");let lt=Ue*Se,rt=Ue*pe,Ye=lt-2*rt,ft=0;for(;;){let yt=ft+lt,Ot=Ge.subarray(ft,yt),vr=await this.processor(Ot),zr=ft===0,Rr=yt>=Ge.length;if(Ve.push({stride:[Ot.length,zr?0:rt,Rr?0:rt],input_features:vr.input_features,is_last:Rr}),Rr)break;ft+=Ye}}else Ve=[{stride:[Ge.length,0,0],input_features:(await this.processor(Ge)).input_features,is_last:!0}];for(let lt of Ve){xe.num_frames=Math.floor(lt.stride[0]/$e);let rt=await this.model.generate({inputs:lt.input_features,...xe});fe==="word"?(lt.tokens=rt.sequences.tolist()[0],lt.token_timestamps=rt.token_timestamps.tolist()[0].map(Ye=>(0,c.round)(Ye,2))):lt.tokens=rt[0].tolist(),lt.stride=lt.stride.map(Ye=>Ye/Ue)}let[De,ot]=this.tokenizer._decode_asr(Ve,{time_precision:Ae,return_timestamps:fe,force_full_sequences:Pe});je.push({text:De,...ot})}return de?je[0]:je}async _call_moonshine(Z,V){let fe=!Array.isArray(Z);fe&&(Z=[Z]);let Se=this.processor.feature_extractor.config.sampling_rate,Pe=await f(Z,Se),pe=[];for(let xe of Pe){let de=await this.processor(xe),Ae=Math.floor(xe.length/Se)*6,$e=await this.model.generate({max_new_tokens:Ae,...V,...de}),Ue=this.processor.batch_decode($e,{skip_special_tokens:!0})[0];pe.push({text:Ue})}return fe?pe[0]:pe}}class H extends F{constructor(Z){super(Z)}async _call(Z,V={}){let fe=Array.isArray(Z),Se=await h(Z),{pixel_values:Pe}=await this.processor(Se),pe=[];for(let xe of Pe){xe.dims=[1,...xe.dims];let de=await this.model.generate({inputs:xe,...V}),Ae=this.tokenizer.batch_decode(de,{skip_special_tokens:!0}).map($e=>({generated_text:$e.trim()}));pe.push(Ae)}return fe?pe:pe[0]}}class te extends F{constructor(Z){super(Z)}async _call(Z,{top_k:V=5}={}){let fe=await h(Z),{pixel_values:Se}=await this.processor(fe),Pe=await this.model({pixel_values:Se}),pe=this.model.config.id2label,xe=[];for(let de of Pe.logits){let Ae=await(0,u.topk)(new u.Tensor("float32",(0,c.softmax)(de.data),de.dims),V),$e=Ae[0].tolist(),Ee=Ae[1].tolist().map((je,Ge)=>({label:pe?pe[je]:`LABEL_${je}`,score:$e[Ge]}));xe.push(Ee)}return Array.isArray(Z)?xe:xe[0]}}class re extends F{constructor(Z){super(Z),this.subtasks_mapping={panoptic:"post_process_panoptic_segmentation",instance:"post_process_instance_segmentation",semantic:"post_process_semantic_segmentation"}}async _call(Z,{threshold:V=.5,mask_threshold:fe=.5,overlap_mask_area_threshold:Se=.8,label_ids_to_fuse:Pe=null,target_sizes:pe=null,subtask:xe=null}={}){if(Array.isArray(Z)&&Z.length!==1)throw Error("Image segmentation pipeline currently only supports a batch size of 1.");let Ae=await h(Z),$e=Ae.map(lt=>[lt.height,lt.width]),Ue=await this.processor(Ae),{inputNames:Ee,outputNames:je}=this.model.sessions.model;if(!Ee.includes("pixel_values")){if(Ee.length!==1)throw Error(`Expected a single input name, but got ${Ee.length} inputs: ${Ee}.`);let lt=Ee[0];if(lt in Ue)throw Error(`Input name ${lt} already exists in the inputs.`);Ue[lt]=Ue.pixel_values}let Ge=await this.model(Ue),Ve=null;if(xe!==null)Ve=this.subtasks_mapping[xe];else if(this.processor.image_processor){for(let[lt,rt]of Object.entries(this.subtasks_mapping))if(rt in this.processor.image_processor){Ve=this.processor.image_processor[rt].bind(this.processor.image_processor),xe=lt;break}}let De=this.model.config.id2label,ot=[];if(xe)if(xe==="panoptic"||xe==="instance"){let lt=Ve(Ge,V,fe,Se,Pe,pe??$e)[0],rt=lt.segmentation;for(let Ye of lt.segments_info){let ft=new Uint8ClampedArray(rt.data.length);for(let Ot=0;Ot<rt.data.length;++Ot)rt.data[Ot]===Ye.id&&(ft[Ot]=255);let yt=new d.RawImage(ft,rt.dims[1],rt.dims[0],1);ot.push({score:Ye.score,label:De[Ye.label_id],mask:yt})}}else if(xe==="semantic"){let{segmentation:lt,labels:rt}=Ve(Ge,pe??$e)[0];for(let Ye of rt){let ft=new Uint8ClampedArray(lt.data.length);for(let Ot=0;Ot<lt.data.length;++Ot)lt.data[Ot]===Ye&&(ft[Ot]=255);let yt=new d.RawImage(ft,lt.dims[1],lt.dims[0],1);ot.push({score:null,label:De[Ye],mask:yt})}}else throw Error(`Subtask ${xe} not supported.`);else{let rt=Ge[je[0]];for(let Ye=0;Ye<$e.length;++Ye){let ft=$e[Ye],yt=rt[Ye];yt.data.some(vr=>vr<-1e-5||vr>1+1e-5)&&yt.sigmoid_();let Ot=await d.RawImage.fromTensor(yt.mul_(255).to("uint8")).resize(ft[1],ft[0]);ot.push({label:null,score:null,mask:Ot})}}return ot}}class le extends re{constructor(Z){super(Z)}async _call(Z,V={}){if(Array.isArray(Z)&&Z.length!==1)throw Error("Background removal pipeline currently only supports a batch size of 1.");let Se=await h(Z),Pe=await super._call(Z,V);return Se.map((xe,de)=>{let Ae=xe.clone();return Ae.putAlpha(Pe[de].mask),Ae})}}class be extends F{constructor(Z){super(Z)}async _call(Z,V,{hypothesis_template:fe="This is a photo of {}"}={}){let Se=Array.isArray(Z),Pe=await h(Z),pe=V.map(Ee=>fe.replace("{}",Ee)),xe=this.tokenizer(pe,{padding:this.model.config.model_type==="siglip"?"max_length":!0,truncation:!0}),{pixel_values:de}=await this.processor(Pe),Ae=await this.model({...xe,pixel_values:de}),$e=this.model.config.model_type==="siglip"?Ee=>Ee.sigmoid().data:Ee=>(0,c.softmax)(Ee.data),Ue=[];for(let Ee of Ae.logits_per_image){let Ge=[...$e(Ee)].map((Ve,De)=>({score:Ve,label:V[De]}));Ge.sort((Ve,De)=>De.score-Ve.score),Ue.push(Ge)}return Se?Ue:Ue[0]}}class z extends F{constructor(Z){super(Z)}async _call(Z,{threshold:V=.9,percentage:fe=!1}={}){let Se=Array.isArray(Z);if(Se&&Z.length!==1)throw Error("Object detection pipeline currently only supports a batch size of 1.");let Pe=await h(Z),pe=fe?null:Pe.map(je=>[je.height,je.width]),{pixel_values:xe,pixel_mask:de}=await this.processor(Pe),Ae=await this.model({pixel_values:xe,pixel_mask:de}),$e=this.processor.image_processor.post_process_object_detection(Ae,V,pe),Ue=this.model.config.id2label,Ee=$e.map(je=>je.boxes.map((Ge,Ve)=>({score:je.scores[Ve],label:Ue[je.classes[Ve]],box:v(Ge,!fe)})));return Se?Ee:Ee[0]}}class D extends F{constructor(Z){super(Z)}async _call(Z,V,{threshold:fe=.1,top_k:Se=null,percentage:Pe=!1}={}){let pe=Array.isArray(Z),xe=await h(Z),de=this.tokenizer(V,{padding:!0,truncation:!0}),Ae=await this.processor(xe),$e=[];for(let Ue=0;Ue<xe.length;++Ue){let Ee=xe[Ue],je=Pe?null:[[Ee.height,Ee.width]],Ge=Ae.pixel_values[Ue].unsqueeze_(0),Ve=await this.model({...de,pixel_values:Ge}),De;if("post_process_grounded_object_detection"in this.processor){let ot=this.processor.post_process_grounded_object_detection(Ve,de.input_ids,{box_threshold:fe,text_threshold:fe,target_sizes:je})[0];De=ot.boxes.map((lt,rt)=>({score:ot.scores[rt],label:ot.labels[rt],box:v(lt,!Pe)}))}else{let ot=this.processor.image_processor.post_process_object_detection(Ve,fe,je,!0)[0];De=ot.boxes.map((lt,rt)=>({score:ot.scores[rt],label:V[ot.classes[rt]],box:v(lt,!Pe)}))}De.sort((ot,lt)=>lt.score-ot.score),Se!==null&&(De=De.slice(0,Se)),$e.push(De)}return pe?$e:$e[0]}}class K extends F{constructor(Z){super(Z)}async _call(Z,V,fe={}){let Se=(await h(Z))[0],{pixel_values:Pe}=await this.processor(Se),pe=`<s_docvqa><s_question>${V}</s_question><s_answer>`,xe=this.tokenizer(pe,{add_special_tokens:!1,padding:!0,truncation:!0}).input_ids,de=await this.model.generate({inputs:Pe,max_length:this.model.config.decoder.max_position_embeddings,decoder_input_ids:xe,...fe}),$e=this.tokenizer.batch_decode(de)[0].match(/<s_answer>(.*?)<\/s_answer>/),Ue=null;return $e&&$e.length>=2&&(Ue=$e[1].trim()),[{answer:Ue}]}}class R extends F{DEFAULT_VOCODER_ID="Xenova/speecht5_hifigan";constructor(Z){super(Z),this.vocoder=Z.vocoder??null}async _call(Z,{speaker_embeddings:V=null}={}){return this.processor?this._call_text_to_spectrogram(Z,{speaker_embeddings:V}):this._call_text_to_waveform(Z)}async _call_text_to_waveform(Z){let V=this.tokenizer(Z,{padding:!0,truncation:!0}),{waveform:fe}=await this.model(V),Se=this.model.config.sampling_rate;return new p.RawAudio(fe.data,Se)}async _call_text_to_spectrogram(Z,{speaker_embeddings:V}){if(this.vocoder||(console.log("No vocoder specified, using default HifiGan vocoder."),this.vocoder=await o.AutoModel.from_pretrained(this.DEFAULT_VOCODER_ID,{dtype:"fp32"})),(typeof V=="string"||V instanceof URL)&&(V=new Float32Array(await(await fetch(V)).arrayBuffer())),V instanceof Float32Array)V=new u.Tensor("float32",V,[1,V.length]);else if(!(V instanceof u.Tensor))throw new Error("Speaker embeddings must be a `Tensor`, `Float32Array`, `string`, or `URL`.");let{input_ids:fe}=this.tokenizer(Z,{padding:!0,truncation:!0}),{waveform:Se}=await this.model.generate_speech(fe,V,{vocoder:this.vocoder}),Pe=this.processor.feature_extractor.config.sampling_rate;return new p.RawAudio(Se.data,Pe)}}class ne extends F{constructor(Z){super(Z)}async _call(Z){let V=await h(Z),fe=await this.processor(V),Se=await this.model(fe),Pe=[];for(let pe of Se.reconstruction){let xe=pe.squeeze().clamp_(0,1).mul_(255).round_().to("uint8");Pe.push(d.RawImage.fromTensor(xe))}return Pe.length>1?Pe:Pe[0]}}class Ce extends F{constructor(Z){super(Z)}async _call(Z){let V=await h(Z),fe=await this.processor(V),{predicted_depth:Se}=await this.model(fe),Pe=[];for(let pe=0;pe<V.length;++pe){let xe=Se[pe],[de,Ae]=xe.dims.slice(-2),[$e,Ue]=V[pe].size,Ee=(await(0,u.interpolate_4d)(xe.view(1,1,de,Ae),{size:[Ue,$e],mode:"bilinear"})).view(Ue,$e),je=Ee.min().item(),Ge=Ee.max().item(),Ve=Ee.sub(je).div_(Ge-je).mul_(255).to("uint8").unsqueeze(0),De=d.RawImage.fromTensor(Ve);Pe.push({predicted_depth:Ee,depth:De})}return Pe.length>1?Pe:Pe[0]}}let Me=Object.freeze({"text-classification":{tokenizer:s.AutoTokenizer,pipeline:x,model:o.AutoModelForSequenceClassification,default:{model:"Xenova/distilbert-base-uncased-finetuned-sst-2-english"},type:"text"},"token-classification":{tokenizer:s.AutoTokenizer,pipeline:w,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:g,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:$,model:o.AutoModelForCausalLM,default:{model:"Xenova/gpt2"},type:"text"},"zero-shot-classification":{tokenizer:s.AutoTokenizer,pipeline:L,model:o.AutoModelForSequenceClassification,default:{model:"Xenova/distilbert-base-uncased-mnli"},type:"text"},"audio-classification":{pipeline:O,model:o.AutoModelForAudioClassification,processor:n.AutoProcessor,default:{model:"Xenova/wav2vec2-base-superb-ks"},type:"audio"},"zero-shot-audio-classification":{tokenizer:s.AutoTokenizer,pipeline:J,model:o.AutoModel,processor:n.AutoProcessor,default:{model:"Xenova/clap-htsat-unfused"},type:"multimodal"},"automatic-speech-recognition":{tokenizer:s.AutoTokenizer,pipeline:Q,model:[o.AutoModelForSpeechSeq2Seq,o.AutoModelForCTC],processor:n.AutoProcessor,default:{model:"Xenova/whisper-tiny.en"},type:"multimodal"},"text-to-audio":{tokenizer:s.AutoTokenizer,pipeline:R,model:[o.AutoModelForTextToWaveform,o.AutoModelForTextToSpectrogram],processor:[n.AutoProcessor,null],default:{model:"Xenova/speecht5_tts"},type:"text"},"image-to-text":{tokenizer:s.AutoTokenizer,pipeline:H,model:o.AutoModelForVision2Seq,processor:n.AutoProcessor,default:{model:"Xenova/vit-gpt2-image-captioning"},type:"multimodal"},"image-classification":{pipeline:te,model:o.AutoModelForImageClassification,processor:n.AutoProcessor,default:{model:"Xenova/vit-base-patch16-224"},type:"multimodal"},"image-segmentation":{pipeline:re,model:[o.AutoModelForImageSegmentation,o.AutoModelForSemanticSegmentation,o.AutoModelForUniversalSegmentation],processor:n.AutoProcessor,default:{model:"Xenova/detr-resnet-50-panoptic"},type:"multimodal"},"background-removal":{pipeline:le,model:[o.AutoModelForImageSegmentation,o.AutoModelForSemanticSegmentation,o.AutoModelForUniversalSegmentation],processor:n.AutoProcessor,default:{model:"Xenova/modnet"},type:"image"},"zero-shot-image-classification":{tokenizer:s.AutoTokenizer,pipeline:be,model:o.AutoModel,processor:n.AutoProcessor,default:{model:"Xenova/clip-vit-base-patch32"},type:"multimodal"},"object-detection":{pipeline:z,model:o.AutoModelForObjectDetection,processor:n.AutoProcessor,default:{model:"Xenova/detr-resnet-50"},type:"multimodal"},"zero-shot-object-detection":{tokenizer:s.AutoTokenizer,pipeline:D,model:o.AutoModelForZeroShotObjectDetection,processor:n.AutoProcessor,default:{model:"Xenova/owlvit-base-patch32"},type:"multimodal"},"document-question-answering":{tokenizer:s.AutoTokenizer,pipeline:K,model:o.AutoModelForDocumentQuestionAnswering,processor:n.AutoProcessor,default:{model:"Xenova/donut-base-finetuned-docvqa"},type:"multimodal"},"image-to-image":{pipeline:ne,model:o.AutoModelForImageToImage,processor:n.AutoProcessor,default:{model:"Xenova/swin2SR-classical-sr-x2-64"},type:"image"},"depth-estimation":{pipeline:Ce,model:o.AutoModelForDepthEstimation,processor:n.AutoProcessor,default:{model:"Xenova/dpt-large"},type:"image"},"feature-extraction":{tokenizer:s.AutoTokenizer,pipeline:G,model:o.AutoModel,default:{model:"Xenova/all-MiniLM-L6-v2"},type:"text"},"image-feature-extraction":{processor:n.AutoProcessor,pipeline:q,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 Ke(_e,Z=null,{progress_callback:V=null,config:fe=null,cache_dir:Se=null,local_files_only:Pe=!1,revision:pe="main",device:xe=null,dtype:de=null,subfolder:Ae="onnx",use_external_data_format:$e=null,model_file_name:Ue=null,session_options:Ee={}}={}){_e=Ie[_e]??_e;let je=Me[_e.split("_",1)[0]];if(!je)throw Error(`Unsupported pipeline: ${_e}. Must be one of [${Object.keys(Me)}]`);Z||(Z=je.default.model,console.log(`No model specified. Using default model: "${Z}".`));let Ge={progress_callback:V,config:fe,cache_dir:Se,local_files_only:Pe,revision:pe,device:xe,dtype:de,subfolder:Ae,use_external_data_format:$e,model_file_name:Ue,session_options:Ee},Ve=new Map([["tokenizer",je.tokenizer],["model",je.model],["processor",je.processor]]),De=await et(Ve,Z,Ge);De.task=_e,(0,l.dispatchCallback)(V,{status:"ready",task:_e,model:Z});let ot=je.pipeline;return new ot(De)}async function et(_e,Z,V){let fe=Object.create(null),Se=[];for(let[Pe,pe]of _e.entries()){if(!pe)continue;let xe;Array.isArray(pe)?xe=new Promise(async(de,Ae)=>{let $e;for(let Ue of pe){if(Ue===null){de(null);return}try{de(await Ue.from_pretrained(Z,V));return}catch(Ee){if(Ee.message?.includes("Unsupported model type"))$e=Ee;else if(Ee.message?.includes("Could not locate file"))$e=Ee;else{Ae(Ee);return}}}Ae($e)}):xe=pe.from_pretrained(Z,V),fe[Pe]=xe,Se.push(xe)}await Promise.all(Se);for(let[Pe,pe]of Object.entries(fe))fe[Pe]=await pe;return fe}},"./src/tokenizers.js":(e,r,t)=>{t.r(r),t.d(r,{AlbertTokenizer:()=>ks,AutoTokenizer:()=>Qo,BartTokenizer:()=>St,BertTokenizer:()=>Es,BlenderbotSmallTokenizer:()=>Jt,BlenderbotTokenizer:()=>tt,BloomTokenizer:()=>pr,CLIPTokenizer:()=>zs,CamembertTokenizer:()=>ke,CodeGenTokenizer:()=>Hr,CodeLlamaTokenizer:()=>os,CohereTokenizer:()=>us,ConvBertTokenizer:()=>Y,DebertaTokenizer:()=>k,DebertaV2Tokenizer:()=>X,DistilBertTokenizer:()=>he,ElectraTokenizer:()=>dt,Ernie4_5_Tokenizer:()=>_o,EsmTokenizer:()=>Is,FalconTokenizer:()=>yr,GPT2Tokenizer:()=>Ct,GPTNeoXTokenizer:()=>Fs,GemmaTokenizer:()=>Wr,Grok1Tokenizer:()=>Yr,HerbertTokenizer:()=>N,LlamaTokenizer:()=>Gt,M2M100Tokenizer:()=>lr,MBart50Tokenizer:()=>Rt,MBartTokenizer:()=>ur,MPNetTokenizer:()=>Ss,MarianTokenizer:()=>Le,MgpstrTokenizer:()=>po,MobileBertTokenizer:()=>ct,NllbTokenizer:()=>cs,NougatTokenizer:()=>ds,PreTrainedTokenizer:()=>_t,Qwen2Tokenizer:()=>Vr,RoFormerTokenizer:()=>se,RobertaTokenizer:()=>jr,SiglipTokenizer:()=>Ur,SpeechT5Tokenizer:()=>Rs,SqueezeBertTokenizer:()=>Cs,T5Tokenizer:()=>qe,TokenizerModel:()=>G,VitsTokenizer:()=>js,Wav2Vec2CTCTokenizer:()=>Re,WhisperTokenizer:()=>_r,XLMRobertaTokenizer:()=>Nr,XLMTokenizer:()=>Ze,is_chinese_char:()=>C});var s=t("./src/utils/generic.js"),o=t("./src/utils/core.js"),n=t("./src/utils/hub.js"),a=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"),p=t("./src/models/whisper/common_whisper.js");async function u(ce,S){let U=await Promise.all([(0,n.getModelJSON)(ce,"tokenizer.json",!0,S),(0,n.getModelJSON)(ce,"tokenizer_config.json",!0,S)]);return S.legacy!==null&&(U[1].legacy=S.legacy),U}function d(ce,S){let U=[],ee=0;for(let oe of ce.matchAll(S)){let me=oe[0];ee<oe.index&&U.push(ce.slice(ee,oe.index)),me.length>0&&U.push(me),ee=oe.index+me.length}return ee<ce.length&&U.push(ce.slice(ee)),U}function h(ce,S=!0){if(ce.Regex!==void 0){let U=ce.Regex.replace(/\\([#&~])/g,"$1");for(let[ee,oe]of $)U=U.replaceAll(ee,oe);return new RegExp(U,"gu")}else if(ce.String!==void 0){let U=(0,o.escapeRegExp)(ce.String);return new RegExp(S?U:`(${U})`,"gu")}else return console.warn("Unknown pattern type:",ce),null}function f(ce){return new Map(Object.entries(ce))}function v(ce){let S=ce.dims;switch(S.length){case 1:return ce.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 ce.tolist()[0];default:throw new Error(`Expected tensor to have 1-2 dimensions, got ${S.length}.`)}}function F(ce){return ce.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 x(ce){return ce.replace(/\p{M}/gu,"")}function w(ce){return x(ce.toLowerCase())}function C(ce){return ce>=19968&&ce<=40959||ce>=13312&&ce<=19903||ce>=131072&&ce<=173791||ce>=173824&&ce<=177983||ce>=177984&&ce<=178207||ce>=178208&&ce<=183983||ce>=63744&&ce<=64255||ce>=194560&&ce<=195103}function y(ce,S,U){let ee=[],oe=0;for(;oe<ce.length;){if(ee.push(ce[oe]),(S.get(ce[oe])??U)!==U){++oe;continue}for(;++oe<ce.length&&(S.get(ce[oe])??U)===U;)S.get(ee.at(-1))!==U&&(ee[ee.length-1]+=ce[oe])}return ee}function P(ce){return ce.match(/\S+/g)||[]}let I="\\p{P}\\u0021-\\u002F\\u003A-\\u0040\\u005B-\\u0060\\u007B-\\u007E",g=new RegExp(`^[${I}]+$`,"gu"),E=".,!?\u2026\u3002\uFF0C\u3001\u0964\u06D4\u060C",$=new Map([["(?i:'s|'t|'re|'ve|'m|'ll|'d)","(?:'([sS]|[tT]|[rR][eE]|[vV][eE]|[mM]|[lL][lL]|[dD]))"],[` ?[^(\\s|[${E}])]+`,` ?[^\\s${E}]+`]]);class L{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 G 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,...U){switch(S.type){case"WordPiece":return new q(S);case"Unigram":return new O(S,...U);case"BPE":return new H(S);default:if(S.vocab)return Array.isArray(S.vocab)?new O(S,...U):Object.hasOwn(S,"continuing_subword_prefix")&&Object.hasOwn(S,"unk_token")?Object.hasOwn(S,"merges")?new H(S):new q(S):new te(S,...U);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(U=>this.tokens_to_ids.get(U)??this.unk_token_id)}convert_ids_to_tokens(S){return S.map(U=>this.vocab[U]??this.unk_token)}}class q extends G{constructor(S){super(S),this.tokens_to_ids=f(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[U,ee]of this.tokens_to_ids)this.vocab[ee]=U}encode(S){let U=[];for(let ee of S){let oe=[...ee];if(oe.length>this.max_input_chars_per_word){U.push(this.unk_token);continue}let me=!1,Te=0,He=[];for(;Te<oe.length;){let Xe=oe.length,Je=null;for(;Te<Xe;){let We=oe.slice(Te,Xe).join("");if(Te>0&&(We=this.config.continuing_subword_prefix+We),this.tokens_to_ids.has(We)){Je=We;break}--Xe}if(Je===null){me=!0;break}He.push(Je),Te=Xe}me?U.push(this.unk_token):U.push(...He)}return U}}class O extends G{constructor(S,U){super(S);let ee=S.vocab.length;this.vocab=new Array(ee),this.scores=new Array(ee);for(let oe=0;oe<ee;++oe)[this.vocab[oe],this.scores[oe]]=S.vocab[oe];this.unk_token_id=S.unk_id,this.unk_token=this.vocab[S.unk_id],this.tokens_to_ids=new Map(this.vocab.map((oe,me)=>[oe,me])),this.bos_token=" ",this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=U.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,a.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 U=S.chars,ee=1,oe=0;for(;oe<U.length;){let me=!1,Te=[],He=U.slice(oe).join(""),Xe=this.trie.commonPrefixSearch(He);for(let Je of Xe){Te.push(Je);let We=this.tokens_to_ids.get(Je),It=this.scores[We],bt=(0,o.len)(Je);S.insert(oe,bt,It,We),!me&&bt===ee&&(me=!0)}me||S.insert(oe,ee,this.unk_score,this.unk_token_id),oe+=ee}}tokenize(S){let U=new l.TokenLattice(S,this.bos_token_id,this.eos_token_id);return this.populateNodes(U),U.tokens()}encode(S){let U=[];for(let ee of S){let oe=this.tokenize(ee);U.push(...oe)}return U}}let J=(()=>{let ce=[...Array.from({length:94},(oe,me)=>me+33),...Array.from({length:12},(oe,me)=>me+161),...Array.from({length:82},(oe,me)=>me+174)],S=ce.slice(),U=0;for(let oe=0;oe<256;++oe)ce.includes(oe)||(ce.push(oe),S.push(256+U),U+=1);let ee=S.map(oe=>String.fromCharCode(oe));return Object.fromEntries(ce.map((oe,me)=>[oe,ee[me]]))})(),Q=(0,o.reverseDictionary)(J);class H extends G{constructor(S){super(S),this.tokens_to_ids=f(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[ee,oe]of this.tokens_to_ids)this.vocab[oe]=ee;let U=Array.isArray(S.merges[0]);this.merges=U?S.merges:S.merges.map(ee=>ee.split(" ",2)),this.bpe_ranks=new Map(this.merges.map((ee,oe)=>[JSON.stringify(ee),oe])),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 U=this.cache.get(S);if(U!==void 0)return U;let ee=Array.from(S);this.end_of_word_suffix&&(ee[ee.length-1]+=this.end_of_word_suffix);let oe=[];if(ee.length>1){let me=new l.PriorityQueue((Xe,Je)=>Xe.score<Je.score),Te={token:ee[0],bias:0,prev:null,next:null},He=Te;for(let Xe=1;Xe<ee.length;++Xe){let Je={bias:Xe/ee.length,token:ee[Xe],prev:He,next:null};He.next=Je,this._add_node(me,He),He=Je}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 We={...Xe.prev};Xe.prev.deleted=!0,Xe.prev=We,We.prev?We.prev.next=We:Te=We}let Je={token:Xe.token+Xe.next.token,bias:Xe.bias,prev:Xe.prev,next:Xe.next.next};Je.prev?(Je.prev.next=Je,this._add_node(me,Je.prev)):Te=Je,Je.next&&(Je.next.prev=Je,this._add_node(me,Je))}for(let Xe=Te;Xe!==null;Xe=Xe.next)oe.push(Xe.token)}else oe=ee;if(this.continuing_subword_suffix)for(let me=0;me<oe.length-1;++me)oe[me]+=this.continuing_subword_suffix;return S.length<this.max_length_to_cache&&this.cache.put(S,oe),oe}_add_node(S,U){let ee=this.bpe_ranks.get(JSON.stringify([U.token,U.next.token]));ee!==void 0&&(U.score=ee+U.bias,S.push(U))}encode(S){let U=[];for(let ee of S){if(this.ignore_merges&&this.tokens_to_ids.has(ee)){U.push(ee);continue}let oe=this.bpe(ee);for(let me of oe)if(this.tokens_to_ids.has(me))U.push(me);else if(this.byte_fallback){let Te=Array.from(this.text_encoder.encode(me)).map(He=>`<0x${He.toString(16).toUpperCase().padStart(2,"0")}>`);Te.every(He=>this.tokens_to_ids.has(He))?U.push(...Te):U.push(this.unk_token)}else U.push(this.unk_token)}return U}}class te extends G{constructor(S,U){super(S),this.tokens_to_ids=f(U.target_lang?S.vocab[U.target_lang]:S.vocab),this.bos_token=U.bos_token,this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=U.eos_token,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.pad_token=U.pad_token,this.pad_token_id=this.tokens_to_ids.get(this.pad_token),this.unk_token=U.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[ee,oe]of this.tokens_to_ids)this.vocab[oe]=ee}encode(S){return S}}class re extends s.Callable{constructor(S){super(),this.config=S}static fromConfig(S){if(S===null)return null;switch(S.type){case"BertNormalizer":return new et(S);case"Precompiled":return new zr(S);case"Sequence":return new Ke(S);case"Replace":return new le(S);case"NFC":return new z(S);case"NFD":return new D(S);case"NFKC":return new K(S);case"NFKD":return new R(S);case"Strip":return new ne(S);case"StripAccents":return new Ce(S);case"Lowercase":return new Me(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 le extends re{normalize(S){let U=h(this.config.pattern);return U===null?S:S.replaceAll(U,this.config.content)}}class be extends re{form=void 0;normalize(S){return S=S.normalize(this.form),S}}class z extends be{form="NFC"}class D extends be{form="NFD"}class K extends be{form="NFKC"}class R extends be{form="NFKD"}class ne extends re{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 Ce extends re{normalize(S){return S=x(S),S}}class Me extends re{normalize(S){return S=S.toLowerCase(),S}}class Ie extends re{normalize(S){return S=this.config.prepend+S,S}}class Ke extends re{constructor(S){super(S),this.normalizers=S.normalizers.map(U=>re.fromConfig(U))}normalize(S){return this.normalizers.reduce((U,ee)=>ee.normalize(U),S)}}class et extends re{_tokenize_chinese_chars(S){let U=[];for(let ee=0;ee<S.length;++ee){let oe=S[ee],me=oe.charCodeAt(0);C(me)?(U.push(" "),U.push(oe),U.push(" ")):U.push(oe)}return U.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 U=[];for(let ee of S){let oe=ee.charCodeAt(0);oe===0||oe===65533||this._is_control(ee)||(/^\s$/.test(ee)?U.push(" "):U.push(ee))}return U.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 _e extends s.Callable{static fromConfig(S){if(S===null)return null;switch(S.type){case"BertPreTokenizer":return new Z(S);case"Sequence":return new Rr(S);case"Whitespace":return new Ut(S);case"WhitespaceSplit":return new Cr(S);case"Metaspace":return new Ot(S);case"ByteLevel":return new V(S);case"Split":return new fe(S);case"Punctuation":return new Se(S);case"Digits":return new Pe(S);case"Replace":return new Hs(S);default:throw new Error(`Unknown PreTokenizer type: ${S.type}`)}}pre_tokenize_text(S,U){throw Error("pre_tokenize_text should be implemented in subclass.")}pre_tokenize(S,U){return(Array.isArray(S)?S.map(ee=>this.pre_tokenize_text(ee,U)):this.pre_tokenize_text(S,U)).flat()}_call(S,U){return this.pre_tokenize(S,U)}}class Z extends _e{constructor(S){super(),this.pattern=new RegExp(`[^\\s${I}]+|[${I}]`,"gu")}pre_tokenize_text(S,U){return S.trim().match(this.pattern)||[]}}class V extends _e{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=J,this.text_encoder=new TextEncoder}pre_tokenize_text(S,U){return this.add_prefix_space&&!S.startsWith(" ")&&(S=" "+S),(this.use_regex?S.match(this.pattern)||[]:[S]).map(oe=>Array.from(this.text_encoder.encode(oe),me=>this.byte_encoder[me]).join(""))}}class fe extends _e{constructor(S){super(),this.config=S,this.pattern=h(this.config.pattern,this.config.invert)}pre_tokenize_text(S,U){return this.pattern===null?[]:this.config.invert?S.match(this.pattern)||[]:this.config.behavior?.toLowerCase()==="removed"?S.split(this.pattern).filter(ee=>ee):d(S,this.pattern)}}class Se extends _e{constructor(S){super(),this.config=S,this.pattern=new RegExp(`[^${I}]+|[${I}]+`,"gu")}pre_tokenize_text(S,U){return S.match(this.pattern)||[]}}class Pe extends _e{constructor(S){super(),this.config=S;let U=`[^\\d]+|\\d${this.config.individual_digits?"":"+"}`;this.pattern=new RegExp(U,"gu")}pre_tokenize_text(S,U){return S.match(this.pattern)||[]}}class pe extends s.Callable{constructor(S){super(),this.config=S}static fromConfig(S){if(S===null)return null;switch(S.type){case"TemplateProcessing":return new Ae(S);case"ByteLevel":return new $e(S);case"RobertaProcessing":return new de(S);case"BertProcessing":return new xe(S);case"Sequence":return new Ue(S);default:throw new Error(`Unknown PostProcessor type: ${S.type}`)}}post_process(S,...U){throw Error("post_process should be implemented in subclass.")}_call(S,...U){return this.post_process(S,...U)}}class xe extends pe{constructor(S){super(S),this.cls=S.cls[0],this.sep=S.sep[0]}post_process(S,U=null,{add_special_tokens:ee=!0}={}){ee&&(S=(0,o.mergeArrays)([this.cls],S,[this.sep]));let oe=new Array(S.length).fill(0);if(U!==null){let me=ee&&this instanceof de?[this.sep]:[],Te=ee?[this.sep]:[];S=(0,o.mergeArrays)(S,me,U,Te),oe=(0,o.mergeArrays)(oe,new Array(U.length+me.length+Te.length).fill(1))}return{tokens:S,token_type_ids:oe}}}class de extends xe{}class Ae extends pe{constructor(S){super(S),this.single=S.single,this.pair=S.pair}post_process(S,U=null,{add_special_tokens:ee=!0}={}){let oe=U===null?this.single:this.pair,me=[],Te=[];for(let He of oe)"SpecialToken"in He?ee&&(me.push(He.SpecialToken.id),Te.push(He.SpecialToken.type_id)):"Sequence"in He&&(He.Sequence.id==="A"?(me=(0,o.mergeArrays)(me,S),Te=(0,o.mergeArrays)(Te,new Array(S.length).fill(He.Sequence.type_id))):He.Sequence.id==="B"&&(me=(0,o.mergeArrays)(me,U),Te=(0,o.mergeArrays)(Te,new Array(U.length).fill(He.Sequence.type_id))));return{tokens:me,token_type_ids:Te}}}class $e extends pe{post_process(S,U=null){return U&&(S=(0,o.mergeArrays)(S,U)),{tokens:S}}}class Ue extends pe{constructor(S){super(S),this.processors=S.processors.map(U=>pe.fromConfig(U))}post_process(S,U=null,ee={}){let oe;for(let me of this.processors)if(me instanceof $e)S=me.post_process(S).tokens,U&&(U=me.post_process(U).tokens);else{let Te=me.post_process(S,U,ee);S=Te.tokens,oe=Te.token_type_ids}return{tokens:S,token_type_ids:oe}}}class Ee 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 ot(S);case"Metaspace":return new vr(S);case"ByteLevel":return new lt(S);case"Replace":return new je(S);case"ByteFallback":return new Ge(S);case"Fuse":return new Ve(S);case"Strip":return new De(S);case"Sequence":return new Ye(S);case"CTC":return new rt(S);case"BPEDecoder":return new ft(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 je extends Ee{decode_chain(S){let U=h(this.config.pattern);return U===null?S:S.map(ee=>ee.replaceAll(U,this.config.content))}}class Ge extends Ee{constructor(S){super(S),this.text_decoder=new TextDecoder}decode_chain(S){let U=[],ee=[];for(let oe of S){let me=null;if(oe.length===6&&oe.startsWith("<0x")&&oe.endsWith(">")){let Te=parseInt(oe.slice(3,5),16);isNaN(Te)||(me=Te)}if(me!==null)ee.push(me);else{if(ee.length>0){let Te=this.text_decoder.decode(Uint8Array.from(ee));U.push(Te),ee=[]}U.push(oe)}}if(ee.length>0){let oe=this.text_decoder.decode(Uint8Array.from(ee));U.push(oe),ee=[]}return U}}class Ve extends Ee{decode_chain(S){return[S.join("")]}}class De extends Ee{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(U=>{let ee=0;for(let me=0;me<this.start&&U[me]===this.content;++me){ee=me+1;continue}let oe=U.length;for(let me=0;me<this.stop;++me){let Te=U.length-me-1;if(U[Te]===this.content){oe=Te;continue}else break}return U.slice(ee,oe)})}}class ot extends Ee{constructor(S){super(S),this.cleanup=S.cleanup}decode_chain(S){return S.map((U,ee)=>(ee!==0&&(U.startsWith(this.config.prefix)?U=U.replace(this.config.prefix,""):U=" "+U),this.cleanup&&(U=F(U)),U))}}class lt extends Ee{constructor(S){super(S),this.byte_decoder=Q,this.text_decoder=new TextDecoder("utf-8",{fatal:!1,ignoreBOM:!0}),this.end_of_word_suffix=null}convert_tokens_to_string(S){let U=S.join(""),ee=new Uint8Array([...U].map(me=>this.byte_decoder[me]));return this.text_decoder.decode(ee)}decode_chain(S){let U=[],ee=[];for(let oe of S)this.added_tokens.find(me=>me.content===oe)!==void 0?(ee.length>0&&(U.push(this.convert_tokens_to_string(ee)),ee=[]),U.push(oe)):ee.push(oe);return ee.length>0&&U.push(this.convert_tokens_to_string(ee)),U}}class rt extends Ee{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 U=[S[0]];for(let me=1;me<S.length;++me)S[me]!==U.at(-1)&&U.push(S[me]);let oe=U.filter(me=>me!==this.pad_token).join("");return this.cleanup&&(oe=F(oe).replaceAll(this.word_delimiter_token," ").trim()),oe}decode_chain(S){return[this.convert_tokens_to_string(S)]}}class Ye extends Ee{constructor(S){super(S),this.decoders=S.decoders.map(U=>Ee.fromConfig(U))}decode_chain(S){return this.decoders.reduce((U,ee)=>ee.decode_chain(U),S)}}class ft extends Ee{constructor(S){super(S),this.suffix=this.config.suffix}decode_chain(S){return S.map((U,ee)=>U.replaceAll(this.suffix,ee===S.length-1?"":" "))}}class yt extends Ee{decode_chain(S){let U="";for(let ee=1;ee<S.length;ee+=2)U+=S[ee];return[U]}}class Ot extends _e{constructor(S){super(),this.addPrefixSpace=S.add_prefix_space,this.replacement=S.replacement,this.strRep=S.str_rep||this.replacement,this.prepend_scheme=S.prepend_scheme??"always"}pre_tokenize_text(S,{section_index:U=void 0}={}){let ee=S.replaceAll(" ",this.strRep);return this.addPrefixSpace&&!ee.startsWith(this.replacement)&&(this.prepend_scheme==="always"||this.prepend_scheme==="first"&&U===0)&&(ee=this.strRep+ee),[ee]}}class vr extends Ee{constructor(S){super(S),this.addPrefixSpace=S.add_prefix_space,this.replacement=S.replacement}decode_chain(S){let U=[];for(let ee=0;ee<S.length;++ee){let oe=S[ee].replaceAll(this.replacement," ");this.addPrefixSpace&&ee==0&&oe.startsWith(" ")&&(oe=oe.substring(1)),U.push(oe)}return U}}class zr extends re{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(ee=>ee.normalize("NFKC")).join("\uFF5E"):S=S.normalize("NFKC"),S}}class Rr extends _e{constructor(S){super(),this.tokenizers=S.pretokenizers.map(U=>_e.fromConfig(U))}pre_tokenize_text(S,U){return this.tokenizers.reduce((ee,oe)=>oe.pre_tokenize(ee,U),[S])}}class Ut extends _e{constructor(S){super()}pre_tokenize_text(S,U){return S.match(/\w+|[^\w\s]+/g)||[]}}class Cr extends _e{constructor(S){super()}pre_tokenize_text(S,U){return P(S)}}class Hs extends _e{constructor(S){super(),this.config=S,this.pattern=h(this.config.pattern),this.content=this.config.content}pre_tokenize_text(S,U){return this.pattern===null?[S]:[S.replaceAll(this.pattern,this.config.content)]}}let Qs=["bos_token","eos_token","unk_token","sep_token","pad_token","cls_token","mask_token"];function Xs(ce,S,U,ee){for(let oe of Object.keys(ce)){let me=S-ce[oe].length,Te=U(oe),He=new Array(me).fill(Te);ce[oe]=ee==="right"?(0,o.mergeArrays)(ce[oe],He):(0,o.mergeArrays)(He,ce[oe])}}function Bs(ce,S){for(let U of Object.keys(ce))ce[U].length=S}class _t extends s.Callable{return_token_type_ids=!1;padding_side="right";constructor(S,U){super(),this.config=U,this.normalizer=re.fromConfig(S.normalizer),this.pre_tokenizer=_e.fromConfig(S.pre_tokenizer),this.model=G.fromConfig(S.model,U),this.post_processor=pe.fromConfig(S.post_processor),this.decoder=Ee.fromConfig(S.decoder),this.special_tokens=[],this.all_special_ids=[],this.added_tokens=[];for(let ee of S.added_tokens){let oe=new L(ee);this.added_tokens.push(oe),this.model.tokens_to_ids.set(oe.content,oe.id),this.model.vocab[oe.id]=oe.content,oe.special&&(this.special_tokens.push(oe.content),this.all_special_ids.push(oe.id))}if(this.additional_special_tokens=U.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(ee=>ee.content)),this.added_tokens_map=new Map(this.added_tokens.map(ee=>[ee.content,ee])),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=U.model_max_length,this.remove_space=U.remove_space,this.clean_up_tokenization_spaces=U.clean_up_tokenization_spaces??!0,this.do_lowercase_and_remove_accent=U.do_lowercase_and_remove_accent??!1,U.padding_side&&(this.padding_side=U.padding_side),this.add_bos_token=U.add_bos_token,this.add_eos_token=U.add_eos_token,this.legacy=!1,this.chat_template=U.chat_template??null,Array.isArray(this.chat_template)){let ee=Object.create(null);for(let{name:oe,template:me}of this.chat_template){if(typeof oe!="string"||typeof me!="string")throw new Error('Chat template must be a list of objects with "name" and "template" properties');ee[oe]=me}this.chat_template=ee}this._compiled_template_cache=new Map}getToken(...S){for(let U of S){let ee=this.config[U];if(ee)if(typeof ee=="object"){if(ee.__type==="AddedToken")return ee.content;throw Error(`Unknown token: ${ee}`)}else return ee}return null}static async from_pretrained(S,{progress_callback:U=null,config:ee=null,cache_dir:oe=null,local_files_only:me=!1,revision:Te="main",legacy:He=null}={}){let Xe=await u(S,{progress_callback:U,config:ee,cache_dir:oe,local_files_only:me,revision:Te,legacy:He});return new this(...Xe)}_call(S,{text_pair:U=null,add_special_tokens:ee=!0,padding:oe=!1,truncation:me=null,max_length:Te=null,return_tensor:He=!0,return_token_type_ids:Xe=null}={}){let Je=Array.isArray(S),We;if(Je){if(S.length===0)throw Error("text array must be non-empty");if(U!==null){if(Array.isArray(U)){if(S.length!==U.length)throw Error("text and text_pair must have the same length")}else throw Error("text_pair must also be an array");We=S.map((bt,Kt)=>this._encode_plus(bt,{text_pair:U[Kt],add_special_tokens:ee,return_token_type_ids:Xe}))}else We=S.map(bt=>this._encode_plus(bt,{add_special_tokens:ee,return_token_type_ids:Xe}))}else{if(S==null)throw Error("text may not be null or undefined");if(Array.isArray(U))throw Error("When specifying `text_pair`, since `text` is a string, `text_pair` must also be a string (i.e., not an array).");We=[this._encode_plus(S,{text_pair:U,add_special_tokens:ee,return_token_type_ids:Xe})]}if(Te===null?Te=this.model_max_length:me===null&&(oe===!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'`."),Te=this.model_max_length):oe===!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)),oe===!0&&(Te=Math.min((0,a.max)(We.map(bt=>bt.input_ids.length))[0],Te??1/0)),Te=Math.min(Te,this.model_max_length??1/0),oe||me)for(let bt=0;bt<We.length;++bt)We[bt].input_ids.length!==Te&&(We[bt].input_ids.length>Te?me&&Bs(We[bt],Te):oe&&Xs(We[bt],Te,Kt=>Kt==="input_ids"?this.pad_token_id:0,this.padding_side));let It={};if(He){if(!(oe&&me)&&We.some(Kt=>{for(let mr of Object.keys(Kt))if(Kt[mr].length!==We[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 bt=[We.length,We[0].input_ids.length];for(let Kt of Object.keys(We[0]))It[Kt]=new i.Tensor("int64",BigInt64Array.from(We.flatMap(mr=>mr[Kt]).map(BigInt)),bt)}else{for(let bt of Object.keys(We[0]))It[bt]=We.map(Kt=>Kt[bt]);if(!Je)for(let bt of Object.keys(It))It[bt]=It[bt][0]}return It}_encode_text(S){if(S===null)return null;let U=this.added_tokens_splitter.split(S);for(let oe=0;oe<U.length;++oe){let me=this.added_tokens_map.get(U[oe]);me&&(me.lstrip&&oe>0&&(U[oe-1]=U[oe-1].trimEnd()),me.rstrip&&oe<U.length-1&&(U[oe+1]=U[oe+1].trimStart()))}return U.flatMap((oe,me)=>{if(oe.length===0)return[];if(this.added_tokens_map.has(oe))return[oe];if(this.remove_space===!0&&(oe=oe.trim().split(/\s+/).join(" ")),this.do_lowercase_and_remove_accent&&(oe=w(oe)),this.normalizer!==null&&(oe=this.normalizer(oe)),oe.length===0)return[];let Te=this.pre_tokenizer!==null?this.pre_tokenizer(oe,{section_index:me}):[oe];return this.model(Te)})}_encode_plus(S,{text_pair:U=null,add_special_tokens:ee=!0,return_token_type_ids:oe=null}={}){let{tokens:me,token_type_ids:Te}=this._tokenize_helper(S,{pair:U,add_special_tokens:ee}),He=this.model.convert_tokens_to_ids(me),Xe={input_ids:He,attention_mask:new Array(He.length).fill(1)};return(oe??this.return_token_type_ids)&&Te&&(Xe.token_type_ids=Te),Xe}_tokenize_helper(S,{pair:U=null,add_special_tokens:ee=!1}={}){let oe=this._encode_text(S),me=this._encode_text(U);return this.post_processor?this.post_processor(oe,me,{add_special_tokens:ee}):{tokens:(0,o.mergeArrays)(oe??[],me??[])}}tokenize(S,{pair:U=null,add_special_tokens:ee=!1}={}){return this._tokenize_helper(S,{pair:U,add_special_tokens:ee}).tokens}encode(S,{text_pair:U=null,add_special_tokens:ee=!0,return_token_type_ids:oe=null}={}){return this._encode_plus(S,{text_pair:U,add_special_tokens:ee,return_token_type_ids:oe}).input_ids}batch_decode(S,U={}){return S instanceof i.Tensor&&(S=S.tolist()),S.map(ee=>this.decode(ee,U))}decode(S,U={}){if(S instanceof i.Tensor&&(S=v(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,U)}decode_single(S,{skip_special_tokens:U=!1,clean_up_tokenization_spaces:ee=null}){let oe=this.model.convert_ids_to_tokens(S);U&&(oe=oe.filter(Te=>!this.special_tokens.includes(Te)));let me=this.decoder?this.decoder(oe):oe.join(" ");return this.decoder&&this.decoder.end_of_word_suffix&&(me=me.replaceAll(this.decoder.end_of_word_suffix," "),U&&(me=me.trim())),(ee??this.clean_up_tokenization_spaces)&&(me=F(me)),me}get_chat_template({chat_template:S=null,tools:U=null}={}){if(this.chat_template&&typeof this.chat_template=="object"){let ee=this.chat_template;if(S!==null&&Object.hasOwn(ee,S))S=ee[S];else if(S===null)if(U!==null&&"tool_use"in ee)S=ee.tool_use;else if("default"in ee)S=ee.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(ee).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:U=null,documents:ee=null,chat_template:oe=null,add_generation_prompt:me=!1,tokenize:Te=!0,padding:He=!1,truncation:Xe=!1,max_length:Je=null,return_tensor:We=!0,return_dict:It=!1,tokenizer_kwargs:bt={},...Kt}={}){if(oe=this.get_chat_template({chat_template:oe,tools:U}),typeof oe!="string")throw Error(`chat_template must be a string, but got ${typeof oe}`);let mr=this._compiled_template_cache.get(oe);mr===void 0&&(mr=new c.Template(oe),this._compiled_template_cache.set(oe,mr));let Zt=Object.create(null);for(let nr of Qs){let fr=this.getToken(nr);fr&&(Zt[nr]=fr)}let Ir=mr.render({messages:S,add_generation_prompt:me,tools:U,documents:ee,...Zt,...Kt});if(Te){let nr=this._call(Ir,{add_special_tokens:!1,padding:He,truncation:Xe,max_length:Je,return_tensor:We,...bt});return It?nr:nr.input_ids}return Ir}}class Es extends _t{return_token_type_ids=!0}class ks extends _t{return_token_type_ids=!0}class ct extends _t{return_token_type_ids=!0}class Cs extends _t{return_token_type_ids=!0}class k extends _t{return_token_type_ids=!0}class X extends _t{return_token_type_ids=!0}class N extends _t{return_token_type_ids=!0}class Y extends _t{return_token_type_ids=!0}class se extends _t{return_token_type_ids=!0}class he extends _t{}class ke extends _t{}class Ze extends _t{return_token_type_ids=!0;constructor(S,U){super(S,U),console.warn('WARNING: `XLMTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.')}}class dt extends _t{return_token_type_ids=!0}class qe extends _t{}class Ct extends _t{}class St extends _t{}class ur extends _t{constructor(S,U){super(S,U),this.languageRegex=/^[a-z]{2}_[A-Z]{2}$/,this.language_codes=this.special_tokens.filter(ee=>this.languageRegex.test(ee)),this.lang_to_token=ee=>ee}_build_translation_inputs(S,U,ee){return Fr(this,S,U,ee)}}class Rt extends ur{}class jr extends _t{}class pr extends _t{}let Sr="\u2581";class Gt extends _t{padding_side="left";constructor(S,U){super(S,U),this.legacy=U.legacy??!0,this.legacy||(this.normalizer=null,this.pre_tokenizer=new Ot({replacement:Sr,add_prefix_space:!0,prepend_scheme:"first"}))}_encode_text(S){if(S===null)return null;if(this.legacy||S.length===0)return super._encode_text(S);let U=super._encode_text(Sr+S.replaceAll(Sr," "));return U.length>1&&U[0]===Sr&&this.special_tokens.includes(U[1])&&(U=U.slice(1)),U}}class os extends _t{}class Nr extends _t{}class Ss extends _t{}class yr extends _t{}class Fs extends _t{}class Is extends _t{}class Vr extends _t{}class Wr extends _t{}class Yr extends _t{}function Fr(ce,S,U,ee){if(!("language_codes"in ce)||!Array.isArray(ce.language_codes))throw new Error("Tokenizer must have `language_codes` attribute set and it should be an array of language ids.");if(!("languageRegex"in ce)||!(ce.languageRegex instanceof RegExp))throw new Error("Tokenizer must have `languageRegex` attribute set and it should be a regular expression.");if(!("lang_to_token"in ce)||typeof ce.lang_to_token!="function")throw new Error("Tokenizer must have `lang_to_token` attribute set and it should be a function.");let oe=ee.src_lang,me=ee.tgt_lang;if(!ce.language_codes.includes(me))throw new Error(`Target language code "${me}" is not valid. Must be one of: {${ce.language_codes.join(", ")}}`);if(oe!==void 0){if(!ce.language_codes.includes(oe))throw new Error(`Source language code "${oe}" is not valid. Must be one of: {${ce.language_codes.join(", ")}}`);for(let Te of ce.post_processor.config.single)if("SpecialToken"in Te&&ce.languageRegex.test(Te.SpecialToken.id)){Te.SpecialToken.id=ce.lang_to_token(oe);break}}return ee.forced_bos_token_id=ce.model.convert_tokens_to_ids([ce.lang_to_token(me)])[0],ce._call(S,U)}class cs extends _t{constructor(S,U){super(S,U),this.languageRegex=/^[a-z]{3}_[A-Z][a-z]{3}$/,this.language_codes=this.special_tokens.filter(ee=>this.languageRegex.test(ee)),this.lang_to_token=ee=>ee}_build_translation_inputs(S,U,ee){return Fr(this,S,U,ee)}}class lr extends _t{constructor(S,U){super(S,U),this.languageRegex=/^__[a-z]{2,3}__$/,this.language_codes=this.special_tokens.filter(ee=>this.languageRegex.test(ee)).map(ee=>ee.slice(2,-2)),this.lang_to_token=ee=>`__${ee}__`}_build_translation_inputs(S,U,ee){return Fr(this,S,U,ee)}}class _r extends _t{get timestamp_begin(){return this.model.convert_tokens_to_ids(["<|notimestamps|>"])[0]+1}_decode_asr(S,{return_timestamps:U=!1,return_language:ee=!1,time_precision:oe=null,force_full_sequences:me=!0}={}){if(oe===null)throw Error("Must specify time_precision");let Te=null,He=U==="word";function Xe(){return{language:Te,timestamp:[null,null],text:""}}let Je=[],We=Xe(),It=0,bt=this.timestamp_begin,mr=bt+1500,Zt=[],Ir=[],nr=!1,fr=null,Ar=new Set(this.all_special_ids);for(let Qt of S){let hr=Qt.tokens,Gr=He?Qt.token_timestamps:null,Or=null,ps=bt;if("stride"in Qt){let[ar,tr,cr]=Qt.stride;if(It-=tr,fr=ar-cr,tr&&(ps=tr/oe+bt),cr)for(let er=hr.length-1;er>=0;--er){let Kr=Number(hr[er]);if(Kr>=bt){if(Or!==null&&(Kr-bt)*oe<fr)break;Or=Kr}}}let Tr=[],ns=[];for(let ar=0;ar<hr.length;++ar){let tr=Number(hr[ar]);if(Ar.has(tr)){let cr=this.decode([tr]),er=p.WHISPER_LANGUAGE_MAPPING.get(cr.slice(2,-2));if(er!==void 0){if(Te!==null&&er!==Te&&!U){Zt.push(Tr);let Kr=this.findLongestCommonSequence(Zt)[0],Ns=this.decode(Kr);We.text=Ns,Je.push(We),Zt=[],Tr=[],We=Xe()}Te=We.language=er}}else if(tr>=bt&&tr<=mr){let cr=(tr-bt)*oe+It,er=(0,a.round)(cr,2);if(Or!==null&&tr>=Or)nr=!0;else if(nr||Zt.length>0&&tr<ps)nr=!1;else if(We.timestamp[0]===null)We.timestamp[0]=er;else if(er!==We.timestamp[0]){We.timestamp[1]=er,Zt.push(Tr),He&&Ir.push(ns);let[Kr,Ns]=this.findLongestCommonSequence(Zt,Ir),Xo=this.decode(Kr);We.text=Xo,He&&(We.words=this.collateWordTimestamps(Kr,Ns,Te)),Je.push(We),Zt=[],Tr=[],Ir=[],ns=[],We=Xe()}}else if(Tr.push(tr),He){let cr=(0,a.round)(Gr[ar]+It,2),er;if(ar+1<Gr.length){er=(0,a.round)(Gr[ar+1]+It,2);let Kr=this.decode([tr]);g.test(Kr)&&(er=(0,a.round)(Math.min(cr+oe,er),2))}else er=null;ns.push([cr,er])}}if("stride"in Qt){let[ar,tr,cr]=Qt.stride;It+=ar-cr}Tr.length>0?(Zt.push(Tr),He&&Ir.push(ns)):Zt.every(ar=>ar.length===0)&&(We=Xe(),Zt=[],Tr=[],Ir=[],ns=[])}if(Zt.length>0){if(me&&U)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[Qt,hr]=this.findLongestCommonSequence(Zt,Ir),Gr=this.decode(Qt);We.text=Gr,He&&(We.words=this.collateWordTimestamps(Qt,hr,Te)),Je.push(We)}let $r=Object.create(null),Qr=Je.map(Qt=>Qt.text).join("");if(U||ee){for(let Qt=0;Qt<Je.length;++Qt){let hr=Je[Qt];U||delete hr.timestamp,ee||delete hr.language}if(He){let Qt=[];for(let hr of Je)for(let Gr of hr.words)Qt.push(Gr);$r={chunks:Qt}}else $r={chunks:Je}}return[Qr,$r]}findLongestCommonSequence(S,U=null){let ee=S[0],oe=ee.length,me=[],Te=Array.isArray(U)&&U.length>0,He=Te?[]:null,Xe=Te?U[0]:null;for(let Je=1;Je<S.length;++Je){let We=S[Je],It=0,bt=[oe,oe,0,0],Kt=We.length;for(let $r=1;$r<oe+Kt;++$r){let Qr=Math.max(0,oe-$r),Qt=Math.min(oe,oe+Kt-$r),hr=ee.slice(Qr,Qt),Gr=Math.max(0,$r-oe),Or=Math.min(Kt,$r),ps=We.slice(Gr,Or);if(hr.length!==ps.length)throw new Error("There is a bug within whisper `decode_asr` function, please report it. Dropping to prevent bad inference.");let Tr;Te?Tr=hr.filter((tr,cr)=>tr===ps[cr]&&Xe[Qr+cr]<=U[Je][Gr+cr]).length:Tr=hr.filter((tr,cr)=>tr===ps[cr]).length;let ns=$r/1e4,ar=Tr/$r+ns;Tr>1&&ar>It&&(It=ar,bt=[Qr,Qt,Gr,Or])}let[mr,Zt,Ir,nr]=bt,fr=Math.floor((Zt+mr)/2),Ar=Math.floor((nr+Ir)/2);me.push(...ee.slice(0,fr)),ee=We.slice(Ar),oe=ee.length,Te&&(He.push(...Xe.slice(0,fr)),Xe=U[Je].slice(Ar))}return me.push(...ee),Te?(He.push(...Xe),[me,He]):[me,[]]}collateWordTimestamps(S,U,ee){let[oe,me,Te]=this.combineTokensIntoWords(S,ee),He=[];for(let Xe=0;Xe<oe.length;++Xe){let Je=Te[Xe];He.push({text:oe[Xe],timestamp:[U[Je.at(0)][0],U[Je.at(-1)][1]]})}return He}combineTokensIntoWords(S,U,ee=`"'\u201C\xA1\xBF([{-`,oe=`"'.\u3002,\uFF0C!\uFF01?\uFF1F:\uFF1A\u201D)]}\u3001`){U=U??"english";let me,Te,He;return["chinese","japanese","thai","lao","myanmar"].includes(U)?[me,Te,He]=this.splitTokensOnUnicode(S):[me,Te,He]=this.splitTokensOnSpaces(S),this.mergePunctuations(me,Te,He,ee,oe)}decode(S,U){let ee;return U?.decode_with_timestamps?(S instanceof i.Tensor&&(S=v(S)),ee=this.decodeWithTimestamps(S,U)):ee=super.decode(S,U),ee}decodeWithTimestamps(S,U){let ee=U?.time_precision??.02,oe=Array.from(this.all_special_ids).at(-1)+1,me=[[]];for(let Te of S)if(Te=Number(Te),Te>=oe){let He=((Te-oe)*ee).toFixed(2);me.push(`<|${He}|>`),me.push([])}else me[me.length-1].push(Te);return me=me.map(Te=>typeof Te=="string"?Te:super.decode(Te,U)),me.join("")}splitTokensOnUnicode(S){let U=this.decode(S,{decode_with_timestamps:!0}),ee="\uFFFD",oe=[],me=[],Te=[],He=[],Xe=[],Je=0;for(let We=0;We<S.length;++We){let It=S[We];He.push(It),Xe.push(We);let bt=this.decode(He,{decode_with_timestamps:!0});(!bt.includes(ee)||U[Je+bt.indexOf(ee)]===ee)&&(oe.push(bt),me.push(He),Te.push(Xe),He=[],Xe=[],Je+=bt.length)}return[oe,me,Te]}splitTokensOnSpaces(S){let[U,ee,oe]=this.splitTokensOnUnicode(S),me=[],Te=[],He=[],Xe=new RegExp(`^[${I}]$`,"gu");for(let Je=0;Je<U.length;++Je){let We=U[Je],It=ee[Je],bt=oe[Je],Kt=It[0]>=this.model.tokens_to_ids.get("<|endoftext|>"),mr=We.startsWith(" "),Zt=We.trim(),Ir=Xe.test(Zt);if(Kt||mr||Ir||me.length===0)me.push(We),Te.push(It),He.push(bt);else{let nr=me.length-1;me[nr]+=We,Te[nr].push(...It),He[nr].push(...bt)}}return[me,Te,He]}mergePunctuations(S,U,ee,oe,me){let Te=structuredClone(S),He=structuredClone(U),Xe=structuredClone(ee),Je=Te.length-2,We=Te.length-1;for(;Je>=0;)Te[Je].startsWith(" ")&&oe.includes(Te[Je].trim())?(Te[We]=Te[Je]+Te[We],He[We]=(0,o.mergeArrays)(He[Je],He[We]),Xe[We]=(0,o.mergeArrays)(Xe[Je],Xe[We]),Te[Je]="",He[Je]=[],Xe[Je]=[]):We=Je,--Je;for(Je=0,We=1;We<Te.length;)!Te[Je].endsWith(" ")&&me.includes(Te[We])?(Te[Je]+=Te[We],He[Je]=(0,o.mergeArrays)(He[Je],He[We]),Xe[Je]=(0,o.mergeArrays)(Xe[Je],Xe[We]),Te[We]="",He[We]=[],Xe[We]=[]):Je=We,++We;return[Te.filter(It=>It),He.filter(It=>It.length>0),Xe.filter(It=>It.length>0)]}}class Hr extends _t{}class zs extends _t{}class Ur extends _t{}class Le extends _t{constructor(S,U){super(S,U),this.languageRegex=/^(>>\w+<<)\s*/g,this.supported_language_codes=this.model.vocab.filter(ee=>this.languageRegex.test(ee)),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[U,...ee]=S.trim().split(this.languageRegex);if(ee.length===0)return super._encode_text(U);if(ee.length===2){let[oe,me]=ee;return this.supported_language_codes.includes(oe)||console.warn(`Unsupported language code "${oe}" detected, which may lead to unexpected behavior. Should be one of: ${JSON.stringify(this.supported_language_codes)}`),(0,o.mergeArrays)([oe],super._encode_text(me))}}}class Re extends _t{}class tt extends _t{}class Jt extends _t{}class Rs extends _t{}class ds extends _t{}class js extends _t{constructor(S,U){super(S,U),this.decoder=new yt({})}}class us extends _t{}class po extends _t{}class _o extends _t{}class Qo{static TOKENIZER_CLASS_MAPPING={T5Tokenizer:qe,DistilBertTokenizer:he,CamembertTokenizer:ke,DebertaTokenizer:k,DebertaV2Tokenizer:X,BertTokenizer:Es,HerbertTokenizer:N,ConvBertTokenizer:Y,RoFormerTokenizer:se,XLMTokenizer:Ze,ElectraTokenizer:dt,MobileBertTokenizer:ct,SqueezeBertTokenizer:Cs,AlbertTokenizer:ks,GPT2Tokenizer:Ct,BartTokenizer:St,MBartTokenizer:ur,MBart50Tokenizer:Rt,RobertaTokenizer:jr,WhisperTokenizer:_r,CodeGenTokenizer:Hr,CLIPTokenizer:zs,SiglipTokenizer:Ur,MarianTokenizer:Le,BloomTokenizer:pr,NllbTokenizer:cs,M2M100Tokenizer:lr,LlamaTokenizer:Gt,CodeLlamaTokenizer:os,XLMRobertaTokenizer:Nr,MPNetTokenizer:Ss,FalconTokenizer:yr,GPTNeoXTokenizer:Fs,EsmTokenizer:Is,Wav2Vec2CTCTokenizer:Re,BlenderbotTokenizer:tt,BlenderbotSmallTokenizer:Jt,SpeechT5Tokenizer:Rs,NougatTokenizer:ds,VitsTokenizer:js,Qwen2Tokenizer:Vr,GemmaTokenizer:Wr,Grok1Tokenizer:Yr,CohereTokenizer:us,MgpstrTokenizer:po,Ernie4_5_Tokenizer:_o,PreTrainedTokenizer:_t};static async from_pretrained(S,{progress_callback:U=null,config:ee=null,cache_dir:oe=null,local_files_only:me=!1,revision:Te="main",legacy:He=null}={}){let[Xe,Je]=await u(S,{progress_callback:U,config:ee,cache_dir:oe,local_files_only:me,revision:Te,legacy:He}),We=Je.tokenizer_class?.replace(/Fast$/,"")??"PreTrainedTokenizer",It=this.TOKENIZER_CLASS_MAPPING[We];return It||(console.warn(`Unknown tokenizer class "${We}", attempting to construct from base class.`),It=_t),new It(Xe,Je)}}},"./src/utils/audio.js":(e,r,t)=>{t.r(r),t.d(r,{RawAudio:()=>q,hamming:()=>d,hanning:()=>u,mel_filter_bank:()=>C,read_audio:()=>c,spectrogram:()=>E,window_function:()=>$});var s=t("./src/utils/hub.js"),o=t("./src/utils/maths.js"),n=t("./src/utils/core.js"),a=t("./src/env.js"),i=t("./src/utils/tensor.js"),l=t("?7992");async function c(O,J){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 Q=await(await(0,s.getFile)(O)).arrayBuffer(),H=new AudioContext({sampleRate:J});typeof J>"u"&&console.warn(`No sampling rate provided, using default of ${H.sampleRate}Hz.`);let te=await H.decodeAudioData(Q),re;if(te.numberOfChannels===2){let le=Math.sqrt(2),be=te.getChannelData(0),z=te.getChannelData(1);re=new Float32Array(be.length);for(let D=0;D<te.length;++D)re[D]=le*(be[D]+z[D])/2}else re=te.getChannelData(0);return re}function p(O,J){if(O<1)return new Float64Array;if(O===1)return new Float64Array([1]);let Q=1-J,H=2*Math.PI/(O-1),te=new Float64Array(O);for(let re=0;re<O;++re)te[re]=J-Q*Math.cos(re*H);return te}function u(O){return p(O,.5)}function d(O){return p(O,.54)}let h={htk:O=>2595*Math.log10(1+O/700),kaldi:O=>1127*Math.log(1+O/700),slaney:(O,J=1e3,Q=15,H=27/Math.log(6.4))=>O>=J?Q+Math.log(O/J)*H:3*O/200};function f(O,J="htk"){let Q=h[J];if(!Q)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return typeof O=="number"?Q(O):O.map(H=>Q(H))}let v={htk:O=>700*(10**(O/2595)-1),kaldi:O=>700*(Math.exp(O/1127)-1),slaney:(O,J=1e3,Q=15,H=Math.log(6.4)/27)=>O>=Q?J*Math.exp(H*(O-Q)):200*O/3};function F(O,J="htk"){let Q=v[J];if(!Q)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return typeof O=="number"?Q(O):O.map(H=>Q(H))}function x(O,J){let Q=Float64Array.from({length:J.length-1},(le,be)=>J[be+1]-J[be]),H=Array.from({length:O.length},()=>new Array(J.length));for(let le=0;le<O.length;++le){let be=H[le];for(let z=0;z<J.length;++z)be[z]=J[z]-O[le]}let te=J.length-2,re=Array.from({length:te},()=>new Array(O.length));for(let le=0;le<O.length;++le){let be=H[le];for(let z=0;z<te;++z){let D=-be[z]/Q[z],K=be[z+2]/Q[z+1];re[z][le]=Math.max(0,Math.min(D,K))}}return re}function w(O,J,Q){let H=(J-O)/(Q-1);return Float64Array.from({length:Q},(te,re)=>O+H*re)}function C(O,J,Q,H,te,re=null,le="htk",be=!1){if(re!==null&&re!=="slaney")throw new Error('norm must be one of null or "slaney"');if(O<2)throw new Error(`Require num_frequency_bins: ${O} >= 2`);if(Q>H)throw new Error(`Require min_frequency: ${Q} <= max_frequency: ${H}`);let z=f(Q,le),D=f(H,le),K=w(z,D,J+2),R=F(K,le),ne;if(be){let Me=te/((O-1)*2);ne=f(Float64Array.from({length:O},(Ie,Ke)=>Ke*Me),le),R=K}else ne=w(0,Math.floor(te/2),O);let Ce=x(ne,R);if(re!==null&&re==="slaney")for(let Me=0;Me<J;++Me){let Ie=Ce[Me],Ke=2/(R[Me+2]-R[Me]);for(let et=0;et<O;++et)Ie[et]*=Ke}return Ce}function y(O,J,Q){let H=new O.constructor(O.length+J+Q),te=O.length-1;for(let re=0;re<O.length;++re)H[J+re]=O[re];for(let re=1;re<=J;++re)H[J-re]=O[(0,n.calculateReflectOffset)(re,te)];for(let re=1;re<=Q;++re)H[te+J+re]=O[(0,n.calculateReflectOffset)(te-re,te)];return H}function P(O,J,Q,H,te){if(Q<=0)throw new Error("reference must be greater than zero");if(H<=0)throw new Error("min_value must be greater than zero");Q=Math.max(H,Q);let re=Math.log10(Q);for(let le=0;le<O.length;++le)O[le]=J*Math.log10(Math.max(H,O[le])-re);if(te!==null){if(te<=0)throw new Error("db_range must be greater than zero");let le=(0,o.max)(O)[0]-te;for(let be=0;be<O.length;++be)O[be]=Math.max(O[be],le)}return O}function I(O,J=1,Q=1e-5,H=null){return P(O,20,J,Q,H)}function g(O,J=1,Q=1e-10,H=null){return P(O,10,J,Q,H)}async function E(O,J,Q,H,{fft_length:te=null,power:re=1,center:le=!0,pad_mode:be="reflect",onesided:z=!0,preemphasis:D=null,preemphasis_htk_flavor:K=!0,mel_filters:R=null,mel_floor:ne=1e-10,log_mel:Ce=null,reference:Me=1,min_value:Ie=1e-10,db_range:Ke=null,remove_dc_offset:et=null,min_num_frames:_e=null,max_num_frames:Z=null,do_pad:V=!0,transpose:fe=!1}={}){let Se=J.length;if(te===null&&(te=Q),Q>te)throw Error(`frame_length (${Q}) may not be larger than fft_length (${te})`);if(Se!==Q)throw new Error(`Length of the window (${Se}) must equal frame_length (${Q})`);if(H<=0)throw new Error("hop_length must be greater than zero");if(re===null&&R!==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(!K)throw new Error("`preemphasis_htk_flavor=false` is not currently supported.");if(le){if(be!=="reflect")throw new Error(`pad_mode="${be}" not implemented yet.`);let De=Math.floor((te-1)/2)+1;O=y(O,De,De)}let Pe=Math.floor(1+Math.floor((O.length-Q)/H));_e!==null&&Pe<_e&&(Pe=_e);let pe=z?Math.floor(te/2)+1:te,xe=Pe,de=Pe;Z!==null&&(Z>Pe?V&&(de=Z):de=xe=Z);let Ae=new o.FFT(te),$e=new Float64Array(te),Ue=new Float64Array(Ae.outputBufferSize),Ee=new Float32Array(pe*de);for(let De=0;De<xe;++De){let ot=De*H,lt=Math.min(O.length-ot,Q);lt!==Q&&$e.fill(0,0,Q);for(let rt=0;rt<lt;++rt)$e[rt]=O[ot+rt];if(et){let rt=0;for(let ft=0;ft<lt;++ft)rt+=$e[ft];let Ye=rt/lt;for(let ft=0;ft<lt;++ft)$e[ft]-=Ye}if(D!==null){for(let rt=lt-1;rt>=1;--rt)$e[rt]-=D*$e[rt-1];$e[0]*=1-D}for(let rt=0;rt<J.length;++rt)$e[rt]*=J[rt];Ae.realTransform(Ue,$e);for(let rt=0;rt<pe;++rt){let Ye=rt<<1;Ee[rt*de+De]=Ue[Ye]**2+Ue[Ye+1]**2}}if(re!==null&&re!==2){let De=re/2;for(let ot=0;ot<Ee.length;++ot)Ee[ot]**=De}let je=R.length,Ge=await(0,i.matmul)(new i.Tensor("float32",R.flat(),[je,pe]),new i.Tensor("float32",Ee,[pe,de]));fe&&(Ge=Ge.transpose(1,0));let Ve=Ge.data;for(let De=0;De<Ve.length;++De)Ve[De]=Math.max(ne,Ve[De]);if(re!==null&&Ce!==null){let De=Math.min(Ve.length,xe*je);switch(Ce){case"log":for(let ot=0;ot<De;++ot)Ve[ot]=Math.log(Ve[ot]);break;case"log10":for(let ot=0;ot<De;++ot)Ve[ot]=Math.log10(Ve[ot]);break;case"dB":if(re===1)I(Ve,Me,Ie,Ke);else if(re===2)g(Ve,Me,Ie,Ke);else throw new Error(`Cannot use log_mel option '${Ce}' with power ${re}`);break;default:throw new Error(`log_mel must be one of null, 'log', 'log10' or 'dB'. Got '${Ce}'`)}}return Ge}function $(O,J,{periodic:Q=!0,frame_length:H=null,center:te=!0}={}){let re=Q?O+1:O,le;switch(J){case"boxcar":le=new Float64Array(re).fill(1);break;case"hann":case"hann_window":le=u(re);break;case"hamming":le=d(re);break;case"povey":le=u(re).map(be=>Math.pow(be,.85));break;default:throw new Error(`Unknown window type ${J}.`)}if(Q&&(le=le.subarray(0,O)),H===null)return le;if(O>H)throw new Error(`Length of the window (${O}) may not be larger than frame_length (${H})`);return le}function L(O,J){let Q=44,H=new ArrayBuffer(Q+O.length*4),te=new DataView(H);G(te,0,"RIFF"),te.setUint32(4,36+O.length*4,!0),G(te,8,"WAVE"),G(te,12,"fmt "),te.setUint32(16,16,!0),te.setUint16(20,3,!0),te.setUint16(22,1,!0),te.setUint32(24,J,!0),te.setUint32(28,J*4,!0),te.setUint16(32,4,!0),te.setUint16(34,32,!0),G(te,36,"data"),te.setUint32(40,O.length*4,!0);for(let re=0;re<O.length;++re,Q+=4)te.setFloat32(Q,O[re],!0);return H}function G(O,J,Q){for(let H=0;H<Q.length;++H)O.setUint8(J+H,Q.charCodeAt(H))}class q{constructor(J,Q){this.audio=J,this.sampling_rate=Q}toWav(){return L(this.audio,this.sampling_rate)}toBlob(){let J=this.toWav();return new Blob([J],{type:"audio/wav"})}async save(J){let Q;if(a.apis.IS_BROWSER_ENV){if(a.apis.IS_WEBWORKER_ENV)throw new Error("Unable to save a file from a Web Worker.");Q=n.saveBlob}else if(a.apis.IS_FS_AVAILABLE)Q=async(H,te)=>{let re=await te.arrayBuffer();l.writeFileSync(H,Buffer.from(re))};else throw new Error("Unable to save because filesystem is disabled in this environment.");await Q(J,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:()=>n,GENERATION_CONFIG_NAME:()=>c,GITHUB_ISSUE_URL:()=>s,IMAGE_PROCESSOR_NAME:()=>a,PROCESSOR_NAME:()=>i});let s="https://github.com/huggingface/transformers.js/issues/new/choose",o="config.json",n="preprocessor_config.json",a=n,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:()=>h,count:()=>x,dispatchCallback:()=>s,escapeRegExp:()=>n,isIntegralNumber:()=>i,isNullishDimension:()=>l,isTypedArray:()=>a,len:()=>F,mergeArrays:()=>u,pick:()=>v,pop:()=>p,product:()=>d,reverseDictionary:()=>o,saveBlob:()=>f});function s(w,C){w&&w(C)}function o(w){return Object.fromEntries(Object.entries(w).map(([C,y])=>[y,C]))}function n(w){return w.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function a(w){return w?.prototype?.__proto__?.constructor?.name==="TypedArray"}function i(w){return Number.isInteger(w)||typeof w=="bigint"}function l(w){return w==null||w===-1}function c(w){let C=[],y=w;for(;Array.isArray(y);)C.push(y.length),y=y[0];return C}function p(w,C,y=void 0){let P=w[C];if(P!==void 0)return delete w[C],P;if(y===void 0)throw Error(`Key ${C} does not exist in object.`);return y}function u(...w){return Array.prototype.concat.apply([],w)}function d(...w){return w.reduce((C,y)=>C.flatMap(P=>y.map(I=>[P,I])))}function h(w,C){return Math.abs((w+C)%(2*C)-C)}function f(w,C){let y=URL.createObjectURL(C),P=document.createElement("a");P.href=y,P.download=w,P.click(),P.remove(),URL.revokeObjectURL(y)}function v(w,C){return Object.assign({},...C.map(y=>{if(w[y]!==void 0)return{[y]:w[y]}}))}function F(w){let C=0;for(let y of w)++C;return C}function x(w,C){let y=0;for(let P of w)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:()=>a});class s{constructor(u=(h,f)=>h>f,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 h=this._smallest();this._comparator(d,this._heap[h])&&(this._heap[h]=d,this._siftUpFrom(h))}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 h=this._heap[u];this._heap[u]=this._heap[d],this._heap[d]=h}_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=n.default()}extend(u){for(let d of u)this.push(d)}push(u){let d=this.root;for(let h of u){let f=d.children.get(h);f===void 0&&(f=n.default(),d.children.set(h,f)),d=f}d.isLeaf=!0}*commonPrefixSearch(u){let d=this.root;if(d===void 0)return;let h="";for(let f of u){if(h+=f,d=d.children.get(f),d===void 0)return;d.isLeaf&&(yield h)}}}class n{constructor(u,d){this.isLeaf=u,this.children=d}static default(){return new n(!1,new Map)}}class a{constructor(u,d,h){this.chars=Array.from(u),this.len=this.chars.length,this.bosTokenId=d,this.eosTokenId=h,this.nodes=[],this.beginNodes=Array.from({length:this.len+1},()=>[]),this.endNodes=Array.from({length:this.len+1},()=>[]);let f=new i(this.bosTokenId,0,0,0,0),v=new i(this.eosTokenId,1,this.len,0,0);this.nodes.push(f.clone()),this.nodes.push(v.clone()),this.beginNodes[this.len].push(v),this.endNodes[0].push(f)}insert(u,d,h,f){let v=this.nodes.length,F=new i(f,v,u,d,h);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 x of this.beginNodes[d]){x.prev=null;let w=0,C=null;for(let y of this.endNodes[d]){let P=y.backtraceScore+x.score;(C===null||P>w)&&(C=y.clone(),w=P)}if(C!==null)x.prev=C,x.backtraceScore=w;else return[]}++d}let h=[],v=this.beginNodes[u][0].prev;if(v===null)return[];let F=v.clone();for(;F.prev!==null;)h.push(F.clone()),F=F.clone().prev.clone();return h.reverse(),h}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,h,f,v){this.tokenId=u,this.nodeId=d,this.pos=h,this.length=f,this.score=v,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 h of u){let f=d;for(let v=0;v<h.length;++v)f=f[h[v]]??=Object.create(null);f.end=h}return d}split(u){let d=[],h=u.length,f=0,v=0;for(;v<h;){let F=this.trie,x=null,w=v;for(;w<h&&(F=F[u[w]]);)F.end&&(x=F.end),++w;x?(v>f&&d.push(u.slice(f,v)),d.push(x),v+=x.length,f=v):++v}return f<h&&d.push(u.slice(f)),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:()=>a,DEFAULT_DEVICE_DTYPE_MAPPING:()=>i,DEFAULT_DTYPE_SUFFIX_MAPPING:()=>l,isWebGpuFp16Supported:()=>n});var s=t("./src/env.js"),o=t("./src/utils/devices.js");let n=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}}(),a=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]:a.q8}),l=Object.freeze({[a.fp32]:"",[a.fp16]:"_fp16",[a.int8]:"_int8",[a.uint8]:"_uint8",[a.q8]:"_quantized",[a.q4]:"_q4",[a.q4f16]:"_q4f16",[a.bnb4]:"_bnb4"})},"./src/utils/generic.js":(e,r,t)=>{t.r(r),t.d(r,{Callable:()=>s});let s=class{constructor(){let o=function(...n){return o._call(...n)};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:()=>h,getModelFile:()=>w,getModelJSON:()=>y,getModelText:()=>C});var s=t("?7992"),o=t("?5af5"),n=t("./src/env.js"),a=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 $=s.statSync(E);this.headers.set("content-length",$.size.toString()),this.updateContentType();let L=s.createReadStream(E);this.body=new ReadableStream({start(G){L.on("data",q=>G.enqueue(q)),L.on("end",()=>G.close()),L.on("error",q=>G.error(q))},cancel(){L.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 p(g,E=null,$=null){let L;try{L=new URL(g)}catch{return!1}return!(E&&!E.includes(L.protocol)||$&&!$.includes(L.hostname))}let u=/^(\b[\w\-.]+\b\/)?\b[\w\-.]{1,96}\b$/;function d(g){return!(!u.test(g)||g.includes("..")||g.includes("--")||g.endsWith(".git")||g.endsWith(".ipynb"))}async function h(g){if(n.env.useFS&&!p(g,["http:","https:","blob:"]))return new c(g instanceof URL?g.protocol==="file:"?g.pathname:g.toString():g);if(typeof process<"u"&&process?.release?.name==="node"){let E=!!process.env?.TESTING_REMOTELY,$=n.env.version,L=new Headers;if(L.set("User-Agent",`transformers.js/${$}; is_ci/${E};`),p(g,["http:","https:"],["huggingface.co","hf.co"])){let q=process.env?.HF_TOKEN??process.env?.HF_ACCESS_TOKEN;q&&L.set("Authorization",`Bearer ${q}`)}return fetch(g,{headers:L})}else return fetch(g)}let f={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 v(g,E,$){if(!$)return null;let L=f[g]??`Error (${g}) occurred while trying to load file`;throw Error(`${L}: "${E}".`)}class F{constructor(E){this.path=E}async match(E){let $=o.join(this.path,E),L=new c($);if(L.exists)return L}async put(E,$,L=void 0){let G=o.join(this.path,E);try{let q=$.headers.get("Content-Length"),O=parseInt(q??"0"),J=0;await s.promises.mkdir(o.dirname(G),{recursive:!0});let Q=s.createWriteStream(G),H=$.body.getReader();for(;;){let{done:te,value:re}=await H.read();if(te)break;await new Promise((be,z)=>{Q.write(re,D=>{if(D){z(D);return}be()})}),J+=re.length;let le=O?J/O*100:0;L?.({progress:le,loaded:J,total:O})}Q.close()}catch(q){try{await s.promises.unlink(G)}catch{}throw q}}}async function x(g,...E){for(let $ of E)try{let L=await g.match($);if(L)return L}catch{continue}}async function w(g,E,$=!0,L={},G=!1){if(!n.env.allowLocalModels){if(L.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(!n.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,a.dispatchCallback)(L.progress_callback,{status:"initiate",name:g,file:E});let q;if(!q&&n.env.useCustomCache){if(!n.env.customCache)throw Error("`env.useCustomCache=true`, but `env.customCache` is not defined.");if(!n.env.customCache.match||!n.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");q=n.env.customCache}if(!q&&n.env.useBrowserCache){if(typeof caches>"u")throw Error("Browser cache is not available in this environment.");try{q=await caches.open("transformers-cache")}catch(ne){console.warn("An error occurred while opening the browser cache:",ne)}}if(!q&&n.env.useFSCache){if(!n.apis.IS_FS_AVAILABLE)throw Error("File System Cache is not available in this environment.");q=new F(L.cache_dir??n.env.cacheDir)}let O=L.revision??"main",J=I(g,E),Q=d(g),H=Q?I(n.env.localModelPath,J):J,te=I(n.env.remoteHost,n.env.remotePathTemplate.replaceAll("{model}",g).replaceAll("{revision}",encodeURIComponent(O)),E),re,le=q instanceof F?O==="main"?J:I(g,O,E):te,be=!1,z;q&&(z=await x(q,H,le));let D=z!==void 0;if(z===void 0){if(n.env.allowLocalModels)if(p(J,["http:","https:"])){if(L.local_files_only)throw new Error(`\`local_files_only=true\`, but attempted to load a remote file from: ${J}.`);if(!n.env.allowRemoteModels)throw new Error(`\`env.allowRemoteModels=false\`, but attempted to load a remote file from: ${J}.`)}else try{z=await h(H),re=H}catch(Ce){console.warn(`Unable to load from local path "${H}": "${Ce}"`)}if(z===void 0||z.status===404){if(L.local_files_only||!n.env.allowRemoteModels){if($)throw Error(`\`local_files_only=true\` or \`env.allowRemoteModels=false\` and file was not found locally at "${H}".`);return null}if(!Q)throw Error(`Local file missing at "${H}" and download aborted due to invalid model ID "${g}".`);if(z=await h(te),z.status!==200)return v(z.status,te,$);re=le}be=q&&typeof Response<"u"&&z instanceof Response&&z.status===200}(0,a.dispatchCallback)(L.progress_callback,{status:"download",name:g,file:E});let K;if(!(n.apis.IS_NODE_ENV&&G)){let ne;L.progress_callback?D&&typeof navigator<"u"&&/firefox/i.test(navigator.userAgent)?(ne=new Uint8Array(await z.arrayBuffer()),(0,a.dispatchCallback)(L.progress_callback,{status:"progress",name:g,file:E,progress:100,loaded:ne.length,total:ne.length})):ne=await P(z,Ce=>{(0,a.dispatchCallback)(L.progress_callback,{status:"progress",name:g,file:E,...Ce})}):ne=new Uint8Array(await z.arrayBuffer()),K=ne}if(be&&re&&await q.match(re)===void 0&&(K?await q.put(re,new Response(K,{headers:z.headers})).catch(ne=>{console.warn(`Unable to add response to browser cache: ${ne}.`)}):await q.put(re,z,L.progress_callback)),(0,a.dispatchCallback)(L.progress_callback,{status:"done",name:g,file:E}),K){if(!n.apis.IS_NODE_ENV&&G)throw new Error("Cannot return path in a browser environment.");return K}if(z instanceof c)return z.filePath;let R=await q?.match(re);if(R instanceof c)return R.filePath;if(R instanceof Response)return new Uint8Array(await R.arrayBuffer());if(typeof R=="string")return R;throw new Error("Unable to get model file path or buffer.")}async function C(g,E,$=!0,L={}){let G=await w(g,E,$,L,!1);return G===null?null:new TextDecoder("utf-8").decode(G)}async function y(g,E,$=!0,L={}){let G=await C(g,E,$,L);return G===null?{}:JSON.parse(G)}async function P(g,E){let $=g.headers.get("Content-Length");$===null&&console.warn("Unable to determine content-length from response headers. Will expand buffer when needed.");let L=parseInt($??"0"),G=new Uint8Array(L),q=0,O=g.body.getReader();async function J(){let{done:Q,value:H}=await O.read();if(Q)return;let te=q+H.length;if(te>L){L=te;let le=new Uint8Array(L);le.set(G),G=le}G.set(H,q),q=te;let re=q/L*100;return E({progress:re,loaded:q,total:L}),J()}return await J(),G}function I(...g){return g=g.map((E,$)=>($&&(E=E.replace(new RegExp("^/"),"")),$!==g.length-1&&(E=E.replace(new RegExp("/$"),"")),E)),g.join("/")}},"./src/utils/image.js":(e,r,t)=>{t.r(r),t.d(r,{RawImage:()=>f,load_image:()=>v});var s=t("./src/utils/core.js"),o=t("./src/utils/hub.js"),n=t("./src/env.js"),a=t("./src/utils/tensor.js"),i=t("?2b25");let l,c,p,u=n.apis.IS_BROWSER_ENV||n.apis.IS_WEBWORKER_ENV;if(u)l=(F,x)=>{if(!self.OffscreenCanvas)throw new Error("OffscreenCanvas not supported by this browser.");return new self.OffscreenCanvas(F,x)},p=self.createImageBitmap,c=self.ImageData;else if(i)p=async F=>{let w=(await F.metadata()).channels,{data:C,info:y}=await F.rotate().raw().toBuffer({resolveWithObject:!0}),P=new f(new Uint8ClampedArray(C),y.width,y.height,y.channels);return w!==void 0&&w!==y.channels&&P.convert(w),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"},h=new Map([["png","image/png"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["gif","image/gif"]]);class f{constructor(x,w,C,y){this.data=x,this.width=w,this.height=C,this.channels=y}get size(){return[this.width,this.height]}static async read(x){if(x instanceof f)return x;if(typeof x=="string"||x instanceof URL)return await this.fromURL(x);if(x instanceof Blob)return await this.fromBlob(x);if(typeof HTMLCanvasElement<"u"&&x instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&x instanceof OffscreenCanvas)return this.fromCanvas(x);throw new Error(`Unsupported input type: ${typeof x}`)}static fromCanvas(x){if(!u)throw new Error("fromCanvas() is only supported in browser environments.");let C=x.getContext("2d").getImageData(0,0,x.width,x.height).data;return new f(C,x.width,x.height,4)}static async fromURL(x){let w=await(0,o.getFile)(x);if(w.status!==200)throw new Error(`Unable to read image from "${x}" (${w.status} ${w.statusText})`);let C=await w.blob();return this.fromBlob(C)}static async fromBlob(x){if(u){let w=await p(x),C=l(w.width,w.height).getContext("2d");return C.drawImage(w,0,0),new this(C.getImageData(0,0,w.width,w.height).data,w.width,w.height,4)}else{let w=i(await x.arrayBuffer());return await p(w)}}static fromTensor(x,w="CHW"){if(x.dims.length!==3)throw new Error(`Tensor should have 3 dimensions, but has ${x.dims.length} dimensions.`);if(w==="CHW")x=x.transpose(1,2,0);else if(w!=="HWC")throw new Error(`Unsupported channel format: ${w}`);if(!(x.data instanceof Uint8ClampedArray||x.data instanceof Uint8Array))throw new Error(`Unsupported tensor type: ${x.type}`);switch(x.dims[2]){case 1:case 2:case 3:case 4:return new f(x.data,x.dims[1],x.dims[0],x.dims[2]);default:throw new Error(`Unsupported number of channels: ${x.dims[2]}`)}}grayscale(){if(this.channels===1)return this;let x=new Uint8ClampedArray(this.width*this.height*1);switch(this.channels){case 3:case 4:for(let w=0,C=0;w<this.data.length;w+=this.channels){let y=this.data[w],P=this.data[w+1],I=this.data[w+2];x[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(x,this.width,this.height,1)}rgb(){if(this.channels===3)return this;let x=new Uint8ClampedArray(this.width*this.height*3);switch(this.channels){case 1:for(let w=0,C=0;w<this.data.length;++w)x[C++]=this.data[w],x[C++]=this.data[w],x[C++]=this.data[w];break;case 4:for(let w=0,C=0;w<this.data.length;w+=4)x[C++]=this.data[w],x[C++]=this.data[w+1],x[C++]=this.data[w+2];break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(x,this.width,this.height,3)}rgba(){if(this.channels===4)return this;let x=new Uint8ClampedArray(this.width*this.height*4);switch(this.channels){case 1:for(let w=0,C=0;w<this.data.length;++w)x[C++]=this.data[w],x[C++]=this.data[w],x[C++]=this.data[w],x[C++]=255;break;case 3:for(let w=0,C=0;w<this.data.length;w+=3)x[C++]=this.data[w],x[C++]=this.data[w+1],x[C++]=this.data[w+2],x[C++]=255;break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this._update(x,this.width,this.height,4)}putAlpha(x){if(x.width!==this.width||x.height!==this.height)throw new Error(`Expected mask size to be ${this.width}x${this.height}, but got ${x.width}x${x.height}`);if(x.channels!==1)throw new Error(`Expected mask to have 1 channel, but got ${x.channels}`);let w=this.data,C=x.data,y=this.width*this.height;if(this.channels===3){let P=new Uint8ClampedArray(y*4);for(let I=0,g=0,E=0;I<y;++I)P[E++]=w[g++],P[E++]=w[g++],P[E++]=w[g++],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)w[4*P+3]=C[P];return this}throw new Error(`Expected image to have 3 or 4 channels, but got ${this.channels}`)}async resize(x,w,{resample:C=2}={}){if(this.width===x&&this.height===w)return this;let y=d[C]??C,P=(0,s.isNullishDimension)(x),I=(0,s.isNullishDimension)(w);if(P&&I)return this;if(P?x=w/this.height*this.width:I&&(w=x/this.width*this.height),u){let g=this.channels,E=this.toCanvas(),$=l(x,w).getContext("2d");return $.drawImage(E,0,0,x,w),new f($.getImageData(0,0,x,w).data,x,w,4).convert(g)}else{let g=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":g=g.affine([x/this.width,0,0,w/this.height],{interpolator:y});break;case"lanczos":g=g.resize({width:x,height:w,fit:"fill",kernel:"lanczos3"});break;default:throw new Error(`Resampling method ${y} is not supported.`)}return await p(g)}}async pad([x,w,C,y]){if(x=Math.max(x,0),w=Math.max(w,0),C=Math.max(C,0),y=Math.max(y,0),x===0&&w===0&&C===0&&y===0)return this;if(u){let P=this.channels,I=this.toCanvas(),g=this.width+x+w,E=this.height+C+y,$=l(g,E).getContext("2d");return $.drawImage(I,0,0,this.width,this.height,x,C,this.width,this.height),new f($.getImageData(0,0,g,E).data,g,E,4).convert(P)}else{let P=this.toSharp().extend({left:x,right:w,top:C,bottom:y});return await p(P)}}async crop([x,w,C,y]){if(x=Math.max(x,0),w=Math.max(w,0),C=Math.min(C,this.width-1),y=Math.min(y,this.height-1),x===0&&w===0&&C===this.width-1&&y===this.height-1)return this;let P=C-x+1,I=y-w+1;if(u){let g=this.channels,E=this.toCanvas(),$=l(P,I).getContext("2d");return $.drawImage(E,x,w,P,I,0,0,P,I),new f($.getImageData(0,0,P,I).data,P,I,4).convert(g)}else{let g=this.toSharp().extract({left:x,top:w,width:P,height:I});return await p(g)}}async center_crop(x,w){if(this.width===x&&this.height===w)return this;let C=(this.width-x)/2,y=(this.height-w)/2;if(u){let P=this.channels,I=this.toCanvas(),g=l(x,w).getContext("2d"),E=0,$=0,L=0,G=0;return C>=0?E=C:L=-C,y>=0?$=y:G=-y,g.drawImage(I,E,$,x,w,L,G,x,w),new f(g.getImageData(0,0,x,w).data,x,w,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:x,height:w});else if(C<=0&&y<=0){let I=Math.floor(-y),g=Math.floor(-C);P=P.extend({top:I,left:g,right:x-this.width-g,bottom:w-this.height-I})}else{let I=[0,0],g=0;y<0?(I[0]=Math.floor(-y),I[1]=w-this.height-I[0]):g=Math.floor(y);let E=[0,0],$=0;C<0?(E[0]=Math.floor(-C),E[1]=x-this.width-E[0]):$=Math.floor(C),P=P.extend({top:I[0],bottom:I[1],left:E[0],right:E[1]}).extract({left:$,top:g,width:x,height:w})}return await p(P)}}async toBlob(x="image/png",w=1){if(!u)throw new Error("toBlob() is only supported in browser environments.");return await this.toCanvas().convertToBlob({type:x,quality:w})}toTensor(x="CHW"){let w=new a.Tensor("uint8",new Uint8Array(this.data),[this.height,this.width,this.channels]);if(x!=="HWC")if(x==="CHW")w=w.permute(2,0,1);else throw new Error(`Unsupported channel format: ${x}`);return w}toCanvas(){if(!u)throw new Error("toCanvas() is only supported in browser environments.");let x=this.clone().rgba(),w=l(x.width,x.height),C=new c(x.data,x.width,x.height);return w.getContext("2d").putImageData(C,0,0),w}split(){let{data:x,width:w,height:C,channels:y}=this,P=x.constructor,I=x.length/y,g=Array.from({length:y},()=>new P(I));for(let E=0;E<I;++E){let $=y*E;for(let L=0;L<y;++L)g[L][E]=x[$+L]}return g.map(E=>new f(E,w,C,1))}_update(x,w,C,y=null){return this.data=x,this.width=w,this.height=C,y!==null&&(this.channels=y),this}clone(){return new f(this.data.slice(),this.width,this.height,this.channels)}convert(x){if(this.channels===x)return this;switch(x){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(x){if(u){if(n.apis.IS_WEBWORKER_ENV)throw new Error("Unable to save an image from a Web Worker.");let w=x.split(".").pop().toLowerCase(),C=h.get(w)??"image/png",y=await this.toBlob(C);(0,s.saveBlob)(x,y)}else{if(n.apis.IS_FS_AVAILABLE)return await this.toSharp().toFile(x);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 v=f.read.bind(f)},"./src/utils/maths.js":(e,r,t)=>{t.r(r),t.d(r,{FFT:()=>v,bankers_round:()=>w,cos_sim:()=>l,dot:()=>i,dynamic_time_warping:()=>C,interpolate_data:()=>s,log_softmax:()=>a,magnitude:()=>c,max:()=>u,medianFilter:()=>F,min:()=>p,permute_data:()=>o,round:()=>x,softmax:()=>n});function s(y,[P,I,g],[E,$],L="bilinear",G=!1){let q=$/g,O=E/I,J=new y.constructor(E*$*P),Q=I*g,H=E*$;for(let te=0;te<E;++te)for(let re=0;re<$;++re){let le=te*$+re,be=(re+.5)/q-.5,z=(te+.5)/O-.5,D=Math.floor(be),K=Math.floor(z),R=Math.min(D+1,g-1),ne=Math.min(K+1,I-1);D=Math.max(D,0),K=Math.max(K,0);let Ce=be-D,Me=z-K,Ie=(1-Ce)*(1-Me),Ke=Ce*(1-Me),et=(1-Ce)*Me,_e=Ce*Me,Z=K*g,V=ne*g,fe=Z+D,Se=Z+R,Pe=V+D,pe=V+R;for(let xe=0;xe<P;++xe){let de=xe*Q;J[xe*H+le]=Ie*y[de+fe]+Ke*y[de+Se]+et*y[de+Pe]+_e*y[de+pe]}}return J}function o(y,P,I){let g=new Array(I.length),E=new Array(I.length);for(let G=I.length-1,q=1;G>=0;--G)E[G]=q,g[G]=P[I[G]],q*=g[G];let $=I.map((G,q)=>E[I.indexOf(q)]),L=new y.constructor(y.length);for(let G=0;G<y.length;++G){let q=0;for(let O=P.length-1,J=G;O>=0;--O)q+=J%P[O]*$[O],J=Math.floor(J/P[O]);L[q]=y[G]}return[L,g]}function n(y){let P=u(y)[0],I=y.map($=>Math.exp($-P)),g=I.reduce(($,L)=>$+L,0);return I.map($=>$/g)}function a(y){let P=u(y)[0],I=0;for(let $=0;$<y.length;++$)I+=Math.exp(y[$]-P);let g=Math.log(I);return y.map($=>$-P-g)}function i(y,P){let I=0;for(let g=0;g<y.length;++g)I+=y[g]*P[g];return I}function l(y,P){let I=i(y,P),g=c(y),E=c(P);return I/(g*E)}function c(y){return Math.sqrt(y.reduce((P,I)=>P+I*I,0))}function p(y){if(y.length===0)throw Error("Array must not be empty");let P=y[0],I=0;for(let g=1;g<y.length;++g)y[g]<P&&(P=y[g],I=g);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 g=1;g<y.length;++g)y[g]>P&&(P=y[g],I=g);return[P,I]}function d(y){return y>0&&(y&y-1)===0}class h{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 g=0;g<this.table.length;g+=2){let E=Math.PI*g/this.size;this.table[g]=Math.cos(E),this.table[g+1]=-Math.sin(E)}let I=0;for(let g=1;this.size>g;g<<=1)++I;this._width=I%2===0?I-1:I,this._bitrev=new Int32Array(1<<this._width);for(let g=0;g<this._bitrev.length;++g){this._bitrev[g]=0;for(let E=0;E<this._width;E+=2){let $=this._width-E-2;this._bitrev[g]|=(g>>>E&3)<<$}}}createComplexArray(){return new Float64Array(this._csize)}fromComplexArray(P,I){let g=I||new Array(P.length>>>1);for(let E=0;E<P.length;E+=2)g[E>>>1]=P[E];return g}toComplexArray(P,I){let g=I||this.createComplexArray();for(let E=0;E<g.length;E+=2)g[E]=P[E>>>1],g[E+1]=0;return g}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 g=0;g<P.length;++g)P[g]/=this.size}_transform4(P,I,g){let E=this._csize,L=1<<this._width,G=E/L<<1,q,O,J=this._bitrev;if(G===4)for(q=0,O=0;q<E;q+=G,++O){let H=J[O];this._singleTransform2(I,P,q,H,L)}else for(q=0,O=0;q<E;q+=G,++O){let H=J[O];this._singleTransform4(I,P,q,H,L,g)}let Q=this.table;for(L>>=2;L>=2;L>>=2){G=E/L<<1;let H=G>>>2;for(q=0;q<E;q+=G){let te=q+H-1;for(let re=q,le=0;re<te;re+=2,le+=L){let be=re,z=be+H,D=z+H,K=D+H,R=P[be],ne=P[be+1],Ce=P[z],Me=P[z+1],Ie=P[D],Ke=P[D+1],et=P[K],_e=P[K+1],Z=Q[le],V=g*Q[le+1],fe=Ce*Z-Me*V,Se=Ce*V+Me*Z,Pe=Q[2*le],pe=g*Q[2*le+1],xe=Ie*Pe-Ke*pe,de=Ie*pe+Ke*Pe,Ae=Q[3*le],$e=g*Q[3*le+1],Ue=et*Ae-_e*$e,Ee=et*$e+_e*Ae,je=R+xe,Ge=ne+de,Ve=R-xe,De=ne-de,ot=fe+Ue,lt=Se+Ee,rt=g*(fe-Ue),Ye=g*(Se-Ee);P[be]=je+ot,P[be+1]=Ge+lt,P[z]=Ve+Ye,P[z+1]=De-rt,P[D]=je-ot,P[D+1]=Ge-lt,P[K]=Ve-Ye,P[K+1]=De+rt}}}}_singleTransform2(P,I,g,E,$){let L=P[E],G=P[E+1],q=P[E+$],O=P[E+$+1];I[g]=L+q,I[g+1]=G+O,I[g+2]=L-q,I[g+3]=G-O}_singleTransform4(P,I,g,E,$,L){let G=$*2,q=$*3,O=P[E],J=P[E+1],Q=P[E+$],H=P[E+$+1],te=P[E+G],re=P[E+G+1],le=P[E+q],be=P[E+q+1],z=O+te,D=J+re,K=O-te,R=J-re,ne=Q+le,Ce=H+be,Me=L*(Q-le),Ie=L*(H-be);I[g]=z+ne,I[g+1]=D+Ce,I[g+2]=K+Ie,I[g+3]=R-Me,I[g+4]=z-ne,I[g+5]=D-Ce,I[g+6]=K-Ie,I[g+7]=R+Me}_realTransform4(P,I,g){let E=this._csize,L=1<<this._width,G=E/L<<1,q,O,J=this._bitrev;if(G===4)for(q=0,O=0;q<E;q+=G,++O){let te=J[O];this._singleRealTransform2(I,P,q,te>>>1,L>>>1)}else for(q=0,O=0;q<E;q+=G,++O){let te=J[O];this._singleRealTransform4(I,P,q,te>>>1,L>>>1,g)}let Q=this.table;for(L>>=2;L>=2;L>>=2){G=E/L<<1;let te=G>>>1,re=te>>>1,le=re>>>1;for(q=0;q<E;q+=G)for(let be=0,z=0;be<=le;be+=2,z+=L){let D=q+be,K=D+re,R=K+re,ne=R+re,Ce=P[D],Me=P[D+1],Ie=P[K],Ke=P[K+1],et=P[R],_e=P[R+1],Z=P[ne],V=P[ne+1],fe=Ce,Se=Me,Pe=Q[z],pe=g*Q[z+1],xe=Ie*Pe-Ke*pe,de=Ie*pe+Ke*Pe,Ae=Q[2*z],$e=g*Q[2*z+1],Ue=et*Ae-_e*$e,Ee=et*$e+_e*Ae,je=Q[3*z],Ge=g*Q[3*z+1],Ve=Z*je-V*Ge,De=Z*Ge+V*je,ot=fe+Ue,lt=Se+Ee,rt=fe-Ue,Ye=Se-Ee,ft=xe+Ve,yt=de+De,Ot=g*(xe-Ve),vr=g*(de-De);if(P[D]=ot+ft,P[D+1]=lt+yt,P[K]=rt+vr,P[K+1]=Ye-Ot,be===0){P[R]=ot-ft,P[R+1]=lt-yt;continue}if(be===le)continue;let zr=q+re-be,Rr=q+te-be;P[zr]=rt-g*vr,P[zr+1]=-Ye-g*Ot,P[Rr]=ot-g*ft,P[Rr+1]=-lt+g*yt}}let H=E>>>1;for(let te=2;te<H;te+=2)P[E-te]=P[te],P[E-te+1]=-P[te+1]}_singleRealTransform2(P,I,g,E,$){let L=P[E],G=P[E+$];I[g]=L+G,I[g+1]=0,I[g+2]=L-G,I[g+3]=0}_singleRealTransform4(P,I,g,E,$,L){let G=$*2,q=$*3,O=P[E],J=P[E+$],Q=P[E+G],H=P[E+q],te=O+Q,re=O-Q,le=J+H,be=L*(J-H);I[g]=te+le,I[g+1]=0,I[g+2]=re,I[g+3]=-be,I[g+4]=te-le,I[g+5]=0,I[g+6]=re,I[g+7]=be}}class f{constructor(P){let I=2*(P-1),g=2*(2*P-1),E=2**Math.ceil(Math.log2(g));this.bufferSize=E,this._a=I;let $=new Float64Array(g),L=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 G=-2*Math.PI/P,q=Math.cos(G),O=Math.sin(G);for(let J=0;J<g>>1;++J){let Q=(J+1-P)**2/2,H=Math.sqrt(q**2+O**2)**Q,te=Q*Math.atan2(O,q),re=2*J;$[re]=H*Math.cos(te),$[re+1]=H*Math.sin(te),L[re]=$[re],L[re+1]=-$[re+1]}this._slicedChirpBuffer=$.subarray(I,g),this._f=new h(E>>1),this._f.transform(this._chirpBuffer,L)}_transform(P,I,g){let E=this._buffer1,$=this._buffer2,L=this._outBuffer1,G=this._outBuffer2,q=this._chirpBuffer,O=this._slicedChirpBuffer,J=this._a;if(g)for(let Q=0;Q<O.length;Q+=2){let H=Q+1,te=Q>>1,re=I[te];E[Q]=re*O[Q],E[H]=re*O[H]}else for(let Q=0;Q<O.length;Q+=2){let H=Q+1;E[Q]=I[Q]*O[Q]-I[H]*O[H],E[H]=I[Q]*O[H]+I[H]*O[Q]}this._f.transform(L,E);for(let Q=0;Q<q.length;Q+=2){let H=Q+1;$[Q]=L[Q]*q[Q]-L[H]*q[H],$[H]=L[Q]*q[H]+L[H]*q[Q]}this._f.inverseTransform(G,$);for(let Q=0;Q<G.length;Q+=2){let H=G[Q+J],te=G[Q+J+1],re=O[Q],le=O[Q+1];P[Q]=H*re-te*le,P[Q+1]=H*le+te*re}}transform(P,I){this._transform(P,I,!1)}realTransform(P,I){this._transform(P,I,!0)}}class v{constructor(P){this.fft_length=P,this.isPowerOfTwo=d(P),this.isPowerOfTwo?(this.fft=new h(P),this.outputBufferSize=2*P):(this.fft=new f(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),g=new y.constructor(P),E=Math.floor(P/2);for(let $=0;$<y.length;++$){let L=0;for(let G=-E;G<=E;++G){let q=$+G;q<0?q=Math.abs(q):q>=y.length&&(q=2*(y.length-1)-q),g[L++]=y[q]}g.sort(),I[$]=g[E]}return I}function x(y,P){let I=Math.pow(10,P);return Math.round(y*I)/I}function w(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,g=[P+1,I+1],E=Array.from({length:g[0]},()=>Array(g[1]).fill(1/0));E[0][0]=0;let $=Array.from({length:g[0]},()=>Array(g[1]).fill(-1));for(let J=1;J<g[1];++J)for(let Q=1;Q<g[0];++Q){let H=E[Q-1][J-1],te=E[Q-1][J],re=E[Q][J-1],le,be;H<te&&H<re?(le=H,be=0):te<H&&te<re?(le=te,be=1):(le=re,be=2),E[Q][J]=y[Q-1][J-1]+le,$[Q][J]=be}for(let J=0;J<g[1];++J)$[0][J]=2;for(let J=0;J<g[0];++J)$[J][0]=1;let L=P,G=I,q=[],O=[];for(;L>0||G>0;)switch(q.push(L-1),O.push(G-1),$[L][G]){case 0:--L,--G;break;case 1:--L;break;case 2:--G;break;default:throw new Error(`Internal error in dynamic time warping. Unexpected trace[${L}, ${G}]. Please file a bug report.`)}return q.reverse(),O.reverse(),[q,O]}},"./src/utils/tensor.js":(e,r,t)=>{t.r(r),t.d(r,{DataTypeMap:()=>a,Tensor:()=>i,cat:()=>I,full:()=>O,full_like:()=>J,interpolate:()=>p,interpolate_4d:()=>u,layer_norm:()=>w,matmul:()=>d,mean:()=>L,mean_pooling:()=>x,ones:()=>Q,ones_like:()=>H,permute:()=>c,quantize_embeddings:()=>be,rand:()=>le,rfft:()=>h,slice:()=>F,stack:()=>g,std_mean:()=>$,topk:()=>f,zeros:()=>te,zeros_like:()=>re});var s=t("./src/utils/maths.js"),o=t("./src/backends/onnx.js"),n=t("./src/ops/registry.js");let a=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(D){this.ort_tensor.dims=D}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(...D){return(0,o.isONNXTensor)(D[0])?this.ort_tensor=D[0]:this.ort_tensor=new o.Tensor(D[0],D[1],D[2]),new Proxy(this,{get:(K,R)=>{if(typeof R=="string"){let ne=Number(R);if(Number.isInteger(ne))return K._getitem(ne)}return K[R]},set:(K,R,ne)=>K[R]=ne})}dispose(){this.ort_tensor.dispose()}*[Symbol.iterator](){let[D,...K]=this.dims;if(K.length>0){let R=K.reduce((ne,Ce)=>ne*Ce);for(let ne=0;ne<D;++ne)yield this._subarray(ne,R,K)}else yield*this.data}_getitem(D){let[K,...R]=this.dims;if(D=P(D,K),R.length>0){let ne=R.reduce((Ce,Me)=>Ce*Me);return this._subarray(D,ne,R)}else return new i(this.type,[this.data[D]],R)}indexOf(D){let K=this.data;for(let R=0;R<K.length;++R)if(K[R]==D)return R;return-1}_subarray(D,K,R){let ne=D*K,Ce=(D+1)*K,Me="subarray"in this.data?this.data.subarray(ne,Ce):this.data.slice(ne,Ce);return new i(this.type,Me,R)}item(){let D=this.data;if(D.length!==1)throw new Error(`a Tensor with ${D.length} elements cannot be converted to Scalar`);return D[0]}tolist(){return l(this.data,this.dims)}sigmoid(){return this.clone().sigmoid_()}sigmoid_(){let D=this.data;for(let K=0;K<D.length;++K)D[K]=1/(1+Math.exp(-D[K]));return this}map(D){return this.clone().map_(D)}map_(D){let K=this.data;for(let R=0;R<K.length;++R)K[R]=D(K[R],R,K);return this}mul(D){return this.clone().mul_(D)}mul_(D){let K=this.data;for(let R=0;R<K.length;++R)K[R]*=D;return this}div(D){return this.clone().div_(D)}div_(D){let K=this.data;for(let R=0;R<K.length;++R)K[R]/=D;return this}add(D){return this.clone().add_(D)}add_(D){let K=this.data;for(let R=0;R<K.length;++R)K[R]+=D;return this}sub(D){return this.clone().sub_(D)}sub_(D){let K=this.data;for(let R=0;R<K.length;++R)K[R]-=D;return this}clone(){return new i(this.type,this.data.slice(),this.dims.slice())}slice(...D){let K=[],R=[];for(let _e=0;_e<this.dims.length;++_e){let Z=D[_e];if(Z==null)R.push([0,this.dims[_e]]),K.push(this.dims[_e]);else if(typeof Z=="number")Z=P(Z,this.dims[_e],_e),R.push([Z,Z+1]);else if(Array.isArray(Z)&&Z.length===2){let[V,fe]=Z;if(V=V===null?0:P(V,this.dims[_e],_e,!1),fe=fe===null?this.dims[_e]:P(fe,this.dims[_e],_e,!1),V>fe)throw new Error(`Invalid slice: ${Z}`);let Se=[Math.max(V,0),Math.min(fe,this.dims[_e])];R.push(Se),K.push(Se[1]-Se[0])}else throw new Error(`Invalid slice: ${Z}`)}let ne=R.map(([_e,Z])=>Z-_e),Ce=ne.reduce((_e,Z)=>_e*Z),Me=this.data,Ie=new Me.constructor(Ce),Ke=this.stride(),et=!0;for(let _e=1;_e<ne.length;++_e)if(R[_e][0]!==0||R[_e][1]!==this.dims[_e]){et=!1;break}if(et){let _e=R[0][0]*Ke[0],Z=R[0][1]*Ke[0];if(ArrayBuffer.isView(Me))Ie.set(Me.subarray(_e,Z));else if(Array.isArray(Me)){let V=Me.slice(_e,Z);for(let fe=0;fe<V.length;++fe)Ie[fe]=V[fe]}else throw new Error("Unsupported data type for slicing")}else for(let _e=0;_e<Ce;++_e){let Z=0;for(let V=ne.length-1,fe=_e;V>=0;--V){let Se=ne[V];Z+=(fe%Se+R[V][0])*Ke[V],fe=Math.floor(fe/Se)}Ie[_e]=Me[Z]}return new i(this.type,Ie,K)}permute(...D){return c(this,D)}transpose(...D){return this.permute(...D)}sum(D=null,K=!1){return this.norm(1,D,K)}norm(D="fro",K=null,R=!1){if(D==="fro")D=2;else if(typeof D=="string")throw Error(`Unsupported norm: ${D}`);let ne=this.data,Ce=(et,_e)=>et+_e**D;if(K===null){let et=ne.reduce(Ce,0)**(1/D);return new i(this.type,[et],[])}let[Me,Ie,Ke]=E(Ce,this,K,R);if(D!==1)for(let et=0;et<Ie.length;++et)Ie[et]=Ie[et]**(1/D);return new i(Me,Ie,Ke)}normalize_(D=2,K=1){K=P(K,this.dims.length);let R=this.norm(D,K,!0),ne=this.data,Ce=R.data;for(let Me=0;Me<ne.length;++Me){let Ie=0;for(let Ke=this.dims.length-1,et=Me,_e=1;Ke>=0;--Ke){let Z=this.dims[Ke];if(Ke!==K){let V=et%Z;Ie+=V*_e,_e*=this.dims[Ke]}et=Math.floor(et/Z)}ne[Me]/=Ce[Ie]}return this}normalize(D=2,K=1){return this.clone().normalize_(D,K)}stride(){return G(this.dims)}squeeze(D=null){return new i(this.type,this.data,C(this.dims,D))}squeeze_(D=null){return this.dims=C(this.dims,D),this}unsqueeze(D=null){return new i(this.type,this.data,y(this.dims,D))}unsqueeze_(D=null){return this.dims=y(this.dims,D),this}flatten_(D=0,K=-1){K=(K+this.dims.length)%this.dims.length;let R=this.dims.slice(0,D),ne=this.dims.slice(D,K+1),Ce=this.dims.slice(K+1);return this.dims=[...R,ne.reduce((Me,Ie)=>Me*Ie,1),...Ce],this}flatten(D=0,K=-1){return this.clone().flatten_(D,K)}view(...D){let K=-1;for(let ne=0;ne<D.length;++ne)if(D[ne]===-1){if(K!==-1)throw new Error("Only one dimension can be inferred");K=ne}let R=this.data;if(K!==-1){let ne=D.reduce((Ce,Me,Ie)=>Ie!==K?Ce*Me:Ce,1);D[K]=R.length/ne}return new i(this.type,R,D)}neg_(){let D=this.data;for(let K=0;K<D.length;++K)D[K]=-D[K];return this}neg(){return this.clone().neg_()}gt(D){let K=new Uint8Array(this.data.length),R=this.data;for(let ne=0;ne<R.length;++ne)K[ne]=R[ne]>D?1:0;return new i("bool",K,this.dims)}lt(D){let K=new Uint8Array(this.data.length),R=this.data;for(let ne=0;ne<R.length;++ne)K[ne]=R[ne]<D?1:0;return new i("bool",K,this.dims)}clamp_(D,K){let R=this.data;for(let ne=0;ne<R.length;++ne)R[ne]=Math.min(Math.max(R[ne],D),K);return this}clamp(D,K){return this.clone().clamp_(D,K)}round_(){let D=this.data;for(let K=0;K<D.length;++K)D[K]=Math.round(D[K]);return this}round(){return this.clone().round_()}mean(D=null,K=!1){return L(this,D,K)}min(D=null,K=!1){if(D===null){let Me=(0,s.min)(this.data)[0];return new i(this.type,[Me],[])}let[R,ne,Ce]=E((Me,Ie)=>Math.min(Me,Ie),this,D,K,1/0);return new i(R,ne,Ce)}max(D=null,K=!1){if(D===null){let Me=(0,s.max)(this.data)[0];return new i(this.type,[Me],[])}let[R,ne,Ce]=E((Me,Ie)=>Math.max(Me,Ie),this,D,K,-1/0);return new i(R,ne,Ce)}argmin(D=null,K=!1){if(D!==null)throw new Error("`dim !== null` not yet implemented.");let R=(0,s.min)(this.data)[1];return new i("int64",[BigInt(R)],[])}argmax(D=null,K=!1){if(D!==null)throw new Error("`dim !== null` not yet implemented.");let R=(0,s.max)(this.data)[1];return new i("int64",[BigInt(R)],[])}to(D){if(this.type===D)return this;if(!a.hasOwnProperty(D))throw new Error(`Unsupported type: ${D}`);let K,R=["int64","uint64"].includes(this.type),ne=["int64","uint64"].includes(D);return R&&!ne?K=Number:!R&&ne&&(K=BigInt),new i(D,a[D].from(this.data,K),this.dims)}}function l(z,D){let K=z.length,R=D.reduce((Ce,Me)=>Ce*Me);if(K!==R)throw Error(`cannot reshape array of size ${K} into shape (${D})`);let ne=z;for(let Ce=D.length-1;Ce>=0;Ce--)ne=ne.reduce((Me,Ie)=>{let Ke=Me[Me.length-1];return Ke.length<D[Ce]?Ke.push(Ie):Me.push([Ie]),Me},[[]]);return ne[0]}function c(z,D){let[K,R]=(0,s.permute_data)(z.data,z.dims,D);return new i(z.type,K,R)}function p(z,[D,K],R="bilinear",ne=!1){let Ce=z.dims.at(-3)??1,Me=z.dims.at(-2),Ie=z.dims.at(-1),Ke=(0,s.interpolate_data)(z.data,[Ce,Me,Ie],[D,K],R,ne);return new i(z.type,Ke,[Ce,D,K])}async function u(z,{size:D=null,mode:K="bilinear"}={}){if(z.dims.length!==4)throw new Error("`interpolate_4d` currently only supports 4D input.");if(!D)throw new Error("`interpolate_4d` requires a `size` argument.");let R;if(D.length===2)R=[...z.dims.slice(0,2),...D];else if(D.length===3)R=[z.dims[0],...D];else if(D.length===4)R=D;else throw new Error("`size` must be of length 2, 3, or 4.");let ne;if(K==="nearest")ne=await n.TensorOpRegistry.nearest_interpolate_4d;else if(K==="bilinear")ne=await n.TensorOpRegistry.bilinear_interpolate_4d;else if(K==="bicubic")ne=await n.TensorOpRegistry.bicubic_interpolate_4d;else throw new Error(`Unsupported mode: ${K}`);let Ce=new i("int64",new BigInt64Array(R.map(BigInt)),[R.length]);return await ne({x:z,s:Ce})}async function d(z,D){return await(await n.TensorOpRegistry.matmul)({a:z,b:D})}async function h(z,D){return await(await n.TensorOpRegistry.rfft)({x:z,a:D})}async function f(z,D){let K=await n.TensorOpRegistry.top_k;return D==null?D=z.dims.at(-1):D=Math.min(D,z.dims.at(-1)),await K({x:z,k:new i("int64",[BigInt(D)],[1])})}let v=z=>new i("int64",z,[z.length]);async function F(z,D,K,R,ne){return await(await n.TensorOpRegistry.slice)({x:z,s:v(D),e:v(K),a:v(R),t:v(ne??new Array(R.length).fill(1))})}function x(z,D){let K=z.data,R=D.data,ne=[z.dims[0],z.dims[2]],Ce=new K.constructor(ne[0]*ne[1]),[Me,Ie,Ke]=z.dims,et=0;for(let _e=0;_e<Me;++_e){let Z=_e*Ke*Ie;for(let V=0;V<Ke;++V){let fe=0,Se=0,Pe=_e*Ie,pe=Z+V;for(let de=0;de<Ie;++de){let Ae=Number(R[Pe+de]);Se+=Ae,fe+=K[pe+de*Ke]*Ae}let xe=fe/Se;Ce[et++]=xe}}return new i(z.type,Ce,ne)}function w(z,D,{eps:K=1e-5}={}){if(z.dims.length!==2)throw new Error("`layer_norm` currently only supports 2D input.");let[R,ne]=z.dims;if(D.length!==1&&D[0]!==ne)throw new Error("`normalized_shape` must be a 1D array with shape `[input.dims[1]]`.");let[Ce,Me]=$(z,1,0,!0),Ie=Ce.data,Ke=Me.data,et=z.data,_e=new et.constructor(et.length);for(let Z=0;Z<R;++Z){let V=Z*ne;for(let fe=0;fe<ne;++fe){let Se=V+fe;_e[Se]=(et[Se]-Ke[Z])/(Ie[Z]+K)}}return new i(z.type,_e,z.dims)}function C(z,D){return z=z.slice(),D===null?z=z.filter(K=>K!==1):typeof D=="number"?z[D]===1&&z.splice(D,1):Array.isArray(D)&&(z=z.filter((K,R)=>K!==1||!D.includes(R))),z}function y(z,D){return D=P(D,z.length+1),z=z.slice(),z.splice(D,0,1),z}function P(z,D,K=null,R=!0){if(z<-D||z>=D){if(R)throw new Error(`IndexError: index ${z} is out of bounds for dimension${K===null?"":" "+K} with size ${D}`);return z<-D?0:D}return z<0&&(z=(z%D+D)%D),z}function I(z,D=0){D=P(D,z[0].dims.length);let K=z[0].dims.slice();K[D]=z.reduce((Me,Ie)=>Me+Ie.dims[D],0);let R=K.reduce((Me,Ie)=>Me*Ie,1),ne=new z[0].data.constructor(R),Ce=z[0].type;if(D===0){let Me=0;for(let Ie of z){let Ke=Ie.data;ne.set(Ke,Me),Me+=Ke.length}}else{let Me=0;for(let Ie=0;Ie<z.length;++Ie){let{data:Ke,dims:et}=z[Ie];for(let _e=0;_e<Ke.length;++_e){let Z=0;for(let V=et.length-1,fe=_e,Se=1;V>=0;--V){let Pe=et[V],pe=fe%Pe;V===D&&(pe+=Me),Z+=pe*Se,Se*=K[V],fe=Math.floor(fe/Pe)}ne[Z]=Ke[_e]}Me+=et[D]}}return new i(Ce,ne,K)}function g(z,D=0){return I(z.map(K=>K.unsqueeze(D)),D)}function E(z,D,K=null,R=!1,ne=null){let Ce=D.data,Me=D.dims;K=P(K,Me.length);let Ie=Me.slice();Ie[K]=1;let Ke=new Ce.constructor(Ce.length/Me[K]);ne!==null&&Ke.fill(ne);for(let et=0;et<Ce.length;++et){let _e=0;for(let Z=Me.length-1,V=et,fe=1;Z>=0;--Z){let Se=Me[Z];if(Z!==K){let Pe=V%Se;_e+=Pe*fe,fe*=Ie[Z]}V=Math.floor(V/Se)}Ke[_e]=z(Ke[_e],Ce[et],et,_e)}return R||Ie.splice(K,1),[D.type,Ke,Ie]}function $(z,D=null,K=1,R=!1){let ne=z.data,Ce=z.dims;if(D===null){let fe=ne.reduce((xe,de)=>xe+de,0)/ne.length,Se=Math.sqrt(ne.reduce((xe,de)=>xe+(de-fe)**2,0)/(ne.length-K)),Pe=new i(z.type,[fe],[]);return[new i(z.type,[Se],[]),Pe]}D=P(D,Ce.length);let Me=L(z,D,R),Ie=Me.data,[Ke,et,_e]=E((V,fe,Se,Pe)=>V+(fe-Ie[Pe])**2,z,D,R);for(let V=0;V<et.length;++V)et[V]=Math.sqrt(et[V]/(Ce[D]-K));return[new i(Ke,et,_e),Me]}function L(z,D=null,K=!1){let R=z.dims,ne=z.data;if(D===null){let Ke=ne.reduce((et,_e)=>et+_e,0);return new i(z.type,[Ke/ne.length],[])}D=P(D,R.length);let[Ce,Me,Ie]=E((Ke,et)=>Ke+et,z,D,K);if(R[D]!==1)for(let Ke=0;Ke<Me.length;++Ke)Me[Ke]/=R[D];return new i(Ce,Me,Ie)}function G(z){let D=new Array(z.length);for(let K=z.length-1,R=1;K>=0;--K)D[K]=R,R*=z[K];return D}function q(z,D,K,R){let ne=z.reduce((Ce,Me)=>Ce*Me,1);return new i(K,new R(ne).fill(D),z)}function O(z,D){let K,R;if(typeof D=="number")K="float32",R=Float32Array;else if(typeof D=="bigint")K="int64",R=BigInt64Array;else if(typeof D=="boolean")K="bool",R=Uint8Array;else throw new Error(`Unsupported data type: ${typeof D}`);return q(z,D,K,R)}function J(z,D){return O(z.dims,D)}function Q(z){return q(z,1n,"int64",BigInt64Array)}function H(z){return Q(z.dims)}function te(z){return q(z,0n,"int64",BigInt64Array)}function re(z){return te(z.dims)}function le(z){let D=z.reduce((K,R)=>K*R,1);return new i("float32",Float32Array.from({length:D},()=>Math.random()),z)}function be(z,D){if(z.dims.length!==2)throw new Error("The tensor must have 2 dimensions");if(z.dims.at(-1)%8!==0)throw new Error("The last dimension of the tensor must be a multiple of 8");if(!["binary","ubinary"].includes(D))throw new Error("The precision must be either 'binary' or 'ubinary'");let K=D==="binary",R=K?"int8":"uint8",ne=K?Int8Array:Uint8Array,Ce=z.data,Me=new ne(Ce.length/8);for(let Ie=0;Ie<Ce.length;++Ie){let Ke=Ce[Ie]>0?1:0,et=Math.floor(Ie/8),_e=Ie%8;Me[et]|=Ke<<7-_e,K&&_e===0&&(Me[et]-=128)}return new i(R,Me,[z.dims[0],z.dims[1]/8])}},"./src/utils/video.js":(e,r,t)=>{t.r(r),t.d(r,{RawVideo:()=>a,RawVideoFrame:()=>n,load_video:()=>i});var s=t("./src/utils/image.js"),o=t("./src/env.js");class n{constructor(c,p){this.image=c,this.timestamp=p}}class a{constructor(c,p){c.length>0&&c[0]instanceof s.RawImage&&(c=c.map((u,d)=>new n(u,(d+1)/(c.length+1)*p))),this.frames=c,this.duration=p}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:p=null}={}){if(!o.apis.IS_BROWSER_ENV)throw new Error("`load_video` is currently only supported in browser environments.");if(c==null&&p==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 h=d.duration,f,v;c!=null?(f=c,v=c===1?0:h/(c-1)):(v=1/p,f=Math.floor(h/v));let F=[];for(let C=0;C<f;++C)F.push(c===1?h/2:C*v);let x=document.createElement("canvas");x.width=d.videoWidth,x.height=d.videoHeight;let w=x.getContext("2d",{willReadFrequently:!0});for(let C of F){d.currentTime=C,await new Promise(g=>{d.onseeked=g}),w.drawImage(d,0,0,x.width,x.height);let y=w.getImageData(0,0,x.width,x.height),P=new s.RawImage(y.data,x.width,x.height,4),I=new n(P,C);u.push(I)}return d.remove(),new a(u,h)}}},T0={};function zt(e){var r=T0[e];if(r!==void 0)return r.exports;var t=T0[e]={exports:{}};return _E[e](t,t.exports,zt),t.exports}(()=>{var e=Object.getPrototypeOf?t=>Object.getPrototypeOf(t):t=>t.__proto__,r;zt.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);zt.r(o);var n={};r=r||[null,e({}),e([]),e(e)];for(var a=s&2&&t;typeof a=="object"&&!~r.indexOf(a);a=e(a))Object.getOwnPropertyNames(a).forEach(i=>n[i]=()=>t[i]);return n.default=()=>t,zt.d(o,n),o}})();zt.d=(e,r)=>{for(var t in r)zt.o(r,t)&&!zt.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})};zt.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);zt.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var m={};(()=>{zt.r(m),zt.d(m,{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:()=>v.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:()=>w.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:()=>f.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:()=>f.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:()=>f.CLIPFeatureExtractor,CLIPImageProcessor:()=>f.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:()=>f.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:()=>f.ConvNextFeatureExtractor,ConvNextForImageClassification:()=>t.ConvNextForImageClassification,ConvNextImageProcessor:()=>f.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,DPTFeatureExtractor:()=>f.DPTFeatureExtractor,DPTForDepthEstimation:()=>t.DPTForDepthEstimation,DPTImageProcessor:()=>f.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:()=>f.DeiTFeatureExtractor,DeiTForImageClassification:()=>t.DeiTForImageClassification,DeiTImageProcessor:()=>f.DeiTImageProcessor,DeiTModel:()=>t.DeiTModel,DeiTPreTrainedModel:()=>t.DeiTPreTrainedModel,DepthAnythingForDepthEstimation:()=>t.DepthAnythingForDepthEstimation,DepthAnythingPreTrainedModel:()=>t.DepthAnythingPreTrainedModel,DepthEstimationPipeline:()=>r.DepthEstimationPipeline,DepthProForDepthEstimation:()=>t.DepthProForDepthEstimation,DepthProPreTrainedModel:()=>t.DepthProPreTrainedModel,DetrFeatureExtractor:()=>f.DetrFeatureExtractor,DetrForObjectDetection:()=>t.DetrForObjectDetection,DetrForSegmentation:()=>t.DetrForSegmentation,DetrImageProcessor:()=>f.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:()=>f.DonutFeatureExtractor,DonutImageProcessor:()=>f.DonutImageProcessor,DonutSwinModel:()=>t.DonutSwinModel,DonutSwinPreTrainedModel:()=>t.DonutSwinPreTrainedModel,EfficientNetForImageClassification:()=>t.EfficientNetForImageClassification,EfficientNetImageProcessor:()=>f.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_5_ForCausalLM:()=>t.Ernie4_5_ForCausalLM,Ernie4_5_Model:()=>t.Ernie4_5_Model,Ernie4_5_PretrainedModel:()=>t.Ernie4_5_PretrainedModel,Ernie4_5_Tokenizer:()=>s.Ernie4_5_Tokenizer,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:()=>p.FeatureExtractor,FillMaskPipeline:()=>r.FillMaskPipeline,Florence2ForConditionalGeneration:()=>t.Florence2ForConditionalGeneration,Florence2PreTrainedModel:()=>t.Florence2PreTrainedModel,Florence2Processor:()=>x.Florence2Processor,ForcedBOSTokenLogitsProcessor:()=>P.ForcedBOSTokenLogitsProcessor,ForcedEOSTokenLogitsProcessor:()=>P.ForcedEOSTokenLogitsProcessor,GLPNFeatureExtractor:()=>f.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:()=>x.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,GranitePreTrainedModel:()=>t.GranitePreTrainedModel,Grok1Tokenizer:()=>s.Grok1Tokenizer,GroundingDinoForObjectDetection:()=>t.GroundingDinoForObjectDetection,GroundingDinoImageProcessor:()=>f.GroundingDinoImageProcessor,GroundingDinoPreTrainedModel:()=>t.GroundingDinoPreTrainedModel,GroundingDinoProcessor:()=>x.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:()=>f.Idefics3ImageProcessor,Idefics3PreTrainedModel:()=>t.Idefics3PreTrainedModel,Idefics3Processor:()=>x.Idefics3Processor,ImageClassificationPipeline:()=>r.ImageClassificationPipeline,ImageFeatureExtractionPipeline:()=>r.ImageFeatureExtractionPipeline,ImageFeatureExtractor:()=>u.ImageFeatureExtractor,ImageMattingOutput:()=>t.ImageMattingOutput,ImageProcessor:()=>h.ImageProcessor,ImageSegmentationPipeline:()=>r.ImageSegmentationPipeline,ImageToImagePipeline:()=>r.ImageToImagePipeline,ImageToTextPipeline:()=>r.ImageToTextPipeline,InterruptableStoppingCriteria:()=>y.InterruptableStoppingCriteria,JAISLMHeadModel:()=>t.JAISLMHeadModel,JAISModel:()=>t.JAISModel,JAISPreTrainedModel:()=>t.JAISPreTrainedModel,JinaCLIPImageProcessor:()=>f.JinaCLIPImageProcessor,JinaCLIPModel:()=>t.JinaCLIPModel,JinaCLIPPreTrainedModel:()=>t.JinaCLIPPreTrainedModel,JinaCLIPProcessor:()=>x.JinaCLIPProcessor,JinaCLIPTextModel:()=>t.JinaCLIPTextModel,JinaCLIPVisionModel:()=>t.JinaCLIPVisionModel,Lfm2ForCausalLM:()=>t.Lfm2ForCausalLM,Lfm2Model:()=>t.Lfm2Model,Lfm2PreTrainedModel:()=>t.Lfm2PreTrainedModel,LiteWhisperForConditionalGeneration:()=>t.LiteWhisperForConditionalGeneration,LlamaForCausalLM:()=>t.LlamaForCausalLM,LlamaModel:()=>t.LlamaModel,LlamaPreTrainedModel:()=>t.LlamaPreTrainedModel,LlamaTokenizer:()=>s.LlamaTokenizer,LlavaForConditionalGeneration:()=>t.LlavaForConditionalGeneration,LlavaOnevisionForConditionalGeneration:()=>t.LlavaOnevisionForConditionalGeneration,LlavaOnevisionImageProcessor:()=>f.LlavaOnevisionImageProcessor,LlavaPreTrainedModel:()=>t.LlavaPreTrainedModel,LlavaProcessor:()=>x.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:()=>f.Mask2FormerImageProcessor,MaskFormerFeatureExtractor:()=>f.MaskFormerFeatureExtractor,MaskFormerForInstanceSegmentation:()=>t.MaskFormerForInstanceSegmentation,MaskFormerImageProcessor:()=>f.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:()=>x.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,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:()=>f.MobileNetV1FeatureExtractor,MobileNetV1ForImageClassification:()=>t.MobileNetV1ForImageClassification,MobileNetV1ForSemanticSegmentation:()=>t.MobileNetV1ForSemanticSegmentation,MobileNetV1ImageProcessor:()=>f.MobileNetV1ImageProcessor,MobileNetV1Model:()=>t.MobileNetV1Model,MobileNetV1PreTrainedModel:()=>t.MobileNetV1PreTrainedModel,MobileNetV2FeatureExtractor:()=>f.MobileNetV2FeatureExtractor,MobileNetV2ForImageClassification:()=>t.MobileNetV2ForImageClassification,MobileNetV2ForSemanticSegmentation:()=>t.MobileNetV2ForSemanticSegmentation,MobileNetV2ImageProcessor:()=>f.MobileNetV2ImageProcessor,MobileNetV2Model:()=>t.MobileNetV2Model,MobileNetV2PreTrainedModel:()=>t.MobileNetV2PreTrainedModel,MobileNetV3FeatureExtractor:()=>f.MobileNetV3FeatureExtractor,MobileNetV3ForImageClassification:()=>t.MobileNetV3ForImageClassification,MobileNetV3ForSemanticSegmentation:()=>t.MobileNetV3ForSemanticSegmentation,MobileNetV3ImageProcessor:()=>f.MobileNetV3ImageProcessor,MobileNetV3Model:()=>t.MobileNetV3Model,MobileNetV3PreTrainedModel:()=>t.MobileNetV3PreTrainedModel,MobileNetV4FeatureExtractor:()=>f.MobileNetV4FeatureExtractor,MobileNetV4ForImageClassification:()=>t.MobileNetV4ForImageClassification,MobileNetV4ForSemanticSegmentation:()=>t.MobileNetV4ForSemanticSegmentation,MobileNetV4ImageProcessor:()=>f.MobileNetV4ImageProcessor,MobileNetV4Model:()=>t.MobileNetV4Model,MobileNetV4PreTrainedModel:()=>t.MobileNetV4PreTrainedModel,MobileViTFeatureExtractor:()=>f.MobileViTFeatureExtractor,MobileViTForImageClassification:()=>t.MobileViTForImageClassification,MobileViTImageProcessor:()=>f.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:()=>x.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,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:()=>f.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:()=>f.OwlViTFeatureExtractor,OwlViTForObjectDetection:()=>t.OwlViTForObjectDetection,OwlViTImageProcessor:()=>f.OwlViTImageProcessor,OwlViTModel:()=>t.OwlViTModel,OwlViTPreTrainedModel:()=>t.OwlViTPreTrainedModel,OwlViTProcessor:()=>x.OwlViTProcessor,Owlv2ForObjectDetection:()=>t.Owlv2ForObjectDetection,Owlv2ImageProcessor:()=>f.Owlv2ImageProcessor,Owlv2Model:()=>t.Owlv2Model,Owlv2PreTrainedModel:()=>t.Owlv2PreTrainedModel,PaliGemmaForConditionalGeneration:()=>t.PaliGemmaForConditionalGeneration,PaliGemmaPreTrainedModel:()=>t.PaliGemmaPreTrainedModel,PaliGemmaProcessor:()=>x.PaliGemmaProcessor,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:()=>f.Phi3VImageProcessor,Phi3VPreTrainedModel:()=>t.Phi3VPreTrainedModel,Phi3VProcessor:()=>x.Phi3VProcessor,PhiForCausalLM:()=>t.PhiForCausalLM,PhiModel:()=>t.PhiModel,PhiPreTrainedModel:()=>t.PhiPreTrainedModel,Pipeline:()=>r.Pipeline,PreTrainedModel:()=>t.PreTrainedModel,PreTrainedTokenizer:()=>s.PreTrainedTokenizer,PretrainedConfig:()=>o.PretrainedConfig,PretrainedMixin:()=>t.PretrainedMixin,Processor:()=>F.Processor,PvtForImageClassification:()=>t.PvtForImageClassification,PvtImageProcessor:()=>f.PvtImageProcessor,PvtModel:()=>t.PvtModel,PvtPreTrainedModel:()=>t.PvtPreTrainedModel,PyAnnoteFeatureExtractor:()=>u.PyAnnoteFeatureExtractor,PyAnnoteForAudioFrameClassification:()=>t.PyAnnoteForAudioFrameClassification,PyAnnoteModel:()=>t.PyAnnoteModel,PyAnnotePreTrainedModel:()=>t.PyAnnotePreTrainedModel,PyAnnoteProcessor:()=>x.PyAnnoteProcessor,QuestionAnsweringModelOutput:()=>t.QuestionAnsweringModelOutput,QuestionAnsweringPipeline:()=>r.QuestionAnsweringPipeline,Qwen2ForCausalLM:()=>t.Qwen2ForCausalLM,Qwen2Model:()=>t.Qwen2Model,Qwen2PreTrainedModel:()=>t.Qwen2PreTrainedModel,Qwen2Tokenizer:()=>s.Qwen2Tokenizer,Qwen2VLForConditionalGeneration:()=>t.Qwen2VLForConditionalGeneration,Qwen2VLImageProcessor:()=>f.Qwen2VLImageProcessor,Qwen2VLPreTrainedModel:()=>t.Qwen2VLPreTrainedModel,Qwen2VLProcessor:()=>x.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:()=>f.RTDetrImageProcessor,RTDetrModel:()=>t.RTDetrModel,RTDetrObjectDetectionOutput:()=>t.RTDetrObjectDetectionOutput,RTDetrPreTrainedModel:()=>t.RTDetrPreTrainedModel,RTDetrV2ForObjectDetection:()=>t.RTDetrV2ForObjectDetection,RTDetrV2Model:()=>t.RTDetrV2Model,RTDetrV2ObjectDetectionOutput:()=>t.RTDetrV2ObjectDetectionOutput,RTDetrV2PreTrainedModel:()=>t.RTDetrV2PreTrainedModel,RawAudio:()=>n.RawAudio,RawImage:()=>a.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,SamImageProcessor:()=>f.SamImageProcessor,SamImageSegmentationOutput:()=>t.SamImageSegmentationOutput,SamModel:()=>t.SamModel,SamPreTrainedModel:()=>t.SamPreTrainedModel,SamProcessor:()=>x.SamProcessor,SapiensForDepthEstimation:()=>t.SapiensForDepthEstimation,SapiensForNormalEstimation:()=>t.SapiensForNormalEstimation,SapiensForSemanticSegmentation:()=>t.SapiensForSemanticSegmentation,SapiensPreTrainedModel:()=>t.SapiensPreTrainedModel,SeamlessM4TFeatureExtractor:()=>u.SeamlessM4TFeatureExtractor,SegformerFeatureExtractor:()=>f.SegformerFeatureExtractor,SegformerForImageClassification:()=>t.SegformerForImageClassification,SegformerForSemanticSegmentation:()=>t.SegformerForSemanticSegmentation,SegformerImageProcessor:()=>f.SegformerImageProcessor,SegformerModel:()=>t.SegformerModel,SegformerPreTrainedModel:()=>t.SegformerPreTrainedModel,Seq2SeqLMOutput:()=>t.Seq2SeqLMOutput,SequenceClassifierOutput:()=>t.SequenceClassifierOutput,SiglipImageProcessor:()=>f.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:()=>f.SmolVLMImageProcessor,SmolVLMProcessor:()=>x.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:()=>x.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,SuppressTokensAtBeginLogitsProcessor:()=>P.SuppressTokensAtBeginLogitsProcessor,Swin2SRForImageSuperResolution:()=>t.Swin2SRForImageSuperResolution,Swin2SRImageProcessor:()=>f.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:()=>x.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:()=>x.VLChatProcessor,VLMImageProcessor:()=>f.VLMImageProcessor,ViTFeatureExtractor:()=>f.ViTFeatureExtractor,ViTForImageClassification:()=>t.ViTForImageClassification,ViTImageProcessor:()=>f.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:()=>f.VitMatteImageProcessor,VitMattePreTrainedModel:()=>t.VitMattePreTrainedModel,VitPoseForPoseEstimation:()=>t.VitPoseForPoseEstimation,VitPoseImageProcessor:()=>f.VitPoseImageProcessor,VitPosePreTrainedModel:()=>t.VitPosePreTrainedModel,VitsModel:()=>t.VitsModel,VitsModelOutput:()=>t.VitsModelOutput,VitsPreTrainedModel:()=>t.VitsPreTrainedModel,VitsTokenizer:()=>s.VitsTokenizer,VoxtralForConditionalGeneration:()=>t.VoxtralForConditionalGeneration,VoxtralProcessor:()=>x.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:()=>x.Wav2Vec2Processor,Wav2Vec2ProcessorWithLM:()=>x.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:()=>x.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:()=>f.YolosFeatureExtractor,YolosForObjectDetection:()=>t.YolosForObjectDetection,YolosImageProcessor:()=>f.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:()=>n.hamming,hanning:()=>n.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:()=>a.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:()=>n.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,read_audio:()=>n.read_audio,rfft:()=>l.rfft,round:()=>c.round,slice:()=>l.slice,softmax:()=>c.softmax,spectrogram:()=>n.spectrogram,stack:()=>l.stack,std_mean:()=>l.std_mean,topk:()=>l.topk,window_function:()=>n.window_function,zeros:()=>l.zeros,zeros_like:()=>l.zeros_like});var e=zt("./src/env.js"),r=zt("./src/pipelines.js"),t=zt("./src/models.js"),s=zt("./src/tokenizers.js"),o=zt("./src/configs.js"),n=zt("./src/utils/audio.js"),a=zt("./src/utils/image.js"),i=zt("./src/utils/video.js"),l=zt("./src/utils/tensor.js"),c=zt("./src/utils/maths.js"),p=zt("./src/base/feature_extraction_utils.js"),u=zt("./src/models/feature_extractors.js"),d=zt("./src/models/auto/feature_extraction_auto.js"),h=zt("./src/base/image_processors_utils.js"),f=zt("./src/models/image_processors.js"),v=zt("./src/models/auto/image_processing_auto.js"),F=zt("./src/base/processing_utils.js"),x=zt("./src/models/processors.js"),w=zt("./src/models/auto/processing_auto.js"),C=zt("./src/generation/streamers.js"),y=zt("./src/generation/stopping_criteria.js"),P=zt("./src/generation/logits_process.js")})();var V$=m.ASTFeatureExtractor,W$=m.ASTForAudioClassification,U$=m.ASTModel,G$=m.ASTPreTrainedModel,K$=m.AlbertForMaskedLM,q$=m.AlbertForQuestionAnswering,H$=m.AlbertForSequenceClassification,Q$=m.AlbertModel,X$=m.AlbertPreTrainedModel,J$=m.AlbertTokenizer,Y$=m.ArceeForCausalLM,Z$=m.ArceeModel,eD=m.ArceePreTrainedModel,tD=m.AudioClassificationPipeline,rD=m.AutoConfig,sD=m.AutoFeatureExtractor,oD=m.AutoImageProcessor,nD=m.AutoModel,aD=m.AutoModelForAudioClassification,iD=m.AutoModelForAudioFrameClassification,lD=m.AutoModelForAudioTextToText,cD=m.AutoModelForCTC,dD=m.AutoModelForCausalLM,uD=m.AutoModelForDepthEstimation,pD=m.AutoModelForDocumentQuestionAnswering,_D=m.AutoModelForImageClassification,mD=m.AutoModelForImageFeatureExtraction,fD=m.AutoModelForImageMatting,hD=m.AutoModelForImageSegmentation,gD=m.AutoModelForImageTextToText,wD=m.AutoModelForImageToImage,bD=m.AutoModelForMaskGeneration,MD=m.AutoModelForMaskedLM,xD=m.AutoModelForNormalEstimation,vD=m.AutoModelForObjectDetection,yD=m.AutoModelForPoseEstimation,TD=m.AutoModelForQuestionAnswering,PD=m.AutoModelForSemanticSegmentation,ED=m.AutoModelForSeq2SeqLM,kD=m.AutoModelForSequenceClassification,CD=m.AutoModelForSpeechSeq2Seq,SD=m.AutoModelForTextToSpectrogram,FD=m.AutoModelForTextToWaveform,ID=m.AutoModelForTokenClassification,AD=m.AutoModelForUniversalSegmentation,$D=m.AutoModelForVision2Seq,DD=m.AutoModelForXVector,OD=m.AutoModelForZeroShotObjectDetection,LD=m.AutoProcessor,BD=m.AutoTokenizer,zD=m.AutomaticSpeechRecognitionPipeline,RD=m.BackgroundRemovalPipeline,jD=m.BartForConditionalGeneration,ND=m.BartForSequenceClassification,VD=m.BartModel,WD=m.BartPretrainedModel,UD=m.BartTokenizer,GD=m.BaseModelOutput,KD=m.BaseStreamer,qD=m.BeitFeatureExtractor,HD=m.BeitForImageClassification,QD=m.BeitModel,XD=m.BeitPreTrainedModel,JD=m.BertForMaskedLM,YD=m.BertForQuestionAnswering,ZD=m.BertForSequenceClassification,eO=m.BertForTokenClassification,tO=m.BertModel,rO=m.BertPreTrainedModel,sO=m.BertTokenizer,oO=m.BitImageProcessor,nO=m.BlenderbotForConditionalGeneration,aO=m.BlenderbotModel,iO=m.BlenderbotPreTrainedModel,lO=m.BlenderbotSmallForConditionalGeneration,cO=m.BlenderbotSmallModel,dO=m.BlenderbotSmallPreTrainedModel,uO=m.BlenderbotSmallTokenizer,pO=m.BlenderbotTokenizer,_O=m.BloomForCausalLM,mO=m.BloomModel,fO=m.BloomPreTrainedModel,hO=m.BloomTokenizer,gO=m.CLIPFeatureExtractor,wO=m.CLIPImageProcessor,bO=m.CLIPModel,MO=m.CLIPPreTrainedModel,xO=m.CLIPSegForImageSegmentation,vO=m.CLIPSegModel,yO=m.CLIPSegPreTrainedModel,TO=m.CLIPTextModel,PO=m.CLIPTextModelWithProjection,EO=m.CLIPTokenizer,kO=m.CLIPVisionModel,CO=m.CLIPVisionModelWithProjection,SO=m.CamembertForMaskedLM,FO=m.CamembertForQuestionAnswering,IO=m.CamembertForSequenceClassification,AO=m.CamembertForTokenClassification,$O=m.CamembertModel,DO=m.CamembertPreTrainedModel,OO=m.CamembertTokenizer,LO=m.CausalLMOutput,BO=m.CausalLMOutputWithPast,zO=m.ChineseCLIPFeatureExtractor,RO=m.ChineseCLIPModel,jO=m.ChineseCLIPPreTrainedModel,NO=m.ClapAudioModelWithProjection,VO=m.ClapFeatureExtractor,WO=m.ClapModel,UO=m.ClapPreTrainedModel,GO=m.ClapTextModelWithProjection,KO=m.ClassifierFreeGuidanceLogitsProcessor,qO=m.CodeGenForCausalLM,HO=m.CodeGenModel,QO=m.CodeGenPreTrainedModel,XO=m.CodeGenTokenizer,JO=m.CodeLlamaTokenizer,YO=m.CohereForCausalLM,ZO=m.CohereModel,eL=m.CoherePreTrainedModel,tL=m.CohereTokenizer,rL=m.ConvBertForMaskedLM,sL=m.ConvBertForQuestionAnswering,oL=m.ConvBertForSequenceClassification,nL=m.ConvBertForTokenClassification,aL=m.ConvBertModel,iL=m.ConvBertPreTrainedModel,lL=m.ConvBertTokenizer,cL=m.ConvNextFeatureExtractor,dL=m.ConvNextForImageClassification,uL=m.ConvNextImageProcessor,pL=m.ConvNextModel,_L=m.ConvNextPreTrainedModel,mL=m.ConvNextV2ForImageClassification,fL=m.ConvNextV2Model,hL=m.ConvNextV2PreTrainedModel,gL=m.DFineForObjectDetection,wL=m.DFineModel,bL=m.DFinePreTrainedModel,ML=m.DPTFeatureExtractor,xL=m.DPTForDepthEstimation,vL=m.DPTImageProcessor,yL=m.DPTModel,TL=m.DPTPreTrainedModel,PL=m.DacDecoderModel,EL=m.DacDecoderOutput,kL=m.DacEncoderModel,CL=m.DacEncoderOutput,SL=m.DacFeatureExtractor,FL=m.DacModel,IL=m.DacPreTrainedModel,AL=m.DataTypeMap,$L=m.DebertaForMaskedLM,DL=m.DebertaForQuestionAnswering,OL=m.DebertaForSequenceClassification,LL=m.DebertaForTokenClassification,BL=m.DebertaModel,zL=m.DebertaPreTrainedModel,RL=m.DebertaTokenizer,jL=m.DebertaV2ForMaskedLM,NL=m.DebertaV2ForQuestionAnswering,VL=m.DebertaV2ForSequenceClassification,WL=m.DebertaV2ForTokenClassification,UL=m.DebertaV2Model,GL=m.DebertaV2PreTrainedModel,KL=m.DebertaV2Tokenizer,qL=m.DecisionTransformerModel,HL=m.DecisionTransformerPreTrainedModel,QL=m.DeiTFeatureExtractor,XL=m.DeiTForImageClassification,JL=m.DeiTImageProcessor,YL=m.DeiTModel,ZL=m.DeiTPreTrainedModel,eB=m.DepthAnythingForDepthEstimation,tB=m.DepthAnythingPreTrainedModel,rB=m.DepthEstimationPipeline,sB=m.DepthProForDepthEstimation,oB=m.DepthProPreTrainedModel,nB=m.DetrFeatureExtractor,aB=m.DetrForObjectDetection,iB=m.DetrForSegmentation,lB=m.DetrImageProcessor,cB=m.DetrModel,dB=m.DetrObjectDetectionOutput,uB=m.DetrPreTrainedModel,pB=m.DetrSegmentationOutput,_B=m.Dinov2ForImageClassification,mB=m.Dinov2Model,fB=m.Dinov2PreTrainedModel,hB=m.Dinov2WithRegistersForImageClassification,gB=m.Dinov2WithRegistersModel,wB=m.Dinov2WithRegistersPreTrainedModel,bB=m.DistilBertForMaskedLM,MB=m.DistilBertForQuestionAnswering,xB=m.DistilBertForSequenceClassification,vB=m.DistilBertForTokenClassification,yB=m.DistilBertModel,TB=m.DistilBertPreTrainedModel,PB=m.DistilBertTokenizer,EB=m.DocumentQuestionAnsweringPipeline,kB=m.DonutFeatureExtractor,CB=m.DonutImageProcessor,SB=m.DonutSwinModel,FB=m.DonutSwinPreTrainedModel,IB=m.EfficientNetForImageClassification,AB=m.EfficientNetImageProcessor,$B=m.EfficientNetModel,DB=m.EfficientNetPreTrainedModel,OB=m.ElectraForMaskedLM,LB=m.ElectraForQuestionAnswering,BB=m.ElectraForSequenceClassification,zB=m.ElectraForTokenClassification,RB=m.ElectraModel,jB=m.ElectraPreTrainedModel,NB=m.ElectraTokenizer,VB=m.EncodecFeatureExtractor,WB=m.EosTokenCriteria,UB=m.Ernie4_5_ForCausalLM,GB=m.Ernie4_5_Model,KB=m.Ernie4_5_PretrainedModel,qB=m.Ernie4_5_Tokenizer,HB=m.EsmForMaskedLM,QB=m.EsmForSequenceClassification,XB=m.EsmForTokenClassification,JB=m.EsmModel,YB=m.EsmPreTrainedModel,ZB=m.EsmTokenizer,e3=m.ExaoneForCausalLM,t3=m.ExaoneModel,r3=m.ExaonePreTrainedModel,s3=m.FFT,o3=m.FalconForCausalLM,n3=m.FalconModel,a3=m.FalconPreTrainedModel,i3=m.FalconTokenizer,l3=m.FastViTForImageClassification,c3=m.FastViTModel,d3=m.FastViTPreTrainedModel,u3=m.FeatureExtractionPipeline,p3=m.FeatureExtractor,_3=m.FillMaskPipeline,m3=m.Florence2ForConditionalGeneration,f3=m.Florence2PreTrainedModel,h3=m.Florence2Processor,g3=m.ForcedBOSTokenLogitsProcessor,w3=m.ForcedEOSTokenLogitsProcessor,b3=m.GLPNFeatureExtractor,M3=m.GLPNForDepthEstimation,x3=m.GLPNModel,v3=m.GLPNPreTrainedModel,y3=m.GPT2LMHeadModel,T3=m.GPT2Model,P3=m.GPT2PreTrainedModel,E3=m.GPT2Tokenizer,k3=m.GPTBigCodeForCausalLM,C3=m.GPTBigCodeModel,S3=m.GPTBigCodePreTrainedModel,F3=m.GPTJForCausalLM,I3=m.GPTJModel,A3=m.GPTJPreTrainedModel,$3=m.GPTNeoForCausalLM,D3=m.GPTNeoModel,O3=m.GPTNeoPreTrainedModel,L3=m.GPTNeoXForCausalLM,B3=m.GPTNeoXModel,z3=m.GPTNeoXPreTrainedModel,R3=m.GPTNeoXTokenizer,j3=m.Gemma2ForCausalLM,N3=m.Gemma2Model,V3=m.Gemma2PreTrainedModel,W3=m.Gemma3ForCausalLM,U3=m.Gemma3Model,G3=m.Gemma3PreTrainedModel,K3=m.Gemma3nAudioFeatureExtractor,q3=m.Gemma3nForConditionalGeneration,H3=m.Gemma3nPreTrainedModel,Q3=m.Gemma3nProcessor,X3=m.GemmaForCausalLM,J3=m.GemmaModel,Y3=m.GemmaPreTrainedModel,Z3=m.GemmaTokenizer,ez=m.GlmForCausalLM,tz=m.GlmModel,rz=m.GlmPreTrainedModel,sz=m.GraniteForCausalLM,oz=m.GraniteModel,nz=m.GranitePreTrainedModel,az=m.Grok1Tokenizer,iz=m.GroundingDinoForObjectDetection,lz=m.GroundingDinoImageProcessor,cz=m.GroundingDinoPreTrainedModel,dz=m.GroundingDinoProcessor,uz=m.GroupViTModel,pz=m.GroupViTPreTrainedModel,_z=m.HeliumForCausalLM,mz=m.HeliumModel,fz=m.HeliumPreTrainedModel,hz=m.HerbertTokenizer,gz=m.HieraForImageClassification,wz=m.HieraModel,bz=m.HieraPreTrainedModel,Mz=m.HubertForCTC,xz=m.HubertForSequenceClassification,vz=m.HubertModel,yz=m.HubertPreTrainedModel,Tz=m.IJepaForImageClassification,Pz=m.IJepaModel,Ez=m.IJepaPreTrainedModel,kz=m.Idefics3ForConditionalGeneration,Cz=m.Idefics3ImageProcessor,Sz=m.Idefics3PreTrainedModel,Fz=m.Idefics3Processor,Iz=m.ImageClassificationPipeline,Az=m.ImageFeatureExtractionPipeline,$z=m.ImageFeatureExtractor,Dz=m.ImageMattingOutput,Oz=m.ImageProcessor,Lz=m.ImageSegmentationPipeline,Bz=m.ImageToImagePipeline,zz=m.ImageToTextPipeline,Rz=m.InterruptableStoppingCriteria,jz=m.JAISLMHeadModel,Nz=m.JAISModel,Vz=m.JAISPreTrainedModel,Wz=m.JinaCLIPImageProcessor,Uz=m.JinaCLIPModel,Gz=m.JinaCLIPPreTrainedModel,Kz=m.JinaCLIPProcessor,qz=m.JinaCLIPTextModel,Hz=m.JinaCLIPVisionModel,Qz=m.Lfm2ForCausalLM,Xz=m.Lfm2Model,Jz=m.Lfm2PreTrainedModel,Yz=m.LiteWhisperForConditionalGeneration,Zz=m.LlamaForCausalLM,eR=m.LlamaModel,tR=m.LlamaPreTrainedModel,rR=m.LlamaTokenizer,sR=m.LlavaForConditionalGeneration,oR=m.LlavaOnevisionForConditionalGeneration,nR=m.LlavaOnevisionImageProcessor,aR=m.LlavaPreTrainedModel,iR=m.LlavaProcessor,lR=m.LlavaQwen2ForCausalLM,cR=m.LogitsProcessor,dR=m.LogitsProcessorList,uR=m.LogitsWarper,pR=m.LongT5ForConditionalGeneration,_R=m.LongT5Model,mR=m.LongT5PreTrainedModel,fR=m.M2M100ForConditionalGeneration,hR=m.M2M100Model,gR=m.M2M100PreTrainedModel,wR=m.M2M100Tokenizer,bR=m.MBart50Tokenizer,MR=m.MBartForCausalLM,xR=m.MBartForConditionalGeneration,vR=m.MBartForSequenceClassification,yR=m.MBartModel,TR=m.MBartPreTrainedModel,PR=m.MBartTokenizer,ER=m.MPNetForMaskedLM,kR=m.MPNetForQuestionAnswering,CR=m.MPNetForSequenceClassification,SR=m.MPNetForTokenClassification,FR=m.MPNetModel,IR=m.MPNetPreTrainedModel,AR=m.MPNetTokenizer,$R=m.MT5ForConditionalGeneration,DR=m.MT5Model,OR=m.MT5PreTrainedModel,LR=m.MarianMTModel,BR=m.MarianModel,zR=m.MarianPreTrainedModel,RR=m.MarianTokenizer,jR=m.Mask2FormerImageProcessor,NR=m.MaskFormerFeatureExtractor,VR=m.MaskFormerForInstanceSegmentation,WR=m.MaskFormerImageProcessor,UR=m.MaskFormerModel,GR=m.MaskFormerPreTrainedModel,KR=m.MaskedLMOutput,qR=m.MaxLengthCriteria,HR=m.Metric3DForDepthEstimation,QR=m.Metric3DPreTrainedModel,XR=m.Metric3Dv2ForDepthEstimation,JR=m.Metric3Dv2PreTrainedModel,YR=m.MgpstrForSceneTextRecognition,ZR=m.MgpstrModelOutput,ej=m.MgpstrPreTrainedModel,tj=m.MgpstrProcessor,rj=m.MgpstrTokenizer,sj=m.MimiDecoderModel,oj=m.MimiDecoderOutput,nj=m.MimiEncoderModel,aj=m.MimiEncoderOutput,ij=m.MimiModel,lj=m.MimiPreTrainedModel,cj=m.MinLengthLogitsProcessor,dj=m.MinNewTokensLengthLogitsProcessor,uj=m.MistralForCausalLM,pj=m.MistralModel,_j=m.MistralPreTrainedModel,mj=m.MobileBertForMaskedLM,fj=m.MobileBertForQuestionAnswering,hj=m.MobileBertForSequenceClassification,gj=m.MobileBertModel,wj=m.MobileBertPreTrainedModel,bj=m.MobileBertTokenizer,Mj=m.MobileLLMForCausalLM,xj=m.MobileLLMModel,vj=m.MobileLLMPreTrainedModel,yj=m.MobileNetV1FeatureExtractor,Tj=m.MobileNetV1ForImageClassification,Pj=m.MobileNetV1ForSemanticSegmentation,Ej=m.MobileNetV1ImageProcessor,kj=m.MobileNetV1Model,Cj=m.MobileNetV1PreTrainedModel,Sj=m.MobileNetV2FeatureExtractor,Fj=m.MobileNetV2ForImageClassification,Ij=m.MobileNetV2ForSemanticSegmentation,Aj=m.MobileNetV2ImageProcessor,$j=m.MobileNetV2Model,Dj=m.MobileNetV2PreTrainedModel,Oj=m.MobileNetV3FeatureExtractor,Lj=m.MobileNetV3ForImageClassification,Bj=m.MobileNetV3ForSemanticSegmentation,zj=m.MobileNetV3ImageProcessor,Rj=m.MobileNetV3Model,jj=m.MobileNetV3PreTrainedModel,Nj=m.MobileNetV4FeatureExtractor,Vj=m.MobileNetV4ForImageClassification,Wj=m.MobileNetV4ForSemanticSegmentation,Uj=m.MobileNetV4ImageProcessor,Gj=m.MobileNetV4Model,Kj=m.MobileNetV4PreTrainedModel,qj=m.MobileViTFeatureExtractor,Hj=m.MobileViTForImageClassification,Qj=m.MobileViTImageProcessor,Xj=m.MobileViTModel,Jj=m.MobileViTPreTrainedModel,Yj=m.MobileViTV2ForImageClassification,Zj=m.MobileViTV2Model,eN=m.MobileViTV2PreTrainedModel,tN=m.ModelOutput,rN=m.ModernBertDecoderForCausalLM,sN=m.ModernBertDecoderModel,oN=m.ModernBertDecoderPreTrainedModel,nN=m.ModernBertForMaskedLM,aN=m.ModernBertForSequenceClassification,iN=m.ModernBertForTokenClassification,lN=m.ModernBertModel,cN=m.ModernBertPreTrainedModel,dN=m.Moondream1ForConditionalGeneration,uN=m.MoonshineFeatureExtractor,pN=m.MoonshineForConditionalGeneration,_N=m.MoonshineModel,mN=m.MoonshinePreTrainedModel,fN=m.MoonshineProcessor,hN=m.MptForCausalLM,gN=m.MptModel,wN=m.MptPreTrainedModel,bN=m.MultiModalityCausalLM,MN=m.MultiModalityPreTrainedModel,xN=m.MusicgenForCausalLM,vN=m.MusicgenForConditionalGeneration,yN=m.MusicgenModel,TN=m.MusicgenPreTrainedModel,PN=m.NeoBertForMaskedLM,EN=m.NeoBertForQuestionAnswering,kN=m.NeoBertForSequenceClassification,CN=m.NeoBertForTokenClassification,SN=m.NeoBertModel,FN=m.NeoBertPreTrainedModel,IN=m.NllbTokenizer,AN=m.NoBadWordsLogitsProcessor,$N=m.NoRepeatNGramLogitsProcessor,DN=m.NomicBertModel,ON=m.NomicBertPreTrainedModel,LN=m.NougatImageProcessor,BN=m.NougatTokenizer,zN=m.OPTForCausalLM,RN=m.OPTModel,jN=m.OPTPreTrainedModel,NN=m.ObjectDetectionPipeline,VN=m.Olmo2ForCausalLM,WN=m.Olmo2Model,UN=m.Olmo2PreTrainedModel,GN=m.OlmoForCausalLM,KN=m.OlmoModel,qN=m.OlmoPreTrainedModel,HN=m.OpenELMForCausalLM,QN=m.OpenELMModel,XN=m.OpenELMPreTrainedModel,JN=m.OwlViTFeatureExtractor,YN=m.OwlViTForObjectDetection,ZN=m.OwlViTImageProcessor,eV=m.OwlViTModel,tV=m.OwlViTPreTrainedModel,rV=m.OwlViTProcessor,sV=m.Owlv2ForObjectDetection,oV=m.Owlv2ImageProcessor,nV=m.Owlv2Model,aV=m.Owlv2PreTrainedModel,iV=m.PaliGemmaForConditionalGeneration,lV=m.PaliGemmaPreTrainedModel,cV=m.PaliGemmaProcessor,dV=m.PatchTSMixerForPrediction,uV=m.PatchTSMixerModel,pV=m.PatchTSMixerPreTrainedModel,_V=m.PatchTSTForPrediction,mV=m.PatchTSTModel,fV=m.PatchTSTPreTrainedModel,hV=m.Phi3ForCausalLM,gV=m.Phi3Model,wV=m.Phi3PreTrainedModel,bV=m.Phi3VForCausalLM,MV=m.Phi3VImageProcessor,xV=m.Phi3VPreTrainedModel,vV=m.Phi3VProcessor,yV=m.PhiForCausalLM,TV=m.PhiModel,PV=m.PhiPreTrainedModel,EV=m.Pipeline,kV=m.PreTrainedModel,CV=m.PreTrainedTokenizer,SV=m.PretrainedConfig,FV=m.PretrainedMixin,IV=m.Processor,AV=m.PvtForImageClassification,$V=m.PvtImageProcessor,DV=m.PvtModel,OV=m.PvtPreTrainedModel,LV=m.PyAnnoteFeatureExtractor,BV=m.PyAnnoteForAudioFrameClassification,zV=m.PyAnnoteModel,RV=m.PyAnnotePreTrainedModel,jV=m.PyAnnoteProcessor,NV=m.QuestionAnsweringModelOutput,VV=m.QuestionAnsweringPipeline,WV=m.Qwen2ForCausalLM,UV=m.Qwen2Model,GV=m.Qwen2PreTrainedModel,KV=m.Qwen2Tokenizer,qV=m.Qwen2VLForConditionalGeneration,HV=m.Qwen2VLImageProcessor,QV=m.Qwen2VLPreTrainedModel,XV=m.Qwen2VLProcessor,JV=m.Qwen3ForCausalLM,YV=m.Qwen3Model,ZV=m.Qwen3PreTrainedModel,e4=m.RFDetrForObjectDetection,t4=m.RFDetrModel,r4=m.RFDetrObjectDetectionOutput,s4=m.RFDetrPreTrainedModel,o4=m.RTDetrForObjectDetection,n4=m.RTDetrImageProcessor,a4=m.RTDetrModel,i4=m.RTDetrObjectDetectionOutput,l4=m.RTDetrPreTrainedModel,c4=m.RTDetrV2ForObjectDetection,d4=m.RTDetrV2Model,u4=m.RTDetrV2ObjectDetectionOutput,p4=m.RTDetrV2PreTrainedModel,_4=m.RawAudio,m4=m.RawImage,f4=m.RawVideo,h4=m.RawVideoFrame,g4=m.RepetitionPenaltyLogitsProcessor,w4=m.ResNetForImageClassification,b4=m.ResNetModel,M4=m.ResNetPreTrainedModel,x4=m.RoFormerForMaskedLM,v4=m.RoFormerForQuestionAnswering,y4=m.RoFormerForSequenceClassification,T4=m.RoFormerForTokenClassification,P4=m.RoFormerModel,E4=m.RoFormerPreTrainedModel,k4=m.RoFormerTokenizer,C4=m.RobertaForMaskedLM,S4=m.RobertaForQuestionAnswering,F4=m.RobertaForSequenceClassification,I4=m.RobertaForTokenClassification,A4=m.RobertaModel,$4=m.RobertaPreTrainedModel,D4=m.RobertaTokenizer,O4=m.SamImageProcessor,L4=m.SamImageSegmentationOutput,B4=m.SamModel,z4=m.SamPreTrainedModel,R4=m.SamProcessor,j4=m.SapiensForDepthEstimation,N4=m.SapiensForNormalEstimation,V4=m.SapiensForSemanticSegmentation,W4=m.SapiensPreTrainedModel,U4=m.SeamlessM4TFeatureExtractor,G4=m.SegformerFeatureExtractor,K4=m.SegformerForImageClassification,q4=m.SegformerForSemanticSegmentation,H4=m.SegformerImageProcessor,Q4=m.SegformerModel,X4=m.SegformerPreTrainedModel,J4=m.Seq2SeqLMOutput,Y4=m.SequenceClassifierOutput,Z4=m.SiglipImageProcessor,eW=m.SiglipModel,tW=m.SiglipPreTrainedModel,rW=m.SiglipTextModel,sW=m.SiglipTokenizer,oW=m.SiglipVisionModel,nW=m.SmolLM3ForCausalLM,aW=m.SmolLM3Model,iW=m.SmolLM3PreTrainedModel,lW=m.SmolVLMForConditionalGeneration,cW=m.SmolVLMImageProcessor,dW=m.SmolVLMProcessor,uW=m.SnacDecoderModel,pW=m.SnacEncoderModel,_W=m.SnacFeatureExtractor,mW=m.SnacModel,fW=m.SnacPreTrainedModel,hW=m.SpeechT5FeatureExtractor,gW=m.SpeechT5ForSpeechToText,wW=m.SpeechT5ForTextToSpeech,bW=m.SpeechT5HifiGan,MW=m.SpeechT5Model,xW=m.SpeechT5PreTrainedModel,vW=m.SpeechT5Processor,yW=m.SpeechT5Tokenizer,TW=m.SqueezeBertForMaskedLM,PW=m.SqueezeBertForQuestionAnswering,EW=m.SqueezeBertForSequenceClassification,kW=m.SqueezeBertModel,CW=m.SqueezeBertPreTrainedModel,SW=m.SqueezeBertTokenizer,FW=m.StableLmForCausalLM,IW=m.StableLmModel,AW=m.StableLmPreTrainedModel,$W=m.Starcoder2ForCausalLM,DW=m.Starcoder2Model,OW=m.Starcoder2PreTrainedModel,LW=m.StoppingCriteria,BW=m.StoppingCriteriaList,zW=m.StyleTextToSpeech2Model,RW=m.StyleTextToSpeech2PreTrainedModel,jW=m.SummarizationPipeline,NW=m.SuppressTokensAtBeginLogitsProcessor,VW=m.Swin2SRForImageSuperResolution,WW=m.Swin2SRImageProcessor,UW=m.Swin2SRModel,GW=m.Swin2SRPreTrainedModel,KW=m.SwinForImageClassification,qW=m.SwinForSemanticSegmentation,HW=m.SwinModel,QW=m.SwinPreTrainedModel,XW=m.T5ForConditionalGeneration,JW=m.T5Model,YW=m.T5PreTrainedModel,ZW=m.T5Tokenizer,eU=m.TableTransformerForObjectDetection,tU=m.TableTransformerModel,rU=m.TableTransformerObjectDetectionOutput,sU=m.TableTransformerPreTrainedModel,oU=m.TemperatureLogitsWarper,nU=m.Tensor,aU=m.Text2TextGenerationPipeline,iU=m.TextClassificationPipeline,lU=m.TextGenerationPipeline,cU=m.TextStreamer,dU=m.TextToAudioPipeline,uU=m.TokenClassificationPipeline,pU=m.TokenClassifierOutput,_U=m.TokenizerModel,mU=m.TopKLogitsWarper,fU=m.TopPLogitsWarper,hU=m.TrOCRForCausalLM,gU=m.TrOCRPreTrainedModel,wU=m.TranslationPipeline,bU=m.UltravoxModel,MU=m.UltravoxPreTrainedModel,xU=m.UltravoxProcessor,vU=m.UniSpeechForCTC,yU=m.UniSpeechForSequenceClassification,TU=m.UniSpeechModel,PU=m.UniSpeechPreTrainedModel,EU=m.UniSpeechSatForAudioFrameClassification,kU=m.UniSpeechSatForCTC,CU=m.UniSpeechSatForSequenceClassification,SU=m.UniSpeechSatModel,FU=m.UniSpeechSatPreTrainedModel,IU=m.VLChatProcessor,AU=m.VLMImageProcessor,$U=m.ViTFeatureExtractor,DU=m.ViTForImageClassification,OU=m.ViTImageProcessor,LU=m.ViTMAEModel,BU=m.ViTMAEPreTrainedModel,zU=m.ViTMSNForImageClassification,RU=m.ViTMSNModel,jU=m.ViTMSNPreTrainedModel,NU=m.ViTModel,VU=m.ViTPreTrainedModel,WU=m.VisionEncoderDecoderModel,UU=m.VitMatteForImageMatting,GU=m.VitMatteImageProcessor,KU=m.VitMattePreTrainedModel,qU=m.VitPoseForPoseEstimation,HU=m.VitPoseImageProcessor,QU=m.VitPosePreTrainedModel,XU=m.VitsModel,JU=m.VitsModelOutput,YU=m.VitsPreTrainedModel,ZU=m.VitsTokenizer,eG=m.VoxtralForConditionalGeneration,tG=m.VoxtralProcessor,rG=m.Wav2Vec2BertForCTC,sG=m.Wav2Vec2BertForSequenceClassification,oG=m.Wav2Vec2BertModel,nG=m.Wav2Vec2BertPreTrainedModel,aG=m.Wav2Vec2CTCTokenizer,iG=m.Wav2Vec2FeatureExtractor,lG=m.Wav2Vec2ForAudioFrameClassification,cG=m.Wav2Vec2ForCTC,dG=m.Wav2Vec2ForSequenceClassification,uG=m.Wav2Vec2Model,pG=m.Wav2Vec2PreTrainedModel,_G=m.Wav2Vec2Processor,mG=m.Wav2Vec2ProcessorWithLM,fG=m.WavLMForAudioFrameClassification,hG=m.WavLMForCTC,gG=m.WavLMForSequenceClassification,wG=m.WavLMForXVector,bG=m.WavLMModel,MG=m.WavLMPreTrainedModel,xG=m.WeSpeakerFeatureExtractor,vG=m.WeSpeakerResNetModel,yG=m.WeSpeakerResNetPreTrainedModel,TG=m.WhisperFeatureExtractor,PG=m.WhisperForConditionalGeneration,EG=m.WhisperModel,kG=m.WhisperPreTrainedModel,CG=m.WhisperProcessor,P0=m.WhisperTextStreamer,SG=m.WhisperTimeStampLogitsProcessor,FG=m.WhisperTokenizer,IG=m.XLMForQuestionAnswering,AG=m.XLMForSequenceClassification,$G=m.XLMForTokenClassification,DG=m.XLMModel,OG=m.XLMPreTrainedModel,LG=m.XLMRobertaForMaskedLM,BG=m.XLMRobertaForQuestionAnswering,zG=m.XLMRobertaForSequenceClassification,RG=m.XLMRobertaForTokenClassification,jG=m.XLMRobertaModel,NG=m.XLMRobertaPreTrainedModel,VG=m.XLMRobertaTokenizer,WG=m.XLMTokenizer,UG=m.XLMWithLMHeadModel,GG=m.XVectorOutput,KG=m.YolosFeatureExtractor,qG=m.YolosForObjectDetection,HG=m.YolosImageProcessor,QG=m.YolosModel,XG=m.YolosObjectDetectionOutput,JG=m.YolosPreTrainedModel,YG=m.ZeroShotAudioClassificationPipeline,ZG=m.ZeroShotClassificationPipeline,e8=m.ZeroShotImageClassificationPipeline,t8=m.ZeroShotObjectDetectionPipeline,r8=m.bankers_round,s8=m.cat,o8=m.cos_sim,n8=m.dot,a8=m.dynamic_time_warping,i8=m.env,l8=m.full,c8=m.full_like,d8=m.getCacheShapes,u8=m.hamming,p8=m.hanning,_8=m.interpolate,m8=m.interpolate_4d,f8=m.interpolate_data,h8=m.is_chinese_char,g8=m.layer_norm,w8=m.load_image,b8=m.load_video,M8=m.log_softmax,x8=m.magnitude,v8=m.matmul,y8=m.max,T8=m.mean,P8=m.mean_pooling,E8=m.medianFilter,k8=m.mel_filter_bank,C8=m.min,S8=m.ones,F8=m.ones_like,I8=m.permute,A8=m.permute_data,E0=m.pipeline,$8=m.quantize_embeddings,D8=m.rand,O8=m.read_audio,L8=m.rfft,B8=m.round,z8=m.slice,R8=m.softmax,j8=m.spectrogram,N8=m.stack,V8=m.std_mean,W8=m.topk,U8=m.window_function,G8=m.zeros,K8=m.zeros_like;async function k0(e){let{spec:r,onLoading:t}=e;return await E0("automatic-speech-recognition",r.model,{device:r.device,dtype:r.dtype,progress_callback:o=>{t({total:o.total,progress:o.progress})}})}async function C0(e){let{pipe:r,spec:t,request:s,callbacks:o}=e;if(!r.processor.feature_extractor)throw new Error("no feature_extractor");let n=r.processor.feature_extractor?.config.chunk_length/r.model.config.max_source_positions,a=0,i=null,l=0,c=0,p=t.chunkLength-t.strideLength,u=()=>{let v=a*p;return Math.min(v/s.duration,1)},d=r.tokenizer,h=new P0(d,{time_precision:n,token_callback_function:()=>{i??=performance.now(),++l>1&&(c=l/(performance.now()-i)*1e3)},callback_function:v=>{o.onTranscription(v),o.onReport({tokensPerSecond:c,progress:u()})},on_finalize:()=>{i=null,l=0,a++,o.onReport({tokensPerSecond:c,progress:u()})}}),f=await r(new Float32Array(s.audio),{top_k:0,do_sample:!1,chunk_length_s:t.chunkLength,stride_length_s:t.strideLength,language:s.language,task:"transcribe",return_timestamps:"word",force_full_sequences:!1,streamer:h});return{text:f.text,chunks:f.chunks}}var S0=wh(),mE=e=>bh(async r=>{S0.resolve({spec:r,pipe:await k0({spec:r,onLoading:t=>e.loading(t)})})});await Gh.worker(e=>({prepare:mE(e.host),async transcribe(t){let{pipe:s,spec:o}=await S0.promise;return C0({pipe:s,spec:o,request:t,callbacks:{onReport:n=>e.host.deliverReport(n),onTranscription:n=>e.host.deliverTranscription(n)}})}}));
2852
2852
  /*! Bundled license information:
2853
2853
 
2854
2854
  onnxruntime-web/dist/ort.bundle.min.mjs: