@zip.js/zip.js 2.8.0 → 2.8.2

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.
@@ -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:r,String:s,Number:a,BigInt:n,Math:i,Date:o,Map:c,Set:l,Response:d,URL:u,Error:p,Uint8Array:f,Uint16Array:h,Uint32Array:w,DataView:m,Blob:g,Promise:y,TextEncoder:b,TextDecoder:z,document:S,crypto:x,btoa:R,TransformStream:D,ReadableStream:E,WritableStream:F,CompressionStream:_,DecompressionStream:k,navigator:T,Worker:A}="undefined"!=typeof globalThis?globalThis:this||self;var v=void 0!==S?S.currentScript:null;const U=4294967295,C=65535,N=67324752,W=134695760,I=W,O=33639248,M=101010256,L=101075792,B=117853008,H=22,P=21589,Z=2048,V="/",q=30,K=new o(2107,11,31),Y=new o(1980,0,1),G=void 0,j="undefined",X="function";let J=2;try{typeof T!=j&&T.hardwareConcurrency&&(J=T.hardwareConcurrency)}catch(e){}const Q={workerURI:"./core/web-worker.js",wasmURI:"./core/streams/zlib/zlib-streams.wasm",chunkSize:65536,maxWorkers:J,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof _!=j&&_,DecompressionStream:typeof k!=j&&k},$=r.assign({},Q);function ee(){return $}function te(e){return i.max(e.chunkSize,64)}function re(e){const{baseURI:t,chunkSize:r,maxWorkers:s,terminateWorkerTimeout:a,useCompressionStream:n,useWebWorkers:i,CompressionStream:o,DecompressionStream:c,CompressionStreamZlib:l,DecompressionStreamZlib:d,workerURI:u,wasmURI:p}=e;se("baseURI",t),se("wasmURI",p),se("workerURI",u),se("chunkSize",r),se("maxWorkers",s),se("terminateWorkerTimeout",a),se("useCompressionStream",n),se("useWebWorkers",i),se("CompressionStream",o),se("DecompressionStream",c),se("CompressionStreamZlib",l),se("DecompressionStreamZlib",d)}function se(e,t){t!==G&&($[e]=t)}let ae,ne,ie,oe;function ce(e,t,r={}){const s="number"==typeof r.level?r.level:-1,a="number"==typeof r.outBuffer?r.outBuffer:65536,n="number"==typeof r.inBufferSize?r.inBufferSize:65536;return new D({start(){let r;if(this.out=ne(a),this.in=ne(n),this.inBufferSize=n,this._scratch=new f(a),e?(this._process=ae.deflate_process,this._last_consumed=ae.deflate_last_consumed,this._end=ae.deflate_end,this.streamHandle=ae.deflate_new(),r="gzip"===t?ae.deflate_init_gzip(this.streamHandle,s):"deflate-raw"===t?ae.deflate_init_raw(this.streamHandle,s):ae.deflate_init(this.streamHandle,s)):"deflate64-raw"===t?(this._process=ae.inflate9_process,this._last_consumed=ae.inflate9_last_consumed,this._end=ae.inflate9_end,this.streamHandle=ae.inflate9_new(),r=ae.inflate9_init_raw(this.streamHandle)):(this._process=ae.inflate_process,this._last_consumed=ae.inflate_last_consumed,this._end=ae.inflate_end,this.streamHandle=ae.inflate_new(),r="deflate-raw"===t?ae.inflate_init_raw(this.streamHandle):"gzip"===t?ae.inflate_init_gzip(this.streamHandle):ae.inflate_init(this.streamHandle)),0!==r)throw new p("init failed:"+r)},transform(t,r){try{const s=t,n=new f(oe.buffer),o=this._process,c=this._last_consumed,l=this.out,d=this._scratch;let u=0;for(;u<s.length;){const t=i.min(s.length-u,32768);this.in&&this.inBufferSize>=t||(this.in&&ie&&ie(this.in),this.in=ne(t),this.inBufferSize=t),n.set(s.subarray(u,u+t),this.in);const f=o(this.streamHandle,this.in,t,l,a,0);if(!e&&0>f)throw new p("process error:"+f);const h=16777215&f;h&&(d.set(n.subarray(l,l+h),0),r.enqueue(d.slice(0,h)));const w=c(this.streamHandle);if(0===w)break;u+=w}}catch(e){this._end&&this.streamHandle&&this._end(this.streamHandle),this.in&&ie&&ie(this.in),this.out&&ie&&ie(this.out),r.error(e)}},flush(t){try{const r=new f(oe.buffer),s=this._process,n=this.out,i=this._scratch;for(;;){const o=s(this.streamHandle,0,0,n,a,4);if(!e&&0>o)throw new p("process error:"+o);const c=16777215&o,l=o>>24&255;if(c&&(i.set(r.subarray(n,n+c),0),t.enqueue(i.slice(0,c))),1===l||0===c)break}}catch(e){t.error(e)}finally{if(this._end&&this.streamHandle){const e=this._end(this.streamHandle);0!==e&&t.error(new p("end error:"+e))}this.in&&ie&&ie(this.in),this.out&&ie&&ie(this.out)}}})}let le=!1;function de(){le=!1}const ue="HTTP error ",pe="HTTP Range not supported",fe="Range",he="GET",we="bytes",me=65536,ge="writable";class ye{constructor(){this.size=0}init(){this.initialized=!0}}class be extends ye{get readable(){const e=this,{chunkSize:t=me}=e,r=new E({start(){this.chunkOffset=0},async pull(s){const{offset:a=0,size:n,diskNumberStart:o}=r,{chunkOffset:c}=this,l=n===G?t:i.min(t,n-c),d=await Ge(e,a+c,l,o);s.enqueue(d),c+t>n||n===G&&!d.length&&l?s.close():this.chunkOffset+=t}});return r}}class ze extends ye{constructor(){super();const e=this,t=new F({write(t){if(!e.initialized)throw new p("Writer not initialized");return e.writeUint8Array(t)}});r.defineProperty(e,ge,{get:()=>t})}writeUint8Array(){}}class Se extends be{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const s=e.indexOf(",")+1;r.assign(this,{dataURI:e,dataStart:s,size:i.floor(.75*(t-s))})}readUint8Array(e,t){const{dataStart:r,dataURI:s}=this,a=new f(t),n=4*i.floor(e/3),o=atob(s.substring(n+r,4*i.ceil((e+t)/3)+r)),c=e-3*i.floor(n/4);let l=0;for(let e=c;c+t>e&&e<o.length;e++)a[e-c]=o.charCodeAt(e),l++;return l<a.length?a.subarray(0,l):a}}class xe extends ze{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r=0,a=t.pending;const n=t.pending.length;for(t.pending="",r=0;r<3*i.floor((n+e.length)/3)-n;r++)a+=s.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=s.fromCharCode(e[r]);a.length&&(a.length>2?t.data+=R(a):t.pending+=a)}getData(){return this.data+R(this.pending)}}class Re extends be{constructor(e){super(),r.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const r=this,s=e+t,a=e||s<r.size?r.blob.slice(e,s):r.blob;let n=await a.arrayBuffer();return n.byteLength>t&&(n=n.slice(e,s)),new f(n)}}class De extends ye{constructor(e){super();const t=new D,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(this,ge,{get:()=>t.writable}),this.blob=new d(t.readable,{headers:s}).blob()}getData(){return this.blob}}class Ee extends Re{constructor(e){super(new g([e],{type:"text/plain"}))}}class Fe extends De{constructor(e){super(e),r.assign(this,{encoding:e,utf8:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,utf8:t}=this,s=await super.getData();if(s.text&&t)return s.text();{const t=new FileReader;return new y((a,n)=>{r.assign(t,{onload:({target:e})=>a(e.result),onerror:()=>n(t.error)}),t.readAsText(s,e)})}}}class _e extends be{constructor(e,t){super(),Te(this,e,t)}async init(){await Ae(this,Me,Ne),super.init()}readUint8Array(e,t){return ve(this,e,t,Me,Ne)}}class ke extends be{constructor(e,t){super(),Te(this,e,t)}async init(){await Ae(this,Le,We),super.init()}readUint8Array(e,t){return ve(this,e,t,Le,We)}}function Te(e,t,s){const{preventHeadRequest:a,useRangeHeader:n,forceRangeRequests:i,combineSizeEocd:o}=s;delete(s=r.assign({},s)).preventHeadRequest,delete s.useRangeHeader,delete s.forceRangeRequests,delete s.combineSizeEocd,delete s.useXHR,r.assign(e,{url:t,options:s,preventHeadRequest:a,useRangeHeader:n,forceRangeRequests:i,combineSizeEocd:o})}async function Ae(e,t,r){const{url:s,preventHeadRequest:n,useRangeHeader:i,forceRangeRequests:o,combineSizeEocd:c}=e;if((e=>{const{baseURI:t}=ee(),{protocol:r}=new u(e,t);return"http:"==r||"https:"==r})(s)&&(i||o)&&(void 0===n||n)){const s=await t(he,e,Ue(e,c?-22:void 0));if(!o&&s.headers.get("Accept-Ranges")!=we)throw new p(pe);{let n;c&&(e.eocdCache=new f(await s.arrayBuffer()));const i=s.headers.get("Content-Range");if(i){const e=i.trim().split(/\s*\/\s*/);if(e.length){const t=e[1];t&&"*"!=t&&(n=a(t))}}n===G?await Oe(e,t,r):e.size=n}}else await Oe(e,t,r)}async function ve(e,t,r,s,a){const{useRangeHeader:n,forceRangeRequests:i,eocdCache:o,size:c,options:l}=e;if(n||i){if(o&&t==c-H&&r==H)return o;if(c>t){t+r>c&&(r=c-t);const a=await s(he,e,Ue(e,t,r));if(206!=a.status)throw new p(pe);return new f(await a.arrayBuffer())}return new f}{const{data:s}=e;return s||await a(e,l),new f(e.data.subarray(t,t+r))}}function Ue(e,t=0,s=1){return r.assign({},Ce(e),{[fe]:we+"="+(0>t?t:t+"-"+(t+s-1))})}function Ce({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function Ne(e){await Ie(e,Me)}async function We(e){await Ie(e,Le)}async function Ie(e,t){const r=await t(he,e,Ce(e));e.data=new f(await r.arrayBuffer()),e.size||(e.size=e.data.length)}async function Oe(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const s=(await t("HEAD",e,Ce(e))).headers.get("Content-Length");s?e.size=a(s):await r(e,e.options)}}async function Me(e,{options:t,url:s},a){const n=await fetch(s,r.assign({},t,{method:e,headers:a}));if(400>n.status)return n;throw 416==n.status?new p(pe):new p(ue+(n.statusText||n.status))}function Le(e,{url:t},s){return new y((a,n)=>{const i=new XMLHttpRequest;if(i.addEventListener("load",()=>{if(400>i.status){const e=[];i.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const r=t.trim().split(/\s*:\s*/);r[0]=r[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(r)}),a({status:i.status,arrayBuffer:()=>i.response,headers:new c(e)})}else n(416==i.status?new p(pe):new p(ue+(i.statusText||i.status)))},!1),i.addEventListener("error",e=>n(e.detail?e.detail.error:new p("Network error")),!1),i.open(e,t),s)for(const e of r.entries(s))i.setRequestHeader(e[0],e[1]);i.responseType="arraybuffer",i.send()})}class Be extends be{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR?new ke(e,t):new _e(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class He extends be{constructor(e){super(),e=new f(e.buffer,e.byteOffset,e.byteLength),r.assign(this,{array:e,size:e.length})}readUint8Array(e,t){return this.array.slice(e,e+t)}}class Pe extends ze{init(e=0){r.assign(this,{offset:0,array:new f(e)}),super.init()}writeUint8Array(e){const t=this;if(t.offset+e.length>t.array.length){const r=t.array;t.array=new f(r.length+e.length),t.array.set(r)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.array}}class Ze extends be{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:t}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await y.all(t.map(async(r,s)=>{await r.init(),s!=t.length-1&&(e.lastDiskOffset+=r.size),e.size+=r.size})),super.init()}async readUint8Array(e,t,r=0){const s=this,{readers:a}=this;let n,o=r;-1==o&&(o=a.length-1);let c=e;for(;a[o]&&c>=a[o].size;)c-=a[o].size,o++;const l=a[o];if(l){const a=l.size;if(c+t>a){const i=a-c;n=new f(t);const o=await Ge(l,c,i);n.set(o,0);const d=await s.readUint8Array(e+i,t-i,r);n.set(d,i),o.length+d.length<t&&(n=n.subarray(0,o.length+d.length))}else n=await Ge(l,c,t)}else n=new f;return s.lastDiskNumber=i.max(o,s.lastDiskNumber),n}}class Ve extends ye{constructor(e,t=4294967295){super();const s=this;let a,n,i;r.assign(s,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new F({async write(t){const{availableSize:r}=s;if(i)t.length<r?await c(t):(await c(t.subarray(0,r)),await l(),s.diskOffset+=a.size,s.diskNumber++,i=null,await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new p("Writer iterator completed too soon");a=r,a.size=0,a.maxSize&&(s.maxSize=a.maxSize),s.availableSize=s.maxSize,await Ye(a),n=r.writable,i=n.getWriter(),await this.write(t)}},async close(){await i.ready,await l()}});async function c(e){const t=e.length;t&&(await i.ready,await i.write(e),a.size+=t,s.size+=t,s.availableSize-=t)}async function l(){await i.close()}r.defineProperty(s,ge,{get:()=>o})}}class qe{constructor(e){return t.isArray(e)&&(e=new Ze(e)),e instanceof E&&(e={readable:e}),e}}class Ke{constructor(e){return e.writable===G&&typeof e.next==X&&(e=new Ve(e)),e instanceof F&&(e={writable:e}),e.size===G&&(e.size=0),e instanceof Ve||r.assign(e,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),e}}async function Ye(e,t){if(!e.init||e.initialized)return y.resolve();await e.init(t)}function Ge(e,t,r,s){return e.readUint8Array(t,r,s)}const je=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;je[e]=t}class Xe{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let r=0,s=0|e.length;s>r;r++)t=t>>>8^je[255&(t^e[r])];this.crc=t}get(){return~this.crc}}class Je extends D{constructor(){let e;const t=new Xe;super({transform(e,r){t.append(e),r.enqueue(e)},flush(){const r=new f(4);new m(r.buffer).setUint32(0,t.get()),e.value=r}}),e=this}}function Qe(e){if(typeof b==j){const t=new f((e=unescape(encodeURIComponent(e))).length);for(let r=0;r<t.length;r++)t[r]=e.charCodeAt(r);return t}return(new b).encode(e)}const $e={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],s=$e.getPartial(r);return 32===s?e.concat(t):$e._shiftRight(t,s,0|r,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(0===t)return 0;const r=e[t-1];return 32*(t-1)+$e.getPartial(r)},clamp(e,t){if(32*e.length<t)return e;const r=(e=e.slice(0,i.ceil(t/32))).length;return t&=31,r>0&&t&&(e[r-1]=$e.partial(t,e[r-1]&2147483648>>t-1,1)),e},partial:(e,t,r)=>32===e?t:(r?0|t:t<<32-e)+1099511627776*e,getPartial:e=>i.round(e/1099511627776)||32,_shiftRight(e,t,r,s){for(void 0===s&&(s=[]);t>=32;t-=32)s.push(r),r=0;if(0===t)return s.concat(e);for(let a=0;a<e.length;a++)s.push(r|e[a]>>>t),r=e[a]<<32-t;const a=e.length?e[e.length-1]:0,n=$e.getPartial(a);return s.push($e.partial(t+n&31,t+n>32?r:s.pop(),1)),s}},et={bytes:{fromBits(e){const t=$e.bitLength(e)/8,r=new f(t);let s;for(let a=0;t>a;a++)3&a||(s=e[a/4]),r[a]=s>>>24,s<<=8;return r},toBits(e){const t=[];let r,s=0;for(r=0;r<e.length;r++)s=s<<8|e[r],3&~r||(t.push(s),s=0);return 3&r&&t.push($e.partial(8*(3&r),s)),t}}},tt=class{constructor(e){const t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],e?(t._h=e._h.slice(0),t._buffer=e._buffer.slice(0),t._length=e._length):t.reset()}reset(){const e=this;return e._h=e._init.slice(0),e._buffer=[],e._length=0,e}update(e){const t=this;"string"==typeof e&&(e=et.utf8String.toBits(e));const r=t._buffer=$e.concat(t._buffer,e),s=t._length,a=t._length=s+$e.bitLength(e);if(a>9007199254740991)throw new p("Cannot hash more than 2^53 - 1 bits");const n=new w(r);let i=0;for(let e=t.blockSize+s-(t.blockSize+s&t.blockSize-1);a>=e;e+=t.blockSize)t._block(n.subarray(16*i,16*(i+1))),i+=1;return r.splice(0,16*i),t}finalize(){const e=this;let t=e._buffer;const r=e._h;t=$e.concat(t,[$e.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(i.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),r}_f(e,t,r,s){return e>19?e>39?e>59?e>79?void 0:t^r^s:t&r|t&s|r&s:t^r^s:t&r|~t&s}_S(e,t){return t<<e|t>>>32-e}_block(e){const r=this,s=r._h,a=t(80);for(let t=0;16>t;t++)a[t]=e[t];let n=s[0],o=s[1],c=s[2],l=s[3],d=s[4];for(let e=0;79>=e;e++){16>e||(a[e]=r._S(1,a[e-3]^a[e-8]^a[e-14]^a[e-16]));const t=r._S(5,n)+r._f(e,o,c,l)+d+a[e]+r._key[i.floor(e/20)]|0;d=l,l=c,c=r._S(30,o),o=n,n=t}s[0]=s[0]+n|0,s[1]=s[1]+o|0,s[2]=s[2]+c|0,s[3]=s[3]+l|0,s[4]=s[4]+d|0}},rt={getRandomValues(e){const t=new w(e.buffer),r=e=>{let t=987654321;const r=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&r,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&r)&r)/4294967296+.5)*(i.random()>.5?1:-1))};for(let s,a=0;a<e.length;a+=4){const e=r(4294967296*(s||i.random()));s=987654071*e(),t[a/4]=4294967296*e()|0}return e}},st={importKey:e=>new st.hmacSha1(et.bytes.toBits(e)),pbkdf2(e,t,r,s){if(r=r||1e4,0>s||0>r)throw new p("invalid params to pbkdf2");const a=1+(s>>5)<<2;let n,i,o,c,l;const d=new ArrayBuffer(a),u=new m(d);let f=0;const h=$e;for(t=et.bytes.toBits(t),l=1;(a||1)>f;l++){for(n=i=e.encrypt(h.concat(t,[l])),o=1;r>o;o++)for(i=e.encrypt(i),c=0;c<i.length;c++)n[c]^=i[c];for(o=0;(a||1)>f&&o<n.length;o++)u.setInt32(f,n[o]),f+=4}return d.slice(0,s/8)},hmacSha1:class{constructor(e){const t=this,r=t._hash=tt,s=[[],[]];t._baseHash=[new r,new r];const a=t._baseHash[0].blockSize/32;e.length>a&&(e=(new r).update(e).finalize());for(let t=0;a>t;t++)s[0][t]=909522486^e[t],s[1][t]=1549556828^e[t];t._baseHash[0].update(s[0]),t._baseHash[1].update(s[1]),t._resultHash=new r(t._baseHash[0])}reset(){const e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){this._updated=!0,this._resultHash.update(e)}digest(){const e=this,t=e._resultHash.finalize(),r=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),r}encrypt(e){if(this._updated)throw new p("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},at=typeof x!=j&&typeof x.getRandomValues==X,nt="Invalid password",it="Invalid signature",ot="zipjs-abort-check-password";function ct(e){return at?x.getRandomValues(e):rt.getRandomValues(e)}const lt=16,dt={name:"PBKDF2"},ut=r.assign({hash:{name:"HMAC"}},dt),pt=r.assign({iterations:1e3,hash:{name:"SHA-1"}},dt),ft=["deriveBits"],ht=[8,12,16],wt=[16,24,32],mt=10,gt=[0,0,0,0],yt=typeof x!=j,bt=yt&&x.subtle,zt=yt&&typeof bt!=j,St=et.bytes,xt=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const r=t._tables[0][4],s=t._tables[1],a=e.length;let n,i,o,c=1;if(4!==a&&6!==a&&8!==a)throw new p("invalid aes key size");for(t._key=[i=e.slice(0),o=[]],n=a;4*a+28>n;n++){let e=i[n-1];(n%a===0||8===a&&n%a===4)&&(e=r[e>>>24]<<24^r[e>>16&255]<<16^r[e>>8&255]<<8^r[255&e],n%a===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),i[n]=i[n-a]^e}for(let e=0;n;e++,n--){const t=i[3&e?n:n-4];o[e]=4>=n||4>e?t:s[0][r[t>>>24]]^s[1][r[t>>16&255]]^s[2][r[t>>8&255]]^s[3][r[255&t]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],r=e[4],s=t[4],a=[],n=[];let i,o,c,l;for(let e=0;256>e;e++)n[(a[e]=e<<1^283*(e>>7))^e]=e;for(let d=i=0;!r[d];d^=o||1,i=n[i]||1){let n=i^i<<1^i<<2^i<<3^i<<4;n=n>>8^255&n^99,r[d]=n,s[n]=d,l=a[c=a[o=a[d]]];let u=16843009*l^65537*c^257*o^16843008*d,p=257*a[n]^16843008*n;for(let r=0;4>r;r++)e[r][d]=p=p<<24^p>>>8,t[r][n]=u=u<<24^u>>>8}for(let r=0;5>r;r++)e[r]=e[r].slice(0),t[r]=t[r].slice(0)}_crypt(e,t){if(4!==e.length)throw new p("invalid aes block size");const r=this._key[t],s=r.length/4-2,a=[0,0,0,0],n=this._tables[t],i=n[0],o=n[1],c=n[2],l=n[3],d=n[4];let u,f,h,w=e[0]^r[0],m=e[t?3:1]^r[1],g=e[2]^r[2],y=e[t?1:3]^r[3],b=4;for(let e=0;s>e;e++)u=i[w>>>24]^o[m>>16&255]^c[g>>8&255]^l[255&y]^r[b],f=i[m>>>24]^o[g>>16&255]^c[y>>8&255]^l[255&w]^r[b+1],h=i[g>>>24]^o[y>>16&255]^c[w>>8&255]^l[255&m]^r[b+2],y=i[y>>>24]^o[w>>16&255]^c[m>>8&255]^l[255&g]^r[b+3],b+=4,w=u,m=f,g=h;for(let e=0;4>e;e++)a[t?3&-e:e]=d[w>>>24]<<24^d[m>>16&255]<<16^d[g>>8&255]<<8^d[255&y]^r[b++],u=w,w=m,m=g,g=y,y=u;return a}},Rt=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,r=e>>8&255,s=255&e;255===t?(t=0,255===r?(r=0,255===s?s=0:++s):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=s}return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,r){let s;if(!(s=t.length))return[];const a=$e.bitLength(t);for(let a=0;s>a;a+=4){this.incCounter(r);const s=e.encrypt(r);t[a]^=s[0],t[a+1]^=s[1],t[a+2]^=s[2],t[a+3]^=s[3]}return $e.clamp(t,a)}},Dt=st.hmacSha1;let Et=yt&&zt&&typeof bt.importKey==X,Ft=yt&&zt&&typeof bt.deriveBits==X;class _t extends D{constructor({password:e,rawPassword:t,signed:s,encryptionStrength:a,checkPasswordOnly:n}){super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:vt(e,t),signed:s,strength:a-1,pending:new f})},async transform(e,t){const r=this,{password:s,strength:a,resolveReady:i,ready:o}=r;s?(await(async(e,t,r,s)=>{const a=await At(e,t,r,Ct(s,0,ht[t])),n=Ct(s,ht[t]);if(a[0]!=n[0]||a[1]!=n[1])throw new p(nt)})(r,a,s,Ct(e,0,ht[a]+2)),e=Ct(e,ht[a]+2),n?t.error(new p(ot)):i()):await o;const c=new f(e.length-mt-(e.length-mt)%lt);t.enqueue(Tt(r,e,c,0,mt,!0))},async flush(e){const{signed:t,ctr:r,hmac:s,pending:a,ready:n}=this;if(s&&r){await n;const i=Ct(a,0,a.length-mt),o=Ct(a,a.length-mt);let c=new f;if(i.length){const e=Wt(St,i);s.update(e);const t=r.update(e);c=Nt(St,t)}if(t){const e=Ct(Nt(St,s.digest()),0,mt);for(let t=0;mt>t;t++)if(e[t]!=o[t])throw new p(it)}e.enqueue(c)}}})}}class kt extends D{constructor({password:e,rawPassword:t,encryptionStrength:s}){let a;super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:vt(e,t),strength:s-1,pending:new f})},async transform(e,t){const r=this,{password:s,strength:a,resolveReady:n,ready:i}=r;let o=new f;s?(o=await(async(e,t,r)=>{const s=ct(new f(ht[t]));return Ut(s,await At(e,t,r,s))})(r,a,s),n()):await i;const c=new f(o.length+e.length-e.length%lt);c.set(o,0),t.enqueue(Tt(r,e,c,o.length,0))},async flush(e){const{ctr:t,hmac:r,pending:s,ready:n}=this;if(r&&t){await n;let i=new f;if(s.length){const e=t.update(Wt(St,s));r.update(e),i=Nt(St,e)}a.signature=Nt(St,r.digest()).slice(0,mt),e.enqueue(Ut(i,a.signature))}}}),a=this}}function Tt(e,t,r,s,a,n){const{ctr:i,hmac:o,pending:c}=e,l=t.length-a;let d;for(c.length&&(t=Ut(c,t),r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new f(t)).set(r,0)}return e})(r,l-l%lt)),d=0;l-lt>=d;d+=lt){const e=Wt(St,Ct(t,d,d+lt));n&&o.update(e);const a=i.update(e);n||o.update(a),r.set(Nt(St,a),d+s)}return e.pending=Ct(t,d),r}async function At(e,s,a,n){e.password=null;const i=await(async(e,t,r,s,a)=>{if(!Et)return st.importKey(t);try{return await bt.importKey("raw",t,r,!1,a)}catch(e){return Et=!1,st.importKey(t)}})(0,a,ut,0,ft),o=await(async(e,t,r)=>{if(!Ft)return st.pbkdf2(t,e.salt,pt.iterations,r);try{return await bt.deriveBits(e,t,r)}catch(s){return Ft=!1,st.pbkdf2(t,e.salt,pt.iterations,r)}})(r.assign({salt:n},pt),i,8*(2*wt[s]+2)),c=new f(o),l=Wt(St,Ct(c,0,wt[s])),d=Wt(St,Ct(c,wt[s],2*wt[s])),u=Ct(c,2*wt[s]);return r.assign(e,{keys:{key:l,authentication:d,passwordVerification:u},ctr:new Rt(new xt(l),t.from(gt)),hmac:new Dt(d)}),u}function vt(e,t){return t===G?Qe(e):t}function Ut(e,t){let r=e;return e.length+t.length&&(r=new f(e.length+t.length),r.set(e,0),r.set(t,e.length)),r}function Ct(e,t,r){return e.subarray(t,r)}function Nt(e,t){return e.fromBits(t)}function Wt(e,t){return e.toBits(t)}class It extends D{constructor({password:e,passwordVerification:t,checkPasswordOnly:s}){super({start(){r.assign(this,{password:e,passwordVerification:t}),Bt(this,e)},transform(e,t){const r=this;if(r.password){const t=Mt(r,e.subarray(0,12));if(r.password=null,t.at(-1)!=r.passwordVerification)throw new p(nt);e=e.subarray(12)}s?t.error(new p(ot)):t.enqueue(Mt(r,e))}})}}class Ot extends D{constructor({password:e,passwordVerification:t}){super({start(){r.assign(this,{password:e,passwordVerification:t}),Bt(this,e)},transform(e,t){const r=this;let s,a;if(r.password){r.password=null;const t=ct(new f(12));t[11]=r.passwordVerification,s=new f(e.length+t.length),s.set(Lt(r,t),0),a=12}else s=new f(e.length),a=0;s.set(Lt(r,e),a),t.enqueue(s)}})}}function Mt(e,t){const r=new f(t.length);for(let s=0;s<t.length;s++)r[s]=Pt(e)^t[s],Ht(e,r[s]);return r}function Lt(e,t){const r=new f(t.length);for(let s=0;s<t.length;s++)r[s]=Pt(e)^t[s],Ht(e,t[s]);return r}function Bt(e,t){const s=[305419896,591751049,878082192];r.assign(e,{keys:s,crcKey0:new Xe(s[0]),crcKey2:new Xe(s[2])});for(let r=0;r<t.length;r++)Ht(e,t.charCodeAt(r))}function Ht(e,t){let[r,s,a]=e.keys;e.crcKey0.append([t]),r=~e.crcKey0.get(),s=Vt(i.imul(Vt(s+Zt(r)),134775813)+1),e.crcKey2.append([s>>>24]),a=~e.crcKey2.get(),e.keys=[r,s,a]}function Pt(e){const t=2|e.keys[2];return Zt(i.imul(t,1^t)>>>8)}function Zt(e){return 255&e}function Vt(e){return 4294967295&e}const qt="Invalid uncompressed size";class Kt extends D{constructor(e,{chunkSize:t,CompressionStreamZlib:r,CompressionStream:s}){super({});const{compressed:a,encrypted:n,useCompressionStream:i,zipCrypto:o,signed:c,level:l}=e,d=this;let u,p,f=super.readable;n&&!o||!c||(u=new Je,f=Xt(f,u)),a&&(f=jt(f,i,{level:l,chunkSize:t},s,r,s)),n&&(o?f=Xt(f,new Ot(e)):(p=new kt(e),f=Xt(f,p))),Gt(d,f,()=>{let e;n&&!o&&(e=p.signature),n&&!o||!c||(e=new m(u.value.buffer).getUint32(0)),d.signature=e})}}class Yt extends D{constructor(e,{chunkSize:t,DecompressionStreamZlib:r,DecompressionStream:s}){super({});const{zipCrypto:a,encrypted:n,signed:i,signature:o,compressed:c,useCompressionStream:l,deflate64:d}=e;let u,f,h=super.readable;n&&(a?h=Xt(h,new It(e)):(f=new _t(e),h=Xt(h,f))),c&&(h=jt(h,l,{chunkSize:t,deflate64:d},s,r,s)),n&&!a||!i||(u=new Je,h=Xt(h,u)),Gt(this,h,()=>{if((!n||a)&&i){const e=new m(u.value.buffer);if(o!=e.getUint32(0,!1))throw new p(it)}})}}function Gt(e,t,s){t=Xt(t,new D({flush:s})),r.defineProperty(e,"readable",{get:()=>t})}function jt(e,t,r,s,a,n){const i=t&&s?s:a||n,o=r.deflate64?"deflate64-raw":"deflate-raw";try{e=Xt(e,new i(o,r))}catch(s){if(!t)throw s;if(a)e=Xt(e,new a(o,r));else{if(!n)throw s;e=Xt(e,new n(o,r))}}return e}function Xt(e,t){return e.pipeThrough(t)}const Jt="data",Qt="close",$t="deflate",er="inflate";class tr extends D{constructor(e,t){super({});const s=this,{codecType:a}=e;let n;a.startsWith($t)?n=Kt:a.startsWith(er)&&(n=Yt),s.outputSize=0;let i=0;const o=new n(e,t),c=super.readable,l=new D({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){r.assign(s,{inputSize:i})}}),d=new D({transform(t,r){if(t&&t.length&&(r.enqueue(t),s.outputSize+=t.length,e.outputSize&&s.outputSize>e.outputSize))throw new p(qt)},flush(){const{signature:e}=o;r.assign(s,{signature:e,inputSize:i})}});r.defineProperty(s,"readable",{get:()=>c.pipeThrough(l).pipeThrough(o).pipeThrough(d)})}}class rr extends D{constructor(e){let t;super({transform:function r(s,a){if(t){const e=new f(t.length+s.length);e.set(t),e.set(s,t.length),s=e,t=null}s.length>e?(a.enqueue(s.slice(0,e)),r(s.slice(e),a)):t=s},flush(e){t&&t.length&&e.enqueue(t)}})}}let sr=typeof A!=j;class ar{constructor(e,{readable:t,writable:s},{options:a,config:n,streamOptions:i,useWebWorkers:o,transferStreams:c,workerURI:l},d){const{signal:u}=i;return r.assign(e,{busy:!0,readable:t.pipeThrough(new rr(n.chunkSize)).pipeThrough(new nr(i),{signal:u}),writable:s,options:r.assign({},a),workerURI:l,transferStreams:c,terminate:()=>new y(t=>{const{worker:r,busy:s}=e;r?(s?e.resolveTerminated=t:(r.terminate(),t()),e.interface=null):t()}),onTaskFinished(){const{resolveTerminated:t}=e;t&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),t()),e.busy=!1,d(e)}}),(o&&sr?cr:or)(e,n)}}class nr extends D{constructor({onstart:e,onprogress:t,size:r,onend:s}){let a=0;super({async start(){e&&await ir(e,r)},async transform(e,s){a+=e.length,t&&await ir(t,a,r),s.enqueue(e)},async flush(){s&&await ir(s,a)}})}}async function ir(e,...t){try{await e(...t)}catch(e){}}function or(e,t){return{run:()=>(async({options:e,readable:t,writable:r,onTaskFinished:s},a)=>{let n;try{if(!e.useCompressionStream&&!le){let{wasmURI:e}=a;typeof e==X&&(e=e()),await(async(e,{baseURI:t})=>{if(!le){let s,a;try{try{a=new u(e,t)}catch(e){}const r=await fetch(a);s=await r.arrayBuffer()}catch(t){if(!e.startsWith("data:application/wasm;base64,"))throw t;s=(e=>{const t=e.split(",")[1],r=atob(t),s=r.length,a=new f(s);for(let e=0;s>e;++e)a[e]=r.charCodeAt(e);return a.buffer})(e)}r=(await WebAssembly.instantiate(s)).instance.exports,ae=r,({malloc:ne,free:ie,memory:oe}=ae),le=!0}var r})(e,a)}n=new tr(e,a),await t.pipeThrough(n).pipeTo(r,{preventClose:!0,preventAbort:!0});const{signature:s,inputSize:i,outputSize:o}=n;return{signature:s,inputSize:i,outputSize:o}}catch(e){throw n&&(e.outputSize=n.outputSize),e}finally{s()}})(e,t)}}function cr(e,t){const{baseURI:s,chunkSize:a}=t;let{wasmURI:n}=t;if(!e.interface){let i;typeof n==X&&(n=n());try{i=((e,t,s)=>{const a={type:"module"};let n,i;if(typeof e==X&&(e=e()),e.startsWith("data:")||e.startsWith("blob:"))try{i=new A(e)}catch(t){i=new A(e,a)}else{try{n=new u(e,t)}catch(t){n=e}i=new A(n,a)}return i.addEventListener("message",e=>(async({data:e},t)=>{const{type:s,value:a,messageId:n,result:i,error:o}=e,{reader:c,writer:l,resolveResult:d,rejectResult:u,onTaskFinished:h}=t;try{if(o){const{message:e,stack:t,code:s,name:a,outputSize:n}=o,i=new p(e);r.assign(i,{stack:t,code:s,name:a,outputSize:n}),w(i)}else{if("pull"==s){const{value:e,done:r}=await c.read();dr({type:Jt,value:e,done:r,messageId:n},t)}s==Jt&&(await l.ready,await l.write(new f(a)),dr({type:"ack",messageId:n},t)),s==Qt&&w(null,i)}}catch(o){dr({type:Qt,messageId:n},t),w(o)}function w(e,t){e?u(e):d(t),l&&l.releaseLock(),h()}})(e,s)),i})(e.workerURI,s,e)}catch(r){return sr=!1,or(e,t)}r.assign(e,{worker:i,interface:{run:()=>(async(e,t)=>{let s,a;const n=new y((e,t)=>{s=e,a=t});r.assign(e,{reader:null,writer:null,resolveResult:s,rejectResult:a,result:n});const{readable:i,options:o}=e,{writable:c,closed:l}=(e=>{let t;const r=new y(e=>t=e);return{writable:new F({async write(t){const r=e.getWriter();await r.ready,await r.write(t),r.releaseLock()},close(){t()},abort:t=>e.getWriter().abort(t)}),closed:r}})(e.writable),d=dr({type:"start",options:o,config:t,readable:i,writable:c},e);d||r.assign(e,{reader:i.getReader(),writer:c.getWriter()});const u=await n;return d||await c.getWriter().close(),await l,u})(e,{chunkSize:a,wasmURI:n,baseURI:s})}})}return e.interface}let lr=!0;function dr(e,{worker:t,writer:r,onTaskFinished:s,transferStreams:a}){try{const{value:r,readable:s,writable:n}=e,i=[];if(r&&(r.byteLength<r.buffer.byteLength?e.value=r.buffer.slice(0,r.byteLength):e.value=r.buffer,i.push(e.value)),a&&lr?(s&&i.push(s),n&&i.push(n)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch(r){lr=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),s(),e}}let ur=[];const pr=[];let fr=0;async function hr(e,t){const{options:r,config:s}=t,{transferStreams:n,useWebWorkers:i,useCompressionStream:o,compressed:c,signed:l,encrypted:d}=r,{workerURI:u,maxWorkers:p}=s;t.transferStreams=n||n===G;const f=!(c||l||d||t.transferStreams);return t.useWebWorkers=!f&&(i||i===G&&s.useWebWorkers),t.workerURI=t.useWebWorkers&&u?u:G,r.useCompressionStream=o||o===G&&s.useCompressionStream,(await(async()=>{const r=ur.find(e=>!e.busy);if(r)return wr(r),new ar(r,e,t,h);if(ur.length<p){const r={indexWorker:fr};return fr++,ur.push(r),new ar(r,e,t,h)}return new y(r=>pr.push({resolve:r,stream:e,workerOptions:t}))})()).run();function h(e){if(pr.length){const[{resolve:t,stream:r,workerOptions:s}]=pr.splice(0,1);t(new ar(e,r,s,h))}else e.worker?(wr(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:s}=r;a.isFinite(s)&&s>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{ur=ur.filter(t=>t!=e);try{await e.terminate()}catch(e){}},s))})(e,t)):ur=ur.filter(t=>t!=e)}}function wr(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const mr="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function gr(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=mr[e[r]];return t}})(e):new z(t).decode(e)}const yr="filename",br="rawFilename",zr="comment",Sr="rawComment",xr="uncompressedSize",Rr="compressedSize",Dr="offset",Er="diskNumberStart",Fr="lastModDate",_r="rawLastModDate",kr="lastAccessDate",Tr="creationDate",Ar="internalFileAttributes",vr="externalFileAttributes",Ur="msDosCompatible",Cr="zip64",Nr="encrypted",Wr="version",Ir="versionMadeBy",Or="zipCrypto",Mr="directory",Lr="executable",Br="compressionMethod",Hr="signature",Pr="extraField",Zr=[yr,br,Rr,xr,Fr,_r,zr,Sr,kr,Tr,Dr,Er,Er,Ar,vr,Ur,Cr,Nr,Wr,Ir,Or,Mr,Lr,Br,Hr,Pr,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Vr{constructor(e){Zr.forEach(t=>this[t]=e[t])}}const qr="password",Kr="rawPassword",Yr="passThrough",Gr="signal",jr="useWebWorkers",Xr="useCompressionStream",Jr="preventClose",Qr="supportZip64SplitFile",$r="offset",es="usdz",ts="File format is not recognized",rs="End of central directory not found",ss="End of Zip64 central directory locator not found",as="Central directory header not found",ns="Local file header not found",is="Zip64 extra field not found",os="File contains encrypted entry",cs="Encryption method not supported",ls="Compression method not supported",ds="Split zip file",us="Overlapping entry found",ps="utf-8",fs="cp437",hs=[[xr,U],[Rr,U],[Dr,U],[Er,C]],ws={[C]:{getValue:Fs,bytes:4},[U]:{getValue:_s,bytes:8}};class ms{constructor(e,t={}){r.assign(this,{reader:new qe(e),options:t,config:ee(),readRanges:[]})}async*getEntriesGenerator(e={}){const t=this;let{reader:s}=t;const{config:a}=t;if(await Ye(s),s.size!==G&&s.readUint8Array||(s=new Re(await new d(s.readable).blob()),await Ye(s)),s.size<H)throw new p(ts);s.chunkSize=te(a);const n=await(async(e,t,r)=>{const s=new f(4);var a;return a=t,ks(s).setUint32(0,a,!0),await n(22)||await n(i.min(1048582,r));async function n(t){const a=r-t,n=await Ge(e,a,t);for(let e=n.length-22;e>=0;e--)if(n[e]==s[0]&&n[e+1]==s[1]&&n[e+2]==s[2]&&n[e+3]==s[3])return{offset:a+e,buffer:n.slice(e,e+22).buffer}}})(s,M,s.size);if(!n)throw Fs(ks(await Ge(s,0,4)))==W?new p(ds):new p(rs);const o=ks(n);let c=Fs(o,12),l=Fs(o,16);const u=n.offset,h=Es(o,20),w=u+H+h;let m=Es(o,4);const g=s.lastDiskNumber||0;let b=Es(o,6),z=Es(o,8),S=0,x=0;if(l==U||c==U||z==C||b==C){const e=ks(await Ge(s,n.offset-20,20));if(Fs(e,0)==B){l=_s(e,8);let t=await Ge(s,l,56,-1),r=ks(t);const a=n.offset-20-56;if(Fs(r,0)!=L&&l!=a){const e=l;l=a,l>e&&(S=l-e),t=await Ge(s,l,56,-1),r=ks(t)}if(Fs(r,0)!=L)throw new p(ss);m==C&&(m=Fs(r,16)),b==C&&(b=Fs(r,20)),z==C&&(z=_s(r,32)),c==U&&(c=_s(r,40)),l-=c}}if(l<s.size||(S=s.size-l-c-H,l=s.size-c-H),g!=m)throw new p(ds);if(0>l)throw new p(ts);let R=0,E=await Ge(s,l,c,b),F=ks(E);if(c){const e=n.offset-c;if(Fs(F,R)!=O&&l!=e){const t=l;l=e,l>t&&(S+=l-t),E=await Ge(s,l,c,b),F=ks(E)}}const _=n.offset-l-(s.lastDiskOffset||0);if(c==_||0>_||(c=_,E=await Ge(s,l,c,b),F=ks(E)),0>l||l>=s.size)throw new p(ts);const k=Ss(t,e,"filenameEncoding"),T=Ss(t,e,"commentEncoding");for(let n=0;z>n;n++){const o=new gs(s,a,t.options);if(Fs(F,R)!=O)throw new p(as);ys(o,F,R+6);const c=!!o.bitFlag.languageEncodingFlag,l=R+46,u=l+o.filenameLength,f=u+o.extraFieldLength,h=Es(F,R+4),w=!(h>>8),m=h>>8==3,g=E.subarray(l,u),b=Es(F,R+32),_=f+b,A=E.subarray(f,_),v=c,U=c,C=Fs(F,R+38),N=w&&!(16&~Ds(F,R+38))||m&&16384==(C>>16&61440)||g.length&&47==g.at(-1),W=m&&!!(C>>16&73),I=Fs(F,R+42)+S;r.assign(o,{versionMadeBy:h,msDosCompatible:w,compressedSize:0,uncompressedSize:0,commentLength:b,directory:N,offset:I,diskNumberStart:Es(F,R+34),internalFileAttributes:Es(F,R+36),externalFileAttributes:C,rawFilename:g,filenameUTF8:v,commentUTF8:U,rawExtraField:E.subarray(u,f),executable:W}),o.internalFileAttribute=o.internalFileAttributes,o.externalFileAttribute=o.externalFileAttributes;const M=Ss(t,e,"decodeText")||gr,L=v?ps:k||fs,B=U?ps:T||fs;let H=M(g,L);H===G&&(H=gr(g,L));let P=M(A,B);P===G&&(P=gr(A,B)),r.assign(o,{rawComment:A,filename:H,comment:P,directory:N||H.endsWith(V)}),x=i.max(I,x),bs(o,o,F,R+6),o.zipCrypto=o.encrypted&&!o.extraFieldAES;const Z=new Vr(o);Z.getData=(e,r)=>o.getData(e,Z,t.readRanges,r),Z.arrayBuffer=async e=>{const r=new D,[s]=await y.all([new d(r.readable).arrayBuffer(),o.getData(r,Z,t.readRanges,e)]);return s},R=_;const{onprogress:q}=e;if(q)try{await q(n+1,z,new Vr(o))}catch(e){}yield Z}const A=Ss(t,e,"extractPrependedData"),v=Ss(t,e,"extractAppendedData");return A&&(t.prependedData=x>0?await Ge(s,0,x):new f),t.comment=h?await Ge(s,u+H,h):new f,v&&(t.appendedData=w<s.size?await Ge(s,w,s.size-w):new f),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}let gs=class{constructor(e,t,s){r.assign(this,{reader:e,config:t,options:s})}async getData(e,t,s,a={}){const n=this,{reader:i,offset:o,diskNumberStart:c,extraFieldAES:l,extraFieldZip64:d,compressionMethod:u,config:h,bitFlag:w,signature:m,rawLastModDate:g,uncompressedSize:y,compressedSize:b}=n,{dataDescriptor:z}=w,S=t.localDirectory={},x=ks(await Ge(i,o,q,c));let R=Ss(n,a,qr),D=Ss(n,a,Kr);const E=Ss(n,a,Yr);if(R=R&&R.length&&R,D=D&&D.length&&D,l&&99!=l.originalCompressionMethod)throw new p(ls);if(0!=u&&8!=u&&9!=u&&!E)throw new p(ls);if(Fs(x,0)!=N)throw new p(ns);ys(S,x,4);const{extraFieldLength:_,filenameLength:k,lastAccessDate:T,creationDate:A}=S;S.rawExtraField=_?await Ge(i,o+q+k,_,c):new f,bs(n,S,x,4,!0),r.assign(t,{lastAccessDate:T,creationDate:A});const v=n.encrypted&&S.encrypted&&!E,U=v&&!l;if(E||(t.zipCrypto=U),v){if(!U&&l.strength===G)throw new p(cs);if(!R&&!D)throw new p(os)}const C=o+q+k+_,W=b,O=i.readable;r.assign(O,{diskNumberStart:c,offset:C,size:W});const M=Ss(n,a,Gr),L=Ss(n,a,"checkPasswordOnly");let B=Ss(n,a,"checkOverlappingEntry");const H=Ss(n,a,"checkOverlappingEntryOnly");H&&(B=!0);const{onstart:P,onprogress:Z,onend:V}=a,K=9==u;let Y=Ss(n,a,Xr);K&&(Y=!1);const j={options:{codecType:er,password:R,rawPassword:D,zipCrypto:U,encryptionStrength:l&&l.strength,signed:Ss(n,a,"checkSignature")&&!E,passwordVerification:U&&(z?g>>>8&255:m>>>24&255),outputSize:y,signature:m,compressed:0!=u&&!E,encrypted:n.encrypted&&!E,useWebWorkers:Ss(n,a,jr),useCompressionStream:Y,transferStreams:Ss(n,a,"transferStreams"),deflate64:K,checkPasswordOnly:L},config:h,streamOptions:{signal:M,size:W,onstart:P,onprogress:Z,onend:V}};let X;B&&await(async({reader:e,fileEntry:t,offset:r,diskNumberStart:s,signature:a,compressedSize:n,uncompressedSize:i,dataOffset:o,dataDescriptor:c,extraFieldZip64:l,readRanges:d})=>{let u=0;if(s)for(let t=0;s>t;t++)u+=e.readers[t].size;let f=0;if(c&&(f=l?20:12),f){const r=await Ge(e,o+n,f+4,s);if(Fs(ks(r),0)==I){const e=Fs(ks(r),4);let s,o;l?(s=_s(ks(r),8),o=_s(ks(r),16)):(s=Fs(ks(r),8),o=Fs(ks(r),12)),(t.encrypted&&!t.zipCrypto||e==a)&&s==n&&o==i&&(f+=4)}}const h={start:u+r,end:u+o+n+f,fileEntry:t};for(const e of d)if(e.fileEntry!=t&&h.start>=e.start&&h.start<e.end){const t=new p(us);throw t.overlappingEntry=e.fileEntry,t}d.push(h)})({reader:i,fileEntry:t,offset:o,diskNumberStart:c,signature:m,compressedSize:b,uncompressedSize:y,dataOffset:C,dataDescriptor:z||S.bitFlag.dataDescriptor,extraFieldZip64:d||S.extraFieldZip64,readRanges:s});try{if(!H){L&&(e=new F),e=new Ke(e),await Ye(e,E?b:y),({writable:X}=e);const{outputSize:t}=await hr({readable:O,writable:X},j);if(e.size+=t,t!=(E?b:y))throw new p(qt)}}catch(t){if(t.outputSize!==G&&(e.size+=t.outputSize),!L||t.message!=ot)throw t}finally{Ss(n,a,Jr)||!X||X.locked||await X.getWriter().close()}return L||H?G:e.getData?e.getData():X}};function ys(e,t,s){const a=e.rawBitFlag=Es(t,s+2),n=!(1&~a),i=Fs(t,s+6);r.assign(e,{encrypted:n,version:Es(t,s),bitFlag:{level:(6&a)>>1,dataDescriptor:!(8&~a),languageEncodingFlag:(a&Z)==Z},rawLastModDate:i,lastModDate:xs(i),filenameLength:Es(t,s+22),extraFieldLength:Es(t,s+24)})}function bs(e,t,s,a,n){const{rawExtraField:i}=t,l=t.extraField=new c,d=ks(new f(i));let u=0;try{for(;u<i.length;){const e=Es(d,u),t=Es(d,u+2);l.set(e,{type:e,data:i.slice(u+4,u+4+t)}),u+=4+t}}catch(e){}const h=Es(s,a+4);r.assign(t,{signature:Fs(s,a+10),compressedSize:Fs(s,a+14),uncompressedSize:Fs(s,a+18)});const w=l.get(1);w&&(((e,t)=>{t.zip64=!0;const r=ks(e.data),s=hs.filter(([e,r])=>t[e]==r);for(let a=0,n=0;a<s.length;a++){const[i,o]=s[a];if(t[i]==o){const s=ws[o];t[i]=e[i]=s.getValue(r,n),n+=s.bytes}else if(e[i])throw new p(is)}})(w,t),t.extraFieldZip64=w);const m=l.get(28789);m&&(zs(m,yr,br,t,e),t.extraFieldUnicodePath=m);const g=l.get(25461);g&&(zs(g,zr,Sr,t,e),t.extraFieldUnicodeComment=g);const y=l.get(39169);y?(((e,t,s)=>{const a=ks(e.data),n=Ds(a,4);r.assign(e,{vendorVersion:Ds(a,0),vendorId:Ds(a,2),strength:n,originalCompressionMethod:s,compressionMethod:Es(a,5)}),t.compressionMethod=e.compressionMethod})(y,t,h),t.extraFieldAES=y):t.compressionMethod=h;const b=l.get(10);b&&(((e,t)=>{const s=ks(e.data);let a,n=4;try{for(;n<e.data.length&&!a;){const t=Es(s,n),r=Es(s,n+2);1==t&&(a=e.data.slice(n+4,n+4+r)),n+=4+r}}catch(e){}try{if(a&&24==a.length){const s=ks(a),n=s.getBigUint64(0,!0),i=s.getBigUint64(8,!0),o=s.getBigUint64(16,!0);r.assign(e,{rawLastModDate:n,rawLastAccessDate:i,rawCreationDate:o});const c={lastModDate:Rs(n),lastAccessDate:Rs(i),creationDate:Rs(o)};r.assign(e,c),r.assign(t,c)}}catch(e){}})(b,t),t.extraFieldNTFS=b);const z=l.get(P);z&&(((e,t,r)=>{const s=ks(e.data),a=Ds(s,0),n=[],i=[];r?(1&~a||(n.push(Fr),i.push(_r)),2&~a||(n.push(kr),i.push("rawLastAccessDate")),4&~a||(n.push(Tr),i.push("rawCreationDate"))):5>e.data.length||(n.push(Fr),i.push(_r));let c=1;n.forEach((r,a)=>{if(e.data.length>=c+4){const n=Fs(s,c);t[r]=e[r]=new o(1e3*n);const l=i[a];e[l]=n}c+=4})})(z,t,n),t.extraFieldExtendedTimestamp=z);const S=l.get(6534);S&&(t.extraFieldUSDZ=S)}function zs(e,t,s,a,n){const i=ks(e.data),o=new Xe;o.append(n[s]);const c=ks(new f(4));c.setUint32(0,o.get(),!0);const l=Fs(i,1);r.assign(e,{version:Ds(i,0),[t]:gr(e.data.subarray(5)),valid:!n.bitFlag.languageEncodingFlag&&l==Fs(c,0)}),e.valid&&(a[t]=e[t],a[t+"UTF8"]=!0)}function Ss(e,t,r){return t[r]===G?e.options[r]:t[r]}function xs(e){const t=(4294901760&e)>>16,r=65535&e;try{return new o(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&r)>>11,(2016&r)>>5,2*(31&r),0)}catch(e){}}function Rs(e){return new o(a(e/n(1e4)-n(116444736e5)))}function Ds(e,t){return e.getUint8(t)}function Es(e,t){return e.getUint16(t,!0)}function Fs(e,t){return e.getUint32(t,!0)}function _s(e,t){return a(e.getBigUint64(t,!0))}function ks(e){return new m(e.buffer)}const Ts="File already exists",As="Zip file comment exceeds 64KB",vs="File entry comment exceeds 64KB",Us="File entry name exceeds 64KB",Cs="Version exceeds 65535",Ns="The strength must equal 1, 2, or 3",Ws="Extra field type exceeds 65535",Is="Extra field data exceeds 64KB",Os="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",Ms="Undefined uncompressed size",Ls="Zip file not empty",Bs=new f([7,0,2,0,65,69,3,0,0]);let Hs=0;const Ps=[];class Zs{constructor(e,t={}){const s=(e=new Ke(e)).availableSize!==G&&e.availableSize>0&&e.availableSize!==1/0&&e.maxSize!==G&&e.maxSize>0&&e.maxSize!==1/0;r.assign(this,{writer:e,addSplitZipSignature:s,options:t,config:ee(),files:new c,filenames:new l,offset:t[$r]===G?e.size||e.writable.size||0:t[$r],pendingEntriesSize:0,pendingAddFileCalls:new l,bufferedWrites:0})}async prependZip(e){if(this.filenames.size)throw new p(Ls);e=new qe(e);const t=new ms(e.readable),s=await t.getEntries();await t.close(),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.filenames=new l(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,compressionMethod:s,lastModDate:a,lastAccessDate:n,creationDate:i,rawFilename:o,bitFlag:c,encrypted:l,uncompressedSize:d,compressedSize:u,diskOffset:p,diskNumber:h,zip64:w}=e;let{rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraField:z}=e;const{level:S,languageEncodingFlag:x,dataDescriptor:R}=c;m=m||new f,g=g||new f,y=y||new f,b=b||new f,z=z||new f;const D=ta(m,g,y,b,z),E=w&&d>U,F=w&&u>U,{headerArray:_,headerView:k}=ra({version:t,bitFlag:sa(S,x,R,l,s),compressionMethod:s,uncompressedSize:d,compressedSize:u,lastModDate:a,rawFilename:o,zip64CompressedSize:F,zip64UncompressedSize:E,extraFieldLength:D});return r.assign(e,{zip64UncompressedSize:E,zip64CompressedSize:F,zip64Offset:w&&this.offset-p>U,zip64DiskNumberStart:w&&h>C,rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraField:z,extendedTimestamp:y.length>0||b.length>0,extraFieldExtendedTimestampFlag:1+(n?2:0)+(i?4:0),headerArray:_,headerView:k}),[e.filename,e]}))}async add(e="",s,a={}){const c=this,{pendingAddFileCalls:l,config:u}=c;let w;Hs<u.maxWorkers?Hs++:await new y(e=>Ps.push(e));try{if(e=e.trim(),c.filenames.has(e))throw new p(Ts);return c.filenames.add(e),w=(async(e,s,a,c)=>{s=s.trim();const l=Ys(e,c,Ur),u=Ys(e,c,Ir,l?20:768),w=Ys(e,c,Lr);if(u>C)throw new p(Cs);let m=Ys(e,c,vr,0);!c[Mr]&&s.endsWith(V)&&(c[Mr]=!0),Ys(e,c,Mr)?(s.endsWith(V)||(s+=V),0===m&&(m=16,l||(m|=16877<<16))):l||0!==m||(m=w?493<<16:27525120);const g=Ys(e,c,"encodeText",Qe);let b=g(s);if(b===G&&(b=Qe(s)),ta(b)>C)throw new p(Us);const z=c[zr]||"";let S=g(z);if(S===G&&(S=Qe(z)),ta(S)>C)throw new p(vs);const x=Ys(e,c,Wr,20);if(x>C)throw new p(Cs);const R=Ys(e,c,Fr,new o),E=Ys(e,c,kr),F=Ys(e,c,Tr),_=Ys(e,c,Ar,0),k=Ys(e,c,Yr);let T,A;k||(T=Ys(e,c,qr),A=Ys(e,c,Kr));const v=Ys(e,c,"encryptionStrength",3),O=Ys(e,c,Or),M=Ys(e,c,"extendedTimestamp",!0),L=Ys(e,c,"keepOrder",!0),B=Ys(e,c,jr),H=Ys(e,c,"bufferedWrite"),Z=Ys(e,c,"dataDescriptorSignature",!1),j=Ys(e,c,Gr),X=Ys(e,c,"useUnicodeFileNames",!0),J=Ys(e,c,Br);let Q=Ys(e,c,"level"),$=Ys(e,c,Xr),ee=Ys(e,c,"dataDescriptor");H&&ee===G&&(ee=!1),(ee===G||O)&&(ee=!0),Q!==G&&6!=Q&&($=!1),$||e.config.CompressionStream!==G||e.config.CompressionStreamZlib!==G||(Q=0);let re=Ys(e,c,Cr);if(!O&&(T!==G||A!==G)&&(1>v||v>3))throw new p(Ns);let se=new f;const ae=c[Pr];if(ae){let e=0,t=0;ae.forEach(t=>e+=4+ta(t)),se=new f(e),ae.forEach((e,r)=>{if(r>C)throw new p(Ws);if(ta(e)>C)throw new p(Is);$s(se,new h([r]),t),$s(se,new h([ta(e)]),t+2),$s(se,e,t+4),t+=4+ta(e)})}let ne=0,ie=0,oe=0;if(k&&(oe=c[xr],oe===G))throw new p(Ms);const ce=!0===re;a&&(a=new qe(a),await Ye(a),k?(c.uncompressedSize=oe,ne=Gs(oe)):a.size===G?(ee=!0,(re||re===G)&&(re=!0,oe=ne=4294967296)):(c.uncompressedSize=oe=a.size,ne=Gs(oe)));const{diskOffset:le,diskNumber:de,maxSize:ue}=e.writer,pe=ce||oe>U,fe=ce||ne>U,he=ce||e.offset+e.pendingEntriesSize-le>U,we=Ys(e,c,Qr,!0)&&ce||de+i.ceil(e.pendingEntriesSize/ue)>C;if(he||pe||fe||we){if(!1===re||!L)throw new p(Os);re=!0}re=re||!1;const me=Ys(e,c,Nr),ge=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:s,creationDate:a,level:o,zip64:c,zipCrypto:l,useUnicodeFileNames:d,dataDescriptor:u,directory:p,rawExtraField:h,encryptionStrength:w,extendedTimestamp:m,passThrough:g,encrypted:y,zip64UncompressedSize:b,zip64CompressedSize:z,zip64Offset:S,zip64DiskNumberStart:x,uncompressedSize:R,offset:D,diskNumberStart:E}=e;let{version:F,compressionMethod:_}=e;const k=!p&&(o>0||o===G&&0!==_);let T;const A=g||!k,v=c&&(e.bufferedWrite||!b&&!z||A);if(c){let e=4;b&&(e+=8),z&&(e+=8),S&&(e+=8),x&&(e+=4),T=new f(e);const t=ea(T);if(Xs(t,0,1),Xs(t,2,ta(T)-4),v){const e=ea(T);let t=4;b&&(Qs(e,t,n(R)),t+=8),z&&A&&(Qs(e,t,n(R)),t+=8),S&&(Qs(e,t,n(D)),t+=8),x&&(Js(e,t,E),t+=4)}}else T=new f;let U,C,W,I;if(y&&!l){U=new f(ta(Bs)+2);const e=ea(U);Xs(e,0,39169),$s(U,Bs,2),js(e,8,w)}else U=new f;if(m){W=new f(9+(s?4:0)+(a?4:0));const e=ea(W);Xs(e,0,P),Xs(e,2,ta(W)-4),I=1+(s?2:0)+(a?4:0),js(e,4,I);let t=5;Js(e,t,i.floor(r.getTime()/1e3)),t+=4,s&&(Js(e,t,i.floor(s.getTime()/1e3)),t+=4),a&&Js(e,t,i.floor(a.getTime()/1e3));try{C=new f(36);const e=ea(C),t=Ks(r);Xs(e,0,10),Xs(e,2,32),Xs(e,8,1),Xs(e,10,24),Qs(e,12,t),Qs(e,20,Ks(s)||t),Qs(e,28,Ks(a)||t)}catch(e){C=new f}}else C=W=new f;_===G&&(_=k?8:0),c&&(F=F>45?F:45),y&&!l&&(F=F>51?F:51,U[9]=_,_=99);const O=v?ta(T):0,M=O+ta(U,W,C,h),{headerArray:L,headerView:B,rawLastModDate:H}=ra({version:F,bitFlag:sa(o,d,u,y,_),compressionMethod:_,uncompressedSize:R,lastModDate:Y>r?Y:r>K?K:r,rawFilename:t,zip64CompressedSize:z,zip64UncompressedSize:b,extraFieldLength:M});let Z=q;const V=new f(Z+ta(t)+M),j=ea(V);return Js(j,0,N),$s(V,L,4),$s(V,t,Z),Z+=ta(t),v&&$s(V,T,Z),Z+=O,$s(V,U,Z),Z+=ta(U),$s(V,W,Z),Z+=ta(W),$s(V,C,Z),Z+=ta(C),$s(V,h,Z),u&&(Js(j,18,0),Js(j,22,0)),{localHeaderArray:V,localHeaderView:j,headerArray:L,headerView:B,lastModDate:r,rawLastModDate:H,encrypted:y,compressed:k,version:F,compressionMethod:_,extraFieldExtendedTimestampFlag:I,rawExtraFieldZip64:T,localExtraFieldZip64Length:O,rawExtraFieldExtendedTimestamp:W,rawExtraFieldNTFS:C,rawExtraFieldAES:U,extraFieldLength:M}})(c=r.assign({},c,{rawFilename:b,rawComment:S,version:x,versionMadeBy:u,lastModDate:R,lastAccessDate:E,creationDate:F,rawExtraField:se,zip64:re,zip64UncompressedSize:pe,zip64CompressedSize:fe,zip64Offset:he,zip64DiskNumberStart:we,password:T,rawPassword:A,level:Q,useWebWorkers:B,encryptionStrength:v,extendedTimestamp:M,zipCrypto:O,bufferedWrite:H,keepOrder:L,useUnicodeFileNames:X,dataDescriptor:ee,dataDescriptorSignature:Z,signal:j,msDosCompatible:l,internalFileAttribute:_,internalFileAttributes:_,externalFileAttribute:m,externalFileAttributes:m,useCompressionStream:$,passThrough:k,encrypted:!!(T&&ta(T)||A&&ta(A))||k&&me,signature:c[Hr],compressionMethod:J,uncompressedSize:oe,offset:e.offset-le,diskNumberStart:de})),ye=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:r})=>{let s,a=new f,n=0,i=e?20:12;return r&&(i+=4),t&&(a=new f(i),s=ea(a),r&&(n=4,Js(s,0,I))),{dataDescriptorArray:a,dataDescriptorView:s,dataDescriptorOffset:n}})(c),be=ta(ge.localHeaderArray,ye.dataDescriptorArray);let ze;ie=be+ne,e.options[es]&&(ie+=ie+64),e.pendingEntriesSize+=ie;try{ze=await(async(e,s,a,i,o)=>{const{files:c,writer:l}=e,{keepOrder:u,dataDescriptor:h,signal:w}=o,{headerInfo:m}=i,g=e.options[es],b=t.from(c.values()).pop();let z,S,x,R,E,F,_,k={};c.set(s,k);try{let t;u&&(t=b&&b.lock,k.lock=new y(e=>x=e)),!(o.bufferedWrite||e.writerLocked||e.bufferedWrites&&u)&&h||g?(F=l,await T()):(F=new D,F.size=0,z=!0,e.bufferedWrites++,await Ye(l)),await Ye(F);const{writable:S,diskOffset:v}=l;if(e.addSplitZipSignature){delete e.addSplitZipSignature;const t=new f(4);Js(ea(t),0,W),await qs(l,t),e.offset+=4}g&&((e,t)=>{const{headerInfo:r}=e;let{localHeaderArray:s,extraFieldLength:a}=r,n=ea(s),i=64-(t+ta(s))%64;4>i&&(i+=64);const o=new f(i),c=ea(o);Xs(c,0,6534),Xs(c,2,i-2);const l=s;r.localHeaderArray=s=new f(ta(l)+i),$s(s,l),$s(s,o,ta(l)),n=ea(s),Xs(n,28,a+i),e.metadataSize+=i})(i,e.offset-v);const{localHeaderView:C,localHeaderArray:N}=m;z||(await t,await A(S));const{diskNumber:I}=l;E=!0,k.diskNumberStart=I,z?_=new d(F.readable).blob():await qs(F,N),k=await(async(e,t,{diskNumberStart:s,lock:a},i,o,c)=>{const{headerInfo:l,dataDescriptorInfo:d,metadataSize:u}=i,{headerArray:p,headerView:f,lastModDate:h,rawLastModDate:w,encrypted:m,compressed:g,version:y,compressionMethod:b,rawExtraFieldZip64:z,localExtraFieldZip64Length:S,rawExtraFieldExtendedTimestamp:x,extraFieldExtendedTimestampFlag:R,rawExtraFieldNTFS:D,rawExtraFieldAES:E}=l,{dataDescriptorArray:F}=d,{rawFilename:_,lastAccessDate:k,creationDate:T,password:A,rawPassword:v,level:U,zip64:C,zip64UncompressedSize:N,zip64CompressedSize:W,zip64Offset:I,zip64DiskNumberStart:O,zipCrypto:M,dataDescriptor:L,directory:B,executable:H,versionMadeBy:P,rawComment:Z,rawExtraField:V,useWebWorkers:q,onstart:K,onprogress:Y,onend:j,signal:X,encryptionStrength:J,extendedTimestamp:Q,msDosCompatible:$,internalFileAttributes:ee,externalFileAttributes:re,useCompressionStream:se,passThrough:ae}=c,ne={lock:a,versionMadeBy:P,zip64:C,directory:!!B,executable:!!H,filenameUTF8:!0,rawFilename:_,commentUTF8:!0,rawComment:Z,rawExtraFieldZip64:z,localExtraFieldZip64Length:S,rawExtraFieldExtendedTimestamp:x,rawExtraFieldNTFS:D,rawExtraFieldAES:E,rawExtraField:V,extendedTimestamp:Q,msDosCompatible:$,internalFileAttributes:ee,externalFileAttributes:re,diskNumberStart:s};let{signature:ie,uncompressedSize:oe}=c,ce=0;ae||(oe=0);const{writable:le}=t;if(e){e.chunkSize=te(o);const r=e.readable,s=e.size,a={options:{codecType:$t,level:U,rawPassword:v,password:A,encryptionStrength:J,zipCrypto:m&&M,passwordVerification:m&&M&&w>>8&255,signed:!ae,compressed:g&&!ae,encrypted:m&&!ae,useWebWorkers:q,useCompressionStream:se,transferStreams:!1},config:o,streamOptions:{signal:X,size:s,onstart:K,onprogress:Y,onend:j}};try{const e=await hr({readable:r,writable:le},a);ce=e.outputSize,t.size+=ce,ae||(oe=e.inputSize,ie=e.signature)}catch(e){throw e.outputSize!==G&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:r,headerInfo:s,dataDescriptorInfo:a},{zip64:i,zipCrypto:o,dataDescriptor:c})=>{const{headerView:l,encrypted:d}=s,{dataDescriptorView:u,dataDescriptorOffset:p}=a;d&&!o||e===G||(Js(l,10,e),c&&Js(u,p,e)),i?c&&(Qs(u,p+4,n(t)),Qs(u,p+12,n(r))):(Js(l,14,t),Js(l,18,r),c&&(Js(u,p+4,t),Js(u,p+8,r)))})({signature:ie,compressedSize:ce,uncompressedSize:oe,headerInfo:l,dataDescriptorInfo:d},c),L&&await qs(t,F),r.assign(ne,{uncompressedSize:oe,compressedSize:ce,lastModDate:h,rawLastModDate:w,creationDate:T,lastAccessDate:k,encrypted:m,zipCrypto:M,size:u+ce,compressionMethod:b,version:y,headerArray:p,headerView:f,signature:ie,extraFieldExtendedTimestampFlag:R,zip64UncompressedSize:N,zip64CompressedSize:W,zip64Offset:I,zip64DiskNumberStart:O}),ne})(a,F,k,i,e.config,o);const{zip64:O}=k;if(E=!1,c.set(s,k),k.filename=s,z){const[r]=await y.all([_,F.writable.getWriter().close(),t]);await T(),R=!0,k.diskNumberStart=l.diskNumber,k.offset=e.offset-l.diskOffset,O&&Vs(k),(({rawFilename:e,encrypted:t,zip64:r,localExtraFieldZip64Length:s,signature:a,compressedSize:i,uncompressedSize:o,offset:c,diskNumberStart:l,zip64UncompressedSize:d,zip64CompressedSize:u,zip64Offset:p,zip64DiskNumberStart:f},h,{dataDescriptor:w})=>{if(w||(t||Js(h,14,a),r||(Js(h,18,i),Js(h,22,o))),r&&s){let t=q+ta(e)+4;d&&(Qs(h,t,n(o)),t+=8),u&&(Qs(h,t,n(i)),t+=8),p&&(Qs(h,t,n(c)),t+=8),f&&Js(h,t,l)}})(k,C,o),await A(S),await qs(l,N),await r.stream().pipeTo(S,{preventClose:!0,preventAbort:!0,signal:w}),l.size+=F.size,R=!1}else k.offset=e.offset-v,O&&Vs(k);if(k.offset>U&&!O)throw new p(Os);return e.offset+=k.size,k}catch(t){if(z&&R||!z&&E){if(e.hasCorruptedEntries=!0,t)try{t.corruptedEntry=!0}catch(e){}z?e.offset+=F.size:e.offset=F.size}throw c.delete(s),t}finally{z&&e.bufferedWrites--,x&&x(),S&&S()}async function T(){e.writerLocked=!0;const{lockWriter:t}=e;e.lockWriter=new y(t=>S=()=>{e.writerLocked=!1,t()}),await t}async function A(e){ta(m.localHeaderArray)>l.availableSize&&(l.availableSize=0,await qs(e,new f))}})(e,s,a,{headerInfo:ge,dataDescriptorInfo:ye,metadataSize:be},c)}finally{e.pendingEntriesSize-=ie}return r.assign(ze,{name:s,comment:z,extraField:ae}),new Vr(ze)})(c,e,s,a),l.add(w),await w}catch(t){throw c.filenames.delete(e),t}finally{l.delete(w);const e=Ps.shift();e?e():Hs--}}remove(e){const{filenames:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==G){const{filename:s}=e;if(t.has(s)&&r.has(s))return t.delete(s),r.delete(s),!0}return!1}async close(e=new f,r={}){const{pendingAddFileCalls:s,writer:a}=this,{writable:o}=a;for(;s.size;)await y.allSettled(t.from(s));return await(async(e,r,s)=>{const{files:a,writer:o}=e,{diskOffset:c}=o;let{diskNumber:l}=o,d=0,u=0,h=e.offset-c,w=a.size;for(const[,e]of a){const{rawFilename:t,rawExtraFieldZip64:r,rawExtraFieldAES:s,rawComment:a,rawExtraFieldNTFS:n,rawExtraField:o,extendedTimestamp:c,extraFieldExtendedTimestampFlag:l,lastModDate:d}=e;let p;if(c){p=new f(9);const e=ea(p);Xs(e,0,P),Xs(e,2,5),js(e,4,l),Js(e,5,i.floor(d.getTime()/1e3))}else p=new f;e.rawExtraFieldExtendedTimestamp=p,u+=46+ta(t,a,r,s,n,p,o)}const m=new f(u),g=ea(m);await Ye(o);let y=0;for(const[e,r]of t.from(a.values()).entries()){const{offset:t,rawFilename:n,rawExtraFieldZip64:i,rawExtraFieldAES:c,rawExtraFieldExtendedTimestamp:l,rawExtraFieldNTFS:u,rawExtraField:p,rawComment:f,versionMadeBy:h,headerArray:w,headerView:b,zip64:z,zip64UncompressedSize:S,zip64CompressedSize:x,zip64DiskNumberStart:R,zip64Offset:D,internalFileAttributes:E,externalFileAttributes:F,diskNumberStart:_,uncompressedSize:k,compressedSize:T}=r,A=ta(i,c,l,u,p);Js(g,d,O),Xs(g,d+4,h),S||Js(b,18,k),x||Js(b,14,T),$s(m,w,d+6);let v=d+q;if(Xs(g,v,A),v+=2,Xs(g,v,ta(f)),v+=2,Xs(g,v,z&&R?C:_),v+=2,Xs(g,v,E),v+=2,F&&Js(g,v,F),v+=4,Js(g,v,z&&D?U:t),v+=4,$s(m,n,v),v+=ta(n),$s(m,i,v),v+=ta(i),$s(m,c,v),v+=ta(c),$s(m,l,v),v+=ta(l),$s(m,u,v),v+=ta(u),$s(m,p,v),v+=ta(p),$s(m,f,v),d-y>o.availableSize&&(o.availableSize=0,await qs(o,m.slice(y,d)),y=d),d=v,s.onprogress)try{await s.onprogress(e+1,a.size,new Vr(r))}catch(e){}}await qs(o,y?m.slice(y):m);let b=o.diskNumber;const{availableSize:z}=o;H>z&&b++;let S=Ys(e,s,Cr);if(h>U||u>U||w>C||b>C){if(!1===S)throw new p(Os);S=!0}const x=new f(S?98:H),R=ea(x);d=0,S&&(Js(R,0,L),Qs(R,4,n(44)),Xs(R,12,45),Xs(R,14,45),Js(R,16,b),Js(R,20,l),Qs(R,24,n(w)),Qs(R,32,n(w)),Qs(R,40,n(u)),Qs(R,48,n(h)),Js(R,56,B),Qs(R,64,n(h)+n(u)),Js(R,72,b+1),Ys(e,s,Qr,!0)&&(b=C,l=C),w=C,h=U,u=U,d+=76),Js(R,d,M),Xs(R,d+4,b),Xs(R,d+6,l),Xs(R,d+8,w),Xs(R,d+10,w),Js(R,d+12,u),Js(R,d+16,h);const D=ta(r);if(D){if(D>C)throw new p(As);Xs(R,d+20,D)}await qs(o,x),D&&await qs(o,r)})(this,e,r),Ys(this,r,Jr)||await o.getWriter().close(),a.getData?a.getData():o}}function Vs({compressedSize:e,uncompressedSize:t,offset:r,diskNumberStart:s,zip64UncompressedSize:a,zip64CompressedSize:i,zip64Offset:o,zip64DiskNumberStart:c,rawExtraFieldZip64:l}){const d=ea(l);let u=4;a&&(Qs(d,u,n(t)),u+=8),i&&(Qs(d,u,n(e)),u+=8),o&&(Qs(d,u,n(r)),u+=8),c&&Js(d,u,s)}async function qs(e,t){const{writable:r}=e,s=r.getWriter();try{await s.ready,e.size+=ta(t),await s.write(t)}finally{s.releaseLock()}}function Ks(e){if(e)return(n(e.getTime())+n(116444736e5))*n(1e4)}function Ys(e,t,r,s){const a=t[r]===G?e.options[r]:t[r];return a===G?s:a}function Gs(e){return e+5*(i.floor(e/16383)+1)}function js(e,t,r){e.setUint8(t,r)}function Xs(e,t,r){e.setUint16(t,r,!0)}function Js(e,t,r){e.setUint32(t,r,!0)}function Qs(e,t,r){e.setBigUint64(t,r,!0)}function $s(e,t,r){e.set(t,r)}function ea(e){return new m(e.buffer)}function ta(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function ra({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:s,compressedSize:a,lastModDate:n,rawFilename:i,zip64CompressedSize:o,zip64UncompressedSize:c,extraFieldLength:l}){const d=new f(26),u=ea(d);Xs(u,0,e),Xs(u,2,t),Xs(u,4,r);const p=new w(1),h=ea(p);Xs(h,0,(n.getHours()<<6|n.getMinutes())<<5|n.getSeconds()/2),Xs(h,2,(n.getFullYear()-1980<<4|n.getMonth()+1)<<5|n.getDate());const m=p[0];return Js(u,6,m),(o||a!==G)&&Js(u,14,o?U:a),(c||s!==G)&&Js(u,18,c?U:s),Xs(u,22,ta(i)),Xs(u,24,l),{headerArray:d,headerView:u,rawLastModDate:m}}function sa(e,t,r,s,a){let n=0;return t&&(n|=Z),r&&(n|=8),8!=a&&9!=a||(0>e||e>3||(n|=6),e>3&&5>=e&&(n|=4),9==e&&(n|=2)),s&&(n|=1),n}let aa;try{aa=void 0===S&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===S?location.href:v&&"SCRIPT"===v.tagName.toUpperCase()&&v.src||new u("zip-fs-core.min.js",S.baseURI).href}catch(e){}re({baseURI:aa,CompressionStreamZlib:class{constructor(e="deflate",t){return ce(!0,e,t)}},DecompressionStreamZlib:class{constructor(e="deflate",t){return ce(!1,e,t)}}});class na{constructor(e,t,s,a){const n=this;if(e.root&&a&&a.getChildByName(t))throw new p("Entry filename already exists");s||(s={}),r.assign(n,{fs:e,name:t,data:s.data,options:s.options,id:e.entries.length,parent:a,children:[],uncompressedSize:s.uncompressedSize||0,passThrough:s.passThrough}),e.entries.push(n),a&&n.parent.children.push(n)}moveTo(e){this.fs.move(this,e)}getFullname(){return this.getRelativeName()}getRelativeName(e=this.fs.root){let t=this.name,r=this.parent;for(;r&&r!=e;)t=(r.name?r.name+"/":"")+t,r=r.parent;return t}isDescendantOf(e){let t=this.parent;for(;t&&t.id!=e.id;)t=t.parent;return!!t}rename(e){const t=this.parent;if(t&&t.getChildByName(e))throw new p("Entry filename already exists");this.name=e}}class ia extends na{constructor(e,t,r,s){super(e,t,r,s);const a=this;a.Reader=r.Reader,a.Writer=r.Writer,r.getData&&(a.getData=r.getData)}clone(){return new ia(this.fs,this.name,this)}async getData(e,t={}){const r=this;if(!e||e.constructor==r.Writer&&r.data)return r.data;{const s=r.reader=new r.Reader(r.data,t),a=r.data?r.data.uncompressedSize:s.size;await y.all([Ye(s),Ye(e,a)]);const{readable:n}=s;return r.uncompressedSize=s.size,await n.pipeTo(e.writable),e.getData?e.getData():e.writable}}isPasswordProtected(){return this.data.encrypted}async checkPassword(e,t={}){const r=this;if(!r.isPasswordProtected())return!0;t.password=e,t.checkPasswordOnly=!0;try{return await r.data.getData(null,t),!0}catch(e){if(e.message==nt)return!1;throw e}}getText(e,t){return this.getData(new Fe(e),t)}getBlob(e,t){return this.getData(new De(e),t)}getData64URI(e,t){return this.getData(new xe(e),t)}getUint8Array(e){return this.getData(new Pe,e)}getWritable(e=new F,t){return this.getData({writable:e},t)}getArrayBuffer(e){return this.data.arrayBuffer(e)}replaceBlob(e){r.assign(this,{data:e,Reader:Re,Writer:De,reader:null})}replaceText(e){r.assign(this,{data:e,Reader:Ee,Writer:Fe,reader:null})}replaceData64URI(e){r.assign(this,{data:e,Reader:Se,Writer:xe,reader:null})}replaceUint8Array(e){r.assign(this,{data:e,Reader:He,Writer:Pe,reader:null})}replaceReadable(e){r.assign(this,{data:null,Reader:()=>({readable:e}),Writer:null,reader:null})}}class oa extends na{constructor(e,t,r,s){super(e,t,r,s),this.directory=!0}clone(e){const t=this,r=new oa(t.fs,t.name);return e&&(r.children=t.children.map(t=>{const s=t.clone(e);return s.parent=r,s})),r}addDirectory(e,t){return wa(this,e,{options:t},!0)}addText(e,t,r={}){return wa(this,e,{data:t,Reader:Ee,Writer:Fe,options:r,uncompressedSize:t.length})}addBlob(e,t,r={}){return wa(this,e,{data:t,Reader:Re,Writer:De,options:r,uncompressedSize:t.size})}addData64URI(e,t,r={}){let s=t.length;for(;"="==t.charAt(s-1);)s--;const a=t.indexOf(",")+1;return wa(this,e,{data:t,Reader:Se,Writer:xe,options:r,uncompressedSize:i.floor(.75*(s-a))})}addUint8Array(e,t,r={}){return wa(this,e,{data:t,Reader:He,Writer:Pe,options:r,uncompressedSize:t.length})}addHttpContent(e,t,r={}){return wa(this,e,{data:t,Reader:class extends Be{constructor(e){super(e,r)}},options:r})}addReadable(e,t,r={}){return wa(this,e,{Reader:()=>({readable:t}),options:r})}addFileSystemEntry(e,t={}){return pa(this,e,t)}addFileSystemHandle(e,t={}){return pa(this,e,t)}addFile(e,t={}){return t.lastModDate||(t.lastModDate=new o(e.lastModified)),wa(this,e.name,{data:e,Reader:()=>({readable:e.stream(),size:e.size}),options:t,uncompressedSize:e.size})}addData(e,t){return wa(this,e,t)}importBlob(e,t){return this.importZip(new Re(e),t)}importData64URI(e,t){return this.importZip(new Se(e),t)}importUint8Array(e,t){return this.importZip(new He(e),t)}importHttpContent(e,t){return this.importZip(new Be(e,t),t)}importReadable(e,t){return this.importZip({readable:e},t)}exportBlob(e={}){return this.exportZip(new De(e.mimeType||"application/zip"),e)}exportData64URI(e={}){return this.exportZip(new xe(e.mimeType||"application/zip"),e)}exportUint8Array(e={}){return this.exportZip(new Pe,e)}async exportWritable(e=new F,t={}){return await this.exportZip({writable:e},t),e}async importZip(e,t={}){await Ye(e);const s=new ms(e,t),a=[],n=await s.getEntries();for(const e of n){let s=this;try{const n=e.filename.split("/"),i=n.pop();n.forEach((t,r)=>{const i=s;s=s.getChildByName(t),s||(s=new oa(this.fs,t,{data:r==n.length-1?e:null},i),a.push(s))}),e.directory||a.push(wa(s,i,{data:e,Reader:la(r.assign({},t)),uncompressedSize:e.uncompressedSize,passThrough:t.passThrough}))}catch(t){try{t.cause={entry:e}}catch(e){}throw t}}return a}async exportZip(e,s){const a=this;s.bufferedWrite===G&&(s.bufferedWrite=!0),await y.all([da(a,s.readerOptions),Ye(e)]);const n=new Zs(e,s);return await(async(e,s,a,n)=>{const i=s,o=new c;await async function e(s,c){async function l(c){const l=n.relativePath?c.getRelativeName(i):c.getFullname(),d=c.options||{};let u={};if(c.data instanceof Vr){const{externalFileAttributes:e,versionMadeBy:t,comment:s,lastModDate:a,creationDate:n,lastAccessDate:i,uncompressedSize:o,encrypted:l,zipCrypto:d,signature:p,compressionMethod:f,extraFieldAES:h}=c.data;if(u={externalFileAttributes:e,versionMadeBy:t,comment:s,lastModDate:a,creationDate:n,lastAccessDate:i},c.passThrough){let e,t;0===f&&(e=0),h&&(t=h.strength),u=r.assign(u,{passThrough:!0,encrypted:l,zipCrypto:d,signature:p,uncompressedSize:o,level:e,encryptionStrength:t,compressionMethod:f})}}await s.add(l,c.reader,r.assign({},n,u,d,{directory:c.directory,onprogress:async e=>{if(n.onprogress){o.set(l,e);try{await n.onprogress(t.from(o.values()).reduce((e,t)=>e+t),a)}catch(e){}}}})),await e(s,c)}await(async()=>{if(n.bufferedWrite)await y.allSettled(c.children.map(l));else for(const e of c.children)await l(e)})()}(e,s)})(n,a,(e=>{let t=0;return e.forEach(function e(r){t+=r.uncompressedSize,r.children&&r.children.forEach(e)}),t})([a]),s),await n.close(),e.getData?e.getData():e.writable}getChildByName(e){const t=this.children;for(let r=0;r<t.length;r++){const s=t[r];if(s.name==e)return s}}isPasswordProtected(){const e=this.children;for(let t=0;t<e.length;t++)if(e[t].isPasswordProtected())return!0;return!1}async checkPassword(e,t={}){const r=this.children;return!(await y.all(r.map(r=>r.checkPassword(e,t)))).includes(!1)}}const ca={FS:class{constructor(){ha(this)}get children(){return this.root.children}remove(e){ua(e),this.entries[e.id]=null}move(e,t){if(e==this.root)throw new p("Root directory cannot be moved");if(!t.directory)throw new p("Target entry is not a directory");if(t.isDescendantOf(e))throw new p("Entry is a ancestor of target entry");if(e!=t){if(t.getChildByName(e.name))throw new p("Entry filename already exists");ua(e),e.parent=t,t.children.push(e)}}find(e){const t=e.split("/");let r=this.root;for(let e=0;r&&e<t.length;e++)r=r.getChildByName(t[e]);return r}getById(e){return this.entries[e]}getChildByName(e){return this.root.getChildByName(e)}addDirectory(e,t){return this.root.addDirectory(e,t)}addText(e,t,r){return this.root.addText(e,t,r)}addBlob(e,t,r){return this.root.addBlob(e,t,r)}addData64URI(e,t,r){return this.root.addData64URI(e,t,r)}addUint8Array(e,t,r){return this.root.addUint8Array(e,t,r)}addHttpContent(e,t,r){return this.root.addHttpContent(e,t,r)}addReadable(e,t,r){return this.root.addReadable(e,t,r)}addFileSystemEntry(e,t){return this.root.addFileSystemEntry(e,t)}addFileSystemHandle(e,t){return this.root.addFileSystemHandle(e,t)}addFile(e,t){return this.root.addFile(e,t)}addData(e,t){return this.root.addData(e,t)}importBlob(e,t){return ha(this),this.root.importBlob(e,t)}importData64URI(e,t){return ha(this),this.root.importData64URI(e,t)}importUint8Array(e,t){return ha(this),this.root.importUint8Array(e,t)}importHttpContent(e,t){return ha(this),this.root.importHttpContent(e,t)}importReadable(e,t){return ha(this),this.root.importReadable(e,t)}importZip(e,t){return this.root.importZip(e,t)}exportBlob(e){return this.root.exportBlob(e)}exportData64URI(e){return this.root.exportData64URI(e)}exportUint8Array(e){return this.root.exportUint8Array(e)}exportWritable(e,t){return this.root.exportWritable(e,t)}isPasswordProtected(){return this.root.isPasswordProtected()}checkPassword(e,t){return this.root.checkPassword(e,t)}},ZipDirectoryEntry:oa,ZipFileEntry:ia};function la(e){return class extends be{constructor(e,t={}){super(),this.entry=e,this.options=t}async init(){const t=this;t.size=t.entry.uncompressedSize;const s=await t.entry.getData(new De,r.assign({},t.options,e));t.data=s,t.blobReader=new Re(s),super.init()}readUint8Array(e,t){return this.blobReader.readUint8Array(e,t)}}}async function da(e,t){e.children.length&&await y.all(e.children.map(async e=>{if(e.directory)await da(e,t);else{const r=e.reader=new e.Reader(e.data,t);try{await Ye(r)}catch(t){try{t.entryId=e.id,t.cause={entry:e}}catch(e){}throw t}e.uncompressedSize=r.size}}))}function ua(e){if(e.parent){const t=e.parent.children;t.forEach((r,s)=>{r.id==e.id&&t.splice(s,1)})}}function pa(e,t,s){return async function e(t,a,n){if(a)try{if((a.isFile||a.isDirectory)&&(a=await fa(a)),"file"==a.kind){const e=await a.getFile();n.push(t.addData(e.name,{Reader:()=>({readable:e.stream(),size:e.size}),options:r.assign({},{lastModDate:new o(e.lastModified)},s),uncompressedSize:e.size}))}else if("directory"==a.kind){const r=t.addDirectory(a.name);n.push(r);for await(const t of a.values())await e(r,t,n)}}catch(e){const t=e.message+(a?" ("+a.name+")":"");throw new p(t)}return n}(e,t,[])}async function fa(e){const t={name:e.name};if(e.isFile&&(t.kind="file",t.getFile=()=>new y((t,r)=>e.file(t,r))),e.isDirectory){t.kind="directory";const r=await(async e=>{const t=[];function r(e,s,a){e.readEntries(async n=>{if(n.length){for(const e of n)t.push(await fa(e));r(e,s,a)}else s(t)},a)}return await new y((t,s)=>r(e.createReader(),t,s)),{[Symbol.iterator](){let e=0;return{next(){const r={value:t[e],done:e==t.length};return e++,r}}}}})(e);t.values=()=>r}return t}function ha(e){e.entries=[],e.root=new oa(e)}function wa(e,t,r,s){if(e.directory)return s?new oa(e.fs,t,r,e):new ia(e.fs,t,r,e);throw new p("Parent entry is not a directory")}e.BlobReader=Re,e.BlobWriter=De,e.Data64URIReader=Se,e.Data64URIWriter=xe,e.ERR_BAD_FORMAT=ts,e.ERR_CENTRAL_DIRECTORY_NOT_FOUND=as,e.ERR_DUPLICATED_NAME=Ts,e.ERR_ENCRYPTED=os,e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=ss,e.ERR_EOCDR_NOT_FOUND=rs,e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=is,e.ERR_HTTP_RANGE=pe,e.ERR_INVALID_COMMENT=As,e.ERR_INVALID_ENCRYPTION_STRENGTH=Ns,e.ERR_INVALID_ENTRY_COMMENT=vs,e.ERR_INVALID_ENTRY_NAME=Us,e.ERR_INVALID_EXTRAFIELD_DATA=Is,e.ERR_INVALID_EXTRAFIELD_TYPE=Ws,e.ERR_INVALID_PASSWORD=nt,e.ERR_INVALID_SIGNATURE=it,e.ERR_INVALID_UNCOMPRESSED_SIZE=qt,e.ERR_INVALID_VERSION=Cs,e.ERR_LOCAL_FILE_HEADER_NOT_FOUND=ns,e.ERR_OVERLAPPING_ENTRY=us,e.ERR_SPLIT_ZIP_FILE=ds,e.ERR_UNDEFINED_UNCOMPRESSED_SIZE=Ms,e.ERR_UNSUPPORTED_COMPRESSION=ls,e.ERR_UNSUPPORTED_ENCRYPTION=cs,e.ERR_UNSUPPORTED_FORMAT=Os,e.ERR_ZIP_NOT_EMPTY=Ls,e.HttpRangeReader=class extends Be{constructor(e,t={}){t.useRangeHeader=!0,super(e,t)}},e.HttpReader=Be,e.Reader=be,e.SplitDataReader=Ze,e.SplitDataWriter=Ve,e.TextReader=Ee,e.TextWriter=Fe,e.Uint8ArrayReader=He,e.Uint8ArrayWriter=Pe,e.Writer=ze,e.ZipReader=ms,e.ZipReaderStream=class{constructor(e={}){const{readable:t,writable:r}=new D,s=new ms(t,e).getEntriesGenerator();this.readable=new E({async pull(e){const{done:t,value:r}=await s.next();if(t)return e.close();const a={...r,readable:(()=>{const{readable:e,writable:t}=new D;if(r.getData)return r.getData(t),e})()};delete a.getData,e.enqueue(a)}}),this.writable=r}},e.ZipWriter=Zs,e.ZipWriterStream=class{constructor(e={}){const{readable:t,writable:r}=new D;this.readable=t,this.zipWriter=new Zs(r,e)}transform(e){const{readable:t,writable:r}=new D({flush:()=>{this.zipWriter.close()}});return this.zipWriter.add(e,t),{readable:this.readable,writable:r}}writable(e){const{readable:t,writable:r}=new D;return this.zipWriter.add(e,t),r}close(e,t={}){return this.zipWriter.close(e,t)}},e.configure=re,e.fs=ca,e.getMimeType=()=>"application/octet-stream",e.resetWasmModule=de,e.terminateWorkers=async()=>{await y.allSettled(ur.map(e=>(wr(e),e.terminate()))),de()}});
1
+ ((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:r,String:s,Number:a,BigInt:n,Math:i,Date:o,Map:c,Set:l,Response:d,URL:u,Error:p,Uint8Array:f,Uint16Array:h,Uint32Array:w,DataView:m,Blob:g,Promise:y,TextEncoder:b,TextDecoder:z,document:S,crypto:x,btoa:R,TransformStream:D,ReadableStream:E,WritableStream:F,CompressionStream:_,DecompressionStream:k,navigator:T,Worker:A}="undefined"!=typeof globalThis?globalThis:this||self;var v=void 0!==S?S.currentScript:null;const U=4294967295,C=65535,N=67324752,W=134695760,I=W,O=33639248,M=101010256,L=101075792,B=117853008,H=22,P=21589,Z=2048,V="/",q=30,K=new o(2107,11,31),Y=new o(1980,0,1),G=void 0,j="undefined",X="function";let J=2;try{typeof T!=j&&T.hardwareConcurrency&&(J=T.hardwareConcurrency)}catch(e){}const Q={workerURI:"./core/web-worker.js",wasmURI:"./core/streams/zlib/zlib-streams.wasm",chunkSize:65536,maxWorkers:J,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof _!=j&&_,DecompressionStream:typeof k!=j&&k},$=r.assign({},Q);function ee(){return $}function te(e){return i.max(e.chunkSize,64)}function re(e){const{baseURI:t,chunkSize:r,maxWorkers:s,terminateWorkerTimeout:a,useCompressionStream:n,useWebWorkers:i,CompressionStream:o,DecompressionStream:c,CompressionStreamZlib:l,DecompressionStreamZlib:d,workerURI:u,wasmURI:p}=e;se("baseURI",t),se("wasmURI",p),se("workerURI",u),se("chunkSize",r),se("maxWorkers",s),se("terminateWorkerTimeout",a),se("useCompressionStream",n),se("useWebWorkers",i),se("CompressionStream",o),se("DecompressionStream",c),se("CompressionStreamZlib",l),se("DecompressionStreamZlib",d)}function se(e,t){t!==G&&($[e]=t)}let ae,ne,ie,oe;function ce(e,t,r={}){const s="number"==typeof r.level?r.level:-1,a="number"==typeof r.outBuffer?r.outBuffer:65536,n="number"==typeof r.inBufferSize?r.inBufferSize:65536;return new D({start(){let r;if(this.out=ne(a),this.in=ne(n),this.inBufferSize=n,this._scratch=new f(a),e?(this._process=ae.deflate_process,this._last_consumed=ae.deflate_last_consumed,this._end=ae.deflate_end,this.streamHandle=ae.deflate_new(),r="gzip"===t?ae.deflate_init_gzip(this.streamHandle,s):"deflate-raw"===t?ae.deflate_init_raw(this.streamHandle,s):ae.deflate_init(this.streamHandle,s)):"deflate64-raw"===t?(this._process=ae.inflate9_process,this._last_consumed=ae.inflate9_last_consumed,this._end=ae.inflate9_end,this.streamHandle=ae.inflate9_new(),r=ae.inflate9_init_raw(this.streamHandle)):(this._process=ae.inflate_process,this._last_consumed=ae.inflate_last_consumed,this._end=ae.inflate_end,this.streamHandle=ae.inflate_new(),r="deflate-raw"===t?ae.inflate_init_raw(this.streamHandle):"gzip"===t?ae.inflate_init_gzip(this.streamHandle):ae.inflate_init(this.streamHandle)),0!==r)throw new p("init failed:"+r)},transform(t,r){try{const s=t,n=new f(oe.buffer),o=this._process,c=this._last_consumed,l=this.out,d=this._scratch;let u=0;for(;u<s.length;){const t=i.min(s.length-u,32768);this.in&&this.inBufferSize>=t||(this.in&&ie&&ie(this.in),this.in=ne(t),this.inBufferSize=t),n.set(s.subarray(u,u+t),this.in);const f=o(this.streamHandle,this.in,t,l,a,0);if(!e&&0>f)throw new p("process error:"+f);const h=16777215&f;h&&(d.set(n.subarray(l,l+h),0),r.enqueue(d.slice(0,h)));const w=c(this.streamHandle);if(0===w)break;u+=w}}catch(e){this._end&&this.streamHandle&&this._end(this.streamHandle),this.in&&ie&&ie(this.in),this.out&&ie&&ie(this.out),r.error(e)}},flush(t){try{const r=new f(oe.buffer),s=this._process,n=this.out,i=this._scratch;for(;;){const o=s(this.streamHandle,0,0,n,a,4);if(!e&&0>o)throw new p("process error:"+o);const c=16777215&o,l=o>>24&255;if(c&&(i.set(r.subarray(n,n+c),0),t.enqueue(i.slice(0,c))),1===l||0===c)break}}catch(e){t.error(e)}finally{if(this._end&&this.streamHandle){const e=this._end(this.streamHandle);0!==e&&t.error(new p("end error:"+e))}this.in&&ie&&ie(this.in),this.out&&ie&&ie(this.out)}}})}let le=!1;function de(){le=!1}const ue="HTTP error ",pe="HTTP Range not supported",fe="Range",he="GET",we="bytes",me=65536,ge="writable";class ye{constructor(){this.size=0}init(){this.initialized=!0}}class be extends ye{get readable(){const e=this,{chunkSize:t=me}=e,r=new E({start(){this.chunkOffset=0},async pull(s){const{offset:a=0,size:n,diskNumberStart:o}=r,{chunkOffset:c}=this,l=n===G?t:i.min(t,n-c),d=await Ge(e,a+c,l,o);s.enqueue(d),c+t>n||n===G&&!d.length&&l?s.close():this.chunkOffset+=t}});return r}}class ze extends ye{constructor(){super();const e=this,t=new F({write(t){if(!e.initialized)throw new p("Writer not initialized");return e.writeUint8Array(t)}});r.defineProperty(e,ge,{get:()=>t})}writeUint8Array(){}}class Se extends be{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const s=e.indexOf(",")+1;r.assign(this,{dataURI:e,dataStart:s,size:i.floor(.75*(t-s))})}readUint8Array(e,t){const{dataStart:r,dataURI:s}=this,a=new f(t),n=4*i.floor(e/3),o=atob(s.substring(n+r,4*i.ceil((e+t)/3)+r)),c=e-3*i.floor(n/4);let l=0;for(let e=c;c+t>e&&e<o.length;e++)a[e-c]=o.charCodeAt(e),l++;return l<a.length?a.subarray(0,l):a}}class xe extends ze{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r=0,a=t.pending;const n=t.pending.length;for(t.pending="",r=0;r<3*i.floor((n+e.length)/3)-n;r++)a+=s.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=s.fromCharCode(e[r]);a.length&&(a.length>2?t.data+=R(a):t.pending+=a)}getData(){return this.data+R(this.pending)}}class Re extends be{constructor(e){super(),r.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const r=this,s=e+t,a=e||s<r.size?r.blob.slice(e,s):r.blob;let n=await a.arrayBuffer();return n.byteLength>t&&(n=n.slice(e,s)),new f(n)}}class De extends ye{constructor(e){super();const t=new D,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(this,ge,{get:()=>t.writable}),this.blob=new d(t.readable,{headers:s}).blob()}getData(){return this.blob}}class Ee extends Re{constructor(e){super(new g([e],{type:"text/plain"}))}}class Fe extends De{constructor(e){super(e),r.assign(this,{encoding:e,utf8:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,utf8:t}=this,s=await super.getData();if(s.text&&t)return s.text();{const t=new FileReader;return new y((a,n)=>{r.assign(t,{onload:({target:e})=>a(e.result),onerror:()=>n(t.error)}),t.readAsText(s,e)})}}}class _e extends be{constructor(e,t){super(),Te(this,e,t)}async init(){await Ae(this,Me,Ne),super.init()}readUint8Array(e,t){return ve(this,e,t,Me,Ne)}}class ke extends be{constructor(e,t){super(),Te(this,e,t)}async init(){await Ae(this,Le,We),super.init()}readUint8Array(e,t){return ve(this,e,t,Le,We)}}function Te(e,t,s){const{preventHeadRequest:a,useRangeHeader:n,forceRangeRequests:i,combineSizeEocd:o}=s;delete(s=r.assign({},s)).preventHeadRequest,delete s.useRangeHeader,delete s.forceRangeRequests,delete s.combineSizeEocd,delete s.useXHR,r.assign(e,{url:t,options:s,preventHeadRequest:a,useRangeHeader:n,forceRangeRequests:i,combineSizeEocd:o})}async function Ae(e,t,r){const{url:s,preventHeadRequest:n,useRangeHeader:i,forceRangeRequests:o,combineSizeEocd:c}=e;if((e=>{const{baseURI:t}=ee(),{protocol:r}=new u(e,t);return"http:"==r||"https:"==r})(s)&&(i||o)&&(void 0===n||n)){const s=await t(he,e,Ue(e,c?-22:void 0));if(!o&&s.headers.get("Accept-Ranges")!=we)throw new p(pe);{let n;c&&(e.eocdCache=new f(await s.arrayBuffer()));const i=s.headers.get("Content-Range");if(i){const e=i.trim().split(/\s*\/\s*/);if(e.length){const t=e[1];t&&"*"!=t&&(n=a(t))}}n===G?await Oe(e,t,r):e.size=n}}else await Oe(e,t,r)}async function ve(e,t,r,s,a){const{useRangeHeader:n,forceRangeRequests:i,eocdCache:o,size:c,options:l}=e;if(n||i){if(o&&t==c-H&&r==H)return o;if(c>t){t+r>c&&(r=c-t);const a=await s(he,e,Ue(e,t,r));if(206!=a.status)throw new p(pe);return new f(await a.arrayBuffer())}return new f}{const{data:s}=e;return s||await a(e,l),new f(e.data.subarray(t,t+r))}}function Ue(e,t=0,s=1){return r.assign({},Ce(e),{[fe]:we+"="+(0>t?t:t+"-"+(t+s-1))})}function Ce({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function Ne(e){await Ie(e,Me)}async function We(e){await Ie(e,Le)}async function Ie(e,t){const r=await t(he,e,Ce(e));e.data=new f(await r.arrayBuffer()),e.size||(e.size=e.data.length)}async function Oe(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const s=(await t("HEAD",e,Ce(e))).headers.get("Content-Length");s?e.size=a(s):await r(e,e.options)}}async function Me(e,{options:t,url:s},a){const n=await fetch(s,r.assign({},t,{method:e,headers:a}));if(400>n.status)return n;throw 416==n.status?new p(pe):new p(ue+(n.statusText||n.status))}function Le(e,{url:t},s){return new y((a,n)=>{const i=new XMLHttpRequest;if(i.addEventListener("load",()=>{if(400>i.status){const e=[];i.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const r=t.trim().split(/\s*:\s*/);r[0]=r[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(r)}),a({status:i.status,arrayBuffer:()=>i.response,headers:new c(e)})}else n(416==i.status?new p(pe):new p(ue+(i.statusText||i.status)))},!1),i.addEventListener("error",e=>n(e.detail?e.detail.error:new p("Network error")),!1),i.open(e,t),s)for(const e of r.entries(s))i.setRequestHeader(e[0],e[1]);i.responseType="arraybuffer",i.send()})}class Be extends be{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR?new ke(e,t):new _e(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class He extends be{constructor(e){super(),e=new f(e.buffer,e.byteOffset,e.byteLength),r.assign(this,{array:e,size:e.length})}readUint8Array(e,t){return this.array.slice(e,e+t)}}class Pe extends ze{init(e=0){r.assign(this,{offset:0,array:new f(e)}),super.init()}writeUint8Array(e){const t=this;if(t.offset+e.length>t.array.length){const r=t.array;t.array=new f(r.length+e.length),t.array.set(r)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.array}}class Ze extends be{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:t}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await y.all(t.map(async(r,s)=>{await r.init(),s!=t.length-1&&(e.lastDiskOffset+=r.size),e.size+=r.size})),super.init()}async readUint8Array(e,t,r=0){const s=this,{readers:a}=this;let n,o=r;-1==o&&(o=a.length-1);let c=e;for(;a[o]&&c>=a[o].size;)c-=a[o].size,o++;const l=a[o];if(l){const a=l.size;if(c+t>a){const i=a-c;n=new f(t);const o=await Ge(l,c,i);n.set(o,0);const d=await s.readUint8Array(e+i,t-i,r);n.set(d,i),o.length+d.length<t&&(n=n.subarray(0,o.length+d.length))}else n=await Ge(l,c,t)}else n=new f;return s.lastDiskNumber=i.max(o,s.lastDiskNumber),n}}class Ve extends ye{constructor(e,t=4294967295){super();const s=this;let a,n,i;r.assign(s,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new F({async write(t){const{availableSize:r}=s;if(i)t.length<r?await c(t):(await c(t.subarray(0,r)),await l(),s.diskOffset+=a.size,s.diskNumber++,i=null,await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new p("Writer iterator completed too soon");a=r,a.size=0,a.maxSize&&(s.maxSize=a.maxSize),s.availableSize=s.maxSize,await Ye(a),n=r.writable,i=n.getWriter(),await this.write(t)}},async close(){await i.ready,await l()}});async function c(e){const t=e.length;t&&(await i.ready,await i.write(e),a.size+=t,s.size+=t,s.availableSize-=t)}async function l(){await i.close()}r.defineProperty(s,ge,{get:()=>o})}}class qe{constructor(e){return t.isArray(e)&&(e=new Ze(e)),e instanceof E&&(e={readable:e}),e}}class Ke{constructor(e){return e.writable===G&&typeof e.next==X&&(e=new Ve(e)),e instanceof F&&(e={writable:e}),e.size===G&&(e.size=0),e instanceof Ve||r.assign(e,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),e}}async function Ye(e,t){if(!e.init||e.initialized)return y.resolve();await e.init(t)}function Ge(e,t,r,s){return e.readUint8Array(t,r,s)}const je=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;je[e]=t}class Xe{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let r=0,s=0|e.length;s>r;r++)t=t>>>8^je[255&(t^e[r])];this.crc=t}get(){return~this.crc}}class Je extends D{constructor(){let e;const t=new Xe;super({transform(e,r){t.append(e),r.enqueue(e)},flush(){const r=new f(4);new m(r.buffer).setUint32(0,t.get()),e.value=r}}),e=this}}function Qe(e){if(typeof b==j){const t=new f((e=unescape(encodeURIComponent(e))).length);for(let r=0;r<t.length;r++)t[r]=e.charCodeAt(r);return t}return(new b).encode(e)}const $e={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],s=$e.getPartial(r);return 32===s?e.concat(t):$e._shiftRight(t,s,0|r,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(0===t)return 0;const r=e[t-1];return 32*(t-1)+$e.getPartial(r)},clamp(e,t){if(32*e.length<t)return e;const r=(e=e.slice(0,i.ceil(t/32))).length;return t&=31,r>0&&t&&(e[r-1]=$e.partial(t,e[r-1]&2147483648>>t-1,1)),e},partial:(e,t,r)=>32===e?t:(r?0|t:t<<32-e)+1099511627776*e,getPartial:e=>i.round(e/1099511627776)||32,_shiftRight(e,t,r,s){for(void 0===s&&(s=[]);t>=32;t-=32)s.push(r),r=0;if(0===t)return s.concat(e);for(let a=0;a<e.length;a++)s.push(r|e[a]>>>t),r=e[a]<<32-t;const a=e.length?e[e.length-1]:0,n=$e.getPartial(a);return s.push($e.partial(t+n&31,t+n>32?r:s.pop(),1)),s}},et={bytes:{fromBits(e){const t=$e.bitLength(e)/8,r=new f(t);let s;for(let a=0;t>a;a++)3&a||(s=e[a/4]),r[a]=s>>>24,s<<=8;return r},toBits(e){const t=[];let r,s=0;for(r=0;r<e.length;r++)s=s<<8|e[r],3&~r||(t.push(s),s=0);return 3&r&&t.push($e.partial(8*(3&r),s)),t}}},tt=class{constructor(e){const t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],e?(t._h=e._h.slice(0),t._buffer=e._buffer.slice(0),t._length=e._length):t.reset()}reset(){const e=this;return e._h=e._init.slice(0),e._buffer=[],e._length=0,e}update(e){const t=this;"string"==typeof e&&(e=et.utf8String.toBits(e));const r=t._buffer=$e.concat(t._buffer,e),s=t._length,a=t._length=s+$e.bitLength(e);if(a>9007199254740991)throw new p("Cannot hash more than 2^53 - 1 bits");const n=new w(r);let i=0;for(let e=t.blockSize+s-(t.blockSize+s&t.blockSize-1);a>=e;e+=t.blockSize)t._block(n.subarray(16*i,16*(i+1))),i+=1;return r.splice(0,16*i),t}finalize(){const e=this;let t=e._buffer;const r=e._h;t=$e.concat(t,[$e.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(i.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),r}_f(e,t,r,s){return e>19?e>39?e>59?e>79?void 0:t^r^s:t&r|t&s|r&s:t^r^s:t&r|~t&s}_S(e,t){return t<<e|t>>>32-e}_block(e){const r=this,s=r._h,a=t(80);for(let t=0;16>t;t++)a[t]=e[t];let n=s[0],o=s[1],c=s[2],l=s[3],d=s[4];for(let e=0;79>=e;e++){16>e||(a[e]=r._S(1,a[e-3]^a[e-8]^a[e-14]^a[e-16]));const t=r._S(5,n)+r._f(e,o,c,l)+d+a[e]+r._key[i.floor(e/20)]|0;d=l,l=c,c=r._S(30,o),o=n,n=t}s[0]=s[0]+n|0,s[1]=s[1]+o|0,s[2]=s[2]+c|0,s[3]=s[3]+l|0,s[4]=s[4]+d|0}},rt={getRandomValues(e){const t=new w(e.buffer),r=e=>{let t=987654321;const r=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&r,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&r)&r)/4294967296+.5)*(i.random()>.5?1:-1))};for(let s,a=0;a<e.length;a+=4){const e=r(4294967296*(s||i.random()));s=987654071*e(),t[a/4]=4294967296*e()|0}return e}},st={importKey:e=>new st.hmacSha1(et.bytes.toBits(e)),pbkdf2(e,t,r,s){if(r=r||1e4,0>s||0>r)throw new p("invalid params to pbkdf2");const a=1+(s>>5)<<2;let n,i,o,c,l;const d=new ArrayBuffer(a),u=new m(d);let f=0;const h=$e;for(t=et.bytes.toBits(t),l=1;(a||1)>f;l++){for(n=i=e.encrypt(h.concat(t,[l])),o=1;r>o;o++)for(i=e.encrypt(i),c=0;c<i.length;c++)n[c]^=i[c];for(o=0;(a||1)>f&&o<n.length;o++)u.setInt32(f,n[o]),f+=4}return d.slice(0,s/8)},hmacSha1:class{constructor(e){const t=this,r=t._hash=tt,s=[[],[]];t._baseHash=[new r,new r];const a=t._baseHash[0].blockSize/32;e.length>a&&(e=(new r).update(e).finalize());for(let t=0;a>t;t++)s[0][t]=909522486^e[t],s[1][t]=1549556828^e[t];t._baseHash[0].update(s[0]),t._baseHash[1].update(s[1]),t._resultHash=new r(t._baseHash[0])}reset(){const e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){this._updated=!0,this._resultHash.update(e)}digest(){const e=this,t=e._resultHash.finalize(),r=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),r}encrypt(e){if(this._updated)throw new p("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},at=typeof x!=j&&typeof x.getRandomValues==X,nt="Invalid password",it="Invalid signature",ot="zipjs-abort-check-password";function ct(e){return at?x.getRandomValues(e):rt.getRandomValues(e)}const lt=16,dt={name:"PBKDF2"},ut=r.assign({hash:{name:"HMAC"}},dt),pt=r.assign({iterations:1e3,hash:{name:"SHA-1"}},dt),ft=["deriveBits"],ht=[8,12,16],wt=[16,24,32],mt=10,gt=[0,0,0,0],yt=typeof x!=j,bt=yt&&x.subtle,zt=yt&&typeof bt!=j,St=et.bytes,xt=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const r=t._tables[0][4],s=t._tables[1],a=e.length;let n,i,o,c=1;if(4!==a&&6!==a&&8!==a)throw new p("invalid aes key size");for(t._key=[i=e.slice(0),o=[]],n=a;4*a+28>n;n++){let e=i[n-1];(n%a===0||8===a&&n%a===4)&&(e=r[e>>>24]<<24^r[e>>16&255]<<16^r[e>>8&255]<<8^r[255&e],n%a===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),i[n]=i[n-a]^e}for(let e=0;n;e++,n--){const t=i[3&e?n:n-4];o[e]=4>=n||4>e?t:s[0][r[t>>>24]]^s[1][r[t>>16&255]]^s[2][r[t>>8&255]]^s[3][r[255&t]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],r=e[4],s=t[4],a=[],n=[];let i,o,c,l;for(let e=0;256>e;e++)n[(a[e]=e<<1^283*(e>>7))^e]=e;for(let d=i=0;!r[d];d^=o||1,i=n[i]||1){let n=i^i<<1^i<<2^i<<3^i<<4;n=n>>8^255&n^99,r[d]=n,s[n]=d,l=a[c=a[o=a[d]]];let u=16843009*l^65537*c^257*o^16843008*d,p=257*a[n]^16843008*n;for(let r=0;4>r;r++)e[r][d]=p=p<<24^p>>>8,t[r][n]=u=u<<24^u>>>8}for(let r=0;5>r;r++)e[r]=e[r].slice(0),t[r]=t[r].slice(0)}_crypt(e,t){if(4!==e.length)throw new p("invalid aes block size");const r=this._key[t],s=r.length/4-2,a=[0,0,0,0],n=this._tables[t],i=n[0],o=n[1],c=n[2],l=n[3],d=n[4];let u,f,h,w=e[0]^r[0],m=e[t?3:1]^r[1],g=e[2]^r[2],y=e[t?1:3]^r[3],b=4;for(let e=0;s>e;e++)u=i[w>>>24]^o[m>>16&255]^c[g>>8&255]^l[255&y]^r[b],f=i[m>>>24]^o[g>>16&255]^c[y>>8&255]^l[255&w]^r[b+1],h=i[g>>>24]^o[y>>16&255]^c[w>>8&255]^l[255&m]^r[b+2],y=i[y>>>24]^o[w>>16&255]^c[m>>8&255]^l[255&g]^r[b+3],b+=4,w=u,m=f,g=h;for(let e=0;4>e;e++)a[t?3&-e:e]=d[w>>>24]<<24^d[m>>16&255]<<16^d[g>>8&255]<<8^d[255&y]^r[b++],u=w,w=m,m=g,g=y,y=u;return a}},Rt=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,r=e>>8&255,s=255&e;255===t?(t=0,255===r?(r=0,255===s?s=0:++s):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=s}return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,r){let s;if(!(s=t.length))return[];const a=$e.bitLength(t);for(let a=0;s>a;a+=4){this.incCounter(r);const s=e.encrypt(r);t[a]^=s[0],t[a+1]^=s[1],t[a+2]^=s[2],t[a+3]^=s[3]}return $e.clamp(t,a)}},Dt=st.hmacSha1;let Et=yt&&zt&&typeof bt.importKey==X,Ft=yt&&zt&&typeof bt.deriveBits==X;class _t extends D{constructor({password:e,rawPassword:t,signed:s,encryptionStrength:a,checkPasswordOnly:n}){super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:vt(e,t),signed:s,strength:a-1,pending:new f})},async transform(e,t){const r=this,{password:s,strength:a,resolveReady:i,ready:o}=r;s?(await(async(e,t,r,s)=>{const a=await At(e,t,r,Ct(s,0,ht[t])),n=Ct(s,ht[t]);if(a[0]!=n[0]||a[1]!=n[1])throw new p(nt)})(r,a,s,Ct(e,0,ht[a]+2)),e=Ct(e,ht[a]+2),n?t.error(new p(ot)):i()):await o;const c=new f(e.length-mt-(e.length-mt)%lt);t.enqueue(Tt(r,e,c,0,mt,!0))},async flush(e){const{signed:t,ctr:r,hmac:s,pending:a,ready:n}=this;if(s&&r){await n;const i=Ct(a,0,a.length-mt),o=Ct(a,a.length-mt);let c=new f;if(i.length){const e=Wt(St,i);s.update(e);const t=r.update(e);c=Nt(St,t)}if(t){const e=Ct(Nt(St,s.digest()),0,mt);for(let t=0;mt>t;t++)if(e[t]!=o[t])throw new p(it)}e.enqueue(c)}}})}}class kt extends D{constructor({password:e,rawPassword:t,encryptionStrength:s}){let a;super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:vt(e,t),strength:s-1,pending:new f})},async transform(e,t){const r=this,{password:s,strength:a,resolveReady:n,ready:i}=r;let o=new f;s?(o=await(async(e,t,r)=>{const s=ct(new f(ht[t]));return Ut(s,await At(e,t,r,s))})(r,a,s),n()):await i;const c=new f(o.length+e.length-e.length%lt);c.set(o,0),t.enqueue(Tt(r,e,c,o.length,0))},async flush(e){const{ctr:t,hmac:r,pending:s,ready:n}=this;if(r&&t){await n;let i=new f;if(s.length){const e=t.update(Wt(St,s));r.update(e),i=Nt(St,e)}a.signature=Nt(St,r.digest()).slice(0,mt),e.enqueue(Ut(i,a.signature))}}}),a=this}}function Tt(e,t,r,s,a,n){const{ctr:i,hmac:o,pending:c}=e,l=t.length-a;let d;for(c.length&&(t=Ut(c,t),r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new f(t)).set(r,0)}return e})(r,l-l%lt)),d=0;l-lt>=d;d+=lt){const e=Wt(St,Ct(t,d,d+lt));n&&o.update(e);const a=i.update(e);n||o.update(a),r.set(Nt(St,a),d+s)}return e.pending=Ct(t,d),r}async function At(e,s,a,n){e.password=null;const i=await(async(e,t,r,s,a)=>{if(!Et)return st.importKey(t);try{return await bt.importKey("raw",t,r,!1,a)}catch(e){return Et=!1,st.importKey(t)}})(0,a,ut,0,ft),o=await(async(e,t,r)=>{if(!Ft)return st.pbkdf2(t,e.salt,pt.iterations,r);try{return await bt.deriveBits(e,t,r)}catch(s){return Ft=!1,st.pbkdf2(t,e.salt,pt.iterations,r)}})(r.assign({salt:n},pt),i,8*(2*wt[s]+2)),c=new f(o),l=Wt(St,Ct(c,0,wt[s])),d=Wt(St,Ct(c,wt[s],2*wt[s])),u=Ct(c,2*wt[s]);return r.assign(e,{keys:{key:l,authentication:d,passwordVerification:u},ctr:new Rt(new xt(l),t.from(gt)),hmac:new Dt(d)}),u}function vt(e,t){return t===G?Qe(e):t}function Ut(e,t){let r=e;return e.length+t.length&&(r=new f(e.length+t.length),r.set(e,0),r.set(t,e.length)),r}function Ct(e,t,r){return e.subarray(t,r)}function Nt(e,t){return e.fromBits(t)}function Wt(e,t){return e.toBits(t)}class It extends D{constructor({password:e,passwordVerification:t,checkPasswordOnly:s}){super({start(){r.assign(this,{password:e,passwordVerification:t}),Bt(this,e)},transform(e,t){const r=this;if(r.password){const t=Mt(r,e.subarray(0,12));if(r.password=null,t.at(-1)!=r.passwordVerification)throw new p(nt);e=e.subarray(12)}s?t.error(new p(ot)):t.enqueue(Mt(r,e))}})}}class Ot extends D{constructor({password:e,passwordVerification:t}){super({start(){r.assign(this,{password:e,passwordVerification:t}),Bt(this,e)},transform(e,t){const r=this;let s,a;if(r.password){r.password=null;const t=ct(new f(12));t[11]=r.passwordVerification,s=new f(e.length+t.length),s.set(Lt(r,t),0),a=12}else s=new f(e.length),a=0;s.set(Lt(r,e),a),t.enqueue(s)}})}}function Mt(e,t){const r=new f(t.length);for(let s=0;s<t.length;s++)r[s]=Pt(e)^t[s],Ht(e,r[s]);return r}function Lt(e,t){const r=new f(t.length);for(let s=0;s<t.length;s++)r[s]=Pt(e)^t[s],Ht(e,t[s]);return r}function Bt(e,t){const s=[305419896,591751049,878082192];r.assign(e,{keys:s,crcKey0:new Xe(s[0]),crcKey2:new Xe(s[2])});for(let r=0;r<t.length;r++)Ht(e,t.charCodeAt(r))}function Ht(e,t){let[r,s,a]=e.keys;e.crcKey0.append([t]),r=~e.crcKey0.get(),s=Vt(i.imul(Vt(s+Zt(r)),134775813)+1),e.crcKey2.append([s>>>24]),a=~e.crcKey2.get(),e.keys=[r,s,a]}function Pt(e){const t=2|e.keys[2];return Zt(i.imul(t,1^t)>>>8)}function Zt(e){return 255&e}function Vt(e){return 4294967295&e}const qt="Invalid uncompressed size";class Kt extends D{constructor(e,{chunkSize:t,CompressionStreamZlib:r,CompressionStream:s}){super({});const{compressed:a,encrypted:n,useCompressionStream:i,zipCrypto:o,signed:c,level:l}=e,d=this;let u,p,f=super.readable;n&&!o||!c||(u=new Je,f=Xt(f,u)),a&&(f=jt(f,i,{level:l,chunkSize:t},s,r,s)),n&&(o?f=Xt(f,new Ot(e)):(p=new kt(e),f=Xt(f,p))),Gt(d,f,()=>{let e;n&&!o&&(e=p.signature),n&&!o||!c||(e=new m(u.value.buffer).getUint32(0)),d.signature=e})}}class Yt extends D{constructor(e,{chunkSize:t,DecompressionStreamZlib:r,DecompressionStream:s}){super({});const{zipCrypto:a,encrypted:n,signed:i,signature:o,compressed:c,useCompressionStream:l,deflate64:d}=e;let u,f,h=super.readable;n&&(a?h=Xt(h,new It(e)):(f=new _t(e),h=Xt(h,f))),c&&(h=jt(h,l,{chunkSize:t,deflate64:d},s,r,s)),n&&!a||!i||(u=new Je,h=Xt(h,u)),Gt(this,h,()=>{if((!n||a)&&i){const e=new m(u.value.buffer);if(o!=e.getUint32(0,!1))throw new p(it)}})}}function Gt(e,t,s){t=Xt(t,new D({flush:s})),r.defineProperty(e,"readable",{get:()=>t})}function jt(e,t,r,s,a,n){const i=t&&s?s:a||n,o=r.deflate64?"deflate64-raw":"deflate-raw";try{e=Xt(e,new i(o,r))}catch(s){if(!t)throw s;if(a)e=Xt(e,new a(o,r));else{if(!n)throw s;e=Xt(e,new n(o,r))}}return e}function Xt(e,t){return e.pipeThrough(t)}const Jt="data",Qt="close",$t="deflate",er="inflate";class tr extends D{constructor(e,t){super({});const s=this,{codecType:a}=e;let n;a.startsWith($t)?n=Kt:a.startsWith(er)&&(n=Yt),s.outputSize=0;let i=0;const o=new n(e,t),c=super.readable,l=new D({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){r.assign(s,{inputSize:i})}}),d=new D({transform(t,r){if(t&&t.length&&(r.enqueue(t),s.outputSize+=t.length,e.outputSize!==G&&s.outputSize>e.outputSize))throw new p(qt)},flush(){const{signature:e}=o;r.assign(s,{signature:e,inputSize:i})}});r.defineProperty(s,"readable",{get:()=>c.pipeThrough(l).pipeThrough(o).pipeThrough(d)})}}class rr extends D{constructor(e){let t;super({transform:function r(s,a){if(t){const e=new f(t.length+s.length);e.set(t),e.set(s,t.length),s=e,t=null}s.length>e?(a.enqueue(s.slice(0,e)),r(s.slice(e),a)):t=s},flush(e){t&&t.length&&e.enqueue(t)}})}}let sr=typeof A!=j;class ar{constructor(e,{readable:t,writable:s},{options:a,config:n,streamOptions:i,useWebWorkers:o,transferStreams:c,workerURI:l},d){const{signal:u}=i;return r.assign(e,{busy:!0,readable:t.pipeThrough(new rr(n.chunkSize)).pipeThrough(new nr(i),{signal:u}),writable:s,options:r.assign({},a),workerURI:l,transferStreams:c,terminate:()=>new y(t=>{const{worker:r,busy:s}=e;r?(s?e.resolveTerminated=t:(r.terminate(),t()),e.interface=null):t()}),onTaskFinished(){const{resolveTerminated:t}=e;t&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),t()),e.busy=!1,d(e)}}),(o&&sr?cr:or)(e,n)}}class nr extends D{constructor({onstart:e,onprogress:t,size:r,onend:s}){let a=0;super({async start(){e&&await ir(e,r)},async transform(e,s){a+=e.length,t&&await ir(t,a,r),s.enqueue(e)},async flush(){s&&await ir(s,a)}})}}async function ir(e,...t){try{await e(...t)}catch(e){}}function or(e,t){return{run:()=>(async({options:e,readable:t,writable:r,onTaskFinished:s},a)=>{let n;try{if(!e.useCompressionStream&&!le){let{wasmURI:e}=a;typeof e==X&&(e=e()),await(async(e,{baseURI:t})=>{if(!le){let s,a;try{try{a=new u(e,t)}catch(e){}const r=await fetch(a);s=await r.arrayBuffer()}catch(t){if(!e.startsWith("data:application/wasm;base64,"))throw t;s=(e=>{const t=e.split(",")[1],r=atob(t),s=r.length,a=new f(s);for(let e=0;s>e;++e)a[e]=r.charCodeAt(e);return a.buffer})(e)}r=(await WebAssembly.instantiate(s)).instance.exports,ae=r,({malloc:ne,free:ie,memory:oe}=ae),le=!0}var r})(e,a)}n=new tr(e,a),await t.pipeThrough(n).pipeTo(r,{preventClose:!0,preventAbort:!0});const{signature:s,inputSize:i,outputSize:o}=n;return{signature:s,inputSize:i,outputSize:o}}catch(e){throw n&&(e.outputSize=n.outputSize),e}finally{s()}})(e,t)}}function cr(e,t){const{baseURI:s,chunkSize:a}=t;let{wasmURI:n}=t;if(!e.interface){let i;typeof n==X&&(n=n());try{i=((e,t,s)=>{const a={type:"module"};let n,i;if(typeof e==X&&(e=e()),e.startsWith("data:")||e.startsWith("blob:"))try{i=new A(e)}catch(t){i=new A(e,a)}else{try{n=new u(e,t)}catch(t){n=e}i=new A(n,a)}return i.addEventListener("message",e=>(async({data:e},t)=>{const{type:s,value:a,messageId:n,result:i,error:o}=e,{reader:c,writer:l,resolveResult:d,rejectResult:u,onTaskFinished:h}=t;try{if(o){const{message:e,stack:t,code:s,name:a,outputSize:n}=o,i=new p(e);r.assign(i,{stack:t,code:s,name:a,outputSize:n}),w(i)}else{if("pull"==s){const{value:e,done:r}=await c.read();dr({type:Jt,value:e,done:r,messageId:n},t)}s==Jt&&(await l.ready,await l.write(new f(a)),dr({type:"ack",messageId:n},t)),s==Qt&&w(null,i)}}catch(o){dr({type:Qt,messageId:n},t),w(o)}function w(e,t){e?u(e):d(t),l&&l.releaseLock(),h()}})(e,s)),i})(e.workerURI,s,e)}catch(r){return sr=!1,or(e,t)}r.assign(e,{worker:i,interface:{run:()=>(async(e,t)=>{let s,a;const n=new y((e,t)=>{s=e,a=t});r.assign(e,{reader:null,writer:null,resolveResult:s,rejectResult:a,result:n});const{readable:i,options:o}=e,{writable:c,closed:l}=(e=>{let t;const r=new y(e=>t=e);return{writable:new F({async write(t){const r=e.getWriter();await r.ready,await r.write(t),r.releaseLock()},close(){t()},abort:t=>e.getWriter().abort(t)}),closed:r}})(e.writable),d=dr({type:"start",options:o,config:t,readable:i,writable:c},e);d||r.assign(e,{reader:i.getReader(),writer:c.getWriter()});const u=await n;return d||await c.getWriter().close(),await l,u})(e,{chunkSize:a,wasmURI:n,baseURI:s})}})}return e.interface}let lr=!0;function dr(e,{worker:t,writer:r,onTaskFinished:s,transferStreams:a}){try{const{value:r,readable:s,writable:n}=e,i=[];if(r&&(r.byteLength<r.buffer.byteLength?e.value=r.buffer.slice(0,r.byteLength):e.value=r.buffer,i.push(e.value)),a&&lr?(s&&i.push(s),n&&i.push(n)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch(r){lr=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),s(),e}}let ur=[];const pr=[];let fr=0;async function hr(e,t){const{options:r,config:s}=t,{transferStreams:n,useWebWorkers:i,useCompressionStream:o,compressed:c,signed:l,encrypted:d}=r,{workerURI:u,maxWorkers:p}=s;t.transferStreams=n||n===G;const f=!(c||l||d||t.transferStreams);return t.useWebWorkers=!f&&(i||i===G&&s.useWebWorkers),t.workerURI=t.useWebWorkers&&u?u:G,r.useCompressionStream=o||o===G&&s.useCompressionStream,(await(async()=>{const r=ur.find(e=>!e.busy);if(r)return wr(r),new ar(r,e,t,h);if(ur.length<p){const r={indexWorker:fr};return fr++,ur.push(r),new ar(r,e,t,h)}return new y(r=>pr.push({resolve:r,stream:e,workerOptions:t}))})()).run();function h(e){if(pr.length){const[{resolve:t,stream:r,workerOptions:s}]=pr.splice(0,1);t(new ar(e,r,s,h))}else e.worker?(wr(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:s}=r;a.isFinite(s)&&s>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{ur=ur.filter(t=>t!=e);try{await e.terminate()}catch(e){}},s))})(e,t)):ur=ur.filter(t=>t!=e)}}function wr(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const mr="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function gr(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=mr[e[r]];return t}})(e):new z(t).decode(e)}const yr="filename",br="rawFilename",zr="comment",Sr="rawComment",xr="uncompressedSize",Rr="compressedSize",Dr="offset",Er="diskNumberStart",Fr="lastModDate",_r="rawLastModDate",kr="lastAccessDate",Tr="creationDate",Ar="internalFileAttributes",vr="externalFileAttributes",Ur="msDosCompatible",Cr="zip64",Nr="encrypted",Wr="version",Ir="versionMadeBy",Or="zipCrypto",Mr="directory",Lr="executable",Br="compressionMethod",Hr="signature",Pr="extraField",Zr=[yr,br,Rr,xr,Fr,_r,zr,Sr,kr,Tr,Dr,Er,Er,Ar,vr,Ur,Cr,Nr,Wr,Ir,Or,Mr,Lr,Br,Hr,Pr,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Vr{constructor(e){Zr.forEach(t=>this[t]=e[t])}}const qr="password",Kr="rawPassword",Yr="passThrough",Gr="signal",jr="useWebWorkers",Xr="useCompressionStream",Jr="preventClose",Qr="supportZip64SplitFile",$r="offset",es="usdz",ts="File format is not recognized",rs="End of central directory not found",ss="End of Zip64 central directory locator not found",as="Central directory header not found",ns="Local file header not found",is="Zip64 extra field not found",os="File contains encrypted entry",cs="Encryption method not supported",ls="Compression method not supported",ds="Split zip file",us="Overlapping entry found",ps="utf-8",fs="cp437",hs=[[xr,U],[Rr,U],[Dr,U],[Er,C]],ws={[C]:{getValue:Fs,bytes:4},[U]:{getValue:_s,bytes:8}};class ms{constructor(e,t={}){r.assign(this,{reader:new qe(e),options:t,config:ee(),readRanges:[]})}async*getEntriesGenerator(e={}){const t=this;let{reader:s}=t;const{config:a}=t;if(await Ye(s),s.size!==G&&s.readUint8Array||(s=new Re(await new d(s.readable).blob()),await Ye(s)),s.size<H)throw new p(ts);s.chunkSize=te(a);const n=await(async(e,t,r)=>{const s=new f(4);var a;return a=t,ks(s).setUint32(0,a,!0),await n(22)||await n(i.min(1048582,r));async function n(t){const a=r-t,n=await Ge(e,a,t);for(let e=n.length-22;e>=0;e--)if(n[e]==s[0]&&n[e+1]==s[1]&&n[e+2]==s[2]&&n[e+3]==s[3])return{offset:a+e,buffer:n.slice(e,e+22).buffer}}})(s,M,s.size);if(!n)throw Fs(ks(await Ge(s,0,4)))==W?new p(ds):new p(rs);const o=ks(n);let c=Fs(o,12),l=Fs(o,16);const u=n.offset,h=Es(o,20),w=u+H+h;let m=Es(o,4);const g=s.lastDiskNumber||0;let b=Es(o,6),z=Es(o,8),S=0,x=0;if(l==U||c==U||z==C||b==C){const e=ks(await Ge(s,n.offset-20,20));if(Fs(e,0)==B){l=_s(e,8);let t=await Ge(s,l,56,-1),r=ks(t);const a=n.offset-20-56;if(Fs(r,0)!=L&&l!=a){const e=l;l=a,l>e&&(S=l-e),t=await Ge(s,l,56,-1),r=ks(t)}if(Fs(r,0)!=L)throw new p(ss);m==C&&(m=Fs(r,16)),b==C&&(b=Fs(r,20)),z==C&&(z=_s(r,32)),c==U&&(c=_s(r,40)),l-=c}}if(l<s.size||(S=s.size-l-c-H,l=s.size-c-H),g!=m)throw new p(ds);if(0>l)throw new p(ts);let R=0,E=await Ge(s,l,c,b),F=ks(E);if(c){const e=n.offset-c;if(Fs(F,R)!=O&&l!=e){const t=l;l=e,l>t&&(S+=l-t),E=await Ge(s,l,c,b),F=ks(E)}}const _=n.offset-l-(s.lastDiskOffset||0);if(c==_||0>_||(c=_,E=await Ge(s,l,c,b),F=ks(E)),0>l||l>=s.size)throw new p(ts);const k=Ss(t,e,"filenameEncoding"),T=Ss(t,e,"commentEncoding");for(let n=0;z>n;n++){const o=new gs(s,a,t.options);if(Fs(F,R)!=O)throw new p(as);ys(o,F,R+6);const c=!!o.bitFlag.languageEncodingFlag,l=R+46,u=l+o.filenameLength,f=u+o.extraFieldLength,h=Es(F,R+4),w=!(h>>8),m=h>>8==3,g=E.subarray(l,u),b=Es(F,R+32),_=f+b,A=E.subarray(f,_),v=c,U=c,C=Fs(F,R+38),N=w&&!(16&~Ds(F,R+38))||m&&16384==(C>>16&61440)||g.length&&47==g.at(-1),W=m&&!!(C>>16&73),I=Fs(F,R+42)+S;r.assign(o,{versionMadeBy:h,msDosCompatible:w,compressedSize:0,uncompressedSize:0,commentLength:b,directory:N,offset:I,diskNumberStart:Es(F,R+34),internalFileAttributes:Es(F,R+36),externalFileAttributes:C,rawFilename:g,filenameUTF8:v,commentUTF8:U,rawExtraField:E.subarray(u,f),executable:W}),o.internalFileAttribute=o.internalFileAttributes,o.externalFileAttribute=o.externalFileAttributes;const M=Ss(t,e,"decodeText")||gr,L=v?ps:k||fs,B=U?ps:T||fs;let H=M(g,L);H===G&&(H=gr(g,L));let P=M(A,B);P===G&&(P=gr(A,B)),r.assign(o,{rawComment:A,filename:H,comment:P,directory:N||H.endsWith(V)}),x=i.max(I,x),bs(o,o,F,R+6),o.zipCrypto=o.encrypted&&!o.extraFieldAES;const Z=new Vr(o);Z.getData=(e,r)=>o.getData(e,Z,t.readRanges,r),Z.arrayBuffer=async e=>{const r=new D,[s]=await y.all([new d(r.readable).arrayBuffer(),o.getData(r,Z,t.readRanges,e)]);return s},R=_;const{onprogress:q}=e;if(q)try{await q(n+1,z,new Vr(o))}catch(e){}yield Z}const A=Ss(t,e,"extractPrependedData"),v=Ss(t,e,"extractAppendedData");return A&&(t.prependedData=x>0?await Ge(s,0,x):new f),t.comment=h?await Ge(s,u+H,h):new f,v&&(t.appendedData=w<s.size?await Ge(s,w,s.size-w):new f),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}let gs=class{constructor(e,t,s){r.assign(this,{reader:e,config:t,options:s})}async getData(e,t,s,a={}){const n=this,{reader:i,offset:o,diskNumberStart:c,extraFieldAES:l,extraFieldZip64:d,compressionMethod:u,config:h,bitFlag:w,signature:m,rawLastModDate:g,uncompressedSize:y,compressedSize:b}=n,{dataDescriptor:z}=w,S=t.localDirectory={},x=ks(await Ge(i,o,q,c));let R=Ss(n,a,qr),D=Ss(n,a,Kr);const E=Ss(n,a,Yr);if(R=R&&R.length&&R,D=D&&D.length&&D,l&&99!=l.originalCompressionMethod)throw new p(ls);if(0!=u&&8!=u&&9!=u&&!E)throw new p(ls);if(Fs(x,0)!=N)throw new p(ns);ys(S,x,4);const{extraFieldLength:_,filenameLength:k,lastAccessDate:T,creationDate:A}=S;S.rawExtraField=_?await Ge(i,o+q+k,_,c):new f,bs(n,S,x,4,!0),r.assign(t,{lastAccessDate:T,creationDate:A});const v=n.encrypted&&S.encrypted&&!E,U=v&&!l;if(E||(t.zipCrypto=U),v){if(!U&&l.strength===G)throw new p(cs);if(!R&&!D)throw new p(os)}const C=o+q+k+_,W=b,O=i.readable;r.assign(O,{diskNumberStart:c,offset:C,size:W});const M=Ss(n,a,Gr),L=Ss(n,a,"checkPasswordOnly");let B=Ss(n,a,"checkOverlappingEntry");const H=Ss(n,a,"checkOverlappingEntryOnly");H&&(B=!0);const{onstart:P,onprogress:Z,onend:V}=a,K=9==u;let Y=Ss(n,a,Xr);K&&(Y=!1);const j={options:{codecType:er,password:R,rawPassword:D,zipCrypto:U,encryptionStrength:l&&l.strength,signed:Ss(n,a,"checkSignature")&&!E,passwordVerification:U&&(z?g>>>8&255:m>>>24&255),outputSize:E?b:y,signature:m,compressed:0!=u&&!E,encrypted:n.encrypted&&!E,useWebWorkers:Ss(n,a,jr),useCompressionStream:Y,transferStreams:Ss(n,a,"transferStreams"),deflate64:K,checkPasswordOnly:L},config:h,streamOptions:{signal:M,size:W,onstart:P,onprogress:Z,onend:V}};let X;B&&await(async({reader:e,fileEntry:t,offset:r,diskNumberStart:s,signature:a,compressedSize:n,uncompressedSize:i,dataOffset:o,dataDescriptor:c,extraFieldZip64:l,readRanges:d})=>{let u=0;if(s)for(let t=0;s>t;t++)u+=e.readers[t].size;let f=0;if(c&&(f=l?20:12),f){const r=await Ge(e,o+n,f+4,s);if(Fs(ks(r),0)==I){const e=Fs(ks(r),4);let s,o;l?(s=_s(ks(r),8),o=_s(ks(r),16)):(s=Fs(ks(r),8),o=Fs(ks(r),12)),(t.encrypted&&!t.zipCrypto||e==a)&&s==n&&o==i&&(f+=4)}}const h={start:u+r,end:u+o+n+f,fileEntry:t};for(const e of d)if(e.fileEntry!=t&&h.start>=e.start&&h.start<e.end){const t=new p(us);throw t.overlappingEntry=e.fileEntry,t}d.push(h)})({reader:i,fileEntry:t,offset:o,diskNumberStart:c,signature:m,compressedSize:b,uncompressedSize:y,dataOffset:C,dataDescriptor:z||S.bitFlag.dataDescriptor,extraFieldZip64:d||S.extraFieldZip64,readRanges:s});try{if(!H){L&&(e=new F),e=new Ke(e),await Ye(e,E?b:y),({writable:X}=e);const{outputSize:t}=await hr({readable:O,writable:X},j);if(e.size+=t,t!=(E?b:y))throw new p(qt)}}catch(t){if(t.outputSize!==G&&(e.size+=t.outputSize),!L||t.message!=ot)throw t}finally{Ss(n,a,Jr)||!X||X.locked||await X.getWriter().close()}return L||H?G:e.getData?e.getData():X}};function ys(e,t,s){const a=e.rawBitFlag=Es(t,s+2),n=!(1&~a),i=Fs(t,s+6);r.assign(e,{encrypted:n,version:Es(t,s),bitFlag:{level:(6&a)>>1,dataDescriptor:!(8&~a),languageEncodingFlag:(a&Z)==Z},rawLastModDate:i,lastModDate:xs(i),filenameLength:Es(t,s+22),extraFieldLength:Es(t,s+24)})}function bs(e,t,s,a,n){const{rawExtraField:i}=t,l=t.extraField=new c,d=ks(new f(i));let u=0;try{for(;u<i.length;){const e=Es(d,u),t=Es(d,u+2);l.set(e,{type:e,data:i.slice(u+4,u+4+t)}),u+=4+t}}catch(e){}const h=Es(s,a+4);r.assign(t,{signature:Fs(s,a+10),compressedSize:Fs(s,a+14),uncompressedSize:Fs(s,a+18)});const w=l.get(1);w&&(((e,t)=>{t.zip64=!0;const r=ks(e.data),s=hs.filter(([e,r])=>t[e]==r);for(let a=0,n=0;a<s.length;a++){const[i,o]=s[a];if(t[i]==o){const s=ws[o];t[i]=e[i]=s.getValue(r,n),n+=s.bytes}else if(e[i])throw new p(is)}})(w,t),t.extraFieldZip64=w);const m=l.get(28789);m&&(zs(m,yr,br,t,e),t.extraFieldUnicodePath=m);const g=l.get(25461);g&&(zs(g,zr,Sr,t,e),t.extraFieldUnicodeComment=g);const y=l.get(39169);y?(((e,t,s)=>{const a=ks(e.data),n=Ds(a,4);r.assign(e,{vendorVersion:Ds(a,0),vendorId:Ds(a,2),strength:n,originalCompressionMethod:s,compressionMethod:Es(a,5)}),t.compressionMethod=e.compressionMethod})(y,t,h),t.extraFieldAES=y):t.compressionMethod=h;const b=l.get(10);b&&(((e,t)=>{const s=ks(e.data);let a,n=4;try{for(;n<e.data.length&&!a;){const t=Es(s,n),r=Es(s,n+2);1==t&&(a=e.data.slice(n+4,n+4+r)),n+=4+r}}catch(e){}try{if(a&&24==a.length){const s=ks(a),n=s.getBigUint64(0,!0),i=s.getBigUint64(8,!0),o=s.getBigUint64(16,!0);r.assign(e,{rawLastModDate:n,rawLastAccessDate:i,rawCreationDate:o});const c={lastModDate:Rs(n),lastAccessDate:Rs(i),creationDate:Rs(o)};r.assign(e,c),r.assign(t,c)}}catch(e){}})(b,t),t.extraFieldNTFS=b);const z=l.get(P);z&&(((e,t,r)=>{const s=ks(e.data),a=Ds(s,0),n=[],i=[];r?(1&~a||(n.push(Fr),i.push(_r)),2&~a||(n.push(kr),i.push("rawLastAccessDate")),4&~a||(n.push(Tr),i.push("rawCreationDate"))):5>e.data.length||(n.push(Fr),i.push(_r));let c=1;n.forEach((r,a)=>{if(e.data.length>=c+4){const n=Fs(s,c);t[r]=e[r]=new o(1e3*n);const l=i[a];e[l]=n}c+=4})})(z,t,n),t.extraFieldExtendedTimestamp=z);const S=l.get(6534);S&&(t.extraFieldUSDZ=S)}function zs(e,t,s,a,n){const i=ks(e.data),o=new Xe;o.append(n[s]);const c=ks(new f(4));c.setUint32(0,o.get(),!0);const l=Fs(i,1);r.assign(e,{version:Ds(i,0),[t]:gr(e.data.subarray(5)),valid:!n.bitFlag.languageEncodingFlag&&l==Fs(c,0)}),e.valid&&(a[t]=e[t],a[t+"UTF8"]=!0)}function Ss(e,t,r){return t[r]===G?e.options[r]:t[r]}function xs(e){const t=(4294901760&e)>>16,r=65535&e;try{return new o(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&r)>>11,(2016&r)>>5,2*(31&r),0)}catch(e){}}function Rs(e){return new o(a(e/n(1e4)-n(116444736e5)))}function Ds(e,t){return e.getUint8(t)}function Es(e,t){return e.getUint16(t,!0)}function Fs(e,t){return e.getUint32(t,!0)}function _s(e,t){return a(e.getBigUint64(t,!0))}function ks(e){return new m(e.buffer)}const Ts="File already exists",As="Zip file comment exceeds 64KB",vs="File entry comment exceeds 64KB",Us="File entry name exceeds 64KB",Cs="Version exceeds 65535",Ns="The strength must equal 1, 2, or 3",Ws="Extra field type exceeds 65535",Is="Extra field data exceeds 64KB",Os="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",Ms="Undefined uncompressed size",Ls="Zip file not empty",Bs=new f([7,0,2,0,65,69,3,0,0]);let Hs=0;const Ps=[];class Zs{constructor(e,t={}){const s=(e=new Ke(e)).availableSize!==G&&e.availableSize>0&&e.availableSize!==1/0&&e.maxSize!==G&&e.maxSize>0&&e.maxSize!==1/0;r.assign(this,{writer:e,addSplitZipSignature:s,options:t,config:ee(),files:new c,filenames:new l,offset:t[$r]===G?e.size||e.writable.size||0:t[$r],pendingEntriesSize:0,pendingAddFileCalls:new l,bufferedWrites:0})}async prependZip(e){if(this.filenames.size)throw new p(Ls);e=new qe(e);const t=new ms(e.readable),s=await t.getEntries();await t.close(),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.filenames=new l(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,compressionMethod:s,lastModDate:a,lastAccessDate:n,creationDate:i,rawFilename:o,bitFlag:c,encrypted:l,uncompressedSize:d,compressedSize:u,diskOffset:p,diskNumber:h,zip64:w}=e;let{rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraField:z}=e;const{level:S,languageEncodingFlag:x,dataDescriptor:R}=c;m=m||new f,g=g||new f,y=y||new f,b=b||new f,z=z||new f;const D=ta(m,g,y,b,z),E=w&&d>U,F=w&&u>U,{headerArray:_,headerView:k}=ra({version:t,bitFlag:sa(S,x,R,l,s),compressionMethod:s,uncompressedSize:d,compressedSize:u,lastModDate:a,rawFilename:o,zip64CompressedSize:F,zip64UncompressedSize:E,extraFieldLength:D});return r.assign(e,{zip64UncompressedSize:E,zip64CompressedSize:F,zip64Offset:w&&this.offset-p>U,zip64DiskNumberStart:w&&h>C,rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraField:z,extendedTimestamp:y.length>0||b.length>0,extraFieldExtendedTimestampFlag:1+(n?2:0)+(i?4:0),headerArray:_,headerView:k}),[e.filename,e]}))}async add(e="",s,a={}){const c=this,{pendingAddFileCalls:l,config:u}=c;let w;Hs<u.maxWorkers?Hs++:await new y(e=>Ps.push(e));try{if(e=e.trim(),c.filenames.has(e))throw new p(Ts);return c.filenames.add(e),w=(async(e,s,a,c)=>{s=s.trim();const l=Ys(e,c,Ur),u=Ys(e,c,Ir,l?20:768),w=Ys(e,c,Lr);if(u>C)throw new p(Cs);let m=Ys(e,c,vr,0);!c[Mr]&&s.endsWith(V)&&(c[Mr]=!0),Ys(e,c,Mr)?(s.endsWith(V)||(s+=V),0===m&&(m=16,l||(m|=16877<<16))):l||0!==m||(m=w?493<<16:27525120);const g=Ys(e,c,"encodeText",Qe);let b=g(s);if(b===G&&(b=Qe(s)),ta(b)>C)throw new p(Us);const z=c[zr]||"";let S=g(z);if(S===G&&(S=Qe(z)),ta(S)>C)throw new p(vs);const x=Ys(e,c,Wr,20);if(x>C)throw new p(Cs);const R=Ys(e,c,Fr,new o),E=Ys(e,c,kr),F=Ys(e,c,Tr),_=Ys(e,c,Ar,0),k=Ys(e,c,Yr);let T,A;k||(T=Ys(e,c,qr),A=Ys(e,c,Kr));const v=Ys(e,c,"encryptionStrength",3),O=Ys(e,c,Or),M=Ys(e,c,"extendedTimestamp",!0),L=Ys(e,c,"keepOrder",!0),B=Ys(e,c,jr),H=Ys(e,c,"bufferedWrite"),Z=Ys(e,c,"dataDescriptorSignature",!1),j=Ys(e,c,Gr),X=Ys(e,c,"useUnicodeFileNames",!0),J=Ys(e,c,Br);let Q=Ys(e,c,"level"),$=Ys(e,c,Xr),ee=Ys(e,c,"dataDescriptor");H&&ee===G&&(ee=!1),(ee===G||O)&&(ee=!0),Q!==G&&6!=Q&&($=!1),$||e.config.CompressionStream!==G||e.config.CompressionStreamZlib!==G||(Q=0);let re=Ys(e,c,Cr);if(!O&&(T!==G||A!==G)&&(1>v||v>3))throw new p(Ns);let se=new f;const ae=c[Pr];if(ae){let e=0,t=0;ae.forEach(t=>e+=4+ta(t)),se=new f(e),ae.forEach((e,r)=>{if(r>C)throw new p(Ws);if(ta(e)>C)throw new p(Is);$s(se,new h([r]),t),$s(se,new h([ta(e)]),t+2),$s(se,e,t+4),t+=4+ta(e)})}let ne=0,ie=0,oe=0;if(k&&(oe=c[xr],oe===G))throw new p(Ms);const ce=!0===re;a&&(a=new qe(a),await Ye(a),k?(c.uncompressedSize=oe,ne=Gs(oe)):a.size===G?(ee=!0,(re||re===G)&&(re=!0,oe=ne=4294967296)):(c.uncompressedSize=oe=a.size,ne=Gs(oe)));const{diskOffset:le,diskNumber:de,maxSize:ue}=e.writer,pe=ce||oe>U,fe=ce||ne>U,he=ce||e.offset+e.pendingEntriesSize-le>U,we=Ys(e,c,Qr,!0)&&ce||de+i.ceil(e.pendingEntriesSize/ue)>C;if(he||pe||fe||we){if(!1===re||!L)throw new p(Os);re=!0}re=re||!1;const me=Ys(e,c,Nr),ge=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:s,creationDate:a,level:o,zip64:c,zipCrypto:l,useUnicodeFileNames:d,dataDescriptor:u,directory:p,rawExtraField:h,encryptionStrength:w,extendedTimestamp:m,passThrough:g,encrypted:y,zip64UncompressedSize:b,zip64CompressedSize:z,zip64Offset:S,zip64DiskNumberStart:x,uncompressedSize:R,offset:D,diskNumberStart:E}=e;let{version:F,compressionMethod:_}=e;const k=!p&&(o>0||o===G&&0!==_);let T;const A=g||!k,v=c&&(e.bufferedWrite||!b&&!z||A);if(c){let e=4;b&&(e+=8),z&&(e+=8),S&&(e+=8),x&&(e+=4),T=new f(e);const t=ea(T);if(Xs(t,0,1),Xs(t,2,ta(T)-4),v){const e=ea(T);let t=4;b&&(Qs(e,t,n(R)),t+=8),z&&A&&(Qs(e,t,n(R)),t+=8),S&&(Qs(e,t,n(D)),t+=8),x&&(Js(e,t,E),t+=4)}}else T=new f;let U,C,W,I;if(y&&!l){U=new f(ta(Bs)+2);const e=ea(U);Xs(e,0,39169),$s(U,Bs,2),js(e,8,w)}else U=new f;if(m){W=new f(9+(s?4:0)+(a?4:0));const e=ea(W);Xs(e,0,P),Xs(e,2,ta(W)-4),I=1+(s?2:0)+(a?4:0),js(e,4,I);let t=5;Js(e,t,i.floor(r.getTime()/1e3)),t+=4,s&&(Js(e,t,i.floor(s.getTime()/1e3)),t+=4),a&&Js(e,t,i.floor(a.getTime()/1e3));try{C=new f(36);const e=ea(C),t=Ks(r);Xs(e,0,10),Xs(e,2,32),Xs(e,8,1),Xs(e,10,24),Qs(e,12,t),Qs(e,20,Ks(s)||t),Qs(e,28,Ks(a)||t)}catch(e){C=new f}}else C=W=new f;_===G&&(_=k?8:0),c&&(F=F>45?F:45),y&&!l&&(F=F>51?F:51,U[9]=_,_=99);const O=v?ta(T):0,M=O+ta(U,W,C,h),{headerArray:L,headerView:B,rawLastModDate:H}=ra({version:F,bitFlag:sa(o,d,u,y,_),compressionMethod:_,uncompressedSize:R,lastModDate:Y>r?Y:r>K?K:r,rawFilename:t,zip64CompressedSize:z,zip64UncompressedSize:b,extraFieldLength:M});let Z=q;const V=new f(Z+ta(t)+M),j=ea(V);return Js(j,0,N),$s(V,L,4),$s(V,t,Z),Z+=ta(t),v&&$s(V,T,Z),Z+=O,$s(V,U,Z),Z+=ta(U),$s(V,W,Z),Z+=ta(W),$s(V,C,Z),Z+=ta(C),$s(V,h,Z),u&&(Js(j,18,0),Js(j,22,0)),{localHeaderArray:V,localHeaderView:j,headerArray:L,headerView:B,lastModDate:r,rawLastModDate:H,encrypted:y,compressed:k,version:F,compressionMethod:_,extraFieldExtendedTimestampFlag:I,rawExtraFieldZip64:T,localExtraFieldZip64Length:O,rawExtraFieldExtendedTimestamp:W,rawExtraFieldNTFS:C,rawExtraFieldAES:U,extraFieldLength:M}})(c=r.assign({},c,{rawFilename:b,rawComment:S,version:x,versionMadeBy:u,lastModDate:R,lastAccessDate:E,creationDate:F,rawExtraField:se,zip64:re,zip64UncompressedSize:pe,zip64CompressedSize:fe,zip64Offset:he,zip64DiskNumberStart:we,password:T,rawPassword:A,level:Q,useWebWorkers:B,encryptionStrength:v,extendedTimestamp:M,zipCrypto:O,bufferedWrite:H,keepOrder:L,useUnicodeFileNames:X,dataDescriptor:ee,dataDescriptorSignature:Z,signal:j,msDosCompatible:l,internalFileAttribute:_,internalFileAttributes:_,externalFileAttribute:m,externalFileAttributes:m,useCompressionStream:$,passThrough:k,encrypted:!!(T&&ta(T)||A&&ta(A))||k&&me,signature:c[Hr],compressionMethod:J,uncompressedSize:oe,offset:e.offset-le,diskNumberStart:de})),ye=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:r})=>{let s,a=new f,n=0,i=e?20:12;return r&&(i+=4),t&&(a=new f(i),s=ea(a),r&&(n=4,Js(s,0,I))),{dataDescriptorArray:a,dataDescriptorView:s,dataDescriptorOffset:n}})(c),be=ta(ge.localHeaderArray,ye.dataDescriptorArray);let ze;ie=be+ne,e.options[es]&&(ie+=ie+64),e.pendingEntriesSize+=ie;try{ze=await(async(e,s,a,i,o)=>{const{files:c,writer:l}=e,{keepOrder:u,dataDescriptor:h,signal:w}=o,{headerInfo:m}=i,g=e.options[es],b=t.from(c.values()).pop();let z,S,x,R,E,F,_,k={};c.set(s,k);try{let t;u&&(t=b&&b.lock,k.lock=new y(e=>x=e)),!(o.bufferedWrite||e.writerLocked||e.bufferedWrites&&u)&&h||g?(F=l,await T()):(F=new D,F.size=0,z=!0,e.bufferedWrites++,await Ye(l)),await Ye(F);const{writable:S,diskOffset:v}=l;if(e.addSplitZipSignature){delete e.addSplitZipSignature;const t=new f(4);Js(ea(t),0,W),await qs(l,t),e.offset+=4}g&&((e,t)=>{const{headerInfo:r}=e;let{localHeaderArray:s,extraFieldLength:a}=r,n=ea(s),i=64-(t+ta(s))%64;4>i&&(i+=64);const o=new f(i),c=ea(o);Xs(c,0,6534),Xs(c,2,i-2);const l=s;r.localHeaderArray=s=new f(ta(l)+i),$s(s,l),$s(s,o,ta(l)),n=ea(s),Xs(n,28,a+i),e.metadataSize+=i})(i,e.offset-v);const{localHeaderView:C,localHeaderArray:N}=m;z||(await t,await A(S));const{diskNumber:I}=l;E=!0,k.diskNumberStart=I,z?_=new d(F.readable).blob():await qs(F,N),k=await(async(e,t,{diskNumberStart:s,lock:a},i,o,c)=>{const{headerInfo:l,dataDescriptorInfo:d,metadataSize:u}=i,{headerArray:p,headerView:f,lastModDate:h,rawLastModDate:w,encrypted:m,compressed:g,version:y,compressionMethod:b,rawExtraFieldZip64:z,localExtraFieldZip64Length:S,rawExtraFieldExtendedTimestamp:x,extraFieldExtendedTimestampFlag:R,rawExtraFieldNTFS:D,rawExtraFieldAES:E}=l,{dataDescriptorArray:F}=d,{rawFilename:_,lastAccessDate:k,creationDate:T,password:A,rawPassword:v,level:U,zip64:C,zip64UncompressedSize:N,zip64CompressedSize:W,zip64Offset:I,zip64DiskNumberStart:O,zipCrypto:M,dataDescriptor:L,directory:B,executable:H,versionMadeBy:P,rawComment:Z,rawExtraField:V,useWebWorkers:q,onstart:K,onprogress:Y,onend:j,signal:X,encryptionStrength:J,extendedTimestamp:Q,msDosCompatible:$,internalFileAttributes:ee,externalFileAttributes:re,useCompressionStream:se,passThrough:ae}=c,ne={lock:a,versionMadeBy:P,zip64:C,directory:!!B,executable:!!H,filenameUTF8:!0,rawFilename:_,commentUTF8:!0,rawComment:Z,rawExtraFieldZip64:z,localExtraFieldZip64Length:S,rawExtraFieldExtendedTimestamp:x,rawExtraFieldNTFS:D,rawExtraFieldAES:E,rawExtraField:V,extendedTimestamp:Q,msDosCompatible:$,internalFileAttributes:ee,externalFileAttributes:re,diskNumberStart:s};let{signature:ie,uncompressedSize:oe}=c,ce=0;ae||(oe=0);const{writable:le}=t;if(e){e.chunkSize=te(o);const r=e.readable,s=e.size,a={options:{codecType:$t,level:U,rawPassword:v,password:A,encryptionStrength:J,zipCrypto:m&&M,passwordVerification:m&&M&&w>>8&255,signed:!ae,compressed:g&&!ae,encrypted:m&&!ae,useWebWorkers:q,useCompressionStream:se,transferStreams:!1},config:o,streamOptions:{signal:X,size:s,onstart:K,onprogress:Y,onend:j}};try{const e=await hr({readable:r,writable:le},a);ce=e.outputSize,t.size+=ce,ae||(oe=e.inputSize,ie=e.signature)}catch(e){throw e.outputSize!==G&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:r,headerInfo:s,dataDescriptorInfo:a},{zip64:i,zipCrypto:o,dataDescriptor:c})=>{const{headerView:l,encrypted:d}=s,{dataDescriptorView:u,dataDescriptorOffset:p}=a;d&&!o||e===G||(Js(l,10,e),c&&Js(u,p,e)),i?c&&(Qs(u,p+4,n(t)),Qs(u,p+12,n(r))):(Js(l,14,t),Js(l,18,r),c&&(Js(u,p+4,t),Js(u,p+8,r)))})({signature:ie,compressedSize:ce,uncompressedSize:oe,headerInfo:l,dataDescriptorInfo:d},c),L&&await qs(t,F),r.assign(ne,{uncompressedSize:oe,compressedSize:ce,lastModDate:h,rawLastModDate:w,creationDate:T,lastAccessDate:k,encrypted:m,zipCrypto:M,size:u+ce,compressionMethod:b,version:y,headerArray:p,headerView:f,signature:ie,extraFieldExtendedTimestampFlag:R,zip64UncompressedSize:N,zip64CompressedSize:W,zip64Offset:I,zip64DiskNumberStart:O}),ne})(a,F,k,i,e.config,o);const{zip64:O}=k;if(E=!1,c.set(s,k),k.filename=s,z){const[r]=await y.all([_,F.writable.getWriter().close(),t]);await T(),R=!0,k.diskNumberStart=l.diskNumber,k.offset=e.offset-l.diskOffset,O&&Vs(k),(({rawFilename:e,encrypted:t,zip64:r,localExtraFieldZip64Length:s,signature:a,compressedSize:i,uncompressedSize:o,offset:c,diskNumberStart:l,zip64UncompressedSize:d,zip64CompressedSize:u,zip64Offset:p,zip64DiskNumberStart:f},h,{dataDescriptor:w})=>{if(w||(t||Js(h,14,a),r||(Js(h,18,i),Js(h,22,o))),r&&s){let t=q+ta(e)+4;d&&(Qs(h,t,n(o)),t+=8),u&&(Qs(h,t,n(i)),t+=8),p&&(Qs(h,t,n(c)),t+=8),f&&Js(h,t,l)}})(k,C,o),await A(S),await qs(l,N),await r.stream().pipeTo(S,{preventClose:!0,preventAbort:!0,signal:w}),l.size+=F.size,R=!1}else k.offset=e.offset-v,O&&Vs(k);if(k.offset>U&&!O)throw new p(Os);return e.offset+=k.size,k}catch(t){if(z&&R||!z&&E){if(e.hasCorruptedEntries=!0,t)try{t.corruptedEntry=!0}catch(e){}z?e.offset+=F.size:e.offset=F.size}throw c.delete(s),t}finally{z&&e.bufferedWrites--,x&&x(),S&&S()}async function T(){e.writerLocked=!0;const{lockWriter:t}=e;e.lockWriter=new y(t=>S=()=>{e.writerLocked=!1,t()}),await t}async function A(e){ta(m.localHeaderArray)>l.availableSize&&(l.availableSize=0,await qs(e,new f))}})(e,s,a,{headerInfo:ge,dataDescriptorInfo:ye,metadataSize:be},c)}finally{e.pendingEntriesSize-=ie}return r.assign(ze,{name:s,comment:z,extraField:ae}),new Vr(ze)})(c,e,s,a),l.add(w),await w}catch(t){throw c.filenames.delete(e),t}finally{l.delete(w);const e=Ps.shift();e?e():Hs--}}remove(e){const{filenames:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==G){const{filename:s}=e;if(t.has(s)&&r.has(s))return t.delete(s),r.delete(s),!0}return!1}async close(e=new f,r={}){const{pendingAddFileCalls:s,writer:a}=this,{writable:o}=a;for(;s.size;)await y.allSettled(t.from(s));return await(async(e,r,s)=>{const{files:a,writer:o}=e,{diskOffset:c}=o;let{diskNumber:l}=o,d=0,u=0,h=e.offset-c,w=a.size;for(const[,e]of a){const{rawFilename:t,rawExtraFieldZip64:r,rawExtraFieldAES:s,rawComment:a,rawExtraFieldNTFS:n,rawExtraField:o,extendedTimestamp:c,extraFieldExtendedTimestampFlag:l,lastModDate:d}=e;let p;if(c){p=new f(9);const e=ea(p);Xs(e,0,P),Xs(e,2,5),js(e,4,l),Js(e,5,i.floor(d.getTime()/1e3))}else p=new f;e.rawExtraFieldExtendedTimestamp=p,u+=46+ta(t,a,r,s,n,p,o)}const m=new f(u),g=ea(m);await Ye(o);let y=0;for(const[e,r]of t.from(a.values()).entries()){const{offset:t,rawFilename:n,rawExtraFieldZip64:i,rawExtraFieldAES:c,rawExtraFieldExtendedTimestamp:l,rawExtraFieldNTFS:u,rawExtraField:p,rawComment:f,versionMadeBy:h,headerArray:w,headerView:b,zip64:z,zip64UncompressedSize:S,zip64CompressedSize:x,zip64DiskNumberStart:R,zip64Offset:D,internalFileAttributes:E,externalFileAttributes:F,diskNumberStart:_,uncompressedSize:k,compressedSize:T}=r,A=ta(i,c,l,u,p);Js(g,d,O),Xs(g,d+4,h),S||Js(b,18,k),x||Js(b,14,T),$s(m,w,d+6);let v=d+q;if(Xs(g,v,A),v+=2,Xs(g,v,ta(f)),v+=2,Xs(g,v,z&&R?C:_),v+=2,Xs(g,v,E),v+=2,F&&Js(g,v,F),v+=4,Js(g,v,z&&D?U:t),v+=4,$s(m,n,v),v+=ta(n),$s(m,i,v),v+=ta(i),$s(m,c,v),v+=ta(c),$s(m,l,v),v+=ta(l),$s(m,u,v),v+=ta(u),$s(m,p,v),v+=ta(p),$s(m,f,v),d-y>o.availableSize&&(o.availableSize=0,await qs(o,m.slice(y,d)),y=d),d=v,s.onprogress)try{await s.onprogress(e+1,a.size,new Vr(r))}catch(e){}}await qs(o,y?m.slice(y):m);let b=o.diskNumber;const{availableSize:z}=o;H>z&&b++;let S=Ys(e,s,Cr);if(h>U||u>U||w>C||b>C){if(!1===S)throw new p(Os);S=!0}const x=new f(S?98:H),R=ea(x);d=0,S&&(Js(R,0,L),Qs(R,4,n(44)),Xs(R,12,45),Xs(R,14,45),Js(R,16,b),Js(R,20,l),Qs(R,24,n(w)),Qs(R,32,n(w)),Qs(R,40,n(u)),Qs(R,48,n(h)),Js(R,56,B),Qs(R,64,n(h)+n(u)),Js(R,72,b+1),Ys(e,s,Qr,!0)&&(b=C,l=C),w=C,h=U,u=U,d+=76),Js(R,d,M),Xs(R,d+4,b),Xs(R,d+6,l),Xs(R,d+8,w),Xs(R,d+10,w),Js(R,d+12,u),Js(R,d+16,h);const D=ta(r);if(D){if(D>C)throw new p(As);Xs(R,d+20,D)}await qs(o,x),D&&await qs(o,r)})(this,e,r),Ys(this,r,Jr)||await o.getWriter().close(),a.getData?a.getData():o}}function Vs({compressedSize:e,uncompressedSize:t,offset:r,diskNumberStart:s,zip64UncompressedSize:a,zip64CompressedSize:i,zip64Offset:o,zip64DiskNumberStart:c,rawExtraFieldZip64:l}){const d=ea(l);let u=4;a&&(Qs(d,u,n(t)),u+=8),i&&(Qs(d,u,n(e)),u+=8),o&&(Qs(d,u,n(r)),u+=8),c&&Js(d,u,s)}async function qs(e,t){const{writable:r}=e,s=r.getWriter();try{await s.ready,e.size+=ta(t),await s.write(t)}finally{s.releaseLock()}}function Ks(e){if(e)return(n(e.getTime())+n(116444736e5))*n(1e4)}function Ys(e,t,r,s){const a=t[r]===G?e.options[r]:t[r];return a===G?s:a}function Gs(e){return e+5*(i.floor(e/16383)+1)}function js(e,t,r){e.setUint8(t,r)}function Xs(e,t,r){e.setUint16(t,r,!0)}function Js(e,t,r){e.setUint32(t,r,!0)}function Qs(e,t,r){e.setBigUint64(t,r,!0)}function $s(e,t,r){e.set(t,r)}function ea(e){return new m(e.buffer)}function ta(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function ra({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:s,compressedSize:a,lastModDate:n,rawFilename:i,zip64CompressedSize:o,zip64UncompressedSize:c,extraFieldLength:l}){const d=new f(26),u=ea(d);Xs(u,0,e),Xs(u,2,t),Xs(u,4,r);const p=new w(1),h=ea(p);Xs(h,0,(n.getHours()<<6|n.getMinutes())<<5|n.getSeconds()/2),Xs(h,2,(n.getFullYear()-1980<<4|n.getMonth()+1)<<5|n.getDate());const m=p[0];return Js(u,6,m),(o||a!==G)&&Js(u,14,o?U:a),(c||s!==G)&&Js(u,18,c?U:s),Xs(u,22,ta(i)),Xs(u,24,l),{headerArray:d,headerView:u,rawLastModDate:m}}function sa(e,t,r,s,a){let n=0;return t&&(n|=Z),r&&(n|=8),8!=a&&9!=a||(0>e||e>3||(n|=6),e>3&&5>=e&&(n|=4),9==e&&(n|=2)),s&&(n|=1),n}let aa;try{aa=void 0===S&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===S?location.href:v&&"SCRIPT"===v.tagName.toUpperCase()&&v.src||new u("zip-fs-core.min.js",S.baseURI).href}catch(e){}re({baseURI:aa,CompressionStreamZlib:class{constructor(e="deflate",t){return ce(!0,e,t)}},DecompressionStreamZlib:class{constructor(e="deflate",t){return ce(!1,e,t)}}});class na{constructor(e,t,s,a){const n=this;if(e.root&&a&&a.getChildByName(t))throw new p("Entry filename already exists");s||(s={}),r.assign(n,{fs:e,name:t,data:s.data,options:s.options,id:e.entries.length,parent:a,children:[],uncompressedSize:s.uncompressedSize||0,passThrough:s.passThrough}),e.entries.push(n),a&&n.parent.children.push(n)}moveTo(e){this.fs.move(this,e)}getFullname(){return this.getRelativeName()}getRelativeName(e=this.fs.root){let t=this.name,r=this.parent;for(;r&&r!=e;)t=(r.name?r.name+"/":"")+t,r=r.parent;return t}isDescendantOf(e){let t=this.parent;for(;t&&t.id!=e.id;)t=t.parent;return!!t}rename(e){const t=this.parent;if(t&&t.getChildByName(e))throw new p("Entry filename already exists");this.name=e}}class ia extends na{constructor(e,t,r,s){super(e,t,r,s);const a=this;a.Reader=r.Reader,a.Writer=r.Writer,r.getData&&(a.getData=r.getData)}clone(){return new ia(this.fs,this.name,this)}async getData(e,t={}){const r=this;if(!e||e.constructor==r.Writer&&r.data)return r.data;{const s=r.reader=new r.Reader(r.data,t),a=r.data?r.data.uncompressedSize:s.size;await y.all([Ye(s),Ye(e,a)]);const{readable:n}=s;return r.uncompressedSize=s.size,await n.pipeTo(e.writable),e.getData?e.getData():e.writable}}isPasswordProtected(){return this.data.encrypted}async checkPassword(e,t={}){const r=this;if(!r.isPasswordProtected())return!0;t.password=e,t.checkPasswordOnly=!0;try{return await r.data.getData(null,t),!0}catch(e){if(e.message==nt)return!1;throw e}}getText(e,t){return this.getData(new Fe(e),t)}getBlob(e,t){return this.getData(new De(e),t)}getData64URI(e,t){return this.getData(new xe(e),t)}getUint8Array(e){return this.getData(new Pe,e)}getWritable(e=new F,t){return this.getData({writable:e},t)}getArrayBuffer(e){return this.data.arrayBuffer(e)}replaceBlob(e){r.assign(this,{data:e,Reader:Re,Writer:De,reader:null})}replaceText(e){r.assign(this,{data:e,Reader:Ee,Writer:Fe,reader:null})}replaceData64URI(e){r.assign(this,{data:e,Reader:Se,Writer:xe,reader:null})}replaceUint8Array(e){r.assign(this,{data:e,Reader:He,Writer:Pe,reader:null})}replaceReadable(e){r.assign(this,{data:null,Reader:()=>({readable:e}),Writer:null,reader:null})}}class oa extends na{constructor(e,t,r,s){super(e,t,r,s),this.directory=!0}clone(e){const t=this,r=new oa(t.fs,t.name);return e&&(r.children=t.children.map(t=>{const s=t.clone(e);return s.parent=r,s})),r}addDirectory(e,t){return wa(this,e,{options:t},!0)}addText(e,t,r={}){return wa(this,e,{data:t,Reader:Ee,Writer:Fe,options:r,uncompressedSize:t.length})}addBlob(e,t,r={}){return wa(this,e,{data:t,Reader:Re,Writer:De,options:r,uncompressedSize:t.size})}addData64URI(e,t,r={}){let s=t.length;for(;"="==t.charAt(s-1);)s--;const a=t.indexOf(",")+1;return wa(this,e,{data:t,Reader:Se,Writer:xe,options:r,uncompressedSize:i.floor(.75*(s-a))})}addUint8Array(e,t,r={}){return wa(this,e,{data:t,Reader:He,Writer:Pe,options:r,uncompressedSize:t.length})}addHttpContent(e,t,r={}){return wa(this,e,{data:t,Reader:class extends Be{constructor(e){super(e,r)}},options:r})}addReadable(e,t,r={}){return wa(this,e,{Reader:()=>({readable:t}),options:r})}addFileSystemEntry(e,t={}){return pa(this,e,t)}addFileSystemHandle(e,t={}){return pa(this,e,t)}addFile(e,t={}){return t.lastModDate||(t.lastModDate=new o(e.lastModified)),wa(this,e.name,{data:e,Reader:()=>({readable:e.stream(),size:e.size}),options:t,uncompressedSize:e.size})}addData(e,t){return wa(this,e,t)}importBlob(e,t){return this.importZip(new Re(e),t)}importData64URI(e,t){return this.importZip(new Se(e),t)}importUint8Array(e,t){return this.importZip(new He(e),t)}importHttpContent(e,t){return this.importZip(new Be(e,t),t)}importReadable(e,t){return this.importZip({readable:e},t)}exportBlob(e={}){return this.exportZip(new De(e.mimeType||"application/zip"),e)}exportData64URI(e={}){return this.exportZip(new xe(e.mimeType||"application/zip"),e)}exportUint8Array(e={}){return this.exportZip(new Pe,e)}async exportWritable(e=new F,t={}){return await this.exportZip({writable:e},t),e}async importZip(e,t={}){await Ye(e);const s=new ms(e,t),a=[],n=await s.getEntries();for(const e of n){let s=this;try{const n=e.filename.split("/"),i=n.pop();n.forEach((t,r)=>{const i=s;s=s.getChildByName(t),s||(s=new oa(this.fs,t,{data:r==n.length-1?e:null},i),a.push(s))}),e.directory||a.push(wa(s,i,{data:e,Reader:la(r.assign({},t)),uncompressedSize:e.uncompressedSize,passThrough:t.passThrough}))}catch(t){try{t.cause={entry:e}}catch(e){}throw t}}return a}async exportZip(e,s){const a=this;s.bufferedWrite===G&&(s.bufferedWrite=!0),await y.all([da(a,s.readerOptions),Ye(e)]);const n=new Zs(e,s);return await(async(e,s,a,n)=>{const i=s,o=new c;await async function e(s,c){async function l(c){const l=n.relativePath?c.getRelativeName(i):c.getFullname(),d=c.options||{};let u={};if(c.data instanceof Vr){const{externalFileAttributes:e,versionMadeBy:t,comment:s,lastModDate:a,creationDate:n,lastAccessDate:i,uncompressedSize:o,encrypted:l,zipCrypto:d,signature:p,compressionMethod:f,extraFieldAES:h}=c.data;if(u={externalFileAttributes:e,versionMadeBy:t,comment:s,lastModDate:a,creationDate:n,lastAccessDate:i},c.passThrough){let e,t;0===f&&(e=0),h&&(t=h.strength),u=r.assign(u,{passThrough:!0,encrypted:l,zipCrypto:d,signature:p,uncompressedSize:o,level:e,encryptionStrength:t,compressionMethod:f})}}await s.add(l,c.reader,r.assign({},n,u,d,{directory:c.directory,onprogress:async e=>{if(n.onprogress){o.set(l,e);try{await n.onprogress(t.from(o.values()).reduce((e,t)=>e+t),a)}catch(e){}}}})),await e(s,c)}await(async()=>{if(n.bufferedWrite)await y.allSettled(c.children.map(l));else for(const e of c.children)await l(e)})()}(e,s)})(n,a,(e=>{let t=0;return e.forEach(function e(r){t+=r.uncompressedSize,r.children&&r.children.forEach(e)}),t})([a]),s),await n.close(),e.getData?e.getData():e.writable}getChildByName(e){const t=this.children;for(let r=0;r<t.length;r++){const s=t[r];if(s.name==e)return s}}isPasswordProtected(){const e=this.children;for(let t=0;t<e.length;t++)if(e[t].isPasswordProtected())return!0;return!1}async checkPassword(e,t={}){const r=this.children;return!(await y.all(r.map(r=>r.checkPassword(e,t)))).includes(!1)}}const ca={FS:class{constructor(){ha(this)}get children(){return this.root.children}remove(e){ua(e),this.entries[e.id]=null}move(e,t){if(e==this.root)throw new p("Root directory cannot be moved");if(!t.directory)throw new p("Target entry is not a directory");if(t.isDescendantOf(e))throw new p("Entry is a ancestor of target entry");if(e!=t){if(t.getChildByName(e.name))throw new p("Entry filename already exists");ua(e),e.parent=t,t.children.push(e)}}find(e){const t=e.split("/");let r=this.root;for(let e=0;r&&e<t.length;e++)r=r.getChildByName(t[e]);return r}getById(e){return this.entries[e]}getChildByName(e){return this.root.getChildByName(e)}addDirectory(e,t){return this.root.addDirectory(e,t)}addText(e,t,r){return this.root.addText(e,t,r)}addBlob(e,t,r){return this.root.addBlob(e,t,r)}addData64URI(e,t,r){return this.root.addData64URI(e,t,r)}addUint8Array(e,t,r){return this.root.addUint8Array(e,t,r)}addHttpContent(e,t,r){return this.root.addHttpContent(e,t,r)}addReadable(e,t,r){return this.root.addReadable(e,t,r)}addFileSystemEntry(e,t){return this.root.addFileSystemEntry(e,t)}addFileSystemHandle(e,t){return this.root.addFileSystemHandle(e,t)}addFile(e,t){return this.root.addFile(e,t)}addData(e,t){return this.root.addData(e,t)}importBlob(e,t){return ha(this),this.root.importBlob(e,t)}importData64URI(e,t){return ha(this),this.root.importData64URI(e,t)}importUint8Array(e,t){return ha(this),this.root.importUint8Array(e,t)}importHttpContent(e,t){return ha(this),this.root.importHttpContent(e,t)}importReadable(e,t){return ha(this),this.root.importReadable(e,t)}importZip(e,t){return this.root.importZip(e,t)}exportBlob(e){return this.root.exportBlob(e)}exportData64URI(e){return this.root.exportData64URI(e)}exportUint8Array(e){return this.root.exportUint8Array(e)}exportWritable(e,t){return this.root.exportWritable(e,t)}isPasswordProtected(){return this.root.isPasswordProtected()}checkPassword(e,t){return this.root.checkPassword(e,t)}},ZipDirectoryEntry:oa,ZipFileEntry:ia};function la(e){return class extends be{constructor(e,t={}){super(),this.entry=e,this.options=t}async init(){const t=this;t.size=t.entry.uncompressedSize;const s=await t.entry.getData(new De,r.assign({},t.options,e));t.data=s,t.blobReader=new Re(s),super.init()}readUint8Array(e,t){return this.blobReader.readUint8Array(e,t)}}}async function da(e,t){e.children.length&&await y.all(e.children.map(async e=>{if(e.directory)await da(e,t);else{const r=e.reader=new e.Reader(e.data,t);try{await Ye(r)}catch(t){try{t.entryId=e.id,t.cause={entry:e}}catch(e){}throw t}e.uncompressedSize=r.size}}))}function ua(e){if(e.parent){const t=e.parent.children;t.forEach((r,s)=>{r.id==e.id&&t.splice(s,1)})}}function pa(e,t,s){return async function e(t,a,n){if(a)try{if((a.isFile||a.isDirectory)&&(a=await fa(a)),"file"==a.kind){const e=await a.getFile();n.push(t.addData(e.name,{Reader:()=>({readable:e.stream(),size:e.size}),options:r.assign({},{lastModDate:new o(e.lastModified)},s),uncompressedSize:e.size}))}else if("directory"==a.kind){const r=t.addDirectory(a.name);n.push(r);for await(const t of a.values())await e(r,t,n)}}catch(e){const t=e.message+(a?" ("+a.name+")":"");throw new p(t)}return n}(e,t,[])}async function fa(e){const t={name:e.name};if(e.isFile&&(t.kind="file",t.getFile=()=>new y((t,r)=>e.file(t,r))),e.isDirectory){t.kind="directory";const r=await(async e=>{const t=[];function r(e,s,a){e.readEntries(async n=>{if(n.length){for(const e of n)t.push(await fa(e));r(e,s,a)}else s(t)},a)}return await new y((t,s)=>r(e.createReader(),t,s)),{[Symbol.iterator](){let e=0;return{next(){const r={value:t[e],done:e==t.length};return e++,r}}}}})(e);t.values=()=>r}return t}function ha(e){e.entries=[],e.root=new oa(e)}function wa(e,t,r,s){if(e.directory)return s?new oa(e.fs,t,r,e):new ia(e.fs,t,r,e);throw new p("Parent entry is not a directory")}e.BlobReader=Re,e.BlobWriter=De,e.Data64URIReader=Se,e.Data64URIWriter=xe,e.ERR_BAD_FORMAT=ts,e.ERR_CENTRAL_DIRECTORY_NOT_FOUND=as,e.ERR_DUPLICATED_NAME=Ts,e.ERR_ENCRYPTED=os,e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=ss,e.ERR_EOCDR_NOT_FOUND=rs,e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=is,e.ERR_HTTP_RANGE=pe,e.ERR_INVALID_COMMENT=As,e.ERR_INVALID_ENCRYPTION_STRENGTH=Ns,e.ERR_INVALID_ENTRY_COMMENT=vs,e.ERR_INVALID_ENTRY_NAME=Us,e.ERR_INVALID_EXTRAFIELD_DATA=Is,e.ERR_INVALID_EXTRAFIELD_TYPE=Ws,e.ERR_INVALID_PASSWORD=nt,e.ERR_INVALID_SIGNATURE=it,e.ERR_INVALID_UNCOMPRESSED_SIZE=qt,e.ERR_INVALID_VERSION=Cs,e.ERR_LOCAL_FILE_HEADER_NOT_FOUND=ns,e.ERR_OVERLAPPING_ENTRY=us,e.ERR_SPLIT_ZIP_FILE=ds,e.ERR_UNDEFINED_UNCOMPRESSED_SIZE=Ms,e.ERR_UNSUPPORTED_COMPRESSION=ls,e.ERR_UNSUPPORTED_ENCRYPTION=cs,e.ERR_UNSUPPORTED_FORMAT=Os,e.ERR_ZIP_NOT_EMPTY=Ls,e.HttpRangeReader=class extends Be{constructor(e,t={}){t.useRangeHeader=!0,super(e,t)}},e.HttpReader=Be,e.Reader=be,e.SplitDataReader=Ze,e.SplitDataWriter=Ve,e.TextReader=Ee,e.TextWriter=Fe,e.Uint8ArrayReader=He,e.Uint8ArrayWriter=Pe,e.Writer=ze,e.ZipReader=ms,e.ZipReaderStream=class{constructor(e={}){const{readable:t,writable:r}=new D,s=new ms(t,e).getEntriesGenerator();this.readable=new E({async pull(e){const{done:t,value:r}=await s.next();if(t)return e.close();const a={...r,readable:(()=>{const{readable:e,writable:t}=new D;if(r.getData)return r.getData(t),e})()};delete a.getData,e.enqueue(a)}}),this.writable=r}},e.ZipWriter=Zs,e.ZipWriterStream=class{constructor(e={}){const{readable:t,writable:r}=new D;this.readable=t,this.zipWriter=new Zs(r,e)}transform(e){const{readable:t,writable:r}=new D({flush:()=>{this.zipWriter.close()}});return this.zipWriter.add(e,t),{readable:this.readable,writable:r}}writable(e){const{readable:t,writable:r}=new D;return this.zipWriter.add(e,t),r}close(e,t={}){return this.zipWriter.close(e,t)}},e.configure=re,e.fs=ca,e.getMimeType=()=>"application/octet-stream",e.resetWasmModule=de,e.terminateWorkers=async()=>{await y.allSettled(ur.map(e=>(wr(e),e.terminate()))),de()}});
package/dist/zip-fs.js CHANGED
@@ -194,7 +194,7 @@
194
194
  }
195
195
  }
196
196
 
197
- function t(t){t({workerURI:()=>"data:text/javascript,"+encodeURIComponent('(t=>{"function"==typeof define&&define.amd?define(t):t()})(function(){"use strict";const{Array:t,Object:e,Number:n,Math:s,Error:r,Uint8Array:o,Uint16Array:i,Uint32Array:c,Int32Array:a,Map:h,DataView:l,Promise:u,TextEncoder:f,crypto:w,postMessage:p,TransformStream:d,ReadableStream:y,WritableStream:m,CompressionStream:g,DecompressionStream:b}=self,S=[];for(let t=0;256>t;t++){let e=t;for(let t=0;8>t;t++)1&e?e=e>>>1^3988292384:e>>>=1;S[t]=e}class v{constructor(t){this.t=t||-1}append(t){let e=0|this.t;for(let n=0,s=0|t.length;s>n;n++)e=e>>>8^S[255&(e^t[n])];this.t=e}get(){return~this.t}}class k extends d{constructor(){let t;const e=new v;super({transform(t,n){e.append(t),n.enqueue(t)},flush(){const n=new o(4);new l(n.buffer).setUint32(0,e.get()),t.value=n}}),t=this}}const z="undefined",C="function",A={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const n=t[t.length-1],s=A.o(n);return 32===s?t.concat(e):A.i(e,s,0|n,t.slice(0,t.length-1))},h(t){const e=t.length;if(0===e)return 0;const n=t[e-1];return 32*(e-1)+A.o(n)},l(t,e){if(32*t.length<e)return t;const n=(t=t.slice(0,s.ceil(e/32))).length;return e&=31,n>0&&e&&(t[n-1]=A.u(e,t[n-1]&2147483648>>e-1,1)),t},u:(t,e,n)=>32===t?e:(n?0|e:e<<32-t)+1099511627776*t,o:t=>s.round(t/1099511627776)||32,i(t,e,n,s){for(void 0===s&&(s=[]);e>=32;e-=32)s.push(n),n=0;if(0===e)return s.concat(t);for(let r=0;r<t.length;r++)s.push(n|t[r]>>>e),n=t[r]<<32-e;const r=t.length?t[t.length-1]:0,o=A.o(r);return s.push(A.u(e+o&31,e+o>32?n:s.pop(),1)),s}},x={bytes:{p(t){const e=A.h(t)/8,n=new o(e);let s;for(let r=0;e>r;r++)3&r||(s=t[r/4]),n[r]=s>>>24,s<<=8;return n},m(t){const e=[];let n,s=0;for(n=0;n<t.length;n++)s=s<<8|t[n],3&~n||(e.push(s),s=0);return 3&n&&e.push(A.u(8*(3&n),s)),e}}},I=class{constructor(t){const e=this;e.blockSize=512,e.S=[1732584193,4023233417,2562383102,271733878,3285377520],e.v=[1518500249,1859775393,2400959708,3395469782],t?(e.k=t.k.slice(0),e.C=t.C.slice(0),e.A=t.A):e.reset()}reset(){const t=this;return t.k=t.S.slice(0),t.C=[],t.A=0,t}update(t){const e=this;"string"==typeof t&&(t=x.I.m(t));const n=e.C=A.concat(e.C,t),s=e.A,o=e.A=s+A.h(t);if(o>9007199254740991)throw new r("Cannot hash more than 2^53 - 1 bits");const i=new c(n);let a=0;for(let t=e.blockSize+s-(e.blockSize+s&e.blockSize-1);o>=t;t+=e.blockSize)e.R(i.subarray(16*a,16*(a+1))),a+=1;return n.splice(0,16*a),e}P(){const t=this;let e=t.C;const n=t.k;e=A.concat(e,[A.u(1,1)]);for(let t=e.length+2;15&t;t++)e.push(0);for(e.push(s.floor(t.A/4294967296)),e.push(0|t.A);e.length;)t.R(e.splice(0,16));return t.reset(),n}U(t,e,n,s){return t>19?t>39?t>59?t>79?void 0:e^n^s:e&n|e&s|n&s:e^n^s:e&n|~e&s}V(t,e){return e<<t|e>>>32-t}R(e){const n=this,r=n.k,o=t(80);for(let t=0;16>t;t++)o[t]=e[t];let i=r[0],c=r[1],a=r[2],h=r[3],l=r[4];for(let t=0;79>=t;t++){16>t||(o[t]=n.V(1,o[t-3]^o[t-8]^o[t-14]^o[t-16]));const e=n.V(5,i)+n.U(t,c,a,h)+l+o[t]+n.v[s.floor(t/20)]|0;l=h,h=a,a=n.V(30,c),c=i,i=e}r[0]=r[0]+i|0,r[1]=r[1]+c|0,r[2]=r[2]+a|0,r[3]=r[3]+h|0,r[4]=r[4]+l|0}},R={getRandomValues(t){const e=new c(t.buffer),n=t=>{let e=987654321;const n=4294967295;return()=>(e=36969*(65535&e)+(e>>16)&n,(((e<<16)+(t=18e3*(65535&t)+(t>>16)&n)&n)/4294967296+.5)*(s.random()>.5?1:-1))};for(let r,o=0;o<t.length;o+=4){const t=n(4294967296*(r||s.random()));r=987654071*t(),e[o/4]=4294967296*t()|0}return t}},P={importKey:t=>new P._(x.bytes.m(t)),B(t,e,n,s){if(n=n||1e4,0>s||0>n)throw new r("invalid params to pbkdf2");const o=1+(s>>5)<<2;let i,c,a,h,u;const f=new ArrayBuffer(o),w=new l(f);let p=0;const d=A;for(e=x.bytes.m(e),u=1;(o||1)>p;u++){for(i=c=t.encrypt(d.concat(e,[u])),a=1;n>a;a++)for(c=t.encrypt(c),h=0;h<c.length;h++)i[h]^=c[h];for(a=0;(o||1)>p&&a<i.length;a++)w.setInt32(p,i[a]),p+=4}return f.slice(0,s/8)},_:class{constructor(t){const e=this,n=e.D=I,s=[[],[]];e.M=[new n,new n];const r=e.M[0].blockSize/32;t.length>r&&(t=(new n).update(t).P());for(let e=0;r>e;e++)s[0][e]=909522486^t[e],s[1][e]=1549556828^t[e];e.M[0].update(s[0]),e.M[1].update(s[1]),e.K=new n(e.M[0])}reset(){const t=this;t.K=new t.D(t.M[0]),t.W=!1}update(t){this.W=!0,this.K.update(t)}digest(){const t=this,e=t.K.P(),n=new t.D(t.M[1]).update(e).P();return t.reset(),n}encrypt(t){if(this.W)throw new r("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}},U=typeof w!=z&&typeof w.getRandomValues==C,V="Invalid password",_="Invalid signature",B="zipjs-abort-check-password";function D(t){return U?w.getRandomValues(t):R.getRandomValues(t)}const M=16,K={name:"PBKDF2"},W=e.assign({hash:{name:"HMAC"}},K),E=e.assign({iterations:1e3,hash:{name:"SHA-1"}},K),L=["deriveBits"],O=[8,12,16],T=[16,24,32],j=10,H=[0,0,0,0],Z=typeof w!=z,F=Z&&w.subtle,N=Z&&typeof F!=z,q=x.bytes,G=class{constructor(t){const e=this;e.L=[[[],[],[],[],[]],[[],[],[],[],[]]],e.L[0][0][0]||e.O();const n=e.L[0][4],s=e.L[1],o=t.length;let i,c,a,h=1;if(4!==o&&6!==o&&8!==o)throw new r("invalid aes key size");for(e.v=[c=t.slice(0),a=[]],i=o;4*o+28>i;i++){let t=c[i-1];(i%o===0||8===o&&i%o===4)&&(t=n[t>>>24]<<24^n[t>>16&255]<<16^n[t>>8&255]<<8^n[255&t],i%o===0&&(t=t<<8^t>>>24^h<<24,h=h<<1^283*(h>>7))),c[i]=c[i-o]^t}for(let t=0;i;t++,i--){const e=c[3&t?i:i-4];a[t]=4>=i||4>t?e:s[0][n[e>>>24]]^s[1][n[e>>16&255]]^s[2][n[e>>8&255]]^s[3][n[255&e]]}}encrypt(t){return this.T(t,0)}decrypt(t){return this.T(t,1)}O(){const t=this.L[0],e=this.L[1],n=t[4],s=e[4],r=[],o=[];let i,c,a,h;for(let t=0;256>t;t++)o[(r[t]=t<<1^283*(t>>7))^t]=t;for(let l=i=0;!n[l];l^=c||1,i=o[i]||1){let o=i^i<<1^i<<2^i<<3^i<<4;o=o>>8^255&o^99,n[l]=o,s[o]=l,h=r[a=r[c=r[l]]];let u=16843009*h^65537*a^257*c^16843008*l,f=257*r[o]^16843008*o;for(let n=0;4>n;n++)t[n][l]=f=f<<24^f>>>8,e[n][o]=u=u<<24^u>>>8}for(let n=0;5>n;n++)t[n]=t[n].slice(0),e[n]=e[n].slice(0)}T(t,e){if(4!==t.length)throw new r("invalid aes block size");const n=this.v[e],s=n.length/4-2,o=[0,0,0,0],i=this.L[e],c=i[0],a=i[1],h=i[2],l=i[3],u=i[4];let f,w,p,d=t[0]^n[0],y=t[e?3:1]^n[1],m=t[2]^n[2],g=t[e?1:3]^n[3],b=4;for(let t=0;s>t;t++)f=c[d>>>24]^a[y>>16&255]^h[m>>8&255]^l[255&g]^n[b],w=c[y>>>24]^a[m>>16&255]^h[g>>8&255]^l[255&d]^n[b+1],p=c[m>>>24]^a[g>>16&255]^h[d>>8&255]^l[255&y]^n[b+2],g=c[g>>>24]^a[d>>16&255]^h[y>>8&255]^l[255&m]^n[b+3],b+=4,d=f,y=w,m=p;for(let t=0;4>t;t++)o[e?3&-t:t]=u[d>>>24]<<24^u[y>>16&255]<<16^u[m>>8&255]<<8^u[255&g]^n[b++],f=d,d=y,y=m,m=g,g=f;return o}},J=class{constructor(t,e){this.j=t,this.H=e,this.Z=e}reset(){this.Z=this.H}update(t){return this.F(this.j,t,this.Z)}N(t){if(255&~(t>>24))t+=1<<24;else{let e=t>>16&255,n=t>>8&255,s=255&t;255===e?(e=0,255===n?(n=0,255===s?s=0:++s):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=s}return t}q(t){0===(t[0]=this.N(t[0]))&&(t[1]=this.N(t[1]))}F(t,e,n){let s;if(!(s=e.length))return[];const r=A.h(e);for(let r=0;s>r;r+=4){this.q(n);const s=t.encrypt(n);e[r]^=s[0],e[r+1]^=s[1],e[r+2]^=s[2],e[r+3]^=s[3]}return A.l(e,r)}},Q=P._;let X=Z&&N&&typeof F.importKey==C,Y=Z&&N&&typeof F.deriveBits==C;class $ extends d{constructor({password:t,rawPassword:n,signed:s,encryptionStrength:i,checkPasswordOnly:c}){super({start(){e.assign(this,{ready:new u(t=>this.G=t),password:st(t,n),signed:s,J:i-1,pending:new o})},async transform(t,e){const n=this,{password:s,J:i,G:a,ready:h}=n;s?(await(async(t,e,n,s)=>{const o=await nt(t,e,n,ot(s,0,O[e])),i=ot(s,O[e]);if(o[0]!=i[0]||o[1]!=i[1])throw new r(V)})(n,i,s,ot(t,0,O[i]+2)),t=ot(t,O[i]+2),c?e.error(new r(B)):a()):await h;const l=new o(t.length-j-(t.length-j)%M);e.enqueue(et(n,t,l,0,j,!0))},async flush(t){const{signed:e,X:n,Y:s,pending:i,ready:c}=this;if(s&&n){await c;const a=ot(i,0,i.length-j),h=ot(i,i.length-j);let l=new o;if(a.length){const t=ct(q,a);s.update(t);const e=n.update(t);l=it(q,e)}if(e){const t=ot(it(q,s.digest()),0,j);for(let e=0;j>e;e++)if(t[e]!=h[e])throw new r(_)}t.enqueue(l)}}})}}class tt extends d{constructor({password:t,rawPassword:n,encryptionStrength:s}){let r;super({start(){e.assign(this,{ready:new u(t=>this.G=t),password:st(t,n),J:s-1,pending:new o})},async transform(t,e){const n=this,{password:s,J:r,G:i,ready:c}=n;let a=new o;s?(a=await(async(t,e,n)=>{const s=D(new o(O[e]));return rt(s,await nt(t,e,n,s))})(n,r,s),i()):await c;const h=new o(a.length+t.length-t.length%M);h.set(a,0),e.enqueue(et(n,t,h,a.length,0))},async flush(t){const{X:e,Y:n,pending:s,ready:i}=this;if(n&&e){await i;let c=new o;if(s.length){const t=e.update(ct(q,s));n.update(t),c=it(q,t)}r.signature=it(q,n.digest()).slice(0,j),t.enqueue(rt(c,r.signature))}}}),r=this}}function et(t,e,n,s,r,i){const{X:c,Y:a,pending:h}=t,l=e.length-r;let u;for(h.length&&(e=rt(h,e),n=((t,e)=>{if(e&&e>t.length){const n=t;(t=new o(e)).set(n,0)}return t})(n,l-l%M)),u=0;l-M>=u;u+=M){const t=ct(q,ot(e,u,u+M));i&&a.update(t);const r=c.update(t);i||a.update(r),n.set(it(q,r),u+s)}return t.pending=ot(e,u),n}async function nt(n,s,r,i){n.password=null;const c=await(async(t,e,n,s,r)=>{if(!X)return P.importKey(e);try{return await F.importKey("raw",e,n,!1,r)}catch(t){return X=!1,P.importKey(e)}})(0,r,W,0,L),a=await(async(t,e,n)=>{if(!Y)return P.B(e,t.salt,E.iterations,n);try{return await F.deriveBits(t,e,n)}catch(s){return Y=!1,P.B(e,t.salt,E.iterations,n)}})(e.assign({salt:i},E),c,8*(2*T[s]+2)),h=new o(a),l=ct(q,ot(h,0,T[s])),u=ct(q,ot(h,T[s],2*T[s])),f=ot(h,2*T[s]);return e.assign(n,{keys:{key:l,$:u,passwordVerification:f},X:new J(new G(l),t.from(H)),Y:new Q(u)}),f}function st(t,e){return void 0===e?(t=>{if(typeof f==z){const e=new o((t=unescape(encodeURIComponent(t))).length);for(let n=0;n<e.length;n++)e[n]=t.charCodeAt(n);return e}return(new f).encode(t)})(t):e}function rt(t,e){let n=t;return t.length+e.length&&(n=new o(t.length+e.length),n.set(t,0),n.set(e,t.length)),n}function ot(t,e,n){return t.subarray(e,n)}function it(t,e){return t.p(e)}function ct(t,e){return t.m(e)}class at extends d{constructor({password:t,passwordVerification:n,checkPasswordOnly:s}){super({start(){e.assign(this,{password:t,passwordVerification:n}),ft(this,t)},transform(t,e){const n=this;if(n.password){const e=lt(n,t.subarray(0,12));if(n.password=null,e.at(-1)!=n.passwordVerification)throw new r(V);t=t.subarray(12)}s?e.error(new r(B)):e.enqueue(lt(n,t))}})}}class ht extends d{constructor({password:t,passwordVerification:n}){super({start(){e.assign(this,{password:t,passwordVerification:n}),ft(this,t)},transform(t,e){const n=this;let s,r;if(n.password){n.password=null;const e=D(new o(12));e[11]=n.passwordVerification,s=new o(t.length+e.length),s.set(ut(n,e),0),r=12}else s=new o(t.length),r=0;s.set(ut(n,t),r),e.enqueue(s)}})}}function lt(t,e){const n=new o(e.length);for(let s=0;s<e.length;s++)n[s]=pt(t)^e[s],wt(t,n[s]);return n}function ut(t,e){const n=new o(e.length);for(let s=0;s<e.length;s++)n[s]=pt(t)^e[s],wt(t,e[s]);return n}function ft(t,n){const s=[305419896,591751049,878082192];e.assign(t,{keys:s,tt:new v(s[0]),et:new v(s[2])});for(let e=0;e<n.length;e++)wt(t,n.charCodeAt(e))}function wt(t,e){let[n,r,o]=t.keys;t.tt.append([e]),n=~t.tt.get(),r=yt(s.imul(yt(r+dt(n)),134775813)+1),t.et.append([r>>>24]),o=~t.et.get(),t.keys=[n,r,o]}function pt(t){const e=2|t.keys[2];return dt(s.imul(e,1^e)>>>8)}function dt(t){return 255&t}function yt(t){return 4294967295&t}class mt extends d{constructor(t,{chunkSize:e,nt:n,CompressionStream:s}){super({});const{compressed:r,encrypted:o,useCompressionStream:i,zipCrypto:c,signed:a,level:h}=t,u=this;let f,w,p=super.readable;o&&!c||!a||(f=new k,p=vt(p,f)),r&&(p=St(p,i,{level:h,chunkSize:e},s,n,s)),o&&(c?p=vt(p,new ht(t)):(w=new tt(t),p=vt(p,w))),bt(u,p,()=>{let t;o&&!c&&(t=w.signature),o&&!c||!a||(t=new l(f.value.buffer).getUint32(0)),u.signature=t})}}class gt extends d{constructor(t,{chunkSize:e,st:n,DecompressionStream:s}){super({});const{zipCrypto:o,encrypted:i,signed:c,signature:a,compressed:h,useCompressionStream:u,rt:f}=t;let w,p,d=super.readable;i&&(o?d=vt(d,new at(t)):(p=new $(t),d=vt(d,p))),h&&(d=St(d,u,{chunkSize:e,rt:f},s,n,s)),i&&!o||!c||(w=new k,d=vt(d,w)),bt(this,d,()=>{if((!i||o)&&c){const t=new l(w.value.buffer);if(a!=t.getUint32(0,!1))throw new r(_)}})}}function bt(t,n,s){n=vt(n,new d({flush:s})),e.defineProperty(t,"readable",{get:()=>n})}function St(t,e,n,s,r,o){const i=e&&s?s:r||o,c=n.rt?"deflate64-raw":"deflate-raw";try{t=vt(t,new i(c,n))}catch(s){if(!e)throw s;if(r)t=vt(t,new r(c,n));else{if(!o)throw s;t=vt(t,new o(c,n))}}return t}function vt(t,e){return t.pipeThrough(e)}const kt="data",zt="close";class Ct extends d{constructor(t,n){super({});const s=this,{codecType:o}=t;let i;o.startsWith("deflate")?i=mt:o.startsWith("inflate")&&(i=gt),s.outputSize=0;let c=0;const a=new i(t,n),h=super.readable,l=new d({transform(t,e){t&&t.length&&(c+=t.length,e.enqueue(t))},flush(){e.assign(s,{inputSize:c})}}),u=new d({transform(e,n){if(e&&e.length&&(n.enqueue(e),s.outputSize+=e.length,t.outputSize&&s.outputSize>t.outputSize))throw new r("Invalid uncompressed size")},flush(){const{signature:t}=a;e.assign(s,{signature:t,inputSize:c})}});e.defineProperty(s,"readable",{get:()=>h.pipeThrough(l).pipeThrough(a).pipeThrough(u)})}}class At extends d{constructor(t){let e;super({transform:function n(s,r){if(e){const t=new o(e.length+s.length);t.set(e),t.set(s,e.length),s=t,e=null}s.length>t?(r.enqueue(s.slice(0,t)),n(s.slice(t),r)):e=s},flush(t){e&&e.length&&t.enqueue(e)}})}}let xt,It,Rt,Pt;function Ut(t,e,n={}){const i="number"==typeof n.level?n.level:-1,c="number"==typeof n.ot?n.ot:65536,a="number"==typeof n.it?n.it:65536;return new d({start(){let n;if(this.ct=It(c),this.in=It(a),this.it=a,this.ht=new o(c),t?(this.lt=xt.deflate_process,this.ut=xt.deflate_last_consumed,this.ft=xt.deflate_end,this.wt=xt.deflate_new(),n="gzip"===e?xt.deflate_init_gzip(this.wt,i):"deflate-raw"===e?xt.deflate_init_raw(this.wt,i):xt.deflate_init(this.wt,i)):"deflate64-raw"===e?(this.lt=xt.inflate9_process,this.ut=xt.inflate9_last_consumed,this.ft=xt.inflate9_end,this.wt=xt.inflate9_new(),n=xt.inflate9_init_raw(this.wt)):(this.lt=xt.inflate_process,this.ut=xt.inflate_last_consumed,this.ft=xt.inflate_end,this.wt=xt.inflate_new(),n="deflate-raw"===e?xt.inflate_init_raw(this.wt):"gzip"===e?xt.inflate_init_gzip(this.wt):xt.inflate_init(this.wt)),0!==n)throw new r("init failed:"+n)},transform(e,n){try{const i=e,a=new o(Pt.buffer),h=this.lt,l=this.ut,u=this.ct,f=this.ht;let w=0;for(;w<i.length;){const e=s.min(i.length-w,32768);this.in&&this.it>=e||(this.in&&Rt&&Rt(this.in),this.in=It(e),this.it=e),a.set(i.subarray(w,w+e),this.in);const o=h(this.wt,this.in,e,u,c,0);if(!t&&0>o)throw new r("process error:"+o);const p=16777215&o;p&&(f.set(a.subarray(u,u+p),0),n.enqueue(f.slice(0,p)));const d=l(this.wt);if(0===d)break;w+=d}}catch(t){this.ft&&this.wt&&this.ft(this.wt),this.in&&Rt&&Rt(this.in),this.ct&&Rt&&Rt(this.ct),n.error(t)}},flush(e){try{const n=new o(Pt.buffer),s=this.lt,i=this.ct,a=this.ht;for(;;){const o=s(this.wt,0,0,i,c,4);if(!t&&0>o)throw new r("process error:"+o);const h=16777215&o,l=o>>24&255;if(h&&(a.set(n.subarray(i,i+h),0),e.enqueue(a.slice(0,h))),1===l||0===h)break}}catch(t){e.error(t)}finally{if(this.ft&&this.wt){const t=this.ft(this.wt);0!==t&&e.error(new r("end error:"+t))}this.in&&Rt&&Rt(this.in),this.ct&&Rt&&Rt(this.ct)}}})}class Vt{constructor(t="deflate",e){return Ut(!0,t,e)}}class _t{constructor(t="deflate",e){return Ut(!1,t,e)}}let Bt=!1;const Dt=new h,Mt=new h;let Kt,Wt=0;async function Et(t){try{const{options:e,config:s}=t;Bt||e.useCompressionStream||await(async(t,{baseURI:e})=>{if(!Bt){let s,r;try{try{r=new URL(t,e)}catch(t){}const n=await fetch(r);s=await n.arrayBuffer()}catch(e){if(!t.startsWith("data:application/wasm;base64,"))throw e;s=(t=>{const e=t.split(",")[1],n=atob(e),s=n.length,r=new o(s);for(let t=0;s>t;++t)r[t]=n.charCodeAt(t);return r.buffer})(t)}n=(await WebAssembly.instantiate(s)).instance.exports,xt=n,({malloc:It,free:Rt,memory:Pt}=xt),Bt=!0}var n})(t.config.wasmURI,t.config),s.CompressionStream=self.CompressionStream,s.DecompressionStream=self.DecompressionStream,s.nt=Vt,s.st=_t;const r={highWaterMark:1},i=t.readable||new y({async pull(t){const e=new u(t=>Dt.set(Wt,t));Lt({type:"pull",messageId:Wt}),Wt=(Wt+1)%n.MAX_SAFE_INTEGER;const{value:s,done:r}=await e;t.enqueue(s),r&&t.close()}},r),c=t.writable||new m({async write(t){let e;const s=new u(t=>e=t);Mt.set(Wt,e),Lt({type:kt,value:t,messageId:Wt}),Wt=(Wt+1)%n.MAX_SAFE_INTEGER,await s}},r),a=new Ct(e,s);Kt=new AbortController;const{signal:h}=Kt;await i.pipeThrough(a).pipeThrough(new At(s.chunkSize)).pipeTo(c,{signal:h,preventClose:!0,preventAbort:!0}),await c.getWriter().close();const{signature:l,inputSize:f,outputSize:w}=a;Lt({type:zt,result:{signature:l,inputSize:f,outputSize:w}})}catch(t){t.outputSize=0,Ot(t)}}function Lt(t){let{value:e}=t;if(e)if(e.length)try{e=new o(e),t.value=e.buffer,p(t,[t.value])}catch(e){p(t)}else p(t);else p(t)}function Ot(t=new r("Unknown error")){const{message:e,stack:n,code:s,name:o,outputSize:i}=t;p({error:{message:e,stack:n,code:s,name:o,outputSize:i}})}addEventListener("message",({data:t})=>{const{type:e,messageId:n,value:s,done:r}=t;try{if("start"==e&&Et(t),e==kt){const t=Dt.get(n);Dt.delete(n),t({value:new o(s),done:r})}if("ack"==e){const t=Mt.get(n);Mt.delete(n),t()}e==zt&&Kt.abort()}catch(t){Ot(t)}})});\n')});}
197
+ function t(t){t({workerURI:()=>"data:text/javascript,"+encodeURIComponent('(t=>{"function"==typeof define&&define.amd?define(t):t()})(function(){"use strict";const{Array:t,Object:e,Number:n,Math:s,Error:r,Uint8Array:o,Uint16Array:i,Uint32Array:c,Int32Array:a,Map:h,DataView:l,Promise:u,TextEncoder:f,crypto:w,postMessage:p,TransformStream:d,ReadableStream:y,WritableStream:m,CompressionStream:g,DecompressionStream:b}=self,S=void 0,v="undefined",k="function",z=[];for(let t=0;256>t;t++){let e=t;for(let t=0;8>t;t++)1&e?e=e>>>1^3988292384:e>>>=1;z[t]=e}class C{constructor(t){this.t=t||-1}append(t){let e=0|this.t;for(let n=0,s=0|t.length;s>n;n++)e=e>>>8^z[255&(e^t[n])];this.t=e}get(){return~this.t}}class A extends d{constructor(){let t;const e=new C;super({transform(t,n){e.append(t),n.enqueue(t)},flush(){const n=new o(4);new l(n.buffer).setUint32(0,e.get()),t.value=n}}),t=this}}const x={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const n=t[t.length-1],s=x.o(n);return 32===s?t.concat(e):x.i(e,s,0|n,t.slice(0,t.length-1))},h(t){const e=t.length;if(0===e)return 0;const n=t[e-1];return 32*(e-1)+x.o(n)},l(t,e){if(32*t.length<e)return t;const n=(t=t.slice(0,s.ceil(e/32))).length;return e&=31,n>0&&e&&(t[n-1]=x.u(e,t[n-1]&2147483648>>e-1,1)),t},u:(t,e,n)=>32===t?e:(n?0|e:e<<32-t)+1099511627776*t,o:t=>s.round(t/1099511627776)||32,i(t,e,n,s){for(void 0===s&&(s=[]);e>=32;e-=32)s.push(n),n=0;if(0===e)return s.concat(t);for(let r=0;r<t.length;r++)s.push(n|t[r]>>>e),n=t[r]<<32-e;const r=t.length?t[t.length-1]:0,o=x.o(r);return s.push(x.u(e+o&31,e+o>32?n:s.pop(),1)),s}},I={bytes:{p(t){const e=x.h(t)/8,n=new o(e);let s;for(let r=0;e>r;r++)3&r||(s=t[r/4]),n[r]=s>>>24,s<<=8;return n},m(t){const e=[];let n,s=0;for(n=0;n<t.length;n++)s=s<<8|t[n],3&~n||(e.push(s),s=0);return 3&n&&e.push(x.u(8*(3&n),s)),e}}},R=class{constructor(t){const e=this;e.blockSize=512,e.S=[1732584193,4023233417,2562383102,271733878,3285377520],e.v=[1518500249,1859775393,2400959708,3395469782],t?(e.k=t.k.slice(0),e.C=t.C.slice(0),e.A=t.A):e.reset()}reset(){const t=this;return t.k=t.S.slice(0),t.C=[],t.A=0,t}update(t){const e=this;"string"==typeof t&&(t=I.I.m(t));const n=e.C=x.concat(e.C,t),s=e.A,o=e.A=s+x.h(t);if(o>9007199254740991)throw new r("Cannot hash more than 2^53 - 1 bits");const i=new c(n);let a=0;for(let t=e.blockSize+s-(e.blockSize+s&e.blockSize-1);o>=t;t+=e.blockSize)e.R(i.subarray(16*a,16*(a+1))),a+=1;return n.splice(0,16*a),e}P(){const t=this;let e=t.C;const n=t.k;e=x.concat(e,[x.u(1,1)]);for(let t=e.length+2;15&t;t++)e.push(0);for(e.push(s.floor(t.A/4294967296)),e.push(0|t.A);e.length;)t.R(e.splice(0,16));return t.reset(),n}U(t,e,n,s){return t>19?t>39?t>59?t>79?void 0:e^n^s:e&n|e&s|n&s:e^n^s:e&n|~e&s}V(t,e){return e<<t|e>>>32-t}R(e){const n=this,r=n.k,o=t(80);for(let t=0;16>t;t++)o[t]=e[t];let i=r[0],c=r[1],a=r[2],h=r[3],l=r[4];for(let t=0;79>=t;t++){16>t||(o[t]=n.V(1,o[t-3]^o[t-8]^o[t-14]^o[t-16]));const e=n.V(5,i)+n.U(t,c,a,h)+l+o[t]+n.v[s.floor(t/20)]|0;l=h,h=a,a=n.V(30,c),c=i,i=e}r[0]=r[0]+i|0,r[1]=r[1]+c|0,r[2]=r[2]+a|0,r[3]=r[3]+h|0,r[4]=r[4]+l|0}},P={getRandomValues(t){const e=new c(t.buffer),n=t=>{let e=987654321;const n=4294967295;return()=>(e=36969*(65535&e)+(e>>16)&n,(((e<<16)+(t=18e3*(65535&t)+(t>>16)&n)&n)/4294967296+.5)*(s.random()>.5?1:-1))};for(let r,o=0;o<t.length;o+=4){const t=n(4294967296*(r||s.random()));r=987654071*t(),e[o/4]=4294967296*t()|0}return t}},U={importKey:t=>new U._(I.bytes.m(t)),B(t,e,n,s){if(n=n||1e4,0>s||0>n)throw new r("invalid params to pbkdf2");const o=1+(s>>5)<<2;let i,c,a,h,u;const f=new ArrayBuffer(o),w=new l(f);let p=0;const d=x;for(e=I.bytes.m(e),u=1;(o||1)>p;u++){for(i=c=t.encrypt(d.concat(e,[u])),a=1;n>a;a++)for(c=t.encrypt(c),h=0;h<c.length;h++)i[h]^=c[h];for(a=0;(o||1)>p&&a<i.length;a++)w.setInt32(p,i[a]),p+=4}return f.slice(0,s/8)},_:class{constructor(t){const e=this,n=e.D=R,s=[[],[]];e.M=[new n,new n];const r=e.M[0].blockSize/32;t.length>r&&(t=(new n).update(t).P());for(let e=0;r>e;e++)s[0][e]=909522486^t[e],s[1][e]=1549556828^t[e];e.M[0].update(s[0]),e.M[1].update(s[1]),e.K=new n(e.M[0])}reset(){const t=this;t.K=new t.D(t.M[0]),t.W=!1}update(t){this.W=!0,this.K.update(t)}digest(){const t=this,e=t.K.P(),n=new t.D(t.M[1]).update(e).P();return t.reset(),n}encrypt(t){if(this.W)throw new r("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}},V=typeof w!=v&&typeof w.getRandomValues==k,_="Invalid password",B="Invalid signature",D="zipjs-abort-check-password";function M(t){return V?w.getRandomValues(t):P.getRandomValues(t)}const K=16,W={name:"PBKDF2"},E=e.assign({hash:{name:"HMAC"}},W),L=e.assign({iterations:1e3,hash:{name:"SHA-1"}},W),O=["deriveBits"],T=[8,12,16],j=[16,24,32],H=10,Z=[0,0,0,0],F=typeof w!=v,N=F&&w.subtle,q=F&&typeof N!=v,G=I.bytes,J=class{constructor(t){const e=this;e.L=[[[],[],[],[],[]],[[],[],[],[],[]]],e.L[0][0][0]||e.O();const n=e.L[0][4],s=e.L[1],o=t.length;let i,c,a,h=1;if(4!==o&&6!==o&&8!==o)throw new r("invalid aes key size");for(e.v=[c=t.slice(0),a=[]],i=o;4*o+28>i;i++){let t=c[i-1];(i%o===0||8===o&&i%o===4)&&(t=n[t>>>24]<<24^n[t>>16&255]<<16^n[t>>8&255]<<8^n[255&t],i%o===0&&(t=t<<8^t>>>24^h<<24,h=h<<1^283*(h>>7))),c[i]=c[i-o]^t}for(let t=0;i;t++,i--){const e=c[3&t?i:i-4];a[t]=4>=i||4>t?e:s[0][n[e>>>24]]^s[1][n[e>>16&255]]^s[2][n[e>>8&255]]^s[3][n[255&e]]}}encrypt(t){return this.T(t,0)}decrypt(t){return this.T(t,1)}O(){const t=this.L[0],e=this.L[1],n=t[4],s=e[4],r=[],o=[];let i,c,a,h;for(let t=0;256>t;t++)o[(r[t]=t<<1^283*(t>>7))^t]=t;for(let l=i=0;!n[l];l^=c||1,i=o[i]||1){let o=i^i<<1^i<<2^i<<3^i<<4;o=o>>8^255&o^99,n[l]=o,s[o]=l,h=r[a=r[c=r[l]]];let u=16843009*h^65537*a^257*c^16843008*l,f=257*r[o]^16843008*o;for(let n=0;4>n;n++)t[n][l]=f=f<<24^f>>>8,e[n][o]=u=u<<24^u>>>8}for(let n=0;5>n;n++)t[n]=t[n].slice(0),e[n]=e[n].slice(0)}T(t,e){if(4!==t.length)throw new r("invalid aes block size");const n=this.v[e],s=n.length/4-2,o=[0,0,0,0],i=this.L[e],c=i[0],a=i[1],h=i[2],l=i[3],u=i[4];let f,w,p,d=t[0]^n[0],y=t[e?3:1]^n[1],m=t[2]^n[2],g=t[e?1:3]^n[3],b=4;for(let t=0;s>t;t++)f=c[d>>>24]^a[y>>16&255]^h[m>>8&255]^l[255&g]^n[b],w=c[y>>>24]^a[m>>16&255]^h[g>>8&255]^l[255&d]^n[b+1],p=c[m>>>24]^a[g>>16&255]^h[d>>8&255]^l[255&y]^n[b+2],g=c[g>>>24]^a[d>>16&255]^h[y>>8&255]^l[255&m]^n[b+3],b+=4,d=f,y=w,m=p;for(let t=0;4>t;t++)o[e?3&-t:t]=u[d>>>24]<<24^u[y>>16&255]<<16^u[m>>8&255]<<8^u[255&g]^n[b++],f=d,d=y,y=m,m=g,g=f;return o}},Q=class{constructor(t,e){this.j=t,this.H=e,this.Z=e}reset(){this.Z=this.H}update(t){return this.F(this.j,t,this.Z)}N(t){if(255&~(t>>24))t+=1<<24;else{let e=t>>16&255,n=t>>8&255,s=255&t;255===e?(e=0,255===n?(n=0,255===s?s=0:++s):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=s}return t}q(t){0===(t[0]=this.N(t[0]))&&(t[1]=this.N(t[1]))}F(t,e,n){let s;if(!(s=e.length))return[];const r=x.h(e);for(let r=0;s>r;r+=4){this.q(n);const s=t.encrypt(n);e[r]^=s[0],e[r+1]^=s[1],e[r+2]^=s[2],e[r+3]^=s[3]}return x.l(e,r)}},X=U._;let Y=F&&q&&typeof N.importKey==k,$=F&&q&&typeof N.deriveBits==k;class tt extends d{constructor({password:t,rawPassword:n,signed:s,encryptionStrength:i,checkPasswordOnly:c}){super({start(){e.assign(this,{ready:new u(t=>this.G=t),password:rt(t,n),signed:s,J:i-1,pending:new o})},async transform(t,e){const n=this,{password:s,J:i,G:a,ready:h}=n;s?(await(async(t,e,n,s)=>{const o=await st(t,e,n,it(s,0,T[e])),i=it(s,T[e]);if(o[0]!=i[0]||o[1]!=i[1])throw new r(_)})(n,i,s,it(t,0,T[i]+2)),t=it(t,T[i]+2),c?e.error(new r(D)):a()):await h;const l=new o(t.length-H-(t.length-H)%K);e.enqueue(nt(n,t,l,0,H,!0))},async flush(t){const{signed:e,X:n,Y:s,pending:i,ready:c}=this;if(s&&n){await c;const a=it(i,0,i.length-H),h=it(i,i.length-H);let l=new o;if(a.length){const t=at(G,a);s.update(t);const e=n.update(t);l=ct(G,e)}if(e){const t=it(ct(G,s.digest()),0,H);for(let e=0;H>e;e++)if(t[e]!=h[e])throw new r(B)}t.enqueue(l)}}})}}class et extends d{constructor({password:t,rawPassword:n,encryptionStrength:s}){let r;super({start(){e.assign(this,{ready:new u(t=>this.G=t),password:rt(t,n),J:s-1,pending:new o})},async transform(t,e){const n=this,{password:s,J:r,G:i,ready:c}=n;let a=new o;s?(a=await(async(t,e,n)=>{const s=M(new o(T[e]));return ot(s,await st(t,e,n,s))})(n,r,s),i()):await c;const h=new o(a.length+t.length-t.length%K);h.set(a,0),e.enqueue(nt(n,t,h,a.length,0))},async flush(t){const{X:e,Y:n,pending:s,ready:i}=this;if(n&&e){await i;let c=new o;if(s.length){const t=e.update(at(G,s));n.update(t),c=ct(G,t)}r.signature=ct(G,n.digest()).slice(0,H),t.enqueue(ot(c,r.signature))}}}),r=this}}function nt(t,e,n,s,r,i){const{X:c,Y:a,pending:h}=t,l=e.length-r;let u;for(h.length&&(e=ot(h,e),n=((t,e)=>{if(e&&e>t.length){const n=t;(t=new o(e)).set(n,0)}return t})(n,l-l%K)),u=0;l-K>=u;u+=K){const t=at(G,it(e,u,u+K));i&&a.update(t);const r=c.update(t);i||a.update(r),n.set(ct(G,r),u+s)}return t.pending=it(e,u),n}async function st(n,s,r,i){n.password=null;const c=await(async(t,e,n,s,r)=>{if(!Y)return U.importKey(e);try{return await N.importKey("raw",e,n,!1,r)}catch(t){return Y=!1,U.importKey(e)}})(0,r,E,0,O),a=await(async(t,e,n)=>{if(!$)return U.B(e,t.salt,L.iterations,n);try{return await N.deriveBits(t,e,n)}catch(s){return $=!1,U.B(e,t.salt,L.iterations,n)}})(e.assign({salt:i},L),c,8*(2*j[s]+2)),h=new o(a),l=at(G,it(h,0,j[s])),u=at(G,it(h,j[s],2*j[s])),f=it(h,2*j[s]);return e.assign(n,{keys:{key:l,$:u,passwordVerification:f},X:new Q(new J(l),t.from(Z)),Y:new X(u)}),f}function rt(t,e){return e===S?(t=>{if(typeof f==v){const e=new o((t=unescape(encodeURIComponent(t))).length);for(let n=0;n<e.length;n++)e[n]=t.charCodeAt(n);return e}return(new f).encode(t)})(t):e}function ot(t,e){let n=t;return t.length+e.length&&(n=new o(t.length+e.length),n.set(t,0),n.set(e,t.length)),n}function it(t,e,n){return t.subarray(e,n)}function ct(t,e){return t.p(e)}function at(t,e){return t.m(e)}class ht extends d{constructor({password:t,passwordVerification:n,checkPasswordOnly:s}){super({start(){e.assign(this,{password:t,passwordVerification:n}),wt(this,t)},transform(t,e){const n=this;if(n.password){const e=ut(n,t.subarray(0,12));if(n.password=null,e.at(-1)!=n.passwordVerification)throw new r(_);t=t.subarray(12)}s?e.error(new r(D)):e.enqueue(ut(n,t))}})}}class lt extends d{constructor({password:t,passwordVerification:n}){super({start(){e.assign(this,{password:t,passwordVerification:n}),wt(this,t)},transform(t,e){const n=this;let s,r;if(n.password){n.password=null;const e=M(new o(12));e[11]=n.passwordVerification,s=new o(t.length+e.length),s.set(ft(n,e),0),r=12}else s=new o(t.length),r=0;s.set(ft(n,t),r),e.enqueue(s)}})}}function ut(t,e){const n=new o(e.length);for(let s=0;s<e.length;s++)n[s]=dt(t)^e[s],pt(t,n[s]);return n}function ft(t,e){const n=new o(e.length);for(let s=0;s<e.length;s++)n[s]=dt(t)^e[s],pt(t,e[s]);return n}function wt(t,n){const s=[305419896,591751049,878082192];e.assign(t,{keys:s,tt:new C(s[0]),et:new C(s[2])});for(let e=0;e<n.length;e++)pt(t,n.charCodeAt(e))}function pt(t,e){let[n,r,o]=t.keys;t.tt.append([e]),n=~t.tt.get(),r=mt(s.imul(mt(r+yt(n)),134775813)+1),t.et.append([r>>>24]),o=~t.et.get(),t.keys=[n,r,o]}function dt(t){const e=2|t.keys[2];return yt(s.imul(e,1^e)>>>8)}function yt(t){return 255&t}function mt(t){return 4294967295&t}class gt extends d{constructor(t,{chunkSize:e,nt:n,CompressionStream:s}){super({});const{compressed:r,encrypted:o,useCompressionStream:i,zipCrypto:c,signed:a,level:h}=t,u=this;let f,w,p=super.readable;o&&!c||!a||(f=new A,p=kt(p,f)),r&&(p=vt(p,i,{level:h,chunkSize:e},s,n,s)),o&&(c?p=kt(p,new lt(t)):(w=new et(t),p=kt(p,w))),St(u,p,()=>{let t;o&&!c&&(t=w.signature),o&&!c||!a||(t=new l(f.value.buffer).getUint32(0)),u.signature=t})}}class bt extends d{constructor(t,{chunkSize:e,st:n,DecompressionStream:s}){super({});const{zipCrypto:o,encrypted:i,signed:c,signature:a,compressed:h,useCompressionStream:u,rt:f}=t;let w,p,d=super.readable;i&&(o?d=kt(d,new ht(t)):(p=new tt(t),d=kt(d,p))),h&&(d=vt(d,u,{chunkSize:e,rt:f},s,n,s)),i&&!o||!c||(w=new A,d=kt(d,w)),St(this,d,()=>{if((!i||o)&&c){const t=new l(w.value.buffer);if(a!=t.getUint32(0,!1))throw new r(B)}})}}function St(t,n,s){n=kt(n,new d({flush:s})),e.defineProperty(t,"readable",{get:()=>n})}function vt(t,e,n,s,r,o){const i=e&&s?s:r||o,c=n.rt?"deflate64-raw":"deflate-raw";try{t=kt(t,new i(c,n))}catch(s){if(!e)throw s;if(r)t=kt(t,new r(c,n));else{if(!o)throw s;t=kt(t,new o(c,n))}}return t}function kt(t,e){return t.pipeThrough(e)}const zt="data",Ct="close";class At extends d{constructor(t,n){super({});const s=this,{codecType:o}=t;let i;o.startsWith("deflate")?i=gt:o.startsWith("inflate")&&(i=bt),s.outputSize=0;let c=0;const a=new i(t,n),h=super.readable,l=new d({transform(t,e){t&&t.length&&(c+=t.length,e.enqueue(t))},flush(){e.assign(s,{inputSize:c})}}),u=new d({transform(e,n){if(e&&e.length&&(n.enqueue(e),s.outputSize+=e.length,t.outputSize!==S&&s.outputSize>t.outputSize))throw new r("Invalid uncompressed size")},flush(){const{signature:t}=a;e.assign(s,{signature:t,inputSize:c})}});e.defineProperty(s,"readable",{get:()=>h.pipeThrough(l).pipeThrough(a).pipeThrough(u)})}}class xt extends d{constructor(t){let e;super({transform:function n(s,r){if(e){const t=new o(e.length+s.length);t.set(e),t.set(s,e.length),s=t,e=null}s.length>t?(r.enqueue(s.slice(0,t)),n(s.slice(t),r)):e=s},flush(t){e&&e.length&&t.enqueue(e)}})}}let It,Rt,Pt,Ut;function Vt(t,e,n={}){const i="number"==typeof n.level?n.level:-1,c="number"==typeof n.ot?n.ot:65536,a="number"==typeof n.it?n.it:65536;return new d({start(){let n;if(this.ct=Rt(c),this.in=Rt(a),this.it=a,this.ht=new o(c),t?(this.lt=It.deflate_process,this.ut=It.deflate_last_consumed,this.ft=It.deflate_end,this.wt=It.deflate_new(),n="gzip"===e?It.deflate_init_gzip(this.wt,i):"deflate-raw"===e?It.deflate_init_raw(this.wt,i):It.deflate_init(this.wt,i)):"deflate64-raw"===e?(this.lt=It.inflate9_process,this.ut=It.inflate9_last_consumed,this.ft=It.inflate9_end,this.wt=It.inflate9_new(),n=It.inflate9_init_raw(this.wt)):(this.lt=It.inflate_process,this.ut=It.inflate_last_consumed,this.ft=It.inflate_end,this.wt=It.inflate_new(),n="deflate-raw"===e?It.inflate_init_raw(this.wt):"gzip"===e?It.inflate_init_gzip(this.wt):It.inflate_init(this.wt)),0!==n)throw new r("init failed:"+n)},transform(e,n){try{const i=e,a=new o(Ut.buffer),h=this.lt,l=this.ut,u=this.ct,f=this.ht;let w=0;for(;w<i.length;){const e=s.min(i.length-w,32768);this.in&&this.it>=e||(this.in&&Pt&&Pt(this.in),this.in=Rt(e),this.it=e),a.set(i.subarray(w,w+e),this.in);const o=h(this.wt,this.in,e,u,c,0);if(!t&&0>o)throw new r("process error:"+o);const p=16777215&o;p&&(f.set(a.subarray(u,u+p),0),n.enqueue(f.slice(0,p)));const d=l(this.wt);if(0===d)break;w+=d}}catch(t){this.ft&&this.wt&&this.ft(this.wt),this.in&&Pt&&Pt(this.in),this.ct&&Pt&&Pt(this.ct),n.error(t)}},flush(e){try{const n=new o(Ut.buffer),s=this.lt,i=this.ct,a=this.ht;for(;;){const o=s(this.wt,0,0,i,c,4);if(!t&&0>o)throw new r("process error:"+o);const h=16777215&o,l=o>>24&255;if(h&&(a.set(n.subarray(i,i+h),0),e.enqueue(a.slice(0,h))),1===l||0===h)break}}catch(t){e.error(t)}finally{if(this.ft&&this.wt){const t=this.ft(this.wt);0!==t&&e.error(new r("end error:"+t))}this.in&&Pt&&Pt(this.in),this.ct&&Pt&&Pt(this.ct)}}})}class _t{constructor(t="deflate",e){return Vt(!0,t,e)}}class Bt{constructor(t="deflate",e){return Vt(!1,t,e)}}let Dt=!1;const Mt=new h,Kt=new h;let Wt,Et=0;async function Lt(t){try{const{options:e,config:s}=t;Dt||e.useCompressionStream||await(async(t,{baseURI:e})=>{if(!Dt){let s,r;try{try{r=new URL(t,e)}catch(t){}const n=await fetch(r);s=await n.arrayBuffer()}catch(e){if(!t.startsWith("data:application/wasm;base64,"))throw e;s=(t=>{const e=t.split(",")[1],n=atob(e),s=n.length,r=new o(s);for(let t=0;s>t;++t)r[t]=n.charCodeAt(t);return r.buffer})(t)}n=(await WebAssembly.instantiate(s)).instance.exports,It=n,({malloc:Rt,free:Pt,memory:Ut}=It),Dt=!0}var n})(t.config.wasmURI,t.config),s.CompressionStream=self.CompressionStream,s.DecompressionStream=self.DecompressionStream,s.nt=_t,s.st=Bt;const r={highWaterMark:1},i=t.readable||new y({async pull(t){const e=new u(t=>Mt.set(Et,t));Ot({type:"pull",messageId:Et}),Et=(Et+1)%n.MAX_SAFE_INTEGER;const{value:s,done:r}=await e;t.enqueue(s),r&&t.close()}},r),c=t.writable||new m({async write(t){let e;const s=new u(t=>e=t);Kt.set(Et,e),Ot({type:zt,value:t,messageId:Et}),Et=(Et+1)%n.MAX_SAFE_INTEGER,await s}},r),a=new At(e,s);Wt=new AbortController;const{signal:h}=Wt;await i.pipeThrough(a).pipeThrough(new xt(s.chunkSize)).pipeTo(c,{signal:h,preventClose:!0,preventAbort:!0}),await c.getWriter().close();const{signature:l,inputSize:f,outputSize:w}=a;Ot({type:Ct,result:{signature:l,inputSize:f,outputSize:w}})}catch(t){t.outputSize=0,Tt(t)}}function Ot(t){let{value:e}=t;if(e)if(e.length)try{e=new o(e),t.value=e.buffer,p(t,[t.value])}catch(e){p(t)}else p(t);else p(t)}function Tt(t=new r("Unknown error")){const{message:e,stack:n,code:s,name:o,outputSize:i}=t;p({error:{message:e,stack:n,code:s,name:o,outputSize:i}})}addEventListener("message",({data:t})=>{const{type:e,messageId:n,value:s,done:r}=t;try{if("start"==e&&Lt(t),e==zt){const t=Mt.get(n);Mt.delete(n),t({value:new o(s),done:r})}if("ack"==e){const t=Kt.get(n);Kt.delete(n),t()}e==Ct&&Wt.abort()}catch(t){Tt(t)}})});\n')});}
198
198
 
199
199
  const A="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function g(g){g({wasmURI:()=>"data:application/wasm;base64,"+(g=>{g=(g=>{const B=(g=(g+"").replace(/[^A-Za-z0-9+/=]/g,"")).length,E=[];for(let I=0;B>I;I+=4){const B=A.indexOf(g[I])<<18|A.indexOf(g[I+1])<<12|(63&A.indexOf(g[I+2]))<<6|63&A.indexOf(g[I+3]);E.push(B>>16&255),"="!==g[I+2]&&E.push(B>>8&255),"="!==g[I+3]&&E.push(255&B);}return new Uint8Array(E)})(g);let B=new Uint8Array(1024),E=0;for(let A=0;A<g.length;){const C=g[A++];if(128&C){const Q=3+(127&C),Y=g[A++]<<8|g[A++],D=E-Y;I(E+Q);for(let A=0;Q>A;A++)B[E++]=B[D+A];}else {const Q=C;I(E+Q);for(let I=0;Q>I&&A<g.length;I++)B[E++]=g[A++];}}return (g=>{let B="";const E=g.length;let I=0;for(;E>I+2;I+=3){const E=g[I]<<16|g[I+1]<<8|g[I+2];B+=A[E>>18&63]+A[E>>12&63]+A[E>>6&63]+A[63&E];}const C=E-I;if(1===C){const E=g[I]<<16;B+=A[E>>18&63]+A[E>>12&63]+"==";}else if(2===C){const E=g[I]<<16|g[I+1]<<8;B+=A[E>>18&63]+A[E>>12&63]+A[E>>6&63]+"=";}return B})(new Uint8Array(B.buffer.slice(0,E)));function I(A){if(B.length<A){let g=2*B.length;for(;A>g;)g*=2;const I=new Uint8Array(g);I.set(B.subarray(0,E)),B=I;}}})("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mYAABAFZgAAEAdmAAAQBOYAABAG5gAAEAXmAAAQB+YAABAEFgAAEAYWAAAQBRYAABAHFgAAEASWAAAQBpYAABAFlgAAEAeWAAAQBFYAABAGVgAAEAVWAAAQB1YAABAE1gAAEAbWAAAQBdYAABAH1gAAEAQ2AAAQBjYAABAFNgAAEAc2AAASAETMCAK2AAAQBbYAABAHtgAAEAR2AAAQBnYAABAFdgAAEAd2AAAQBPYAABAG9gAAEAX2AAAQB/YAABAETgADCBRMBCQCTgAAIAZOAAAgBU4AACAFTgAAIAdOAAAgB04AACAEzgAAIATOAAAgBs4AACAGzgAAIAXOAAAgBc4AACAHzgAAIAfOAAAgBC4AACIAQ2oAEAoAABIAACAFLgAAIAUuAAAgBy4AACAHLgAAIASuAAAgBK4AACAGrgAAIAauAAAgBa4AACAFrgAAIAeuAAAgB64AACAEbgAAIARuAAAgBm4AACAGbgAAIAVuAAAgBW4AACAHbgAAIAduAAAgBO4AACAE7gAAIAbuAAAgBu4AACAF7gAAIAXuAAAgB+4AACAH7gAAIgQO2AQeAAAgBh4AACAGHgAAIAUeAAAgBR4AACAHHgAAIAceAAAgBJ4AACAEngAAIAaeAAAgBp4AACAFngAAIAWeAAAgB54AACAHngAAIAReAAAgBF4AACAGXgAAIAZeAAAgBV4AACAFXgAAIAdeAAAgB14AACAE3gAAIATeAAAgBt4AACAG3gAAIAXeAAAgBd4AACAH3gAAIAfeAAAgBD4AACAEPgAAIAY+AAAgBj4AACAFPgAAIAU+AAAgBz4AACAHPgAAIAS+AAAgBL4AACAGvgAAIAa+AAAgBb4AACAFvgAAIAe+AAAgB74AACAEfgAAIAR+AAAgBn4AACAGfgAAIAV+AAAgBX4AACAHfgAAIAd+AAAgBP4AACAE/gAAIAb+AAAgBv4AACAF/gAAIAX+AAAgB/4AACAH/gAAIgQQKAUCAAAQBIIAABAFggAAEARCAAAQBUIAABAEwgAAEAXCCBVYDBwBIgAAEASiAAAQBaIAABAEYgAAEAViAAAQBOIAABAF4gAAEAQSAAAQBRIAABAEkgAAEAWSAAAQBFIAABAFUgAAEATSAAAQBdIAABAEDgABCAYOAAAQBQ4AABAHDgAAEASOAAAQBo4AABAFjgAAEAeOAAASAveaAAHSBAsYBBYAAXAEFggVKARSAAAQBDIAABAEcgAAEgL34gAREAQWCBgQBGoIF6gEFgAPUAQWAA7gBBYADnIBPdoAABAERgAAEAQmAAAQBGYAABIEAAgEVgAAEAQ2AAAQBHYAABAEDgAAEAROCBkABBYACLIEFpgEFgAG0AQWAPd8DGwtNgx+5hwAEAQKMAASBB1GJAAQBBIwABAEFigAEBEGwHAuAvMWLAEuNADuFAC8BBoQABIEFiIEABIEBCoEABIEBkoEABICEcYIABAELhAAEAQyEAASABduBR3kE4B0LI4UAX4UFywIQEYAFbQYHCQYKBQuAOrgEDQIOAYAHJQSUHgtphQCQhQCIhQCAhQB4gQBogQBcgQYfARCAAAQBFIAABAEYgAAEARyAAAQBIIAABAEogAAEATCAAAQBOIAABAFAgAAEAVCAAASBBr0BcIAABAGAgAAEAaCAAAQBwIAABAHggABvAx8Lco0Ab4EAa4EAZ4EAY4EAX4EAW4EAV4EAU4EAT4EAS4EAR4EAQ4EBPAGArwBBgFHNAgttgQDHAQSAAAIBCIAABIEBM4ECSwEQgAAOgwAMgYVpgKomhAAkgQdzgQBPAQiAAAiBABiFAAyBCLeDAAwBIIEAlIAyhIEAawGAgQgvAQSDAAyAP0gKAQAQDABBkSEL/4AlHwEDgpvTBQgJCQoKgEk3gAABAQ2AAAEBDoAAAQEPgAABARCEAAEBEYQAAQEShAABAROEAAEBFIwAAQEVjAABARaMAAEBF4wAAQEYnAABARmcAAEBGpwAAQEbmwABARyBffsEBAQFBYHBkAEHgAABAQiEAAGAXSqCAAEBCowAAYAnsooAAYEBMJkAAYEBTJkAAYEBaLkAAYEBpLkAAYIDdYABzoUBvI0BqJ0BkLwBgAIbHLwAAQEdvAABgA9PgH05A9AqAQ==")});}
200
200
 
@@ -2881,7 +2881,7 @@
2881
2881
  if (chunk && chunk.length) {
2882
2882
  controller.enqueue(chunk);
2883
2883
  codec.outputSize += chunk.length;
2884
- if (options.outputSize && codec.outputSize > options.outputSize) {
2884
+ if (options.outputSize !== UNDEFINED_VALUE && codec.outputSize > options.outputSize) {
2885
2885
  throw new Error(ERR_INVALID_UNCOMPRESSED_SIZE);
2886
2886
  }
2887
2887
  }
@@ -4024,7 +4024,7 @@
4024
4024
  encryptionStrength: extraFieldAES && extraFieldAES.strength,
4025
4025
  signed: getOptionValue$1(zipEntry, options, OPTION_CHECK_SIGNATURE) && !passThrough,
4026
4026
  passwordVerification: zipCrypto && (dataDescriptor ? ((rawLastModDate >>> 8) & 0xFF) : ((signature >>> 24) & 0xFF)),
4027
- outputSize: uncompressedSize,
4027
+ outputSize: passThrough ? compressedSize : uncompressedSize,
4028
4028
  signature,
4029
4029
  compressed: compressionMethod != 0 && !passThrough,
4030
4030
  encrypted: zipEntry.encrypted && !passThrough,