@zip.js/zip.js 2.9.0 → 2.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -0
- package/deno.json +1 -1
- package/dist/zip-core-external.js +5 -12
- package/dist/zip-core-external.min.js +1 -1
- package/dist/zip-core.js +5 -12
- package/dist/zip-core.min.js +1 -1
- package/dist/zip-fs-core-external.js +159 -55
- package/dist/zip-fs-core-external.min.js +1 -1
- package/dist/zip-fs-core.js +160 -54
- package/dist/zip-fs-core.min.js +1 -1
- package/dist/zip-fs-external.js +159 -55
- package/dist/zip-fs-external.min.js +1 -1
- package/dist/zip-fs-native.js +160 -54
- package/dist/zip-fs-native.min.js +1 -1
- package/dist/zip-fs.js +160 -54
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-legacy.js +5 -12
- package/dist/zip-legacy.min.js +1 -1
- package/dist/zip-native.js +5 -12
- package/dist/zip-native.min.js +1 -1
- package/dist/zip.js +5 -12
- package/dist/zip.min.js +1 -1
- package/index-native.cjs +160 -54
- package/index-native.min.js +1 -1
- package/index.cjs +160 -54
- package/index.d.cts +87 -7
- package/index.d.ts +87 -7
- package/index.min.js +1 -1
- package/lib/core/util/decode-cp437.js +4 -11
- package/lib/core/version.js +1 -1
- package/lib/core/zip-fs.js +155 -44
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const t=4294967295,e=65535,r=255,n=67324752,o=134695760,a=o,i=84233040,s=33639248,c=101010256,u=101075792,l=117853008,f=46,d=22,w=20,p=56,h=39169,m=21589,y=6534,b=30837,E=30805,S=2048,g=61440,A=16384,R=2048,x=1024,D="/",z=30,F=new Date(2107,11,31,23,59,58),O=new Date(1980,0,1),T=void 0,U=1/0,I="undefined",k="function",C="object",M="string",N=new Uint8Array,v="password",_="rawPassword",P="passThrough",j="signal",B="useWebWorkers",W="useCompressionStream",L="transferStreams",Z="preventClose",V="dataDescriptor",H="offset",G="usdz",K="maxAppendedDataSize",q="signCentralDirectory",Y="filename",X="comment",J="strict",Q="balanced",$="tolerant",tt="Invalid option (must be a function)",et="Invalid signal (must be an AbortSignal instance)",rt="Invalid password (password must be a string, rawPassword must be a Uint8Array)";function nt(t){if(t&&typeof t!=k)throw new Error(tt);return t}function ot(t){if(t&&(typeof t.addEventListener!=k||"boolean"!=typeof t.aborted))throw new Error(et);return t||T}function at(t,e){if(t&&typeof t!=M||e&&!(e instanceof Uint8Array))throw new Error(rt)}function it(t,e,r){if(!Number.isInteger(t)||t<0||t>e)throw new Error(r)}function st(t,e,r){t!==T&&it(t,e,r)}function ct(t){return typeof t==M&&t.trim()?Number(t):t}const ut="Invalid maxWorkers (must be an integer greater than 0)";let lt=2;try{typeof navigator!=I&&navigator.hardwareConcurrency&&(lt=navigator.hardwareConcurrency)}catch{}const ft={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:lt,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,workerStartupTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof CompressionStream!=I&&CompressionStream,DecompressionStream:typeof DecompressionStream!=I&&DecompressionStream},dt="maxWorkers",wt=["chunkSize",dt,"terminateWorkerTimeout","workerStarvationTimeout","workerStartupTimeout"],pt=["createWorker","CompressionStream","DecompressionStream","CompressionStreamFallback","DecompressionStreamFallback"],ht=["baseURI","wasmURI","workerURI","useCompressionStream","useWebWorkers","transferStreams",...wt,...pt],mt={...ft};function yt(){return mt}function bt(t){return Et(t.chunkSize)}function Et(t){return t=ct(t),Number.isInteger(t)&&t>=1?Math.max(t,64):65536}function St(t){Object.assign(mt,gt(Rt(t)))}function gt(t){const e={};for(const r of ht){const n=t[r];n!==T&&(e[r]=At(r,n))}return e}function At(t,e){if(wt.includes(t)){if(e=ct(e),t==dt&&(!Number.isInteger(e)||e<1))throw new Error(ut)}else pt.includes(t)&&nt(e);return e}function Rt(t){t=t||{};const{CompressionStreamZlib:e,DecompressionStreamZlib:r}=t;if(e===T&&r===T)return t;const n=Object.assign({},t);return n.CompressionStreamFallback===T&&(n.CompressionStreamFallback=e),n.DecompressionStreamFallback===T&&(n.DecompressionStreamFallback=r),n}function xt(t){const e=gt(Rt(t));Object.assign(ft,e),Object.assign(mt,e)}function Dt(){for(const t of ht)delete mt[t];Object.assign(mt,ft)}function zt(t,e){const r=new Uint8Array(t.length+e.length);return r.set(t),r.set(e,t.length),r}function Ft(t){return t.byteOffset||t.byteLength!=t.buffer.byteLength?new Uint8Array(t):t}function Ot(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}const Tt=[[],[],[],[],[],[],[],[]];for(let t=0;t<256;t++){let e=t;for(let t=0;t<8;t++)e=1&e?e>>>1^3988292384:e>>>1;Tt[0][t]=e}for(let t=0;t<256;t++)for(let e=1;e<8;e++){const r=Tt[e-1][t];Tt[e][t]=r>>>8^Tt[0][255&r]}const[Ut,It,kt,Ct,Mt,Nt,vt,_t]=Tt;class Pt{constructor(t){this.o=t||-1}append(t){let e=0|this.o;const r=0|t.length;let n=0;if(r>=8&&t.buffer){const o=new DataView(t.buffer,t.byteOffset,r),a=r-8;for(;n<=a;n+=8){const t=e^o.getInt32(n,!0),r=o.getInt32(n+4,!0);e=_t[255&t]^vt[t>>>8&255]^Nt[t>>>16&255]^Mt[t>>>24&255]^Ct[255&r]^kt[r>>>8&255]^It[r>>>16&255]^Ut[r>>>24&255]}}for(;n<r;n++)e=e>>>8^Ut[255&(e^t[n])];this.o=e}get(){return~this.o}}class jt extends TransformStream{constructor(){let t;const e=new Pt;super({transform(t,r){e.append(t),r.enqueue(t)},flush(){const r=new Uint8Array(4);new DataView(r.buffer).setUint32(0,e.get()),t.value=r}}),t=this}}function Bt(t){if(typeof TextEncoder==I){t=unescape(encodeURIComponent(t));const e=new Uint8Array(t.length);for(let r=0;r<e.length;r++)e[r]=t.charCodeAt(r);return e}return(new TextEncoder).encode(t)}const Wt={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const r=t[t.length-1],n=Wt.l(r);return 32===n?t.concat(e):Wt.h(e,n,0|r,t.slice(0,t.length-1))},bitLength(t){const e=t.length;if(0===e)return 0;const r=t[e-1];return 32*(e-1)+Wt.l(r)},m(t,e){if(32*t.length<e)return t;const r=(t=t.slice(0,Math.ceil(e/32))).length;return e&=31,r>0&&e&&(t[r-1]=Wt.S(e,t[r-1]&2147483648>>e-1,1)),t},S:(t,e,r)=>32===t?e:(r?0|e:e<<32-t)+1099511627776*t,l:t=>Math.round(t/1099511627776)||32,h(t,e,r,n){for(void 0===n&&(n=[]);e>=32;e-=32)n.push(r),r=0;if(0===e)return n.concat(t);for(let o=0;o<t.length;o++)n.push(r|t[o]>>>e),r=t[o]<<32-e;const o=t.length?t[t.length-1]:0,a=Wt.l(o);return n.push(Wt.S(e+a&31,e+a>32?r:n.pop(),1)),n}},Lt={bytes:{A(t){const e=Wt.bitLength(t)/8,r=new Uint8Array(e);let n;for(let o=0;o<e;o++)3&o||(n=t[o/4]),r[o]=n>>>24,n<<=8;return r},R(t){const e=[];let r,n=0;for(r=0;r<t.length;r++)n=n<<8|t[r],3&~r||(e.push(n),n=0);return 3&r&&e.push(Wt.S(8*(3&r),n)),e}}},Zt=class{constructor(t){const e=this;e.blockSize=512,e.D=[1732584193,4023233417,2562383102,271733878,3285377520],e.F=[1518500249,1859775393,2400959708,3395469782],t?(e.O=t.O.slice(0),e.T=t.T.slice(0),e.U=t.U):e.reset()}reset(){const t=this;return t.O=t.D.slice(0),t.T=[],t.U=0,t}update(t){const e=this;"string"==typeof t&&(t=Lt.I.R(t));const r=e.T=Wt.concat(e.T,t),n=e.U,o=e.U=n+Wt.bitLength(t);if(o>9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");const a=new Uint32Array(r);let i=0;for(let t=e.blockSize+n-(e.blockSize+n&e.blockSize-1);t<=o;t+=e.blockSize)e.C(a.subarray(16*i,16*(i+1))),i+=1;return r.splice(0,16*i),e}M(){const t=this;let e=t.T;const r=t.O;e=Wt.concat(e,[Wt.S(1,1)]);for(let t=e.length+2;15&t;t++)e.push(0);for(e.push(Math.floor(t.U/4294967296)),e.push(0|t.U);e.length;)t.C(e.splice(0,16));return t.reset(),r}N(t,e,r,n){return t<=19?e&r|~e&n:t<=39?e^r^n:t<=59?e&r|e&n|r&n:t<=79?e^r^n:void 0}v(t,e){return e<<t|e>>>32-t}C(t){const e=this,r=e.O,n=Array(80);for(let e=0;e<16;e++)n[e]=t[e];let o=r[0],a=r[1],i=r[2],s=r[3],c=r[4];for(let t=0;t<=79;t++){t>=16&&(n[t]=e.v(1,n[t-3]^n[t-8]^n[t-14]^n[t-16]));const r=e.v(5,o)+e.N(t,a,i,s)+c+n[t]+e.F[Math.floor(t/20)]|0;c=s,s=i,i=e.v(30,a),a=o,o=r}r[0]=r[0]+o|0,r[1]=r[1]+a|0,r[2]=r[2]+i|0,r[3]=r[3]+s|0,r[4]=r[4]+c|0}},Vt={importKey:t=>new Vt._(Lt.bytes.R(t)),P(t,e,r,n){if(r=r||1e4,n<0||r<0)throw new Error("invalid params to pbkdf2");const o=1+(n>>5)<<2;let a,i,s,c,u;const l=new ArrayBuffer(o),f=new DataView(l);let d=0;const w=Wt;for(e=Lt.bytes.R(e),u=1;d<(o||1);u++){for(a=i=t.encrypt(w.concat(e,[u])),s=1;s<r;s++)for(i=t.encrypt(i),c=0;c<i.length;c++)a[c]^=i[c];for(s=0;d<(o||1)&&s<a.length;s++)f.setInt32(d,a[s]),d+=4}return l.slice(0,n/8)},_:class{constructor(t){const e=this,r=e.j=Zt,n=[[],[]];e.B=[new r,new r];const o=e.B[0].blockSize/32;t.length>o&&(t=(new r).update(t).M());for(let e=0;e<o;e++)n[0][e]=909522486^t[e],n[1][e]=1549556828^t[e];e.B[0].update(n[0]),e.B[1].update(n[1]),e.W=new r(e.B[0])}reset(){const t=this;t.W=new t.j(t.B[0]),t.L=!1}update(t){this.L=!0,this.W.update(t)}digest(){const t=this,e=t.W.M(),r=new t.j(t.B[1]).update(e).M();return t.reset(),r}encrypt(t){if(this.L)throw new Error("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}},Ht=typeof crypto!=I&&typeof crypto.getRandomValues==k,Gt="Invalid password",Kt="Invalid signature",qt=Kt,Yt="zipjs-abort-check-password",Xt="Crypto API not supported";function Jt(t){if(Ht)return crypto.getRandomValues(t);throw new Error(Xt)}const Qt=16,$t={name:"PBKDF2"},te=Object.assign({hash:{name:"HMAC"}},$t),ee=Object.assign({iterations:1e3,hash:{name:"SHA-1"}},$t),re=["deriveBits"],ne=[8,12,16],oe=[16,24,32],ae=10,ie=[0,0,0,0],se=typeof crypto!=I,ce=se&&crypto.subtle,ue=se&&typeof ce!=I,le=Lt.bytes,fe=class{constructor(t){const e=this;e.Z=[[[],[],[],[],[]],[[],[],[],[],[]]],e.Z[0][0][0]||e.V();const r=e.Z[0][4],n=e.Z[1],o=t.length;let a,i,s,c=1;if(4!==o&&6!==o&&8!==o)throw new Error("invalid aes key size");for(e.F=[i=t.slice(0),s=[]],a=o;a<4*o+28;a++){let t=i[a-1];(a%o===0||8===o&&a%o===4)&&(t=r[t>>>24]<<24^r[t>>16&255]<<16^r[t>>8&255]<<8^r[255&t],a%o===0&&(t=t<<8^t>>>24^c<<24,c=c<<1^283*(c>>7))),i[a]=i[a-o]^t}for(let t=0;a;t++,a--){const e=i[3&t?a:a-4];s[t]=a<=4||t<4?e:n[0][r[e>>>24]]^n[1][r[e>>16&255]]^n[2][r[e>>8&255]]^n[3][r[255&e]]}}encrypt(t){return this.H(t,0)}decrypt(t){return this.H(t,1)}V(){const t=this.Z[0],e=this.Z[1],r=t[4],n=e[4],o=[],a=[];let i,s,c,u;for(let t=0;t<256;t++)a[(o[t]=t<<1^283*(t>>7))^t]=t;for(let l=i=0;!r[l];l^=s||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,r[l]=a,n[a]=l,u=o[c=o[s=o[l]]];let f=16843009*u^65537*c^257*s^16843008*l,d=257*o[a]^16843008*a;for(let r=0;r<4;r++)t[r][l]=d=d<<24^d>>>8,e[r][a]=f=f<<24^f>>>8}for(let r=0;r<5;r++)t[r]=t[r].slice(0),e[r]=e[r].slice(0)}H(t,e){if(4!==t.length)throw new Error("invalid aes block size");const r=this.F[e],n=r.length/4-2,o=[0,0,0,0],a=this.Z[e],i=a[0],s=a[1],c=a[2],u=a[3],l=a[4];let f,d,w,p=t[0]^r[0],h=t[e?3:1]^r[1],m=t[2]^r[2],y=t[e?1:3]^r[3],b=4;for(let t=0;t<n;t++)f=i[p>>>24]^s[h>>16&255]^c[m>>8&255]^u[255&y]^r[b],d=i[h>>>24]^s[m>>16&255]^c[y>>8&255]^u[255&p]^r[b+1],w=i[m>>>24]^s[y>>16&255]^c[p>>8&255]^u[255&h]^r[b+2],y=i[y>>>24]^s[p>>16&255]^c[h>>8&255]^u[255&m]^r[b+3],b+=4,p=f,h=d,m=w;for(let t=0;t<4;t++)o[e?3&-t:t]=l[p>>>24]<<24^l[h>>16&255]<<16^l[m>>8&255]<<8^l[255&y]^r[b++],f=p,p=h,h=m,m=y,y=f;return o}},de=class{constructor(t,e){this.G=t,this.K=e,this.Y=e}reset(){this.Y=this.K}update(t){return this.X(this.G,t,this.Y)}J(t){if(255&~(t>>24))t+=1<<24;else{let e=t>>16&255,r=t>>8&255,n=255&t;255===e?(e=0,255===r?(r=0,255===n?n=0:++n):++r):++e,t=0,t+=e<<16,t+=r<<8,t+=n}return t}$(t){0===(t[0]=this.J(t[0]))&&(t[1]=this.J(t[1]))}X(t,e,r){let n;if(!(n=e.length))return[];const o=Wt.bitLength(e);for(let o=0;o<n;o+=4){this.$(r);const n=t.encrypt(r);e[o]^=n[0],e[o+1]^=n[1],e[o+2]^=n[2],e[o+3]^=n[3]}return Wt.m(e,o)}},we=Vt._;let pe=se&&ue&&typeof ce.importKey==k,he=se&&ue&&typeof ce.deriveBits==k;class me extends TransformStream{constructor({password:t,rawPassword:e,encryptionStrength:r,checkPasswordOnly:n,checkAuthenticationCode:o=!0}){super({start(){be(this,t,e,r)},async transform(t,e){const r=this,{password:o,strength:a,et:i,ready:s}=r;o?(await async function(t,e,r,n){const o=await Se(t,e,r,Ae(n,0,ne[e])),a=Ae(n,ne[e]);if(o[0]!=a[0]||o[1]!=a[1])throw new Error(Gt)}(r,a,o,Ae(t,0,ne[a]+2)),t=Ae(t,ne[a]+2),n?e.error(new Error(Yt)):i()):await s;const c=new Uint8Array(t.length-ae-(t.length-ae)%Qt);e.enqueue(Ee(r,t,c,0,ae,!0))},async flush(t){const{nt:e,ot:r,it:n,ready:a}=this;if(r&&e){await a;const i=Ae(n,0,n.length-ae),s=Ae(n,n.length-ae);let c=N;if(i.length){const t=xe(le,i);r.update(t);const n=e.update(t);c=Re(le,n)}const u=Ae(Re(le,r.digest()),0,ae);let l=n.length<ae?1:0;for(let t=0;t<ae;t++)l|=u[t]^s[t];if(l&&o)throw new Error(qt);t.enqueue(c)}}})}}class ye extends TransformStream{constructor({password:t,rawPassword:e,encryptionStrength:r}){super({start(){be(this,t,e,r)},async transform(t,e){const r=this,{password:n,strength:o,et:a,ready:i}=r;let s=N;n?(s=await async function(t,e,r){const n=Jt(new Uint8Array(ne[e]));return zt(n,await Se(t,e,r,n))}(r,o,n),a()):await i;const c=new Uint8Array(s.length+t.length-t.length%Qt);c.set(s,0),e.enqueue(Ee(r,t,c,s.length,0))},async flush(t){const{nt:e,ot:r,it:n,ready:o}=this;if(r&&e){await o;let a=N;if(n.length){const t=e.update(xe(le,n));r.update(t),a=Re(le,t)}const i=Re(le,r.digest()).slice(0,ae);t.enqueue(zt(a,i))}}})}}function be(t,e,r,n){Object.assign(t,{ready:new Promise(e=>t.et=e),password:ge(e,r),strength:n-1,it:N})}function Ee(t,e,r,n,o,a){const{nt:i,ot:s,it:c}=t;c.length&&(e=zt(c,e));const u=e.length-o;let l;for(r=function(t,e){if(e&&e>t.length){const r=t;(t=new Uint8Array(e)).set(r,0)}return t}(r,n+(u-u%Qt)),l=0;l<=u-Qt;l+=Qt){const t=xe(le,Ae(e,l,l+Qt));a&&s.update(t);const o=i.update(t);a||s.update(o),r.set(Re(le,o),l+n)}return t.it=Ae(e,l),r}async function Se(t,e,r,n){t.password=null;const o=await async function(t,e,r,n,o){if(!pe)return Vt.importKey(e);try{return await ce.importKey("raw",e,r,!1,o)}catch{return pe=!1,Vt.importKey(e)}}(0,r,te,0,re),a=await async function(t,e,r){if(!he)return Vt.P(e,t.salt,ee.iterations,r);try{return await ce.deriveBits(t,e,r)}catch{return he=!1,Vt.P(e,t.salt,ee.iterations,r)}}(Object.assign({salt:n},ee),o,8*(2*oe[e]+2)),i=new Uint8Array(a),s=xe(le,Ae(i,0,oe[e])),c=xe(le,Ae(i,oe[e],2*oe[e])),u=Ae(i,2*oe[e]);return Object.assign(t,{keys:{key:s,st:c,passwordVerification:u},nt:new de(new fe(s),Array.from(ie)),ot:new we(c)}),u}function ge(t,e){return e===T?Bt(t):e}function Ae(t,e,r){return t.subarray(e,r)}function Re(t,e){return t.A(e)}function xe(t,e){return t.R(e)}class De extends TransformStream{constructor({password:t,rawPassword:e,passwordVerification:r,checkPasswordOnly:n}){super({start(){Fe(this,t,e,r)},transform(t,e){const r=this;if(r.password||r.rawPassword){const e=Oe(r,t.subarray(0,12));if(r.password=r.rawPassword=null,0!=(e[11]^r.passwordVerification))throw new Error(Gt);t=t.subarray(12)}n?e.error(new Error(Yt)):e.enqueue(Oe(r,t))}})}}class ze extends TransformStream{constructor({password:t,rawPassword:e,passwordVerification:r}){super({start(){Fe(this,t,e,r)},transform(t,e){const r=this;let n,o;if(r.password||r.rawPassword){r.password=r.rawPassword=null;const e=Jt(new Uint8Array(12));e[11]=r.passwordVerification,n=new Uint8Array(t.length+e.length),n.set(Te(r,e),0),o=12}else n=new Uint8Array(t.length),o=0;n.set(Te(r,t),o),e.enqueue(n)}})}}function Fe(t,e,r,n){Object.assign(t,{password:e,rawPassword:r,passwordVerification:n}),function(t,e,r){const n=[305419896,591751049,878082192];if(Object.assign(t,{keys:n,ct:new Pt(n[0]),ut:new Pt(n[2])}),r)for(let e=0;e<r.length;e++)Ue(t,r[e]);else for(let r=0;r<e.length;r++)Ue(t,e.charCodeAt(r))}(t,e,r)}function Oe(t,e){const r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=Ie(t)^e[n],Ue(t,r[n]);return r}function Te(t,e){const r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=Ie(t)^e[n],Ue(t,e[n]);return r}function Ue(t,e){let[,r]=t.keys;t.ct.append([e]);const n=~t.ct.get();r=Ce(Math.imul(Ce(r+ke(n)),134775813)+1),t.ut.append([r>>>24]);const o=~t.ut.get();t.keys=[n,r,o]}function Ie(t){const e=2|t.keys[2];return ke(Math.imul(e,1^e)>>>8)}function ke(t){return 255&t}function Ce(t){return 4294967295&t}function Me(t){if(t instanceof ReadableStream)return t;const e=t.getReader();return new ReadableStream({async pull(t){const{value:r,done:n}=await e.read();n?t.close():t.enqueue(r)},cancel:t=>e.cancel(t)})}function Ne(t,e){t=Me(t);const r=e?{type:e}:{};if(typeof Blob.prototype.stream!=k||new Blob([]).stream()instanceof ReadableStream)return new Response(t).blob().then(t=>e?new Blob([t],r):t);const n=[];return t.pipeTo(new WritableStream({write(t){n.push(t)}})).then(()=>new Blob(n,r))}function ve(t){if(t instanceof WritableStream)return t;const e=t.getWriter();return new WritableStream({write:t=>e.write(t),close:()=>e.close(),abort:t=>e.abort(t)})}const _e="Invalid codec definition",Pe="Reserved compression method",je="Invalid codec module",Be=[0,8,9,99],We=new Map,Le=new Map;function Ze(t={}){const{compressionMethod:r,format:n,codecURI:o,CompressionStream:a,DecompressionStream:i,versionNeeded:s}=t;if(!Number.isInteger(r)||r<0||r>e||typeof n!=M||!n.length)throw new Error(_e);if(Be.includes(r))throw new Error(Pe);const c=typeof a==k||typeof i==k;if(!(c||typeof o==M&&o.length))throw new Error(_e);We.set(r,{compressionMethod:r,format:n,codecURI:o,versionNeeded:s}),c&&qe(n,{CompressionStream:a,DecompressionStream:i})}function Ve(t){const e=We.get(t);if(e){let r;We.delete(t),We.forEach(t=>r=r||t.format==e.format),r||Le.delete(e.format)}}function He(t){return We.get(t)}function Ge(){return Array.from(We.values(),t=>Object.assign({},t,Le.get(t.format)))}function Ke(t){return Le.get(t)}function qe(t,e){const{CompressionStream:r,DecompressionStream:n}=e;if(typeof r!=k&&typeof n!=k)throw new Error(je);Le.set(t,{CompressionStream:r,DecompressionStream:n})}const Ye="Invalid uncompressed size",Xe="Invalid compressed data",Je=Kt,Qe="deflate-raw",$e="deflate64-raw",tr="gzip",er=[31,139,8];class rr extends TransformStream{constructor(t,{chunkSize:e,CompressionStreamFallback:r,CompressionStream:n}){super({});const{compressed:o,encrypted:a,useCompressionStream:i,zipCrypto:s,computeCrc32:c,level:u,deflate64:l,format:f,compressionMethod:d,inputSize:w}=t,p=this;let h,m,y,b=super.readable;const E=f&&Ke(f),S=c&&o&&!l&&!E&&(!a||s)&&Boolean(i&&n);if(a&&!s||!c||S||(h=new jt,b=fr(b,h)),o)if(E)b=dr(b,ur(E.CompressionStream,f,{level:u,chunkSize:e,compressionMethod:d,uncompressedSize:w}));else if(S)y=new nr,b=dr(b,new n(tr)),b=fr(b,y);else try{b=lr(b,i,{level:u,chunkSize:e},n,r)}catch(t){let e;try{e=new n(tr)}catch{throw t}b=dr(b,e),b=fr(b,new nr)}a&&(s?b=fr(b,new ze(t)):(m=new ye(t),b=fr(b,m))),cr(p,b,()=>{a&&!s||!c||(p.crc32=S?y.crc32:new DataView(h.value.buffer).getUint32(0))})}}class nr extends TransformStream{constructor(){let t,e=10,r=new Uint8Array(0);super({transform(t,n){if(e){const r=Math.min(e,t.length);if(e-=r,!(t=t.subarray(r)).length)return}const o=r.length+t.length;if(o<=8)return void(r=zt(r,t));const a=o-8,i=Math.min(a,r.length);n.enqueue(zt(r.subarray(0,i),t.subarray(0,a-i))),r=zt(r.subarray(i),t.subarray(a-i))},flush(){const e=Ot(r);t.crc32=e.getUint32(0,!0),t.uncompressedSize=e.getUint32(4,!0)}}),t=this}}class or extends TransformStream{constructor(t,{chunkSize:e,DecompressionStreamFallback:r,DecompressionStream:n}){super({});const{zipCrypto:o,encrypted:a,checkCrc32:i,crc32:s,compressed:c,useCompressionStream:u,deflate64:l,format:f,compressionMethod:d,rawBitFlag:w,outputSize:p}=t;let h,m,y=super.readable;if(a&&(o?y=fr(y,new De(t)):(m=new me(t),y=fr(y,m))),c){const t=f&&Ke(f);if(t)y=dr(y,ur(t.DecompressionStream,f,{chunkSize:e,compressionMethod:d,rawBitFlag:w,uncompressedSize:p}));else try{y=lr(y,u,{chunkSize:e,deflate64:l},n,r)}catch(t){if(l||p===T)throw t;let e;try{e=new n(tr)}catch{throw t}y=function(t,e,r){const n=new Pt;let o,a,i,s=0,c=!1;const u=new Promise((t,e)=>{a=t,i=e});u.catch(()=>{}),r||a();const l=new TransformStream({start(t){const e=new Uint8Array(10);e.set(er),t.enqueue(e)},transform(t,e){e.enqueue(t)},async flush(t){c=!0,d();try{await u}finally{w()}const e=new Uint8Array(8),o=Ot(e);o.setUint32(0,n.get(),!0),o.setUint32(4,r,!0),t.enqueue(e)},cancel(t){i(t)}}),f=new TransformStream({transform(t,e){n.append(t),s+=t.length,s>=r?a():c&&d(),e.enqueue(t)},cancel(t){i(t)}});return t=fr(t,l),fr(t=dr(t,e),f);function d(){w(),o=setTimeout(()=>i(new Error(Ye)),5e3)}function w(){clearTimeout(o)}}(y,e,p)}y=function(t){const e=t.getReader();return new ReadableStream({async pull(t){let r;try{r=await e.read()}catch(t){if(t&&t.message)throw t;const e=new Error(Xe);throw e.cause=t,e}const{value:n,done:o}=r;o?t.close():t.enqueue(n)},cancel:t=>e.cancel(t)})}(y)}i&&(h=new jt,y=fr(y,h)),cr(this,y,()=>{if(i){const t=new DataView(h.value.buffer);if(s!=t.getUint32(0,!1))throw new Error(Je)}})}}const ar=new Map;function ir(t,e){if(!t)return!1;let r=ar.get(t);r||(r=new Map,ar.set(t,r));let n=r.get(e);if(n===T){try{new t(e),n=!0}catch{n=!1}r.set(e,n)}return n}function sr(t){return ir(t,Qe)}function cr(t,e,r){e=fr(e,new TransformStream({flush:r})),Object.defineProperty(t,"readable",{get:()=>e})}function ur(t,e,r){if(!t)throw new Error("Compression method not supported");return new t(e,r)}function lr(t,e,r,n,o){const a=e&&n?n:o||n,i=r.deflate64?$e:Qe;let s;try{s=new a(i,r)}catch(t){if(!e||!o||a==o)throw t;s=new o(i,r)}return dr(t,s)}function fr(t,e){return Me(t).pipeThrough(e)}function dr(t,e){const r=e.writable.getWriter(),n=t.getReader();return async function(){try{for(;;){await r.ready;const t=await n.read();if(t.done){await r.close();break}await r.write(t.value)}}catch(t){await async function(t,e){try{await t.abort(e)}catch{}}(r,t),await async function(t,e){try{await t.cancel(e)}catch{}}(n,t)}}(),e.readable}const wr="data",pr="deflate",hr="inflate";class mr extends TransformStream{constructor(t,e){super({});const r=this,{codecType:n}=t;let o;n.startsWith(pr)?o=rr:n.startsWith(hr)&&(o=or),r.outputSize=0;let a=0;const i=new o(t,e),s=super.readable,c=new TransformStream({transform(t,e){t&&t.length&&(a+=t.length,e.enqueue(t))},flush(){Object.assign(r,{inputSize:a})}}),u=new TransformStream({transform(e,n){if(e&&e.length&&(n.enqueue(e),r.outputSize+=e.length,t.outputSize!==T&&r.outputSize>t.outputSize))throw new Error(Ye)},flush(){const{crc32:t}=i;Object.assign(r,{crc32:t,inputSize:a})}});Object.defineProperty(r,"readable",{get:()=>s.pipeThrough(c).pipeThrough(i).pipeThrough(u)})}}class yr extends TransformStream{constructor(t){const e=[];let r=0;function n(){const n=new Uint8Array(t);let o=0;for(;o<t;){const r=e[0],a=t-o;r.length<=a?(n.set(r,o),o+=r.length,e.shift()):(n.set(r.subarray(0,a),o),e[0]=r.subarray(a),o+=a)}return r-=t,n}(!Number.isFinite(t)||t<1)&&(t=65536),super({transform(o,a){for(e.push(o),r+=o.length;r>t;)a.enqueue(n())},flush(t){r&&t.enqueue(function(t,e){const r=new Uint8Array(e);let n=0;for(const e of t)r.set(e,n),n+=e.length;return r}(e,r))}})}}const br="Worker startup timeout";let Er,Sr,gr,Ar=()=>{};async function Rr(t){const{CompressionStream:e,CompressionStreamFallback:r}=t;if(r&&!r.lt)return!0;if(sr(e)||ir(e,tr))return!0;if(r)try{return await Ar(t),!0}catch{return!1}return!1}function xr(t){t.createWorker?Sr=!0:Er=!1}class Dr{constructor(t,{readable:e,writable:r},{options:n,config:o,ft:a,useWebWorkers:i,transferStreams:s,workerURI:c,createWorker:u},l){const{signal:f}=a;return Sr&&(u=T),Object.assign(t,{wt:!0,ht:(t.ht||0)+1,readable:e.pipeThrough(new yr(bt(o))).pipeThrough(new zr(a),{signal:f}),writable:r,options:Object.assign({},n),workerURI:c,createWorker:u,transferStreams:s,terminate:()=>new Promise(e=>{const{yt:r,wt:n}=t;r?(n?t.bt=e:(r.terminate(),e()),t.Et=null):e()}),St(){if(t.wt){const{bt:e}=t;e&&(t.bt=null,t.gt=!0,t.yt.terminate(),e()),t.wt=!1,l(t)}}}),Er===T&&(Er=typeof Worker!=I),(i&&gr&&(Er&&c||u)?gr:Or)(t,o)}}class zr extends TransformStream{constructor({onstart:t,onprogress:e,size:r,onend:n}){let o=0;super({async start(){t&&await Fr(t,r)},async transform(t,n){o+=t.length,e&&await Fr(e,o,r),n.enqueue(t)},async flush(){n&&await Fr(n,o)}})}}async function Fr(t,...e){try{await t(...e)}catch{}}function Or(t,e){return{run:()=>Tr(t,e)}}async function Tr({options:t,readable:e,writable:r,St:n},o){let a;try{if(t.compressed&&!t.format){const e=t.codecType.startsWith(pr),r=e?o.CompressionStreamFallback:o.DecompressionStreamFallback,n=e?o.CompressionStream:o.DecompressionStream;if(t.useCompressionStream){if(r&&r.lt&&!sr(n))try{await Ar(o)}catch{}}else try{await Ar(o)}catch{r&&!r.lt||(t.useCompressionStream=!0)}}a=new mr(t,o),await e.pipeThrough(a).pipeThrough(new yr(bt(o))).pipeTo(r,{preventClose:!0,preventAbort:!0});const{crc32:n,inputSize:i,outputSize:s}=a;return{crc32:n,inputSize:i,outputSize:s}}catch(t){throw a&&(t.outputSize=a.outputSize),t}finally{n()}}const Ur={type:"module"},Ir="error";let kr,Cr,Mr,Nr=!0;try{Nr=typeof structuredClone==k&&structuredClone(new DOMException("","AbortError")).code!==T}catch{}var vr;function _r(t){const{reader:e}=t;e&&e.releaseLock(),t.reader=null,t.writer=null}function Pr(t){const{yt:e}=t;if(e)try{e.terminate()}catch{}t.Et=null}function jr(t,e,r,n,o=!0){const{createWorker:a}=r;let i,s,c;if(a)i=a();else if(Cr===T||kr!==t){const a=typeof t==k;s=a?t(o):t;const u=s.startsWith("data:"),l=s.startsWith("blob:");if(u||l){n===T&&(n=!1),n&&(c=Ur);try{i=new Worker(s,c)}catch(o){if(l)try{URL.revokeObjectURL(s)}catch{}if(a&&l)return jr(t,e,r,n,!1);if(n)throw o;return jr(t,e,r,!0,!1)}}else{n===T&&(n=!0),n&&(c=Ur);try{s=new URL(s,e)}catch{}try{i=new Worker(s,c)}catch(a){if(n)return jr(t,e,r,!1,o);throw a}}kr=t,Cr=s,Mr=c}else i=new Worker(Cr,Mr);return i.addEventListener("message",t=>{r.At=!0,Br(r),async function({data:t},e){const{type:r,value:n,messageId:o,result:a,error:i}=t,{reader:s,writer:c,Rt:u,xt:l,St:f,ht:d}=e,w=()=>e.ht!=d;try{if(i){const{message:t,stack:e,code:r,name:n,outputSize:o,cause:a,codecImportFailed:s}=i,c=new Error(t);Object.assign(c,{stack:e,code:r,name:n,outputSize:o}),a&&(c.cause=Object.assign(new Error(a.message),{name:a.name})),s&&(c.codecImportFailed=!0),p(c)}else{if("pull"==r){const{value:t,done:r}=await s.read();w()||Lr({type:wr,value:t,done:r,messageId:o},e)}r==wr&&(await c.ready,await c.write(new Uint8Array(n)),w()||Lr({type:"ack",messageId:o},e)),"close"==r&&p(null,a)}}catch(i){w()||(Pr(e),p(i))}function p(t,e){w()||(t?l(t):u(e),c&&c.releaseLock(),t&&t.codecImportFailed||f())}}(t,r)}),i.addEventListener(Ir,t=>Wr(t,r)),i.addEventListener("messageerror",t=>Wr(t,r)),i}function Br(t){const{Dt:e}=t;e&&(clearTimeout(e),t.Dt=null)}function Wr(t,e){t.preventDefault&&t.preventDefault(),Br(e);const{At:r,xt:n,writer:o,St:a}=e;Pr(e),r||(e.yt=null);let i=t.error||new Error(t.message||Ir);r||(i=Object.assign(new Error(i.message||Ir),{zt:!0}),e.Ft=i),n&&(n(i),o&&o.releaseLock(),r&&a())}function Lr(t,{yt:e,writer:r,transferStreams:n,At:o}){try{const{value:r,readable:a,writable:i}=t,s=[];if(r&&(t.value=Ft(r),s.push(t.value.buffer)),n&&Nr&&o?(a&&s.push(a),i&&s.push(i)):t.readable=t.writable=null,s.length)try{return e.postMessage(t,s),!0}catch{Nr=!1,t.readable=t.writable=null,e.postMessage(t)}else e.postMessage(t)}catch(t){throw r&&r.releaseLock(),t}}vr=function(t,e){const{baseURI:r,chunkSize:n,workerStartupTimeout:o}=e;let{wasmURI:a}=e;if(!t.Et){let i;typeof a==k&&(a=a());try{i=jr(t.workerURI,r,t)}catch{return xr(t),Or(t,e)}Object.assign(t,{yt:i,At:!1,gt:!1,Ft:null,Et:{run:async()=>{try{return await async function(t,e){if(!t.yt){const{Ft:e}=t;t.Ft=null;const r=e||new Error(br);throw r.zt=!0,r}let r,n;const o=new Promise((t,e)=>{r=t,n=e});Object.assign(t,{reader:null,writer:null,Rt:r,xt:n,result:o});const{readable:a,options:i}=t,{writable:s,closed:c,Ot:u}=function(t){const e=new AbortController,{writable:r,readable:n}=new TransformStream,o=n.pipeTo(t,{preventClose:!0,preventAbort:!0,signal:e.signal});return o.catch(()=>{}),{writable:r,closed:o,Ot:()=>e.abort()}}(t.writable);let l;try{l=Lr({type:"start",options:i,config:e,readable:a,writable:s},t)}catch(e){u();try{await c}catch{}throw t.St(),e}l||Object.assign(t,{reader:a.getReader(),writer:s.getWriter()});const{workerStartupTimeout:f}=e;!t.At&&Number.isFinite(f)&&f>=0&&(t.Dt=setTimeout(()=>function(t){if(t.Dt=null,t.At)return;const{xt:e,writer:r}=t;if(Pr(t),t.yt=null,e){const t=new Error(br);t.zt=!0,e(t),r&&r.releaseLock()}}(t),f));try{const t=await o;return await d(),await c,t}catch(t){await d(),u();try{await c}catch{}throw t}async function d(){if(!l&&!s.locked)try{await s.getWriter().close()}catch{}}}(t,{chunkSize:n,wasmURI:a,baseURI:r,workerStartupTimeout:o})}catch(r){if(r&&r.zt)return xr(t),_r(t),Tr(t,e);if(r&&r.codecImportFailed){if(t.reader)return _r(t),Tr(t,e);t.St()}throw r}}}})}return t.Et},gr=vr;let Zr=[];const Vr=[];let Hr,Gr,Kr=0;async function qr(t,e){const{options:r,config:n}=e,{transferStreams:o,useWebWorkers:a,useCompressionStream:i,compressed:s,checkCrc32:c,computeCrc32:u,encrypted:l,format:f,codecURI:d}=r,{workerURI:w,createWorker:p,maxWorkers:h}=n;f&&(d&&(r.codecURI=function(t,e){try{return new URL(t,e).toString()}catch{return t}}(d,n.baseURI)),await async function(t,e){!Le.has(t)&&e&&qe(t,await(import(/* webpackIgnore: true */ /* @vite-ignore */e)))}(f,r.codecURI)),e.transferStreams=!f&&(o||o===T&&n.transferStreams);const m=!(s||c||u||l),y=f===T||Boolean(r.codecURI);return e.useWebWorkers=!m&&y&&(a||a===T&&n.useWebWorkers),e.workerURI=e.useWebWorkers&&w?w:T,e.createWorker=e.useWebWorkers&&p?p:T,r.useCompressionStream=i||i===T&&n.useCompressionStream,(await async function(){const r=Zr.find(t=>!t.wt);if(r)return $r(r),new Dr(r,t,e,b);if(Zr.length<h){const r={Tt:Kr};return Kr++,Zr.push(r),new Dr(r,t,e,b)}return new Promise(r=>{Vr.push({resolve:r,stream:t,Ut:e}),Gr=n.workerStarvationTimeout,Yr()})}()).run();function b(t){if(Xr(),Vr.length){const[{resolve:e,stream:r,Ut:n}]=Vr.splice(0,1);e(new Dr(t,r,n,b)),Yr()}else t.yt?($r(t),function(t,e){const{config:r}=e,{terminateWorkerTimeout:n}=r;Number.isFinite(n)&&n>=0&&(t.gt?t.gt=!1:t.It=setTimeout(async()=>{Zr=Zr.filter(e=>e!=t);try{await t.terminate()}catch{}},n))}(t,e)):Zr=Zr.filter(e=>e!=t)}}function Yr(){!Hr&&Vr.length&&Number.isFinite(Gr)&&Gr>=0&&(Hr=setTimeout(Jr,Gr))}function Xr(){Hr&&(clearTimeout(Hr),Hr=null)}function Jr(){if(Hr=null,Vr.length){const[{resolve:t,stream:e,Ut:r}]=Vr.splice(0,1),n=Object.assign({},r,{useWebWorkers:!1,workerURI:T,createWorker:T});t(new Dr({},e,n,Qr)),Yr()}}function Qr(){Xr(),Yr()}function $r(t){const{It:e}=t;e&&(clearTimeout(e),t.It=null)}const tn="\0\u263a\u263b\u2665\u2666\u2663\u2660\u2022\u25d8\u25cb\u25d9\u2642\u2640\u266a\u266b\u263c\u25ba\u25c4\u2195\u203c\xb6\xa7\u25ac\u21a8\u2191\u2193\u2192\u2190\u221f\u2194\u25b2\u25bc !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xc7\xfc\xe9\xe2\xe4\xe0\xe5\xe7\xea\xeb\xe8\xef\xee\xec\xc4\xc5\xc9\xe6\xc6\xf4\xf6\xf2\xfb\xf9\xff\xd6\xdc\xa2\xa3\xa5\u20a7\u0192\xe1\xed\xf3\xfa\xf1\xd1\xaa\xba\xbf\u2310\xac\xbd\xbc\xa1\xab\xbb\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03b1\xdf\u0393\u03c0\u03a3\u03c3\xb5\u03c4\u03a6\u0398\u03a9\u03b4\u221e\u03c6\u03b5\u2229\u2261\xb1\u2265\u2264\u2320\u2321\xf7\u2248\xb0\u2219\xb7\u221a\u207f\xb2\u25a0\xa0".split(""),en=256==tn.length;function rn(t,e){return nn(t,e,!0)}function nn(t,e,r){return e&&"cp437"==e.trim().toLowerCase()?function(t){if(en){let e="";for(let r=0;r<t.length;r++)e+=tn[t[r]];return e}return(new TextDecoder).decode(t)}(t):new TextDecoder(e,{ignoreBOM:r}).decode(t)}const on="HTTP error ",an="HTTP Range not supported",sn="HTTP resource changed",cn="Writer iterator completed too soon",un="Writer not initialized",ln="Content-Range",fn="Range",dn="GET",wn="bytes",pn=16777216,hn="writable",mn=Symbol();class yn{constructor(){this.size=0}init(){this.initialized=!0}}class bn extends yn{get readable(){return this.createReadable()}createReadable({offset:t=0,size:e,chunkSize:r=bt(yt())}={}){const n=this;let o=0;return r=Et(r),new ReadableStream({async pull(a){const i=e===T?r:Math.min(r,e-o),s=await no(n,t+o,i);s.length&&a.enqueue(s),o+r>=e||!s.length&&i?a.close():o+=r}})}}class En extends yn{constructor(){super();const t=this,e=new WritableStream({write(e){if(!t.initialized)throw new Error(un);return t.writeUint8Array(Ft(e))}});Object.defineProperty(t,hn,{get:()=>e})}writeUint8Array(){}}class Sn extends bn{constructor(t){super();let e=t.length;for(;"="==t.charAt(e-1);)e--;const r=t.indexOf(",")+1;Object.assign(this,{kt:t,Ct:r,size:Math.floor(.75*(e-r))})}readUint8Array(t,e){const{Ct:r,kt:n}=this,o=new Uint8Array(e),a=4*Math.floor(t/3),i=atob(n.substring(a+r,4*Math.ceil((t+e)/3)+r)),s=t-3*Math.floor(a/4);let c=0;for(let t=s;t<s+e&&t<i.length;t++)o[t-s]=i.charCodeAt(t),c++;return c<o.length?o.subarray(0,c):o}}class gn extends En{constructor(t){super(),Object.assign(this,{contentType:t,data:"data:"+(t||"")+";base64,",Mt:""})}writeUint8Array(t){const e=this;let r,n=e.Mt;const o=e.Mt.length;for(e.Mt="",r=0;r<3*Math.floor((o+t.length)/3)-o;r++)n+=String.fromCharCode(t[r]);for(;r<t.length;r++)e.Mt+=String.fromCharCode(t[r]);n.length>2?e.data+=btoa(n):e.Mt=n+e.Mt}getData(){return this.data+btoa(this.Mt)}}let An,Rn;class xn extends bn{constructor(t){super(),Object.assign(this,{Nt:t,size:t.size}),Rn||(Rn=(async()=>{try{const t=new Blob([new Uint8Array(3)]).slice(1,2).stream().getReader();let e=0,r=await t.read();for(;!r.done;)e+=r.value.length,r=await t.read();An=1==e}catch{An=!1}})())}createReadable(t){const{Nt:e,size:r}=this,{offset:n=0,size:o=r-n}=t||{};return!n&&o>=r?Me(e.stream()):An?Me(e.slice(n,n+o).stream()):super.createReadable(t)}async readUint8Array(t,e){const r=this,n=t+e,o=!t&&n>=r.size?r.Nt:r.Nt.slice(t,n);let a=await o.arrayBuffer();return a.byteLength>e&&(a=a.slice(t,n)),new Uint8Array(a)}}class Dn extends yn{constructor(t){super();const e=this,r=new TransformStream;Object.defineProperty(e,hn,{get:()=>r.writable}),e.contentType=t,e.vt=Ne(r.readable,t),e.vt.catch(()=>{})}getData(){return this.vt}}class zn extends xn{constructor(t){super(new Blob([t],{type:"text/plain"}))}}function Fn(t){let e=0;for(let r=0;r<t.length;r++){const n=t.charCodeAt(r);n<128?e+=1:n<2048?e+=2:n<55296||n>=57344?e+=3:n<56320&&56320==(64512&t.charCodeAt(r+1))?(e+=4,r++):e+=3}return e}class On extends Dn{constructor(t){super(),Object.assign(this,{encoding:t,_t:!t||"utf-8"==t.toLowerCase()})}async getData(){const{encoding:t,_t:e}=this,r=await super.getData();return r.text&&e?r.text():function(t,e){return nn(t,e,!1)}(new Uint8Array(await r.arrayBuffer()),t)}}class Tn extends bn{constructor(t,e){super(),In(this,t,e)}async init(){await kn(this,Vn,Bn),super.init()}createReadable(t){const e=this,{useRangeHeader:r,forceRangeRequests:n,size:o}=e;if((r||n)&&o!==T){const{offset:r=0,size:n=o-r}=t||{};if(n>0&&r<o)return function(t,e,r){let n,o=e,a=0,i=r;return new ReadableStream({start:()=>s(),async pull(t){n||await s();const{value:e,done:r}=await n.read();if(r)throw new Error(an);const o=e.length>a?e.subarray(0,a):e;a-=o.length,i-=o.length,o.length&&t.enqueue(o),a||(await async function(){const t=n;n=T,await t.cancel()}(),i||t.close())},cancel:t=>n&&n.cancel(t)});async function s(){const e=Math.min(t.maximumRangeSize,i),r=await Vn(dn,t,Pn(t,o,e));if(206!=r.status)throw new Error(an);const s=r.headers.get(ln);if(s){const t=Number(s.trim().split(/[\s-]+/)[1]);if(!Number.isNaN(t)&&t!=o)throw new Error(an)}_n(t,r),vn(t,r),o+=e,a=e,n=r.body.getReader()}}(e,r,Math.min(n,o-r))}return super.createReadable(t)}readUint8Array(t,e){return Cn(this,t,e,Vn,Bn)}}class Un extends bn{constructor(t,e){super(),In(this,t,e)}async init(){await kn(this,Hn,Wn),super.init()}readUint8Array(t,e){return Cn(this,t,e,Hn,Wn)}}function In(t,e,r){const{preventHeadRequest:n,useRangeHeader:o,forceRangeRequests:a,combineSizeEocd:i,checkResourceChanges:s=!0,maximumRangeSize:c=pn,fetch:u}=r;delete(r=Object.assign({},r)).preventHeadRequest,delete r.useRangeHeader,delete r.forceRangeRequests,delete r.combineSizeEocd,delete r.checkResourceChanges,delete r.maximumRangeSize,delete r.useXHR,delete r.fetch,Object.assign(t,{url:e,options:r,preventHeadRequest:n,useRangeHeader:o,forceRangeRequests:a,combineSizeEocd:i,checkResourceChanges:s,maximumRangeSize:c,fetch:u})}async function kn(t,e,r){const{url:n,preventHeadRequest:o,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:s}=t;if(function(t){const{baseURI:e}=yt(),{protocol:r}=new URL(t,e);return"http:"==r||"https:"==r}(n)&&(a||i)&&(typeof o==I||o)){const n=await e(dn,t,Pn(t,s?-22:void 0)),o=n.headers.get("Accept-Ranges");if(!(i||o&&o.toLowerCase()==wn))throw new Error(an);{if(s){const e=new Uint8Array(await n.arrayBuffer());206==n.status&&e.length==d&&(t.Pt=e)}vn(t,n);const o=Mn(n);o===T?await Zn(t,e,r):t.size=o}}else await Zn(t,e,r)}async function Cn(t,e,r,n,o){const{useRangeHeader:a,forceRangeRequests:i,Pt:s,size:c,options:u}=t;if(a||i){if(s&&e==c-d&&r==d)return s;if(e>=c||0===r)return N;{e+r>c&&(r=c-e);const o=await n(dn,t,Pn(t,e,r));if(206!=o.status)throw new Error(an);const a=o.headers.get(ln);if(a){const t=Number(a.trim().split(/[\s-]+/)[1]);if(!Number.isNaN(t)&&t!=e)throw new Error(an)}_n(t,o),vn(t,o);const i=new Uint8Array(await o.arrayBuffer());if(i.length!=r)throw new Error(an);return i}}{const{data:n}=t;return n||await o(t,u),t.data.subarray(e,e+r)}}function Mn(t){const e=t.headers.get(ln);if(e){const t=e.trim().split(/\s*\/\s*/)[1];if(t&&"*"!=t){const e=Number(t);if(!Number.isNaN(e))return e}}}function Nn({headers:t}){return{jt:t.get("Etag")||T,lastModified:t.get("Last-Modified")||T}}function vn(t,e){const{checkResourceChanges:r,Bt:n}=t;r&&!n&&206==e.status&&(t.Bt=Nn(e))}function _n(t,e){const{checkResourceChanges:r,Bt:n,size:o}=t;if(r){const t=Mn(e);if(t!==T&&o!==T&&t!=o)throw new Error(sn);if(n){const t=Nn(e);if(Object.entries(n).some(([e,r])=>r!==T&&t[e]!==T&&r!=t[e]))throw new Error(sn)}}}function Pn(t,e=0,r=1){return Object.assign({},jn(t),{[fn]:wn+"="+(e<0?e:e+"-"+(e+r-1))})}function jn({options:t}){const{headers:e}=t;if(e)return Symbol.iterator in e?Object.fromEntries(e):e}async function Bn(t){await Ln(t,Vn)}async function Wn(t){await Ln(t,Hn)}async function Ln(t,e){const r=await e(dn,t,jn(t));t.data=new Uint8Array(await r.arrayBuffer()),t.size=t.data.length}async function Zn(t,e,r){if(t.preventHeadRequest)await r(t,t.options);else{const n=await e("HEAD",t,jn(t)),o=n.headers.get("Content-Length");o&&!n.headers.get("Content-Encoding")?t.size=Number(o):await r(t,t.options)}}async function Vn(t,{fetch:e=fetch,options:r,url:n},o){const a=await e(n,Object.assign({},r,{method:t,headers:o}));if(a.status<400)return a;throw 416==a.status?new Error(an):new Error(on+(a.statusText||a.status))}function Hn(t,{url:e},r){return new Promise((n,o)=>{const a=new XMLHttpRequest;if(a.addEventListener("load",()=>{if(a.status<400){const t=[];a.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(e=>{const r=e.trim().split(/\s*:\s*/);r[0]=r[0].trim().replace(/^[a-z]|-[a-z]/g,t=>t.toUpperCase()),t.push(r)}),n({status:a.status,arrayBuffer:()=>a.response,headers:new Map(t)})}else o(416==a.status?new Error(an):new Error(on+(a.statusText||a.status)))},!1),a.addEventListener("error",t=>o(t.detail?t.detail.error:new Error("Network error")),!1),a.open(t,e),r)for(const t of Object.entries(r))a.setRequestHeader(t[0],t[1]);a.responseType="arraybuffer",a.send()})}class Gn extends bn{constructor(t,e={}){super(),Object.assign(this,{url:t,reader:e.useXHR&&!e.fetch?new Un(t,e):new Tn(t,e)})}set size(t){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(t){return this.reader.createReadable(t)}readUint8Array(t,e){return this.reader.readUint8Array(t,e)}}class Kn extends Gn{constructor(t,e={}){super(t,Object.assign({},e,{useRangeHeader:!0}))}}class qn extends bn{constructor(t){super(),t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),Object.assign(this,{Wt:t,size:t.length})}readUint8Array(t,e){return this.Wt.slice(t,t+e)}}class Yn extends En{constructor(t){super(),this.Lt=t||262144}init(t=0){Object.assign(this,{offset:0,Wt:new Uint8Array(t>0?t:this.Lt)}),super.init()}writeUint8Array(t){const e=this,r=e.offset+t.length;if(r>e.Wt.length){let t=e.Wt.length?2*e.Wt.length:e.Lt;for(;t<r;)t*=2;const n=e.Wt;e.Wt=new Uint8Array(t),e.Wt.set(n)}e.Wt.set(t,e.offset),e.offset+=t.length}getData(){return this.offset===this.Wt.length?this.Wt:this.Wt.slice(0,this.offset)}}class Xn extends bn{constructor(t){super(),this.Zt=t}async init(){const t=this;t.Vt=0;const e=t.Zt=await Promise.all(t.Zt.map(ro));t.Ht=e.map(e=>{const r=t.size;return t.size+=e.size,r}),super.init()}Gt(t){const{Ht:e,size:r}=this,n=e[t];return n===T?r:n}async readUint8Array(t,e){const r=this,{Zt:n}=this;let o,a=0,i=t;for(;n[a]&&i>=n[a].size;)i-=n[a].size,a++;const s=n[a];if(s){const n=s.size;if(i+e<=n)o=await no(s,i,e);else{const a=n-i;o=zt(await no(s,i,a),await r.readUint8Array(t+a,e-a))}}else o=N;return r.Vt=Math.max(a,r.Vt),o}}class Jn extends yn{constructor(t,e=4294967295){super();const r=this;let n,o,a;Object.assign(r,{diskNumber:0,diskOffset:0,size:0,maxSize:e,availableSize:e});const i=new WritableStream({async write(e){if(e===mn)return void(a&&await c());const{availableSize:i}=r;if(a)e.length>=i?(await s(e.subarray(0,i)),await c(),e.length>i&&await this.write(e.subarray(i))):await s(e);else{const{value:i,done:s}=await t.next();if(s&&!i)throw new Error(cn);n=i,n.size=0,n.maxSize&&(r.maxSize=n.maxSize),r.availableSize=r.maxSize,await eo(n),o=i.writable,a=o.getWriter(),await this.write(e)}},async close(){a&&(await a.ready,await u())},async abort(t){a&&await a.abort(t)}});async function s(t){const e=t.length;e&&(await a.ready,await a.write(t),n.size+=e,r.availableSize-=e)}async function c(){await u(),r.diskOffset+=n.size,r.diskNumber++,a=null,r.availableSize=r.maxSize}async function u(){await a.close()}Object.defineProperty(r,hn,{get:()=>i})}async closeDisk(){const t=this.writable.getWriter();try{await t.ready,await t.write(mn)}finally{t.releaseLock()}}}class Qn{constructor(t){return Array.isArray(t)&&(t=new Xn(t)),(t instanceof ReadableStream||typeof t.getReader==k)&&(t={readable:Me(t)}),t}}class $n{constructor(t){return t.writable===T&&typeof t.next==k&&(t=new Jn(t)),(t instanceof WritableStream||typeof t.getWriter==k)&&(t={writable:ve(t)}),t.size===T&&(t.size=0),t}}function to(t){return Boolean(t&&t.getData)}async function eo(t,e){if(!t.init||t.initialized)return Promise.resolve();await t.init(e)}async function ro(t){return t=new Qn(t),await eo(t),t.size!==T&&t.readUint8Array||(t=new xn(await Ne(t.readable)),await eo(t)),t}function no(t,e,r){return t.readUint8Array(e,r)}function oo(t,e){return t.createReadable?t.createReadable(e):t.readUint8Array?bn.prototype.createReadable.call(t,e):t.readable}const ao="filename",io="rawFilename",so="comment",co="rawComment",uo="uncompressedSize",lo="compressedSize",fo="offset",wo="diskNumberStart",po="lastModDate",ho="rawLastModDate",mo="lastAccessDate",yo="rawLastAccessDate",bo="creationDate",Eo="rawCreationDate",So="internalFileAttributes",go="externalFileAttributes",Ao="internalFileAttribute",Ro="externalFileAttribute",xo="msdosAttributesRaw",Do="msdosAttributes",zo="msDosCompatible",Fo="zip64",Oo="encrypted",To="version",Uo="versionMadeBy",Io="zipCrypto",ko="directory",Co="executable",Mo="compressionMethod",No="signature",vo="extraField",_o="unixMode",Po="setuid",jo="setgid",Bo="sticky",Wo=[ao,io,uo,lo,po,ho,so,co,mo,yo,bo,Eo,fo,wo,So,go,Ao,Ro,xo,Do,zo,Fo,Oo,To,Uo,Io,ko,Co,"symlink",Mo,No,"crc32",vo,"extraFieldUnix","extraFieldInfoZip","extraFieldUnixType1","extraFieldPkwareUnix","uid","gid",_o,"unixExternalUpper",Po,jo,Bo,"bitFlag","rawBitFlag","filenameLength","extraFieldLength","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp","extraFieldUSDZ"];class Lo{constructor(t){Wo.forEach(e=>this[e]=t[e])}}const Zo="File format is not recognized",Vo="End of central directory not found",Ho="End of Zip64 central directory locator not found",Go="Central directory header not found",Ko="Local file header not found",qo="Zip64 extra field not found",Yo="File contains encrypted entry",Xo="Encryption method not supported",Jo="Compression method not supported",Qo="Split zip file",$o="Overlapping entry found",ta="Entry data out of bounds",ea="Ambiguous archive",ra="Encrypted central directory is not supported",na="Unsafe filename",oa="Invalid strictness (must be 'strict', 'balanced' or 'tolerant')",aa="Invalid filenameValidation (must be 'strict', 'balanced' or 'tolerant')",ia="Invalid maxAppendedDataSize (must be a number greater than or equal to 0)",sa="64-bit value exceeds Number.MAX_SAFE_INTEGER",ca="unsorted central directory",ua="unknown version needed to extract",la="compressed patched data",fa="malformed extra field",da="unknown zip64 extensible data",wa="wrapped entries count",pa="appended data",ha="prepended data",ma="prepended central directory",ya="trailing central directory data",ba="duplicate filename",Ea="mismatched zip64 end of central directory record",Sa="mismatched local file header (general purpose bit flag)",ga="mismatched local file header (compression method)",Aa="mismatched local file header (crc32 or sizes)",Ra=/^[a-zA-Z]:/,xa="utf-8",Da="cp437",za=[[uo,t],[lo,t],[fo,t],[wo,e]],Fa={[e]:{Kt:li,bytes:4},[t]:{Kt:fi,bytes:8}},Oa=BigInt(Number.MAX_SAFE_INTEGER);class Ta{constructor(t,e={}){Object.assign(this,{reader:new Qn(t),options:e,qt:new Map})}async*getEntriesGenerator(n={}){const a=this;let{reader:i}=a;if(await eo(i),i.size!==T&&i.readUint8Array||(i=new xn(await Ne(i.readable)),await eo(i)),i.size<d)throw new Error(Zo);const c=a.warnings=[],h=Ga(n,a.options),m=h==J,y=h!=$,b=Ya(oi(a,n,K),h),E=function(t,e){if(t===T)return e;if(!Ha(t))throw new Error(aa);return t}(oi(a,n,"filenameValidation"),h),S=oi(a,n,"normalizeFilename"),{Yt:z,Xt:F}=await Xa(i,y,b);if(!z)throw await async function(t){return await Va(t)==o}(i)?new Error(Qo):new Error(Vo);y&&F>1&&ni("multiple end of central directory records");const O=Ot(z);let U=li(O,12),I=li(O,16);const k=z.offset,C=ui(O,20),M=k+d+C,v=i.size-M;v>b&&ni(pa),v>0&&ri(c,pa);let _=ui(O,4);const P=i.Vt||0;let j,B,W,L,Z,V=ui(O,6),H=ui(O,10),G=0,q=p;const Q=I==t||U==t||H==e||V==e;if(I!=t&&V!=e&&(I+=Za(i,V)),Q){const r=z.offset>=w?await no(i,z.offset-w,w):N,n=Ot(r);if(r.length==w&&li(n,0)==l){I=Za(i,li(n,4))+fi(n,8);let r=await no(i,I,p),o=Ot(r);const a=z.offset-w-p;if((r.length<p||li(o,0)!=u)&&I!=a&&a>=0){const t=I;I=a,I>t&&(G=I-t),r=await no(i,I,p),o=Ot(r)}if(r.length<p||li(o,0)!=u)throw new Error(Ho);if(W=!0,L=fi(o,4)>44,L){const t=Math.min(fi(o,4)-44,i.size-I-p);t>0&&(q+=t,Z=function(t){const e={rawExtensibleData:t};if(t.length>=28){const r=Ot(t),n=ui(r,26);Object.assign(e,{compressionMethod:ui(r,0),compressedSize:fi(r,2),uncompressedSize:fi(r,10),encryptionAlgorithm:ui(r,18),bitLength:ui(r,20),flags:ui(r,22),hashAlgorithm:ui(r,24),hashData:t.subarray(28,28+n)})}return e}(await no(i,I+p,t)))}_==e?_=li(o,16):_!=li(o,16)&&ei(m,c,Ea),V==e?V=li(o,20):V!=li(o,20)&&ei(m,c,Ea),H==e?H=fi(o,32):H!=fi(o,32)&&ei(m,c,Ea),U==t?U=fi(o,40):U!=fi(o,40)&&ei(m,c,Ea),I=Za(i,V)+fi(o,48)+G}}let tt=U;const et=z.offset-(W?q+w:0);if(I>=i.size&&(G=i.size-I-U-d,I=i.size-U-d),P!=_)throw new Error(Qo);if(I<0)throw new Error(Zo);let rt=0,nt=await no(i,I,U),ot=Ot(nt);if(U){if(nt.length<4)throw new Error(Zo);const t=et-U;if(I!=t&&V==_){const e=li(ot,rt)==s||Boolean(Z&&Z.compressedSize)||Ca(ot);let r=!e;if(!r&&t>=0&&t+4<=i.size&&(r=li(Ot(await no(i,t,4)),0)==s),r){const r=I;I=t,I>r&&(G+=I-r,j=e),nt=await no(i,I,U),ot=Ot(nt)}}}const at=et-I;if(U!=at&&at>=0&&V==_&&(U=at,nt=await no(i,I,U),ot=Ot(nt)),I<0||I>=i.size)throw new Error(Zo);a.directoryOffset=I,a.directoryLength=tt;const it=ai(a,n,"decryptCentralDirectory");let st,ct;if(it&&H&&nt.length>=4&&li(ot,0)!=s&&(L||Ca(ot))){const t=function(t,e,r){const n=t&&t.compressedSize?t.compressedSize:e;return n>0&&n<=r?n:r}(Z,tt,nt.length);ct=nt.subarray(t),nt=await it(nt.subarray(0,t),Z),ot=Ot(nt),tt=nt.length,st=!0}Z&&!st&&(nt.length<4||li(ot,0)==s)&&ri(c,da),B=I;const ut=oi(a,n,"filenameEncoding"),lt=oi(a,n,"commentEncoding"),ft=new Set;let dt,wt=-1;const pt=!m&&!W;!H&&pt&&(H=Ma(ot,nt,rt),H&&ri(c,wa));for(let t=0;t<H;t++){const o=new ka(i,a.options);if(rt+f>nt.length||li(ot,rt)!=s){if(0==t&&!st&&(L||Ca(ot)))throw new Error(ra);throw new Error(Go)}va(o,ot,rt+6);const u=Boolean(o.bitFlag.languageEncodingFlag),l=rt+f,d=l+o.filenameLength,w=d+o.extraFieldLength,p=ui(ot,rt+4),h=!(p>>8),m=p>>8==3,y=nt.subarray(l,d),b=ui(ot,rt+32),z=w+b,F=nt.subarray(w,z),O=u,U=u,I=li(ot,rt+38),k=I&r,C={readOnly:Boolean(1&k),hidden:Boolean(2&k),system:Boolean(4&k),directory:Boolean(16&k),archive:Boolean(32&k)},M=li(ot,rt+42),N=ai(a,n,"decodeText")||rn,v=O?xa:ut||Da,_=U?xa:lt||Da;let P=N(y,v,Y);if(P===T&&(P=rn(y,v)),S){const t=S(P);t!==T&&(P=t)}if(qa(P,E)){const t=new Error(na);throw t.filename=P,t}let j=N(F,_,X);j===T&&(j=rn(F,_)),Object.assign(o,{index:t,Jt:st,versionMadeBy:p,msDosCompatible:h,zip64:!1,compressedSize:0,uncompressedSize:0,Qt:b,offset:M,diskNumberStart:ui(ot,rt+34),internalFileAttributes:ui(ot,rt+36),externalFileAttributes:I,msdosAttributesRaw:k,msdosAttributes:C,rawFilename:y,filenameUTF8:O,commentUTF8:U,rawExtraField:nt.subarray(d,w),rawComment:F,filename:P,comment:j}),_a(o,o,ot,rt+6)&&ri(c,fa,P),o.offset+=G;const W=Za(i,o.diskNumberStart)+o.offset;B=Math.min(W,B),W<wt&&ri(c,ca,P),wt=W,(o.version&r)>63&&ri(c,ua,P),32&~o.rawBitFlag||ri(c,la,P),ft.has(o.filename)&&(dt=!0),ft.add(o.filename);const Z=o.externalFileAttributes>>16&e;o.unixMode===T&&16877&Z&&(o.unixMode=Z);const V=Boolean(o.unixMode&R),K=Boolean(o.unixMode&x),q=Boolean(512&o.unixMode),J=40960==((o.unixMode===T?Z:o.unixMode)&g),Q=!J&&(o.unixMode!==T?!!(73&o.unixMode):m&&!!(73&Z)),$=o.unixMode!==T&&(o.unixMode&g)==A,tt=(Z&g)==A;Object.assign(o,{setuid:V,setgid:K,sticky:q,symlink:J,unixExternalUpper:Z,internalFileAttribute:o.internalFileAttributes,externalFileAttribute:o.externalFileAttributes,executable:Q,directory:$||tt||h&&C.directory||o.filename.endsWith(D),zipCrypto:o.encrypted&&!o.extraFieldAES});const et=new Lo(o);if(et.getData=(t,e)=>o.getData(t,et,a.qt,e),et.arrayBuffer=async t=>{const e=new TransformStream,r=Ne(e.readable).then(t=>t.arrayBuffer());return r.catch(()=>{}),await o.getData(e,et,a.qt,t),r},rt=z,t==H-1&&pt){const t=Ma(ot,nt,rt);t&&(H+=t,ri(c,wa))}const{onprogress:at}=n;if(at)try{await at(t+1,H,new Lo(o))}catch{}yield et}let ht=rt,mt=Na(nt.subarray(rt))||(st?Na(ct):T);if(!mt&&!st){const t=I+rt,e=Math.min(et-t,65541);e>=6&&(mt=Na(await no(i,t,e)))}mt&&(a.digitalSignature=mt,ht=rt+6+mt.length),(rt!=tt&&ht!=tt||!st&&rt!=U&&ht!=U)&&ei(m,c,ya),dt&&ei(m,c,ba);const yt=oi(a,n,"extractPrependedData"),bt=oi(a,n,"extractAppendedData"),Et=(m||yt)&&H&&4==B&&await async function(t){const e=await Va(t);return e==o||808471376==e}(i)?4:0;return m&&(G||H&&B>Et)&&ni(ha),(G||H&&B>4)&&ri(c,ha),j&&ri(c,ma),yt&&(a.prependedData=B>Et?await no(i,Et,B-Et):N),a.comment=C?await no(i,k+d,C):N,bt&&(a.appendedData=M<i.size?await no(i,M,i.size-M):N),!0}async getEntries(t={}){const e=[];for await(const r of this.getEntriesGenerator(t))e.push(r);return e}async close(){const{reader:t}=this;t.readUint8Array||!t.readable||t.readable.locked||await t.readable.cancel()}}class Ua{constructor(t={}){const{readable:e,writable:r}=new TransformStream,n=new Ta(e,t).getEntriesGenerator();this.readable=new ReadableStream({async pull(t){const{done:e,value:r}=await n.next();if(e)return t.close();const o={...r,readable:function(){const{readable:t,writable:e}=new TransformStream;if(r.getData)return async function(){try{await r.getData(e)}catch(t){try{await e.abort(t)}catch{}}}(),t}()};delete o.getData,t.enqueue(o)}}),this.writable=r}}async function Ia(t,e={}){if(t=new Qn(t),await eo(t),t.size!==T&&t.readUint8Array||(t=new xn(await Ne(t.readable)),await eo(t)),t.size<d)return!1;const r=Ga(e,{}),n=r!=$,o=Ya(e[K],r),{Yt:a,Xt:i}=await Xa(t,n,o);if(!a||r==J&&i>1)return!1;const s=ui(Ot(a),20),c=a.offset+d+s;return t.size-c<=o}let ka=class{constructor(t,e){Object.assign(this,{reader:t,options:e})}async getData(t,e,o,i={}){const s=this,c=yt(),{reader:u,index:l,offset:f,diskNumberStart:d,extraFieldAES:w,extraFieldZip64:p,compressionMethod:h,bitFlag:m,rawBitFlag:y,crc32:b,rawLastModDate:E,uncompressedSize:S,compressedSize:g}=s,{dataDescriptor:A}=m,R=e.localDirectory={},x=e.warnings=[],D=Za(u,d)+f,F=await no(u,D,z),O=Ot(F);let U=oi(s,i,v),I=oi(s,i,_);const k=oi(s,i,P);if(at(U,I),U=U&&U.length&&U,I=I&&I.length&&I,w&&99!=w.originalCompressionMethod)throw new Error(Jo);if(F.length<z||li(O,0)!=n)throw new Error(Ko);va(R,O,4);const{extraFieldLength:C,filenameLength:M}=R,V=R.dataOffset=D+z+M+C,H=oi(s,i,"checkLocalDirectory"),G=Ga(i,s.options),K=function(t,e){return t===T?e!=$:Boolean(t)}(H,G),q=function(t,e){return t===T?e==J:Boolean(t)}(H,G);let Y=N;if(q&&(M||C)){const t=await no(u,D+z,M+C);Y=t.subarray(0,M),R.rawExtraField=t.subarray(M)}else R.rawExtraField=C?await no(u,D+z+M,C):N;q&&(R.rawFilename=Y),_a(s,R,O,4,!0)&&ri(x,fa),function(t,e,r,n,o){const{rawFilename:a}=t,i=!o,s=t.Jt&&!(8192&~e.rawBitFlag);!n||s||r.length==a.length&&!r.some((t,e)=>t!=a[e])||ei(i,o,"mismatched local file header (filename)"),(2057&e.rawBitFlag)!=(2057&t.rawBitFlag)&&ei(i,o,Sa),e.compressionMethod!=t.compressionMethod&&ei(i,o,ga),e.bitFlag.dataDescriptor||s||!(e.crc32||e.compressedSize||e.uncompressedSize)||e.crc32==t.crc32&&e.compressedSize==t.compressedSize&&e.uncompressedSize==t.uncompressedSize||ei(i,o,Aa)}(s,R,Y,q,K?T:x);const{lastAccessDate:X,creationDate:Q,uid:tt,gid:et}=R;X&&(e.lastAccessDate=X),Q&&(e.creationDate=Q),tt!==T&&e.uid===T&&(e.uid=tt),et!==T&&e.gid===T&&(e.gid=et);const rt=s.encrypted&&R.encrypted&&!k,nt=rt&&!w;if(k||(e.zipCrypto=nt),rt&&!(64&~R.rawBitFlag))throw new Error(Xo);const it=k?T:He(h);if(0!=h&&8!=h&&9!=h&&!it&&!k)throw new Error(Jo);if(rt){if(!nt&&(w.strength<1||w.strength>3))throw new Error(Xo);if(!U&&!I)throw new Error(Yo)}if(V+g>u.size)throw new Error(ta);const st=g,ct=Me(u.createReadable({offset:V,size:st})),ut=ot(oi(s,i,j)),lt=oi(s,i,"checkPasswordOnly");let ft=oi(s,i,"checkOverlappingEntry");const dt=oi(s,i,"checkOverlappingEntryOnly");dt&&(ft=!0);const{onstart:wt,onprogress:pt,onend:ht}=i,mt=0!=h&&!k,bt=k?g:S,Et=9==h;let St=oi(s,i,W);Et&&(St=!1);const gt=oi(s,i,"checkCrc32"),At=(gt===T?oi(s,i,"checkSignature"):gt)&&!k&&(!rt||nt||w&&1==w.vendorVersion),Rt={options:{codecType:hr,password:U,rawPassword:I,zipCrypto:nt,encryptionStrength:w&&w.strength,checkCrc32:At,checkAuthenticationCode:oi(s,i,"checkAuthenticationCode"),passwordVerification:nt&&(A?E>>>8&r:b>>>24&r),outputSize:bt,crc32:b,compressed:mt,encrypted:rt,useWebWorkers:oi(s,i,B),useCompressionStream:St,transferStreams:oi(s,i,L),deflate64:Et,format:it?it.format:T,codecURI:it?it.codecURI:T,compressionMethod:h,rawBitFlag:y,checkPasswordOnly:lt},config:c,ft:{signal:ut,size:st,onstart:wt,onprogress:pt,onend:ht}};let xt,Dt;ft&&await async function({reader:t,$t:e,index:r,offset:n,crc32:o,compressedSize:i,uncompressedSize:s,dataOffset:c,dataDescriptor:u,extraFieldZip64:l,qt:f}){let d=0;if(u&&(d=l?20:12),d){const r=await no(t,c+i,d+4),n=Ot(r);let u=r.length==d+4&&li(n,0)==a;if(u){const t=La(n,4,l);(e.encrypted&&!e.zipCrypto||t.crc32==o)&&t.compressedSize==i&&t.uncompressedSize==s?d+=4:u=!1}if(r.length>=d){const t=La(n,u?4:0,l);t.signature=u,e.localDirectory.dataDescriptor=t}}const w={start:n,end:c+i+d,$t:e};for(const[t,e]of f)if(t!=r&&w.start<e.end&&e.start<w.end){const t=new Error($o);throw t.overlappingEntry=e.$t,t}f.set(r,w)}({reader:u,$t:e,index:l,offset:D,crc32:b,compressedSize:g,uncompressedSize:S,dataOffset:V,dataDescriptor:A||R.bitFlag.dataDescriptor,extraFieldZip64:p||R.extraFieldZip64,qt:o});try{if(!dt){lt&&(t=new WritableStream),t=new $n(t),await eo(t,function(t,e,r){return Math.min(t,r?1032*e:e)}(bt,g,mt)),({writable:xt}=t);const{outputSize:e}=await qr({readable:ct,writable:xt},Rt);if(t.size+=e,e!=bt)throw new Error(Ye)}}catch(e){if(e.outputSize!==T&&(t.size+=e.outputSize),!lt||e.message!=Yt)throw Dt=e,e}finally{if((to(t)||!oi(s,i,Z))&&xt&&!xt.locked){const t=xt.getWriter();if(Dt)try{await t.abort(Dt)}catch{}else await t.close()}}return lt||dt?T:t.getData?t.getData():xt}};function Ca(t){const e=Math.min(t.byteLength,1024)-3;for(let r=0;r<e;r++)if(134630224==li(t,r))return!0;return!1}function Ma(t,e,r){let n=0;for(;r+f<=e.length&&li(t,r)==s;)r+=f+ui(t,r+28)+ui(t,r+30)+ui(t,r+32),n++;return n%65536?0:n}function Na(t){if(t.length>=6){const e=Ot(t);if(li(e,0)==i){const r=ui(e,4);if(6+r<=t.length)return t.subarray(6,6+r)}}}function va(t,e,r){const n=t.rawBitFlag=ui(e,r+2),o=!(1&~n),a=li(e,r+6);Object.assign(t,{encrypted:o,version:ui(e,r),bitFlag:{level:(6&n)>>1,dataDescriptor:!(8&~n),languageEncodingFlag:(n&S)==S},rawLastModDate:a,lastModDate:ii(a),filenameLength:ui(e,r+22),extraFieldLength:ui(e,r+24)})}function _a(t,e,r,n,o){const{rawExtraField:a}=e,i=e.extraField=new Map,s=Ot(a);let c=0,u=!1;try{for(;c<a.length;){const t=ui(s,c),e=ui(s,c+2);i.set(t,{type:t,data:a.slice(c+4,c+4+e)}),c+=4+e}}catch{u=!0}c>a.length&&(u=!0);const l=ui(r,n+4);Object.assign(e,{signature:li(r,n+10),crc32:li(r,n+10),compressedSize:li(r,n+14),uncompressedSize:li(r,n+18)});const f=i.get(1);f&&(function(t,e){e.zip64=!0;const r=Ot(t.data),n=za.filter(([t,r])=>e[t]==r),o=n.reduce((t,[,e])=>t+Fa[e].bytes,0);if(t.data.length<o)throw new Error(qo);for(let o=0,a=0;o<n.length;o++){const[i,s]=n[o],c=Fa[s];e[i]=t[i]=c.Kt(r,a),a+=c.bytes}}(f,e),e.extraFieldZip64=f);const d=i.get(28789);d&&(Pa(d,ao,io,e,t),e.extraFieldUnicodePath=d);const w=i.get(25461);w&&(Pa(w,so,co,e,t),e.extraFieldUnicodeComment=w);const p=i.get(h);p&&p.data.length>=7?(function(t,e,r){const n=Ot(t.data),o=ci(n,4);Object.assign(t,{vendorVersion:ci(n,0),vendorId:ci(n,2),strength:o,originalCompressionMethod:r,compressionMethod:ui(n,5)}),e.compressionMethod=t.compressionMethod,1!=t.vendorVersion&&(e.crc32=T)}(p,e,l),e.extraFieldAES=p):e.compressionMethod=l;const S=i.get(13);S&&(ja(S,e),e.extraFieldPkwareUnix=S);const g=i.get(22613);g&&(ja(g,e),e.extraFieldUnixType1=g);const A=i.get(10);A&&(function(t,e){const r=Ot(t.data);let n,o=4;try{for(;o<t.data.length&&!n;){const e=ui(r,o),a=ui(r,o+2);1==e&&(n=t.data.slice(o+4,o+4+a)),o+=4+a}}catch{}if(n&&24==n.length){const r=Ot(n),o=r.getBigUint64(0,!0),a=r.getBigUint64(8,!0),i=r.getBigUint64(16,!0);Object.assign(t,{rawLastModDate:o,rawLastAccessDate:a,rawCreationDate:i});const s={lastModDate:si(o),lastAccessDate:si(a),creationDate:si(i)};Object.assign(t,s),Object.assign(e,s,{rawLastAccessDate:a,rawCreationDate:i})}}(A,e),e.extraFieldNTFS=A);const R=i.get(E);let x;if(R&&(x=Ba(R,e,!1),e.extraFieldUnix=R),!x){const t=i.get(b);t&&(Ba(t,e,!0),e.extraFieldInfoZip=t)}const D=i.get(m);D&&(function(t,e,r){if(!t.data.length)return;const n=Ot(t.data),o=ci(n,0),a=[],i=[];r?(1&~o||(a.push(po),i.push(ho)),2&~o||(a.push(mo),i.push(yo)),4&~o||(a.push(bo),i.push(Eo))):t.data.length>=5&&(a.push(po),i.push(ho));let s=1;a.forEach((r,o)=>{if(t.data.length>=s+4){const a=li(n,s);e[r]=t[r]=new Date(1e3*(0|a));const c=i[o];t[c]=a}s+=4})}(D,e,o),e.extraFieldExtendedTimestamp=D);const z=i.get(y);return z&&(e.extraFieldUSDZ=z),u}function Pa(t,e,r,n,o){if(t.data.length<5)return void(t.valid=!1);const a=Ot(t.data),i=new Pt;i.append(o[r]);const s=Ot(new Uint8Array(4));s.setUint32(0,i.get(),!0);const c=li(a,1),u=ci(a,0);Object.assign(t,{version:u,[e]:rn(t.data.subarray(5)),valid:1==u&&!o.bitFlag.languageEncodingFlag&&c==li(s,0)}),t.valid&&(n[e]=t[e],n[e+"UTF8"]=!0)}function ja(t,e){if(t.data.length<8)return;const r=Ot(t.data),n={lastAccessDate:new Date(1e3*(0|li(r,0))),lastModDate:new Date(1e3*(0|li(r,4)))};t.data.length>=12&&(n.uid=ui(r,8),n.gid=ui(r,10)),Object.assign(t,n),Object.assign(e,n)}function Ba(t,e,r){try{const n=Ot(t.data);let o,a;if(r){let e=0;const r=ci(n,e++),i=ci(n,e++);o=Wa(t.data.subarray(e,e+i)),e+=i;const s=ci(n,e++);a=Wa(t.data.subarray(e,e+s)),Object.assign(t,{version:r,uid:o,gid:a})}else t.data.length>=4&&(o=ui(n,0),a=ui(n,2),Object.assign(t,{uid:o,gid:a}));return o!==T&&(e.uid=o),a!==T&&(e.gid=a),o!==T||a!==T}catch{}}function Wa(t){const e=new Uint8Array(4);return e.set(t,0),new DataView(e.buffer,e.byteOffset,4).getUint32(0,!0)}function La(t,e,r){const n=li(t,e);let o,a;return r?(o=fi(t,e+4),a=fi(t,e+12)):(o=li(t,e+4),a=li(t,e+8)),{crc32:n,compressedSize:o,uncompressedSize:a}}function Za(t,e){return t.Gt?t.Gt(e):0}async function Va(t){return li(Ot(await no(t,0,4)))}function Ha(t){return t===J||t===Q||t===$}function Ga(t,e){return Ka(t,Ka(e,Q))}function Ka(t,e){const r=t.strictness;if(r!==T){if(!Ha(r))throw new Error(oa);return r}const n=t.checkAmbiguity;return n===T?e:n?J:e==$?$:Q}function qa(t,e){if(e==$)return!1;const r=t.split("/");return r.length>1&&""===r[r.length-1]&&r.pop(),!!(r.includes("..")||t.startsWith("/")||t.startsWith("\\\\")||Ra.test(t))||e==J&&(r.includes(".")||r.includes(""))}function Ya(t,r){if(t!==T){const e=ct(t);if("number"!=typeof e||Number.isNaN(e)||e<0)throw new Error(ia);return e}return r==J?0:r==$?1/0:e}async function Xa(t,e,r){const{size:n}=t,o=Math.min(n,65557),a={count:64};let i,s,c=0;for await(const[r,u,l,f,w]of Ja(t,o)){const o=ui(r,f+20);if(w+d+o==n){const o=await $a(t,r,u,f,w,n,a);if(2==o){if(i||(i=Qa(l,f,w)),c++,!e||c>1)break}else 1!=o||s||(s=Qa(l,f,w))}}return i||(i=s),i||(i=await async function(t,e,r){const{size:n}=t,o=Math.min(n,e==1/0?n:65557+e);let a,i;for await(const[e,s,c,u,l]of Ja(t,o)){const o=Qa(c,u,l);a||(a=o);const f=await $a(t,e,s,u,l,n,r);if(2==f)return o;1!=f||i||(i=o)}return i||a}(t,r,a)),{Yt:i,Xt:c}}async function*Ja(t,e){const r=t.size-e,n=await no(t,r,e),o=Ot(n);for(let t=n.length-d;t>=0;t--)li(o,t)==c&&(yield[o,r,n,t,r+t])}function Qa(t,e,r){return{offset:r,buffer:t.slice(e,e+d).buffer}}async function $a(r,n,o,a,i,c,u){const f=ui(n,a+10),d=li(n,a+12),p=li(n,a+16);if(f==e||d==t||p==t)return await ti(r,n,o,i-w,c,u)==l?2:0;if(!f&&!d)return 1;const h=ui(n,a+6);for(const t of[i-d,Za(r,h)+p])if(await ti(r,n,o,t,c,u)==s)return 2;return 0}async function ti(t,e,r,n,o,a){return n<0||n+4>o?T:n>=r?li(e,n-r):a.count>0?(a.count--,li(Ot(await no(t,n,4)),0)):T}function ei(t,e,r){t?ni(r):ri(e,r)}function ri(t,e,r){if(!t.some(t=>t.reason==e)){const n={reason:e};r!==T&&(n.filename=r),t.push(n)}}function ni(t){const e=new Error(ea);throw e.reason=t,e}function oi(t,e,r){return e[r]===T?t.options[r]:e[r]}function ai(t,e,r){return nt(oi(t,e,r))}function ii(t){const r=(4294901760&t)>>16,n=t&e,o=new Date(1980+((65024&r)>>9),((480&r)>>5)-1,31&r,(63488&n)>>11,(2016&n)>>5,2*(31&n),0);return o<O?O:o}function si(t){return new Date(Number(t/BigInt(1e4)-BigInt(116444736e5)))}function ci(t,e){return t.getUint8(e)}function ui(t,e){return t.getUint16(e,!0)}function li(t,e){return t.getUint32(e,!0)}function fi(t,e){const r=t.getBigUint64(e,!0);if(r>Oa)throw new Error(sa);return Number(r)}var di=Object.freeze({__proto__:null,ERR_AMBIGUOUS_ARCHIVE:ea,ERR_BAD_FORMAT:Zo,ERR_CENTRAL_DIRECTORY_NOT_FOUND:Go,ERR_ENCRYPTED:Yo,ERR_ENCRYPTED_CENTRAL_DIRECTORY:ra,ERR_ENTRY_DATA_OUT_OF_BOUNDS:ta,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:Ho,ERR_EOCDR_NOT_FOUND:Vo,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:qo,ERR_INVALID_AUTHENTICATION_CODE:qt,ERR_INVALID_COMPRESSED_DATA:Xe,ERR_INVALID_CRC32:Je,ERR_INVALID_FILENAME_VALIDATION:aa,ERR_INVALID_MAX_APPENDED_DATA_SIZE:ia,ERR_INVALID_PASSWORD:Gt,ERR_INVALID_SIGNATURE:Kt,ERR_INVALID_STRICTNESS:oa,ERR_INVALID_UNCOMPRESSED_SIZE:Ye,ERR_LOCAL_FILE_HEADER_NOT_FOUND:Ko,ERR_OVERLAPPING_ENTRY:$o,ERR_SPLIT_ZIP_FILE:Qo,ERR_UNSAFE_FILENAME:na,ERR_UNSUPPORTED_COMPRESSION:Jo,ERR_UNSUPPORTED_ENCRYPTION:Xo,ERR_UNSUPPORTED_UINT64:sa,ERR_WORKER_STARTUP_TIMEOUT:br,WARNING_APPENDED_DATA:pa,WARNING_COMPRESSED_PATCHED_DATA:la,WARNING_DUPLICATE_FILENAME:ba,WARNING_MALFORMED_EXTRA_FIELD:fa,WARNING_MISMATCHED_LOCAL_FILE_HEADER_BIT_FLAG:Sa,WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD:ga,WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES:Aa,WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY:Ea,WARNING_PREPENDED_CENTRAL_DIRECTORY:ma,WARNING_PREPENDED_DATA:ha,WARNING_TRAILING_CENTRAL_DIRECTORY_DATA:ya,WARNING_UNKNOWN_VERSION:ua,WARNING_UNKNOWN_ZIP64_EXTENSIBLE_DATA:da,WARNING_UNSORTED_CENTRAL_DIRECTORY:ca,WARNING_WRAPPED_ENTRIES_COUNT:wa,ZipReader:Ta,ZipReaderStream:Ua,isZipFile:Ia});const wi="File already exists",pi="Zip file comment exceeds 64KB",hi="Invalid zip file comment (must be a Uint8Array)",mi="File entry comment exceeds 64KB",yi="Invalid file entry comment (must be a string)",bi="Invalid date (must be a valid Date instance)",Ei="File entry name exceeds 64KB",Si="Version exceeds 65535",gi="The strength must equal 1, 2, or 3",Ai="Encryption is not supported in USDZ files",Ri="Encryption is not supported when the 'passThrough' option is set",xi="Invalid extra field (must be a Map)",Di="Invalid extra field type (must be integer 0..65535)",zi="Invalid extra field data (must be a Uint8Array)",Fi="Extra field data exceeds 64KB",Oi=-2147483648,Ti=2147483647,Ui=BigInt(0),Ii=BigInt("0x7fffffffffffffff"),ki="Zip64 is not supported (set the 'zip64' option to 'true')",Ci="Undefined uncompressed size",Mi="Undefined compression method",Ni="Undetermined size",vi="Undefined reader",_i="Zip file not empty",Pi="Invalid uid (must be integer 0..2^32-1)",ji="Invalid gid (must be integer 0..2^32-1)",Bi="Invalid UNIX mode (must be integer 0..65535)",Wi="Invalid unixExtraFieldType (must be 'infozip' or 'unix')",Li="uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)",Zi="Invalid msdosAttributesRaw (must be integer 0..255)",Vi="Invalid msdosAttributes (must be an object with boolean flags)",Hi="Invalid level (must be integer 0..9)",Gi="Signature data exceeds 64KB",Ki=new Uint8Array([7,0,2,0,65,69,3,0,0]),qi="infozip",Yi="unix";let Xi=0;const Ji=[];class Qi{constructor(t,e={}){t=new $n(t);const{availableSize:r=U,maxSize:n=U}=t,o=r>0&&r!==U&&n>0&&n!==U;Object.assign(this,{writer:t,te:o,options:e,ee:new Map,re:new Set,offset:e[H]===T?t.size||t.writable.size||0:e[H],ne:e[H]===T?0:e[H]-(t.size||t.writable.size||0),oe:new Set,ae:[],ie:0,se:T})}prependZip(t){return es(this,async function(t,e){if(t.re.size)throw new Error(_i);await t.ce(e)}(this,t))}appendZip(t){return es(this,this.ce(t))}async ce(t){const e=this,{oe:r,re:n,ee:a}=e;for(;r.size;)await Promise.allSettled(Array.from(r));let i;const s=new Promise(t=>i=t);r.add(s);const c=[];let u;try{t=new Qn(t),await eo(t),t.size!==T&&t.readUint8Array||(t=new xn(await Ne(t.readable)),await eo(t));const{ZipReader:r}=await Promise.resolve().then(function(){return di}),i=new r(t),s=await i.getEntries();await i.close(),await eo(e.writer);const{directoryOffset:l}=i;s.forEach(({filename:t})=>{if(n.has(t))throw new Error(wi);n.add(t),c.push(t)}),e.ue=!0;const{le:f}=e;e.le=new Promise(t=>u=()=>{e.ue=!1,t()}),await f,e.te&&(delete e.te,await async function(t){return Ot(await no(t,0,4)).getUint32(0,!0)==o}(t)||(await xs(e.writer,As()),e.offset+=4));const d=await async function(t,e,r,n){const{writer:o}=t,a=new Map;if(o.closeDisk){const i=Array.from(r).sort((t,r)=>gs(e,t)-gs(e,r));let s=0;for(const r of i){const n=gs(e,r);await Es(t,e,s,n-s),ms(o,await Ss(e,n))&&await o.closeDisk(),a.set(r,{offset:ys(t,o),diskNumberStart:ps(o)}),s=n}await Es(t,e,s,n-s)}else{const o=t.offset;await Es(t,e,0,n),r.forEach(t=>a.set(t,{offset:o+gs(e,t),diskNumberStart:0}))}return a}(e,t,s,l);s.forEach(t=>{const{version:e,rawLastModDate:r,rawFilename:n,bitFlag:o,encrypted:i,uncompressedSize:s,compressedSize:c,extraFieldZip64:u}=t;let{compressionMethod:l,rawExtraField:f}=t;const{level:w,languageEncodingFlag:p,dataDescriptor:h}=o;f=bs(f||N),t.extraFieldAES&&(l=99);const m=Zs(f),y=Boolean(u)&&u.uncompressedSize!==T,b=Boolean(u)&&u.compressedSize!==T,E=-7&Hs(w,p,h,i,l)|w<<1,{fe:S,de:g}=Vs({version:e,bitFlag:E,compressionMethod:l,uncompressedSize:s,compressedSize:c,rawLastModDate:r,rawFilename:n,we:b,pe:y,extraFieldLength:m}),{crc32:A}=t;A!==T&&Bs(g,10,A);const{offset:R,diskNumberStart:x}=d.get(t);Object.assign(t,{pe:y,we:b,offset:R,diskNumberStart:x,he:!1,me:N,ye:N,be:N,Ee:N,Se:N,rawExtraField:f,ge:N,extendedTimestamp:!1,fe:S,de:g}),a.set(t.filename,t)})}catch(t){throw c.forEach(t=>n.delete(t)),t}finally{i(),r.delete(s),u&&u()}}add(e="",n,o={}){const a=this,{oe:i}=a,s=async function(e,n,o,a){if(Us(e,a=Object.assign({},a),ko)&&!n.endsWith(D)&&(n+=D),e.re.has(n))throw new Error(wi);e.re.add(n),Xi<yt().maxWorkers?Xi++:await new Promise(t=>Ji.push(t));try{return await async function(e,n,o,a){const i=os(e,n,a);({name:n}=i);const s=as(e,n,a),{comment:c}=s,u=a[vo];e.ee.set(n,T);const l=e.se,f={};let d,w;s.Ae.keepOrder&&(f.Re=new Promise(t=>d=t)),e.se=f;try{const{Ae:c}=s;0==c.level||c.compressionMethod!==T||c.passThrough||await Rr(yt())||(c.level=0);const u=await async function(t,e,{Ae:r},n){if(r.passThrough&&!e&&!Us(t,n,ko))throw new Error(vi);let o;return e&&(e=new Qn(e),await eo(e),({size:o}=e)),Object.assign({reader:e},ss(t,Boolean(e),o,r,n))}(e,o,s,a);({reader:o}=u);const p=hs(e.writer),h=ps(e.writer),m=cs(a=Object.assign({},a,i.Ae,s.Ae,u.Ae,{signature:a[No],crc32:a.crc32===T?a[No]:a.crc32,offset:e.offset-p,diskNumberStart:h,[G]:e.options[G]})),y=fs(a),b=Zs(m.xe,y.De);w=await async function(e,n,o,a,i){const{ee:s,writer:c}=e,{keepOrder:u,dataDescriptor:l,ze:f,signal:d}=i,{Fe:w,$t:p,Oe:h,Te:m}=a,y=e.options[G];let b,E,S,g,A,R,x=p,D=0;const F=u&&h?h.Re:T;s.set(n,x);try{i.bufferedWrite||!u||e.ue||e.ie||!l&&!f?(b=!0,e.ie++,R=i.createTempStream?await i.createTempStream():new TransformStream(T,T,{highWaterMark:U}),R.size=0,await eo(c)):(R=c,await F,await O()),await eo(R);const p=hs(c);e.te&&!b&&await Rs(e,c),y&&!b&&us(a,e.offset-p);const{xe:h}=w;b||await I();const m=ps(c),E=ys(e,c);if(x.diskNumberStart=m,b||(g=!0,A=c.size,await xs(R,h)),x=await async function(e,n,{diskNumberStart:o,Re:a},i,s,c){const{Fe:u,Ue:l,Ie:f}=i,{fe:d,de:w,lastModDate:p,rawLastModDate:h,encrypted:m,compressed:y,version:b,compressionMethod:E,me:S,ke:g,be:A,Ce:R,Ee:x,Se:D,ye:z}=u,{De:F}=l,{rawFilename:O,lastAccessDate:U,creationDate:I,password:k,rawPassword:C,level:M,zip64:N,pe:v,we:_,zipCrypto:P,dataDescriptor:j,directory:B,executable:W,versionMadeBy:L,rawComment:Z,rawExtraField:V,ge:H,useWebWorkers:G,transferStreams:K,onstart:q,onprogress:Y,onend:X,signal:J,encryptionStrength:Q,extendedTimestamp:$,msDosCompatible:tt,internalFileAttributes:et,externalFileAttributes:rt,uid:nt,gid:ot,unixMode:at,symlink:it,setuid:st,setgid:ct,sticky:ut,unixExternalUpper:lt,msdosAttributesRaw:ft,msdosAttributes:dt,useCompressionStream:wt,passThrough:pt,format:ht,codecURI:mt}=c,yt={Re:a,versionMadeBy:L,zip64:N,directory:Boolean(B),executable:Boolean(W),filenameUTF8:!0,rawFilename:O,commentUTF8:!0,rawComment:Z,me:S,ke:g,be:A,Ee:x,Se:D,ye:z,rawExtraField:V,ge:H,extendedTimestamp:$,msDosCompatible:tt,internalFileAttributes:et,externalFileAttributes:rt,diskNumberStart:o,uid:nt,gid:ot,unixMode:at,symlink:Boolean(it),setuid:st,setgid:ct,sticky:ut,unixExternalUpper:lt,msdosAttributesRaw:ft,msdosAttributes:dt};let{crc32:bt,uncompressedSize:Et}=c,St=0;pt||(Et=0);const{writable:gt}=n;if(e){const o=Me(oo(e)),a=e.size,i={options:{codecType:pr,inputSize:a,level:M,rawPassword:C,password:k,encryptionStrength:Q,zipCrypto:m&&P,passwordVerification:m&&P&&h>>8&r,computeCrc32:!pt,compressed:y&&!pt,encrypted:m&&!pt,useWebWorkers:G,useCompressionStream:wt,transferStreams:K,format:ht,codecURI:mt,compressionMethod:E},config:s,ft:{signal:J,size:a,onstart:q,onprogress:Y,onend:X}};try{const e=await qr({readable:o,writable:gt},i);if(St=e.outputSize,n.size+=St,pt||(Et=e.inputSize,m&&!P||(bt=e.crc32)),!_&&St>=t||!v&&Et>=t)throw new Error(ki)}catch(t){throw t.outputSize!==T&&(n.size+=t.outputSize),t}}return function({crc32:t,compressedSize:e,uncompressedSize:r,Fe:n,Ue:o},{zip64:a,zipCrypto:i,passThrough:s,dataDescriptor:c}){const{de:u,encrypted:l}=n,{Me:f,Ne:d}=o;l&&!i&&!s||t===T||(Bs(u,10,t),c&&Bs(f,d,t)),a?c&&(Ws(f,d+4,BigInt(e)),Ws(f,d+12,BigInt(r))):(Bs(u,14,e),Bs(u,18,r),c&&(Bs(f,d+4,e),Bs(f,d+8,r)))}({crc32:bt,compressedSize:St,uncompressedSize:Et,Fe:u,Ue:l},c),j&&await xs(n,F),Object.assign(yt,{uncompressedSize:Et,compressedSize:St,lastModDate:p,rawLastModDate:h,creationDate:I,lastAccessDate:U,encrypted:Boolean(m),zipCrypto:Boolean(P),size:f+St,compressionMethod:E,version:b,fe:d,de:w,signature:bt,crc32:!m||P||pt?bt:T,Ce:R,pe:v,we:_}),yt}(o,R,x,a,yt(),i),b||(g=!1),s.set(n,x),x.filename=n,b){if(await Promise.all([R.writable.getWriter().close(),F]),await O(),e.te&&await Rs(e,c),S=!0,A=c.size,await I(),x.diskNumberStart=ps(c),x.offset=ys(e,c),y){const t=a.Ie;us(a,e.offset-hs(c)),x.size+=a.Ie-t}!function({rawFilename:t,encrypted:e,zip64:r,ke:n,crc32:o,compressedSize:a,uncompressedSize:i,pe:s,we:c},u,{dataDescriptor:l,passThrough:f}){if(l||((!e||f&&o!==T)&&Bs(u,14,o),c||Bs(u,18,a),s||Bs(u,22,i)),r&&n){const e=z+Zs(t)+4;Ws(u,e,BigInt(i)),Ws(u,e+8,BigInt(a))}}(x,w.ve,i),await xs(c,w.xe),await Ds(R.readable,c,d,t=>D+=t),c.size+=R.size,S=!1}else x.diskNumberStart=m,x.offset=E;return e.offset+=x.size,x}catch(t){if(S||g){if(e.hasCorruptedEntries=!0,t)try{t.corruptedEntry=!0}catch{}e.offset+=c.size-A,b&&(e.offset+=D)}throw s.delete(n),t}finally{if(b&&e.ie--,m&&m(F),E&&E(),b&&R&&R.dispose)try{await R.dispose()}catch{}}async function O(){e.ue=!0;const{le:t}=e;e.le=new Promise(t=>E=()=>{e.ue=!1,t()}),await t}async function I(){ms(c,Zs(w.xe))&&await c.closeDisk()}}(e,n,o,{Fe:m,Ue:y,Ie:b,$t:f,Oe:l,Te:d},a)}catch(t){throw e.ee.delete(n),t}finally{d&&d(l&&l.Re)}return Object.assign(w,{name:n,comment:c,extraField:u,[Ao]:w.internalFileAttributes,[Ro]:w.externalFileAttributes}),new Lo(w)}(e,n,o,a)}catch(t){throw e.re.delete(n),t}finally{const t=Ji.shift();t?t():Xi--}}(a,e,n,o);i.add(s);const c=()=>i.delete(s);return Promise.prototype.then.call(s,c,c),es(a,s)}remove(t){const{re:e,ee:r}=this;if(typeof t==M&&(t=r.get(t)),t&&t.filename!==T){const{filename:n}=t;if(e.has(n)&&r.has(n))return e.delete(n),r.delete(n),!0}return!1}async close(r=N,n={}){const o=this,{oe:a,writer:w}=this,{writable:p}=w;if(!(r instanceof Uint8Array))throw new Error(hi);if(Zs(r)>e)throw new Error(pi);for(;a.size;)await Promise.allSettled(Array.from(a));await Promise.allSettled(o.ae.map(t=>t._e));const h=o.ae.filter(t=>t.error&&!t.Pe);if(h.length){const t=h.map(t=>t.error);h.forEach(t=>t.Pe=!0);const[e]=t;try{e.entryErrors=t}catch{}throw e}return await async function(r,n,o){const a=ds(r.ee),{je:w,Be:p,We:h}=await async function(r,n,o){const{ee:a,writer:i}=r,c=new Uint8Array(n);await eo(i);let u=0,l=0,d=ps(i),w=hs(i),p=0;for(const[r,n]of Array.from(a.values()).entries()){const{offset:h,rawFilename:m,me:y,ye:b,be:E,Ee:S,Se:g,rawExtraField:A,ge:R,rawComment:x,versionMadeBy:D,fe:z,de:F,pe:O,we:T,he:U,Le:I,internalFileAttributes:k,externalFileAttributes:C,diskNumberStart:M,uncompressedSize:N,compressedSize:v}=n,_=Zs(y,b,E,S,g,A,R),P=f+Zs(m,x)+_;ms(i,u+P-l)&&(await xs(i,c.slice(l,u)),l=u,p=0,await i.closeDisk()),0==r&&(d=ps(i),w=hs(i)),O||Bs(F,18,N),T||Bs(F,14,v),(I||U)&&n.version<45&&js(F,0,45);const j=ws(P);if(j.Ze(s),j.Ve(D),j.He(z.subarray(0,24)),j.Ve(_),j.Ve(Zs(x)),j.Ve(U?e:M),j.Ve(k),j.Ze(C),j.Ze(I?t:h),j.He(m),j.He(y),j.He(b),j.He(E),j.He(S),j.He(g),j.He(A),j.He(R),j.He(x),Ls(c,j.Wt,u),u+=P,p++,o.onprogress)try{await o.onprogress(r+1,a.size,new Lo(n))}catch{}}return await xs(i,l?c.slice(l):c),{je:{diskNumber:d,diskOffset:w},Be:{diskNumber:ps(i),Ge:p},We:c}}(r,a,o),m=await async function(t,r,n){const o=ks(t,n,q);if(o){const n=await o(r),a=Zs(n);if(a>e)throw new Error(Gi);const s=ws(6+a);s.Ze(i),s.Ve(a),s.He(n);const{writer:c}=t;return ms(c,Zs(s.Wt))&&await c.closeDisk(),await xs(c,s.Wt),6+a}return 0}(r,h,o);await async function(r,n,o,a){const{writer:i}=r,{je:s,Be:f,Ke:w}=a;let{qe:p}=a,h=r.ee.size,m=s.diskNumber,y=ys(r,s);const b=Zs(n);if(b>e)throw new Error(pi);let E=Us(r,o,Fo),S=ps(i);if(ms(i,(E?98:d)+b)&&S++,y>=t||p>=t||h>=e||S>=e){if(!1===E)throw new Error(ki);E=!0}const g=ws(E?98:d);ms(i,Zs(g.Wt)+b)&&await i.closeDisk(),S=ps(i);let A=S==f.diskNumber?f.Ge:0;E&&(g.Ze(u),g.Ye(44),g.Ve(45),g.Ve(45),g.Ze(S),g.Ze(m),g.Ye(A),g.Ye(h),g.Ye(p),g.Ye(y),g.Ze(l),g.Ze(S),g.Ye(BigInt(ys(r,i))+BigInt(p)+BigInt(w)),g.Ze(S+1),Us(r,o,"supportZip64SplitFile",!0)&&(S=e,m=e),A=e,h=e,y=t,p=t),g.Ze(c),g.Ve(S),g.Ve(m),g.Ve(A),g.Ve(h),g.Ze(p),g.Ze(y),g.Ve(b),await xs(i,g.Wt),b&&await xs(i,n)}(r,n,o,{je:w,Be:p,qe:a,Ke:m})}(o,r,n),!to(w)&&Us(o,n,Z)||await p.getWriter().close(),w.getData?w.getData():p}}class $i{constructor(t={}){const{readable:e,writable:r}=new TransformStream;this.readable=e,this.zipWriter=new Qi(r,t),this.oe=new Set}transform(t){const e=this.zipWriter;let r;const{readable:n,writable:o}=new TransformStream({start(t){r=t},flush:()=>{!async function(){try{await e.close()}catch(t){await rs(e,t)}}()}});return ns(this,this.zipWriter.add(t,n),t=>r.error(t)),{readable:this.readable,writable:o}}writable(t){let e;const{readable:r,writable:n}=new TransformStream({start(t){e=t}});return ns(this,this.zipWriter.add(t,r),t=>e.error(t)),n}async close(t,e={}){const{zipWriter:r}=this,n=(await Promise.allSettled(Array.from(this.oe))).filter(t=>"rejected"==t.status).map(t=>t.reason);if(n.length){const[t]=n;try{t.entryErrors=n}catch{}throw await rs(r,t),t}try{return await r.close(t,e)}catch(t){throw await rs(r,t),t}}}class ts extends Promise{then(t,e){const{Xe:r}=this;return r&&(r.Pe=!0),super.then(t,e)}}function es(t,e){const r=new ts((t,r)=>Promise.prototype.then.call(e,t,r)),n={};return r.Xe=n,n._e=Promise.prototype.then.call(r,T,t=>n.error=t),t.ae.push(n),r}async function rs(t,e){try{await t.writer.writable.abort(e)}catch{}}function ns(t,e,r){t.oe.add(e),e.catch(t=>{try{r(t)}catch{}})}function os(n,o,a){let i=Us(n,a,zo),s=Us(n,a,Uo,i?20:768);const c=Us(n,a,Co),u=Ns(n,a,"uid"),l=Ns(n,a,"gid");let f=Ns(n,a,_o),d=Us(n,a,"unixExtraFieldType"),w=Us(n,a,Po),p=Us(n,a,jo),h=Us(n,a,Bo);if(st(u,t,Pi),st(l,t,ji),st(f,e,Bi),d!==T&&d!==qi&&d!==Yi)throw new Error(Wi);if(d===Yi&&(u!==T&&u>e||l!==T&&l>e))throw new Error(Li);d!==T||u===T&&l===T||(d=qi);let m=Ns(n,a,xo),y=Us(n,a,Do);const b=m!==T||y!==T;if(u!==T||l!==T||f!==T||d||c?(i=!1,s=s&r|768):b&&(i=!0,s&=r),st(m,r,Zi),y&&(typeof y!==C||Array.isArray(y)))throw new Error(Vi);if(s>e)throw new Error(Si);let E=Cs(n,a,go,Ro);const S=E!==T;S||(E=0),!a[ko]&&o.endsWith(D)&&(a[ko]=!0);const z=Us(n,a,ko);if(z?(o.endsWith(D)||(o+=D),S||(E=16,i||(E|=16877<<16))):i||S||(E=c?493<<16:27525120),!i){const t=f!==T||Boolean(w||p||h);f=f===T?E>>16&e:f&e,w?f|=R:w=Boolean(f&R),p?f|=x:p=Boolean(f&x),h?f|=512:h=Boolean(512&f),S&&!t||(z?f=-61441&f|A:f&g||(f|=32768),E=(f&e)<<16|E&e)}({msdosAttributesRaw:m,msdosAttributes:y}=function(t,e){if(t!==T)t&=r;else if(e!==T){const{readOnly:n,hidden:o,system:a,directory:i,archive:s}=e;let c=0;n&&(c|=1),o&&(c|=2),a&&(c|=4),i&&(c|=16),s&&(c|=32),t=c&r}return e===T&&(e={readOnly:Boolean(1&t),hidden:Boolean(2&t),system:Boolean(4&t),directory:Boolean(16&t),archive:Boolean(32&t)}),{msdosAttributesRaw:t,msdosAttributes:e}}(m,y)),b&&(E=E&t|m&r);const F=E>>16&e,O=f!==T&&40960==(f&g);return{name:o,Ae:{versionMadeBy:s,msDosCompatible:Boolean(i),externalFileAttributes:E,unixExternalUpper:F,uid:u,gid:l,unixMode:f,unixExtraFieldType:d,symlink:O,setuid:w,setgid:p,sticky:h,msdosAttributesRaw:m,msdosAttributes:y}}}function as(t,r,n){const o=ks(t,n,"encodeText")||Bt;let a=o(r,Y);if(a===T&&(a=Bt(r)),Zs(a)>e)throw new Error(Ei);const i=n[so]||"";if(typeof i!=M)throw new Error(yi);let s=o(i,X);if(s===T&&(s=Bt(i)),Zs(s)>e)throw new Error(mi);const c=Us(t,n,To);if(c!==T&&c>e)throw new Error(Si);const u=Is(t,n,po,new Date),l=Us(t,n,ho),f=Is(t,n,mo),d=Is(t,n,bo),w=Cs(t,n,So,Ao,0),p=Us(t,n,P),h=Us(t,n,v),m=Us(t,n,_);at(h,m);const y=Ns(t,n,"encryptionStrength",3),b=Us(t,n,Io),E=Us(t,n,"extendedTimestamp",!0),S=Us(t,n,"ntfsTimestamp"),g=Us(t,n,"keepOrder",!0),A=Us(t,n,B),R=Us(t,n,L),x=Us(t,n,"bufferedWrite"),D=ks(t,n,"createTempStream"),z=Us(t,n,"dataDescriptorSignature",!0),F=ot(Us(t,n,j)),O=Us(t,n,"useUnicodeFileNames",!0),U=Us(t,n,Mo),I=p||U===T?T:He(U);if(!p&&U!==T&&0!==U&&8!==U&&!I)throw new Error("Compression method not supported");let k=Ns(t,n,"level");if(st(k,9,Hi),t.options[G]){if(h!==T||m!==T)throw new Error(Ai);k===T&&U===T&&(k=0)}p&&(k=T);let C=Us(t,n,W),N=Us(t,n,V);x&&N===T&&(N=!1),(N===T||b&&!p)&&(N=!0),k!==T&&6!=k&&(C=!1);const Z=Us(t,n,Fo);if(!(b||h===T&&m===T||Number.isInteger(y)&&y>=1&&y<=3))throw new Error(gi);const H=is(n[vo]),K=is(n.localExtraField),q=is(n.centralExtraField);return{comment:i,Ae:{rawFilename:a,rawComment:s,version:c,lastModDate:u,rawLastModDate:l,lastAccessDate:f,creationDate:d,internalFileAttributes:w,passThrough:p,password:h,rawPassword:m,encryptionStrength:y,zipCrypto:b,extendedTimestamp:E,ntfsTimestamp:S,keepOrder:g,useWebWorkers:A,transferStreams:R,bufferedWrite:x,createTempStream:D,dataDescriptorSignature:z,signal:F,useUnicodeFileNames:O,compressionMethod:U,format:I?I.format:T,codecURI:I?I.codecURI:T,Je:I?I.versionNeeded:T,level:k,useCompressionStream:C,dataDescriptor:N,zip64:Z,rawExtraField:H,Qe:K,ge:q}}}function is(t){if(!t)return N;if(!(t instanceof Map))throw new Error(xi);let r=0,n=0;t.forEach((t,n)=>{if(it(n,e,Di),!(t instanceof Uint8Array))throw new Error(zi);if(Zs(t)>e)throw new Error(Fi);r+=4+Zs(t)});const o=new Uint8Array(r),a=Ot(o);return t.forEach((t,e)=>{js(a,n,e),js(a,n+2,Zs(t)),Ls(o,t,n+4),n+=4+Zs(t)}),o}function ss(e,r,n,o,a){const{passThrough:i,zipCrypto:s,password:c,rawPassword:u,encryptionStrength:l}=o;let{dataDescriptor:f,zip64:d,level:w,compressionMethod:p}=o,h=0,m=0;if(i&&r){if(m=a[uo],m===T)throw new Error(Ci);if(p===T)throw new Error(Mi)}const y=!0===d,b=Us(e,a,Oo);if(r&&i&&!b&&Zs(c,u))throw new Error(Ri);const E=r&&(Boolean(c&&Zs(c)||u&&Zs(u))||i&&b);r||(w=0,p=0);const S=E?s?12:16+4*l:0;r&&(i?(a.uncompressedSize=m,h=n===T?vs(m)+S:n):n===T?(f=!0,(d||d===T)&&(d=!0,m=h=4294967296)):(a.uncompressedSize=m=n,h=(_s(p,w)?vs(m):m)+S));const g=!(E||r&&(0!==n||i)||_s(p,w));g&&!s&&Us(e,a,V)===T&&(f=!1);const A=y||m>=t,R=y||h>=t;if(A||R){if(!1===d)throw new Error(ki);d=!0}return d=d||!1,{$e:h,Ae:{dataDescriptor:f,ze:g,zip64:d,pe:A,we:R,uncompressedSize:m,level:w,compressionMethod:p,encrypted:E}}}function cs(t){const{rawFilename:r,lastModDate:o,rawLastModDate:a,lastAccessDate:i,creationDate:s,level:c,zip64:u,zipCrypto:l,useUnicodeFileNames:f,dataDescriptor:d,directory:w,rawExtraField:p,Qe:y,encryptionStrength:S,extendedTimestamp:g,ntfsTimestamp:A,passThrough:R,encrypted:x,pe:D,we:U,uncompressedSize:I,crc32:k}=t;let{version:C,compressionMethod:M}=t;const v=!w&&_s(M,c);let _;const P=R||!v,j=u&&(t.bufferedWrite||!d||!D&&!U||P),B=j||u&&d&&(D||U);if(u&&(D||U)){const t=20,e=ws(t);if(e.Ve(1),e.Ve(t-4),_=e.Wt,j&&(e.Ye(I),P)){const t=x?l?12:16+4*S:0;e.Ye(R?0:I+t)}}else _=N;let W,L,Z,V,H;if(x&&!l){const t=ws(Zs(Ki)+2);t.Ve(h),t.He(Ki),W=t.Wt,W[8]=S}else W=N;if(g){const t=Fs(o),e=Os(t);if(e){const e=9+(i?4:0)+(s?4:0),r=ws(e);V=1+(i?2:0)+(s?4:0),r.Ve(m),r.Ve(e-4),r.er(V),r.Ze(t),i&&r.Ze(Ts(Fs(i))),s&&r.Ze(Ts(Fs(s))),Z=r.Wt}else Z=N;if(A===T?!e||Boolean(i||s):A)try{const t=zs(o),e=ws(36);e.Ve(10),e.Ve(32),e.rr(4),e.Ve(1),e.Ve(24),e.Ye(t),e.Ye(i?zs(i):t),e.Ye(s?zs(s):t),L=e.Wt}catch{L=N}else L=N}else L=Z=N;try{const{uid:r,gid:n,unixExtraFieldType:o}=t;if(o!=qi||r===T&&n===T)if(o!=Yi||r===T&&n===T)H=N;else{const t=ws(8);t.Ve(E),t.Ve(4),t.Ve((r===T?0:r)&e),t.Ve((n===T?0:n)&e),H=t.Wt}else{const t=ls(r===T?0:r),e=ls(n===T?0:n),o=3+t.length+e.length,a=ws(4+o);a.Ve(b),a.Ve(o),a.er(1),a.er(t.length),a.He(t),a.er(e.length),a.He(e),H=a.Wt}}catch{H=N}M===T&&(M=v?8:0),C===T&&(C=0!=M||w||x?20:10);const{Je:K}=t;v&&K!==T&&(C=C>K?C:K),u&&(C=C>45?C:45),x&&!l&&(C=C>51?C:51,R&&k!==T&&(W[4]=1),js(Ot(W),9,M),M=99);const q=B?Zs(_):0,Y=q+Zs(W,Z,L,H,p,y);if(Y+(t[G]?67:0)>e)throw new Error(Fi);const X=new Date(2e3*Math.ceil(Math.floor(o.getTime()/1e3)/2)),{fe:J,de:Q,rawLastModDate:$}=Vs({version:C,bitFlag:Hs(c,f,d,x,M),compressionMethod:M,uncompressedSize:I,lastModDate:X<O?O:X>F?F:X,rawLastModDate:a,rawFilename:r,we:U,pe:D,extraFieldLength:Y}),tt=ws(z+Zs(r)+Y),et=tt.Wt,rt=Ot(et);return tt.Ze(n),tt.He(J),tt.He(r),B&&tt.He(_),tt.He(W),tt.He(Z),tt.He(L),tt.He(H),tt.He(p),tt.He(y),d&&(U||Bs(rt,18,0),D||Bs(rt,22,0)),{xe:et,ve:rt,fe:J,de:Q,lastModDate:o,rawLastModDate:$,encrypted:x,compressed:v,version:C,compressionMethod:M,Ce:V,me:N,ke:q,be:Z,Ee:L,Se:H,ye:W,extraFieldLength:Y}}function us(t,e){const{Fe:r}=t;let{xe:n,extraFieldLength:o}=r,a=64-(e+Zs(n))%64;a<4&&(a+=64);const i=new Uint8Array(a),s=Ot(i);js(s,0,y),js(s,2,a-4);const c=n;r.xe=n=new Uint8Array(Zs(c)+a),Ls(n,c),Ls(n,i,Zs(c));const u=Ot(n);js(u,28,o+a),r.ve=u,t.Ie+=a}function ls(t){const e=new Uint8Array(4);Ot(e).setUint32(0,t,!0);let r=4;for(;r>1&&0===e[r-1];)r--;return e.subarray(0,r)}function fs({zip64:t,dataDescriptor:e,dataDescriptorSignature:r}){let n,o=N,i=0,s=t?20:12;return r&&(s+=4),e&&(o=new Uint8Array(s),n=Ot(o),r&&(i=4,Bs(n,0,a))),{De:o,Me:n,Ne:i}}function ds(r){let n=0;for(const[,o]of r){const{rawFilename:r,ye:a,rawComment:i,Ee:s,Se:c,rawExtraField:u,ge:l,extendedTimestamp:d,Ce:w,lastModDate:p,pe:h,we:y,uncompressedSize:b,compressedSize:E}=o,S=o.offset>=t,g=o.diskNumberStart>=e;let A,R;if(S||g||h||y){const t=4+(h?8:0)+(y?8:0)+(S?8:0)+(g?4:0),e=ws(t);e.Ve(1),e.Ve(t-4),h&&e.Ye(b),y&&e.Ye(E),S&&e.Ye(o.offset),g&&e.Ze(o.diskNumberStart),A=e.Wt}else A=N;o.me=A,o.Le=S,o.he=g;const x=Fs(p);if(d&&Os(x)){const t=ws(9);t.Ve(m),t.Ve(5),t.er(w),t.Ze(x),R=t.Wt}else R=N;o.be=R;const D=Zs(A,a,s,c,R,u,l);if(D>e)throw new Error(Fi);n+=f+Zs(r,i)+D}return n}function ws(t){const e=new Uint8Array(t),r=Ot(e);let n=0;return{Wt:e,er:t=>{!function(t,e,r){t.setUint8(e,r)}(r,n,t),n+=1},Ve:t=>{js(r,n,t),n+=2},Ze:t=>{Bs(r,n,t),n+=4},Ye:t=>{Ws(r,n,BigInt(t)),n+=8},He:t=>{Ls(e,t,n),n+=Zs(t)},rr:t=>n+=t}}function ps(t){const{diskNumber:e=0}=t;return e}function hs(t){const{diskOffset:e=0}=t;return e}function ms(t,e){const{availableSize:r=U}=t;return e>r}function ys(t,{diskNumber:e=0,diskOffset:r=0}){return t.offset-r-(e?t.ne:0)}function bs(t){const e=Ot(t);let r=0;for(;r+4<=Zs(t);){const n=4+Ps(e,r+2);if(1==Ps(e,r))return bs(zt(t.subarray(0,r),t.subarray(Math.min(r+n,Zs(t)))));r+=n}return t}async function Es(t,e,r,n){if(n>0){const{writer:o}=t;let a=0;try{await Ds(oo(e,{offset:r,size:n}),o,T,t=>a+=t)}catch(e){t.hasCorruptedEntries=!0;try{e.corruptedEntry=!0}catch{}throw e}finally{o.size+=a,t.offset+=a}}}async function Ss(t,e){const r=await no(t,e,z);if(Zs(r)<z)return z;const n=Ot(r);return z+Ps(n,26)+Ps(n,28)}function gs(t,{offset:e,diskNumberStart:r}){return e+(t.Gt?t.Gt(r):0)}function As(){const t=new Uint8Array(4);return Bs(Ot(t),0,o),t}async function Rs(t,e){delete t.te,await xs(e,As()),t.offset+=4}async function xs(t,e){const{writable:r}=t,n=r.getWriter();try{await n.ready,t.size+=Zs(e),await n.write(e)}finally{n.releaseLock()}}async function Ds(t,e,r,n){const o=e.writable.getWriter();try{await t.pipeTo(new WritableStream({async write(t){await o.ready,await o.write(t),n(Zs(t))}}),{preventClose:!0,preventAbort:!0,signal:r})}finally{o.releaseLock()}}function zs(t){if(t){const e=(BigInt(t.getTime())+BigInt(116444736e5))*BigInt(1e4);return e<Ui?Ui:e>Ii?Ii:e}}function Fs(t){return Math.floor(t.getTime()/1e3)}function Os(t){return t>=Oi&&t<=Ti}function Ts(t){return Math.min(Ti,Math.max(Oi,t))}function Us(t,e,r,n){const o=e[r]===T?t.options[r]:e[r];return o===T?n:o}function Is(t,e,r,n){const o=Us(t,e,r,n);if(null===o)return n;if(o!==T&&(typeof o.getTime!=k||Number.isNaN(o.getTime())))throw new Error(bi);return o}function ks(t,e,r){return nt(Us(t,e,r))}function Cs(t,e,r,n,o){const a=Ms(e,r,n),i=a===T?Ms(t.options,r,n):a;return i===T?o:i}function Ms(t,e,r){return t[e]===T?t[r]:t[e]}function Ns(t,e,r,n){return ct(Us(t,e,r,n))}function vs(t){return t+5*(Math.floor(t/16383)+1)}function _s(t,e){return t===T?e===T||e>0:0!==t}function Ps(t,e){return t.getUint16(e,!0)}function js(t,e,r){t.setUint16(e,r,!0)}function Bs(t,e,r){t.setUint32(e,r,!0)}function Ws(t,e,r){t.setBigUint64(e,r,!0)}function Ls(t,e,r){t.set(e,r)}function Zs(...t){let e=0;return t.forEach(t=>t&&(e+=t.length)),e}function Vs({version:e,bitFlag:r,compressionMethod:n,uncompressedSize:o,compressedSize:a,lastModDate:i,rawLastModDate:s,rawFilename:c,we:u,pe:l,extraFieldLength:f}){const d=ws(26),w=d.Wt,p=Ot(w);if(d.Ve(e),d.Ve(r),d.Ve(n),s===T){const t=new Uint32Array(1),e=Ot(t);js(e,0,(i.getHours()<<6|i.getMinutes())<<5|i.getSeconds()/2),js(e,2,(i.getFullYear()-1980<<4|i.getMonth()+1)<<5|i.getDate()),s=t[0]}return d.Ze(s),d.rr(4),u||a!==T?d.Ze(u?t:a):d.rr(4),l||o!==T?d.Ze(l?t:o):d.rr(4),d.Ve(Zs(c)),d.Ve(f),{fe:w,de:p,rawLastModDate:s}}function Hs(t,e,r,n,o){let a=0;return e&&(a|=S),r&&(a|=8),8!=o&&9!=o||(t>=0&&t<=3&&(a|=6),t>3&&t<=5&&(a|=4),9==t&&(a|=2)),n&&(a|=1),a}function Gs(){return"application/octet-stream"}function Ks(){const{CompressionStream:t,DecompressionStream:e,CompressionStreamFallback:r,DecompressionStreamFallback:n}=yt(),o=[{compressionMethod:0,compression:!0,decompression:!0,registered:!1},{compressionMethod:8,compression:qs(r,Qe)||qs(t,Qe)||qs(t,tr),decompression:qs(n,Qe)||qs(e,Qe)||qs(e,tr),registered:!1},{compressionMethod:9,compression:!1,decompression:qs(n,$e)||qs(e,$e),registered:!1}];for(const t of Ge()){const e=Ke(t.format);o.push({compressionMethod:t.compressionMethod,compression:e?typeof e.CompressionStream==k:T,decompression:e?typeof e.DecompressionStream==k:T,registered:!0})}return o}function qs(t,e){if(!t)return!1;const{nr:r}=t;return r?r.includes(e):ir(t,e)}const Ys="2.9.0",Xs=1048576,Js=".zip.js-temp";function Qs(t={}){const{thresholdBytes:e=Xs,directoryName:r=Js,getDirectory:n=()=>navigator.storage.getDirectory()}=t;let o;function a(){return o||(o=Promise.resolve(n()).then(t=>t.getDirectoryHandle(r,{create:!0}))),o}return function(){const t=[];let r,n,o,i,s=0,c=!1;const u=new WritableStream({async write(i){c?await o.write(i):(t.push(i),s+=i.length,s>e&&await async function(){const e=await a();r=crypto.randomUUID?crypto.randomUUID():Array.from(crypto.getRandomValues(new Uint8Array(16)),t=>t.toString(16).padStart(2,"0")).join(""),n=await e.getFileHandle(r,{create:!0}),o=(await n.createWritable()).getWriter(),c=!0;for(const e of t)await o.write(e);t.length=0}())},async close(){o&&(await o.close(),o=null)}});let l=0;return{writable:u,readable:new ReadableStream({async pull(e){if(c){if(!i){const t=await n.getFile();i=t.stream().getReader()}const{value:t,done:r}=await i.read();r?e.close():e.enqueue(t)}else l<t.length?e.enqueue(t[l++]):e.close()},async cancel(t){i&&await i.cancel(t)}},{highWaterMark:0}),dispose:async function(){if(o){try{await o.close()}catch{}o=null}if(r){try{const t=await a();await t.removeEntry(r)}catch{}n=r=null}t.length=0}}}}const $s=1048576;function tc(t={}){const{thresholdBytes:e=$s}=t;return function(){const t=[];let r,n,o,a=0,i=!1;const s=new WritableStream({async write(o){i?await r.write(o):(t.push(o),a+=o.length,a>e&&await async function(){const e=new TransformStream;n=Ne(e.readable),r=e.writable.getWriter(),i=!0;for(const e of t)await r.write(e);t.length=0}())},async close(){r&&(await r.close(),r=null)}});let c=0;return{writable:s,readable:new ReadableStream({async pull(e){if(i){if(!o){const t=await n;o=t.stream().getReader()}const{value:t,done:r}=await o.read();r?e.close():e.enqueue(t)}else c<t.length?e.enqueue(t[c++]):e.close()},async cancel(t){o&&await o.cancel(t)}},{highWaterMark:0}),dispose:async function(){if(r){try{await r.abort()}catch{}r=null}n&&(n.catch(()=>{}),n=null),t.length=0}}}}const ec=1048576,rc=".zip.js-temp",nc="createSyncAccessHandle is only available in dedicated workers";function oc(t={}){const{thresholdBytes:e=ec,directoryName:r=rc,getDirectory:n}=t;if(!(n||"undefined"!=typeof FileSystemFileHandle&&FileSystemFileHandle.prototype.createSyncAccessHandle))throw new Error(nc);const o=n||(()=>navigator.storage.getDirectory());let a;function i(){return a||(a=Promise.resolve(o()).then(t=>t.getDirectoryHandle(r,{create:!0}))),a}return function(){const t=[];let r,n,o=0,a=!1,s=0,c=0;const u=new WritableStream({async write(c){a?(n.write(c,{at:s}),s+=c.length):(t.push(c),o+=c.length,o>e&&await async function(){const e=await i();r=crypto.randomUUID?crypto.randomUUID():Array.from(crypto.getRandomValues(new Uint8Array(16)),t=>t.toString(16).padStart(2,"0")).join("");const o=await e.getFileHandle(r,{create:!0});n=await o.createSyncAccessHandle(),a=!0;for(const e of t)n.write(e,{at:s}),s+=e.length;t.length=0}())},close(){n&&n.flush()}});let l=0;return{writable:u,readable:new ReadableStream({pull(e){if(a){const t=s-c;if(t<=0)return void e.close();const r=new Uint8Array(Math.min(524288,t)),o=n.read(r,{at:c});o?(c+=o,e.enqueue(r.subarray(0,o))):e.close()}else l<t.length?e.enqueue(t[l++]):e.close()}},{highWaterMark:0}),dispose:async function(){if(n){try{n.close()}catch{}n=null}if(r){try{const t=await i();await t.removeEntry(r)}catch{}r=null}t.length=0}}}}try{xt({baseURI:import.meta.url})}catch{}const ac="deflate",ic="deflate-raw",sc="deflate64-raw",cc="gzip";let uc,lc,fc,dc,wc;function pc(t,e,r={}){if(!uc){const t=new Error("WASM module not loaded");throw t.cause=wc,t}const n="number"==typeof r.level?r.level:-1,o="number"==typeof r.outBuffer?r.outBuffer:65536,a="number"==typeof r.inBufferSize?r.inBufferSize:65536;return new TransformStream({start(){try{let r;if(this.ar=lc(o),this.in=lc(a),this.inBufferSize=a,!this.ar||!this.in)throw new Error("allocation failed");if(this.ir=new Uint8Array(o),t?(this.sr=uc.deflate_process,this.cr=uc.deflate_last_consumed,this.ur=uc.deflate_end,this.lr=uc.deflate_new(),r=e===cc?uc.deflate_init_gzip(this.lr,n):e===ic?uc.deflate_init_raw(this.lr,n):uc.deflate_init(this.lr,n)):e===sc?(this.sr=uc.inflate9_process,this.cr=uc.inflate9_last_consumed,this.ur=uc.inflate9_end,this.lr=uc.inflate9_new(),r=uc.inflate9_init_raw(this.lr)):(this.sr=uc.inflate_process,this.cr=uc.inflate_last_consumed,this.ur=uc.inflate_end,this.lr=uc.inflate_new(),r=e===ic?uc.inflate_init_raw(this.lr):e===cc?uc.inflate_init_gzip(this.lr):uc.inflate_init(this.lr)),0!==r)throw new Error("init failed:"+r)}catch(t){throw i(this),t}},transform(e,r){try{const n=e,a=new Uint8Array(dc.buffer),i=this.sr,s=this.cr,c=this.ar,u=this.ir;let l=0;for(;l<n.length;){const e=Math.min(n.length-l,32768);if((!this.in||this.inBufferSize<e)&&(this.in&&fc&&(fc(this.in),this.in=0),this.in=lc(e),this.inBufferSize=e,!this.in))throw new Error("allocation failed");a.set(n.subarray(l,l+e),this.in);const f=i(this.lr,this.in,e,c,o,0),d=16777215&f;if(d&&(u.set(a.subarray(c,c+d),0),r.enqueue(u.slice(0,d))),!t){const t=f>>24&255,e=128&t?t-256:t;if(e<0)throw new Error("process error:"+e)}const w=s(this.lr);if(0===w)break;l+=w}}catch(t){i(this),r.error(t)}},flush(e){try{const r=new Uint8Array(dc.buffer),n=this.sr,a=this.ar,i=this.ir;for(;;){const s=n(this.lr,0,0,a,o,4),c=16777215&s,u=s>>24&255;if(!t){const t=128&u?u-256:u;if(t<0)throw new Error("process error:"+t)}if(c&&(i.set(r.subarray(a,a+c),0),e.enqueue(i.slice(0,c))),1===u||0===c)break}}catch(t){e.error(t)}finally{const t=i(this);0!==t&&e.error(new Error("end error:"+t))}},cancel(){i(this)}});function i(t){let e=0;return t.lr&&t.ur&&(e=t.ur(t.lr)),t.lr=0,t.in&&fc&&fc(t.in),t.in=0,t.ar&&fc&&fc(t.ar),t.ar=0,e}}class hc{constructor(t=ac,e){return pc(!0,t,e)}}class mc{constructor(t=ac,e){return pc(!1,t,e)}}hc.lt=!0,mc.lt=!0,hc.nr=[ac,ic,cc],mc.nr=[ac,ic,cc,sc];let yc,bc=!1;function Ec(){yc=null,async function(){await Promise.allSettled(Zr.map(t=>($r(t),t.terminate()))),Er=T,Sr=!1}(),bc=!1,uc=lc=fc=dc=wc=null}!function({dr:t}){Ar=t}({dr:t=>{if(!yc){let{wasmURI:e}=t;typeof e==k&&(e=e()),yc=async function(t,{baseURI:e}){if(!bc)try{await async function(t,e){let r,n;try{try{n=new URL(t,e)}catch{}const o=await fetch(n);r=await o.arrayBuffer()}catch(e){if(!t.startsWith("data:application/wasm;base64,"))throw e;r=function(t){const e=t.split(",")[1],r=atob(e),n=r.length,o=new Uint8Array(n);for(let t=0;t<n;++t)o[t]=r.charCodeAt(t);return o.buffer}(t)}!function(t){if(uc=t,({malloc:lc,free:fc,memory:dc}=uc),"function"!=typeof lc||"function"!=typeof fc||!dc)throw uc=lc=fc=dc=null,new Error("Invalid WASM module")}((await WebAssembly.instantiate(r)).instance.exports)}(t,e),bc=!0}catch(t){throw function(t){wc=t}(t),t}}(e,t).catch(t=>{throw yc=null,t})}return yc}}),xt({CompressionStreamFallback:hc,DecompressionStreamFallback:mc}),xt({workerURI:new URL("./zip-web-worker.js",import.meta.url).href,wasmURI:new URL("./zip-module.wasm",import.meta.url).href});const Sc="Entry filename already exists",gc="Readable stream already consumed",Ac="Invalid passThrough option (use readerOptions.passThrough or set uncompressedSize for each entry)",Rc="Invalid readerOptions (must be an object)",xc="The last modification date of an entry encrypted with ZipCrypto cannot be changed when passThrough is set",Dc="zipjs-abort-export",zc="The operation was aborted",Fc=new Set([1,h,10,m,28789,25461,y,b,E,22613,13]);class Oc{constructor(t,e,r,n){const o=this;if(t.root&&n&&n.getChildByName(e))throw new Error(Sc);r||(r={}),Object.assign(o,{fs:t,name:e,data:r.data,options:r.options&&Object.assign({},r.options),id:t.wr++,parent:n,children:[],uncompressedSize:r.uncompressedSize||0,pr:r.pr||r.uncompressedSize===T,passThrough:r.passThrough,mr:r.mr||new Date}),!n&&t.root||(t.entries[o.id]=o),n&&o.parent.children.push(o)}getFullname(){return this.getRelativeName()}getRelativeName(t=this.fs.root){let e=this.name,r=this.parent;for(;r&&r!=t;)e=(r.name?r.name+"/":"")+e,r=r.parent;return e}isDescendantOf(t){let e=this.parent;for(;e&&e.id!=t.id;)e=e.parent;return Boolean(e)}rename(t){const e=this.parent;if(e&&e.getChildByName(t))throw new Error(Sc);this.name=t}setOptions(t){const e=Object.assign({},this.options,t);this.options=Object.fromEntries(Object.entries(e).filter(([,t])=>t!==T))}}class Tc extends Oc{constructor(t,e,r,n){super(t,e,r,n);const o=this;o.Reader=r.Reader,o.Writer=r.Writer,r.getData&&(o.getData=r.getData)}clone(){return new Tc(this.fs,this.name,this)}async getData(t,e={}){const r=this;if(!t||t.constructor==r.Writer&&r.data&&function(t,e){const{contentType:r}=t;return r===T||(t.constructor==Dn?e.type==r:t.constructor!=gn||e.startsWith("data:"+(r||"")+";base64,"))}(t,r.data))return r.data;{const n=r.reader=Pc(r.Reader,r.data,e),o=r.uncompressedSize||n.size;await Promise.all([eo(n),eo(t,o)]);const a=ot(e.signal),i=function(t,e,r,n){const{onstart:o,onprogress:a,onend:i}=r,{readable:s}=e;return t.data instanceof Lo||!o&&!a&&!i?s:Me(s).pipeThrough(new zr({onstart:o,onprogress:a,onend:i,size:e.size}),{signal:n})}(r,n,e,a),s=!to(t)&&Boolean(e.preventClose);return r.uncompressedSize=n.size,await Me(i).pipeTo(ve(t.writable),{signal:a,preventClose:s,preventAbort:s}),t.getData?t.getData():t.writable}}isPasswordProtected(){return Boolean(this.data&&this.data.encrypted)}async checkPassword(t,e={}){const r=this;if(!r.isPasswordProtected())return!0;try{return await r.data.getData(null,Object.assign({},e,{password:t,checkPasswordOnly:!0})),!0}catch(t){if(t.message==Gt)return!1;throw t}}getText(t,e){return this.getData(new On(t),e)}getBlob(t,e){return this.getData(new Dn(t),e)}getData64URI(t,e){return this.getData(new gn(t),e)}getUint8Array(t){return this.getData(new Yn,t)}getWritable(t=new WritableStream,e){return this.getData({writable:t},e)}async getArrayBuffer(t){return Ft(await this.getUint8Array(t)).buffer}replaceBlob(t){Object.assign(this,{data:t,Reader:xn,Writer:Dn,reader:null})}replaceText(t){Object.assign(this,{data:t,Reader:zn,Writer:On,reader:null})}replaceData64URI(t){Object.assign(this,{data:t,Reader:Sn,Writer:gn,reader:null})}replaceUint8Array(t){Object.assign(this,{data:t,Reader:qn,Writer:Yn,reader:null})}replaceReadable(t){Object.assign(this,{data:null,Reader:vc(t),Writer:null,reader:null})}}class Uc extends Oc{constructor(t,e,r,n){super(t,e,r,n),this.directory=!0}clone(t){const e=this,r=new Uc(e.fs,e.name,e);return t&&(r.children=e.children.map(e=>{const n=e.clone(t);return n.parent=r,n})),r}addDirectory(t,e){return Xc(this,t,{options:e},!0)}addText(t,e,r={}){return Xc(this,t,{data:e,Reader:zn,Writer:On,options:r,uncompressedSize:Fn(e)})}addBlob(t,e,r={}){return Xc(this,t,{data:e,Reader:xn,Writer:Dn,options:r,uncompressedSize:e.size})}addData64URI(t,e,r={}){let n=e.length;for(;"="==e.charAt(n-1);)n--;const o=e.indexOf(",")+1;return Xc(this,t,{data:e,Reader:Sn,Writer:gn,options:r,uncompressedSize:Math.floor(.75*(n-o))})}addUint8Array(t,e,r={}){return Xc(this,t,{data:e,Reader:qn,Writer:Yn,options:r,uncompressedSize:e.length})}addHttpContent(t,e,r={}){return Xc(this,t,{data:e,Reader:class extends Gn{constructor(t){super(t,r)}},options:r})}addReadable(t,e,r={}){return Xc(this,t,{Reader:vc(e),options:r})}addFileSystemEntry(t,e={}){return Kc(this,t,e)}addFileSystemHandle(t,e={}){return Kc(this,t,e)}addFile(t,e={}){return(e=Object.assign({},e)).lastModDate||(e.lastModDate=new Date(t.lastModified)),Xc(this,t.name,{data:t,Reader:function(){return{readable:t.stream(),size:t.size}},options:e,uncompressedSize:t.size})}importBlob(t,e){return this.importZip(new xn(t),e)}importData64URI(t,e){return this.importZip(new Sn(t),e)}importUint8Array(t,e){return this.importZip(new qn(t),e)}importHttpContent(t,e){return this.importZip(new Gn(t,e),e)}importReadable(t,e){return this.importZip({readable:t},e)}exportBlob(t={}){return this.exportZip(new Dn(t.mimeType||"application/zip"),t)}exportData64URI(t={}){return this.exportZip(new gn(t.mimeType||"application/zip"),t)}exportUint8Array(t={}){return this.exportZip(new Yn,t)}async exportWritable(t=new WritableStream,e={}){return await this.exportZip({writable:t},e),t}exportFileSystemHandle(t,e={}){return async function(t,e,r){const{onstart:n,onprogress:o,onend:a}=r,i=Vc(r.readerOptions),s=new AbortController,{signal:c}=s,u=function(t,e){if(!ot(t))return()=>{};if(t.aborted)return e.abort(t.reason),()=>{};const r=()=>e.abort(t.reason);return t.addEventListener("abort",r,{once:!0}),()=>t.removeEventListener("abort",r)}(r.signal,s),l=Object.assign({},r,i,{signal:c,onstart:T,onprogress:T,onend:T,preventClose:!1}),f=Cc([t],t=>Nc(t,l.passThrough)),d=[];let w=!1,p=0;try{n&&await Fr(n,f),await m(t,e),a&&await Fr(a,p)}catch(t){try{t.exportedEntryNames=d}catch{}throw t}finally{u()}return e;function h(t){const e=t.getWriter();return new WritableStream({async write(t){await e.write(t),p+=t.length,o&&await Fr(o,p,f)},close:()=>e.close(),abort:t=>e.abort(t)})}async function m(t,e){if(r.concurrent){const r=(await Promise.allSettled(t.children.map(t=>y(t,e)))).filter(t=>"rejected"==t.status);if(r.length){const t=r.filter(t=>!Wc(t.reason));throw function(t){const[e]=t,r=t.slice(1).flatMap(t=>[t,...t&&t.entryErrors||[]]).filter(t=>t!==e);if(r.length)try{e.entryErrors=[...e.entryErrors||[],...r]}catch{}return e}((t.length?t:r).map(t=>t.reason))}}else for(const r of t.children)await y(r,e)}async function y(e,r){if(c.aborted){if(w||Wc(c.reason))return;throw c.reason===T?new DOMException(zc,"AbortError"):c.reason}try{if(e.directory){const t=await r.getDirectoryHandle(e.name,{create:!0});await m(e,t)}else{const n=await r.getFileHandle(e.name,{create:!0}),o=await n.createWritable();try{await e.getData({writable:h(o)},l)}catch(t){throw w?new Error(Dc):t}d.push(e.getRelativeName(t))}}catch(r){w=!0,s.abort(new Error(Dc));try{r.entryName===T&&(r.entryName=e.getRelativeName(t),r.entryId=e.id)}catch{}throw r}}}(this,t,e)}async importZip(t,e={}){let r;t&&typeof t.getEntries==k?(r=t,e=Object.assign({},r.options,e)):(await eo(t),r=new Ta(t,e));const n=[],o=await r.getEntries(e);for(const t of o){let r=this;try{const o=t.filename.split("/").filter(t=>""!=t&&"."!=t),a=o.pop();if(o.forEach(t=>{const e=r;if(r=r.getChildByName(t),r){if(!r.directory)throw new Error(Sc)}else r=new Uc(this.fs,t,{data:null},e),n.push(r)}),t.directory){let e=r;if(a)if(e=r.getChildByName(a),e){if(!e.directory)throw new Error(Sc)}else e=new Uc(this.fs,a,{data:null},r),n.push(e);e==this||e.data||(e.data=t)}else n.push(Xc(r,a,{data:t,Reader:_c(Object.assign({},e)),uncompressedSize:e.passThrough?t.compressedSize:t.uncompressedSize,passThrough:e.passThrough}))}catch(e){try{e.cause={entry:t}}catch{}throw e}}return n}async exportZip(t,e={}){const r=this;(e=Object.assign({},e)).bufferedWrite===T&&(e.bufferedWrite=!0);const[n]=await Promise.all([jc(r,Vc(e.readerOptions)),eo(t)]),o=new Qi(t,e);return await async function(t,e,r,n,o){const{onstart:a,onprogress:i,onend:s,onentryprogress:c}=n,u=e,l=Cc(e.children,t=>Gc(t)?0:1);let f=0,d=0;if(a&&await Fr(a,r),n.bufferedWrite)await async function t(e){const r=(await Promise.allSettled(e.children.map(async e=>{await w(e),await t(e)}))).find(t=>"rejected"==t.status);if(r)throw r.reason}(e);else for(const t of e.getChildren({recursive:!0}))await w(t);async function w(e){if(Gc(e))return;const{name:a,yr:s}=Lc(e,u,n);let w=0;const p=await t.add(a,o.get(e),Object.assign(s,{onstart:T,onend:T,onprogress:async t=>{f+=t-w,w=t,i&&await Fr(i,f,r)}}));d++,c&&await Fr(c,d,l,p)}s&&await Fr(s,f)}(o,r,Cc([r],Mc),e,n),await o.close(e.globalComment),t.getData?t.getData():t.writable}getExportedSize(r={}){const n=this;Vc((r=Object.assign({},r)).readerOptions),r.bufferedWrite===T&&(r.bufferedWrite=!0);const o=n.getChildren({recursive:!0}).filter(t=>!Gc(t)).map(t=>{const{name:e,yr:o}=Lc(t,n,r);return{name:e,size:t.directory?0:Zc(t,Hc(t,r)),options:o}}),a=!r.bufferedWrite||o.every(t=>!1!==t.options.keepOrder)&&n.children.every(t=>!t.children.length);return async function(r,n,o,a){const i={options:r};if(nt(r[q]))throw new Error(Ni);if(a!==T&&!(a instanceof Uint8Array))throw new Error(hi);const s=Zs(a);if(s>e)throw new Error(pi);const c=r[G],u=new Map,l=r[H]===T?0:r[H];let f=l,w=U;for(const t of n){let{name:e}=t;const{size:r}=t,n=Object.assign({},t.options);Us(i,n,ko)&&!e.endsWith(D)&&(e+=D);const o=os(i,e,n);({name:e}=o);const{Ae:a}=as(i,e,n);0==a.level||a.compressionMethod!==T||a.passThrough||await Rr(yt())||(a.level=0);const s=!Us(i,n,ko);if(s&&r===T)throw new Error(Ni);const{$e:l,Ae:d}=ss(i,s,r,a,n);if(s&&!a.passThrough&&_s(d.compressionMethod,d.level))throw new Error(Ni);const p=Object.assign({},n,o.Ae,a,d,{[G]:c}),h=cs(p),m=fs(p),y={Fe:h,Ie:Zs(h.xe,m.De)};c&&us(y,f);const b=s?l:0;u.set(e,Object.assign({},p,h,{offset:f,diskNumberStart:0,compressedSize:b}));const E=y.Ie+b;w=Math.min(w,E),f+=E}if(u.size>1&&(c||f-w>=t)&&!o)throw new Error(Ni);const p=ds(u);let h=Us(i,r,Fo);if(f>=t||p>=t||u.size>=e){if(!1===h)throw new Error(ki);h=!0}return f-l+p+s+(h?98:d)}(r,o,a,r.globalComment)}getChildByName(t){const e=this.children;for(let r=0;r<e.length;r++){const n=e[r];if(n.name==t)return n}}getChildren(t={}){return function(t,e){const r=[],n=[t];let o=0;for(;o<n.length;)for(const t of n[o++].children)r.push(t),e&&n.push(t);return r}(this,t.recursive)}isPasswordProtected(){const t=this.children;for(let e=0;e<t.length;e++)if(t[e].isPasswordProtected())return!0;return!1}async checkPassword(t,e={}){const r=this.children;return!(await Promise.all(r.map(r=>r.checkPassword(t,e)))).includes(!1)}}class Ic{constructor(){Yc(this)}get children(){return this.root.children}remove(t){Bc(t);const e=[t];for(;e.length;){const t=e.pop();this.entries[t.id]=null;for(const r of t.children)e.push(r)}t.parent=T}move(t,e){if(t==this.root)throw new Error("Root directory cannot be moved");if(!e.directory)throw new Error("Target entry is not a directory");if(e.isDescendantOf(t))throw new Error("Entry is a ancestor of target entry");if(t!=e){const r=e.getChildByName(t.name);if(r){if(r!=t)throw new Error(Sc)}else Bc(t),t.parent=e,e.children.push(t),function(t,e){const r=[e];for(;r.length;){const e=r.pop();t.entries[e.id]=e;for(const t of e.children)r.push(t)}}(this,t)}}find(t){const e=t.split("/");let r=this.root;for(let t=0;r&&t<e.length;t++)r=r.getChildByName(e[t]);return r||(r=this.entries.find(e=>e&&(e==this.root||e.isDescendantOf(this.root))&&e.getRelativeName()==t)),r}getById(t){return this.entries[t]}getChildByName(t){return this.root.getChildByName(t)}getChildren(t){return this.root.getChildren(t)}addDirectory(t,e){return this.root.addDirectory(t,e)}addText(t,e,r){return this.root.addText(t,e,r)}addBlob(t,e,r){return this.root.addBlob(t,e,r)}addData64URI(t,e,r){return this.root.addData64URI(t,e,r)}addUint8Array(t,e,r){return this.root.addUint8Array(t,e,r)}addHttpContent(t,e,r){return this.root.addHttpContent(t,e,r)}addReadable(t,e,r){return this.root.addReadable(t,e,r)}addFileSystemEntry(t,e){return this.root.addFileSystemEntry(t,e)}addFileSystemHandle(t,e){return this.root.addFileSystemHandle(t,e)}addFile(t,e){return this.root.addFile(t,e)}importBlob(t,e){return Yc(this),this.root.importBlob(t,e)}importData64URI(t,e){return Yc(this),this.root.importData64URI(t,e)}importUint8Array(t,e){return Yc(this),this.root.importUint8Array(t,e)}importHttpContent(t,e){return Yc(this),this.root.importHttpContent(t,e)}importReadable(t,e){return Yc(this),this.root.importReadable(t,e)}importZip(t,e){return Yc(this),this.root.importZip(t,e)}exportBlob(t){return this.root.exportBlob(t)}exportData64URI(t){return this.root.exportData64URI(t)}exportUint8Array(t){return this.root.exportUint8Array(t)}exportWritable(t,e){return this.root.exportWritable(t,e)}exportFileSystemHandle(t,e){return this.root.exportFileSystemHandle(t,e)}exportZip(t,e){return this.root.exportZip(t,e)}getExportedSize(t){return this.root.getExportedSize(t)}isPasswordProtected(){return this.root.isPasswordProtected()}checkPassword(t,e){return this.root.checkPassword(t,e)}}const kc={FS:Ic,ZipDirectoryEntry:Uc,ZipFileEntry:Tc};function Cc(t,e){let r=0;const n=Array.from(t);for(;n.length;){const t=n.pop();r+=e(t)||0;for(const e of t.children)n.push(e)}return r}function Mc(t){return t.uncompressedSize}function Nc(t,e){const{data:r}=t;return e&&r instanceof Lo?r.compressedSize:t.uncompressedSize}function vc(t){let e;return function(){if(e)throw new Error(gc);return e=!0,{readable:t}}}function _c(t){return class extends bn{constructor(t,e={}){super(),this.entry=t,this.options=e}async init(){const e=this,r=Object.assign({},t,e.options),{checkOverlappingEntry:n,checkOverlappingEntryOnly:o}=r,a=await e.entry.getData(new Dn,Object.assign(r,{checkPasswordOnly:!1,checkOverlappingEntry:o||n,checkOverlappingEntryOnly:!1,preventClose:!1}));e.data=a,e.Er=new xn(a),e.size=a.size,super.init()}readUint8Array(t,e){return this.Er.readUint8Array(t,e)}}}function Pc(t,e,r){return t.prototype?new t(e,r):t(e,r)}async function jc(t,e){const r=[],n=[t],o=new Map;for(;n.length;){const t=n.pop();for(const e of t.children)e.directory?n.push(e):r.push(e)}return await Promise.all(r.map(async t=>{const r=t.reader=Pc(t.Reader,t.data,e);o.set(t,r);try{await eo(r)}catch(e){try{e.entryId=t.id,e.cause={entry:t}}catch{}throw e}r.size!==T&&(t.uncompressedSize=r.size,t.pr=!1)})),o}function Bc(t){if(t.parent){const e=t.parent.children;e.forEach((r,n)=>{r.id==t.id&&e.splice(n,1)})}}function Wc(t){return Boolean(t)&&t.message==Dc}function Lc(t,e,n){const o=n.relativePath?t.getRelativeName(e):t.getFullname(),a=t.options||{};let i={},s={};if(t.data instanceof Lo){const{externalFileAttributes:e,versionMadeBy:o,comment:c,lastModDate:u,rawLastModDate:l,creationDate:f,lastAccessDate:d,uncompressedSize:w,encrypted:p,zipCrypto:h,crc32:m,compressionMethod:y,extraFieldAES:b,internalFileAttributes:E,extraField:S,bitFlag:g,uid:A,gid:R}=t.data;i={externalFileAttributes:e,versionMadeBy:o,comment:c,lastModDate:u,creationDate:f,lastAccessDate:d,internalFileAttributes:E};const x=function(t){if(t){const e=new Map;if(t.forEach((t,r)=>{Fc.has(r)||e.set(r,t.data)}),e.size)return e}}(S);if(x&&(i.extraField=x),A===T&&R===T||Object.assign(i,{uid:A,gid:R,unixExtraFieldType:"infozip"}),Hc(t,n)){let t;b&&(t=b.strength),s={passThrough:!0,encrypted:p,zipCrypto:h,crc32:m,uncompressedSize:w,encryptionStrength:t,compressionMethod:y},g&&(s.dataDescriptor=g.dataDescriptor);const e=a.lastModDate===T?n.lastModDate:a.lastModDate;if(e===T)s.rawLastModDate=l;else if(h&&(!g||g.dataDescriptor)&&e instanceof Date&&function(t){let e=new Date(2e3*Math.ceil(Math.floor(t.getTime()/1e3)/2));return e<O?e=O:e>F&&(e=F),(e.getHours()<<3|e.getMinutes()>>3)&r}(e)!=(l>>>8&r))throw new Error(xc)}}const c=Object.assign({lastModDate:t.mr},i,n,a,s,{directory:t.directory});if(!t.directory&&c.passThrough&&c.uncompressedSize===T)throw new Error(Ac);return{name:o,yr:c}}function Zc(t,e){const{reader:r}=t;return r&&r.size!==T?r.size:t.pr?T:Nc(t,e)}function Vc(t){if(t&&(typeof t!=C||Array.isArray(t)))throw new Error(Rc);return t}function Hc(t,e){const{readerOptions:r}=e;return Boolean(!t.directory&&(t.passThrough||r&&r.passThrough))}function Gc(t){return t.directory&&null===t.data}function Kc(t,e,r){return async function t(e,n,o,a=""){if(n){const i=a?a+"/"+n.name:n.name;try{if((n.isFile||n.isDirectory)&&(n=await qc(n)),"file"==n.kind){const t=await n.getFile();o.push(Xc(e,t.name,{Reader:function(){return{readable:t.stream(),size:t.size}},options:Object.assign({},{lastModDate:new Date(t.lastModified)},r),uncompressedSize:t.size}))}else if("directory"==n.kind){const a=e.addDirectory(n.name,r);o.push(a);for await(const e of n.values())await t(a,e,o,i)}}catch(t){try{t.entryName===T&&(t.entryName=i)}catch{}throw t}}return o}(t,e,[])}async function qc(t){const e={name:t.name};if(t.isFile&&(e.kind="file",e.getFile=()=>new Promise((e,r)=>t.file(e,r))),t.isDirectory){e.kind="directory";const r=await async function(t){const e=[];function r(t,n,o){t.readEntries(async a=>{if(a.length){for(const t of a)e.push(await qc(t));r(t,n,o)}else n(e)},o)}return await new Promise((e,n)=>r(t.createReader(),e,n)),{[Symbol.iterator](){let t=0;return{next(){const r={value:e[t],done:t==e.length};return t++,r}}}}}(t);e.values=()=>r}return e}function Yc(t){t.entries=[],t.wr=0,t.root=new Uc(t)}function Xc(t,e,r,n){if(t.directory)return n?new Uc(t.fs,e,r,t):new Tc(t.fs,e,r,t);throw new Error("Parent entry is not a directory")}export{xn as BlobReader,Dn as BlobWriter,Sn as Data64URIReader,gn as Data64URIWriter,zc as ERR_ABORTED,ea as ERR_AMBIGUOUS_ARCHIVE,Zo as ERR_BAD_FORMAT,Go as ERR_CENTRAL_DIRECTORY_NOT_FOUND,wi as ERR_DUPLICATED_NAME,Yo as ERR_ENCRYPTED,ra as ERR_ENCRYPTED_CENTRAL_DIRECTORY,ta as ERR_ENTRY_DATA_OUT_OF_BOUNDS,Sc as ERR_ENTRY_EXISTS,Ho as ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND,Vo as ERR_EOCDR_NOT_FOUND,qo as ERR_EXTRAFIELD_ZIP64_NOT_FOUND,an as ERR_HTTP_RANGE,sn as ERR_HTTP_RESOURCE_CHANGED,qt as ERR_INVALID_AUTHENTICATION_CODE,_e as ERR_INVALID_CODEC_DEFINITION,je as ERR_INVALID_CODEC_MODULE,pi as ERR_INVALID_COMMENT,hi as ERR_INVALID_COMMENT_TYPE,Xe as ERR_INVALID_COMPRESSED_DATA,Je as ERR_INVALID_CRC32,bi as ERR_INVALID_DATE,gi as ERR_INVALID_ENCRYPTION_STRENGTH,mi as ERR_INVALID_ENTRY_COMMENT,yi as ERR_INVALID_ENTRY_COMMENT_TYPE,Ei as ERR_INVALID_ENTRY_NAME,xi as ERR_INVALID_EXTRAFIELD,Fi as ERR_INVALID_EXTRAFIELD_DATA,zi as ERR_INVALID_EXTRAFIELD_DATA_TYPE,Di as ERR_INVALID_EXTRAFIELD_TYPE,aa as ERR_INVALID_FILENAME_VALIDATION,tt as ERR_INVALID_FUNCTION_OPTION,ji as ERR_INVALID_GID,Hi as ERR_INVALID_LEVEL,ia as ERR_INVALID_MAX_APPENDED_DATA_SIZE,ut as ERR_INVALID_MAX_WORKERS,Zi as ERR_INVALID_MSDOS_ATTRIBUTES,Vi as ERR_INVALID_MSDOS_DATA,Gt as ERR_INVALID_PASSWORD,rt as ERR_INVALID_PASSWORD_TYPE,Ac as ERR_INVALID_PASS_THROUGH,Rc as ERR_INVALID_READER_OPTIONS,et as ERR_INVALID_SIGNAL,Kt as ERR_INVALID_SIGNATURE,Gi as ERR_INVALID_SIGNATURE_DATA,oa as ERR_INVALID_STRICTNESS,Pi as ERR_INVALID_UID,Ye as ERR_INVALID_UNCOMPRESSED_SIZE,Wi as ERR_INVALID_UNIX_EXTRA_FIELD_TYPE,Li as ERR_INVALID_UNIX_ID_SIZE,Bi as ERR_INVALID_UNIX_MODE,Si as ERR_INVALID_VERSION,cn as ERR_ITERATOR_COMPLETED_TOO_SOON,Ko as ERR_LOCAL_FILE_HEADER_NOT_FOUND,$o as ERR_OVERLAPPING_ENTRY,gc as ERR_READABLE_CONSUMED,Pe as ERR_RESERVED_COMPRESSION_METHOD,Qo as ERR_SPLIT_ZIP_FILE,Mi as ERR_UNDEFINED_COMPRESSION_METHOD,vi as ERR_UNDEFINED_READER,Ci as ERR_UNDEFINED_UNCOMPRESSED_SIZE,Ni as ERR_UNDETERMINED_SIZE,na as ERR_UNSAFE_FILENAME,Jo as ERR_UNSUPPORTED_COMPRESSION,nc as ERR_UNSUPPORTED_CONTEXT,Xt as ERR_UNSUPPORTED_CRYPTO_API,Xo as ERR_UNSUPPORTED_ENCRYPTION,Ri as ERR_UNSUPPORTED_ENCRYPTION_PASS_THROUGH,Ai as ERR_UNSUPPORTED_ENCRYPTION_USDZ,ki as ERR_UNSUPPORTED_FORMAT,sa as ERR_UNSUPPORTED_UINT64,br as ERR_WORKER_STARTUP_TIMEOUT,un as ERR_WRITER_NOT_INITIALIZED,xc as ERR_ZIP_CRYPTO_LAST_MOD_DATE,_i as ERR_ZIP_NOT_EMPTY,Kn as HttpRangeReader,Gn as HttpReader,bn as Reader,Xn as SplitDataReader,Jn as SplitDataWriter,zn as TextReader,On as TextWriter,qn as Uint8ArrayReader,Yn as Uint8ArrayWriter,Ys as VERSION,pa as WARNING_APPENDED_DATA,la as WARNING_COMPRESSED_PATCHED_DATA,ba as WARNING_DUPLICATE_FILENAME,fa as WARNING_MALFORMED_EXTRA_FIELD,Sa as WARNING_MISMATCHED_LOCAL_FILE_HEADER_BIT_FLAG,ga as WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD,Aa as WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES,Ea as WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY,ma as WARNING_PREPENDED_CENTRAL_DIRECTORY,ha as WARNING_PREPENDED_DATA,ya as WARNING_TRAILING_CENTRAL_DIRECTORY_DATA,ua as WARNING_UNKNOWN_VERSION,da as WARNING_UNKNOWN_ZIP64_EXTENSIBLE_DATA,ca as WARNING_UNSORTED_CENTRAL_DIRECTORY,wa as WARNING_WRAPPED_ENTRIES_COUNT,En as Writer,Uc as ZipDirectoryEntry,Oc as ZipEntry,Ic as ZipFS,Tc as ZipFileEntry,Ta as ZipReader,Ua as ZipReaderStream,Qi as ZipWriter,$i as ZipWriterStream,St as configure,tc as createBlobTempStream,Qs as createOPFSTempStream,oc as createSyncAccessHandleTempStream,kc as fs,Gs as getMimeType,Ge as getRegisteredCodecs,Ks as getSupportedCompressionMethods,Ia as isZipFile,Ze as registerCodec,Dt as resetConfiguration,Ec as terminateWorkers,Ve as unregisterCodec};
|
|
1
|
+
const t=4294967295,e=65535,r=255,n=67324752,o=134695760,a=o,i=84233040,s=33639248,c=101010256,u=101075792,l=117853008,f=46,d=22,w=20,p=56,h=39169,m=21589,y=6534,b=30837,E=30805,S=2048,g=61440,A=16384,R=2048,x=1024,D="/",z=30,F=new Date(2107,11,31,23,59,58),O=new Date(1980,0,1),T=void 0,U=1/0,I="undefined",k="function",C="object",M="string",v=new Uint8Array,N="password",_="rawPassword",P="passThrough",B="signal",j="useWebWorkers",W="useCompressionStream",L="transferStreams",Z="preventClose",V="dataDescriptor",H="offset",G="usdz",K="maxAppendedDataSize",q="signCentralDirectory",Y="filename",X="comment",J="strict",Q="balanced",$="tolerant",tt="Invalid option (must be a function)",et="Invalid signal (must be an AbortSignal instance)",rt="Invalid password (password must be a string, rawPassword must be a Uint8Array)";function nt(t){if(t&&typeof t!=k)throw new Error(tt);return t}function ot(t){if(t&&(typeof t.addEventListener!=k||"boolean"!=typeof t.aborted))throw new Error(et);return t||T}function at(t,e){if(t&&typeof t!=M||e&&!(e instanceof Uint8Array))throw new Error(rt)}function it(t,e,r){if(!Number.isInteger(t)||t<0||t>e)throw new Error(r)}function st(t,e,r){t!==T&&it(t,e,r)}function ct(t){return typeof t==M&&t.trim()?Number(t):t}const ut="Invalid maxWorkers (must be an integer greater than 0)";let lt=2;try{typeof navigator!=I&&navigator.hardwareConcurrency&&(lt=navigator.hardwareConcurrency)}catch{}const ft={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:lt,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,workerStartupTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof CompressionStream!=I&&CompressionStream,DecompressionStream:typeof DecompressionStream!=I&&DecompressionStream},dt="maxWorkers",wt=["chunkSize",dt,"terminateWorkerTimeout","workerStarvationTimeout","workerStartupTimeout"],pt=["createWorker","CompressionStream","DecompressionStream","CompressionStreamFallback","DecompressionStreamFallback"],ht=["baseURI","wasmURI","workerURI","useCompressionStream","useWebWorkers","transferStreams",...wt,...pt],mt={...ft};function yt(){return mt}function bt(t){return Et(t.chunkSize)}function Et(t){return t=ct(t),Number.isInteger(t)&&t>=1?Math.max(t,64):65536}function St(t){Object.assign(mt,gt(Rt(t)))}function gt(t){const e={};for(const r of ht){const n=t[r];n!==T&&(e[r]=At(r,n))}return e}function At(t,e){if(wt.includes(t)){if(e=ct(e),t==dt&&(!Number.isInteger(e)||e<1))throw new Error(ut)}else pt.includes(t)&&nt(e);return e}function Rt(t){t=t||{};const{CompressionStreamZlib:e,DecompressionStreamZlib:r}=t;if(e===T&&r===T)return t;const n=Object.assign({},t);return n.CompressionStreamFallback===T&&(n.CompressionStreamFallback=e),n.DecompressionStreamFallback===T&&(n.DecompressionStreamFallback=r),n}function xt(t){const e=gt(Rt(t));Object.assign(ft,e),Object.assign(mt,e)}function Dt(){for(const t of ht)delete mt[t];Object.assign(mt,ft)}function zt(t,e){const r=new Uint8Array(t.length+e.length);return r.set(t),r.set(e,t.length),r}function Ft(t){return t.byteOffset||t.byteLength!=t.buffer.byteLength?new Uint8Array(t):t}function Ot(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}const Tt=[[],[],[],[],[],[],[],[]];for(let t=0;t<256;t++){let e=t;for(let t=0;t<8;t++)e=1&e?e>>>1^3988292384:e>>>1;Tt[0][t]=e}for(let t=0;t<256;t++)for(let e=1;e<8;e++){const r=Tt[e-1][t];Tt[e][t]=r>>>8^Tt[0][255&r]}const[Ut,It,kt,Ct,Mt,vt,Nt,_t]=Tt;class Pt{constructor(t){this.o=t||-1}append(t){let e=0|this.o;const r=0|t.length;let n=0;if(r>=8&&t.buffer){const o=new DataView(t.buffer,t.byteOffset,r),a=r-8;for(;n<=a;n+=8){const t=e^o.getInt32(n,!0),r=o.getInt32(n+4,!0);e=_t[255&t]^Nt[t>>>8&255]^vt[t>>>16&255]^Mt[t>>>24&255]^Ct[255&r]^kt[r>>>8&255]^It[r>>>16&255]^Ut[r>>>24&255]}}for(;n<r;n++)e=e>>>8^Ut[255&(e^t[n])];this.o=e}get(){return~this.o}}class Bt extends TransformStream{constructor(){let t;const e=new Pt;super({transform(t,r){e.append(t),r.enqueue(t)},flush(){const r=new Uint8Array(4);new DataView(r.buffer).setUint32(0,e.get()),t.value=r}}),t=this}}function jt(t){if(typeof TextEncoder==I){t=unescape(encodeURIComponent(t));const e=new Uint8Array(t.length);for(let r=0;r<e.length;r++)e[r]=t.charCodeAt(r);return e}return(new TextEncoder).encode(t)}const Wt={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const r=t[t.length-1],n=Wt.l(r);return 32===n?t.concat(e):Wt.h(e,n,0|r,t.slice(0,t.length-1))},bitLength(t){const e=t.length;if(0===e)return 0;const r=t[e-1];return 32*(e-1)+Wt.l(r)},m(t,e){if(32*t.length<e)return t;const r=(t=t.slice(0,Math.ceil(e/32))).length;return e&=31,r>0&&e&&(t[r-1]=Wt.S(e,t[r-1]&2147483648>>e-1,1)),t},S:(t,e,r)=>32===t?e:(r?0|e:e<<32-t)+1099511627776*t,l:t=>Math.round(t/1099511627776)||32,h(t,e,r,n){for(void 0===n&&(n=[]);e>=32;e-=32)n.push(r),r=0;if(0===e)return n.concat(t);for(let o=0;o<t.length;o++)n.push(r|t[o]>>>e),r=t[o]<<32-e;const o=t.length?t[t.length-1]:0,a=Wt.l(o);return n.push(Wt.S(e+a&31,e+a>32?r:n.pop(),1)),n}},Lt={bytes:{A(t){const e=Wt.bitLength(t)/8,r=new Uint8Array(e);let n;for(let o=0;o<e;o++)3&o||(n=t[o/4]),r[o]=n>>>24,n<<=8;return r},R(t){const e=[];let r,n=0;for(r=0;r<t.length;r++)n=n<<8|t[r],3&~r||(e.push(n),n=0);return 3&r&&e.push(Wt.S(8*(3&r),n)),e}}},Zt=class{constructor(t){const e=this;e.blockSize=512,e.D=[1732584193,4023233417,2562383102,271733878,3285377520],e.F=[1518500249,1859775393,2400959708,3395469782],t?(e.O=t.O.slice(0),e.T=t.T.slice(0),e.U=t.U):e.reset()}reset(){const t=this;return t.O=t.D.slice(0),t.T=[],t.U=0,t}update(t){const e=this;"string"==typeof t&&(t=Lt.I.R(t));const r=e.T=Wt.concat(e.T,t),n=e.U,o=e.U=n+Wt.bitLength(t);if(o>9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");const a=new Uint32Array(r);let i=0;for(let t=e.blockSize+n-(e.blockSize+n&e.blockSize-1);t<=o;t+=e.blockSize)e.C(a.subarray(16*i,16*(i+1))),i+=1;return r.splice(0,16*i),e}M(){const t=this;let e=t.T;const r=t.O;e=Wt.concat(e,[Wt.S(1,1)]);for(let t=e.length+2;15&t;t++)e.push(0);for(e.push(Math.floor(t.U/4294967296)),e.push(0|t.U);e.length;)t.C(e.splice(0,16));return t.reset(),r}v(t,e,r,n){return t<=19?e&r|~e&n:t<=39?e^r^n:t<=59?e&r|e&n|r&n:t<=79?e^r^n:void 0}N(t,e){return e<<t|e>>>32-t}C(t){const e=this,r=e.O,n=Array(80);for(let e=0;e<16;e++)n[e]=t[e];let o=r[0],a=r[1],i=r[2],s=r[3],c=r[4];for(let t=0;t<=79;t++){t>=16&&(n[t]=e.N(1,n[t-3]^n[t-8]^n[t-14]^n[t-16]));const r=e.N(5,o)+e.v(t,a,i,s)+c+n[t]+e.F[Math.floor(t/20)]|0;c=s,s=i,i=e.N(30,a),a=o,o=r}r[0]=r[0]+o|0,r[1]=r[1]+a|0,r[2]=r[2]+i|0,r[3]=r[3]+s|0,r[4]=r[4]+c|0}},Vt={importKey:t=>new Vt._(Lt.bytes.R(t)),P(t,e,r,n){if(r=r||1e4,n<0||r<0)throw new Error("invalid params to pbkdf2");const o=1+(n>>5)<<2;let a,i,s,c,u;const l=new ArrayBuffer(o),f=new DataView(l);let d=0;const w=Wt;for(e=Lt.bytes.R(e),u=1;d<(o||1);u++){for(a=i=t.encrypt(w.concat(e,[u])),s=1;s<r;s++)for(i=t.encrypt(i),c=0;c<i.length;c++)a[c]^=i[c];for(s=0;d<(o||1)&&s<a.length;s++)f.setInt32(d,a[s]),d+=4}return l.slice(0,n/8)},_:class{constructor(t){const e=this,r=e.B=Zt,n=[[],[]];e.j=[new r,new r];const o=e.j[0].blockSize/32;t.length>o&&(t=(new r).update(t).M());for(let e=0;e<o;e++)n[0][e]=909522486^t[e],n[1][e]=1549556828^t[e];e.j[0].update(n[0]),e.j[1].update(n[1]),e.W=new r(e.j[0])}reset(){const t=this;t.W=new t.B(t.j[0]),t.L=!1}update(t){this.L=!0,this.W.update(t)}digest(){const t=this,e=t.W.M(),r=new t.B(t.j[1]).update(e).M();return t.reset(),r}encrypt(t){if(this.L)throw new Error("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}},Ht=typeof crypto!=I&&typeof crypto.getRandomValues==k,Gt="Invalid password",Kt="Invalid signature",qt=Kt,Yt="zipjs-abort-check-password",Xt="Crypto API not supported";function Jt(t){if(Ht)return crypto.getRandomValues(t);throw new Error(Xt)}const Qt=16,$t={name:"PBKDF2"},te=Object.assign({hash:{name:"HMAC"}},$t),ee=Object.assign({iterations:1e3,hash:{name:"SHA-1"}},$t),re=["deriveBits"],ne=[8,12,16],oe=[16,24,32],ae=10,ie=[0,0,0,0],se=typeof crypto!=I,ce=se&&crypto.subtle,ue=se&&typeof ce!=I,le=Lt.bytes,fe=class{constructor(t){const e=this;e.Z=[[[],[],[],[],[]],[[],[],[],[],[]]],e.Z[0][0][0]||e.V();const r=e.Z[0][4],n=e.Z[1],o=t.length;let a,i,s,c=1;if(4!==o&&6!==o&&8!==o)throw new Error("invalid aes key size");for(e.F=[i=t.slice(0),s=[]],a=o;a<4*o+28;a++){let t=i[a-1];(a%o===0||8===o&&a%o===4)&&(t=r[t>>>24]<<24^r[t>>16&255]<<16^r[t>>8&255]<<8^r[255&t],a%o===0&&(t=t<<8^t>>>24^c<<24,c=c<<1^283*(c>>7))),i[a]=i[a-o]^t}for(let t=0;a;t++,a--){const e=i[3&t?a:a-4];s[t]=a<=4||t<4?e:n[0][r[e>>>24]]^n[1][r[e>>16&255]]^n[2][r[e>>8&255]]^n[3][r[255&e]]}}encrypt(t){return this.H(t,0)}decrypt(t){return this.H(t,1)}V(){const t=this.Z[0],e=this.Z[1],r=t[4],n=e[4],o=[],a=[];let i,s,c,u;for(let t=0;t<256;t++)a[(o[t]=t<<1^283*(t>>7))^t]=t;for(let l=i=0;!r[l];l^=s||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,r[l]=a,n[a]=l,u=o[c=o[s=o[l]]];let f=16843009*u^65537*c^257*s^16843008*l,d=257*o[a]^16843008*a;for(let r=0;r<4;r++)t[r][l]=d=d<<24^d>>>8,e[r][a]=f=f<<24^f>>>8}for(let r=0;r<5;r++)t[r]=t[r].slice(0),e[r]=e[r].slice(0)}H(t,e){if(4!==t.length)throw new Error("invalid aes block size");const r=this.F[e],n=r.length/4-2,o=[0,0,0,0],a=this.Z[e],i=a[0],s=a[1],c=a[2],u=a[3],l=a[4];let f,d,w,p=t[0]^r[0],h=t[e?3:1]^r[1],m=t[2]^r[2],y=t[e?1:3]^r[3],b=4;for(let t=0;t<n;t++)f=i[p>>>24]^s[h>>16&255]^c[m>>8&255]^u[255&y]^r[b],d=i[h>>>24]^s[m>>16&255]^c[y>>8&255]^u[255&p]^r[b+1],w=i[m>>>24]^s[y>>16&255]^c[p>>8&255]^u[255&h]^r[b+2],y=i[y>>>24]^s[p>>16&255]^c[h>>8&255]^u[255&m]^r[b+3],b+=4,p=f,h=d,m=w;for(let t=0;t<4;t++)o[e?3&-t:t]=l[p>>>24]<<24^l[h>>16&255]<<16^l[m>>8&255]<<8^l[255&y]^r[b++],f=p,p=h,h=m,m=y,y=f;return o}},de=class{constructor(t,e){this.G=t,this.K=e,this.Y=e}reset(){this.Y=this.K}update(t){return this.X(this.G,t,this.Y)}J(t){if(255&~(t>>24))t+=1<<24;else{let e=t>>16&255,r=t>>8&255,n=255&t;255===e?(e=0,255===r?(r=0,255===n?n=0:++n):++r):++e,t=0,t+=e<<16,t+=r<<8,t+=n}return t}$(t){0===(t[0]=this.J(t[0]))&&(t[1]=this.J(t[1]))}X(t,e,r){let n;if(!(n=e.length))return[];const o=Wt.bitLength(e);for(let o=0;o<n;o+=4){this.$(r);const n=t.encrypt(r);e[o]^=n[0],e[o+1]^=n[1],e[o+2]^=n[2],e[o+3]^=n[3]}return Wt.m(e,o)}},we=Vt._;let pe=se&&ue&&typeof ce.importKey==k,he=se&&ue&&typeof ce.deriveBits==k;class me extends TransformStream{constructor({password:t,rawPassword:e,encryptionStrength:r,checkPasswordOnly:n,checkAuthenticationCode:o=!0}){super({start(){be(this,t,e,r)},async transform(t,e){const r=this,{password:o,strength:a,et:i,ready:s}=r;o?(await async function(t,e,r,n){const o=await Se(t,e,r,Ae(n,0,ne[e])),a=Ae(n,ne[e]);if(o[0]!=a[0]||o[1]!=a[1])throw new Error(Gt)}(r,a,o,Ae(t,0,ne[a]+2)),t=Ae(t,ne[a]+2),n?e.error(new Error(Yt)):i()):await s;const c=new Uint8Array(t.length-ae-(t.length-ae)%Qt);e.enqueue(Ee(r,t,c,0,ae,!0))},async flush(t){const{nt:e,ot:r,it:n,ready:a}=this;if(r&&e){await a;const i=Ae(n,0,n.length-ae),s=Ae(n,n.length-ae);let c=v;if(i.length){const t=xe(le,i);r.update(t);const n=e.update(t);c=Re(le,n)}const u=Ae(Re(le,r.digest()),0,ae);let l=n.length<ae?1:0;for(let t=0;t<ae;t++)l|=u[t]^s[t];if(l&&o)throw new Error(qt);t.enqueue(c)}}})}}class ye extends TransformStream{constructor({password:t,rawPassword:e,encryptionStrength:r}){super({start(){be(this,t,e,r)},async transform(t,e){const r=this,{password:n,strength:o,et:a,ready:i}=r;let s=v;n?(s=await async function(t,e,r){const n=Jt(new Uint8Array(ne[e]));return zt(n,await Se(t,e,r,n))}(r,o,n),a()):await i;const c=new Uint8Array(s.length+t.length-t.length%Qt);c.set(s,0),e.enqueue(Ee(r,t,c,s.length,0))},async flush(t){const{nt:e,ot:r,it:n,ready:o}=this;if(r&&e){await o;let a=v;if(n.length){const t=e.update(xe(le,n));r.update(t),a=Re(le,t)}const i=Re(le,r.digest()).slice(0,ae);t.enqueue(zt(a,i))}}})}}function be(t,e,r,n){Object.assign(t,{ready:new Promise(e=>t.et=e),password:ge(e,r),strength:n-1,it:v})}function Ee(t,e,r,n,o,a){const{nt:i,ot:s,it:c}=t;c.length&&(e=zt(c,e));const u=e.length-o;let l;for(r=function(t,e){if(e&&e>t.length){const r=t;(t=new Uint8Array(e)).set(r,0)}return t}(r,n+(u-u%Qt)),l=0;l<=u-Qt;l+=Qt){const t=xe(le,Ae(e,l,l+Qt));a&&s.update(t);const o=i.update(t);a||s.update(o),r.set(Re(le,o),l+n)}return t.it=Ae(e,l),r}async function Se(t,e,r,n){t.password=null;const o=await async function(t,e,r,n,o){if(!pe)return Vt.importKey(e);try{return await ce.importKey("raw",e,r,!1,o)}catch{return pe=!1,Vt.importKey(e)}}(0,r,te,0,re),a=await async function(t,e,r){if(!he)return Vt.P(e,t.salt,ee.iterations,r);try{return await ce.deriveBits(t,e,r)}catch{return he=!1,Vt.P(e,t.salt,ee.iterations,r)}}(Object.assign({salt:n},ee),o,8*(2*oe[e]+2)),i=new Uint8Array(a),s=xe(le,Ae(i,0,oe[e])),c=xe(le,Ae(i,oe[e],2*oe[e])),u=Ae(i,2*oe[e]);return Object.assign(t,{keys:{key:s,st:c,passwordVerification:u},nt:new de(new fe(s),Array.from(ie)),ot:new we(c)}),u}function ge(t,e){return e===T?jt(t):e}function Ae(t,e,r){return t.subarray(e,r)}function Re(t,e){return t.A(e)}function xe(t,e){return t.R(e)}class De extends TransformStream{constructor({password:t,rawPassword:e,passwordVerification:r,checkPasswordOnly:n}){super({start(){Fe(this,t,e,r)},transform(t,e){const r=this;if(r.password||r.rawPassword){const e=Oe(r,t.subarray(0,12));if(r.password=r.rawPassword=null,0!=(e[11]^r.passwordVerification))throw new Error(Gt);t=t.subarray(12)}n?e.error(new Error(Yt)):e.enqueue(Oe(r,t))}})}}class ze extends TransformStream{constructor({password:t,rawPassword:e,passwordVerification:r}){super({start(){Fe(this,t,e,r)},transform(t,e){const r=this;let n,o;if(r.password||r.rawPassword){r.password=r.rawPassword=null;const e=Jt(new Uint8Array(12));e[11]=r.passwordVerification,n=new Uint8Array(t.length+e.length),n.set(Te(r,e),0),o=12}else n=new Uint8Array(t.length),o=0;n.set(Te(r,t),o),e.enqueue(n)}})}}function Fe(t,e,r,n){Object.assign(t,{password:e,rawPassword:r,passwordVerification:n}),function(t,e,r){const n=[305419896,591751049,878082192];if(Object.assign(t,{keys:n,ct:new Pt(n[0]),ut:new Pt(n[2])}),r)for(let e=0;e<r.length;e++)Ue(t,r[e]);else for(let r=0;r<e.length;r++)Ue(t,e.charCodeAt(r))}(t,e,r)}function Oe(t,e){const r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=Ie(t)^e[n],Ue(t,r[n]);return r}function Te(t,e){const r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=Ie(t)^e[n],Ue(t,e[n]);return r}function Ue(t,e){let[,r]=t.keys;t.ct.append([e]);const n=~t.ct.get();r=Ce(Math.imul(Ce(r+ke(n)),134775813)+1),t.ut.append([r>>>24]);const o=~t.ut.get();t.keys=[n,r,o]}function Ie(t){const e=2|t.keys[2];return ke(Math.imul(e,1^e)>>>8)}function ke(t){return 255&t}function Ce(t){return 4294967295&t}function Me(t){if(t instanceof ReadableStream)return t;const e=t.getReader();return new ReadableStream({async pull(t){const{value:r,done:n}=await e.read();n?t.close():t.enqueue(r)},cancel:t=>e.cancel(t)})}function ve(t,e){t=Me(t);const r=e?{type:e}:{};if(typeof Blob.prototype.stream!=k||new Blob([]).stream()instanceof ReadableStream)return new Response(t).blob().then(t=>e?new Blob([t],r):t);const n=[];return t.pipeTo(new WritableStream({write(t){n.push(t)}})).then(()=>new Blob(n,r))}function Ne(t){if(t instanceof WritableStream)return t;const e=t.getWriter();return new WritableStream({write:t=>e.write(t),close:()=>e.close(),abort:t=>e.abort(t)})}const _e="Invalid codec definition",Pe="Reserved compression method",Be="Invalid codec module",je=[0,8,9,99],We=new Map,Le=new Map;function Ze(t={}){const{compressionMethod:r,format:n,codecURI:o,CompressionStream:a,DecompressionStream:i,versionNeeded:s}=t;if(!Number.isInteger(r)||r<0||r>e||typeof n!=M||!n.length)throw new Error(_e);if(je.includes(r))throw new Error(Pe);const c=typeof a==k||typeof i==k;if(!(c||typeof o==M&&o.length))throw new Error(_e);We.set(r,{compressionMethod:r,format:n,codecURI:o,versionNeeded:s}),c&&qe(n,{CompressionStream:a,DecompressionStream:i})}function Ve(t){const e=We.get(t);if(e){let r;We.delete(t),We.forEach(t=>r=r||t.format==e.format),r||Le.delete(e.format)}}function He(t){return We.get(t)}function Ge(){return Array.from(We.values(),t=>Object.assign({},t,Le.get(t.format)))}function Ke(t){return Le.get(t)}function qe(t,e){const{CompressionStream:r,DecompressionStream:n}=e;if(typeof r!=k&&typeof n!=k)throw new Error(Be);Le.set(t,{CompressionStream:r,DecompressionStream:n})}const Ye="Invalid uncompressed size",Xe="Invalid compressed data",Je=Kt,Qe="deflate-raw",$e="deflate64-raw",tr="gzip",er=[31,139,8];class rr extends TransformStream{constructor(t,{chunkSize:e,CompressionStreamFallback:r,CompressionStream:n}){super({});const{compressed:o,encrypted:a,useCompressionStream:i,zipCrypto:s,computeCrc32:c,level:u,deflate64:l,format:f,compressionMethod:d,inputSize:w}=t,p=this;let h,m,y,b=super.readable;const E=f&&Ke(f),S=c&&o&&!l&&!E&&(!a||s)&&Boolean(i&&n);if(a&&!s||!c||S||(h=new Bt,b=fr(b,h)),o)if(E)b=dr(b,ur(E.CompressionStream,f,{level:u,chunkSize:e,compressionMethod:d,uncompressedSize:w}));else if(S)y=new nr,b=dr(b,new n(tr)),b=fr(b,y);else try{b=lr(b,i,{level:u,chunkSize:e},n,r)}catch(t){let e;try{e=new n(tr)}catch{throw t}b=dr(b,e),b=fr(b,new nr)}a&&(s?b=fr(b,new ze(t)):(m=new ye(t),b=fr(b,m))),cr(p,b,()=>{a&&!s||!c||(p.crc32=S?y.crc32:new DataView(h.value.buffer).getUint32(0))})}}class nr extends TransformStream{constructor(){let t,e=10,r=new Uint8Array(0);super({transform(t,n){if(e){const r=Math.min(e,t.length);if(e-=r,!(t=t.subarray(r)).length)return}const o=r.length+t.length;if(o<=8)return void(r=zt(r,t));const a=o-8,i=Math.min(a,r.length);n.enqueue(zt(r.subarray(0,i),t.subarray(0,a-i))),r=zt(r.subarray(i),t.subarray(a-i))},flush(){const e=Ot(r);t.crc32=e.getUint32(0,!0),t.uncompressedSize=e.getUint32(4,!0)}}),t=this}}class or extends TransformStream{constructor(t,{chunkSize:e,DecompressionStreamFallback:r,DecompressionStream:n}){super({});const{zipCrypto:o,encrypted:a,checkCrc32:i,crc32:s,compressed:c,useCompressionStream:u,deflate64:l,format:f,compressionMethod:d,rawBitFlag:w,outputSize:p}=t;let h,m,y=super.readable;if(a&&(o?y=fr(y,new De(t)):(m=new me(t),y=fr(y,m))),c){const t=f&&Ke(f);if(t)y=dr(y,ur(t.DecompressionStream,f,{chunkSize:e,compressionMethod:d,rawBitFlag:w,uncompressedSize:p}));else try{y=lr(y,u,{chunkSize:e,deflate64:l},n,r)}catch(t){if(l||p===T)throw t;let e;try{e=new n(tr)}catch{throw t}y=function(t,e,r){const n=new Pt;let o,a,i,s=0,c=!1;const u=new Promise((t,e)=>{a=t,i=e});u.catch(()=>{}),r||a();const l=new TransformStream({start(t){const e=new Uint8Array(10);e.set(er),t.enqueue(e)},transform(t,e){e.enqueue(t)},async flush(t){c=!0,d();try{await u}finally{w()}const e=new Uint8Array(8),o=Ot(e);o.setUint32(0,n.get(),!0),o.setUint32(4,r,!0),t.enqueue(e)},cancel(t){i(t)}}),f=new TransformStream({transform(t,e){n.append(t),s+=t.length,s>=r?a():c&&d(),e.enqueue(t)},cancel(t){i(t)}});return t=fr(t,l),fr(t=dr(t,e),f);function d(){w(),o=setTimeout(()=>i(new Error(Ye)),5e3)}function w(){clearTimeout(o)}}(y,e,p)}y=function(t){const e=t.getReader();return new ReadableStream({async pull(t){let r;try{r=await e.read()}catch(t){if(t&&t.message)throw t;const e=new Error(Xe);throw e.cause=t,e}const{value:n,done:o}=r;o?t.close():t.enqueue(n)},cancel:t=>e.cancel(t)})}(y)}i&&(h=new Bt,y=fr(y,h)),cr(this,y,()=>{if(i){const t=new DataView(h.value.buffer);if(s!=t.getUint32(0,!1))throw new Error(Je)}})}}const ar=new Map;function ir(t,e){if(!t)return!1;let r=ar.get(t);r||(r=new Map,ar.set(t,r));let n=r.get(e);if(n===T){try{new t(e),n=!0}catch{n=!1}r.set(e,n)}return n}function sr(t){return ir(t,Qe)}function cr(t,e,r){e=fr(e,new TransformStream({flush:r})),Object.defineProperty(t,"readable",{get:()=>e})}function ur(t,e,r){if(!t)throw new Error("Compression method not supported");return new t(e,r)}function lr(t,e,r,n,o){const a=e&&n?n:o||n,i=r.deflate64?$e:Qe;let s;try{s=new a(i,r)}catch(t){if(!e||!o||a==o)throw t;s=new o(i,r)}return dr(t,s)}function fr(t,e){return Me(t).pipeThrough(e)}function dr(t,e){const r=e.writable.getWriter(),n=t.getReader();return async function(){try{for(;;){await r.ready;const t=await n.read();if(t.done){await r.close();break}await r.write(t.value)}}catch(t){await async function(t,e){try{await t.abort(e)}catch{}}(r,t),await async function(t,e){try{await t.cancel(e)}catch{}}(n,t)}}(),e.readable}const wr="data",pr="deflate",hr="inflate";class mr extends TransformStream{constructor(t,e){super({});const r=this,{codecType:n}=t;let o;n.startsWith(pr)?o=rr:n.startsWith(hr)&&(o=or),r.outputSize=0;let a=0;const i=new o(t,e),s=super.readable,c=new TransformStream({transform(t,e){t&&t.length&&(a+=t.length,e.enqueue(t))},flush(){Object.assign(r,{inputSize:a})}}),u=new TransformStream({transform(e,n){if(e&&e.length&&(n.enqueue(e),r.outputSize+=e.length,t.outputSize!==T&&r.outputSize>t.outputSize))throw new Error(Ye)},flush(){const{crc32:t}=i;Object.assign(r,{crc32:t,inputSize:a})}});Object.defineProperty(r,"readable",{get:()=>s.pipeThrough(c).pipeThrough(i).pipeThrough(u)})}}class yr extends TransformStream{constructor(t){const e=[];let r=0;function n(){const n=new Uint8Array(t);let o=0;for(;o<t;){const r=e[0],a=t-o;r.length<=a?(n.set(r,o),o+=r.length,e.shift()):(n.set(r.subarray(0,a),o),e[0]=r.subarray(a),o+=a)}return r-=t,n}(!Number.isFinite(t)||t<1)&&(t=65536),super({transform(o,a){for(e.push(o),r+=o.length;r>t;)a.enqueue(n())},flush(t){r&&t.enqueue(function(t,e){const r=new Uint8Array(e);let n=0;for(const e of t)r.set(e,n),n+=e.length;return r}(e,r))}})}}const br="Worker startup timeout";let Er,Sr,gr,Ar=()=>{};async function Rr(t){const{CompressionStream:e,CompressionStreamFallback:r}=t;if(r&&!r.lt)return!0;if(sr(e)||ir(e,tr))return!0;if(r)try{return await Ar(t),!0}catch{return!1}return!1}function xr(t){t.createWorker?Sr=!0:Er=!1}class Dr{constructor(t,{readable:e,writable:r},{options:n,config:o,ft:a,useWebWorkers:i,transferStreams:s,workerURI:c,createWorker:u},l){const{signal:f}=a;return Sr&&(u=T),Object.assign(t,{wt:!0,ht:(t.ht||0)+1,readable:e.pipeThrough(new yr(bt(o))).pipeThrough(new zr(a),{signal:f}),writable:r,options:Object.assign({},n),workerURI:c,createWorker:u,transferStreams:s,terminate:()=>new Promise(e=>{const{yt:r,wt:n}=t;r?(n?t.bt=e:(r.terminate(),e()),t.Et=null):e()}),St(){if(t.wt){const{bt:e}=t;e&&(t.bt=null,t.gt=!0,t.yt.terminate(),e()),t.wt=!1,l(t)}}}),Er===T&&(Er=typeof Worker!=I),(i&&gr&&(Er&&c||u)?gr:Or)(t,o)}}class zr extends TransformStream{constructor({onstart:t,onprogress:e,size:r,onend:n}){let o=0;super({async start(){t&&await Fr(t,r)},async transform(t,n){o+=t.length,e&&await Fr(e,o,r),n.enqueue(t)},async flush(){n&&await Fr(n,o)}})}}async function Fr(t,...e){try{await t(...e)}catch{}}function Or(t,e){return{run:()=>Tr(t,e)}}async function Tr({options:t,readable:e,writable:r,St:n},o){let a;try{if(t.compressed&&!t.format){const e=t.codecType.startsWith(pr),r=e?o.CompressionStreamFallback:o.DecompressionStreamFallback,n=e?o.CompressionStream:o.DecompressionStream;if(t.useCompressionStream){if(r&&r.lt&&!sr(n))try{await Ar(o)}catch{}}else try{await Ar(o)}catch{r&&!r.lt||(t.useCompressionStream=!0)}}a=new mr(t,o),await e.pipeThrough(a).pipeThrough(new yr(bt(o))).pipeTo(r,{preventClose:!0,preventAbort:!0});const{crc32:n,inputSize:i,outputSize:s}=a;return{crc32:n,inputSize:i,outputSize:s}}catch(t){throw a&&(t.outputSize=a.outputSize),t}finally{n()}}const Ur={type:"module"},Ir="error";let kr,Cr,Mr,vr=!0;try{vr=typeof structuredClone==k&&structuredClone(new DOMException("","AbortError")).code!==T}catch{}var Nr;function _r(t){const{reader:e}=t;e&&e.releaseLock(),t.reader=null,t.writer=null}function Pr(t){const{yt:e}=t;if(e)try{e.terminate()}catch{}t.Et=null}function Br(t,e,r,n,o=!0){const{createWorker:a}=r;let i,s,c;if(a)i=a();else if(Cr===T||kr!==t){const a=typeof t==k;s=a?t(o):t;const u=s.startsWith("data:"),l=s.startsWith("blob:");if(u||l){n===T&&(n=!1),n&&(c=Ur);try{i=new Worker(s,c)}catch(o){if(l)try{URL.revokeObjectURL(s)}catch{}if(a&&l)return Br(t,e,r,n,!1);if(n)throw o;return Br(t,e,r,!0,!1)}}else{n===T&&(n=!0),n&&(c=Ur);try{s=new URL(s,e)}catch{}try{i=new Worker(s,c)}catch(a){if(n)return Br(t,e,r,!1,o);throw a}}kr=t,Cr=s,Mr=c}else i=new Worker(Cr,Mr);return i.addEventListener("message",t=>{r.At=!0,jr(r),async function({data:t},e){const{type:r,value:n,messageId:o,result:a,error:i}=t,{reader:s,writer:c,Rt:u,xt:l,St:f,ht:d}=e,w=()=>e.ht!=d;try{if(i){const{message:t,stack:e,code:r,name:n,outputSize:o,cause:a,codecImportFailed:s}=i,c=new Error(t);Object.assign(c,{stack:e,code:r,name:n,outputSize:o}),a&&(c.cause=Object.assign(new Error(a.message),{name:a.name})),s&&(c.codecImportFailed=!0),p(c)}else{if("pull"==r){const{value:t,done:r}=await s.read();w()||Lr({type:wr,value:t,done:r,messageId:o},e)}r==wr&&(await c.ready,await c.write(new Uint8Array(n)),w()||Lr({type:"ack",messageId:o},e)),"close"==r&&p(null,a)}}catch(i){w()||(Pr(e),p(i))}function p(t,e){w()||(t?l(t):u(e),c&&c.releaseLock(),t&&t.codecImportFailed||f())}}(t,r)}),i.addEventListener(Ir,t=>Wr(t,r)),i.addEventListener("messageerror",t=>Wr(t,r)),i}function jr(t){const{Dt:e}=t;e&&(clearTimeout(e),t.Dt=null)}function Wr(t,e){t.preventDefault&&t.preventDefault(),jr(e);const{At:r,xt:n,writer:o,St:a}=e;Pr(e),r||(e.yt=null);let i=t.error||new Error(t.message||Ir);r||(i=Object.assign(new Error(i.message||Ir),{zt:!0}),e.Ft=i),n&&(n(i),o&&o.releaseLock(),r&&a())}function Lr(t,{yt:e,writer:r,transferStreams:n,At:o}){try{const{value:r,readable:a,writable:i}=t,s=[];if(r&&(t.value=Ft(r),s.push(t.value.buffer)),n&&vr&&o?(a&&s.push(a),i&&s.push(i)):t.readable=t.writable=null,s.length)try{return e.postMessage(t,s),!0}catch{vr=!1,t.readable=t.writable=null,e.postMessage(t)}else e.postMessage(t)}catch(t){throw r&&r.releaseLock(),t}}Nr=function(t,e){const{baseURI:r,chunkSize:n,workerStartupTimeout:o}=e;let{wasmURI:a}=e;if(!t.Et){let i;typeof a==k&&(a=a());try{i=Br(t.workerURI,r,t)}catch{return xr(t),Or(t,e)}Object.assign(t,{yt:i,At:!1,gt:!1,Ft:null,Et:{run:async()=>{try{return await async function(t,e){if(!t.yt){const{Ft:e}=t;t.Ft=null;const r=e||new Error(br);throw r.zt=!0,r}let r,n;const o=new Promise((t,e)=>{r=t,n=e});Object.assign(t,{reader:null,writer:null,Rt:r,xt:n,result:o});const{readable:a,options:i}=t,{writable:s,closed:c,Ot:u}=function(t){const e=new AbortController,{writable:r,readable:n}=new TransformStream,o=n.pipeTo(t,{preventClose:!0,preventAbort:!0,signal:e.signal});return o.catch(()=>{}),{writable:r,closed:o,Ot:()=>e.abort()}}(t.writable);let l;try{l=Lr({type:"start",options:i,config:e,readable:a,writable:s},t)}catch(e){u();try{await c}catch{}throw t.St(),e}l||Object.assign(t,{reader:a.getReader(),writer:s.getWriter()});const{workerStartupTimeout:f}=e;!t.At&&Number.isFinite(f)&&f>=0&&(t.Dt=setTimeout(()=>function(t){if(t.Dt=null,t.At)return;const{xt:e,writer:r}=t;if(Pr(t),t.yt=null,e){const t=new Error(br);t.zt=!0,e(t),r&&r.releaseLock()}}(t),f));try{const t=await o;return await d(),await c,t}catch(t){await d(),u();try{await c}catch{}throw t}async function d(){if(!l&&!s.locked)try{await s.getWriter().close()}catch{}}}(t,{chunkSize:n,wasmURI:a,baseURI:r,workerStartupTimeout:o})}catch(r){if(r&&r.zt)return xr(t),_r(t),Tr(t,e);if(r&&r.codecImportFailed){if(t.reader)return _r(t),Tr(t,e);t.St()}throw r}}}})}return t.Et},gr=Nr;let Zr=[];const Vr=[];let Hr,Gr,Kr=0;async function qr(t,e){const{options:r,config:n}=e,{transferStreams:o,useWebWorkers:a,useCompressionStream:i,compressed:s,checkCrc32:c,computeCrc32:u,encrypted:l,format:f,codecURI:d}=r,{workerURI:w,createWorker:p,maxWorkers:h}=n;f&&(d&&(r.codecURI=function(t,e){try{return new URL(t,e).toString()}catch{return t}}(d,n.baseURI)),await async function(t,e){!Le.has(t)&&e&&qe(t,await(import(/* webpackIgnore: true */ /* @vite-ignore */e)))}(f,r.codecURI)),e.transferStreams=!f&&(o||o===T&&n.transferStreams);const m=!(s||c||u||l),y=f===T||Boolean(r.codecURI);return e.useWebWorkers=!m&&y&&(a||a===T&&n.useWebWorkers),e.workerURI=e.useWebWorkers&&w?w:T,e.createWorker=e.useWebWorkers&&p?p:T,r.useCompressionStream=i||i===T&&n.useCompressionStream,(await async function(){const r=Zr.find(t=>!t.wt);if(r)return $r(r),new Dr(r,t,e,b);if(Zr.length<h){const r={Tt:Kr};return Kr++,Zr.push(r),new Dr(r,t,e,b)}return new Promise(r=>{Vr.push({resolve:r,stream:t,Ut:e}),Gr=n.workerStarvationTimeout,Yr()})}()).run();function b(t){if(Xr(),Vr.length){const[{resolve:e,stream:r,Ut:n}]=Vr.splice(0,1);e(new Dr(t,r,n,b)),Yr()}else t.yt?($r(t),function(t,e){const{config:r}=e,{terminateWorkerTimeout:n}=r;Number.isFinite(n)&&n>=0&&(t.gt?t.gt=!1:t.It=setTimeout(async()=>{Zr=Zr.filter(e=>e!=t);try{await t.terminate()}catch{}},n))}(t,e)):Zr=Zr.filter(e=>e!=t)}}function Yr(){!Hr&&Vr.length&&Number.isFinite(Gr)&&Gr>=0&&(Hr=setTimeout(Jr,Gr))}function Xr(){Hr&&(clearTimeout(Hr),Hr=null)}function Jr(){if(Hr=null,Vr.length){const[{resolve:t,stream:e,Ut:r}]=Vr.splice(0,1),n=Object.assign({},r,{useWebWorkers:!1,workerURI:T,createWorker:T});t(new Dr({},e,n,Qr)),Yr()}}function Qr(){Xr(),Yr()}function $r(t){const{It:e}=t;e&&(clearTimeout(e),t.It=null)}const tn="\0\u263a\u263b\u2665\u2666\u2663\u2660\u2022\u25d8\u25cb\u25d9\u2642\u2640\u266a\u266b\u263c\u25ba\u25c4\u2195\u203c\xb6\xa7\u25ac\u21a8\u2191\u2193\u2192\u2190\u221f\u2194\u25b2\u25bc !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xc7\xfc\xe9\xe2\xe4\xe0\xe5\xe7\xea\xeb\xe8\xef\xee\xec\xc4\xc5\xc9\xe6\xc6\xf4\xf6\xf2\xfb\xf9\xff\xd6\xdc\xa2\xa3\xa5\u20a7\u0192\xe1\xed\xf3\xfa\xf1\xd1\xaa\xba\xbf\u2310\xac\xbd\xbc\xa1\xab\xbb\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03b1\xdf\u0393\u03c0\u03a3\u03c3\xb5\u03c4\u03a6\u0398\u03a9\u03b4\u221e\u03c6\u03b5\u2229\u2261\xb1\u2265\u2264\u2320\u2321\xf7\u2248\xb0\u2219\xb7\u221a\u207f\xb2\u25a0\xa0".split("");function en(t,e){return rn(t,e,!0)}function rn(t,e,r){return e&&"cp437"==e.trim().toLowerCase()?function(t){let e="";for(let r=0;r<t.length;r++)e+=tn[t[r]];return e}(t):new TextDecoder(e,{ignoreBOM:r}).decode(t)}const nn="HTTP error ",on="HTTP Range not supported",an="HTTP resource changed",sn="Writer iterator completed too soon",cn="Writer not initialized",un="Content-Range",ln="Range",fn="GET",dn="bytes",wn=16777216,pn="writable",hn=Symbol();class mn{constructor(){this.size=0}init(){this.initialized=!0}}class yn extends mn{get readable(){return this.createReadable()}createReadable({offset:t=0,size:e,chunkSize:r=bt(yt())}={}){const n=this;let o=0;return r=Et(r),new ReadableStream({async pull(a){const i=e===T?r:Math.min(r,e-o),s=await ro(n,t+o,i);s.length&&a.enqueue(s),o+r>=e||!s.length&&i?a.close():o+=r}})}}class bn extends mn{constructor(){super();const t=this,e=new WritableStream({write(e){if(!t.initialized)throw new Error(cn);return t.writeUint8Array(Ft(e))}});Object.defineProperty(t,pn,{get:()=>e})}writeUint8Array(){}}class En extends yn{constructor(t){super();let e=t.length;for(;"="==t.charAt(e-1);)e--;const r=t.indexOf(",")+1;Object.assign(this,{kt:t,Ct:r,size:Math.floor(.75*(e-r))})}readUint8Array(t,e){const{Ct:r,kt:n}=this,o=new Uint8Array(e),a=4*Math.floor(t/3),i=atob(n.substring(a+r,4*Math.ceil((t+e)/3)+r)),s=t-3*Math.floor(a/4);let c=0;for(let t=s;t<s+e&&t<i.length;t++)o[t-s]=i.charCodeAt(t),c++;return c<o.length?o.subarray(0,c):o}}class Sn extends bn{constructor(t){super(),Object.assign(this,{contentType:t,data:"data:"+(t||"")+";base64,",Mt:""})}writeUint8Array(t){const e=this;let r,n=e.Mt;const o=e.Mt.length;for(e.Mt="",r=0;r<3*Math.floor((o+t.length)/3)-o;r++)n+=String.fromCharCode(t[r]);for(;r<t.length;r++)e.Mt+=String.fromCharCode(t[r]);n.length>2?e.data+=btoa(n):e.Mt=n+e.Mt}getData(){return this.data+btoa(this.Mt)}}let gn,An;class Rn extends yn{constructor(t){super(),Object.assign(this,{vt:t,size:t.size}),An||(An=(async()=>{try{const t=new Blob([new Uint8Array(3)]).slice(1,2).stream().getReader();let e=0,r=await t.read();for(;!r.done;)e+=r.value.length,r=await t.read();gn=1==e}catch{gn=!1}})())}createReadable(t){const{vt:e,size:r}=this,{offset:n=0,size:o=r-n}=t||{};return!n&&o>=r?Me(e.stream()):gn?Me(e.slice(n,n+o).stream()):super.createReadable(t)}async readUint8Array(t,e){const r=this,n=t+e,o=!t&&n>=r.size?r.vt:r.vt.slice(t,n);let a=await o.arrayBuffer();return a.byteLength>e&&(a=a.slice(t,n)),new Uint8Array(a)}}class xn extends mn{constructor(t){super();const e=this,r=new TransformStream;Object.defineProperty(e,pn,{get:()=>r.writable}),e.contentType=t,e.Nt=ve(r.readable,t),e.Nt.catch(()=>{})}getData(){return this.Nt}}class Dn extends Rn{constructor(t){super(new Blob([t],{type:"text/plain"}))}}function zn(t){let e=0;for(let r=0;r<t.length;r++){const n=t.charCodeAt(r);n<128?e+=1:n<2048?e+=2:n<55296||n>=57344?e+=3:n<56320&&56320==(64512&t.charCodeAt(r+1))?(e+=4,r++):e+=3}return e}class Fn extends xn{constructor(t){super(),Object.assign(this,{encoding:t,_t:!t||"utf-8"==t.toLowerCase()})}async getData(){const{encoding:t,_t:e}=this,r=await super.getData();return r.text&&e?r.text():function(t,e){return rn(t,e,!1)}(new Uint8Array(await r.arrayBuffer()),t)}}class On extends yn{constructor(t,e){super(),Un(this,t,e)}async init(){await In(this,Zn,Bn),super.init()}createReadable(t){const e=this,{useRangeHeader:r,forceRangeRequests:n,size:o}=e;if((r||n)&&o!==T){const{offset:r=0,size:n=o-r}=t||{};if(n>0&&r<o)return function(t,e,r){let n,o=e,a=0,i=r;return new ReadableStream({start:()=>s(),async pull(t){n||await s();const{value:e,done:r}=await n.read();if(r)throw new Error(on);const o=e.length>a?e.subarray(0,a):e;a-=o.length,i-=o.length,o.length&&t.enqueue(o),a||(await async function(){const t=n;n=T,await t.cancel()}(),i||t.close())},cancel:t=>n&&n.cancel(t)});async function s(){const e=Math.min(t.maximumRangeSize,i),r=await Zn(fn,t,_n(t,o,e));if(206!=r.status)throw new Error(on);const s=r.headers.get(un);if(s){const t=Number(s.trim().split(/[\s-]+/)[1]);if(!Number.isNaN(t)&&t!=o)throw new Error(on)}Nn(t,r),vn(t,r),o+=e,a=e,n=r.body.getReader()}}(e,r,Math.min(n,o-r))}return super.createReadable(t)}readUint8Array(t,e){return kn(this,t,e,Zn,Bn)}}class Tn extends yn{constructor(t,e){super(),Un(this,t,e)}async init(){await In(this,Vn,jn),super.init()}readUint8Array(t,e){return kn(this,t,e,Vn,jn)}}function Un(t,e,r){const{preventHeadRequest:n,useRangeHeader:o,forceRangeRequests:a,combineSizeEocd:i,checkResourceChanges:s=!0,maximumRangeSize:c=wn,fetch:u}=r;delete(r=Object.assign({},r)).preventHeadRequest,delete r.useRangeHeader,delete r.forceRangeRequests,delete r.combineSizeEocd,delete r.checkResourceChanges,delete r.maximumRangeSize,delete r.useXHR,delete r.fetch,Object.assign(t,{url:e,options:r,preventHeadRequest:n,useRangeHeader:o,forceRangeRequests:a,combineSizeEocd:i,checkResourceChanges:s,maximumRangeSize:c,fetch:u})}async function In(t,e,r){const{url:n,preventHeadRequest:o,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:s}=t;if(function(t){const{baseURI:e}=yt(),{protocol:r}=new URL(t,e);return"http:"==r||"https:"==r}(n)&&(a||i)&&(typeof o==I||o)){const n=await e(fn,t,_n(t,s?-22:void 0)),o=n.headers.get("Accept-Ranges");if(!(i||o&&o.toLowerCase()==dn))throw new Error(on);{if(s){const e=new Uint8Array(await n.arrayBuffer());206==n.status&&e.length==d&&(t.Pt=e)}vn(t,n);const o=Cn(n);o===T?await Ln(t,e,r):t.size=o}}else await Ln(t,e,r)}async function kn(t,e,r,n,o){const{useRangeHeader:a,forceRangeRequests:i,Pt:s,size:c,options:u}=t;if(a||i){if(s&&e==c-d&&r==d)return s;if(e>=c||0===r)return v;{e+r>c&&(r=c-e);const o=await n(fn,t,_n(t,e,r));if(206!=o.status)throw new Error(on);const a=o.headers.get(un);if(a){const t=Number(a.trim().split(/[\s-]+/)[1]);if(!Number.isNaN(t)&&t!=e)throw new Error(on)}Nn(t,o),vn(t,o);const i=new Uint8Array(await o.arrayBuffer());if(i.length!=r)throw new Error(on);return i}}{const{data:n}=t;return n||await o(t,u),t.data.subarray(e,e+r)}}function Cn(t){const e=t.headers.get(un);if(e){const t=e.trim().split(/\s*\/\s*/)[1];if(t&&"*"!=t){const e=Number(t);if(!Number.isNaN(e))return e}}}function Mn({headers:t}){return{Bt:t.get("Etag")||T,lastModified:t.get("Last-Modified")||T}}function vn(t,e){const{checkResourceChanges:r,jt:n}=t;r&&!n&&206==e.status&&(t.jt=Mn(e))}function Nn(t,e){const{checkResourceChanges:r,jt:n,size:o}=t;if(r){const t=Cn(e);if(t!==T&&o!==T&&t!=o)throw new Error(an);if(n){const t=Mn(e);if(Object.entries(n).some(([e,r])=>r!==T&&t[e]!==T&&r!=t[e]))throw new Error(an)}}}function _n(t,e=0,r=1){return Object.assign({},Pn(t),{[ln]:dn+"="+(e<0?e:e+"-"+(e+r-1))})}function Pn({options:t}){const{headers:e}=t;if(e)return Symbol.iterator in e?Object.fromEntries(e):e}async function Bn(t){await Wn(t,Zn)}async function jn(t){await Wn(t,Vn)}async function Wn(t,e){const r=await e(fn,t,Pn(t));t.data=new Uint8Array(await r.arrayBuffer()),t.size=t.data.length}async function Ln(t,e,r){if(t.preventHeadRequest)await r(t,t.options);else{const n=await e("HEAD",t,Pn(t)),o=n.headers.get("Content-Length");o&&!n.headers.get("Content-Encoding")?t.size=Number(o):await r(t,t.options)}}async function Zn(t,{fetch:e=fetch,options:r,url:n},o){const a=await e(n,Object.assign({},r,{method:t,headers:o}));if(a.status<400)return a;throw 416==a.status?new Error(on):new Error(nn+(a.statusText||a.status))}function Vn(t,{url:e},r){return new Promise((n,o)=>{const a=new XMLHttpRequest;if(a.addEventListener("load",()=>{if(a.status<400){const t=[];a.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(e=>{const r=e.trim().split(/\s*:\s*/);r[0]=r[0].trim().replace(/^[a-z]|-[a-z]/g,t=>t.toUpperCase()),t.push(r)}),n({status:a.status,arrayBuffer:()=>a.response,headers:new Map(t)})}else o(416==a.status?new Error(on):new Error(nn+(a.statusText||a.status)))},!1),a.addEventListener("error",t=>o(t.detail?t.detail.error:new Error("Network error")),!1),a.open(t,e),r)for(const t of Object.entries(r))a.setRequestHeader(t[0],t[1]);a.responseType="arraybuffer",a.send()})}class Hn extends yn{constructor(t,e={}){super(),Object.assign(this,{url:t,reader:e.useXHR&&!e.fetch?new Tn(t,e):new On(t,e)})}set size(t){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(t){return this.reader.createReadable(t)}readUint8Array(t,e){return this.reader.readUint8Array(t,e)}}class Gn extends Hn{constructor(t,e={}){super(t,Object.assign({},e,{useRangeHeader:!0}))}}class Kn extends yn{constructor(t){super(),t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),Object.assign(this,{Wt:t,size:t.length})}readUint8Array(t,e){return this.Wt.slice(t,t+e)}}class qn extends bn{constructor(t){super(),this.Lt=t||262144}init(t=0){Object.assign(this,{offset:0,Wt:new Uint8Array(t>0?t:this.Lt)}),super.init()}writeUint8Array(t){const e=this,r=e.offset+t.length;if(r>e.Wt.length){let t=e.Wt.length?2*e.Wt.length:e.Lt;for(;t<r;)t*=2;const n=e.Wt;e.Wt=new Uint8Array(t),e.Wt.set(n)}e.Wt.set(t,e.offset),e.offset+=t.length}getData(){return this.offset===this.Wt.length?this.Wt:this.Wt.slice(0,this.offset)}}class Yn extends yn{constructor(t){super(),this.Zt=t}async init(){const t=this;t.Vt=0;const e=t.Zt=await Promise.all(t.Zt.map(eo));t.Ht=e.map(e=>{const r=t.size;return t.size+=e.size,r}),super.init()}Gt(t){const{Ht:e,size:r}=this,n=e[t];return n===T?r:n}async readUint8Array(t,e){const r=this,{Zt:n}=this;let o,a=0,i=t;for(;n[a]&&i>=n[a].size;)i-=n[a].size,a++;const s=n[a];if(s){const n=s.size;if(i+e<=n)o=await ro(s,i,e);else{const a=n-i;o=zt(await ro(s,i,a),await r.readUint8Array(t+a,e-a))}}else o=v;return r.Vt=Math.max(a,r.Vt),o}}class Xn extends mn{constructor(t,e=4294967295){super();const r=this;let n,o,a;Object.assign(r,{diskNumber:0,diskOffset:0,size:0,maxSize:e,availableSize:e});const i=new WritableStream({async write(e){if(e===hn)return void(a&&await c());const{availableSize:i}=r;if(a)e.length>=i?(await s(e.subarray(0,i)),await c(),e.length>i&&await this.write(e.subarray(i))):await s(e);else{const{value:i,done:s}=await t.next();if(s&&!i)throw new Error(sn);n=i,n.size=0,n.maxSize&&(r.maxSize=n.maxSize),r.availableSize=r.maxSize,await to(n),o=i.writable,a=o.getWriter(),await this.write(e)}},async close(){a&&(await a.ready,await u())},async abort(t){a&&await a.abort(t)}});async function s(t){const e=t.length;e&&(await a.ready,await a.write(t),n.size+=e,r.availableSize-=e)}async function c(){await u(),r.diskOffset+=n.size,r.diskNumber++,a=null,r.availableSize=r.maxSize}async function u(){await a.close()}Object.defineProperty(r,pn,{get:()=>i})}async closeDisk(){const t=this.writable.getWriter();try{await t.ready,await t.write(hn)}finally{t.releaseLock()}}}class Jn{constructor(t){return Array.isArray(t)&&(t=new Yn(t)),(t instanceof ReadableStream||typeof t.getReader==k)&&(t={readable:Me(t)}),t}}class Qn{constructor(t){return t.writable===T&&typeof t.next==k&&(t=new Xn(t)),(t instanceof WritableStream||typeof t.getWriter==k)&&(t={writable:Ne(t)}),t.size===T&&(t.size=0),t}}function $n(t){return Boolean(t&&t.getData)}async function to(t,e){if(!t.init||t.initialized)return Promise.resolve();await t.init(e)}async function eo(t){return t=new Jn(t),await to(t),t.size!==T&&t.readUint8Array||(t=new Rn(await ve(t.readable)),await to(t)),t}function ro(t,e,r){return t.readUint8Array(e,r)}function no(t,e){return t.createReadable?t.createReadable(e):t.readUint8Array?yn.prototype.createReadable.call(t,e):t.readable}const oo="filename",ao="rawFilename",io="comment",so="rawComment",co="uncompressedSize",uo="compressedSize",lo="offset",fo="diskNumberStart",wo="lastModDate",po="rawLastModDate",ho="lastAccessDate",mo="rawLastAccessDate",yo="creationDate",bo="rawCreationDate",Eo="internalFileAttributes",So="externalFileAttributes",go="internalFileAttribute",Ao="externalFileAttribute",Ro="msdosAttributesRaw",xo="msdosAttributes",Do="msDosCompatible",zo="zip64",Fo="encrypted",Oo="version",To="versionMadeBy",Uo="zipCrypto",Io="directory",ko="executable",Co="compressionMethod",Mo="signature",vo="extraField",No="unixMode",_o="setuid",Po="setgid",Bo="sticky",jo=[oo,ao,co,uo,wo,po,io,so,ho,mo,yo,bo,lo,fo,Eo,So,go,Ao,Ro,xo,Do,zo,Fo,Oo,To,Uo,Io,ko,"symlink",Co,Mo,"crc32",vo,"extraFieldUnix","extraFieldInfoZip","extraFieldUnixType1","extraFieldPkwareUnix","uid","gid",No,"unixExternalUpper",_o,Po,Bo,"bitFlag","rawBitFlag","filenameLength","extraFieldLength","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp","extraFieldUSDZ"];class Wo{constructor(t){jo.forEach(e=>this[e]=t[e])}}const Lo="File format is not recognized",Zo="End of central directory not found",Vo="End of Zip64 central directory locator not found",Ho="Central directory header not found",Go="Local file header not found",Ko="Zip64 extra field not found",qo="File contains encrypted entry",Yo="Encryption method not supported",Xo="Compression method not supported",Jo="Split zip file",Qo="Overlapping entry found",$o="Entry data out of bounds",ta="Ambiguous archive",ea="Encrypted central directory is not supported",ra="Unsafe filename",na="Invalid strictness (must be 'strict', 'balanced' or 'tolerant')",oa="Invalid filenameValidation (must be 'strict', 'balanced' or 'tolerant')",aa="Invalid maxAppendedDataSize (must be a number greater than or equal to 0)",ia="64-bit value exceeds Number.MAX_SAFE_INTEGER",sa="unsorted central directory",ca="unknown version needed to extract",ua="compressed patched data",la="malformed extra field",fa="unknown zip64 extensible data",da="wrapped entries count",wa="appended data",pa="prepended data",ha="prepended central directory",ma="trailing central directory data",ya="duplicate filename",ba="mismatched zip64 end of central directory record",Ea="mismatched local file header (general purpose bit flag)",Sa="mismatched local file header (compression method)",ga="mismatched local file header (crc32 or sizes)",Aa=/^[a-zA-Z]:/,Ra="utf-8",xa="cp437",Da=[[co,t],[uo,t],[lo,t],[fo,e]],za={[e]:{Kt:ui,bytes:4},[t]:{Kt:li,bytes:8}},Fa=BigInt(Number.MAX_SAFE_INTEGER);class Oa{constructor(t,e={}){Object.assign(this,{reader:new Jn(t),options:e,qt:new Map})}async*getEntriesGenerator(n={}){const a=this;let{reader:i}=a;if(await to(i),i.size!==T&&i.readUint8Array||(i=new Rn(await ve(i.readable)),await to(i)),i.size<d)throw new Error(Lo);const c=a.warnings=[],h=Ha(n,a.options),m=h==J,y=h!=$,b=qa(ni(a,n,K),h),E=function(t,e){if(t===T)return e;if(!Va(t))throw new Error(oa);return t}(ni(a,n,"filenameValidation"),h),S=ni(a,n,"normalizeFilename"),{Yt:z,Xt:F}=await Ya(i,y,b);if(!z)throw await async function(t){return await Za(t)==o}(i)?new Error(Jo):new Error(Zo);y&&F>1&&ri("multiple end of central directory records");const O=Ot(z);let U=ui(O,12),I=ui(O,16);const k=z.offset,C=ci(O,20),M=k+d+C,N=i.size-M;N>b&&ri(wa),N>0&&ei(c,wa);let _=ci(O,4);const P=i.Vt||0;let B,j,W,L,Z,V=ci(O,6),H=ci(O,10),G=0,q=p;const Q=I==t||U==t||H==e||V==e;if(I!=t&&V!=e&&(I+=La(i,V)),Q){const r=z.offset>=w?await ro(i,z.offset-w,w):v,n=Ot(r);if(r.length==w&&ui(n,0)==l){I=La(i,ui(n,4))+li(n,8);let r=await ro(i,I,p),o=Ot(r);const a=z.offset-w-p;if((r.length<p||ui(o,0)!=u)&&I!=a&&a>=0){const t=I;I=a,I>t&&(G=I-t),r=await ro(i,I,p),o=Ot(r)}if(r.length<p||ui(o,0)!=u)throw new Error(Vo);if(W=!0,L=li(o,4)>44,L){const t=Math.min(li(o,4)-44,i.size-I-p);t>0&&(q+=t,Z=function(t){const e={rawExtensibleData:t};if(t.length>=28){const r=Ot(t),n=ci(r,26);Object.assign(e,{compressionMethod:ci(r,0),compressedSize:li(r,2),uncompressedSize:li(r,10),encryptionAlgorithm:ci(r,18),bitLength:ci(r,20),flags:ci(r,22),hashAlgorithm:ci(r,24),hashData:t.subarray(28,28+n)})}return e}(await ro(i,I+p,t)))}_==e?_=ui(o,16):_!=ui(o,16)&&ti(m,c,ba),V==e?V=ui(o,20):V!=ui(o,20)&&ti(m,c,ba),H==e?H=li(o,32):H!=li(o,32)&&ti(m,c,ba),U==t?U=li(o,40):U!=li(o,40)&&ti(m,c,ba),I=La(i,V)+li(o,48)+G}}let tt=U;const et=z.offset-(W?q+w:0);if(I>=i.size&&(G=i.size-I-U-d,I=i.size-U-d),P!=_)throw new Error(Jo);if(I<0)throw new Error(Lo);let rt=0,nt=await ro(i,I,U),ot=Ot(nt);if(U){if(nt.length<4)throw new Error(Lo);const t=et-U;if(I!=t&&V==_){const e=ui(ot,rt)==s||Boolean(Z&&Z.compressedSize)||ka(ot);let r=!e;if(!r&&t>=0&&t+4<=i.size&&(r=ui(Ot(await ro(i,t,4)),0)==s),r){const r=I;I=t,I>r&&(G+=I-r,B=e),nt=await ro(i,I,U),ot=Ot(nt)}}}const at=et-I;if(U!=at&&at>=0&&V==_&&(U=at,nt=await ro(i,I,U),ot=Ot(nt)),I<0||I>=i.size)throw new Error(Lo);a.directoryOffset=I,a.directoryLength=tt;const it=oi(a,n,"decryptCentralDirectory");let st,ct;if(it&&H&&nt.length>=4&&ui(ot,0)!=s&&(L||ka(ot))){const t=function(t,e,r){const n=t&&t.compressedSize?t.compressedSize:e;return n>0&&n<=r?n:r}(Z,tt,nt.length);ct=nt.subarray(t),nt=await it(nt.subarray(0,t),Z),ot=Ot(nt),tt=nt.length,st=!0}Z&&!st&&(nt.length<4||ui(ot,0)==s)&&ei(c,fa),j=I;const ut=ni(a,n,"filenameEncoding"),lt=ni(a,n,"commentEncoding"),ft=new Set;let dt,wt=-1;const pt=!m&&!W;!H&&pt&&(H=Ca(ot,nt,rt),H&&ei(c,da));for(let t=0;t<H;t++){const o=new Ia(i,a.options);if(rt+f>nt.length||ui(ot,rt)!=s){if(0==t&&!st&&(L||ka(ot)))throw new Error(ea);throw new Error(Ho)}va(o,ot,rt+6);const u=Boolean(o.bitFlag.languageEncodingFlag),l=rt+f,d=l+o.filenameLength,w=d+o.extraFieldLength,p=ci(ot,rt+4),h=!(p>>8),m=p>>8==3,y=nt.subarray(l,d),b=ci(ot,rt+32),z=w+b,F=nt.subarray(w,z),O=u,U=u,I=ui(ot,rt+38),k=I&r,C={readOnly:Boolean(1&k),hidden:Boolean(2&k),system:Boolean(4&k),directory:Boolean(16&k),archive:Boolean(32&k)},M=ui(ot,rt+42),v=oi(a,n,"decodeText")||en,N=O?Ra:ut||xa,_=U?Ra:lt||xa;let P=v(y,N,Y);if(P===T&&(P=en(y,N)),S){const t=S(P);t!==T&&(P=t)}if(Ka(P,E)){const t=new Error(ra);throw t.filename=P,t}let B=v(F,_,X);B===T&&(B=en(F,_)),Object.assign(o,{index:t,Jt:st,versionMadeBy:p,msDosCompatible:h,zip64:!1,compressedSize:0,uncompressedSize:0,Qt:b,offset:M,diskNumberStart:ci(ot,rt+34),internalFileAttributes:ci(ot,rt+36),externalFileAttributes:I,msdosAttributesRaw:k,msdosAttributes:C,rawFilename:y,filenameUTF8:O,commentUTF8:U,rawExtraField:nt.subarray(d,w),rawComment:F,filename:P,comment:B}),Na(o,o,ot,rt+6)&&ei(c,la,P),o.offset+=G;const W=La(i,o.diskNumberStart)+o.offset;j=Math.min(W,j),W<wt&&ei(c,sa,P),wt=W,(o.version&r)>63&&ei(c,ca,P),32&~o.rawBitFlag||ei(c,ua,P),ft.has(o.filename)&&(dt=!0),ft.add(o.filename);const Z=o.externalFileAttributes>>16&e;o.unixMode===T&&16877&Z&&(o.unixMode=Z);const V=Boolean(o.unixMode&R),K=Boolean(o.unixMode&x),q=Boolean(512&o.unixMode),J=40960==((o.unixMode===T?Z:o.unixMode)&g),Q=!J&&(o.unixMode!==T?!!(73&o.unixMode):m&&!!(73&Z)),$=o.unixMode!==T&&(o.unixMode&g)==A,tt=(Z&g)==A;Object.assign(o,{setuid:V,setgid:K,sticky:q,symlink:J,unixExternalUpper:Z,internalFileAttribute:o.internalFileAttributes,externalFileAttribute:o.externalFileAttributes,executable:Q,directory:$||tt||h&&C.directory||o.filename.endsWith(D),zipCrypto:o.encrypted&&!o.extraFieldAES});const et=new Wo(o);if(et.getData=(t,e)=>o.getData(t,et,a.qt,e),et.arrayBuffer=async t=>{const e=new TransformStream,r=ve(e.readable).then(t=>t.arrayBuffer());return r.catch(()=>{}),await o.getData(e,et,a.qt,t),r},rt=z,t==H-1&&pt){const t=Ca(ot,nt,rt);t&&(H+=t,ei(c,da))}const{onprogress:at}=n;if(at)try{await at(t+1,H,new Wo(o))}catch{}yield et}let ht=rt,mt=Ma(nt.subarray(rt))||(st?Ma(ct):T);if(!mt&&!st){const t=I+rt,e=Math.min(et-t,65541);e>=6&&(mt=Ma(await ro(i,t,e)))}mt&&(a.digitalSignature=mt,ht=rt+6+mt.length),(rt!=tt&&ht!=tt||!st&&rt!=U&&ht!=U)&&ti(m,c,ma),dt&&ti(m,c,ya);const yt=ni(a,n,"extractPrependedData"),bt=ni(a,n,"extractAppendedData"),Et=(m||yt)&&H&&4==j&&await async function(t){const e=await Za(t);return e==o||808471376==e}(i)?4:0;return m&&(G||H&&j>Et)&&ri(pa),(G||H&&j>4)&&ei(c,pa),B&&ei(c,ha),yt&&(a.prependedData=j>Et?await ro(i,Et,j-Et):v),a.comment=C?await ro(i,k+d,C):v,bt&&(a.appendedData=M<i.size?await ro(i,M,i.size-M):v),!0}async getEntries(t={}){const e=[];for await(const r of this.getEntriesGenerator(t))e.push(r);return e}async close(){const{reader:t}=this;t.readUint8Array||!t.readable||t.readable.locked||await t.readable.cancel()}}class Ta{constructor(t={}){const{readable:e,writable:r}=new TransformStream,n=new Oa(e,t).getEntriesGenerator();this.readable=new ReadableStream({async pull(t){const{done:e,value:r}=await n.next();if(e)return t.close();const o={...r,readable:function(){const{readable:t,writable:e}=new TransformStream;if(r.getData)return async function(){try{await r.getData(e)}catch(t){try{await e.abort(t)}catch{}}}(),t}()};delete o.getData,t.enqueue(o)}}),this.writable=r}}async function Ua(t,e={}){if(t=new Jn(t),await to(t),t.size!==T&&t.readUint8Array||(t=new Rn(await ve(t.readable)),await to(t)),t.size<d)return!1;const r=Ha(e,{}),n=r!=$,o=qa(e[K],r),{Yt:a,Xt:i}=await Ya(t,n,o);if(!a||r==J&&i>1)return!1;const s=ci(Ot(a),20),c=a.offset+d+s;return t.size-c<=o}let Ia=class{constructor(t,e){Object.assign(this,{reader:t,options:e})}async getData(t,e,o,i={}){const s=this,c=yt(),{reader:u,index:l,offset:f,diskNumberStart:d,extraFieldAES:w,extraFieldZip64:p,compressionMethod:h,bitFlag:m,rawBitFlag:y,crc32:b,rawLastModDate:E,uncompressedSize:S,compressedSize:g}=s,{dataDescriptor:A}=m,R=e.localDirectory={},x=e.warnings=[],D=La(u,d)+f,F=await ro(u,D,z),O=Ot(F);let U=ni(s,i,N),I=ni(s,i,_);const k=ni(s,i,P);if(at(U,I),U=U&&U.length&&U,I=I&&I.length&&I,w&&99!=w.originalCompressionMethod)throw new Error(Xo);if(F.length<z||ui(O,0)!=n)throw new Error(Go);va(R,O,4);const{extraFieldLength:C,filenameLength:M}=R,V=R.dataOffset=D+z+M+C,H=ni(s,i,"checkLocalDirectory"),G=Ha(i,s.options),K=function(t,e){return t===T?e!=$:Boolean(t)}(H,G),q=function(t,e){return t===T?e==J:Boolean(t)}(H,G);let Y=v;if(q&&(M||C)){const t=await ro(u,D+z,M+C);Y=t.subarray(0,M),R.rawExtraField=t.subarray(M)}else R.rawExtraField=C?await ro(u,D+z+M,C):v;q&&(R.rawFilename=Y),Na(s,R,O,4,!0)&&ei(x,la),function(t,e,r,n,o){const{rawFilename:a}=t,i=!o,s=t.Jt&&!(8192&~e.rawBitFlag);!n||s||r.length==a.length&&!r.some((t,e)=>t!=a[e])||ti(i,o,"mismatched local file header (filename)"),(2057&e.rawBitFlag)!=(2057&t.rawBitFlag)&&ti(i,o,Ea),e.compressionMethod!=t.compressionMethod&&ti(i,o,Sa),e.bitFlag.dataDescriptor||s||!(e.crc32||e.compressedSize||e.uncompressedSize)||e.crc32==t.crc32&&e.compressedSize==t.compressedSize&&e.uncompressedSize==t.uncompressedSize||ti(i,o,ga)}(s,R,Y,q,K?T:x);const{lastAccessDate:X,creationDate:Q,uid:tt,gid:et}=R;X&&(e.lastAccessDate=X),Q&&(e.creationDate=Q),tt!==T&&e.uid===T&&(e.uid=tt),et!==T&&e.gid===T&&(e.gid=et);const rt=s.encrypted&&R.encrypted&&!k,nt=rt&&!w;if(k||(e.zipCrypto=nt),rt&&!(64&~R.rawBitFlag))throw new Error(Yo);const it=k?T:He(h);if(0!=h&&8!=h&&9!=h&&!it&&!k)throw new Error(Xo);if(rt){if(!nt&&(w.strength<1||w.strength>3))throw new Error(Yo);if(!U&&!I)throw new Error(qo)}if(V+g>u.size)throw new Error($o);const st=g,ct=Me(u.createReadable({offset:V,size:st})),ut=ot(ni(s,i,B)),lt=ni(s,i,"checkPasswordOnly");let ft=ni(s,i,"checkOverlappingEntry");const dt=ni(s,i,"checkOverlappingEntryOnly");dt&&(ft=!0);const{onstart:wt,onprogress:pt,onend:ht}=i,mt=0!=h&&!k,bt=k?g:S,Et=9==h;let St=ni(s,i,W);Et&&(St=!1);const gt=ni(s,i,"checkCrc32"),At=(gt===T?ni(s,i,"checkSignature"):gt)&&!k&&(!rt||nt||w&&1==w.vendorVersion),Rt={options:{codecType:hr,password:U,rawPassword:I,zipCrypto:nt,encryptionStrength:w&&w.strength,checkCrc32:At,checkAuthenticationCode:ni(s,i,"checkAuthenticationCode"),passwordVerification:nt&&(A?E>>>8&r:b>>>24&r),outputSize:bt,crc32:b,compressed:mt,encrypted:rt,useWebWorkers:ni(s,i,j),useCompressionStream:St,transferStreams:ni(s,i,L),deflate64:Et,format:it?it.format:T,codecURI:it?it.codecURI:T,compressionMethod:h,rawBitFlag:y,checkPasswordOnly:lt},config:c,ft:{signal:ut,size:st,onstart:wt,onprogress:pt,onend:ht}};let xt,Dt;ft&&await async function({reader:t,$t:e,index:r,offset:n,crc32:o,compressedSize:i,uncompressedSize:s,dataOffset:c,dataDescriptor:u,extraFieldZip64:l,qt:f}){let d=0;if(u&&(d=l?20:12),d){const r=await ro(t,c+i,d+4),n=Ot(r);let u=r.length==d+4&&ui(n,0)==a;if(u){const t=Wa(n,4,l);(e.encrypted&&!e.zipCrypto||t.crc32==o)&&t.compressedSize==i&&t.uncompressedSize==s?d+=4:u=!1}if(r.length>=d){const t=Wa(n,u?4:0,l);t.signature=u,e.localDirectory.dataDescriptor=t}}const w={start:n,end:c+i+d,$t:e};for(const[t,e]of f)if(t!=r&&w.start<e.end&&e.start<w.end){const t=new Error(Qo);throw t.overlappingEntry=e.$t,t}f.set(r,w)}({reader:u,$t:e,index:l,offset:D,crc32:b,compressedSize:g,uncompressedSize:S,dataOffset:V,dataDescriptor:A||R.bitFlag.dataDescriptor,extraFieldZip64:p||R.extraFieldZip64,qt:o});try{if(!dt){lt&&(t=new WritableStream),t=new Qn(t),await to(t,function(t,e,r){return Math.min(t,r?1032*e:e)}(bt,g,mt)),({writable:xt}=t);const{outputSize:e}=await qr({readable:ct,writable:xt},Rt);if(t.size+=e,e!=bt)throw new Error(Ye)}}catch(e){if(e.outputSize!==T&&(t.size+=e.outputSize),!lt||e.message!=Yt)throw Dt=e,e}finally{if(($n(t)||!ni(s,i,Z))&&xt&&!xt.locked){const t=xt.getWriter();if(Dt)try{await t.abort(Dt)}catch{}else await t.close()}}return lt||dt?T:t.getData?t.getData():xt}};function ka(t){const e=Math.min(t.byteLength,1024)-3;for(let r=0;r<e;r++)if(134630224==ui(t,r))return!0;return!1}function Ca(t,e,r){let n=0;for(;r+f<=e.length&&ui(t,r)==s;)r+=f+ci(t,r+28)+ci(t,r+30)+ci(t,r+32),n++;return n%65536?0:n}function Ma(t){if(t.length>=6){const e=Ot(t);if(ui(e,0)==i){const r=ci(e,4);if(6+r<=t.length)return t.subarray(6,6+r)}}}function va(t,e,r){const n=t.rawBitFlag=ci(e,r+2),o=!(1&~n),a=ui(e,r+6);Object.assign(t,{encrypted:o,version:ci(e,r),bitFlag:{level:(6&n)>>1,dataDescriptor:!(8&~n),languageEncodingFlag:(n&S)==S},rawLastModDate:a,lastModDate:ai(a),filenameLength:ci(e,r+22),extraFieldLength:ci(e,r+24)})}function Na(t,e,r,n,o){const{rawExtraField:a}=e,i=e.extraField=new Map,s=Ot(a);let c=0,u=!1;try{for(;c<a.length;){const t=ci(s,c),e=ci(s,c+2);i.set(t,{type:t,data:a.slice(c+4,c+4+e)}),c+=4+e}}catch{u=!0}c>a.length&&(u=!0);const l=ci(r,n+4);Object.assign(e,{signature:ui(r,n+10),crc32:ui(r,n+10),compressedSize:ui(r,n+14),uncompressedSize:ui(r,n+18)});const f=i.get(1);f&&(function(t,e){e.zip64=!0;const r=Ot(t.data),n=Da.filter(([t,r])=>e[t]==r),o=n.reduce((t,[,e])=>t+za[e].bytes,0);if(t.data.length<o)throw new Error(Ko);for(let o=0,a=0;o<n.length;o++){const[i,s]=n[o],c=za[s];e[i]=t[i]=c.Kt(r,a),a+=c.bytes}}(f,e),e.extraFieldZip64=f);const d=i.get(28789);d&&(_a(d,oo,ao,e,t),e.extraFieldUnicodePath=d);const w=i.get(25461);w&&(_a(w,io,so,e,t),e.extraFieldUnicodeComment=w);const p=i.get(h);p&&p.data.length>=7?(function(t,e,r){const n=Ot(t.data),o=si(n,4);Object.assign(t,{vendorVersion:si(n,0),vendorId:si(n,2),strength:o,originalCompressionMethod:r,compressionMethod:ci(n,5)}),e.compressionMethod=t.compressionMethod,1!=t.vendorVersion&&(e.crc32=T)}(p,e,l),e.extraFieldAES=p):e.compressionMethod=l;const S=i.get(13);S&&(Pa(S,e),e.extraFieldPkwareUnix=S);const g=i.get(22613);g&&(Pa(g,e),e.extraFieldUnixType1=g);const A=i.get(10);A&&(function(t,e){const r=Ot(t.data);let n,o=4;try{for(;o<t.data.length&&!n;){const e=ci(r,o),a=ci(r,o+2);1==e&&(n=t.data.slice(o+4,o+4+a)),o+=4+a}}catch{}if(n&&24==n.length){const r=Ot(n),o=r.getBigUint64(0,!0),a=r.getBigUint64(8,!0),i=r.getBigUint64(16,!0);Object.assign(t,{rawLastModDate:o,rawLastAccessDate:a,rawCreationDate:i});const s={lastModDate:ii(o),lastAccessDate:ii(a),creationDate:ii(i)};Object.assign(t,s),Object.assign(e,s,{rawLastAccessDate:a,rawCreationDate:i})}}(A,e),e.extraFieldNTFS=A);const R=i.get(E);let x;if(R&&(x=Ba(R,e,!1),e.extraFieldUnix=R),!x){const t=i.get(b);t&&(Ba(t,e,!0),e.extraFieldInfoZip=t)}const D=i.get(m);D&&(function(t,e,r){if(!t.data.length)return;const n=Ot(t.data),o=si(n,0),a=[],i=[];r?(1&~o||(a.push(wo),i.push(po)),2&~o||(a.push(ho),i.push(mo)),4&~o||(a.push(yo),i.push(bo))):t.data.length>=5&&(a.push(wo),i.push(po));let s=1;a.forEach((r,o)=>{if(t.data.length>=s+4){const a=ui(n,s);e[r]=t[r]=new Date(1e3*(0|a));const c=i[o];t[c]=a}s+=4})}(D,e,o),e.extraFieldExtendedTimestamp=D);const z=i.get(y);return z&&(e.extraFieldUSDZ=z),u}function _a(t,e,r,n,o){if(t.data.length<5)return void(t.valid=!1);const a=Ot(t.data),i=new Pt;i.append(o[r]);const s=Ot(new Uint8Array(4));s.setUint32(0,i.get(),!0);const c=ui(a,1),u=si(a,0);Object.assign(t,{version:u,[e]:en(t.data.subarray(5)),valid:1==u&&!o.bitFlag.languageEncodingFlag&&c==ui(s,0)}),t.valid&&(n[e]=t[e],n[e+"UTF8"]=!0)}function Pa(t,e){if(t.data.length<8)return;const r=Ot(t.data),n={lastAccessDate:new Date(1e3*(0|ui(r,0))),lastModDate:new Date(1e3*(0|ui(r,4)))};t.data.length>=12&&(n.uid=ci(r,8),n.gid=ci(r,10)),Object.assign(t,n),Object.assign(e,n)}function Ba(t,e,r){try{const n=Ot(t.data);let o,a;if(r){let e=0;const r=si(n,e++),i=si(n,e++);o=ja(t.data.subarray(e,e+i)),e+=i;const s=si(n,e++);a=ja(t.data.subarray(e,e+s)),Object.assign(t,{version:r,uid:o,gid:a})}else t.data.length>=4&&(o=ci(n,0),a=ci(n,2),Object.assign(t,{uid:o,gid:a}));return o!==T&&(e.uid=o),a!==T&&(e.gid=a),o!==T||a!==T}catch{}}function ja(t){const e=new Uint8Array(4);return e.set(t,0),new DataView(e.buffer,e.byteOffset,4).getUint32(0,!0)}function Wa(t,e,r){const n=ui(t,e);let o,a;return r?(o=li(t,e+4),a=li(t,e+12)):(o=ui(t,e+4),a=ui(t,e+8)),{crc32:n,compressedSize:o,uncompressedSize:a}}function La(t,e){return t.Gt?t.Gt(e):0}async function Za(t){return ui(Ot(await ro(t,0,4)))}function Va(t){return t===J||t===Q||t===$}function Ha(t,e){return Ga(t,Ga(e,Q))}function Ga(t,e){const r=t.strictness;if(r!==T){if(!Va(r))throw new Error(na);return r}const n=t.checkAmbiguity;return n===T?e:n?J:e==$?$:Q}function Ka(t,e){if(e==$)return!1;const r=t.split("/");return r.length>1&&""===r[r.length-1]&&r.pop(),!!(r.includes("..")||t.startsWith("/")||t.startsWith("\\\\")||Aa.test(t))||e==J&&(r.includes(".")||r.includes(""))}function qa(t,r){if(t!==T){const e=ct(t);if("number"!=typeof e||Number.isNaN(e)||e<0)throw new Error(aa);return e}return r==J?0:r==$?1/0:e}async function Ya(t,e,r){const{size:n}=t,o=Math.min(n,65557),a={count:64};let i,s,c=0;for await(const[r,u,l,f,w]of Xa(t,o)){const o=ci(r,f+20);if(w+d+o==n){const o=await Qa(t,r,u,f,w,n,a);if(2==o){if(i||(i=Ja(l,f,w)),c++,!e||c>1)break}else 1!=o||s||(s=Ja(l,f,w))}}return i||(i=s),i||(i=await async function(t,e,r){const{size:n}=t,o=Math.min(n,e==1/0?n:65557+e);let a,i;for await(const[e,s,c,u,l]of Xa(t,o)){const o=Ja(c,u,l);a||(a=o);const f=await Qa(t,e,s,u,l,n,r);if(2==f)return o;1!=f||i||(i=o)}return i||a}(t,r,a)),{Yt:i,Xt:c}}async function*Xa(t,e){const r=t.size-e,n=await ro(t,r,e),o=Ot(n);for(let t=n.length-d;t>=0;t--)ui(o,t)==c&&(yield[o,r,n,t,r+t])}function Ja(t,e,r){return{offset:r,buffer:t.slice(e,e+d).buffer}}async function Qa(r,n,o,a,i,c,u){const f=ci(n,a+10),d=ui(n,a+12),p=ui(n,a+16);if(f==e||d==t||p==t)return await $a(r,n,o,i-w,c,u)==l?2:0;if(!f&&!d)return 1;const h=ci(n,a+6);for(const t of[i-d,La(r,h)+p])if(await $a(r,n,o,t,c,u)==s)return 2;return 0}async function $a(t,e,r,n,o,a){return n<0||n+4>o?T:n>=r?ui(e,n-r):a.count>0?(a.count--,ui(Ot(await ro(t,n,4)),0)):T}function ti(t,e,r){t?ri(r):ei(e,r)}function ei(t,e,r){if(!t.some(t=>t.reason==e)){const n={reason:e};r!==T&&(n.filename=r),t.push(n)}}function ri(t){const e=new Error(ta);throw e.reason=t,e}function ni(t,e,r){return e[r]===T?t.options[r]:e[r]}function oi(t,e,r){return nt(ni(t,e,r))}function ai(t){const r=(4294901760&t)>>16,n=t&e,o=new Date(1980+((65024&r)>>9),((480&r)>>5)-1,31&r,(63488&n)>>11,(2016&n)>>5,2*(31&n),0);return o<O?O:o}function ii(t){return new Date(Number(t/BigInt(1e4)-BigInt(116444736e5)))}function si(t,e){return t.getUint8(e)}function ci(t,e){return t.getUint16(e,!0)}function ui(t,e){return t.getUint32(e,!0)}function li(t,e){const r=t.getBigUint64(e,!0);if(r>Fa)throw new Error(ia);return Number(r)}var fi=Object.freeze({__proto__:null,ERR_AMBIGUOUS_ARCHIVE:ta,ERR_BAD_FORMAT:Lo,ERR_CENTRAL_DIRECTORY_NOT_FOUND:Ho,ERR_ENCRYPTED:qo,ERR_ENCRYPTED_CENTRAL_DIRECTORY:ea,ERR_ENTRY_DATA_OUT_OF_BOUNDS:$o,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:Vo,ERR_EOCDR_NOT_FOUND:Zo,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:Ko,ERR_INVALID_AUTHENTICATION_CODE:qt,ERR_INVALID_COMPRESSED_DATA:Xe,ERR_INVALID_CRC32:Je,ERR_INVALID_FILENAME_VALIDATION:oa,ERR_INVALID_MAX_APPENDED_DATA_SIZE:aa,ERR_INVALID_PASSWORD:Gt,ERR_INVALID_SIGNATURE:Kt,ERR_INVALID_STRICTNESS:na,ERR_INVALID_UNCOMPRESSED_SIZE:Ye,ERR_LOCAL_FILE_HEADER_NOT_FOUND:Go,ERR_OVERLAPPING_ENTRY:Qo,ERR_SPLIT_ZIP_FILE:Jo,ERR_UNSAFE_FILENAME:ra,ERR_UNSUPPORTED_COMPRESSION:Xo,ERR_UNSUPPORTED_ENCRYPTION:Yo,ERR_UNSUPPORTED_UINT64:ia,ERR_WORKER_STARTUP_TIMEOUT:br,WARNING_APPENDED_DATA:wa,WARNING_COMPRESSED_PATCHED_DATA:ua,WARNING_DUPLICATE_FILENAME:ya,WARNING_MALFORMED_EXTRA_FIELD:la,WARNING_MISMATCHED_LOCAL_FILE_HEADER_BIT_FLAG:Ea,WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD:Sa,WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES:ga,WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY:ba,WARNING_PREPENDED_CENTRAL_DIRECTORY:ha,WARNING_PREPENDED_DATA:pa,WARNING_TRAILING_CENTRAL_DIRECTORY_DATA:ma,WARNING_UNKNOWN_VERSION:ca,WARNING_UNKNOWN_ZIP64_EXTENSIBLE_DATA:fa,WARNING_UNSORTED_CENTRAL_DIRECTORY:sa,WARNING_WRAPPED_ENTRIES_COUNT:da,ZipReader:Oa,ZipReaderStream:Ta,isZipFile:Ua});const di="File already exists",wi="Zip file comment exceeds 64KB",pi="Invalid zip file comment (must be a Uint8Array)",hi="File entry comment exceeds 64KB",mi="Invalid file entry comment (must be a string)",yi="Invalid date (must be a valid Date instance)",bi="File entry name exceeds 64KB",Ei="Version exceeds 65535",Si="The strength must equal 1, 2, or 3",gi="Encryption is not supported in USDZ files",Ai="Encryption is not supported when the 'passThrough' option is set",Ri="Invalid extra field (must be a Map)",xi="Invalid extra field type (must be integer 0..65535)",Di="Invalid extra field data (must be a Uint8Array)",zi="Extra field data exceeds 64KB",Fi=-2147483648,Oi=2147483647,Ti=BigInt(0),Ui=BigInt("0x7fffffffffffffff"),Ii="Zip64 is not supported (set the 'zip64' option to 'true')",ki="Undefined uncompressed size",Ci="Undefined compression method",Mi="Undetermined size",vi="Undefined reader",Ni="Zip file not empty",_i="Invalid uid (must be integer 0..2^32-1)",Pi="Invalid gid (must be integer 0..2^32-1)",Bi="Invalid UNIX mode (must be integer 0..65535)",ji="Invalid unixExtraFieldType (must be 'infozip' or 'unix')",Wi="uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)",Li="Invalid msdosAttributesRaw (must be integer 0..255)",Zi="Invalid msdosAttributes (must be an object with boolean flags)",Vi="Invalid level (must be integer 0..9)",Hi="Signature data exceeds 64KB",Gi=new Uint8Array([7,0,2,0,65,69,3,0,0]),Ki="infozip",qi="unix";let Yi=0;const Xi=[];class Ji{constructor(t,e={}){t=new Qn(t);const{availableSize:r=U,maxSize:n=U}=t,o=r>0&&r!==U&&n>0&&n!==U;Object.assign(this,{writer:t,te:o,options:e,ee:new Map,re:new Set,offset:e[H]===T?t.size||t.writable.size||0:e[H],ne:e[H]===T?0:e[H]-(t.size||t.writable.size||0),oe:new Set,ae:[],ie:0,se:T})}prependZip(t){return ts(this,async function(t,e){if(t.re.size)throw new Error(Ni);await t.ce(e)}(this,t))}appendZip(t){return ts(this,this.ce(t))}async ce(t){const e=this,{oe:r,re:n,ee:a}=e;for(;r.size;)await Promise.allSettled(Array.from(r));let i;const s=new Promise(t=>i=t);r.add(s);const c=[];let u;try{t=new Jn(t),await to(t),t.size!==T&&t.readUint8Array||(t=new Rn(await ve(t.readable)),await to(t));const{ZipReader:r}=await Promise.resolve().then(function(){return fi}),i=new r(t),s=await i.getEntries();await i.close(),await to(e.writer);const{directoryOffset:l}=i;s.forEach(({filename:t})=>{if(n.has(t))throw new Error(di);n.add(t),c.push(t)}),e.ue=!0;const{le:f}=e;e.le=new Promise(t=>u=()=>{e.ue=!1,t()}),await f,e.te&&(delete e.te,await async function(t){return Ot(await ro(t,0,4)).getUint32(0,!0)==o}(t)||(await Rs(e.writer,gs()),e.offset+=4));const d=await async function(t,e,r,n){const{writer:o}=t,a=new Map;if(o.closeDisk){const i=Array.from(r).sort((t,r)=>Ss(e,t)-Ss(e,r));let s=0;for(const r of i){const n=Ss(e,r);await bs(t,e,s,n-s),hs(o,await Es(e,n))&&await o.closeDisk(),a.set(r,{offset:ms(t,o),diskNumberStart:ws(o)}),s=n}await bs(t,e,s,n-s)}else{const o=t.offset;await bs(t,e,0,n),r.forEach(t=>a.set(t,{offset:o+Ss(e,t),diskNumberStart:0}))}return a}(e,t,s,l);s.forEach(t=>{const{version:e,rawLastModDate:r,rawFilename:n,bitFlag:o,encrypted:i,uncompressedSize:s,compressedSize:c,extraFieldZip64:u}=t;let{compressionMethod:l,rawExtraField:f}=t;const{level:w,languageEncodingFlag:p,dataDescriptor:h}=o;f=ys(f||v),t.extraFieldAES&&(l=99);const m=Ls(f),y=Boolean(u)&&u.uncompressedSize!==T,b=Boolean(u)&&u.compressedSize!==T,E=-7&Vs(w,p,h,i,l)|w<<1,{fe:S,de:g}=Zs({version:e,bitFlag:E,compressionMethod:l,uncompressedSize:s,compressedSize:c,rawLastModDate:r,rawFilename:n,we:b,pe:y,extraFieldLength:m}),{crc32:A}=t;A!==T&&Bs(g,10,A);const{offset:R,diskNumberStart:x}=d.get(t);Object.assign(t,{pe:y,we:b,offset:R,diskNumberStart:x,he:!1,me:v,ye:v,be:v,Ee:v,Se:v,rawExtraField:f,ge:v,extendedTimestamp:!1,fe:S,de:g}),a.set(t.filename,t)})}catch(t){throw c.forEach(t=>n.delete(t)),t}finally{i(),r.delete(s),u&&u()}}add(e="",n,o={}){const a=this,{oe:i}=a,s=async function(e,n,o,a){if(Ts(e,a=Object.assign({},a),Io)&&!n.endsWith(D)&&(n+=D),e.re.has(n))throw new Error(di);e.re.add(n),Yi<yt().maxWorkers?Yi++:await new Promise(t=>Xi.push(t));try{return await async function(e,n,o,a){const i=ns(e,n,a);({name:n}=i);const s=os(e,n,a),{comment:c}=s,u=a[vo];e.ee.set(n,T);const l=e.se,f={};let d,w;s.Ae.keepOrder&&(f.Re=new Promise(t=>d=t)),e.se=f;try{const{Ae:c}=s;0==c.level||c.compressionMethod!==T||c.passThrough||await Rr(yt())||(c.level=0);const u=await async function(t,e,{Ae:r},n){if(r.passThrough&&!e&&!Ts(t,n,Io))throw new Error(vi);let o;return e&&(e=new Jn(e),await to(e),({size:o}=e)),Object.assign({reader:e},is(t,Boolean(e),o,r,n))}(e,o,s,a);({reader:o}=u);const p=ps(e.writer),h=ws(e.writer),m=ss(a=Object.assign({},a,i.Ae,s.Ae,u.Ae,{signature:a[Mo],crc32:a.crc32===T?a[Mo]:a.crc32,offset:e.offset-p,diskNumberStart:h,[G]:e.options[G]})),y=ls(a),b=Ls(m.xe,y.De);w=await async function(e,n,o,a,i){const{ee:s,writer:c}=e,{keepOrder:u,dataDescriptor:l,ze:f,signal:d}=i,{Fe:w,$t:p,Oe:h,Te:m}=a,y=e.options[G];let b,E,S,g,A,R,x=p,D=0;const F=u&&h?h.Re:T;s.set(n,x);try{i.bufferedWrite||!u||e.ue||e.ie||!l&&!f?(b=!0,e.ie++,R=i.createTempStream?await i.createTempStream():new TransformStream(T,T,{highWaterMark:U}),R.size=0,await to(c)):(R=c,await F,await O()),await to(R);const p=ps(c);e.te&&!b&&await As(e,c),y&&!b&&cs(a,e.offset-p);const{xe:h}=w;b||await I();const m=ws(c),E=ms(e,c);if(x.diskNumberStart=m,b||(g=!0,A=c.size,await Rs(R,h)),x=await async function(e,n,{diskNumberStart:o,Re:a},i,s,c){const{Fe:u,Ue:l,Ie:f}=i,{fe:d,de:w,lastModDate:p,rawLastModDate:h,encrypted:m,compressed:y,version:b,compressionMethod:E,me:S,ke:g,be:A,Ce:R,Ee:x,Se:D,ye:z}=u,{De:F}=l,{rawFilename:O,lastAccessDate:U,creationDate:I,password:k,rawPassword:C,level:M,zip64:v,pe:N,we:_,zipCrypto:P,dataDescriptor:B,directory:j,executable:W,versionMadeBy:L,rawComment:Z,rawExtraField:V,ge:H,useWebWorkers:G,transferStreams:K,onstart:q,onprogress:Y,onend:X,signal:J,encryptionStrength:Q,extendedTimestamp:$,msDosCompatible:tt,internalFileAttributes:et,externalFileAttributes:rt,uid:nt,gid:ot,unixMode:at,symlink:it,setuid:st,setgid:ct,sticky:ut,unixExternalUpper:lt,msdosAttributesRaw:ft,msdosAttributes:dt,useCompressionStream:wt,passThrough:pt,format:ht,codecURI:mt}=c,yt={Re:a,versionMadeBy:L,zip64:v,directory:Boolean(j),executable:Boolean(W),filenameUTF8:!0,rawFilename:O,commentUTF8:!0,rawComment:Z,me:S,ke:g,be:A,Ee:x,Se:D,ye:z,rawExtraField:V,ge:H,extendedTimestamp:$,msDosCompatible:tt,internalFileAttributes:et,externalFileAttributes:rt,diskNumberStart:o,uid:nt,gid:ot,unixMode:at,symlink:Boolean(it),setuid:st,setgid:ct,sticky:ut,unixExternalUpper:lt,msdosAttributesRaw:ft,msdosAttributes:dt};let{crc32:bt,uncompressedSize:Et}=c,St=0;pt||(Et=0);const{writable:gt}=n;if(e){const o=Me(no(e)),a=e.size,i={options:{codecType:pr,inputSize:a,level:M,rawPassword:C,password:k,encryptionStrength:Q,zipCrypto:m&&P,passwordVerification:m&&P&&h>>8&r,computeCrc32:!pt,compressed:y&&!pt,encrypted:m&&!pt,useWebWorkers:G,useCompressionStream:wt,transferStreams:K,format:ht,codecURI:mt,compressionMethod:E},config:s,ft:{signal:J,size:a,onstart:q,onprogress:Y,onend:X}};try{const e=await qr({readable:o,writable:gt},i);if(St=e.outputSize,n.size+=St,pt||(Et=e.inputSize,m&&!P||(bt=e.crc32)),!_&&St>=t||!N&&Et>=t)throw new Error(Ii)}catch(t){throw t.outputSize!==T&&(n.size+=t.outputSize),t}}return function({crc32:t,compressedSize:e,uncompressedSize:r,Fe:n,Ue:o},{zip64:a,zipCrypto:i,passThrough:s,dataDescriptor:c}){const{de:u,encrypted:l}=n,{Me:f,ve:d}=o;l&&!i&&!s||t===T||(Bs(u,10,t),c&&Bs(f,d,t)),a?c&&(js(f,d+4,BigInt(e)),js(f,d+12,BigInt(r))):(Bs(u,14,e),Bs(u,18,r),c&&(Bs(f,d+4,e),Bs(f,d+8,r)))}({crc32:bt,compressedSize:St,uncompressedSize:Et,Fe:u,Ue:l},c),B&&await Rs(n,F),Object.assign(yt,{uncompressedSize:Et,compressedSize:St,lastModDate:p,rawLastModDate:h,creationDate:I,lastAccessDate:U,encrypted:Boolean(m),zipCrypto:Boolean(P),size:f+St,compressionMethod:E,version:b,fe:d,de:w,signature:bt,crc32:!m||P||pt?bt:T,Ce:R,pe:N,we:_}),yt}(o,R,x,a,yt(),i),b||(g=!1),s.set(n,x),x.filename=n,b){if(await Promise.all([R.writable.getWriter().close(),F]),await O(),e.te&&await As(e,c),S=!0,A=c.size,await I(),x.diskNumberStart=ws(c),x.offset=ms(e,c),y){const t=a.Ie;cs(a,e.offset-ps(c)),x.size+=a.Ie-t}!function({rawFilename:t,encrypted:e,zip64:r,ke:n,crc32:o,compressedSize:a,uncompressedSize:i,pe:s,we:c},u,{dataDescriptor:l,passThrough:f}){if(l||((!e||f&&o!==T)&&Bs(u,14,o),c||Bs(u,18,a),s||Bs(u,22,i)),r&&n){const e=z+Ls(t)+4;js(u,e,BigInt(i)),js(u,e+8,BigInt(a))}}(x,w.Ne,i),await Rs(c,w.xe),await xs(R.readable,c,d,t=>D+=t),c.size+=R.size,S=!1}else x.diskNumberStart=m,x.offset=E;return e.offset+=x.size,x}catch(t){if(S||g){if(e.hasCorruptedEntries=!0,t)try{t.corruptedEntry=!0}catch{}e.offset+=c.size-A,b&&(e.offset+=D)}throw s.delete(n),t}finally{if(b&&e.ie--,m&&m(F),E&&E(),b&&R&&R.dispose)try{await R.dispose()}catch{}}async function O(){e.ue=!0;const{le:t}=e;e.le=new Promise(t=>E=()=>{e.ue=!1,t()}),await t}async function I(){hs(c,Ls(w.xe))&&await c.closeDisk()}}(e,n,o,{Fe:m,Ue:y,Ie:b,$t:f,Oe:l,Te:d},a)}catch(t){throw e.ee.delete(n),t}finally{d&&d(l&&l.Re)}return Object.assign(w,{name:n,comment:c,extraField:u,[go]:w.internalFileAttributes,[Ao]:w.externalFileAttributes}),new Wo(w)}(e,n,o,a)}catch(t){throw e.re.delete(n),t}finally{const t=Xi.shift();t?t():Yi--}}(a,e,n,o);i.add(s);const c=()=>i.delete(s);return Promise.prototype.then.call(s,c,c),ts(a,s)}remove(t){const{re:e,ee:r}=this;if(typeof t==M&&(t=r.get(t)),t&&t.filename!==T){const{filename:n}=t;if(e.has(n)&&r.has(n))return e.delete(n),r.delete(n),!0}return!1}async close(r=v,n={}){const o=this,{oe:a,writer:w}=this,{writable:p}=w;if(!(r instanceof Uint8Array))throw new Error(pi);if(Ls(r)>e)throw new Error(wi);for(;a.size;)await Promise.allSettled(Array.from(a));await Promise.allSettled(o.ae.map(t=>t._e));const h=o.ae.filter(t=>t.error&&!t.Pe);if(h.length){const t=h.map(t=>t.error);h.forEach(t=>t.Pe=!0);const[e]=t;try{e.entryErrors=t}catch{}throw e}return await async function(r,n,o){const a=fs(r.ee),{Be:w,je:p,We:h}=await async function(r,n,o){const{ee:a,writer:i}=r,c=new Uint8Array(n);await to(i);let u=0,l=0,d=ws(i),w=ps(i),p=0;for(const[r,n]of Array.from(a.values()).entries()){const{offset:h,rawFilename:m,me:y,ye:b,be:E,Ee:S,Se:g,rawExtraField:A,ge:R,rawComment:x,versionMadeBy:D,fe:z,de:F,pe:O,we:T,he:U,Le:I,internalFileAttributes:k,externalFileAttributes:C,diskNumberStart:M,uncompressedSize:v,compressedSize:N}=n,_=Ls(y,b,E,S,g,A,R),P=f+Ls(m,x)+_;hs(i,u+P-l)&&(await Rs(i,c.slice(l,u)),l=u,p=0,await i.closeDisk()),0==r&&(d=ws(i),w=ps(i)),O||Bs(F,18,v),T||Bs(F,14,N),(I||U)&&n.version<45&&Ps(F,0,45);const B=ds(P);if(B.Ze(s),B.Ve(D),B.He(z.subarray(0,24)),B.Ve(_),B.Ve(Ls(x)),B.Ve(U?e:M),B.Ve(k),B.Ze(C),B.Ze(I?t:h),B.He(m),B.He(y),B.He(b),B.He(E),B.He(S),B.He(g),B.He(A),B.He(R),B.He(x),Ws(c,B.Wt,u),u+=P,p++,o.onprogress)try{await o.onprogress(r+1,a.size,new Wo(n))}catch{}}return await Rs(i,l?c.slice(l):c),{Be:{diskNumber:d,diskOffset:w},je:{diskNumber:ws(i),Ge:p},We:c}}(r,a,o),m=await async function(t,r,n){const o=Is(t,n,q);if(o){const n=await o(r),a=Ls(n);if(a>e)throw new Error(Hi);const s=ds(6+a);s.Ze(i),s.Ve(a),s.He(n);const{writer:c}=t;return hs(c,Ls(s.Wt))&&await c.closeDisk(),await Rs(c,s.Wt),6+a}return 0}(r,h,o);await async function(r,n,o,a){const{writer:i}=r,{Be:s,je:f,Ke:w}=a;let{qe:p}=a,h=r.ee.size,m=s.diskNumber,y=ms(r,s);const b=Ls(n);if(b>e)throw new Error(wi);let E=Ts(r,o,zo),S=ws(i);if(hs(i,(E?98:d)+b)&&S++,y>=t||p>=t||h>=e||S>=e){if(!1===E)throw new Error(Ii);E=!0}const g=ds(E?98:d);hs(i,Ls(g.Wt)+b)&&await i.closeDisk(),S=ws(i);let A=S==f.diskNumber?f.Ge:0;E&&(g.Ze(u),g.Ye(44),g.Ve(45),g.Ve(45),g.Ze(S),g.Ze(m),g.Ye(A),g.Ye(h),g.Ye(p),g.Ye(y),g.Ze(l),g.Ze(S),g.Ye(BigInt(ms(r,i))+BigInt(p)+BigInt(w)),g.Ze(S+1),Ts(r,o,"supportZip64SplitFile",!0)&&(S=e,m=e),A=e,h=e,y=t,p=t),g.Ze(c),g.Ve(S),g.Ve(m),g.Ve(A),g.Ve(h),g.Ze(p),g.Ze(y),g.Ve(b),await Rs(i,g.Wt),b&&await Rs(i,n)}(r,n,o,{Be:w,je:p,qe:a,Ke:m})}(o,r,n),!$n(w)&&Ts(o,n,Z)||await p.getWriter().close(),w.getData?w.getData():p}}class Qi{constructor(t={}){const{readable:e,writable:r}=new TransformStream;this.readable=e,this.zipWriter=new Ji(r,t),this.oe=new Set}transform(t){const e=this.zipWriter;let r;const{readable:n,writable:o}=new TransformStream({start(t){r=t},flush:()=>{!async function(){try{await e.close()}catch(t){await es(e,t)}}()}});return rs(this,this.zipWriter.add(t,n),t=>r.error(t)),{readable:this.readable,writable:o}}writable(t){let e;const{readable:r,writable:n}=new TransformStream({start(t){e=t}});return rs(this,this.zipWriter.add(t,r),t=>e.error(t)),n}async close(t,e={}){const{zipWriter:r}=this,n=(await Promise.allSettled(Array.from(this.oe))).filter(t=>"rejected"==t.status).map(t=>t.reason);if(n.length){const[t]=n;try{t.entryErrors=n}catch{}throw await es(r,t),t}try{return await r.close(t,e)}catch(t){throw await es(r,t),t}}}class $i extends Promise{then(t,e){const{Xe:r}=this;return r&&(r.Pe=!0),super.then(t,e)}}function ts(t,e){const r=new $i((t,r)=>Promise.prototype.then.call(e,t,r)),n={};return r.Xe=n,n._e=Promise.prototype.then.call(r,T,t=>n.error=t),t.ae.push(n),r}async function es(t,e){try{await t.writer.writable.abort(e)}catch{}}function rs(t,e,r){t.oe.add(e),e.catch(t=>{try{r(t)}catch{}})}function ns(n,o,a){let i=Ts(n,a,Do),s=Ts(n,a,To,i?20:768);const c=Ts(n,a,ko),u=Ms(n,a,"uid"),l=Ms(n,a,"gid");let f=Ms(n,a,No),d=Ts(n,a,"unixExtraFieldType"),w=Ts(n,a,_o),p=Ts(n,a,Po),h=Ts(n,a,Bo);if(st(u,t,_i),st(l,t,Pi),st(f,e,Bi),d!==T&&d!==Ki&&d!==qi)throw new Error(ji);if(d===qi&&(u!==T&&u>e||l!==T&&l>e))throw new Error(Wi);d!==T||u===T&&l===T||(d=Ki);let m=Ms(n,a,Ro),y=Ts(n,a,xo);const b=m!==T||y!==T;if(u!==T||l!==T||f!==T||d||c?(i=!1,s=s&r|768):b&&(i=!0,s&=r),st(m,r,Li),y&&(typeof y!==C||Array.isArray(y)))throw new Error(Zi);if(s>e)throw new Error(Ei);let E=ks(n,a,So,Ao);const S=E!==T;S||(E=0),!a[Io]&&o.endsWith(D)&&(a[Io]=!0);const z=Ts(n,a,Io);if(z?(o.endsWith(D)||(o+=D),S||(E=16,i||(E|=16877<<16))):i||S||(E=c?493<<16:27525120),!i){const t=f!==T||Boolean(w||p||h);f=f===T?E>>16&e:f&e,w?f|=R:w=Boolean(f&R),p?f|=x:p=Boolean(f&x),h?f|=512:h=Boolean(512&f),S&&!t||(z?f=-61441&f|A:f&g||(f|=32768),E=(f&e)<<16|E&e)}({msdosAttributesRaw:m,msdosAttributes:y}=function(t,e){if(t!==T)t&=r;else if(e!==T){const{readOnly:n,hidden:o,system:a,directory:i,archive:s}=e;let c=0;n&&(c|=1),o&&(c|=2),a&&(c|=4),i&&(c|=16),s&&(c|=32),t=c&r}return e===T&&(e={readOnly:Boolean(1&t),hidden:Boolean(2&t),system:Boolean(4&t),directory:Boolean(16&t),archive:Boolean(32&t)}),{msdosAttributesRaw:t,msdosAttributes:e}}(m,y)),b&&(E=E&t|m&r);const F=E>>16&e,O=f!==T&&40960==(f&g);return{name:o,Ae:{versionMadeBy:s,msDosCompatible:Boolean(i),externalFileAttributes:E,unixExternalUpper:F,uid:u,gid:l,unixMode:f,unixExtraFieldType:d,symlink:O,setuid:w,setgid:p,sticky:h,msdosAttributesRaw:m,msdosAttributes:y}}}function os(t,r,n){const o=Is(t,n,"encodeText")||jt;let a=o(r,Y);if(a===T&&(a=jt(r)),Ls(a)>e)throw new Error(bi);const i=n[io]||"";if(typeof i!=M)throw new Error(mi);let s=o(i,X);if(s===T&&(s=jt(i)),Ls(s)>e)throw new Error(hi);const c=Ts(t,n,Oo);if(c!==T&&c>e)throw new Error(Ei);const u=Us(t,n,wo,new Date),l=Ts(t,n,po),f=Us(t,n,ho),d=Us(t,n,yo),w=ks(t,n,Eo,go,0),p=Ts(t,n,P),h=Ts(t,n,N),m=Ts(t,n,_);at(h,m);const y=Ms(t,n,"encryptionStrength",3),b=Ts(t,n,Uo),E=Ts(t,n,"extendedTimestamp",!0),S=Ts(t,n,"ntfsTimestamp"),g=Ts(t,n,"keepOrder",!0),A=Ts(t,n,j),R=Ts(t,n,L),x=Ts(t,n,"bufferedWrite"),D=Is(t,n,"createTempStream"),z=Ts(t,n,"dataDescriptorSignature",!0),F=ot(Ts(t,n,B)),O=Ts(t,n,"useUnicodeFileNames",!0),U=Ts(t,n,Co),I=p||U===T?T:He(U);if(!p&&U!==T&&0!==U&&8!==U&&!I)throw new Error("Compression method not supported");let k=Ms(t,n,"level");if(st(k,9,Vi),t.options[G]){if(h!==T||m!==T)throw new Error(gi);k===T&&U===T&&(k=0)}p&&(k=T);let C=Ts(t,n,W),v=Ts(t,n,V);x&&v===T&&(v=!1),(v===T||b&&!p)&&(v=!0),k!==T&&6!=k&&(C=!1);const Z=Ts(t,n,zo);if(!(b||h===T&&m===T||Number.isInteger(y)&&y>=1&&y<=3))throw new Error(Si);const H=as(n[vo]),K=as(n.localExtraField),q=as(n.centralExtraField);return{comment:i,Ae:{rawFilename:a,rawComment:s,version:c,lastModDate:u,rawLastModDate:l,lastAccessDate:f,creationDate:d,internalFileAttributes:w,passThrough:p,password:h,rawPassword:m,encryptionStrength:y,zipCrypto:b,extendedTimestamp:E,ntfsTimestamp:S,keepOrder:g,useWebWorkers:A,transferStreams:R,bufferedWrite:x,createTempStream:D,dataDescriptorSignature:z,signal:F,useUnicodeFileNames:O,compressionMethod:U,format:I?I.format:T,codecURI:I?I.codecURI:T,Je:I?I.versionNeeded:T,level:k,useCompressionStream:C,dataDescriptor:v,zip64:Z,rawExtraField:H,Qe:K,ge:q}}}function as(t){if(!t)return v;if(!(t instanceof Map))throw new Error(Ri);let r=0,n=0;t.forEach((t,n)=>{if(it(n,e,xi),!(t instanceof Uint8Array))throw new Error(Di);if(Ls(t)>e)throw new Error(zi);r+=4+Ls(t)});const o=new Uint8Array(r),a=Ot(o);return t.forEach((t,e)=>{Ps(a,n,e),Ps(a,n+2,Ls(t)),Ws(o,t,n+4),n+=4+Ls(t)}),o}function is(e,r,n,o,a){const{passThrough:i,zipCrypto:s,password:c,rawPassword:u,encryptionStrength:l}=o;let{dataDescriptor:f,zip64:d,level:w,compressionMethod:p}=o,h=0,m=0;if(i&&r){if(m=a[co],m===T)throw new Error(ki);if(p===T)throw new Error(Ci)}const y=!0===d,b=Ts(e,a,Fo);if(r&&i&&!b&&Ls(c,u))throw new Error(Ai);const E=r&&(Boolean(c&&Ls(c)||u&&Ls(u))||i&&b);r||(w=0,p=0);const S=E?s?12:16+4*l:0;r&&(i?(a.uncompressedSize=m,h=n===T?vs(m)+S:n):n===T?(f=!0,(d||d===T)&&(d=!0,m=h=4294967296)):(a.uncompressedSize=m=n,h=(Ns(p,w)?vs(m):m)+S));const g=!(E||r&&(0!==n||i)||Ns(p,w));g&&!s&&Ts(e,a,V)===T&&(f=!1);const A=y||m>=t,R=y||h>=t;if(A||R){if(!1===d)throw new Error(Ii);d=!0}return d=d||!1,{$e:h,Ae:{dataDescriptor:f,ze:g,zip64:d,pe:A,we:R,uncompressedSize:m,level:w,compressionMethod:p,encrypted:E}}}function ss(t){const{rawFilename:r,lastModDate:o,rawLastModDate:a,lastAccessDate:i,creationDate:s,level:c,zip64:u,zipCrypto:l,useUnicodeFileNames:f,dataDescriptor:d,directory:w,rawExtraField:p,Qe:y,encryptionStrength:S,extendedTimestamp:g,ntfsTimestamp:A,passThrough:R,encrypted:x,pe:D,we:U,uncompressedSize:I,crc32:k}=t;let{version:C,compressionMethod:M}=t;const N=!w&&Ns(M,c);let _;const P=R||!N,B=u&&(t.bufferedWrite||!d||!D&&!U||P),j=B||u&&d&&(D||U);if(u&&(D||U)){const t=20,e=ds(t);if(e.Ve(1),e.Ve(t-4),_=e.Wt,B&&(e.Ye(I),P)){const t=x?l?12:16+4*S:0;e.Ye(R?0:I+t)}}else _=v;let W,L,Z,V,H;if(x&&!l){const t=ds(Ls(Gi)+2);t.Ve(h),t.He(Gi),W=t.Wt,W[8]=S}else W=v;if(g){const t=zs(o),e=Fs(t);if(e){const e=9+(i?4:0)+(s?4:0),r=ds(e);V=1+(i?2:0)+(s?4:0),r.Ve(m),r.Ve(e-4),r.er(V),r.Ze(t),i&&r.Ze(Os(zs(i))),s&&r.Ze(Os(zs(s))),Z=r.Wt}else Z=v;if(A===T?!e||Boolean(i||s):A)try{const t=Ds(o),e=ds(36);e.Ve(10),e.Ve(32),e.rr(4),e.Ve(1),e.Ve(24),e.Ye(t),e.Ye(i?Ds(i):t),e.Ye(s?Ds(s):t),L=e.Wt}catch{L=v}else L=v}else L=Z=v;try{const{uid:r,gid:n,unixExtraFieldType:o}=t;if(o!=Ki||r===T&&n===T)if(o!=qi||r===T&&n===T)H=v;else{const t=ds(8);t.Ve(E),t.Ve(4),t.Ve((r===T?0:r)&e),t.Ve((n===T?0:n)&e),H=t.Wt}else{const t=us(r===T?0:r),e=us(n===T?0:n),o=3+t.length+e.length,a=ds(4+o);a.Ve(b),a.Ve(o),a.er(1),a.er(t.length),a.He(t),a.er(e.length),a.He(e),H=a.Wt}}catch{H=v}M===T&&(M=N?8:0),C===T&&(C=0!=M||w||x?20:10);const{Je:K}=t;N&&K!==T&&(C=C>K?C:K),u&&(C=C>45?C:45),x&&!l&&(C=C>51?C:51,R&&k!==T&&(W[4]=1),Ps(Ot(W),9,M),M=99);const q=j?Ls(_):0,Y=q+Ls(W,Z,L,H,p,y);if(Y+(t[G]?67:0)>e)throw new Error(zi);const X=new Date(2e3*Math.ceil(Math.floor(o.getTime()/1e3)/2)),{fe:J,de:Q,rawLastModDate:$}=Zs({version:C,bitFlag:Vs(c,f,d,x,M),compressionMethod:M,uncompressedSize:I,lastModDate:X<O?O:X>F?F:X,rawLastModDate:a,rawFilename:r,we:U,pe:D,extraFieldLength:Y}),tt=ds(z+Ls(r)+Y),et=tt.Wt,rt=Ot(et);return tt.Ze(n),tt.He(J),tt.He(r),j&&tt.He(_),tt.He(W),tt.He(Z),tt.He(L),tt.He(H),tt.He(p),tt.He(y),d&&(U||Bs(rt,18,0),D||Bs(rt,22,0)),{xe:et,Ne:rt,fe:J,de:Q,lastModDate:o,rawLastModDate:$,encrypted:x,compressed:N,version:C,compressionMethod:M,Ce:V,me:v,ke:q,be:Z,Ee:L,Se:H,ye:W,extraFieldLength:Y}}function cs(t,e){const{Fe:r}=t;let{xe:n,extraFieldLength:o}=r,a=64-(e+Ls(n))%64;a<4&&(a+=64);const i=new Uint8Array(a),s=Ot(i);Ps(s,0,y),Ps(s,2,a-4);const c=n;r.xe=n=new Uint8Array(Ls(c)+a),Ws(n,c),Ws(n,i,Ls(c));const u=Ot(n);Ps(u,28,o+a),r.Ne=u,t.Ie+=a}function us(t){const e=new Uint8Array(4);Ot(e).setUint32(0,t,!0);let r=4;for(;r>1&&0===e[r-1];)r--;return e.subarray(0,r)}function ls({zip64:t,dataDescriptor:e,dataDescriptorSignature:r}){let n,o=v,i=0,s=t?20:12;return r&&(s+=4),e&&(o=new Uint8Array(s),n=Ot(o),r&&(i=4,Bs(n,0,a))),{De:o,Me:n,ve:i}}function fs(r){let n=0;for(const[,o]of r){const{rawFilename:r,ye:a,rawComment:i,Ee:s,Se:c,rawExtraField:u,ge:l,extendedTimestamp:d,Ce:w,lastModDate:p,pe:h,we:y,uncompressedSize:b,compressedSize:E}=o,S=o.offset>=t,g=o.diskNumberStart>=e;let A,R;if(S||g||h||y){const t=4+(h?8:0)+(y?8:0)+(S?8:0)+(g?4:0),e=ds(t);e.Ve(1),e.Ve(t-4),h&&e.Ye(b),y&&e.Ye(E),S&&e.Ye(o.offset),g&&e.Ze(o.diskNumberStart),A=e.Wt}else A=v;o.me=A,o.Le=S,o.he=g;const x=zs(p);if(d&&Fs(x)){const t=ds(9);t.Ve(m),t.Ve(5),t.er(w),t.Ze(x),R=t.Wt}else R=v;o.be=R;const D=Ls(A,a,s,c,R,u,l);if(D>e)throw new Error(zi);n+=f+Ls(r,i)+D}return n}function ds(t){const e=new Uint8Array(t),r=Ot(e);let n=0;return{Wt:e,er:t=>{!function(t,e,r){t.setUint8(e,r)}(r,n,t),n+=1},Ve:t=>{Ps(r,n,t),n+=2},Ze:t=>{Bs(r,n,t),n+=4},Ye:t=>{js(r,n,BigInt(t)),n+=8},He:t=>{Ws(e,t,n),n+=Ls(t)},rr:t=>n+=t}}function ws(t){const{diskNumber:e=0}=t;return e}function ps(t){const{diskOffset:e=0}=t;return e}function hs(t,e){const{availableSize:r=U}=t;return e>r}function ms(t,{diskNumber:e=0,diskOffset:r=0}){return t.offset-r-(e?t.ne:0)}function ys(t){const e=Ot(t);let r=0;for(;r+4<=Ls(t);){const n=4+_s(e,r+2);if(1==_s(e,r))return ys(zt(t.subarray(0,r),t.subarray(Math.min(r+n,Ls(t)))));r+=n}return t}async function bs(t,e,r,n){if(n>0){const{writer:o}=t;let a=0;try{await xs(no(e,{offset:r,size:n}),o,T,t=>a+=t)}catch(e){t.hasCorruptedEntries=!0;try{e.corruptedEntry=!0}catch{}throw e}finally{o.size+=a,t.offset+=a}}}async function Es(t,e){const r=await ro(t,e,z);if(Ls(r)<z)return z;const n=Ot(r);return z+_s(n,26)+_s(n,28)}function Ss(t,{offset:e,diskNumberStart:r}){return e+(t.Gt?t.Gt(r):0)}function gs(){const t=new Uint8Array(4);return Bs(Ot(t),0,o),t}async function As(t,e){delete t.te,await Rs(e,gs()),t.offset+=4}async function Rs(t,e){const{writable:r}=t,n=r.getWriter();try{await n.ready,t.size+=Ls(e),await n.write(e)}finally{n.releaseLock()}}async function xs(t,e,r,n){const o=e.writable.getWriter();try{await t.pipeTo(new WritableStream({async write(t){await o.ready,await o.write(t),n(Ls(t))}}),{preventClose:!0,preventAbort:!0,signal:r})}finally{o.releaseLock()}}function Ds(t){if(t){const e=(BigInt(t.getTime())+BigInt(116444736e5))*BigInt(1e4);return e<Ti?Ti:e>Ui?Ui:e}}function zs(t){return Math.floor(t.getTime()/1e3)}function Fs(t){return t>=Fi&&t<=Oi}function Os(t){return Math.min(Oi,Math.max(Fi,t))}function Ts(t,e,r,n){const o=e[r]===T?t.options[r]:e[r];return o===T?n:o}function Us(t,e,r,n){const o=Ts(t,e,r,n);if(null===o)return n;if(o!==T&&(typeof o.getTime!=k||Number.isNaN(o.getTime())))throw new Error(yi);return o}function Is(t,e,r){return nt(Ts(t,e,r))}function ks(t,e,r,n,o){const a=Cs(e,r,n),i=a===T?Cs(t.options,r,n):a;return i===T?o:i}function Cs(t,e,r){return t[e]===T?t[r]:t[e]}function Ms(t,e,r,n){return ct(Ts(t,e,r,n))}function vs(t){return t+5*(Math.floor(t/16383)+1)}function Ns(t,e){return t===T?e===T||e>0:0!==t}function _s(t,e){return t.getUint16(e,!0)}function Ps(t,e,r){t.setUint16(e,r,!0)}function Bs(t,e,r){t.setUint32(e,r,!0)}function js(t,e,r){t.setBigUint64(e,r,!0)}function Ws(t,e,r){t.set(e,r)}function Ls(...t){let e=0;return t.forEach(t=>t&&(e+=t.length)),e}function Zs({version:e,bitFlag:r,compressionMethod:n,uncompressedSize:o,compressedSize:a,lastModDate:i,rawLastModDate:s,rawFilename:c,we:u,pe:l,extraFieldLength:f}){const d=ds(26),w=d.Wt,p=Ot(w);if(d.Ve(e),d.Ve(r),d.Ve(n),s===T){const t=new Uint32Array(1),e=Ot(t);Ps(e,0,(i.getHours()<<6|i.getMinutes())<<5|i.getSeconds()/2),Ps(e,2,(i.getFullYear()-1980<<4|i.getMonth()+1)<<5|i.getDate()),s=t[0]}return d.Ze(s),d.rr(4),u||a!==T?d.Ze(u?t:a):d.rr(4),l||o!==T?d.Ze(l?t:o):d.rr(4),d.Ve(Ls(c)),d.Ve(f),{fe:w,de:p,rawLastModDate:s}}function Vs(t,e,r,n,o){let a=0;return e&&(a|=S),r&&(a|=8),8!=o&&9!=o||(t>=0&&t<=3&&(a|=6),t>3&&t<=5&&(a|=4),9==t&&(a|=2)),n&&(a|=1),a}function Hs(){return"application/octet-stream"}function Gs(){const{CompressionStream:t,DecompressionStream:e,CompressionStreamFallback:r,DecompressionStreamFallback:n}=yt(),o=[{compressionMethod:0,compression:!0,decompression:!0,registered:!1},{compressionMethod:8,compression:Ks(r,Qe)||Ks(t,Qe)||Ks(t,tr),decompression:Ks(n,Qe)||Ks(e,Qe)||Ks(e,tr),registered:!1},{compressionMethod:9,compression:!1,decompression:Ks(n,$e)||Ks(e,$e),registered:!1}];for(const t of Ge()){const e=Ke(t.format);o.push({compressionMethod:t.compressionMethod,compression:e?typeof e.CompressionStream==k:T,decompression:e?typeof e.DecompressionStream==k:T,registered:!0})}return o}function Ks(t,e){if(!t)return!1;const{nr:r}=t;return r?r.includes(e):ir(t,e)}const qs="2.10.0",Ys=1048576,Xs=".zip.js-temp";function Js(t={}){const{thresholdBytes:e=Ys,directoryName:r=Xs,getDirectory:n=()=>navigator.storage.getDirectory()}=t;let o;function a(){return o||(o=Promise.resolve(n()).then(t=>t.getDirectoryHandle(r,{create:!0}))),o}return function(){const t=[];let r,n,o,i,s=0,c=!1;const u=new WritableStream({async write(i){c?await o.write(i):(t.push(i),s+=i.length,s>e&&await async function(){const e=await a();r=crypto.randomUUID?crypto.randomUUID():Array.from(crypto.getRandomValues(new Uint8Array(16)),t=>t.toString(16).padStart(2,"0")).join(""),n=await e.getFileHandle(r,{create:!0}),o=(await n.createWritable()).getWriter(),c=!0;for(const e of t)await o.write(e);t.length=0}())},async close(){o&&(await o.close(),o=null)}});let l=0;return{writable:u,readable:new ReadableStream({async pull(e){if(c){if(!i){const t=await n.getFile();i=t.stream().getReader()}const{value:t,done:r}=await i.read();r?e.close():e.enqueue(t)}else l<t.length?e.enqueue(t[l++]):e.close()},async cancel(t){i&&await i.cancel(t)}},{highWaterMark:0}),dispose:async function(){if(o){try{await o.close()}catch{}o=null}if(r){try{const t=await a();await t.removeEntry(r)}catch{}n=r=null}t.length=0}}}}const Qs=1048576;function $s(t={}){const{thresholdBytes:e=Qs}=t;return function(){const t=[];let r,n,o,a=0,i=!1;const s=new WritableStream({async write(o){i?await r.write(o):(t.push(o),a+=o.length,a>e&&await async function(){const e=new TransformStream;n=ve(e.readable),r=e.writable.getWriter(),i=!0;for(const e of t)await r.write(e);t.length=0}())},async close(){r&&(await r.close(),r=null)}});let c=0;return{writable:s,readable:new ReadableStream({async pull(e){if(i){if(!o){const t=await n;o=t.stream().getReader()}const{value:t,done:r}=await o.read();r?e.close():e.enqueue(t)}else c<t.length?e.enqueue(t[c++]):e.close()},async cancel(t){o&&await o.cancel(t)}},{highWaterMark:0}),dispose:async function(){if(r){try{await r.abort()}catch{}r=null}n&&(n.catch(()=>{}),n=null),t.length=0}}}}const tc=1048576,ec=".zip.js-temp",rc="createSyncAccessHandle is only available in dedicated workers";function nc(t={}){const{thresholdBytes:e=tc,directoryName:r=ec,getDirectory:n}=t;if(!(n||"undefined"!=typeof FileSystemFileHandle&&FileSystemFileHandle.prototype.createSyncAccessHandle))throw new Error(rc);const o=n||(()=>navigator.storage.getDirectory());let a;function i(){return a||(a=Promise.resolve(o()).then(t=>t.getDirectoryHandle(r,{create:!0}))),a}return function(){const t=[];let r,n,o=0,a=!1,s=0,c=0;const u=new WritableStream({async write(c){a?(n.write(c,{at:s}),s+=c.length):(t.push(c),o+=c.length,o>e&&await async function(){const e=await i();r=crypto.randomUUID?crypto.randomUUID():Array.from(crypto.getRandomValues(new Uint8Array(16)),t=>t.toString(16).padStart(2,"0")).join("");const o=await e.getFileHandle(r,{create:!0});n=await o.createSyncAccessHandle(),a=!0;for(const e of t)n.write(e,{at:s}),s+=e.length;t.length=0}())},close(){n&&n.flush()}});let l=0;return{writable:u,readable:new ReadableStream({pull(e){if(a){const t=s-c;if(t<=0)return void e.close();const r=new Uint8Array(Math.min(524288,t)),o=n.read(r,{at:c});o?(c+=o,e.enqueue(r.subarray(0,o))):e.close()}else l<t.length?e.enqueue(t[l++]):e.close()}},{highWaterMark:0}),dispose:async function(){if(n){try{n.close()}catch{}n=null}if(r){try{const t=await i();await t.removeEntry(r)}catch{}r=null}t.length=0}}}}try{xt({baseURI:import.meta.url})}catch{}const oc="deflate",ac="deflate-raw",ic="deflate64-raw",sc="gzip";let cc,uc,lc,fc,dc;function wc(t,e,r={}){if(!cc){const t=new Error("WASM module not loaded");throw t.cause=dc,t}const n="number"==typeof r.level?r.level:-1,o="number"==typeof r.outBuffer?r.outBuffer:65536,a="number"==typeof r.inBufferSize?r.inBufferSize:65536;return new TransformStream({start(){try{let r;if(this.ar=uc(o),this.in=uc(a),this.inBufferSize=a,!this.ar||!this.in)throw new Error("allocation failed");if(this.ir=new Uint8Array(o),t?(this.sr=cc.deflate_process,this.cr=cc.deflate_last_consumed,this.ur=cc.deflate_end,this.lr=cc.deflate_new(),r=e===sc?cc.deflate_init_gzip(this.lr,n):e===ac?cc.deflate_init_raw(this.lr,n):cc.deflate_init(this.lr,n)):e===ic?(this.sr=cc.inflate9_process,this.cr=cc.inflate9_last_consumed,this.ur=cc.inflate9_end,this.lr=cc.inflate9_new(),r=cc.inflate9_init_raw(this.lr)):(this.sr=cc.inflate_process,this.cr=cc.inflate_last_consumed,this.ur=cc.inflate_end,this.lr=cc.inflate_new(),r=e===ac?cc.inflate_init_raw(this.lr):e===sc?cc.inflate_init_gzip(this.lr):cc.inflate_init(this.lr)),0!==r)throw new Error("init failed:"+r)}catch(t){throw i(this),t}},transform(e,r){try{const n=e,a=new Uint8Array(fc.buffer),i=this.sr,s=this.cr,c=this.ar,u=this.ir;let l=0;for(;l<n.length;){const e=Math.min(n.length-l,32768);if((!this.in||this.inBufferSize<e)&&(this.in&&lc&&(lc(this.in),this.in=0),this.in=uc(e),this.inBufferSize=e,!this.in))throw new Error("allocation failed");a.set(n.subarray(l,l+e),this.in);const f=i(this.lr,this.in,e,c,o,0),d=16777215&f;if(d&&(u.set(a.subarray(c,c+d),0),r.enqueue(u.slice(0,d))),!t){const t=f>>24&255,e=128&t?t-256:t;if(e<0)throw new Error("process error:"+e)}const w=s(this.lr);if(0===w)break;l+=w}}catch(t){i(this),r.error(t)}},flush(e){try{const r=new Uint8Array(fc.buffer),n=this.sr,a=this.ar,i=this.ir;for(;;){const s=n(this.lr,0,0,a,o,4),c=16777215&s,u=s>>24&255;if(!t){const t=128&u?u-256:u;if(t<0)throw new Error("process error:"+t)}if(c&&(i.set(r.subarray(a,a+c),0),e.enqueue(i.slice(0,c))),1===u||0===c)break}}catch(t){e.error(t)}finally{const t=i(this);0!==t&&e.error(new Error("end error:"+t))}},cancel(){i(this)}});function i(t){let e=0;return t.lr&&t.ur&&(e=t.ur(t.lr)),t.lr=0,t.in&&lc&&lc(t.in),t.in=0,t.ar&&lc&&lc(t.ar),t.ar=0,e}}class pc{constructor(t=oc,e){return wc(!0,t,e)}}class hc{constructor(t=oc,e){return wc(!1,t,e)}}pc.lt=!0,hc.lt=!0,pc.nr=[oc,ac,sc],hc.nr=[oc,ac,sc,ic];let mc,yc=!1;function bc(){mc=null,async function(){await Promise.allSettled(Zr.map(t=>($r(t),t.terminate()))),Er=T,Sr=!1}(),yc=!1,cc=uc=lc=fc=dc=null}!function({dr:t}){Ar=t}({dr:t=>{if(!mc){let{wasmURI:e}=t;typeof e==k&&(e=e()),mc=async function(t,{baseURI:e}){if(!yc)try{await async function(t,e){let r,n;try{try{n=new URL(t,e)}catch{}const o=await fetch(n);r=await o.arrayBuffer()}catch(e){if(!t.startsWith("data:application/wasm;base64,"))throw e;r=function(t){const e=t.split(",")[1],r=atob(e),n=r.length,o=new Uint8Array(n);for(let t=0;t<n;++t)o[t]=r.charCodeAt(t);return o.buffer}(t)}!function(t){if(cc=t,({malloc:uc,free:lc,memory:fc}=cc),"function"!=typeof uc||"function"!=typeof lc||!fc)throw cc=uc=lc=fc=null,new Error("Invalid WASM module")}((await WebAssembly.instantiate(r)).instance.exports)}(t,e),yc=!0}catch(t){throw function(t){dc=t}(t),t}}(e,t).catch(t=>{throw mc=null,t})}return mc}}),xt({CompressionStreamFallback:pc,DecompressionStreamFallback:hc}),xt({workerURI:new URL("./zip-web-worker.js",import.meta.url).href,wasmURI:new URL("./zip-module.wasm",import.meta.url).href});const Ec="Entry filename already exists",Sc="Duplicate entry filename in the imported zip file",gc='Invalid duplicates option (must be "throw", "keep-first" or "keep-last")',Ac="Entry is a ancestor of target entry",Rc="Readable stream already consumed",xc="throw",Dc="keep-first",zc="keep-last",Fc=new Set([xc,Dc,zc]),Oc="Invalid passThrough option (use readerOptions.passThrough or set uncompressedSize for each entry)",Tc="Invalid readerOptions (must be an object)",Uc="The last modification date of an entry encrypted with ZipCrypto cannot be changed when passThrough is set",Ic="zipjs-abort-export",kc="The operation was aborted",Cc=new Set([1,h,10,m,28789,25461,y,b,E,22613,13]);class Mc{constructor(t,e,r,n){const o=this;if(t.root&&n&&n.getChildByName(e))throw new Error(Ec);r||(r={}),Object.assign(o,{fs:t,name:e,data:r.data,options:r.options&&Object.assign({},r.options),id:t.wr++,parent:n,children:[],uncompressedSize:r.uncompressedSize||0,pr:r.pr||r.uncompressedSize===T,passThrough:r.passThrough,mr:r.mr||new Date}),!n&&t.root||(t.entries[o.id]=o),n&&o.parent.children.push(o)}getFullname(){return this.getRelativeName()}getRelativeName(t=this.fs.root){let e=this.name,r=this.parent;for(;r&&r!=t;)e=(r.name?r.name+"/":"")+e,r=r.parent;return e}isDescendantOf(t){let e=this.parent;for(;e&&e.id!=t.id;)e=e.parent;return Boolean(e)}rename(t){const e=this;let r=e.parent;if(r){const n=su(t);n&&(t=n.pop(),r=cu(r,n,e));const o=r.getChildByName(t);if(o&&o!=e)throw new Error(Ec);r!=e.parent&&(Gc(e),e.parent=r,r.children.push(e),au(e.fs,e))}e.name=t}setOptions(t){const e=Object.assign({},this.options,t);this.options=Object.fromEntries(Object.entries(e).filter(([,t])=>t!==T))}}class vc extends Mc{constructor(t,e,r,n){super(t,e,r,n);const o=this;o.Reader=r.Reader,o.Writer=r.Writer,r.getData&&(o.getData=r.getData)}clone(){return new vc(this.fs,this.name,this)}async getData(t,e={}){const r=this;if(!t||t.constructor==r.Writer&&r.data&&function(t,e){const{contentType:r}=t;return r===T||(t.constructor==xn?e.type==r:t.constructor!=Sn||e.startsWith("data:"+(r||"")+";base64,"))}(t,r.data))return r.data;{const n=r.reader=Vc(r.Reader,r.data,e),o=r.uncompressedSize||n.size;await Promise.all([to(n),to(t,o)]);const a=ot(e.signal),i=function(t,e,r,n){const{onstart:o,onprogress:a,onend:i}=r,{readable:s}=e;return t.data instanceof Wo||!o&&!a&&!i?s:Me(s).pipeThrough(new zr({onstart:o,onprogress:a,onend:i,size:e.size}),{signal:n})}(r,n,e,a),s=!$n(t)&&Boolean(e.preventClose);return r.uncompressedSize=n.size,await Me(i).pipeTo(Ne(t.writable),{signal:a,preventClose:s,preventAbort:s}),t.getData?t.getData():t.writable}}isPasswordProtected(){return Boolean(this.data&&this.data.encrypted)}async checkPassword(t,e={}){const r=this;if(!r.isPasswordProtected())return!0;try{return await r.data.getData(null,Object.assign({},e,{password:t,checkPasswordOnly:!0})),!0}catch(t){if(t.message==Gt)return!1;throw t}}getText(t,e){return this.getData(new Fn(t),e)}getBlob(t,e){return this.getData(new xn(t),e)}getData64URI(t,e){return this.getData(new Sn(t),e)}getUint8Array(t){return this.getData(new qn,t)}getWritable(t=new WritableStream,e){return this.getData({writable:t},e)}async getArrayBuffer(t){return Ft(await this.getUint8Array(t)).buffer}replaceBlob(t){Jc(this,{data:t,Reader:Rn,Writer:xn,uncompressedSize:t.size})}replaceText(t){Jc(this,{data:t,Reader:Dn,Writer:Fn,uncompressedSize:zn(t)})}replaceData64URI(t){Jc(this,{data:t,Reader:En,Writer:Sn,uncompressedSize:Qc(t)})}replaceUint8Array(t){Jc(this,{data:t,Reader:Kn,Writer:qn,uncompressedSize:t.length})}replaceReadable(t){Jc(this,{data:null,Reader:Lc(t),Writer:null,uncompressedSize:T})}}class Nc extends Mc{constructor(t,e,r,n){super(t,e,r,n),this.directory=!0}clone(t){const e=this,r=new Nc(e.fs,e.name,e);return t&&(r.children=e.children.map(e=>{const n=e.clone(t);return n.parent=r,n})),r}addDirectory(t,e){return iu(this,t,{options:e},!0)}addText(t,e,r={}){return iu(this,t,{data:e,Reader:Dn,Writer:Fn,options:r,uncompressedSize:zn(e)})}addBlob(t,e,r={}){return iu(this,t,{data:e,Reader:Rn,Writer:xn,options:r,uncompressedSize:e.size})}addData64URI(t,e,r={}){return iu(this,t,{data:e,Reader:En,Writer:Sn,options:r,uncompressedSize:Qc(e)})}addUint8Array(t,e,r={}){return iu(this,t,{data:e,Reader:Kn,Writer:qn,options:r,uncompressedSize:e.length})}addHttpContent(t,e,r={}){return iu(this,t,{data:e,Reader:class extends Hn{constructor(t){super(t,r)}},options:r})}addReadable(t,e,r={}){return iu(this,t,{Reader:Lc(e),options:r})}addFileSystemEntry(t,e={}){return eu(this,t,e)}addFileSystemHandle(t,e={}){return eu(this,t,e)}addFile(t,e={}){return(e=Object.assign({},e)).lastModDate||(e.lastModDate=new Date(t.lastModified)),iu(this,t.name,{data:t,Reader:function(){return{readable:t.stream(),size:t.size}},options:e,uncompressedSize:t.size})}importBlob(t,e){return this.importZip(new Rn(t),e)}importData64URI(t,e){return this.importZip(new En(t),e)}importUint8Array(t,e){return this.importZip(new Kn(t),e)}importHttpContent(t,e){return this.importZip(new Hn(t,e),e)}importReadable(t,e){return this.importZip({readable:t},e)}exportBlob(t={}){return this.exportZip(new xn(t.mimeType||"application/zip"),t)}exportData64URI(t={}){return this.exportZip(new Sn(t.mimeType||"application/zip"),t)}exportUint8Array(t={}){return this.exportZip(new qn,t)}async exportWritable(t=new WritableStream,e={}){return await this.exportZip({writable:t},e),t}exportFileSystemHandle(t,e={}){return async function(t,e,r){const{onstart:n,onprogress:o,onend:a}=r,i=Xc(r.readerOptions),s=new AbortController,{signal:c}=s,u=function(t,e){if(!ot(t))return()=>{};if(t.aborted)return e.abort(t.reason),()=>{};const r=()=>e.abort(t.reason);return t.addEventListener("abort",r,{once:!0}),()=>t.removeEventListener("abort",r)}(r.signal,s),l=Object.assign({},r,i,{signal:c,onstart:T,onprogress:T,onend:T,preventClose:!1}),f=Bc([t],t=>Wc(t,l.passThrough)),d=[];let w=!1,p=0;try{n&&await Fr(n,f),await m(t,e),a&&await Fr(a,p)}catch(t){try{t.exportedEntryNames=d}catch{}throw t}finally{u()}return e;function h(t){const e=t.getWriter();return new WritableStream({async write(t){await e.write(t),p+=t.length,o&&await Fr(o,p,f)},close:()=>e.close(),abort:t=>e.abort(t)})}async function m(t,e){if(r.concurrent){const r=(await Promise.allSettled(t.children.map(t=>y(t,e)))).filter(t=>"rejected"==t.status);if(r.length){const t=r.filter(t=>!Kc(t.reason));throw function(t){const[e]=t,r=t.slice(1).flatMap(t=>[t,...t&&t.entryErrors||[]]).filter(t=>t!==e);if(r.length)try{e.entryErrors=[...e.entryErrors||[],...r]}catch{}return e}((t.length?t:r).map(t=>t.reason))}}else for(const r of t.children)await y(r,e)}async function y(e,r){if(c.aborted){if(w||Kc(c.reason))return;throw c.reason===T?new DOMException(kc,"AbortError"):c.reason}try{if(e.directory){const t=await r.getDirectoryHandle(e.name,{create:!0});await m(e,t)}else{const n=await r.getFileHandle(e.name,{create:!0}),o=await n.createWritable();try{await e.getData({writable:h(o)},l)}catch(t){throw w?new Error(Ic):t}d.push(e.getRelativeName(t))}}catch(r){w=!0,s.abort(new Error(Ic));try{r.entryName===T&&(r.entryName=e.getRelativeName(t),r.entryId=e.id)}catch{}throw r}}}(this,t,e)}async importZip(t,e={}){let r;t&&typeof t.getEntries==k?(r=t,e=Object.assign({},r.options,e)):(await to(t),r=new Oa(t,e));const n=function(t){if(t===T)return xc;if(Fc.has(t))return t;throw new Error(gc)}(e.duplicates),o=[],a=await r.getEntries(e);for(const t of a){let r=this;try{const a=t.filename.split("/").filter(t=>""!=t&&"."!=t),i=a.pop();let s=!1;for(const t of a){const e=r;if(r=r.getChildByName(t),r){if(!r.directory){if(n==Dc){s=!0;break}if(n!=zc)throw new Error(Sc);this.fs.remove(r),r=new Nc(this.fs,t,{data:null},e),o.push(r)}}else r=new Nc(this.fs,t,{data:null},e),o.push(r)}if(s)continue;if(t.directory){let e=r;if(i){if(e=r.getChildByName(i),e&&!e.directory){if(n==Dc)continue;if(n!=zc)throw new Error(Sc);this.fs.remove(e),e=T}e||(e=new Nc(this.fs,i,{data:null},r),o.push(e))}e==this||e.data||(e.data=t)}else{const a=r.getChildByName(i);if(a){if(n==Dc)continue;if(n!=zc)throw new Error(Sc);this.fs.remove(a)}o.push(iu(r,i,{data:t,Reader:Zc(Object.assign({},e)),uncompressedSize:e.passThrough?t.compressedSize:t.uncompressedSize,passThrough:e.passThrough}))}}catch(e){o.reverse().forEach(t=>this.fs.remove(t));try{e.cause={entry:t}}catch{}throw e}}return o}async exportZip(t,e={}){const r=this;(e=Object.assign({},e)).bufferedWrite===T&&(e.bufferedWrite=!0);const[n]=await Promise.all([Hc(r,Xc(e.readerOptions)),to(t)]),o=new Ji(t,e);return await async function(t,e,r,n,o){const{onstart:a,onprogress:i,onend:s,onentryprogress:c}=n,u=e,l=Bc(e.children,t=>tu(t)?0:1);let f=0,d=0;if(a&&await Fr(a,r),n.bufferedWrite)await async function t(e){const r=(await Promise.allSettled(e.children.map(async e=>{await w(e),await t(e)}))).find(t=>"rejected"==t.status);if(r)throw r.reason}(e);else for(const t of e.getChildren({recursive:!0}))await w(t);async function w(e){if(tu(e))return;const{name:a,yr:s}=qc(e,u,n);let w=0;const p=await t.add(a,o.get(e),Object.assign(s,{onstart:T,onend:T,onprogress:async t=>{f+=t-w,w=t,i&&await Fr(i,f,r)}}));d++,c&&await Fr(c,d,l,p)}s&&await Fr(s,f)}(o,r,Bc([r],jc),e,n),await o.close(e.globalComment),t.getData?t.getData():t.writable}getExportedSize(r={}){const n=this;Xc((r=Object.assign({},r)).readerOptions),r.bufferedWrite===T&&(r.bufferedWrite=!0);const o=n.getChildren({recursive:!0}).filter(t=>!tu(t)).map(t=>{const{name:e,yr:o}=qc(t,n,r);return{name:e,size:t.directory?0:Yc(t,$c(t,r)),options:o}}),a=!r.bufferedWrite||o.every(t=>!1!==t.options.keepOrder)&&n.children.every(t=>!t.children.length);return async function(r,n,o,a){const i={options:r};if(nt(r[q]))throw new Error(Mi);if(a!==T&&!(a instanceof Uint8Array))throw new Error(pi);const s=Ls(a);if(s>e)throw new Error(wi);const c=r[G],u=new Map,l=r[H]===T?0:r[H];let f=l,w=U;for(const t of n){let{name:e}=t;const{size:r}=t,n=Object.assign({},t.options);Ts(i,n,Io)&&!e.endsWith(D)&&(e+=D);const o=ns(i,e,n);({name:e}=o);const{Ae:a}=os(i,e,n);0==a.level||a.compressionMethod!==T||a.passThrough||await Rr(yt())||(a.level=0);const s=!Ts(i,n,Io);if(s&&r===T)throw new Error(Mi);const{$e:l,Ae:d}=is(i,s,r,a,n);if(s&&!a.passThrough&&Ns(d.compressionMethod,d.level))throw new Error(Mi);const p=Object.assign({},n,o.Ae,a,d,{[G]:c}),h=ss(p),m=ls(p),y={Fe:h,Ie:Ls(h.xe,m.De)};c&&cs(y,f);const b=s?l:0;u.set(e,Object.assign({},p,h,{offset:f,diskNumberStart:0,compressedSize:b}));const E=y.Ie+b;w=Math.min(w,E),f+=E}if(u.size>1&&(c||f-w>=t)&&!o)throw new Error(Mi);const p=fs(u);let h=Ts(i,r,zo);if(f>=t||p>=t||u.size>=e){if(!1===h)throw new Error(Ii);h=!0}return f-l+p+s+(h?98:d)}(r,o,a,r.globalComment)}getChildByName(t){const e=this.children;for(let r=0;r<e.length;r++){const n=e[r];if(n.name==t)return n}}getChildren(t={}){return function(t,e){const r=[],n=[t];let o=0;for(;o<n.length;)for(const t of n[o++].children)r.push(t),e&&n.push(t);return r}(this,t.recursive)}isPasswordProtected(){const t=this.children;for(let e=0;e<t.length;e++)if(t[e].isPasswordProtected())return!0;return!1}async checkPassword(t,e={}){const r=this.children;return!(await Promise.all(r.map(r=>r.checkPassword(t,e)))).includes(!1)}}class _c{constructor(){nu(this)}get children(){return this.root.children}remove(t){Gc(t);const e=[t];for(;e.length;){const t=e.pop();this.entries[t.id]=null;for(const r of t.children)e.push(r)}t.parent=T}move(t,e){if(t==this.root)throw new Error("Root directory cannot be moved");if(!e.directory)throw new Error("Target entry is not a directory");if(e.isDescendantOf(t))throw new Error(Ac);if(t!=e){const r=e.getChildByName(t.name);if(r){if(r!=t)throw new Error(Ec)}else Gc(t),t.parent=e,e.children.push(t),au(this,t)}}find(t){const e=t.split("/");let r=this.root;for(let t=0;r&&t<e.length;t++)r=r.directory?r.getChildByName(e[t]):T;return r||(r=this.entries.find(e=>e&&(e==this.root||e.isDescendantOf(this.root))&&e.getRelativeName()==t)),r}getById(t){return this.entries[t]}getChildByName(t){return this.root.getChildByName(t)}getChildren(t){return this.root.getChildren(t)}addDirectory(t,e){return this.root.addDirectory(t,e)}addText(t,e,r){return this.root.addText(t,e,r)}addBlob(t,e,r){return this.root.addBlob(t,e,r)}addData64URI(t,e,r){return this.root.addData64URI(t,e,r)}addUint8Array(t,e,r){return this.root.addUint8Array(t,e,r)}addHttpContent(t,e,r){return this.root.addHttpContent(t,e,r)}addReadable(t,e,r){return this.root.addReadable(t,e,r)}addFileSystemEntry(t,e){return this.root.addFileSystemEntry(t,e)}addFileSystemHandle(t,e){return this.root.addFileSystemHandle(t,e)}addFile(t,e){return this.root.addFile(t,e)}importBlob(t,e){return ou(this,r=>r.importBlob(t,e))}importData64URI(t,e){return ou(this,r=>r.importData64URI(t,e))}importUint8Array(t,e){return ou(this,r=>r.importUint8Array(t,e))}importHttpContent(t,e){return ou(this,r=>r.importHttpContent(t,e))}importReadable(t,e){return ou(this,r=>r.importReadable(t,e))}importZip(t,e){return ou(this,r=>r.importZip(t,e))}exportBlob(t){return this.root.exportBlob(t)}exportData64URI(t){return this.root.exportData64URI(t)}exportUint8Array(t){return this.root.exportUint8Array(t)}exportWritable(t,e){return this.root.exportWritable(t,e)}exportFileSystemHandle(t,e){return this.root.exportFileSystemHandle(t,e)}exportZip(t,e){return this.root.exportZip(t,e)}getExportedSize(t){return this.root.getExportedSize(t)}isPasswordProtected(){return this.root.isPasswordProtected()}checkPassword(t,e){return this.root.checkPassword(t,e)}}const Pc={FS:_c,ZipDirectoryEntry:Nc,ZipFileEntry:vc};function Bc(t,e){let r=0;const n=Array.from(t);for(;n.length;){const t=n.pop();r+=e(t)||0;for(const e of t.children)n.push(e)}return r}function jc(t){return t.uncompressedSize}function Wc(t,e){const{data:r}=t;return e&&r instanceof Wo?r.compressedSize:t.uncompressedSize}function Lc(t){let e;return function(){if(e)throw new Error(Rc);return e=!0,{readable:t}}}function Zc(t){return class extends yn{constructor(t,e={}){super(),this.entry=t,this.options=e}async init(){const e=this,r=Object.assign({},t,e.options),{checkOverlappingEntry:n,checkOverlappingEntryOnly:o}=r,a=await e.entry.getData(new xn,Object.assign(r,{checkPasswordOnly:!1,checkOverlappingEntry:o||n,checkOverlappingEntryOnly:!1,preventClose:!1}));e.data=a,e.Er=new Rn(a),e.size=a.size,super.init()}readUint8Array(t,e){return this.Er.readUint8Array(t,e)}}}function Vc(t,e,r){return t.prototype?new t(e,r):t(e,r)}async function Hc(t,e){const r=[],n=[t],o=new Map;for(;n.length;){const t=n.pop();for(const e of t.children)e.directory?n.push(e):r.push(e)}return await Promise.all(r.map(async t=>{const r=t.reader=Vc(t.Reader,t.data,e);o.set(t,r);try{await to(r)}catch(e){try{e.entryId=t.id,e.cause={entry:t}}catch{}throw e}r.size!==T&&(t.uncompressedSize=r.size,t.pr=!1)})),o}function Gc(t){if(t.parent){const e=t.parent.children;e.forEach((r,n)=>{r.id==t.id&&e.splice(n,1)})}}function Kc(t){return Boolean(t)&&t.message==Ic}function qc(t,e,n){const o=n.relativePath?t.getRelativeName(e):t.getFullname(),a=t.options||{};let i={},s={};if(t.data instanceof Wo){const{externalFileAttributes:e,versionMadeBy:o,comment:c,lastModDate:u,rawLastModDate:l,creationDate:f,lastAccessDate:d,uncompressedSize:w,encrypted:p,zipCrypto:h,crc32:m,compressionMethod:y,extraFieldAES:b,internalFileAttributes:E,extraField:S,bitFlag:g,uid:A,gid:R}=t.data;i={externalFileAttributes:e,versionMadeBy:o,comment:c,lastModDate:u,creationDate:f,lastAccessDate:d,internalFileAttributes:E};const x=function(t){if(t){const e=new Map;if(t.forEach((t,r)=>{Cc.has(r)||e.set(r,t.data)}),e.size)return e}}(S);if(x&&(i.extraField=x),A===T&&R===T||Object.assign(i,{uid:A,gid:R,unixExtraFieldType:"infozip"}),$c(t,n)){let t;b&&(t=b.strength),s={passThrough:!0,encrypted:p,zipCrypto:h,crc32:m,uncompressedSize:w,encryptionStrength:t,compressionMethod:y},g&&(s.dataDescriptor=g.dataDescriptor);const e=a.lastModDate===T?n.lastModDate:a.lastModDate;if(e===T)s.rawLastModDate=l;else if(h&&(!g||g.dataDescriptor)&&e instanceof Date&&function(t){let e=new Date(2e3*Math.ceil(Math.floor(t.getTime()/1e3)/2));return e<O?e=O:e>F&&(e=F),(e.getHours()<<3|e.getMinutes()>>3)&r}(e)!=(l>>>8&r))throw new Error(Uc)}}const c=Object.assign({lastModDate:t.mr},i,n,a,s,{directory:t.directory});if(!t.directory&&c.passThrough&&c.uncompressedSize===T)throw new Error(Oc);return{name:o,yr:c}}function Yc(t,e){const{reader:r}=t;return r&&r.size!==T?r.size:t.pr?T:Wc(t,e)}function Xc(t){if(t&&(typeof t!=C||Array.isArray(t)))throw new Error(Tc);return t}function Jc(t,e){const{uncompressedSize:r}=e;Object.assign(t,e,{reader:null,passThrough:T,uncompressedSize:r===T?0:r,pr:r===T})}function Qc(t){let e=t.length;for(;"="==t.charAt(e-1);)e--;const r=t.indexOf(",")+1;return Math.floor(.75*(e-r))}function $c(t,e){const{readerOptions:r}=e;return Boolean(!t.directory&&(t.passThrough||r&&r.passThrough))}function tu(t){return t.directory&&null===t.data}function eu(t,e,r){return async function t(e,n,o,a=""){if(n){const i=a?a+"/"+n.name:n.name;try{if((n.isFile||n.isDirectory)&&(n=await ru(n)),"file"==n.kind){const t=await n.getFile();o.push(iu(e,t.name,{Reader:function(){return{readable:t.stream(),size:t.size}},options:Object.assign({},{lastModDate:new Date(t.lastModified)},r),uncompressedSize:t.size}))}else if("directory"==n.kind){const a=e.addDirectory(n.name,r);o.push(a);for await(const e of n.values())await t(a,e,o,i)}}catch(t){try{t.entryName===T&&(t.entryName=i)}catch{}throw t}}return o}(t,e,[])}async function ru(t){const e={name:t.name};if(t.isFile&&(e.kind="file",e.getFile=()=>new Promise((e,r)=>t.file(e,r))),t.isDirectory){e.kind="directory";const r=await async function(t){const e=[];function r(t,n,o){t.readEntries(async a=>{if(a.length){for(const t of a)e.push(await ru(t));r(t,n,o)}else n(e)},o)}return await new Promise((e,n)=>r(t.createReader(),e,n)),{[Symbol.iterator](){let t=0;return{next(){const r={value:e[t],done:t==e.length};return t++,r}}}}}(t);e.values=()=>r}return e}function nu(t){t.entries=[],t.wr=0,t.root=new Nc(t)}function ou(t,e){const{entries:r,wr:n,root:o}=t;return nu(t),e(t.root).catch(e=>{throw Object.assign(t,{entries:r,wr:n,root:o}),e})}function au(t,e){const r=[e];for(;r.length;){const e=r.pop();t.entries[e.id]=e;for(const t of e.children)r.push(t)}}function iu(t,e,r,n){if(t.directory){const o=su(e);return o&&(e=o.pop(),t=cu(t,o)),n?new Nc(t.fs,e,r,t):new vc(t.fs,e,r,t)}throw new Error("Parent entry is not a directory")}function su(t){if(t.includes("/")){const e=t.split("/").filter(t=>""!=t&&"."!=t);if(e.length)return e}}function cu(t,e,r){return e.forEach(e=>{const n=t;if(t=t.getChildByName(e)){if(!t.directory)throw new Error(Ec);if(r&&(t==r||t.isDescendantOf(r)))throw new Error(Ac)}else t=new Nc(n.fs,e,{data:null},n)}),t}export{Rn as BlobReader,xn as BlobWriter,En as Data64URIReader,Sn as Data64URIWriter,kc as ERR_ABORTED,ta as ERR_AMBIGUOUS_ARCHIVE,Lo as ERR_BAD_FORMAT,Ho as ERR_CENTRAL_DIRECTORY_NOT_FOUND,di as ERR_DUPLICATED_NAME,Sc as ERR_DUPLICATE_IMPORTED_ENTRY,qo as ERR_ENCRYPTED,ea as ERR_ENCRYPTED_CENTRAL_DIRECTORY,$o as ERR_ENTRY_DATA_OUT_OF_BOUNDS,Ec as ERR_ENTRY_EXISTS,Vo as ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND,Zo as ERR_EOCDR_NOT_FOUND,Ko as ERR_EXTRAFIELD_ZIP64_NOT_FOUND,on as ERR_HTTP_RANGE,an as ERR_HTTP_RESOURCE_CHANGED,qt as ERR_INVALID_AUTHENTICATION_CODE,_e as ERR_INVALID_CODEC_DEFINITION,Be as ERR_INVALID_CODEC_MODULE,wi as ERR_INVALID_COMMENT,pi as ERR_INVALID_COMMENT_TYPE,Xe as ERR_INVALID_COMPRESSED_DATA,Je as ERR_INVALID_CRC32,yi as ERR_INVALID_DATE,gc as ERR_INVALID_DUPLICATES,Si as ERR_INVALID_ENCRYPTION_STRENGTH,hi as ERR_INVALID_ENTRY_COMMENT,mi as ERR_INVALID_ENTRY_COMMENT_TYPE,bi as ERR_INVALID_ENTRY_NAME,Ri as ERR_INVALID_EXTRAFIELD,zi as ERR_INVALID_EXTRAFIELD_DATA,Di as ERR_INVALID_EXTRAFIELD_DATA_TYPE,xi as ERR_INVALID_EXTRAFIELD_TYPE,oa as ERR_INVALID_FILENAME_VALIDATION,tt as ERR_INVALID_FUNCTION_OPTION,Pi as ERR_INVALID_GID,Vi as ERR_INVALID_LEVEL,aa as ERR_INVALID_MAX_APPENDED_DATA_SIZE,ut as ERR_INVALID_MAX_WORKERS,Li as ERR_INVALID_MSDOS_ATTRIBUTES,Zi as ERR_INVALID_MSDOS_DATA,Gt as ERR_INVALID_PASSWORD,rt as ERR_INVALID_PASSWORD_TYPE,Oc as ERR_INVALID_PASS_THROUGH,Tc as ERR_INVALID_READER_OPTIONS,et as ERR_INVALID_SIGNAL,Kt as ERR_INVALID_SIGNATURE,Hi as ERR_INVALID_SIGNATURE_DATA,na as ERR_INVALID_STRICTNESS,_i as ERR_INVALID_UID,Ye as ERR_INVALID_UNCOMPRESSED_SIZE,ji as ERR_INVALID_UNIX_EXTRA_FIELD_TYPE,Wi as ERR_INVALID_UNIX_ID_SIZE,Bi as ERR_INVALID_UNIX_MODE,Ei as ERR_INVALID_VERSION,sn as ERR_ITERATOR_COMPLETED_TOO_SOON,Go as ERR_LOCAL_FILE_HEADER_NOT_FOUND,Qo as ERR_OVERLAPPING_ENTRY,Rc as ERR_READABLE_CONSUMED,Pe as ERR_RESERVED_COMPRESSION_METHOD,Jo as ERR_SPLIT_ZIP_FILE,Ci as ERR_UNDEFINED_COMPRESSION_METHOD,vi as ERR_UNDEFINED_READER,ki as ERR_UNDEFINED_UNCOMPRESSED_SIZE,Mi as ERR_UNDETERMINED_SIZE,ra as ERR_UNSAFE_FILENAME,Xo as ERR_UNSUPPORTED_COMPRESSION,rc as ERR_UNSUPPORTED_CONTEXT,Xt as ERR_UNSUPPORTED_CRYPTO_API,Yo as ERR_UNSUPPORTED_ENCRYPTION,Ai as ERR_UNSUPPORTED_ENCRYPTION_PASS_THROUGH,gi as ERR_UNSUPPORTED_ENCRYPTION_USDZ,Ii as ERR_UNSUPPORTED_FORMAT,ia as ERR_UNSUPPORTED_UINT64,br as ERR_WORKER_STARTUP_TIMEOUT,cn as ERR_WRITER_NOT_INITIALIZED,Uc as ERR_ZIP_CRYPTO_LAST_MOD_DATE,Ni as ERR_ZIP_NOT_EMPTY,Gn as HttpRangeReader,Hn as HttpReader,yn as Reader,Yn as SplitDataReader,Xn as SplitDataWriter,Dn as TextReader,Fn as TextWriter,Kn as Uint8ArrayReader,qn as Uint8ArrayWriter,qs as VERSION,wa as WARNING_APPENDED_DATA,ua as WARNING_COMPRESSED_PATCHED_DATA,ya as WARNING_DUPLICATE_FILENAME,la as WARNING_MALFORMED_EXTRA_FIELD,Ea as WARNING_MISMATCHED_LOCAL_FILE_HEADER_BIT_FLAG,Sa as WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD,ga as WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES,ba as WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY,ha as WARNING_PREPENDED_CENTRAL_DIRECTORY,pa as WARNING_PREPENDED_DATA,ma as WARNING_TRAILING_CENTRAL_DIRECTORY_DATA,ca as WARNING_UNKNOWN_VERSION,fa as WARNING_UNKNOWN_ZIP64_EXTENSIBLE_DATA,sa as WARNING_UNSORTED_CENTRAL_DIRECTORY,da as WARNING_WRAPPED_ENTRIES_COUNT,bn as Writer,Nc as ZipDirectoryEntry,Mc as ZipEntry,_c as ZipFS,vc as ZipFileEntry,Oa as ZipReader,Ta as ZipReaderStream,Ji as ZipWriter,Qi as ZipWriterStream,St as configure,$s as createBlobTempStream,Js as createOPFSTempStream,nc as createSyncAccessHandleTempStream,Pc as fs,Hs as getMimeType,Ge as getRegisteredCodecs,Gs as getSupportedCompressionMethods,Ua as isZipFile,Ze as registerCodec,Dt as resetConfiguration,bc as terminateWorkers,Ve as unregisterCodec};
|