single-file-zip.min.js 42 KB

1
  1. var e,t;e=this,t=function(e){const{Array:t,Object:n,String:r,Number:s,BigInt:a,Math:i,Date:o,Map:c,Set:l,Response:u,URL:h,Error:f,Uint8Array:d,Uint16Array:p,Uint32Array:w,DataView:g,Blob:m,Promise:y,TextEncoder:b,TextDecoder:v,document:k,crypto:S,btoa:z,TransformStream:x,ReadableStream:_,WritableStream:D,CompressionStream:F,DecompressionStream:C,navigator:T,Worker:W}="undefined"!=typeof globalThis?globalThis:this||self;var U=d,A=p,L=Int32Array,E=new U([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),R=new U([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),B=new U([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),M=(e,t)=>{for(var n=new A(31),r=0;31>r;++r)n[r]=t+=1<<e[r-1];var s=new L(n[30]);for(r=1;30>r;++r)for(var a=n[r];a<n[r+1];++a)s[a]=a-n[r]<<5|r;return{b:n,r:s}},P=M(E,2),O=P.b,I=P.r;O[28]=258,I[258]=28;for(var N=M(R,0),V=N.b,q=N.r,H=new A(32768),K=0;32768>K;++K){var Z=(43690&K)>>1|(21845&K)<<1;Z=(61680&(Z=(52428&Z)>>2|(13107&Z)<<2))>>4|(3855&Z)<<4,H[K]=((65280&Z)>>8|(255&Z)<<8)>>1}var j=(e,t,n)=>{for(var r=e.length,s=0,a=new A(t);r>s;++s)e[s]&&++a[e[s]-1];var i,o=new A(t);for(s=1;t>s;++s)o[s]=o[s-1]+a[s-1]<<1;if(n){i=new A(1<<t);var c=15-t;for(s=0;r>s;++s)if(e[s])for(var l=s<<4|e[s],u=t-e[s],h=o[e[s]-1]++<<u,f=h|(1<<u)-1;f>=h;++h)i[H[h]>>c]=l}else for(i=new A(r),s=0;r>s;++s)e[s]&&(i[s]=H[o[e[s]-1]++]>>15-e[s]);return i},G=new U(288);for(K=0;144>K;++K)G[K]=8;for(K=144;256>K;++K)G[K]=9;for(K=256;280>K;++K)G[K]=7;for(K=280;288>K;++K)G[K]=8;var J=new U(32);for(K=0;32>K;++K)J[K]=5;var Q=j(G,9,0),X=j(G,9,1),Y=j(J,5,0),$=j(J,5,1),ee=e=>{for(var t=e[0],n=1;n<e.length;++n)e[n]>t&&(t=e[n]);return t},te=(e,t,n)=>{var r=t/8|0;return(e[r]|e[r+1]<<8)>>(7&t)&n},ne=(e,t)=>{var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(7&t)},re=e=>(e+7)/8|0,se=(e,t,n)=>((null==t||0>t)&&(t=0),(null==n||n>e.length)&&(n=e.length),new U(e.subarray(t,n))),ae=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],ie=(e,t,n)=>{var r=new f(t||ae[e]);if(r.code=e,f.captureStackTrace&&f.captureStackTrace(r,ie),!n)throw r;return r},oe=(e,t,n)=>{n<<=7&t;var r=t/8|0;e[r]|=n,e[r+1]|=n>>8},ce=(e,t,n)=>{n<<=7&t;var r=t/8|0;e[r]|=n,e[r+1]|=n>>8,e[r+2]|=n>>16},le=(e,t)=>{for(var n=[],r=0;r<e.length;++r)e[r]&&n.push({s:r,f:e[r]});var s=n.length,a=n.slice();if(!s)return{t:ge,l:0};if(1==s){var i=new U(n[0].s+1);return i[n[0].s]=1,{t:i,l:1}}n.sort((e,t)=>e.f-t.f),n.push({s:-1,f:25001});var o=n[0],c=n[1],l=0,u=1,h=2;for(n[0]={s:-1,f:o.f+c.f,l:o,r:c};u!=s-1;)o=n[n[l].f<n[h].f?l++:h++],c=n[l!=u&&n[l].f<n[h].f?l++:h++],n[u++]={s:-1,f:o.f+c.f,l:o,r:c};var f=a[0].s;for(r=1;s>r;++r)a[r].s>f&&(f=a[r].s);var d=new A(f+1),p=ue(n[u-1],d,0);if(p>t){r=0;var w=0,g=p-t,m=1<<g;for(a.sort((e,t)=>d[t.s]-d[e.s]||e.f-t.f);s>r;++r){var y=a[r].s;if(d[y]<=t)break;w+=m-(1<<p-d[y]),d[y]=t}for(w>>=g;w>0;){var b=a[r].s;d[b]<t?w-=1<<t-d[b]++-1:++r}for(;r>=0&&w;--r){var v=a[r].s;d[v]==t&&(--d[v],++w)}p=t}return{t:new U(d),l:p}},ue=(e,t,n)=>-1==e.s?i.max(ue(e.l,t,n+1),ue(e.r,t,n+1)):t[e.s]=n,he=e=>{for(var t=e.length;t&&!e[--t];);for(var n=new A(++t),r=0,s=e[0],a=1,i=e=>{n[r++]=e},o=1;t>=o;++o)if(e[o]==s&&o!=t)++a;else{if(!s&&a>2){for(;a>138;a-=138)i(32754);a>2&&(i(a>10?a-11<<5|28690:a-3<<5|12305),a=0)}else if(a>3){for(i(s),--a;a>6;a-=6)i(8304);a>2&&(i(a-3<<5|8208),a=0)}for(;a--;)i(s);a=1,s=e[o]}return{c:n.subarray(0,r),n:t}},fe=(e,t)=>{for(var n=0,r=0;r<t.length;++r)n+=e[r]*t[r];return n},de=(e,t,n)=>{var r=n.length,s=re(t+2);e[s]=255&r,e[s+1]=r>>8,e[s+2]=255^e[s],e[s+3]=255^e[s+1];for(var a=0;r>a;++a)e[s+a+4]=n[a];return 8*(s+4+r)},pe=(e,t,n,r,s,a,i,o,c,l,u)=>{oe(t,u++,n),++s[256];for(var h=le(s,15),f=h.t,d=h.l,p=le(a,15),w=p.t,g=p.l,m=he(f),y=m.c,b=m.n,v=he(w),k=v.c,S=v.n,z=new A(19),x=0;x<y.length;++x)++z[31&y[x]];for(x=0;x<k.length;++x)++z[31&k[x]];for(var _=le(z,7),D=_.t,F=_.l,C=19;C>4&&!D[B[C-1]];--C);var T,W,U,L,M=l+5<<3,P=fe(s,G)+fe(a,J)+i,O=fe(s,f)+fe(a,w)+i+14+3*C+fe(z,D)+2*z[16]+3*z[17]+7*z[18];if(c>=0&&P>=M&&O>=M)return de(t,u,e.subarray(c,c+l));if(oe(t,u,1+(P>O)),u+=2,P>O){T=j(f,d,0),W=f,U=j(w,g,0),L=w;var I=j(D,F,0);for(oe(t,u,b-257),oe(t,u+5,S-1),oe(t,u+10,C-4),u+=14,x=0;C>x;++x)oe(t,u+3*x,D[B[x]]);u+=3*C;for(var N=[y,k],V=0;2>V;++V){var q=N[V];for(x=0;x<q.length;++x){var H=31&q[x];oe(t,u,I[H]),u+=D[H],H>15&&(oe(t,u,q[x]>>5&127),u+=q[x]>>12)}}}else T=Q,W=G,U=Y,L=J;for(x=0;o>x;++x){var K=r[x];if(K>255){ce(t,u,T[257+(H=K>>18&31)]),u+=W[H+257],H>7&&(oe(t,u,K>>23&31),u+=E[H]);var Z=31&K;ce(t,u,U[Z]),u+=L[Z],Z>3&&(ce(t,u,K>>5&8191),u+=R[Z])}else ce(t,u,T[K]),u+=W[K]}return ce(t,u,T[256]),u+W[256]},we=new L([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),ge=new U(0),me=function(){function e(e,t){if("function"==typeof e&&(t=e,e={}),this.ondata=t,this.o=e||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new U(98304),this.o.dictionary){var n=this.o.dictionary.subarray(-32768);this.b.set(n,32768-n.length),this.s.i=32768-n.length}}return e.prototype.p=function(e,t){this.ondata(((e,t,n,r,s)=>{if(!s&&(s={l:1},t.dictionary)){var a=t.dictionary.subarray(-32768),o=new U(a.length+e.length);o.set(a),o.set(e,a.length),e=o,s.w=a.length}return((e,t,n,r,s,a)=>{var o=a.z||e.length,c=new U(0+o+5*(1+i.ceil(o/7e3))+0),l=c.subarray(0,c.length-0),u=a.l,h=7&(a.r||0);if(t){h&&(l[0]=a.r>>3);for(var f=we[t-1],d=f>>13,p=8191&f,w=(1<<n)-1,g=a.p||new A(32768),m=a.h||new A(w+1),y=i.ceil(n/3),b=2*y,v=t=>(e[t]^e[t+1]<<y^e[t+2]<<b)&w,k=new L(25e3),S=new A(288),z=new A(32),x=0,_=0,D=a.i||0,F=0,C=a.w||0,T=0;o>D+2;++D){var W=v(D),B=32767&D,M=m[W];if(g[B]=M,m[W]=B,D>=C){var P=o-D;if((x>7e3||F>24576)&&(P>423||!u)){h=pe(e,l,0,k,S,z,_,F,T,D-T,h),F=x=_=0,T=D;for(var O=0;286>O;++O)S[O]=0;for(O=0;30>O;++O)z[O]=0}var N=2,V=0,H=p,K=B-M&32767;if(P>2&&W==v(D-K))for(var Z=i.min(d,P)-1,j=i.min(32767,D),G=i.min(258,P);j>=K&&--H&&B!=M;){if(e[D+N]==e[D+N-K]){for(var J=0;G>J&&e[D+J]==e[D+J-K];++J);if(J>N){if(N=J,V=K,J>Z)break;var Q=i.min(K,J-2),X=0;for(O=0;Q>O;++O){var Y=D-K+O&32767,$=Y-g[Y]&32767;$>X&&(X=$,M=Y)}}}K+=(B=M)-(M=g[B])&32767}if(V){k[F++]=268435456|I[N]<<18|q[V];var ee=31&I[N],te=31&q[V];_+=E[ee]+R[te],++S[257+ee],++z[te],C=D+N,++x}else k[F++]=e[D],++S[e[D]]}}for(D=i.max(D,C);o>D;++D)k[F++]=e[D],++S[e[D]];h=pe(e,l,u,k,S,z,_,F,T,D-T,h),u||(a.r=7&h|l[h/8|0]<<3,h-=7,a.h=m,a.p=g,a.i=D,a.w=C)}else{for(D=a.w||0;o+u>D;D+=65535){var ne=D+65535;o>ne||(l[h/8|0]=u,ne=o),h=de(l,h+1,e.subarray(D,ne))}a.i=o}return se(c,0,0+re(h)+0)})(e,null==t.level?6:t.level,null==t.mem?s.l?i.ceil(1.5*i.max(8,i.min(13,i.log(e.length)))):20:12+t.mem,0,0,s)})(e,this.o,0,0,this.s),t)},e.prototype.push=function(e,t){this.ondata||ie(5),this.s.l&&ie(4);var n=e.length+this.s.z;if(n>this.b.length){if(n>2*this.b.length-32768){var r=new U(-32768&n);r.set(this.b.subarray(0,this.s.z)),this.b=r}var s=this.b.length-this.s.z;this.b.set(e.subarray(0,s),this.s.z),this.s.z=this.b.length,this.p(this.b,!1),this.b.set(this.b.subarray(-32768)),this.b.set(e.subarray(s),32768),this.s.z=e.length-s+32768,this.s.i=32766,this.s.w=32768}else this.b.set(e,this.s.z),this.s.z+=e.length;this.s.l=1&t,(this.s.z>this.s.w+8191||t)&&(this.p(this.b,t||!1),this.s.w=this.s.i,this.s.i-=2)},e.prototype.flush=function(){this.ondata||ie(5),this.s.l&&ie(4),this.p(this.b,!1),this.s.w=this.s.i,this.s.i-=2},e}(),ye=function(){function e(e,t){"function"==typeof e&&(t=e,e={}),this.ondata=t;var n=e&&e.dictionary&&e.dictionary.subarray(-32768);this.s={i:0,b:n?n.length:0},this.o=new U(32768),this.p=new U(0),n&&this.o.set(n)}return e.prototype.e=function(e){if(this.ondata||ie(5),this.d&&ie(4),this.p.length){if(e.length){var t=new U(this.p.length+e.length);t.set(this.p),t.set(e,this.p.length),this.p=t}}else this.p=e},e.prototype.c=function(e){this.s.i=+(this.d=e||!1);var t=this.s.b,n=((e,t,n)=>{var r=e.length;if(!r||t.f&&!t.l)return n||new U(0);var s=!n,a=s||2!=t.i,o=t.i;s&&(n=new U(3*r));var c=e=>{var t=n.length;if(e>t){var r=new U(i.max(2*t,e));r.set(n),n=r}},l=t.f||0,u=t.p||0,h=t.b||0,f=t.l,d=t.d,p=t.m,w=t.n,g=8*r;do{if(!f){l=te(e,u,1);var m=te(e,u+1,3);if(u+=3,!m){var y=e[(T=re(u)+4)-4]|e[T-3]<<8,b=T+y;if(b>r){o&&ie(0);break}a&&c(h+y),n.set(e.subarray(T,b),h),t.b=h+=y,t.p=u=8*b,t.f=l;continue}if(1==m)f=X,d=$,p=9,w=5;else if(2==m){var v=te(e,u,31)+257,k=te(e,u+10,15)+4,S=v+te(e,u+5,31)+1;u+=14;for(var z=new U(S),x=new U(19),_=0;k>_;++_)x[B[_]]=te(e,u+3*_,7);u+=3*k;var D=ee(x),F=(1<<D)-1,C=j(x,D,1);for(_=0;S>_;){var T,W=C[te(e,u,F)];if(u+=15&W,16>(T=W>>4))z[_++]=T;else{var A=0,L=0;for(16==T?(L=3+te(e,u,3),u+=2,A=z[_-1]):17==T?(L=3+te(e,u,7),u+=3):18==T&&(L=11+te(e,u,127),u+=7);L--;)z[_++]=A}}var M=z.subarray(0,v),P=z.subarray(v);p=ee(M),w=ee(P),f=j(M,p,1),d=j(P,w,1)}else ie(1);if(u>g){o&&ie(0);break}}a&&c(h+131072);for(var I=(1<<p)-1,N=(1<<w)-1,q=u;;q=u){var H=(A=f[ne(e,u)&I])>>4;if((u+=15&A)>g){o&&ie(0);break}if(A||ie(2),256>H)n[h++]=H;else{if(256==H){q=u,f=null;break}var K=H-254;if(H>264){var Z=E[_=H-257];K=te(e,u,(1<<Z)-1)+O[_],u+=Z}var G=d[ne(e,u)&N],J=G>>4;if(G||ie(3),u+=15&G,P=V[J],J>3&&(Z=R[J],P+=ne(e,u)&(1<<Z)-1,u+=Z),u>g){o&&ie(0);break}a&&c(h+131072);var Q=h+K;if(P>h){var Y=0-P,ae=i.min(P,Q);for(0>Y+h&&ie(3);ae>h;++h)n[h]=(void 0)[Y+h]}for(;Q>h;++h)n[h]=n[h-P]}}t.l=f,t.p=q,t.b=h,t.f=l,f&&(l=1,t.m=p,t.d=d,t.n=w)}while(!l);return h!=n.length&&s?se(n,0,h):n.subarray(0,h)})(this.p,this.s,this.o);this.ondata(se(n,t,this.s.b),this.d),this.o=se(n,this.s.b-32768),this.s.b=this.o.length,this.p=se(this.p,this.s.p/8|0),this.s.p&=7},e.prototype.push=function(e,t){this.e(e),this.c(t)},e}(),be=void 0!==v&&new v;try{be.decode(ge,{stream:!0})}catch(e){}const ve=4294967295,ke=65535,Se=33639248,ze=101075792,xe=void 0,_e="undefined",De="function";function Fe(e,t,r){return class{constructor(s){const a=this;var i,o;i=s,o="level",(typeof n.hasOwn===De?n.hasOwn(i,o):i.hasOwnProperty(o))&&s.level===xe&&delete s.level,a.codec=new e(n.assign({},t,s)),r(a.codec,e=>{if(a.pendingData){const t=a.pendingData;a.pendingData=new d(t.length+e.length);const{pendingData:n}=a;n.set(t,0),n.set(e,t.length)}else a.pendingData=new d(e)})}append(e){return this.codec.push(e),s(this)}flush(){return this.codec.push(new d,!0),s(this)}};function s(e){if(e.pendingData){const t=e.pendingData;return e.pendingData=null,t}return new d}}const{Inflate:Ce}=((e,t={},n)=>({Deflate:Fe(e.Deflate,t.deflate,n),Inflate:Fe(e.Inflate,t.inflate,n)}))({Deflate:me,Inflate:ye},xe,(e,t)=>e.ondata=t);class Te{constructor(e){return class extends x{constructor(t,n){const r=new e(n);super({transform(e,t){t.enqueue(r.append(e))},flush(e){const t=r.flush();t&&e.enqueue(t)}})}}}}let We=2;try{typeof T!=_e&&T.hardwareConcurrency&&(We=T.hardwareConcurrency)}catch(e){}const Ue={chunkSize:524288,maxWorkers:We,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:xe,CompressionStreamNative:typeof F!=_e&&F,DecompressionStreamNative:typeof C!=_e&&C},Ae=n.assign({},Ue);function Le(e){const{baseURL:n,chunkSize:r,maxWorkers:s,terminateWorkerTimeout:a,useCompressionStream:i,useWebWorkers:o,Deflate:c,Inflate:l,CompressionStream:u,DecompressionStream:h,workerScripts:d}=e;if(Ee("baseURL",n),Ee("chunkSize",r),Ee("maxWorkers",s),Ee("terminateWorkerTimeout",a),Ee("useCompressionStream",i),Ee("useWebWorkers",o),c&&(Ae.CompressionStream=new Te(c)),l&&(Ae.DecompressionStream=new Te(l)),Ee("CompressionStream",u),Ee("DecompressionStream",h),d!==xe){const{deflate:e,inflate:n}=d;if((e||n)&&(Ae.workerScripts||(Ae.workerScripts={})),e){if(!t.isArray(e))throw new f("workerScripts.deflate must be an array");Ae.workerScripts.deflate=e}if(n){if(!t.isArray(n))throw new f("workerScripts.inflate must be an array");Ae.workerScripts.inflate=n}}}function Ee(e,t){t!==xe&&(Ae[e]=t)}const Re=65536,Be="writable";class Me{constructor(){this.size=0}init(){this.initialized=!0}}class Pe extends Me{get readable(){const e=this,{chunkSize:t=Re}=e,n=new _({start(){this.chunkOffset=0},async pull(r){const{offset:s=0,size:a,diskNumberStart:o}=n,{chunkOffset:c}=this;r.enqueue(await Ze(e,s+c,i.min(t,a-c),o)),c+t>a?r.close():this.chunkOffset+=t}});return n}}class Oe extends Me{constructor(){super();const e=this,t=new D({write:t=>e.writeUint8Array(t)});n.defineProperty(e,Be,{get:()=>t})}writeUint8Array(){}}class Ie extends Pe{constructor(e){super(),n.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const n=this,r=e+t,s=e||r<n.size?n.blob.slice(e,r):n.blob;let a=await s.arrayBuffer();return a.byteLength>t&&(a=a.slice(e,r)),new d(a)}}class Ne extends Me{constructor(e){super();const t=new x,r=[];e&&r.push(["Content-Type",e]),n.defineProperty(this,Be,{get:()=>t.writable}),this.blob=new u(t.readable,{headers:r}).blob()}getData(){return this.blob}}class Ve extends Pe{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:t}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await y.all(t.map(async(n,r)=>{await n.init(),r!=t.length-1&&(e.lastDiskOffset+=n.size),e.size+=n.size})),super.init()}async readUint8Array(e,t,n=0){const r=this,{readers:s}=this;let a,o=n;-1==o&&(o=s.length-1);let c=e;for(;c>=s[o].size;)c-=s[o].size,o++;const l=s[o],u=l.size;if(c+t>u){const s=u-c;a=new d(t),a.set(await Ze(l,c,s)),a.set(await r.readUint8Array(e+s,t-s,n),s)}else a=await Ze(l,c,t);return r.lastDiskNumber=i.max(o,r.lastDiskNumber),a}}class qe extends Me{constructor(e,t=4294967295){super();const r=this;let s,a,i;n.assign(r,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new D({async write(t){const{availableSize:n}=r;if(i)t.length<n?await c(t):(await c(t.slice(0,n)),await l(),r.diskOffset+=s.size,r.diskNumber++,i=null,await this.write(t.slice(n)));else{const{value:n,done:o}=await e.next();if(o&&!n)throw new f("Writer iterator completed too soon");s=n,s.size=0,s.maxSize&&(r.maxSize=s.maxSize),r.availableSize=r.maxSize,await He(s),a=n.writable,i=a.getWriter(),await this.write(t)}},async close(){await i.ready,await l()}});async function c(e){const t=e.length;t&&(await i.ready,await i.write(e),s.size+=t,r.size+=t,r.availableSize-=t)}async function l(){a.size=s.size,await i.close()}n.defineProperty(r,Be,{get:()=>o})}}async function He(e,t){if(!e.init||e.initialized)return y.resolve();await e.init(t)}function Ke(e){return t.isArray(e)&&(e=new Ve(e)),e instanceof _&&(e={readable:e}),e}function Ze(e,t,n,r){return e.readUint8Array(t,n,r)}const je=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;je[e]=t}class Ge{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let n=0,r=0|e.length;r>n;n++)t=t>>>8^je[255&(t^e[n])];this.crc=t}get(){return~this.crc}}class Je extends x{constructor(){let e;const t=new Ge;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new d(4);new g(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}const Qe={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=Qe.getPartial(n);return 32===r?e.concat(t):Qe._shiftRight(t,r,0|n,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+Qe.getPartial(n)},clamp(e,t){if(32*e.length<t)return e;const n=(e=e.slice(0,i.ceil(t/32))).length;return t&=31,n>0&&t&&(e[n-1]=Qe.partial(t,e[n-1]&2147483648>>t-1,1)),e},partial:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,getPartial:e=>i.round(e/1099511627776)||32,_shiftRight(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s<e.length;s++)r.push(n|e[s]>>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,a=Qe.getPartial(s);return r.push(Qe.partial(t+a&31,t+a>32?n:r.pop(),1)),r}},Xe={bytes:{fromBits(e){const t=Qe.bitLength(e)/8,n=new d(t);let r;for(let s=0;t>s;s++)3&s||(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},toBits(e){const t=[];let n,r=0;for(n=0;n<e.length;n++)r=r<<8|e[n],3&~n||(t.push(r),r=0);return 3&n&&t.push(Qe.partial(8*(3&n),r)),t}}},Ye=class{constructor(e){const t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],e?(t._h=e._h.slice(0),t._buffer=e._buffer.slice(0),t._length=e._length):t.reset()}reset(){const e=this;return e._h=e._init.slice(0),e._buffer=[],e._length=0,e}update(e){const t=this;"string"==typeof e&&(e=Xe.utf8String.toBits(e));const n=t._buffer=Qe.concat(t._buffer,e),r=t._length,s=t._length=r+Qe.bitLength(e);if(s>9007199254740991)throw new f("Cannot hash more than 2^53 - 1 bits");const a=new w(n);let i=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);s>=e;e+=t.blockSize)t._block(a.subarray(16*i,16*(i+1))),i+=1;return n.splice(0,16*i),t}finalize(){const e=this;let t=e._buffer;const n=e._h;t=Qe.concat(t,[Qe.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(i.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),n}_f(e,t,n,r){return e>19?e>39?e>59?e>79?void 0:t^n^r:t&n|t&r|n&r:t^n^r:t&n|~t&r}_S(e,t){return t<<e|t>>>32-e}_block(e){const n=this,r=n._h,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let a=r[0],o=r[1],c=r[2],l=r[3],u=r[4];for(let e=0;79>=e;e++){16>e||(s[e]=n._S(1,s[e-3]^s[e-8]^s[e-14]^s[e-16]));const t=n._S(5,a)+n._f(e,o,c,l)+u+s[e]+n._key[i.floor(e/20)]|0;u=l,l=c,c=n._S(30,o),o=a,a=t}r[0]=r[0]+a|0,r[1]=r[1]+o|0,r[2]=r[2]+c|0,r[3]=r[3]+l|0,r[4]=r[4]+u|0}},$e={getRandomValues(e){const t=new w(e.buffer),n=e=>{let t=987654321;const n=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&n,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n)/4294967296+.5)*(i.random()>.5?1:-1))};for(let r,s=0;s<e.length;s+=4){const e=n(4294967296*(r||i.random()));r=987654071*e(),t[s/4]=4294967296*e()|0}return e}},et={importKey:e=>new et.hmacSha1(Xe.bytes.toBits(e)),pbkdf2(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new f("invalid params to pbkdf2");const s=1+(r>>5)<<2;let a,i,o,c,l;const u=new ArrayBuffer(s),h=new g(u);let d=0;const p=Qe;for(t=Xe.bytes.toBits(t),l=1;(s||1)>d;l++){for(a=i=e.encrypt(p.concat(t,[l])),o=1;n>o;o++)for(i=e.encrypt(i),c=0;c<i.length;c++)a[c]^=i[c];for(o=0;(s||1)>d&&o<a.length;o++)h.setInt32(d,a[o]),d+=4}return u.slice(0,r/8)},hmacSha1:class{constructor(e){const t=this,n=t._hash=Ye,r=[[],[]];t._baseHash=[new n,new n];const s=t._baseHash[0].blockSize/32;e.length>s&&(e=(new n).update(e).finalize());for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t._baseHash[0].update(r[0]),t._baseHash[1].update(r[1]),t._resultHash=new n(t._baseHash[0])}reset(){const e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){this._updated=!0,this._resultHash.update(e)}digest(){const e=this,t=e._resultHash.finalize(),n=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),n}encrypt(e){if(this._updated)throw new f("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},tt=typeof S!=_e&&typeof S.getRandomValues==De,nt="Invalid password",rt="Invalid signature",st="zipjs-abort-check-password";function at(e){return tt?S.getRandomValues(e):$e.getRandomValues(e)}const it=16,ot={name:"PBKDF2"},ct=n.assign({hash:{name:"HMAC"}},ot),lt=n.assign({iterations:1e3,hash:{name:"SHA-1"}},ot),ut=["deriveBits"],ht=[8,12,16],ft=[16,24,32],dt=10,pt=[0,0,0,0],wt=typeof S!=_e,gt=wt&&S.subtle,mt=wt&&typeof gt!=_e,yt=Xe.bytes,bt=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const n=t._tables[0][4],r=t._tables[1],s=e.length;let a,i,o,c=1;if(4!==s&&6!==s&&8!==s)throw new f("invalid aes key size");for(t._key=[i=e.slice(0),o=[]],a=s;4*s+28>a;a++){let e=i[a-1];(a%s==0||8===s&&a%s==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],a%s==0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),i[a]=i[a-s]^e}for(let e=0;a;e++,a--){const t=i[3&e?a:a-4];o[e]=4>=a||4>e?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],n=e[4],r=t[4],s=[],a=[];let i,o,c,l;for(let e=0;256>e;e++)a[(s[e]=e<<1^283*(e>>7))^e]=e;for(let u=i=0;!n[u];u^=o||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,n[u]=a,r[a]=u,l=s[c=s[o=s[u]]];let h=16843009*l^65537*c^257*o^16843008*u,f=257*s[a]^16843008*a;for(let n=0;4>n;n++)e[n][u]=f=f<<24^f>>>8,t[n][a]=h=h<<24^h>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}_crypt(e,t){if(4!==e.length)throw new f("invalid aes block size");const n=this._key[t],r=n.length/4-2,s=[0,0,0,0],a=this._tables[t],i=a[0],o=a[1],c=a[2],l=a[3],u=a[4];let h,d,p,w=e[0]^n[0],g=e[t?3:1]^n[1],m=e[2]^n[2],y=e[t?1:3]^n[3],b=4;for(let e=0;r>e;e++)h=i[w>>>24]^o[g>>16&255]^c[m>>8&255]^l[255&y]^n[b],d=i[g>>>24]^o[m>>16&255]^c[y>>8&255]^l[255&w]^n[b+1],p=i[m>>>24]^o[y>>16&255]^c[w>>8&255]^l[255&g]^n[b+2],y=i[y>>>24]^o[w>>16&255]^c[g>>8&255]^l[255&m]^n[b+3],b+=4,w=h,g=d,m=p;for(let e=0;4>e;e++)s[t?3&-e:e]=u[w>>>24]<<24^u[g>>16&255]<<16^u[m>>8&255]<<8^u[255&y]^n[b++],h=w,w=g,g=m,m=y,y=h;return s}},vt=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let r;if(!(r=t.length))return[];const s=Qe.bitLength(t);for(let s=0;r>s;s+=4){this.incCounter(n);const r=e.encrypt(n);t[s]^=r[0],t[s+1]^=r[1],t[s+2]^=r[2],t[s+3]^=r[3]}return Qe.clamp(t,s)}},kt=et.hmacSha1;let St=wt&&mt&&typeof gt.importKey==De,zt=wt&&mt&&typeof gt.deriveBits==De;class xt extends x{constructor({password:e,rawPassword:t,signed:r,encryptionStrength:s,checkPasswordOnly:a}){super({start(){n.assign(this,{ready:new y(e=>this.resolveReady=e),password:Ct(e,t),signed:r,strength:s-1,pending:new d})},async transform(e,t){const n=this,{password:r,strength:s,resolveReady:i,ready:o}=n;r?(await(async(e,t,n,r)=>{const s=await Ft(e,t,n,Wt(r,0,ht[t])),a=Wt(r,ht[t]);if(s[0]!=a[0]||s[1]!=a[1])throw new f(nt)})(n,s,r,Wt(e,0,ht[s]+2)),e=Wt(e,ht[s]+2),a?t.error(new f(st)):i()):await o;const c=new d(e.length-dt-(e.length-dt)%it);t.enqueue(Dt(n,e,c,0,dt,!0))},async flush(e){const{signed:t,ctr:n,hmac:r,pending:s,ready:a}=this;if(r&&n){await a;const i=Wt(s,0,s.length-dt),o=Wt(s,s.length-dt);let c=new d;if(i.length){const e=At(yt,i);r.update(e);const t=n.update(e);c=Ut(yt,t)}if(t){const e=Wt(Ut(yt,r.digest()),0,dt);for(let t=0;dt>t;t++)if(e[t]!=o[t])throw new f(rt)}e.enqueue(c)}}})}}class _t extends x{constructor({password:e,rawPassword:t,encryptionStrength:r}){let s;super({start(){n.assign(this,{ready:new y(e=>this.resolveReady=e),password:Ct(e,t),strength:r-1,pending:new d})},async transform(e,t){const n=this,{password:r,strength:s,resolveReady:a,ready:i}=n;let o=new d;r?(o=await(async(e,t,n)=>{const r=at(new d(ht[t]));return Tt(r,await Ft(e,t,n,r))})(n,s,r),a()):await i;const c=new d(o.length+e.length-e.length%it);c.set(o,0),t.enqueue(Dt(n,e,c,o.length,0))},async flush(e){const{ctr:t,hmac:n,pending:r,ready:a}=this;if(n&&t){await a;let i=new d;if(r.length){const e=t.update(At(yt,r));n.update(e),i=Ut(yt,e)}s.signature=Ut(yt,n.digest()).slice(0,dt),e.enqueue(Tt(i,s.signature))}}}),s=this}}function Dt(e,t,n,r,s,a){const{ctr:i,hmac:o,pending:c}=e,l=t.length-s;let u;for(c.length&&(t=Tt(c,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new d(t)).set(n,0)}return e})(n,l-l%it)),u=0;l-it>=u;u+=it){const e=At(yt,Wt(t,u,u+it));a&&o.update(e);const s=i.update(e);a||o.update(s),n.set(Ut(yt,s),u+r)}return e.pending=Wt(t,u),n}async function Ft(e,r,s,a){e.password=null;const i=await(async(e,t,n,r,s)=>{if(!St)return et.importKey(t);try{return await gt.importKey("raw",t,n,!1,s)}catch(e){return St=!1,et.importKey(t)}})(0,s,ct,0,ut),o=await(async(e,t,n)=>{if(!zt)return et.pbkdf2(t,e.salt,lt.iterations,n);try{return await gt.deriveBits(e,t,n)}catch(r){return zt=!1,et.pbkdf2(t,e.salt,lt.iterations,n)}})(n.assign({salt:a},lt),i,8*(2*ft[r]+2)),c=new d(o),l=At(yt,Wt(c,0,ft[r])),u=At(yt,Wt(c,ft[r],2*ft[r])),h=Wt(c,2*ft[r]);return n.assign(e,{keys:{key:l,authentication:u,passwordVerification:h},ctr:new vt(new bt(l),t.from(pt)),hmac:new kt(u)}),h}function Ct(e,t){return t===xe?(e=>{if(typeof b==_e){const t=new d((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new b).encode(e)})(e):t}function Tt(e,t){let n=e;return e.length+t.length&&(n=new d(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function Wt(e,t,n){return e.subarray(t,n)}function Ut(e,t){return e.fromBits(t)}function At(e,t){return e.toBits(t)}class Lt extends x{constructor({password:e,passwordVerification:t,checkPasswordOnly:r}){super({start(){n.assign(this,{password:e,passwordVerification:t}),Mt(this,e)},transform(e,t){const n=this;if(n.password){const t=Rt(n,e.subarray(0,12));if(n.password=null,t[11]!=n.passwordVerification)throw new f(nt);e=e.subarray(12)}r?t.error(new f(st)):t.enqueue(Rt(n,e))}})}}class Et extends x{constructor({password:e,passwordVerification:t}){super({start(){n.assign(this,{password:e,passwordVerification:t}),Mt(this,e)},transform(e,t){const n=this;let r,s;if(n.password){n.password=null;const t=at(new d(12));t[11]=n.passwordVerification,r=new d(e.length+t.length),r.set(Bt(n,t),0),s=12}else r=new d(e.length),s=0;r.set(Bt(n,e),s),t.enqueue(r)}})}}function Rt(e,t){const n=new d(t.length);for(let r=0;r<t.length;r++)n[r]=Ot(e)^t[r],Pt(e,n[r]);return n}function Bt(e,t){const n=new d(t.length);for(let r=0;r<t.length;r++)n[r]=Ot(e)^t[r],Pt(e,t[r]);return n}function Mt(e,t){const r=[305419896,591751049,878082192];n.assign(e,{keys:r,crcKey0:new Ge(r[0]),crcKey2:new Ge(r[2])});for(let n=0;n<t.length;n++)Pt(e,t.charCodeAt(n))}function Pt(e,t){let[n,r,s]=e.keys;e.crcKey0.append([t]),n=~e.crcKey0.get(),r=Nt(i.imul(Nt(r+It(n)),134775813)+1),e.crcKey2.append([r>>>24]),s=~e.crcKey2.get(),e.keys=[n,r,s]}function Ot(e){const t=2|e.keys[2];return It(i.imul(t,1^t)>>>8)}function It(e){return 255&e}function Nt(e){return 4294967295&e}const Vt="deflate-raw";class qt extends x{constructor(e,{chunkSize:t,CompressionStream:n,CompressionStreamNative:r}){super({});const{compressed:s,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:c,level:l}=e,u=this;let h,f,d=Kt(super.readable);a&&!o||!c||(h=new Je,d=Gt(d,h)),s&&(d=jt(d,i,{level:l,chunkSize:t},r,n)),a&&(o?d=Gt(d,new Et(e)):(f=new _t(e),d=Gt(d,f))),Zt(u,d,()=>{let e;a&&!o&&(e=f.signature),a&&!o||!c||(e=new g(h.value.buffer).getUint32(0)),u.signature=e})}}class Ht extends x{constructor(e,{chunkSize:t,DecompressionStream:n,DecompressionStreamNative:r}){super({});const{zipCrypto:s,encrypted:a,signed:i,signature:o,compressed:c,useCompressionStream:l}=e;let u,h,d=Kt(super.readable);a&&(s?d=Gt(d,new Lt(e)):(h=new xt(e),d=Gt(d,h))),c&&(d=jt(d,l,{chunkSize:t},r,n)),a&&!s||!i||(u=new Je,d=Gt(d,u)),Zt(this,d,()=>{if((!a||s)&&i){const e=new g(u.value.buffer);if(o!=e.getUint32(0,!1))throw new f(rt)}})}}function Kt(e){return Gt(e,new x({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function Zt(e,t,r){t=Gt(t,new x({flush:r})),n.defineProperty(e,"readable",{get:()=>t})}function jt(e,t,n,r,s){try{e=Gt(e,new(t&&r?r:s)(Vt,n))}catch(r){if(!t)return e;try{e=Gt(e,new s(Vt,n))}catch(t){return e}}return e}function Gt(e,t){return e.pipeThrough(t)}const Jt="data",Qt="close",Xt="inflate";class Yt extends x{constructor(e,t){super({});const r=this,{codecType:s}=e;let a;s.startsWith("deflate")?a=qt:s.startsWith(Xt)&&(a=Ht);let i=0,o=0;const c=new a(e,t),l=super.readable,u=new x({transform(e,t){e&&e.length&&(o+=e.length,t.enqueue(e))},flush(){n.assign(r,{inputSize:o})}}),h=new x({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){const{signature:e}=c;n.assign(r,{signature:e,outputSize:i,inputSize:o})}});n.defineProperty(r,"readable",{get:()=>l.pipeThrough(u).pipeThrough(c).pipeThrough(h)})}}class $t extends x{constructor(e){let t;super({transform:function n(r,s){if(t){const e=new d(t.length+r.length);e.set(t),e.set(r,t.length),r=e,t=null}r.length>e?(s.enqueue(r.slice(0,e)),n(r.slice(e),s)):t=r},flush(e){t&&t.length&&e.enqueue(t)}})}}let en=typeof W!=_e;class tn{constructor(e,{readable:t,writable:r},{options:s,config:a,streamOptions:i,useWebWorkers:o,transferStreams:c,scripts:l},u){const{signal:h}=i;return n.assign(e,{busy:!0,readable:t.pipeThrough(new $t(a.chunkSize)).pipeThrough(new nn(t,i),{signal:h}),writable:r,options:n.assign({},s),scripts:l,transferStreams:c,terminate:()=>new y(t=>{const{worker:n,busy:r}=e;n?(r?e.resolveTerminated=t:(n.terminate(),t()),e.interface=null):t()}),onTaskFinished(){const{resolveTerminated:t}=e;t&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),t()),e.busy=!1,u(e)}}),(o&&en?an:sn)(e,a)}}class nn extends x{constructor(e,{onstart:t,onprogress:n,size:r,onend:s}){let a=0;super({async start(){t&&await rn(t,r)},async transform(e,t){a+=e.length,n&&await rn(n,a,r),t.enqueue(e)},async flush(){e.size=a,s&&await rn(s,a)}})}}async function rn(e,...t){try{await e(...t)}catch(e){}}function sn(e,t){return{run:()=>(async({options:e,readable:t,writable:n,onTaskFinished:r},s)=>{try{const r=new Yt(e,s);await t.pipeThrough(r).pipeTo(n,{preventClose:!0,preventAbort:!0});const{signature:a,inputSize:i,outputSize:o}=r;return{signature:a,inputSize:i,outputSize:o}}finally{r()}})(e,t)}}function an(e,t){const{baseURL:r,chunkSize:s}=t;if(!e.interface){let a;try{a=((e,t,r)=>{const s={type:"module"};let a,i;typeof e==De&&(e=e());try{a=new h(e,t)}catch(t){a=e}if(on)try{i=new W(a)}catch(e){on=!1,i=new W(a,s)}else i=new W(a,s);return i.addEventListener("message",e=>(async({data:e},t)=>{const{type:r,value:s,messageId:a,result:i,error:o}=e,{reader:c,writer:l,resolveResult:u,rejectResult:h,onTaskFinished:p}=t;try{if(o){const{message:e,stack:t,code:r,name:s}=o,a=new f(e);n.assign(a,{stack:t,code:r,name:s}),w(a)}else{if("pull"==r){const{value:e,done:n}=await c.read();ln({type:Jt,value:e,done:n,messageId:a},t)}r==Jt&&(await l.ready,await l.write(new d(s)),ln({type:"ack",messageId:a},t)),r==Qt&&w(null,i)}}catch(o){ln({type:Qt,messageId:a},t),w(o)}function w(e,t){e?h(e):u(t),l&&l.releaseLock(),p()}})(e,r)),i})(e.scripts[0],r,e)}catch(n){return en=!1,sn(e,t)}n.assign(e,{worker:a,interface:{run:()=>(async(e,t)=>{let r,s;const a=new y((e,t)=>{r=e,s=t});n.assign(e,{reader:null,writer:null,resolveResult:r,rejectResult:s,result:a});const{readable:i,options:o,scripts:c}=e,{writable:l,closed:u}=(e=>{let t;const n=new y(e=>t=e);return{writable:new D({async write(t){const n=e.getWriter();await n.ready,await n.write(t),n.releaseLock()},close(){t()},abort:t=>e.getWriter().abort(t)}),closed:n}})(e.writable),h=ln({type:"start",scripts:c.slice(1),options:o,config:t,readable:i,writable:l},e);h||n.assign(e,{reader:i.getReader(),writer:l.getWriter()});const f=await a;return h||await l.getWriter().close(),await u,f})(e,{chunkSize:s})}})}return e.interface}let on=!0,cn=!0;function ln(e,{worker:t,writer:n,onTaskFinished:r,transferStreams:s}){try{let{value:r,readable:a,writable:i}=e;const o=[];if(r&&(r.byteLength<r.buffer.byteLength?e.value=r.buffer.slice(0,r.byteLength):e.value=r.buffer,o.push(e.value)),s&&cn?(a&&o.push(a),i&&o.push(i)):e.readable=e.writable=null,o.length)try{return t.postMessage(e,o),!0}catch(n){cn=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw n&&n.releaseLock(),r(),e}}let un=[];const hn=[];let fn=0;function dn(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const pn="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split(""),wn=256==pn.length;function gn(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{if(wn){let t="";for(let n=0;n<e.length;n++)t+=pn[e[n]];return t}return(new v).decode(e)})(e):new v(t).decode(e)}const mn="filename",yn="rawFilename",bn="comment",vn="rawComment",kn="uncompressedSize",Sn="compressedSize",zn="offset",xn="diskNumberStart",_n="lastModDate",Dn="rawLastModDate",Fn="lastAccessDate",Cn="creationDate",Tn=[mn,yn,Sn,kn,_n,Dn,bn,vn,Fn,Cn,zn,xn,xn,"internalFileAttribute","externalFileAttribute","msDosCompatible","zip64","directory","bitFlag","encrypted","signature","filenameUTF8","commentUTF8","compressionMethod","version","versionMadeBy","extraField","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Wn{constructor(e){Tn.forEach(t=>this[t]=e[t])}}const Un="File format is not recognized",An="Compression method not supported",Ln="Split zip file",En="utf-8",Rn="cp437",Bn=[[kn,ve],[Sn,ve],[zn,ve],[xn,ke]],Mn={[ke]:{getValue:jn,bytes:4},[ve]:{getValue:Gn,bytes:8}};class Pn{constructor(e,t,r){n.assign(this,{reader:e,config:t,options:r})}async getData(e,t,r={}){const a=this,{reader:i,offset:o,diskNumberStart:c,extraFieldAES:l,compressionMethod:u,config:h,bitFlag:p,signature:w,rawLastModDate:g,uncompressedSize:m,compressedSize:b}=a,v=t.localDirectory={},k=Jn(await Ze(i,o,30,c));let S=Vn(a,r,"password"),z=Vn(a,r,"rawPassword");if(S=S&&S.length&&S,z=z&&z.length&&z,l&&99!=l.originalCompressionMethod)throw new f(An);if(0!=u&&8!=u)throw new f(An);if(67324752!=jn(k,0))throw new f("Local file header not found");On(v,k,4),v.rawExtraField=v.extraFieldLength?await Ze(i,o+30+v.filenameLength,v.extraFieldLength,c):new d,await In(a,v,k,4,!0),n.assign(t,{lastAccessDate:v.lastAccessDate,creationDate:v.creationDate});const x=a.encrypted&&v.encrypted,_=x&&!l;if(x){if(!_&&l.strength===xe)throw new f("Encryption method not supported");if(!S&&!z)throw new f("File contains encrypted entry")}const F=o+30+v.filenameLength+v.extraFieldLength,C=b,T=i.readable;n.assign(T,{diskNumberStart:c,offset:F,size:C});const W=Vn(a,r,"signal"),U=Vn(a,r,"checkPasswordOnly");U&&(e=new D),e=(e=>{e.writable===xe&&typeof e.next==De&&(e=new qe(e)),e instanceof D&&(e={writable:e});const{writable:t}=e;return t.size===xe&&(t.size=0),e instanceof qe||n.assign(e,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),e})(e),await He(e,m);const{writable:A}=e,{onstart:L,onprogress:E,onend:R}=r,B={options:{codecType:Xt,password:S,rawPassword:z,zipCrypto:_,encryptionStrength:l&&l.strength,signed:Vn(a,r,"checkSignature"),passwordVerification:_&&(p.dataDescriptor?g>>>8&255:w>>>24&255),signature:w,compressed:0!=u,encrypted:x,useWebWorkers:Vn(a,r,"useWebWorkers"),useCompressionStream:Vn(a,r,"useCompressionStream"),transferStreams:Vn(a,r,"transferStreams"),checkPasswordOnly:U},config:h,streamOptions:{signal:W,size:C,onstart:L,onprogress:E,onend:R}};let M=0;try{({outputSize:M}=await(async(e,t)=>{const{options:n,config:r}=t,{transferStreams:a,useWebWorkers:i,useCompressionStream:o,codecType:c,compressed:l,signed:u,encrypted:h}=n,{workerScripts:f,maxWorkers:d}=r;t.transferStreams=a||a===xe;const p=!(l||u||h||t.transferStreams);return t.useWebWorkers=!p&&(i||i===xe&&r.useWebWorkers),t.scripts=t.useWebWorkers&&f?f[c]:[],n.useCompressionStream=o||o===xe&&r.useCompressionStream,(await(async()=>{const n=un.find(e=>!e.busy);if(n)return dn(n),new tn(n,e,t,w);if(un.length<d){const n={indexWorker:fn};return fn++,un.push(n),new tn(n,e,t,w)}return new y(n=>hn.push({resolve:n,stream:e,workerOptions:t}))})()).run();function w(e){if(hn.length){const[{resolve:t,stream:n,workerOptions:r}]=hn.splice(0,1);t(new tn(e,n,r,w))}else e.worker?(dn(e),((e,t)=>{const{config:n}=t,{terminateWorkerTimeout:r}=n;s.isFinite(r)&&r>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{un=un.filter(t=>t!=e);try{await e.terminate()}catch(e){}},r))})(e,t)):un=un.filter(t=>t!=e)}})({readable:T,writable:A},B))}catch(e){if(!U||e.message!=st)throw e}finally{const e=Vn(a,r,"preventClose");A.size+=M,e||A.locked||await A.getWriter().close()}return U?xe:e.getData?e.getData():A}}function On(e,t,r){const s=e.rawBitFlag=Zn(t,r+2),a=!(1&~s),i=jn(t,r+6);n.assign(e,{encrypted:a,version:Zn(t,r),bitFlag:{level:(6&s)>>1,dataDescriptor:!(8&~s),languageEncodingFlag:!(2048&~s)},rawLastModDate:i,lastModDate:qn(i),filenameLength:Zn(t,r+22),extraFieldLength:Zn(t,r+24)})}async function In(e,t,r,s,a){const{rawExtraField:i}=t,l=t.extraField=new c,u=Jn(new d(i));let h=0;try{for(;h<i.length;){const e=Zn(u,h),t=Zn(u,h+2);l.set(e,{type:e,data:i.slice(h+4,h+4+t)}),h+=4+t}}catch(e){}const p=Zn(r,s+4);n.assign(t,{signature:jn(r,s+10),uncompressedSize:jn(r,s+18),compressedSize:jn(r,s+14)});const w=l.get(1);w&&(((e,t)=>{t.zip64=!0;const n=Jn(e.data),r=Bn.filter(([e,n])=>t[e]==n);for(let s=0,a=0;s<r.length;s++){const[i,o]=r[s];if(t[i]==o){const r=Mn[o];t[i]=e[i]=r.getValue(n,a),a+=r.bytes}else if(e[i])throw new f("Zip64 extra field not found")}})(w,t),t.extraFieldZip64=w);const g=l.get(28789);g&&(await Nn(g,mn,yn,t,e),t.extraFieldUnicodePath=g);const m=l.get(25461);m&&(await Nn(m,bn,vn,t,e),t.extraFieldUnicodeComment=m);const y=l.get(39169);y?(((e,t,r)=>{const s=Jn(e.data),a=Kn(s,4);n.assign(e,{vendorVersion:Kn(s,0),vendorId:Kn(s,2),strength:a,originalCompressionMethod:r,compressionMethod:Zn(s,5)}),t.compressionMethod=e.compressionMethod})(y,t,p),t.extraFieldAES=y):t.compressionMethod=p;const b=l.get(10);b&&(((e,t)=>{const r=Jn(e.data);let s,a=4;try{for(;a<e.data.length&&!s;){const t=Zn(r,a),n=Zn(r,a+2);1==t&&(s=e.data.slice(a+4,a+4+n)),a+=4+n}}catch(e){}try{if(s&&24==s.length){const r=Jn(s),a=r.getBigUint64(0,!0),i=r.getBigUint64(8,!0),o=r.getBigUint64(16,!0);n.assign(e,{rawLastModDate:a,rawLastAccessDate:i,rawCreationDate:o});const c={lastModDate:Hn(a),lastAccessDate:Hn(i),creationDate:Hn(o)};n.assign(e,c),n.assign(t,c)}}catch(e){}})(b,t),t.extraFieldNTFS=b);const v=l.get(21589);v&&(((e,t,n)=>{const r=Jn(e.data),s=Kn(r,0),a=[],i=[];n?(1&~s||(a.push(_n),i.push(Dn)),2&~s||(a.push(Fn),i.push("rawLastAccessDate")),4&~s||(a.push(Cn),i.push("rawCreationDate"))):5>e.data.length||(a.push(_n),i.push(Dn));let c=1;a.forEach((n,s)=>{if(e.data.length>=c+4){const a=jn(r,c);t[n]=e[n]=new o(1e3*a);const l=i[s];e[l]=a}c+=4})})(v,t,a),t.extraFieldExtendedTimestamp=v);const k=l.get(6534);k&&(t.extraFieldUSDZ=k)}async function Nn(e,t,r,s,a){const i=Jn(e.data),o=new Ge;o.append(a[r]);const c=Jn(new d(4));c.setUint32(0,o.get(),!0);const l=jn(i,1);n.assign(e,{version:Kn(i,0),[t]:gn(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==jn(c,0)}),e.valid&&(s[t]=e[t],s[t+"UTF8"]=!0)}function Vn(e,t,n){return t[n]===xe?e.options[n]:t[n]}function qn(e){const t=(4294901760&e)>>16,n=65535&e;try{return new o(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&n)>>11,(2016&n)>>5,2*(31&n),0)}catch(e){}}function Hn(e){return new o(s(e/a(1e4)-a(116444736e5)))}function Kn(e,t){return e.getUint8(t)}function Zn(e,t){return e.getUint16(t,!0)}function jn(e,t){return e.getUint32(t,!0)}function Gn(e,t){return s(e.getBigUint64(t,!0))}function Jn(e){return new g(e.buffer)}Le({Inflate:Ce}),e.BlobReader=Ie,e.BlobWriter=Ne,e.Data64URIWriter=class extends Oe{constructor(e){super(),n.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let n=0,s=t.pending;const a=t.pending.length;for(t.pending="",n=0;n<3*i.floor((a+e.length)/3)-a;n++)s+=r.fromCharCode(e[n]);for(;n<e.length;n++)t.pending+=r.fromCharCode(e[n]);s.length>2?t.data+=z(s):t.pending=s}getData(){return this.data+z(this.pending)}},e.TextWriter=class extends Ne{constructor(e){super(e),n.assign(this,{encoding:e,utf8:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,utf8:t}=this,r=await super.getData();if(r.text&&t)return r.text();{const t=new FileReader;return new y((s,a)=>{n.assign(t,{onload:({target:e})=>s(e.result),onerror:()=>a(t.error)}),t.readAsText(r,e)})}}},e.ZipReader=class{constructor(e,t={}){n.assign(this,{reader:Ke(e),options:t,config:Ae})}async*getEntriesGenerator(e={}){const t=this;let{reader:r}=t;const{config:s}=t;if(await He(r),r.size!==xe&&r.readUint8Array||(r=new Ie(await new u(r.readable).blob()),await He(r)),22>r.size)throw new f(Un);r.chunkSize=(e=>i.max(e.chunkSize,64))(s);const a=await(async(e,t,n)=>{const r=new d(4);return Jn(r).setUint32(0,101010256,!0),await s(22)||await s(i.min(1048582,n));async function s(t){const s=n-t,a=await Ze(e,s,t);for(let e=a.length-22;e>=0;e--)if(a[e]==r[0]&&a[e+1]==r[1]&&a[e+2]==r[2]&&a[e+3]==r[3])return{offset:s+e,buffer:a.slice(e,e+22).buffer}}})(r,0,r.size);if(!a)throw 134695760==jn(Jn(await Ze(r,0,4)))?new f(Ln):new f("End of central directory not found");const o=Jn(a);let c=jn(o,12),l=jn(o,16);const h=a.offset,p=Zn(o,20),w=h+22+p;let g=Zn(o,4);const m=r.lastDiskNumber||0;let y=Zn(o,6),b=Zn(o,8),v=0,k=0;if(l==ve||c==ve||b==ke||y==ke){const e=Jn(await Ze(r,a.offset-20,20));if(117853008==jn(e,0)){l=Gn(e,8);let t=await Ze(r,l,56,-1),n=Jn(t);const s=a.offset-20-56;if(jn(n,0)!=ze&&l!=s){const e=l;l=s,v=l-e,t=await Ze(r,l,56,-1),n=Jn(t)}if(jn(n,0)!=ze)throw new f("End of Zip64 central directory locator not found");g==ke&&(g=jn(n,16)),y==ke&&(y=jn(n,20)),b==ke&&(b=Gn(n,32)),c==ve&&(c=Gn(n,40)),l-=c}}if(l<r.size||(v=r.size-l-c-22,l=r.size-c-22),m!=g)throw new f(Ln);if(0>l)throw new f(Un);let S=0,z=await Ze(r,l,c,y),x=Jn(z);if(c){const e=a.offset-c;if(jn(x,S)!=Se&&l!=e){const t=l;l=e,v+=l-t,z=await Ze(r,l,c,y),x=Jn(z)}}const _=a.offset-l-(r.lastDiskOffset||0);if(c==_||0>_||(c=_,z=await Ze(r,l,c,y),x=Jn(z)),0>l||l>=r.size)throw new f(Un);const D=Vn(t,e,"filenameEncoding"),F=Vn(t,e,"commentEncoding");for(let a=0;b>a;a++){const o=new Pn(r,s,t.options);if(jn(x,S)!=Se)throw new f("Central directory header not found");On(o,x,S+6);const c=!!o.bitFlag.languageEncodingFlag,l=S+46,u=l+o.filenameLength,h=u+o.extraFieldLength,d=Zn(x,S+4),p=!0,w=z.subarray(l,u),g=Zn(x,S+32),m=h+g,y=z.subarray(h,m),_=c,C=c,T=!(16&~Kn(x,S+38)),W=jn(x,S+42)+v;n.assign(o,{versionMadeBy:d,msDosCompatible:p,compressedSize:0,uncompressedSize:0,commentLength:g,directory:T,offset:W,diskNumberStart:Zn(x,S+34),internalFileAttribute:Zn(x,S+36),externalFileAttribute:jn(x,S+38),rawFilename:w,filenameUTF8:_,commentUTF8:C,rawExtraField:z.subarray(u,h)});const U=Vn(t,e,"decodeText")||gn,A=_?En:D||Rn,L=C?En:F||Rn;let E=U(w,A);E===xe&&(E=gn(w,A));let R=U(y,L);R===xe&&(R=gn(y,L)),n.assign(o,{rawComment:y,filename:E,comment:R,directory:T||E.endsWith("/")}),k=i.max(W,k),await In(o,o,x,S+6);const B=new Wn(o);B.getData=(e,t)=>o.getData(e,B,t),S=m;const{onprogress:M}=e;if(M)try{await M(a+1,b,new Wn(o))}catch(e){}yield B}const C=Vn(t,e,"extractPrependedData"),T=Vn(t,e,"extractAppendedData");return C&&(t.prependedData=k>0?await Ze(r,0,k):new d),t.comment=p?await Ze(r,h+22,p):new d,T&&(t.appendedData=w<r.size?await Ze(r,w,r.size-w):new d),!0}async getEntries(e={}){const t=[];for await(const n of this.getEntriesGenerator(e))t.push(n);return t}async close(){}},e.configure=Le},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={});