@zip.js/zip.js 2.6.3 → 2.6.6

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.
@@ -109,9 +109,7 @@ function sendMessage(message) {
109
109
  let { data } = message;
110
110
  if (data && data.length) {
111
111
  try {
112
- if (data.length != data.buffer.byteLength) {
113
- data = new Uint8Array(data);
114
- }
112
+ data = new Uint8Array(data);
115
113
  message.data = data.buffer;
116
114
  postMessage(message, [message.data]);
117
115
  } catch (_error) {
@@ -26,7 +26,10 @@
26
26
  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
27
  */
28
28
 
29
+ /* global WritableStream */
30
+
29
31
  import {
32
+ initStream,
30
33
  Reader,
31
34
  TextReader,
32
35
  TextWriter,
@@ -38,10 +41,12 @@ import {
38
41
  BlobWriter,
39
42
  HttpReader
40
43
  } from "./io.js";
41
- import { ZipReader } from "./zip-reader.js";
42
- import { ZipWriter } from "./zip-writer.js";
43
-
44
- const CHUNK_SIZE = 512 * 1024;
44
+ import {
45
+ ZipReader
46
+ } from "./zip-reader.js";
47
+ import {
48
+ ZipWriter
49
+ } from "./zip-writer.js";
45
50
 
46
51
  class ZipEntry {
47
52
 
@@ -115,13 +120,13 @@ class ZipFileEntry extends ZipEntry {
115
120
  if (!writer || (writer.constructor == zipEntry.Writer && zipEntry.data)) {
116
121
  return zipEntry.data;
117
122
  } else {
118
- zipEntry.reader = new zipEntry.Reader(zipEntry.data, options);
119
- await zipEntry.reader.init();
120
- if (writer.init && !writer.initialized) {
121
- await writer.init();
122
- }
123
- zipEntry.uncompressedSize = zipEntry.reader.size;
124
- return pipe(zipEntry.reader, writer);
123
+ const reader = zipEntry.reader = new zipEntry.Reader(zipEntry.data, options);
124
+ await Promise.all([initStream(reader), initStream(writer)]);
125
+ zipEntry.uncompressedSize = reader.size;
126
+ const readable = reader.readable;
127
+ readable.size = () => reader.size;
128
+ await readable.pipeTo(writer.writable);
129
+ return writer.getData ? writer.getData() : writer.writable;
125
130
  }
126
131
  }
127
132
 
@@ -141,6 +146,10 @@ class ZipFileEntry extends ZipEntry {
141
146
  return this.getData(new Uint8ArrayWriter(), options);
142
147
  }
143
148
 
149
+ getWritable(writable = new WritableStream(), options) {
150
+ return this.getData({ writable }, options);
151
+ }
152
+
144
153
  replaceBlob(blob) {
145
154
  Object.assign(this, {
146
155
  data: blob,
@@ -176,6 +185,15 @@ class ZipFileEntry extends ZipEntry {
176
185
  reader: null
177
186
  });
178
187
  }
188
+
189
+ replaceReadable(readable) {
190
+ Object.assign(this, {
191
+ data: null,
192
+ Reader: function () { return { readable }; },
193
+ Writer: null,
194
+ reader: null
195
+ });
196
+ }
179
197
  }
180
198
 
181
199
  class ZipDirectoryEntry extends ZipEntry {
@@ -232,6 +250,12 @@ class ZipDirectoryEntry extends ZipEntry {
232
250
  });
233
251
  }
234
252
 
253
+ addReadable(name, readable) {
254
+ return addChild(this, name, {
255
+ Reader: function () { return { readable }; }
256
+ });
257
+ }
258
+
235
259
  addFileSystemEntry(fileSystemEntry) {
236
260
  return addFileSystemEntry(this, fileSystemEntry);
237
261
  }
@@ -256,6 +280,10 @@ class ZipDirectoryEntry extends ZipEntry {
256
280
  await this.importZip(new HttpReader(url, options), options);
257
281
  }
258
282
 
283
+ async importReadable(readable, options = {}) {
284
+ await this.importZip({ readable }, options);
285
+ }
286
+
259
287
  exportBlob(options = {}) {
260
288
  return this.exportZip(new BlobWriter("application/zip"), options);
261
289
  }
@@ -268,10 +296,13 @@ class ZipDirectoryEntry extends ZipEntry {
268
296
  return this.exportZip(new Uint8ArrayWriter(), options);
269
297
  }
270
298
 
299
+ async exportWritable(writable = new WritableStream(), options = {}) {
300
+ await this.exportZip({ writable }, options);
301
+ return writable;
302
+ }
303
+
271
304
  async importZip(reader, options) {
272
- if (!reader.initialized) {
273
- await reader.init();
274
- }
305
+ await initStream(reader);
275
306
  const zipReader = new ZipReader(reader, options);
276
307
  const entries = await zipReader.getEntries();
277
308
  entries.forEach((entry) => {
@@ -290,12 +321,11 @@ class ZipDirectoryEntry extends ZipEntry {
290
321
 
291
322
  async exportZip(writer, options) {
292
323
  const zipEntry = this;
293
- await initReaders(zipEntry);
294
- await writer.init();
324
+ await Promise.all([initReaders(zipEntry), initStream(writer)]);
295
325
  const zipWriter = new ZipWriter(writer, options);
296
326
  await exportZip(zipWriter, zipEntry, getTotalSize([zipEntry], "uncompressedSize"), options);
297
327
  await zipWriter.close();
298
- return writer.getData();
328
+ return writer.getData ? writer.getData() : writer.writable;
299
329
  }
300
330
 
301
331
  getChildByName(name) {
@@ -385,6 +415,10 @@ class FS {
385
415
  return this.root.addHttpContent(name, url, options);
386
416
  }
387
417
 
418
+ addReadable(name, readable) {
419
+ return this.root.addReadable(name, readable);
420
+ }
421
+
388
422
  addFileSystemEntry(fileSystemEntry) {
389
423
  return this.root.addFileSystemEntry(fileSystemEntry);
390
424
  }
@@ -408,6 +442,11 @@ class FS {
408
442
  await this.root.importHttpContent(url, options);
409
443
  }
410
444
 
445
+ async importReadable(readable, options) {
446
+ resetFS(this);
447
+ await this.root.importReadable(readable, options);
448
+ }
449
+
411
450
  exportBlob(options) {
412
451
  return this.root.exportBlob(options);
413
452
  }
@@ -415,6 +454,14 @@ class FS {
415
454
  exportData64URI(options) {
416
455
  return this.root.exportData64URI(options);
417
456
  }
457
+
458
+ exportUint8Array(options) {
459
+ return this.root.exportUint8Array(options);
460
+ }
461
+
462
+ exportWritable(writable, options) {
463
+ return this.root.exportWritable(writable, options);
464
+ }
418
465
  }
419
466
 
420
467
  const fs = { FS, ZipDirectoryEntry, ZipFileEntry };
@@ -443,6 +490,7 @@ function getZipBlobReader(options) {
443
490
  }
444
491
 
445
492
  async init() {
493
+ super.init();
446
494
  const zipBlobReader = this;
447
495
  zipBlobReader.size = zipBlobReader.entry.uncompressedSize;
448
496
  const data = await zipBlobReader.entry.getData(new BlobWriter(), Object.assign({}, zipBlobReader.options, options));
@@ -462,9 +510,9 @@ async function initReaders(entry) {
462
510
  if (child.directory) {
463
511
  await initReaders(child);
464
512
  } else {
465
- child.reader = new child.Reader(child.data);
466
- await child.reader.init();
467
- child.uncompressedSize = child.reader.size;
513
+ const reader = child.reader = new child.Reader(child.data);
514
+ await initStream(reader);
515
+ child.uncompressedSize = reader.size;
468
516
  }
469
517
  }
470
518
  }
@@ -573,21 +621,6 @@ function resetFS(fs) {
573
621
  fs.root = new ZipDirectoryEntry(fs);
574
622
  }
575
623
 
576
- function pipe(reader, writer) {
577
- return copyChunk();
578
-
579
- async function copyChunk(chunkIndex = 0) {
580
- const index = chunkIndex * CHUNK_SIZE;
581
- if (index < reader.size) {
582
- const array = await reader.readUint8Array(index, Math.min(CHUNK_SIZE, reader.size - index));
583
- await writer.writeUint8Array(array);
584
- return copyChunk(chunkIndex + 1);
585
- } else {
586
- return writer.getData();
587
- }
588
- }
589
- }
590
-
591
624
  function addChild(parent, name, params, directory) {
592
625
  if (parent.directory) {
593
626
  return directory ? new ZipDirectoryEntry(parent.fs, name, params, parent) : new ZipFileEntry(parent.fs, name, params, parent);
@@ -66,7 +66,10 @@ import {
66
66
  ERR_INVALID_SIGNATURE,
67
67
  ERR_INVALID_PASSWORD
68
68
  } from "./codec-pool.js";
69
- import { BlobReader } from "./io.js";
69
+ import {
70
+ initStream,
71
+ BlobReader
72
+ } from "./io.js";
70
73
  import decodeText from "./util/decode-text.js";
71
74
  import Crc32 from "./streams/codecs/crc32.js";
72
75
  import Entry from "./zip-entry.js";
@@ -99,9 +102,7 @@ class ZipReader {
99
102
  const zipReader = this;
100
103
  let { reader } = zipReader;
101
104
  const { config } = zipReader;
102
- if (!reader.initialized && reader.init) {
103
- await reader.init();
104
- }
105
+ await initStream(reader);
105
106
  if (reader.size === undefined || !reader.readUint8Array) {
106
107
  const blob = await new Response(reader.readable).blob();
107
108
  reader = new BlobReader(blob);
@@ -166,6 +167,8 @@ class ZipReader {
166
167
  if (directoryDataOffset < 0 || directoryDataOffset >= reader.size) {
167
168
  throw new Error(ERR_BAD_FORMAT);
168
169
  }
170
+ const filenameEncoding = getOptionValue(zipReader, options, "filenameEncoding");
171
+ const commentEncoding = getOptionValue(zipReader, options, "commentEncoding");
169
172
  for (let indexFile = 0; indexFile < filesLength; indexFile++) {
170
173
  const fileEntry = new ZipEntry(reader, config, zipReader.options);
171
174
  if (getUint32(directoryView, offset) != CENTRAL_FILE_HEADER_SIGNATURE) {
@@ -196,8 +199,6 @@ class ZipReader {
196
199
  startOffset = Math.max(fileEntry.offset, startOffset);
197
200
  const endOffset = commentOffset + fileEntry.commentLength;
198
201
  fileEntry.rawComment = directoryArray.subarray(commentOffset, endOffset);
199
- const filenameEncoding = getOptionValue(zipReader, options, "filenameEncoding");
200
- const commentEncoding = getOptionValue(zipReader, options, "commentEncoding");
201
202
  const [filename, comment] = await Promise.all([
202
203
  decodeText(fileEntry.rawFilename, fileEntry.filenameUTF8 ? CHARSET_UTF8 : filenameEncoding || CHARSET_CP437),
203
204
  decodeText(fileEntry.rawComment, fileEntry.commentUTF8 ? CHARSET_UTF8 : commentEncoding || CHARSET_CP437)
@@ -321,9 +322,7 @@ class ZipEntry {
321
322
  readable.size = size;
322
323
  const { writable } = writer;
323
324
  const signal = getOptionValue(zipEntry, options, "signal");
324
- if (writer.init && !writer.initialized) {
325
- await writer.init();
326
- }
325
+ await initStream(writer);
327
326
  const { onstart, onprogress, onend } = options;
328
327
  const workerOptions = {
329
328
  options: {
@@ -69,6 +69,7 @@ import {
69
69
  } from "./codec-pool.js";
70
70
  import encodeText from "./util/encode-text.js";
71
71
  import {
72
+ initStream,
72
73
  BlobWriter
73
74
  } from "./io.js";
74
75
  import Entry from "./zip-entry.js";
@@ -232,9 +233,7 @@ async function addFile(zipWriter, name, reader, options) {
232
233
  const internalFileAttribute = getOptionValue(zipWriter, options, "internalFileAttribute") || 0;
233
234
  const externalFileAttribute = getOptionValue(zipWriter, options, "externalFileAttribute") || 0;
234
235
  if (reader) {
235
- if (reader.init && !reader.initialized) {
236
- await reader.init();
237
- }
236
+ await initStream(reader);
238
237
  if (reader.size === undefined) {
239
238
  options.dataDescriptor = true;
240
239
  } else {
@@ -331,9 +330,7 @@ async function getFileEntry(zipWriter, name, reader, options) {
331
330
  bufferedWrite = true;
332
331
  } else {
333
332
  zipWriter.lockWriter = Promise.resolve();
334
- if (writer.init && !writer.initialized) {
335
- await writer.init();
336
- }
333
+ await initStream(writer);
337
334
  fileWriter = writer;
338
335
  }
339
336
  fileEntry = await createFileEntry(reader, fileEntry, fileWriter.writable, zipWriter.config, options);
@@ -359,7 +356,7 @@ async function getFileEntry(zipWriter, name, reader, options) {
359
356
  setUint32(arrayBufferView, 18, fileEntry.compressedSize);
360
357
  setUint32(arrayBufferView, 22, fileEntry.uncompressedSize);
361
358
  }
362
- await writeUint8Array(writable, new Uint8Array(arrayBuffer));
359
+ await writeData(writable, new Uint8Array(arrayBuffer));
363
360
  blob = blob.slice(headerLength);
364
361
  }
365
362
  await blob.stream().pipeTo(writable, { preventClose: true, signal });
@@ -555,7 +552,7 @@ async function createFileEntry(reader, pendingFileEntry, writable, config, optio
555
552
  let compressedSize = 0;
556
553
  if (reader) {
557
554
  reader.chunkSize = getChunkSize(config);
558
- await writeUint8Array(writable, localHeaderArray);
555
+ await writeData(writable, localHeaderArray);
559
556
  fileEntry.dataWritten = pendingFileEntry.dataWritten = true;
560
557
  const size = () => reader.size;
561
558
  const readable = reader.readable;
@@ -580,9 +577,9 @@ async function createFileEntry(reader, pendingFileEntry, writable, config, optio
580
577
  };
581
578
  result = await runWorker({ readable, writable }, workerOptions);
582
579
  uncompressedSize = fileEntry.uncompressedSize = reader.size = readable.size();
583
- compressedSize = result.length;
580
+ compressedSize = result.size;
584
581
  } else {
585
- await writeUint8Array(writable, localHeaderArray);
582
+ await writeData(writable, localHeaderArray);
586
583
  fileEntry.dataWritten = pendingFileEntry.dataWritten = true;
587
584
  }
588
585
  let dataDescriptorArray = new Uint8Array();
@@ -626,7 +623,7 @@ async function createFileEntry(reader, pendingFileEntry, writable, config, optio
626
623
  }
627
624
  }
628
625
  if (dataDescriptor) {
629
- await writeUint8Array(writable, dataDescriptorArray);
626
+ await writeData(writable, dataDescriptorArray);
630
627
  }
631
628
  const length = localHeaderArray.length + compressedSize + dataDescriptorArray.length;
632
629
  Object.assign(fileEntry, {
@@ -758,9 +755,9 @@ async function closeFile(zipWriter, comment, options) {
758
755
  }
759
756
  }
760
757
  const { writable } = zipWriter.writer;
761
- await writeUint8Array(writable, directoryArray);
758
+ await writeData(writable, directoryArray);
762
759
  if (comment && comment.length) {
763
- await writeUint8Array(writable, comment);
760
+ await writeData(writable, comment);
764
761
  }
765
762
  }
766
763
 
@@ -772,7 +769,7 @@ function sliceAsArrayBuffer(blob, start, end) {
772
769
  }
773
770
  }
774
771
 
775
- async function writeUint8Array(writable, array) {
772
+ async function writeData(writable, array) {
776
773
  const streamWriter = writable.getWriter();
777
774
  await streamWriter.ready;
778
775
  await streamWriter.write(array);
@@ -1 +1 @@
1
- var e=e=>{if("function"==typeof URL.createObjectURL){const t=()=>URL.createObjectURL(new Blob(['const{Array:e,Object:t,Math:n,Error:r,Uint8Array:s,Uint16Array:i,Uint32Array:o,Int32Array:c,DataView:f,Promise:l,TextEncoder:a,crypto:u,postMessage:w,TransformStream:h,ReadableStream:d,WritableStream:p,CompressionStream:y,DecompressionStream:b}=globalThis,m=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;m[e]=t}class k{constructor(e){this.t=e||-1}append(e){let t=0|this.t;for(let n=0,r=0|e.length;r>n;n++)t=t>>>8^m[255&(t^e[n])];this.t=t}get(){return~this.t}}class g extends h{constructor(){super({start(){this.i=new k},transform(e){this.i.append(e)},flush(e){const t=new s(4);new f(t.buffer).setUint32(0,this.i.get()),e.enqueue(t)}})}}const v={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=v.o(n);return 32===r?e.concat(t):v.l(t,r,0|n,e.slice(0,e.length-1))},u(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+v.o(n)},h(e,t){if(32*e.length<t)return e;const r=(e=e.slice(0,n.ceil(t/32))).length;return t&=31,r>0&&t&&(e[r-1]=v.p(t,e[r-1]&2147483648>>t-1,1)),e},p:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,o:e=>n.round(e/1099511627776)||32,l(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s<e.length;s++)r.push(n|e[s]>>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,i=v.o(s);return r.push(v.p(t+i&31,t+i>32?n:r.pop(),1)),r}},S={m:{k(e){const t=v.u(e)/8,n=new s(t);let r;for(let s=0;t>s;s++)0==(3&s)&&(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},g(e){const t=[];let n,r=0;for(n=0;n<e.length;n++)r=r<<8|e[n],3==(3&n)&&(t.push(r),r=0);return 3&n&&t.push(v.p(8*(3&n),r)),t}}},z={v:function(e){e?(this.S=e.S.slice(0),this._=e._.slice(0),this.C=e.C):this.reset()}};z.v.prototype={blockSize:512,reset(){const e=this;return e.S=this.I.slice(0),e._=[],e.C=0,e},update(e){const t=this;"string"==typeof e&&(e=S.A.g(e));const n=t._=v.concat(t._,e),s=t.C,i=t.C=s+v.u(e);if(i>9007199254740991)throw new r("Cannot hash more than 2^53 - 1 bits");const c=new o(n);let f=0;for(let e=t.blockSize+s-(t.blockSize+s&t.blockSize-1);i>=e;e+=t.blockSize)t.V(c.subarray(16*f,16*(f+1))),f+=1;return n.splice(0,16*f),t},B(){const e=this;let t=e._;const r=e.S;t=v.concat(t,[v.p(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(n.floor(e.C/4294967296)),t.push(0|e.C);t.length;)e.V(t.splice(0,16));return e.reset(),r},I:[1732584193,4023233417,2562383102,271733878,3285377520],D:[1518500249,1859775393,2400959708,3395469782],M:(e,t,n,r)=>e>19?e>39?e>59?e>79?void 0:t^n^r:t&n|t&r|n&r:t^n^r:t&n|~t&r,T:(e,t)=>t<<e|t>>>32-e,V(t){const r=this,s=r.S,i=e(80);for(let e=0;16>e;e++)i[e]=t[e];let o=s[0],c=s[1],f=s[2],l=s[3],a=s[4];for(let e=0;79>=e;e++){16>e||(i[e]=r.T(1,i[e-3]^i[e-8]^i[e-14]^i[e-16]));const t=r.T(5,o)+r.M(e,c,f,l)+a+i[e]+r.D[n.floor(e/20)]|0;a=l,l=f,f=r.T(30,c),c=o,o=t}s[0]=s[0]+o|0,s[1]=s[1]+c|0,s[2]=s[2]+f|0,s[3]=s[3]+l|0,s[4]=s[4]+a|0}};const _={getRandomValues(e){const t=new o(e.buffer),r=e=>{let t=987654321;const r=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&r,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&r)&r)/4294967296+.5)*(n.random()>.5?1:-1))};for(let s,i=0;i<e.length;i+=4){const e=r(4294967296*(s||n.random()));s=987654071*e(),t[i/4]=4294967296*e()|0}return e}},C={importKey:e=>new C.P(S.m.g(e)),R(e,t,n,s){if(n=n||1e4,0>s||0>n)throw new r("invalid params to pbkdf2");const i=1+(s>>5)<<2;let o,c,l,a,u;const w=new ArrayBuffer(i),h=new f(w);let d=0;const p=v;for(t=S.m.g(t),u=1;(i||1)>d;u++){for(o=c=e.encrypt(p.concat(t,[u])),l=1;n>l;l++)for(c=e.encrypt(c),a=0;a<c.length;a++)o[a]^=c[a];for(l=0;(i||1)>d&&l<o.length;l++)h.setInt32(d,o[l]),d+=4}return w.slice(0,s/8)},P:class{constructor(e){const t=this,n=t.U=z.v,r=[[],[]],s=n.prototype.blockSize/32;t.W=[new n,new n],e.length>s&&(e=n.hash(e));for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t.W[0].update(r[0]),t.W[1].update(r[1]),t.j=new n(t.W[0])}reset(){const e=this;e.j=new e.U(e.W[0]),e.H=!1}update(e){this.H=!0,this.j.update(e)}digest(){const e=this,t=e.j.B(),n=new e.U(e.W[1]).update(t).B();return e.reset(),n}encrypt(e){if(this.H)throw new r("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},I={name:"PBKDF2"},x=t.assign({hash:{name:"HMAC"}},I),A=t.assign({iterations:1e3,hash:{name:"SHA-1"}},I),V=["deriveBits"],B=[8,12,16],D=[16,24,32],E=[0,0,0,0],M=void 0!==u,T=M&&void 0!==u.subtle,P=M&&"function"==typeof u.getRandomValues,R=M&&T&&"function"==typeof u.subtle.importKey,U=M&&T&&"function"==typeof u.subtle.deriveBits,W=S.m,j=class{constructor(e){const t=this;t.K=[[[],[],[],[],[]],[[],[],[],[],[]]],t.K[0][0][0]||t.L();const n=t.K[0][4],s=t.K[1],i=e.length;let o,c,f,l=1;if(4!==i&&6!==i&&8!==i)throw new r("invalid aes key size");for(t.D=[c=e.slice(0),f=[]],o=i;4*i+28>o;o++){let e=c[o-1];(o%i==0||8===i&&o%i==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],o%i==0&&(e=e<<8^e>>>24^l<<24,l=l<<1^283*(l>>7))),c[o]=c[o-i]^e}for(let e=0;o;e++,o--){const t=c[3&e?o:o-4];f[e]=4>=o||4>e?t:s[0][n[t>>>24]]^s[1][n[t>>16&255]]^s[2][n[t>>8&255]]^s[3][n[255&t]]}}encrypt(e){return this.F(e,0)}decrypt(e){return this.F(e,1)}L(){const e=this.K[0],t=this.K[1],n=e[4],r=t[4],s=[],i=[];let o,c,f,l;for(let e=0;256>e;e++)i[(s[e]=e<<1^283*(e>>7))^e]=e;for(let a=o=0;!n[a];a^=c||1,o=i[o]||1){let i=o^o<<1^o<<2^o<<3^o<<4;i=i>>8^255&i^99,n[a]=i,r[i]=a,l=s[f=s[c=s[a]]];let u=16843009*l^65537*f^257*c^16843008*a,w=257*s[i]^16843008*i;for(let n=0;4>n;n++)e[n][a]=w=w<<24^w>>>8,t[n][i]=u=u<<24^u>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}F(e,t){if(4!==e.length)throw new r("invalid aes block size");const n=this.D[t],s=n.length/4-2,i=[0,0,0,0],o=this.K[t],c=o[0],f=o[1],l=o[2],a=o[3],u=o[4];let w,h,d,p=e[0]^n[0],y=e[t?3:1]^n[1],b=e[2]^n[2],m=e[t?1:3]^n[3],k=4;for(let e=0;s>e;e++)w=c[p>>>24]^f[y>>16&255]^l[b>>8&255]^a[255&m]^n[k],h=c[y>>>24]^f[b>>16&255]^l[m>>8&255]^a[255&p]^n[k+1],d=c[b>>>24]^f[m>>16&255]^l[p>>8&255]^a[255&y]^n[k+2],m=c[m>>>24]^f[p>>16&255]^l[y>>8&255]^a[255&b]^n[k+3],k+=4,p=w,y=h,b=d;for(let e=0;4>e;e++)i[t?3&-e:e]=u[p>>>24]<<24^u[y>>16&255]<<16^u[b>>8&255]<<8^u[255&m]^n[k++],w=p,p=y,y=b,b=m,m=w;return i}},H=class{constructor(e,t){this.N=e,this.O=t,this.q=t}reset(){this.q=this.O}update(e){return this.G(this.N,e,this.q)}J(e){if(255==(e>>24&255)){let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}else e+=1<<24;return e}X(e){0===(e[0]=this.J(e[0]))&&(e[1]=this.J(e[1]))}G(e,t,n){let r;if(!(r=t.length))return[];const s=v.u(t);for(let s=0;r>s;s+=4){this.X(n);const r=e.encrypt(n);t[s]^=r[0],t[s+1]^=r[1],t[s+2]^=r[2],t[s+3]^=r[3]}return v.h(t,s)}},K=C.P;class L extends h{constructor(n,i,o){let c;super({start(){t.assign(this,{ready:new l((e=>this.Y=e)),password:n,signed:i,Z:o-1,pending:new s})},async transform(t,n){const i=this;if(i.password){const n=i.password;i.password=null;const s=G(t,0,B[i.Z]+2);await(async(e,t,n)=>{await O(e,n,G(t,0,B[e.Z]));const s=G(t,B[e.Z]),i=e.keys.passwordVerification;if(i[0]!=s[0]||i[1]!=s[1])throw new r("Invalid password")})(i,s,n),i.$=new H(new j(i.keys.key),e.from(E)),i.ee=new K(i.keys.te),t=G(t,B[i.Z]+2),i.Y()}else await i.ready;const o=new s(t.length-10-(t.length-10)%16);n.enqueue(N(i,t,o,0,10,!0))},async flush(e){const t=this;await t.ready;const n=t.pending,r=G(n,0,n.length-10),i=G(n,n.length-10);let o=new s;if(r.length){const e=Q(W,r);t.ee.update(e);const n=t.$.update(e);o=J(W,n)}if(c.valid=!0,t.signed){const e=G(J(W,t.ee.digest()),0,10);for(let t=0;10>t;t++)e[t]!=i[t]&&(c.valid=!1)}e.enqueue(o)}}),c=this}}class F extends h{constructor(n,r){let i;super({start(){t.assign(this,{ready:new l((e=>this.Y=e)),password:n,Z:r-1,pending:new s})},async transform(t,n){const r=this;let i=new s;if(r.password){const t=r.password;r.password=null,i=await(async(e,t)=>{const n=(r=new s(B[e.Z]),P?u.getRandomValues(r):_.getRandomValues(r));var r;return await O(e,t,n),q(n,e.keys.passwordVerification)})(r,t),r.$=new H(new j(r.keys.key),e.from(E)),r.ee=new K(r.keys.te),r.Y()}else await r.ready;const o=new s(i.length+t.length-t.length%16);o.set(i,0),n.enqueue(N(r,t,o,i.length,0))},async flush(e){const t=this;await t.ready;let n=new s;if(t.pending.length){const e=t.$.update(Q(W,t.pending));t.ee.update(e),n=J(W,e)}i.signature=J(W,t.ee.digest()).slice(0,10),e.enqueue(q(n,i.signature))}}),i=this}}function N(e,t,n,r,i,o){const c=t.length-i;let f;for(e.pending.length&&(t=q(e.pending,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new s(t)).set(n,0)}return e})(n,c-c%16)),f=0;c-16>=f;f+=16){const s=Q(W,G(t,f,f+16));o&&e.ee.update(s);const i=e.$.update(s);o||e.ee.update(i),n.set(J(W,i),f+r)}return e.pending=G(t,f),n}async function O(e,n,r){const i=(e=>{if(void 0===a){const t=new s((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new a).encode(e)})(n),o=await((e,t,n,r,s)=>R?u.subtle.importKey("raw",t,n,!1,s):C.importKey(t))(0,i,x,0,V),c=await(async(e,t,n)=>U?await u.subtle.deriveBits(e,t,n):C.R(t,e.salt,A.iterations,n))(t.assign({salt:r},A),o,8*(2*D[e.Z]+2)),f=new s(c);e.keys={key:Q(W,G(f,0,D[e.Z])),te:Q(W,G(f,D[e.Z],2*D[e.Z])),passwordVerification:G(f,2*D[e.Z])}}function q(e,t){let n=e;return e.length+t.length&&(n=new s(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function G(e,t,n){return e.subarray(t,n)}function J(e,t){return e.k(t)}function Q(e,t){return e.g(t)}class X extends h{constructor(e,n){let s;super({start(){t.assign(this,{password:e,passwordVerification:n}),ee(this,e)},transform(e,t){const n=this;if(n.password){const t=Z(n,e.subarray(0,12));if(n.password=null,t[11]!=n.passwordVerification)throw new r("Invalid password");e=e.subarray(12)}t.enqueue(Z(n,e))},flush(){s.valid=!0}}),s=this}}class Y extends h{constructor(e,n){super({start(){t.assign(this,{password:e,passwordVerification:n}),ee(this,e)},transform(e,t){const n=this;let r,i;if(n.password){n.password=null;const t=u.getRandomValues(new s(12));t[11]=n.passwordVerification,r=new s(e.length+t.length),r.set($(n,t),0),i=12}else r=new s(e.length),i=0;r.set($(n,e),i),t.enqueue(r)},flush(){}})}}function Z(e,t){const n=new s(t.length);for(let r=0;r<t.length;r++)n[r]=ne(e)^t[r],te(e,n[r]);return n}function $(e,t){const n=new s(t.length);for(let r=0;r<t.length;r++)n[r]=ne(e)^t[r],te(e,t[r]);return n}function ee(e,t){e.keys=[305419896,591751049,878082192],e.ne=new k(e.keys[0]),e.re=new k(e.keys[2]);for(let n=0;n<t.length;n++)te(e,t.charCodeAt(n))}function te(e,t){e.ne.append([t]),e.keys[0]=~e.ne.get(),e.keys[1]=se(e.keys[1]+re(e.keys[0])),e.keys[1]=se(n.imul(e.keys[1],134775813)+1),e.re.append([e.keys[1]>>>24]),e.keys[2]=~e.re.get()}function ne(e){const t=2|e.keys[2];return re(n.imul(t,1^t)>>>8)}function re(e){return 255&e}function se(e){return 4294967295&e}class ie extends h{constructor(e,t){let n;super({start(){n=new e(t)},transform(e,t){e=n.append(e),t.enqueue(e)},flush(e){const t=n.flush();t&&e.enqueue(t)}})}}const oe=void 0===y,ce=void 0===b;let fe=!0,le=!0;class ae extends h{constructor(e,t,{chunkSize:n},...r){super({},...r);const{compressed:s,encrypted:i,useCompressionStream:o,password:c,passwordVerification:l,encryptionStrength:a,zipCrypto:u,signed:w,level:h}=t,d=this;let p,b,m=he(super.readable);if(i&&!u||!w||([m,p]=m.tee(),p=p.pipeThrough(new g)),s)if(void 0!==o&&!o||oe&&!le)m=we(e,m,{chunkSize:n,level:h});else try{m=m.pipeThrough(new y("deflate-raw"))}catch(t){le=!1,m=we(e,m,{chunkSize:n,level:h})}i&&(u?m=m.pipeThrough(new Y(c,l)):(b=new F(c,a),m=m.pipeThrough(b))),de(d,m,(async()=>{let e;i&&!u&&(e=b.signature),i&&!u||!w||(e=await p.getReader().read(),e=new f(e.value.buffer).getUint32(0)),d.signature=e}))}}class ue extends h{constructor(e,t,{chunkSize:n},...s){super({},...s);const{zipCrypto:i,encrypted:o,password:c,passwordVerification:l,signed:a,encryptionStrength:u,compressed:w,useCompressionStream:h}=t;let d,p,y=he(super.readable);if(o&&(i?y=y.pipeThrough(new X(c,l)):(p=new L(c,a,u),y=y.pipeThrough(p))),w)if(void 0!==h&&!h||ce&&!fe)y=we(e,y,{chunkSize:n});else try{y=y.pipeThrough(new b("deflate-raw"))}catch(t){fe=!1,y=we(e,y,{chunkSize:n})}o&&!i||!a||([y,d]=y.tee(),d=d.pipeThrough(new g)),de(this,y,(async()=>{if(o&&!i&&!p.valid)throw new r("Invalid signature");if((!o||i)&&a){const e=await d.getReader().read();if(e!=new f(e.value.buffer).getUint32(0,!1))throw new r("Invalid signature")}}))}}function we(e,t,n){return t.pipeThrough(new ie(e,n))}function he(e){return e.pipeThrough(new h({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function de(e,n,r){e.length=0,n=n.pipeThrough(new h({transform(t,n){t&&t.length&&(e.length+=t.length,n.enqueue(t))},flush:r})),t.defineProperty(e,"readable",{get:()=>n})}class pe{constructor(e,t,n,r,s){const{codecType:i}=r;async function o(i){const o=new i(e,r,s);await t.pipeThrough(o).pipeTo(n,{se:!0});const{length:c,signature:f}=o;return{length:c,signature:f}}i.startsWith("deflate")?this.ie=()=>o(ae):i.startsWith("inflate")&&(this.ie=()=>o(ue))}}const ye=new Map;let be,me=0;async function ke(e){try{const{options:t,scripts:n,config:r}=e,{codecType:s}=t;let i;n&&n.length&&importScripts.apply(void 0,n),self.initCodec&&self.initCodec(),s.startsWith("deflate")?i=self.Deflate:s.startsWith("inflate")&&(i=self.Inflate);const o={highWaterMark:1,size:()=>r.chunkSize},c=new d({async pull(e){let t=new l(((e,t)=>ye.set(me,{resolve:e,reject:t})));ge({type:"pull",messageId:me}),me=(me+1)%Number.MAX_SAFE_INTEGER;const{value:n,done:r}=await t;e.enqueue(n),r&&e.close()}},o),f=new p({write(e){ge({type:"data",data:e})}},o);be=new pe(i,c,f,t,r),ge({type:"close",result:await be.ie()})}catch(e){const{message:t,stack:n}=e;w({error:{message:t,stack:n}})}}function ge(e){if(e.data){let{data:t}=e;if(t&&t.length)try{t.length!=t.buffer.byteLength&&(t=new s(t)),e.data=t.buffer,w(e,[e.data])}catch(t){w(e)}else w(e)}else w(e)}addEventListener("message",(async e=>{const t=e.data,{type:n,messageId:r,data:i,done:o}=t;try{if("start"==n&&ke(t),"data"==n){const{resolve:e}=ye.get(r);ye.delete(r),e({value:new s(i),done:o})}}catch(e){w({error:{message:e.message,stack:e.stack}})}}));const ve=(()=>{const t=-2;function o(t){return c(t.map((([t,n])=>new e(t).fill(n,0,t))))}function c(t){return t.reduce(((t,n)=>t.concat(e.isArray(n)?c(n):n)),[])}const f=[0,1,2,3].concat(...o([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function l(){const e=this;function t(e,t){let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}e.oe=r=>{const s=e.ce,i=e.le.fe,o=e.le.ae;let c,f,l,a=-1;for(r.ue=0,r.we=573,c=0;o>c;c++)0!==s[2*c]?(r.he[++r.ue]=a=c,r.de[c]=0):s[2*c+1]=0;for(;2>r.ue;)l=r.he[++r.ue]=2>a?++a:0,s[2*l]=1,r.de[l]=0,r.pe--,i&&(r.ye-=i[2*l+1]);for(e.be=a,c=n.floor(r.ue/2);c>=1;c--)r.me(s,c);l=o;do{c=r.he[1],r.he[1]=r.he[r.ue--],r.me(s,1),f=r.he[1],r.he[--r.we]=c,r.he[--r.we]=f,s[2*l]=s[2*c]+s[2*f],r.de[l]=n.max(r.de[c],r.de[f])+1,s[2*c+1]=s[2*f+1]=l,r.he[1]=l++,r.me(s,1)}while(r.ue>=2);r.he[--r.we]=r.he[1],(t=>{const n=e.ce,r=e.le.fe,s=e.le.ke,i=e.le.ge,o=e.le.ve;let c,f,l,a,u,w,h=0;for(a=0;15>=a;a++)t.Se[a]=0;for(n[2*t.he[t.we]+1]=0,c=t.we+1;573>c;c++)f=t.he[c],a=n[2*n[2*f+1]+1]+1,a>o&&(a=o,h++),n[2*f+1]=a,f>e.be||(t.Se[a]++,u=0,i>f||(u=s[f-i]),w=n[2*f],t.pe+=w*(a+u),r&&(t.ye+=w*(r[2*f+1]+u)));if(0!==h){do{for(a=o-1;0===t.Se[a];)a--;t.Se[a]--,t.Se[a+1]+=2,t.Se[o]--,h-=2}while(h>0);for(a=o;0!==a;a--)for(f=t.Se[a];0!==f;)l=t.he[--c],l>e.be||(n[2*l+1]!=a&&(t.pe+=(a-n[2*l+1])*n[2*l],n[2*l+1]=a),f--)}})(r),((e,n,r)=>{const s=[];let i,o,c,f=0;for(i=1;15>=i;i++)s[i]=f=f+r[i-1]<<1;for(o=0;n>=o;o++)c=e[2*o+1],0!==c&&(e[2*o]=t(s[c]++,c))})(s,e.be,r.Se)}}function a(e,t,n,r,s){const i=this;i.fe=e,i.ke=t,i.ge=n,i.ae=r,i.ve=s}l.ze=[0,1,2,3,4,5,6,7].concat(...o([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),l._e=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],l.Ce=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],l.Ie=e=>256>e?f[e]:f[256+(e>>>7)],l.xe=[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],l.Ae=[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],l.Ve=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],l.Be=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const u=o([[144,8],[112,9],[24,7],[8,8]]);a.De=c([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((e,t)=>[e,u[t]])));const w=o([[30,5]]);function h(e,t,n,r,s){const i=this;i.Ee=e,i.Me=t,i.Te=n,i.Pe=r,i.Re=s}a.Ue=c([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((e,t)=>[e,w[t]]))),a.We=new a(a.De,l.xe,257,286,15),a.je=new a(a.Ue,l.Ae,0,30,15),a.He=new a(null,l.Ve,0,19,7);const d=[new h(0,0,0,0,0),new h(4,4,8,4,1),new h(4,5,16,8,1),new h(4,6,32,32,1),new h(4,4,16,16,2),new h(8,16,32,32,2),new h(8,16,128,128,2),new h(8,32,128,256,2),new h(32,128,258,1024,2),new h(32,258,258,4096,2)],p=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],y=113,b=666,m=262;function k(e,t,n,r){const s=e[2*t],i=e[2*n];return i>s||s==i&&r[t]<=r[n]}function g(){const e=this;let r,o,c,f,u,w,h,g,v,S,z,_,C,I,x,A,V,B,D,E,M,T,P,R,U,W,j,H,K,L,F,N,O;const q=new l,G=new l,J=new l;let Q,X,Y,Z,$,ee;function te(){let t;for(t=0;286>t;t++)F[2*t]=0;for(t=0;30>t;t++)N[2*t]=0;for(t=0;19>t;t++)O[2*t]=0;F[512]=1,e.pe=e.ye=0,X=Y=0}function ne(e,t){let n,r=-1,s=e[1],i=0,o=7,c=4;0===s&&(o=138,c=3),e[2*(t+1)+1]=65535;for(let f=0;t>=f;f++)n=s,s=e[2*(f+1)+1],++i<o&&n==s||(c>i?O[2*n]+=i:0!==n?(n!=r&&O[2*n]++,O[32]++):i>10?O[36]++:O[34]++,i=0,r=n,0===s?(o=138,c=3):n==s?(o=6,c=3):(o=7,c=4))}function re(t){e.Ke[e.pending++]=t}function se(e){re(255&e),re(e>>>8&255)}function ie(e,t){let n;const r=t;ee>16-r?(n=e,$|=n<<ee&65535,se($),$=n>>>16-ee,ee+=r-16):($|=e<<ee&65535,ee+=r)}function oe(e,t){const n=2*e;ie(65535&t[n],65535&t[n+1])}function ce(e,t){let n,r,s=-1,i=e[1],o=0,c=7,f=4;for(0===i&&(c=138,f=3),n=0;t>=n;n++)if(r=i,i=e[2*(n+1)+1],++o>=c||r!=i){if(f>o)do{oe(r,O)}while(0!=--o);else 0!==r?(r!=s&&(oe(r,O),o--),oe(16,O),ie(o-3,2)):o>10?(oe(18,O),ie(o-11,7)):(oe(17,O),ie(o-3,3));o=0,s=r,0===i?(c=138,f=3):r==i?(c=6,f=3):(c=7,f=4)}}function fe(){16==ee?(se($),$=0,ee=0):8>ee||(re(255&$),$>>>=8,ee-=8)}function le(t,r){let s,i,o;if(e.Le[X]=t,e.Fe[X]=255&r,X++,0===t?F[2*r]++:(Y++,t--,F[2*(l.ze[r]+256+1)]++,N[2*l.Ie(t)]++),0==(8191&X)&&j>2){for(s=8*X,i=M-V,o=0;30>o;o++)s+=N[2*o]*(5+l.Ae[o]);if(s>>>=3,Y<n.floor(X/2)&&s<n.floor(i/2))return!0}return X==Q-1}function ae(t,n){let r,s,i,o,c=0;if(0!==X)do{r=e.Le[c],s=e.Fe[c],c++,0===r?oe(s,t):(i=l.ze[s],oe(i+256+1,t),o=l.xe[i],0!==o&&(s-=l._e[i],ie(s,o)),r--,i=l.Ie(r),oe(i,n),o=l.Ae[i],0!==o&&(r-=l.Ce[i],ie(r,o)))}while(X>c);oe(256,t),Z=t[513]}function ue(){ee>8?se($):ee>0&&re(255&$),$=0,ee=0}function we(t,n,r){ie(0+(r?1:0),3),((t,n)=>{ue(),Z=8,se(n),se(~n),e.Ke.set(g.subarray(t,t+n),e.pending),e.pending+=n})(t,n)}function he(t){((t,n,r)=>{let s,i,o=0;j>0?(q.oe(e),G.oe(e),o=(()=>{let t;for(ne(F,q.be),ne(N,G.be),J.oe(e),t=18;t>=3&&0===O[2*l.Be[t]+1];t--);return e.pe+=14+3*(t+1),t})(),s=e.pe+3+7>>>3,i=e.ye+3+7>>>3,i>s||(s=i)):s=i=n+5,n+4>s||-1==t?i==s?(ie(2+(r?1:0),3),ae(a.De,a.Ue)):(ie(4+(r?1:0),3),((e,t,n)=>{let r;for(ie(e-257,5),ie(t-1,5),ie(n-4,4),r=0;n>r;r++)ie(O[2*l.Be[r]+1],3);ce(F,e-1),ce(N,t-1)})(q.be+1,G.be+1,o+1),ae(F,N)):we(t,n,r),te(),r&&ue()})(0>V?-1:V,M-V,t),V=M,r.Ne()}function de(){let e,t,n,s;do{if(s=v-P-M,0===s&&0===M&&0===P)s=u;else if(-1==s)s--;else if(M>=u+u-m){g.set(g.subarray(u,u+u),0),T-=u,M-=u,V-=u,e=C,n=e;do{t=65535&z[--n],z[n]=u>t?0:t-u}while(0!=--e);e=u,n=e;do{t=65535&S[--n],S[n]=u>t?0:t-u}while(0!=--e);s+=u}if(0===r.Oe)return;e=r.qe(g,M+P,s),P+=e,3>P||(_=255&g[M],_=(_<<A^255&g[M+1])&x)}while(m>P&&0!==r.Oe)}function pe(e){let t,n,r=U,s=M,i=R;const o=M>u-m?M-(u-m):0;let c=L;const f=h,l=M+258;let a=g[s+i-1],w=g[s+i];K>R||(r>>=2),c>P&&(c=P);do{if(t=e,g[t+i]==w&&g[t+i-1]==a&&g[t]==g[s]&&g[++t]==g[s+1]){s+=2,t++;do{}while(g[++s]==g[++t]&&g[++s]==g[++t]&&g[++s]==g[++t]&&g[++s]==g[++t]&&g[++s]==g[++t]&&g[++s]==g[++t]&&g[++s]==g[++t]&&g[++s]==g[++t]&&l>s);if(n=258-(l-s),s=l-258,n>i){if(T=e,i=n,n>=c)break;a=g[s+i-1],w=g[s+i]}}}while((e=65535&S[e&f])>o&&0!=--r);return i>P?P:i}e.de=[],e.Se=[],e.he=[],F=[],N=[],O=[],e.me=(t,n)=>{const r=e.he,s=r[n];let i=n<<1;for(;i<=e.ue&&(i<e.ue&&k(t,r[i+1],r[i],e.de)&&i++,!k(t,s,r[i],e.de));)r[n]=r[i],n=i,i<<=1;r[n]=s},e.Ge=(r,l,p,b,m,k)=>(b||(b=8),m||(m=8),k||(k=0),r.Je=null,-1==l&&(l=6),1>m||m>9||8!=b||9>p||p>15||0>l||l>9||0>k||k>2?t:(r.Qe=e,w=p,u=1<<w,h=u-1,I=m+7,C=1<<I,x=C-1,A=n.floor((I+3-1)/3),g=new s(2*u),S=[],z=[],Q=1<<m+6,e.Ke=new s(4*Q),c=4*Q,e.Le=new i(Q),e.Fe=new s(Q),j=l,H=k,(t=>(t.Xe=t.Ye=0,t.Je=null,e.pending=0,e.Ze=0,o=y,f=0,q.ce=F,q.le=a.We,G.ce=N,G.le=a.je,J.ce=O,J.le=a.He,$=0,ee=0,Z=8,te(),(()=>{v=2*u,z[C-1]=0;for(let e=0;C-1>e;e++)z[e]=0;W=d[j].Me,K=d[j].Ee,L=d[j].Te,U=d[j].Pe,M=0,V=0,P=0,B=R=2,E=0,_=0})(),0))(r))),e.$e=()=>42!=o&&o!=y&&o!=b?t:(e.Fe=null,e.Le=null,e.Ke=null,z=null,S=null,g=null,e.Qe=null,o==y?-3:0),e.et=(e,n,r)=>{let s=0;return-1==n&&(n=6),0>n||n>9||0>r||r>2?t:(d[j].Re!=d[n].Re&&0!==e.Xe&&(s=e.tt(1)),j!=n&&(j=n,W=d[j].Me,K=d[j].Ee,L=d[j].Te,U=d[j].Pe),H=r,s)},e.nt=(e,n,r)=>{let s,i=r,c=0;if(!n||42!=o)return t;if(3>i)return 0;for(i>u-m&&(i=u-m,c=r-i),g.set(n.subarray(c,c+i),0),M=i,V=i,_=255&g[0],_=(_<<A^255&g[1])&x,s=0;i-3>=s;s++)_=(_<<A^255&g[s+2])&x,S[s&h]=z[_],z[_]=s;return 0},e.tt=(n,s)=>{let i,l,k,v,I;if(s>4||0>s)return t;if(!n.rt||!n.st&&0!==n.Oe||o==b&&4!=s)return n.Je=p[4],t;if(0===n.it)return n.Je=p[7],-5;var U;if(r=n,v=f,f=s,42==o&&(l=8+(w-8<<4)<<8,k=(j-1&255)>>1,k>3&&(k=3),l|=k<<6,0!==M&&(l|=32),l+=31-l%31,o=y,re((U=l)>>8&255),re(255&U)),0!==e.pending){if(r.Ne(),0===r.it)return f=-1,0}else if(0===r.Oe&&v>=s&&4!=s)return r.Je=p[7],-5;if(o==b&&0!==r.Oe)return n.Je=p[7],-5;if(0!==r.Oe||0!==P||0!=s&&o!=b){switch(I=-1,d[j].Re){case 0:I=(e=>{let t,n=65535;for(n>c-5&&(n=c-5);;){if(1>=P){if(de(),0===P&&0==e)return 0;if(0===P)break}if(M+=P,P=0,t=V+n,(0===M||M>=t)&&(P=M-t,M=t,he(!1),0===r.it))return 0;if(M-V>=u-m&&(he(!1),0===r.it))return 0}return he(4==e),0===r.it?4==e?2:0:4==e?3:1})(s);break;case 1:I=(e=>{let t,n=0;for(;;){if(m>P){if(de(),m>P&&0==e)return 0;if(0===P)break}if(3>P||(_=(_<<A^255&g[M+2])&x,n=65535&z[_],S[M&h]=z[_],z[_]=M),0===n||(M-n&65535)>u-m||2!=H&&(B=pe(n)),3>B)t=le(0,255&g[M]),P--,M++;else if(t=le(M-T,B-3),P-=B,B>W||3>P)M+=B,B=0,_=255&g[M],_=(_<<A^255&g[M+1])&x;else{B--;do{M++,_=(_<<A^255&g[M+2])&x,n=65535&z[_],S[M&h]=z[_],z[_]=M}while(0!=--B);M++}if(t&&(he(!1),0===r.it))return 0}return he(4==e),0===r.it?4==e?2:0:4==e?3:1})(s);break;case 2:I=(e=>{let t,n,s=0;for(;;){if(m>P){if(de(),m>P&&0==e)return 0;if(0===P)break}if(3>P||(_=(_<<A^255&g[M+2])&x,s=65535&z[_],S[M&h]=z[_],z[_]=M),R=B,D=T,B=2,0!==s&&W>R&&u-m>=(M-s&65535)&&(2!=H&&(B=pe(s)),5>=B&&(1==H||3==B&&M-T>4096)&&(B=2)),3>R||B>R)if(0!==E){if(t=le(0,255&g[M-1]),t&&he(!1),M++,P--,0===r.it)return 0}else E=1,M++,P--;else{n=M+P-3,t=le(M-1-D,R-3),P-=R-1,R-=2;do{++M>n||(_=(_<<A^255&g[M+2])&x,s=65535&z[_],S[M&h]=z[_],z[_]=M)}while(0!=--R);if(E=0,B=2,M++,t&&(he(!1),0===r.it))return 0}}return 0!==E&&(t=le(0,255&g[M-1]),E=0),he(4==e),0===r.it?4==e?2:0:4==e?3:1})(s)}if(2!=I&&3!=I||(o=b),0==I||2==I)return 0===r.it&&(f=-1),0;if(1==I){if(1==s)ie(2,3),oe(256,a.De),fe(),9>1+Z+10-ee&&(ie(2,3),oe(256,a.De),fe()),Z=7;else if(we(0,0,!1),3==s)for(i=0;C>i;i++)z[i]=0;if(r.Ne(),0===r.it)return f=-1,0}}return 4!=s?0:1}}function v(){const e=this;e.ot=0,e.ct=0,e.Oe=0,e.Xe=0,e.it=0,e.Ye=0}return v.prototype={Ge(e,t){const n=this;return n.Qe=new g,t||(t=15),n.Qe.Ge(n,e,t)},tt(e){const n=this;return n.Qe?n.Qe.tt(n,e):t},$e(){const e=this;if(!e.Qe)return t;const n=e.Qe.$e();return e.Qe=null,n},et(e,n){const r=this;return r.Qe?r.Qe.et(r,e,n):t},nt(e,n){const r=this;return r.Qe?r.Qe.nt(r,e,n):t},qe(e,t,n){const r=this;let s=r.Oe;return s>n&&(s=n),0===s?0:(r.Oe-=s,e.set(r.st.subarray(r.ot,r.ot+s),t),r.ot+=s,r.Xe+=s,s)},Ne(){const e=this;let t=e.Qe.pending;t>e.it&&(t=e.it),0!==t&&(e.rt.set(e.Qe.Ke.subarray(e.Qe.Ze,e.Qe.Ze+t),e.ct),e.ct+=t,e.Qe.Ze+=t,e.Ye+=t,e.it-=t,e.Qe.pending-=t,0===e.Qe.pending&&(e.Qe.Ze=0))}},function(e){const t=new v,i=(o=e&&e.chunkSize?e.chunkSize:65536)+5*(n.floor(o/16383)+1);var o;const c=new s(i);let f=e?e.level:-1;void 0===f&&(f=-1),t.Ge(f),t.rt=c,this.append=(e,n)=>{let o,f,l=0,a=0,u=0;const w=[];if(e.length){t.ot=0,t.st=e,t.Oe=e.length;do{if(t.ct=0,t.it=i,o=t.tt(0),0!=o)throw new r("deflating: "+t.Je);t.ct&&(t.ct==i?w.push(new s(c)):w.push(c.slice(0,t.ct))),u+=t.ct,n&&t.ot>0&&t.ot!=l&&(n(t.ot),l=t.ot)}while(t.Oe>0||0===t.it);return w.length>1?(f=new s(u),w.forEach((e=>{f.set(e,a),a+=e.length}))):f=w[0]||new s,f}},this.flush=()=>{let e,n,o=0,f=0;const l=[];do{if(t.ct=0,t.it=i,e=t.tt(4),1!=e&&0!=e)throw new r("deflating: "+t.Je);i-t.it>0&&l.push(c.slice(0,t.ct)),f+=t.ct}while(t.Oe>0||0===t.it);return t.$e(),n=new s(f),l.forEach((e=>{n.set(e,o),o+=e.length})),n}}})(),Se=(()=>{const e=-2,t=-3,i=-5,o=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],f=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],l=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],a=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],u=[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,112,112],w=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],h=[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];function d(){let e,n,r,s,o,f;function l(e,n,c,l,a,u,w,h,d,p,y){let b,m,k,g,v,S,z,_,C,I,x,A,V,B,D;I=0,v=c;do{r[e[n+I]]++,I++,v--}while(0!==v);if(r[0]==c)return w[0]=-1,h[0]=0,0;for(_=h[0],S=1;15>=S&&0===r[S];S++);for(z=S,S>_&&(_=S),v=15;0!==v&&0===r[v];v--);for(k=v,_>v&&(_=v),h[0]=_,B=1<<S;v>S;S++,B<<=1)if(0>(B-=r[S]))return t;if(0>(B-=r[v]))return t;for(r[v]+=B,f[1]=S=0,I=1,V=2;0!=--v;)f[V]=S+=r[I],V++,I++;v=0,I=0;do{0!==(S=e[n+I])&&(y[f[S]++]=v),I++}while(++v<c);for(c=f[k],f[0]=v=0,I=0,g=-1,A=-_,o[0]=0,x=0,D=0;k>=z;z++)for(b=r[z];0!=b--;){for(;z>A+_;){if(g++,A+=_,D=k-A,D=D>_?_:D,(m=1<<(S=z-A))>b+1&&(m-=b+1,V=z,D>S))for(;++S<D&&(m<<=1)>r[++V];)m-=r[V];if(D=1<<S,p[0]+D>1440)return t;o[g]=x=p[0],p[0]+=D,0!==g?(f[g]=v,s[0]=S,s[1]=_,S=v>>>A-_,s[2]=x-o[g-1]-S,d.set(s,3*(o[g-1]+S))):w[0]=x}for(s[1]=z-A,c>I?y[I]<l?(s[0]=256>y[I]?0:96,s[2]=y[I++]):(s[0]=u[y[I]-l]+16+64,s[2]=a[y[I++]-l]):s[0]=192,m=1<<z-A,S=v>>>A;D>S;S+=m)d.set(s,3*(x+S));for(S=1<<z-1;0!=(v&S);S>>>=1)v^=S;for(v^=S,C=(1<<A)-1;(v&C)!=f[g];)g--,A-=_,C=(1<<A)-1}return 0!==B&&1!=k?i:0}function d(t){let i;for(e||(e=[],n=[],r=new c(16),s=[],o=new c(15),f=new c(16)),n.length<t&&(n=[]),i=0;t>i;i++)n[i]=0;for(i=0;16>i;i++)r[i]=0;for(i=0;3>i;i++)s[i]=0;o.set(r.subarray(0,15),0),f.set(r.subarray(0,16),0)}this.ft=(r,s,o,c,f)=>{let a;return d(19),e[0]=0,a=l(r,0,19,19,null,null,o,s,c,e,n),a==t?f.Je="oversubscribed dynamic bit lengths tree":a!=i&&0!==s[0]||(f.Je="incomplete dynamic bit lengths tree",a=t),a},this.lt=(r,s,o,c,f,p,y,b,m)=>{let k;return d(288),e[0]=0,k=l(o,0,r,257,a,u,p,c,b,e,n),0!=k||0===c[0]?(k==t?m.Je="oversubscribed literal/length tree":-4!=k&&(m.Je="incomplete literal/length tree",k=t),k):(d(288),k=l(o,r,s,0,w,h,y,f,b,e,n),0!=k||0===f[0]&&r>257?(k==t?m.Je="oversubscribed distance tree":k==i?(m.Je="incomplete distance tree",k=t):-4!=k&&(m.Je="empty distance tree with lengths",k=t),k):0)}}function p(){const n=this;let r,s,i,c,f=0,l=0,a=0,u=0,w=0,h=0,d=0,p=0,y=0,b=0;function m(e,n,r,s,i,c,f,l){let a,u,w,h,d,p,y,b,m,k,g,v,S,z,_,C;y=l.ot,b=l.Oe,d=f.ut,p=f.wt,m=f.write,k=m<f.read?f.read-m-1:f.end-m,g=o[e],v=o[n];do{for(;20>p;)b--,d|=(255&l.ht(y++))<<p,p+=8;if(a=d&g,u=r,w=s,C=3*(w+a),0!==(h=u[C]))for(;;){if(d>>=u[C+1],p-=u[C+1],0!=(16&h)){for(h&=15,S=u[C+2]+(d&o[h]),d>>=h,p-=h;15>p;)b--,d|=(255&l.ht(y++))<<p,p+=8;for(a=d&v,u=i,w=c,C=3*(w+a),h=u[C];;){if(d>>=u[C+1],p-=u[C+1],0!=(16&h)){for(h&=15;h>p;)b--,d|=(255&l.ht(y++))<<p,p+=8;if(z=u[C+2]+(d&o[h]),d>>=h,p-=h,k-=S,z>m){_=m-z;do{_+=f.end}while(0>_);if(h=f.end-_,S>h){if(S-=h,m-_>0&&h>m-_)do{f.dt[m++]=f.dt[_++]}while(0!=--h);else f.dt.set(f.dt.subarray(_,_+h),m),m+=h,_+=h,h=0;_=0}}else _=m-z,m-_>0&&2>m-_?(f.dt[m++]=f.dt[_++],f.dt[m++]=f.dt[_++],S-=2):(f.dt.set(f.dt.subarray(_,_+2),m),m+=2,_+=2,S-=2);if(m-_>0&&S>m-_)do{f.dt[m++]=f.dt[_++]}while(0!=--S);else f.dt.set(f.dt.subarray(_,_+S),m),m+=S,_+=S,S=0;break}if(0!=(64&h))return l.Je="invalid distance code",S=l.Oe-b,S=S>p>>3?p>>3:S,b+=S,y-=S,p-=S<<3,f.ut=d,f.wt=p,l.Oe=b,l.Xe+=y-l.ot,l.ot=y,f.write=m,t;a+=u[C+2],a+=d&o[h],C=3*(w+a),h=u[C]}break}if(0!=(64&h))return 0!=(32&h)?(S=l.Oe-b,S=S>p>>3?p>>3:S,b+=S,y-=S,p-=S<<3,f.ut=d,f.wt=p,l.Oe=b,l.Xe+=y-l.ot,l.ot=y,f.write=m,1):(l.Je="invalid literal/length code",S=l.Oe-b,S=S>p>>3?p>>3:S,b+=S,y-=S,p-=S<<3,f.ut=d,f.wt=p,l.Oe=b,l.Xe+=y-l.ot,l.ot=y,f.write=m,t);if(a+=u[C+2],a+=d&o[h],C=3*(w+a),0===(h=u[C])){d>>=u[C+1],p-=u[C+1],f.dt[m++]=u[C+2],k--;break}}else d>>=u[C+1],p-=u[C+1],f.dt[m++]=u[C+2],k--}while(k>=258&&b>=10);return S=l.Oe-b,S=S>p>>3?p>>3:S,b+=S,y-=S,p-=S<<3,f.ut=d,f.wt=p,l.Oe=b,l.Xe+=y-l.ot,l.ot=y,f.write=m,0}n.init=(e,t,n,o,f,l)=>{r=0,d=e,p=t,i=n,y=o,c=f,b=l,s=null},n.yt=(n,k,g)=>{let v,S,z,_,C,I,x,A=0,V=0,B=0;for(B=k.ot,_=k.Oe,A=n.ut,V=n.wt,C=n.write,I=C<n.read?n.read-C-1:n.end-C;;)switch(r){case 0:if(I>=258&&_>=10&&(n.ut=A,n.wt=V,k.Oe=_,k.Xe+=B-k.ot,k.ot=B,n.write=C,g=m(d,p,i,y,c,b,n,k),B=k.ot,_=k.Oe,A=n.ut,V=n.wt,C=n.write,I=C<n.read?n.read-C-1:n.end-C,0!=g)){r=1==g?7:9;break}a=d,s=i,l=y,r=1;case 1:for(v=a;v>V;){if(0===_)return n.ut=A,n.wt=V,k.Oe=_,k.Xe+=B-k.ot,k.ot=B,n.write=C,n.bt(k,g);g=0,_--,A|=(255&k.ht(B++))<<V,V+=8}if(S=3*(l+(A&o[v])),A>>>=s[S+1],V-=s[S+1],z=s[S],0===z){u=s[S+2],r=6;break}if(0!=(16&z)){w=15&z,f=s[S+2],r=2;break}if(0==(64&z)){a=z,l=S/3+s[S+2];break}if(0!=(32&z)){r=7;break}return r=9,k.Je="invalid literal/length code",g=t,n.ut=A,n.wt=V,k.Oe=_,k.Xe+=B-k.ot,k.ot=B,n.write=C,n.bt(k,g);case 2:for(v=w;v>V;){if(0===_)return n.ut=A,n.wt=V,k.Oe=_,k.Xe+=B-k.ot,k.ot=B,n.write=C,n.bt(k,g);g=0,_--,A|=(255&k.ht(B++))<<V,V+=8}f+=A&o[v],A>>=v,V-=v,a=p,s=c,l=b,r=3;case 3:for(v=a;v>V;){if(0===_)return n.ut=A,n.wt=V,k.Oe=_,k.Xe+=B-k.ot,k.ot=B,n.write=C,n.bt(k,g);g=0,_--,A|=(255&k.ht(B++))<<V,V+=8}if(S=3*(l+(A&o[v])),A>>=s[S+1],V-=s[S+1],z=s[S],0!=(16&z)){w=15&z,h=s[S+2],r=4;break}if(0==(64&z)){a=z,l=S/3+s[S+2];break}return r=9,k.Je="invalid distance code",g=t,n.ut=A,n.wt=V,k.Oe=_,k.Xe+=B-k.ot,k.ot=B,n.write=C,n.bt(k,g);case 4:for(v=w;v>V;){if(0===_)return n.ut=A,n.wt=V,k.Oe=_,k.Xe+=B-k.ot,k.ot=B,n.write=C,n.bt(k,g);g=0,_--,A|=(255&k.ht(B++))<<V,V+=8}h+=A&o[v],A>>=v,V-=v,r=5;case 5:for(x=C-h;0>x;)x+=n.end;for(;0!==f;){if(0===I&&(C==n.end&&0!==n.read&&(C=0,I=C<n.read?n.read-C-1:n.end-C),0===I&&(n.write=C,g=n.bt(k,g),C=n.write,I=C<n.read?n.read-C-1:n.end-C,C==n.end&&0!==n.read&&(C=0,I=C<n.read?n.read-C-1:n.end-C),0===I)))return n.ut=A,n.wt=V,k.Oe=_,k.Xe+=B-k.ot,k.ot=B,n.write=C,n.bt(k,g);n.dt[C++]=n.dt[x++],I--,x==n.end&&(x=0),f--}r=0;break;case 6:if(0===I&&(C==n.end&&0!==n.read&&(C=0,I=C<n.read?n.read-C-1:n.end-C),0===I&&(n.write=C,g=n.bt(k,g),C=n.write,I=C<n.read?n.read-C-1:n.end-C,C==n.end&&0!==n.read&&(C=0,I=C<n.read?n.read-C-1:n.end-C),0===I)))return n.ut=A,n.wt=V,k.Oe=_,k.Xe+=B-k.ot,k.ot=B,n.write=C,n.bt(k,g);g=0,n.dt[C++]=u,I--,r=0;break;case 7:if(V>7&&(V-=8,_++,B--),n.write=C,g=n.bt(k,g),C=n.write,I=C<n.read?n.read-C-1:n.end-C,n.read!=n.write)return n.ut=A,n.wt=V,k.Oe=_,k.Xe+=B-k.ot,k.ot=B,n.write=C,n.bt(k,g);r=8;case 8:return g=1,n.ut=A,n.wt=V,k.Oe=_,k.Xe+=B-k.ot,k.ot=B,n.write=C,n.bt(k,g);case 9:return g=t,n.ut=A,n.wt=V,k.Oe=_,k.Xe+=B-k.ot,k.ot=B,n.write=C,n.bt(k,g);default:return g=e,n.ut=A,n.wt=V,k.Oe=_,k.Xe+=B-k.ot,k.ot=B,n.write=C,n.bt(k,g)}},n.kt=()=>{}}d.gt=(e,t,n,r)=>(e[0]=9,t[0]=5,n[0]=f,r[0]=l,0);const y=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function b(n,r){const f=this;let l,a=0,u=0,w=0,h=0;const b=[0],m=[0],k=new p;let g=0,v=new c(4320);const S=new d;f.wt=0,f.ut=0,f.dt=new s(r),f.end=r,f.read=0,f.write=0,f.reset=(e,t)=>{t&&(t[0]=0),6==a&&k.kt(e),a=0,f.wt=0,f.ut=0,f.read=f.write=0},f.reset(n,null),f.bt=(e,t)=>{let n,r,s;return r=e.ct,s=f.read,n=(s>f.write?f.end:f.write)-s,n>e.it&&(n=e.it),0!==n&&t==i&&(t=0),e.it-=n,e.Ye+=n,e.rt.set(f.dt.subarray(s,s+n),r),r+=n,s+=n,s==f.end&&(s=0,f.write==f.end&&(f.write=0),n=f.write-s,n>e.it&&(n=e.it),0!==n&&t==i&&(t=0),e.it-=n,e.Ye+=n,e.rt.set(f.dt.subarray(s,s+n),r),r+=n,s+=n),e.ct=r,f.read=s,t},f.yt=(n,r)=>{let s,i,c,p,z,_,C,I;for(p=n.ot,z=n.Oe,i=f.ut,c=f.wt,_=f.write,C=_<f.read?f.read-_-1:f.end-_;;){let x,A,V,B,D,E,M,T;switch(a){case 0:for(;3>c;){if(0===z)return f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);r=0,z--,i|=(255&n.ht(p++))<<c,c+=8}switch(s=7&i,g=1&s,s>>>1){case 0:i>>>=3,c-=3,s=7&c,i>>>=s,c-=s,a=1;break;case 1:x=[],A=[],V=[[]],B=[[]],d.gt(x,A,V,B),k.init(x[0],A[0],V[0],0,B[0],0),i>>>=3,c-=3,a=6;break;case 2:i>>>=3,c-=3,a=3;break;case 3:return i>>>=3,c-=3,a=9,n.Je="invalid block type",r=t,f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r)}break;case 1:for(;32>c;){if(0===z)return f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);r=0,z--,i|=(255&n.ht(p++))<<c,c+=8}if((~i>>>16&65535)!=(65535&i))return a=9,n.Je="invalid stored block lengths",r=t,f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);u=65535&i,i=c=0,a=0!==u?2:0!==g?7:0;break;case 2:if(0===z)return f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);if(0===C&&(_==f.end&&0!==f.read&&(_=0,C=_<f.read?f.read-_-1:f.end-_),0===C&&(f.write=_,r=f.bt(n,r),_=f.write,C=_<f.read?f.read-_-1:f.end-_,_==f.end&&0!==f.read&&(_=0,C=_<f.read?f.read-_-1:f.end-_),0===C)))return f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);if(r=0,s=u,s>z&&(s=z),s>C&&(s=C),f.dt.set(n.qe(p,s),_),p+=s,z-=s,_+=s,C-=s,0!=(u-=s))break;a=0!==g?7:0;break;case 3:for(;14>c;){if(0===z)return f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);r=0,z--,i|=(255&n.ht(p++))<<c,c+=8}if(w=s=16383&i,(31&s)>29||(s>>5&31)>29)return a=9,n.Je="too many length or distance symbols",r=t,f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);if(s=258+(31&s)+(s>>5&31),!l||l.length<s)l=[];else for(I=0;s>I;I++)l[I]=0;i>>>=14,c-=14,h=0,a=4;case 4:for(;4+(w>>>10)>h;){for(;3>c;){if(0===z)return f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);r=0,z--,i|=(255&n.ht(p++))<<c,c+=8}l[y[h++]]=7&i,i>>>=3,c-=3}for(;19>h;)l[y[h++]]=0;if(b[0]=7,s=S.ft(l,b,m,v,n),0!=s)return(r=s)==t&&(l=null,a=9),f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);h=0,a=5;case 5:for(;s=w,258+(31&s)+(s>>5&31)>h;){let e,u;for(s=b[0];s>c;){if(0===z)return f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);r=0,z--,i|=(255&n.ht(p++))<<c,c+=8}if(s=v[3*(m[0]+(i&o[s]))+1],u=v[3*(m[0]+(i&o[s]))+2],16>u)i>>>=s,c-=s,l[h++]=u;else{for(I=18==u?7:u-14,e=18==u?11:3;s+I>c;){if(0===z)return f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);r=0,z--,i|=(255&n.ht(p++))<<c,c+=8}if(i>>>=s,c-=s,e+=i&o[I],i>>>=I,c-=I,I=h,s=w,I+e>258+(31&s)+(s>>5&31)||16==u&&1>I)return l=null,a=9,n.Je="invalid bit length repeat",r=t,f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);u=16==u?l[I-1]:0;do{l[I++]=u}while(0!=--e);h=I}}if(m[0]=-1,D=[],E=[],M=[],T=[],D[0]=9,E[0]=6,s=w,s=S.lt(257+(31&s),1+(s>>5&31),l,D,E,M,T,v,n),0!=s)return s==t&&(l=null,a=9),r=s,f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);k.init(D[0],E[0],v,M[0],v,T[0]),a=6;case 6:if(f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,1!=(r=k.yt(f,n,r)))return f.bt(n,r);if(r=0,k.kt(n),p=n.ot,z=n.Oe,i=f.ut,c=f.wt,_=f.write,C=_<f.read?f.read-_-1:f.end-_,0===g){a=0;break}a=7;case 7:if(f.write=_,r=f.bt(n,r),_=f.write,C=_<f.read?f.read-_-1:f.end-_,f.read!=f.write)return f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);a=8;case 8:return r=1,f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);case 9:return r=t,f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);default:return r=e,f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r)}}},f.kt=e=>{f.reset(e,null),f.dt=null,v=null},f.vt=(e,t,n)=>{f.dt.set(e.subarray(t,t+n),0),f.read=f.write=n},f.St=()=>1==a?1:0}const m=13,k=[0,0,255,255];function g(){const n=this;function r(t){return t&&t.zt?(t.Xe=t.Ye=0,t.Je=null,t.zt.mode=7,t.zt._t.reset(t,null),0):e}n.mode=0,n.method=0,n.Ct=[0],n.It=0,n.marker=0,n.xt=0,n.At=e=>(n._t&&n._t.kt(e),n._t=null,0),n.Vt=(t,s)=>(t.Je=null,n._t=null,8>s||s>15?(n.At(t),e):(n.xt=s,t.zt._t=new b(t,1<<s),r(t),0)),n.Bt=(n,r)=>{let s,o;if(!n||!n.zt||!n.st)return e;const c=n.zt;for(r=4==r?i:0,s=i;;)switch(c.mode){case 0:if(0===n.Oe)return s;if(s=r,n.Oe--,n.Xe++,8!=(15&(c.method=n.ht(n.ot++)))){c.mode=m,n.Je="unknown compression method",c.marker=5;break}if(8+(c.method>>4)>c.xt){c.mode=m,n.Je="invalid win size",c.marker=5;break}c.mode=1;case 1:if(0===n.Oe)return s;if(s=r,n.Oe--,n.Xe++,o=255&n.ht(n.ot++),((c.method<<8)+o)%31!=0){c.mode=m,n.Je="incorrect header check",c.marker=5;break}if(0==(32&o)){c.mode=7;break}c.mode=2;case 2:if(0===n.Oe)return s;s=r,n.Oe--,n.Xe++,c.It=(255&n.ht(n.ot++))<<24&4278190080,c.mode=3;case 3:if(0===n.Oe)return s;s=r,n.Oe--,n.Xe++,c.It+=(255&n.ht(n.ot++))<<16&16711680,c.mode=4;case 4:if(0===n.Oe)return s;s=r,n.Oe--,n.Xe++,c.It+=(255&n.ht(n.ot++))<<8&65280,c.mode=5;case 5:return 0===n.Oe?s:(s=r,n.Oe--,n.Xe++,c.It+=255&n.ht(n.ot++),c.mode=6,2);case 6:return c.mode=m,n.Je="need dictionary",c.marker=0,e;case 7:if(s=c._t.yt(n,s),s==t){c.mode=m,c.marker=0;break}if(0==s&&(s=r),1!=s)return s;s=r,c._t.reset(n,c.Ct),c.mode=12;case 12:return n.Oe=0,1;case m:return t;default:return e}},n.Dt=(t,n,r)=>{let s=0,i=r;if(!t||!t.zt||6!=t.zt.mode)return e;const o=t.zt;return i<1<<o.xt||(i=(1<<o.xt)-1,s=r-i),o._t.vt(n,s,i),o.mode=7,0},n.Et=n=>{let s,o,c,f,l;if(!n||!n.zt)return e;const a=n.zt;if(a.mode!=m&&(a.mode=m,a.marker=0),0===(s=n.Oe))return i;for(o=n.ot,c=a.marker;0!==s&&4>c;)n.ht(o)==k[c]?c++:c=0!==n.ht(o)?0:4-c,o++,s--;return n.Xe+=o-n.ot,n.ot=o,n.Oe=s,a.marker=c,4!=c?t:(f=n.Xe,l=n.Ye,r(n),n.Xe=f,n.Ye=l,a.mode=7,0)},n.Mt=t=>t&&t.zt&&t.zt._t?t.zt._t.St():e}function v(){}return v.prototype={Vt(e){const t=this;return t.zt=new g,e||(e=15),t.zt.Vt(t,e)},Bt(t){const n=this;return n.zt?n.zt.Bt(n,t):e},At(){const t=this;if(!t.zt)return e;const n=t.zt.At(t);return t.zt=null,n},Et(){const t=this;return t.zt?t.zt.Et(t):e},Dt(t,n){const r=this;return r.zt?r.zt.Dt(r,t,n):e},ht(e){return this.st[e]},qe(e,t){return this.st.subarray(e,e+t)}},function(e){const t=new v,o=e&&e.chunkSize?n.floor(2*e.chunkSize):131072,c=new s(o);let f=!1;t.Vt(),t.rt=c,this.append=(e,n)=>{const l=[];let a,u,w=0,h=0,d=0;if(0!==e.length){t.ot=0,t.st=e,t.Oe=e.length;do{if(t.ct=0,t.it=o,0!==t.Oe||f||(t.ot=0,f=!0),a=t.Bt(0),f&&a===i){if(0!==t.Oe)throw new r("inflating: bad input")}else if(0!==a&&1!==a)throw new r("inflating: "+t.Je);if((f||1===a)&&t.Oe===e.length)throw new r("inflating: bad input");t.ct&&(t.ct===o?l.push(new s(c)):l.push(c.slice(0,t.ct))),d+=t.ct,n&&t.ot>0&&t.ot!=w&&(n(t.ot),w=t.ot)}while(t.Oe>0||0===t.it);return l.length>1?(u=new s(d),l.forEach((e=>{u.set(e,h),h+=e.length}))):u=l[0]||new s,u}},this.flush=()=>{t.At()}}})();self.initCodec=()=>{self.Deflate=ve,self.Inflate=Se};\n'],{type:"text/javascript"}));e({workerScripts:{inflate:[t],deflate:[t]}})}};export{e as default};
1
+ var e=e=>{if("function"==typeof URL.createObjectURL){const t=()=>URL.createObjectURL(new Blob(['const{Array:e,Object:t,Math:n,Error:r,Uint8Array:s,Uint16Array:i,Uint32Array:o,Int32Array:c,DataView:f,Promise:l,TextEncoder:a,crypto:u,postMessage:w,TransformStream:h,ReadableStream:d,WritableStream:p,CompressionStream:y,DecompressionStream:b}=globalThis,m=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;m[e]=t}class k{constructor(e){this.t=e||-1}append(e){let t=0|this.t;for(let n=0,r=0|e.length;r>n;n++)t=t>>>8^m[255&(t^e[n])];this.t=t}get(){return~this.t}}class g extends h{constructor(){super({start(){this.i=new k},transform(e){this.i.append(e)},flush(e){const t=new s(4);new f(t.buffer).setUint32(0,this.i.get()),e.enqueue(t)}})}}const v={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=v.o(n);return 32===r?e.concat(t):v.l(t,r,0|n,e.slice(0,e.length-1))},u(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+v.o(n)},h(e,t){if(32*e.length<t)return e;const r=(e=e.slice(0,n.ceil(t/32))).length;return t&=31,r>0&&t&&(e[r-1]=v.p(t,e[r-1]&2147483648>>t-1,1)),e},p:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,o:e=>n.round(e/1099511627776)||32,l(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s<e.length;s++)r.push(n|e[s]>>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,i=v.o(s);return r.push(v.p(t+i&31,t+i>32?n:r.pop(),1)),r}},S={m:{k(e){const t=v.u(e)/8,n=new s(t);let r;for(let s=0;t>s;s++)0==(3&s)&&(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},g(e){const t=[];let n,r=0;for(n=0;n<e.length;n++)r=r<<8|e[n],3==(3&n)&&(t.push(r),r=0);return 3&n&&t.push(v.p(8*(3&n),r)),t}}},z={v:function(e){e?(this.S=e.S.slice(0),this._=e._.slice(0),this.C=e.C):this.reset()}};z.v.prototype={blockSize:512,reset(){const e=this;return e.S=this.I.slice(0),e._=[],e.C=0,e},update(e){const t=this;"string"==typeof e&&(e=S.A.g(e));const n=t._=v.concat(t._,e),s=t.C,i=t.C=s+v.u(e);if(i>9007199254740991)throw new r("Cannot hash more than 2^53 - 1 bits");const c=new o(n);let f=0;for(let e=t.blockSize+s-(t.blockSize+s&t.blockSize-1);i>=e;e+=t.blockSize)t.V(c.subarray(16*f,16*(f+1))),f+=1;return n.splice(0,16*f),t},B(){const e=this;let t=e._;const r=e.S;t=v.concat(t,[v.p(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(n.floor(e.C/4294967296)),t.push(0|e.C);t.length;)e.V(t.splice(0,16));return e.reset(),r},I:[1732584193,4023233417,2562383102,271733878,3285377520],D:[1518500249,1859775393,2400959708,3395469782],M:(e,t,n,r)=>e>19?e>39?e>59?e>79?void 0:t^n^r:t&n|t&r|n&r:t^n^r:t&n|~t&r,T:(e,t)=>t<<e|t>>>32-e,V(t){const r=this,s=r.S,i=e(80);for(let e=0;16>e;e++)i[e]=t[e];let o=s[0],c=s[1],f=s[2],l=s[3],a=s[4];for(let e=0;79>=e;e++){16>e||(i[e]=r.T(1,i[e-3]^i[e-8]^i[e-14]^i[e-16]));const t=r.T(5,o)+r.M(e,c,f,l)+a+i[e]+r.D[n.floor(e/20)]|0;a=l,l=f,f=r.T(30,c),c=o,o=t}s[0]=s[0]+o|0,s[1]=s[1]+c|0,s[2]=s[2]+f|0,s[3]=s[3]+l|0,s[4]=s[4]+a|0}};const _={getRandomValues(e){const t=new o(e.buffer),r=e=>{let t=987654321;const r=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&r,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&r)&r)/4294967296+.5)*(n.random()>.5?1:-1))};for(let s,i=0;i<e.length;i+=4){const e=r(4294967296*(s||n.random()));s=987654071*e(),t[i/4]=4294967296*e()|0}return e}},C={importKey:e=>new C.P(S.m.g(e)),R(e,t,n,s){if(n=n||1e4,0>s||0>n)throw new r("invalid params to pbkdf2");const i=1+(s>>5)<<2;let o,c,l,a,u;const w=new ArrayBuffer(i),h=new f(w);let d=0;const p=v;for(t=S.m.g(t),u=1;(i||1)>d;u++){for(o=c=e.encrypt(p.concat(t,[u])),l=1;n>l;l++)for(c=e.encrypt(c),a=0;a<c.length;a++)o[a]^=c[a];for(l=0;(i||1)>d&&l<o.length;l++)h.setInt32(d,o[l]),d+=4}return w.slice(0,s/8)},P:class{constructor(e){const t=this,n=t.U=z.v,r=[[],[]],s=n.prototype.blockSize/32;t.W=[new n,new n],e.length>s&&(e=n.hash(e));for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t.W[0].update(r[0]),t.W[1].update(r[1]),t.j=new n(t.W[0])}reset(){const e=this;e.j=new e.U(e.W[0]),e.H=!1}update(e){this.H=!0,this.j.update(e)}digest(){const e=this,t=e.j.B(),n=new e.U(e.W[1]).update(t).B();return e.reset(),n}encrypt(e){if(this.H)throw new r("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},I={name:"PBKDF2"},x=t.assign({hash:{name:"HMAC"}},I),A=t.assign({iterations:1e3,hash:{name:"SHA-1"}},I),V=["deriveBits"],B=[8,12,16],D=[16,24,32],E=[0,0,0,0],M=void 0!==u,T=M&&void 0!==u.subtle,P=M&&"function"==typeof u.getRandomValues,R=M&&T&&"function"==typeof u.subtle.importKey,U=M&&T&&"function"==typeof u.subtle.deriveBits,W=S.m,j=class{constructor(e){const t=this;t.K=[[[],[],[],[],[]],[[],[],[],[],[]]],t.K[0][0][0]||t.L();const n=t.K[0][4],s=t.K[1],i=e.length;let o,c,f,l=1;if(4!==i&&6!==i&&8!==i)throw new r("invalid aes key size");for(t.D=[c=e.slice(0),f=[]],o=i;4*i+28>o;o++){let e=c[o-1];(o%i==0||8===i&&o%i==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],o%i==0&&(e=e<<8^e>>>24^l<<24,l=l<<1^283*(l>>7))),c[o]=c[o-i]^e}for(let e=0;o;e++,o--){const t=c[3&e?o:o-4];f[e]=4>=o||4>e?t:s[0][n[t>>>24]]^s[1][n[t>>16&255]]^s[2][n[t>>8&255]]^s[3][n[255&t]]}}encrypt(e){return this.F(e,0)}decrypt(e){return this.F(e,1)}L(){const e=this.K[0],t=this.K[1],n=e[4],r=t[4],s=[],i=[];let o,c,f,l;for(let e=0;256>e;e++)i[(s[e]=e<<1^283*(e>>7))^e]=e;for(let a=o=0;!n[a];a^=c||1,o=i[o]||1){let i=o^o<<1^o<<2^o<<3^o<<4;i=i>>8^255&i^99,n[a]=i,r[i]=a,l=s[f=s[c=s[a]]];let u=16843009*l^65537*f^257*c^16843008*a,w=257*s[i]^16843008*i;for(let n=0;4>n;n++)e[n][a]=w=w<<24^w>>>8,t[n][i]=u=u<<24^u>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}F(e,t){if(4!==e.length)throw new r("invalid aes block size");const n=this.D[t],s=n.length/4-2,i=[0,0,0,0],o=this.K[t],c=o[0],f=o[1],l=o[2],a=o[3],u=o[4];let w,h,d,p=e[0]^n[0],y=e[t?3:1]^n[1],b=e[2]^n[2],m=e[t?1:3]^n[3],k=4;for(let e=0;s>e;e++)w=c[p>>>24]^f[y>>16&255]^l[b>>8&255]^a[255&m]^n[k],h=c[y>>>24]^f[b>>16&255]^l[m>>8&255]^a[255&p]^n[k+1],d=c[b>>>24]^f[m>>16&255]^l[p>>8&255]^a[255&y]^n[k+2],m=c[m>>>24]^f[p>>16&255]^l[y>>8&255]^a[255&b]^n[k+3],k+=4,p=w,y=h,b=d;for(let e=0;4>e;e++)i[t?3&-e:e]=u[p>>>24]<<24^u[y>>16&255]<<16^u[b>>8&255]<<8^u[255&m]^n[k++],w=p,p=y,y=b,b=m,m=w;return i}},H=class{constructor(e,t){this.N=e,this.O=t,this.q=t}reset(){this.q=this.O}update(e){return this.G(this.N,e,this.q)}J(e){if(255==(e>>24&255)){let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}else e+=1<<24;return e}X(e){0===(e[0]=this.J(e[0]))&&(e[1]=this.J(e[1]))}G(e,t,n){let r;if(!(r=t.length))return[];const s=v.u(t);for(let s=0;r>s;s+=4){this.X(n);const r=e.encrypt(n);t[s]^=r[0],t[s+1]^=r[1],t[s+2]^=r[2],t[s+3]^=r[3]}return v.h(t,s)}},K=C.P;class L extends h{constructor(n,i,o){let c;super({start(){t.assign(this,{ready:new l((e=>this.Y=e)),password:n,signed:i,Z:o-1,pending:new s})},async transform(t,n){const i=this;if(i.password){const n=i.password;i.password=null;const s=G(t,0,B[i.Z]+2);await(async(e,t,n)=>{await O(e,n,G(t,0,B[e.Z]));const s=G(t,B[e.Z]),i=e.keys.passwordVerification;if(i[0]!=s[0]||i[1]!=s[1])throw new r("Invalid password")})(i,s,n),i.$=new H(new j(i.keys.key),e.from(E)),i.ee=new K(i.keys.te),t=G(t,B[i.Z]+2),i.Y()}else await i.ready;const o=new s(t.length-10-(t.length-10)%16);n.enqueue(N(i,t,o,0,10,!0))},async flush(e){const t=this;await t.ready;const n=t.pending,r=G(n,0,n.length-10),i=G(n,n.length-10);let o=new s;if(r.length){const e=Q(W,r);t.ee.update(e);const n=t.$.update(e);o=J(W,n)}if(c.valid=!0,t.signed){const e=G(J(W,t.ee.digest()),0,10);for(let t=0;10>t;t++)e[t]!=i[t]&&(c.valid=!1)}e.enqueue(o)}}),c=this}}class F extends h{constructor(n,r){let i;super({start(){t.assign(this,{ready:new l((e=>this.Y=e)),password:n,Z:r-1,pending:new s})},async transform(t,n){const r=this;let i=new s;if(r.password){const t=r.password;r.password=null,i=await(async(e,t)=>{const n=(r=new s(B[e.Z]),P?u.getRandomValues(r):_.getRandomValues(r));var r;return await O(e,t,n),q(n,e.keys.passwordVerification)})(r,t),r.$=new H(new j(r.keys.key),e.from(E)),r.ee=new K(r.keys.te),r.Y()}else await r.ready;const o=new s(i.length+t.length-t.length%16);o.set(i,0),n.enqueue(N(r,t,o,i.length,0))},async flush(e){const t=this;await t.ready;let n=new s;if(t.pending.length){const e=t.$.update(Q(W,t.pending));t.ee.update(e),n=J(W,e)}i.signature=J(W,t.ee.digest()).slice(0,10),e.enqueue(q(n,i.signature))}}),i=this}}function N(e,t,n,r,i,o){const c=t.length-i;let f;for(e.pending.length&&(t=q(e.pending,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new s(t)).set(n,0)}return e})(n,c-c%16)),f=0;c-16>=f;f+=16){const s=Q(W,G(t,f,f+16));o&&e.ee.update(s);const i=e.$.update(s);o||e.ee.update(i),n.set(J(W,i),f+r)}return e.pending=G(t,f),n}async function O(e,n,r){const i=(e=>{if(void 0===a){const t=new s((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new a).encode(e)})(n),o=await((e,t,n,r,s)=>R?u.subtle.importKey("raw",t,n,!1,s):C.importKey(t))(0,i,x,0,V),c=await(async(e,t,n)=>U?await u.subtle.deriveBits(e,t,n):C.R(t,e.salt,A.iterations,n))(t.assign({salt:r},A),o,8*(2*D[e.Z]+2)),f=new s(c);e.keys={key:Q(W,G(f,0,D[e.Z])),te:Q(W,G(f,D[e.Z],2*D[e.Z])),passwordVerification:G(f,2*D[e.Z])}}function q(e,t){let n=e;return e.length+t.length&&(n=new s(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function G(e,t,n){return e.subarray(t,n)}function J(e,t){return e.k(t)}function Q(e,t){return e.g(t)}class X extends h{constructor(e,n){let s;super({start(){t.assign(this,{password:e,passwordVerification:n}),ee(this,e)},transform(e,t){const n=this;if(n.password){const t=Z(n,e.subarray(0,12));if(n.password=null,t[11]!=n.passwordVerification)throw new r("Invalid password");e=e.subarray(12)}t.enqueue(Z(n,e))},flush(){s.valid=!0}}),s=this}}class Y extends h{constructor(e,n){super({start(){t.assign(this,{password:e,passwordVerification:n}),ee(this,e)},transform(e,t){const n=this;let r,i;if(n.password){n.password=null;const t=u.getRandomValues(new s(12));t[11]=n.passwordVerification,r=new s(e.length+t.length),r.set($(n,t),0),i=12}else r=new s(e.length),i=0;r.set($(n,e),i),t.enqueue(r)},flush(){}})}}function Z(e,t){const n=new s(t.length);for(let r=0;r<t.length;r++)n[r]=ne(e)^t[r],te(e,n[r]);return n}function $(e,t){const n=new s(t.length);for(let r=0;r<t.length;r++)n[r]=ne(e)^t[r],te(e,t[r]);return n}function ee(e,t){e.keys=[305419896,591751049,878082192],e.ne=new k(e.keys[0]),e.re=new k(e.keys[2]);for(let n=0;n<t.length;n++)te(e,t.charCodeAt(n))}function te(e,t){e.ne.append([t]),e.keys[0]=~e.ne.get(),e.keys[1]=se(e.keys[1]+re(e.keys[0])),e.keys[1]=se(n.imul(e.keys[1],134775813)+1),e.re.append([e.keys[1]>>>24]),e.keys[2]=~e.re.get()}function ne(e){const t=2|e.keys[2];return re(n.imul(t,1^t)>>>8)}function re(e){return 255&e}function se(e){return 4294967295&e}class ie extends h{constructor(e,t){let n;super({start(){n=new e(t)},transform(e,t){e=n.append(e),t.enqueue(e)},flush(e){const t=n.flush();t&&e.enqueue(t)}})}}const oe=void 0===y,ce=void 0===b;let fe=!0,le=!0;class ae extends h{constructor(e,t,{chunkSize:n},...r){super({},...r);const{compressed:s,encrypted:i,useCompressionStream:o,password:c,passwordVerification:l,encryptionStrength:a,zipCrypto:u,signed:w,level:h}=t,d=this;let p,b,m=he(super.readable);if(i&&!u||!w||([m,p]=m.tee(),p=p.pipeThrough(new g)),s)if(void 0!==o&&!o||oe&&!le)m=we(e,m,{chunkSize:n,level:h});else try{m=m.pipeThrough(new y("deflate-raw"))}catch(t){le=!1,m=we(e,m,{chunkSize:n,level:h})}i&&(u?m=m.pipeThrough(new Y(c,l)):(b=new F(c,a),m=m.pipeThrough(b))),de(d,m,(async()=>{let e;i&&!u&&(e=b.signature),i&&!u||!w||(e=await p.getReader().read(),e=new f(e.value.buffer).getUint32(0)),d.signature=e}))}}class ue extends h{constructor(e,t,{chunkSize:n},...s){super({},...s);const{zipCrypto:i,encrypted:o,password:c,passwordVerification:l,signed:a,encryptionStrength:u,compressed:w,useCompressionStream:h}=t;let d,p,y=he(super.readable);if(o&&(i?y=y.pipeThrough(new X(c,l)):(p=new L(c,a,u),y=y.pipeThrough(p))),w)if(void 0!==h&&!h||ce&&!fe)y=we(e,y,{chunkSize:n});else try{y=y.pipeThrough(new b("deflate-raw"))}catch(t){fe=!1,y=we(e,y,{chunkSize:n})}o&&!i||!a||([y,d]=y.tee(),d=d.pipeThrough(new g)),de(this,y,(async()=>{if(o&&!i&&!p.valid)throw new r("Invalid signature");if((!o||i)&&a){const e=await d.getReader().read(),n=new f(e.value.buffer);if(t.signature!=n.getUint32(0,!1))throw new r("Invalid signature")}}))}}function we(e,t,n){return t.pipeThrough(new ie(e,n))}function he(e){return e.pipeThrough(new h({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function de(e,n,r){e.size=0,n=n.pipeThrough(new h({transform(t,n){t&&t.length&&(e.size+=t.length,n.enqueue(t))},flush:r})),t.defineProperty(e,"readable",{get:()=>n})}class pe{constructor(e,t,n,r,s){const{codecType:i}=r;async function o(i){const o=new i(e,r,s);await t.pipeThrough(o).pipeTo(n,{se:!0});const{size:c,signature:f}=o;return{size:c,signature:f}}i.startsWith("deflate")?this.ie=()=>o(ae):i.startsWith("inflate")&&(this.ie=()=>o(ue))}}const ye=new Map;let be,me=0;async function ke(e){try{const{options:t,scripts:n,config:r}=e,{codecType:s}=t;let i;n&&n.length&&importScripts.apply(void 0,n),self.initCodec&&self.initCodec(),s.startsWith("deflate")?i=self.Deflate:s.startsWith("inflate")&&(i=self.Inflate);const o={highWaterMark:1,size:()=>r.chunkSize},c=new d({async pull(e){let t=new l(((e,t)=>ye.set(me,{resolve:e,reject:t})));ge({type:"pull",messageId:me}),me=(me+1)%Number.MAX_SAFE_INTEGER;const{value:n,done:r}=await t;e.enqueue(n),r&&e.close()}},o),f=new p({write(e){ge({type:"data",data:e})}},o);be=new pe(i,c,f,t,r),ge({type:"close",result:await be.ie()})}catch(e){const{message:t,stack:n}=e;w({error:{message:t,stack:n}})}}function ge(e){if(e.data){let{data:t}=e;if(t&&t.length)try{t=new s(t),e.data=t.buffer,w(e,[e.data])}catch(t){w(e)}else w(e)}else w(e)}addEventListener("message",(async e=>{const t=e.data,{type:n,messageId:r,data:i,done:o}=t;try{if("start"==n&&ke(t),"data"==n){const{resolve:e}=ye.get(r);ye.delete(r),e({value:new s(i),done:o})}}catch(e){w({error:{message:e.message,stack:e.stack}})}}));const ve=(()=>{const t=-2;function o(t){return c(t.map((([t,n])=>new e(t).fill(n,0,t))))}function c(t){return t.reduce(((t,n)=>t.concat(e.isArray(n)?c(n):n)),[])}const f=[0,1,2,3].concat(...o([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function l(){const e=this;function t(e,t){let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}e.oe=r=>{const s=e.ce,i=e.le.fe,o=e.le.ae;let c,f,l,a=-1;for(r.ue=0,r.we=573,c=0;o>c;c++)0!==s[2*c]?(r.he[++r.ue]=a=c,r.de[c]=0):s[2*c+1]=0;for(;2>r.ue;)l=r.he[++r.ue]=2>a?++a:0,s[2*l]=1,r.de[l]=0,r.pe--,i&&(r.ye-=i[2*l+1]);for(e.be=a,c=n.floor(r.ue/2);c>=1;c--)r.me(s,c);l=o;do{c=r.he[1],r.he[1]=r.he[r.ue--],r.me(s,1),f=r.he[1],r.he[--r.we]=c,r.he[--r.we]=f,s[2*l]=s[2*c]+s[2*f],r.de[l]=n.max(r.de[c],r.de[f])+1,s[2*c+1]=s[2*f+1]=l,r.he[1]=l++,r.me(s,1)}while(r.ue>=2);r.he[--r.we]=r.he[1],(t=>{const n=e.ce,r=e.le.fe,s=e.le.ke,i=e.le.ge,o=e.le.ve;let c,f,l,a,u,w,h=0;for(a=0;15>=a;a++)t.Se[a]=0;for(n[2*t.he[t.we]+1]=0,c=t.we+1;573>c;c++)f=t.he[c],a=n[2*n[2*f+1]+1]+1,a>o&&(a=o,h++),n[2*f+1]=a,f>e.be||(t.Se[a]++,u=0,i>f||(u=s[f-i]),w=n[2*f],t.pe+=w*(a+u),r&&(t.ye+=w*(r[2*f+1]+u)));if(0!==h){do{for(a=o-1;0===t.Se[a];)a--;t.Se[a]--,t.Se[a+1]+=2,t.Se[o]--,h-=2}while(h>0);for(a=o;0!==a;a--)for(f=t.Se[a];0!==f;)l=t.he[--c],l>e.be||(n[2*l+1]!=a&&(t.pe+=(a-n[2*l+1])*n[2*l],n[2*l+1]=a),f--)}})(r),((e,n,r)=>{const s=[];let i,o,c,f=0;for(i=1;15>=i;i++)s[i]=f=f+r[i-1]<<1;for(o=0;n>=o;o++)c=e[2*o+1],0!==c&&(e[2*o]=t(s[c]++,c))})(s,e.be,r.Se)}}function a(e,t,n,r,s){const i=this;i.fe=e,i.ke=t,i.ge=n,i.ae=r,i.ve=s}l.ze=[0,1,2,3,4,5,6,7].concat(...o([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),l._e=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],l.Ce=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],l.Ie=e=>256>e?f[e]:f[256+(e>>>7)],l.xe=[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],l.Ae=[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],l.Ve=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],l.Be=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const u=o([[144,8],[112,9],[24,7],[8,8]]);a.De=c([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((e,t)=>[e,u[t]])));const w=o([[30,5]]);function h(e,t,n,r,s){const i=this;i.Ee=e,i.Me=t,i.Te=n,i.Pe=r,i.Re=s}a.Ue=c([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((e,t)=>[e,w[t]]))),a.We=new a(a.De,l.xe,257,286,15),a.je=new a(a.Ue,l.Ae,0,30,15),a.He=new a(null,l.Ve,0,19,7);const d=[new h(0,0,0,0,0),new h(4,4,8,4,1),new h(4,5,16,8,1),new h(4,6,32,32,1),new h(4,4,16,16,2),new h(8,16,32,32,2),new h(8,16,128,128,2),new h(8,32,128,256,2),new h(32,128,258,1024,2),new h(32,258,258,4096,2)],p=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],y=113,b=666,m=262;function k(e,t,n,r){const s=e[2*t],i=e[2*n];return i>s||s==i&&r[t]<=r[n]}function g(){const e=this;let r,o,c,f,u,w,h,g,v,S,z,_,C,I,x,A,V,B,D,E,M,T,P,R,U,W,j,H,K,L,F,N,O;const q=new l,G=new l,J=new l;let Q,X,Y,Z,$,ee;function te(){let t;for(t=0;286>t;t++)F[2*t]=0;for(t=0;30>t;t++)N[2*t]=0;for(t=0;19>t;t++)O[2*t]=0;F[512]=1,e.pe=e.ye=0,X=Y=0}function ne(e,t){let n,r=-1,s=e[1],i=0,o=7,c=4;0===s&&(o=138,c=3),e[2*(t+1)+1]=65535;for(let f=0;t>=f;f++)n=s,s=e[2*(f+1)+1],++i<o&&n==s||(c>i?O[2*n]+=i:0!==n?(n!=r&&O[2*n]++,O[32]++):i>10?O[36]++:O[34]++,i=0,r=n,0===s?(o=138,c=3):n==s?(o=6,c=3):(o=7,c=4))}function re(t){e.Ke[e.pending++]=t}function se(e){re(255&e),re(e>>>8&255)}function ie(e,t){let n;const r=t;ee>16-r?(n=e,$|=n<<ee&65535,se($),$=n>>>16-ee,ee+=r-16):($|=e<<ee&65535,ee+=r)}function oe(e,t){const n=2*e;ie(65535&t[n],65535&t[n+1])}function ce(e,t){let n,r,s=-1,i=e[1],o=0,c=7,f=4;for(0===i&&(c=138,f=3),n=0;t>=n;n++)if(r=i,i=e[2*(n+1)+1],++o>=c||r!=i){if(f>o)do{oe(r,O)}while(0!=--o);else 0!==r?(r!=s&&(oe(r,O),o--),oe(16,O),ie(o-3,2)):o>10?(oe(18,O),ie(o-11,7)):(oe(17,O),ie(o-3,3));o=0,s=r,0===i?(c=138,f=3):r==i?(c=6,f=3):(c=7,f=4)}}function fe(){16==ee?(se($),$=0,ee=0):8>ee||(re(255&$),$>>>=8,ee-=8)}function le(t,r){let s,i,o;if(e.Le[X]=t,e.Fe[X]=255&r,X++,0===t?F[2*r]++:(Y++,t--,F[2*(l.ze[r]+256+1)]++,N[2*l.Ie(t)]++),0==(8191&X)&&j>2){for(s=8*X,i=M-V,o=0;30>o;o++)s+=N[2*o]*(5+l.Ae[o]);if(s>>>=3,Y<n.floor(X/2)&&s<n.floor(i/2))return!0}return X==Q-1}function ae(t,n){let r,s,i,o,c=0;if(0!==X)do{r=e.Le[c],s=e.Fe[c],c++,0===r?oe(s,t):(i=l.ze[s],oe(i+256+1,t),o=l.xe[i],0!==o&&(s-=l._e[i],ie(s,o)),r--,i=l.Ie(r),oe(i,n),o=l.Ae[i],0!==o&&(r-=l.Ce[i],ie(r,o)))}while(X>c);oe(256,t),Z=t[513]}function ue(){ee>8?se($):ee>0&&re(255&$),$=0,ee=0}function we(t,n,r){ie(0+(r?1:0),3),((t,n)=>{ue(),Z=8,se(n),se(~n),e.Ke.set(g.subarray(t,t+n),e.pending),e.pending+=n})(t,n)}function he(t){((t,n,r)=>{let s,i,o=0;j>0?(q.oe(e),G.oe(e),o=(()=>{let t;for(ne(F,q.be),ne(N,G.be),J.oe(e),t=18;t>=3&&0===O[2*l.Be[t]+1];t--);return e.pe+=14+3*(t+1),t})(),s=e.pe+3+7>>>3,i=e.ye+3+7>>>3,i>s||(s=i)):s=i=n+5,n+4>s||-1==t?i==s?(ie(2+(r?1:0),3),ae(a.De,a.Ue)):(ie(4+(r?1:0),3),((e,t,n)=>{let r;for(ie(e-257,5),ie(t-1,5),ie(n-4,4),r=0;n>r;r++)ie(O[2*l.Be[r]+1],3);ce(F,e-1),ce(N,t-1)})(q.be+1,G.be+1,o+1),ae(F,N)):we(t,n,r),te(),r&&ue()})(0>V?-1:V,M-V,t),V=M,r.Ne()}function de(){let e,t,n,s;do{if(s=v-P-M,0===s&&0===M&&0===P)s=u;else if(-1==s)s--;else if(M>=u+u-m){g.set(g.subarray(u,u+u),0),T-=u,M-=u,V-=u,e=C,n=e;do{t=65535&z[--n],z[n]=u>t?0:t-u}while(0!=--e);e=u,n=e;do{t=65535&S[--n],S[n]=u>t?0:t-u}while(0!=--e);s+=u}if(0===r.Oe)return;e=r.qe(g,M+P,s),P+=e,3>P||(_=255&g[M],_=(_<<A^255&g[M+1])&x)}while(m>P&&0!==r.Oe)}function pe(e){let t,n,r=U,s=M,i=R;const o=M>u-m?M-(u-m):0;let c=L;const f=h,l=M+258;let a=g[s+i-1],w=g[s+i];K>R||(r>>=2),c>P&&(c=P);do{if(t=e,g[t+i]==w&&g[t+i-1]==a&&g[t]==g[s]&&g[++t]==g[s+1]){s+=2,t++;do{}while(g[++s]==g[++t]&&g[++s]==g[++t]&&g[++s]==g[++t]&&g[++s]==g[++t]&&g[++s]==g[++t]&&g[++s]==g[++t]&&g[++s]==g[++t]&&g[++s]==g[++t]&&l>s);if(n=258-(l-s),s=l-258,n>i){if(T=e,i=n,n>=c)break;a=g[s+i-1],w=g[s+i]}}}while((e=65535&S[e&f])>o&&0!=--r);return i>P?P:i}e.de=[],e.Se=[],e.he=[],F=[],N=[],O=[],e.me=(t,n)=>{const r=e.he,s=r[n];let i=n<<1;for(;i<=e.ue&&(i<e.ue&&k(t,r[i+1],r[i],e.de)&&i++,!k(t,s,r[i],e.de));)r[n]=r[i],n=i,i<<=1;r[n]=s},e.Ge=(r,l,p,b,m,k)=>(b||(b=8),m||(m=8),k||(k=0),r.Je=null,-1==l&&(l=6),1>m||m>9||8!=b||9>p||p>15||0>l||l>9||0>k||k>2?t:(r.Qe=e,w=p,u=1<<w,h=u-1,I=m+7,C=1<<I,x=C-1,A=n.floor((I+3-1)/3),g=new s(2*u),S=[],z=[],Q=1<<m+6,e.Ke=new s(4*Q),c=4*Q,e.Le=new i(Q),e.Fe=new s(Q),j=l,H=k,(t=>(t.Xe=t.Ye=0,t.Je=null,e.pending=0,e.Ze=0,o=y,f=0,q.ce=F,q.le=a.We,G.ce=N,G.le=a.je,J.ce=O,J.le=a.He,$=0,ee=0,Z=8,te(),(()=>{v=2*u,z[C-1]=0;for(let e=0;C-1>e;e++)z[e]=0;W=d[j].Me,K=d[j].Ee,L=d[j].Te,U=d[j].Pe,M=0,V=0,P=0,B=R=2,E=0,_=0})(),0))(r))),e.$e=()=>42!=o&&o!=y&&o!=b?t:(e.Fe=null,e.Le=null,e.Ke=null,z=null,S=null,g=null,e.Qe=null,o==y?-3:0),e.et=(e,n,r)=>{let s=0;return-1==n&&(n=6),0>n||n>9||0>r||r>2?t:(d[j].Re!=d[n].Re&&0!==e.Xe&&(s=e.tt(1)),j!=n&&(j=n,W=d[j].Me,K=d[j].Ee,L=d[j].Te,U=d[j].Pe),H=r,s)},e.nt=(e,n,r)=>{let s,i=r,c=0;if(!n||42!=o)return t;if(3>i)return 0;for(i>u-m&&(i=u-m,c=r-i),g.set(n.subarray(c,c+i),0),M=i,V=i,_=255&g[0],_=(_<<A^255&g[1])&x,s=0;i-3>=s;s++)_=(_<<A^255&g[s+2])&x,S[s&h]=z[_],z[_]=s;return 0},e.tt=(n,s)=>{let i,l,k,v,I;if(s>4||0>s)return t;if(!n.rt||!n.st&&0!==n.Oe||o==b&&4!=s)return n.Je=p[4],t;if(0===n.it)return n.Je=p[7],-5;var U;if(r=n,v=f,f=s,42==o&&(l=8+(w-8<<4)<<8,k=(j-1&255)>>1,k>3&&(k=3),l|=k<<6,0!==M&&(l|=32),l+=31-l%31,o=y,re((U=l)>>8&255),re(255&U)),0!==e.pending){if(r.Ne(),0===r.it)return f=-1,0}else if(0===r.Oe&&v>=s&&4!=s)return r.Je=p[7],-5;if(o==b&&0!==r.Oe)return n.Je=p[7],-5;if(0!==r.Oe||0!==P||0!=s&&o!=b){switch(I=-1,d[j].Re){case 0:I=(e=>{let t,n=65535;for(n>c-5&&(n=c-5);;){if(1>=P){if(de(),0===P&&0==e)return 0;if(0===P)break}if(M+=P,P=0,t=V+n,(0===M||M>=t)&&(P=M-t,M=t,he(!1),0===r.it))return 0;if(M-V>=u-m&&(he(!1),0===r.it))return 0}return he(4==e),0===r.it?4==e?2:0:4==e?3:1})(s);break;case 1:I=(e=>{let t,n=0;for(;;){if(m>P){if(de(),m>P&&0==e)return 0;if(0===P)break}if(3>P||(_=(_<<A^255&g[M+2])&x,n=65535&z[_],S[M&h]=z[_],z[_]=M),0===n||(M-n&65535)>u-m||2!=H&&(B=pe(n)),3>B)t=le(0,255&g[M]),P--,M++;else if(t=le(M-T,B-3),P-=B,B>W||3>P)M+=B,B=0,_=255&g[M],_=(_<<A^255&g[M+1])&x;else{B--;do{M++,_=(_<<A^255&g[M+2])&x,n=65535&z[_],S[M&h]=z[_],z[_]=M}while(0!=--B);M++}if(t&&(he(!1),0===r.it))return 0}return he(4==e),0===r.it?4==e?2:0:4==e?3:1})(s);break;case 2:I=(e=>{let t,n,s=0;for(;;){if(m>P){if(de(),m>P&&0==e)return 0;if(0===P)break}if(3>P||(_=(_<<A^255&g[M+2])&x,s=65535&z[_],S[M&h]=z[_],z[_]=M),R=B,D=T,B=2,0!==s&&W>R&&u-m>=(M-s&65535)&&(2!=H&&(B=pe(s)),5>=B&&(1==H||3==B&&M-T>4096)&&(B=2)),3>R||B>R)if(0!==E){if(t=le(0,255&g[M-1]),t&&he(!1),M++,P--,0===r.it)return 0}else E=1,M++,P--;else{n=M+P-3,t=le(M-1-D,R-3),P-=R-1,R-=2;do{++M>n||(_=(_<<A^255&g[M+2])&x,s=65535&z[_],S[M&h]=z[_],z[_]=M)}while(0!=--R);if(E=0,B=2,M++,t&&(he(!1),0===r.it))return 0}}return 0!==E&&(t=le(0,255&g[M-1]),E=0),he(4==e),0===r.it?4==e?2:0:4==e?3:1})(s)}if(2!=I&&3!=I||(o=b),0==I||2==I)return 0===r.it&&(f=-1),0;if(1==I){if(1==s)ie(2,3),oe(256,a.De),fe(),9>1+Z+10-ee&&(ie(2,3),oe(256,a.De),fe()),Z=7;else if(we(0,0,!1),3==s)for(i=0;C>i;i++)z[i]=0;if(r.Ne(),0===r.it)return f=-1,0}}return 4!=s?0:1}}function v(){const e=this;e.ot=0,e.ct=0,e.Oe=0,e.Xe=0,e.it=0,e.Ye=0}return v.prototype={Ge(e,t){const n=this;return n.Qe=new g,t||(t=15),n.Qe.Ge(n,e,t)},tt(e){const n=this;return n.Qe?n.Qe.tt(n,e):t},$e(){const e=this;if(!e.Qe)return t;const n=e.Qe.$e();return e.Qe=null,n},et(e,n){const r=this;return r.Qe?r.Qe.et(r,e,n):t},nt(e,n){const r=this;return r.Qe?r.Qe.nt(r,e,n):t},qe(e,t,n){const r=this;let s=r.Oe;return s>n&&(s=n),0===s?0:(r.Oe-=s,e.set(r.st.subarray(r.ot,r.ot+s),t),r.ot+=s,r.Xe+=s,s)},Ne(){const e=this;let t=e.Qe.pending;t>e.it&&(t=e.it),0!==t&&(e.rt.set(e.Qe.Ke.subarray(e.Qe.Ze,e.Qe.Ze+t),e.ct),e.ct+=t,e.Qe.Ze+=t,e.Ye+=t,e.it-=t,e.Qe.pending-=t,0===e.Qe.pending&&(e.Qe.Ze=0))}},function(e){const t=new v,i=(o=e&&e.chunkSize?e.chunkSize:65536)+5*(n.floor(o/16383)+1);var o;const c=new s(i);let f=e?e.level:-1;void 0===f&&(f=-1),t.Ge(f),t.rt=c,this.append=(e,n)=>{let o,f,l=0,a=0,u=0;const w=[];if(e.length){t.ot=0,t.st=e,t.Oe=e.length;do{if(t.ct=0,t.it=i,o=t.tt(0),0!=o)throw new r("deflating: "+t.Je);t.ct&&(t.ct==i?w.push(new s(c)):w.push(c.slice(0,t.ct))),u+=t.ct,n&&t.ot>0&&t.ot!=l&&(n(t.ot),l=t.ot)}while(t.Oe>0||0===t.it);return w.length>1?(f=new s(u),w.forEach((e=>{f.set(e,a),a+=e.length}))):f=w[0]||new s,f}},this.flush=()=>{let e,n,o=0,f=0;const l=[];do{if(t.ct=0,t.it=i,e=t.tt(4),1!=e&&0!=e)throw new r("deflating: "+t.Je);i-t.it>0&&l.push(c.slice(0,t.ct)),f+=t.ct}while(t.Oe>0||0===t.it);return t.$e(),n=new s(f),l.forEach((e=>{n.set(e,o),o+=e.length})),n}}})(),Se=(()=>{const e=-2,t=-3,i=-5,o=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],f=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],l=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],a=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],u=[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,112,112],w=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],h=[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];function d(){let e,n,r,s,o,f;function l(e,n,c,l,a,u,w,h,d,p,y){let b,m,k,g,v,S,z,_,C,I,x,A,V,B,D;I=0,v=c;do{r[e[n+I]]++,I++,v--}while(0!==v);if(r[0]==c)return w[0]=-1,h[0]=0,0;for(_=h[0],S=1;15>=S&&0===r[S];S++);for(z=S,S>_&&(_=S),v=15;0!==v&&0===r[v];v--);for(k=v,_>v&&(_=v),h[0]=_,B=1<<S;v>S;S++,B<<=1)if(0>(B-=r[S]))return t;if(0>(B-=r[v]))return t;for(r[v]+=B,f[1]=S=0,I=1,V=2;0!=--v;)f[V]=S+=r[I],V++,I++;v=0,I=0;do{0!==(S=e[n+I])&&(y[f[S]++]=v),I++}while(++v<c);for(c=f[k],f[0]=v=0,I=0,g=-1,A=-_,o[0]=0,x=0,D=0;k>=z;z++)for(b=r[z];0!=b--;){for(;z>A+_;){if(g++,A+=_,D=k-A,D=D>_?_:D,(m=1<<(S=z-A))>b+1&&(m-=b+1,V=z,D>S))for(;++S<D&&(m<<=1)>r[++V];)m-=r[V];if(D=1<<S,p[0]+D>1440)return t;o[g]=x=p[0],p[0]+=D,0!==g?(f[g]=v,s[0]=S,s[1]=_,S=v>>>A-_,s[2]=x-o[g-1]-S,d.set(s,3*(o[g-1]+S))):w[0]=x}for(s[1]=z-A,c>I?y[I]<l?(s[0]=256>y[I]?0:96,s[2]=y[I++]):(s[0]=u[y[I]-l]+16+64,s[2]=a[y[I++]-l]):s[0]=192,m=1<<z-A,S=v>>>A;D>S;S+=m)d.set(s,3*(x+S));for(S=1<<z-1;0!=(v&S);S>>>=1)v^=S;for(v^=S,C=(1<<A)-1;(v&C)!=f[g];)g--,A-=_,C=(1<<A)-1}return 0!==B&&1!=k?i:0}function d(t){let i;for(e||(e=[],n=[],r=new c(16),s=[],o=new c(15),f=new c(16)),n.length<t&&(n=[]),i=0;t>i;i++)n[i]=0;for(i=0;16>i;i++)r[i]=0;for(i=0;3>i;i++)s[i]=0;o.set(r.subarray(0,15),0),f.set(r.subarray(0,16),0)}this.ft=(r,s,o,c,f)=>{let a;return d(19),e[0]=0,a=l(r,0,19,19,null,null,o,s,c,e,n),a==t?f.Je="oversubscribed dynamic bit lengths tree":a!=i&&0!==s[0]||(f.Je="incomplete dynamic bit lengths tree",a=t),a},this.lt=(r,s,o,c,f,p,y,b,m)=>{let k;return d(288),e[0]=0,k=l(o,0,r,257,a,u,p,c,b,e,n),0!=k||0===c[0]?(k==t?m.Je="oversubscribed literal/length tree":-4!=k&&(m.Je="incomplete literal/length tree",k=t),k):(d(288),k=l(o,r,s,0,w,h,y,f,b,e,n),0!=k||0===f[0]&&r>257?(k==t?m.Je="oversubscribed distance tree":k==i?(m.Je="incomplete distance tree",k=t):-4!=k&&(m.Je="empty distance tree with lengths",k=t),k):0)}}function p(){const n=this;let r,s,i,c,f=0,l=0,a=0,u=0,w=0,h=0,d=0,p=0,y=0,b=0;function m(e,n,r,s,i,c,f,l){let a,u,w,h,d,p,y,b,m,k,g,v,S,z,_,C;y=l.ot,b=l.Oe,d=f.ut,p=f.wt,m=f.write,k=m<f.read?f.read-m-1:f.end-m,g=o[e],v=o[n];do{for(;20>p;)b--,d|=(255&l.ht(y++))<<p,p+=8;if(a=d&g,u=r,w=s,C=3*(w+a),0!==(h=u[C]))for(;;){if(d>>=u[C+1],p-=u[C+1],0!=(16&h)){for(h&=15,S=u[C+2]+(d&o[h]),d>>=h,p-=h;15>p;)b--,d|=(255&l.ht(y++))<<p,p+=8;for(a=d&v,u=i,w=c,C=3*(w+a),h=u[C];;){if(d>>=u[C+1],p-=u[C+1],0!=(16&h)){for(h&=15;h>p;)b--,d|=(255&l.ht(y++))<<p,p+=8;if(z=u[C+2]+(d&o[h]),d>>=h,p-=h,k-=S,z>m){_=m-z;do{_+=f.end}while(0>_);if(h=f.end-_,S>h){if(S-=h,m-_>0&&h>m-_)do{f.dt[m++]=f.dt[_++]}while(0!=--h);else f.dt.set(f.dt.subarray(_,_+h),m),m+=h,_+=h,h=0;_=0}}else _=m-z,m-_>0&&2>m-_?(f.dt[m++]=f.dt[_++],f.dt[m++]=f.dt[_++],S-=2):(f.dt.set(f.dt.subarray(_,_+2),m),m+=2,_+=2,S-=2);if(m-_>0&&S>m-_)do{f.dt[m++]=f.dt[_++]}while(0!=--S);else f.dt.set(f.dt.subarray(_,_+S),m),m+=S,_+=S,S=0;break}if(0!=(64&h))return l.Je="invalid distance code",S=l.Oe-b,S=S>p>>3?p>>3:S,b+=S,y-=S,p-=S<<3,f.ut=d,f.wt=p,l.Oe=b,l.Xe+=y-l.ot,l.ot=y,f.write=m,t;a+=u[C+2],a+=d&o[h],C=3*(w+a),h=u[C]}break}if(0!=(64&h))return 0!=(32&h)?(S=l.Oe-b,S=S>p>>3?p>>3:S,b+=S,y-=S,p-=S<<3,f.ut=d,f.wt=p,l.Oe=b,l.Xe+=y-l.ot,l.ot=y,f.write=m,1):(l.Je="invalid literal/length code",S=l.Oe-b,S=S>p>>3?p>>3:S,b+=S,y-=S,p-=S<<3,f.ut=d,f.wt=p,l.Oe=b,l.Xe+=y-l.ot,l.ot=y,f.write=m,t);if(a+=u[C+2],a+=d&o[h],C=3*(w+a),0===(h=u[C])){d>>=u[C+1],p-=u[C+1],f.dt[m++]=u[C+2],k--;break}}else d>>=u[C+1],p-=u[C+1],f.dt[m++]=u[C+2],k--}while(k>=258&&b>=10);return S=l.Oe-b,S=S>p>>3?p>>3:S,b+=S,y-=S,p-=S<<3,f.ut=d,f.wt=p,l.Oe=b,l.Xe+=y-l.ot,l.ot=y,f.write=m,0}n.init=(e,t,n,o,f,l)=>{r=0,d=e,p=t,i=n,y=o,c=f,b=l,s=null},n.yt=(n,k,g)=>{let v,S,z,_,C,I,x,A=0,V=0,B=0;for(B=k.ot,_=k.Oe,A=n.ut,V=n.wt,C=n.write,I=C<n.read?n.read-C-1:n.end-C;;)switch(r){case 0:if(I>=258&&_>=10&&(n.ut=A,n.wt=V,k.Oe=_,k.Xe+=B-k.ot,k.ot=B,n.write=C,g=m(d,p,i,y,c,b,n,k),B=k.ot,_=k.Oe,A=n.ut,V=n.wt,C=n.write,I=C<n.read?n.read-C-1:n.end-C,0!=g)){r=1==g?7:9;break}a=d,s=i,l=y,r=1;case 1:for(v=a;v>V;){if(0===_)return n.ut=A,n.wt=V,k.Oe=_,k.Xe+=B-k.ot,k.ot=B,n.write=C,n.bt(k,g);g=0,_--,A|=(255&k.ht(B++))<<V,V+=8}if(S=3*(l+(A&o[v])),A>>>=s[S+1],V-=s[S+1],z=s[S],0===z){u=s[S+2],r=6;break}if(0!=(16&z)){w=15&z,f=s[S+2],r=2;break}if(0==(64&z)){a=z,l=S/3+s[S+2];break}if(0!=(32&z)){r=7;break}return r=9,k.Je="invalid literal/length code",g=t,n.ut=A,n.wt=V,k.Oe=_,k.Xe+=B-k.ot,k.ot=B,n.write=C,n.bt(k,g);case 2:for(v=w;v>V;){if(0===_)return n.ut=A,n.wt=V,k.Oe=_,k.Xe+=B-k.ot,k.ot=B,n.write=C,n.bt(k,g);g=0,_--,A|=(255&k.ht(B++))<<V,V+=8}f+=A&o[v],A>>=v,V-=v,a=p,s=c,l=b,r=3;case 3:for(v=a;v>V;){if(0===_)return n.ut=A,n.wt=V,k.Oe=_,k.Xe+=B-k.ot,k.ot=B,n.write=C,n.bt(k,g);g=0,_--,A|=(255&k.ht(B++))<<V,V+=8}if(S=3*(l+(A&o[v])),A>>=s[S+1],V-=s[S+1],z=s[S],0!=(16&z)){w=15&z,h=s[S+2],r=4;break}if(0==(64&z)){a=z,l=S/3+s[S+2];break}return r=9,k.Je="invalid distance code",g=t,n.ut=A,n.wt=V,k.Oe=_,k.Xe+=B-k.ot,k.ot=B,n.write=C,n.bt(k,g);case 4:for(v=w;v>V;){if(0===_)return n.ut=A,n.wt=V,k.Oe=_,k.Xe+=B-k.ot,k.ot=B,n.write=C,n.bt(k,g);g=0,_--,A|=(255&k.ht(B++))<<V,V+=8}h+=A&o[v],A>>=v,V-=v,r=5;case 5:for(x=C-h;0>x;)x+=n.end;for(;0!==f;){if(0===I&&(C==n.end&&0!==n.read&&(C=0,I=C<n.read?n.read-C-1:n.end-C),0===I&&(n.write=C,g=n.bt(k,g),C=n.write,I=C<n.read?n.read-C-1:n.end-C,C==n.end&&0!==n.read&&(C=0,I=C<n.read?n.read-C-1:n.end-C),0===I)))return n.ut=A,n.wt=V,k.Oe=_,k.Xe+=B-k.ot,k.ot=B,n.write=C,n.bt(k,g);n.dt[C++]=n.dt[x++],I--,x==n.end&&(x=0),f--}r=0;break;case 6:if(0===I&&(C==n.end&&0!==n.read&&(C=0,I=C<n.read?n.read-C-1:n.end-C),0===I&&(n.write=C,g=n.bt(k,g),C=n.write,I=C<n.read?n.read-C-1:n.end-C,C==n.end&&0!==n.read&&(C=0,I=C<n.read?n.read-C-1:n.end-C),0===I)))return n.ut=A,n.wt=V,k.Oe=_,k.Xe+=B-k.ot,k.ot=B,n.write=C,n.bt(k,g);g=0,n.dt[C++]=u,I--,r=0;break;case 7:if(V>7&&(V-=8,_++,B--),n.write=C,g=n.bt(k,g),C=n.write,I=C<n.read?n.read-C-1:n.end-C,n.read!=n.write)return n.ut=A,n.wt=V,k.Oe=_,k.Xe+=B-k.ot,k.ot=B,n.write=C,n.bt(k,g);r=8;case 8:return g=1,n.ut=A,n.wt=V,k.Oe=_,k.Xe+=B-k.ot,k.ot=B,n.write=C,n.bt(k,g);case 9:return g=t,n.ut=A,n.wt=V,k.Oe=_,k.Xe+=B-k.ot,k.ot=B,n.write=C,n.bt(k,g);default:return g=e,n.ut=A,n.wt=V,k.Oe=_,k.Xe+=B-k.ot,k.ot=B,n.write=C,n.bt(k,g)}},n.kt=()=>{}}d.gt=(e,t,n,r)=>(e[0]=9,t[0]=5,n[0]=f,r[0]=l,0);const y=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function b(n,r){const f=this;let l,a=0,u=0,w=0,h=0;const b=[0],m=[0],k=new p;let g=0,v=new c(4320);const S=new d;f.wt=0,f.ut=0,f.dt=new s(r),f.end=r,f.read=0,f.write=0,f.reset=(e,t)=>{t&&(t[0]=0),6==a&&k.kt(e),a=0,f.wt=0,f.ut=0,f.read=f.write=0},f.reset(n,null),f.bt=(e,t)=>{let n,r,s;return r=e.ct,s=f.read,n=(s>f.write?f.end:f.write)-s,n>e.it&&(n=e.it),0!==n&&t==i&&(t=0),e.it-=n,e.Ye+=n,e.rt.set(f.dt.subarray(s,s+n),r),r+=n,s+=n,s==f.end&&(s=0,f.write==f.end&&(f.write=0),n=f.write-s,n>e.it&&(n=e.it),0!==n&&t==i&&(t=0),e.it-=n,e.Ye+=n,e.rt.set(f.dt.subarray(s,s+n),r),r+=n,s+=n),e.ct=r,f.read=s,t},f.yt=(n,r)=>{let s,i,c,p,z,_,C,I;for(p=n.ot,z=n.Oe,i=f.ut,c=f.wt,_=f.write,C=_<f.read?f.read-_-1:f.end-_;;){let x,A,V,B,D,E,M,T;switch(a){case 0:for(;3>c;){if(0===z)return f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);r=0,z--,i|=(255&n.ht(p++))<<c,c+=8}switch(s=7&i,g=1&s,s>>>1){case 0:i>>>=3,c-=3,s=7&c,i>>>=s,c-=s,a=1;break;case 1:x=[],A=[],V=[[]],B=[[]],d.gt(x,A,V,B),k.init(x[0],A[0],V[0],0,B[0],0),i>>>=3,c-=3,a=6;break;case 2:i>>>=3,c-=3,a=3;break;case 3:return i>>>=3,c-=3,a=9,n.Je="invalid block type",r=t,f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r)}break;case 1:for(;32>c;){if(0===z)return f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);r=0,z--,i|=(255&n.ht(p++))<<c,c+=8}if((~i>>>16&65535)!=(65535&i))return a=9,n.Je="invalid stored block lengths",r=t,f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);u=65535&i,i=c=0,a=0!==u?2:0!==g?7:0;break;case 2:if(0===z)return f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);if(0===C&&(_==f.end&&0!==f.read&&(_=0,C=_<f.read?f.read-_-1:f.end-_),0===C&&(f.write=_,r=f.bt(n,r),_=f.write,C=_<f.read?f.read-_-1:f.end-_,_==f.end&&0!==f.read&&(_=0,C=_<f.read?f.read-_-1:f.end-_),0===C)))return f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);if(r=0,s=u,s>z&&(s=z),s>C&&(s=C),f.dt.set(n.qe(p,s),_),p+=s,z-=s,_+=s,C-=s,0!=(u-=s))break;a=0!==g?7:0;break;case 3:for(;14>c;){if(0===z)return f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);r=0,z--,i|=(255&n.ht(p++))<<c,c+=8}if(w=s=16383&i,(31&s)>29||(s>>5&31)>29)return a=9,n.Je="too many length or distance symbols",r=t,f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);if(s=258+(31&s)+(s>>5&31),!l||l.length<s)l=[];else for(I=0;s>I;I++)l[I]=0;i>>>=14,c-=14,h=0,a=4;case 4:for(;4+(w>>>10)>h;){for(;3>c;){if(0===z)return f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);r=0,z--,i|=(255&n.ht(p++))<<c,c+=8}l[y[h++]]=7&i,i>>>=3,c-=3}for(;19>h;)l[y[h++]]=0;if(b[0]=7,s=S.ft(l,b,m,v,n),0!=s)return(r=s)==t&&(l=null,a=9),f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);h=0,a=5;case 5:for(;s=w,258+(31&s)+(s>>5&31)>h;){let e,u;for(s=b[0];s>c;){if(0===z)return f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);r=0,z--,i|=(255&n.ht(p++))<<c,c+=8}if(s=v[3*(m[0]+(i&o[s]))+1],u=v[3*(m[0]+(i&o[s]))+2],16>u)i>>>=s,c-=s,l[h++]=u;else{for(I=18==u?7:u-14,e=18==u?11:3;s+I>c;){if(0===z)return f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);r=0,z--,i|=(255&n.ht(p++))<<c,c+=8}if(i>>>=s,c-=s,e+=i&o[I],i>>>=I,c-=I,I=h,s=w,I+e>258+(31&s)+(s>>5&31)||16==u&&1>I)return l=null,a=9,n.Je="invalid bit length repeat",r=t,f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);u=16==u?l[I-1]:0;do{l[I++]=u}while(0!=--e);h=I}}if(m[0]=-1,D=[],E=[],M=[],T=[],D[0]=9,E[0]=6,s=w,s=S.lt(257+(31&s),1+(s>>5&31),l,D,E,M,T,v,n),0!=s)return s==t&&(l=null,a=9),r=s,f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);k.init(D[0],E[0],v,M[0],v,T[0]),a=6;case 6:if(f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,1!=(r=k.yt(f,n,r)))return f.bt(n,r);if(r=0,k.kt(n),p=n.ot,z=n.Oe,i=f.ut,c=f.wt,_=f.write,C=_<f.read?f.read-_-1:f.end-_,0===g){a=0;break}a=7;case 7:if(f.write=_,r=f.bt(n,r),_=f.write,C=_<f.read?f.read-_-1:f.end-_,f.read!=f.write)return f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);a=8;case 8:return r=1,f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);case 9:return r=t,f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r);default:return r=e,f.ut=i,f.wt=c,n.Oe=z,n.Xe+=p-n.ot,n.ot=p,f.write=_,f.bt(n,r)}}},f.kt=e=>{f.reset(e,null),f.dt=null,v=null},f.vt=(e,t,n)=>{f.dt.set(e.subarray(t,t+n),0),f.read=f.write=n},f.St=()=>1==a?1:0}const m=13,k=[0,0,255,255];function g(){const n=this;function r(t){return t&&t.zt?(t.Xe=t.Ye=0,t.Je=null,t.zt.mode=7,t.zt._t.reset(t,null),0):e}n.mode=0,n.method=0,n.Ct=[0],n.It=0,n.marker=0,n.xt=0,n.At=e=>(n._t&&n._t.kt(e),n._t=null,0),n.Vt=(t,s)=>(t.Je=null,n._t=null,8>s||s>15?(n.At(t),e):(n.xt=s,t.zt._t=new b(t,1<<s),r(t),0)),n.Bt=(n,r)=>{let s,o;if(!n||!n.zt||!n.st)return e;const c=n.zt;for(r=4==r?i:0,s=i;;)switch(c.mode){case 0:if(0===n.Oe)return s;if(s=r,n.Oe--,n.Xe++,8!=(15&(c.method=n.ht(n.ot++)))){c.mode=m,n.Je="unknown compression method",c.marker=5;break}if(8+(c.method>>4)>c.xt){c.mode=m,n.Je="invalid win size",c.marker=5;break}c.mode=1;case 1:if(0===n.Oe)return s;if(s=r,n.Oe--,n.Xe++,o=255&n.ht(n.ot++),((c.method<<8)+o)%31!=0){c.mode=m,n.Je="incorrect header check",c.marker=5;break}if(0==(32&o)){c.mode=7;break}c.mode=2;case 2:if(0===n.Oe)return s;s=r,n.Oe--,n.Xe++,c.It=(255&n.ht(n.ot++))<<24&4278190080,c.mode=3;case 3:if(0===n.Oe)return s;s=r,n.Oe--,n.Xe++,c.It+=(255&n.ht(n.ot++))<<16&16711680,c.mode=4;case 4:if(0===n.Oe)return s;s=r,n.Oe--,n.Xe++,c.It+=(255&n.ht(n.ot++))<<8&65280,c.mode=5;case 5:return 0===n.Oe?s:(s=r,n.Oe--,n.Xe++,c.It+=255&n.ht(n.ot++),c.mode=6,2);case 6:return c.mode=m,n.Je="need dictionary",c.marker=0,e;case 7:if(s=c._t.yt(n,s),s==t){c.mode=m,c.marker=0;break}if(0==s&&(s=r),1!=s)return s;s=r,c._t.reset(n,c.Ct),c.mode=12;case 12:return n.Oe=0,1;case m:return t;default:return e}},n.Dt=(t,n,r)=>{let s=0,i=r;if(!t||!t.zt||6!=t.zt.mode)return e;const o=t.zt;return i<1<<o.xt||(i=(1<<o.xt)-1,s=r-i),o._t.vt(n,s,i),o.mode=7,0},n.Et=n=>{let s,o,c,f,l;if(!n||!n.zt)return e;const a=n.zt;if(a.mode!=m&&(a.mode=m,a.marker=0),0===(s=n.Oe))return i;for(o=n.ot,c=a.marker;0!==s&&4>c;)n.ht(o)==k[c]?c++:c=0!==n.ht(o)?0:4-c,o++,s--;return n.Xe+=o-n.ot,n.ot=o,n.Oe=s,a.marker=c,4!=c?t:(f=n.Xe,l=n.Ye,r(n),n.Xe=f,n.Ye=l,a.mode=7,0)},n.Mt=t=>t&&t.zt&&t.zt._t?t.zt._t.St():e}function v(){}return v.prototype={Vt(e){const t=this;return t.zt=new g,e||(e=15),t.zt.Vt(t,e)},Bt(t){const n=this;return n.zt?n.zt.Bt(n,t):e},At(){const t=this;if(!t.zt)return e;const n=t.zt.At(t);return t.zt=null,n},Et(){const t=this;return t.zt?t.zt.Et(t):e},Dt(t,n){const r=this;return r.zt?r.zt.Dt(r,t,n):e},ht(e){return this.st[e]},qe(e,t){return this.st.subarray(e,e+t)}},function(e){const t=new v,o=e&&e.chunkSize?n.floor(2*e.chunkSize):131072,c=new s(o);let f=!1;t.Vt(),t.rt=c,this.append=(e,n)=>{const l=[];let a,u,w=0,h=0,d=0;if(0!==e.length){t.ot=0,t.st=e,t.Oe=e.length;do{if(t.ct=0,t.it=o,0!==t.Oe||f||(t.ot=0,f=!0),a=t.Bt(0),f&&a===i){if(0!==t.Oe)throw new r("inflating: bad input")}else if(0!==a&&1!==a)throw new r("inflating: "+t.Je);if((f||1===a)&&t.Oe===e.length)throw new r("inflating: bad input");t.ct&&(t.ct===o?l.push(new s(c)):l.push(c.slice(0,t.ct))),d+=t.ct,n&&t.ot>0&&t.ot!=w&&(n(t.ot),w=t.ot)}while(t.Oe>0||0===t.it);return l.length>1?(u=new s(d),l.forEach((e=>{u.set(e,h),h+=e.length}))):u=l[0]||new s,u}},this.flush=()=>{t.At()}}})();self.initCodec=()=>{self.Deflate=ve,self.Inflate=Se};\n'],{type:"text/javascript"}));e({workerScripts:{inflate:[t],deflate:[t]}})}};export{e as default};
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "A JavaScript library to zip and unzip files in the browser and Deno",
4
4
  "author": "Gildas Lormeau",
5
5
  "license": "BSD-3-Clause",
6
- "version": "2.6.3",
6
+ "version": "2.6.6",
7
7
  "type": "module",
8
8
  "keywords": [
9
9
  "zip",
@@ -17,12 +17,14 @@
17
17
  "encryption",
18
18
  "zip64",
19
19
  "web-streams",
20
+ "compression-streams",
20
21
  "web-crypto",
21
22
  "web-workers",
22
23
  "deno"
23
24
  ],
24
25
  "scripts": {
25
26
  "build": "./build.sh",
27
+ "dev": "npx rollup -c rollup.config.dev.js",
26
28
  "test": "cd ./tests && \"./run-tests.sh\""
27
29
  },
28
30
  "main": "index.js",
@@ -0,0 +1,27 @@
1
+ /* global Blob */
2
+
3
+ import * as zip from "../../index.js";
4
+
5
+ const TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Typi non habent claritatem insitam; est usus legentis in iis qui facit eorum claritatem. Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius. Claritas est etiam processus dynamicus, qui sequitur mutationem consuetudium lectorum. Mirum est notare quam littera gothica, quam nunc putamus parum claram, anteposuerit litterarum formas humanitatis per seacula quarta decima et quinta decima. Eodem modo typi, qui nunc nobis videntur parum clari, fiant sollemnes in futurum.";
6
+ const FILENAME = "lorem.txt";
7
+ const BLOB = new Blob([TEXT_CONTENT], { type: zip.getMimeType(FILENAME) });
8
+
9
+ export { test };
10
+
11
+ async function test() {
12
+ zip.configure({ chunkSize: 128, useWebWorkers: true });
13
+ const blobWriter = new zip.BlobWriter("application/zip");
14
+ const zipWriter = new zip.ZipWriter(blobWriter);
15
+ const entry = await zipWriter.add(FILENAME, new zip.BlobReader(BLOB));
16
+ if (entry.compressionMethod == 0x08) {
17
+ await zipWriter.close();
18
+ const zipReader = new zip.ZipReader(new zip.BlobReader(blobWriter.getData()));
19
+ const entries = await zipReader.getEntries();
20
+ if (entries[0].compressionMethod == 0x08) {
21
+ const data = await entries[0].getData(new zip.BlobWriter(zip.getMimeType(entries[0].filename)), { checkSignature: true });
22
+ await zipReader.close();
23
+ zip.terminateWorkers();
24
+ return TEXT_CONTENT == (await data.text()) && entries[0].filename == FILENAME && entries[0].uncompressedSize == TEXT_CONTENT.length;
25
+ }
26
+ }
27
+ }