@mediapipe/tasks-genai 0.10.22 → 0.10.24
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/genai.d.ts +138 -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 +8 -6
- package/wasm/genai_wasm_internal.wasm +0 -0
- package/wasm/genai_wasm_nosimd_internal.js +8 -6
- package/wasm/genai_wasm_nosimd_internal.wasm +0 -0
package/genai.d.ts
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
/// <reference types="@webgpu/types" />
|
|
2
2
|
|
|
3
|
+
import * as jspb from 'google-protobuf';
|
|
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 type AudioSource = string;
|
|
14
|
+
|
|
3
15
|
/**
|
|
4
16
|
* Copyright 2022 The MediaPipe Authors.
|
|
5
17
|
*
|
|
@@ -109,6 +121,16 @@ export declare class FilesetResolver {
|
|
|
109
121
|
static forVisionTasks(basePath?: string): Promise<WasmFileset>;
|
|
110
122
|
}
|
|
111
123
|
|
|
124
|
+
/**
|
|
125
|
+
* Image type for use in multi-modal LLM queries.
|
|
126
|
+
*/
|
|
127
|
+
declare interface Image_2 {
|
|
128
|
+
imageSource: ImageSource;
|
|
129
|
+
}
|
|
130
|
+
export { Image_2 as Image }
|
|
131
|
+
|
|
132
|
+
declare type ImageSource = Exclude<CanvasImageSource, SVGElement> | string;
|
|
133
|
+
|
|
112
134
|
/**
|
|
113
135
|
* Options to configure the model loading and processing for LLM Inference task.
|
|
114
136
|
*/
|
|
@@ -120,6 +142,7 @@ export declare interface LlmBaseOptions extends BaseOptions_2 {
|
|
|
120
142
|
* Performs LLM Inference on text.
|
|
121
143
|
*/
|
|
122
144
|
export declare class LlmInference extends TaskRunner {
|
|
145
|
+
readonly options: LlmInferenceGraphOptions;
|
|
123
146
|
/**
|
|
124
147
|
* Initializes the Wasm runtime and creates a new `LlmInference` based
|
|
125
148
|
* on the provided options.
|
|
@@ -174,108 +197,108 @@ export declare class LlmInference extends TaskRunner {
|
|
|
174
197
|
*/
|
|
175
198
|
get isIdle(): boolean;
|
|
176
199
|
/**
|
|
177
|
-
* Performs LLM Inference on the provided
|
|
200
|
+
* Performs LLM Inference on the provided prompt and waits
|
|
178
201
|
* asynchronously for the response. Only one call to `generateResponse()` can
|
|
179
202
|
* run at a time.
|
|
180
203
|
*
|
|
181
204
|
* @export
|
|
182
|
-
* @param
|
|
205
|
+
* @param query The prompt to process.
|
|
183
206
|
* @return The generated text result.
|
|
184
207
|
*/
|
|
185
|
-
generateResponse(
|
|
208
|
+
generateResponse(query: Prompt): Promise<string>;
|
|
186
209
|
/**
|
|
187
|
-
* Performs LLM Inference on the provided
|
|
210
|
+
* Performs LLM Inference on the provided prompt and waits
|
|
188
211
|
* asynchronously for the response. Only one call to `generateResponse()` can
|
|
189
212
|
* run at a time.
|
|
190
213
|
*
|
|
191
214
|
* @export
|
|
192
|
-
* @param
|
|
215
|
+
* @param query The prompt to process.
|
|
193
216
|
* @param progressListener A listener that will be triggered when the task has
|
|
194
217
|
* new partial response generated.
|
|
195
218
|
* @return The generated text result.
|
|
196
219
|
*/
|
|
197
|
-
generateResponse(
|
|
220
|
+
generateResponse(query: Prompt, progressListener?: ProgressListener): Promise<string>;
|
|
198
221
|
/**
|
|
199
|
-
* Performs LLM Inference on the provided
|
|
222
|
+
* Performs LLM Inference on the provided prompt and waits
|
|
200
223
|
* asynchronously for the response. Only one call to `generateResponse()` can
|
|
201
224
|
* run at a time.
|
|
202
225
|
*
|
|
203
226
|
* @export
|
|
204
|
-
* @param
|
|
227
|
+
* @param query The prompt to process.
|
|
205
228
|
* @param loraModel The LoRA model to apply on the text generation.
|
|
206
229
|
* @return The generated text result.
|
|
207
230
|
*/
|
|
208
|
-
generateResponse(
|
|
231
|
+
generateResponse(query: Prompt, loraModel?: LoraModel): Promise<string>;
|
|
209
232
|
/**
|
|
210
|
-
* Performs LLM Inference on the provided
|
|
233
|
+
* Performs LLM Inference on the provided prompt and waits
|
|
211
234
|
* asynchronously for the response. Only one call to `generateResponse()` can
|
|
212
235
|
* run at a time.
|
|
213
236
|
*
|
|
214
237
|
* @export
|
|
215
|
-
* @param
|
|
238
|
+
* @param query The prompt to process.
|
|
216
239
|
* @param loraModel The LoRA model to apply on the text generation.
|
|
217
240
|
* @param progressListener A listener that will be triggered when the task has
|
|
218
241
|
* new partial response generated.
|
|
219
242
|
* @return The generated text result.
|
|
220
243
|
*/
|
|
221
|
-
generateResponse(
|
|
244
|
+
generateResponse(query: Prompt, loraModel?: LoraModel, progressListener?: ProgressListener): Promise<string>;
|
|
222
245
|
/**
|
|
223
246
|
* Similar to `generateResponse()` but can return multiple responses for the
|
|
224
247
|
* given prompt if the task is initialized with a value for `numResponses`
|
|
225
248
|
* greater than 1.
|
|
226
249
|
*
|
|
227
250
|
* @export
|
|
228
|
-
* @param
|
|
251
|
+
* @param query The prompt to process.
|
|
229
252
|
* @return The generated results.
|
|
230
253
|
*/
|
|
231
|
-
generateResponses(
|
|
254
|
+
generateResponses(query: Prompt): Promise<string[]>;
|
|
232
255
|
/**
|
|
233
256
|
* Similar to `generateResponse()` but can return multiple responses for the
|
|
234
257
|
* given prompt if the task is initialized with a value for `numResponses`
|
|
235
258
|
* greater than 1.
|
|
236
259
|
*
|
|
237
260
|
* @export
|
|
238
|
-
* @param
|
|
261
|
+
* @param query The prompt to process.
|
|
239
262
|
* @param progressListener A listener that will be triggered when the task has
|
|
240
263
|
* new partial response generated.
|
|
241
264
|
* @return The generated results.
|
|
242
265
|
*/
|
|
243
|
-
generateResponses(
|
|
266
|
+
generateResponses(query: Prompt, progressListener: MultiResponseProgressListener): Promise<string[]>;
|
|
244
267
|
/**
|
|
245
268
|
* Similar to `generateResponse()` but can return multiple responses for the
|
|
246
269
|
* given prompt if the task is initialized with a value for `numResponses`
|
|
247
270
|
* greater than 1.
|
|
248
271
|
*
|
|
249
272
|
* @export
|
|
250
|
-
* @param
|
|
273
|
+
* @param query The prompt to process.
|
|
251
274
|
* @param loraModel The LoRA model to apply on the text generation.
|
|
252
275
|
* @return The generated results.
|
|
253
276
|
*/
|
|
254
|
-
generateResponses(
|
|
277
|
+
generateResponses(query: Prompt, loraModel: LoraModel): Promise<string[]>;
|
|
255
278
|
/**
|
|
256
279
|
* Similar to `generateResponse()` but can return multiple responses for the
|
|
257
280
|
* given prompt if the task is initialized with a value for `numResponses`
|
|
258
281
|
* greater than 1.
|
|
259
282
|
*
|
|
260
283
|
* @export
|
|
261
|
-
* @param
|
|
284
|
+
* @param query The prompt to process.
|
|
262
285
|
* @param loraModel The LoRA model to apply on the text generation.
|
|
263
286
|
* @param progressListener A listener that will be triggered when the task has
|
|
264
287
|
* new partial response generated.
|
|
265
288
|
* @return The generated results.
|
|
266
289
|
*/
|
|
267
|
-
generateResponses(
|
|
290
|
+
generateResponses(query: Prompt, loraModel: LoraModel, progressListener: MultiResponseProgressListener): Promise<string[]>;
|
|
268
291
|
/**
|
|
269
292
|
* Runs an invocation of *only* the tokenization for the LLM, and returns
|
|
270
293
|
* the size (in tokens) of the result. Cannot be called while
|
|
271
294
|
* a `generateResponse()` query is active. Runs synchronously.
|
|
272
295
|
*
|
|
273
296
|
* @export
|
|
274
|
-
* @param
|
|
297
|
+
* @param query The prompt to tokenize.
|
|
275
298
|
* @return The number of tokens in the resulting tokenization of the text.
|
|
276
299
|
* May return undefined if an error occurred.
|
|
277
300
|
*/
|
|
278
|
-
sizeInTokens(
|
|
301
|
+
sizeInTokens(query: Prompt): number | undefined;
|
|
279
302
|
/**
|
|
280
303
|
* Load a LoRA model to the LLM Inference Task and the LoRA model can be used
|
|
281
304
|
* by `generateResponse()`. The returned LoRA model can be applied only to the
|
|
@@ -290,6 +313,66 @@ export declare class LlmInference extends TaskRunner {
|
|
|
290
313
|
close(): void;
|
|
291
314
|
}
|
|
292
315
|
|
|
316
|
+
declare class LlmInferenceGraphOptions extends jspb.Message {
|
|
317
|
+
hasBaseOptions(): boolean;
|
|
318
|
+
clearBaseOptions(): void;
|
|
319
|
+
getBaseOptions(): mediapipe_tasks_cc_core_proto_base_options_pb.BaseOptions | undefined;
|
|
320
|
+
setBaseOptions(value?: mediapipe_tasks_cc_core_proto_base_options_pb.BaseOptions): void;
|
|
321
|
+
hasMaxTokens(): boolean;
|
|
322
|
+
clearMaxTokens(): void;
|
|
323
|
+
getMaxTokens(): number;
|
|
324
|
+
setMaxTokens(value: number): void;
|
|
325
|
+
hasSamplerParams(): boolean;
|
|
326
|
+
clearSamplerParams(): void;
|
|
327
|
+
getSamplerParams(): mediapipe_tasks_cc_genai_inference_proto_sampler_params_pb.SamplerParameters | undefined;
|
|
328
|
+
setSamplerParams(value?: mediapipe_tasks_cc_genai_inference_proto_sampler_params_pb.SamplerParameters): void;
|
|
329
|
+
clearLoraRanksList(): void;
|
|
330
|
+
getLoraRanksList(): Array<number>;
|
|
331
|
+
setLoraRanksList(value: Array<number>): void;
|
|
332
|
+
addLoraRanks(value: number, index?: number): number;
|
|
333
|
+
hasNumResponses(): boolean;
|
|
334
|
+
clearNumResponses(): void;
|
|
335
|
+
getNumResponses(): number;
|
|
336
|
+
setNumResponses(value: number): void;
|
|
337
|
+
hasForceF32(): boolean;
|
|
338
|
+
clearForceF32(): void;
|
|
339
|
+
getForceF32(): boolean;
|
|
340
|
+
setForceF32(value: boolean): void;
|
|
341
|
+
hasMaxNumImages(): boolean;
|
|
342
|
+
clearMaxNumImages(): void;
|
|
343
|
+
getMaxNumImages(): number;
|
|
344
|
+
setMaxNumImages(value: number): void;
|
|
345
|
+
hasSupportAudio(): boolean;
|
|
346
|
+
clearSupportAudio(): void;
|
|
347
|
+
getSupportAudio(): boolean;
|
|
348
|
+
setSupportAudio(value: boolean): void;
|
|
349
|
+
serializeBinary(): Uint8Array;
|
|
350
|
+
toObject(includeInstance?: boolean): LlmInferenceGraphOptions.AsObject;
|
|
351
|
+
static toObject(includeInstance: boolean, msg: LlmInferenceGraphOptions): LlmInferenceGraphOptions.AsObject;
|
|
352
|
+
static extensions: {
|
|
353
|
+
[key: number]: jspb.ExtensionFieldInfo<jspb.Message>;
|
|
354
|
+
};
|
|
355
|
+
static extensionsBinary: {
|
|
356
|
+
[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>;
|
|
357
|
+
};
|
|
358
|
+
static serializeBinaryToWriter(message: LlmInferenceGraphOptions, writer: jspb.BinaryWriter): void;
|
|
359
|
+
static deserializeBinary(bytes: Uint8Array): LlmInferenceGraphOptions;
|
|
360
|
+
static deserializeBinaryFromReader(message: LlmInferenceGraphOptions, reader: jspb.BinaryReader): LlmInferenceGraphOptions;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
declare namespace LlmInferenceGraphOptions {
|
|
364
|
+
type AsObject = {
|
|
365
|
+
baseOptions?: mediapipe_tasks_cc_core_proto_base_options_pb.BaseOptions.AsObject;
|
|
366
|
+
maxTokens: number;
|
|
367
|
+
samplerParams?: mediapipe_tasks_cc_genai_inference_proto_sampler_params_pb.SamplerParameters.AsObject;
|
|
368
|
+
loraRanksList: Array<number>;
|
|
369
|
+
numResponses: number;
|
|
370
|
+
forceF32: boolean;
|
|
371
|
+
maxNumImages: number;
|
|
372
|
+
supportAudio: boolean;
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
|
|
293
376
|
/** Options to configure the MediaPipe LLM Inference Task */
|
|
294
377
|
export declare interface LlmInferenceOptions extends TaskRunnerOptions {
|
|
295
378
|
/** Options to configure the LLM model loading and processing. */
|
|
@@ -327,6 +410,21 @@ export declare interface LlmInferenceOptions extends TaskRunnerOptions {
|
|
|
327
410
|
* the top result.
|
|
328
411
|
*/
|
|
329
412
|
numResponses?: number;
|
|
413
|
+
/**
|
|
414
|
+
* When set to true, will force inference to be performed with F32 precision.
|
|
415
|
+
* Useful for debugging F16 precision-related errors.
|
|
416
|
+
*/
|
|
417
|
+
forceF32?: boolean;
|
|
418
|
+
/**
|
|
419
|
+
* When set > 0, will enable vision modality usage. Will also enable streaming
|
|
420
|
+
* loading, and therefore is not compatible with "converted" models.
|
|
421
|
+
*/
|
|
422
|
+
maxNumImages?: number;
|
|
423
|
+
/**
|
|
424
|
+
* When set to true, will enable audio modality usage. Will also enable
|
|
425
|
+
* streaming loading, and therefore is not compatible with "converted" models.
|
|
426
|
+
*/
|
|
427
|
+
supportAudio?: boolean;
|
|
330
428
|
}
|
|
331
429
|
|
|
332
430
|
/**
|
|
@@ -338,6 +436,14 @@ export declare class LoraModel {
|
|
|
338
436
|
constructor(owner: LlmInference);
|
|
339
437
|
}
|
|
340
438
|
|
|
439
|
+
declare namespace mediapipe_tasks_cc_core_proto_base_options_pb {
|
|
440
|
+
{ BaseOptions };
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
declare namespace mediapipe_tasks_cc_genai_inference_proto_sampler_params_pb {
|
|
444
|
+
{ SamplerParameters };
|
|
445
|
+
}
|
|
446
|
+
|
|
341
447
|
/**
|
|
342
448
|
* A listener that receives the newly generated partial results for multiple
|
|
343
449
|
* responses and an indication whether the generation is complete.
|
|
@@ -350,6 +456,16 @@ export declare type MultiResponseProgressListener = (partialResult: string[], do
|
|
|
350
456
|
*/
|
|
351
457
|
export declare type ProgressListener = (partialResult: string, done: boolean) => unknown;
|
|
352
458
|
|
|
459
|
+
/**
|
|
460
|
+
* Type for an LLM query; may be multi-modal.
|
|
461
|
+
*/
|
|
462
|
+
export declare type Prompt = PromptPart | PromptPart[];
|
|
463
|
+
|
|
464
|
+
/**
|
|
465
|
+
* Type for a piece of an LLM query.
|
|
466
|
+
*/
|
|
467
|
+
declare type PromptPart = string | Image_2 | Audio_2;
|
|
468
|
+
|
|
353
469
|
/** Base class for all MediaPipe Tasks. */
|
|
354
470
|
declare abstract class TaskRunner {
|
|
355
471
|
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);b.test(t)&&(t=t.replace(b,w)),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 A(t){return _&&null!=t&&t instanceof Uint8Array}var E={};function T(){return P||=new I(null,E)}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!==E)throw Error("illegal external caller")}function U(t,e){t.__closure__error__context__984382||(t.__closure__error__context__984382={}),t.__closure__error__context__984382.severity=e}function B(t){return U(t=Error(t),"warning"),t}var x="function"==typeof Symbol&&"symbol"==typeof Symbol();function k(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 N=k("jas",void 0,!0),j=k(void 0,"1oa"),F=k(void 0,"0actk");const D=x?N:"ca",R={ca:{value:0,configurable:!0,writable:!0,enumerable:!1}},V=Object.defineProperties;function M(t,e){x||D in t||V(t,R),t[D]|=e}function C(t,e){x||D in t||V(t,R),t[D]=e}var G,z={};function W(t){return null!==t&&"object"==typeof t&&!Array.isArray(t)&&t.constructor===Object}const $=[];function H(t){if(2&t)throw Error()}C($,55),G=Object.freeze($);var q=Object.freeze({});function K(){return"function"==typeof BigInt}function Y(t){return t.ja=!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 K()?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(K())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 At(t){return null==t||"number"==typeof t?t:"NaN"===t||"Infinity"===t||"-Infinity"===t?Number(t):void 0}const Et=/^-?([1-9][0-9]*|0)(\.[0-9]+)?$/;function Tt(t){switch(typeof t){case"bigint":return!0;case"number":return vt(t);case"string":return Et.test(t);default:return!1}}function It(t){if("number"!=typeof t)throw B("int32");if(!vt(t))throw B("int32");return 0|t}function Pt(t){return null==t?t:It(t)}function Lt(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 Ot(t){if(null!=t){if("number"!=typeof t)throw B("uint32");if(!vt(t))throw B("uint32");t>>>=0}return t}function Ut(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 xt(t){if(null==t)return t;var e=typeof t;if("bigint"===e)return String(yt(64,t));if(Tt(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 kt(t){return null==t||"string"==typeof t?t:void 0}function Nt(t,e,n){if(null!=t&&"object"==typeof t&&t.P===z)return t;if(Array.isArray(t)){var r=0|t[D],i=r;return 0===i&&(i|=32&n),(i|=2&n)!==r&&C(t,i),new e(t)}}function jt(t,e,n,r,i){r=r?!!(32&e):void 0;const o=[];var s=t.length;let a,c,u,l,h=!1;64&e?(256&e?(a=t[--s],c=s):(c=4294967295,a=void 0),i||512&e||(h=!0,u=a?c- -1:e>>15&1023||536870912,c=u+-1)):(c=4294967295,1&e||(a=s&&t[s-1],W(a)?(c=--s,u=0):a=void 0));for(let e=0;e<s;e++){let i=t[e];null!=i&&null!=(i=n(i,r))&&(e>=c?(l??={})[e- -1]=i:o[e]=i)}if(a)for(let e in a)null!=(t=a[e])&&null!=(t=n(t,r))&&((s=+e)<u?o[s+-1]=t:(l??={})[e]=t);return l&&(h?o.push(l):o[c]=l),i&&C(o,33522241&e|(null!=l?290:34)),o}function Ft(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[D];return 0===t.length&&1&e?void 0:jt(t,e,Ft,!1,!1)}if(t.P===z)return Dt(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 Dt(t){return jt(t=t.m,0|t[D],Ft,void 0,!1)}let Rt,Vt;function Mt(t,e,n){return t=Ct(t,e[0],e[1],n?1:2),e!==Rt&&n&&M(t,8192),t}function Ct(e,n,r,i){if(null==e){var o=96;r?(e=[r],o|=512):e=[],n&&(o=-33521665&o|(1023&n)<<15)}else{if(!Array.isArray(e))throw Error("narr");if(8192&(o=0|e[D])||!(64&o)||2&o||function(){if(null!=F){var e=L??={},n=e[F]||0;n>=5||(e[F]=n+1,U(e=Error(),"incident"),function(e){t.setTimeout((()=>{throw e}),0)}(e))}}(),1024&o)throw Error("farr");if(64&o)return 3!==i||16384&o||C(e,16384|o),e;if(1===i||2===i||(o|=64),r&&(o|=512,r!==e[0]))throw Error("mid");t:{var s=(r=e).length;if(s){var a=s-1;const t=r[a];if(W(t)){if((a-=n=512&(o|=256)?0:-1)>=1024)throw Error("pvtlmt");for(var c in t)(s=+c)<a&&(r[s+n]=t[c],delete t[c]);o=-33521665&o|(1023&a)<<15;break t}}if(n){if((c=Math.max(n,s-(512&o?0:-1)))>1024)throw Error("spvt");o=-33521665&o|(1023&c)<<15}}}return 3===i&&(o|=16384),C(e,o),e}function Gt(t,e){if("object"!=typeof t)return t;if(Array.isArray(t)){const r=0|t[D];if(0===t.length&&1&r)return;return 2&r?t:((n=e)&&(n=0===r||!!(32&r)&&!(64&r||!(16&r))),n?(M(t,34),4&r&&Object.freeze(t),t):jt(t,r,Gt,void 0!==e,!0));var n}return t.P===z?2&(n=0|(e=t.m)[D])?t:jt(e,n,Gt,!0,!0):t instanceof I?t:void 0}function zt(t){var e=t.m;return 2&(0|e[D])?((e=(t=new t.constructor(jt(e,0|e[D],Gt,!0,!0))).m)[D]&=-3,t):t}function Wt(t,e){return $t(t=t.m,0|t[D],e)}function $t(t,e,n){if(-1===n)return null;const r=n+(512&e?0:-1),i=t.length-1;return r>=i&&256&e?t[i][n]:r<=i?t[r]:void 0}function Ht(t,e,n){const r=t.m;let i=0|r[D];return H(i),qt(r,i,e,n),t}function qt(t,e,n,r){const i=512&e?0:-1,o=n+i;var s=t.length-1;return o>=s&&256&e?(t[s][n]=r,e):o<=s?(t[o]=r,e):(void 0!==r&&(n>=(s=e>>15&1023||536870912)?null!=r&&(t[s+i]={[n]:r},C(t,e|=256)):t[o]=r),e)}function Kt(t,e,n,r,i){const o=t.m,s=2&(t=0|o[D])?1:r;i=!!i;let a=0|(r=Yt(o,t,e))[D];if(!(4&a)){4&a&&(r=mt(r),a=ie(a,t),t=qt(o,t,e,r));let i=0,s=0;for(;i<r.length;i++){const t=n(r[i]);null!=t&&(r[s++]=t)}s<i&&(r.length=s),a=Jt(a,t),n=-2049&(20|a),a=n&=-4097,C(r,a),2&a&&Object.freeze(r)}return 1===s||4===s&&32&a?Xt(a)||(i=a,a|=2,a!==i&&C(r,a),Object.freeze(r)):(2===s&&Xt(a)&&(r=mt(r),a=ie(a,t),a=oe(a,t,i),C(r,a),t=qt(o,t,e,r)),Xt(a)||(e=a,a=oe(a,t,i),a!==e&&C(r,a))),r}function Yt(t,e,n){return t=$t(t,e,n),Array.isArray(t)?t:G}function Jt(t,e){return 0===t&&(t=ie(t,e)),1|t}function Xt(t){return!!(2&t)&&!!(4&t)||!!(1024&t)}function Zt(t,e,n){let r=0|(t=t.m)[D];if(H(r),null==n)qt(t,r,e);else{var i=0|n[D],o=i,s=Xt(i),a=s||Object.isFrozen(n);for(s||(i=0),a||(n=mt(n),o=0,i=oe(i=ie(i,r),r,!0),a=!1),i|=21,s=0;s<n.length;s++){const t=n[s],e=It(t);Object.is(t,e)||(a&&(n=mt(n),o=0,i=oe(i=ie(i,r),r,!0),a=!1),n[s]=e)}i!==o&&(a&&(n=mt(n),i=oe(i=ie(i,r),r,!0)),C(n,i)),qt(t,r,e,n)}}function Qt(t,e,n,r){let i=0|(t=t.m)[D];H(i),qt(t,i,e,("0"===r?0===Number(n):n===r)?void 0:n)}function te(t){if(x)return t[j]??(t[j]=new Map);if(j in t)return t[j];const e=new Map;return Object.defineProperty(t,j,{value:e}),e}function ee(t,e,n){var r=Ur;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!=$t(e,n,o)&&(0!==i&&(n=qt(e,n,i)),i=o)}return t.set(r,i),i}function ne(t,e,n){var r=t.m,i=0|r[D],o=$t(r,i,n);return(e=Nt(o,e,i))!==o&&null!=e&&qt(r,i,n,e),null==(r=e)||2&(i=0|(t=t.m)[D])||(o=zt(r))!==r&&qt(t,i,n,r=o),r}function re(t,e,n){return null==n&&(n=void 0),Ht(t,e,n)}function ie(t,e){return-1025&(t=32|(2&e?2|t:-3&t))}function oe(t,e,n){return 32&e&&n||(t&=-33),t}function se(t,e,n){if(H(0|t.m[D]),e=(t=Kt(t,e,kt,2,!0)).push,"string"!=typeof n)throw Error();e.call(t,n)}function ae(t,e,n,r){var i=0|t.m[D];H(i);const o=t.m,s=(t=!!(2&i))?1:2;f&&=!t;var a=0|(t=Yt(o,i,e))[D];const c=!!(4&a);if(!c){var u=t,l=i,h=!!(2&(a=Jt(a,i)));h&&(l|=2);let e=!h,r=!0,o=0,s=0;for(;o<u.length;o++){const t=Nt(u[o],n,l);if(t instanceof n){if(!h){const n=!!(2&(0|t.m[D]));e&&=!n,r&&=n}u[s++]=t}}s<o&&(u.length=s),a|=4,a=r?16|a:-17&a,C(u,a=e?8|a:-9&a),h&&Object.freeze(u)}if(f&&!(8&a||!t.length&&(1===s||4===s&&32&a))){Xt(a)&&(t=mt(t),a=ie(a,i),i=qt(o,i,e,t));var f=t;for(u=a,a=0;a<f.length;a++)(l=f[a])!==(h=zt(l))&&(f[a]=h);u|=8,C(f,u=f.length?-17&u:16|u),a=u}1===s||4===s&&32&a?Xt(a)||(e=a,(a|=!t.length||16&a&&(!c||32&a)?2:1024)!==e&&C(t,a),Object.freeze(t)):(2===s&&Xt(a)&&(C(t=mt(t),a=oe(a=ie(a,i),i,!0)),i=qt(o,i,e,t)),Xt(a)||(e=a,(a=oe(a,i,!0))!==e&&C(t,a))),e=t,r=null!=r?r:new n,e.push(r),e[D]=2&(0|r.m[D])?-9&e[D]:-17&e[D]}function ce(t,e){return Ut(Wt(t,e))??0}function ue(t,e,n){Qt(t,e,Pt(n),0)}function le(t,e,n){if(null!=n&&"string"!=typeof n)throw Error();Qt(t,e,n,"")}function he(t){if("string"==typeof t)return{buffer:S(t),F:!1};if(Array.isArray(t))return{buffer:new Uint8Array(t),F:!1};if(t.constructor===Uint8Array)return{buffer:t,F:!1};if(t.constructor===ArrayBuffer)return{buffer:new Uint8Array(t),F:!1};if(t.constructor===I){O(E);var e=t.i;return{buffer:(null==(e=null==e||A(e)?e:"string"==typeof e?S(e):null)?e:t.i=e)||new Uint8Array(0),F:!0}}if(t instanceof Uint8Array)return{buffer:new Uint8Array(t.buffer,t.byteOffset,t.byteLength),F:!1};throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, a ByteString or an Array of numbers")}var fe=class{constructor(t,e){this.m=Ct(t,e,void 0,3)}toJSON(){return Dt(this)}F(){return!!(2&(0|this.m[D]))}};function de(t){return t?/^\d+$/.test(t)?(pt(t),new pe(at,ct)):null:ge||=new pe(0,0)}fe.prototype.P=z,fe.prototype.toString=function(){return this.m.toString()};var pe=class{constructor(t,e){this.j=t>>>0,this.i=e>>>0}};let ge;function me(t){return t?/^-?\d+$/.test(t)?(pt(t),new _e(at,ct)):null:ye||=new _e(0,0)}var _e=class{constructor(t,e){this.j=t>>>0,this.i=e>>>0}};let ye;function be(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 ve(t,e){for(;e>127;)t.i.push(127&e|128),e>>>=7;t.i.push(e)}function we(t,e){if(e>=0)ve(t,e);else{for(let n=0;n<9;n++)t.i.push(127&e|128),e>>=7;t.i.push(1)}}function Se(t,e){0!==e.length&&(t.l.push(e),t.j+=e.length)}function Ae(t,e,n){ve(t.i,8*e+n)}function Ee(t,e){return Ae(t,e,2),e=t.i.end(),Se(t,e),e.push(t.j),e}function Te(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 Ie(t,e,n){Ae(t,e,2),ve(t.i,n.length),Se(t,t.i.end()),Se(t,n)}function Pe(){const t=class{constructor(){throw Error()}};return Object.setPrototypeOf(t,t.prototype),t}var Le=Pe(),Oe=Pe(),Ue=Pe(),Be=Pe(),xe=Pe(),ke=Pe(),Ne=class{constructor(t,e){this.i=t,t=Le,this.j=!!t&&e===t||!1}};function je(t,e,n,r,i){null!=(e=Ge(e,r))&&(n=Ee(t,n),i(e,t),Te(t,n))}const Fe=new Ne(je,Le),De=new Ne(je,Le);var Re=Symbol(),Ve=Symbol();let Me;function Ce(t){var e=ze,n=We,r=t[Re];if(r)return r;(r={}).ia=t,r.O=function(t){switch(typeof t){case"boolean":return Rt||=[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&&(r.Z=i,"function"==typeof(i=t[++o])&&(r.da=!0,Me??=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 Ne?s=i:(s=Fe,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[Re]=r}function Ge(t,e){return t instanceof fe?t.m:Array.isArray(t)?Mt(t,e,!1):void 0}function ze(t,e,n){t[e]=n.i}function We(t,e,n,r){let i,o;const s=n.i;t[e]=(t,e,n)=>s(t,e,n,o||=Ce(r).O,i||=$e(r))}function $e(t){let e=t[Ve];if(!e){const n=Ce(t);e=(t,e)=>He(t,e,n),t[Ve]=e}return e}function He(t,e,n){!function(t,e,n){const r=512&e?0:-1,i=t.length,o=i+((e=64&e?256&e:!!i&&W(t[i-1]))?-1:0);for(let e=0;e<o;e++)n(e-r,t[e]);if(e){t=t[i-1];for(const e in t)!isNaN(e)&&n(+e,t[e])}}(t,0|t[D]|(n.O[1]?512:0),((t,r)=>{if(null!=r){var i=function(t,e){var n=t[e];if(n)return n;if((n=t.Z)&&(n=n[e])){var r=(n=Array.isArray(n)?n[0]instanceof Ne?n:[De,n]:[n,void 0])[0].i;if(n=n[1]){const e=$e(n),i=Ce(n).O;n=t.da?Me(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,Ke=0,Ye=Ke;if(X(Ye)){if(!/^\s*(?:-?[1-9]\d*|0)?\s*$/.test(Ye))throw Error(String(Ye))}else if((qe=J(Ye))&&(qe=!Number.isSafeInteger(Ye)),qe)throw Error(String(Ye));function Je(t,e){if(Array.isArray(e)){var n=0|e[D];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),C(e,-6145&(5|n)),2&n&&Object.freeze(e),e}}function Xe(t,e){return new Ne(t,e)}function Ze(t,e,n){null!=(e=At(e))&&(Ae(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 Qe(t,e,n){null!=(e=Lt(e))&&null!=e&&(Ae(t,n,0),we(t.i,e))}function tn(t,e,n){null!=(e=null==e||"boolean"==typeof e?e:"number"==typeof e?!!e:void 0)&&(Ae(t,n,0),t.i.i.push(e?1:0))}function en(t,e,n){null!=(e=kt(e))&&Ie(t,n,r(e))}function nn(t,e,n,r,i){null!=(e=Ge(e,r))&&(n=Ee(t,n),i(e,t),Te(t,n))}function rn(t,e,n){null!=(e=Lt(e))&&(e=parseInt(e,10),Ae(t,n,0),we(t.i,e))}Q||(Ke=Z(Ke)?Ke?"1":"0":X(Ke)?Ke.trim()||"0":String(Ke));var on,sn=Xe(Ze,xe),an=Xe(Ze,xe),cn=Xe((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(Tt(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(K())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)me(e);if(null!=e)switch(Ae(t,n,0),typeof e){case"number":t=t.i,lt(e),be(t,at,ct);break;case"bigint":n=BigInt.asUintN(64,e),n=new _e(Number(n&BigInt(4294967295)),Number(n>>BigInt(32))),be(t.i,n.j,n.i);break;default:n=me(e),be(t.i,n.j,n.i)}}}),Pe()),un=Xe((function(t,e,n){if(null!=(e=xt(e))){if("string"==typeof e)de(e);if(null!=e)switch(Ae(t,n,0),typeof e){case"number":t=t.i,lt(e),be(t,at,ct);break;case"bigint":n=BigInt.asUintN(64,e),n=new pe(Number(n&BigInt(4294967295)),Number(n>>BigInt(32))),be(t.i,n.j,n.i);break;default:n=de(e),be(t.i,n.j,n.i)}}}),Pe()),ln=Xe(Qe,Be);on=new Ne((function(t,e,n){if(null!=(e=Je(Lt,e))&&e.length){n=Ee(t,n);for(let n=0;n<e.length;n++)we(t.i,e[n]);Te(t,n)}}),Be);var hn,fn=Xe(Qe,Be),dn=Xe(Qe,Be),pn=Xe(tn,Oe),gn=Xe(tn,Oe),mn=Xe(en,Ue);hn=new Ne((function(t,e,n){if(null!=(e=Je(kt,e)))for(let a=0;a<e.length;a++){var i=t,o=n,s=e[a];null!=s&&Ie(i,o,r(s))}}),Ue);var _n,yn=Xe(en,Ue),bn=Xe(en,Ue),vn=function(t,e,n=Le){return new Ne(e,n)}(0,(function(t,e,n,r,i){if(Array.isArray(e))for(let o=0;o<e.length;o++)nn(t,e[o],n,r,i)})),wn=new Ne(nn,Le),Sn=Xe((function(t,e,n){null!=(e=Ut(e))&&null!=e&&(Ae(t,n,0),ve(t.i,e))}),Pe()),An=Xe(rn,ke);_n=new Ne((function(t,e,n){if(null!=(e=Je(Lt,e))&&e.length){n=Ee(t,n);for(let n=0;n<e.length;n++)we(t.i,e[n]);Te(t,n)}}),ke);var En=Xe(rn,ke);function Tn(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}}}};He(this.m,e,Ce(t)),Se(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 In(t,e){if(null!=e)if(Array.isArray(e))Ht(t,2,jt(e,0,Ft,void 0,!1));else{if(!("string"==typeof e||e instanceof I||A(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,E):T();else if(e.constructor!==I){if(!A(e))throw Error();e=e.length?new I(new Uint8Array(e),E):T()}Qt(t,2,e,T())}}var Pn=class extends fe{constructor(t){super(t)}},Ln=[0,yn,Xe((function(t,e,n){if(null!=e){if(e instanceof fe){const r=e.ka;return void(r&&(e=r(e),null!=e&&Ie(t,n,he(e).buffer)))}if(Array.isArray(e))return}null!=(e=null==e||"string"==typeof e||e instanceof I?e:void 0)&&Ie(t,n,he(e).buffer)}),Pe())];let On,Un=globalThis.trustedTypes;function Bn(t){void 0===On&&(On=function(){let t=null;if(!Un)return t;try{const e=t=>t;t=Un.createPolicy("goog#html",{createHTML:e,createScript:e,createScriptURL:e})}catch(t){}return t}());var e=On;return new class{constructor(t){this.i=t}toString(){return this.i+""}}(e?e.createScriptURL(t):t)}function xn(t,...e){if(0===e.length)return Bn(t[0]);let n=t[0];for(let r=0;r<e.length;r++)n+=encodeURIComponent(e[r])+t[r+1];return Bn(n)}var kn={};kn[336783863]=[0,mn,pn,-1,ln,[0,[1,2,3,4,5,6,7,8,9],wn,[0],wn,[0,pn,mn,pn,An,-1,_n,mn,-1,[0,pn,-1],An,pn,-1],wn,[0,mn,-2],wn,[0,ln,pn,1,pn,-3],wn,[0,ln,An,pn,-1,on,An,-1],wn,[0,mn,-2],wn,[0,mn,An],wn,[0,An,mn,-1],wn,[0,An,-1]],[0,mn],pn,[0,[1,3],[2,4],wn,[0,on],-1,wn,[0,hn],-1,vn,[0,mn,-1]],mn];var Nn=class extends fe{constructor(t){super(t)}},jn=[0,cn,-1,gn,-3,cn,on,yn,fn,cn,-1,gn,fn,gn,-2,yn],Fn=class extends fe{constructor(t){super(t,500)}L(t){return re(this,7,t)}},Dn=[-1,{}],Rn=[0,mn,1,Dn],Vn=[0,mn,hn,Dn];function Mn(t,e){ae(t,1,Fn,e)}var Cn=class extends fe{constructor(t){super(t,500)}L(t){return re(this,1001,t)}};Cn.prototype.i=Tn([-500,vn,[-500,yn,-1,hn,-3,[-2,kn,pn],vn,Ln,fn,-1,Rn,Vn,vn,[0,yn,gn],yn,jn,fn,hn,987,hn],4,vn,[-500,mn,-1,[-1,{}],998,mn],vn,[-500,mn,hn,-1,[-2,{},pn],997,hn,-1],fn,vn,[-500,mn,hn,Dn,998,hn],hn,fn,Rn,Vn,vn,[0,yn,-1,Dn],hn,-2,jn,yn,-1,gn,[0,gn,Sn],978,Dn,vn,Ln]);var Gn=class extends fe{constructor(t){super(t)}};let zn;const Wn=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 $n(){if(void 0===zn)try{await WebAssembly.instantiate(Wn),zn=!0}catch{zn=!1}return zn}async function Hn(t,e=xn``){const n=await $n()?"wasm_internal":"wasm_nosimd_internal";return{wasmLoaderPath:`${e}/${t}_${n}.js`,wasmBinaryPath:`${e}/${t}_${n}.wasm`}}var qn=class{};function Kn(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 Yn(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 Hn("vision",t)},qn.forTextTasks=function(t){return Hn("text",t)},qn.forGenAiExperimentalTasks=function(t){return Hn("genai_experimental",t)},qn.forGenAiTasks=function(t){return Hn("genai",t)},qn.forAudioTasks=function(t){return Hn("audio",t)},qn.isSimdSupported=function(){return $n()};const Jn=[[0,async t=>{const e=(new TextEncoder).encode("TFL3").length;return t=await Yn(t,e+4),"TFL3"===new TextDecoder("utf-8").decode(t.subarray(4,e+4))}],[1,async t=>80===(t=await Yn(t,6))[4]&&75===t[5]]];function Xn(){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 Zn(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 Qn(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 tr(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 er(t,e,n){t.h.simpleListeners=t.h.simpleListeners||{},t.h.simpleListeners[e]=n}function nr(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 rr=(ir=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:Xn()?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?'),Qn(this,r||"input_audio",(r=>{Qn(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),Qn(this,r,(t=>{this.h._addAudioToInputStream(this.i,e,n,t,i)}))}addGpuBufferToStream(t,e,n){Qn(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){Qn(this,e,(e=>{this.h._addBoolToInputStream(t,e,n)}))}addDoubleToStream(t,e,n){Qn(this,e,(e=>{this.h._addDoubleToInputStream(t,e,n)}))}addFloatToStream(t,e,n){Qn(this,e,(e=>{this.h._addFloatToInputStream(t,e,n)}))}addIntToStream(t,e,n){Qn(this,e,(e=>{this.h._addIntToInputStream(t,e,n)}))}addUintToStream(t,e,n){Qn(this,e,(e=>{this.h._addUintToInputStream(t,e,n)}))}addStringToStream(t,e,n){Qn(this,e,(e=>{Qn(this,t,(t=>{this.h._addStringToInputStream(t,e,n)}))}))}addStringRecordToStream(t,e,n){Qn(this,e,(e=>{tr(this,Object.keys(t),(r=>{tr(this,Object.values(t),(i=>{this.h._addFlatHashMapToInputStream(r,i,Object.keys(t).length,e,n)}))}))}))}addProtoToStream(t,e,n,r){Qn(this,n,(n=>{Qn(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){Qn(this,t,(t=>{this.h._addEmptyPacketToInputStream(t,e)}))}addBoolVectorToStream(t,e,n){Qn(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){Qn(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){Qn(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){Qn(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){Qn(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){Qn(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)Qn(this,e,(t=>{this.h._addStringVectorEntry(r,t)}));this.h._addStringVectorToInputStream(r,e,n)}))}addBoolToInputSidePacket(t,e){Qn(this,e,(e=>{this.h._addBoolToInputSidePacket(t,e)}))}addDoubleToInputSidePacket(t,e){Qn(this,e,(e=>{this.h._addDoubleToInputSidePacket(t,e)}))}addFloatToInputSidePacket(t,e){Qn(this,e,(e=>{this.h._addFloatToInputSidePacket(t,e)}))}addIntToInputSidePacket(t,e){Qn(this,e,(e=>{this.h._addIntToInputSidePacket(t,e)}))}addUintToInputSidePacket(t,e){Qn(this,e,(e=>{this.h._addUintToInputSidePacket(t,e)}))}addStringToInputSidePacket(t,e){Qn(this,e,(e=>{Qn(this,t,(t=>{this.h._addStringToInputSidePacket(t,e)}))}))}addProtoToInputSidePacket(t,e,n){Qn(this,n,(n=>{Qn(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){Qn(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){Qn(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){Qn(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){Qn(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){Qn(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){Qn(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)Qn(this,e,(t=>{this.h._addStringVectorEntry(n,t)}));this.h._addStringVectorToInputSidePacket(n,e)}))}attachBoolListener(t,e){er(this,t,e),Qn(this,t,(t=>{this.h._attachBoolListener(t)}))}attachBoolVectorListener(t,e){nr(this,t,e),Qn(this,t,(t=>{this.h._attachBoolVectorListener(t)}))}attachIntListener(t,e){er(this,t,e),Qn(this,t,(t=>{this.h._attachIntListener(t)}))}attachIntVectorListener(t,e){nr(this,t,e),Qn(this,t,(t=>{this.h._attachIntVectorListener(t)}))}attachUintListener(t,e){er(this,t,e),Qn(this,t,(t=>{this.h._attachUintListener(t)}))}attachUintVectorListener(t,e){nr(this,t,e),Qn(this,t,(t=>{this.h._attachUintVectorListener(t)}))}attachDoubleListener(t,e){er(this,t,e),Qn(this,t,(t=>{this.h._attachDoubleListener(t)}))}attachDoubleVectorListener(t,e){nr(this,t,e),Qn(this,t,(t=>{this.h._attachDoubleVectorListener(t)}))}attachFloatListener(t,e){er(this,t,e),Qn(this,t,(t=>{this.h._attachFloatListener(t)}))}attachFloatVectorListener(t,e){nr(this,t,e),Qn(this,t,(t=>{this.h._attachFloatVectorListener(t)}))}attachStringListener(t,e){er(this,t,e),Qn(this,t,(t=>{this.h._attachStringListener(t)}))}attachStringVectorListener(t,e){nr(this,t,e),Qn(this,t,(t=>{this.h._attachStringVectorListener(t)}))}attachProtoListener(t,e,n){er(this,t,e),Qn(this,t,(t=>{this.h._attachProtoListener(t,n||!1)}))}attachProtoVectorListener(t,e,n){nr(this,t,e),Qn(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?'),er(this,t,((t,n)=>{t=new Float32Array(t.buffer,t.byteOffset,t.length/4),e(t,n)})),Qn(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 ir{fa(){this.h._registerModelResourcesGraphService()}});var ir;async function or(t,e){const n=await(async(t,e,n)=>{var r=Cr;if(t&&await Zn(t),!self.ModuleFactory)throw Error("ModuleFactory not set.");if(e&&(await Zn(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.L(e),n}async function sr(t,e){return or(t,e)}function ar(t){try{const e=t.H.length;if(1===e)throw Error(t.H[0].message);if(e>1)throw Error("Encountered multiple errors: "+t.H.map((t=>t.message)).join(", "))}finally{t.H=[]}}function cr(t,e){t.G=Math.max(t.G,e)}var ur=class{constructor(t){this.i=t,this.H=[],this.G=0,this.i.setAutoRenderToScreen(!1)}setGraph(t,e){this.i.attachErrorListener(((t,e)=>{this.H.push(Error(e))})),this.i.fa(),this.i.setGraph(t,e),ar(this)}finishProcessing(){this.i.finishProcessing(),ar(this)}close(){this.i.closeGraph()}};ur.prototype.close=ur.prototype.close;var lr=class extends fe{constructor(t){super(t)}i(){return Lt(Wt(this,2))??0}};function hr(t,e){re(t,1,e)}var fr=class extends fe{constructor(t){super(t)}},dr=[0,En,fn,an,-1,ln];function pr(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}}lr.prototype.j=Tn(dr);class gr{constructor(t){this.i=[],this.data=t,this.length=t.length}}var mr=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 _r(t,e,n){t=new br(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 yr(t),Error(`File could not be fully loaded to memory, so was not retained. Loaded ${r}/${n} bytes before failure`);return t}function yr(t){if(t.i)try{t.h._free(t.j)}catch{}finally{t.i=!1}}var br=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))}},vr=class extends fe{constructor(t){super(t)}};vr.prototype.i=Tn([0,yn,2,hn,fn,gn]);var wr=class extends fe{constructor(t){super(t)}},Sr=class extends fe{constructor(t){super(t)}},Ar=class extends fe{constructor(t){super(t)}},Er=class extends fe{constructor(t){super(t)}},Tr=[0,fn,-6,1,fn,1,[0,gn,En,-2],[0,gn,an],En,-2,[0,gn,-1,En,an,An,ln],1,gn,fn,ln,-1,[0,En,fn],gn,-1,sn,fn,-5],Ir=[0,yn,-2],Pr=[0,[4,6],Tr,fn,1,dn,hn,bn,_n,Ir,ln,[0,[0,fn,-1,vn,[0,fn,[0,fn,-1],-1,[0,En,-1],gn],gn,-2,fn,-1],[0,fn,-1,gn],Tr,gn,fn],mn,-3,[0,fn,gn],Tr,[0,Ir,-2]];Er.prototype.i=Tn([0,yn,8,[0,gn,-6],1,fn,1,fn,[0,vn,[0,yn,un,-1,En],Pr,fn],[0,fn,gn,-3],1,En,1,Pr,1,fn,5,En,on,1,dr,gn]);var Lr=class extends fe{constructor(t){super(t)}},Or=class extends fe{constructor(t){super(t)}},Ur=[2,4];Or.prototype.i=Tn([0,Ur,fn,bn,fn,wn,[0,1,yn]]);const Br=function(t){return class extends t{constructor(){super(...arguments),this.M=!1}K(){if(this.M)throw Error("Cannot process because LLM inference engine is currently loading or processing.");this.M=!0}J(){this.M=!1}async Y(t,e){this.K();try{await this.ha(t),await this.h.ccall("CreateLlmInferenceEngine","void",["number","number"],[ce(e,2)??512,ne(e,lr,3)?.i()??40],{async:!0})}finally{this.J()}}U(){this.K();try{this.h.ccall("DeleteLlmInferenceEngine","void",[],[],{async:!1})}finally{this.J()}}async N(t,e,n){this.K();try{const r=[];this.h._userProgressListener=(t,e)=>{t&&r.push(t),n&&n(t,e)};const i=e.j(),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.J()}}R(t){this.K();try{let e;return Qn(this,t,(t=>{e=this.h._GetSizeInTokens(t)})),e}finally{this.J()}}async ha(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 ga(t,n){let r;n||=await e.V();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 V(t){if(!(t=await navigator.gpu.requestAdapter(t)))throw Error("Unable to request adapter from navigator.gpu; Ensure WebGPU is enabled.");return t}ba(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}X(){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 gr(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=pr(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{W(t,e){Qn(this,"lora_model_ref_in",(n=>{this.h._addRawDataSpanToInputStream(t.offset,t.size,n,e)}))}}}(class extends rr{}))));class xr extends Br{}var kr=class{constructor(t){this.j=t,this.i=Nr,Nr++}},Nr=1;class jr{constructor(){let t,e;this.promise=new Promise(((n,r)=>{t=n,e=r})),this.resolve=t,this.reject=e}}function Fr(t){return 1===t?1:t+t%2}async function Dr(){const t=await xr.V({powerPreference:"high-performance"});var e=t.limits.maxBufferSize;if(t.limits.maxStorageBufferBindingSize<524550144)throw Error(`The WebGPU device is unable to execute LLM tasks, because the required maxStorageBufferBindingSize is at least 524550144 but your device only supports maxStorageBufferBindingSize of ${e}`);if(e>=786825216)e=786825216;else{if(!(e>=524550144))throw Error(`The WebGPU device is unable to execute LLM tasks, because the required maxBufferSize is at least 524550144 but your device only supports maxBufferSize of ${e}`);e=524550144}if(e={requiredFeatures:["shader-f16"],requiredLimits:{maxStorageBufferBindingSize:524550144,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.");const n=["shader-f16","subgroups"];t.features.has("subgroups-f16")&&n.push("subgroups-f16"),e.requiredFeatures=n}return xr.ga(e,t)}function Rr(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 Vr(t){const e=function(t){const e=new Cn;se(e,10,"text_in"),se(e,10,"token_cost_in"),se(e,10,"lora_model_id_to_apply_in"),se(e,10,"lora_model_ref_in"),se(e,10,"lora_model_id_to_load_in"),se(e,16,"streaming_reader"),se(e,15,"text_out"),se(e,15,"text_end"),se(e,15,"token_cost_out");var n=new Fn;le(n,2,"TokenizerInputBuildCalculator"),se(n,3,"PROMPT:text_in"),se(n,3,"LORA_ID:lora_model_id_to_apply_in"),se(n,4,"prompt"),Mn(e,n),le(n=new Fn,2,"ModelDataCalculator"),se(n,6,"MODEL_DATA:__side_packet_1"),se(n,6,"MODEL_TYPE:model_type"),se(n,5,"READ_DATA_FN:streaming_reader"),se(n,3,"LORA_MODEL_SPAN:lora_model_ref_in"),se(n,3,"LORA_MODEL_ID:lora_model_id_to_load_in"),se(n,4,"LORA_DATA:lora_model_data"),Mn(e,n),le(n=new Fn,2,"Gpt2UnicodeMappingCalculator"),se(n,5,"MODEL_TYPE:model_type"),se(n,6,"BYTES_TO_UNICODE_MAPPING:tokenizer_mapping"),Mn(e,n),le(n=new Pn,1,"type.googleapis.com/odml.infra.proto.TokenizerCalculatorOptions");var r=new Or,i=ce(t.j,2);ue(r,1,i),le(i=new Lr,2,"spm_vocab_model"),null==i&&(i=void 0);t:{var o=r.m,s=0|o[D];if(H(s),null==i){var a=te(o);if(4!==ee(a,o,s))break t;a.set(Ur,0)}else{const t=te(a=o),e=ee(t,a,s);4!==e&&(e&&(s=qt(a,s,e)),t.set(Ur,4))}qt(o,s,4,i)}return ue(r,3,2),In(n,r.i()),le(r=new Fn,2,"TokenizerCalculator"),ae(r,8,Pn,n),se(r,5,"MODEL_DATA:__side_packet_1"),se(r,3,"PROMPT_AND_INPUT_OPTIONS:prompt"),se(r,5,"BYTES_TO_UNICODE_MAPPING:tokenizer_mapping"),se(r,6,"PROCESSOR_GETTER:__input_side_1"),se(r,4,"IDS_AND_INPUT_OPTIONS:__stream_0"),Mn(e,r),le(n=new Pn,1,"type.googleapis.com/odml.infra.proto.LlmGpuCalculatorOptions"),ue(r=new Er,12,3),le(r,1,"llm.tflite"),ue(r,14,0),i=Fr(ce(t.j,5)),ue(r,22,i),i=ne(t.j,lr,3),re(r,31,i),Qt(i=new wr,1,!0,!1),Qt(i,2,!0,!1),Qt(i,5,!0,!1),re(r,10,i),i=Kt(t.j,4,Lt,void 0===q?2:4),Zt(r,29,i),i=new Ar,ue(o=new Sr,1,1),a=ce(t.j,2),ue(o,2,a),re(i,1,o),re(r,20,i),In(n,r.i()),le(r=new Fn,2,"LlmGpuCalculator"),ae(r,8,Pn,n),se(r,3,"IDS_AND_INPUT_OPTIONS:__stream_0"),se(r,3,"FINISH:finish"),se(r,3,"LORA_DATA:lora_model_data"),se(r,5,"MODEL_DATA:__side_packet_1"),se(r,4,"DECODED_IDS:__stream_3"),se(r,4,"OUTPUT_END:__stream_4"),le(n=new Nn,1,"FINISH"),Qt(n,2,!0,!1),ae(r,13,Nn,n),Mn(e,r),le(n=new Fn,2,"IsPacketPresentCalculator"),se(n,3,"__stream_4"),se(n,4,"text_end"),Mn(e,n),le(n=new Pn,1,"type.googleapis.com/odml.infra.proto.DetokenizerCalculatorOptions"),r=new vr,t=Fr(ce(t.j,5)),ue(r,5,t),se(r,4,"<eos>"),se(r,4,"<|endoftext|>"),In(n,r.i()),le(t=new Fn,2,"DetokenizerCalculator"),ae(t,8,Pn,n),se(t,3,"IDS_AND_INPUT_OPTIONS:__stream_3"),se(t,5,"PROCESSOR_GETTER:__input_side_1"),se(t,5,"BYTES_TO_UNICODE_MAPPING:tokenizer_mapping"),se(t,5,"MODEL_DATA:__side_packet_1"),se(t,4,"FINISH_AND_INPUT_OPTIONS:finish"),se(t,4,"WORDS:text_out"),Mn(e,t),le(t=new Fn,2,"TokenCostCalculator"),se(t,3,"PROMPT:token_cost_in"),se(t,5,"PROCESSOR_GETTER:__input_side_1"),se(t,5,"BYTES_TO_UNICODE_MAPPING:tokenizer_mapping"),se(t,4,"NUM_TOKENS:token_cost_out"),Mn(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<ce(t.j,5)&&t.D[n].push(e)})),t.u&&0===t.B.length&&(t.A?(e.length>ce(t.j,5)&&e.pop(),t.u(e,!1)):t.u(e[0],!1)),cr(t,n)})),t.i.attachEmptyPacketListener("text_out",(e=>{cr(t,e)})),t.i.attachBoolListener("text_end",((e,n)=>{if(t.l=!1,cr(t,n),Rr(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<ce(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,cr(t,e),Rr(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.S=e,cr(t,n)})),t.T&&t.i.addStreamingReaderToInputSidePacket(t.T,"streaming_reader");const n=e.i();return t.C?.removeEventListener("uncapturederror",t.I),t.i.X().then((()=>{t.C?.addEventListener("uncapturederror",t.I),t.B.length=0,t.setGraph(new Uint8Array(n),!0),t.finishProcessing()}))}function Mr(t,e,n,r){if(t.u="function"==typeof n?n:r,t.v){if(t.A&&ce(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 kr)throw Error("LoRA is not supported for converted LLM models (.task format) yet. Please use the .bin format.");return t.i.N(e,t.s,((e,n)=>{0===t.B.length&&t.u&&(t.A?t.u([e],n):t.u(e,n))})).then((e=>(Rr(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<ce(t.j,5);r++)t.D[r]=[];if(r=t.G+1,t.i.addStringToStream(e,"text_in",r),n instanceof kr){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 jr,t.o.promise}var Cr=class extends ur{constructor(t,e){if(super(new xr(t,e)),this.D=[],this.v=this.l=!1,this.B=[],this.I=t=>{const e=(t=t.error).message.match(/exceeds the max buffer size limit \(([0-9]+)\)\./);e&&Number(e[1])>524550144?t=Error(`Failed to run this LLM model, but you could try a smaller LLM model. WebGPU throws: "${t.message}"`):t.message.match(/is larger than the maximum binding size/)&&(t=Error(`Failed to run LLM inference, the supported max binding size is smaller than the required size. WebGPU throws: "${t.message}"`)),this.B.push(t)},this.j=new fr,hr(this.j,new Gn),this.s=new lr,re(this.j,3,this.s),Ht(this.j,2,Ot(512)),t=this.s,!vt(2))throw B("enum");Qt(t,1,2,0),ue(this.s,2,40),Qt(this.s,3,St(1),0),Ht(this.s,5,Pt(0)),Qt(this.s,4,St(.8),0),Ht(this.j,5,Ot(1))}async L(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]=Kn(r);1===await async function(t){const e=[];let n;for(const[i,o]of Jn){const s=i;var r=o;[t,n]=Kn(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.T=function(t,e){return new mr((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.I),this.C=t.baseOptions.gpuOptions.device,this.i.ba(this.C),this.C.addEventListener("uncapturederror",this.I)),"maxTokens"in t&&Ht(this.j,2,Ot(t.maxTokens??512)),"topK"in t&&ue(this.s,2,t.topK??40),"temperature"in t&&Qt(this.s,4,St(t.temperature??.8),0),"randomSeed"in t&&Ht(this.s,5,Pt(t.randomSeed??0)),"loraRanks"in t&&function(t,e){Zt(t,4,e)}(this.j,t.loraRanks??[]),"numResponses"in t){if((t=t.numResponses??1)<1)throw Error("'numResponses' must be at least 1.");if(this.v&&t>1)throw Error("'numResponses > 1' is not supported for converted LLM models yet.");Ht(this.j,5,Ot(t));const e=ne(this.j,lr,3);t>1&&e&&(e.i()<=1||(function(t){let e=0|(t=t.m)[D];const n=$t(t,e,4),r=At(n);return null!=r&&r!==n&&qt(t,e,4,r),r}(e)??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 this.v?(this.i.U(),this.i.Y(r,this.j).then((()=>{Rr(this)}))):(this.l=!0,r=Vr(this).then((()=>{})),Promise.all([n,r]).then((()=>{this.l=!1,Rr(this)})))}get baseOptions(){return ne(this.j,Gn,1)}set baseOptions(t){hr(this.j,t)}get isIdle(){return!this.l&&!this.o}N(t,e,n){return ce(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,Mr(this,t,e,n).then((t=>t[0]))}aa(t,e,n){return this.A=!0,Mr(this,t,e,n)}R(t){if(this.v)return this.i.R(t);if(this.l)throw Error("Previous invocation or loading is still ongoing.");return this.l=!0,this.S=void 0,this.i.addStringToStream(t,"token_cost_in",this.G+1),this.finishProcessing(),this.l=!1,this.S}async ea(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 br(this.i.h,t.length);e.set(t),t=e}else t=t instanceof Blob?await async function(t,e){return _r(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 _r(t,e.body,n)}(this.i.h,t);e=new kr(this);const n=this.G+1;return this.i.W(t,n),this.i.addUintToStream(e.i,"lora_model_id_to_load_in",n),this.finishProcessing(),yr(t),cr(this,n),this.l=!1,e}close(){this.v&&this.i.U(),this.C?.removeEventListener("uncapturederror",this.I),super.close()}};Cr.prototype.loadLoraModel=Cr.prototype.ea,Cr.prototype.sizeInTokens=Cr.prototype.R,Cr.prototype.generateResponses=Cr.prototype.aa,Cr.prototype.generateResponse=Cr.prototype.N,Cr.prototype.setOptions=Cr.prototype.L,Cr.createWebGpuDevice=Dr,Cr.createFromModelPath=async function(t,e){return sr(t,e={baseOptions:{gpuOptions:{device:await Dr()},modelAssetPath:e}})},Cr.createFromModelBuffer=async function(t,e){return sr(t,e={baseOptions:{gpuOptions:{device:await Dr()},modelAssetBuffer:e}})},Cr.createFromOptions=async function(t,e){if(!e.baseOptions?.gpuOptions?.device){const t=await Dr();e.baseOptions=e.baseOptions??{},e.baseOptions.gpuOptions=e?.baseOptions?.gpuOptions??{},e.baseOptions.gpuOptions.device=t}return sr(t,e)},exports.FilesetResolver=qn,exports.LlmInference=Cr,exports.TaskRunner=ur;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t="undefined"!=typeof self?self:{};function e(e){t:{for(var r=["CLOSURE_FLAGS"],n=t,i=0;i<r.length;i++)if(null==(n=n[r[i]])){r=null;break t}r=n}return null!=(e=r&&r[e])&&e}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),a=e(748402147);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","na",!0);const D={fa:{value:0,configurable:!0,writable:!0,enumerable:!1}},R=Object.defineProperties,M=j?k:"fa";var V;const C=[];function G(t,e){j||M in t||R(t,D),t[M]|=e}function z(t,e){j||M in t||R(t,D),t[M]=e}function W(){return"function"==typeof BigInt}z(C,7),V=Object.freeze(C);var $={};function H(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.ma=!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]===$)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 Dt(t){switch(typeof t){case"number":return Number.isFinite(t)?t:""+t;case"bigint":return tt(t)?Number(t):""+t;case"boolean":return t?1:0;case"object":if(Array.isArray(t)){var e=0|t[M];return 0===t.length&&1&e?void 0:Ft(t,e,Dt)}if(null!=t&&t[F]===$)return Rt(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 Rt(t){return Ft(t=t.m,0|t[M],Dt)}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=$t(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):$t(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 $t(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 Ht(t){if(t.i!==q)return!1;var e=t.m;return G(e=$t(e,0|e[M]),2048),t.m=e,t.i=void 0,t.o=void 0,!0}function qt(t){if(!Ht(t)&&H(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=H(t,s)?1:n,i=!!i||3===n,2===n&&Ht(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&&!H(n)&&Kt(t,e),n}(n,i,e,r),null==e)return e;if(i=0|n[M],!H(t,i)){var o,s=e;const a=s.m,u=0|a[M];(o=H(s,u)?Yt(s,a,u)?Wt(s,a,!0):new s.constructor($t(a,u,!1)):s)!==e&&(Ht(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&&!H(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=H(t,s)?1:2;2===a&&Ht(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=H(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=H(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(),De=Ne(),Re=Ne(),Me=Ne(),Ve=Ne(),Ce=Ne(),Ge=Ne(),ze=Ne(),We=Ne(),$e=Ne(),He=class{constructor(t,e){this.m=Gt(t,e)}toJSON(){return Rt(this)}};He.prototype[F]=$,He.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={}).la=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.ga=!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 He?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.ga?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,De),Pr=lr(dr,De),Lr=lr(pr,Re);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))}}),Re);var Or,jr=lr(pr,Re),xr=lr(pr,Re),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,$e);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)}}),$e);var Fr=lr(gr,$e);function Dr(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 Rr(t,e){if(null!=e)if(Array.isArray(e))Qt(t,2,Ft(e,0,Dt));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 He{constructor(t){super(t)}},Vr=[0,jr,lr((function(t,e,r){if(null!=e){if(e instanceof He){const n=e.oa;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 $r={};$r[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]],[0,Lr],Tr,[0,[1,3],[2,4],Ur,[0,_r],-1,Ur,[0,Er],-1,kr,[0,Lr,-1]],Lr];var Hr=class extends He{constructor(t){super(t)}},qr=[0,wr,-1,Pr,-3,wr,_r,jr,Ar,wr,-1,Pr,Ar,Pr,-2,jr],Kr=class extends He{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 He{constructor(t){super(t,500)}N(t){return he(this,1001,t)}};Zr.prototype.j=Dr([-500,kr,[-500,jr,-1,Er,-3,[-2,$r,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 He{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{ia(){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.ia(),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 He{constructor(t){super(t)}j(){return jt(Jt(this,2))??0}};function An(t,e){he(t,1,e)}var In=class extends He{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=Dr(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))}},Dn=class extends He{constructor(t){super(t)}};Dn.prototype.j=Dr([0,jr,2,Er,Ar,Pr]);var Rn=class extends He{constructor(t){super(t)}},Mn=class extends He{constructor(t){super(t)}},Vn=class extends He{constructor(t){super(t)}},Cn=class extends He{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=Dr([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 $n=class extends He{constructor(t){super(t)}},Hn=class extends He{constructor(t){super(t)}},qn=[2,4];Hn.prototype.j=Dr([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.ka(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.da(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 fetch(r.audioSource);if(!t.ok)throw Error(`Audio fetch for ${r.audioSource} had error: ${t.status}`);const n=await t.arrayBuffer(),o=new Uint8Array(n),s=this.h._malloc(o.length);this.h.HEAPU8.set(o,s),i._AddAudioQueryChunk(l,s,o.length),e.push(s)}}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 ka(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 da(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}}}}(function(t){return class e extends t{static async ja(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}ea(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.ja(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 Hn,i=pe(t.i,2);me(n,1,i),_e(i=new $n,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&&!H(i)&&Kt(n.m),me(n,3,2),Rr(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 Rn,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),Rr(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 Hr,1,"FINISH"),se(r,2,At(!0),!1),de(n,13,Hr,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 Dn,t=Zn(pe(t.i,5)),me(n,5,t),ye(n,4,"<eos>"),ye(n,4,"<|endoftext|>"),Rr(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.ea(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 ha(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.ha,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
|