@zip.js/zip.js 2.8.35 → 2.8.37

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