@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.
- package/package.json +2 -2
- package/s/timeline/sugar/o.ts +5 -4
- package/x/demo/demo.bundle.min.js +54 -54
- package/x/demo/demo.bundle.min.js.map +4 -4
- package/x/driver/driver.worker.bundle.min.js.map +1 -1
- package/x/features/speech/transcribe/worker.bundle.min.js +163 -163
- package/x/features/speech/transcribe/worker.bundle.min.js.map +4 -4
- package/x/index.html +2 -2
- package/x/timeline/sugar/o.js +5 -3
- package/x/timeline/sugar/o.js.map +1 -1
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
var
|
|
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
|
|
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
|
|
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=
|
|
14
|
-
`);return _[0]=="Error"&&_.shift(),
|
|
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=
|
|
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),
|
|
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])}},
|
|
64
|
-
var a: ${t.type.indices};`;for(let n=0;n<r;++n)o+=`a[${e[n]}]=i[${n}];`;return o+="return a;}"},
|
|
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}=
|
|
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
|
-
${
|
|
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}},
|
|
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(${
|
|
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 = ${
|
|
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 = ${
|
|
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}(${
|
|
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=
|
|
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?
|
|
160
|
-
`)}`,`var value = ${t.getByIndices("input_indices")};`,`value = max(value, ${t.getByIndices("input_indices")});`,""]})},
|
|
161
|
-
`)}`,`var value = ${t.getByIndices("input_indices")};`,`value = min(value, ${t.getByIndices("input_indices")});`,""]})},
|
|
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]})},
|
|
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)}),
|
|
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
|
-
`,
|
|
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})}},
|
|
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}},
|
|
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(
|
|
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]})},
|
|
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}]})}},
|
|
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
|
-
}`}},
|
|
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=>
|
|
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
|
-
}`,
|
|
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}`,
|
|
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
|
-
`,
|
|
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
|
-
}`}}
|
|
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
|
-
}`},
|
|
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
|
-
`)},
|
|
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
|
-
}`,
|
|
558
|
-
`)},
|
|
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
|
-
${
|
|
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
|
-
${
|
|
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}},
|
|
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}`)}},
|
|
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
|
-
`}),
|
|
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(),
|
|
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}];
|
|
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}}}),
|
|
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
|
-
`,
|
|
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
|
-
${
|
|
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
|
-
${
|
|
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
|
-
|
|
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
|
-
${
|
|
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
|
-
`}
|
|
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}];
|
|
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}}}),
|
|
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=
|
|
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
|
-
${
|
|
977
|
+
${Kv(o)}
|
|
978
978
|
${E}
|
|
979
979
|
setOutputAtCoords(coords[0], coords[1], coords[2], coords[3], value);
|
|
980
980
|
}
|
|
981
|
-
}`},
|
|
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
|
-
${
|
|
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
|
-
${
|
|
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}}}),
|
|
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=
|
|
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}}}),
|
|
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}},
|
|
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}}}),
|
|
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:$}}}),
|
|
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}},
|
|
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
|
-
`)},
|
|
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
|
-
${
|
|
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}},
|
|
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}},
|
|
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})}},
|
|
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(
|
|
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/
|
|
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}},
|
|
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]},
|
|
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]})},
|
|
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}},
|
|
1480
|
-
indices input tensors be of same rank.`)},
|
|
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
|
-
}`}},
|
|
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}},
|
|
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
|
-
`,
|
|
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
|
-
`,
|
|
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
|
-
`,
|
|
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
|
-
`,
|
|
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[${
|
|
1672
|
-
indices[${
|
|
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[${
|
|
1678
|
-
indices[${
|
|
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[${
|
|
1681
|
-
indices[${
|
|
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
|
-
`,
|
|
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")}`,
|
|
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
|
-
${
|
|
1719
|
-
${
|
|
1720
|
-
${wb(r)}
|
|
1718
|
+
${gb}
|
|
1719
|
+
${wb(i)}
|
|
1721
1720
|
${bb(r)}
|
|
1722
|
-
${Mb(
|
|
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[${
|
|
1727
|
-
let W_in = i32(uniforms.x_shape[${
|
|
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[${
|
|
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
|
-
${
|
|
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}},
|
|
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=
|
|
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
|
-
}`,
|
|
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
|
-
${
|
|
1771
|
-
${
|
|
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})}},
|
|
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(
|
|
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)/
|
|
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}},
|
|
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]}
|
|
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]})},
|
|
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]})},
|
|
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 = ${
|
|
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 = ${
|
|
1919
|
-
let f32scale = ${
|
|
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?`+ ${
|
|
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}},
|
|
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}},
|
|
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:$}}
|
|
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
|
-
`},
|
|
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
|
-
`},
|
|
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
|
-
`},
|
|
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
|
-
`},
|
|
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}},
|
|
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}`,
|
|
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)}},
|
|
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:$})}},
|
|
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})}},
|
|
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
|
-
${
|
|
2318
|
-
}`,
|
|
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}},
|
|
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")}},
|
|
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
|
-
`,
|
|
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`)}})()+"}",
|
|
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
|
-
}`,
|
|
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
|
-
}`,
|
|
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
|
-
`:"",
|
|
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
|
-
}`},
|
|
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
|
-
`},
|
|
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
|
-
}`},
|
|
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
|
-
${
|
|
2608
|
+
${iM(r.coordinateTransformMode,F)};
|
|
2609
2609
|
${(()=>{switch(r.mode){case"nearest":return`
|
|
2610
|
-
${
|
|
2611
|
-
${
|
|
2612
|
-
${
|
|
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
|
-
${
|
|
2615
|
-
${(()=>{if(a.length===2||a.length===4)return`${
|
|
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`${
|
|
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)]})}},
|
|
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 = ${
|
|
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})}},
|
|
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
|
-
}`,
|
|
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
|
-
${
|
|
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})}},
|
|
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]})},
|
|
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}},
|
|
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
|
-
}`},
|
|
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:
|