@zip.js/zip.js 2.8.30 → 2.8.31

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.
Files changed (53) hide show
  1. package/deno.json +5 -4
  2. package/dist/zip-core.js +133 -334
  3. package/dist/zip-core.min.js +1 -1
  4. package/dist/zip-fs-core.js +115 -277
  5. package/dist/zip-fs-core.min.js +1 -1
  6. package/dist/zip-fs-native.js +170 -373
  7. package/dist/zip-fs-native.min.js +1 -1
  8. package/dist/zip-fs.js +169 -372
  9. package/dist/zip-fs.min.js +1 -1
  10. package/dist/zip-legacy.js +138 -339
  11. package/dist/zip-legacy.min.js +1 -1
  12. package/dist/zip-module.wasm +0 -0
  13. package/dist/zip-native.js +141 -342
  14. package/dist/zip-native.min.js +1 -1
  15. package/dist/zip-web-worker-native.js +1 -1
  16. package/dist/zip-web-worker.js +1 -1
  17. package/dist/zip.js +140 -341
  18. package/dist/zip.min.js +1 -1
  19. package/index-native.cjs +170 -373
  20. package/index-native.min.js +1 -1
  21. package/index.cjs +169 -372
  22. package/index.d.cts +2814 -0
  23. package/index.d.ts +238 -0
  24. package/index.min.js +1 -1
  25. package/lib/core/codec-worker.js +0 -10
  26. package/lib/core/configuration.js +21 -33
  27. package/lib/core/constants.js +3 -0
  28. package/lib/core/io.js +11 -19
  29. package/lib/core/streams/aes-crypto-stream.js +16 -20
  30. package/lib/core/streams/common-crypto.js +0 -2
  31. package/lib/core/streams/zip-crypto-stream.js +12 -16
  32. package/lib/core/streams/zip-entry-stream.js +2 -32
  33. package/lib/core/streams/zlib-js/zlib-streams.min.js +1 -1
  34. package/lib/core/streams/zlib-wasm/zlib-streams-loader.js +1 -3
  35. package/lib/core/streams/zlib-wasm/zlib-streams.wasm +0 -0
  36. package/lib/core/util/base64.js +68 -0
  37. package/lib/core/util/decode-text.js +0 -1
  38. package/lib/core/util/default-mime-type.js +0 -3
  39. package/lib/core/util/inflate.js +194 -0
  40. package/lib/core/util/mime-type.js +26 -22
  41. package/lib/core/util/opfs-temp-stream.js +1 -37
  42. package/lib/core/web-worker-inline-native.js +1 -1
  43. package/lib/core/web-worker-inline-template-native.js +5 -5
  44. package/lib/core/web-worker-inline-wasm.js +1 -1
  45. package/lib/core/zip-fs.js +6 -13
  46. package/lib/core/zip-reader.js +48 -127
  47. package/lib/core/zip-writer.js +27 -45
  48. package/lib/core/zlib-streams-inline-template.js +3 -2
  49. package/lib/core/zlib-streams-inline.js +1 -1
  50. package/lib/zip-core-base.js +3 -1
  51. package/package.json +9 -6
  52. package/reserved-property-names.js +50 -0
  53. package/lib/core/util/mini-lz.js +0 -198
@@ -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:n,Number:s,BigInt:a,Math:i,Date:o,Map:c,Set:l,Response:d,URL:u,Error:f,Uint8Array:w,Uint16Array:p,Uint32Array:h,DataView:m,Blob:g,Promise:y,TextEncoder:b,TextDecoder:S,document:z,crypto:x,btoa:E,TransformStream:F,ReadableStream:k,WritableStream:R,CompressionStream:D,DecompressionStream:A,navigator:v,Worker:T}="undefined"!=typeof globalThis?globalThis:this||self;var _=void 0!==z?z.currentScript:null;const C=4294967295,U=65535,O=255,I=67324752,N=134695760,M=N,W=33639248,L=101010256,P=101075792,H=117853008,Z=22,B=20,V=21589,q=2048,K=16384,j=2048,Y=1024,G="/",X=30,J=new o(2107,11,31),Q=new o(1980,0,1),$=void 0,ee=1/0,te="undefined",re="function";let ne=2;try{typeof v!=te&&v.hardwareConcurrency&&(ne=v.hardwareConcurrency)}catch{}const se={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:ne,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof D!=te&&D,DecompressionStream:typeof A!=te&&A},ae=r.assign({},se);function ie(){return ae}function oe(e){return i.max(e.chunkSize,64)}function ce(e){const{baseURI:t,chunkSize:r,maxWorkers:n,terminateWorkerTimeout:s,workerStarvationTimeout:a,useCompressionStream:i,useWebWorkers:o,CompressionStream:c,DecompressionStream:l,CompressionStreamZlib:d,DecompressionStreamZlib:u,workerURI:f,wasmURI:w}=e;le("baseURI",t),le("wasmURI",w),le("workerURI",f),le("chunkSize",r),le("maxWorkers",n),le("terminateWorkerTimeout",s),le("workerStarvationTimeout",a),le("useCompressionStream",i),le("useWebWorkers",o),le("CompressionStream",c),le("DecompressionStream",l),le("CompressionStreamZlib",d),le("DecompressionStreamZlib",u)}function le(e,t){t!==$&&(ae[e]=t)}const de=[[],[],[],[],[],[],[],[]];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)t=1&t?t>>>1^3988292384:t>>>1;de[0][e]=t}for(let e=0;256>e;e++)for(let t=1;8>t;t++){const r=de[t-1][e];de[t][e]=r>>>8^de[0][255&r]}const[ue,fe,we,pe,he,me,ge,ye]=de;class be{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;const r=0|e.length;let n=0;if(r>=8&&e.buffer){const s=new m(e.buffer,e.byteOffset,r),a=r-8;for(;a>=n;n+=8){const e=t^s.getInt32(n,!0),r=s.getInt32(n+4,!0);t=ye[255&e]^ge[e>>>8&255]^me[e>>>16&255]^he[e>>>24&255]^pe[255&r]^we[r>>>8&255]^fe[r>>>16&255]^ue[r>>>24&255]}}for(;r>n;n++)t=t>>>8^ue[255&(t^e[n])];this.crc=t}get(){return~this.crc}}class Se extends F{constructor(){let e;const t=new be;super({transform(e,r){t.append(e),r.enqueue(e)},flush(){const r=new w(4);new m(r.buffer).setUint32(0,t.get()),e.value=r}}),e=this}}function ze(e){if(typeof b==te){const t=new w((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 xe={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],n=xe.getPartial(r);return 32===n?e.concat(t):xe._shiftRight(t,n,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)+xe.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]=xe.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,n){for(void 0===n&&(n=[]);t>=32;t-=32)n.push(r),r=0;if(0===t)return n.concat(e);for(let s=0;s<e.length;s++)n.push(r|e[s]>>>t),r=e[s]<<32-t;const s=e.length?e[e.length-1]:0,a=xe.getPartial(s);return n.push(xe.partial(t+a&31,t+a>32?r:n.pop(),1)),n}},Ee={bytes:{fromBits(e){const t=xe.bitLength(e)/8,r=new w(t);let n;for(let s=0;t>s;s++)3&s||(n=e[s/4]),r[s]=n>>>24,n<<=8;return r},toBits(e){const t=[];let r,n=0;for(r=0;r<e.length;r++)n=n<<8|e[r],3&~r||(t.push(n),n=0);return 3&r&&t.push(xe.partial(8*(3&r),n)),t}}},Fe=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=Ee.utf8String.toBits(e));const r=t._buffer=xe.concat(t._buffer,e),n=t._length,s=t._length=n+xe.bitLength(e);if(s>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+n-(t.blockSize+n&t.blockSize-1);s>=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=xe.concat(t,[xe.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,n){return e>19?e>39?e>59?e>79?void 0:t^r^n:t&r|t&n|r&n:t^r^n:t&r|~t&n}_S(e,t){return t<<e|t>>>32-e}_block(e){const r=this,n=r._h,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let a=n[0],o=n[1],c=n[2],l=n[3],d=n[4];for(let e=0;79>=e;e++){16>e||(s[e]=r._S(1,s[e-3]^s[e-8]^s[e-14]^s[e-16]));const t=r._S(5,a)+r._f(e,o,c,l)+d+s[e]+r._key[i.floor(e/20)]|0;d=l,l=c,c=r._S(30,o),o=a,a=t}n[0]=n[0]+a|0,n[1]=n[1]+o|0,n[2]=n[2]+c|0,n[3]=n[3]+l|0,n[4]=n[4]+d|0}},ke={importKey:e=>new ke.hmacSha1(Ee.bytes.toBits(e)),pbkdf2(e,t,r,n){if(r=r||1e4,0>n||0>r)throw new f("invalid params to pbkdf2");const s=1+(n>>5)<<2;let a,i,o,c,l;const d=new ArrayBuffer(s),u=new m(d);let w=0;const p=xe;for(t=Ee.bytes.toBits(t),l=1;(s||1)>w;l++){for(a=i=e.encrypt(p.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;(s||1)>w&&o<a.length;o++)u.setInt32(w,a[o]),w+=4}return d.slice(0,n/8)},hmacSha1:class{constructor(e){const t=this,r=t._hash=Fe,n=[[],[]];t._baseHash=[new r,new r];const s=t._baseHash[0].blockSize/32;e.length>s&&(e=(new r).update(e).finalize());for(let t=0;s>t;t++)n[0][t]=909522486^e[t],n[1][t]=1549556828^e[t];t._baseHash[0].update(n[0]),t._baseHash[1].update(n[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)}}},Re=typeof x!=te&&typeof x.getRandomValues==re,De="Invalid password",Ae="Invalid signature",ve="zipjs-abort-check-password";function Te(e){if(Re)return x.getRandomValues(e);throw new f("Crypto API not supported")}const _e=16,Ce={name:"PBKDF2"},Ue=r.assign({hash:{name:"HMAC"}},Ce),Oe=r.assign({iterations:1e3,hash:{name:"SHA-1"}},Ce),Ie=["deriveBits"],Ne=[8,12,16],Me=[16,24,32],We=10,Le=[0,0,0,0],Pe=typeof x!=te,He=Pe&&x.subtle,Ze=Pe&&typeof He!=te,Be=Ee.bytes,Ve=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const r=t._tables[0][4],n=t._tables[1],s=e.length;let a,i,o,c=1;if(4!==s&&6!==s&&8!==s)throw new f("invalid aes key size");for(t._key=[i=e.slice(0),o=[]],a=s;4*s+28>a;a++){let e=i[a-1];(a%s===0||8===s&&a%s===4)&&(e=r[e>>>24]<<24^r[e>>16&255]<<16^r[e>>8&255]<<8^r[255&e],a%s===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),i[a]=i[a-s]^e}for(let e=0;a;e++,a--){const t=i[3&e?a:a-4];o[e]=4>=a||4>e?t:n[0][r[t>>>24]]^n[1][r[t>>16&255]]^n[2][r[t>>8&255]]^n[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],n=t[4],s=[],a=[];let i,o,c,l;for(let e=0;256>e;e++)a[(s[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,n[a]=d,l=s[c=s[o=s[d]]];let u=16843009*l^65537*c^257*o^16843008*d,f=257*s[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],n=r.length/4-2,s=[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,w,p,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;n>e;e++)u=i[h>>>24]^o[m>>16&255]^c[g>>8&255]^l[255&y]^r[b],w=i[m>>>24]^o[g>>16&255]^c[y>>8&255]^l[255&h]^r[b+1],p=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=w,g=p;for(let e=0;4>e;e++)s[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 s}},qe=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,n=255&e;255===t?(t=0,255===r?(r=0,255===n?n=0:++n):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=n}return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,r){let n;if(!(n=t.length))return[];const s=xe.bitLength(t);for(let s=0;n>s;s+=4){this.incCounter(r);const n=e.encrypt(r);t[s]^=n[0],t[s+1]^=n[1],t[s+2]^=n[2],t[s+3]^=n[3]}return xe.clamp(t,s)}},Ke=ke.hmacSha1;let je=Pe&&Ze&&typeof He.importKey==re,Ye=Pe&&Ze&&typeof He.deriveBits==re;class Ge extends F{constructor({password:e,rawPassword:t,encryptionStrength:n,checkPasswordOnly:s}){super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:$e(e,t),strength:n-1,pending:new w})},async transform(e,t){const r=this,{password:n,strength:a,resolveReady:i,ready:o}=r;n?(await(async(e,t,r,n)=>{const s=await Qe(e,t,r,tt(n,0,Ne[t])),a=tt(n,Ne[t]);if(s[0]!=a[0]||s[1]!=a[1])throw new f(De)})(r,a,n,tt(e,0,Ne[a]+2)),e=tt(e,Ne[a]+2),s?t.error(new f(ve)):i()):await o;const c=new w(e.length-We-(e.length-We)%_e);t.enqueue(Je(r,e,c,0,We,!0))},async flush(e){const{ctr:t,hmac:r,pending:n,ready:s}=this;if(r&&t){await s;const a=tt(n,0,n.length-We),i=tt(n,n.length-We);let o=new w;if(a.length){const e=nt(Be,a);r.update(e);const n=t.update(e);o=rt(Be,n)}const c=tt(rt(Be,r.digest()),0,We);let l=n.length<We?1:0;for(let e=0;We>e;e++)l|=c[e]^i[e];if(l)throw new f(Ae);e.enqueue(o)}}})}}class Xe extends F{constructor({password:e,rawPassword:t,encryptionStrength:n}){let s;super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:$e(e,t),strength:n-1,pending:new w})},async transform(e,t){const r=this,{password:n,strength:s,resolveReady:a,ready:i}=r;let o=new w;n?(o=await(async(e,t,r)=>{const n=Te(new w(Ne[t]));return et(n,await Qe(e,t,r,n))})(r,s,n),a()):await i;const c=new w(o.length+e.length-e.length%_e);c.set(o,0),t.enqueue(Je(r,e,c,o.length,0))},async flush(e){const{ctr:t,hmac:r,pending:n,ready:a}=this;if(r&&t){await a;let i=new w;if(n.length){const e=t.update(nt(Be,n));r.update(e),i=rt(Be,e)}s.signature=rt(Be,r.digest()).slice(0,We),e.enqueue(et(i,s.signature))}}}),s=this}}function Je(e,t,r,n,s,a){const{ctr:i,hmac:o,pending:c}=e;c.length&&(t=et(c,t));const l=t.length-s;let d;for(r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new w(t)).set(r,0)}return e})(r,n+(l-l%_e)),d=0;l-_e>=d;d+=_e){const e=nt(Be,tt(t,d,d+_e));a&&o.update(e);const s=i.update(e);a||o.update(s),r.set(rt(Be,s),d+n)}return e.pending=tt(t,d),r}async function Qe(e,n,s,a){e.password=null;const i=await(async(e,t,r,n,s)=>{if(!je)return ke.importKey(t);try{return await He.importKey("raw",t,r,!1,s)}catch{return je=!1,ke.importKey(t)}})(0,s,Ue,0,Ie),o=await(async(e,t,r)=>{if(!Ye)return ke.pbkdf2(t,e.salt,Oe.iterations,r);try{return await He.deriveBits(e,t,r)}catch{return Ye=!1,ke.pbkdf2(t,e.salt,Oe.iterations,r)}})(r.assign({salt:a},Oe),i,8*(2*Me[n]+2)),c=new w(o),l=nt(Be,tt(c,0,Me[n])),d=nt(Be,tt(c,Me[n],2*Me[n])),u=tt(c,2*Me[n]);return r.assign(e,{keys:{key:l,authentication:d,passwordVerification:u},ctr:new qe(new Ve(l),t.from(Le)),hmac:new Ke(d)}),u}function $e(e,t){return t===$?ze(e):t}function et(e,t){let r=e;return e.length+t.length&&(r=new w(e.length+t.length),r.set(e,0),r.set(t,e.length)),r}function tt(e,t,r){return e.subarray(t,r)}function rt(e,t){return e.fromBits(t)}function nt(e,t){return e.toBits(t)}class st extends F{constructor({password:e,rawPassword:t,passwordVerification:n,checkPasswordOnly:s}){super({start(){r.assign(this,{password:e,rawPassword:t,passwordVerification:n}),ct(this,e,t)},transform(e,t){const r=this;if(r.password||r.rawPassword){const t=it(r,e.subarray(0,12));if(r.password=r.rawPassword=null,0!=(t.at(-1)^r.passwordVerification))throw new f(De);e=e.subarray(12)}s?t.error(new f(ve)):t.enqueue(it(r,e))}})}}class at extends F{constructor({password:e,rawPassword:t,passwordVerification:n}){super({start(){r.assign(this,{password:e,rawPassword:t,passwordVerification:n}),ct(this,e,t)},transform(e,t){const r=this;let n,s;if(r.password||r.rawPassword){r.password=r.rawPassword=null;const t=Te(new w(12));t[11]=r.passwordVerification,n=new w(e.length+t.length),n.set(ot(r,t),0),s=12}else n=new w(e.length),s=0;n.set(ot(r,e),s),t.enqueue(n)}})}}function it(e,t){const r=new w(t.length);for(let n=0;n<t.length;n++)r[n]=dt(e)^t[n],lt(e,r[n]);return r}function ot(e,t){const r=new w(t.length);for(let n=0;n<t.length;n++)r[n]=dt(e)^t[n],lt(e,t[n]);return r}function ct(e,t,n){const s=[305419896,591751049,878082192];if(r.assign(e,{keys:s,crcKey0:new be(s[0]),crcKey2:new be(s[2])}),n)for(let t=0;t<n.length;t++)lt(e,n[t]);else for(let r=0;r<t.length;r++)lt(e,t.charCodeAt(r))}function lt(e,t){let[,r]=e.keys;e.crcKey0.append([t]);const n=~e.crcKey0.get();r=ft(i.imul(ft(r+ut(n)),134775813)+1),e.crcKey2.append([r>>>24]);const s=~e.crcKey2.get();e.keys=[n,r,s]}function dt(e){const t=2|e.keys[2];return ut(i.imul(t,1^t)>>>8)}function ut(e){return 255&e}function ft(e){return 4294967295&e}const wt="Invalid uncompressed size",pt="Invalid compressed data";class ht extends F{constructor(e,{chunkSize:t,CompressionStreamZlib:r,CompressionStream:n}){super({});const{compressed:s,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:c,level:l,deflate64:d}=e,u=this;let f,w,p,h=super.readable;const g=c&&s&&!d&&(!a||o)&&!(!i||!n);a&&!o||!c||g||(f=new Se,h=St(h,f)),s&&(g?(p=new mt,h=zt(h,new n("gzip")),h=St(h,p)):h=bt(h,i,{level:l,chunkSize:t},n,r,n)),a&&(o?h=St(h,new at(e)):(w=new Xe(e),h=St(h,w))),yt(u,h,()=>{let e;a&&!o&&(e=w.signature),a&&!o||!c||(e=g?p.signature:new m(f.value.buffer).getUint32(0)),u.signature=e})}}class mt extends F{constructor(){let e,t=10,r=new w(0);super({transform(e,n){if(t){const r=i.min(t,e.length);if(t-=r,!(e=e.subarray(r)).length)return}const s=r.length+e.length;if(8>=s){const t=new w(s);return t.set(r),t.set(e,r.length),void(r=t)}const a=s-8,o=new w(a),c=i.min(a,r.length);o.set(r.subarray(0,c),0),a>c&&o.set(e.subarray(0,a-c),c),n.enqueue(o);const l=new w(8),d=r.length-c;d&&l.set(r.subarray(c),0),l.set(e.subarray(a-c),d),r=l},flush(){const t=new m(r.buffer,r.byteOffset,r.byteLength);e.signature=t.getUint32(0,!0),e.uncompressedSize=t.getUint32(4,!0)}}),e=this}}class gt extends F{constructor(e,{chunkSize:t,DecompressionStreamZlib:r,DecompressionStream:n}){super({});const{zipCrypto:s,encrypted:a,signed:i,signature:o,compressed:c,useCompressionStream:l,deflate64:d}=e;let u,w,p=super.readable;a&&(s?p=St(p,new st(e)):(w=new Ge(e),p=St(p,w))),c&&(p=bt(p,l,{chunkSize:t,deflate64:d},n,r,n),p=(e=>{const t=e.getReader();return new k({async pull(e){let r;try{r=await t.read()}catch(e){if(e&&e.message)throw e;const t=new f(pt);throw t.cause=e,t}const{value:n,done:s}=r;s?e.close():e.enqueue(n)},cancel:e=>t.cancel(e)})})(p)),a&&!s||!i||(u=new Se,p=St(p,u)),yt(this,p,()=>{if((!a||s)&&i){const e=new m(u.value.buffer);if(o!=e.getUint32(0,!1))throw new f(Ae)}})}}function yt(e,t,n){t=St(t,new F({flush:n})),r.defineProperty(e,"readable",{get:()=>t})}function bt(e,t,r,n,s,a){const i=t&&n?n:s||a,o=r.deflate64?"deflate64-raw":"deflate-raw";let c;try{c=new i(o,r)}catch(e){if(!t)throw e;if(s)c=new s(o,r);else{if(!a)throw e;c=new a(o,r)}}return zt(e,c)}function St(e,t){return e.pipeThrough(t)}function zt(e,t){const r=t.writable.getWriter(),n=e.getReader();return(async()=>{try{for(;;){await r.ready;const e=await n.read();if(e.done){await r.close();break}await r.write(e.value)}}catch(e){await(async(e,t)=>{try{await e.abort(t)}catch{}})(r,e),await(async(e,t)=>{try{await e.cancel(t)}catch{}})(n,e)}})(),t.readable}const xt="data",Et="deflate",Ft="inflate";class kt extends F{constructor(e,t){super({});const n=this,{codecType:s}=e;let a;s.startsWith(Et)?a=ht:s.startsWith(Ft)&&(a=gt),n.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(n,{inputSize:i})}}),d=new F({transform(t,r){if(t&&t.length&&(r.enqueue(t),n.outputSize+=t.length,e.outputSize!==$&&n.outputSize>e.outputSize))throw new f(wt)},flush(){const{signature:e}=o;r.assign(n,{signature:e,inputSize:i})}});r.defineProperty(n,"readable",{get:()=>c.pipeThrough(l).pipeThrough(o).pipeThrough(d)})}}class Rt extends F{constructor(e){let t;1>e&&(e=65536),super({transform:(r,n)=>{if(t){const e=new w(t.length+r.length);e.set(t),e.set(r,t.length),r=e,t=null}let s=0;for(;r.length-s>e;)n.enqueue(r.slice(s,s+e)),s+=e;t=s?r.slice(s):r},flush(e){t&&t.length&&e.enqueue(t)}})}}const Dt={type:"module"},At="error";let vt,Tt,_t,Ct,Ut=!0;try{Ut=typeof structuredClone==re&&structuredClone(new DOMException("","AbortError")).code!==$}catch{}class Ot{constructor(e,{readable:t,writable:n},{options:s,config:a,streamOptions:i,useWebWorkers:o,transferStreams:c,workerURI:l},d){const{signal:u}=i;return r.assign(e,{busy:!0,generation:(e.generation||0)+1,readable:t.pipeThrough(new Rt(oe(a))).pipeThrough(new It(i),{signal:u}),writable:n,options:r.assign({},s),workerURI:l,transferStreams:c,terminate:()=>new y(t=>{const{worker:r,busy:n}=e;r?(n?e.resolveTerminated=t:(r.terminate(),t()),e.interface=null):t()}),onTaskFinished(){if(e.busy){const{resolveTerminated:t}=e;t&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),t()),e.busy=!1,d(e)}}}),vt===$&&(vt=typeof T!=te),(o&&vt?Wt:Mt)(e,a)}}class It extends F{constructor({onstart:e,onprogress:t,size:r,onend:n}){let s=0;super({async start(){e&&await Nt(e,r)},async transform(e,n){s+=e.length,t&&await Nt(t,s,r),n.enqueue(e)},async flush(){n&&await Nt(n,s)}})}}async function Nt(e,...t){try{await e(...t)}catch{}}function Mt(e,t){return{run:()=>(async({options:e,readable:t,writable:r,onTaskFinished:n},s)=>{let a;try{if(!e.useCompressionStream)try{await void 0}catch{const t=e.codecType.startsWith(Et)?s.CompressionStreamZlib:s.DecompressionStreamZlib;t&&!t.requiresModule||(e.useCompressionStream=!0)}a=new kt(e,s),await t.pipeThrough(a).pipeTo(r,{preventClose:!0,preventAbort:!0});const{signature:n,inputSize:i,outputSize:o}=a;return{signature:n,inputSize:i,outputSize:o}}catch(e){throw a&&(e.outputSize=a.outputSize),e}finally{n()}})(e,t)}}function Wt(e,t){const{baseURI:n,chunkSize:s}=t;let{wasmURI:a}=t;if(!e.interface){let i;typeof a==re&&(a=a());try{i=Pt(e.workerURI,n,e)}catch{return vt=!1,Mt(e,t)}r.assign(e,{worker:i,terminated:!1,interface:{run:()=>(async(e,t)=>{let n,s;const a=new y((e,t)=>{n=e,s=t});r.assign(e,{reader:null,writer:null,resolveResult:n,rejectResult:s,result:a});const{readable:i,options:o}=e,{writable:c,closed:l,abortPipe:d}=(e=>{const t=new AbortController,{writable:r,readable:n}=new F,s=n.pipeTo(e,{preventClose:!0,preventAbort:!0,signal:t.signal});return s.catch(()=>{}),{writable:r,closed:s,abortPipe:()=>t.abort()}})(e.writable);let u;try{u=Zt({type:"start",options:o,config:t,readable:i,writable:c},e)}catch(t){d();try{await l}catch{}throw e.onTaskFinished(),t}u||r.assign(e,{reader:i.getReader(),writer:c.getWriter()});try{const e=await a;return await f(),await l,e}catch(e){await f(),d();try{await l}catch{}throw e}async function f(){if(!u&&!c.locked)try{await c.getWriter().close()}catch{}}})(e,{chunkSize:s,wasmURI:a,baseURI:n})}})}return e.interface}function Lt(e){const{worker:t}=e;if(t)try{t.terminate()}catch{}e.interface=null}function Pt(e,t,n,s,a=!0){let i,o,c;if(_t===$||Tt!==e){const r=typeof e==re;o=r?e(a):e;const l=o.startsWith("data:"),d=o.startsWith("blob:");if(l||d){s===$&&(s=!1),s&&(c=Dt);try{i=new T(o,c)}catch(a){if(d)try{u.revokeObjectURL(o)}catch{}if(r&&d)return Pt(e,t,n,s,!1);if(s)throw a;return Pt(e,t,n,!0,!1)}}else{s===$&&(s=!0),s&&(c=Dt);try{o=new u(o,t)}catch{}try{i=new T(o,c)}catch(r){if(s)throw r;return Pt(e,t,n,!1,a)}}Tt=e,_t=o,Ct=c}else i=new T(_t,Ct);return i.addEventListener("message",e=>(async({data:e},t)=>{const{type:n,value:s,messageId:a,result:i,error:o}=e,{reader:c,writer:l,resolveResult:d,rejectResult:u,onTaskFinished:p,generation:h}=t,m=()=>t.generation!=h;try{if(o){const{message:e,stack:t,code:n,name:s,outputSize:a}=o,i=new f(e);r.assign(i,{stack:t,code:n,name:s,outputSize:a}),g(i)}else{if("pull"==n){const{value:e,done:r}=await c.read();m()||Zt({type:xt,value:e,done:r,messageId:a},t)}n==xt&&(await l.ready,await l.write(new w(s)),m()||Zt({type:"ack",messageId:a},t)),"close"==n&&g(null,i)}}catch(o){m()||(Lt(t),g(o))}function g(e,t){m()||(e?u(e):d(t),l&&l.releaseLock(),p())}})(e,n)),i.addEventListener(At,e=>Ht(e,n)),i.addEventListener("messageerror",e=>Ht(e,n)),i}function Ht(e,t){e.preventDefault&&e.preventDefault();const{rejectResult:r,writer:n,onTaskFinished:s}=t;Lt(t),r&&(r(e.error||new f(e.message||At)),n&&n.releaseLock(),s())}function Zt(e,{worker:t,writer:r,transferStreams:n}){try{const{value:r,readable:s,writable:a}=e,i=[];if(r&&(e.value=r,i.push(e.value.buffer)),n&&Ut?(s&&i.push(s),a&&i.push(a)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch{Ut=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),e}}let Bt=[];const Vt=[];let qt,Kt,jt=0;async function Yt(e,t){const{options:r,config:n}=t,{transferStreams:a,useWebWorkers:i,useCompressionStream:o,compressed:c,signed:l,encrypted:d}=r,{workerURI:u,maxWorkers:f}=n;t.transferStreams=a||a===$;const w=!(c||l||d||t.transferStreams);return t.useWebWorkers=!w&&(i||i===$&&n.useWebWorkers),t.workerURI=t.useWebWorkers&&u?u:$,r.useCompressionStream=o||o===$&&n.useCompressionStream,(await(async()=>{const r=Bt.find(e=>!e.busy);if(r)return $t(r),new Ot(r,e,t,p);if(Bt.length<f){const r={indexWorker:jt};return jt++,Bt.push(r),new Ot(r,e,t,p)}return new y(r=>{Vt.push({resolve:r,stream:e,workerOptions:t}),Kt=n.workerStarvationTimeout,Gt()})})()).run();function p(e){if(Xt(),Vt.length){const[{resolve:t,stream:r,workerOptions:n}]=Vt.splice(0,1);t(new Ot(e,r,n,p)),Gt()}else e.worker?($t(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:n}=r;s.isFinite(n)&&n>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{Bt=Bt.filter(t=>t!=e);try{await e.terminate()}catch{}},n))})(e,t)):Bt=Bt.filter(t=>t!=e)}}function Gt(){!qt&&Vt.length&&s.isFinite(Kt)&&Kt>=0&&(qt=setTimeout(Jt,Kt))}function Xt(){qt&&(clearTimeout(qt),qt=null)}function Jt(){if(qt=null,Vt.length){const[{resolve:e,stream:t,workerOptions:n}]=Vt.splice(0,1),s=r.assign({},n,{useWebWorkers:!1,workerURI:$});e(new Ot({},t,s,Qt)),Gt()}}function Qt(){Xt(),Gt()}function $t(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const er="HTTP error ",tr="HTTP Range not supported",rr="Content-Range",nr="Range",sr="GET",ar="bytes",ir=65536,or="writable";class cr{constructor(){this.size=0}init(){this.initialized=!0}}class lr extends cr{get readable(){const e=this,{chunkSize:t=ir}=e,r=new k({start(){this.chunkOffset=0},async pull(n){const{offset:s=0,size:a,diskNumberStart:o}=r,{chunkOffset:c}=this,l=a===$?t:i.min(t,a-c),d=await Cr(e,s+c,l,o);n.enqueue(d),c+t>a||a===$&&!d.length&&l?n.close():this.chunkOffset+=t}});return r}}class dr extends cr{constructor(){super();const e=this,t=new R({write(t){if(!e.initialized)throw new f("Writer not initialized");return e.writeUint8Array(t)}});r.defineProperty(e,or,{get:()=>t})}writeUint8Array(){}}class ur extends lr{constructor(e){super(),r.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const r=this,n=e+t,s=e||n<r.size?r.blob.slice(e,n):r.blob;let a=await s.arrayBuffer();return a.byteLength>t&&(a=a.slice(e,n)),new w(a)}}class fr extends cr{constructor(e){super();const t=this,n=new F,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(t,or,{get:()=>n.writable}),t.blob=new d(n.readable,{headers:s}).blob(),t.blob.catch(()=>{})}getData(){return this.blob}}class wr extends lr{constructor(e,t){super(),hr(this,e,t)}async init(){await mr(this,Fr,Sr),super.init()}readUint8Array(e,t){return gr(this,e,t,Fr,Sr)}}class pr extends lr{constructor(e,t){super(),hr(this,e,t)}async init(){await mr(this,kr,zr),super.init()}readUint8Array(e,t){return gr(this,e,t,kr,zr)}}function hr(e,t,n){const{preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o,fetch:c}=n;delete(n=r.assign({},n)).preventHeadRequest,delete n.useRangeHeader,delete n.forceRangeRequests,delete n.combineSizeEocd,delete n.useXHR,delete n.fetch,r.assign(e,{url:t,options:n,preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o,fetch:c})}async function mr(e,t,r){const{url:n,preventHeadRequest:a,useRangeHeader:i,forceRangeRequests:o,combineSizeEocd:c}=e;if((e=>{const{baseURI:t}=ie(),{protocol:r}=new u(e,t);return"http:"==r||"https:"==r})(n)&&(i||o)&&(void 0===a||a)){const n=await t(sr,e,yr(e,c?-22:void 0)),a=n.headers.get("Accept-Ranges");if(!(o||a&&a.toLowerCase()==ar))throw new f(tr);{if(c){const t=new w(await n.arrayBuffer());206==n.status&&t.length==Z&&(e.eocdCache=t)}let a;const i=n.headers.get(rr);if(i){const e=i.trim().split(/\s*\/\s*/);if(e.length){const t=e[1];t&&"*"!=t&&(a=s(t))}}a===$?await Er(e,t,r):e.size=a}}else await Er(e,t,r)}async function gr(e,t,r,n,a){const{useRangeHeader:i,forceRangeRequests:o,eocdCache:c,size:l,options:d}=e;if(i||o){if(c&&t==l-Z&&r==Z)return c;if(l>t&&0!==r){t+r>l&&(r=l-t);const a=await n(sr,e,yr(e,t,r));if(206!=a.status)throw new f(tr);const i=a.headers.get(rr);if(i){const e=s(i.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=t)throw new f(tr)}const o=new w(await a.arrayBuffer());if(o.length!=r)throw new f(tr);return o}return new w}{const{data:n}=e;return n||await a(e,d),new w(e.data.subarray(t,t+r))}}function yr(e,t=0,n=1){return r.assign({},br(e),{[nr]:ar+"="+(0>t?t:t+"-"+(t+n-1))})}function br({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function Sr(e){await xr(e,Fr)}async function zr(e){await xr(e,kr)}async function xr(e,t){const r=await t(sr,e,br(e));e.data=new w(await r.arrayBuffer()),e.size=e.data.length}async function Er(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const n=await t("HEAD",e,br(e)),a=n.headers.get("Content-Length");a&&!n.headers.get("Content-Encoding")?e.size=s(a):await r(e,e.options)}}async function Fr(e,{fetch:t=fetch,options:n,url:s},a){const i=await t(s,r.assign({},n,{method:e,headers:a}));if(400>i.status)return i;throw 416==i.status?new f(tr):new f(er+(i.statusText||i.status))}function kr(e,{url:t},n){return new y((s,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)}),s({status:i.status,arrayBuffer:()=>i.response,headers:new c(e)})}else a(416==i.status?new f(tr):new f(er+(i.statusText||i.status)))},!1),i.addEventListener("error",e=>a(e.detail?e.detail.error:new f("Network error")),!1),i.open(e,t),n)for(const e of r.entries(n))i.setRequestHeader(e[0],e[1]);i.responseType="arraybuffer",i.send()})}class Rr extends lr{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR&&!t.fetch?new pr(e,t):new wr(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 Dr extends lr{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,n)=>{await _r(r),n!=t.length-1&&(e.lastDiskOffset+=r.size),e.size+=r.size})),super.init()}async readUint8Array(e,t,r=0){const n=this,{readers:s}=this;let a,o=r;-1==o&&(o=s.length-1);let c=e;for(;s[o]&&c>=s[o].size;)c-=s[o].size,o++;const l=s[o];if(l){const s=l.size;if(c+t>s){const i=s-c;a=new w(t);const o=await Cr(l,c,i);a.set(o,0);const d=await n.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 Cr(l,c,t)}else a=new w;return n.lastDiskNumber=i.max(o,n.lastDiskNumber),a}}class Ar extends cr{constructor(e,t=4294967295){super();const n=this;let s,a,i;r.assign(n,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new R({async write(t){const{availableSize:r}=n;if(i)t.length<r?await c(t):(await c(t.subarray(0,r)),await l(),n.diskOffset+=s.size,n.diskNumber++,i=null,n.availableSize=n.maxSize,t.length>r&&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");s=r,s.size=0,s.maxSize&&(n.maxSize=s.maxSize),n.availableSize=n.maxSize,await _r(s),a=r.writable,i=a.getWriter(),await this.write(t)}},async close(){i&&(await i.ready,await l())},async abort(e){i&&await i.abort(e)}});async function c(e){const t=e.length;t&&(await i.ready,await i.write(e),s.size+=t,n.availableSize-=t)}async function l(){await i.close()}r.defineProperty(n,or,{get:()=>o})}}class vr{constructor(e){return t.isArray(e)&&(e=new Dr(e)),e instanceof k&&(e={readable:e}),e}}class Tr{constructor(e){return e.writable===$&&typeof e.next==re&&(e=new Ar(e)),e instanceof R&&(e={writable:e}),e.size===$&&(e.size=0),e instanceof Ar||r.assign(e,{diskNumber:0,diskOffset:0,availableSize:ee,maxSize:ee}),e}}async function _r(e,t){if(!e.init||e.initialized)return y.resolve();await e.init(t)}function Cr(e,t,r,n){return e.readUint8Array(t,r,n)}const Ur="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function Or(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 S(t,{ignoreBOM:!0}).decode(e)}const Ir="filename",Nr="rawFilename",Mr="comment",Wr="rawComment",Lr="uncompressedSize",Pr="compressedSize",Hr="offset",Zr="diskNumberStart",Br="lastModDate",Vr="rawLastModDate",qr="lastAccessDate",Kr="creationDate",jr="rawCreationDate",Yr="internalFileAttributes",Gr="externalFileAttributes",Xr="msdosAttributesRaw",Jr="msdosAttributes",Qr="msDosCompatible",$r="zip64",en="encrypted",tn="version",rn="versionMadeBy",nn="zipCrypto",sn="directory",an="executable",on="compressionMethod",cn="signature",ln="extraField",dn="unixMode",un="setuid",fn="setgid",wn="sticky",pn=[Ir,Nr,Lr,Pr,Br,Vr,Mr,Wr,qr,Kr,jr,Hr,Zr,Yr,Gr,Xr,Jr,Qr,$r,en,tn,rn,nn,sn,an,on,cn,ln,"extraFieldUnix","extraFieldInfoZip","uid","gid",dn,un,fn,wn,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class hn{constructor(e){pn.forEach(t=>this[t]=e[t])}}const mn="password",gn="rawPassword",yn="passThrough",bn="signal",Sn="checkAmbiguity",zn="useWebWorkers",xn="useCompressionStream",En="transferStreams",Fn="preventClose",kn="offset",Rn="strictness",Dn="strict",An="tolerant",vn="File format is not recognized",Tn="End of central directory not found",_n="End of Zip64 central directory locator not found",Cn="Central directory header not found",Un="Local file header not found",On="Zip64 extra field not found",In="File contains encrypted entry",Nn="Encryption method not supported",Mn="Compression method not supported",Wn="Split zip file",Ln="Overlapping entry found",Pn="Ambiguous archive",Hn="utf-8",Zn="cp437",Bn=[[Lr,C],[Pr,C],[Hr,C],[Zr,U]],Vn={[U]:{getValue:us,bytes:4},[C]:{getValue:fs,bytes:8}};class qn{constructor(e,t={}){r.assign(this,{reader:new vr(e),options:t,config:ie(),readRanges:new c})}async*getEntriesGenerator(e={}){const t=this;let{reader:n}=t;const{config:s}=t;if(await _r(n),n.size!==$&&n.readUint8Array||(n=new ur(await new d(n.readable).blob()),await _r(n)),n.size<Z)throw new f(vn);n.chunkSize=oe(s);const a=Qn(is(t,e,Rn),is(t,e,Sn)),o=a==Dn,c=a!=An,u=((e,t)=>e!==$?e:t==Dn?0:t==An?1/0:U)(is(t,e,"maxAppendedDataSize"),a),{endOfDirectoryInfo:p,endOfDirectoryReachingEndCount:h}=await(async(e,t,r)=>{const{size:n}=e,s=i.min(n,65557),a=n-s,o=await Cr(e,a,s),c=ws(o),l={count:$n};let d,u,f=0;for(let r=o.length-Z;r>=0;r--)if(us(c,r)==L){const s=a+r,i=ds(c,r+20);if(s+Z+i==n){const i=await ns(e,c,a,r,s,n,l);if(i==rs){if(d||(d={offset:s,buffer:o.slice(r,r+Z).buffer}),f++,!t||f>1)break}else i!=ts||u||(u={offset:s,buffer:o.slice(r,r+Z).buffer})}}return d||(d=u),d||(d=await(async(e,t,r)=>{const{size:n}=e,s=i.min(n,t==1/0?n:65557+t),a=n-s,o=await Cr(e,a,s),c=ws(o);let l,d;for(let t=o.length-Z;t>=0;t--)if(us(c,t)==L){const s=a+t,i={offset:s,buffer:o.slice(t,t+Z).buffer};l||(l=i);const u=await ns(e,c,a,t,s,n,r);if(u==rs)return i;u!=ts||d||(d=i)}return d||l})(e,r,l)),{endOfDirectoryInfo:d,endOfDirectoryReachingEndCount:f}})(n,c,u);if(!p)throw us(ws(await Cr(n,0,4)))==N?new f(Wn):new f(Tn);c&&h>1&&as("multiple end of central directory records");const m=ws(p);let g=us(m,12),b=us(m,16);const S=p.offset,z=ds(m,20),x=S+Z+z;n.size-x>u&&as("appended data");let E=ds(m,4);const k=n.lastDiskNumber||0;let R,D,A=ds(m,6),v=ds(m,10),T=0;if(b==C||g==C||v==U||A==U){const e=p.offset<B?new w:await Cr(n,p.offset-B,B),t=ws(e);if(e.length==B&&us(t,0)==H){b=fs(t,8);let e=await Cr(n,b,56,-1),r=ws(e);const s=p.offset-B-56-(n.lastDiskOffset||0);if((56>e.length||us(r,0)!=P)&&b!=s&&s>=0){const t=b;b=s,b>t&&(T=b-t),e=await Cr(n,b,56,-1),r=ws(e)}if(56>e.length||us(r,0)!=P)throw new f(_n);D=!0,E==U?E=us(r,16):o&&E!=us(r,16)&&as("mismatched zip64 end of central directory record"),A==U?A=us(r,20):o&&A!=us(r,20)&&as("mismatched zip64 end of central directory record"),v==U?v=fs(r,32):o&&v!=fs(r,32)&&as("mismatched zip64 end of central directory record"),g==C?g=fs(r,40):o&&g!=fs(r,40)&&as("mismatched zip64 end of central directory record"),b=fs(r,48)+T}}const _=g,I=p.offset-(D?76:0);if(b<n.size||(T=n.size-b-g-Z,b=n.size-g-Z),k!=E)throw new f(Wn);if(0>b)throw new f(vn);let M=0,V=await Cr(n,b,g,A),q=ws(V);if(g){if(4>V.length)throw new f(vn);const e=I-g-(n.lastDiskOffset||0);if(b!=e&&A==E){let t=!(us(q,M)==W);if(t||0>e||e+4>n.size||(t=us(ws(await Cr(n,e,4,A)),0)==W),t){const t=b;b=e,b>t&&(T+=b-t),V=await Cr(n,b,g,A),q=ws(V)}}}const X=I-b-(n.lastDiskOffset||0);if(g==X||0>X||A!=E||(g=X,V=await Cr(n,b,g,A),q=ws(V)),0>b||b>=n.size)throw new f(vn);R=b;const J=is(t,e,"filenameEncoding"),Q=is(t,e,"commentEncoding"),ee=o?new l:$;let te;for(let a=0;v>a;a++){const c=new Kn(n,s,t.options);if(M+46>V.length||us(q,M)!=W)throw new f(Cn);jn(c,q,M+6);const l=!!c.bitFlag.languageEncodingFlag,u=M+46,w=u+c.filenameLength,p=w+c.extraFieldLength,h=ds(q,M+4),m=!(h>>8),g=h>>8==3,b=V.subarray(u,w),S=ds(q,M+32),z=p+S,x=V.subarray(p,z),E=l,k=l,D=us(q,M+38),A=D&O,_={readOnly:!!(1&A),hidden:!!(2&A),system:!!(4&A),directory:!!(16&A),archive:!!(32&A)},C=us(q,M+42),I=is(t,e,"decodeText")||Or,N=E?Hn:J||Zn,L=k?Hn:Q||Zn;let P=I(b,N);P===$&&(P=Or(b,N));let H=I(x,L);H===$&&(H=Or(x,L)),r.assign(c,{index:a,versionMadeBy:h,msDosCompatible:m,compressedSize:0,uncompressedSize:0,commentLength:S,offset:C,diskNumberStart:ds(q,M+34),internalFileAttributes:ds(q,M+36),externalFileAttributes:D,msdosAttributesRaw:A,msdosAttributes:_,rawFilename:b,filenameUTF8:E,commentUTF8:k,rawExtraField:V.subarray(w,p),rawComment:x,filename:P,comment:H}),Yn(c,c,q,M+6),c.offset+=T,R=i.min(c.offset,R),o&&(ee.has(c.filename)&&(te=!0),ee.add(c.filename));const Z=c.externalFileAttributes>>16&U;c.unixMode===$&&16877&Z&&(c.unixMode=Z);const B=!!(c.unixMode&j),X=!!(c.unixMode&Y),re=!!(512&c.unixMode),ne=c.unixMode!==$?!!(73&c.unixMode):g&&!!(73&Z),se=c.unixMode!==$&&(61440&c.unixMode)==K,ae=(61440&Z)==K;r.assign(c,{setuid:B,setgid:X,sticky:re,unixExternalUpper:Z,internalFileAttribute:c.internalFileAttributes,externalFileAttribute:c.externalFileAttributes,executable:ne,directory:se||ae||m&&_.directory||c.filename.endsWith(G)&&!c.uncompressedSize,zipCrypto:c.encrypted&&!c.extraFieldAES});const ie=new hn(c);ie.getData=(e,r)=>c.getData(e,ie,t.readRanges,r),ie.arrayBuffer=async e=>{const r=new F,[n]=await y.all([new d(r.readable).arrayBuffer(),c.getData(r,ie,t.readRanges,e)]);return n},M=z;const{onprogress:oe}=e;if(oe)try{await oe(a+1,v,new hn(c))}catch{}yield ie}o&&M!=_&&as("trailing central directory data"),te&&as("duplicate filename"),o&&(T||v&&R>0)&&as("prepended data");const re=is(t,e,"extractPrependedData"),ne=is(t,e,"extractAppendedData");return re&&(t.prependedData=R>0?await Cr(n,0,R):new w),t.comment=z?await Cr(n,S+Z,z):new w,ne&&(t.appendedData=x<n.size?await Cr(n,x,n.size-x):new w),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}class Kn{constructor(e,t,n){r.assign(this,{reader:e,config:t,options:n})}async getData(e,t,n,s={}){const a=this,{reader:o,index:c,offset:l,diskNumberStart:d,extraFieldAES:u,extraFieldZip64:p,compressionMethod:h,config:m,bitFlag:g,signature:y,rawLastModDate:b,uncompressedSize:S,compressedSize:z}=a,{dataDescriptor:x}=g,E=t.localDirectory={},F=await Cr(o,l,X,d),k=ws(F);let D=is(a,s,mn),A=is(a,s,gn);const v=is(a,s,yn);if(D=D&&D.length&&D,A=A&&A.length&&A,u&&99!=u.originalCompressionMethod)throw new f(Mn);if(0!=h&&8!=h&&9!=h&&!v)throw new f(Mn);if(F.length<X||us(k,0)!=I)throw new f(Un);jn(E,k,4);const{extraFieldLength:T,filenameLength:_}=E,C=Qn(is(a,s,Rn),is(a,s,Sn))==Dn;let U=new w;if(C&&(_||T)){const e=await Cr(o,l+X,_+T,d);U=e.subarray(0,_),E.rawExtraField=e.subarray(_)}else E.rawExtraField=T?await Cr(o,l+X+_,T,d):new w;Yn(a,E,k,4,!0),C&&((e,t,r)=>{const{rawFilename:n}=e;(r.length!=n.length||r.some((e,t)=>e!=n[t]))&&as("mismatched local file header (filename)"),(2057&t.rawBitFlag)!=(2057&e.rawBitFlag)&&as("mismatched local file header (general purpose bit flag)"),t.compressionMethod!=e.compressionMethod&&as("mismatched local file header (compression method)"),t.bitFlag.dataDescriptor||!(t.signature||t.compressedSize||t.uncompressedSize)||t.signature==e.signature&&t.compressedSize==e.compressedSize&&t.uncompressedSize==e.uncompressedSize||as("mismatched local file header (signature or sizes)")})(a,E,U);const{lastAccessDate:N,creationDate:W}=E;N&&(t.lastAccessDate=N),W&&(t.creationDate=W);const L=a.encrypted&&E.encrypted&&!v,P=L&&!u;if(v||(t.zipCrypto=P),L){if(!P&&u.strength===$)throw new f(Nn);if(!D&&!A)throw new f(In)}const H=l+X+_+T,Z=z,B=o.readable;r.assign(B,{diskNumberStart:d,offset:H,size:Z});const V=is(a,s,bn),q=is(a,s,"checkPasswordOnly");let K=is(a,s,"checkOverlappingEntry");const j=is(a,s,"checkOverlappingEntryOnly");j&&(K=!0);const{onstart:Y,onprogress:G,onend:J}=s,Q=9==h;let ee=is(a,s,xn);Q&&(ee=!1);const te={options:{codecType:Ft,password:D,rawPassword:A,zipCrypto:P,encryptionStrength:u&&u.strength,signed:is(a,s,"checkSignature")&&!v,passwordVerification:P&&(x?b>>>8&O:y>>>24&O),outputSize:v?z:S,signature:y,compressed:0!=h&&!v,encrypted:L,useWebWorkers:is(a,s,zn),useCompressionStream:ee,transferStreams:is(a,s,En),deflate64:Q,checkPasswordOnly:q},config:m,streamOptions:{signal:V,size:Z,onstart:Y,onprogress:G,onend:J}};let re;K&&await(async({reader:e,fileEntry:t,index:r,offset:n,diskNumberStart:s,signature:a,compressedSize:o,uncompressedSize:c,dataOffset:l,dataDescriptor:d,extraFieldZip64:u,readRanges:w})=>{let p=0;if(s&&e.readers)for(let t=0;t<i.min(s,e.readers.length);t++)p+=e.readers[t].size;let h=0;if(d&&(h=u?20:12),h){const r=await Cr(e,l+o,h+4,s);if(r.length==h+4&&us(ws(r),0)==M){const e=us(ws(r),4);let n,s;u?(n=fs(ws(r),8),s=fs(ws(r),16)):(n=us(ws(r),8),s=us(ws(r),12)),(t.encrypted&&!t.zipCrypto||e==a)&&n==o&&s==c&&(h+=4)}}const m={start:p+n,end:p+l+o+h,fileEntry:t};for(const[e,t]of w)if(e!=r&&m.start<t.end&&t.start<m.end){const e=new f(Ln);throw e.overlappingEntry=t.fileEntry,e}w.set(r,m)})({reader:o,fileEntry:t,index:c,offset:l,diskNumberStart:d,signature:y,compressedSize:z,uncompressedSize:S,dataOffset:H,dataDescriptor:x||E.bitFlag.dataDescriptor,extraFieldZip64:p||E.extraFieldZip64,readRanges:n});try{if(!j){q&&(e=new R),e=new Tr(e),await _r(e,v?z:S),({writable:re}=e);const{outputSize:t}=await Yt({readable:B,writable:re},te);if(e.size+=t,t!=(v?z:S))throw new f(wt)}}catch(t){if(t.outputSize!==$&&(e.size+=t.outputSize),!q||t.message!=ve)throw t}finally{is(a,s,Fn)||!re||re.locked||await re.getWriter().close()}return q||j?$:e.getData?e.getData():re}}function jn(e,t,n){const s=e.rawBitFlag=ds(t,n+2),a=!(1&~s),i=us(t,n+6);r.assign(e,{encrypted:a,version:ds(t,n),bitFlag:{level:(6&s)>>1,dataDescriptor:!(8&~s),languageEncodingFlag:(s&q)==q},rawLastModDate:i,lastModDate:os(i),filenameLength:ds(t,n+22),extraFieldLength:ds(t,n+24)})}function Yn(e,t,n,s,a){const{rawExtraField:i}=t,l=t.extraField=new c,d=ws(new w(i));let u=0;try{for(;u<i.length;){const e=ds(d,u),t=ds(d,u+2);l.set(e,{type:e,data:i.slice(u+4,u+4+t)}),u+=4+t}}catch{}const p=ds(n,s+4);r.assign(t,{signature:us(n,s+10),compressedSize:us(n,s+14),uncompressedSize:us(n,s+18)});const h=l.get(1);h&&(((e,t)=>{t.zip64=!0;const r=ws(e.data),n=Bn.filter(([e,r])=>t[e]==r),s=n.reduce((e,[,t])=>e+Vn[t].bytes,0);if(e.data.length<s)throw new f(On);for(let s=0,a=0;s<n.length;s++){const[i,o]=n[s],c=Vn[o];t[i]=e[i]=c.getValue(r,a),a+=c.bytes}})(h,t),t.extraFieldZip64=h);const m=l.get(28789);m&&(Gn(m,Ir,Nr,t,e),t.extraFieldUnicodePath=m);const g=l.get(25461);g&&(Gn(g,Mr,Wr,t,e),t.extraFieldUnicodeComment=g);const y=l.get(39169);y&&y.data.length>=7?(((e,t,n)=>{const s=ws(e.data),a=ls(s,4);r.assign(e,{vendorVersion:ls(s,0),vendorId:ls(s,2),strength:a,originalCompressionMethod:n,compressionMethod:ds(s,5)}),t.compressionMethod=e.compressionMethod})(y,t,p),t.extraFieldAES=y):t.compressionMethod=p;const b=l.get(10);b&&(((e,t)=>{const n=ws(e.data);let s,a=4;try{for(;a<e.data.length&&!s;){const t=ds(n,a),r=ds(n,a+2);1==t&&(s=e.data.slice(a+4,a+4+r)),a+=4+r}}catch{}try{if(s&&24==s.length){const n=ws(s),a=n.getBigUint64(0,!0),i=n.getBigUint64(8,!0),o=n.getBigUint64(16,!0);r.assign(e,{rawLastModDate:a,rawLastAccessDate:i,rawCreationDate:o});const c={lastModDate:cs(a),lastAccessDate:cs(i),creationDate:cs(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(b,t),t.extraFieldNTFS=b);const S=l.get(30805);if(S)Xn(S,t,!1),t.extraFieldUnix=S;else{const e=l.get(30837);e&&(Xn(e,t,!0),t.extraFieldInfoZip=e)}const z=l.get(V);z&&(((e,t,r)=>{if(!e.data.length)return;const n=ws(e.data),s=ls(n,0),a=[],i=[];r?(1&~s||(a.push(Br),i.push(Vr)),2&~s||(a.push(qr),i.push("rawLastAccessDate")),4&~s||(a.push(Kr),i.push(jr))):5>e.data.length||(a.push(Br),i.push(Vr));let c=1;a.forEach((r,s)=>{if(e.data.length>=c+4){const a=us(n,c);t[r]=e[r]=new o(1e3*(0|a));const l=i[s];e[l]=a}c+=4})})(z,t,a),t.extraFieldExtendedTimestamp=z);const x=l.get(6534);x&&(t.extraFieldUSDZ=x)}function Gn(e,t,n,s,a){if(5>e.data.length)return void(e.valid=!1);const i=ws(e.data),o=new be;o.append(a[n]);const c=ws(new w(4));c.setUint32(0,o.get(),!0);const l=us(i,1);r.assign(e,{version:ls(i,0),[t]:Or(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==us(c,0)}),e.valid&&(s[t]=e[t],s[t+"UTF8"]=!0)}function Xn(e,t,n){try{const s=ws(new w(e.data));let a,i;if(n){let t=0;const n=ls(s,t++),o=ls(s,t++);a=Jn(e.data.subarray(t,t+o)),t+=o;const c=ls(s,t++);i=Jn(e.data.subarray(t,t+c)),r.assign(e,{version:n,uid:a,gid:i})}else 4>e.data.length||(a=ds(s,0),i=ds(s,2),r.assign(e,{uid:a,gid:i}));a!==$&&(t.uid=a),i!==$&&(t.gid=i)}catch{}}function Jn(e){const t=new w(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function Qn(e,t){return e===$?t?Dn:"balanced":e}const $n=64,es=0,ts=1,rs=2;async function ns(e,t,r,n,s,a,i){const o=ds(t,n+10),c=us(t,n+12),l=us(t,n+16);if(o==U||c==C||l==C)return await ss(e,t,r,s-B,a,i)==H?rs:es;if(!o&&!c)return ts;for(const n of[s-c,l])if(await ss(e,t,r,n,a,i)==W)return rs;return es}async function ss(e,t,r,n,s,a){return 0>n||n+4>s?$:r>n?a.count>0?(a.count--,us(ws(await Cr(e,n,4)),0)):$:us(t,n-r)}function as(e){const t=new f(Pn);throw t.reason=e,t}function is(e,t,r){return t[r]===$?e.options[r]:t[r]}function os(e){const t=(4294901760&e)>>16,r=e&U;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 cs(e){return new o(s(e/a(1e4)-a(116444736e5)))}function ls(e,t){return e.getUint8(t)}function ds(e,t){return e.getUint16(t,!0)}function us(e,t){return e.getUint32(t,!0)}function fs(e,t){return s(e.getBigUint64(t,!0))}function ws(e){return new m(e.buffer,e.byteOffset,e.byteLength)}const ps="File already exists",hs="Zip file comment exceeds 64KB",ms="File entry comment exceeds 64KB",gs="File entry name exceeds 64KB",ys="Version exceeds 65535",bs="The strength must equal 1, 2, or 3",Ss="Extra field type exceeds 65535",zs="Extra field data exceeds 64KB",xs=-2147483648,Es=2147483647,Fs="Zip64 is not supported (set the 'zip64' option to 'true')",ks="Undefined uncompressed size",Rs="Undefined reader",Ds="Zip file not empty",As=new w([7,0,2,0,65,69,3,0,0]),vs="infozip",Ts="unix";let _s=0;const Cs=[];class Us{constructor(e,t={}){const n=(e=new Tr(e)).availableSize!==$&&e.availableSize>0&&e.availableSize!==ee&&e.maxSize!==$&&e.maxSize>0&&e.maxSize!==ee;r.assign(this,{writer:e,addSplitZipSignature:n,options:t,config:ie(),files:new c,filenames:new l,offset:t[kn]===$?e.size||e.writable.size||0:t[kn],initialOffset:t[kn]===$?0:t[kn]-(e.size||e.writable.size||0),pendingAddFileCalls:new l,bufferedWrites:0,lastFileEntry:$})}async prependZip(e){if(this.filenames.size)throw new f(Ds);e=new vr(e),await _r(e);const t=new qn(e.readable),n=await t.getEntries();await t.close(),await _r(this.writer),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.filenames=new l(n.map(e=>e.filename)),this.files=new c(n.map(e=>{const{version:t,rawLastModDate:n,lastAccessDate:s,creationDate:a,rawFilename:i,bitFlag:o,encrypted:c,uncompressedSize:l,compressedSize:d,diskOffset:u,diskNumber:f,zip64:p}=e;let{compressionMethod:h,rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraFieldUnix:S,rawExtraField:z}=e;const{level:x,languageEncodingFlag:E,dataDescriptor:F}=o;m=m||new w,g=g||new w,y=y||new w,b=b||new w,S=S||new w,z=z||new w,e.extraFieldAES&&(h=99);const k=Js(m,g,y,b,S,z),R=p&&l>=C,D=p&&d>=C,A=-7&$s(x,E,F,c,h)|x<<1,{headerArray:v,headerView:T}=Qs({version:t,bitFlag:A,compressionMethod:h,uncompressedSize:l,compressedSize:d,rawLastModDate:n,rawFilename:i,zip64CompressedSize:D,zip64UncompressedSize:R,extraFieldLength:k}),{signature:_}=e;return _!==$&&js(T,10,_),r.assign(e,{zip64UncompressedSize:R,zip64CompressedSize:D,zip64Offset:p&&this.offset-u>=C,zip64DiskNumberStart:p&&f>=U,rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraFieldUnix:S,rawExtraField:z,extendedTimestamp:y.length>0||b.length>0,extraFieldExtendedTimestampFlag:1+(s?2:0)+(a?4:0),headerArray:v,headerView:T}),[e.filename,e]}))}async add(e="",t,n={}){const s=this;n=r.assign({},n);const{pendingAddFileCalls:i,config:c}=s;let l,d;_s<c.maxWorkers?_s++:await new y(e=>Cs.push(e));try{if(e=e.trim(),Vs(s,n,sn)&&!e.endsWith(G)&&(e+=G),s.filenames.has(e))throw new f(ps);return s.filenames.add(e),d=!0,l=(async(e,t,n,s)=>{const i=((e,t,r)=>{t=t.trim();let n=Vs(e,r,Qr),s=Vs(e,r,rn,n?20:768);const a=Vs(e,r,an),i=Vs(e,r,"uid"),o=Vs(e,r,"gid");let c=Vs(e,r,dn),l=Vs(e,r,"unixExtraFieldType"),d=Vs(e,r,un),u=Vs(e,r,fn),w=Vs(e,r,wn);if(i!==$&&(0>i||i>C))throw new f("Invalid uid (must be integer 0..2^32-1)");if(o!==$&&(0>o||o>C))throw new f("Invalid gid (must be integer 0..2^32-1)");if(c!==$&&(0>c||c>U))throw new f("Invalid UNIX mode (must be integer 0..65535)");if(l!==$&&l!==vs&&l!==Ts)throw new f("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");if(l===Ts&&(i!==$&&i>U||o!==$&&o>U))throw new f("uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)");l!==$||i===$&&o===$||(l=vs);let p=Vs(e,r,Xr),h=Vs(e,r,Jr);const m=p!==$||h!==$;if(i!==$||o!==$||c!==$||l?(n=!1,s=s&U|768):m&&(n=!0,s&=O),p!==$&&(0>p||p>O))throw new f("Invalid msdosAttributesRaw (must be integer 0..255)");if(h&&"object"!=typeof h)throw new f("Invalid msdosAttributes (must be an object with boolean flags)");if(s>U)throw new f(ys);let g=Vs(e,r,Gr,0);!r[sn]&&t.endsWith(G)&&(r[sn]=!0);const y=Vs(e,r,sn);let b;return y?(t.endsWith(G)||(t+=G),0===g&&(g=16,n||(g|=16877<<16))):n||0!==g||(g=a?493<<16:27525120),n||(b=g>>16&U,c=c===$?b:c&U,d?c|=j:d=!!(c&j),u?c|=Y:u=!!(c&Y),w?c|=512:w=!!(512&c),y&&(c|=K),g=(c&U)<<16|g&O),({msdosAttributesRaw:p,msdosAttributes:h}=((e,t)=>{if(e!==$)e&=O;else if(t!==$){const{readOnly:r,hidden:n,system:s,directory:a,archive:i}=t;let o=0;r&&(o|=1),n&&(o|=2),s&&(o|=4),a&&(o|=16),i&&(o|=32),e=o&O}return t===$&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(p,h)),m&&(g=g&C|p&O),{name:t,resolvedOptions:{versionMadeBy:s,msDosCompatible:n,externalFileAttributes:g,unixExternalUpper:b,uid:i,gid:o,unixMode:c,unixExtraFieldType:l,setuid:d,setgid:u,sticky:w,msdosAttributesRaw:p,msdosAttributes:h}}})(e,t,s);({name:t}=i);const c=((e,t,r)=>{const n=Vs(e,r,"encodeText",ze);let s=n(t);if(s===$&&(s=ze(t)),Js(s)>U)throw new f(gs);const a=r[Mr]||"";let i=n(a);if(i===$&&(i=ze(a)),Js(i)>U)throw new f(ms);const c=Vs(e,r,tn,20);if(c>U)throw new f(ys);const l=Vs(e,r,Br,new o),d=Vs(e,r,qr),u=Vs(e,r,Kr),p=Vs(e,r,Yr,0),h=Vs(e,r,yn);let m,g;h||(m=Vs(e,r,mn),g=Vs(e,r,gn));const y=Vs(e,r,"encryptionStrength",3),b=Vs(e,r,nn),S=Vs(e,r,"extendedTimestamp",!0),z=Vs(e,r,"keepOrder",!0),x=Vs(e,r,zn),E=Vs(e,r,En,!0),F=Vs(e,r,"bufferedWrite"),k=Vs(e,r,"createTempStream"),R=Vs(e,r,"dataDescriptorSignature",!0),D=Vs(e,r,bn),A=Vs(e,r,"useUnicodeFileNames",!0),v=Vs(e,r,on);if(!h&&v!==$&&0!==v&&8!==v)throw new f("Compression method not supported");let T=Vs(e,r,"level"),_=Vs(e,r,xn),C=Vs(e,r,"dataDescriptor");F&&C===$&&(C=!1),(C===$||b)&&(C=!0),T!==$&&6!=T&&(_=!1),_||e.config.CompressionStream!==$||e.config.CompressionStreamZlib!==$||(T=0);const O=Vs(e,r,$r);if(!b&&(m!==$||g!==$)&&(1>y||y>3))throw new f(bs);let I=new w;const N=r[ln];if(N){let e=0,t=0;N.forEach(t=>e+=4+Js(t)),I=new w(e);const r=Xs(I);N.forEach((e,n)=>{if(n>U)throw new f(Ss);if(Js(e)>U)throw new f(zs);Ks(r,t,n),Ks(r,t+2,Js(e)),Gs(I,e,t+4),t+=4+Js(e)})}return{comment:a,resolvedOptions:{rawFilename:s,rawComment:i,version:c,lastModDate:l,lastAccessDate:d,creationDate:u,internalFileAttributes:p,passThrough:h,password:m,rawPassword:g,encryptionStrength:y,zipCrypto:b,extendedTimestamp:S,keepOrder:z,useWebWorkers:x,transferStreams:E,bufferedWrite:F,createTempStream:k,dataDescriptorSignature:R,signal:D,useUnicodeFileNames:A,compressionMethod:v,level:T,useCompressionStream:_,dataDescriptor:C,zip64:O,rawExtraField:I}}})(e,t,s),{comment:l}=c,d=s[ln];let u;e.files.set(t,$);try{const o=await(async(e,t,{resolvedOptions:r},n)=>{const{passThrough:s,zipCrypto:a,password:i,rawPassword:o,encryptionStrength:c}=r;let{dataDescriptor:l,zip64:d,level:u,compressionMethod:w}=r,p=0,h=0;if(s){if(!t)throw new f(Rs);if(h=n[Lr],h===$)throw new f(ks)}const m=!0===d,g=Vs(e,n,en),y=!!t&&(!!(i&&Js(i)||o&&Js(o))||s&&g);t||(u=0,w=0);const b=y?a?12:16+4*c:0;t&&(t=new vr(t),await _r(t),s?(n.uncompressedSize=h,p=qs(h)+b):t.size===$?(l=!0,(d||d===$)&&(d=!0,h=p=4294967296)):(n.uncompressedSize=h=t.size,p=qs(h)+b));const S=m||h>=C,z=m||p>=C;if(S||z){if(!1===d)throw new f(Fs);d=!0}return d=d||!1,{reader:t,resolvedOptions:{dataDescriptor:l,zip64:d,zip64UncompressedSize:S,zip64CompressedSize:z,uncompressedSize:h,level:u,compressionMethod:w,encrypted:y}}})(e,n,c,s);({reader:n}=o);const{diskOffset:l,diskNumber:d}=e.writer,p=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:n,creationDate:s,level:a,zip64:i,zipCrypto:o,useUnicodeFileNames:c,dataDescriptor:l,directory:d,rawExtraField:u,encryptionStrength:p,extendedTimestamp:h,passThrough:m,encrypted:g,zip64UncompressedSize:y,zip64CompressedSize:b,uncompressedSize:S}=e;let{version:z,compressionMethod:x}=e;const E=!d&&(x===$?a===$||a>0:0!==x);let F;const k=m||!E,R=i&&(e.bufferedWrite||!l||!y&&!b||k),D=R||i&&l&&(y||b);if(i&&(y||b)){const e=20,t=Ms(e);if(t.uint16(1),t.uint16(e-4),F=t.array,R&&(t.uint64(S),k)){const e=g?o?12:16+4*p:0;t.uint64(m?0:S+e)}}else F=new w;let A,v,T,_,C;if(g&&!o){const e=Ms(Js(As)+2);e.uint16(39169),e.bytes(As),A=e.array,A[8]=p}else A=new w;if(h){const e=Hs(r);if(Zs(e)){const t=9+(n?4:0)+(s?4:0),r=Ms(t);_=1+(n?2:0)+(s?4:0),r.uint16(V),r.uint16(t-4),r.uint8(_),r.uint32(e),n&&r.uint32(Bs(Hs(n))),s&&r.uint32(Bs(Hs(s))),T=r.array}else T=new w;try{const e=Ps(r),t=Ms(36);t.uint16(10),t.uint16(32),t.skip(4),t.uint16(1),t.uint16(24),t.uint64(e),t.uint64(Ps(n)||e),t.uint64(Ps(s)||e),v=t.array}catch{v=new w}}else v=T=new w;try{const{uid:t,gid:r,unixExtraFieldType:n}=e;if(n!=vs||t===$&&r===$)if(n!=Ts||t===$&&r===$)C=new w;else{const e=Ms(8);e.uint16(30805),e.uint16(4),e.uint16((t===$?0:t)&U),e.uint16((r===$?0:r)&U),C=e.array}else{const e=Ns(t),n=Ns(r),s=3+e.length+n.length,a=Ms(4+s);a.uint16(30837),a.uint16(s),a.uint8(1),a.uint8(e.length),a.bytes(e),a.uint8(n.length),a.bytes(n),C=a.array}}catch{C=new w}x===$&&(x=E?8:0),i&&(z=z>45?z:45),g&&!o&&(z=z>51?z:51,A[9]=x,x=99);const O=D?Js(F):0,N=O+Js(A,T,v,C,u);if(N>U)throw new f(zs);const{headerArray:M,headerView:W,rawLastModDate:L}=Qs({version:z,bitFlag:$s(a,c,l,g,x),compressionMethod:x,uncompressedSize:S,lastModDate:Q>r?Q:r>J?J:r,rawFilename:t,zip64CompressedSize:b,zip64UncompressedSize:y,extraFieldLength:N}),P=Ms(X+Js(t)+N),H=P.array,Z=Xs(H);return P.uint32(I),P.bytes(M),P.bytes(t),D&&P.bytes(F),P.bytes(A),P.bytes(T),P.bytes(v),P.bytes(C),P.bytes(u),l&&(b||js(Z,18,0),y||js(Z,22,0)),{localHeaderArray:H,localHeaderView:Z,headerArray:M,headerView:W,lastModDate:r,rawLastModDate:L,encrypted:g,compressed:E,version:z,compressionMethod:x,extraFieldExtendedTimestampFlag:_,rawExtraFieldZip64:new w,localExtraFieldZip64Length:O,rawExtraFieldExtendedTimestamp:T,rawExtraFieldNTFS:v,rawExtraFieldUnix:C,rawExtraFieldAES:A,extraFieldLength:N}})(s=r.assign({},s,i.resolvedOptions,c.resolvedOptions,o.resolvedOptions,{internalFileAttribute:c.resolvedOptions.internalFileAttributes,externalFileAttribute:i.resolvedOptions.externalFileAttributes,signature:s[cn],offset:e.offset-l,diskNumberStart:d})),h=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:r})=>{let n,s=new w,a=0,i=e?20:12;return r&&(i+=4),t&&(s=new w(i),n=Xs(s),r&&(a=4,js(n,0,M))),{dataDescriptorArray:s,dataDescriptorView:n,dataDescriptorOffset:a}})(s),m=Js(p.localHeaderArray,h.dataDescriptorArray);u=await(async(e,t,n,s,i)=>{const{files:o,writer:c}=e,{keepOrder:l,dataDescriptor:d,signal:u}=i,{headerInfo:p}=s,h=e.options.usdz,m=e.lastFileEntry;let g,b,S,z,x,E,k,D={},A=0;o.set(t,D),e.lastFileEntry=D;try{let b;l&&(b=m&&m.lock,D.lock=new y(e=>S=e)),i.bufferedWrite||!l||e.writerLocked||e.bufferedWrites||!d?(g=!0,e.bufferedWrites++,k=i.createTempStream?await i.createTempStream():new F($,$,{highWaterMark:ee}),k.size=0,await _r(c)):(k=c,await v()),await _r(k);const{diskOffset:_}=c;if(e.addSplitZipSignature){delete e.addSplitZipSignature;const t=new w(4);js(Xs(t),0,N),await Ls(c,t),e.offset+=4}h&&!g&&Is(s,e.offset-_);const{localHeaderArray:U}=p;g||(await b,await T());const I=c.diskNumber,M=Ws(e,c);if(D.diskNumberStart=I,g||(x=!0,E=c.size,await Ls(k,U)),D=await(async(e,t,{diskNumberStart:n,lock:s},i,o,c)=>{const{headerInfo:l,dataDescriptorInfo:d,metadataSize:u}=i,{headerArray:w,headerView:p,lastModDate:h,rawLastModDate:m,encrypted:g,compressed:y,version:b,compressionMethod:S,rawExtraFieldZip64:z,localExtraFieldZip64Length:x,rawExtraFieldExtendedTimestamp:E,extraFieldExtendedTimestampFlag:F,rawExtraFieldNTFS:k,rawExtraFieldUnix:R,rawExtraFieldAES:D}=l,{dataDescriptorArray:A}=d,{rawFilename:v,lastAccessDate:T,creationDate:_,password:U,rawPassword:I,level:N,zip64:M,zip64UncompressedSize:W,zip64CompressedSize:L,zipCrypto:P,dataDescriptor:H,directory:Z,executable:B,versionMadeBy:V,rawComment:q,rawExtraField:K,useWebWorkers:j,transferStreams:Y,onstart:G,onprogress:X,onend:J,signal:Q,encryptionStrength:ee,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:ne,externalFileAttributes:se,uid:ae,gid:ie,unixMode:ce,setuid:le,setgid:de,sticky:ue,unixExternalUpper:fe,msdosAttributesRaw:we,msdosAttributes:pe,useCompressionStream:he,passThrough:me}=c,ge={lock:s,versionMadeBy:V,zip64:M,directory:!!Z,executable:!!B,filenameUTF8:!0,rawFilename:v,commentUTF8:!0,rawComment:q,rawExtraFieldZip64:z,localExtraFieldZip64Length:x,rawExtraFieldExtendedTimestamp:E,rawExtraFieldNTFS:k,rawExtraFieldUnix:R,rawExtraFieldAES:D,rawExtraField:K,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:ne,externalFileAttributes:se,diskNumberStart:n,uid:ae,gid:ie,unixMode:ce,setuid:le,setgid:de,sticky:ue,unixExternalUpper:fe,msdosAttributesRaw:we,msdosAttributes:pe};let{signature:ye,uncompressedSize:be}=c,Se=0;me||(be=0);const{writable:ze}=t;if(e){e.chunkSize=oe(o);const r=e.readable,n=e.size,s={options:{codecType:Et,level:N,rawPassword:I,password:U,encryptionStrength:ee,zipCrypto:g&&P,passwordVerification:g&&P&&m>>8&O,signed:!me,compressed:y&&!me,encrypted:g&&!me,useWebWorkers:j,useCompressionStream:he,transferStreams:Y},config:o,streamOptions:{signal:Q,size:n,onstart:G,onprogress:X,onend:J}};try{const e=await Yt({readable:r,writable:ze},s);if(Se=e.outputSize,t.size+=Se,me||(be=e.inputSize,ye=e.signature),!L&&Se>=C||!W&&be>=C)throw new f(Fs)}catch(e){throw e.outputSize!==$&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:r,headerInfo:n,dataDescriptorInfo:s},{zip64:i,zipCrypto:o,dataDescriptor:c})=>{const{headerView:l,encrypted:d}=n,{dataDescriptorView:u,dataDescriptorOffset:f}=s;d&&!o||e===$||(js(l,10,e),c&&js(u,f,e)),i?c&&(Ys(u,f+4,a(t)),Ys(u,f+12,a(r))):(js(l,14,t),js(l,18,r),c&&(js(u,f+4,t),js(u,f+8,r)))})({signature:ye,compressedSize:Se,uncompressedSize:be,headerInfo:l,dataDescriptorInfo:d},c),H&&await Ls(t,A),r.assign(ge,{uncompressedSize:be,compressedSize:Se,lastModDate:h,rawLastModDate:m,creationDate:_,lastAccessDate:T,encrypted:g,zipCrypto:P,size:u+Se,compressionMethod:S,version:b,headerArray:w,headerView:p,signature:ye,extraFieldExtendedTimestampFlag:F,zip64UncompressedSize:W,zip64CompressedSize:L}),ge})(n,k,D,s,e.config,i),g||(x=!1),o.set(t,D),D.filename=t,g){if(await y.all([k.writable.getWriter().close(),b]),await v(),z=!0,E=c.size,await T(),D.diskNumberStart=c.diskNumber,D.offset=Ws(e,c),h){const t=s.metadataSize;Is(s,e.offset-c.diskOffset),D.size+=s.metadataSize-t}(({rawFilename:e,encrypted:t,zip64:r,localExtraFieldZip64Length:n,signature:s,compressedSize:i,uncompressedSize:o,zip64UncompressedSize:c,zip64CompressedSize:l},d,{dataDescriptor:u})=>{if(u||(t||js(d,14,s),l||js(d,18,i),c||js(d,22,o)),r&&n){const t=X+Js(e)+4;Ys(d,t,a(o)),Ys(d,t+8,a(i))}})(D,p.localHeaderView,i),await Ls(c,p.localHeaderArray),await(async(e,t,r)=>{const n=t.writable.getWriter();try{await e.pipeTo(new R({async write(e){var t;await n.ready,await n.write(e),t=Js(e),A+=t}}),{preventClose:!0,preventAbort:!0,signal:r})}finally{n.releaseLock()}})(k.readable,c,u),c.size+=k.size,z=!1}else D.diskNumberStart=I,D.offset=M;return e.offset+=D.size,D}catch(r){if(z||x){if(e.hasCorruptedEntries=!0,r)try{r.corruptedEntry=!0}catch{}e.offset+=c.size-E,g&&(e.offset+=A)}throw o.delete(t),r}finally{if(g&&e.bufferedWrites--,S&&S(),b&&b(),g&&k&&k.dispose)try{await k.dispose()}catch{}}async function v(){e.writerLocked=!0;const{lockWriter:t}=e;e.lockWriter=new y(t=>b=()=>{e.writerLocked=!1,t()}),await t}async function T(){Js(p.localHeaderArray)>c.availableSize&&(c.availableSize=0,await Ls(c,new w))}})(e,t,n,{headerInfo:p,dataDescriptorInfo:h,metadataSize:m},s)}catch(r){throw e.files.delete(t),r}return r.assign(u,{name:t,comment:l,extraField:d}),new hn(u)})(s,e,t,n),i.add(l),await l}catch(t){throw d&&s.filenames.delete(e),t}finally{i.delete(l);const e=Cs.shift();e?e():_s--}}remove(e){const{filenames:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==$){const{filename:n}=e;if(t.has(n)&&r.has(n))return t.delete(n),r.delete(n),!0}return!1}async close(e=new w,r={}){const{pendingAddFileCalls:n,writer:s}=this,{writable:i}=s;if(Js(e)>U)throw new f(hs);for(;n.size;)await y.allSettled(t.from(n));return await(async(e,r,n)=>{const s=(e=>{let t=0;for(const[,r]of e){const{rawFilename:e,rawExtraFieldAES:n,rawComment:s,rawExtraFieldNTFS:a,rawExtraFieldUnix:i,rawExtraField:o,extendedTimestamp:c,extraFieldExtendedTimestampFlag:l,lastModDate:d,zip64UncompressedSize:u,zip64CompressedSize:p,uncompressedSize:h,compressedSize:m}=r,g=r.offset>=C,y=r.diskNumberStart>=U;let b,S;if(g||y||u||p){const e=4+(u?8:0)+(p?8:0)+(g?8:0)+(y?4:0),t=Ms(e);t.uint16(1),t.uint16(e-4),u&&t.uint64(h),p&&t.uint64(m),g&&t.uint64(r.offset),y&&t.uint32(r.diskNumberStart),b=t.array}else b=new w;r.rawExtraFieldZip64=b,r.zip64Offset=g,r.zip64DiskNumberStart=y;const z=Hs(d);if(c&&Zs(z)){const e=Ms(9);e.uint16(V),e.uint16(5),e.uint8(l),e.uint32(z),S=e.array}else S=new w;r.rawExtraFieldExtendedTimestamp=S;const x=Js(b,n,a,i,S,o);if(x>U)throw new f(zs);t+=46+Js(e,s)+x}return t})(e.files),{cdStartDiskNumber:i,cdStartDiskOffset:o}=await(async(e,r,n)=>{const{files:s,writer:a}=e,i=new w(r);await _r(a);let o=0,c=0,l=a.diskNumber,d=a.diskOffset;for(const[e,r]of t.from(s.values()).entries()){const{offset:t,rawFilename:u,rawExtraFieldZip64:f,rawExtraFieldAES:p,rawExtraFieldExtendedTimestamp:h,rawExtraFieldNTFS:m,rawExtraFieldUnix:g,rawExtraField:y,rawComment:b,versionMadeBy:S,headerArray:z,headerView:x,zip64UncompressedSize:E,zip64CompressedSize:F,zip64DiskNumberStart:k,zip64Offset:R,internalFileAttributes:D,externalFileAttributes:A,diskNumberStart:v,uncompressedSize:T,compressedSize:_}=r,O=Js(f,p,h,m,g,y),I=46+Js(u,b)+O;o+I-c>a.availableSize&&(await Ls(a,i.slice(c,o)),c=o,a.availableSize=0,await Ls(a,new w)),0==e&&(l=a.diskNumber,d=a.diskOffset),E||js(x,18,T),F||js(x,14,_),(R||k)&&45>r.version&&Ks(x,0,45);const N=Ms(I);if(N.uint32(W),N.uint16(S),N.bytes(z.subarray(0,24)),N.uint16(O),N.uint16(Js(b)),N.uint16(k?U:v),N.uint16(D),N.uint32(A),N.uint32(R?C:t),N.bytes(u),N.bytes(f),N.bytes(p),N.bytes(h),N.bytes(m),N.bytes(g),N.bytes(y),N.bytes(b),Gs(i,N.array,o),o+=I,n.onprogress)try{await n.onprogress(e+1,s.size,new hn(r))}catch{}}return await Ls(a,c?i.slice(c):i),{cdStartDiskNumber:l,cdStartDiskOffset:d}})(e,s,n);await(async(e,t,r,n)=>{const{writer:s}=e,{cdStartDiskNumber:i,cdStartDiskOffset:o}=n;let{directoryDataLength:c}=n,l=e.files.size,d=i,u=e.offset-o-(i?e.initialOffset:0),p=s.diskNumber;s.availableSize<Z&&p++;let h=Vs(e,r,$r);if(!(C>u&&C>c&&U>l&&U>p)){if(!1===h)throw new f(Fs);h=!0}const m=Js(t);if(m>U)throw new f(hs);const g=Ms(h?98:Z);Js(g.array)+m>s.availableSize&&(s.availableSize=0,await Ls(s,new w)),p=s.diskNumber,h&&(g.uint32(P),g.uint64(44),g.uint16(45),g.uint16(45),g.uint32(p),g.uint32(d),g.uint64(l),g.uint64(l),g.uint64(c),g.uint64(u),g.uint32(H),g.uint32(p),g.uint64(a(e.offset)+a(c)-a(s.diskOffset)-a(s.diskNumber?e.initialOffset:0)),g.uint32(p+1),Vs(e,r,"supportZip64SplitFile",!0)&&(p=U,d=U),l=U,u=C,c=C),g.uint32(L),g.uint16(p),g.uint16(d),g.uint16(l),g.uint16(l),g.uint32(c),g.uint32(u),g.uint16(m),await Ls(s,g.array),m&&await Ls(s,t)})(e,r,n,{cdStartDiskNumber:i,cdStartDiskOffset:o,directoryDataLength:s})})(this,e,r),Vs(this,r,Fn)||await i.getWriter().close(),s.getData?s.getData():i}}function Os(e,t,r){e.pendingAddFileCalls.add(t),t.catch(e=>{try{r(e)}catch{}})}function Is(e,t){const{headerInfo:r}=e;let n,{localHeaderArray:s,extraFieldLength:a}=r,i=64-(t+Js(s))%64;4>i&&(i+=64);const o=new w(i),c=Xs(o);Ks(c,0,6534),Ks(c,2,i-4);const l=s;r.localHeaderArray=s=new w(Js(l)+i),Gs(s,l),Gs(s,o,Js(l)),n=Xs(s),Ks(n,28,a+i),r.localHeaderView=n,e.metadataSize+=i}function Ns(e){if(e===$)return new w;{const t=new w(4);Xs(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function Ms(e){const t=new w(e),r=Xs(t);let n=0;return{array:t,uint8:e=>{((e,t,r)=>{e.setUint8(t,r)})(r,n,e),n+=1},uint16:e=>{Ks(r,n,e),n+=2},uint32:e=>{js(r,n,e),n+=4},uint64:e=>{Ys(r,n,a(e)),n+=8},bytes:e=>{Gs(t,e,n),n+=Js(e)},skip:e=>n+=e}}function Ws(e,t){return e.offset-t.diskOffset-(t.diskNumber?e.initialOffset:0)}async function Ls(e,t){const{writable:r}=e,n=r.getWriter();try{await n.ready,e.size+=Js(t),await n.write(t)}finally{n.releaseLock()}}function Ps(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function Hs(e){return i.floor(e.getTime()/1e3)}function Zs(e){return e>=xs&&Es>=e}function Bs(e){return i.min(Es,i.max(xs,e))}function Vs(e,t,r,n){const s=t[r]===$?e.options[r]:t[r];return s===$?n:s}function qs(e){return e+5*(i.floor(e/16383)+1)}function Ks(e,t,r){e.setUint16(t,r,!0)}function js(e,t,r){e.setUint32(t,r,!0)}function Ys(e,t,r){e.setBigUint64(t,r,!0)}function Gs(e,t,r){e.set(t,r)}function Xs(e){return new m(e.buffer,e.byteOffset,e.byteLength)}function Js(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function Qs({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:n,compressedSize:s,lastModDate:a,rawLastModDate:i,rawFilename:o,zip64CompressedSize:c,zip64UncompressedSize:l,extraFieldLength:d}){const u=Ms(26),f=u.array,w=Xs(f);if(u.uint16(e),u.uint16(t),u.uint16(r),i===$){const e=new h(1),t=Xs(e);Ks(t,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),Ks(t,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate()),i=e[0]}return u.uint32(i),u.skip(4),c||s!==$?u.uint32(c?C:s):u.skip(4),l||n!==$?u.uint32(l?C:n):u.skip(4),u.uint16(Js(o)),u.uint16(d),{headerArray:f,headerView:w,rawLastModDate:i}}function $s(e,t,r,n,s){let a=0;return t&&(a|=q),r&&(a|=8),8!=s&&9!=s||(0>e||e>3||(a|=6),e>3&&5>=e&&(a|=4),9==e&&(a|=2)),n&&(a|=1),a}const ea=1048576,ta=".zip.js-temp";try{ce({baseURI:void 0===z&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===z?location.href:_&&"SCRIPT"===_.tagName.toUpperCase()&&_.src||new u("zip-core.min.js",z.baseURI).href})}catch{}e.BlobReader=ur,e.BlobWriter=fr,e.Data64URIReader=class extends lr{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const n=e.indexOf(",")+1;r.assign(this,{dataURI:e,dataStart:n,size:i.floor(.75*(t-n))})}readUint8Array(e,t){const{dataStart:r,dataURI:n}=this,s=new w(t),a=4*i.floor(e/3),o=atob(n.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++)s[e-c]=o.charCodeAt(e),l++;return l<s.length?s.subarray(0,l):s}},e.Data64URIWriter=class extends dr{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r,s=t.pending;const a=t.pending.length;for(t.pending="",r=0;r<3*i.floor((a+e.length)/3)-a;r++)s+=n.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=n.fromCharCode(e[r]);s.length>2?t.data+=E(s):t.pending=s+t.pending}getData(){return this.data+E(this.pending)}},e.ERR_AMBIGUOUS_ARCHIVE=Pn,e.ERR_BAD_FORMAT=vn,e.ERR_CENTRAL_DIRECTORY_NOT_FOUND=Cn,e.ERR_DUPLICATED_NAME=ps,e.ERR_ENCRYPTED=In,e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=_n,e.ERR_EOCDR_NOT_FOUND=Tn,e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=On,e.ERR_HTTP_RANGE=tr,e.ERR_INVALID_COMMENT=hs,e.ERR_INVALID_COMPRESSED_DATA=pt,e.ERR_INVALID_ENCRYPTION_STRENGTH=bs,e.ERR_INVALID_ENTRY_COMMENT=ms,e.ERR_INVALID_ENTRY_NAME=gs,e.ERR_INVALID_EXTRAFIELD_DATA=zs,e.ERR_INVALID_EXTRAFIELD_TYPE=Ss,e.ERR_INVALID_PASSWORD=De,e.ERR_INVALID_SIGNATURE=Ae,e.ERR_INVALID_UNCOMPRESSED_SIZE=wt,e.ERR_INVALID_VERSION=ys,e.ERR_LOCAL_FILE_HEADER_NOT_FOUND=Un,e.ERR_OVERLAPPING_ENTRY=Ln,e.ERR_SPLIT_ZIP_FILE=Wn,e.ERR_UNDEFINED_READER=Rs,e.ERR_UNDEFINED_UNCOMPRESSED_SIZE=ks,e.ERR_UNSUPPORTED_COMPRESSION=Mn,e.ERR_UNSUPPORTED_ENCRYPTION=Nn,e.ERR_UNSUPPORTED_FORMAT=Fs,e.ERR_ZIP_NOT_EMPTY=Ds,e.HttpRangeReader=class extends Rr{constructor(e,t={}){super(e,r.assign({},t,{useRangeHeader:!0}))}},e.HttpReader=Rr,e.Reader=lr,e.SplitDataReader=Dr,e.SplitDataWriter=Ar,e.TextReader=class extends ur{constructor(e){super(new g([e],{type:"text/plain"}))}},e.TextWriter=class extends fr{constructor(e){super(e),r.assign(this,{encoding:e,utf8:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,utf8:t}=this,n=await super.getData();if(n.text&&t)return n.text();{const t=new FileReader;return new y((s,a)=>{r.assign(t,{onload:({target:e})=>s(e.result),onerror:()=>a(t.error)}),t.readAsText(n,e)})}}},e.Uint8ArrayReader=class extends lr{constructor(e){super(),e=new w(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 dr{constructor(e){super(),this.defaultBufferSize=e||262144}init(e=0){r.assign(this,{offset:0,array:new w(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 n=t.array;t.array=new w(e),t.array.set(n)}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=dr,e.ZipReader=qn,e.ZipReaderStream=class{constructor(e={}){const{readable:t,writable:r}=new F,n=new qn(t,e).getEntriesGenerator();this.readable=new k({async pull(e){const{done:t,value:r}=await n.next();if(t)return e.close();const s={...r,readable:(()=>{const{readable:e,writable:t}=new F;if(r.getData)return(async()=>{try{await r.getData(t)}catch(e){try{await t.abort(e)}catch{}}})(),e})()};delete s.getData,e.enqueue(s)}}),this.writable=r}},e.ZipWriter=Us,e.ZipWriterStream=class{constructor(e={}){const{readable:t,writable:r}=new F;this.readable=t,this.zipWriter=new Us(r,e),this.pendingAddFileCalls=new l}transform(e){const t=this.zipWriter;let r;const{readable:n,writable:s}=new F({start(e){r=e},flush:()=>{(async()=>{try{await t.close()}catch(e){try{await t.writer.writable.abort(e)}catch{}}})()}});return Os(this,this.zipWriter.add(e,n),e=>r.error(e)),{readable:this.readable,writable:s}}writable(e){let t;const{readable:r,writable:n}=new F({start(e){t=e}});return Os(this,this.zipWriter.add(e,r),e=>t.error(e)),n}async close(e,r={}){return await y.all(t.from(this.pendingAddFileCalls)),this.zipWriter.close(e,r)}},e.configure=ce,e.createOPFSTempStream=(e={})=>{const{thresholdBytes:t=ea,directoryName:r=ta,getDirectory:n=()=>v.storage.getDirectory()}=e;let s;function a(){return s||(s=y.resolve(n()).then(e=>e.getDirectoryHandle(r,{create:!0}))),s}return async()=>{const e=[];let r,n,s,i,o=0,c=!1;const l=new R({async write(i){c?await s.write(i):(e.push(i),o+=i.length,o>t&&await(async()=>{const t=await a();r=x.randomUUID(),n=await t.getFileHandle(r,{create:!0}),s=(await n.createWritable()).getWriter(),c=!0;for(const t of e)await s.write(t);e.length=0})())},async close(){s&&(await s.close(),s=null)}});let d=0;return{writable:l,readable:new k({async pull(t){if(c){if(!i){const e=await n.getFile();i=e.stream().getReader()}const{value:e,done:r}=await i.read();r?t.close():t.enqueue(e)}else d<e.length?t.enqueue(e[d++]):t.close()},async cancel(e){i&&await i.cancel(e)}},{highWaterMark:0}),dispose:async()=>{if(s){try{await s.close()}catch{}s=null}if(r){try{const e=await a();await e.removeEntry(r)}catch{}n=r=null}e.length=0}}}},e.getMimeType=()=>"application/octet-stream",e.terminateWorkers=async()=>{await y.allSettled(Bt.map(e=>($t(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).t={})})(this,function(e){"use strict";const{Array:t,Object:r,String:n,Number:s,BigInt:a,Math:i,Date:o,Map:c,Set:l,Response:d,URL:w,Error:u,Uint8Array:f,Uint16Array:p,Uint32Array:h,DataView:m,Blob:y,Promise:g,TextEncoder:b,TextDecoder:x,document:S,crypto:z,btoa:F,TransformStream:k,ReadableStream:D,WritableStream:E,CompressionStream:v,DecompressionStream:A,navigator:C,Worker:T}="undefined"!=typeof globalThis?globalThis:this||self;var U=void 0!==S?S.currentScript:null;const R=4294967295,M=65535,I=255,O=67324752,W=134695760,N=W,L=33639248,Z=101010256,P=101075792,V=117853008,B=22,H=20,j=21589,q=2048,K=16384,_=2048,G=1024,X="/",J=30,Q=new o(2107,11,31),Y=new o(1980,0,1),$=void 0,ee=1/0,te="undefined",re="function",ne=new f;let se=2;try{typeof C!=te&&C.hardwareConcurrency&&(se=C.hardwareConcurrency)}catch{}const ae={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:se,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof v!=te&&v,DecompressionStream:typeof A!=te&&A},ie=["baseURI","wasmURI","workerURI","chunkSize","maxWorkers","terminateWorkerTimeout","workerStarvationTimeout","useCompressionStream","useWebWorkers","CompressionStream","DecompressionStream","CompressionStreamZlib","DecompressionStreamZlib"],oe=r.assign({},ae);function ce(){return oe}function le(e){return i.max(e.chunkSize,64)}function de(e){for(const t of ie){const r=e[t];r!==$&&(oe[t]=r)}}const we=[[],[],[],[],[],[],[],[]];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)t=1&t?t>>>1^3988292384:t>>>1;we[0][e]=t}for(let e=0;256>e;e++)for(let t=1;8>t;t++){const r=we[t-1][e];we[t][e]=r>>>8^we[0][255&r]}const[ue,fe,pe,he,me,ye,ge,be]=we;class xe{constructor(e){this.i=e||-1}append(e){let t=0|this.i;const r=0|e.length;let n=0;if(r>=8&&e.buffer){const s=new m(e.buffer,e.byteOffset,r),a=r-8;for(;a>=n;n+=8){const e=t^s.getInt32(n,!0),r=s.getInt32(n+4,!0);t=be[255&e]^ge[e>>>8&255]^ye[e>>>16&255]^me[e>>>24&255]^he[255&r]^pe[r>>>8&255]^fe[r>>>16&255]^ue[r>>>24&255]}}for(;r>n;n++)t=t>>>8^ue[255&(t^e[n])];this.i=t}get(){return~this.i}}class Se extends k{constructor(){let e;const t=new xe;super({transform(e,r){t.append(e),r.enqueue(e)},flush(){const r=new f(4);new m(r.buffer).setUint32(0,t.get()),e.value=r}}),e=this}}function ze(e){if(typeof b==te){const t=new f((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 Fe={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],n=Fe.o(r);return 32===n?e.concat(t):Fe.l(t,n,0|r,e.slice(0,e.length-1))},u(e){const t=e.length;if(0===t)return 0;const r=e[t-1];return 32*(t-1)+Fe.o(r)},p(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]=Fe.h(t,e[r-1]&2147483648>>t-1,1)),e},h:(e,t,r)=>32===e?t:(r?0|t:t<<32-e)+1099511627776*e,o:e=>i.round(e/1099511627776)||32,l(e,t,r,n){for(void 0===n&&(n=[]);t>=32;t-=32)n.push(r),r=0;if(0===t)return n.concat(e);for(let s=0;s<e.length;s++)n.push(r|e[s]>>>t),r=e[s]<<32-t;const s=e.length?e[e.length-1]:0,a=Fe.o(s);return n.push(Fe.h(t+a&31,t+a>32?r:n.pop(),1)),n}},ke={bytes:{m(e){const t=Fe.u(e)/8,r=new f(t);let n;for(let s=0;t>s;s++)3&s||(n=e[s/4]),r[s]=n>>>24,n<<=8;return r},S(e){const t=[];let r,n=0;for(r=0;r<e.length;r++)n=n<<8|e[r],3&~r||(t.push(n),n=0);return 3&r&&t.push(Fe.h(8*(3&r),n)),t}}},De=class{constructor(e){const t=this;t.blockSize=512,t.F=[1732584193,4023233417,2562383102,271733878,3285377520],t.k=[1518500249,1859775393,2400959708,3395469782],e?(t.D=e.D.slice(0),t.v=e.v.slice(0),t.A=e.A):t.reset()}reset(){const e=this;return e.D=e.F.slice(0),e.v=[],e.A=0,e}update(e){const t=this;"string"==typeof e&&(e=ke.C.S(e));const r=t.v=Fe.concat(t.v,e),n=t.A,s=t.A=n+Fe.u(e);if(s>9007199254740991)throw new u("Cannot hash more than 2^53 - 1 bits");const a=new h(r);let i=0;for(let e=t.blockSize+n-(t.blockSize+n&t.blockSize-1);s>=e;e+=t.blockSize)t.T(a.subarray(16*i,16*(i+1))),i+=1;return r.splice(0,16*i),t}U(){const e=this;let t=e.v;const r=e.D;t=Fe.concat(t,[Fe.h(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(i.floor(e.A/4294967296)),t.push(0|e.A);t.length;)e.T(t.splice(0,16));return e.reset(),r}R(e,t,r,n){return e>19?e>39?e>59?e>79?void 0:t^r^n:t&r|t&n|r&n:t^r^n:t&r|~t&n}M(e,t){return t<<e|t>>>32-e}T(e){const r=this,n=r.D,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let a=n[0],o=n[1],c=n[2],l=n[3],d=n[4];for(let e=0;79>=e;e++){16>e||(s[e]=r.M(1,s[e-3]^s[e-8]^s[e-14]^s[e-16]));const t=r.M(5,a)+r.R(e,o,c,l)+d+s[e]+r.k[i.floor(e/20)]|0;d=l,l=c,c=r.M(30,o),o=a,a=t}n[0]=n[0]+a|0,n[1]=n[1]+o|0,n[2]=n[2]+c|0,n[3]=n[3]+l|0,n[4]=n[4]+d|0}},Ee={importKey:e=>new Ee.I(ke.bytes.S(e)),O(e,t,r,n){if(r=r||1e4,0>n||0>r)throw new u("invalid params to pbkdf2");const s=1+(n>>5)<<2;let a,i,o,c,l;const d=new ArrayBuffer(s),w=new m(d);let f=0;const p=Fe;for(t=ke.bytes.S(t),l=1;(s||1)>f;l++){for(a=i=e.encrypt(p.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;(s||1)>f&&o<a.length;o++)w.setInt32(f,a[o]),f+=4}return d.slice(0,n/8)},I:class{constructor(e){const t=this,r=t.W=De,n=[[],[]];t.N=[new r,new r];const s=t.N[0].blockSize/32;e.length>s&&(e=(new r).update(e).U());for(let t=0;s>t;t++)n[0][t]=909522486^e[t],n[1][t]=1549556828^e[t];t.N[0].update(n[0]),t.N[1].update(n[1]),t.L=new r(t.N[0])}reset(){const e=this;e.L=new e.W(e.N[0]),e.Z=!1}update(e){this.Z=!0,this.L.update(e)}digest(){const e=this,t=e.L.U(),r=new e.W(e.N[1]).update(t).U();return e.reset(),r}encrypt(e){if(this.Z)throw new u("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},ve=typeof z!=te&&typeof z.getRandomValues==re,Ae="Invalid password",Ce="Invalid signature",Te="zipjs-abort-check-password";function Ue(e){if(ve)return z.getRandomValues(e);throw new u("Crypto API not supported")}const Re=16,Me={name:"PBKDF2"},Ie=r.assign({hash:{name:"HMAC"}},Me),Oe=r.assign({iterations:1e3,hash:{name:"SHA-1"}},Me),We=["deriveBits"],Ne=[8,12,16],Le=[16,24,32],Ze=10,Pe=[0,0,0,0],Ve=typeof z!=te,Be=Ve&&z.subtle,He=Ve&&typeof Be!=te,je=ke.bytes,qe=class{constructor(e){const t=this;t.P=[[[],[],[],[],[]],[[],[],[],[],[]]],t.P[0][0][0]||t.V();const r=t.P[0][4],n=t.P[1],s=e.length;let a,i,o,c=1;if(4!==s&&6!==s&&8!==s)throw new u("invalid aes key size");for(t.k=[i=e.slice(0),o=[]],a=s;4*s+28>a;a++){let e=i[a-1];(a%s===0||8===s&&a%s===4)&&(e=r[e>>>24]<<24^r[e>>16&255]<<16^r[e>>8&255]<<8^r[255&e],a%s===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),i[a]=i[a-s]^e}for(let e=0;a;e++,a--){const t=i[3&e?a:a-4];o[e]=4>=a||4>e?t:n[0][r[t>>>24]]^n[1][r[t>>16&255]]^n[2][r[t>>8&255]]^n[3][r[255&t]]}}encrypt(e){return this.B(e,0)}decrypt(e){return this.B(e,1)}V(){const e=this.P[0],t=this.P[1],r=e[4],n=t[4],s=[],a=[];let i,o,c,l;for(let e=0;256>e;e++)a[(s[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,n[a]=d,l=s[c=s[o=s[d]]];let w=16843009*l^65537*c^257*o^16843008*d,u=257*s[a]^16843008*a;for(let r=0;4>r;r++)e[r][d]=u=u<<24^u>>>8,t[r][a]=w=w<<24^w>>>8}for(let r=0;5>r;r++)e[r]=e[r].slice(0),t[r]=t[r].slice(0)}B(e,t){if(4!==e.length)throw new u("invalid aes block size");const r=this.k[t],n=r.length/4-2,s=[0,0,0,0],a=this.P[t],i=a[0],o=a[1],c=a[2],l=a[3],d=a[4];let w,f,p,h=e[0]^r[0],m=e[t?3:1]^r[1],y=e[2]^r[2],g=e[t?1:3]^r[3],b=4;for(let e=0;n>e;e++)w=i[h>>>24]^o[m>>16&255]^c[y>>8&255]^l[255&g]^r[b],f=i[m>>>24]^o[y>>16&255]^c[g>>8&255]^l[255&h]^r[b+1],p=i[y>>>24]^o[g>>16&255]^c[h>>8&255]^l[255&m]^r[b+2],g=i[g>>>24]^o[h>>16&255]^c[m>>8&255]^l[255&y]^r[b+3],b+=4,h=w,m=f,y=p;for(let e=0;4>e;e++)s[t?3&-e:e]=d[h>>>24]<<24^d[m>>16&255]<<16^d[y>>8&255]<<8^d[255&g]^r[b++],w=h,h=m,m=y,y=g,g=w;return s}},Ke=class{constructor(e,t){this.H=e,this.j=t,this.q=t}reset(){this.q=this.j}update(e){return this.K(this.H,e,this.q)}_(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,r=e>>8&255,n=255&e;255===t?(t=0,255===r?(r=0,255===n?n=0:++n):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=n}return e}G(e){0===(e[0]=this._(e[0]))&&(e[1]=this._(e[1]))}K(e,t,r){let n;if(!(n=t.length))return[];const s=Fe.u(t);for(let s=0;n>s;s+=4){this.G(r);const n=e.encrypt(r);t[s]^=n[0],t[s+1]^=n[1],t[s+2]^=n[2],t[s+3]^=n[3]}return Fe.p(t,s)}},_e=Ee.I;let Ge=Ve&&He&&typeof Be.importKey==re,Xe=Ve&&He&&typeof Be.deriveBits==re;class Je extends k{constructor({password:e,rawPassword:t,encryptionStrength:r,checkPasswordOnly:n}){super({start(){Ye(this,e,t,r)},async transform(e,t){const r=this,{password:s,strength:a,X:i,ready:o}=r;s?(await(async(e,t,r,n)=>{const s=await et(e,t,r,nt(n,0,Ne[t])),a=nt(n,Ne[t]);if(s[0]!=a[0]||s[1]!=a[1])throw new u(Ae)})(r,a,s,nt(e,0,Ne[a]+2)),e=nt(e,Ne[a]+2),n?t.error(new u(Te)):i()):await o;const c=new f(e.length-Ze-(e.length-Ze)%Re);t.enqueue($e(r,e,c,0,Ze,!0))},async flush(e){const{J:t,Y:r,pending:n,ready:s}=this;if(r&&t){await s;const a=nt(n,0,n.length-Ze),i=nt(n,n.length-Ze);let o=ne;if(a.length){const e=at(je,a);r.update(e);const n=t.update(e);o=st(je,n)}const c=nt(st(je,r.digest()),0,Ze);let l=n.length<Ze?1:0;for(let e=0;Ze>e;e++)l|=c[e]^i[e];if(l)throw new u(Ce);e.enqueue(o)}}})}}class Qe extends k{constructor({password:e,rawPassword:t,encryptionStrength:r}){let n;super({start(){Ye(this,e,t,r)},async transform(e,t){const r=this,{password:n,strength:s,X:a,ready:i}=r;let o=ne;n?(o=await(async(e,t,r)=>{const n=Ue(new f(Ne[t]));return rt(n,await et(e,t,r,n))})(r,s,n),a()):await i;const c=new f(o.length+e.length-e.length%Re);c.set(o,0),t.enqueue($e(r,e,c,o.length,0))},async flush(e){const{J:t,Y:r,pending:s,ready:a}=this;if(r&&t){await a;let i=ne;if(s.length){const e=t.update(at(je,s));r.update(e),i=st(je,e)}n.signature=st(je,r.digest()).slice(0,Ze),e.enqueue(rt(i,n.signature))}}}),n=this}}function Ye(e,t,n,s){r.assign(e,{ready:new g(t=>e.X=t),password:tt(t,n),strength:s-1,pending:ne})}function $e(e,t,r,n,s,a){const{J:i,Y:o,pending:c}=e;c.length&&(t=rt(c,t));const l=t.length-s;let d;for(r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new f(t)).set(r,0)}return e})(r,n+(l-l%Re)),d=0;l-Re>=d;d+=Re){const e=at(je,nt(t,d,d+Re));a&&o.update(e);const s=i.update(e);a||o.update(s),r.set(st(je,s),d+n)}return e.pending=nt(t,d),r}async function et(e,n,s,a){e.password=null;const i=await(async(e,t,r,n,s)=>{if(!Ge)return Ee.importKey(t);try{return await Be.importKey("raw",t,r,!1,s)}catch{return Ge=!1,Ee.importKey(t)}})(0,s,Ie,0,We),o=await(async(e,t,r)=>{if(!Xe)return Ee.O(t,e.salt,Oe.iterations,r);try{return await Be.deriveBits(e,t,r)}catch{return Xe=!1,Ee.O(t,e.salt,Oe.iterations,r)}})(r.assign({salt:a},Oe),i,8*(2*Le[n]+2)),c=new f(o),l=at(je,nt(c,0,Le[n])),d=at(je,nt(c,Le[n],2*Le[n])),w=nt(c,2*Le[n]);return r.assign(e,{keys:{key:l,$:d,passwordVerification:w},J:new Ke(new qe(l),t.from(Pe)),Y:new _e(d)}),w}function tt(e,t){return t===$?ze(e):t}function rt(e,t){let r=e;return e.length+t.length&&(r=new f(e.length+t.length),r.set(e,0),r.set(t,e.length)),r}function nt(e,t,r){return e.subarray(t,r)}function st(e,t){return e.m(t)}function at(e,t){return e.S(t)}class it extends k{constructor({password:e,rawPassword:t,passwordVerification:r,checkPasswordOnly:n}){super({start(){ct(this,e,t,r)},transform(e,t){const r=this;if(r.password||r.rawPassword){const t=lt(r,e.subarray(0,12));if(r.password=r.rawPassword=null,0!=(t.at(-1)^r.passwordVerification))throw new u(Ae);e=e.subarray(12)}n?t.error(new u(Te)):t.enqueue(lt(r,e))}})}}class ot extends k{constructor({password:e,rawPassword:t,passwordVerification:r}){super({start(){ct(this,e,t,r)},transform(e,t){const r=this;let n,s;if(r.password||r.rawPassword){r.password=r.rawPassword=null;const t=Ue(new f(12));t[11]=r.passwordVerification,n=new f(e.length+t.length),n.set(dt(r,t),0),s=12}else n=new f(e.length),s=0;n.set(dt(r,e),s),t.enqueue(n)}})}}function ct(e,t,n,s){r.assign(e,{password:t,rawPassword:n,passwordVerification:s}),((e,t,n)=>{const s=[305419896,591751049,878082192];if(r.assign(e,{keys:s,ee:new xe(s[0]),te:new xe(s[2])}),n)for(let t=0;t<n.length;t++)wt(e,n[t]);else for(let r=0;r<t.length;r++)wt(e,t.charCodeAt(r))})(e,t,n)}function lt(e,t){const r=new f(t.length);for(let n=0;n<t.length;n++)r[n]=ut(e)^t[n],wt(e,r[n]);return r}function dt(e,t){const r=new f(t.length);for(let n=0;n<t.length;n++)r[n]=ut(e)^t[n],wt(e,t[n]);return r}function wt(e,t){let[,r]=e.keys;e.ee.append([t]);const n=~e.ee.get();r=pt(i.imul(pt(r+ft(n)),134775813)+1),e.te.append([r>>>24]);const s=~e.te.get();e.keys=[n,r,s]}function ut(e){const t=2|e.keys[2];return ft(i.imul(t,1^t)>>>8)}function ft(e){return 255&e}function pt(e){return 4294967295&e}const ht="Invalid uncompressed size",mt="Invalid compressed data";class yt extends k{constructor(e,{chunkSize:t,CompressionStreamZlib:r,CompressionStream:n}){super({});const{compressed:s,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:c,level:l,deflate64:d}=e,w=this;let u,f,p,h=super.readable;const y=c&&s&&!d&&(!a||o)&&!(!i||!n);a&&!o||!c||y||(u=new Se,h=zt(h,u)),s&&(y?(p=new gt,h=Ft(h,new n("gzip")),h=zt(h,p)):h=St(h,i,{level:l,chunkSize:t},n,r,n)),a&&(o?h=zt(h,new ot(e)):(f=new Qe(e),h=zt(h,f))),xt(w,h,()=>{let e;a&&!o&&(e=f.signature),a&&!o||!c||(e=y?p.signature:new m(u.value.buffer).getUint32(0)),w.signature=e})}}class gt extends k{constructor(){let e,t=10,r=new f(0);super({transform(e,n){if(t){const r=i.min(t,e.length);if(t-=r,!(e=e.subarray(r)).length)return}const s=r.length+e.length;if(8>=s){const t=new f(s);return t.set(r),t.set(e,r.length),void(r=t)}const a=s-8,o=new f(a),c=i.min(a,r.length);o.set(r.subarray(0,c),0),a>c&&o.set(e.subarray(0,a-c),c),n.enqueue(o);const l=new f(8),d=r.length-c;d&&l.set(r.subarray(c),0),l.set(e.subarray(a-c),d),r=l},flush(){const t=new m(r.buffer,r.byteOffset,r.byteLength);e.signature=t.getUint32(0,!0),e.uncompressedSize=t.getUint32(4,!0)}}),e=this}}class bt extends k{constructor(e,{chunkSize:t,DecompressionStreamZlib:r,DecompressionStream:n}){super({});const{zipCrypto:s,encrypted:a,signed:i,signature:o,compressed:c,useCompressionStream:l,deflate64:d}=e;let w,f,p=super.readable;a&&(s?p=zt(p,new it(e)):(f=new Je(e),p=zt(p,f))),c&&(p=St(p,l,{chunkSize:t,deflate64:d},n,r,n),p=(e=>{const t=e.getReader();return new D({async pull(e){let r;try{r=await t.read()}catch(e){if(e&&e.message)throw e;const t=new u(mt);throw t.cause=e,t}const{value:n,done:s}=r;s?e.close():e.enqueue(n)},cancel:e=>t.cancel(e)})})(p)),a&&!s||!i||(w=new Se,p=zt(p,w)),xt(this,p,()=>{if((!a||s)&&i){const e=new m(w.value.buffer);if(o!=e.getUint32(0,!1))throw new u(Ce)}})}}function xt(e,t,n){t=zt(t,new k({flush:n})),r.defineProperty(e,"readable",{get:()=>t})}function St(e,t,r,n,s,a){const i=t&&n?n:s||a,o=r.deflate64?"deflate64-raw":"deflate-raw";let c;try{c=new i(o,r)}catch(e){if(!t)throw e;if(s)c=new s(o,r);else{if(!a)throw e;c=new a(o,r)}}return Ft(e,c)}function zt(e,t){return e.pipeThrough(t)}function Ft(e,t){const r=t.writable.getWriter(),n=e.getReader();return(async()=>{try{for(;;){await r.ready;const e=await n.read();if(e.done){await r.close();break}await r.write(e.value)}}catch(e){await(async(e,t)=>{try{await e.abort(t)}catch{}})(r,e),await(async(e,t)=>{try{await e.cancel(t)}catch{}})(n,e)}})(),t.readable}const kt="data",Dt="deflate",Et="inflate";class vt extends k{constructor(e,t){super({});const n=this,{codecType:s}=e;let a;s.startsWith(Dt)?a=yt:s.startsWith(Et)&&(a=bt),n.outputSize=0;let i=0;const o=new a(e,t),c=super.readable,l=new k({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){r.assign(n,{inputSize:i})}}),d=new k({transform(t,r){if(t&&t.length&&(r.enqueue(t),n.outputSize+=t.length,e.outputSize!==$&&n.outputSize>e.outputSize))throw new u(ht)},flush(){const{signature:e}=o;r.assign(n,{signature:e,inputSize:i})}});r.defineProperty(n,"readable",{get:()=>c.pipeThrough(l).pipeThrough(o).pipeThrough(d)})}}class At extends k{constructor(e){let t;1>e&&(e=65536),super({transform:(r,n)=>{if(t){const e=new f(t.length+r.length);e.set(t),e.set(r,t.length),r=e,t=null}let s=0;for(;r.length-s>e;)n.enqueue(r.slice(s,s+e)),s+=e;t=s?r.slice(s):r},flush(e){t&&t.length&&e.enqueue(t)}})}}const Ct={type:"module"},Tt="error";let Ut,Rt,Mt,It,Ot=!0;try{Ot=typeof structuredClone==re&&structuredClone(new DOMException("","AbortError")).code!==$}catch{}class Wt{constructor(e,{readable:t,writable:n},{options:s,config:a,re:i,useWebWorkers:o,transferStreams:c,workerURI:l},d){const{signal:w}=i;return r.assign(e,{ne:!0,se:(e.se||0)+1,readable:t.pipeThrough(new At(le(a))).pipeThrough(new Nt(i),{signal:w}),writable:n,options:r.assign({},s),workerURI:l,transferStreams:c,terminate:()=>new g(t=>{const{ae:r,ne:n}=e;r?(n?e.ie=t:(r.terminate(),t()),e.oe=null):t()}),ce(){if(e.ne){const{ie:t}=e;t&&(e.ie=null,e.le=!0,e.ae.terminate(),t()),e.ne=!1,d(e)}}}),Ut===$&&(Ut=typeof T!=te),(o&&Ut?Pt:Zt)(e,a)}}class Nt extends k{constructor({onstart:e,onprogress:t,size:r,onend:n}){let s=0;super({async start(){e&&await Lt(e,r)},async transform(e,n){s+=e.length,t&&await Lt(t,s,r),n.enqueue(e)},async flush(){n&&await Lt(n,s)}})}}async function Lt(e,...t){try{await e(...t)}catch{}}function Zt(e,t){return{run:()=>(async({options:e,readable:t,writable:r,ce:n},s)=>{let a;try{if(!e.useCompressionStream)try{await void 0}catch{const t=e.codecType.startsWith(Dt)?s.CompressionStreamZlib:s.DecompressionStreamZlib;t&&!t.de||(e.useCompressionStream=!0)}a=new vt(e,s),await t.pipeThrough(a).pipeTo(r,{preventClose:!0,preventAbort:!0});const{signature:n,inputSize:i,outputSize:o}=a;return{signature:n,inputSize:i,outputSize:o}}catch(e){throw a&&(e.outputSize=a.outputSize),e}finally{n()}})(e,t)}}function Pt(e,t){const{baseURI:n,chunkSize:s}=t;let{wasmURI:a}=t;if(!e.oe){let i;typeof a==re&&(a=a());try{i=Bt(e.workerURI,n,e)}catch{return Ut=!1,Zt(e,t)}r.assign(e,{ae:i,le:!1,oe:{run:()=>(async(e,t)=>{let n,s;const a=new g((e,t)=>{n=e,s=t});r.assign(e,{reader:null,writer:null,we:n,ue:s,result:a});const{readable:i,options:o}=e,{writable:c,closed:l,fe:d}=(e=>{const t=new AbortController,{writable:r,readable:n}=new k,s=n.pipeTo(e,{preventClose:!0,preventAbort:!0,signal:t.signal});return s.catch(()=>{}),{writable:r,closed:s,fe:()=>t.abort()}})(e.writable);let w;try{w=jt({type:"start",options:o,config:t,readable:i,writable:c},e)}catch(t){d();try{await l}catch{}throw e.ce(),t}w||r.assign(e,{reader:i.getReader(),writer:c.getWriter()});try{const e=await a;return await u(),await l,e}catch(e){await u(),d();try{await l}catch{}throw e}async function u(){if(!w&&!c.locked)try{await c.getWriter().close()}catch{}}})(e,{chunkSize:s,wasmURI:a,baseURI:n})}})}return e.oe}function Vt(e){const{ae:t}=e;if(t)try{t.terminate()}catch{}e.oe=null}function Bt(e,t,n,s,a=!0){let i,o,c;if(Mt===$||Rt!==e){const r=typeof e==re;o=r?e(a):e;const l=o.startsWith("data:"),d=o.startsWith("blob:");if(l||d){s===$&&(s=!1),s&&(c=Ct);try{i=new T(o,c)}catch(a){if(d)try{w.revokeObjectURL(o)}catch{}if(r&&d)return Bt(e,t,n,s,!1);if(s)throw a;return Bt(e,t,n,!0,!1)}}else{s===$&&(s=!0),s&&(c=Ct);try{o=new w(o,t)}catch{}try{i=new T(o,c)}catch(r){if(s)throw r;return Bt(e,t,n,!1,a)}}Rt=e,Mt=o,It=c}else i=new T(Mt,It);return i.addEventListener("message",e=>(async({data:e},t)=>{const{type:n,value:s,messageId:a,result:i,error:o}=e,{reader:c,writer:l,we:d,ue:w,ce:p,se:h}=t,m=()=>t.se!=h;try{if(o){const{message:e,stack:t,code:n,name:s,outputSize:a}=o,i=new u(e);r.assign(i,{stack:t,code:n,name:s,outputSize:a}),y(i)}else{if("pull"==n){const{value:e,done:r}=await c.read();m()||jt({type:kt,value:e,done:r,messageId:a},t)}n==kt&&(await l.ready,await l.write(new f(s)),m()||jt({type:"ack",messageId:a},t)),"close"==n&&y(null,i)}}catch(o){m()||(Vt(t),y(o))}function y(e,t){m()||(e?w(e):d(t),l&&l.releaseLock(),p())}})(e,n)),i.addEventListener(Tt,e=>Ht(e,n)),i.addEventListener("messageerror",e=>Ht(e,n)),i}function Ht(e,t){e.preventDefault&&e.preventDefault();const{ue:r,writer:n,ce:s}=t;Vt(t),r&&(r(e.error||new u(e.message||Tt)),n&&n.releaseLock(),s())}function jt(e,{ae:t,writer:r,transferStreams:n}){try{const{value:r,readable:s,writable:a}=e,i=[];if(r&&(e.value=r,i.push(e.value.buffer)),n&&Ot?(s&&i.push(s),a&&i.push(a)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch{Ot=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),e}}let qt=[];const Kt=[];let _t,Gt,Xt=0;async function Jt(e,t){const{options:r,config:n}=t,{transferStreams:a,useWebWorkers:i,useCompressionStream:o,compressed:c,signed:l,encrypted:d}=r,{workerURI:w,maxWorkers:u}=n;t.transferStreams=a||a===$;const f=!(c||l||d||t.transferStreams);return t.useWebWorkers=!f&&(i||i===$&&n.useWebWorkers),t.workerURI=t.useWebWorkers&&w?w:$,r.useCompressionStream=o||o===$&&n.useCompressionStream,(await(async()=>{const r=qt.find(e=>!e.ne);if(r)return tr(r),new Wt(r,e,t,p);if(qt.length<u){const r={pe:Xt};return Xt++,qt.push(r),new Wt(r,e,t,p)}return new g(r=>{Kt.push({resolve:r,stream:e,he:t}),Gt=n.workerStarvationTimeout,Qt()})})()).run();function p(e){if(Yt(),Kt.length){const[{resolve:t,stream:r,he:n}]=Kt.splice(0,1);t(new Wt(e,r,n,p)),Qt()}else e.ae?(tr(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:n}=r;s.isFinite(n)&&n>=0&&(e.le?e.le=!1:e.me=setTimeout(async()=>{qt=qt.filter(t=>t!=e);try{await e.terminate()}catch{}},n))})(e,t)):qt=qt.filter(t=>t!=e)}}function Qt(){!_t&&Kt.length&&s.isFinite(Gt)&&Gt>=0&&(_t=setTimeout($t,Gt))}function Yt(){_t&&(clearTimeout(_t),_t=null)}function $t(){if(_t=null,Kt.length){const[{resolve:e,stream:t,he:n}]=Kt.splice(0,1),s=r.assign({},n,{useWebWorkers:!1,workerURI:$});e(new Wt({},t,s,er)),Qt()}}function er(){Yt(),Qt()}function tr(e){const{me:t}=e;t&&(clearTimeout(t),e.me=null)}const rr="HTTP error ",nr="HTTP Range not supported",sr="Writer iterator completed too soon",ar="Writer not initialized",ir="Content-Range",or="Range",cr="GET",lr="bytes",dr="writable";class wr{constructor(){this.size=0}init(){this.initialized=!0}}class ur extends wr{get readable(){return this.ye()}ye({offset:e=0,size:t,diskNumberStart:r,chunkSize:n=65536}={}){const s=this;let a=0;return new D({async pull(o){const c=t===$?n:i.min(n,t-a),l=await Or(s,e+a,c,r);o.enqueue(l),a+n>t||t===$&&!l.length&&c?o.close():a+=n}})}}class fr extends wr{constructor(){super();const e=this,t=new E({write(t){if(!e.initialized)throw new u(ar);return e.writeUint8Array(t)}});r.defineProperty(e,dr,{get:()=>t})}writeUint8Array(){}}class pr extends ur{constructor(e){super(),r.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const r=this,n=e+t,s=e||n<r.size?r.blob.slice(e,n):r.blob;let a=await s.arrayBuffer();return a.byteLength>t&&(a=a.slice(e,n)),new f(a)}}class hr extends wr{constructor(e){super();const t=this,n=new k,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(t,dr,{get:()=>n.writable}),t.blob=new d(n.readable,{headers:s}).blob(),t.blob.catch(()=>{})}getData(){return this.blob}}class mr extends ur{constructor(e,t){super(),gr(this,e,t)}async init(){await br(this,vr,Fr),super.init()}readUint8Array(e,t){return xr(this,e,t,vr,Fr)}}class yr extends ur{constructor(e,t){super(),gr(this,e,t)}async init(){await br(this,Ar,kr),super.init()}readUint8Array(e,t){return xr(this,e,t,Ar,kr)}}function gr(e,t,n){const{preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o,fetch:c}=n;delete(n=r.assign({},n)).preventHeadRequest,delete n.useRangeHeader,delete n.forceRangeRequests,delete n.combineSizeEocd,delete n.useXHR,delete n.fetch,r.assign(e,{url:t,options:n,preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o,fetch:c})}async function br(e,t,r){const{url:n,preventHeadRequest:a,useRangeHeader:i,forceRangeRequests:o,combineSizeEocd:c}=e;if((e=>{const{baseURI:t}=ce(),{protocol:r}=new w(e,t);return"http:"==r||"https:"==r})(n)&&(i||o)&&(void 0===a||a)){const n=await t(cr,e,Sr(e,c?-22:void 0)),a=n.headers.get("Accept-Ranges");if(!(o||a&&a.toLowerCase()==lr))throw new u(nr);{if(c){const t=new f(await n.arrayBuffer());206==n.status&&t.length==B&&(e.ge=t)}let a;const i=n.headers.get(ir);if(i){const e=i.trim().split(/\s*\/\s*/);if(e.length){const t=e[1];t&&"*"!=t&&(a=s(t))}}a===$?await Er(e,t,r):e.size=a}}else await Er(e,t,r)}async function xr(e,t,r,n,a){const{useRangeHeader:i,forceRangeRequests:o,ge:c,size:l,options:d}=e;if(i||o){if(c&&t==l-B&&r==B)return c;if(l>t&&0!==r){t+r>l&&(r=l-t);const a=await n(cr,e,Sr(e,t,r));if(206!=a.status)throw new u(nr);const i=a.headers.get(ir);if(i){const e=s(i.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=t)throw new u(nr)}const o=new f(await a.arrayBuffer());if(o.length!=r)throw new u(nr);return o}return ne}{const{data:n}=e;return n||await a(e,d),new f(e.data.subarray(t,t+r))}}function Sr(e,t=0,n=1){return r.assign({},zr(e),{[or]:lr+"="+(0>t?t:t+"-"+(t+n-1))})}function zr({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function Fr(e){await Dr(e,vr)}async function kr(e){await Dr(e,Ar)}async function Dr(e,t){const r=await t(cr,e,zr(e));e.data=new f(await r.arrayBuffer()),e.size=e.data.length}async function Er(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const n=await t("HEAD",e,zr(e)),a=n.headers.get("Content-Length");a&&!n.headers.get("Content-Encoding")?e.size=s(a):await r(e,e.options)}}async function vr(e,{fetch:t=fetch,options:n,url:s},a){const i=await t(s,r.assign({},n,{method:e,headers:a}));if(400>i.status)return i;throw 416==i.status?new u(nr):new u(rr+(i.statusText||i.status))}function Ar(e,{url:t},n){return new g((s,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)}),s({status:i.status,arrayBuffer:()=>i.response,headers:new c(e)})}else a(416==i.status?new u(nr):new u(rr+(i.statusText||i.status)))},!1),i.addEventListener("error",e=>a(e.detail?e.detail.error:new u("Network error")),!1),i.open(e,t),n)for(const e of r.entries(n))i.setRequestHeader(e[0],e[1]);i.responseType="arraybuffer",i.send()})}class Cr extends ur{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR&&!t.fetch?new yr(e,t):new mr(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 Tr extends ur{constructor(e){super(),this.be=e}async init(){const e=this,{be:t}=e;e.xe=0,e.Se=0,await g.all(t.map(async(r,n)=>{await Ir(r),n!=t.length-1&&(e.Se+=r.size),e.size+=r.size})),super.init()}async readUint8Array(e,t,r=0){const n=this,{be:s}=this;let a,o=r;-1==o&&(o=s.length-1);let c=e;for(;s[o]&&c>=s[o].size;)c-=s[o].size,o++;const l=s[o];if(l){const s=l.size;if(c+t>s){const i=s-c;a=new f(t);const o=await Or(l,c,i);a.set(o,0);const d=await n.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 Or(l,c,t)}else a=ne;return n.xe=i.max(o,n.xe),a}}class Ur extends wr{constructor(e,t=4294967295){super();const n=this;let s,a,i;r.assign(n,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new E({async write(t){const{availableSize:r}=n;if(i)t.length<r?await c(t):(await c(t.subarray(0,r)),await l(),n.diskOffset+=s.size,n.diskNumber++,i=null,n.availableSize=n.maxSize,t.length>r&&await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new u(sr);s=r,s.size=0,s.maxSize&&(n.maxSize=s.maxSize),n.availableSize=n.maxSize,await Ir(s),a=r.writable,i=a.getWriter(),await this.write(t)}},async close(){i&&(await i.ready,await l())},async abort(e){i&&await i.abort(e)}});async function c(e){const t=e.length;t&&(await i.ready,await i.write(e),s.size+=t,n.availableSize-=t)}async function l(){await i.close()}r.defineProperty(n,dr,{get:()=>o})}}class Rr{constructor(e){return t.isArray(e)&&(e=new Tr(e)),e instanceof D&&(e={readable:e}),e}}class Mr{constructor(e){return e.writable===$&&typeof e.next==re&&(e=new Ur(e)),e instanceof E&&(e={writable:e}),e.size===$&&(e.size=0),e instanceof Ur||r.assign(e,{diskNumber:0,diskOffset:0,availableSize:ee,maxSize:ee}),e}}async function Ir(e,t){if(!e.init||e.initialized)return g.resolve();await e.init(t)}function Or(e,t,r,n){return e.readUint8Array(t,r,n)}const Wr="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function Nr(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=Wr[e[r]];return t}})(e):new x(t,{ignoreBOM:!0}).decode(e)}const Lr="filename",Zr="rawFilename",Pr="comment",Vr="rawComment",Br="uncompressedSize",Hr="compressedSize",jr="offset",qr="diskNumberStart",Kr="lastModDate",_r="rawLastModDate",Gr="lastAccessDate",Xr="creationDate",Jr="rawCreationDate",Qr="internalFileAttributes",Yr="externalFileAttributes",$r="msdosAttributesRaw",en="msdosAttributes",tn="msDosCompatible",rn="zip64",nn="encrypted",sn="version",an="versionMadeBy",on="zipCrypto",cn="directory",ln="executable",dn="compressionMethod",wn="signature",un="extraField",fn="unixMode",pn="setuid",hn="setgid",mn="sticky",yn=[Lr,Zr,Br,Hr,Kr,_r,Pr,Vr,Gr,Xr,Jr,jr,qr,Qr,Yr,$r,en,tn,rn,nn,sn,an,on,cn,ln,dn,wn,un,"extraFieldUnix","extraFieldInfoZip","uid","gid",fn,pn,hn,mn,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class gn{constructor(e){yn.forEach(t=>this[t]=e[t])}}const bn="password",xn="rawPassword",Sn="passThrough",zn="signal",Fn="checkAmbiguity",kn="useWebWorkers",Dn="useCompressionStream",En="transferStreams",vn="preventClose",An="offset",Cn="strictness",Tn="strict",Un="tolerant",Rn="File format is not recognized",Mn="End of central directory not found",In="End of Zip64 central directory locator not found",On="Central directory header not found",Wn="Local file header not found",Nn="Zip64 extra field not found",Ln="File contains encrypted entry",Zn="Encryption method not supported",Pn="Compression method not supported",Vn="Split zip file",Bn="Overlapping entry found",Hn="Ambiguous archive",jn="utf-8",qn="cp437",Kn=[[Br,R],[Hr,R],[jr,R],[qr,M]],_n={[M]:{ze:ms,bytes:4},[R]:{ze:ys,bytes:8}};class Gn{constructor(e,t={}){r.assign(this,{reader:new Rr(e),options:t,config:ce(),Fe:new c})}async*getEntriesGenerator(e={}){const t=this;let{reader:n}=t;const{config:s}=t;if(await Ir(n),n.size!==$&&n.readUint8Array||(n=new pr(await new d(n.readable).blob()),await Ir(n)),n.size<B)throw new u(Rn);const a=ts(ws(t,e,Cn),ws(t,e,Fn)),o=a==Tn,c=a!=Un,w=((e,t)=>e!==$?e:t==Tn?0:t==Un?1/0:M)(ws(t,e,"maxAppendedDataSize"),a),{ke:f,De:p}=await(async(e,t,r)=>{const{size:n}=e,s=i.min(n,65557),a={count:rs};let o,c,l=0;for await(const[r,i,d,w,u]of is(e,s)){const s=hs(r,w+20);if(u+B+s==n){const s=await cs(e,r,i,w,u,n,a);if(s==as){if(o||(o=os(d,w,u)),l++,!t||l>1)break}else s!=ss||c||(c=os(d,w,u))}}return o||(o=c),o||(o=await(async(e,t,r)=>{const{size:n}=e,s=i.min(n,t==1/0?n:65557+t);let a,o;for await(const[t,i,c,l,d]of is(e,s)){const s=os(c,l,d);a||(a=s);const w=await cs(e,t,i,l,d,n,r);if(w==as)return s;w!=ss||o||(o=s)}return o||a})(e,r,a)),{ke:o,De:l}})(n,c,w);if(!f)throw ms(gs(await Or(n,0,4)))==W?new u(Vn):new u(Mn);c&&p>1&&ds("multiple end of central directory records");const h=gs(f);let m=ms(h,12),y=ms(h,16);const b=f.offset,x=hs(h,20),S=b+B+x;n.size-S>w&&ds("appended data");let z=hs(h,4);const F=n.xe||0;let D,E,v=hs(h,6),A=hs(h,10),C=0;if(y==R||m==R||A==M||v==M){const e=f.offset<H?ne:await Or(n,f.offset-H,H),t=gs(e);if(e.length==H&&ms(t,0)==V){y=ys(t,8);let e=await Or(n,y,56,-1),r=gs(e);const s=f.offset-H-56-(n.Se||0);if((56>e.length||ms(r,0)!=P)&&y!=s&&s>=0){const t=y;y=s,y>t&&(C=y-t),e=await Or(n,y,56,-1),r=gs(e)}if(56>e.length||ms(r,0)!=P)throw new u(In);E=!0,z==M?z=ms(r,16):o&&z!=ms(r,16)&&ds("mismatched zip64 end of central directory record"),v==M?v=ms(r,20):o&&v!=ms(r,20)&&ds("mismatched zip64 end of central directory record"),A==M?A=ys(r,32):o&&A!=ys(r,32)&&ds("mismatched zip64 end of central directory record"),m==R?m=ys(r,40):o&&m!=ys(r,40)&&ds("mismatched zip64 end of central directory record"),y=ys(r,48)+C}}const T=m,U=f.offset-(E?76:0);if(y<n.size||(C=n.size-y-m-B,y=n.size-m-B),F!=z)throw new u(Vn);if(0>y)throw new u(Rn);let O=0,N=await Or(n,y,m,v),Z=gs(N);if(m){if(4>N.length)throw new u(Rn);const e=U-m-(n.Se||0);if(y!=e&&v==z){let t=!(ms(Z,O)==L);if(t||0>e||e+4>n.size||(t=ms(gs(await Or(n,e,4,v)),0)==L),t){const t=y;y=e,y>t&&(C+=y-t),N=await Or(n,y,m,v),Z=gs(N)}}}const j=U-y-(n.Se||0);if(m==j||0>j||v!=z||(m=j,N=await Or(n,y,m,v),Z=gs(N)),0>y||y>=n.size)throw new u(Rn);D=y;const q=ws(t,e,"filenameEncoding"),J=ws(t,e,"commentEncoding"),Q=o?new l:$;let Y;for(let a=0;A>a;a++){const c=new Xn(n,s,t.options);if(O+46>N.length||ms(Z,O)!=L)throw new u(On);Jn(c,Z,O+6);const l=!!c.bitFlag.languageEncodingFlag,w=O+46,f=w+c.filenameLength,p=f+c.extraFieldLength,h=hs(Z,O+4),m=!(h>>8),y=h>>8==3,b=N.subarray(w,f),x=hs(Z,O+32),S=p+x,z=N.subarray(p,S),F=l,E=l,v=ms(Z,O+38),T=v&I,U={readOnly:!!(1&T),hidden:!!(2&T),system:!!(4&T),directory:!!(16&T),archive:!!(32&T)},R=ms(Z,O+42),W=ws(t,e,"decodeText")||Nr,P=F?jn:q||qn,V=E?jn:J||qn;let B=W(b,P);B===$&&(B=Nr(b,P));let H=W(z,V);H===$&&(H=Nr(z,V)),r.assign(c,{index:a,versionMadeBy:h,msDosCompatible:m,compressedSize:0,uncompressedSize:0,Ee:x,offset:R,diskNumberStart:hs(Z,O+34),internalFileAttributes:hs(Z,O+36),externalFileAttributes:v,msdosAttributesRaw:T,msdosAttributes:U,rawFilename:b,filenameUTF8:F,commentUTF8:E,rawExtraField:N.subarray(f,p),rawComment:z,filename:B,comment:H}),Qn(c,c,Z,O+6),c.offset+=C,D=i.min(c.offset,D),o&&(Q.has(c.filename)&&(Y=!0),Q.add(c.filename));const j=c.externalFileAttributes>>16&M;c.unixMode===$&&16877&j&&(c.unixMode=j);const ee=!!(c.unixMode&_),te=!!(c.unixMode&G),re=!!(512&c.unixMode),ne=c.unixMode!==$?!!(73&c.unixMode):y&&!!(73&j),se=c.unixMode!==$&&(61440&c.unixMode)==K,ae=(61440&j)==K;r.assign(c,{setuid:ee,setgid:te,sticky:re,unixExternalUpper:j,internalFileAttribute:c.internalFileAttributes,externalFileAttribute:c.externalFileAttributes,executable:ne,directory:se||ae||m&&U.directory||c.filename.endsWith(X)&&!c.uncompressedSize,zipCrypto:c.encrypted&&!c.extraFieldAES});const ie=new gn(c);ie.getData=(e,r)=>c.getData(e,ie,t.Fe,r),ie.arrayBuffer=async e=>{const r=new k,[n]=await g.all([new d(r.readable).arrayBuffer(),c.getData(r,ie,t.Fe,e)]);return n},O=S;const{onprogress:oe}=e;if(oe)try{await oe(a+1,A,new gn(c))}catch{}yield ie}o&&O!=T&&ds("trailing central directory data"),Y&&ds("duplicate filename"),o&&(C||A&&D>0)&&ds("prepended data");const ee=ws(t,e,"extractPrependedData"),te=ws(t,e,"extractAppendedData");return ee&&(t.prependedData=D>0?await Or(n,0,D):ne),t.comment=x?await Or(n,b+B,x):ne,te&&(t.appendedData=S<n.size?await Or(n,S,n.size-S):ne),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}class Xn{constructor(e,t,n){r.assign(this,{reader:e,config:t,options:n})}async getData(e,t,r,n={}){const s=this,{reader:a,index:o,offset:c,diskNumberStart:l,extraFieldAES:d,extraFieldZip64:w,compressionMethod:f,config:p,bitFlag:h,signature:m,rawLastModDate:y,uncompressedSize:g,compressedSize:b}=s,{dataDescriptor:x}=h,S=t.localDirectory={},z=await Or(a,c,J,l),F=gs(z);let k=ws(s,n,bn),D=ws(s,n,xn);const v=ws(s,n,Sn);if(k=k&&k.length&&k,D=D&&D.length&&D,d&&99!=d.originalCompressionMethod)throw new u(Pn);if(0!=f&&8!=f&&9!=f&&!v)throw new u(Pn);if(z.length<J||ms(F,0)!=O)throw new u(Wn);Jn(S,F,4);const{extraFieldLength:A,filenameLength:C}=S,T=ts(ws(s,n,Cn),ws(s,n,Fn))==Tn;let U=ne;if(T&&(C||A)){const e=await Or(a,c+J,C+A,l);U=e.subarray(0,C),S.rawExtraField=e.subarray(C)}else S.rawExtraField=A?await Or(a,c+J+C,A,l):ne;Qn(s,S,F,4,!0),T&&((e,t,r)=>{const{rawFilename:n}=e;(r.length!=n.length||r.some((e,t)=>e!=n[t]))&&ds("mismatched local file header (filename)"),(2057&t.rawBitFlag)!=(2057&e.rawBitFlag)&&ds("mismatched local file header (general purpose bit flag)"),t.compressionMethod!=e.compressionMethod&&ds("mismatched local file header (compression method)"),t.bitFlag.dataDescriptor||!(t.signature||t.compressedSize||t.uncompressedSize)||t.signature==e.signature&&t.compressedSize==e.compressedSize&&t.uncompressedSize==e.uncompressedSize||ds("mismatched local file header (signature or sizes)")})(s,S,U);const{lastAccessDate:R,creationDate:M}=S;R&&(t.lastAccessDate=R),M&&(t.creationDate=M);const W=s.encrypted&&S.encrypted&&!v,L=W&&!d;if(v||(t.zipCrypto=L),W){if(!L&&d.strength===$)throw new u(Zn);if(!k&&!D)throw new u(Ln)}const Z=c+J+C+A,P=b,V=a.ye({offset:Z,size:P,diskNumberStart:l,chunkSize:le(p)}),B=ws(s,n,zn),H=ws(s,n,"checkPasswordOnly");let j=ws(s,n,"checkOverlappingEntry");const q=ws(s,n,"checkOverlappingEntryOnly");q&&(j=!0);const{onstart:K,onprogress:_,onend:G}=n,X=9==f;let Q=ws(s,n,Dn);X&&(Q=!1);const Y={options:{codecType:Et,password:k,rawPassword:D,zipCrypto:L,encryptionStrength:d&&d.strength,signed:ws(s,n,"checkSignature")&&!v,passwordVerification:L&&(x?y>>>8&I:m>>>24&I),outputSize:v?b:g,signature:m,compressed:0!=f&&!v,encrypted:W,useWebWorkers:ws(s,n,kn),useCompressionStream:Q,transferStreams:ws(s,n,En),deflate64:X,checkPasswordOnly:H},config:p,re:{signal:B,size:P,onstart:K,onprogress:_,onend:G}};let ee;j&&await(async({reader:e,ve:t,index:r,offset:n,diskNumberStart:s,signature:a,compressedSize:o,uncompressedSize:c,Ae:l,dataDescriptor:d,extraFieldZip64:w,Fe:f})=>{let p=0;if(s&&e.be)for(let t=0;t<i.min(s,e.be.length);t++)p+=e.be[t].size;let h=0;if(d&&(h=w?20:12),h){const r=await Or(e,l+o,h+4,s);if(r.length==h+4&&ms(gs(r),0)==N){const e=ms(gs(r),4);let n,s;w?(n=ys(gs(r),8),s=ys(gs(r),16)):(n=ms(gs(r),8),s=ms(gs(r),12)),(t.encrypted&&!t.zipCrypto||e==a)&&n==o&&s==c&&(h+=4)}}const m={start:p+n,end:p+l+o+h,ve:t};for(const[e,t]of f)if(e!=r&&m.start<t.end&&t.start<m.end){const e=new u(Bn);throw e.Ce=t.ve,e}f.set(r,m)})({reader:a,ve:t,index:o,offset:c,diskNumberStart:l,signature:m,compressedSize:b,uncompressedSize:g,Ae:Z,dataDescriptor:x||S.bitFlag.dataDescriptor,extraFieldZip64:w||S.extraFieldZip64,Fe:r});try{if(!q){H&&(e=new E),e=new Mr(e),await Ir(e,v?b:g),({writable:ee}=e);const{outputSize:t}=await Jt({readable:V,writable:ee},Y);if(e.size+=t,t!=(v?b:g))throw new u(ht)}}catch(t){if(t.outputSize!==$&&(e.size+=t.outputSize),!H||t.message!=Te)throw t}finally{ws(s,n,vn)||!ee||ee.locked||await ee.getWriter().close()}return H||q?$:e.getData?e.getData():ee}}function Jn(e,t,n){const s=e.rawBitFlag=hs(t,n+2),a=!(1&~s),i=ms(t,n+6);r.assign(e,{encrypted:a,version:hs(t,n),bitFlag:{level:(6&s)>>1,dataDescriptor:!(8&~s),languageEncodingFlag:(s&q)==q},rawLastModDate:i,lastModDate:us(i),filenameLength:hs(t,n+22),extraFieldLength:hs(t,n+24)})}function Qn(e,t,n,s,a){const{rawExtraField:i}=t,l=t.extraField=new c,d=gs(new f(i));let w=0;try{for(;w<i.length;){const e=hs(d,w),t=hs(d,w+2);l.set(e,{type:e,data:i.slice(w+4,w+4+t)}),w+=4+t}}catch{}const p=hs(n,s+4);r.assign(t,{signature:ms(n,s+10),compressedSize:ms(n,s+14),uncompressedSize:ms(n,s+18)});const h=l.get(1);h&&(((e,t)=>{t.zip64=!0;const r=gs(e.data),n=Kn.filter(([e,r])=>t[e]==r),s=n.reduce((e,[,t])=>e+_n[t].bytes,0);if(e.data.length<s)throw new u(Nn);for(let s=0,a=0;s<n.length;s++){const[i,o]=n[s],c=_n[o];t[i]=e[i]=c.ze(r,a),a+=c.bytes}})(h,t),t.extraFieldZip64=h);const m=l.get(28789);m&&(Yn(m,Lr,Zr,t,e),t.extraFieldUnicodePath=m);const y=l.get(25461);y&&(Yn(y,Pr,Vr,t,e),t.extraFieldUnicodeComment=y);const g=l.get(39169);g&&g.data.length>=7?(((e,t,n)=>{const s=gs(e.data),a=ps(s,4);r.assign(e,{Te:ps(s,0),vendorId:ps(s,2),strength:a,originalCompressionMethod:n,compressionMethod:hs(s,5)}),t.compressionMethod=e.compressionMethod})(g,t,p),t.extraFieldAES=g):t.compressionMethod=p;const b=l.get(10);b&&(((e,t)=>{const n=gs(e.data);let s,a=4;try{for(;a<e.data.length&&!s;){const t=hs(n,a),r=hs(n,a+2);1==t&&(s=e.data.slice(a+4,a+4+r)),a+=4+r}}catch{}try{if(s&&24==s.length){const n=gs(s),a=n.getBigUint64(0,!0),i=n.getBigUint64(8,!0),o=n.getBigUint64(16,!0);r.assign(e,{rawLastModDate:a,rawLastAccessDate:i,rawCreationDate:o});const c={lastModDate:fs(a),lastAccessDate:fs(i),creationDate:fs(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(b,t),t.extraFieldNTFS=b);const x=l.get(30805);if(x)$n(x,t,!1),t.extraFieldUnix=x;else{const e=l.get(30837);e&&($n(e,t,!0),t.extraFieldInfoZip=e)}const S=l.get(j);S&&(((e,t,r)=>{if(!e.data.length)return;const n=gs(e.data),s=ps(n,0),a=[],i=[];r?(1&~s||(a.push(Kr),i.push(_r)),2&~s||(a.push(Gr),i.push("rawLastAccessDate")),4&~s||(a.push(Xr),i.push(Jr))):5>e.data.length||(a.push(Kr),i.push(_r));let c=1;a.forEach((r,s)=>{if(e.data.length>=c+4){const a=ms(n,c);t[r]=e[r]=new o(1e3*(0|a));const l=i[s];e[l]=a}c+=4})})(S,t,a),t.extraFieldExtendedTimestamp=S);const z=l.get(6534);z&&(t.extraFieldUSDZ=z)}function Yn(e,t,n,s,a){if(5>e.data.length)return void(e.valid=!1);const i=gs(e.data),o=new xe;o.append(a[n]);const c=gs(new f(4));c.setUint32(0,o.get(),!0);const l=ms(i,1);r.assign(e,{version:ps(i,0),[t]:Nr(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==ms(c,0)}),e.valid&&(s[t]=e[t],s[t+"UTF8"]=!0)}function $n(e,t,n){try{const s=gs(new f(e.data));let a,i;if(n){let t=0;const n=ps(s,t++),o=ps(s,t++);a=es(e.data.subarray(t,t+o)),t+=o;const c=ps(s,t++);i=es(e.data.subarray(t,t+c)),r.assign(e,{version:n,uid:a,gid:i})}else 4>e.data.length||(a=hs(s,0),i=hs(s,2),r.assign(e,{uid:a,gid:i}));a!==$&&(t.uid=a),i!==$&&(t.gid=i)}catch{}}function es(e){const t=new f(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function ts(e,t){return e===$?t?Tn:"balanced":e}const rs=64,ns=0,ss=1,as=2;async function*is(e,t){const r=e.size-t,n=await Or(e,r,t),s=gs(n);for(let e=n.length-B;e>=0;e--)ms(s,e)==Z&&(yield[s,r,n,e,r+e])}function os(e,t,r){return{offset:r,buffer:e.slice(t,t+B).buffer}}async function cs(e,t,r,n,s,a,i){const o=hs(t,n+10),c=ms(t,n+12),l=ms(t,n+16);if(o==M||c==R||l==R)return await ls(e,t,r,s-H,a,i)==V?as:ns;if(!o&&!c)return ss;for(const n of[s-c,l])if(await ls(e,t,r,n,a,i)==L)return as;return ns}async function ls(e,t,r,n,s,a){return 0>n||n+4>s?$:r>n?a.count>0?(a.count--,ms(gs(await Or(e,n,4)),0)):$:ms(t,n-r)}function ds(e){const t=new u(Hn);throw t.reason=e,t}function ws(e,t,r){return t[r]===$?e.options[r]:t[r]}function us(e){const t=(4294901760&e)>>16,r=e&M;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 fs(e){return new o(s(e/a(1e4)-a(116444736e5)))}function ps(e,t){return e.getUint8(t)}function hs(e,t){return e.getUint16(t,!0)}function ms(e,t){return e.getUint32(t,!0)}function ys(e,t){return s(e.getBigUint64(t,!0))}function gs(e){return new m(e.buffer,e.byteOffset,e.byteLength)}const bs="File already exists",xs="Zip file comment exceeds 64KB",Ss="File entry comment exceeds 64KB",zs="File entry name exceeds 64KB",Fs="Version exceeds 65535",ks="The strength must equal 1, 2, or 3",Ds="Extra field type exceeds 65535",Es="Extra field data exceeds 64KB",vs=-2147483648,As=2147483647,Cs="Zip64 is not supported (set the 'zip64' option to 'true')",Ts="Undefined uncompressed size",Us="Undefined reader",Rs="Zip file not empty",Ms=new f([7,0,2,0,65,69,3,0,0]),Is="infozip",Os="unix";let Ws=0;const Ns=[];class Ls{constructor(e,t={}){const n=(e=new Mr(e)).availableSize!==$&&e.availableSize>0&&e.availableSize!==ee&&e.maxSize!==$&&e.maxSize>0&&e.maxSize!==ee;r.assign(this,{writer:e,Ue:n,options:t,config:ce(),files:new c,Re:new l,offset:t[An]===$?e.size||e.writable.size||0:t[An],Me:t[An]===$?0:t[An]-(e.size||e.writable.size||0),Ie:new l,Oe:0,We:$})}async prependZip(e){if(this.Re.size)throw new u(Rs);e=new Rr(e),await Ir(e);const t=new Gn(e.readable),n=await t.getEntries();await t.close(),await Ir(this.writer),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.Re=new l(n.map(e=>e.filename)),this.files=new c(n.map(e=>{const{version:t,rawLastModDate:n,lastAccessDate:s,creationDate:a,rawFilename:i,bitFlag:o,encrypted:c,uncompressedSize:l,compressedSize:d,diskOffset:w,diskNumber:u,zip64:f}=e;let{compressionMethod:p,Ne:h,Le:m,Ze:y,Pe:g,Ve:b,rawExtraField:x}=e;const{level:S,languageEncodingFlag:z,dataDescriptor:F}=o;h=h||ne,m=m||ne,y=y||ne,g=g||ne,b=b||ne,x=x||ne,e.extraFieldAES&&(p=99);const k=ra(h,m,y,g,b,x),D=f&&l>=R,E=f&&d>=R,v=-7&sa(S,z,F,c,p)|S<<1,{Be:A,He:C}=na({version:t,bitFlag:v,compressionMethod:p,uncompressedSize:l,compressedSize:d,rawLastModDate:n,rawFilename:i,je:E,qe:D,extraFieldLength:k}),{signature:T}=e;return T!==$&&Ys(C,10,T),r.assign(e,{qe:D,je:E,Ke:f&&this.offset-w>=R,_e:f&&u>=M,Ne:h,Le:m,Ze:y,Pe:g,Ve:b,rawExtraField:x,extendedTimestamp:y.length>0||g.length>0,Ge:1+(s?2:0)+(a?4:0),Be:A,He:C}),[e.filename,e]}))}async add(e="",t,n={}){const s=this;n=r.assign({},n);const{Ie:i,config:c}=s;let l,d;Ws<c.maxWorkers?Ws++:await new g(e=>Ns.push(e));try{if(e=e.trim(),Xs(s,n,cn)&&!e.endsWith(X)&&(e+=X),s.Re.has(e))throw new u(bs);return s.Re.add(e),d=!0,l=(async(e,t,n,s)=>{const i=((e,t,r)=>{t=t.trim();let n=Xs(e,r,tn),s=Xs(e,r,an,n?20:768);const a=Xs(e,r,ln),i=Xs(e,r,"uid"),o=Xs(e,r,"gid");let c=Xs(e,r,fn),l=Xs(e,r,"unixExtraFieldType"),d=Xs(e,r,pn),w=Xs(e,r,hn),f=Xs(e,r,mn);if(i!==$&&(0>i||i>R))throw new u("Invalid uid (must be integer 0..2^32-1)");if(o!==$&&(0>o||o>R))throw new u("Invalid gid (must be integer 0..2^32-1)");if(c!==$&&(0>c||c>M))throw new u("Invalid UNIX mode (must be integer 0..65535)");if(l!==$&&l!==Is&&l!==Os)throw new u("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");if(l===Os&&(i!==$&&i>M||o!==$&&o>M))throw new u("uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)");l!==$||i===$&&o===$||(l=Is);let p=Xs(e,r,$r),h=Xs(e,r,en);const m=p!==$||h!==$;if(i!==$||o!==$||c!==$||l?(n=!1,s=s&M|768):m&&(n=!0,s&=I),p!==$&&(0>p||p>I))throw new u("Invalid msdosAttributesRaw (must be integer 0..255)");if(h&&"object"!=typeof h)throw new u("Invalid msdosAttributes (must be an object with boolean flags)");if(s>M)throw new u(Fs);let y=Xs(e,r,Yr,0);!r[cn]&&t.endsWith(X)&&(r[cn]=!0);const g=Xs(e,r,cn);let b;return g?(t.endsWith(X)||(t+=X),0===y&&(y=16,n||(y|=16877<<16))):n||0!==y||(y=a?493<<16:27525120),n||(b=y>>16&M,c=c===$?b:c&M,d?c|=_:d=!!(c&_),w?c|=G:w=!!(c&G),f?c|=512:f=!!(512&c),g&&(c|=K),y=(c&M)<<16|y&I),({msdosAttributesRaw:p,msdosAttributes:h}=((e,t)=>{if(e!==$)e&=I;else if(t!==$){const{readOnly:r,hidden:n,system:s,directory:a,archive:i}=t;let o=0;r&&(o|=1),n&&(o|=2),s&&(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}})(p,h)),m&&(y=y&R|p&I),{name:t,Xe:{versionMadeBy:s,msDosCompatible:n,externalFileAttributes:y,unixExternalUpper:b,uid:i,gid:o,unixMode:c,unixExtraFieldType:l,setuid:d,setgid:w,sticky:f,msdosAttributesRaw:p,msdosAttributes:h}}})(e,t,s);({name:t}=i);const c=((e,t,r)=>{const n=Xs(e,r,"encodeText",ze);let s=n(t);if(s===$&&(s=ze(t)),ra(s)>M)throw new u(zs);const a=r[Pr]||"";let i=n(a);if(i===$&&(i=ze(a)),ra(i)>M)throw new u(Ss);const c=Xs(e,r,sn,20);if(c>M)throw new u(Fs);const l=Xs(e,r,Kr,new o),d=Xs(e,r,Gr),w=Xs(e,r,Xr),p=Xs(e,r,Qr,0),h=Xs(e,r,Sn);let m,y;h||(m=Xs(e,r,bn),y=Xs(e,r,xn));const g=Xs(e,r,"encryptionStrength",3),b=Xs(e,r,on),x=Xs(e,r,"extendedTimestamp",!0),S=Xs(e,r,"keepOrder",!0),z=Xs(e,r,kn),F=Xs(e,r,En,!0),k=Xs(e,r,"bufferedWrite"),D=Xs(e,r,"createTempStream"),E=Xs(e,r,"dataDescriptorSignature",!0),v=Xs(e,r,zn),A=Xs(e,r,"useUnicodeFileNames",!0),C=Xs(e,r,dn);if(!h&&C!==$&&0!==C&&8!==C)throw new u("Compression method not supported");let T=Xs(e,r,"level"),U=Xs(e,r,Dn),R=Xs(e,r,"dataDescriptor");k&&R===$&&(R=!1),(R===$||b)&&(R=!0),T!==$&&6!=T&&(U=!1),U||e.config.CompressionStream!==$||e.config.CompressionStreamZlib!==$||(T=0);const I=Xs(e,r,rn);if(!b&&(m!==$||y!==$)&&(1>g||g>3))throw new u(ks);let O=ne;const W=r[un];if(W){let e=0,t=0;W.forEach(t=>e+=4+ra(t)),O=new f(e);const r=ta(O);W.forEach((e,n)=>{if(n>M)throw new u(Ds);if(ra(e)>M)throw new u(Es);Qs(r,t,n),Qs(r,t+2,ra(e)),ea(O,e,t+4),t+=4+ra(e)})}return{comment:a,Xe:{rawFilename:s,rawComment:i,version:c,lastModDate:l,lastAccessDate:d,creationDate:w,internalFileAttributes:p,passThrough:h,password:m,rawPassword:y,encryptionStrength:g,zipCrypto:b,extendedTimestamp:x,keepOrder:S,useWebWorkers:z,transferStreams:F,bufferedWrite:k,createTempStream:D,dataDescriptorSignature:E,signal:v,useUnicodeFileNames:A,compressionMethod:C,level:T,useCompressionStream:U,dataDescriptor:R,zip64:I,rawExtraField:O}}})(e,t,s),{comment:l}=c,d=s[un];let w;e.files.set(t,$);try{const o=await(async(e,t,{Xe:r},n)=>{const{passThrough:s,zipCrypto:a,password:i,rawPassword:o,encryptionStrength:c}=r;let{dataDescriptor:l,zip64:d,level:w,compressionMethod:f}=r,p=0,h=0;if(s){if(!t)throw new u(Us);if(h=n[Br],h===$)throw new u(Ts)}const m=!0===d,y=Xs(e,n,nn),g=!!t&&(!!(i&&ra(i)||o&&ra(o))||s&&y);t||(w=0,f=0);const b=g?a?12:16+4*c:0;t&&(t=new Rr(t),await Ir(t),s?(n.uncompressedSize=h,p=Js(h)+b):t.size===$?(l=!0,(d||d===$)&&(d=!0,h=p=4294967296)):(n.uncompressedSize=h=t.size,p=Js(h)+b));const x=m||h>=R,S=m||p>=R;if(x||S){if(!1===d)throw new u(Cs);d=!0}return d=d||!1,{reader:t,Xe:{dataDescriptor:l,zip64:d,qe:x,je:S,uncompressedSize:h,level:w,compressionMethod:f,encrypted:g}}})(e,n,c,s);({reader:n}=o);const{diskOffset:l,diskNumber:d}=e.writer,p=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:n,creationDate:s,level:a,zip64:i,zipCrypto:o,useUnicodeFileNames:c,dataDescriptor:l,directory:d,rawExtraField:w,encryptionStrength:f,extendedTimestamp:p,passThrough:h,encrypted:m,qe:y,je:g,uncompressedSize:b}=e;let{version:x,compressionMethod:S}=e;const z=!d&&(S===$?a===$||a>0:0!==S);let F;const k=h||!z,D=i&&(e.bufferedWrite||!l||!y&&!g||k),E=D||i&&l&&(y||g);if(i&&(y||g)){const e=20,t=Bs(e);if(t.uint16(1),t.uint16(e-4),F=t.array,D&&(t.Je(b),k)){const e=m?o?12:16+4*f:0;t.Je(h?0:b+e)}}else F=ne;let v,A,C,T,U;if(m&&!o){const e=Bs(ra(Ms)+2);e.uint16(39169),e.bytes(Ms),v=e.array,v[8]=f}else v=ne;if(p){const e=Ks(r);if(_s(e)){const t=9+(n?4:0)+(s?4:0),r=Bs(t);T=1+(n?2:0)+(s?4:0),r.uint16(j),r.uint16(t-4),r.uint8(T),r.uint32(e),n&&r.uint32(Gs(Ks(n))),s&&r.uint32(Gs(Ks(s))),C=r.array}else C=ne;try{const e=qs(r),t=Bs(36);t.uint16(10),t.uint16(32),t.Qe(4),t.uint16(1),t.uint16(24),t.Je(e),t.Je(qs(n)||e),t.Je(qs(s)||e),A=t.array}catch{A=ne}}else A=C=ne;try{const{uid:t,gid:r,unixExtraFieldType:n}=e;if(n!=Is||t===$&&r===$)if(n!=Os||t===$&&r===$)U=ne;else{const e=Bs(8);e.uint16(30805),e.uint16(4),e.uint16((t===$?0:t)&M),e.uint16((r===$?0:r)&M),U=e.array}else{const e=Vs(t),n=Vs(r),s=3+e.length+n.length,a=Bs(4+s);a.uint16(30837),a.uint16(s),a.uint8(1),a.uint8(e.length),a.bytes(e),a.uint8(n.length),a.bytes(n),U=a.array}}catch{U=ne}S===$&&(S=z?8:0),i&&(x=x>45?x:45),m&&!o&&(x=x>51?x:51,v[9]=S,S=99);const R=E?ra(F):0,I=R+ra(v,C,A,U,w);if(I>M)throw new u(Es);const{Be:W,He:N,rawLastModDate:L}=na({version:x,bitFlag:sa(a,c,l,m,S),compressionMethod:S,uncompressedSize:b,lastModDate:Y>r?Y:r>Q?Q:r,rawFilename:t,je:g,qe:y,extraFieldLength:I}),Z=Bs(J+ra(t)+I),P=Z.array,V=ta(P);return Z.uint32(O),Z.bytes(W),Z.bytes(t),E&&Z.bytes(F),Z.bytes(v),Z.bytes(C),Z.bytes(A),Z.bytes(U),Z.bytes(w),l&&(g||Ys(V,18,0),y||Ys(V,22,0)),{Ye:P,$e:V,Be:W,He:N,lastModDate:r,rawLastModDate:L,encrypted:m,compressed:z,version:x,compressionMethod:S,Ge:T,Ne:ne,et:R,Ze:C,Pe:A,Ve:U,Le:v,extraFieldLength:I}})(s=r.assign({},s,i.Xe,c.Xe,o.Xe,{internalFileAttribute:c.Xe.internalFileAttributes,externalFileAttribute:i.Xe.externalFileAttributes,signature:s[wn],offset:e.offset-l,diskNumberStart:d})),h=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:r})=>{let n,s=ne,a=0,i=e?20:12;return r&&(i+=4),t&&(s=new f(i),n=ta(s),r&&(a=4,Ys(n,0,N))),{tt:s,rt:n,nt:a}})(s),m=ra(p.Ye,h.tt);w=await(async(e,t,n,s,i)=>{const{files:o,writer:c}=e,{keepOrder:l,dataDescriptor:d,signal:w}=i,{st:p}=s,h=e.options.usdz,m=e.We;let y,b,x,S,z,F,D,v={},A=0;o.set(t,v),e.We=v;try{let b;l&&(b=m&&m.lock,v.lock=new g(e=>x=e)),i.bufferedWrite||!l||e.it||e.Oe||!d?(y=!0,e.Oe++,D=i.createTempStream?await i.createTempStream():new k($,$,{highWaterMark:ee}),D.size=0,await Ir(c)):(D=c,await C()),await Ir(D);const{diskOffset:U}=c;if(e.Ue){delete e.Ue;const t=new f(4);Ys(ta(t),0,W),await js(c,t),e.offset+=4}h&&!y&&Ps(s,e.offset-U);const{Ye:M}=p;y||(await b,await T());const O=c.diskNumber,N=Hs(e,c);if(v.diskNumberStart=O,y||(z=!0,F=c.size,await js(D,M)),v=await(async(e,t,{diskNumberStart:n,lock:s},i,o,c)=>{const{st:l,ot:d,ct:w}=i,{Be:f,He:p,lastModDate:h,rawLastModDate:m,encrypted:y,compressed:g,version:b,compressionMethod:x,Ne:S,et:z,Ze:F,Ge:k,Pe:D,Ve:E,Le:v}=l,{tt:A}=d,{rawFilename:C,lastAccessDate:T,creationDate:U,password:M,rawPassword:O,level:W,zip64:N,qe:L,je:Z,zipCrypto:P,dataDescriptor:V,directory:B,executable:H,versionMadeBy:j,rawComment:q,rawExtraField:K,useWebWorkers:_,transferStreams:G,onstart:X,onprogress:J,onend:Q,signal:Y,encryptionStrength:ee,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:ne,externalFileAttributes:se,uid:ae,gid:ie,unixMode:oe,setuid:ce,setgid:de,sticky:we,unixExternalUpper:ue,msdosAttributesRaw:fe,msdosAttributes:pe,useCompressionStream:he,passThrough:me}=c,ye={lock:s,versionMadeBy:j,zip64:N,directory:!!B,executable:!!H,filenameUTF8:!0,rawFilename:C,commentUTF8:!0,rawComment:q,Ne:S,et:z,Ze:F,Pe:D,Ve:E,Le:v,rawExtraField:K,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:ne,externalFileAttributes:se,diskNumberStart:n,uid:ae,gid:ie,unixMode:oe,setuid:ce,setgid:de,sticky:we,unixExternalUpper:ue,msdosAttributesRaw:fe,msdosAttributes:pe};let{signature:ge,uncompressedSize:be}=c,xe=0;me||(be=0);const{writable:Se}=t;if(e){const r=e.ye?e.ye({chunkSize:le(o)}):e.readable,n=e.size,s={options:{codecType:Dt,level:W,rawPassword:O,password:M,encryptionStrength:ee,zipCrypto:y&&P,passwordVerification:y&&P&&m>>8&I,signed:!me,compressed:g&&!me,encrypted:y&&!me,useWebWorkers:_,useCompressionStream:he,transferStreams:G},config:o,re:{signal:Y,size:n,onstart:X,onprogress:J,onend:Q}};try{const e=await Jt({readable:r,writable:Se},s);if(xe=e.outputSize,t.size+=xe,me||(be=e.inputSize,ge=e.signature),!Z&&xe>=R||!L&&be>=R)throw new u(Cs)}catch(e){throw e.outputSize!==$&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:r,st:n,ot:s},{zip64:i,zipCrypto:o,dataDescriptor:c})=>{const{He:l,encrypted:d}=n,{rt:w,nt:u}=s;d&&!o||e===$||(Ys(l,10,e),c&&Ys(w,u,e)),i?c&&($s(w,u+4,a(t)),$s(w,u+12,a(r))):(Ys(l,14,t),Ys(l,18,r),c&&(Ys(w,u+4,t),Ys(w,u+8,r)))})({signature:ge,compressedSize:xe,uncompressedSize:be,st:l,ot:d},c),V&&await js(t,A),r.assign(ye,{uncompressedSize:be,compressedSize:xe,lastModDate:h,rawLastModDate:m,creationDate:U,lastAccessDate:T,encrypted:y,zipCrypto:P,size:w+xe,compressionMethod:x,version:b,Be:f,He:p,signature:ge,Ge:k,qe:L,je:Z}),ye})(n,D,v,s,e.config,i),y||(z=!1),o.set(t,v),v.filename=t,y){if(await g.all([D.writable.getWriter().close(),b]),await C(),S=!0,F=c.size,await T(),v.diskNumberStart=c.diskNumber,v.offset=Hs(e,c),h){const t=s.ct;Ps(s,e.offset-c.diskOffset),v.size+=s.ct-t}(({rawFilename:e,encrypted:t,zip64:r,et:n,signature:s,compressedSize:i,uncompressedSize:o,qe:c,je:l},d,{dataDescriptor:w})=>{if(w||(t||Ys(d,14,s),l||Ys(d,18,i),c||Ys(d,22,o)),r&&n){const t=J+ra(e)+4;$s(d,t,a(o)),$s(d,t+8,a(i))}})(v,p.$e,i),await js(c,p.Ye),await(async(e,t,r)=>{const n=t.writable.getWriter();try{await e.pipeTo(new E({async write(e){var t;await n.ready,await n.write(e),t=ra(e),A+=t}}),{preventClose:!0,preventAbort:!0,signal:r})}finally{n.releaseLock()}})(D.readable,c,w),c.size+=D.size,S=!1}else v.diskNumberStart=O,v.offset=N;return e.offset+=v.size,v}catch(r){if(S||z){if(e.hasCorruptedEntries=!0,r)try{r.corruptedEntry=!0}catch{}e.offset+=c.size-F,y&&(e.offset+=A)}throw o.delete(t),r}finally{if(y&&e.Oe--,x&&x(),b&&b(),y&&D&&D.dispose)try{await D.dispose()}catch{}}async function C(){e.it=!0;const{lt:t}=e;e.lt=new g(t=>b=()=>{e.it=!1,t()}),await t}async function T(){ra(p.Ye)>c.availableSize&&(c.availableSize=0,await js(c,ne))}})(e,t,n,{st:p,ot:h,ct:m},s)}catch(r){throw e.files.delete(t),r}return r.assign(w,{name:t,comment:l,extraField:d}),new gn(w)})(s,e,t,n),i.add(l),await l}catch(t){throw d&&s.Re.delete(e),t}finally{i.delete(l);const e=Ns.shift();e?e():Ws--}}remove(e){const{Re:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==$){const{filename:n}=e;if(t.has(n)&&r.has(n))return t.delete(n),r.delete(n),!0}return!1}async close(e=ne,r={}){const{Ie:n,writer:s}=this,{writable:i}=s;if(ra(e)>M)throw new u(xs);for(;n.size;)await g.allSettled(t.from(n));return await(async(e,r,n)=>{const s=(e=>{let t=0;for(const[,r]of e){const{rawFilename:e,Le:n,rawComment:s,Pe:a,Ve:i,rawExtraField:o,extendedTimestamp:c,Ge:l,lastModDate:d,qe:w,je:f,uncompressedSize:p,compressedSize:h}=r,m=r.offset>=R,y=r.diskNumberStart>=M;let g,b;if(m||y||w||f){const e=4+(w?8:0)+(f?8:0)+(m?8:0)+(y?4:0),t=Bs(e);t.uint16(1),t.uint16(e-4),w&&t.Je(p),f&&t.Je(h),m&&t.Je(r.offset),y&&t.uint32(r.diskNumberStart),g=t.array}else g=ne;r.Ne=g,r.Ke=m,r._e=y;const x=Ks(d);if(c&&_s(x)){const e=Bs(9);e.uint16(j),e.uint16(5),e.uint8(l),e.uint32(x),b=e.array}else b=ne;r.Ze=b;const S=ra(g,n,a,i,b,o);if(S>M)throw new u(Es);t+=46+ra(e,s)+S}return t})(e.files),{dt:i,wt:o}=await(async(e,r,n)=>{const{files:s,writer:a}=e,i=new f(r);await Ir(a);let o=0,c=0,l=a.diskNumber,d=a.diskOffset;for(const[e,r]of t.from(s.values()).entries()){const{offset:t,rawFilename:w,Ne:u,Le:f,Ze:p,Pe:h,Ve:m,rawExtraField:y,rawComment:g,versionMadeBy:b,Be:x,He:S,qe:z,je:F,_e:k,Ke:D,internalFileAttributes:E,externalFileAttributes:v,diskNumberStart:A,uncompressedSize:C,compressedSize:T}=r,U=ra(u,f,p,h,m,y),I=46+ra(w,g)+U;o+I-c>a.availableSize&&(await js(a,i.slice(c,o)),c=o,a.availableSize=0,await js(a,ne)),0==e&&(l=a.diskNumber,d=a.diskOffset),z||Ys(S,18,C),F||Ys(S,14,T),(D||k)&&45>r.version&&Qs(S,0,45);const O=Bs(I);if(O.uint32(L),O.uint16(b),O.bytes(x.subarray(0,24)),O.uint16(U),O.uint16(ra(g)),O.uint16(k?M:A),O.uint16(E),O.uint32(v),O.uint32(D?R:t),O.bytes(w),O.bytes(u),O.bytes(f),O.bytes(p),O.bytes(h),O.bytes(m),O.bytes(y),O.bytes(g),ea(i,O.array,o),o+=I,n.onprogress)try{await n.onprogress(e+1,s.size,new gn(r))}catch{}}return await js(a,c?i.slice(c):i),{dt:l,wt:d}})(e,s,n);await(async(e,t,r,n)=>{const{writer:s}=e,{dt:i,wt:o}=n;let{ut:c}=n,l=e.files.size,d=i,w=e.offset-o-(i?e.Me:0),f=s.diskNumber;s.availableSize<B&&f++;let p=Xs(e,r,rn);if(!(R>w&&R>c&&M>l&&M>f)){if(!1===p)throw new u(Cs);p=!0}const h=ra(t);if(h>M)throw new u(xs);const m=Bs(p?98:B);ra(m.array)+h>s.availableSize&&(s.availableSize=0,await js(s,ne)),f=s.diskNumber,p&&(m.uint32(P),m.Je(44),m.uint16(45),m.uint16(45),m.uint32(f),m.uint32(d),m.Je(l),m.Je(l),m.Je(c),m.Je(w),m.uint32(V),m.uint32(f),m.Je(a(e.offset)+a(c)-a(s.diskOffset)-a(s.diskNumber?e.Me:0)),m.uint32(f+1),Xs(e,r,"supportZip64SplitFile",!0)&&(f=M,d=M),l=M,w=R,c=R),m.uint32(Z),m.uint16(f),m.uint16(d),m.uint16(l),m.uint16(l),m.uint32(c),m.uint32(w),m.uint16(h),await js(s,m.array),h&&await js(s,t)})(e,r,n,{dt:i,wt:o,ut:s})})(this,e,r),Xs(this,r,vn)||await i.getWriter().close(),s.getData?s.getData():i}}function Zs(e,t,r){e.Ie.add(t),t.catch(e=>{try{r(e)}catch{}})}function Ps(e,t){const{st:r}=e;let{Ye:n,extraFieldLength:s}=r,a=64-(t+ra(n))%64;4>a&&(a+=64);const i=new f(a),o=ta(i);Qs(o,0,6534),Qs(o,2,a-4);const c=n;r.Ye=n=new f(ra(c)+a),ea(n,c),ea(n,i,ra(c));const l=ta(n);Qs(l,28,s+a),r.$e=l,e.ct+=a}function Vs(e){if(e===$)return ne;{const t=new f(4);ta(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function Bs(e){const t=new f(e),r=ta(t);let n=0;return{array:t,uint8:e=>{((e,t,r)=>{e.setUint8(t,r)})(r,n,e),n+=1},uint16:e=>{Qs(r,n,e),n+=2},uint32:e=>{Ys(r,n,e),n+=4},Je:e=>{$s(r,n,a(e)),n+=8},bytes:e=>{ea(t,e,n),n+=ra(e)},Qe:e=>n+=e}}function Hs(e,t){return e.offset-t.diskOffset-(t.diskNumber?e.Me:0)}async function js(e,t){const{writable:r}=e,n=r.getWriter();try{await n.ready,e.size+=ra(t),await n.write(t)}finally{n.releaseLock()}}function qs(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function Ks(e){return i.floor(e.getTime()/1e3)}function _s(e){return e>=vs&&As>=e}function Gs(e){return i.min(As,i.max(vs,e))}function Xs(e,t,r,n){const s=t[r]===$?e.options[r]:t[r];return s===$?n:s}function Js(e){return e+5*(i.floor(e/16383)+1)}function Qs(e,t,r){e.setUint16(t,r,!0)}function Ys(e,t,r){e.setUint32(t,r,!0)}function $s(e,t,r){e.setBigUint64(t,r,!0)}function ea(e,t,r){e.set(t,r)}function ta(e){return new m(e.buffer,e.byteOffset,e.byteLength)}function ra(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function na({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:n,compressedSize:s,lastModDate:a,rawLastModDate:i,rawFilename:o,je:c,qe:l,extraFieldLength:d}){const w=Bs(26),u=w.array,f=ta(u);if(w.uint16(e),w.uint16(t),w.uint16(r),i===$){const e=new h(1),t=ta(e);Qs(t,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),Qs(t,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate()),i=e[0]}return w.uint32(i),w.Qe(4),c||s!==$?w.uint32(c?R:s):w.Qe(4),l||n!==$?w.uint32(l?R:n):w.Qe(4),w.uint16(ra(o)),w.uint16(d),{Be:u,He:f,rawLastModDate:i}}function sa(e,t,r,n,s){let a=0;return t&&(a|=q),r&&(a|=8),8!=s&&9!=s||(0>e||e>3||(a|=6),e>3&&5>=e&&(a|=4),9==e&&(a|=2)),n&&(a|=1),a}const aa=1048576,ia=".zip.js-temp";try{de({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 w("zip-core.min.js",S.baseURI).href})}catch{}e.BlobReader=pr,e.BlobWriter=hr,e.Data64URIReader=class extends ur{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const n=e.indexOf(",")+1;r.assign(this,{dataURI:e,ft:n,size:i.floor(.75*(t-n))})}readUint8Array(e,t){const{ft:r,dataURI:n}=this,s=new f(t),a=4*i.floor(e/3),o=atob(n.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++)s[e-c]=o.charCodeAt(e),l++;return l<s.length?s.subarray(0,l):s}},e.Data64URIWriter=class extends fr{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r,s=t.pending;const a=t.pending.length;for(t.pending="",r=0;r<3*i.floor((a+e.length)/3)-a;r++)s+=n.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=n.fromCharCode(e[r]);s.length>2?t.data+=F(s):t.pending=s+t.pending}getData(){return this.data+F(this.pending)}},e.ERR_AMBIGUOUS_ARCHIVE=Hn,e.ERR_BAD_FORMAT=Rn,e.ERR_CENTRAL_DIRECTORY_NOT_FOUND=On,e.ERR_DUPLICATED_NAME=bs,e.ERR_ENCRYPTED=Ln,e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=In,e.ERR_EOCDR_NOT_FOUND=Mn,e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=Nn,e.ERR_HTTP_RANGE=nr,e.ERR_INVALID_COMMENT=xs,e.ERR_INVALID_COMPRESSED_DATA=mt,e.ERR_INVALID_ENCRYPTION_STRENGTH=ks,e.ERR_INVALID_ENTRY_COMMENT=Ss,e.ERR_INVALID_ENTRY_NAME=zs,e.ERR_INVALID_EXTRAFIELD_DATA=Es,e.ERR_INVALID_EXTRAFIELD_TYPE=Ds,e.ERR_INVALID_PASSWORD=Ae,e.ERR_INVALID_SIGNATURE=Ce,e.ERR_INVALID_UNCOMPRESSED_SIZE=ht,e.ERR_INVALID_VERSION=Fs,e.ERR_ITERATOR_COMPLETED_TOO_SOON=sr,e.ERR_LOCAL_FILE_HEADER_NOT_FOUND=Wn,e.ERR_OVERLAPPING_ENTRY=Bn,e.ERR_SPLIT_ZIP_FILE=Vn,e.ERR_UNDEFINED_READER=Us,e.ERR_UNDEFINED_UNCOMPRESSED_SIZE=Ts,e.ERR_UNSUPPORTED_COMPRESSION=Pn,e.ERR_UNSUPPORTED_ENCRYPTION=Zn,e.ERR_UNSUPPORTED_FORMAT=Cs,e.ERR_WRITER_NOT_INITIALIZED=ar,e.ERR_ZIP_NOT_EMPTY=Rs,e.HttpRangeReader=class extends Cr{constructor(e,t={}){super(e,r.assign({},t,{useRangeHeader:!0}))}},e.HttpReader=Cr,e.Reader=ur,e.SplitDataReader=Tr,e.SplitDataWriter=Ur,e.TextReader=class extends pr{constructor(e){super(new y([e],{type:"text/plain"}))}},e.TextWriter=class extends hr{constructor(e){super(e),r.assign(this,{encoding:e,ht:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,ht:t}=this,n=await super.getData();if(n.text&&t)return n.text();{const t=new FileReader;return new g((s,a)=>{r.assign(t,{onload:({target:e})=>s(e.result),onerror:()=>a(t.error)}),t.readAsText(n,e)})}}},e.Uint8ArrayReader=class extends ur{constructor(e){super(),e=new f(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 fr{constructor(e){super(),this.defaultBufferSize=e||262144}init(e=0){r.assign(this,{offset:0,array:new f(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 n=t.array;t.array=new f(e),t.array.set(n)}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=fr,e.ZipReader=Gn,e.ZipReaderStream=class{constructor(e={}){const{readable:t,writable:r}=new k,n=new Gn(t,e).getEntriesGenerator();this.readable=new D({async pull(e){const{done:t,value:r}=await n.next();if(t)return e.close();const s={...r,readable:(()=>{const{readable:e,writable:t}=new k;if(r.getData)return(async()=>{try{await r.getData(t)}catch(e){try{await t.abort(e)}catch{}}})(),e})()};delete s.getData,e.enqueue(s)}}),this.writable=r}},e.ZipWriter=Ls,e.ZipWriterStream=class{constructor(e={}){const{readable:t,writable:r}=new k;this.readable=t,this.zipWriter=new Ls(r,e),this.Ie=new l}transform(e){const t=this.zipWriter;let r;const{readable:n,writable:s}=new k({start(e){r=e},flush:()=>{(async()=>{try{await t.close()}catch(e){try{await t.writer.writable.abort(e)}catch{}}})()}});return Zs(this,this.zipWriter.add(e,n),e=>r.error(e)),{readable:this.readable,writable:s}}writable(e){let t;const{readable:r,writable:n}=new k({start(e){t=e}});return Zs(this,this.zipWriter.add(e,r),e=>t.error(e)),n}async close(e,r={}){return await g.all(t.from(this.Ie)),this.zipWriter.close(e,r)}},e.configure=de,e.createOPFSTempStream=(e={})=>{const{thresholdBytes:t=aa,directoryName:r=ia,getDirectory:n=()=>C.storage.getDirectory()}=e;let s;function a(){return s||(s=g.resolve(n()).then(e=>e.getDirectoryHandle(r,{create:!0}))),s}return()=>{const e=[];let r,n,s,i,o=0,c=!1;const l=new E({async write(i){c?await s.write(i):(e.push(i),o+=i.length,o>t&&await(async()=>{const t=await a();r=z.randomUUID(),n=await t.getFileHandle(r,{create:!0}),s=(await n.createWritable()).getWriter(),c=!0;for(const t of e)await s.write(t);e.length=0})())},async close(){s&&(await s.close(),s=null)}});let d=0;return{writable:l,readable:new D({async pull(t){if(c){if(!i){const e=await n.getFile();i=e.stream().getReader()}const{value:e,done:r}=await i.read();r?t.close():t.enqueue(e)}else d<e.length?t.enqueue(e[d++]):t.close()},async cancel(e){i&&await i.cancel(e)}},{highWaterMark:0}),dispose:async()=>{if(s){try{await s.close()}catch{}s=null}if(r){try{const e=await a();await e.removeEntry(r)}catch{}n=r=null}e.length=0}}}},e.getMimeType=()=>"application/octet-stream",e.terminateWorkers=async()=>{await g.allSettled(qt.map(e=>(tr(e),e.terminate())))}});