@mediapipe/tasks-genai 0.10.28 → 0.10.29

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/README.md CHANGED
@@ -16,7 +16,7 @@ these:
16
16
  E2B](https://huggingface.co/google/gemma-3n-E2B-it-litert-lm/blob/main/gemma-3n-E2B-it-int4-Web.litertlm)
17
17
  - [Gemma 3n E4B](https://huggingface.co/google/gemma-3n-E4B-it-litert-lm/blob/main/gemma-3n-E4B-it-int4-Web.litertlm)
18
18
 
19
- Alternatively, you can browse for more pre-converted models on our [LiteRT HuggingFace community](https://huggingface.co/litert-community/models), where files named "-web.task" are
19
+ Alternatively, you can browse for more pre-converted models on our [LiteRT HuggingFace community](https://huggingface.co/litert-community/models), where files named "-web.task" (and sometimes "-web.litertlm") are
20
20
  specially converted to run optimally in the browser. All text-only variants of
21
21
  Gemma 3 are available there, as well as [MedGemma-27B-Text](https://huggingface.co/litert-community/MedGemma-27B-IT/blob/main/medgemma-27b-it-int8-web.task). See
22
22
  our web inference [guide](https://developers.google.com/mediapipe/solutions/genai/llm_inference/web_js) for more information.
package/genai.d.ts CHANGED
@@ -352,6 +352,10 @@ declare class LlmInferenceGraphOptions extends jspb.Message {
352
352
  clearSupportAudio(): void;
353
353
  getSupportAudio(): boolean;
354
354
  setSupportAudio(value: boolean): void;
355
+ hasDisableRewinding(): boolean;
356
+ clearDisableRewinding(): void;
357
+ getDisableRewinding(): boolean;
358
+ setDisableRewinding(value: boolean): void;
355
359
  serializeBinary(): Uint8Array;
356
360
  toObject(includeInstance?: boolean): LlmInferenceGraphOptions.AsObject;
357
361
  static toObject(includeInstance: boolean, msg: LlmInferenceGraphOptions): LlmInferenceGraphOptions.AsObject;
@@ -376,6 +380,7 @@ declare namespace LlmInferenceGraphOptions {
376
380
  forceF32: boolean;
377
381
  maxNumImages: number;
378
382
  supportAudio: boolean;
383
+ disableRewinding: boolean;
379
384
  };
380
385
  }
381
386
 
@@ -431,6 +436,12 @@ export declare interface LlmInferenceOptions extends TaskRunnerOptions {
431
436
  * streaming loading, and therefore is not compatible with "converted" models.
432
437
  */
433
438
  supportAudio?: boolean;
439
+ /**
440
+ * When set to true, will disable optimizations for fast rewinding, but will
441
+ * consequently use much less memory for long contexts. Default is false, to
442
+ * allow for fast rewinding and shared prefix reuse.
443
+ */
444
+ disableRewinding?: boolean;
434
445
  }
435
446
 
436
447
  /**
package/genai_bundle.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var t="undefined"!=typeof self?self:{};function e(e,r){t:{for(var n=["CLOSURE_FLAGS"],i=t,o=0;o<n.length;o++)if(null==(i=i[n[o]])){n=null;break t}n=i}return null!=(e=n&&n[e])?e:r}var r,n="undefined"!=typeof TextEncoder;function i(t){if(n)t=(r||=new TextEncoder).encode(t);else{let r=0,n=new Uint8Array(3*t.length);for(let i=0;i<t.length;i++){var e=t.charCodeAt(i);if(e<128)n[r++]=e;else{if(e<2048)n[r++]=e>>6|192;else{if(e>=55296&&e<=57343){if(e<=56319&&i<t.length){let o=t.charCodeAt(++i);if(o>=56320&&o<=57343){e=1024*(e-55296)+o-56320+65536,n[r++]=e>>18|240,n[r++]=e>>12&63|128,n[r++]=e>>6&63|128,n[r++]=63&e|128;continue}i--}e=65533}n[r++]=e>>12|224,n[r++]=e>>6&63|128}n[r++]=63&e|128}}t=r===n.length?n:n.subarray(0,r)}return t}var o=e(610401301,!1),a=e(748402147,!0);function s(){var e=t.navigator;return e&&(e=e.userAgent)?e:""}var l,u=t.navigator;l=u&&u.userAgentData||null;var h={},c=null;function f(t){var e=t.length,r=3*e/4;r%3?r=Math.floor(r):-1!="=.".indexOf(t[e-1])&&(r=-1!="=.".indexOf(t[e-2])?r-2:r-1);var n=new Uint8Array(r),i=0;return function(t,e){function r(e){for(;n<t.length;){let e=t.charAt(n++),r=c[e];if(null!=r)return r;if(!/^[\s\xa0]*$/.test(e))throw Error("Unknown base64 encoding at char: "+e)}return e}d();for(var n=0;;){let t=r(-1),n=r(0),i=r(64),o=r(64);if(64===o&&-1===t)break;e(t<<2|n>>4),64!=i&&(e(n<<4&240|i>>2),64!=o&&e(i<<6&192|o))}}(t,function(t){n[i++]=t}),i!==r?n.subarray(0,i):n}function d(){if(!c){c={};var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),e=["+/=","+/","-_=","-_.","-_"];for(let r=0;r<5;r++){let n=t.concat(e[r].split(""));h[r]=n;for(let t=0;t<n.length;t++){let e=n[t];void 0===c[e]&&(c[e]=t)}}}}var p="undefined"!=typeof Uint8Array,m=!(!(o&&l&&l.brands.length>0)&&(-1!=s().indexOf("Trident")||-1!=s().indexOf("MSIE")))&&"function"==typeof btoa,g=/[-_.]/g,v={"-":"+",_:"/",".":"="};function _(t){return v[t]||""}function y(t){if(!m)return f(t);t=g.test(t)?t.replace(g,_):t,t=atob(t);var e=new Uint8Array(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}function w(t){return p&&null!=t&&t instanceof Uint8Array}var b={};function S(){return E||=new A(null,b)}var E,A=class{constructor(t,e){if(I(e),this.i=t,null!=t&&0===t.length)throw Error("ByteString should be constructed with non-empty values")}};function I(t){if(t!==b)throw Error("illegal external caller")}function T(t,e){t.__closure__error__context__984382||(t.__closure__error__context__984382={}),t.__closure__error__context__984382.severity=e}var L=void 0;function P(t){return T(t=Error(t),"warning"),t}function O(e,r){if(null!=e){var n=L??={},i=n[e]||0;i>=r||(n[e]=i+1,T(e=Error(),"incident"),function(e){t.setTimeout(()=>{throw e},0)}(e))}}function j(){return"function"==typeof BigInt}var k="function"==typeof Symbol&&"symbol"==typeof Symbol();function x(t,e,r=!1){return"function"==typeof Symbol&&"symbol"==typeof Symbol()?r&&Symbol.for&&t?Symbol.for(t):null!=t?Symbol(t):Symbol():e}var U,B=x("jas",void 0,!0),N=x(void 0,"1oa"),F=x(void 0,"0ubsb"),R=x(void 0,"0actk"),D=x("m_m","qa",!0),M={ha:{value:0,configurable:!0,writable:!0,enumerable:!1}},C=Object.defineProperties,V=k?B:"ha",G=[];function z(t,e){k||V in t||C(t,M),t[V]|=e}function W(t,e){k||V in t||C(t,M),t[V]=e}W(G,7),U=Object.freeze(G);var H={};function $(t,e){return void 0===e?t.i!==q&&!!(2&t.m[V]):!!(2&e)&&t.i!==q}var q={},K=Object.freeze({});function Y(t){return t.pa=!0,t}var J=Y(t=>"number"==typeof t),X=Y(t=>"string"==typeof t),Q=Y(t=>"boolean"==typeof t),Z="function"==typeof t.BigInt&&"bigint"==typeof t.BigInt(0),tt=Y(t=>Z?t>=rt&&t<=it:"-"===t[0]?ot(t,et):ot(t,nt)),et=Number.MIN_SAFE_INTEGER.toString(),rt=Z?BigInt(Number.MIN_SAFE_INTEGER):void 0,nt=Number.MAX_SAFE_INTEGER.toString(),it=Z?BigInt(Number.MAX_SAFE_INTEGER):void 0;function ot(t,e){if(t.length>e.length)return!1;if(t.length<e.length||t===e)return!0;for(let r=0;r<t.length;r++){let n=t[r],i=e[r];if(n>i)return!1;if(n<i)return!0}}var at,st=0,lt=0;function ut(t){var e=t>>>0;st=e,lt=(t-e)/4294967296>>>0}function ht(t){if(t<0){ut(-t);let[e,r]=mt(st,lt);st=e>>>0,lt=r>>>0}else ut(t)}function ct(t,e){var r=4294967296*e+(t>>>0);return Number.isSafeInteger(r)?r:ft(t,e)}function ft(t,e){if(t>>>=0,(e>>>=0)<=2097151)var r=""+(4294967296*e+t);else j()?r=""+(BigInt(e)<<BigInt(32)|BigInt(t)):(t=(16777215&t)+6777216*(r=16777215&(t>>>24|e<<8))+6710656*(e=e>>16&65535),r+=8147497*e,e*=2,t>=1e7&&(r+=t/1e7>>>0,t%=1e7),r>=1e7&&(e+=r/1e7>>>0,r%=1e7),r=e+dt(r)+dt(t));return r}function dt(t){return t=String(t),"0000000".slice(t.length)+t}function pt(t){if(t.length<16)ht(Number(t));else if(j())t=BigInt(t),st=Number(t&BigInt(4294967295))>>>0,lt=Number(t>>BigInt(32)&BigInt(4294967295));else{let e=+("-"===t[0]);lt=st=0;let r=t.length;for(let n=e,i=(r-e)%6+e;i<=r;n=i,i+=6){let e=Number(t.slice(n,i));lt*=1e6,(st=1e6*st+e)>=4294967296&&(lt+=Math.trunc(st/4294967296),lt>>>=0,st>>>=0)}if(e){let[t,e]=mt(st,lt);st=t,lt=e}}}function mt(t,e){return e=~e,t?t=1+~t:e+=1,[t,e]}function gt(t){return Array.prototype.slice.call(t)}var vt="function"==typeof BigInt?BigInt.asIntN:void 0,_t="function"==typeof BigInt?BigInt.asUintN:void 0,yt=Number.isSafeInteger,wt=Number.isFinite,bt=Math.trunc;function St(t){if(null!=t&&"number"!=typeof t)throw Error(`Value of float/double field must be a number, found ${typeof t}: ${t}`);return t}function Et(t){return null==t||"number"==typeof t?t:"NaN"===t||"Infinity"===t||"-Infinity"===t?Number(t):void 0}function At(t){if(null!=t&&"boolean"!=typeof t){var e=typeof t;throw Error(`Expected boolean but got ${"object"!=e?e:t?Array.isArray(t)?"array":e:"null"}: ${t}`)}return t}function It(t){return null==t||"boolean"==typeof t?t:"number"==typeof t?!!t:void 0}var Tt,Lt,Pt,Ot=/^-?([1-9][0-9]*|0)(\.[0-9]+)?$/;function jt(t){switch(typeof t){case"bigint":return!0;case"number":return wt(t);case"string":return Ot.test(t);default:return!1}}function kt(t){if("number"!=typeof t)throw P("int32");if(!wt(t))throw P("int32");return 0|t}function xt(t){return null==t?t:kt(t)}function Ut(t){if(null==t)return t;if("string"==typeof t&&t)t=+t;else if("number"!=typeof t)return;return wt(t)?0|t:void 0}function Bt(t){if(null==t)return t;if("string"==typeof t&&t)t=+t;else if("number"!=typeof t)return;return wt(t)?t>>>0:void 0}function Nt(t){return null==t||"string"==typeof t?t:void 0}function Ft(t,e,r){if(null!=t&&t[D]===H)return t;if(Array.isArray(t)){var n=0|t[V];return(r=n|32&r|2&r)!==n&&W(t,r),new e(t)}}function Rt(t){return t}function Dt(t,e,r,n){var i=void 0!==n;n=!!n;var o=[],a=t.length,s=4294967295,l=!1,u=!!(64&e),h=u?128&e?0:-1:void 0;if(!(1&e)){var c=a&&t[a-1];null!=c&&"object"==typeof c&&c.constructor===Object?s=--a:c=void 0,!u||128&e||i||(l=!0,s=(Tt??Rt)(s-h,h,t,c,void 0)+h)}for(e=void 0,i=0;i<a;i++){let a=t[i];if(null!=a&&null!=(a=r(a,n)))if(u&&i>=s){let t=i-h;(e??={})[t]=a}else o[i]=a}if(c)for(let i in c){if(null==(t=c[i])||null==(t=r(t,n)))continue;let l;a=+i,u&&!Number.isNaN(a)&&(l=a+h)<s?o[l]=t:(e??={})[i]=t}return e&&(l?o.push(e):o[s]=e),o}function Mt(t){switch(typeof t){case"number":return Number.isFinite(t)?t:""+t;case"bigint":return tt(t)?Number(t):""+t;case"boolean":return t?1:0;case"object":if(Array.isArray(t)){var e=0|t[V];return 0===t.length&&1&e?void 0:Dt(t,e,Mt)}if(null!=t&&t[D]===H)return Ct(t);if(t instanceof A){if(null==(e=t.i))t="";else if("string"==typeof e)t=e;else{if(m){for(var r="",n=0,i=e.length-10240;n<i;)r+=String.fromCharCode.apply(null,e.subarray(n,n+=10240));r+=String.fromCharCode.apply(null,n?e.subarray(n):e),e=btoa(r)}else{void 0===r&&(r=0),d(),r=h[r],n=Array(Math.floor(e.length/3)),i=r[64]||"";let t=0,u=0;for(;t<e.length-2;t+=3){var o=e[t],a=e[t+1],s=e[t+2],l=r[o>>2];o=r[(3&o)<<4|a>>4],a=r[(15&a)<<2|s>>6],s=r[63&s],n[u++]=l+o+a+s}switch(l=0,s=i,e.length-t){case 2:s=r[(15&(l=e[t+1]))<<2]||i;case 1:e=e[t],n[u]=r[e>>2]+r[(3&e)<<4|l>>4]+s+i}e=n.join("")}t=t.i=e}return t}return}return t}function Ct(t){return Dt(t=t.m,0|t[V],Mt)}function Vt(t,e,r,n=0){if(null==t){var i=32;r?(t=[r],i|=128):t=[],e&&(i=-16760833&i|(1023&e)<<14)}else{if(!Array.isArray(t))throw Error("narr");if(i=0|t[V],a&&1&i)throw Error("rfarr");if(2048&i&&!(2&i)&&function(){if(a)throw Error("carr");O(R,5)}(),256&i)throw Error("farr");if(64&i)return(i|n)!==i&&W(t,i|n),t;if(r&&(i|=128,r!==t[0]))throw Error("mid");t:{i|=64;var o=(r=t).length;if(o){var s=o-1;let t=r[s];if(null!=t&&"object"==typeof t&&t.constructor===Object){if((s-=e=128&i?0:-1)>=1024)throw Error("pvtlmt");for(var l in t)(o=+l)<s&&(r[o+e]=t[l],delete t[l]);i=-16760833&i|(1023&s)<<14;break t}}if(e){if((l=Math.max(e,o-(128&i?0:-1)))>1024)throw Error("spvt");i=-16760833&i|(1023&l)<<14}}}return W(t,64|i|n),t}function Gt(t,e){if("object"!=typeof t)return t;if(Array.isArray(t)){var r=0|t[V];return 0===t.length&&1&r?t=void 0:2&r||(!e||4096&r||16&r?t=Wt(t,r,!1,e&&!(16&r)):(z(t,34),4&r&&Object.freeze(t))),t}return null!=t&&t[D]===H?$(t,r=0|(e=t.m)[V])?t:Kt(t,e,r)?zt(t,e):Wt(e,r):t instanceof A?t:void 0}function zt(t,e,r){return t=new t.constructor(e),r&&(t.i=q),t.o=q,t}function Wt(t,e,r,n){return n??=!!(34&e),t=Dt(t,e,Gt,n),n=32,r&&(n|=2),W(t,e=16769217&e|n),t}function Ht(t){if(t.i!==q)return!1;var e=t.m;return z(e=Wt(e,0|e[V]),2048),t.m=e,t.i=void 0,t.o=void 0,!0}function $t(t){if(!Ht(t)&&$(t,0|t.m[V]))throw Error()}function qt(t,e){void 0===e&&(e=0|t[V]),32&e&&!(4096&e)&&W(t,4096|e)}function Kt(t,e,r){return!!(2&r)||!(!(32&r)||4096&r)&&(W(e,2|r),t.i=q,!0)}function Yt(t,e,r){if(null!==(t=Jt(t.m,e,void 0,r)))return t}function Jt(t,e,r,n){if(-1===e)return null;var i=e+(r?0:-1),o=t.length-1;if(!(o<1+(r?0:-1))){if(i>=o){var a=t[o];if(null!=a&&"object"==typeof a&&a.constructor===Object){r=a[e];var s=!0}else{if(i!==o)return;r=a}}else r=t[i];if(n&&null!=r){if(null==(n=n(r)))return n;if(!Object.is(n,r))return s?a[e]=n:t[i]=n,n}return r}}function Xt(t,e,r){$t(t),Qt(t=t.m,0|t[V],e,r)}function Qt(t,e,r,n,i){var o=r+(i?0:-1),a=t.length-1;if(a>=1+(i?0:-1)&&o>=a){let i=t[a];if(null!=i&&"object"==typeof i&&i.constructor===Object)return i[r]=n,e}return o<=a?(t[o]=n,e):(void 0!==n&&(r>=(a=(e??=0|t[V])>>14&1023||536870912)?null!=n&&(t[a+(i?0:-1)]={[r]:n}):t[o]=n),e)}function Zt(t,e,r,n,i){var o=t.m,a=0|o[V];n=$(t,a)?1:n,i=!!i||3===n,2===n&&Ht(t)&&(a=0|(o=t.m)[V]);var s=(t=ee(o,e))===U?7:0|t[V],l=re(s,a),u=!(4&l);if(u){4&l&&(t=gt(t),s=0,l=ce(l,a),a=Qt(o,a,e,t));let n=0,i=0;for(;n<t.length;n++){let e=r(t[n]);null!=e&&(t[i++]=e)}i<n&&(t.length=i),r=-513&l|4,l=r&=-1025,l&=-4097}return l!==s&&(W(t,l),2&l&&Object.freeze(t)),te(t,l,o,a,e,n,u,i)}function te(t,e,r,n,i,o,a,s){var l=e;return 1===o||4===o&&(2&e||!(16&e)&&32&n)?ne(e)||((e|=!t.length||a&&!(4096&e)||32&n&&!(4096&e||16&e)?2:256)!==l&&W(t,e),Object.freeze(t)):(2===o&&ne(e)&&(t=gt(t),l=0,e=ce(e,n),n=Qt(r,n,i,t)),ne(e)||(s||(e|=16),e!==l&&W(t,e))),2&e||!(4096&e||16&e)||qt(r,n),t}function ee(t,e,r){return t=Jt(t,e,r),Array.isArray(t)?t:U}function re(t,e){return 2&e&&(t|=2),1|t}function ne(t){return!!(2&t)&&!!(4&t)||!!(256&t)}function ie(t,e,r){$t(t);var n=0|(t=t.m)[V];if(null==r)Qt(t,n,e);else{var i=r===U?7:0|r[V],o=i,a=ne(i),s=a||Object.isFrozen(r);for(a||(i=0),s||(r=gt(r),o=0,i=ce(i,n),s=!1),i|=5,i|=(4&i?512&i?512:1024&i?1024:0:void 0)??1024,a=0;a<r.length;a++){let t=r[a],e=kt(t);Object.is(t,e)||(s&&(r=gt(r),o=0,i=ce(i,n),s=!1),r[a]=e)}i!==o&&(s&&(r=gt(r),i=ce(i,n)),W(r,i)),Qt(t,n,e,r)}}function oe(t,e,r,n){$t(t),Qt(t=t.m,0|t[V],e,("0"===n?0===Number(r):r===n)?void 0:r)}function ae(t){if(k)return t[N]??(t[N]=new Map);if(N in t)return t[N];var e=new Map;return Object.defineProperty(t,N,{value:e}),e}function se(t,e,r){var n=ui,i=t.get(n);if(null!=i)return i;i=0;for(let t=0;t<n.length;t++){let o=n[t];null!=Jt(e,o)&&(0!==i&&(r=Qt(e,r,i)),i=o)}return t.set(n,i),i}function le(t,e,r){var n=t.m,i=0|n[V];if(e=function(t,e,r,n){var i=!1;if(null!=(n=Jt(t,n,void 0,t=>{var n=Ft(t,r,e);return i=n!==t&&null!=n,n})))return i&&!$(n)&&qt(t,e),n}(n,i,e,r),null==e)return e;if(!$(t,i=0|n[V])){var o,a=e;let s=a.m,l=0|s[V];(o=$(a,l)?Kt(a,s,l)?zt(a,s,!0):new a.constructor(Wt(s,l,!1)):a)!==e&&(Ht(t)&&(i=0|(n=t.m)[V]),qt(n,i=Qt(n,i,r,e=o)))}return e}function ue(t){return null==t&&(t=void 0),t}function he(t,e,r){return Xt(t,e,r=ue(r)),r&&!$(r)&&qt(t.m),t}function ce(t,e){return-273&(2&e?2|t:-3&t)}function fe(t,e,r,n){var i=n;$t(t);var o=n=t.m,a=0|n[V],s=$(t,a)?1:2;2===s&&Ht(t)&&(a=0|(o=t.m)[V]);var l=(t=ee(o,e))===U?7:0|t[V],u=re(l,a),h=!(4&u);if(h){var c=t,f=a;let e=!!(2&u);e&&(f|=2);let n=!e,i=!0,o=0,s=0;for(;o<c.length;o++){let t=Ft(c[o],r,f);if(t instanceof r){if(!e){let e=$(t);n&&=!e,i&&=e}c[s++]=t}}s<o&&(c.length=s),u|=4,u=i?-4097&u:4096|u,u=n?8|u:-9&u}u!==l&&(W(t,u),2&u&&Object.freeze(t)),e=t=te(t,u,o,a,e,s,h,!0),i=null!=i?i:new r,e.push(i),o=r=e===U?7:0|e[V],(i=$(i))?(r&=-9,1===e.length&&(r&=-4097)):r|=4096,r!==o&&W(e,r),i||qt(n)}function de(t,e){return Bt(Yt(t,e))??0}function pe(t,e,r){oe(t,e,xt(r),0)}function me(t,e,r){if(null!=r){if("number"!=typeof r)throw P("uint32");if(!wt(r))throw P("uint32");r>>>=0}Xt(t,e,r)}function ge(t,e,r){if(null!=r&&"string"!=typeof r)throw Error();oe(t,e,r,"")}function ve(t,e,r){if($t(t),e=(t=Zt(t,e,Nt,2,!0)).push,"string"!=typeof r)throw Error();e.call(t,r)}var _e=class{constructor(t,e,r){if(this.buffer=t,r&&!e)throw Error()}};function ye(t){if("string"==typeof t)return new _e(y(t),!0);if(Array.isArray(t))return new _e(new Uint8Array(t),!0);if(t.constructor===Uint8Array)return new _e(t,!1);if(t.constructor===ArrayBuffer)return t=new Uint8Array(t),new _e(t,!1);if(t.constructor===A){I(b);var e=t.i;return e=(null==(e=null==e||w(e)?e:"string"==typeof e?y(e):null)?e:t.i=e)||new Uint8Array(0),new _e(e,!0,t)}if(t instanceof Uint8Array)return t=t.constructor===Uint8Array?t:new Uint8Array(t.buffer,t.byteOffset,t.byteLength),new _e(t,!1);throw Error()}function we(t){return new Ee(4294967295&t,Math.floor(t/4294967296))}function be(t){return t?/^\d+$/.test(t)?(pt(t),new Ee(st,lt)):null:Se||=new Ee(0,0)}var Se,Ee=class{constructor(t,e){this.j=t>>>0,this.i=e>>>0}};function Ae(t){return new Be(4294967295&t,Math.floor(t/4294967296))}function Ie(t){return t?/^-?\d+$/.test(t)?(pt(t),new Be(st,lt)):null:Te||=new Be(0,0)}var Te,Le,Pe,Oe,je,ke,xe,Ue,Be=class{constructor(t,e){this.j=t>>>0,this.i=e>>>0}};function Ne(t,e,r){return"undefined"!=typeof BigInt64Array?(xe||(xe=new BigInt64Array(1),Ue=new Uint32Array(xe.buffer),xe[0]=BigInt(1),ke=1===Ue[0]),xe[0]=t,new e(Ue[t=ke?0:1],Ue[1-t])):(je||(Le=BigInt(Number.MIN_SAFE_INTEGER),Pe=BigInt(Number.MAX_SAFE_INTEGER),Oe=BigInt(4294967295),je=BigInt(32)),t>=Le&&t<=Pe?r(Number(t)):(t=BigInt.asUintN(64,t),new e(Number(t&Oe),Number(t>>je))))}function Fe(t,e,r){for(;r>0||e>127;)t.i.push(127&e|128),e=(e>>>7|r<<25)>>>0,r>>>=7;t.i.push(e)}function Re(t,e){for(;e>127;)t.i.push(127&e|128),e>>>=7;t.i.push(e)}function De(t,e){if(e>=0)Re(t,e);else{for(let r=0;r<9;r++)t.i.push(127&e|128),e>>=7;t.i.push(1)}}var Me=class{constructor(){this.i=[]}length(){return this.i.length}end(){var t=this.i;return this.i=[],t}};function Ce(t,e){0!==e.length&&(t.l.push(e),t.j+=e.length)}function Ve(t,e,r){Re(t.i,8*e+r)}function Ge(t,e){return Ve(t,e,2),e=t.i.end(),Ce(t,e),e.push(t.j),e}function ze(t,e){var r=e.pop();for(r=t.j+t.i.length()-r;r>127;)e.push(127&r|128),r>>>=7,t.j++;e.push(r),t.j++}function We(t,e,r){Ve(t,e,2),Re(t.i,r.length),Ce(t,t.i.end()),Ce(t,r)}var He=class{constructor(){this.l=[],this.j=0,this.i=new Me}};function $e(){var t=class{constructor(){throw Error()}};return Object.setPrototypeOf(t,t.prototype),t}var qe=$e(),Ke=$e(),Ye=$e(),Je=$e(),Xe=$e(),Qe=$e(),Ze=$e(),tr=$e(),er=$e(),rr=$e(),nr=class{constructor(t,e){this.m=Vt(t,e,void 0,2048)}toJSON(){return Ct(this)}};nr.prototype[D]=H,nr.prototype.toString=function(){return this.m.toString()};var ir=class{constructor(t,e){this.i=t,t=qe,this.j=!!t&&e===t||!1}};function or(t,e,r,n,i){null!=(e=dr(e,n))&&(r=Ge(t,r),i(e,t),ze(t,r))}var ar,sr,lr=new ir(or,qe),ur=new ir(or,qe),hr=Symbol(),cr=Symbol();function fr(t){var e=pr,r=mr,n=t[hr];if(n)return n;(n={}).oa=t,n.W=function(t){switch(typeof t){case"boolean":return Lt||=[0,void 0,!0];case"number":return t>0?void 0:0===t?Pt||=[0,void 0]:[-t,void 0];case"string":return[0,t];case"object":return t}}(t[0]);var i=t[1],o=1;i&&i.constructor===Object&&(n.ca=i,"function"==typeof(i=t[++o])&&(n.ia=!0,ar??=i,sr??=t[o+1],i=t[o+=2]));for(var a={};i&&Array.isArray(i)&&i.length&&"number"==typeof i[0]&&i[0]>0;){for(var s=0;s<i.length;s++)a[i[s]]=i;i=t[++o]}for(s=1;void 0!==i;){let h;"number"==typeof i&&(s+=i,i=t[++o]);var l=void 0;if(i instanceof ir?h=i:(h=lr,o--),h?.j){i=t[++o],l=t;var u=o;"function"==typeof i&&(i=i(),l[u]=i),l=i}for(u=s+1,"number"==typeof(i=t[++o])&&i<0&&(u-=i,i=t[++o]);s<u;s++){let t=a[s];l?r(n,s,h,l,t):e(n,s,h,t)}}return t[hr]=n}function dr(t,e){return t instanceof nr?t.m:Array.isArray(t)?Vt(t,e[0],e[1]):void 0}function pr(t,e,r){t[e]=r.i}function mr(t,e,r,n){var i,o,a=r.i;t[e]=(t,e,r)=>a(t,e,r,o||=fr(n).W,i||=gr(n))}function gr(t){var e=t[cr];if(!e){let r=fr(t);e=(t,e)=>vr(t,e,r),t[cr]=e}return e}function vr(t,e,r){!function(t,e,r){var n,i=128&e?0:-1,o=t.length;(n=!!o)&&(n=null!=(n=t[o-1])&&"object"==typeof n&&n.constructor===Object);var a=o+(n?-1:0);for(e=128&e?1:0;e<a;e++)r(e-i,t[e]);if(n){t=t[o-1];for(let e in t)!isNaN(e)&&r(+e,t[e])}}(t,0|t[V],(t,n)=>{if(null!=n){var i=function(t,e){var r=t[e];if(r)return r;if((r=t.ca)&&(r=r[e])){var n=(r=Array.isArray(r)?r[0]instanceof ir?r:[ur,r]:[r,void 0])[0].i;if(r=r[1]){let e=gr(r),i=fr(r).W;r=t.ia?sr(i,e):(t,r,o)=>n(t,r,o,i,e)}else r=n;return t[e]=r}}(r,t);i?i(e,n,t):t<500||O(F,3)}})}var _r,yr=0,wr=yr;if(X(wr)){if(!/^\s*(?:-?[1-9]\d*|0)?\s*$/.test(wr))throw Error(String(wr))}else if((_r=J(wr))&&(_r=!Number.isSafeInteger(wr)),_r)throw Error(String(wr));function br(t,e){if(Array.isArray(e)){var r=0|e[V];if(4&r)return e;for(var n=0,i=0;n<e.length;n++){let r=t(e[n]);null!=r&&(e[i++]=r)}return i<n&&(e.length=i),(t=-1537&r|5)!==r&&W(e,t),2&t&&Object.freeze(e),e}}function Sr(t,e){return new ir(t,e)}function Er(t,e,r){null!=(e=Et(e))&&(Ve(t,r,5),t=t.i,(r=at||=new DataView(new ArrayBuffer(8))).setFloat32(0,+e,!0),lt=0,e=st=r.getUint32(0,!0),t.i.push(e>>>0&255),t.i.push(e>>>8&255),t.i.push(e>>>16&255),t.i.push(e>>>24&255))}function Ar(t,e,r){null!=(e=Ut(e))&&null!=e&&(Ve(t,r,0),De(t.i,e))}function Ir(t,e,r){null!=(e=It(e))&&(Ve(t,r,0),t.i.i.push(e?1:0))}function Tr(t,e,r){null!=(e=Nt(e))&&We(t,r,i(e))}function Lr(t,e,r,n,i){null!=(e=dr(e,n))&&(r=Ge(t,r),i(e,t),ze(t,r))}function Pr(t,e,r){null!=(e=Bt(e))&&null!=e&&(Ve(t,r,0),Re(t.i,e))}function Or(t,e,r){null!=(e=Ut(e))&&(e=parseInt(e,10),Ve(t,r,0),De(t.i,e))}Z||(yr=Q(yr)?yr?"1":"0":X(yr)?yr.trim()||"0":String(yr));var jr,kr=Sr(Er,tr),xr=Sr(Er,tr),Ur=Sr(function(t,e,r){if(e=function(t){if(null==t)return t;var e=typeof t;if("bigint"===e)return String(vt(64,t));if(jt(t)){if("string"===e){if(e=bt(Number(t)),yt(e))t=String(e);else if(-1!==(e=t.indexOf("."))&&(t=t.substring(0,e)),e=t.length,!("-"===t[0]?e<20||20===e&&t<="-9223372036854775808":e<19||19===e&&t<="9223372036854775807"))if(pt(t),t=st,2147483648&(e=lt))if(j())t=""+(BigInt(0|e)<<BigInt(32)|BigInt(t>>>0));else{let[r,n]=mt(t,e);t="-"+ft(r,n)}else t=ft(t,e);return t}if("number"===e){if(t=bt(t),!yt(t)){ht(t),e=st;var r=lt;(t=2147483648&r)&&(r=~r>>>0,0==(e=1+~e>>>0)&&(r=r+1>>>0)),t="number"==typeof(e=ct(e,r))?t?-e:e:t?"-"+e:e}return t}}}(e),null!=e){if("string"==typeof e)Ie(e);if(null!=e)switch(Ve(t,r,0),typeof e){case"number":t=t.i,ht(e),Fe(t,st,lt);break;case"bigint":r=Ne(e,Be,Ae),Fe(t.i,r.j,r.i);break;default:r=Ie(e),Fe(t.i,r.j,r.i)}}},Qe),Br=Sr(function(t,e,r){if(e=function(t){if(null==t)return t;var e=typeof t;if("bigint"===e)return String(_t(64,t));if(jt(t)){if("string"===e)return e=bt(Number(t)),yt(e)&&e>=0?t=String(e):(-1!==(e=t.indexOf("."))&&(t=t.substring(0,e)),(e="-"!==t[0]&&((e=t.length)<20||20===e&&t<="18446744073709551615"))||(pt(t),t=ft(st,lt))),t;if("number"===e)return(t=bt(t))>=0&&yt(t)||(ht(t),t=ct(st,lt)),t}}(e),null!=e){if("string"==typeof e)be(e);if(null!=e)switch(Ve(t,r,0),typeof e){case"number":t=t.i,ht(e),Fe(t,st,lt);break;case"bigint":r=Ne(e,Ee,we),Fe(t.i,r.j,r.i);break;default:r=be(e),Fe(t.i,r.j,r.i)}}},Ze),Nr=Sr(Ar,Je);jr=new ir(function(t,e,r){if(null!=(e=br(Ut,e))&&e.length){r=Ge(t,r);for(let r=0;r<e.length;r++)De(t.i,e[r]);ze(t,r)}},Je);var Fr,Rr=Sr(Ar,Je),Dr=Sr(Ar,Je),Mr=Sr(Ir,Ke),Cr=Sr(Ir,Ke),Vr=Sr(Tr,Ye);Fr=new ir(function(t,e,r){if(null!=(e=br(Nt,e)))for(let s=0;s<e.length;s++){var n=t,o=r,a=e[s];null!=a&&We(n,o,i(a))}},Ye);var Gr,zr=Sr(Tr,Ye),Wr=Sr(Tr,Ye),Hr=function(t,e,r=qe){return new ir(e,r)}(0,function(t,e,r,n,i){if(Array.isArray(e)){for(let o=0;o<e.length;o++)Lr(t,e[o],r,n,i);1&(t=0|e[V])||W(e,1|t)}}),$r=new ir(Lr,qe),qr=Sr(Pr,Xe),Kr=Sr(Or,rr);Gr=new ir(function(t,e,r){if(null!=(e=br(Ut,e))&&e.length){r=Ge(t,r);for(let r=0;r<e.length;r++)De(t.i,e[r]);ze(t,r)}},rr);var Yr=Sr(Or,rr);function Jr(t){return function(){var e=new He;vr(this.m,e,fr(t)),Ce(e,e.i.end());var r=new Uint8Array(e.j),n=e.l,i=n.length,o=0;for(let t=0;t<i;t++){let e=n[t];r.set(e,o),o+=e.length}return e.l=[r],r}}function Xr(t,e){if(null!=e)if(Array.isArray(e))Xt(t,2,Dt(e,0,Mt));else{if(!("string"==typeof e||e instanceof A||w(e)))throw Error("invalid value in Any.value field: "+e+" expected a ByteString, a base64 encoded string, a Uint8Array or a jspb array");if(null!=e)if("string"==typeof e)e=e?new A(e,b):S();else if(e.constructor!==A){if(!w(e))throw Error();e=e.length?new A(new Uint8Array(e),b):S()}oe(t,2,e,S())}}var Qr,Zr=class extends nr{constructor(t){super(t)}},tn=[0,zr,Sr(function(t,e,r){if(null!=e){if(e instanceof nr){let n=e.ra;return void(n?(e=n(e),null!=e&&We(t,r,ye(e).buffer)):O(F,3))}if(Array.isArray(e))return void O(F,3)}null!=(e=null==e||"string"==typeof e||e instanceof A?e:void 0)&&We(t,r,ye(e).buffer)},er)],en=globalThis.trustedTypes;var rn=class{constructor(t){this.i=t}toString(){return this.i+""}};function nn(t){var e;return void 0===Qr&&(Qr=function(){var t=null;if(!en)return t;try{let e=t=>t;t=en.createPolicy("goog#html",{createHTML:e,createScript:e,createScriptURL:e})}catch(t){}return t}()),t=(e=Qr)?e.createScriptURL(t):t,new rn(t)}function on(t,...e){if(0===e.length)return nn(t[0]);var r=t[0];for(let n=0;n<e.length;n++)r+=encodeURIComponent(e[n])+t[n+1];return nn(r)}var an=[0,Kr,-1,Mr],sn={};sn[336783863]=[0,Vr,Mr,-1,Nr,[0,[1,2,3,4,5,6,7,8,9],$r,[0],$r,[0,Mr,Vr,Mr,Kr,-1,Gr,Vr,-1,[0,Mr,-1],Kr,Mr,-1,an],$r,[0,Vr,-2],$r,[0,Nr,Mr,1,Mr,-4],$r,[0,Nr,Kr,Mr,-1,jr,Kr,-1,Mr,-1],$r,[0,Vr,-2],$r,[0,Vr,Kr],$r,[0,3,Mr,-1,2,[0,[2],Nr,$r,[0,Sr(Pr,Xe)]],[0,Kr,Mr,Kr,Mr,Kr,Mr,Vr,-1],[0,[3,4],Vr,-1,$r,[0,Nr],$r,[0,Kr]],[0]],$r,an],[0,Vr],Mr,[0,[1,3],[2,4],$r,[0,jr],-1,$r,[0,Fr],-1,Hr,[0,Vr,-1]],Vr];var ln=class extends nr{constructor(t){super(t)}},un=[0,Ur,-1,Cr,-3,Ur,jr,zr,Rr,Ur,-1,Cr,Rr,Cr,-2,zr],hn=class extends nr{constructor(t){super(t,500)}N(t){return he(this,7,t)}},cn=[-1,{}],fn=[0,Vr,1,cn],dn=[0,Vr,Fr,cn];function pn(t,e){fe(t,1,hn,e)}var mn=class extends nr{constructor(t){super(t,500)}N(t){return he(this,1001,t)}};mn.prototype.j=Jr([-500,Hr,[-500,zr,-1,Fr,-3,[-2,sn,Mr],Hr,tn,Rr,-1,fn,dn,Hr,[0,zr,Cr],zr,un,Rr,Fr,987,Fr],4,Hr,[-500,Vr,-1,[-1,{}],998,Vr],Hr,[-500,Vr,Fr,-1,[-2,{},Mr],997,Fr,-1],Rr,Hr,[-500,Vr,Fr,cn,998,Fr],Fr,Rr,fn,dn,Hr,[0,zr,-1,cn],Fr,-2,un,zr,-1,Cr,[0,Cr,qr],978,cn,Hr,tn]);var gn,vn=class extends nr{constructor(t){super(t)}},_n=new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]);async function yn(t){if(t)return!0;if(void 0===gn)try{await WebAssembly.instantiate(_n),gn=!0}catch{gn=!1}return gn}async function wn(t,e,r){return{wasmLoaderPath:`${e}/${t}_${r=`wasm${r?"_module":""}${await yn(r)?"":"_nosimd"}_internal`}.js`,wasmBinaryPath:`${e}/${t}_${r}.wasm`}}var bn=class{};bn.forVisionTasks=function(t,e=!1){return wn("vision",t??on``,e)},bn.forTextTasks=function(t,e=!1){return wn("text",t??on``,e)},bn.forGenAiTasks=function(t,e=!1){return wn("genai",t??on``,e)},bn.forAudioTasks=function(t,e=!1){return wn("audio",t??on``,e)},bn.isSimdSupported=function(t=!1){return yn(t)};var Sn=class{close(){}};function En(t){function e(e,r){return new ReadableStream({start(){},async pull(n){i=i.then(async()=>{if(e.cache.length>0)n.enqueue(e.cache.shift());else{var{value:i,done:o}=await t.read();i&&(r.active&&r.cache.push(i),e.active&&n.enqueue(i)),o&&n.close()}}),await i},cancel(){e.active=!1,e.cache.length=0,r.active||t.cancel()}})}var r={cache:[],active:!0},n={cache:[],active:!0},i=Promise.resolve(),o=e(r,n);return r=e(n,r),[o.getReader(),r.getReader()]}async function An(t,e){for(var r=new Uint8Array(e),n=0;n<e;){let{value:i,done:o}=await t.read();if(i){let t=i.subarray(0,e-n);r.set(t,n),n+=t.length}if(o)throw Error(`Expected ${e} bytes, but stream ended after reading ${n} bytes.`)}return await t.cancel(),r}var In=[[0,async t=>{var e=(new TextEncoder).encode("TFL3").length;return t=await An(t,e+4),"TFL3"===new TextDecoder("utf-8").decode(t.subarray(4,e+4))}],[1,async t=>80===(t=await An(t,6))[4]&&75===t[5]]];function Tn(){var t=navigator;return"undefined"!=typeof OffscreenCanvas&&(!function(t=navigator){return(t=t.userAgent).includes("Safari")&&!t.includes("Chrome")}(t)||!!((t=t.userAgent.match(/Version\/([\d]+).*Safari/))&&t.length>=1&&Number(t[1])>=17))}async function Ln(t){if("function"!=typeof importScripts){let e=document.createElement("script");return e.src=t.toString(),e.crossOrigin="anonymous",new Promise((t,r)=>{e.addEventListener("load",()=>{t()},!1),e.addEventListener("error",t=>{r(t)},!1),document.body.appendChild(e)})}try{importScripts(t.toString())}catch(e){if(!(e instanceof TypeError))throw e;{let e=self.import;e?await e(t.toString()):await import(t.toString())}}}function Pn(t,e,r){t.o||console.error("No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target"),r(e=t.h.stringToNewUTF8(e)),t.h._free(e)}function On(t,e,r){t.o||console.error("No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target");var n=new Uint32Array(e.length);for(let r=0;r<e.length;r++)n[r]=t.h.stringToNewUTF8(e[r]);e=t.h._malloc(4*n.length),t.h.HEAPU32.set(n,e>>2),r(e);for(let e of n)t.h._free(e);t.h._free(e)}function jn(t,e,r){t.h.simpleListeners=t.h.simpleListeners||{},t.h.simpleListeners[e]=r}function kn(t,e,r){var n=[];t.h.simpleListeners=t.h.simpleListeners||{},t.h.simpleListeners[e]=(t,e,i)=>{e?(r(n,i),n=[]):n.push(t)}}var xn,Un=(xn=class{constructor(t,e){this.l=!0,this.h=t,this.i=null,this.j=0,this.o="function"==typeof this.h._addIntToInputStream,void 0!==e?this.h.canvas=e:Tn()?this.h.canvas=new OffscreenCanvas(1,1):(console.warn("OffscreenCanvas not supported and GraphRunner constructor glCanvas parameter is undefined. Creating backup canvas."),this.h.canvas=document.createElement("canvas"))}async initializeGraph(t){var e=await(await fetch(t)).arrayBuffer();t=!(t.endsWith(".pbtxt")||t.endsWith(".textproto")),this.setGraph(new Uint8Array(e),t)}setGraphFromString(t){this.setGraph((new TextEncoder).encode(t),!1)}setGraph(t,e){var r=t.length,n=this.h._malloc(r);this.h.HEAPU8.set(t,n),e?this.h._changeBinaryGraph(r,n):this.h._changeTextGraph(r,n),this.h._free(n)}configureAudio(t,e,r,n,i){this.h._configureAudio||console.warn('Attempting to use configureAudio without support for input audio. Is build dep ":gl_graph_runner_audio" missing?'),Pn(this,n||"input_audio",n=>{Pn(this,i=i||"audio_header",i=>{this.h._configureAudio(n,i,t,e??0,r)})})}setAutoResizeCanvas(t){this.l=t}setAutoRenderToScreen(t){this.h._setAutoRenderToScreen(t)}setGpuBufferVerticalFlip(t){this.h.gpuOriginForWebTexturesIsBottomLeft=t}attachErrorListener(t){this.h.errorListener=t}attachEmptyPacketListener(t,e){this.h.emptyPacketListeners=this.h.emptyPacketListeners||{},this.h.emptyPacketListeners[t]=e}addAudioToStream(t,e,r){this.addAudioToStreamWithShape(t,0,0,e,r)}addAudioToStreamWithShape(t,e,r,n,i){var o=4*t.length;this.j!==o&&(this.i&&this.h._free(this.i),this.i=this.h._malloc(o),this.j=o),this.h.HEAPF32.set(t,this.i/4),Pn(this,n,t=>{this.h._addAudioToInputStream(this.i,e,r,t,i)})}addGpuBufferToStream(t,e,r){Pn(this,e,e=>{if(!this.h.canvas)throw Error("No OpenGL canvas configured.");e?this.h._bindTextureToStream(e):this.h._bindTextureToCanvas();var n=this.h.canvas.getContext("webgl2")||this.h.canvas.getContext("webgl");if(!n)throw Error("Failed to obtain WebGL context from the provided canvas. `getContext()` should only be invoked with `webgl` or `webgl2`.");this.h.gpuOriginForWebTexturesIsBottomLeft&&n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,!0),n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,t),this.h.gpuOriginForWebTexturesIsBottomLeft&&n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,!1);var[i,o]=void 0!==t.videoWidth?[t.videoWidth,t.videoHeight]:void 0!==t.naturalWidth?[t.naturalWidth,t.naturalHeight]:void 0!==t.displayWidth?[t.displayWidth,t.displayHeight]:[t.width,t.height];!this.l||i===this.h.canvas.width&&o===this.h.canvas.height||(this.h.canvas.width=i,this.h.canvas.height=o);var[a,s]=[i,o];this.h._addBoundTextureToStream(e,a,s,r)})}addBoolToStream(t,e,r){Pn(this,e,e=>{this.h._addBoolToInputStream(t,e,r)})}addDoubleToStream(t,e,r){Pn(this,e,e=>{this.h._addDoubleToInputStream(t,e,r)})}addFloatToStream(t,e,r){Pn(this,e,e=>{this.h._addFloatToInputStream(t,e,r)})}addIntToStream(t,e,r){Pn(this,e,e=>{this.h._addIntToInputStream(t,e,r)})}addUintToStream(t,e,r){Pn(this,e,e=>{this.h._addUintToInputStream(t,e,r)})}addStringToStream(t,e,r){Pn(this,e,e=>{Pn(this,t,t=>{this.h._addStringToInputStream(t,e,r)})})}addStringRecordToStream(t,e,r){Pn(this,e,e=>{On(this,Object.keys(t),n=>{On(this,Object.values(t),i=>{this.h._addFlatHashMapToInputStream(n,i,Object.keys(t).length,e,r)})})})}addProtoToStream(t,e,r,n){Pn(this,r,r=>{Pn(this,e,e=>{var i=this.h._malloc(t.length);this.h.HEAPU8.set(t,i),this.h._addProtoToInputStream(i,t.length,e,r,n),this.h._free(i)})})}addEmptyPacketToStream(t,e){Pn(this,t,t=>{this.h._addEmptyPacketToInputStream(t,e)})}addBoolVectorToStream(t,e,r){Pn(this,e,e=>{var n=this.h._allocateBoolVector(t.length);if(!n)throw Error("Unable to allocate new bool vector on heap.");for(let e of t)this.h._addBoolVectorEntry(n,e);this.h._addBoolVectorToInputStream(n,e,r)})}addDoubleVectorToStream(t,e,r){Pn(this,e,e=>{var n=this.h._allocateDoubleVector(t.length);if(!n)throw Error("Unable to allocate new double vector on heap.");for(let e of t)this.h._addDoubleVectorEntry(n,e);this.h._addDoubleVectorToInputStream(n,e,r)})}addFloatVectorToStream(t,e,r){Pn(this,e,e=>{var n=this.h._allocateFloatVector(t.length);if(!n)throw Error("Unable to allocate new float vector on heap.");for(let e of t)this.h._addFloatVectorEntry(n,e);this.h._addFloatVectorToInputStream(n,e,r)})}addIntVectorToStream(t,e,r){Pn(this,e,e=>{var n=this.h._allocateIntVector(t.length);if(!n)throw Error("Unable to allocate new int vector on heap.");for(let e of t)this.h._addIntVectorEntry(n,e);this.h._addIntVectorToInputStream(n,e,r)})}addUintVectorToStream(t,e,r){Pn(this,e,e=>{var n=this.h._allocateUintVector(t.length);if(!n)throw Error("Unable to allocate new unsigned int vector on heap.");for(let e of t)this.h._addUintVectorEntry(n,e);this.h._addUintVectorToInputStream(n,e,r)})}addStringVectorToStream(t,e,r){Pn(this,e,e=>{var n=this.h._allocateStringVector(t.length);if(!n)throw Error("Unable to allocate new string vector on heap.");for(let e of t)Pn(this,e,t=>{this.h._addStringVectorEntry(n,t)});this.h._addStringVectorToInputStream(n,e,r)})}addBoolToInputSidePacket(t,e){Pn(this,e,e=>{this.h._addBoolToInputSidePacket(t,e)})}addDoubleToInputSidePacket(t,e){Pn(this,e,e=>{this.h._addDoubleToInputSidePacket(t,e)})}addFloatToInputSidePacket(t,e){Pn(this,e,e=>{this.h._addFloatToInputSidePacket(t,e)})}addIntToInputSidePacket(t,e){Pn(this,e,e=>{this.h._addIntToInputSidePacket(t,e)})}addUintToInputSidePacket(t,e){Pn(this,e,e=>{this.h._addUintToInputSidePacket(t,e)})}addStringToInputSidePacket(t,e){Pn(this,e,e=>{Pn(this,t,t=>{this.h._addStringToInputSidePacket(t,e)})})}addProtoToInputSidePacket(t,e,r){Pn(this,r,r=>{Pn(this,e,e=>{var n=this.h._malloc(t.length);this.h.HEAPU8.set(t,n),this.h._addProtoToInputSidePacket(n,t.length,e,r),this.h._free(n)})})}addBoolVectorToInputSidePacket(t,e){Pn(this,e,e=>{var r=this.h._allocateBoolVector(t.length);if(!r)throw Error("Unable to allocate new bool vector on heap.");for(let e of t)this.h._addBoolVectorEntry(r,e);this.h._addBoolVectorToInputSidePacket(r,e)})}addDoubleVectorToInputSidePacket(t,e){Pn(this,e,e=>{var r=this.h._allocateDoubleVector(t.length);if(!r)throw Error("Unable to allocate new double vector on heap.");for(let e of t)this.h._addDoubleVectorEntry(r,e);this.h._addDoubleVectorToInputSidePacket(r,e)})}addFloatVectorToInputSidePacket(t,e){Pn(this,e,e=>{var r=this.h._allocateFloatVector(t.length);if(!r)throw Error("Unable to allocate new float vector on heap.");for(let e of t)this.h._addFloatVectorEntry(r,e);this.h._addFloatVectorToInputSidePacket(r,e)})}addIntVectorToInputSidePacket(t,e){Pn(this,e,e=>{var r=this.h._allocateIntVector(t.length);if(!r)throw Error("Unable to allocate new int vector on heap.");for(let e of t)this.h._addIntVectorEntry(r,e);this.h._addIntVectorToInputSidePacket(r,e)})}addUintVectorToInputSidePacket(t,e){Pn(this,e,e=>{var r=this.h._allocateUintVector(t.length);if(!r)throw Error("Unable to allocate new unsigned int vector on heap.");for(let e of t)this.h._addUintVectorEntry(r,e);this.h._addUintVectorToInputSidePacket(r,e)})}addStringVectorToInputSidePacket(t,e){Pn(this,e,e=>{var r=this.h._allocateStringVector(t.length);if(!r)throw Error("Unable to allocate new string vector on heap.");for(let e of t)Pn(this,e,t=>{this.h._addStringVectorEntry(r,t)});this.h._addStringVectorToInputSidePacket(r,e)})}attachBoolListener(t,e){jn(this,t,e),Pn(this,t,t=>{this.h._attachBoolListener(t)})}attachBoolVectorListener(t,e){kn(this,t,e),Pn(this,t,t=>{this.h._attachBoolVectorListener(t)})}attachIntListener(t,e){jn(this,t,e),Pn(this,t,t=>{this.h._attachIntListener(t)})}attachIntVectorListener(t,e){kn(this,t,e),Pn(this,t,t=>{this.h._attachIntVectorListener(t)})}attachUintListener(t,e){jn(this,t,e),Pn(this,t,t=>{this.h._attachUintListener(t)})}attachUintVectorListener(t,e){kn(this,t,e),Pn(this,t,t=>{this.h._attachUintVectorListener(t)})}attachDoubleListener(t,e){jn(this,t,e),Pn(this,t,t=>{this.h._attachDoubleListener(t)})}attachDoubleVectorListener(t,e){kn(this,t,e),Pn(this,t,t=>{this.h._attachDoubleVectorListener(t)})}attachFloatListener(t,e){jn(this,t,e),Pn(this,t,t=>{this.h._attachFloatListener(t)})}attachFloatVectorListener(t,e){kn(this,t,e),Pn(this,t,t=>{this.h._attachFloatVectorListener(t)})}attachStringListener(t,e){jn(this,t,e),Pn(this,t,t=>{this.h._attachStringListener(t)})}attachStringVectorListener(t,e){kn(this,t,e),Pn(this,t,t=>{this.h._attachStringVectorListener(t)})}attachProtoListener(t,e,r){jn(this,t,e),Pn(this,t,t=>{this.h._attachProtoListener(t,r||!1)})}attachProtoVectorListener(t,e,r){kn(this,t,e),Pn(this,t,t=>{this.h._attachProtoVectorListener(t,r||!1)})}attachAudioListener(t,e,r){this.h._attachAudioListener||console.warn('Attempting to use attachAudioListener without support for output audio. Is build dep ":gl_graph_runner_audio_out" missing?'),jn(this,t,(t,r)=>{t=new Float32Array(t.buffer,t.byteOffset,t.length/4),e(t,r)}),Pn(this,t,t=>{this.h._attachAudioListener(t,r||!1)})}finishProcessing(){this.h._waitUntilIdle()}closeGraph(){this.h._closeGraph(),this.h.simpleListeners=void 0,this.h.emptyPacketListeners=void 0}},class extends xn{la(){this.h._registerModelResourcesGraphService()}});async function Bn(t,e){var r=await(async(t,e,r)=>{var n=wi;if(t&&await Ln(t),!self.ModuleFactory)throw Error("ModuleFactory not set.");if(e&&(await Ln(e),!self.ModuleFactory))throw Error("ModuleFactory not set.");return self.Module&&r&&((t=self.Module).locateFile=r.locateFile,r.mainScriptUrlOrBlob&&(t.mainScriptUrlOrBlob=r.mainScriptUrlOrBlob)),r=await self.ModuleFactory(self.Module||r),self.ModuleFactory=self.Module=void 0,new n(r,null)})(t.wasmLoaderPath,t.assetLoaderPath,{locateFile:e=>e.endsWith(".wasm")?t.wasmBinaryPath.toString():t.assetBinaryPath&&e.endsWith(".data")?t.assetBinaryPath.toString():e});return r.ka=new Sn,await r.N(e),r}async function Nn(t,e){return Bn(t,e)}function Fn(t){try{let e=t.J.length;if(1===e)throw Error(t.J[0].message);if(e>1)throw Error("Encountered multiple errors: "+t.J.map(t=>t.message).join(", "))}finally{t.J=[]}}function Rn(t,e){t.I=Math.max(t.I,e)}var Dn=class{constructor(t){this.j=t,this.J=[],this.I=0,this.j.setAutoRenderToScreen(!1)}setGraph(t,e){this.j.attachErrorListener((t,e)=>{this.J.push(Error(e))}),this.j.la(),this.j.setGraph(t,e),Fn(this)}finishProcessing(){this.j.finishProcessing(),Fn(this)}close(){this.ka?.close(),this.j.closeGraph()}};Dn.prototype.close=Dn.prototype.close;var Mn=class extends nr{constructor(t){super(t)}j(){return Ut(Yt(this,2))??0}};function Cn(t,e){he(t,1,e)}var Vn=class extends nr{constructor(t){super(t)}},Gn=[0,Yr,Rr,xr,-1,Nr];function zn(t,e,r,n){if(void 0!==t.data){var i=new Uint8Array(t.data.buffer,e,r);return 1===n&&function(t,e,r){t.i.push([e,r]),t.i.sort((t,e)=>t[0]-e[0]),e=0;for(let[n,i]of t.i){let t=i;(r=n)<=e&&(e=Math.max(e,r+t))}e===t.length&&(t.data=void 0)}(t,e,r),i}}Mn.prototype.l=Jr(Gn);class Wn{constructor(t){this.i=[],this.data=t,this.length=t.length}}function Hn(t,e){return new qn(async()=>{var{value:e,done:r}=await t.read();return r?void 0:e},e)}async function $n(t,e,r,n,i){if(2===i)return t.i=[],t.j=()=>Promise.resolve(void 0),setTimeout(()=>{t.l()},0),Promise.resolve(0);for(;t.size<r+n;){var o=await t.j();if(void 0===o)break;t.i.push(new Wn(o))}if(t.size<r+n)throw Error(`Data size is too small: ${t.size}, expected at least ${r+n}.`);o=e._malloc(n)>>>0;var a=0;for(let s=0;s<t.i.length;s++){let l=t.i[s];if(r>=l.length){r-=l.length;continue}let u=Math.min(n,l.length-r);if(void 0===(r=zn(l,r,u,i)))throw Error("Data has already been released.");if(e.HEAPU8.set(r,o+a),r=0,a+=u,0===(n-=u))break}if(0!==n)throw Error("Data not found.");return Promise.resolve(o)}var qn=class{constructor(t,e){this.i=[],this.j=t,this.l=e}get size(){var t=0;for(let e=0;e<this.i.length;e++)t+=this.i[e].length;return t}};function Kn(t){return"object"==typeof t&&null!=t&&"imageSource"in t}function Yn(t){return"object"==typeof t&&null!=t&&"audioSource"in t}async function Jn(t,e,r){t=new Qn(t,r);var n=0;for(e=e.getReader();;){let{value:r,done:i}=await e.read();if(i)break;t.set(r,n),n+=r.byteLength}if(r!==n)throw Xn(t),Error(`File could not be fully loaded to memory, so was not retained. Loaded ${n}/${r} bytes before failure`);return t}function Xn(t){if(t.i)try{t.h._free(t.j)}catch{}finally{t.i=!1}}var Qn=class{constructor(t,e){this.h=t,this.l=e,this.j=this.h._malloc(e)>>>0,this.o=this.h.HEAPU8,this.i=!!this.j}get offset(){if(!this.i)throw Error("WasmFileReference has been freed.");return this.j}get size(){if(!this.i)throw Error("WasmFileReference has been freed.");return this.l}set(t,e){this.o.set(t,this.j+(e??0))}},Zn=class extends nr{constructor(t){super(t)}};Zn.prototype.j=Jr([0,zr,2,Fr,Rr,Cr]);var ti=class extends nr{constructor(t){super(t)}},ei=class extends nr{constructor(t){super(t)}},ri=class extends nr{constructor(t){super(t)}},ni=class extends nr{constructor(t){super(t)}},ii=[0,Rr,-6,1,Rr,1,[0,Cr,Yr,-2],[0,Cr,xr],Yr,-2,[0,Cr,-1,Yr,xr,Kr,Nr,Mr,-2],1,Cr,Rr,Nr,-1,[0,Yr,Rr],Cr,-1,kr,Rr,-5,kr,-1,[0,Nr,kr],Nr,Mr,[0,Nr,-2],kr,[0,Rr],[0,Rr,-4],Mr,Nr,-2,Mr,-1,xr,kr,Mr,Rr,-1,[0,Nr,-2],Cr,Rr,Nr,Mr,[0,Nr,-1],Nr,Mr],oi=[0,zr,-2],ai=[0,[4,6],ii,Rr,1,Dr,Fr,Wr,Gr,oi,Nr,[0,[0,Rr,-1,Hr,[0,Rr,[0,Rr,-1],-1,[0,Yr,-1],Cr],Cr,-2,Rr,-1],[0,Rr,-1,Cr],ii,Cr,Rr,[0,Rr],-1],Vr,-3,[0,Rr,Cr],ii,[0,oi,-2],jr,Hr,[0,zr,-2],jr];ni.prototype.j=Jr([0,zr,8,[0,Cr,-6],1,Rr,1,Rr,[0,Hr,[0,zr,Br,-1,Yr],ai,Rr],[0,Rr,Cr,-3],1,Yr,1,ai,1,Rr,5,Yr,jr,1,Gn,Cr,Rr,Cr]);var si=class extends nr{constructor(t){super(t)}},li=class extends nr{constructor(t){super(t)}},ui=[2,4];li.prototype.j=Jr([0,ui,Rr,Wr,Rr,$r,[0,1,zr]]);var hi=function(t){return class extends t{constructor(){super(...arguments),this.P=!1,this.F=this.H=0}M(){if(this.P)throw Error("Cannot process because LLM inference engine is currently loading or processing.");this.P=!0}L(){this.P=!1}async createLlmInferenceEngine(t,e){this.M();try{let r=Hn(t,()=>{});await this.h.createLlmInferenceEngine(de(e,2)??512,le(e,Mn,3)?.j()??40,It(Yt(e,6))??!1??!1,de(e,7)??0,It(Yt(e,8))??!1??!1,(t,e,n)=>$n(r,this.h,t,e,n))}finally{this.L()}}async ba(t,e){this.M();try{await this.na(t),await this.h.ccall("CreateLlmInferenceEngineConverted","void",["number","number","boolean"],[de(e,2)??512,le(e,Mn,3)?.j()??40,It(Yt(e,6))??!1??!1],{async:!0})}finally{this.L()}}V(){this.M();try{let t=this.h;t.ccall("DeleteLlmInferenceEngine","void",[],[],{async:!1}),this.H&&(t._FreeSession(this.H),this.F===this.H&&(this.F=0),this.H=0),this.F&&(t._FreeSession(this.F),this.F=0)}finally{this.L()}}async R(t,e,r){this.M();try{let n=[],i=this.h;i._userProgressListener=(t,e)=>{t&&n.push(t),r&&r(t,e)};let o=e.l(),a=o.length,s=this.h._malloc(a);this.h.HEAPU8.set(o,s);let l=t.some(Yn),u=t.some(Kn);i.ccallNum=i.ccall;let h=await i.ccallNum("MakeSessionForPredict","number",["number","number","boolean","boolean"],[s,a,u,l],{async:!0});e=[];for(let r of t)if("string"==typeof r)Pn(this,r,t=>{i._AddTextQueryChunk(h,t)});else if(Kn(r)){let{image:t,width:n,height:o}=await this.fa(r.imageSource),a="undefined"!=typeof OffscreenCanvas?new OffscreenCanvas(n,o):document.createElement("canvas");a.width=n,a.height=o;let s=a.getContext("2d");s.drawImage(t,0,0);let l=s.getImageData(0,0,n,o),u=this.h._malloc(l.width*l.height*4);this.h.HEAPU8.set(l.data,u),i._AddImageQueryChunk(h,u,l.width,l.height),e.push(u)}else{if(!Yn(r))throw Error("Unsupported PromptPart type in query.");{let t=await this.ea(r.audioSource),n=this.h._malloc(t.audioSamples.byteLength);this.h.HEAPF32.set(t.audioSamples,n/4),i._AddAudioQueryChunk(h,t.audioSampleRateHz,n,t.audioSamples.length),e.push(n)}}await i.ccall("PredictSession","void",["number"],[h],{async:!0}),t=!0,u&&0===this.F&&(this.F=h,t=!1),l&&0===this.H&&(this.H=h,t=!1),t&&i._FreeSession(h);for(let t of e)this.h._free(t);return e.length=0,r&&r("",!0),this.h._free(s),i._userProgressListener=void 0,n.join("")}finally{this.L()}}S(t){this.M();var e=0,r="";for(let n of t)"string"==typeof n?r+=n:Kn(n)?e+=260:Yn(n)&&console.warn("sizeInTokens is not yet implemented for audio; audio tokens will not be counted");try{let t;return Pn(this,r,e=>{t=this.h._GetSizeInTokens(e)}),e+t}finally{this.L()}}async na(t){t=await async function(t){for(var e=[],r=0;;){let{done:n,value:i}=await t.read();if(n)break;e.push(i),r+=i.length}if(0===e.length)return new Uint8Array(0);if(1===e.length)return e[0];t=new Uint8Array(r),r=0;for(let n of e)t.set(n,r),r+=n.length;return t}(t);try{this.h.FS_unlink("llm.task")}catch{}this.h.FS_createDataFile("/","llm.task",t,!0,!1,!1)}async fa(t){if("string"==typeof t){let e=new Image;e.src=t,e.crossOrigin="Anonymous";try{await e.decode()}catch{throw Error(`Image from URL ${t} failed to load`)}return{image:e,width:e.naturalWidth,height:e.naturalHeight}}if(t instanceof HTMLImageElement){try{await t.decode()}catch{throw Error("Image from HTMLImageElement failed to load")}return{image:t,width:t.naturalWidth,height:t.naturalHeight}}return t instanceof HTMLVideoElement?{image:t,width:t.videoWidth,height:t.videoHeight}:t instanceof VideoFrame?{image:t,width:t.displayWidth,height:t.displayHeight}:{image:t,width:t.width,height:t.height}}async ea(t){if("string"==typeof t){let e=await fetch(t);if(!e.ok)throw Error(`Audio fetch for ${t} had error: ${e.status}`);return t=await e.arrayBuffer(),{audioSamples:(t=await new AudioContext({sampleRate:16e3}).decodeAudioData(t)).getChannelData(0),audioSampleRateHz:t.sampleRate}}return"object"==typeof t&&null!=t&&"audioSamples"in t&&"audioSampleRateHz"in t?t:{audioSamples:t.getChannelData(0),audioSampleRateHz:t.sampleRate}}}}(function(t){var e=class extends t{static async ma(t,r){r||=await e.X();var n=[];for(let e of t?.requiredFeatures??[])r.features.has(e)?n.push(e):console.warn(`WebGPU feature ${e} is not supported.`);t={...t,requiredFeatures:n};try{var i=await r.requestDevice(t)}catch(t){throw console.error("Unable to initialize WebGPU with the requested features."),t}return(t=i).adapterInfo||(t.adapterInfo=r.info),i}static async X(t){if(!(t=await navigator.gpu.requestAdapter(t)))throw Error("Unable to request adapter from navigator.gpu; Ensure WebGPU is enabled.");return t}ga(t){if(e)"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement&&(e.id="canvas_webgpu");else var e=new OffscreenCanvas(1,1);e.getContext("webgpu").configure({device:t,format:navigator.gpu.getPreferredCanvasFormat()}),this.h.preinitializedWebGPUDevice=t}aa(){return this.h.ccall("closeGraph","void",[],[],{async:!0})}};return e}(function(t){return class extends t{addStreamingReaderToInputSidePacket(t,e){this.h.addStreamingReaderToInputSidePacket((e,r,n)=>$n(t,this.h,e,r,n),e)}}}(function(t){return class extends t{Y(t,e){Pn(this,"lora_model_ref_in",r=>{this.h._addRawDataSpanToInputStream(t.offset,t.size,r,e)})}}}(class extends Un{}))));class ci extends hi{}var fi=class{constructor(t){this.j=t,this.i=di,di++}},di=1;class pi{constructor(){var t,e;this.promise=new Promise((r,n)=>{t=r,e=n}),this.resolve=t,this.reject=e}}function mi(t){return 1===t?1:t+t%2}async function gi(){var t=await ci.X({powerPreference:"high-performance"}),e=t.limits.maxBufferSize,r=t.limits.maxStorageBufferBindingSize;return e<524550144&&console.warn(`This WebGPU device is unable to execute most LLM tasks, because the required maxBufferSize is usually at least 524550144, but your device only supports maxBufferSize of ${e}`),r<524550144&&console.warn(`The WebGPU device is unable to execute LLM tasks, because the required maxStorageBufferBindingSize is usually at least 524550144, but your device only supports maxStorageBufferBindingSize of ${r}`),e={requiredFeatures:["shader-f16"],requiredLimits:{maxStorageBufferBindingSize:r,maxBufferSize:e,maxStorageBuffersPerShaderStage:t.limits.maxStorageBuffersPerShaderStage}},t.features.has("subgroups")&&(console.warn("Experimental Chromium WGSL subgroup support detected. Enabling this feature in the inference engine."),e.requiredFeatures=["shader-f16","subgroups"]),ci.ma(e,t)}function vi(t){if(t.D.length>0){let e=[...t.D];if(t.D.length=0,!t.o)throw e;t.o.reject(e),t.o=void 0}}function _i(t){var e=function(t){var e=new mn;ve(e,10,"text_in"),ve(e,10,"token_cost_in"),ve(e,10,"lora_model_id_to_apply_in"),ve(e,10,"lora_model_ref_in"),ve(e,10,"lora_model_id_to_load_in"),ve(e,16,"streaming_reader"),ve(e,15,"text_out"),ve(e,15,"text_end"),ve(e,15,"token_cost_out");var r=new hn;ge(r,2,"TokenizerInputBuildCalculator"),ve(r,3,"PROMPT:text_in"),ve(r,3,"LORA_ID:lora_model_id_to_apply_in"),ve(r,4,"prompt"),pn(e,r),r=new hn,ge(r,2,"ModelDataCalculator"),ve(r,6,"MODEL_DATA:__side_packet_1"),ve(r,6,"MODEL_TYPE:model_type"),ve(r,5,"READ_DATA_FN:streaming_reader"),ve(r,3,"LORA_MODEL_SPAN:lora_model_ref_in"),ve(r,3,"LORA_MODEL_ID:lora_model_id_to_load_in"),ve(r,4,"LORA_DATA:lora_model_data"),pn(e,r),r=new hn,ge(r,2,"Gpt2UnicodeMappingCalculator"),ve(r,5,"MODEL_TYPE:model_type"),ve(r,6,"BYTES_TO_UNICODE_MAPPING:tokenizer_mapping"),pn(e,r),r=new Zr,ge(r,1,"type.googleapis.com/odml.infra.proto.TokenizerCalculatorOptions");var n=new li,i=de(t.i,2);pe(n,1,i),ge(i=new si,2,"spm_vocab_model"),i=ue(i);t:{$t(n);var o=n.m,a=0|o[V];if(null==i){var s=ae(o);if(4!==se(s,o,a))break t;s.set(ui,0)}else{let t=ae(s=o),e=se(t,s,a);4!==e&&(e&&(a=Qt(s,a,e)),t.set(ui,4))}Qt(o,a,4,i)}return i&&!$(i)&&qt(n.m),pe(n,3,2),Xr(r,n.j()),ge(n=new hn,2,"TokenizerCalculator"),fe(n,8,Zr,r),ve(n,5,"MODEL_DATA:__side_packet_1"),ve(n,3,"PROMPT_AND_INPUT_OPTIONS:prompt"),ve(n,5,"BYTES_TO_UNICODE_MAPPING:tokenizer_mapping"),ve(n,6,"PROCESSOR_GETTER:__input_side_1"),ve(n,4,"IDS_AND_INPUT_OPTIONS:__stream_0"),pn(e,n),r=new Zr,ge(r,1,"type.googleapis.com/odml.infra.proto.LlmGpuCalculatorOptions"),pe(n=new ni,12,3),ge(n,1,"llm.tflite"),pe(n,14,0),i=mi(de(t.i,5)),pe(n,22,i),i=le(t.i,Mn,3),he(n,31,i),oe(i=new ti,1,At(!0),!1),null!=It(Yt(t.i,6))&&(It(Yt(t.i,6))??!1)&&oe(i,1,At(!1),!1),oe(i,2,At(!0),!1),oe(i,5,At(!0),!1),he(n,10,i),i=Zt(t.i,4,Ut,void 0===K?2:4),ie(n,29,i),i=new ri,pe(o=new ei,1,1),s=de(t.i,2),pe(o,2,s),he(i,1,o),he(n,20,i),Xr(r,n.j()),ge(n=new hn,2,"LlmGpuCalculator"),fe(n,8,Zr,r),ve(n,3,"IDS_AND_INPUT_OPTIONS:__stream_0"),ve(n,3,"FINISH:finish"),ve(n,3,"LORA_DATA:lora_model_data"),ve(n,5,"MODEL_DATA:__side_packet_1"),ve(n,4,"DECODED_IDS:__stream_3"),ve(n,4,"OUTPUT_END:__stream_4"),r=new ln,ge(r,1,"FINISH"),oe(r,2,At(!0),!1),fe(n,13,ln,r),pn(e,n),r=new hn,ge(r,2,"IsPacketPresentCalculator"),ve(r,3,"__stream_4"),ve(r,4,"text_end"),pn(e,r),r=new Zr,ge(r,1,"type.googleapis.com/odml.infra.proto.DetokenizerCalculatorOptions"),n=new Zn,t=mi(de(t.i,5)),pe(n,5,t),ve(n,4,"<eos>"),ve(n,4,"<|endoftext|>"),Xr(r,n.j()),t=new hn,ge(t,2,"DetokenizerCalculator"),fe(t,8,Zr,r),ve(t,3,"IDS_AND_INPUT_OPTIONS:__stream_3"),ve(t,5,"PROCESSOR_GETTER:__input_side_1"),ve(t,5,"BYTES_TO_UNICODE_MAPPING:tokenizer_mapping"),ve(t,5,"MODEL_DATA:__side_packet_1"),ve(t,4,"FINISH_AND_INPUT_OPTIONS:finish"),ve(t,4,"WORDS:text_out"),pn(e,t),t=new hn,ge(t,2,"TokenCostCalculator"),ve(t,3,"PROMPT:token_cost_in"),ve(t,5,"PROCESSOR_GETTER:__input_side_1"),ve(t,5,"BYTES_TO_UNICODE_MAPPING:tokenizer_mapping"),ve(t,4,"NUM_TOKENS:token_cost_out"),pn(e,t),e}(t);t.j.attachStringVectorListener("text_out",(e,r)=>{e=function(t,e){return null==t||0===t.length?[]:t.map(t=>(t=(t=t.replaceAll("▁"," ")).replaceAll("<0x0A>","\n"),e&&(t=t.trimStart()),t.split("\\[eod\\]",1)[0]))}(e,0===t.G.length),e.forEach((e,r)=>{r<de(t.i,5)&&t.G[r].push(e)}),t.A&&0===t.D.length&&(t.B?(e.length>de(t.i,5)&&e.pop(),t.A(e,!1)):t.A(e[0],!1)),Rn(t,r)}),t.j.attachEmptyPacketListener("text_out",e=>{Rn(t,e)}),t.j.attachBoolListener("text_end",(e,r)=>{Rn(t,r);try{vi(t)}catch(e){throw t.l=!1,e}if(t.o&&(t.o.resolve(t.G.map(t=>t.join(""))),t.o=void 0),t.A)if(t.B){for(e=[],r=0;r<de(t.i,5);r++)e.push("");t.A(e,!0)}else t.A("",!0);t.l=!1,t.B=void 0}),t.j.attachEmptyPacketListener("text_end",e=>{t.l=!1,t.B=void 0,Rn(t,e),vi(t),t.o&&(t.o.resolve(t.G.map(t=>t.join(""))),t.o=void 0)}),t.j.attachIntListener("token_cost_out",(e,r)=>{t.T=e,Rn(t,r)}),t.U&&t.j.addStreamingReaderToInputSidePacket(t.U,"streaming_reader");var r=e.j();return t.C?.removeEventListener("uncapturederror",t.K),t.j.aa().then(()=>{t.C?.addEventListener("uncapturederror",t.K),t.D.length=0,t.setGraph(new Uint8Array(r),!0),t.finishProcessing()})}function yi(t,e,r,n){if(t.A="function"==typeof r?r:n,(n=(e=Array.isArray(e)?e:[e]).filter(t=>Kn(t)).length)>0&&(null==Bt(Yt(t.i,7))||de(t.i,7)<n))throw Error(`maxNumImages is set to ${null!=Bt(Yt(t.i,7))?de(t.i,7):0}, but the query included ${n} images.`);if((n=e.filter(t=>Yn(t)).length)>0&&(null==It(Yt(t.i,8))||!It(Yt(t.i,8))))throw Error(`supportAudio was not enabled, but the query included ${n} audio chunks.`);if(t.v){if(t.B&&de(t.i,5)>1)throw Error("Multi-response generation is not supported for converted LLM models (.task format) yet, nor is it supported for multimodality. Please use the .bin format without multimodality or request only one response.");if(r instanceof fi)throw Error("LoRA is not supported for converted LLM models (.task format) yet, nor is it supported for multimodality. Please use the .bin format without multimodality to use LoRA.");return t.j.h.LLM_CANCEL_FLAG=void 0,t.j.R(e,t.u,(e,r)=>{0===t.D.length&&t.A&&(t.B?t.A([e],r):t.A(e,r))}).then(e=>(vi(t),[e]))}if(t.l)throw Error("Previous invocation or loading is still ongoing.");for(t.l=!0,t.j.h.LLM_CANCEL_FLAG=void 0,t.G.length=0,n=0;n<de(t.i,5);n++)t.G[n]=[];if(n=t.I+1,t.j.addStringToStream(e.join(""),"text_in",n),r instanceof fi){if(r.j!==t)throw t.l=!1,t.B=void 0,Error("The LoRA model was not loaded by this LLM Inference task.");t.j.addUintToStream(r.i,"lora_model_id_to_apply_in",n)}else t.j.addEmptyPacketToStream("lora_model_id_to_apply_in",n);return t.finishProcessing(),t.o=new pi,t.o.promise}var wi=class extends Dn{constructor(t,e){if(super(new ci(t,e)),this.G=[],this.O=this.v=this.l=!1,this.D=[],this.K=t=>{if((t=t.error).message.match(/exceeds the max buffer size limit/))throw Error(`Failed to run this LLM model because it requires a buffer size that exceeds the maximum size your device supports, but you could try a smaller LLM model or different device.\nWebGPU throws: "${t.message}"`);if(t.message.match(/is larger than the maximum storage buffer binding size/))throw Error(`Failed to run this LLM model because it requires a storage buffer binding size that exceeds the maximum size your device supports, but you could try a smaller LLM model or different device.\nWebGPU throws: "${t.message}"`);this.D.push(t)},this.i=new Vn,Cn(this.i,new vn),this.u=new Mn,he(this.i,3,this.u),me(this.i,2,512),t=this.u,!wt(2))throw P("enum");oe(t,1,2,0),pe(this.u,2,40),oe(this.u,3,St(1),0),Xt(this.u,5,xt(0)),oe(this.u,4,St(.8),0),me(this.i,5,1)}async N(t){if(this.l)throw Error("Cannot set options while loading or processing.");if(t.baseOptions?.modelAssetPath&&t.baseOptions?.modelAssetBuffer)throw Error("Cannot set both baseOptions.modelAssetPath and baseOptions.modelAssetBuffer");var e,r=new Promise(t=>{e=t});if(t.baseOptions?.modelAssetPath){var n=await fetch(t.baseOptions.modelAssetPath.toString());if(!n.ok)throw Error(`Failed to fetch model: ${t.baseOptions.modelAssetPath} (${n.status})`);if(!n.body)throw Error(`Failed to fetch model: ${t.baseOptions.modelAssetPath} (no body)`);n=n.body.getReader()}else t.baseOptions?.modelAssetBuffer instanceof Uint8Array?n=function(t){return new ReadableStream({start(){},async pull(e){e.enqueue(t),e.close()}})}(t.baseOptions.modelAssetBuffer).getReader():t.baseOptions?.modelAssetBuffer instanceof ReadableStreamDefaultReader?(n=t.baseOptions.modelAssetBuffer,t.baseOptions.modelAssetBuffer=void 0):e();if(!n)throw Error("No model asset provided.");{let[r,a]=En(n);this.O=1===await async function(t){var e,r=[];for(let[i,o]of In){let a=i;var n=o;[t,e]=En(t),n=await n(e),await e.cancel(),n&&r.push(a)}if(await t.cancel(),0===r.length)throw Error("No model format matched.");if(1===r.length)return r[0];throw Error(`Multiple model formats matched: ${r}`)}(a);var i="maxNumImages"in t&&t.maxNumImages?t.maxNumImages:0;me(this.i,7,i);var o="supportAudio"in t&&!!t.supportAudio;Xt(this.i,8,At(o)),this.O||i>0||o?(this.v=!0,n=r):(this.v=!1,this.U=Hn(r,e))}if(t.baseOptions?.gpuOptions?.device&&(this.C&&this.C.removeEventListener("uncapturederror",this.K),this.C=t.baseOptions.gpuOptions.device,this.j.ga(this.C),this.C.addEventListener("uncapturederror",this.K)),"maxTokens"in t&&me(this.i,2,t.maxTokens??512),"topK"in t&&pe(this.u,2,t.topK??40),"temperature"in t&&oe(this.u,4,St(t.temperature??.8),0),"randomSeed"in t&&Xt(this.u,5,xt(t.randomSeed??0)),"loraRanks"in t&&function(t,e){ie(t,4,e)}(this.i,t.loraRanks??[]),"numResponses"in t){if((i=t.numResponses??1)<1)throw Error("'numResponses' must be at least 1.");if(this.v&&i>1)throw Error("'numResponses > 1' is not supported for converted LLM models yet, and is also not supported with multimodality.");me(this.i,5,i),o=le(this.i,Mn,3),i>1&&o&&(o.j()<=1||(Yt(o,4,Et)??0)<=0)&&console.warn("To generate multiple responses, it is expected topK > 1 and temperature > 0; otherwise, all the generated responses may be the same.")}return"forceF32"in t&&void 0!==t.forceF32&&Xt(this.i,6,At(t.forceF32)),this.v?(this.j.V(),this.O?this.j.ba(n,this.i).then(()=>{vi(this)}):this.j.createLlmInferenceEngine(n,this.i).then(()=>{vi(this)})):(this.l=!0,t=_i(this).then(()=>{}),Promise.all([r,t]).then(()=>{this.l=!1,vi(this)}))}get baseOptions(){return le(this.i,vn,1)}set baseOptions(t){Cn(this.i,t)}get isIdle(){return!this.l&&!this.o}R(t,e,r){return de(this.i,5)>1&&console.warn("'numResponses' is set larger than 1 and this function only returns the first response, so we recommend either using 'generateResponses()' to obtain multiple responses, or else setting 'numResponses' to 1 for better performance."),this.B=!1,yi(this,t,e,r).then(t=>t[0])}da(t,e,r){return this.B=!0,yi(this,t,e,r)}S(t){if(t=Array.isArray(t)?t:[t],this.v)return this.j.S(t);if(this.l)throw Error("Previous invocation or loading is still ongoing.");if(t.some(Kn))throw Error("sizeInTokens requires maxNumImages > 0 for images.");if(t.some(Yn))throw Error("sizeInTokens requires supportAudio for audio.");return t=t.join(""),this.l=!0,this.T=void 0,this.j.addStringToStream(t,"token_cost_in",this.I+1),this.finishProcessing(),this.l=!1,this.T}Z(){var t=this.j.h;(this.v||this.l)&&(t.LLM_CANCEL_FLAG=1)}async ja(t){if(this.v)throw Error("LoRA is not supported for converted LLM models (.task format) yet, nor is it supported for multimodality. Please use the old format (.bin) without multimodality to use LoRA.");if(this.l)throw Error("Cannot load LoRA model while loading or processing.");if(this.l=!0,t instanceof Uint8Array){var e=new Qn(this.j.h,t.length);e.set(t),t=e}else t=t instanceof Blob?await async function(t,e){return Jn(t,e.stream(),e.size)}(this.j.h,t):await async function(t,e){e=await fetch(e.toString());var r=Number(e.headers.get("content-length"));if(!e.body)throw Error("Response body is not available.");if(!r)throw Error("File size is 0.");return Jn(t,e.body,r)}(this.j.h,t);e=new fi(this);var r=this.I+1;return this.j.Y(t,r),this.j.addUintToStream(e.i,"lora_model_id_to_load_in",r),this.finishProcessing(),Xn(t),Rn(this,r),this.l=!1,e}close(){this.v&&this.j.V(),this.C?.removeEventListener("uncapturederror",this.K),super.close()}};wi.prototype.loadLoraModel=wi.prototype.ja,wi.prototype.cancelProcessing=wi.prototype.Z,wi.prototype.sizeInTokens=wi.prototype.S,wi.prototype.generateResponses=wi.prototype.da,wi.prototype.generateResponse=wi.prototype.R,wi.prototype.setOptions=wi.prototype.N,wi.createWebGpuDevice=gi,wi.createFromModelPath=async function(t,e){return Nn(t,e={baseOptions:{gpuOptions:{device:await gi()},modelAssetPath:e}})},wi.createFromModelBuffer=async function(t,e){return Nn(t,e={baseOptions:{gpuOptions:{device:await gi()},modelAssetBuffer:e}})},wi.createFromOptions=async function(t,e){if(!e.baseOptions?.gpuOptions?.device){let t=await gi();e.baseOptions=e.baseOptions??{},e.baseOptions.gpuOptions=e?.baseOptions?.gpuOptions??{},e.baseOptions.gpuOptions.device=t}return Nn(t,e)},exports.FilesetResolver=bn,exports.LlmInference=wi,exports.TaskRunner=Dn;
1
+ "use strict";var t="undefined"!=typeof self?self:{};function e(e,r){t:{for(var i=["CLOSURE_FLAGS"],n=t,o=0;o<i.length;o++)if(null==(n=n[i[o]])){i=null;break t}i=n}return null!=(e=i&&i[e])?e:r}var r,i="undefined"!=typeof TextEncoder;function n(t){if(i)t=(r||=new TextEncoder).encode(t);else{let r=0,i=new Uint8Array(3*t.length);for(let n=0;n<t.length;n++){var e=t.charCodeAt(n);if(e<128)i[r++]=e;else{if(e<2048)i[r++]=e>>6|192;else{if(e>=55296&&e<=57343){if(e<=56319&&n<t.length){let o=t.charCodeAt(++n);if(o>=56320&&o<=57343){e=1024*(e-55296)+o-56320+65536,i[r++]=e>>18|240,i[r++]=e>>12&63|128,i[r++]=e>>6&63|128,i[r++]=63&e|128;continue}n--}e=65533}i[r++]=e>>12|224,i[r++]=e>>6&63|128}i[r++]=63&e|128}}t=r===i.length?i:i.subarray(0,r)}return t}var o=e(610401301,!1),a=e(748402147,!0);function s(){var e=t.navigator;return e&&(e=e.userAgent)?e:""}var l,u=t.navigator;l=u&&u.userAgentData||null;var h={},c=null;function f(t){var e=t.length,r=3*e/4;r%3?r=Math.floor(r):-1!="=.".indexOf(t[e-1])&&(r=-1!="=.".indexOf(t[e-2])?r-2:r-1);var i=new Uint8Array(r),n=0;return function(t,e){function r(e){for(;i<t.length;){let e=t.charAt(i++),r=c[e];if(null!=r)return r;if(!/^[\s\xa0]*$/.test(e))throw Error("Unknown base64 encoding at char: "+e)}return e}d();for(var i=0;;){let t=r(-1),i=r(0),n=r(64),o=r(64);if(64===o&&-1===t)break;e(t<<2|i>>4),64!=n&&(e(i<<4&240|n>>2),64!=o&&e(n<<6&192|o))}}(t,function(t){i[n++]=t}),n!==r?i.subarray(0,n):i}function d(){if(!c){c={};var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),e=["+/=","+/","-_=","-_.","-_"];for(let r=0;r<5;r++){let i=t.concat(e[r].split(""));h[r]=i;for(let t=0;t<i.length;t++){let e=i[t];void 0===c[e]&&(c[e]=t)}}}}var p="undefined"!=typeof Uint8Array,m=!(!(o&&l&&l.brands.length>0)&&(-1!=s().indexOf("Trident")||-1!=s().indexOf("MSIE")))&&"function"==typeof btoa,g=/[-_.]/g,v={"-":"+",_:"/",".":"="};function y(t){return v[t]||""}function _(t){if(!m)return f(t);t=g.test(t)?t.replace(g,y):t,t=atob(t);var e=new Uint8Array(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}function w(t){return p&&null!=t&&t instanceof Uint8Array}var b={};function S(){return E||=new A(null,b)}var E,A=class{constructor(t,e){if(I(e),this.i=t,null!=t&&0===t.length)throw Error("ByteString should be constructed with non-empty values")}};function I(t){if(t!==b)throw Error("illegal external caller")}function T(t,e){t.__closure__error__context__984382||(t.__closure__error__context__984382={}),t.__closure__error__context__984382.severity=e}var L=void 0;function P(t){return T(t=Error(t),"warning"),t}function O(e,r){if(null!=e){var i=L??={},n=i[e]||0;n>=r||(i[e]=n+1,T(e=Error(),"incident"),function(e){t.setTimeout(()=>{throw e},0)}(e))}}function j(){return"function"==typeof BigInt}var k="function"==typeof Symbol&&"symbol"==typeof Symbol();function x(t,e,r=!1){return"function"==typeof Symbol&&"symbol"==typeof Symbol()?r&&Symbol.for&&t?Symbol.for(t):null!=t?Symbol(t):Symbol():e}var U,B=x("jas",void 0,!0),N=x(void 0,"1oa"),F=x(void 0,"0ubsb"),R=x(void 0,"0actk"),M=x("m_m","qa",!0),D={ha:{value:0,configurable:!0,writable:!0,enumerable:!1}},C=Object.defineProperties,V=k?B:"ha",G=[];function z(t,e){k||V in t||C(t,D),t[V]|=e}function H(t,e){k||V in t||C(t,D),t[V]=e}H(G,7),U=Object.freeze(G);var W={};function $(t,e){return void 0===e?t.i!==q&&!!(2&t.m[V]):!!(2&e)&&t.i!==q}var q={},K=Object.freeze({});function Y(t){return t.pa=!0,t}var J=Y(t=>"number"==typeof t),X=Y(t=>"string"==typeof t),Q=Y(t=>"boolean"==typeof t),Z="function"==typeof t.BigInt&&"bigint"==typeof t.BigInt(0),tt=Y(t=>Z?t>=rt&&t<=nt:"-"===t[0]?ot(t,et):ot(t,it)),et=Number.MIN_SAFE_INTEGER.toString(),rt=Z?BigInt(Number.MIN_SAFE_INTEGER):void 0,it=Number.MAX_SAFE_INTEGER.toString(),nt=Z?BigInt(Number.MAX_SAFE_INTEGER):void 0;function ot(t,e){if(t.length>e.length)return!1;if(t.length<e.length||t===e)return!0;for(let r=0;r<t.length;r++){let i=t[r],n=e[r];if(i>n)return!1;if(i<n)return!0}}var at,st=0,lt=0;function ut(t){var e=t>>>0;st=e,lt=(t-e)/4294967296>>>0}function ht(t){if(t<0){ut(-t);let[e,r]=mt(st,lt);st=e>>>0,lt=r>>>0}else ut(t)}function ct(t,e){var r=4294967296*e+(t>>>0);return Number.isSafeInteger(r)?r:ft(t,e)}function ft(t,e){if(t>>>=0,(e>>>=0)<=2097151)var r=""+(4294967296*e+t);else j()?r=""+(BigInt(e)<<BigInt(32)|BigInt(t)):(t=(16777215&t)+6777216*(r=16777215&(t>>>24|e<<8))+6710656*(e=e>>16&65535),r+=8147497*e,e*=2,t>=1e7&&(r+=t/1e7>>>0,t%=1e7),r>=1e7&&(e+=r/1e7>>>0,r%=1e7),r=e+dt(r)+dt(t));return r}function dt(t){return t=String(t),"0000000".slice(t.length)+t}function pt(t){if(t.length<16)ht(Number(t));else if(j())t=BigInt(t),st=Number(t&BigInt(4294967295))>>>0,lt=Number(t>>BigInt(32)&BigInt(4294967295));else{let e=+("-"===t[0]);lt=st=0;let r=t.length;for(let i=e,n=(r-e)%6+e;n<=r;i=n,n+=6){let e=Number(t.slice(i,n));lt*=1e6,(st=1e6*st+e)>=4294967296&&(lt+=Math.trunc(st/4294967296),lt>>>=0,st>>>=0)}if(e){let[t,e]=mt(st,lt);st=t,lt=e}}}function mt(t,e){return e=~e,t?t=1+~t:e+=1,[t,e]}function gt(t){return Array.prototype.slice.call(t)}var vt="function"==typeof BigInt?BigInt.asIntN:void 0,yt="function"==typeof BigInt?BigInt.asUintN:void 0,_t=Number.isSafeInteger,wt=Number.isFinite,bt=Math.trunc;function St(t){if(null!=t&&"number"!=typeof t)throw Error(`Value of float/double field must be a number, found ${typeof t}: ${t}`);return t}function Et(t){return null==t||"number"==typeof t?t:"NaN"===t||"Infinity"===t||"-Infinity"===t?Number(t):void 0}function At(t){if("boolean"!=typeof t){var e=typeof t;throw Error(`Expected boolean but got ${"object"!=e?e:t?Array.isArray(t)?"array":e:"null"}: ${t}`)}return t}function It(t){return null==t||"boolean"==typeof t?t:"number"==typeof t?!!t:void 0}var Tt,Lt,Pt,Ot=/^-?([1-9][0-9]*|0)(\.[0-9]+)?$/;function jt(t){switch(typeof t){case"bigint":return!0;case"number":return wt(t);case"string":return Ot.test(t);default:return!1}}function kt(t){if("number"!=typeof t)throw P("int32");if(!wt(t))throw P("int32");return 0|t}function xt(t){return null==t?t:kt(t)}function Ut(t){if(null==t)return t;if("string"==typeof t&&t)t=+t;else if("number"!=typeof t)return;return wt(t)?0|t:void 0}function Bt(t){if(null==t)return t;if("string"==typeof t&&t)t=+t;else if("number"!=typeof t)return;return wt(t)?t>>>0:void 0}function Nt(t){return null==t||"string"==typeof t?t:void 0}function Ft(t,e,r){if(null!=t&&t[M]===W)return t;if(Array.isArray(t)){var i=0|t[V];return(r=i|32&r|2&r)!==i&&H(t,r),new e(t)}}function Rt(t){return t}function Mt(t,e,r,i){var n=void 0!==i;i=!!i;var o=[],a=t.length,s=4294967295,l=!1,u=!!(64&e),h=u?128&e?0:-1:void 0;if(!(1&e)){var c=a&&t[a-1];null!=c&&"object"==typeof c&&c.constructor===Object?s=--a:c=void 0,!u||128&e||n||(l=!0,s=(Tt??Rt)(s-h,h,t,c,void 0)+h)}for(e=void 0,n=0;n<a;n++){let a=t[n];if(null!=a&&null!=(a=r(a,i)))if(u&&n>=s){let t=n-h;(e??={})[t]=a}else o[n]=a}if(c)for(let n in c){if(null==(t=c[n])||null==(t=r(t,i)))continue;let l;a=+n,u&&!Number.isNaN(a)&&(l=a+h)<s?o[l]=t:(e??={})[n]=t}return e&&(l?o.push(e):o[s]=e),o}function Dt(t){switch(typeof t){case"number":return Number.isFinite(t)?t:""+t;case"bigint":return tt(t)?Number(t):""+t;case"boolean":return t?1:0;case"object":if(Array.isArray(t)){var e=0|t[V];return 0===t.length&&1&e?void 0:Mt(t,e,Dt)}if(null!=t&&t[M]===W)return Ct(t);if(t instanceof A){if(null==(e=t.i))t="";else if("string"==typeof e)t=e;else{if(m){for(var r="",i=0,n=e.length-10240;i<n;)r+=String.fromCharCode.apply(null,e.subarray(i,i+=10240));r+=String.fromCharCode.apply(null,i?e.subarray(i):e),e=btoa(r)}else{void 0===r&&(r=0),d(),r=h[r],i=Array(Math.floor(e.length/3)),n=r[64]||"";let t=0,u=0;for(;t<e.length-2;t+=3){var o=e[t],a=e[t+1],s=e[t+2],l=r[o>>2];o=r[(3&o)<<4|a>>4],a=r[(15&a)<<2|s>>6],s=r[63&s],i[u++]=l+o+a+s}switch(l=0,s=n,e.length-t){case 2:s=r[(15&(l=e[t+1]))<<2]||n;case 1:e=e[t],i[u]=r[e>>2]+r[(3&e)<<4|l>>4]+s+n}e=i.join("")}t=t.i=e}return t}return}return t}function Ct(t){return Mt(t=t.m,0|t[V],Dt)}function Vt(t,e,r,i=0){if(null==t){var n=32;r?(t=[r],n|=128):t=[],e&&(n=-16760833&n|(1023&e)<<14)}else{if(!Array.isArray(t))throw Error("narr");if(n=0|t[V],a&&1&n)throw Error("rfarr");if(2048&n&&!(2&n)&&function(){if(a)throw Error("carr");O(R,5)}(),256&n)throw Error("farr");if(64&n)return(n|i)!==n&&H(t,n|i),t;if(r&&(n|=128,r!==t[0]))throw Error("mid");t:{n|=64;var o=(r=t).length;if(o){var s=o-1;let t=r[s];if(null!=t&&"object"==typeof t&&t.constructor===Object){if((s-=e=128&n?0:-1)>=1024)throw Error("pvtlmt");for(var l in t)(o=+l)<s&&(r[o+e]=t[l],delete t[l]);n=-16760833&n|(1023&s)<<14;break t}}if(e){if((l=Math.max(e,o-(128&n?0:-1)))>1024)throw Error("spvt");n=-16760833&n|(1023&l)<<14}}}return H(t,64|n|i),t}function Gt(t,e){if("object"!=typeof t)return t;if(Array.isArray(t)){var r=0|t[V];return 0===t.length&&1&r?t=void 0:2&r||(!e||4096&r||16&r?t=Ht(t,r,!1,e&&!(16&r)):(z(t,34),4&r&&Object.freeze(t))),t}return null!=t&&t[M]===W?$(t,r=0|(e=t.m)[V])?t:Kt(t,e,r)?zt(t,e):Ht(e,r):t instanceof A?t:void 0}function zt(t,e,r){return t=new t.constructor(e),r&&(t.i=q),t.o=q,t}function Ht(t,e,r,i){return i??=!!(34&e),t=Mt(t,e,Gt,i),i=32,r&&(i|=2),H(t,e=16769217&e|i),t}function Wt(t){if(t.i!==q)return!1;var e=t.m;return z(e=Ht(e,0|e[V]),2048),t.m=e,t.i=void 0,t.o=void 0,!0}function $t(t){if(!Wt(t)&&$(t,0|t.m[V]))throw Error()}function qt(t,e){void 0===e&&(e=0|t[V]),32&e&&!(4096&e)&&H(t,4096|e)}function Kt(t,e,r){return!!(2&r)||!(!(32&r)||4096&r)&&(H(e,2|r),t.i=q,!0)}function Yt(t,e,r){if(null!==(t=Jt(t.m,e,void 0,r)))return t}function Jt(t,e,r,i){if(-1===e)return null;var n=e+(r?0:-1),o=t.length-1;if(!(o<1+(r?0:-1))){if(n>=o){var a=t[o];if(null!=a&&"object"==typeof a&&a.constructor===Object){r=a[e];var s=!0}else{if(n!==o)return;r=a}}else r=t[n];if(i&&null!=r){if(null==(i=i(r)))return i;if(!Object.is(i,r))return s?a[e]=i:t[n]=i,i}return r}}function Xt(t,e,r){$t(t),Qt(t=t.m,0|t[V],e,r)}function Qt(t,e,r,i,n){var o=r+(n?0:-1),a=t.length-1;if(a>=1+(n?0:-1)&&o>=a){let n=t[a];if(null!=n&&"object"==typeof n&&n.constructor===Object)return n[r]=i,e}return o<=a?(t[o]=i,e):(void 0!==i&&(r>=(a=(e??=0|t[V])>>14&1023||536870912)?null!=i&&(t[a+(n?0:-1)]={[r]:i}):t[o]=i),e)}function Zt(t,e,r,i,n){var o=t.m,a=0|o[V];i=$(t,a)?1:i,n=!!n||3===i,2===i&&Wt(t)&&(a=0|(o=t.m)[V]);var s=(t=ee(o,e))===U?7:0|t[V],l=re(s,a),u=!(4&l);if(u){4&l&&(t=gt(t),s=0,l=ce(l,a),a=Qt(o,a,e,t));let i=0,n=0;for(;i<t.length;i++){let e=r(t[i]);null!=e&&(t[n++]=e)}n<i&&(t.length=n),r=-513&l|4,l=r&=-1025,l&=-4097}return l!==s&&(H(t,l),2&l&&Object.freeze(t)),te(t,l,o,a,e,i,u,n)}function te(t,e,r,i,n,o,a,s){var l=e;return 1===o||4===o&&(2&e||!(16&e)&&32&i)?ie(e)||((e|=!t.length||a&&!(4096&e)||32&i&&!(4096&e||16&e)?2:256)!==l&&H(t,e),Object.freeze(t)):(2===o&&ie(e)&&(t=gt(t),l=0,e=ce(e,i),i=Qt(r,i,n,t)),ie(e)||(s||(e|=16),e!==l&&H(t,e))),2&e||!(4096&e||16&e)||qt(r,i),t}function ee(t,e,r){return t=Jt(t,e,r),Array.isArray(t)?t:U}function re(t,e){return 2&e&&(t|=2),1|t}function ie(t){return!!(2&t)&&!!(4&t)||!!(256&t)}function ne(t,e,r){$t(t);var i=0|(t=t.m)[V];if(null==r)Qt(t,i,e);else{var n=r===U?7:0|r[V],o=n,a=ie(n),s=a||Object.isFrozen(r);for(a||(n=0),s||(r=gt(r),o=0,n=ce(n,i),s=!1),n|=5,n|=(4&n?512&n?512:1024&n?1024:0:void 0)??1024,a=0;a<r.length;a++){let t=r[a],e=kt(t);Object.is(t,e)||(s&&(r=gt(r),o=0,n=ce(n,i),s=!1),r[a]=e)}n!==o&&(s&&(r=gt(r),n=ce(n,i)),H(r,n)),Qt(t,i,e,r)}}function oe(t,e,r,i){$t(t),Qt(t=t.m,0|t[V],e,("0"===i?0===Number(r):r===i)?void 0:r)}function ae(t){if(k)return t[N]??(t[N]=new Map);if(N in t)return t[N];var e=new Map;return Object.defineProperty(t,N,{value:e}),e}function se(t,e,r){var i=dn,n=t.get(i);if(null!=n)return n;n=0;for(let t=0;t<i.length;t++){let o=i[t];null!=Jt(e,o)&&(0!==n&&(r=Qt(e,r,n)),n=o)}return t.set(i,n),n}function le(t,e,r){var i=t.m,n=0|i[V];if(e=function(t,e,r,i){var n=!1;if(null!=(i=Jt(t,i,void 0,t=>{var i=Ft(t,r,e);return n=i!==t&&null!=i,i})))return n&&!$(i)&&qt(t,e),i}(i,n,e,r),null==e)return e;if(!$(t,n=0|i[V])){var o,a=e;let s=a.m,l=0|s[V];(o=$(a,l)?Kt(a,s,l)?zt(a,s,!0):new a.constructor(Ht(s,l,!1)):a)!==e&&(Wt(t)&&(n=0|(i=t.m)[V]),qt(i,n=Qt(i,n,r,e=o)))}return e}function ue(t){return null==t&&(t=void 0),t}function he(t,e,r){return Xt(t,e,r=ue(r)),r&&!$(r)&&qt(t.m),t}function ce(t,e){return-273&(2&e?2|t:-3&t)}function fe(t,e,r,i){var n=i;$t(t);var o=i=t.m,a=0|i[V],s=$(t,a)?1:2;2===s&&Wt(t)&&(a=0|(o=t.m)[V]);var l=(t=ee(o,e))===U?7:0|t[V],u=re(l,a),h=!(4&u);if(h){var c=t,f=a;let e=!!(2&u);e&&(f|=2);let i=!e,n=!0,o=0,s=0;for(;o<c.length;o++){let t=Ft(c[o],r,f);if(t instanceof r){if(!e){let e=$(t);i&&=!e,n&&=e}c[s++]=t}}s<o&&(c.length=s),u|=4,u=n?-4097&u:4096|u,u=i?8|u:-9&u}u!==l&&(H(t,u),2&u&&Object.freeze(t)),e=t=te(t,u,o,a,e,s,h,!0),n=null!=n?n:new r,e.push(n),o=r=e===U?7:0|e[V],(n=$(n))?(r&=-9,1===e.length&&(r&=-4097)):r|=4096,r!==o&&H(e,r),n||qt(i)}function de(t,e){return Bt(Yt(t,e))??0}function pe(t,e,r){Xt(t,e,null==r?r:At(r))}function me(t,e,r){oe(t,e,null==r?r:At(r),!1)}function ge(t,e,r){oe(t,e,xt(r),0)}function ve(t,e,r){if(null!=r){if("number"!=typeof r)throw P("uint32");if(!wt(r))throw P("uint32");r>>>=0}Xt(t,e,r)}function ye(t,e,r){if(null!=r&&"string"!=typeof r)throw Error();oe(t,e,r,"")}function _e(t,e,r){if($t(t),e=(t=Zt(t,e,Nt,2,!0)).push,"string"!=typeof r)throw Error();e.call(t,r)}var we=class{constructor(t,e,r){if(this.buffer=t,r&&!e)throw Error()}};function be(t){if("string"==typeof t)return new we(_(t),!0);if(Array.isArray(t))return new we(new Uint8Array(t),!0);if(t.constructor===Uint8Array)return new we(t,!1);if(t.constructor===ArrayBuffer)return t=new Uint8Array(t),new we(t,!1);if(t.constructor===A){I(b);var e=t.i;return e=(null==(e=null==e||w(e)?e:"string"==typeof e?_(e):null)?e:t.i=e)||new Uint8Array(0),new we(e,!0,t)}if(t instanceof Uint8Array)return t=t.constructor===Uint8Array?t:new Uint8Array(t.buffer,t.byteOffset,t.byteLength),new we(t,!1);throw Error()}function Se(t){return new Ie(4294967295&t,Math.floor(t/4294967296))}function Ee(t){return t?/^\d+$/.test(t)?(pt(t),new Ie(st,lt)):null:Ae||=new Ie(0,0)}var Ae,Ie=class{constructor(t,e){this.j=t>>>0,this.i=e>>>0}};function Te(t){return new Fe(4294967295&t,Math.floor(t/4294967296))}function Le(t){return t?/^-?\d+$/.test(t)?(pt(t),new Fe(st,lt)):null:Pe||=new Fe(0,0)}var Pe,Oe,je,ke,xe,Ue,Be,Ne,Fe=class{constructor(t,e){this.j=t>>>0,this.i=e>>>0}};function Re(t,e,r){return"undefined"!=typeof BigInt64Array?(Be||(Be=new BigInt64Array(1),Ne=new Uint32Array(Be.buffer),Be[0]=BigInt(1),Ue=1===Ne[0]),Be[0]=t,new e(Ne[t=Ue?0:1],Ne[1-t])):(xe||(Oe=BigInt(Number.MIN_SAFE_INTEGER),je=BigInt(Number.MAX_SAFE_INTEGER),ke=BigInt(4294967295),xe=BigInt(32)),t>=Oe&&t<=je?r(Number(t)):(t=BigInt.asUintN(64,t),new e(Number(t&ke),Number(t>>xe))))}function Me(t,e,r){for(;r>0||e>127;)t.i.push(127&e|128),e=(e>>>7|r<<25)>>>0,r>>>=7;t.i.push(e)}function De(t,e){for(;e>127;)t.i.push(127&e|128),e>>>=7;t.i.push(e)}function Ce(t,e){if(e>=0)De(t,e);else{for(let r=0;r<9;r++)t.i.push(127&e|128),e>>=7;t.i.push(1)}}var Ve=class{constructor(){this.i=[]}length(){return this.i.length}end(){var t=this.i;return this.i=[],t}};function Ge(t,e){0!==e.length&&(t.l.push(e),t.j+=e.length)}function ze(t,e,r){De(t.i,8*e+r)}function He(t,e){return ze(t,e,2),e=t.i.end(),Ge(t,e),e.push(t.j),e}function We(t,e){var r=e.pop();for(r=t.j+t.i.length()-r;r>127;)e.push(127&r|128),r>>>=7,t.j++;e.push(r),t.j++}function $e(t,e,r){ze(t,e,2),De(t.i,r.length),Ge(t,t.i.end()),Ge(t,r)}var qe=class{constructor(){this.l=[],this.j=0,this.i=new Ve}};function Ke(){var t=class{constructor(){throw Error()}};return Object.setPrototypeOf(t,t.prototype),t}var Ye=Ke(),Je=Ke(),Xe=Ke(),Qe=Ke(),Ze=Ke(),tr=Ke(),er=Ke(),rr=Ke(),ir=Ke(),nr=Ke(),or=class{constructor(t,e){this.m=Vt(t,e,void 0,2048)}toJSON(){return Ct(this)}};or.prototype[M]=W,or.prototype.toString=function(){return this.m.toString()};var ar=class{constructor(t,e){this.i=t,t=Ye,this.j=!!t&&e===t||!1}};function sr(t,e,r,i,n){null!=(e=mr(e,i))&&(r=He(t,r),n(e,t),We(t,r))}var lr,ur,hr=new ar(sr,Ye),cr=new ar(sr,Ye),fr=Symbol(),dr=Symbol();function pr(t){var e=gr,r=vr,i=t[fr];if(i)return i;(i={}).oa=t,i.W=function(t){switch(typeof t){case"boolean":return Lt||=[0,void 0,!0];case"number":return t>0?void 0:0===t?Pt||=[0,void 0]:[-t,void 0];case"string":return[0,t];case"object":return t}}(t[0]);var n=t[1],o=1;n&&n.constructor===Object&&(i.ca=n,"function"==typeof(n=t[++o])&&(i.ia=!0,lr??=n,ur??=t[o+1],n=t[o+=2]));for(var a={};n&&Array.isArray(n)&&n.length&&"number"==typeof n[0]&&n[0]>0;){for(var s=0;s<n.length;s++)a[n[s]]=n;n=t[++o]}for(s=1;void 0!==n;){let h;"number"==typeof n&&(s+=n,n=t[++o]);var l=void 0;if(n instanceof ar?h=n:(h=hr,o--),h?.j){n=t[++o],l=t;var u=o;"function"==typeof n&&(n=n(),l[u]=n),l=n}for(u=s+1,"number"==typeof(n=t[++o])&&n<0&&(u-=n,n=t[++o]);s<u;s++){let t=a[s];l?r(i,s,h,l,t):e(i,s,h,t)}}return t[fr]=i}function mr(t,e){return t instanceof or?t.m:Array.isArray(t)?Vt(t,e[0],e[1]):void 0}function gr(t,e,r){t[e]=r.i}function vr(t,e,r,i){var n,o,a=r.i;t[e]=(t,e,r)=>a(t,e,r,o||=pr(i).W,n||=yr(i))}function yr(t){var e=t[dr];if(!e){let r=pr(t);e=(t,e)=>_r(t,e,r),t[dr]=e}return e}function _r(t,e,r){!function(t,e,r){var i,n=128&e?0:-1,o=t.length;(i=!!o)&&(i=null!=(i=t[o-1])&&"object"==typeof i&&i.constructor===Object);var a=o+(i?-1:0);for(e=128&e?1:0;e<a;e++)r(e-n,t[e]);if(i){t=t[o-1];for(let e in t)!isNaN(e)&&r(+e,t[e])}}(t,0|t[V],(t,i)=>{if(null!=i){var n=function(t,e){var r=t[e];if(r)return r;if((r=t.ca)&&(r=r[e])){var i=(r=Array.isArray(r)?r[0]instanceof ar?r:[cr,r]:[r,void 0])[0].i;if(r=r[1]){let e=yr(r),n=pr(r).W;r=t.ia?ur(n,e):(t,r,o)=>i(t,r,o,n,e)}else r=i;return t[e]=r}}(r,t);n?n(e,i,t):t<500||O(F,3)}})}var wr,br=0,Sr=br;if(X(Sr)){if(!/^\s*(?:-?[1-9]\d*|0)?\s*$/.test(Sr))throw Error(String(Sr))}else if((wr=J(Sr))&&(wr=!Number.isSafeInteger(Sr)),wr)throw Error(String(Sr));function Er(t,e){if(Array.isArray(e)){var r=0|e[V];if(4&r)return e;for(var i=0,n=0;i<e.length;i++){let r=t(e[i]);null!=r&&(e[n++]=r)}return n<i&&(e.length=n),(t=-1537&r|5)!==r&&H(e,t),2&t&&Object.freeze(e),e}}function Ar(t,e){return new ar(t,e)}function Ir(t,e,r){null!=(e=Et(e))&&(ze(t,r,5),t=t.i,(r=at||=new DataView(new ArrayBuffer(8))).setFloat32(0,+e,!0),lt=0,e=st=r.getUint32(0,!0),t.i.push(e>>>0&255),t.i.push(e>>>8&255),t.i.push(e>>>16&255),t.i.push(e>>>24&255))}function Tr(t,e,r){null!=(e=Ut(e))&&null!=e&&(ze(t,r,0),Ce(t.i,e))}function Lr(t,e,r){null!=(e=It(e))&&(ze(t,r,0),t.i.i.push(e?1:0))}function Pr(t,e,r){null!=(e=Nt(e))&&$e(t,r,n(e))}function Or(t,e,r,i,n){null!=(e=mr(e,i))&&(r=He(t,r),n(e,t),We(t,r))}function jr(t,e,r){null!=(e=Bt(e))&&null!=e&&(ze(t,r,0),De(t.i,e))}function kr(t,e,r){null!=(e=Ut(e))&&(e=parseInt(e,10),ze(t,r,0),Ce(t.i,e))}Z||(br=Q(br)?br?"1":"0":X(br)?br.trim()||"0":String(br));var xr,Ur=Ar(Ir,rr),Br=Ar(Ir,rr),Nr=Ar(function(t,e,r){if(e=function(t){if(null==t)return t;var e=typeof t;if("bigint"===e)return String(vt(64,t));if(jt(t)){if("string"===e){if(e=bt(Number(t)),_t(e))t=String(e);else if(-1!==(e=t.indexOf("."))&&(t=t.substring(0,e)),e=t.length,!("-"===t[0]?e<20||20===e&&t<="-9223372036854775808":e<19||19===e&&t<="9223372036854775807"))if(pt(t),t=st,2147483648&(e=lt))if(j())t=""+(BigInt(0|e)<<BigInt(32)|BigInt(t>>>0));else{let[r,i]=mt(t,e);t="-"+ft(r,i)}else t=ft(t,e);return t}if("number"===e){if(t=bt(t),!_t(t)){ht(t),e=st;var r=lt;(t=2147483648&r)&&(r=~r>>>0,0==(e=1+~e>>>0)&&(r=r+1>>>0)),t="number"==typeof(e=ct(e,r))?t?-e:e:t?"-"+e:e}return t}}}(e),null!=e){if("string"==typeof e)Le(e);if(null!=e)switch(ze(t,r,0),typeof e){case"number":t=t.i,ht(e),Me(t,st,lt);break;case"bigint":r=Re(e,Fe,Te),Me(t.i,r.j,r.i);break;default:r=Le(e),Me(t.i,r.j,r.i)}}},tr),Fr=Ar(function(t,e,r){if(e=function(t){if(null==t)return t;var e=typeof t;if("bigint"===e)return String(yt(64,t));if(jt(t)){if("string"===e)return e=bt(Number(t)),_t(e)&&e>=0?t=String(e):(-1!==(e=t.indexOf("."))&&(t=t.substring(0,e)),(e="-"!==t[0]&&((e=t.length)<20||20===e&&t<="18446744073709551615"))||(pt(t),t=ft(st,lt))),t;if("number"===e)return(t=bt(t))>=0&&_t(t)||(ht(t),t=ct(st,lt)),t}}(e),null!=e){if("string"==typeof e)Ee(e);if(null!=e)switch(ze(t,r,0),typeof e){case"number":t=t.i,ht(e),Me(t,st,lt);break;case"bigint":r=Re(e,Ie,Se),Me(t.i,r.j,r.i);break;default:r=Ee(e),Me(t.i,r.j,r.i)}}},er),Rr=Ar(Tr,Qe);xr=new ar(function(t,e,r){if(null!=(e=Er(Ut,e))&&e.length){r=He(t,r);for(let r=0;r<e.length;r++)Ce(t.i,e[r]);We(t,r)}},Qe);var Mr,Dr=Ar(Tr,Qe),Cr=Ar(Tr,Qe),Vr=Ar(Lr,Je),Gr=Ar(Lr,Je),zr=Ar(Pr,Xe);Mr=new ar(function(t,e,r){if(null!=(e=Er(Nt,e)))for(let s=0;s<e.length;s++){var i=t,o=r,a=e[s];null!=a&&$e(i,o,n(a))}},Xe);var Hr,Wr=Ar(Pr,Xe),$r=Ar(Pr,Xe),qr=function(t,e,r=Ye){return new ar(e,r)}(0,function(t,e,r,i,n){if(Array.isArray(e)){for(let o=0;o<e.length;o++)Or(t,e[o],r,i,n);1&(t=0|e[V])||H(e,1|t)}}),Kr=new ar(Or,Ye),Yr=Ar(jr,Ze),Jr=Ar(kr,nr);Hr=new ar(function(t,e,r){if(null!=(e=Er(Ut,e))&&e.length){r=He(t,r);for(let r=0;r<e.length;r++)Ce(t.i,e[r]);We(t,r)}},nr);var Xr=Ar(kr,nr);function Qr(t){return function(){var e=new qe;_r(this.m,e,pr(t)),Ge(e,e.i.end());var r=new Uint8Array(e.j),i=e.l,n=i.length,o=0;for(let t=0;t<n;t++){let e=i[t];r.set(e,o),o+=e.length}return e.l=[r],r}}function Zr(t,e){if(null!=e)if(Array.isArray(e))Xt(t,2,Mt(e,0,Dt));else{if(!("string"==typeof e||e instanceof A||w(e)))throw Error("invalid value in Any.value field: "+e+" expected a ByteString, a base64 encoded string, a Uint8Array or a jspb array");if(null!=e)if("string"==typeof e)e=e?new A(e,b):S();else if(e.constructor!==A){if(!w(e))throw Error();e=e.length?new A(new Uint8Array(e),b):S()}oe(t,2,e,S())}}var ti,ei=class extends or{constructor(t){super(t)}},ri=[0,Wr,Ar(function(t,e,r){if(null!=e){if(e instanceof or){let i=e.ra;return void(i?(e=i(e),null!=e&&$e(t,r,be(e).buffer)):O(F,3))}if(Array.isArray(e))return void O(F,3)}null!=(e=null==e||"string"==typeof e||e instanceof A?e:void 0)&&$e(t,r,be(e).buffer)},ir)],ii=globalThis.trustedTypes;var ni=class{constructor(t){this.i=t}toString(){return this.i+""}};function oi(t){var e;return void 0===ti&&(ti=function(){var t=null;if(!ii)return t;try{let e=t=>t;t=ii.createPolicy("goog#html",{createHTML:e,createScript:e,createScriptURL:e})}catch(t){}return t}()),t=(e=ti)?e.createScriptURL(t):t,new ni(t)}function ai(t,...e){if(0===e.length)return oi(t[0]);var r=t[0];for(let i=0;i<e.length;i++)r+=encodeURIComponent(e[i])+t[i+1];return oi(r)}var si=[0,Jr,-1,Vr],li={};li[336783863]=[0,zr,Vr,-1,Rr,[0,[1,2,3,4,5,6,7,8,9],Kr,[0],Kr,[0,Vr,zr,Vr,Jr,-1,Hr,zr,-1,[0,Vr,-1],Jr,Vr,-1,si],Kr,[0,zr,-2],Kr,[0,Rr,Vr,1,Vr,-4],Kr,[0,Rr,Jr,Vr,-1,xr,Jr,-1,Vr,-1],Kr,[0,zr,-2],Kr,[0,zr,Jr],Kr,[0,3,Vr,-1,2,[0,[2],Rr,Kr,[0,Ar(jr,Ze)]],[0,Jr,Vr,Jr,Vr,Jr,Vr,zr,-1],[0,[3,4],zr,-1,Kr,[0,Rr],Kr,[0,Jr]],[0]],Kr,si],[0,zr],Vr,[0,[1,3],[2,4],Kr,[0,xr],-1,Kr,[0,Mr],-1,qr,[0,zr,-1]],zr];var ui=class extends or{constructor(t){super(t)}},hi=[0,Nr,-1,Gr,-3,Nr,xr,Wr,Dr,Nr,-1,Gr,Dr,Gr,-2,Wr],ci=class extends or{constructor(t){super(t,500)}N(t){return he(this,7,t)}},fi=[-1,{}],di=[0,zr,1,fi],pi=[0,zr,Mr,fi];function mi(t,e){fe(t,1,ci,e)}var gi=class extends or{constructor(t){super(t,500)}N(t){return he(this,1001,t)}};gi.prototype.j=Qr([-500,qr,[-500,Wr,-1,Mr,-3,[-2,li,Vr],qr,ri,Dr,-1,di,pi,qr,[0,Wr,Gr],Wr,hi,Dr,Mr,987,Mr],4,qr,[-500,zr,-1,[-1,{}],998,zr],qr,[-500,zr,Mr,-1,[-2,{},Vr],997,Mr,-1],Dr,qr,[-500,zr,Mr,fi,998,Mr],Mr,Dr,di,pi,qr,[0,Wr,-1,fi],Mr,-2,hi,Wr,-1,Gr,[0,Gr,Yr],978,fi,qr,ri]);var vi,yi=class extends or{constructor(t){super(t)}},_i=new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]);async function wi(t){if(t)return!0;if(void 0===vi)try{await WebAssembly.instantiate(_i),vi=!0}catch{vi=!1}return vi}async function bi(t,e,r){return{wasmLoaderPath:`${e}/${t}_${r=`wasm${r?"_module":""}${await wi(r)?"":"_nosimd"}_internal`}.js`,wasmBinaryPath:`${e}/${t}_${r}.wasm`}}var Si=class{};Si.forVisionTasks=function(t,e=!1){return bi("vision",t??ai``,e)},Si.forTextTasks=function(t,e=!1){return bi("text",t??ai``,e)},Si.forGenAiTasks=function(t,e=!1){return bi("genai",t??ai``,e)},Si.forAudioTasks=function(t,e=!1){return bi("audio",t??ai``,e)},Si.isSimdSupported=function(t=!1){return wi(t)};var Ei=class{close(){}};function Ai(t){function e(e,r){return new ReadableStream({start(){},async pull(i){n=n.then(async()=>{if(e.cache.length>0)i.enqueue(e.cache.shift());else{var{value:n,done:o}=await t.read();n&&(r.active&&r.cache.push(n),e.active&&i.enqueue(n)),o&&i.close()}}),await n},cancel(){e.active=!1,e.cache.length=0,r.active||t.cancel()}})}var r={cache:[],active:!0},i={cache:[],active:!0},n=Promise.resolve(),o=e(r,i);return r=e(i,r),[o.getReader(),r.getReader()]}async function Ii(t,e){for(var r=new Uint8Array(e),i=0;i<e;){let{value:n,done:o}=await t.read();if(n){let t=n.subarray(0,e-i);r.set(t,i),i+=t.length}if(o)throw Error(`Expected ${e} bytes, but stream ended after reading ${i} bytes.`)}return await t.cancel(),r}var Ti=[[0,async t=>{var e=(new TextEncoder).encode("TFL3").length;return t=await Ii(t,e+4),"TFL3"===new TextDecoder("utf-8").decode(t.subarray(4,e+4))}],[1,async t=>80===(t=await Ii(t,6))[4]&&75===t[5]],[2,async t=>(t=await Ii(t,8),"LITERTLM"===new TextDecoder("utf-8").decode(t))]];async function Li(t,e){var r=new Uint8Array(e),i=0;if(t.i){var n=Math.min(e,t.i.length);r.set(t.i.subarray(0,n),0),(i+=n)<t.i.length?t.i=t.i.subarray(i):t.i=void 0}for(;i<e;){let{value:o,done:a}=await t.stream.read();if(o&&(n=o.subarray(0,e-i),r.set(n,i),o.length>n.length&&(t.i=o.subarray(e-i)),i+=n.length),a)throw Error(`Expected ${e} bytes, but stream ended after reading ${i} bytes.`)}return r}class Pi{constructor(t){this.stream=t,this.i=void 0,this.closed=this.stream.closed}async read(){if(this.i){let t=this.i.slice();return this.i=void 0,{value:t,done:!1}}return this.stream.read()}cancel(t){return this.stream.cancel(t)}releaseLock(){return this.stream.releaseLock()}}function Oi(){var t=navigator;return"undefined"!=typeof OffscreenCanvas&&(!function(t=navigator){return(t=t.userAgent).includes("Safari")&&!t.includes("Chrome")}(t)||!!((t=t.userAgent.match(/Version\/([\d]+).*Safari/))&&t.length>=1&&Number(t[1])>=17))}async function ji(t){if("function"!=typeof importScripts){let e=document.createElement("script");return e.src=t.toString(),e.crossOrigin="anonymous",new Promise((t,r)=>{e.addEventListener("load",()=>{t()},!1),e.addEventListener("error",t=>{r(t)},!1),document.body.appendChild(e)})}try{importScripts(t.toString())}catch(e){if(!(e instanceof TypeError))throw e;{let e=self.import;e?await e(t.toString()):await import(t.toString())}}}function ki(t,e,r){t.o||console.error("No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target"),r(e=t.h.stringToNewUTF8(e)),t.h._free(e)}function xi(t,e,r){t.o||console.error("No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target");var i=new Uint32Array(e.length);for(let r=0;r<e.length;r++)i[r]=t.h.stringToNewUTF8(e[r]);e=t.h._malloc(4*i.length),t.h.HEAPU32.set(i,e>>2),r(e);for(let e of i)t.h._free(e);t.h._free(e)}function Ui(t,e,r){t.h.simpleListeners=t.h.simpleListeners||{},t.h.simpleListeners[e]=r}function Bi(t,e,r){var i=[];t.h.simpleListeners=t.h.simpleListeners||{},t.h.simpleListeners[e]=(t,e,n)=>{e?(r(i,n),i=[]):i.push(t)}}var Ni,Fi=(Ni=class{constructor(t,e){this.l=!0,this.h=t,this.i=null,this.j=0,this.o="function"==typeof this.h._addIntToInputStream,void 0!==e?this.h.canvas=e:Oi()?this.h.canvas=new OffscreenCanvas(1,1):(console.warn("OffscreenCanvas not supported and GraphRunner constructor glCanvas parameter is undefined. Creating backup canvas."),this.h.canvas=document.createElement("canvas"))}async initializeGraph(t){var e=await(await fetch(t)).arrayBuffer();t=!(t.endsWith(".pbtxt")||t.endsWith(".textproto")),this.setGraph(new Uint8Array(e),t)}setGraphFromString(t){this.setGraph((new TextEncoder).encode(t),!1)}setGraph(t,e){var r=t.length,i=this.h._malloc(r);this.h.HEAPU8.set(t,i),e?this.h._changeBinaryGraph(r,i):this.h._changeTextGraph(r,i),this.h._free(i)}configureAudio(t,e,r,i,n){this.h._configureAudio||console.warn('Attempting to use configureAudio without support for input audio. Is build dep ":gl_graph_runner_audio" missing?'),ki(this,i||"input_audio",i=>{ki(this,n=n||"audio_header",n=>{this.h._configureAudio(i,n,t,e??0,r)})})}setAutoResizeCanvas(t){this.l=t}setAutoRenderToScreen(t){this.h._setAutoRenderToScreen(t)}setGpuBufferVerticalFlip(t){this.h.gpuOriginForWebTexturesIsBottomLeft=t}attachErrorListener(t){this.h.errorListener=t}attachEmptyPacketListener(t,e){this.h.emptyPacketListeners=this.h.emptyPacketListeners||{},this.h.emptyPacketListeners[t]=e}addAudioToStream(t,e,r){this.addAudioToStreamWithShape(t,0,0,e,r)}addAudioToStreamWithShape(t,e,r,i,n){var o=4*t.length;this.j!==o&&(this.i&&this.h._free(this.i),this.i=this.h._malloc(o),this.j=o),this.h.HEAPF32.set(t,this.i/4),ki(this,i,t=>{this.h._addAudioToInputStream(this.i,e,r,t,n)})}addGpuBufferToStream(t,e,r){ki(this,e,e=>{if(!this.h.canvas)throw Error("No OpenGL canvas configured.");e?this.h._bindTextureToStream(e):this.h._bindTextureToCanvas();var i=this.h.canvas.getContext("webgl2")||this.h.canvas.getContext("webgl");if(!i)throw Error("Failed to obtain WebGL context from the provided canvas. `getContext()` should only be invoked with `webgl` or `webgl2`.");this.h.gpuOriginForWebTexturesIsBottomLeft&&i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!0),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,i.RGBA,i.UNSIGNED_BYTE,t),this.h.gpuOriginForWebTexturesIsBottomLeft&&i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!1);var[n,o]=void 0!==t.videoWidth?[t.videoWidth,t.videoHeight]:void 0!==t.naturalWidth?[t.naturalWidth,t.naturalHeight]:void 0!==t.displayWidth?[t.displayWidth,t.displayHeight]:[t.width,t.height];!this.l||n===this.h.canvas.width&&o===this.h.canvas.height||(this.h.canvas.width=n,this.h.canvas.height=o);var[a,s]=[n,o];this.h._addBoundTextureToStream(e,a,s,r)})}addBoolToStream(t,e,r){ki(this,e,e=>{this.h._addBoolToInputStream(t,e,r)})}addDoubleToStream(t,e,r){ki(this,e,e=>{this.h._addDoubleToInputStream(t,e,r)})}addFloatToStream(t,e,r){ki(this,e,e=>{this.h._addFloatToInputStream(t,e,r)})}addIntToStream(t,e,r){ki(this,e,e=>{this.h._addIntToInputStream(t,e,r)})}addUintToStream(t,e,r){ki(this,e,e=>{this.h._addUintToInputStream(t,e,r)})}addStringToStream(t,e,r){ki(this,e,e=>{ki(this,t,t=>{this.h._addStringToInputStream(t,e,r)})})}addStringRecordToStream(t,e,r){ki(this,e,e=>{xi(this,Object.keys(t),i=>{xi(this,Object.values(t),n=>{this.h._addFlatHashMapToInputStream(i,n,Object.keys(t).length,e,r)})})})}addProtoToStream(t,e,r,i){ki(this,r,r=>{ki(this,e,e=>{var n=this.h._malloc(t.length);this.h.HEAPU8.set(t,n),this.h._addProtoToInputStream(n,t.length,e,r,i),this.h._free(n)})})}addEmptyPacketToStream(t,e){ki(this,t,t=>{this.h._addEmptyPacketToInputStream(t,e)})}addBoolVectorToStream(t,e,r){ki(this,e,e=>{var i=this.h._allocateBoolVector(t.length);if(!i)throw Error("Unable to allocate new bool vector on heap.");for(let e of t)this.h._addBoolVectorEntry(i,e);this.h._addBoolVectorToInputStream(i,e,r)})}addDoubleVectorToStream(t,e,r){ki(this,e,e=>{var i=this.h._allocateDoubleVector(t.length);if(!i)throw Error("Unable to allocate new double vector on heap.");for(let e of t)this.h._addDoubleVectorEntry(i,e);this.h._addDoubleVectorToInputStream(i,e,r)})}addFloatVectorToStream(t,e,r){ki(this,e,e=>{var i=this.h._allocateFloatVector(t.length);if(!i)throw Error("Unable to allocate new float vector on heap.");for(let e of t)this.h._addFloatVectorEntry(i,e);this.h._addFloatVectorToInputStream(i,e,r)})}addIntVectorToStream(t,e,r){ki(this,e,e=>{var i=this.h._allocateIntVector(t.length);if(!i)throw Error("Unable to allocate new int vector on heap.");for(let e of t)this.h._addIntVectorEntry(i,e);this.h._addIntVectorToInputStream(i,e,r)})}addUintVectorToStream(t,e,r){ki(this,e,e=>{var i=this.h._allocateUintVector(t.length);if(!i)throw Error("Unable to allocate new unsigned int vector on heap.");for(let e of t)this.h._addUintVectorEntry(i,e);this.h._addUintVectorToInputStream(i,e,r)})}addStringVectorToStream(t,e,r){ki(this,e,e=>{var i=this.h._allocateStringVector(t.length);if(!i)throw Error("Unable to allocate new string vector on heap.");for(let e of t)ki(this,e,t=>{this.h._addStringVectorEntry(i,t)});this.h._addStringVectorToInputStream(i,e,r)})}addBoolToInputSidePacket(t,e){ki(this,e,e=>{this.h._addBoolToInputSidePacket(t,e)})}addDoubleToInputSidePacket(t,e){ki(this,e,e=>{this.h._addDoubleToInputSidePacket(t,e)})}addFloatToInputSidePacket(t,e){ki(this,e,e=>{this.h._addFloatToInputSidePacket(t,e)})}addIntToInputSidePacket(t,e){ki(this,e,e=>{this.h._addIntToInputSidePacket(t,e)})}addUintToInputSidePacket(t,e){ki(this,e,e=>{this.h._addUintToInputSidePacket(t,e)})}addStringToInputSidePacket(t,e){ki(this,e,e=>{ki(this,t,t=>{this.h._addStringToInputSidePacket(t,e)})})}addProtoToInputSidePacket(t,e,r){ki(this,r,r=>{ki(this,e,e=>{var i=this.h._malloc(t.length);this.h.HEAPU8.set(t,i),this.h._addProtoToInputSidePacket(i,t.length,e,r),this.h._free(i)})})}addBoolVectorToInputSidePacket(t,e){ki(this,e,e=>{var r=this.h._allocateBoolVector(t.length);if(!r)throw Error("Unable to allocate new bool vector on heap.");for(let e of t)this.h._addBoolVectorEntry(r,e);this.h._addBoolVectorToInputSidePacket(r,e)})}addDoubleVectorToInputSidePacket(t,e){ki(this,e,e=>{var r=this.h._allocateDoubleVector(t.length);if(!r)throw Error("Unable to allocate new double vector on heap.");for(let e of t)this.h._addDoubleVectorEntry(r,e);this.h._addDoubleVectorToInputSidePacket(r,e)})}addFloatVectorToInputSidePacket(t,e){ki(this,e,e=>{var r=this.h._allocateFloatVector(t.length);if(!r)throw Error("Unable to allocate new float vector on heap.");for(let e of t)this.h._addFloatVectorEntry(r,e);this.h._addFloatVectorToInputSidePacket(r,e)})}addIntVectorToInputSidePacket(t,e){ki(this,e,e=>{var r=this.h._allocateIntVector(t.length);if(!r)throw Error("Unable to allocate new int vector on heap.");for(let e of t)this.h._addIntVectorEntry(r,e);this.h._addIntVectorToInputSidePacket(r,e)})}addUintVectorToInputSidePacket(t,e){ki(this,e,e=>{var r=this.h._allocateUintVector(t.length);if(!r)throw Error("Unable to allocate new unsigned int vector on heap.");for(let e of t)this.h._addUintVectorEntry(r,e);this.h._addUintVectorToInputSidePacket(r,e)})}addStringVectorToInputSidePacket(t,e){ki(this,e,e=>{var r=this.h._allocateStringVector(t.length);if(!r)throw Error("Unable to allocate new string vector on heap.");for(let e of t)ki(this,e,t=>{this.h._addStringVectorEntry(r,t)});this.h._addStringVectorToInputSidePacket(r,e)})}attachBoolListener(t,e){Ui(this,t,e),ki(this,t,t=>{this.h._attachBoolListener(t)})}attachBoolVectorListener(t,e){Bi(this,t,e),ki(this,t,t=>{this.h._attachBoolVectorListener(t)})}attachIntListener(t,e){Ui(this,t,e),ki(this,t,t=>{this.h._attachIntListener(t)})}attachIntVectorListener(t,e){Bi(this,t,e),ki(this,t,t=>{this.h._attachIntVectorListener(t)})}attachUintListener(t,e){Ui(this,t,e),ki(this,t,t=>{this.h._attachUintListener(t)})}attachUintVectorListener(t,e){Bi(this,t,e),ki(this,t,t=>{this.h._attachUintVectorListener(t)})}attachDoubleListener(t,e){Ui(this,t,e),ki(this,t,t=>{this.h._attachDoubleListener(t)})}attachDoubleVectorListener(t,e){Bi(this,t,e),ki(this,t,t=>{this.h._attachDoubleVectorListener(t)})}attachFloatListener(t,e){Ui(this,t,e),ki(this,t,t=>{this.h._attachFloatListener(t)})}attachFloatVectorListener(t,e){Bi(this,t,e),ki(this,t,t=>{this.h._attachFloatVectorListener(t)})}attachStringListener(t,e){Ui(this,t,e),ki(this,t,t=>{this.h._attachStringListener(t)})}attachStringVectorListener(t,e){Bi(this,t,e),ki(this,t,t=>{this.h._attachStringVectorListener(t)})}attachProtoListener(t,e,r){Ui(this,t,e),ki(this,t,t=>{this.h._attachProtoListener(t,r||!1)})}attachProtoVectorListener(t,e,r){Bi(this,t,e),ki(this,t,t=>{this.h._attachProtoVectorListener(t,r||!1)})}attachAudioListener(t,e,r){this.h._attachAudioListener||console.warn('Attempting to use attachAudioListener without support for output audio. Is build dep ":gl_graph_runner_audio_out" missing?'),Ui(this,t,(t,r)=>{t=new Float32Array(t.buffer,t.byteOffset,t.length/4),e(t,r)}),ki(this,t,t=>{this.h._attachAudioListener(t,r||!1)})}finishProcessing(){this.h._waitUntilIdle()}closeGraph(){this.h._closeGraph(),this.h.simpleListeners=void 0,this.h.emptyPacketListeners=void 0}},class extends Ni{la(){this.h._registerModelResourcesGraphService()}});async function Ri(t,e){var r=await(async(t,e,r)=>{var i=An;if(t&&await ji(t),!self.ModuleFactory)throw Error("ModuleFactory not set.");if(e&&(await ji(e),!self.ModuleFactory))throw Error("ModuleFactory not set.");return self.Module&&r&&((t=self.Module).locateFile=r.locateFile,r.mainScriptUrlOrBlob&&(t.mainScriptUrlOrBlob=r.mainScriptUrlOrBlob)),r=await self.ModuleFactory(self.Module||r),self.ModuleFactory=self.Module=void 0,new i(r,null)})(t.wasmLoaderPath,t.assetLoaderPath,{locateFile:e=>e.endsWith(".wasm")?t.wasmBinaryPath.toString():t.assetBinaryPath&&e.endsWith(".data")?t.assetBinaryPath.toString():e});return r.ka=new Ei,await r.N(e),r}async function Mi(t,e){return Ri(t,e)}function Di(t){try{let e=t.J.length;if(1===e)throw Error(t.J[0].message);if(e>1)throw Error("Encountered multiple errors: "+t.J.map(t=>t.message).join(", "))}finally{t.J=[]}}function Ci(t,e){t.I=Math.max(t.I,e)}var Vi=class{constructor(t){this.j=t,this.J=[],this.I=0,this.j.setAutoRenderToScreen(!1)}setGraph(t,e){this.j.attachErrorListener((t,e)=>{this.J.push(Error(e))}),this.j.la(),this.j.setGraph(t,e),Di(this)}finishProcessing(){this.j.finishProcessing(),Di(this)}close(){this.ka?.close(),this.j.closeGraph()}};Vi.prototype.close=Vi.prototype.close;var Gi=class extends or{constructor(t){super(t)}j(){return Ut(Yt(this,2))??0}};function zi(t,e){he(t,1,e)}var Hi=class extends or{constructor(t){super(t)}},Wi=[0,Xr,Dr,Br,-1,Rr];function $i(t,e,r,i){if(void 0!==t.data){var n=new Uint8Array(t.data.buffer,e,r);return 1===i&&function(t,e,r){t.i.push([e,r]),t.i.sort((t,e)=>t[0]-e[0]),e=0;for(let[i,n]of t.i){let t=n;(r=i)<=e&&(e=Math.max(e,r+t))}e===t.length&&(t.data=void 0)}(t,e,r),n}}Gi.prototype.l=Qr(Wi);class qi{constructor(t){this.i=[],this.data=t,this.length=t.length}}function Ki(t,e){return new Ji(async()=>{var{value:e,done:r}=await t.read();return r?void 0:e},e)}async function Yi(t,e,r,i,n){if(2===n)return t.i=[],t.j=()=>Promise.resolve(void 0),setTimeout(()=>{t.l()},0),Promise.resolve(0);for(;t.size<r+i;){var o=await t.j();if(void 0===o)break;t.i.push(new qi(o))}if(t.size<r+i)throw Error(`Data size is too small: ${t.size}, expected at least ${r+i}.`);o=e._malloc(i)>>>0;var a=0;for(let s=0;s<t.i.length;s++){let l=t.i[s];if(r>=l.length){r-=l.length;continue}let u=Math.min(i,l.length-r);if(void 0===(r=$i(l,r,u,n)))throw Error("Data has already been released.");if(e.HEAPU8.set(r,o+a),r=0,a+=u,0===(i-=u))break}if(0!==i)throw Error("Data not found.");return Promise.resolve(o)}var Ji=class{constructor(t,e){this.i=[],this.j=t,this.l=e}get size(){var t=0;for(let e=0;e<this.i.length;e++)t+=this.i[e].length;return t}};function Xi(t){return"object"==typeof t&&null!=t&&"imageSource"in t}function Qi(t){return"object"==typeof t&&null!=t&&"audioSource"in t}async function Zi(t,e,r){t=new en(t,r);var i=0;for(e=e.getReader();;){let{value:r,done:n}=await e.read();if(n)break;t.set(r,i),i+=r.byteLength}if(r!==i)throw tn(t),Error(`File could not be fully loaded to memory, so was not retained. Loaded ${i}/${r} bytes before failure`);return t}function tn(t){if(t.i)try{t.h._free(t.j)}catch{}finally{t.i=!1}}var en=class{constructor(t,e){this.h=t,this.l=e,this.j=this.h._malloc(e)>>>0,this.o=this.h.HEAPU8,this.i=!!this.j}get offset(){if(!this.i)throw Error("WasmFileReference has been freed.");return this.j}get size(){if(!this.i)throw Error("WasmFileReference has been freed.");return this.l}set(t,e){this.o.set(t,this.j+(e??0))}},rn=class extends or{constructor(t){super(t)}};rn.prototype.j=Qr([0,Wr,2,Mr,Dr,Gr]);var nn=class extends or{constructor(t){super(t)}},on=class extends or{constructor(t){super(t)}},an=class extends or{constructor(t){super(t)}},sn=class extends or{constructor(t){super(t)}},ln=[0,Dr,-6,1,Dr,1,[0,Gr,Xr,-2],[0,Gr,Br],Xr,-2,[0,Gr,-1,Xr,Br,Jr,Rr,Vr,-2],1,Gr,Dr,Rr,-1,[0,Xr,Dr],Gr,-1,Ur,Dr,-5,Ur,-1,[0,Rr,Ur],Rr,Vr,[0,Rr,-2],Ur,[0,Dr],[0,Dr,-4],Vr,Rr,-2,Vr,-1,Br,Ur,Vr,Dr,-1,[0,Rr,-2],Gr,Dr,Rr,Vr,[0,Rr,-1],Rr,Vr,-1],un=[0,Wr,-2],hn=[0,[4,6],ln,Dr,1,Cr,Mr,$r,Hr,un,Rr,[0,[0,Dr,-1,qr,[0,Dr,[0,Dr,-1],-1,[0,Xr,-1],Gr],Gr,-2,Dr,-1],[0,Dr,-1,Gr],ln,Gr,Dr,[0,Dr],-1],zr,-3,[0,Dr,Gr],ln,[0,un,-2],xr,qr,[0,Wr,-2],xr];sn.prototype.j=Qr([0,Wr,8,[0,Gr,-6],1,Dr,1,Dr,[0,qr,[0,Wr,Fr,-1,Xr],hn,Dr],[0,Dr,Gr,-3],1,Xr,1,hn,1,Dr,5,Xr,xr,1,Wi,Gr,Dr,Gr,-1]);var cn=class extends or{constructor(t){super(t)}},fn=class extends or{constructor(t){super(t)}},dn=[2,4];fn.prototype.j=Qr([0,dn,Dr,$r,Dr,Kr,[0,1,Wr]]);var pn=function(t){return class extends t{constructor(){super(...arguments),this.P=!1,this.F=this.H=0}M(){if(this.P)throw Error("Cannot process because LLM inference engine is currently loading or processing.");this.P=!0}L(){this.P=!1}async createLlmInferenceEngine(t,e){this.M();try{let r=Ki(t,()=>{});await this.h.createLlmInferenceEngine(de(e,2)??512,le(e,Gi,3)?.j()??40,It(Yt(e,6))??!1??!1,de(e,7)??0,It(Yt(e,8))??!1??!1,(t,e,i)=>Yi(r,this.h,t,e,i))}finally{this.L()}}async ba(t,e){this.M();try{await this.na(t),await this.h.ccall("CreateLlmInferenceEngineConverted","void",["number","number","boolean"],[de(e,2)??512,le(e,Gi,3)?.j()??40,It(Yt(e,6))??!1??!1],{async:!0})}finally{this.L()}}V(){this.M();try{let t=this.h;t.ccall("DeleteLlmInferenceEngine","void",[],[],{async:!1}),this.H&&(t._FreeSession(this.H),this.F===this.H&&(this.F=0),this.H=0),this.F&&(t._FreeSession(this.F),this.F=0)}finally{this.L()}}async R(t,e,r){this.M();try{let i=[],n=this.h;n._userProgressListener=(t,e)=>{t&&i.push(t),r&&r(t,e)};let o=e.l(),a=o.length,s=this.h._malloc(a);this.h.HEAPU8.set(o,s);let l=t.some(Qi),u=t.some(Xi);n.ccallNum=n.ccall;let h=await n.ccallNum("MakeSessionForPredict","number",["number","number","boolean","boolean"],[s,a,u,l],{async:!0});e=[];for(let r of t)if("string"==typeof r)ki(this,r,t=>{n._AddTextQueryChunk(h,t)});else if(Xi(r)){let{image:t,width:i,height:o}=await this.fa(r.imageSource),a="undefined"!=typeof OffscreenCanvas?new OffscreenCanvas(i,o):document.createElement("canvas");a.width=i,a.height=o;let s=a.getContext("2d");s.drawImage(t,0,0);let l=s.getImageData(0,0,i,o),u=this.h._malloc(l.width*l.height*4);this.h.HEAPU8.set(l.data,u),n._AddImageQueryChunk(h,u,l.width,l.height),e.push(u)}else{if(!Qi(r))throw Error("Unsupported PromptPart type in query.");{let t=await this.ea(r.audioSource),i=this.h._malloc(t.audioSamples.byteLength);this.h.HEAPF32.set(t.audioSamples,i/4),n._AddAudioQueryChunk(h,t.audioSampleRateHz,i,t.audioSamples.length),e.push(i)}}await n.ccall("PredictSession","void",["number"],[h],{async:!0}),t=!0,u&&0===this.F&&(this.F=h,t=!1),l&&0===this.H&&(this.H=h,t=!1),t&&n._FreeSession(h);for(let t of e)this.h._free(t);return e.length=0,r&&r("",!0),this.h._free(s),n._userProgressListener=void 0,i.join("")}finally{this.L()}}S(t){this.M();var e=0,r="";for(let i of t)"string"==typeof i?r+=i:Xi(i)?e+=260:Qi(i)&&console.warn("sizeInTokens is not yet implemented for audio; audio tokens will not be counted");try{let t;return ki(this,r,e=>{t=this.h._GetSizeInTokens(e)}),e+t}finally{this.L()}}async na(t){t=await async function(t){for(var e=[],r=0;;){let{done:i,value:n}=await t.read();if(i)break;e.push(n),r+=n.length}if(0===e.length)return new Uint8Array(0);if(1===e.length)return e[0];t=new Uint8Array(r),r=0;for(let i of e)t.set(i,r),r+=i.length;return t}(t);try{this.h.FS_unlink("llm.task")}catch{}this.h.FS_createDataFile("/","llm.task",t,!0,!1,!1)}async fa(t){if("string"==typeof t){let e=new Image;e.src=t,e.crossOrigin="Anonymous";try{await e.decode()}catch{throw Error(`Image from URL ${t} failed to load`)}return{image:e,width:e.naturalWidth,height:e.naturalHeight}}if(t instanceof HTMLImageElement){try{await t.decode()}catch{throw Error("Image from HTMLImageElement failed to load")}return{image:t,width:t.naturalWidth,height:t.naturalHeight}}return t instanceof HTMLVideoElement?{image:t,width:t.videoWidth,height:t.videoHeight}:t instanceof VideoFrame?{image:t,width:t.displayWidth,height:t.displayHeight}:{image:t,width:t.width,height:t.height}}async ea(t){if("string"==typeof t){let e=await fetch(t);if(!e.ok)throw Error(`Audio fetch for ${t} had error: ${e.status}`);return t=await e.arrayBuffer(),{audioSamples:(t=await new AudioContext({sampleRate:16e3}).decodeAudioData(t)).getChannelData(0),audioSampleRateHz:t.sampleRate}}return"object"==typeof t&&null!=t&&"audioSamples"in t&&"audioSampleRateHz"in t?t:{audioSamples:t.getChannelData(0),audioSampleRateHz:t.sampleRate}}}}(function(t){var e=class extends t{static async ma(t,r){r||=await e.X();var i=[];for(let e of t?.requiredFeatures??[])r.features.has(e)?i.push(e):console.warn(`WebGPU feature ${e} is not supported.`);t={...t,requiredFeatures:i};try{var n=await r.requestDevice(t)}catch(t){throw console.error("Unable to initialize WebGPU with the requested features."),t}return(t=n).adapterInfo||(t.adapterInfo=r.info),n}static async X(t){if(!(t=await navigator.gpu.requestAdapter(t)))throw Error("Unable to request adapter from navigator.gpu; Ensure WebGPU is enabled.");return t}ga(t){if(e)"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement&&(e.id="canvas_webgpu");else var e=new OffscreenCanvas(1,1);e.getContext("webgpu").configure({device:t,format:navigator.gpu.getPreferredCanvasFormat()}),this.h.preinitializedWebGPUDevice=t}aa(){return this.h.ccall("closeGraph","void",[],[],{async:!0})}};return e}(function(t){return class extends t{addStreamingReaderToInputSidePacket(t,e){this.h.addStreamingReaderToInputSidePacket((e,r,i)=>Yi(t,this.h,e,r,i),e)}}}(function(t){return class extends t{Y(t,e){ki(this,"lora_model_ref_in",r=>{this.h._addRawDataSpanToInputStream(t.offset,t.size,r,e)})}}}(class extends Fi{}))));class mn extends pn{}var gn=class{constructor(t){this.j=t,this.i=vn,vn++}},vn=1;class yn{constructor(){var t,e;this.promise=new Promise((r,i)=>{t=r,e=i}),this.resolve=t,this.reject=e}}function _n(t){return 1===t?1:t+t%2}async function wn(){var t=await mn.X({powerPreference:"high-performance"}),e=t.limits.maxBufferSize,r=t.limits.maxStorageBufferBindingSize;return e<524550144&&console.warn(`This WebGPU device is unable to execute most LLM tasks, because the required maxBufferSize is usually at least 524550144, but your device only supports maxBufferSize of ${e}`),r<524550144&&console.warn(`The WebGPU device is unable to execute LLM tasks, because the required maxStorageBufferBindingSize is usually at least 524550144, but your device only supports maxStorageBufferBindingSize of ${r}`),e={requiredFeatures:["shader-f16"],requiredLimits:{maxStorageBufferBindingSize:r,maxBufferSize:e,maxStorageBuffersPerShaderStage:t.limits.maxStorageBuffersPerShaderStage}},t.features.has("subgroups")&&(console.warn("Experimental Chromium WGSL subgroup support detected. Enabling this feature in the inference engine."),e.requiredFeatures=["shader-f16","subgroups"]),mn.ma(e,t)}function bn(t){if(t.D.length>0){let e=[...t.D];if(t.D.length=0,!t.o)throw e;t.o.reject(e),t.o=void 0}}function Sn(t){var e=function(t){var e=new gi;_e(e,10,"text_in"),_e(e,10,"token_cost_in"),_e(e,10,"lora_model_id_to_apply_in"),_e(e,10,"lora_model_ref_in"),_e(e,10,"lora_model_id_to_load_in"),_e(e,16,"streaming_reader"),_e(e,15,"text_out"),_e(e,15,"text_end"),_e(e,15,"token_cost_out");var r=new ci;ye(r,2,"TokenizerInputBuildCalculator"),_e(r,3,"PROMPT:text_in"),_e(r,3,"LORA_ID:lora_model_id_to_apply_in"),_e(r,4,"prompt"),mi(e,r),r=new ci,ye(r,2,"ModelDataCalculator"),_e(r,6,"MODEL_DATA:__side_packet_1"),_e(r,6,"MODEL_TYPE:model_type"),_e(r,5,"READ_DATA_FN:streaming_reader"),_e(r,3,"LORA_MODEL_SPAN:lora_model_ref_in"),_e(r,3,"LORA_MODEL_ID:lora_model_id_to_load_in"),_e(r,4,"LORA_DATA:lora_model_data"),mi(e,r),r=new ci,ye(r,2,"Gpt2UnicodeMappingCalculator"),_e(r,5,"MODEL_TYPE:model_type"),_e(r,6,"BYTES_TO_UNICODE_MAPPING:tokenizer_mapping"),mi(e,r),r=new ei,ye(r,1,"type.googleapis.com/odml.infra.proto.TokenizerCalculatorOptions");var i=new fn,n=de(t.i,2);ge(i,1,n),ye(n=new cn,2,"spm_vocab_model"),n=ue(n);t:{$t(i);var o=i.m,a=0|o[V];if(null==n){var s=ae(o);if(4!==se(s,o,a))break t;s.set(dn,0)}else{let t=ae(s=o),e=se(t,s,a);4!==e&&(e&&(a=Qt(s,a,e)),t.set(dn,4))}Qt(o,a,4,n)}return n&&!$(n)&&qt(i.m),ge(i,3,2),Zr(r,i.j()),ye(i=new ci,2,"TokenizerCalculator"),fe(i,8,ei,r),_e(i,5,"MODEL_DATA:__side_packet_1"),_e(i,3,"PROMPT_AND_INPUT_OPTIONS:prompt"),_e(i,5,"BYTES_TO_UNICODE_MAPPING:tokenizer_mapping"),_e(i,6,"PROCESSOR_GETTER:__input_side_1"),_e(i,4,"IDS_AND_INPUT_OPTIONS:__stream_0"),mi(e,i),r=new ei,ye(r,1,"type.googleapis.com/odml.infra.proto.LlmGpuCalculatorOptions"),ge(i=new sn,12,3),ye(i,1,"llm.tflite"),ge(i,14,0),n=_n(de(t.i,5)),ge(i,22,n),n=le(t.i,Gi,3),he(i,31,n),me(n=new nn,1,!0),null!=It(Yt(t.i,6))&&(It(Yt(t.i,6))??!1)&&me(n,1,!1),me(n,2,!0),me(n,5,!0),he(i,10,n),n=Zt(t.i,4,Ut,void 0===K?2:4),ne(i,29,n),n=new an,ge(o=new on,1,1),s=de(t.i,2),ge(o,2,s),null!=It(Yt(t.i,9))&&(It(Yt(t.i,9))??!1)&&(me(i,35,!0),pe(o,60,!0)),he(n,1,o),he(i,20,n),Zr(r,i.j()),ye(i=new ci,2,"LlmGpuCalculator"),fe(i,8,ei,r),_e(i,3,"IDS_AND_INPUT_OPTIONS:__stream_0"),_e(i,3,"FINISH:finish"),_e(i,3,"LORA_DATA:lora_model_data"),_e(i,5,"MODEL_DATA:__side_packet_1"),_e(i,4,"DECODED_IDS:__stream_3"),_e(i,4,"OUTPUT_END:__stream_4"),r=new ui,ye(r,1,"FINISH"),me(r,2,!0),fe(i,13,ui,r),mi(e,i),r=new ci,ye(r,2,"IsPacketPresentCalculator"),_e(r,3,"__stream_4"),_e(r,4,"text_end"),mi(e,r),r=new ei,ye(r,1,"type.googleapis.com/odml.infra.proto.DetokenizerCalculatorOptions"),i=new rn,t=_n(de(t.i,5)),ge(i,5,t),_e(i,4,"<eos>"),_e(i,4,"<|endoftext|>"),Zr(r,i.j()),t=new ci,ye(t,2,"DetokenizerCalculator"),fe(t,8,ei,r),_e(t,3,"IDS_AND_INPUT_OPTIONS:__stream_3"),_e(t,5,"PROCESSOR_GETTER:__input_side_1"),_e(t,5,"BYTES_TO_UNICODE_MAPPING:tokenizer_mapping"),_e(t,5,"MODEL_DATA:__side_packet_1"),_e(t,4,"FINISH_AND_INPUT_OPTIONS:finish"),_e(t,4,"WORDS:text_out"),mi(e,t),t=new ci,ye(t,2,"TokenCostCalculator"),_e(t,3,"PROMPT:token_cost_in"),_e(t,5,"PROCESSOR_GETTER:__input_side_1"),_e(t,5,"BYTES_TO_UNICODE_MAPPING:tokenizer_mapping"),_e(t,4,"NUM_TOKENS:token_cost_out"),mi(e,t),e}(t);t.j.attachStringVectorListener("text_out",(e,r)=>{e=function(t,e){return null==t||0===t.length?[]:t.map(t=>(t=(t=t.replaceAll("▁"," ")).replaceAll("<0x0A>","\n"),e&&(t=t.trimStart()),t.split("\\[eod\\]",1)[0]))}(e,0===t.G.length),e.forEach((e,r)=>{r<de(t.i,5)&&t.G[r].push(e)}),t.A&&0===t.D.length&&(t.B?(e.length>de(t.i,5)&&e.pop(),t.A(e,!1)):t.A(e[0],!1)),Ci(t,r)}),t.j.attachEmptyPacketListener("text_out",e=>{Ci(t,e)}),t.j.attachBoolListener("text_end",(e,r)=>{Ci(t,r);try{bn(t)}catch(e){throw t.l=!1,e}if(t.o&&(t.o.resolve(t.G.map(t=>t.join(""))),t.o=void 0),t.A)if(t.B){for(e=[],r=0;r<de(t.i,5);r++)e.push("");t.A(e,!0)}else t.A("",!0);t.l=!1,t.B=void 0}),t.j.attachEmptyPacketListener("text_end",e=>{t.l=!1,t.B=void 0,Ci(t,e),bn(t),t.o&&(t.o.resolve(t.G.map(t=>t.join(""))),t.o=void 0)}),t.j.attachIntListener("token_cost_out",(e,r)=>{t.T=e,Ci(t,r)}),t.U&&t.j.addStreamingReaderToInputSidePacket(t.U,"streaming_reader");var r=e.j();return t.C?.removeEventListener("uncapturederror",t.K),t.j.aa().then(()=>{t.C?.addEventListener("uncapturederror",t.K),t.D.length=0,t.setGraph(new Uint8Array(r),!0),t.finishProcessing()})}function En(t,e,r,i){if(t.A="function"==typeof r?r:i,(i=(e=Array.isArray(e)?e:[e]).filter(t=>Xi(t)).length)>0&&(null==Bt(Yt(t.i,7))||de(t.i,7)<i))throw Error(`maxNumImages is set to ${null!=Bt(Yt(t.i,7))?de(t.i,7):0}, but the query included ${i} images.`);if((i=e.filter(t=>Qi(t)).length)>0&&(null==It(Yt(t.i,8))||!It(Yt(t.i,8))))throw Error(`supportAudio was not enabled, but the query included ${i} audio chunks.`);if(t.v){if(t.B&&de(t.i,5)>1)throw Error("Multi-response generation is not supported for converted LLM models (.task format) yet, nor is it supported for multimodality. Please use the .bin format without multimodality or request only one response.");if(r instanceof gn)throw Error("LoRA is not supported for converted LLM models (.task format) yet, nor is it supported for multimodality. Please use the .bin format without multimodality to use LoRA.");return t.j.h.LLM_CANCEL_FLAG=void 0,t.j.R(e,t.u,(e,r)=>{0===t.D.length&&t.A&&(t.B?t.A([e],r):t.A(e,r))}).then(e=>(bn(t),[e]))}if(t.l)throw Error("Previous invocation or loading is still ongoing.");for(t.l=!0,t.j.h.LLM_CANCEL_FLAG=void 0,t.G.length=0,i=0;i<de(t.i,5);i++)t.G[i]=[];if(i=t.I+1,t.j.addStringToStream(e.join(""),"text_in",i),r instanceof gn){if(r.j!==t)throw t.l=!1,t.B=void 0,Error("The LoRA model was not loaded by this LLM Inference task.");t.j.addUintToStream(r.i,"lora_model_id_to_apply_in",i)}else t.j.addEmptyPacketToStream("lora_model_id_to_apply_in",i);return t.finishProcessing(),t.o=new yn,t.o.promise}var An=class extends Vi{constructor(t,e){if(super(new mn(t,e)),this.G=[],this.O=this.v=this.l=!1,this.D=[],this.K=t=>{if((t=t.error).message.match(/exceeds the max buffer size limit/))throw Error(`Failed to run this LLM model because it requires a buffer size that exceeds the maximum size your device supports, but you could try a smaller LLM model or different device.\nWebGPU throws: "${t.message}"`);if(t.message.match(/is larger than the maximum storage buffer binding size/))throw Error(`Failed to run this LLM model because it requires a storage buffer binding size that exceeds the maximum size your device supports, but you could try a smaller LLM model or different device.\nWebGPU throws: "${t.message}"`);this.D.push(t)},this.i=new Hi,zi(this.i,new yi),this.u=new Gi,he(this.i,3,this.u),ve(this.i,2,512),t=this.u,!wt(2))throw P("enum");oe(t,1,2,0),ge(this.u,2,40),oe(this.u,3,St(1),0),Xt(this.u,5,xt(0)),oe(this.u,4,St(.8),0),ve(this.i,5,1)}async N(t){if(this.l)throw Error("Cannot set options while loading or processing.");if(t.baseOptions?.modelAssetPath&&t.baseOptions?.modelAssetBuffer)throw Error("Cannot set both baseOptions.modelAssetPath and baseOptions.modelAssetBuffer");var e,r=new Promise(t=>{e=t});if(t.baseOptions?.modelAssetPath){var i=await fetch(t.baseOptions.modelAssetPath.toString());if(!i.ok)throw Error(`Failed to fetch model: ${t.baseOptions.modelAssetPath} (${i.status})`);if(!i.body)throw Error(`Failed to fetch model: ${t.baseOptions.modelAssetPath} (no body)`);i=i.body.getReader()}else t.baseOptions?.modelAssetBuffer instanceof Uint8Array?i=function(t){return new ReadableStream({start(){},async pull(e){e.enqueue(t),e.close()}})}(t.baseOptions.modelAssetBuffer).getReader():t.baseOptions?.modelAssetBuffer instanceof ReadableStreamDefaultReader?(i=t.baseOptions.modelAssetBuffer,t.baseOptions.modelAssetBuffer=void 0):e();if(!i)throw Error("No model asset provided.");{let[r,a]=Ai(i);var n=await async function(t){var e,r=[];for(let[n,o]of Ti){let a=n;var i=o;[t,e]=Ai(t),i=await i(e),await e.cancel(),i&&r.push(a)}if(await t.cancel(),0===r.length)throw Error("No model format matched.");if(1===r.length)return r[0];throw Error(`Multiple model formats matched: ${r}`)}(a);this.O=1===n;var o=null;if(2===n){let t=this.j.h;o=await async function(t,e){t=new Pi(t);var r=await Li(t,32);if(r=new DataView(r.buffer),r=Number(r.getBigUint64(24,!0)),(e=e(await Li(t,r-32)))<0)throw Error(".litertlm file could not be read or did not contain a web-formatted LLM");return await Li(t,e-r),t}(r,e=>{var r=t._malloc(e.length);return t.HEAPU8.set(e,r),e=t._GetLiteRtModelOffset(r),t._free(r),e})}n="maxNumImages"in t&&t.maxNumImages?t.maxNumImages:0,ve(this.i,7,n);let s="supportAudio"in t&&!!t.supportAudio;pe(this.i,8,s),this.O||n>0||s?(this.v=!0,i=o||r):(this.v=!1,this.U=Ki(o||r,e))}if(t.baseOptions?.gpuOptions?.device&&(this.C&&this.C.removeEventListener("uncapturederror",this.K),this.C=t.baseOptions.gpuOptions.device,this.j.ga(this.C),this.C.addEventListener("uncapturederror",this.K)),"maxTokens"in t&&ve(this.i,2,t.maxTokens??512),"topK"in t&&ge(this.u,2,t.topK??40),"temperature"in t&&oe(this.u,4,St(t.temperature??.8),0),"randomSeed"in t&&Xt(this.u,5,xt(t.randomSeed??0)),"loraRanks"in t&&function(t,e){ne(t,4,e)}(this.i,t.loraRanks??[]),"numResponses"in t){if((o=t.numResponses??1)<1)throw Error("'numResponses' must be at least 1.");if(this.v&&o>1)throw Error("'numResponses > 1' is not supported for converted LLM models yet, and is also not supported with multimodality.");ve(this.i,5,o),n=le(this.i,Gi,3),o>1&&n&&(n.j()<=1||(Yt(n,4,Et)??0)<=0)&&console.warn("To generate multiple responses, it is expected topK > 1 and temperature > 0; otherwise, all the generated responses may be the same.")}if("forceF32"in t&&void 0!==t.forceF32&&pe(this.i,6,t.forceF32),"disableRewinding"in t&&void 0!==t.disableRewinding){if(this.v&&t.disableRewinding)throw Error("'disableRewinding' is not supported for converted LLM models yet, and is also not supported with multimodality.");pe(this.i,9,t.disableRewinding)}return this.v?(this.j.V(),this.O?this.j.ba(i,this.i).then(()=>{bn(this)}):this.j.createLlmInferenceEngine(i,this.i).then(()=>{bn(this)})):(this.l=!0,t=Sn(this).then(()=>{}),Promise.all([r,t]).then(()=>{this.l=!1,bn(this)}))}get baseOptions(){return le(this.i,yi,1)}set baseOptions(t){zi(this.i,t)}get isIdle(){return!this.l&&!this.o}R(t,e,r){return de(this.i,5)>1&&console.warn("'numResponses' is set larger than 1 and this function only returns the first response, so we recommend either using 'generateResponses()' to obtain multiple responses, or else setting 'numResponses' to 1 for better performance."),this.B=!1,En(this,t,e,r).then(t=>t[0])}da(t,e,r){return this.B=!0,En(this,t,e,r)}S(t){if(t=Array.isArray(t)?t:[t],this.v)return this.j.S(t);if(this.l)throw Error("Previous invocation or loading is still ongoing.");if(t.some(Xi))throw Error("sizeInTokens requires maxNumImages > 0 for images.");if(t.some(Qi))throw Error("sizeInTokens requires supportAudio for audio.");return t=t.join(""),this.l=!0,this.T=void 0,this.j.addStringToStream(t,"token_cost_in",this.I+1),this.finishProcessing(),this.l=!1,this.T}Z(){var t=this.j.h;(this.v||this.l)&&(t.LLM_CANCEL_FLAG=1)}async ja(t){if(this.v)throw Error("LoRA is not supported for converted LLM models (.task format) yet, nor is it supported for multimodality. Please use the old format (.bin) without multimodality to use LoRA.");if(this.l)throw Error("Cannot load LoRA model while loading or processing.");if(this.l=!0,t instanceof Uint8Array){var e=new en(this.j.h,t.length);e.set(t),t=e}else t=t instanceof Blob?await async function(t,e){return Zi(t,e.stream(),e.size)}(this.j.h,t):await async function(t,e){e=await fetch(e.toString());var r=Number(e.headers.get("content-length"));if(!e.body)throw Error("Response body is not available.");if(!r)throw Error("File size is 0.");return Zi(t,e.body,r)}(this.j.h,t);e=new gn(this);var r=this.I+1;return this.j.Y(t,r),this.j.addUintToStream(e.i,"lora_model_id_to_load_in",r),this.finishProcessing(),tn(t),Ci(this,r),this.l=!1,e}close(){this.v&&this.j.V(),this.C?.removeEventListener("uncapturederror",this.K),super.close()}};An.prototype.loadLoraModel=An.prototype.ja,An.prototype.cancelProcessing=An.prototype.Z,An.prototype.sizeInTokens=An.prototype.S,An.prototype.generateResponses=An.prototype.da,An.prototype.generateResponse=An.prototype.R,An.prototype.setOptions=An.prototype.N,An.createWebGpuDevice=wn,An.createFromModelPath=async function(t,e){return Mi(t,e={baseOptions:{gpuOptions:{device:await wn()},modelAssetPath:e}})},An.createFromModelBuffer=async function(t,e){return Mi(t,e={baseOptions:{gpuOptions:{device:await wn()},modelAssetBuffer:e}})},An.createFromOptions=async function(t,e){if(!e.baseOptions?.gpuOptions?.device){let t=await wn();e.baseOptions=e.baseOptions??{},e.baseOptions.gpuOptions=e?.baseOptions?.gpuOptions??{},e.baseOptions.gpuOptions.device=t}return Mi(t,e)},exports.FilesetResolver=Si,exports.LlmInference=An,exports.TaskRunner=Vi;
2
2
  //# sourceMappingURL=genai_bundle_cjs.js.map