@zip.js/zip.js 2.8.17 → 2.8.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/deno.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zip-js/zip-js",
3
- "version": "2.8.17",
3
+ "version": "2.8.18",
4
4
  "exports": {
5
5
  ".": "./index.js"
6
6
  },
package/dist/zip-core.js CHANGED
@@ -1962,6 +1962,8 @@
1962
1962
  */
1963
1963
 
1964
1964
 
1965
+ const MODULE_WORKER_OPTIONS = { type: "module" };
1966
+
1965
1967
  let webWorkerSupported, webWorkerURI, webWorkerOptions;
1966
1968
  let transferStreamsSupported = true;
1967
1969
  let initModule = () => { };
@@ -2170,11 +2172,8 @@
2170
2172
  return { writable, closed };
2171
2173
  }
2172
2174
 
2173
- function getWebWorker(url, baseURI, workerData, isModuleType = false, useBlobURI = true) {
2175
+ function getWebWorker(url, baseURI, workerData, isModuleType, useBlobURI = true) {
2174
2176
  let worker, resolvedURI, resolvedOptions;
2175
- if (isModuleType) {
2176
- resolvedOptions = { type: "module" };
2177
- }
2178
2177
  if (webWorkerURI === UNDEFINED_VALUE) {
2179
2178
  // deno-lint-ignore valid-typeof
2180
2179
  const isFunctionURI = typeof url == FUNCTION_TYPE;
@@ -2186,6 +2185,12 @@
2186
2185
  const isDataURI = resolvedURI.startsWith("data:");
2187
2186
  const isBlobURI = resolvedURI.startsWith("blob:");
2188
2187
  if (isDataURI || isBlobURI) {
2188
+ if (isModuleType === UNDEFINED_VALUE) {
2189
+ isModuleType = false;
2190
+ }
2191
+ if (isModuleType) {
2192
+ resolvedOptions = MODULE_WORKER_OPTIONS;
2193
+ }
2189
2194
  try {
2190
2195
  worker = new Worker(resolvedURI, resolvedOptions);
2191
2196
  } catch (error) {
@@ -2205,6 +2210,12 @@
2205
2210
  }
2206
2211
  }
2207
2212
  } else {
2213
+ if (isModuleType === UNDEFINED_VALUE) {
2214
+ isModuleType = true;
2215
+ }
2216
+ if (isModuleType) {
2217
+ resolvedOptions = MODULE_WORKER_OPTIONS;
2218
+ }
2208
2219
  try {
2209
2220
  resolvedURI = new URL(resolvedURI, baseURI);
2210
2221
  } catch {
@@ -2214,7 +2225,7 @@
2214
2225
  worker = new Worker(resolvedURI, resolvedOptions);
2215
2226
  } catch (error) {
2216
2227
  if (!isModuleType) {
2217
- return getWebWorker(url, baseURI, workerData, true, useBlobURI);
2228
+ return getWebWorker(url, baseURI, workerData, false, useBlobURI);
2218
2229
  } else {
2219
2230
  throw error;
2220
2231
  }
@@ -4888,7 +4899,6 @@
4888
4899
  let writingBufferedEntryData;
4889
4900
  let writingEntryData;
4890
4901
  let fileWriter;
4891
- let blobPromise;
4892
4902
  files.set(name, fileEntry);
4893
4903
  try {
4894
4904
  let lockPreviousFileEntry;
@@ -4897,7 +4907,7 @@
4897
4907
  requestLockCurrentFileEntry();
4898
4908
  }
4899
4909
  if ((options.bufferedWrite || zipWriter.writerLocked || (zipWriter.bufferedWrites && keepOrder) || !dataDescriptor) && !usdz) {
4900
- fileWriter = new TransformStream();
4910
+ fileWriter = new TransformStream(undefined, undefined, { highWaterMark: Infinity });
4901
4911
  fileWriter.size = 0;
4902
4912
  bufferedWrite = true;
4903
4913
  zipWriter.bufferedWrites++;
@@ -4928,20 +4938,20 @@
4928
4938
  await skipDiskIfNeeded(writable);
4929
4939
  }
4930
4940
  const { diskNumber } = writer;
4931
- writingEntryData = true;
4932
4941
  fileEntry.diskNumberStart = diskNumber;
4933
- if (bufferedWrite) {
4934
- blobPromise = new Response(fileWriter.readable).blob();
4935
- } else {
4942
+ if (!bufferedWrite) {
4943
+ writingEntryData = true;
4936
4944
  await writeData(fileWriter, localHeaderArray);
4937
4945
  }
4938
4946
  fileEntry = await createFileEntry(reader, fileWriter, fileEntry, entryInfo, zipWriter.config, options);
4939
4947
  const { zip64 } = fileEntry;
4940
- writingEntryData = false;
4948
+ if (!bufferedWrite) {
4949
+ writingEntryData = false;
4950
+ }
4941
4951
  files.set(name, fileEntry);
4942
4952
  fileEntry.filename = name;
4943
4953
  if (bufferedWrite) {
4944
- const [blob] = await Promise.all([blobPromise, fileWriter.writable.getWriter().close(), lockPreviousFileEntry]);
4954
+ await Promise.all([fileWriter.writable.getWriter().close(), lockPreviousFileEntry]);
4945
4955
  await requestLockWriter();
4946
4956
  writingBufferedEntryData = true;
4947
4957
  fileEntry.diskNumberStart = writer.diskNumber;
@@ -4952,7 +4962,7 @@
4952
4962
  updateLocalHeader(fileEntry, localHeaderView, options);
4953
4963
  await skipDiskIfNeeded(writable);
4954
4964
  await writeData(writer, localHeaderArray);
4955
- await blob.stream().pipeTo(writable, { preventClose: true, preventAbort: true, signal });
4965
+ await fileWriter.readable.pipeTo(writable, { preventClose: true, preventAbort: true, signal });
4956
4966
  writer.size += fileWriter.size;
4957
4967
  writingBufferedEntryData = false;
4958
4968
  } else {
@@ -4967,7 +4977,7 @@
4967
4977
  zipWriter.offset += fileEntry.size;
4968
4978
  return fileEntry;
4969
4979
  } catch (error) {
4970
- if ((bufferedWrite && writingBufferedEntryData) || (!bufferedWrite && writingEntryData)) {
4980
+ if (writingBufferedEntryData || writingEntryData) {
4971
4981
  zipWriter.hasCorruptedEntries = true;
4972
4982
  if (error) {
4973
4983
  try {
@@ -1 +1 @@
1
- ((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:r,String:s,Number:n,BigInt:a,Math:i,Date:o,Map:c,Set:l,Response:d,URL:u,Error:f,Uint8Array:p,Uint16Array:w,Uint32Array:h,DataView:m,Blob:g,Promise:y,TextEncoder:b,TextDecoder:z,document:S,crypto:x,btoa:E,TransformStream:F,ReadableStream:R,WritableStream:k,CompressionStream:D,DecompressionStream:_,navigator:A,Worker:T}="undefined"!=typeof globalThis?globalThis:this||self;var U=void 0!==S?S.currentScript:null;const v=4294967295,C=65535,I=255,N=67324752,O=134695760,W=O,M=33639248,L=101010256,P=101075792,Z=117853008,H=22,V=21589,B=2048,q=16384,K=2048,j=1024,Y=512,G="/",X=30,J=new o(2107,11,31),Q=new o(1980,0,1),$=void 0,ee="undefined",te="function";let re=2;try{typeof A!=ee&&A.hardwareConcurrency&&(re=A.hardwareConcurrency)}catch{}const se={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:re,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof D!=ee&&D,DecompressionStream:typeof _!=ee&&_},ne=r.assign({},se);function ae(){return ne}function ie(e){return i.max(e.chunkSize,64)}function oe(e){const{baseURI:t,chunkSize:r,maxWorkers:s,terminateWorkerTimeout:n,useCompressionStream:a,useWebWorkers:i,CompressionStream:o,DecompressionStream:c,CompressionStreamZlib:l,DecompressionStreamZlib:d,workerURI:u,wasmURI:f}=e;ce("baseURI",t),ce("wasmURI",f),ce("workerURI",u),ce("chunkSize",r),ce("maxWorkers",s),ce("terminateWorkerTimeout",n),ce("useCompressionStream",a),ce("useWebWorkers",i),ce("CompressionStream",o),ce("DecompressionStream",c),ce("CompressionStreamZlib",l),ce("DecompressionStreamZlib",d)}function ce(e,t){t!==$&&(ne[e]=t)}const le=[];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;le[e]=t}class de{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let r=0,s=0|e.length;s>r;r++)t=t>>>8^le[255&(t^e[r])];this.crc=t}get(){return~this.crc}}class ue extends F{constructor(){let e;const t=new de;super({transform(e,r){t.append(e),r.enqueue(e)},flush(){const r=new p(4);new m(r.buffer).setUint32(0,t.get()),e.value=r}}),e=this}}function fe(e){if(typeof b==ee){const t=new p((e=unescape(encodeURIComponent(e))).length);for(let r=0;r<t.length;r++)t[r]=e.charCodeAt(r);return t}return(new b).encode(e)}const pe={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],s=pe.getPartial(r);return 32===s?e.concat(t):pe._shiftRight(t,s,0|r,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(0===t)return 0;const r=e[t-1];return 32*(t-1)+pe.getPartial(r)},clamp(e,t){if(32*e.length<t)return e;const r=(e=e.slice(0,i.ceil(t/32))).length;return t&=31,r>0&&t&&(e[r-1]=pe.partial(t,e[r-1]&2147483648>>t-1,1)),e},partial:(e,t,r)=>32===e?t:(r?0|t:t<<32-e)+1099511627776*e,getPartial:e=>i.round(e/1099511627776)||32,_shiftRight(e,t,r,s){for(void 0===s&&(s=[]);t>=32;t-=32)s.push(r),r=0;if(0===t)return s.concat(e);for(let n=0;n<e.length;n++)s.push(r|e[n]>>>t),r=e[n]<<32-t;const n=e.length?e[e.length-1]:0,a=pe.getPartial(n);return s.push(pe.partial(t+a&31,t+a>32?r:s.pop(),1)),s}},we={bytes:{fromBits(e){const t=pe.bitLength(e)/8,r=new p(t);let s;for(let n=0;t>n;n++)3&n||(s=e[n/4]),r[n]=s>>>24,s<<=8;return r},toBits(e){const t=[];let r,s=0;for(r=0;r<e.length;r++)s=s<<8|e[r],3&~r||(t.push(s),s=0);return 3&r&&t.push(pe.partial(8*(3&r),s)),t}}},he=class{constructor(e){const t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],e?(t._h=e._h.slice(0),t._buffer=e._buffer.slice(0),t._length=e._length):t.reset()}reset(){const e=this;return e._h=e._init.slice(0),e._buffer=[],e._length=0,e}update(e){const t=this;"string"==typeof e&&(e=we.utf8String.toBits(e));const r=t._buffer=pe.concat(t._buffer,e),s=t._length,n=t._length=s+pe.bitLength(e);if(n>9007199254740991)throw new f("Cannot hash more than 2^53 - 1 bits");const a=new h(r);let i=0;for(let e=t.blockSize+s-(t.blockSize+s&t.blockSize-1);n>=e;e+=t.blockSize)t._block(a.subarray(16*i,16*(i+1))),i+=1;return r.splice(0,16*i),t}finalize(){const e=this;let t=e._buffer;const r=e._h;t=pe.concat(t,[pe.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(i.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),r}_f(e,t,r,s){return e>19?e>39?e>59?e>79?void 0:t^r^s:t&r|t&s|r&s:t^r^s:t&r|~t&s}_S(e,t){return t<<e|t>>>32-e}_block(e){const r=this,s=r._h,n=t(80);for(let t=0;16>t;t++)n[t]=e[t];let a=s[0],o=s[1],c=s[2],l=s[3],d=s[4];for(let e=0;79>=e;e++){16>e||(n[e]=r._S(1,n[e-3]^n[e-8]^n[e-14]^n[e-16]));const t=r._S(5,a)+r._f(e,o,c,l)+d+n[e]+r._key[i.floor(e/20)]|0;d=l,l=c,c=r._S(30,o),o=a,a=t}s[0]=s[0]+a|0,s[1]=s[1]+o|0,s[2]=s[2]+c|0,s[3]=s[3]+l|0,s[4]=s[4]+d|0}},me={getRandomValues(e){const t=new h(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)*(i.random()>.5?1:-1))};for(let s,n=0;n<e.length;n+=4){const e=r(4294967296*(s||i.random()));s=987654071*e(),t[n/4]=4294967296*e()|0}return e}},ge={importKey:e=>new ge.hmacSha1(we.bytes.toBits(e)),pbkdf2(e,t,r,s){if(r=r||1e4,0>s||0>r)throw new f("invalid params to pbkdf2");const n=1+(s>>5)<<2;let a,i,o,c,l;const d=new ArrayBuffer(n),u=new m(d);let p=0;const w=pe;for(t=we.bytes.toBits(t),l=1;(n||1)>p;l++){for(a=i=e.encrypt(w.concat(t,[l])),o=1;r>o;o++)for(i=e.encrypt(i),c=0;c<i.length;c++)a[c]^=i[c];for(o=0;(n||1)>p&&o<a.length;o++)u.setInt32(p,a[o]),p+=4}return d.slice(0,s/8)},hmacSha1:class{constructor(e){const t=this,r=t._hash=he,s=[[],[]];t._baseHash=[new r,new r];const n=t._baseHash[0].blockSize/32;e.length>n&&(e=(new r).update(e).finalize());for(let t=0;n>t;t++)s[0][t]=909522486^e[t],s[1][t]=1549556828^e[t];t._baseHash[0].update(s[0]),t._baseHash[1].update(s[1]),t._resultHash=new r(t._baseHash[0])}reset(){const e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){this._updated=!0,this._resultHash.update(e)}digest(){const e=this,t=e._resultHash.finalize(),r=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),r}encrypt(e){if(this._updated)throw new f("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},ye=typeof x!=ee&&typeof x.getRandomValues==te,be="Invalid password",ze="Invalid signature",Se="zipjs-abort-check-password";function xe(e){return ye?x.getRandomValues(e):me.getRandomValues(e)}const Ee=16,Fe={name:"PBKDF2"},Re=r.assign({hash:{name:"HMAC"}},Fe),ke=r.assign({iterations:1e3,hash:{name:"SHA-1"}},Fe),De=["deriveBits"],_e=[8,12,16],Ae=[16,24,32],Te=10,Ue=[0,0,0,0],ve=typeof x!=ee,Ce=ve&&x.subtle,Ie=ve&&typeof Ce!=ee,Ne=we.bytes,Oe=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const r=t._tables[0][4],s=t._tables[1],n=e.length;let a,i,o,c=1;if(4!==n&&6!==n&&8!==n)throw new f("invalid aes key size");for(t._key=[i=e.slice(0),o=[]],a=n;4*n+28>a;a++){let e=i[a-1];(a%n===0||8===n&&a%n===4)&&(e=r[e>>>24]<<24^r[e>>16&255]<<16^r[e>>8&255]<<8^r[255&e],a%n===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),i[a]=i[a-n]^e}for(let e=0;a;e++,a--){const t=i[3&e?a:a-4];o[e]=4>=a||4>e?t:s[0][r[t>>>24]]^s[1][r[t>>16&255]]^s[2][r[t>>8&255]]^s[3][r[255&t]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],r=e[4],s=t[4],n=[],a=[];let i,o,c,l;for(let e=0;256>e;e++)a[(n[e]=e<<1^283*(e>>7))^e]=e;for(let d=i=0;!r[d];d^=o||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,r[d]=a,s[a]=d,l=n[c=n[o=n[d]]];let u=16843009*l^65537*c^257*o^16843008*d,f=257*n[a]^16843008*a;for(let r=0;4>r;r++)e[r][d]=f=f<<24^f>>>8,t[r][a]=u=u<<24^u>>>8}for(let r=0;5>r;r++)e[r]=e[r].slice(0),t[r]=t[r].slice(0)}_crypt(e,t){if(4!==e.length)throw new f("invalid aes block size");const r=this._key[t],s=r.length/4-2,n=[0,0,0,0],a=this._tables[t],i=a[0],o=a[1],c=a[2],l=a[3],d=a[4];let u,p,w,h=e[0]^r[0],m=e[t?3:1]^r[1],g=e[2]^r[2],y=e[t?1:3]^r[3],b=4;for(let e=0;s>e;e++)u=i[h>>>24]^o[m>>16&255]^c[g>>8&255]^l[255&y]^r[b],p=i[m>>>24]^o[g>>16&255]^c[y>>8&255]^l[255&h]^r[b+1],w=i[g>>>24]^o[y>>16&255]^c[h>>8&255]^l[255&m]^r[b+2],y=i[y>>>24]^o[h>>16&255]^c[m>>8&255]^l[255&g]^r[b+3],b+=4,h=u,m=p,g=w;for(let e=0;4>e;e++)n[t?3&-e:e]=d[h>>>24]<<24^d[m>>16&255]<<16^d[g>>8&255]<<8^d[255&y]^r[b++],u=h,h=m,m=g,g=y,y=u;return n}},We=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,r=e>>8&255,s=255&e;255===t?(t=0,255===r?(r=0,255===s?s=0:++s):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=s}return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,r){let s;if(!(s=t.length))return[];const n=pe.bitLength(t);for(let n=0;s>n;n+=4){this.incCounter(r);const s=e.encrypt(r);t[n]^=s[0],t[n+1]^=s[1],t[n+2]^=s[2],t[n+3]^=s[3]}return pe.clamp(t,n)}},Me=ge.hmacSha1;let Le=ve&&Ie&&typeof Ce.importKey==te,Pe=ve&&Ie&&typeof Ce.deriveBits==te;class Ze extends F{constructor({password:e,rawPassword:t,signed:s,encryptionStrength:n,checkPasswordOnly:a}){super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:qe(e,t),signed:s,strength:n-1,pending:new p})},async transform(e,t){const r=this,{password:s,strength:n,resolveReady:i,ready:o}=r;s?(await(async(e,t,r,s)=>{const n=await Be(e,t,r,je(s,0,_e[t])),a=je(s,_e[t]);if(n[0]!=a[0]||n[1]!=a[1])throw new f(be)})(r,n,s,je(e,0,_e[n]+2)),e=je(e,_e[n]+2),a?t.error(new f(Se)):i()):await o;const c=new p(e.length-Te-(e.length-Te)%Ee);t.enqueue(Ve(r,e,c,0,Te,!0))},async flush(e){const{signed:t,ctr:r,hmac:s,pending:n,ready:a}=this;if(s&&r){await a;const i=je(n,0,n.length-Te),o=je(n,n.length-Te);let c=new p;if(i.length){const e=Ge(Ne,i);s.update(e);const t=r.update(e);c=Ye(Ne,t)}if(t){const e=je(Ye(Ne,s.digest()),0,Te);for(let t=0;Te>t;t++)if(e[t]!=o[t])throw new f(ze)}e.enqueue(c)}}})}}class He extends F{constructor({password:e,rawPassword:t,encryptionStrength:s}){let n;super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:qe(e,t),strength:s-1,pending:new p})},async transform(e,t){const r=this,{password:s,strength:n,resolveReady:a,ready:i}=r;let o=new p;s?(o=await(async(e,t,r)=>{const s=xe(new p(_e[t]));return Ke(s,await Be(e,t,r,s))})(r,n,s),a()):await i;const c=new p(o.length+e.length-e.length%Ee);c.set(o,0),t.enqueue(Ve(r,e,c,o.length,0))},async flush(e){const{ctr:t,hmac:r,pending:s,ready:a}=this;if(r&&t){await a;let i=new p;if(s.length){const e=t.update(Ge(Ne,s));r.update(e),i=Ye(Ne,e)}n.signature=Ye(Ne,r.digest()).slice(0,Te),e.enqueue(Ke(i,n.signature))}}}),n=this}}function Ve(e,t,r,s,n,a){const{ctr:i,hmac:o,pending:c}=e,l=t.length-n;let d;for(c.length&&(t=Ke(c,t),r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new p(t)).set(r,0)}return e})(r,l-l%Ee)),d=0;l-Ee>=d;d+=Ee){const e=Ge(Ne,je(t,d,d+Ee));a&&o.update(e);const n=i.update(e);a||o.update(n),r.set(Ye(Ne,n),d+s)}return e.pending=je(t,d),r}async function Be(e,s,n,a){e.password=null;const i=await(async(e,t,r,s,n)=>{if(!Le)return ge.importKey(t);try{return await Ce.importKey("raw",t,r,!1,n)}catch{return Le=!1,ge.importKey(t)}})(0,n,Re,0,De),o=await(async(e,t,r)=>{if(!Pe)return ge.pbkdf2(t,e.salt,ke.iterations,r);try{return await Ce.deriveBits(e,t,r)}catch{return Pe=!1,ge.pbkdf2(t,e.salt,ke.iterations,r)}})(r.assign({salt:a},ke),i,8*(2*Ae[s]+2)),c=new p(o),l=Ge(Ne,je(c,0,Ae[s])),d=Ge(Ne,je(c,Ae[s],2*Ae[s])),u=je(c,2*Ae[s]);return r.assign(e,{keys:{key:l,authentication:d,passwordVerification:u},ctr:new We(new Oe(l),t.from(Ue)),hmac:new Me(d)}),u}function qe(e,t){return t===$?fe(e):t}function Ke(e,t){let r=e;return e.length+t.length&&(r=new p(e.length+t.length),r.set(e,0),r.set(t,e.length)),r}function je(e,t,r){return e.subarray(t,r)}function Ye(e,t){return e.fromBits(t)}function Ge(e,t){return e.toBits(t)}class Xe extends F{constructor({password:e,passwordVerification:t,checkPasswordOnly:s}){super({start(){r.assign(this,{password:e,passwordVerification:t}),et(this,e)},transform(e,t){const r=this;if(r.password){const t=Qe(r,e.subarray(0,12));if(r.password=null,t.at(-1)!=r.passwordVerification)throw new f(be);e=e.subarray(12)}s?t.error(new f(Se)):t.enqueue(Qe(r,e))}})}}class Je extends F{constructor({password:e,passwordVerification:t}){super({start(){r.assign(this,{password:e,passwordVerification:t}),et(this,e)},transform(e,t){const r=this;let s,n;if(r.password){r.password=null;const t=xe(new p(12));t[11]=r.passwordVerification,s=new p(e.length+t.length),s.set($e(r,t),0),n=12}else s=new p(e.length),n=0;s.set($e(r,e),n),t.enqueue(s)}})}}function Qe(e,t){const r=new p(t.length);for(let s=0;s<t.length;s++)r[s]=rt(e)^t[s],tt(e,r[s]);return r}function $e(e,t){const r=new p(t.length);for(let s=0;s<t.length;s++)r[s]=rt(e)^t[s],tt(e,t[s]);return r}function et(e,t){const s=[305419896,591751049,878082192];r.assign(e,{keys:s,crcKey0:new de(s[0]),crcKey2:new de(s[2])});for(let r=0;r<t.length;r++)tt(e,t.charCodeAt(r))}function tt(e,t){let[r,s,n]=e.keys;e.crcKey0.append([t]),r=~e.crcKey0.get(),s=nt(i.imul(nt(s+st(r)),134775813)+1),e.crcKey2.append([s>>>24]),n=~e.crcKey2.get(),e.keys=[r,s,n]}function rt(e){const t=2|e.keys[2];return st(i.imul(t,1^t)>>>8)}function st(e){return 255&e}function nt(e){return 4294967295&e}const at="Invalid uncompressed size";class it extends F{constructor(e,{chunkSize:t,CompressionStreamZlib:r,CompressionStream:s}){super({});const{compressed:n,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:c,level:l}=e,d=this;let u,f,p=super.readable;a&&!o||!c||(u=new ue,p=dt(p,u)),n&&(p=lt(p,i,{level:l,chunkSize:t},s,r,s)),a&&(o?p=dt(p,new Je(e)):(f=new He(e),p=dt(p,f))),ct(d,p,()=>{let e;a&&!o&&(e=f.signature),a&&!o||!c||(e=new m(u.value.buffer).getUint32(0)),d.signature=e})}}class ot extends F{constructor(e,{chunkSize:t,DecompressionStreamZlib:r,DecompressionStream:s}){super({});const{zipCrypto:n,encrypted:a,signed:i,signature:o,compressed:c,useCompressionStream:l,deflate64:d}=e;let u,p,w=super.readable;a&&(n?w=dt(w,new Xe(e)):(p=new Ze(e),w=dt(w,p))),c&&(w=lt(w,l,{chunkSize:t,deflate64:d},s,r,s)),a&&!n||!i||(u=new ue,w=dt(w,u)),ct(this,w,()=>{if((!a||n)&&i){const e=new m(u.value.buffer);if(o!=e.getUint32(0,!1))throw new f(ze)}})}}function ct(e,t,s){t=dt(t,new F({flush:s})),r.defineProperty(e,"readable",{get:()=>t})}function lt(e,t,r,s,n,a){const i=t&&s?s:n||a,o=r.deflate64?"deflate64-raw":"deflate-raw";try{e=dt(e,new i(o,r))}catch(s){if(!t)throw s;if(n)e=dt(e,new n(o,r));else{if(!a)throw s;e=dt(e,new a(o,r))}}return e}function dt(e,t){return e.pipeThrough(t)}const ut="data",ft="close",pt="deflate",wt="inflate";class ht extends F{constructor(e,t){super({});const s=this,{codecType:n}=e;let a;n.startsWith(pt)?a=it:n.startsWith(wt)&&(a=ot),s.outputSize=0;let i=0;const o=new a(e,t),c=super.readable,l=new F({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){r.assign(s,{inputSize:i})}}),d=new F({transform(t,r){if(t&&t.length&&(r.enqueue(t),s.outputSize+=t.length,e.outputSize!==$&&s.outputSize>e.outputSize))throw new f(at)},flush(){const{signature:e}=o;r.assign(s,{signature:e,inputSize:i})}});r.defineProperty(s,"readable",{get:()=>c.pipeThrough(l).pipeThrough(o).pipeThrough(d)})}}class mt extends F{constructor(e){let t;super({transform:function r(s,n){if(t){const e=new p(t.length+s.length);e.set(t),e.set(s,t.length),s=e,t=null}s.length>e?(n.enqueue(s.slice(0,e)),r(s.slice(e),n)):t=s},flush(e){t&&t.length&&e.enqueue(t)}})}}let gt,yt,bt,zt=!0;class St{constructor(e,{readable:t,writable:s},{options:n,config:a,streamOptions:i,useWebWorkers:o,transferStreams:c,workerURI:l},d){const{signal:u}=i;return r.assign(e,{busy:!0,readable:t.pipeThrough(new mt(a.chunkSize)).pipeThrough(new xt(i),{signal:u}),writable:s,options:r.assign({},n),workerURI:l,transferStreams:c,terminate:()=>new y(t=>{const{worker:r,busy:s}=e;r?(s?e.resolveTerminated=t:(r.terminate(),t()),e.interface=null):t()}),onTaskFinished(){const{resolveTerminated:t}=e;t&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),t()),e.busy=!1,d(e)}}),gt===$&&(gt=typeof T!=ee),(o&&gt?Rt:Ft)(e,a)}}class xt extends F{constructor({onstart:e,onprogress:t,size:r,onend:s}){let n=0;super({async start(){e&&await Et(e,r)},async transform(e,s){n+=e.length,t&&await Et(t,n,r),s.enqueue(e)},async flush(){s&&await Et(s,n)}})}}async function Et(e,...t){try{await e(...t)}catch{}}function Ft(e,t){return{run:()=>(async({options:e,readable:t,writable:r,onTaskFinished:s},n)=>{let a;try{if(!e.useCompressionStream)try{await void 0}catch{e.useCompressionStream=!0}a=new ht(e,n),await t.pipeThrough(a).pipeTo(r,{preventClose:!0,preventAbort:!0});const{signature:s,inputSize:i,outputSize:o}=a;return{signature:s,inputSize:i,outputSize:o}}catch(e){throw a&&(e.outputSize=a.outputSize),e}finally{s()}})(e,t)}}function Rt(e,t){const{baseURI:s,chunkSize:n}=t;let{wasmURI:a}=t;if(!e.interface){let i;typeof a==te&&(a=a());try{i=kt(e.workerURI,s,e)}catch{return gt=!1,Ft(e,t)}r.assign(e,{worker:i,interface:{run:()=>(async(e,t)=>{let s,n;const a=new y((e,t)=>{s=e,n=t});r.assign(e,{reader:null,writer:null,resolveResult:s,rejectResult:n,result:a});const{readable:i,options:o}=e,{writable:c,closed:l}=(e=>{let t;const r=new y(e=>t=e);return{writable:new k({async write(t){const r=e.getWriter();await r.ready,await r.write(t),r.releaseLock()},close(){t()},abort:t=>e.getWriter().abort(t)}),closed:r}})(e.writable),d=Dt({type:"start",options:o,config:t,readable:i,writable:c},e);d||r.assign(e,{reader:i.getReader(),writer:c.getWriter()});const u=await a;return d||await c.getWriter().close(),await l,u})(e,{chunkSize:n,wasmURI:a,baseURI:s})}})}return e.interface}function kt(e,t,s,n=!1,a=!0){let i,o,c;if(n&&(c={type:"module"}),yt===$){const r=typeof e==te;o=r?e(a):e;const l=o.startsWith("data:"),d=o.startsWith("blob:");if(l||d)try{i=new T(o,c)}catch(a){if(d)try{u.revokeObjectURL(o)}catch{}if(r&&d)return kt(e,t,s,n,!1);if(n)throw a;return kt(e,t,s,!0,!1)}else{try{o=new u(o,t)}catch{}try{i=new T(o,c)}catch(r){if(n)throw r;return kt(e,t,s,!0,a)}}yt=o,bt=c}else i=new T(yt,bt);return i.addEventListener("message",e=>(async({data:e},t)=>{const{type:s,value:n,messageId:a,result:i,error:o}=e,{reader:c,writer:l,resolveResult:d,rejectResult:u,onTaskFinished:w}=t;try{if(o){const{message:e,stack:t,code:s,name:n,outputSize:a}=o,i=new f(e);r.assign(i,{stack:t,code:s,name:n,outputSize:a}),h(i)}else{if("pull"==s){const{value:e,done:r}=await c.read();Dt({type:ut,value:e,done:r,messageId:a},t)}s==ut&&(await l.ready,await l.write(new p(n)),Dt({type:"ack",messageId:a},t)),s==ft&&h(null,i)}}catch(o){Dt({type:ft,messageId:a},t),h(o)}function h(e,t){e?u(e):d(t),l&&l.releaseLock(),w()}})(e,s)),i}function Dt(e,{worker:t,writer:r,onTaskFinished:s,transferStreams:n}){try{const{value:r,readable:s,writable:a}=e,i=[];if(r&&(e.value=r,i.push(e.value.buffer)),n&&zt?(s&&i.push(s),a&&i.push(a)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch{zt=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),s(),e}}let _t=[];const At=[];let Tt=0;async function Ut(e,t){const{options:r,config:s}=t,{transferStreams:a,useWebWorkers:i,useCompressionStream:o,compressed:c,signed:l,encrypted:d}=r,{workerURI:u,maxWorkers:f}=s;t.transferStreams=a||a===$;const p=!(c||l||d||t.transferStreams);return t.useWebWorkers=!p&&(i||i===$&&s.useWebWorkers),t.workerURI=t.useWebWorkers&&u?u:$,r.useCompressionStream=o||o===$&&s.useCompressionStream,(await(async()=>{const r=_t.find(e=>!e.busy);if(r)return vt(r),new St(r,e,t,w);if(_t.length<f){const r={indexWorker:Tt};return Tt++,_t.push(r),new St(r,e,t,w)}return new y(r=>At.push({resolve:r,stream:e,workerOptions:t}))})()).run();function w(e){if(At.length){const[{resolve:t,stream:r,workerOptions:s}]=At.splice(0,1);t(new St(e,r,s,w))}else e.worker?(vt(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:s}=r;n.isFinite(s)&&s>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{_t=_t.filter(t=>t!=e);try{await e.terminate()}catch{}},s))})(e,t)):_t=_t.filter(t=>t!=e)}}function vt(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const Ct="HTTP error ",It="HTTP Range not supported",Nt="Range",Ot="GET",Wt="bytes",Mt=65536,Lt="writable";class Pt{constructor(){this.size=0}init(){this.initialized=!0}}class Zt extends Pt{get readable(){const e=this,{chunkSize:t=Mt}=e,r=new R({start(){this.chunkOffset=0},async pull(s){const{offset:n=0,size:a,diskNumberStart:o}=r,{chunkOffset:c}=this,l=a===$?t:i.min(t,a-c),d=await dr(e,n+c,l,o);s.enqueue(d),c+t>a||a===$&&!d.length&&l?s.close():this.chunkOffset+=t}});return r}}class Ht extends Pt{constructor(){super();const e=this,t=new k({write(t){if(!e.initialized)throw new f("Writer not initialized");return e.writeUint8Array(t)}});r.defineProperty(e,Lt,{get:()=>t})}writeUint8Array(){}}class Vt extends Zt{constructor(e){super(),r.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const r=this,s=e+t,n=e||s<r.size?r.blob.slice(e,s):r.blob;let a=await n.arrayBuffer();return a.byteLength>t&&(a=a.slice(e,s)),new p(a)}}class Bt extends Pt{constructor(e){super();const t=new F,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(this,Lt,{get:()=>t.writable}),this.blob=new d(t.readable,{headers:s}).blob()}getData(){return this.blob}}class qt extends Zt{constructor(e,t){super(),jt(this,e,t)}async init(){await Yt(this,rr,Qt),super.init()}readUint8Array(e,t){return Gt(this,e,t,rr,Qt)}}class Kt extends Zt{constructor(e,t){super(),jt(this,e,t)}async init(){await Yt(this,sr,$t),super.init()}readUint8Array(e,t){return Gt(this,e,t,sr,$t)}}function jt(e,t,s){const{preventHeadRequest:n,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o}=s;delete(s=r.assign({},s)).preventHeadRequest,delete s.useRangeHeader,delete s.forceRangeRequests,delete s.combineSizeEocd,delete s.useXHR,r.assign(e,{url:t,options:s,preventHeadRequest:n,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o})}async function Yt(e,t,r){const{url:s,preventHeadRequest:a,useRangeHeader:i,forceRangeRequests:o,combineSizeEocd:c}=e;if((e=>{const{baseURI:t}=ae(),{protocol:r}=new u(e,t);return"http:"==r||"https:"==r})(s)&&(i||o)&&(void 0===a||a)){const s=await t(Ot,e,Xt(e,c?-22:void 0)),a=s.headers.get("Accept-Ranges");if(!(o||a&&a.toLowerCase()==Wt))throw new f(It);{let a;c&&(e.eocdCache=new p(await s.arrayBuffer()));const i=s.headers.get("Content-Range");if(i){const e=i.trim().split(/\s*\/\s*/);if(e.length){const t=e[1];t&&"*"!=t&&(a=n(t))}}a===$?await tr(e,t,r):e.size=a}}else await tr(e,t,r)}async function Gt(e,t,r,s,n){const{useRangeHeader:a,forceRangeRequests:i,eocdCache:o,size:c,options:l}=e;if(a||i){if(o&&t==c-H&&r==H)return o;if(c>t){t+r>c&&(r=c-t);const n=await s(Ot,e,Xt(e,t,r));if(206!=n.status)throw new f(It);return new p(await n.arrayBuffer())}return new p}{const{data:s}=e;return s||await n(e,l),new p(e.data.subarray(t,t+r))}}function Xt(e,t=0,s=1){return r.assign({},Jt(e),{[Nt]:Wt+"="+(0>t?t:t+"-"+(t+s-1))})}function Jt({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function Qt(e){await er(e,rr)}async function $t(e){await er(e,sr)}async function er(e,t){const r=await t(Ot,e,Jt(e));e.data=new p(await r.arrayBuffer()),e.size||(e.size=e.data.length)}async function tr(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const s=(await t("HEAD",e,Jt(e))).headers.get("Content-Length");s?e.size=n(s):await r(e,e.options)}}async function rr(e,{options:t,url:s},n){const a=await fetch(s,r.assign({},t,{method:e,headers:n}));if(400>a.status)return a;throw 416==a.status?new f(It):new f(Ct+(a.statusText||a.status))}function sr(e,{url:t},s){return new y((n,a)=>{const i=new XMLHttpRequest;if(i.addEventListener("load",()=>{if(400>i.status){const e=[];i.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const r=t.trim().split(/\s*:\s*/);r[0]=r[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(r)}),n({status:i.status,arrayBuffer:()=>i.response,headers:new c(e)})}else a(416==i.status?new f(It):new f(Ct+(i.statusText||i.status)))},!1),i.addEventListener("error",e=>a(e.detail?e.detail.error:new f("Network error")),!1),i.open(e,t),s)for(const e of r.entries(s))i.setRequestHeader(e[0],e[1]);i.responseType="arraybuffer",i.send()})}class nr extends Zt{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR?new Kt(e,t):new qt(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class ar extends Zt{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:t}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await y.all(t.map(async(r,s)=>{await r.init(),s!=t.length-1&&(e.lastDiskOffset+=r.size),e.size+=r.size})),super.init()}async readUint8Array(e,t,r=0){const s=this,{readers:n}=this;let a,o=r;-1==o&&(o=n.length-1);let c=e;for(;n[o]&&c>=n[o].size;)c-=n[o].size,o++;const l=n[o];if(l){const n=l.size;if(c+t>n){const i=n-c;a=new p(t);const o=await dr(l,c,i);a.set(o,0);const d=await s.readUint8Array(e+i,t-i,r);a.set(d,i),o.length+d.length<t&&(a=a.subarray(0,o.length+d.length))}else a=await dr(l,c,t)}else a=new p;return s.lastDiskNumber=i.max(o,s.lastDiskNumber),a}}class ir extends Pt{constructor(e,t=4294967295){super();const s=this;let n,a,i;r.assign(s,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new k({async write(t){const{availableSize:r}=s;if(i)t.length<r?await c(t):(await c(t.subarray(0,r)),await l(),s.diskOffset+=n.size,s.diskNumber++,i=null,await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new f("Writer iterator completed too soon");n=r,n.size=0,n.maxSize&&(s.maxSize=n.maxSize),s.availableSize=s.maxSize,await lr(n),a=r.writable,i=a.getWriter(),await this.write(t)}},async close(){await i.ready,await l()}});async function c(e){const t=e.length;t&&(await i.ready,await i.write(e),n.size+=t,s.size+=t,s.availableSize-=t)}async function l(){await i.close()}r.defineProperty(s,Lt,{get:()=>o})}}class or{constructor(e){return t.isArray(e)&&(e=new ar(e)),e instanceof R&&(e={readable:e}),e}}class cr{constructor(e){return e.writable===$&&typeof e.next==te&&(e=new ir(e)),e instanceof k&&(e={writable:e}),e.size===$&&(e.size=0),e instanceof ir||r.assign(e,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),e}}async function lr(e,t){if(!e.init||e.initialized)return y.resolve();await e.init(t)}function dr(e,t,r,s){return e.readUint8Array(t,r,s)}const ur="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function fr(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=ur[e[r]];return t}})(e):new z(t).decode(e)}const pr="filename",wr="rawFilename",hr="comment",mr="rawComment",gr="uncompressedSize",yr="compressedSize",br="offset",zr="diskNumberStart",Sr="lastModDate",xr="rawLastModDate",Er="lastAccessDate",Fr="creationDate",Rr="rawCreationDate",kr="internalFileAttributes",Dr="externalFileAttributes",_r="msdosAttributesRaw",Ar="msdosAttributes",Tr="msDosCompatible",Ur="zip64",vr="encrypted",Cr="version",Ir="versionMadeBy",Nr="zipCrypto",Or="directory",Wr="executable",Mr="compressionMethod",Lr="signature",Pr="extraField",Zr="unixMode",Hr="setuid",Vr="setgid",Br="sticky",qr=[pr,wr,gr,yr,Sr,xr,hr,mr,Er,Fr,Rr,br,zr,kr,Dr,_r,Ar,Tr,Ur,vr,Cr,Ir,Nr,Or,Wr,Mr,Lr,Pr,"extraFieldUnix","extraFieldInfoZip","uid","gid",Zr,Hr,Vr,Br,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Kr{constructor(e){qr.forEach(t=>this[t]=e[t])}}const jr="password",Yr="rawPassword",Gr="passThrough",Xr="signal",Jr="useWebWorkers",Qr="useCompressionStream",$r="preventClose",es="supportZip64SplitFile",ts="offset",rs="usdz",ss="File format is not recognized",ns="End of central directory not found",as="End of Zip64 central directory locator not found",is="Central directory header not found",os="Local file header not found",cs="Zip64 extra field not found",ls="File contains encrypted entry",ds="Encryption method not supported",us="Compression method not supported",fs="Split zip file",ps="Overlapping entry found",ws="utf-8",hs="cp437",ms=[[gr,v],[yr,v],[br,v],[zr,C]],gs={[C]:{getValue:Ts,bytes:4},[v]:{getValue:Us,bytes:8}};class ys{constructor(e,t={}){r.assign(this,{reader:new or(e),options:t,config:ae(),readRanges:[]})}async*getEntriesGenerator(e={}){const t=this;let{reader:s}=t;const{config:n}=t;if(await lr(s),s.size!==$&&s.readUint8Array||(s=new Vt(await new d(s.readable).blob()),await lr(s)),s.size<H)throw new f(ss);s.chunkSize=ie(n);const a=await(async(e,t,r)=>{const s=new p(4);var n;return n=t,vs(s).setUint32(0,n,!0),await a(22)||await a(i.min(1048582,r));async function a(t){const n=r-t,a=await dr(e,n,t);for(let e=a.length-22;e>=0;e--)if(a[e]==s[0]&&a[e+1]==s[1]&&a[e+2]==s[2]&&a[e+3]==s[3])return{offset:n+e,buffer:a.slice(e,e+22).buffer}}})(s,L,s.size);if(!a)throw Ts(vs(await dr(s,0,4)))==O?new f(fs):new f(ns);const o=vs(a);let c=Ts(o,12),l=Ts(o,16);const u=a.offset,w=As(o,20),h=u+H+w;let m=As(o,4);const g=s.lastDiskNumber||0;let b=As(o,6),z=As(o,8),S=0,x=0;if(l==v||c==v||z==C||b==C){const e=vs(await dr(s,a.offset-20,20));if(Ts(e,0)==Z){l=Us(e,8);let t=await dr(s,l,56,-1),r=vs(t);const n=a.offset-20-56;if(Ts(r,0)!=P&&l!=n){const e=l;l=n,l>e&&(S=l-e),t=await dr(s,l,56,-1),r=vs(t)}if(Ts(r,0)!=P)throw new f(as);m==C&&(m=Ts(r,16)),b==C&&(b=Ts(r,20)),z==C&&(z=Us(r,32)),c==v&&(c=Us(r,40)),l-=c}}if(l<s.size||(S=s.size-l-c-H,l=s.size-c-H),g!=m)throw new f(fs);if(0>l)throw new f(ss);let E=0,R=await dr(s,l,c,b),k=vs(R);if(c){const e=a.offset-c;if(Ts(k,E)!=M&&l!=e){const t=l;l=e,l>t&&(S+=l-t),R=await dr(s,l,c,b),k=vs(R)}}const D=a.offset-l-(s.lastDiskOffset||0);if(c==D||0>D||(c=D,R=await dr(s,l,c,b),k=vs(R)),0>l||l>=s.size)throw new f(ss);const _=Rs(t,e,"filenameEncoding"),A=Rs(t,e,"commentEncoding");for(let a=0;z>a;a++){const o=new bs(s,n,t.options);if(Ts(k,E)!=M)throw new f(is);zs(o,k,E+6);const c=!!o.bitFlag.languageEncodingFlag,l=E+46,u=l+o.filenameLength,p=u+o.extraFieldLength,w=As(k,E+4),h=!(w>>8),m=w>>8==3,g=R.subarray(l,u),b=As(k,E+32),D=p+b,T=R.subarray(p,D),U=c,v=c,N=Ts(k,E+38),O=N&I,W={readOnly:!!(1&O),hidden:!!(2&O),system:!!(4&O),directory:!!(16&O),archive:!!(32&O)},L=Ts(k,E+42)+S,P=Rs(t,e,"decodeText")||fr,Z=U?ws:_||hs,H=v?ws:A||hs;let V=P(g,Z);V===$&&(V=fr(g,Z));let B=P(T,H);B===$&&(B=fr(T,H)),r.assign(o,{versionMadeBy:w,msDosCompatible:h,compressedSize:0,uncompressedSize:0,commentLength:b,offset:L,diskNumberStart:As(k,E+34),internalFileAttributes:As(k,E+36),externalFileAttributes:N,msdosAttributesRaw:O,msdosAttributes:W,rawFilename:g,filenameUTF8:U,commentUTF8:v,rawExtraField:R.subarray(u,p),rawComment:T,filename:V,comment:B}),x=i.max(L,x),Ss(o,o,k,E+6);const X=o.externalFileAttributes>>16&C;o.unixMode===$&&16877&X&&(o.unixMode=X);const J=!!(o.unixMode&K),Q=!!(o.unixMode&j),ee=!!(o.unixMode&Y),te=o.unixMode!==$?!!(73&o.unixMode):m&&!!(73&X),re=o.unixMode!==$&&(61440&o.unixMode)==q,se=(61440&X)==q;r.assign(o,{setuid:J,setgid:Q,sticky:ee,unixExternalUpper:X,internalFileAttribute:o.internalFileAttributes,externalFileAttribute:o.externalFileAttributes,executable:te,directory:re||se||h&&W.directory||V.endsWith(G)&&!o.uncompressedSize,zipCrypto:o.encrypted&&!o.extraFieldAES});const ne=new Kr(o);ne.getData=(e,r)=>o.getData(e,ne,t.readRanges,r),ne.arrayBuffer=async e=>{const r=new F,[s]=await y.all([new d(r.readable).arrayBuffer(),o.getData(r,ne,t.readRanges,e)]);return s},E=D;const{onprogress:ae}=e;if(ae)try{await ae(a+1,z,new Kr(o))}catch{}yield ne}const T=Rs(t,e,"extractPrependedData"),U=Rs(t,e,"extractAppendedData");return T&&(t.prependedData=x>0?await dr(s,0,x):new p),t.comment=w?await dr(s,u+H,w):new p,U&&(t.appendedData=h<s.size?await dr(s,h,s.size-h):new p),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}class bs{constructor(e,t,s){r.assign(this,{reader:e,config:t,options:s})}async getData(e,t,s,n={}){const a=this,{reader:i,offset:o,diskNumberStart:c,extraFieldAES:l,extraFieldZip64:d,compressionMethod:u,config:w,bitFlag:h,signature:m,rawLastModDate:g,uncompressedSize:y,compressedSize:b}=a,{dataDescriptor:z}=h,S=t.localDirectory={},x=vs(await dr(i,o,X,c));let E=Rs(a,n,jr),F=Rs(a,n,Yr);const R=Rs(a,n,Gr);if(E=E&&E.length&&E,F=F&&F.length&&F,l&&99!=l.originalCompressionMethod)throw new f(us);if(0!=u&&8!=u&&9!=u&&!R)throw new f(us);if(Ts(x,0)!=N)throw new f(os);zs(S,x,4);const{extraFieldLength:D,filenameLength:_,lastAccessDate:A,creationDate:T}=S;S.rawExtraField=D?await dr(i,o+X+_,D,c):new p,Ss(a,S,x,4,!0),r.assign(t,{lastAccessDate:A,creationDate:T});const U=a.encrypted&&S.encrypted&&!R,v=U&&!l;if(R||(t.zipCrypto=v),U){if(!v&&l.strength===$)throw new f(ds);if(!E&&!F)throw new f(ls)}const C=o+X+_+D,O=b,M=i.readable;r.assign(M,{diskNumberStart:c,offset:C,size:O});const L=Rs(a,n,Xr),P=Rs(a,n,"checkPasswordOnly");let Z=Rs(a,n,"checkOverlappingEntry");const H=Rs(a,n,"checkOverlappingEntryOnly");H&&(Z=!0);const{onstart:V,onprogress:B,onend:q}=n,K=9==u;let j=Rs(a,n,Qr);K&&(j=!1);const Y={options:{codecType:wt,password:E,rawPassword:F,zipCrypto:v,encryptionStrength:l&&l.strength,signed:Rs(a,n,"checkSignature")&&!R,passwordVerification:v&&(z?g>>>8&I:m>>>24&I),outputSize:R?b:y,signature:m,compressed:0!=u&&!R,encrypted:a.encrypted&&!R,useWebWorkers:Rs(a,n,Jr),useCompressionStream:j,transferStreams:Rs(a,n,"transferStreams"),deflate64:K,checkPasswordOnly:P},config:w,streamOptions:{signal:L,size:O,onstart:V,onprogress:B,onend:q}};let G;Z&&await(async({reader:e,fileEntry:t,offset:r,diskNumberStart:s,signature:n,compressedSize:a,uncompressedSize:i,dataOffset:o,dataDescriptor:c,extraFieldZip64:l,readRanges:d})=>{let u=0;if(s)for(let t=0;s>t;t++)u+=e.readers[t].size;let p=0;if(c&&(p=l?20:12),p){const r=await dr(e,o+a,p+4,s);if(Ts(vs(r),0)==W){const e=Ts(vs(r),4);let s,o;l?(s=Us(vs(r),8),o=Us(vs(r),16)):(s=Ts(vs(r),8),o=Ts(vs(r),12)),(t.encrypted&&!t.zipCrypto||e==n)&&s==a&&o==i&&(p+=4)}}const w={start:u+r,end:u+o+a+p,fileEntry:t};for(const e of d)if(e.fileEntry!=t&&w.start>=e.start&&w.start<e.end){const t=new f(ps);throw t.overlappingEntry=e.fileEntry,t}d.push(w)})({reader:i,fileEntry:t,offset:o,diskNumberStart:c,signature:m,compressedSize:b,uncompressedSize:y,dataOffset:C,dataDescriptor:z||S.bitFlag.dataDescriptor,extraFieldZip64:d||S.extraFieldZip64,readRanges:s});try{if(!H){P&&(e=new k),e=new cr(e),await lr(e,R?b:y),({writable:G}=e);const{outputSize:t}=await Ut({readable:M,writable:G},Y);if(e.size+=t,t!=(R?b:y))throw new f(at)}}catch(t){if(t.outputSize!==$&&(e.size+=t.outputSize),!P||t.message!=Se)throw t}finally{Rs(a,n,$r)||!G||G.locked||await G.getWriter().close()}return P||H?$:e.getData?e.getData():G}}function zs(e,t,s){const n=e.rawBitFlag=As(t,s+2),a=!(1&~n),i=Ts(t,s+6);r.assign(e,{encrypted:a,version:As(t,s),bitFlag:{level:(6&n)>>1,dataDescriptor:!(8&~n),languageEncodingFlag:(n&B)==B},rawLastModDate:i,lastModDate:ks(i),filenameLength:As(t,s+22),extraFieldLength:As(t,s+24)})}function Ss(e,t,s,n,a){const{rawExtraField:i}=t,l=t.extraField=new c,d=vs(new p(i));let u=0;try{for(;u<i.length;){const e=As(d,u),t=As(d,u+2);l.set(e,{type:e,data:i.slice(u+4,u+4+t)}),u+=4+t}}catch{}const w=As(s,n+4);r.assign(t,{signature:Ts(s,n+10),compressedSize:Ts(s,n+14),uncompressedSize:Ts(s,n+18)});const h=l.get(1);h&&(((e,t)=>{t.zip64=!0;const r=vs(e.data),s=ms.filter(([e,r])=>t[e]==r);for(let n=0,a=0;n<s.length;n++){const[i,o]=s[n];if(t[i]==o){const s=gs[o];t[i]=e[i]=s.getValue(r,a),a+=s.bytes}else if(e[i])throw new f(cs)}})(h,t),t.extraFieldZip64=h);const m=l.get(28789);m&&(xs(m,pr,wr,t,e),t.extraFieldUnicodePath=m);const g=l.get(25461);g&&(xs(g,hr,mr,t,e),t.extraFieldUnicodeComment=g);const y=l.get(39169);y?(((e,t,s)=>{const n=vs(e.data),a=_s(n,4);r.assign(e,{vendorVersion:_s(n,0),vendorId:_s(n,2),strength:a,originalCompressionMethod:s,compressionMethod:As(n,5)}),t.compressionMethod=e.compressionMethod})(y,t,w),t.extraFieldAES=y):t.compressionMethod=w;const b=l.get(10);b&&(((e,t)=>{const s=vs(e.data);let n,a=4;try{for(;a<e.data.length&&!n;){const t=As(s,a),r=As(s,a+2);1==t&&(n=e.data.slice(a+4,a+4+r)),a+=4+r}}catch{}try{if(n&&24==n.length){const s=vs(n),a=s.getBigUint64(0,!0),i=s.getBigUint64(8,!0),o=s.getBigUint64(16,!0);r.assign(e,{rawLastModDate:a,rawLastAccessDate:i,rawCreationDate:o});const c={lastModDate:Ds(a),lastAccessDate:Ds(i),creationDate:Ds(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(b,t),t.extraFieldNTFS=b);const z=l.get(30805);if(z)Es(z,t,!1),t.extraFieldUnix=z;else{const e=l.get(30837);e&&(Es(e,t,!0),t.extraFieldInfoZip=e)}const S=l.get(V);S&&(((e,t,r)=>{const s=vs(e.data),n=_s(s,0),a=[],i=[];r?(1&~n||(a.push(Sr),i.push(xr)),2&~n||(a.push(Er),i.push("rawLastAccessDate")),4&~n||(a.push(Fr),i.push(Rr))):5>e.data.length||(a.push(Sr),i.push(xr));let c=1;a.forEach((r,n)=>{if(e.data.length>=c+4){const a=Ts(s,c);t[r]=e[r]=new o(1e3*a);const l=i[n];e[l]=a}c+=4})})(S,t,a),t.extraFieldExtendedTimestamp=S);const x=l.get(6534);x&&(t.extraFieldUSDZ=x)}function xs(e,t,s,n,a){const i=vs(e.data),o=new de;o.append(a[s]);const c=vs(new p(4));c.setUint32(0,o.get(),!0);const l=Ts(i,1);r.assign(e,{version:_s(i,0),[t]:fr(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==Ts(c,0)}),e.valid&&(n[t]=e[t],n[t+"UTF8"]=!0)}function Es(e,t,s){try{const n=vs(new p(e.data));let a=0;const i=_s(n,a++),o=_s(n,a++),c=e.data.subarray(a,a+o);a+=o;const l=Fs(c),d=_s(n,a++),u=e.data.subarray(a,a+d);a+=d;const f=Fs(u);let w=$;if(!s&&a+2<=e.data.length){const t=e.data;w=new m(t.buffer,t.byteOffset+a,2).getUint16(0,!0)}r.assign(e,{version:i,uid:l,gid:f,unixMode:w}),l!==$&&(t.uid=l),f!==$&&(t.gid=f),w!==$&&(t.unixMode=w)}catch{}}function Fs(e){const t=new p(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function Rs(e,t,r){return t[r]===$?e.options[r]:t[r]}function ks(e){const t=(4294901760&e)>>16,r=e&C;try{return new o(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&r)>>11,(2016&r)>>5,2*(31&r),0)}catch{}}function Ds(e){return new o(n(e/a(1e4)-a(116444736e5)))}function _s(e,t){return e.getUint8(t)}function As(e,t){return e.getUint16(t,!0)}function Ts(e,t){return e.getUint32(t,!0)}function Us(e,t){return n(e.getBigUint64(t,!0))}function vs(e){return new m(e.buffer)}const Cs="File already exists",Is="Zip file comment exceeds 64KB",Ns="File entry comment exceeds 64KB",Os="File entry name exceeds 64KB",Ws="Version exceeds 65535",Ms="The strength must equal 1, 2, or 3",Ls="Extra field type exceeds 65535",Ps="Extra field data exceeds 64KB",Zs="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",Hs="Undefined uncompressed size",Vs="Zip file not empty",Bs=new p([7,0,2,0,65,69,3,0,0]),qs="infozip",Ks="unix";let js=0;const Ys=[];class Gs{constructor(e,t={}){const s=(e=new cr(e)).availableSize!==$&&e.availableSize>0&&e.availableSize!==1/0&&e.maxSize!==$&&e.maxSize>0&&e.maxSize!==1/0;r.assign(this,{writer:e,addSplitZipSignature:s,options:t,config:ae(),files:new c,filenames:new l,offset:t[ts]===$?e.size||e.writable.size||0:t[ts],pendingEntriesSize:0,pendingAddFileCalls:new l,bufferedWrites:0})}async prependZip(e){if(this.filenames.size)throw new f(Vs);e=new or(e);const t=new ys(e.readable),s=await t.getEntries();await t.close(),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.filenames=new l(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,compressionMethod:s,lastModDate:n,lastAccessDate:a,creationDate:i,rawFilename:o,bitFlag:c,encrypted:l,uncompressedSize:d,compressedSize:u,diskOffset:f,diskNumber:w,zip64:h}=e;let{rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraFieldUnix:z,rawExtraField:S}=e;const{level:x,languageEncodingFlag:E,dataDescriptor:F}=c;m=m||new p,g=g||new p,y=y||new p,b=b||new p,z=e.rawExtraFieldUnix||new p,S=S||new p;const R=ln(m,g,y,b,z,S),k=h&&d>v,D=h&&u>v,{headerArray:_,headerView:A}=dn({version:t,bitFlag:un(x,E,F,l,s),compressionMethod:s,uncompressedSize:d,compressedSize:u,lastModDate:n,rawFilename:o,zip64CompressedSize:D,zip64UncompressedSize:k,extraFieldLength:R});return r.assign(e,{zip64UncompressedSize:k,zip64CompressedSize:D,zip64Offset:h&&this.offset-f>v,zip64DiskNumberStart:h&&w>C,rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraFieldUnix:z,rawExtraField:S,extendedTimestamp:y.length>0||b.length>0,extraFieldExtendedTimestampFlag:1+(a?2:0)+(i?4:0),headerArray:_,headerView:A}),[e.filename,e]}))}async add(e="",s,n={}){const c=this,{pendingAddFileCalls:l,config:u}=c;let h;js<u.maxWorkers?js++:await new y(e=>Ys.push(e));try{if(e=e.trim(),c.filenames.has(e))throw new f(Cs);return c.filenames.add(e),h=(async(e,s,n,c)=>{s=s.trim();let l=en(e,c,Tr),u=en(e,c,Ir,l?20:768);const h=en(e,c,Wr),g=en(e,c,"uid"),b=en(e,c,"gid");let z=en(e,c,Zr);const S=en(e,c,"unixExtraFieldType");let x=en(e,c,Hr),E=en(e,c,Vr),R=en(e,c,Br);if(g!==$&&(0>g||g>v))throw new f("Invalid uid (must be integer 0..2^32-1)");if(b!==$&&(0>b||b>v))throw new f("Invalid gid (must be integer 0..2^32-1)");if(z!==$&&(0>z||z>C))throw new f("Invalid UNIX mode (must be integer 0..65535)");if(S!==$&&S!==qs&&S!==Ks)throw new f("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");let k=en(e,c,_r),D=en(e,c,Ar);const _=k!==$||D!==$;if(g!==$||b!==$||z!==$||S?(l=!1,u=u&C|768):_&&(l=!0,u&=I),k!==$&&(0>k||k>I))throw new f("Invalid msdosAttributesRaw (must be integer 0..255)");if(D&&"object"!=typeof D)throw new f("Invalid msdosAttributes (must be an object with boolean flags)");if(u>C)throw new f(Ws);let A=en(e,c,Dr,0);!c[Or]&&s.endsWith(G)&&(c[Or]=!0);const T=en(e,c,Or);let U;T?(s.endsWith(G)||(s+=G),0===A&&(A=16,l||(A|=16877<<16))):l||0!==A||(A=h?493<<16:27525120),l||(U=A>>16&C,z=z===$?U:z&C,x?z|=K:x=!!(z&K),E?z|=j:E=!!(z&j),R?z|=Y:R=!!(z&Y),T&&(z|=q),A=(z&C)<<16|A&I),({msdosAttributesRaw:k,msdosAttributes:D}=((e,t)=>{if(e!==$)e&=I;else if(t!==$){const{readOnly:r,hidden:s,system:n,directory:a,archive:i}=t;let o=0;r&&(o|=1),s&&(o|=2),n&&(o|=4),a&&(o|=16),i&&(o|=32),e=o&I}return t===$&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(k,D)),_&&(A=A&v|k&I);const M=en(e,c,"encodeText",fe);let L=M(s);if(L===$&&(L=fe(s)),ln(L)>C)throw new f(Os);const P=c[hr]||"";let Z=M(P);if(Z===$&&(Z=fe(P)),ln(Z)>C)throw new f(Ns);const H=en(e,c,Cr,20);if(H>C)throw new f(Ws);const B=en(e,c,Sr,new o),ee=en(e,c,Er),te=en(e,c,Fr),re=en(e,c,kr,0),se=en(e,c,Gr);let ne,ae;se||(ne=en(e,c,jr),ae=en(e,c,Yr));const oe=en(e,c,"encryptionStrength",3),ce=en(e,c,Nr),le=en(e,c,"extendedTimestamp",!0),de=en(e,c,"keepOrder",!0),ue=en(e,c,Jr),pe=en(e,c,"bufferedWrite"),we=en(e,c,"dataDescriptorSignature",!1),he=en(e,c,Xr),me=en(e,c,"useUnicodeFileNames",!0),ge=en(e,c,Mr);let ye=en(e,c,"level"),be=en(e,c,Qr),ze=en(e,c,"dataDescriptor");pe&&ze===$&&(ze=!1),(ze===$||ce)&&(ze=!0),ye!==$&&6!=ye&&(be=!1),be||e.config.CompressionStream!==$||e.config.CompressionStreamZlib!==$||(ye=0);let Se=en(e,c,Ur);if(!ce&&(ne!==$||ae!==$)&&(1>oe||oe>3))throw new f(Ms);let xe=new p;const Ee=c[Pr];if(Ee){let e=0,t=0;Ee.forEach(t=>e+=4+ln(t)),xe=new p(e),Ee.forEach((e,r)=>{if(r>C)throw new f(Ls);if(ln(e)>C)throw new f(Ps);on(xe,new w([r]),t),on(xe,new w([ln(e)]),t+2),on(xe,e,t+4),t+=4+ln(e)})}let Fe=0,Re=0,ke=0;if(se&&(ke=c[gr],ke===$))throw new f(Hs);const De=!0===Se;n&&(n=new or(n),await lr(n),se?(c.uncompressedSize=ke,Fe=tn(ke)):n.size===$?(ze=!0,(Se||Se===$)&&(Se=!0,ke=Fe=4294967296)):(c.uncompressedSize=ke=n.size,Fe=tn(ke)));const{diskOffset:_e,diskNumber:Ae,maxSize:Te}=e.writer,Ue=De||ke>v,ve=De||Fe>v,Ce=De||e.offset+e.pendingEntriesSize-_e>v,Ie=en(e,c,es,!0)&&De||Ae+i.ceil(e.pendingEntriesSize/Te)>C;if(Ce||Ue||ve||Ie){if(!1===Se||!de)throw new f(Zs);Se=!0}Se=Se||!1;const Ne=en(e,c,vr),Oe=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:s,creationDate:n,level:o,zip64:c,zipCrypto:l,useUnicodeFileNames:d,dataDescriptor:u,directory:f,rawExtraField:w,encryptionStrength:h,extendedTimestamp:g,passThrough:y,encrypted:b,zip64UncompressedSize:z,zip64CompressedSize:S,zip64Offset:x,zip64DiskNumberStart:E,uncompressedSize:F,offset:R,diskNumberStart:k}=e;let{version:D,compressionMethod:_}=e;const A=!f&&(o>0||o===$&&0!==_);let T,U;const v=y||!A,I=c&&(e.bufferedWrite||!z&&!S||v);if(c){let e=4,t=4;z&&(e+=8,t+=8),S&&(e+=8,t+=8),x&&(e+=8),E&&(e+=4),T=new p(e);const r=cn(T);U=new p(t);const s=cn(U);if(sn(r,0,1),sn(r,2,ln(T)-4),sn(s,0,1),sn(s,2,ln(U)-4),I){const e=cn(T),t=cn(U);let r=4,s=4;z&&(an(e,r,a(F)),r+=8,an(t,s,a(F)),s+=8),S&&v&&(an(e,r,a(F)),r+=8,an(t,s,a(F)),s+=8),x&&(an(e,r,a(R)),r+=8),E&&(nn(e,r,k),r+=4),4==s&&(U=new p)}}else T=new p,U=new p;let O,W,M,L,P;if(b&&!l){O=new p(ln(Bs)+2);const e=cn(O);sn(e,0,39169),on(O,Bs,2),rn(e,8,h)}else O=new p;if(g){M=new p(9+(s?4:0)+(n?4:0));const e=cn(M);sn(e,0,V),sn(e,2,ln(M)-4),L=1+(s?2:0)+(n?4:0),rn(e,4,L);let t=5;nn(e,t,i.floor(r.getTime()/1e3)),t+=4,s&&(nn(e,t,i.floor(s.getTime()/1e3)),t+=4),n&&nn(e,t,i.floor(n.getTime()/1e3));try{W=new p(36);const e=cn(W),t=$s(r);sn(e,0,10),sn(e,2,32),sn(e,8,1),sn(e,10,24),an(e,12,t),an(e,20,$s(s)||t),an(e,28,$s(n)||t)}catch{W=new p}}else W=M=new p;try{const{uid:t,gid:r,unixMode:s,setuid:n,setgid:a,sticky:i,unixExtraFieldType:o}=e;if(!o||t===$&&r===$&&s===$)P=new p;else{const e=Xs(t),c=Xs(r);let l=new p;if(o==Ks&&s!==$){let e=s&C;n&&(e|=K),a&&(e|=j),i&&(e|=Y),l=new p(2),new m(l.buffer).setUint16(0,e,!0)}const d=3+e.length+c.length+l.length;P=new p(4+d);const u=cn(P);sn(u,0,o==qs?30837:30805),sn(u,2,d),rn(u,4,1),rn(u,5,e.length);let f=6;on(P,e,f),f+=e.length,rn(u,f,c.length),f++,on(P,c,f),f+=c.length,on(P,l,f)}}catch{P=new p}_===$&&(_=A?8:0),c&&(D=D>45?D:45),b&&!l&&(D=D>51?D:51,O[9]=_,_=99);const Z=I?ln(U):0,H=Z+ln(O,M,W,P,w),{headerArray:B,headerView:q,rawLastModDate:G}=dn({version:D,bitFlag:un(o,d,u,b,_),compressionMethod:_,uncompressedSize:F,lastModDate:Q>r?Q:r>J?J:r,rawFilename:t,zip64CompressedSize:S,zip64UncompressedSize:z,extraFieldLength:H});let ee=X;const te=new p(ee+ln(t)+H),re=cn(te);return nn(re,0,N),on(te,B,4),on(te,t,ee),ee+=ln(t),I&&on(te,U,ee),ee+=Z,on(te,O,ee),ee+=ln(O),on(te,M,ee),ee+=ln(M),on(te,W,ee),ee+=ln(W),on(te,P,ee),ee+=ln(P),on(te,w,ee),u&&(nn(re,18,0),nn(re,22,0)),{localHeaderArray:te,localHeaderView:re,headerArray:B,headerView:q,lastModDate:r,rawLastModDate:G,encrypted:b,compressed:A,version:D,compressionMethod:_,extraFieldExtendedTimestampFlag:L,rawExtraFieldZip64:T,localExtraFieldZip64Length:Z,rawExtraFieldExtendedTimestamp:M,rawExtraFieldNTFS:W,rawExtraFieldUnix:P,rawExtraFieldAES:O,extraFieldLength:H}})(c=r.assign({},c,{rawFilename:L,rawComment:Z,version:H,versionMadeBy:u,lastModDate:B,lastAccessDate:ee,creationDate:te,rawExtraField:xe,zip64:Se,zip64UncompressedSize:Ue,zip64CompressedSize:ve,zip64Offset:Ce,zip64DiskNumberStart:Ie,password:ne,rawPassword:ae,level:ye,useWebWorkers:ue,encryptionStrength:oe,extendedTimestamp:le,zipCrypto:ce,bufferedWrite:pe,keepOrder:de,useUnicodeFileNames:me,dataDescriptor:ze,dataDescriptorSignature:we,signal:he,msDosCompatible:l,internalFileAttribute:re,internalFileAttributes:re,externalFileAttribute:A,externalFileAttributes:A,useCompressionStream:be,passThrough:se,encrypted:!!(ne&&ln(ne)||ae&&ln(ae))||se&&Ne,signature:c[Lr],compressionMethod:ge,uncompressedSize:ke,offset:e.offset-_e,diskNumberStart:Ae,uid:g,gid:b,setuid:x,setgid:E,sticky:R,unixMode:z,msdosAttributesRaw:k,msdosAttributes:D,unixExternalUpper:U})),We=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:r})=>{let s,n=new p,a=0,i=e?20:12;return r&&(i+=4),t&&(n=new p(i),s=cn(n),r&&(a=4,nn(s,0,W))),{dataDescriptorArray:n,dataDescriptorView:s,dataDescriptorOffset:a}})(c),Me=ln(Oe.localHeaderArray,We.dataDescriptorArray);let Le;Re=Me+Fe,e.options[rs]&&(Re+=Re+64),e.pendingEntriesSize+=Re;try{Le=await(async(e,s,n,i,o)=>{const{files:c,writer:l}=e,{keepOrder:u,dataDescriptor:w,signal:h}=o,{headerInfo:m}=i,g=e.options[rs],b=t.from(c.values()).pop();let z,S,x,E,R,k,D,_={};c.set(s,_);try{let t;u&&(t=b&&b.lock,_.lock=new y(e=>x=e)),!(o.bufferedWrite||e.writerLocked||e.bufferedWrites&&u)&&w||g?(k=l,await A()):(k=new F,k.size=0,z=!0,e.bufferedWrites++,await lr(l)),await lr(k);const{writable:S,diskOffset:U}=l;if(e.addSplitZipSignature){delete e.addSplitZipSignature;const t=new p(4);nn(cn(t),0,O),await Qs(l,t),e.offset+=4}g&&((e,t)=>{const{headerInfo:r}=e;let{localHeaderArray:s,extraFieldLength:n}=r,a=cn(s),i=64-(t+ln(s))%64;4>i&&(i+=64);const o=new p(i),c=cn(o);sn(c,0,6534),sn(c,2,i-2);const l=s;r.localHeaderArray=s=new p(ln(l)+i),on(s,l),on(s,o,ln(l)),a=cn(s),sn(a,28,n+i),e.metadataSize+=i})(i,e.offset-U);const{localHeaderView:C,localHeaderArray:N}=m;z||(await t,await T(S));const{diskNumber:W}=l;R=!0,_.diskNumberStart=W,z?D=new d(k.readable).blob():await Qs(k,N),_=await(async(e,t,{diskNumberStart:s,lock:n},i,o,c)=>{const{headerInfo:l,dataDescriptorInfo:d,metadataSize:u}=i,{headerArray:f,headerView:p,lastModDate:w,rawLastModDate:h,encrypted:m,compressed:g,version:y,compressionMethod:b,rawExtraFieldZip64:z,localExtraFieldZip64Length:S,rawExtraFieldExtendedTimestamp:x,extraFieldExtendedTimestampFlag:E,rawExtraFieldNTFS:F,rawExtraFieldUnix:R,rawExtraFieldAES:k}=l,{dataDescriptorArray:D}=d,{rawFilename:_,lastAccessDate:A,creationDate:T,password:U,rawPassword:v,level:C,zip64:N,zip64UncompressedSize:O,zip64CompressedSize:W,zip64Offset:M,zip64DiskNumberStart:L,zipCrypto:P,dataDescriptor:Z,directory:H,executable:V,versionMadeBy:B,rawComment:q,rawExtraField:K,useWebWorkers:j,onstart:Y,onprogress:G,onend:X,signal:J,encryptionStrength:Q,extendedTimestamp:ee,msDosCompatible:te,internalFileAttributes:re,externalFileAttributes:se,uid:ne,gid:ae,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:ue,msdosAttributesRaw:fe,msdosAttributes:pe,useCompressionStream:we,passThrough:he}=c,me={lock:n,versionMadeBy:B,zip64:N,directory:!!H,executable:!!V,filenameUTF8:!0,rawFilename:_,commentUTF8:!0,rawComment:q,rawExtraFieldZip64:z,localExtraFieldZip64Length:S,rawExtraFieldExtendedTimestamp:x,rawExtraFieldNTFS:F,rawExtraFieldUnix:R,rawExtraFieldAES:k,rawExtraField:K,extendedTimestamp:ee,msDosCompatible:te,internalFileAttributes:re,externalFileAttributes:se,diskNumberStart:s,uid:ne,gid:ae,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:ue,msdosAttributesRaw:fe,msdosAttributes:pe};let{signature:ge,uncompressedSize:ye}=c,be=0;he||(ye=0);const{writable:ze}=t;if(e){e.chunkSize=ie(o);const r=e.readable,s=e.size,n={options:{codecType:pt,level:C,rawPassword:v,password:U,encryptionStrength:Q,zipCrypto:m&&P,passwordVerification:m&&P&&h>>8&I,signed:!he,compressed:g&&!he,encrypted:m&&!he,useWebWorkers:j,useCompressionStream:we,transferStreams:!1},config:o,streamOptions:{signal:J,size:s,onstart:Y,onprogress:G,onend:X}};try{const e=await Ut({readable:r,writable:ze},n);be=e.outputSize,t.size+=be,he||(ye=e.inputSize,ge=e.signature)}catch(e){throw e.outputSize!==$&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:r,headerInfo:s,dataDescriptorInfo:n},{zip64:i,zipCrypto:o,dataDescriptor:c})=>{const{headerView:l,encrypted:d}=s,{dataDescriptorView:u,dataDescriptorOffset:f}=n;d&&!o||e===$||(nn(l,10,e),c&&nn(u,f,e)),i?c&&(an(u,f+4,a(t)),an(u,f+12,a(r))):(nn(l,14,t),nn(l,18,r),c&&(nn(u,f+4,t),nn(u,f+8,r)))})({signature:ge,compressedSize:be,uncompressedSize:ye,headerInfo:l,dataDescriptorInfo:d},c),Z&&await Qs(t,D),r.assign(me,{uncompressedSize:ye,compressedSize:be,lastModDate:w,rawLastModDate:h,creationDate:T,lastAccessDate:A,encrypted:m,zipCrypto:P,size:u+be,compressionMethod:b,version:y,headerArray:f,headerView:p,signature:ge,extraFieldExtendedTimestampFlag:E,zip64UncompressedSize:O,zip64CompressedSize:W,zip64Offset:M,zip64DiskNumberStart:L}),me})(n,k,_,i,e.config,o);const{zip64:M}=_;if(R=!1,c.set(s,_),_.filename=s,z){const[r]=await y.all([D,k.writable.getWriter().close(),t]);await A(),E=!0,_.diskNumberStart=l.diskNumber,_.offset=e.offset-l.diskOffset,M&&Js(_),(({rawFilename:e,encrypted:t,zip64:r,localExtraFieldZip64Length:s,signature:n,compressedSize:i,uncompressedSize:o,zip64UncompressedSize:c,zip64CompressedSize:l},d,{dataDescriptor:u})=>{if(u||(t||nn(d,14,n),l||nn(d,18,i),c||nn(d,22,o)),r&&s){let t=X+ln(e)+4;c&&(an(d,t,a(o)),t+=8),l&&(an(d,t,a(i)),t+=8)}})(_,C,o),await T(S),await Qs(l,N),await r.stream().pipeTo(S,{preventClose:!0,preventAbort:!0,signal:h}),l.size+=k.size,E=!1}else _.offset=e.offset-U,M&&Js(_);if(_.offset>v&&!M)throw new f(Zs);return e.offset+=_.size,_}catch(t){if(z&&E||!z&&R){if(e.hasCorruptedEntries=!0,t)try{t.corruptedEntry=!0}catch{}z?e.offset+=k.size:e.offset=k.size}throw c.delete(s),t}finally{z&&e.bufferedWrites--,x&&x(),S&&S()}async function A(){e.writerLocked=!0;const{lockWriter:t}=e;e.lockWriter=new y(t=>S=()=>{e.writerLocked=!1,t()}),await t}async function T(e){ln(m.localHeaderArray)>l.availableSize&&(l.availableSize=0,await Qs(e,new p))}})(e,s,n,{headerInfo:Oe,dataDescriptorInfo:We,metadataSize:Me},c)}finally{e.pendingEntriesSize-=Re}return r.assign(Le,{name:s,comment:P,extraField:Ee}),new Kr(Le)})(c,e,s,n),l.add(h),await h}catch(t){throw c.filenames.delete(e),t}finally{l.delete(h);const e=Ys.shift();e?e():js--}}remove(e){const{filenames:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==$){const{filename:s}=e;if(t.has(s)&&r.has(s))return t.delete(s),r.delete(s),!0}return!1}async close(e=new p,r={}){const{pendingAddFileCalls:s,writer:n}=this,{writable:o}=n;for(;s.size;)await y.allSettled(t.from(s));return await(async(e,r,s)=>{const{files:n,writer:o}=e,{diskOffset:c}=o;let{diskNumber:l}=o,d=0,u=0,w=e.offset-c,h=n.size;for(const[,e]of n){const{rawFilename:t,rawExtraFieldZip64:r,rawExtraFieldAES:s,rawComment:n,rawExtraFieldNTFS:a,rawExtraFieldUnix:o,rawExtraField:c,extendedTimestamp:l,extraFieldExtendedTimestampFlag:d,lastModDate:f}=e;let w;if(l){w=new p(9);const e=cn(w);sn(e,0,V),sn(e,2,5),rn(e,4,d),nn(e,5,i.floor(f.getTime()/1e3))}else w=new p;e.rawExtraFieldExtendedTimestamp=w,u+=46+ln(t,n,r,s,a,o,w,c)}const m=new p(u),g=cn(m);await lr(o);let y=0;for(const[e,r]of t.from(n.values()).entries()){const{offset:t,rawFilename:a,rawExtraFieldZip64:i,rawExtraFieldAES:c,rawExtraFieldExtendedTimestamp:l,rawExtraFieldNTFS:u,rawExtraFieldUnix:f,rawExtraField:p,rawComment:w,versionMadeBy:h,headerArray:b,headerView:z,zip64:S,zip64UncompressedSize:x,zip64CompressedSize:E,zip64DiskNumberStart:F,zip64Offset:R,internalFileAttributes:k,externalFileAttributes:D,diskNumberStart:_,uncompressedSize:A,compressedSize:T}=r,U=ln(i,c,l,u,f,p);nn(g,d,M),sn(g,d+4,h),x||nn(z,18,A),E||nn(z,14,T),on(m,b,d+6);let I=d+X;if(sn(g,I,U),I+=2,sn(g,I,ln(w)),I+=2,sn(g,I,S&&F?C:_),I+=2,sn(g,I,k),I+=2,D&&nn(g,I,D),I+=4,nn(g,I,S&&R?v:t),I+=4,on(m,a,I),I+=ln(a),on(m,i,I),I+=ln(i),on(m,c,I),I+=ln(c),on(m,l,I),I+=ln(l),on(m,u,I),I+=ln(u),on(m,f,I),I+=ln(f),on(m,p,I),I+=ln(p),on(m,w,I),I+=ln(w),d-y>o.availableSize&&(o.availableSize=0,await Qs(o,m.slice(y,d)),y=d),d=I,s.onprogress)try{await s.onprogress(e+1,n.size,new Kr(r))}catch{}}await Qs(o,y?m.slice(y):m);let b=o.diskNumber;const{availableSize:z}=o;H>z&&b++;let S=en(e,s,Ur);if(w>v||u>v||h>C||b>C){if(!1===S)throw new f(Zs);S=!0}const x=new p(S?98:H),E=cn(x);d=0,S&&(nn(E,0,P),an(E,4,a(44)),sn(E,12,45),sn(E,14,45),nn(E,16,b),nn(E,20,l),an(E,24,a(h)),an(E,32,a(h)),an(E,40,a(u)),an(E,48,a(w)),nn(E,56,Z),an(E,64,a(w)+a(u)),nn(E,72,b+1),en(e,s,es,!0)&&(b=C,l=C),h=C,w=v,u=v,d+=76),nn(E,d,L),sn(E,d+4,b),sn(E,d+6,l),sn(E,d+8,h),sn(E,d+10,h),nn(E,d+12,u),nn(E,d+16,w);const F=ln(r);if(F){if(F>C)throw new f(Is);sn(E,d+20,F)}await Qs(o,x),F&&await Qs(o,r)})(this,e,r),en(this,r,$r)||await o.getWriter().close(),n.getData?n.getData():o}}function Xs(e){if(e===$)return new p;{const t=new p(4);cn(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function Js({compressedSize:e,uncompressedSize:t,offset:r,diskNumberStart:s,zip64UncompressedSize:n,zip64CompressedSize:i,zip64Offset:o,zip64DiskNumberStart:c,rawExtraFieldZip64:l}){const d=cn(l);let u=4;n&&(an(d,u,a(t)),u+=8),i&&(an(d,u,a(e)),u+=8),o&&(an(d,u,a(r)),u+=8),c&&nn(d,u,s)}async function Qs(e,t){const{writable:r}=e,s=r.getWriter();try{await s.ready,e.size+=ln(t),await s.write(t)}finally{s.releaseLock()}}function $s(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function en(e,t,r,s){const n=t[r]===$?e.options[r]:t[r];return n===$?s:n}function tn(e){return e+5*(i.floor(e/16383)+1)}function rn(e,t,r){e.setUint8(t,r)}function sn(e,t,r){e.setUint16(t,r,!0)}function nn(e,t,r){e.setUint32(t,r,!0)}function an(e,t,r){e.setBigUint64(t,r,!0)}function on(e,t,r){e.set(t,r)}function cn(e){return new m(e.buffer)}function ln(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function dn({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:s,compressedSize:n,lastModDate:a,rawFilename:i,zip64CompressedSize:o,zip64UncompressedSize:c,extraFieldLength:l}){const d=new p(26),u=cn(d);sn(u,0,e),sn(u,2,t),sn(u,4,r);const f=new h(1),w=cn(f);sn(w,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),sn(w,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate());const m=f[0];return nn(u,6,m),(o||n!==$)&&nn(u,14,o?v:n),(c||s!==$)&&nn(u,18,c?v:s),sn(u,22,ln(i)),sn(u,24,l),{headerArray:d,headerView:u,rawLastModDate:m}}function un(e,t,r,s,n){let a=0;return t&&(a|=B),r&&(a|=8),8!=n&&9!=n||(0>e||e>3||(a|=6),e>3&&5>=e&&(a|=4),9==e&&(a|=2)),s&&(a|=1),a}try{oe({baseURI:void 0===S&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===S?location.href:U&&"SCRIPT"===U.tagName.toUpperCase()&&U.src||new u("zip-core.min.js",S.baseURI).href})}catch{}e.BlobReader=Vt,e.BlobWriter=Bt,e.Data64URIReader=class extends Zt{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const s=e.indexOf(",")+1;r.assign(this,{dataURI:e,dataStart:s,size:i.floor(.75*(t-s))})}readUint8Array(e,t){const{dataStart:r,dataURI:s}=this,n=new p(t),a=4*i.floor(e/3),o=atob(s.substring(a+r,4*i.ceil((e+t)/3)+r)),c=e-3*i.floor(a/4);let l=0;for(let e=c;c+t>e&&e<o.length;e++)n[e-c]=o.charCodeAt(e),l++;return l<n.length?n.subarray(0,l):n}},e.Data64URIWriter=class extends Ht{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r=0,n=t.pending;const a=t.pending.length;for(t.pending="",r=0;r<3*i.floor((a+e.length)/3)-a;r++)n+=s.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=s.fromCharCode(e[r]);n.length&&(n.length>2?t.data+=E(n):t.pending+=n)}getData(){return this.data+E(this.pending)}},e.ERR_BAD_FORMAT=ss,e.ERR_CENTRAL_DIRECTORY_NOT_FOUND=is,e.ERR_DUPLICATED_NAME=Cs,e.ERR_ENCRYPTED=ls,e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=as,e.ERR_EOCDR_NOT_FOUND=ns,e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=cs,e.ERR_HTTP_RANGE=It,e.ERR_INVALID_COMMENT=Is,e.ERR_INVALID_ENCRYPTION_STRENGTH=Ms,e.ERR_INVALID_ENTRY_COMMENT=Ns,e.ERR_INVALID_ENTRY_NAME=Os,e.ERR_INVALID_EXTRAFIELD_DATA=Ps,e.ERR_INVALID_EXTRAFIELD_TYPE=Ls,e.ERR_INVALID_PASSWORD=be,e.ERR_INVALID_SIGNATURE=ze,e.ERR_INVALID_UNCOMPRESSED_SIZE=at,e.ERR_INVALID_VERSION=Ws,e.ERR_LOCAL_FILE_HEADER_NOT_FOUND=os,e.ERR_OVERLAPPING_ENTRY=ps,e.ERR_SPLIT_ZIP_FILE=fs,e.ERR_UNDEFINED_UNCOMPRESSED_SIZE=Hs,e.ERR_UNSUPPORTED_COMPRESSION=us,e.ERR_UNSUPPORTED_ENCRYPTION=ds,e.ERR_UNSUPPORTED_FORMAT=Zs,e.ERR_ZIP_NOT_EMPTY=Vs,e.HttpRangeReader=class extends nr{constructor(e,t={}){t.useRangeHeader=!0,super(e,t)}},e.HttpReader=nr,e.Reader=Zt,e.SplitDataReader=ar,e.SplitDataWriter=ir,e.TextReader=class extends Vt{constructor(e){super(new g([e],{type:"text/plain"}))}},e.TextWriter=class extends Bt{constructor(e){super(e),r.assign(this,{encoding:e,utf8:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,utf8:t}=this,s=await super.getData();if(s.text&&t)return s.text();{const t=new FileReader;return new y((n,a)=>{r.assign(t,{onload:({target:e})=>n(e.result),onerror:()=>a(t.error)}),t.readAsText(s,e)})}}},e.Uint8ArrayReader=class extends Zt{constructor(e){super(),e=new p(e.buffer,e.byteOffset,e.byteLength),r.assign(this,{array:e,size:e.length})}readUint8Array(e,t){return this.array.slice(e,e+t)}},e.Uint8ArrayWriter=class extends Ht{constructor(e){super(),this.defaultBufferSize=e||262144}init(e=0){r.assign(this,{offset:0,array:new p(e>0?e:this.defaultBufferSize)}),super.init()}writeUint8Array(e){const t=this,r=t.offset+e.length;if(r>t.array.length){let e=t.array.length?2*t.array.length:t.defaultBufferSize;for(;r>e;)e*=2;const s=t.array;t.array=new p(e),t.array.set(s)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}},e.Writer=Ht,e.ZipReader=ys,e.ZipReaderStream=class{constructor(e={}){const{readable:t,writable:r}=new F,s=new ys(t,e).getEntriesGenerator();this.readable=new R({async pull(e){const{done:t,value:r}=await s.next();if(t)return e.close();const n={...r,readable:(()=>{const{readable:e,writable:t}=new F;if(r.getData)return r.getData(t),e})()};delete n.getData,e.enqueue(n)}}),this.writable=r}},e.ZipWriter=Gs,e.ZipWriterStream=class{constructor(e={}){const{readable:t,writable:r}=new F;this.readable=t,this.zipWriter=new Gs(r,e)}transform(e){const{readable:t,writable:r}=new F({flush:()=>{this.zipWriter.close()}});return this.zipWriter.add(e,t),{readable:this.readable,writable:r}}writable(e){const{readable:t,writable:r}=new F;return this.zipWriter.add(e,t),r}close(e,t={}){return this.zipWriter.close(e,t)}},e.configure=oe,e.getMimeType=()=>"application/octet-stream",e.terminateWorkers=async()=>{await y.allSettled(_t.map(e=>(vt(e),e.terminate())))}});
1
+ ((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:r,String:s,Number:n,BigInt:a,Math:i,Date:o,Map:c,Set:l,Response:d,URL:u,Error:f,Uint8Array:p,Uint16Array:w,Uint32Array:h,DataView:m,Blob:g,Promise:y,TextEncoder:b,TextDecoder:z,document:S,crypto:x,btoa:E,TransformStream:F,ReadableStream:R,WritableStream:k,CompressionStream:D,DecompressionStream:_,navigator:A,Worker:T}="undefined"!=typeof globalThis?globalThis:this||self;var v=void 0!==S?S.currentScript:null;const U=4294967295,C=65535,I=255,N=67324752,W=134695760,M=W,O=33639248,L=101010256,P=101075792,Z=117853008,H=22,V=21589,B=2048,q=16384,K=2048,j=1024,Y=512,G="/",X=30,J=new o(2107,11,31),Q=new o(1980,0,1),$=void 0,ee="undefined",te="function";let re=2;try{typeof A!=ee&&A.hardwareConcurrency&&(re=A.hardwareConcurrency)}catch{}const se={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:re,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof D!=ee&&D,DecompressionStream:typeof _!=ee&&_},ne=r.assign({},se);function ae(){return ne}function ie(e){return i.max(e.chunkSize,64)}function oe(e){const{baseURI:t,chunkSize:r,maxWorkers:s,terminateWorkerTimeout:n,useCompressionStream:a,useWebWorkers:i,CompressionStream:o,DecompressionStream:c,CompressionStreamZlib:l,DecompressionStreamZlib:d,workerURI:u,wasmURI:f}=e;ce("baseURI",t),ce("wasmURI",f),ce("workerURI",u),ce("chunkSize",r),ce("maxWorkers",s),ce("terminateWorkerTimeout",n),ce("useCompressionStream",a),ce("useWebWorkers",i),ce("CompressionStream",o),ce("DecompressionStream",c),ce("CompressionStreamZlib",l),ce("DecompressionStreamZlib",d)}function ce(e,t){t!==$&&(ne[e]=t)}const le=[];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;le[e]=t}class de{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let r=0,s=0|e.length;s>r;r++)t=t>>>8^le[255&(t^e[r])];this.crc=t}get(){return~this.crc}}class ue extends F{constructor(){let e;const t=new de;super({transform(e,r){t.append(e),r.enqueue(e)},flush(){const r=new p(4);new m(r.buffer).setUint32(0,t.get()),e.value=r}}),e=this}}function fe(e){if(typeof b==ee){const t=new p((e=unescape(encodeURIComponent(e))).length);for(let r=0;r<t.length;r++)t[r]=e.charCodeAt(r);return t}return(new b).encode(e)}const pe={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],s=pe.getPartial(r);return 32===s?e.concat(t):pe._shiftRight(t,s,0|r,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(0===t)return 0;const r=e[t-1];return 32*(t-1)+pe.getPartial(r)},clamp(e,t){if(32*e.length<t)return e;const r=(e=e.slice(0,i.ceil(t/32))).length;return t&=31,r>0&&t&&(e[r-1]=pe.partial(t,e[r-1]&2147483648>>t-1,1)),e},partial:(e,t,r)=>32===e?t:(r?0|t:t<<32-e)+1099511627776*e,getPartial:e=>i.round(e/1099511627776)||32,_shiftRight(e,t,r,s){for(void 0===s&&(s=[]);t>=32;t-=32)s.push(r),r=0;if(0===t)return s.concat(e);for(let n=0;n<e.length;n++)s.push(r|e[n]>>>t),r=e[n]<<32-t;const n=e.length?e[e.length-1]:0,a=pe.getPartial(n);return s.push(pe.partial(t+a&31,t+a>32?r:s.pop(),1)),s}},we={bytes:{fromBits(e){const t=pe.bitLength(e)/8,r=new p(t);let s;for(let n=0;t>n;n++)3&n||(s=e[n/4]),r[n]=s>>>24,s<<=8;return r},toBits(e){const t=[];let r,s=0;for(r=0;r<e.length;r++)s=s<<8|e[r],3&~r||(t.push(s),s=0);return 3&r&&t.push(pe.partial(8*(3&r),s)),t}}},he=class{constructor(e){const t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],e?(t._h=e._h.slice(0),t._buffer=e._buffer.slice(0),t._length=e._length):t.reset()}reset(){const e=this;return e._h=e._init.slice(0),e._buffer=[],e._length=0,e}update(e){const t=this;"string"==typeof e&&(e=we.utf8String.toBits(e));const r=t._buffer=pe.concat(t._buffer,e),s=t._length,n=t._length=s+pe.bitLength(e);if(n>9007199254740991)throw new f("Cannot hash more than 2^53 - 1 bits");const a=new h(r);let i=0;for(let e=t.blockSize+s-(t.blockSize+s&t.blockSize-1);n>=e;e+=t.blockSize)t._block(a.subarray(16*i,16*(i+1))),i+=1;return r.splice(0,16*i),t}finalize(){const e=this;let t=e._buffer;const r=e._h;t=pe.concat(t,[pe.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(i.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),r}_f(e,t,r,s){return e>19?e>39?e>59?e>79?void 0:t^r^s:t&r|t&s|r&s:t^r^s:t&r|~t&s}_S(e,t){return t<<e|t>>>32-e}_block(e){const r=this,s=r._h,n=t(80);for(let t=0;16>t;t++)n[t]=e[t];let a=s[0],o=s[1],c=s[2],l=s[3],d=s[4];for(let e=0;79>=e;e++){16>e||(n[e]=r._S(1,n[e-3]^n[e-8]^n[e-14]^n[e-16]));const t=r._S(5,a)+r._f(e,o,c,l)+d+n[e]+r._key[i.floor(e/20)]|0;d=l,l=c,c=r._S(30,o),o=a,a=t}s[0]=s[0]+a|0,s[1]=s[1]+o|0,s[2]=s[2]+c|0,s[3]=s[3]+l|0,s[4]=s[4]+d|0}},me={getRandomValues(e){const t=new h(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)*(i.random()>.5?1:-1))};for(let s,n=0;n<e.length;n+=4){const e=r(4294967296*(s||i.random()));s=987654071*e(),t[n/4]=4294967296*e()|0}return e}},ge={importKey:e=>new ge.hmacSha1(we.bytes.toBits(e)),pbkdf2(e,t,r,s){if(r=r||1e4,0>s||0>r)throw new f("invalid params to pbkdf2");const n=1+(s>>5)<<2;let a,i,o,c,l;const d=new ArrayBuffer(n),u=new m(d);let p=0;const w=pe;for(t=we.bytes.toBits(t),l=1;(n||1)>p;l++){for(a=i=e.encrypt(w.concat(t,[l])),o=1;r>o;o++)for(i=e.encrypt(i),c=0;c<i.length;c++)a[c]^=i[c];for(o=0;(n||1)>p&&o<a.length;o++)u.setInt32(p,a[o]),p+=4}return d.slice(0,s/8)},hmacSha1:class{constructor(e){const t=this,r=t._hash=he,s=[[],[]];t._baseHash=[new r,new r];const n=t._baseHash[0].blockSize/32;e.length>n&&(e=(new r).update(e).finalize());for(let t=0;n>t;t++)s[0][t]=909522486^e[t],s[1][t]=1549556828^e[t];t._baseHash[0].update(s[0]),t._baseHash[1].update(s[1]),t._resultHash=new r(t._baseHash[0])}reset(){const e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){this._updated=!0,this._resultHash.update(e)}digest(){const e=this,t=e._resultHash.finalize(),r=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),r}encrypt(e){if(this._updated)throw new f("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},ye=typeof x!=ee&&typeof x.getRandomValues==te,be="Invalid password",ze="Invalid signature",Se="zipjs-abort-check-password";function xe(e){return ye?x.getRandomValues(e):me.getRandomValues(e)}const Ee=16,Fe={name:"PBKDF2"},Re=r.assign({hash:{name:"HMAC"}},Fe),ke=r.assign({iterations:1e3,hash:{name:"SHA-1"}},Fe),De=["deriveBits"],_e=[8,12,16],Ae=[16,24,32],Te=10,ve=[0,0,0,0],Ue=typeof x!=ee,Ce=Ue&&x.subtle,Ie=Ue&&typeof Ce!=ee,Ne=we.bytes,We=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const r=t._tables[0][4],s=t._tables[1],n=e.length;let a,i,o,c=1;if(4!==n&&6!==n&&8!==n)throw new f("invalid aes key size");for(t._key=[i=e.slice(0),o=[]],a=n;4*n+28>a;a++){let e=i[a-1];(a%n===0||8===n&&a%n===4)&&(e=r[e>>>24]<<24^r[e>>16&255]<<16^r[e>>8&255]<<8^r[255&e],a%n===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),i[a]=i[a-n]^e}for(let e=0;a;e++,a--){const t=i[3&e?a:a-4];o[e]=4>=a||4>e?t:s[0][r[t>>>24]]^s[1][r[t>>16&255]]^s[2][r[t>>8&255]]^s[3][r[255&t]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],r=e[4],s=t[4],n=[],a=[];let i,o,c,l;for(let e=0;256>e;e++)a[(n[e]=e<<1^283*(e>>7))^e]=e;for(let d=i=0;!r[d];d^=o||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,r[d]=a,s[a]=d,l=n[c=n[o=n[d]]];let u=16843009*l^65537*c^257*o^16843008*d,f=257*n[a]^16843008*a;for(let r=0;4>r;r++)e[r][d]=f=f<<24^f>>>8,t[r][a]=u=u<<24^u>>>8}for(let r=0;5>r;r++)e[r]=e[r].slice(0),t[r]=t[r].slice(0)}_crypt(e,t){if(4!==e.length)throw new f("invalid aes block size");const r=this._key[t],s=r.length/4-2,n=[0,0,0,0],a=this._tables[t],i=a[0],o=a[1],c=a[2],l=a[3],d=a[4];let u,p,w,h=e[0]^r[0],m=e[t?3:1]^r[1],g=e[2]^r[2],y=e[t?1:3]^r[3],b=4;for(let e=0;s>e;e++)u=i[h>>>24]^o[m>>16&255]^c[g>>8&255]^l[255&y]^r[b],p=i[m>>>24]^o[g>>16&255]^c[y>>8&255]^l[255&h]^r[b+1],w=i[g>>>24]^o[y>>16&255]^c[h>>8&255]^l[255&m]^r[b+2],y=i[y>>>24]^o[h>>16&255]^c[m>>8&255]^l[255&g]^r[b+3],b+=4,h=u,m=p,g=w;for(let e=0;4>e;e++)n[t?3&-e:e]=d[h>>>24]<<24^d[m>>16&255]<<16^d[g>>8&255]<<8^d[255&y]^r[b++],u=h,h=m,m=g,g=y,y=u;return n}},Me=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,r=e>>8&255,s=255&e;255===t?(t=0,255===r?(r=0,255===s?s=0:++s):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=s}return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,r){let s;if(!(s=t.length))return[];const n=pe.bitLength(t);for(let n=0;s>n;n+=4){this.incCounter(r);const s=e.encrypt(r);t[n]^=s[0],t[n+1]^=s[1],t[n+2]^=s[2],t[n+3]^=s[3]}return pe.clamp(t,n)}},Oe=ge.hmacSha1;let Le=Ue&&Ie&&typeof Ce.importKey==te,Pe=Ue&&Ie&&typeof Ce.deriveBits==te;class Ze extends F{constructor({password:e,rawPassword:t,signed:s,encryptionStrength:n,checkPasswordOnly:a}){super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:qe(e,t),signed:s,strength:n-1,pending:new p})},async transform(e,t){const r=this,{password:s,strength:n,resolveReady:i,ready:o}=r;s?(await(async(e,t,r,s)=>{const n=await Be(e,t,r,je(s,0,_e[t])),a=je(s,_e[t]);if(n[0]!=a[0]||n[1]!=a[1])throw new f(be)})(r,n,s,je(e,0,_e[n]+2)),e=je(e,_e[n]+2),a?t.error(new f(Se)):i()):await o;const c=new p(e.length-Te-(e.length-Te)%Ee);t.enqueue(Ve(r,e,c,0,Te,!0))},async flush(e){const{signed:t,ctr:r,hmac:s,pending:n,ready:a}=this;if(s&&r){await a;const i=je(n,0,n.length-Te),o=je(n,n.length-Te);let c=new p;if(i.length){const e=Ge(Ne,i);s.update(e);const t=r.update(e);c=Ye(Ne,t)}if(t){const e=je(Ye(Ne,s.digest()),0,Te);for(let t=0;Te>t;t++)if(e[t]!=o[t])throw new f(ze)}e.enqueue(c)}}})}}class He extends F{constructor({password:e,rawPassword:t,encryptionStrength:s}){let n;super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:qe(e,t),strength:s-1,pending:new p})},async transform(e,t){const r=this,{password:s,strength:n,resolveReady:a,ready:i}=r;let o=new p;s?(o=await(async(e,t,r)=>{const s=xe(new p(_e[t]));return Ke(s,await Be(e,t,r,s))})(r,n,s),a()):await i;const c=new p(o.length+e.length-e.length%Ee);c.set(o,0),t.enqueue(Ve(r,e,c,o.length,0))},async flush(e){const{ctr:t,hmac:r,pending:s,ready:a}=this;if(r&&t){await a;let i=new p;if(s.length){const e=t.update(Ge(Ne,s));r.update(e),i=Ye(Ne,e)}n.signature=Ye(Ne,r.digest()).slice(0,Te),e.enqueue(Ke(i,n.signature))}}}),n=this}}function Ve(e,t,r,s,n,a){const{ctr:i,hmac:o,pending:c}=e,l=t.length-n;let d;for(c.length&&(t=Ke(c,t),r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new p(t)).set(r,0)}return e})(r,l-l%Ee)),d=0;l-Ee>=d;d+=Ee){const e=Ge(Ne,je(t,d,d+Ee));a&&o.update(e);const n=i.update(e);a||o.update(n),r.set(Ye(Ne,n),d+s)}return e.pending=je(t,d),r}async function Be(e,s,n,a){e.password=null;const i=await(async(e,t,r,s,n)=>{if(!Le)return ge.importKey(t);try{return await Ce.importKey("raw",t,r,!1,n)}catch{return Le=!1,ge.importKey(t)}})(0,n,Re,0,De),o=await(async(e,t,r)=>{if(!Pe)return ge.pbkdf2(t,e.salt,ke.iterations,r);try{return await Ce.deriveBits(e,t,r)}catch{return Pe=!1,ge.pbkdf2(t,e.salt,ke.iterations,r)}})(r.assign({salt:a},ke),i,8*(2*Ae[s]+2)),c=new p(o),l=Ge(Ne,je(c,0,Ae[s])),d=Ge(Ne,je(c,Ae[s],2*Ae[s])),u=je(c,2*Ae[s]);return r.assign(e,{keys:{key:l,authentication:d,passwordVerification:u},ctr:new Me(new We(l),t.from(ve)),hmac:new Oe(d)}),u}function qe(e,t){return t===$?fe(e):t}function Ke(e,t){let r=e;return e.length+t.length&&(r=new p(e.length+t.length),r.set(e,0),r.set(t,e.length)),r}function je(e,t,r){return e.subarray(t,r)}function Ye(e,t){return e.fromBits(t)}function Ge(e,t){return e.toBits(t)}class Xe extends F{constructor({password:e,passwordVerification:t,checkPasswordOnly:s}){super({start(){r.assign(this,{password:e,passwordVerification:t}),et(this,e)},transform(e,t){const r=this;if(r.password){const t=Qe(r,e.subarray(0,12));if(r.password=null,t.at(-1)!=r.passwordVerification)throw new f(be);e=e.subarray(12)}s?t.error(new f(Se)):t.enqueue(Qe(r,e))}})}}class Je extends F{constructor({password:e,passwordVerification:t}){super({start(){r.assign(this,{password:e,passwordVerification:t}),et(this,e)},transform(e,t){const r=this;let s,n;if(r.password){r.password=null;const t=xe(new p(12));t[11]=r.passwordVerification,s=new p(e.length+t.length),s.set($e(r,t),0),n=12}else s=new p(e.length),n=0;s.set($e(r,e),n),t.enqueue(s)}})}}function Qe(e,t){const r=new p(t.length);for(let s=0;s<t.length;s++)r[s]=rt(e)^t[s],tt(e,r[s]);return r}function $e(e,t){const r=new p(t.length);for(let s=0;s<t.length;s++)r[s]=rt(e)^t[s],tt(e,t[s]);return r}function et(e,t){const s=[305419896,591751049,878082192];r.assign(e,{keys:s,crcKey0:new de(s[0]),crcKey2:new de(s[2])});for(let r=0;r<t.length;r++)tt(e,t.charCodeAt(r))}function tt(e,t){let[r,s,n]=e.keys;e.crcKey0.append([t]),r=~e.crcKey0.get(),s=nt(i.imul(nt(s+st(r)),134775813)+1),e.crcKey2.append([s>>>24]),n=~e.crcKey2.get(),e.keys=[r,s,n]}function rt(e){const t=2|e.keys[2];return st(i.imul(t,1^t)>>>8)}function st(e){return 255&e}function nt(e){return 4294967295&e}const at="Invalid uncompressed size";class it extends F{constructor(e,{chunkSize:t,CompressionStreamZlib:r,CompressionStream:s}){super({});const{compressed:n,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:c,level:l}=e,d=this;let u,f,p=super.readable;a&&!o||!c||(u=new ue,p=dt(p,u)),n&&(p=lt(p,i,{level:l,chunkSize:t},s,r,s)),a&&(o?p=dt(p,new Je(e)):(f=new He(e),p=dt(p,f))),ct(d,p,()=>{let e;a&&!o&&(e=f.signature),a&&!o||!c||(e=new m(u.value.buffer).getUint32(0)),d.signature=e})}}class ot extends F{constructor(e,{chunkSize:t,DecompressionStreamZlib:r,DecompressionStream:s}){super({});const{zipCrypto:n,encrypted:a,signed:i,signature:o,compressed:c,useCompressionStream:l,deflate64:d}=e;let u,p,w=super.readable;a&&(n?w=dt(w,new Xe(e)):(p=new Ze(e),w=dt(w,p))),c&&(w=lt(w,l,{chunkSize:t,deflate64:d},s,r,s)),a&&!n||!i||(u=new ue,w=dt(w,u)),ct(this,w,()=>{if((!a||n)&&i){const e=new m(u.value.buffer);if(o!=e.getUint32(0,!1))throw new f(ze)}})}}function ct(e,t,s){t=dt(t,new F({flush:s})),r.defineProperty(e,"readable",{get:()=>t})}function lt(e,t,r,s,n,a){const i=t&&s?s:n||a,o=r.deflate64?"deflate64-raw":"deflate-raw";try{e=dt(e,new i(o,r))}catch(s){if(!t)throw s;if(n)e=dt(e,new n(o,r));else{if(!a)throw s;e=dt(e,new a(o,r))}}return e}function dt(e,t){return e.pipeThrough(t)}const ut="data",ft="close",pt="deflate",wt="inflate";class ht extends F{constructor(e,t){super({});const s=this,{codecType:n}=e;let a;n.startsWith(pt)?a=it:n.startsWith(wt)&&(a=ot),s.outputSize=0;let i=0;const o=new a(e,t),c=super.readable,l=new F({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){r.assign(s,{inputSize:i})}}),d=new F({transform(t,r){if(t&&t.length&&(r.enqueue(t),s.outputSize+=t.length,e.outputSize!==$&&s.outputSize>e.outputSize))throw new f(at)},flush(){const{signature:e}=o;r.assign(s,{signature:e,inputSize:i})}});r.defineProperty(s,"readable",{get:()=>c.pipeThrough(l).pipeThrough(o).pipeThrough(d)})}}class mt extends F{constructor(e){let t;super({transform:function r(s,n){if(t){const e=new p(t.length+s.length);e.set(t),e.set(s,t.length),s=e,t=null}s.length>e?(n.enqueue(s.slice(0,e)),r(s.slice(e),n)):t=s},flush(e){t&&t.length&&e.enqueue(t)}})}}const gt={type:"module"};let yt,bt,zt,St=!0;class xt{constructor(e,{readable:t,writable:s},{options:n,config:a,streamOptions:i,useWebWorkers:o,transferStreams:c,workerURI:l},d){const{signal:u}=i;return r.assign(e,{busy:!0,readable:t.pipeThrough(new mt(a.chunkSize)).pipeThrough(new Et(i),{signal:u}),writable:s,options:r.assign({},n),workerURI:l,transferStreams:c,terminate:()=>new y(t=>{const{worker:r,busy:s}=e;r?(s?e.resolveTerminated=t:(r.terminate(),t()),e.interface=null):t()}),onTaskFinished(){const{resolveTerminated:t}=e;t&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),t()),e.busy=!1,d(e)}}),yt===$&&(yt=typeof T!=ee),(o&&yt?kt:Rt)(e,a)}}class Et extends F{constructor({onstart:e,onprogress:t,size:r,onend:s}){let n=0;super({async start(){e&&await Ft(e,r)},async transform(e,s){n+=e.length,t&&await Ft(t,n,r),s.enqueue(e)},async flush(){s&&await Ft(s,n)}})}}async function Ft(e,...t){try{await e(...t)}catch{}}function Rt(e,t){return{run:()=>(async({options:e,readable:t,writable:r,onTaskFinished:s},n)=>{let a;try{if(!e.useCompressionStream)try{await void 0}catch{e.useCompressionStream=!0}a=new ht(e,n),await t.pipeThrough(a).pipeTo(r,{preventClose:!0,preventAbort:!0});const{signature:s,inputSize:i,outputSize:o}=a;return{signature:s,inputSize:i,outputSize:o}}catch(e){throw a&&(e.outputSize=a.outputSize),e}finally{s()}})(e,t)}}function kt(e,t){const{baseURI:s,chunkSize:n}=t;let{wasmURI:a}=t;if(!e.interface){let i;typeof a==te&&(a=a());try{i=Dt(e.workerURI,s,e)}catch{return yt=!1,Rt(e,t)}r.assign(e,{worker:i,interface:{run:()=>(async(e,t)=>{let s,n;const a=new y((e,t)=>{s=e,n=t});r.assign(e,{reader:null,writer:null,resolveResult:s,rejectResult:n,result:a});const{readable:i,options:o}=e,{writable:c,closed:l}=(e=>{let t;const r=new y(e=>t=e);return{writable:new k({async write(t){const r=e.getWriter();await r.ready,await r.write(t),r.releaseLock()},close(){t()},abort:t=>e.getWriter().abort(t)}),closed:r}})(e.writable),d=_t({type:"start",options:o,config:t,readable:i,writable:c},e);d||r.assign(e,{reader:i.getReader(),writer:c.getWriter()});const u=await a;return d||await c.getWriter().close(),await l,u})(e,{chunkSize:n,wasmURI:a,baseURI:s})}})}return e.interface}function Dt(e,t,s,n,a=!0){let i,o,c;if(bt===$){const r=typeof e==te;o=r?e(a):e;const l=o.startsWith("data:"),d=o.startsWith("blob:");if(l||d){n===$&&(n=!1),n&&(c=gt);try{i=new T(o,c)}catch(a){if(d)try{u.revokeObjectURL(o)}catch{}if(r&&d)return Dt(e,t,s,n,!1);if(n)throw a;return Dt(e,t,s,!0,!1)}}else{n===$&&(n=!0),n&&(c=gt);try{o=new u(o,t)}catch{}try{i=new T(o,c)}catch(r){if(n)throw r;return Dt(e,t,s,!1,a)}}bt=o,zt=c}else i=new T(bt,zt);return i.addEventListener("message",e=>(async({data:e},t)=>{const{type:s,value:n,messageId:a,result:i,error:o}=e,{reader:c,writer:l,resolveResult:d,rejectResult:u,onTaskFinished:w}=t;try{if(o){const{message:e,stack:t,code:s,name:n,outputSize:a}=o,i=new f(e);r.assign(i,{stack:t,code:s,name:n,outputSize:a}),h(i)}else{if("pull"==s){const{value:e,done:r}=await c.read();_t({type:ut,value:e,done:r,messageId:a},t)}s==ut&&(await l.ready,await l.write(new p(n)),_t({type:"ack",messageId:a},t)),s==ft&&h(null,i)}}catch(o){_t({type:ft,messageId:a},t),h(o)}function h(e,t){e?u(e):d(t),l&&l.releaseLock(),w()}})(e,s)),i}function _t(e,{worker:t,writer:r,onTaskFinished:s,transferStreams:n}){try{const{value:r,readable:s,writable:a}=e,i=[];if(r&&(e.value=r,i.push(e.value.buffer)),n&&St?(s&&i.push(s),a&&i.push(a)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch{St=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),s(),e}}let At=[];const Tt=[];let vt=0;async function Ut(e,t){const{options:r,config:s}=t,{transferStreams:a,useWebWorkers:i,useCompressionStream:o,compressed:c,signed:l,encrypted:d}=r,{workerURI:u,maxWorkers:f}=s;t.transferStreams=a||a===$;const p=!(c||l||d||t.transferStreams);return t.useWebWorkers=!p&&(i||i===$&&s.useWebWorkers),t.workerURI=t.useWebWorkers&&u?u:$,r.useCompressionStream=o||o===$&&s.useCompressionStream,(await(async()=>{const r=At.find(e=>!e.busy);if(r)return Ct(r),new xt(r,e,t,w);if(At.length<f){const r={indexWorker:vt};return vt++,At.push(r),new xt(r,e,t,w)}return new y(r=>Tt.push({resolve:r,stream:e,workerOptions:t}))})()).run();function w(e){if(Tt.length){const[{resolve:t,stream:r,workerOptions:s}]=Tt.splice(0,1);t(new xt(e,r,s,w))}else e.worker?(Ct(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:s}=r;n.isFinite(s)&&s>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{At=At.filter(t=>t!=e);try{await e.terminate()}catch{}},s))})(e,t)):At=At.filter(t=>t!=e)}}function Ct(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const It="HTTP error ",Nt="HTTP Range not supported",Wt="Range",Mt="GET",Ot="bytes",Lt=65536,Pt="writable";class Zt{constructor(){this.size=0}init(){this.initialized=!0}}class Ht extends Zt{get readable(){const e=this,{chunkSize:t=Lt}=e,r=new R({start(){this.chunkOffset=0},async pull(s){const{offset:n=0,size:a,diskNumberStart:o}=r,{chunkOffset:c}=this,l=a===$?t:i.min(t,a-c),d=await ur(e,n+c,l,o);s.enqueue(d),c+t>a||a===$&&!d.length&&l?s.close():this.chunkOffset+=t}});return r}}class Vt extends Zt{constructor(){super();const e=this,t=new k({write(t){if(!e.initialized)throw new f("Writer not initialized");return e.writeUint8Array(t)}});r.defineProperty(e,Pt,{get:()=>t})}writeUint8Array(){}}class Bt extends Ht{constructor(e){super(),r.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const r=this,s=e+t,n=e||s<r.size?r.blob.slice(e,s):r.blob;let a=await n.arrayBuffer();return a.byteLength>t&&(a=a.slice(e,s)),new p(a)}}class qt extends Zt{constructor(e){super();const t=new F,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(this,Pt,{get:()=>t.writable}),this.blob=new d(t.readable,{headers:s}).blob()}getData(){return this.blob}}class Kt extends Ht{constructor(e,t){super(),Yt(this,e,t)}async init(){await Gt(this,sr,$t),super.init()}readUint8Array(e,t){return Xt(this,e,t,sr,$t)}}class jt extends Ht{constructor(e,t){super(),Yt(this,e,t)}async init(){await Gt(this,nr,er),super.init()}readUint8Array(e,t){return Xt(this,e,t,nr,er)}}function Yt(e,t,s){const{preventHeadRequest:n,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o}=s;delete(s=r.assign({},s)).preventHeadRequest,delete s.useRangeHeader,delete s.forceRangeRequests,delete s.combineSizeEocd,delete s.useXHR,r.assign(e,{url:t,options:s,preventHeadRequest:n,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o})}async function Gt(e,t,r){const{url:s,preventHeadRequest:a,useRangeHeader:i,forceRangeRequests:o,combineSizeEocd:c}=e;if((e=>{const{baseURI:t}=ae(),{protocol:r}=new u(e,t);return"http:"==r||"https:"==r})(s)&&(i||o)&&(void 0===a||a)){const s=await t(Mt,e,Jt(e,c?-22:void 0)),a=s.headers.get("Accept-Ranges");if(!(o||a&&a.toLowerCase()==Ot))throw new f(Nt);{let a;c&&(e.eocdCache=new p(await s.arrayBuffer()));const i=s.headers.get("Content-Range");if(i){const e=i.trim().split(/\s*\/\s*/);if(e.length){const t=e[1];t&&"*"!=t&&(a=n(t))}}a===$?await rr(e,t,r):e.size=a}}else await rr(e,t,r)}async function Xt(e,t,r,s,n){const{useRangeHeader:a,forceRangeRequests:i,eocdCache:o,size:c,options:l}=e;if(a||i){if(o&&t==c-H&&r==H)return o;if(c>t){t+r>c&&(r=c-t);const n=await s(Mt,e,Jt(e,t,r));if(206!=n.status)throw new f(Nt);return new p(await n.arrayBuffer())}return new p}{const{data:s}=e;return s||await n(e,l),new p(e.data.subarray(t,t+r))}}function Jt(e,t=0,s=1){return r.assign({},Qt(e),{[Wt]:Ot+"="+(0>t?t:t+"-"+(t+s-1))})}function Qt({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function $t(e){await tr(e,sr)}async function er(e){await tr(e,nr)}async function tr(e,t){const r=await t(Mt,e,Qt(e));e.data=new p(await r.arrayBuffer()),e.size||(e.size=e.data.length)}async function rr(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const s=(await t("HEAD",e,Qt(e))).headers.get("Content-Length");s?e.size=n(s):await r(e,e.options)}}async function sr(e,{options:t,url:s},n){const a=await fetch(s,r.assign({},t,{method:e,headers:n}));if(400>a.status)return a;throw 416==a.status?new f(Nt):new f(It+(a.statusText||a.status))}function nr(e,{url:t},s){return new y((n,a)=>{const i=new XMLHttpRequest;if(i.addEventListener("load",()=>{if(400>i.status){const e=[];i.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const r=t.trim().split(/\s*:\s*/);r[0]=r[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(r)}),n({status:i.status,arrayBuffer:()=>i.response,headers:new c(e)})}else a(416==i.status?new f(Nt):new f(It+(i.statusText||i.status)))},!1),i.addEventListener("error",e=>a(e.detail?e.detail.error:new f("Network error")),!1),i.open(e,t),s)for(const e of r.entries(s))i.setRequestHeader(e[0],e[1]);i.responseType="arraybuffer",i.send()})}class ar extends Ht{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR?new jt(e,t):new Kt(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class ir extends Ht{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:t}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await y.all(t.map(async(r,s)=>{await r.init(),s!=t.length-1&&(e.lastDiskOffset+=r.size),e.size+=r.size})),super.init()}async readUint8Array(e,t,r=0){const s=this,{readers:n}=this;let a,o=r;-1==o&&(o=n.length-1);let c=e;for(;n[o]&&c>=n[o].size;)c-=n[o].size,o++;const l=n[o];if(l){const n=l.size;if(c+t>n){const i=n-c;a=new p(t);const o=await ur(l,c,i);a.set(o,0);const d=await s.readUint8Array(e+i,t-i,r);a.set(d,i),o.length+d.length<t&&(a=a.subarray(0,o.length+d.length))}else a=await ur(l,c,t)}else a=new p;return s.lastDiskNumber=i.max(o,s.lastDiskNumber),a}}class or extends Zt{constructor(e,t=4294967295){super();const s=this;let n,a,i;r.assign(s,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new k({async write(t){const{availableSize:r}=s;if(i)t.length<r?await c(t):(await c(t.subarray(0,r)),await l(),s.diskOffset+=n.size,s.diskNumber++,i=null,await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new f("Writer iterator completed too soon");n=r,n.size=0,n.maxSize&&(s.maxSize=n.maxSize),s.availableSize=s.maxSize,await dr(n),a=r.writable,i=a.getWriter(),await this.write(t)}},async close(){await i.ready,await l()}});async function c(e){const t=e.length;t&&(await i.ready,await i.write(e),n.size+=t,s.size+=t,s.availableSize-=t)}async function l(){await i.close()}r.defineProperty(s,Pt,{get:()=>o})}}class cr{constructor(e){return t.isArray(e)&&(e=new ir(e)),e instanceof R&&(e={readable:e}),e}}class lr{constructor(e){return e.writable===$&&typeof e.next==te&&(e=new or(e)),e instanceof k&&(e={writable:e}),e.size===$&&(e.size=0),e instanceof or||r.assign(e,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),e}}async function dr(e,t){if(!e.init||e.initialized)return y.resolve();await e.init(t)}function ur(e,t,r,s){return e.readUint8Array(t,r,s)}const fr="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function pr(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=fr[e[r]];return t}})(e):new z(t).decode(e)}const wr="filename",hr="rawFilename",mr="comment",gr="rawComment",yr="uncompressedSize",br="compressedSize",zr="offset",Sr="diskNumberStart",xr="lastModDate",Er="rawLastModDate",Fr="lastAccessDate",Rr="creationDate",kr="rawCreationDate",Dr="internalFileAttributes",_r="externalFileAttributes",Ar="msdosAttributesRaw",Tr="msdosAttributes",vr="msDosCompatible",Ur="zip64",Cr="encrypted",Ir="version",Nr="versionMadeBy",Wr="zipCrypto",Mr="directory",Or="executable",Lr="compressionMethod",Pr="signature",Zr="extraField",Hr="unixMode",Vr="setuid",Br="setgid",qr="sticky",Kr=[wr,hr,yr,br,xr,Er,mr,gr,Fr,Rr,kr,zr,Sr,Dr,_r,Ar,Tr,vr,Ur,Cr,Ir,Nr,Wr,Mr,Or,Lr,Pr,Zr,"extraFieldUnix","extraFieldInfoZip","uid","gid",Hr,Vr,Br,qr,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class jr{constructor(e){Kr.forEach(t=>this[t]=e[t])}}const Yr="password",Gr="rawPassword",Xr="passThrough",Jr="signal",Qr="useWebWorkers",$r="useCompressionStream",es="preventClose",ts="supportZip64SplitFile",rs="offset",ss="usdz",ns="File format is not recognized",as="End of central directory not found",is="End of Zip64 central directory locator not found",os="Central directory header not found",cs="Local file header not found",ls="Zip64 extra field not found",ds="File contains encrypted entry",us="Encryption method not supported",fs="Compression method not supported",ps="Split zip file",ws="Overlapping entry found",hs="utf-8",ms="cp437",gs=[[yr,U],[br,U],[zr,U],[Sr,C]],ys={[C]:{getValue:vs,bytes:4},[U]:{getValue:Us,bytes:8}};class bs{constructor(e,t={}){r.assign(this,{reader:new cr(e),options:t,config:ae(),readRanges:[]})}async*getEntriesGenerator(e={}){const t=this;let{reader:s}=t;const{config:n}=t;if(await dr(s),s.size!==$&&s.readUint8Array||(s=new Bt(await new d(s.readable).blob()),await dr(s)),s.size<H)throw new f(ns);s.chunkSize=ie(n);const a=await(async(e,t,r)=>{const s=new p(4);var n;return n=t,Cs(s).setUint32(0,n,!0),await a(22)||await a(i.min(1048582,r));async function a(t){const n=r-t,a=await ur(e,n,t);for(let e=a.length-22;e>=0;e--)if(a[e]==s[0]&&a[e+1]==s[1]&&a[e+2]==s[2]&&a[e+3]==s[3])return{offset:n+e,buffer:a.slice(e,e+22).buffer}}})(s,L,s.size);if(!a)throw vs(Cs(await ur(s,0,4)))==W?new f(ps):new f(as);const o=Cs(a);let c=vs(o,12),l=vs(o,16);const u=a.offset,w=Ts(o,20),h=u+H+w;let m=Ts(o,4);const g=s.lastDiskNumber||0;let b=Ts(o,6),z=Ts(o,8),S=0,x=0;if(l==U||c==U||z==C||b==C){const e=Cs(await ur(s,a.offset-20,20));if(vs(e,0)==Z){l=Us(e,8);let t=await ur(s,l,56,-1),r=Cs(t);const n=a.offset-20-56;if(vs(r,0)!=P&&l!=n){const e=l;l=n,l>e&&(S=l-e),t=await ur(s,l,56,-1),r=Cs(t)}if(vs(r,0)!=P)throw new f(is);m==C&&(m=vs(r,16)),b==C&&(b=vs(r,20)),z==C&&(z=Us(r,32)),c==U&&(c=Us(r,40)),l-=c}}if(l<s.size||(S=s.size-l-c-H,l=s.size-c-H),g!=m)throw new f(ps);if(0>l)throw new f(ns);let E=0,R=await ur(s,l,c,b),k=Cs(R);if(c){const e=a.offset-c;if(vs(k,E)!=O&&l!=e){const t=l;l=e,l>t&&(S+=l-t),R=await ur(s,l,c,b),k=Cs(R)}}const D=a.offset-l-(s.lastDiskOffset||0);if(c==D||0>D||(c=D,R=await ur(s,l,c,b),k=Cs(R)),0>l||l>=s.size)throw new f(ns);const _=ks(t,e,"filenameEncoding"),A=ks(t,e,"commentEncoding");for(let a=0;z>a;a++){const o=new zs(s,n,t.options);if(vs(k,E)!=O)throw new f(os);Ss(o,k,E+6);const c=!!o.bitFlag.languageEncodingFlag,l=E+46,u=l+o.filenameLength,p=u+o.extraFieldLength,w=Ts(k,E+4),h=!(w>>8),m=w>>8==3,g=R.subarray(l,u),b=Ts(k,E+32),D=p+b,T=R.subarray(p,D),v=c,U=c,N=vs(k,E+38),W=N&I,M={readOnly:!!(1&W),hidden:!!(2&W),system:!!(4&W),directory:!!(16&W),archive:!!(32&W)},L=vs(k,E+42)+S,P=ks(t,e,"decodeText")||pr,Z=v?hs:_||ms,H=U?hs:A||ms;let V=P(g,Z);V===$&&(V=pr(g,Z));let B=P(T,H);B===$&&(B=pr(T,H)),r.assign(o,{versionMadeBy:w,msDosCompatible:h,compressedSize:0,uncompressedSize:0,commentLength:b,offset:L,diskNumberStart:Ts(k,E+34),internalFileAttributes:Ts(k,E+36),externalFileAttributes:N,msdosAttributesRaw:W,msdosAttributes:M,rawFilename:g,filenameUTF8:v,commentUTF8:U,rawExtraField:R.subarray(u,p),rawComment:T,filename:V,comment:B}),x=i.max(L,x),xs(o,o,k,E+6);const X=o.externalFileAttributes>>16&C;o.unixMode===$&&16877&X&&(o.unixMode=X);const J=!!(o.unixMode&K),Q=!!(o.unixMode&j),ee=!!(o.unixMode&Y),te=o.unixMode!==$?!!(73&o.unixMode):m&&!!(73&X),re=o.unixMode!==$&&(61440&o.unixMode)==q,se=(61440&X)==q;r.assign(o,{setuid:J,setgid:Q,sticky:ee,unixExternalUpper:X,internalFileAttribute:o.internalFileAttributes,externalFileAttribute:o.externalFileAttributes,executable:te,directory:re||se||h&&M.directory||V.endsWith(G)&&!o.uncompressedSize,zipCrypto:o.encrypted&&!o.extraFieldAES});const ne=new jr(o);ne.getData=(e,r)=>o.getData(e,ne,t.readRanges,r),ne.arrayBuffer=async e=>{const r=new F,[s]=await y.all([new d(r.readable).arrayBuffer(),o.getData(r,ne,t.readRanges,e)]);return s},E=D;const{onprogress:ae}=e;if(ae)try{await ae(a+1,z,new jr(o))}catch{}yield ne}const T=ks(t,e,"extractPrependedData"),v=ks(t,e,"extractAppendedData");return T&&(t.prependedData=x>0?await ur(s,0,x):new p),t.comment=w?await ur(s,u+H,w):new p,v&&(t.appendedData=h<s.size?await ur(s,h,s.size-h):new p),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}class zs{constructor(e,t,s){r.assign(this,{reader:e,config:t,options:s})}async getData(e,t,s,n={}){const a=this,{reader:i,offset:o,diskNumberStart:c,extraFieldAES:l,extraFieldZip64:d,compressionMethod:u,config:w,bitFlag:h,signature:m,rawLastModDate:g,uncompressedSize:y,compressedSize:b}=a,{dataDescriptor:z}=h,S=t.localDirectory={},x=Cs(await ur(i,o,X,c));let E=ks(a,n,Yr),F=ks(a,n,Gr);const R=ks(a,n,Xr);if(E=E&&E.length&&E,F=F&&F.length&&F,l&&99!=l.originalCompressionMethod)throw new f(fs);if(0!=u&&8!=u&&9!=u&&!R)throw new f(fs);if(vs(x,0)!=N)throw new f(cs);Ss(S,x,4);const{extraFieldLength:D,filenameLength:_,lastAccessDate:A,creationDate:T}=S;S.rawExtraField=D?await ur(i,o+X+_,D,c):new p,xs(a,S,x,4,!0),r.assign(t,{lastAccessDate:A,creationDate:T});const v=a.encrypted&&S.encrypted&&!R,U=v&&!l;if(R||(t.zipCrypto=U),v){if(!U&&l.strength===$)throw new f(us);if(!E&&!F)throw new f(ds)}const C=o+X+_+D,W=b,O=i.readable;r.assign(O,{diskNumberStart:c,offset:C,size:W});const L=ks(a,n,Jr),P=ks(a,n,"checkPasswordOnly");let Z=ks(a,n,"checkOverlappingEntry");const H=ks(a,n,"checkOverlappingEntryOnly");H&&(Z=!0);const{onstart:V,onprogress:B,onend:q}=n,K=9==u;let j=ks(a,n,$r);K&&(j=!1);const Y={options:{codecType:wt,password:E,rawPassword:F,zipCrypto:U,encryptionStrength:l&&l.strength,signed:ks(a,n,"checkSignature")&&!R,passwordVerification:U&&(z?g>>>8&I:m>>>24&I),outputSize:R?b:y,signature:m,compressed:0!=u&&!R,encrypted:a.encrypted&&!R,useWebWorkers:ks(a,n,Qr),useCompressionStream:j,transferStreams:ks(a,n,"transferStreams"),deflate64:K,checkPasswordOnly:P},config:w,streamOptions:{signal:L,size:W,onstart:V,onprogress:B,onend:q}};let G;Z&&await(async({reader:e,fileEntry:t,offset:r,diskNumberStart:s,signature:n,compressedSize:a,uncompressedSize:i,dataOffset:o,dataDescriptor:c,extraFieldZip64:l,readRanges:d})=>{let u=0;if(s)for(let t=0;s>t;t++)u+=e.readers[t].size;let p=0;if(c&&(p=l?20:12),p){const r=await ur(e,o+a,p+4,s);if(vs(Cs(r),0)==M){const e=vs(Cs(r),4);let s,o;l?(s=Us(Cs(r),8),o=Us(Cs(r),16)):(s=vs(Cs(r),8),o=vs(Cs(r),12)),(t.encrypted&&!t.zipCrypto||e==n)&&s==a&&o==i&&(p+=4)}}const w={start:u+r,end:u+o+a+p,fileEntry:t};for(const e of d)if(e.fileEntry!=t&&w.start>=e.start&&w.start<e.end){const t=new f(ws);throw t.overlappingEntry=e.fileEntry,t}d.push(w)})({reader:i,fileEntry:t,offset:o,diskNumberStart:c,signature:m,compressedSize:b,uncompressedSize:y,dataOffset:C,dataDescriptor:z||S.bitFlag.dataDescriptor,extraFieldZip64:d||S.extraFieldZip64,readRanges:s});try{if(!H){P&&(e=new k),e=new lr(e),await dr(e,R?b:y),({writable:G}=e);const{outputSize:t}=await Ut({readable:O,writable:G},Y);if(e.size+=t,t!=(R?b:y))throw new f(at)}}catch(t){if(t.outputSize!==$&&(e.size+=t.outputSize),!P||t.message!=Se)throw t}finally{ks(a,n,es)||!G||G.locked||await G.getWriter().close()}return P||H?$:e.getData?e.getData():G}}function Ss(e,t,s){const n=e.rawBitFlag=Ts(t,s+2),a=!(1&~n),i=vs(t,s+6);r.assign(e,{encrypted:a,version:Ts(t,s),bitFlag:{level:(6&n)>>1,dataDescriptor:!(8&~n),languageEncodingFlag:(n&B)==B},rawLastModDate:i,lastModDate:Ds(i),filenameLength:Ts(t,s+22),extraFieldLength:Ts(t,s+24)})}function xs(e,t,s,n,a){const{rawExtraField:i}=t,l=t.extraField=new c,d=Cs(new p(i));let u=0;try{for(;u<i.length;){const e=Ts(d,u),t=Ts(d,u+2);l.set(e,{type:e,data:i.slice(u+4,u+4+t)}),u+=4+t}}catch{}const w=Ts(s,n+4);r.assign(t,{signature:vs(s,n+10),compressedSize:vs(s,n+14),uncompressedSize:vs(s,n+18)});const h=l.get(1);h&&(((e,t)=>{t.zip64=!0;const r=Cs(e.data),s=gs.filter(([e,r])=>t[e]==r);for(let n=0,a=0;n<s.length;n++){const[i,o]=s[n];if(t[i]==o){const s=ys[o];t[i]=e[i]=s.getValue(r,a),a+=s.bytes}else if(e[i])throw new f(ls)}})(h,t),t.extraFieldZip64=h);const m=l.get(28789);m&&(Es(m,wr,hr,t,e),t.extraFieldUnicodePath=m);const g=l.get(25461);g&&(Es(g,mr,gr,t,e),t.extraFieldUnicodeComment=g);const y=l.get(39169);y?(((e,t,s)=>{const n=Cs(e.data),a=As(n,4);r.assign(e,{vendorVersion:As(n,0),vendorId:As(n,2),strength:a,originalCompressionMethod:s,compressionMethod:Ts(n,5)}),t.compressionMethod=e.compressionMethod})(y,t,w),t.extraFieldAES=y):t.compressionMethod=w;const b=l.get(10);b&&(((e,t)=>{const s=Cs(e.data);let n,a=4;try{for(;a<e.data.length&&!n;){const t=Ts(s,a),r=Ts(s,a+2);1==t&&(n=e.data.slice(a+4,a+4+r)),a+=4+r}}catch{}try{if(n&&24==n.length){const s=Cs(n),a=s.getBigUint64(0,!0),i=s.getBigUint64(8,!0),o=s.getBigUint64(16,!0);r.assign(e,{rawLastModDate:a,rawLastAccessDate:i,rawCreationDate:o});const c={lastModDate:_s(a),lastAccessDate:_s(i),creationDate:_s(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(b,t),t.extraFieldNTFS=b);const z=l.get(30805);if(z)Fs(z,t,!1),t.extraFieldUnix=z;else{const e=l.get(30837);e&&(Fs(e,t,!0),t.extraFieldInfoZip=e)}const S=l.get(V);S&&(((e,t,r)=>{const s=Cs(e.data),n=As(s,0),a=[],i=[];r?(1&~n||(a.push(xr),i.push(Er)),2&~n||(a.push(Fr),i.push("rawLastAccessDate")),4&~n||(a.push(Rr),i.push(kr))):5>e.data.length||(a.push(xr),i.push(Er));let c=1;a.forEach((r,n)=>{if(e.data.length>=c+4){const a=vs(s,c);t[r]=e[r]=new o(1e3*a);const l=i[n];e[l]=a}c+=4})})(S,t,a),t.extraFieldExtendedTimestamp=S);const x=l.get(6534);x&&(t.extraFieldUSDZ=x)}function Es(e,t,s,n,a){const i=Cs(e.data),o=new de;o.append(a[s]);const c=Cs(new p(4));c.setUint32(0,o.get(),!0);const l=vs(i,1);r.assign(e,{version:As(i,0),[t]:pr(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==vs(c,0)}),e.valid&&(n[t]=e[t],n[t+"UTF8"]=!0)}function Fs(e,t,s){try{const n=Cs(new p(e.data));let a=0;const i=As(n,a++),o=As(n,a++),c=e.data.subarray(a,a+o);a+=o;const l=Rs(c),d=As(n,a++),u=e.data.subarray(a,a+d);a+=d;const f=Rs(u);let w=$;if(!s&&a+2<=e.data.length){const t=e.data;w=new m(t.buffer,t.byteOffset+a,2).getUint16(0,!0)}r.assign(e,{version:i,uid:l,gid:f,unixMode:w}),l!==$&&(t.uid=l),f!==$&&(t.gid=f),w!==$&&(t.unixMode=w)}catch{}}function Rs(e){const t=new p(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function ks(e,t,r){return t[r]===$?e.options[r]:t[r]}function Ds(e){const t=(4294901760&e)>>16,r=e&C;try{return new o(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&r)>>11,(2016&r)>>5,2*(31&r),0)}catch{}}function _s(e){return new o(n(e/a(1e4)-a(116444736e5)))}function As(e,t){return e.getUint8(t)}function Ts(e,t){return e.getUint16(t,!0)}function vs(e,t){return e.getUint32(t,!0)}function Us(e,t){return n(e.getBigUint64(t,!0))}function Cs(e){return new m(e.buffer)}const Is="File already exists",Ns="Zip file comment exceeds 64KB",Ws="File entry comment exceeds 64KB",Ms="File entry name exceeds 64KB",Os="Version exceeds 65535",Ls="The strength must equal 1, 2, or 3",Ps="Extra field type exceeds 65535",Zs="Extra field data exceeds 64KB",Hs="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",Vs="Undefined uncompressed size",Bs="Zip file not empty",qs=new p([7,0,2,0,65,69,3,0,0]),Ks="infozip",js="unix";let Ys=0;const Gs=[];class Xs{constructor(e,t={}){const s=(e=new lr(e)).availableSize!==$&&e.availableSize>0&&e.availableSize!==1/0&&e.maxSize!==$&&e.maxSize>0&&e.maxSize!==1/0;r.assign(this,{writer:e,addSplitZipSignature:s,options:t,config:ae(),files:new c,filenames:new l,offset:t[rs]===$?e.size||e.writable.size||0:t[rs],pendingEntriesSize:0,pendingAddFileCalls:new l,bufferedWrites:0})}async prependZip(e){if(this.filenames.size)throw new f(Bs);e=new cr(e);const t=new bs(e.readable),s=await t.getEntries();await t.close(),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.filenames=new l(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,compressionMethod:s,lastModDate:n,lastAccessDate:a,creationDate:i,rawFilename:o,bitFlag:c,encrypted:l,uncompressedSize:d,compressedSize:u,diskOffset:f,diskNumber:w,zip64:h}=e;let{rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraFieldUnix:z,rawExtraField:S}=e;const{level:x,languageEncodingFlag:E,dataDescriptor:F}=c;m=m||new p,g=g||new p,y=y||new p,b=b||new p,z=e.rawExtraFieldUnix||new p,S=S||new p;const R=dn(m,g,y,b,z,S),k=h&&d>U,D=h&&u>U,{headerArray:_,headerView:A}=un({version:t,bitFlag:fn(x,E,F,l,s),compressionMethod:s,uncompressedSize:d,compressedSize:u,lastModDate:n,rawFilename:o,zip64CompressedSize:D,zip64UncompressedSize:k,extraFieldLength:R});return r.assign(e,{zip64UncompressedSize:k,zip64CompressedSize:D,zip64Offset:h&&this.offset-f>U,zip64DiskNumberStart:h&&w>C,rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraFieldUnix:z,rawExtraField:S,extendedTimestamp:y.length>0||b.length>0,extraFieldExtendedTimestampFlag:1+(a?2:0)+(i?4:0),headerArray:_,headerView:A}),[e.filename,e]}))}async add(e="",s,n={}){const c=this,{pendingAddFileCalls:l,config:d}=c;let u;Ys<d.maxWorkers?Ys++:await new y(e=>Gs.push(e));try{if(e=e.trim(),c.filenames.has(e))throw new f(Is);return c.filenames.add(e),u=(async(e,s,n,c)=>{s=s.trim();let l=tn(e,c,vr),d=tn(e,c,Nr,l?20:768);const u=tn(e,c,Or),h=tn(e,c,"uid"),g=tn(e,c,"gid");let b=tn(e,c,Hr);const z=tn(e,c,"unixExtraFieldType");let S=tn(e,c,Vr),x=tn(e,c,Br),E=tn(e,c,qr);if(h!==$&&(0>h||h>U))throw new f("Invalid uid (must be integer 0..2^32-1)");if(g!==$&&(0>g||g>U))throw new f("Invalid gid (must be integer 0..2^32-1)");if(b!==$&&(0>b||b>C))throw new f("Invalid UNIX mode (must be integer 0..65535)");if(z!==$&&z!==Ks&&z!==js)throw new f("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");let R=tn(e,c,Ar),k=tn(e,c,Tr);const D=R!==$||k!==$;if(h!==$||g!==$||b!==$||z?(l=!1,d=d&C|768):D&&(l=!0,d&=I),R!==$&&(0>R||R>I))throw new f("Invalid msdosAttributesRaw (must be integer 0..255)");if(k&&"object"!=typeof k)throw new f("Invalid msdosAttributes (must be an object with boolean flags)");if(d>C)throw new f(Os);let _=tn(e,c,_r,0);!c[Mr]&&s.endsWith(G)&&(c[Mr]=!0);const A=tn(e,c,Mr);let T;A?(s.endsWith(G)||(s+=G),0===_&&(_=16,l||(_|=16877<<16))):l||0!==_||(_=u?493<<16:27525120),l||(T=_>>16&C,b=b===$?T:b&C,S?b|=K:S=!!(b&K),x?b|=j:x=!!(b&j),E?b|=Y:E=!!(b&Y),A&&(b|=q),_=(b&C)<<16|_&I),({msdosAttributesRaw:R,msdosAttributes:k}=((e,t)=>{if(e!==$)e&=I;else if(t!==$){const{readOnly:r,hidden:s,system:n,directory:a,archive:i}=t;let o=0;r&&(o|=1),s&&(o|=2),n&&(o|=4),a&&(o|=16),i&&(o|=32),e=o&I}return t===$&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(R,k)),D&&(_=_&U|R&I);const v=tn(e,c,"encodeText",fe);let O=v(s);if(O===$&&(O=fe(s)),dn(O)>C)throw new f(Ms);const L=c[mr]||"";let P=v(L);if(P===$&&(P=fe(L)),dn(P)>C)throw new f(Ws);const Z=tn(e,c,Ir,20);if(Z>C)throw new f(Os);const H=tn(e,c,xr,new o),B=tn(e,c,Fr),ee=tn(e,c,Rr),te=tn(e,c,Dr,0),re=tn(e,c,Xr);let se,ne;re||(se=tn(e,c,Yr),ne=tn(e,c,Gr));const ae=tn(e,c,"encryptionStrength",3),oe=tn(e,c,Wr),ce=tn(e,c,"extendedTimestamp",!0),le=tn(e,c,"keepOrder",!0),de=tn(e,c,Qr),ue=tn(e,c,"bufferedWrite"),pe=tn(e,c,"dataDescriptorSignature",!1),we=tn(e,c,Jr),he=tn(e,c,"useUnicodeFileNames",!0),me=tn(e,c,Lr);let ge=tn(e,c,"level"),ye=tn(e,c,$r),be=tn(e,c,"dataDescriptor");ue&&be===$&&(be=!1),(be===$||oe)&&(be=!0),ge!==$&&6!=ge&&(ye=!1),ye||e.config.CompressionStream!==$||e.config.CompressionStreamZlib!==$||(ge=0);let ze=tn(e,c,Ur);if(!oe&&(se!==$||ne!==$)&&(1>ae||ae>3))throw new f(Ls);let Se=new p;const xe=c[Zr];if(xe){let e=0,t=0;xe.forEach(t=>e+=4+dn(t)),Se=new p(e),xe.forEach((e,r)=>{if(r>C)throw new f(Ps);if(dn(e)>C)throw new f(Zs);cn(Se,new w([r]),t),cn(Se,new w([dn(e)]),t+2),cn(Se,e,t+4),t+=4+dn(e)})}let Ee=0,Fe=0,Re=0;if(re&&(Re=c[yr],Re===$))throw new f(Vs);const ke=!0===ze;n&&(n=new cr(n),await dr(n),re?(c.uncompressedSize=Re,Ee=rn(Re)):n.size===$?(be=!0,(ze||ze===$)&&(ze=!0,Re=Ee=4294967296)):(c.uncompressedSize=Re=n.size,Ee=rn(Re)));const{diskOffset:De,diskNumber:_e,maxSize:Ae}=e.writer,Te=ke||Re>U,ve=ke||Ee>U,Ue=ke||e.offset+e.pendingEntriesSize-De>U,Ce=tn(e,c,ts,!0)&&ke||_e+i.ceil(e.pendingEntriesSize/Ae)>C;if(Ue||Te||ve||Ce){if(!1===ze||!le)throw new f(Hs);ze=!0}ze=ze||!1;const Ie=tn(e,c,Cr),Ne=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:s,creationDate:n,level:o,zip64:c,zipCrypto:l,useUnicodeFileNames:d,dataDescriptor:u,directory:f,rawExtraField:w,encryptionStrength:h,extendedTimestamp:g,passThrough:y,encrypted:b,zip64UncompressedSize:z,zip64CompressedSize:S,zip64Offset:x,zip64DiskNumberStart:E,uncompressedSize:F,offset:R,diskNumberStart:k}=e;let{version:D,compressionMethod:_}=e;const A=!f&&(o>0||o===$&&0!==_);let T,v;const U=y||!A,I=c&&(e.bufferedWrite||!z&&!S||U);if(c){let e=4,t=4;z&&(e+=8,t+=8),S&&(e+=8,t+=8),x&&(e+=8),E&&(e+=4),T=new p(e);const r=ln(T);v=new p(t);const s=ln(v);if(nn(r,0,1),nn(r,2,dn(T)-4),nn(s,0,1),nn(s,2,dn(v)-4),I){const e=ln(T),t=ln(v);let r=4,s=4;z&&(on(e,r,a(F)),r+=8,on(t,s,a(F)),s+=8),S&&U&&(on(e,r,a(F)),r+=8,on(t,s,a(F)),s+=8),x&&(on(e,r,a(R)),r+=8),E&&(an(e,r,k),r+=4),4==s&&(v=new p)}}else T=new p,v=new p;let W,M,O,L,P;if(b&&!l){W=new p(dn(qs)+2);const e=ln(W);nn(e,0,39169),cn(W,qs,2),sn(e,8,h)}else W=new p;if(g){O=new p(9+(s?4:0)+(n?4:0));const e=ln(O);nn(e,0,V),nn(e,2,dn(O)-4),L=1+(s?2:0)+(n?4:0),sn(e,4,L);let t=5;an(e,t,i.floor(r.getTime()/1e3)),t+=4,s&&(an(e,t,i.floor(s.getTime()/1e3)),t+=4),n&&an(e,t,i.floor(n.getTime()/1e3));try{M=new p(36);const e=ln(M),t=en(r);nn(e,0,10),nn(e,2,32),nn(e,8,1),nn(e,10,24),on(e,12,t),on(e,20,en(s)||t),on(e,28,en(n)||t)}catch{M=new p}}else M=O=new p;try{const{uid:t,gid:r,unixMode:s,setuid:n,setgid:a,sticky:i,unixExtraFieldType:o}=e;if(!o||t===$&&r===$&&s===$)P=new p;else{const e=Js(t),c=Js(r);let l=new p;if(o==js&&s!==$){let e=s&C;n&&(e|=K),a&&(e|=j),i&&(e|=Y),l=new p(2),new m(l.buffer).setUint16(0,e,!0)}const d=3+e.length+c.length+l.length;P=new p(4+d);const u=ln(P);nn(u,0,o==Ks?30837:30805),nn(u,2,d),sn(u,4,1),sn(u,5,e.length);let f=6;cn(P,e,f),f+=e.length,sn(u,f,c.length),f++,cn(P,c,f),f+=c.length,cn(P,l,f)}}catch{P=new p}_===$&&(_=A?8:0),c&&(D=D>45?D:45),b&&!l&&(D=D>51?D:51,W[9]=_,_=99);const Z=I?dn(v):0,H=Z+dn(W,O,M,P,w),{headerArray:B,headerView:q,rawLastModDate:G}=un({version:D,bitFlag:fn(o,d,u,b,_),compressionMethod:_,uncompressedSize:F,lastModDate:Q>r?Q:r>J?J:r,rawFilename:t,zip64CompressedSize:S,zip64UncompressedSize:z,extraFieldLength:H});let ee=X;const te=new p(ee+dn(t)+H),re=ln(te);return an(re,0,N),cn(te,B,4),cn(te,t,ee),ee+=dn(t),I&&cn(te,v,ee),ee+=Z,cn(te,W,ee),ee+=dn(W),cn(te,O,ee),ee+=dn(O),cn(te,M,ee),ee+=dn(M),cn(te,P,ee),ee+=dn(P),cn(te,w,ee),u&&(an(re,18,0),an(re,22,0)),{localHeaderArray:te,localHeaderView:re,headerArray:B,headerView:q,lastModDate:r,rawLastModDate:G,encrypted:b,compressed:A,version:D,compressionMethod:_,extraFieldExtendedTimestampFlag:L,rawExtraFieldZip64:T,localExtraFieldZip64Length:Z,rawExtraFieldExtendedTimestamp:O,rawExtraFieldNTFS:M,rawExtraFieldUnix:P,rawExtraFieldAES:W,extraFieldLength:H}})(c=r.assign({},c,{rawFilename:O,rawComment:P,version:Z,versionMadeBy:d,lastModDate:H,lastAccessDate:B,creationDate:ee,rawExtraField:Se,zip64:ze,zip64UncompressedSize:Te,zip64CompressedSize:ve,zip64Offset:Ue,zip64DiskNumberStart:Ce,password:se,rawPassword:ne,level:ge,useWebWorkers:de,encryptionStrength:ae,extendedTimestamp:ce,zipCrypto:oe,bufferedWrite:ue,keepOrder:le,useUnicodeFileNames:he,dataDescriptor:be,dataDescriptorSignature:pe,signal:we,msDosCompatible:l,internalFileAttribute:te,internalFileAttributes:te,externalFileAttribute:_,externalFileAttributes:_,useCompressionStream:ye,passThrough:re,encrypted:!!(se&&dn(se)||ne&&dn(ne))||re&&Ie,signature:c[Pr],compressionMethod:me,uncompressedSize:Re,offset:e.offset-De,diskNumberStart:_e,uid:h,gid:g,setuid:S,setgid:x,sticky:E,unixMode:b,msdosAttributesRaw:R,msdosAttributes:k,unixExternalUpper:T})),We=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:r})=>{let s,n=new p,a=0,i=e?20:12;return r&&(i+=4),t&&(n=new p(i),s=ln(n),r&&(a=4,an(s,0,M))),{dataDescriptorArray:n,dataDescriptorView:s,dataDescriptorOffset:a}})(c),Me=dn(Ne.localHeaderArray,We.dataDescriptorArray);let Oe;Fe=Me+Ee,e.options[ss]&&(Fe+=Fe+64),e.pendingEntriesSize+=Fe;try{Oe=await(async(e,s,n,i,o)=>{const{files:c,writer:l}=e,{keepOrder:d,dataDescriptor:u,signal:w}=o,{headerInfo:h}=i,m=e.options[ss],g=t.from(c.values()).pop();let b,z,S,x,E,R,k={};c.set(s,k);try{let t;d&&(t=g&&g.lock,k.lock=new y(e=>S=e)),!(o.bufferedWrite||e.writerLocked||e.bufferedWrites&&d)&&u||m?(R=l,await D()):(R=new F(void 0,void 0,{highWaterMark:1/0}),R.size=0,b=!0,e.bufferedWrites++,await dr(l)),await dr(R);const{writable:z,diskOffset:A}=l;if(e.addSplitZipSignature){delete e.addSplitZipSignature;const t=new p(4);an(ln(t),0,W),await $s(l,t),e.offset+=4}m&&((e,t)=>{const{headerInfo:r}=e;let{localHeaderArray:s,extraFieldLength:n}=r,a=ln(s),i=64-(t+dn(s))%64;4>i&&(i+=64);const o=new p(i),c=ln(o);nn(c,0,6534),nn(c,2,i-2);const l=s;r.localHeaderArray=s=new p(dn(l)+i),cn(s,l),cn(s,o,dn(l)),a=ln(s),nn(a,28,n+i),e.metadataSize+=i})(i,e.offset-A);const{localHeaderView:T,localHeaderArray:v}=h;b||(await t,await _(z));const{diskNumber:C}=l;k.diskNumberStart=C,b||(E=!0,await $s(R,v)),k=await(async(e,t,{diskNumberStart:s,lock:n},i,o,c)=>{const{headerInfo:l,dataDescriptorInfo:d,metadataSize:u}=i,{headerArray:f,headerView:p,lastModDate:w,rawLastModDate:h,encrypted:m,compressed:g,version:y,compressionMethod:b,rawExtraFieldZip64:z,localExtraFieldZip64Length:S,rawExtraFieldExtendedTimestamp:x,extraFieldExtendedTimestampFlag:E,rawExtraFieldNTFS:F,rawExtraFieldUnix:R,rawExtraFieldAES:k}=l,{dataDescriptorArray:D}=d,{rawFilename:_,lastAccessDate:A,creationDate:T,password:v,rawPassword:U,level:C,zip64:N,zip64UncompressedSize:W,zip64CompressedSize:M,zip64Offset:O,zip64DiskNumberStart:L,zipCrypto:P,dataDescriptor:Z,directory:H,executable:V,versionMadeBy:B,rawComment:q,rawExtraField:K,useWebWorkers:j,onstart:Y,onprogress:G,onend:X,signal:J,encryptionStrength:Q,extendedTimestamp:ee,msDosCompatible:te,internalFileAttributes:re,externalFileAttributes:se,uid:ne,gid:ae,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:ue,msdosAttributesRaw:fe,msdosAttributes:pe,useCompressionStream:we,passThrough:he}=c,me={lock:n,versionMadeBy:B,zip64:N,directory:!!H,executable:!!V,filenameUTF8:!0,rawFilename:_,commentUTF8:!0,rawComment:q,rawExtraFieldZip64:z,localExtraFieldZip64Length:S,rawExtraFieldExtendedTimestamp:x,rawExtraFieldNTFS:F,rawExtraFieldUnix:R,rawExtraFieldAES:k,rawExtraField:K,extendedTimestamp:ee,msDosCompatible:te,internalFileAttributes:re,externalFileAttributes:se,diskNumberStart:s,uid:ne,gid:ae,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:ue,msdosAttributesRaw:fe,msdosAttributes:pe};let{signature:ge,uncompressedSize:ye}=c,be=0;he||(ye=0);const{writable:ze}=t;if(e){e.chunkSize=ie(o);const r=e.readable,s=e.size,n={options:{codecType:pt,level:C,rawPassword:U,password:v,encryptionStrength:Q,zipCrypto:m&&P,passwordVerification:m&&P&&h>>8&I,signed:!he,compressed:g&&!he,encrypted:m&&!he,useWebWorkers:j,useCompressionStream:we,transferStreams:!1},config:o,streamOptions:{signal:J,size:s,onstart:Y,onprogress:G,onend:X}};try{const e=await Ut({readable:r,writable:ze},n);be=e.outputSize,t.size+=be,he||(ye=e.inputSize,ge=e.signature)}catch(e){throw e.outputSize!==$&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:r,headerInfo:s,dataDescriptorInfo:n},{zip64:i,zipCrypto:o,dataDescriptor:c})=>{const{headerView:l,encrypted:d}=s,{dataDescriptorView:u,dataDescriptorOffset:f}=n;d&&!o||e===$||(an(l,10,e),c&&an(u,f,e)),i?c&&(on(u,f+4,a(t)),on(u,f+12,a(r))):(an(l,14,t),an(l,18,r),c&&(an(u,f+4,t),an(u,f+8,r)))})({signature:ge,compressedSize:be,uncompressedSize:ye,headerInfo:l,dataDescriptorInfo:d},c),Z&&await $s(t,D),r.assign(me,{uncompressedSize:ye,compressedSize:be,lastModDate:w,rawLastModDate:h,creationDate:T,lastAccessDate:A,encrypted:m,zipCrypto:P,size:u+be,compressionMethod:b,version:y,headerArray:f,headerView:p,signature:ge,extraFieldExtendedTimestampFlag:E,zip64UncompressedSize:W,zip64CompressedSize:M,zip64Offset:O,zip64DiskNumberStart:L}),me})(n,R,k,i,e.config,o);const{zip64:N}=k;if(b||(E=!1),c.set(s,k),k.filename=s,b?(await y.all([R.writable.getWriter().close(),t]),await D(),x=!0,k.diskNumberStart=l.diskNumber,k.offset=e.offset-l.diskOffset,N&&Qs(k),(({rawFilename:e,encrypted:t,zip64:r,localExtraFieldZip64Length:s,signature:n,compressedSize:i,uncompressedSize:o,zip64UncompressedSize:c,zip64CompressedSize:l},d,{dataDescriptor:u})=>{if(u||(t||an(d,14,n),l||an(d,18,i),c||an(d,22,o)),r&&s){let t=X+dn(e)+4;c&&(on(d,t,a(o)),t+=8),l&&(on(d,t,a(i)),t+=8)}})(k,T,o),await _(z),await $s(l,v),await R.readable.pipeTo(z,{preventClose:!0,preventAbort:!0,signal:w}),l.size+=R.size,x=!1):(k.offset=e.offset-A,N&&Qs(k)),k.offset>U&&!N)throw new f(Hs);return e.offset+=k.size,k}catch(t){if(x||E){if(e.hasCorruptedEntries=!0,t)try{t.corruptedEntry=!0}catch{}b?e.offset+=R.size:e.offset=R.size}throw c.delete(s),t}finally{b&&e.bufferedWrites--,S&&S(),z&&z()}async function D(){e.writerLocked=!0;const{lockWriter:t}=e;e.lockWriter=new y(t=>z=()=>{e.writerLocked=!1,t()}),await t}async function _(e){dn(h.localHeaderArray)>l.availableSize&&(l.availableSize=0,await $s(e,new p))}})(e,s,n,{headerInfo:Ne,dataDescriptorInfo:We,metadataSize:Me},c)}finally{e.pendingEntriesSize-=Fe}return r.assign(Oe,{name:s,comment:L,extraField:xe}),new jr(Oe)})(c,e,s,n),l.add(u),await u}catch(t){throw c.filenames.delete(e),t}finally{l.delete(u);const e=Gs.shift();e?e():Ys--}}remove(e){const{filenames:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==$){const{filename:s}=e;if(t.has(s)&&r.has(s))return t.delete(s),r.delete(s),!0}return!1}async close(e=new p,r={}){const{pendingAddFileCalls:s,writer:n}=this,{writable:o}=n;for(;s.size;)await y.allSettled(t.from(s));return await(async(e,r,s)=>{const{files:n,writer:o}=e,{diskOffset:c}=o;let{diskNumber:l}=o,d=0,u=0,w=e.offset-c,h=n.size;for(const[,e]of n){const{rawFilename:t,rawExtraFieldZip64:r,rawExtraFieldAES:s,rawComment:n,rawExtraFieldNTFS:a,rawExtraFieldUnix:o,rawExtraField:c,extendedTimestamp:l,extraFieldExtendedTimestampFlag:d,lastModDate:f}=e;let w;if(l){w=new p(9);const e=ln(w);nn(e,0,V),nn(e,2,5),sn(e,4,d),an(e,5,i.floor(f.getTime()/1e3))}else w=new p;e.rawExtraFieldExtendedTimestamp=w,u+=46+dn(t,n,r,s,a,o,w,c)}const m=new p(u),g=ln(m);await dr(o);let y=0;for(const[e,r]of t.from(n.values()).entries()){const{offset:t,rawFilename:a,rawExtraFieldZip64:i,rawExtraFieldAES:c,rawExtraFieldExtendedTimestamp:l,rawExtraFieldNTFS:u,rawExtraFieldUnix:f,rawExtraField:p,rawComment:w,versionMadeBy:h,headerArray:b,headerView:z,zip64:S,zip64UncompressedSize:x,zip64CompressedSize:E,zip64DiskNumberStart:F,zip64Offset:R,internalFileAttributes:k,externalFileAttributes:D,diskNumberStart:_,uncompressedSize:A,compressedSize:T}=r,v=dn(i,c,l,u,f,p);an(g,d,O),nn(g,d+4,h),x||an(z,18,A),E||an(z,14,T),cn(m,b,d+6);let I=d+X;if(nn(g,I,v),I+=2,nn(g,I,dn(w)),I+=2,nn(g,I,S&&F?C:_),I+=2,nn(g,I,k),I+=2,D&&an(g,I,D),I+=4,an(g,I,S&&R?U:t),I+=4,cn(m,a,I),I+=dn(a),cn(m,i,I),I+=dn(i),cn(m,c,I),I+=dn(c),cn(m,l,I),I+=dn(l),cn(m,u,I),I+=dn(u),cn(m,f,I),I+=dn(f),cn(m,p,I),I+=dn(p),cn(m,w,I),I+=dn(w),d-y>o.availableSize&&(o.availableSize=0,await $s(o,m.slice(y,d)),y=d),d=I,s.onprogress)try{await s.onprogress(e+1,n.size,new jr(r))}catch{}}await $s(o,y?m.slice(y):m);let b=o.diskNumber;const{availableSize:z}=o;H>z&&b++;let S=tn(e,s,Ur);if(w>U||u>U||h>C||b>C){if(!1===S)throw new f(Hs);S=!0}const x=new p(S?98:H),E=ln(x);d=0,S&&(an(E,0,P),on(E,4,a(44)),nn(E,12,45),nn(E,14,45),an(E,16,b),an(E,20,l),on(E,24,a(h)),on(E,32,a(h)),on(E,40,a(u)),on(E,48,a(w)),an(E,56,Z),on(E,64,a(w)+a(u)),an(E,72,b+1),tn(e,s,ts,!0)&&(b=C,l=C),h=C,w=U,u=U,d+=76),an(E,d,L),nn(E,d+4,b),nn(E,d+6,l),nn(E,d+8,h),nn(E,d+10,h),an(E,d+12,u),an(E,d+16,w);const F=dn(r);if(F){if(F>C)throw new f(Ns);nn(E,d+20,F)}await $s(o,x),F&&await $s(o,r)})(this,e,r),tn(this,r,es)||await o.getWriter().close(),n.getData?n.getData():o}}function Js(e){if(e===$)return new p;{const t=new p(4);ln(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function Qs({compressedSize:e,uncompressedSize:t,offset:r,diskNumberStart:s,zip64UncompressedSize:n,zip64CompressedSize:i,zip64Offset:o,zip64DiskNumberStart:c,rawExtraFieldZip64:l}){const d=ln(l);let u=4;n&&(on(d,u,a(t)),u+=8),i&&(on(d,u,a(e)),u+=8),o&&(on(d,u,a(r)),u+=8),c&&an(d,u,s)}async function $s(e,t){const{writable:r}=e,s=r.getWriter();try{await s.ready,e.size+=dn(t),await s.write(t)}finally{s.releaseLock()}}function en(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function tn(e,t,r,s){const n=t[r]===$?e.options[r]:t[r];return n===$?s:n}function rn(e){return e+5*(i.floor(e/16383)+1)}function sn(e,t,r){e.setUint8(t,r)}function nn(e,t,r){e.setUint16(t,r,!0)}function an(e,t,r){e.setUint32(t,r,!0)}function on(e,t,r){e.setBigUint64(t,r,!0)}function cn(e,t,r){e.set(t,r)}function ln(e){return new m(e.buffer)}function dn(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function un({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:s,compressedSize:n,lastModDate:a,rawFilename:i,zip64CompressedSize:o,zip64UncompressedSize:c,extraFieldLength:l}){const d=new p(26),u=ln(d);nn(u,0,e),nn(u,2,t),nn(u,4,r);const f=new h(1),w=ln(f);nn(w,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),nn(w,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate());const m=f[0];return an(u,6,m),(o||n!==$)&&an(u,14,o?U:n),(c||s!==$)&&an(u,18,c?U:s),nn(u,22,dn(i)),nn(u,24,l),{headerArray:d,headerView:u,rawLastModDate:m}}function fn(e,t,r,s,n){let a=0;return t&&(a|=B),r&&(a|=8),8!=n&&9!=n||(0>e||e>3||(a|=6),e>3&&5>=e&&(a|=4),9==e&&(a|=2)),s&&(a|=1),a}try{oe({baseURI:void 0===S&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===S?location.href:v&&"SCRIPT"===v.tagName.toUpperCase()&&v.src||new u("zip-core.min.js",S.baseURI).href})}catch{}e.BlobReader=Bt,e.BlobWriter=qt,e.Data64URIReader=class extends Ht{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const s=e.indexOf(",")+1;r.assign(this,{dataURI:e,dataStart:s,size:i.floor(.75*(t-s))})}readUint8Array(e,t){const{dataStart:r,dataURI:s}=this,n=new p(t),a=4*i.floor(e/3),o=atob(s.substring(a+r,4*i.ceil((e+t)/3)+r)),c=e-3*i.floor(a/4);let l=0;for(let e=c;c+t>e&&e<o.length;e++)n[e-c]=o.charCodeAt(e),l++;return l<n.length?n.subarray(0,l):n}},e.Data64URIWriter=class extends Vt{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r=0,n=t.pending;const a=t.pending.length;for(t.pending="",r=0;r<3*i.floor((a+e.length)/3)-a;r++)n+=s.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=s.fromCharCode(e[r]);n.length&&(n.length>2?t.data+=E(n):t.pending+=n)}getData(){return this.data+E(this.pending)}},e.ERR_BAD_FORMAT=ns,e.ERR_CENTRAL_DIRECTORY_NOT_FOUND=os,e.ERR_DUPLICATED_NAME=Is,e.ERR_ENCRYPTED=ds,e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=is,e.ERR_EOCDR_NOT_FOUND=as,e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=ls,e.ERR_HTTP_RANGE=Nt,e.ERR_INVALID_COMMENT=Ns,e.ERR_INVALID_ENCRYPTION_STRENGTH=Ls,e.ERR_INVALID_ENTRY_COMMENT=Ws,e.ERR_INVALID_ENTRY_NAME=Ms,e.ERR_INVALID_EXTRAFIELD_DATA=Zs,e.ERR_INVALID_EXTRAFIELD_TYPE=Ps,e.ERR_INVALID_PASSWORD=be,e.ERR_INVALID_SIGNATURE=ze,e.ERR_INVALID_UNCOMPRESSED_SIZE=at,e.ERR_INVALID_VERSION=Os,e.ERR_LOCAL_FILE_HEADER_NOT_FOUND=cs,e.ERR_OVERLAPPING_ENTRY=ws,e.ERR_SPLIT_ZIP_FILE=ps,e.ERR_UNDEFINED_UNCOMPRESSED_SIZE=Vs,e.ERR_UNSUPPORTED_COMPRESSION=fs,e.ERR_UNSUPPORTED_ENCRYPTION=us,e.ERR_UNSUPPORTED_FORMAT=Hs,e.ERR_ZIP_NOT_EMPTY=Bs,e.HttpRangeReader=class extends ar{constructor(e,t={}){t.useRangeHeader=!0,super(e,t)}},e.HttpReader=ar,e.Reader=Ht,e.SplitDataReader=ir,e.SplitDataWriter=or,e.TextReader=class extends Bt{constructor(e){super(new g([e],{type:"text/plain"}))}},e.TextWriter=class extends qt{constructor(e){super(e),r.assign(this,{encoding:e,utf8:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,utf8:t}=this,s=await super.getData();if(s.text&&t)return s.text();{const t=new FileReader;return new y((n,a)=>{r.assign(t,{onload:({target:e})=>n(e.result),onerror:()=>a(t.error)}),t.readAsText(s,e)})}}},e.Uint8ArrayReader=class extends Ht{constructor(e){super(),e=new p(e.buffer,e.byteOffset,e.byteLength),r.assign(this,{array:e,size:e.length})}readUint8Array(e,t){return this.array.slice(e,e+t)}},e.Uint8ArrayWriter=class extends Vt{constructor(e){super(),this.defaultBufferSize=e||262144}init(e=0){r.assign(this,{offset:0,array:new p(e>0?e:this.defaultBufferSize)}),super.init()}writeUint8Array(e){const t=this,r=t.offset+e.length;if(r>t.array.length){let e=t.array.length?2*t.array.length:t.defaultBufferSize;for(;r>e;)e*=2;const s=t.array;t.array=new p(e),t.array.set(s)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}},e.Writer=Vt,e.ZipReader=bs,e.ZipReaderStream=class{constructor(e={}){const{readable:t,writable:r}=new F,s=new bs(t,e).getEntriesGenerator();this.readable=new R({async pull(e){const{done:t,value:r}=await s.next();if(t)return e.close();const n={...r,readable:(()=>{const{readable:e,writable:t}=new F;if(r.getData)return r.getData(t),e})()};delete n.getData,e.enqueue(n)}}),this.writable=r}},e.ZipWriter=Xs,e.ZipWriterStream=class{constructor(e={}){const{readable:t,writable:r}=new F;this.readable=t,this.zipWriter=new Xs(r,e)}transform(e){const{readable:t,writable:r}=new F({flush:()=>{this.zipWriter.close()}});return this.zipWriter.add(e,t),{readable:this.readable,writable:r}}writable(e){const{readable:t,writable:r}=new F;return this.zipWriter.add(e,t),r}close(e,t={}){return this.zipWriter.close(e,t)}},e.configure=oe,e.getMimeType=()=>"application/octet-stream",e.terminateWorkers=async()=>{await y.allSettled(At.map(e=>(Ct(e),e.terminate())))}});
@@ -2682,6 +2682,8 @@
2682
2682
  */
2683
2683
 
2684
2684
 
2685
+ const MODULE_WORKER_OPTIONS = { type: "module" };
2686
+
2685
2687
  let webWorkerSupported, webWorkerURI, webWorkerOptions;
2686
2688
  let transferStreamsSupported = true;
2687
2689
  let initModule = () => { };
@@ -2890,11 +2892,8 @@
2890
2892
  return { writable, closed };
2891
2893
  }
2892
2894
 
2893
- function getWebWorker(url, baseURI, workerData, isModuleType = false, useBlobURI = true) {
2895
+ function getWebWorker(url, baseURI, workerData, isModuleType, useBlobURI = true) {
2894
2896
  let worker, resolvedURI, resolvedOptions;
2895
- if (isModuleType) {
2896
- resolvedOptions = { type: "module" };
2897
- }
2898
2897
  if (webWorkerURI === UNDEFINED_VALUE) {
2899
2898
  // deno-lint-ignore valid-typeof
2900
2899
  const isFunctionURI = typeof url == FUNCTION_TYPE;
@@ -2906,6 +2905,12 @@
2906
2905
  const isDataURI = resolvedURI.startsWith("data:");
2907
2906
  const isBlobURI = resolvedURI.startsWith("blob:");
2908
2907
  if (isDataURI || isBlobURI) {
2908
+ if (isModuleType === UNDEFINED_VALUE) {
2909
+ isModuleType = false;
2910
+ }
2911
+ if (isModuleType) {
2912
+ resolvedOptions = MODULE_WORKER_OPTIONS;
2913
+ }
2909
2914
  try {
2910
2915
  worker = new Worker(resolvedURI, resolvedOptions);
2911
2916
  } catch (error) {
@@ -2925,6 +2930,12 @@
2925
2930
  }
2926
2931
  }
2927
2932
  } else {
2933
+ if (isModuleType === UNDEFINED_VALUE) {
2934
+ isModuleType = true;
2935
+ }
2936
+ if (isModuleType) {
2937
+ resolvedOptions = MODULE_WORKER_OPTIONS;
2938
+ }
2928
2939
  try {
2929
2940
  resolvedURI = new URL(resolvedURI, baseURI);
2930
2941
  } catch {
@@ -2934,7 +2945,7 @@
2934
2945
  worker = new Worker(resolvedURI, resolvedOptions);
2935
2946
  } catch (error) {
2936
2947
  if (!isModuleType) {
2937
- return getWebWorker(url, baseURI, workerData, true, useBlobURI);
2948
+ return getWebWorker(url, baseURI, workerData, false, useBlobURI);
2938
2949
  } else {
2939
2950
  throw error;
2940
2951
  }
@@ -4782,7 +4793,6 @@
4782
4793
  let writingBufferedEntryData;
4783
4794
  let writingEntryData;
4784
4795
  let fileWriter;
4785
- let blobPromise;
4786
4796
  files.set(name, fileEntry);
4787
4797
  try {
4788
4798
  let lockPreviousFileEntry;
@@ -4791,7 +4801,7 @@
4791
4801
  requestLockCurrentFileEntry();
4792
4802
  }
4793
4803
  if ((options.bufferedWrite || zipWriter.writerLocked || (zipWriter.bufferedWrites && keepOrder) || !dataDescriptor) && !usdz) {
4794
- fileWriter = new TransformStream();
4804
+ fileWriter = new TransformStream(undefined, undefined, { highWaterMark: Infinity });
4795
4805
  fileWriter.size = 0;
4796
4806
  bufferedWrite = true;
4797
4807
  zipWriter.bufferedWrites++;
@@ -4822,20 +4832,20 @@
4822
4832
  await skipDiskIfNeeded(writable);
4823
4833
  }
4824
4834
  const { diskNumber } = writer;
4825
- writingEntryData = true;
4826
4835
  fileEntry.diskNumberStart = diskNumber;
4827
- if (bufferedWrite) {
4828
- blobPromise = new Response(fileWriter.readable).blob();
4829
- } else {
4836
+ if (!bufferedWrite) {
4837
+ writingEntryData = true;
4830
4838
  await writeData(fileWriter, localHeaderArray);
4831
4839
  }
4832
4840
  fileEntry = await createFileEntry(reader, fileWriter, fileEntry, entryInfo, zipWriter.config, options);
4833
4841
  const { zip64 } = fileEntry;
4834
- writingEntryData = false;
4842
+ if (!bufferedWrite) {
4843
+ writingEntryData = false;
4844
+ }
4835
4845
  files.set(name, fileEntry);
4836
4846
  fileEntry.filename = name;
4837
4847
  if (bufferedWrite) {
4838
- const [blob] = await Promise.all([blobPromise, fileWriter.writable.getWriter().close(), lockPreviousFileEntry]);
4848
+ await Promise.all([fileWriter.writable.getWriter().close(), lockPreviousFileEntry]);
4839
4849
  await requestLockWriter();
4840
4850
  writingBufferedEntryData = true;
4841
4851
  fileEntry.diskNumberStart = writer.diskNumber;
@@ -4846,7 +4856,7 @@
4846
4856
  updateLocalHeader(fileEntry, localHeaderView, options);
4847
4857
  await skipDiskIfNeeded(writable);
4848
4858
  await writeData(writer, localHeaderArray);
4849
- await blob.stream().pipeTo(writable, { preventClose: true, preventAbort: true, signal });
4859
+ await fileWriter.readable.pipeTo(writable, { preventClose: true, preventAbort: true, signal });
4850
4860
  writer.size += fileWriter.size;
4851
4861
  writingBufferedEntryData = false;
4852
4862
  } else {
@@ -4861,7 +4871,7 @@
4861
4871
  zipWriter.offset += fileEntry.size;
4862
4872
  return fileEntry;
4863
4873
  } catch (error) {
4864
- if ((bufferedWrite && writingBufferedEntryData) || (!bufferedWrite && writingEntryData)) {
4874
+ if (writingBufferedEntryData || writingEntryData) {
4865
4875
  zipWriter.hasCorruptedEntries = true;
4866
4876
  if (error) {
4867
4877
  try {