@mediapipe/tasks-genai 0.10.23 → 0.10.25
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 +8 -8
- package/genai.d.ts +82 -22
- package/genai_bundle.cjs +1 -1
- package/genai_bundle.cjs.map +1 -1
- package/genai_bundle.mjs +1 -1
- package/genai_bundle.mjs.map +1 -1
- package/package.json +1 -1
- package/wasm/genai_wasm_internal.js +1 -2
- package/wasm/genai_wasm_internal.wasm +0 -0
- package/wasm/genai_wasm_nosimd_internal.js +1 -2
- package/wasm/genai_wasm_nosimd_internal.wasm +0 -0
package/README.md
CHANGED
|
@@ -4,15 +4,15 @@ This package contains the GenAI tasks for MediaPipe.
|
|
|
4
4
|
|
|
5
5
|
## LLM Inference
|
|
6
6
|
|
|
7
|
-
The MediaPipe LLM Inference task generates text
|
|
7
|
+
The MediaPipe LLM Inference task generates text responses from input text. For
|
|
8
|
+
Gemma 3n models, it can process input images and audio as well.
|
|
8
9
|
|
|
9
|
-
In order to begin, you must have a model available. You can download [Gemma
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
[guide](https://developers.google.com/mediapipe/solutions/genai/llm_inference/web_js#convert-model).
|
|
10
|
+
In order to begin, you must have a model available. You can download [Gemma 3n
|
|
11
|
+
E4B](https://huggingface.co/google/gemma-3n-E4B-it-litert-lm/blob/main/gemma-3n-E4B-it-int4-Web.litertlm) or [Gemma 3n E2B](https://huggingface.co/google/gemma-3n-E2B-it-litert-lm/blob/main/gemma-3n-E2B-it-int4-Web.litertlm), or
|
|
12
|
+
browse for more pre-converted models on our [LiteRT HuggingFace community](https://huggingface.co/litert-community/models), where files named "-web.task" are
|
|
13
|
+
specially converted to run optimally in the browser. All text-only variants of
|
|
14
|
+
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
|
|
15
|
+
our web inference [guide](https://developers.google.com/mediapipe/solutions/genai/llm_inference/web_js) for more information.
|
|
16
16
|
Note that only models encoded for the GPU backend are currently supported.
|
|
17
17
|
```
|
|
18
18
|
const genai = await FilesetResolver.forGenAiTasks(
|
package/genai.d.ts
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
import * as jspb from 'google-protobuf';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Audio type for use in multi-modal LLM queries.
|
|
7
|
+
*/
|
|
8
|
+
declare interface Audio_2 {
|
|
9
|
+
audioSource: AudioSource;
|
|
10
|
+
}
|
|
11
|
+
export { Audio_2 as Audio }
|
|
12
|
+
|
|
13
|
+
declare interface AudioChunk {
|
|
14
|
+
audioSampleRateHz: number;
|
|
15
|
+
audioSamples: Float32Array;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
declare type AudioSource = string | AudioBuffer | AudioChunk;
|
|
19
|
+
|
|
5
20
|
/**
|
|
6
21
|
* Copyright 2022 The MediaPipe Authors.
|
|
7
22
|
*
|
|
@@ -111,6 +126,16 @@ export declare class FilesetResolver {
|
|
|
111
126
|
static forVisionTasks(basePath?: string): Promise<WasmFileset>;
|
|
112
127
|
}
|
|
113
128
|
|
|
129
|
+
/**
|
|
130
|
+
* Image type for use in multi-modal LLM queries.
|
|
131
|
+
*/
|
|
132
|
+
declare interface Image_2 {
|
|
133
|
+
imageSource: ImageSource;
|
|
134
|
+
}
|
|
135
|
+
export { Image_2 as Image }
|
|
136
|
+
|
|
137
|
+
declare type ImageSource = Exclude<CanvasImageSource, SVGElement> | string;
|
|
138
|
+
|
|
114
139
|
/**
|
|
115
140
|
* Options to configure the model loading and processing for LLM Inference task.
|
|
116
141
|
*/
|
|
@@ -177,108 +202,108 @@ export declare class LlmInference extends TaskRunner {
|
|
|
177
202
|
*/
|
|
178
203
|
get isIdle(): boolean;
|
|
179
204
|
/**
|
|
180
|
-
* Performs LLM Inference on the provided
|
|
205
|
+
* Performs LLM Inference on the provided prompt and waits
|
|
181
206
|
* asynchronously for the response. Only one call to `generateResponse()` can
|
|
182
207
|
* run at a time.
|
|
183
208
|
*
|
|
184
209
|
* @export
|
|
185
|
-
* @param
|
|
210
|
+
* @param query The prompt to process.
|
|
186
211
|
* @return The generated text result.
|
|
187
212
|
*/
|
|
188
|
-
generateResponse(
|
|
213
|
+
generateResponse(query: Prompt): Promise<string>;
|
|
189
214
|
/**
|
|
190
|
-
* Performs LLM Inference on the provided
|
|
215
|
+
* Performs LLM Inference on the provided prompt and waits
|
|
191
216
|
* asynchronously for the response. Only one call to `generateResponse()` can
|
|
192
217
|
* run at a time.
|
|
193
218
|
*
|
|
194
219
|
* @export
|
|
195
|
-
* @param
|
|
220
|
+
* @param query The prompt to process.
|
|
196
221
|
* @param progressListener A listener that will be triggered when the task has
|
|
197
222
|
* new partial response generated.
|
|
198
223
|
* @return The generated text result.
|
|
199
224
|
*/
|
|
200
|
-
generateResponse(
|
|
225
|
+
generateResponse(query: Prompt, progressListener?: ProgressListener): Promise<string>;
|
|
201
226
|
/**
|
|
202
|
-
* Performs LLM Inference on the provided
|
|
227
|
+
* Performs LLM Inference on the provided prompt and waits
|
|
203
228
|
* asynchronously for the response. Only one call to `generateResponse()` can
|
|
204
229
|
* run at a time.
|
|
205
230
|
*
|
|
206
231
|
* @export
|
|
207
|
-
* @param
|
|
232
|
+
* @param query The prompt to process.
|
|
208
233
|
* @param loraModel The LoRA model to apply on the text generation.
|
|
209
234
|
* @return The generated text result.
|
|
210
235
|
*/
|
|
211
|
-
generateResponse(
|
|
236
|
+
generateResponse(query: Prompt, loraModel?: LoraModel): Promise<string>;
|
|
212
237
|
/**
|
|
213
|
-
* Performs LLM Inference on the provided
|
|
238
|
+
* Performs LLM Inference on the provided prompt and waits
|
|
214
239
|
* asynchronously for the response. Only one call to `generateResponse()` can
|
|
215
240
|
* run at a time.
|
|
216
241
|
*
|
|
217
242
|
* @export
|
|
218
|
-
* @param
|
|
243
|
+
* @param query The prompt to process.
|
|
219
244
|
* @param loraModel The LoRA model to apply on the text generation.
|
|
220
245
|
* @param progressListener A listener that will be triggered when the task has
|
|
221
246
|
* new partial response generated.
|
|
222
247
|
* @return The generated text result.
|
|
223
248
|
*/
|
|
224
|
-
generateResponse(
|
|
249
|
+
generateResponse(query: Prompt, loraModel?: LoraModel, progressListener?: ProgressListener): Promise<string>;
|
|
225
250
|
/**
|
|
226
251
|
* Similar to `generateResponse()` but can return multiple responses for the
|
|
227
252
|
* given prompt if the task is initialized with a value for `numResponses`
|
|
228
253
|
* greater than 1.
|
|
229
254
|
*
|
|
230
255
|
* @export
|
|
231
|
-
* @param
|
|
256
|
+
* @param query The prompt to process.
|
|
232
257
|
* @return The generated results.
|
|
233
258
|
*/
|
|
234
|
-
generateResponses(
|
|
259
|
+
generateResponses(query: Prompt): Promise<string[]>;
|
|
235
260
|
/**
|
|
236
261
|
* Similar to `generateResponse()` but can return multiple responses for the
|
|
237
262
|
* given prompt if the task is initialized with a value for `numResponses`
|
|
238
263
|
* greater than 1.
|
|
239
264
|
*
|
|
240
265
|
* @export
|
|
241
|
-
* @param
|
|
266
|
+
* @param query The prompt to process.
|
|
242
267
|
* @param progressListener A listener that will be triggered when the task has
|
|
243
268
|
* new partial response generated.
|
|
244
269
|
* @return The generated results.
|
|
245
270
|
*/
|
|
246
|
-
generateResponses(
|
|
271
|
+
generateResponses(query: Prompt, progressListener: MultiResponseProgressListener): Promise<string[]>;
|
|
247
272
|
/**
|
|
248
273
|
* Similar to `generateResponse()` but can return multiple responses for the
|
|
249
274
|
* given prompt if the task is initialized with a value for `numResponses`
|
|
250
275
|
* greater than 1.
|
|
251
276
|
*
|
|
252
277
|
* @export
|
|
253
|
-
* @param
|
|
278
|
+
* @param query The prompt to process.
|
|
254
279
|
* @param loraModel The LoRA model to apply on the text generation.
|
|
255
280
|
* @return The generated results.
|
|
256
281
|
*/
|
|
257
|
-
generateResponses(
|
|
282
|
+
generateResponses(query: Prompt, loraModel: LoraModel): Promise<string[]>;
|
|
258
283
|
/**
|
|
259
284
|
* Similar to `generateResponse()` but can return multiple responses for the
|
|
260
285
|
* given prompt if the task is initialized with a value for `numResponses`
|
|
261
286
|
* greater than 1.
|
|
262
287
|
*
|
|
263
288
|
* @export
|
|
264
|
-
* @param
|
|
289
|
+
* @param query The prompt to process.
|
|
265
290
|
* @param loraModel The LoRA model to apply on the text generation.
|
|
266
291
|
* @param progressListener A listener that will be triggered when the task has
|
|
267
292
|
* new partial response generated.
|
|
268
293
|
* @return The generated results.
|
|
269
294
|
*/
|
|
270
|
-
generateResponses(
|
|
295
|
+
generateResponses(query: Prompt, loraModel: LoraModel, progressListener: MultiResponseProgressListener): Promise<string[]>;
|
|
271
296
|
/**
|
|
272
297
|
* Runs an invocation of *only* the tokenization for the LLM, and returns
|
|
273
298
|
* the size (in tokens) of the result. Cannot be called while
|
|
274
299
|
* a `generateResponse()` query is active. Runs synchronously.
|
|
275
300
|
*
|
|
276
301
|
* @export
|
|
277
|
-
* @param
|
|
302
|
+
* @param query The prompt to tokenize.
|
|
278
303
|
* @return The number of tokens in the resulting tokenization of the text.
|
|
279
304
|
* May return undefined if an error occurred.
|
|
280
305
|
*/
|
|
281
|
-
sizeInTokens(
|
|
306
|
+
sizeInTokens(query: Prompt): number | undefined;
|
|
282
307
|
/**
|
|
283
308
|
* Load a LoRA model to the LLM Inference Task and the LoRA model can be used
|
|
284
309
|
* by `generateResponse()`. The returned LoRA model can be applied only to the
|
|
@@ -318,6 +343,14 @@ declare class LlmInferenceGraphOptions extends jspb.Message {
|
|
|
318
343
|
clearForceF32(): void;
|
|
319
344
|
getForceF32(): boolean;
|
|
320
345
|
setForceF32(value: boolean): void;
|
|
346
|
+
hasMaxNumImages(): boolean;
|
|
347
|
+
clearMaxNumImages(): void;
|
|
348
|
+
getMaxNumImages(): number;
|
|
349
|
+
setMaxNumImages(value: number): void;
|
|
350
|
+
hasSupportAudio(): boolean;
|
|
351
|
+
clearSupportAudio(): void;
|
|
352
|
+
getSupportAudio(): boolean;
|
|
353
|
+
setSupportAudio(value: boolean): void;
|
|
321
354
|
serializeBinary(): Uint8Array;
|
|
322
355
|
toObject(includeInstance?: boolean): LlmInferenceGraphOptions.AsObject;
|
|
323
356
|
static toObject(includeInstance: boolean, msg: LlmInferenceGraphOptions): LlmInferenceGraphOptions.AsObject;
|
|
@@ -340,6 +373,8 @@ declare namespace LlmInferenceGraphOptions {
|
|
|
340
373
|
loraRanksList: Array<number>;
|
|
341
374
|
numResponses: number;
|
|
342
375
|
forceF32: boolean;
|
|
376
|
+
maxNumImages: number;
|
|
377
|
+
supportAudio: boolean;
|
|
343
378
|
};
|
|
344
379
|
}
|
|
345
380
|
|
|
@@ -380,6 +415,21 @@ export declare interface LlmInferenceOptions extends TaskRunnerOptions {
|
|
|
380
415
|
* the top result.
|
|
381
416
|
*/
|
|
382
417
|
numResponses?: number;
|
|
418
|
+
/**
|
|
419
|
+
* When set to true, will force inference to be performed with F32 precision.
|
|
420
|
+
* Useful for debugging F16 precision-related errors.
|
|
421
|
+
*/
|
|
422
|
+
forceF32?: boolean;
|
|
423
|
+
/**
|
|
424
|
+
* When set > 0, will enable vision modality usage. Will also enable streaming
|
|
425
|
+
* loading, and therefore is not compatible with "converted" models.
|
|
426
|
+
*/
|
|
427
|
+
maxNumImages?: number;
|
|
428
|
+
/**
|
|
429
|
+
* When set to true, will enable audio modality usage. Will also enable
|
|
430
|
+
* streaming loading, and therefore is not compatible with "converted" models.
|
|
431
|
+
*/
|
|
432
|
+
supportAudio?: boolean;
|
|
383
433
|
}
|
|
384
434
|
|
|
385
435
|
/**
|
|
@@ -411,6 +461,16 @@ export declare type MultiResponseProgressListener = (partialResult: string[], do
|
|
|
411
461
|
*/
|
|
412
462
|
export declare type ProgressListener = (partialResult: string, done: boolean) => unknown;
|
|
413
463
|
|
|
464
|
+
/**
|
|
465
|
+
* Type for an LLM query; may be multi-modal.
|
|
466
|
+
*/
|
|
467
|
+
export declare type Prompt = PromptPart | PromptPart[];
|
|
468
|
+
|
|
469
|
+
/**
|
|
470
|
+
* Type for a piece of an LLM query.
|
|
471
|
+
*/
|
|
472
|
+
declare type PromptPart = string | Image_2 | Audio_2;
|
|
473
|
+
|
|
414
474
|
/** Base class for all MediaPipe Tasks. */
|
|
415
475
|
declare abstract class TaskRunner {
|
|
416
476
|
protected constructor();
|
package/genai_bundle.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t="undefined"!=typeof self?self:{};let e;const n="undefined"!=typeof TextEncoder;function r(t){if(n)t=(e||=new TextEncoder).encode(t);else{let e=0;const n=new Uint8Array(3*t.length);for(let i=0;i<t.length;i++){var r=t.charCodeAt(i);if(r<128)n[e++]=r;else{if(r<2048)n[e++]=r>>6|192;else{if(r>=55296&&r<=57343){if(r<=56319&&i<t.length){const o=t.charCodeAt(++i);if(o>=56320&&o<=57343){r=1024*(r-55296)+o-56320+65536,n[e++]=r>>18|240,n[e++]=r>>12&63|128,n[e++]=r>>6&63|128,n[e++]=63&r|128;continue}i--}r=65533}n[e++]=r>>12|224,n[e++]=r>>6&63|128}n[e++]=63&r|128}}t=e===n.length?n:n.subarray(0,e)}return t}var i,o;t:{for(var s=["CLOSURE_FLAGS"],a=t,c=0;c<s.length;c++)if(null==(a=a[s[c]])){o=null;break t}o=a}var u,l=o&&o[610401301];function h(){var e=t.navigator;return e&&(e=e.userAgent)?e:""}i=null!=l&&l;const f=t.navigator;u=f&&f.userAgentData||null;var d={},p=null;function g(t){const e=t.length;let n=3*e/4;n%3?n=Math.floor(n):-1!="=.".indexOf(t[e-1])&&(n=-1!="=.".indexOf(t[e-2])?n-2:n-1);const r=new Uint8Array(n);let i=0;return function(t,e){function n(e){for(;r<t.length;){const e=t.charAt(r++),n=p[e];if(null!=n)return n;if(!/^[\s\xa0]*$/.test(e))throw Error("Unknown base64 encoding at char: "+e)}return e}m();let r=0;for(;;){const t=n(-1),r=n(0),i=n(64),o=n(64);if(64===o&&-1===t)break;e(t<<2|r>>4),64!=i&&(e(r<<4&240|i>>2),64!=o&&e(i<<6&192|o))}}(t,(function(t){r[i++]=t})),i!==n?r.subarray(0,i):r}function m(){if(!p){p={};var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),e=["+/=","+/","-_=","-_.","-_"];for(let n=0;n<5;n++){const r=t.concat(e[n].split(""));d[n]=r;for(let t=0;t<r.length;t++){const e=r[t];void 0===p[e]&&(p[e]=t)}}}}var _="undefined"!=typeof Uint8Array,y=!(!(i&&u&&u.brands.length>0)&&(-1!=h().indexOf("Trident")||-1!=h().indexOf("MSIE")))&&"function"==typeof btoa;const b=/[-_.]/g,v={"-":"+",_:"/",".":"="};function w(t){return v[t]||""}function S(t){if(!y)return g(t);t=b.test(t)?t.replace(b,w):t,t=atob(t);const e=new Uint8Array(t.length);for(let n=0;n<t.length;n++)e[n]=t.charCodeAt(n);return e}function E(t){return _&&null!=t&&t instanceof Uint8Array}var T={};function A(){return P||=new I(null,T)}var I=class{constructor(t,e){if(O(e),this.i=t,null!=t&&0===t.length)throw Error("ByteString should be constructed with non-empty values")}};let P,L;function O(t){if(t!==T)throw Error("illegal external caller")}function j(t,e){t.__closure__error__context__984382||(t.__closure__error__context__984382={}),t.__closure__error__context__984382.severity=e}function U(t){return j(t=Error(t),"warning"),t}var x="function"==typeof Symbol&&"symbol"==typeof Symbol();function B(t,e,n=!1){return"function"==typeof Symbol&&"symbol"==typeof Symbol()?n&&Symbol.for&&t?Symbol.for(t):null!=t?Symbol(t):Symbol():e}var k=B("jas",void 0,!0),N=B(void 0,"1oa"),F=B(void 0,"0actk"),D=B("m_m","ia",!0);const R={aa:{value:0,configurable:!0,writable:!0,enumerable:!1}},M=Object.defineProperties,V=x?k:"aa";var C;const G=[];function z(t,e){x||V in t||M(t,R),t[V]=e}function W(){return"function"==typeof BigInt}z(G,7),C=Object.freeze(G);var $={};function H(t,e){return void 0===e?t.i!==q&&!!(2&(0|t.m[V])):!!(2&e)&&t.i!==q}const q={};var K=Object.freeze({});function Y(t){return t.ha=!0,t}var J=Y((t=>"number"==typeof t)),X=Y((t=>"string"==typeof t)),Z=Y((t=>"boolean"==typeof t)),Q="function"==typeof t.BigInt&&"bigint"==typeof t.BigInt(0),tt=Y((t=>Q?t>=nt&&t<=it:"-"===t[0]?ot(t,et):ot(t,rt)));const et=Number.MIN_SAFE_INTEGER.toString(),nt=Q?BigInt(Number.MIN_SAFE_INTEGER):void 0,rt=Number.MAX_SAFE_INTEGER.toString(),it=Q?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 n=0;n<t.length;n++){const r=t[n],i=e[n];if(r>i)return!1;if(r<i)return!0}}let st,at=0,ct=0;function ut(t){const e=t>>>0;at=e,ct=(t-e)/4294967296>>>0}function lt(t){if(t<0){ut(-t);const[e,n]=gt(at,ct);at=e>>>0,ct=n>>>0}else ut(t)}function ht(t,e){const n=4294967296*e+(t>>>0);return Number.isSafeInteger(n)?n:ft(t,e)}function ft(t,e){if(t>>>=0,(e>>>=0)<=2097151)var n=""+(4294967296*e+t);else W()?n=""+(BigInt(e)<<BigInt(32)|BigInt(t)):(t=(16777215&t)+6777216*(n=16777215&(t>>>24|e<<8))+6710656*(e=e>>16&65535),n+=8147497*e,e*=2,t>=1e7&&(n+=t/1e7>>>0,t%=1e7),n>=1e7&&(e+=n/1e7>>>0,n%=1e7),n=e+dt(n)+dt(t));return n}function dt(t){return t=String(t),"0000000".slice(t.length)+t}function pt(t){if(t.length<16)lt(Number(t));else if(W())t=BigInt(t),at=Number(t&BigInt(4294967295))>>>0,ct=Number(t>>BigInt(32)&BigInt(4294967295));else{const e=+("-"===t[0]);ct=at=0;const n=t.length;for(let r=e,i=(n-e)%6+e;i<=n;r=i,i+=6){const e=Number(t.slice(r,i));ct*=1e6,at=1e6*at+e,at>=4294967296&&(ct+=Math.trunc(at/4294967296),ct>>>=0,at>>>=0)}if(e){const[t,e]=gt(at,ct);at=t,ct=e}}}function gt(t,e){return e=~e,t?t=1+~t:e+=1,[t,e]}function mt(t){return Array.prototype.slice.call(t)}const _t="function"==typeof BigInt?BigInt.asIntN:void 0,yt="function"==typeof BigInt?BigInt.asUintN:void 0,bt=Number.isSafeInteger,vt=Number.isFinite,wt=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 Tt(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 At(t){return null==t||"boolean"==typeof t?t:"number"==typeof t?!!t:void 0}const It=/^-?([1-9][0-9]*|0)(\.[0-9]+)?$/;function Pt(t){switch(typeof t){case"bigint":return!0;case"number":return vt(t);case"string":return It.test(t);default:return!1}}function Lt(t){if("number"!=typeof t)throw U("int32");if(!vt(t))throw U("int32");return 0|t}function Ot(t){return null==t?t:Lt(t)}function jt(t){if(null==t)return t;if("string"==typeof t&&t)t=+t;else if("number"!=typeof t)return;return vt(t)?0|t:void 0}function Ut(t){if(null!=t){if("number"!=typeof t)throw U("uint32");if(!vt(t))throw U("uint32");t>>>=0}return t}function xt(t){if(null==t)return t;if("string"==typeof t&&t)t=+t;else if("number"!=typeof t)return;return vt(t)?t>>>0:void 0}function Bt(t){if("-"===t[0])return!1;const e=t.length;return e<20||20===e&&Number(t.substring(0,6))<184467}function kt(t){if(null==t)return t;var e=typeof t;if("bigint"===e)return String(yt(64,t));if(Pt(t)){if("string"===e)return e=wt(Number(t)),bt(e)&&e>=0?t=String(e):(-1!==(e=t.indexOf("."))&&(t=t.substring(0,e)),Bt(t)||(pt(t),t=ft(at,ct))),t;if("number"===e)return(t=wt(t))>=0&&bt(t)?t:function(t){if(t<0){lt(t);var e=ft(at,ct);return t=Number(e),bt(t)?t:e}return Bt(e=String(t))?e:(lt(t),ht(at,ct))}(t)}}function Nt(t){return null==t||"string"==typeof t?t:void 0}function Ft(t,e,n){if(null!=t&&"object"==typeof t&&t[D]===$)return t;if(Array.isArray(t)){var r=0|t[V];return(n=r|32&n|2&n)!==r&&z(t,n),new e(t)}}function Dt(t,e,n,r){var i=void 0!==r;r=!!r;const o=[];var s=t.length;let a,c=4294967295,u=!1;const l=!!(64&e),h=l?128&e?0:-1:void 0;for(1&e||(a=s&&t[s-1],null!=a&&"object"==typeof a&&a.constructor===Object?c=--s:a=void 0,!l||128&e||i||(u=!0,c=c-h+h)),e=void 0,i=0;i<s;i++){let s=t[i];if(null!=s&&null!=(s=n(s,r)))if(l&&i>=c){const t=i-h;(e??={})[t]=s}else o[i]=s}if(a)for(let i in a){if(null==(t=a[i])||null==(t=n(t,r)))continue;let u;s=+i,l&&!Number.isNaN(s)&&(u=s+h)<c?o[u]=t:(e??={})[i]=t}return e&&(u?o.push(e):o[c]=e),o}function Rt(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,Rt)}if(t[D]===$)return Mt(t);if(t instanceof I){if(null==(e=t.i))t="";else if("string"==typeof e)t=e;else{if(y){for(var n="",r=0,i=e.length-10240;r<i;)n+=String.fromCharCode.apply(null,e.subarray(r,r+=10240));n+=String.fromCharCode.apply(null,r?e.subarray(r):e),e=btoa(n)}else{void 0===n&&(n=0),m(),n=d[n],r=Array(Math.floor(e.length/3)),i=n[64]||"";let t=0,u=0;for(;t<e.length-2;t+=3){var o=e[t],s=e[t+1],a=e[t+2],c=n[o>>2];o=n[(3&o)<<4|s>>4],s=n[(15&s)<<2|a>>6],a=n[63&a],r[u++]=c+o+s+a}switch(c=0,a=i,e.length-t){case 2:a=n[(15&(c=e[t+1]))<<2]||i;case 1:e=e[t],r[u]=n[e>>2]+n[(3&e)<<4|c>>4]+a+i}e=r.join("")}t=t.i=e}return t}return}return t}function Mt(t){return Dt(t=t.m,0|t[V],Rt)}let Vt,Ct;function Gt(t,e,n){return zt(t,e[0],e[1],n?1:2)}function zt(e,n,r,i=0){if(null==e){var o=32;r?(e=[r],o|=128):e=[],n&&(o=-8380417&o|(1023&n)<<13)}else{if(!Array.isArray(e))throw Error("narr");if(2048&(o=0|e[V])&&!(2&o)&&function(){if(null!=F){var e=L??={},n=e[F]||0;n>=5||(e[F]=n+1,j(e=Error(),"incident"),function(e){t.setTimeout((()=>{throw e}),0)}(e))}}(),256&o)throw Error("farr");if(64&o)return 0!==i||2048&o||z(e,2048|o),e;if(r&&(o|=128,r!==e[0]))throw Error("mid");t:{o|=64;var s=(r=e).length;if(s){var a=s-1;const t=r[a];if(null!=t&&"object"==typeof t&&t.constructor===Object){if((a-=n=128&o?0:-1)>=1024)throw Error("pvtlmt");for(var c in t)(s=+c)<a&&(r[s+n]=t[c],delete t[c]);o=-8380417&o|(1023&a)<<13;break t}}if(n){if((c=Math.max(n,s-(128&o?0:-1)))>1024)throw Error("spvt");o=-8380417&o|(1023&c)<<13}}}return o|=64,0===i&&(o|=2048),z(e,o),e}function Wt(t,e){if("object"!=typeof t)return t;if(Array.isArray(t)){var n=0|t[V];return 0===t.length&&1&n?t=void 0:2&n||(!e||4096&n||16&n?t=$t(t,n,!1,e&&!(16&n)):(e=t,x||V in e||M(e,R),e[V]|=34,4&n&&Object.freeze(t))),t}if(t[D]===$){const r=0|(e=t.m)[V];return n=H(t,r)?t:$t(e,r)}return t instanceof I?t:void 0}function $t(t,e,n,r){return r??=!!(34&e),t=Dt(t,e,Wt,r),r=32,n&&(r|=2),z(t,e=8380609&e|r),t}function Ht(t){if(t.i!==q)return!1;let e=t.m;return e=$t(e,0|e[V]),t.m=e,t.i=void 0,t.o=void 0,!0}function qt(t){if(!Ht(t)&&H(t,0|t.m[V]))throw Error()}function Kt(t,e,n,r){if(null!==(t=Yt(t.m,e,n,r)))return t}function Yt(t,e,n,r){if(-1===e)return null;const i=e+(n?0:-1),o=t.length-1;let s,a;if(!(o<1+(n?0:-1))){if(i>=o)if(s=t[o],null!=s&&"object"==typeof s&&s.constructor===Object)n=s[e],a=!0;else{if(i!==o)return;n=s}else n=t[i];if(r&&null!=n){if(null==(r=r(n)))return r;if(!Object.is(r,n))return a?s[e]=r:t[i]=r,r}return n}}function Jt(t,e,n){qt(t),Xt(t=t.m,0|t[V],e,n)}function Xt(t,e,n,r,i){const o=n+(i?0:-1);var s=t.length-1;if(s>=1+(i?0:-1)&&o>=s){const i=t[s];if(null!=i&&"object"==typeof i&&i.constructor===Object)return i[n]=r,e}return o<=s?(t[o]=r,e):(void 0!==r&&(n>=(s=(e??=0|t[V])>>13&1023||536870912)?null!=r&&(t[s+(i?0:-1)]={[n]:r}):t[o]=r),e)}function Zt(t,e,n,r,i){let o=t.m,s=0|o[V];r=H(t,s)?1:r,i=!!i||3===r,2===r&&Ht(t)&&(o=t.m,s=0|o[V]);let a=(t=te(o,e))===C?7:0|t[V],c=ee(a,s);var u=!(4&c);if(u){4&c&&(t=mt(t),a=0,c=le(c,s),s=Xt(o,s,e,t));let r=0,i=0;for(;r<t.length;r++){const e=n(t[r]);null!=e&&(t[i++]=e)}i<r&&(t.length=i),n=-513&(4|c),c=n&=-1025,c&=-4097}return c!==a&&(z(t,c),2&c&&Object.freeze(t)),Qt(t,c,o,s,e,r,u,i)}function Qt(t,e,n,r,i,o,s,a){let c=e;return 1===o||4===o&&(2&e||!(16&e)&&32&r)?ne(e)||((e|=!t.length||s&&!(4096&e)||32&r&&!(4096&e||16&e)?2:256)!==c&&z(t,e),Object.freeze(t)):(2===o&&ne(e)&&(t=mt(t),c=0,e=le(e,r),Xt(n,r,i,t)),ne(e)||(a||(e|=16),e!==c&&z(t,e))),t}function te(t,e,n){return t=Yt(t,e,n),Array.isArray(t)?t:C}function ee(t,e){return 2&e&&(t|=2),1|t}function ne(t){return!!(2&t)&&!!(4&t)||!!(256&t)}function re(t,e,n){qt(t);let r=0|(t=t.m)[V];if(null==n)Xt(t,r,e);else{var i=n===C?7:0|n[V],o=i,s=ne(i),a=s||Object.isFrozen(n);for(s||(i=0),a||(n=mt(n),o=0,i=le(i,r),a=!1),i|=5,s=0;s<n.length;s++){const t=n[s],e=Lt(t);Object.is(t,e)||(a&&(n=mt(n),o=0,i=le(i,r),a=!1),n[s]=e)}i!==o&&(a&&(n=mt(n),i=le(i,r)),z(n,i)),Xt(t,r,e,n)}}function ie(t,e,n,r){qt(t),Xt(t=t.m,0|t[V],e,("0"===r?0===Number(n):n===r)?void 0:n)}function oe(t){if(x)return t[N]??(t[N]=new Map);if(N in t)return t[N];const e=new Map;return Object.defineProperty(t,N,{value:e}),e}function se(t,e,n){var r=Fr;let i=t.get(r);if(null!=i)return i;i=0;for(let t=0;t<r.length;t++){const o=r[t];null!=Yt(e,o)&&(0!==i&&(n=Xt(e,n,i)),i=o)}return t.set(r,i),i}function ae(t,e,n){let r=t.m,i=0|r[V];if(e=function(t,e,n,r){if(null!=(t=Yt(t,r,void 0,(t=>Ft(t,n,e)))))return t}(r,i,e,n),null==e)return e;if(i=0|r[V],!H(t,i)){var o,s=e;const a=s.m,c=0|a[V];(o=H(s,c)?new s.constructor($t(a,c,!1)):s)!==e&&(Ht(t)&&(r=t.m,i=0|r[V]),Xt(r,i,n,e=o))}return e}function ce(t){return null==t&&(t=void 0),t}function ue(t,e,n){return Jt(t,e,n=ce(n)),t}function le(t,e){return-273&(2&e?2|t:-3&t)}function he(t,e,n,r){qt(t);var i=t.m,o=i;const s=H(t,i=0|i[V])?1:2;2===s&&Ht(t)&&(i=0|(o=t.m)[V]);let a=(t=te(o,e))===C?7:0|t[V];var c=ee(a,i);const u=!(4&c);if(u){var l=t,h=i;const e=!!(2&c);e&&(h|=2);let r=!e,o=!0,s=0,a=0;for(;s<l.length;s++){const t=Ft(l[s],n,h);if(t instanceof n){if(!e){const e=H(t);r&&=!e,o&&=e}l[a++]=t}}a<s&&(l.length=a),c|=4,c=o?-4097&c:4096|c,c=r?8|c:-9&c}c!==a&&(z(t,c),2&c&&Object.freeze(t)),e=t=Qt(t,c,o,i,e,s,u,!0),r=null!=r?r:new n,e.push(r),o=n=e===C?7:0|e[V],H(r)?(n&=-9,1===e.length&&(n&=-4097)):n|=4096,n!==o&&z(e,n)}function fe(t,e){return xt(Kt(t,e))??0}function de(t,e,n){ie(t,e,Ot(n),0)}function pe(t,e,n){if(null!=n&&"string"!=typeof n)throw Error();ie(t,e,n,"")}function ge(t,e,n){if(qt(t),e=(t=Zt(t,e,Nt,2,!0)).push,"string"!=typeof n)throw Error();e.call(t,n)}var me=class{constructor(t,e,n){if(this.buffer=t,n&&!e)throw Error()}};function _e(t){if("string"==typeof t)return new me(S(t),!0);if(Array.isArray(t))return new me(new Uint8Array(t),!0);if(t.constructor===Uint8Array)return new me(t,!1);if(t.constructor===ArrayBuffer)return t=new Uint8Array(t),new me(t,!1);if(t.constructor===I){O(T);var e=t.i;return e=(null==(e=null==e||E(e)?e:"string"==typeof e?S(e):null)?e:t.i=e)||new Uint8Array(0),new me(e,!0,t)}if(t instanceof Uint8Array)return t=t.constructor===Uint8Array?t:new Uint8Array(t.buffer,t.byteOffset,t.byteLength),new me(t,!1);throw Error()}var ye=class{constructor(t,e){this.m=zt(t,e)}toJSON(){return Mt(this)}};function be(t){return t?/^\d+$/.test(t)?(pt(t),new ve(at,ct)):null:we||=new ve(0,0)}ye.prototype[D]=$,ye.prototype.toString=function(){return this.m.toString()};var ve=class{constructor(t,e){this.j=t>>>0,this.i=e>>>0}};let we;function Se(t){return t?/^-?\d+$/.test(t)?(pt(t),new Ee(at,ct)):null:Te||=new Ee(0,0)}var Ee=class{constructor(t,e){this.j=t>>>0,this.i=e>>>0}};let Te;function Ae(t,e,n){for(;n>0||e>127;)t.i.push(127&e|128),e=(e>>>7|n<<25)>>>0,n>>>=7;t.i.push(e)}function Ie(t,e){for(;e>127;)t.i.push(127&e|128),e>>>=7;t.i.push(e)}function Pe(t,e){if(e>=0)Ie(t,e);else{for(let n=0;n<9;n++)t.i.push(127&e|128),e>>=7;t.i.push(1)}}function Le(t,e){0!==e.length&&(t.l.push(e),t.j+=e.length)}function Oe(t,e,n){Ie(t.i,8*e+n)}function je(t,e){return Oe(t,e,2),e=t.i.end(),Le(t,e),e.push(t.j),e}function Ue(t,e){var n=e.pop();for(n=t.j+t.i.length()-n;n>127;)e.push(127&n|128),n>>>=7,t.j++;e.push(n),t.j++}function xe(t,e,n){Oe(t,e,2),Ie(t.i,n.length),Le(t,t.i.end()),Le(t,n)}function Be(){const t=class{constructor(){throw Error()}};return Object.setPrototypeOf(t,t.prototype),t}var ke=Be(),Ne=Be(),Fe=Be(),De=Be(),Re=Be(),Me=Be(),Ve=class{constructor(t,e){this.i=t,t=ke,this.j=!!t&&e===t||!1}};function Ce(t,e,n,r,i){null!=(e=Ke(e,r))&&(n=je(t,n),i(e,t),Ue(t,n))}const Ge=new Ve(Ce,ke),ze=new Ve(Ce,ke);var We=Symbol(),$e=Symbol();let He;function qe(t){var e=Ye,n=Je,r=t[We];if(r)return r;(r={}).ga=t,r.S=function(t){switch(typeof t){case"boolean":return Vt||=[0,void 0,!0];case"number":return t>0?void 0:0===t?Ct||=[0,void 0]:[-t,void 0];case"string":return[0,t];case"object":return t}}(t[0]);var i=t[1];let o=1;i&&i.constructor===Object&&(r.X=i,"function"==typeof(i=t[++o])&&(r.ba=!0,He??=t[o+1],i=t[o+=2]));const s={};for(;i&&Array.isArray(i)&&i.length&&"number"==typeof i[0]&&i[0]>0;){for(var a=0;a<i.length;a++)s[i[a]]=i;i=t[++o]}for(a=1;void 0!==i;){let s;"number"==typeof i&&(a+=i,i=t[++o]);var c=void 0;if(i instanceof Ve?s=i:(s=Ge,o--),s?.j){i=t[++o],c=t;var u=o;"function"==typeof i&&(i=i(),c[u]=i),c=i}for(u=a+1,"number"==typeof(i=t[++o])&&i<0&&(u-=i,i=t[++o]);a<u;a++)c?n(r,a,s,c):e(r,a,s)}return t[We]=r}function Ke(t,e){return t instanceof ye?t.m:Array.isArray(t)?Gt(t,e,!1):void 0}function Ye(t,e,n){t[e]=n.i}function Je(t,e,n,r){let i,o;const s=n.i;t[e]=(t,e,n)=>s(t,e,n,o||=qe(r).S,i||=Xe(r))}function Xe(t){let e=t[$e];if(!e){const n=qe(t);e=(t,e)=>Ze(t,e,n),t[$e]=e}return e}function Ze(t,e,n){!function(t,e,n){e=128&e?0:-1;const r=t.length;var i;(i=!!r)&&(i=null!=(i=t[r-1])&&"object"==typeof i&&i.constructor===Object);const o=r+(i?-1:0);for(let r=0;r<o;r++)n(r-e,t[r]);if(i){t=t[r-1];for(const e in t)!isNaN(e)&&n(+e,t[e])}}(t,0|t[V],((t,r)=>{if(null!=r){var i=function(t,e){var n=t[e];if(n)return n;if((n=t.X)&&(n=n[e])){var r=(n=Array.isArray(n)?n[0]instanceof Ve?n:[ze,n]:[n,void 0])[0].i;if(n=n[1]){const e=Xe(n),i=qe(n).S;n=t.ba?He(i,e):(t,n,o)=>r(t,n,o,i,e)}else n=r;return t[e]=n}}(n,t);i&&i(e,r,t)}}))}var Qe,tn=0,en=tn;if(X(en)){if(!/^\s*(?:-?[1-9]\d*|0)?\s*$/.test(en))throw Error(String(en))}else if((Qe=J(en))&&(Qe=!Number.isSafeInteger(en)),Qe)throw Error(String(en));function nn(t,e){if(Array.isArray(e)){var n=0|e[V];if(4&n)return e;for(var r=0,i=0;r<e.length;r++){const n=t(e[r]);null!=n&&(e[i++]=n)}return i<r&&(e.length=i),z(e,-1537&(5|n)),2&n&&Object.freeze(e),e}}function rn(t,e){return new Ve(t,e)}function on(t,e,n){null!=(e=Et(e))&&(Oe(t,n,5),t=t.i,(n=st||=new DataView(new ArrayBuffer(8))).setFloat32(0,+e,!0),ct=0,e=at=n.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 sn(t,e,n){null!=(e=jt(e))&&null!=e&&(Oe(t,n,0),Pe(t.i,e))}function an(t,e,n){null!=(e=At(e))&&(Oe(t,n,0),t.i.i.push(e?1:0))}function cn(t,e,n){null!=(e=Nt(e))&&xe(t,n,r(e))}function un(t,e,n,r,i){null!=(e=Ke(e,r))&&(n=je(t,n),i(e,t),Ue(t,n))}function ln(t,e,n){null!=(e=jt(e))&&(e=parseInt(e,10),Oe(t,n,0),Pe(t.i,e))}Q||(tn=Z(tn)?tn?"1":"0":X(tn)?tn.trim()||"0":String(tn));var hn,fn=rn(on,Re),dn=rn(on,Re),pn=rn((function(t,e,n){if(e=function(t){if(null==t)return t;var e=typeof t;if("bigint"===e)return String(_t(64,t));if(Pt(t)){if("string"===e){if(e=wt(Number(t)),bt(e))t=String(e);else if(-1!==(e=t.indexOf("."))&&(t=t.substring(0,e)),e=t.length,!("-"===t[0]?e<20||20===e&&Number(t.substring(0,7))>-922337:e<19||19===e&&Number(t.substring(0,6))<922337))if(pt(t),t=at,2147483648&(e=ct))if(W())t=""+(BigInt(0|e)<<BigInt(32)|BigInt(t>>>0));else{const[n,r]=gt(t,e);t="-"+ft(n,r)}else t=ft(t,e);return t}if("number"===e){if(t=wt(t),!bt(t)){lt(t),e=at;var n=ct;(t=2147483648&n)&&(n=~n>>>0,0==(e=1+~e>>>0)&&(n=n+1>>>0)),t="number"==typeof(e=ht(e,n))?t?-e:e:t?"-"+e:e}return t}}}(e),null!=e){if("string"==typeof e)Se(e);if(null!=e)switch(Oe(t,n,0),typeof e){case"number":t=t.i,lt(e),Ae(t,at,ct);break;case"bigint":n=BigInt.asUintN(64,e),n=new Ee(Number(n&BigInt(4294967295)),Number(n>>BigInt(32))),Ae(t.i,n.j,n.i);break;default:n=Se(e),Ae(t.i,n.j,n.i)}}}),Be()),gn=rn((function(t,e,n){if(null!=(e=kt(e))){if("string"==typeof e)be(e);if(null!=e)switch(Oe(t,n,0),typeof e){case"number":t=t.i,lt(e),Ae(t,at,ct);break;case"bigint":n=BigInt.asUintN(64,e),n=new ve(Number(n&BigInt(4294967295)),Number(n>>BigInt(32))),Ae(t.i,n.j,n.i);break;default:n=be(e),Ae(t.i,n.j,n.i)}}}),Be()),mn=rn(sn,De);hn=new Ve((function(t,e,n){if(null!=(e=nn(jt,e))&&e.length){n=je(t,n);for(let n=0;n<e.length;n++)Pe(t.i,e[n]);Ue(t,n)}}),De);var _n,yn=rn(sn,De),bn=rn(sn,De),vn=rn(an,Ne),wn=rn(an,Ne),Sn=rn(cn,Fe);_n=new Ve((function(t,e,n){if(null!=(e=nn(Nt,e)))for(let a=0;a<e.length;a++){var i=t,o=n,s=e[a];null!=s&&xe(i,o,r(s))}}),Fe);var En,Tn=rn(cn,Fe),An=rn(cn,Fe),In=function(t,e,n=ke){return new Ve(e,n)}(0,(function(t,e,n,r,i){if(Array.isArray(e))for(let o=0;o<e.length;o++)un(t,e[o],n,r,i)})),Pn=new Ve(un,ke),Ln=rn((function(t,e,n){null!=(e=xt(e))&&null!=e&&(Oe(t,n,0),Ie(t.i,e))}),Be()),On=rn(ln,Me);En=new Ve((function(t,e,n){if(null!=(e=nn(jt,e))&&e.length){n=je(t,n);for(let n=0;n<e.length;n++)Pe(t.i,e[n]);Ue(t,n)}}),Me);var jn=rn(ln,Me);function Un(t){return function(){const e=new class{constructor(){this.l=[],this.j=0,this.i=new class{constructor(){this.i=[]}length(){return this.i.length}end(){const t=this.i;return this.i=[],t}}}};Ze(this.m,e,qe(t)),Le(e,e.i.end());const n=new Uint8Array(e.j),r=e.l,i=r.length;let o=0;for(let t=0;t<i;t++){const e=r[t];n.set(e,o),o+=e.length}return e.l=[n],n}}function xn(t,e){if(null!=e)if(Array.isArray(e))Jt(t,2,Dt(e,0,Rt));else{if(!("string"==typeof e||e instanceof I||E(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 I(e,T):A();else if(e.constructor!==I){if(!E(e))throw Error();e=e.length?new I(new Uint8Array(e),T):A()}ie(t,2,e,A())}}var Bn=class extends ye{constructor(t){super(t)}},kn=[0,Tn,rn((function(t,e,n){if(null!=e){if(e instanceof ye){const r=e.ja;return void(r&&(e=r(e),null!=e&&xe(t,n,_e(e).buffer)))}if(Array.isArray(e))return}null!=(e=null==e||"string"==typeof e||e instanceof I?e:void 0)&&xe(t,n,_e(e).buffer)}),Be())];let Nn,Fn=globalThis.trustedTypes;function Dn(t){var e;return void 0===Nn&&(Nn=function(){let t=null;if(!Fn)return t;try{const e=t=>t;t=Fn.createPolicy("goog#html",{createHTML:e,createScript:e,createScriptURL:e})}catch(t){}return t}()),t=(e=Nn)?e.createScriptURL(t):t,new class{constructor(t){this.i=t}toString(){return this.i+""}}(t)}function Rn(t,...e){if(0===e.length)return Dn(t[0]);let n=t[0];for(let r=0;r<e.length;r++)n+=encodeURIComponent(e[r])+t[r+1];return Dn(n)}var Mn={};Mn[336783863]=[0,Sn,vn,-1,mn,[0,[1,2,3,4,5,6,7,8,9],Pn,[0],Pn,[0,vn,Sn,vn,On,-1,En,Sn,-1,[0,vn,-1],On,vn,-1],Pn,[0,Sn,-2],Pn,[0,mn,vn,1,vn,-3],Pn,[0,mn,On,vn,-1,hn,On,-1],Pn,[0,Sn,-2],Pn,[0,Sn,On],Pn,[0,On,Sn,-1,vn],Pn,[0,On,-1]],[0,Sn],vn,[0,[1,3],[2,4],Pn,[0,hn],-1,Pn,[0,_n],-1,In,[0,Sn,-1]],Sn];var Vn=class extends ye{constructor(t){super(t)}},Cn=[0,pn,-1,wn,-3,pn,hn,Tn,yn,pn,-1,wn,yn,wn,-2,Tn],Gn=class extends ye{constructor(t){super(t,500)}K(t){return ue(this,7,t)}},zn=[-1,{}],Wn=[0,Sn,1,zn],$n=[0,Sn,_n,zn];function Hn(t,e){he(t,1,Gn,e)}var qn=class extends ye{constructor(t){super(t,500)}K(t){return ue(this,1001,t)}};qn.prototype.j=Un([-500,In,[-500,Tn,-1,_n,-3,[-2,Mn,vn],In,kn,yn,-1,Wn,$n,In,[0,Tn,wn],Tn,Cn,yn,_n,987,_n],4,In,[-500,Sn,-1,[-1,{}],998,Sn],In,[-500,Sn,_n,-1,[-2,{},vn],997,_n,-1],yn,In,[-500,Sn,_n,zn,998,_n],_n,yn,Wn,$n,In,[0,Tn,-1,zn],_n,-2,Cn,Tn,-1,wn,[0,wn,Ln],978,zn,In,kn]);var Kn=class extends ye{constructor(t){super(t)}};let Yn;const Jn=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 Xn(){if(void 0===Yn)try{await WebAssembly.instantiate(Jn),Yn=!0}catch{Yn=!1}return Yn}async function Zn(t,e=Rn``){const n=await Xn()?"wasm_internal":"wasm_nosimd_internal";return{wasmLoaderPath:`${e}/${t}_${n}.js`,wasmBinaryPath:`${e}/${t}_${n}.wasm`}}var Qn=class{};function tr(t){function e(e,n){return new ReadableStream({start(){},async pull(r){i=i.then((async()=>{if(e.cache.length>0)r.enqueue(e.cache.shift());else{var{value:i,done:o}=await t.read();i&&(n.active&&n.cache.push(i),e.active&&r.enqueue(i)),o&&r.close()}})),await i},cancel(){e.active=!1,e.cache.length=0,n.active||t.cancel()}})}var n={cache:[],active:!0};const r={cache:[],active:!0};let i=Promise.resolve();const o=e(n,r);return n=e(r,n),[o.getReader(),n.getReader()]}async function er(t,e){const n=new Uint8Array(e);let r=0;for(;r<e;){const{value:i,done:o}=await t.read();if(i){const t=i.subarray(0,e-r);n.set(t,r),r+=t.length}if(o)throw Error(`Expected ${e} bytes, but stream ended after reading ${r} bytes.`)}return await t.cancel(),n}Qn.forVisionTasks=function(t){return Zn("vision",t)},Qn.forTextTasks=function(t){return Zn("text",t)},Qn.forGenAiExperimentalTasks=function(t){return Zn("genai_experimental",t)},Qn.forGenAiTasks=function(t){return Zn("genai",t)},Qn.forAudioTasks=function(t){return Zn("audio",t)},Qn.isSimdSupported=function(){return Xn()};const nr=[[0,async t=>{const e=(new TextEncoder).encode("TFL3").length;return t=await er(t,e+4),"TFL3"===new TextDecoder("utf-8").decode(t.subarray(4,e+4))}],[1,async t=>80===(t=await er(t,6))[4]&&75===t[5]]];function rr(){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 ir(t){if("function"!=typeof importScripts){const e=document.createElement("script");return e.src=t.toString(),e.crossOrigin="anonymous",new Promise(((t,n)=>{e.addEventListener("load",(()=>{t()}),!1),e.addEventListener("error",(t=>{n(t)}),!1),document.body.appendChild(e)}))}importScripts(t.toString())}function or(t,e,n){t.j||console.error("No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target"),n(e=t.h.stringToNewUTF8(e)),t.h._free(e)}function sr(t,e,n){t.j||console.error("No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target");const r=new Uint32Array(e.length);for(let n=0;n<e.length;n++)r[n]=t.h.stringToNewUTF8(e[n]);e=t.h._malloc(4*r.length),t.h.HEAPU32.set(r,e>>2),n(e);for(const e of r)t.h._free(e);t.h._free(e)}function ar(t,e,n){t.h.simpleListeners=t.h.simpleListeners||{},t.h.simpleListeners[e]=n}function cr(t,e,n){let r=[];t.h.simpleListeners=t.h.simpleListeners||{},t.h.simpleListeners[e]=(t,e,i)=>{e?(n(r,i),r=[]):r.push(t)}}const ur=(lr=class{constructor(t,e){this.o=!0,this.h=t,this.i=null,this.l=0,this.j="function"==typeof this.h._addIntToInputStream,void 0!==e?this.h.canvas=e:rr()?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){const 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){const n=t.length,r=this.h._malloc(n);this.h.HEAPU8.set(t,r),e?this.h._changeBinaryGraph(n,r):this.h._changeTextGraph(n,r),this.h._free(r)}configureAudio(t,e,n,r,i){this.h._configureAudio||console.warn('Attempting to use configureAudio without support for input audio. Is build dep ":gl_graph_runner_audio" missing?'),or(this,r||"input_audio",(r=>{or(this,i=i||"audio_header",(i=>{this.h._configureAudio(r,i,t,e??0,n)}))}))}setAutoResizeCanvas(t){this.o=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,n){this.addAudioToStreamWithShape(t,0,0,e,n)}addAudioToStreamWithShape(t,e,n,r,i){const o=4*t.length;this.l!==o&&(this.i&&this.h._free(this.i),this.i=this.h._malloc(o),this.l=o),this.h.HEAPF32.set(t,this.i/4),or(this,r,(t=>{this.h._addAudioToInputStream(this.i,e,n,t,i)}))}addGpuBufferToStream(t,e,n){or(this,e,(e=>{if(!this.h.canvas)throw Error("No OpenGL canvas configured.");e?this.h._bindTextureToStream(e):this.h._bindTextureToCanvas();const r=this.h.canvas.getContext("webgl2")||this.h.canvas.getContext("webgl");if(!r)throw Error("Failed to obtain WebGL context from the provided canvas. `getContext()` should only be invoked with `webgl` or `webgl2`.");this.h.gpuOriginForWebTexturesIsBottomLeft&&r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!0),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,t),this.h.gpuOriginForWebTexturesIsBottomLeft&&r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1);const[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.o||i===this.h.canvas.width&&o===this.h.canvas.height||(this.h.canvas.width=i,this.h.canvas.height=o);const[s,a]=[i,o];this.h._addBoundTextureToStream(e,s,a,n)}))}addBoolToStream(t,e,n){or(this,e,(e=>{this.h._addBoolToInputStream(t,e,n)}))}addDoubleToStream(t,e,n){or(this,e,(e=>{this.h._addDoubleToInputStream(t,e,n)}))}addFloatToStream(t,e,n){or(this,e,(e=>{this.h._addFloatToInputStream(t,e,n)}))}addIntToStream(t,e,n){or(this,e,(e=>{this.h._addIntToInputStream(t,e,n)}))}addUintToStream(t,e,n){or(this,e,(e=>{this.h._addUintToInputStream(t,e,n)}))}addStringToStream(t,e,n){or(this,e,(e=>{or(this,t,(t=>{this.h._addStringToInputStream(t,e,n)}))}))}addStringRecordToStream(t,e,n){or(this,e,(e=>{sr(this,Object.keys(t),(r=>{sr(this,Object.values(t),(i=>{this.h._addFlatHashMapToInputStream(r,i,Object.keys(t).length,e,n)}))}))}))}addProtoToStream(t,e,n,r){or(this,n,(n=>{or(this,e,(e=>{const i=this.h._malloc(t.length);this.h.HEAPU8.set(t,i),this.h._addProtoToInputStream(i,t.length,e,n,r),this.h._free(i)}))}))}addEmptyPacketToStream(t,e){or(this,t,(t=>{this.h._addEmptyPacketToInputStream(t,e)}))}addBoolVectorToStream(t,e,n){or(this,e,(e=>{const r=this.h._allocateBoolVector(t.length);if(!r)throw Error("Unable to allocate new bool vector on heap.");for(const e of t)this.h._addBoolVectorEntry(r,e);this.h._addBoolVectorToInputStream(r,e,n)}))}addDoubleVectorToStream(t,e,n){or(this,e,(e=>{const r=this.h._allocateDoubleVector(t.length);if(!r)throw Error("Unable to allocate new double vector on heap.");for(const e of t)this.h._addDoubleVectorEntry(r,e);this.h._addDoubleVectorToInputStream(r,e,n)}))}addFloatVectorToStream(t,e,n){or(this,e,(e=>{const r=this.h._allocateFloatVector(t.length);if(!r)throw Error("Unable to allocate new float vector on heap.");for(const e of t)this.h._addFloatVectorEntry(r,e);this.h._addFloatVectorToInputStream(r,e,n)}))}addIntVectorToStream(t,e,n){or(this,e,(e=>{const r=this.h._allocateIntVector(t.length);if(!r)throw Error("Unable to allocate new int vector on heap.");for(const e of t)this.h._addIntVectorEntry(r,e);this.h._addIntVectorToInputStream(r,e,n)}))}addUintVectorToStream(t,e,n){or(this,e,(e=>{const r=this.h._allocateUintVector(t.length);if(!r)throw Error("Unable to allocate new unsigned int vector on heap.");for(const e of t)this.h._addUintVectorEntry(r,e);this.h._addUintVectorToInputStream(r,e,n)}))}addStringVectorToStream(t,e,n){or(this,e,(e=>{const r=this.h._allocateStringVector(t.length);if(!r)throw Error("Unable to allocate new string vector on heap.");for(const e of t)or(this,e,(t=>{this.h._addStringVectorEntry(r,t)}));this.h._addStringVectorToInputStream(r,e,n)}))}addBoolToInputSidePacket(t,e){or(this,e,(e=>{this.h._addBoolToInputSidePacket(t,e)}))}addDoubleToInputSidePacket(t,e){or(this,e,(e=>{this.h._addDoubleToInputSidePacket(t,e)}))}addFloatToInputSidePacket(t,e){or(this,e,(e=>{this.h._addFloatToInputSidePacket(t,e)}))}addIntToInputSidePacket(t,e){or(this,e,(e=>{this.h._addIntToInputSidePacket(t,e)}))}addUintToInputSidePacket(t,e){or(this,e,(e=>{this.h._addUintToInputSidePacket(t,e)}))}addStringToInputSidePacket(t,e){or(this,e,(e=>{or(this,t,(t=>{this.h._addStringToInputSidePacket(t,e)}))}))}addProtoToInputSidePacket(t,e,n){or(this,n,(n=>{or(this,e,(e=>{const r=this.h._malloc(t.length);this.h.HEAPU8.set(t,r),this.h._addProtoToInputSidePacket(r,t.length,e,n),this.h._free(r)}))}))}addBoolVectorToInputSidePacket(t,e){or(this,e,(e=>{const n=this.h._allocateBoolVector(t.length);if(!n)throw Error("Unable to allocate new bool vector on heap.");for(const e of t)this.h._addBoolVectorEntry(n,e);this.h._addBoolVectorToInputSidePacket(n,e)}))}addDoubleVectorToInputSidePacket(t,e){or(this,e,(e=>{const n=this.h._allocateDoubleVector(t.length);if(!n)throw Error("Unable to allocate new double vector on heap.");for(const e of t)this.h._addDoubleVectorEntry(n,e);this.h._addDoubleVectorToInputSidePacket(n,e)}))}addFloatVectorToInputSidePacket(t,e){or(this,e,(e=>{const n=this.h._allocateFloatVector(t.length);if(!n)throw Error("Unable to allocate new float vector on heap.");for(const e of t)this.h._addFloatVectorEntry(n,e);this.h._addFloatVectorToInputSidePacket(n,e)}))}addIntVectorToInputSidePacket(t,e){or(this,e,(e=>{const n=this.h._allocateIntVector(t.length);if(!n)throw Error("Unable to allocate new int vector on heap.");for(const e of t)this.h._addIntVectorEntry(n,e);this.h._addIntVectorToInputSidePacket(n,e)}))}addUintVectorToInputSidePacket(t,e){or(this,e,(e=>{const n=this.h._allocateUintVector(t.length);if(!n)throw Error("Unable to allocate new unsigned int vector on heap.");for(const e of t)this.h._addUintVectorEntry(n,e);this.h._addUintVectorToInputSidePacket(n,e)}))}addStringVectorToInputSidePacket(t,e){or(this,e,(e=>{const n=this.h._allocateStringVector(t.length);if(!n)throw Error("Unable to allocate new string vector on heap.");for(const e of t)or(this,e,(t=>{this.h._addStringVectorEntry(n,t)}));this.h._addStringVectorToInputSidePacket(n,e)}))}attachBoolListener(t,e){ar(this,t,e),or(this,t,(t=>{this.h._attachBoolListener(t)}))}attachBoolVectorListener(t,e){cr(this,t,e),or(this,t,(t=>{this.h._attachBoolVectorListener(t)}))}attachIntListener(t,e){ar(this,t,e),or(this,t,(t=>{this.h._attachIntListener(t)}))}attachIntVectorListener(t,e){cr(this,t,e),or(this,t,(t=>{this.h._attachIntVectorListener(t)}))}attachUintListener(t,e){ar(this,t,e),or(this,t,(t=>{this.h._attachUintListener(t)}))}attachUintVectorListener(t,e){cr(this,t,e),or(this,t,(t=>{this.h._attachUintVectorListener(t)}))}attachDoubleListener(t,e){ar(this,t,e),or(this,t,(t=>{this.h._attachDoubleListener(t)}))}attachDoubleVectorListener(t,e){cr(this,t,e),or(this,t,(t=>{this.h._attachDoubleVectorListener(t)}))}attachFloatListener(t,e){ar(this,t,e),or(this,t,(t=>{this.h._attachFloatListener(t)}))}attachFloatVectorListener(t,e){cr(this,t,e),or(this,t,(t=>{this.h._attachFloatVectorListener(t)}))}attachStringListener(t,e){ar(this,t,e),or(this,t,(t=>{this.h._attachStringListener(t)}))}attachStringVectorListener(t,e){cr(this,t,e),or(this,t,(t=>{this.h._attachStringVectorListener(t)}))}attachProtoListener(t,e,n){ar(this,t,e),or(this,t,(t=>{this.h._attachProtoListener(t,n||!1)}))}attachProtoVectorListener(t,e,n){cr(this,t,e),or(this,t,(t=>{this.h._attachProtoVectorListener(t,n||!1)}))}attachAudioListener(t,e,n){this.h._attachAudioListener||console.warn('Attempting to use attachAudioListener without support for output audio. Is build dep ":gl_graph_runner_audio_out" missing?'),ar(this,t,((t,n)=>{t=new Float32Array(t.buffer,t.byteOffset,t.length/4),e(t,n)})),or(this,t,(t=>{this.h._attachAudioListener(t,n||!1)}))}finishProcessing(){this.h._waitUntilIdle()}closeGraph(){this.h._closeGraph(),this.h.simpleListeners=void 0,this.h.emptyPacketListeners=void 0}},class extends lr{da(){this.h._registerModelResourcesGraphService()}});var lr;async function hr(t,e){const n=await(async(t,e,n)=>{var r=qr;if(t&&await ir(t),!self.ModuleFactory)throw Error("ModuleFactory not set.");if(e&&(await ir(e),!self.ModuleFactory))throw Error("ModuleFactory not set.");return self.Module&&n&&((t=self.Module).locateFile=n.locateFile,n.mainScriptUrlOrBlob&&(t.mainScriptUrlOrBlob=n.mainScriptUrlOrBlob)),n=await self.ModuleFactory(self.Module||n),self.ModuleFactory=self.Module=void 0,new r(n,null)})(t.wasmLoaderPath,t.assetLoaderPath,{locateFile:e=>e.endsWith(".wasm")?t.wasmBinaryPath.toString():t.assetBinaryPath&&e.endsWith(".data")?t.assetBinaryPath.toString():e});return await n.K(e),n}async function fr(t,e){return hr(t,e)}function dr(t){try{const e=t.G.length;if(1===e)throw Error(t.G[0].message);if(e>1)throw Error("Encountered multiple errors: "+t.G.map((t=>t.message)).join(", "))}finally{t.G=[]}}function pr(t,e){t.F=Math.max(t.F,e)}var gr=class{constructor(t){this.i=t,this.G=[],this.F=0,this.i.setAutoRenderToScreen(!1)}setGraph(t,e){this.i.attachErrorListener(((t,e)=>{this.G.push(Error(e))})),this.i.da(),this.i.setGraph(t,e),dr(this)}finishProcessing(){this.i.finishProcessing(),dr(this)}close(){this.i.closeGraph()}};gr.prototype.close=gr.prototype.close;var mr=class extends ye{constructor(t){super(t)}j(){return jt(Kt(this,2))??0}};function _r(t,e){ue(t,1,e)}var yr=class extends ye{constructor(t){super(t)}},br=[0,jn,yn,dn,-1,mn];function vr(t,e,n,r){if(void 0!==t.data){var i=new Uint8Array(t.data.buffer,e,n);return 1===r&&function(t,e,n){t.i.push([e,n]),t.i.sort(((t,e)=>t[0]-e[0])),e=0;for(const[r,i]of t.i){const t=i;(n=r)<=e&&(e=Math.max(e,n+t))}e===t.length&&(t.data=void 0)}(t,e,n),i}}mr.prototype.l=Un(br);class wr{constructor(t){this.i=[],this.data=t,this.length=t.length}}var Sr=class{constructor(t,e){this.i=[],this.j=t,this.l=e}get size(){let t=0;for(let e=0;e<this.i.length;e++)t+=this.i[e].length;return t}};async function Er(t,e,n){t=new Ar(t,n);let r=0;for(e=e.getReader();;){const{value:n,done:i}=await e.read();if(i)break;t.set(n,r),r+=n.byteLength}if(n!==r)throw Tr(t),Error(`File could not be fully loaded to memory, so was not retained. Loaded ${r}/${n} bytes before failure`);return t}function Tr(t){if(t.i)try{t.h._free(t.j)}catch{}finally{t.i=!1}}var Ar=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))}},Ir=class extends ye{constructor(t){super(t)}};Ir.prototype.j=Un([0,Tn,2,_n,yn,wn]);var Pr=class extends ye{constructor(t){super(t)}},Lr=class extends ye{constructor(t){super(t)}},Or=class extends ye{constructor(t){super(t)}},jr=class extends ye{constructor(t){super(t)}},Ur=[0,yn,-6,1,yn,1,[0,wn,jn,-2],[0,wn,dn],jn,-2,[0,wn,-1,jn,dn,On,mn,vn],1,wn,yn,mn,-1,[0,jn,yn],wn,-1,fn,yn,-5,fn,-1,[0,mn,fn],mn,vn,[0,mn,-2],fn,[0,yn],[0,dn,-1]],xr=[0,Tn,-2],Br=[0,[4,6],Ur,yn,1,bn,_n,An,En,xr,mn,[0,[0,yn,-1,In,[0,yn,[0,yn,-1],-1,[0,jn,-1],wn],wn,-2,yn,-1],[0,yn,-1,wn],Ur,wn,yn],Sn,-3,[0,yn,wn],Ur,[0,xr,-2]];jr.prototype.j=Un([0,Tn,8,[0,wn,-6],1,yn,1,yn,[0,In,[0,Tn,gn,-1,jn],Br,yn],[0,yn,wn,-3],1,jn,1,Br,1,yn,5,jn,hn,1,br,wn]);var kr=class extends ye{constructor(t){super(t)}},Nr=class extends ye{constructor(t){super(t)}},Fr=[2,4];Nr.prototype.j=Un([0,Fr,yn,An,yn,Pn,[0,1,Tn]]);const Dr=function(t){return class extends t{constructor(){super(...arguments),this.L=!1}J(){if(this.L)throw Error("Cannot process because LLM inference engine is currently loading or processing.");this.L=!0}I(){this.L=!1}async W(t,e){this.J();try{await this.fa(t),await this.h.ccall("CreateLlmInferenceEngine","void",["number","number","boolean"],[fe(e,2)??512,ae(e,mr,3)?.j()??40,At(Kt(e,6))??!1??!1],{async:!0})}finally{this.I()}}R(){this.J();try{this.h.ccall("DeleteLlmInferenceEngine","void",[],[],{async:!1})}finally{this.I()}}async M(t,e,n){this.J();try{const r=[];this.h._userProgressListener=(t,e)=>{t&&r.push(t),n&&n(t,e)};const i=e.l(),o=this.h._malloc(i.length);return this.h.HEAPU8.set(i,o),await async function(t,e,n){t.j||console.error("No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target"),e=t.h.stringToNewUTF8(e),await n(e),t.h._free(e)}(this,t,(t=>this.h.ccall("GenerateResponse","void",["number","number","number"],[t,o,i.length],{async:!0}))),n&&n("",!0),this.h._free(o),this.h._userProgressListener=void 0,r.join("")}finally{this.I()}}N(t){this.J();try{let e;return or(this,t,(t=>{e=this.h._GetSizeInTokens(t)})),e}finally{this.I()}}async fa(t){t=await async function(t){const e=[];for(var n=0;;){const{done:r,value:i}=await t.read();if(r)break;e.push(i),n+=i.length}if(0===e.length)return new Uint8Array(0);if(1===e.length)return e[0];t=new Uint8Array(n),n=0;for(const r of e)t.set(r,n),n+=r.length;return t}(t);try{this.h.FS_unlink("llm.task")}catch{}this.h.FS_createDataFile("/","llm.task",t,!0,!1,!1)}}}(function(t){return class e extends t{static async ea(t,n){let r;n||=await e.T();const i=[];for(const e of t?.requiredFeatures??[])n.features.has(e)?i.push(e):console.warn(`WebGPU feature ${e} is not supported.`);t={...t,requiredFeatures:i};try{r=await n.requestDevice(t)}catch(t){throw console.error("Unable to initialize WebGPU with the requested features."),t}return(t=r).adapterInfo||(t.adapterInfo=n.info),r}static async T(t){if(!(t=await navigator.gpu.requestAdapter(t)))throw Error("Unable to request adapter from navigator.gpu; Ensure WebGPU is enabled.");return t}Z(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}V(){return this.h.ccall("closeGraph","void",[],[],{async:!0})}}}(function(t){return class extends t{addStreamingReaderToInputSidePacket(t,e){this.h.addStreamingReaderToInputSidePacket(((e,n,r)=>async function(t,e,n,r,i){if(2===i)return t.i=[],t.j=()=>Promise.resolve(void 0),setTimeout((()=>{t.l()}),0),Promise.resolve(0);for(;t.size<n+r;){var o=await t.j();if(void 0===o)break;t.i.push(new wr(o))}if(t.size<n+r)throw Error(`Data size is too small: ${t.size}, expected at least ${n+r}.`);o=e._malloc(r)>>>0;let s=0;for(let a=0;a<t.i.length;a++){const c=t.i[a];if(n>=c.length){n-=c.length;continue}const u=Math.min(r,c.length-n);if(void 0===(n=vr(c,n,u,i)))throw Error("Data has already been released.");if(e.HEAPU8.set(n,o+s),n=0,s+=u,0==(r-=u))break}if(0!==r)throw Error("Data not found.");return Promise.resolve(o)}(t,this.h,e,n,r)),e)}}}(function(t){return class extends t{U(t,e){or(this,"lora_model_ref_in",(n=>{this.h._addRawDataSpanToInputStream(t.offset,t.size,n,e)}))}}}(class extends ur{}))));class Rr extends Dr{}var Mr=class{constructor(t){this.j=t,this.i=Vr,Vr++}},Vr=1;class Cr{constructor(){let t,e;this.promise=new Promise(((n,r)=>{t=n,e=r})),this.resolve=t,this.reject=e}}function Gr(t){return 1===t?1:t+t%2}async function zr(){const t=await Rr.T({powerPreference:"high-performance"});var e=t.limits.maxBufferSize,n=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}`),n<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 ${n}`),e={requiredFeatures:["shader-f16"],requiredLimits:{maxStorageBufferBindingSize:n,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."),n=["shader-f16","subgroups"],t.features.has("subgroups-f16")&&n.push("subgroups-f16"),e.requiredFeatures=n),Rr.ea(e,t)}function Wr(t){if(t.B.length>0){const e=[...t.B];if(t.B.length=0,!t.o)throw e;t.o.reject(e),t.o=void 0}}function $r(t){const e=function(t){const e=new qn;ge(e,10,"text_in"),ge(e,10,"token_cost_in"),ge(e,10,"lora_model_id_to_apply_in"),ge(e,10,"lora_model_ref_in"),ge(e,10,"lora_model_id_to_load_in"),ge(e,16,"streaming_reader"),ge(e,15,"text_out"),ge(e,15,"text_end"),ge(e,15,"token_cost_out");var n=new Gn;pe(n,2,"TokenizerInputBuildCalculator"),ge(n,3,"PROMPT:text_in"),ge(n,3,"LORA_ID:lora_model_id_to_apply_in"),ge(n,4,"prompt"),Hn(e,n),pe(n=new Gn,2,"ModelDataCalculator"),ge(n,6,"MODEL_DATA:__side_packet_1"),ge(n,6,"MODEL_TYPE:model_type"),ge(n,5,"READ_DATA_FN:streaming_reader"),ge(n,3,"LORA_MODEL_SPAN:lora_model_ref_in"),ge(n,3,"LORA_MODEL_ID:lora_model_id_to_load_in"),ge(n,4,"LORA_DATA:lora_model_data"),Hn(e,n),pe(n=new Gn,2,"Gpt2UnicodeMappingCalculator"),ge(n,5,"MODEL_TYPE:model_type"),ge(n,6,"BYTES_TO_UNICODE_MAPPING:tokenizer_mapping"),Hn(e,n),pe(n=new Bn,1,"type.googleapis.com/odml.infra.proto.TokenizerCalculatorOptions");var r=new Nr,i=fe(t.j,2);de(r,1,i),pe(i=new kr,2,"spm_vocab_model");t:{i=ce(i),qt(r);var o=r.m,s=0|o[V];if(null==i){var a=oe(o);if(4!==se(a,o,s))break t;a.set(Fr,0)}else{const t=oe(a=o),e=se(t,a,s);4!==e&&(e&&(s=Xt(a,s,e)),t.set(Fr,4))}Xt(o,s,4,i)}return de(r,3,2),xn(n,r.j()),pe(r=new Gn,2,"TokenizerCalculator"),he(r,8,Bn,n),ge(r,5,"MODEL_DATA:__side_packet_1"),ge(r,3,"PROMPT_AND_INPUT_OPTIONS:prompt"),ge(r,5,"BYTES_TO_UNICODE_MAPPING:tokenizer_mapping"),ge(r,6,"PROCESSOR_GETTER:__input_side_1"),ge(r,4,"IDS_AND_INPUT_OPTIONS:__stream_0"),Hn(e,r),pe(n=new Bn,1,"type.googleapis.com/odml.infra.proto.LlmGpuCalculatorOptions"),de(r=new jr,12,3),pe(r,1,"llm.tflite"),de(r,14,0),i=Gr(fe(t.j,5)),de(r,22,i),i=ae(t.j,mr,3),ue(r,31,i),ie(i=new Pr,1,Tt(!0),!1),null!=At(Kt(t.j,6))&&(At(Kt(t.j,6))??!1)&&ie(i,1,Tt(!1),!1),ie(i,2,Tt(!0),!1),ie(i,5,Tt(!0),!1),ue(r,10,i),i=Zt(t.j,4,jt,void 0===K?2:4),re(r,29,i),i=new Or,de(o=new Lr,1,1),a=fe(t.j,2),de(o,2,a),ue(i,1,o),ue(r,20,i),xn(n,r.j()),pe(r=new Gn,2,"LlmGpuCalculator"),he(r,8,Bn,n),ge(r,3,"IDS_AND_INPUT_OPTIONS:__stream_0"),ge(r,3,"FINISH:finish"),ge(r,3,"LORA_DATA:lora_model_data"),ge(r,5,"MODEL_DATA:__side_packet_1"),ge(r,4,"DECODED_IDS:__stream_3"),ge(r,4,"OUTPUT_END:__stream_4"),pe(n=new Vn,1,"FINISH"),ie(n,2,Tt(!0),!1),he(r,13,Vn,n),Hn(e,r),pe(n=new Gn,2,"IsPacketPresentCalculator"),ge(n,3,"__stream_4"),ge(n,4,"text_end"),Hn(e,n),pe(n=new Bn,1,"type.googleapis.com/odml.infra.proto.DetokenizerCalculatorOptions"),r=new Ir,t=Gr(fe(t.j,5)),de(r,5,t),ge(r,4,"<eos>"),ge(r,4,"<|endoftext|>"),xn(n,r.j()),pe(t=new Gn,2,"DetokenizerCalculator"),he(t,8,Bn,n),ge(t,3,"IDS_AND_INPUT_OPTIONS:__stream_3"),ge(t,5,"PROCESSOR_GETTER:__input_side_1"),ge(t,5,"BYTES_TO_UNICODE_MAPPING:tokenizer_mapping"),ge(t,5,"MODEL_DATA:__side_packet_1"),ge(t,4,"FINISH_AND_INPUT_OPTIONS:finish"),ge(t,4,"WORDS:text_out"),Hn(e,t),pe(t=new Gn,2,"TokenCostCalculator"),ge(t,3,"PROMPT:token_cost_in"),ge(t,5,"PROCESSOR_GETTER:__input_side_1"),ge(t,5,"BYTES_TO_UNICODE_MAPPING:tokenizer_mapping"),ge(t,4,"NUM_TOKENS:token_cost_out"),Hn(e,t),e}(t);t.i.attachStringVectorListener("text_out",((e,n)=>{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.D.length),e.forEach(((e,n)=>{n<fe(t.j,5)&&t.D[n].push(e)})),t.u&&0===t.B.length&&(t.A?(e.length>fe(t.j,5)&&e.pop(),t.u(e,!1)):t.u(e[0],!1)),pr(t,n)})),t.i.attachEmptyPacketListener("text_out",(e=>{pr(t,e)})),t.i.attachBoolListener("text_end",((e,n)=>{if(t.l=!1,pr(t,n),Wr(t),t.o&&(t.o.resolve(t.D.map((t=>t.join("")))),t.o=void 0),t.u)if(t.A){for(e=[],n=0;n<fe(t.j,5);n++)e.push("");t.u(e,!0)}else t.u("",!0);t.A=void 0})),t.i.attachEmptyPacketListener("text_end",(e=>{t.l=!1,t.A=void 0,pr(t,e),Wr(t),t.o&&(t.o.resolve(t.D.map((t=>t.join("")))),t.o=void 0)})),t.i.attachIntListener("token_cost_out",((e,n)=>{t.O=e,pr(t,n)})),t.P&&t.i.addStreamingReaderToInputSidePacket(t.P,"streaming_reader");const n=e.j();return t.C?.removeEventListener("uncapturederror",t.H),t.i.V().then((()=>{t.C?.addEventListener("uncapturederror",t.H),t.B.length=0,t.setGraph(new Uint8Array(n),!0),t.finishProcessing()}))}function Hr(t,e,n,r){if(t.u="function"==typeof n?n:r,t.v){if(t.A&&fe(t.j,5)>1)throw Error("Multi-response generation is not supported for converted LLM models (.task format) yet. Please use the .bin format.");if(n instanceof Mr)throw Error("LoRA is not supported for converted LLM models (.task format) yet. Please use the .bin format.");return t.i.M(e,t.s,((e,n)=>{0===t.B.length&&t.u&&(t.A?t.u([e],n):t.u(e,n))})).then((e=>(Wr(t),[e])))}if(t.l)throw Error("Previous invocation or loading is still ongoing.");for(t.l=!0,t.D.length=0,r=0;r<fe(t.j,5);r++)t.D[r]=[];if(r=t.F+1,t.i.addStringToStream(e,"text_in",r),n instanceof Mr){if(n.j!==t)throw t.l=!1,t.A=void 0,Error("The LoRA model was not loaded by this LLM Inference task.");t.i.addUintToStream(n.i,"lora_model_id_to_apply_in",r)}else t.i.addEmptyPacketToStream("lora_model_id_to_apply_in",r);return t.finishProcessing(),t.o=new Cr,t.o.promise}var qr=class extends gr{constructor(t,e){if(super(new Rr(t,e)),this.D=[],this.v=this.l=!1,this.B=[],this.H=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.B.push(t)},this.j=new yr,_r(this.j,new Kn),this.s=new mr,ue(this.j,3,this.s),Jt(this.j,2,Ut(512)),t=this.s,!vt(2))throw U("enum");ie(t,1,2,0),de(this.s,2,40),ie(this.s,3,St(1),0),Jt(this.s,5,Ot(0)),ie(this.s,4,St(.8),0),Jt(this.j,5,Ut(1))}async K(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");let e;const n=new Promise((t=>{e=t}));if(t.baseOptions?.modelAssetPath){var r=await fetch(t.baseOptions.modelAssetPath.toString());if(!r.ok)throw Error(`Failed to fetch model: ${t.baseOptions.modelAssetPath} (${r.status})`);if(!r.body)throw Error(`Failed to fetch model: ${t.baseOptions.modelAssetPath} (no body)`);r=r.body.getReader()}else t.baseOptions?.modelAssetBuffer instanceof Uint8Array?r=function(t){return new ReadableStream({start(){},async pull(e){e.enqueue(t),e.close()}})}(t.baseOptions.modelAssetBuffer).getReader():t.baseOptions?.modelAssetBuffer instanceof ReadableStreamDefaultReader?(r=t.baseOptions.modelAssetBuffer,t.baseOptions.modelAssetBuffer=void 0):e();if(!r)throw Error("No model asset provided.");{const[t,n]=tr(r);1===await async function(t){const e=[];let n;for(const[i,o]of nr){const s=i;var r=o;[t,n]=tr(t),r=await r(n),await n.cancel(),r&&e.push(s)}if(await t.cancel(),0===e.length)throw Error("No model format matched.");if(1===e.length)return e[0];throw Error(`Multiple model formats matched: ${e}`)}(n)?(this.v=!0,r=t):(this.v=!1,this.P=function(t,e){return new Sr((async()=>{const{value:e,done:n}=await t.read();return n?void 0:e}),e)}(t,e))}if(t.baseOptions?.gpuOptions?.device&&(this.C&&this.C.removeEventListener("uncapturederror",this.H),this.C=t.baseOptions.gpuOptions.device,this.i.Z(this.C),this.C.addEventListener("uncapturederror",this.H)),"maxTokens"in t&&Jt(this.j,2,Ut(t.maxTokens??512)),"topK"in t&&de(this.s,2,t.topK??40),"temperature"in t&&ie(this.s,4,St(t.temperature??.8),0),"randomSeed"in t&&Jt(this.s,5,Ot(t.randomSeed??0)),"loraRanks"in t&&function(t,e){re(t,4,e)}(this.j,t.loraRanks??[]),"numResponses"in t){const e=t.numResponses??1;if(e<1)throw Error("'numResponses' must be at least 1.");if(this.v&&e>1)throw Error("'numResponses > 1' is not supported for converted LLM models yet.");Jt(this.j,5,Ut(e));const n=ae(this.j,mr,3);e>1&&n&&(n.j()<=1||(Kt(n,4,void 0,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&&Jt(this.j,6,Tt(t.forceF32)),this.v?(this.i.R(),this.i.W(r,this.j).then((()=>{Wr(this)}))):(this.l=!0,t=$r(this).then((()=>{})),Promise.all([n,t]).then((()=>{this.l=!1,Wr(this)})))}get baseOptions(){return ae(this.j,Kn,1)}set baseOptions(t){_r(this.j,t)}get isIdle(){return!this.l&&!this.o}M(t,e,n){return fe(this.j,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.A=!1,Hr(this,t,e,n).then((t=>t[0]))}Y(t,e,n){return this.A=!0,Hr(this,t,e,n)}N(t){if(this.v)return this.i.N(t);if(this.l)throw Error("Previous invocation or loading is still ongoing.");return this.l=!0,this.O=void 0,this.i.addStringToStream(t,"token_cost_in",this.F+1),this.finishProcessing(),this.l=!1,this.O}async ca(t){if(this.v)throw Error("LoRA is not supported for converted LLM models (.task format) yet. Please use the old foramat (.bin) 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 Ar(this.i.h,t.length);e.set(t),t=e}else t=t instanceof Blob?await async function(t,e){return Er(t,e.stream(),e.size)}(this.i.h,t):await async function(t,e){e=await fetch(e.toString());const n=Number(e.headers.get("content-length"));if(!e.body)throw Error("Response body is not available.");if(!n)throw Error("File size is 0.");return Er(t,e.body,n)}(this.i.h,t);e=new Mr(this);const n=this.F+1;return this.i.U(t,n),this.i.addUintToStream(e.i,"lora_model_id_to_load_in",n),this.finishProcessing(),Tr(t),pr(this,n),this.l=!1,e}close(){this.v&&this.i.R(),this.C?.removeEventListener("uncapturederror",this.H),super.close()}};qr.prototype.loadLoraModel=qr.prototype.ca,qr.prototype.sizeInTokens=qr.prototype.N,qr.prototype.generateResponses=qr.prototype.Y,qr.prototype.generateResponse=qr.prototype.M,qr.prototype.setOptions=qr.prototype.K,qr.createWebGpuDevice=zr,qr.createFromModelPath=async function(t,e){return fr(t,e={baseOptions:{gpuOptions:{device:await zr()},modelAssetPath:e}})},qr.createFromModelBuffer=async function(t,e){return fr(t,e={baseOptions:{gpuOptions:{device:await zr()},modelAssetBuffer:e}})},qr.createFromOptions=async function(t,e){if(!e.baseOptions?.gpuOptions?.device){const t=await zr();e.baseOptions=e.baseOptions??{},e.baseOptions.gpuOptions=e?.baseOptions?.gpuOptions??{},e.baseOptions.gpuOptions.device=t}return fr(t,e)},exports.FilesetResolver=Qn,exports.LlmInference=qr,exports.TaskRunner=gr;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});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}let r;const n="undefined"!=typeof TextEncoder;function i(t){if(n)t=(r||=new TextEncoder).encode(t);else{let r=0;const 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){const 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,s=e(610401301,!1),a=e(748402147,e(1,!0));function u(){var e=t.navigator;return e&&(e=e.userAgent)?e:""}const c=t.navigator;o=c&&c.userAgentData||null;var l={},h=null;function f(t){const e=t.length;let 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);const n=new Uint8Array(r);let i=0;return function(t,e){function r(e){for(;n<t.length;){const e=t.charAt(n++),r=h[e];if(null!=r)return r;if(!/^[\s\xa0]*$/.test(e))throw Error("Unknown base64 encoding at char: "+e)}return e}d();let n=0;for(;;){const 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(!h){h={};var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),e=["+/=","+/","-_=","-_.","-_"];for(let r=0;r<5;r++){const n=t.concat(e[r].split(""));l[r]=n;for(let t=0;t<n.length;t++){const e=n[t];void 0===h[e]&&(h[e]=t)}}}}var p="undefined"!=typeof Uint8Array,m=!(!(s&&o&&o.brands.length>0)&&(-1!=u().indexOf("Trident")||-1!=u().indexOf("MSIE")))&&"function"==typeof btoa;const g=/[-_.]/g,_={"-":"+",_:"/",".":"="};function y(t){return _[t]||""}function b(t){if(!m)return f(t);t=g.test(t)?t.replace(g,y):t,t=atob(t);const 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 v={};function S(){return A||=new E(null,v)}var E=class{constructor(t,e){if(T(e),this.i=t,null!=t&&0===t.length)throw Error("ByteString should be constructed with non-empty values")}};let A,I;function T(t){if(t!==v)throw Error("illegal external caller")}function P(t,e){t.__closure__error__context__984382||(t.__closure__error__context__984382={}),t.__closure__error__context__984382.severity=e}function L(t){return P(t=Error(t),"warning"),t}function O(e,r){if(null!=e){var n=I??={},i=n[e]||0;i>=r||(n[e]=i+1,P(e=Error(),"incident"),function(e){t.setTimeout((()=>{throw e}),0)}(e))}}var j="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 k=x("jas",void 0,!0),U=x(void 0,"1oa"),B=x(void 0,"0ubsb"),N=x(void 0,"0actk"),F=x("m_m","oa",!0);const R={ga:{value:0,configurable:!0,writable:!0,enumerable:!1}},D=Object.defineProperties,M=j?k:"ga";var V;const C=[];function G(t,e){j||M in t||D(t,R),t[M]|=e}function z(t,e){j||M in t||D(t,R),t[M]=e}function W(){return"function"==typeof BigInt}z(C,7),V=Object.freeze(C);var H={};function $(t,e){return void 0===e?t.i!==q&&!!(2&(0|t.m[M])):!!(2&e)&&t.i!==q}const q={};var K=Object.freeze({});function Y(t){return t.na=!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)));const 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++){const n=t[r],i=e[r];if(n>i)return!1;if(n<i)return!0}}let st,at=0,ut=0;function ct(t){const e=t>>>0;at=e,ut=(t-e)/4294967296>>>0}function lt(t){if(t<0){ct(-t);const[e,r]=mt(at,ut);at=e>>>0,ut=r>>>0}else ct(t)}function ht(t,e){const 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 W()?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)lt(Number(t));else if(W())t=BigInt(t),at=Number(t&BigInt(4294967295))>>>0,ut=Number(t>>BigInt(32)&BigInt(4294967295));else{const e=+("-"===t[0]);ut=at=0;const r=t.length;for(let n=e,i=(r-e)%6+e;i<=r;n=i,i+=6){const e=Number(t.slice(n,i));ut*=1e6,at=1e6*at+e,at>=4294967296&&(ut+=Math.trunc(at/4294967296),ut>>>=0,at>>>=0)}if(e){const[t,e]=mt(at,ut);at=t,ut=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)}const _t="function"==typeof BigInt?BigInt.asIntN:void 0,yt="function"==typeof BigInt?BigInt.asUintN:void 0,bt=Number.isSafeInteger,wt=Number.isFinite,vt=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}const Tt=/^-?([1-9][0-9]*|0)(\.[0-9]+)?$/;function Pt(t){switch(typeof t){case"bigint":return!0;case"number":return wt(t);case"string":return Tt.test(t);default:return!1}}function Lt(t){if("number"!=typeof t)throw L("int32");if(!wt(t))throw L("int32");return 0|t}function Ot(t){return null==t?t:Lt(t)}function jt(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 xt(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 kt(t){if("-"===t[0])return!1;const e=t.length;return e<20||20===e&&Number(t.substring(0,6))<184467}function Ut(t){if(null==t)return t;var e=typeof t;if("bigint"===e)return String(yt(64,t));if(Pt(t)){if("string"===e)return e=vt(Number(t)),bt(e)&&e>=0?t=String(e):(-1!==(e=t.indexOf("."))&&(t=t.substring(0,e)),kt(t)||(pt(t),t=ft(at,ut))),t;if("number"===e)return(t=vt(t))>=0&&bt(t)?t:function(t){if(t<0){lt(t);var e=ft(at,ut);return t=Number(e),bt(t)?t:e}return kt(e=String(t))?e:(lt(t),ht(at,ut))}(t)}}function Bt(t){return null==t||"string"==typeof t?t:void 0}function Nt(t,e,r){if(null!=t&&t[F]===H)return t;if(Array.isArray(t)){var n=0|t[M];return(r=n|32&r|2&r)!==n&&z(t,r),new e(t)}}function Ft(t,e,r,n){var i=void 0!==n;n=!!n;const o=[];var s=t.length;let a,u=4294967295,c=!1;const l=!!(64&e),h=l?128&e?0:-1:void 0;for(1&e||(a=s&&t[s-1],null!=a&&"object"==typeof a&&a.constructor===Object?u=--s:a=void 0,!l||128&e||i||(c=!0,u=u-h+h)),e=void 0,i=0;i<s;i++){let s=t[i];if(null!=s&&null!=(s=r(s,n)))if(l&&i>=u){const t=i-h;(e??={})[t]=s}else o[i]=s}if(a)for(let i in a){if(null==(t=a[i])||null==(t=r(t,n)))continue;let c;s=+i,l&&!Number.isNaN(s)&&(c=s+h)<u?o[c]=t:(e??={})[i]=t}return e&&(c?o.push(e):o[u]=e),o}function Rt(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[M];return 0===t.length&&1&e?void 0:Ft(t,e,Rt)}if(null!=t&&t[F]===H)return Dt(t);if(t instanceof E){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=l[r],n=Array(Math.floor(e.length/3)),i=r[64]||"";let t=0,c=0;for(;t<e.length-2;t+=3){var o=e[t],s=e[t+1],a=e[t+2],u=r[o>>2];o=r[(3&o)<<4|s>>4],s=r[(15&s)<<2|a>>6],a=r[63&a],n[c++]=u+o+s+a}switch(u=0,a=i,e.length-t){case 2:a=r[(15&(u=e[t+1]))<<2]||i;case 1:e=e[t],n[c]=r[e>>2]+r[(3&e)<<4|u>>4]+a+i}e=n.join("")}t=t.i=e}return t}return}return t}function Dt(t){return Ft(t=t.m,0|t[M],Rt)}let Mt,Vt;function Ct(t,e,r){return Gt(t,e[0],e[1],r?1:2)}function Gt(t,e,r,n=0){if(null==t){var i=32;r?(t=[r],i|=128):t=[],e&&(i=-8380417&i|(1023&e)<<13)}else{if(!Array.isArray(t))throw Error("narr");if(i=0|t[M],a&&1&i)throw Error("rfarr");if(2048&i&&!(2&i)&&function(){if(a)throw Error("carr");O(N,5)}(),256&i)throw Error("farr");if(64&i)return 0!==n||2048&i||z(t,2048|i),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;const 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 u in t)(o=+u)<s&&(r[o+e]=t[u],delete t[u]);i=-8380417&i|(1023&s)<<13;break t}}if(e){if((u=Math.max(e,o-(128&i?0:-1)))>1024)throw Error("spvt");i=-8380417&i|(1023&u)<<13}}}return i|=64,0===n&&(i|=2048),z(t,i),t}function zt(t,e){if("object"!=typeof t)return t;if(Array.isArray(t)){var r=0|t[M];return 0===t.length&&1&r?t=void 0:2&r||(!e||4096&r||16&r?t=Ht(t,r,!1,e&&!(16&r)):(G(t,34),4&r&&Object.freeze(t))),t}return null!=t&&t[F]===H?$(t,r=0|(e=t.m)[M])?t:Yt(t,e,r)?Wt(t,e):Ht(e,r):t instanceof E?t:void 0}function Wt(t,e,r){return t=new t.constructor(e),r&&(t.i=q),t.o=q,t}function Ht(t,e,r,n){return n??=!!(34&e),t=Ft(t,e,zt,n),n=32,r&&(n|=2),z(t,e=8380609&e|n),t}function $t(t){if(t.i!==q)return!1;var e=t.m;return G(e=Ht(e,0|e[M]),2048),t.m=e,t.i=void 0,t.o=void 0,!0}function qt(t){if(!$t(t)&&$(t,0|t.m[M]))throw Error()}function Kt(t,e){void 0===e&&(e=0|t[M]),32&e&&!(4096&e)&&z(t,4096|e)}function Yt(t,e,r){return!!(2&r)||!(!(32&r)||4096&r)&&(z(e,2|r),t.i=q,!0)}function Jt(t,e,r){if(null!==(t=Xt(t.m,e,void 0,r)))return t}function Xt(t,e,r,n){if(-1===e)return null;const i=e+(r?0:-1),o=t.length-1;let s,a;if(!(o<1+(r?0:-1))){if(i>=o)if(s=t[o],null!=s&&"object"==typeof s&&s.constructor===Object)r=s[e],a=!0;else{if(i!==o)return;r=s}else r=t[i];if(n&&null!=r){if(null==(n=n(r)))return n;if(!Object.is(n,r))return a?s[e]=n:t[i]=n,n}return r}}function Qt(t,e,r){qt(t),Zt(t=t.m,0|t[M],e,r)}function Zt(t,e,r,n,i){const o=r+(i?0:-1);var s=t.length-1;if(s>=1+(i?0:-1)&&o>=s){const i=t[s];if(null!=i&&"object"==typeof i&&i.constructor===Object)return i[r]=n,e}return o<=s?(t[o]=n,e):(void 0!==n&&(r>=(s=(e??=0|t[M])>>13&1023||536870912)?null!=n&&(t[s+(i?0:-1)]={[r]:n}):t[o]=n),e)}function te(t,e,r,n,i){let o=t.m,s=0|o[M];n=$(t,s)?1:n,i=!!i||3===n,2===n&&$t(t)&&(o=t.m,s=0|o[M]);let a=(t=re(o,e))===V?7:0|t[M],u=ne(a,s);var c=!(4&u);if(c){4&u&&(t=gt(t),a=0,u=fe(u,s),s=Zt(o,s,e,t));let n=0,i=0;for(;n<t.length;n++){const e=r(t[n]);null!=e&&(t[i++]=e)}i<n&&(t.length=i),r=-513&(4|u),u=r&=-1025,u&=-4097}return u!==a&&(z(t,u),2&u&&Object.freeze(t)),ee(t,u,o,s,e,n,c,i)}function ee(t,e,r,n,i,o,s,a){let u=e;return 1===o||4===o&&(2&e||!(16&e)&&32&n)?ie(e)||((e|=!t.length||s&&!(4096&e)||32&n&&!(4096&e||16&e)?2:256)!==u&&z(t,e),Object.freeze(t)):(2===o&&ie(e)&&(t=gt(t),u=0,e=fe(e,n),n=Zt(r,n,i,t)),ie(e)||(a||(e|=16),e!==u&&z(t,e))),2&e||!(4096&e||16&e)||Kt(r,n),t}function re(t,e,r){return t=Xt(t,e,r),Array.isArray(t)?t:V}function ne(t,e){return 2&e&&(t|=2),1|t}function ie(t){return!!(2&t)&&!!(4&t)||!!(256&t)}function oe(t,e,r){qt(t);let n=0|(t=t.m)[M];if(null==r)Zt(t,n,e);else{var i=r===V?7:0|r[M],o=i,s=ie(i),a=s||Object.isFrozen(r);for(s||(i=0),a||(r=gt(r),o=0,i=fe(i,n),a=!1),i|=5,s=0;s<r.length;s++){const t=r[s],e=Lt(t);Object.is(t,e)||(a&&(r=gt(r),o=0,i=fe(i,n),a=!1),r[s]=e)}i!==o&&(a&&(r=gt(r),i=fe(i,n)),z(r,i)),Zt(t,n,e,r)}}function se(t,e,r,n){qt(t),Zt(t=t.m,0|t[M],e,("0"===n?0===Number(r):r===n)?void 0:r)}function ae(t){if(j)return t[U]??(t[U]=new Map);if(U in t)return t[U];const e=new Map;return Object.defineProperty(t,U,{value:e}),e}function ue(t,e,r){var n=qn;let i=t.get(n);if(null!=i)return i;i=0;for(let t=0;t<n.length;t++){const o=n[t];null!=Xt(e,o)&&(0!==i&&(r=Zt(e,r,i)),i=o)}return t.set(n,i),i}function ce(t,e,r){let n=t.m,i=0|n[M];if(e=function(t,e,r,n){let i=!1;if(null!=(n=Xt(t,n,void 0,(t=>{const n=Nt(t,r,e);return i=n!==t&&null!=n,n}))))return i&&!$(n)&&Kt(t,e),n}(n,i,e,r),null==e)return e;if(i=0|n[M],!$(t,i)){var o,s=e;const a=s.m,u=0|a[M];(o=$(s,u)?Yt(s,a,u)?Wt(s,a,!0):new s.constructor(Ht(a,u,!1)):s)!==e&&($t(t)&&(n=t.m,i=0|n[M]),i=Zt(n,i,r,e=o),Kt(n,i))}return e}function le(t){return null==t&&(t=void 0),t}function he(t,e,r){return Qt(t,e,r=le(r)),r&&!$(r)&&Kt(t.m),t}function fe(t,e){return-273&(2&e?2|t:-3&t)}function de(t,e,r,n){var i=n;qt(t);var o=n=t.m,s=0|n[M];const a=$(t,s)?1:2;2===a&&$t(t)&&(s=0|(o=t.m)[M]);let u=(t=re(o,e))===V?7:0|t[M];var c=ne(u,s);const l=!(4&c);if(l){var h=t,f=s;const e=!!(2&c);e&&(f|=2);let n=!e,i=!0,o=0,a=0;for(;o<h.length;o++){const t=Nt(h[o],r,f);if(t instanceof r){if(!e){const e=$(t);n&&=!e,i&&=e}h[a++]=t}}a<o&&(h.length=a),c|=4,c=i?-4097&c:4096|c,c=n?8|c:-9&c}c!==u&&(z(t,c),2&c&&Object.freeze(t)),e=t=ee(t,c,o,s,e,a,l,!0),i=null!=i?i:new r,e.push(i),o=r=e===V?7:0|e[M],(i=$(i))?(r&=-9,1===e.length&&(r&=-4097)):r|=4096,r!==o&&z(e,r),i||Kt(n)}function pe(t,e){return xt(Jt(t,e))??0}function me(t,e,r){se(t,e,Ot(r),0)}function ge(t,e,r){if(null!=r){if("number"!=typeof r)throw L("uint32");if(!wt(r))throw L("uint32");r>>>=0}Qt(t,e,r)}function _e(t,e,r){if(null!=r&&"string"!=typeof r)throw Error();se(t,e,r,"")}function ye(t,e,r){if(qt(t),e=(t=te(t,e,Bt,2,!0)).push,"string"!=typeof r)throw Error();e.call(t,r)}var be=class{constructor(t,e,r){if(this.buffer=t,r&&!e)throw Error()}};function we(t){if("string"==typeof t)return new be(b(t),!0);if(Array.isArray(t))return new be(new Uint8Array(t),!0);if(t.constructor===Uint8Array)return new be(t,!1);if(t.constructor===ArrayBuffer)return t=new Uint8Array(t),new be(t,!1);if(t.constructor===E){T(v);var e=t.i;return e=(null==(e=null==e||w(e)?e:"string"==typeof e?b(e):null)?e:t.i=e)||new Uint8Array(0),new be(e,!0,t)}if(t instanceof Uint8Array)return t=t.constructor===Uint8Array?t:new Uint8Array(t.buffer,t.byteOffset,t.byteLength),new be(t,!1);throw Error()}function ve(t){return t?/^\d+$/.test(t)?(pt(t),new Se(at,ut)):null:Ee||=new Se(0,0)}var Se=class{constructor(t,e){this.j=t>>>0,this.i=e>>>0}};let Ee;function Ae(t){return t?/^-?\d+$/.test(t)?(pt(t),new Ie(at,ut)):null:Te||=new Ie(0,0)}var Ie=class{constructor(t,e){this.j=t>>>0,this.i=e>>>0}};let Te;function Pe(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 Le(t,e){for(;e>127;)t.i.push(127&e|128),e>>>=7;t.i.push(e)}function Oe(t,e){if(e>=0)Le(t,e);else{for(let r=0;r<9;r++)t.i.push(127&e|128),e>>=7;t.i.push(1)}}function je(t,e){0!==e.length&&(t.l.push(e),t.j+=e.length)}function xe(t,e,r){Le(t.i,8*e+r)}function ke(t,e){return xe(t,e,2),e=t.i.end(),je(t,e),e.push(t.j),e}function Ue(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 Be(t,e,r){xe(t,e,2),Le(t.i,r.length),je(t,t.i.end()),je(t,r)}function Ne(){const t=class{constructor(){throw Error()}};return Object.setPrototypeOf(t,t.prototype),t}var Fe=Ne(),Re=Ne(),De=Ne(),Me=Ne(),Ve=Ne(),Ce=Ne(),Ge=Ne(),ze=Ne(),We=Ne(),He=Ne(),$e=class{constructor(t,e){this.m=Gt(t,e)}toJSON(){return Dt(this)}};$e.prototype[F]=H,$e.prototype.toString=function(){return this.m.toString()};var qe=class{constructor(t,e){this.i=t,t=Fe,this.j=!!t&&e===t||!1}};function Ke(t,e,r,n,i){null!=(e=er(e,n))&&(r=ke(t,r),i(e,t),Ue(t,r))}const Ye=new qe(Ke,Fe),Je=new qe(Ke,Fe);var Xe=Symbol(),Qe=Symbol();let Ze;function tr(t){var e=rr,r=nr,n=t[Xe];if(n)return n;(n={}).ma=t,n.W=function(t){switch(typeof t){case"boolean":return Mt||=[0,void 0,!0];case"number":return t>0?void 0:0===t?Vt||=[0,void 0]:[-t,void 0];case"string":return[0,t];case"object":return t}}(t[0]);var i=t[1];let o=1;i&&i.constructor===Object&&(n.ba=i,"function"==typeof(i=t[++o])&&(n.ha=!0,Ze??=t[o+1],i=t[o+=2]));const s={};for(;i&&Array.isArray(i)&&i.length&&"number"==typeof i[0]&&i[0]>0;){for(var a=0;a<i.length;a++)s[i[a]]=i;i=t[++o]}for(a=1;void 0!==i;){let s;"number"==typeof i&&(a+=i,i=t[++o]);var u=void 0;if(i instanceof qe?s=i:(s=Ye,o--),s?.j){i=t[++o],u=t;var c=o;"function"==typeof i&&(i=i(),u[c]=i),u=i}for(c=a+1,"number"==typeof(i=t[++o])&&i<0&&(c-=i,i=t[++o]);a<c;a++)u?r(n,a,s,u):e(n,a,s)}return t[Xe]=n}function er(t,e){return t instanceof $e?t.m:Array.isArray(t)?Ct(t,e,!1):void 0}function rr(t,e,r){t[e]=r.i}function nr(t,e,r,n){let i,o;const s=r.i;t[e]=(t,e,r)=>s(t,e,r,o||=tr(n).W,i||=ir(n))}function ir(t){let e=t[Qe];if(!e){const r=tr(t);e=(t,e)=>or(t,e,r),t[Qe]=e}return e}function or(t,e,r){!function(t,e,r){const n=128&e?0:-1,i=t.length;var o;(o=!!i)&&(o=null!=(o=t[i-1])&&"object"==typeof o&&o.constructor===Object);const s=i+(o?-1:0);for(e=128&e?1:0;e<s;e++)r(e-n,t[e]);if(o){t=t[i-1];for(const e in t)!isNaN(e)&&r(+e,t[e])}}(t,0|t[M],((t,n)=>{if(null!=n){var i=function(t,e){var r=t[e];if(r)return r;if((r=t.ba)&&(r=r[e])){var n=(r=Array.isArray(r)?r[0]instanceof qe?r:[Je,r]:[r,void 0])[0].i;if(r=r[1]){const e=ir(r),i=tr(r).W;r=t.ha?Ze(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(B,3)}}))}var sr,ar=0,ur=ar;if(X(ur)){if(!/^\s*(?:-?[1-9]\d*|0)?\s*$/.test(ur))throw Error(String(ur))}else if((sr=J(ur))&&(sr=!Number.isSafeInteger(ur)),sr)throw Error(String(ur));function cr(t,e){if(Array.isArray(e)){var r=0|e[M];if(4&r)return e;for(var n=0,i=0;n<e.length;n++){const r=t(e[n]);null!=r&&(e[i++]=r)}return i<n&&(e.length=i),z(e,-1537&(5|r)),2&r&&Object.freeze(e),e}}function lr(t,e){return new qe(t,e)}function hr(t,e,r){null!=(e=Et(e))&&(xe(t,r,5),t=t.i,(r=st||=new DataView(new ArrayBuffer(8))).setFloat32(0,+e,!0),ut=0,e=at=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 fr(t,e,r){null!=(e=jt(e))&&null!=e&&(xe(t,r,0),Oe(t.i,e))}function dr(t,e,r){null!=(e=It(e))&&(xe(t,r,0),t.i.i.push(e?1:0))}function pr(t,e,r){null!=(e=Bt(e))&&Be(t,r,i(e))}function mr(t,e,r,n,i){null!=(e=er(e,n))&&(r=ke(t,r),i(e,t),Ue(t,r))}function gr(t,e,r){null!=(e=jt(e))&&(e=parseInt(e,10),xe(t,r,0),Oe(t.i,e))}Z||(ar=Q(ar)?ar?"1":"0":X(ar)?ar.trim()||"0":String(ar));var _r,yr=lr(hr,ze),br=lr(hr,ze),wr=lr((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(Pt(t)){if("string"===e){if(e=vt(Number(t)),bt(e))t=String(e);else if(-1!==(e=t.indexOf("."))&&(t=t.substring(0,e)),e=t.length,!("-"===t[0]?e<20||20===e&&Number(t.substring(0,7))>-922337:e<19||19===e&&Number(t.substring(0,6))<922337))if(pt(t),t=at,2147483648&(e=ut))if(W())t=""+(BigInt(0|e)<<BigInt(32)|BigInt(t>>>0));else{const[r,n]=mt(t,e);t="-"+ft(r,n)}else t=ft(t,e);return t}if("number"===e){if(t=vt(t),!bt(t)){lt(t),e=at;var r=ut;(t=2147483648&r)&&(r=~r>>>0,0==(e=1+~e>>>0)&&(r=r+1>>>0)),t="number"==typeof(e=ht(e,r))?t?-e:e:t?"-"+e:e}return t}}}(e),null!=e){if("string"==typeof e)Ae(e);if(null!=e)switch(xe(t,r,0),typeof e){case"number":t=t.i,lt(e),Pe(t,at,ut);break;case"bigint":r=BigInt.asUintN(64,e),r=new Ie(Number(r&BigInt(4294967295)),Number(r>>BigInt(32))),Pe(t.i,r.j,r.i);break;default:r=Ae(e),Pe(t.i,r.j,r.i)}}}),Ce),vr=lr((function(t,e,r){if(null!=(e=Ut(e))){if("string"==typeof e)ve(e);if(null!=e)switch(xe(t,r,0),typeof e){case"number":t=t.i,lt(e),Pe(t,at,ut);break;case"bigint":r=BigInt.asUintN(64,e),r=new Se(Number(r&BigInt(4294967295)),Number(r>>BigInt(32))),Pe(t.i,r.j,r.i);break;default:r=ve(e),Pe(t.i,r.j,r.i)}}}),Ge),Sr=lr(fr,Me);_r=new qe((function(t,e,r){if(null!=(e=cr(jt,e))&&e.length){r=ke(t,r);for(let r=0;r<e.length;r++)Oe(t.i,e[r]);Ue(t,r)}}),Me);var Er,Ar=lr(fr,Me),Ir=lr(fr,Me),Tr=lr(dr,Re),Pr=lr(dr,Re),Lr=lr(pr,De);Er=new qe((function(t,e,r){if(null!=(e=cr(Bt,e)))for(let a=0;a<e.length;a++){var n=t,o=r,s=e[a];null!=s&&Be(n,o,i(s))}}),De);var Or,jr=lr(pr,De),xr=lr(pr,De),kr=function(t,e,r=Fe){return new qe(e,r)}(0,(function(t,e,r,n,i){if(Array.isArray(e))for(let o=0;o<e.length;o++)mr(t,e[o],r,n,i)})),Ur=new qe(mr,Fe),Br=lr((function(t,e,r){null!=(e=xt(e))&&null!=e&&(xe(t,r,0),Le(t.i,e))}),Ve),Nr=lr(gr,He);Or=new qe((function(t,e,r){if(null!=(e=cr(jt,e))&&e.length){r=ke(t,r);for(let r=0;r<e.length;r++)Oe(t.i,e[r]);Ue(t,r)}}),He);var Fr=lr(gr,He);function Rr(t){return function(){const e=new class{constructor(){this.l=[],this.j=0,this.i=new class{constructor(){this.i=[]}length(){return this.i.length}end(){const t=this.i;return this.i=[],t}}}};or(this.m,e,tr(t)),je(e,e.i.end());const r=new Uint8Array(e.j),n=e.l,i=n.length;let o=0;for(let t=0;t<i;t++){const e=n[t];r.set(e,o),o+=e.length}return e.l=[r],r}}function Dr(t,e){if(null!=e)if(Array.isArray(e))Qt(t,2,Ft(e,0,Rt));else{if(!("string"==typeof e||e instanceof E||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 E(e,v):S();else if(e.constructor!==E){if(!w(e))throw Error();e=e.length?new E(new Uint8Array(e),v):S()}se(t,2,e,S())}}var Mr=class extends $e{constructor(t){super(t)}},Vr=[0,jr,lr((function(t,e,r){if(null!=e){if(e instanceof $e){const n=e.pa;return void(n?(e=n(e),null!=e&&Be(t,r,we(e).buffer)):O(B,3))}if(Array.isArray(e))return void O(B,3)}null!=(e=null==e||"string"==typeof e||e instanceof E?e:void 0)&&Be(t,r,we(e).buffer)}),We)];let Cr,Gr=globalThis.trustedTypes;function zr(t){var e;return void 0===Cr&&(Cr=function(){let t=null;if(!Gr)return t;try{const e=t=>t;t=Gr.createPolicy("goog#html",{createHTML:e,createScript:e,createScriptURL:e})}catch(t){}return t}()),t=(e=Cr)?e.createScriptURL(t):t,new class{constructor(t){this.i=t}toString(){return this.i+""}}(t)}function Wr(t,...e){if(0===e.length)return zr(t[0]);let r=t[0];for(let n=0;n<e.length;n++)r+=encodeURIComponent(e[n])+t[n+1];return zr(r)}var Hr={};Hr[336783863]=[0,Lr,Tr,-1,Sr,[0,[1,2,3,4,5,6,7,8,9],Ur,[0],Ur,[0,Tr,Lr,Tr,Nr,-1,Or,Lr,-1,[0,Tr,-1],Nr,Tr,-1],Ur,[0,Lr,-2],Ur,[0,Sr,Tr,1,Tr,-3],Ur,[0,Sr,Nr,Tr,-1,_r,Nr,-1,Tr],Ur,[0,Lr,-2],Ur,[0,Lr,Nr],Ur,[0,Nr,Lr,-1,Tr],Ur,[0,Nr,-1,Tr]],[0,Lr],Tr,[0,[1,3],[2,4],Ur,[0,_r],-1,Ur,[0,Er],-1,kr,[0,Lr,-1]],Lr];var $r=class extends $e{constructor(t){super(t)}},qr=[0,wr,-1,Pr,-3,wr,_r,jr,Ar,wr,-1,Pr,Ar,Pr,-2,jr],Kr=class extends $e{constructor(t){super(t,500)}N(t){return he(this,7,t)}},Yr=[-1,{}],Jr=[0,Lr,1,Yr],Xr=[0,Lr,Er,Yr];function Qr(t,e){de(t,1,Kr,e)}var Zr=class extends $e{constructor(t){super(t,500)}N(t){return he(this,1001,t)}};Zr.prototype.j=Rr([-500,kr,[-500,jr,-1,Er,-3,[-2,Hr,Tr],kr,Vr,Ar,-1,Jr,Xr,kr,[0,jr,Pr],jr,qr,Ar,Er,987,Er],4,kr,[-500,Lr,-1,[-1,{}],998,Lr],kr,[-500,Lr,Er,-1,[-2,{},Tr],997,Er,-1],Ar,kr,[-500,Lr,Er,Yr,998,Er],Er,Ar,Jr,Xr,kr,[0,jr,-1,Yr],Er,-2,qr,jr,-1,Pr,[0,Pr,Br],978,Yr,kr,Vr]);var tn=class extends $e{constructor(t){super(t)}};let en;const rn=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 nn(){if(void 0===en)try{await WebAssembly.instantiate(rn),en=!0}catch{en=!1}return en}async function on(t,e=Wr``){const r=await nn()?"wasm_internal":"wasm_nosimd_internal";return{wasmLoaderPath:`${e}/${t}_${r}.js`,wasmBinaryPath:`${e}/${t}_${r}.wasm`}}var sn=class{};function an(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};const n={cache:[],active:!0};let i=Promise.resolve();const o=e(r,n);return r=e(n,r),[o.getReader(),r.getReader()]}async function un(t,e){const r=new Uint8Array(e);let n=0;for(;n<e;){const{value:i,done:o}=await t.read();if(i){const 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}sn.forVisionTasks=function(t){return on("vision",t)},sn.forTextTasks=function(t){return on("text",t)},sn.forGenAiExperimentalTasks=function(t){return on("genai_experimental",t)},sn.forGenAiTasks=function(t){return on("genai",t)},sn.forAudioTasks=function(t){return on("audio",t)},sn.isSimdSupported=function(){return nn()};const cn=[[0,async t=>{const e=(new TextEncoder).encode("TFL3").length;return t=await un(t,e+4),"TFL3"===new TextDecoder("utf-8").decode(t.subarray(4,e+4))}],[1,async t=>80===(t=await un(t,6))[4]&&75===t[5]]];function ln(){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 hn(t){if("function"!=typeof importScripts){const 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)}))}importScripts(t.toString())}function fn(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 dn(t,e,r){t.o||console.error("No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target");const 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(const e of n)t.h._free(e);t.h._free(e)}function pn(t,e,r){t.h.simpleListeners=t.h.simpleListeners||{},t.h.simpleListeners[e]=r}function mn(t,e,r){let n=[];t.h.simpleListeners=t.h.simpleListeners||{},t.h.simpleListeners[e]=(t,e,i)=>{e?(r(n,i),n=[]):n.push(t)}}const gn=(_n=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:ln()?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){const 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){const 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?'),fn(this,n||"input_audio",(n=>{fn(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){const 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),fn(this,n,(t=>{this.h._addAudioToInputStream(this.i,e,r,t,i)}))}addGpuBufferToStream(t,e,r){fn(this,e,(e=>{if(!this.h.canvas)throw Error("No OpenGL canvas configured.");e?this.h._bindTextureToStream(e):this.h._bindTextureToCanvas();const 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);const[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);const[s,a]=[i,o];this.h._addBoundTextureToStream(e,s,a,r)}))}addBoolToStream(t,e,r){fn(this,e,(e=>{this.h._addBoolToInputStream(t,e,r)}))}addDoubleToStream(t,e,r){fn(this,e,(e=>{this.h._addDoubleToInputStream(t,e,r)}))}addFloatToStream(t,e,r){fn(this,e,(e=>{this.h._addFloatToInputStream(t,e,r)}))}addIntToStream(t,e,r){fn(this,e,(e=>{this.h._addIntToInputStream(t,e,r)}))}addUintToStream(t,e,r){fn(this,e,(e=>{this.h._addUintToInputStream(t,e,r)}))}addStringToStream(t,e,r){fn(this,e,(e=>{fn(this,t,(t=>{this.h._addStringToInputStream(t,e,r)}))}))}addStringRecordToStream(t,e,r){fn(this,e,(e=>{dn(this,Object.keys(t),(n=>{dn(this,Object.values(t),(i=>{this.h._addFlatHashMapToInputStream(n,i,Object.keys(t).length,e,r)}))}))}))}addProtoToStream(t,e,r,n){fn(this,r,(r=>{fn(this,e,(e=>{const 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){fn(this,t,(t=>{this.h._addEmptyPacketToInputStream(t,e)}))}addBoolVectorToStream(t,e,r){fn(this,e,(e=>{const n=this.h._allocateBoolVector(t.length);if(!n)throw Error("Unable to allocate new bool vector on heap.");for(const e of t)this.h._addBoolVectorEntry(n,e);this.h._addBoolVectorToInputStream(n,e,r)}))}addDoubleVectorToStream(t,e,r){fn(this,e,(e=>{const n=this.h._allocateDoubleVector(t.length);if(!n)throw Error("Unable to allocate new double vector on heap.");for(const e of t)this.h._addDoubleVectorEntry(n,e);this.h._addDoubleVectorToInputStream(n,e,r)}))}addFloatVectorToStream(t,e,r){fn(this,e,(e=>{const n=this.h._allocateFloatVector(t.length);if(!n)throw Error("Unable to allocate new float vector on heap.");for(const e of t)this.h._addFloatVectorEntry(n,e);this.h._addFloatVectorToInputStream(n,e,r)}))}addIntVectorToStream(t,e,r){fn(this,e,(e=>{const n=this.h._allocateIntVector(t.length);if(!n)throw Error("Unable to allocate new int vector on heap.");for(const e of t)this.h._addIntVectorEntry(n,e);this.h._addIntVectorToInputStream(n,e,r)}))}addUintVectorToStream(t,e,r){fn(this,e,(e=>{const n=this.h._allocateUintVector(t.length);if(!n)throw Error("Unable to allocate new unsigned int vector on heap.");for(const e of t)this.h._addUintVectorEntry(n,e);this.h._addUintVectorToInputStream(n,e,r)}))}addStringVectorToStream(t,e,r){fn(this,e,(e=>{const n=this.h._allocateStringVector(t.length);if(!n)throw Error("Unable to allocate new string vector on heap.");for(const e of t)fn(this,e,(t=>{this.h._addStringVectorEntry(n,t)}));this.h._addStringVectorToInputStream(n,e,r)}))}addBoolToInputSidePacket(t,e){fn(this,e,(e=>{this.h._addBoolToInputSidePacket(t,e)}))}addDoubleToInputSidePacket(t,e){fn(this,e,(e=>{this.h._addDoubleToInputSidePacket(t,e)}))}addFloatToInputSidePacket(t,e){fn(this,e,(e=>{this.h._addFloatToInputSidePacket(t,e)}))}addIntToInputSidePacket(t,e){fn(this,e,(e=>{this.h._addIntToInputSidePacket(t,e)}))}addUintToInputSidePacket(t,e){fn(this,e,(e=>{this.h._addUintToInputSidePacket(t,e)}))}addStringToInputSidePacket(t,e){fn(this,e,(e=>{fn(this,t,(t=>{this.h._addStringToInputSidePacket(t,e)}))}))}addProtoToInputSidePacket(t,e,r){fn(this,r,(r=>{fn(this,e,(e=>{const 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){fn(this,e,(e=>{const r=this.h._allocateBoolVector(t.length);if(!r)throw Error("Unable to allocate new bool vector on heap.");for(const e of t)this.h._addBoolVectorEntry(r,e);this.h._addBoolVectorToInputSidePacket(r,e)}))}addDoubleVectorToInputSidePacket(t,e){fn(this,e,(e=>{const r=this.h._allocateDoubleVector(t.length);if(!r)throw Error("Unable to allocate new double vector on heap.");for(const e of t)this.h._addDoubleVectorEntry(r,e);this.h._addDoubleVectorToInputSidePacket(r,e)}))}addFloatVectorToInputSidePacket(t,e){fn(this,e,(e=>{const r=this.h._allocateFloatVector(t.length);if(!r)throw Error("Unable to allocate new float vector on heap.");for(const e of t)this.h._addFloatVectorEntry(r,e);this.h._addFloatVectorToInputSidePacket(r,e)}))}addIntVectorToInputSidePacket(t,e){fn(this,e,(e=>{const r=this.h._allocateIntVector(t.length);if(!r)throw Error("Unable to allocate new int vector on heap.");for(const e of t)this.h._addIntVectorEntry(r,e);this.h._addIntVectorToInputSidePacket(r,e)}))}addUintVectorToInputSidePacket(t,e){fn(this,e,(e=>{const r=this.h._allocateUintVector(t.length);if(!r)throw Error("Unable to allocate new unsigned int vector on heap.");for(const e of t)this.h._addUintVectorEntry(r,e);this.h._addUintVectorToInputSidePacket(r,e)}))}addStringVectorToInputSidePacket(t,e){fn(this,e,(e=>{const r=this.h._allocateStringVector(t.length);if(!r)throw Error("Unable to allocate new string vector on heap.");for(const e of t)fn(this,e,(t=>{this.h._addStringVectorEntry(r,t)}));this.h._addStringVectorToInputSidePacket(r,e)}))}attachBoolListener(t,e){pn(this,t,e),fn(this,t,(t=>{this.h._attachBoolListener(t)}))}attachBoolVectorListener(t,e){mn(this,t,e),fn(this,t,(t=>{this.h._attachBoolVectorListener(t)}))}attachIntListener(t,e){pn(this,t,e),fn(this,t,(t=>{this.h._attachIntListener(t)}))}attachIntVectorListener(t,e){mn(this,t,e),fn(this,t,(t=>{this.h._attachIntVectorListener(t)}))}attachUintListener(t,e){pn(this,t,e),fn(this,t,(t=>{this.h._attachUintListener(t)}))}attachUintVectorListener(t,e){mn(this,t,e),fn(this,t,(t=>{this.h._attachUintVectorListener(t)}))}attachDoubleListener(t,e){pn(this,t,e),fn(this,t,(t=>{this.h._attachDoubleListener(t)}))}attachDoubleVectorListener(t,e){mn(this,t,e),fn(this,t,(t=>{this.h._attachDoubleVectorListener(t)}))}attachFloatListener(t,e){pn(this,t,e),fn(this,t,(t=>{this.h._attachFloatListener(t)}))}attachFloatVectorListener(t,e){mn(this,t,e),fn(this,t,(t=>{this.h._attachFloatVectorListener(t)}))}attachStringListener(t,e){pn(this,t,e),fn(this,t,(t=>{this.h._attachStringListener(t)}))}attachStringVectorListener(t,e){mn(this,t,e),fn(this,t,(t=>{this.h._attachStringVectorListener(t)}))}attachProtoListener(t,e,r){pn(this,t,e),fn(this,t,(t=>{this.h._attachProtoListener(t,r||!1)}))}attachProtoVectorListener(t,e,r){mn(this,t,e),fn(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?'),pn(this,t,((t,r)=>{t=new Float32Array(t.buffer,t.byteOffset,t.length/4),e(t,r)})),fn(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 _n{ja(){this.h._registerModelResourcesGraphService()}});var _n;async function yn(t,e){const r=await(async(t,e,r)=>{var n=ii;if(t&&await hn(t),!self.ModuleFactory)throw Error("ModuleFactory not set.");if(e&&(await hn(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 await r.N(e),r}async function bn(t,e){return yn(t,e)}function wn(t){try{const 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 vn(t,e){t.I=Math.max(t.I,e)}var Sn=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.ja(),this.j.setGraph(t,e),wn(this)}finishProcessing(){this.j.finishProcessing(),wn(this)}close(){this.j.closeGraph()}};Sn.prototype.close=Sn.prototype.close;var En=class extends $e{constructor(t){super(t)}j(){return jt(Jt(this,2))??0}};function An(t,e){he(t,1,e)}var In=class extends $e{constructor(t){super(t)}},Tn=[0,Fr,Ar,br,-1,Sr];function Pn(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(const[n,i]of t.i){const t=i;(r=n)<=e&&(e=Math.max(e,r+t))}e===t.length&&(t.data=void 0)}(t,e,r),i}}En.prototype.l=Rr(Tn);class Ln{constructor(t){this.i=[],this.data=t,this.length=t.length}}function On(t,e){return new xn((async()=>{const{value:e,done:r}=await t.read();return r?void 0:e}),e)}async function jn(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 Ln(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;let s=0;for(let a=0;a<t.i.length;a++){const u=t.i[a];if(r>=u.length){r-=u.length;continue}const c=Math.min(n,u.length-r);if(void 0===(r=Pn(u,r,c,i)))throw Error("Data has already been released.");if(e.HEAPU8.set(r,o+s),r=0,s+=c,0===(n-=c))break}if(0!==n)throw Error("Data not found.");return Promise.resolve(o)}var xn=class{constructor(t,e){this.i=[],this.j=t,this.l=e}get size(){let 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 Un(t){return"object"==typeof t&&null!=t&&"audioSource"in t}async function Bn(t,e,r){t=new Fn(t,r);let n=0;for(e=e.getReader();;){const{value:r,done:i}=await e.read();if(i)break;t.set(r,n),n+=r.byteLength}if(r!==n)throw Nn(t),Error(`File could not be fully loaded to memory, so was not retained. Loaded ${n}/${r} bytes before failure`);return t}function Nn(t){if(t.i)try{t.h._free(t.j)}catch{}finally{t.i=!1}}var Fn=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 $e{constructor(t){super(t)}};Rn.prototype.j=Rr([0,jr,2,Er,Ar,Pr]);var Dn=class extends $e{constructor(t){super(t)}},Mn=class extends $e{constructor(t){super(t)}},Vn=class extends $e{constructor(t){super(t)}},Cn=class extends $e{constructor(t){super(t)}},Gn=[0,Ar,-6,1,Ar,1,[0,Pr,Fr,-2],[0,Pr,br],Fr,-2,[0,Pr,-1,Fr,br,Nr,Sr,Tr,-1],1,Pr,Ar,Sr,-1,[0,Fr,Ar],Pr,-1,yr,Ar,-5,yr,-1,[0,Sr,yr],Sr,Tr,[0,Sr,-2],yr,[0,Ar],[0,Ar,-4],Tr,Sr,-2,Tr],zn=[0,jr,-2],Wn=[0,[4,6],Gn,Ar,1,Ir,Er,xr,Or,zn,Sr,[0,[0,Ar,-1,kr,[0,Ar,[0,Ar,-1],-1,[0,Fr,-1],Pr],Pr,-2,Ar,-1],[0,Ar,-1,Pr],Gn,Pr,Ar,[0,Ar]],Lr,-3,[0,Ar,Pr],Gn,[0,zn,-2],_r];Cn.prototype.j=Rr([0,jr,8,[0,Pr,-6],1,Ar,1,Ar,[0,kr,[0,jr,vr,-1,Fr],Wn,Ar],[0,Ar,Pr,-3],1,Fr,1,Wn,1,Ar,5,Fr,_r,1,Tn,Pr,Ar]);var Hn=class extends $e{constructor(t){super(t)}},$n=class extends $e{constructor(t){super(t)}},qn=[2,4];$n.prototype.j=Rr([0,qn,Ar,xr,Ar,Ur,[0,1,jr]]);const Kn=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{const r=On(t,(()=>{}));await this.h.createLlmInferenceEngine(pe(e,2)??512,ce(e,En,3)?.j()??40,It(Jt(e,6))??!1??!1,pe(e,7)??0,It(Jt(e,8))??!1??!1,((t,e,n)=>jn(r,this.h,t,e,n)))}finally{this.L()}}async aa(t,e){this.M();try{await this.la(t),await this.h.ccall("CreateLlmInferenceEngineConverted","void",["number","number","boolean"],[pe(e,2)??512,ce(e,En,3)?.j()??40,It(Jt(e,6))??!1??!1],{async:!0})}finally{this.L()}}V(){this.M();try{const 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{const n=[],i=this.h;i._userProgressListener=(t,e)=>{t&&n.push(t),r&&r(t,e)};const o=e.l(),s=o.length,a=this.h._malloc(s);this.h.HEAPU8.set(o,a);const u=t.some(Un),c=t.some(kn);i.ccallNum=i.ccall;const l=await i.ccallNum("MakeSessionForPredict","number",["number","number","boolean","boolean"],[a,s,c,u],{async:!0});e=[];for(const r of t)if("string"==typeof r)fn(this,r,(t=>{i._AddTextQueryChunk(l,t)}));else if(kn(r)){const{image:t,width:n,height:o}=await this.ea(r.imageSource),s="undefined"!=typeof OffscreenCanvas?new OffscreenCanvas(n,o):document.createElement("canvas");s.width=n,s.height=o;const a=s.getContext("2d");a.drawImage(t,0,0);const u=a.getImageData(0,0,n,o),c=this.h._malloc(u.width*u.height*4);this.h.HEAPU8.set(u.data,c),i._AddImageQueryChunk(l,c,u.width,u.height),e.push(c)}else{if(!Un(r))throw Error("Unsupported PromptPart type in query.");{const t=await this.da(r.audioSource),n=this.h._malloc(t.audioSamples.byteLength);this.h.HEAPF32.set(t.audioSamples,n/4),i._AddAudioQueryChunk(l,t.audioSampleRateHz,n,t.audioSamples.length),e.push(n)}}await i.ccall("PredictSession","void",["number"],[l],{async:!0}),t=!0,c&&0===this.F&&(this.F=l,t=!1),u&&0===this.H&&(this.H=l,t=!1),t&&i._FreeSession(l);for(const t of e)this.h._free(t);return e.length=0,r&&r("",!0),this.h._free(a),i._userProgressListener=void 0,n.join("")}finally{this.L()}}S(t){this.M();let e=0,r="";for(const n of t)"string"==typeof n?r+=n:kn(n)?e+=260:Un(n)&&console.warn("sizeInTokens is not yet implemented for audio; audio tokens will not be counted");try{let t;return fn(this,r,(e=>{t=this.h._GetSizeInTokens(e)})),e+t}finally{this.L()}}async la(t){t=await async function(t){const e=[];for(var r=0;;){const{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(const 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 ea(t){if("string"==typeof t){const 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 da(t){if("string"==typeof t){const 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){return class e extends t{static async ka(t,r){let n;r||=await e.X();const i=[];for(const e of t?.requiredFeatures??[])r.features.has(e)?i.push(e):console.warn(`WebGPU feature ${e} is not supported.`);t={...t,requiredFeatures:i};try{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}fa(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}Z(){return this.h.ccall("closeGraph","void",[],[],{async:!0})}}}(function(t){return class extends t{addStreamingReaderToInputSidePacket(t,e){this.h.addStreamingReaderToInputSidePacket(((e,r,n)=>jn(t,this.h,e,r,n)),e)}}}(function(t){return class extends t{Y(t,e){fn(this,"lora_model_ref_in",(r=>{this.h._addRawDataSpanToInputStream(t.offset,t.size,r,e)}))}}}(class extends gn{}))));class Yn extends Kn{}var Jn=class{constructor(t){this.j=t,this.i=Xn,Xn++}},Xn=1;class Qn{constructor(){let t,e;this.promise=new Promise(((r,n)=>{t=r,e=n})),this.resolve=t,this.reject=e}}function Zn(t){return 1===t?1:t+t%2}async function ti(){const t=await Yn.X({powerPreference:"high-performance"});var 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."),r=["shader-f16","subgroups"],t.features.has("subgroups-f16")&&r.push("subgroups-f16"),e.requiredFeatures=r),Yn.ka(e,t)}function ei(t){if(t.D.length>0){const e=[...t.D];if(t.D.length=0,!t.o)throw e;t.o.reject(e),t.o=void 0}}function ri(t){const e=function(t){const e=new Zr;ye(e,10,"text_in"),ye(e,10,"token_cost_in"),ye(e,10,"lora_model_id_to_apply_in"),ye(e,10,"lora_model_ref_in"),ye(e,10,"lora_model_id_to_load_in"),ye(e,16,"streaming_reader"),ye(e,15,"text_out"),ye(e,15,"text_end"),ye(e,15,"token_cost_out");var r=new Kr;_e(r,2,"TokenizerInputBuildCalculator"),ye(r,3,"PROMPT:text_in"),ye(r,3,"LORA_ID:lora_model_id_to_apply_in"),ye(r,4,"prompt"),Qr(e,r),_e(r=new Kr,2,"ModelDataCalculator"),ye(r,6,"MODEL_DATA:__side_packet_1"),ye(r,6,"MODEL_TYPE:model_type"),ye(r,5,"READ_DATA_FN:streaming_reader"),ye(r,3,"LORA_MODEL_SPAN:lora_model_ref_in"),ye(r,3,"LORA_MODEL_ID:lora_model_id_to_load_in"),ye(r,4,"LORA_DATA:lora_model_data"),Qr(e,r),_e(r=new Kr,2,"Gpt2UnicodeMappingCalculator"),ye(r,5,"MODEL_TYPE:model_type"),ye(r,6,"BYTES_TO_UNICODE_MAPPING:tokenizer_mapping"),Qr(e,r),_e(r=new Mr,1,"type.googleapis.com/odml.infra.proto.TokenizerCalculatorOptions");var n=new $n,i=pe(t.i,2);me(n,1,i),_e(i=new Hn,2,"spm_vocab_model"),i=le(i);t:{qt(n);var o=n.m,s=0|o[M];if(null==i){var a=ae(o);if(4!==ue(a,o,s))break t;a.set(qn,0)}else{const t=ae(a=o),e=ue(t,a,s);4!==e&&(e&&(s=Zt(a,s,e)),t.set(qn,4))}Zt(o,s,4,i)}return i&&!$(i)&&Kt(n.m),me(n,3,2),Dr(r,n.j()),_e(n=new Kr,2,"TokenizerCalculator"),de(n,8,Mr,r),ye(n,5,"MODEL_DATA:__side_packet_1"),ye(n,3,"PROMPT_AND_INPUT_OPTIONS:prompt"),ye(n,5,"BYTES_TO_UNICODE_MAPPING:tokenizer_mapping"),ye(n,6,"PROCESSOR_GETTER:__input_side_1"),ye(n,4,"IDS_AND_INPUT_OPTIONS:__stream_0"),Qr(e,n),_e(r=new Mr,1,"type.googleapis.com/odml.infra.proto.LlmGpuCalculatorOptions"),me(n=new Cn,12,3),_e(n,1,"llm.tflite"),me(n,14,0),i=Zn(pe(t.i,5)),me(n,22,i),i=ce(t.i,En,3),he(n,31,i),se(i=new Dn,1,At(!0),!1),null!=It(Jt(t.i,6))&&(It(Jt(t.i,6))??!1)&&se(i,1,At(!1),!1),se(i,2,At(!0),!1),se(i,5,At(!0),!1),he(n,10,i),i=te(t.i,4,jt,void 0===K?2:4),oe(n,29,i),i=new Vn,me(o=new Mn,1,1),a=pe(t.i,2),me(o,2,a),he(i,1,o),he(n,20,i),Dr(r,n.j()),_e(n=new Kr,2,"LlmGpuCalculator"),de(n,8,Mr,r),ye(n,3,"IDS_AND_INPUT_OPTIONS:__stream_0"),ye(n,3,"FINISH:finish"),ye(n,3,"LORA_DATA:lora_model_data"),ye(n,5,"MODEL_DATA:__side_packet_1"),ye(n,4,"DECODED_IDS:__stream_3"),ye(n,4,"OUTPUT_END:__stream_4"),_e(r=new $r,1,"FINISH"),se(r,2,At(!0),!1),de(n,13,$r,r),Qr(e,n),_e(r=new Kr,2,"IsPacketPresentCalculator"),ye(r,3,"__stream_4"),ye(r,4,"text_end"),Qr(e,r),_e(r=new Mr,1,"type.googleapis.com/odml.infra.proto.DetokenizerCalculatorOptions"),n=new Rn,t=Zn(pe(t.i,5)),me(n,5,t),ye(n,4,"<eos>"),ye(n,4,"<|endoftext|>"),Dr(r,n.j()),_e(t=new Kr,2,"DetokenizerCalculator"),de(t,8,Mr,r),ye(t,3,"IDS_AND_INPUT_OPTIONS:__stream_3"),ye(t,5,"PROCESSOR_GETTER:__input_side_1"),ye(t,5,"BYTES_TO_UNICODE_MAPPING:tokenizer_mapping"),ye(t,5,"MODEL_DATA:__side_packet_1"),ye(t,4,"FINISH_AND_INPUT_OPTIONS:finish"),ye(t,4,"WORDS:text_out"),Qr(e,t),_e(t=new Kr,2,"TokenCostCalculator"),ye(t,3,"PROMPT:token_cost_in"),ye(t,5,"PROCESSOR_GETTER:__input_side_1"),ye(t,5,"BYTES_TO_UNICODE_MAPPING:tokenizer_mapping"),ye(t,4,"NUM_TOKENS:token_cost_out"),Qr(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<pe(t.i,5)&&t.G[r].push(e)})),t.v&&0===t.D.length&&(t.A?(e.length>pe(t.i,5)&&e.pop(),t.v(e,!1)):t.v(e[0],!1)),vn(t,r)})),t.j.attachEmptyPacketListener("text_out",(e=>{vn(t,e)})),t.j.attachBoolListener("text_end",((e,r)=>{vn(t,r);try{ei(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.v)if(t.A){for(e=[],r=0;r<pe(t.i,5);r++)e.push("");t.v(e,!0)}else t.v("",!0);t.l=!1,t.A=void 0})),t.j.attachEmptyPacketListener("text_end",(e=>{t.l=!1,t.A=void 0,vn(t,e),ei(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,vn(t,r)})),t.U&&t.j.addStreamingReaderToInputSidePacket(t.U,"streaming_reader");const r=e.j();return t.C?.removeEventListener("uncapturederror",t.K),t.j.Z().then((()=>{t.C?.addEventListener("uncapturederror",t.K),t.D.length=0,t.setGraph(new Uint8Array(r),!0),t.finishProcessing()}))}function ni(t,e,r,n){if(t.v="function"==typeof r?r:n,(n=(e=Array.isArray(e)?e:[e]).filter((t=>kn(t))).length)>0&&(null==xt(Jt(t.i,7))||pe(t.i,7)<n))throw Error(`maxNumImages is set to ${null!=xt(Jt(t.i,7))?pe(t.i,7):0}, but the query included ${n} images.`);if((n=e.filter((t=>Un(t))).length)>0&&(null==It(Jt(t.i,8))||!It(Jt(t.i,8))))throw Error(`supportAudio was not enabled, but the query included ${n} audio chunks.`);if(t.B){if(t.A&&pe(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 Jn)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.R(e,t.u,((e,r)=>{0===t.D.length&&t.v&&(t.A?t.v([e],r):t.v(e,r))})).then((e=>(ei(t),[e])))}if(t.l)throw Error("Previous invocation or loading is still ongoing.");for(t.l=!0,t.G.length=0,n=0;n<pe(t.i,5);n++)t.G[n]=[];if(n=t.I+1,t.j.addStringToStream(e.join(""),"text_in",n),r instanceof Jn){if(r.j!==t)throw t.l=!1,t.A=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 Qn,t.o.promise}var ii=class extends Sn{constructor(t,e){if(super(new Yn(t,e)),this.G=[],this.O=this.B=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 In,An(this.i,new tn),this.u=new En,he(this.i,3,this.u),ge(this.i,2,512),t=this.u,!wt(2))throw L("enum");se(t,1,2,0),me(this.u,2,40),se(this.u,3,St(1),0),Qt(this.u,5,Ot(0)),se(this.u,4,St(.8),0),ge(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");let e;const 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.");{const[r,s]=an(n);this.O=1===await async function(t){const e=[];let r;for(const[i,o]of cn){const s=i;var n=o;[t,r]=an(t),n=await n(r),await r.cancel(),n&&e.push(s)}if(await t.cancel(),0===e.length)throw Error("No model format matched.");if(1===e.length)return e[0];throw Error(`Multiple model formats matched: ${e}`)}(s);var i="maxNumImages"in t&&t.maxNumImages?t.maxNumImages:0;ge(this.i,7,i);var o="supportAudio"in t&&!!t.supportAudio;Qt(this.i,8,At(o)),this.O||i>0||o?(this.B=!0,n=r):(this.B=!1,this.U=On(r,e))}if(t.baseOptions?.gpuOptions?.device&&(this.C&&this.C.removeEventListener("uncapturederror",this.K),this.C=t.baseOptions.gpuOptions.device,this.j.fa(this.C),this.C.addEventListener("uncapturederror",this.K)),"maxTokens"in t&&ge(this.i,2,t.maxTokens??512),"topK"in t&&me(this.u,2,t.topK??40),"temperature"in t&&se(this.u,4,St(t.temperature??.8),0),"randomSeed"in t&&Qt(this.u,5,Ot(t.randomSeed??0)),"loraRanks"in t&&function(t,e){oe(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.B&&i>1)throw Error("'numResponses > 1' is not supported for converted LLM models yet, and is also not supported with multimodality.");ge(this.i,5,i),o=ce(this.i,En,3),i>1&&o&&(o.j()<=1||(Jt(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&&Qt(this.i,6,At(t.forceF32)),this.B?(this.j.V(),this.O?this.j.aa(n,this.i).then((()=>{ei(this)})):this.j.createLlmInferenceEngine(n,this.i).then((()=>{ei(this)}))):(this.l=!0,t=ri(this).then((()=>{})),Promise.all([r,t]).then((()=>{this.l=!1,ei(this)})))}get baseOptions(){return ce(this.i,tn,1)}set baseOptions(t){An(this.i,t)}get isIdle(){return!this.l&&!this.o}R(t,e,r){return pe(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.A=!1,ni(this,t,e,r).then((t=>t[0]))}ca(t,e,r){return this.A=!0,ni(this,t,e,r)}S(t){if(t=Array.isArray(t)?t:[t],this.B)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(Un))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}async ia(t){if(this.B)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 Fn(this.j.h,t.length);e.set(t),t=e}else t=t instanceof Blob?await async function(t,e){return Bn(t,e.stream(),e.size)}(this.j.h,t):await async function(t,e){e=await fetch(e.toString());const 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 Bn(t,e.body,r)}(this.j.h,t);e=new Jn(this);const r=this.I+1;return this.j.Y(t,r),this.j.addUintToStream(e.i,"lora_model_id_to_load_in",r),this.finishProcessing(),Nn(t),vn(this,r),this.l=!1,e}close(){this.B&&this.j.V(),this.C?.removeEventListener("uncapturederror",this.K),super.close()}};ii.prototype.loadLoraModel=ii.prototype.ia,ii.prototype.sizeInTokens=ii.prototype.S,ii.prototype.generateResponses=ii.prototype.ca,ii.prototype.generateResponse=ii.prototype.R,ii.prototype.setOptions=ii.prototype.N,ii.createWebGpuDevice=ti,ii.createFromModelPath=async function(t,e){return bn(t,e={baseOptions:{gpuOptions:{device:await ti()},modelAssetPath:e}})},ii.createFromModelBuffer=async function(t,e){return bn(t,e={baseOptions:{gpuOptions:{device:await ti()},modelAssetBuffer:e}})},ii.createFromOptions=async function(t,e){if(!e.baseOptions?.gpuOptions?.device){const t=await ti();e.baseOptions=e.baseOptions??{},e.baseOptions.gpuOptions=e?.baseOptions?.gpuOptions??{},e.baseOptions.gpuOptions.device=t}return bn(t,e)},exports.FilesetResolver=sn,exports.LlmInference=ii,exports.TaskRunner=Sn;
|
|
2
2
|
//# sourceMappingURL=genai_bundle_cjs.js.map
|