@vkontakte/calls-audio-effects 1.2.10-dev.12fb226c.0 → 1.2.10-dev.652c81ba.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @vkontakte/calls-audio-effects v1.2.10-dev.12fb226c.0-dev
3
- * Fri, 29 May 2026 06:46:43 GMT
2
+ * @vkontakte/calls-audio-effects v1.2.10-dev.652c81ba.0-dev
3
+ * Thu, 09 Jul 2026 15:16:52 GMT
4
4
  */
5
5
 
6
6
  var __create = Object.create;
@@ -32,7 +32,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
32
32
  // node_modules/@vkontakte/audio-processing/wasm_bindings.js
33
33
  var require_wasm_bindings = __commonJS({
34
34
  "node_modules/@vkontakte/audio-processing/wasm_bindings.js"(exports, module) {
35
- var wav2lip3 = (() => {
35
+ var wav2lip4 = (() => {
36
36
  var _scriptName = typeof document != "undefined" ? document.currentScript?.src : void 0;
37
37
  return function(moduleArg = {}) {
38
38
  var moduleRtn;
@@ -43,12 +43,10 @@ var require_wasm_bindings = __commonJS({
43
43
  readyPromiseReject = reject;
44
44
  });
45
45
  var ENVIRONMENT_IS_WEB = typeof window == "object";
46
- var ENVIRONMENT_IS_WORKER = typeof importScripts == "function";
47
- var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string";
48
- if (!Module.expectedDataFileDownloads) {
49
- Module.expectedDataFileDownloads = 0;
50
- }
51
- Module.expectedDataFileDownloads++;
46
+ var ENVIRONMENT_IS_WORKER = typeof WorkerGlobalScope != "undefined";
47
+ var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string" && process.type != "renderer";
48
+ Module["expectedDataFileDownloads"] ??= 0;
49
+ Module["expectedDataFileDownloads"]++;
52
50
  (() => {
53
51
  var isPthread = typeof ENVIRONMENT_IS_PTHREAD != "undefined" && ENVIRONMENT_IS_PTHREAD;
54
52
  var isWasmWorker = typeof ENVIRONMENT_IS_WASM_WORKER != "undefined" && ENVIRONMENT_IS_WASM_WORKER;
@@ -57,63 +55,55 @@ var require_wasm_bindings = __commonJS({
57
55
  function loadPackage(metadata) {
58
56
  var PACKAGE_PATH = "";
59
57
  if (typeof window === "object") {
60
- PACKAGE_PATH = window["encodeURIComponent"](window.location.pathname.toString().substring(0, window.location.pathname.toString().lastIndexOf("/")) + "/");
58
+ PACKAGE_PATH = window["encodeURIComponent"](window.location.pathname.substring(0, window.location.pathname.lastIndexOf("/")) + "/");
61
59
  } else if (typeof process === "undefined" && typeof location !== "undefined") {
62
- PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf("/")) + "/");
60
+ PACKAGE_PATH = encodeURIComponent(location.pathname.substring(0, location.pathname.lastIndexOf("/")) + "/");
63
61
  }
64
62
  var PACKAGE_NAME = "wasm_bindings.data";
65
63
  var REMOTE_PACKAGE_BASE = "wasm_bindings.data";
66
- if (typeof Module["locateFilePackage"] === "function" && !Module["locateFile"]) {
67
- Module["locateFile"] = Module["locateFilePackage"];
68
- err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)");
69
- }
70
64
  var REMOTE_PACKAGE_NAME = Module["locateFile"] ? Module["locateFile"](REMOTE_PACKAGE_BASE, "") : REMOTE_PACKAGE_BASE;
71
65
  var REMOTE_PACKAGE_SIZE = metadata["remote_package_size"];
72
66
  function fetchRemotePackage(packageName, packageSize, callback, errback) {
73
- var xhr = new XMLHttpRequest();
74
- xhr.open("GET", packageName, true);
75
- xhr.responseType = "arraybuffer";
76
- xhr.onprogress = function(event) {
77
- var url = packageName;
78
- var size = packageSize;
79
- if (event.total)
80
- size = event.total;
81
- if (event.loaded) {
82
- if (!xhr.addedTotal) {
83
- xhr.addedTotal = true;
84
- if (!Module.dataFileDownloads)
85
- Module.dataFileDownloads = {};
86
- Module.dataFileDownloads[url] = { loaded: event.loaded, total: size };
87
- } else {
88
- Module.dataFileDownloads[url].loaded = event.loaded;
89
- }
90
- var total = 0;
91
- var loaded = 0;
92
- var num = 0;
93
- for (var download in Module.dataFileDownloads) {
94
- var data = Module.dataFileDownloads[download];
95
- total += data.total;
96
- loaded += data.loaded;
97
- num++;
98
- }
99
- total = Math.ceil(total * Module.expectedDataFileDownloads / num);
100
- Module["setStatus"]?.(`Downloading data... (${loaded}/${total})`);
101
- } else if (!Module.dataFileDownloads) {
102
- Module["setStatus"]?.("Downloading data...");
67
+ Module["dataFileDownloads"] ??= {};
68
+ fetch(packageName).catch((cause) => Promise.reject(new Error(`Network Error: ${packageName}`, { cause }))).then((response) => {
69
+ if (!response.ok) {
70
+ return Promise.reject(new Error(`${response.status}: ${response.url}`));
103
71
  }
104
- };
105
- xhr.onerror = function(event) {
106
- throw new Error("NetworkError for: " + packageName);
107
- };
108
- xhr.onload = function(event) {
109
- if (xhr.status == 200 || xhr.status == 304 || xhr.status == 206 || xhr.status == 0 && xhr.response) {
110
- var packageData = xhr.response;
111
- callback(packageData);
112
- } else {
113
- throw new Error(xhr.statusText + " : " + xhr.responseURL);
72
+ if (!response.body && response.arrayBuffer) {
73
+ return response.arrayBuffer().then(callback);
114
74
  }
115
- };
116
- xhr.send(null);
75
+ const reader = response.body.getReader();
76
+ const iterate = () => reader.read().then(handleChunk).catch((cause) => Promise.reject(new Error(`Unexpected error while handling : ${response.url} ${cause}`, { cause })));
77
+ const chunks = [];
78
+ const headers = response.headers;
79
+ const total = Number(headers.get("Content-Length") ?? packageSize);
80
+ let loaded = 0;
81
+ const handleChunk = ({ done, value }) => {
82
+ if (!done) {
83
+ chunks.push(value);
84
+ loaded += value.length;
85
+ Module["dataFileDownloads"][packageName] = { loaded, total };
86
+ let totalLoaded = 0;
87
+ let totalSize = 0;
88
+ for (const download of Object.values(Module["dataFileDownloads"])) {
89
+ totalLoaded += download.loaded;
90
+ totalSize += download.total;
91
+ }
92
+ Module["setStatus"]?.(`Downloading data... (${totalLoaded}/${totalSize})`);
93
+ return iterate();
94
+ } else {
95
+ const packageData = new Uint8Array(chunks.map((c) => c.length).reduce((a, b) => a + b, 0));
96
+ let offset = 0;
97
+ for (const chunk of chunks) {
98
+ packageData.set(chunk, offset);
99
+ offset += chunk.length;
100
+ }
101
+ callback(packageData.buffer);
102
+ }
103
+ };
104
+ Module["setStatus"]?.("Downloading data...");
105
+ return iterate();
106
+ });
117
107
  }
118
108
  function handleError(error) {
119
109
  console.error("package error:", error);
@@ -121,7 +111,7 @@ var require_wasm_bindings = __commonJS({
121
111
  var fetchedCallback = null;
122
112
  var fetched = Module["getPreloadedPackage"] ? Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE) : null;
123
113
  if (!fetched)
124
- fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, function(data) {
114
+ fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, (data) => {
125
115
  if (fetchedCallback) {
126
116
  fetchedCallback(data);
127
117
  fetchedCallback = null;
@@ -169,9 +159,8 @@ var require_wasm_bindings = __commonJS({
169
159
  Module2["removeRunDependency"]("datafile_wasm_bindings.data");
170
160
  }
171
161
  Module2["addRunDependency"]("datafile_wasm_bindings.data");
172
- if (!Module2.preloadResults)
173
- Module2.preloadResults = {};
174
- Module2.preloadResults[PACKAGE_NAME] = { fromCache: false };
162
+ Module2["preloadResults"] ??= {};
163
+ Module2["preloadResults"][PACKAGE_NAME] = { fromCache: false };
175
164
  if (fetched) {
176
165
  processPackageData(fetched);
177
166
  fetched = null;
@@ -182,12 +171,10 @@ var require_wasm_bindings = __commonJS({
182
171
  if (Module["calledRun"]) {
183
172
  runWithFS(Module);
184
173
  } else {
185
- if (!Module["preRun"])
186
- Module["preRun"] = [];
187
- Module["preRun"].push(runWithFS);
174
+ (Module["preRun"] ??= []).push(runWithFS);
188
175
  }
189
176
  }
190
- loadPackage({ files: [{ filename: "/animoji_v4.cfg", start: 0, end: 333 }, { filename: "/balloon.cfg", start: 333, end: 409 }, { filename: "/cathedral.cfg", start: 409, end: 586 }, { filename: "/chorus.cfg", start: 586, end: 865 }, { filename: "/denoise.cfg", start: 865, end: 3258 }, { filename: "/df2_lstm_full_silent.tflite", start: 3258, end: 3169978 }, { filename: "/distortion.cfg", start: 3169978, end: 3170120 }, { filename: "/echo.cfg", start: 3170120, end: 3170257 }, { filename: "/evil.cfg", start: 3170257, end: 3170398 }, { filename: "/giant.cfg", start: 3170398, end: 3170474 }, { filename: "/hall.cfg", start: 3170474, end: 3170647 }, { filename: "/phaser.cfg", start: 3170647, end: 3170747 }, { filename: "/robot.cfg", start: 3170747, end: 3170887 }, { filename: "/squirell.cfg", start: 3170887, end: 3170963 }, { filename: "/wav2lip_lite_rec-v4-v2.tflite", start: 3170963, end: 7456043 }], remote_package_size: 7456043 });
177
+ loadPackage({ files: [{ filename: "/animoji_v4.cfg", start: 0, end: 333 }, { filename: "/balloon.cfg", start: 333, end: 409 }, { filename: "/bcresnet_internal_state_20ms.tflite", start: 409, end: 274717 }, { filename: "/cathedral.cfg", start: 274717, end: 274894 }, { filename: "/chorus.cfg", start: 274894, end: 275173 }, { filename: "/denoise.cfg", start: 275173, end: 277566 }, { filename: "/df2_lstm_full_silent.tflite", start: 277566, end: 3444286 }, { filename: "/distortion.cfg", start: 3444286, end: 3444428 }, { filename: "/echo.cfg", start: 3444428, end: 3444565 }, { filename: "/evil.cfg", start: 3444565, end: 3444706 }, { filename: "/giant.cfg", start: 3444706, end: 3444782 }, { filename: "/hall.cfg", start: 3444782, end: 3444955 }, { filename: "/phaser.cfg", start: 3444955, end: 3445055 }, { filename: "/robot.cfg", start: 3445055, end: 3445195 }, { filename: "/squirell.cfg", start: 3445195, end: 3445271 }, { filename: "/vad.cfg", start: 3445271, end: 3445492 }, { filename: "/wav2lip_lite_rec-v4-v2.tflite", start: 3445492, end: 7730572 }], remote_package_size: 7730572 });
191
178
  })();
192
179
  var _scriptName2 = null;
193
180
  var moduleOverrides = Object.assign({}, Module);
@@ -228,12 +215,13 @@ var require_wasm_bindings = __commonJS({
228
215
  return new Uint8Array(xhr.response);
229
216
  };
230
217
  }
231
- readAsync = (url) => fetch(url, { credentials: "same-origin" }).then((response) => {
218
+ readAsync = async (url) => {
219
+ var response = await fetch(url, { credentials: "same-origin" });
232
220
  if (response.ok) {
233
221
  return response.arrayBuffer();
234
222
  }
235
- return Promise.reject(new Error(response.status + " : " + response.url));
236
- });
223
+ throw new Error(response.status + " : " + response.url);
224
+ };
237
225
  }
238
226
  } else {
239
227
  }
@@ -245,11 +233,7 @@ var require_wasm_bindings = __commonJS({
245
233
  arguments_ = Module["arguments"];
246
234
  if (Module["thisProgram"])
247
235
  thisProgram = Module["thisProgram"];
248
- if (Module["quit"])
249
- quit_ = Module["quit"];
250
- var wasmBinary;
251
- if (Module["wasmBinary"])
252
- wasmBinary = Module["wasmBinary"];
236
+ var wasmBinary = Module["wasmBinary"];
253
237
  var wasmMemory;
254
238
  var ABORT = false;
255
239
  var EXITSTATUS;
@@ -281,7 +265,7 @@ var require_wasm_bindings = __commonJS({
281
265
  }
282
266
  function initRuntime() {
283
267
  runtimeInitialized = true;
284
- if (!Module["noFSInit"] && !FS.init.initialized)
268
+ if (!Module["noFSInit"] && !FS.initialized)
285
269
  FS.init();
286
270
  FS.ignorePermissions = false;
287
271
  TTY.init();
@@ -307,7 +291,6 @@ var require_wasm_bindings = __commonJS({
307
291
  __ATPOSTRUN__.unshift(cb);
308
292
  }
309
293
  var runDependencies = 0;
310
- var runDependencyWatcher = null;
311
294
  var dependenciesFulfilled = null;
312
295
  function getUniqueRunDependency(id) {
313
296
  return id;
@@ -320,10 +303,6 @@ var require_wasm_bindings = __commonJS({
320
303
  runDependencies--;
321
304
  Module["monitorRunDependencies"]?.(runDependencies);
322
305
  if (runDependencies == 0) {
323
- if (runDependencyWatcher !== null) {
324
- clearInterval(runDependencyWatcher);
325
- runDependencyWatcher = null;
326
- }
327
306
  if (dependenciesFulfilled) {
328
307
  var callback = dependenciesFulfilled;
329
308
  dependenciesFulfilled = null;
@@ -336,7 +315,6 @@ var require_wasm_bindings = __commonJS({
336
315
  what = "Aborted(" + what + ")";
337
316
  err(what);
338
317
  ABORT = true;
339
- EXITSTATUS = 1;
340
318
  what += ". Build with -sASSERTIONS for more info.";
341
319
  var e = new WebAssembly.RuntimeError(what);
342
320
  readyPromiseReject(e);
@@ -361,49 +339,57 @@ var require_wasm_bindings = __commonJS({
361
339
  }
362
340
  throw "both async and sync fetching of the wasm failed";
363
341
  }
364
- function getBinaryPromise(binaryFile) {
342
+ async function getWasmBinary(binaryFile) {
365
343
  if (!wasmBinary) {
366
- return readAsync(binaryFile).then((response) => new Uint8Array(response), () => getBinarySync(binaryFile));
344
+ try {
345
+ var response = await readAsync(binaryFile);
346
+ return new Uint8Array(response);
347
+ } catch {
348
+ }
367
349
  }
368
- return Promise.resolve().then(() => getBinarySync(binaryFile));
350
+ return getBinarySync(binaryFile);
369
351
  }
370
- function instantiateArrayBuffer(binaryFile, imports, receiver) {
371
- return getBinaryPromise(binaryFile).then((binary) => WebAssembly.instantiate(binary, imports)).then(receiver, (reason) => {
352
+ async function instantiateArrayBuffer(binaryFile, imports) {
353
+ try {
354
+ var binary = await getWasmBinary(binaryFile);
355
+ var instance = await WebAssembly.instantiate(binary, imports);
356
+ return instance;
357
+ } catch (reason) {
372
358
  err(`failed to asynchronously prepare wasm: ${reason}`);
373
359
  abort(reason);
374
- });
360
+ }
375
361
  }
376
- function instantiateAsync(binary, binaryFile, imports, callback) {
362
+ async function instantiateAsync(binary, binaryFile, imports) {
377
363
  if (!binary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(binaryFile) && typeof fetch == "function") {
378
- return fetch(binaryFile, { credentials: "same-origin" }).then((response) => {
379
- var result = WebAssembly.instantiateStreaming(response, imports);
380
- return result.then(callback, function(reason) {
381
- err(`wasm streaming compile failed: ${reason}`);
382
- err("falling back to ArrayBuffer instantiation");
383
- return instantiateArrayBuffer(binaryFile, imports, callback);
384
- });
385
- });
364
+ try {
365
+ var response = fetch(binaryFile, { credentials: "same-origin" });
366
+ var instantiationResult = await WebAssembly.instantiateStreaming(response, imports);
367
+ return instantiationResult;
368
+ } catch (reason) {
369
+ err(`wasm streaming compile failed: ${reason}`);
370
+ err("falling back to ArrayBuffer instantiation");
371
+ }
386
372
  }
387
- return instantiateArrayBuffer(binaryFile, imports, callback);
373
+ return instantiateArrayBuffer(binaryFile, imports);
388
374
  }
389
375
  function getWasmImports() {
390
376
  return { a: wasmImports };
391
377
  }
392
- function createWasm() {
393
- var info = getWasmImports();
378
+ async function createWasm() {
394
379
  function receiveInstance(instance, module2) {
395
380
  wasmExports = instance.exports;
396
- wasmMemory = wasmExports["Z"];
381
+ wasmMemory = wasmExports["ea"];
397
382
  updateMemoryViews();
398
- wasmTable = wasmExports["aa"];
399
- addOnInit(wasmExports["_"]);
383
+ wasmTable = wasmExports["ha"];
384
+ addOnInit(wasmExports["fa"]);
400
385
  removeRunDependency("wasm-instantiate");
401
386
  return wasmExports;
402
387
  }
403
388
  addRunDependency("wasm-instantiate");
404
- function receiveInstantiationResult(result) {
405
- receiveInstance(result["instance"]);
389
+ function receiveInstantiationResult(result2) {
390
+ receiveInstance(result2["instance"]);
406
391
  }
392
+ var info = getWasmImports();
407
393
  if (Module["instantiateWasm"]) {
408
394
  try {
409
395
  return Module["instantiateWasm"](info, receiveInstance);
@@ -412,17 +398,46 @@ var require_wasm_bindings = __commonJS({
412
398
  readyPromiseReject(e);
413
399
  }
414
400
  }
415
- if (!wasmBinaryFile)
416
- wasmBinaryFile = findWasmBinary();
417
- instantiateAsync(wasmBinary, wasmBinaryFile, info, receiveInstantiationResult).catch(readyPromiseReject);
418
- return {};
401
+ wasmBinaryFile ??= findWasmBinary();
402
+ try {
403
+ var result = await instantiateAsync(wasmBinary, wasmBinaryFile, info);
404
+ receiveInstantiationResult(result);
405
+ return result;
406
+ } catch (e) {
407
+ readyPromiseReject(e);
408
+ return;
409
+ }
419
410
  }
420
411
  var tempDouble;
421
412
  var tempI64;
422
- function ExitStatus(status) {
423
- this.name = "ExitStatus";
424
- this.message = `Program terminated with exit(${status})`;
425
- this.status = status;
413
+ function hardware_concurrency() {
414
+ return self.navigator.hardwareConcurrency;
415
+ }
416
+ function xnnLoadWasmModuleJS(code, offset, offset_end, invalid_function_index) {
417
+ const tableOriginalSize = wasmTable.length;
418
+ const binary = new Uint8Array(HEAPU8.slice(code + offset, code + offset_end));
419
+ try {
420
+ var module2 = new WebAssembly.Module(binary);
421
+ var instance = new WebAssembly.Instance(module2, { env: { memory: wasmMemory } });
422
+ for (var symName in instance.exports) {
423
+ var value = instance.exports[symName];
424
+ addFunction(value);
425
+ }
426
+ if (tableOriginalSize < wasmTable.length) {
427
+ return tableOriginalSize;
428
+ }
429
+ return invalid_function_index;
430
+ } catch (error) {
431
+ console.log(error);
432
+ return invalid_function_index;
433
+ }
434
+ }
435
+ class ExitStatus {
436
+ name = "ExitStatus";
437
+ constructor(status) {
438
+ this.message = `Program terminated with exit(${status})`;
439
+ this.status = status;
440
+ }
426
441
  }
427
442
  var callRuntimeCallbacks = (callbacks) => {
428
443
  while (callbacks.length > 0) {
@@ -472,16 +487,6 @@ var require_wasm_bindings = __commonJS({
472
487
  get_adjusted_ptr() {
473
488
  return HEAPU32[this.ptr + 16 >> 2];
474
489
  }
475
- get_exception_ptr() {
476
- var isPointer = ___cxa_is_pointer_type(this.get_type());
477
- if (isPointer) {
478
- return HEAPU32[this.excPtr >> 2];
479
- }
480
- var adjusted = this.get_adjusted_ptr();
481
- if (adjusted !== 0)
482
- return adjusted;
483
- return this.excPtr;
484
- }
485
490
  }
486
491
  var exceptionLast = 0;
487
492
  var uncaughtExceptionCount = 0;
@@ -492,12 +497,6 @@ var require_wasm_bindings = __commonJS({
492
497
  uncaughtExceptionCount++;
493
498
  throw exceptionLast;
494
499
  };
495
- function syscallGetVarargI() {
496
- var ret = HEAP32[+SYSCALLS.varargs >> 2];
497
- SYSCALLS.varargs += 4;
498
- return ret;
499
- }
500
- var syscallGetVarargP = syscallGetVarargI;
501
500
  var PATH = { isAbs: (path) => path.charAt(0) === "/", splitPath: (filename) => {
502
501
  var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
503
502
  return splitPathRe.exec(filename).slice(1);
@@ -607,7 +606,7 @@ var require_wasm_bindings = __commonJS({
607
606
  return outputParts.join("/");
608
607
  } };
609
608
  var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder() : void 0;
610
- var UTF8ArrayToString = (heapOrArray, idx, maxBytesToRead) => {
609
+ var UTF8ArrayToString = (heapOrArray, idx = 0, maxBytesToRead = NaN) => {
611
610
  var endIdx = idx + maxBytesToRead;
612
611
  var endPtr = idx;
613
612
  while (heapOrArray[endPtr] && !(endPtr >= endIdx))
@@ -760,7 +759,7 @@ var require_wasm_bindings = __commonJS({
760
759
  buffer[offset + i] = result;
761
760
  }
762
761
  if (bytesRead) {
763
- stream.node.timestamp = Date.now();
762
+ stream.node.atime = Date.now();
764
763
  }
765
764
  return bytesRead;
766
765
  }, write(stream, buffer, offset, length, pos) {
@@ -775,14 +774,14 @@ var require_wasm_bindings = __commonJS({
775
774
  throw new FS.ErrnoError(29);
776
775
  }
777
776
  if (length) {
778
- stream.node.timestamp = Date.now();
777
+ stream.node.mtime = stream.node.ctime = Date.now();
779
778
  }
780
779
  return i;
781
780
  } }, default_tty_ops: { get_char(tty) {
782
781
  return FS_stdin_getChar();
783
782
  }, put_char(tty, val) {
784
783
  if (val === null || val === 10) {
785
- out(UTF8ArrayToString(tty.output, 0));
784
+ out(UTF8ArrayToString(tty.output));
786
785
  tty.output = [];
787
786
  } else {
788
787
  if (val != 0)
@@ -790,7 +789,7 @@ var require_wasm_bindings = __commonJS({
790
789
  }
791
790
  }, fsync(tty) {
792
791
  if (tty.output && tty.output.length > 0) {
793
- out(UTF8ArrayToString(tty.output, 0));
792
+ out(UTF8ArrayToString(tty.output));
794
793
  tty.output = [];
795
794
  }
796
795
  }, ioctl_tcgets(tty) {
@@ -801,7 +800,7 @@ var require_wasm_bindings = __commonJS({
801
800
  return [24, 80];
802
801
  } }, default_tty1_ops: { put_char(tty, val) {
803
802
  if (val === null || val === 10) {
804
- err(UTF8ArrayToString(tty.output, 0));
803
+ err(UTF8ArrayToString(tty.output));
805
804
  tty.output = [];
806
805
  } else {
807
806
  if (val != 0)
@@ -809,29 +808,28 @@ var require_wasm_bindings = __commonJS({
809
808
  }
810
809
  }, fsync(tty) {
811
810
  if (tty.output && tty.output.length > 0) {
812
- err(UTF8ArrayToString(tty.output, 0));
811
+ err(UTF8ArrayToString(tty.output));
813
812
  tty.output = [];
814
813
  }
815
814
  } } };
816
815
  var zeroMemory = (address, size) => {
817
816
  HEAPU8.fill(0, address, address + size);
818
- return address;
819
817
  };
820
818
  var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment;
821
819
  var mmapAlloc = (size) => {
822
820
  size = alignMemory(size, 65536);
823
821
  var ptr = _emscripten_builtin_memalign(65536, size);
824
- if (!ptr)
825
- return 0;
826
- return zeroMemory(ptr, size);
822
+ if (ptr)
823
+ zeroMemory(ptr, size);
824
+ return ptr;
827
825
  };
828
826
  var MEMFS = { ops_table: null, mount(mount) {
829
- return MEMFS.createNode(null, "/", 16384 | 511, 0);
827
+ return MEMFS.createNode(null, "/", 16895, 0);
830
828
  }, createNode(parent, name, mode, dev) {
831
829
  if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {
832
830
  throw new FS.ErrnoError(63);
833
831
  }
834
- MEMFS.ops_table || (MEMFS.ops_table = { dir: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, lookup: MEMFS.node_ops.lookup, mknod: MEMFS.node_ops.mknod, rename: MEMFS.node_ops.rename, unlink: MEMFS.node_ops.unlink, rmdir: MEMFS.node_ops.rmdir, readdir: MEMFS.node_ops.readdir, symlink: MEMFS.node_ops.symlink }, stream: { llseek: MEMFS.stream_ops.llseek } }, file: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: { llseek: MEMFS.stream_ops.llseek, read: MEMFS.stream_ops.read, write: MEMFS.stream_ops.write, allocate: MEMFS.stream_ops.allocate, mmap: MEMFS.stream_ops.mmap, msync: MEMFS.stream_ops.msync } }, link: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, readlink: MEMFS.node_ops.readlink }, stream: {} }, chrdev: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: FS.chrdev_stream_ops } });
832
+ MEMFS.ops_table ||= { dir: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, lookup: MEMFS.node_ops.lookup, mknod: MEMFS.node_ops.mknod, rename: MEMFS.node_ops.rename, unlink: MEMFS.node_ops.unlink, rmdir: MEMFS.node_ops.rmdir, readdir: MEMFS.node_ops.readdir, symlink: MEMFS.node_ops.symlink }, stream: { llseek: MEMFS.stream_ops.llseek } }, file: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: { llseek: MEMFS.stream_ops.llseek, read: MEMFS.stream_ops.read, write: MEMFS.stream_ops.write, allocate: MEMFS.stream_ops.allocate, mmap: MEMFS.stream_ops.mmap, msync: MEMFS.stream_ops.msync } }, link: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, readlink: MEMFS.node_ops.readlink }, stream: {} }, chrdev: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: FS.chrdev_stream_ops } };
835
833
  var node = FS.createNode(parent, name, mode, dev);
836
834
  if (FS.isDir(node.mode)) {
837
835
  node.node_ops = MEMFS.ops_table.dir.node;
@@ -849,10 +847,10 @@ var require_wasm_bindings = __commonJS({
849
847
  node.node_ops = MEMFS.ops_table.chrdev.node;
850
848
  node.stream_ops = MEMFS.ops_table.chrdev.stream;
851
849
  }
852
- node.timestamp = Date.now();
850
+ node.atime = node.mtime = node.ctime = Date.now();
853
851
  if (parent) {
854
852
  parent.contents[name] = node;
855
- parent.timestamp = node.timestamp;
853
+ parent.atime = parent.mtime = parent.ctime = node.atime;
856
854
  }
857
855
  return node;
858
856
  }, getFileDataAsTypedArray(node) {
@@ -905,60 +903,55 @@ var require_wasm_bindings = __commonJS({
905
903
  } else {
906
904
  attr.size = 0;
907
905
  }
908
- attr.atime = new Date(node.timestamp);
909
- attr.mtime = new Date(node.timestamp);
910
- attr.ctime = new Date(node.timestamp);
906
+ attr.atime = new Date(node.atime);
907
+ attr.mtime = new Date(node.mtime);
908
+ attr.ctime = new Date(node.ctime);
911
909
  attr.blksize = 4096;
912
910
  attr.blocks = Math.ceil(attr.size / attr.blksize);
913
911
  return attr;
914
912
  }, setattr(node, attr) {
915
- if (attr.mode !== void 0) {
916
- node.mode = attr.mode;
917
- }
918
- if (attr.timestamp !== void 0) {
919
- node.timestamp = attr.timestamp;
913
+ for (const key of ["mode", "atime", "mtime", "ctime"]) {
914
+ if (attr[key]) {
915
+ node[key] = attr[key];
916
+ }
920
917
  }
921
918
  if (attr.size !== void 0) {
922
919
  MEMFS.resizeFileStorage(node, attr.size);
923
920
  }
924
921
  }, lookup(parent, name) {
925
- throw FS.genericErrors[44];
922
+ throw MEMFS.doesNotExistError;
926
923
  }, mknod(parent, name, mode, dev) {
927
924
  return MEMFS.createNode(parent, name, mode, dev);
928
925
  }, rename(old_node, new_dir, new_name) {
929
- if (FS.isDir(old_node.mode)) {
930
- var new_node;
931
- try {
932
- new_node = FS.lookupNode(new_dir, new_name);
933
- } catch (e) {
934
- }
935
- if (new_node) {
926
+ var new_node;
927
+ try {
928
+ new_node = FS.lookupNode(new_dir, new_name);
929
+ } catch (e) {
930
+ }
931
+ if (new_node) {
932
+ if (FS.isDir(old_node.mode)) {
936
933
  for (var i in new_node.contents) {
937
934
  throw new FS.ErrnoError(55);
938
935
  }
939
936
  }
937
+ FS.hashRemoveNode(new_node);
940
938
  }
941
939
  delete old_node.parent.contents[old_node.name];
942
- old_node.parent.timestamp = Date.now();
943
- old_node.name = new_name;
944
940
  new_dir.contents[new_name] = old_node;
945
- new_dir.timestamp = old_node.parent.timestamp;
941
+ old_node.name = new_name;
942
+ new_dir.ctime = new_dir.mtime = old_node.parent.ctime = old_node.parent.mtime = Date.now();
946
943
  }, unlink(parent, name) {
947
944
  delete parent.contents[name];
948
- parent.timestamp = Date.now();
945
+ parent.ctime = parent.mtime = Date.now();
949
946
  }, rmdir(parent, name) {
950
947
  var node = FS.lookupNode(parent, name);
951
948
  for (var i in node.contents) {
952
949
  throw new FS.ErrnoError(55);
953
950
  }
954
951
  delete parent.contents[name];
955
- parent.timestamp = Date.now();
952
+ parent.ctime = parent.mtime = Date.now();
956
953
  }, readdir(node) {
957
- var entries = [".", ".."];
958
- for (var key of Object.keys(node.contents)) {
959
- entries.push(key);
960
- }
961
- return entries;
954
+ return [".", "..", ...Object.keys(node.contents)];
962
955
  }, symlink(parent, newname, oldpath) {
963
956
  var node = MEMFS.createNode(parent, newname, 511 | 40960, 0);
964
957
  node.link = oldpath;
@@ -987,7 +980,7 @@ var require_wasm_bindings = __commonJS({
987
980
  if (!length)
988
981
  return 0;
989
982
  var node = stream.node;
990
- node.timestamp = Date.now();
983
+ node.mtime = node.ctime = Date.now();
991
984
  if (buffer.subarray && (!node.contents || node.contents.subarray)) {
992
985
  if (canOwn) {
993
986
  node.contents = buffer.subarray(offset, offset + length);
@@ -1035,44 +1028,34 @@ var require_wasm_bindings = __commonJS({
1035
1028
  var ptr;
1036
1029
  var allocated;
1037
1030
  var contents = stream.node.contents;
1038
- if (!(flags & 2) && contents.buffer === HEAP8.buffer) {
1031
+ if (!(flags & 2) && contents && contents.buffer === HEAP8.buffer) {
1039
1032
  allocated = false;
1040
1033
  ptr = contents.byteOffset;
1041
1034
  } else {
1042
- if (position > 0 || position + length < contents.length) {
1043
- if (contents.subarray) {
1044
- contents = contents.subarray(position, position + length);
1045
- } else {
1046
- contents = Array.prototype.slice.call(contents, position, position + length);
1047
- }
1048
- }
1049
1035
  allocated = true;
1050
1036
  ptr = mmapAlloc(length);
1051
1037
  if (!ptr) {
1052
1038
  throw new FS.ErrnoError(48);
1053
1039
  }
1054
- HEAP8.set(contents, ptr);
1040
+ if (contents) {
1041
+ if (position > 0 || position + length < contents.length) {
1042
+ if (contents.subarray) {
1043
+ contents = contents.subarray(position, position + length);
1044
+ } else {
1045
+ contents = Array.prototype.slice.call(contents, position, position + length);
1046
+ }
1047
+ }
1048
+ HEAP8.set(contents, ptr);
1049
+ }
1055
1050
  }
1056
1051
  return { ptr, allocated };
1057
1052
  }, msync(stream, buffer, offset, length, mmapFlags) {
1058
1053
  MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false);
1059
1054
  return 0;
1060
1055
  } } };
1061
- var asyncLoad = (url, onload, onerror, noRunDep) => {
1062
- var dep = !noRunDep ? getUniqueRunDependency(`al ${url}`) : "";
1063
- readAsync(url).then((arrayBuffer) => {
1064
- onload(new Uint8Array(arrayBuffer));
1065
- if (dep)
1066
- removeRunDependency(dep);
1067
- }, (err2) => {
1068
- if (onerror) {
1069
- onerror();
1070
- } else {
1071
- throw `Loading data file "${url}" failed.`;
1072
- }
1073
- });
1074
- if (dep)
1075
- addRunDependency(dep);
1056
+ var asyncLoad = async (url) => {
1057
+ var arrayBuffer = await readAsync(url);
1058
+ return new Uint8Array(arrayBuffer);
1076
1059
  };
1077
1060
  var FS_createDataFile = (parent, name, fileData, canRead, canWrite, canOwn) => {
1078
1061
  FS.createDataFile(parent, name, fileData, canRead, canWrite, canOwn);
@@ -1114,7 +1097,7 @@ var require_wasm_bindings = __commonJS({
1114
1097
  }
1115
1098
  addRunDependency(dep);
1116
1099
  if (typeof url == "string") {
1117
- asyncLoad(url, processData, onerror);
1100
+ asyncLoad(url).then(processData, onerror);
1118
1101
  } else {
1119
1102
  processData(url);
1120
1103
  }
@@ -1136,14 +1119,12 @@ var require_wasm_bindings = __commonJS({
1136
1119
  return mode;
1137
1120
  };
1138
1121
  var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: false, ignorePermissions: true, ErrnoError: class {
1122
+ name = "ErrnoError";
1139
1123
  constructor(errno) {
1140
- this.name = "ErrnoError";
1141
1124
  this.errno = errno;
1142
1125
  }
1143
- }, genericErrors: {}, filesystems: null, syncFSRequests: 0, FSStream: class {
1144
- constructor() {
1145
- this.shared = {};
1146
- }
1126
+ }, filesystems: null, syncFSRequests: 0, readFiles: {}, FSStream: class {
1127
+ shared = {};
1147
1128
  get object() {
1148
1129
  return this.node;
1149
1130
  }
@@ -1172,21 +1153,22 @@ var require_wasm_bindings = __commonJS({
1172
1153
  this.shared.position = val;
1173
1154
  }
1174
1155
  }, FSNode: class {
1156
+ node_ops = {};
1157
+ stream_ops = {};
1158
+ readMode = 292 | 73;
1159
+ writeMode = 146;
1160
+ mounted = null;
1175
1161
  constructor(parent, name, mode, rdev) {
1176
1162
  if (!parent) {
1177
1163
  parent = this;
1178
1164
  }
1179
1165
  this.parent = parent;
1180
1166
  this.mount = parent.mount;
1181
- this.mounted = null;
1182
1167
  this.id = FS.nextInode++;
1183
1168
  this.name = name;
1184
1169
  this.mode = mode;
1185
- this.node_ops = {};
1186
- this.stream_ops = {};
1187
1170
  this.rdev = rdev;
1188
- this.readMode = 292 | 73;
1189
- this.writeMode = 146;
1171
+ this.atime = this.mtime = this.ctime = Date.now();
1190
1172
  }
1191
1173
  get read() {
1192
1174
  return (this.mode & this.readMode) === this.readMode;
@@ -1207,43 +1189,54 @@ var require_wasm_bindings = __commonJS({
1207
1189
  return FS.isChrdev(this.mode);
1208
1190
  }
1209
1191
  }, lookupPath(path, opts = {}) {
1210
- path = PATH_FS.resolve(path);
1211
1192
  if (!path)
1212
1193
  return { path: "", node: null };
1213
- var defaults = { follow_mount: true, recurse_count: 0 };
1214
- opts = Object.assign(defaults, opts);
1215
- if (opts.recurse_count > 8) {
1216
- throw new FS.ErrnoError(32);
1217
- }
1218
- var parts = path.split("/").filter((p) => !!p);
1219
- var current = FS.root;
1220
- var current_path = "/";
1221
- for (var i = 0; i < parts.length; i++) {
1222
- var islast = i === parts.length - 1;
1223
- if (islast && opts.parent) {
1224
- break;
1225
- }
1226
- current = FS.lookupNode(current, parts[i]);
1227
- current_path = PATH.join2(current_path, parts[i]);
1228
- if (FS.isMountpoint(current)) {
1229
- if (!islast || islast && opts.follow_mount) {
1230
- current = current.mounted.root;
1231
- }
1232
- }
1233
- if (!islast || opts.follow) {
1234
- var count = 0;
1235
- while (FS.isLink(current.mode)) {
1236
- var link = FS.readlink(current_path);
1237
- current_path = PATH_FS.resolve(PATH.dirname(current_path), link);
1238
- var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count + 1 });
1239
- current = lookup.node;
1240
- if (count++ > 40) {
1241
- throw new FS.ErrnoError(32);
1194
+ opts.follow_mount ??= true;
1195
+ if (!PATH.isAbs(path)) {
1196
+ path = FS.cwd() + "/" + path;
1197
+ }
1198
+ linkloop:
1199
+ for (var nlinks = 0; nlinks < 40; nlinks++) {
1200
+ var parts = path.split("/").filter((p) => !!p && p !== ".");
1201
+ var current = FS.root;
1202
+ var current_path = "/";
1203
+ for (var i = 0; i < parts.length; i++) {
1204
+ var islast = i === parts.length - 1;
1205
+ if (islast && opts.parent) {
1206
+ break;
1207
+ }
1208
+ if (parts[i] === "..") {
1209
+ current_path = PATH.dirname(current_path);
1210
+ current = current.parent;
1211
+ continue;
1212
+ }
1213
+ current_path = PATH.join2(current_path, parts[i]);
1214
+ try {
1215
+ current = FS.lookupNode(current, parts[i]);
1216
+ } catch (e) {
1217
+ if (e?.errno === 44 && islast && opts.noent_okay) {
1218
+ return { path: current_path };
1219
+ }
1220
+ throw e;
1221
+ }
1222
+ if (FS.isMountpoint(current) && (!islast || opts.follow_mount)) {
1223
+ current = current.mounted.root;
1224
+ }
1225
+ if (FS.isLink(current.mode) && (!islast || opts.follow)) {
1226
+ if (!current.node_ops.readlink) {
1227
+ throw new FS.ErrnoError(52);
1228
+ }
1229
+ var link = current.node_ops.readlink(current);
1230
+ if (!PATH.isAbs(link)) {
1231
+ link = PATH.dirname(current_path) + "/" + link;
1232
+ }
1233
+ path = link + "/" + parts.slice(i + 1).join("/");
1234
+ continue linkloop;
1242
1235
  }
1243
1236
  }
1237
+ return { path: current_path, node: current };
1244
1238
  }
1245
- }
1246
- return { path: current_path, node: current };
1239
+ throw new FS.ErrnoError(32);
1247
1240
  }, getPath(node) {
1248
1241
  var path;
1249
1242
  while (true) {
@@ -1345,6 +1338,9 @@ var require_wasm_bindings = __commonJS({
1345
1338
  return 2;
1346
1339
  return 0;
1347
1340
  }, mayCreate(dir, name) {
1341
+ if (!FS.isDir(dir.mode)) {
1342
+ return 54;
1343
+ }
1348
1344
  try {
1349
1345
  var node = FS.lookupNode(dir, name);
1350
1346
  return 20;
@@ -1532,13 +1528,18 @@ var require_wasm_bindings = __commonJS({
1532
1528
  throw new FS.ErrnoError(63);
1533
1529
  }
1534
1530
  return parent.node_ops.mknod(parent, name, mode, dev);
1535
- }, create(path, mode) {
1536
- mode = mode !== void 0 ? mode : 438;
1531
+ }, statfs(path) {
1532
+ var rtn = { bsize: 4096, frsize: 4096, blocks: 1e6, bfree: 5e5, bavail: 5e5, files: FS.nextInode, ffree: FS.nextInode - 1, fsid: 42, flags: 2, namelen: 255 };
1533
+ var parent = FS.lookupPath(path, { follow: true }).node;
1534
+ if (parent?.node_ops.statfs) {
1535
+ Object.assign(rtn, parent.node_ops.statfs(parent.mount.opts.root));
1536
+ }
1537
+ return rtn;
1538
+ }, create(path, mode = 438) {
1537
1539
  mode &= 4095;
1538
1540
  mode |= 32768;
1539
1541
  return FS.mknod(path, mode, 0);
1540
- }, mkdir(path, mode) {
1541
- mode = mode !== void 0 ? mode : 511;
1542
+ }, mkdir(path, mode = 511) {
1542
1543
  mode &= 511 | 512;
1543
1544
  mode |= 16384;
1544
1545
  return FS.mknod(path, mode, 0);
@@ -1696,7 +1697,7 @@ var require_wasm_bindings = __commonJS({
1696
1697
  if (!link.node_ops.readlink) {
1697
1698
  throw new FS.ErrnoError(28);
1698
1699
  }
1699
- return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link));
1700
+ return link.node_ops.readlink(link);
1700
1701
  }, stat(path, dontFollow) {
1701
1702
  var lookup = FS.lookupPath(path, { follow: !dontFollow });
1702
1703
  var node = lookup.node;
@@ -1720,7 +1721,7 @@ var require_wasm_bindings = __commonJS({
1720
1721
  if (!node.node_ops.setattr) {
1721
1722
  throw new FS.ErrnoError(63);
1722
1723
  }
1723
- node.node_ops.setattr(node, { mode: mode & 4095 | node.mode & ~4095, timestamp: Date.now() });
1724
+ node.node_ops.setattr(node, { mode: mode & 4095 | node.mode & ~4095, ctime: Date.now() });
1724
1725
  }, lchmod(path, mode) {
1725
1726
  FS.chmod(path, mode, true);
1726
1727
  }, fchmod(fd, mode) {
@@ -1777,14 +1778,13 @@ var require_wasm_bindings = __commonJS({
1777
1778
  }, utime(path, atime, mtime) {
1778
1779
  var lookup = FS.lookupPath(path, { follow: true });
1779
1780
  var node = lookup.node;
1780
- node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime) });
1781
- }, open(path, flags, mode) {
1781
+ node.node_ops.setattr(node, { atime, mtime });
1782
+ }, open(path, flags, mode = 438) {
1782
1783
  if (path === "") {
1783
1784
  throw new FS.ErrnoError(44);
1784
1785
  }
1785
1786
  flags = typeof flags == "string" ? FS_modeStringToFlags(flags) : flags;
1786
1787
  if (flags & 64) {
1787
- mode = typeof mode == "undefined" ? 438 : mode;
1788
1788
  mode = mode & 4095 | 32768;
1789
1789
  } else {
1790
1790
  mode = 0;
@@ -1793,12 +1793,9 @@ var require_wasm_bindings = __commonJS({
1793
1793
  if (typeof path == "object") {
1794
1794
  node = path;
1795
1795
  } else {
1796
- path = PATH.normalize(path);
1797
- try {
1798
- var lookup = FS.lookupPath(path, { follow: !(flags & 131072) });
1799
- node = lookup.node;
1800
- } catch (e) {
1801
- }
1796
+ var lookup = FS.lookupPath(path, { follow: !(flags & 131072), noent_okay: true });
1797
+ node = lookup.node;
1798
+ path = lookup.path;
1802
1799
  }
1803
1800
  var created = false;
1804
1801
  if (flags & 64) {
@@ -1835,8 +1832,6 @@ var require_wasm_bindings = __commonJS({
1835
1832
  stream.stream_ops.open(stream);
1836
1833
  }
1837
1834
  if (Module["logReadFiles"] && !(flags & 1)) {
1838
- if (!FS.readFiles)
1839
- FS.readFiles = {};
1840
1835
  if (!(path in FS.readFiles)) {
1841
1836
  FS.readFiles[path] = 1;
1842
1837
  }
@@ -1955,6 +1950,9 @@ var require_wasm_bindings = __commonJS({
1955
1950
  if (!stream.stream_ops.mmap) {
1956
1951
  throw new FS.ErrnoError(43);
1957
1952
  }
1953
+ if (!length) {
1954
+ throw new FS.ErrnoError(28);
1955
+ }
1958
1956
  return stream.stream_ops.mmap(stream, length, position, prot, flags);
1959
1957
  }, msync(stream, buffer, offset, length, mmapFlags) {
1960
1958
  if (!stream.stream_ops.msync) {
@@ -1979,7 +1977,7 @@ var require_wasm_bindings = __commonJS({
1979
1977
  var buf = new Uint8Array(length);
1980
1978
  FS.read(stream, buf, 0, length, 0);
1981
1979
  if (opts.encoding === "utf8") {
1982
- ret = UTF8ArrayToString(buf, 0);
1980
+ ret = UTF8ArrayToString(buf);
1983
1981
  } else if (opts.encoding === "binary") {
1984
1982
  ret = buf;
1985
1983
  }
@@ -2017,7 +2015,7 @@ var require_wasm_bindings = __commonJS({
2017
2015
  FS.mkdir("/home/web_user");
2018
2016
  }, createDefaultDevices() {
2019
2017
  FS.mkdir("/dev");
2020
- FS.registerDevice(FS.makedev(1, 3), { read: () => 0, write: (stream, buffer, offset, length, pos) => length });
2018
+ FS.registerDevice(FS.makedev(1, 3), { read: () => 0, write: (stream, buffer, offset, length, pos) => length, llseek: () => 0 });
2021
2019
  FS.mkdev("/dev/null", FS.makedev(1, 3));
2022
2020
  TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);
2023
2021
  TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);
@@ -2039,29 +2037,32 @@ var require_wasm_bindings = __commonJS({
2039
2037
  var proc_self = FS.mkdir("/proc/self");
2040
2038
  FS.mkdir("/proc/self/fd");
2041
2039
  FS.mount({ mount() {
2042
- var node = FS.createNode(proc_self, "fd", 16384 | 511, 73);
2040
+ var node = FS.createNode(proc_self, "fd", 16895, 73);
2041
+ node.stream_ops = { llseek: MEMFS.stream_ops.llseek };
2043
2042
  node.node_ops = { lookup(parent, name) {
2044
2043
  var fd = +name;
2045
2044
  var stream = FS.getStreamChecked(fd);
2046
- var ret = { parent: null, mount: { mountpoint: "fake" }, node_ops: { readlink: () => stream.path } };
2045
+ var ret = { parent: null, mount: { mountpoint: "fake" }, node_ops: { readlink: () => stream.path }, id: fd + 1 };
2047
2046
  ret.parent = ret;
2048
2047
  return ret;
2048
+ }, readdir() {
2049
+ return Array.from(FS.streams.entries()).filter(([k, v]) => v).map(([k, v]) => k.toString());
2049
2050
  } };
2050
2051
  return node;
2051
2052
  } }, {}, "/proc/self/fd");
2052
- }, createStandardStreams() {
2053
- if (Module["stdin"]) {
2054
- FS.createDevice("/dev", "stdin", Module["stdin"]);
2053
+ }, createStandardStreams(input, output, error) {
2054
+ if (input) {
2055
+ FS.createDevice("/dev", "stdin", input);
2055
2056
  } else {
2056
2057
  FS.symlink("/dev/tty", "/dev/stdin");
2057
2058
  }
2058
- if (Module["stdout"]) {
2059
- FS.createDevice("/dev", "stdout", null, Module["stdout"]);
2059
+ if (output) {
2060
+ FS.createDevice("/dev", "stdout", null, output);
2060
2061
  } else {
2061
2062
  FS.symlink("/dev/tty", "/dev/stdout");
2062
2063
  }
2063
- if (Module["stderr"]) {
2064
- FS.createDevice("/dev", "stderr", null, Module["stderr"]);
2064
+ if (error) {
2065
+ FS.createDevice("/dev", "stderr", null, error);
2065
2066
  } else {
2066
2067
  FS.symlink("/dev/tty1", "/dev/stderr");
2067
2068
  }
@@ -2069,10 +2070,6 @@ var require_wasm_bindings = __commonJS({
2069
2070
  var stdout = FS.open("/dev/stdout", 1);
2070
2071
  var stderr = FS.open("/dev/stderr", 1);
2071
2072
  }, staticInit() {
2072
- [44].forEach((code) => {
2073
- FS.genericErrors[code] = new FS.ErrnoError(code);
2074
- FS.genericErrors[code].stack = "<generic error, no stack>";
2075
- });
2076
2073
  FS.nameTable = new Array(4096);
2077
2074
  FS.mount(MEMFS, {}, "/");
2078
2075
  FS.createDefaultDirectories();
@@ -2080,13 +2077,13 @@ var require_wasm_bindings = __commonJS({
2080
2077
  FS.createSpecialDirectories();
2081
2078
  FS.filesystems = { MEMFS };
2082
2079
  }, init(input, output, error) {
2083
- FS.init.initialized = true;
2084
- Module["stdin"] = input || Module["stdin"];
2085
- Module["stdout"] = output || Module["stdout"];
2086
- Module["stderr"] = error || Module["stderr"];
2087
- FS.createStandardStreams();
2080
+ FS.initialized = true;
2081
+ input ??= Module["stdin"];
2082
+ output ??= Module["stdout"];
2083
+ error ??= Module["stderr"];
2084
+ FS.createStandardStreams(input, output, error);
2088
2085
  }, quit() {
2089
- FS.init.initialized = false;
2086
+ FS.initialized = false;
2090
2087
  for (var i = 0; i < FS.streams.length; i++) {
2091
2088
  var stream = FS.streams[i];
2092
2089
  if (!stream) {
@@ -2166,8 +2163,7 @@ var require_wasm_bindings = __commonJS({
2166
2163
  }, createDevice(parent, name, input, output) {
2167
2164
  var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name);
2168
2165
  var mode = FS_getMode(!!input, !!output);
2169
- if (!FS.createDevice.major)
2170
- FS.createDevice.major = 64;
2166
+ FS.createDevice.major ??= 64;
2171
2167
  var dev = FS.makedev(FS.createDevice.major++, 0);
2172
2168
  FS.registerDevice(dev, { open(stream) {
2173
2169
  stream.seekable = false;
@@ -2193,7 +2189,7 @@ var require_wasm_bindings = __commonJS({
2193
2189
  buffer[offset + i] = result;
2194
2190
  }
2195
2191
  if (bytesRead) {
2196
- stream.node.timestamp = Date.now();
2192
+ stream.node.atime = Date.now();
2197
2193
  }
2198
2194
  return bytesRead;
2199
2195
  }, write(stream, buffer, offset, length, pos) {
@@ -2205,7 +2201,7 @@ var require_wasm_bindings = __commonJS({
2205
2201
  }
2206
2202
  }
2207
2203
  if (length) {
2208
- stream.node.timestamp = Date.now();
2204
+ stream.node.mtime = stream.node.ctime = Date.now();
2209
2205
  }
2210
2206
  return i;
2211
2207
  } });
@@ -2225,10 +2221,8 @@ var require_wasm_bindings = __commonJS({
2225
2221
  }
2226
2222
  }, createLazyFile(parent, name, url, canRead, canWrite) {
2227
2223
  class LazyUint8Array {
2228
- constructor() {
2229
- this.lengthKnown = false;
2230
- this.chunks = [];
2231
- }
2224
+ lengthKnown = false;
2225
+ chunks = [];
2232
2226
  get(idx) {
2233
2227
  if (idx > this.length - 1 || idx < 0) {
2234
2228
  return void 0;
@@ -2386,7 +2380,7 @@ var require_wasm_bindings = __commonJS({
2386
2380
  }
2387
2381
  return dir;
2388
2382
  }
2389
- return PATH.join2(dir, path);
2383
+ return dir + "/" + path;
2390
2384
  }, doStat(func, path, buf) {
2391
2385
  var stat = func(path);
2392
2386
  HEAP32[buf >> 2] = stat.dev;
@@ -2402,11 +2396,11 @@ var require_wasm_bindings = __commonJS({
2402
2396
  var mtime = stat.mtime.getTime();
2403
2397
  var ctime = stat.ctime.getTime();
2404
2398
  tempI64 = [Math.floor(atime / 1e3) >>> 0, (tempDouble = Math.floor(atime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 40 >> 2] = tempI64[0], HEAP32[buf + 44 >> 2] = tempI64[1];
2405
- HEAPU32[buf + 48 >> 2] = atime % 1e3 * 1e3;
2399
+ HEAPU32[buf + 48 >> 2] = atime % 1e3 * 1e3 * 1e3;
2406
2400
  tempI64 = [Math.floor(mtime / 1e3) >>> 0, (tempDouble = Math.floor(mtime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 56 >> 2] = tempI64[0], HEAP32[buf + 60 >> 2] = tempI64[1];
2407
- HEAPU32[buf + 64 >> 2] = mtime % 1e3 * 1e3;
2401
+ HEAPU32[buf + 64 >> 2] = mtime % 1e3 * 1e3 * 1e3;
2408
2402
  tempI64 = [Math.floor(ctime / 1e3) >>> 0, (tempDouble = Math.floor(ctime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 72 >> 2] = tempI64[0], HEAP32[buf + 76 >> 2] = tempI64[1];
2409
- HEAPU32[buf + 80 >> 2] = ctime % 1e3 * 1e3;
2403
+ HEAPU32[buf + 80 >> 2] = ctime % 1e3 * 1e3 * 1e3;
2410
2404
  tempI64 = [stat.ino >>> 0, (tempDouble = stat.ino, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 88 >> 2] = tempI64[0], HEAP32[buf + 92 >> 2] = tempI64[1];
2411
2405
  return 0;
2412
2406
  }, doMsync(addr, stream, len, flags, offset) {
@@ -2425,6 +2419,41 @@ var require_wasm_bindings = __commonJS({
2425
2419
  var ret = UTF8ToString(ptr);
2426
2420
  return ret;
2427
2421
  } };
2422
+ function ___syscall_faccessat(dirfd, path, amode, flags) {
2423
+ try {
2424
+ path = SYSCALLS.getStr(path);
2425
+ path = SYSCALLS.calculateAt(dirfd, path);
2426
+ if (amode & ~7) {
2427
+ return -28;
2428
+ }
2429
+ var lookup = FS.lookupPath(path, { follow: true });
2430
+ var node = lookup.node;
2431
+ if (!node) {
2432
+ return -44;
2433
+ }
2434
+ var perms = "";
2435
+ if (amode & 4)
2436
+ perms += "r";
2437
+ if (amode & 2)
2438
+ perms += "w";
2439
+ if (amode & 1)
2440
+ perms += "x";
2441
+ if (perms && FS.nodePermissions(node, perms)) {
2442
+ return -2;
2443
+ }
2444
+ return 0;
2445
+ } catch (e) {
2446
+ if (typeof FS == "undefined" || !(e.name === "ErrnoError"))
2447
+ throw e;
2448
+ return -e.errno;
2449
+ }
2450
+ }
2451
+ var syscallGetVarargI = () => {
2452
+ var ret = HEAP32[+SYSCALLS.varargs >> 2];
2453
+ SYSCALLS.varargs += 4;
2454
+ return ret;
2455
+ };
2456
+ var syscallGetVarargP = syscallGetVarargI;
2428
2457
  function ___syscall_fcntl64(fd, cmd, varargs) {
2429
2458
  SYSCALLS.varargs = varargs;
2430
2459
  try {
@@ -2469,6 +2498,16 @@ var require_wasm_bindings = __commonJS({
2469
2498
  return -e.errno;
2470
2499
  }
2471
2500
  }
2501
+ function ___syscall_fstat64(fd, buf) {
2502
+ try {
2503
+ var stream = SYSCALLS.getStreamFromFD(fd);
2504
+ return SYSCALLS.doStat(FS.stat, stream.path, buf);
2505
+ } catch (e) {
2506
+ if (typeof FS == "undefined" || !(e.name === "ErrnoError"))
2507
+ throw e;
2508
+ return -e.errno;
2509
+ }
2510
+ }
2472
2511
  var stringToUTF8 = (str, outPtr, maxBytesToWrite) => stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
2473
2512
  function ___syscall_getcwd(buf, size) {
2474
2513
  try {
@@ -2585,13 +2624,20 @@ var require_wasm_bindings = __commonJS({
2585
2624
  return -e.errno;
2586
2625
  }
2587
2626
  }
2627
+ function ___syscall_lstat64(path, buf) {
2628
+ try {
2629
+ path = SYSCALLS.getStr(path);
2630
+ return SYSCALLS.doStat(FS.lstat, path, buf);
2631
+ } catch (e) {
2632
+ if (typeof FS == "undefined" || !(e.name === "ErrnoError"))
2633
+ throw e;
2634
+ return -e.errno;
2635
+ }
2636
+ }
2588
2637
  function ___syscall_mkdirat(dirfd, path, mode) {
2589
2638
  try {
2590
2639
  path = SYSCALLS.getStr(path);
2591
2640
  path = SYSCALLS.calculateAt(dirfd, path);
2592
- path = PATH.normalize(path);
2593
- if (path[path.length - 1] === "/")
2594
- path = path.substr(0, path.length - 1);
2595
2641
  FS.mkdir(path, mode, 0);
2596
2642
  return 0;
2597
2643
  } catch (e) {
@@ -2600,6 +2646,20 @@ var require_wasm_bindings = __commonJS({
2600
2646
  return -e.errno;
2601
2647
  }
2602
2648
  }
2649
+ function ___syscall_newfstatat(dirfd, path, buf, flags) {
2650
+ try {
2651
+ path = SYSCALLS.getStr(path);
2652
+ var nofollow = flags & 256;
2653
+ var allowEmpty = flags & 4096;
2654
+ flags = flags & ~6400;
2655
+ path = SYSCALLS.calculateAt(dirfd, path, allowEmpty);
2656
+ return SYSCALLS.doStat(nofollow ? FS.lstat : FS.stat, path, buf);
2657
+ } catch (e) {
2658
+ if (typeof FS == "undefined" || !(e.name === "ErrnoError"))
2659
+ throw e;
2660
+ return -e.errno;
2661
+ }
2662
+ }
2603
2663
  function ___syscall_openat(dirfd, path, flags, varargs) {
2604
2664
  SYSCALLS.varargs = varargs;
2605
2665
  try {
@@ -2641,9 +2701,7 @@ var require_wasm_bindings = __commonJS({
2641
2701
  return -e.errno;
2642
2702
  }
2643
2703
  }
2644
- var __abort_js = () => {
2645
- abort("");
2646
- };
2704
+ var __abort_js = () => abort("");
2647
2705
  var __embind_register_bigint = (primitiveType, name, size, minRange, maxRange) => {
2648
2706
  };
2649
2707
  var embind_init_charCodes = () => {
@@ -2674,9 +2732,7 @@ var require_wasm_bindings = __commonJS({
2674
2732
  throw new InternalError(message);
2675
2733
  };
2676
2734
  var whenDependentTypesAreResolved = (myTypes, dependentTypes, getTypeConverters) => {
2677
- myTypes.forEach(function(type) {
2678
- typeDependencies[type] = dependentTypes;
2679
- });
2735
+ myTypes.forEach((type) => typeDependencies[type] = dependentTypes);
2680
2736
  function onComplete(typeConverters2) {
2681
2737
  var myTypeConverters = getTypeConverters(typeConverters2);
2682
2738
  if (myTypeConverters.length !== myTypes.length) {
@@ -2731,9 +2787,6 @@ var require_wasm_bindings = __commonJS({
2731
2787
  }
2732
2788
  }
2733
2789
  function registerType(rawType, registeredInstance, options = {}) {
2734
- if (!("argPackAdvance" in registeredInstance)) {
2735
- throw new TypeError("registerType registeredInstance requires argPackAdvance");
2736
- }
2737
2790
  return sharedRegisterType(rawType, registeredInstance, options);
2738
2791
  }
2739
2792
  var GenericWireTypeSize = 8;
@@ -2785,37 +2838,6 @@ var require_wasm_bindings = __commonJS({
2785
2838
  return desiredClass.downcast(rv);
2786
2839
  };
2787
2840
  var registeredPointers = {};
2788
- var getInheritedInstanceCount = () => Object.keys(registeredInstances).length;
2789
- var getLiveInheritedInstances = () => {
2790
- var rv = [];
2791
- for (var k in registeredInstances) {
2792
- if (registeredInstances.hasOwnProperty(k)) {
2793
- rv.push(registeredInstances[k]);
2794
- }
2795
- }
2796
- return rv;
2797
- };
2798
- var deletionQueue = [];
2799
- var flushPendingDeletes = () => {
2800
- while (deletionQueue.length) {
2801
- var obj = deletionQueue.pop();
2802
- obj.$$.deleteScheduled = false;
2803
- obj["delete"]();
2804
- }
2805
- };
2806
- var delayFunction;
2807
- var setDelayFunction = (fn) => {
2808
- delayFunction = fn;
2809
- if (deletionQueue.length && delayFunction) {
2810
- delayFunction(flushPendingDeletes);
2811
- }
2812
- };
2813
- var init_embind = () => {
2814
- Module["getInheritedInstanceCount"] = getInheritedInstanceCount;
2815
- Module["getLiveInheritedInstances"] = getLiveInheritedInstances;
2816
- Module["flushPendingDeletes"] = flushPendingDeletes;
2817
- Module["setDelayFunction"] = setDelayFunction;
2818
- };
2819
2841
  var registeredInstances = {};
2820
2842
  var getBasestPointer = (class_, ptr) => {
2821
2843
  if (ptr === void 0) {
@@ -2909,6 +2931,15 @@ var require_wasm_bindings = __commonJS({
2909
2931
  detachFinalizer = (handle2) => finalizationRegistry.unregister(handle2);
2910
2932
  return attachFinalizer(handle);
2911
2933
  };
2934
+ var deletionQueue = [];
2935
+ var flushPendingDeletes = () => {
2936
+ while (deletionQueue.length) {
2937
+ var obj = deletionQueue.pop();
2938
+ obj.$$.deleteScheduled = false;
2939
+ obj["delete"]();
2940
+ }
2941
+ };
2942
+ var delayFunction;
2912
2943
  var init_ClassHandle = () => {
2913
2944
  Object.assign(ClassHandle.prototype, { isAliasOf(other) {
2914
2945
  if (!(this instanceof ClassHandle)) {
@@ -2996,23 +3027,18 @@ var require_wasm_bindings = __commonJS({
2996
3027
  throwBindingError(`Cannot register public name '${name}' twice`);
2997
3028
  }
2998
3029
  ensureOverloadTable(Module, name, name);
2999
- if (Module.hasOwnProperty(numArguments)) {
3030
+ if (Module[name].overloadTable.hasOwnProperty(numArguments)) {
3000
3031
  throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`);
3001
3032
  }
3002
3033
  Module[name].overloadTable[numArguments] = value;
3003
3034
  } else {
3004
3035
  Module[name] = value;
3005
- if (void 0 !== numArguments) {
3006
- Module[name].numArguments = numArguments;
3007
- }
3036
+ Module[name].argCount = numArguments;
3008
3037
  }
3009
3038
  };
3010
3039
  var char_0 = 48;
3011
3040
  var char_9 = 57;
3012
3041
  var makeLegalFunctionName = (name) => {
3013
- if (void 0 === name) {
3014
- return "_unknown";
3015
- }
3016
3042
  name = name.replace(/[^a-zA-Z0-9_]/g, "$");
3017
3043
  var f = name.charCodeAt(0);
3018
3044
  if (f >= char_0 && f <= char_9) {
@@ -3273,15 +3299,14 @@ var require_wasm_bindings = __commonJS({
3273
3299
  var __embind_register_class = (rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor) => {
3274
3300
  name = readLatin1String(name);
3275
3301
  getActualType = embind__requireFunction(getActualTypeSignature, getActualType);
3276
- upcast && (upcast = embind__requireFunction(upcastSignature, upcast));
3277
- downcast && (downcast = embind__requireFunction(downcastSignature, downcast));
3302
+ upcast &&= embind__requireFunction(upcastSignature, upcast);
3303
+ downcast &&= embind__requireFunction(downcastSignature, downcast);
3278
3304
  rawDestructor = embind__requireFunction(destructorSignature, rawDestructor);
3279
3305
  var legalFunctionName = makeLegalFunctionName(name);
3280
3306
  exposePublicSymbol(legalFunctionName, function() {
3281
3307
  throwUnboundTypeError(`Cannot construct ${name} due to unbound types`, [baseClassRawType]);
3282
3308
  });
3283
3309
  whenDependentTypesAreResolved([rawType, rawPointerType, rawConstPointerType], baseClassRawType ? [baseClassRawType] : [], (base) => {
3284
- var _a;
3285
3310
  base = base[0];
3286
3311
  var baseClass;
3287
3312
  var basePrototype;
@@ -3308,7 +3333,7 @@ var require_wasm_bindings = __commonJS({
3308
3333
  constructor.prototype = instancePrototype;
3309
3334
  var registeredClass = new RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast);
3310
3335
  if (registeredClass.baseClass) {
3311
- (_a = registeredClass.baseClass).__derivedClasses ?? (_a.__derivedClasses = []);
3336
+ registeredClass.baseClass.__derivedClasses ??= [];
3312
3337
  registeredClass.baseClass.__derivedClasses.push(registeredClass);
3313
3338
  }
3314
3339
  var referenceConverter = new RegisteredPointer(name, registeredClass, true, false, false);
@@ -3347,9 +3372,6 @@ var require_wasm_bindings = __commonJS({
3347
3372
  var invokerFuncArgs = [];
3348
3373
  var destructors = [];
3349
3374
  var invokerFn = function(...args) {
3350
- if (args.length !== expectedArgCount) {
3351
- throwBindingError(`function ${humanName} called with ${args.length} arguments, expected ${expectedArgCount}`);
3352
- }
3353
3375
  destructors.length = 0;
3354
3376
  var thisWired;
3355
3377
  invokerFuncArgs.length = isClassMethodFunc ? 2 : 1;
@@ -3398,7 +3420,7 @@ var require_wasm_bindings = __commonJS({
3398
3420
  return signature;
3399
3421
  }
3400
3422
  };
3401
- var __embind_register_class_class_function = (rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, fn, isAsync) => {
3423
+ var __embind_register_class_class_function = (rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, fn, isAsync, isNonnullReturn) => {
3402
3424
  var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
3403
3425
  methodName = readLatin1String(methodName);
3404
3426
  methodName = getFunctionName(methodName);
@@ -3464,7 +3486,7 @@ var require_wasm_bindings = __commonJS({
3464
3486
  return [];
3465
3487
  });
3466
3488
  };
3467
- var __embind_register_class_function = (rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual, isAsync) => {
3489
+ var __embind_register_class_function = (rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual, isAsync, isNonnullReturn) => {
3468
3490
  var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
3469
3491
  methodName = readLatin1String(methodName);
3470
3492
  methodName = getFunctionName(methodName);
@@ -3624,7 +3646,7 @@ var require_wasm_bindings = __commonJS({
3624
3646
  name = readLatin1String(name);
3625
3647
  registerType(rawType, { name, fromWireType: (value) => value, toWireType: (destructors, value) => value, argPackAdvance: GenericWireTypeSize, readValueFromPointer: floatReadValueFromPointer(name, size), destructorFunction: null });
3626
3648
  };
3627
- var __embind_register_function = (name, argCount, rawArgTypesAddr, signature, rawInvoker, fn, isAsync) => {
3649
+ var __embind_register_function = (name, argCount, rawArgTypesAddr, signature, rawInvoker, fn, isAsync, isNonnullReturn) => {
3628
3650
  var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
3629
3651
  name = readLatin1String(name);
3630
3652
  name = getFunctionName(name);
@@ -3688,8 +3710,9 @@ var require_wasm_bindings = __commonJS({
3688
3710
  name = readLatin1String(name);
3689
3711
  registerType(rawType, { name, fromWireType: decodeMemoryView, argPackAdvance: GenericWireTypeSize, readValueFromPointer: decodeMemoryView }, { ignoreDuplicateRegistrations: true });
3690
3712
  };
3713
+ var EmValOptionalType = Object.assign({ optional: true }, EmValType);
3691
3714
  var __embind_register_optional = (rawOptionalType, rawType) => {
3692
- __embind_register_emval(rawOptionalType);
3715
+ registerType(rawOptionalType, EmValOptionalType);
3693
3716
  };
3694
3717
  var __embind_register_smart_ptr = (rawType, rawPointeeType, name, sharingPolicy, getPointeeSignature, rawGetPointee, constructorSignature, rawConstructor, shareSignature, rawShare, destructorSignature, rawDestructor) => {
3695
3718
  name = readLatin1String(name);
@@ -3705,7 +3728,7 @@ var require_wasm_bindings = __commonJS({
3705
3728
  };
3706
3729
  var __embind_register_std_string = (rawType, name) => {
3707
3730
  name = readLatin1String(name);
3708
- var stdStringIsUTF8 = name === "std::string";
3731
+ var stdStringIsUTF8 = true;
3709
3732
  registerType(rawType, { name, fromWireType(value) {
3710
3733
  var length = HEAPU32[value >> 2];
3711
3734
  var payload = value + 4;
@@ -3798,7 +3821,7 @@ var require_wasm_bindings = __commonJS({
3798
3821
  return str;
3799
3822
  };
3800
3823
  var stringToUTF16 = (str, outPtr, maxBytesToWrite) => {
3801
- maxBytesToWrite ?? (maxBytesToWrite = 2147483647);
3824
+ maxBytesToWrite ??= 2147483647;
3802
3825
  if (maxBytesToWrite < 2)
3803
3826
  return 0;
3804
3827
  maxBytesToWrite -= 2;
@@ -3831,7 +3854,7 @@ var require_wasm_bindings = __commonJS({
3831
3854
  return str;
3832
3855
  };
3833
3856
  var stringToUTF32 = (str, outPtr, maxBytesToWrite) => {
3834
- maxBytesToWrite ?? (maxBytesToWrite = 2147483647);
3857
+ maxBytesToWrite ??= 2147483647;
3835
3858
  if (maxBytesToWrite < 4)
3836
3859
  return 0;
3837
3860
  var startPtr = outPtr;
@@ -3914,8 +3937,6 @@ var require_wasm_bindings = __commonJS({
3914
3937
  name = readLatin1String(name);
3915
3938
  registerType(rawType, { isVoid: true, name, argPackAdvance: 0, fromWireType: () => void 0, toWireType: (destructors, o) => void 0 });
3916
3939
  };
3917
- var nowIsMonotonic = 1;
3918
- var __emscripten_get_now_is_monotonic = () => nowIsMonotonic;
3919
3940
  var __emscripten_memcpy_js = (dest, src, num) => HEAPU8.copyWithin(dest, src, src + num);
3920
3941
  var emval_methodCallers = [];
3921
3942
  var __emval_call = (caller, handle, destructorsRef, args) => {
@@ -3960,7 +3981,7 @@ var require_wasm_bindings = __commonJS({
3960
3981
  var offset = 0;
3961
3982
  for (var i = 0; i < argCount; ++i) {
3962
3983
  argN[i] = types[i]["readValueFromPointer"](args + offset);
3963
- offset += types[i]["argPackAdvance"];
3984
+ offset += types[i].argPackAdvance;
3964
3985
  }
3965
3986
  var rv = kind === 1 ? reflectConstruct(func, argN) : func.apply(obj, argN);
3966
3987
  return emval_returnValue(retType, destructorsRef, rv);
@@ -4065,9 +4086,15 @@ var require_wasm_bindings = __commonJS({
4065
4086
  var stdTimezoneOffset = Math.max(winterOffset, summerOffset);
4066
4087
  HEAPU32[timezone >> 2] = stdTimezoneOffset * 60;
4067
4088
  HEAP32[daylight >> 2] = Number(winterOffset != summerOffset);
4068
- var extractZone = (date) => date.toLocaleTimeString(void 0, { hour12: false, timeZoneName: "short" }).split(" ")[1];
4069
- var winterName = extractZone(winter);
4070
- var summerName = extractZone(summer);
4089
+ var extractZone = (timezoneOffset) => {
4090
+ var sign = timezoneOffset >= 0 ? "-" : "+";
4091
+ var absOffset = Math.abs(timezoneOffset);
4092
+ var hours = String(Math.floor(absOffset / 60)).padStart(2, "0");
4093
+ var minutes = String(absOffset % 60).padStart(2, "0");
4094
+ return `UTC${sign}${hours}${minutes}`;
4095
+ };
4096
+ var winterName = extractZone(winterOffset);
4097
+ var summerName = extractZone(summerOffset);
4071
4098
  if (summerOffset < winterOffset) {
4072
4099
  stringToUTF8(winterName, std_name, 17);
4073
4100
  stringToUTF8(summerName, dst_name, 17);
@@ -4076,14 +4103,32 @@ var require_wasm_bindings = __commonJS({
4076
4103
  stringToUTF8(summerName, std_name, 17);
4077
4104
  }
4078
4105
  };
4106
+ var _emscripten_get_now = () => performance.now();
4079
4107
  var _emscripten_date_now = () => Date.now();
4108
+ var nowIsMonotonic = 1;
4109
+ var checkWasiClock = (clock_id) => clock_id >= 0 && clock_id <= 3;
4110
+ function _clock_time_get(clk_id, ignored_precision_low, ignored_precision_high, ptime) {
4111
+ var ignored_precision = convertI32PairToI53Checked(ignored_precision_low, ignored_precision_high);
4112
+ if (!checkWasiClock(clk_id)) {
4113
+ return 28;
4114
+ }
4115
+ var now;
4116
+ if (clk_id === 0) {
4117
+ now = _emscripten_date_now();
4118
+ } else if (nowIsMonotonic) {
4119
+ now = _emscripten_get_now();
4120
+ } else {
4121
+ return 52;
4122
+ }
4123
+ var nsec = Math.round(now * 1e3 * 1e3);
4124
+ tempI64 = [nsec >>> 0, (tempDouble = nsec, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[ptime >> 2] = tempI64[0], HEAP32[ptime + 4 >> 2] = tempI64[1];
4125
+ return 0;
4126
+ }
4080
4127
  var getHeapMax = () => 2147483648;
4081
4128
  var _emscripten_get_heap_max = () => getHeapMax();
4082
- var _emscripten_get_now;
4083
- _emscripten_get_now = () => performance.now();
4084
4129
  var growMemory = (size) => {
4085
4130
  var b = wasmMemory.buffer;
4086
- var pages = (size - b.byteLength + 65535) / 65536;
4131
+ var pages = (size - b.byteLength + 65535) / 65536 | 0;
4087
4132
  try {
4088
4133
  wasmMemory.grow(pages);
4089
4134
  updateMemoryViews();
@@ -4098,11 +4143,10 @@ var require_wasm_bindings = __commonJS({
4098
4143
  if (requestedSize > maxHeapSize) {
4099
4144
  return false;
4100
4145
  }
4101
- var alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple;
4102
4146
  for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {
4103
4147
  var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);
4104
4148
  overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);
4105
- var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536));
4149
+ var newSize = Math.min(maxHeapSize, alignMemory(Math.max(requestedSize, overGrownHeapSize), 65536));
4106
4150
  var replacement = growMemory(newSize);
4107
4151
  if (replacement) {
4108
4152
  return true;
@@ -4257,6 +4301,9 @@ var require_wasm_bindings = __commonJS({
4257
4301
  if (curr < 0)
4258
4302
  return -1;
4259
4303
  ret += curr;
4304
+ if (curr < len) {
4305
+ break;
4306
+ }
4260
4307
  if (typeof offset != "undefined") {
4261
4308
  offset += curr;
4262
4309
  }
@@ -4275,6 +4322,16 @@ var require_wasm_bindings = __commonJS({
4275
4322
  return e.errno;
4276
4323
  }
4277
4324
  }
4325
+ function _random_get(buffer, size) {
4326
+ try {
4327
+ randomFill(HEAPU8.subarray(buffer, buffer + size));
4328
+ return 0;
4329
+ } catch (e) {
4330
+ if (typeof FS == "undefined" || !(e.name === "ErrnoError"))
4331
+ throw e;
4332
+ return e.errno;
4333
+ }
4334
+ }
4278
4335
  var FS_createPath = FS.createPath;
4279
4336
  var FS_unlink = (path) => FS.unlink(path);
4280
4337
  var FS_createLazyFile = FS.createLazyFile;
@@ -4287,6 +4344,8 @@ var require_wasm_bindings = __commonJS({
4287
4344
  Module["FS_unlink"] = FS.unlink;
4288
4345
  Module["FS_createLazyFile"] = FS.createLazyFile;
4289
4346
  Module["FS_createDevice"] = FS.createDevice;
4347
+ MEMFS.doesNotExistError = new FS.ErrnoError(44);
4348
+ MEMFS.doesNotExistError.stack = "<generic error, no stack>";
4290
4349
  embind_init_charCodes();
4291
4350
  BindingError = Module["BindingError"] = class BindingError extends Error {
4292
4351
  constructor(message) {
@@ -4301,28 +4360,30 @@ var require_wasm_bindings = __commonJS({
4301
4360
  }
4302
4361
  };
4303
4362
  init_ClassHandle();
4304
- init_embind();
4305
4363
  init_RegisteredPointer();
4306
4364
  UnboundTypeError = Module["UnboundTypeError"] = extendError(Error, "UnboundTypeError");
4307
4365
  init_emval();
4308
- var wasmImports = { a: ___cxa_throw, q: ___syscall_fcntl64, M: ___syscall_getcwd, P: ___syscall_ioctl, I: ___syscall_mkdirat, r: ___syscall_openat, G: ___syscall_readlinkat, N: ___syscall_stat64, S: __abort_js, D: __embind_register_bigint, U: __embind_register_bool, e: __embind_register_class, s: __embind_register_class_class_function, n: __embind_register_class_constructor, g: __embind_register_class_function, m: __embind_register_class_property, T: __embind_register_emval, v: __embind_register_float, i: __embind_register_function, c: __embind_register_integer, b: __embind_register_memory_view, x: __embind_register_optional, o: __embind_register_smart_ptr, u: __embind_register_std_string, l: __embind_register_std_wstring, V: __embind_register_void, Q: __emscripten_get_now_is_monotonic, R: __emscripten_memcpy_js, X: __emval_call, d: __emval_decref, Y: __emval_get_method_caller, w: __emval_incref, W: __emval_run_destructors, h: __emval_take_value, A: __gmtime_js, B: __localtime_js, y: __mmap_js, z: __munmap_js, H: __tzset_js, t: _emscripten_date_now, F: _emscripten_get_heap_max, j: _emscripten_get_now, E: _emscripten_resize_heap, K: _environ_get, L: _environ_sizes_get, f: _exit, k: _fd_close, J: _fd_fdstat_get, O: _fd_read, C: _fd_seek, p: _fd_write };
4309
- var wasmExports = createWasm();
4310
- var ___wasm_call_ctors = () => (___wasm_call_ctors = wasmExports["_"])();
4311
- var ___getTypeName = (a0) => (___getTypeName = wasmExports["$"])(a0);
4312
- var _malloc = (a0) => (_malloc = wasmExports["ba"])(a0);
4313
- var _free = (a0) => (_free = wasmExports["ca"])(a0);
4314
- var _emscripten_builtin_memalign = (a0, a1) => (_emscripten_builtin_memalign = wasmExports["da"])(a0, a1);
4315
- var ___cxa_is_pointer_type = (a0) => (___cxa_is_pointer_type = wasmExports["ea"])(a0);
4316
- var dynCall_jjj = Module["dynCall_jjj"] = (a0, a1, a2, a3, a4) => (dynCall_jjj = Module["dynCall_jjj"] = wasmExports["fa"])(a0, a1, a2, a3, a4);
4317
- var dynCall_iiiijj = Module["dynCall_iiiijj"] = (a0, a1, a2, a3, a4, a5, a6, a7) => (dynCall_iiiijj = Module["dynCall_iiiijj"] = wasmExports["ga"])(a0, a1, a2, a3, a4, a5, a6, a7);
4318
- var dynCall_viijj = Module["dynCall_viijj"] = (a0, a1, a2, a3, a4, a5, a6) => (dynCall_viijj = Module["dynCall_viijj"] = wasmExports["ha"])(a0, a1, a2, a3, a4, a5, a6);
4319
- var dynCall_viiijjjj = Module["dynCall_viiijjjj"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) => (dynCall_viiijjjj = Module["dynCall_viiijjjj"] = wasmExports["ia"])(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
4320
- var dynCall_iji = Module["dynCall_iji"] = (a0, a1, a2, a3) => (dynCall_iji = Module["dynCall_iji"] = wasmExports["ja"])(a0, a1, a2, a3);
4321
- var dynCall_jiji = Module["dynCall_jiji"] = (a0, a1, a2, a3, a4) => (dynCall_jiji = Module["dynCall_jiji"] = wasmExports["ka"])(a0, a1, a2, a3, a4);
4322
- var dynCall_viijii = Module["dynCall_viijii"] = (a0, a1, a2, a3, a4, a5, a6) => (dynCall_viijii = Module["dynCall_viijii"] = wasmExports["la"])(a0, a1, a2, a3, a4, a5, a6);
4323
- var dynCall_iiiiij = Module["dynCall_iiiiij"] = (a0, a1, a2, a3, a4, a5, a6) => (dynCall_iiiiij = Module["dynCall_iiiiij"] = wasmExports["ma"])(a0, a1, a2, a3, a4, a5, a6);
4324
- var dynCall_iiiiijj = Module["dynCall_iiiiijj"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8) => (dynCall_iiiiijj = Module["dynCall_iiiiijj"] = wasmExports["na"])(a0, a1, a2, a3, a4, a5, a6, a7, a8);
4325
- var dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) => (dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = wasmExports["oa"])(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
4366
+ var wasmImports = { a: ___cxa_throw, V: ___syscall_faccessat, s: ___syscall_fcntl64, Q: ___syscall_fstat64, M: ___syscall_getcwd, S: ___syscall_ioctl, N: ___syscall_lstat64, I: ___syscall_mkdirat, O: ___syscall_newfstatat, t: ___syscall_openat, G: ___syscall_readlinkat, P: ___syscall_stat64, W: __abort_js, C: __embind_register_bigint, $: __embind_register_bool, e: __embind_register_class, m: __embind_register_class_class_function, r: __embind_register_class_constructor, g: __embind_register_class_function, p: __embind_register_class_property, Z: __embind_register_emval, u: __embind_register_float, h: __embind_register_function, d: __embind_register_integer, b: __embind_register_memory_view, v: __embind_register_optional, k: __embind_register_smart_ptr, _: __embind_register_std_string, o: __embind_register_std_wstring, aa: __embind_register_void, U: __emscripten_memcpy_js, ca: __emval_call, c: __emval_decref, da: __emval_get_method_caller, q: __emval_incref, ba: __emval_run_destructors, i: __emval_take_value, z: __gmtime_js, A: __localtime_js, x: __mmap_js, y: __munmap_js, H: __tzset_js, w: _clock_time_get, T: _emscripten_date_now, F: _emscripten_get_heap_max, j: _emscripten_get_now, E: _emscripten_resize_heap, K: _environ_get, L: _environ_sizes_get, f: _exit, n: _fd_close, J: _fd_fdstat_get, R: _fd_read, B: _fd_seek, l: _fd_write, X: hardware_concurrency, D: _random_get, Y: xnnLoadWasmModuleJS };
4367
+ var wasmExports;
4368
+ createWasm();
4369
+ var ___wasm_call_ctors = () => (___wasm_call_ctors = wasmExports["fa"])();
4370
+ var ___getTypeName = (a0) => (___getTypeName = wasmExports["ga"])(a0);
4371
+ var _malloc = (a0) => (_malloc = wasmExports["ia"])(a0);
4372
+ var _free = (a0) => (_free = wasmExports["ja"])(a0);
4373
+ var _emscripten_builtin_memalign = (a0, a1) => (_emscripten_builtin_memalign = wasmExports["ka"])(a0, a1);
4374
+ var dynCall_iiiijj = Module["dynCall_iiiijj"] = (a0, a1, a2, a3, a4, a5, a6, a7) => (dynCall_iiiijj = Module["dynCall_iiiijj"] = wasmExports["la"])(a0, a1, a2, a3, a4, a5, a6, a7);
4375
+ var dynCall_viijj = Module["dynCall_viijj"] = (a0, a1, a2, a3, a4, a5, a6) => (dynCall_viijj = Module["dynCall_viijj"] = wasmExports["ma"])(a0, a1, a2, a3, a4, a5, a6);
4376
+ var dynCall_viiijjj = Module["dynCall_viiijjj"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) => (dynCall_viiijjj = Module["dynCall_viiijjj"] = wasmExports["na"])(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
4377
+ var dynCall_jjj = Module["dynCall_jjj"] = (a0, a1, a2, a3, a4) => (dynCall_jjj = Module["dynCall_jjj"] = wasmExports["oa"])(a0, a1, a2, a3, a4);
4378
+ var dynCall_viijji = Module["dynCall_viijji"] = (a0, a1, a2, a3, a4, a5, a6, a7) => (dynCall_viijji = Module["dynCall_viijji"] = wasmExports["pa"])(a0, a1, a2, a3, a4, a5, a6, a7);
4379
+ var dynCall_iiijj = Module["dynCall_iiijj"] = (a0, a1, a2, a3, a4, a5, a6) => (dynCall_iiijj = Module["dynCall_iiijj"] = wasmExports["qa"])(a0, a1, a2, a3, a4, a5, a6);
4380
+ var dynCall_viijjj = Module["dynCall_viijjj"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8) => (dynCall_viijjj = Module["dynCall_viijjj"] = wasmExports["ra"])(a0, a1, a2, a3, a4, a5, a6, a7, a8);
4381
+ var dynCall_iji = Module["dynCall_iji"] = (a0, a1, a2, a3) => (dynCall_iji = Module["dynCall_iji"] = wasmExports["sa"])(a0, a1, a2, a3);
4382
+ var dynCall_jiji = Module["dynCall_jiji"] = (a0, a1, a2, a3, a4) => (dynCall_jiji = Module["dynCall_jiji"] = wasmExports["ta"])(a0, a1, a2, a3, a4);
4383
+ var dynCall_viijii = Module["dynCall_viijii"] = (a0, a1, a2, a3, a4, a5, a6) => (dynCall_viijii = Module["dynCall_viijii"] = wasmExports["ua"])(a0, a1, a2, a3, a4, a5, a6);
4384
+ var dynCall_iiiiij = Module["dynCall_iiiiij"] = (a0, a1, a2, a3, a4, a5, a6) => (dynCall_iiiiij = Module["dynCall_iiiiij"] = wasmExports["va"])(a0, a1, a2, a3, a4, a5, a6);
4385
+ var dynCall_iiiiijj = Module["dynCall_iiiiijj"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8) => (dynCall_iiiiijj = Module["dynCall_iiiiijj"] = wasmExports["wa"])(a0, a1, a2, a3, a4, a5, a6, a7, a8);
4386
+ var dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) => (dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = wasmExports["xa"])(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
4326
4387
  Module["addRunDependency"] = addRunDependency;
4327
4388
  Module["removeRunDependency"] = removeRunDependency;
4328
4389
  Module["FS_createPreloadedFile"] = FS_createPreloadedFile;
@@ -4360,10 +4421,8 @@ var require_wasm_bindings = __commonJS({
4360
4421
  }
4361
4422
  if (Module["setStatus"]) {
4362
4423
  Module["setStatus"]("Running...");
4363
- setTimeout(function() {
4364
- setTimeout(function() {
4365
- Module["setStatus"]("");
4366
- }, 1);
4424
+ setTimeout(() => {
4425
+ setTimeout(() => Module["setStatus"](""), 1);
4367
4426
  doRun();
4368
4427
  }, 1);
4369
4428
  } else {
@@ -4382,18 +4441,21 @@ var require_wasm_bindings = __commonJS({
4382
4441
  return moduleRtn;
4383
4442
  };
4384
4443
  })();
4385
- if (typeof exports === "object" && typeof module === "object")
4386
- module.exports = wav2lip3;
4387
- else if (typeof define === "function" && define["amd"])
4388
- define([], () => wav2lip3);
4389
- wav2lip3.getUrl = function(path) {
4390
- return "https://st.mycdn.me/static/audio-processing/0-0-8/" + path;
4444
+ if (typeof exports === "object" && typeof module === "object") {
4445
+ module.exports = wav2lip4;
4446
+ module.exports.default = wav2lip4;
4447
+ } else if (typeof define === "function" && define["amd"])
4448
+ define([], () => wav2lip4);
4449
+ wav2lip4.getUrl = function(path) {
4450
+ return "https://calls-sdk.cdn-vk.ru/static/audio-processing/0-0-8-dev.0848d3fd/" + path;
4391
4451
  };
4392
4452
  }
4393
4453
  });
4394
4454
 
4395
4455
  // src/utils/Logger.ts
4396
4456
  var Logger = class {
4457
+ loggerName;
4458
+ loggerFunction;
4397
4459
  constructor(loggerFunction, loggerName = "AudioEffects") {
4398
4460
  this.loggerFunction = loggerFunction;
4399
4461
  this.loggerName = loggerName;
@@ -4423,19 +4485,17 @@ function createBlobObject(functionData, args = []) {
4423
4485
 
4424
4486
  // src/processor/AudioProcessor.ts
4425
4487
  var AudioProcessor = class {
4426
- constructor() {
4427
- /**
4428
- * MediaStream, в который производится вывод результата
4429
- * обработки аудио, если при инициализации был установлен флаг isOutputStream.
4430
- */
4431
- this.outputStream = null;
4432
- this.isInitialized = false;
4433
- this.audioContext = null;
4434
- this.workletNode = null;
4435
- this.sourceNode = null;
4436
- this.logger = new Logger(() => {
4437
- });
4438
- }
4488
+ /**
4489
+ * MediaStream, в который производится вывод результата
4490
+ * обработки аудио, если при инициализации был установлен флаг isOutputStream.
4491
+ */
4492
+ outputStream = null;
4493
+ isInitialized = false;
4494
+ audioContext = null;
4495
+ workletNode = null;
4496
+ sourceNode = null;
4497
+ logger = new Logger(() => {
4498
+ });
4439
4499
  /**
4440
4500
  * @typedef {Object} AudioProcessorParams
4441
4501
  * @param {AudioProcessorParams} params
@@ -4636,20 +4696,20 @@ function vmojiLmarksVolumeWorkletFunction() {
4636
4696
  const MOUTH_OPEN_MIN = LMARKS_INIT_VECTOR[MOUTH_OPEN_INDEX];
4637
4697
  const MOUTH_OPEN_RANGE = 1 - LMARKS_INIT_VECTOR[MOUTH_OPEN_INDEX];
4638
4698
  class VmojiLmarksVolumeWorklet extends AudioWorkletProcessor {
4699
+ lastTime = 0;
4700
+ // in seconds
4701
+ frameSampleCount = 0;
4702
+ frameSampleAverage = 0;
4703
+ /**
4704
+ * Storing maximum user input volume in order to animate quiet speakers
4705
+ */
4706
+ maxInputVolume = DEFAULT_MAX_INPUT_VOLUME;
4707
+ /**
4708
+ * Counting sequence for tremolo effect while speaking with constant volume
4709
+ */
4710
+ sequence = 0;
4639
4711
  constructor() {
4640
4712
  super();
4641
- this.lastTime = 0;
4642
- // in seconds
4643
- this.frameSampleCount = 0;
4644
- this.frameSampleAverage = 0;
4645
- /**
4646
- * Storing maximum user input volume in order to animate quiet speakers
4647
- */
4648
- this.maxInputVolume = DEFAULT_MAX_INPUT_VOLUME;
4649
- /**
4650
- * Counting sequence for tremolo effect while speaking with constant volume
4651
- */
4652
- this.sequence = 0;
4653
4713
  this.port.postMessage({ type: "init" /* INIT */ });
4654
4714
  }
4655
4715
  process(inputList) {
@@ -4689,15 +4749,12 @@ function vmojiLmarksVolumeWorkletFunction() {
4689
4749
 
4690
4750
  // src/effects/EffectVmojiLmarksVolume.ts
4691
4751
  var EffectVmojiLmarksVolume = class extends AudioProcessor {
4692
- constructor() {
4693
- super(...arguments);
4694
- /**
4695
- * Коллбек, вызывающийся при генерации очередной серии точек Vmoji
4696
- * @param {ArrayBuffer} data - точки Vmoji
4697
- */
4698
- this.onData = () => {
4699
- };
4700
- }
4752
+ /**
4753
+ * Коллбек, вызывающийся при генерации очередной серии точек Vmoji
4754
+ * @param {ArrayBuffer} data - точки Vmoji
4755
+ */
4756
+ onData = () => {
4757
+ };
4701
4758
  async init() {
4702
4759
  await super.init({
4703
4760
  workletFunction: vmojiLmarksVolumeWorkletFunction,
@@ -4714,11 +4771,8 @@ var import_audio_processing = __toESM(require_wasm_bindings());
4714
4771
 
4715
4772
  // src/processor/WorkerAudioProcessor.ts
4716
4773
  var WorkerAudioProcessor = class extends AudioProcessor {
4717
- constructor() {
4718
- super(...arguments);
4719
- this.worker = null;
4720
- this.performanceMonitor = null;
4721
- }
4774
+ worker = null;
4775
+ performanceMonitor = null;
4722
4776
  /**
4723
4777
  * @typedef {Object} WorkerAudioProcessorParams
4724
4778
  * @param {WorkerAudioProcessorParams} params
@@ -4822,15 +4876,12 @@ function pureWorkletFunction() {
4822
4876
  // src/effects/EffectVmojiLmarksAi.ts
4823
4877
  var VMOJI_LMARKS_AI_SAMPLE_RATE = 16e3;
4824
4878
  var EffectVmojiLmarksAi = class extends WorkerAudioProcessor {
4825
- constructor() {
4826
- super(...arguments);
4827
- /**
4828
- * Коллбек, вызывающийся при генерации очередной серии точек Vmoji
4829
- * @param {ArrayBuffer} data - точки Vmoji
4830
- */
4831
- this.onData = () => {
4832
- };
4833
- }
4879
+ /**
4880
+ * Коллбек, вызывающийся при генерации очередной серии точек Vmoji
4881
+ * @param {ArrayBuffer} data - точки Vmoji
4882
+ */
4883
+ onData = () => {
4884
+ };
4834
4885
  async init() {
4835
4886
  await super.init({
4836
4887
  sampleRate: VMOJI_LMARKS_AI_SAMPLE_RATE,
@@ -4858,30 +4909,42 @@ var EffectVmojiLmarksAi = class extends WorkerAudioProcessor {
4858
4909
  };
4859
4910
 
4860
4911
  // src/effects/EffectVadAi.ts
4912
+ var import_audio_processing2 = __toESM(require_wasm_bindings());
4861
4913
  var VAD_SAMPLE_RATE = 16e3;
4862
- var MODEL_URL = "https://calls-sdk.cdn-vk.ru/models/bcresnet_no_center_mult2_20ms.onnx";
4863
- var MODEL_DATA_URL = "https://calls-sdk.cdn-vk.ru/models/bcresnet_no_center_mult2_20ms.onnx.data";
4864
- var ORT_WASM_URL = "https://calls-sdk.cdn-vk.ru/vendor/onnxruntime-web/ort-wasm-simd-threaded.wasm";
4865
- var ORT_MJS_URL = "https://calls-sdk.cdn-vk.ru/vendor/onnxruntime-web/ort-wasm-simd-threaded.mjs";
4914
+ var DEFAULT_VAD_AI_URLS = {
4915
+ modelUrl: "https://calls-sdk.cdn-vk.ru/models/bcresnet_no_center_mult2_20ms.onnx",
4916
+ modelDataUrl: "https://calls-sdk.cdn-vk.ru/models/bcresnet_no_center_mult2_20ms.onnx.data",
4917
+ ortWasmUrl: "https://calls-sdk.cdn-vk.ru/vendor/onnxruntime-web/ort-wasm-simd-threaded.wasm",
4918
+ ortMjsUrl: "https://calls-sdk.cdn-vk.ru/vendor/onnxruntime-web/ort-wasm-simd-threaded.mjs"
4919
+ };
4866
4920
  var EffectVadAi = class extends WorkerAudioProcessor {
4867
- constructor() {
4868
- super(...arguments);
4869
- this.onData = () => {
4870
- };
4921
+ onData = () => {
4922
+ };
4923
+ _modelType;
4924
+ _modelUrl;
4925
+ _modelDataUrl;
4926
+ _ortWasmUrl;
4927
+ _ortMjsUrl;
4928
+ constructor(options) {
4929
+ super();
4930
+ this._modelType = options?.modelType ?? "onnx";
4931
+ this._modelUrl = options?.modelUrl ?? DEFAULT_VAD_AI_URLS.modelUrl;
4932
+ this._modelDataUrl = options?.modelDataUrl ?? DEFAULT_VAD_AI_URLS.modelDataUrl;
4933
+ this._ortWasmUrl = options?.ortWasmUrl ?? DEFAULT_VAD_AI_URLS.ortWasmUrl;
4934
+ this._ortMjsUrl = options?.ortMjsUrl ?? DEFAULT_VAD_AI_URLS.ortMjsUrl;
4871
4935
  }
4872
4936
  async init() {
4937
+ const isTflite = this._modelType === "tflite";
4873
4938
  await super.init({
4874
4939
  sampleRate: VAD_SAMPLE_RATE,
4875
4940
  workletFunction: pureWorkletFunction,
4876
4941
  workletName: "pureWorklet",
4877
- workerFunctionString: '"use strict";\nvar exports = (() => {\n var __defProp = Object.defineProperty;\n var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n var __getOwnPropNames = Object.getOwnPropertyNames;\n var __hasOwnProp = Object.prototype.hasOwnProperty;\n var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\n var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {\n get: (a, b) => (typeof require !== "undefined" ? require : a)[b]\n }) : x)(function(x) {\n if (typeof require !== "undefined")\n return require.apply(this, arguments);\n throw new Error(\'Dynamic require of "\' + x + \'" is not supported\');\n });\n var __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n };\n var __copyProps = (to2, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to2, key) && key !== except)\n __defProp(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to2;\n };\n var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);\n var __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);\n return value;\n };\n\n // src/workers/VadAiWorker.ts\n var VadAiWorker_exports = {};\n __export(VadAiWorker_exports, {\n default: () => VadAiWorker_default\n });\n\n // node_modules/onnxruntime-web/dist/ort.wasm.bundle.min.mjs\n var import_meta = {};\n var Jt = Object.defineProperty;\n var Xa = Object.getOwnPropertyDescriptor;\n var Qa = Object.getOwnPropertyNames;\n var Za = Object.prototype.hasOwnProperty;\n var qt = ((n) => typeof __require < "u" ? __require : typeof Proxy < "u" ? new Proxy(n, { get: (t, a) => (typeof __require < "u" ? __require : t)[a] }) : n)(function(n) {\n if (typeof __require < "u")\n return __require.apply(this, arguments);\n throw Error(\'Dynamic require of "\' + n + \'" is not supported\');\n });\n var N = (n, t) => () => (n && (t = n(n = 0)), t);\n var ut = (n, t) => {\n for (var a in t)\n Jt(n, a, { get: t[a], enumerable: true });\n };\n var Ka = (n, t, a, u) => {\n if (t && typeof t == "object" || typeof t == "function")\n for (let o of Qa(t))\n !Za.call(n, o) && o !== a && Jt(n, o, { get: () => t[o], enumerable: !(u = Xa(t, o)) || u.enumerable });\n return n;\n };\n var Xt = (n) => Ka(Jt({}, "__esModule", { value: true }), n);\n var ft;\n var Be;\n var qe;\n var es;\n var dr;\n var Qt = N(() => {\n "use strict";\n ft = /* @__PURE__ */ new Map(), Be = [], qe = (n, t, a) => {\n if (t && typeof t.init == "function" && typeof t.createInferenceSessionHandler == "function") {\n let u = ft.get(n);\n if (u === void 0)\n ft.set(n, { backend: t, priority: a });\n else {\n if (u.priority > a)\n return;\n if (u.priority === a && u.backend !== t)\n throw new Error(`cannot register backend "${n}" using priority ${a}`);\n }\n if (a >= 0) {\n let o = Be.indexOf(n);\n o !== -1 && Be.splice(o, 1);\n for (let d = 0; d < Be.length; d++)\n if (ft.get(Be[d]).priority <= a) {\n Be.splice(d, 0, n);\n return;\n }\n Be.push(n);\n }\n return;\n }\n throw new TypeError("not a valid backend");\n }, es = async (n) => {\n let t = ft.get(n);\n if (!t)\n return "backend not found.";\n if (t.initialized)\n return t.backend;\n if (t.aborted)\n return t.error;\n {\n let a = !!t.initPromise;\n try {\n return a || (t.initPromise = t.backend.init(n)), await t.initPromise, t.initialized = true, t.backend;\n } catch (u) {\n return a || (t.error = `${u}`, t.aborted = true), t.error;\n } finally {\n delete t.initPromise;\n }\n }\n }, dr = async (n) => {\n let t = n.executionProviders || [], a = t.map((m) => typeof m == "string" ? m : m.name), u = a.length === 0 ? Be : a, o, d = [], c = /* @__PURE__ */ new Set();\n for (let m of u) {\n let h = await es(m);\n typeof h == "string" ? d.push({ name: m, err: h }) : (o || (o = h), o === h && c.add(m));\n }\n if (!o)\n throw new Error(`no available backend found. ERR: ${d.map((m) => `[${m.name}] ${m.err}`).join(", ")}`);\n for (let { name: m, err: h } of d)\n a.includes(m) && console.warn(`removing requested execution provider "${m}" from session options because it is not available: ${h}`);\n let l = t.filter((m) => c.has(typeof m == "string" ? m : m.name));\n return [o, new Proxy(n, { get: (m, h) => h === "executionProviders" ? l : Reflect.get(m, h) })];\n };\n });\n var pr = N(() => {\n "use strict";\n Qt();\n });\n var mr;\n var hr = N(() => {\n "use strict";\n mr = "1.26.0";\n });\n var wr;\n var J;\n var Zt = N(() => {\n "use strict";\n hr();\n wr = "warning", J = { wasm: {}, webgl: {}, webgpu: {}, versions: { common: mr }, set logLevel(n) {\n if (n !== void 0) {\n if (typeof n != "string" || ["verbose", "info", "warning", "error", "fatal"].indexOf(n) === -1)\n throw new Error(`Unsupported logging level: ${n}`);\n wr = n;\n }\n }, get logLevel() {\n return wr;\n } };\n Object.defineProperty(J, "logLevel", { enumerable: true });\n });\n var Y;\n var br = N(() => {\n "use strict";\n Zt();\n Y = J;\n });\n var yr;\n var gr;\n var Er = N(() => {\n "use strict";\n yr = (n, t) => {\n let a = typeof document < "u" ? document.createElement("canvas") : new OffscreenCanvas(1, 1);\n a.width = n.dims[3], a.height = n.dims[2];\n let u = a.getContext("2d");\n if (u != null) {\n let o, d;\n t?.tensorLayout !== void 0 && t.tensorLayout === "NHWC" ? (o = n.dims[2], d = n.dims[3]) : (o = n.dims[3], d = n.dims[2]);\n let c = t?.format !== void 0 ? t.format : "RGB", l = t?.norm, m, h;\n l === void 0 || l.mean === void 0 ? m = [255, 255, 255, 255] : typeof l.mean == "number" ? m = [l.mean, l.mean, l.mean, l.mean] : (m = [l.mean[0], l.mean[1], l.mean[2], 0], l.mean[3] !== void 0 && (m[3] = l.mean[3])), l === void 0 || l.bias === void 0 ? h = [0, 0, 0, 0] : typeof l.bias == "number" ? h = [l.bias, l.bias, l.bias, l.bias] : (h = [l.bias[0], l.bias[1], l.bias[2], 0], l.bias[3] !== void 0 && (h[3] = l.bias[3]));\n let g = d * o, b = 0, y = g, T = g * 2, I = -1;\n c === "RGBA" ? (b = 0, y = g, T = g * 2, I = g * 3) : c === "RGB" ? (b = 0, y = g, T = g * 2) : c === "RBG" && (b = 0, T = g, y = g * 2);\n for (let D = 0; D < d; D++)\n for (let z = 0; z < o; z++) {\n let v = (n.data[b++] - h[0]) * m[0], O = (n.data[y++] - h[1]) * m[1], F = (n.data[T++] - h[2]) * m[2], _ = I === -1 ? 255 : (n.data[I++] - h[3]) * m[3];\n u.fillStyle = "rgba(" + v + "," + O + "," + F + "," + _ + ")", u.fillRect(z, D, 1, 1);\n }\n if ("toDataURL" in a)\n return a.toDataURL();\n throw new Error("toDataURL is not supported");\n } else\n throw new Error("Can not access image data");\n }, gr = (n, t) => {\n let a = typeof document < "u" ? document.createElement("canvas").getContext("2d") : new OffscreenCanvas(1, 1).getContext("2d"), u;\n if (a != null) {\n let o, d, c;\n t?.tensorLayout !== void 0 && t.tensorLayout === "NHWC" ? (o = n.dims[2], d = n.dims[1], c = n.dims[3]) : (o = n.dims[3], d = n.dims[2], c = n.dims[1]);\n let l = t !== void 0 && t.format !== void 0 ? t.format : "RGB", m = t?.norm, h, g;\n m === void 0 || m.mean === void 0 ? h = [255, 255, 255, 255] : typeof m.mean == "number" ? h = [m.mean, m.mean, m.mean, m.mean] : (h = [m.mean[0], m.mean[1], m.mean[2], 255], m.mean[3] !== void 0 && (h[3] = m.mean[3])), m === void 0 || m.bias === void 0 ? g = [0, 0, 0, 0] : typeof m.bias == "number" ? g = [m.bias, m.bias, m.bias, m.bias] : (g = [m.bias[0], m.bias[1], m.bias[2], 0], m.bias[3] !== void 0 && (g[3] = m.bias[3]));\n let b = d * o;\n if (t !== void 0 && (t.format !== void 0 && c === 4 && t.format !== "RGBA" || c === 3 && t.format !== "RGB" && t.format !== "BGR"))\n throw new Error("Tensor format doesn\'t match input tensor dims");\n let y = 4, T = 0, I = 1, D = 2, z = 3, v = 0, O = b, F = b * 2, _ = -1;\n l === "RGBA" ? (v = 0, O = b, F = b * 2, _ = b * 3) : l === "RGB" ? (v = 0, O = b, F = b * 2) : l === "RBG" && (v = 0, F = b, O = b * 2), u = a.createImageData(o, d);\n for (let k = 0; k < d * o; T += y, I += y, D += y, z += y, k++)\n u.data[T] = (n.data[v++] - g[0]) * h[0], u.data[I] = (n.data[O++] - g[1]) * h[1], u.data[D] = (n.data[F++] - g[2]) * h[2], u.data[z] = _ === -1 ? 255 : (n.data[_++] - g[3]) * h[3];\n } else\n throw new Error("Can not access image data");\n return u;\n };\n });\n var Kt;\n var Tr;\n var Sr;\n var vr;\n var Or;\n var Ar;\n var Ir = N(() => {\n "use strict";\n ct();\n Kt = (n, t) => {\n if (n === void 0)\n throw new Error("Image buffer must be defined");\n if (t.height === void 0 || t.width === void 0)\n throw new Error("Image height and width must be defined");\n if (t.tensorLayout === "NHWC")\n throw new Error("NHWC Tensor layout is not supported yet");\n let { height: a, width: u } = t, o = t.norm ?? { mean: 255, bias: 0 }, d, c;\n typeof o.mean == "number" ? d = [o.mean, o.mean, o.mean, o.mean] : d = [o.mean[0], o.mean[1], o.mean[2], o.mean[3] ?? 255], typeof o.bias == "number" ? c = [o.bias, o.bias, o.bias, o.bias] : c = [o.bias[0], o.bias[1], o.bias[2], o.bias[3] ?? 0];\n let l = t.format !== void 0 ? t.format : "RGBA", m = t.tensorFormat !== void 0 && t.tensorFormat !== void 0 ? t.tensorFormat : "RGB", h = a * u, g = m === "RGBA" ? new Float32Array(h * 4) : new Float32Array(h * 3), b = 4, y = 0, T = 1, I = 2, D = 3, z = 0, v = h, O = h * 2, F = -1;\n l === "RGB" && (b = 3, y = 0, T = 1, I = 2, D = -1), m === "RGBA" ? F = h * 3 : m === "RBG" ? (z = 0, O = h, v = h * 2) : m === "BGR" && (O = 0, v = h, z = h * 2);\n for (let k = 0; k < h; k++, y += b, I += b, T += b, D += b)\n g[z++] = (n[y] + c[0]) / d[0], g[v++] = (n[T] + c[1]) / d[1], g[O++] = (n[I] + c[2]) / d[2], F !== -1 && D !== -1 && (g[F++] = (n[D] + c[3]) / d[3]);\n return m === "RGBA" ? new Q("float32", g, [1, 4, a, u]) : new Q("float32", g, [1, 3, a, u]);\n }, Tr = async (n, t) => {\n let a = typeof HTMLImageElement < "u" && n instanceof HTMLImageElement, u = typeof ImageData < "u" && n instanceof ImageData, o = typeof ImageBitmap < "u" && n instanceof ImageBitmap, d = typeof n == "string", c, l = t ?? {}, m = () => {\n if (typeof document < "u")\n return document.createElement("canvas");\n if (typeof OffscreenCanvas < "u")\n return new OffscreenCanvas(1, 1);\n throw new Error("Canvas is not supported");\n }, h = (g) => typeof HTMLCanvasElement < "u" && g instanceof HTMLCanvasElement || g instanceof OffscreenCanvas ? g.getContext("2d") : null;\n if (a) {\n let g = m();\n g.width = n.width, g.height = n.height;\n let b = h(g);\n if (b != null) {\n let y = n.height, T = n.width;\n if (t !== void 0 && t.resizedHeight !== void 0 && t.resizedWidth !== void 0 && (y = t.resizedHeight, T = t.resizedWidth), t !== void 0) {\n if (l = t, t.tensorFormat !== void 0)\n throw new Error("Image input config format must be RGBA for HTMLImageElement");\n l.tensorFormat = "RGBA", l.height = y, l.width = T;\n } else\n l.tensorFormat = "RGBA", l.height = y, l.width = T;\n b.drawImage(n, 0, 0), c = b.getImageData(0, 0, T, y).data;\n } else\n throw new Error("Can not access image data");\n } else if (u) {\n let g, b;\n if (t !== void 0 && t.resizedWidth !== void 0 && t.resizedHeight !== void 0 ? (g = t.resizedHeight, b = t.resizedWidth) : (g = n.height, b = n.width), t !== void 0 && (l = t), l.format = "RGBA", l.height = g, l.width = b, t !== void 0) {\n let y = m();\n y.width = b, y.height = g;\n let T = h(y);\n if (T != null)\n T.putImageData(n, 0, 0), c = T.getImageData(0, 0, b, g).data;\n else\n throw new Error("Can not access image data");\n } else\n c = n.data;\n } else if (o) {\n if (t === void 0)\n throw new Error("Please provide image config with format for Imagebitmap");\n let g = m();\n g.width = n.width, g.height = n.height;\n let b = h(g);\n if (b != null) {\n let y = n.height, T = n.width;\n return b.drawImage(n, 0, 0, T, y), c = b.getImageData(0, 0, T, y).data, l.height = y, l.width = T, Kt(c, l);\n } else\n throw new Error("Can not access image data");\n } else {\n if (d)\n return new Promise((g, b) => {\n let y = m(), T = h(y);\n if (!n || !T)\n return b();\n let I = new Image();\n I.crossOrigin = "Anonymous", I.src = n, I.onload = () => {\n y.width = I.width, y.height = I.height, T.drawImage(I, 0, 0, y.width, y.height);\n let D = T.getImageData(0, 0, y.width, y.height);\n l.height = y.height, l.width = y.width, g(Kt(D.data, l));\n };\n });\n throw new Error("Input data provided is not supported - aborted tensor creation");\n }\n if (c !== void 0)\n return Kt(c, l);\n throw new Error("Input data provided is not supported - aborted tensor creation");\n }, Sr = (n, t) => {\n let { width: a, height: u, download: o, dispose: d } = t, c = [1, u, a, 4];\n return new Q({ location: "texture", type: "float32", texture: n, dims: c, download: o, dispose: d });\n }, vr = (n, t) => {\n let { dataType: a, dims: u, download: o, dispose: d } = t;\n return new Q({ location: "gpu-buffer", type: a ?? "float32", gpuBuffer: n, dims: u, download: o, dispose: d });\n }, Or = (n, t) => {\n let { dataType: a, dims: u, download: o, dispose: d } = t;\n return new Q({ location: "ml-tensor", type: a ?? "float32", mlTensor: n, dims: u, download: o, dispose: d });\n }, Ar = (n, t, a) => new Q({ location: "cpu-pinned", type: n, data: t, dims: a ?? [t.length] });\n });\n var Le;\n var Xe;\n var Br;\n var Lr;\n var _r = N(() => {\n "use strict";\n Le = /* @__PURE__ */ new Map([["float32", Float32Array], ["uint8", Uint8Array], ["int8", Int8Array], ["uint16", Uint16Array], ["int16", Int16Array], ["int32", Int32Array], ["bool", Uint8Array], ["float64", Float64Array], ["uint32", Uint32Array], ["int4", Uint8Array], ["uint4", Uint8Array]]), Xe = /* @__PURE__ */ new Map([[Float32Array, "float32"], [Uint8Array, "uint8"], [Int8Array, "int8"], [Uint16Array, "uint16"], [Int16Array, "int16"], [Int32Array, "int32"], [Float64Array, "float64"], [Uint32Array, "uint32"]]), Br = false, Lr = () => {\n if (!Br) {\n Br = true;\n let n = typeof BigInt64Array < "u" && BigInt64Array.from, t = typeof BigUint64Array < "u" && BigUint64Array.from, a = globalThis.Float16Array, u = typeof a < "u" && a.from;\n n && (Le.set("int64", BigInt64Array), Xe.set(BigInt64Array, "int64")), t && (Le.set("uint64", BigUint64Array), Xe.set(BigUint64Array, "uint64")), u ? (Le.set("float16", a), Xe.set(a, "float16")) : Le.set("float16", Uint16Array);\n }\n };\n });\n var Pr;\n var Dr;\n var Ur = N(() => {\n "use strict";\n ct();\n Pr = (n) => {\n let t = 1;\n for (let a = 0; a < n.length; a++) {\n let u = n[a];\n if (typeof u != "number" || !Number.isSafeInteger(u))\n throw new TypeError(`dims[${a}] must be an integer, got: ${u}`);\n if (u < 0)\n throw new RangeError(`dims[${a}] must be a non-negative integer, got: ${u}`);\n t *= u;\n }\n return t;\n }, Dr = (n, t) => {\n switch (n.location) {\n case "cpu":\n return new Q(n.type, n.data, t);\n case "cpu-pinned":\n return new Q({ location: "cpu-pinned", data: n.data, type: n.type, dims: t });\n case "texture":\n return new Q({ location: "texture", texture: n.texture, type: n.type, dims: t });\n case "gpu-buffer":\n return new Q({ location: "gpu-buffer", gpuBuffer: n.gpuBuffer, type: n.type, dims: t });\n case "ml-tensor":\n return new Q({ location: "ml-tensor", mlTensor: n.mlTensor, type: n.type, dims: t });\n default:\n throw new Error(`tensorReshape: tensor location ${n.location} is not supported`);\n }\n };\n });\n var Q;\n var ct = N(() => {\n "use strict";\n Er();\n Ir();\n _r();\n Ur();\n Q = class {\n constructor(t, a, u) {\n Lr();\n let o, d;\n if (typeof t == "object" && "location" in t)\n switch (this.dataLocation = t.location, o = t.type, d = t.dims, t.location) {\n case "cpu-pinned": {\n let l = Le.get(o);\n if (!l)\n throw new TypeError(`unsupported type "${o}" to create tensor from pinned buffer`);\n if (!(t.data instanceof l))\n throw new TypeError(`buffer should be of type ${l.name}`);\n this.cpuData = t.data;\n break;\n }\n case "texture": {\n if (o !== "float32")\n throw new TypeError(`unsupported type "${o}" to create tensor from texture`);\n this.gpuTextureData = t.texture, this.downloader = t.download, this.disposer = t.dispose;\n break;\n }\n case "gpu-buffer": {\n if (o !== "float32" && o !== "float16" && o !== "int32" && o !== "int64" && o !== "uint32" && o !== "uint8" && o !== "bool" && o !== "uint4" && o !== "int4")\n throw new TypeError(`unsupported type "${o}" to create tensor from gpu buffer`);\n this.gpuBufferData = t.gpuBuffer, this.downloader = t.download, this.disposer = t.dispose;\n break;\n }\n case "ml-tensor": {\n if (o !== "float32" && o !== "float16" && o !== "int32" && o !== "int64" && o !== "uint32" && o !== "uint64" && o !== "int8" && o !== "uint8" && o !== "bool" && o !== "uint4" && o !== "int4")\n throw new TypeError(`unsupported type "${o}" to create tensor from MLTensor`);\n this.mlTensorData = t.mlTensor, this.downloader = t.download, this.disposer = t.dispose;\n break;\n }\n default:\n throw new Error(`Tensor constructor: unsupported location \'${this.dataLocation}\'`);\n }\n else {\n let l, m;\n if (typeof t == "string")\n if (o = t, m = u, t === "string") {\n if (!Array.isArray(a))\n throw new TypeError("A string tensor\'s data must be a string array.");\n l = a;\n } else {\n let h = Le.get(t);\n if (h === void 0)\n throw new TypeError(`Unsupported tensor type: ${t}.`);\n if (Array.isArray(a)) {\n if (t === "float16" && h === Uint16Array || t === "uint4" || t === "int4")\n throw new TypeError(`Creating a ${t} tensor from number array is not supported. Please use ${h.name} as data.`);\n t === "uint64" || t === "int64" ? l = h.from(a, BigInt) : l = h.from(a);\n } else if (a instanceof h)\n l = a;\n else if (a instanceof Uint8ClampedArray)\n if (t === "uint8")\n l = Uint8Array.from(a);\n else\n throw new TypeError("A Uint8ClampedArray tensor\'s data must be type of uint8");\n else if (t === "float16" && a instanceof Uint16Array && h !== Uint16Array)\n l = new globalThis.Float16Array(a.buffer, a.byteOffset, a.length);\n else\n throw new TypeError(`A ${o} tensor\'s data must be type of ${h}`);\n }\n else if (m = a, Array.isArray(t)) {\n if (t.length === 0)\n throw new TypeError("Tensor type cannot be inferred from an empty array.");\n let h = typeof t[0];\n if (h === "string")\n o = "string", l = t;\n else if (h === "boolean")\n o = "bool", l = Uint8Array.from(t);\n else\n throw new TypeError(`Invalid element type of data array: ${h}.`);\n } else if (t instanceof Uint8ClampedArray)\n o = "uint8", l = Uint8Array.from(t);\n else {\n let h = Xe.get(t.constructor);\n if (h === void 0)\n throw new TypeError(`Unsupported type for tensor data: ${t.constructor}.`);\n o = h, l = t;\n }\n if (m === void 0)\n m = [l.length];\n else if (!Array.isArray(m))\n throw new TypeError("A tensor\'s dims must be a number array");\n d = m, this.cpuData = l, this.dataLocation = "cpu";\n }\n let c = Pr(d);\n if (this.cpuData && c !== this.cpuData.length && !((o === "uint4" || o === "int4") && Math.ceil(c / 2) === this.cpuData.length))\n throw new Error(`Tensor\'s size(${c}) does not match data length(${this.cpuData.length}).`);\n this.type = o, this.dims = d, this.size = c;\n }\n static async fromImage(t, a) {\n return Tr(t, a);\n }\n static fromTexture(t, a) {\n return Sr(t, a);\n }\n static fromGpuBuffer(t, a) {\n return vr(t, a);\n }\n static fromMLTensor(t, a) {\n return Or(t, a);\n }\n static fromPinnedBuffer(t, a, u) {\n return Ar(t, a, u);\n }\n toDataURL(t) {\n return yr(this, t);\n }\n toImageData(t) {\n return gr(this, t);\n }\n get data() {\n if (this.ensureValid(), !this.cpuData)\n throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");\n return this.cpuData;\n }\n get location() {\n return this.dataLocation;\n }\n get texture() {\n if (this.ensureValid(), !this.gpuTextureData)\n throw new Error("The data is not stored as a WebGL texture.");\n return this.gpuTextureData;\n }\n get gpuBuffer() {\n if (this.ensureValid(), !this.gpuBufferData)\n throw new Error("The data is not stored as a WebGPU buffer.");\n return this.gpuBufferData;\n }\n get mlTensor() {\n if (this.ensureValid(), !this.mlTensorData)\n throw new Error("The data is not stored as a WebNN MLTensor.");\n return this.mlTensorData;\n }\n async getData(t) {\n switch (this.ensureValid(), this.dataLocation) {\n case "cpu":\n case "cpu-pinned":\n return this.data;\n case "texture":\n case "gpu-buffer":\n case "ml-tensor": {\n if (!this.downloader)\n throw new Error("The current tensor is not created with a specified data downloader.");\n if (this.isDownloading)\n throw new Error("The current tensor is being downloaded.");\n try {\n this.isDownloading = true;\n let a = await this.downloader();\n return this.downloader = void 0, this.dataLocation = "cpu", this.cpuData = a, t && this.disposer && (this.disposer(), this.disposer = void 0), a;\n } finally {\n this.isDownloading = false;\n }\n }\n default:\n throw new Error(`cannot get data from location: ${this.dataLocation}`);\n }\n }\n dispose() {\n if (this.isDownloading)\n throw new Error("The current tensor is being downloaded.");\n this.disposer && (this.disposer(), this.disposer = void 0), this.cpuData = void 0, this.gpuTextureData = void 0, this.gpuBufferData = void 0, this.mlTensorData = void 0, this.downloader = void 0, this.isDownloading = void 0, this.dataLocation = "none";\n }\n ensureValid() {\n if (this.dataLocation === "none")\n throw new Error("The tensor is disposed.");\n }\n reshape(t) {\n if (this.ensureValid(), this.downloader || this.disposer)\n throw new Error("Cannot reshape a tensor that owns GPU resource.");\n return Dr(this, t);\n }\n };\n });\n var de;\n var en = N(() => {\n "use strict";\n ct();\n de = Q;\n });\n var xr;\n var Mr;\n var _e;\n var Pe;\n var De;\n var Ue;\n var tn = N(() => {\n "use strict";\n Zt();\n xr = (n, t) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || console.timeStamp(`${n}::ORT::${t}`);\n }, Mr = (n, t) => {\n let a = new Error().stack?.split(/\\r\\n|\\r|\\n/g) || [], u = false;\n for (let o = 0; o < a.length; o++) {\n if (u && !a[o].includes("TRACE_FUNC")) {\n let d = `FUNC_${n}::${a[o].trim().split(" ")[1]}`;\n t && (d += `::${t}`), xr("CPU", d);\n return;\n }\n a[o].includes("TRACE_FUNC") && (u = true);\n }\n }, _e = (n) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || Mr("BEGIN", n);\n }, Pe = (n) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || Mr("END", n);\n }, De = (n) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || console.time(`ORT::${n}`);\n }, Ue = (n) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || console.timeEnd(`ORT::${n}`);\n };\n });\n var lt;\n var Cr = N(() => {\n "use strict";\n Qt();\n en();\n tn();\n lt = class n {\n constructor(t) {\n this.handler = t;\n }\n async run(t, a, u) {\n _e(), De("InferenceSession.run");\n let o = {}, d = {};\n if (typeof t != "object" || t === null || t instanceof de || Array.isArray(t))\n throw new TypeError("\'feeds\' must be an object that use input names as keys and OnnxValue as corresponding values.");\n let c = true;\n if (typeof a == "object") {\n if (a === null)\n throw new TypeError("Unexpected argument[1]: cannot be null.");\n if (a instanceof de)\n throw new TypeError("\'fetches\' cannot be a Tensor");\n if (Array.isArray(a)) {\n if (a.length === 0)\n throw new TypeError("\'fetches\' cannot be an empty array.");\n c = false;\n for (let h of a) {\n if (typeof h != "string")\n throw new TypeError("\'fetches\' must be a string array or an object.");\n if (this.outputNames.indexOf(h) === -1)\n throw new RangeError(`\'fetches\' contains invalid output name: ${h}.`);\n o[h] = null;\n }\n if (typeof u == "object" && u !== null)\n d = u;\n else if (typeof u < "u")\n throw new TypeError("\'options\' must be an object.");\n } else {\n let h = false, g = Object.getOwnPropertyNames(a);\n for (let b of this.outputNames)\n if (g.indexOf(b) !== -1) {\n let y = a[b];\n (y === null || y instanceof de) && (h = true, c = false, o[b] = y);\n }\n if (h) {\n if (typeof u == "object" && u !== null)\n d = u;\n else if (typeof u < "u")\n throw new TypeError("\'options\' must be an object.");\n } else\n d = a;\n }\n } else if (typeof a < "u")\n throw new TypeError("Unexpected argument[1]: must be \'fetches\' or \'options\'.");\n for (let h of this.inputNames)\n if (typeof t[h] > "u")\n throw new Error(`input \'${h}\' is missing in \'feeds\'.`);\n if (c)\n for (let h of this.outputNames)\n o[h] = null;\n let l = await this.handler.run(t, o, d), m = {};\n for (let h in l)\n if (Object.hasOwnProperty.call(l, h)) {\n let g = l[h];\n g instanceof de ? m[h] = g : m[h] = new de(g.type, g.data, g.dims);\n }\n return Ue("InferenceSession.run"), Pe(), m;\n }\n async release() {\n return this.handler.dispose();\n }\n static async create(t, a, u, o) {\n _e(), De("InferenceSession.create");\n let d, c = {};\n if (typeof t == "string") {\n if (d = t, typeof a == "object" && a !== null)\n c = a;\n else if (typeof a < "u")\n throw new TypeError("\'options\' must be an object.");\n } else if (t instanceof Uint8Array) {\n if (d = t, typeof a == "object" && a !== null)\n c = a;\n else if (typeof a < "u")\n throw new TypeError("\'options\' must be an object.");\n } else if (t instanceof ArrayBuffer || typeof SharedArrayBuffer < "u" && t instanceof SharedArrayBuffer) {\n let g = t, b = 0, y = t.byteLength;\n if (typeof a == "object" && a !== null)\n c = a;\n else if (typeof a == "number") {\n if (b = a, !Number.isSafeInteger(b))\n throw new RangeError("\'byteOffset\' must be an integer.");\n if (b < 0 || b >= g.byteLength)\n throw new RangeError(`\'byteOffset\' is out of range [0, ${g.byteLength}).`);\n if (y = t.byteLength - b, typeof u == "number") {\n if (y = u, !Number.isSafeInteger(y))\n throw new RangeError("\'byteLength\' must be an integer.");\n if (y <= 0 || b + y > g.byteLength)\n throw new RangeError(`\'byteLength\' is out of range (0, ${g.byteLength - b}].`);\n if (typeof o == "object" && o !== null)\n c = o;\n else if (typeof o < "u")\n throw new TypeError("\'options\' must be an object.");\n } else if (typeof u < "u")\n throw new TypeError("\'byteLength\' must be a number.");\n } else if (typeof a < "u")\n throw new TypeError("\'options\' must be an object.");\n d = new Uint8Array(g, b, y);\n } else\n throw new TypeError("Unexpected argument[0]: must be \'path\' or \'buffer\'.");\n let [l, m] = await dr(c), h = await l.createInferenceSessionHandler(d, m);\n return Ue("InferenceSession.create"), Pe(), new n(h);\n }\n startProfiling() {\n this.handler.startProfiling();\n }\n endProfiling() {\n this.handler.endProfiling();\n }\n get inputNames() {\n return this.handler.inputNames;\n }\n get outputNames() {\n return this.handler.outputNames;\n }\n get inputMetadata() {\n return this.handler.inputMetadata;\n }\n get outputMetadata() {\n return this.handler.outputMetadata;\n }\n };\n });\n var ts;\n var Rr = N(() => {\n "use strict";\n Cr();\n ts = lt;\n });\n var Fr = N(() => {\n "use strict";\n });\n var Nr = N(() => {\n "use strict";\n });\n var kr = N(() => {\n "use strict";\n });\n var Wr = N(() => {\n "use strict";\n });\n var nn = {};\n ut(nn, { InferenceSession: () => ts, TRACE: () => xr, TRACE_EVENT_BEGIN: () => De, TRACE_EVENT_END: () => Ue, TRACE_FUNC_BEGIN: () => _e, TRACE_FUNC_END: () => Pe, Tensor: () => de, env: () => Y, registerBackend: () => qe });\n var Te = N(() => {\n "use strict";\n pr();\n br();\n Rr();\n en();\n Fr();\n Nr();\n tn();\n kr();\n Wr();\n });\n var dt = N(() => {\n "use strict";\n });\n var Hr = {};\n ut(Hr, { default: () => ns });\n var $r;\n var zr;\n var ns;\n var jr = N(() => {\n "use strict";\n rn();\n xe();\n pt();\n $r = "ort-wasm-proxy-worker", zr = globalThis.self?.name === $r;\n zr && (self.onmessage = (n) => {\n let { type: t, in: a } = n.data;\n try {\n switch (t) {\n case "init-wasm":\n mt(a.wasm).then(() => {\n ht(a).then(() => {\n postMessage({ type: t });\n }, (u) => {\n postMessage({ type: t, err: u });\n });\n }, (u) => {\n postMessage({ type: t, err: u });\n });\n break;\n case "init-ep": {\n let { epName: u, env: o } = a;\n wt(o, u).then(() => {\n postMessage({ type: t });\n }, (d) => {\n postMessage({ type: t, err: d });\n });\n break;\n }\n case "copy-from": {\n let { buffer: u } = a, o = Qe(u);\n postMessage({ type: t, out: o });\n break;\n }\n case "create": {\n let { model: u, options: o } = a;\n bt(u, o).then((d) => {\n postMessage({ type: t, out: d });\n }, (d) => {\n postMessage({ type: t, err: d });\n });\n break;\n }\n case "release":\n yt(a), postMessage({ type: t });\n break;\n case "run": {\n let { sessionId: u, inputIndices: o, inputs: d, outputIndices: c, options: l } = a;\n gt(u, o, d, c, new Array(c.length).fill(null), l).then((m) => {\n m.some((h) => h[3] !== "cpu") ? postMessage({ type: t, err: "Proxy does not support non-cpu tensor location." }) : postMessage({ type: t, out: m }, Tt([...d, ...m]));\n }, (m) => {\n postMessage({ type: t, err: m });\n });\n break;\n }\n case "end-profiling":\n Et(a), postMessage({ type: t });\n break;\n default:\n }\n } catch (u) {\n postMessage({ type: t, err: u });\n }\n });\n ns = zr ? null : (n) => new Worker(n ?? oe, { type: "module", name: $r });\n });\n var Yr = {};\n ut(Yr, { default: () => rs });\n async function Vr(n = {}) {\n var t = n, a = !!globalThis.window, u = !!globalThis.WorkerGlobalScope, o = u && self.name?.startsWith("em-pthread");\n t.mountExternalData = (e, r) => {\n e.startsWith("./") && (e = e.substring(2)), (t.Rb || (t.Rb = /* @__PURE__ */ new Map())).set(e, r);\n }, t.unmountExternalData = () => {\n delete t.Rb;\n }, globalThis.SharedArrayBuffer ?? new WebAssembly.Memory({ initial: 0, maximum: 0, shared: true }).buffer.constructor;\n var d, c, l = (e, r) => {\n throw r;\n }, m = import_meta.url, h = "";\n if (a || u) {\n try {\n h = new URL(".", m).href;\n } catch {\n }\n u && (c = (e) => {\n var r = new XMLHttpRequest();\n return r.open("GET", e, false), r.responseType = "arraybuffer", r.send(null), new Uint8Array(r.response);\n }), d = async (e) => {\n if (k(e))\n return new Promise((i, s) => {\n var f = new XMLHttpRequest();\n f.open("GET", e, true), f.responseType = "arraybuffer", f.onload = () => {\n f.status == 200 || f.status == 0 && f.response ? i(f.response) : s(f.status);\n }, f.onerror = s, f.send(null);\n });\n var r = await fetch(e, { credentials: "same-origin" });\n if (r.ok)\n return r.arrayBuffer();\n throw Error(r.status + " : " + r.url);\n };\n }\n var g, b, y, T, I, D, z = console.log.bind(console), v = console.error.bind(console), O = z, F = v, _ = false, k = (e) => e.startsWith("file://");\n function w() {\n ge.buffer != j.buffer && ee();\n }\n if (o) {\n let e = function(r) {\n try {\n var i = r.data, s = i.Pb;\n if (s === "load") {\n let f = [];\n self.onmessage = (p) => f.push(p), D = () => {\n postMessage({ Pb: "loaded" });\n for (let p of f)\n e(p);\n self.onmessage = e;\n };\n for (let p of i.Zb)\n t[p] && !t[p].proxy || (t[p] = (...E) => {\n postMessage({ Pb: "callHandler", Yb: p, args: E });\n }, p == "print" && (O = t[p]), p == "printErr" && (F = t[p]));\n ge = i.dc, ee(), b = i.ec, Ut(), it();\n } else if (s === "run") {\n (function(f) {\n var p = (w(), W)[f + 52 >>> 2 >>> 0];\n f = (w(), W)[f + 56 >>> 2 >>> 0], sr(p, p - f), P(p);\n })(i.Ob), zt(i.Ob, 0, 0, 1, 0, 0), wn(), Ft(i.Ob), Z || (Z = true);\n try {\n Ao(i.bc, i.Tb);\n } catch (f) {\n if (f != "unwind")\n throw f;\n }\n } else\n i.target !== "setimmediate" && (s === "checkMailbox" ? Z && rt() : s && (F(`worker: received unknown command ${s}`), F(i)));\n } catch (f) {\n throw tr(), f;\n }\n };\n var Ss = e, Z = false;\n self.onunhandledrejection = (r) => {\n throw r.reason || r;\n }, self.onmessage = e;\n }\n var j, ne, pe, B, W, re, me, A, K, je = false;\n function ee() {\n var e = ge.buffer;\n t.HEAP8 = j = new Int8Array(e), pe = new Int16Array(e), t.HEAPU8 = ne = new Uint8Array(e), new Uint16Array(e), t.HEAP32 = B = new Int32Array(e), t.HEAPU32 = W = new Uint32Array(e), re = new Float32Array(e), me = new Float64Array(e), A = new BigInt64Array(e), new BigUint64Array(e);\n }\n function he() {\n je = true, o ? D() : Ee.Ta();\n }\n function H(e) {\n throw F(e = "Aborted(" + e + ")"), _ = true, e = new WebAssembly.RuntimeError(e + ". Build with -sASSERTIONS for more info."), I?.(e), e;\n }\n function q() {\n return { a: { R: fa, f: Io, w: Bo, e: Lo, k: _o, g: Po, S: Do, b: Uo, G: xo, ta: vn, j: Mo, L: In, Ja: Bn, pa: Ln, ra: _n, Ka: Pn, Ha: Dn, Aa: Un, Ga: xn, Y: Mn, qa: Cn, na: Rn, Ia: Fn, oa: Nn, Pa: Co, Da: Ro, la: No, ua: ko, ia: Wo, T: Go, Ca: Ft, Ma: $o, xa: zo, ya: Ho, za: jo, va: $n, wa: zn, ja: Hn, Ra: Yo, Oa: Xo, V: Qo, U: Zo, Na: Jo, F: Ko, La: ea, ma: ta, u: Vo, H: na, Q: at, ka: oa, aa: ra, Sa: aa, Ea: Yn, Fa: Jn, sa: ye, I: qn, X: Xn, Ba: Qn, W: Zn, _: ja, M: Wa, $: Ha, N: ka, v: Pa, c: pa, m: la, n: ca, q: va, ba: Ra, x: Ba, o: wa, O: Fa, D: Ga, J: Ca, ca: Ma, da: xa, A: Oa, P: Ua, ea: Da, z: La, E: Na, d: da, r: ha, i: ma, Z: Va, l: ya, p: ga, s: ba, t: Ea, y: Aa, fa: _a, B: $a, K: Ia, C: za, ga: Sa, ha: Ta, h: ia, a: ge, Qa: V } };\n }\n async function Ut() {\n function e(s, f) {\n return Ee = s.exports, Ee = function() {\n var p = Ee, E = (x) => () => x() >>> 0, S = (x) => (R) => x(R) >>> 0;\n return (p = Object.assign({}, p)).sb = E(p.sb), p.ub = S(p.ub), p.Ib = S(p.Ib), p.Jb = E(p.Jb), p.Nb = S(p.Nb), p;\n }(), mn.push(Ee.vb), s = Ee, t._OrtInit = s.Ua, t._OrtGetLastError = s.Va, t._OrtCreateSessionOptions = s.Wa, t._OrtAppendExecutionProvider = s.Xa, t._OrtAddFreeDimensionOverride = s.Ya, t._OrtAddSessionConfigEntry = s.Za, t._OrtReleaseSessionOptions = s._a, t._OrtCreateSession = s.$a, t._OrtReleaseSession = s.ab, t._OrtGetInputOutputCount = s.bb, t._OrtGetInputOutputMetadata = s.cb, t._OrtFree = s.db, t._OrtCreateTensor = s.eb, t._OrtGetTensorData = s.fb, t._OrtReleaseTensor = s.gb, t._OrtCreateRunOptions = s.hb, t._OrtAddRunConfigEntry = s.ib, t._OrtReleaseRunOptions = s.jb, t._OrtCreateBinding = s.kb, t._OrtBindInput = s.lb, t._OrtBindOutput = s.mb, t._OrtClearBoundOutputs = s.nb, t._OrtReleaseBinding = s.ob, t._OrtRunWithBinding = s.pb, t._OrtRun = s.qb, t._OrtEndProfiling = s.rb, st = s.sb, Kn = t._free = s.tb, er = t._malloc = s.ub, zt = s.xb, tr = s.yb, nr = s.zb, rr = s.Ab, Ht = s.Bb, or = s.Cb, ar = s.Db, M = s.Eb, Je = s.Fb, sr = s.Gb, P = s.Hb, jt = s.Ib, U = s.Jb, ir = s.Kb, Vt = s.Lb, ur = s.Mb, fr = s.Nb, cr = s.wb, b = f, Ee;\n }\n var r, i = q();\n return t.instantiateWasm ? new Promise((s) => {\n t.instantiateWasm(i, (f, p) => {\n s(e(f, p));\n });\n }) : o ? e(new WebAssembly.Instance(b, q()), b) : (K ?? (K = t.locateFile ? t.locateFile ? t.locateFile("ort-wasm-simd-threaded.wasm", h) : h + "ort-wasm-simd-threaded.wasm" : new URL("ort-wasm-simd-threaded.wasm", import_meta.url).href), r = await async function(s) {\n var f = K;\n if (!g && !k(f))\n try {\n var p = fetch(f, { credentials: "same-origin" });\n return await WebAssembly.instantiateStreaming(p, s);\n } catch (E) {\n F(`wasm streaming compile failed: ${E}`), F("falling back to ArrayBuffer instantiation");\n }\n return async function(E, S) {\n try {\n var x = await async function(R) {\n if (!g)\n try {\n var X = await d(R);\n return new Uint8Array(X);\n } catch {\n }\n if (R == K && g)\n R = new Uint8Array(g);\n else {\n if (!c)\n throw "both async and sync fetching of the wasm failed";\n R = c(R);\n }\n return R;\n }(E);\n return await WebAssembly.instantiate(x, S);\n } catch (R) {\n F(`failed to asynchronously prepare wasm: ${R}`), H(R);\n }\n }(f, s);\n }(i), e(r.instance, r.module));\n }\n class Se {\n constructor(r) {\n __publicField(this, "name", "ExitStatus");\n this.message = `Program terminated with exit(${r})`, this.status = r;\n }\n }\n var ve = (e) => {\n e.terminate(), e.onmessage = () => {\n };\n }, Ve = [], Re = 0, te = null, ue = (e) => {\n ce.length == 0 && (yn(), bn(ce[0]));\n var r = ce.pop();\n if (!r)\n return 6;\n Fe.push(r), Oe[e.Ob] = r, r.Ob = e.Ob;\n var i = { Pb: "run", bc: e.ac, Tb: e.Tb, Ob: e.Ob };\n return r.postMessage(i, e.Xb), 0;\n }, se = 0, L = (e, r, ...i) => {\n var s, f = 16 * i.length, p = U(), E = jt(f), S = E >>> 3;\n for (s of i)\n typeof s == "bigint" ? ((w(), A)[S++ >>> 0] = 1n, (w(), A)[S++ >>> 0] = s) : ((w(), A)[S++ >>> 0] = 0n, (w(), me)[S++ >>> 0] = s);\n return e = nr(e, 0, f, E, r), P(p), e;\n };\n function V(e) {\n if (o)\n return L(0, 1, e);\n if (y = e, !(0 < se)) {\n for (var r of Fe)\n ve(r);\n for (r of ce)\n ve(r);\n ce = [], Fe = [], Oe = {}, _ = true;\n }\n l(0, new Se(e));\n }\n function fe(e) {\n if (o)\n return L(1, 0, e);\n ye(e);\n }\n var ye = (e) => {\n if (y = e, o)\n throw fe(e), "unwind";\n V(e);\n }, ce = [], Fe = [], mn = [], Oe = {}, hn = (e) => {\n var r = e.Ob;\n delete Oe[r], ce.push(e), Fe.splice(Fe.indexOf(e), 1), e.Ob = 0, rr(r);\n };\n function wn() {\n mn.forEach((e) => e());\n }\n var bn = (e) => new Promise((r) => {\n e.onmessage = (f) => {\n var p = f.data;\n if (f = p.Pb, p.Sb && p.Sb != st()) {\n var E = Oe[p.Sb];\n E ? E.postMessage(p, p.Xb) : F(`Internal error! Worker sent a message "${f}" to target pthread ${p.Sb}, but that thread no longer exists!`);\n } else\n f === "checkMailbox" ? rt() : f === "spawnThread" ? ue(p) : f === "cleanupThread" ? Rt(() => {\n hn(Oe[p.cc]);\n }) : f === "loaded" ? (e.loaded = true, r(e)) : p.target === "setimmediate" ? e.postMessage(p) : f === "uncaughtException" ? e.onerror(p.error) : f === "callHandler" ? t[p.Yb](...p.args) : f && F(`worker sent an unknown command ${f}`);\n }, e.onerror = (f) => {\n throw F(`worker sent an error! ${f.filename}:${f.lineno}: ${f.message}`), f;\n };\n var i, s = [];\n for (i of [])\n t.propertyIsEnumerable(i) && s.push(i);\n e.postMessage({ Pb: "load", Zb: s, dc: ge, ec: b });\n });\n function yn() {\n var e = new Worker((() => {\n let r = URL;\n return import_meta.url > "file:" && import_meta.url < "file;" ? new r("ort.wasm.bundle.min.mjs", import_meta.url) : new URL(import_meta.url);\n })(), { type: "module", workerData: "em-pthread", name: "em-pthread" });\n ce.push(e);\n }\n var ge, gn = [], C = (e) => {\n var r = gn[e];\n return r || (gn[e] = r = cr.get(e)), r;\n }, Ao = (e, r) => {\n se = 0, e = C(e)(r), 0 < se ? y = e : Ht(e);\n }, tt = [], nt = 0;\n function Io(e) {\n var r = new xt(e >>>= 0);\n return (w(), j)[r.Qb + 12 >>> 0] == 0 && (En(r, true), nt--), Tn(r, false), tt.push(r), fr(e);\n }\n var Ne = 0, Bo = () => {\n M(0, 0);\n var e = tt.pop();\n ir(e.Ub), Ne = 0;\n };\n function En(e, r) {\n r = r ? 1 : 0, (w(), j)[e.Qb + 12 >>> 0] = r;\n }\n function Tn(e, r) {\n r = r ? 1 : 0, (w(), j)[e.Qb + 13 >>> 0] = r;\n }\n class xt {\n constructor(r) {\n this.Ub = r, this.Qb = r - 24;\n }\n }\n var Mt = (e) => {\n var r = Ne;\n if (!r)\n return Je(0), 0;\n var i = new xt(r);\n (w(), W)[i.Qb + 16 >>> 2 >>> 0] = r;\n var s = (w(), W)[i.Qb + 4 >>> 2 >>> 0];\n if (!s)\n return Je(0), r;\n for (var f of e) {\n if (f === 0 || f === s)\n break;\n if (ur(f, s, i.Qb + 16))\n return Je(f), r;\n }\n return Je(s), r;\n };\n function Lo() {\n return Mt([]);\n }\n function _o(e) {\n return Mt([e >>> 0]);\n }\n function Po(e, r, i, s) {\n return Mt([e >>> 0, r >>> 0, i >>> 0, s >>> 0]);\n }\n var Do = () => {\n var e = tt.pop();\n e || H("no exception to throw");\n var r = e.Ub;\n throw (w(), j)[e.Qb + 13 >>> 0] == 0 && (tt.push(e), Tn(e, true), En(e, false), nt++), Vt(r), Ne = r;\n };\n function Uo(e, r, i) {\n var s = new xt(e >>>= 0);\n throw r >>>= 0, i >>>= 0, (w(), W)[s.Qb + 16 >>> 2 >>> 0] = 0, (w(), W)[s.Qb + 4 >>> 2 >>> 0] = r, (w(), W)[s.Qb + 8 >>> 2 >>> 0] = i, Vt(e), nt++, Ne = e;\n }\n var xo = () => nt;\n function Sn(e, r, i, s) {\n return o ? L(2, 1, e, r, i, s) : vn(e, r, i, s);\n }\n function vn(e, r, i, s) {\n if (e >>>= 0, r >>>= 0, i >>>= 0, s >>>= 0, !globalThis.SharedArrayBuffer)\n return 6;\n var f = [];\n return o && f.length === 0 ? Sn(e, r, i, s) : (e = { ac: i, Ob: e, Tb: s, Xb: f }, o ? (e.Pb = "spawnThread", postMessage(e, f), 0) : ue(e));\n }\n function Mo(e) {\n throw Ne || (Ne = e >>> 0), Ne;\n }\n var On = globalThis.TextDecoder && new TextDecoder(), An = (e, r = 0, i, s) => {\n var f = r >>>= 0;\n if (i = f + i, s)\n s = i;\n else {\n for (; e[f] && !(f >= i); )\n ++f;\n s = f;\n }\n if (16 < s - r && e.buffer && On)\n return On.decode(e.buffer instanceof ArrayBuffer ? e.subarray(r, s) : e.slice(r, s));\n for (f = ""; r < s; )\n if (128 & (i = e[r++])) {\n var p = 63 & e[r++];\n if ((224 & i) == 192)\n f += String.fromCharCode((31 & i) << 6 | p);\n else {\n var E = 63 & e[r++];\n 65536 > (i = (240 & i) == 224 ? (15 & i) << 12 | p << 6 | E : (7 & i) << 18 | p << 12 | E << 6 | 63 & e[r++]) ? f += String.fromCharCode(i) : (i -= 65536, f += String.fromCharCode(55296 | i >> 10, 56320 | 1023 & i));\n }\n } else\n f += String.fromCharCode(i);\n return f;\n }, Ct = (e, r, i) => (e >>>= 0) ? An((w(), ne), e, r, i) : "";\n function In(e, r, i) {\n return o ? L(3, 1, e, r, i) : 0;\n }\n function Bn(e, r) {\n if (o)\n return L(4, 1, e, r);\n }\n function Ln(e, r) {\n if (o)\n return L(5, 1, e, r);\n }\n function _n(e, r, i) {\n if (o)\n return L(6, 1, e, r, i);\n }\n function Pn(e, r, i) {\n return o ? L(7, 1, e, r, i) : 0;\n }\n function Dn(e, r) {\n if (o)\n return L(8, 1, e, r);\n }\n function Un(e, r, i) {\n if (o)\n return L(9, 1, e, r, i);\n }\n function xn(e, r, i, s) {\n if (o)\n return L(10, 1, e, r, i, s);\n }\n function Mn(e, r, i, s) {\n if (o)\n return L(11, 1, e, r, i, s);\n }\n function Cn(e, r, i, s) {\n if (o)\n return L(12, 1, e, r, i, s);\n }\n function Rn(e) {\n if (o)\n return L(13, 1, e);\n }\n function Fn(e, r) {\n if (o)\n return L(14, 1, e, r);\n }\n function Nn(e, r, i) {\n if (o)\n return L(15, 1, e, r, i);\n }\n var Co = () => H("");\n function Ro(e) {\n zt(e >>> 0, !u, 1, !a, 131072, false), wn();\n }\n var Rt = (e) => {\n if (!_)\n try {\n if (e(), !(0 < se))\n try {\n o ? st() && Ht(y) : ye(y);\n } catch (r) {\n r instanceof Se || r == "unwind" || l(0, r);\n }\n } catch (r) {\n r instanceof Se || r == "unwind" || l(0, r);\n }\n }, Fo = !Atomics.waitAsync || globalThis.navigator?.userAgent && 91 > Number((navigator.userAgent.match(/Chrom(e|ium)\\/([0-9]+)\\./) || [])[2]);\n function Ft(e) {\n e >>>= 0, Fo || (Atomics.waitAsync((w(), B), e >>> 2, e).value.then(rt), e += 128, Atomics.store((w(), B), e >>> 2, 1));\n }\n var rt = () => Rt(() => {\n var e = st();\n e && (Ft(e), ar());\n });\n function No(e, r) {\n (e >>>= 0) == r >>> 0 ? setTimeout(rt) : o ? postMessage({ Sb: e, Pb: "checkMailbox" }) : (e = Oe[e]) && e.postMessage({ Pb: "checkMailbox" });\n }\n var Nt = [];\n function ko(e, r, i, s, f) {\n for (r >>>= 0, f >>>= 0, Nt.length = 0, i = f >>> 3, s = f + s >>> 3; i < s; ) {\n var p;\n p = (w(), A)[i++ >>> 0] ? (w(), A)[i++ >>> 0] : (w(), me)[i++ >>> 0], Nt.push(p);\n }\n return (r ? lr[r] : ua[e])(...Nt);\n }\n var Wo = () => {\n se = 0;\n };\n function Go(e) {\n e >>>= 0, o ? postMessage({ Pb: "cleanupThread", cc: e }) : hn(Oe[e]);\n }\n function $o(e) {\n }\n function zo(e, r) {\n e = -9007199254740992 > e || 9007199254740992 < e ? NaN : Number(e), r >>>= 0, e = new Date(1e3 * e), (w(), B)[r >>> 2 >>> 0] = e.getUTCSeconds(), (w(), B)[r + 4 >>> 2 >>> 0] = e.getUTCMinutes(), (w(), B)[r + 8 >>> 2 >>> 0] = e.getUTCHours(), (w(), B)[r + 12 >>> 2 >>> 0] = e.getUTCDate(), (w(), B)[r + 16 >>> 2 >>> 0] = e.getUTCMonth(), (w(), B)[r + 20 >>> 2 >>> 0] = e.getUTCFullYear() - 1900, (w(), B)[r + 24 >>> 2 >>> 0] = e.getUTCDay(), e = (e.getTime() - Date.UTC(e.getUTCFullYear(), 0, 1, 0, 0, 0, 0)) / 864e5 | 0, (w(), B)[r + 28 >>> 2 >>> 0] = e;\n }\n var kn = (e) => e % 4 == 0 && (e % 100 != 0 || e % 400 == 0), Wn = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335], Gn = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];\n function Ho(e, r) {\n e = -9007199254740992 > e || 9007199254740992 < e ? NaN : Number(e), r >>>= 0, e = new Date(1e3 * e), (w(), B)[r >>> 2 >>> 0] = e.getSeconds(), (w(), B)[r + 4 >>> 2 >>> 0] = e.getMinutes(), (w(), B)[r + 8 >>> 2 >>> 0] = e.getHours(), (w(), B)[r + 12 >>> 2 >>> 0] = e.getDate(), (w(), B)[r + 16 >>> 2 >>> 0] = e.getMonth(), (w(), B)[r + 20 >>> 2 >>> 0] = e.getFullYear() - 1900, (w(), B)[r + 24 >>> 2 >>> 0] = e.getDay();\n var i = (kn(e.getFullYear()) ? Wn : Gn)[e.getMonth()] + e.getDate() - 1 | 0;\n (w(), B)[r + 28 >>> 2 >>> 0] = i, (w(), B)[r + 36 >>> 2 >>> 0] = -60 * e.getTimezoneOffset(), i = new Date(e.getFullYear(), 6, 1).getTimezoneOffset();\n var s = new Date(e.getFullYear(), 0, 1).getTimezoneOffset();\n e = 0 | (i != s && e.getTimezoneOffset() == Math.min(s, i)), (w(), B)[r + 32 >>> 2 >>> 0] = e;\n }\n function jo(e) {\n e >>>= 0;\n var r = new Date((w(), B)[e + 20 >>> 2 >>> 0] + 1900, (w(), B)[e + 16 >>> 2 >>> 0], (w(), B)[e + 12 >>> 2 >>> 0], (w(), B)[e + 8 >>> 2 >>> 0], (w(), B)[e + 4 >>> 2 >>> 0], (w(), B)[e >>> 2 >>> 0], 0), i = (w(), B)[e + 32 >>> 2 >>> 0], s = r.getTimezoneOffset(), f = new Date(r.getFullYear(), 6, 1).getTimezoneOffset(), p = new Date(r.getFullYear(), 0, 1).getTimezoneOffset(), E = Math.min(p, f);\n return 0 > i ? (w(), B)[e + 32 >>> 2 >>> 0] = +(f != p && E == s) : 0 < i != (E == s) && (f = Math.max(p, f), r.setTime(r.getTime() + 6e4 * ((0 < i ? E : f) - s))), (w(), B)[e + 24 >>> 2 >>> 0] = r.getDay(), i = (kn(r.getFullYear()) ? Wn : Gn)[r.getMonth()] + r.getDate() - 1 | 0, (w(), B)[e + 28 >>> 2 >>> 0] = i, (w(), B)[e >>> 2 >>> 0] = r.getSeconds(), (w(), B)[e + 4 >>> 2 >>> 0] = r.getMinutes(), (w(), B)[e + 8 >>> 2 >>> 0] = r.getHours(), (w(), B)[e + 12 >>> 2 >>> 0] = r.getDate(), (w(), B)[e + 16 >>> 2 >>> 0] = r.getMonth(), (w(), B)[e + 20 >>> 2 >>> 0] = r.getYear(), e = r.getTime(), BigInt(isNaN(e) ? -1 : e / 1e3);\n }\n function $n(e, r, i, s, f, p, E) {\n return o ? L(16, 1, e, r, i, s, f, p, E) : -52;\n }\n function zn(e, r, i, s, f, p) {\n if (o)\n return L(17, 1, e, r, i, s, f, p);\n }\n var Ye = {}, Vo = () => performance.timeOrigin + performance.now();\n function Hn(e, r) {\n if (o)\n return L(18, 1, e, r);\n if (Ye[e] && (clearTimeout(Ye[e].id), delete Ye[e]), !r)\n return 0;\n var i = setTimeout(() => {\n delete Ye[e], Rt(() => or(e, performance.timeOrigin + performance.now()));\n }, r);\n return Ye[e] = { id: i, jc: r }, 0;\n }\n var Ae = (e, r, i) => {\n var s = (w(), ne);\n if (r >>>= 0, 0 < i) {\n var f = r;\n i = r + i - 1;\n for (var p = 0; p < e.length; ++p) {\n var E = e.codePointAt(p);\n if (127 >= E) {\n if (r >= i)\n break;\n s[r++ >>> 0] = E;\n } else if (2047 >= E) {\n if (r + 1 >= i)\n break;\n s[r++ >>> 0] = 192 | E >> 6, s[r++ >>> 0] = 128 | 63 & E;\n } else if (65535 >= E) {\n if (r + 2 >= i)\n break;\n s[r++ >>> 0] = 224 | E >> 12, s[r++ >>> 0] = 128 | E >> 6 & 63, s[r++ >>> 0] = 128 | 63 & E;\n } else {\n if (r + 3 >= i)\n break;\n s[r++ >>> 0] = 240 | E >> 18, s[r++ >>> 0] = 128 | E >> 12 & 63, s[r++ >>> 0] = 128 | E >> 6 & 63, s[r++ >>> 0] = 128 | 63 & E, p++;\n }\n }\n s[r >>> 0] = 0, e = r - f;\n } else\n e = 0;\n return e;\n };\n function Yo(e, r, i, s) {\n e >>>= 0, r >>>= 0, i >>>= 0, s >>>= 0;\n var f = (/* @__PURE__ */ new Date()).getFullYear(), p = new Date(f, 0, 1).getTimezoneOffset();\n f = new Date(f, 6, 1).getTimezoneOffset();\n var E = Math.max(p, f);\n (w(), W)[e >>> 2 >>> 0] = 60 * E, (w(), B)[r >>> 2 >>> 0] = +(p != f), e = (r = (S) => {\n var x = Math.abs(S);\n return `UTC${0 <= S ? "-" : "+"}${String(Math.floor(x / 60)).padStart(2, "0")}${String(x % 60).padStart(2, "0")}`;\n })(p), r = r(f), f < p ? (Ae(e, i, 17), Ae(r, s, 17)) : (Ae(e, s, 17), Ae(r, i, 17));\n }\n var Jo = () => Date.now(), qo = 1;\n function Xo(e, r, i) {\n if (i >>>= 0, !(0 <= e && 3 >= e))\n return 28;\n if (e === 0)\n e = Date.now();\n else {\n if (!qo)\n return 52;\n e = performance.timeOrigin + performance.now();\n }\n return e = Math.round(1e6 * e), (w(), A)[i >>> 3 >>> 0] = BigInt(e), 0;\n }\n var kt = [];\n function Qo(e, r, i) {\n e >>>= 0, r >>>= 0, i >>>= 0, kt.length = 0;\n for (var s; s = (w(), ne)[r++ >>> 0]; ) {\n var f = s != 105;\n i += (f &= s != 112) && i % 8 ? 4 : 0, kt.push(s == 112 ? (w(), W)[i >>> 2 >>> 0] : s == 106 ? (w(), A)[i >>> 3 >>> 0] : s == 105 ? (w(), B)[i >>> 2 >>> 0] : (w(), me)[i >>> 3 >>> 0]), i += f ? 8 : 4;\n }\n return lr[e](...kt);\n }\n var Zo = () => {\n };\n function Ko(e, r) {\n return F(Ct(e >>> 0, r >>> 0));\n }\n var ea = () => {\n throw se += 1, "unwind";\n };\n function ta() {\n return 4294901760;\n }\n var na = () => navigator.hardwareConcurrency, Ie = {}, Wt = (e) => {\n for (var r = 0, i = 0; i < e.length; ++i) {\n var s = e.charCodeAt(i);\n 127 >= s ? r++ : 2047 >= s ? r += 2 : 55296 <= s && 57343 >= s ? (r += 4, ++i) : r += 3;\n }\n return r;\n }, ot = (e) => {\n var r;\n return (r = /\\bwasm-function\\[\\d+\\]:(0x[0-9a-f]+)/.exec(e)) ? +r[1] : (r = /:(\\d+):\\d+(?:\\)|$)/.exec(e)) ? 2147483648 | +r[1] : 0;\n }, jn = (e) => {\n for (var r of e)\n (e = ot(r)) && (Ie[e] = r);\n };\n function ra() {\n var e = Error().stack.toString().split(`\n`);\n return e[0] == "Error" && e.shift(), jn(e), Ie.Vb = ot(e[3]), Ie.$b = e, Ie.Vb;\n }\n function at(e) {\n if (!(e = Ie[e >>> 0]))\n return 0;\n var r;\n if (r = /^\\s+at .*\\.wasm\\.(.*) \\(.*\\)$/.exec(e))\n e = r[1];\n else if (r = /^\\s+at (.*) \\(.*\\)$/.exec(e))\n e = r[1];\n else {\n if (!(r = /^(.+?)@/.exec(e)))\n return 0;\n e = r[1];\n }\n Kn(at.Wb ?? 0), r = Wt(e) + 1;\n var i = er(r);\n return i && Ae(e, i, r), at.Wb = i, at.Wb;\n }\n function oa(e) {\n e >>>= 0;\n var r = (w(), ne).length;\n if (e <= r || 4294901760 < e)\n return false;\n for (var i = 1; 4 >= i; i *= 2) {\n var s = r * (1 + 0.2 / i);\n s = Math.min(s, e + 100663296);\n e: {\n s = (Math.min(4294901760, 65536 * Math.ceil(Math.max(e, s) / 65536)) - ge.buffer.byteLength + 65535) / 65536 | 0;\n try {\n ge.grow(s), ee();\n var f = 1;\n break e;\n } catch {\n }\n f = void 0;\n }\n if (f)\n return true;\n }\n return false;\n }\n function aa(e, r, i) {\n if (e >>>= 0, r >>>= 0, Ie.Vb == e)\n var s = Ie.$b;\n else\n (s = Error().stack.toString().split(`\n`))[0] == "Error" && s.shift(), jn(s);\n for (var f = 3; s[f] && ot(s[f]) != e; )\n ++f;\n for (e = 0; e < i && s[e + f]; ++e)\n (w(), B)[r + 4 * e >>> 2 >>> 0] = ot(s[e + f]);\n return e;\n }\n var Gt, $t = {}, Vn = () => {\n if (!Gt) {\n var e, r = { USER: "web_user", LOGNAME: "web_user", PATH: "/", PWD: "/", HOME: "/home/web_user", LANG: (globalThis.navigator?.language ?? "C").replace("-", "_") + ".UTF-8", _: "./this.program" };\n for (e in $t)\n $t[e] === void 0 ? delete r[e] : r[e] = $t[e];\n var i = [];\n for (e in r)\n i.push(`${e}=${r[e]}`);\n Gt = i;\n }\n return Gt;\n };\n function Yn(e, r) {\n if (o)\n return L(19, 1, e, r);\n e >>>= 0, r >>>= 0;\n var i, s = 0, f = 0;\n for (i of Vn()) {\n var p = r + s;\n (w(), W)[e + f >>> 2 >>> 0] = p, s += Ae(i, p, 1 / 0) + 1, f += 4;\n }\n return 0;\n }\n function Jn(e, r) {\n if (o)\n return L(20, 1, e, r);\n e >>>= 0, r >>>= 0;\n var i = Vn();\n for (var s of ((w(), W)[e >>> 2 >>> 0] = i.length, e = 0, i))\n e += Wt(s) + 1;\n return (w(), W)[r >>> 2 >>> 0] = e, 0;\n }\n function qn(e) {\n return o ? L(21, 1, e) : 52;\n }\n function Xn(e, r, i, s) {\n return o ? L(22, 1, e, r, i, s) : 52;\n }\n function Qn(e, r, i, s) {\n return o ? L(23, 1, e, r, i, s) : 70;\n }\n var sa = [null, [], []];\n function Zn(e, r, i, s) {\n if (o)\n return L(24, 1, e, r, i, s);\n r >>>= 0, i >>>= 0, s >>>= 0;\n for (var f = 0, p = 0; p < i; p++) {\n var E = (w(), W)[r >>> 2 >>> 0], S = (w(), W)[r + 4 >>> 2 >>> 0];\n r += 8;\n for (var x = 0; x < S; x++) {\n var R = e, X = (w(), ne)[E + x >>> 0], le = sa[R];\n X === 0 || X === 10 ? ((R === 1 ? O : F)(An(le)), le.length = 0) : le.push(X);\n }\n f += S;\n }\n return (w(), W)[s >>> 2 >>> 0] = f, 0;\n }\n function ia(e) {\n return e >>> 0;\n }\n o || function() {\n for (var e = t.numThreads - 1; e--; )\n yn();\n Ve.push(async () => {\n var r = async function() {\n if (!o)\n return Promise.all(ce.map(bn));\n }();\n Re++, await r, --Re == 0 && te && (r = te, te = null, r());\n });\n }(), o || (ge = new WebAssembly.Memory({ initial: 256, maximum: 65536, shared: true }), ee()), t.wasmBinary && (g = t.wasmBinary), t.stackSave = () => U(), t.stackRestore = (e) => P(e), t.stackAlloc = (e) => jt(e), t.setValue = function(e, r, i = "i8") {\n switch (i.endsWith("*") && (i = "*"), i) {\n case "i1":\n case "i8":\n (w(), j)[e >>> 0] = r;\n break;\n case "i16":\n (w(), pe)[e >>> 1 >>> 0] = r;\n break;\n case "i32":\n (w(), B)[e >>> 2 >>> 0] = r;\n break;\n case "i64":\n (w(), A)[e >>> 3 >>> 0] = BigInt(r);\n break;\n case "float":\n (w(), re)[e >>> 2 >>> 0] = r;\n break;\n case "double":\n (w(), me)[e >>> 3 >>> 0] = r;\n break;\n case "*":\n (w(), W)[e >>> 2 >>> 0] = r;\n break;\n default:\n H(`invalid type for setValue: ${i}`);\n }\n }, t.getValue = function(e, r = "i8") {\n switch (r.endsWith("*") && (r = "*"), r) {\n case "i1":\n case "i8":\n return (w(), j)[e >>> 0];\n case "i16":\n return (w(), pe)[e >>> 1 >>> 0];\n case "i32":\n return (w(), B)[e >>> 2 >>> 0];\n case "i64":\n return (w(), A)[e >>> 3 >>> 0];\n case "float":\n return (w(), re)[e >>> 2 >>> 0];\n case "double":\n return (w(), me)[e >>> 3 >>> 0];\n case "*":\n return (w(), W)[e >>> 2 >>> 0];\n default:\n H(`invalid type for getValue: ${r}`);\n }\n }, t.UTF8ToString = Ct, t.stringToUTF8 = Ae, t.lengthBytesUTF8 = Wt;\n var st, Kn, er, zt, tr, nr, rr, Ht, or, ar, M, Je, sr, P, jt, U, ir, Vt, ur, fr, cr, Ee, ua = [V, fe, Sn, In, Bn, Ln, _n, Pn, Dn, Un, xn, Mn, Cn, Rn, Fn, Nn, $n, zn, Hn, Yn, Jn, qn, Xn, Qn, Zn], lr = { 930988: (e, r, i, s, f) => {\n if (t === void 0 || !t.Rb)\n return 1;\n if ((e = Ct(Number(e >>> 0))).startsWith("./") && (e = e.substring(2)), !(e = t.Rb.get(e)))\n return 2;\n if (r = Number(r >>> 0), i = Number(i >>> 0), s = Number(s >>> 0), r + i > e.byteLength)\n return 3;\n try {\n let p = e.subarray(r, r + i);\n switch (f) {\n case 0:\n (w(), ne).set(p, s >>> 0);\n break;\n case 1:\n t.fc ? t.fc(s, p) : t.ic(s, p);\n break;\n default:\n return 4;\n }\n return 0;\n } catch {\n return 4;\n }\n }, 931812: () => typeof wasmOffsetConverter < "u" };\n function fa() {\n return typeof wasmOffsetConverter < "u";\n }\n function ca(e, r, i, s) {\n var f = U();\n try {\n return C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function la(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function da(e) {\n var r = U();\n try {\n C(e)();\n } catch (i) {\n if (P(r), i !== i + 0)\n throw i;\n M(1, 0);\n }\n }\n function pa(e, r) {\n var i = U();\n try {\n return C(e)(r);\n } catch (s) {\n if (P(i), s !== s + 0)\n throw s;\n M(1, 0);\n }\n }\n function ma(e, r, i) {\n var s = U();\n try {\n C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function ha(e, r) {\n var i = U();\n try {\n C(e)(r);\n } catch (s) {\n if (P(i), s !== s + 0)\n throw s;\n M(1, 0);\n }\n }\n function wa(e, r, i, s, f, p, E) {\n var S = U();\n try {\n return C(e)(r, i, s, f, p, E);\n } catch (x) {\n if (P(S), x !== x + 0)\n throw x;\n M(1, 0);\n }\n }\n function ba(e, r, i, s, f, p) {\n var E = U();\n try {\n C(e)(r, i, s, f, p);\n } catch (S) {\n if (P(E), S !== S + 0)\n throw S;\n M(1, 0);\n }\n }\n function ya(e, r, i, s) {\n var f = U();\n try {\n C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function ga(e, r, i, s, f) {\n var p = U();\n try {\n C(e)(r, i, s, f);\n } catch (E) {\n if (P(p), E !== E + 0)\n throw E;\n M(1, 0);\n }\n }\n function Ea(e, r, i, s, f, p, E) {\n var S = U();\n try {\n C(e)(r, i, s, f, p, E);\n } catch (x) {\n if (P(S), x !== x + 0)\n throw x;\n M(1, 0);\n }\n }\n function Ta(e, r, i, s, f, p, E) {\n var S = U();\n try {\n C(e)(r, i, s, f, p, E);\n } catch (x) {\n if (P(S), x !== x + 0)\n throw x;\n M(1, 0);\n }\n }\n function Sa(e, r, i, s, f, p, E, S) {\n var x = U();\n try {\n C(e)(r, i, s, f, p, E, S);\n } catch (R) {\n if (P(x), R !== R + 0)\n throw R;\n M(1, 0);\n }\n }\n function va(e, r, i, s, f) {\n var p = U();\n try {\n return C(e)(r, i, s, f);\n } catch (E) {\n if (P(p), E !== E + 0)\n throw E;\n M(1, 0);\n }\n }\n function Oa(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function Aa(e, r, i, s, f, p, E, S) {\n var x = U();\n try {\n C(e)(r, i, s, f, p, E, S);\n } catch (R) {\n if (P(x), R !== R + 0)\n throw R;\n M(1, 0);\n }\n }\n function Ia(e, r, i, s, f, p, E, S, x, R, X, le) {\n var we = U();\n try {\n C(e)(r, i, s, f, p, E, S, x, R, X, le);\n } catch (be) {\n if (P(we), be !== be + 0)\n throw be;\n M(1, 0);\n }\n }\n function Ba(e, r, i, s, f, p) {\n var E = U();\n try {\n return C(e)(r, i, s, f, p);\n } catch (S) {\n if (P(E), S !== S + 0)\n throw S;\n M(1, 0);\n }\n }\n function La(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n return M(1, 0), 0n;\n }\n }\n function _a(e, r, i, s, f, p, E, S, x) {\n var R = U();\n try {\n C(e)(r, i, s, f, p, E, S, x);\n } catch (X) {\n if (P(R), X !== X + 0)\n throw X;\n M(1, 0);\n }\n }\n function Pa(e) {\n var r = U();\n try {\n return C(e)();\n } catch (i) {\n if (P(r), i !== i + 0)\n throw i;\n M(1, 0);\n }\n }\n function Da(e, r) {\n var i = U();\n try {\n return C(e)(r);\n } catch (s) {\n if (P(i), s !== s + 0)\n throw s;\n return M(1, 0), 0n;\n }\n }\n function Ua(e) {\n var r = U();\n try {\n return C(e)();\n } catch (i) {\n if (P(r), i !== i + 0)\n throw i;\n return M(1, 0), 0n;\n }\n }\n function xa(e, r, i, s) {\n var f = U();\n try {\n return C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function Ma(e, r, i, s, f) {\n var p = U();\n try {\n return C(e)(r, i, s, f);\n } catch (E) {\n if (P(p), E !== E + 0)\n throw E;\n M(1, 0);\n }\n }\n function Ca(e, r, i, s, f, p) {\n var E = U();\n try {\n return C(e)(r, i, s, f, p);\n } catch (S) {\n if (P(E), S !== S + 0)\n throw S;\n M(1, 0);\n }\n }\n function Ra(e, r, i, s, f, p) {\n var E = U();\n try {\n return C(e)(r, i, s, f, p);\n } catch (S) {\n if (P(E), S !== S + 0)\n throw S;\n M(1, 0);\n }\n }\n function Fa(e, r, i, s, f, p, E, S) {\n var x = U();\n try {\n return C(e)(r, i, s, f, p, E, S);\n } catch (R) {\n if (P(x), R !== R + 0)\n throw R;\n M(1, 0);\n }\n }\n function Na(e, r, i, s, f) {\n var p = U();\n try {\n return C(e)(r, i, s, f);\n } catch (E) {\n if (P(p), E !== E + 0)\n throw E;\n return M(1, 0), 0n;\n }\n }\n function ka(e, r, i, s) {\n var f = U();\n try {\n return C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function Wa(e, r, i, s) {\n var f = U();\n try {\n return C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function Ga(e, r, i, s, f, p, E, S, x, R, X, le) {\n var we = U();\n try {\n return C(e)(r, i, s, f, p, E, S, x, R, X, le);\n } catch (be) {\n if (P(we), be !== be + 0)\n throw be;\n M(1, 0);\n }\n }\n function $a(e, r, i, s, f, p, E, S, x, R, X) {\n var le = U();\n try {\n C(e)(r, i, s, f, p, E, S, x, R, X);\n } catch (we) {\n if (P(le), we !== we + 0)\n throw we;\n M(1, 0);\n }\n }\n function za(e, r, i, s, f, p, E, S, x, R, X, le, we, be, Ya, Ja) {\n var qa = U();\n try {\n C(e)(r, i, s, f, p, E, S, x, R, X, le, we, be, Ya, Ja);\n } catch (Yt) {\n if (P(qa), Yt !== Yt + 0)\n throw Yt;\n M(1, 0);\n }\n }\n function Ha(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function ja(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function Va(e, r, i, s) {\n var f = U();\n try {\n C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function it() {\n if (0 < Re)\n te = it;\n else if (o)\n T?.(t), he();\n else {\n for (var e = Ve; 0 < e.length; )\n e.shift()(t);\n 0 < Re ? te = it : (t.calledRun = true, _ || (he(), T?.(t)));\n }\n }\n return o || (Ee = await Ut(), it()), t.PTR_SIZE = 4, je ? t : new Promise((e, r) => {\n T = e, I = r;\n });\n }\n var rs;\n var os;\n var Jr = N(() => {\n "use strict";\n rs = Vr, os = globalThis.self?.name?.startsWith("em-pthread");\n os && Vr();\n });\n var Qr;\n var an;\n var as;\n var oe;\n var Zr;\n var on;\n var ss;\n var is;\n var Kr;\n var us;\n var qr;\n var eo;\n var Xr;\n var to;\n var pt = N(() => {\n "use strict";\n dt();\n Qr = typeof location > "u" ? void 0 : location.origin, an = import_meta.url > "file:" && import_meta.url < "file;", as = () => {\n if (true) {\n if (an) {\n let n = URL;\n return new URL(new n("ort.wasm.bundle.min.mjs", import_meta.url).href, Qr).href;\n }\n return import_meta.url;\n }\n }, oe = as(), Zr = () => {\n if (oe && !oe.startsWith("blob:"))\n return oe.substring(0, oe.lastIndexOf("/") + 1);\n }, on = (n, t) => {\n try {\n let a = t ?? oe;\n return (a ? new URL(n, a) : new URL(n)).origin === Qr;\n } catch {\n return false;\n }\n }, ss = (n, t) => {\n let a = t ?? oe;\n try {\n return (a ? new URL(n, a) : new URL(n)).href;\n } catch {\n return;\n }\n }, is = (n, t) => `${t ?? "./"}${n}`, Kr = async (n) => {\n let a = await (await fetch(n, { credentials: "same-origin" })).blob();\n return URL.createObjectURL(a);\n }, us = async (n) => (await import(\n /*webpackIgnore:true*/\n /*@vite-ignore*/\n n\n )).default, qr = (jr(), Xt(Hr)).default, eo = async () => {\n if (!oe)\n throw new Error("Failed to load proxy worker: cannot determine the script source URL.");\n if (on(oe))\n return [void 0, qr()];\n let n = await Kr(oe);\n return [n, qr(n)];\n }, Xr = (Jr(), Xt(Yr)).default, to = async (n, t, a, u) => {\n let o = Xr && !(n || t);\n if (o)\n if (oe)\n o = on(oe) || u && !a;\n else if (u && !a)\n o = true;\n else\n throw new Error("cannot determine the script source URL.");\n if (o)\n return [void 0, Xr];\n {\n let d = "ort-wasm-simd-threaded.mjs", c = n ?? ss(d, t), l = a && c && !on(c, t), m = l ? await Kr(c) : c ?? is(d, t);\n return [l ? m : void 0, await us(m)];\n }\n };\n });\n var sn;\n var un;\n var St;\n var no;\n var fs;\n var cs;\n var ls;\n var mt;\n var $;\n var xe = N(() => {\n "use strict";\n pt();\n un = false, St = false, no = false, fs = () => {\n if (typeof SharedArrayBuffer > "u")\n return false;\n try {\n return typeof MessageChannel < "u" && new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)), WebAssembly.validate(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 2, 1, 0, 5, 4, 1, 3, 1, 1, 10, 11, 1, 9, 0, 65, 0, 254, 16, 2, 0, 26, 11]));\n } catch {\n return false;\n }\n }, cs = () => {\n try {\n return WebAssembly.validate(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 2, 1, 0, 10, 30, 1, 28, 0, 65, 0, 253, 15, 253, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 186, 1, 26, 11]));\n } catch {\n return false;\n }\n }, ls = () => {\n try {\n return WebAssembly.validate(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 5, 1, 96, 0, 1, 123, 3, 2, 1, 0, 10, 19, 1, 17, 0, 65, 1, 253, 15, 65, 2, 253, 15, 65, 3, 253, 15, 253, 147, 2, 11]));\n } catch {\n return false;\n }\n }, mt = async (n) => {\n if (un)\n return Promise.resolve();\n if (St)\n throw new Error("multiple calls to \'initializeWebAssembly()\' detected.");\n if (no)\n throw new Error("previous call to \'initializeWebAssembly()\' failed.");\n St = true;\n let t = n.initTimeout, a = n.numThreads;\n if (n.simd !== false) {\n if (n.simd === "relaxed") {\n if (!ls())\n throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.");\n } else if (!cs())\n throw new Error("WebAssembly SIMD is not supported in the current environment.");\n }\n let u = fs();\n a > 1 && !u && (typeof self < "u" && !self.crossOriginIsolated && console.warn("env.wasm.numThreads is set to " + a + ", but this will not work unless you enable crossOriginIsolated mode. See https://web.dev/cross-origin-isolation-guide/ for more info."), console.warn("WebAssembly multi-threading is not supported in the current environment. Falling back to single-threading."), n.numThreads = a = 1);\n let o = n.wasmPaths, d = typeof o == "string" ? o : void 0, c = o?.mjs, l = c?.href ?? c, m = o?.wasm, h = m?.href ?? m, g = n.wasmBinary, [b, y] = await to(l, d, a > 1, !!g || !!h), T = false, I = [];\n if (t > 0 && I.push(new Promise((D) => {\n setTimeout(() => {\n T = true, D();\n }, t);\n })), I.push(new Promise((D, z) => {\n let v = { numThreads: a };\n if (g)\n v.wasmBinary = g, v.locateFile = (O) => O;\n else if (h || d)\n v.locateFile = (O) => h ?? d + O;\n else if (l && l.indexOf("blob:") !== 0)\n v.locateFile = (O) => new URL(O, l).href;\n else if (b) {\n let O = Zr();\n O && (v.locateFile = (F) => O + F);\n }\n y(v).then((O) => {\n St = false, un = true, sn = O, D(), b && URL.revokeObjectURL(b);\n }, (O) => {\n St = false, no = true, z(O);\n });\n })), await Promise.race(I), T)\n throw new Error(`WebAssembly backend initializing failed due to timeout: ${t}ms`);\n }, $ = () => {\n if (un && sn)\n return sn;\n throw new Error("WebAssembly is not initialized yet.");\n };\n });\n var ae;\n var Ze;\n var G;\n var vt = N(() => {\n "use strict";\n xe();\n ae = (n, t) => {\n let a = $(), u = a.lengthBytesUTF8(n) + 1, o = a._malloc(u);\n return a.stringToUTF8(n, o, u), t.push(o), o;\n }, Ze = (n, t, a, u) => {\n if (typeof n == "object" && n !== null) {\n if (a.has(n))\n throw new Error("Circular reference in options");\n a.add(n);\n }\n Object.entries(n).forEach(([o, d]) => {\n let c = t ? t + o : o;\n if (typeof d == "object")\n Ze(d, c + ".", a, u);\n else if (typeof d == "string" || typeof d == "number")\n u(c, d.toString());\n else if (typeof d == "boolean")\n u(c, d ? "1" : "0");\n else\n throw new Error(`Can\'t handle extra config type: ${typeof d}`);\n });\n }, G = (n) => {\n let t = $(), a = t.stackSave();\n try {\n let u = t.PTR_SIZE, o = t.stackAlloc(2 * u);\n t._OrtGetLastError(o, o + u);\n let d = Number(t.getValue(o, u === 4 ? "i32" : "i64")), c = t.getValue(o + u, "*"), l = c ? t.UTF8ToString(c) : "";\n throw new Error(`${n} ERROR_CODE: ${d}, ERROR_MESSAGE: ${l}`);\n } finally {\n t.stackRestore(a);\n }\n };\n });\n var ro;\n var oo = N(() => {\n "use strict";\n xe();\n vt();\n ro = (n) => {\n let t = $(), a = 0, u = [], o = n || {};\n try {\n if (n?.logSeverityLevel === void 0)\n o.logSeverityLevel = 2;\n else if (typeof n.logSeverityLevel != "number" || !Number.isInteger(n.logSeverityLevel) || n.logSeverityLevel < 0 || n.logSeverityLevel > 4)\n throw new Error(`log severity level is not valid: ${n.logSeverityLevel}`);\n if (n?.logVerbosityLevel === void 0)\n o.logVerbosityLevel = 0;\n else if (typeof n.logVerbosityLevel != "number" || !Number.isInteger(n.logVerbosityLevel))\n throw new Error(`log verbosity level is not valid: ${n.logVerbosityLevel}`);\n n?.terminate === void 0 && (o.terminate = false);\n let d = 0;\n return n?.tag !== void 0 && (d = ae(n.tag, u)), a = t._OrtCreateRunOptions(o.logSeverityLevel, o.logVerbosityLevel, !!o.terminate, d), a === 0 && G("Can\'t create run options."), n?.extra !== void 0 && Ze(n.extra, "", /* @__PURE__ */ new WeakSet(), (c, l) => {\n let m = ae(c, u), h = ae(l, u);\n t._OrtAddRunConfigEntry(a, m, h) !== 0 && G(`Can\'t set a run config entry: ${c} - ${l}.`);\n }), [a, u];\n } catch (d) {\n throw a !== 0 && t._OrtReleaseRunOptions(a), u.forEach((c) => t._free(c)), d;\n }\n };\n });\n var ds;\n var ps;\n var ms;\n var ke;\n var hs;\n var ao;\n var so = N(() => {\n "use strict";\n xe();\n vt();\n ds = (n) => {\n switch (n) {\n case "disabled":\n return 0;\n case "basic":\n return 1;\n case "extended":\n return 2;\n case "layout":\n return 3;\n case "all":\n return 99;\n default:\n throw new Error(`unsupported graph optimization level: ${n}`);\n }\n }, ps = (n) => {\n switch (n) {\n case "sequential":\n return 0;\n case "parallel":\n return 1;\n default:\n throw new Error(`unsupported execution mode: ${n}`);\n }\n }, ms = (n) => {\n n.extra || (n.extra = {}), n.extra.session || (n.extra.session = {});\n let t = n.extra.session;\n t.use_ort_model_bytes_directly || (t.use_ort_model_bytes_directly = "1"), n.executionProviders && n.executionProviders.some((a) => (typeof a == "string" ? a : a.name) === "webgpu") && (n.enableMemPattern = false);\n }, ke = (n, t, a, u) => {\n let o = ae(t, u), d = ae(a, u);\n $()._OrtAddSessionConfigEntry(n, o, d) !== 0 && G(`Can\'t set a session config entry: ${t} - ${a}.`);\n }, hs = async (n, t, a) => {\n let u = t.executionProviders;\n for (let o of u) {\n let d = typeof o == "string" ? o : o.name, c = [];\n switch (d) {\n case "webnn":\n if (d = "WEBNN", ke(n, "session.disable_quant_qdq", "1", a), ke(n, "session.disable_qdq_constant_folding", "1", a), typeof o != "string") {\n let y = o?.deviceType;\n y && ke(n, "deviceType", y, a);\n }\n break;\n case "webgpu":\n if (d = "JS", typeof o != "string") {\n let b = o;\n if (b?.preferredLayout) {\n if (b.preferredLayout !== "NCHW" && b.preferredLayout !== "NHWC")\n throw new Error(`preferredLayout must be either \'NCHW\' or \'NHWC\': ${b.preferredLayout}`);\n ke(n, "preferredLayout", b.preferredLayout, a);\n }\n }\n break;\n case "wasm":\n case "cpu":\n continue;\n default:\n throw new Error(`not supported execution provider: ${d}`);\n }\n let l = ae(d, a), m = c.length, h = 0, g = 0;\n if (m > 0) {\n h = $()._malloc(m * $().PTR_SIZE), a.push(h), g = $()._malloc(m * $().PTR_SIZE), a.push(g);\n for (let b = 0; b < m; b++)\n $().setValue(h + b * $().PTR_SIZE, c[b][0], "*"), $().setValue(g + b * $().PTR_SIZE, c[b][1], "*");\n }\n await $()._OrtAppendExecutionProvider(n, l, h, g, m) !== 0 && G(`Can\'t append execution provider: ${d}.`);\n }\n }, ao = async (n) => {\n let t = $(), a = 0, u = [], o = n || {};\n ms(o);\n try {\n let d = ds(o.graphOptimizationLevel ?? "all"), c = ps(o.executionMode ?? "sequential"), l = typeof o.logId == "string" ? ae(o.logId, u) : 0, m = o.logSeverityLevel ?? 2;\n if (!Number.isInteger(m) || m < 0 || m > 4)\n throw new Error(`log severity level is not valid: ${m}`);\n let h = o.logVerbosityLevel ?? 0;\n if (!Number.isInteger(h) || h < 0 || h > 4)\n throw new Error(`log verbosity level is not valid: ${h}`);\n let g = typeof o.optimizedModelFilePath == "string" ? ae(o.optimizedModelFilePath, u) : 0;\n if (a = t._OrtCreateSessionOptions(d, !!o.enableCpuMemArena, !!o.enableMemPattern, c, !!o.enableProfiling, 0, l, m, h, g), a === 0 && G("Can\'t create session options."), o.executionProviders && await hs(a, o, u), o.enableGraphCapture !== void 0) {\n if (typeof o.enableGraphCapture != "boolean")\n throw new Error(`enableGraphCapture must be a boolean value: ${o.enableGraphCapture}`);\n ke(a, "enableGraphCapture", o.enableGraphCapture.toString(), u);\n }\n if (o.freeDimensionOverrides)\n for (let [b, y] of Object.entries(o.freeDimensionOverrides)) {\n if (typeof b != "string")\n throw new Error(`free dimension override name must be a string: ${b}`);\n if (typeof y != "number" || !Number.isInteger(y) || y < 0)\n throw new Error(`free dimension override value must be a non-negative integer: ${y}`);\n let T = ae(b, u);\n t._OrtAddFreeDimensionOverride(a, T, y) !== 0 && G(`Can\'t set a free dimension override: ${b} - ${y}.`);\n }\n return o.extra !== void 0 && Ze(o.extra, "", /* @__PURE__ */ new WeakSet(), (b, y) => {\n ke(a, b, y, u);\n }), [a, u];\n } catch (d) {\n throw a !== 0 && t._OrtReleaseSessionOptions(a) !== 0 && G("Can\'t release session options."), u.forEach((c) => t._free(c)), d;\n }\n };\n });\n var We;\n var Ot;\n var Ge;\n var io;\n var uo;\n var At;\n var It;\n var fo;\n var fn = N(() => {\n "use strict";\n We = (n) => {\n switch (n) {\n case "int8":\n return 3;\n case "uint8":\n return 2;\n case "bool":\n return 9;\n case "int16":\n return 5;\n case "uint16":\n return 4;\n case "int32":\n return 6;\n case "uint32":\n return 12;\n case "float16":\n return 10;\n case "float32":\n return 1;\n case "float64":\n return 11;\n case "string":\n return 8;\n case "int64":\n return 7;\n case "uint64":\n return 13;\n case "int4":\n return 22;\n case "uint4":\n return 21;\n default:\n throw new Error(`unsupported data type: ${n}`);\n }\n }, Ot = (n) => {\n switch (n) {\n case 3:\n return "int8";\n case 2:\n return "uint8";\n case 9:\n return "bool";\n case 5:\n return "int16";\n case 4:\n return "uint16";\n case 6:\n return "int32";\n case 12:\n return "uint32";\n case 10:\n return "float16";\n case 1:\n return "float32";\n case 11:\n return "float64";\n case 8:\n return "string";\n case 7:\n return "int64";\n case 13:\n return "uint64";\n case 22:\n return "int4";\n case 21:\n return "uint4";\n default:\n throw new Error(`unsupported data type: ${n}`);\n }\n }, Ge = (n, t) => {\n let a = [-1, 4, 1, 1, 2, 2, 4, 8, -1, 1, 2, 8, 4, 8, -1, -1, -1, -1, -1, -1, -1, 0.5, 0.5][n], u = typeof t == "number" ? t : t.reduce((o, d) => o * d, 1);\n return a > 0 ? Math.ceil(u * a) : void 0;\n }, io = (n) => {\n switch (n) {\n case "float16":\n return typeof Float16Array < "u" && Float16Array.from ? Float16Array : Uint16Array;\n case "float32":\n return Float32Array;\n case "uint8":\n return Uint8Array;\n case "int8":\n return Int8Array;\n case "uint16":\n return Uint16Array;\n case "int16":\n return Int16Array;\n case "int32":\n return Int32Array;\n case "bool":\n return Uint8Array;\n case "float64":\n return Float64Array;\n case "uint32":\n return Uint32Array;\n case "int64":\n return BigInt64Array;\n case "uint64":\n return BigUint64Array;\n default:\n throw new Error(`unsupported type: ${n}`);\n }\n }, uo = (n) => {\n switch (n) {\n case "verbose":\n return 0;\n case "info":\n return 1;\n case "warning":\n return 2;\n case "error":\n return 3;\n case "fatal":\n return 4;\n default:\n throw new Error(`unsupported logging level: ${n}`);\n }\n }, At = (n) => n === "float32" || n === "float16" || n === "int32" || n === "int64" || n === "uint32" || n === "uint8" || n === "bool" || n === "uint4" || n === "int4", It = (n) => n === "float32" || n === "float16" || n === "int32" || n === "int64" || n === "uint32" || n === "uint64" || n === "int8" || n === "uint8" || n === "bool" || n === "uint4" || n === "int4", fo = (n) => {\n switch (n) {\n case "none":\n return 0;\n case "cpu":\n return 1;\n case "cpu-pinned":\n return 2;\n case "texture":\n return 3;\n case "gpu-buffer":\n return 4;\n case "ml-tensor":\n return 5;\n default:\n throw new Error(`unsupported data location: ${n}`);\n }\n };\n });\n var Ke;\n var cn = N(() => {\n "use strict";\n dt();\n Ke = async (n) => {\n if (typeof n == "string")\n if (false)\n try {\n let { readFile: t } = qt("node:fs/promises");\n return new Uint8Array(await t(n));\n } catch (t) {\n if (t.code === "ERR_FS_FILE_TOO_LARGE") {\n let { createReadStream: a } = qt("node:fs"), u = a(n), o = [];\n for await (let d of u)\n o.push(d);\n return new Uint8Array(Buffer.concat(o));\n }\n throw t;\n }\n else {\n let t = await fetch(n);\n if (!t.ok)\n throw new Error(`failed to load external data file: ${n}`);\n let a = t.headers.get("Content-Length"), u = a ? parseInt(a, 10) : 0;\n if (u < 1073741824)\n return new Uint8Array(await t.arrayBuffer());\n {\n if (!t.body)\n throw new Error(`failed to load external data file: ${n}, no response body.`);\n let o = t.body.getReader(), d;\n try {\n d = new ArrayBuffer(u);\n } catch (l) {\n if (l instanceof RangeError) {\n let m = Math.ceil(u / 65536);\n d = new WebAssembly.Memory({ initial: m, maximum: m }).buffer;\n } else\n throw l;\n }\n let c = 0;\n for (; ; ) {\n let { done: l, value: m } = await o.read();\n if (l)\n break;\n let h = m.byteLength;\n new Uint8Array(d, c, h).set(m), c += h;\n }\n return new Uint8Array(d, 0, u);\n }\n }\n else\n return n instanceof Blob ? new Uint8Array(await n.arrayBuffer()) : n instanceof Uint8Array ? n : new Uint8Array(n);\n };\n });\n var ws;\n var ht;\n var wt;\n var $e;\n var bs;\n var co;\n var Qe;\n var bt;\n var yt;\n var lo;\n var gt;\n var Et;\n var Tt;\n var rn = N(() => {\n "use strict";\n Te();\n oo();\n so();\n fn();\n xe();\n vt();\n cn();\n ws = (n, t) => {\n $()._OrtInit(n, t) !== 0 && G("Can\'t initialize onnxruntime.");\n }, ht = async (n) => {\n ws(n.wasm.numThreads, uo(n.logLevel));\n }, wt = async (n, t) => {\n $().asyncInit?.();\n let a = n.webgpu.adapter;\n if (t === "webgpu") {\n if (typeof navigator > "u" || !navigator.gpu)\n throw new Error("WebGPU is not supported in current environment");\n if (a) {\n if (typeof a.limits != "object" || typeof a.features != "object" || typeof a.requestDevice != "function")\n throw new Error("Invalid GPU adapter set in `env.webgpu.adapter`. It must be a GPUAdapter object.");\n } else {\n let u = n.webgpu.powerPreference;\n if (u !== void 0 && u !== "low-power" && u !== "high-performance")\n throw new Error(`Invalid powerPreference setting: "${u}"`);\n let o = n.webgpu.forceFallbackAdapter;\n if (o !== void 0 && typeof o != "boolean")\n throw new Error(`Invalid forceFallbackAdapter setting: "${o}"`);\n if (a = await navigator.gpu.requestAdapter({ powerPreference: u, forceFallbackAdapter: o }), !a)\n throw new Error(\'Failed to get GPU adapter. You may need to enable flag "--enable-unsafe-webgpu" if you are using Chrome.\');\n }\n }\n if (t === "webnn" && (typeof navigator > "u" || !navigator.ml))\n throw new Error("WebNN is not supported in current environment");\n }, $e = /* @__PURE__ */ new Map(), bs = (n) => {\n let t = $(), a = t.stackSave();\n try {\n let u = t.PTR_SIZE, o = t.stackAlloc(2 * u);\n t._OrtGetInputOutputCount(n, o, o + u) !== 0 && G("Can\'t get session input/output count.");\n let c = u === 4 ? "i32" : "i64";\n return [Number(t.getValue(o, c)), Number(t.getValue(o + u, c))];\n } finally {\n t.stackRestore(a);\n }\n }, co = (n, t) => {\n let a = $(), u = a.stackSave(), o = 0;\n try {\n let d = a.PTR_SIZE, c = a.stackAlloc(2 * d);\n a._OrtGetInputOutputMetadata(n, t, c, c + d) !== 0 && G("Can\'t get session input/output metadata.");\n let m = Number(a.getValue(c, "*"));\n o = Number(a.getValue(c + d, "*"));\n let h = a.HEAP32[o / 4];\n if (h === 0)\n return [m, 0];\n let g = a.HEAPU32[o / 4 + 1], b = [];\n for (let y = 0; y < g; y++) {\n let T = Number(a.getValue(o + 8 + y * d, "*"));\n b.push(T !== 0 ? a.UTF8ToString(T) : Number(a.getValue(o + 8 + (y + g) * d, "*")));\n }\n return [m, h, b];\n } finally {\n a.stackRestore(u), o !== 0 && a._OrtFree(o);\n }\n }, Qe = (n) => {\n let t = $(), a = t._malloc(n.byteLength);\n if (a === 0)\n throw new Error(`Can\'t create a session. failed to allocate a buffer of size ${n.byteLength}.`);\n return t.HEAPU8.set(n, a), [a, n.byteLength];\n }, bt = async (n, t) => {\n let a, u, o = $();\n Array.isArray(n) ? [a, u] = n : n.buffer === o.HEAPU8.buffer ? [a, u] = [n.byteOffset, n.byteLength] : [a, u] = Qe(n);\n let d = 0, c = 0, l = 0, m = [], h = [], g = [];\n try {\n if ([c, m] = await ao(t), t?.externalData && o.mountExternalData) {\n let _ = [];\n for (let k of t.externalData) {\n let w = typeof k == "string" ? k : k.path;\n _.push(Ke(typeof k == "string" ? k : k.data).then((Z) => {\n o.mountExternalData(w, Z);\n }));\n }\n await Promise.all(_);\n }\n for (let _ of t?.executionProviders ?? [])\n if ((typeof _ == "string" ? _ : _.name) === "webnn") {\n if (o.shouldTransferToMLTensor = false, typeof _ != "string") {\n let w = _, Z = w?.context, j = w?.gpuDevice, ne = w?.deviceType, pe = w?.powerPreference;\n Z ? o.currentContext = Z : j ? o.currentContext = await o.webnnCreateMLContext(j) : o.currentContext = await o.webnnCreateMLContext({ deviceType: ne, powerPreference: pe });\n } else\n o.currentContext = await o.webnnCreateMLContext();\n break;\n }\n d = await o._OrtCreateSession(a, u, c), o.webgpuOnCreateSession?.(d), d === 0 && G("Can\'t create a session."), o.jsepOnCreateSession?.(), o.currentContext && (o.webnnRegisterMLContext(d, o.currentContext), o.currentContext = void 0, o.shouldTransferToMLTensor = true);\n let [b, y] = bs(d), T = !!t?.enableGraphCapture, I = [], D = [], z = [], v = [], O = [];\n for (let _ = 0; _ < b; _++) {\n let [k, w, Z] = co(d, _);\n k === 0 && G("Can\'t get an input name."), h.push(k);\n let j = o.UTF8ToString(k);\n I.push(j), z.push(w === 0 ? { name: j, isTensor: false } : { name: j, isTensor: true, type: Ot(w), shape: Z });\n }\n for (let _ = 0; _ < y; _++) {\n let [k, w, Z] = co(d, _ + b);\n k === 0 && G("Can\'t get an output name."), g.push(k);\n let j = o.UTF8ToString(k);\n D.push(j), v.push(w === 0 ? { name: j, isTensor: false } : { name: j, isTensor: true, type: Ot(w), shape: Z });\n }\n return $e.set(d, [d, h, g, null, T, false]), [d, I, D, z, v];\n } catch (b) {\n throw h.forEach((y) => o._OrtFree(y)), g.forEach((y) => o._OrtFree(y)), l !== 0 && o._OrtReleaseBinding(l) !== 0 && G("Can\'t release IO binding."), d !== 0 && o._OrtReleaseSession(d) !== 0 && G("Can\'t release session."), b;\n } finally {\n o._free(a), c !== 0 && o._OrtReleaseSessionOptions(c) !== 0 && G("Can\'t release session options."), m.forEach((b) => o._free(b)), o.unmountExternalData?.();\n }\n }, yt = (n) => {\n let t = $(), a = $e.get(n);\n if (!a)\n throw new Error(`cannot release session. invalid session id: ${n}`);\n let [u, o, d, c, l] = a;\n c && (l && t._OrtClearBoundOutputs(c.handle) !== 0 && G("Can\'t clear bound outputs."), t._OrtReleaseBinding(c.handle) !== 0 && G("Can\'t release IO binding.")), t.jsepOnReleaseSession?.(n), t.webnnOnReleaseSession?.(n), t.webgpuOnReleaseSession?.(n), o.forEach((m) => t._OrtFree(m)), d.forEach((m) => t._OrtFree(m)), t._OrtReleaseSession(u) !== 0 && G("Can\'t release session."), $e.delete(n);\n }, lo = async (n, t, a, u, o, d, c = false) => {\n if (!n) {\n t.push(0);\n return;\n }\n let l = $(), m = l.PTR_SIZE, h = n[0], g = n[1], b = n[3], y = b, T, I;\n if (h === "string" && (b === "gpu-buffer" || b === "ml-tensor"))\n throw new Error("String tensor is not supported on GPU.");\n if (c && b !== "gpu-buffer")\n throw new Error(`External buffer must be provided for input/output index ${d} when enableGraphCapture is true.`);\n if (b === "gpu-buffer") {\n let v = n[2].gpuBuffer;\n I = Ge(We(h), g);\n {\n let O = l.jsepRegisterBuffer;\n if (!O)\n throw new Error(\'Tensor location "gpu-buffer" is not supported without using WebGPU.\');\n T = O(u, d, v, I);\n }\n } else if (b === "ml-tensor") {\n let v = n[2].mlTensor;\n I = Ge(We(h), g);\n let O = l.webnnRegisterMLTensor;\n if (!O)\n throw new Error(\'Tensor location "ml-tensor" is not supported without using WebNN.\');\n T = O(u, v, We(h), g);\n } else {\n let v = n[2];\n if (Array.isArray(v)) {\n I = m * v.length, T = l._malloc(I), a.push(T);\n for (let O = 0; O < v.length; O++) {\n if (typeof v[O] != "string")\n throw new TypeError(`tensor data at index ${O} is not a string`);\n l.setValue(T + O * m, ae(v[O], a), "*");\n }\n } else {\n let O = l.webnnIsGraphInput, F = l.webnnIsGraphOutput;\n if (h !== "string" && O && F) {\n let _ = l.UTF8ToString(o);\n if (O(u, _) || F(u, _)) {\n let k = We(h);\n I = Ge(k, g), y = "ml-tensor";\n let w = l.webnnCreateTemporaryTensor, Z = l.webnnUploadTensor;\n if (!w || !Z)\n throw new Error(\'Tensor location "ml-tensor" is not supported without using WebNN.\');\n let j = await w(u, k, g);\n Z(j, new Uint8Array(v.buffer, v.byteOffset, v.byteLength)), T = j;\n } else\n I = v.byteLength, T = l._malloc(I), a.push(T), l.HEAPU8.set(new Uint8Array(v.buffer, v.byteOffset, I), T);\n } else\n I = v.byteLength, T = l._malloc(I), a.push(T), l.HEAPU8.set(new Uint8Array(v.buffer, v.byteOffset, I), T);\n }\n }\n let D = l.stackSave(), z = l.stackAlloc(4 * g.length);\n try {\n g.forEach((O, F) => l.setValue(z + F * m, O, m === 4 ? "i32" : "i64"));\n let v = l._OrtCreateTensor(We(h), T, I, z, g.length, fo(y));\n v === 0 && G(`Can\'t create tensor for input/output. session=${u}, index=${d}.`), t.push(v);\n } finally {\n l.stackRestore(D);\n }\n }, gt = async (n, t, a, u, o, d) => {\n let c = $(), l = c.PTR_SIZE, m = $e.get(n);\n if (!m)\n throw new Error(`cannot run inference. invalid session id: ${n}`);\n let h = m[0], g = m[1], b = m[2], y = m[3], T = m[4], I = m[5], D = t.length, z = u.length, v = 0, O = [], F = [], _ = [], k = [], w = [], Z = c.stackSave(), j = c.stackAlloc(D * l), ne = c.stackAlloc(D * l), pe = c.stackAlloc(z * l), B = c.stackAlloc(z * l);\n try {\n [v, O] = ro(d), De("wasm prepareInputOutputTensor");\n for (let A = 0; A < D; A++)\n await lo(a[A], F, k, n, g[t[A]], t[A], T);\n for (let A = 0; A < z; A++)\n await lo(o[A], _, k, n, b[u[A]], D + u[A], T);\n Ue("wasm prepareInputOutputTensor");\n for (let A = 0; A < D; A++)\n c.setValue(j + A * l, F[A], "*"), c.setValue(ne + A * l, g[t[A]], "*");\n for (let A = 0; A < z; A++)\n c.setValue(pe + A * l, _[A], "*"), c.setValue(B + A * l, b[u[A]], "*");\n c.jsepOnRunStart?.(h), c.webnnOnRunStart?.(h);\n let W;\n W = await c._OrtRun(h, ne, j, D, B, z, pe, v), W !== 0 && G("failed to call OrtRun().");\n let re = [], me = [];\n De("wasm ProcessOutputTensor");\n for (let A = 0; A < z; A++) {\n let K = Number(c.getValue(pe + A * l, "*"));\n if (K === _[A] || w.includes(_[A])) {\n re.push(o[A]), K !== _[A] && c._OrtReleaseTensor(K) !== 0 && G("Can\'t release tensor.");\n continue;\n }\n let je = c.stackSave(), ee = c.stackAlloc(4 * l), he = false, H, q = 0;\n try {\n c._OrtGetTensorData(K, ee, ee + l, ee + 2 * l, ee + 3 * l) !== 0 && G(`Can\'t access output tensor data on index ${A}.`);\n let Se = l === 4 ? "i32" : "i64", ve = Number(c.getValue(ee, Se));\n q = c.getValue(ee + l, "*");\n let Ve = c.getValue(ee + l * 2, "*"), Re = Number(c.getValue(ee + l * 3, Se)), te = [];\n for (let L = 0; L < Re; L++)\n te.push(Number(c.getValue(Ve + L * l, Se)));\n c._OrtFree(Ve) !== 0 && G("Can\'t free memory for tensor dims.");\n let ue = te.reduce((L, V) => L * V, 1);\n H = Ot(ve);\n let se = y?.outputPreferredLocations[u[A]];\n if (H === "string") {\n if (se === "gpu-buffer" || se === "ml-tensor")\n throw new Error("String tensor is not supported on GPU.");\n let L = [];\n for (let V = 0; V < ue; V++) {\n let fe = c.getValue(q + V * l, "*"), ye = c.getValue(q + (V + 1) * l, "*"), ce = V === ue - 1 ? void 0 : ye - fe;\n L.push(c.UTF8ToString(fe, ce));\n }\n re.push([H, te, L, "cpu"]);\n } else if (se === "gpu-buffer" && ue > 0) {\n let L = c.jsepGetBuffer;\n if (!L)\n throw new Error(\'preferredLocation "gpu-buffer" is not supported without using WebGPU.\');\n let V = L(q), fe = Ge(ve, ue);\n if (fe === void 0 || !At(H))\n throw new Error(`Unsupported data type: ${H}`);\n he = true, re.push([H, te, { gpuBuffer: V, download: c.jsepCreateDownloader(V, fe, H), dispose: () => {\n c._OrtReleaseTensor(K) !== 0 && G("Can\'t release tensor.");\n } }, "gpu-buffer"]);\n } else if (se === "ml-tensor" && ue > 0) {\n let L = c.webnnEnsureTensor, V = c.webnnIsGraphInputOutputTypeSupported;\n if (!L || !V)\n throw new Error(\'preferredLocation "ml-tensor" is not supported without using WebNN.\');\n if (Ge(ve, ue) === void 0 || !It(H))\n throw new Error(`Unsupported data type: ${H}`);\n if (!V(n, H, false))\n throw new Error(`preferredLocation "ml-tensor" for ${H} output is not supported by current WebNN Context.`);\n let ye = await L(n, q, ve, te, false);\n he = true, re.push([H, te, { mlTensor: ye, download: c.webnnCreateMLTensorDownloader(q, H), dispose: () => {\n c.webnnReleaseTensorId(q), c._OrtReleaseTensor(K);\n } }, "ml-tensor"]);\n } else if (se === "ml-tensor-cpu-output" && ue > 0) {\n let L = c.webnnCreateMLTensorDownloader(q, H)(), V = re.length;\n he = true, me.push((async () => {\n let fe = [V, await L];\n return c.webnnReleaseTensorId(q), c._OrtReleaseTensor(K), fe;\n })()), re.push([H, te, [], "cpu"]);\n } else {\n let L = io(H), V = new L(ue);\n new Uint8Array(V.buffer, V.byteOffset, V.byteLength).set(c.HEAPU8.subarray(q, q + V.byteLength)), re.push([H, te, V, "cpu"]);\n }\n } finally {\n c.stackRestore(je), H === "string" && q && c._free(q), he || c._OrtReleaseTensor(K);\n }\n }\n y && !T && (c._OrtClearBoundOutputs(y.handle) !== 0 && G("Can\'t clear bound outputs."), $e.set(n, [h, g, b, y, T, false]));\n for (let [A, K] of await Promise.all(me))\n re[A][2] = K;\n return Ue("wasm ProcessOutputTensor"), re;\n } finally {\n c.webnnOnRunEnd?.(h), c.stackRestore(Z), F.forEach((W) => c._OrtReleaseTensor(W)), _.forEach((W) => c._OrtReleaseTensor(W)), k.forEach((W) => c._free(W)), v !== 0 && c._OrtReleaseRunOptions(v), O.forEach((W) => c._free(W));\n }\n }, Et = (n) => {\n let t = $(), a = $e.get(n);\n if (!a)\n throw new Error("invalid session id");\n let u = a[0], o = t._OrtEndProfiling(u);\n o === 0 && G("Can\'t get an profile file name."), t._OrtFree(o);\n }, Tt = (n) => {\n let t = [];\n for (let a of n) {\n let u = a[2];\n !Array.isArray(u) && "buffer" in u && t.push(u.buffer);\n }\n return t;\n };\n });\n var Ce;\n var ie;\n var et;\n var Lt;\n var _t;\n var Bt;\n var ln;\n var dn;\n var ze;\n var He;\n var gs;\n var po;\n var mo;\n var ho;\n var wo;\n var bo;\n var yo;\n var go;\n var pn = N(() => {\n "use strict";\n Te();\n rn();\n xe();\n pt();\n Ce = () => !!Y.wasm.proxy && typeof document < "u", et = false, Lt = false, _t = false, dn = /* @__PURE__ */ new Map(), ze = (n, t) => {\n let a = dn.get(n);\n a ? a.push(t) : dn.set(n, [t]);\n }, He = () => {\n if (et || !Lt || _t || !ie)\n throw new Error("worker not ready");\n }, gs = (n) => {\n switch (n.data.type) {\n case "init-wasm":\n et = false, n.data.err ? (_t = true, ln[1](n.data.err)) : (Lt = true, ln[0]()), Bt && (URL.revokeObjectURL(Bt), Bt = void 0);\n break;\n case "init-ep":\n case "copy-from":\n case "create":\n case "release":\n case "run":\n case "end-profiling": {\n let t = dn.get(n.data.type);\n n.data.err ? t.shift()[1](n.data.err) : t.shift()[0](n.data.out);\n break;\n }\n default:\n }\n }, po = async () => {\n if (!Lt) {\n if (et)\n throw new Error("multiple calls to \'initWasm()\' detected.");\n if (_t)\n throw new Error("previous call to \'initWasm()\' failed.");\n if (et = true, Ce())\n return new Promise((n, t) => {\n ie?.terminate(), eo().then(([a, u]) => {\n try {\n ie = u, ie.onerror = (d) => t(d), ie.onmessage = gs, ln = [n, t];\n let o = { type: "init-wasm", in: Y };\n !o.in.wasm.wasmPaths && (a || an) && (o.in.wasm.wasmPaths = { wasm: new URL("ort-wasm-simd-threaded.wasm", import_meta.url).href }), ie.postMessage(o), Bt = a;\n } catch (o) {\n t(o);\n }\n }, t);\n });\n try {\n await mt(Y.wasm), await ht(Y), Lt = true;\n } catch (n) {\n throw _t = true, n;\n } finally {\n et = false;\n }\n }\n }, mo = async (n) => {\n if (Ce())\n return He(), new Promise((t, a) => {\n ze("init-ep", [t, a]);\n let u = { type: "init-ep", in: { epName: n, env: Y } };\n ie.postMessage(u);\n });\n await wt(Y, n);\n }, ho = async (n) => Ce() ? (He(), new Promise((t, a) => {\n ze("copy-from", [t, a]);\n let u = { type: "copy-from", in: { buffer: n } };\n ie.postMessage(u, [n.buffer]);\n })) : Qe(n), wo = async (n, t) => {\n if (Ce()) {\n if (t?.preferredOutputLocation)\n throw new Error(\'session option "preferredOutputLocation" is not supported for proxy.\');\n return He(), new Promise((a, u) => {\n ze("create", [a, u]);\n let o = { type: "create", in: { model: n, options: { ...t } } }, d = [];\n n instanceof Uint8Array && d.push(n.buffer), ie.postMessage(o, d);\n });\n } else\n return bt(n, t);\n }, bo = async (n) => {\n if (Ce())\n return He(), new Promise((t, a) => {\n ze("release", [t, a]);\n let u = { type: "release", in: n };\n ie.postMessage(u);\n });\n yt(n);\n }, yo = async (n, t, a, u, o, d) => {\n if (Ce()) {\n if (a.some((c) => c[3] !== "cpu"))\n throw new Error("input tensor on GPU is not supported for proxy.");\n if (o.some((c) => c))\n throw new Error("pre-allocated output tensor is not supported for proxy.");\n return He(), new Promise((c, l) => {\n ze("run", [c, l]);\n let m = a, h = { type: "run", in: { sessionId: n, inputIndices: t, inputs: m, outputIndices: u, options: d } };\n ie.postMessage(h, Tt(m));\n });\n } else\n return gt(n, t, a, u, o, d);\n }, go = async (n) => {\n if (Ce())\n return He(), new Promise((t, a) => {\n ze("end-profiling", [t, a]);\n let u = { type: "end-profiling", in: n };\n ie.postMessage(u);\n });\n Et(n);\n };\n });\n var Eo;\n var Es;\n var Pt;\n var To = N(() => {\n "use strict";\n Te();\n pn();\n fn();\n dt();\n cn();\n Eo = (n, t) => {\n switch (n.location) {\n case "cpu":\n return [n.type, n.dims, n.data, "cpu"];\n case "gpu-buffer":\n return [n.type, n.dims, { gpuBuffer: n.gpuBuffer }, "gpu-buffer"];\n case "ml-tensor":\n return [n.type, n.dims, { mlTensor: n.mlTensor }, "ml-tensor"];\n default:\n throw new Error(`invalid data location: ${n.location} for ${t()}`);\n }\n }, Es = (n) => {\n switch (n[3]) {\n case "cpu":\n return new de(n[0], n[2], n[1]);\n case "gpu-buffer": {\n let t = n[0];\n if (!At(t))\n throw new Error(`not supported data type: ${t} for deserializing GPU tensor`);\n let { gpuBuffer: a, download: u, dispose: o } = n[2];\n return de.fromGpuBuffer(a, { dataType: t, dims: n[1], download: u, dispose: o });\n }\n case "ml-tensor": {\n let t = n[0];\n if (!It(t))\n throw new Error(`not supported data type: ${t} for deserializing MLTensor tensor`);\n let { mlTensor: a, download: u, dispose: o } = n[2];\n return de.fromMLTensor(a, { dataType: t, dims: n[1], download: u, dispose: o });\n }\n default:\n throw new Error(`invalid data location: ${n[3]}`);\n }\n }, Pt = class {\n async fetchModelAndCopyToWasmMemory(t) {\n return ho(await Ke(t));\n }\n async loadModel(t, a) {\n _e();\n let u;\n typeof t == "string" ? u = await this.fetchModelAndCopyToWasmMemory(t) : u = t, [this.sessionId, this.inputNames, this.outputNames, this.inputMetadata, this.outputMetadata] = await wo(u, a), Pe();\n }\n async dispose() {\n return bo(this.sessionId);\n }\n async run(t, a, u) {\n _e();\n let o = [], d = [];\n Object.entries(t).forEach((y) => {\n let T = y[0], I = y[1], D = this.inputNames.indexOf(T);\n if (D === -1)\n throw new Error(`invalid input \'${T}\'`);\n o.push(I), d.push(D);\n });\n let c = [], l = [];\n Object.entries(a).forEach((y) => {\n let T = y[0], I = y[1], D = this.outputNames.indexOf(T);\n if (D === -1)\n throw new Error(`invalid output \'${T}\'`);\n c.push(I), l.push(D);\n });\n let m = o.map((y, T) => Eo(y, () => `input "${this.inputNames[d[T]]}"`)), h = c.map((y, T) => y ? Eo(y, () => `output "${this.outputNames[l[T]]}"`) : null), g = await yo(this.sessionId, d, m, l, h, u), b = {};\n for (let y = 0; y < g.length; y++)\n b[this.outputNames[l[y]]] = c[y] ?? Es(g[y]);\n return Pe(), b;\n }\n startProfiling() {\n }\n endProfiling() {\n go(this.sessionId);\n }\n };\n });\n var vo = {};\n ut(vo, { OnnxruntimeWebAssemblyBackend: () => Dt, initializeFlags: () => So, wasmBackend: () => Ts });\n var So;\n var Dt;\n var Ts;\n var Oo = N(() => {\n "use strict";\n Te();\n pn();\n To();\n So = () => {\n (typeof Y.wasm.initTimeout != "number" || Y.wasm.initTimeout < 0) && (Y.wasm.initTimeout = 0);\n let n = Y.wasm.simd;\n if (typeof n != "boolean" && n !== void 0 && n !== "fixed" && n !== "relaxed" && (console.warn(`Property "env.wasm.simd" is set to unknown value "${n}". Reset it to \\`false\\` and ignore SIMD feature checking.`), Y.wasm.simd = false), typeof Y.wasm.proxy != "boolean" && (Y.wasm.proxy = false), typeof Y.wasm.trace != "boolean" && (Y.wasm.trace = false), typeof Y.wasm.numThreads != "number" || !Number.isInteger(Y.wasm.numThreads) || Y.wasm.numThreads <= 0)\n if (typeof self < "u" && !self.crossOriginIsolated)\n Y.wasm.numThreads = 1;\n else {\n let t = typeof navigator > "u" ? qt("node:os").cpus().length : navigator.hardwareConcurrency;\n Y.wasm.numThreads = Math.min(4, Math.ceil((t || 1) / 2));\n }\n }, Dt = class {\n async init(t) {\n So(), await po(), await mo(t);\n }\n async createInferenceSessionHandler(t, a) {\n let u = new Pt();\n return await u.loadModel(t, a), u;\n }\n }, Ts = new Dt();\n });\n Te();\n Te();\n Te();\n var Gr = "1.26.0";\n {\n let n = (Oo(), Xt(vo)).wasmBackend;\n qe("cpu", n, 10), qe("wasm", n, 10);\n }\n Object.defineProperty(Y.versions, "web", { value: Gr, enumerable: true });\n\n // src/workers/VadAiWorker.ts\n var CHUNK_SIZE = 320;\n var MODEL_EXTERNAL_DATA_PATH = "bcresnet_no_center_mult2_20ms.onnx.data";\n var STATE_INPUT_DIMS_PBTXT = {\n audio_input_state: [800],\n input_states_0: [1, 4, 43],\n input_states_1: [16, 2, 1],\n input_states_2: [16, 2, 1],\n input_states_3: [24, 4, 1],\n input_states_4: [24, 4, 1],\n input_states_5: [32, 8, 1],\n input_states_6: [32, 8, 1],\n input_states_7: [32, 8, 1],\n input_states_8: [32, 8, 1],\n input_states_9: [40, 16, 1],\n input_states_10: [40, 16, 1],\n input_states_11: [40, 16, 1],\n input_states_12: [40, 16, 1],\n input_states_13: [40, 4, 5],\n input_states_14: [64, 30, 1]\n };\n var BATCH_SIZE = 1;\n var STATE_INPUT_DIMS = Object.fromEntries(\n Object.entries(STATE_INPUT_DIMS_PBTXT).map(([name, dims]) => [\n name,\n [BATCH_SIZE, ...dims]\n ])\n );\n var STATE_OUTPUT_TO_INPUT = {\n audio_output_state: "audio_input_state",\n output_states_0: "input_states_0",\n output_states_1: "input_states_1",\n output_states_2: "input_states_2",\n output_states_3: "input_states_3",\n output_states_4: "input_states_4",\n output_states_5: "input_states_5",\n output_states_6: "input_states_6",\n output_states_7: "input_states_7",\n output_states_8: "input_states_8",\n output_states_9: "input_states_9",\n output_states_10: "input_states_10",\n output_states_11: "input_states_11",\n output_states_12: "input_states_12",\n output_states_13: "input_states_13",\n output_states_14: "input_states_14"\n };\n var VadAiWorker_default = (modelUrl, modelDataUrl, ortWasmUrl, ortMjsUrl) => {\n let session = null;\n let state = null;\n let buffer = new Float32Array(0);\n let inferBusy = false;\n function postError(error) {\n self.postMessage({\n type: "error" /* ERROR */,\n error: error instanceof Error ? error.message : String(error)\n });\n }\n async function init() {\n Y.wasm.wasmPaths = { wasm: ortWasmUrl, mjs: ortMjsUrl };\n Y.wasm.numThreads = 1;\n const [modelRes, dataRes] = await Promise.all([\n fetch(modelUrl),\n fetch(modelDataUrl)\n ]);\n if (!modelRes.ok) {\n throw new Error(`Model fetch failed: ${modelRes.status} ${modelRes.statusText}`);\n }\n if (!dataRes.ok) {\n throw new Error(`Model data fetch failed: ${dataRes.status} ${dataRes.statusText}`);\n }\n const [modelBytes, dataBytes] = await Promise.all([\n modelRes.arrayBuffer(),\n dataRes.arrayBuffer()\n ]);\n session = await ts.create(new Uint8Array(modelBytes), {\n executionProviders: ["wasm"],\n externalData: [\n {\n path: MODEL_EXTERNAL_DATA_PATH,\n data: new Uint8Array(dataBytes)\n }\n ]\n });\n state = createZeroStateTensors(session, de);\n }\n function appendBuffer(chunk) {\n const next = new Float32Array(buffer.length + chunk.length);\n next.set(buffer, 0);\n next.set(chunk, buffer.length);\n buffer = next;\n }\n async function runChunk(chunk) {\n if (!session || !state || inferBusy) {\n return;\n }\n inferBusy = true;\n try {\n const audioTensor = new de("float32", chunk, [1, CHUNK_SIZE]);\n const feeds = {\n audio: audioTensor,\n ...state\n };\n const results = await session.run(feeds);\n updateStateFromOutputs(state, results);\n const probs = results.voice_probs?.data;\n if (!probs || probs.length < 2) {\n return;\n }\n const speechProb = Math.max(probs[0], probs[1]);\n const silenceProb = 1 - speechProb;\n self.postMessage({\n type: "data" /* DATA */,\n data: { speechProb, silenceProb }\n });\n } catch (err) {\n postError(err);\n } finally {\n inferBusy = false;\n }\n }\n function onAudio(data) {\n const samples = new Float32Array(data);\n appendBuffer(samples);\n while (buffer.length >= CHUNK_SIZE) {\n const chunk = new Float32Array(buffer.subarray(0, CHUNK_SIZE));\n buffer = new Float32Array(buffer.subarray(CHUNK_SIZE));\n void runChunk(chunk);\n }\n }\n init().then(() => {\n self.onmessage = (event) => {\n onAudio(event.data.data);\n };\n self.postMessage({ type: "init" /* INIT */ });\n }).catch(postError);\n };\n function updateStateFromOutputs(state, outputs) {\n for (const [outName, inName] of Object.entries(STATE_OUTPUT_TO_INPUT)) {\n const next = outputs[outName];\n if (next) {\n state[inName] = next;\n }\n }\n }\n function createZeroStateTensors(session, TensorCtor) {\n const state = {};\n for (const name of session.inputNames) {\n if (name === "audio") {\n continue;\n }\n const dims = STATE_INPUT_DIMS[name];\n if (!dims) {\n continue;\n }\n const size = dims.reduce((a, b) => a * b, 1);\n state[name] = new TensorCtor("float32", new Float32Array(size), dims);\n }\n return state;\n }\n return __toCommonJS(VadAiWorker_exports);\n})();\n/*! Bundled license information:\n\nonnxruntime-web/dist/ort.wasm.bundle.min.mjs:\n (*!\n * ONNX Runtime Web v1.26.0\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n *)\n*/\n',
4878
- // createBlobObject inlines workerArgs via Array.prototype.join(',') into raw JS source,
4879
- // so bare URL strings would be parsed as identifiers. JSON.stringify quotes them safely.
4880
- workerArgs: [
4881
- JSON.stringify(MODEL_URL),
4882
- JSON.stringify(MODEL_DATA_URL),
4883
- JSON.stringify(ORT_WASM_URL),
4884
- JSON.stringify(ORT_MJS_URL)
4942
+ workerFunctionString: isTflite ? '"use strict";\nvar exports = (() => {\n var __defProp = Object.defineProperty;\n var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n var __getOwnPropNames = Object.getOwnPropertyNames;\n var __hasOwnProp = Object.prototype.hasOwnProperty;\n var __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n };\n var __copyProps = (to, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n };\n var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);\n\n // src/workers/VadTfliteWorker.ts\n var VadTfliteWorker_exports = {};\n __export(VadTfliteWorker_exports, {\n default: () => VadTfliteWorker_default\n });\n var INPUT_SAMPLES = 320;\n var VadTfliteWorker_default = (createWav2lipModule, urlResolver) => {\n let Wav2lip = null;\n let classifier = null;\n let buffer = new Float32Array(0);\n function init() {\n return createWav2lipModule({ locateFile: urlResolver }).then((module) => {\n Wav2lip = module;\n const configInput = new Wav2lip.ConfigInput("vad.cfg", true, "/");\n const config = new Wav2lip.Config(configInput);\n classifier = Wav2lip.AudioClassifierFactory.createAlgorithm(config);\n });\n }\n function postError(error) {\n self.postMessage({\n type: "error" /* ERROR */,\n error: typeof error === "number" && Wav2lip ? Wav2lip.getExMessage(error) : error\n });\n }\n function appendBuffer(chunk) {\n const next = new Float32Array(buffer.length + chunk.length);\n next.set(buffer, 0);\n next.set(chunk, buffer.length);\n buffer = next;\n }\n function processAudio(data) {\n if (!classifier || !Wav2lip) {\n return;\n }\n try {\n appendBuffer(new Float32Array(data));\n while (buffer.length >= INPUT_SAMPLES) {\n const chunk = buffer.subarray(0, INPUT_SAMPLES);\n buffer = buffer.subarray(INPUT_SAMPLES);\n const inputVec = new Wav2lip.vector$float$();\n for (let i = 0; i < INPUT_SAMPLES; i++) {\n inputVec.push_back(chunk[i]);\n }\n const probs = Wav2lip.vadAccept(classifier, inputVec);\n inputVec.delete();\n const probsSize = probs.size();\n if (probsSize >= 4) {\n const speech0 = probs.get(1);\n const speech1 = probs.get(3);\n const speechProb = Math.max(speech0, speech1);\n self.postMessage({\n type: "data" /* DATA */,\n data: {\n speechProb,\n silenceProb: 1 - speechProb\n }\n });\n }\n probs.delete();\n }\n } catch (error) {\n postError(error);\n }\n }\n init().then(() => {\n self.onmessage = (event) => {\n processAudio(event.data.data);\n };\n self.postMessage({ type: "init" /* INIT */ });\n }).catch(postError);\n };\n return __toCommonJS(VadTfliteWorker_exports);\n})();\n' : '"use strict";\nvar exports = (() => {\n var __defProp = Object.defineProperty;\n var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n var __getOwnPropNames = Object.getOwnPropertyNames;\n var __hasOwnProp = Object.prototype.hasOwnProperty;\n var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {\n get: (a, b) => (typeof require !== "undefined" ? require : a)[b]\n }) : x)(function(x) {\n if (typeof require !== "undefined")\n return require.apply(this, arguments);\n throw new Error(\'Dynamic require of "\' + x + \'" is not supported\');\n });\n var __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n };\n var __copyProps = (to2, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to2, key) && key !== except)\n __defProp(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to2;\n };\n var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);\n\n // src/workers/VadOnnxWorker.ts\n var VadOnnxWorker_exports = {};\n __export(VadOnnxWorker_exports, {\n default: () => VadOnnxWorker_default\n });\n\n // node_modules/onnxruntime-web/dist/ort.wasm.bundle.min.mjs\n var import_meta = {};\n var Jt = Object.defineProperty;\n var Xa = Object.getOwnPropertyDescriptor;\n var Qa = Object.getOwnPropertyNames;\n var Za = Object.prototype.hasOwnProperty;\n var qt = ((n) => typeof __require < "u" ? __require : typeof Proxy < "u" ? new Proxy(n, { get: (t, a) => (typeof __require < "u" ? __require : t)[a] }) : n)(function(n) {\n if (typeof __require < "u")\n return __require.apply(this, arguments);\n throw Error(\'Dynamic require of "\' + n + \'" is not supported\');\n });\n var N = (n, t) => () => (n && (t = n(n = 0)), t);\n var ut = (n, t) => {\n for (var a in t)\n Jt(n, a, { get: t[a], enumerable: true });\n };\n var Ka = (n, t, a, u) => {\n if (t && typeof t == "object" || typeof t == "function")\n for (let o of Qa(t))\n !Za.call(n, o) && o !== a && Jt(n, o, { get: () => t[o], enumerable: !(u = Xa(t, o)) || u.enumerable });\n return n;\n };\n var Xt = (n) => Ka(Jt({}, "__esModule", { value: true }), n);\n var ft;\n var Be;\n var qe;\n var es;\n var dr;\n var Qt = N(() => {\n "use strict";\n ft = /* @__PURE__ */ new Map(), Be = [], qe = (n, t, a) => {\n if (t && typeof t.init == "function" && typeof t.createInferenceSessionHandler == "function") {\n let u = ft.get(n);\n if (u === void 0)\n ft.set(n, { backend: t, priority: a });\n else {\n if (u.priority > a)\n return;\n if (u.priority === a && u.backend !== t)\n throw new Error(`cannot register backend "${n}" using priority ${a}`);\n }\n if (a >= 0) {\n let o = Be.indexOf(n);\n o !== -1 && Be.splice(o, 1);\n for (let d = 0; d < Be.length; d++)\n if (ft.get(Be[d]).priority <= a) {\n Be.splice(d, 0, n);\n return;\n }\n Be.push(n);\n }\n return;\n }\n throw new TypeError("not a valid backend");\n }, es = async (n) => {\n let t = ft.get(n);\n if (!t)\n return "backend not found.";\n if (t.initialized)\n return t.backend;\n if (t.aborted)\n return t.error;\n {\n let a = !!t.initPromise;\n try {\n return a || (t.initPromise = t.backend.init(n)), await t.initPromise, t.initialized = true, t.backend;\n } catch (u) {\n return a || (t.error = `${u}`, t.aborted = true), t.error;\n } finally {\n delete t.initPromise;\n }\n }\n }, dr = async (n) => {\n let t = n.executionProviders || [], a = t.map((m) => typeof m == "string" ? m : m.name), u = a.length === 0 ? Be : a, o, d = [], c = /* @__PURE__ */ new Set();\n for (let m of u) {\n let h = await es(m);\n typeof h == "string" ? d.push({ name: m, err: h }) : (o || (o = h), o === h && c.add(m));\n }\n if (!o)\n throw new Error(`no available backend found. ERR: ${d.map((m) => `[${m.name}] ${m.err}`).join(", ")}`);\n for (let { name: m, err: h } of d)\n a.includes(m) && console.warn(`removing requested execution provider "${m}" from session options because it is not available: ${h}`);\n let l = t.filter((m) => c.has(typeof m == "string" ? m : m.name));\n return [o, new Proxy(n, { get: (m, h) => h === "executionProviders" ? l : Reflect.get(m, h) })];\n };\n });\n var pr = N(() => {\n "use strict";\n Qt();\n });\n var mr;\n var hr = N(() => {\n "use strict";\n mr = "1.26.0";\n });\n var wr;\n var J;\n var Zt = N(() => {\n "use strict";\n hr();\n wr = "warning", J = { wasm: {}, webgl: {}, webgpu: {}, versions: { common: mr }, set logLevel(n) {\n if (n !== void 0) {\n if (typeof n != "string" || ["verbose", "info", "warning", "error", "fatal"].indexOf(n) === -1)\n throw new Error(`Unsupported logging level: ${n}`);\n wr = n;\n }\n }, get logLevel() {\n return wr;\n } };\n Object.defineProperty(J, "logLevel", { enumerable: true });\n });\n var Y;\n var br = N(() => {\n "use strict";\n Zt();\n Y = J;\n });\n var yr;\n var gr;\n var Er = N(() => {\n "use strict";\n yr = (n, t) => {\n let a = typeof document < "u" ? document.createElement("canvas") : new OffscreenCanvas(1, 1);\n a.width = n.dims[3], a.height = n.dims[2];\n let u = a.getContext("2d");\n if (u != null) {\n let o, d;\n t?.tensorLayout !== void 0 && t.tensorLayout === "NHWC" ? (o = n.dims[2], d = n.dims[3]) : (o = n.dims[3], d = n.dims[2]);\n let c = t?.format !== void 0 ? t.format : "RGB", l = t?.norm, m, h;\n l === void 0 || l.mean === void 0 ? m = [255, 255, 255, 255] : typeof l.mean == "number" ? m = [l.mean, l.mean, l.mean, l.mean] : (m = [l.mean[0], l.mean[1], l.mean[2], 0], l.mean[3] !== void 0 && (m[3] = l.mean[3])), l === void 0 || l.bias === void 0 ? h = [0, 0, 0, 0] : typeof l.bias == "number" ? h = [l.bias, l.bias, l.bias, l.bias] : (h = [l.bias[0], l.bias[1], l.bias[2], 0], l.bias[3] !== void 0 && (h[3] = l.bias[3]));\n let g = d * o, b = 0, y = g, T = g * 2, I = -1;\n c === "RGBA" ? (b = 0, y = g, T = g * 2, I = g * 3) : c === "RGB" ? (b = 0, y = g, T = g * 2) : c === "RBG" && (b = 0, T = g, y = g * 2);\n for (let D = 0; D < d; D++)\n for (let z = 0; z < o; z++) {\n let v = (n.data[b++] - h[0]) * m[0], O = (n.data[y++] - h[1]) * m[1], F = (n.data[T++] - h[2]) * m[2], _ = I === -1 ? 255 : (n.data[I++] - h[3]) * m[3];\n u.fillStyle = "rgba(" + v + "," + O + "," + F + "," + _ + ")", u.fillRect(z, D, 1, 1);\n }\n if ("toDataURL" in a)\n return a.toDataURL();\n throw new Error("toDataURL is not supported");\n } else\n throw new Error("Can not access image data");\n }, gr = (n, t) => {\n let a = typeof document < "u" ? document.createElement("canvas").getContext("2d") : new OffscreenCanvas(1, 1).getContext("2d"), u;\n if (a != null) {\n let o, d, c;\n t?.tensorLayout !== void 0 && t.tensorLayout === "NHWC" ? (o = n.dims[2], d = n.dims[1], c = n.dims[3]) : (o = n.dims[3], d = n.dims[2], c = n.dims[1]);\n let l = t !== void 0 && t.format !== void 0 ? t.format : "RGB", m = t?.norm, h, g;\n m === void 0 || m.mean === void 0 ? h = [255, 255, 255, 255] : typeof m.mean == "number" ? h = [m.mean, m.mean, m.mean, m.mean] : (h = [m.mean[0], m.mean[1], m.mean[2], 255], m.mean[3] !== void 0 && (h[3] = m.mean[3])), m === void 0 || m.bias === void 0 ? g = [0, 0, 0, 0] : typeof m.bias == "number" ? g = [m.bias, m.bias, m.bias, m.bias] : (g = [m.bias[0], m.bias[1], m.bias[2], 0], m.bias[3] !== void 0 && (g[3] = m.bias[3]));\n let b = d * o;\n if (t !== void 0 && (t.format !== void 0 && c === 4 && t.format !== "RGBA" || c === 3 && t.format !== "RGB" && t.format !== "BGR"))\n throw new Error("Tensor format doesn\'t match input tensor dims");\n let y = 4, T = 0, I = 1, D = 2, z = 3, v = 0, O = b, F = b * 2, _ = -1;\n l === "RGBA" ? (v = 0, O = b, F = b * 2, _ = b * 3) : l === "RGB" ? (v = 0, O = b, F = b * 2) : l === "RBG" && (v = 0, F = b, O = b * 2), u = a.createImageData(o, d);\n for (let k = 0; k < d * o; T += y, I += y, D += y, z += y, k++)\n u.data[T] = (n.data[v++] - g[0]) * h[0], u.data[I] = (n.data[O++] - g[1]) * h[1], u.data[D] = (n.data[F++] - g[2]) * h[2], u.data[z] = _ === -1 ? 255 : (n.data[_++] - g[3]) * h[3];\n } else\n throw new Error("Can not access image data");\n return u;\n };\n });\n var Kt;\n var Tr;\n var Sr;\n var vr;\n var Or;\n var Ar;\n var Ir = N(() => {\n "use strict";\n ct();\n Kt = (n, t) => {\n if (n === void 0)\n throw new Error("Image buffer must be defined");\n if (t.height === void 0 || t.width === void 0)\n throw new Error("Image height and width must be defined");\n if (t.tensorLayout === "NHWC")\n throw new Error("NHWC Tensor layout is not supported yet");\n let { height: a, width: u } = t, o = t.norm ?? { mean: 255, bias: 0 }, d, c;\n typeof o.mean == "number" ? d = [o.mean, o.mean, o.mean, o.mean] : d = [o.mean[0], o.mean[1], o.mean[2], o.mean[3] ?? 255], typeof o.bias == "number" ? c = [o.bias, o.bias, o.bias, o.bias] : c = [o.bias[0], o.bias[1], o.bias[2], o.bias[3] ?? 0];\n let l = t.format !== void 0 ? t.format : "RGBA", m = t.tensorFormat !== void 0 && t.tensorFormat !== void 0 ? t.tensorFormat : "RGB", h = a * u, g = m === "RGBA" ? new Float32Array(h * 4) : new Float32Array(h * 3), b = 4, y = 0, T = 1, I = 2, D = 3, z = 0, v = h, O = h * 2, F = -1;\n l === "RGB" && (b = 3, y = 0, T = 1, I = 2, D = -1), m === "RGBA" ? F = h * 3 : m === "RBG" ? (z = 0, O = h, v = h * 2) : m === "BGR" && (O = 0, v = h, z = h * 2);\n for (let k = 0; k < h; k++, y += b, I += b, T += b, D += b)\n g[z++] = (n[y] + c[0]) / d[0], g[v++] = (n[T] + c[1]) / d[1], g[O++] = (n[I] + c[2]) / d[2], F !== -1 && D !== -1 && (g[F++] = (n[D] + c[3]) / d[3]);\n return m === "RGBA" ? new Q("float32", g, [1, 4, a, u]) : new Q("float32", g, [1, 3, a, u]);\n }, Tr = async (n, t) => {\n let a = typeof HTMLImageElement < "u" && n instanceof HTMLImageElement, u = typeof ImageData < "u" && n instanceof ImageData, o = typeof ImageBitmap < "u" && n instanceof ImageBitmap, d = typeof n == "string", c, l = t ?? {}, m = () => {\n if (typeof document < "u")\n return document.createElement("canvas");\n if (typeof OffscreenCanvas < "u")\n return new OffscreenCanvas(1, 1);\n throw new Error("Canvas is not supported");\n }, h = (g) => typeof HTMLCanvasElement < "u" && g instanceof HTMLCanvasElement || g instanceof OffscreenCanvas ? g.getContext("2d") : null;\n if (a) {\n let g = m();\n g.width = n.width, g.height = n.height;\n let b = h(g);\n if (b != null) {\n let y = n.height, T = n.width;\n if (t !== void 0 && t.resizedHeight !== void 0 && t.resizedWidth !== void 0 && (y = t.resizedHeight, T = t.resizedWidth), t !== void 0) {\n if (l = t, t.tensorFormat !== void 0)\n throw new Error("Image input config format must be RGBA for HTMLImageElement");\n l.tensorFormat = "RGBA", l.height = y, l.width = T;\n } else\n l.tensorFormat = "RGBA", l.height = y, l.width = T;\n b.drawImage(n, 0, 0), c = b.getImageData(0, 0, T, y).data;\n } else\n throw new Error("Can not access image data");\n } else if (u) {\n let g, b;\n if (t !== void 0 && t.resizedWidth !== void 0 && t.resizedHeight !== void 0 ? (g = t.resizedHeight, b = t.resizedWidth) : (g = n.height, b = n.width), t !== void 0 && (l = t), l.format = "RGBA", l.height = g, l.width = b, t !== void 0) {\n let y = m();\n y.width = b, y.height = g;\n let T = h(y);\n if (T != null)\n T.putImageData(n, 0, 0), c = T.getImageData(0, 0, b, g).data;\n else\n throw new Error("Can not access image data");\n } else\n c = n.data;\n } else if (o) {\n if (t === void 0)\n throw new Error("Please provide image config with format for Imagebitmap");\n let g = m();\n g.width = n.width, g.height = n.height;\n let b = h(g);\n if (b != null) {\n let y = n.height, T = n.width;\n return b.drawImage(n, 0, 0, T, y), c = b.getImageData(0, 0, T, y).data, l.height = y, l.width = T, Kt(c, l);\n } else\n throw new Error("Can not access image data");\n } else {\n if (d)\n return new Promise((g, b) => {\n let y = m(), T = h(y);\n if (!n || !T)\n return b();\n let I = new Image();\n I.crossOrigin = "Anonymous", I.src = n, I.onload = () => {\n y.width = I.width, y.height = I.height, T.drawImage(I, 0, 0, y.width, y.height);\n let D = T.getImageData(0, 0, y.width, y.height);\n l.height = y.height, l.width = y.width, g(Kt(D.data, l));\n };\n });\n throw new Error("Input data provided is not supported - aborted tensor creation");\n }\n if (c !== void 0)\n return Kt(c, l);\n throw new Error("Input data provided is not supported - aborted tensor creation");\n }, Sr = (n, t) => {\n let { width: a, height: u, download: o, dispose: d } = t, c = [1, u, a, 4];\n return new Q({ location: "texture", type: "float32", texture: n, dims: c, download: o, dispose: d });\n }, vr = (n, t) => {\n let { dataType: a, dims: u, download: o, dispose: d } = t;\n return new Q({ location: "gpu-buffer", type: a ?? "float32", gpuBuffer: n, dims: u, download: o, dispose: d });\n }, Or = (n, t) => {\n let { dataType: a, dims: u, download: o, dispose: d } = t;\n return new Q({ location: "ml-tensor", type: a ?? "float32", mlTensor: n, dims: u, download: o, dispose: d });\n }, Ar = (n, t, a) => new Q({ location: "cpu-pinned", type: n, data: t, dims: a ?? [t.length] });\n });\n var Le;\n var Xe;\n var Br;\n var Lr;\n var _r = N(() => {\n "use strict";\n Le = /* @__PURE__ */ new Map([["float32", Float32Array], ["uint8", Uint8Array], ["int8", Int8Array], ["uint16", Uint16Array], ["int16", Int16Array], ["int32", Int32Array], ["bool", Uint8Array], ["float64", Float64Array], ["uint32", Uint32Array], ["int4", Uint8Array], ["uint4", Uint8Array]]), Xe = /* @__PURE__ */ new Map([[Float32Array, "float32"], [Uint8Array, "uint8"], [Int8Array, "int8"], [Uint16Array, "uint16"], [Int16Array, "int16"], [Int32Array, "int32"], [Float64Array, "float64"], [Uint32Array, "uint32"]]), Br = false, Lr = () => {\n if (!Br) {\n Br = true;\n let n = typeof BigInt64Array < "u" && BigInt64Array.from, t = typeof BigUint64Array < "u" && BigUint64Array.from, a = globalThis.Float16Array, u = typeof a < "u" && a.from;\n n && (Le.set("int64", BigInt64Array), Xe.set(BigInt64Array, "int64")), t && (Le.set("uint64", BigUint64Array), Xe.set(BigUint64Array, "uint64")), u ? (Le.set("float16", a), Xe.set(a, "float16")) : Le.set("float16", Uint16Array);\n }\n };\n });\n var Pr;\n var Dr;\n var Ur = N(() => {\n "use strict";\n ct();\n Pr = (n) => {\n let t = 1;\n for (let a = 0; a < n.length; a++) {\n let u = n[a];\n if (typeof u != "number" || !Number.isSafeInteger(u))\n throw new TypeError(`dims[${a}] must be an integer, got: ${u}`);\n if (u < 0)\n throw new RangeError(`dims[${a}] must be a non-negative integer, got: ${u}`);\n t *= u;\n }\n return t;\n }, Dr = (n, t) => {\n switch (n.location) {\n case "cpu":\n return new Q(n.type, n.data, t);\n case "cpu-pinned":\n return new Q({ location: "cpu-pinned", data: n.data, type: n.type, dims: t });\n case "texture":\n return new Q({ location: "texture", texture: n.texture, type: n.type, dims: t });\n case "gpu-buffer":\n return new Q({ location: "gpu-buffer", gpuBuffer: n.gpuBuffer, type: n.type, dims: t });\n case "ml-tensor":\n return new Q({ location: "ml-tensor", mlTensor: n.mlTensor, type: n.type, dims: t });\n default:\n throw new Error(`tensorReshape: tensor location ${n.location} is not supported`);\n }\n };\n });\n var Q;\n var ct = N(() => {\n "use strict";\n Er();\n Ir();\n _r();\n Ur();\n Q = class {\n constructor(t, a, u) {\n Lr();\n let o, d;\n if (typeof t == "object" && "location" in t)\n switch (this.dataLocation = t.location, o = t.type, d = t.dims, t.location) {\n case "cpu-pinned": {\n let l = Le.get(o);\n if (!l)\n throw new TypeError(`unsupported type "${o}" to create tensor from pinned buffer`);\n if (!(t.data instanceof l))\n throw new TypeError(`buffer should be of type ${l.name}`);\n this.cpuData = t.data;\n break;\n }\n case "texture": {\n if (o !== "float32")\n throw new TypeError(`unsupported type "${o}" to create tensor from texture`);\n this.gpuTextureData = t.texture, this.downloader = t.download, this.disposer = t.dispose;\n break;\n }\n case "gpu-buffer": {\n if (o !== "float32" && o !== "float16" && o !== "int32" && o !== "int64" && o !== "uint32" && o !== "uint8" && o !== "bool" && o !== "uint4" && o !== "int4")\n throw new TypeError(`unsupported type "${o}" to create tensor from gpu buffer`);\n this.gpuBufferData = t.gpuBuffer, this.downloader = t.download, this.disposer = t.dispose;\n break;\n }\n case "ml-tensor": {\n if (o !== "float32" && o !== "float16" && o !== "int32" && o !== "int64" && o !== "uint32" && o !== "uint64" && o !== "int8" && o !== "uint8" && o !== "bool" && o !== "uint4" && o !== "int4")\n throw new TypeError(`unsupported type "${o}" to create tensor from MLTensor`);\n this.mlTensorData = t.mlTensor, this.downloader = t.download, this.disposer = t.dispose;\n break;\n }\n default:\n throw new Error(`Tensor constructor: unsupported location \'${this.dataLocation}\'`);\n }\n else {\n let l, m;\n if (typeof t == "string")\n if (o = t, m = u, t === "string") {\n if (!Array.isArray(a))\n throw new TypeError("A string tensor\'s data must be a string array.");\n l = a;\n } else {\n let h = Le.get(t);\n if (h === void 0)\n throw new TypeError(`Unsupported tensor type: ${t}.`);\n if (Array.isArray(a)) {\n if (t === "float16" && h === Uint16Array || t === "uint4" || t === "int4")\n throw new TypeError(`Creating a ${t} tensor from number array is not supported. Please use ${h.name} as data.`);\n t === "uint64" || t === "int64" ? l = h.from(a, BigInt) : l = h.from(a);\n } else if (a instanceof h)\n l = a;\n else if (a instanceof Uint8ClampedArray)\n if (t === "uint8")\n l = Uint8Array.from(a);\n else\n throw new TypeError("A Uint8ClampedArray tensor\'s data must be type of uint8");\n else if (t === "float16" && a instanceof Uint16Array && h !== Uint16Array)\n l = new globalThis.Float16Array(a.buffer, a.byteOffset, a.length);\n else\n throw new TypeError(`A ${o} tensor\'s data must be type of ${h}`);\n }\n else if (m = a, Array.isArray(t)) {\n if (t.length === 0)\n throw new TypeError("Tensor type cannot be inferred from an empty array.");\n let h = typeof t[0];\n if (h === "string")\n o = "string", l = t;\n else if (h === "boolean")\n o = "bool", l = Uint8Array.from(t);\n else\n throw new TypeError(`Invalid element type of data array: ${h}.`);\n } else if (t instanceof Uint8ClampedArray)\n o = "uint8", l = Uint8Array.from(t);\n else {\n let h = Xe.get(t.constructor);\n if (h === void 0)\n throw new TypeError(`Unsupported type for tensor data: ${t.constructor}.`);\n o = h, l = t;\n }\n if (m === void 0)\n m = [l.length];\n else if (!Array.isArray(m))\n throw new TypeError("A tensor\'s dims must be a number array");\n d = m, this.cpuData = l, this.dataLocation = "cpu";\n }\n let c = Pr(d);\n if (this.cpuData && c !== this.cpuData.length && !((o === "uint4" || o === "int4") && Math.ceil(c / 2) === this.cpuData.length))\n throw new Error(`Tensor\'s size(${c}) does not match data length(${this.cpuData.length}).`);\n this.type = o, this.dims = d, this.size = c;\n }\n static async fromImage(t, a) {\n return Tr(t, a);\n }\n static fromTexture(t, a) {\n return Sr(t, a);\n }\n static fromGpuBuffer(t, a) {\n return vr(t, a);\n }\n static fromMLTensor(t, a) {\n return Or(t, a);\n }\n static fromPinnedBuffer(t, a, u) {\n return Ar(t, a, u);\n }\n toDataURL(t) {\n return yr(this, t);\n }\n toImageData(t) {\n return gr(this, t);\n }\n get data() {\n if (this.ensureValid(), !this.cpuData)\n throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");\n return this.cpuData;\n }\n get location() {\n return this.dataLocation;\n }\n get texture() {\n if (this.ensureValid(), !this.gpuTextureData)\n throw new Error("The data is not stored as a WebGL texture.");\n return this.gpuTextureData;\n }\n get gpuBuffer() {\n if (this.ensureValid(), !this.gpuBufferData)\n throw new Error("The data is not stored as a WebGPU buffer.");\n return this.gpuBufferData;\n }\n get mlTensor() {\n if (this.ensureValid(), !this.mlTensorData)\n throw new Error("The data is not stored as a WebNN MLTensor.");\n return this.mlTensorData;\n }\n async getData(t) {\n switch (this.ensureValid(), this.dataLocation) {\n case "cpu":\n case "cpu-pinned":\n return this.data;\n case "texture":\n case "gpu-buffer":\n case "ml-tensor": {\n if (!this.downloader)\n throw new Error("The current tensor is not created with a specified data downloader.");\n if (this.isDownloading)\n throw new Error("The current tensor is being downloaded.");\n try {\n this.isDownloading = true;\n let a = await this.downloader();\n return this.downloader = void 0, this.dataLocation = "cpu", this.cpuData = a, t && this.disposer && (this.disposer(), this.disposer = void 0), a;\n } finally {\n this.isDownloading = false;\n }\n }\n default:\n throw new Error(`cannot get data from location: ${this.dataLocation}`);\n }\n }\n dispose() {\n if (this.isDownloading)\n throw new Error("The current tensor is being downloaded.");\n this.disposer && (this.disposer(), this.disposer = void 0), this.cpuData = void 0, this.gpuTextureData = void 0, this.gpuBufferData = void 0, this.mlTensorData = void 0, this.downloader = void 0, this.isDownloading = void 0, this.dataLocation = "none";\n }\n ensureValid() {\n if (this.dataLocation === "none")\n throw new Error("The tensor is disposed.");\n }\n reshape(t) {\n if (this.ensureValid(), this.downloader || this.disposer)\n throw new Error("Cannot reshape a tensor that owns GPU resource.");\n return Dr(this, t);\n }\n };\n });\n var de;\n var en = N(() => {\n "use strict";\n ct();\n de = Q;\n });\n var xr;\n var Mr;\n var _e;\n var Pe;\n var De;\n var Ue;\n var tn = N(() => {\n "use strict";\n Zt();\n xr = (n, t) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || console.timeStamp(`${n}::ORT::${t}`);\n }, Mr = (n, t) => {\n let a = new Error().stack?.split(/\\r\\n|\\r|\\n/g) || [], u = false;\n for (let o = 0; o < a.length; o++) {\n if (u && !a[o].includes("TRACE_FUNC")) {\n let d = `FUNC_${n}::${a[o].trim().split(" ")[1]}`;\n t && (d += `::${t}`), xr("CPU", d);\n return;\n }\n a[o].includes("TRACE_FUNC") && (u = true);\n }\n }, _e = (n) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || Mr("BEGIN", n);\n }, Pe = (n) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || Mr("END", n);\n }, De = (n) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || console.time(`ORT::${n}`);\n }, Ue = (n) => {\n (typeof J.trace > "u" ? !J.wasm.trace : !J.trace) || console.timeEnd(`ORT::${n}`);\n };\n });\n var lt;\n var Cr = N(() => {\n "use strict";\n Qt();\n en();\n tn();\n lt = class n {\n constructor(t) {\n this.handler = t;\n }\n async run(t, a, u) {\n _e(), De("InferenceSession.run");\n let o = {}, d = {};\n if (typeof t != "object" || t === null || t instanceof de || Array.isArray(t))\n throw new TypeError("\'feeds\' must be an object that use input names as keys and OnnxValue as corresponding values.");\n let c = true;\n if (typeof a == "object") {\n if (a === null)\n throw new TypeError("Unexpected argument[1]: cannot be null.");\n if (a instanceof de)\n throw new TypeError("\'fetches\' cannot be a Tensor");\n if (Array.isArray(a)) {\n if (a.length === 0)\n throw new TypeError("\'fetches\' cannot be an empty array.");\n c = false;\n for (let h of a) {\n if (typeof h != "string")\n throw new TypeError("\'fetches\' must be a string array or an object.");\n if (this.outputNames.indexOf(h) === -1)\n throw new RangeError(`\'fetches\' contains invalid output name: ${h}.`);\n o[h] = null;\n }\n if (typeof u == "object" && u !== null)\n d = u;\n else if (typeof u < "u")\n throw new TypeError("\'options\' must be an object.");\n } else {\n let h = false, g = Object.getOwnPropertyNames(a);\n for (let b of this.outputNames)\n if (g.indexOf(b) !== -1) {\n let y = a[b];\n (y === null || y instanceof de) && (h = true, c = false, o[b] = y);\n }\n if (h) {\n if (typeof u == "object" && u !== null)\n d = u;\n else if (typeof u < "u")\n throw new TypeError("\'options\' must be an object.");\n } else\n d = a;\n }\n } else if (typeof a < "u")\n throw new TypeError("Unexpected argument[1]: must be \'fetches\' or \'options\'.");\n for (let h of this.inputNames)\n if (typeof t[h] > "u")\n throw new Error(`input \'${h}\' is missing in \'feeds\'.`);\n if (c)\n for (let h of this.outputNames)\n o[h] = null;\n let l = await this.handler.run(t, o, d), m = {};\n for (let h in l)\n if (Object.hasOwnProperty.call(l, h)) {\n let g = l[h];\n g instanceof de ? m[h] = g : m[h] = new de(g.type, g.data, g.dims);\n }\n return Ue("InferenceSession.run"), Pe(), m;\n }\n async release() {\n return this.handler.dispose();\n }\n static async create(t, a, u, o) {\n _e(), De("InferenceSession.create");\n let d, c = {};\n if (typeof t == "string") {\n if (d = t, typeof a == "object" && a !== null)\n c = a;\n else if (typeof a < "u")\n throw new TypeError("\'options\' must be an object.");\n } else if (t instanceof Uint8Array) {\n if (d = t, typeof a == "object" && a !== null)\n c = a;\n else if (typeof a < "u")\n throw new TypeError("\'options\' must be an object.");\n } else if (t instanceof ArrayBuffer || typeof SharedArrayBuffer < "u" && t instanceof SharedArrayBuffer) {\n let g = t, b = 0, y = t.byteLength;\n if (typeof a == "object" && a !== null)\n c = a;\n else if (typeof a == "number") {\n if (b = a, !Number.isSafeInteger(b))\n throw new RangeError("\'byteOffset\' must be an integer.");\n if (b < 0 || b >= g.byteLength)\n throw new RangeError(`\'byteOffset\' is out of range [0, ${g.byteLength}).`);\n if (y = t.byteLength - b, typeof u == "number") {\n if (y = u, !Number.isSafeInteger(y))\n throw new RangeError("\'byteLength\' must be an integer.");\n if (y <= 0 || b + y > g.byteLength)\n throw new RangeError(`\'byteLength\' is out of range (0, ${g.byteLength - b}].`);\n if (typeof o == "object" && o !== null)\n c = o;\n else if (typeof o < "u")\n throw new TypeError("\'options\' must be an object.");\n } else if (typeof u < "u")\n throw new TypeError("\'byteLength\' must be a number.");\n } else if (typeof a < "u")\n throw new TypeError("\'options\' must be an object.");\n d = new Uint8Array(g, b, y);\n } else\n throw new TypeError("Unexpected argument[0]: must be \'path\' or \'buffer\'.");\n let [l, m] = await dr(c), h = await l.createInferenceSessionHandler(d, m);\n return Ue("InferenceSession.create"), Pe(), new n(h);\n }\n startProfiling() {\n this.handler.startProfiling();\n }\n endProfiling() {\n this.handler.endProfiling();\n }\n get inputNames() {\n return this.handler.inputNames;\n }\n get outputNames() {\n return this.handler.outputNames;\n }\n get inputMetadata() {\n return this.handler.inputMetadata;\n }\n get outputMetadata() {\n return this.handler.outputMetadata;\n }\n };\n });\n var ts;\n var Rr = N(() => {\n "use strict";\n Cr();\n ts = lt;\n });\n var Fr = N(() => {\n "use strict";\n });\n var Nr = N(() => {\n "use strict";\n });\n var kr = N(() => {\n "use strict";\n });\n var Wr = N(() => {\n "use strict";\n });\n var nn = {};\n ut(nn, { InferenceSession: () => ts, TRACE: () => xr, TRACE_EVENT_BEGIN: () => De, TRACE_EVENT_END: () => Ue, TRACE_FUNC_BEGIN: () => _e, TRACE_FUNC_END: () => Pe, Tensor: () => de, env: () => Y, registerBackend: () => qe });\n var Te = N(() => {\n "use strict";\n pr();\n br();\n Rr();\n en();\n Fr();\n Nr();\n tn();\n kr();\n Wr();\n });\n var dt = N(() => {\n "use strict";\n });\n var Hr = {};\n ut(Hr, { default: () => ns });\n var $r;\n var zr;\n var ns;\n var jr = N(() => {\n "use strict";\n rn();\n xe();\n pt();\n $r = "ort-wasm-proxy-worker", zr = globalThis.self?.name === $r;\n zr && (self.onmessage = (n) => {\n let { type: t, in: a } = n.data;\n try {\n switch (t) {\n case "init-wasm":\n mt(a.wasm).then(() => {\n ht(a).then(() => {\n postMessage({ type: t });\n }, (u) => {\n postMessage({ type: t, err: u });\n });\n }, (u) => {\n postMessage({ type: t, err: u });\n });\n break;\n case "init-ep": {\n let { epName: u, env: o } = a;\n wt(o, u).then(() => {\n postMessage({ type: t });\n }, (d) => {\n postMessage({ type: t, err: d });\n });\n break;\n }\n case "copy-from": {\n let { buffer: u } = a, o = Qe(u);\n postMessage({ type: t, out: o });\n break;\n }\n case "create": {\n let { model: u, options: o } = a;\n bt(u, o).then((d) => {\n postMessage({ type: t, out: d });\n }, (d) => {\n postMessage({ type: t, err: d });\n });\n break;\n }\n case "release":\n yt(a), postMessage({ type: t });\n break;\n case "run": {\n let { sessionId: u, inputIndices: o, inputs: d, outputIndices: c, options: l } = a;\n gt(u, o, d, c, new Array(c.length).fill(null), l).then((m) => {\n m.some((h) => h[3] !== "cpu") ? postMessage({ type: t, err: "Proxy does not support non-cpu tensor location." }) : postMessage({ type: t, out: m }, Tt([...d, ...m]));\n }, (m) => {\n postMessage({ type: t, err: m });\n });\n break;\n }\n case "end-profiling":\n Et(a), postMessage({ type: t });\n break;\n default:\n }\n } catch (u) {\n postMessage({ type: t, err: u });\n }\n });\n ns = zr ? null : (n) => new Worker(n ?? oe, { type: "module", name: $r });\n });\n var Yr = {};\n ut(Yr, { default: () => rs });\n async function Vr(n = {}) {\n var t = n, a = !!globalThis.window, u = !!globalThis.WorkerGlobalScope, o = u && self.name?.startsWith("em-pthread");\n t.mountExternalData = (e, r) => {\n e.startsWith("./") && (e = e.substring(2)), (t.Rb || (t.Rb = /* @__PURE__ */ new Map())).set(e, r);\n }, t.unmountExternalData = () => {\n delete t.Rb;\n }, globalThis.SharedArrayBuffer ?? new WebAssembly.Memory({ initial: 0, maximum: 0, shared: true }).buffer.constructor;\n var d, c, l = (e, r) => {\n throw r;\n }, m = import_meta.url, h = "";\n if (a || u) {\n try {\n h = new URL(".", m).href;\n } catch {\n }\n u && (c = (e) => {\n var r = new XMLHttpRequest();\n return r.open("GET", e, false), r.responseType = "arraybuffer", r.send(null), new Uint8Array(r.response);\n }), d = async (e) => {\n if (k(e))\n return new Promise((i, s) => {\n var f = new XMLHttpRequest();\n f.open("GET", e, true), f.responseType = "arraybuffer", f.onload = () => {\n f.status == 200 || f.status == 0 && f.response ? i(f.response) : s(f.status);\n }, f.onerror = s, f.send(null);\n });\n var r = await fetch(e, { credentials: "same-origin" });\n if (r.ok)\n return r.arrayBuffer();\n throw Error(r.status + " : " + r.url);\n };\n }\n var g, b, y, T, I, D, z = console.log.bind(console), v = console.error.bind(console), O = z, F = v, _ = false, k = (e) => e.startsWith("file://");\n function w() {\n ge.buffer != j.buffer && ee();\n }\n if (o) {\n let e = function(r) {\n try {\n var i = r.data, s = i.Pb;\n if (s === "load") {\n let f = [];\n self.onmessage = (p) => f.push(p), D = () => {\n postMessage({ Pb: "loaded" });\n for (let p of f)\n e(p);\n self.onmessage = e;\n };\n for (let p of i.Zb)\n t[p] && !t[p].proxy || (t[p] = (...E) => {\n postMessage({ Pb: "callHandler", Yb: p, args: E });\n }, p == "print" && (O = t[p]), p == "printErr" && (F = t[p]));\n ge = i.dc, ee(), b = i.ec, Ut(), it();\n } else if (s === "run") {\n (function(f) {\n var p = (w(), W)[f + 52 >>> 2 >>> 0];\n f = (w(), W)[f + 56 >>> 2 >>> 0], sr(p, p - f), P(p);\n })(i.Ob), zt(i.Ob, 0, 0, 1, 0, 0), wn(), Ft(i.Ob), Z ||= true;\n try {\n Ao(i.bc, i.Tb);\n } catch (f) {\n if (f != "unwind")\n throw f;\n }\n } else\n i.target !== "setimmediate" && (s === "checkMailbox" ? Z && rt() : s && (F(`worker: received unknown command ${s}`), F(i)));\n } catch (f) {\n throw tr(), f;\n }\n };\n var Ss = e, Z = false;\n self.onunhandledrejection = (r) => {\n throw r.reason || r;\n }, self.onmessage = e;\n }\n var j, ne, pe, B, W, re, me, A, K, je = false;\n function ee() {\n var e = ge.buffer;\n t.HEAP8 = j = new Int8Array(e), pe = new Int16Array(e), t.HEAPU8 = ne = new Uint8Array(e), new Uint16Array(e), t.HEAP32 = B = new Int32Array(e), t.HEAPU32 = W = new Uint32Array(e), re = new Float32Array(e), me = new Float64Array(e), A = new BigInt64Array(e), new BigUint64Array(e);\n }\n function he() {\n je = true, o ? D() : Ee.Ta();\n }\n function H(e) {\n throw F(e = "Aborted(" + e + ")"), _ = true, e = new WebAssembly.RuntimeError(e + ". Build with -sASSERTIONS for more info."), I?.(e), e;\n }\n function q() {\n return { a: { R: fa, f: Io, w: Bo, e: Lo, k: _o, g: Po, S: Do, b: Uo, G: xo, ta: vn, j: Mo, L: In, Ja: Bn, pa: Ln, ra: _n, Ka: Pn, Ha: Dn, Aa: Un, Ga: xn, Y: Mn, qa: Cn, na: Rn, Ia: Fn, oa: Nn, Pa: Co, Da: Ro, la: No, ua: ko, ia: Wo, T: Go, Ca: Ft, Ma: $o, xa: zo, ya: Ho, za: jo, va: $n, wa: zn, ja: Hn, Ra: Yo, Oa: Xo, V: Qo, U: Zo, Na: Jo, F: Ko, La: ea, ma: ta, u: Vo, H: na, Q: at, ka: oa, aa: ra, Sa: aa, Ea: Yn, Fa: Jn, sa: ye, I: qn, X: Xn, Ba: Qn, W: Zn, _: ja, M: Wa, $: Ha, N: ka, v: Pa, c: pa, m: la, n: ca, q: va, ba: Ra, x: Ba, o: wa, O: Fa, D: Ga, J: Ca, ca: Ma, da: xa, A: Oa, P: Ua, ea: Da, z: La, E: Na, d: da, r: ha, i: ma, Z: Va, l: ya, p: ga, s: ba, t: Ea, y: Aa, fa: _a, B: $a, K: Ia, C: za, ga: Sa, ha: Ta, h: ia, a: ge, Qa: V } };\n }\n async function Ut() {\n function e(s, f) {\n return Ee = s.exports, Ee = function() {\n var p = Ee, E = (x) => () => x() >>> 0, S = (x) => (R) => x(R) >>> 0;\n return (p = Object.assign({}, p)).sb = E(p.sb), p.ub = S(p.ub), p.Ib = S(p.Ib), p.Jb = E(p.Jb), p.Nb = S(p.Nb), p;\n }(), mn.push(Ee.vb), s = Ee, t._OrtInit = s.Ua, t._OrtGetLastError = s.Va, t._OrtCreateSessionOptions = s.Wa, t._OrtAppendExecutionProvider = s.Xa, t._OrtAddFreeDimensionOverride = s.Ya, t._OrtAddSessionConfigEntry = s.Za, t._OrtReleaseSessionOptions = s._a, t._OrtCreateSession = s.$a, t._OrtReleaseSession = s.ab, t._OrtGetInputOutputCount = s.bb, t._OrtGetInputOutputMetadata = s.cb, t._OrtFree = s.db, t._OrtCreateTensor = s.eb, t._OrtGetTensorData = s.fb, t._OrtReleaseTensor = s.gb, t._OrtCreateRunOptions = s.hb, t._OrtAddRunConfigEntry = s.ib, t._OrtReleaseRunOptions = s.jb, t._OrtCreateBinding = s.kb, t._OrtBindInput = s.lb, t._OrtBindOutput = s.mb, t._OrtClearBoundOutputs = s.nb, t._OrtReleaseBinding = s.ob, t._OrtRunWithBinding = s.pb, t._OrtRun = s.qb, t._OrtEndProfiling = s.rb, st = s.sb, Kn = t._free = s.tb, er = t._malloc = s.ub, zt = s.xb, tr = s.yb, nr = s.zb, rr = s.Ab, Ht = s.Bb, or = s.Cb, ar = s.Db, M = s.Eb, Je = s.Fb, sr = s.Gb, P = s.Hb, jt = s.Ib, U = s.Jb, ir = s.Kb, Vt = s.Lb, ur = s.Mb, fr = s.Nb, cr = s.wb, b = f, Ee;\n }\n var r, i = q();\n return t.instantiateWasm ? new Promise((s) => {\n t.instantiateWasm(i, (f, p) => {\n s(e(f, p));\n });\n }) : o ? e(new WebAssembly.Instance(b, q()), b) : (K ??= t.locateFile ? t.locateFile ? t.locateFile("ort-wasm-simd-threaded.wasm", h) : h + "ort-wasm-simd-threaded.wasm" : new URL("ort-wasm-simd-threaded.wasm", import_meta.url).href, r = await async function(s) {\n var f = K;\n if (!g && !k(f))\n try {\n var p = fetch(f, { credentials: "same-origin" });\n return await WebAssembly.instantiateStreaming(p, s);\n } catch (E) {\n F(`wasm streaming compile failed: ${E}`), F("falling back to ArrayBuffer instantiation");\n }\n return async function(E, S) {\n try {\n var x = await async function(R) {\n if (!g)\n try {\n var X = await d(R);\n return new Uint8Array(X);\n } catch {\n }\n if (R == K && g)\n R = new Uint8Array(g);\n else {\n if (!c)\n throw "both async and sync fetching of the wasm failed";\n R = c(R);\n }\n return R;\n }(E);\n return await WebAssembly.instantiate(x, S);\n } catch (R) {\n F(`failed to asynchronously prepare wasm: ${R}`), H(R);\n }\n }(f, s);\n }(i), e(r.instance, r.module));\n }\n class Se {\n name = "ExitStatus";\n constructor(r) {\n this.message = `Program terminated with exit(${r})`, this.status = r;\n }\n }\n var ve = (e) => {\n e.terminate(), e.onmessage = () => {\n };\n }, Ve = [], Re = 0, te = null, ue = (e) => {\n ce.length == 0 && (yn(), bn(ce[0]));\n var r = ce.pop();\n if (!r)\n return 6;\n Fe.push(r), Oe[e.Ob] = r, r.Ob = e.Ob;\n var i = { Pb: "run", bc: e.ac, Tb: e.Tb, Ob: e.Ob };\n return r.postMessage(i, e.Xb), 0;\n }, se = 0, L = (e, r, ...i) => {\n var s, f = 16 * i.length, p = U(), E = jt(f), S = E >>> 3;\n for (s of i)\n typeof s == "bigint" ? ((w(), A)[S++ >>> 0] = 1n, (w(), A)[S++ >>> 0] = s) : ((w(), A)[S++ >>> 0] = 0n, (w(), me)[S++ >>> 0] = s);\n return e = nr(e, 0, f, E, r), P(p), e;\n };\n function V(e) {\n if (o)\n return L(0, 1, e);\n if (y = e, !(0 < se)) {\n for (var r of Fe)\n ve(r);\n for (r of ce)\n ve(r);\n ce = [], Fe = [], Oe = {}, _ = true;\n }\n l(0, new Se(e));\n }\n function fe(e) {\n if (o)\n return L(1, 0, e);\n ye(e);\n }\n var ye = (e) => {\n if (y = e, o)\n throw fe(e), "unwind";\n V(e);\n }, ce = [], Fe = [], mn = [], Oe = {}, hn = (e) => {\n var r = e.Ob;\n delete Oe[r], ce.push(e), Fe.splice(Fe.indexOf(e), 1), e.Ob = 0, rr(r);\n };\n function wn() {\n mn.forEach((e) => e());\n }\n var bn = (e) => new Promise((r) => {\n e.onmessage = (f) => {\n var p = f.data;\n if (f = p.Pb, p.Sb && p.Sb != st()) {\n var E = Oe[p.Sb];\n E ? E.postMessage(p, p.Xb) : F(`Internal error! Worker sent a message "${f}" to target pthread ${p.Sb}, but that thread no longer exists!`);\n } else\n f === "checkMailbox" ? rt() : f === "spawnThread" ? ue(p) : f === "cleanupThread" ? Rt(() => {\n hn(Oe[p.cc]);\n }) : f === "loaded" ? (e.loaded = true, r(e)) : p.target === "setimmediate" ? e.postMessage(p) : f === "uncaughtException" ? e.onerror(p.error) : f === "callHandler" ? t[p.Yb](...p.args) : f && F(`worker sent an unknown command ${f}`);\n }, e.onerror = (f) => {\n throw F(`worker sent an error! ${f.filename}:${f.lineno}: ${f.message}`), f;\n };\n var i, s = [];\n for (i of [])\n t.propertyIsEnumerable(i) && s.push(i);\n e.postMessage({ Pb: "load", Zb: s, dc: ge, ec: b });\n });\n function yn() {\n var e = new Worker((() => {\n let r = URL;\n return import_meta.url > "file:" && import_meta.url < "file;" ? new r("ort.wasm.bundle.min.mjs", import_meta.url) : new URL(import_meta.url);\n })(), { type: "module", workerData: "em-pthread", name: "em-pthread" });\n ce.push(e);\n }\n var ge, gn = [], C = (e) => {\n var r = gn[e];\n return r || (gn[e] = r = cr.get(e)), r;\n }, Ao = (e, r) => {\n se = 0, e = C(e)(r), 0 < se ? y = e : Ht(e);\n }, tt = [], nt = 0;\n function Io(e) {\n var r = new xt(e >>>= 0);\n return (w(), j)[r.Qb + 12 >>> 0] == 0 && (En(r, true), nt--), Tn(r, false), tt.push(r), fr(e);\n }\n var Ne = 0, Bo = () => {\n M(0, 0);\n var e = tt.pop();\n ir(e.Ub), Ne = 0;\n };\n function En(e, r) {\n r = r ? 1 : 0, (w(), j)[e.Qb + 12 >>> 0] = r;\n }\n function Tn(e, r) {\n r = r ? 1 : 0, (w(), j)[e.Qb + 13 >>> 0] = r;\n }\n class xt {\n constructor(r) {\n this.Ub = r, this.Qb = r - 24;\n }\n }\n var Mt = (e) => {\n var r = Ne;\n if (!r)\n return Je(0), 0;\n var i = new xt(r);\n (w(), W)[i.Qb + 16 >>> 2 >>> 0] = r;\n var s = (w(), W)[i.Qb + 4 >>> 2 >>> 0];\n if (!s)\n return Je(0), r;\n for (var f of e) {\n if (f === 0 || f === s)\n break;\n if (ur(f, s, i.Qb + 16))\n return Je(f), r;\n }\n return Je(s), r;\n };\n function Lo() {\n return Mt([]);\n }\n function _o(e) {\n return Mt([e >>> 0]);\n }\n function Po(e, r, i, s) {\n return Mt([e >>> 0, r >>> 0, i >>> 0, s >>> 0]);\n }\n var Do = () => {\n var e = tt.pop();\n e || H("no exception to throw");\n var r = e.Ub;\n throw (w(), j)[e.Qb + 13 >>> 0] == 0 && (tt.push(e), Tn(e, true), En(e, false), nt++), Vt(r), Ne = r;\n };\n function Uo(e, r, i) {\n var s = new xt(e >>>= 0);\n throw r >>>= 0, i >>>= 0, (w(), W)[s.Qb + 16 >>> 2 >>> 0] = 0, (w(), W)[s.Qb + 4 >>> 2 >>> 0] = r, (w(), W)[s.Qb + 8 >>> 2 >>> 0] = i, Vt(e), nt++, Ne = e;\n }\n var xo = () => nt;\n function Sn(e, r, i, s) {\n return o ? L(2, 1, e, r, i, s) : vn(e, r, i, s);\n }\n function vn(e, r, i, s) {\n if (e >>>= 0, r >>>= 0, i >>>= 0, s >>>= 0, !globalThis.SharedArrayBuffer)\n return 6;\n var f = [];\n return o && f.length === 0 ? Sn(e, r, i, s) : (e = { ac: i, Ob: e, Tb: s, Xb: f }, o ? (e.Pb = "spawnThread", postMessage(e, f), 0) : ue(e));\n }\n function Mo(e) {\n throw Ne ||= e >>> 0, Ne;\n }\n var On = globalThis.TextDecoder && new TextDecoder(), An = (e, r = 0, i, s) => {\n var f = r >>>= 0;\n if (i = f + i, s)\n s = i;\n else {\n for (; e[f] && !(f >= i); )\n ++f;\n s = f;\n }\n if (16 < s - r && e.buffer && On)\n return On.decode(e.buffer instanceof ArrayBuffer ? e.subarray(r, s) : e.slice(r, s));\n for (f = ""; r < s; )\n if (128 & (i = e[r++])) {\n var p = 63 & e[r++];\n if ((224 & i) == 192)\n f += String.fromCharCode((31 & i) << 6 | p);\n else {\n var E = 63 & e[r++];\n 65536 > (i = (240 & i) == 224 ? (15 & i) << 12 | p << 6 | E : (7 & i) << 18 | p << 12 | E << 6 | 63 & e[r++]) ? f += String.fromCharCode(i) : (i -= 65536, f += String.fromCharCode(55296 | i >> 10, 56320 | 1023 & i));\n }\n } else\n f += String.fromCharCode(i);\n return f;\n }, Ct = (e, r, i) => (e >>>= 0) ? An((w(), ne), e, r, i) : "";\n function In(e, r, i) {\n return o ? L(3, 1, e, r, i) : 0;\n }\n function Bn(e, r) {\n if (o)\n return L(4, 1, e, r);\n }\n function Ln(e, r) {\n if (o)\n return L(5, 1, e, r);\n }\n function _n(e, r, i) {\n if (o)\n return L(6, 1, e, r, i);\n }\n function Pn(e, r, i) {\n return o ? L(7, 1, e, r, i) : 0;\n }\n function Dn(e, r) {\n if (o)\n return L(8, 1, e, r);\n }\n function Un(e, r, i) {\n if (o)\n return L(9, 1, e, r, i);\n }\n function xn(e, r, i, s) {\n if (o)\n return L(10, 1, e, r, i, s);\n }\n function Mn(e, r, i, s) {\n if (o)\n return L(11, 1, e, r, i, s);\n }\n function Cn(e, r, i, s) {\n if (o)\n return L(12, 1, e, r, i, s);\n }\n function Rn(e) {\n if (o)\n return L(13, 1, e);\n }\n function Fn(e, r) {\n if (o)\n return L(14, 1, e, r);\n }\n function Nn(e, r, i) {\n if (o)\n return L(15, 1, e, r, i);\n }\n var Co = () => H("");\n function Ro(e) {\n zt(e >>> 0, !u, 1, !a, 131072, false), wn();\n }\n var Rt = (e) => {\n if (!_)\n try {\n if (e(), !(0 < se))\n try {\n o ? st() && Ht(y) : ye(y);\n } catch (r) {\n r instanceof Se || r == "unwind" || l(0, r);\n }\n } catch (r) {\n r instanceof Se || r == "unwind" || l(0, r);\n }\n }, Fo = !Atomics.waitAsync || globalThis.navigator?.userAgent && 91 > Number((navigator.userAgent.match(/Chrom(e|ium)\\/([0-9]+)\\./) || [])[2]);\n function Ft(e) {\n e >>>= 0, Fo || (Atomics.waitAsync((w(), B), e >>> 2, e).value.then(rt), e += 128, Atomics.store((w(), B), e >>> 2, 1));\n }\n var rt = () => Rt(() => {\n var e = st();\n e && (Ft(e), ar());\n });\n function No(e, r) {\n (e >>>= 0) == r >>> 0 ? setTimeout(rt) : o ? postMessage({ Sb: e, Pb: "checkMailbox" }) : (e = Oe[e]) && e.postMessage({ Pb: "checkMailbox" });\n }\n var Nt = [];\n function ko(e, r, i, s, f) {\n for (r >>>= 0, f >>>= 0, Nt.length = 0, i = f >>> 3, s = f + s >>> 3; i < s; ) {\n var p;\n p = (w(), A)[i++ >>> 0] ? (w(), A)[i++ >>> 0] : (w(), me)[i++ >>> 0], Nt.push(p);\n }\n return (r ? lr[r] : ua[e])(...Nt);\n }\n var Wo = () => {\n se = 0;\n };\n function Go(e) {\n e >>>= 0, o ? postMessage({ Pb: "cleanupThread", cc: e }) : hn(Oe[e]);\n }\n function $o(e) {\n }\n function zo(e, r) {\n e = -9007199254740992 > e || 9007199254740992 < e ? NaN : Number(e), r >>>= 0, e = new Date(1e3 * e), (w(), B)[r >>> 2 >>> 0] = e.getUTCSeconds(), (w(), B)[r + 4 >>> 2 >>> 0] = e.getUTCMinutes(), (w(), B)[r + 8 >>> 2 >>> 0] = e.getUTCHours(), (w(), B)[r + 12 >>> 2 >>> 0] = e.getUTCDate(), (w(), B)[r + 16 >>> 2 >>> 0] = e.getUTCMonth(), (w(), B)[r + 20 >>> 2 >>> 0] = e.getUTCFullYear() - 1900, (w(), B)[r + 24 >>> 2 >>> 0] = e.getUTCDay(), e = (e.getTime() - Date.UTC(e.getUTCFullYear(), 0, 1, 0, 0, 0, 0)) / 864e5 | 0, (w(), B)[r + 28 >>> 2 >>> 0] = e;\n }\n var kn = (e) => e % 4 == 0 && (e % 100 != 0 || e % 400 == 0), Wn = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335], Gn = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];\n function Ho(e, r) {\n e = -9007199254740992 > e || 9007199254740992 < e ? NaN : Number(e), r >>>= 0, e = new Date(1e3 * e), (w(), B)[r >>> 2 >>> 0] = e.getSeconds(), (w(), B)[r + 4 >>> 2 >>> 0] = e.getMinutes(), (w(), B)[r + 8 >>> 2 >>> 0] = e.getHours(), (w(), B)[r + 12 >>> 2 >>> 0] = e.getDate(), (w(), B)[r + 16 >>> 2 >>> 0] = e.getMonth(), (w(), B)[r + 20 >>> 2 >>> 0] = e.getFullYear() - 1900, (w(), B)[r + 24 >>> 2 >>> 0] = e.getDay();\n var i = (kn(e.getFullYear()) ? Wn : Gn)[e.getMonth()] + e.getDate() - 1 | 0;\n (w(), B)[r + 28 >>> 2 >>> 0] = i, (w(), B)[r + 36 >>> 2 >>> 0] = -60 * e.getTimezoneOffset(), i = new Date(e.getFullYear(), 6, 1).getTimezoneOffset();\n var s = new Date(e.getFullYear(), 0, 1).getTimezoneOffset();\n e = 0 | (i != s && e.getTimezoneOffset() == Math.min(s, i)), (w(), B)[r + 32 >>> 2 >>> 0] = e;\n }\n function jo(e) {\n e >>>= 0;\n var r = new Date((w(), B)[e + 20 >>> 2 >>> 0] + 1900, (w(), B)[e + 16 >>> 2 >>> 0], (w(), B)[e + 12 >>> 2 >>> 0], (w(), B)[e + 8 >>> 2 >>> 0], (w(), B)[e + 4 >>> 2 >>> 0], (w(), B)[e >>> 2 >>> 0], 0), i = (w(), B)[e + 32 >>> 2 >>> 0], s = r.getTimezoneOffset(), f = new Date(r.getFullYear(), 6, 1).getTimezoneOffset(), p = new Date(r.getFullYear(), 0, 1).getTimezoneOffset(), E = Math.min(p, f);\n return 0 > i ? (w(), B)[e + 32 >>> 2 >>> 0] = +(f != p && E == s) : 0 < i != (E == s) && (f = Math.max(p, f), r.setTime(r.getTime() + 6e4 * ((0 < i ? E : f) - s))), (w(), B)[e + 24 >>> 2 >>> 0] = r.getDay(), i = (kn(r.getFullYear()) ? Wn : Gn)[r.getMonth()] + r.getDate() - 1 | 0, (w(), B)[e + 28 >>> 2 >>> 0] = i, (w(), B)[e >>> 2 >>> 0] = r.getSeconds(), (w(), B)[e + 4 >>> 2 >>> 0] = r.getMinutes(), (w(), B)[e + 8 >>> 2 >>> 0] = r.getHours(), (w(), B)[e + 12 >>> 2 >>> 0] = r.getDate(), (w(), B)[e + 16 >>> 2 >>> 0] = r.getMonth(), (w(), B)[e + 20 >>> 2 >>> 0] = r.getYear(), e = r.getTime(), BigInt(isNaN(e) ? -1 : e / 1e3);\n }\n function $n(e, r, i, s, f, p, E) {\n return o ? L(16, 1, e, r, i, s, f, p, E) : -52;\n }\n function zn(e, r, i, s, f, p) {\n if (o)\n return L(17, 1, e, r, i, s, f, p);\n }\n var Ye = {}, Vo = () => performance.timeOrigin + performance.now();\n function Hn(e, r) {\n if (o)\n return L(18, 1, e, r);\n if (Ye[e] && (clearTimeout(Ye[e].id), delete Ye[e]), !r)\n return 0;\n var i = setTimeout(() => {\n delete Ye[e], Rt(() => or(e, performance.timeOrigin + performance.now()));\n }, r);\n return Ye[e] = { id: i, jc: r }, 0;\n }\n var Ae = (e, r, i) => {\n var s = (w(), ne);\n if (r >>>= 0, 0 < i) {\n var f = r;\n i = r + i - 1;\n for (var p = 0; p < e.length; ++p) {\n var E = e.codePointAt(p);\n if (127 >= E) {\n if (r >= i)\n break;\n s[r++ >>> 0] = E;\n } else if (2047 >= E) {\n if (r + 1 >= i)\n break;\n s[r++ >>> 0] = 192 | E >> 6, s[r++ >>> 0] = 128 | 63 & E;\n } else if (65535 >= E) {\n if (r + 2 >= i)\n break;\n s[r++ >>> 0] = 224 | E >> 12, s[r++ >>> 0] = 128 | E >> 6 & 63, s[r++ >>> 0] = 128 | 63 & E;\n } else {\n if (r + 3 >= i)\n break;\n s[r++ >>> 0] = 240 | E >> 18, s[r++ >>> 0] = 128 | E >> 12 & 63, s[r++ >>> 0] = 128 | E >> 6 & 63, s[r++ >>> 0] = 128 | 63 & E, p++;\n }\n }\n s[r >>> 0] = 0, e = r - f;\n } else\n e = 0;\n return e;\n };\n function Yo(e, r, i, s) {\n e >>>= 0, r >>>= 0, i >>>= 0, s >>>= 0;\n var f = (/* @__PURE__ */ new Date()).getFullYear(), p = new Date(f, 0, 1).getTimezoneOffset();\n f = new Date(f, 6, 1).getTimezoneOffset();\n var E = Math.max(p, f);\n (w(), W)[e >>> 2 >>> 0] = 60 * E, (w(), B)[r >>> 2 >>> 0] = +(p != f), e = (r = (S) => {\n var x = Math.abs(S);\n return `UTC${0 <= S ? "-" : "+"}${String(Math.floor(x / 60)).padStart(2, "0")}${String(x % 60).padStart(2, "0")}`;\n })(p), r = r(f), f < p ? (Ae(e, i, 17), Ae(r, s, 17)) : (Ae(e, s, 17), Ae(r, i, 17));\n }\n var Jo = () => Date.now(), qo = 1;\n function Xo(e, r, i) {\n if (i >>>= 0, !(0 <= e && 3 >= e))\n return 28;\n if (e === 0)\n e = Date.now();\n else {\n if (!qo)\n return 52;\n e = performance.timeOrigin + performance.now();\n }\n return e = Math.round(1e6 * e), (w(), A)[i >>> 3 >>> 0] = BigInt(e), 0;\n }\n var kt = [];\n function Qo(e, r, i) {\n e >>>= 0, r >>>= 0, i >>>= 0, kt.length = 0;\n for (var s; s = (w(), ne)[r++ >>> 0]; ) {\n var f = s != 105;\n i += (f &= s != 112) && i % 8 ? 4 : 0, kt.push(s == 112 ? (w(), W)[i >>> 2 >>> 0] : s == 106 ? (w(), A)[i >>> 3 >>> 0] : s == 105 ? (w(), B)[i >>> 2 >>> 0] : (w(), me)[i >>> 3 >>> 0]), i += f ? 8 : 4;\n }\n return lr[e](...kt);\n }\n var Zo = () => {\n };\n function Ko(e, r) {\n return F(Ct(e >>> 0, r >>> 0));\n }\n var ea = () => {\n throw se += 1, "unwind";\n };\n function ta() {\n return 4294901760;\n }\n var na = () => navigator.hardwareConcurrency, Ie = {}, Wt = (e) => {\n for (var r = 0, i = 0; i < e.length; ++i) {\n var s = e.charCodeAt(i);\n 127 >= s ? r++ : 2047 >= s ? r += 2 : 55296 <= s && 57343 >= s ? (r += 4, ++i) : r += 3;\n }\n return r;\n }, ot = (e) => {\n var r;\n return (r = /\\bwasm-function\\[\\d+\\]:(0x[0-9a-f]+)/.exec(e)) ? +r[1] : (r = /:(\\d+):\\d+(?:\\)|$)/.exec(e)) ? 2147483648 | +r[1] : 0;\n }, jn = (e) => {\n for (var r of e)\n (e = ot(r)) && (Ie[e] = r);\n };\n function ra() {\n var e = Error().stack.toString().split(`\n`);\n return e[0] == "Error" && e.shift(), jn(e), Ie.Vb = ot(e[3]), Ie.$b = e, Ie.Vb;\n }\n function at(e) {\n if (!(e = Ie[e >>> 0]))\n return 0;\n var r;\n if (r = /^\\s+at .*\\.wasm\\.(.*) \\(.*\\)$/.exec(e))\n e = r[1];\n else if (r = /^\\s+at (.*) \\(.*\\)$/.exec(e))\n e = r[1];\n else {\n if (!(r = /^(.+?)@/.exec(e)))\n return 0;\n e = r[1];\n }\n Kn(at.Wb ?? 0), r = Wt(e) + 1;\n var i = er(r);\n return i && Ae(e, i, r), at.Wb = i, at.Wb;\n }\n function oa(e) {\n e >>>= 0;\n var r = (w(), ne).length;\n if (e <= r || 4294901760 < e)\n return false;\n for (var i = 1; 4 >= i; i *= 2) {\n var s = r * (1 + 0.2 / i);\n s = Math.min(s, e + 100663296);\n e: {\n s = (Math.min(4294901760, 65536 * Math.ceil(Math.max(e, s) / 65536)) - ge.buffer.byteLength + 65535) / 65536 | 0;\n try {\n ge.grow(s), ee();\n var f = 1;\n break e;\n } catch {\n }\n f = void 0;\n }\n if (f)\n return true;\n }\n return false;\n }\n function aa(e, r, i) {\n if (e >>>= 0, r >>>= 0, Ie.Vb == e)\n var s = Ie.$b;\n else\n (s = Error().stack.toString().split(`\n`))[0] == "Error" && s.shift(), jn(s);\n for (var f = 3; s[f] && ot(s[f]) != e; )\n ++f;\n for (e = 0; e < i && s[e + f]; ++e)\n (w(), B)[r + 4 * e >>> 2 >>> 0] = ot(s[e + f]);\n return e;\n }\n var Gt, $t = {}, Vn = () => {\n if (!Gt) {\n var e, r = { USER: "web_user", LOGNAME: "web_user", PATH: "/", PWD: "/", HOME: "/home/web_user", LANG: (globalThis.navigator?.language ?? "C").replace("-", "_") + ".UTF-8", _: "./this.program" };\n for (e in $t)\n $t[e] === void 0 ? delete r[e] : r[e] = $t[e];\n var i = [];\n for (e in r)\n i.push(`${e}=${r[e]}`);\n Gt = i;\n }\n return Gt;\n };\n function Yn(e, r) {\n if (o)\n return L(19, 1, e, r);\n e >>>= 0, r >>>= 0;\n var i, s = 0, f = 0;\n for (i of Vn()) {\n var p = r + s;\n (w(), W)[e + f >>> 2 >>> 0] = p, s += Ae(i, p, 1 / 0) + 1, f += 4;\n }\n return 0;\n }\n function Jn(e, r) {\n if (o)\n return L(20, 1, e, r);\n e >>>= 0, r >>>= 0;\n var i = Vn();\n for (var s of ((w(), W)[e >>> 2 >>> 0] = i.length, e = 0, i))\n e += Wt(s) + 1;\n return (w(), W)[r >>> 2 >>> 0] = e, 0;\n }\n function qn(e) {\n return o ? L(21, 1, e) : 52;\n }\n function Xn(e, r, i, s) {\n return o ? L(22, 1, e, r, i, s) : 52;\n }\n function Qn(e, r, i, s) {\n return o ? L(23, 1, e, r, i, s) : 70;\n }\n var sa = [null, [], []];\n function Zn(e, r, i, s) {\n if (o)\n return L(24, 1, e, r, i, s);\n r >>>= 0, i >>>= 0, s >>>= 0;\n for (var f = 0, p = 0; p < i; p++) {\n var E = (w(), W)[r >>> 2 >>> 0], S = (w(), W)[r + 4 >>> 2 >>> 0];\n r += 8;\n for (var x = 0; x < S; x++) {\n var R = e, X = (w(), ne)[E + x >>> 0], le = sa[R];\n X === 0 || X === 10 ? ((R === 1 ? O : F)(An(le)), le.length = 0) : le.push(X);\n }\n f += S;\n }\n return (w(), W)[s >>> 2 >>> 0] = f, 0;\n }\n function ia(e) {\n return e >>> 0;\n }\n o || function() {\n for (var e = t.numThreads - 1; e--; )\n yn();\n Ve.push(async () => {\n var r = async function() {\n if (!o)\n return Promise.all(ce.map(bn));\n }();\n Re++, await r, --Re == 0 && te && (r = te, te = null, r());\n });\n }(), o || (ge = new WebAssembly.Memory({ initial: 256, maximum: 65536, shared: true }), ee()), t.wasmBinary && (g = t.wasmBinary), t.stackSave = () => U(), t.stackRestore = (e) => P(e), t.stackAlloc = (e) => jt(e), t.setValue = function(e, r, i = "i8") {\n switch (i.endsWith("*") && (i = "*"), i) {\n case "i1":\n case "i8":\n (w(), j)[e >>> 0] = r;\n break;\n case "i16":\n (w(), pe)[e >>> 1 >>> 0] = r;\n break;\n case "i32":\n (w(), B)[e >>> 2 >>> 0] = r;\n break;\n case "i64":\n (w(), A)[e >>> 3 >>> 0] = BigInt(r);\n break;\n case "float":\n (w(), re)[e >>> 2 >>> 0] = r;\n break;\n case "double":\n (w(), me)[e >>> 3 >>> 0] = r;\n break;\n case "*":\n (w(), W)[e >>> 2 >>> 0] = r;\n break;\n default:\n H(`invalid type for setValue: ${i}`);\n }\n }, t.getValue = function(e, r = "i8") {\n switch (r.endsWith("*") && (r = "*"), r) {\n case "i1":\n case "i8":\n return (w(), j)[e >>> 0];\n case "i16":\n return (w(), pe)[e >>> 1 >>> 0];\n case "i32":\n return (w(), B)[e >>> 2 >>> 0];\n case "i64":\n return (w(), A)[e >>> 3 >>> 0];\n case "float":\n return (w(), re)[e >>> 2 >>> 0];\n case "double":\n return (w(), me)[e >>> 3 >>> 0];\n case "*":\n return (w(), W)[e >>> 2 >>> 0];\n default:\n H(`invalid type for getValue: ${r}`);\n }\n }, t.UTF8ToString = Ct, t.stringToUTF8 = Ae, t.lengthBytesUTF8 = Wt;\n var st, Kn, er, zt, tr, nr, rr, Ht, or, ar, M, Je, sr, P, jt, U, ir, Vt, ur, fr, cr, Ee, ua = [V, fe, Sn, In, Bn, Ln, _n, Pn, Dn, Un, xn, Mn, Cn, Rn, Fn, Nn, $n, zn, Hn, Yn, Jn, qn, Xn, Qn, Zn], lr = { 930988: (e, r, i, s, f) => {\n if (t === void 0 || !t.Rb)\n return 1;\n if ((e = Ct(Number(e >>> 0))).startsWith("./") && (e = e.substring(2)), !(e = t.Rb.get(e)))\n return 2;\n if (r = Number(r >>> 0), i = Number(i >>> 0), s = Number(s >>> 0), r + i > e.byteLength)\n return 3;\n try {\n let p = e.subarray(r, r + i);\n switch (f) {\n case 0:\n (w(), ne).set(p, s >>> 0);\n break;\n case 1:\n t.fc ? t.fc(s, p) : t.ic(s, p);\n break;\n default:\n return 4;\n }\n return 0;\n } catch {\n return 4;\n }\n }, 931812: () => typeof wasmOffsetConverter < "u" };\n function fa() {\n return typeof wasmOffsetConverter < "u";\n }\n function ca(e, r, i, s) {\n var f = U();\n try {\n return C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function la(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function da(e) {\n var r = U();\n try {\n C(e)();\n } catch (i) {\n if (P(r), i !== i + 0)\n throw i;\n M(1, 0);\n }\n }\n function pa(e, r) {\n var i = U();\n try {\n return C(e)(r);\n } catch (s) {\n if (P(i), s !== s + 0)\n throw s;\n M(1, 0);\n }\n }\n function ma(e, r, i) {\n var s = U();\n try {\n C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function ha(e, r) {\n var i = U();\n try {\n C(e)(r);\n } catch (s) {\n if (P(i), s !== s + 0)\n throw s;\n M(1, 0);\n }\n }\n function wa(e, r, i, s, f, p, E) {\n var S = U();\n try {\n return C(e)(r, i, s, f, p, E);\n } catch (x) {\n if (P(S), x !== x + 0)\n throw x;\n M(1, 0);\n }\n }\n function ba(e, r, i, s, f, p) {\n var E = U();\n try {\n C(e)(r, i, s, f, p);\n } catch (S) {\n if (P(E), S !== S + 0)\n throw S;\n M(1, 0);\n }\n }\n function ya(e, r, i, s) {\n var f = U();\n try {\n C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function ga(e, r, i, s, f) {\n var p = U();\n try {\n C(e)(r, i, s, f);\n } catch (E) {\n if (P(p), E !== E + 0)\n throw E;\n M(1, 0);\n }\n }\n function Ea(e, r, i, s, f, p, E) {\n var S = U();\n try {\n C(e)(r, i, s, f, p, E);\n } catch (x) {\n if (P(S), x !== x + 0)\n throw x;\n M(1, 0);\n }\n }\n function Ta(e, r, i, s, f, p, E) {\n var S = U();\n try {\n C(e)(r, i, s, f, p, E);\n } catch (x) {\n if (P(S), x !== x + 0)\n throw x;\n M(1, 0);\n }\n }\n function Sa(e, r, i, s, f, p, E, S) {\n var x = U();\n try {\n C(e)(r, i, s, f, p, E, S);\n } catch (R) {\n if (P(x), R !== R + 0)\n throw R;\n M(1, 0);\n }\n }\n function va(e, r, i, s, f) {\n var p = U();\n try {\n return C(e)(r, i, s, f);\n } catch (E) {\n if (P(p), E !== E + 0)\n throw E;\n M(1, 0);\n }\n }\n function Oa(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function Aa(e, r, i, s, f, p, E, S) {\n var x = U();\n try {\n C(e)(r, i, s, f, p, E, S);\n } catch (R) {\n if (P(x), R !== R + 0)\n throw R;\n M(1, 0);\n }\n }\n function Ia(e, r, i, s, f, p, E, S, x, R, X, le) {\n var we = U();\n try {\n C(e)(r, i, s, f, p, E, S, x, R, X, le);\n } catch (be) {\n if (P(we), be !== be + 0)\n throw be;\n M(1, 0);\n }\n }\n function Ba(e, r, i, s, f, p) {\n var E = U();\n try {\n return C(e)(r, i, s, f, p);\n } catch (S) {\n if (P(E), S !== S + 0)\n throw S;\n M(1, 0);\n }\n }\n function La(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n return M(1, 0), 0n;\n }\n }\n function _a(e, r, i, s, f, p, E, S, x) {\n var R = U();\n try {\n C(e)(r, i, s, f, p, E, S, x);\n } catch (X) {\n if (P(R), X !== X + 0)\n throw X;\n M(1, 0);\n }\n }\n function Pa(e) {\n var r = U();\n try {\n return C(e)();\n } catch (i) {\n if (P(r), i !== i + 0)\n throw i;\n M(1, 0);\n }\n }\n function Da(e, r) {\n var i = U();\n try {\n return C(e)(r);\n } catch (s) {\n if (P(i), s !== s + 0)\n throw s;\n return M(1, 0), 0n;\n }\n }\n function Ua(e) {\n var r = U();\n try {\n return C(e)();\n } catch (i) {\n if (P(r), i !== i + 0)\n throw i;\n return M(1, 0), 0n;\n }\n }\n function xa(e, r, i, s) {\n var f = U();\n try {\n return C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function Ma(e, r, i, s, f) {\n var p = U();\n try {\n return C(e)(r, i, s, f);\n } catch (E) {\n if (P(p), E !== E + 0)\n throw E;\n M(1, 0);\n }\n }\n function Ca(e, r, i, s, f, p) {\n var E = U();\n try {\n return C(e)(r, i, s, f, p);\n } catch (S) {\n if (P(E), S !== S + 0)\n throw S;\n M(1, 0);\n }\n }\n function Ra(e, r, i, s, f, p) {\n var E = U();\n try {\n return C(e)(r, i, s, f, p);\n } catch (S) {\n if (P(E), S !== S + 0)\n throw S;\n M(1, 0);\n }\n }\n function Fa(e, r, i, s, f, p, E, S) {\n var x = U();\n try {\n return C(e)(r, i, s, f, p, E, S);\n } catch (R) {\n if (P(x), R !== R + 0)\n throw R;\n M(1, 0);\n }\n }\n function Na(e, r, i, s, f) {\n var p = U();\n try {\n return C(e)(r, i, s, f);\n } catch (E) {\n if (P(p), E !== E + 0)\n throw E;\n return M(1, 0), 0n;\n }\n }\n function ka(e, r, i, s) {\n var f = U();\n try {\n return C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function Wa(e, r, i, s) {\n var f = U();\n try {\n return C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function Ga(e, r, i, s, f, p, E, S, x, R, X, le) {\n var we = U();\n try {\n return C(e)(r, i, s, f, p, E, S, x, R, X, le);\n } catch (be) {\n if (P(we), be !== be + 0)\n throw be;\n M(1, 0);\n }\n }\n function $a(e, r, i, s, f, p, E, S, x, R, X) {\n var le = U();\n try {\n C(e)(r, i, s, f, p, E, S, x, R, X);\n } catch (we) {\n if (P(le), we !== we + 0)\n throw we;\n M(1, 0);\n }\n }\n function za(e, r, i, s, f, p, E, S, x, R, X, le, we, be, Ya, Ja) {\n var qa = U();\n try {\n C(e)(r, i, s, f, p, E, S, x, R, X, le, we, be, Ya, Ja);\n } catch (Yt) {\n if (P(qa), Yt !== Yt + 0)\n throw Yt;\n M(1, 0);\n }\n }\n function Ha(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function ja(e, r, i) {\n var s = U();\n try {\n return C(e)(r, i);\n } catch (f) {\n if (P(s), f !== f + 0)\n throw f;\n M(1, 0);\n }\n }\n function Va(e, r, i, s) {\n var f = U();\n try {\n C(e)(r, i, s);\n } catch (p) {\n if (P(f), p !== p + 0)\n throw p;\n M(1, 0);\n }\n }\n function it() {\n if (0 < Re)\n te = it;\n else if (o)\n T?.(t), he();\n else {\n for (var e = Ve; 0 < e.length; )\n e.shift()(t);\n 0 < Re ? te = it : (t.calledRun = true, _ || (he(), T?.(t)));\n }\n }\n return o || (Ee = await Ut(), it()), t.PTR_SIZE = 4, je ? t : new Promise((e, r) => {\n T = e, I = r;\n });\n }\n var rs;\n var os;\n var Jr = N(() => {\n "use strict";\n rs = Vr, os = globalThis.self?.name?.startsWith("em-pthread");\n os && Vr();\n });\n var Qr;\n var an;\n var as;\n var oe;\n var Zr;\n var on;\n var ss;\n var is;\n var Kr;\n var us;\n var qr;\n var eo;\n var Xr;\n var to;\n var pt = N(() => {\n "use strict";\n dt();\n Qr = typeof location > "u" ? void 0 : location.origin, an = import_meta.url > "file:" && import_meta.url < "file;", as = () => {\n if (true) {\n if (an) {\n let n = URL;\n return new URL(new n("ort.wasm.bundle.min.mjs", import_meta.url).href, Qr).href;\n }\n return import_meta.url;\n }\n }, oe = as(), Zr = () => {\n if (oe && !oe.startsWith("blob:"))\n return oe.substring(0, oe.lastIndexOf("/") + 1);\n }, on = (n, t) => {\n try {\n let a = t ?? oe;\n return (a ? new URL(n, a) : new URL(n)).origin === Qr;\n } catch {\n return false;\n }\n }, ss = (n, t) => {\n let a = t ?? oe;\n try {\n return (a ? new URL(n, a) : new URL(n)).href;\n } catch {\n return;\n }\n }, is = (n, t) => `${t ?? "./"}${n}`, Kr = async (n) => {\n let a = await (await fetch(n, { credentials: "same-origin" })).blob();\n return URL.createObjectURL(a);\n }, us = async (n) => (await import(\n /*webpackIgnore:true*/\n /*@vite-ignore*/\n n\n )).default, qr = (jr(), Xt(Hr)).default, eo = async () => {\n if (!oe)\n throw new Error("Failed to load proxy worker: cannot determine the script source URL.");\n if (on(oe))\n return [void 0, qr()];\n let n = await Kr(oe);\n return [n, qr(n)];\n }, Xr = (Jr(), Xt(Yr)).default, to = async (n, t, a, u) => {\n let o = Xr && !(n || t);\n if (o)\n if (oe)\n o = on(oe) || u && !a;\n else if (u && !a)\n o = true;\n else\n throw new Error("cannot determine the script source URL.");\n if (o)\n return [void 0, Xr];\n {\n let d = "ort-wasm-simd-threaded.mjs", c = n ?? ss(d, t), l = a && c && !on(c, t), m = l ? await Kr(c) : c ?? is(d, t);\n return [l ? m : void 0, await us(m)];\n }\n };\n });\n var sn;\n var un;\n var St;\n var no;\n var fs;\n var cs;\n var ls;\n var mt;\n var $;\n var xe = N(() => {\n "use strict";\n pt();\n un = false, St = false, no = false, fs = () => {\n if (typeof SharedArrayBuffer > "u")\n return false;\n try {\n return typeof MessageChannel < "u" && new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)), WebAssembly.validate(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 2, 1, 0, 5, 4, 1, 3, 1, 1, 10, 11, 1, 9, 0, 65, 0, 254, 16, 2, 0, 26, 11]));\n } catch {\n return false;\n }\n }, cs = () => {\n try {\n return WebAssembly.validate(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 2, 1, 0, 10, 30, 1, 28, 0, 65, 0, 253, 15, 253, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 186, 1, 26, 11]));\n } catch {\n return false;\n }\n }, ls = () => {\n try {\n return WebAssembly.validate(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 5, 1, 96, 0, 1, 123, 3, 2, 1, 0, 10, 19, 1, 17, 0, 65, 1, 253, 15, 65, 2, 253, 15, 65, 3, 253, 15, 253, 147, 2, 11]));\n } catch {\n return false;\n }\n }, mt = async (n) => {\n if (un)\n return Promise.resolve();\n if (St)\n throw new Error("multiple calls to \'initializeWebAssembly()\' detected.");\n if (no)\n throw new Error("previous call to \'initializeWebAssembly()\' failed.");\n St = true;\n let t = n.initTimeout, a = n.numThreads;\n if (n.simd !== false) {\n if (n.simd === "relaxed") {\n if (!ls())\n throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.");\n } else if (!cs())\n throw new Error("WebAssembly SIMD is not supported in the current environment.");\n }\n let u = fs();\n a > 1 && !u && (typeof self < "u" && !self.crossOriginIsolated && console.warn("env.wasm.numThreads is set to " + a + ", but this will not work unless you enable crossOriginIsolated mode. See https://web.dev/cross-origin-isolation-guide/ for more info."), console.warn("WebAssembly multi-threading is not supported in the current environment. Falling back to single-threading."), n.numThreads = a = 1);\n let o = n.wasmPaths, d = typeof o == "string" ? o : void 0, c = o?.mjs, l = c?.href ?? c, m = o?.wasm, h = m?.href ?? m, g = n.wasmBinary, [b, y] = await to(l, d, a > 1, !!g || !!h), T = false, I = [];\n if (t > 0 && I.push(new Promise((D) => {\n setTimeout(() => {\n T = true, D();\n }, t);\n })), I.push(new Promise((D, z) => {\n let v = { numThreads: a };\n if (g)\n v.wasmBinary = g, v.locateFile = (O) => O;\n else if (h || d)\n v.locateFile = (O) => h ?? d + O;\n else if (l && l.indexOf("blob:") !== 0)\n v.locateFile = (O) => new URL(O, l).href;\n else if (b) {\n let O = Zr();\n O && (v.locateFile = (F) => O + F);\n }\n y(v).then((O) => {\n St = false, un = true, sn = O, D(), b && URL.revokeObjectURL(b);\n }, (O) => {\n St = false, no = true, z(O);\n });\n })), await Promise.race(I), T)\n throw new Error(`WebAssembly backend initializing failed due to timeout: ${t}ms`);\n }, $ = () => {\n if (un && sn)\n return sn;\n throw new Error("WebAssembly is not initialized yet.");\n };\n });\n var ae;\n var Ze;\n var G;\n var vt = N(() => {\n "use strict";\n xe();\n ae = (n, t) => {\n let a = $(), u = a.lengthBytesUTF8(n) + 1, o = a._malloc(u);\n return a.stringToUTF8(n, o, u), t.push(o), o;\n }, Ze = (n, t, a, u) => {\n if (typeof n == "object" && n !== null) {\n if (a.has(n))\n throw new Error("Circular reference in options");\n a.add(n);\n }\n Object.entries(n).forEach(([o, d]) => {\n let c = t ? t + o : o;\n if (typeof d == "object")\n Ze(d, c + ".", a, u);\n else if (typeof d == "string" || typeof d == "number")\n u(c, d.toString());\n else if (typeof d == "boolean")\n u(c, d ? "1" : "0");\n else\n throw new Error(`Can\'t handle extra config type: ${typeof d}`);\n });\n }, G = (n) => {\n let t = $(), a = t.stackSave();\n try {\n let u = t.PTR_SIZE, o = t.stackAlloc(2 * u);\n t._OrtGetLastError(o, o + u);\n let d = Number(t.getValue(o, u === 4 ? "i32" : "i64")), c = t.getValue(o + u, "*"), l = c ? t.UTF8ToString(c) : "";\n throw new Error(`${n} ERROR_CODE: ${d}, ERROR_MESSAGE: ${l}`);\n } finally {\n t.stackRestore(a);\n }\n };\n });\n var ro;\n var oo = N(() => {\n "use strict";\n xe();\n vt();\n ro = (n) => {\n let t = $(), a = 0, u = [], o = n || {};\n try {\n if (n?.logSeverityLevel === void 0)\n o.logSeverityLevel = 2;\n else if (typeof n.logSeverityLevel != "number" || !Number.isInteger(n.logSeverityLevel) || n.logSeverityLevel < 0 || n.logSeverityLevel > 4)\n throw new Error(`log severity level is not valid: ${n.logSeverityLevel}`);\n if (n?.logVerbosityLevel === void 0)\n o.logVerbosityLevel = 0;\n else if (typeof n.logVerbosityLevel != "number" || !Number.isInteger(n.logVerbosityLevel))\n throw new Error(`log verbosity level is not valid: ${n.logVerbosityLevel}`);\n n?.terminate === void 0 && (o.terminate = false);\n let d = 0;\n return n?.tag !== void 0 && (d = ae(n.tag, u)), a = t._OrtCreateRunOptions(o.logSeverityLevel, o.logVerbosityLevel, !!o.terminate, d), a === 0 && G("Can\'t create run options."), n?.extra !== void 0 && Ze(n.extra, "", /* @__PURE__ */ new WeakSet(), (c, l) => {\n let m = ae(c, u), h = ae(l, u);\n t._OrtAddRunConfigEntry(a, m, h) !== 0 && G(`Can\'t set a run config entry: ${c} - ${l}.`);\n }), [a, u];\n } catch (d) {\n throw a !== 0 && t._OrtReleaseRunOptions(a), u.forEach((c) => t._free(c)), d;\n }\n };\n });\n var ds;\n var ps;\n var ms;\n var ke;\n var hs;\n var ao;\n var so = N(() => {\n "use strict";\n xe();\n vt();\n ds = (n) => {\n switch (n) {\n case "disabled":\n return 0;\n case "basic":\n return 1;\n case "extended":\n return 2;\n case "layout":\n return 3;\n case "all":\n return 99;\n default:\n throw new Error(`unsupported graph optimization level: ${n}`);\n }\n }, ps = (n) => {\n switch (n) {\n case "sequential":\n return 0;\n case "parallel":\n return 1;\n default:\n throw new Error(`unsupported execution mode: ${n}`);\n }\n }, ms = (n) => {\n n.extra || (n.extra = {}), n.extra.session || (n.extra.session = {});\n let t = n.extra.session;\n t.use_ort_model_bytes_directly || (t.use_ort_model_bytes_directly = "1"), n.executionProviders && n.executionProviders.some((a) => (typeof a == "string" ? a : a.name) === "webgpu") && (n.enableMemPattern = false);\n }, ke = (n, t, a, u) => {\n let o = ae(t, u), d = ae(a, u);\n $()._OrtAddSessionConfigEntry(n, o, d) !== 0 && G(`Can\'t set a session config entry: ${t} - ${a}.`);\n }, hs = async (n, t, a) => {\n let u = t.executionProviders;\n for (let o of u) {\n let d = typeof o == "string" ? o : o.name, c = [];\n switch (d) {\n case "webnn":\n if (d = "WEBNN", ke(n, "session.disable_quant_qdq", "1", a), ke(n, "session.disable_qdq_constant_folding", "1", a), typeof o != "string") {\n let y = o?.deviceType;\n y && ke(n, "deviceType", y, a);\n }\n break;\n case "webgpu":\n if (d = "JS", typeof o != "string") {\n let b = o;\n if (b?.preferredLayout) {\n if (b.preferredLayout !== "NCHW" && b.preferredLayout !== "NHWC")\n throw new Error(`preferredLayout must be either \'NCHW\' or \'NHWC\': ${b.preferredLayout}`);\n ke(n, "preferredLayout", b.preferredLayout, a);\n }\n }\n break;\n case "wasm":\n case "cpu":\n continue;\n default:\n throw new Error(`not supported execution provider: ${d}`);\n }\n let l = ae(d, a), m = c.length, h = 0, g = 0;\n if (m > 0) {\n h = $()._malloc(m * $().PTR_SIZE), a.push(h), g = $()._malloc(m * $().PTR_SIZE), a.push(g);\n for (let b = 0; b < m; b++)\n $().setValue(h + b * $().PTR_SIZE, c[b][0], "*"), $().setValue(g + b * $().PTR_SIZE, c[b][1], "*");\n }\n await $()._OrtAppendExecutionProvider(n, l, h, g, m) !== 0 && G(`Can\'t append execution provider: ${d}.`);\n }\n }, ao = async (n) => {\n let t = $(), a = 0, u = [], o = n || {};\n ms(o);\n try {\n let d = ds(o.graphOptimizationLevel ?? "all"), c = ps(o.executionMode ?? "sequential"), l = typeof o.logId == "string" ? ae(o.logId, u) : 0, m = o.logSeverityLevel ?? 2;\n if (!Number.isInteger(m) || m < 0 || m > 4)\n throw new Error(`log severity level is not valid: ${m}`);\n let h = o.logVerbosityLevel ?? 0;\n if (!Number.isInteger(h) || h < 0 || h > 4)\n throw new Error(`log verbosity level is not valid: ${h}`);\n let g = typeof o.optimizedModelFilePath == "string" ? ae(o.optimizedModelFilePath, u) : 0;\n if (a = t._OrtCreateSessionOptions(d, !!o.enableCpuMemArena, !!o.enableMemPattern, c, !!o.enableProfiling, 0, l, m, h, g), a === 0 && G("Can\'t create session options."), o.executionProviders && await hs(a, o, u), o.enableGraphCapture !== void 0) {\n if (typeof o.enableGraphCapture != "boolean")\n throw new Error(`enableGraphCapture must be a boolean value: ${o.enableGraphCapture}`);\n ke(a, "enableGraphCapture", o.enableGraphCapture.toString(), u);\n }\n if (o.freeDimensionOverrides)\n for (let [b, y] of Object.entries(o.freeDimensionOverrides)) {\n if (typeof b != "string")\n throw new Error(`free dimension override name must be a string: ${b}`);\n if (typeof y != "number" || !Number.isInteger(y) || y < 0)\n throw new Error(`free dimension override value must be a non-negative integer: ${y}`);\n let T = ae(b, u);\n t._OrtAddFreeDimensionOverride(a, T, y) !== 0 && G(`Can\'t set a free dimension override: ${b} - ${y}.`);\n }\n return o.extra !== void 0 && Ze(o.extra, "", /* @__PURE__ */ new WeakSet(), (b, y) => {\n ke(a, b, y, u);\n }), [a, u];\n } catch (d) {\n throw a !== 0 && t._OrtReleaseSessionOptions(a) !== 0 && G("Can\'t release session options."), u.forEach((c) => t._free(c)), d;\n }\n };\n });\n var We;\n var Ot;\n var Ge;\n var io;\n var uo;\n var At;\n var It;\n var fo;\n var fn = N(() => {\n "use strict";\n We = (n) => {\n switch (n) {\n case "int8":\n return 3;\n case "uint8":\n return 2;\n case "bool":\n return 9;\n case "int16":\n return 5;\n case "uint16":\n return 4;\n case "int32":\n return 6;\n case "uint32":\n return 12;\n case "float16":\n return 10;\n case "float32":\n return 1;\n case "float64":\n return 11;\n case "string":\n return 8;\n case "int64":\n return 7;\n case "uint64":\n return 13;\n case "int4":\n return 22;\n case "uint4":\n return 21;\n default:\n throw new Error(`unsupported data type: ${n}`);\n }\n }, Ot = (n) => {\n switch (n) {\n case 3:\n return "int8";\n case 2:\n return "uint8";\n case 9:\n return "bool";\n case 5:\n return "int16";\n case 4:\n return "uint16";\n case 6:\n return "int32";\n case 12:\n return "uint32";\n case 10:\n return "float16";\n case 1:\n return "float32";\n case 11:\n return "float64";\n case 8:\n return "string";\n case 7:\n return "int64";\n case 13:\n return "uint64";\n case 22:\n return "int4";\n case 21:\n return "uint4";\n default:\n throw new Error(`unsupported data type: ${n}`);\n }\n }, Ge = (n, t) => {\n let a = [-1, 4, 1, 1, 2, 2, 4, 8, -1, 1, 2, 8, 4, 8, -1, -1, -1, -1, -1, -1, -1, 0.5, 0.5][n], u = typeof t == "number" ? t : t.reduce((o, d) => o * d, 1);\n return a > 0 ? Math.ceil(u * a) : void 0;\n }, io = (n) => {\n switch (n) {\n case "float16":\n return typeof Float16Array < "u" && Float16Array.from ? Float16Array : Uint16Array;\n case "float32":\n return Float32Array;\n case "uint8":\n return Uint8Array;\n case "int8":\n return Int8Array;\n case "uint16":\n return Uint16Array;\n case "int16":\n return Int16Array;\n case "int32":\n return Int32Array;\n case "bool":\n return Uint8Array;\n case "float64":\n return Float64Array;\n case "uint32":\n return Uint32Array;\n case "int64":\n return BigInt64Array;\n case "uint64":\n return BigUint64Array;\n default:\n throw new Error(`unsupported type: ${n}`);\n }\n }, uo = (n) => {\n switch (n) {\n case "verbose":\n return 0;\n case "info":\n return 1;\n case "warning":\n return 2;\n case "error":\n return 3;\n case "fatal":\n return 4;\n default:\n throw new Error(`unsupported logging level: ${n}`);\n }\n }, At = (n) => n === "float32" || n === "float16" || n === "int32" || n === "int64" || n === "uint32" || n === "uint8" || n === "bool" || n === "uint4" || n === "int4", It = (n) => n === "float32" || n === "float16" || n === "int32" || n === "int64" || n === "uint32" || n === "uint64" || n === "int8" || n === "uint8" || n === "bool" || n === "uint4" || n === "int4", fo = (n) => {\n switch (n) {\n case "none":\n return 0;\n case "cpu":\n return 1;\n case "cpu-pinned":\n return 2;\n case "texture":\n return 3;\n case "gpu-buffer":\n return 4;\n case "ml-tensor":\n return 5;\n default:\n throw new Error(`unsupported data location: ${n}`);\n }\n };\n });\n var Ke;\n var cn = N(() => {\n "use strict";\n dt();\n Ke = async (n) => {\n if (typeof n == "string")\n if (false)\n try {\n let { readFile: t } = qt("node:fs/promises");\n return new Uint8Array(await t(n));\n } catch (t) {\n if (t.code === "ERR_FS_FILE_TOO_LARGE") {\n let { createReadStream: a } = qt("node:fs"), u = a(n), o = [];\n for await (let d of u)\n o.push(d);\n return new Uint8Array(Buffer.concat(o));\n }\n throw t;\n }\n else {\n let t = await fetch(n);\n if (!t.ok)\n throw new Error(`failed to load external data file: ${n}`);\n let a = t.headers.get("Content-Length"), u = a ? parseInt(a, 10) : 0;\n if (u < 1073741824)\n return new Uint8Array(await t.arrayBuffer());\n {\n if (!t.body)\n throw new Error(`failed to load external data file: ${n}, no response body.`);\n let o = t.body.getReader(), d;\n try {\n d = new ArrayBuffer(u);\n } catch (l) {\n if (l instanceof RangeError) {\n let m = Math.ceil(u / 65536);\n d = new WebAssembly.Memory({ initial: m, maximum: m }).buffer;\n } else\n throw l;\n }\n let c = 0;\n for (; ; ) {\n let { done: l, value: m } = await o.read();\n if (l)\n break;\n let h = m.byteLength;\n new Uint8Array(d, c, h).set(m), c += h;\n }\n return new Uint8Array(d, 0, u);\n }\n }\n else\n return n instanceof Blob ? new Uint8Array(await n.arrayBuffer()) : n instanceof Uint8Array ? n : new Uint8Array(n);\n };\n });\n var ws;\n var ht;\n var wt;\n var $e;\n var bs;\n var co;\n var Qe;\n var bt;\n var yt;\n var lo;\n var gt;\n var Et;\n var Tt;\n var rn = N(() => {\n "use strict";\n Te();\n oo();\n so();\n fn();\n xe();\n vt();\n cn();\n ws = (n, t) => {\n $()._OrtInit(n, t) !== 0 && G("Can\'t initialize onnxruntime.");\n }, ht = async (n) => {\n ws(n.wasm.numThreads, uo(n.logLevel));\n }, wt = async (n, t) => {\n $().asyncInit?.();\n let a = n.webgpu.adapter;\n if (t === "webgpu") {\n if (typeof navigator > "u" || !navigator.gpu)\n throw new Error("WebGPU is not supported in current environment");\n if (a) {\n if (typeof a.limits != "object" || typeof a.features != "object" || typeof a.requestDevice != "function")\n throw new Error("Invalid GPU adapter set in `env.webgpu.adapter`. It must be a GPUAdapter object.");\n } else {\n let u = n.webgpu.powerPreference;\n if (u !== void 0 && u !== "low-power" && u !== "high-performance")\n throw new Error(`Invalid powerPreference setting: "${u}"`);\n let o = n.webgpu.forceFallbackAdapter;\n if (o !== void 0 && typeof o != "boolean")\n throw new Error(`Invalid forceFallbackAdapter setting: "${o}"`);\n if (a = await navigator.gpu.requestAdapter({ powerPreference: u, forceFallbackAdapter: o }), !a)\n throw new Error(\'Failed to get GPU adapter. You may need to enable flag "--enable-unsafe-webgpu" if you are using Chrome.\');\n }\n }\n if (t === "webnn" && (typeof navigator > "u" || !navigator.ml))\n throw new Error("WebNN is not supported in current environment");\n }, $e = /* @__PURE__ */ new Map(), bs = (n) => {\n let t = $(), a = t.stackSave();\n try {\n let u = t.PTR_SIZE, o = t.stackAlloc(2 * u);\n t._OrtGetInputOutputCount(n, o, o + u) !== 0 && G("Can\'t get session input/output count.");\n let c = u === 4 ? "i32" : "i64";\n return [Number(t.getValue(o, c)), Number(t.getValue(o + u, c))];\n } finally {\n t.stackRestore(a);\n }\n }, co = (n, t) => {\n let a = $(), u = a.stackSave(), o = 0;\n try {\n let d = a.PTR_SIZE, c = a.stackAlloc(2 * d);\n a._OrtGetInputOutputMetadata(n, t, c, c + d) !== 0 && G("Can\'t get session input/output metadata.");\n let m = Number(a.getValue(c, "*"));\n o = Number(a.getValue(c + d, "*"));\n let h = a.HEAP32[o / 4];\n if (h === 0)\n return [m, 0];\n let g = a.HEAPU32[o / 4 + 1], b = [];\n for (let y = 0; y < g; y++) {\n let T = Number(a.getValue(o + 8 + y * d, "*"));\n b.push(T !== 0 ? a.UTF8ToString(T) : Number(a.getValue(o + 8 + (y + g) * d, "*")));\n }\n return [m, h, b];\n } finally {\n a.stackRestore(u), o !== 0 && a._OrtFree(o);\n }\n }, Qe = (n) => {\n let t = $(), a = t._malloc(n.byteLength);\n if (a === 0)\n throw new Error(`Can\'t create a session. failed to allocate a buffer of size ${n.byteLength}.`);\n return t.HEAPU8.set(n, a), [a, n.byteLength];\n }, bt = async (n, t) => {\n let a, u, o = $();\n Array.isArray(n) ? [a, u] = n : n.buffer === o.HEAPU8.buffer ? [a, u] = [n.byteOffset, n.byteLength] : [a, u] = Qe(n);\n let d = 0, c = 0, l = 0, m = [], h = [], g = [];\n try {\n if ([c, m] = await ao(t), t?.externalData && o.mountExternalData) {\n let _ = [];\n for (let k of t.externalData) {\n let w = typeof k == "string" ? k : k.path;\n _.push(Ke(typeof k == "string" ? k : k.data).then((Z) => {\n o.mountExternalData(w, Z);\n }));\n }\n await Promise.all(_);\n }\n for (let _ of t?.executionProviders ?? [])\n if ((typeof _ == "string" ? _ : _.name) === "webnn") {\n if (o.shouldTransferToMLTensor = false, typeof _ != "string") {\n let w = _, Z = w?.context, j = w?.gpuDevice, ne = w?.deviceType, pe = w?.powerPreference;\n Z ? o.currentContext = Z : j ? o.currentContext = await o.webnnCreateMLContext(j) : o.currentContext = await o.webnnCreateMLContext({ deviceType: ne, powerPreference: pe });\n } else\n o.currentContext = await o.webnnCreateMLContext();\n break;\n }\n d = await o._OrtCreateSession(a, u, c), o.webgpuOnCreateSession?.(d), d === 0 && G("Can\'t create a session."), o.jsepOnCreateSession?.(), o.currentContext && (o.webnnRegisterMLContext(d, o.currentContext), o.currentContext = void 0, o.shouldTransferToMLTensor = true);\n let [b, y] = bs(d), T = !!t?.enableGraphCapture, I = [], D = [], z = [], v = [], O = [];\n for (let _ = 0; _ < b; _++) {\n let [k, w, Z] = co(d, _);\n k === 0 && G("Can\'t get an input name."), h.push(k);\n let j = o.UTF8ToString(k);\n I.push(j), z.push(w === 0 ? { name: j, isTensor: false } : { name: j, isTensor: true, type: Ot(w), shape: Z });\n }\n for (let _ = 0; _ < y; _++) {\n let [k, w, Z] = co(d, _ + b);\n k === 0 && G("Can\'t get an output name."), g.push(k);\n let j = o.UTF8ToString(k);\n D.push(j), v.push(w === 0 ? { name: j, isTensor: false } : { name: j, isTensor: true, type: Ot(w), shape: Z });\n }\n return $e.set(d, [d, h, g, null, T, false]), [d, I, D, z, v];\n } catch (b) {\n throw h.forEach((y) => o._OrtFree(y)), g.forEach((y) => o._OrtFree(y)), l !== 0 && o._OrtReleaseBinding(l) !== 0 && G("Can\'t release IO binding."), d !== 0 && o._OrtReleaseSession(d) !== 0 && G("Can\'t release session."), b;\n } finally {\n o._free(a), c !== 0 && o._OrtReleaseSessionOptions(c) !== 0 && G("Can\'t release session options."), m.forEach((b) => o._free(b)), o.unmountExternalData?.();\n }\n }, yt = (n) => {\n let t = $(), a = $e.get(n);\n if (!a)\n throw new Error(`cannot release session. invalid session id: ${n}`);\n let [u, o, d, c, l] = a;\n c && (l && t._OrtClearBoundOutputs(c.handle) !== 0 && G("Can\'t clear bound outputs."), t._OrtReleaseBinding(c.handle) !== 0 && G("Can\'t release IO binding.")), t.jsepOnReleaseSession?.(n), t.webnnOnReleaseSession?.(n), t.webgpuOnReleaseSession?.(n), o.forEach((m) => t._OrtFree(m)), d.forEach((m) => t._OrtFree(m)), t._OrtReleaseSession(u) !== 0 && G("Can\'t release session."), $e.delete(n);\n }, lo = async (n, t, a, u, o, d, c = false) => {\n if (!n) {\n t.push(0);\n return;\n }\n let l = $(), m = l.PTR_SIZE, h = n[0], g = n[1], b = n[3], y = b, T, I;\n if (h === "string" && (b === "gpu-buffer" || b === "ml-tensor"))\n throw new Error("String tensor is not supported on GPU.");\n if (c && b !== "gpu-buffer")\n throw new Error(`External buffer must be provided for input/output index ${d} when enableGraphCapture is true.`);\n if (b === "gpu-buffer") {\n let v = n[2].gpuBuffer;\n I = Ge(We(h), g);\n {\n let O = l.jsepRegisterBuffer;\n if (!O)\n throw new Error(\'Tensor location "gpu-buffer" is not supported without using WebGPU.\');\n T = O(u, d, v, I);\n }\n } else if (b === "ml-tensor") {\n let v = n[2].mlTensor;\n I = Ge(We(h), g);\n let O = l.webnnRegisterMLTensor;\n if (!O)\n throw new Error(\'Tensor location "ml-tensor" is not supported without using WebNN.\');\n T = O(u, v, We(h), g);\n } else {\n let v = n[2];\n if (Array.isArray(v)) {\n I = m * v.length, T = l._malloc(I), a.push(T);\n for (let O = 0; O < v.length; O++) {\n if (typeof v[O] != "string")\n throw new TypeError(`tensor data at index ${O} is not a string`);\n l.setValue(T + O * m, ae(v[O], a), "*");\n }\n } else {\n let O = l.webnnIsGraphInput, F = l.webnnIsGraphOutput;\n if (h !== "string" && O && F) {\n let _ = l.UTF8ToString(o);\n if (O(u, _) || F(u, _)) {\n let k = We(h);\n I = Ge(k, g), y = "ml-tensor";\n let w = l.webnnCreateTemporaryTensor, Z = l.webnnUploadTensor;\n if (!w || !Z)\n throw new Error(\'Tensor location "ml-tensor" is not supported without using WebNN.\');\n let j = await w(u, k, g);\n Z(j, new Uint8Array(v.buffer, v.byteOffset, v.byteLength)), T = j;\n } else\n I = v.byteLength, T = l._malloc(I), a.push(T), l.HEAPU8.set(new Uint8Array(v.buffer, v.byteOffset, I), T);\n } else\n I = v.byteLength, T = l._malloc(I), a.push(T), l.HEAPU8.set(new Uint8Array(v.buffer, v.byteOffset, I), T);\n }\n }\n let D = l.stackSave(), z = l.stackAlloc(4 * g.length);\n try {\n g.forEach((O, F) => l.setValue(z + F * m, O, m === 4 ? "i32" : "i64"));\n let v = l._OrtCreateTensor(We(h), T, I, z, g.length, fo(y));\n v === 0 && G(`Can\'t create tensor for input/output. session=${u}, index=${d}.`), t.push(v);\n } finally {\n l.stackRestore(D);\n }\n }, gt = async (n, t, a, u, o, d) => {\n let c = $(), l = c.PTR_SIZE, m = $e.get(n);\n if (!m)\n throw new Error(`cannot run inference. invalid session id: ${n}`);\n let h = m[0], g = m[1], b = m[2], y = m[3], T = m[4], I = m[5], D = t.length, z = u.length, v = 0, O = [], F = [], _ = [], k = [], w = [], Z = c.stackSave(), j = c.stackAlloc(D * l), ne = c.stackAlloc(D * l), pe = c.stackAlloc(z * l), B = c.stackAlloc(z * l);\n try {\n [v, O] = ro(d), De("wasm prepareInputOutputTensor");\n for (let A = 0; A < D; A++)\n await lo(a[A], F, k, n, g[t[A]], t[A], T);\n for (let A = 0; A < z; A++)\n await lo(o[A], _, k, n, b[u[A]], D + u[A], T);\n Ue("wasm prepareInputOutputTensor");\n for (let A = 0; A < D; A++)\n c.setValue(j + A * l, F[A], "*"), c.setValue(ne + A * l, g[t[A]], "*");\n for (let A = 0; A < z; A++)\n c.setValue(pe + A * l, _[A], "*"), c.setValue(B + A * l, b[u[A]], "*");\n c.jsepOnRunStart?.(h), c.webnnOnRunStart?.(h);\n let W;\n W = await c._OrtRun(h, ne, j, D, B, z, pe, v), W !== 0 && G("failed to call OrtRun().");\n let re = [], me = [];\n De("wasm ProcessOutputTensor");\n for (let A = 0; A < z; A++) {\n let K = Number(c.getValue(pe + A * l, "*"));\n if (K === _[A] || w.includes(_[A])) {\n re.push(o[A]), K !== _[A] && c._OrtReleaseTensor(K) !== 0 && G("Can\'t release tensor.");\n continue;\n }\n let je = c.stackSave(), ee = c.stackAlloc(4 * l), he = false, H, q = 0;\n try {\n c._OrtGetTensorData(K, ee, ee + l, ee + 2 * l, ee + 3 * l) !== 0 && G(`Can\'t access output tensor data on index ${A}.`);\n let Se = l === 4 ? "i32" : "i64", ve = Number(c.getValue(ee, Se));\n q = c.getValue(ee + l, "*");\n let Ve = c.getValue(ee + l * 2, "*"), Re = Number(c.getValue(ee + l * 3, Se)), te = [];\n for (let L = 0; L < Re; L++)\n te.push(Number(c.getValue(Ve + L * l, Se)));\n c._OrtFree(Ve) !== 0 && G("Can\'t free memory for tensor dims.");\n let ue = te.reduce((L, V) => L * V, 1);\n H = Ot(ve);\n let se = y?.outputPreferredLocations[u[A]];\n if (H === "string") {\n if (se === "gpu-buffer" || se === "ml-tensor")\n throw new Error("String tensor is not supported on GPU.");\n let L = [];\n for (let V = 0; V < ue; V++) {\n let fe = c.getValue(q + V * l, "*"), ye = c.getValue(q + (V + 1) * l, "*"), ce = V === ue - 1 ? void 0 : ye - fe;\n L.push(c.UTF8ToString(fe, ce));\n }\n re.push([H, te, L, "cpu"]);\n } else if (se === "gpu-buffer" && ue > 0) {\n let L = c.jsepGetBuffer;\n if (!L)\n throw new Error(\'preferredLocation "gpu-buffer" is not supported without using WebGPU.\');\n let V = L(q), fe = Ge(ve, ue);\n if (fe === void 0 || !At(H))\n throw new Error(`Unsupported data type: ${H}`);\n he = true, re.push([H, te, { gpuBuffer: V, download: c.jsepCreateDownloader(V, fe, H), dispose: () => {\n c._OrtReleaseTensor(K) !== 0 && G("Can\'t release tensor.");\n } }, "gpu-buffer"]);\n } else if (se === "ml-tensor" && ue > 0) {\n let L = c.webnnEnsureTensor, V = c.webnnIsGraphInputOutputTypeSupported;\n if (!L || !V)\n throw new Error(\'preferredLocation "ml-tensor" is not supported without using WebNN.\');\n if (Ge(ve, ue) === void 0 || !It(H))\n throw new Error(`Unsupported data type: ${H}`);\n if (!V(n, H, false))\n throw new Error(`preferredLocation "ml-tensor" for ${H} output is not supported by current WebNN Context.`);\n let ye = await L(n, q, ve, te, false);\n he = true, re.push([H, te, { mlTensor: ye, download: c.webnnCreateMLTensorDownloader(q, H), dispose: () => {\n c.webnnReleaseTensorId(q), c._OrtReleaseTensor(K);\n } }, "ml-tensor"]);\n } else if (se === "ml-tensor-cpu-output" && ue > 0) {\n let L = c.webnnCreateMLTensorDownloader(q, H)(), V = re.length;\n he = true, me.push((async () => {\n let fe = [V, await L];\n return c.webnnReleaseTensorId(q), c._OrtReleaseTensor(K), fe;\n })()), re.push([H, te, [], "cpu"]);\n } else {\n let L = io(H), V = new L(ue);\n new Uint8Array(V.buffer, V.byteOffset, V.byteLength).set(c.HEAPU8.subarray(q, q + V.byteLength)), re.push([H, te, V, "cpu"]);\n }\n } finally {\n c.stackRestore(je), H === "string" && q && c._free(q), he || c._OrtReleaseTensor(K);\n }\n }\n y && !T && (c._OrtClearBoundOutputs(y.handle) !== 0 && G("Can\'t clear bound outputs."), $e.set(n, [h, g, b, y, T, false]));\n for (let [A, K] of await Promise.all(me))\n re[A][2] = K;\n return Ue("wasm ProcessOutputTensor"), re;\n } finally {\n c.webnnOnRunEnd?.(h), c.stackRestore(Z), F.forEach((W) => c._OrtReleaseTensor(W)), _.forEach((W) => c._OrtReleaseTensor(W)), k.forEach((W) => c._free(W)), v !== 0 && c._OrtReleaseRunOptions(v), O.forEach((W) => c._free(W));\n }\n }, Et = (n) => {\n let t = $(), a = $e.get(n);\n if (!a)\n throw new Error("invalid session id");\n let u = a[0], o = t._OrtEndProfiling(u);\n o === 0 && G("Can\'t get an profile file name."), t._OrtFree(o);\n }, Tt = (n) => {\n let t = [];\n for (let a of n) {\n let u = a[2];\n !Array.isArray(u) && "buffer" in u && t.push(u.buffer);\n }\n return t;\n };\n });\n var Ce;\n var ie;\n var et;\n var Lt;\n var _t;\n var Bt;\n var ln;\n var dn;\n var ze;\n var He;\n var gs;\n var po;\n var mo;\n var ho;\n var wo;\n var bo;\n var yo;\n var go;\n var pn = N(() => {\n "use strict";\n Te();\n rn();\n xe();\n pt();\n Ce = () => !!Y.wasm.proxy && typeof document < "u", et = false, Lt = false, _t = false, dn = /* @__PURE__ */ new Map(), ze = (n, t) => {\n let a = dn.get(n);\n a ? a.push(t) : dn.set(n, [t]);\n }, He = () => {\n if (et || !Lt || _t || !ie)\n throw new Error("worker not ready");\n }, gs = (n) => {\n switch (n.data.type) {\n case "init-wasm":\n et = false, n.data.err ? (_t = true, ln[1](n.data.err)) : (Lt = true, ln[0]()), Bt && (URL.revokeObjectURL(Bt), Bt = void 0);\n break;\n case "init-ep":\n case "copy-from":\n case "create":\n case "release":\n case "run":\n case "end-profiling": {\n let t = dn.get(n.data.type);\n n.data.err ? t.shift()[1](n.data.err) : t.shift()[0](n.data.out);\n break;\n }\n default:\n }\n }, po = async () => {\n if (!Lt) {\n if (et)\n throw new Error("multiple calls to \'initWasm()\' detected.");\n if (_t)\n throw new Error("previous call to \'initWasm()\' failed.");\n if (et = true, Ce())\n return new Promise((n, t) => {\n ie?.terminate(), eo().then(([a, u]) => {\n try {\n ie = u, ie.onerror = (d) => t(d), ie.onmessage = gs, ln = [n, t];\n let o = { type: "init-wasm", in: Y };\n !o.in.wasm.wasmPaths && (a || an) && (o.in.wasm.wasmPaths = { wasm: new URL("ort-wasm-simd-threaded.wasm", import_meta.url).href }), ie.postMessage(o), Bt = a;\n } catch (o) {\n t(o);\n }\n }, t);\n });\n try {\n await mt(Y.wasm), await ht(Y), Lt = true;\n } catch (n) {\n throw _t = true, n;\n } finally {\n et = false;\n }\n }\n }, mo = async (n) => {\n if (Ce())\n return He(), new Promise((t, a) => {\n ze("init-ep", [t, a]);\n let u = { type: "init-ep", in: { epName: n, env: Y } };\n ie.postMessage(u);\n });\n await wt(Y, n);\n }, ho = async (n) => Ce() ? (He(), new Promise((t, a) => {\n ze("copy-from", [t, a]);\n let u = { type: "copy-from", in: { buffer: n } };\n ie.postMessage(u, [n.buffer]);\n })) : Qe(n), wo = async (n, t) => {\n if (Ce()) {\n if (t?.preferredOutputLocation)\n throw new Error(\'session option "preferredOutputLocation" is not supported for proxy.\');\n return He(), new Promise((a, u) => {\n ze("create", [a, u]);\n let o = { type: "create", in: { model: n, options: { ...t } } }, d = [];\n n instanceof Uint8Array && d.push(n.buffer), ie.postMessage(o, d);\n });\n } else\n return bt(n, t);\n }, bo = async (n) => {\n if (Ce())\n return He(), new Promise((t, a) => {\n ze("release", [t, a]);\n let u = { type: "release", in: n };\n ie.postMessage(u);\n });\n yt(n);\n }, yo = async (n, t, a, u, o, d) => {\n if (Ce()) {\n if (a.some((c) => c[3] !== "cpu"))\n throw new Error("input tensor on GPU is not supported for proxy.");\n if (o.some((c) => c))\n throw new Error("pre-allocated output tensor is not supported for proxy.");\n return He(), new Promise((c, l) => {\n ze("run", [c, l]);\n let m = a, h = { type: "run", in: { sessionId: n, inputIndices: t, inputs: m, outputIndices: u, options: d } };\n ie.postMessage(h, Tt(m));\n });\n } else\n return gt(n, t, a, u, o, d);\n }, go = async (n) => {\n if (Ce())\n return He(), new Promise((t, a) => {\n ze("end-profiling", [t, a]);\n let u = { type: "end-profiling", in: n };\n ie.postMessage(u);\n });\n Et(n);\n };\n });\n var Eo;\n var Es;\n var Pt;\n var To = N(() => {\n "use strict";\n Te();\n pn();\n fn();\n dt();\n cn();\n Eo = (n, t) => {\n switch (n.location) {\n case "cpu":\n return [n.type, n.dims, n.data, "cpu"];\n case "gpu-buffer":\n return [n.type, n.dims, { gpuBuffer: n.gpuBuffer }, "gpu-buffer"];\n case "ml-tensor":\n return [n.type, n.dims, { mlTensor: n.mlTensor }, "ml-tensor"];\n default:\n throw new Error(`invalid data location: ${n.location} for ${t()}`);\n }\n }, Es = (n) => {\n switch (n[3]) {\n case "cpu":\n return new de(n[0], n[2], n[1]);\n case "gpu-buffer": {\n let t = n[0];\n if (!At(t))\n throw new Error(`not supported data type: ${t} for deserializing GPU tensor`);\n let { gpuBuffer: a, download: u, dispose: o } = n[2];\n return de.fromGpuBuffer(a, { dataType: t, dims: n[1], download: u, dispose: o });\n }\n case "ml-tensor": {\n let t = n[0];\n if (!It(t))\n throw new Error(`not supported data type: ${t} for deserializing MLTensor tensor`);\n let { mlTensor: a, download: u, dispose: o } = n[2];\n return de.fromMLTensor(a, { dataType: t, dims: n[1], download: u, dispose: o });\n }\n default:\n throw new Error(`invalid data location: ${n[3]}`);\n }\n }, Pt = class {\n async fetchModelAndCopyToWasmMemory(t) {\n return ho(await Ke(t));\n }\n async loadModel(t, a) {\n _e();\n let u;\n typeof t == "string" ? u = await this.fetchModelAndCopyToWasmMemory(t) : u = t, [this.sessionId, this.inputNames, this.outputNames, this.inputMetadata, this.outputMetadata] = await wo(u, a), Pe();\n }\n async dispose() {\n return bo(this.sessionId);\n }\n async run(t, a, u) {\n _e();\n let o = [], d = [];\n Object.entries(t).forEach((y) => {\n let T = y[0], I = y[1], D = this.inputNames.indexOf(T);\n if (D === -1)\n throw new Error(`invalid input \'${T}\'`);\n o.push(I), d.push(D);\n });\n let c = [], l = [];\n Object.entries(a).forEach((y) => {\n let T = y[0], I = y[1], D = this.outputNames.indexOf(T);\n if (D === -1)\n throw new Error(`invalid output \'${T}\'`);\n c.push(I), l.push(D);\n });\n let m = o.map((y, T) => Eo(y, () => `input "${this.inputNames[d[T]]}"`)), h = c.map((y, T) => y ? Eo(y, () => `output "${this.outputNames[l[T]]}"`) : null), g = await yo(this.sessionId, d, m, l, h, u), b = {};\n for (let y = 0; y < g.length; y++)\n b[this.outputNames[l[y]]] = c[y] ?? Es(g[y]);\n return Pe(), b;\n }\n startProfiling() {\n }\n endProfiling() {\n go(this.sessionId);\n }\n };\n });\n var vo = {};\n ut(vo, { OnnxruntimeWebAssemblyBackend: () => Dt, initializeFlags: () => So, wasmBackend: () => Ts });\n var So;\n var Dt;\n var Ts;\n var Oo = N(() => {\n "use strict";\n Te();\n pn();\n To();\n So = () => {\n (typeof Y.wasm.initTimeout != "number" || Y.wasm.initTimeout < 0) && (Y.wasm.initTimeout = 0);\n let n = Y.wasm.simd;\n if (typeof n != "boolean" && n !== void 0 && n !== "fixed" && n !== "relaxed" && (console.warn(`Property "env.wasm.simd" is set to unknown value "${n}". Reset it to \\`false\\` and ignore SIMD feature checking.`), Y.wasm.simd = false), typeof Y.wasm.proxy != "boolean" && (Y.wasm.proxy = false), typeof Y.wasm.trace != "boolean" && (Y.wasm.trace = false), typeof Y.wasm.numThreads != "number" || !Number.isInteger(Y.wasm.numThreads) || Y.wasm.numThreads <= 0)\n if (typeof self < "u" && !self.crossOriginIsolated)\n Y.wasm.numThreads = 1;\n else {\n let t = typeof navigator > "u" ? qt("node:os").cpus().length : navigator.hardwareConcurrency;\n Y.wasm.numThreads = Math.min(4, Math.ceil((t || 1) / 2));\n }\n }, Dt = class {\n async init(t) {\n So(), await po(), await mo(t);\n }\n async createInferenceSessionHandler(t, a) {\n let u = new Pt();\n return await u.loadModel(t, a), u;\n }\n }, Ts = new Dt();\n });\n Te();\n Te();\n Te();\n var Gr = "1.26.0";\n {\n let n = (Oo(), Xt(vo)).wasmBackend;\n qe("cpu", n, 10), qe("wasm", n, 10);\n }\n Object.defineProperty(Y.versions, "web", { value: Gr, enumerable: true });\n\n // src/workers/VadOnnxWorker.ts\n var CHUNK_SIZE = 320;\n var MODEL_EXTERNAL_DATA_PATH = "bcresnet_no_center_mult2_20ms.onnx.data";\n var STATE_INPUT_DIMS_PBTXT = {\n audio_input_state: [800],\n input_states_0: [1, 4, 43],\n input_states_1: [16, 2, 1],\n input_states_2: [16, 2, 1],\n input_states_3: [24, 4, 1],\n input_states_4: [24, 4, 1],\n input_states_5: [32, 8, 1],\n input_states_6: [32, 8, 1],\n input_states_7: [32, 8, 1],\n input_states_8: [32, 8, 1],\n input_states_9: [40, 16, 1],\n input_states_10: [40, 16, 1],\n input_states_11: [40, 16, 1],\n input_states_12: [40, 16, 1],\n input_states_13: [40, 4, 5],\n input_states_14: [64, 30, 1]\n };\n var BATCH_SIZE = 1;\n var STATE_INPUT_DIMS = Object.fromEntries(\n Object.entries(STATE_INPUT_DIMS_PBTXT).map(([name, dims]) => [\n name,\n [BATCH_SIZE, ...dims]\n ])\n );\n var STATE_OUTPUT_TO_INPUT = {\n audio_output_state: "audio_input_state",\n output_states_0: "input_states_0",\n output_states_1: "input_states_1",\n output_states_2: "input_states_2",\n output_states_3: "input_states_3",\n output_states_4: "input_states_4",\n output_states_5: "input_states_5",\n output_states_6: "input_states_6",\n output_states_7: "input_states_7",\n output_states_8: "input_states_8",\n output_states_9: "input_states_9",\n output_states_10: "input_states_10",\n output_states_11: "input_states_11",\n output_states_12: "input_states_12",\n output_states_13: "input_states_13",\n output_states_14: "input_states_14"\n };\n var VadOnnxWorker_default = (modelUrl, modelDataUrl, ortWasmUrl, ortMjsUrl) => {\n let session = null;\n let state = null;\n let buffer = new Float32Array(0);\n let draining = false;\n let feeds = {};\n let stateKeys = [];\n function postError(error) {\n self.postMessage({\n type: "error" /* ERROR */,\n error: error instanceof Error ? error.message : String(error)\n });\n }\n async function init() {\n Y.wasm.wasmPaths = { wasm: ortWasmUrl, mjs: ortMjsUrl };\n Y.wasm.numThreads = 1;\n const [modelRes, dataRes] = await Promise.all([\n fetch(modelUrl),\n fetch(modelDataUrl)\n ]);\n if (!modelRes.ok) {\n throw new Error(`Model fetch failed: ${modelRes.status} ${modelRes.statusText}`);\n }\n if (!dataRes.ok) {\n throw new Error(`Model data fetch failed: ${dataRes.status} ${dataRes.statusText}`);\n }\n const [modelBytes, dataBytes] = await Promise.all([\n modelRes.arrayBuffer(),\n dataRes.arrayBuffer()\n ]);\n session = await ts.create(new Uint8Array(modelBytes), {\n executionProviders: ["wasm"],\n externalData: [\n {\n path: MODEL_EXTERNAL_DATA_PATH,\n data: new Uint8Array(dataBytes)\n }\n ]\n });\n state = createZeroStateTensors(session, de);\n stateKeys = Object.keys(state);\n feeds = { audio: void 0 };\n for (const name of stateKeys) {\n feeds[name] = state[name];\n }\n }\n function appendBuffer(chunk) {\n const next = new Float32Array(buffer.length + chunk.length);\n next.set(buffer, 0);\n next.set(chunk, buffer.length);\n buffer = next;\n }\n async function drainBuffer() {\n if (draining) {\n return;\n }\n draining = true;\n try {\n while (buffer.length >= CHUNK_SIZE) {\n if (!session || !state) {\n break;\n }\n const chunk = buffer.subarray(0, CHUNK_SIZE);\n buffer = buffer.subarray(CHUNK_SIZE);\n feeds.audio = new de("float32", chunk, [1, CHUNK_SIZE]);\n for (const name of stateKeys) {\n feeds[name] = state[name];\n }\n const results = await session.run(feeds);\n updateStateFromOutputs(state, results);\n const probs = results.voice_probs?.data;\n if (!probs || probs.length < 2) {\n continue;\n }\n const speechProb = Math.max(probs[0], probs[1]);\n const silenceProb = 1 - speechProb;\n self.postMessage({\n type: "data" /* DATA */,\n data: { speechProb, silenceProb }\n });\n }\n } catch (err) {\n postError(err);\n } finally {\n draining = false;\n }\n }\n function onAudio(data) {\n appendBuffer(new Float32Array(data));\n void drainBuffer();\n }\n init().then(() => {\n self.onmessage = (event) => {\n onAudio(event.data.data);\n };\n self.postMessage({ type: "init" /* INIT */ });\n }).catch(postError);\n };\n function updateStateFromOutputs(state, outputs) {\n for (const [outName, inName] of Object.entries(STATE_OUTPUT_TO_INPUT)) {\n const next = outputs[outName];\n if (next) {\n state[inName] = next;\n }\n }\n }\n function createZeroStateTensors(session, TensorCtor) {\n const state = {};\n for (const name of session.inputNames) {\n if (name === "audio") {\n continue;\n }\n const dims = STATE_INPUT_DIMS[name];\n if (!dims) {\n continue;\n }\n const size = dims.reduce((a, b) => a * b, 1);\n state[name] = new TensorCtor("float32", new Float32Array(size), dims);\n }\n return state;\n }\n return __toCommonJS(VadOnnxWorker_exports);\n})();\n/*! Bundled license information:\n\nonnxruntime-web/dist/ort.wasm.bundle.min.mjs:\n (*!\n * ONNX Runtime Web v1.26.0\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n *)\n*/\n',
4943
+ workerArgs: isTflite ? [import_audio_processing2.default, import_audio_processing2.default.getUrl] : [
4944
+ JSON.stringify(this._modelUrl),
4945
+ JSON.stringify(this._modelDataUrl),
4946
+ JSON.stringify(this._ortWasmUrl),
4947
+ JSON.stringify(this._ortMjsUrl)
4885
4948
  ]
4886
4949
  });
4887
4950
  }
@@ -4907,21 +4970,23 @@ var DEFAULT_THRESHOLD = 0.66;
4907
4970
  var DEFAULT_HANGOVER_MS = 300;
4908
4971
  var WATCHDOG_MS = 2e3;
4909
4972
  var VadController = class {
4973
+ _effect = null;
4974
+ _sendTrack = null;
4975
+ _vadInputTrack = null;
4976
+ _threshold = DEFAULT_THRESHOLD;
4977
+ _hangoverMs = DEFAULT_HANGOVER_MS;
4978
+ _effectOptions = {};
4979
+ _isSpeaking = true;
4980
+ _lastSpeechAt = 0;
4981
+ _hangoverTimer = null;
4982
+ _watchdogTimer = null;
4983
+ _destroyed = false;
4984
+ _loggerFn = () => {
4985
+ };
4986
+ _logger = new Logger(this._loggerFn, "VAD");
4910
4987
  constructor(sendTrack = null, options) {
4911
- this._effect = null;
4912
- this._sendTrack = null;
4913
- this._vadInputTrack = null;
4914
- this._threshold = DEFAULT_THRESHOLD;
4915
- this._hangoverMs = DEFAULT_HANGOVER_MS;
4916
- this._isSpeaking = true;
4917
- this._lastSpeechAt = 0;
4918
- this._hangoverTimer = null;
4919
- this._watchdogTimer = null;
4920
- this._destroyed = false;
4921
- this._loggerFn = () => {
4922
- };
4923
- this._logger = new Logger(this._loggerFn, "VAD");
4924
4988
  if (options) {
4989
+ this._applyEffectOptions(options);
4925
4990
  this.setOptions(options);
4926
4991
  }
4927
4992
  this._sendTrack = sendTrack;
@@ -4934,6 +4999,23 @@ var VadController = class {
4934
4999
  this._hangoverMs = options.hangoverMs;
4935
5000
  }
4936
5001
  }
5002
+ _applyEffectOptions(options) {
5003
+ if (options.modelType !== void 0) {
5004
+ this._effectOptions.modelType = options.modelType;
5005
+ }
5006
+ if (options.modelUrl !== void 0) {
5007
+ this._effectOptions.modelUrl = options.modelUrl;
5008
+ }
5009
+ if (options.modelDataUrl !== void 0) {
5010
+ this._effectOptions.modelDataUrl = options.modelDataUrl;
5011
+ }
5012
+ if (options.ortWasmUrl !== void 0) {
5013
+ this._effectOptions.ortWasmUrl = options.ortWasmUrl;
5014
+ }
5015
+ if (options.ortMjsUrl !== void 0) {
5016
+ this._effectOptions.ortMjsUrl = options.ortMjsUrl;
5017
+ }
5018
+ }
4937
5019
  setLogger(loggerFunction, loggerName = "VAD") {
4938
5020
  this._loggerFn = loggerFunction;
4939
5021
  this._logger = new Logger(loggerFunction, loggerName);
@@ -4944,8 +5026,8 @@ var VadController = class {
4944
5026
  this._logger.warn("EffectVadAi is not supported in this browser, VAD disabled");
4945
5027
  return;
4946
5028
  }
4947
- this._logger.log("init: loading model ...");
4948
- const effect = new EffectVadAi();
5029
+ this._logger.log("init: loading model ...", this._effectOptions.modelType ?? "onnx");
5030
+ const effect = new EffectVadAi(this._effectOptions);
4949
5031
  effect.setLogger(this._loggerFn, "VAD");
4950
5032
  effect.onData = (probs) => this._onProbs(probs);
4951
5033
  this._effect = effect;
@@ -5066,16 +5148,16 @@ var VadController = class {
5066
5148
  };
5067
5149
 
5068
5150
  // src/effects/EffectVoiceChange.ts
5069
- var import_audio_processing2 = __toESM(require_wasm_bindings());
5151
+ var import_audio_processing3 = __toESM(require_wasm_bindings());
5070
5152
 
5071
5153
  // src/worklets/VoiceChangeWorklet.ts
5072
5154
  function voiceChangeWorkletFunction() {
5073
5155
  class VoiceChangeWorklet extends AudioWorkletProcessor {
5156
+ samplesQueue = new Float32Array();
5157
+ lastFrameTime = 0;
5074
5158
  // в секундах
5075
5159
  constructor() {
5076
5160
  super();
5077
- this.samplesQueue = new Float32Array();
5078
- this.lastFrameTime = 0;
5079
5161
  this.port.postMessage({ type: "init" /* INIT */ });
5080
5162
  this.port.onmessage = ({ data: { data } }) => {
5081
5163
  const samplesIn = new Float32Array(data);
@@ -5118,6 +5200,18 @@ var PerformanceMonitorMode = /* @__PURE__ */ ((PerformanceMonitorMode2) => {
5118
5200
  return PerformanceMonitorMode2;
5119
5201
  })(PerformanceMonitorMode || {});
5120
5202
  var PerformanceMonitor = class {
5203
+ threshold;
5204
+ intervalMs;
5205
+ mode;
5206
+ logPerformanceChecks;
5207
+ maxCountBadPerformanceBeforeCb;
5208
+ onBadPerformanceCb;
5209
+ onCheckPerformanceCb;
5210
+ logger = null;
5211
+ interval = 0;
5212
+ countBadPerformanceBeforeCb = 0;
5213
+ beginMarkTs = 0;
5214
+ performanceMeasures = [];
5121
5215
  /**
5122
5216
  * @typedef {Object} PerformanceMonitorOptions
5123
5217
  * @param {PerformanceMonitorOptions} params
@@ -5150,11 +5244,6 @@ var PerformanceMonitor = class {
5150
5244
  onBadPerformanceCb,
5151
5245
  onCheckPerformanceCb
5152
5246
  }) {
5153
- this.logger = null;
5154
- this.interval = 0;
5155
- this.countBadPerformanceBeforeCb = 0;
5156
- this.beginMarkTs = 0;
5157
- this.performanceMeasures = [];
5158
5247
  this.threshold = badPerformanceThreshold;
5159
5248
  this.intervalMs = measureIntervalMs;
5160
5249
  this.mode = mode;
@@ -5243,6 +5332,7 @@ var VoiceChangeEffectType = /* @__PURE__ */ ((VoiceChangeEffectType2) => {
5243
5332
  return VoiceChangeEffectType2;
5244
5333
  })(VoiceChangeEffectType || {});
5245
5334
  var EffectVoiceChange = class extends WorkerAudioProcessor {
5335
+ mode;
5246
5336
  /**
5247
5337
  * @typedef {string} EffectVoiceChangeMode
5248
5338
  * @typedef {Object} PerformanceMonitorOptions
@@ -5265,7 +5355,7 @@ var EffectVoiceChange = class extends WorkerAudioProcessor {
5265
5355
  workletFunction: voiceChangeWorkletFunction,
5266
5356
  workletName: "voiceChangeWorklet",
5267
5357
  workerFunctionString: '"use strict";\nvar exports = (() => {\n var __defProp = Object.defineProperty;\n var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n var __getOwnPropNames = Object.getOwnPropertyNames;\n var __hasOwnProp = Object.prototype.hasOwnProperty;\n var __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n };\n var __copyProps = (to, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n };\n var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);\n\n // src/workers/VoiceChangeWorker.ts\n var VoiceChangeWorker_exports = {};\n __export(VoiceChangeWorker_exports, {\n VoiceChangeWorkerRequestType: () => VoiceChangeWorkerRequestType,\n default: () => VoiceChangeWorker_default\n });\n var VoiceChangeWorkerRequestType = /* @__PURE__ */ ((VoiceChangeWorkerRequestType2) => {\n VoiceChangeWorkerRequestType2["SET_EFFECTS"] = "set_effects";\n VoiceChangeWorkerRequestType2["DATA"] = "data";\n return VoiceChangeWorkerRequestType2;\n })(VoiceChangeWorkerRequestType || {});\n var VoiceChangeWorker_default = (createWav2lipModule, urlResolver) => {\n let Wav2lip = null;\n let effectsData = [];\n function init() {\n return createWav2lipModule({ locateFile: urlResolver }).then((module) => {\n Wav2lip = module;\n });\n }\n function setEffects(effectInputs, isPreset = false) {\n if (!Wav2lip) {\n return;\n }\n try {\n for (const effectInput of effectInputs) {\n const configValue = `${effectInput}${isPreset ? ".cfg" : ""}`;\n const configInput = new Wav2lip.ConfigInput(configValue, isPreset, "/");\n const config = new Wav2lip.Config(configInput);\n const effect = Wav2lip.EffectFactory.createAlgorithm(config);\n effectsData.push({\n configInput,\n config,\n effect\n });\n }\n } catch (error) {\n self.postMessage({\n type: "debug" /* DEBUG */,\n message: "before error " + JSON.stringify(effectsData)\n });\n postError("setEffects error:", error);\n }\n }\n function clearEffects() {\n try {\n for (const effectData of effectsData) {\n effectData.configInput.delete();\n effectData.config.delete();\n effectData.effect.delete();\n }\n } catch (error) {\n postError("clearEffects error:", error);\n }\n effectsData = [];\n }\n function postError(source, error) {\n self.postMessage({\n type: "error" /* ERROR */,\n error: typeof error === "number" && Wav2lip ? Wav2lip.getExMessage(error) : source + error\n });\n }\n function requestSamples(data) {\n if (!Wav2lip || !effectsData.length) {\n return;\n }\n try {\n let inputVec = new Wav2lip.vector$float$();\n const dataArr = new Float32Array(data);\n for (const sample of dataArr) {\n inputVec.push_back(sample);\n }\n for (const { effect } of effectsData) {\n inputVec = Wav2lip.applyEffect(effect, inputVec);\n }\n const samplesCount = inputVec?.size?.();\n if (!samplesCount) {\n return;\n }\n const resultSamples = new Float32Array(samplesCount);\n for (let i = 0; i < samplesCount; i++) {\n resultSamples[i] = inputVec.get(i);\n }\n self.postMessage({\n type: "data" /* DATA */,\n data: resultSamples.buffer\n }, [resultSamples.buffer]);\n } catch (error) {\n postError("requestSamples error:", error);\n }\n }\n init().then(() => {\n self.onmessage = ({ data: request }) => {\n switch (request.type) {\n case "set_effects" /* SET_EFFECTS */: {\n clearEffects();\n setEffects(request.effects, request.isPreset);\n break;\n }\n case "data" /* DATA */: {\n requestSamples(request.data);\n break;\n }\n }\n };\n self.postMessage({ type: "init" /* INIT */ });\n }).catch((error) => postError("init error:", error));\n };\n return __toCommonJS(VoiceChangeWorker_exports);\n})();\n',
5268
- workerArgs: [import_audio_processing2.default, import_audio_processing2.default.getUrl]
5358
+ workerArgs: [import_audio_processing3.default, import_audio_processing3.default.getUrl]
5269
5359
  });
5270
5360
  }
5271
5361
  setEffects(effects, isPreset) {