const e=15,t=256,n=573,i=256,r=-1,s=0,a=4,o=0,c=1,l=-2,d=-5;function f(e){return u(e.map((([e,t])=>new Array(e).fill(t,0,e))))}function u(e){return e.reduce(((e,t)=>e.concat(Array.isArray(t)?u(t):t)),[])}const m=[0,1,2,3].concat(...f([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function p(){const t=this;function i(e,t){let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}t.build_tree=function(r){const s=t.dyn_tree,a=t.stat_desc.static_tree,o=t.stat_desc.elems;let c,l,d,f=-1;for(r.heap_len=0,r.heap_max=n,c=0;c=1;c--)r.pqdownheap(s,c);d=o;do{c=r.heap[1],r.heap[1]=r.heap[r.heap_len--],r.pqdownheap(s,1),l=r.heap[1],r.heap[--r.heap_max]=c,r.heap[--r.heap_max]=l,s[2*d]=s[2*c]+s[2*l],r.depth[d]=Math.max(r.depth[c],r.depth[l])+1,s[2*c+1]=s[2*l+1]=d,r.heap[1]=d++,r.pqdownheap(s,1)}while(r.heap_len>=2);r.heap[--r.heap_max]=r.heap[1],function(i){const r=t.dyn_tree,s=t.stat_desc.static_tree,a=t.stat_desc.extra_bits,o=t.stat_desc.extra_base,c=t.stat_desc.max_length;let l,d,f,u,m,p,h=0;for(u=0;u<=e;u++)i.bl_count[u]=0;for(r[2*i.heap[i.heap_max]+1]=0,l=i.heap_max+1;lc&&(u=c,h++),r[2*d+1]=u,d>t.max_code||(i.bl_count[u]++,m=0,d>=o&&(m=a[d-o]),p=r[2*d],i.opt_len+=p*(u+m),s&&(i.static_len+=p*(s[2*d+1]+m)));if(0!==h){do{for(u=c-1;0===i.bl_count[u];)u--;i.bl_count[u]--,i.bl_count[u+1]+=2,i.bl_count[c]--,h-=2}while(h>0);for(u=c;0!==u;u--)for(d=i.bl_count[u];0!==d;)f=i.heap[--l],f>t.max_code||(r[2*f+1]!=u&&(i.opt_len+=(u-r[2*f+1])*r[2*f],r[2*f+1]=u),d--)}}(r),function(t,n,r){const s=[];let a,o,c,l=0;for(a=1;a<=e;a++)s[a]=l=l+r[a-1]<<1;for(o=0;o<=n;o++)c=t[2*o+1],0!==c&&(t[2*o]=i(s[c]++,c))}(s,t.max_code,r.bl_count)}}function h(e,t,n,i,r){const s=this;s.static_tree=e,s.extra_bits=t,s.extra_base=n,s.elems=i,s.max_length=r}p._length_code=[0,1,2,3,4,5,6,7].concat(...f([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),p.base_length=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],p.base_dist=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],p.d_code=function(e){return e<256?m[e]:m[256+(e>>>7)]},p.extra_lbits=[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],p.extra_dbits=[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],p.extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],p.bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const w=f([[144,8],[112,9],[24,7],[8,8]]);h.static_ltree=u([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((e,t)=>[e,w[t]])));const g=f([[30,5]]);h.static_dtree=u([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((e,t)=>[e,g[t]]))),h.static_l_desc=new h(h.static_ltree,p.extra_lbits,257,286,e),h.static_d_desc=new h(h.static_dtree,p.extra_dbits,0,30,e),h.static_bl_desc=new h(null,p.extra_blbits,0,19,7);function x(e,t,n,i,r){const s=this;s.good_length=e,s.max_lazy=t,s.nice_length=n,s.max_chain=i,s.func=r}const b=[new x(0,0,0,0,0),new x(4,4,8,4,1),new x(4,5,16,8,1),new x(4,6,32,32,1),new x(4,4,16,16,2),new x(8,16,32,32,2),new x(8,16,128,128,2),new x(8,32,128,256,2),new x(32,128,258,1024,2),new x(32,258,258,4096,2)],v=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],y=113,_=666,k=258,S=262;function z(e,t,n,i){const r=e[2*t],s=e[2*n];return r>>8&255)}function fe(e,t){let n;const i=t;ae>16-i?(n=e,se|=n<>>16-ae,ae+=i-16):(se|=e<=8&&(le(255&se),se>>>=8,ae-=8)}function he(n,i){let r,s,a;if(e.dist_buf[ne]=n,e.lc_buf[ne]=255&i,ne++,0===n?Z[2*i]++:(ie++,n--,Z[2*(p._length_code[i]+t+1)]++,H[2*p.d_code(n)]++),0==(8191&ne)&&P>2){for(r=8*ne,s=I-D,a=0;a<30;a++)r+=H[2*a]*(5+p.extra_dbits[a]);if(r>>>=3,ie8?de(se):ae>0&&le(255&se),se=0,ae=0}function xe(t,n,i){fe(0+(i?1:0),3),function(t,n,i){ge(),re=8,i&&(de(n),de(~n)),e.pending_buf.set(C.subarray(t,t+n),e.pending),e.pending+=n}(t,n,!0)}function be(t,n,i){let r,s,a=0;P>0?(J.build_tree(e),Q.build_tree(e),a=function(){let t;for(ce(Z,J.max_code),ce(H,Q.max_code),ee.build_tree(e),t=18;t>=3&&0===G[2*p.bl_order[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(),r=e.opt_len+3+7>>>3,s=e.static_len+3+7>>>3,s<=r&&(r=s)):r=s=n+5,n+4<=r&&-1!=t?xe(t,n,i):s==r?(fe(2+(i?1:0),3),we(h.static_ltree,h.static_dtree)):(fe(4+(i?1:0),3),function(e,t,n){let i;for(fe(e-257,5),fe(t-1,5),fe(n-4,4),i=0;i=0?D:-1,I-D,e),D=I,n.flush_pending()}function ye(){let e,t,i,r;do{if(r=A-B-I,0===r&&0===I&&0===B)r=w;else if(-1==r)r--;else if(I>=w+w-S){C.set(C.subarray(w,w+w),0),T-=w,I-=w,D-=w,e=q,i=e;do{t=65535&W[--i],W[i]=t>=w?t-w:0}while(0!=--e);e=w,i=e;do{t=65535&U[--i],U[i]=t>=w?t-w:0}while(0!=--e);r+=w}if(0===n.avail_in)return;e=n.read_buf(C,I+B,r),B+=e,B>=3&&(F=255&C[I],F=(F<<$^255&C[I+1])&E)}while(Bw-S?I-(w-S):0;let o=X;const c=x,l=I+k;let d=C[r+s-1],f=C[r+s];V>=Y&&(i>>=2),o>B&&(o=B);do{if(t=e,C[t+s]==f&&C[t+s-1]==d&&C[t]==C[r]&&C[++t]==C[r+1]){r+=2,t++;do{}while(C[++r]==C[++t]&&C[++r]==C[++t]&&C[++r]==C[++t]&&C[++r]==C[++t]&&C[++r]==C[++t]&&C[++r]==C[++t]&&C[++r]==C[++t]&&C[++r]==C[++t]&&rs){if(T=e,s=n,n>=o)break;d=C[r+s-1],f=C[r+s]}}}while((e=65535&U[e&c])>a&&0!=--i);return s<=B?s:B}function ke(t){return t.total_in=t.total_out=0,t.msg=null,e.pending=0,e.pending_out=0,f=y,m=s,J.dyn_tree=Z,J.stat_desc=h.static_l_desc,Q.dyn_tree=H,Q.stat_desc=h.static_d_desc,ee.dyn_tree=G,ee.stat_desc=h.static_bl_desc,se=0,ae=0,re=8,oe(),function(){A=2*w,W[q-1]=0;for(let e=0;e9||8!=s||i<9||i>15||n<0||n>9||o<0||o>2?l:(t.dstate=e,g=i,w=1<9||n<0||n>2?l:(b[P].func!=b[t].func&&0!==e.total_in&&(i=e.deflate(1)),P!=t&&(P=t,K=b[P].max_lazy,Y=b[P].good_length,X=b[P].nice_length,M=b[P].max_chain),N=n,i)},e.deflateSetDictionary=function(e,t,n){let i,r=n,s=0;if(!t||42!=f)return l;if(r<3)return o;for(r>w-S&&(r=w-S,s=n-r),C.set(t.subarray(s,s+r),0),I=r,D=r,F=255&C[0],F=(F<<$^255&C[1])&E,i=0;i<=r-3;i++)F=(F<<$^255&C[i+2])&E,U[i&x]=W[F],W[F]=i;return o},e.deflate=function(t,r){let p,k,z,A,j;if(r>a||r<0)return l;if(!t.next_out||!t.next_in&&0!==t.avail_in||f==_&&r!=a)return t.msg=v[2-l],l;if(0===t.avail_out)return t.msg=v[7],d;var M;if(n=t,A=m,m=r,42==f&&(k=8+(g-8<<4)<<8,z=(P-1&255)>>1,z>3&&(z=3),k|=z<<6,0!==I&&(k|=32),k+=31-k%31,f=y,le((M=k)>>8&255),le(255&M)),0!==e.pending){if(n.flush_pending(),0===n.avail_out)return m=-1,o}else if(0===n.avail_in&&r<=A&&r!=a)return n.msg=v[7],d;if(f==_&&0!==n.avail_in)return t.msg=v[7],d;if(0!==n.avail_in||0!==B||r!=s&&f!=_){switch(j=-1,b[P].func){case 0:j=function(e){let t,i=65535;for(i>u-5&&(i=u-5);;){if(B<=1){if(ye(),0===B&&e==s)return 0;if(0===B)break}if(I+=B,B=0,t=D+i,(0===I||I>=t)&&(B=I-t,I=t,ve(!1),0===n.avail_out))return 0;if(I-D>=w-S&&(ve(!1),0===n.avail_out))return 0}return ve(e==a),0===n.avail_out?e==a?2:0:e==a?3:1}(r);break;case 1:j=function(e){let t,i=0;for(;;){if(B=3&&(F=(F<<$^255&C[I+2])&E,i=65535&W[F],U[I&x]=W[F],W[F]=I),0!==i&&(I-i&65535)<=w-S&&2!=N&&(L=_e(i)),L>=3)if(t=he(I-T,L-3),B-=L,L<=K&&B>=3){L--;do{I++,F=(F<<$^255&C[I+2])&E,i=65535&W[F],U[I&x]=W[F],W[F]=I}while(0!=--L);I++}else I+=L,L=0,F=255&C[I],F=(F<<$^255&C[I+1])&E;else t=he(0,255&C[I]),B--,I++;if(t&&(ve(!1),0===n.avail_out))return 0}return ve(e==a),0===n.avail_out?e==a?2:0:e==a?3:1}(r);break;case 2:j=function(e){let t,i,r=0;for(;;){if(B=3&&(F=(F<<$^255&C[I+2])&E,r=65535&W[F],U[I&x]=W[F],W[F]=I),V=L,O=T,L=2,0!==r&&V4096)&&(L=2)),V>=3&&L<=V){i=I+B-3,t=he(I-1-O,V-3),B-=V-1,V-=2;do{++I<=i&&(F=(F<<$^255&C[I+2])&E,r=65535&W[F],U[I&x]=W[F],W[F]=I)}while(0!=--V);if(R=0,L=2,I++,t&&(ve(!1),0===n.avail_out))return 0}else if(0!==R){if(t=he(0,255&C[I-1]),t&&ve(!1),I++,B--,0===n.avail_out)return 0}else R=1,I++,B--}return 0!==R&&(t=he(0,255&C[I-1]),R=0),ve(e==a),0===n.avail_out?e==a?2:0:e==a?3:1}(r)}if(2!=j&&3!=j||(f=_),0==j||2==j)return 0===n.avail_out&&(m=-1),o;if(1==j){if(1==r)fe(2,3),ue(i,h.static_ltree),pe(),1+re+10-ae<9&&(fe(2,3),ue(i,h.static_ltree),pe()),re=7;else if(xe(0,0,!1),3==r)for(p=0;pn&&(r=n),0===r?0:(i.avail_in-=r,e.set(i.next_in.subarray(i.next_in_index,i.next_in_index+r),t),i.next_in_index+=r,i.total_in+=r,r)},flush_pending(){const e=this;let t=e.dstate.pending;t>e.avail_out&&(t=e.avail_out),0!==t&&(e.next_out.set(e.dstate.pending_buf.subarray(e.dstate.pending_out,e.dstate.pending_out+t),e.next_out_index),e.next_out_index+=t,e.dstate.pending_out+=t,e.total_out+=t,e.avail_out-=t,e.dstate.pending-=t,0===e.dstate.pending&&(e.dstate.pending_out=0))}};const U=0,W=1,F=-2,q=-3,j=-4,E=-5,$=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],D=1440,L=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],O=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],R=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],I=[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,112,112],T=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],B=[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],V=15;function M(){let e,t,n,i,r,s;function a(e,t,a,o,c,l,d,f,u,m,p){let h,w,g,x,b,v,y,_,k,S,z,C,A,W,F;S=0,b=a;do{n[e[t+S]]++,S++,b--}while(0!==b);if(n[0]==a)return d[0]=-1,f[0]=0,U;for(_=f[0],v=1;v<=V&&0===n[v];v++);for(y=v,_b&&(_=b),f[0]=_,W=1<C+_;){if(x++,C+=_,F=g-C,F=F>_?_:F,(w=1<<(v=y-C))>h+1&&(w-=h+1,A=y,vD)return q;r[x]=z=m[0],m[0]+=F,0!==x?(s[x]=b,i[0]=v,i[1]=_,v=b>>>C-_,i[2]=z-r[x-1]-v,u.set(i,3*(r[x-1]+v))):d[0]=z}for(i[1]=y-C,S>=a?i[0]=192:p[S]>>C;v>>=1)b^=v;for(b^=v,k=(1<257?(m==q?u.msg="oversubscribed distance tree":m==E?(u.msg="incomplete distance tree",m=q):m!=j&&(u.msg="empty distance tree with lengths",m=q),m):U)}}M.inflate_trees_fixed=function(e,t,n,i){return e[0]=9,t[0]=5,n[0]=L,i[0]=O,U};const K=0,P=1,N=2,Y=3,X=4,Z=5,H=6,G=7,J=8,Q=9;function ee(){const e=this;let t,n,i,r,s=0,a=0,o=0,c=0,l=0,d=0,f=0,u=0,m=0,p=0;function h(e,t,n,i,r,s,a,o){let c,l,d,f,u,m,p,h,w,g,x,b,v,y,_,k;p=o.next_in_index,h=o.avail_in,u=a.bitb,m=a.bitk,w=a.write,g=w>=l[k+1],m-=l[k+1],0!=(16&f)){for(f&=15,v=l[k+2]+(u&$[f]),u>>=f,m-=f;m<15;)h--,u|=(255&o.read_byte(p++))<>=l[k+1],m-=l[k+1],0!=(16&f)){for(f&=15;m>=f,m-=f,g-=v,w>=y)_=w-y,w-_>0&&2>w-_?(a.win[w++]=a.win[_++],a.win[w++]=a.win[_++],v-=2):(a.win.set(a.win.subarray(_,_+2),w),w+=2,_+=2,v-=2);else{_=w-y;do{_+=a.end}while(_<0);if(f=a.end-_,v>f){if(v-=f,w-_>0&&f>w-_)do{a.win[w++]=a.win[_++]}while(0!=--f);else a.win.set(a.win.subarray(_,_+f),w),w+=f,_+=f,f=0;_=0}}if(w-_>0&&v>w-_)do{a.win[w++]=a.win[_++]}while(0!=--v);else a.win.set(a.win.subarray(_,_+v),w),w+=v,_+=v,v=0;break}if(0!=(64&f))return o.msg="invalid distance code",v=o.avail_in-h,v=m>>3>3:v,h+=v,p-=v,m-=v<<3,a.bitb=u,a.bitk=m,o.avail_in=h,o.total_in+=p-o.next_in_index,o.next_in_index=p,a.write=w,q;c+=l[k+2],c+=u&$[f],k=3*(d+c),f=l[k]}break}if(0!=(64&f))return 0!=(32&f)?(v=o.avail_in-h,v=m>>3>3:v,h+=v,p-=v,m-=v<<3,a.bitb=u,a.bitk=m,o.avail_in=h,o.total_in+=p-o.next_in_index,o.next_in_index=p,a.write=w,W):(o.msg="invalid literal/length code",v=o.avail_in-h,v=m>>3>3:v,h+=v,p-=v,m-=v<<3,a.bitb=u,a.bitk=m,o.avail_in=h,o.total_in+=p-o.next_in_index,o.next_in_index=p,a.write=w,q);if(c+=l[k+2],c+=u&$[f],k=3*(d+c),0===(f=l[k])){u>>=l[k+1],m-=l[k+1],a.win[w++]=l[k+2],g--;break}}else u>>=l[k+1],m-=l[k+1],a.win[w++]=l[k+2],g--}while(g>=258&&h>=10);return v=o.avail_in-h,v=m>>3>3:v,h+=v,p-=v,m-=v<<3,a.bitb=u,a.bitk=m,o.avail_in=h,o.total_in+=p-o.next_in_index,o.next_in_index=p,a.write=w,U}e.init=function(e,s,a,o,c,l){t=K,f=e,u=s,i=a,m=o,r=c,p=l,n=null},e.proc=function(e,w,g){let x,b,v,y,_,k,S,z=0,C=0,A=0;for(A=w.next_in_index,y=w.avail_in,z=e.bitb,C=e.bitk,_=e.write,k=_=258&&y>=10&&(e.bitb=z,e.bitk=C,w.avail_in=y,w.total_in+=A-w.next_in_index,w.next_in_index=A,e.write=_,g=h(f,u,i,m,r,p,e,w),A=w.next_in_index,y=w.avail_in,z=e.bitb,C=e.bitk,_=e.write,k=_>>=n[b+1],C-=n[b+1],v=n[b],0===v){c=n[b+2],t=H;break}if(0!=(16&v)){l=15&v,s=n[b+2],t=N;break}if(0==(64&v)){o=v,a=b/3+n[b+2];break}if(0!=(32&v)){t=G;break}return t=Q,w.msg="invalid literal/length code",g=q,e.bitb=z,e.bitk=C,w.avail_in=y,w.total_in+=A-w.next_in_index,w.next_in_index=A,e.write=_,e.inflate_flush(w,g);case N:for(x=l;C>=x,C-=x,o=u,n=r,a=p,t=Y;case Y:for(x=o;C>=n[b+1],C-=n[b+1],v=n[b],0!=(16&v)){l=15&v,d=n[b+2],t=X;break}if(0==(64&v)){o=v,a=b/3+n[b+2];break}return t=Q,w.msg="invalid distance code",g=q,e.bitb=z,e.bitk=C,w.avail_in=y,w.total_in+=A-w.next_in_index,w.next_in_index=A,e.write=_,e.inflate_flush(w,g);case X:for(x=l;C>=x,C-=x,t=Z;case Z:for(S=_-d;S<0;)S+=e.end;for(;0!==s;){if(0===k&&(_==e.end&&0!==e.read&&(_=0,k=_7&&(C-=8,y++,A--),e.write=_,g=e.inflate_flush(w,g),_=e.write,k=_e.avail_out&&(i=e.avail_out),0!==i&&t==E&&(t=U),e.avail_out-=i,e.total_out+=i,e.next_out.set(n.win.subarray(s,s+i),r),r+=i,s+=i,s==n.end&&(s=0,n.write==n.end&&(n.write=0),i=n.write-s,i>e.avail_out&&(i=e.avail_out),0!==i&&t==E&&(t=U),e.avail_out-=i,e.total_out+=i,e.next_out.set(n.win.subarray(s,s+i),r),r+=i,s+=i),e.next_out_index=r,n.read=s,t},n.proc=function(e,t){let p,h,w,g,x,b,v,y;for(g=e.next_in_index,x=e.avail_in,h=n.bitb,w=n.bitk,b=n.write,v=b>>1){case 0:h>>>=3,w-=3,p=7&w,h>>>=p,w-=p,r=ie;break;case 1:_=[],k=[],S=[[]],z=[[]],M.inflate_trees_fixed(_,k,S,z),d.init(_[0],k[0],S[0],0,z[0],0),h>>>=3,w-=3,r=ce;break;case 2:h>>>=3,w-=3,r=se;break;case 3:return h>>>=3,w-=3,r=fe,e.msg="invalid block type",t=q,n.bitb=h,n.bitk=w,e.avail_in=x,e.total_in+=g-e.next_in_index,e.next_in_index=g,n.write=b,n.inflate_flush(e,t)}break;case ie:for(;w<32;){if(0===x)return n.bitb=h,n.bitk=w,e.avail_in=x,e.total_in+=g-e.next_in_index,e.next_in_index=g,n.write=b,n.inflate_flush(e,t);t=U,x--,h|=(255&e.read_byte(g++))<>>16&65535)!=(65535&h))return r=fe,e.msg="invalid stored block lengths",t=q,n.bitb=h,n.bitk=w,e.avail_in=x,e.total_in+=g-e.next_in_index,e.next_in_index=g,n.write=b,n.inflate_flush(e,t);s=65535&h,h=w=0,r=0!==s?re:0!==f?le:ne;break;case re:if(0===x)return n.bitb=h,n.bitk=w,e.avail_in=x,e.total_in+=g-e.next_in_index,e.next_in_index=g,n.write=b,n.inflate_flush(e,t);if(0===v&&(b==n.end&&0!==n.read&&(b=0,v=bx&&(p=x),p>v&&(p=v),n.win.set(e.read_buf(g,p),b),g+=p,x-=p,b+=p,v-=p,0!=(s-=p))break;r=0!==f?le:ne;break;case se:for(;w<14;){if(0===x)return n.bitb=h,n.bitk=w,e.avail_in=x,e.total_in+=g-e.next_in_index,e.next_in_index=g,n.write=b,n.inflate_flush(e,t);t=U,x--,h|=(255&e.read_byte(g++))<29||(p>>5&31)>29)return r=fe,e.msg="too many length or distance symbols",t=q,n.bitb=h,n.bitk=w,e.avail_in=x,e.total_in+=g-e.next_in_index,e.next_in_index=g,n.write=b,n.inflate_flush(e,t);if(p=258+(31&p)+(p>>5&31),!i||i.length>>=14,w-=14,o=0,r=ae;case ae:for(;o<4+(a>>>10);){for(;w<3;){if(0===x)return n.bitb=h,n.bitk=w,e.avail_in=x,e.total_in+=g-e.next_in_index,e.next_in_index=g,n.write=b,n.inflate_flush(e,t);t=U,x--,h|=(255&e.read_byte(g++))<>>=3,w-=3}for(;o<19;)i[te[o++]]=0;if(c[0]=7,p=m.inflate_trees_bits(i,c,l,u,e),p!=U)return(t=p)==q&&(i=null,r=fe),n.bitb=h,n.bitk=w,e.avail_in=x,e.total_in+=g-e.next_in_index,e.next_in_index=g,n.write=b,n.inflate_flush(e,t);o=0,r=oe;case oe:for(;p=a,!(o>=258+(31&p)+(p>>5&31));){let s,d;for(p=c[0];w>>=p,w-=p,i[o++]=d;else{for(y=18==d?7:d-14,s=18==d?11:3;w>>=p,w-=p,s+=h&$[y],h>>>=y,w-=y,y=o,p=a,y+s>258+(31&p)+(p>>5&31)||16==d&&y<1)return i=null,r=fe,e.msg="invalid bit length repeat",t=q,n.bitb=h,n.bitk=w,e.avail_in=x,e.total_in+=g-e.next_in_index,e.next_in_index=g,n.write=b,n.inflate_flush(e,t);d=16==d?i[y-1]:0;do{i[y++]=d}while(0!=--s);o=y}}if(l[0]=-1,C=[],A=[],j=[],E=[],C[0]=9,A[0]=6,p=a,p=m.inflate_trees_dynamic(257+(31&p),1+(p>>5&31),i,C,A,j,E,u,e),p!=U)return p==q&&(i=null,r=fe),t=p,n.bitb=h,n.bitk=w,e.avail_in=x,e.total_in+=g-e.next_in_index,e.next_in_index=g,n.write=b,n.inflate_flush(e,t);d.init(C[0],A[0],u,j[0],u,E[0]),r=ce;case ce:if(n.bitb=h,n.bitk=w,e.avail_in=x,e.total_in+=g-e.next_in_index,e.next_in_index=g,n.write=b,(t=d.proc(n,e,t))!=W)return n.inflate_flush(e,t);if(t=U,d.free(e),g=e.next_in_index,x=e.avail_in,h=n.bitb,w=n.bitk,b=n.write,v=b15?(e.inflateEnd(n),F):(e.wbits=i,n.istate.blocks=new ue(n,1<>4)>r.wbits){r.mode=me,e.msg="invalid win size",r.marker=5;break}r.mode=1;case 1:if(0===e.avail_in)return n;if(n=t,e.avail_in--,e.total_in++,i=255&e.read_byte(e.next_in_index++),((r.method<<8)+i)%31!=0){r.mode=me,e.msg="incorrect header check",r.marker=5;break}if(0==(32&i)){r.mode=7;break}r.mode=2;case 2:if(0===e.avail_in)return n;n=t,e.avail_in--,e.total_in++,r.need=(255&e.read_byte(e.next_in_index++))<<24&4278190080,r.mode=3;case 3:if(0===e.avail_in)return n;n=t,e.avail_in--,e.total_in++,r.need+=(255&e.read_byte(e.next_in_index++))<<16&16711680,r.mode=4;case 4:if(0===e.avail_in)return n;n=t,e.avail_in--,e.total_in++,r.need+=(255&e.read_byte(e.next_in_index++))<<8&65280,r.mode=5;case 5:return 0===e.avail_in?n:(n=t,e.avail_in--,e.total_in++,r.need+=255&e.read_byte(e.next_in_index++),r.mode=6,2);case 6:return r.mode=me,e.msg="need dictionary",r.marker=0,F;case 7:if(n=r.blocks.proc(e,n),n==q){r.mode=me,r.marker=0;break}if(n==U&&(n=t),n!=W)return n;n=t,r.blocks.reset(e,r.was),r.mode=12;case 12:return e.avail_in=0,W;case me:return q;default:return F}},e.inflateSetDictionary=function(e,t,n){let i=0,r=n;if(!e||!e.istate||6!=e.istate.mode)return F;const s=e.istate;return r>=1<{const e={};for(const t in qe)if(qe.hasOwnProperty(t))for(const n in qe[t])if(qe[t].hasOwnProperty(n)){const i=qe[t][n];if("string"==typeof i)e[i]=t+"/"+n;else for(let r=0;r>>1^3988292384:t>>>=1;je[e]=t}class Ee{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let n=0,i=0|e.length;n>>8^je[255&(t^e[n])];this.crc=t}get(){return~this.crc}}class $e extends TransformStream{constructor(){const e=new Ee;super({transform(t){e.append(t)},flush(t){const n=new Uint8Array(4);new DataView(n.buffer).setUint32(0,e.get()),t.enqueue(n)}})}}const De={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],i=De.getPartial(n);return 32===i?e.concat(t):De._shiftRight(t,i,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)+De.getPartial(n)},clamp(e,t){if(32*e.length0&&t&&(e[n-1]=De.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=>Math.round(e/1099511627776)||32,_shiftRight(e,t,n,i){for(void 0===i&&(i=[]);t>=32;t-=32)i.push(n),n=0;if(0===t)return i.concat(e);for(let r=0;r>>t),n=e[r]<<32-t;const r=e.length?e[e.length-1]:0,s=De.getPartial(r);return i.push(De.partial(t+s&31,t+s>32?n:i.pop(),1)),i}},Le={bytes:{fromBits(e){const t=De.bitLength(e)/8,n=new Uint8Array(t);let i;for(let r=0;r>>24,i<<=8;return n},toBits(e){const t=[];let n,i=0;for(n=0;n9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");const s=new Uint32Array(n);let a=0;for(let e=t.blockSize+i-(t.blockSize+i&t.blockSize-1);e<=r;e+=t.blockSize)t._block(s.subarray(16*a,16*(a+1))),a+=1;return n.splice(0,16*a),t}finalize(){const e=this;let t=e._buffer;const n=e._h;t=De.concat(t,[De.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(Math.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,i){return e<=19?t&n|~t&i:e<=39?t^n^i:e<=59?t&n|t&i|n&i:e<=79?t^n^i:void 0}_S(e,t){return t<>>32-e}_block(e){const t=this,n=t._h,i=Array(80);for(let t=0;t<16;t++)i[t]=e[t];let r=n[0],s=n[1],a=n[2],o=n[3],c=n[4];for(let e=0;e<=79;e++){e>=16&&(i[e]=t._S(1,i[e-3]^i[e-8]^i[e-14]^i[e-16]));const n=t._S(5,r)+t._f(e,s,a,o)+c+i[e]+t._key[Math.floor(e/20)]|0;c=o,o=a,a=t._S(30,s),s=r,r=n}n[0]=n[0]+r|0,n[1]=n[1]+s|0,n[2]=n[2]+a|0,n[3]=n[3]+o|0,n[4]=n[4]+c|0}}},Re={aes:class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const n=t._tables[0][4],i=t._tables[1],r=e.length;let s,a,o,c=1;if(4!==r&&6!==r&&8!==r)throw new Error("invalid aes key size");for(t._key=[a=e.slice(0),o=[]],s=r;s<4*r+28;s++){let e=a[s-1];(s%r==0||8===r&&s%r==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],s%r==0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),a[s]=a[s-r]^e}for(let e=0;s;e++,s--){const t=a[3&e?s:s-4];o[e]=s<=4||e<4?t:i[0][n[t>>>24]]^i[1][n[t>>16&255]]^i[2][n[t>>8&255]]^i[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],i=t[4],r=[],s=[];let a,o,c,l;for(let e=0;e<256;e++)s[(r[e]=e<<1^283*(e>>7))^e]=e;for(let d=a=0;!n[d];d^=o||1,a=s[a]||1){let s=a^a<<1^a<<2^a<<3^a<<4;s=s>>8^255&s^99,n[d]=s,i[s]=d,l=r[c=r[o=r[d]]];let f=16843009*l^65537*c^257*o^16843008*d,u=257*r[s]^16843008*s;for(let n=0;n<4;n++)e[n][d]=u=u<<24^u>>>8,t[n][s]=f=f<<24^f>>>8}for(let n=0;n<5;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}_crypt(e,t){if(4!==e.length)throw new Error("invalid aes block size");const n=this._key[t],i=n.length/4-2,r=[0,0,0,0],s=this._tables[t],a=s[0],o=s[1],c=s[2],l=s[3],d=s[4];let f,u,m,p=e[0]^n[0],h=e[t?3:1]^n[1],w=e[2]^n[2],g=e[t?1:3]^n[3],x=4;for(let e=0;e>>24]^o[h>>16&255]^c[w>>8&255]^l[255&g]^n[x],u=a[h>>>24]^o[w>>16&255]^c[g>>8&255]^l[255&p]^n[x+1],m=a[w>>>24]^o[g>>16&255]^c[p>>8&255]^l[255&h]^n[x+2],g=a[g>>>24]^o[p>>16&255]^c[h>>8&255]^l[255&w]^n[x+3],x+=4,p=f,h=u,w=m;for(let e=0;e<4;e++)r[t?3&-e:e]=d[p>>>24]<<24^d[h>>16&255]<<16^d[w>>8&255]<<8^d[255&g]^n[x++],f=p,p=h,h=w,w=g,g=f;return r}}},Ie={getRandomValues(e){const t=new Uint32Array(e.buffer),n=e=>{let t=987654321;const n=4294967295;return function(){t=36969*(65535&t)+(t>>16)&n;return(((t<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let i,r=0;r>24&255)){let t=e>>16&255,n=e>>8&255,i=255&e;255===t?(t=0,255===n?(n=0,255===i?i=0:++i):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=i}else e+=1<<24;return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let i;if(!(i=t.length))return[];const r=De.bitLength(t);for(let r=0;rnew Be.hmacSha1(Le.bytes.toBits(e)),pbkdf2(e,t,n,i){if(n=n||1e4,i<0||n<0)throw new Error("invalid params to pbkdf2");const r=1+(i>>5)<<2;let s,a,o,c,l;const d=new ArrayBuffer(r),f=new DataView(d);let u=0;const m=De;for(t=Le.bytes.toBits(t),l=1;u<(r||1);l++){for(s=a=e.encrypt(m.concat(t,[l])),o=1;or&&(e=(new n).update(e).finalize());for(let t=0;tthis.resolveReady=e)),password:e,signed:t,strength:n-1,pending:new Uint8Array})},async transform(e,t){const n=this,{password:r,strength:s,resolveReady:a,ready:o}=n;r?(await async function(e,t,n,i){const r=await gt(e,t,n,bt(i,0,Qe[t])),s=bt(i,Qe[t]);if(r[0]!=s[0]||r[1]!=s[1])throw new Error(Me)}(n,s,r,bt(e,0,Qe[s]+2)),e=bt(e,Qe[s]+2),i?t.error(new Error(Pe)):a()):await o;const c=new Uint8Array(e.length-tt-(e.length-tt)%Ye);t.enqueue(wt(n,e,c,0,tt,!0))},async flush(e){const{signed:t,ctr:n,hmac:i,pending:r,ready:s}=this;await s;const a=bt(r,0,r.length-tt),o=bt(r,r.length-tt);let c=new Uint8Array;if(a.length){const e=yt(ct,a);i.update(e);const t=n.update(e);c=vt(ct,t)}if(t){const e=bt(vt(ct,i.digest()),0,tt);for(let t=0;tthis.resolveReady=e)),password:e,strength:t-1,pending:new Uint8Array})},async transform(e,t){const n=this,{password:i,strength:r,resolveReady:s,ready:a}=n;let o=new Uint8Array;i?(o=await async function(e,t,n){const i=Ne(new Uint8Array(Qe[t])),r=await gt(e,t,n,i);return xt(i,r)}(n,r,i),s()):await a;const c=new Uint8Array(o.length+e.length-e.length%Ye);c.set(o,0),t.enqueue(wt(n,e,c,o.length,0))},async flush(e){const{ctr:t,hmac:i,pending:r,ready:s}=this;await s;let a=new Uint8Array;if(r.length){const e=t.update(yt(ct,r));i.update(e),a=vt(ct,e)}n.signature=vt(ct,i.digest()).slice(0,tt),e.enqueue(xt(a,n.signature))}}),n=this}}function wt(e,t,n,i,r,s){const{ctr:a,hmac:o,pending:c}=e,l=t.length-r;let d;for(c.length&&(t=xt(c,t),n=function(e,t){if(t&&t>e.length){const n=e;(e=new Uint8Array(t)).set(n,0)}return e}(n,l-l%Ye)),d=0;d<=l-Ye;d+=Ye){const e=yt(ct,bt(t,d,d+Ye));s&&o.update(e);const r=a.update(e);s||o.update(r),n.set(vt(ct,r),d+i)}return e.pending=bt(t,d),n}async function gt(e,t,n,i){e.password=null;const r=function(e){if("undefined"==typeof TextEncoder){e=unescape(encodeURIComponent(e));const t=new Uint8Array(e.length);for(let n=0;n>>24]),r=~e.crcKey2.get(),e.keys=[n,i,r]}function Wt(e){const t=2|e.keys[2];return Ft(Math.imul(t,1^t)>>>8)}function Ft(e){return 255&e}function qt(e){return 4294967295&e}const jt="deflate-raw";class Et extends TransformStream{constructor(e,{chunkSize:t,CompressionStream:n,CompressionStreamNative:i}){super({});const{compressed:r,encrypted:s,useCompressionStream:a,zipCrypto:o,signed:c,level:l}=e,d=this;let f,u,m=Dt(super.readable);s&&!o||!c||([m,f]=m.tee(),f=Rt(f,new $e)),r&&(m=Ot(m,a,{level:l,chunkSize:t},i,n)),s&&(o?m=Rt(m,new St(e)):(u=new ht(e),m=Rt(m,u))),Lt(d,m,(async()=>{let e;s&&!o&&(e=u.signature),s&&!o||!c||(e=await f.getReader().read(),e=new DataView(e.value.buffer).getUint32(0)),d.signature=e}))}}class $t extends TransformStream{constructor(e,{chunkSize:t,DecompressionStream:n,DecompressionStreamNative:i}){super({});const{zipCrypto:r,encrypted:s,signed:a,signature:o,compressed:c,useCompressionStream:l}=e;let d,f,u=Dt(super.readable);s&&(r?u=Rt(u,new kt(e)):(f=new pt(e),u=Rt(u,f))),c&&(u=Ot(u,l,{chunkSize:t},i,n)),s&&!r||!a||([u,d]=u.tee(),d=Rt(d,new $e)),Lt(this,u,(async()=>{if((!s||r)&&a){const e=await d.getReader().read(),t=new DataView(e.value.buffer);if(o!=t.getUint32(0,!1))throw new Error(Ke)}}))}}function Dt(e){return Rt(e,new TransformStream({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function Lt(e,t,n){t=Rt(t,new TransformStream({flush:n})),Object.defineProperty(e,"readable",{get:()=>t})}function Ot(e,t,n,i,r){try{e=Rt(e,new(t&&i?i:r)(jt,n))}catch(i){if(!t)throw i;e=Rt(e,new r(jt,n))}return e}function Rt(e,t){return e.pipeThrough(t)}const It="message",Tt="start",Bt="pull",Vt="data",Mt="ack",Kt="close",Pt="inflate";class Nt extends TransformStream{constructor(e,t){super({});const n=this,{codecType:i}=e;let r;i.startsWith("deflate")?r=Et:i.startsWith(Pt)&&(r=$t);let s=0;const a=new r(e,t),o=super.readable,c=new TransformStream({transform(e,t){e&&e.length&&(s+=e.length,t.enqueue(e))},flush(){const{signature:e}=a;Object.assign(n,{signature:e,size:s})}});Object.defineProperty(n,"readable",{get:()=>o.pipeThrough(a).pipeThrough(c)})}}const Yt=typeof Worker!=ke;class Xt{constructor(e,{readable:t,writable:n},{options:i,config:r,streamOptions:s,useWebWorkers:a,transferStreams:o,scripts:c},l){const{signal:d}=s;return Object.assign(e,{busy:!0,readable:t.pipeThrough(new Zt(t,s,r),{signal:d}),writable:n,options:Object.assign({},i),scripts:c,transferStreams:o,terminate(){const{worker:t,busy:n}=e;t&&!n&&(t.terminate(),e.interface=null)},onTaskFinished(){e.busy=!1,l(e)}}),(a&&Yt?Jt:Gt)(e,r)}}class Zt extends TransformStream{constructor(e,{onstart:t,onprogress:n,size:i,onend:r},{chunkSize:s}){let a=0;super({start(){t&&Ht(t,i)},async transform(e,t){a+=e.length,n&&await Ht(n,a,i),t.enqueue(e)},flush(){e.size=a,r&&Ht(r,a)}},{highWaterMark:1,size:()=>s})}}async function Ht(e,...t){try{await e(...t)}catch(e){}}function Gt(e,t){return{run:()=>async function({options:e,readable:t,writable:n,onTaskFinished:i},r){const s=new Nt(e,r);try{await t.pipeThrough(s).pipeTo(n,{preventClose:!0,preventAbort:!0});const{signature:e,size:i}=s;return{signature:e,size:i}}finally{i()}}(e,t)}}function Jt(e,{baseURL:t,chunkSize:n}){return e.interface||Object.assign(e,{worker:tn(e.scripts[0],t,e),interface:{run:()=>async function(e,t){let n,i;const r=new Promise(((e,t)=>{n=e,i=t}));Object.assign(e,{reader:null,writer:null,resolveResult:n,rejectResult:i,result:r});const{readable:s,options:a,scripts:o}=e,{writable:c,closed:l}=function(e){const t=e.getWriter();let n;const i=new Promise((e=>n=e)),r=new WritableStream({async write(e){await t.ready,await t.write(e)},close(){t.releaseLock(),n()},abort:e=>t.abort(e)});return{writable:r,closed:i}}(e.writable),d=nn({type:Tt,scripts:o.slice(1),options:a,config:t,readable:s,writable:c},e);d||Object.assign(e,{reader:s.getReader(),writer:c.getWriter()});const f=await r;try{await c.close()}catch(e){}return await l,f}(e,{chunkSize:n})}}),e.interface}let Qt=!0,en=!0;function tn(e,t,n){const i={type:"module"};let r,s;typeof e==Se&&(e=e());try{r=new URL(e,t)}catch(t){r=e}if(Qt)try{s=new Worker(r)}catch(e){Qt=!1,s=new Worker(r,i)}else s=new Worker(r,i);return s.addEventListener(It,(e=>async function({data:e},t){const{type:n,value:i,messageId:r,result:s,error:a}=e,{reader:o,writer:c,resolveResult:l,rejectResult:d,onTaskFinished:f}=t;try{if(a){const{message:e,stack:t,code:n,name:i}=a,r=new Error(e);Object.assign(r,{stack:t,code:n,name:i}),u(r)}else{if(n==Bt){const{value:e,done:n}=await o.read();nn({type:Vt,value:e,done:n,messageId:r},t)}n==Vt&&(await c.ready,await c.write(new Uint8Array(i)),nn({type:Mt,messageId:r},t)),n==Kt&&u(null,s)}}catch(a){u(a)}function u(e,t){e?d(e):l(t),c&&c.releaseLock(),f()}}(e,n))),s}function nn(e,{worker:t,writer:n,onTaskFinished:i,transferStreams:r}){try{let{value:n,readable:i,writable:s}=e;const a=[];if(n){const{buffer:t,length:i}=n;i!=t.byteLength&&(n=new Uint8Array(n)),e.value=n.buffer,a.push(e.value)}if(r&&en?(i&&a.push(i),s&&a.push(s)):e.readable=e.writable=null,a.length)try{return t.postMessage(e,a),!0}catch(n){en=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw n&&n.releaseLock(),i(),e}}let rn=[];const sn=[];let an=0;function on(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const cn=65536,ln="writable";class dn{constructor(){this.size=0}init(){this.initialized=!0}}class fn extends dn{get readable(){const e=this,{chunkSize:t=cn}=e,n=new ReadableStream({start(){this.chunkOffset=0},async pull(i){const{offset:r=0,size:s,diskNumberStart:a}=n,{chunkOffset:o}=this;i.enqueue(await yn(e,r+o,Math.min(t,s-o),a)),o+t>s?i.close():this.chunkOffset+=t}});return n}}class un extends dn{constructor(){super();const e=this,t=new WritableStream({write:t=>e.writeUint8Array(t)});Object.defineProperty(e,ln,{get:()=>t})}writeUint8Array(){}}class mn extends fn{constructor(e){super(),Object.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const n=this,i=e+t,r=e||it.writable}),this.blob=new Response(t.readable,{headers:n}).blob()}getData(){return this.blob}}class hn extends pn{constructor(e){super(e),Object.assign(this,{encoding:e,utf8:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,utf8:t}=this,n=await super.getData();if(n.text&&t)return n.text();{const t=new FileReader;return new Promise(((i,r)=>{Object.assign(t,{onload:({target:e})=>i(e.result),onerror:()=>r(t.error)}),t.readAsText(n,e)}))}}}class wn extends un{init(e=0){Object.assign(this,{offset:0,array:new Uint8Array(e)}),super.init()}writeUint8Array(e){const t=this;if(t.offset+e.length>t.array.length){const n=t.array;t.array=new Uint8Array(n.length+e.length),t.array.set(n)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.array}}class gn extends fn{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:t}=e;e.lastDiskNumber=0,await Promise.all(t.map((async t=>{await t.init(),e.size+=t.size}))),super.init()}async readUint8Array(e,t,n=0){const i=this,{readers:r}=this;let s,a=n;-1==a&&(a=r.length-1);let o=e;for(;o>=r[a].size;)o-=r[a].size,a++;const c=r[a],l=c.size;if(o+t<=l)s=await yn(c,o,t);else{const r=l-o;s=new Uint8Array(t),s.set(await yn(c,o,r)),s.set(await i.readUint8Array(e+r,t-r,n),r)}return i.lastDiskNumber=Math.max(a,i.lastDiskNumber),s}}class xn extends dn{constructor(e,t=4294967295){super();const n=this;let i,r,s;Object.assign(n,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const a=new WritableStream({async write(t){const{availableSize:a}=n;if(s)t.length>=a?(await o(t.slice(0,a)),await c(),n.diskOffset+=i.size,n.diskNumber++,s=null,await this.write(t.slice(a))):await o(t);else{const{value:a,done:o}=await e.next();if(o&&!a)throw new Error("Writer iterator completed too soon");i=a,i.size=0,i.maxSize&&(n.maxSize=i.maxSize),n.availableSize=n.maxSize,await bn(i),r=a.writable,s=r.getWriter(),await this.write(t)}},async close(){await s.ready,await c()}});async function o(e){const t=e.length;t&&(await s.ready,await s.write(e),i.size+=t,n.size+=t,n.availableSize-=t)}async function c(){r.size=i.size,await s.close()}Object.defineProperty(n,ln,{get:()=>a})}}async function bn(e,t){e.init&&!e.initialized&&await e.init(t)}function vn(e){return Array.isArray(e)&&(e=new gn(e)),e instanceof ReadableStream&&(e={readable:e}),e}function yn(e,t,n,i){return e.readUint8Array(t,n,i)}const _n="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split(""),kn=256==_n.length;function Sn(e,t){return t&&"cp437"==t.trim().toLowerCase()?function(e){if(kn){let t="";for(let n=0;nthis[t]=e[t]))}}const Bn="File format is not recognized",Vn="Zip64 extra field not found",Mn="Compression method not supported",Kn="Split zip file",Pn="utf-8",Nn="cp437",Yn=[[Wn,ge],[Fn,ge],[qn,ge],[jn,xe]],Xn={[xe]:{getValue:si,bytes:4},[ge]:{getValue:ai,bytes:8}};class Zn{constructor(e,t={}){Object.assign(this,{reader:vn(e),options:t,config:Ue})}async*getEntriesGenerator(e={}){const t=this;let{reader:n}=t;const{config:i}=t;if(await bn(n),n.size!==_e&&n.readUint8Array||(n=new mn(await new Response(n.readable).blob()),await bn(n)),n.size<22)throw new Error(Bn);n.chunkSize=function(e){return Math.max(e.chunkSize,64)}(i);const r=await async function(e,t,n,i,r){const s=new Uint8Array(4);!function(e,t,n){e.setUint32(t,n,!0)}(oi(s),0,t);const a=i+r;return await o(i)||await o(Math.min(a,n));async function o(t){const r=n-t,a=await yn(e,r,t);for(let e=a.length-i;e>=0;e--)if(a[e]==s[0]&&a[e+1]==s[1]&&a[e+2]==s[2]&&a[e+3]==s[3])return{offset:r+e,buffer:a.slice(e,e+i).buffer}}}(n,101010256,n.size,22,1048560);if(!r){throw 134695760==si(oi(await yn(n,0,4)))?new Error(Kn):new Error("End of central directory not found")}const s=oi(r);let a=si(s,12),o=si(s,16);const c=r.offset,l=ri(s,20),d=c+22+l;let f=ri(s,4);const u=n.lastDiskNumber||0;let m=ri(s,6),p=ri(s,8),h=0,w=0;if(o==ge||a==ge||p==xe||m==xe){const e=oi(await yn(n,r.offset-20,20));if(117853008!=si(e,0))throw new Error("End of Zip64 central directory not found");o=ai(e,8);let t=await yn(n,o,56,-1),i=oi(t);const s=r.offset-20-56;if(si(i,0)!=ve&&o!=s){const e=o;o=s,h=o-e,t=await yn(n,o,56,-1),i=oi(t)}if(si(i,0)!=ve)throw new Error("End of Zip64 central directory locator not found");f==xe&&(f=si(i,16)),m==xe&&(m=si(i,20)),p==xe&&(p=ai(i,32)),a==ge&&(a=ai(i,40)),o-=a}if(u!=f)throw new Error(Kn);if(o<0||o>=n.size)throw new Error(Bn);let g=0,x=await yn(n,o,a,m),b=oi(x);if(a){const e=r.offset-a;if(si(b,g)!=be&&o!=e){const t=o;o=e,h=o-t,x=await yn(n,o,a,m),b=oi(x)}}if(o<0||o>=n.size)throw new Error(Bn);const v=ei(t,e,"filenameEncoding"),y=ei(t,e,"commentEncoding");for(let r=0;rs.getData(e,F,t),g=_;const{onprogress:q}=e;if(q)try{await q(r+1,p,new Tn(s))}catch(e){}yield F}const _=ei(t,e,"extractPrependedData"),k=ei(t,e,"extractAppendedData");return _&&(t.prependedData=w>0?await yn(n,0,w):new Uint8Array),t.comment=l?await yn(n,c+22,l):new Uint8Array,k&&(t.appendedData=d>>8&255:f>>>24&255),signature:f,compressed:0!=c,encrypted:x,useWebWorkers:ei(i,n,"useWebWorkers"),useCompressionStream:ei(i,n,"useCompressionStream"),transferStreams:ei(i,n,"transferStreams"),checkPasswordOnly:S},config:l,streamOptions:{signal:k,size:_,onstart:C,onprogress:A,onend:U}};let F=0;try{({outputSize:F}=await async function(e,t){const{options:n,config:i}=t,{transferStreams:r,useWebWorkers:s,useCompressionStream:a,codecType:o,compressed:c,signed:l,encrypted:d}=n,{workerScripts:f,maxWorkers:u,terminateWorkerTimeout:m}=i;t.transferStreams=r||r===_e;const p=!(c||l||d||t.transferStreams);let h;t.useWebWorkers=!p&&(s||s===_e&&i.useWebWorkers),t.scripts=t.useWebWorkers&&f?f[o]:[],n.useCompressionStream=a||a===_e&&i.useCompressionStream;const w=rn.find((e=>!e.busy));if(w)on(w),h=new Xt(w,e,t,g);else if(rn.lengthsn.push({resolve:n,stream:e,workerOptions:t})));return h.run();function g(e){if(sn.length){const[{resolve:t,stream:n,workerOptions:i}]=sn.splice(0,1);t(new Xt(e,n,i,g))}else e.worker?(on(e),Number.isFinite(m)&&m>=0&&(e.terminateTimeout=setTimeout((()=>{rn=rn.filter((t=>t!=e)),e.terminate()}),m))):rn=rn.filter((t=>t!=e))}}({readable:y,writable:z},W))}catch(e){if(!S||e.message!=Pe)throw e}finally{const e=ei(i,n,"preventClose");z.size+=F,e||z.locked||await z.close()}return S?void 0:e.getData?e.getData():z}}function Gn(e,t,n){const i=e.rawBitFlag=ri(t,n+2),r=1==(1&i),s=si(t,n+6);Object.assign(e,{encrypted:r,version:ri(t,n),bitFlag:{level:(6&i)>>1,dataDescriptor:8==(8&i),languageEncodingFlag:2048==(2048&i)},rawLastModDate:s,lastModDate:ti(s),filenameLength:ri(t,n+22),extraFieldLength:ri(t,n+24)})}async function Jn(e,t,n,i){const{rawExtraField:r}=t,s=t.extraField=new Map,a=oi(new Uint8Array(r));let o=0;try{for(;ot[e]==n));for(let r=0,s=0;r{if(e.data.length>=a+4){const o=si(n,a);t[i]=e[i]=new Date(1e3*o);const c=s[r];e[c]=o}a+=4}))}(p,t),t.extraFieldExtendedTimestamp=p)}async function Qn(e,t,n,i,r){const s=oi(e.data),a=new Ee;a.append(r[n]);const o=oi(new Uint8Array(4));o.setUint32(0,a.get(),!0),Object.assign(e,{version:ii(s,0),signature:si(s,1),[t]:await Sn(e.data.subarray(5)),valid:!r.bitFlag.languageEncodingFlag&&e.signature==si(o,0)}),e.valid&&(i[t]=e[t],i[t+"UTF8"]=!0)}function ei(e,t,n){return t[n]===_e?e.options[n]:t[n]}function ti(e){const t=(4294901760&e)>>16,n=65535&e;try{return new Date(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&n)>>11,(2016&n)>>5,2*(31&n),0)}catch(e){}}function ni(e){return new Date(Number(e/BigInt(1e4)-BigInt(116444736e5)))}function ii(e,t){return e.getUint8(t)}function ri(e,t){return e.getUint16(t,!0)}function si(e,t){return e.getUint32(t,!0)}function ai(e,t){return Number(e.getBigUint64(t,!0))}function oi(e){return new DataView(e.buffer)}let ci;try{ci=import.meta.url}catch(e){}We({baseURL:ci}),function(e){const t=()=>URL.createObjectURL(new Blob(['const{Array:e,Object:t,Number:n,Math:r,Error:s,Uint8Array:i,Uint16Array:o,Uint32Array:c,Int32Array:f,Map:a,DataView:l,Promise:u,TextEncoder:w,crypto:h,postMessage:d,TransformStream:p,ReadableStream:y,WritableStream:m,CompressionStream:b,DecompressionStream:g}=self;class k{constructor(e){return class extends p{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)}})}}}}const v=[];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;v[e]=t}class S{constructor(e){this.t=e||-1}append(e){let t=0|this.t;for(let n=0,r=0|e.length;r>n;n++)t=t>>>8^v[255&(t^e[n])];this.t=t}get(){return~this.t}}class z extends p{constructor(){const e=new S;super({transform(t){e.append(t)},flush(t){const n=new i(4);new l(n.buffer).setUint32(0,e.get()),t.enqueue(n)}})}}const C={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=C.i(n);return 32===r?e.concat(t):C.o(t,r,0|n,e.slice(0,e.length-1))},l(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+C.i(n)},u(e,t){if(32*e.length0&&t&&(e[n-1]=C.h(t,e[n-1]&2147483648>>t-1,1)),e},h:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,i:e=>r.round(e/1099511627776)||32,o(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>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,i=C.i(s);return r.push(C.h(t+i&31,t+i>32?n:r.pop(),1)),r}},x={p:{m(e){const t=C.l(e)/8,n=new i(t);let r;for(let s=0;t>s;s++)0==(3&s)&&(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},g(e){const t=[];let n,r=0;for(n=0;n9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const o=new c(n);let f=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);i>=e;e+=t.blockSize)t.I(o.subarray(16*f,16*(f+1))),f+=1;return n.splice(0,16*f),t}D(){const e=this;let t=e.C;const n=e.S;t=C.concat(t,[C.h(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(r.floor(e._/4294967296)),t.push(0|e._);t.length;)e.I(t.splice(0,16));return e.reset(),n}V(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}P(e,t){return t<>>32-e}I(t){const n=this,s=n.S,i=e(80);for(let e=0;16>e;e++)i[e]=t[e];let o=s[0],c=s[1],f=s[2],a=s[3],l=s[4];for(let e=0;79>=e;e++){16>e||(i[e]=n.P(1,i[e-3]^i[e-8]^i[e-14]^i[e-16]));const t=n.P(5,o)+n.V(e,c,f,a)+l+i[e]+n.v[r.floor(e/20)]|0;l=a,a=f,f=n.P(30,c),c=o,o=t}s[0]=s[0]+o|0,s[1]=s[1]+c|0,s[2]=s[2]+f|0,s[3]=s[3]+a|0,s[4]=s[4]+l|0}},A={getRandomValues(e){const t=new c(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)*(r.random()>.5?1:-1))};for(let s,i=0;inew I.R(x.p.g(e)),B(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new s("invalid params to pbkdf2");const i=1+(r>>5)<<2;let o,c,f,a,u;const w=new ArrayBuffer(i),h=new l(w);let d=0;const p=C;for(t=x.p.g(t),u=1;(i||1)>d;u++){for(o=c=e.encrypt(p.concat(t,[u])),f=1;n>f;f++)for(c=e.encrypt(c),a=0;ad&&fs&&(e=(new n).update(e).D());for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t.K[0].update(r[0]),t.K[1].update(r[1]),t.U=new n(t.K[0])}reset(){const e=this;e.U=new e.M(e.K[0]),e.N=!1}update(e){this.N=!0,this.U.update(e)}digest(){const e=this,t=e.U.D(),n=new e.M(e.K[1]).update(t).D();return e.reset(),n}encrypt(e){if(this.N)throw new s("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},D=void 0!==h&&"function"==typeof h.getRandomValues,V="Invalid password",P="Invalid signature",R="zipjs-abort-check-password";function B(e){return D?h.getRandomValues(e):A.getRandomValues(e)}const E=16,M={name:"PBKDF2"},K=t.assign({hash:{name:"HMAC"}},M),U=t.assign({iterations:1e3,hash:{name:"SHA-1"}},M),N=["deriveBits"],O=[8,12,16],T=[16,24,32],W=10,j=[0,0,0,0],H="undefined",L="function",F=typeof h!=H,q=F&&h.subtle,G=F&&typeof q!=H,J=x.p,Q=class{constructor(e){const t=this;t.O=[[[],[],[],[],[]],[[],[],[],[],[]]],t.O[0][0][0]||t.T();const n=t.O[0][4],r=t.O[1],i=e.length;let o,c,f,a=1;if(4!==i&&6!==i&&8!==i)throw new s("invalid aes key size");for(t.v=[c=e.slice(0),f=[]],o=i;4*i+28>o;o++){let e=c[o-1];(o%i==0||8===i&&o%i==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],o%i==0&&(e=e<<8^e>>>24^a<<24,a=a<<1^283*(a>>7))),c[o]=c[o-i]^e}for(let e=0;o;e++,o--){const t=c[3&e?o:o-4];f[e]=4>=o||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.W(e,0)}decrypt(e){return this.W(e,1)}T(){const e=this.O[0],t=this.O[1],n=e[4],r=t[4],s=[],i=[];let o,c,f,a;for(let e=0;256>e;e++)i[(s[e]=e<<1^283*(e>>7))^e]=e;for(let l=o=0;!n[l];l^=c||1,o=i[o]||1){let i=o^o<<1^o<<2^o<<3^o<<4;i=i>>8^255&i^99,n[l]=i,r[i]=l,a=s[f=s[c=s[l]]];let u=16843009*a^65537*f^257*c^16843008*l,w=257*s[i]^16843008*i;for(let n=0;4>n;n++)e[n][l]=w=w<<24^w>>>8,t[n][i]=u=u<<24^u>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}W(e,t){if(4!==e.length)throw new s("invalid aes block size");const n=this.v[t],r=n.length/4-2,i=[0,0,0,0],o=this.O[t],c=o[0],f=o[1],a=o[2],l=o[3],u=o[4];let w,h,d,p=e[0]^n[0],y=e[t?3:1]^n[1],m=e[2]^n[2],b=e[t?1:3]^n[3],g=4;for(let e=0;r>e;e++)w=c[p>>>24]^f[y>>16&255]^a[m>>8&255]^l[255&b]^n[g],h=c[y>>>24]^f[m>>16&255]^a[b>>8&255]^l[255&p]^n[g+1],d=c[m>>>24]^f[b>>16&255]^a[p>>8&255]^l[255&y]^n[g+2],b=c[b>>>24]^f[p>>16&255]^a[y>>8&255]^l[255&m]^n[g+3],g+=4,p=w,y=h,m=d;for(let e=0;4>e;e++)i[t?3&-e:e]=u[p>>>24]<<24^u[y>>16&255]<<16^u[m>>8&255]<<8^u[255&b]^n[g++],w=p,p=y,y=m,m=b,b=w;return i}},X=class{constructor(e,t){this.j=e,this.H=t,this.L=t}reset(){this.L=this.H}update(e){return this.F(this.j,e,this.L)}q(e){if(255==(e>>24&255)){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}else e+=1<<24;return e}G(e){0===(e[0]=this.q(e[0]))&&(e[1]=this.q(e[1]))}F(e,t,n){let r;if(!(r=t.length))return[];const s=C.l(t);for(let s=0;r>s;s+=4){this.G(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 C.u(t,s)}},Y=I.R;let Z=F&&G&&typeof q.importKey==L,$=F&&G&&typeof q.deriveBits==L;class ee extends p{constructor({password:e,signed:n,encryptionStrength:r,checkPasswordOnly:o}){super({start(){t.assign(this,{ready:new u((e=>this.J=e)),password:e,signed:n,X:r-1,pending:new i})},async transform(e,t){const n=this,{password:r,X:c,J:f,ready:a}=n;r?(await(async(e,t,n,r)=>{const i=await re(e,t,n,ie(r,0,O[t])),o=ie(r,O[t]);if(i[0]!=o[0]||i[1]!=o[1])throw new s(V)})(n,c,r,ie(e,0,O[c]+2)),e=ie(e,O[c]+2),o?t.error(new s(R)):f()):await a;const l=new i(e.length-W-(e.length-W)%E);t.enqueue(ne(n,e,l,0,W,!0))},async flush(e){const{signed:t,Y:n,Z:r,pending:o,ready:c}=this;await c;const f=ie(o,0,o.length-W),a=ie(o,o.length-W);let l=new i;if(f.length){const e=ce(J,f);r.update(e);const t=n.update(e);l=oe(J,t)}if(t){const e=ie(oe(J,r.digest()),0,W);for(let t=0;W>t;t++)if(e[t]!=a[t])throw new s(P)}e.enqueue(l)}})}}class te extends p{constructor({password:e,encryptionStrength:n}){let r;super({start(){t.assign(this,{ready:new u((e=>this.J=e)),password:e,X:n-1,pending:new i})},async transform(e,t){const n=this,{password:r,X:s,J:o,ready:c}=n;let f=new i;r?(f=await(async(e,t,n)=>{const r=B(new i(O[t]));return se(r,await re(e,t,n,r))})(n,s,r),o()):await c;const a=new i(f.length+e.length-e.length%E);a.set(f,0),t.enqueue(ne(n,e,a,f.length,0))},async flush(e){const{Y:t,Z:n,pending:s,ready:o}=this;await o;let c=new i;if(s.length){const e=t.update(ce(J,s));n.update(e),c=oe(J,e)}r.signature=oe(J,n.digest()).slice(0,W),e.enqueue(se(c,r.signature))}}),r=this}}function ne(e,t,n,r,s,o){const{Y:c,Z:f,pending:a}=e,l=t.length-s;let u;for(a.length&&(t=se(a,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new i(t)).set(n,0)}return e})(n,l-l%E)),u=0;l-E>=u;u+=E){const e=ce(J,ie(t,u,u+E));o&&f.update(e);const s=c.update(e);o||f.update(s),n.set(oe(J,s),u+r)}return e.pending=ie(t,u),n}async function re(n,r,s,o){n.password=null;const c=(e=>{if(void 0===w){const t=new i((e=unescape(encodeURIComponent(e))).length);for(let n=0;n{if(!Z)return I.importKey(t);try{return await q.importKey("raw",t,n,!1,s)}catch(e){return Z=!1,I.importKey(t)}})(0,c,K,0,N),a=await(async(e,t,n)=>{if(!$)return I.B(t,e.salt,U.iterations,n);try{return await q.deriveBits(e,t,n)}catch(r){return $=!1,I.B(t,e.salt,U.iterations,n)}})(t.assign({salt:o},U),f,8*(2*T[r]+2)),l=new i(a),u=ce(J,ie(l,0,T[r])),h=ce(J,ie(l,T[r],2*T[r])),d=ie(l,2*T[r]);return t.assign(n,{keys:{key:u,$:h,passwordVerification:d},Y:new X(new Q(u),e.from(j)),Z:new Y(h)}),d}function se(e,t){let n=e;return e.length+t.length&&(n=new i(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function ie(e,t,n){return e.subarray(t,n)}function oe(e,t){return e.m(t)}function ce(e,t){return e.g(t)}class fe extends p{constructor({password:e,passwordVerification:n,checkPasswordOnly:r}){super({start(){t.assign(this,{password:e,passwordVerification:n}),we(this,e)},transform(e,t){const n=this;if(n.password){const t=le(n,e.subarray(0,12));if(n.password=null,t[11]!=n.passwordVerification)throw new s(V);e=e.subarray(12)}r?t.error(new s(R)):t.enqueue(le(n,e))}})}}class ae extends p{constructor({password:e,passwordVerification:n}){super({start(){t.assign(this,{password:e,passwordVerification:n}),we(this,e)},transform(e,t){const n=this;let r,s;if(n.password){n.password=null;const t=B(new i(12));t[11]=n.passwordVerification,r=new i(e.length+t.length),r.set(ue(n,t),0),s=12}else r=new i(e.length),s=0;r.set(ue(n,e),s),t.enqueue(r)}})}}function le(e,t){const n=new i(t.length);for(let r=0;r>>24]),i=~e.te.get(),e.keys=[n,s,i]}function de(e){const t=2|e.keys[2];return pe(r.imul(t,1^t)>>>8)}function pe(e){return 255&e}function ye(e){return 4294967295&e}const me="deflate-raw";class be extends p{constructor(e,{chunkSize:t,CompressionStream:n,CompressionStreamNative:r}){super({});const{compressed:s,encrypted:i,useCompressionStream:o,zipCrypto:c,signed:f,level:a}=e,u=this;let w,h,d=ke(super.readable);i&&!c||!f||([d,w]=d.tee(),w=ze(w,new z)),s&&(d=Se(d,o,{level:a,chunkSize:t},r,n)),i&&(c?d=ze(d,new ae(e)):(h=new te(e),d=ze(d,h))),ve(u,d,(async()=>{let e;i&&!c&&(e=h.signature),i&&!c||!f||(e=await w.getReader().read(),e=new l(e.value.buffer).getUint32(0)),u.signature=e}))}}class ge extends p{constructor(e,{chunkSize:t,DecompressionStream:n,DecompressionStreamNative:r}){super({});const{zipCrypto:i,encrypted:o,signed:c,signature:f,compressed:a,useCompressionStream:u}=e;let w,h,d=ke(super.readable);o&&(i?d=ze(d,new fe(e)):(h=new ee(e),d=ze(d,h))),a&&(d=Se(d,u,{chunkSize:t},r,n)),o&&!i||!c||([d,w]=d.tee(),w=ze(w,new z)),ve(this,d,(async()=>{if((!o||i)&&c){const e=await w.getReader().read(),t=new l(e.value.buffer);if(f!=t.getUint32(0,!1))throw new s(P)}}))}}function ke(e){return ze(e,new p({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function ve(e,n,r){n=ze(n,new p({flush:r})),t.defineProperty(e,"readable",{get:()=>n})}function Se(e,t,n,r,s){try{e=ze(e,new(t&&r?r:s)(me,n))}catch(r){if(!t)throw r;e=ze(e,new s(me,n))}return e}function ze(e,t){return e.pipeThrough(t)}const Ce="data";class xe extends p{constructor(e,n){super({});const r=this,{codecType:s}=e;let i;s.startsWith("deflate")?i=be:s.startsWith("inflate")&&(i=ge);let o=0;const c=new i(e,n),f=super.readable,a=new p({transform(e,t){e&&e.length&&(o+=e.length,t.enqueue(e))},flush(){const{signature:e}=c;t.assign(r,{signature:e,size:o})}});t.defineProperty(r,"readable",{get:()=>f.pipeThrough(c).pipeThrough(a)})}}const _e=new a,Ae=new a;let Ie=0;async function De(e){try{const{options:t,scripts:r,config:s}=e;r&&r.length&&importScripts.apply(void 0,r),self.initCodec&&self.initCodec(),s.CompressionStreamNative=self.CompressionStream,s.DecompressionStreamNative=self.DecompressionStream,self.Deflate&&(s.CompressionStream=new k(self.Deflate)),self.Inflate&&(s.DecompressionStream=new k(self.Inflate));const i={highWaterMark:1,size:()=>s.chunkSize},o=e.readable||new y({async pull(e){const t=new u((e=>_e.set(Ie,e)));Ve({type:"pull",messageId:Ie}),Ie=(Ie+1)%n.MAX_SAFE_INTEGER;const{value:r,done:s}=await t;e.enqueue(r),s&&e.close()}},i),c=e.writable||new m({async write(e){let t;const r=new u((e=>t=e));Ae.set(Ie,t),Ve({type:Ce,value:e,messageId:Ie}),Ie=(Ie+1)%n.MAX_SAFE_INTEGER,await r}},i),f=new xe(t,s);await o.pipeThrough(f).pipeTo(c,{preventClose:!0,preventAbort:!0});try{await c.close()}catch(e){}const{signature:a,size:l}=f;Ve({type:"close",result:{signature:a,size:l}})}catch(e){Pe(e)}}function Ve(e){let{value:t}=e;if(t)if(t.length)try{t=new i(t),e.value=t.buffer,d(e,[e.value])}catch(t){d(e)}else d(e);else d(e)}function Pe(e){const{message:t,stack:n,code:r,name:s}=e;d({error:{message:t,stack:n,code:r,name:s}})}addEventListener("message",(({data:e})=>{const{type:t,messageId:n,value:r,done:s}=e;try{if("start"==t&&De(e),t==Ce){const e=_e.get(n);_e.delete(n),e({value:new i(r),done:s})}if("ack"==t){const e=Ae.get(n);Ae.delete(n),e()}}catch(e){Pe(e)}}));const Re=-2;function Be(t){return Ee(t.map((([t,n])=>new e(t).fill(n,0,t))))}function Ee(t){return t.reduce(((t,n)=>t.concat(e.isArray(n)?Ee(n):n)),[])}const Me=[0,1,2,3].concat(...Be([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function Ke(){const e=this;function t(e,t){let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}e.ne=n=>{const s=e.re,i=e.ie.se,o=e.ie.oe;let c,f,a,l=-1;for(n.ce=0,n.fe=573,c=0;o>c;c++)0!==s[2*c]?(n.ae[++n.ce]=l=c,n.le[c]=0):s[2*c+1]=0;for(;2>n.ce;)a=n.ae[++n.ce]=2>l?++l:0,s[2*a]=1,n.le[a]=0,n.ue--,i&&(n.we-=i[2*a+1]);for(e.he=l,c=r.floor(n.ce/2);c>=1;c--)n.de(s,c);a=o;do{c=n.ae[1],n.ae[1]=n.ae[n.ce--],n.de(s,1),f=n.ae[1],n.ae[--n.fe]=c,n.ae[--n.fe]=f,s[2*a]=s[2*c]+s[2*f],n.le[a]=r.max(n.le[c],n.le[f])+1,s[2*c+1]=s[2*f+1]=a,n.ae[1]=a++,n.de(s,1)}while(n.ce>=2);n.ae[--n.fe]=n.ae[1],(t=>{const n=e.re,r=e.ie.se,s=e.ie.pe,i=e.ie.ye,o=e.ie.me;let c,f,a,l,u,w,h=0;for(l=0;15>=l;l++)t.be[l]=0;for(n[2*t.ae[t.fe]+1]=0,c=t.fe+1;573>c;c++)f=t.ae[c],l=n[2*n[2*f+1]+1]+1,l>o&&(l=o,h++),n[2*f+1]=l,f>e.he||(t.be[l]++,u=0,i>f||(u=s[f-i]),w=n[2*f],t.ue+=w*(l+u),r&&(t.we+=w*(r[2*f+1]+u)));if(0!==h){do{for(l=o-1;0===t.be[l];)l--;t.be[l]--,t.be[l+1]+=2,t.be[o]--,h-=2}while(h>0);for(l=o;0!==l;l--)for(f=t.be[l];0!==f;)a=t.ae[--c],a>e.he||(n[2*a+1]!=l&&(t.ue+=(l-n[2*a+1])*n[2*a],n[2*a+1]=l),f--)}})(n),((e,n,r)=>{const s=[];let i,o,c,f=0;for(i=1;15>=i;i++)s[i]=f=f+r[i-1]<<1;for(o=0;n>=o;o++)c=e[2*o+1],0!==c&&(e[2*o]=t(s[c]++,c))})(s,e.he,n.be)}}function Ue(e,t,n,r,s){const i=this;i.se=e,i.pe=t,i.ye=n,i.oe=r,i.me=s}Ke.ge=[0,1,2,3,4,5,6,7].concat(...Be([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),Ke.ke=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],Ke.ve=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],Ke.Se=e=>256>e?Me[e]:Me[256+(e>>>7)],Ke.ze=[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],Ke.Ce=[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],Ke.xe=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Ke._e=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const Ne=Be([[144,8],[112,9],[24,7],[8,8]]);Ue.Ae=Ee([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((e,t)=>[e,Ne[t]])));const Oe=Be([[30,5]]);function Te(e,t,n,r,s){const i=this;i.Ie=e,i.De=t,i.Ve=n,i.Pe=r,i.Re=s}Ue.Be=Ee([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((e,t)=>[e,Oe[t]]))),Ue.Ee=new Ue(Ue.Ae,Ke.ze,257,286,15),Ue.Me=new Ue(Ue.Be,Ke.Ce,0,30,15),Ue.Ke=new Ue(null,Ke.xe,0,19,7);const We=[new Te(0,0,0,0,0),new Te(4,4,8,4,1),new Te(4,5,16,8,1),new Te(4,6,32,32,1),new Te(4,4,16,16,2),new Te(8,16,32,32,2),new Te(8,16,128,128,2),new Te(8,32,128,256,2),new Te(32,128,258,1024,2),new Te(32,258,258,4096,2)],je=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],He=113,Le=666,Fe=262;function qe(e,t,n,r){const s=e[2*t],i=e[2*n];return i>s||s==i&&r[t]<=r[n]}function Ge(){const e=this;let t,n,s,c,f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,z,C,x,_,A,I,D,V,P,R,B,E,M,K;const U=new Ke,N=new Ke,O=new Ke;let T,W,j,H,L,F;function q(){let t;for(t=0;286>t;t++)E[2*t]=0;for(t=0;30>t;t++)M[2*t]=0;for(t=0;19>t;t++)K[2*t]=0;E[512]=1,e.ue=e.we=0,W=j=0}function G(e,t){let n,r=-1,s=e[1],i=0,o=7,c=4;0===s&&(o=138,c=3),e[2*(t+1)+1]=65535;for(let f=0;t>=f;f++)n=s,s=e[2*(f+1)+1],++ii?K[2*n]+=i:0!==n?(n!=r&&K[2*n]++,K[32]++):i>10?K[36]++:K[34]++,i=0,r=n,0===s?(o=138,c=3):n==s?(o=6,c=3):(o=7,c=4))}function J(t){e.Ue[e.pending++]=t}function Q(e){J(255&e),J(e>>>8&255)}function X(e,t){let n;const r=t;F>16-r?(n=e,L|=n<>>16-F,F+=r-16):(L|=e<=n;n++)if(r=i,i=e[2*(n+1)+1],++o>=c||r!=i){if(f>o)do{Y(r,K)}while(0!=--o);else 0!==r?(r!=s&&(Y(r,K),o--),Y(16,K),X(o-3,2)):o>10?(Y(18,K),X(o-11,7)):(Y(17,K),X(o-3,3));o=0,s=r,0===i?(c=138,f=3):r==i?(c=6,f=3):(c=7,f=4)}}function $(){16==F?(Q(L),L=0,F=0):8>F||(J(255&L),L>>>=8,F-=8)}function ee(t,n){let s,i,o;if(e.Ne[W]=t,e.Oe[W]=255&n,W++,0===t?E[2*n]++:(j++,t--,E[2*(Ke.ge[n]+256+1)]++,M[2*Ke.Se(t)]++),0==(8191&W)&&V>2){for(s=8*W,i=C-k,o=0;30>o;o++)s+=M[2*o]*(5+Ke.Ce[o]);if(s>>>=3,jc);Y(256,t),H=t[513]}function ne(){F>8?Q(L):F>0&&J(255&L),L=0,F=0}function re(t,n,r){X(0+(r?1:0),3),((t,n)=>{ne(),H=8,Q(n),Q(~n),e.Ue.set(u.subarray(t,t+n),e.pending),e.pending+=n})(t,n)}function se(n){((t,n,r)=>{let s,i,o=0;V>0?(U.ne(e),N.ne(e),o=(()=>{let t;for(G(E,U.he),G(M,N.he),O.ne(e),t=18;t>=3&&0===K[2*Ke._e[t]+1];t--);return e.ue+=14+3*(t+1),t})(),s=e.ue+3+7>>>3,i=e.we+3+7>>>3,i>s||(s=i)):s=i=n+5,n+4>s||-1==t?i==s?(X(2+(r?1:0),3),te(Ue.Ae,Ue.Be)):(X(4+(r?1:0),3),((e,t,n)=>{let r;for(X(e-257,5),X(t-1,5),X(n-4,4),r=0;n>r;r++)X(K[2*Ke._e[r]+1],3);Z(E,e-1),Z(M,t-1)})(U.he+1,N.he+1,o+1),te(E,M)):re(t,n,r),q(),r&&ne()})(0>k?-1:k,C-k,n),k=C,t.Te()}function ie(){let e,n,r,s;do{if(s=w-_-C,0===s&&0===C&&0===_)s=f;else if(-1==s)s--;else if(C>=f+f-Fe){u.set(u.subarray(f,f+f),0),x-=f,C-=f,k-=f,e=y,r=e;do{n=65535&d[--r],d[r]=f>n?0:n-f}while(0!=--e);e=f,r=e;do{n=65535&h[--r],h[r]=f>n?0:n-f}while(0!=--e);s+=f}if(0===t.We)return;e=t.je(u,C+_,s),_+=e,3>_||(p=255&u[C],p=(p<_&&0!==t.We)}function oe(e){let t,n,r=I,s=C,i=A;const o=C>f-Fe?C-(f-Fe):0;let c=B;const a=l,w=C+258;let d=u[s+i-1],p=u[s+i];R>A||(r>>=2),c>_&&(c=_);do{if(t=e,u[t+i]==p&&u[t+i-1]==d&&u[t]==u[s]&&u[++t]==u[s+1]){s+=2,t++;do{}while(u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&w>s);if(n=258-(w-s),s=w-258,n>i){if(x=e,i=n,n>=c)break;d=u[s+i-1],p=u[s+i]}}}while((e=65535&h[e&a])>o&&0!=--r);return i>_?_:i}e.le=[],e.be=[],e.ae=[],E=[],M=[],K=[],e.de=(t,n)=>{const r=e.ae,s=r[n];let i=n<<1;for(;i<=e.ce&&(i(W||(W=8),j||(j=8),G||(G=0),t.Le=null,-1==S&&(S=6),1>j||j>9||8!=W||9>x||x>15||0>S||S>9||0>G||G>2?Re:(t.Fe=e,a=x,f=1<(t.qe=t.Ge=0,t.Le=null,e.pending=0,e.Je=0,n=He,c=0,U.re=E,U.ie=Ue.Ee,N.re=M,N.ie=Ue.Me,O.re=K,O.ie=Ue.Ke,L=0,F=0,H=8,q(),(()=>{w=2*f,d[y-1]=0;for(let e=0;y-1>e;e++)d[e]=0;D=We[V].De,R=We[V].Ie,B=We[V].Ve,I=We[V].Pe,C=0,k=0,_=0,v=A=2,z=0,p=0})(),0))(t))),e.Qe=()=>42!=n&&n!=He&&n!=Le?Re:(e.Oe=null,e.Ne=null,e.Ue=null,d=null,h=null,u=null,e.Fe=null,n==He?-3:0),e.Xe=(e,t,n)=>{let r=0;return-1==t&&(t=6),0>t||t>9||0>n||n>2?Re:(We[V].Re!=We[t].Re&&0!==e.qe&&(r=e.Ye(1)),V!=t&&(V=t,D=We[V].De,R=We[V].Ie,B=We[V].Ve,I=We[V].Pe),P=n,r)},e.Ze=(e,t,r)=>{let s,i=r,o=0;if(!t||42!=n)return Re;if(3>i)return 0;for(i>f-Fe&&(i=f-Fe,o=r-i),u.set(t.subarray(o,o+i),0),C=i,k=i,p=255&u[0],p=(p<=s;s++)p=(p<{let o,w,m,I,R;if(i>4||0>i)return Re;if(!r.$e||!r.et&&0!==r.We||n==Le&&4!=i)return r.Le=je[4],Re;if(0===r.tt)return r.Le=je[7],-5;var B;if(t=r,I=c,c=i,42==n&&(w=8+(a-8<<4)<<8,m=(V-1&255)>>1,m>3&&(m=3),w|=m<<6,0!==C&&(w|=32),w+=31-w%31,n=He,J((B=w)>>8&255),J(255&B)),0!==e.pending){if(t.Te(),0===t.tt)return c=-1,0}else if(0===t.We&&I>=i&&4!=i)return t.Le=je[7],-5;if(n==Le&&0!==t.We)return r.Le=je[7],-5;if(0!==t.We||0!==_||0!=i&&n!=Le){switch(R=-1,We[V].Re){case 0:R=(e=>{let n,r=65535;for(r>s-5&&(r=s-5);;){if(1>=_){if(ie(),0===_&&0==e)return 0;if(0===_)break}if(C+=_,_=0,n=k+r,(0===C||C>=n)&&(_=C-n,C=n,se(!1),0===t.tt))return 0;if(C-k>=f-Fe&&(se(!1),0===t.tt))return 0}return se(4==e),0===t.tt?4==e?2:0:4==e?3:1})(i);break;case 1:R=(e=>{let n,r=0;for(;;){if(Fe>_){if(ie(),Fe>_&&0==e)return 0;if(0===_)break}if(3>_||(p=(p<f-Fe||2!=P&&(v=oe(r)),3>v)n=ee(0,255&u[C]),_--,C++;else if(n=ee(C-x,v-3),_-=v,v>D||3>_)C+=v,v=0,p=255&u[C],p=(p<{let n,r,s=0;for(;;){if(Fe>_){if(ie(),Fe>_&&0==e)return 0;if(0===_)break}if(3>_||(p=(p<A&&f-Fe>=(C-s&65535)&&(2!=P&&(v=oe(s)),5>=v&&(1==P||3==v&&C-x>4096)&&(v=2)),3>A||v>A)if(0!==z){if(n=ee(0,255&u[C-1]),n&&se(!1),C++,_--,0===t.tt)return 0}else z=1,C++,_--;else{r=C+_-3,n=ee(C-1-S,A-3),_-=A-1,A-=2;do{++C>r||(p=(p<1+H+10-F&&(X(2,3),Y(256,Ue.Ae),$()),H=7;else if(re(0,0,!1),3==i)for(o=0;y>o;o++)d[o]=0;if(t.Te(),0===t.tt)return c=-1,0}}return 4!=i?0:1}}function Je(){const e=this;e.nt=0,e.rt=0,e.We=0,e.qe=0,e.tt=0,e.Ge=0}function Qe(e){const t=new Je,n=(o=e&&e.chunkSize?e.chunkSize:65536)+5*(r.floor(o/16383)+1);var o;const c=new i(n);let f=e?e.level:-1;void 0===f&&(f=-1),t.He(f),t.$e=c,this.append=(e,r)=>{let o,f,a=0,l=0,u=0;const w=[];if(e.length){t.nt=0,t.et=e,t.We=e.length;do{if(t.rt=0,t.tt=n,o=t.Ye(0),0!=o)throw new s("deflating: "+t.Le);t.rt&&(t.rt==n?w.push(new i(c)):w.push(c.slice(0,t.rt))),u+=t.rt,r&&t.nt>0&&t.nt!=a&&(r(t.nt),a=t.nt)}while(t.We>0||0===t.tt);return w.length>1?(f=new i(u),w.forEach((e=>{f.set(e,l),l+=e.length}))):f=w[0]||new i,f}},this.flush=()=>{let e,r,o=0,f=0;const a=[];do{if(t.rt=0,t.tt=n,e=t.Ye(4),1!=e&&0!=e)throw new s("deflating: "+t.Le);n-t.tt>0&&a.push(c.slice(0,t.rt)),f+=t.rt}while(t.We>0||0===t.tt);return t.Qe(),r=new i(f),a.forEach((e=>{r.set(e,o),o+=e.length})),r}}Je.prototype={He(e,t){const n=this;return n.Fe=new Ge,t||(t=15),n.Fe.He(n,e,t)},Ye(e){const t=this;return t.Fe?t.Fe.Ye(t,e):Re},Qe(){const e=this;if(!e.Fe)return Re;const t=e.Fe.Qe();return e.Fe=null,t},Xe(e,t){const n=this;return n.Fe?n.Fe.Xe(n,e,t):Re},Ze(e,t){const n=this;return n.Fe?n.Fe.Ze(n,e,t):Re},je(e,t,n){const r=this;let s=r.We;return s>n&&(s=n),0===s?0:(r.We-=s,e.set(r.et.subarray(r.nt,r.nt+s),t),r.nt+=s,r.qe+=s,s)},Te(){const e=this;let t=e.Fe.pending;t>e.tt&&(t=e.tt),0!==t&&(e.$e.set(e.Fe.Ue.subarray(e.Fe.Je,e.Fe.Je+t),e.rt),e.rt+=t,e.Fe.Je+=t,e.Ge+=t,e.tt-=t,e.Fe.pending-=t,0===e.Fe.pending&&(e.Fe.Je=0))}};const Xe=-2,Ye=-3,Ze=-5,$e=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],et=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],tt=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],nt=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],rt=[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,112,112],st=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],it=[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];function ot(){let e,t,n,r,s,i;function o(e,t,o,c,f,a,l,u,w,h,d){let p,y,m,b,g,k,v,S,z,C,x,_,A,I,D;C=0,g=o;do{n[e[t+C]]++,C++,g--}while(0!==g);if(n[0]==o)return l[0]=-1,u[0]=0,0;for(S=u[0],k=1;15>=k&&0===n[k];k++);for(v=k,k>S&&(S=k),g=15;0!==g&&0===n[g];g--);for(m=g,S>g&&(S=g),u[0]=S,I=1<k;k++,I<<=1)if(0>(I-=n[k]))return Ye;if(0>(I-=n[g]))return Ye;for(n[g]+=I,i[1]=k=0,C=1,A=2;0!=--g;)i[A]=k+=n[C],A++,C++;g=0,C=0;do{0!==(k=e[t+C])&&(d[i[k]++]=g),C++}while(++g=v;v++)for(p=n[v];0!=p--;){for(;v>_+S;){if(b++,_+=S,D=m-_,D=D>S?S:D,(y=1<<(k=v-_))>p+1&&(y-=p+1,A=v,D>k))for(;++kn[++A];)y-=n[A];if(D=1<1440)return Ye;s[b]=x=h[0],h[0]+=D,0!==b?(i[b]=g,r[0]=k,r[1]=S,k=g>>>_-S,r[2]=x-s[b-1]-k,w.set(r,3*(s[b-1]+k))):l[0]=x}for(r[1]=v-_,o>C?d[C]d[C]?0:96,r[2]=d[C++]):(r[0]=a[d[C]-c]+16+64,r[2]=f[d[C++]-c]):r[0]=192,y=1<>>_;D>k;k+=y)w.set(r,3*(x+k));for(k=1<>>=1)g^=k;for(g^=k,z=(1<<_)-1;(g&z)!=i[b];)b--,_-=S,z=(1<<_)-1}return 0!==I&&1!=m?Ze:0}function c(o){let c;for(e||(e=[],t=[],n=new f(16),r=[],s=new f(15),i=new f(16)),t.lengthc;c++)t[c]=0;for(c=0;16>c;c++)n[c]=0;for(c=0;3>c;c++)r[c]=0;s.set(n.subarray(0,15),0),i.set(n.subarray(0,16),0)}this.st=(n,r,s,i,f)=>{let a;return c(19),e[0]=0,a=o(n,0,19,19,null,null,s,r,i,e,t),a==Ye?f.Le="oversubscribed dynamic bit lengths tree":a!=Ze&&0!==r[0]||(f.Le="incomplete dynamic bit lengths tree",a=Ye),a},this.it=(n,r,s,i,f,a,l,u,w)=>{let h;return c(288),e[0]=0,h=o(s,0,n,257,nt,rt,a,i,u,e,t),0!=h||0===i[0]?(h==Ye?w.Le="oversubscribed literal/length tree":-4!=h&&(w.Le="incomplete literal/length tree",h=Ye),h):(c(288),h=o(s,n,r,0,st,it,l,f,u,e,t),0!=h||0===f[0]&&n>257?(h==Ye?w.Le="oversubscribed distance tree":h==Ze?(w.Le="incomplete distance tree",h=Ye):-4!=h&&(w.Le="empty distance tree with lengths",h=Ye),h):0)}}function ct(){const e=this;let t,n,r,s,i=0,o=0,c=0,f=0,a=0,l=0,u=0,w=0,h=0,d=0;function p(e,t,n,r,s,i,o,c){let f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,z;d=c.nt,p=c.We,w=o.ot,h=o.ct,y=o.write,m=yh;)p--,w|=(255&c.ft(d++))<>=a[z+1],h-=a[z+1],0!=(16&u)){for(u&=15,k=a[z+2]+(w&$e[u]),w>>=u,h-=u;15>h;)p--,w|=(255&c.ft(d++))<>=a[z+1],h-=a[z+1],0!=(16&u)){for(u&=15;u>h;)p--,w|=(255&c.ft(d++))<>=u,h-=u,m-=k,v>y){S=y-v;do{S+=o.end}while(0>S);if(u=o.end-S,k>u){if(k-=u,y-S>0&&u>y-S)do{o.lt[y++]=o.lt[S++]}while(0!=--u);else o.lt.set(o.lt.subarray(S,S+u),y),y+=u,S+=u,u=0;S=0}}else S=y-v,y-S>0&&2>y-S?(o.lt[y++]=o.lt[S++],o.lt[y++]=o.lt[S++],k-=2):(o.lt.set(o.lt.subarray(S,S+2),y),y+=2,S+=2,k-=2);if(y-S>0&&k>y-S)do{o.lt[y++]=o.lt[S++]}while(0!=--k);else o.lt.set(o.lt.subarray(S,S+k),y),y+=k,S+=k,k=0;break}if(0!=(64&u))return c.Le="invalid distance code",k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,Ye;f+=a[z+2],f+=w&$e[u],z=3*(l+f),u=a[z]}break}if(0!=(64&u))return 0!=(32&u)?(k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,1):(c.Le="invalid literal/length code",k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,Ye);if(f+=a[z+2],f+=w&$e[u],z=3*(l+f),0===(u=a[z])){w>>=a[z+1],h-=a[z+1],o.lt[y++]=a[z+2],m--;break}}else w>>=a[z+1],h-=a[z+1],o.lt[y++]=a[z+2],m--}while(m>=258&&p>=10);return k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,0}e.init=(e,i,o,c,f,a)=>{t=0,u=e,w=i,r=o,h=c,s=f,d=a,n=null},e.ut=(e,y,m)=>{let b,g,k,v,S,z,C,x=0,_=0,A=0;for(A=y.nt,v=y.We,x=e.ot,_=e.ct,S=e.write,z=S=258&&v>=10&&(e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,m=p(u,w,r,h,s,d,e,y),A=y.nt,v=y.We,x=e.ot,_=e.ct,S=e.write,z=S_;){if(0===v)return e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(A++))<<_,_+=8}if(g=3*(o+(x&$e[b])),x>>>=n[g+1],_-=n[g+1],k=n[g],0===k){f=n[g+2],t=6;break}if(0!=(16&k)){a=15&k,i=n[g+2],t=2;break}if(0==(64&k)){c=k,o=g/3+n[g+2];break}if(0!=(32&k)){t=7;break}return t=9,y.Le="invalid literal/length code",m=Ye,e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);case 2:for(b=a;b>_;){if(0===v)return e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(A++))<<_,_+=8}i+=x&$e[b],x>>=b,_-=b,c=w,n=s,o=d,t=3;case 3:for(b=c;b>_;){if(0===v)return e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(A++))<<_,_+=8}if(g=3*(o+(x&$e[b])),x>>=n[g+1],_-=n[g+1],k=n[g],0!=(16&k)){a=15&k,l=n[g+2],t=4;break}if(0==(64&k)){c=k,o=g/3+n[g+2];break}return t=9,y.Le="invalid distance code",m=Ye,e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);case 4:for(b=a;b>_;){if(0===v)return e.ot=x,e.ct=_,y.We=v,y.qe+=A-y.nt,y.nt=A,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(A++))<<_,_+=8}l+=x&$e[b],x>>=b,_-=b,t=5;case 5:for(C=S-l;0>C;)C+=e.end;for(;0!==i;){if(0===z&&(S==e.end&&0!==e.read&&(S=0,z=S7&&(_-=8,v++,A--),e.write=S,m=e.wt(y,m),S=e.write,z=S{}}ot.dt=(e,t,n,r)=>(e[0]=9,t[0]=5,n[0]=et,r[0]=tt,0);const ft=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function at(e,t){const n=this;let r,s=0,o=0,c=0,a=0;const l=[0],u=[0],w=new ct;let h=0,d=new f(4320);const p=new ot;n.ct=0,n.ot=0,n.lt=new i(t),n.end=t,n.read=0,n.write=0,n.reset=(e,t)=>{t&&(t[0]=0),6==s&&w.ht(e),s=0,n.ct=0,n.ot=0,n.read=n.write=0},n.reset(e,null),n.wt=(e,t)=>{let r,s,i;return s=e.rt,i=n.read,r=(i>n.write?n.end:n.write)-i,r>e.tt&&(r=e.tt),0!==r&&t==Ze&&(t=0),e.tt-=r,e.Ge+=r,e.$e.set(n.lt.subarray(i,i+r),s),s+=r,i+=r,i==n.end&&(i=0,n.write==n.end&&(n.write=0),r=n.write-i,r>e.tt&&(r=e.tt),0!==r&&t==Ze&&(t=0),e.tt-=r,e.Ge+=r,e.$e.set(n.lt.subarray(i,i+r),s),s+=r,i+=r),e.rt=s,n.read=i,t},n.ut=(e,t)=>{let i,f,y,m,b,g,k,v;for(m=e.nt,b=e.We,f=n.ot,y=n.ct,g=n.write,k=gy;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>1){case 0:f>>>=3,y-=3,i=7&y,f>>>=i,y-=i,s=1;break;case 1:S=[],z=[],C=[[]],x=[[]],ot.dt(S,z,C,x),w.init(S[0],z[0],C[0],0,x[0],0),f>>>=3,y-=3,s=6;break;case 2:f>>>=3,y-=3,s=3;break;case 3:return f>>>=3,y-=3,s=9,e.Le="invalid block type",t=Ye,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t)}break;case 1:for(;32>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>16&65535)!=(65535&f))return s=9,e.Le="invalid stored block lengths",t=Ye,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);o=65535&f,f=y=0,s=0!==o?2:0!==h?7:0;break;case 2:if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);if(0===k&&(g==n.end&&0!==n.read&&(g=0,k=gb&&(i=b),i>k&&(i=k),n.lt.set(e.je(m,i),g),m+=i,b-=i,g+=i,k-=i,0!=(o-=i))break;s=0!==h?7:0;break;case 3:for(;14>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<29||(i>>5&31)>29)return s=9,e.Le="too many length or distance symbols",t=Ye,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);if(i=258+(31&i)+(i>>5&31),!r||r.lengthv;v++)r[v]=0;f>>>=14,y-=14,a=0,s=4;case 4:for(;4+(c>>>10)>a;){for(;3>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>=3,y-=3}for(;19>a;)r[ft[a++]]=0;if(l[0]=7,i=p.st(r,l,u,d,e),0!=i)return(t=i)==Ye&&(r=null,s=9),n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);a=0,s=5;case 5:for(;i=c,258+(31&i)+(i>>5&31)>a;){let o,w;for(i=l[0];i>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<w)f>>>=i,y-=i,r[a++]=w;else{for(v=18==w?7:w-14,o=18==w?11:3;i+v>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>=i,y-=i,o+=f&$e[v],f>>>=v,y-=v,v=a,i=c,v+o>258+(31&i)+(i>>5&31)||16==w&&1>v)return r=null,s=9,e.Le="invalid bit length repeat",t=Ye,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);w=16==w?r[v-1]:0;do{r[v++]=w}while(0!=--o);a=v}}if(u[0]=-1,_=[],A=[],I=[],D=[],_[0]=9,A[0]=6,i=c,i=p.it(257+(31&i),1+(i>>5&31),r,_,A,I,D,d,e),0!=i)return i==Ye&&(r=null,s=9),t=i,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);w.init(_[0],A[0],d,I[0],d,D[0]),s=6;case 6:if(n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,1!=(t=w.ut(n,e,t)))return n.wt(e,t);if(t=0,w.ht(e),m=e.nt,b=e.We,f=n.ot,y=n.ct,g=n.write,k=g{n.reset(e,null),n.lt=null,d=null},n.yt=(e,t,r)=>{n.lt.set(e.subarray(t,t+r),0),n.read=n.write=r},n.bt=()=>1==s?1:0}const lt=13,ut=[0,0,255,255];function wt(){const e=this;function t(e){return e&&e.gt?(e.qe=e.Ge=0,e.Le=null,e.gt.mode=7,e.gt.kt.reset(e,null),0):Xe}e.mode=0,e.method=0,e.vt=[0],e.St=0,e.marker=0,e.zt=0,e.Ct=t=>(e.kt&&e.kt.ht(t),e.kt=null,0),e.xt=(n,r)=>(n.Le=null,e.kt=null,8>r||r>15?(e.Ct(n),Xe):(e.zt=r,n.gt.kt=new at(n,1<{let n,r;if(!e||!e.gt||!e.et)return Xe;const s=e.gt;for(t=4==t?Ze:0,n=Ze;;)switch(s.mode){case 0:if(0===e.We)return n;if(n=t,e.We--,e.qe++,8!=(15&(s.method=e.ft(e.nt++)))){s.mode=lt,e.Le="unknown compression method",s.marker=5;break}if(8+(s.method>>4)>s.zt){s.mode=lt,e.Le="invalid win size",s.marker=5;break}s.mode=1;case 1:if(0===e.We)return n;if(n=t,e.We--,e.qe++,r=255&e.ft(e.nt++),((s.method<<8)+r)%31!=0){s.mode=lt,e.Le="incorrect header check",s.marker=5;break}if(0==(32&r)){s.mode=7;break}s.mode=2;case 2:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St=(255&e.ft(e.nt++))<<24&4278190080,s.mode=3;case 3:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St+=(255&e.ft(e.nt++))<<16&16711680,s.mode=4;case 4:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St+=(255&e.ft(e.nt++))<<8&65280,s.mode=5;case 5:return 0===e.We?n:(n=t,e.We--,e.qe++,s.St+=255&e.ft(e.nt++),s.mode=6,2);case 6:return s.mode=lt,e.Le="need dictionary",s.marker=0,Xe;case 7:if(n=s.kt.ut(e,n),n==Ye){s.mode=lt,s.marker=0;break}if(0==n&&(n=t),1!=n)return n;n=t,s.kt.reset(e,s.vt),s.mode=12;case 12:return e.We=0,1;case lt:return Ye;default:return Xe}},e.At=(e,t,n)=>{let r=0,s=n;if(!e||!e.gt||6!=e.gt.mode)return Xe;const i=e.gt;return s<1<{let n,r,s,i,o;if(!e||!e.gt)return Xe;const c=e.gt;if(c.mode!=lt&&(c.mode=lt,c.marker=0),0===(n=e.We))return Ze;for(r=e.nt,s=c.marker;0!==n&&4>s;)e.ft(r)==ut[s]?s++:s=0!==e.ft(r)?0:4-s,r++,n--;return e.qe+=r-e.nt,e.nt=r,e.We=n,c.marker=s,4!=s?Ye:(i=e.qe,o=e.Ge,t(e),e.qe=i,e.Ge=o,c.mode=7,0)},e.Dt=e=>e&&e.gt&&e.gt.kt?e.gt.kt.bt():Xe}function ht(){}function dt(e){const t=new ht,n=e&&e.chunkSize?r.floor(2*e.chunkSize):131072,o=new i(n);let c=!1;t.xt(),t.$e=o,this.append=(e,r)=>{const f=[];let a,l,u=0,w=0,h=0;if(0!==e.length){t.nt=0,t.et=e,t.We=e.length;do{if(t.rt=0,t.tt=n,0!==t.We||c||(t.nt=0,c=!0),a=t._t(0),c&&a===Ze){if(0!==t.We)throw new s("inflating: bad input")}else if(0!==a&&1!==a)throw new s("inflating: "+t.Le);if((c||1===a)&&t.We===e.length)throw new s("inflating: bad input");t.rt&&(t.rt===n?f.push(new i(o)):f.push(o.slice(0,t.rt))),h+=t.rt,r&&t.nt>0&&t.nt!=u&&(r(t.nt),u=t.nt)}while(t.We>0||0===t.tt);return f.length>1?(l=new i(h),f.forEach((e=>{l.set(e,w),w+=e.length}))):l=f[0]||new i,l}},this.flush=()=>{t.Ct()}}ht.prototype={xt(e){const t=this;return t.gt=new wt,e||(e=15),t.gt.xt(t,e)},_t(e){const t=this;return t.gt?t.gt._t(t,e):Xe},Ct(){const e=this;if(!e.gt)return Xe;const t=e.gt.Ct(e);return e.gt=null,t},It(){const e=this;return e.gt?e.gt.It(e):Xe},At(e,t){const n=this;return n.gt?n.gt.At(n,e,t):Xe},ft(e){return this.et[e]},je(e,t){return this.et.subarray(e,e+t)}},self.initCodec=()=>{self.Deflate=Qe,self.Inflate=dt};\n'],{type:"text/javascript"}));e({workerScripts:{inflate:[t],deflate:[t]}})}(We),We({Deflate:function(e){const t=new A,n=(i=e&&e.chunkSize?e.chunkSize:65536)+5*(Math.floor(i/16383)+1);var i;const l=s,d=new Uint8Array(n);let f=e?e.level:r;void 0===f&&(f=r),t.deflateInit(f),t.next_out=d,this.append=function(e,i){let r,s,a=0,c=0,f=0;const u=[];if(e.length){t.next_in_index=0,t.next_in=e,t.avail_in=e.length;do{if(t.next_out_index=0,t.avail_out=n,r=t.deflate(l),r!=o)throw new Error("deflating: "+t.msg);t.next_out_index&&(t.next_out_index==n?u.push(new Uint8Array(d)):u.push(d.slice(0,t.next_out_index))),f+=t.next_out_index,i&&t.next_in_index>0&&t.next_in_index!=a&&(i(t.next_in_index),a=t.next_in_index)}while(t.avail_in>0||0===t.avail_out);return u.length>1?(s=new Uint8Array(f),u.forEach((function(e){s.set(e,c),c+=e.length}))):s=u[0]||new Uint8Array,s}},this.flush=function(){let e,i,r=0,s=0;const l=[];do{if(t.next_out_index=0,t.avail_out=n,e=t.deflate(a),e!=c&&e!=o)throw new Error("deflating: "+t.msg);n-t.avail_out>0&&l.push(d.slice(0,t.next_out_index)),s+=t.next_out_index}while(t.avail_in>0||0===t.avail_out);return t.deflateEnd(),i=new Uint8Array(s),l.forEach((function(e){i.set(e,r),r+=e.length})),i}},Inflate:function(e){const t=new we,n=e&&e.chunkSize?Math.floor(2*e.chunkSize):131072,i=new Uint8Array(n);let r=!1;t.inflateInit(),t.next_out=i,this.append=function(e,s){const a=[];let o,c,l=0,d=0,f=0;if(0!==e.length){t.next_in_index=0,t.next_in=e,t.avail_in=e.length;do{if(t.next_out_index=0,t.avail_out=n,0!==t.avail_in||r||(t.next_in_index=0,r=!0),o=t.inflate(0),r&&o===E){if(0!==t.avail_in)throw new Error("inflating: bad input")}else if(o!==U&&o!==W)throw new Error("inflating: "+t.msg);if((r||o===W)&&t.avail_in===e.length)throw new Error("inflating: bad input");t.next_out_index&&(t.next_out_index===n?a.push(new Uint8Array(i)):a.push(i.slice(0,t.next_out_index))),f+=t.next_out_index,s&&t.next_in_index>0&&t.next_in_index!=l&&(s(t.next_in_index),l=t.next_in_index)}while(t.avail_in>0||0===t.avail_out);return a.length>1?(c=new Uint8Array(f),a.forEach((function(e){c.set(e,d),d+=e.length}))):c=a[0]||new Uint8Array,c}},this.flush=function(){t.inflateEnd()}}});var li;!function(e){e[e.Silent=0]="Silent",e[e.Debug=1]="Debug",e[e.Verbose=2]="Verbose"}(li||(li={}));let di=li.Silent;function fi(...e){di>=1&&console.log(...e)}function ui(...e){di>=2&&console.log(...e)}function mi(e){di=e}function pi(e){return new Promise(((t,n)=>{let i=new FileReader;i.onload=()=>{t(i.result)},i.onerror=()=>{n(i.error)},i.readAsArrayBuffer(e)}))}async function hi(e,t,n,i,r){let s=(new Date).getTime(),a=!1;e(t,n,0);let o=(async()=>{let r,o=s+i;do{r=(new Date).getTime(),e(t,n,(r-s)/i),await new Promise(((e,t)=>{window.requestAnimationFrame(e)}))}while(!a&&re.blocks)).reduce(((e,t)=>e+t),0)}async function qi(e,t){let n=new Ai,i=new ArrayBuffer(_i),r=new DataView(i),s=new Uint8Array(i);r.setUint32(0,bi,!0),r.setUint16(4,vi,!0),r.setUint16(6,yi,!0),r.setUint16(8,_i,!0),r.setUint16(10,ki,!0),r.setUint32(12,e.blockSize,!0),r.setUint32(16,e.blocks,!0),r.setUint32(20,t.length,!0),r.setUint32(24,0,!0),n.append(new Blob([i]));for(let e of t){i=new ArrayBuffer(ki+e.data.size),r=new DataView(i),s=new Uint8Array(i),r.setUint16(0,e.type,!0),r.setUint16(2,0,!0),r.setUint32(4,e.blocks,!0),r.setUint32(8,ki+e.data.size,!0);let t=new Uint8Array(await pi(e.data));s.set(t,ki),n.append(new Blob([i]))}return n.getBlob()}!function(e){e[e.CheckRequirements=0]="CheckRequirements",e[e.CheckVar=1]="CheckVar",e[e.Erase=2]="Erase",e[e.Flash=3]="Flash",e[e.MaybeCancelSnapshotUpdate=4]="MaybeCancelSnapshotUpdate",e[e.RebootBootloader=5]="RebootBootloader",e[e.RunCmd=6]="RunCmd",e[e.ToggleActiveSlot=7]="ToggleActiveSlot"}(Ci||(Ci={}));class ji{constructor(e,t){this.zipEntries=e,this.commands=t;let n=0;for(let i of t)if(i.type===Ci.Flash){let t=i;n+=e.get(t.fileName).uncompressedSize}this.totalFlashBytes=n}static async parse(e){let t;for(let[n,i]of e)if(n.endsWith("/script.txt")){t=i;break}if(void 0===t)throw new Error("script.txt not found");let n=t.filename.slice(0,-"script.txt".length),i=await xi(t);fi("script.txt:\n"+i);let r=i.split("\n"),s=[];for(let e of r){if(0===e.length||e.startsWith("#"))continue;let t,i,r=e.split(" "),a=r[0];switch(a){case"check-requirements":t={type:Ci.CheckRequirements,fileName:n+r[1]},i=2;break;case"check-var":t={type:Ci.CheckVar,varName:r[1],expectedValue:r[2]},i=3;break;case"erase":t={type:Ci.Erase,partition:r[1]},i=2;break;case"flash":let s={type:Ci.Flash,partition:r[1],fileName:n+r[2]};if(t=s,r.length>3){if("other-slot"!==r[3])throw new Error("invalid command: "+e);s.slot=Hi.Other,i=4}else s.slot=Hi.Current,i=3;break;case"maybe-cancel-snapshot-update":t={type:Ci.MaybeCancelSnapshotUpdate},i=1;break;case"reboot-bootloader":t={type:Ci.RebootBootloader},i=1;break;case"run-cmd":t={type:Ci.RunCmd,command:e.substring(a.length+1)},i=r.length;break;case"toggle-active-slot":t={type:Ci.ToggleActiveSlot},i=1;break;default:throw new Error("unknown command "+e)}if(r.length!==i)throw new Error(`invalid command ${e}`);s.push(t)}return new ji(e,s)}}function Ei(e,t){return e<0?Math.max(e+t,0):Math.min(e,t)}class $i extends fn{constructor(e,t){super(e),this.blob=e,this.offset=t.offset+t.headerSize,this.size=t.compressedSize}async readUint8Array(e,t){const n=Ei(e,this.size)+this.offset,i=Ei(e+t,this.size)+this.offset,r=this.blob.slice(n,i);return new Uint8Array(await r.arrayBuffer())}}class Di extends fn{constructor(e,t,n,i){super(),this.blob=e,this.entry=t,this.mimeString=n,this.options=i}async init(){const e=await async function(e,t){const n=t.offset,i=await e.slice(n,n+30).arrayBuffer(),r=new DataView(i);return{offset:n,compressionMethod:r.getUint16(8,!0),compressedSize:r.getUint32(18,!0),uncompressedSize:r.getUint32(22,!0),headerSize:30+r.getUint16(26,!0)+r.getUint16(28,!0)}}(this.blob,this.entry);if(0!==e.compressionMethod){const e=await gi(this.entry,new pn(this.mimeString),this.options);this.reader=new mn(e)}else this.reader=new $i(this.blob,e);this.size=this.reader.size}async readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class Li extends un{constructor(e,t,n){super(),this.consumer=t,this.streamLength=n,this.pendingChunkOffset=0,this.streamOffset=0,this.pendingChunk=new Uint8Array(e)}async init(e){if(this.streamLength!==e)throw new Error(`size (${e}) != streamLength (${this.streamLength}`)}async sendToConsumer(e){await this.consumer(e),this.streamOffset+=e.byteLength}async writeUint8Array(e){let t=0;const n=e.length,i=this.pendingChunk.length;for(;t0||rthis.streamLength)throw new Error(`streamOffset overflow: streamOffset ${this.streamOffset}, pendingChunkOffset ${this.pendingChunkOffset}, streamLength ${this.streamLength}`);0!==this.pendingChunkOffset&&this.streamOffset+this.pendingChunkOffset===this.streamLength&&(fi(`ChunkedWriter: sending remainder: ${this.pendingChunkOffset} bytes, streamLength: ${this.streamLength} bytes`),await this.sendToConsumer(this.pendingChunk.slice(0,this.pendingChunkOffset)),this.pendingChunkOffset=0)}async getData(){return this.streamOffset}}const Oi=["boot","dt","dtbo","init_boot","pvmfw","recovery","vbmeta_system","vbmeta_vendor","vbmeta","vendor_boot","vendor_kernel_boot"],Ri=["odm","odm_dlkm","product","system_dlkm","system_ext","system","vendor_dlkm","vendor"],Ii={load:"Loading",unpack:"Unpacking",flash:"Writing",wipe:"Wiping",reboot:"Restarting"},Ti=4e3;async function Bi(e,t,n,i){const r=await gi(t,new pn("application/octet-stream"),{onstart(e){fi(`Unpacking ${i} (${e} bytes)`),n("unpack",i,0)},onprogress(e,t){n("unpack",i,e/t)}});fi(`Flashing ${i}`),n("flash",i,0),await e.flashBlob(i,r,(e=>{n("flash",i,e)}))}async function Vi(e,t,n,i){for(let r of i){let i=new RegExp(`${r}(?:-.+)?\\.img$`),s=t.find((e=>e.filename.match(i)));if(void 0!==s)if("bootloader"==r){let t=await e.getVariable("current-slot");if("a"==t)await Bi(e,s,n,r+"_b"),await e.runCommand("set_active:b");else{if("b"!=t)throw new Xi("FAIL","Invalid slot given by bootloader.");await Bi(e,s,n,r+"_a"),await e.runCommand("set_active:a")}}else await Bi(e,s,n,r)}}async function Mi(e,t){for(let n of t.replace("\r","").split("\n")){let t=n.match(/^require\s+(.+?)=(.+)$/);if(!t)continue;let i=t[1];"board"===i&&(i="product");let r=t[2],s=r.split("|");if("partition-exists"===i){let t=await e.getVariable(`has-slot:${r}`);if("yes"!==t&&"no"!==t)throw new Xi("FAIL",`Requirement ${i}=${r} failed, device lacks partition`);if(!Oi.includes(r)&&!Ri.includes(r))throw new Xi("FAIL",`Requirement ${i}=${r} failed, unrecognized partition`)}else{let t=await e.getVariable(i);if(!s.includes(t)){let e=`Requirement ${i}=${r} failed, value = ${t}`;throw fi(e),new Xi("FAIL",e)}fi(`Requirement ${i}=${r} passed`)}}}async function Ki(e,t,n){try{await e.reboot(t,!1)}catch(e){}await e.waitForConnect(n)}async function Pi(e,t,n,i,r=((e,t,n)=>{})){r("load","package",0);let s=new Zn(new mn(t)),a=await s.getEntries();if(void 0!==a.find((e=>e.filename.endsWith("/script.txt"))))return void await async function(e,t,n,i,r=((e,t,n)=>{})){let s=new Map;for(let e of t)s.set(e.filename,e);let a=await ji.parse(s),o=0;for(let t of a.commands){let c=o/a.totalFlashBytes;switch(t.type){case Ci.CheckRequirements:{let n=t,i=s.get(n.fileName);await Mi(e,await xi(i));break}case Ci.CheckVar:{let n=t,i=await e.getVariable(n.varName);if(i!==n.expectedValue)throw new Error(`unexpected value of ${n.varName} variable: expected ${n.expectedValue}, got ${i}`);fi(`checked that ${n.varName} is ${n.expectedValue}`);break}case Ci.Erase:{let i=t;r("wipe",i.partition,c),n||"avb_custom_key"===i.partition?await e.runCommand(`erase:${i.partition}`):fi(`skipped EraseCommand for ${i.partition} since "wipe" param is false`);break}case Ci.Flash:{let n=t,i=s.get(n.fileName),l=e=>{r("flash",n.fileName,c+e*(i.uncompressedSize/a.totalFlashBytes))};await e.flashZipEntry(n.partition,n.slot,i,l),o+=i.uncompressedSize;break}case Ci.MaybeCancelSnapshotUpdate:{let t=await e.getVariable("snapshot-update-status");null!==t&&"none"!==t&&await e.runCommand("snapshot-update:cancel");break}case Ci.RebootBootloader:r("reboot","device",c),await Ki(e,"bootloader",i);break;case Ci.RunCmd:{let n=t;await e.runCommand(n.command);break}case Ci.ToggleActiveSlot:{let t=await e.getVariable("current-slot");await e.runCommand("set_active:"+Gi(t));break}default:throw new Error("unknown command: "+t.type)}}fi("flashOptimizedFactoryZip() has completed")}(e,a,n,i,r);"yes"===await e.getVariable("is-userspace")&&await e.reboot("bootloader",!0,i),await Vi(e,a,r,["bootloader"]),await hi(r,"reboot","device",Ti,Ki(e,"bootloader",i)),await Vi(e,a,r,["bootloader"]),await hi(r,"reboot","device",Ti,Ki(e,"bootloader",i)),await Vi(e,a,r,["radio"]),await hi(r,"reboot","device",Ti,Ki(e,"bootloader",i));let o=await e.getVariable("snapshot-update-status");null!==o&&"none"!==o&&await e.runCommand("snapshot-update:cancel");let c=a.find((e=>e.filename.match(/image-.+\.zip$/)));const l=new Zn(new Di(t,c,"application/zip",{onstart(e){fi(`Loading nested images from zip (${e} bytes)`),r("unpack","images",0)},onprogress(e,t){r("unpack","images",e/t)}})),d=await l.getEntries();if(c=d.find((e=>"android-info.txt"===e.filename)),void 0!==c){const t=await gi(c,new hn);await Mi(e,t)}if(await Vi(e,d,r,Oi),c=d.find((e=>"super_empty.img"===e.filename)),void 0!==c){await hi(r,"reboot","device",16e3,e.reboot("fastboot",!0,i));let t=await e.getVariable("super-partition-name");t||(t="super");let s=n?"wipe":"flash";r(s,"super",0);const a=await gi(c,new pn("application/octet-stream"));await e.upload(t,await pi(a),(e=>{r(s,"super",e)})),await e.runCommand(`update-super:${t}${n?":wipe":""}`)}await Vi(e,d,r,Ri),"yes"===await e.getVariable("is-userspace")&&await hi(r,"reboot","device",Ti,e.reboot("bootloader",!0,i)),c=a.find((e=>e.filename.endsWith("avb_pkmd.bin"))),void 0!==c&&(await e.runCommand("erase:avb_custom_key"),await Bi(e,c,r,"avb_custom_key")),n&&await hi(r,"wipe","data",1e3,e.runCommand("erase:userdata"))}const Ni=16384;class Yi extends Error{constructor(e){super(e),this.name="UsbError"}}class Xi extends Error{constructor(e,t){super(`Bootloader replied with ${e}: ${t}`),this.status=e,this.bootloaderMessage=t,this.name="FastbootError"}}class Zi{constructor(){this.device=null,this.epIn=null,this.epOut=null,this._registeredUsbListeners=!1,this._connectResolve=null,this._connectReject=null,this._disconnectResolve=null}get isConnected(){return null!==this.device&&this.device.opened&&this.device.configurations[0].interfaces[0].claimed}async _validateAndConnectDevice(){if(null===this.device)throw new Yi("Attempted to connect to null device");let e=this.device.configurations[0].interfaces[0].alternates[0];if(2!==e.endpoints.length)throw new Yi("Interface has wrong number of endpoints");this.epIn=null,this.epOut=null;for(let t of e.endpoints){if(ui("Checking endpoint:",t),"bulk"!==t.type)throw new Yi("Interface endpoint is not bulk");if("in"===t.direction){if(null!==this.epIn)throw new Yi("Interface has multiple IN endpoints");this.epIn=t.endpointNumber}else if("out"===t.direction){if(null!==this.epOut)throw new Yi("Interface has multiple OUT endpoints");this.epOut=t.endpointNumber}}ui("Endpoints: in =",this.epIn,", out =",this.epOut);try{await this.device.open();try{await this.device.reset()}catch(e){}await this.device.selectConfiguration(1),await this.device.claimInterface(0)}catch(e){throw null!==this._connectReject&&(this._connectReject(e),this._connectResolve=null,this._connectReject=null),e}null!==this._connectResolve&&(this._connectResolve(void 0),this._connectResolve=null,this._connectReject=null)}async waitForDisconnect(){if(null!==this.device)return await new Promise(((e,t)=>{this._disconnectResolve=e}))}async waitForConnect(e=(()=>{})){return navigator.userAgent.includes("Android")&&(await this.waitForDisconnect(),e()),await new Promise(((e,t)=>{this._connectResolve=e,this._connectReject=t}))}async connect(){let e=await navigator.usb.getDevices();fi("Found paired USB devices:",e),1===e.length?this.device=e[0]:(fi("No or multiple paired devices are connected, requesting one"),this.device=await navigator.usb.requestDevice({filters:[{classCode:255,subclassCode:66,protocolCode:3}]})),fi("Using USB device:",this.device),this._registeredUsbListeners||(navigator.usb.addEventListener("disconnect",(e=>{e.device===this.device&&(fi("USB device disconnected"),null!==this._disconnectResolve&&(this._disconnectResolve(void 0),this._disconnectResolve=null))})),navigator.usb.addEventListener("connect",(async e=>{fi("USB device connected"),this.device=e.device;let t=null!==this._connectReject;try{await this._validateAndConnectDevice()}catch(e){if(!t)throw e}})),this._registeredUsbListeners=!0),await this._validateAndConnectDevice()}async _readResponse(){let e,t={text:""};do{let n=await this.device.transferIn(this.epIn,64),i=(new TextDecoder).decode(n.data);e=i.substring(0,4);let r=i.substring(4);if(fi(`Response: ${e} ${r}`),"OKAY"===e)t.text+=r;else if("INFO"===e)t.text+=r+"\n";else{if("DATA"!==e)throw new Xi(e,r);t.dataSize=r}}while("INFO"===e);return t}async runCommand(e){if(e.length>64)throw new RangeError;let t=(new TextEncoder).encode(e);return await this.transferOut(t),fi("Command:",e),this._readResponse()}async getVariable(e){let t;try{t=(await(n=this.runCommand(`getvar:${e}`),i=1e4,new Promise(((e,t)=>{let r=!1,s=setTimeout((()=>{r=!0,t(new wi(i))}),i);n.then((t=>{r||e(t)})).catch((e=>{r||t(e)})).finally((()=>{r||clearTimeout(s)}))})))).text}catch(e){if(!(e instanceof Xi&&"FAIL"==e.status))throw e;t=null}var n,i;return t?t.trim():null}async _getDownloadSize(){try{let e=(await this.getVariable("max-download-size")).toLowerCase();if(e)return Math.min(parseInt(e,16),1073741824)}catch(e){}return 536870912}async _sendRawPayload(e,t){let n=0,i=e.byteLength;for(;i>0;){let r=e.slice(n*Ni,(n+1)*Ni);n%1e3==0&&ui(` Sending ${r.byteLength} bytes to endpoint, ${i} remaining, i=${n}`),n%10==0&&t((e.byteLength-i)/e.byteLength),await this.transferOut(r),i-=r.byteLength,n+=1}t(1)}async transferOut(e){let t=await this.device.transferOut(this.epOut,e);if("ok"!==t.status)throw new Yi(`USBDevice.transferOut failed: ${t.status}`);if(t.bytesWritten!==e.byteLength)throw new Yi(`USBDevice.transferOut failed: data length (${e.byteLength}) is not equal to bytesWritten (${t.bytesWritten})`)}async upload(e,t,n=(e=>{})){fi(`Uploading single sparse to ${e}: ${t.byteLength} bytes`);let i=t.byteLength.toString(16).padStart(8,"0");if(8!==i.length)throw new Xi("FAIL",`Transfer size overflow: ${i} is more than 8 digits`);let r=await this.runCommand(`download:${i}`);if(void 0===r.dataSize)throw new Xi("FAIL",`Unexpected response to download command: ${r.text}`);let s=parseInt(r.dataSize,16);if(s!==t.byteLength)throw new Xi("FAIL",`Bootloader wants ${s} bytes, requested to send ${t.byteLength} bytes`);fi(`Sending payload: ${t.byteLength} bytes`),await this._sendRawPayload(t,n),fi("Payload sent, waiting for response..."),await this._readResponse()}async uploadZipEntry(e,t,n=(e=>{})){const i=t.uncompressedSize;fi(`Uploading ${i} bytes to ${e}`);let r=i.toString(16).padStart(8,"0");if(8!==r.length)throw new Xi("FAIL",`Transfer size overflow: ${r} is more than 8 digits`);let s=await this.runCommand(`download:${r}`);if(void 0===s.dataSize)throw new Xi("FAIL",`Unexpected response to download command: ${s.text}`);let a=parseInt(s.dataSize,16);if(a!==i)throw new Xi("FAIL",`Bootloader wants ${a} bytes, requested to send ${i} bytes`);fi(`Sending payload: ${i} bytes`);let o=0,c=0,l=0;n(0);let d=await gi(t,new Li(Ni,(async e=>{await this.transferOut(e),o+=e.byteLength,o-c>=5242880&&(n(o/i),c=o),o-l>=52428800&&(fi(`sent ${o>>20} MiB / ${i>>20} MiB`),l=o)}),i));if(d!==i)throw new Error(`uncompressedLength (${d} != entryLength (${i}`);if(o!==i)throw new Error(`xferredBytes (${o} != entryLength (${i}`);n(1),fi("Payload sent, waiting for response..."),await this._readResponse()}async reboot(e="",t=!1,n=(()=>{})){e.length>0?await this.runCommand(`reboot-${e}`):await this.runCommand("reboot"),t&&await this.waitForConnect(n)}async flashBlob(e,t,n=(e=>{})){"yes"===await this.getVariable(`has-slot:${e}`)&&(e+="_"+await this.getVariable("current-slot"));let i=await this._getDownloadSize(),r=await pi(t.slice(0,_i)),s=t.size,a=!1;try{let e=Ui(r);null!==e&&(s=e.blocks*e.blockSize,a=!0)}catch(e){}"yes"===await this.getVariable(`is-logical:${e}`)&&(await this.runCommand(`resize-logical-partition:${e}:0`),await this.runCommand(`resize-logical-partition:${e}:${s}`)),t.size>i&&!a&&(fi(`${e} image is raw, converting to sparse`),t=await async function(e){let t={blockSize:4096,blocks:e.size/4096,chunks:1,crc32:0},n=[];for(;e.size>0;){let i=Math.min(e.size,67108864);n.push({type:zi.Raw,blocks:i/t.blockSize,data:e.slice(0,i)}),e=e.slice(i)}return qi(t,n)}(t)),fi(`Flashing ${t.size} bytes to ${e}, ${i} bytes per split`);let o=0,c=0;for await(let r of async function*(e,t){if(fi(`Splitting ${e.size}-byte sparse image into ${t}-byte chunks`),e.size<=t)return fi("Blob fits in 1 payload, not splitting"),void(yield{data:await pi(e),bytes:e.size});let n=Ui(await pi(e.slice(0,_i)));if(null===n)throw new Si("Blob is not a sparse image");n.crc32=0,e=e.slice(_i);let i=[],r=0;for(let a=0;ae.data.size)).reduce(((e,t)=>e+t),0)}(s));if(ui(` Chunk ${a}: type ${o.type}, ${o.dataBytes} bytes / ${o.blocks} blocks, ${c} bytes remaining`),c>=o.dataBytes)ui(" Space is available, adding chunk"),i.push(o),r+=o.blocks*n.blockSize;else{let e=Fi(i);i.push({type:zi.Skip,blocks:n.blocks-e,data:new Blob([]),dataBytes:0}),ui(`Partition is ${n.blocks} blocks, used ${e}, padded with ${n.blocks-e}, finishing split with ${Fi(i)} blocks`);let t=await qi(n,i);fi(`Finished ${t.size}-byte split with ${i.length} chunks`),yield{data:await pi(t),bytes:r},ui(`Starting new split: skipping first ${e} blocks and adding chunk`),i=[{type:zi.Skip,blocks:e,data:new Blob([]),dataBytes:0},o],r=0}}var s;if(i.length>0&&(i.length>1||i[0].type!==zi.Skip)){let e=await qi(n,i);fi(`Finishing final ${e.size}-byte split with ${i.length} chunks`),yield{data:await pi(e),bytes:r}}}(t,i))await this.upload(e,r.data,(e=>{n((c+e*r.bytes)/s)})),fi("Flashing payload..."),await this.runCommand(`flash:${e}`),o+=1,c+=r.bytes;fi(`Flashed ${e} with ${o} split(s)`)}async flashZipEntry(e,t,n,i=(e=>{})){if("yes"===await this.getVariable(`has-slot:${e}`)){let n=await this.getVariable("current-slot");if(null===n)throw new Error("unknown current slot");if(t===Hi.Current)e+="_"+n;else{if(t!==Hi.Other)throw new Error(`unexpected PartitionSlot ${t}`);e+="_"+Gi(n)}}else if(t===Hi.Other)throw new Error(`requested other partition slot, but ${e} is not an A/B partition`);fi(`Flashing ${n.uncompressedSize} bytes to ${e}`),await this.uploadZipEntry(e,n,i),fi("Flashing payload..."),await this.runCommand(`flash:${e}`),fi(`Flashed ${e}`)}async bootBlob(e,t=(e=>{})){fi(`Booting ${e.size} bytes image`);let n=await pi(e);await this.upload("boot.img",n,t),fi("Booting payload..."),await this.runCommand("boot"),fi(`Booted ${e.size} bytes image`)}async flashFactoryZip(e,t,n,i=(e=>{})){return await Pi(this,e,t,n,i)}}var Hi;function Gi(e){if("a"===e)return"b";if("b"===e)return"a";throw new Error("unsupported currentSlot value: "+e)}!function(e){e[e.Current=0]="Current",e[e.Other=1]="Other"}(Hi||(Hi={}));export{Zi as FastbootDevice,Xi as FastbootError,wi as TimeoutError,Ii as USER_ACTION_MAP,Yi as UsbError,We as configureZip,mi as setDebugLevel}; //# sourceMappingURL=fastboot.min.mjs.map