single-file-core 1.5.130 → 1.6.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.
package/core/helper.js CHANGED
@@ -82,6 +82,15 @@ const DEFAULT_REPLACEMENT_CHARACTER = "_";
82
82
  const DEFAULT_REPLACEMENT_CHARACTERS = ["~", "+", "?", "%", "*", ":", "|", """, "<", ">", "\"];
83
83
  const CHARACTER_CLASS_SPECIAL_CHARACTERS = ["[", "]", "^", "-", "\\"];
84
84
  const NESTING_TRACK_ID_ATTRIBUTE_NAME = "data-sf-nesting-track-id";
85
+ const DEPRECATED_OPTION_NAMES = {
86
+ loadDeferredImages: "loadDeferredContent",
87
+ loadDeferredImagesMaxIdleTime: "loadDeferredContentMaxIdleTime",
88
+ loadDeferredImagesBlockCookies: "loadDeferredContentBlockCookies",
89
+ loadDeferredImagesBlockStorage: "loadDeferredContentBlockStorage",
90
+ loadDeferredImagesKeepZoomLevel: "loadDeferredContentKeepZoomLevel",
91
+ loadDeferredImagesDispatchScrollEvent: "loadDeferredContentDispatchScrollEvent",
92
+ loadDeferredImagesBeforeFrames: "loadDeferredContentBeforeFrames"
93
+ };
85
94
  const addEventListener = (type, listener, options) => globalThis.addEventListener(type, listener, options);
86
95
  const removeEventListener = (type, listener, options) => globalThis.removeEventListener(type, listener, options);
87
96
  // eslint-disable-next-line no-unused-vars
@@ -117,6 +126,7 @@ export {
117
126
  parseDocContent,
118
127
  markInvalidNesting,
119
128
  fixInvalidNesting,
129
+ normalizeOptions,
120
130
  ON_BEFORE_CAPTURE_EVENT_NAME,
121
131
  ON_AFTER_CAPTURE_EVENT_NAME,
122
132
  WIN_ID_ATTRIBUTE_NAME,
@@ -153,6 +163,22 @@ export {
153
163
  // lossy format: the same frame costs an order of magnitude less than as a PNG.
154
164
  // toDataURL falls back to PNG without reporting it when it does not support the
155
165
  // format, so the type it returned is tested instead of assumed
166
+ function normalizeOptions(options) {
167
+ let normalizedOptions = options;
168
+ if (options) {
169
+ Object.keys(DEPRECATED_OPTION_NAMES).forEach(deprecatedName => {
170
+ const optionName = DEPRECATED_OPTION_NAMES[deprecatedName];
171
+ if (options[deprecatedName] !== undefined && options[optionName] === undefined) {
172
+ if (normalizedOptions == options) {
173
+ normalizedOptions = Object.assign({}, options);
174
+ }
175
+ normalizedOptions[optionName] = options[deprecatedName];
176
+ }
177
+ });
178
+ }
179
+ return normalizedOptions;
180
+ }
181
+
156
182
  function getPosterDataURI(canvasElement) {
157
183
  for (const contentType of POSTER_CONTENT_TYPES) {
158
184
  const dataURI = canvasElement.toDataURL(contentType, POSTER_QUALITY);
@@ -535,7 +561,7 @@ function getResourcesInfo(win, doc, element, options, data, elementHidden, compu
535
561
  const imageData = {
536
562
  currentSrc: elementHidden ?
537
563
  EMPTY_RESOURCE :
538
- (options.loadDeferredImages && element.getAttribute(LAZY_SRC_ATTRIBUTE_NAME)) || element.currentSrc
564
+ (options.loadDeferredContent && element.getAttribute(LAZY_SRC_ATTRIBUTE_NAME)) || element.currentSrc
539
565
  };
540
566
  data.images.push(imageData);
541
567
  element.setAttribute(IMAGE_ATTRIBUTE_NAME, data.images.length - 1);
package/core/index.js CHANGED
@@ -103,7 +103,7 @@ const FINALIZE_STAGE = 4;
103
103
  const STAGES = [{
104
104
  sequential: [
105
105
  { action: "preProcessPage" },
106
- { option: "loadDeferredImagesKeepZoomLevel", action: "resetZoomLevel" },
106
+ { option: "loadDeferredContentKeepZoomLevel", action: "resetZoomLevel" },
107
107
  { action: "replaceStyleContents" },
108
108
  { action: "replaceInvalidElements" },
109
109
  { action: "resetCharsetMeta" },
@@ -641,7 +641,7 @@ class Processor {
641
641
  imgElement.dataset.singleFileOriginURL = imgElement.getAttribute("src");
642
642
  imgElement.setAttribute("src", imageData.currentSrc);
643
643
  }
644
- if (this.options.loadDeferredImages) {
644
+ if (this.options.loadDeferredContent) {
645
645
  if ((!imgElement.getAttribute("src") || imgElement.getAttribute("src") == util.EMPTY_RESOURCE) && imgElement.getAttribute("data-src")) {
646
646
  imageData.src = imgElement.dataset.src;
647
647
  imgElement.setAttribute("src", imgElement.dataset.src);
@@ -652,7 +652,7 @@ class Processor {
652
652
  }
653
653
  }
654
654
  });
655
- if (this.options.loadDeferredImages) {
655
+ if (this.options.loadDeferredContent) {
656
656
  this.doc.querySelectorAll("img[data-srcset]").forEach(imgElement => {
657
657
  if (!imgElement.getAttribute("srcset") && imgElement.getAttribute("data-srcset")) {
658
658
  imgElement.setAttribute("srcset", imgElement.dataset.srcset);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "single-file-core",
3
- "version": "1.5.130",
3
+ "version": "1.6.0",
4
4
  "description": "SingleFile Core",
5
5
  "author": "Gildas Lormeau",
6
6
  "license": "AGPL-3.0-or-later",
@@ -114,7 +114,7 @@ async function onMessage(event) {
114
114
  }
115
115
  if (!TOP_WINDOW) {
116
116
  globalThis.stop();
117
- if (message.options.loadDeferredImages) {
117
+ if (message.options.loadDeferredContent) {
118
118
  lazy.process(message.options);
119
119
  }
120
120
  await initRequestAsync(message);
@@ -23,12 +23,12 @@
23
23
 
24
24
  (() => {
25
25
 
26
- const LOAD_DEFERRED_IMAGES_START_EVENT = "single-file-load-deferred-images-start";
27
- const LOAD_DEFERRED_IMAGES_END_EVENT = "single-file-load-deferred-images-end";
28
- const LOAD_DEFERRED_IMAGES_KEEP_ZOOM_LEVEL_START_EVENT = "single-file-load-deferred-images-keep-zoom-level-start";
29
- const LOAD_DEFERRED_IMAGES_KEEP_ZOOM_LEVEL_END_EVENT = "single-file-load-deferred-images-keep-zoom-level-end";
30
- const LOAD_DEFERRED_IMAGES_RESET_ZOOM_LEVEL_EVENT = "single-file-load-deferred-images-keep-zoom-level-reset";
31
- const LOAD_DEFERRED_IMAGES_RESET_EVENT = "single-file-load-deferred-images-reset";
26
+ const LOAD_DEFERRED_CONTENT_START_EVENT = "single-file-load-deferred-content-start";
27
+ const LOAD_DEFERRED_CONTENT_END_EVENT = "single-file-load-deferred-content-end";
28
+ const LOAD_DEFERRED_CONTENT_KEEP_ZOOM_LEVEL_START_EVENT = "single-file-load-deferred-content-keep-zoom-level-start";
29
+ const LOAD_DEFERRED_CONTENT_KEEP_ZOOM_LEVEL_END_EVENT = "single-file-load-deferred-content-keep-zoom-level-end";
30
+ const LOAD_DEFERRED_CONTENT_RESET_ZOOM_LEVEL_EVENT = "single-file-load-deferred-content-keep-zoom-level-reset";
31
+ const LOAD_DEFERRED_CONTENT_RESET_EVENT = "single-file-load-deferred-content-reset";
32
32
  const BLOCK_COOKIES_START_EVENT = "single-file-block-cookies-start";
33
33
  const BLOCK_COOKIES_END_EVENT = "single-file-block-cookies-end";
34
34
  const BLOCK_STORAGE_START_EVENT = "single-file-block-storage-start";
@@ -89,12 +89,12 @@
89
89
  new MutationObserver(init).observe(document, { childList: true });
90
90
 
91
91
  function init() {
92
- document.addEventListener(LOAD_DEFERRED_IMAGES_START_EVENT, onLoadDeferredImagesStart);
93
- document.addEventListener(LOAD_DEFERRED_IMAGES_KEEP_ZOOM_LEVEL_START_EVENT, onLoadDeferredImagesKeepZoomLevelStart);
94
- document.addEventListener(LOAD_DEFERRED_IMAGES_END_EVENT, onLoadDeferredImagesEnd);
95
- document.addEventListener(LOAD_DEFERRED_IMAGES_KEEP_ZOOM_LEVEL_END_EVENT, onLoadDeferredImagesKeepZoomLevelEnd);
96
- document.addEventListener(LOAD_DEFERRED_IMAGES_RESET_EVENT, resetScreenSize);
97
- document.addEventListener(LOAD_DEFERRED_IMAGES_RESET_ZOOM_LEVEL_EVENT, onLoadDeferredImagesResetZoomLevel);
92
+ document.addEventListener(LOAD_DEFERRED_CONTENT_START_EVENT, onLoadDeferredContentStart);
93
+ document.addEventListener(LOAD_DEFERRED_CONTENT_KEEP_ZOOM_LEVEL_START_EVENT, onLoadDeferredContentKeepZoomLevelStart);
94
+ document.addEventListener(LOAD_DEFERRED_CONTENT_END_EVENT, onLoadDeferredContentEnd);
95
+ document.addEventListener(LOAD_DEFERRED_CONTENT_KEEP_ZOOM_LEVEL_END_EVENT, onLoadDeferredContentKeepZoomLevelEnd);
96
+ document.addEventListener(LOAD_DEFERRED_CONTENT_RESET_EVENT, resetScreenSize);
97
+ document.addEventListener(LOAD_DEFERRED_CONTENT_RESET_ZOOM_LEVEL_EVENT, onLoadDeferredContentResetZoomLevel);
98
98
  document.addEventListener(DISPATCH_SCROLL_START_EVENT, onDispatchScrollStart);
99
99
  document.addEventListener(DISPATCH_SCROLL_END_EVENT, onDispatchScrollEnd);
100
100
  document.addEventListener(BLOCK_COOKIES_START_EVENT, onBlockCookiesStart);
@@ -107,23 +107,33 @@
107
107
  document.addEventListener(BOOTSTRAP_EVENT, onBootstrap);
108
108
  }
109
109
 
110
- function onLoadDeferredImagesStart() {
111
- loadDeferredImagesStart();
110
+ function onLoadDeferredContentStart(event) {
111
+ loadDeferredContentStart(false, getMinZoomFactor(event));
112
112
  }
113
113
 
114
- function onLoadDeferredImagesKeepZoomLevelStart() {
115
- loadDeferredImagesStart(true);
114
+ function onLoadDeferredContentKeepZoomLevelStart(event) {
115
+ loadDeferredContentStart(true, getMinZoomFactor(event));
116
116
  }
117
117
 
118
- function onLoadDeferredImagesEnd() {
119
- loadDeferredImagesEnd();
118
+ function getMinZoomFactor(event) {
119
+ try {
120
+ const { minZoomFactor } = JSON.parse(event.detail);
121
+ return minZoomFactor > 0 && minZoomFactor <= 1 ? minZoomFactor : 0;
122
+ // eslint-disable-next-line no-unused-vars
123
+ } catch (error) {
124
+ return 0;
125
+ }
126
+ }
127
+
128
+ function onLoadDeferredContentEnd() {
129
+ loadDeferredContentEnd();
120
130
  }
121
131
 
122
- function onLoadDeferredImagesKeepZoomLevelEnd() {
123
- loadDeferredImagesEnd(true);
132
+ function onLoadDeferredContentKeepZoomLevelEnd() {
133
+ loadDeferredContentEnd(true);
124
134
  }
125
135
 
126
- function onLoadDeferredImagesResetZoomLevel() {
136
+ function onLoadDeferredContentResetZoomLevel() {
127
137
  const transform = document.documentElement.style.getPropertyValue("-sf-transform");
128
138
  const transformPriority = document.documentElement.style.getPropertyPriority("-sf-transform");
129
139
  const transformOrigin = document.documentElement.style.getPropertyValue("-sf-transform-origin");
@@ -211,34 +221,34 @@
211
221
  }
212
222
  }
213
223
 
214
- function loadDeferredImagesStart(keepZoomLevel) {
224
+ function loadDeferredContentStart(keepZoomLevel, minZoomFactor) {
215
225
  const scrollingElement = document.scrollingElement || document.documentElement;
216
226
  const clientHeight = scrollingElement.clientHeight;
217
227
  const clientWidth = scrollingElement.clientWidth;
218
- const scrollHeight = Math.max(scrollingElement.scrollHeight - clientHeight, clientHeight);
219
- const scrollWidth = Math.max(scrollingElement.scrollWidth - clientWidth, clientWidth);
228
+ const maxScrollY = Math.max(scrollingElement.scrollHeight - clientHeight, clientHeight);
229
+ const maxScrollX = Math.max(scrollingElement.scrollWidth - clientWidth, clientWidth);
220
230
  document.querySelectorAll("[loading=lazy]").forEach(element => {
221
231
  element.loading = "eager";
222
232
  element.setAttribute(LAZY_LOAD_ATTRIBUTE, "");
223
233
  });
224
- scrollingElement.__defineGetter__("clientHeight", () => scrollHeight);
225
- scrollingElement.__defineGetter__("clientWidth", () => scrollWidth);
226
- screen.__defineGetter__("height", () => scrollHeight);
227
- screen.__defineGetter__("width", () => scrollWidth);
234
+ scrollingElement.__defineGetter__("clientHeight", () => maxScrollY);
235
+ scrollingElement.__defineGetter__("clientWidth", () => maxScrollX);
236
+ screen.__defineGetter__("height", () => maxScrollY);
237
+ screen.__defineGetter__("width", () => maxScrollX);
228
238
  globalThis._singleFile_innerHeight = globalThis.innerHeight;
229
239
  globalThis._singleFile_innerWidth = globalThis.innerWidth;
230
- globalThis.__defineGetter__("innerHeight", () => scrollHeight);
231
- globalThis.__defineGetter__("innerWidth", () => scrollWidth);
240
+ globalThis.__defineGetter__("innerHeight", () => maxScrollY);
241
+ globalThis.__defineGetter__("innerWidth", () => maxScrollX);
232
242
  if (!keepZoomLevel) {
233
243
  if (!globalThis._singleFile_getBoundingClientRect) {
234
244
  globalThis._singleFile_getBoundingClientRect = Element.prototype.getBoundingClientRect;
235
245
  Element.prototype.getBoundingClientRect = function () {
236
246
  const boundingRect = globalThis._singleFile_getBoundingClientRect.call(this);
237
247
  if (this == scrollingElement) {
238
- boundingRect.__defineGetter__("height", () => scrollHeight);
239
- boundingRect.__defineGetter__("bottom", () => scrollHeight + boundingRect.top);
240
- boundingRect.__defineGetter__("width", () => scrollWidth);
241
- boundingRect.__defineGetter__("right", () => scrollWidth + boundingRect.left);
248
+ boundingRect.__defineGetter__("height", () => maxScrollY);
249
+ boundingRect.__defineGetter__("bottom", () => maxScrollY + boundingRect.top);
250
+ boundingRect.__defineGetter__("width", () => maxScrollX);
251
+ boundingRect.__defineGetter__("right", () => maxScrollX + boundingRect.left);
242
252
  }
243
253
  return boundingRect;
244
254
  };
@@ -283,9 +293,9 @@
283
293
  setFunctionName(ImageWrapper, "Image");
284
294
  globalThis.__defineGetter__("Image", () => ImageWrapper);
285
295
  }
286
- const verticalZoomFactor = clientHeight / scrollHeight;
287
- const horizontalZoomFactor = clientWidth / scrollWidth;
288
- const zoomFactor = Math.min(verticalZoomFactor, horizontalZoomFactor);
296
+ const verticalZoomFactor = clientHeight / maxScrollY;
297
+ const horizontalZoomFactor = clientWidth / maxScrollX;
298
+ const zoomFactor = Math.max(Math.min(verticalZoomFactor, horizontalZoomFactor), minZoomFactor || 0);
289
299
  const scrollPosition = { x: globalThis.scrollX, y: globalThis.scrollY };
290
300
  if (zoomFactor < 1) {
291
301
  const transform = document.documentElement.style.getPropertyValue("transform");
@@ -336,7 +346,7 @@
336
346
  }
337
347
  }
338
348
 
339
- function loadDeferredImagesEnd(keepZoomLevel) {
349
+ function loadDeferredContentEnd(keepZoomLevel) {
340
350
  document.querySelectorAll("[" + LAZY_LOAD_ATTRIBUTE + "]").forEach(element => {
341
351
  element.loading = "lazy";
342
352
  element.removeAttribute(LAZY_LOAD_ATTRIBUTE);
@@ -21,12 +21,12 @@
21
21
  * Source.
22
22
  */
23
23
 
24
- const LOAD_DEFERRED_IMAGES_START_EVENT = "single-file-load-deferred-images-start";
25
- const LOAD_DEFERRED_IMAGES_END_EVENT = "single-file-load-deferred-images-end";
26
- const LOAD_DEFERRED_IMAGES_KEEP_ZOOM_LEVEL_START_EVENT = "single-file-load-deferred-images-keep-zoom-level-start";
27
- const LOAD_DEFERRED_IMAGES_KEEP_ZOOM_LEVEL_END_EVENT = "single-file-load-deferred-images-keep-zoom-level-end";
28
- const LOAD_DEFERRED_IMAGES_RESET_ZOOM_LEVEL_EVENT = "single-file-load-deferred-images-keep-zoom-level-reset";
29
- const LOAD_DEFERRED_IMAGES_RESET_EVENT = "single-file-load-deferred-images-reset";
24
+ const LOAD_DEFERRED_CONTENT_START_EVENT = "single-file-load-deferred-content-start";
25
+ const LOAD_DEFERRED_CONTENT_END_EVENT = "single-file-load-deferred-content-end";
26
+ const LOAD_DEFERRED_CONTENT_KEEP_ZOOM_LEVEL_START_EVENT = "single-file-load-deferred-content-keep-zoom-level-start";
27
+ const LOAD_DEFERRED_CONTENT_KEEP_ZOOM_LEVEL_END_EVENT = "single-file-load-deferred-content-keep-zoom-level-end";
28
+ const LOAD_DEFERRED_CONTENT_RESET_ZOOM_LEVEL_EVENT = "single-file-load-deferred-content-keep-zoom-level-reset";
29
+ const LOAD_DEFERRED_CONTENT_RESET_EVENT = "single-file-load-deferred-content-reset";
30
30
  const BLOCK_COOKIES_START_EVENT = "single-file-block-cookies-start";
31
31
  const BLOCK_COOKIES_END_EVENT = "single-file-block-cookies-end";
32
32
  const DISPATCH_SCROLL_START_EVENT = "single-file-dispatch-scroll-event-start";
@@ -98,9 +98,9 @@ function onNewWorklet(event) {
98
98
  export {
99
99
  getFontsData,
100
100
  getWorkletsData,
101
- loadDeferredImagesStart,
102
- loadDeferredImagesEnd,
103
- loadDeferredImagesResetZoomLevel,
101
+ loadDeferredContentStart,
102
+ loadDeferredContentEnd,
103
+ loadDeferredContentResetZoomLevel,
104
104
  LOAD_IMAGE_EVENT,
105
105
  IMAGE_LOADED_EVENT
106
106
  };
@@ -113,44 +113,45 @@ function getWorkletsData() {
113
113
  return Array.from(worklets.values());
114
114
  }
115
115
 
116
- function loadDeferredImagesStart(options) {
117
- if (options.loadDeferredImagesBlockCookies) {
116
+ function loadDeferredContentStart(options) {
117
+ if (options.loadDeferredContentBlockCookies) {
118
118
  document.dispatchEvent(new CustomEvent(BLOCK_COOKIES_START_EVENT));
119
119
  }
120
- if (options.loadDeferredImagesBlockStorage) {
120
+ if (options.loadDeferredContentBlockStorage) {
121
121
  document.dispatchEvent(new CustomEvent(BLOCK_STORAGE_START_EVENT));
122
122
  }
123
- if (options.loadDeferredImagesDispatchScrollEvent) {
123
+ if (options.loadDeferredContentDispatchScrollEvent) {
124
124
  document.dispatchEvent(new CustomEvent(DISPATCH_SCROLL_START_EVENT));
125
125
  }
126
- if (options.loadDeferredImagesKeepZoomLevel) {
127
- document.dispatchEvent(new CustomEvent(LOAD_DEFERRED_IMAGES_KEEP_ZOOM_LEVEL_START_EVENT));
126
+ const detail = JSON.stringify({ minZoomFactor: options.loadDeferredContentMinZoomFactor });
127
+ if (options.loadDeferredContentKeepZoomLevel) {
128
+ document.dispatchEvent(new CustomEvent(LOAD_DEFERRED_CONTENT_KEEP_ZOOM_LEVEL_START_EVENT, { detail }));
128
129
  } else {
129
- document.dispatchEvent(new CustomEvent(LOAD_DEFERRED_IMAGES_START_EVENT));
130
+ document.dispatchEvent(new CustomEvent(LOAD_DEFERRED_CONTENT_START_EVENT, { detail }));
130
131
  }
131
132
  }
132
133
 
133
- function loadDeferredImagesEnd(options) {
134
- if (options.loadDeferredImagesBlockCookies) {
134
+ function loadDeferredContentEnd(options) {
135
+ if (options.loadDeferredContentBlockCookies) {
135
136
  document.dispatchEvent(new CustomEvent(BLOCK_COOKIES_END_EVENT));
136
137
  }
137
- if (options.loadDeferredImagesBlockStorage) {
138
+ if (options.loadDeferredContentBlockStorage) {
138
139
  document.dispatchEvent(new CustomEvent(BLOCK_STORAGE_END_EVENT));
139
140
  }
140
- if (options.loadDeferredImagesDispatchScrollEvent) {
141
+ if (options.loadDeferredContentDispatchScrollEvent) {
141
142
  document.dispatchEvent(new CustomEvent(DISPATCH_SCROLL_END_EVENT));
142
143
  }
143
- if (options.loadDeferredImagesKeepZoomLevel) {
144
- document.dispatchEvent(new CustomEvent(LOAD_DEFERRED_IMAGES_KEEP_ZOOM_LEVEL_END_EVENT));
144
+ if (options.loadDeferredContentKeepZoomLevel) {
145
+ document.dispatchEvent(new CustomEvent(LOAD_DEFERRED_CONTENT_KEEP_ZOOM_LEVEL_END_EVENT));
145
146
  } else {
146
- document.dispatchEvent(new CustomEvent(LOAD_DEFERRED_IMAGES_END_EVENT));
147
+ document.dispatchEvent(new CustomEvent(LOAD_DEFERRED_CONTENT_END_EVENT));
147
148
  }
148
149
  }
149
150
 
150
- function loadDeferredImagesResetZoomLevel(options) {
151
- if (options.loadDeferredImagesKeepZoomLevel) {
152
- document.dispatchEvent(new CustomEvent(LOAD_DEFERRED_IMAGES_RESET_ZOOM_LEVEL_EVENT));
151
+ function loadDeferredContentResetZoomLevel(options) {
152
+ if (options.loadDeferredContentKeepZoomLevel) {
153
+ document.dispatchEvent(new CustomEvent(LOAD_DEFERRED_CONTENT_RESET_ZOOM_LEVEL_EVENT));
153
154
  } else {
154
- document.dispatchEvent(new CustomEvent(LOAD_DEFERRED_IMAGES_RESET_EVENT));
155
+ document.dispatchEvent(new CustomEvent(LOAD_DEFERRED_CONTENT_RESET_EVENT));
155
156
  }
156
157
  }
@@ -81,7 +81,7 @@ async function process(options) {
81
81
  }
82
82
 
83
83
  function resetZoomLevel(options) {
84
- hooksFrames.loadDeferredImagesResetZoomLevel(options);
84
+ hooksFrames.loadDeferredContentResetZoomLevel(options);
85
85
  }
86
86
 
87
87
  function triggerLazyLoading(options) {
@@ -112,12 +112,12 @@ function triggerLazyLoading(options) {
112
112
  }
113
113
  }
114
114
  });
115
- await setIdleTimeout(options.loadDeferredImagesMaxIdleTime * 2);
115
+ await setIdleTimeout(options.loadDeferredContentMaxIdleTime * 2);
116
116
  await deferForceLazyLoadEnd(observer, options, cleanupAndResolve);
117
117
  observer.observe(document, { subtree: true, childList: true, attributes: true });
118
118
  document.addEventListener(hooksFrames.LOAD_IMAGE_EVENT, onImageLoadEvent);
119
119
  document.addEventListener(hooksFrames.IMAGE_LOADED_EVENT, onImageLoadedEvent);
120
- hooksFrames.loadDeferredImagesStart(options);
120
+ hooksFrames.loadDeferredContentStart(options);
121
121
 
122
122
  async function setIdleTimeout(delay) {
123
123
  await setAsyncTimeout("idleTimeout", async () => {
@@ -130,7 +130,7 @@ function triggerLazyLoading(options) {
130
130
  clearAsyncTimeout("idleTimeout");
131
131
  await setIdleTimeout(Math.max(500, delay / 2));
132
132
  }
133
- }, delay, options.loadDeferredImagesNativeTimeout);
133
+ }, delay);
134
134
  }
135
135
 
136
136
  function onResourceLoad(event) {
@@ -167,28 +167,28 @@ function triggerLazyLoading(options) {
167
167
  }
168
168
 
169
169
  async function deferLazyLoadEnd(observer, options, resolve) {
170
- await setAsyncTimeout("loadTimeout", () => lazyLoadEnd(observer, options, resolve), options.loadDeferredImagesMaxIdleTime, options.loadDeferredImagesNativeTimeout);
170
+ await setAsyncTimeout("loadTimeout", () => lazyLoadEnd(observer, options, resolve), options.loadDeferredContentMaxIdleTime);
171
171
  }
172
172
 
173
173
  async function deferForceLazyLoadEnd(observer, options, resolve) {
174
174
  await setAsyncTimeout("maxTimeout", async () => {
175
175
  await clearAsyncTimeout("loadTimeout");
176
176
  await lazyLoadEnd(observer, options, resolve);
177
- }, options.loadDeferredImagesMaxIdleTime * 10, options.loadDeferredImagesNativeTimeout);
177
+ }, options.loadDeferredContentMaxIdleTime * 10);
178
178
  }
179
179
 
180
180
  async function lazyLoadEnd(observer, options, resolve) {
181
181
  await clearAsyncTimeout("idleTimeout");
182
- hooksFrames.loadDeferredImagesEnd(options);
182
+ hooksFrames.loadDeferredContentEnd(options);
183
183
  await setAsyncTimeout("endTimeout", async () => {
184
184
  await clearAsyncTimeout("maxTimeout");
185
185
  resolve();
186
- }, options.loadDeferredImagesMaxIdleTime / 2, options.loadDeferredImagesNativeTimeout);
186
+ }, options.loadDeferredContentMaxIdleTime / 2);
187
187
  observer.disconnect();
188
188
  }
189
189
 
190
- async function setAsyncTimeout(type, callback, delay, forceNativeTimeout) {
191
- if (browser && browser.runtime && browser.runtime.sendMessage && !forceNativeTimeout) {
190
+ async function setAsyncTimeout(type, callback, delay) {
191
+ if (browser && browser.runtime && browser.runtime.sendMessage) {
192
192
  if (!timeouts.get(type) || !timeouts.get(type).pending) {
193
193
  const timeoutData = { callback, pending: true };
194
194
  timeouts.set(type, timeoutData);
package/single-file.js CHANGED
@@ -47,6 +47,7 @@ function init(initOptions) {
47
47
  }
48
48
 
49
49
  async function getPageData(options = {}, initOptions, doc, win) {
50
+ options = helper.normalizeOptions(options);
50
51
  if (doc === undefined) {
51
52
  doc = globalThis.document;
52
53
  }
@@ -61,30 +62,30 @@ async function getPageData(options = {}, initOptions, doc, win) {
61
62
  const preInitializationPromises = [];
62
63
  if (!options.saveRawPage) {
63
64
  let lazyLoadPromise;
64
- if (options.loadDeferredImages) {
65
+ if (options.loadDeferredContent) {
65
66
  lazyLoadPromise = processors.lazy.process(options);
66
- if (options.loadDeferredImagesBeforeFrames) {
67
+ if (options.loadDeferredContentBeforeFrames) {
67
68
  await lazyLoadPromise;
68
69
  }
69
70
  }
70
71
  if (!options.removeFrames && frames && globalThis.frames) {
71
72
  let frameTreePromise;
72
- if (options.loadDeferredImages) {
73
- frameTreePromise = new Promise(resolve => globalThis.setTimeout(() => resolve(frames.getAsync(options)), options.loadDeferredImagesBeforeFrames || !options.loadDeferredImages ? 0 : options.loadDeferredImagesMaxIdleTime));
73
+ if (options.loadDeferredContent) {
74
+ frameTreePromise = new Promise(resolve => globalThis.setTimeout(() => resolve(frames.getAsync(options)), options.loadDeferredContentBeforeFrames || !options.loadDeferredContent ? 0 : options.loadDeferredContentMaxIdleTime));
74
75
  } else {
75
76
  frameTreePromise = frames.getAsync(options);
76
77
  }
77
- if (options.loadDeferredImagesBeforeFrames) {
78
+ if (options.loadDeferredContentBeforeFrames) {
78
79
  options.frames = await frameTreePromise;
79
80
  } else {
80
81
  preInitializationPromises.push(frameTreePromise);
81
82
  }
82
83
  }
83
- if (options.loadDeferredImages && !options.loadDeferredImagesBeforeFrames) {
84
+ if (options.loadDeferredContent && !options.loadDeferredContentBeforeFrames) {
84
85
  preInitializationPromises.push(lazyLoadPromise);
85
86
  }
86
87
  }
87
- if (!options.loadDeferredImagesBeforeFrames) {
88
+ if (!options.loadDeferredContentBeforeFrames) {
88
89
  [options.frames] = await Promise.all(preInitializationPromises);
89
90
  }
90
91
  framesSessionId = options.frames && options.frames.sessionId;
@@ -95,7 +96,7 @@ async function getPageData(options = {}, initOptions, doc, win) {
95
96
 
96
97
  const externalOnProgress = options.onprogress;
97
98
  options.onprogress = async event => {
98
- if (event.type === event.RESOURCES_INITIALIZED && doc && win && options.loadDeferredImages) {
99
+ if (event.type === event.RESOURCES_INITIALIZED && doc && win && options.loadDeferredContent) {
99
100
  processors.lazy.resetZoomLevel(options);
100
101
  }
101
102
 
@@ -37,6 +37,7 @@ export {
37
37
  capture,
38
38
  frameData,
39
39
  html,
40
+ helper,
40
41
  WIN_ID_ATTRIBUTE_NAME
41
42
  };
42
43
 
@@ -0,0 +1,71 @@
1
+ import { helper } from "./common.js";
2
+
3
+ // The loadDeferredImages* options were renamed to loadDeferredContent* because they never applied to
4
+ // images only: they govern every kind of deferred content, including frames and whole virtualized
5
+ // message lists. The old names stay accepted because they are public API in two ways core cannot
6
+ // see - a library caller passing them to getPageData, and another extension passing them through the
7
+ // external capture API - so this suite pins the compatibility shim rather than the rename.
8
+
9
+ const DEPRECATED_NAMES = {
10
+ loadDeferredImages: "loadDeferredContent",
11
+ loadDeferredImagesMaxIdleTime: "loadDeferredContentMaxIdleTime",
12
+ loadDeferredImagesBlockCookies: "loadDeferredContentBlockCookies",
13
+ loadDeferredImagesBlockStorage: "loadDeferredContentBlockStorage",
14
+ loadDeferredImagesKeepZoomLevel: "loadDeferredContentKeepZoomLevel",
15
+ loadDeferredImagesDispatchScrollEvent: "loadDeferredContentDispatchScrollEvent",
16
+ loadDeferredImagesBeforeFrames: "loadDeferredContentBeforeFrames"
17
+ };
18
+
19
+ let failed = false;
20
+
21
+ {
22
+ for (const deprecatedName of Object.keys(DEPRECATED_NAMES)) {
23
+ const optionName = DEPRECATED_NAMES[deprecatedName];
24
+ const value = deprecatedName.endsWith("MaxIdleTime") ? 3000 : true;
25
+ const normalized = helper.normalizeOptions({ [deprecatedName]: value });
26
+ check(`${deprecatedName} fills ${optionName}`, normalized[optionName], value);
27
+ }
28
+ }
29
+
30
+ // A false or 0 must survive: testing the deprecated value for truthiness instead of for undefined
31
+ // would silently drop every option a user turned off, which is the half that matters most here.
32
+ {
33
+ const normalized = helper.normalizeOptions({ loadDeferredImages: false, loadDeferredImagesMaxIdleTime: 0 });
34
+ check("a deprecated false is carried over", normalized.loadDeferredContent, false);
35
+ check("a deprecated 0 is carried over", normalized.loadDeferredContentMaxIdleTime, 0);
36
+ }
37
+
38
+ {
39
+ const normalized = helper.normalizeOptions({ loadDeferredImages: false, loadDeferredContent: true });
40
+ check("the new name wins when both are set", normalized.loadDeferredContent, true);
41
+ }
42
+
43
+ // getPageData is handed the caller's own object, so filling the new names in place would edit an
44
+ // object the caller still holds and may reuse for a second capture.
45
+ {
46
+ const options = { loadDeferredImages: true };
47
+ const normalized = helper.normalizeOptions(options);
48
+ check("the caller's object is not mutated", options.loadDeferredContent, undefined);
49
+ check("a copy is returned instead", normalized.loadDeferredContent, true);
50
+ }
51
+
52
+ {
53
+ const options = { removeFrames: true };
54
+ check("an options object without deprecated names is returned as is", helper.normalizeOptions(options), options);
55
+ }
56
+
57
+ {
58
+ check("a missing options object is tolerated", helper.normalizeOptions(undefined), undefined);
59
+ }
60
+
61
+ if (failed) {
62
+ console.log("FAILED");
63
+ Deno.exit(1);
64
+ }
65
+ console.log("OK");
66
+
67
+ function check(label, actual, expected) {
68
+ const ok = actual === expected;
69
+ console.log(`${ok ? "PASS" : "FAIL"} ${label}: ${actual}${ok ? "" : " (expected " + expected + ")"}`);
70
+ failed ||= !ok;
71
+ }
package/vendor/zip/zip.js CHANGED
@@ -1,4 +1,4 @@
1
- const { Array, Object, String, Number, BigInt, Math, Date, Map, Set, Response, URL, Error, Uint8Array, Uint16Array, Uint32Array, DataView, Blob, Promise, TextEncoder, TextDecoder, crypto, btoa, TransformStream, ReadableStream, WritableStream, CompressionStream, DecompressionStream, navigator, Worker, setTimeout, clearTimeout } = typeof globalThis !== 'undefined' ? globalThis : this || self;
1
+ const { Array, Object, String, Number, BigInt, Math, Date, Map, Set, Response, URL, Error, Uint8Array, Uint16Array, Uint32Array, DataView, Blob, Promise, TextEncoder, TextDecoder, crypto, btoa, TransformStream, ReadableStream, WritableStream, CompressionStream, DecompressionStream, navigator, Worker, setTimeout, clearTimeout } = typeof globalThis !== 'undefined' ? globalThis : self;
2
2
 
3
3
  /*
4
4
  Copyright (c) 2022 Gildas Lormeau. All rights reserved.
@@ -1 +1 @@
1
- ((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:n,String:r,Number:o,BigInt:s,Math:a,Date:i,Map:c,Set:u,Response:f,URL:w,Error:l,Uint8Array:d,Uint16Array:p,Uint32Array:h,DataView:m,Blob:y,Promise:g,TextEncoder:b,TextDecoder:v,crypto:S,btoa:k,TransformStream:x,ReadableStream:z,WritableStream:R,CompressionStream:D,DecompressionStream:C,navigator:A,Worker:F,setTimeout:I,clearTimeout:U}="undefined"!=typeof globalThis?globalThis:this||self,T=4294967295,E=65535,W=255,M=134695760,O=M,L=33639248,P=101075792,H=117853008,B=22,V=20,Z=56,q=61440,N=new i(1980,0,1),j=void 0,G="undefined",K="function",X="string",_="boolean",$=new d,J=Symbol.asyncDispose||Symbol(),Q="strict",Y="balanced",ee="tolerant";function te(e){if(e&&typeof e!=K)throw new l("Invalid option (must be a function)");return e}function ne(e){return typeof e==X&&e.trim()?o(e):e}let re=2;try{typeof A!=G&&A.hardwareConcurrency&&(re=A.hardwareConcurrency)}catch{}const oe={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:re,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,workerStartupTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof D!=G&&D,DecompressionStream:typeof C!=G&&C},se="maxWorkers",ae="baseURI",ie=["wasmURI","workerURI"],ce=["chunkSize",se,"terminateWorkerTimeout","workerStarvationTimeout","workerStartupTimeout"],ue=["createWorker","CompressionStream","DecompressionStream","CompressionStreamFallback","DecompressionStreamFallback"],fe=[ae,...ie,"useCompressionStream","useWebWorkers","transferStreams",...ce,...ue],we={...oe};function le(){return we}function de(e){return pe(e.chunkSize)}function pe(e){return e=ne(e),o.isInteger(e)&&e>=1?a.max(e,64):65536}function he(e){const t={};for(const n of fe){const r=e[n];r!==j&&(t[n]=me(n,r))}return t}function me(e,t){if(ce.includes(e)){if(t=ne(t),e==se&&(!o.isInteger(t)||1>t))throw new l("Invalid maxWorkers (must be an integer greater than 0)")}else if(ue.includes(e))te(t);else if(e==ae){if(t&&typeof t!=X)throw new l("Invalid baseURI (must be a string)")}else if(ie.includes(e)&&t&&typeof t!=X&&typeof t!=K)throw new l("Invalid URI (must be a string or a function returning a string)");return t}function ye(e){e=e||{};const{CompressionStreamZlib:t,DecompressionStreamZlib:r}=e;if(t===j&&r===j)return e;const o=n.assign({},e);return o.CompressionStreamFallback===j&&(o.CompressionStreamFallback=t),o.DecompressionStreamFallback===j&&(o.DecompressionStreamFallback=r),o}var ge=d,be=p,ve=Int32Array,Se=new ge([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),ke=new ge([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),xe=new ge([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ze=(e,t)=>{for(var n=new be(31),r=0;31>r;++r)n[r]=t+=1<<e[r-1];var o=new ve(n[30]);for(r=1;30>r;++r)for(var s=n[r];s<n[r+1];++s)o[s]=s-n[r]<<5|r;return{b:n,r:o}},Re=ze(Se,2),De=Re.b,Ce=Re.r;De[28]=258,Ce[258]=28;for(var Ae=ze(ke,0).b,Fe=new be(32768),Ie=0;32768>Ie;++Ie){var Ue=(43690&Ie)>>1|(21845&Ie)<<1;Ue=(61680&(Ue=(52428&Ue)>>2|(13107&Ue)<<2))>>4|(3855&Ue)<<4,Fe[Ie]=((65280&Ue)>>8|(255&Ue)<<8)>>1}var Te=(e,t,n)=>{for(var r=e.length,o=0,s=new be(t);r>o;++o)e[o]&&++s[e[o]-1];var a,i=new be(t);for(o=1;t>o;++o)i[o]=i[o-1]+s[o-1]<<1;if(n){a=new be(1<<t);var c=15-t;for(o=0;r>o;++o)if(e[o])for(var u=o<<4|e[o],f=t-e[o],w=i[e[o]-1]++<<f,l=w|(1<<f)-1;l>=w;++w)a[Fe[w]>>c]=u}else for(a=new be(r),o=0;r>o;++o)e[o]&&(a[o]=Fe[i[e[o]-1]++]>>15-e[o]);return a},Ee=new ge(288);for(Ie=0;144>Ie;++Ie)Ee[Ie]=8;for(Ie=144;256>Ie;++Ie)Ee[Ie]=9;for(Ie=256;280>Ie;++Ie)Ee[Ie]=7;for(Ie=280;288>Ie;++Ie)Ee[Ie]=8;var We=new ge(32);for(Ie=0;32>Ie;++Ie)We[Ie]=5;var Me=Te(Ee,9,1),Oe=Te(We,5,1),Le=e=>{for(var t=e[0],n=1;n<e.length;++n)e[n]>t&&(t=e[n]);return t},Pe=(e,t,n)=>{var r=t/8|0;return(e[r]|e[r+1]<<8)>>(7&t)&n},He=(e,t)=>{var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(7&t)},Be=e=>(e+7)/8|0,Ve=(e,t,n)=>((null==t||0>t)&&(t=0),(null==n||n>e.length)&&(n=e.length),new ge(e.subarray(t,n))),Ze=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],qe=(e,t,n)=>{var r=new l(t||Ze[e]);if(r.code=e,l.captureStackTrace&&l.captureStackTrace(r,qe),!n)throw r;return r},Ne=(e,t,n,r)=>{var o=e.length,s=r?r.length:0;if(!o||t.f&&!t.o)return n||new ge(0);var i=!n,c=i||2!=t.i,u=t.i;i&&(n=new ge(3*o));var f=e=>{var t=n.length;if(e>t){var r=new ge(a.max(2*t,e));r.set(n),n=r}},w=t.f||0,l=t.p||0,d=t.b||0,p=t.o,h=t.d,m=t.l,y=t.n,g=8*o;do{if(!p){w=Pe(e,l,1);var b=Pe(e,l+1,3);if(l+=3,!b){var v=e[(U=Be(l)+4)-4]|e[U-3]<<8,S=U+v;if(S>o){u&&qe(0);break}c&&f(d+v),n.set(e.subarray(U,S),d),t.b=d+=v,t.p=l=8*S,t.f=w;continue}if(1==b)p=Me,h=Oe,m=9,y=5;else if(2==b){var k=Pe(e,l,31)+257,x=Pe(e,l+10,15)+4,z=k+Pe(e,l+5,31)+1;l+=14;for(var R=new ge(z),D=new ge(19),C=0;x>C;++C)D[xe[C]]=Pe(e,l+3*C,7);l+=3*x;var A=Le(D),F=(1<<A)-1,I=Te(D,A,1);for(C=0;z>C;){var U,T=I[Pe(e,l,F)];if(l+=15&T,16>(U=T>>4))R[C++]=U;else{var E=0,W=0;for(16==U?(W=3+Pe(e,l,3),l+=2,E=R[C-1]):17==U?(W=3+Pe(e,l,7),l+=3):18==U&&(W=11+Pe(e,l,127),l+=7);W--;)R[C++]=E}}var M=R.subarray(0,k),O=R.subarray(k);m=Le(M),y=Le(O),p=Te(M,m,1),h=Te(O,y,1)}else qe(1);if(l>g){u&&qe(0);break}}c&&f(d+131072);for(var L=(1<<m)-1,P=(1<<y)-1,H=l;;H=l){var B=(E=p[He(e,l)&L])>>4;if((l+=15&E)>g){u&&qe(0);break}if(E||qe(2),256>B)n[d++]=B;else{if(256==B){H=l,p=null;break}var V=B-254;if(B>264){var Z=Se[C=B-257];V=Pe(e,l,(1<<Z)-1)+De[C],l+=Z}var q=h[He(e,l)&P],N=q>>4;if(q||qe(3),l+=15&q,O=Ae[N],N>3&&(Z=ke[N],O+=He(e,l)&(1<<Z)-1,l+=Z),l>g){u&&qe(0);break}c&&f(d+131072);var j=d+V;if(O>d){var G=s-O,K=a.min(O,j);for(0>G+d&&qe(3);K>d;++d)n[d]=r[G+d]}for(;j>d;++d)n[d]=n[d-O]}}t.o=p,t.p=H,t.b=d,t.f=w,p&&(w=1,t.l=m,t.d=h,t.n=y)}while(!w);return d!=n.length&&i?Ve(n,0,d):n.subarray(0,d)},je=new ge(0),Ge=function(){function e(e,t){"function"==typeof e&&(t=e,e={}),this.h=t;var n=e&&e.m&&e.m.subarray(-32768);this.s={i:0,b:n?n.length:0},this.v=new ge(32768),this.p=new ge(0),n&&this.v.set(n)}return e.prototype.e=function(e){if(this.h||qe(5),this.d&&qe(4),this.p.length){if(e.length){var t=new ge(this.p.length+e.length);t.set(this.p),t.set(e,this.p.length),this.p=t}}else this.p=e},e.prototype.c=function(e){this.s.i=+(this.d=e||!1);var t=this.s.b,n=Ne(this.p,this.s,this.v);this.h(Ve(n,t,this.s.b),this.d),this.v=Ve(n,this.s.b-32768),this.s.b=this.v.length,this.p=Ve(this.p,this.s.p/8|0),this.s.p&=7},e.prototype.push=function(e,t){this.e(e),this.c(t)},e}(),Ke=void 0!==v&&new v;try{Ke.decode(je,{stream:!0})}catch(e){}class Xe extends x{constructor(e){super({start(t){e.h=e=>{e.length&&t.enqueue(e)}},transform(t){e.push(t)},flush(){e.push(new d(0),!0)}})}}const _e="Compression method not supported",$e=new c,Je=new c;function Qe(e){return Je.get(e)}const Ye=[[],[],[],[],[],[],[],[]];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)t=1&t?t>>>1^3988292384:t>>>1;Ye[0][e]=t}for(let e=0;256>e;e++)for(let t=1;8>t;t++){const n=Ye[t-1][e];Ye[t][e]=n>>>8^Ye[0][255&n]}const[et,tt,nt,rt,ot,st,at,it]=Ye;class ct{constructor(e){this.S=e||-1}append(e){let t=0|this.S;const n=0|e.length;let r=0;if(n>=8&&e.buffer){const o=new m(e.buffer,e.byteOffset,n),s=n-8;for(;s>=r;r+=8){const e=t^o.getInt32(r,!0),n=o.getInt32(r+4,!0);t=it[255&e]^at[e>>>8&255]^st[e>>>16&255]^ot[e>>>24&255]^rt[255&n]^nt[n>>>8&255]^tt[n>>>16&255]^et[n>>>24&255]}}for(;n>r;r++)t=t>>>8^et[255&(t^e[r])];this.S=t}get(){return~this.S}}class ut extends x{constructor(){let e;const t=new ct;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new d(4);new m(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}function ft(e,t){const n=new d(e.length+t.length);return n.set(e),n.set(t,e.length),n}function wt(e){return new m(e.buffer,e.byteOffset,e.byteLength)}const lt=64,dt=20,pt=new d([128]),ht=new d(1),mt=new Int32Array([1732584193,4023233417,2562383102,271733878,3285377520]),yt=new d(256),gt=new Int32Array(256),bt=new Int32Array(256),vt=new Int32Array(256),St=new Int32Array(256);let kt=!1;function xt(e){const t=(()=>{const e=new Int32Array(mt),t=new Int32Array(16),n=new d(lt),r=new m(n.buffer),o=new d(8);let s=0,i=0;return{update:c,digest:()=>{const t=8*i,n=a.floor(t/4294967296),r=t>>>0;for(c(pt,0,1);56!=s;)c(ht,0,1);o[0]=n>>>24,o[1]=n>>>16,o[2]=n>>>8,o[3]=n,o[4]=r>>>24,o[5]=r>>>16,o[6]=r>>>8,o[7]=r,c(o,0,8);const u=new d(dt),f=new m(u.buffer);for(let t=0;t<e.length;t++)f.setInt32(4*t,e[t]);return e.set(mt),s=0,i=0,u}};function c(e,t,o){const a=t+o;if(i+=o,s){for(;a>t&&lt>s;)n[s++]=e[t++];s==lt&&(u(r,0),s=0)}if(a>=t+lt){const n=new m(e.buffer,e.byteOffset,e.byteLength);for(;a>=t+lt;t+=lt)u(n,t)}for(;a>t;)n[s++]=e[t++]}function u(n,r){for(let e=0;16>e;e++)t[e]=n.getInt32(r+4*e);let o,s=e[0],a=e[1],i=e[2],c=e[3],u=e[4];for(let e=0;15>e;e+=5)u=(s<<5|s>>>27)+((i^c)&a^c)+u+1518500249+t[e]|0,a=a<<30|a>>>2,c=(u<<5|u>>>27)+((a^i)&s^i)+c+1518500249+t[e+1]|0,s=s<<30|s>>>2,i=(c<<5|c>>>27)+((s^a)&u^a)+i+1518500249+t[e+2]|0,u=u<<30|u>>>2,a=(i<<5|i>>>27)+((u^s)&c^s)+a+1518500249+t[e+3]|0,c=c<<30|c>>>2,s=(a<<5|a>>>27)+((c^u)&i^u)+s+1518500249+t[e+4]|0,i=i<<30|i>>>2;u=(s<<5|s>>>27)+((i^c)&a^c)+u+1518500249+t[15]|0,a=a<<30|a>>>2,o=t[13]^t[8]^t[2]^t[0],o=o<<1|o>>>31,t[0]=o,c=(u<<5|u>>>27)+((a^i)&s^i)+c+1518500249+o|0,s=s<<30|s>>>2,o=t[14]^t[9]^t[3]^t[1],o=o<<1|o>>>31,t[1]=o,i=(c<<5|c>>>27)+((s^a)&u^a)+i+1518500249+o|0,u=u<<30|u>>>2,o=t[15]^t[10]^t[4]^t[2],o=o<<1|o>>>31,t[2]=o,a=(i<<5|i>>>27)+((u^s)&c^s)+a+1518500249+o|0,c=c<<30|c>>>2,o=t[0]^t[11]^t[5]^t[3],o=o<<1|o>>>31,t[3]=o,s=(a<<5|a>>>27)+((c^u)&i^u)+s+1518500249+o|0,i=i<<30|i>>>2;for(let e=20;40>e;e+=5)o=t[e-3&15]^t[e-8&15]^t[e-14&15]^t[15&e],o=o<<1|o>>>31,t[15&e]=o,u=(s<<5|s>>>27)+(a^i^c)+u+1859775393+o|0,a=a<<30|a>>>2,o=t[e-2&15]^t[e-7&15]^t[e-13&15]^t[e+1&15],o=o<<1|o>>>31,t[e+1&15]=o,c=(u<<5|u>>>27)+(s^a^i)+c+1859775393+o|0,s=s<<30|s>>>2,o=t[e-1&15]^t[e-6&15]^t[e-12&15]^t[e+2&15],o=o<<1|o>>>31,t[e+2&15]=o,i=(c<<5|c>>>27)+(u^s^a)+i+1859775393+o|0,u=u<<30|u>>>2,o=t[15&e]^t[e-5&15]^t[e-11&15]^t[e+3&15],o=o<<1|o>>>31,t[e+3&15]=o,a=(i<<5|i>>>27)+(c^u^s)+a+1859775393+o|0,c=c<<30|c>>>2,o=t[e+1&15]^t[e-4&15]^t[e-10&15]^t[e+4&15],o=o<<1|o>>>31,t[e+4&15]=o,s=(a<<5|a>>>27)+(i^c^u)+s+1859775393+o|0,i=i<<30|i>>>2;for(let e=40;60>e;e+=5)o=t[e-3&15]^t[e-8&15]^t[e-14&15]^t[15&e],o=o<<1|o>>>31,t[15&e]=o,u=(s<<5|s>>>27)+(a&i|(a|i)&c)+u+2400959708+o|0,a=a<<30|a>>>2,o=t[e-2&15]^t[e-7&15]^t[e-13&15]^t[e+1&15],o=o<<1|o>>>31,t[e+1&15]=o,c=(u<<5|u>>>27)+(s&a|(s|a)&i)+c+2400959708+o|0,s=s<<30|s>>>2,o=t[e-1&15]^t[e-6&15]^t[e-12&15]^t[e+2&15],o=o<<1|o>>>31,t[e+2&15]=o,i=(c<<5|c>>>27)+(u&s|(u|s)&a)+i+2400959708+o|0,u=u<<30|u>>>2,o=t[15&e]^t[e-5&15]^t[e-11&15]^t[e+3&15],o=o<<1|o>>>31,t[e+3&15]=o,a=(i<<5|i>>>27)+(c&u|(c|u)&s)+a+2400959708+o|0,c=c<<30|c>>>2,o=t[e+1&15]^t[e-4&15]^t[e-10&15]^t[e+4&15],o=o<<1|o>>>31,t[e+4&15]=o,s=(a<<5|a>>>27)+(i&c|(i|c)&u)+s+2400959708+o|0,i=i<<30|i>>>2;for(let e=60;80>e;e+=5)o=t[e-3&15]^t[e-8&15]^t[e-14&15]^t[15&e],o=o<<1|o>>>31,t[15&e]=o,u=(s<<5|s>>>27)+(a^i^c)+u+3395469782+o|0,a=a<<30|a>>>2,o=t[e-2&15]^t[e-7&15]^t[e-13&15]^t[e+1&15],o=o<<1|o>>>31,t[e+1&15]=o,c=(u<<5|u>>>27)+(s^a^i)+c+3395469782+o|0,s=s<<30|s>>>2,o=t[e-1&15]^t[e-6&15]^t[e-12&15]^t[e+2&15],o=o<<1|o>>>31,t[e+2&15]=o,i=(c<<5|c>>>27)+(u^s^a)+i+3395469782+o|0,u=u<<30|u>>>2,o=t[15&e]^t[e-5&15]^t[e-11&15]^t[e+3&15],o=o<<1|o>>>31,t[e+3&15]=o,a=(i<<5|i>>>27)+(c^u^s)+a+3395469782+o|0,c=c<<30|c>>>2,o=t[e+1&15]^t[e-4&15]^t[e-10&15]^t[e+4&15],o=o<<1|o>>>31,t[e+4&15]=o,s=(a<<5|a>>>27)+(i^c^u)+s+3395469782+o|0,i=i<<30|i>>>2;e[0]=e[0]+s|0,e[1]=e[1]+a|0,e[2]=e[2]+i|0,e[3]=e[3]+c|0,e[4]=e[4]+u|0}})(),n=new d(lt),r=new d(lt);e.length>lt&&(t.update(e,0,e.length),e=t.digest());for(let t=0;lt>t;t++){const o=t<e.length?e[t]:0;n[t]=54^o,r[t]=92^o}return t.update(n,0,lt),{update(e,n,r){t.update(e,n,r)},digest(){const e=t.digest();t.update(r,0,lt),t.update(e,0,dt);const o=t.digest();return t.update(n,0,lt),o}}}function zt(e){return yt[e>>>24]<<24|yt[e>>>16&255]<<16|yt[e>>>8&255]<<8|yt[255&e]}function Rt(e){return e<<24|(65280&e)<<8|e>>>8&65280|e>>>24}function Dt(e){return 255&(e<<1^27*(e>>7))}const Ct=typeof S!=G&&typeof S.getRandomValues==K,At="Invalid password",Ft="zipjs-abort-check-password";function It(e){if(Ct)return S.getRandomValues(e);throw new l("Crypto API not supported")}const Ut={name:"PBKDF2"},Tt=n.assign({hash:{name:"HMAC"}},Ut),Et=n.assign({iterations:1e3,hash:{name:"SHA-1"}},Ut),Wt=["deriveBits"],Mt=[8,12,16],Ot=[16,24,32],Lt=10,Pt=typeof S!=G,Ht=Pt&&S.subtle;let Bt=Pt&&typeof Ht!=G&&typeof Ht.importKey==K&&typeof Ht.deriveBits==K;class Vt extends x{constructor({password:e,rawPassword:t,encryptionStrength:n,checkPasswordOnly:r,checkAuthenticationCode:o=!0}){super({start(){qt(this,e,t,n)},async transform(e,t){const n=this,{password:o,strength:s,R:a,ready:i}=n;o?(await(async(e,t,n,r)=>{const o=await Gt(e,t,n,Xt(r,0,Mt[t])),s=Xt(r,Mt[t]);if(o[0]!=s[0]||o[1]!=s[1])throw jt(e),new l(At)})(n,s,o,Xt(e,0,Mt[s]+2)),e=Xt(e,Mt[s]+2),r?(jt(n),t.error(new l(Ft))):a()):await i;const c=new d(e.length-Lt-(e.length-Lt)%16);t.enqueue(Nt(n,e,c,0,Lt,!0))},async flush(e){const{D:t,C:n,ready:r}=this;if(t){await r;const s=Xt(n,n.length-Lt),a=new d(Xt(n,0,n.length-Lt));t.process(a,!0);const i=t.digest();let c=n.length<Lt?1:0;for(let e=0;Lt>e;e++)c|=i[e]^s[e];if(c&&o)throw new l("Invalid authentication code");e.enqueue(a)}},cancel(){jt(this)}})}}class Zt extends x{constructor({password:e,rawPassword:t,encryptionStrength:n}){super({start(){qt(this,e,t,n)},async transform(e,t){const n=this,{password:r,strength:o,R:s,ready:a}=n;let i=$;r?(i=await(async(e,t,n)=>{const r=It(new d(Mt[t]));return ft(r,await Gt(e,t,n,r))})(n,o,r),s()):await a;const c=new d(i.length+e.length-e.length%16);c.set(i,0),t.enqueue(Nt(n,e,c,i.length,0,!1))},async flush(e){const{D:t,C:n,ready:r}=this;if(t){await r;const o=new d(n);t.process(o,!1);const s=Xt(t.digest(),0,Lt);e.enqueue(ft(o,s))}},cancel(){jt(this)}})}}function qt(e,t,r,o){n.assign(e,{ready:new g(t=>e.R=t),password:Kt(t,r),strength:o-1,C:$})}function Nt(e,t,n,r,o,s){const{D:a,C:i}=e;i.length&&(t=ft(i,t));const c=t.length-o,u=c-c%16;if(n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new d(t)).set(n,0)}return e})(n,r+u),u){const e=Xt(n,r,r+u);e.set(Xt(t,0,u)),a.process(e,s)}return e.C=Xt(t,u),n}function jt({D:e}){e&&e.dispose&&e.dispose()}async function Gt(e,t,r,o){e.password=null;const s=Ot[t],i=await(async(e,t,r)=>{if(Bt)try{const o=await Ht.importKey("raw",e,Tt,!1,Wt);return new d(await Ht.deriveBits(n.assign({salt:t},Et),o,8*r))}catch{Bt=!1}return((e,t,n,r)=>{const o=xt(e),s=new d(r),i=new d(t.length+4),c=new m(i.buffer);i.set(t);for(let e=1,n=0;r>n;e++,n+=dt){c.setUint32(t.length,e),o.update(i,0,i.length);let u=o.digest();const f=u.slice();for(let e=1;1e3>e;e++){o.update(u,0,dt),u=o.digest();for(let e=0;dt>e;e++)f[e]^=u[e]}s.set(f.subarray(0,a.min(dt,r-n)),n)}return s})(e,t,0,r)})(r,o,2*s+2);return e.D=((e,t)=>{(()=>{if(!kt){let e=1,t=1;do{e=255&(e^e<<1^(128&e?27:0)),t=255&(t^t<<1),t=255&(t^t<<2),t=255&(t^t<<4),128&t&&(t^=9),yt[e]=255&(t^(t<<1|t>>7)^(t<<2|t>>6)^(t<<3|t>>5)^(t<<4|t>>4)^99)}while(1!=e);yt[0]=99;for(let e=0;256>e;e++){const t=yt[e],n=Dt(t),r=n<<24|t<<16|t<<8|n^t;gt[e]=r,bt[e]=r>>>8|r<<24,vt[e]=r>>>16|r<<16,St[e]=r>>>24|r<<8}kt=!0}})();const n=new Int32Array(60),r=((e,t)=>{const n=e.length>>2,r=n+6,o=4*(r+1);let s=1;for(let r=0;n>r;r++)t[r]=e[4*r]<<24|e[4*r+1]<<16|e[4*r+2]<<8|e[4*r+3];for(let e=n;o>e;e++){let r=t[e-1];e%n==0?(r=zt(r<<8|r>>>24)^s<<24,s=Dt(s)):n>6&&e%n==4&&(r=zt(r)),t[e]=t[e-n]^r}return r})(e,n),o=new Int32Array(4),s=xt(t);let a=0,i=0,c=0,u=0;return{process(e,t){t&&s.update(e,0,e.length),(e=>{const t=new m(e.buffer,e.byteOffset,e.byteLength),n=e.length;let r=0;for(;n>=r+16;r+=16)f(),t.setInt32(r,t.getInt32(r)^o[0]),t.setInt32(r+4,t.getInt32(r+4)^o[1]),t.setInt32(r+8,t.getInt32(r+8)^o[2]),t.setInt32(r+12,t.getInt32(r+12)^o[3]);if(n>r){f();for(let t=0;n>r;r++,t++)e[r]^=o[t>>2]>>>24-8*(3&t)}})(e),t||s.update(e,0,e.length)},digest:()=>s.digest()};function f(){a=a+1|0,a||(i=i+1|0,i||(c=c+1|0,c||(u=u+1|0)));let e=Rt(a)^n[0],t=Rt(i)^n[1],s=Rt(c)^n[2],f=Rt(u)^n[3],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[4],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[5],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[6],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[7];e=gt[w>>>24]^bt[l>>>16&255]^vt[d>>>8&255]^St[255&p]^n[8],t=gt[l>>>24]^bt[d>>>16&255]^vt[p>>>8&255]^St[255&w]^n[9],s=gt[d>>>24]^bt[p>>>16&255]^vt[w>>>8&255]^St[255&l]^n[10],f=gt[p>>>24]^bt[w>>>16&255]^vt[l>>>8&255]^St[255&d]^n[11],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[12],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[13],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[14],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[15],e=gt[w>>>24]^bt[l>>>16&255]^vt[d>>>8&255]^St[255&p]^n[16],t=gt[l>>>24]^bt[d>>>16&255]^vt[p>>>8&255]^St[255&w]^n[17],s=gt[d>>>24]^bt[p>>>16&255]^vt[w>>>8&255]^St[255&l]^n[18],f=gt[p>>>24]^bt[w>>>16&255]^vt[l>>>8&255]^St[255&d]^n[19],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[20],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[21],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[22],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[23],e=gt[w>>>24]^bt[l>>>16&255]^vt[d>>>8&255]^St[255&p]^n[24],t=gt[l>>>24]^bt[d>>>16&255]^vt[p>>>8&255]^St[255&w]^n[25],s=gt[d>>>24]^bt[p>>>16&255]^vt[w>>>8&255]^St[255&l]^n[26],f=gt[p>>>24]^bt[w>>>16&255]^vt[l>>>8&255]^St[255&d]^n[27],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[28],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[29],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[30],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[31],e=gt[w>>>24]^bt[l>>>16&255]^vt[d>>>8&255]^St[255&p]^n[32],t=gt[l>>>24]^bt[d>>>16&255]^vt[p>>>8&255]^St[255&w]^n[33],s=gt[d>>>24]^bt[p>>>16&255]^vt[w>>>8&255]^St[255&l]^n[34],f=gt[p>>>24]^bt[w>>>16&255]^vt[l>>>8&255]^St[255&d]^n[35],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[36],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[37],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[38],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[39];let h=40;r>10&&(e=gt[w>>>24]^bt[l>>>16&255]^vt[d>>>8&255]^St[255&p]^n[40],t=gt[l>>>24]^bt[d>>>16&255]^vt[p>>>8&255]^St[255&w]^n[41],s=gt[d>>>24]^bt[p>>>16&255]^vt[w>>>8&255]^St[255&l]^n[42],f=gt[p>>>24]^bt[w>>>16&255]^vt[l>>>8&255]^St[255&d]^n[43],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[44],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[45],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[46],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[47],h=48),r>12&&(e=gt[w>>>24]^bt[l>>>16&255]^vt[d>>>8&255]^St[255&p]^n[48],t=gt[l>>>24]^bt[d>>>16&255]^vt[p>>>8&255]^St[255&w]^n[49],s=gt[d>>>24]^bt[p>>>16&255]^vt[w>>>8&255]^St[255&l]^n[50],f=gt[p>>>24]^bt[w>>>16&255]^vt[l>>>8&255]^St[255&d]^n[51],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[52],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[53],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[54],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[55],h=56),o[0]=(yt[w>>>24]<<24|yt[l>>>16&255]<<16|yt[d>>>8&255]<<8|yt[255&p])^n[h],o[1]=(yt[l>>>24]<<24|yt[d>>>16&255]<<16|yt[p>>>8&255]<<8|yt[255&w])^n[h+1],o[2]=(yt[d>>>24]<<24|yt[p>>>16&255]<<16|yt[w>>>8&255]<<8|yt[255&l])^n[h+2],o[3]=(yt[p>>>24]<<24|yt[w>>>16&255]<<16|yt[l>>>8&255]<<8|yt[255&d])^n[h+3]}})(Xt(i,0,s),Xt(i,s,2*s)),Xt(i,2*s)}function Kt(e,t){return t===j?(e=>{if(typeof b==G){const t=new d((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new b).encode(e)})(e):t}function Xt(e,t,n){return e.subarray(t,n)}class _t extends x{constructor({password:e,rawPassword:t,passwordVerification:n,checkPasswordOnly:r}){super({start(){Jt(this,e,t,n)},transform(e,t){const n=this;if(n.password||n.rawPassword){const t=Qt(n,e.subarray(0,12));if(n.password=n.rawPassword=null,0!=(t[11]^n.passwordVerification))throw new l(At);e=e.subarray(12)}r?t.error(new l(Ft)):t.enqueue(Qt(n,e))}})}}class $t extends x{constructor({password:e,rawPassword:t,passwordVerification:n}){super({start(){Jt(this,e,t,n)},transform(e,t){const n=this;let r,o;if(n.password||n.rawPassword){n.password=n.rawPassword=null;const t=It(new d(12));t[11]=n.passwordVerification,r=new d(e.length+t.length),r.set(Yt(n,t),0),o=12}else r=new d(e.length),o=0;r.set(Yt(n,e),o),t.enqueue(r)}})}}function Jt(e,t,r,o){n.assign(e,{password:t,rawPassword:r,passwordVerification:o}),((e,t,r)=>{const o=[305419896,591751049,878082192];if(n.assign(e,{keys:o,A:new ct(o[0]),F:new ct(o[2])}),r)for(let t=0;t<r.length;t++)en(e,r[t]);else for(let n=0;n<t.length;n++)en(e,t.charCodeAt(n))})(e,t,r)}function Qt(e,t){const n=new d(t.length);for(let r=0;r<t.length;r++)n[r]=tn(e)^t[r],en(e,n[r]);return n}function Yt(e,t){const n=new d(t.length);for(let r=0;r<t.length;r++)n[r]=tn(e)^t[r],en(e,t[r]);return n}function en(e,t){let[,n]=e.keys;e.A.append([t]);const r=~e.A.get();n=rn(a.imul(rn(n+nn(r)),134775813)+1),e.F.append([n>>>24]);const o=~e.F.get();e.keys=[r,n,o]}function tn(e){const t=2|e.keys[2];return nn(a.imul(t,1^t)>>>8)}function nn(e){return 255&e}function rn(e){return 4294967295&e}function on(e){if(e instanceof z)return e;const t=e.getReader();return new z({async pull(e){const{value:n,done:r}=await t.read();r?e.close():e.enqueue(n)},cancel:e=>t.cancel(e)})}function sn(e,t){e=on(e);const n=t?{type:t}:{};if(typeof y.prototype.stream!=K||new y([]).stream()instanceof z)return new f(e).blob().then(e=>t?new y([e],n):e);const r=[];return e.pipeTo(new R({write(e){r.push(e)}})).then(()=>new y(r,n))}function an(e){if(e instanceof R)return e;const t=e.getWriter();return new R({write:e=>t.write(e),close:()=>t.close(),abort:e=>t.abort(e)})}const cn="Invalid uncompressed size",un="deflate-raw",fn="gzip",wn=[31,139,8];class ln extends x{constructor(e,{chunkSize:t,CompressionStreamFallback:n,CompressionStream:r}){super({});const{compressed:o,encrypted:s,useCompressionStream:a,zipCrypto:i,computeCrc32:c,level:u,deflate64:f,format:w,compressionMethod:l,inputSize:d}=e,p=this;let h,y,g,b=super.readable;const v=w&&Qe(w),S=((e,t,n)=>e&&t?t:n&&n.I?n:void 0)(a,r,n),k=c&&o&&!f&&!v&&(!s||i)&&!!S;if(s&&!i||!c||k||(h=new ut,b=bn(b,h)),o)if(v)b=vn(b,yn(v.CompressionStream,w,{level:u,chunkSize:t,compressionMethod:l,uncompressedSize:d}));else if(k)g=new dn,b=vn(b,new S(fn,{level:u,chunkSize:t})),b=bn(b,g);else try{b=gn(b,a,{level:u,chunkSize:t},r,n)}catch(e){let t;try{t=new r(fn)}catch{throw e}b=vn(b,t),b=bn(b,new dn)}s&&(i?b=bn(b,new $t(e)):(y=new Zt(e),b=bn(b,y))),mn(p,b,()=>{s&&!i||!c||(p.crc32=k?g.crc32:new m(h.value.buffer).getUint32(0))})}}class dn extends x{constructor(){let e,t=10,n=new d(0);super({transform(e,r){if(t){const n=a.min(t,e.length);if(t-=n,!(e=e.subarray(n)).length)return}const o=n.length+e.length;if(8>=o)return void(n=ft(n,e));const s=o-8,i=a.min(s,n.length);r.enqueue(ft(n.subarray(0,i),e.subarray(0,s-i))),n=ft(n.subarray(i),e.subarray(s-i))},flush(){const t=wt(n);e.crc32=t.getUint32(0,!0),e.uncompressedSize=t.getUint32(4,!0)}}),e=this}}class pn extends x{constructor(e,{chunkSize:t,DecompressionStreamFallback:n,DecompressionStream:r}){super({});const{zipCrypto:o,encrypted:s,checkCrc32:a,crc32:i,compressed:c,useCompressionStream:u,deflate64:f,format:w,compressionMethod:p,rawBitFlag:h,outputSize:y}=e;let b,v,S,k=super.readable;if(s&&(o?k=bn(k,new _t(e)):(v=new Vt(e),k=bn(k,v))),c){const e=w&&Qe(w);if(e)k=vn(k,yn(e.DecompressionStream,w,{chunkSize:t,compressionMethod:p,rawBitFlag:h,uncompressedSize:y}));else try{k=gn(k,u,{chunkSize:t,deflate64:f},r,n)}catch(e){if(f||y===j)throw e;let t;try{t=new r(fn)}catch{throw e}S=new ct,k=((e,t,n,r)=>{let o,s,a,i=0,c=!1;const u=new g((e,t)=>{s=e,a=t});u.catch(()=>{}),n||s();const f=new x({start(e){const t=new d(10);t.set(wn),e.enqueue(t)},transform(e,t){t.enqueue(e)},async flush(e){c=!0,p();try{await u}finally{h()}const t=new d(8),o=wt(t);o.setUint32(0,r.get(),!0),o.setUint32(4,n,!0),e.enqueue(t)},cancel(e){a(e)}}),w=new x({transform(e,t){r.append(e),i+=e.length,n>i?c&&p():s(),t.enqueue(e)},cancel(e){a(e)}});return e=bn(e,f),bn(e=vn(e,t),w);function p(){h(),o=I(()=>a(new l(cn)),5e3)}function h(){U(o)}})(k,t,y,S)}k=(e=>{const t=e.getReader();return new z({async pull(e){let n;try{n=await t.read()}catch(e){if(e&&e.message)throw e;const t=new l("Invalid compressed data");throw t.cause=e,t}const{value:r,done:o}=n;o?e.close():e.enqueue(r)},cancel:e=>t.cancel(e)})})(k)}a&&!S&&(b=new ut,k=bn(k,b)),mn(this,k,()=>{if(a){const e=S?S.get()>>>0:new m(b.value.buffer).getUint32(0,!1);if(i!=e)throw new l("Invalid CRC32")}})}}const hn=new c;function mn(e,t,r){t=bn(t,new x({flush:r})),n.defineProperty(e,"readable",{get:()=>t})}function yn(e,t,n){if(!e)throw new l(_e);return new e(t,n)}function gn(e,t,n,r,o){const s=t&&r?r:o||r,a=n.deflate64?"deflate64-raw":un;let i;try{i=new s(a,n)}catch(e){if(!t||!o||s==o)throw e;i=new o(a,n)}return vn(e,i)}function bn(e,t){return on(e).pipeThrough(t)}function vn(e,t){const n=t.writable.getWriter(),r=e.getReader();return(async()=>{try{for(;;){await n.ready;const e=await r.read();if(e.done){await n.close();break}await n.write(e.value)}}catch(e){await(async(e,t)=>{try{await e.abort(t)}catch{}})(n,e),await(async(e,t)=>{try{await e.cancel(t)}catch{}})(r,e)}})(),t.readable}const Sn="deflate",kn="inflate";class xn extends x{constructor(e,t){super({});const r=this,{codecType:o}=e;let s;o.startsWith(Sn)?s=ln:o.startsWith(kn)&&(s=pn),r.outputSize=0;let a=0;const i=new s(e,t),c=super.readable,u=new x({transform(e,t){e&&e.length&&(a+=e.length,t.enqueue(e))},flush(){n.assign(r,{inputSize:a})}}),f=new x({transform(t,n){if(t&&t.length&&(n.enqueue(t),r.outputSize+=t.length,e.outputSize!==j&&r.outputSize>e.outputSize))throw new l(cn)},flush(){const{crc32:e}=i;n.assign(r,{crc32:e,inputSize:a})}});n.defineProperty(r,"readable",{get:()=>c.pipeThrough(u).pipeThrough(i).pipeThrough(f)})}}class zn extends x{constructor(e){const t=[];let r=0,s=0;function a(){const n=new d(e);let o=0;for(;e>o;){const r=t[0],s=e-o;r.length>s?(n.set(r.subarray(0,s),o),t[0]=r.subarray(s),o+=s):(n.set(r,o),o+=r.length,t.shift())}return r-=e,n}o.isFinite(e)&&e>=1||(e=65536),super({transform(n,o){for(t.push(n),r+=n.length;r>e;)s+=e,o.enqueue(a())},flush(e){r&&(s+=r,e.enqueue(((e,t)=>{const n=new d(t);let r=0;for(const t of e)n.set(t,r),r+=t.length;return n})(t,r)))}}),n.defineProperty(this,"outputSize",{get:()=>s})}}function Rn(e){return!!e&&"object"==typeof e}let Dn=()=>{};class Cn{constructor(e,{readable:t,writable:r},o,s){const{options:a,config:i,U:u,useWebWorkers:f,transferStreams:w,workerURI:l}=o;let{createWorker:d}=o;const{signal:p}=u;return n.assign(e,{T:!0,W:(e.W||0)+1,readable:t.pipeThrough(new zn(de(i))).pipeThrough(new An(u),{signal:p}),writable:r,options:n.assign({},a),M:o,workerURI:l,createWorker:d,transferStreams:w,terminate:()=>new g(t=>{const{O:n,T:r}=e;r?(e.L=e.L||[],e.L.push(t)):(n&&(n.terminate(),e.O=null),t()),e.P=null}),H(){if(e.T){const{L:t,O:n}=e;t&&(e.L=null,n&&(e.B=!0,n.terminate())),e.T=!1;const r=s(e);t&&t.forEach(e=>e(r))}}}),((e,t)=>({run:()=>(async({options:e,readable:t,writable:n,H:r,M:o},s)=>{let a,i,u;try{if(e.compressed&&!e.format){const t=e.codecType.startsWith(Sn),n=t?s.CompressionStreamFallback:s.DecompressionStreamFallback,r=t?s.CompressionStream:s.DecompressionStream;e.useCompressionStream?n&&n.I&&!((e,t)=>{if(!e)return!1;let n=hn.get(e);n||(n=new c,hn.set(e,n));let r=n.get(t);if(r===j){try{new e(t),r=!0}catch{r=!1}n.set(t,r)}return r})(r,un)&&await f():await f()||n&&!n.I||(e.useCompressionStream=!0)}e.encrypted&&!e.zipCrypto&&await f(),a=new xn(e,s),i=new zn(de(s)),await t.pipeThrough(a).pipeThrough(i).pipeTo(n,{preventClose:!0,preventAbort:!0});const{crc32:r,inputSize:o,outputSize:u}=a;return{crc32:r,inputSize:o,outputSize:u}}catch(e){if(a){const t=i?i.outputSize:0;if(o.outputSize=t,Rn(e))try{e.outputSize=t}catch{}}throw e}finally{r()}function f(){return u||(u=(async()=>{if(Dn)try{return await void 0,!0}catch{}return!1})()),u}})(e,t)}))(e,i)}}class An extends x{constructor({onstart:e,onprogress:t,size:n,onend:r}){let o=0;super({async start(){e&&await Fn(e,n)},async transform(e,r){o+=e.length,t&&await Fn(t,o,n),r.enqueue(e)},async flush(){r&&await Fn(r,o)}})}}async function Fn(e,...t){try{await e(...t)}catch{}}let In=[];const Un=[];let Tn,En,Wn=0;function Mn(){!Tn&&Un.length&&o.isFinite(En)&&En>=0&&(Tn=I(Ln,En))}function On(){Tn&&(U(Tn),Tn=null)}function Ln(){if(Tn=null,Un.length){const[{resolve:e,stream:t,M:n}]=Un.splice(0,1);e(new Cn({},t,Pn(n),Hn)),Mn()}}function Pn(e){return n.assign({},e,{useWebWorkers:!1,workerURI:j,createWorker:j})}function Hn(){On(),Mn()}function Bn(e){const{V:t}=e;t&&(U(t),e.V=null)}const Vn="\0\u263a\u263b\u2665\u2666\u2663\u2660\u2022\u25d8\u25cb\u25d9\u2642\u2640\u266a\u266b\u263c\u25ba\u25c4\u2195\u203c\xb6\xa7\u25ac\u21a8\u2191\u2193\u2192\u2190\u221f\u2194\u25b2\u25bc !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xc7\xfc\xe9\xe2\xe4\xe0\xe5\xe7\xea\xeb\xe8\xef\xee\xec\xc4\xc5\xc9\xe6\xc6\xf4\xf6\xf2\xfb\xf9\xff\xd6\xdc\xa2\xa3\xa5\u20a7\u0192\xe1\xed\xf3\xfa\xf1\xd1\xaa\xba\xbf\u2310\xac\xbd\xbc\xa1\xab\xbb\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03b1\xdf\u0393\u03c0\u03a3\u03c3\xb5\u03c4\u03a6\u0398\u03a9\u03b4\u221e\u03c6\u03b5\u2229\u2261\xb1\u2265\u2264\u2320\u2321\xf7\u2248\xb0\u2219\xb7\u221a\u207f\xb2\u25a0\xa0".split("");function Zn(e,t){return Nn(e,t,!0)}function qn(e){if(!e.some(e=>e>127))return!1;try{return new v("utf-8",{fatal:!0}).decode(e),!0}catch{return!1}}function Nn(e,t,n){return t&&"cp437"==t.trim().toLowerCase()?(e=>{let t="";for(let n=0;n<e.length;n++)t+=Vn[e[n]];return t})(e):new v(t,{ignoreBOM:n}).decode(e)}const jn="HTTP error ",Gn="HTTP Range not supported",Kn="HTTP resource changed",Xn="Content-Range",_n="Range",$n="GET",Jn="bytes",Qn=16777216,Yn="writable",er=Symbol();class tr{constructor(){this.size=0}init(){this.initialized=!0}}class nr extends tr{get readable(){return this.createReadable()}createReadable({offset:e=0,size:t,chunkSize:n=de(le())}={}){const r=this;let o=0;return n=pe(n),new z({async pull(s){const i=t===j?n:a.min(n,t-o),c=await Er(r,e+o,i);c.length&&(s.enqueue(c),o+=c.length),(t!==j&&o>=t||!c.length&&i)&&s.close()}})}}class rr extends tr{constructor(){super();const e=this,t=new R({write(t){if(!e.initialized)throw new l("Writer not initialized");return e.writeUint8Array((n=t).byteOffset||n.byteLength!=n.buffer.byteLength?new d(n):n);var n}});n.defineProperty(e,Yn,{get:()=>t})}writeUint8Array(){}}let or,sr;class ar extends nr{constructor(e){super(),n.assign(this,{Z:e,size:e.size}),sr||(sr=(async()=>{try{const e=new y([new d(3)]).slice(1,2).stream().getReader();let t=0,n=await e.read();for(;!n.done;)t+=n.value.length,n=await e.read();or=1==t}catch{or=!1}})())}createReadable(e){const{Z:t,size:n}=this,{offset:r=0,size:o=n-r}=e||{};if(typeof t.stream==K){if(!r&&o>=n)return on(t.stream());if(or)return on(t.slice(r,r+o).stream())}return super.createReadable(e)}async readUint8Array(e,t){const n=this,r=e+t,o=e||r<n.size?n.Z.slice(e,r):n.Z;let s=await o.arrayBuffer();return s.byteLength>t&&(s=s.slice(e,r)),new d(s)}}class ir extends tr{constructor(e){super();const t=this,r=new x;n.defineProperty(t,Yn,{get:()=>r.writable}),t.contentType=e,t.N=sn(r.readable,e),t.N.catch(()=>{})}getData(){return this.N}}class cr extends nr{constructor(e,t){super(),fr(this,e,t)}async init(){await wr(this,zr,vr),super.init()}createReadable(e){const t=this,{useRangeHeader:n,forceRangeRequests:r,size:o}=t;if((n||r)&&o!==j){const{offset:n=0,size:r=o-n}=e||{};if(r>0&&o>n)return((e,t,n)=>{let r,o=t,s=0,i=n;return new z({start:()=>c(),async pull(e){r||await c();const{value:t,done:n}=await r.read();if(n)throw new l(Gn);const o=t.length>s?t.subarray(0,s):t;s-=o.length,i-=o.length,o.length&&e.enqueue(o),s||(await(async()=>{const e=r;r=j,await e.cancel()})(),i||e.close())},cancel:e=>r&&r.cancel(e)});async function c(){const t=a.min(e.maximumRangeSize,i),n=await zr($n,e,gr(e,o,t));if(206!=n.status)throw new l(Gn);const c=dr(n);if(c!==j&&c!=o)throw new l(Gn);yr(e,n),mr(e,n),o+=t,s=t,r=n.body.getReader()}})(t,n,a.min(r,o-n))}return super.createReadable(e)}readUint8Array(e,t){return lr(this,e,t,zr,vr)}}class ur extends nr{constructor(e,t){super(),fr(this,e,t)}async init(){await wr(this,Rr,Sr),super.init()}readUint8Array(e,t){return lr(this,e,t,Rr,Sr)}}function fr(e,t,r){const{preventHeadRequest:o,useRangeHeader:s,forceRangeRequests:a,combineSizeEocd:i,checkResourceChanges:c=!0,maximumRangeSize:u=Qn,fetch:f}=r;delete(r=n.assign({},r)).preventHeadRequest,delete r.useRangeHeader,delete r.forceRangeRequests,delete r.combineSizeEocd,delete r.checkResourceChanges,delete r.maximumRangeSize,delete r.useXHR,delete r.fetch,n.assign(e,{url:t,options:r,preventHeadRequest:o,useRangeHeader:s,forceRangeRequests:a,combineSizeEocd:i,checkResourceChanges:c,maximumRangeSize:u,fetch:f})}async function wr(e,t,n){const{url:r,preventHeadRequest:o,useRangeHeader:s,forceRangeRequests:a,combineSizeEocd:i}=e;if((e=>{const{baseURI:t}=le(),{protocol:n}=new w(e,t);return"http:"==n||"https:"==n})(r)&&(s||a)&&(typeof o==G||o)){const r=await t($n,e,gr(e,i?-65557:void 0)),o=r.headers.get("Accept-Ranges");if(!(a||o&&o.toLowerCase()==Jn))throw new l(Gn);{let o;i&&206==r.status&&(o=new d(await r.arrayBuffer())),mr(e,r);const s=pr(r);s===j?await xr(e,t,n):e.size=s,o&&o.length&&dr(r)===e.size-o.length&&(e.j=o)}}else await xr(e,t,n)}async function lr(e,t,n,r,o){const{useRangeHeader:s,forceRangeRequests:a,j:i,size:c,options:u}=e;if(s||a){if(c>t&&0!==n){if(t+n>c&&(n=c-t),i&&t>=c-i.length){const e=t-(c-i.length);return i.slice(e,e+n)}const o=await r($n,e,gr(e,t,n));if(206!=o.status)throw new l(Gn);const s=dr(o);if(s!==j&&s!=t)throw new l(Gn);yr(e,o),mr(e,o);const a=new d(await o.arrayBuffer());if(a.length!=n)throw new l(Gn);return a}return $}{const{data:r}=e;return r||await o(e,u),e.data.subarray(t,t+n)}}function dr(e){const t=e.headers.get(Xn);if(t){const e=o(t.trim().split(/[\s-]+/)[1]);if(!o.isNaN(e))return e}}function pr(e){const t=e.headers.get(Xn);if(t){const e=t.trim().split(/\s*\/\s*/)[1];if(e&&"*"!=e){const t=o(e);if(!o.isNaN(t))return t}}}function hr({headers:e}){return{G:e.get("Etag")||j,lastModified:e.get("Last-Modified")||j}}function mr(e,t){const{checkResourceChanges:n,K:r}=e;n&&!r&&206==t.status&&(e.K=hr(t))}function yr(e,t){const{checkResourceChanges:r,K:o,size:s}=e;if(r){const e=pr(t);if(e!==j&&s!==j&&e!=s)throw new l(Kn);if(o){const e=hr(t);if(n.entries(o).some(([t,n])=>n!==j&&e[t]!==j&&n!=e[t]))throw new l(Kn)}}}function gr(e,t=0,r=1){return n.assign({},br(e),{[_n]:Jn+"="+(0>t?t:t+"-"+(t+r-1))})}function br({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?n.fromEntries(t):t}async function vr(e){await kr(e,zr)}async function Sr(e){await kr(e,Rr)}async function kr(e,t){const n=await t($n,e,br(e));e.data=new d(await n.arrayBuffer()),e.size=e.data.length}async function xr(e,t,n){if(e.preventHeadRequest)await n(e,e.options);else{const r=await t("HEAD",e,br(e)),s=r.headers.get("Content-Length");s&&!r.headers.get("Content-Encoding")?e.size=o(s):await n(e,e.options)}}async function zr(e,{fetch:t=fetch,options:r,url:o},s){const a=await t(o,n.assign({},r,{method:e,headers:s}));if(200>a.status||a.status>299)throw 416==a.status?new l(Gn):new l(jn+(a.statusText||a.status));return a}function Rr(e,{url:t},r){return new g((o,s)=>{const a=new XMLHttpRequest;if(a.addEventListener("load",()=>{if(200>a.status||a.status>299)s(416==a.status?new l(Gn):new l(jn+(a.statusText||a.status)));else{const e=[];a.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const n=t.trim().split(/\s*:\s*/);n[0]=n[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(n)}),o({status:a.status,arrayBuffer:()=>a.response,headers:new c(e)})}},!1),a.addEventListener("error",e=>s(e.detail?e.detail.error:new l("Network error")),!1),a.open(e,t),r)for(const e of n.entries(r))a.setRequestHeader(e[0],e[1]);a.responseType="arraybuffer",a.send()})}class Dr extends nr{constructor(e,t={}){super(),n.assign(this,{url:e,reader:t.useXHR&&!t.fetch?new ur(e,t):new cr(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(e){return this.reader.createReadable(e)}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class Cr extends nr{constructor(e){super(),this.X=e}async init(){const e=this;e._=0;const t=e.X=await g.all(e.X.map(Tr));e.$=t.map(t=>{const n=e.size;return e.size+=t.size,n}),super.init()}J(e){const{$:t,size:n}=this,r=t[e];return r===j?n:r}async readUint8Array(e,t){const n=this,{X:r}=this;let o,s=0,i=e;for(;r[s]&&i>=r[s].size;)i-=r[s].size,s++;const c=r[s];if(c){const r=c.size;if(i+t>r){const s=r-i;o=ft(await Er(c,i,s),await n.readUint8Array(e+s,t-s))}else o=await Er(c,i,t)}else o=$;return n._=a.max(s,n._),o}}class Ar extends tr{constructor(e,t=4294967295){super();const r=this;let o,s,a;n.assign(r,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const i=new R({async write(t){if(t===er)return void(a&&await u());const{availableSize:n}=r;if(a)t.length<n?await c(t):(await c(t.subarray(0,n)),await u(),t.length>n&&await this.write(t.subarray(n)));else{const{value:n,done:i}=await e.next();if(i&&!n)throw new l("Writer iterator completed too soon");o=n,o.size=0,o.maxSize&&(r.maxSize=o.maxSize),r.availableSize=r.maxSize,await Ur(o),s=n.writable,a=s.getWriter(),await this.write(t)}},async close(){a&&(await a.ready,await f())},async abort(e){a&&await a.abort(e)}});async function c(e){const t=e.length;t&&(await a.ready,await a.write(e),o.size+=t,r.availableSize-=t)}async function u(){await f(),r.diskOffset+=o.size,r.diskNumber++,a=null,r.availableSize=r.maxSize}async function f(){await a.close()}n.defineProperty(r,Yn,{get:()=>i})}async closeDisk(){const e=this.writable.getWriter();try{await e.ready,await e.write(er)}finally{e.releaseLock()}}}class Fr{constructor(e){return t.isArray(e)&&(e=new Cr(e)),(e instanceof z||typeof e.getReader==K)&&(e={readable:on(e)}),e}}class Ir{constructor(e){e.writable===j&&typeof e.next==K&&(e=new Ar(e)),(e instanceof R||typeof e.getWriter==K)&&(e={writable:an(e)});try{e.size=e.size===j?0:e.size}catch{throw new l("Invalid writer (size must be writable)")}return e}}async function Ur(e,t){if(!e.init||e.initialized)return g.resolve();await e.init(t)}async function Tr(e){return e=new Fr(e),await Ur(e),e.size!==j&&e.readUint8Array||(e=new ar(await sn(e.readable)),await Ur(e)),e}function Er(e,t,n){return e.readUint8Array(t,n)}function Wr(e,t,n){if(!e.some(e=>e.reason==t)){const r={reason:t};n!==j&&(r.filename=n),e.push(r)}}const Mr="filename",Or="rawFilename",Lr="comment",Pr="rawComment",Hr="uncompressedSize",Br="compressedSize",Vr="offset",Zr="diskNumberStart",qr="lastModDate",Nr="rawLastModDate",jr="lastAccessDate",Gr="rawLastAccessDate",Kr="creationDate",Xr="rawCreationDate",_r=[Mr,Or,Hr,Br,qr,Nr,Lr,Pr,jr,Gr,Kr,Xr,Vr,Zr,"internalFileAttributes","externalFileAttributes","msdosAttributesRaw","msdosAttributes","msDosCompatible","zip64","encrypted","version","versionMadeBy","zipCrypto","directory","executable","symlink","compressionMethod","signature","crc32","extraField","extraFieldUnix","extraFieldInfoZip","extraFieldUnixType1","extraFieldPkwareUnix","uid","gid","unixMode","unixExternalUpper","setuid","setgid","sticky","bitFlag","rawBitFlag","filenameLength","extraFieldLength","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp","extraFieldUSDZ"];class $r{constructor(e){_r.forEach(t=>this[t]=e[t])}}const Jr="File format is not recognized",Qr="Encryption method not supported",Yr="Split zip file",eo="malformed extra field",to="wrapped entries count",no="appended data",ro="prepended data",oo="mismatched zip64 end of central directory record",so=/^[a-zA-Z]:/,ao=/(^|[\\/])\.\.([\\/]|$)/,io="utf-8",co="cp437",uo=[[Hr,T],[Br,T],[Vr,T],[Zr,E]],fo={[E]:{Y:qo,bytes:4},[T]:{Y:No,bytes:8}},wo=s(o.MAX_SAFE_INTEGER);class lo{constructor(e,t){n.assign(this,{reader:e,options:t})}async getData(e,t,r,s={}){const i=this,c=le(),{reader:u,index:f,offset:p,diskNumberStart:h,extraFieldAES:m,extraFieldZip64:y,compressionMethod:b,bitFlag:v,rawBitFlag:S,crc32:k,rawLastModDate:x,uncompressedSize:z,compressedSize:D}=i,{dataDescriptor:C}=v,A=t.localDirectory={},F=t.warnings=[],U=Ro(u,h)+p,T=await Er(u,U,30),E=wt(T);let M=Lo(i,s,"password"),L=Lo(i,s,"rawPassword");const P=(e=>{if(e!==j&&typeof e!=_&&"compressed"!==e)throw new l("Invalid passThrough option (must be a boolean or 'compressed')");return e})(Lo(i,s,"passThrough")),H=!!P,B=!0===P;if(((e,t)=>{if(e&&typeof e!=X||t&&!(t instanceof d))throw new l("Invalid password (password must be a string, rawPassword must be a Uint8Array)")})(M,L),M=M&&M.length&&M,L=L&&L.length&&L,m&&99!=m.originalCompressionMethod)throw new l(_e);if(30>T.length||67324752!=qo(E,0))throw new l("Local file header not found");yo(A,E,4);const{extraFieldLength:V,filenameLength:Z}=A,q=A.dataOffset=U+30+Z+V,N=Lo(i,s,"checkLocalDirectory"),G=Ao(s,i.options),J=((e,t)=>e===j?t!=ee:!!e)(N,G),Y=Lo(i,s,"checkLocalFilename"),te=((e,t)=>e===j?t==Q:!!e)(Y===j?N:Y,G);let ne=$;if(te&&(Z||V)){const e=await Er(u,U+30,Z+V);ne=e.subarray(0,Z),A.rawExtraField=e.subarray(Z)}else A.rawExtraField=V?await Er(u,U+30+Z,V):$;te&&(A.rawFilename=ne),go(i,A,E,4,!0)&&Wr(F,eo),((e,t,n,r,o)=>{const{rawFilename:s}=e,a=!o,i=e.ee&&!(8192&~t.rawBitFlag);!r||i||n.length==s.length&&!n.some((e,t)=>e!=s[t])||Mo(a,o,"mismatched local file header (filename)"),(2057&t.rawBitFlag)!=(2057&e.rawBitFlag)&&Mo(a,o,"mismatched local file header (general purpose bit flag)"),t.compressionMethod!=e.compressionMethod&&Mo(a,o,"mismatched local file header (compression method)"),t.bitFlag.dataDescriptor||i||!(t.crc32||t.compressedSize||t.uncompressedSize)||t.crc32==e.crc32&&t.compressedSize==e.compressedSize&&t.uncompressedSize==e.uncompressedSize||Mo(a,o,"mismatched local file header (crc32 or sizes)")})(i,A,ne,te,J?j:F);const{lastAccessDate:re,creationDate:oe,uid:se,gid:ae}=A;re&&(t.lastAccessDate=re),oe&&(t.creationDate=oe),se!==j&&t.uid===j&&(t.uid=se),ae!==j&&t.gid===j&&(t.gid=ae);const ie=Lo(i,s,"checkPasswordOnly"),ce=i.encrypted&&A.encrypted&&(!B||ie),ue=ce&&!m;if(B||(t.zipCrypto=ue),ce&&!(64&~A.rawBitFlag))throw new l(Qr);const fe=H?j:(e=>$e.get(e))(b);if(0!=b&&8!=b&&9!=b&&!fe&&!H)throw new l(_e);if(ce){if(!ue&&(1>m.strength||m.strength>3))throw new l(Qr);if(!M&&!L)throw new l("File contains encrypted entry")}if(q+D>u.size)throw new l("Entry data out of bounds");const we=D,de=(e=>{if(e&&(typeof e.addEventListener!=K||typeof e.aborted!=_))throw new l("Invalid signal (must be an AbortSignal instance)");return e||j})(Lo(i,s,"signal"));(e=>{if(e&&e.aborted)throw e.reason===j?new DOMException("The operation was aborted","AbortError"):e.reason})(de);let pe=Lo(i,s,"checkOverlappingEntry");const he=Lo(i,s,"checkOverlappingEntryOnly");he&&(pe=!0);const{onstart:me,onprogress:ye,onend:ge}=s,be=0!=b&&!H,ve=H?D-((e,t,n)=>e?t?12:16+4*n:0)(ce,ue,m&&m.strength):z,Se=9==b;let ke=Lo(i,s,"useCompressionStream");Se&&(ke=!1);const xe=Lo(i,s,"checkCrc32"),ze=(xe===j?Lo(i,s,"checkSignature"):xe)&&!H&&(!ce||ue||m&&1==m.vendorVersion),Re={options:{codecType:kn,password:M,rawPassword:L,zipCrypto:ue,encryptionStrength:m&&m.strength,checkCrc32:ze,checkAuthenticationCode:Lo(i,s,"checkAuthenticationCode"),passwordVerification:ue&&(C?x>>>8&W:k>>>24&W),outputSize:ve,crc32:k,compressed:be,encrypted:ce,useWebWorkers:Lo(i,s,"useWebWorkers"),useCompressionStream:ke,transferStreams:Lo(i,s,"transferStreams"),deflate64:Se,format:fe?fe.format:j,codecURI:fe?fe.codecURI:j,compressionMethod:b,rawBitFlag:S,checkPasswordOnly:ie},config:c,U:{signal:de,size:we,onstart:me,onprogress:ye,onend:ge}};let De,Ce,Ae;pe&&await(async({reader:e,te:t,index:n,offset:r,crc32:o,compressedSize:s,uncompressedSize:a,dataOffset:i,dataDescriptor:c,extraFieldZip64:u,ne:f})=>{let w=0;if(c&&(w=u?20:12),w){const n=await Er(e,i+s,w+4),r=wt(n);let c=n.length==w+4&&qo(r,0)==O;if(c){const e=zo(r,4,u);(t.encrypted&&!t.zipCrypto||e.crc32==o)&&e.compressedSize==s&&e.uncompressedSize==a?w+=4:c=!1}if(n.length>=w){const e=zo(r,c?4:0,u);e.signature=c,t.localDirectory.dataDescriptor=e}}const d={start:r,end:i+s+w,te:t},{re:p,oe:h,se:m}=f;if(!p.has(n)){const e=((e,t)=>{let n=0,r=e.length;for(;r>n;){const o=n+r>>>1;e[o].start<t.start?n=o+1:r=o}const o=e[n-1],s=e[n];return o&&xo(t,o)?o:s&&xo(t,s)?s:void 0})(h,d)||m.find(e=>xo(d,e));if(e){const t=new l("Overlapping entry found");throw t.overlappingEntry=e.te,t}p.add(n),m.push(d),m.length*m.length>h.length&&(m.sort((e,t)=>e.start-t.start),f.oe=((e,t)=>{const n=[];let r=0,o=0;for(;r<e.length||o<t.length;)o==t.length||r<e.length&&e[r].start<t[o].start?n.push(e[r++]):n.push(t[o++]);return n})(h,m),m.length=0)}})({reader:u,te:t,index:f,offset:U,crc32:k,compressedSize:D,uncompressedSize:z,dataOffset:q,dataDescriptor:C||A.bitFlag.dataDescriptor,extraFieldZip64:y||A.extraFieldZip64,ne:r});try{if(!he){ie&&(e=new R),e=new Ir(e),await Ur(e,((e,t,n)=>a.min(e,n?1032*t:t))(ve,D,be)),({writable:De}=e);const t=on(u.createReadable({offset:q,size:we})),{outputSize:r}=await async function(e,t){const{options:n,config:r}=t,{transferStreams:s,useWebWorkers:a,useCompressionStream:i,compressed:c,checkCrc32:u,computeCrc32:f,encrypted:d,format:p,codecURI:h}=n,{workerURI:m,createWorker:y,maxWorkers:b}=r;p&&(h&&(n.codecURI=((e,t)=>{try{return new w(e,t).toString()}catch{return e}})(h,r.baseURI)),await(async(e,t)=>{!Je.has(e)&&t&&((e,t)=>{const{CompressionStream:n,DecompressionStream:r}=t;if(typeof n!=K&&typeof r!=K)throw new l("Invalid codec module");Je.set(e,{CompressionStream:n,DecompressionStream:r})})(e,await(import(t)))})(p,n.codecURI)),t.transferStreams=!p&&(s||s===j&&r.transferStreams);const v=!(c||u||f||d),S=p===j||!!n.codecURI;return t.useWebWorkers=!v&&S&&(a||a===j&&r.useWebWorkers),t.workerURI=t.useWebWorkers&&m?m:j,t.createWorker=t.useWebWorkers&&y?y:j,n.useCompressionStream=i||i===j&&r.useCompressionStream,(await(async()=>{const n=In.find(e=>!e.T);if(n)return Bn(n),new Cn(n,e,t,k);if(In.length<b){const n={ae:Wn};return Wn++,In.push(n),new Cn(n,e,t,k)}return new g(n=>{Un.push({resolve:n,stream:e,M:t}),En=r.workerStarvationTimeout,Mn()})})()).run();function k(e){if(On(),e.B)return e.B=!1,(()=>{const e=Un.splice(0).map(({resolve:e,stream:t,M:n})=>new g(r=>{e(new Cn({},t,Pn(n),()=>{Hn(),r()}))}));return On(),g.all(e)})();if(Un.length){const[{resolve:t,stream:n,M:r}]=Un.splice(0,1);t(new Cn(e,n,r,k)),Mn()}else e.O?(Bn(e),((e,t)=>{const{config:n}=t,{terminateWorkerTimeout:r}=n;o.isFinite(r)&&r>=0&&(e.V=I(async()=>{In=In.filter(t=>t!=e);try{await e.terminate()}catch{}},r))})(e,t)):In=In.filter(t=>t!=e)}}({readable:t,writable:De},Re);if(r!=ve)throw n.assign(new l(cn),{outputSize:r});e.size+=r}}catch(t){const{outputSize:n}=Re;if(n!==j?e.size+=n:Rn(t)&&t.outputSize!==j&&(e.size+=t.outputSize),!ie||!Rn(t)||t.message!=Ft)throw Ce=t,Ae=!0,t}finally{const t=!(e=>!(!e||!e.getData))(e)&&Lo(i,s,"preventClose");if(!t&&De&&!De.locked){const e=De.getWriter();if(Ae)try{await e.abort(Ce)}catch{}else await e.close()}}return ie||he?j:e.getData?e.getData():De}}function po(e){const t=a.min(e.byteLength,1024)-3;for(let n=0;t>n;n++)if(134630224==qo(e,n))return!0;return!1}function ho(e,t,n){let r=0;for(;n+46<=t.length&&qo(e,n)==L;)n+=46+Zo(e,n+28)+Zo(e,n+30)+Zo(e,n+32),r++;return r%65536?0:r}function mo(e){if(e.length>=6){const t=wt(e);if(84233040==qo(t,0)){const n=Zo(t,4);if(6+n<=e.length)return new d(e.subarray(6,6+n))}}}function yo(e,t,r){const o=e.rawBitFlag=Zo(t,r+2),s=!(1&~o),a=qo(t,r+6);n.assign(e,{encrypted:s,version:Zo(t,r),bitFlag:{level:(6&o)>>1,dataDescriptor:!(8&~o),languageEncodingFlag:!(2048&~o)},rawLastModDate:a,lastModDate:Ho(a),filenameLength:Zo(t,r+22),extraFieldLength:Zo(t,r+24)})}function go(e,t,r,o,s){const{rawExtraField:a}=t,u=t.extraField=new c,f=wt(a);let w=0,d=!1;try{for(;w<a.length;){const e=Zo(f,w),t=Zo(f,w+2);u.set(e,{type:e,data:a.slice(w+4,w+4+t)}),w+=4+t}}catch{d=!0}w>a.length&&(d=!0);const p=Zo(r,o+4);n.assign(t,{signature:qo(r,o+10),crc32:qo(r,o+10),compressedSize:qo(r,o+14),uncompressedSize:qo(r,o+18)});const h=u.get(1);h&&(((e,t)=>{t.zip64=!0;const n=wt(e.data),r=uo.filter(([e,n])=>t[e]==n),o=r.reduce((e,[,t])=>e+fo[t].bytes,0);if(e.data.length<o)throw new l("Zip64 extra field not found");for(let o=0,s=0;o<r.length;o++){const[a,i]=r[o],c=fo[i];t[a]=e[a]=c.Y(n,s),s+=c.bytes}})(h,t),t.extraFieldZip64=h);const m=u.get(28789);m&&(bo(m,Mr,Or,t,e),t.extraFieldUnicodePath=m);const y=u.get(25461);y&&(bo(y,Lr,Pr,t,e),t.extraFieldUnicodeComment=y);const g=u.get(39169);g&&g.data.length>=7?(((e,t,r)=>{const o=wt(e.data),s=Vo(o,4);n.assign(e,{vendorVersion:Vo(o,0),vendorId:Vo(o,2),strength:s,originalCompressionMethod:r,compressionMethod:Zo(o,5)}),t.compressionMethod=e.compressionMethod,1!=e.vendorVersion&&(t.crc32=j)})(g,t,p),t.extraFieldAES=g):t.compressionMethod=p;const b=u.get(13);b&&(vo(b,t),t.extraFieldPkwareUnix=b);const v=u.get(22613);v&&(vo(v,t),t.extraFieldUnixType1=v);const S=u.get(10);S&&(((e,t)=>{const r=wt(e.data);let o,s=4;try{for(;s<e.data.length&&!o;){const t=Zo(r,s),n=Zo(r,s+2);1==t&&(o=e.data.slice(s+4,s+4+n)),s+=4+n}}catch{}if(o&&24==o.length){const r=wt(o),s=r.getBigUint64(0,!0),a=r.getBigUint64(8,!0),i=r.getBigUint64(16,!0);n.assign(e,{rawLastModDate:s,rawLastAccessDate:a,rawCreationDate:i});const c={lastModDate:Bo(s),lastAccessDate:Bo(a),creationDate:Bo(i)};n.assign(e,c),n.assign(t,c,{rawLastAccessDate:a,rawCreationDate:i})}})(S,t),t.extraFieldNTFS=S);const k=u.get(30805);let x;if(k&&(x=So(k,t,!1),t.extraFieldUnix=k),!x){const e=u.get(30837);e&&(So(e,t,!0),t.extraFieldInfoZip=e)}const z=u.get(21589);z&&(((e,t,n)=>{if(!e.data.length)return;const r=wt(e.data),o=Vo(r,0),s=[],a=[];n?(1&~o||(s.push(qr),a.push(Nr)),2&~o||(s.push(jr),a.push(Gr)),4&~o||(s.push(Kr),a.push(Xr))):5>e.data.length||(s.push(qr),a.push(Nr));let c=1;s.forEach((n,o)=>{if(e.data.length>=c+4){const s=qo(r,c);t[n]=e[n]=new i(1e3*(0|s));const u=a[o];e[u]=s}c+=4})})(z,t,s),t.extraFieldExtendedTimestamp=z);const R=u.get(6534);return R&&(t.extraFieldUSDZ=R),d}function bo(e,t,r,o,s){if(5>e.data.length)return void(e.valid=!1);const a=wt(e.data),i=new ct;i.append(s[r]);const c=wt(new d(4));c.setUint32(0,i.get(),!0);const u=qo(a,1),f=Vo(a,0);n.assign(e,{version:f,[t]:Zn(e.data.subarray(5)),valid:1==f&&!s.bitFlag.languageEncodingFlag&&u==qo(c,0)}),e.valid&&(o[t]=e[t],o[t+"UTF8"]=!0)}function vo(e,t){if(8>e.data.length)return;const r=wt(e.data),o={lastAccessDate:new i(1e3*(0|qo(r,0))),lastModDate:new i(1e3*(0|qo(r,4)))};12>e.data.length||(o.uid=Zo(r,8),o.gid=Zo(r,10)),n.assign(e,o),n.assign(t,o)}function So(e,t,r){try{const o=wt(e.data);let s,a;if(r){let t=0;const r=Vo(o,t++),i=Vo(o,t++);s=ko(e.data.subarray(t,t+i)),t+=i;const c=Vo(o,t++);a=ko(e.data.subarray(t,t+c)),n.assign(e,{version:r,uid:s,gid:a})}else 4>e.data.length||(s=Zo(o,0),a=Zo(o,2),n.assign(e,{uid:s,gid:a}));return s!==j&&(t.uid=s),a!==j&&(t.gid=a),s!==j||a!==j}catch{}}function ko(e){const t=new d(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function xo(e,t){return e.start<t.end&&t.start<e.end}function zo(e,t,n){const r=qo(e,t);let o,s;return n?(o=No(e,t+4),s=No(e,t+12)):(o=qo(e,t+4),s=qo(e,t+8)),{crc32:r,compressedSize:o,uncompressedSize:s}}function Ro(e,t){return e.J?e.J(t):0}async function Do(e){return qo(wt(await Er(e,0,4)))}function Co(e){return e===Q||e===Y||e===ee}function Ao(e,t){return Fo(e,Fo(t,Y))}function Fo(e,t){const n=e.strictness;if(n!==j){if(!Co(n))throw new l("Invalid strictness (must be 'strict', 'balanced' or 'tolerant')");return n}const r=e.checkAmbiguity;return r===j?t:r?Q:t==ee?ee:Y}function Io(e,t){if(t==ee)return!1;const n=e.split("/");return n.length>1&&""===n[n.length-1]&&n.pop(),!!(ao.test(e)||e.startsWith("/")||e.startsWith("\\")||so.test(e))||t==Q&&(n.includes(".")||n.includes("")||e.includes("\0"))}async function*Uo(e,t){const n=e.size-t,r=await Er(e,n,t),o=wt(r);for(let e=r.length-B;e>=0;e--)101010256==qo(o,e)&&(yield[o,n,r,e,n+e])}function To(e,t,n){return{offset:n,buffer:new d(e.subarray(t,t+B)).buffer}}async function Eo(e,t,n,r,o,s,a){const i=Zo(t,r+10),c=qo(t,r+12),u=qo(t,r+16);if(i==E||c==T||u==T)return await Wo(e,t,n,o-V,s,a)==H?2:0;if(!i&&!c)return 1;const f=Zo(t,r+6);for(const r of[o-c,Ro(e,f)+u])if(await Wo(e,t,n,r,s,a)==L)return 2;return 0}async function Wo(e,t,n,r,o,s){return 0>r||r+4>o?j:n>r?s.count>0?(s.count--,qo(wt(await Er(e,r,4)),0)):j:qo(t,r-n)}function Mo(e,t,n){e?Oo(n):Wr(t,n)}function Oo(e){const t=new l("Ambiguous archive");throw t.reason=e,t}function Lo(e,t,n){return t[n]===j?e.options[n]:t[n]}function Po(e,t,n){return te(Lo(e,t,n))}function Ho(e){const t=(4294901760&e)>>16,n=e&E,r=new i(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&n)>>11,(2016&n)>>5,2*(31&n),0);return N>r?N:r}function Bo(e){return new i(o(e/s(1e4)-s(116444736e5)))}function Vo(e,t){return e.getUint8(t)}function Zo(e,t){return e.getUint16(t,!0)}function qo(e,t){return e.getUint32(t,!0)}function No(e,t){const n=e.getBigUint64(t,!0);if(n>wo)throw new l("64-bit value exceeds Number.MAX_SAFE_INTEGER");return o(n)}(e=>{const t=he(ye(e));n.assign(oe,t),n.assign(we,t)})({workerURI:null,wasmURI:null,DecompressionStreamFallback:class extends Xe{constructor(e){(e=>{if("deflate-raw"!=e)throw new TypeError("Unsupported compression format: "+e)})(e),super(new Ge)}}}),e.BlobReader=ar,e.BlobWriter=ir,e.Data64URIWriter=class extends rr{constructor(e){super(),n.assign(this,{contentType:e,data:"data:"+(e||"")+";base64,",ie:""})}writeUint8Array(e){const t=this;let n,o=t.ie;const s=t.ie.length;for(t.ie="",n=0;n<3*a.floor((s+e.length)/3)-s;n++)o+=r.fromCharCode(e[n]);for(;n<e.length;n++)t.ie+=r.fromCharCode(e[n]);o.length>2?t.data+=k(o):t.ie=o+t.ie}getData(){return this.data+k(this.ie)}},e.HttpRangeReader=class extends Dr{constructor(e,t={}){super(e,n.assign({},t,{useRangeHeader:!0}))}},e.TextWriter=class extends ir{constructor(e){super(),n.assign(this,{encoding:e,ce:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,ce:t}=this,n=await super.getData();return n.text&&t?n.text():((e,t)=>Nn(e,t,!1))(new d(await n.arrayBuffer()),e)}},e.ZipReader=class{constructor(e,t={}){n.assign(this,{reader:new Fr(e),options:t,ne:{re:new u,oe:[],se:[]}})}async*getEntriesGenerator(e={}){const t=this;let{reader:r}=t;if(await Ur(r),r.size!==j&&r.readUint8Array||(r=new ar(await sn(r.readable)),await Ur(r)),r.size<B)throw new l(Jr);const s=t.warnings=[],i=Ao(e,t.options),c=i==Q,f=i!=ee,w=((e,t)=>{if(e!==j){const t=ne(e);if("number"!=typeof t||o.isNaN(t)||0>t)throw new l("Invalid maxAppendedDataSize (must be a number greater than or equal to 0)");return t}return t==Q?0:t==ee?1/0:E})(Lo(t,e,"maxAppendedDataSize"),i),p=((e,t)=>{if(e===j)return t;if(!Co(e))throw new l("Invalid filenameValidation (must be 'strict', 'balanced' or 'tolerant')");return e})(Lo(t,e,"filenameValidation"),i),h=Lo(t,e,"normalizeFilename"),{ue:m,fe:y}=await(async(e,t,n)=>{const{size:r}=e,o=a.min(r,65557),s={count:64};let i,c,u=0;for await(const[n,a,f,w,l]of Uo(e,o)){const o=Zo(n,w+20);if(l+B+o==r){const o=await Eo(e,n,a,w,l,r,s);if(2==o){if(i||(i=To(f,w,l)),u++,!t||u>1)break}else 1!=o||c||(c=To(f,w,l))}}return i||(i=c),i||(i=await(async(e,t,n)=>{const{size:r}=e,o=a.min(r,t==1/0?r:65557+t);let s,i;for await(const[t,a,c,u,f]of Uo(e,o)){const o=To(c,u,f);s||(s=o);const w=await Eo(e,t,a,u,f,r,n);if(2==w)return o;1!=w||i||(i=o)}return i||s})(e,n,s)),{ue:i,fe:u}})(r,f,w);if(!m)throw await(async e=>await Do(e)==M)(r)?new l(Yr):new l("End of central directory not found");f&&y>1&&Oo("multiple end of central directory records");const g=wt(m);let b=qo(g,12),v=qo(g,16);const S=m.offset,k=Zo(g,20),z=S+B+k,R=r.size-z;R>w&&Oo(no),R>0&&Wr(s,no);let D=Zo(g,4);const C=r._||0;let A,F,I,U,O,N=Zo(g,6),G=Zo(g,10),K=0,X=Z;const _=v==T||b==T||G==E||N==E;if(v!=T&&N!=E&&(v+=Ro(r,N)),_){const e=m.offset<V?$:await Er(r,m.offset-V,V),t=wt(e);if(e.length==V&&qo(t,0)==H){v=Ro(r,qo(t,4))+No(t,8);let e=await Er(r,v,Z),o=wt(e);const i=m.offset-V-Z;if((e.length<Z||qo(o,0)!=P)&&v!=i&&i>=0){const t=v;v=i,v>t&&(K=v-t),e=await Er(r,v,Z),o=wt(e)}if(e.length<Z||qo(o,0)!=P)throw new l("End of Zip64 central directory locator not found");if(I=!0,U=No(o,4)>44,U){const e=a.min(No(o,4)-44,r.size-v-Z);e>0&&(X+=e,O=(e=>{const t={rawExtensibleData:e};if(e.length>=28){const r=wt(e),o=Zo(r,26);n.assign(t,{compressionMethod:Zo(r,0),compressedSize:No(r,2),uncompressedSize:No(r,10),encryptionAlgorithm:Zo(r,18),bitLength:Zo(r,20),flags:Zo(r,22),hashAlgorithm:Zo(r,24),hashData:e.subarray(28,28+o)})}return t})(await Er(r,v+Z,e)))}D==E?D=qo(o,16):D!=qo(o,16)&&Mo(c,s,oo),N==E?N=qo(o,20):N!=qo(o,20)&&Mo(c,s,oo),G==E?G=No(o,32):G!=No(o,32)&&Mo(c,s,oo),b==T?b=No(o,40):b!=No(o,40)&&Mo(c,s,oo),v=Ro(r,N)+No(o,48)+K}}let J=b;const Y=m.offset-(I?X+V:0);if(v<r.size||(K=r.size-v-b-B,v=r.size-b-B),C!=D)throw new l(Yr);if(0>v)throw new l(Jr);let te=0,re=await Er(r,v,b),oe=wt(re);if(b){if(4>re.length)throw new l(Jr);const e=Y-b;if(v!=e&&N==D){const t=qo(oe,te)==L||!(!O||!O.compressedSize)||po(oe);let n=!t;if(n||0>e||e+4>r.size||(n=qo(wt(await Er(r,e,4)),0)==L),n){const n=v;v=e,v>n&&(K+=v-n,A=t),re=await Er(r,v,b),oe=wt(re)}}}const se=Y-v;if(b==se||0>se||N!=D||(b=se,re=await Er(r,v,b),oe=wt(re)),0>v||v>=r.size)throw new l(Jr);t.directoryOffset=v,t.directoryLength=J;const ae=Po(t,e,"decryptCentralDirectory");let ie,ce;if(ae&&G&&re.length>=4&&qo(oe,0)!=L&&(U||po(oe))){const e=((e,t,n)=>{const r=e&&e.compressedSize?e.compressedSize:t;return r>0&&n>=r?r:n})(O,J,re.length);ce=re.subarray(e),re=await ae(re.subarray(0,e),O),oe=wt(re),J=re.length,ie=!0}!O||ie||re.length>=4&&qo(oe,0)!=L||Wr(s,"unknown zip64 extensible data"),F=v;const ue=Lo(t,e,"filenameEncoding"),fe=Lo(t,e,"commentEncoding"),we=new u;let le,de=-1;const pe=!c&&!I;!G&&pe&&(G=ho(oe,re,te),G&&Wr(s,to));for(let o=0;G>o;o++){const i=new lo(r,t.options);if(te+46>re.length||qo(oe,te)!=L){if(0==o&&!ie&&(U||po(oe)))throw new l("Encrypted central directory is not supported");throw new l("Central directory header not found")}yo(i,oe,te+6);const c=!!i.bitFlag.languageEncodingFlag,u=te+46,f=u+i.filenameLength+i.extraFieldLength,w=Zo(oe,te+4),m=!(w>>8),y=w>>8==3,g=Zo(oe,te+32),b=f+g,v=new d(re.subarray(u,b)),S=v.subarray(0,i.filenameLength),k=v.subarray(i.filenameLength+i.extraFieldLength),z=c||!ue&&qn(S),R=c||!fe&&qn(k),D=qo(oe,te+38),C=D&W,A={readOnly:!!(1&C),hidden:!!(2&C),system:!!(4&C),directory:!!(16&C),archive:!!(32&C)},I=qo(oe,te+42),T=Po(t,e,"decodeText")||Zn,M=z?io:ue||co,O=R?io:fe||co;let P=T(S,M,"filename");if(P===j&&(P=Zn(S,M)),h){const e=h(P);e!==j&&(P=e)}if(Io(P,p)){const e=new l("Unsafe filename");throw e.filename=P,e}let H=T(k,O,"comment");H===j&&(H=Zn(k,O)),n.assign(i,{index:o,ee:ie,versionMadeBy:w,msDosCompatible:m,zip64:!1,compressedSize:0,uncompressedSize:0,we:g,offset:I,diskNumberStart:Zo(oe,te+34),internalFileAttributes:Zo(oe,te+36),externalFileAttributes:D,msdosAttributesRaw:C,msdosAttributes:A,rawFilename:S,filenameUTF8:z,commentUTF8:R,rawExtraField:v.subarray(i.filenameLength,i.filenameLength+i.extraFieldLength),rawComment:k,filename:P,comment:H}),go(i,i,oe,te+6)&&Wr(s,eo,P),i.offset+=K;const B=Ro(r,i.diskNumberStart)+i.offset;F=a.min(B,F),de>B&&Wr(s,"unsorted central directory",P),de=B,(i.version&W)>63&&Wr(s,"unknown version needed to extract",P),32&~i.rawBitFlag||Wr(s,"compressed patched data",P),we.has(i.filename)&&(le=!0),we.add(i.filename);const V=i.externalFileAttributes>>16&E;i.unixMode===j&&16877&V&&(i.unixMode=V);const Z=!!(2048&i.unixMode),N=!!(1024&i.unixMode),X=!!(512&i.unixMode),_=40960==((i.unixMode===j?V:i.unixMode)&q),$=!_&&(i.unixMode!==j?!!(73&i.unixMode):y&&!!(73&V)),J=i.unixMode!==j&&16384==(i.unixMode&q),Q=16384==(V&q);n.assign(i,{setuid:Z,setgid:N,sticky:X,symlink:_,unixExternalUpper:V,executable:$,directory:J||Q||m&&A.directory||i.filename.endsWith("/"),zipCrypto:i.encrypted&&!i.extraFieldAES});const Y=new $r(i);if(Y.getData=(e,n)=>i.getData(e,Y,t.ne,n),Y.arrayBuffer=async e=>{const r=new x,o=sn(r.readable).then(e=>e.arrayBuffer());return o.catch(()=>{}),await i.getData(r,Y,t.ne,n.assign({},e,{preventClose:!1})),o},te=b,o==G-1&&pe){const e=ho(oe,re,te);e&&(G+=e,Wr(s,to))}const{onprogress:ee}=e;if(ee)try{await ee(o+1,G,new $r(i))}catch{}yield Y}let he=te,me=mo(re.subarray(te))||(ie?mo(ce):j);if(!me&&!ie){const e=v+te,t=a.min(Y-e,65541);6>t||(me=mo(await Er(r,e,t)))}me&&(t.digitalSignature=me,he=te+6+me.length),(te!=J&&he!=J||!ie&&te!=b&&he!=b)&&Mo(c,s,"trailing central directory data"),le&&Mo(c,s,"duplicate filename");const ye=Lo(t,e,"extractPrependedData"),ge=Lo(t,e,"extractAppendedData"),be=(c||ye)&&G&&4==F&&await(async e=>{const t=await Do(e);return t==M||808471376==t})(r)?4:0;return c&&(K||G&&F>be)&&Oo(ro),(K||G&&F>4)&&Wr(s,ro),A&&Wr(s,"prepended central directory"),ye&&(t.prependedData=F>be?await Er(r,be,F-be):$),t.comment=k?await Er(r,S+B,k):$,ge&&(t.appendedData=z<r.size?await Er(r,z,r.size-z):$),!0}async getEntries(e={}){const t=[];for await(const n of this.getEntriesGenerator(e))t.push(n);return t}async close(){const{reader:e}=this;e.readUint8Array||!e.readable||e.readable.locked||await e.readable.cancel()}[J](){return this.close()}},e.configure=e=>{n.assign(we,he(ye(e)))},e.inflateRaw=(e,t)=>Ne(e,{i:2},t&&t.le,t&&t.m)});
1
+ ((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:n,String:r,Number:o,BigInt:s,Math:a,Date:i,Map:c,Set:u,Response:f,URL:w,Error:l,Uint8Array:d,Uint16Array:p,Uint32Array:h,DataView:m,Blob:y,Promise:g,TextEncoder:b,TextDecoder:v,crypto:S,btoa:k,TransformStream:x,ReadableStream:z,WritableStream:R,CompressionStream:D,DecompressionStream:C,navigator:A,Worker:F,setTimeout:I,clearTimeout:U}="undefined"!=typeof globalThis?globalThis:self,T=4294967295,E=65535,W=255,M=134695760,O=M,L=33639248,P=101075792,H=117853008,B=22,V=20,Z=56,q=61440,N=new i(1980,0,1),j=void 0,G="undefined",K="function",X="string",_="boolean",$=new d,J=Symbol.asyncDispose||Symbol(),Q="strict",Y="balanced",ee="tolerant";function te(e){if(e&&typeof e!=K)throw new l("Invalid option (must be a function)");return e}function ne(e){return typeof e==X&&e.trim()?o(e):e}let re=2;try{typeof A!=G&&A.hardwareConcurrency&&(re=A.hardwareConcurrency)}catch{}const oe={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:re,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,workerStartupTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof D!=G&&D,DecompressionStream:typeof C!=G&&C},se="maxWorkers",ae="baseURI",ie=["wasmURI","workerURI"],ce=["chunkSize",se,"terminateWorkerTimeout","workerStarvationTimeout","workerStartupTimeout"],ue=["createWorker","CompressionStream","DecompressionStream","CompressionStreamFallback","DecompressionStreamFallback"],fe=[ae,...ie,"useCompressionStream","useWebWorkers","transferStreams",...ce,...ue],we={...oe};function le(){return we}function de(e){return pe(e.chunkSize)}function pe(e){return e=ne(e),o.isInteger(e)&&e>=1?a.max(e,64):65536}function he(e){const t={};for(const n of fe){const r=e[n];r!==j&&(t[n]=me(n,r))}return t}function me(e,t){if(ce.includes(e)){if(t=ne(t),e==se&&(!o.isInteger(t)||1>t))throw new l("Invalid maxWorkers (must be an integer greater than 0)")}else if(ue.includes(e))te(t);else if(e==ae){if(t&&typeof t!=X)throw new l("Invalid baseURI (must be a string)")}else if(ie.includes(e)&&t&&typeof t!=X&&typeof t!=K)throw new l("Invalid URI (must be a string or a function returning a string)");return t}function ye(e){e=e||{};const{CompressionStreamZlib:t,DecompressionStreamZlib:r}=e;if(t===j&&r===j)return e;const o=n.assign({},e);return o.CompressionStreamFallback===j&&(o.CompressionStreamFallback=t),o.DecompressionStreamFallback===j&&(o.DecompressionStreamFallback=r),o}var ge=d,be=p,ve=Int32Array,Se=new ge([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),ke=new ge([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),xe=new ge([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ze=(e,t)=>{for(var n=new be(31),r=0;31>r;++r)n[r]=t+=1<<e[r-1];var o=new ve(n[30]);for(r=1;30>r;++r)for(var s=n[r];s<n[r+1];++s)o[s]=s-n[r]<<5|r;return{b:n,r:o}},Re=ze(Se,2),De=Re.b,Ce=Re.r;De[28]=258,Ce[258]=28;for(var Ae=ze(ke,0).b,Fe=new be(32768),Ie=0;32768>Ie;++Ie){var Ue=(43690&Ie)>>1|(21845&Ie)<<1;Ue=(61680&(Ue=(52428&Ue)>>2|(13107&Ue)<<2))>>4|(3855&Ue)<<4,Fe[Ie]=((65280&Ue)>>8|(255&Ue)<<8)>>1}var Te=(e,t,n)=>{for(var r=e.length,o=0,s=new be(t);r>o;++o)e[o]&&++s[e[o]-1];var a,i=new be(t);for(o=1;t>o;++o)i[o]=i[o-1]+s[o-1]<<1;if(n){a=new be(1<<t);var c=15-t;for(o=0;r>o;++o)if(e[o])for(var u=o<<4|e[o],f=t-e[o],w=i[e[o]-1]++<<f,l=w|(1<<f)-1;l>=w;++w)a[Fe[w]>>c]=u}else for(a=new be(r),o=0;r>o;++o)e[o]&&(a[o]=Fe[i[e[o]-1]++]>>15-e[o]);return a},Ee=new ge(288);for(Ie=0;144>Ie;++Ie)Ee[Ie]=8;for(Ie=144;256>Ie;++Ie)Ee[Ie]=9;for(Ie=256;280>Ie;++Ie)Ee[Ie]=7;for(Ie=280;288>Ie;++Ie)Ee[Ie]=8;var We=new ge(32);for(Ie=0;32>Ie;++Ie)We[Ie]=5;var Me=Te(Ee,9,1),Oe=Te(We,5,1),Le=e=>{for(var t=e[0],n=1;n<e.length;++n)e[n]>t&&(t=e[n]);return t},Pe=(e,t,n)=>{var r=t/8|0;return(e[r]|e[r+1]<<8)>>(7&t)&n},He=(e,t)=>{var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(7&t)},Be=e=>(e+7)/8|0,Ve=(e,t,n)=>((null==t||0>t)&&(t=0),(null==n||n>e.length)&&(n=e.length),new ge(e.subarray(t,n))),Ze=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],qe=(e,t,n)=>{var r=new l(t||Ze[e]);if(r.code=e,l.captureStackTrace&&l.captureStackTrace(r,qe),!n)throw r;return r},Ne=(e,t,n,r)=>{var o=e.length,s=r?r.length:0;if(!o||t.f&&!t.o)return n||new ge(0);var i=!n,c=i||2!=t.i,u=t.i;i&&(n=new ge(3*o));var f=e=>{var t=n.length;if(e>t){var r=new ge(a.max(2*t,e));r.set(n),n=r}},w=t.f||0,l=t.p||0,d=t.b||0,p=t.o,h=t.d,m=t.l,y=t.n,g=8*o;do{if(!p){w=Pe(e,l,1);var b=Pe(e,l+1,3);if(l+=3,!b){var v=e[(U=Be(l)+4)-4]|e[U-3]<<8,S=U+v;if(S>o){u&&qe(0);break}c&&f(d+v),n.set(e.subarray(U,S),d),t.b=d+=v,t.p=l=8*S,t.f=w;continue}if(1==b)p=Me,h=Oe,m=9,y=5;else if(2==b){var k=Pe(e,l,31)+257,x=Pe(e,l+10,15)+4,z=k+Pe(e,l+5,31)+1;l+=14;for(var R=new ge(z),D=new ge(19),C=0;x>C;++C)D[xe[C]]=Pe(e,l+3*C,7);l+=3*x;var A=Le(D),F=(1<<A)-1,I=Te(D,A,1);for(C=0;z>C;){var U,T=I[Pe(e,l,F)];if(l+=15&T,16>(U=T>>4))R[C++]=U;else{var E=0,W=0;for(16==U?(W=3+Pe(e,l,3),l+=2,E=R[C-1]):17==U?(W=3+Pe(e,l,7),l+=3):18==U&&(W=11+Pe(e,l,127),l+=7);W--;)R[C++]=E}}var M=R.subarray(0,k),O=R.subarray(k);m=Le(M),y=Le(O),p=Te(M,m,1),h=Te(O,y,1)}else qe(1);if(l>g){u&&qe(0);break}}c&&f(d+131072);for(var L=(1<<m)-1,P=(1<<y)-1,H=l;;H=l){var B=(E=p[He(e,l)&L])>>4;if((l+=15&E)>g){u&&qe(0);break}if(E||qe(2),256>B)n[d++]=B;else{if(256==B){H=l,p=null;break}var V=B-254;if(B>264){var Z=Se[C=B-257];V=Pe(e,l,(1<<Z)-1)+De[C],l+=Z}var q=h[He(e,l)&P],N=q>>4;if(q||qe(3),l+=15&q,O=Ae[N],N>3&&(Z=ke[N],O+=He(e,l)&(1<<Z)-1,l+=Z),l>g){u&&qe(0);break}c&&f(d+131072);var j=d+V;if(O>d){var G=s-O,K=a.min(O,j);for(0>G+d&&qe(3);K>d;++d)n[d]=r[G+d]}for(;j>d;++d)n[d]=n[d-O]}}t.o=p,t.p=H,t.b=d,t.f=w,p&&(w=1,t.l=m,t.d=h,t.n=y)}while(!w);return d!=n.length&&i?Ve(n,0,d):n.subarray(0,d)},je=new ge(0),Ge=function(){function e(e,t){"function"==typeof e&&(t=e,e={}),this.h=t;var n=e&&e.m&&e.m.subarray(-32768);this.s={i:0,b:n?n.length:0},this.v=new ge(32768),this.p=new ge(0),n&&this.v.set(n)}return e.prototype.e=function(e){if(this.h||qe(5),this.d&&qe(4),this.p.length){if(e.length){var t=new ge(this.p.length+e.length);t.set(this.p),t.set(e,this.p.length),this.p=t}}else this.p=e},e.prototype.c=function(e){this.s.i=+(this.d=e||!1);var t=this.s.b,n=Ne(this.p,this.s,this.v);this.h(Ve(n,t,this.s.b),this.d),this.v=Ve(n,this.s.b-32768),this.s.b=this.v.length,this.p=Ve(this.p,this.s.p/8|0),this.s.p&=7},e.prototype.push=function(e,t){this.e(e),this.c(t)},e}(),Ke=void 0!==v&&new v;try{Ke.decode(je,{stream:!0})}catch(e){}class Xe extends x{constructor(e){super({start(t){e.h=e=>{e.length&&t.enqueue(e)}},transform(t){e.push(t)},flush(){e.push(new d(0),!0)}})}}const _e="Compression method not supported",$e=new c,Je=new c;function Qe(e){return Je.get(e)}const Ye=[[],[],[],[],[],[],[],[]];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)t=1&t?t>>>1^3988292384:t>>>1;Ye[0][e]=t}for(let e=0;256>e;e++)for(let t=1;8>t;t++){const n=Ye[t-1][e];Ye[t][e]=n>>>8^Ye[0][255&n]}const[et,tt,nt,rt,ot,st,at,it]=Ye;class ct{constructor(e){this.S=e||-1}append(e){let t=0|this.S;const n=0|e.length;let r=0;if(n>=8&&e.buffer){const o=new m(e.buffer,e.byteOffset,n),s=n-8;for(;s>=r;r+=8){const e=t^o.getInt32(r,!0),n=o.getInt32(r+4,!0);t=it[255&e]^at[e>>>8&255]^st[e>>>16&255]^ot[e>>>24&255]^rt[255&n]^nt[n>>>8&255]^tt[n>>>16&255]^et[n>>>24&255]}}for(;n>r;r++)t=t>>>8^et[255&(t^e[r])];this.S=t}get(){return~this.S}}class ut extends x{constructor(){let e;const t=new ct;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new d(4);new m(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}function ft(e,t){const n=new d(e.length+t.length);return n.set(e),n.set(t,e.length),n}function wt(e){return new m(e.buffer,e.byteOffset,e.byteLength)}const lt=64,dt=20,pt=new d([128]),ht=new d(1),mt=new Int32Array([1732584193,4023233417,2562383102,271733878,3285377520]),yt=new d(256),gt=new Int32Array(256),bt=new Int32Array(256),vt=new Int32Array(256),St=new Int32Array(256);let kt=!1;function xt(e){const t=(()=>{const e=new Int32Array(mt),t=new Int32Array(16),n=new d(lt),r=new m(n.buffer),o=new d(8);let s=0,i=0;return{update:c,digest:()=>{const t=8*i,n=a.floor(t/4294967296),r=t>>>0;for(c(pt,0,1);56!=s;)c(ht,0,1);o[0]=n>>>24,o[1]=n>>>16,o[2]=n>>>8,o[3]=n,o[4]=r>>>24,o[5]=r>>>16,o[6]=r>>>8,o[7]=r,c(o,0,8);const u=new d(dt),f=new m(u.buffer);for(let t=0;t<e.length;t++)f.setInt32(4*t,e[t]);return e.set(mt),s=0,i=0,u}};function c(e,t,o){const a=t+o;if(i+=o,s){for(;a>t&&lt>s;)n[s++]=e[t++];s==lt&&(u(r,0),s=0)}if(a>=t+lt){const n=new m(e.buffer,e.byteOffset,e.byteLength);for(;a>=t+lt;t+=lt)u(n,t)}for(;a>t;)n[s++]=e[t++]}function u(n,r){for(let e=0;16>e;e++)t[e]=n.getInt32(r+4*e);let o,s=e[0],a=e[1],i=e[2],c=e[3],u=e[4];for(let e=0;15>e;e+=5)u=(s<<5|s>>>27)+((i^c)&a^c)+u+1518500249+t[e]|0,a=a<<30|a>>>2,c=(u<<5|u>>>27)+((a^i)&s^i)+c+1518500249+t[e+1]|0,s=s<<30|s>>>2,i=(c<<5|c>>>27)+((s^a)&u^a)+i+1518500249+t[e+2]|0,u=u<<30|u>>>2,a=(i<<5|i>>>27)+((u^s)&c^s)+a+1518500249+t[e+3]|0,c=c<<30|c>>>2,s=(a<<5|a>>>27)+((c^u)&i^u)+s+1518500249+t[e+4]|0,i=i<<30|i>>>2;u=(s<<5|s>>>27)+((i^c)&a^c)+u+1518500249+t[15]|0,a=a<<30|a>>>2,o=t[13]^t[8]^t[2]^t[0],o=o<<1|o>>>31,t[0]=o,c=(u<<5|u>>>27)+((a^i)&s^i)+c+1518500249+o|0,s=s<<30|s>>>2,o=t[14]^t[9]^t[3]^t[1],o=o<<1|o>>>31,t[1]=o,i=(c<<5|c>>>27)+((s^a)&u^a)+i+1518500249+o|0,u=u<<30|u>>>2,o=t[15]^t[10]^t[4]^t[2],o=o<<1|o>>>31,t[2]=o,a=(i<<5|i>>>27)+((u^s)&c^s)+a+1518500249+o|0,c=c<<30|c>>>2,o=t[0]^t[11]^t[5]^t[3],o=o<<1|o>>>31,t[3]=o,s=(a<<5|a>>>27)+((c^u)&i^u)+s+1518500249+o|0,i=i<<30|i>>>2;for(let e=20;40>e;e+=5)o=t[e-3&15]^t[e-8&15]^t[e-14&15]^t[15&e],o=o<<1|o>>>31,t[15&e]=o,u=(s<<5|s>>>27)+(a^i^c)+u+1859775393+o|0,a=a<<30|a>>>2,o=t[e-2&15]^t[e-7&15]^t[e-13&15]^t[e+1&15],o=o<<1|o>>>31,t[e+1&15]=o,c=(u<<5|u>>>27)+(s^a^i)+c+1859775393+o|0,s=s<<30|s>>>2,o=t[e-1&15]^t[e-6&15]^t[e-12&15]^t[e+2&15],o=o<<1|o>>>31,t[e+2&15]=o,i=(c<<5|c>>>27)+(u^s^a)+i+1859775393+o|0,u=u<<30|u>>>2,o=t[15&e]^t[e-5&15]^t[e-11&15]^t[e+3&15],o=o<<1|o>>>31,t[e+3&15]=o,a=(i<<5|i>>>27)+(c^u^s)+a+1859775393+o|0,c=c<<30|c>>>2,o=t[e+1&15]^t[e-4&15]^t[e-10&15]^t[e+4&15],o=o<<1|o>>>31,t[e+4&15]=o,s=(a<<5|a>>>27)+(i^c^u)+s+1859775393+o|0,i=i<<30|i>>>2;for(let e=40;60>e;e+=5)o=t[e-3&15]^t[e-8&15]^t[e-14&15]^t[15&e],o=o<<1|o>>>31,t[15&e]=o,u=(s<<5|s>>>27)+(a&i|(a|i)&c)+u+2400959708+o|0,a=a<<30|a>>>2,o=t[e-2&15]^t[e-7&15]^t[e-13&15]^t[e+1&15],o=o<<1|o>>>31,t[e+1&15]=o,c=(u<<5|u>>>27)+(s&a|(s|a)&i)+c+2400959708+o|0,s=s<<30|s>>>2,o=t[e-1&15]^t[e-6&15]^t[e-12&15]^t[e+2&15],o=o<<1|o>>>31,t[e+2&15]=o,i=(c<<5|c>>>27)+(u&s|(u|s)&a)+i+2400959708+o|0,u=u<<30|u>>>2,o=t[15&e]^t[e-5&15]^t[e-11&15]^t[e+3&15],o=o<<1|o>>>31,t[e+3&15]=o,a=(i<<5|i>>>27)+(c&u|(c|u)&s)+a+2400959708+o|0,c=c<<30|c>>>2,o=t[e+1&15]^t[e-4&15]^t[e-10&15]^t[e+4&15],o=o<<1|o>>>31,t[e+4&15]=o,s=(a<<5|a>>>27)+(i&c|(i|c)&u)+s+2400959708+o|0,i=i<<30|i>>>2;for(let e=60;80>e;e+=5)o=t[e-3&15]^t[e-8&15]^t[e-14&15]^t[15&e],o=o<<1|o>>>31,t[15&e]=o,u=(s<<5|s>>>27)+(a^i^c)+u+3395469782+o|0,a=a<<30|a>>>2,o=t[e-2&15]^t[e-7&15]^t[e-13&15]^t[e+1&15],o=o<<1|o>>>31,t[e+1&15]=o,c=(u<<5|u>>>27)+(s^a^i)+c+3395469782+o|0,s=s<<30|s>>>2,o=t[e-1&15]^t[e-6&15]^t[e-12&15]^t[e+2&15],o=o<<1|o>>>31,t[e+2&15]=o,i=(c<<5|c>>>27)+(u^s^a)+i+3395469782+o|0,u=u<<30|u>>>2,o=t[15&e]^t[e-5&15]^t[e-11&15]^t[e+3&15],o=o<<1|o>>>31,t[e+3&15]=o,a=(i<<5|i>>>27)+(c^u^s)+a+3395469782+o|0,c=c<<30|c>>>2,o=t[e+1&15]^t[e-4&15]^t[e-10&15]^t[e+4&15],o=o<<1|o>>>31,t[e+4&15]=o,s=(a<<5|a>>>27)+(i^c^u)+s+3395469782+o|0,i=i<<30|i>>>2;e[0]=e[0]+s|0,e[1]=e[1]+a|0,e[2]=e[2]+i|0,e[3]=e[3]+c|0,e[4]=e[4]+u|0}})(),n=new d(lt),r=new d(lt);e.length>lt&&(t.update(e,0,e.length),e=t.digest());for(let t=0;lt>t;t++){const o=t<e.length?e[t]:0;n[t]=54^o,r[t]=92^o}return t.update(n,0,lt),{update(e,n,r){t.update(e,n,r)},digest(){const e=t.digest();t.update(r,0,lt),t.update(e,0,dt);const o=t.digest();return t.update(n,0,lt),o}}}function zt(e){return yt[e>>>24]<<24|yt[e>>>16&255]<<16|yt[e>>>8&255]<<8|yt[255&e]}function Rt(e){return e<<24|(65280&e)<<8|e>>>8&65280|e>>>24}function Dt(e){return 255&(e<<1^27*(e>>7))}const Ct=typeof S!=G&&typeof S.getRandomValues==K,At="Invalid password",Ft="zipjs-abort-check-password";function It(e){if(Ct)return S.getRandomValues(e);throw new l("Crypto API not supported")}const Ut={name:"PBKDF2"},Tt=n.assign({hash:{name:"HMAC"}},Ut),Et=n.assign({iterations:1e3,hash:{name:"SHA-1"}},Ut),Wt=["deriveBits"],Mt=[8,12,16],Ot=[16,24,32],Lt=10,Pt=typeof S!=G,Ht=Pt&&S.subtle;let Bt=Pt&&typeof Ht!=G&&typeof Ht.importKey==K&&typeof Ht.deriveBits==K;class Vt extends x{constructor({password:e,rawPassword:t,encryptionStrength:n,checkPasswordOnly:r,checkAuthenticationCode:o=!0}){super({start(){qt(this,e,t,n)},async transform(e,t){const n=this,{password:o,strength:s,R:a,ready:i}=n;o?(await(async(e,t,n,r)=>{const o=await Gt(e,t,n,Xt(r,0,Mt[t])),s=Xt(r,Mt[t]);if(o[0]!=s[0]||o[1]!=s[1])throw jt(e),new l(At)})(n,s,o,Xt(e,0,Mt[s]+2)),e=Xt(e,Mt[s]+2),r?(jt(n),t.error(new l(Ft))):a()):await i;const c=new d(e.length-Lt-(e.length-Lt)%16);t.enqueue(Nt(n,e,c,0,Lt,!0))},async flush(e){const{D:t,C:n,ready:r}=this;if(t){await r;const s=Xt(n,n.length-Lt),a=new d(Xt(n,0,n.length-Lt));t.process(a,!0);const i=t.digest();let c=n.length<Lt?1:0;for(let e=0;Lt>e;e++)c|=i[e]^s[e];if(c&&o)throw new l("Invalid authentication code");e.enqueue(a)}},cancel(){jt(this)}})}}class Zt extends x{constructor({password:e,rawPassword:t,encryptionStrength:n}){super({start(){qt(this,e,t,n)},async transform(e,t){const n=this,{password:r,strength:o,R:s,ready:a}=n;let i=$;r?(i=await(async(e,t,n)=>{const r=It(new d(Mt[t]));return ft(r,await Gt(e,t,n,r))})(n,o,r),s()):await a;const c=new d(i.length+e.length-e.length%16);c.set(i,0),t.enqueue(Nt(n,e,c,i.length,0,!1))},async flush(e){const{D:t,C:n,ready:r}=this;if(t){await r;const o=new d(n);t.process(o,!1);const s=Xt(t.digest(),0,Lt);e.enqueue(ft(o,s))}},cancel(){jt(this)}})}}function qt(e,t,r,o){n.assign(e,{ready:new g(t=>e.R=t),password:Kt(t,r),strength:o-1,C:$})}function Nt(e,t,n,r,o,s){const{D:a,C:i}=e;i.length&&(t=ft(i,t));const c=t.length-o,u=c-c%16;if(n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new d(t)).set(n,0)}return e})(n,r+u),u){const e=Xt(n,r,r+u);e.set(Xt(t,0,u)),a.process(e,s)}return e.C=Xt(t,u),n}function jt({D:e}){e&&e.dispose&&e.dispose()}async function Gt(e,t,r,o){e.password=null;const s=Ot[t],i=await(async(e,t,r)=>{if(Bt)try{const o=await Ht.importKey("raw",e,Tt,!1,Wt);return new d(await Ht.deriveBits(n.assign({salt:t},Et),o,8*r))}catch{Bt=!1}return((e,t,n,r)=>{const o=xt(e),s=new d(r),i=new d(t.length+4),c=new m(i.buffer);i.set(t);for(let e=1,n=0;r>n;e++,n+=dt){c.setUint32(t.length,e),o.update(i,0,i.length);let u=o.digest();const f=u.slice();for(let e=1;1e3>e;e++){o.update(u,0,dt),u=o.digest();for(let e=0;dt>e;e++)f[e]^=u[e]}s.set(f.subarray(0,a.min(dt,r-n)),n)}return s})(e,t,0,r)})(r,o,2*s+2);return e.D=((e,t)=>{(()=>{if(!kt){let e=1,t=1;do{e=255&(e^e<<1^(128&e?27:0)),t=255&(t^t<<1),t=255&(t^t<<2),t=255&(t^t<<4),128&t&&(t^=9),yt[e]=255&(t^(t<<1|t>>7)^(t<<2|t>>6)^(t<<3|t>>5)^(t<<4|t>>4)^99)}while(1!=e);yt[0]=99;for(let e=0;256>e;e++){const t=yt[e],n=Dt(t),r=n<<24|t<<16|t<<8|n^t;gt[e]=r,bt[e]=r>>>8|r<<24,vt[e]=r>>>16|r<<16,St[e]=r>>>24|r<<8}kt=!0}})();const n=new Int32Array(60),r=((e,t)=>{const n=e.length>>2,r=n+6,o=4*(r+1);let s=1;for(let r=0;n>r;r++)t[r]=e[4*r]<<24|e[4*r+1]<<16|e[4*r+2]<<8|e[4*r+3];for(let e=n;o>e;e++){let r=t[e-1];e%n==0?(r=zt(r<<8|r>>>24)^s<<24,s=Dt(s)):n>6&&e%n==4&&(r=zt(r)),t[e]=t[e-n]^r}return r})(e,n),o=new Int32Array(4),s=xt(t);let a=0,i=0,c=0,u=0;return{process(e,t){t&&s.update(e,0,e.length),(e=>{const t=new m(e.buffer,e.byteOffset,e.byteLength),n=e.length;let r=0;for(;n>=r+16;r+=16)f(),t.setInt32(r,t.getInt32(r)^o[0]),t.setInt32(r+4,t.getInt32(r+4)^o[1]),t.setInt32(r+8,t.getInt32(r+8)^o[2]),t.setInt32(r+12,t.getInt32(r+12)^o[3]);if(n>r){f();for(let t=0;n>r;r++,t++)e[r]^=o[t>>2]>>>24-8*(3&t)}})(e),t||s.update(e,0,e.length)},digest:()=>s.digest()};function f(){a=a+1|0,a||(i=i+1|0,i||(c=c+1|0,c||(u=u+1|0)));let e=Rt(a)^n[0],t=Rt(i)^n[1],s=Rt(c)^n[2],f=Rt(u)^n[3],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[4],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[5],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[6],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[7];e=gt[w>>>24]^bt[l>>>16&255]^vt[d>>>8&255]^St[255&p]^n[8],t=gt[l>>>24]^bt[d>>>16&255]^vt[p>>>8&255]^St[255&w]^n[9],s=gt[d>>>24]^bt[p>>>16&255]^vt[w>>>8&255]^St[255&l]^n[10],f=gt[p>>>24]^bt[w>>>16&255]^vt[l>>>8&255]^St[255&d]^n[11],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[12],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[13],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[14],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[15],e=gt[w>>>24]^bt[l>>>16&255]^vt[d>>>8&255]^St[255&p]^n[16],t=gt[l>>>24]^bt[d>>>16&255]^vt[p>>>8&255]^St[255&w]^n[17],s=gt[d>>>24]^bt[p>>>16&255]^vt[w>>>8&255]^St[255&l]^n[18],f=gt[p>>>24]^bt[w>>>16&255]^vt[l>>>8&255]^St[255&d]^n[19],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[20],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[21],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[22],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[23],e=gt[w>>>24]^bt[l>>>16&255]^vt[d>>>8&255]^St[255&p]^n[24],t=gt[l>>>24]^bt[d>>>16&255]^vt[p>>>8&255]^St[255&w]^n[25],s=gt[d>>>24]^bt[p>>>16&255]^vt[w>>>8&255]^St[255&l]^n[26],f=gt[p>>>24]^bt[w>>>16&255]^vt[l>>>8&255]^St[255&d]^n[27],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[28],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[29],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[30],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[31],e=gt[w>>>24]^bt[l>>>16&255]^vt[d>>>8&255]^St[255&p]^n[32],t=gt[l>>>24]^bt[d>>>16&255]^vt[p>>>8&255]^St[255&w]^n[33],s=gt[d>>>24]^bt[p>>>16&255]^vt[w>>>8&255]^St[255&l]^n[34],f=gt[p>>>24]^bt[w>>>16&255]^vt[l>>>8&255]^St[255&d]^n[35],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[36],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[37],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[38],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[39];let h=40;r>10&&(e=gt[w>>>24]^bt[l>>>16&255]^vt[d>>>8&255]^St[255&p]^n[40],t=gt[l>>>24]^bt[d>>>16&255]^vt[p>>>8&255]^St[255&w]^n[41],s=gt[d>>>24]^bt[p>>>16&255]^vt[w>>>8&255]^St[255&l]^n[42],f=gt[p>>>24]^bt[w>>>16&255]^vt[l>>>8&255]^St[255&d]^n[43],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[44],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[45],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[46],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[47],h=48),r>12&&(e=gt[w>>>24]^bt[l>>>16&255]^vt[d>>>8&255]^St[255&p]^n[48],t=gt[l>>>24]^bt[d>>>16&255]^vt[p>>>8&255]^St[255&w]^n[49],s=gt[d>>>24]^bt[p>>>16&255]^vt[w>>>8&255]^St[255&l]^n[50],f=gt[p>>>24]^bt[w>>>16&255]^vt[l>>>8&255]^St[255&d]^n[51],w=gt[e>>>24]^bt[t>>>16&255]^vt[s>>>8&255]^St[255&f]^n[52],l=gt[t>>>24]^bt[s>>>16&255]^vt[f>>>8&255]^St[255&e]^n[53],d=gt[s>>>24]^bt[f>>>16&255]^vt[e>>>8&255]^St[255&t]^n[54],p=gt[f>>>24]^bt[e>>>16&255]^vt[t>>>8&255]^St[255&s]^n[55],h=56),o[0]=(yt[w>>>24]<<24|yt[l>>>16&255]<<16|yt[d>>>8&255]<<8|yt[255&p])^n[h],o[1]=(yt[l>>>24]<<24|yt[d>>>16&255]<<16|yt[p>>>8&255]<<8|yt[255&w])^n[h+1],o[2]=(yt[d>>>24]<<24|yt[p>>>16&255]<<16|yt[w>>>8&255]<<8|yt[255&l])^n[h+2],o[3]=(yt[p>>>24]<<24|yt[w>>>16&255]<<16|yt[l>>>8&255]<<8|yt[255&d])^n[h+3]}})(Xt(i,0,s),Xt(i,s,2*s)),Xt(i,2*s)}function Kt(e,t){return t===j?(e=>{if(typeof b==G){const t=new d((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new b).encode(e)})(e):t}function Xt(e,t,n){return e.subarray(t,n)}class _t extends x{constructor({password:e,rawPassword:t,passwordVerification:n,checkPasswordOnly:r}){super({start(){Jt(this,e,t,n)},transform(e,t){const n=this;if(n.password||n.rawPassword){const t=Qt(n,e.subarray(0,12));if(n.password=n.rawPassword=null,0!=(t[11]^n.passwordVerification))throw new l(At);e=e.subarray(12)}r?t.error(new l(Ft)):t.enqueue(Qt(n,e))}})}}class $t extends x{constructor({password:e,rawPassword:t,passwordVerification:n}){super({start(){Jt(this,e,t,n)},transform(e,t){const n=this;let r,o;if(n.password||n.rawPassword){n.password=n.rawPassword=null;const t=It(new d(12));t[11]=n.passwordVerification,r=new d(e.length+t.length),r.set(Yt(n,t),0),o=12}else r=new d(e.length),o=0;r.set(Yt(n,e),o),t.enqueue(r)}})}}function Jt(e,t,r,o){n.assign(e,{password:t,rawPassword:r,passwordVerification:o}),((e,t,r)=>{const o=[305419896,591751049,878082192];if(n.assign(e,{keys:o,A:new ct(o[0]),F:new ct(o[2])}),r)for(let t=0;t<r.length;t++)en(e,r[t]);else for(let n=0;n<t.length;n++)en(e,t.charCodeAt(n))})(e,t,r)}function Qt(e,t){const n=new d(t.length);for(let r=0;r<t.length;r++)n[r]=tn(e)^t[r],en(e,n[r]);return n}function Yt(e,t){const n=new d(t.length);for(let r=0;r<t.length;r++)n[r]=tn(e)^t[r],en(e,t[r]);return n}function en(e,t){let[,n]=e.keys;e.A.append([t]);const r=~e.A.get();n=rn(a.imul(rn(n+nn(r)),134775813)+1),e.F.append([n>>>24]);const o=~e.F.get();e.keys=[r,n,o]}function tn(e){const t=2|e.keys[2];return nn(a.imul(t,1^t)>>>8)}function nn(e){return 255&e}function rn(e){return 4294967295&e}function on(e){if(e instanceof z)return e;const t=e.getReader();return new z({async pull(e){const{value:n,done:r}=await t.read();r?e.close():e.enqueue(n)},cancel:e=>t.cancel(e)})}function sn(e,t){e=on(e);const n=t?{type:t}:{};if(typeof y.prototype.stream!=K||new y([]).stream()instanceof z)return new f(e).blob().then(e=>t?new y([e],n):e);const r=[];return e.pipeTo(new R({write(e){r.push(e)}})).then(()=>new y(r,n))}function an(e){if(e instanceof R)return e;const t=e.getWriter();return new R({write:e=>t.write(e),close:()=>t.close(),abort:e=>t.abort(e)})}const cn="Invalid uncompressed size",un="deflate-raw",fn="gzip",wn=[31,139,8];class ln extends x{constructor(e,{chunkSize:t,CompressionStreamFallback:n,CompressionStream:r}){super({});const{compressed:o,encrypted:s,useCompressionStream:a,zipCrypto:i,computeCrc32:c,level:u,deflate64:f,format:w,compressionMethod:l,inputSize:d}=e,p=this;let h,y,g,b=super.readable;const v=w&&Qe(w),S=((e,t,n)=>e&&t?t:n&&n.I?n:void 0)(a,r,n),k=c&&o&&!f&&!v&&(!s||i)&&!!S;if(s&&!i||!c||k||(h=new ut,b=bn(b,h)),o)if(v)b=vn(b,yn(v.CompressionStream,w,{level:u,chunkSize:t,compressionMethod:l,uncompressedSize:d}));else if(k)g=new dn,b=vn(b,new S(fn,{level:u,chunkSize:t})),b=bn(b,g);else try{b=gn(b,a,{level:u,chunkSize:t},r,n)}catch(e){let t;try{t=new r(fn)}catch{throw e}b=vn(b,t),b=bn(b,new dn)}s&&(i?b=bn(b,new $t(e)):(y=new Zt(e),b=bn(b,y))),mn(p,b,()=>{s&&!i||!c||(p.crc32=k?g.crc32:new m(h.value.buffer).getUint32(0))})}}class dn extends x{constructor(){let e,t=10,n=new d(0);super({transform(e,r){if(t){const n=a.min(t,e.length);if(t-=n,!(e=e.subarray(n)).length)return}const o=n.length+e.length;if(8>=o)return void(n=ft(n,e));const s=o-8,i=a.min(s,n.length);r.enqueue(ft(n.subarray(0,i),e.subarray(0,s-i))),n=ft(n.subarray(i),e.subarray(s-i))},flush(){const t=wt(n);e.crc32=t.getUint32(0,!0),e.uncompressedSize=t.getUint32(4,!0)}}),e=this}}class pn extends x{constructor(e,{chunkSize:t,DecompressionStreamFallback:n,DecompressionStream:r}){super({});const{zipCrypto:o,encrypted:s,checkCrc32:a,crc32:i,compressed:c,useCompressionStream:u,deflate64:f,format:w,compressionMethod:p,rawBitFlag:h,outputSize:y}=e;let b,v,S,k=super.readable;if(s&&(o?k=bn(k,new _t(e)):(v=new Vt(e),k=bn(k,v))),c){const e=w&&Qe(w);if(e)k=vn(k,yn(e.DecompressionStream,w,{chunkSize:t,compressionMethod:p,rawBitFlag:h,uncompressedSize:y}));else try{k=gn(k,u,{chunkSize:t,deflate64:f},r,n)}catch(e){if(f||y===j)throw e;let t;try{t=new r(fn)}catch{throw e}S=new ct,k=((e,t,n,r)=>{let o,s,a,i=0,c=!1;const u=new g((e,t)=>{s=e,a=t});u.catch(()=>{}),n||s();const f=new x({start(e){const t=new d(10);t.set(wn),e.enqueue(t)},transform(e,t){t.enqueue(e)},async flush(e){c=!0,p();try{await u}finally{h()}const t=new d(8),o=wt(t);o.setUint32(0,r.get(),!0),o.setUint32(4,n,!0),e.enqueue(t)},cancel(e){a(e)}}),w=new x({transform(e,t){r.append(e),i+=e.length,n>i?c&&p():s(),t.enqueue(e)},cancel(e){a(e)}});return e=bn(e,f),bn(e=vn(e,t),w);function p(){h(),o=I(()=>a(new l(cn)),5e3)}function h(){U(o)}})(k,t,y,S)}k=(e=>{const t=e.getReader();return new z({async pull(e){let n;try{n=await t.read()}catch(e){if(e&&e.message)throw e;const t=new l("Invalid compressed data");throw t.cause=e,t}const{value:r,done:o}=n;o?e.close():e.enqueue(r)},cancel:e=>t.cancel(e)})})(k)}a&&!S&&(b=new ut,k=bn(k,b)),mn(this,k,()=>{if(a){const e=S?S.get()>>>0:new m(b.value.buffer).getUint32(0,!1);if(i!=e)throw new l("Invalid CRC32")}})}}const hn=new c;function mn(e,t,r){t=bn(t,new x({flush:r})),n.defineProperty(e,"readable",{get:()=>t})}function yn(e,t,n){if(!e)throw new l(_e);return new e(t,n)}function gn(e,t,n,r,o){const s=t&&r?r:o||r,a=n.deflate64?"deflate64-raw":un;let i;try{i=new s(a,n)}catch(e){if(!t||!o||s==o)throw e;i=new o(a,n)}return vn(e,i)}function bn(e,t){return on(e).pipeThrough(t)}function vn(e,t){const n=t.writable.getWriter(),r=e.getReader();return(async()=>{try{for(;;){await n.ready;const e=await r.read();if(e.done){await n.close();break}await n.write(e.value)}}catch(e){await(async(e,t)=>{try{await e.abort(t)}catch{}})(n,e),await(async(e,t)=>{try{await e.cancel(t)}catch{}})(r,e)}})(),t.readable}const Sn="deflate",kn="inflate";class xn extends x{constructor(e,t){super({});const r=this,{codecType:o}=e;let s;o.startsWith(Sn)?s=ln:o.startsWith(kn)&&(s=pn),r.outputSize=0;let a=0;const i=new s(e,t),c=super.readable,u=new x({transform(e,t){e&&e.length&&(a+=e.length,t.enqueue(e))},flush(){n.assign(r,{inputSize:a})}}),f=new x({transform(t,n){if(t&&t.length&&(n.enqueue(t),r.outputSize+=t.length,e.outputSize!==j&&r.outputSize>e.outputSize))throw new l(cn)},flush(){const{crc32:e}=i;n.assign(r,{crc32:e,inputSize:a})}});n.defineProperty(r,"readable",{get:()=>c.pipeThrough(u).pipeThrough(i).pipeThrough(f)})}}class zn extends x{constructor(e){const t=[];let r=0,s=0;function a(){const n=new d(e);let o=0;for(;e>o;){const r=t[0],s=e-o;r.length>s?(n.set(r.subarray(0,s),o),t[0]=r.subarray(s),o+=s):(n.set(r,o),o+=r.length,t.shift())}return r-=e,n}o.isFinite(e)&&e>=1||(e=65536),super({transform(n,o){for(t.push(n),r+=n.length;r>e;)s+=e,o.enqueue(a())},flush(e){r&&(s+=r,e.enqueue(((e,t)=>{const n=new d(t);let r=0;for(const t of e)n.set(t,r),r+=t.length;return n})(t,r)))}}),n.defineProperty(this,"outputSize",{get:()=>s})}}function Rn(e){return!!e&&"object"==typeof e}let Dn=()=>{};class Cn{constructor(e,{readable:t,writable:r},o,s){const{options:a,config:i,U:u,useWebWorkers:f,transferStreams:w,workerURI:l}=o;let{createWorker:d}=o;const{signal:p}=u;return n.assign(e,{T:!0,W:(e.W||0)+1,readable:t.pipeThrough(new zn(de(i))).pipeThrough(new An(u),{signal:p}),writable:r,options:n.assign({},a),M:o,workerURI:l,createWorker:d,transferStreams:w,terminate:()=>new g(t=>{const{O:n,T:r}=e;r?(e.L=e.L||[],e.L.push(t)):(n&&(n.terminate(),e.O=null),t()),e.P=null}),H(){if(e.T){const{L:t,O:n}=e;t&&(e.L=null,n&&(e.B=!0,n.terminate())),e.T=!1;const r=s(e);t&&t.forEach(e=>e(r))}}}),((e,t)=>({run:()=>(async({options:e,readable:t,writable:n,H:r,M:o},s)=>{let a,i,u;try{if(e.compressed&&!e.format){const t=e.codecType.startsWith(Sn),n=t?s.CompressionStreamFallback:s.DecompressionStreamFallback,r=t?s.CompressionStream:s.DecompressionStream;e.useCompressionStream?n&&n.I&&!((e,t)=>{if(!e)return!1;let n=hn.get(e);n||(n=new c,hn.set(e,n));let r=n.get(t);if(r===j){try{new e(t),r=!0}catch{r=!1}n.set(t,r)}return r})(r,un)&&await f():await f()||n&&!n.I||(e.useCompressionStream=!0)}e.encrypted&&!e.zipCrypto&&await f(),a=new xn(e,s),i=new zn(de(s)),await t.pipeThrough(a).pipeThrough(i).pipeTo(n,{preventClose:!0,preventAbort:!0});const{crc32:r,inputSize:o,outputSize:u}=a;return{crc32:r,inputSize:o,outputSize:u}}catch(e){if(a){const t=i?i.outputSize:0;if(o.outputSize=t,Rn(e))try{e.outputSize=t}catch{}}throw e}finally{r()}function f(){return u||(u=(async()=>{if(Dn)try{return await void 0,!0}catch{}return!1})()),u}})(e,t)}))(e,i)}}class An extends x{constructor({onstart:e,onprogress:t,size:n,onend:r}){let o=0;super({async start(){e&&await Fn(e,n)},async transform(e,r){o+=e.length,t&&await Fn(t,o,n),r.enqueue(e)},async flush(){r&&await Fn(r,o)}})}}async function Fn(e,...t){try{await e(...t)}catch{}}let In=[];const Un=[];let Tn,En,Wn=0;function Mn(){!Tn&&Un.length&&o.isFinite(En)&&En>=0&&(Tn=I(Ln,En))}function On(){Tn&&(U(Tn),Tn=null)}function Ln(){if(Tn=null,Un.length){const[{resolve:e,stream:t,M:n}]=Un.splice(0,1);e(new Cn({},t,Pn(n),Hn)),Mn()}}function Pn(e){return n.assign({},e,{useWebWorkers:!1,workerURI:j,createWorker:j})}function Hn(){On(),Mn()}function Bn(e){const{V:t}=e;t&&(U(t),e.V=null)}const Vn="\0\u263a\u263b\u2665\u2666\u2663\u2660\u2022\u25d8\u25cb\u25d9\u2642\u2640\u266a\u266b\u263c\u25ba\u25c4\u2195\u203c\xb6\xa7\u25ac\u21a8\u2191\u2193\u2192\u2190\u221f\u2194\u25b2\u25bc !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xc7\xfc\xe9\xe2\xe4\xe0\xe5\xe7\xea\xeb\xe8\xef\xee\xec\xc4\xc5\xc9\xe6\xc6\xf4\xf6\xf2\xfb\xf9\xff\xd6\xdc\xa2\xa3\xa5\u20a7\u0192\xe1\xed\xf3\xfa\xf1\xd1\xaa\xba\xbf\u2310\xac\xbd\xbc\xa1\xab\xbb\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03b1\xdf\u0393\u03c0\u03a3\u03c3\xb5\u03c4\u03a6\u0398\u03a9\u03b4\u221e\u03c6\u03b5\u2229\u2261\xb1\u2265\u2264\u2320\u2321\xf7\u2248\xb0\u2219\xb7\u221a\u207f\xb2\u25a0\xa0".split("");function Zn(e,t){return Nn(e,t,!0)}function qn(e){if(!e.some(e=>e>127))return!1;try{return new v("utf-8",{fatal:!0}).decode(e),!0}catch{return!1}}function Nn(e,t,n){return t&&"cp437"==t.trim().toLowerCase()?(e=>{let t="";for(let n=0;n<e.length;n++)t+=Vn[e[n]];return t})(e):new v(t,{ignoreBOM:n}).decode(e)}const jn="HTTP error ",Gn="HTTP Range not supported",Kn="HTTP resource changed",Xn="Content-Range",_n="Range",$n="GET",Jn="bytes",Qn=16777216,Yn="writable",er=Symbol();class tr{constructor(){this.size=0}init(){this.initialized=!0}}class nr extends tr{get readable(){return this.createReadable()}createReadable({offset:e=0,size:t,chunkSize:n=de(le())}={}){const r=this;let o=0;return n=pe(n),new z({async pull(s){const i=t===j?n:a.min(n,t-o),c=await Er(r,e+o,i);c.length&&(s.enqueue(c),o+=c.length),(t!==j&&o>=t||!c.length&&i)&&s.close()}})}}class rr extends tr{constructor(){super();const e=this,t=new R({write(t){if(!e.initialized)throw new l("Writer not initialized");return e.writeUint8Array((n=t).byteOffset||n.byteLength!=n.buffer.byteLength?new d(n):n);var n}});n.defineProperty(e,Yn,{get:()=>t})}writeUint8Array(){}}let or,sr;class ar extends nr{constructor(e){super(),n.assign(this,{Z:e,size:e.size}),sr||(sr=(async()=>{try{const e=new y([new d(3)]).slice(1,2).stream().getReader();let t=0,n=await e.read();for(;!n.done;)t+=n.value.length,n=await e.read();or=1==t}catch{or=!1}})())}createReadable(e){const{Z:t,size:n}=this,{offset:r=0,size:o=n-r}=e||{};if(typeof t.stream==K){if(!r&&o>=n)return on(t.stream());if(or)return on(t.slice(r,r+o).stream())}return super.createReadable(e)}async readUint8Array(e,t){const n=this,r=e+t,o=e||r<n.size?n.Z.slice(e,r):n.Z;let s=await o.arrayBuffer();return s.byteLength>t&&(s=s.slice(e,r)),new d(s)}}class ir extends tr{constructor(e){super();const t=this,r=new x;n.defineProperty(t,Yn,{get:()=>r.writable}),t.contentType=e,t.N=sn(r.readable,e),t.N.catch(()=>{})}getData(){return this.N}}class cr extends nr{constructor(e,t){super(),fr(this,e,t)}async init(){await wr(this,zr,vr),super.init()}createReadable(e){const t=this,{useRangeHeader:n,forceRangeRequests:r,size:o}=t;if((n||r)&&o!==j){const{offset:n=0,size:r=o-n}=e||{};if(r>0&&o>n)return((e,t,n)=>{let r,o=t,s=0,i=n;return new z({start:()=>c(),async pull(e){r||await c();const{value:t,done:n}=await r.read();if(n)throw new l(Gn);const o=t.length>s?t.subarray(0,s):t;s-=o.length,i-=o.length,o.length&&e.enqueue(o),s||(await(async()=>{const e=r;r=j,await e.cancel()})(),i||e.close())},cancel:e=>r&&r.cancel(e)});async function c(){const t=a.min(e.maximumRangeSize,i),n=await zr($n,e,gr(e,o,t));if(206!=n.status)throw new l(Gn);const c=dr(n);if(c!==j&&c!=o)throw new l(Gn);yr(e,n),mr(e,n),o+=t,s=t,r=n.body.getReader()}})(t,n,a.min(r,o-n))}return super.createReadable(e)}readUint8Array(e,t){return lr(this,e,t,zr,vr)}}class ur extends nr{constructor(e,t){super(),fr(this,e,t)}async init(){await wr(this,Rr,Sr),super.init()}readUint8Array(e,t){return lr(this,e,t,Rr,Sr)}}function fr(e,t,r){const{preventHeadRequest:o,useRangeHeader:s,forceRangeRequests:a,combineSizeEocd:i,checkResourceChanges:c=!0,maximumRangeSize:u=Qn,fetch:f}=r;delete(r=n.assign({},r)).preventHeadRequest,delete r.useRangeHeader,delete r.forceRangeRequests,delete r.combineSizeEocd,delete r.checkResourceChanges,delete r.maximumRangeSize,delete r.useXHR,delete r.fetch,n.assign(e,{url:t,options:r,preventHeadRequest:o,useRangeHeader:s,forceRangeRequests:a,combineSizeEocd:i,checkResourceChanges:c,maximumRangeSize:u,fetch:f})}async function wr(e,t,n){const{url:r,preventHeadRequest:o,useRangeHeader:s,forceRangeRequests:a,combineSizeEocd:i}=e;if((e=>{const{baseURI:t}=le(),{protocol:n}=new w(e,t);return"http:"==n||"https:"==n})(r)&&(s||a)&&(typeof o==G||o)){const r=await t($n,e,gr(e,i?-65557:void 0)),o=r.headers.get("Accept-Ranges");if(!(a||o&&o.toLowerCase()==Jn))throw new l(Gn);{let o;i&&206==r.status&&(o=new d(await r.arrayBuffer())),mr(e,r);const s=pr(r);s===j?await xr(e,t,n):e.size=s,o&&o.length&&dr(r)===e.size-o.length&&(e.j=o)}}else await xr(e,t,n)}async function lr(e,t,n,r,o){const{useRangeHeader:s,forceRangeRequests:a,j:i,size:c,options:u}=e;if(s||a){if(c>t&&0!==n){if(t+n>c&&(n=c-t),i&&t>=c-i.length){const e=t-(c-i.length);return i.slice(e,e+n)}const o=await r($n,e,gr(e,t,n));if(206!=o.status)throw new l(Gn);const s=dr(o);if(s!==j&&s!=t)throw new l(Gn);yr(e,o),mr(e,o);const a=new d(await o.arrayBuffer());if(a.length!=n)throw new l(Gn);return a}return $}{const{data:r}=e;return r||await o(e,u),e.data.subarray(t,t+n)}}function dr(e){const t=e.headers.get(Xn);if(t){const e=o(t.trim().split(/[\s-]+/)[1]);if(!o.isNaN(e))return e}}function pr(e){const t=e.headers.get(Xn);if(t){const e=t.trim().split(/\s*\/\s*/)[1];if(e&&"*"!=e){const t=o(e);if(!o.isNaN(t))return t}}}function hr({headers:e}){return{G:e.get("Etag")||j,lastModified:e.get("Last-Modified")||j}}function mr(e,t){const{checkResourceChanges:n,K:r}=e;n&&!r&&206==t.status&&(e.K=hr(t))}function yr(e,t){const{checkResourceChanges:r,K:o,size:s}=e;if(r){const e=pr(t);if(e!==j&&s!==j&&e!=s)throw new l(Kn);if(o){const e=hr(t);if(n.entries(o).some(([t,n])=>n!==j&&e[t]!==j&&n!=e[t]))throw new l(Kn)}}}function gr(e,t=0,r=1){return n.assign({},br(e),{[_n]:Jn+"="+(0>t?t:t+"-"+(t+r-1))})}function br({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?n.fromEntries(t):t}async function vr(e){await kr(e,zr)}async function Sr(e){await kr(e,Rr)}async function kr(e,t){const n=await t($n,e,br(e));e.data=new d(await n.arrayBuffer()),e.size=e.data.length}async function xr(e,t,n){if(e.preventHeadRequest)await n(e,e.options);else{const r=await t("HEAD",e,br(e)),s=r.headers.get("Content-Length");s&&!r.headers.get("Content-Encoding")?e.size=o(s):await n(e,e.options)}}async function zr(e,{fetch:t=fetch,options:r,url:o},s){const a=await t(o,n.assign({},r,{method:e,headers:s}));if(200>a.status||a.status>299)throw 416==a.status?new l(Gn):new l(jn+(a.statusText||a.status));return a}function Rr(e,{url:t},r){return new g((o,s)=>{const a=new XMLHttpRequest;if(a.addEventListener("load",()=>{if(200>a.status||a.status>299)s(416==a.status?new l(Gn):new l(jn+(a.statusText||a.status)));else{const e=[];a.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const n=t.trim().split(/\s*:\s*/);n[0]=n[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(n)}),o({status:a.status,arrayBuffer:()=>a.response,headers:new c(e)})}},!1),a.addEventListener("error",e=>s(e.detail?e.detail.error:new l("Network error")),!1),a.open(e,t),r)for(const e of n.entries(r))a.setRequestHeader(e[0],e[1]);a.responseType="arraybuffer",a.send()})}class Dr extends nr{constructor(e,t={}){super(),n.assign(this,{url:e,reader:t.useXHR&&!t.fetch?new ur(e,t):new cr(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(e){return this.reader.createReadable(e)}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class Cr extends nr{constructor(e){super(),this.X=e}async init(){const e=this;e._=0;const t=e.X=await g.all(e.X.map(Tr));e.$=t.map(t=>{const n=e.size;return e.size+=t.size,n}),super.init()}J(e){const{$:t,size:n}=this,r=t[e];return r===j?n:r}async readUint8Array(e,t){const n=this,{X:r}=this;let o,s=0,i=e;for(;r[s]&&i>=r[s].size;)i-=r[s].size,s++;const c=r[s];if(c){const r=c.size;if(i+t>r){const s=r-i;o=ft(await Er(c,i,s),await n.readUint8Array(e+s,t-s))}else o=await Er(c,i,t)}else o=$;return n._=a.max(s,n._),o}}class Ar extends tr{constructor(e,t=4294967295){super();const r=this;let o,s,a;n.assign(r,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const i=new R({async write(t){if(t===er)return void(a&&await u());const{availableSize:n}=r;if(a)t.length<n?await c(t):(await c(t.subarray(0,n)),await u(),t.length>n&&await this.write(t.subarray(n)));else{const{value:n,done:i}=await e.next();if(i&&!n)throw new l("Writer iterator completed too soon");o=n,o.size=0,o.maxSize&&(r.maxSize=o.maxSize),r.availableSize=r.maxSize,await Ur(o),s=n.writable,a=s.getWriter(),await this.write(t)}},async close(){a&&(await a.ready,await f())},async abort(e){a&&await a.abort(e)}});async function c(e){const t=e.length;t&&(await a.ready,await a.write(e),o.size+=t,r.availableSize-=t)}async function u(){await f(),r.diskOffset+=o.size,r.diskNumber++,a=null,r.availableSize=r.maxSize}async function f(){await a.close()}n.defineProperty(r,Yn,{get:()=>i})}async closeDisk(){const e=this.writable.getWriter();try{await e.ready,await e.write(er)}finally{e.releaseLock()}}}class Fr{constructor(e){return t.isArray(e)&&(e=new Cr(e)),(e instanceof z||typeof e.getReader==K)&&(e={readable:on(e)}),e}}class Ir{constructor(e){e.writable===j&&typeof e.next==K&&(e=new Ar(e)),(e instanceof R||typeof e.getWriter==K)&&(e={writable:an(e)});try{e.size=e.size===j?0:e.size}catch{throw new l("Invalid writer (size must be writable)")}return e}}async function Ur(e,t){if(!e.init||e.initialized)return g.resolve();await e.init(t)}async function Tr(e){return e=new Fr(e),await Ur(e),e.size!==j&&e.readUint8Array||(e=new ar(await sn(e.readable)),await Ur(e)),e}function Er(e,t,n){return e.readUint8Array(t,n)}function Wr(e,t,n){if(!e.some(e=>e.reason==t)){const r={reason:t};n!==j&&(r.filename=n),e.push(r)}}const Mr="filename",Or="rawFilename",Lr="comment",Pr="rawComment",Hr="uncompressedSize",Br="compressedSize",Vr="offset",Zr="diskNumberStart",qr="lastModDate",Nr="rawLastModDate",jr="lastAccessDate",Gr="rawLastAccessDate",Kr="creationDate",Xr="rawCreationDate",_r=[Mr,Or,Hr,Br,qr,Nr,Lr,Pr,jr,Gr,Kr,Xr,Vr,Zr,"internalFileAttributes","externalFileAttributes","msdosAttributesRaw","msdosAttributes","msDosCompatible","zip64","encrypted","version","versionMadeBy","zipCrypto","directory","executable","symlink","compressionMethod","signature","crc32","extraField","extraFieldUnix","extraFieldInfoZip","extraFieldUnixType1","extraFieldPkwareUnix","uid","gid","unixMode","unixExternalUpper","setuid","setgid","sticky","bitFlag","rawBitFlag","filenameLength","extraFieldLength","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp","extraFieldUSDZ"];class $r{constructor(e){_r.forEach(t=>this[t]=e[t])}}const Jr="File format is not recognized",Qr="Encryption method not supported",Yr="Split zip file",eo="malformed extra field",to="wrapped entries count",no="appended data",ro="prepended data",oo="mismatched zip64 end of central directory record",so=/^[a-zA-Z]:/,ao=/(^|[\\/])\.\.([\\/]|$)/,io="utf-8",co="cp437",uo=[[Hr,T],[Br,T],[Vr,T],[Zr,E]],fo={[E]:{Y:qo,bytes:4},[T]:{Y:No,bytes:8}},wo=s(o.MAX_SAFE_INTEGER);class lo{constructor(e,t){n.assign(this,{reader:e,options:t})}async getData(e,t,r,s={}){const i=this,c=le(),{reader:u,index:f,offset:p,diskNumberStart:h,extraFieldAES:m,extraFieldZip64:y,compressionMethod:b,bitFlag:v,rawBitFlag:S,crc32:k,rawLastModDate:x,uncompressedSize:z,compressedSize:D}=i,{dataDescriptor:C}=v,A=t.localDirectory={},F=t.warnings=[],U=Ro(u,h)+p,T=await Er(u,U,30),E=wt(T);let M=Lo(i,s,"password"),L=Lo(i,s,"rawPassword");const P=(e=>{if(e!==j&&typeof e!=_&&"compressed"!==e)throw new l("Invalid passThrough option (must be a boolean or 'compressed')");return e})(Lo(i,s,"passThrough")),H=!!P,B=!0===P;if(((e,t)=>{if(e&&typeof e!=X||t&&!(t instanceof d))throw new l("Invalid password (password must be a string, rawPassword must be a Uint8Array)")})(M,L),M=M&&M.length&&M,L=L&&L.length&&L,m&&99!=m.originalCompressionMethod)throw new l(_e);if(30>T.length||67324752!=qo(E,0))throw new l("Local file header not found");yo(A,E,4);const{extraFieldLength:V,filenameLength:Z}=A,q=A.dataOffset=U+30+Z+V,N=Lo(i,s,"checkLocalDirectory"),G=Ao(s,i.options),J=((e,t)=>e===j?t!=ee:!!e)(N,G),Y=Lo(i,s,"checkLocalFilename"),te=((e,t)=>e===j?t==Q:!!e)(Y===j?N:Y,G);let ne=$;if(te&&(Z||V)){const e=await Er(u,U+30,Z+V);ne=e.subarray(0,Z),A.rawExtraField=e.subarray(Z)}else A.rawExtraField=V?await Er(u,U+30+Z,V):$;te&&(A.rawFilename=ne),go(i,A,E,4,!0)&&Wr(F,eo),((e,t,n,r,o)=>{const{rawFilename:s}=e,a=!o,i=e.ee&&!(8192&~t.rawBitFlag);!r||i||n.length==s.length&&!n.some((e,t)=>e!=s[t])||Mo(a,o,"mismatched local file header (filename)"),(2057&t.rawBitFlag)!=(2057&e.rawBitFlag)&&Mo(a,o,"mismatched local file header (general purpose bit flag)"),t.compressionMethod!=e.compressionMethod&&Mo(a,o,"mismatched local file header (compression method)"),t.bitFlag.dataDescriptor||i||!(t.crc32||t.compressedSize||t.uncompressedSize)||t.crc32==e.crc32&&t.compressedSize==e.compressedSize&&t.uncompressedSize==e.uncompressedSize||Mo(a,o,"mismatched local file header (crc32 or sizes)")})(i,A,ne,te,J?j:F);const{lastAccessDate:re,creationDate:oe,uid:se,gid:ae}=A;re&&(t.lastAccessDate=re),oe&&(t.creationDate=oe),se!==j&&t.uid===j&&(t.uid=se),ae!==j&&t.gid===j&&(t.gid=ae);const ie=Lo(i,s,"checkPasswordOnly"),ce=i.encrypted&&A.encrypted&&(!B||ie),ue=ce&&!m;if(B||(t.zipCrypto=ue),ce&&!(64&~A.rawBitFlag))throw new l(Qr);const fe=H?j:(e=>$e.get(e))(b);if(0!=b&&8!=b&&9!=b&&!fe&&!H)throw new l(_e);if(ce){if(!ue&&(1>m.strength||m.strength>3))throw new l(Qr);if(!M&&!L)throw new l("File contains encrypted entry")}if(q+D>u.size)throw new l("Entry data out of bounds");const we=D,de=(e=>{if(e&&(typeof e.addEventListener!=K||typeof e.aborted!=_))throw new l("Invalid signal (must be an AbortSignal instance)");return e||j})(Lo(i,s,"signal"));(e=>{if(e&&e.aborted)throw e.reason===j?new DOMException("The operation was aborted","AbortError"):e.reason})(de);let pe=Lo(i,s,"checkOverlappingEntry");const he=Lo(i,s,"checkOverlappingEntryOnly");he&&(pe=!0);const{onstart:me,onprogress:ye,onend:ge}=s,be=0!=b&&!H,ve=H?D-((e,t,n)=>e?t?12:16+4*n:0)(ce,ue,m&&m.strength):z,Se=9==b;let ke=Lo(i,s,"useCompressionStream");Se&&(ke=!1);const xe=Lo(i,s,"checkCrc32"),ze=(xe===j?Lo(i,s,"checkSignature"):xe)&&!H&&(!ce||ue||m&&1==m.vendorVersion),Re={options:{codecType:kn,password:M,rawPassword:L,zipCrypto:ue,encryptionStrength:m&&m.strength,checkCrc32:ze,checkAuthenticationCode:Lo(i,s,"checkAuthenticationCode"),passwordVerification:ue&&(C?x>>>8&W:k>>>24&W),outputSize:ve,crc32:k,compressed:be,encrypted:ce,useWebWorkers:Lo(i,s,"useWebWorkers"),useCompressionStream:ke,transferStreams:Lo(i,s,"transferStreams"),deflate64:Se,format:fe?fe.format:j,codecURI:fe?fe.codecURI:j,compressionMethod:b,rawBitFlag:S,checkPasswordOnly:ie},config:c,U:{signal:de,size:we,onstart:me,onprogress:ye,onend:ge}};let De,Ce,Ae;pe&&await(async({reader:e,te:t,index:n,offset:r,crc32:o,compressedSize:s,uncompressedSize:a,dataOffset:i,dataDescriptor:c,extraFieldZip64:u,ne:f})=>{let w=0;if(c&&(w=u?20:12),w){const n=await Er(e,i+s,w+4),r=wt(n);let c=n.length==w+4&&qo(r,0)==O;if(c){const e=zo(r,4,u);(t.encrypted&&!t.zipCrypto||e.crc32==o)&&e.compressedSize==s&&e.uncompressedSize==a?w+=4:c=!1}if(n.length>=w){const e=zo(r,c?4:0,u);e.signature=c,t.localDirectory.dataDescriptor=e}}const d={start:r,end:i+s+w,te:t},{re:p,oe:h,se:m}=f;if(!p.has(n)){const e=((e,t)=>{let n=0,r=e.length;for(;r>n;){const o=n+r>>>1;e[o].start<t.start?n=o+1:r=o}const o=e[n-1],s=e[n];return o&&xo(t,o)?o:s&&xo(t,s)?s:void 0})(h,d)||m.find(e=>xo(d,e));if(e){const t=new l("Overlapping entry found");throw t.overlappingEntry=e.te,t}p.add(n),m.push(d),m.length*m.length>h.length&&(m.sort((e,t)=>e.start-t.start),f.oe=((e,t)=>{const n=[];let r=0,o=0;for(;r<e.length||o<t.length;)o==t.length||r<e.length&&e[r].start<t[o].start?n.push(e[r++]):n.push(t[o++]);return n})(h,m),m.length=0)}})({reader:u,te:t,index:f,offset:U,crc32:k,compressedSize:D,uncompressedSize:z,dataOffset:q,dataDescriptor:C||A.bitFlag.dataDescriptor,extraFieldZip64:y||A.extraFieldZip64,ne:r});try{if(!he){ie&&(e=new R),e=new Ir(e),await Ur(e,((e,t,n)=>a.min(e,n?1032*t:t))(ve,D,be)),({writable:De}=e);const t=on(u.createReadable({offset:q,size:we})),{outputSize:r}=await async function(e,t){const{options:n,config:r}=t,{transferStreams:s,useWebWorkers:a,useCompressionStream:i,compressed:c,checkCrc32:u,computeCrc32:f,encrypted:d,format:p,codecURI:h}=n,{workerURI:m,createWorker:y,maxWorkers:b}=r;p&&(h&&(n.codecURI=((e,t)=>{try{return new w(e,t).toString()}catch{return e}})(h,r.baseURI)),await(async(e,t)=>{!Je.has(e)&&t&&((e,t)=>{const{CompressionStream:n,DecompressionStream:r}=t;if(typeof n!=K&&typeof r!=K)throw new l("Invalid codec module");Je.set(e,{CompressionStream:n,DecompressionStream:r})})(e,await(import(t)))})(p,n.codecURI)),t.transferStreams=!p&&(s||s===j&&r.transferStreams);const v=!(c||u||f||d),S=p===j||!!n.codecURI;return t.useWebWorkers=!v&&S&&(a||a===j&&r.useWebWorkers),t.workerURI=t.useWebWorkers&&m?m:j,t.createWorker=t.useWebWorkers&&y?y:j,n.useCompressionStream=i||i===j&&r.useCompressionStream,(await(async()=>{const n=In.find(e=>!e.T);if(n)return Bn(n),new Cn(n,e,t,k);if(In.length<b){const n={ae:Wn};return Wn++,In.push(n),new Cn(n,e,t,k)}return new g(n=>{Un.push({resolve:n,stream:e,M:t}),En=r.workerStarvationTimeout,Mn()})})()).run();function k(e){if(On(),e.B)return e.B=!1,(()=>{const e=Un.splice(0).map(({resolve:e,stream:t,M:n})=>new g(r=>{e(new Cn({},t,Pn(n),()=>{Hn(),r()}))}));return On(),g.all(e)})();if(Un.length){const[{resolve:t,stream:n,M:r}]=Un.splice(0,1);t(new Cn(e,n,r,k)),Mn()}else e.O?(Bn(e),((e,t)=>{const{config:n}=t,{terminateWorkerTimeout:r}=n;o.isFinite(r)&&r>=0&&(e.V=I(async()=>{In=In.filter(t=>t!=e);try{await e.terminate()}catch{}},r))})(e,t)):In=In.filter(t=>t!=e)}}({readable:t,writable:De},Re);if(r!=ve)throw n.assign(new l(cn),{outputSize:r});e.size+=r}}catch(t){const{outputSize:n}=Re;if(n!==j?e.size+=n:Rn(t)&&t.outputSize!==j&&(e.size+=t.outputSize),!ie||!Rn(t)||t.message!=Ft)throw Ce=t,Ae=!0,t}finally{const t=!(e=>!(!e||!e.getData))(e)&&Lo(i,s,"preventClose");if(!t&&De&&!De.locked){const e=De.getWriter();if(Ae)try{await e.abort(Ce)}catch{}else await e.close()}}return ie||he?j:e.getData?e.getData():De}}function po(e){const t=a.min(e.byteLength,1024)-3;for(let n=0;t>n;n++)if(134630224==qo(e,n))return!0;return!1}function ho(e,t,n){let r=0;for(;n+46<=t.length&&qo(e,n)==L;)n+=46+Zo(e,n+28)+Zo(e,n+30)+Zo(e,n+32),r++;return r%65536?0:r}function mo(e){if(e.length>=6){const t=wt(e);if(84233040==qo(t,0)){const n=Zo(t,4);if(6+n<=e.length)return new d(e.subarray(6,6+n))}}}function yo(e,t,r){const o=e.rawBitFlag=Zo(t,r+2),s=!(1&~o),a=qo(t,r+6);n.assign(e,{encrypted:s,version:Zo(t,r),bitFlag:{level:(6&o)>>1,dataDescriptor:!(8&~o),languageEncodingFlag:!(2048&~o)},rawLastModDate:a,lastModDate:Ho(a),filenameLength:Zo(t,r+22),extraFieldLength:Zo(t,r+24)})}function go(e,t,r,o,s){const{rawExtraField:a}=t,u=t.extraField=new c,f=wt(a);let w=0,d=!1;try{for(;w<a.length;){const e=Zo(f,w),t=Zo(f,w+2);u.set(e,{type:e,data:a.slice(w+4,w+4+t)}),w+=4+t}}catch{d=!0}w>a.length&&(d=!0);const p=Zo(r,o+4);n.assign(t,{signature:qo(r,o+10),crc32:qo(r,o+10),compressedSize:qo(r,o+14),uncompressedSize:qo(r,o+18)});const h=u.get(1);h&&(((e,t)=>{t.zip64=!0;const n=wt(e.data),r=uo.filter(([e,n])=>t[e]==n),o=r.reduce((e,[,t])=>e+fo[t].bytes,0);if(e.data.length<o)throw new l("Zip64 extra field not found");for(let o=0,s=0;o<r.length;o++){const[a,i]=r[o],c=fo[i];t[a]=e[a]=c.Y(n,s),s+=c.bytes}})(h,t),t.extraFieldZip64=h);const m=u.get(28789);m&&(bo(m,Mr,Or,t,e),t.extraFieldUnicodePath=m);const y=u.get(25461);y&&(bo(y,Lr,Pr,t,e),t.extraFieldUnicodeComment=y);const g=u.get(39169);g&&g.data.length>=7?(((e,t,r)=>{const o=wt(e.data),s=Vo(o,4);n.assign(e,{vendorVersion:Vo(o,0),vendorId:Vo(o,2),strength:s,originalCompressionMethod:r,compressionMethod:Zo(o,5)}),t.compressionMethod=e.compressionMethod,1!=e.vendorVersion&&(t.crc32=j)})(g,t,p),t.extraFieldAES=g):t.compressionMethod=p;const b=u.get(13);b&&(vo(b,t),t.extraFieldPkwareUnix=b);const v=u.get(22613);v&&(vo(v,t),t.extraFieldUnixType1=v);const S=u.get(10);S&&(((e,t)=>{const r=wt(e.data);let o,s=4;try{for(;s<e.data.length&&!o;){const t=Zo(r,s),n=Zo(r,s+2);1==t&&(o=e.data.slice(s+4,s+4+n)),s+=4+n}}catch{}if(o&&24==o.length){const r=wt(o),s=r.getBigUint64(0,!0),a=r.getBigUint64(8,!0),i=r.getBigUint64(16,!0);n.assign(e,{rawLastModDate:s,rawLastAccessDate:a,rawCreationDate:i});const c={lastModDate:Bo(s),lastAccessDate:Bo(a),creationDate:Bo(i)};n.assign(e,c),n.assign(t,c,{rawLastAccessDate:a,rawCreationDate:i})}})(S,t),t.extraFieldNTFS=S);const k=u.get(30805);let x;if(k&&(x=So(k,t,!1),t.extraFieldUnix=k),!x){const e=u.get(30837);e&&(So(e,t,!0),t.extraFieldInfoZip=e)}const z=u.get(21589);z&&(((e,t,n)=>{if(!e.data.length)return;const r=wt(e.data),o=Vo(r,0),s=[],a=[];n?(1&~o||(s.push(qr),a.push(Nr)),2&~o||(s.push(jr),a.push(Gr)),4&~o||(s.push(Kr),a.push(Xr))):5>e.data.length||(s.push(qr),a.push(Nr));let c=1;s.forEach((n,o)=>{if(e.data.length>=c+4){const s=qo(r,c);t[n]=e[n]=new i(1e3*(0|s));const u=a[o];e[u]=s}c+=4})})(z,t,s),t.extraFieldExtendedTimestamp=z);const R=u.get(6534);return R&&(t.extraFieldUSDZ=R),d}function bo(e,t,r,o,s){if(5>e.data.length)return void(e.valid=!1);const a=wt(e.data),i=new ct;i.append(s[r]);const c=wt(new d(4));c.setUint32(0,i.get(),!0);const u=qo(a,1),f=Vo(a,0);n.assign(e,{version:f,[t]:Zn(e.data.subarray(5)),valid:1==f&&!s.bitFlag.languageEncodingFlag&&u==qo(c,0)}),e.valid&&(o[t]=e[t],o[t+"UTF8"]=!0)}function vo(e,t){if(8>e.data.length)return;const r=wt(e.data),o={lastAccessDate:new i(1e3*(0|qo(r,0))),lastModDate:new i(1e3*(0|qo(r,4)))};12>e.data.length||(o.uid=Zo(r,8),o.gid=Zo(r,10)),n.assign(e,o),n.assign(t,o)}function So(e,t,r){try{const o=wt(e.data);let s,a;if(r){let t=0;const r=Vo(o,t++),i=Vo(o,t++);s=ko(e.data.subarray(t,t+i)),t+=i;const c=Vo(o,t++);a=ko(e.data.subarray(t,t+c)),n.assign(e,{version:r,uid:s,gid:a})}else 4>e.data.length||(s=Zo(o,0),a=Zo(o,2),n.assign(e,{uid:s,gid:a}));return s!==j&&(t.uid=s),a!==j&&(t.gid=a),s!==j||a!==j}catch{}}function ko(e){const t=new d(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function xo(e,t){return e.start<t.end&&t.start<e.end}function zo(e,t,n){const r=qo(e,t);let o,s;return n?(o=No(e,t+4),s=No(e,t+12)):(o=qo(e,t+4),s=qo(e,t+8)),{crc32:r,compressedSize:o,uncompressedSize:s}}function Ro(e,t){return e.J?e.J(t):0}async function Do(e){return qo(wt(await Er(e,0,4)))}function Co(e){return e===Q||e===Y||e===ee}function Ao(e,t){return Fo(e,Fo(t,Y))}function Fo(e,t){const n=e.strictness;if(n!==j){if(!Co(n))throw new l("Invalid strictness (must be 'strict', 'balanced' or 'tolerant')");return n}const r=e.checkAmbiguity;return r===j?t:r?Q:t==ee?ee:Y}function Io(e,t){if(t==ee)return!1;const n=e.split("/");return n.length>1&&""===n[n.length-1]&&n.pop(),!!(ao.test(e)||e.startsWith("/")||e.startsWith("\\")||so.test(e))||t==Q&&(n.includes(".")||n.includes("")||e.includes("\0"))}async function*Uo(e,t){const n=e.size-t,r=await Er(e,n,t),o=wt(r);for(let e=r.length-B;e>=0;e--)101010256==qo(o,e)&&(yield[o,n,r,e,n+e])}function To(e,t,n){return{offset:n,buffer:new d(e.subarray(t,t+B)).buffer}}async function Eo(e,t,n,r,o,s,a){const i=Zo(t,r+10),c=qo(t,r+12),u=qo(t,r+16);if(i==E||c==T||u==T)return await Wo(e,t,n,o-V,s,a)==H?2:0;if(!i&&!c)return 1;const f=Zo(t,r+6);for(const r of[o-c,Ro(e,f)+u])if(await Wo(e,t,n,r,s,a)==L)return 2;return 0}async function Wo(e,t,n,r,o,s){return 0>r||r+4>o?j:n>r?s.count>0?(s.count--,qo(wt(await Er(e,r,4)),0)):j:qo(t,r-n)}function Mo(e,t,n){e?Oo(n):Wr(t,n)}function Oo(e){const t=new l("Ambiguous archive");throw t.reason=e,t}function Lo(e,t,n){return t[n]===j?e.options[n]:t[n]}function Po(e,t,n){return te(Lo(e,t,n))}function Ho(e){const t=(4294901760&e)>>16,n=e&E,r=new i(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&n)>>11,(2016&n)>>5,2*(31&n),0);return N>r?N:r}function Bo(e){return new i(o(e/s(1e4)-s(116444736e5)))}function Vo(e,t){return e.getUint8(t)}function Zo(e,t){return e.getUint16(t,!0)}function qo(e,t){return e.getUint32(t,!0)}function No(e,t){const n=e.getBigUint64(t,!0);if(n>wo)throw new l("64-bit value exceeds Number.MAX_SAFE_INTEGER");return o(n)}(e=>{const t=he(ye(e));n.assign(oe,t),n.assign(we,t)})({workerURI:null,wasmURI:null,DecompressionStreamFallback:class extends Xe{constructor(e){(e=>{if("deflate-raw"!=e)throw new TypeError("Unsupported compression format: "+e)})(e),super(new Ge)}}}),e.BlobReader=ar,e.BlobWriter=ir,e.Data64URIWriter=class extends rr{constructor(e){super(),n.assign(this,{contentType:e,data:"data:"+(e||"")+";base64,",ie:""})}writeUint8Array(e){const t=this;let n,o=t.ie;const s=t.ie.length;for(t.ie="",n=0;n<3*a.floor((s+e.length)/3)-s;n++)o+=r.fromCharCode(e[n]);for(;n<e.length;n++)t.ie+=r.fromCharCode(e[n]);o.length>2?t.data+=k(o):t.ie=o+t.ie}getData(){return this.data+k(this.ie)}},e.HttpRangeReader=class extends Dr{constructor(e,t={}){super(e,n.assign({},t,{useRangeHeader:!0}))}},e.TextWriter=class extends ir{constructor(e){super(),n.assign(this,{encoding:e,ce:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,ce:t}=this,n=await super.getData();return n.text&&t?n.text():((e,t)=>Nn(e,t,!1))(new d(await n.arrayBuffer()),e)}},e.ZipReader=class{constructor(e,t={}){n.assign(this,{reader:new Fr(e),options:t,ne:{re:new u,oe:[],se:[]}})}async*getEntriesGenerator(e={}){const t=this;let{reader:r}=t;if(await Ur(r),r.size!==j&&r.readUint8Array||(r=new ar(await sn(r.readable)),await Ur(r)),r.size<B)throw new l(Jr);const s=t.warnings=[],i=Ao(e,t.options),c=i==Q,f=i!=ee,w=((e,t)=>{if(e!==j){const t=ne(e);if("number"!=typeof t||o.isNaN(t)||0>t)throw new l("Invalid maxAppendedDataSize (must be a number greater than or equal to 0)");return t}return t==Q?0:t==ee?1/0:E})(Lo(t,e,"maxAppendedDataSize"),i),p=((e,t)=>{if(e===j)return t;if(!Co(e))throw new l("Invalid filenameValidation (must be 'strict', 'balanced' or 'tolerant')");return e})(Lo(t,e,"filenameValidation"),i),h=Lo(t,e,"normalizeFilename"),{ue:m,fe:y}=await(async(e,t,n)=>{const{size:r}=e,o=a.min(r,65557),s={count:64};let i,c,u=0;for await(const[n,a,f,w,l]of Uo(e,o)){const o=Zo(n,w+20);if(l+B+o==r){const o=await Eo(e,n,a,w,l,r,s);if(2==o){if(i||(i=To(f,w,l)),u++,!t||u>1)break}else 1!=o||c||(c=To(f,w,l))}}return i||(i=c),i||(i=await(async(e,t,n)=>{const{size:r}=e,o=a.min(r,t==1/0?r:65557+t);let s,i;for await(const[t,a,c,u,f]of Uo(e,o)){const o=To(c,u,f);s||(s=o);const w=await Eo(e,t,a,u,f,r,n);if(2==w)return o;1!=w||i||(i=o)}return i||s})(e,n,s)),{ue:i,fe:u}})(r,f,w);if(!m)throw await(async e=>await Do(e)==M)(r)?new l(Yr):new l("End of central directory not found");f&&y>1&&Oo("multiple end of central directory records");const g=wt(m);let b=qo(g,12),v=qo(g,16);const S=m.offset,k=Zo(g,20),z=S+B+k,R=r.size-z;R>w&&Oo(no),R>0&&Wr(s,no);let D=Zo(g,4);const C=r._||0;let A,F,I,U,O,N=Zo(g,6),G=Zo(g,10),K=0,X=Z;const _=v==T||b==T||G==E||N==E;if(v!=T&&N!=E&&(v+=Ro(r,N)),_){const e=m.offset<V?$:await Er(r,m.offset-V,V),t=wt(e);if(e.length==V&&qo(t,0)==H){v=Ro(r,qo(t,4))+No(t,8);let e=await Er(r,v,Z),o=wt(e);const i=m.offset-V-Z;if((e.length<Z||qo(o,0)!=P)&&v!=i&&i>=0){const t=v;v=i,v>t&&(K=v-t),e=await Er(r,v,Z),o=wt(e)}if(e.length<Z||qo(o,0)!=P)throw new l("End of Zip64 central directory locator not found");if(I=!0,U=No(o,4)>44,U){const e=a.min(No(o,4)-44,r.size-v-Z);e>0&&(X+=e,O=(e=>{const t={rawExtensibleData:e};if(e.length>=28){const r=wt(e),o=Zo(r,26);n.assign(t,{compressionMethod:Zo(r,0),compressedSize:No(r,2),uncompressedSize:No(r,10),encryptionAlgorithm:Zo(r,18),bitLength:Zo(r,20),flags:Zo(r,22),hashAlgorithm:Zo(r,24),hashData:e.subarray(28,28+o)})}return t})(await Er(r,v+Z,e)))}D==E?D=qo(o,16):D!=qo(o,16)&&Mo(c,s,oo),N==E?N=qo(o,20):N!=qo(o,20)&&Mo(c,s,oo),G==E?G=No(o,32):G!=No(o,32)&&Mo(c,s,oo),b==T?b=No(o,40):b!=No(o,40)&&Mo(c,s,oo),v=Ro(r,N)+No(o,48)+K}}let J=b;const Y=m.offset-(I?X+V:0);if(v<r.size||(K=r.size-v-b-B,v=r.size-b-B),C!=D)throw new l(Yr);if(0>v)throw new l(Jr);let te=0,re=await Er(r,v,b),oe=wt(re);if(b){if(4>re.length)throw new l(Jr);const e=Y-b;if(v!=e&&N==D){const t=qo(oe,te)==L||!(!O||!O.compressedSize)||po(oe);let n=!t;if(n||0>e||e+4>r.size||(n=qo(wt(await Er(r,e,4)),0)==L),n){const n=v;v=e,v>n&&(K+=v-n,A=t),re=await Er(r,v,b),oe=wt(re)}}}const se=Y-v;if(b==se||0>se||N!=D||(b=se,re=await Er(r,v,b),oe=wt(re)),0>v||v>=r.size)throw new l(Jr);t.directoryOffset=v,t.directoryLength=J;const ae=Po(t,e,"decryptCentralDirectory");let ie,ce;if(ae&&G&&re.length>=4&&qo(oe,0)!=L&&(U||po(oe))){const e=((e,t,n)=>{const r=e&&e.compressedSize?e.compressedSize:t;return r>0&&n>=r?r:n})(O,J,re.length);ce=re.subarray(e),re=await ae(re.subarray(0,e),O),oe=wt(re),J=re.length,ie=!0}!O||ie||re.length>=4&&qo(oe,0)!=L||Wr(s,"unknown zip64 extensible data"),F=v;const ue=Lo(t,e,"filenameEncoding"),fe=Lo(t,e,"commentEncoding"),we=new u;let le,de=-1;const pe=!c&&!I;!G&&pe&&(G=ho(oe,re,te),G&&Wr(s,to));for(let o=0;G>o;o++){const i=new lo(r,t.options);if(te+46>re.length||qo(oe,te)!=L){if(0==o&&!ie&&(U||po(oe)))throw new l("Encrypted central directory is not supported");throw new l("Central directory header not found")}yo(i,oe,te+6);const c=!!i.bitFlag.languageEncodingFlag,u=te+46,f=u+i.filenameLength+i.extraFieldLength,w=Zo(oe,te+4),m=!(w>>8),y=w>>8==3,g=Zo(oe,te+32),b=f+g,v=new d(re.subarray(u,b)),S=v.subarray(0,i.filenameLength),k=v.subarray(i.filenameLength+i.extraFieldLength),z=c||!ue&&qn(S),R=c||!fe&&qn(k),D=qo(oe,te+38),C=D&W,A={readOnly:!!(1&C),hidden:!!(2&C),system:!!(4&C),directory:!!(16&C),archive:!!(32&C)},I=qo(oe,te+42),T=Po(t,e,"decodeText")||Zn,M=z?io:ue||co,O=R?io:fe||co;let P=T(S,M,"filename");if(P===j&&(P=Zn(S,M)),h){const e=h(P);e!==j&&(P=e)}if(Io(P,p)){const e=new l("Unsafe filename");throw e.filename=P,e}let H=T(k,O,"comment");H===j&&(H=Zn(k,O)),n.assign(i,{index:o,ee:ie,versionMadeBy:w,msDosCompatible:m,zip64:!1,compressedSize:0,uncompressedSize:0,we:g,offset:I,diskNumberStart:Zo(oe,te+34),internalFileAttributes:Zo(oe,te+36),externalFileAttributes:D,msdosAttributesRaw:C,msdosAttributes:A,rawFilename:S,filenameUTF8:z,commentUTF8:R,rawExtraField:v.subarray(i.filenameLength,i.filenameLength+i.extraFieldLength),rawComment:k,filename:P,comment:H}),go(i,i,oe,te+6)&&Wr(s,eo,P),i.offset+=K;const B=Ro(r,i.diskNumberStart)+i.offset;F=a.min(B,F),de>B&&Wr(s,"unsorted central directory",P),de=B,(i.version&W)>63&&Wr(s,"unknown version needed to extract",P),32&~i.rawBitFlag||Wr(s,"compressed patched data",P),we.has(i.filename)&&(le=!0),we.add(i.filename);const V=i.externalFileAttributes>>16&E;i.unixMode===j&&16877&V&&(i.unixMode=V);const Z=!!(2048&i.unixMode),N=!!(1024&i.unixMode),X=!!(512&i.unixMode),_=40960==((i.unixMode===j?V:i.unixMode)&q),$=!_&&(i.unixMode!==j?!!(73&i.unixMode):y&&!!(73&V)),J=i.unixMode!==j&&16384==(i.unixMode&q),Q=16384==(V&q);n.assign(i,{setuid:Z,setgid:N,sticky:X,symlink:_,unixExternalUpper:V,executable:$,directory:J||Q||m&&A.directory||i.filename.endsWith("/"),zipCrypto:i.encrypted&&!i.extraFieldAES});const Y=new $r(i);if(Y.getData=(e,n)=>i.getData(e,Y,t.ne,n),Y.arrayBuffer=async e=>{const r=new x,o=sn(r.readable).then(e=>e.arrayBuffer());return o.catch(()=>{}),await i.getData(r,Y,t.ne,n.assign({},e,{preventClose:!1})),o},te=b,o==G-1&&pe){const e=ho(oe,re,te);e&&(G+=e,Wr(s,to))}const{onprogress:ee}=e;if(ee)try{await ee(o+1,G,new $r(i))}catch{}yield Y}let he=te,me=mo(re.subarray(te))||(ie?mo(ce):j);if(!me&&!ie){const e=v+te,t=a.min(Y-e,65541);6>t||(me=mo(await Er(r,e,t)))}me&&(t.digitalSignature=me,he=te+6+me.length),(te!=J&&he!=J||!ie&&te!=b&&he!=b)&&Mo(c,s,"trailing central directory data"),le&&Mo(c,s,"duplicate filename");const ye=Lo(t,e,"extractPrependedData"),ge=Lo(t,e,"extractAppendedData"),be=(c||ye)&&G&&4==F&&await(async e=>{const t=await Do(e);return t==M||808471376==t})(r)?4:0;return c&&(K||G&&F>be)&&Oo(ro),(K||G&&F>4)&&Wr(s,ro),A&&Wr(s,"prepended central directory"),ye&&(t.prependedData=F>be?await Er(r,be,F-be):$),t.comment=k?await Er(r,S+B,k):$,ge&&(t.appendedData=z<r.size?await Er(r,z,r.size-z):$),!0}async getEntries(e={}){const t=[];for await(const n of this.getEntriesGenerator(e))t.push(n);return t}async close(){const{reader:e}=this;e.readUint8Array||!e.readable||e.readable.locked||await e.readable.cancel()}[J](){return this.close()}},e.configure=e=>{n.assign(we,he(ye(e)))},e.inflateRaw=(e,t)=>Ne(e,{i:2},t&&t.le,t&&t.m)});
@@ -31,7 +31,7 @@ const bundledTerserOptions = {
31
31
  }
32
32
  };
33
33
 
34
- const GLOBALS = "const { Array, Object, String, Number, BigInt, Math, Date, Map, Set, Response, URL, Error, Uint8Array, Uint16Array, Uint32Array, DataView, Blob, Promise, TextEncoder, TextDecoder, crypto, btoa, TransformStream, ReadableStream, WritableStream, CompressionStream, DecompressionStream, navigator, Worker, setTimeout, clearTimeout } = typeof globalThis !== 'undefined' ? globalThis : this || self;";
34
+ const GLOBALS = "const { Array, Object, String, Number, BigInt, Math, Date, Map, Set, Response, URL, Error, Uint8Array, Uint16Array, Uint32Array, DataView, Blob, Promise, TextEncoder, TextDecoder, crypto, btoa, TransformStream, ReadableStream, WritableStream, CompressionStream, DecompressionStream, navigator, Worker, setTimeout, clearTimeout } = typeof globalThis !== 'undefined' ? globalThis : self;";
35
35
  const GLOBALS_WORKER = "const { Array, Object, Number, Math, Error, Uint8Array, Uint16Array, Uint32Array, Int32Array, Map, DataView, Promise, TextEncoder, crypto, postMessage, TransformStream, ReadableStream, WritableStream, CompressionStream, DecompressionStream } = self;";
36
36
 
37
37
  export default [{