@zip.js/zip.js 2.8.41 → 2.8.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/README.md +37 -0
  2. package/deno.json +6 -2
  3. package/dist/README.md +10 -1
  4. package/dist/zip-core-external.js +8261 -0
  5. package/dist/zip-core-external.min.js +1 -0
  6. package/dist/zip-core.js +144 -11
  7. package/dist/zip-core.min.js +1 -1
  8. package/dist/zip-fs-core-external.js +9277 -0
  9. package/dist/zip-fs-core-external.min.js +1 -0
  10. package/dist/zip-fs-core.js +144 -11
  11. package/dist/zip-fs-core.min.js +1 -1
  12. package/dist/zip-fs-external.js +10914 -0
  13. package/dist/zip-fs-external.min.js +1 -0
  14. package/dist/zip-fs-native.js +146 -13
  15. package/dist/zip-fs-native.min.js +1 -1
  16. package/dist/zip-fs.js +220 -32
  17. package/dist/zip-fs.min.js +1 -1
  18. package/dist/zip-legacy.js +146 -13
  19. package/dist/zip-legacy.min.js +1 -1
  20. package/dist/zip-native.js +146 -13
  21. package/dist/zip-native.min.js +1 -1
  22. package/dist/zip-web-worker-native.js +1 -1
  23. package/dist/zip-web-worker.js +1 -1
  24. package/dist/zip.js +220 -32
  25. package/dist/zip.min.js +1 -1
  26. package/index-native.cjs +146 -13
  27. package/index-native.min.js +1 -1
  28. package/index.cjs +220 -32
  29. package/index.min.js +1 -1
  30. package/lib/core/codec-worker.js +27 -3
  31. package/lib/core/external-assets.js +42 -0
  32. package/lib/core/streams/codec-stream.js +4 -2
  33. package/lib/core/streams/zip-entry-stream.js +119 -8
  34. package/lib/core/streams/zlib-wasm/zlib-streams-loader.js +27 -17
  35. package/lib/core/streams/zlib-wasm/zlib-streams.js +14 -1
  36. package/lib/core/web-worker-base.js +6 -2
  37. package/lib/core/web-worker-inline-native.js +1 -1
  38. package/lib/core/web-worker-inline-wasm.js +1 -1
  39. package/lib/core/zip-writer.js +6 -3
  40. package/lib/zip-core-external.js +34 -0
  41. package/lib/zip-fs-core-external.js +30 -0
  42. package/lib/zip-fs-external.js +30 -0
  43. package/lib/zip-mime-types.js +29 -0
  44. package/lib/zip-module-wasm-base.js +64 -0
  45. package/lib/zip-module-wasm.js +1 -31
  46. package/package.json +63 -2
  47. package/worker-message-property-names.js +1 -1
@@ -1 +1 @@
1
- ((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:n,String:r,Number:s,BigInt:a,Math:i,Date:o,Map:c,Set:l,Response:d,URL:w,Error:u,Uint8Array:f,Uint16Array:p,Uint32Array:h,DataView:m,Blob:y,Promise:g,TextEncoder:x,TextDecoder:S,document:z,crypto:b,btoa:F,TransformStream:R,ReadableStream:D,WritableStream:U,CompressionStream:k,DecompressionStream:C,navigator:E,Worker:v}="undefined"!=typeof globalThis?globalThis:this||self;var T=void 0!==z?z.currentScript:null;const W=4294967295,L=65535,A=255,I=67324752,N=134695760,M=N,V=33639248,q=101010256,Z=101075792,P=117853008,H=22,O=20,Y=21589,j=2048,X=16384,G=2048,B=1024,K="/",Q=30,J=new o(2107,11,31,23,59,58),_=new o(1980,0,1),$=void 0,ee=1/0,te="undefined",ne="function",re=new f;let se=2;try{typeof E!=te&&E.hardwareConcurrency&&(se=E.hardwareConcurrency)}catch{}const ae={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:se,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,workerStartupTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof k!=te&&k,DecompressionStream:typeof C!=te&&C},ie=["baseURI","wasmURI","workerURI","chunkSize","maxWorkers","terminateWorkerTimeout","workerStarvationTimeout","workerStartupTimeout","useCompressionStream","useWebWorkers","transferStreams","CompressionStream","DecompressionStream","CompressionStreamZlib","DecompressionStreamZlib"],oe={...ae};function ce(){return oe}function le(e){return i.max(e.chunkSize,64)}function de(e){for(const t of ie){const n=e[t];n!==$&&(oe[t]=n)}}function we(e){for(const t of ie){const n=e[t];n!==$&&(ae[t]=n)}de(e)}const ue=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258],fe=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],pe=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],he=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],me=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],ye=new f(288);ye.fill(8,0,144),ye.fill(9,144,256),ye.fill(7,256,280),ye.fill(8,280,288);const ge=new f(30).fill(5);function xe(e){const t=new p(16);for(const n of e)t[n]++;t[0]=0;const n=new p(17);for(let e=1;15>=e;e++)n[e+1]=n[e]+t[e];const r=new p(e.length);for(let t=0;t<e.length;t++)e[t]&&(r[n[e[t]]++]=t);return{o:t,symbols:r}}const Se="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ze="Invalid codec definition",be="Reserved compression method",Fe="Invalid codec module",Re="string",De=[0,8,9,99],Ue=new c,ke=new c;function Ce(e){return Ue.get(e)}function Ee(e){return ke.get(e)}function ve(e,t){const{CompressionStream:n,DecompressionStream:r}=t;if(typeof n!=ne&&typeof r!=ne)throw new u(Fe);ke.set(e,{CompressionStream:n,DecompressionStream:r})}const Te=[[],[],[],[],[],[],[],[]];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)t=1&t?t>>>1^3988292384:t>>>1;Te[0][e]=t}for(let e=0;256>e;e++)for(let t=1;8>t;t++){const n=Te[t-1][e];Te[t][e]=n>>>8^Te[0][255&n]}const[We,Le,Ae,Ie,Ne,Me,Ve,qe]=Te;class Ze{constructor(e){this.l=e||-1}append(e){let t=0|this.l;const n=0|e.length;let r=0;if(n>=8&&e.buffer){const s=new m(e.buffer,e.byteOffset,n),a=n-8;for(;a>=r;r+=8){const e=t^s.getInt32(r,!0),n=s.getInt32(r+4,!0);t=qe[255&e]^Ve[e>>>8&255]^Me[e>>>16&255]^Ne[e>>>24&255]^Ie[255&n]^Ae[n>>>8&255]^Le[n>>>16&255]^We[n>>>24&255]}}for(;n>r;r++)t=t>>>8^We[255&(t^e[r])];this.l=t}get(){return~this.l}}class Pe extends R{constructor(){let e;const t=new Ze;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new f(4);new m(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}function He(e){if(typeof x==te){const t=new f((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new x).encode(e)}function Oe(e,t){const n=new f(e.length+t.length);return n.set(e),n.set(t,e.length),n}function Ye(e){return e.byteOffset||e.byteLength!=e.buffer.byteLength?new f(e):e}function je(e){return new m(e.buffer,e.byteOffset,e.byteLength)}const Xe={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=Xe.h(n);return 32===r?e.concat(t):Xe.m(t,r,0|n,e.slice(0,e.length-1))},S(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+Xe.h(n)},F(e,t){if(32*e.length<t)return e;const n=(e=e.slice(0,i.ceil(t/32))).length;return t&=31,n>0&&t&&(e[n-1]=Xe.R(t,e[n-1]&2147483648>>t-1,1)),e},R:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,h:e=>i.round(e/1099511627776)||32,m(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s<e.length;s++)r.push(n|e[s]>>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,a=Xe.h(s);return r.push(Xe.R(t+a&31,t+a>32?n:r.pop(),1)),r}},Ge={bytes:{D(e){const t=Xe.S(e)/8,n=new f(t);let r;for(let s=0;t>s;s++)3&s||(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},U(e){const t=[];let n,r=0;for(n=0;n<e.length;n++)r=r<<8|e[n],3&~n||(t.push(r),r=0);return 3&n&&t.push(Xe.R(8*(3&n),r)),t}}},Be=class{constructor(e){const t=this;t.blockSize=512,t.C=[1732584193,4023233417,2562383102,271733878,3285377520],t.v=[1518500249,1859775393,2400959708,3395469782],e?(t.T=e.T.slice(0),t.W=e.W.slice(0),t.L=e.L):t.reset()}reset(){const e=this;return e.T=e.C.slice(0),e.W=[],e.L=0,e}update(e){const t=this;"string"==typeof e&&(e=Ge.A.U(e));const n=t.W=Xe.concat(t.W,e),r=t.L,s=t.L=r+Xe.S(e);if(s>9007199254740991)throw new u("Cannot hash more than 2^53 - 1 bits");const a=new h(n);let i=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);s>=e;e+=t.blockSize)t.I(a.subarray(16*i,16*(i+1))),i+=1;return n.splice(0,16*i),t}N(){const e=this;let t=e.W;const n=e.T;t=Xe.concat(t,[Xe.R(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(i.floor(e.L/4294967296)),t.push(0|e.L);t.length;)e.I(t.splice(0,16));return e.reset(),n}M(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}V(e,t){return t<<e|t>>>32-e}I(e){const n=this,r=n.T,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let a=r[0],o=r[1],c=r[2],l=r[3],d=r[4];for(let e=0;79>=e;e++){16>e||(s[e]=n.V(1,s[e-3]^s[e-8]^s[e-14]^s[e-16]));const t=n.V(5,a)+n.M(e,o,c,l)+d+s[e]+n.v[i.floor(e/20)]|0;d=l,l=c,c=n.V(30,o),o=a,a=t}r[0]=r[0]+a|0,r[1]=r[1]+o|0,r[2]=r[2]+c|0,r[3]=r[3]+l|0,r[4]=r[4]+d|0}},Ke={importKey:e=>new Ke.Z(Ge.bytes.U(e)),P(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new u("invalid params to pbkdf2");const s=1+(r>>5)<<2;let a,i,o,c,l;const d=new ArrayBuffer(s),w=new m(d);let f=0;const p=Xe;for(t=Ge.bytes.U(t),l=1;(s||1)>f;l++){for(a=i=e.encrypt(p.concat(t,[l])),o=1;n>o;o++)for(i=e.encrypt(i),c=0;c<i.length;c++)a[c]^=i[c];for(o=0;(s||1)>f&&o<a.length;o++)w.setInt32(f,a[o]),f+=4}return d.slice(0,r/8)},Z:class{constructor(e){const t=this,n=t.H=Be,r=[[],[]];t.O=[new n,new n];const s=t.O[0].blockSize/32;e.length>s&&(e=(new n).update(e).N());for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t.O[0].update(r[0]),t.O[1].update(r[1]),t.Y=new n(t.O[0])}reset(){const e=this;e.Y=new e.H(e.O[0]),e.j=!1}update(e){this.j=!0,this.Y.update(e)}digest(){const e=this,t=e.Y.N(),n=new e.H(e.O[1]).update(t).N();return e.reset(),n}encrypt(e){if(this.j)throw new u("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},Qe=typeof b!=te&&typeof b.getRandomValues==ne,Je="Invalid password",_e="Invalid signature",$e="zipjs-abort-check-password";function et(e){if(Qe)return b.getRandomValues(e);throw new u("Crypto API not supported")}const tt=16,nt={name:"PBKDF2"},rt=n.assign({hash:{name:"HMAC"}},nt),st=n.assign({iterations:1e3,hash:{name:"SHA-1"}},nt),at=["deriveBits"],it=[8,12,16],ot=[16,24,32],ct=10,lt=[0,0,0,0],dt=typeof b!=te,wt=dt&&b.subtle,ut=dt&&typeof wt!=te,ft=Ge.bytes,pt=class{constructor(e){const t=this;t.X=[[[],[],[],[],[]],[[],[],[],[],[]]],t.X[0][0][0]||t.G();const n=t.X[0][4],r=t.X[1],s=e.length;let a,i,o,c=1;if(4!==s&&6!==s&&8!==s)throw new u("invalid aes key size");for(t.v=[i=e.slice(0),o=[]],a=s;4*s+28>a;a++){let e=i[a-1];(a%s===0||8===s&&a%s===4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],a%s===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),i[a]=i[a-s]^e}for(let e=0;a;e++,a--){const t=i[3&e?a:a-4];o[e]=4>=a||4>e?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this.B(e,0)}decrypt(e){return this.B(e,1)}G(){const e=this.X[0],t=this.X[1],n=e[4],r=t[4],s=[],a=[];let i,o,c,l;for(let e=0;256>e;e++)a[(s[e]=e<<1^283*(e>>7))^e]=e;for(let d=i=0;!n[d];d^=o||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,n[d]=a,r[a]=d,l=s[c=s[o=s[d]]];let w=16843009*l^65537*c^257*o^16843008*d,u=257*s[a]^16843008*a;for(let n=0;4>n;n++)e[n][d]=u=u<<24^u>>>8,t[n][a]=w=w<<24^w>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}B(e,t){if(4!==e.length)throw new u("invalid aes block size");const n=this.v[t],r=n.length/4-2,s=[0,0,0,0],a=this.X[t],i=a[0],o=a[1],c=a[2],l=a[3],d=a[4];let w,f,p,h=e[0]^n[0],m=e[t?3:1]^n[1],y=e[2]^n[2],g=e[t?1:3]^n[3],x=4;for(let e=0;r>e;e++)w=i[h>>>24]^o[m>>16&255]^c[y>>8&255]^l[255&g]^n[x],f=i[m>>>24]^o[y>>16&255]^c[g>>8&255]^l[255&h]^n[x+1],p=i[y>>>24]^o[g>>16&255]^c[h>>8&255]^l[255&m]^n[x+2],g=i[g>>>24]^o[h>>16&255]^c[m>>8&255]^l[255&y]^n[x+3],x+=4,h=w,m=f,y=p;for(let e=0;4>e;e++)s[t?3&-e:e]=d[h>>>24]<<24^d[m>>16&255]<<16^d[y>>8&255]<<8^d[255&g]^n[x++],w=h,h=m,m=y,y=g,g=w;return s}},ht=class{constructor(e,t){this.K=e,this.J=t,this._=t}reset(){this._=this.J}update(e){return this.$(this.K,e,this._)}ee(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}return e}te(e){0===(e[0]=this.ee(e[0]))&&(e[1]=this.ee(e[1]))}$(e,t,n){let r;if(!(r=t.length))return[];const s=Xe.S(t);for(let s=0;r>s;s+=4){this.te(n);const r=e.encrypt(n);t[s]^=r[0],t[s+1]^=r[1],t[s+2]^=r[2],t[s+3]^=r[3]}return Xe.F(t,s)}},mt=Ke.Z;let yt=dt&&ut&&typeof wt.importKey==ne,gt=dt&&ut&&typeof wt.deriveBits==ne;class xt extends R{constructor({password:e,rawPassword:t,encryptionStrength:n,checkPasswordOnly:r}){super({start(){zt(this,e,t,n)},async transform(e,t){const n=this,{password:s,strength:a,ne:i,ready:o}=n;s?(await(async(e,t,n,r)=>{const s=await Ft(e,t,n,Dt(r,0,it[t])),a=Dt(r,it[t]);if(s[0]!=a[0]||s[1]!=a[1])throw new u(Je)})(n,a,s,Dt(e,0,it[a]+2)),e=Dt(e,it[a]+2),r?t.error(new u($e)):i()):await o;const c=new f(e.length-ct-(e.length-ct)%tt);t.enqueue(bt(n,e,c,0,ct,!0))},async flush(e){const{re:t,se:n,pending:r,ready:s}=this;if(n&&t){await s;const a=Dt(r,0,r.length-ct),i=Dt(r,r.length-ct);let o=re;if(a.length){const e=kt(ft,a);n.update(e);const r=t.update(e);o=Ut(ft,r)}const c=Dt(Ut(ft,n.digest()),0,ct);let l=r.length<ct?1:0;for(let e=0;ct>e;e++)l|=c[e]^i[e];if(l)throw new u(_e);e.enqueue(o)}}})}}class St extends R{constructor({password:e,rawPassword:t,encryptionStrength:n}){let r;super({start(){zt(this,e,t,n)},async transform(e,t){const n=this,{password:r,strength:s,ne:a,ready:i}=n;let o=re;r?(o=await(async(e,t,n)=>{const r=et(new f(it[t]));return Oe(r,await Ft(e,t,n,r))})(n,s,r),a()):await i;const c=new f(o.length+e.length-e.length%tt);c.set(o,0),t.enqueue(bt(n,e,c,o.length,0))},async flush(e){const{re:t,se:n,pending:s,ready:a}=this;if(n&&t){await a;let i=re;if(s.length){const e=t.update(kt(ft,s));n.update(e),i=Ut(ft,e)}r.signature=Ut(ft,n.digest()).slice(0,ct),e.enqueue(Oe(i,r.signature))}}}),r=this}}function zt(e,t,r,s){n.assign(e,{ready:new g(t=>e.ne=t),password:Rt(t,r),strength:s-1,pending:re})}function bt(e,t,n,r,s,a){const{re:i,se:o,pending:c}=e;c.length&&(t=Oe(c,t));const l=t.length-s;let d;for(n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new f(t)).set(n,0)}return e})(n,r+(l-l%tt)),d=0;l-tt>=d;d+=tt){const e=kt(ft,Dt(t,d,d+tt));a&&o.update(e);const s=i.update(e);a||o.update(s),n.set(Ut(ft,s),d+r)}return e.pending=Dt(t,d),n}async function Ft(e,r,s,a){e.password=null;const i=await(async(e,t,n,r,s)=>{if(!yt)return Ke.importKey(t);try{return await wt.importKey("raw",t,n,!1,s)}catch{return yt=!1,Ke.importKey(t)}})(0,s,rt,0,at),o=await(async(e,t,n)=>{if(!gt)return Ke.P(t,e.salt,st.iterations,n);try{return await wt.deriveBits(e,t,n)}catch{return gt=!1,Ke.P(t,e.salt,st.iterations,n)}})(n.assign({salt:a},st),i,8*(2*ot[r]+2)),c=new f(o),l=kt(ft,Dt(c,0,ot[r])),d=kt(ft,Dt(c,ot[r],2*ot[r])),w=Dt(c,2*ot[r]);return n.assign(e,{keys:{key:l,ae:d,passwordVerification:w},re:new ht(new pt(l),t.from(lt)),se:new mt(d)}),w}function Rt(e,t){return t===$?He(e):t}function Dt(e,t,n){return e.subarray(t,n)}function Ut(e,t){return e.D(t)}function kt(e,t){return e.U(t)}class Ct extends R{constructor({password:e,rawPassword:t,passwordVerification:n,checkPasswordOnly:r}){super({start(){vt(this,e,t,n)},transform(e,t){const n=this;if(n.password||n.rawPassword){const t=Tt(n,e.subarray(0,12));if(n.password=n.rawPassword=null,0!=(t[11]^n.passwordVerification))throw new u(Je);e=e.subarray(12)}r?t.error(new u($e)):t.enqueue(Tt(n,e))}})}}class Et extends R{constructor({password:e,rawPassword:t,passwordVerification:n}){super({start(){vt(this,e,t,n)},transform(e,t){const n=this;let r,s;if(n.password||n.rawPassword){n.password=n.rawPassword=null;const t=et(new f(12));t[11]=n.passwordVerification,r=new f(e.length+t.length),r.set(Wt(n,t),0),s=12}else r=new f(e.length),s=0;r.set(Wt(n,e),s),t.enqueue(r)}})}}function vt(e,t,r,s){n.assign(e,{password:t,rawPassword:r,passwordVerification:s}),((e,t,r)=>{const s=[305419896,591751049,878082192];if(n.assign(e,{keys:s,ie:new Ze(s[0]),oe:new Ze(s[2])}),r)for(let t=0;t<r.length;t++)Lt(e,r[t]);else for(let n=0;n<t.length;n++)Lt(e,t.charCodeAt(n))})(e,t,r)}function Tt(e,t){const n=new f(t.length);for(let r=0;r<t.length;r++)n[r]=At(e)^t[r],Lt(e,n[r]);return n}function Wt(e,t){const n=new f(t.length);for(let r=0;r<t.length;r++)n[r]=At(e)^t[r],Lt(e,t[r]);return n}function Lt(e,t){let[,n]=e.keys;e.ie.append([t]);const r=~e.ie.get();n=Nt(i.imul(Nt(n+It(r)),134775813)+1),e.oe.append([n>>>24]);const s=~e.oe.get();e.keys=[r,n,s]}function At(e){const t=2|e.keys[2];return It(i.imul(t,1^t)>>>8)}function It(e){return 255&e}function Nt(e){return 4294967295&e}function Mt(e){if(e instanceof D)return e;const t=e.getReader();return new D({async pull(e){const{value:n,done:r}=await t.read();r?e.close():e.enqueue(n)},cancel:e=>t.cancel(e)})}function Vt(e){if(e instanceof U)return e;const t=e.getWriter();return new U({write:e=>t.write(e),close:()=>t.close(),abort:e=>t.abort(e)})}const qt="Invalid uncompressed size",Zt="Invalid compressed data",Pt="deflate-raw";class Ht extends R{constructor(e,{chunkSize:t,CompressionStreamZlib:n,CompressionStream:r}){super({});const{compressed:s,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:c,level:l,deflate64:d,format:w,compressionMethod:u}=e,f=this;let p,h,y,g=super.readable;const x=w&&Ee(w),S=c&&s&&!d&&!x&&(!a||o)&&!(!i||!r);a&&!o||!c||S||(p=new Pe,g=Kt(g,p)),s&&(x?g=Qt(g,Gt(x.CompressionStream,w,{level:l,chunkSize:t,compressionMethod:u})):S?(y=new Ot,g=Qt(g,new r("gzip")),g=Kt(g,y)):g=Bt(g,i,{level:l,chunkSize:t},r,n)),a&&(o?g=Kt(g,new Et(e)):(h=new St(e),g=Kt(g,h))),Xt(f,g,()=>{let e;a&&!o&&(e=h.signature),a&&!o||!c||(e=S?y.signature:new m(p.value.buffer).getUint32(0)),f.signature=e})}}class Ot extends R{constructor(){let e,t=10,n=new f(0);super({transform(e,r){if(t){const n=i.min(t,e.length);if(t-=n,!(e=e.subarray(n)).length)return}const s=n.length+e.length;if(8>=s)return void(n=Oe(n,e));const a=s-8,o=i.min(a,n.length);r.enqueue(Oe(n.subarray(0,o),e.subarray(0,a-o))),n=Oe(n.subarray(o),e.subarray(a-o))},flush(){const t=je(n);e.signature=t.getUint32(0,!0),e.uncompressedSize=t.getUint32(4,!0)}}),e=this}}class Yt extends R{constructor(e,{chunkSize:t,DecompressionStreamZlib:n,DecompressionStream:r}){super({});const{zipCrypto:s,encrypted:a,signed:i,signature:o,compressed:c,useCompressionStream:l,deflate64:d,format:w,compressionMethod:f,rawBitFlag:p,outputSize:h}=e;let y,g,x=super.readable;if(a&&(s?x=Kt(x,new Ct(e)):(g=new xt(e),x=Kt(x,g))),c){const e=w&&Ee(w);x=e?Qt(x,Gt(e.DecompressionStream,w,{chunkSize:t,compressionMethod:f,rawBitFlag:p,uncompressedSize:h})):Bt(x,l,{chunkSize:t,deflate64:d},r,n),x=(e=>{const t=e.getReader();return new D({async pull(e){let n;try{n=await t.read()}catch(e){if(e&&e.message)throw e;const t=new u(Zt);throw t.cause=e,t}const{value:r,done:s}=n;s?e.close():e.enqueue(r)},cancel:e=>t.cancel(e)})})(x)}a&&!s||!i||(y=new Pe,x=Kt(x,y)),Xt(this,x,()=>{if((!a||s)&&i){const e=new m(y.value.buffer);if(o!=e.getUint32(0,!1))throw new u(_e)}})}}const jt=new c;function Xt(e,t,r){t=Kt(t,new R({flush:r})),n.defineProperty(e,"readable",{get:()=>t})}function Gt(e,t,n){if(!e)throw new u("Compression method not supported");return new e(t,n)}function Bt(e,t,n,r,s){const a=t&&r?r:s||r,i=n.deflate64?"deflate64-raw":Pt;let o;try{o=new a(i,n)}catch(e){if(!t||!s||a==s)throw e;o=new s(i,n)}return Qt(e,o)}function Kt(e,t){return Mt(e).pipeThrough(t)}function Qt(e,t){const n=t.writable.getWriter(),r=e.getReader();return(async()=>{try{for(;;){await n.ready;const e=await r.read();if(e.done){await n.close();break}await n.write(e.value)}}catch(e){await(async(e,t)=>{try{await e.abort(t)}catch{}})(n,e),await(async(e,t)=>{try{await e.cancel(t)}catch{}})(r,e)}})(),t.readable}const Jt="data",_t="deflate",$t="inflate";class en extends R{constructor(e,t){super({});const r=this,{codecType:s}=e;let a;s.startsWith(_t)?a=Ht:s.startsWith($t)&&(a=Yt),r.outputSize=0;let i=0;const o=new a(e,t),c=super.readable,l=new R({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){n.assign(r,{inputSize:i})}}),d=new R({transform(t,n){if(t&&t.length&&(n.enqueue(t),r.outputSize+=t.length,e.outputSize!==$&&r.outputSize>e.outputSize))throw new u(qt)},flush(){const{signature:e}=o;n.assign(r,{signature:e,inputSize:i})}});n.defineProperty(r,"readable",{get:()=>c.pipeThrough(l).pipeThrough(o).pipeThrough(d)})}}class tn extends R{constructor(e){const t=[];let n=0;function r(){const r=new f(e);let s=0;for(;e>s;){const n=t[0],a=e-s;n.length>a?(r.set(n.subarray(0,a),s),t[0]=n.subarray(a),s+=a):(r.set(n,s),s+=n.length,t.shift())}return n-=e,r}s.isFinite(e)&&e>=1||(e=65536),super({transform(s,a){for(t.push(s),n+=s.length;n>e;)a.enqueue(r())},flush(e){n&&e.enqueue(((e,t)=>{const n=new f(t);let r=0;for(const t of e)n.set(t,r),r+=t.length;return n})(t,n))}})}}const nn={type:"module"},rn="error";let sn,an,on,cn,ln=!0;try{ln=typeof structuredClone==ne&&structuredClone(new DOMException("","AbortError")).code!==$}catch{}class dn{constructor(e,{readable:t,writable:r},{options:s,config:a,ce:i,useWebWorkers:o,transferStreams:c,workerURI:l},d){const{signal:w}=i;return n.assign(e,{le:!0,de:(e.de||0)+1,readable:t.pipeThrough(new tn(le(a))).pipeThrough(new wn(i),{signal:w}),writable:r,options:n.assign({},s),workerURI:l,transferStreams:c,terminate:()=>new g(t=>{const{we:n,le:r}=e;n?(r?e.ue=t:(n.terminate(),t()),e.fe=null):t()}),pe(){if(e.le){const{ue:t}=e;t&&(e.ue=null,e.he=!0,e.we.terminate(),t()),e.le=!1,d(e)}}}),sn===$&&(sn=typeof v!=te),(o&&sn?pn:fn)(e,a)}}class wn extends R{constructor({onstart:e,onprogress:t,size:n,onend:r}){let s=0;super({async start(){e&&await un(e,n)},async transform(e,r){s+=e.length,t&&await un(t,s,n),r.enqueue(e)},async flush(){r&&await un(r,s)}})}}async function un(e,...t){try{await e(...t)}catch{}}function fn(e,t){return{run:()=>hn(e,t)}}function pn(e,t){const{baseURI:r,chunkSize:a,workerStartupTimeout:i}=t;let{wasmURI:o}=t;if(!e.fe){let c;typeof o==ne&&(o=o());try{c=yn(e.workerURI,r,e)}catch{return sn=!1,fn(e,t)}n.assign(e,{we:c,me:!1,he:!1,fe:{run:async()=>{try{return await(async(e,t)=>{let r,a;const i=new g((e,t)=>{r=e,a=t});n.assign(e,{reader:null,writer:null,ye:r,ge:a,result:i});const{readable:o,options:c}=e,{writable:l,closed:d,xe:w}=(e=>{const t=new AbortController,{writable:n,readable:r}=new R,s=r.pipeTo(e,{preventClose:!0,preventAbort:!0,signal:t.signal});return s.catch(()=>{}),{writable:n,closed:s,xe:()=>t.abort()}})(e.writable);let f;try{f=Sn({type:"start",options:c,config:t,readable:o,writable:l},e)}catch(t){w();try{await d}catch{}throw e.pe(),t}f||n.assign(e,{reader:o.getReader(),writer:l.getWriter()});const{workerStartupTimeout:p}=t;e.me||!s.isFinite(p)||0>p||(e.Se=setTimeout(()=>(e=>{if(e.Se=null,e.me)return;const{ge:t,writer:n}=e;if(mn(e),e.we=null,t){const e=new u("Worker startup timeout");e.ze=!0,t(e),n&&n.releaseLock()}})(e),p));try{const e=await i;return await h(),await d,e}catch(e){await h(),w();try{await d}catch{}throw e}async function h(){if(!f&&!l.locked)try{await l.getWriter().close()}catch{}}})(e,{chunkSize:a,wasmURI:o,baseURI:r,workerStartupTimeout:i})}catch(n){if(n&&n.ze){sn=!1;const{reader:n}=e;return n&&n.releaseLock(),e.reader=null,e.writer=null,hn(e,t)}throw n}}}})}return e.fe}async function hn({options:e,readable:t,writable:n,pe:r},s){let a;try{if(e.compressed&&!e.format){const t=e.codecType.startsWith(_t),n=t?s.CompressionStreamZlib:s.DecompressionStreamZlib,r=t?s.CompressionStream:s.DecompressionStream;if(e.useCompressionStream){if(n&&n.be&&!(e=>{if(!e)return!1;let t=jt.get(e);if(t===$){try{new e(Pt),t=!0}catch{t=!1}jt.set(e,t)}return t})(r))try{await void 0}catch{}}else try{await void 0}catch{n&&!n.be||(e.useCompressionStream=!0)}}a=new en(e,s),await t.pipeThrough(a).pipeThrough(new tn(le(s))).pipeTo(n,{preventClose:!0,preventAbort:!0});const{signature:r,inputSize:i,outputSize:o}=a;return{signature:r,inputSize:i,outputSize:o}}catch(e){throw a&&(e.outputSize=a.outputSize),e}finally{r()}}function mn(e){const{we:t}=e;if(t)try{t.terminate()}catch{}e.fe=null}function yn(e,t,r,s,a=!0){let i,o,c;if(on===$||an!==e){const n=typeof e==ne;o=n?e(a):e;const l=o.startsWith("data:"),d=o.startsWith("blob:");if(l||d){s===$&&(s=!1),s&&(c=nn);try{i=new v(o,c)}catch(a){if(d)try{w.revokeObjectURL(o)}catch{}if(n&&d)return yn(e,t,r,s,!1);if(s)throw a;return yn(e,t,r,!0,!1)}}else{s===$&&(s=!0),s&&(c=nn);try{o=new w(o,t)}catch{}try{i=new v(o,c)}catch(n){if(s)throw n;return yn(e,t,r,!1,a)}}an=e,on=o,cn=c}else i=new v(on,cn);return i.addEventListener("message",e=>{r.me=!0,gn(r),(async({data:e},t)=>{const{type:r,value:s,messageId:a,result:i,error:o}=e,{reader:c,writer:l,ye:d,ge:w,pe:p,de:h}=t,m=()=>t.de!=h;try{if(o){const{message:e,stack:t,code:r,name:s,outputSize:a}=o,i=new u(e);n.assign(i,{stack:t,code:r,name:s,outputSize:a}),y(i)}else{if("pull"==r){const{value:e,done:n}=await c.read();m()||Sn({type:Jt,value:e,done:n,messageId:a},t)}r==Jt&&(await l.ready,await l.write(new f(s)),m()||Sn({type:"ack",messageId:a},t)),"close"==r&&y(null,i)}}catch(o){m()||(mn(t),y(o))}function y(e,t){m()||(e?w(e):d(t),l&&l.releaseLock(),p())}})(e,r)}),i.addEventListener(rn,e=>xn(e,r)),i.addEventListener("messageerror",e=>xn(e,r)),i}function gn(e){const{Se:t}=e;t&&(clearTimeout(t),e.Se=null)}function xn(e,t){e.preventDefault&&e.preventDefault(),gn(t);const{me:r,ge:s,writer:a,pe:i}=t;if(mn(t),r||(t.we=null),s){let t=e.error||new u(e.message||rn);r||(t=n.assign(new u(t.message||rn),{ze:!0})),s(t),a&&a.releaseLock(),r&&i()}}function Sn(e,{we:t,writer:n,transferStreams:r,me:s}){try{const{value:n,readable:a,writable:i}=e,o=[];if(n&&(e.value=Ye(n),o.push(e.value.buffer)),r&&ln&&s?(a&&o.push(a),i&&o.push(i)):e.readable=e.writable=null,o.length)try{return t.postMessage(e,o),!0}catch{ln=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw n&&n.releaseLock(),e}}let zn=[];const bn=[];let Fn,Rn,Dn=0;async function Un(e,t){const{options:n,config:r}=t,{transferStreams:a,useWebWorkers:i,useCompressionStream:o,compressed:c,signed:l,encrypted:d,format:u,codecURI:f}=n,{workerURI:p,maxWorkers:h}=r;u&&(f&&(n.codecURI=((e,t)=>{try{return new w(e,t).toString()}catch{return e}})(f,r.baseURI)),await(async(e,t)=>{!ke.has(e)&&t&&ve(e,await(import(/* webpackIgnore: true */ /* @vite-ignore */t)))})(u,n.codecURI)),t.transferStreams=a||a===$&&r.transferStreams;const m=!c&&!l&&!d,y=u===$||!!n.codecURI;return t.useWebWorkers=!m&&y&&(i||i===$&&r.useWebWorkers),t.workerURI=t.useWebWorkers&&p?p:$,n.useCompressionStream=o||o===$&&r.useCompressionStream,(await(async()=>{const n=zn.find(e=>!e.le);if(n)return Tn(n),new dn(n,e,t,x);if(zn.length<h){const n={Fe:Dn};return Dn++,zn.push(n),new dn(n,e,t,x)}return new g(n=>{bn.push({resolve:n,stream:e,Re:t}),Rn=r.workerStarvationTimeout,kn()})})()).run();function x(e){if(Cn(),bn.length){const[{resolve:t,stream:n,Re:r}]=bn.splice(0,1);t(new dn(e,n,r,x)),kn()}else e.we?(Tn(e),((e,t)=>{const{config:n}=t,{terminateWorkerTimeout:r}=n;s.isFinite(r)&&r>=0&&(e.he?e.he=!1:e.De=setTimeout(async()=>{zn=zn.filter(t=>t!=e);try{await e.terminate()}catch{}},r))})(e,t)):zn=zn.filter(t=>t!=e)}}function kn(){!Fn&&bn.length&&s.isFinite(Rn)&&Rn>=0&&(Fn=setTimeout(En,Rn))}function Cn(){Fn&&(clearTimeout(Fn),Fn=null)}function En(){if(Fn=null,bn.length){const[{resolve:e,stream:t,Re:r}]=bn.splice(0,1),s=n.assign({},r,{useWebWorkers:!1,workerURI:$});e(new dn({},t,s,vn)),kn()}}function vn(){Cn(),kn()}function Tn(e){const{De:t}=e;t&&(clearTimeout(t),e.De=null)}const Wn="HTTP error ",Ln="HTTP Range not supported",An="HTTP resource changed",In="Writer iterator completed too soon",Nn="Writer not initialized",Mn="Content-Range",Vn="Range",qn="GET",Zn="bytes",Pn=16777216,Hn="writable",On=Symbol();class Yn{constructor(){this.size=0}init(){this.initialized=!0}}class jn extends Yn{get readable(){return this.createReadable()}createReadable({offset:e=0,size:t,chunkSize:n=le(ce())}={}){const r=this;let s=0;return new D({async pull(a){const o=t===$?n:i.min(n,t-s),c=await Sr(r,e+s,o);a.enqueue(c),s+n>t||t===$&&!c.length&&o?a.close():s+=n}})}}class Xn extends Yn{constructor(){super();const e=this,t=new U({write(t){if(!e.initialized)throw new u(Nn);return e.writeUint8Array(Ye(t))}});n.defineProperty(e,Hn,{get:()=>t})}writeUint8Array(){}}let Gn,Bn;class Kn extends jn{constructor(e){super(),n.assign(this,{blob:e,size:e.size}),Bn||(Bn=(async()=>{try{const e=new y([new f(3)]).slice(1,2).stream().getReader();let t=0,n=await e.read();for(;!n.done;)t+=n.value.length,n=await e.read();Gn=1==t}catch{Gn=!1}})())}createReadable(e){const{blob:t,size:n}=this,{offset:r=0,size:s=n-r}=e||{};return r||n>s?Gn?Mt(t.slice(r,r+s).stream()):super.createReadable(e):Mt(t.stream())}async readUint8Array(e,t){const n=this,r=e+t,s=e||r<n.size?n.blob.slice(e,r):n.blob;let a=await s.arrayBuffer();return a.byteLength>t&&(a=a.slice(e,r)),new f(a)}}class Qn extends Yn{constructor(e){super();const t=this,r=new R;if(n.defineProperty(t,Hn,{get:()=>r.writable}),typeof y.prototype.stream!=ne||new y([]).stream()instanceof D){const n=[];e&&n.push(["Content-Type",e]),t.blob=new d(r.readable,{headers:n}).blob()}else{const n=[];t.blob=r.readable.pipeTo(new U({write(e){n.push(e)}})).then(()=>new y(n,{type:e}))}t.blob.catch(()=>{})}getData(){return this.blob}}class Jn extends jn{constructor(e,t){super(),$n(this,e,t)}async init(){await er(this,ur,cr),super.init()}createReadable(e){const t=this,{useRangeHeader:n,forceRangeRequests:r,size:a}=t;if((n||r)&&a!==$){const{offset:n=0,size:r=a-n}=e||{};if(r>0&&a>n)return((e,t,n)=>{let r,a=t,o=0,c=n;return new D({start:()=>l(),async pull(e){r||await l();const{value:t,done:n}=await r.read();if(n)throw new u(Ln);const s=t.length>o?t.subarray(0,o):t;o-=s.length,c-=s.length,s.length&&e.enqueue(s),o||(await(async()=>{const e=r;r=$,await e.cancel()})(),c||e.close())},cancel:e=>r&&r.cancel(e)});async function l(){const t=i.min(e.maximumRangeSize,c),n=await ur(qn,e,ir(e,a,t));if(206!=n.status)throw new u(Ln);const l=n.headers.get(Mn);if(l){const e=s(l.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=a)throw new u(Ln)}ar(e,n),sr(e,n),a+=t,o=t,r=n.body.getReader()}})(t,n,i.min(r,a-n))}return super.createReadable(e)}readUint8Array(e,t){return tr(this,e,t,ur,cr)}}class _n extends jn{constructor(e,t){super(),$n(this,e,t)}async init(){await er(this,fr,lr),super.init()}readUint8Array(e,t){return tr(this,e,t,fr,lr)}}function $n(e,t,r){const{preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o,checkResourceChanges:c=!0,maximumRangeSize:l=Pn,fetch:d}=r;delete(r=n.assign({},r)).preventHeadRequest,delete r.useRangeHeader,delete r.forceRangeRequests,delete r.combineSizeEocd,delete r.checkResourceChanges,delete r.maximumRangeSize,delete r.useXHR,delete r.fetch,n.assign(e,{url:t,options:r,preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o,checkResourceChanges:c,maximumRangeSize:l,fetch:d})}async function er(e,t,n){const{url:r,preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o}=e;if((e=>{const{baseURI:t}=ce(),{protocol:n}=new w(e,t);return"http:"==n||"https:"==n})(r)&&(a||i)&&(void 0===s||s)){const r=await t(qn,e,ir(e,o?-22:void 0)),s=r.headers.get("Accept-Ranges");if(!(i||s&&s.toLowerCase()==Zn))throw new u(Ln);{if(o){const t=new f(await r.arrayBuffer());206==r.status&&t.length==H&&(e.Ue=t)}sr(e,r);const s=nr(r);s===$?await wr(e,t,n):e.size=s}}else await wr(e,t,n)}async function tr(e,t,n,r,a){const{useRangeHeader:i,forceRangeRequests:o,Ue:c,size:l,options:d}=e;if(i||o){if(c&&t==l-H&&n==H)return c;if(l>t&&0!==n){t+n>l&&(n=l-t);const a=await r(qn,e,ir(e,t,n));if(206!=a.status)throw new u(Ln);const i=a.headers.get(Mn);if(i){const e=s(i.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=t)throw new u(Ln)}ar(e,a),sr(e,a);const o=new f(await a.arrayBuffer());if(o.length!=n)throw new u(Ln);return o}return re}{const{data:r}=e;return r||await a(e,d),e.data.subarray(t,t+n)}}function nr(e){const t=e.headers.get(Mn);if(t){const e=t.trim().split(/\s*\/\s*/)[1];if(e&&"*"!=e){const t=s(e);if(!s.isNaN(t))return t}}}function rr({headers:e}){return{ke:e.get("Etag")||$,lastModified:e.get("Last-Modified")||$}}function sr(e,t){const{checkResourceChanges:n,Ce:r}=e;n&&!r&&206==t.status&&(e.Ce=rr(t))}function ar(e,t){const{checkResourceChanges:r,Ce:s,size:a}=e;if(r){const e=nr(t);if(e!==$&&a!==$&&e!=a)throw new u(An);if(s){const e=rr(t);if(n.entries(s).some(([t,n])=>n!==$&&e[t]!==$&&n!=e[t]))throw new u(An)}}}function ir(e,t=0,r=1){return n.assign({},or(e),{[Vn]:Zn+"="+(0>t?t:t+"-"+(t+r-1))})}function or({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?n.fromEntries(t):t}async function cr(e){await dr(e,ur)}async function lr(e){await dr(e,fr)}async function dr(e,t){const n=await t(qn,e,or(e));e.data=new f(await n.arrayBuffer()),e.size=e.data.length}async function wr(e,t,n){if(e.preventHeadRequest)await n(e,e.options);else{const r=await t("HEAD",e,or(e)),a=r.headers.get("Content-Length");a&&!r.headers.get("Content-Encoding")?e.size=s(a):await n(e,e.options)}}async function ur(e,{fetch:t=fetch,options:r,url:s},a){const i=await t(s,n.assign({},r,{method:e,headers:a}));if(400>i.status)return i;throw 416==i.status?new u(Ln):new u(Wn+(i.statusText||i.status))}function fr(e,{url:t},r){return new g((s,a)=>{const i=new XMLHttpRequest;if(i.addEventListener("load",()=>{if(400>i.status){const e=[];i.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const n=t.trim().split(/\s*:\s*/);n[0]=n[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(n)}),s({status:i.status,arrayBuffer:()=>i.response,headers:new c(e)})}else a(416==i.status?new u(Ln):new u(Wn+(i.statusText||i.status)))},!1),i.addEventListener("error",e=>a(e.detail?e.detail.error:new u("Network error")),!1),i.open(e,t),r)for(const e of n.entries(r))i.setRequestHeader(e[0],e[1]);i.responseType="arraybuffer",i.send()})}class pr extends jn{constructor(e,t={}){super(),n.assign(this,{url:e,reader:t.useXHR&&!t.fetch?new _n(e,t):new Jn(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(e){return this.reader.createReadable(e)}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class hr extends jn{constructor(e){super(),this.Ee=e}async init(){const e=this,{Ee:t}=e;e.ve=0,await g.all(t.map(e=>xr(e))),e.Te=t.map(t=>{const n=e.size;return e.size+=t.size,n}),super.init()}We(e){const{Te:t,size:n}=this,r=t[e];return r===$?n:r}async readUint8Array(e,t){const n=this,{Ee:r}=this;let s,a=0,o=e;for(;r[a]&&o>=r[a].size;)o-=r[a].size,a++;const c=r[a];if(c){const r=c.size;if(o+t>r){const a=r-o;s=Oe(await Sr(c,o,a),await n.readUint8Array(e+a,t-a))}else s=await Sr(c,o,t)}else s=re;return n.ve=i.max(a,n.ve),s}}class mr extends Yn{constructor(e,t=4294967295){super();const r=this;let s,a,i;n.assign(r,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new U({async write(t){if(t===On)return void(i&&await l());const{availableSize:n}=r;if(i)t.length<n?await c(t):(await c(t.subarray(0,n)),await l(),t.length>n&&await this.write(t.subarray(n)));else{const{value:n,done:o}=await e.next();if(o&&!n)throw new u(In);s=n,s.size=0,s.maxSize&&(r.maxSize=s.maxSize),r.availableSize=r.maxSize,await xr(s),a=n.writable,i=a.getWriter(),await this.write(t)}},async close(){i&&(await i.ready,await d())},async abort(e){i&&await i.abort(e)}});async function c(e){const t=e.length;t&&(await i.ready,await i.write(e),s.size+=t,r.availableSize-=t)}async function l(){await d(),r.diskOffset+=s.size,r.diskNumber++,i=null,r.availableSize=r.maxSize}async function d(){await i.close()}n.defineProperty(r,Hn,{get:()=>o})}async closeDisk(){const e=this.writable.getWriter();try{await e.ready,await e.write(On)}finally{e.releaseLock()}}}class yr{constructor(e){return t.isArray(e)&&(e=new hr(e)),(e instanceof D||typeof e.getReader==ne)&&(e={readable:Mt(e)}),e}}class gr{constructor(e){return e.writable===$&&typeof e.next==ne&&(e=new mr(e)),(e instanceof U||typeof e.getWriter==ne)&&(e={writable:Vt(e)}),e.size===$&&(e.size=0),e}}async function xr(e,t){if(!e.init||e.initialized)return g.resolve();await e.init(t)}function Sr(e,t,n){return e.readUint8Array(t,n)}const zr="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function br(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let n=0;n<e.length;n++)t+=zr[e[n]];return t}})(e):new S(t,{ignoreBOM:!0}).decode(e)}const Fr="filename",Rr="rawFilename",Dr="comment",Ur="rawComment",kr="uncompressedSize",Cr="compressedSize",Er="offset",vr="diskNumberStart",Tr="lastModDate",Wr="rawLastModDate",Lr="lastAccessDate",Ar="creationDate",Ir="rawCreationDate",Nr="internalFileAttributes",Mr="externalFileAttributes",Vr="msdosAttributesRaw",qr="msdosAttributes",Zr="msDosCompatible",Pr="zip64",Hr="encrypted",Or="version",Yr="versionMadeBy",jr="zipCrypto",Xr="directory",Gr="executable",Br="compressionMethod",Kr="signature",Qr="extraField",Jr="unixMode",_r="setuid",$r="setgid",es="sticky",ts=[Fr,Rr,kr,Cr,Tr,Wr,Dr,Ur,Lr,Ar,Ir,Er,vr,Nr,Mr,Vr,qr,Zr,Pr,Hr,Or,Yr,jr,Xr,Gr,Br,Kr,Qr,"extraFieldUnix","extraFieldInfoZip","uid","gid",Jr,_r,$r,es,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class ns{constructor(e){ts.forEach(t=>this[t]=e[t])}}const rs="password",ss="rawPassword",as="passThrough",is="signal",os="checkAmbiguity",cs="useWebWorkers",ls="useCompressionStream",ds="transferStreams",ws="preventClose",us="offset",fs="usdz",ps="strictness",hs="strict",ms="tolerant",ys="File format is not recognized",gs="End of central directory not found",xs="End of Zip64 central directory locator not found",Ss="Central directory header not found",zs="Local file header not found",bs="Zip64 extra field not found",Fs="File contains encrypted entry",Rs="Encryption method not supported",Ds="Compression method not supported",Us="Split zip file",ks="Overlapping entry found",Cs="Ambiguous archive",Es="Encrypted central directory is not supported",vs="utf-8",Ts="cp437",Ws=[[kr,W],[Cr,W],[Er,W],[vr,L]],Ls={[L]:{Le:aa,bytes:4},[W]:{Le:ia,bytes:8}};class As{constructor(e,t={}){n.assign(this,{reader:new yr(e),options:t,config:ce(),Ae:new c})}async*getEntriesGenerator(e={}){const t=this;let{reader:r}=t;const{config:s}=t;if(await xr(r),r.size!==$&&r.readUint8Array||(r=new Kn(await new d(r.readable).blob()),await xr(r)),r.size<H)throw new u(ys);const a=Ys(ea(t,e,ps),ea(t,e,os)),o=a==hs,c=a!=ms,w=((e,t)=>e!==$?e:t==hs?0:t==ms?1/0:L)(ea(t,e,"maxAppendedDataSize"),a),{Ie:f,Ne:p}=await(async(e,t,n)=>{const{size:r}=e,s=i.min(r,65557),a={count:js};let o,c,l=0;for await(const[n,i,d,w,u]of Ks(e,s)){const s=sa(n,w+20);if(u+H+s==r){const s=await Js(e,n,i,w,u,r,a);if(s==Bs){if(o||(o=Qs(d,w,u)),l++,!t||l>1)break}else s!=Gs||c||(c=Qs(d,w,u))}}return o||(o=c),o||(o=await(async(e,t,n)=>{const{size:r}=e,s=i.min(r,t==1/0?r:65557+t);let a,o;for await(const[t,i,c,l,d]of Ks(e,s)){const s=Qs(c,l,d);a||(a=s);const w=await Js(e,t,i,l,d,r,n);if(w==Bs)return s;w!=Gs||o||(o=s)}return o||a})(e,n,a)),{Ie:o,Ne:l}})(r,c,w);if(!f)throw aa(je(await Sr(r,0,4)))==N?new u(Us):new u(gs);c&&p>1&&$s("multiple end of central directory records");const h=je(f);let m=aa(h,12),y=aa(h,16);const x=f.offset,S=sa(h,20),z=x+H+S;r.size-z>w&&$s("appended data");let b=sa(h,4);const F=r.ve||0;let D,U,k,C=sa(h,6),E=sa(h,10),v=0;const T=y==W||m==W||E==L||C==L;if(y!=W&&C!=L&&(y+=Os(r,C)),T){const e=f.offset<O?re:await Sr(r,f.offset-O,O),t=je(e);if(e.length==O&&aa(t,0)==P){y=Os(r,aa(t,4))+ia(t,8);let e=await Sr(r,y,56),n=je(e);const s=f.offset-O-56;if((56>e.length||aa(n,0)!=Z)&&y!=s&&s>=0){const t=y;y=s,y>t&&(v=y-t),e=await Sr(r,y,56),n=je(e)}if(56>e.length||aa(n,0)!=Z)throw new u(xs);U=!0,k=ia(n,4)>44,b==L?b=aa(n,16):o&&b!=aa(n,16)&&$s("mismatched zip64 end of central directory record"),C==L?C=aa(n,20):o&&C!=aa(n,20)&&$s("mismatched zip64 end of central directory record"),E==L?E=ia(n,32):o&&E!=ia(n,32)&&$s("mismatched zip64 end of central directory record"),m==W?m=ia(n,40):o&&m!=ia(n,40)&&$s("mismatched zip64 end of central directory record"),y=Os(r,C)+ia(n,48)+v}}const I=m,M=f.offset-(U?76:0);if(y<r.size||(v=r.size-y-m-H,y=r.size-m-H),F!=b)throw new u(Us);if(0>y)throw new u(ys);let q=0,Y=await Sr(r,y,m),j=je(Y);if(m){if(4>Y.length)throw new u(ys);const e=M-m;if(y!=e&&C==b){let t=!(aa(j,q)==V);if(t||0>e||e+4>r.size||(t=aa(je(await Sr(r,e,4)),0)==V),t){const t=y;y=e,y>t&&(v+=y-t),Y=await Sr(r,y,m),j=je(Y)}}}const Q=M-y;if(m==Q||0>Q||C!=b||(m=Q,Y=await Sr(r,y,m),j=je(Y)),0>y||y>=r.size)throw new u(ys);D=y;const J=ea(t,e,"filenameEncoding"),_=ea(t,e,"commentEncoding"),ee=o?new l:$;let te;for(let a=0;E>a;a++){const c=new Ns(r,s,t.options);if(q+46>Y.length||aa(j,q)!=V){if(0==a&&(k||Ms(j)))throw new u(Es);throw new u(Ss)}Vs(c,j,q+6);const l=!!c.bitFlag.languageEncodingFlag,w=q+46,f=w+c.filenameLength,p=f+c.extraFieldLength,h=sa(j,q+4),m=!(h>>8),y=h>>8==3,x=Y.subarray(w,f),S=sa(j,q+32),z=p+S,b=Y.subarray(p,z),F=l,U=l,C=aa(j,q+38),T=C&A,W={readOnly:!!(1&T),hidden:!!(2&T),system:!!(4&T),directory:!!(16&T),archive:!!(32&T)},I=aa(j,q+42),N=ea(t,e,"decodeText")||br,M=F?vs:J||Ts,Z=U?vs:_||Ts;let P=N(x,M);P===$&&(P=br(x,M));let H=N(b,Z);H===$&&(H=br(b,Z)),n.assign(c,{index:a,versionMadeBy:h,msDosCompatible:m,compressedSize:0,uncompressedSize:0,Me:S,offset:I,diskNumberStart:sa(j,q+34),internalFileAttributes:sa(j,q+36),externalFileAttributes:C,msdosAttributesRaw:T,msdosAttributes:W,rawFilename:x,filenameUTF8:F,commentUTF8:U,rawExtraField:Y.subarray(f,p),rawComment:b,filename:P,comment:H}),qs(c,c,j,q+6),c.offset+=v,D=i.min(Os(r,c.diskNumberStart)+c.offset,D),o&&(ee.has(c.filename)&&(te=!0),ee.add(c.filename));const O=c.externalFileAttributes>>16&L;c.unixMode===$&&16877&O&&(c.unixMode=O);const Q=!!(c.unixMode&G),ne=!!(c.unixMode&B),re=!!(512&c.unixMode),se=c.unixMode!==$?!!(73&c.unixMode):y&&!!(73&O),ae=c.unixMode!==$&&(61440&c.unixMode)==X,ie=(61440&O)==X;n.assign(c,{setuid:Q,setgid:ne,sticky:re,unixExternalUpper:O,internalFileAttribute:c.internalFileAttributes,externalFileAttribute:c.externalFileAttributes,executable:se,directory:ae||ie||m&&W.directory||c.filename.endsWith(K)&&!c.uncompressedSize,zipCrypto:c.encrypted&&!c.extraFieldAES});const oe=new ns(c);oe.getData=(e,n)=>c.getData(e,oe,t.Ae,n),oe.arrayBuffer=async e=>{const n=new R,[r]=await g.all([new d(n.readable).arrayBuffer(),c.getData(n,oe,t.Ae,e)]);return r},q=z;const{onprogress:ce}=e;if(ce)try{await ce(a+1,E,new ns(c))}catch{}yield oe}o&&q!=I&&$s("trailing central directory data"),te&&$s("duplicate filename"),o&&(v||E&&D>0)&&$s("prepended data");const ne=ea(t,e,"extractPrependedData"),se=ea(t,e,"extractAppendedData");return ne&&(t.prependedData=D>0?await Sr(r,0,D):re),t.comment=S?await Sr(r,x+H,S):re,se&&(t.appendedData=z<r.size?await Sr(r,z,r.size-z):re),!0}async getEntries(e={}){const t=[];for await(const n of this.getEntriesGenerator(e))t.push(n);return t}async close(){}}class Is{constructor(e={}){const{readable:t,writable:n}=new R,r=new As(t,e).getEntriesGenerator();this.readable=new D({async pull(e){const{done:t,value:n}=await r.next();if(t)return e.close();const s={...n,readable:(()=>{const{readable:e,writable:t}=new R;if(n.getData)return(async()=>{try{await n.getData(t)}catch(e){try{await t.abort(e)}catch{}}})(),e})()};delete s.getData,e.enqueue(s)}}),this.writable=n}}class Ns{constructor(e,t,r){n.assign(this,{reader:e,config:t,options:r})}async getData(e,t,n,r={}){const s=this,{reader:a,index:i,offset:o,diskNumberStart:c,extraFieldAES:l,extraFieldZip64:d,compressionMethod:w,config:f,bitFlag:p,rawBitFlag:h,signature:m,rawLastModDate:y,uncompressedSize:g,compressedSize:x}=s,{dataDescriptor:S}=p,z=t.localDirectory={},b=Os(a,c)+o,F=await Sr(a,b,Q),R=je(F);let D=ea(s,r,rs),k=ea(s,r,ss);const C=ea(s,r,as);if(D=D&&D.length&&D,k=k&&k.length&&k,l&&99!=l.originalCompressionMethod)throw new u(Ds);if(F.length<Q||aa(R,0)!=I)throw new u(zs);Vs(z,R,4);const{extraFieldLength:E,filenameLength:v}=z,T=Ys(ea(s,r,ps),ea(s,r,os))==hs;let W=re;if(T&&(v||E)){const e=await Sr(a,b+Q,v+E);W=e.subarray(0,v),z.rawExtraField=e.subarray(v)}else z.rawExtraField=E?await Sr(a,b+Q+v,E):re;qs(s,z,R,4,!0),T&&((e,t,n)=>{const{rawFilename:r}=e;(n.length!=r.length||n.some((e,t)=>e!=r[t]))&&$s("mismatched local file header (filename)"),(2057&t.rawBitFlag)!=(2057&e.rawBitFlag)&&$s("mismatched local file header (general purpose bit flag)"),t.compressionMethod!=e.compressionMethod&&$s("mismatched local file header (compression method)"),t.bitFlag.dataDescriptor||!(t.signature||t.compressedSize||t.uncompressedSize)||t.signature==e.signature&&t.compressedSize==e.compressedSize&&t.uncompressedSize==e.uncompressedSize||$s("mismatched local file header (signature or sizes)")})(s,z,W);const{lastAccessDate:L,creationDate:N}=z;L&&(t.lastAccessDate=L),N&&(t.creationDate=N);const V=s.encrypted&&z.encrypted&&!C,q=V&&!l;if(C||(t.zipCrypto=q),V&&!(64&~z.rawBitFlag))throw new u(Rs);const Z=C?$:Ce(w);if(0!=w&&8!=w&&9!=w&&!Z&&!C)throw new u(Ds);if(V){if(!q&&(1>l.strength||l.strength>3))throw new u(Rs);if(!D&&!k)throw new u(Fs)}const P=b+Q+v+E,H=x,O=Mt(a.createReadable({offset:P,size:H})),Y=ea(s,r,is),j=ea(s,r,"checkPasswordOnly");let X=ea(s,r,"checkOverlappingEntry");const G=ea(s,r,"checkOverlappingEntryOnly");G&&(X=!0);const{onstart:B,onprogress:K,onend:J}=r,_=9==w;let ee=ea(s,r,ls);_&&(ee=!1);const te={options:{codecType:$t,password:D,rawPassword:k,zipCrypto:q,encryptionStrength:l&&l.strength,signed:ea(s,r,"checkSignature")&&!C,passwordVerification:q&&(S?y>>>8&A:m>>>24&A),outputSize:C?x:g,signature:m,compressed:0!=w&&!C,encrypted:V,useWebWorkers:ea(s,r,cs),useCompressionStream:ee,transferStreams:ea(s,r,ds),deflate64:_,format:Z?Z.format:$,codecURI:Z?Z.codecURI:$,compressionMethod:w,rawBitFlag:h,checkPasswordOnly:j},config:f,ce:{signal:Y,size:H,onstart:B,onprogress:K,onend:J}};let ne;X&&await(async({reader:e,Ve:t,index:n,offset:r,signature:s,compressedSize:a,uncompressedSize:i,qe:o,dataDescriptor:c,extraFieldZip64:l,Ae:d})=>{let w=0;if(c&&(w=l?20:12),w){const n=await Sr(e,o+a,w+4);if(n.length==w+4&&aa(je(n),0)==M){const e=aa(je(n),4);let r,o;l?(r=ia(je(n),8),o=ia(je(n),16)):(r=aa(je(n),8),o=aa(je(n),12)),(t.encrypted&&!t.zipCrypto||e==s)&&r==a&&o==i&&(w+=4)}}const f={start:r,end:o+a+w,Ve:t};for(const[e,t]of d)if(e!=n&&f.start<t.end&&t.start<f.end){const e=new u(ks);throw e.Ze=t.Ve,e}d.set(n,f)})({reader:a,Ve:t,index:i,offset:b,signature:m,compressedSize:x,uncompressedSize:g,qe:P,dataDescriptor:S||z.bitFlag.dataDescriptor,extraFieldZip64:d||z.extraFieldZip64,Ae:n});try{if(!G){j&&(e=new U),e=new gr(e),await xr(e,C?x:g),({writable:ne}=e);const{outputSize:t}=await Un({readable:O,writable:ne},te);if(e.size+=t,t!=(C?x:g))throw new u(qt)}}catch(t){if(t.outputSize!==$&&(e.size+=t.outputSize),!j||t.message!=$e)throw t}finally{ea(s,r,ws)||!ne||ne.locked||await ne.getWriter().close()}return j||G?$:e.getData?e.getData():ne}}function Ms(e){const t=i.min(e.byteLength,1024)-3;for(let n=0;t>n;n++)if(134630224==aa(e,n))return!0;return!1}function Vs(e,t,r){const s=e.rawBitFlag=sa(t,r+2),a=!(1&~s),i=aa(t,r+6);n.assign(e,{encrypted:a,version:sa(t,r),bitFlag:{level:(6&s)>>1,dataDescriptor:!(8&~s),languageEncodingFlag:(s&j)==j},rawLastModDate:i,lastModDate:ta(i),filenameLength:sa(t,r+22),extraFieldLength:sa(t,r+24)})}function qs(e,t,r,s,a){const{rawExtraField:i}=t,l=t.extraField=new c,d=je(i);let w=0;try{for(;w<i.length;){const e=sa(d,w),t=sa(d,w+2);l.set(e,{type:e,data:i.slice(w+4,w+4+t)}),w+=4+t}}catch{}const f=sa(r,s+4);n.assign(t,{signature:aa(r,s+10),compressedSize:aa(r,s+14),uncompressedSize:aa(r,s+18)});const p=l.get(1);p&&(((e,t)=>{t.zip64=!0;const n=je(e.data),r=Ws.filter(([e,n])=>t[e]==n),s=r.reduce((e,[,t])=>e+Ls[t].bytes,0);if(e.data.length<s)throw new u(bs);for(let s=0,a=0;s<r.length;s++){const[i,o]=r[s],c=Ls[o];t[i]=e[i]=c.Le(n,a),a+=c.bytes}})(p,t),t.extraFieldZip64=p);const h=l.get(28789);h&&(Zs(h,Fr,Rr,t,e),t.extraFieldUnicodePath=h);const m=l.get(25461);m&&(Zs(m,Dr,Ur,t,e),t.extraFieldUnicodeComment=m);const y=l.get(39169);y&&y.data.length>=7?(((e,t,r)=>{const s=je(e.data),a=ra(s,4);n.assign(e,{Pe:ra(s,0),vendorId:ra(s,2),strength:a,originalCompressionMethod:r,compressionMethod:sa(s,5)}),t.compressionMethod=e.compressionMethod})(y,t,f),t.extraFieldAES=y):t.compressionMethod=f;const g=l.get(10);g&&(((e,t)=>{const r=je(e.data);let s,a=4;try{for(;a<e.data.length&&!s;){const t=sa(r,a),n=sa(r,a+2);1==t&&(s=e.data.slice(a+4,a+4+n)),a+=4+n}}catch{}try{if(s&&24==s.length){const r=je(s),a=r.getBigUint64(0,!0),i=r.getBigUint64(8,!0),o=r.getBigUint64(16,!0);n.assign(e,{rawLastModDate:a,rawLastAccessDate:i,rawCreationDate:o});const c={lastModDate:na(a),lastAccessDate:na(i),creationDate:na(o)};n.assign(e,c),n.assign(t,c)}}catch{}})(g,t),t.extraFieldNTFS=g);const x=l.get(30805);if(x)Ps(x,t,!1),t.extraFieldUnix=x;else{const e=l.get(30837);e&&(Ps(e,t,!0),t.extraFieldInfoZip=e)}const S=l.get(Y);S&&(((e,t,n)=>{if(!e.data.length)return;const r=je(e.data),s=ra(r,0),a=[],i=[];n?(1&~s||(a.push(Tr),i.push(Wr)),2&~s||(a.push(Lr),i.push("rawLastAccessDate")),4&~s||(a.push(Ar),i.push(Ir))):5>e.data.length||(a.push(Tr),i.push(Wr));let c=1;a.forEach((n,s)=>{if(e.data.length>=c+4){const a=aa(r,c);t[n]=e[n]=new o(1e3*(0|a));const l=i[s];e[l]=a}c+=4})})(S,t,a),t.extraFieldExtendedTimestamp=S);const z=l.get(6534);z&&(t.extraFieldUSDZ=z)}function Zs(e,t,r,s,a){if(5>e.data.length)return void(e.valid=!1);const i=je(e.data),o=new Ze;o.append(a[r]);const c=je(new f(4));c.setUint32(0,o.get(),!0);const l=aa(i,1);n.assign(e,{version:ra(i,0),[t]:br(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==aa(c,0)}),e.valid&&(s[t]=e[t],s[t+"UTF8"]=!0)}function Ps(e,t,r){try{const s=je(e.data);let a,i;if(r){let t=0;const r=ra(s,t++),o=ra(s,t++);a=Hs(e.data.subarray(t,t+o)),t+=o;const c=ra(s,t++);i=Hs(e.data.subarray(t,t+c)),n.assign(e,{version:r,uid:a,gid:i})}else 4>e.data.length||(a=sa(s,0),i=sa(s,2),n.assign(e,{uid:a,gid:i}));a!==$&&(t.uid=a),i!==$&&(t.gid=i)}catch{}}function Hs(e){const t=new f(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function Os(e,t){return e.We?e.We(t):0}function Ys(e,t){return e===$?t?hs:"balanced":e}const js=64,Xs=0,Gs=1,Bs=2;async function*Ks(e,t){const n=e.size-t,r=await Sr(e,n,t),s=je(r);for(let e=r.length-H;e>=0;e--)aa(s,e)==q&&(yield[s,n,r,e,n+e])}function Qs(e,t,n){return{offset:n,buffer:e.slice(t,t+H).buffer}}async function Js(e,t,n,r,s,a,i){const o=sa(t,r+10),c=aa(t,r+12),l=aa(t,r+16);if(o==L||c==W||l==W)return await _s(e,t,n,s-O,a,i)==P?Bs:Xs;if(!o&&!c)return Gs;const d=sa(t,r+6);for(const r of[s-c,Os(e,d)+l])if(await _s(e,t,n,r,a,i)==V)return Bs;return Xs}async function _s(e,t,n,r,s,a){return 0>r||r+4>s?$:n>r?a.count>0?(a.count--,aa(je(await Sr(e,r,4)),0)):$:aa(t,r-n)}function $s(e){const t=new u(Cs);throw t.reason=e,t}function ea(e,t,n){return t[n]===$?e.options[n]:t[n]}function ta(e){const t=(4294901760&e)>>16,n=e&L;try{return new o(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&n)>>11,(2016&n)>>5,2*(31&n),0)}catch{}}function na(e){return new o(s(e/a(1e4)-a(116444736e5)))}function ra(e,t){return e.getUint8(t)}function sa(e,t){return e.getUint16(t,!0)}function aa(e,t){return e.getUint32(t,!0)}function ia(e,t){return s(e.getBigUint64(t,!0))}var oa=n.freeze({__proto__:null,ERR_AMBIGUOUS_ARCHIVE:Cs,ERR_BAD_FORMAT:ys,ERR_CENTRAL_DIRECTORY_NOT_FOUND:Ss,ERR_ENCRYPTED:Fs,ERR_ENCRYPTED_CENTRAL_DIRECTORY:Es,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:xs,ERR_EOCDR_NOT_FOUND:gs,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:bs,ERR_INVALID_COMPRESSED_DATA:Zt,ERR_INVALID_PASSWORD:Je,ERR_INVALID_SIGNATURE:_e,ERR_INVALID_UNCOMPRESSED_SIZE:qt,ERR_LOCAL_FILE_HEADER_NOT_FOUND:zs,ERR_OVERLAPPING_ENTRY:ks,ERR_SPLIT_ZIP_FILE:Us,ERR_UNSUPPORTED_COMPRESSION:Ds,ERR_UNSUPPORTED_ENCRYPTION:Rs,ZipReader:As,ZipReaderStream:Is});const ca="File already exists",la="Zip file comment exceeds 64KB",da="File entry comment exceeds 64KB",wa="File entry name exceeds 64KB",ua="Version exceeds 65535",fa="The strength must equal 1, 2, or 3",pa="Encryption is not supported in USDZ files",ha="Extra field type exceeds 65535",ma="Extra field data exceeds 64KB",ya=-2147483648,ga=2147483647,xa="Zip64 is not supported (set the 'zip64' option to 'true')",Sa="Undefined uncompressed size",za="Undefined reader",ba="Zip file not empty",Fa=new f([7,0,2,0,65,69,3,0,0]),Ra="infozip",Da="unix";let Ua=0;const ka=[];class Ca{constructor(e,t={}){e=new gr(e);const{availableSize:r=ee,maxSize:s=ee}=e,a=r>0&&r!==ee&&s>0&&s!==ee;n.assign(this,{writer:e,He:a,options:t,config:ce(),files:new c,Oe:new l,offset:t[us]===$?e.size||e.writable.size||0:t[us],Ye:t[us]===$?0:t[us]-(e.size||e.writable.size||0),je:new l,Xe:0,Ge:$})}async prependZip(e){if(this.Oe.size)throw new u(ba);e=new yr(e),await xr(e);const{ZipReader:t}=await g.resolve().then(()=>oa),r=new t(e.readable),s=await r.getEntries();await r.close(),await xr(this.writer),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.Oe=new l(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,rawLastModDate:r,lastAccessDate:s,creationDate:a,rawFilename:i,bitFlag:o,encrypted:c,uncompressedSize:l,compressedSize:d,zip64:w}=e;let{compressionMethod:u,Be:f,Ke:p,Qe:h,Je:m,_e:y,rawExtraField:g}=e;const{level:x,languageEncodingFlag:S,dataDescriptor:z}=o;f=f||re,p=p||re,h=h||re,m=m||re,y=y||re,g=g||re,e.extraFieldAES&&(u=99);const b=Ba(f,p,h,m,y,g),F=w&&l>=W,R=w&&d>=W,D=-7&Qa(x,S,z,c,u)|x<<1,{$e:U,et:k}=Ka({version:t,bitFlag:D,compressionMethod:u,uncompressedSize:l,compressedSize:d,rawLastModDate:r,rawFilename:i,nt:R,st:F,extraFieldLength:b}),{signature:C}=e;return C!==$&&ja(k,10,C),n.assign(e,{st:F,nt:R,it:w&&e.offset>=W,diskNumberStart:0,ot:!1,Be:f,Ke:p,Qe:h,Je:m,_e:y,rawExtraField:g,extendedTimestamp:h.length>0||m.length>0,ct:1+(s?2:0)+(a?4:0),$e:U,et:k}),[e.filename,e]}))}async add(e="",t,r={}){const s=this;r=n.assign({},r);const{je:c,config:l}=s;let d,w;Ua<l.maxWorkers?Ua++:await new g(e=>ka.push(e));try{if(e=e.trim(),Ha(s,r,Xr)&&!e.endsWith(K)&&(e+=K),s.Oe.has(e))throw new u(ca);return s.Oe.add(e),w=!0,d=(async(e,t,r,s)=>{const c=((e,t,n)=>{t=t.trim();let r=Ha(e,n,Zr),s=Ha(e,n,Yr,r?20:768);const a=Ha(e,n,Gr),i=Ha(e,n,"uid"),o=Ha(e,n,"gid");let c=Ha(e,n,Jr),l=Ha(e,n,"unixExtraFieldType"),d=Ha(e,n,_r),w=Ha(e,n,$r),f=Ha(e,n,es);if(i!==$&&(0>i||i>W))throw new u("Invalid uid (must be integer 0..2^32-1)");if(o!==$&&(0>o||o>W))throw new u("Invalid gid (must be integer 0..2^32-1)");if(c!==$&&(0>c||c>L))throw new u("Invalid UNIX mode (must be integer 0..65535)");if(l!==$&&l!==Ra&&l!==Da)throw new u("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");if(l===Da&&(i!==$&&i>L||o!==$&&o>L))throw new u("uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)");l!==$||i===$&&o===$||(l=Ra);let p=Ha(e,n,Vr),h=Ha(e,n,qr);const m=p!==$||h!==$;if(i!==$||o!==$||c!==$||l?(r=!1,s=s&L|768):m&&(r=!0,s&=A),p!==$&&(0>p||p>A))throw new u("Invalid msdosAttributesRaw (must be integer 0..255)");if(h&&"object"!=typeof h)throw new u("Invalid msdosAttributes (must be an object with boolean flags)");if(s>L)throw new u(ua);let y=Ha(e,n,Mr);const g=y!==$;g||(y=0),!n[Xr]&&t.endsWith(K)&&(n[Xr]=!0);const x=Ha(e,n,Xr);let S;if(x?(t.endsWith(K)||(t+=K),g||(y=16,r||(y|=16877<<16))):r||g||(y=a?493<<16:27525120),!r){const e=c!==$||!!(d||w||f);S=y>>16&L,c=c===$?S:c&L,d?c|=G:d=!!(c&G),w?c|=B:w=!!(c&B),f?c|=512:f=!!(512&c),g&&!e||(x&&(c|=X),y=(c&L)<<16|y&L)}return({msdosAttributesRaw:p,msdosAttributes:h}=((e,t)=>{if(e!==$)e&=A;else if(t!==$){const{readOnly:n,hidden:r,system:s,directory:a,archive:i}=t;let o=0;n&&(o|=1),r&&(o|=2),s&&(o|=4),a&&(o|=16),i&&(o|=32),e=o&A}return t===$&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(p,h)),m&&(y=y&W|p&A),{name:t,lt:{versionMadeBy:s,msDosCompatible:r,externalFileAttributes:y,unixExternalUpper:S,uid:i,gid:o,unixMode:c,unixExtraFieldType:l,setuid:d,setgid:w,sticky:f,msdosAttributesRaw:p,msdosAttributes:h}}})(e,t,s);({name:t}=c);const l=((e,t,n)=>{const r=Ha(e,n,"encodeText",He);let s=r(t);if(s===$&&(s=He(t)),Ba(s)>L)throw new u(wa);const a=n[Dr]||"";let i=r(a);if(i===$&&(i=He(a)),Ba(i)>L)throw new u(da);const c=Ha(e,n,Or,20);if(c>L)throw new u(ua);const l=Ha(e,n,Tr,new o),d=Ha(e,n,Lr),w=Ha(e,n,Ar),p=Ha(e,n,Nr,0),h=Ha(e,n,as);let m,y;h||(m=Ha(e,n,rs),y=Ha(e,n,ss));const g=Ha(e,n,"encryptionStrength",3),x=Ha(e,n,jr),S=Ha(e,n,"extendedTimestamp",!0),z=Ha(e,n,"ntfsTimestamp"),b=Ha(e,n,"keepOrder",!0),F=Ha(e,n,cs),R=Ha(e,n,ds),D=Ha(e,n,"bufferedWrite"),U=Ha(e,n,"createTempStream"),k=Ha(e,n,"dataDescriptorSignature",!0),C=Ha(e,n,is),E=Ha(e,n,"useUnicodeFileNames",!0),v=Ha(e,n,Br),T=h||v===$?$:Ce(v);if(!h&&v!==$&&0!==v&&8!==v&&!T)throw new u("Compression method not supported");let W=Ha(e,n,"level");if(e.options[fs]){if(m!==$||y!==$)throw new u(pa);W===$&&v===$&&(W=0)}let A=Ha(e,n,ls),I=Ha(e,n,"dataDescriptor");D&&I===$&&(I=!1),(I===$||x)&&(I=!0),W!==$&&6!=W&&(A=!1),A||T||e.config.CompressionStream!==$||e.config.CompressionStreamZlib!==$||(W=0);const N=Ha(e,n,Pr);if(!x&&(m!==$||y!==$)&&(1>g||g>3))throw new u(fa);let M=re;const V=n[Qr];if(V){let e=0,t=0;V.forEach(t=>e+=4+Ba(t)),M=new f(e);const n=je(M);V.forEach((e,r)=>{if(r>L)throw new u(ha);if(Ba(e)>L)throw new u(ma);Ya(n,t,r),Ya(n,t+2,Ba(e)),Ga(M,e,t+4),t+=4+Ba(e)})}return{comment:a,lt:{rawFilename:s,rawComment:i,version:c,lastModDate:l,lastAccessDate:d,creationDate:w,internalFileAttributes:p,passThrough:h,password:m,rawPassword:y,encryptionStrength:g,zipCrypto:x,extendedTimestamp:S,ntfsTimestamp:z,keepOrder:b,useWebWorkers:F,transferStreams:R,bufferedWrite:D,createTempStream:U,dataDescriptorSignature:k,signal:C,useUnicodeFileNames:E,compressionMethod:v,format:T?T.format:$,codecURI:T?T.codecURI:$,wt:T?T.versionNeeded:$,level:W,useCompressionStream:A,dataDescriptor:I,zip64:N,rawExtraField:M}}})(e,t,s),{comment:d}=l,w=s[Qr];let p;e.files.set(t,$);try{const d=await(async(e,t,{lt:n},r)=>{const{passThrough:s,zipCrypto:a,password:i,rawPassword:o,encryptionStrength:c}=n;let{dataDescriptor:l,zip64:d,level:w,compressionMethod:f}=n,p=0,h=0;if(s){if(!t)throw new u(za);if(h=r[kr],h===$)throw new u(Sa)}const m=!0===d,y=Ha(e,r,Hr),g=!!t&&(!!(i&&Ba(i)||o&&Ba(o))||s&&y);t||(w=0,f=0);const x=g?a?12:16+4*c:0;t&&(t=new yr(t),await xr(t),s?(r.uncompressedSize=h,p=Oa(h)+x):t.size===$?(l=!0,(d||d===$)&&(d=!0,h=p=4294967296)):(r.uncompressedSize=h=t.size,p=Oa(h)+x));const S=m||h>=W,z=m||p>=W;if(S||z){if(!1===d)throw new u(xa);d=!0}return d=d||!1,{reader:t,lt:{dataDescriptor:l,zip64:d,st:S,nt:z,uncompressedSize:h,level:w,compressionMethod:f,encrypted:g}}})(e,r,l,s);({reader:r}=d);const w=Aa(e.writer),h=La(e.writer),m=(e=>{const{rawFilename:t,lastModDate:n,lastAccessDate:r,creationDate:s,level:a,zip64:c,zipCrypto:l,useUnicodeFileNames:d,dataDescriptor:w,directory:f,rawExtraField:p,encryptionStrength:h,extendedTimestamp:m,ntfsTimestamp:y,passThrough:g,encrypted:x,st:S,nt:z,uncompressedSize:b}=e;let{version:F,compressionMethod:R}=e;const D=!f&&(R===$?a===$||a>0:0!==R);let U;const k=g||!D,C=c&&(e.bufferedWrite||!w||!S&&!z||k),E=C||c&&w&&(S||z);if(c&&(S||z)){const e=20,t=Wa(e);if(t.uint16(1),t.uint16(e-4),U=t.array,C&&(t.ut(b),k)){const e=x?l?12:16+4*h:0;t.ut(g?0:b+e)}}else U=re;let v,T,W,A,N;if(x&&!l){const e=Wa(Ba(Fa)+2);e.uint16(39169),e.bytes(Fa),v=e.array,v[8]=h}else v=re;if(m){const e=qa(n),t=Za(e);if(t){const t=9+(r?4:0)+(s?4:0),n=Wa(t);A=1+(r?2:0)+(s?4:0),n.uint16(Y),n.uint16(t-4),n.uint8(A),n.uint32(e),r&&n.uint32(Pa(qa(r))),s&&n.uint32(Pa(qa(s))),W=n.array}else W=re;if(y===$?!t||r||s:y)try{const e=Va(n),t=Wa(36);t.uint16(10),t.uint16(32),t.ft(4),t.uint16(1),t.uint16(24),t.ut(e),t.ut(Va(r)||e),t.ut(Va(s)||e),T=t.array}catch{T=re}else T=re}else T=W=re;try{const{uid:t,gid:n,unixExtraFieldType:r}=e;if(r!=Ra||t===$&&n===$)if(r!=Da||t===$&&n===$)N=re;else{const e=Wa(8);e.uint16(30805),e.uint16(4),e.uint16((t===$?0:t)&L),e.uint16((n===$?0:n)&L),N=e.array}else{const e=Ta(t),r=Ta(n),s=3+e.length+r.length,a=Wa(4+s);a.uint16(30837),a.uint16(s),a.uint8(1),a.uint8(e.length),a.bytes(e),a.uint8(r.length),a.bytes(r),N=a.array}}catch{N=re}R===$&&(R=D?8:0);const{wt:M}=e;D&&M!==$&&(F=F>M?F:M),c&&(F=F>45?F:45),x&&!l&&(F=F>51?F:51,v[9]=R,R=99);const V=E?Ba(U):0,q=V+Ba(v,W,T,N,p);if(q>L)throw new u(ma);const Z=new o(2e3*i.ceil(n.getTime()/2e3)),{$e:P,et:H,rawLastModDate:O}=Ka({version:F,bitFlag:Qa(a,d,w,x,R),compressionMethod:R,uncompressedSize:b,lastModDate:_>Z?_:Z>J?J:Z,rawFilename:t,nt:z,st:S,extraFieldLength:q}),j=Wa(Q+Ba(t)+q),X=j.array,G=je(X);return j.uint32(I),j.bytes(P),j.bytes(t),E&&j.bytes(U),j.bytes(v),j.bytes(W),j.bytes(T),j.bytes(N),j.bytes(p),w&&(z||ja(G,18,0),S||ja(G,22,0)),{ht:X,yt:G,$e:P,et:H,lastModDate:n,rawLastModDate:O,encrypted:x,compressed:D,version:F,compressionMethod:R,ct:A,Be:re,gt:V,Qe:W,Je:T,_e:N,Ke:v,extraFieldLength:q}})(s=n.assign({},s,c.lt,l.lt,d.lt,{internalFileAttribute:l.lt.internalFileAttributes,externalFileAttribute:c.lt.externalFileAttributes,signature:s[Kr],offset:e.offset-w,diskNumberStart:h})),y=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:n})=>{let r,s=re,a=0,i=e?20:12;return n&&(i+=4),t&&(s=new f(i),r=je(s),n&&(a=4,ja(r,0,M))),{xt:s,St:r,zt:a}})(s),x=Ba(m.ht,y.xt);p=await(async(e,t,r,s,i)=>{const{files:o,writer:c}=e,{keepOrder:l,dataDescriptor:d,signal:w}=i,{bt:p}=s,h=e.options[fs],m=e.Ge;let y,x,S,z,b,F,D,k={},C=0;o.set(t,k),e.Ge=k;try{let x;l&&(x=m&&m.lock,k.lock=new g(e=>S=e)),i.bufferedWrite||!l||e.Ft||e.Xe||!d?(y=!0,e.Xe++,D=i.createTempStream?await i.createTempStream():new R($,$,{highWaterMark:ee}),D.size=0,await xr(c)):(D=c,await E()),await xr(D);const T=Aa(c);if(e.He){delete e.He;const t=new f(4);ja(je(t),0,N),await Ma(c,t),e.offset+=4}h&&!y&&va(s,e.offset-T);const{ht:L}=p;y||(await x,await v());const I=La(c),M=Na(e,c);if(k.diskNumberStart=I,y||(b=!0,F=c.size,await Ma(D,L)),k=await(async(e,t,{diskNumberStart:r,lock:s},i,o,c)=>{const{bt:l,Rt:d,Dt:w}=i,{$e:f,et:p,lastModDate:h,rawLastModDate:m,encrypted:y,compressed:g,version:x,compressionMethod:S,Be:z,gt:b,Qe:F,ct:R,Je:D,_e:U,Ke:k}=l,{xt:C}=d,{rawFilename:E,lastAccessDate:v,creationDate:T,password:L,rawPassword:I,level:N,zip64:M,st:V,nt:q,zipCrypto:Z,dataDescriptor:P,directory:H,executable:O,versionMadeBy:Y,rawComment:j,rawExtraField:X,useWebWorkers:G,transferStreams:B,onstart:K,onprogress:Q,onend:J,signal:_,encryptionStrength:ee,extendedTimestamp:te,msDosCompatible:ne,internalFileAttributes:re,externalFileAttributes:se,uid:ae,gid:ie,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:we,msdosAttributesRaw:ue,msdosAttributes:fe,useCompressionStream:pe,passThrough:he,format:me,codecURI:ye}=c,ge={lock:s,versionMadeBy:Y,zip64:M,directory:!!H,executable:!!O,filenameUTF8:!0,rawFilename:E,commentUTF8:!0,rawComment:j,Be:z,gt:b,Qe:F,Je:D,_e:U,Ke:k,rawExtraField:X,extendedTimestamp:te,msDosCompatible:ne,internalFileAttributes:re,externalFileAttributes:se,diskNumberStart:r,uid:ae,gid:ie,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:we,msdosAttributesRaw:ue,msdosAttributes:fe};let{signature:xe,uncompressedSize:Se}=c,ze=0;he||(Se=0);const{writable:be}=t;if(e){const n=Mt(e.createReadable?e.createReadable():e.readable),r=e.size,s={options:{codecType:_t,level:N,rawPassword:I,password:L,encryptionStrength:ee,zipCrypto:y&&Z,passwordVerification:y&&Z&&m>>8&A,signed:!he,compressed:g&&!he,encrypted:y&&!he,useWebWorkers:G,useCompressionStream:pe,transferStreams:B,format:me,codecURI:ye,compressionMethod:S},config:o,ce:{signal:_,size:r,onstart:K,onprogress:Q,onend:J}};try{const e=await Un({readable:n,writable:be},s);if(ze=e.outputSize,t.size+=ze,he||(Se=e.inputSize,xe=e.signature),!q&&ze>=W||!V&&Se>=W)throw new u(xa)}catch(e){throw e.outputSize!==$&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:n,bt:r,Rt:s},{zip64:i,zipCrypto:o,dataDescriptor:c})=>{const{et:l,encrypted:d}=r,{St:w,zt:u}=s;d&&!o||e===$||(ja(l,10,e),c&&ja(w,u,e)),i?c&&(Xa(w,u+4,a(t)),Xa(w,u+12,a(n))):(ja(l,14,t),ja(l,18,n),c&&(ja(w,u+4,t),ja(w,u+8,n)))})({signature:xe,compressedSize:ze,uncompressedSize:Se,bt:l,Rt:d},c),P&&await Ma(t,C),n.assign(ge,{uncompressedSize:Se,compressedSize:ze,lastModDate:h,rawLastModDate:m,creationDate:T,lastAccessDate:v,encrypted:y,zipCrypto:Z,size:w+ze,compressionMethod:S,version:x,$e:f,et:p,signature:xe,ct:R,st:V,nt:q}),ge})(r,D,k,s,e.config,i),y||(b=!1),o.set(t,k),k.filename=t,y){if(await g.all([D.writable.getWriter().close(),x]),await E(),z=!0,F=c.size,await v(),k.diskNumberStart=La(c),k.offset=Na(e,c),h){const t=s.Dt;va(s,e.offset-Aa(c)),k.size+=s.Dt-t}(({rawFilename:e,encrypted:t,zip64:n,gt:r,signature:s,compressedSize:i,uncompressedSize:o,st:c,nt:l},d,{dataDescriptor:w})=>{if(w||(t||ja(d,14,s),l||ja(d,18,i),c||ja(d,22,o)),n&&r){const t=Q+Ba(e)+4;Xa(d,t,a(o)),Xa(d,t+8,a(i))}})(k,p.yt,i),await Ma(c,p.ht),await(async(e,t,n)=>{const r=t.writable.getWriter();try{await e.pipeTo(new U({async write(e){var t;await r.ready,await r.write(e),t=Ba(e),C+=t}}),{preventClose:!0,preventAbort:!0,signal:n})}finally{r.releaseLock()}})(D.readable,c,w),c.size+=D.size,z=!1}else k.diskNumberStart=I,k.offset=M;return e.offset+=k.size,k}catch(n){if(z||b){if(e.hasCorruptedEntries=!0,n)try{n.corruptedEntry=!0}catch{}e.offset+=c.size-F,y&&(e.offset+=C)}throw o.delete(t),n}finally{if(y&&e.Xe--,S&&S(),x&&x(),y&&D&&D.dispose)try{await D.dispose()}catch{}}async function E(){e.Ft=!0;const{Ut:t}=e;e.Ut=new g(t=>x=()=>{e.Ft=!1,t()}),await t}async function v(){Ia(c,Ba(p.ht))&&await c.closeDisk()}})(e,t,r,{bt:m,Rt:y,Dt:x},s)}catch(n){throw e.files.delete(t),n}return n.assign(p,{name:t,comment:d,extraField:w}),new ns(p)})(s,e,t,r),c.add(d),await d}catch(t){throw w&&s.Oe.delete(e),t}finally{c.delete(d);const e=ka.shift();e?e():Ua--}}remove(e){const{Oe:t,files:n}=this;if("string"==typeof e&&(e=n.get(e)),e&&e.filename!==$){const{filename:r}=e;if(t.has(r)&&n.has(r))return t.delete(r),n.delete(r),!0}return!1}async close(e=re,n={}){const{je:r,writer:s}=this,{writable:i}=s;if(Ba(e)>L)throw new u(la);for(;r.size;)await g.allSettled(t.from(r));return await(async(e,n,r)=>{const s=(e=>{let t=0;for(const[,n]of e){const{rawFilename:e,Ke:r,rawComment:s,Je:a,_e:i,rawExtraField:o,extendedTimestamp:c,ct:l,lastModDate:d,st:w,nt:f,uncompressedSize:p,compressedSize:h}=n,m=n.offset>=W,y=n.diskNumberStart>=L;let g,x;if(m||y||w||f){const e=4+(w?8:0)+(f?8:0)+(m?8:0)+(y?4:0),t=Wa(e);t.uint16(1),t.uint16(e-4),w&&t.ut(p),f&&t.ut(h),m&&t.ut(n.offset),y&&t.uint32(n.diskNumberStart),g=t.array}else g=re;n.Be=g,n.it=m,n.ot=y;const S=qa(d);if(c&&Za(S)){const e=Wa(9);e.uint16(Y),e.uint16(5),e.uint8(l),e.uint32(S),x=e.array}else x=re;n.Qe=x;const z=Ba(g,r,a,i,x,o);if(z>L)throw new u(ma);t+=46+Ba(e,s)+z}return t})(e.files),i=await(async(e,n,r)=>{const{files:s,writer:a}=e,i=new f(n);await xr(a);let o=0,c=0,l=La(a),d=Aa(a);for(const[e,n]of t.from(s.values()).entries()){const{offset:t,rawFilename:w,Be:u,Ke:f,Qe:p,Je:h,_e:m,rawExtraField:y,rawComment:g,versionMadeBy:x,$e:S,et:z,st:b,nt:F,ot:R,it:D,internalFileAttributes:U,externalFileAttributes:k,diskNumberStart:C,uncompressedSize:E,compressedSize:v}=n,T=Ba(u,f,p,h,m,y),A=46+Ba(w,g)+T;Ia(a,o+A-c)&&(await Ma(a,i.slice(c,o)),c=o,await a.closeDisk()),0==e&&(l=La(a),d=Aa(a)),b||ja(z,18,E),F||ja(z,14,v),(D||R)&&45>n.version&&Ya(z,0,45);const I=Wa(A);if(I.uint32(V),I.uint16(x),I.bytes(S.subarray(0,24)),I.uint16(T),I.uint16(Ba(g)),I.uint16(R?L:C),I.uint16(U),I.uint32(k),I.uint32(D?W:t),I.bytes(w),I.bytes(u),I.bytes(f),I.bytes(p),I.bytes(h),I.bytes(m),I.bytes(y),I.bytes(g),Ga(i,I.array,o),o+=A,r.onprogress)try{await r.onprogress(e+1,s.size,new ns(n))}catch{}}return await Ma(a,c?i.slice(c):i),{diskNumber:l,diskOffset:d}})(e,s,r);await(async(e,t,n,r)=>{const{writer:s}=e,{kt:i}=r;let{Ct:o}=r,c=e.files.size,l=i.diskNumber,d=Na(e,i),w=La(s);Ia(s,H)&&w++;let f=Ha(e,n,Pr);if(!(W>d&&W>o&&L>c&&L>w)){if(!1===f)throw new u(xa);f=!0}const p=Ba(t);if(p>L)throw new u(la);const h=Wa(f?98:H);Ia(s,Ba(h.array)+p)&&await s.closeDisk(),w=La(s),f&&(h.uint32(Z),h.ut(44),h.uint16(45),h.uint16(45),h.uint32(w),h.uint32(l),h.ut(c),h.ut(c),h.ut(o),h.ut(d),h.uint32(P),h.uint32(w),h.ut(a(Na(e,s))+a(o)),h.uint32(w+1),Ha(e,n,"supportZip64SplitFile",!0)&&(w=L,l=L),c=L,d=W,o=W),h.uint32(q),h.uint16(w),h.uint16(l),h.uint16(c),h.uint16(c),h.uint32(o),h.uint32(d),h.uint16(p),await Ma(s,h.array),p&&await Ma(s,t)})(e,n,r,{kt:i,Ct:s})})(this,e,n),Ha(this,n,ws)||await i.getWriter().close(),s.getData?s.getData():i}}function Ea(e,t,n){e.je.add(t),t.catch(e=>{try{n(e)}catch{}})}function va(e,t){const{bt:n}=e;let{ht:r,extraFieldLength:s}=n,a=64-(t+Ba(r))%64;4>a&&(a+=64);const i=new f(a),o=je(i);Ya(o,0,6534),Ya(o,2,a-4);const c=r;n.ht=r=new f(Ba(c)+a),Ga(r,c),Ga(r,i,Ba(c));const l=je(r);Ya(l,28,s+a),n.yt=l,e.Dt+=a}function Ta(e){if(e===$)return re;{const t=new f(4);je(t).setUint32(0,e,!0);let n=4;for(;n>1&&0===t[n-1];)n--;return t.subarray(0,n)}}function Wa(e){const t=new f(e),n=je(t);let r=0;return{array:t,uint8:e=>{((e,t,n)=>{e.setUint8(t,n)})(n,r,e),r+=1},uint16:e=>{Ya(n,r,e),r+=2},uint32:e=>{ja(n,r,e),r+=4},ut:e=>{Xa(n,r,a(e)),r+=8},bytes:e=>{Ga(t,e,r),r+=Ba(e)},ft:e=>r+=e}}function La(e){const{diskNumber:t=0}=e;return t}function Aa(e){const{diskOffset:t=0}=e;return t}function Ia(e,t){const{availableSize:n=ee}=e;return t>n}function Na(e,{diskNumber:t=0,diskOffset:n=0}){return e.offset-n-(t?e.Ye:0)}async function Ma(e,t){const{writable:n}=e,r=n.getWriter();try{await r.ready,e.size+=Ba(t),await r.write(t)}finally{r.releaseLock()}}function Va(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function qa(e){return i.floor(e.getTime()/1e3)}function Za(e){return e>=ya&&ga>=e}function Pa(e){return i.min(ga,i.max(ya,e))}function Ha(e,t,n,r){const s=t[n]===$?e.options[n]:t[n];return s===$?r:s}function Oa(e){return e+5*(i.floor(e/16383)+1)}function Ya(e,t,n){e.setUint16(t,n,!0)}function ja(e,t,n){e.setUint32(t,n,!0)}function Xa(e,t,n){e.setBigUint64(t,n,!0)}function Ga(e,t,n){e.set(t,n)}function Ba(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function Ka({version:e,bitFlag:t,compressionMethod:n,uncompressedSize:r,compressedSize:s,lastModDate:a,rawLastModDate:i,rawFilename:o,nt:c,st:l,extraFieldLength:d}){const w=Wa(26),u=w.array,f=je(u);if(w.uint16(e),w.uint16(t),w.uint16(n),i===$){const e=new h(1),t=je(e);Ya(t,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),Ya(t,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate()),i=e[0]}return w.uint32(i),w.ft(4),c||s!==$?w.uint32(c?W:s):w.ft(4),l||r!==$?w.uint32(l?W:r):w.ft(4),w.uint16(Ba(o)),w.uint16(d),{$e:u,et:f,rawLastModDate:i}}function Qa(e,t,n,r,s){let a=0;return t&&(a|=j),n&&(a|=8),8!=s&&9!=s||(0>e||e>3||(a|=6),e>3&&5>=e&&(a|=4),9==e&&(a|=2)),r&&(a|=1),a}const Ja=1048576,_a=".zip.js-temp",$a=1048576,ei=1048576,ti=".zip.js-temp";try{we({baseURI:void 0===z&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===z?location.href:T&&"SCRIPT"===T.tagName.toUpperCase()&&T.src||new w("zip-legacy.min.js",z.baseURI).href})}catch{}we({workerURI:e=>{const t="text/javascript",n=(e=>{let t=0,n=0,r=0,s=new f(1024),a=0,i=0;for(;!i;){i=c(1);const e=c(2);if(0==e)l();else if(1==e)d(xe(ye),xe(ge));else{if(2!=e)throw u("invalid deflate block type");d(...w())}}return s.subarray(0,a);function o(){if(t>=e.length)throw u("unexpected end of deflate data");return e[t++]}function c(e){for(;e>r;)n|=o()<<r,r+=8;const t=n&(1<<e)-1;return n>>>=e,r-=e,t}function l(){n=0,r=0;const e=o()|o()<<8;t+=2,h(a+e);for(let t=0;e>t;t++)s[a++]=o()}function d(e,t){let n=p(e);for(;256!=n;){if(256>n)h(a+1),s[a++]=n;else{const e=n-257,r=ue[e]+c(fe[e]),i=p(t),o=pe[i]+c(he[i]);h(a+r);const l=a-o;for(let e=0;r>e;e++)s[a++]=s[l+e]}n=p(e)}}function w(){const e=c(5)+257,t=c(5)+1,n=c(4)+4,r=new f(19);for(let e=0;n>e;e++)r[me[e]]=c(3);const s=xe(r),a=new f(e+t);let i=0;for(;i<a.length;){const e=p(s);if(16>e)a[i++]=e;else if(16==e){const e=a[i-1];let t=c(2)+3;for(;t--;)a[i++]=e}else i+=17==e?c(3)+3:c(7)+11}return[xe(a.subarray(0,e)),xe(a.subarray(e))]}function p(e){const{o:t,symbols:n}=e;let r=0,s=0,a=0;for(let e=1;15>=e;e++){r|=c(1);const i=t[e];if(i>r-s)return n[a+(r-s)];a+=i,s=s+i<<1,r<<=1}throw u("invalid huffman code")}function h(e){if(s.length<e){let t=2*s.length;for(;e>t;)t*=2;const n=new f(t);n.set(s.subarray(0,a)),s=n}}})((e=>{const t=(e=(e+"").replace(/[^A-Za-z0-9+/=]/g,"")).length,n=[];for(let r=0;t>r;r+=4){const t=Se.indexOf(e[r])<<18|Se.indexOf(e[r+1])<<12|(63&Se.indexOf(e[r+2]))<<6|63&Se.indexOf(e[r+3]);n.push(t>>16&255),"="!==e[r+2]&&n.push(t>>8&255),"="!==e[r+3]&&n.push(255&t)}return new f(n)})("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"));if(e){const e=new y([n],{type:t});return w.createObjectURL(e)}return"data:"+t+";base64,"+(e=>{let t="";const n=e.length;let r=0;for(;n>r+2;r+=3){const n=e[r]<<16|e[r+1]<<8|e[r+2];t+=Se[n>>18&63]+Se[n>>12&63]+Se[n>>6&63]+Se[63&n]}const s=n-r;if(1===s){const n=e[r]<<16;t+=Se[n>>18&63]+Se[n>>12&63]+"=="}else if(2===s){const n=e[r]<<16|e[r+1]<<8;t+=Se[n>>18&63]+Se[n>>12&63]+Se[n>>6&63]+"="}return t})(n)}}),e.BlobReader=Kn,e.BlobWriter=Qn,e.Data64URIReader=class extends jn{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const r=e.indexOf(",")+1;n.assign(this,{dataURI:e,Et:r,size:i.floor(.75*(t-r))})}readUint8Array(e,t){const{Et:n,dataURI:r}=this,s=new f(t),a=4*i.floor(e/3),o=atob(r.substring(a+n,4*i.ceil((e+t)/3)+n)),c=e-3*i.floor(a/4);let l=0;for(let e=c;c+t>e&&e<o.length;e++)s[e-c]=o.charCodeAt(e),l++;return l<s.length?s.subarray(0,l):s}},e.Data64URIWriter=class extends Xn{constructor(e){super(),n.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let n,s=t.pending;const a=t.pending.length;for(t.pending="",n=0;n<3*i.floor((a+e.length)/3)-a;n++)s+=r.fromCharCode(e[n]);for(;n<e.length;n++)t.pending+=r.fromCharCode(e[n]);s.length>2?t.data+=F(s):t.pending=s+t.pending}getData(){return this.data+F(this.pending)}},e.ERR_AMBIGUOUS_ARCHIVE=Cs,e.ERR_BAD_FORMAT=ys,e.ERR_CENTRAL_DIRECTORY_NOT_FOUND=Ss,e.ERR_DUPLICATED_NAME=ca,e.ERR_ENCRYPTED=Fs,e.ERR_ENCRYPTED_CENTRAL_DIRECTORY=Es,e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=xs,e.ERR_EOCDR_NOT_FOUND=gs,e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=bs,e.ERR_HTTP_RANGE=Ln,e.ERR_HTTP_RESOURCE_CHANGED=An,e.ERR_INVALID_CODEC_DEFINITION=ze,e.ERR_INVALID_CODEC_MODULE=Fe,e.ERR_INVALID_COMMENT=la,e.ERR_INVALID_COMPRESSED_DATA=Zt,e.ERR_INVALID_ENCRYPTION_STRENGTH=fa,e.ERR_INVALID_ENTRY_COMMENT=da,e.ERR_INVALID_ENTRY_NAME=wa,e.ERR_INVALID_EXTRAFIELD_DATA=ma,e.ERR_INVALID_EXTRAFIELD_TYPE=ha,e.ERR_INVALID_PASSWORD=Je,e.ERR_INVALID_SIGNATURE=_e,e.ERR_INVALID_UNCOMPRESSED_SIZE=qt,e.ERR_INVALID_VERSION=ua,e.ERR_ITERATOR_COMPLETED_TOO_SOON=In,e.ERR_LOCAL_FILE_HEADER_NOT_FOUND=zs,e.ERR_OVERLAPPING_ENTRY=ks,e.ERR_RESERVED_COMPRESSION_METHOD=be,e.ERR_SPLIT_ZIP_FILE=Us,e.ERR_UNDEFINED_READER=za,e.ERR_UNDEFINED_UNCOMPRESSED_SIZE=Sa,e.ERR_UNSUPPORTED_COMPRESSION=Ds,e.ERR_UNSUPPORTED_ENCRYPTION=Rs,e.ERR_UNSUPPORTED_ENCRYPTION_USDZ=pa,e.ERR_UNSUPPORTED_FORMAT=xa,e.ERR_WRITER_NOT_INITIALIZED=Nn,e.ERR_ZIP_NOT_EMPTY=ba,e.HttpRangeReader=class extends pr{constructor(e,t={}){super(e,n.assign({},t,{useRangeHeader:!0}))}},e.HttpReader=pr,e.Reader=jn,e.SplitDataReader=hr,e.SplitDataWriter=mr,e.TextReader=class extends Kn{constructor(e){super(new y([e],{type:"text/plain"}))}},e.TextWriter=class extends Qn{constructor(e){super(e),n.assign(this,{encoding:e,vt:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,vt:t}=this,r=await super.getData();if(r.text&&t)return r.text();{const t=new FileReader;return new g((s,a)=>{n.assign(t,{onload:({target:e})=>s(e.result),onerror:()=>a(t.error)}),t.readAsText(r,e)})}}},e.Uint8ArrayReader=class extends jn{constructor(e){super(),e=new f(e.buffer,e.byteOffset,e.byteLength),n.assign(this,{array:e,size:e.length})}readUint8Array(e,t){return this.array.slice(e,e+t)}},e.Uint8ArrayWriter=class extends Xn{constructor(e){super(),this.defaultBufferSize=e||262144}init(e=0){n.assign(this,{offset:0,array:new f(e>0?e:this.defaultBufferSize)}),super.init()}writeUint8Array(e){const t=this,n=t.offset+e.length;if(n>t.array.length){let e=t.array.length?2*t.array.length:t.defaultBufferSize;for(;n>e;)e*=2;const r=t.array;t.array=new f(e),t.array.set(r)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}},e.Writer=Xn,e.ZipReader=As,e.ZipReaderStream=Is,e.ZipWriter=Ca,e.ZipWriterStream=class{constructor(e={}){const{readable:t,writable:n}=new R;this.readable=t,this.zipWriter=new Ca(n,e),this.je=new l}transform(e){const t=this.zipWriter;let n;const{readable:r,writable:s}=new R({start(e){n=e},flush:()=>{(async()=>{try{await t.close()}catch(e){try{await t.writer.writable.abort(e)}catch{}}})()}});return Ea(this,this.zipWriter.add(e,r),e=>n.error(e)),{readable:this.readable,writable:s}}writable(e){let t;const{readable:n,writable:r}=new R({start(e){t=e}});return Ea(this,this.zipWriter.add(e,n),e=>t.error(e)),r}async close(e,n={}){return await g.all(t.from(this.je)),this.zipWriter.close(e,n)}},e.configure=de,e.createBlobTempStream=(e={})=>{const{thresholdBytes:t=$a}=e;return()=>{const e=[];let n,r,s,a=0,i=!1;const o=new U({async write(s){i?await n.write(s):(e.push(s),a+=s.length,a>t&&await(async()=>{const t=new R;r=new d(t.readable).blob(),n=t.writable.getWriter(),i=!0;for(const t of e)await n.write(t);e.length=0})())},async close(){n&&(await n.close(),n=null)}});let c=0;return{writable:o,readable:new D({async pull(t){if(i){if(!s){const e=await r;s=e.stream().getReader()}const{value:e,done:n}=await s.read();n?t.close():t.enqueue(e)}else c<e.length?t.enqueue(e[c++]):t.close()},async cancel(e){s&&await s.cancel(e)}},{highWaterMark:0}),dispose:async()=>{if(n){try{await n.abort()}catch{}n=null}r&&(r.catch(()=>{}),r=null),e.length=0}}}},e.createOPFSTempStream=(e={})=>{const{thresholdBytes:t=Ja,directoryName:n=_a,getDirectory:r=()=>E.storage.getDirectory()}=e;let s;function a(){return s||(s=g.resolve(r()).then(e=>e.getDirectoryHandle(n,{create:!0}))),s}return()=>{const e=[];let n,r,s,i,o=0,c=!1;const l=new U({async write(i){c?await s.write(i):(e.push(i),o+=i.length,o>t&&await(async()=>{const t=await a();n=b.randomUUID(),r=await t.getFileHandle(n,{create:!0}),s=(await r.createWritable()).getWriter(),c=!0;for(const t of e)await s.write(t);e.length=0})())},async close(){s&&(await s.close(),s=null)}});let d=0;return{writable:l,readable:new D({async pull(t){if(c){if(!i){const e=await r.getFile();i=e.stream().getReader()}const{value:e,done:n}=await i.read();n?t.close():t.enqueue(e)}else d<e.length?t.enqueue(e[d++]):t.close()},async cancel(e){i&&await i.cancel(e)}},{highWaterMark:0}),dispose:async()=>{if(s){try{await s.close()}catch{}s=null}if(n){try{const e=await a();await e.removeEntry(n)}catch{}r=n=null}e.length=0}}}},e.createSyncAccessHandleTempStream=(e={})=>{const{thresholdBytes:t=ei,directoryName:n=ti,getDirectory:r}=e;if(!(r||"undefined"!=typeof FileSystemFileHandle&&FileSystemFileHandle.prototype.createSyncAccessHandle))throw new u("createSyncAccessHandle is only available in dedicated workers");const s=r||(()=>E.storage.getDirectory());let a;function o(){return a||(a=g.resolve(s()).then(e=>e.getDirectoryHandle(n,{create:!0}))),a}return()=>{const e=[];let n,r,s=0,a=!1,c=0,l=0;const d=new U({async write(i){a?(r.write(i,{at:c}),c+=i.length):(e.push(i),s+=i.length,s>t&&await(async()=>{const t=await o();n=b.randomUUID();const s=await t.getFileHandle(n,{create:!0});r=await s.createSyncAccessHandle(),a=!0;for(const t of e)r.write(t,{at:c}),c+=t.length;e.length=0})())},close(){r&&r.flush()}});let w=0;return{writable:d,readable:new D({pull(t){if(a){const e=c-l;if(0>=e)return void t.close();const n=new f(i.min(524288,e)),s=r.read(n,{at:l});s?(l+=s,t.enqueue(n.subarray(0,s))):t.close()}else w<e.length?t.enqueue(e[w++]):t.close()}},{highWaterMark:0}),dispose:async()=>{if(r){try{r.close()}catch{}r=null}if(n){try{const e=await o();await e.removeEntry(n)}catch{}n=null}e.length=0}}}},e.getMimeType=()=>"application/octet-stream",e.registerCodec=(e={})=>{const{compressionMethod:t,format:n,codecURI:r,CompressionStream:a,DecompressionStream:i,versionNeeded:o}=e;if(!s.isInteger(t)||0>t||t>L||typeof n!=Re||!n.length)throw new u(ze);if(De.includes(t))throw new u(be);const c=typeof a==ne||typeof i==ne;if(!(c||typeof r==Re&&r.length))throw new u(ze);Ue.set(t,{compressionMethod:t,format:n,codecURI:r,versionNeeded:o}),c&&ve(n,{CompressionStream:a,DecompressionStream:i})},e.resetConfiguration=()=>{for(const e of ie)delete oe[e];n.assign(oe,ae)},e.terminateWorkers=async()=>{await g.allSettled(zn.map(e=>(Tn(e),e.terminate()))),sn=$},e.unregisterCodec=e=>{const t=Ue.get(e);if(t){let n;Ue.delete(e),Ue.forEach(e=>n=n||e.format==t.format),n||ke.delete(t.format)}}});
1
+ ((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:n,String:r,Number:s,BigInt:i,Math:a,Date:o,Map:c,Set:l,Response:w,URL:d,Error:u,Uint8Array:f,Uint16Array:p,Uint32Array:h,DataView:m,Blob:y,Promise:S,TextEncoder:g,TextDecoder:b,document:x,crypto:z,btoa:F,TransformStream:R,ReadableStream:U,WritableStream:D,CompressionStream:E,DecompressionStream:k,navigator:v,Worker:T}="undefined"!=typeof globalThis?globalThis:this||self;var M=void 0!==x?x.currentScript:null;const C=4294967295,P=65535,W=255,q=67324752,A=134695760,N=A,O=33639248,j=101010256,I=101075792,Z=117853008,L=22,X=20,K=21589,V=2048,Y=16384,B=2048,H=1024,Q="/",G=30,J=new o(2107,11,31,23,59,58),_=new o(1980,0,1),$=void 0,ee=1/0,te="undefined",ne="function",re=new f;let se=2;try{typeof v!=te&&v.hardwareConcurrency&&(se=v.hardwareConcurrency)}catch{}const ie={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:se,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,workerStartupTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof E!=te&&E,DecompressionStream:typeof k!=te&&k},ae=["baseURI","wasmURI","workerURI","chunkSize","maxWorkers","terminateWorkerTimeout","workerStarvationTimeout","workerStartupTimeout","useCompressionStream","useWebWorkers","transferStreams","CompressionStream","DecompressionStream","CompressionStreamZlib","DecompressionStreamZlib"],oe={...ie};function ce(){return oe}function le(e){return a.max(e.chunkSize,64)}function we(e){for(const t of ae){const n=e[t];n!==$&&(oe[t]=n)}}function de(e){for(const t of ae){const n=e[t];n!==$&&(ie[t]=n)}we(e)}const ue=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258],fe=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],pe=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],he=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],me=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],ye=new f(288);ye.fill(8,0,144),ye.fill(9,144,256),ye.fill(7,256,280),ye.fill(8,280,288);const Se=new f(30).fill(5);function ge(e){const t=new p(16);for(const n of e)t[n]++;t[0]=0;const n=new p(17);for(let e=1;15>=e;e++)n[e+1]=n[e]+t[e];const r=new p(e.length);for(let t=0;t<e.length;t++)e[t]&&(r[n[e[t]]++]=t);return{o:t,symbols:r}}const be="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",xe="Invalid codec definition",ze="Reserved compression method",Fe="Invalid codec module",Re="string",Ue=[0,8,9,99],De=new c,Ee=new c;function ke(e){return De.get(e)}function ve(e){return Ee.get(e)}function Te(e,t){const{CompressionStream:n,DecompressionStream:r}=t;if(typeof n!=ne&&typeof r!=ne)throw new u(Fe);Ee.set(e,{CompressionStream:n,DecompressionStream:r})}const Me=[[],[],[],[],[],[],[],[]];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)t=1&t?t>>>1^3988292384:t>>>1;Me[0][e]=t}for(let e=0;256>e;e++)for(let t=1;8>t;t++){const n=Me[t-1][e];Me[t][e]=n>>>8^Me[0][255&n]}const[Ce,Pe,We,qe,Ae,Ne,Oe,je]=Me;class Ie{constructor(e){this.l=e||-1}append(e){let t=0|this.l;const n=0|e.length;let r=0;if(n>=8&&e.buffer){const s=new m(e.buffer,e.byteOffset,n),i=n-8;for(;i>=r;r+=8){const e=t^s.getInt32(r,!0),n=s.getInt32(r+4,!0);t=je[255&e]^Oe[e>>>8&255]^Ne[e>>>16&255]^Ae[e>>>24&255]^qe[255&n]^We[n>>>8&255]^Pe[n>>>16&255]^Ce[n>>>24&255]}}for(;n>r;r++)t=t>>>8^Ce[255&(t^e[r])];this.l=t}get(){return~this.l}}class Ze extends R{constructor(){let e;const t=new Ie;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new f(4);new m(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}function Le(e){if(typeof g==te){const t=new f((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new g).encode(e)}function Xe(e,t){const n=new f(e.length+t.length);return n.set(e),n.set(t,e.length),n}function Ke(e){return e.byteOffset||e.byteLength!=e.buffer.byteLength?new f(e):e}function Ve(e){return new m(e.buffer,e.byteOffset,e.byteLength)}const Ye={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=Ye.h(n);return 32===r?e.concat(t):Ye.m(t,r,0|n,e.slice(0,e.length-1))},S(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+Ye.h(n)},F(e,t){if(32*e.length<t)return e;const n=(e=e.slice(0,a.ceil(t/32))).length;return t&=31,n>0&&t&&(e[n-1]=Ye.R(t,e[n-1]&2147483648>>t-1,1)),e},R:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,h:e=>a.round(e/1099511627776)||32,m(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s<e.length;s++)r.push(n|e[s]>>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,i=Ye.h(s);return r.push(Ye.R(t+i&31,t+i>32?n:r.pop(),1)),r}},Be={bytes:{U(e){const t=Ye.S(e)/8,n=new f(t);let r;for(let s=0;t>s;s++)3&s||(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},D(e){const t=[];let n,r=0;for(n=0;n<e.length;n++)r=r<<8|e[n],3&~n||(t.push(r),r=0);return 3&n&&t.push(Ye.R(8*(3&n),r)),t}}},He=class{constructor(e){const t=this;t.blockSize=512,t.v=[1732584193,4023233417,2562383102,271733878,3285377520],t.T=[1518500249,1859775393,2400959708,3395469782],e?(t.M=e.M.slice(0),t.C=e.C.slice(0),t.P=e.P):t.reset()}reset(){const e=this;return e.M=e.v.slice(0),e.C=[],e.P=0,e}update(e){const t=this;"string"==typeof e&&(e=Be.W.D(e));const n=t.C=Ye.concat(t.C,e),r=t.P,s=t.P=r+Ye.S(e);if(s>9007199254740991)throw new u("Cannot hash more than 2^53 - 1 bits");const i=new h(n);let a=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);s>=e;e+=t.blockSize)t.A(i.subarray(16*a,16*(a+1))),a+=1;return n.splice(0,16*a),t}N(){const e=this;let t=e.C;const n=e.M;t=Ye.concat(t,[Ye.R(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(a.floor(e.P/4294967296)),t.push(0|e.P);t.length;)e.A(t.splice(0,16));return e.reset(),n}O(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}j(e,t){return t<<e|t>>>32-e}A(e){const n=this,r=n.M,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let i=r[0],o=r[1],c=r[2],l=r[3],w=r[4];for(let e=0;79>=e;e++){16>e||(s[e]=n.j(1,s[e-3]^s[e-8]^s[e-14]^s[e-16]));const t=n.j(5,i)+n.O(e,o,c,l)+w+s[e]+n.T[a.floor(e/20)]|0;w=l,l=c,c=n.j(30,o),o=i,i=t}r[0]=r[0]+i|0,r[1]=r[1]+o|0,r[2]=r[2]+c|0,r[3]=r[3]+l|0,r[4]=r[4]+w|0}},Qe={importKey:e=>new Qe.I(Be.bytes.D(e)),Z(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new u("invalid params to pbkdf2");const s=1+(r>>5)<<2;let i,a,o,c,l;const w=new ArrayBuffer(s),d=new m(w);let f=0;const p=Ye;for(t=Be.bytes.D(t),l=1;(s||1)>f;l++){for(i=a=e.encrypt(p.concat(t,[l])),o=1;n>o;o++)for(a=e.encrypt(a),c=0;c<a.length;c++)i[c]^=a[c];for(o=0;(s||1)>f&&o<i.length;o++)d.setInt32(f,i[o]),f+=4}return w.slice(0,r/8)},I:class{constructor(e){const t=this,n=t.L=He,r=[[],[]];t.X=[new n,new n];const s=t.X[0].blockSize/32;e.length>s&&(e=(new n).update(e).N());for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t.X[0].update(r[0]),t.X[1].update(r[1]),t.K=new n(t.X[0])}reset(){const e=this;e.K=new e.L(e.X[0]),e.V=!1}update(e){this.V=!0,this.K.update(e)}digest(){const e=this,t=e.K.N(),n=new e.L(e.X[1]).update(t).N();return e.reset(),n}encrypt(e){if(this.V)throw new u("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},Ge=typeof z!=te&&typeof z.getRandomValues==ne,Je="Invalid password",_e="Invalid signature",$e="zipjs-abort-check-password";function et(e){if(Ge)return z.getRandomValues(e);throw new u("Crypto API not supported")}const tt=16,nt={name:"PBKDF2"},rt=n.assign({hash:{name:"HMAC"}},nt),st=n.assign({iterations:1e3,hash:{name:"SHA-1"}},nt),it=["deriveBits"],at=[8,12,16],ot=[16,24,32],ct=10,lt=[0,0,0,0],wt=typeof z!=te,dt=wt&&z.subtle,ut=wt&&typeof dt!=te,ft=Be.bytes,pt=class{constructor(e){const t=this;t.Y=[[[],[],[],[],[]],[[],[],[],[],[]]],t.Y[0][0][0]||t.B();const n=t.Y[0][4],r=t.Y[1],s=e.length;let i,a,o,c=1;if(4!==s&&6!==s&&8!==s)throw new u("invalid aes key size");for(t.T=[a=e.slice(0),o=[]],i=s;4*s+28>i;i++){let e=a[i-1];(i%s===0||8===s&&i%s===4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],i%s===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),a[i]=a[i-s]^e}for(let e=0;i;e++,i--){const t=a[3&e?i:i-4];o[e]=4>=i||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.H(e,0)}decrypt(e){return this.H(e,1)}B(){const e=this.Y[0],t=this.Y[1],n=e[4],r=t[4],s=[],i=[];let a,o,c,l;for(let e=0;256>e;e++)i[(s[e]=e<<1^283*(e>>7))^e]=e;for(let w=a=0;!n[w];w^=o||1,a=i[a]||1){let i=a^a<<1^a<<2^a<<3^a<<4;i=i>>8^255&i^99,n[w]=i,r[i]=w,l=s[c=s[o=s[w]]];let d=16843009*l^65537*c^257*o^16843008*w,u=257*s[i]^16843008*i;for(let n=0;4>n;n++)e[n][w]=u=u<<24^u>>>8,t[n][i]=d=d<<24^d>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}H(e,t){if(4!==e.length)throw new u("invalid aes block size");const n=this.T[t],r=n.length/4-2,s=[0,0,0,0],i=this.Y[t],a=i[0],o=i[1],c=i[2],l=i[3],w=i[4];let d,f,p,h=e[0]^n[0],m=e[t?3:1]^n[1],y=e[2]^n[2],S=e[t?1:3]^n[3],g=4;for(let e=0;r>e;e++)d=a[h>>>24]^o[m>>16&255]^c[y>>8&255]^l[255&S]^n[g],f=a[m>>>24]^o[y>>16&255]^c[S>>8&255]^l[255&h]^n[g+1],p=a[y>>>24]^o[S>>16&255]^c[h>>8&255]^l[255&m]^n[g+2],S=a[S>>>24]^o[h>>16&255]^c[m>>8&255]^l[255&y]^n[g+3],g+=4,h=d,m=f,y=p;for(let e=0;4>e;e++)s[t?3&-e:e]=w[h>>>24]<<24^w[m>>16&255]<<16^w[y>>8&255]<<8^w[255&S]^n[g++],d=h,h=m,m=y,y=S,S=d;return s}},ht=class{constructor(e,t){this.G=e,this.J=t,this._=t}reset(){this._=this.J}update(e){return this.$(this.G,e,this._)}ee(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}return e}te(e){0===(e[0]=this.ee(e[0]))&&(e[1]=this.ee(e[1]))}$(e,t,n){let r;if(!(r=t.length))return[];const s=Ye.S(t);for(let s=0;r>s;s+=4){this.te(n);const r=e.encrypt(n);t[s]^=r[0],t[s+1]^=r[1],t[s+2]^=r[2],t[s+3]^=r[3]}return Ye.F(t,s)}},mt=Qe.I;let yt=wt&&ut&&typeof dt.importKey==ne,St=wt&&ut&&typeof dt.deriveBits==ne;class gt extends R{constructor({password:e,rawPassword:t,encryptionStrength:n,checkPasswordOnly:r}){super({start(){xt(this,e,t,n)},async transform(e,t){const n=this,{password:s,strength:i,ne:a,ready:o}=n;s?(await(async(e,t,n,r)=>{const s=await Ft(e,t,n,Ut(r,0,at[t])),i=Ut(r,at[t]);if(s[0]!=i[0]||s[1]!=i[1])throw new u(Je)})(n,i,s,Ut(e,0,at[i]+2)),e=Ut(e,at[i]+2),r?t.error(new u($e)):a()):await o;const c=new f(e.length-ct-(e.length-ct)%tt);t.enqueue(zt(n,e,c,0,ct,!0))},async flush(e){const{re:t,se:n,pending:r,ready:s}=this;if(n&&t){await s;const i=Ut(r,0,r.length-ct),a=Ut(r,r.length-ct);let o=re;if(i.length){const e=Et(ft,i);n.update(e);const r=t.update(e);o=Dt(ft,r)}const c=Ut(Dt(ft,n.digest()),0,ct);let l=r.length<ct?1:0;for(let e=0;ct>e;e++)l|=c[e]^a[e];if(l)throw new u(_e);e.enqueue(o)}}})}}class bt extends R{constructor({password:e,rawPassword:t,encryptionStrength:n}){let r;super({start(){xt(this,e,t,n)},async transform(e,t){const n=this,{password:r,strength:s,ne:i,ready:a}=n;let o=re;r?(o=await(async(e,t,n)=>{const r=et(new f(at[t]));return Xe(r,await Ft(e,t,n,r))})(n,s,r),i()):await a;const c=new f(o.length+e.length-e.length%tt);c.set(o,0),t.enqueue(zt(n,e,c,o.length,0))},async flush(e){const{re:t,se:n,pending:s,ready:i}=this;if(n&&t){await i;let a=re;if(s.length){const e=t.update(Et(ft,s));n.update(e),a=Dt(ft,e)}r.signature=Dt(ft,n.digest()).slice(0,ct),e.enqueue(Xe(a,r.signature))}}}),r=this}}function xt(e,t,r,s){n.assign(e,{ready:new S(t=>e.ne=t),password:Rt(t,r),strength:s-1,pending:re})}function zt(e,t,n,r,s,i){const{re:a,se:o,pending:c}=e;c.length&&(t=Xe(c,t));const l=t.length-s;let w;for(n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new f(t)).set(n,0)}return e})(n,r+(l-l%tt)),w=0;l-tt>=w;w+=tt){const e=Et(ft,Ut(t,w,w+tt));i&&o.update(e);const s=a.update(e);i||o.update(s),n.set(Dt(ft,s),w+r)}return e.pending=Ut(t,w),n}async function Ft(e,r,s,i){e.password=null;const a=await(async(e,t,n,r,s)=>{if(!yt)return Qe.importKey(t);try{return await dt.importKey("raw",t,n,!1,s)}catch{return yt=!1,Qe.importKey(t)}})(0,s,rt,0,it),o=await(async(e,t,n)=>{if(!St)return Qe.Z(t,e.salt,st.iterations,n);try{return await dt.deriveBits(e,t,n)}catch{return St=!1,Qe.Z(t,e.salt,st.iterations,n)}})(n.assign({salt:i},st),a,8*(2*ot[r]+2)),c=new f(o),l=Et(ft,Ut(c,0,ot[r])),w=Et(ft,Ut(c,ot[r],2*ot[r])),d=Ut(c,2*ot[r]);return n.assign(e,{keys:{key:l,ie:w,passwordVerification:d},re:new ht(new pt(l),t.from(lt)),se:new mt(w)}),d}function Rt(e,t){return t===$?Le(e):t}function Ut(e,t,n){return e.subarray(t,n)}function Dt(e,t){return e.U(t)}function Et(e,t){return e.D(t)}class kt extends R{constructor({password:e,rawPassword:t,passwordVerification:n,checkPasswordOnly:r}){super({start(){Tt(this,e,t,n)},transform(e,t){const n=this;if(n.password||n.rawPassword){const t=Mt(n,e.subarray(0,12));if(n.password=n.rawPassword=null,0!=(t[11]^n.passwordVerification))throw new u(Je);e=e.subarray(12)}r?t.error(new u($e)):t.enqueue(Mt(n,e))}})}}class vt extends R{constructor({password:e,rawPassword:t,passwordVerification:n}){super({start(){Tt(this,e,t,n)},transform(e,t){const n=this;let r,s;if(n.password||n.rawPassword){n.password=n.rawPassword=null;const t=et(new f(12));t[11]=n.passwordVerification,r=new f(e.length+t.length),r.set(Ct(n,t),0),s=12}else r=new f(e.length),s=0;r.set(Ct(n,e),s),t.enqueue(r)}})}}function Tt(e,t,r,s){n.assign(e,{password:t,rawPassword:r,passwordVerification:s}),((e,t,r)=>{const s=[305419896,591751049,878082192];if(n.assign(e,{keys:s,ae:new Ie(s[0]),oe:new Ie(s[2])}),r)for(let t=0;t<r.length;t++)Pt(e,r[t]);else for(let n=0;n<t.length;n++)Pt(e,t.charCodeAt(n))})(e,t,r)}function Mt(e,t){const n=new f(t.length);for(let r=0;r<t.length;r++)n[r]=Wt(e)^t[r],Pt(e,n[r]);return n}function Ct(e,t){const n=new f(t.length);for(let r=0;r<t.length;r++)n[r]=Wt(e)^t[r],Pt(e,t[r]);return n}function Pt(e,t){let[,n]=e.keys;e.ae.append([t]);const r=~e.ae.get();n=At(a.imul(At(n+qt(r)),134775813)+1),e.oe.append([n>>>24]);const s=~e.oe.get();e.keys=[r,n,s]}function Wt(e){const t=2|e.keys[2];return qt(a.imul(t,1^t)>>>8)}function qt(e){return 255&e}function At(e){return 4294967295&e}function Nt(e){if(e instanceof U)return e;const t=e.getReader();return new U({async pull(e){const{value:n,done:r}=await t.read();r?e.close():e.enqueue(n)},cancel:e=>t.cancel(e)})}function Ot(e){if(e instanceof D)return e;const t=e.getWriter();return new D({write:e=>t.write(e),close:()=>t.close(),abort:e=>t.abort(e)})}const jt="Invalid uncompressed size",It="Invalid compressed data",Zt="deflate-raw",Lt="gzip",Xt=[31,139,8];class Kt extends R{constructor(e,{chunkSize:t,CompressionStreamZlib:n,CompressionStream:r}){super({});const{compressed:s,encrypted:i,useCompressionStream:a,zipCrypto:o,signed:c,level:l,deflate64:w,format:d,compressionMethod:u}=e,f=this;let p,h,y,S=super.readable;const g=d&&ve(d),b=c&&s&&!w&&!g&&(!i||o)&&!(!a||!r);if(i&&!o||!c||b||(p=new Ze,S=$t(S,p)),s)if(g)S=en(S,Jt(g.CompressionStream,d,{level:l,chunkSize:t,compressionMethod:u}));else if(b)y=new Vt,S=en(S,new r(Lt)),S=$t(S,y);else try{S=_t(S,a,{level:l,chunkSize:t},r,n)}catch(e){let t;try{t=new r(Lt)}catch{throw e}S=en(S,t),S=$t(S,new Vt)}i&&(o?S=$t(S,new vt(e)):(h=new bt(e),S=$t(S,h))),Gt(f,S,()=>{let e;i&&!o&&(e=h.signature),i&&!o||!c||(e=b?y.signature:new m(p.value.buffer).getUint32(0)),f.signature=e})}}class Vt extends R{constructor(){let e,t=10,n=new f(0);super({transform(e,r){if(t){const n=a.min(t,e.length);if(t-=n,!(e=e.subarray(n)).length)return}const s=n.length+e.length;if(8>=s)return void(n=Xe(n,e));const i=s-8,o=a.min(i,n.length);r.enqueue(Xe(n.subarray(0,o),e.subarray(0,i-o))),n=Xe(n.subarray(o),e.subarray(i-o))},flush(){const t=Ve(n);e.signature=t.getUint32(0,!0),e.uncompressedSize=t.getUint32(4,!0)}}),e=this}}class Yt extends R{constructor(e,{chunkSize:t,DecompressionStreamZlib:n,DecompressionStream:r}){super({});const{zipCrypto:s,encrypted:i,signed:a,signature:o,compressed:c,useCompressionStream:l,deflate64:w,format:d,compressionMethod:p,rawBitFlag:h,outputSize:y}=e;let g,b,x=super.readable;if(i&&(s?x=$t(x,new kt(e)):(b=new gt(e),x=$t(x,b))),c){const e=d&&ve(d);if(e)x=en(x,Jt(e.DecompressionStream,d,{chunkSize:t,compressionMethod:p,rawBitFlag:h,uncompressedSize:y}));else try{x=_t(x,l,{chunkSize:t,deflate64:w},r,n)}catch(e){if(w||y===$)throw e;let t;try{t=new r(Lt)}catch{throw e}x=((e,t,n)=>{const r=new Ie;let s,i,a,o=0,c=!1;const l=new S((e,t)=>{i=e,a=t});l.catch(()=>{}),n||i();const w=new R({start(e){const t=new f(10);t.set(Xt),e.enqueue(t)},transform(e,t){t.enqueue(e)},async flush(e){c=!0,p();try{await l}finally{h()}const t=new f(8),s=Ve(t);s.setUint32(0,r.get(),!0),s.setUint32(4,n,!0),e.enqueue(t)},cancel(e){a(e)}}),d=new R({transform(e,t){r.append(e),o+=e.length,n>o?c&&p():i(),t.enqueue(e)},cancel(e){a(e)}});return e=$t(e,w),$t(e=en(e,t),d);function p(){h(),s=setTimeout(()=>a(new u(jt)),5e3)}function h(){clearTimeout(s)}})(x,t,y)}x=(e=>{const t=e.getReader();return new U({async pull(e){let n;try{n=await t.read()}catch(e){if(e&&e.message)throw e;const t=new u(It);throw t.cause=e,t}const{value:r,done:s}=n;s?e.close():e.enqueue(r)},cancel:e=>t.cancel(e)})})(x)}i&&!s||!a||(g=new Ze,x=$t(x,g)),Gt(this,x,()=>{if((!i||s)&&a){const e=new m(g.value.buffer);if(o!=e.getUint32(0,!1))throw new u(_e)}})}}const Bt=new c;function Ht(e,t){if(!e)return!1;let n=Bt.get(e);n||(n=new c,Bt.set(e,n));let r=n.get(t);if(r===$){try{new e(t),r=!0}catch{r=!1}n.set(t,r)}return r}function Qt(e){return Ht(e,Zt)}function Gt(e,t,r){t=$t(t,new R({flush:r})),n.defineProperty(e,"readable",{get:()=>t})}function Jt(e,t,n){if(!e)throw new u("Compression method not supported");return new e(t,n)}function _t(e,t,n,r,s){const i=t&&r?r:s||r,a=n.deflate64?"deflate64-raw":Zt;let o;try{o=new i(a,n)}catch(e){if(!t||!s||i==s)throw e;o=new s(a,n)}return en(e,o)}function $t(e,t){return Nt(e).pipeThrough(t)}function en(e,t){const n=t.writable.getWriter(),r=e.getReader();return(async()=>{try{for(;;){await n.ready;const e=await r.read();if(e.done){await n.close();break}await n.write(e.value)}}catch(e){await(async(e,t)=>{try{await e.abort(t)}catch{}})(n,e),await(async(e,t)=>{try{await e.cancel(t)}catch{}})(r,e)}})(),t.readable}const tn="data",nn="deflate",rn="inflate";class sn extends R{constructor(e,t){super({});const r=this,{codecType:s}=e;let i;s.startsWith(nn)?i=Kt:s.startsWith(rn)&&(i=Yt),r.outputSize=0;let a=0;const o=new i(e,t),c=super.readable,l=new R({transform(e,t){e&&e.length&&(a+=e.length,t.enqueue(e))},flush(){n.assign(r,{inputSize:a})}}),w=new R({transform(t,n){if(t&&t.length&&(n.enqueue(t),r.outputSize+=t.length,e.outputSize!==$&&r.outputSize>e.outputSize))throw new u(jt)},flush(){const{signature:e}=o;n.assign(r,{signature:e,inputSize:a})}});n.defineProperty(r,"readable",{get:()=>c.pipeThrough(l).pipeThrough(o).pipeThrough(w)})}}class an extends R{constructor(e){const t=[];let n=0;function r(){const r=new f(e);let s=0;for(;e>s;){const n=t[0],i=e-s;n.length>i?(r.set(n.subarray(0,i),s),t[0]=n.subarray(i),s+=i):(r.set(n,s),s+=n.length,t.shift())}return n-=e,r}s.isFinite(e)&&e>=1||(e=65536),super({transform(s,i){for(t.push(s),n+=s.length;n>e;)i.enqueue(r())},flush(e){n&&e.enqueue(((e,t)=>{const n=new f(t);let r=0;for(const t of e)n.set(t,r),r+=t.length;return n})(t,n))}})}}const on={type:"module"},cn="error";let ln,wn,dn,un,fn=!0;try{fn=typeof structuredClone==ne&&structuredClone(new DOMException("","AbortError")).code!==$}catch{}class pn{constructor(e,{readable:t,writable:r},{options:s,config:i,ce:a,useWebWorkers:o,transferStreams:c,workerURI:l},w){const{signal:d}=a;return n.assign(e,{le:!0,we:(e.we||0)+1,readable:t.pipeThrough(new an(le(i))).pipeThrough(new hn(a),{signal:d}),writable:r,options:n.assign({},s),workerURI:l,transferStreams:c,terminate:()=>new S(t=>{const{de:n,le:r}=e;n?(r?e.ue=t:(n.terminate(),t()),e.fe=null):t()}),pe(){if(e.le){const{ue:t}=e;t&&(e.ue=null,e.he=!0,e.de.terminate(),t()),e.le=!1,w(e)}}}),ln===$&&(ln=typeof T!=te),(o&&ln?Sn:yn)(e,i)}}class hn extends R{constructor({onstart:e,onprogress:t,size:n,onend:r}){let s=0;super({async start(){e&&await mn(e,n)},async transform(e,r){s+=e.length,t&&await mn(t,s,n),r.enqueue(e)},async flush(){r&&await mn(r,s)}})}}async function mn(e,...t){try{await e(...t)}catch{}}function yn(e,t){return{run:()=>gn(e,t)}}function Sn(e,t){const{baseURI:r,chunkSize:i,workerStartupTimeout:a}=t;let{wasmURI:o}=t;if(!e.fe){let c;typeof o==ne&&(o=o());try{c=xn(e.workerURI,r,e)}catch{return ln=!1,yn(e,t)}n.assign(e,{de:c,me:!1,he:!1,fe:{run:async()=>{try{return await(async(e,t)=>{let r,i;const a=new S((e,t)=>{r=e,i=t});n.assign(e,{reader:null,writer:null,ye:r,Se:i,result:a});const{readable:o,options:c}=e,{writable:l,closed:w,ge:d}=(e=>{const t=new AbortController,{writable:n,readable:r}=new R,s=r.pipeTo(e,{preventClose:!0,preventAbort:!0,signal:t.signal});return s.catch(()=>{}),{writable:n,closed:s,ge:()=>t.abort()}})(e.writable);let f;try{f=Rn({type:"start",options:c,config:t,readable:o,writable:l},e)}catch(t){d();try{await w}catch{}throw e.pe(),t}f||n.assign(e,{reader:o.getReader(),writer:l.getWriter()});const{workerStartupTimeout:p}=t;e.me||!s.isFinite(p)||0>p||(e.be=setTimeout(()=>(e=>{if(e.be=null,e.me)return;const{Se:t,writer:n}=e;if(bn(e),e.de=null,t){const e=new u("Worker startup timeout");e.xe=!0,t(e),n&&n.releaseLock()}})(e),p));try{const e=await a;return await h(),await w,e}catch(e){await h(),d();try{await w}catch{}throw e}async function h(){if(!f&&!l.locked)try{await l.getWriter().close()}catch{}}})(e,{chunkSize:i,wasmURI:o,baseURI:r,workerStartupTimeout:a})}catch(n){if(n&&n.xe){ln=!1;const{reader:n}=e;return n&&n.releaseLock(),e.reader=null,e.writer=null,gn(e,t)}throw n}}}})}return e.fe}async function gn({options:e,readable:t,writable:n,pe:r},s){let i;try{if(e.compressed&&!e.format){const t=e.codecType.startsWith(nn),n=t?s.CompressionStreamZlib:s.DecompressionStreamZlib,r=t?s.CompressionStream:s.DecompressionStream;if(e.useCompressionStream){if(n&&n.ze&&!Qt(r))try{await void 0}catch{}}else try{await void 0}catch{n&&!n.ze||(e.useCompressionStream=!0)}}i=new sn(e,s),await t.pipeThrough(i).pipeThrough(new an(le(s))).pipeTo(n,{preventClose:!0,preventAbort:!0});const{signature:r,inputSize:a,outputSize:o}=i;return{signature:r,inputSize:a,outputSize:o}}catch(e){throw i&&(e.outputSize=i.outputSize),e}finally{r()}}function bn(e){const{de:t}=e;if(t)try{t.terminate()}catch{}e.fe=null}function xn(e,t,r,s,i=!0){let a,o,c;if(dn===$||wn!==e){const n=typeof e==ne;o=n?e(i):e;const l=o.startsWith("data:"),w=o.startsWith("blob:");if(l||w){s===$&&(s=!1),s&&(c=on);try{a=new T(o,c)}catch(i){if(w)try{d.revokeObjectURL(o)}catch{}if(n&&w)return xn(e,t,r,s,!1);if(s)throw i;return xn(e,t,r,!0,!1)}}else{s===$&&(s=!0),s&&(c=on);try{o=new d(o,t)}catch{}try{a=new T(o,c)}catch(n){if(s)throw n;return xn(e,t,r,!1,i)}}wn=e,dn=o,un=c}else a=new T(dn,un);return a.addEventListener("message",e=>{r.me=!0,zn(r),(async({data:e},t)=>{const{type:r,value:s,messageId:i,result:a,error:o}=e,{reader:c,writer:l,ye:w,Se:d,pe:p,we:h}=t,m=()=>t.we!=h;try{if(o){const{message:e,stack:t,code:r,name:s,outputSize:i,cause:a}=o,c=new u(e);n.assign(c,{stack:t,code:r,name:s,outputSize:i}),a&&(c.cause=n.assign(new u(a.message),{name:a.name})),y(c)}else{if("pull"==r){const{value:e,done:n}=await c.read();m()||Rn({type:tn,value:e,done:n,messageId:i},t)}r==tn&&(await l.ready,await l.write(new f(s)),m()||Rn({type:"ack",messageId:i},t)),"close"==r&&y(null,a)}}catch(o){m()||(bn(t),y(o))}function y(e,t){m()||(e?d(e):w(t),l&&l.releaseLock(),p())}})(e,r)}),a.addEventListener(cn,e=>Fn(e,r)),a.addEventListener("messageerror",e=>Fn(e,r)),a}function zn(e){const{be:t}=e;t&&(clearTimeout(t),e.be=null)}function Fn(e,t){e.preventDefault&&e.preventDefault(),zn(t);const{me:r,Se:s,writer:i,pe:a}=t;if(bn(t),r||(t.de=null),s){let t=e.error||new u(e.message||cn);r||(t=n.assign(new u(t.message||cn),{xe:!0})),s(t),i&&i.releaseLock(),r&&a()}}function Rn(e,{de:t,writer:n,transferStreams:r,me:s}){try{const{value:n,readable:i,writable:a}=e,o=[];if(n&&(e.value=Ke(n),o.push(e.value.buffer)),r&&fn&&s?(i&&o.push(i),a&&o.push(a)):e.readable=e.writable=null,o.length)try{return t.postMessage(e,o),!0}catch{fn=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw n&&n.releaseLock(),e}}let Un=[];const Dn=[];let En,kn,vn=0;async function Tn(e,t){const{options:n,config:r}=t,{transferStreams:i,useWebWorkers:a,useCompressionStream:o,compressed:c,signed:l,encrypted:w,format:u,codecURI:f}=n,{workerURI:p,maxWorkers:h}=r;u&&(f&&(n.codecURI=((e,t)=>{try{return new d(e,t).toString()}catch{return e}})(f,r.baseURI)),await(async(e,t)=>{!Ee.has(e)&&t&&Te(e,await(import(/* webpackIgnore: true */ /* @vite-ignore */t)))})(u,n.codecURI)),t.transferStreams=i||i===$&&r.transferStreams;const m=!c&&!l&&!w,y=u===$||!!n.codecURI;return t.useWebWorkers=!m&&y&&(a||a===$&&r.useWebWorkers),t.workerURI=t.useWebWorkers&&p?p:$,n.useCompressionStream=o||o===$&&r.useCompressionStream,(await(async()=>{const n=Un.find(e=>!e.le);if(n)return qn(n),new pn(n,e,t,g);if(Un.length<h){const n={Fe:vn};return vn++,Un.push(n),new pn(n,e,t,g)}return new S(n=>{Dn.push({resolve:n,stream:e,Re:t}),kn=r.workerStarvationTimeout,Mn()})})()).run();function g(e){if(Cn(),Dn.length){const[{resolve:t,stream:n,Re:r}]=Dn.splice(0,1);t(new pn(e,n,r,g)),Mn()}else e.de?(qn(e),((e,t)=>{const{config:n}=t,{terminateWorkerTimeout:r}=n;s.isFinite(r)&&r>=0&&(e.he?e.he=!1:e.Ue=setTimeout(async()=>{Un=Un.filter(t=>t!=e);try{await e.terminate()}catch{}},r))})(e,t)):Un=Un.filter(t=>t!=e)}}function Mn(){!En&&Dn.length&&s.isFinite(kn)&&kn>=0&&(En=setTimeout(Pn,kn))}function Cn(){En&&(clearTimeout(En),En=null)}function Pn(){if(En=null,Dn.length){const[{resolve:e,stream:t,Re:r}]=Dn.splice(0,1),s=n.assign({},r,{useWebWorkers:!1,workerURI:$});e(new pn({},t,s,Wn)),Mn()}}function Wn(){Cn(),Mn()}function qn(e){const{Ue:t}=e;t&&(clearTimeout(t),e.Ue=null)}const An="HTTP error ",Nn="HTTP Range not supported",On="HTTP resource changed",jn="Writer iterator completed too soon",In="Writer not initialized",Zn="Content-Range",Ln="Range",Xn="GET",Kn="bytes",Vn=16777216,Yn="writable",Bn=Symbol();class Hn{constructor(){this.size=0}init(){this.initialized=!0}}class Qn extends Hn{get readable(){return this.createReadable()}createReadable({offset:e=0,size:t,chunkSize:n=le(ce())}={}){const r=this;let s=0;return new U({async pull(i){const o=t===$?n:a.min(n,t-s),c=await Rr(r,e+s,o);i.enqueue(c),s+n>t||t===$&&!c.length&&o?i.close():s+=n}})}}class Gn extends Hn{constructor(){super();const e=this,t=new D({write(t){if(!e.initialized)throw new u(In);return e.writeUint8Array(Ke(t))}});n.defineProperty(e,Yn,{get:()=>t})}writeUint8Array(){}}let Jn,_n;class $n extends Qn{constructor(e){super(),n.assign(this,{blob:e,size:e.size}),_n||(_n=(async()=>{try{const e=new y([new f(3)]).slice(1,2).stream().getReader();let t=0,n=await e.read();for(;!n.done;)t+=n.value.length,n=await e.read();Jn=1==t}catch{Jn=!1}})())}createReadable(e){const{blob:t,size:n}=this,{offset:r=0,size:s=n-r}=e||{};return r||n>s?Jn?Nt(t.slice(r,r+s).stream()):super.createReadable(e):Nt(t.stream())}async readUint8Array(e,t){const n=this,r=e+t,s=e||r<n.size?n.blob.slice(e,r):n.blob;let i=await s.arrayBuffer();return i.byteLength>t&&(i=i.slice(e,r)),new f(i)}}class er extends Hn{constructor(e){super();const t=this,r=new R;if(n.defineProperty(t,Yn,{get:()=>r.writable}),typeof y.prototype.stream!=ne||new y([]).stream()instanceof U){const n=[];e&&n.push(["Content-Type",e]),t.blob=new w(r.readable,{headers:n}).blob()}else{const n=[];t.blob=r.readable.pipeTo(new D({write(e){n.push(e)}})).then(()=>new y(n,{type:e}))}t.blob.catch(()=>{})}getData(){return this.blob}}class tr extends Qn{constructor(e,t){super(),rr(this,e,t)}async init(){await sr(this,mr,ur),super.init()}createReadable(e){const t=this,{useRangeHeader:n,forceRangeRequests:r,size:i}=t;if((n||r)&&i!==$){const{offset:n=0,size:r=i-n}=e||{};if(r>0&&i>n)return((e,t,n)=>{let r,i=t,o=0,c=n;return new U({start:()=>l(),async pull(e){r||await l();const{value:t,done:n}=await r.read();if(n)throw new u(Nn);const s=t.length>o?t.subarray(0,o):t;o-=s.length,c-=s.length,s.length&&e.enqueue(s),o||(await(async()=>{const e=r;r=$,await e.cancel()})(),c||e.close())},cancel:e=>r&&r.cancel(e)});async function l(){const t=a.min(e.maximumRangeSize,c),n=await mr(Xn,e,wr(e,i,t));if(206!=n.status)throw new u(Nn);const l=n.headers.get(Zn);if(l){const e=s(l.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=i)throw new u(Nn)}lr(e,n),cr(e,n),i+=t,o=t,r=n.body.getReader()}})(t,n,a.min(r,i-n))}return super.createReadable(e)}readUint8Array(e,t){return ir(this,e,t,mr,ur)}}class nr extends Qn{constructor(e,t){super(),rr(this,e,t)}async init(){await sr(this,yr,fr),super.init()}readUint8Array(e,t){return ir(this,e,t,yr,fr)}}function rr(e,t,r){const{preventHeadRequest:s,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o,checkResourceChanges:c=!0,maximumRangeSize:l=Vn,fetch:w}=r;delete(r=n.assign({},r)).preventHeadRequest,delete r.useRangeHeader,delete r.forceRangeRequests,delete r.combineSizeEocd,delete r.checkResourceChanges,delete r.maximumRangeSize,delete r.useXHR,delete r.fetch,n.assign(e,{url:t,options:r,preventHeadRequest:s,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o,checkResourceChanges:c,maximumRangeSize:l,fetch:w})}async function sr(e,t,n){const{url:r,preventHeadRequest:s,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o}=e;if((e=>{const{baseURI:t}=ce(),{protocol:n}=new d(e,t);return"http:"==n||"https:"==n})(r)&&(i||a)&&(void 0===s||s)){const r=await t(Xn,e,wr(e,o?-22:void 0)),s=r.headers.get("Accept-Ranges");if(!(a||s&&s.toLowerCase()==Kn))throw new u(Nn);{if(o){const t=new f(await r.arrayBuffer());206==r.status&&t.length==L&&(e.De=t)}cr(e,r);const s=ar(r);s===$?await hr(e,t,n):e.size=s}}else await hr(e,t,n)}async function ir(e,t,n,r,i){const{useRangeHeader:a,forceRangeRequests:o,De:c,size:l,options:w}=e;if(a||o){if(c&&t==l-L&&n==L)return c;if(l>t&&0!==n){t+n>l&&(n=l-t);const i=await r(Xn,e,wr(e,t,n));if(206!=i.status)throw new u(Nn);const a=i.headers.get(Zn);if(a){const e=s(a.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=t)throw new u(Nn)}lr(e,i),cr(e,i);const o=new f(await i.arrayBuffer());if(o.length!=n)throw new u(Nn);return o}return re}{const{data:r}=e;return r||await i(e,w),e.data.subarray(t,t+n)}}function ar(e){const t=e.headers.get(Zn);if(t){const e=t.trim().split(/\s*\/\s*/)[1];if(e&&"*"!=e){const t=s(e);if(!s.isNaN(t))return t}}}function or({headers:e}){return{Ee:e.get("Etag")||$,lastModified:e.get("Last-Modified")||$}}function cr(e,t){const{checkResourceChanges:n,ke:r}=e;n&&!r&&206==t.status&&(e.ke=or(t))}function lr(e,t){const{checkResourceChanges:r,ke:s,size:i}=e;if(r){const e=ar(t);if(e!==$&&i!==$&&e!=i)throw new u(On);if(s){const e=or(t);if(n.entries(s).some(([t,n])=>n!==$&&e[t]!==$&&n!=e[t]))throw new u(On)}}}function wr(e,t=0,r=1){return n.assign({},dr(e),{[Ln]:Kn+"="+(0>t?t:t+"-"+(t+r-1))})}function dr({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?n.fromEntries(t):t}async function ur(e){await pr(e,mr)}async function fr(e){await pr(e,yr)}async function pr(e,t){const n=await t(Xn,e,dr(e));e.data=new f(await n.arrayBuffer()),e.size=e.data.length}async function hr(e,t,n){if(e.preventHeadRequest)await n(e,e.options);else{const r=await t("HEAD",e,dr(e)),i=r.headers.get("Content-Length");i&&!r.headers.get("Content-Encoding")?e.size=s(i):await n(e,e.options)}}async function mr(e,{fetch:t=fetch,options:r,url:s},i){const a=await t(s,n.assign({},r,{method:e,headers:i}));if(400>a.status)return a;throw 416==a.status?new u(Nn):new u(An+(a.statusText||a.status))}function yr(e,{url:t},r){return new S((s,i)=>{const a=new XMLHttpRequest;if(a.addEventListener("load",()=>{if(400>a.status){const e=[];a.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const n=t.trim().split(/\s*:\s*/);n[0]=n[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(n)}),s({status:a.status,arrayBuffer:()=>a.response,headers:new c(e)})}else i(416==a.status?new u(Nn):new u(An+(a.statusText||a.status)))},!1),a.addEventListener("error",e=>i(e.detail?e.detail.error:new u("Network error")),!1),a.open(e,t),r)for(const e of n.entries(r))a.setRequestHeader(e[0],e[1]);a.responseType="arraybuffer",a.send()})}class Sr extends Qn{constructor(e,t={}){super(),n.assign(this,{url:e,reader:t.useXHR&&!t.fetch?new nr(e,t):new tr(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(e){return this.reader.createReadable(e)}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class gr extends Qn{constructor(e){super(),this.ve=e}async init(){const e=this,{ve:t}=e;e.Te=0,await S.all(t.map(e=>Fr(e))),e.Me=t.map(t=>{const n=e.size;return e.size+=t.size,n}),super.init()}Ce(e){const{Me:t,size:n}=this,r=t[e];return r===$?n:r}async readUint8Array(e,t){const n=this,{ve:r}=this;let s,i=0,o=e;for(;r[i]&&o>=r[i].size;)o-=r[i].size,i++;const c=r[i];if(c){const r=c.size;if(o+t>r){const i=r-o;s=Xe(await Rr(c,o,i),await n.readUint8Array(e+i,t-i))}else s=await Rr(c,o,t)}else s=re;return n.Te=a.max(i,n.Te),s}}class br extends Hn{constructor(e,t=4294967295){super();const r=this;let s,i,a;n.assign(r,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new D({async write(t){if(t===Bn)return void(a&&await l());const{availableSize:n}=r;if(a)t.length<n?await c(t):(await c(t.subarray(0,n)),await l(),t.length>n&&await this.write(t.subarray(n)));else{const{value:n,done:o}=await e.next();if(o&&!n)throw new u(jn);s=n,s.size=0,s.maxSize&&(r.maxSize=s.maxSize),r.availableSize=r.maxSize,await Fr(s),i=n.writable,a=i.getWriter(),await this.write(t)}},async close(){a&&(await a.ready,await w())},async abort(e){a&&await a.abort(e)}});async function c(e){const t=e.length;t&&(await a.ready,await a.write(e),s.size+=t,r.availableSize-=t)}async function l(){await w(),r.diskOffset+=s.size,r.diskNumber++,a=null,r.availableSize=r.maxSize}async function w(){await a.close()}n.defineProperty(r,Yn,{get:()=>o})}async closeDisk(){const e=this.writable.getWriter();try{await e.ready,await e.write(Bn)}finally{e.releaseLock()}}}class xr{constructor(e){return t.isArray(e)&&(e=new gr(e)),(e instanceof U||typeof e.getReader==ne)&&(e={readable:Nt(e)}),e}}class zr{constructor(e){return e.writable===$&&typeof e.next==ne&&(e=new br(e)),(e instanceof D||typeof e.getWriter==ne)&&(e={writable:Ot(e)}),e.size===$&&(e.size=0),e}}async function Fr(e,t){if(!e.init||e.initialized)return S.resolve();await e.init(t)}function Rr(e,t,n){return e.readUint8Array(t,n)}const Ur="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function Dr(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let n=0;n<e.length;n++)t+=Ur[e[n]];return t}})(e):new b(t,{ignoreBOM:!0}).decode(e)}const Er="filename",kr="rawFilename",vr="comment",Tr="rawComment",Mr="uncompressedSize",Cr="compressedSize",Pr="offset",Wr="diskNumberStart",qr="lastModDate",Ar="rawLastModDate",Nr="lastAccessDate",Or="creationDate",jr="rawCreationDate",Ir="internalFileAttributes",Zr="externalFileAttributes",Lr="msdosAttributesRaw",Xr="msdosAttributes",Kr="msDosCompatible",Vr="zip64",Yr="encrypted",Br="version",Hr="versionMadeBy",Qr="zipCrypto",Gr="directory",Jr="executable",_r="compressionMethod",$r="signature",es="extraField",ts="unixMode",ns="setuid",rs="setgid",ss="sticky",is=[Er,kr,Mr,Cr,qr,Ar,vr,Tr,Nr,Or,jr,Pr,Wr,Ir,Zr,Lr,Xr,Kr,Vr,Yr,Br,Hr,Qr,Gr,Jr,_r,$r,es,"extraFieldUnix","extraFieldInfoZip","uid","gid",ts,ns,rs,ss,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class as{constructor(e){is.forEach(t=>this[t]=e[t])}}const os="password",cs="rawPassword",ls="passThrough",ws="signal",ds="checkAmbiguity",us="useWebWorkers",fs="useCompressionStream",ps="transferStreams",hs="preventClose",ms="offset",ys="usdz",Ss="strictness",gs="strict",bs="tolerant",xs="File format is not recognized",zs="End of central directory not found",Fs="End of Zip64 central directory locator not found",Rs="Central directory header not found",Us="Local file header not found",Ds="Zip64 extra field not found",Es="File contains encrypted entry",ks="Encryption method not supported",vs="Compression method not supported",Ts="Split zip file",Ms="Overlapping entry found",Cs="Ambiguous archive",Ps="Encrypted central directory is not supported",Ws="utf-8",qs="cp437",As=[[Mr,C],[Cr,C],[Pr,C],[Wr,P]],Ns={[P]:{Pe:li,bytes:4},[C]:{Pe:wi,bytes:8}};class Os{constructor(e,t={}){n.assign(this,{reader:new xr(e),options:t,config:ce(),We:new c})}async*getEntriesGenerator(e={}){const t=this;let{reader:r}=t;const{config:s}=t;if(await Fr(r),r.size!==$&&r.readUint8Array||(r=new $n(await new w(r.readable).blob()),await Fr(r)),r.size<L)throw new u(xs);const i=Hs(si(t,e,Ss),si(t,e,ds)),o=i==gs,c=i!=bs,d=((e,t)=>e!==$?e:t==gs?0:t==bs?1/0:P)(si(t,e,"maxAppendedDataSize"),i),{qe:f,Ae:p}=await(async(e,t,n)=>{const{size:r}=e,s=a.min(r,65557),i={count:Qs};let o,c,l=0;for await(const[n,a,w,d,u]of $s(e,s)){const s=ci(n,d+20);if(u+L+s==r){const s=await ti(e,n,a,d,u,r,i);if(s==_s){if(o||(o=ei(w,d,u)),l++,!t||l>1)break}else s!=Js||c||(c=ei(w,d,u))}}return o||(o=c),o||(o=await(async(e,t,n)=>{const{size:r}=e,s=a.min(r,t==1/0?r:65557+t);let i,o;for await(const[t,a,c,l,w]of $s(e,s)){const s=ei(c,l,w);i||(i=s);const d=await ti(e,t,a,l,w,r,n);if(d==_s)return s;d!=Js||o||(o=s)}return o||i})(e,n,i)),{qe:o,Ae:l}})(r,c,d);if(!f)throw li(Ve(await Rr(r,0,4)))==A?new u(Ts):new u(zs);c&&p>1&&ri("multiple end of central directory records");const h=Ve(f);let m=li(h,12),y=li(h,16);const g=f.offset,b=ci(h,20),x=g+L+b;r.size-x>d&&ri("appended data");let z=ci(h,4);const F=r.Te||0;let U,D,E,k=ci(h,6),v=ci(h,10),T=0;const M=y==C||m==C||v==P||k==P;if(y!=C&&k!=P&&(y+=Bs(r,k)),M){const e=f.offset<X?re:await Rr(r,f.offset-X,X),t=Ve(e);if(e.length==X&&li(t,0)==Z){y=Bs(r,li(t,4))+wi(t,8);let e=await Rr(r,y,56),n=Ve(e);const s=f.offset-X-56;if((56>e.length||li(n,0)!=I)&&y!=s&&s>=0){const t=y;y=s,y>t&&(T=y-t),e=await Rr(r,y,56),n=Ve(e)}if(56>e.length||li(n,0)!=I)throw new u(Fs);D=!0,E=wi(n,4)>44,z==P?z=li(n,16):o&&z!=li(n,16)&&ri("mismatched zip64 end of central directory record"),k==P?k=li(n,20):o&&k!=li(n,20)&&ri("mismatched zip64 end of central directory record"),v==P?v=wi(n,32):o&&v!=wi(n,32)&&ri("mismatched zip64 end of central directory record"),m==C?m=wi(n,40):o&&m!=wi(n,40)&&ri("mismatched zip64 end of central directory record"),y=Bs(r,k)+wi(n,48)+T}}const q=m,N=f.offset-(D?76:0);if(y<r.size||(T=r.size-y-m-L,y=r.size-m-L),F!=z)throw new u(Ts);if(0>y)throw new u(xs);let j=0,K=await Rr(r,y,m),V=Ve(K);if(m){if(4>K.length)throw new u(xs);const e=N-m;if(y!=e&&k==z){let t=!(li(V,j)==O);if(t||0>e||e+4>r.size||(t=li(Ve(await Rr(r,e,4)),0)==O),t){const t=y;y=e,y>t&&(T+=y-t),K=await Rr(r,y,m),V=Ve(K)}}}const G=N-y;if(m==G||0>G||k!=z||(m=G,K=await Rr(r,y,m),V=Ve(K)),0>y||y>=r.size)throw new u(xs);U=y;const J=si(t,e,"filenameEncoding"),_=si(t,e,"commentEncoding"),ee=o?new l:$;let te;for(let i=0;v>i;i++){const c=new Is(r,s,t.options);if(j+46>K.length||li(V,j)!=O){if(0==i&&(E||Zs(V)))throw new u(Ps);throw new u(Rs)}Ls(c,V,j+6);const l=!!c.bitFlag.languageEncodingFlag,d=j+46,f=d+c.filenameLength,p=f+c.extraFieldLength,h=ci(V,j+4),m=!(h>>8),y=h>>8==3,g=K.subarray(d,f),b=ci(V,j+32),x=p+b,z=K.subarray(p,x),F=l,D=l,k=li(V,j+38),M=k&W,C={readOnly:!!(1&M),hidden:!!(2&M),system:!!(4&M),directory:!!(16&M),archive:!!(32&M)},q=li(V,j+42),A=si(t,e,"decodeText")||Dr,N=F?Ws:J||qs,I=D?Ws:_||qs;let Z=A(g,N);Z===$&&(Z=Dr(g,N));let L=A(z,I);L===$&&(L=Dr(z,I)),n.assign(c,{index:i,versionMadeBy:h,msDosCompatible:m,compressedSize:0,uncompressedSize:0,Ne:b,offset:q,diskNumberStart:ci(V,j+34),internalFileAttributes:ci(V,j+36),externalFileAttributes:k,msdosAttributesRaw:M,msdosAttributes:C,rawFilename:g,filenameUTF8:F,commentUTF8:D,rawExtraField:K.subarray(f,p),rawComment:z,filename:Z,comment:L}),Xs(c,c,V,j+6),c.offset+=T,U=a.min(Bs(r,c.diskNumberStart)+c.offset,U),o&&(ee.has(c.filename)&&(te=!0),ee.add(c.filename));const X=c.externalFileAttributes>>16&P;c.unixMode===$&&16877&X&&(c.unixMode=X);const G=!!(c.unixMode&B),ne=!!(c.unixMode&H),re=!!(512&c.unixMode),se=c.unixMode!==$?!!(73&c.unixMode):y&&!!(73&X),ie=c.unixMode!==$&&(61440&c.unixMode)==Y,ae=(61440&X)==Y;n.assign(c,{setuid:G,setgid:ne,sticky:re,unixExternalUpper:X,internalFileAttribute:c.internalFileAttributes,externalFileAttribute:c.externalFileAttributes,executable:se,directory:ie||ae||m&&C.directory||c.filename.endsWith(Q)&&!c.uncompressedSize,zipCrypto:c.encrypted&&!c.extraFieldAES});const oe=new as(c);oe.getData=(e,n)=>c.getData(e,oe,t.We,n),oe.arrayBuffer=async e=>{const n=new R,[r]=await S.all([new w(n.readable).arrayBuffer(),c.getData(n,oe,t.We,e)]);return r},j=x;const{onprogress:ce}=e;if(ce)try{await ce(i+1,v,new as(c))}catch{}yield oe}o&&j!=q&&ri("trailing central directory data"),te&&ri("duplicate filename"),o&&(T||v&&U>0)&&ri("prepended data");const ne=si(t,e,"extractPrependedData"),se=si(t,e,"extractAppendedData");return ne&&(t.prependedData=U>0?await Rr(r,0,U):re),t.comment=b?await Rr(r,g+L,b):re,se&&(t.appendedData=x<r.size?await Rr(r,x,r.size-x):re),!0}async getEntries(e={}){const t=[];for await(const n of this.getEntriesGenerator(e))t.push(n);return t}async close(){}}class js{constructor(e={}){const{readable:t,writable:n}=new R,r=new Os(t,e).getEntriesGenerator();this.readable=new U({async pull(e){const{done:t,value:n}=await r.next();if(t)return e.close();const s={...n,readable:(()=>{const{readable:e,writable:t}=new R;if(n.getData)return(async()=>{try{await n.getData(t)}catch(e){try{await t.abort(e)}catch{}}})(),e})()};delete s.getData,e.enqueue(s)}}),this.writable=n}}class Is{constructor(e,t,r){n.assign(this,{reader:e,config:t,options:r})}async getData(e,t,n,r={}){const s=this,{reader:i,index:a,offset:o,diskNumberStart:c,extraFieldAES:l,extraFieldZip64:w,compressionMethod:d,config:f,bitFlag:p,rawBitFlag:h,signature:m,rawLastModDate:y,uncompressedSize:S,compressedSize:g}=s,{dataDescriptor:b}=p,x=t.localDirectory={},z=Bs(i,c)+o,F=await Rr(i,z,G),R=Ve(F);let U=si(s,r,os),E=si(s,r,cs);const k=si(s,r,ls);if(U=U&&U.length&&U,E=E&&E.length&&E,l&&99!=l.originalCompressionMethod)throw new u(vs);if(F.length<G||li(R,0)!=q)throw new u(Us);Ls(x,R,4);const{extraFieldLength:v,filenameLength:T}=x,M=Hs(si(s,r,Ss),si(s,r,ds))==gs;let C=re;if(M&&(T||v)){const e=await Rr(i,z+G,T+v);C=e.subarray(0,T),x.rawExtraField=e.subarray(T)}else x.rawExtraField=v?await Rr(i,z+G+T,v):re;Xs(s,x,R,4,!0),M&&((e,t,n)=>{const{rawFilename:r}=e;(n.length!=r.length||n.some((e,t)=>e!=r[t]))&&ri("mismatched local file header (filename)"),(2057&t.rawBitFlag)!=(2057&e.rawBitFlag)&&ri("mismatched local file header (general purpose bit flag)"),t.compressionMethod!=e.compressionMethod&&ri("mismatched local file header (compression method)"),t.bitFlag.dataDescriptor||!(t.signature||t.compressedSize||t.uncompressedSize)||t.signature==e.signature&&t.compressedSize==e.compressedSize&&t.uncompressedSize==e.uncompressedSize||ri("mismatched local file header (signature or sizes)")})(s,x,C);const{lastAccessDate:P,creationDate:A}=x;P&&(t.lastAccessDate=P),A&&(t.creationDate=A);const O=s.encrypted&&x.encrypted&&!k,j=O&&!l;if(k||(t.zipCrypto=j),O&&!(64&~x.rawBitFlag))throw new u(ks);const I=k?$:ke(d);if(0!=d&&8!=d&&9!=d&&!I&&!k)throw new u(vs);if(O){if(!j&&(1>l.strength||l.strength>3))throw new u(ks);if(!U&&!E)throw new u(Es)}const Z=z+G+T+v,L=g,X=Nt(i.createReadable({offset:Z,size:L})),K=si(s,r,ws),V=si(s,r,"checkPasswordOnly");let Y=si(s,r,"checkOverlappingEntry");const B=si(s,r,"checkOverlappingEntryOnly");B&&(Y=!0);const{onstart:H,onprogress:Q,onend:J}=r,_=9==d;let ee=si(s,r,fs);_&&(ee=!1);const te={options:{codecType:rn,password:U,rawPassword:E,zipCrypto:j,encryptionStrength:l&&l.strength,signed:si(s,r,"checkSignature")&&!k,passwordVerification:j&&(b?y>>>8&W:m>>>24&W),outputSize:k?g:S,signature:m,compressed:0!=d&&!k,encrypted:O,useWebWorkers:si(s,r,us),useCompressionStream:ee,transferStreams:si(s,r,ps),deflate64:_,format:I?I.format:$,codecURI:I?I.codecURI:$,compressionMethod:d,rawBitFlag:h,checkPasswordOnly:V},config:f,ce:{signal:K,size:L,onstart:H,onprogress:Q,onend:J}};let ne;Y&&await(async({reader:e,Oe:t,index:n,offset:r,signature:s,compressedSize:i,uncompressedSize:a,je:o,dataDescriptor:c,extraFieldZip64:l,We:w})=>{let d=0;if(c&&(d=l?20:12),d){const n=await Rr(e,o+i,d+4);if(n.length==d+4&&li(Ve(n),0)==N){const e=li(Ve(n),4);let r,o;l?(r=wi(Ve(n),8),o=wi(Ve(n),16)):(r=li(Ve(n),8),o=li(Ve(n),12)),(t.encrypted&&!t.zipCrypto||e==s)&&r==i&&o==a&&(d+=4)}}const f={start:r,end:o+i+d,Oe:t};for(const[e,t]of w)if(e!=n&&f.start<t.end&&t.start<f.end){const e=new u(Ms);throw e.Ie=t.Oe,e}w.set(n,f)})({reader:i,Oe:t,index:a,offset:z,signature:m,compressedSize:g,uncompressedSize:S,je:Z,dataDescriptor:b||x.bitFlag.dataDescriptor,extraFieldZip64:w||x.extraFieldZip64,We:n});try{if(!B){V&&(e=new D),e=new zr(e),await Fr(e,k?g:S),({writable:ne}=e);const{outputSize:t}=await Tn({readable:X,writable:ne},te);if(e.size+=t,t!=(k?g:S))throw new u(jt)}}catch(t){if(t.outputSize!==$&&(e.size+=t.outputSize),!V||t.message!=$e)throw t}finally{si(s,r,hs)||!ne||ne.locked||await ne.getWriter().close()}return V||B?$:e.getData?e.getData():ne}}function Zs(e){const t=a.min(e.byteLength,1024)-3;for(let n=0;t>n;n++)if(134630224==li(e,n))return!0;return!1}function Ls(e,t,r){const s=e.rawBitFlag=ci(t,r+2),i=!(1&~s),a=li(t,r+6);n.assign(e,{encrypted:i,version:ci(t,r),bitFlag:{level:(6&s)>>1,dataDescriptor:!(8&~s),languageEncodingFlag:(s&V)==V},rawLastModDate:a,lastModDate:ii(a),filenameLength:ci(t,r+22),extraFieldLength:ci(t,r+24)})}function Xs(e,t,r,s,i){const{rawExtraField:a}=t,l=t.extraField=new c,w=Ve(a);let d=0;try{for(;d<a.length;){const e=ci(w,d),t=ci(w,d+2);l.set(e,{type:e,data:a.slice(d+4,d+4+t)}),d+=4+t}}catch{}const f=ci(r,s+4);n.assign(t,{signature:li(r,s+10),compressedSize:li(r,s+14),uncompressedSize:li(r,s+18)});const p=l.get(1);p&&(((e,t)=>{t.zip64=!0;const n=Ve(e.data),r=As.filter(([e,n])=>t[e]==n),s=r.reduce((e,[,t])=>e+Ns[t].bytes,0);if(e.data.length<s)throw new u(Ds);for(let s=0,i=0;s<r.length;s++){const[a,o]=r[s],c=Ns[o];t[a]=e[a]=c.Pe(n,i),i+=c.bytes}})(p,t),t.extraFieldZip64=p);const h=l.get(28789);h&&(Ks(h,Er,kr,t,e),t.extraFieldUnicodePath=h);const m=l.get(25461);m&&(Ks(m,vr,Tr,t,e),t.extraFieldUnicodeComment=m);const y=l.get(39169);y&&y.data.length>=7?(((e,t,r)=>{const s=Ve(e.data),i=oi(s,4);n.assign(e,{Ze:oi(s,0),vendorId:oi(s,2),strength:i,originalCompressionMethod:r,compressionMethod:ci(s,5)}),t.compressionMethod=e.compressionMethod})(y,t,f),t.extraFieldAES=y):t.compressionMethod=f;const S=l.get(10);S&&(((e,t)=>{const r=Ve(e.data);let s,i=4;try{for(;i<e.data.length&&!s;){const t=ci(r,i),n=ci(r,i+2);1==t&&(s=e.data.slice(i+4,i+4+n)),i+=4+n}}catch{}try{if(s&&24==s.length){const r=Ve(s),i=r.getBigUint64(0,!0),a=r.getBigUint64(8,!0),o=r.getBigUint64(16,!0);n.assign(e,{rawLastModDate:i,rawLastAccessDate:a,rawCreationDate:o});const c={lastModDate:ai(i),lastAccessDate:ai(a),creationDate:ai(o)};n.assign(e,c),n.assign(t,c)}}catch{}})(S,t),t.extraFieldNTFS=S);const g=l.get(30805);if(g)Vs(g,t,!1),t.extraFieldUnix=g;else{const e=l.get(30837);e&&(Vs(e,t,!0),t.extraFieldInfoZip=e)}const b=l.get(K);b&&(((e,t,n)=>{if(!e.data.length)return;const r=Ve(e.data),s=oi(r,0),i=[],a=[];n?(1&~s||(i.push(qr),a.push(Ar)),2&~s||(i.push(Nr),a.push("rawLastAccessDate")),4&~s||(i.push(Or),a.push(jr))):5>e.data.length||(i.push(qr),a.push(Ar));let c=1;i.forEach((n,s)=>{if(e.data.length>=c+4){const i=li(r,c);t[n]=e[n]=new o(1e3*(0|i));const l=a[s];e[l]=i}c+=4})})(b,t,i),t.extraFieldExtendedTimestamp=b);const x=l.get(6534);x&&(t.extraFieldUSDZ=x)}function Ks(e,t,r,s,i){if(5>e.data.length)return void(e.valid=!1);const a=Ve(e.data),o=new Ie;o.append(i[r]);const c=Ve(new f(4));c.setUint32(0,o.get(),!0);const l=li(a,1);n.assign(e,{version:oi(a,0),[t]:Dr(e.data.subarray(5)),valid:!i.bitFlag.languageEncodingFlag&&l==li(c,0)}),e.valid&&(s[t]=e[t],s[t+"UTF8"]=!0)}function Vs(e,t,r){try{const s=Ve(e.data);let i,a;if(r){let t=0;const r=oi(s,t++),o=oi(s,t++);i=Ys(e.data.subarray(t,t+o)),t+=o;const c=oi(s,t++);a=Ys(e.data.subarray(t,t+c)),n.assign(e,{version:r,uid:i,gid:a})}else 4>e.data.length||(i=ci(s,0),a=ci(s,2),n.assign(e,{uid:i,gid:a}));i!==$&&(t.uid=i),a!==$&&(t.gid=a)}catch{}}function Ys(e){const t=new f(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function Bs(e,t){return e.Ce?e.Ce(t):0}function Hs(e,t){return e===$?t?gs:"balanced":e}const Qs=64,Gs=0,Js=1,_s=2;async function*$s(e,t){const n=e.size-t,r=await Rr(e,n,t),s=Ve(r);for(let e=r.length-L;e>=0;e--)li(s,e)==j&&(yield[s,n,r,e,n+e])}function ei(e,t,n){return{offset:n,buffer:e.slice(t,t+L).buffer}}async function ti(e,t,n,r,s,i,a){const o=ci(t,r+10),c=li(t,r+12),l=li(t,r+16);if(o==P||c==C||l==C)return await ni(e,t,n,s-X,i,a)==Z?_s:Gs;if(!o&&!c)return Js;const w=ci(t,r+6);for(const r of[s-c,Bs(e,w)+l])if(await ni(e,t,n,r,i,a)==O)return _s;return Gs}async function ni(e,t,n,r,s,i){return 0>r||r+4>s?$:n>r?i.count>0?(i.count--,li(Ve(await Rr(e,r,4)),0)):$:li(t,r-n)}function ri(e){const t=new u(Cs);throw t.reason=e,t}function si(e,t,n){return t[n]===$?e.options[n]:t[n]}function ii(e){const t=(4294901760&e)>>16,n=e&P;try{return new o(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&n)>>11,(2016&n)>>5,2*(31&n),0)}catch{}}function ai(e){return new o(s(e/i(1e4)-i(116444736e5)))}function oi(e,t){return e.getUint8(t)}function ci(e,t){return e.getUint16(t,!0)}function li(e,t){return e.getUint32(t,!0)}function wi(e,t){return s(e.getBigUint64(t,!0))}var di=n.freeze({__proto__:null,ERR_AMBIGUOUS_ARCHIVE:Cs,ERR_BAD_FORMAT:xs,ERR_CENTRAL_DIRECTORY_NOT_FOUND:Rs,ERR_ENCRYPTED:Es,ERR_ENCRYPTED_CENTRAL_DIRECTORY:Ps,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:Fs,ERR_EOCDR_NOT_FOUND:zs,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:Ds,ERR_INVALID_COMPRESSED_DATA:It,ERR_INVALID_PASSWORD:Je,ERR_INVALID_SIGNATURE:_e,ERR_INVALID_UNCOMPRESSED_SIZE:jt,ERR_LOCAL_FILE_HEADER_NOT_FOUND:Us,ERR_OVERLAPPING_ENTRY:Ms,ERR_SPLIT_ZIP_FILE:Ts,ERR_UNSUPPORTED_COMPRESSION:vs,ERR_UNSUPPORTED_ENCRYPTION:ks,ZipReader:Os,ZipReaderStream:js});const ui="File already exists",fi="Zip file comment exceeds 64KB",pi="File entry comment exceeds 64KB",hi="File entry name exceeds 64KB",mi="Version exceeds 65535",yi="The strength must equal 1, 2, or 3",Si="Encryption is not supported in USDZ files",gi="Extra field type exceeds 65535",bi="Extra field data exceeds 64KB",xi=-2147483648,zi=2147483647,Fi="Zip64 is not supported (set the 'zip64' option to 'true')",Ri="Undefined uncompressed size",Ui="Undefined reader",Di="Zip file not empty",Ei=new f([7,0,2,0,65,69,3,0,0]),ki="infozip",vi="unix";let Ti=0;const Mi=[];class Ci{constructor(e,t={}){e=new zr(e);const{availableSize:r=ee,maxSize:s=ee}=e,i=r>0&&r!==ee&&s>0&&s!==ee;n.assign(this,{writer:e,Le:i,options:t,config:ce(),files:new c,Xe:new l,offset:t[ms]===$?e.size||e.writable.size||0:t[ms],Ke:t[ms]===$?0:t[ms]-(e.size||e.writable.size||0),Ve:new l,Ye:0,Be:$})}async prependZip(e){if(this.Xe.size)throw new u(Di);e=new xr(e),await Fr(e);const{ZipReader:t}=await S.resolve().then(()=>di),r=new t(e.readable),s=await r.getEntries();await r.close(),await Fr(this.writer),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.Xe=new l(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,rawLastModDate:r,lastAccessDate:s,creationDate:i,rawFilename:a,bitFlag:o,encrypted:c,uncompressedSize:l,compressedSize:w,zip64:d}=e;let{compressionMethod:u,He:f,Qe:p,Ge:h,Je:m,_e:y,rawExtraField:S}=e;const{level:g,languageEncodingFlag:b,dataDescriptor:x}=o;f=f||re,p=p||re,h=h||re,m=m||re,y=y||re,S=S||re,e.extraFieldAES&&(u=99);const z=_i(f,p,h,m,y,S),F=d&&l>=C,R=d&&w>=C,U=-7&ea(g,b,x,c,u)|g<<1,{$e:D,et:E}=$i({version:t,bitFlag:U,compressionMethod:u,uncompressedSize:l,compressedSize:w,rawLastModDate:r,rawFilename:a,nt:R,st:F,extraFieldLength:z}),{signature:k}=e;return k!==$&&Qi(E,10,k),n.assign(e,{st:F,nt:R,it:d&&e.offset>=C,diskNumberStart:0,ot:!1,He:f,Qe:p,Ge:h,Je:m,_e:y,rawExtraField:S,extendedTimestamp:h.length>0||m.length>0,ct:1+(s?2:0)+(i?4:0),$e:D,et:E}),[e.filename,e]}))}async add(e="",t,r={}){const s=this;r=n.assign({},r);const{Ve:c,config:l}=s;let w,d;Ti<l.maxWorkers?Ti++:await new S(e=>Mi.push(e));try{if(e=e.trim(),Yi(s,r,Gr)&&!e.endsWith(Q)&&(e+=Q),s.Xe.has(e))throw new u(ui);return s.Xe.add(e),d=!0,w=(async(e,t,r,s)=>{const c=((e,t,n)=>{t=t.trim();let r=Yi(e,n,Kr),s=Yi(e,n,Hr,r?20:768);const i=Yi(e,n,Jr),a=Yi(e,n,"uid"),o=Yi(e,n,"gid");let c=Yi(e,n,ts),l=Yi(e,n,"unixExtraFieldType"),w=Yi(e,n,ns),d=Yi(e,n,rs),f=Yi(e,n,ss);if(a!==$&&(0>a||a>C))throw new u("Invalid uid (must be integer 0..2^32-1)");if(o!==$&&(0>o||o>C))throw new u("Invalid gid (must be integer 0..2^32-1)");if(c!==$&&(0>c||c>P))throw new u("Invalid UNIX mode (must be integer 0..65535)");if(l!==$&&l!==ki&&l!==vi)throw new u("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");if(l===vi&&(a!==$&&a>P||o!==$&&o>P))throw new u("uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)");l!==$||a===$&&o===$||(l=ki);let p=Yi(e,n,Lr),h=Yi(e,n,Xr);const m=p!==$||h!==$;if(a!==$||o!==$||c!==$||l?(r=!1,s=s&P|768):m&&(r=!0,s&=W),p!==$&&(0>p||p>W))throw new u("Invalid msdosAttributesRaw (must be integer 0..255)");if(h&&"object"!=typeof h)throw new u("Invalid msdosAttributes (must be an object with boolean flags)");if(s>P)throw new u(mi);let y=Yi(e,n,Zr);const S=y!==$;S||(y=0),!n[Gr]&&t.endsWith(Q)&&(n[Gr]=!0);const g=Yi(e,n,Gr);let b;if(g?(t.endsWith(Q)||(t+=Q),S||(y=16,r||(y|=16877<<16))):r||S||(y=i?493<<16:27525120),!r){const e=c!==$||!!(w||d||f);b=y>>16&P,c=c===$?b:c&P,w?c|=B:w=!!(c&B),d?c|=H:d=!!(c&H),f?c|=512:f=!!(512&c),S&&!e||(g&&(c|=Y),y=(c&P)<<16|y&P)}return({msdosAttributesRaw:p,msdosAttributes:h}=((e,t)=>{if(e!==$)e&=W;else if(t!==$){const{readOnly:n,hidden:r,system:s,directory:i,archive:a}=t;let o=0;n&&(o|=1),r&&(o|=2),s&&(o|=4),i&&(o|=16),a&&(o|=32),e=o&W}return t===$&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(p,h)),m&&(y=y&C|p&W),{name:t,lt:{versionMadeBy:s,msDosCompatible:r,externalFileAttributes:y,unixExternalUpper:b,uid:a,gid:o,unixMode:c,unixExtraFieldType:l,setuid:w,setgid:d,sticky:f,msdosAttributesRaw:p,msdosAttributes:h}}})(e,t,s);({name:t}=c);const l=((e,t,n)=>{const r=Yi(e,n,"encodeText",Le);let s=r(t);if(s===$&&(s=Le(t)),_i(s)>P)throw new u(hi);const i=n[vr]||"";let a=r(i);if(a===$&&(a=Le(i)),_i(a)>P)throw new u(pi);const c=Yi(e,n,Br,20);if(c>P)throw new u(mi);const l=Yi(e,n,qr,new o),w=Yi(e,n,Nr),d=Yi(e,n,Or),p=Yi(e,n,Ir,0),h=Yi(e,n,ls);let m,y;h||(m=Yi(e,n,os),y=Yi(e,n,cs));const S=Yi(e,n,"encryptionStrength",3),g=Yi(e,n,Qr),b=Yi(e,n,"extendedTimestamp",!0),x=Yi(e,n,"ntfsTimestamp"),z=Yi(e,n,"keepOrder",!0),F=Yi(e,n,us),R=Yi(e,n,ps),U=Yi(e,n,"bufferedWrite"),D=Yi(e,n,"createTempStream"),E=Yi(e,n,"dataDescriptorSignature",!0),k=Yi(e,n,ws),v=Yi(e,n,"useUnicodeFileNames",!0),T=Yi(e,n,_r),M=h||T===$?$:ke(T);if(!h&&T!==$&&0!==T&&8!==T&&!M)throw new u("Compression method not supported");let C=Yi(e,n,"level");if(e.options[ys]){if(m!==$||y!==$)throw new u(Si);C===$&&T===$&&(C=0)}let W=Yi(e,n,fs),q=Yi(e,n,"dataDescriptor");U&&q===$&&(q=!1),(q===$||g)&&(q=!0),C!==$&&6!=C&&(W=!1);const A=Yi(e,n,Vr);if(!g&&(m!==$||y!==$)&&(1>S||S>3))throw new u(yi);let N=re;const O=n[es];if(O){let e=0,t=0;O.forEach(t=>e+=4+_i(t)),N=new f(e);const n=Ve(N);O.forEach((e,r)=>{if(r>P)throw new u(gi);if(_i(e)>P)throw new u(bi);Hi(n,t,r),Hi(n,t+2,_i(e)),Ji(N,e,t+4),t+=4+_i(e)})}return{comment:i,lt:{rawFilename:s,rawComment:a,version:c,lastModDate:l,lastAccessDate:w,creationDate:d,internalFileAttributes:p,passThrough:h,password:m,rawPassword:y,encryptionStrength:S,zipCrypto:g,extendedTimestamp:b,ntfsTimestamp:x,keepOrder:z,useWebWorkers:F,transferStreams:R,bufferedWrite:U,createTempStream:D,dataDescriptorSignature:E,signal:k,useUnicodeFileNames:v,compressionMethod:T,format:M?M.format:$,codecURI:M?M.codecURI:$,wt:M?M.versionNeeded:$,level:C,useCompressionStream:W,dataDescriptor:q,zip64:A,rawExtraField:N}}})(e,t,s),{comment:w}=l,d=s[es];let p;e.files.set(t,$);try{const{lt:w}=l;0==w.level||w.compressionMethod!==$||w.passThrough||await(async e=>{const{CompressionStream:t,CompressionStreamZlib:n}=e;if(n&&!n.ze)return!0;if(Qt(t)||Ht(t,Lt))return!0;if(n)try{return await void 0,!0}catch{return!1}return!1})(e.config)||(w.level=0);const d=await(async(e,t,{lt:n},r)=>{const{passThrough:s,zipCrypto:i,password:a,rawPassword:o,encryptionStrength:c}=n;let{dataDescriptor:l,zip64:w,level:d,compressionMethod:f}=n,p=0,h=0;if(s){if(!t)throw new u(Ui);if(h=r[Mr],h===$)throw new u(Ri)}const m=!0===w,y=Yi(e,r,Yr),S=!!t&&(!!(a&&_i(a)||o&&_i(o))||s&&y);t||(d=0,f=0);const g=S?i?12:16+4*c:0;t&&(t=new xr(t),await Fr(t),s?(r.uncompressedSize=h,p=Bi(h)+g):t.size===$?(l=!0,(w||w===$)&&(w=!0,h=p=4294967296)):(r.uncompressedSize=h=t.size,p=Bi(h)+g));const b=m||h>=C,x=m||p>=C;if(b||x){if(!1===w)throw new u(Fi);w=!0}return w=w||!1,{reader:t,lt:{dataDescriptor:l,zip64:w,st:b,nt:x,uncompressedSize:h,level:d,compressionMethod:f,encrypted:S}}})(e,r,l,s);({reader:r}=d);const h=Oi(e.writer),m=Ni(e.writer),y=(e=>{const{rawFilename:t,lastModDate:n,lastAccessDate:r,creationDate:s,level:i,zip64:c,zipCrypto:l,useUnicodeFileNames:w,dataDescriptor:d,directory:f,rawExtraField:p,encryptionStrength:h,extendedTimestamp:m,ntfsTimestamp:y,passThrough:S,encrypted:g,st:b,nt:x,uncompressedSize:z}=e;let{version:F,compressionMethod:R}=e;const U=!f&&(R===$?i===$||i>0:0!==R);let D;const E=S||!U,k=c&&(e.bufferedWrite||!d||!b&&!x||E),v=k||c&&d&&(b||x);if(c&&(b||x)){const e=20,t=Ai(e);if(t.uint16(1),t.uint16(e-4),D=t.array,k&&(t.ut(z),E)){const e=g?l?12:16+4*h:0;t.ut(S?0:z+e)}}else D=re;let T,M,C,W,A;if(g&&!l){const e=Ai(_i(Ei)+2);e.uint16(39169),e.bytes(Ei),T=e.array,T[8]=h}else T=re;if(m){const e=Xi(n),t=Ki(e);if(t){const t=9+(r?4:0)+(s?4:0),n=Ai(t);W=1+(r?2:0)+(s?4:0),n.uint16(K),n.uint16(t-4),n.uint8(W),n.uint32(e),r&&n.uint32(Vi(Xi(r))),s&&n.uint32(Vi(Xi(s))),C=n.array}else C=re;if(y===$?!t||r||s:y)try{const e=Li(n),t=Ai(36);t.uint16(10),t.uint16(32),t.ft(4),t.uint16(1),t.uint16(24),t.ut(e),t.ut(Li(r)||e),t.ut(Li(s)||e),M=t.array}catch{M=re}else M=re}else M=C=re;try{const{uid:t,gid:n,unixExtraFieldType:r}=e;if(r!=ki||t===$&&n===$)if(r!=vi||t===$&&n===$)A=re;else{const e=Ai(8);e.uint16(30805),e.uint16(4),e.uint16((t===$?0:t)&P),e.uint16((n===$?0:n)&P),A=e.array}else{const e=qi(t),r=qi(n),s=3+e.length+r.length,i=Ai(4+s);i.uint16(30837),i.uint16(s),i.uint8(1),i.uint8(e.length),i.bytes(e),i.uint8(r.length),i.bytes(r),A=i.array}}catch{A=re}R===$&&(R=U?8:0);const{wt:N}=e;U&&N!==$&&(F=F>N?F:N),c&&(F=F>45?F:45),g&&!l&&(F=F>51?F:51,T[9]=R,R=99);const O=v?_i(D):0,j=O+_i(T,C,M,A,p);if(j>P)throw new u(bi);const I=new o(2e3*a.ceil(n.getTime()/2e3)),{$e:Z,et:L,rawLastModDate:X}=$i({version:F,bitFlag:ea(i,w,d,g,R),compressionMethod:R,uncompressedSize:z,lastModDate:_>I?_:I>J?J:I,rawFilename:t,nt:x,st:b,extraFieldLength:j}),V=Ai(G+_i(t)+j),Y=V.array,B=Ve(Y);return V.uint32(q),V.bytes(Z),V.bytes(t),v&&V.bytes(D),V.bytes(T),V.bytes(C),V.bytes(M),V.bytes(A),V.bytes(p),d&&(x||Qi(B,18,0),b||Qi(B,22,0)),{ht:Y,yt:B,$e:Z,et:L,lastModDate:n,rawLastModDate:X,encrypted:g,compressed:U,version:F,compressionMethod:R,ct:W,He:re,St:O,Ge:C,Je:M,_e:A,Qe:T,extraFieldLength:j}})(s=n.assign({},s,c.lt,l.lt,d.lt,{internalFileAttribute:l.lt.internalFileAttributes,externalFileAttribute:c.lt.externalFileAttributes,signature:s[$r],offset:e.offset-h,diskNumberStart:m})),g=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:n})=>{let r,s=re,i=0,a=e?20:12;return n&&(a+=4),t&&(s=new f(a),r=Ve(s),n&&(i=4,Qi(r,0,N))),{gt:s,bt:r,xt:i}})(s),b=_i(y.ht,g.gt);p=await(async(e,t,r,s,a)=>{const{files:o,writer:c}=e,{keepOrder:l,dataDescriptor:w,signal:d}=a,{zt:p}=s,h=e.options[ys],m=e.Be;let y,g,b,x,z,F,U,E={},k=0;o.set(t,E),e.Be=E;try{let g;l&&(g=m&&m.lock,E.lock=new S(e=>b=e)),a.bufferedWrite||!l||e.Ft||e.Ye||!w?(y=!0,e.Ye++,U=a.createTempStream?await a.createTempStream():new R($,$,{highWaterMark:ee}),U.size=0,await Fr(c)):(U=c,await v()),await Fr(U);const M=Oi(c);if(e.Le){delete e.Le;const t=new f(4);Qi(Ve(t),0,A),await Zi(c,t),e.offset+=4}h&&!y&&Wi(s,e.offset-M);const{ht:P}=p;y||(await g,await T());const q=Ni(c),N=Ii(e,c);if(E.diskNumberStart=q,y||(z=!0,F=c.size,await Zi(U,P)),E=await(async(e,t,{diskNumberStart:r,lock:s},a,o,c)=>{const{zt:l,Rt:w,Ut:d}=a,{$e:f,et:p,lastModDate:h,rawLastModDate:m,encrypted:y,compressed:S,version:g,compressionMethod:b,He:x,St:z,Ge:F,ct:R,Je:U,_e:D,Qe:E}=l,{gt:k}=w,{rawFilename:v,lastAccessDate:T,creationDate:M,password:P,rawPassword:q,level:A,zip64:N,st:O,nt:j,zipCrypto:I,dataDescriptor:Z,directory:L,executable:X,versionMadeBy:K,rawComment:V,rawExtraField:Y,useWebWorkers:B,transferStreams:H,onstart:Q,onprogress:G,onend:J,signal:_,encryptionStrength:ee,extendedTimestamp:te,msDosCompatible:ne,internalFileAttributes:re,externalFileAttributes:se,uid:ie,gid:ae,unixMode:oe,setuid:ce,setgid:le,sticky:we,unixExternalUpper:de,msdosAttributesRaw:ue,msdosAttributes:fe,useCompressionStream:pe,passThrough:he,format:me,codecURI:ye}=c,Se={lock:s,versionMadeBy:K,zip64:N,directory:!!L,executable:!!X,filenameUTF8:!0,rawFilename:v,commentUTF8:!0,rawComment:V,He:x,St:z,Ge:F,Je:U,_e:D,Qe:E,rawExtraField:Y,extendedTimestamp:te,msDosCompatible:ne,internalFileAttributes:re,externalFileAttributes:se,diskNumberStart:r,uid:ie,gid:ae,unixMode:oe,setuid:ce,setgid:le,sticky:we,unixExternalUpper:de,msdosAttributesRaw:ue,msdosAttributes:fe};let{signature:ge,uncompressedSize:be}=c,xe=0;he||(be=0);const{writable:ze}=t;if(e){const n=Nt(e.createReadable?e.createReadable():e.readable),r=e.size,s={options:{codecType:nn,level:A,rawPassword:q,password:P,encryptionStrength:ee,zipCrypto:y&&I,passwordVerification:y&&I&&m>>8&W,signed:!he,compressed:S&&!he,encrypted:y&&!he,useWebWorkers:B,useCompressionStream:pe,transferStreams:H,format:me,codecURI:ye,compressionMethod:b},config:o,ce:{signal:_,size:r,onstart:Q,onprogress:G,onend:J}};try{const e=await Tn({readable:n,writable:ze},s);if(xe=e.outputSize,t.size+=xe,he||(be=e.inputSize,ge=e.signature),!j&&xe>=C||!O&&be>=C)throw new u(Fi)}catch(e){throw e.outputSize!==$&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:n,zt:r,Rt:s},{zip64:a,zipCrypto:o,dataDescriptor:c})=>{const{et:l,encrypted:w}=r,{bt:d,xt:u}=s;w&&!o||e===$||(Qi(l,10,e),c&&Qi(d,u,e)),a?c&&(Gi(d,u+4,i(t)),Gi(d,u+12,i(n))):(Qi(l,14,t),Qi(l,18,n),c&&(Qi(d,u+4,t),Qi(d,u+8,n)))})({signature:ge,compressedSize:xe,uncompressedSize:be,zt:l,Rt:w},c),Z&&await Zi(t,k),n.assign(Se,{uncompressedSize:be,compressedSize:xe,lastModDate:h,rawLastModDate:m,creationDate:M,lastAccessDate:T,encrypted:y,zipCrypto:I,size:d+xe,compressionMethod:b,version:g,$e:f,et:p,signature:ge,ct:R,st:O,nt:j}),Se})(r,U,E,s,e.config,a),y||(z=!1),o.set(t,E),E.filename=t,y){if(await S.all([U.writable.getWriter().close(),g]),await v(),x=!0,F=c.size,await T(),E.diskNumberStart=Ni(c),E.offset=Ii(e,c),h){const t=s.Ut;Wi(s,e.offset-Oi(c)),E.size+=s.Ut-t}(({rawFilename:e,encrypted:t,zip64:n,St:r,signature:s,compressedSize:a,uncompressedSize:o,st:c,nt:l},w,{dataDescriptor:d})=>{if(d||(t||Qi(w,14,s),l||Qi(w,18,a),c||Qi(w,22,o)),n&&r){const t=G+_i(e)+4;Gi(w,t,i(o)),Gi(w,t+8,i(a))}})(E,p.yt,a),await Zi(c,p.ht),await(async(e,t,n)=>{const r=t.writable.getWriter();try{await e.pipeTo(new D({async write(e){var t;await r.ready,await r.write(e),t=_i(e),k+=t}}),{preventClose:!0,preventAbort:!0,signal:n})}finally{r.releaseLock()}})(U.readable,c,d),c.size+=U.size,x=!1}else E.diskNumberStart=q,E.offset=N;return e.offset+=E.size,E}catch(n){if(x||z){if(e.hasCorruptedEntries=!0,n)try{n.corruptedEntry=!0}catch{}e.offset+=c.size-F,y&&(e.offset+=k)}throw o.delete(t),n}finally{if(y&&e.Ye--,b&&b(),g&&g(),y&&U&&U.dispose)try{await U.dispose()}catch{}}async function v(){e.Ft=!0;const{Dt:t}=e;e.Dt=new S(t=>g=()=>{e.Ft=!1,t()}),await t}async function T(){ji(c,_i(p.ht))&&await c.closeDisk()}})(e,t,r,{zt:y,Rt:g,Ut:b},s)}catch(n){throw e.files.delete(t),n}return n.assign(p,{name:t,comment:w,extraField:d}),new as(p)})(s,e,t,r),c.add(w),await w}catch(t){throw d&&s.Xe.delete(e),t}finally{c.delete(w);const e=Mi.shift();e?e():Ti--}}remove(e){const{Xe:t,files:n}=this;if("string"==typeof e&&(e=n.get(e)),e&&e.filename!==$){const{filename:r}=e;if(t.has(r)&&n.has(r))return t.delete(r),n.delete(r),!0}return!1}async close(e=re,n={}){const{Ve:r,writer:s}=this,{writable:a}=s;if(_i(e)>P)throw new u(fi);for(;r.size;)await S.allSettled(t.from(r));return await(async(e,n,r)=>{const s=(e=>{let t=0;for(const[,n]of e){const{rawFilename:e,Qe:r,rawComment:s,Je:i,_e:a,rawExtraField:o,extendedTimestamp:c,ct:l,lastModDate:w,st:d,nt:f,uncompressedSize:p,compressedSize:h}=n,m=n.offset>=C,y=n.diskNumberStart>=P;let S,g;if(m||y||d||f){const e=4+(d?8:0)+(f?8:0)+(m?8:0)+(y?4:0),t=Ai(e);t.uint16(1),t.uint16(e-4),d&&t.ut(p),f&&t.ut(h),m&&t.ut(n.offset),y&&t.uint32(n.diskNumberStart),S=t.array}else S=re;n.He=S,n.it=m,n.ot=y;const b=Xi(w);if(c&&Ki(b)){const e=Ai(9);e.uint16(K),e.uint16(5),e.uint8(l),e.uint32(b),g=e.array}else g=re;n.Ge=g;const x=_i(S,r,i,a,g,o);if(x>P)throw new u(bi);t+=46+_i(e,s)+x}return t})(e.files),a=await(async(e,n,r)=>{const{files:s,writer:i}=e,a=new f(n);await Fr(i);let o=0,c=0,l=Ni(i),w=Oi(i);for(const[e,n]of t.from(s.values()).entries()){const{offset:t,rawFilename:d,He:u,Qe:f,Ge:p,Je:h,_e:m,rawExtraField:y,rawComment:S,versionMadeBy:g,$e:b,et:x,st:z,nt:F,ot:R,it:U,internalFileAttributes:D,externalFileAttributes:E,diskNumberStart:k,uncompressedSize:v,compressedSize:T}=n,M=_i(u,f,p,h,m,y),W=46+_i(d,S)+M;ji(i,o+W-c)&&(await Zi(i,a.slice(c,o)),c=o,await i.closeDisk()),0==e&&(l=Ni(i),w=Oi(i)),z||Qi(x,18,v),F||Qi(x,14,T),(U||R)&&45>n.version&&Hi(x,0,45);const q=Ai(W);if(q.uint32(O),q.uint16(g),q.bytes(b.subarray(0,24)),q.uint16(M),q.uint16(_i(S)),q.uint16(R?P:k),q.uint16(D),q.uint32(E),q.uint32(U?C:t),q.bytes(d),q.bytes(u),q.bytes(f),q.bytes(p),q.bytes(h),q.bytes(m),q.bytes(y),q.bytes(S),Ji(a,q.array,o),o+=W,r.onprogress)try{await r.onprogress(e+1,s.size,new as(n))}catch{}}return await Zi(i,c?a.slice(c):a),{diskNumber:l,diskOffset:w}})(e,s,r);await(async(e,t,n,r)=>{const{writer:s}=e,{Et:a}=r;let{kt:o}=r,c=e.files.size,l=a.diskNumber,w=Ii(e,a),d=Ni(s);ji(s,L)&&d++;let f=Yi(e,n,Vr);if(!(C>w&&C>o&&P>c&&P>d)){if(!1===f)throw new u(Fi);f=!0}const p=_i(t);if(p>P)throw new u(fi);const h=Ai(f?98:L);ji(s,_i(h.array)+p)&&await s.closeDisk(),d=Ni(s),f&&(h.uint32(I),h.ut(44),h.uint16(45),h.uint16(45),h.uint32(d),h.uint32(l),h.ut(c),h.ut(c),h.ut(o),h.ut(w),h.uint32(Z),h.uint32(d),h.ut(i(Ii(e,s))+i(o)),h.uint32(d+1),Yi(e,n,"supportZip64SplitFile",!0)&&(d=P,l=P),c=P,w=C,o=C),h.uint32(j),h.uint16(d),h.uint16(l),h.uint16(c),h.uint16(c),h.uint32(o),h.uint32(w),h.uint16(p),await Zi(s,h.array),p&&await Zi(s,t)})(e,n,r,{Et:a,kt:s})})(this,e,n),Yi(this,n,hs)||await a.getWriter().close(),s.getData?s.getData():a}}function Pi(e,t,n){e.Ve.add(t),t.catch(e=>{try{n(e)}catch{}})}function Wi(e,t){const{zt:n}=e;let{ht:r,extraFieldLength:s}=n,i=64-(t+_i(r))%64;4>i&&(i+=64);const a=new f(i),o=Ve(a);Hi(o,0,6534),Hi(o,2,i-4);const c=r;n.ht=r=new f(_i(c)+i),Ji(r,c),Ji(r,a,_i(c));const l=Ve(r);Hi(l,28,s+i),n.yt=l,e.Ut+=i}function qi(e){if(e===$)return re;{const t=new f(4);Ve(t).setUint32(0,e,!0);let n=4;for(;n>1&&0===t[n-1];)n--;return t.subarray(0,n)}}function Ai(e){const t=new f(e),n=Ve(t);let r=0;return{array:t,uint8:e=>{((e,t,n)=>{e.setUint8(t,n)})(n,r,e),r+=1},uint16:e=>{Hi(n,r,e),r+=2},uint32:e=>{Qi(n,r,e),r+=4},ut:e=>{Gi(n,r,i(e)),r+=8},bytes:e=>{Ji(t,e,r),r+=_i(e)},ft:e=>r+=e}}function Ni(e){const{diskNumber:t=0}=e;return t}function Oi(e){const{diskOffset:t=0}=e;return t}function ji(e,t){const{availableSize:n=ee}=e;return t>n}function Ii(e,{diskNumber:t=0,diskOffset:n=0}){return e.offset-n-(t?e.Ke:0)}async function Zi(e,t){const{writable:n}=e,r=n.getWriter();try{await r.ready,e.size+=_i(t),await r.write(t)}finally{r.releaseLock()}}function Li(e){if(e)return(i(e.getTime())+i(116444736e5))*i(1e4)}function Xi(e){return a.floor(e.getTime()/1e3)}function Ki(e){return e>=xi&&zi>=e}function Vi(e){return a.min(zi,a.max(xi,e))}function Yi(e,t,n,r){const s=t[n]===$?e.options[n]:t[n];return s===$?r:s}function Bi(e){return e+5*(a.floor(e/16383)+1)}function Hi(e,t,n){e.setUint16(t,n,!0)}function Qi(e,t,n){e.setUint32(t,n,!0)}function Gi(e,t,n){e.setBigUint64(t,n,!0)}function Ji(e,t,n){e.set(t,n)}function _i(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function $i({version:e,bitFlag:t,compressionMethod:n,uncompressedSize:r,compressedSize:s,lastModDate:i,rawLastModDate:a,rawFilename:o,nt:c,st:l,extraFieldLength:w}){const d=Ai(26),u=d.array,f=Ve(u);if(d.uint16(e),d.uint16(t),d.uint16(n),a===$){const e=new h(1),t=Ve(e);Hi(t,0,(i.getHours()<<6|i.getMinutes())<<5|i.getSeconds()/2),Hi(t,2,(i.getFullYear()-1980<<4|i.getMonth()+1)<<5|i.getDate()),a=e[0]}return d.uint32(a),d.ft(4),c||s!==$?d.uint32(c?C:s):d.ft(4),l||r!==$?d.uint32(l?C:r):d.ft(4),d.uint16(_i(o)),d.uint16(w),{$e:u,et:f,rawLastModDate:a}}function ea(e,t,n,r,s){let i=0;return t&&(i|=V),n&&(i|=8),8!=s&&9!=s||(0>e||e>3||(i|=6),e>3&&5>=e&&(i|=4),9==e&&(i|=2)),r&&(i|=1),i}const ta=1048576,na=".zip.js-temp",ra=1048576,sa=1048576,ia=".zip.js-temp";try{de({baseURI:void 0===x&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===x?location.href:M&&"SCRIPT"===M.tagName.toUpperCase()&&M.src||new d("zip-legacy.min.js",x.baseURI).href})}catch{}de({workerURI:e=>{const t="text/javascript",n=(e=>{let t=0,n=0,r=0,s=new f(1024),i=0,a=0;for(;!a;){a=c(1);const e=c(2);if(0==e)l();else if(1==e)w(ge(ye),ge(Se));else{if(2!=e)throw u("invalid deflate block type");w(...d())}}return s.subarray(0,i);function o(){if(t>=e.length)throw u("unexpected end of deflate data");return e[t++]}function c(e){for(;e>r;)n|=o()<<r,r+=8;const t=n&(1<<e)-1;return n>>>=e,r-=e,t}function l(){n=0,r=0;const e=o()|o()<<8;t+=2,h(i+e);for(let t=0;e>t;t++)s[i++]=o()}function w(e,t){let n=p(e);for(;256!=n;){if(256>n)h(i+1),s[i++]=n;else{const e=n-257,r=ue[e]+c(fe[e]),a=p(t),o=pe[a]+c(he[a]);h(i+r);const l=i-o;for(let e=0;r>e;e++)s[i++]=s[l+e]}n=p(e)}}function d(){const e=c(5)+257,t=c(5)+1,n=c(4)+4,r=new f(19);for(let e=0;n>e;e++)r[me[e]]=c(3);const s=ge(r),i=new f(e+t);let a=0;for(;a<i.length;){const e=p(s);if(16>e)i[a++]=e;else if(16==e){const e=i[a-1];let t=c(2)+3;for(;t--;)i[a++]=e}else a+=17==e?c(3)+3:c(7)+11}return[ge(i.subarray(0,e)),ge(i.subarray(e))]}function p(e){const{o:t,symbols:n}=e;let r=0,s=0,i=0;for(let e=1;15>=e;e++){r|=c(1);const a=t[e];if(a>r-s)return n[i+(r-s)];i+=a,s=s+a<<1,r<<=1}throw u("invalid huffman code")}function h(e){if(s.length<e){let t=2*s.length;for(;e>t;)t*=2;const n=new f(t);n.set(s.subarray(0,i)),s=n}}})((e=>{const t=(e=(e+"").replace(/[^A-Za-z0-9+/=]/g,"")).length,n=[];for(let r=0;t>r;r+=4){const t=be.indexOf(e[r])<<18|be.indexOf(e[r+1])<<12|(63&be.indexOf(e[r+2]))<<6|63&be.indexOf(e[r+3]);n.push(t>>16&255),"="!==e[r+2]&&n.push(t>>8&255),"="!==e[r+3]&&n.push(255&t)}return new f(n)})("zb1pc9u40ij8/f0VtitHRYRNDkktlilDrmyTZLJOnEwmo1JSsgRatCXQISErjqXz29/qBkhCsjKT8yz33kpKJkGsjUaj0Rscwfu3B8lCjlWayQPO1c2VyJK9iUhSKRoN/dcfzScn+tERLBYOWzOnLOSw24NFIfYKladjddAbZ7JQtw/yfHQTC3hzdiHGKlbwejE/E3ks4dVITeMcnuR5lscpfEil6urcGb2EHf2W0Fsz0m8FPK9fxvBqdBWP4PFIjf5IxTKewds8m6eFiBfwXnxTT+Q4m4g8XsI4v7lSWTyFq6xQr0RRjM5FPIH3+UgWSZbPT1UuRvP4Ct6J0WR0NhMm4QY+5qmyEubwKJtf5aIo0kyatEt4LMZ3Us/WvBCzBK75dZZO9gI45wcLqcE3OYBTXsMbvnMplnsZXPDBYAi7/g97SZY7M6H2BA96UbvTFz3huuwWkxQXG5+75qPiYUOdqH6/H35uHnW70VHU7LZiSuhdDILhQAy5Wu+uuUxVPOx1+6qnsDWa1T3JLwbKC7F472KgqBrZ7/e7n6nSqN1uyOGa8g7ewjf4AA/gEXyBd/B8yC9649moKPae6MryxVhluSPYrZqmhZ9xsVp54Xp0dSXkBJN1H4KV/twrexCshD8T8lxNe5gj50EvTRzZ591GQ/hniyQRednflMA7c8p0EP7ZjRJvkqQQCiSDjEuvSyDsZX2e93KXd8vCgqvPqX8uFGGek8N+wEByO8ltYWJP8ec0djH8/G4gEB6NqN0efv5CL2FHvz2it6il3x4YaH3+MJB1iW/0UpZ4S2+mxJqmqyf72EucYkWAf0v1OOqzGORDNuwZYKr1uVAOu82FWuTy3zp1vdYz8GlPfFNCToq9q4250DAXBtSKgPekVyyuRO7cqnLJOAIku1V+NVMgfSG/LsQCqcMaktmimDo1yhCGOy3W03MhyznyC6H0EncCUD71l4Hwr0ezheByvWYgOHZ8vS4XzN4rR4DarrrEB1eZB9bTw96T2IbuIT4oKLMykHWljxHbyhJ/gy/65aWuQGP53nuOnRmPlO5YmjgB57xsZrXCt6pbpg3hmyKKVVgtBmUZLxxCzt/7M0dW42hGnPP8xCoYv/enjoIcgpUE4RezdCycAOpKGFvDHAdWTma1akwfVdmdwOoELu660fuO8kLm6r6s4boaYzO6X1Z3XNUjqnocwesu5f5YpDNH/dKMGGNlJ0wZ1eDNEGQ/aDRUo+GIgfTCIX/vn+Jc0UsjCluHrW6z0+r2+8oLIUQkWcNpjL0ByXifoCNOVOzIk2ClYnV83Iw8wdwwODpqh2EnOjw87NwXMIsF7+d+ni0Qb3/Z+MxWq2YEU10p5OwWV5sm4Aj7RsPJ+WDIeqrPm1FPebwZsdy/QlSXSBaCO3DNy9kSrCLSKeY7rqfCdatKVmKQDvv9vsLa8JlGoXolJSsLnWygShxARsiSVshiKiQgulmjGYJys34zOpFx7l9lVw4jGObrNbzmt4jSRXx7YaPKex8x55culCtMMU1rN8ah+ikNoNlIVysnxz7/0hoykIN0yHMiXJAfH/NutRrX8NZuZjCkWiUgDceaEYqyho5E6PD8+Li7EgM5hGbj33K1cpQeX86wXL1EGrLRUPXQu/edZkMyyBkDtV6v4SEn4re9+ZSdQULTU/7ZLBtfnqbfBW+HESj/Ax+Eh82o3W2FR01oBVEzajZb4SFE7U7U7DbDIILoMDxsNruHXWhG3Xbz8LAdBUNQ/gM+CNthtx0EUesIwm776PCw3TxqQtQKgqP20WHQhWbzqN3qHB12oyGIE0f5j7jwH5WLh4Hyv3Dhf7ET3nHhv2Ox8nOBRI2tzd9628KhVLQGK/xQlxf+Fz4YgvDf8QDEenE1GSlxBxAHyM3J85ohFLg6+Wv/uY9TWNMt7N/7iiz5X0DgtCj/HWT4y3NXIxOujqx/FASH4dFR1G4dtoKjo5CpaZ4tieimzsGjkZSZ2puOiunePMvFnpqO5F70ud3c8/bCvbNUFQdlywlhZoE0EnFobDBIczPWNLq552y8Nqw3L2S47SPbY5dhyv/kJH6xOBshu+mEnftjCDv3nbEbMsZg7PLQ2mGuDKHDbIhrr7anwnBq/pea0PqPesqCGwwQZZG2DdnGOMzGFvXCdsOwdhrFA52vXAt+MssQn/13v7Sio9ZR5zA66iDmm9wrRJleWV+PCf+To+yuM1ZjjMEnkOvHNTksv/bDoxPRb+JPG38Oj040lYzVZ/k5j1VDrlQjX8lGbqX8WzXy9Xu9f5Sk//hYrJCHQVq9/uRY2zpCDVIu/UeQceF0A7bB5YYlp5oRG4vMKH5KeDoIhlDwdBAOYczTQTSEEU8HzSHMeDpobbLSh0d65l12ixWuVg5VJ/33TgjZQHjN4Wf809V/wpb52xlW6K8odxsS5kofYVXAGEbMnblYlSv9B4NqZn6JAjZcBb0ZH8GIj2FMZZsBFAwKnkDC1Rr7T4Nwk1UAOAwai1vQWzSkIbljemsOaWTuiN5aQxqgO1sF6zU847fp/CrL1Qtxg1seLpVn/mvnNTEwhV7C8LCeXGSguVytQtGCoJ+vVkFfbq7NVF6PZulk72qUj+bFnsr2rs4uJ0lULciMh66T9/ttdnwc6fnQ4ICFybGkJUsnuIfEXTkZg6nh0Jd6HU94yY1c8fcaw3nda8VgwcOek61WIetPegucPMyU8IILX0g67TlX1rpaDHHB8rAn++Pe2Jxu7MwFgxEPeqPjolwcI8w1GA0/82Iw0jiD5KVstdEYHydlXqxxirylPhBMIBmMhwwmLm+tDZ4va07oly5bw+v4H/chQLr6jD+E3BwLhz3l/8EHCCoJ9Dus+ALl/zEIhjX1+qUZ9cottJ8S2XaoCPMrYu+/cli9phQyJeagl+M5Tg35UXDUjqJWt/NZDNQQ8kFIyWG7ddRud7pRl9J7pnFTMRZGmvPHILTSQkr7SBMtHV3iB5uWMNmE/8wROiMI/y++H1obFZ1l/uL7AdDTx3pY60l6LortWgFp70ccsuFnytrDYQUSRSDZRQJLPBG0SnTbm0vD5NjL5N5olovR5GZP1zrZm85H473xaDYTk/2DqnqqpOq0HoXpuWDIqvxe7rrTfX7eaJQveER6N5KTbP4HHpEKzk/hD37wvFqaRbHM8skBfKwTi/RcjtQiFwfwFz/4nl5dFN7oLMuVN56K8aVXFepVx6EXZqy/l4zsnYZxP9/cuUnKsvfg7fM93MGLxRVSHzE5KI9JL3nYga/8Vo7mIj54+/DF41+jgzX8ypU/KrCPzi1u+7HJ8OzVg0cH6zV8ZfDGypIqkY+wj0UciibYJU6fPfBCU+Q3PjiYiDy9Fg+RZRjCn3zQhTCCsDOEe3wQdiBqQTMawlMeBiAEHwRA/4aghA17kIIr0WhMkRlQMwG5fjdZpMA8qShJFGTip5jMF3ywJe4ZwnYCMpAvcDHS/9VK+S8dm+2ib60hMVsvcMPL+IZcxFBfHiLn1drnPGs0OvpPF//sJu8jUexdipu9Iv0uDkoW4wEfFPWBDskpdjjhWa91P3Ojbj/pJaVESvBikOAh0kn+lXHOg9Wqy6lV/d5iRJGkkYUMj4+j1md6M0KP4+OwoxO65r37WRrpCpg6qQqBX3Qtn0dYDYz46Pg4/Bx1m/edUb9/iLxaMUiG1KVs+FlsCLwS3Psh8bx6eopBsyFOkjjxWsPeGLmBVp8nq1Wrj6dLIo1yoHTHh5+JJtK76TomRSapW6U0MQX7r4bDtU1ObGrwqyMgYOuJ+OHXkK1fbhE2wgFQ5XM4pIOjxgn8kyKjn5XHLIMQPxAnZgMnxQGLCoKCIPgZ06oyM57woLcvB7Nhb/aZF6tViHgwSIa4NxICZDz5nGAlyfFxhD9N/Gn1Mp6huAoBkX0+OgKsg2eQD7IhnxGbhhwbMm+z4VD3eMHDTrfVDIKj+6PPnXa7eXh//DlqH94vPpsP3fszWHJMSgfZsE7Nqh7jkbLVl3SWxEMktrrkS0K7JQrQQGFqNuQLvqDUBaau7fJtqzzHH+s0hknKTlr/WklJcNVVAqcfLjfauMsFZ3PA/gPaebk0VfzS8iKczopWJeXMK+R6E0SGMU8QD0Y8QeZ3xhNkfhc8QeYXh7OEKUzgiotBMPwsscQNSn1OmnGI7+EQ5lwMInyOhnBJ38K4ie/NIZzx1gb65AZ5lrwYXOll8Xk8uKkFmKPBvBJtzmgRXGJVZ0OY8gIzmiJzu8jlVpErKuKGQ5jwArOaQpd2oautQje6EA2iwKym0JVd6Gar0FwXwpG6vAVXfAk3fApzPtkYdqtaM+qk2fBELIZ8UQJA45AFBCJoixoQSLYWFixcdwhLfgVX/AZu+Bzm/BIu+bJkFrL1GpKd2wpiGSHAGy40E/EbV/rhT64qBqtMoAwWG2UTmHuasXkDpqI/2fqp4QKwo/9GYhC1GBMuD3GAPTErRKmBKEeK1McMEnJOFLsXtdsoEjtxFA9Av8gTlPOYl/wk50HsujmLXVfijwKBggmXKwQcPsjj4y7+zUuOWqwFjQClbQ5ish7cU3pmtMHg0alKDIeMre8ZceGtFmSlibPv5LVo1vA6g5qvRrmF2pTc5STx4i0DVCFQ/KDz59aRQrKeGqTDzzwn+jxI3ZBeQv0S0UukX5r00hyWY3vvXzsKUrZeQyH4M/+1Fm9otiO3WQ+/OuIhHzjalaNmgjg/NdqXmfiB8P+2ZAVjAflo+bZ8U2DGZTRcCK5YArGPZaY3cnYT52t2a3QFhRrliHtLQYgFGvRrGBU3crxnaxK2T/11LxIoytYKUCIeA/HW8WjNZS85cUbLUaocqrE6yPL+bXkapc97E2G+3QgnhwD+HCg8ECac3umNJFODYLhPFHS1ygYhPYfDDZr9B+o8JRSQYF2C6iqGboTSaE4p5h3yE+UL1G46uuRfjMVjh7FYd2lkMGa2pb3wnnrWM/vXS5TXlHqVqXAkCJhBAE9R5VTBUitbShbzVopYQS5iCaibSeV5nBuwZWvNfeJRv9FQ7Fb3JqvkaQZCed0FKHSilWSEbd+xmvIQXDMll8JJBSSsJ+vjTbU+lJ3G55Q1L88HI2xJp8nyLMQYjlY3OeNlJ46fnoRxsEGPnxp6PFvx0UAMPxcoEUoTZ7YxgR9ZT1TwHOM5i5X6sMX/zJpYl8Tlf3AV5PUqSHEVJGY6C1wF5WTkJ86Y31kP9WrI+QtHI5vG/3JveeXksLVOcqbxPIWcQVJjbdErJ0pXNC5FkxXKlg+IuCNSt42B5NVbODyCsiz8J3ic/hMeaxEgYWZ6BzMr5NMomrINHIXE4KNg69yvjsz8DkJWopynKJcoB/bKScAqxgi3kAnf1F0uEcYSckhJe6rPtAJu9bgQrAtH8b7w8QzKoEKBK4RbzixE8MIKLN/XrG5hWs0ipJBYsCwQluOq0GjNRW9kgNRoOIq/ckagKrnmrNoXvVRz4kY94xCu8j6JQhoN1RdbkJZc9PB4Z7RGpON1JB5tqr0bsSt3nZk3+9dLhgK9oDfzXvb5ordw+cttYnIjHAULWLgvUWDVaIzvUJaUW8KUXrJaVVnSUu87N5MOCzeve+IbcHDdBgp7DC6W8JwQ5DUspV9OCJeL2cw0XvAd2xCkBkT7Y1HKUJ7V2zVyFSq/KRkwjb/2fu4c5KPlAdW1HyIvMB6p8bTMPxZ8P4TN+tZr5gSQwq8QwG94QN9JDLBHI6tHD0khXoxmCt74tWwF5O7+1dyEqXKzXyPTrx/Xir2shTmYI07W8IZBAd37TnT/3iDXG2pFZBjMajwYQQCYhZDGSsU00KUZgyWnRPNeidzKZiXcXoqbIsbfeAYpWgyVE/uHyNMkHVN/4+UapKBVmQhNPIUzw1Wf5NncEShAz/X3QjgLtmawrBfildhUdXDOr08cYRaO5s+WnJ/Xogc9YEfwhRTFeIQVkA3Th3fP0e4ok0KiWKBSoLONE648VrbSlE6lwh9PR/mjbCIeKMuUQBn8pzEtma+bQcEjQ9suVQ/iRpQsc7ViKpUYTX+Vc745XOFfIE5Wny+3P6Mk32y9Z//51rtzun6SIT3f2or/ZhOmHaZa9KuV9K1u1BN3SrtaDZkAwoixzcJ8oyzRDwj2uaMGIR67/V0jYlvcZ49sKiqVZMTWu/jMerfV/cK9qGJzrv+nYP3fgyvxSJD+A3z/FnqV/q3kawjmBE6+G5woR/mBsRDu3UI53xFgiiHPkvIwWuMRd2+7FH4LelYBwXBfqcGea4BXuH/+g02/grjcgHi+G+LpmoGjK6q5upQPmkG7FR51jzrQPgoP22HQOoLuYTfoRuFRRDyw3SYRvhQyTbaeOCnpV5L6NRoiHcuZrRhSxyXnTfqhCxxPTucmAtBmVnknq7SpkCLmUg+jBtGp2GXUpe4QOrQSyWtCh0ZwcpAP+VukXp8V7gK6SZvwW2Ze3/+H21E/aOfCtDMTagBEiBHwPeFnorSZI/iVs/hv+kLmbz3JPwgn99P5YuZ8EI50vyEbwyBstg4P292wydyQNqG6Km0iOKz1sP+mz7o+3TYfpCAhG9Z9fLth8hGtdL5BVBl/fau6oSD8rBgKRa05+2aLkEjUU3/7YH+rrBEwi27vgeYPR7XG6ZFd4oHuuyiPhl9Erc1ayNLcVky0yBTeCX4wEclspIRHbNNzwQ/Ov6dXB/BE8EEzhLB5BN2hEX98+hENFHA7ni4kqVBjddfY969ZehbLHUbA1i6zNpNwW/cyTsujopjEGSwKcbeGBL6nV1qFFheAq1VM4jHMxLWYxSMwo+u04gUgSR0ptGuua3kl1DSbxNM1FzCpSewV3MAcpZ/YNz835s0GS874stF4JJwlg2s+bjTSRmN/0WjsnzUazn62WhWs0dh39pPVaj/XEpJGY79YrfbHq9X1auVc0RR+gkv+u3Au4YohGUwT54xd8j8w5aFwzvw7Q4Ul3JbDsqG9azTMUJg0ca7ZnNp7JcBUj2+58xy5MNOFucmOnOslf4ZJyc7G1pBXvGtlZkwMr+bCqFrD2uotWKxNq6pqTfeGrbNGwylOrMRrRGUWOzdUF1nElmVuUB/1WjgTuAQHybg2tiXIkkbrxjpDggVwR/Drk3n9MdYmE1faUrYypz2vzWkZg4l1jhU1D/BK/L3tLyhUiZbEMWC7rH9TrQqvKWnuz1NpW9fSzuNxCfvOBtsia/5Vr/Z1SbTktjwBq+j2eVYeV9DIyJH8leZqKqlV5nWhMB1IQNYdsE7n0ubOCrbJrSVegfNCNdfpm7koz7Zhs+KPka0WFpyVPQdkLi58m2SRXaGdiczHbUNnPUmPf5JI7fA+MGRql1/CLkJVE57EolMWEaqRbgQWVVvupmRTi1hNSmI137G8L5HreZiqX2ej8/gMsoW6Wiga1TnKJhAVT+E7XGxTrzRxcK0kJxe4pi5oyZ2ZJad9KWa05Mzn7zi1y1qmMCeiNyf8FOwCV/UFkirh7wAYzDeh/Y+j2J7q+LwiYkheLpAqXcB0s1YLYNuUKU2cyWp1jodHcxjQkPknanWh5TSbEkBty29bBgQw4/vhhnHWohLwFFzAmKs16y193SEiWWsGcrUqKksEbb51VR4ExPaBNkTvCOKWnwhbZKbunhHUhhPBllRwhuY+N44WTGiJxHKdpHI0m93czp2SVyib7SKf/hgFLemGl0Gu2SJamvaXFopagu0OjkdyLGY0KDLMYTAph7vV99xyhhi5ldIXZH90Mms0bhwWF459TBC7qq/MjxB5BUwZ4F9EUmwEJqzmmG4chsOGhBdCvU/nIlsomqGxOQx+wa2xLZr2KR1J10yM8jJ/QhKZC1BwzhBpRIUuaDGFNj9iNBF5bReFVd84t3purhazWbl/SpoXaZQuitars4nJAr1z5toBq8Jme9ZSp2LzLCZvMlKjg9LaSPnj0aIQqO7UE35LO2CcwySTAkXDspehl8QsK4TDYmEfywy80R4S6zGwX+OJ5IKti0aDuB3cbk8Nc2OIyKnetul8e6F37jRxHNydE9ZojGvyovfl0819GWnNaF8DtN4bQralnNDndO1TcodBfm1OkexWYp+0DeCVc0vrAwk74pb2MHubZ1ciVzeOgIOSbB7A7blQMXZd2vLih5WEB0WDYssauyZ3e3Oid9u2XTZaiC2R0DNLFM0qpZxqNPKTPE5XqxwSLv2K+J0cVI/ExcfvNKkrCLEKs6yTbfK4r1ar/XS1yjhPK6QqDDpRbtNFWkOF1b/fN2RSpWhO7KWyUIgbWbJ3s+3Y8p+sChs9pUbPfL21Pnr5TlyVf4urgvlX6ZV4P82zxfl0Q872x9YBV/lL48OI3UZ/Ruw25DuHYYTFiN0IcvI165XaFUk9vumViK5T83IcCDkfx1jnN8PqneVidLkuU7E/uNsSXBDfy7nckleXvdDlhE8WiyQ0pI1uTUoEpLV/X8xAbqNcDkRriRqX68Osu494lER6A38JfkAjOIAX9fnywJwhX/6YPZN3WKy93Kj0UMw6fn9zRXRKY3fSy3zaOIuPqZo6LwQ7SfgnEW+kHqRSt46GDQl/jA4Wfs0wofoEF0plOD0m9E+oMzDaYqBg9oMdjMhzpRAqrD3M3rQsJrgSLOVwm8qSeyvWtE8u7rZSkhlUG9UNSWvD3RiWW6mgQFjJ+5xfNxp2xr79eZOofrnjjXhbs7Nizcc9exDWJ9geUO8Odc13UtfRxtqcbS7V8eYr6gxKhv/rDzHqjrcU+UqVKz6942YptL48Nf4wPdFPe6xiAhUapGRceGmvlOr1sxNHa8ly+1iUabkmGtdY6Zjq8ozFZRHMlLqVch6UX0zTBFWlJeXNPS5ArqWfFr+mkpY/azREn4d0sEWzvg6DO6dMCZk27VeVj13uVqdEsjxjWYU8qVOjJkqSEJnLbxVLuyX3YzU40cJfQ3kPXZ1Y6S2aU6Nqy2dRohqLFOU4gVjJr4JHmic3pjej6/R8pLKczLerN386yifLUS4eZXK8yHMhxzeNhvOr4H+bpaJeuo9vDHcAv5VsAnbhTwH3kBZsaTCfikrEARl1Ua+D7EqbUScwzmSSnqM9gdBGHfrU1mjsoK37D4Q/HRU0g+iuuQHZ27vHwR+dQ7nq1Xowuc9PK6OlfJ+fbrIhNU84EeO9eTZZzNBQ8oHQrr3wHzSrhc96XFp7ihJpimVgRg2JT+18ePecQXFXfkWO/TvEWsWu86POvOtgia2UHC7ynaZ1RvDfdbDWzI6tfd8v9bj7oXai5O9LuWkPnSSlQZL3JZwkKxFeUj5F23ZOh0vaNA0Xh/zBflCqdtHzol4N1ZomkFUb2vYetgNw8U4IwTuk2NWGTfBCGvGKZtkhd+ckPa+37+os/XMFdgOThme2yttpej79OFIifzXKL+NwDTMuqt1ytfoxb2dOLQtkHd9oIN8TJJoSyiFCEB9ggQMwh57nk/ieWDNcps494YbsX9J/9eDPL6cPfn3y5fnr90+ePnnX23GqSSu2sWefZyBFImfYrPUaxqyHHgAlx6e7Pi+7bhivUtppCwVoBIoL1vutGoZiUI3iowDdH/GfjMTYFeXUM9CweimcBOVvf2rC9QCZukeZVHk2m4m8Z+3Qs3i55n+Knq5ktsXxbrxiTV8Fas77uT8ffUMkKMUr0Gkx5qB8TxfJnAyqBuAqF9dCqkcIwng/KN+pW/F+sDbs5V5mc88VY7vNT0wtpmFiC7SukNxV0PwLfUiKxUzFP1d2vXWKtjk/daKsV/QEbzT2Mx/tycXEWlc7B1CuKaWdjqodQ6jt44syWwPRp0pdhtWXsRocyRVIK1QCanPrWAn7vIz5YCWe6G1YsliyMtrCxBEwMJUOyx6iUEUvfHzq1U/Xo9xWu+FASkHCB3kps6XcI/X4ASvHY/A3VlCo0fgSjQayCS408iHKbMgnQKIG2hdhzP+jouseyijHRlihHZQKH/+UKyguSlEICpWcW+pnPF6z9WgyeYJY+DItlJAidw5MxgNwbvFwEot1veUSSilrXUrYph2Cdv00cQ6ISqNHd6PxVDuecf5R1NKLN3oDkaz3Bo19ZkLhWRSEU9IjTVOysmq2xlpH40uss67mt6qa3zarYWvF+V+i0fizPNBZuG3QkKChiSedOA/WNM+3VpQgqTbCBOXKjgyUqjuhfTKlQw4lysQcKhSYMEJqzc9n2dlo9h5PaCNFrmHhIYRdCKALh3AEHQgDaEMYQgs9yJoQNiGCsAUhhO0hzDRlkwqdQRZGJEsvS+LYbTPV0tVmaVhaAQGGrejGLdYr0wIINWJP7xQPS7eD6Wb5VhzpIpOq+UEAIWBnW9AB4/mmXd6g1YVOC446EEZdCI8ijGMAzW4LMNzBYacLYRC1IGw3OxAFrS40g8MIWsFRBzphqwVdLBJGUbcLYQeLRa32YWfI4GpX423owCF2IKA+tKgbAfYk6lJnAuxPu4Nd6gbUK8yHPesEundRC4KhLfhUtlxJh9xIDSvU0/5HG0IcqU60vgzNp/45qgtKpbaKW1qhHHI3ZWV1JVHboHwu9guP9UI5CdjSmbkqhW3BPpeo8Ptv9JP5STqbYdwcUK4td7usg/7cFiKeKRjjzjDCnxn+LChxiY9T/JngD663A1BxAGkcwA0mzUWs/fqtveFMVZYNexI9QZQ5E91eInuwqCDD4AzFXtdInC7jAM6pkTiAUxHbFV6rOtCThe534oDwyJhWk/sVpPjHDTfXR9rfCJBQc6sGLxVb4yo5V3/rS/NdlM40F6L0pnkrOHrVn/6gZGXeg3m/VeW/lsU/CC710wPBc/30SPB0va7R+rvt8/ebGngUkUD0o5OjOPLEcLU6OLAsTMw86D34SvDvtXDMkUynHXyfpWd6B9w7cJV7sOccuNI9YAfryhSwtgfZmFn0qgyqqCwlgJUBMIVkCVdhQwLantSxMHLLPsTUJ/wvGK7mnXBdCjhW2YiY75SPnCMZ6DJlLCwLpx+oDd8dci2SkJLsoN1Q5Pn6XLjCfyJqD+4vAp36MGsK+s3FcApl9WVaNOS4zp4Ilzch5akXNqhaEP4rMcjQ8Mf9Q7nh0P+E7qKoKBy8U07KqoQnAr383lsGMI82gEmjI6Hrrj7mQ/R2oifsX/UcDbms+kV9kX/T4hcbfYR/JrxnFrDfqQ1jnU5fnCRyIIZxgo6pHVe7elrWQc+tZfleuYegFzvk3MG/zAsh5YkyoS0c5b7GOFG/vFYYUC08Pu667yvK4Ps+kY2wzYCoxGsRtyJ4iBThWUlj4HcRN6PDziH8gSTjIxKPv5CLeSHiFF5qypgrB/N0GXytEiSDX5H9+lIRT5PlDdb/m661C+/w7U/8uYc/T/FHILmTRPNUjJ6V+JjgT4E/Y/yZ4c8Cf5b4M8WfG/y5xJ8z/LnGn3P8OcWf74o6kionuv9RobHWhSq7Vqa8VWX3v9L7E+zOe/z5ppA4P8fHD1jbA/x5pOIufFHlUDDpOf48wZ9XeuBj5bxU5abA/PnoirSBzu0nrOsT5cSfxyoOUFv0uCoW3f8LO/HzRd+ruuiL/6zoaxW/QvXrQ/P3mf5rbQhP/nsbAmT8E5q9Zf4nxXPI/MeKp2UQnIztIHyfrP1yV6+t0HN1TtpSzpUzGJIi7lQ5ZNI7U9ozl1m063E5IJL/xwpmpbOQ1rfqoSaKjq6+74sySMVYOTZw62AdWkSpMGSaHKih65ZiHV2ossEpS0K6qz7INqh7iHHNjFcrz1yJgW7QcxXIKTzrbZp5CtvMs9wzMByI4WzQPpSnAzl03RLmt+a4ZIYv1qTKMla5OeLSpolt2SB2M6sbzOo4A3KQDVerAL2g9VMvH6S4zYiTt8h7CRYHUCZt8QK55gXeK96F14o34aHiUbsLzxR/iNTMDeF3fIQ/ML0DHxXHTcCNjuAvxZsBvFA8PIKXius1DV8VD9vwq879RnEvhN8UHxxIgTrslHBhlN8cAAbWEqP5npCTAzg4gIMkRY9MOqfWH80rnveql1QWiyRJx6mQam8u5hlVpznFKhMGu1D8WjlLxeAePU0Vg6cVdx4esd5TNQg7Qx4BPhwOeZMeukN+SOcIIflj5Ti1iVqJP1G3uwMf6WjS7HMdPwbRgHetr2GrhV7AG9+PrO9Ru9OLMBaT9f3Q/t4NelH3cKt+y5sIdd/UY9PLZmA62UazLsmRpKD2gJ4Uxvy0/JhK4rJp+yts299brU9Ba98T3P0G+TAOkedA1iD1wl7WR5yXPGPrqN01L1G7y6yFiUyxG256E8s+1wH0fkjl3DKkAjp06MYlNp4Q1SNPtz5PGo3Ezbywz1N2m2PsPWm0rmtbE3S3AS+sm8i3m8ioCTen8WEUoZTX9JNaqasBlAdfKfhTMUikTdfM0NthREEN64ZteCNHYmKaIjuU9+UJth0jgK2MiChSx2itiE7e7x/2lGZiZD9qt0+idjuWbEizY4X7iNqHvXYYGQ424BQ1DD3fTAQxL7R8hdbM+d9CkP/bGGEJ8CcK7qHLX7VVFdKyBqkiX6rVqnqWpUVEaFBbc+AC918dtlbzzuXe0pP9oFfR634kmieRaMayJz0uepPsNue5qwaZ6w4xihlP3XwVrJfTdCYczxOsl/8Lm4hCSM1D6byUYnCAVY5m6QGR8rH834igXMdO/kyxk00E5bH8r4RQ1hM6llUEZXy0QijrWk0M5etRPhhJmElYSFhKmEqYSLiScCOHfCzrWZuj8UpQW/FYYV3reSP0qz0dDCKv/i1or0VrJkk8SIoOcnVMhD4GQ663gBlGUtSSCfW3cZQpSkK3BHD+WdQhk1MTRdlOMlGUc35TBsr5fKXj7JjoHBP9VgbumJZBePTrUpahlBfSjqU8kxvBlEdyZzRlveByCljaxUwUTjn/jBEcWOkO4dRuDJ8N0tUSF4kcXtjBM9mpOHHoaCv8K7QmvKID3angARr4nAoKUu18s3P0+7xLeTxuO1icUa1UpntSVakrCRoNu4oPCkPvURVh43CzWUvUUq1uqiPsePLEwax6DePjCkMy+qeCweYYKMKRh1+qs/EpxuXwwg6Lf1iHyWSN6ZzGtM1KvtrgJumoq/CoaxHdMuvjrayPf5z1vdrM+l5VWamJX/VbCMK/hybqTynqCB6thS+UDbhTueUGicj7XWE0D/NXvwv/ufK8IVzo/OFGiOnv8m4kTd2hY3OyX63KwXCT0mggH33M84G0zuYXclMYQm3TEUgeH+uNtZceo7QBNfQYaxgfvmvz/O86GIl5wr8XijUaqevCPmXJNz8xjBT63biT6nTJU0iPj3nYK79YYp+30pJ8kOc0RoH9LpBJ9y+E/01AoZ8eoFbFMALYRQ19xV8qiqVcmJBLwT7PNDQQWb+rgeti7iEfk3jkgjoQsJgyPVblvhP1MVePpXyjUNQfn7juGDVlg7Sa/wscF7V/T3geJCia9Z8KjyeY6bEqw6C9FXwMspZ7YJ2/RAx37bAnPY/R1GToPp3yArc3yU/LJMg3scbzcLhayGO95lXPzLDdbJDj36qfjhn1Mf3Nhyfmb2zSmYvRS+XQf6U4lX2FR+ASU3GmTTdDZnZaHEefR6y30ZOyt5uckJ5TIBNyPbMjjpCBWTXBC/30FZb64YOAqX56hP5JeoaQQ/iq+jyjE53w3+IZrjTFGZj19EQN9aTSfvFEuWHvpTKIUSN+xseDsR4o5sbh99G0LONTmLguA/r4WPEMRn0K5G2aw+hvPIC8j75QTsIXg9xbDjHqybiC+T3h8uK+k7kJg5lBDEqZ6UrdhGln32CfT9jtJLvVo0MeF7UzuqUeyzyvZ148D/STGw5dHumXKSZPPB6ZOZn0zREr41M8VWe9zPOIrcirSoN9nlco7nlyiONDVn2s8XYfo+45egxO5plUdn+sMQxMAs8Y5J5HRpGk+becB4yrLgWRQ2D1dA9CmjvNiSc8ceUgN+ICxDieUDYdItwwtCWvpZvErutw79gTxd8qJyNRBsagwH5kQEiFI7WdDjdJH/XLC0kAEGC1UPAAxvwQRiZOWcCRF3bGPGx2YcSbFK8NZbmPld6ySMZdHSpSHYaXJLFYneO6RZ+PV6t0n6OltzPqFye0lRAAXV7EwT5PT5yUQG19QSntezpl0xuLi34Y6KJhV6fF+u3Q5MeuZzxFlV5yYvU4Tk1CR786Zny2jOnDNlwQKlkFFUTygh/CmLcQJ8lljeof82Z9/hhpSIwo/C1ZBmVUx8gAw3WTPgb8y/d5RpzmuJ+wSXZLfAWNBdeMqh4fq5K+BPvc8xKjuUekPXHyfULUvylLgRmhzkCgVPUzZqGvideEiLE4QQhbNRKcVf1sFQhDOESHISvzoZX5cKv2Jh6SOJ5Pcpye7MQCX5ybhI5+dQygbZnmA1lriXjANMQCN4cmA2LzNLslzd9/43UCZF+Huk7/C3bxHVaQYhbSpXCLs3h0d1EgeTb3EaDfwRPB6KhFbrr+NzUohmjW6NTvbjhkGGQNaQm9R0MoUPEQYIQ2zTnqpar/PlYsdjKeYaR/MJ+zUk2irBeaSP4nkisMeICLMfX4Fb1TOQytQuQHMv4O5XI6GWV7WBP91ZXcsyvJPT6pK8mxkhLbimMacc90i/g8ZR4eGx3gF8kHt7+r+I2EP1DS+xF//sKfFyjzBfz2G31r4bcWfuvit9adb238FnbwY/fOxw5+bEb4sRnpr39uVauLhh37axe/hj8sbH1GVfkL+nMnQzOyMkTtjQaaEVURdTELyj2xjiBq3c2DH+s8aAewHtZnz3fSVizdF54j+q2ToziwiNPzLfbZceiE8EJ8lqwh/L/E1nHqiSw1h1PFn+sVOsWluRgo1yFF05AZk0fhvxQD1RD+7xil1P+KqsapGtYKtjIFzZMsmb85W9HXjyj74QGget7/inHdHJ3I7uO7//DT+yenX94+efflycsnr568fm+N7ZWsrWslcXhnwgQtxzp6CsUfyvOIf/lKgbTNX5JyBbH0cpM/38z80mR+uZnZ0itYBwotPhL+qFItpv2cRHY5wyWcngR4TBsJj6dwg6acFLEEITumsEghcipz4T8UJ8JPOQqC/BSMlGrnmd+VZPnN4qgqSrxGyuc/X5hRB1xiT2f0N7WA+34XcCeZjlUv/C/KQ8NTT/iJwkHKRoMYrkSZh0KdSJ7HXkjfJLFdCbItLmlLGw2H6OsCkPNfQA65p+mr8kglnJi/mfkrMdpVQmyLLxW1xIAwAKRrII1hFPyRYCRtI5s5jhPlXwpqA8u42DNNyQvlcqX/UvX8taoYJWweE80BaYpJC40TO9YFSi8xN3Vux3dcNhRKfed6gY2Fooh7kYoAZnetx3rr6shQqONnCOn9aszaC+jyGKemmjdeDRlDURzLE1oaX5QnQfV/VxR77HfF9OpbAAVgEf4ll65CYcflsXRNLnzwhH8JOA00+ZeUXr5UdVAeqsXlyt6HX0tjRInKOs4rA+qguqBjXi4g9CtT/qXYx0vJWtE+V/5r0Wi0D8unzlH5dNgsn47C8ikMqsQwrB47nY5+tBzwpGUGgVGjjRWEtoiwvOnstaA7SlJ2kj2hMxSZ2BKb0Bf+VBjITAUDw2prXEekWGJQli/486c29PWX6G1D7xofJ+bvVHiU/o7+4hrz3wly2kELXv+NsJnQ3+WGBQl2UfrPRKOBv/5LtZM8YEdqK6o3wjXN4R1I+q/t3rYpXNBtpIlD87paqX4b762o5J9kJONFhJf7OPbVirB1JBqNfSR/q1Wn0+E8p8lp7fOdJWlRT8Xmp7aO78RzP1WAPwiefZ777zSC0XTBVlHK90ZBsC7DWlAG7M476Sh2zN9JR7JdXdHtWb01A9mVqxVVmfCB6DK+8zBsMii/1sjUdZ3cvxZe9/i4hUygplq5f4kygdUq6uf+jToJ4o5+CGPqxI06ieImyBWG6e3owRNtlCu8GAspYjP05L+aITxE7yrJrDyUIvwUxYpMfzeKBF9vCikPoewzGGAa8N4BZpo47UMzKKJAhGMBLaQcmqF5CJtH5qmLjmbPBKMXBx/9rziugLn67SWODd80naC0XxEErc20N5jW3Uz7DdPwNh3dFq5jSv9TmRTzVlk5badqafWdZC21NslH1QxsT1MrDrZbvodraTGb7ZcD0QJoK8fTjb49rfumAXVn7eZIPWgyMMMDlM/QZHWOqoAtVF3ZlX/6+5PDYT+LErRWjko8x6OspkM2ECrdBNJMyR2NfyU4PByWliRiBlf2c/830Ss5LXzx8AO2dIOOcwYgYGonsCCPg4mUHQx5pC/I6fzDEEjo5fF0/ePqpa7e5XKjch6sCU6HTVwah807cDC4Wz1UETxLikAj04wW9Z8GoG8Ekfqc+g+dlzxYq3KNDGjE7lDPoy0UUKxXVmh3/CjEjh+Fuzv+m6oe/lc7/ttPdVz3OAwI1mHwA2C/VKzskxsRKjUazmZX7valWqNIFHUfiGSWdKMidGuq+qeJpdk6aDPM/ULRgzLcSb01SB6YZflG0vBj2jku1cmWanzf6Bx6pTU2MnuNhvO+3gMLxcqPlnZSa6SJZI+1jPeR1jotBsg0DjWHbNh21y0lHIq/RNjvh3oPpkVd1arWukKJFbas5nSZgJ2cNDWf+kT8VHWlvpscxxWLmzuBoKXiNhyIQeYP9cRrUJRJtDFbcKihxrZBgonIeqNsMSGLLyfVR4OQ+J8Fyl9yzl03bTQ2/zJ2m2nm+6HCNWGwd3fmn/+b9VM8aYzROMpzMi+lMxwynYXeJcZKD6UcxfFrhfH+/3ZqSYmYKDA/Y1zLZPMb0pv3WpkCnD5SofIR4cT+38CNL3KAC2bo/64JBunVI473qjXRdqJkxDqdDi0MuVpFlk2FYRcpF61XprcyfX7FP0qHkCXJVoTSQy0rk6WQyzyhvKw8GOQsbusDwANiwyjyKO68TfIDcj5JR59ccz2ByKHRfp7pPwgsjKG0ydHeJSxltL99jgwQsp394MSJNAd64vwTMbNSNhggnbTB/OhaZqLKMRN36pmJuxXN6suXUfZb86CV2coOVlQPWw+HoPNQcA9/KxqL7B6Lw/qU8rE8ZdKxxEDKi6wzJt3u9lrUoYkXfKZA+S8FX+Dfr+bvF6HTvyn997uJk6P0NaAXJvmt0tkrPTpag9SqcnqrtOH09kyUN5Mr/w0Zj+CBDv88xz9hiOh64jVjSyz317ZmFy04tOl9gioG4c9Q/yL8awVjSuyTmOWEyBU9ohsKibbIx/Z31BTieX1JBAOmfNl/qE4eYnDDCV+gcPcK/6C6+oYe8FopmOvHYS/po0SIdNx91F5C0V+SZmPJKimRgsVAuslwn89XK3r08G6HG3oZ7vOJTsW0KzbOpErlQpj4CZEm53SFHjaZDjnHzOmwx1LX1c7TKeT9xBD8d3gKTHiOCsXCSIB2dLwUoTiKjwaqMRuy/pgOdJ5XX+Gb9Jcnyzipwf/CgN/ZUCWY/acU+Av/RpllR0IZTZHxwbLJA8lbwVGzE7VarUMjfAx6zdAYWKJLBw/xJBXihbrELZQWGZt7lvlypI0Xytcw2Hpv2iVD02Az6v2hjF2UVZfazFs2R6bCDN5qoRbuBubxoUJtbT02qv2b/vZK5/XfIqXQSY91GUoyNTxTKDl5oTwygG4a0eF7NRihvQjpKpXnWRcDojI1bLnN+2RNDUqbMeMyuCfcpnvY7zdpNTyt3pxM3yFGk4LWFk7GE8bijCdcum3I+ly6rUZDndiKIhYnpFnSxF4rix5pcg+5rLRXLf3FsW9AIfwlUGgdiBe1D6Fd7hZeWD3nXgtaJqKxsYOqVWIj1PSQ5q/Jeh8qmKL8HT5U8JReqKMqGFi7YQliN4QCIfTImo7HOI3nmqY2Gmdmj6plox5KW0GR0JXRryYvz7QM1ZIFvZQbIcX18qBDfCWGnYoTOsjHuOmR2uer1FrfWoHx62Y1qi9OhB0C/c0OexYsgwdANIM6o7sjAiJ8JAWtSM9XSSTyVLitCLHAdOkYr8pOyw56KbFx5cBlP3dNPWSwV70xkGSDK3nKQFuTaok37rd0xzx6XO9bBZghQAlv0UYvef0RwQSEa4YdSBhUflpeS9uklK9Nsk7sWinRkP/bzhHiO2YpZwnosnTqZc4lAxI9Xhrp4yUJIPWEZxRhxaS5JGTXYCkfJyY1U/hXeihlx2prmfpmtdKqTda1ybo2WR3jOE+IQyu8cu6gIEqOCsQzwYxcOVHHnKKzkj4Av8CG2oBStC4AjY4E8eqilKHf1Riwsrhhdi+NIuYSVSFeocOTIn9bUAUuoltBrZA6QGvRb8lGreYpdGFSkFid01Urg6ZYKze9NZ1ZVyusvhMD5femy5dGx5Gg6dUHdJVoslgfFlv0Wys89AEFXzNchYThBnxgsvQpXkWmaNvWyqKshOh/DtzUrceyC8hpv15IaaWiwJgZzrZCBtIS5GkN8tQCOSHVXbBsLO+0IgspfCV72KoStrHGnbzPs9XKyWlHwO0guAPLtM9zRsv9V6lDLJXL2M6FS7peylp7klikE5dAuSSZsWrDWcQJjTZUtL9tCdY3j/RG17N9kn32UwdZuXGKdSR/ojtLk6S9hQg28piXWjk60/2l5Sv6dHn8WrH874+QleTRoNw7c5DM9UHSwN+k3j1Q0gn2VK1WNLTXit05Y0Klg6Pmd6nhqEw4rJboWHke7gel/MIau20ZgxnxTI2ZSJbzn51liUShfo847Rif/mdPtxWa/Pl/CU3waFFOxQKfzDRyGmuJRDO0+j1Vf49P0O5TTfo8jfwYTvlY8UrIQljSR0OHqizZHOhuHL82BfDiI6X1DUsj3dtEUNK35o0GcSYBK4VYBmlrHqWCi9YKYXVklGrl3rhssVSneq9Vz+D6ggJvb+J66FXpG9g+Q5DRHx4hbqJlLG5xd6C+iaEzZdS7S70USuCbfv4kyq5NFcQY3IWWrp3B/xm0RobwnuTddgRPJZ8o8l4VvC/ogoWcXyk7HJ4XsjoD2hHmfKqLTJEnqd4mOYYo1v6mnRagJsy8ha0ITKCOPOdLVV0l5kWsqijd+QUrzctqOhDCYRNDbAQYLATSqn6MSXIY4U+3jCKSVf6VA/QtRelJl+6OZZBsf2qaD0WOXoN5zmBMT2nOYLSR+ak0WWfbyeiifASto7DdHDJYUHmVM1jSk8wtb6Npvsl6/ys6EbFww05NcCY/yBJ1rZuW8rtKYdqax4JOZUtBx7FCEI++QKvz3F/AiOfoetHHGNg5+kPg44LnvpCw5LmvUCCBzu65ryT6u0/MW07e71c89890oRsUCNPTnGN4aXq85LkvJZzxzHOQpKAi/ppn6KUxFXgeY3DOU1cb5bQZnPIAvvMALngAb/EkHxtL4l7Y7s80gUXHrlLlQYRzT/RGLhqpu+7w+HgGM5fre4slXwxGjenQUOYLXrvBwAgjNlzAzOMXoD9ghBXOL9htQY5YxpdD1vL5sNO4oIpOy29w0UB31wvtzNG72NXF29zPJQ87UWBE/Xtifbe7py4fNRCyFwhWq3Prvxn9z1WtIbEcjBqTn4dENdbv//Nj/f7DsWq6dQoLnnlnSLa+9xelGua7tyBC1r9pNC7L0B7l/dGTVAeQ2VNZtpeM8r0zDMcEVXeOqu7oXVcHEnzLrzyM3YFRm7YDfLiuYAYRxoO3rkv34ZJcbG/z+nS5MzNd+vCWZ973yspB9ufs9i2/cueejtAjuPTmRLT/6z1AmZXoq57rqq3M+uYJgcsIFDZt1z//UafnptPUaw2j+f8BGBFKqX7UK7MUlAX+7k15vNnDPXQruR9upzEdN436T+39rzZV0YtOC9fQDxAVwwDsRFBcqkYNL5nr1CuFDberThOnGeGDqSY8CqtqNpud0f2Ds1/0Ov27xhc/bNxwQud4gL3uZ9r29Buf9fvNXurxb7iEvx0fN2HUoD1ixogxGgs6Ty4FzwDJPD/vpyfnXuq247bnpN45Iwsrft3PTq69zI3ah3HUPkSl2jWqHK74SEfhQT++WeXnepPXSgDLCdTeBflNjpePnoStVicOW63WdiiWwERiyWUcdsJuAImM90MdkqWgx7FEYT3+zPBnQT8UNwqfJmgp/Sv+CLx4Tyn8wQ85BUmhLPhzhT83+HOJ+c5kHcYlQBFk+YpxBeBcloFTcganWEhKjMr4HR8v8OetjJVlzneZb19PiDeTr+ja8JVl7XuWawdZUjEHVe6quOUiiTlDO0enBQguy4Uxry2etQE9o1ad8uZzRs071aXoaFK1EqXmiabwNOe3bwnM32Sc5fBBxkUOD2Q8yuGRjBc5fJFxFMA7iQgBz3HsT2TcPorgExV7hYBZw3dTT4D1JFTPmOqZUT1Lqic80vV0sB4v1BW1qKKAKgqtKFQXVjwr7UagUWoMI5jBApYwhQmYi6XgDK7hHOiaFngL3+BDFWOiw+CB/fKIFyff8/hUGzuPMWJEu8/HvbHrsg+Dcen4pV1QtAfKh4EajIYY3QS/LHnqP5aw4GG7t+jzkM6UHwaLYW+B0vk0cZb9RaPhLPmCBMCLkuF/5L+SJ84pv86dEFfVY/Sx5qf6KcQnrJiHELC4DEvAw96iPzNNzIa9mesaNxnSMC35jMEVD2HMQ2scaeJcoVskXHkcxwRB/6rU/oXYwytSIeLJb7UK9/mC1V+x8gcDMkM3leo6HwzGGBTqwWA8dLHOO1BC2dFghIEMssGDEmJDPmK9YpmayIrjEbrdxBf8Lc/gG3/kfzG8XY++hPEFf+R/wx3pkf9BUo53ZY6JSEYYqxSzPNBZHukszyXS4zkP6CKZMZ/Bd57gHE056u8CuEYnpBuMBrWEc37jhWRl3mg4j/xP8uSmz+/J+KZ/TzLSgtsfHvlP8BP+YZuKI2TjTvnb3MnwFmmYgDCo98h/K/GerfD4eOxN4AwfpjDjZ3jGPfP4pWE8nHm/P2HuWY/m/7srhvy0Pume6Wk21YS9eeOyxy4pwplWUl2eOPMGv/RCmLv8ksU0fNdFjPM8nCDtGIX4ZyCMsWlwVtbkMIXoM2+cs32MuWwc1CaNhjPhSwbfXd3rKcchXNFLb9GfupiDkGrqToZwhZ6BbOq6QOhGJmim5H8PwNd83jjXCwMn0r0e8svcmcISvnuYwNbGfGhOfoi0psbehKEz37xnxrNP4zFjpJEhcixt5NAFmVmN3109J7gUdwF+N9TLYzx1lN/oRbwES1/99g4pg7EmZiME2fgEtY3HRYx/3PC4YCN+ljtodJeDqK+3rLL2dVZU7WJaoxFi3MnS9WKghniq61ElCblJe9qV17BgOp+uiiryih9m3hthfBpS717mzlGHtiDmSC+v9JAj2ki+WbwAfMj57Xui6q+rnbTdaqFRQ/wth2f4u4YHP5PLupgxr2NGG8t4pzQunwvYdzYM5ZX/lixVkCHrKz+XmJTLPvFabLXarzN0g60MYciYbez9pW4ZHV7lyYM8/pCD5LePZRys9dWm722vN+ObitGIWv0cHdfP5CBHcmgCU+g4M1b6kUnvBpvph2V6d7se5b+WVgQtfAXlP5Q8g5QfmSvosYfZGgp6SNcYPVj3GWu9yB3kDs8kYAxVREvhX0sYo68r6Q1oneCd5o9RbXUq+RifcFzNaLM77V7K2z3tu0mZZmXTC9N0T+K6GMFF7kS60WZEGzm1KU2byn8meWakTiN8f49mfWuMNs5xdCB8JfkR/lEcc4Pwc8Xbun/YBqHju1zHx6yusqCLMO0bBvUtDwevMSjWPMsxAOrVQh0wOxLm8/yOyhXMjWW7eJAylk6LuADC19XKmPuTlf+2sbwX9Ypq10LxDwa6nCnUgkOGD4nxN58LIExGt4ecIqiUp42IwYWDl5wUsORjuMRjYX1ljtl5MbfZfAnfY30Cl2g8dFtXVYtZHhCrFDUk2ew3252wzfmI3VKha+13cS04xlGU/kwaK3d6PHXwD4wYfHMwSVfeDevKtSsG/fF/lxyV+Pto4YG9Wa0c55HTRU4Vzz7ohcL+1QzrI9w4y3MxVntTujFojy7aPiibqY5R2Ex3nz9yWqwsujBhuMd3rpLaXfyL02IwpyrcLmwNfM5g3g/bq9W8j+/bJ8xlKifZ0lwKe6dy6Y8ohuUcLyTW2oaUE+wKA8Zc8nYYNUYnCLmjmKYewbnBKyFQ42quqKoRdPe1Ly2+/peH3j5stlq6iq0aDNST2ei82CuE2jm6ena/Kjw4dhshw5DOVGOj0TJY5Wyiyxa+RPUoo/iBQ34cVs1/Kj76caXff1Bps660GZdwqyv9QwdIHVGif093/j/veqtupUWurFT6pJqoJU6U3e7Tvx3MZjMstkv+inZ3VtPtuul2TGbgpvVGw5lybBqm/YJeCgZTU43xi0J3DHr4iNnn3PTNw2LsuPpyo8q2YU40cfrjvs+l7rx1bU8KqTtlMGUMCo9PUXs+JaB4fKqhU/GB13gJNYIrqEfYqUfYwRFiYHCDqpqoFXbpKQ+Q655zjL04RXmRNd6/0BXTX8rj6k0P7I0aYDJua/NS9zRvNIq+vkv2vzvWudVBzWPZM/qGZvTOsA/rYR/isFEp+F8c9ouNYb+ohv3b/81h/1YO24y3W4+3G1ut03D1Qiq7MdovXWawHxXRKzeIfLw3T4s5hqPeQa2+OWyDYr1E18Wx7PePGiGUO1TIahI9r0m0Jeyre3tkiFVV4Dx3tvbCo6DKfkRb8b70i8r0+q3DIOrt2hJ0e1VRIv5tMrfqWMpInP8qTxTTfptIdvuu7kEUdMzwDX/wwGnix0Ty/f1HKJz4gj+PnIhVR/aqB83NAzvulDn6fFYZjsDuzhcnYnC9uXVFdW0dO70Zb26jZ3h7yB7ewGDP3Bqr3AL7URM7gkPU0DcIMWL7HJmIftj5rM2qt3fqQmW5KFvSktli96ZIK9JUuzmdLfgh/Fv1SGvSfESkuSTHhNE2UUYTXGfKxyQ8mtrV3igH+U9Dc+ulNcanxKKj1Vb8Ayw96hjGoYXDmEj+yGkzlPrCF4dYuiuTFJYJU6k5oRYQX4SF+lG3s1rtSzpHYZF+MzDgxbSTA9QDzUfyxsD1IN5O2cvyWhhf3MzPslmxk6O4sWnhUU0Ljw5jHTnPv0FyNpU9ZlD5TKLRKKa77nDIH2HqF8eEmOmFR3381GN3MgY96V/iOeJcAt4HyCWeMzANJB48DumMo880mLqGM/Os5BqeWyfCS35BZ3g86YRHsIAzkHjSeQ6STjrUzgKPSlTxGT7d0amhkqBEyx/yW5vQqSnnUXcDOhPp4iwZ6UjviuP4Bo8cbJ4Nwbmq/RRQr/hB36UZdvpmMV0x9sXOpKFsIGdWxlWv1FlhDMK6oKbakWuXxwmxqyMW+0Zug+AML13S6JKLKzHaBQPkVUxf0Lx9ypsuEi9ASqH3mvDQ6g6yYs2/7QsK03QtBm9Y7DxwDn+iTBi6j5xD/Haog3ERgKb9Cv7/lfFp63/PMwhbwny+1irxKDjSB8M61gMB84xC6g93IpXn4bZYpPIcwz97WeIRDdyJYPWCwKM3rYAn1gr4ZK2AV+UKIPQPNfrj2OEJfNIL4JW9AJ5UC+CT/1irZB/zV/hIoKMFeCkrK5TH7O4a2dSr/XiZ5Ip3qIH3BJqaXaHu1fMDr62xPTTPuVrDM3p+XK/uCN4TrYTX8FCP7Zk9ttd6bLniD80olT2aXWMpqeGPRkFA2bnPbmw7R7GsjQBMahSUvAbS66LPO43GuE+xoW+R5yDjlaWWJmzLGr7TKd1CRkoKfpaGXGlvp8Z++RS1AqbJ0A2/Kmsxy/OGuc4jx7mpa3LpJWox1u/b6djgRrYdrX+xcwB22+V1ij7nX93JUaeAte1fQTkAVklNoqBdT40ZXTPCzwSzO4yila3T+ntMNhriHZj8q+KmDod22mYYa0mMyRnWcx7GUrvZP3DwQR+wXP7IvH2pUnHY5fOF1LxJVWFUVxjF1e6hFM18rn48838z40r9PzrjP5yeLbuBHRMzURWq2LMUtuvMzRqUzbtzM1H/NDemmlZdTctI88Y2KSAGc+mNqc6+YTLxknPlTQF3o0vk2aT8SSOeO2PFKs7FiTP16ApPmCBNFd6UxRNKMK0sa8GDzdluRLmeGsOUbJDoO3KkvxhMhhjkD1x3onUWE5542HuopBj/XFdm12Kx1cQuG05Zcx1LS6QaBcHW6SIK2rtAnA0S3ISpO2MMlbVld1UX7+hT2ENh+CA8oSw9PjbhbZYg/YXEv+WRdllqG7J6l0q8JWDgwupcqY/dCpbk34zCX+tgPpYno5iOnmitwfapzF0pKl3q8CMZqj4bm8TDejiH5XAa9pEcB2Ufyeso1Tihkt1tvCRzP9N8t26+G5c2ETwEa9uLgqP6i9fc+BQG5pPXqvTIpQh+vXmppX0R2rvcnnB9FbAVMena0SZsdBg8E6vVct+4TVNv+tX++VaeUM8pJSaUoEe2WlGAHTPbS7LOJFftrbCnVXyhfSf3F6RGyP2FMflDDw5/USofyDL0mjyFF8xSqWoMzrW/C/7hJiegpSg5WF+S+/oxfixDreOzhxl6gpyohHGiQrtVTMY738qbFCQIBg6G02cnjskTbGag8BrneAcZtkYNxQ6muNz0o+4hdgqzXx5XSZcuF8aQbG9XA5gRcu3nUg8KEzb8N9HUW9QrCw2jPEX2UQyDvpahtQ3uhQF4rVLJu/BIf4PLF+fKBItb/Hglm3A19pLd0frStL4k235kE0+FS4Kbk06L4v9YLNlJGHWrNMP5r1YkbjAZonYHvQ9xwhdkO7Kk30vt56Of0aXgkqPB76VlUkR4V8cFJ0IylyY1LsonKyL5hln0GVq06EvGztCGpIrfA1TJGURbERa//2Txs0GkX80mfTZo6ndty1RW39qq/sLRoScW2vJ6KcgffCrIOLuojLMLPakjLv0rmBH0Le29g6RroW3nloIn2lZuTGELySXQmNeNBC/wPEDSfTSUs6IFO+x2pDV8Vqhcpxbe1teMv8t7hefByARFxSszGJrtYrRsstMNjElxFdK1DGTfE4YHsgKyWjExtSGhYJ7lRvMFv1OtAk0HrVG/c8yHw8YMPx02ZvbVWJbpmVbMn3hRrK0CP+mrODrwKt91RyEPO6D4p9zcUfhSYjhnfUmhtO6/0LeNmHsgBLQYRdo2RbSXQRnWkbE1OrxRnbVNbpm1uuZF9VE36nmlZaLJgFdF0X6mM/arWHx7ZQ3FFZ3XTBh96/ImSffE5mImRgVdaL3Z5rEZVaOx0W2xoWJ+bNkWYJ2vcqcZwaecrt5azGZ1TlRalzYIb6SjL674TZrL07XrEf5auFQo5wCvJN9LRulMTOK9A1cy65pM24QxpQHkN7fKr0dUXXZujTpTzi1d3+uw2zWo8oZbFE2yW33de+6YC94LPPAKDd8/pX016rgMjz8+zsrbEcprBMysl+neGMxFeiObIRrD2M01+1fgShxBgSsxgAJX4qisFN+qm19yrvxfEXYZeozhaAtc2TkUuLKx6BT3PFO0jGV6D91eA0buGqZLhdmox/2g3Cr3Q7QIeSrj3HbWGTMw4IzpEiuxWjmC72OAixLMOcYZ72WYmFSXqkvi6rRhD8KO71tRijDS99Y0X+XZWKC9A10rvHfgYvjSVI5ms5vbbLVK8ZqxdTkPhj91OV6Jnsz0hXTkK44sXT1RW7OZ6Nksrd/MMtIAzUuAJghQCYkGaIIAlTsAmqC3f1F98hID0GIDoCkBVNoALf4ZoJIAmmNiVgE0rQFaS8nuwpFgln4f6fvHdwAzR2CiAZrGb+GL3EnKJVjQEiy26hRyYq3AAqPKW6Fl882r/H60vKpLVlU1JOE/rURjrO6hqADBqullt9gokufXu6nywUQks5ESB7XpdtnF3V8Pzr+nVwd46XMzjMvvXj5aUpoXtuMQQ9qrRuNALuZnIsebuW+ukK1Gfu1azE7MXzR2NQB4nDu3byRNrH3nG14kXIe9mAtOl4IC3bgGv8lYYHbimHkXcnSRSfl7DAhThSVJtHXivmV5Q556eCI5AIzLqyO7YjSkfk5rAW1vvLDdz+siOfdyzX3m/bBNFzVEkHs87GhZeT9drdL+0WrV3ceISt1+vlrlZCcS9NE4DT8F/Wy1yvqt1arL8QaIEOP5Vy3oNCfnRyUBpaGWgy/Q/X2OfEbhX+LtvgUGcWpFUGA0oAQKK55OgYYqSNk0q4+vUPi/C44pXgiF/4fgqXsIhf/R5PgDc/yFOT7qHC8EdzC5ulQVivqkEd0viNUuMFqQsbAuU75aKR8p5ZLI66/UUup2oMCYQqXB1H38grl+E1y/YEONBlaNv1/p94s4cQoMQYSPNU0oyz7Hjr8Rrin+XvDmffqIFkaFf4MxcQr/Ei/fKPxHikuwboezArcYWFPMJGRr6BpLjhw+2epolEEuPQJje6gwwp8JXYRhjAAtCukkrihKk6IoTRhoiUcczdjESfsQb57Fo0GZQprlWOt7FQaz8iLdQULUVxTXoIqr1OcvFbMdkF6WIWxM8Bp996jx/n4l7AtM72TXfAkWMKHSHlNjj+vGzMWsdg06qarl8Z1GH99p9E6ROw2/V/rqCqvhF3cbfmHXQpcpbTT8Xt1teKuI3TBGi+HmElWKDVNeoyrhT7x00w3ho4Kv2vv7oZX1cZU1l3AP71v9q8r3zMr3Xm3czPoUc75QeO3DxvVY+vasQMekWTMHY65RSJpq9QeaSiFOYEgLjveUngn4ZDzcTxX/IgeCwr59pFAbVsIfmHBtJfyFCedWwgsdzY46kpUR/+iPrBytyf3deFsvq0gEdKj256IMQYRXT5jgclBeCe61GFA4MvBajMVeiw7iOXRBQheZq3sy/kOCyOOPcs3WtN31iG9e5qkanc2QjSgf9XkhF6OJ+VA++lfplXg/zbPF+dTBnRV3wIf/sOOVbLWzkVhRhn/e6MrETstK7sRh+z/d1sh1aj/c3NnqbdgyRd3ezAxZMhyWh9rXipDlul4KLTLHLSHXewf5nqUn2pZEO19t30aqG6ID3sbGaXybMcI1kicv7FSxrr0IQ5dC7r+Vph+guKeMyQ9vu47q91tMZ9gPodXt09aLnq2sVwa1JYmZBUHM0tV7aKqJci3/Ql8WFGTp2II5hbDTgfJIznQtuIK75L06tToVET/TRPySfkl89BPF6s1B+Qtp7RCqvocgbJQ7QI4MMw2uBroiw5sQlF+Yv2PSHSm0E6XcdJ42d25PxEwosYeR8/Ayaerrqe44mUifoxU42UbT02WVJqXmkrViypAW6xeD9kq98HAxPs9xMT7J14YGba5F9aO1qP52LfYKMUt8PJK+yiYLBBzRske1Yeop3Tr81yw9469zCtM13vnxYb5es97/9/8D"));if(e){const e=new y([n],{type:t});return d.createObjectURL(e)}return"data:"+t+";base64,"+(e=>{let t="";const n=e.length;let r=0;for(;n>r+2;r+=3){const n=e[r]<<16|e[r+1]<<8|e[r+2];t+=be[n>>18&63]+be[n>>12&63]+be[n>>6&63]+be[63&n]}const s=n-r;if(1===s){const n=e[r]<<16;t+=be[n>>18&63]+be[n>>12&63]+"=="}else if(2===s){const n=e[r]<<16|e[r+1]<<8;t+=be[n>>18&63]+be[n>>12&63]+be[n>>6&63]+"="}return t})(n)}}),e.BlobReader=$n,e.BlobWriter=er,e.Data64URIReader=class extends Qn{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const r=e.indexOf(",")+1;n.assign(this,{dataURI:e,vt:r,size:a.floor(.75*(t-r))})}readUint8Array(e,t){const{vt:n,dataURI:r}=this,s=new f(t),i=4*a.floor(e/3),o=atob(r.substring(i+n,4*a.ceil((e+t)/3)+n)),c=e-3*a.floor(i/4);let l=0;for(let e=c;c+t>e&&e<o.length;e++)s[e-c]=o.charCodeAt(e),l++;return l<s.length?s.subarray(0,l):s}},e.Data64URIWriter=class extends Gn{constructor(e){super(),n.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let n,s=t.pending;const i=t.pending.length;for(t.pending="",n=0;n<3*a.floor((i+e.length)/3)-i;n++)s+=r.fromCharCode(e[n]);for(;n<e.length;n++)t.pending+=r.fromCharCode(e[n]);s.length>2?t.data+=F(s):t.pending=s+t.pending}getData(){return this.data+F(this.pending)}},e.ERR_AMBIGUOUS_ARCHIVE=Cs,e.ERR_BAD_FORMAT=xs,e.ERR_CENTRAL_DIRECTORY_NOT_FOUND=Rs,e.ERR_DUPLICATED_NAME=ui,e.ERR_ENCRYPTED=Es,e.ERR_ENCRYPTED_CENTRAL_DIRECTORY=Ps,e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=Fs,e.ERR_EOCDR_NOT_FOUND=zs,e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=Ds,e.ERR_HTTP_RANGE=Nn,e.ERR_HTTP_RESOURCE_CHANGED=On,e.ERR_INVALID_CODEC_DEFINITION=xe,e.ERR_INVALID_CODEC_MODULE=Fe,e.ERR_INVALID_COMMENT=fi,e.ERR_INVALID_COMPRESSED_DATA=It,e.ERR_INVALID_ENCRYPTION_STRENGTH=yi,e.ERR_INVALID_ENTRY_COMMENT=pi,e.ERR_INVALID_ENTRY_NAME=hi,e.ERR_INVALID_EXTRAFIELD_DATA=bi,e.ERR_INVALID_EXTRAFIELD_TYPE=gi,e.ERR_INVALID_PASSWORD=Je,e.ERR_INVALID_SIGNATURE=_e,e.ERR_INVALID_UNCOMPRESSED_SIZE=jt,e.ERR_INVALID_VERSION=mi,e.ERR_ITERATOR_COMPLETED_TOO_SOON=jn,e.ERR_LOCAL_FILE_HEADER_NOT_FOUND=Us,e.ERR_OVERLAPPING_ENTRY=Ms,e.ERR_RESERVED_COMPRESSION_METHOD=ze,e.ERR_SPLIT_ZIP_FILE=Ts,e.ERR_UNDEFINED_READER=Ui,e.ERR_UNDEFINED_UNCOMPRESSED_SIZE=Ri,e.ERR_UNSUPPORTED_COMPRESSION=vs,e.ERR_UNSUPPORTED_ENCRYPTION=ks,e.ERR_UNSUPPORTED_ENCRYPTION_USDZ=Si,e.ERR_UNSUPPORTED_FORMAT=Fi,e.ERR_WRITER_NOT_INITIALIZED=In,e.ERR_ZIP_NOT_EMPTY=Di,e.HttpRangeReader=class extends Sr{constructor(e,t={}){super(e,n.assign({},t,{useRangeHeader:!0}))}},e.HttpReader=Sr,e.Reader=Qn,e.SplitDataReader=gr,e.SplitDataWriter=br,e.TextReader=class extends $n{constructor(e){super(new y([e],{type:"text/plain"}))}},e.TextWriter=class extends er{constructor(e){super(e),n.assign(this,{encoding:e,Tt:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,Tt:t}=this,r=await super.getData();if(r.text&&t)return r.text();{const t=new FileReader;return new S((s,i)=>{n.assign(t,{onload:({target:e})=>s(e.result),onerror:()=>i(t.error)}),t.readAsText(r,e)})}}},e.Uint8ArrayReader=class extends Qn{constructor(e){super(),e=new f(e.buffer,e.byteOffset,e.byteLength),n.assign(this,{array:e,size:e.length})}readUint8Array(e,t){return this.array.slice(e,e+t)}},e.Uint8ArrayWriter=class extends Gn{constructor(e){super(),this.defaultBufferSize=e||262144}init(e=0){n.assign(this,{offset:0,array:new f(e>0?e:this.defaultBufferSize)}),super.init()}writeUint8Array(e){const t=this,n=t.offset+e.length;if(n>t.array.length){let e=t.array.length?2*t.array.length:t.defaultBufferSize;for(;n>e;)e*=2;const r=t.array;t.array=new f(e),t.array.set(r)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}},e.Writer=Gn,e.ZipReader=Os,e.ZipReaderStream=js,e.ZipWriter=Ci,e.ZipWriterStream=class{constructor(e={}){const{readable:t,writable:n}=new R;this.readable=t,this.zipWriter=new Ci(n,e),this.Ve=new l}transform(e){const t=this.zipWriter;let n;const{readable:r,writable:s}=new R({start(e){n=e},flush:()=>{(async()=>{try{await t.close()}catch(e){try{await t.writer.writable.abort(e)}catch{}}})()}});return Pi(this,this.zipWriter.add(e,r),e=>n.error(e)),{readable:this.readable,writable:s}}writable(e){let t;const{readable:n,writable:r}=new R({start(e){t=e}});return Pi(this,this.zipWriter.add(e,n),e=>t.error(e)),r}async close(e,n={}){return await S.all(t.from(this.Ve)),this.zipWriter.close(e,n)}},e.configure=we,e.createBlobTempStream=(e={})=>{const{thresholdBytes:t=ra}=e;return()=>{const e=[];let n,r,s,i=0,a=!1;const o=new D({async write(s){a?await n.write(s):(e.push(s),i+=s.length,i>t&&await(async()=>{const t=new R;r=new w(t.readable).blob(),n=t.writable.getWriter(),a=!0;for(const t of e)await n.write(t);e.length=0})())},async close(){n&&(await n.close(),n=null)}});let c=0;return{writable:o,readable:new U({async pull(t){if(a){if(!s){const e=await r;s=e.stream().getReader()}const{value:e,done:n}=await s.read();n?t.close():t.enqueue(e)}else c<e.length?t.enqueue(e[c++]):t.close()},async cancel(e){s&&await s.cancel(e)}},{highWaterMark:0}),dispose:async()=>{if(n){try{await n.abort()}catch{}n=null}r&&(r.catch(()=>{}),r=null),e.length=0}}}},e.createOPFSTempStream=(e={})=>{const{thresholdBytes:t=ta,directoryName:n=na,getDirectory:r=()=>v.storage.getDirectory()}=e;let s;function i(){return s||(s=S.resolve(r()).then(e=>e.getDirectoryHandle(n,{create:!0}))),s}return()=>{const e=[];let n,r,s,a,o=0,c=!1;const l=new D({async write(a){c?await s.write(a):(e.push(a),o+=a.length,o>t&&await(async()=>{const t=await i();n=z.randomUUID(),r=await t.getFileHandle(n,{create:!0}),s=(await r.createWritable()).getWriter(),c=!0;for(const t of e)await s.write(t);e.length=0})())},async close(){s&&(await s.close(),s=null)}});let w=0;return{writable:l,readable:new U({async pull(t){if(c){if(!a){const e=await r.getFile();a=e.stream().getReader()}const{value:e,done:n}=await a.read();n?t.close():t.enqueue(e)}else w<e.length?t.enqueue(e[w++]):t.close()},async cancel(e){a&&await a.cancel(e)}},{highWaterMark:0}),dispose:async()=>{if(s){try{await s.close()}catch{}s=null}if(n){try{const e=await i();await e.removeEntry(n)}catch{}r=n=null}e.length=0}}}},e.createSyncAccessHandleTempStream=(e={})=>{const{thresholdBytes:t=sa,directoryName:n=ia,getDirectory:r}=e;if(!(r||"undefined"!=typeof FileSystemFileHandle&&FileSystemFileHandle.prototype.createSyncAccessHandle))throw new u("createSyncAccessHandle is only available in dedicated workers");const s=r||(()=>v.storage.getDirectory());let i;function o(){return i||(i=S.resolve(s()).then(e=>e.getDirectoryHandle(n,{create:!0}))),i}return()=>{const e=[];let n,r,s=0,i=!1,c=0,l=0;const w=new D({async write(a){i?(r.write(a,{at:c}),c+=a.length):(e.push(a),s+=a.length,s>t&&await(async()=>{const t=await o();n=z.randomUUID();const s=await t.getFileHandle(n,{create:!0});r=await s.createSyncAccessHandle(),i=!0;for(const t of e)r.write(t,{at:c}),c+=t.length;e.length=0})())},close(){r&&r.flush()}});let d=0;return{writable:w,readable:new U({pull(t){if(i){const e=c-l;if(0>=e)return void t.close();const n=new f(a.min(524288,e)),s=r.read(n,{at:l});s?(l+=s,t.enqueue(n.subarray(0,s))):t.close()}else d<e.length?t.enqueue(e[d++]):t.close()}},{highWaterMark:0}),dispose:async()=>{if(r){try{r.close()}catch{}r=null}if(n){try{const e=await o();await e.removeEntry(n)}catch{}n=null}e.length=0}}}},e.getMimeType=()=>"application/octet-stream",e.registerCodec=(e={})=>{const{compressionMethod:t,format:n,codecURI:r,CompressionStream:i,DecompressionStream:a,versionNeeded:o}=e;if(!s.isInteger(t)||0>t||t>P||typeof n!=Re||!n.length)throw new u(xe);if(Ue.includes(t))throw new u(ze);const c=typeof i==ne||typeof a==ne;if(!(c||typeof r==Re&&r.length))throw new u(xe);De.set(t,{compressionMethod:t,format:n,codecURI:r,versionNeeded:o}),c&&Te(n,{CompressionStream:i,DecompressionStream:a})},e.resetConfiguration=()=>{for(const e of ae)delete oe[e];n.assign(oe,ie)},e.terminateWorkers=async()=>{await S.allSettled(Un.map(e=>(qn(e),e.terminate()))),ln=$},e.unregisterCodec=e=>{const t=De.get(e);if(t){let n;De.delete(e),De.forEach(e=>n=n||e.format==t.format),n||Ee.delete(t.format)}}});