@zip.js/zip.js 2.8.35 → 2.8.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/deno.json +1 -1
- package/dist/zip-core.js +48 -27
- package/dist/zip-core.min.js +1 -1
- package/dist/zip-fs-core.js +48 -27
- package/dist/zip-fs-core.min.js +1 -1
- package/dist/zip-fs-native.js +50 -29
- package/dist/zip-fs-native.min.js +1 -1
- package/dist/zip-fs.js +49 -28
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-legacy.js +50 -29
- package/dist/zip-legacy.min.js +1 -1
- package/dist/zip-native.js +50 -29
- package/dist/zip-native.min.js +1 -1
- package/dist/zip-web-worker-native.js +1 -1
- package/dist/zip-web-worker.js +1 -1
- package/dist/zip.js +49 -28
- package/dist/zip.min.js +1 -1
- package/index-native.cjs +50 -29
- package/index-native.min.js +1 -1
- package/index.cjs +49 -28
- package/index.d.cts +8 -0
- package/index.d.ts +8 -0
- package/index.min.js +1 -1
- package/lib/core/io.js +47 -26
- package/lib/core/streams/codec-stream.js +1 -1
- package/lib/core/web-worker-inline-native.js +1 -1
- package/lib/core/web-worker-inline-wasm.js +1 -1
- package/package.json +1 -1
package/dist/zip-fs-core.js
CHANGED
|
@@ -268,6 +268,7 @@
|
|
|
268
268
|
const HTTP_METHOD_GET = "GET";
|
|
269
269
|
const HTTP_RANGE_UNIT = "bytes";
|
|
270
270
|
const DEFAULT_BUFFER_SIZE = 256 * 1024;
|
|
271
|
+
const DEFAULT_MAXIMUM_RANGE_SIZE = 16 * 1024 * 1024;
|
|
271
272
|
|
|
272
273
|
const PROPERTY_NAME_WRITABLE = "writable";
|
|
273
274
|
const DISK_BOUNDARY = Symbol();
|
|
@@ -580,6 +581,7 @@
|
|
|
580
581
|
forceRangeRequests,
|
|
581
582
|
combineSizeEocd,
|
|
582
583
|
checkResourceChanges = true,
|
|
584
|
+
maximumRangeSize = DEFAULT_MAXIMUM_RANGE_SIZE,
|
|
583
585
|
fetch
|
|
584
586
|
} = options;
|
|
585
587
|
options = Object.assign({}, options);
|
|
@@ -588,6 +590,7 @@
|
|
|
588
590
|
delete options.forceRangeRequests;
|
|
589
591
|
delete options.combineSizeEocd;
|
|
590
592
|
delete options.checkResourceChanges;
|
|
593
|
+
delete options.maximumRangeSize;
|
|
591
594
|
delete options.useXHR;
|
|
592
595
|
delete options.fetch;
|
|
593
596
|
Object.assign(httpReader, {
|
|
@@ -598,6 +601,7 @@
|
|
|
598
601
|
forceRangeRequests,
|
|
599
602
|
combineSizeEocd,
|
|
600
603
|
checkResourceChanges,
|
|
604
|
+
maximumRangeSize,
|
|
601
605
|
fetch
|
|
602
606
|
});
|
|
603
607
|
}
|
|
@@ -683,40 +687,31 @@
|
|
|
683
687
|
|
|
684
688
|
function createRangeReadable(httpReader, offset, size) {
|
|
685
689
|
let bodyReader;
|
|
690
|
+
let windowOffset = offset;
|
|
691
|
+
let windowRemainingLength = 0;
|
|
686
692
|
let remainingLength = size;
|
|
687
693
|
return new ReadableStream({
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
if (response.status != 206) {
|
|
691
|
-
throw new Error(ERR_HTTP_RANGE);
|
|
692
|
-
}
|
|
693
|
-
const contentRangeHeader = response.headers.get(HTTP_HEADER_CONTENT_RANGE);
|
|
694
|
-
if (contentRangeHeader) {
|
|
695
|
-
const rangeStart = Number(contentRangeHeader.trim().split(/[\s-]+/)[1]);
|
|
696
|
-
if (!Number.isNaN(rangeStart) && rangeStart != offset) {
|
|
697
|
-
throw new Error(ERR_HTTP_RANGE);
|
|
698
|
-
}
|
|
699
|
-
}
|
|
700
|
-
checkResourceValidators(httpReader, response);
|
|
701
|
-
setResourceValidators(httpReader, response);
|
|
702
|
-
bodyReader = response.body.getReader();
|
|
694
|
+
start() {
|
|
695
|
+
return openWindow();
|
|
703
696
|
},
|
|
704
697
|
async pull(controller) {
|
|
698
|
+
if (!bodyReader) {
|
|
699
|
+
await openWindow();
|
|
700
|
+
}
|
|
705
701
|
const { value, done } = await bodyReader.read();
|
|
706
702
|
if (done) {
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
703
|
+
throw new Error(ERR_HTTP_RANGE);
|
|
704
|
+
}
|
|
705
|
+
const chunk = value.length > windowRemainingLength ? value.subarray(0, windowRemainingLength) : value;
|
|
706
|
+
windowRemainingLength -= chunk.length;
|
|
707
|
+
remainingLength -= chunk.length;
|
|
708
|
+
if (chunk.length) {
|
|
709
|
+
controller.enqueue(chunk);
|
|
710
|
+
}
|
|
711
|
+
if (!windowRemainingLength) {
|
|
712
|
+
await closeWindow();
|
|
717
713
|
if (!remainingLength) {
|
|
718
714
|
controller.close();
|
|
719
|
-
await bodyReader.cancel();
|
|
720
715
|
}
|
|
721
716
|
}
|
|
722
717
|
},
|
|
@@ -724,6 +719,32 @@
|
|
|
724
719
|
return bodyReader && bodyReader.cancel(reason);
|
|
725
720
|
}
|
|
726
721
|
});
|
|
722
|
+
|
|
723
|
+
async function openWindow() {
|
|
724
|
+
const windowLength = Math.min(httpReader.maximumRangeSize, remainingLength);
|
|
725
|
+
const response = await sendFetchRequest(HTTP_METHOD_GET, httpReader, getRangeHeaders(httpReader, windowOffset, windowLength));
|
|
726
|
+
if (response.status != 206) {
|
|
727
|
+
throw new Error(ERR_HTTP_RANGE);
|
|
728
|
+
}
|
|
729
|
+
const contentRangeHeader = response.headers.get(HTTP_HEADER_CONTENT_RANGE);
|
|
730
|
+
if (contentRangeHeader) {
|
|
731
|
+
const rangeStart = Number(contentRangeHeader.trim().split(/[\s-]+/)[1]);
|
|
732
|
+
if (!Number.isNaN(rangeStart) && rangeStart != windowOffset) {
|
|
733
|
+
throw new Error(ERR_HTTP_RANGE);
|
|
734
|
+
}
|
|
735
|
+
}
|
|
736
|
+
checkResourceValidators(httpReader, response);
|
|
737
|
+
setResourceValidators(httpReader, response);
|
|
738
|
+
windowOffset += windowLength;
|
|
739
|
+
windowRemainingLength = windowLength;
|
|
740
|
+
bodyReader = response.body.getReader();
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
async function closeWindow() {
|
|
744
|
+
const currentBodyReader = bodyReader;
|
|
745
|
+
bodyReader = UNDEFINED_VALUE;
|
|
746
|
+
await currentBodyReader.cancel();
|
|
747
|
+
}
|
|
727
748
|
}
|
|
728
749
|
|
|
729
750
|
function getContentRangeSize(response) {
|
|
@@ -2969,7 +2990,7 @@
|
|
|
2969
2990
|
constructor(chunkSize) {
|
|
2970
2991
|
const pendingChunks = [];
|
|
2971
2992
|
let pendingLength = 0;
|
|
2972
|
-
if (!(chunkSize
|
|
2993
|
+
if (!Number.isFinite(chunkSize) || chunkSize < 1) {
|
|
2973
2994
|
chunkSize = DEFAULT_CHUNK_SIZE;
|
|
2974
2995
|
}
|
|
2975
2996
|
super({
|
package/dist/zip-fs-core.min.js
CHANGED
|
@@ -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:n,Number:s,BigInt:i,Math:a,Date:o,Map:c,Set:d,Response:l,URL:u,Error:w,Uint8Array:f,Uint16Array:p,Uint32Array:h,DataView:m,Blob:y,Promise:g,TextEncoder:x,TextDecoder:b,document:S,crypto:z,btoa:F,TransformStream:E,ReadableStream:R,WritableStream:D,CompressionStream:A,DecompressionStream:v,navigator:T,Worker:k}="undefined"!=typeof globalThis?globalThis:this||self,C=4294967295,U=65535,I=255,O=67324752,M=134695760,N=M,_=33639248,P=101010256,L=101075792,W=117853008,Z=22,B=20,V=21589,H=2048,j=16384,q=2048,K=1024,G="/",Y=30,X=new o(2107,11,31),J=new o(1980,0,1),Q=void 0,$=1/0,ee="undefined",te="function",re=new f;let ne=2;try{typeof T!=ee&&T.hardwareConcurrency&&(ne=T.hardwareConcurrency)}catch{}const se={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:ne,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof A!=ee&&A,DecompressionStream:typeof v!=ee&&v};function ie(){return se}function ae(e){return a.max(e.chunkSize,64)}function oe(e,t){const r=new f(e.length+t.length);return r.set(e),r.set(t,e.length),r}function ce(e){return e.byteOffset||e.byteLength!=e.buffer.byteLength?new f(e):e}function de(e){return new m(e.buffer,e.byteOffset,e.byteLength)}const le="HTTP error ",ue="HTTP Range not supported",we="HTTP resource changed",fe="Content-Range",pe="Range",he="GET",me="bytes",ye="writable",ge=Symbol();class xe{constructor(){this.size=0}init(){this.initialized=!0}}class be extends xe{get readable(){return this.createReadable()}createReadable({offset:e=0,size:t,chunkSize:r=ae(ie())}={}){const n=this;let s=0;return new R({async pull(i){const o=t===Q?r:a.min(r,t-s),c=await tt(n,e+s,o);i.enqueue(c),s+r>t||t===Q&&!c.length&&o?i.close():s+=r}})}}class Se extends xe{constructor(){super();const e=this,t=new D({write(t){if(!e.initialized)throw new w("Writer not initialized");return e.writeUint8Array(ce(t))}});r.defineProperty(e,ye,{get:()=>t})}writeUint8Array(){}}class ze extends be{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const n=e.indexOf(",")+1;r.assign(this,{dataURI:e,o:n,size:a.floor(.75*(t-n))})}readUint8Array(e,t){const{o:r,dataURI:n}=this,s=new f(t),i=4*a.floor(e/3),o=atob(n.substring(i+r,4*a.ceil((e+t)/3)+r)),c=e-3*a.floor(i/4);let d=0;for(let e=c;c+t>e&&e<o.length;e++)s[e-c]=o.charCodeAt(e),d++;return d<s.length?s.subarray(0,d):s}}class Fe extends Se{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r,s=t.pending;const i=t.pending.length;for(t.pending="",r=0;r<3*a.floor((i+e.length)/3)-i;r++)s+=n.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=n.fromCharCode(e[r]);s.length>2?t.data+=F(s):t.pending=s+t.pending}getData(){return this.data+F(this.pending)}}let Ee,Re;class De extends be{constructor(e){super(),r.assign(this,{blob:e,size:e.size}),Re||(Re=(async()=>{try{const e=new y([new f(3)]).slice(1,2).stream().getReader();let t=0,r=await e.read();for(;!r.done;)t+=r.value.length,r=await e.read();Ee=1==t}catch{Ee=!1}})())}createReadable(e){const{blob:t,size:r}=this,{offset:n=0,size:s=r-n}=e||{};return n||r>s?Ee?t.slice(n,n+s).stream():super.createReadable(e):t.stream()}async readUint8Array(e,t){const r=this,n=e+t,s=e||n<r.size?r.blob.slice(e,n):r.blob;let i=await s.arrayBuffer();return i.byteLength>t&&(i=i.slice(e,n)),new f(i)}}class Ae extends xe{constructor(e){super();const t=this,n=new E,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(t,ye,{get:()=>n.writable}),t.blob=new l(n.readable,{headers:s}).blob(),t.blob.catch(()=>{})}getData(){return this.blob}}class ve extends De{constructor(e){super(new y([e],{type:"text/plain"}))}}class Te extends Ae{constructor(e){super(e),r.assign(this,{encoding:e,l:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,l:t}=this,n=await super.getData();if(n.text&&t)return n.text();{const t=new FileReader;return new g((s,i)=>{r.assign(t,{onload:({target:e})=>s(e.result),onerror:()=>i(t.error)}),t.readAsText(n,e)})}}}class ke extends be{constructor(e,t){super(),Ue(this,e,t)}async init(){await Ie(this,je,Ze),super.init()}createReadable(e){const t=this,{useRangeHeader:r,forceRangeRequests:n,size:i}=t;if((r||n)&&i!==Q){const{offset:r=0,size:n=i-r}=e||{};if(n>0&&i>r)return((e,t,r)=>{let n,i=r;return new R({async start(){const i=await je(he,e,Le(e,t,r));if(206!=i.status)throw new w(ue);const a=i.headers.get(fe);if(a){const e=s(a.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=t)throw new w(ue)}Pe(e,i),_e(e,i),n=i.body.getReader()},async pull(e){const{value:t,done:r}=await n.read();if(r){if(i)throw new w(ue);e.close()}else{const r=t.length>i?t.subarray(0,i):t;i-=r.length,r.length&&e.enqueue(r),i||(e.close(),await n.cancel())}},cancel:e=>n&&n.cancel(e)})})(t,r,a.min(n,i-r))}return super.createReadable(e)}readUint8Array(e,t){return Oe(this,e,t,je,Ze)}}class Ce extends be{constructor(e,t){super(),Ue(this,e,t)}async init(){await Ie(this,qe,Be),super.init()}readUint8Array(e,t){return Oe(this,e,t,qe,Be)}}function Ue(e,t,n){const{preventHeadRequest:s,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o,checkResourceChanges:c=!0,fetch:d}=n;delete(n=r.assign({},n)).preventHeadRequest,delete n.useRangeHeader,delete n.forceRangeRequests,delete n.combineSizeEocd,delete n.checkResourceChanges,delete n.useXHR,delete n.fetch,r.assign(e,{url:t,options:n,preventHeadRequest:s,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o,checkResourceChanges:c,fetch:d})}async function Ie(e,t,r){const{url:n,preventHeadRequest:s,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o}=e;if((e=>{const{baseURI:t}=ie(),{protocol:r}=new u(e,t);return"http:"==r||"https:"==r})(n)&&(i||a)&&(void 0===s||s)){const n=await t(he,e,Le(e,o?-22:void 0)),s=n.headers.get("Accept-Ranges");if(!(a||s&&s.toLowerCase()==me))throw new w(ue);{if(o){const t=new f(await n.arrayBuffer());206==n.status&&t.length==Z&&(e.h=t)}_e(e,n);const s=Me(n);s===Q?await He(e,t,r):e.size=s}}else await He(e,t,r)}async function Oe(e,t,r,n,i){const{useRangeHeader:a,forceRangeRequests:o,h:c,size:d,options:l}=e;if(a||o){if(c&&t==d-Z&&r==Z)return c;if(d>t&&0!==r){t+r>d&&(r=d-t);const i=await n(he,e,Le(e,t,r));if(206!=i.status)throw new w(ue);const a=i.headers.get(fe);if(a){const e=s(a.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=t)throw new w(ue)}Pe(e,i),_e(e,i);const o=new f(await i.arrayBuffer());if(o.length!=r)throw new w(ue);return o}return re}{const{data:n}=e;return n||await i(e,l),e.data.subarray(t,t+r)}}function Me(e){const t=e.headers.get(fe);if(t){const e=t.trim().split(/\s*\/\s*/)[1];if(e&&"*"!=e){const t=s(e);if(!s.isNaN(t))return t}}}function Ne({headers:e}){return{m:e.get("Etag")||Q,lastModified:e.get("Last-Modified")||Q}}function _e(e,t){const{checkResourceChanges:r,S:n}=e;r&&!n&&206==t.status&&(e.S=Ne(t))}function Pe(e,t){const{checkResourceChanges:n,S:s,size:i}=e;if(n){const e=Me(t);if(e!==Q&&i!==Q&&e!=i)throw new w(we);if(s){const e=Ne(t);if(r.entries(s).some(([t,r])=>r!==Q&&e[t]!==Q&&r!=e[t]))throw new w(we)}}}function Le(e,t=0,n=1){return r.assign({},We(e),{[pe]:me+"="+(0>t?t:t+"-"+(t+n-1))})}function We({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function Ze(e){await Ve(e,je)}async function Be(e){await Ve(e,qe)}async function Ve(e,t){const r=await t(he,e,We(e));e.data=new f(await r.arrayBuffer()),e.size=e.data.length}async function He(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const n=await t("HEAD",e,We(e)),i=n.headers.get("Content-Length");i&&!n.headers.get("Content-Encoding")?e.size=s(i):await r(e,e.options)}}async function je(e,{fetch:t=fetch,options:n,url:s},i){const a=await t(s,r.assign({},n,{method:e,headers:i}));if(400>a.status)return a;throw 416==a.status?new w(ue):new w(le+(a.statusText||a.status))}function qe(e,{url:t},n){return new g((s,i)=>{const a=new XMLHttpRequest;if(a.addEventListener("load",()=>{if(400>a.status){const e=[];a.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const r=t.trim().split(/\s*:\s*/);r[0]=r[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(r)}),s({status:a.status,arrayBuffer:()=>a.response,headers:new c(e)})}else i(416==a.status?new w(ue):new w(le+(a.statusText||a.status)))},!1),a.addEventListener("error",e=>i(e.detail?e.detail.error:new w("Network error")),!1),a.open(e,t),n)for(const e of r.entries(n))a.setRequestHeader(e[0],e[1]);a.responseType="arraybuffer",a.send()})}class Ke extends be{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR&&!t.fetch?new Ce(e,t):new ke(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(e){return this.reader.createReadable(e)}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class Ge 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 Ye extends Se{constructor(e){super(),this.defaultBufferSize=e||262144}init(e=0){r.assign(this,{offset:0,array:new f(e>0?e:this.defaultBufferSize)}),super.init()}writeUint8Array(e){const t=this,r=t.offset+e.length;if(r>t.array.length){let e=t.array.length?2*t.array.length:t.defaultBufferSize;for(;r>e;)e*=2;const n=t.array;t.array=new f(e),t.array.set(n)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}}class Xe extends be{constructor(e){super(),this.F=e}async init(){const e=this,{F:t}=e;e.R=0,await g.all(t.map(e=>et(e))),e.D=t.map(t=>{const r=e.size;return e.size+=t.size,r}),super.init()}A(e){const{D:t,size:r}=this,n=t.at(e);return n===Q?r:n}async readUint8Array(e,t){const r=this,{F:n}=this;let s,i=0,o=e;for(;n[i]&&o>=n[i].size;)o-=n[i].size,i++;const c=n[i];if(c){const n=c.size;if(o+t>n){const i=n-o;s=oe(await tt(c,o,i),await r.readUint8Array(e+i,t-i))}else s=await tt(c,o,t)}else s=re;return r.R=a.max(i,r.R),s}}class Je extends xe{constructor(e,t=4294967295){super();const n=this;let s,i,a;r.assign(n,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new D({async write(t){if(t===ge)return void(a&&await d());const{availableSize:r}=n;if(a)t.length<r?await c(t):(await c(t.subarray(0,r)),await d(),t.length>r&&await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new w("Writer iterator completed too soon");s=r,s.size=0,s.maxSize&&(n.maxSize=s.maxSize),n.availableSize=n.maxSize,await et(s),i=r.writable,a=i.getWriter(),await this.write(t)}},async close(){a&&(await a.ready,await l())},async abort(e){a&&await a.abort(e)}});async function c(e){const t=e.length;t&&(await a.ready,await a.write(e),s.size+=t,n.availableSize-=t)}async function d(){await l(),n.diskOffset+=s.size,n.diskNumber++,a=null,n.availableSize=n.maxSize}async function l(){await a.close()}r.defineProperty(n,ye,{get:()=>o})}async closeDisk(){const e=this.writable.getWriter();try{await e.ready,await e.write(ge)}finally{e.releaseLock()}}}class Qe{constructor(e){return t.isArray(e)&&(e=new Xe(e)),e instanceof R&&(e={readable:e}),e}}class $e{constructor(e){return e.writable===Q&&typeof e.next==te&&(e=new Je(e)),e instanceof D&&(e={writable:e}),e.size===Q&&(e.size=0),e}}async function et(e,t){if(!e.init||e.initialized)return g.resolve();await e.init(t)}function tt(e,t,r){return e.readUint8Array(t,r)}const rt=[[],[],[],[],[],[],[],[]];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)t=1&t?t>>>1^3988292384:t>>>1;rt[0][e]=t}for(let e=0;256>e;e++)for(let t=1;8>t;t++){const r=rt[t-1][e];rt[t][e]=r>>>8^rt[0][255&r]}const[nt,st,it,at,ot,ct,dt,lt]=rt;class ut{constructor(e){this.v=e||-1}append(e){let t=0|this.v;const r=0|e.length;let n=0;if(r>=8&&e.buffer){const s=new m(e.buffer,e.byteOffset,r),i=r-8;for(;i>=n;n+=8){const e=t^s.getInt32(n,!0),r=s.getInt32(n+4,!0);t=lt[255&e]^dt[e>>>8&255]^ct[e>>>16&255]^ot[e>>>24&255]^at[255&r]^it[r>>>8&255]^st[r>>>16&255]^nt[r>>>24&255]}}for(;r>n;n++)t=t>>>8^nt[255&(t^e[n])];this.v=t}get(){return~this.v}}class wt extends E{constructor(){let e;const t=new ut;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 ft(e){if(typeof x==ee){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 x).encode(e)}const pt={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],n=pt.T(r);return 32===n?e.concat(t):pt.C(t,n,0|r,e.slice(0,e.length-1))},U(e){const t=e.length;if(0===t)return 0;const r=e[t-1];return 32*(t-1)+pt.T(r)},I(e,t){if(32*e.length<t)return e;const r=(e=e.slice(0,a.ceil(t/32))).length;return t&=31,r>0&&t&&(e[r-1]=pt.O(t,e[r-1]&2147483648>>t-1,1)),e},O:(e,t,r)=>32===e?t:(r?0|t:t<<32-e)+1099511627776*e,T:e=>a.round(e/1099511627776)||32,C(e,t,r,n){for(void 0===n&&(n=[]);t>=32;t-=32)n.push(r),r=0;if(0===t)return n.concat(e);for(let s=0;s<e.length;s++)n.push(r|e[s]>>>t),r=e[s]<<32-t;const s=e.length?e[e.length-1]:0,i=pt.T(s);return n.push(pt.O(t+i&31,t+i>32?r:n.pop(),1)),n}},ht={bytes:{M(e){const t=pt.U(e)/8,r=new f(t);let n;for(let s=0;t>s;s++)3&s||(n=e[s/4]),r[s]=n>>>24,n<<=8;return r},N(e){const t=[];let r,n=0;for(r=0;r<e.length;r++)n=n<<8|e[r],3&~r||(t.push(n),n=0);return 3&r&&t.push(pt.O(8*(3&r),n)),t}}},mt=class{constructor(e){const t=this;t.blockSize=512,t._=[1732584193,4023233417,2562383102,271733878,3285377520],t.P=[1518500249,1859775393,2400959708,3395469782],e?(t.L=e.L.slice(0),t.W=e.W.slice(0),t.Z=e.Z):t.reset()}reset(){const e=this;return e.L=e._.slice(0),e.W=[],e.Z=0,e}update(e){const t=this;"string"==typeof e&&(e=ht.B.N(e));const r=t.W=pt.concat(t.W,e),n=t.Z,s=t.Z=n+pt.U(e);if(s>9007199254740991)throw new w("Cannot hash more than 2^53 - 1 bits");const i=new h(r);let a=0;for(let e=t.blockSize+n-(t.blockSize+n&t.blockSize-1);s>=e;e+=t.blockSize)t.V(i.subarray(16*a,16*(a+1))),a+=1;return r.splice(0,16*a),t}H(){const e=this;let t=e.W;const r=e.L;t=pt.concat(t,[pt.O(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(a.floor(e.Z/4294967296)),t.push(0|e.Z);t.length;)e.V(t.splice(0,16));return e.reset(),r}j(e,t,r,n){return e>19?e>39?e>59?e>79?void 0:t^r^n:t&r|t&n|r&n:t^r^n:t&r|~t&n}K(e,t){return t<<e|t>>>32-e}V(e){const r=this,n=r.L,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let i=n[0],o=n[1],c=n[2],d=n[3],l=n[4];for(let e=0;79>=e;e++){16>e||(s[e]=r.K(1,s[e-3]^s[e-8]^s[e-14]^s[e-16]));const t=r.K(5,i)+r.j(e,o,c,d)+l+s[e]+r.P[a.floor(e/20)]|0;l=d,d=c,c=r.K(30,o),o=i,i=t}n[0]=n[0]+i|0,n[1]=n[1]+o|0,n[2]=n[2]+c|0,n[3]=n[3]+d|0,n[4]=n[4]+l|0}},yt={importKey:e=>new yt.G(ht.bytes.N(e)),Y(e,t,r,n){if(r=r||1e4,0>n||0>r)throw new w("invalid params to pbkdf2");const s=1+(n>>5)<<2;let i,a,o,c,d;const l=new ArrayBuffer(s),u=new m(l);let f=0;const p=pt;for(t=ht.bytes.N(t),d=1;(s||1)>f;d++){for(i=a=e.encrypt(p.concat(t,[d])),o=1;r>o;o++)for(a=e.encrypt(a),c=0;c<a.length;c++)i[c]^=a[c];for(o=0;(s||1)>f&&o<i.length;o++)u.setInt32(f,i[o]),f+=4}return l.slice(0,n/8)},G:class{constructor(e){const t=this,r=t.X=mt,n=[[],[]];t.J=[new r,new r];const s=t.J[0].blockSize/32;e.length>s&&(e=(new r).update(e).H());for(let t=0;s>t;t++)n[0][t]=909522486^e[t],n[1][t]=1549556828^e[t];t.J[0].update(n[0]),t.J[1].update(n[1]),t.$=new r(t.J[0])}reset(){const e=this;e.$=new e.X(e.J[0]),e.ee=!1}update(e){this.ee=!0,this.$.update(e)}digest(){const e=this,t=e.$.H(),r=new e.X(e.J[1]).update(t).H();return e.reset(),r}encrypt(e){if(this.ee)throw new w("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},gt=typeof z!=ee&&typeof z.getRandomValues==te,xt="Invalid password",bt="Invalid signature",St="zipjs-abort-check-password";function zt(e){if(gt)return z.getRandomValues(e);throw new w("Crypto API not supported")}const Ft=16,Et={name:"PBKDF2"},Rt=r.assign({hash:{name:"HMAC"}},Et),Dt=r.assign({iterations:1e3,hash:{name:"SHA-1"}},Et),At=["deriveBits"],vt=[8,12,16],Tt=[16,24,32],kt=10,Ct=[0,0,0,0],Ut=typeof z!=ee,It=Ut&&z.subtle,Ot=Ut&&typeof It!=ee,Mt=ht.bytes,Nt=class{constructor(e){const t=this;t.te=[[[],[],[],[],[]],[[],[],[],[],[]]],t.te[0][0][0]||t.re();const r=t.te[0][4],n=t.te[1],s=e.length;let i,a,o,c=1;if(4!==s&&6!==s&&8!==s)throw new w("invalid aes key size");for(t.P=[a=e.slice(0),o=[]],i=s;4*s+28>i;i++){let e=a[i-1];(i%s===0||8===s&&i%s===4)&&(e=r[e>>>24]<<24^r[e>>16&255]<<16^r[e>>8&255]<<8^r[255&e],i%s===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),a[i]=a[i-s]^e}for(let e=0;i;e++,i--){const t=a[3&e?i:i-4];o[e]=4>=i||4>e?t:n[0][r[t>>>24]]^n[1][r[t>>16&255]]^n[2][r[t>>8&255]]^n[3][r[255&t]]}}encrypt(e){return this.ne(e,0)}decrypt(e){return this.ne(e,1)}re(){const e=this.te[0],t=this.te[1],r=e[4],n=t[4],s=[],i=[];let a,o,c,d;for(let e=0;256>e;e++)i[(s[e]=e<<1^283*(e>>7))^e]=e;for(let l=a=0;!r[l];l^=o||1,a=i[a]||1){let i=a^a<<1^a<<2^a<<3^a<<4;i=i>>8^255&i^99,r[l]=i,n[i]=l,d=s[c=s[o=s[l]]];let u=16843009*d^65537*c^257*o^16843008*l,w=257*s[i]^16843008*i;for(let r=0;4>r;r++)e[r][l]=w=w<<24^w>>>8,t[r][i]=u=u<<24^u>>>8}for(let r=0;5>r;r++)e[r]=e[r].slice(0),t[r]=t[r].slice(0)}ne(e,t){if(4!==e.length)throw new w("invalid aes block size");const r=this.P[t],n=r.length/4-2,s=[0,0,0,0],i=this.te[t],a=i[0],o=i[1],c=i[2],d=i[3],l=i[4];let u,f,p,h=e[0]^r[0],m=e[t?3:1]^r[1],y=e[2]^r[2],g=e[t?1:3]^r[3],x=4;for(let e=0;n>e;e++)u=a[h>>>24]^o[m>>16&255]^c[y>>8&255]^d[255&g]^r[x],f=a[m>>>24]^o[y>>16&255]^c[g>>8&255]^d[255&h]^r[x+1],p=a[y>>>24]^o[g>>16&255]^c[h>>8&255]^d[255&m]^r[x+2],g=a[g>>>24]^o[h>>16&255]^c[m>>8&255]^d[255&y]^r[x+3],x+=4,h=u,m=f,y=p;for(let e=0;4>e;e++)s[t?3&-e:e]=l[h>>>24]<<24^l[m>>16&255]<<16^l[y>>8&255]<<8^l[255&g]^r[x++],u=h,h=m,m=y,y=g,g=u;return s}},_t=class{constructor(e,t){this.se=e,this.ie=t,this.ae=t}reset(){this.ae=this.ie}update(e){return this.oe(this.se,e,this.ae)}ce(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,r=e>>8&255,n=255&e;255===t?(t=0,255===r?(r=0,255===n?n=0:++n):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=n}return e}de(e){0===(e[0]=this.ce(e[0]))&&(e[1]=this.ce(e[1]))}oe(e,t,r){let n;if(!(n=t.length))return[];const s=pt.U(t);for(let s=0;n>s;s+=4){this.de(r);const n=e.encrypt(r);t[s]^=n[0],t[s+1]^=n[1],t[s+2]^=n[2],t[s+3]^=n[3]}return pt.I(t,s)}},Pt=yt.G;let Lt=Ut&&Ot&&typeof It.importKey==te,Wt=Ut&&Ot&&typeof It.deriveBits==te;class Zt extends E{constructor({password:e,rawPassword:t,encryptionStrength:r,checkPasswordOnly:n}){super({start(){Vt(this,e,t,r)},async transform(e,t){const r=this,{password:s,strength:i,le:a,ready:o}=r;s?(await(async(e,t,r,n)=>{const s=await jt(e,t,r,Kt(n,0,vt[t])),i=Kt(n,vt[t]);if(s[0]!=i[0]||s[1]!=i[1])throw new w(xt)})(r,i,s,Kt(e,0,vt[i]+2)),e=Kt(e,vt[i]+2),n?t.error(new w(St)):a()):await o;const c=new f(e.length-kt-(e.length-kt)%Ft);t.enqueue(Ht(r,e,c,0,kt,!0))},async flush(e){const{ue:t,we:r,pending:n,ready:s}=this;if(r&&t){await s;const i=Kt(n,0,n.length-kt),a=Kt(n,n.length-kt);let o=re;if(i.length){const e=Yt(Mt,i);r.update(e);const n=t.update(e);o=Gt(Mt,n)}const c=Kt(Gt(Mt,r.digest()),0,kt);let d=n.length<kt?1:0;for(let e=0;kt>e;e++)d|=c[e]^a[e];if(d)throw new w(bt);e.enqueue(o)}}})}}class Bt extends E{constructor({password:e,rawPassword:t,encryptionStrength:r}){let n;super({start(){Vt(this,e,t,r)},async transform(e,t){const r=this,{password:n,strength:s,le:i,ready:a}=r;let o=re;n?(o=await(async(e,t,r)=>{const n=zt(new f(vt[t]));return oe(n,await jt(e,t,r,n))})(r,s,n),i()):await a;const c=new f(o.length+e.length-e.length%Ft);c.set(o,0),t.enqueue(Ht(r,e,c,o.length,0))},async flush(e){const{ue:t,we:r,pending:s,ready:i}=this;if(r&&t){await i;let a=re;if(s.length){const e=t.update(Yt(Mt,s));r.update(e),a=Gt(Mt,e)}n.signature=Gt(Mt,r.digest()).slice(0,kt),e.enqueue(oe(a,n.signature))}}}),n=this}}function Vt(e,t,n,s){r.assign(e,{ready:new g(t=>e.le=t),password:qt(t,n),strength:s-1,pending:re})}function Ht(e,t,r,n,s,i){const{ue:a,we:o,pending:c}=e;c.length&&(t=oe(c,t));const d=t.length-s;let l;for(r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new f(t)).set(r,0)}return e})(r,n+(d-d%Ft)),l=0;d-Ft>=l;l+=Ft){const e=Yt(Mt,Kt(t,l,l+Ft));i&&o.update(e);const s=a.update(e);i||o.update(s),r.set(Gt(Mt,s),l+n)}return e.pending=Kt(t,l),r}async function jt(e,n,s,i){e.password=null;const a=await(async(e,t,r,n,s)=>{if(!Lt)return yt.importKey(t);try{return await It.importKey("raw",t,r,!1,s)}catch{return Lt=!1,yt.importKey(t)}})(0,s,Rt,0,At),o=await(async(e,t,r)=>{if(!Wt)return yt.Y(t,e.salt,Dt.iterations,r);try{return await It.deriveBits(e,t,r)}catch{return Wt=!1,yt.Y(t,e.salt,Dt.iterations,r)}})(r.assign({salt:i},Dt),a,8*(2*Tt[n]+2)),c=new f(o),d=Yt(Mt,Kt(c,0,Tt[n])),l=Yt(Mt,Kt(c,Tt[n],2*Tt[n])),u=Kt(c,2*Tt[n]);return r.assign(e,{keys:{key:d,fe:l,passwordVerification:u},ue:new _t(new Nt(d),t.from(Ct)),we:new Pt(l)}),u}function qt(e,t){return t===Q?ft(e):t}function Kt(e,t,r){return e.subarray(t,r)}function Gt(e,t){return e.M(t)}function Yt(e,t){return e.N(t)}class Xt extends E{constructor({password:e,rawPassword:t,passwordVerification:r,checkPasswordOnly:n}){super({start(){Qt(this,e,t,r)},transform(e,t){const r=this;if(r.password||r.rawPassword){const t=$t(r,e.subarray(0,12));if(r.password=r.rawPassword=null,0!=(t.at(-1)^r.passwordVerification))throw new w(xt);e=e.subarray(12)}n?t.error(new w(St)):t.enqueue($t(r,e))}})}}class Jt extends E{constructor({password:e,rawPassword:t,passwordVerification:r}){super({start(){Qt(this,e,t,r)},transform(e,t){const r=this;let n,s;if(r.password||r.rawPassword){r.password=r.rawPassword=null;const t=zt(new f(12));t[11]=r.passwordVerification,n=new f(e.length+t.length),n.set(er(r,t),0),s=12}else n=new f(e.length),s=0;n.set(er(r,e),s),t.enqueue(n)}})}}function Qt(e,t,n,s){r.assign(e,{password:t,rawPassword:n,passwordVerification:s}),((e,t,n)=>{const s=[305419896,591751049,878082192];if(r.assign(e,{keys:s,pe:new ut(s[0]),he:new ut(s[2])}),n)for(let t=0;t<n.length;t++)tr(e,n[t]);else for(let r=0;r<t.length;r++)tr(e,t.charCodeAt(r))})(e,t,n)}function $t(e,t){const r=new f(t.length);for(let n=0;n<t.length;n++)r[n]=rr(e)^t[n],tr(e,r[n]);return r}function er(e,t){const r=new f(t.length);for(let n=0;n<t.length;n++)r[n]=rr(e)^t[n],tr(e,t[n]);return r}function tr(e,t){let[,r]=e.keys;e.pe.append([t]);const n=~e.pe.get();r=sr(a.imul(sr(r+nr(n)),134775813)+1),e.he.append([r>>>24]);const s=~e.he.get();e.keys=[n,r,s]}function rr(e){const t=2|e.keys[2];return nr(a.imul(t,1^t)>>>8)}function nr(e){return 255&e}function sr(e){return 4294967295&e}const ir="Invalid uncompressed size",ar="Invalid compressed data";class or extends E{constructor(e,{chunkSize:t,CompressionStreamZlib:r,CompressionStream:n}){super({});const{compressed:s,encrypted:i,useCompressionStream:a,zipCrypto:o,signed:c,level:d,deflate64:l}=e,u=this;let w,f,p,h=super.readable;const y=c&&s&&!l&&(!i||o)&&!(!a||!n);i&&!o||!c||y||(w=new wt,h=wr(h,w)),s&&(y?(p=new cr,h=fr(h,new n("gzip")),h=wr(h,p)):h=ur(h,a,{level:d,chunkSize:t},n,r,n)),i&&(o?h=wr(h,new Jt(e)):(f=new Bt(e),h=wr(h,f))),lr(u,h,()=>{let e;i&&!o&&(e=f.signature),i&&!o||!c||(e=y?p.signature:new m(w.value.buffer).getUint32(0)),u.signature=e})}}class cr extends E{constructor(){let e,t=10,r=new f(0);super({transform(e,n){if(t){const r=a.min(t,e.length);if(t-=r,!(e=e.subarray(r)).length)return}const s=r.length+e.length;if(8>=s)return void(r=oe(r,e));const i=s-8,o=a.min(i,r.length);n.enqueue(oe(r.subarray(0,o),e.subarray(0,i-o))),r=oe(r.subarray(o),e.subarray(i-o))},flush(){const t=de(r);e.signature=t.getUint32(0,!0),e.uncompressedSize=t.getUint32(4,!0)}}),e=this}}class dr extends E{constructor(e,{chunkSize:t,DecompressionStreamZlib:r,DecompressionStream:n}){super({});const{zipCrypto:s,encrypted:i,signed:a,signature:o,compressed:c,useCompressionStream:d,deflate64:l}=e;let u,f,p=super.readable;i&&(s?p=wr(p,new Xt(e)):(f=new Zt(e),p=wr(p,f))),c&&(p=ur(p,d,{chunkSize:t,deflate64:l},n,r,n),p=(e=>{const t=e.getReader();return new R({async pull(e){let r;try{r=await t.read()}catch(e){if(e&&e.message)throw e;const t=new w(ar);throw t.cause=e,t}const{value:n,done:s}=r;s?e.close():e.enqueue(n)},cancel:e=>t.cancel(e)})})(p)),i&&!s||!a||(u=new wt,p=wr(p,u)),lr(this,p,()=>{if((!i||s)&&a){const e=new m(u.value.buffer);if(o!=e.getUint32(0,!1))throw new w(bt)}})}}function lr(e,t,n){t=wr(t,new E({flush:n})),r.defineProperty(e,"readable",{get:()=>t})}function ur(e,t,r,n,s,i){const a=t&&n?n:s||i,o=r.deflate64?"deflate64-raw":"deflate-raw";let c;try{c=new a(o,r)}catch(e){if(!t)throw e;if(s)c=new s(o,r);else{if(!i)throw e;c=new i(o,r)}}return fr(e,c)}function wr(e,t){return e.pipeThrough(t)}function fr(e,t){const r=t.writable.getWriter(),n=e.getReader();return(async()=>{try{for(;;){await r.ready;const e=await n.read();if(e.done){await r.close();break}await r.write(e.value)}}catch(e){await(async(e,t)=>{try{await e.abort(t)}catch{}})(r,e),await(async(e,t)=>{try{await e.cancel(t)}catch{}})(n,e)}})(),t.readable}const pr="data",hr="deflate",mr="inflate";class yr extends E{constructor(e,t){super({});const n=this,{codecType:s}=e;let i;s.startsWith(hr)?i=or:s.startsWith(mr)&&(i=dr),n.outputSize=0;let a=0;const o=new i(e,t),c=super.readable,d=new E({transform(e,t){e&&e.length&&(a+=e.length,t.enqueue(e))},flush(){r.assign(n,{inputSize:a})}}),l=new E({transform(t,r){if(t&&t.length&&(r.enqueue(t),n.outputSize+=t.length,e.outputSize!==Q&&n.outputSize>e.outputSize))throw new w(ir)},flush(){const{signature:e}=o;r.assign(n,{signature:e,inputSize:a})}});r.defineProperty(n,"readable",{get:()=>c.pipeThrough(d).pipeThrough(o).pipeThrough(l)})}}class gr extends E{constructor(e){const t=[];let r=0;function n(){const n=new f(e);let s=0;for(;e>s;){const r=t[0],i=e-s;r.length>i?(n.set(r.subarray(0,i),s),t[0]=r.subarray(i),s+=i):(n.set(r,s),s+=r.length,t.shift())}return r-=e,n}1>e&&(e=65536),super({transform(s,i){for(t.push(s),r+=s.length;r>e;)i.enqueue(n())},flush(e){r&&e.enqueue(((e,t)=>{const r=new f(t);let n=0;for(const t of e)r.set(t,n),n+=t.length;return r})(t,r))}})}}const xr={type:"module"},br="error";let Sr,zr,Fr,Er,Rr=!0;try{Rr=typeof structuredClone==te&&structuredClone(new DOMException("","AbortError")).code!==Q}catch{}class Dr{constructor(e,{readable:t,writable:n},{options:s,config:i,me:a,useWebWorkers:o,transferStreams:c,workerURI:d},l){const{signal:u}=a;return r.assign(e,{ye:!0,ge:(e.ge||0)+1,readable:t.pipeThrough(new gr(ae(i))).pipeThrough(new Ar(a),{signal:u}),writable:n,options:r.assign({},s),workerURI:d,transferStreams:c,terminate:()=>new g(t=>{const{xe:r,ye:n}=e;r?(n?e.be=t:(r.terminate(),t()),e.Se=null):t()}),ze(){if(e.ye){const{be:t}=e;t&&(e.be=null,e.Fe=!0,e.xe.terminate(),t()),e.ye=!1,l(e)}}}),Sr===Q&&(Sr=typeof k!=ee),(o&&Sr?kr:Tr)(e,i)}}class Ar extends E{constructor({onstart:e,onprogress:t,size:r,onend:n}){let s=0;super({async start(){e&&await vr(e,r)},async transform(e,n){s+=e.length,t&&await vr(t,s,r),n.enqueue(e)},async flush(){n&&await vr(n,s)}})}}async function vr(e,...t){try{await e(...t)}catch{}}function Tr(e,t){return{run:()=>(async({options:e,readable:t,writable:r,ze:n},s)=>{let i;try{if(!e.useCompressionStream)try{await void 0}catch{const t=e.codecType.startsWith(hr)?s.CompressionStreamZlib:s.DecompressionStreamZlib;t&&!t.Ee||(e.useCompressionStream=!0)}i=new yr(e,s),await t.pipeThrough(i).pipeThrough(new gr(ae(s))).pipeTo(r,{preventClose:!0,preventAbort:!0});const{signature:n,inputSize:a,outputSize:o}=i;return{signature:n,inputSize:a,outputSize:o}}catch(e){throw i&&(e.outputSize=i.outputSize),e}finally{n()}})(e,t)}}function kr(e,t){const{baseURI:n,chunkSize:s}=t;let{wasmURI:i}=t;if(!e.Se){let a;typeof i==te&&(i=i());try{a=Ur(e.workerURI,n,e)}catch{return Sr=!1,Tr(e,t)}r.assign(e,{xe:a,Fe:!1,Se:{run:()=>(async(e,t)=>{let n,s;const i=new g((e,t)=>{n=e,s=t});r.assign(e,{reader:null,writer:null,Re:n,De:s,result:i});const{readable:a,options:o}=e,{writable:c,closed:d,Ae:l}=(e=>{const t=new AbortController,{writable:r,readable:n}=new E,s=n.pipeTo(e,{preventClose:!0,preventAbort:!0,signal:t.signal});return s.catch(()=>{}),{writable:r,closed:s,Ae:()=>t.abort()}})(e.writable);let u;try{u=Or({type:"start",options:o,config:t,readable:a,writable:c},e)}catch(t){l();try{await d}catch{}throw e.ze(),t}u||r.assign(e,{reader:a.getReader(),writer:c.getWriter()});try{const e=await i;return await w(),await d,e}catch(e){await w(),l();try{await d}catch{}throw e}async function w(){if(!u&&!c.locked)try{await c.getWriter().close()}catch{}}})(e,{chunkSize:s,wasmURI:i,baseURI:n})}})}return e.Se}function Cr(e){const{xe:t}=e;if(t)try{t.terminate()}catch{}e.Se=null}function Ur(e,t,n,s,i=!0){let a,o,c;if(Fr===Q||zr!==e){const r=typeof e==te;o=r?e(i):e;const d=o.startsWith("data:"),l=o.startsWith("blob:");if(d||l){s===Q&&(s=!1),s&&(c=xr);try{a=new k(o,c)}catch(i){if(l)try{u.revokeObjectURL(o)}catch{}if(r&&l)return Ur(e,t,n,s,!1);if(s)throw i;return Ur(e,t,n,!0,!1)}}else{s===Q&&(s=!0),s&&(c=xr);try{o=new u(o,t)}catch{}try{a=new k(o,c)}catch(r){if(s)throw r;return Ur(e,t,n,!1,i)}}zr=e,Fr=o,Er=c}else a=new k(Fr,Er);return a.addEventListener("message",e=>(async({data:e},t)=>{const{type:n,value:s,messageId:i,result:a,error:o}=e,{reader:c,writer:d,Re:l,De:u,ze:p,ge:h}=t,m=()=>t.ge!=h;try{if(o){const{message:e,stack:t,code:n,name:s,outputSize:i}=o,a=new w(e);r.assign(a,{stack:t,code:n,name:s,outputSize:i}),y(a)}else{if("pull"==n){const{value:e,done:r}=await c.read();m()||Or({type:pr,value:e,done:r,messageId:i},t)}n==pr&&(await d.ready,await d.write(new f(s)),m()||Or({type:"ack",messageId:i},t)),"close"==n&&y(null,a)}}catch(o){m()||(Cr(t),y(o))}function y(e,t){m()||(e?u(e):l(t),d&&d.releaseLock(),p())}})(e,n)),a.addEventListener(br,e=>Ir(e,n)),a.addEventListener("messageerror",e=>Ir(e,n)),a}function Ir(e,t){e.preventDefault&&e.preventDefault();const{De:r,writer:n,ze:s}=t;Cr(t),r&&(r(e.error||new w(e.message||br)),n&&n.releaseLock(),s())}function Or(e,{xe:t,writer:r,transferStreams:n}){try{const{value:r,readable:s,writable:i}=e,a=[];if(r&&(e.value=ce(r),a.push(e.value.buffer)),n&&Rr?(s&&a.push(s),i&&a.push(i)):e.readable=e.writable=null,a.length)try{return t.postMessage(e,a),!0}catch{Rr=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),e}}let Mr=[];const Nr=[];let _r,Pr,Lr=0;async function Wr(e,t){const{options:r,config:n}=t,{transferStreams:i,useWebWorkers:a,useCompressionStream:o,compressed:c,signed:d,encrypted:l}=r,{workerURI:u,maxWorkers:w}=n;t.transferStreams=i||i===Q&&n.transferStreams;const f=!c&&!d&&!l;return t.useWebWorkers=!f&&(a||a===Q&&n.useWebWorkers),t.workerURI=t.useWebWorkers&&u?u:Q,r.useCompressionStream=o||o===Q&&n.useCompressionStream,(await(async()=>{const r=Mr.find(e=>!e.ye);if(r)return jr(r),new Dr(r,e,t,p);if(Mr.length<w){const r={ve:Lr};return Lr++,Mr.push(r),new Dr(r,e,t,p)}return new g(r=>{Nr.push({resolve:r,stream:e,Te:t}),Pr=n.workerStarvationTimeout,Zr()})})()).run();function p(e){if(Br(),Nr.length){const[{resolve:t,stream:r,Te:n}]=Nr.splice(0,1);t(new Dr(e,r,n,p)),Zr()}else e.xe?(jr(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:n}=r;s.isFinite(n)&&n>=0&&(e.Fe?e.Fe=!1:e.ke=setTimeout(async()=>{Mr=Mr.filter(t=>t!=e);try{await e.terminate()}catch{}},n))})(e,t)):Mr=Mr.filter(t=>t!=e)}}function Zr(){!_r&&Nr.length&&s.isFinite(Pr)&&Pr>=0&&(_r=setTimeout(Vr,Pr))}function Br(){_r&&(clearTimeout(_r),_r=null)}function Vr(){if(_r=null,Nr.length){const[{resolve:e,stream:t,Te:n}]=Nr.splice(0,1),s=r.assign({},n,{useWebWorkers:!1,workerURI:Q});e(new Dr({},t,s,Hr)),Zr()}}function Hr(){Br(),Zr()}function jr(e){const{ke:t}=e;t&&(clearTimeout(t),e.ke=null)}const qr="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function Kr(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=qr[e[r]];return t}})(e):new b(t,{ignoreBOM:!0}).decode(e)}const Gr="filename",Yr="rawFilename",Xr="comment",Jr="rawComment",Qr="uncompressedSize",$r="compressedSize",en="offset",tn="diskNumberStart",rn="lastModDate",nn="rawLastModDate",sn="lastAccessDate",an="creationDate",on="rawCreationDate",cn="internalFileAttributes",dn="externalFileAttributes",ln="msdosAttributesRaw",un="msdosAttributes",wn="msDosCompatible",fn="zip64",pn="encrypted",hn="version",mn="versionMadeBy",yn="zipCrypto",gn="directory",xn="executable",bn="compressionMethod",Sn="signature",zn="extraField",Fn="unixMode",En="setuid",Rn="setgid",Dn="sticky",An=[Gr,Yr,Qr,$r,rn,nn,Xr,Jr,sn,an,on,en,tn,cn,dn,ln,un,wn,fn,pn,hn,mn,yn,gn,xn,bn,Sn,zn,"extraFieldUnix","extraFieldInfoZip","uid","gid",Fn,En,Rn,Dn,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class vn{constructor(e){An.forEach(t=>this[t]=e[t])}}const Tn="password",kn="rawPassword",Cn="passThrough",Un="signal",In="checkAmbiguity",On="useWebWorkers",Mn="useCompressionStream",Nn="transferStreams",_n="preventClose",Pn="offset",Ln="strictness",Wn="strict",Zn="tolerant",Bn="File format is not recognized",Vn="End of central directory not found",Hn="End of Zip64 central directory locator not found",jn="Central directory header not found",qn="Local file header not found",Kn="Zip64 extra field not found",Gn="File contains encrypted entry",Yn="Encryption method not supported",Xn="Compression method not supported",Jn="Split zip file",Qn="Overlapping entry found",$n="Ambiguous archive",es="utf-8",ts="cp437",rs=[[Qr,C],[$r,C],[en,C],[tn,U]],ns={[U]:{Ce:As,bytes:4},[C]:{Ce:vs,bytes:8}};class ss{constructor(e,t={}){r.assign(this,{reader:new Qe(e),options:t,config:ie(),Ue:new c})}async*getEntriesGenerator(e={}){const t=this;let{reader:n}=t;const{config:s}=t;if(await et(n),n.size!==Q&&n.readUint8Array||(n=new De(await new l(n.readable).blob()),await et(n)),n.size<Z)throw new w(Bn);const i=ws(zs(t,e,Ln),zs(t,e,In)),o=i==Wn,c=i!=Zn,u=((e,t)=>e!==Q?e:t==Wn?0:t==Zn?1/0:U)(zs(t,e,"maxAppendedDataSize"),i),{Ie:f,Oe:p}=await(async(e,t,r)=>{const{size:n}=e,s=a.min(n,65557),i={count:fs};let o,c,d=0;for await(const[r,a,l,u,w]of ys(e,s)){const s=Ds(r,u+20);if(w+Z+s==n){const s=await xs(e,r,a,u,w,n,i);if(s==ms){if(o||(o=gs(l,u,w)),d++,!t||d>1)break}else s!=hs||c||(c=gs(l,u,w))}}return o||(o=c),o||(o=await(async(e,t,r)=>{const{size:n}=e,s=a.min(n,t==1/0?n:65557+t);let i,o;for await(const[t,a,c,d,l]of ys(e,s)){const s=gs(c,d,l);i||(i=s);const u=await xs(e,t,a,d,l,n,r);if(u==ms)return s;u!=hs||o||(o=s)}return o||i})(e,r,i)),{Ie:o,Oe:d}})(n,c,u);if(!f)throw As(de(await tt(n,0,4)))==M?new w(Jn):new w(Vn);c&&p>1&&Ss("multiple end of central directory records");const h=de(f);let m=As(h,12),y=As(h,16);const x=f.offset,b=Ds(h,20),S=x+Z+b;n.size-S>u&&Ss("appended data");let z=Ds(h,4);const F=n.R||0;let R,D,A=Ds(h,6),v=Ds(h,10),T=0;const k=y==C||m==C||v==U||A==U;if(y!=C&&A!=U&&(y+=us(n,A)),k){const e=f.offset<B?re:await tt(n,f.offset-B,B),t=de(e);if(e.length==B&&As(t,0)==W){y=us(n,As(t,4))+vs(t,8);let e=await tt(n,y,56),r=de(e);const s=f.offset-B-56;if((56>e.length||As(r,0)!=L)&&y!=s&&s>=0){const t=y;y=s,y>t&&(T=y-t),e=await tt(n,y,56),r=de(e)}if(56>e.length||As(r,0)!=L)throw new w(Hn);D=!0,z==U?z=As(r,16):o&&z!=As(r,16)&&Ss("mismatched zip64 end of central directory record"),A==U?A=As(r,20):o&&A!=As(r,20)&&Ss("mismatched zip64 end of central directory record"),v==U?v=vs(r,32):o&&v!=vs(r,32)&&Ss("mismatched zip64 end of central directory record"),m==C?m=vs(r,40):o&&m!=vs(r,40)&&Ss("mismatched zip64 end of central directory record"),y=us(n,A)+vs(r,48)+T}}const O=m,N=f.offset-(D?76:0);if(y<n.size||(T=n.size-y-m-Z,y=n.size-m-Z),F!=z)throw new w(Jn);if(0>y)throw new w(Bn);let P=0,V=await tt(n,y,m),H=de(V);if(m){if(4>V.length)throw new w(Bn);const e=N-m;if(y!=e&&A==z){let t=!(As(H,P)==_);if(t||0>e||e+4>n.size||(t=As(de(await tt(n,e,4)),0)==_),t){const t=y;y=e,y>t&&(T+=y-t),V=await tt(n,y,m),H=de(V)}}}const Y=N-y;if(m==Y||0>Y||A!=z||(m=Y,V=await tt(n,y,m),H=de(V)),0>y||y>=n.size)throw new w(Bn);R=y;const X=zs(t,e,"filenameEncoding"),J=zs(t,e,"commentEncoding"),$=o?new d:Q;let ee;for(let i=0;v>i;i++){const c=new is(n,s,t.options);if(P+46>V.length||As(H,P)!=_)throw new w(jn);as(c,H,P+6);const d=!!c.bitFlag.languageEncodingFlag,u=P+46,f=u+c.filenameLength,p=f+c.extraFieldLength,h=Ds(H,P+4),m=!(h>>8),y=h>>8==3,x=V.subarray(u,f),b=Ds(H,P+32),S=p+b,z=V.subarray(p,S),F=d,D=d,A=As(H,P+38),k=A&I,C={readOnly:!!(1&k),hidden:!!(2&k),system:!!(4&k),directory:!!(16&k),archive:!!(32&k)},O=As(H,P+42),M=zs(t,e,"decodeText")||Kr,N=F?es:X||ts,L=D?es:J||ts;let W=M(x,N);W===Q&&(W=Kr(x,N));let Z=M(z,L);Z===Q&&(Z=Kr(z,L)),r.assign(c,{index:i,versionMadeBy:h,msDosCompatible:m,compressedSize:0,uncompressedSize:0,Me:b,offset:O,diskNumberStart:Ds(H,P+34),internalFileAttributes:Ds(H,P+36),externalFileAttributes:A,msdosAttributesRaw:k,msdosAttributes:C,rawFilename:x,filenameUTF8:F,commentUTF8:D,rawExtraField:V.subarray(f,p),rawComment:z,filename:W,comment:Z}),os(c,c,H,P+6),c.offset+=T,R=a.min(us(n,c.diskNumberStart)+c.offset,R),o&&($.has(c.filename)&&(ee=!0),$.add(c.filename));const B=c.externalFileAttributes>>16&U;c.unixMode===Q&&16877&B&&(c.unixMode=B);const Y=!!(c.unixMode&q),te=!!(c.unixMode&K),re=!!(512&c.unixMode),ne=c.unixMode!==Q?!!(73&c.unixMode):y&&!!(73&B),se=c.unixMode!==Q&&(61440&c.unixMode)==j,ie=(61440&B)==j;r.assign(c,{setuid:Y,setgid:te,sticky:re,unixExternalUpper:B,internalFileAttribute:c.internalFileAttributes,externalFileAttribute:c.externalFileAttributes,executable:ne,directory:se||ie||m&&C.directory||c.filename.endsWith(G)&&!c.uncompressedSize,zipCrypto:c.encrypted&&!c.extraFieldAES});const ae=new vn(c);ae.getData=(e,r)=>c.getData(e,ae,t.Ue,r),ae.arrayBuffer=async e=>{const r=new E,[n]=await g.all([new l(r.readable).arrayBuffer(),c.getData(r,ae,t.Ue,e)]);return n},P=S;const{onprogress:oe}=e;if(oe)try{await oe(i+1,v,new vn(c))}catch{}yield ae}o&&P!=O&&Ss("trailing central directory data"),ee&&Ss("duplicate filename"),o&&(T||v&&R>0)&&Ss("prepended data");const te=zs(t,e,"extractPrependedData"),ne=zs(t,e,"extractAppendedData");return te&&(t.prependedData=R>0?await tt(n,0,R):re),t.comment=b?await tt(n,x+Z,b):re,ne&&(t.appendedData=S<n.size?await tt(n,S,n.size-S):re),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}let is=class{constructor(e,t,n){r.assign(this,{reader:e,config:t,options:n})}async getData(e,t,r,n={}){const s=this,{reader:i,index:a,offset:o,diskNumberStart:c,extraFieldAES:d,extraFieldZip64:l,compressionMethod:u,config:f,bitFlag:p,signature:h,rawLastModDate:m,uncompressedSize:y,compressedSize:g}=s,{dataDescriptor:x}=p,b=t.localDirectory={},S=us(i,c)+o,z=await tt(i,S,Y),F=de(z);let E=zs(s,n,Tn),R=zs(s,n,kn);const A=zs(s,n,Cn);if(E=E&&E.length&&E,R=R&&R.length&&R,d&&99!=d.originalCompressionMethod)throw new w(Xn);if(0!=u&&8!=u&&9!=u&&!A)throw new w(Xn);if(z.length<Y||As(F,0)!=O)throw new w(qn);as(b,F,4);const{extraFieldLength:v,filenameLength:T}=b,k=ws(zs(s,n,Ln),zs(s,n,In))==Wn;let C=re;if(k&&(T||v)){const e=await tt(i,S+Y,T+v);C=e.subarray(0,T),b.rawExtraField=e.subarray(T)}else b.rawExtraField=v?await tt(i,S+Y+T,v):re;os(s,b,F,4,!0),k&&((e,t,r)=>{const{rawFilename:n}=e;(r.length!=n.length||r.some((e,t)=>e!=n[t]))&&Ss("mismatched local file header (filename)"),(2057&t.rawBitFlag)!=(2057&e.rawBitFlag)&&Ss("mismatched local file header (general purpose bit flag)"),t.compressionMethod!=e.compressionMethod&&Ss("mismatched local file header (compression method)"),t.bitFlag.dataDescriptor||!(t.signature||t.compressedSize||t.uncompressedSize)||t.signature==e.signature&&t.compressedSize==e.compressedSize&&t.uncompressedSize==e.uncompressedSize||Ss("mismatched local file header (signature or sizes)")})(s,b,C);const{lastAccessDate:U,creationDate:M}=b;U&&(t.lastAccessDate=U),M&&(t.creationDate=M);const _=s.encrypted&&b.encrypted&&!A,P=_&&!d;if(A||(t.zipCrypto=P),_){if(!P&&d.strength===Q)throw new w(Yn);if(!E&&!R)throw new w(Gn)}const L=S+Y+T+v,W=g,Z=i.createReadable({offset:L,size:W}),B=zs(s,n,Un),V=zs(s,n,"checkPasswordOnly");let H=zs(s,n,"checkOverlappingEntry");const j=zs(s,n,"checkOverlappingEntryOnly");j&&(H=!0);const{onstart:q,onprogress:K,onend:G}=n,X=9==u;let J=zs(s,n,Mn);X&&(J=!1);const $={options:{codecType:mr,password:E,rawPassword:R,zipCrypto:P,encryptionStrength:d&&d.strength,signed:zs(s,n,"checkSignature")&&!A,passwordVerification:P&&(x?m>>>8&I:h>>>24&I),outputSize:A?g:y,signature:h,compressed:0!=u&&!A,encrypted:_,useWebWorkers:zs(s,n,On),useCompressionStream:J,transferStreams:zs(s,n,Nn),deflate64:X,checkPasswordOnly:V},config:f,me:{signal:B,size:W,onstart:q,onprogress:K,onend:G}};let ee;H&&await(async({reader:e,Ne:t,index:r,offset:n,signature:s,compressedSize:i,uncompressedSize:a,_e:o,dataDescriptor:c,extraFieldZip64:d,Ue:l})=>{let u=0;if(c&&(u=d?20:12),u){const r=await tt(e,o+i,u+4);if(r.length==u+4&&As(de(r),0)==N){const e=As(de(r),4);let n,o;d?(n=vs(de(r),8),o=vs(de(r),16)):(n=As(de(r),8),o=As(de(r),12)),(t.encrypted&&!t.zipCrypto||e==s)&&n==i&&o==a&&(u+=4)}}const f={start:n,end:o+i+u,Ne:t};for(const[e,t]of l)if(e!=r&&f.start<t.end&&t.start<f.end){const e=new w(Qn);throw e.Pe=t.Ne,e}l.set(r,f)})({reader:i,Ne:t,index:a,offset:S,signature:h,compressedSize:g,uncompressedSize:y,_e:L,dataDescriptor:x||b.bitFlag.dataDescriptor,extraFieldZip64:l||b.extraFieldZip64,Ue:r});try{if(!j){V&&(e=new D),e=new $e(e),await et(e,A?g:y),({writable:ee}=e);const{outputSize:t}=await Wr({readable:Z,writable:ee},$);if(e.size+=t,t!=(A?g:y))throw new w(ir)}}catch(t){if(t.outputSize!==Q&&(e.size+=t.outputSize),!V||t.message!=St)throw t}finally{zs(s,n,_n)||!ee||ee.locked||await ee.getWriter().close()}return V||j?Q:e.getData?e.getData():ee}};function as(e,t,n){const s=e.rawBitFlag=Ds(t,n+2),i=!(1&~s),a=As(t,n+6);r.assign(e,{encrypted:i,version:Ds(t,n),bitFlag:{level:(6&s)>>1,dataDescriptor:!(8&~s),languageEncodingFlag:(s&H)==H},rawLastModDate:a,lastModDate:Fs(a),filenameLength:Ds(t,n+22),extraFieldLength:Ds(t,n+24)})}function os(e,t,n,s,i){const{rawExtraField:a}=t,d=t.extraField=new c,l=de(a);let u=0;try{for(;u<a.length;){const e=Ds(l,u),t=Ds(l,u+2);d.set(e,{type:e,data:a.slice(u+4,u+4+t)}),u+=4+t}}catch{}const f=Ds(n,s+4);r.assign(t,{signature:As(n,s+10),compressedSize:As(n,s+14),uncompressedSize:As(n,s+18)});const p=d.get(1);p&&(((e,t)=>{t.zip64=!0;const r=de(e.data),n=rs.filter(([e,r])=>t[e]==r),s=n.reduce((e,[,t])=>e+ns[t].bytes,0);if(e.data.length<s)throw new w(Kn);for(let s=0,i=0;s<n.length;s++){const[a,o]=n[s],c=ns[o];t[a]=e[a]=c.Ce(r,i),i+=c.bytes}})(p,t),t.extraFieldZip64=p);const h=d.get(28789);h&&(cs(h,Gr,Yr,t,e),t.extraFieldUnicodePath=h);const m=d.get(25461);m&&(cs(m,Xr,Jr,t,e),t.extraFieldUnicodeComment=m);const y=d.get(39169);y&&y.data.length>=7?(((e,t,n)=>{const s=de(e.data),i=Rs(s,4);r.assign(e,{Le:Rs(s,0),vendorId:Rs(s,2),strength:i,originalCompressionMethod:n,compressionMethod:Ds(s,5)}),t.compressionMethod=e.compressionMethod})(y,t,f),t.extraFieldAES=y):t.compressionMethod=f;const g=d.get(10);g&&(((e,t)=>{const n=de(e.data);let s,i=4;try{for(;i<e.data.length&&!s;){const t=Ds(n,i),r=Ds(n,i+2);1==t&&(s=e.data.slice(i+4,i+4+r)),i+=4+r}}catch{}try{if(s&&24==s.length){const n=de(s),i=n.getBigUint64(0,!0),a=n.getBigUint64(8,!0),o=n.getBigUint64(16,!0);r.assign(e,{rawLastModDate:i,rawLastAccessDate:a,rawCreationDate:o});const c={lastModDate:Es(i),lastAccessDate:Es(a),creationDate:Es(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(g,t),t.extraFieldNTFS=g);const x=d.get(30805);if(x)ds(x,t,!1),t.extraFieldUnix=x;else{const e=d.get(30837);e&&(ds(e,t,!0),t.extraFieldInfoZip=e)}const b=d.get(V);b&&(((e,t,r)=>{if(!e.data.length)return;const n=de(e.data),s=Rs(n,0),i=[],a=[];r?(1&~s||(i.push(rn),a.push(nn)),2&~s||(i.push(sn),a.push("rawLastAccessDate")),4&~s||(i.push(an),a.push(on))):5>e.data.length||(i.push(rn),a.push(nn));let c=1;i.forEach((r,s)=>{if(e.data.length>=c+4){const i=As(n,c);t[r]=e[r]=new o(1e3*(0|i));const d=a[s];e[d]=i}c+=4})})(b,t,i),t.extraFieldExtendedTimestamp=b);const S=d.get(6534);S&&(t.extraFieldUSDZ=S)}function cs(e,t,n,s,i){if(5>e.data.length)return void(e.valid=!1);const a=de(e.data),o=new ut;o.append(i[n]);const c=de(new f(4));c.setUint32(0,o.get(),!0);const d=As(a,1);r.assign(e,{version:Rs(a,0),[t]:Kr(e.data.subarray(5)),valid:!i.bitFlag.languageEncodingFlag&&d==As(c,0)}),e.valid&&(s[t]=e[t],s[t+"UTF8"]=!0)}function ds(e,t,n){try{const s=de(e.data);let i,a;if(n){let t=0;const n=Rs(s,t++),o=Rs(s,t++);i=ls(e.data.subarray(t,t+o)),t+=o;const c=Rs(s,t++);a=ls(e.data.subarray(t,t+c)),r.assign(e,{version:n,uid:i,gid:a})}else 4>e.data.length||(i=Ds(s,0),a=Ds(s,2),r.assign(e,{uid:i,gid:a}));i!==Q&&(t.uid=i),a!==Q&&(t.gid=a)}catch{}}function ls(e){const t=new f(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function us(e,t){return e.A?e.A(t):0}function ws(e,t){return e===Q?t?Wn:"balanced":e}const fs=64,ps=0,hs=1,ms=2;async function*ys(e,t){const r=e.size-t,n=await tt(e,r,t),s=de(n);for(let e=n.length-Z;e>=0;e--)As(s,e)==P&&(yield[s,r,n,e,r+e])}function gs(e,t,r){return{offset:r,buffer:e.slice(t,t+Z).buffer}}async function xs(e,t,r,n,s,i,a){const o=Ds(t,n+10),c=As(t,n+12),d=As(t,n+16);if(o==U||c==C||d==C)return await bs(e,t,r,s-B,i,a)==W?ms:ps;if(!o&&!c)return hs;const l=Ds(t,n+6);for(const n of[s-c,us(e,l)+d])if(await bs(e,t,r,n,i,a)==_)return ms;return ps}async function bs(e,t,r,n,s,i){return 0>n||n+4>s?Q:r>n?i.count>0?(i.count--,As(de(await tt(e,n,4)),0)):Q:As(t,n-r)}function Ss(e){const t=new w($n);throw t.reason=e,t}function zs(e,t,r){return t[r]===Q?e.options[r]:t[r]}function Fs(e){const t=(4294901760&e)>>16,r=e&U;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{}}function Es(e){return new o(s(e/i(1e4)-i(116444736e5)))}function Rs(e,t){return e.getUint8(t)}function Ds(e,t){return e.getUint16(t,!0)}function As(e,t){return e.getUint32(t,!0)}function vs(e,t){return s(e.getBigUint64(t,!0))}var Ts=r.freeze({__proto__:null,ERR_AMBIGUOUS_ARCHIVE:$n,ERR_BAD_FORMAT:Bn,ERR_CENTRAL_DIRECTORY_NOT_FOUND:jn,ERR_ENCRYPTED:Gn,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:Hn,ERR_EOCDR_NOT_FOUND:Vn,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:Kn,ERR_INVALID_COMPRESSED_DATA:ar,ERR_INVALID_PASSWORD:xt,ERR_INVALID_SIGNATURE:bt,ERR_INVALID_UNCOMPRESSED_SIZE:ir,ERR_LOCAL_FILE_HEADER_NOT_FOUND:qn,ERR_OVERLAPPING_ENTRY:Qn,ERR_SPLIT_ZIP_FILE:Jn,ERR_UNSUPPORTED_COMPRESSION:Xn,ERR_UNSUPPORTED_ENCRYPTION:Yn,ZipReader:ss});const ks="Zip file comment exceeds 64KB",Cs="Version exceeds 65535",Us="Extra field data exceeds 64KB",Is=-2147483648,Os=2147483647,Ms="Zip64 is not supported (set the 'zip64' option to 'true')",Ns=new f([7,0,2,0,65,69,3,0,0]),_s="infozip",Ps="unix";let Ls=0;const Ws=[];class Zs{constructor(e,t={}){e=new $e(e);const{availableSize:n=$,maxSize:s=$}=e,i=n>0&&n!==$&&s>0&&s!==$;r.assign(this,{writer:e,We:i,options:t,config:ie(),files:new c,Ze:new d,offset:t[Pn]===Q?e.size||e.writable.size||0:t[Pn],Be:t[Pn]===Q?0:t[Pn]-(e.size||e.writable.size||0),Ve:new d,He:0,je:Q})}async prependZip(e){if(this.Ze.size)throw new w("Zip file not empty");e=new Qe(e),await et(e);const{ZipReader:t}=await g.resolve().then(()=>Ts),n=new t(e.readable),s=await n.getEntries();await n.close(),await et(this.writer),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.Ze=new d(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,rawLastModDate:n,lastAccessDate:s,creationDate:i,rawFilename:a,bitFlag:o,encrypted:c,uncompressedSize:d,compressedSize:l,zip64:u}=e;let{compressionMethod:w,qe:f,Ke:p,Ge:h,Ye:m,Xe:y,rawExtraField:g}=e;const{level:x,languageEncodingFlag:b,dataDescriptor:S}=o;f=f||re,p=p||re,h=h||re,m=m||re,y=y||re,g=g||re,e.extraFieldAES&&(w=99);const z=ai(f,p,h,m,y,g),F=u&&d>=C,E=u&&l>=C,R=-7&ci(x,b,S,c,w)|x<<1,{Je:D,Qe:A}=oi({version:t,bitFlag:R,compressionMethod:w,uncompressedSize:d,compressedSize:l,rawLastModDate:n,rawFilename:a,$e:E,et:F,extraFieldLength:z}),{signature:v}=e;return v!==Q&&ni(A,10,v),r.assign(e,{et:F,$e:E,nt:u&&e.offset>=C,diskNumberStart:0,st:!1,qe:f,Ke:p,Ge:h,Ye:m,Xe:y,rawExtraField:g,extendedTimestamp:h.length>0||m.length>0,it:1+(s?2:0)+(i?4:0),Je:D,Qe:A}),[e.filename,e]}))}async add(e="",t,n={}){const s=this;n=r.assign({},n);const{Ve:a,config:c}=s;let d,l;Ls<c.maxWorkers?Ls++:await new g(e=>Ws.push(e));try{if(e=e.trim(),ei(s,n,gn)&&!e.endsWith(G)&&(e+=G),s.Ze.has(e))throw new w("File already exists");return s.Ze.add(e),l=!0,d=(async(e,t,n,s)=>{const a=((e,t,r)=>{t=t.trim();let n=ei(e,r,wn),s=ei(e,r,mn,n?20:768);const i=ei(e,r,xn),a=ei(e,r,"uid"),o=ei(e,r,"gid");let c=ei(e,r,Fn),d=ei(e,r,"unixExtraFieldType"),l=ei(e,r,En),u=ei(e,r,Rn),f=ei(e,r,Dn);if(a!==Q&&(0>a||a>C))throw new w("Invalid uid (must be integer 0..2^32-1)");if(o!==Q&&(0>o||o>C))throw new w("Invalid gid (must be integer 0..2^32-1)");if(c!==Q&&(0>c||c>U))throw new w("Invalid UNIX mode (must be integer 0..65535)");if(d!==Q&&d!==_s&&d!==Ps)throw new w("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");if(d===Ps&&(a!==Q&&a>U||o!==Q&&o>U))throw new w("uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)");d!==Q||a===Q&&o===Q||(d=_s);let p=ei(e,r,ln),h=ei(e,r,un);const m=p!==Q||h!==Q;if(a!==Q||o!==Q||c!==Q||d?(n=!1,s=s&U|768):m&&(n=!0,s&=I),p!==Q&&(0>p||p>I))throw new w("Invalid msdosAttributesRaw (must be integer 0..255)");if(h&&"object"!=typeof h)throw new w("Invalid msdosAttributes (must be an object with boolean flags)");if(s>U)throw new w(Cs);let y=ei(e,r,dn,0);!r[gn]&&t.endsWith(G)&&(r[gn]=!0);const g=ei(e,r,gn);let x;return g?(t.endsWith(G)||(t+=G),0===y&&(y=16,n||(y|=16877<<16))):n||0!==y||(y=i?493<<16:27525120),n||(x=y>>16&U,c=c===Q?x:c&U,l?c|=q:l=!!(c&q),u?c|=K:u=!!(c&K),f?c|=512:f=!!(512&c),g&&(c|=j),y=(c&U)<<16|y&I),({msdosAttributesRaw:p,msdosAttributes:h}=((e,t)=>{if(e!==Q)e&=I;else if(t!==Q){const{readOnly:r,hidden:n,system:s,directory:i,archive:a}=t;let o=0;r&&(o|=1),n&&(o|=2),s&&(o|=4),i&&(o|=16),a&&(o|=32),e=o&I}return t===Q&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(p,h)),m&&(y=y&C|p&I),{name:t,ot:{versionMadeBy:s,msDosCompatible:n,externalFileAttributes:y,unixExternalUpper:x,uid:a,gid:o,unixMode:c,unixExtraFieldType:d,setuid:l,setgid:u,sticky:f,msdosAttributesRaw:p,msdosAttributes:h}}})(e,t,s);({name:t}=a);const c=((e,t,r)=>{const n=ei(e,r,"encodeText",ft);let s=n(t);if(s===Q&&(s=ft(t)),ai(s)>U)throw new w("File entry name exceeds 64KB");const i=r[Xr]||"";let a=n(i);if(a===Q&&(a=ft(i)),ai(a)>U)throw new w("File entry comment exceeds 64KB");const c=ei(e,r,hn,20);if(c>U)throw new w(Cs);const d=ei(e,r,rn,new o),l=ei(e,r,sn),u=ei(e,r,an),p=ei(e,r,cn,0),h=ei(e,r,Cn);let m,y;h||(m=ei(e,r,Tn),y=ei(e,r,kn));const g=ei(e,r,"encryptionStrength",3),x=ei(e,r,yn),b=ei(e,r,"extendedTimestamp",!0),S=ei(e,r,"keepOrder",!0),z=ei(e,r,On),F=ei(e,r,Nn),E=ei(e,r,"bufferedWrite"),R=ei(e,r,"createTempStream"),D=ei(e,r,"dataDescriptorSignature",!0),A=ei(e,r,Un),v=ei(e,r,"useUnicodeFileNames",!0),T=ei(e,r,bn);if(!h&&T!==Q&&0!==T&&8!==T)throw new w("Compression method not supported");let k=ei(e,r,"level"),C=ei(e,r,Mn),I=ei(e,r,"dataDescriptor");E&&I===Q&&(I=!1),(I===Q||x)&&(I=!0),k!==Q&&6!=k&&(C=!1),C||e.config.CompressionStream!==Q||e.config.CompressionStreamZlib!==Q||(k=0);const O=ei(e,r,fn);if(!x&&(m!==Q||y!==Q)&&(1>g||g>3))throw new w("The strength must equal 1, 2, or 3");let M=re;const N=r[zn];if(N){let e=0,t=0;N.forEach(t=>e+=4+ai(t)),M=new f(e);const r=de(M);N.forEach((e,n)=>{if(n>U)throw new w("Extra field type exceeds 65535");if(ai(e)>U)throw new w(Us);ri(r,t,n),ri(r,t+2,ai(e)),ii(M,e,t+4),t+=4+ai(e)})}return{comment:i,ot:{rawFilename:s,rawComment:a,version:c,lastModDate:d,lastAccessDate:l,creationDate:u,internalFileAttributes:p,passThrough:h,password:m,rawPassword:y,encryptionStrength:g,zipCrypto:x,extendedTimestamp:b,keepOrder:S,useWebWorkers:z,transferStreams:F,bufferedWrite:E,createTempStream:R,dataDescriptorSignature:D,signal:A,useUnicodeFileNames:v,compressionMethod:T,level:k,useCompressionStream:C,dataDescriptor:I,zip64:O,rawExtraField:M}}})(e,t,s),{comment:d}=c,l=s[zn];let u;e.files.set(t,Q);try{const o=await(async(e,t,{ot:r},n)=>{const{passThrough:s,zipCrypto:i,password:a,rawPassword:o,encryptionStrength:c}=r;let{dataDescriptor:d,zip64:l,level:u,compressionMethod:f}=r,p=0,h=0;if(s){if(!t)throw new w("Undefined reader");if(h=n[Qr],h===Q)throw new w("Undefined uncompressed size")}const m=!0===l,y=ei(e,n,pn),g=!!t&&(!!(a&&ai(a)||o&&ai(o))||s&&y);t||(u=0,f=0);const x=g?i?12:16+4*c:0;t&&(t=new Qe(t),await et(t),s?(n.uncompressedSize=h,p=ti(h)+x):t.size===Q?(d=!0,(l||l===Q)&&(l=!0,h=p=4294967296)):(n.uncompressedSize=h=t.size,p=ti(h)+x));const b=m||h>=C,S=m||p>=C;if(b||S){if(!1===l)throw new w(Ms);l=!0}return l=l||!1,{reader:t,ot:{dataDescriptor:d,zip64:l,et:b,$e:S,uncompressedSize:h,level:u,compressionMethod:f,encrypted:g}}})(e,n,c,s);({reader:n}=o);const d=qs(e.writer),l=js(e.writer),p=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:n,creationDate:s,level:i,zip64:a,zipCrypto:o,useUnicodeFileNames:c,dataDescriptor:d,directory:l,rawExtraField:u,encryptionStrength:f,extendedTimestamp:p,passThrough:h,encrypted:m,et:y,$e:g,uncompressedSize:x}=e;let{version:b,compressionMethod:S}=e;const z=!l&&(S===Q?i===Q||i>0:0!==S);let F;const E=h||!z,R=a&&(e.bufferedWrite||!d||!y&&!g||E),D=R||a&&d&&(y||g);if(a&&(y||g)){const e=20,t=Hs(e);if(t.uint16(1),t.uint16(e-4),F=t.array,R&&(t.ct(x),E)){const e=m?o?12:16+4*f:0;t.ct(h?0:x+e)}}else F=re;let A,v,T,k,C;if(m&&!o){const e=Hs(ai(Ns)+2);e.uint16(39169),e.bytes(Ns),A=e.array,A[8]=f}else A=re;if(p){const e=Js(r);if(Qs(e)){const t=9+(n?4:0)+(s?4:0),r=Hs(t);k=1+(n?2:0)+(s?4:0),r.uint16(V),r.uint16(t-4),r.uint8(k),r.uint32(e),n&&r.uint32($s(Js(n))),s&&r.uint32($s(Js(s))),T=r.array}else T=re;try{const e=Xs(r),t=Hs(36);t.uint16(10),t.uint16(32),t.lt(4),t.uint16(1),t.uint16(24),t.ct(e),t.ct(Xs(n)||e),t.ct(Xs(s)||e),v=t.array}catch{v=re}}else v=T=re;try{const{uid:t,gid:r,unixExtraFieldType:n}=e;if(n!=_s||t===Q&&r===Q)if(n!=Ps||t===Q&&r===Q)C=re;else{const e=Hs(8);e.uint16(30805),e.uint16(4),e.uint16((t===Q?0:t)&U),e.uint16((r===Q?0:r)&U),C=e.array}else{const e=Vs(t),n=Vs(r),s=3+e.length+n.length,i=Hs(4+s);i.uint16(30837),i.uint16(s),i.uint8(1),i.uint8(e.length),i.bytes(e),i.uint8(n.length),i.bytes(n),C=i.array}}catch{C=re}S===Q&&(S=z?8:0),a&&(b=b>45?b:45),m&&!o&&(b=b>51?b:51,A[9]=S,S=99);const I=D?ai(F):0,M=I+ai(A,T,v,C,u);if(M>U)throw new w(Us);const{Je:N,Qe:_,rawLastModDate:P}=oi({version:b,bitFlag:ci(i,c,d,m,S),compressionMethod:S,uncompressedSize:x,lastModDate:J>r?J:r>X?X:r,rawFilename:t,$e:g,et:y,extraFieldLength:M}),L=Hs(Y+ai(t)+M),W=L.array,Z=de(W);return L.uint32(O),L.bytes(N),L.bytes(t),D&&L.bytes(F),L.bytes(A),L.bytes(T),L.bytes(v),L.bytes(C),L.bytes(u),d&&(g||ni(Z,18,0),y||ni(Z,22,0)),{ut:W,wt:Z,Je:N,Qe:_,lastModDate:r,rawLastModDate:P,encrypted:m,compressed:z,version:b,compressionMethod:S,it:k,qe:re,ft:I,Ge:T,Ye:v,Xe:C,Ke:A,extraFieldLength:M}})(s=r.assign({},s,a.ot,c.ot,o.ot,{internalFileAttribute:c.ot.internalFileAttributes,externalFileAttribute:a.ot.externalFileAttributes,signature:s[Sn],offset:e.offset-d,diskNumberStart:l})),h=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:r})=>{let n,s=re,i=0,a=e?20:12;return r&&(a+=4),t&&(s=new f(a),n=de(s),r&&(i=4,ni(n,0,N))),{ht:s,yt:n,gt:i}})(s),m=ai(p.ut,h.ht);u=await(async(e,t,n,s,a)=>{const{files:o,writer:c}=e,{keepOrder:d,dataDescriptor:l,signal:u}=a,{xt:p}=s,h=e.options.usdz,m=e.je;let y,x,b,S,z,F,R,A={},v=0;o.set(t,A),e.je=A;try{let x;d&&(x=m&&m.lock,A.lock=new g(e=>b=e)),a.bufferedWrite||!d||e.bt||e.He||!l?(y=!0,e.He++,R=a.createTempStream?await a.createTempStream():new E(Q,Q,{highWaterMark:$}),R.size=0,await et(c)):(R=c,await T()),await et(R);const U=qs(c);if(e.We){delete e.We;const t=new f(4);ni(de(t),0,M),await Ys(c,t),e.offset+=4}h&&!y&&Bs(s,e.offset-U);const{ut:O}=p;y||(await x,await k());const N=js(c),_=Gs(e,c);if(A.diskNumberStart=N,y||(z=!0,F=c.size,await Ys(R,O)),A=await(async(e,t,{diskNumberStart:n,lock:s},a,o,c)=>{const{xt:d,St:l,zt:u}=a,{Je:f,Qe:p,lastModDate:h,rawLastModDate:m,encrypted:y,compressed:g,version:x,compressionMethod:b,qe:S,ft:z,Ge:F,it:E,Ye:R,Xe:D,Ke:A}=d,{ht:v}=l,{rawFilename:T,lastAccessDate:k,creationDate:U,password:O,rawPassword:M,level:N,zip64:_,et:P,$e:L,zipCrypto:W,dataDescriptor:Z,directory:B,executable:V,versionMadeBy:H,rawComment:j,rawExtraField:q,useWebWorkers:K,transferStreams:G,onstart:Y,onprogress:X,onend:J,signal:$,encryptionStrength:ee,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:ne,externalFileAttributes:se,uid:ie,gid:ae,unixMode:oe,setuid:ce,setgid:de,sticky:le,unixExternalUpper:ue,msdosAttributesRaw:we,msdosAttributes:fe,useCompressionStream:pe,passThrough:he}=c,me={lock:s,versionMadeBy:H,zip64:_,directory:!!B,executable:!!V,filenameUTF8:!0,rawFilename:T,commentUTF8:!0,rawComment:j,qe:S,ft:z,Ge:F,Ye:R,Xe:D,Ke:A,rawExtraField:q,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:ne,externalFileAttributes:se,diskNumberStart:n,uid:ie,gid:ae,unixMode:oe,setuid:ce,setgid:de,sticky:le,unixExternalUpper:ue,msdosAttributesRaw:we,msdosAttributes:fe};let{signature:ye,uncompressedSize:ge}=c,xe=0;he||(ge=0);const{writable:be}=t;if(e){const r=e.createReadable?e.createReadable():e.readable,n=e.size,s={options:{codecType:hr,level:N,rawPassword:M,password:O,encryptionStrength:ee,zipCrypto:y&&W,passwordVerification:y&&W&&m>>8&I,signed:!he,compressed:g&&!he,encrypted:y&&!he,useWebWorkers:K,useCompressionStream:pe,transferStreams:G},config:o,me:{signal:$,size:n,onstart:Y,onprogress:X,onend:J}};try{const e=await Wr({readable:r,writable:be},s);if(xe=e.outputSize,t.size+=xe,he||(ge=e.inputSize,ye=e.signature),!L&&xe>=C||!P&&ge>=C)throw new w(Ms)}catch(e){throw e.outputSize!==Q&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:r,xt:n,St:s},{zip64:a,zipCrypto:o,dataDescriptor:c})=>{const{Qe:d,encrypted:l}=n,{yt:u,gt:w}=s;l&&!o||e===Q||(ni(d,10,e),c&&ni(u,w,e)),a?c&&(si(u,w+4,i(t)),si(u,w+12,i(r))):(ni(d,14,t),ni(d,18,r),c&&(ni(u,w+4,t),ni(u,w+8,r)))})({signature:ye,compressedSize:xe,uncompressedSize:ge,xt:d,St:l},c),Z&&await Ys(t,v),r.assign(me,{uncompressedSize:ge,compressedSize:xe,lastModDate:h,rawLastModDate:m,creationDate:U,lastAccessDate:k,encrypted:y,zipCrypto:W,size:u+xe,compressionMethod:b,version:x,Je:f,Qe:p,signature:ye,it:E,et:P,$e:L}),me})(n,R,A,s,e.config,a),y||(z=!1),o.set(t,A),A.filename=t,y){if(await g.all([R.writable.getWriter().close(),x]),await T(),S=!0,F=c.size,await k(),A.diskNumberStart=js(c),A.offset=Gs(e,c),h){const t=s.zt;Bs(s,e.offset-qs(c)),A.size+=s.zt-t}(({rawFilename:e,encrypted:t,zip64:r,ft:n,signature:s,compressedSize:a,uncompressedSize:o,et:c,$e:d},l,{dataDescriptor:u})=>{if(u||(t||ni(l,14,s),d||ni(l,18,a),c||ni(l,22,o)),r&&n){const t=Y+ai(e)+4;si(l,t,i(o)),si(l,t+8,i(a))}})(A,p.wt,a),await Ys(c,p.ut),await(async(e,t,r)=>{const n=t.writable.getWriter();try{await e.pipeTo(new D({async write(e){var t;await n.ready,await n.write(e),t=ai(e),v+=t}}),{preventClose:!0,preventAbort:!0,signal:r})}finally{n.releaseLock()}})(R.readable,c,u),c.size+=R.size,S=!1}else A.diskNumberStart=N,A.offset=_;return e.offset+=A.size,A}catch(r){if(S||z){if(e.hasCorruptedEntries=!0,r)try{r.corruptedEntry=!0}catch{}e.offset+=c.size-F,y&&(e.offset+=v)}throw o.delete(t),r}finally{if(y&&e.He--,b&&b(),x&&x(),y&&R&&R.dispose)try{await R.dispose()}catch{}}async function T(){e.bt=!0;const{Ft:t}=e;e.Ft=new g(t=>x=()=>{e.bt=!1,t()}),await t}async function k(){Ks(c,ai(p.ut))&&await c.closeDisk()}})(e,t,n,{xt:p,St:h,zt:m},s)}catch(r){throw e.files.delete(t),r}return r.assign(u,{name:t,comment:d,extraField:l}),new vn(u)})(s,e,t,n),a.add(d),await d}catch(t){throw l&&s.Ze.delete(e),t}finally{a.delete(d);const e=Ws.shift();e?e():Ls--}}remove(e){const{Ze:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==Q){const{filename:n}=e;if(t.has(n)&&r.has(n))return t.delete(n),r.delete(n),!0}return!1}async close(e=re,r={}){const{Ve:n,writer:s}=this,{writable:a}=s;if(ai(e)>U)throw new w(ks);for(;n.size;)await g.allSettled(t.from(n));return await(async(e,r,n)=>{const s=(e=>{let t=0;for(const[,r]of e){const{rawFilename:e,Ke:n,rawComment:s,Ye:i,Xe:a,rawExtraField:o,extendedTimestamp:c,it:d,lastModDate:l,et:u,$e:f,uncompressedSize:p,compressedSize:h}=r,m=r.offset>=C,y=r.diskNumberStart>=U;let g,x;if(m||y||u||f){const e=4+(u?8:0)+(f?8:0)+(m?8:0)+(y?4:0),t=Hs(e);t.uint16(1),t.uint16(e-4),u&&t.ct(p),f&&t.ct(h),m&&t.ct(r.offset),y&&t.uint32(r.diskNumberStart),g=t.array}else g=re;r.qe=g,r.nt=m,r.st=y;const b=Js(l);if(c&&Qs(b)){const e=Hs(9);e.uint16(V),e.uint16(5),e.uint8(d),e.uint32(b),x=e.array}else x=re;r.Ge=x;const S=ai(g,n,i,a,x,o);if(S>U)throw new w(Us);t+=46+ai(e,s)+S}return t})(e.files),a=await(async(e,r,n)=>{const{files:s,writer:i}=e,a=new f(r);await et(i);let o=0,c=0,d=js(i),l=qs(i);for(const[e,r]of t.from(s.values()).entries()){const{offset:t,rawFilename:u,qe:w,Ke:f,Ge:p,Ye:h,Xe:m,rawExtraField:y,rawComment:g,versionMadeBy:x,Je:b,Qe:S,et:z,$e:F,st:E,nt:R,internalFileAttributes:D,externalFileAttributes:A,diskNumberStart:v,uncompressedSize:T,compressedSize:k}=r,I=ai(w,f,p,h,m,y),O=46+ai(u,g)+I;Ks(i,o+O-c)&&(await Ys(i,a.slice(c,o)),c=o,await i.closeDisk()),0==e&&(d=js(i),l=qs(i)),z||ni(S,18,T),F||ni(S,14,k),(R||E)&&45>r.version&&ri(S,0,45);const M=Hs(O);if(M.uint32(_),M.uint16(x),M.bytes(b.subarray(0,24)),M.uint16(I),M.uint16(ai(g)),M.uint16(E?U:v),M.uint16(D),M.uint32(A),M.uint32(R?C:t),M.bytes(u),M.bytes(w),M.bytes(f),M.bytes(p),M.bytes(h),M.bytes(m),M.bytes(y),M.bytes(g),ii(a,M.array,o),o+=O,n.onprogress)try{await n.onprogress(e+1,s.size,new vn(r))}catch{}}return await Ys(i,c?a.slice(c):a),{diskNumber:d,diskOffset:l}})(e,s,n);await(async(e,t,r,n)=>{const{writer:s}=e,{Et:a}=n;let{Rt:o}=n,c=e.files.size,d=a.diskNumber,l=Gs(e,a),u=js(s);Ks(s,Z)&&u++;let f=ei(e,r,fn);if(!(C>l&&C>o&&U>c&&U>u)){if(!1===f)throw new w(Ms);f=!0}const p=ai(t);if(p>U)throw new w(ks);const h=Hs(f?98:Z);Ks(s,ai(h.array)+p)&&await s.closeDisk(),u=js(s),f&&(h.uint32(L),h.ct(44),h.uint16(45),h.uint16(45),h.uint32(u),h.uint32(d),h.ct(c),h.ct(c),h.ct(o),h.ct(l),h.uint32(W),h.uint32(u),h.ct(i(Gs(e,s))+i(o)),h.uint32(u+1),ei(e,r,"supportZip64SplitFile",!0)&&(u=U,d=U),c=U,l=C,o=C),h.uint32(P),h.uint16(u),h.uint16(d),h.uint16(c),h.uint16(c),h.uint32(o),h.uint32(l),h.uint16(p),await Ys(s,h.array),p&&await Ys(s,t)})(e,r,n,{Et:a,Rt:s})})(this,e,r),ei(this,r,_n)||await a.getWriter().close(),s.getData?s.getData():a}}function Bs(e,t){const{xt:r}=e;let{ut:n,extraFieldLength:s}=r,i=64-(t+ai(n))%64;4>i&&(i+=64);const a=new f(i),o=de(a);ri(o,0,6534),ri(o,2,i-4);const c=n;r.ut=n=new f(ai(c)+i),ii(n,c),ii(n,a,ai(c));const d=de(n);ri(d,28,s+i),r.wt=d,e.zt+=i}function Vs(e){if(e===Q)return re;{const t=new f(4);de(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function Hs(e){const t=new f(e),r=de(t);let n=0;return{array:t,uint8:e=>{((e,t,r)=>{e.setUint8(t,r)})(r,n,e),n+=1},uint16:e=>{ri(r,n,e),n+=2},uint32:e=>{ni(r,n,e),n+=4},ct:e=>{si(r,n,i(e)),n+=8},bytes:e=>{ii(t,e,n),n+=ai(e)},lt:e=>n+=e}}function js(e){const{diskNumber:t=0}=e;return t}function qs(e){const{diskOffset:t=0}=e;return t}function Ks(e,t){const{availableSize:r=$}=e;return t>r}function Gs(e,{diskNumber:t=0,diskOffset:r=0}){return e.offset-r-(t?e.Be:0)}async function Ys(e,t){const{writable:r}=e,n=r.getWriter();try{await n.ready,e.size+=ai(t),await n.write(t)}finally{n.releaseLock()}}function Xs(e){if(e)return(i(e.getTime())+i(116444736e5))*i(1e4)}function Js(e){return a.floor(e.getTime()/1e3)}function Qs(e){return e>=Is&&Os>=e}function $s(e){return a.min(Os,a.max(Is,e))}function ei(e,t,r,n){const s=t[r]===Q?e.options[r]:t[r];return s===Q?n:s}function ti(e){return e+5*(a.floor(e/16383)+1)}function ri(e,t,r){e.setUint16(t,r,!0)}function ni(e,t,r){e.setUint32(t,r,!0)}function si(e,t,r){e.setBigUint64(t,r,!0)}function ii(e,t,r){e.set(t,r)}function ai(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function oi({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:n,compressedSize:s,lastModDate:i,rawLastModDate:a,rawFilename:o,$e:c,et:d,extraFieldLength:l}){const u=Hs(26),w=u.array,f=de(w);if(u.uint16(e),u.uint16(t),u.uint16(r),a===Q){const e=new h(1),t=de(e);ri(t,0,(i.getHours()<<6|i.getMinutes())<<5|i.getSeconds()/2),ri(t,2,(i.getFullYear()-1980<<4|i.getMonth()+1)<<5|i.getDate()),a=e[0]}return u.uint32(a),u.lt(4),c||s!==Q?u.uint32(c?C:s):u.lt(4),d||n!==Q?u.uint32(d?C:n):u.lt(4),u.uint16(ai(o)),u.uint16(l),{Je:w,Qe:f,rawLastModDate:a}}function ci(e,t,r,n,s){let i=0;return t&&(i|=H),r&&(i|=8),8!=s&&9!=s||(0>e||e>3||(i|=6),e>3&&5>=e&&(i|=4),9==e&&(i|=2)),n&&(i|=1),i}const di="Entry filename already exists";class li{constructor(e,t,n,s){const i=this;if(e.root&&s&&s.getChildByName(t))throw new w(di);n||(n={}),r.assign(i,{fs:e,name:t,data:n.data,options:n.options,id:e.Dt++,parent:s,children:[],uncompressedSize:n.uncompressedSize||0,passThrough:n.passThrough}),!s&&e.root||(e.entries[i.id]=i),s&&i.parent.children.push(i)}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 w(di);this.name=e}}class ui extends li{constructor(e,t,r,n){super(e,t,r,n);const s=this;s.Reader=r.Reader,s.Writer=r.Writer,r.getData&&(s.getData=r.getData)}clone(){return new ui(this.fs,this.name,this)}async getData(e,t={}){const r=this;if(!e||e.constructor==r.Writer&&r.data)return r.data;{const n=r.reader=yi(r.Reader,r.data,t),s=r.data?r.data.uncompressedSize:n.size;await g.all([et(n),et(e,s)]);const{readable:i}=n;return r.uncompressedSize=n.size,await i.pipeTo(e.writable),e.getData?e.getData():e.writable}}isPasswordProtected(){return!(!this.data||!this.data.encrypted)}async checkPassword(e,t={}){const n=this;if(!n.isPasswordProtected())return!0;try{return await n.data.getData(null,r.assign({},t,{password:e,checkPasswordOnly:!0})),!0}catch(e){if(e.message==xt)return!1;throw e}}getText(e,t){return this.getData(new Te(e),t)}getBlob(e,t){return this.getData(new Ae(e),t)}getData64URI(e,t){return this.getData(new Fe(e),t)}getUint8Array(e){return this.getData(new Ye,e)}getWritable(e=new D,t){return this.getData({writable:e},t)}async getArrayBuffer(e){return ce(await this.getUint8Array(e)).buffer}replaceBlob(e){r.assign(this,{data:e,Reader:De,Writer:Ae,reader:null})}replaceText(e){r.assign(this,{data:e,Reader:ve,Writer:Te,reader:null})}replaceData64URI(e){r.assign(this,{data:e,Reader:ze,Writer:Fe,reader:null})}replaceUint8Array(e){r.assign(this,{data:e,Reader:Ge,Writer:Ye,reader:null})}replaceReadable(e){r.assign(this,{data:null,Reader:hi(e),Writer:null,reader:null})}}class wi extends li{constructor(e,t,r,n){super(e,t,r,n),this.directory=!0}clone(e){const t=this,r=new wi(t.fs,t.name,t);return e&&(r.children=t.children.map(t=>{const n=t.clone(e);return n.parent=r,n})),r}addDirectory(e,t){return Fi(this,e,{options:t},!0)}addText(e,t,r={}){return Fi(this,e,{data:t,Reader:ve,Writer:Te,options:r,uncompressedSize:t.length})}addBlob(e,t,r={}){return Fi(this,e,{data:t,Reader:De,Writer:Ae,options:r,uncompressedSize:t.size})}addData64URI(e,t,r={}){let n=t.length;for(;"="==t.charAt(n-1);)n--;const s=t.indexOf(",")+1;return Fi(this,e,{data:t,Reader:ze,Writer:Fe,options:r,uncompressedSize:a.floor(.75*(n-s))})}addUint8Array(e,t,r={}){return Fi(this,e,{data:t,Reader:Ge,Writer:Ye,options:r,uncompressedSize:t.length})}addHttpContent(e,t,r={}){return Fi(this,e,{data:t,Reader:class extends Ke{constructor(e){super(e,r)}},options:r})}addReadable(e,t,r={}){return Fi(this,e,{Reader:hi(t),options:r})}addFileSystemEntry(e,t={}){return bi(this,e,t)}addFileSystemHandle(e,t={}){return bi(this,e,t)}addFile(e,t={}){return(t=r.assign({},t)).lastModDate||(t.lastModDate=new o(e.lastModified)),Fi(this,e.name,{data:e,Reader:()=>({readable:e.stream(),size:e.size}),options:t,uncompressedSize:e.size})}At(e,t){return Fi(this,e,t)}importBlob(e,t){return this.importZip(new De(e),t)}importData64URI(e,t){return this.importZip(new ze(e),t)}importUint8Array(e,t){return this.importZip(new Ge(e),t)}importHttpContent(e,t){return this.importZip(new Ke(e,t),t)}importReadable(e,t){return this.importZip({readable:e},t)}exportBlob(e={}){return this.exportZip(new Ae(e.mimeType||"application/zip"),e)}exportData64URI(e={}){return this.exportZip(new Fe(e.mimeType||"application/zip"),e)}exportUint8Array(e={}){return this.exportZip(new Ye,e)}async exportWritable(e=new D,t={}){return await this.exportZip({writable:e},t),e}exportFileSystemHandle(e,n={}){return(async(e,n,s)=>{const i=pi([e],"uncompressedSize"),a=new c;return await o(e,n),n;async function o(e,t){if(s.concurrent){const r=(await g.allSettled(e.children.map(e=>d(e,t)))).find(e=>"rejected"==e.status);if(r)throw r.reason}else for(const r of e.children)await d(r,t)}async function d(e,n){try{if(e.directory){const t=await n.getDirectoryHandle(e.name,{create:!0});await o(e,t)}else{const o=await n.getFileHandle(e.name,{create:!0}),c=await o.createWritable();await e.getData({writable:c},r.assign({},s,{onprogress:async r=>{if(s.onprogress){a.set(e.id,r);try{await s.onprogress(t.from(a.values()).reduce((e,t)=>e+t,0),i)}catch{}}}}))}}catch(t){throw new w(t.message+(e?" ("+e.name+")":""),{cause:t})}}})(this,e,n)}async importZip(e,t={}){await et(e);const n=new ss(e,t),s=[],i=await n.getEntries();for(const e of i){let n=this;try{const i=e.filename.split("/"),a=i.pop();if(i.forEach(e=>{const t=n;if(n=n.getChildByName(e),n){if(!n.directory)throw new w(di)}else n=new wi(this.fs,e,{data:null},t),s.push(n)}),e.directory){let t=n;if(a)if(t=n.getChildByName(a),t){if(!t.directory)throw new w(di)}else t=new wi(this.fs,a,{data:null},n),s.push(t);t==this||t.data||(t.data=e)}else s.push(Fi(n,a,{data:e,Reader:mi(r.assign({},t)),uncompressedSize:e.uncompressedSize,passThrough:t.passThrough}))}catch(t){try{t.cause={entry:e}}catch{}throw t}}return s}async exportZip(e,n={}){const s=this;(n=r.assign({},n)).bufferedWrite===Q&&(n.bufferedWrite=!0);const[i]=await g.all([gi(s,n.readerOptions),et(e)]),a=new Zs(e,n);return await(async(e,n,s,i,a)=>{const o=n,d=new c;await async function e(n,c){async function l(c){const l=i.relativePath?c.getRelativeName(o):c.getFullname(),u=c.options||{};let w={};if(c.data instanceof vn){const{externalFileAttributes:e,versionMadeBy:t,comment:n,lastModDate:s,creationDate:i,lastAccessDate:a,uncompressedSize:o,encrypted:d,zipCrypto:l,signature:u,compressionMethod:f,extraFieldAES:p}=c.data;if(w={externalFileAttributes:e,versionMadeBy:t,comment:n,lastModDate:s,creationDate:i,lastAccessDate:a},c.passThrough){let e,t;0===f&&(e=0),p&&(t=p.strength),w=r.assign(w,{passThrough:!0,encrypted:d,zipCrypto:l,signature:u,uncompressedSize:o,level:e,encryptionStrength:t,compressionMethod:f})}}await n.add(l,a.get(c),r.assign({},i,w,u,{directory:c.directory,onprogress:async e=>{if(i.onprogress){d.set(l,e);try{await i.onprogress(t.from(d.values()).reduce((e,t)=>e+t),s)}catch{}}}})),await e(n,c)}await(async()=>{if(i.bufferedWrite){const e=(await g.allSettled(c.children.map(l))).find(e=>"rejected"==e.status);if(e)throw e.reason}else for(const e of c.children)await l(e)})()}(e,n)})(a,s,pi([s],"uncompressedSize"),n,i),await a.close(),e.getData?e.getData():e.writable}getChildByName(e){const t=this.children;for(let r=0;r<t.length;r++){const n=t[r];if(n.name==e)return n}}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 g.all(r.map(r=>r.checkPassword(e,t)))).includes(!1)}}const fi={FS:class{constructor(){zi(this)}get children(){return this.root.children}remove(e){xi(e);const t=[e];for(;t.length;){const e=t.pop();this.entries[e.id]=null;for(const r of e.children)t.push(r)}e.parent=Q}move(e,t){if(e==this.root)throw new w("Root directory cannot be moved");if(!t.directory)throw new w("Target entry is not a directory");if(t.isDescendantOf(e))throw new w("Entry is a ancestor of target entry");if(e!=t){const r=t.getChildByName(e.name);if(r){if(r!=e)throw new w(di)}else xi(e),e.parent=t,t.children.push(e),((e,t)=>{const r=[t];for(;r.length;){const t=r.pop();e.entries[t.id]=t;for(const e of t.children)r.push(e)}})(this,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||(r=this.entries.find(t=>t&&(t==this.root||t.isDescendantOf(this.root))&&t.getRelativeName()==e)),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)}At(e,t){return this.root.At(e,t)}importBlob(e,t){return zi(this),this.root.importBlob(e,t)}importData64URI(e,t){return zi(this),this.root.importData64URI(e,t)}importUint8Array(e,t){return zi(this),this.root.importUint8Array(e,t)}importHttpContent(e,t){return zi(this),this.root.importHttpContent(e,t)}importReadable(e,t){return zi(this),this.root.importReadable(e,t)}importZip(e,t){return zi(this),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)}exportFileSystemHandle(e,t){return this.root.exportFileSystemHandle(e,t)}exportZip(e,t){return this.root.exportZip(e,t)}isPasswordProtected(){return this.root.isPasswordProtected()}checkPassword(e,t){return this.root.checkPassword(e,t)}},ZipDirectoryEntry:wi,ZipFileEntry:ui};function pi(e,r){let n=0;const s=t.from(e);for(;s.length;){const e=s.pop();n+=e[r]||0;for(const t of e.children)s.push(t)}return n}function hi(e){let t;return()=>{if(t)throw new w("Readable stream already consumed");return t=!0,{readable:e}}}function mi(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 n=await t.entry.getData(new Ae,r.assign({},e,t.options));t.data=n,t.vt=new De(n),super.init()}readUint8Array(e,t){return this.vt.readUint8Array(e,t)}}}function yi(e,t,r){return e.prototype?new e(t,r):e(t,r)}async function gi(e,t){const r=[],n=[e],s=new c;for(;n.length;){const e=n.pop();for(const t of e.children)t.directory?n.push(t):r.push(t)}return await g.all(r.map(async e=>{const r=e.reader=yi(e.Reader,e.data,t);s.set(e,r);try{await et(r)}catch(t){try{t.entryId=e.id,t.cause={entry:e}}catch{}throw t}r.size!==Q&&(e.uncompressedSize=r.size)})),s}function xi(e){if(e.parent){const t=e.parent.children;t.forEach((r,n)=>{r.id==e.id&&t.splice(n,1)})}}function bi(e,t,n){return async function e(t,s,i){if(s)try{if((s.isFile||s.isDirectory)&&(s=await Si(s)),"file"==s.kind){const e=await s.getFile();i.push(t.At(e.name,{Reader:()=>({readable:e.stream(),size:e.size}),options:r.assign({},{lastModDate:new o(e.lastModified)},n),uncompressedSize:e.size}))}else if("directory"==s.kind){const r=t.addDirectory(s.name);i.push(r);for await(const t of s.values())await e(r,t,i)}}catch(e){const t=e.message+(s?" ("+s.name+")":"");throw new w(t,{cause:e})}return i}(e,t,[])}async function Si(e){const t={name:e.name};if(e.isFile&&(t.kind="file",t.getFile=()=>new g((t,r)=>e.file(t,r))),e.isDirectory){t.kind="directory";const r=await(async e=>{const t=[];function r(e,n,s){e.readEntries(async i=>{if(i.length){for(const e of i)t.push(await Si(e));r(e,n,s)}else n(t)},s)}return await new g((t,n)=>r(e.createReader(),t,n)),{[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 zi(e){e.entries=[],e.Dt=0,e.root=new wi(e)}function Fi(e,t,r,n){if(e.directory)return n?new wi(e.fs,t,r,e):new ui(e.fs,t,r,e);throw new w("Parent entry is not a directory")}e.fs=fi});
|
|
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:n,Number:s,BigInt:a,Math:i,Date:o,Map:c,Set:d,Response:l,URL:u,Error:w,Uint8Array:f,Uint16Array:p,Uint32Array:h,DataView:m,Blob:y,Promise:g,TextEncoder:x,TextDecoder:b,document:S,crypto:z,btoa:F,TransformStream:R,ReadableStream:E,WritableStream:D,CompressionStream:A,DecompressionStream:v,navigator:T,Worker:k}="undefined"!=typeof globalThis?globalThis:this||self,C=4294967295,U=65535,I=255,O=67324752,M=134695760,N=M,_=33639248,P=101010256,L=101075792,W=117853008,Z=22,B=20,V=21589,H=2048,j=16384,q=2048,K=1024,G="/",Y=30,X=new o(2107,11,31),J=new o(1980,0,1),Q=void 0,$=1/0,ee="undefined",te="function",re=new f;let ne=2;try{typeof T!=ee&&T.hardwareConcurrency&&(ne=T.hardwareConcurrency)}catch{}const se={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:ne,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof A!=ee&&A,DecompressionStream:typeof v!=ee&&v};function ae(){return se}function ie(e){return i.max(e.chunkSize,64)}function oe(e,t){const r=new f(e.length+t.length);return r.set(e),r.set(t,e.length),r}function ce(e){return e.byteOffset||e.byteLength!=e.buffer.byteLength?new f(e):e}function de(e){return new m(e.buffer,e.byteOffset,e.byteLength)}const le="HTTP error ",ue="HTTP Range not supported",we="HTTP resource changed",fe="Content-Range",pe="Range",he="GET",me="bytes",ye=16777216,ge="writable",xe=Symbol();class be{constructor(){this.size=0}init(){this.initialized=!0}}class Se extends be{get readable(){return this.createReadable()}createReadable({offset:e=0,size:t,chunkSize:r=ie(ae())}={}){const n=this;let s=0;return new E({async pull(a){const o=t===Q?r:i.min(r,t-s),c=await rt(n,e+s,o);a.enqueue(c),s+r>t||t===Q&&!c.length&&o?a.close():s+=r}})}}class ze extends be{constructor(){super();const e=this,t=new D({write(t){if(!e.initialized)throw new w("Writer not initialized");return e.writeUint8Array(ce(t))}});r.defineProperty(e,ge,{get:()=>t})}writeUint8Array(){}}class Fe extends Se{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const n=e.indexOf(",")+1;r.assign(this,{dataURI:e,o:n,size:i.floor(.75*(t-n))})}readUint8Array(e,t){const{o:r,dataURI:n}=this,s=new f(t),a=4*i.floor(e/3),o=atob(n.substring(a+r,4*i.ceil((e+t)/3)+r)),c=e-3*i.floor(a/4);let d=0;for(let e=c;c+t>e&&e<o.length;e++)s[e-c]=o.charCodeAt(e),d++;return d<s.length?s.subarray(0,d):s}}class Re extends ze{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r,s=t.pending;const a=t.pending.length;for(t.pending="",r=0;r<3*i.floor((a+e.length)/3)-a;r++)s+=n.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=n.fromCharCode(e[r]);s.length>2?t.data+=F(s):t.pending=s+t.pending}getData(){return this.data+F(this.pending)}}let Ee,De;class Ae extends Se{constructor(e){super(),r.assign(this,{blob:e,size:e.size}),De||(De=(async()=>{try{const e=new y([new f(3)]).slice(1,2).stream().getReader();let t=0,r=await e.read();for(;!r.done;)t+=r.value.length,r=await e.read();Ee=1==t}catch{Ee=!1}})())}createReadable(e){const{blob:t,size:r}=this,{offset:n=0,size:s=r-n}=e||{};return n||r>s?Ee?t.slice(n,n+s).stream():super.createReadable(e):t.stream()}async readUint8Array(e,t){const r=this,n=e+t,s=e||n<r.size?r.blob.slice(e,n):r.blob;let a=await s.arrayBuffer();return a.byteLength>t&&(a=a.slice(e,n)),new f(a)}}class ve extends be{constructor(e){super();const t=this,n=new R,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(t,ge,{get:()=>n.writable}),t.blob=new l(n.readable,{headers:s}).blob(),t.blob.catch(()=>{})}getData(){return this.blob}}class Te extends Ae{constructor(e){super(new y([e],{type:"text/plain"}))}}class ke extends ve{constructor(e){super(e),r.assign(this,{encoding:e,l:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,l:t}=this,n=await super.getData();if(n.text&&t)return n.text();{const t=new FileReader;return new g((s,a)=>{r.assign(t,{onload:({target:e})=>s(e.result),onerror:()=>a(t.error)}),t.readAsText(n,e)})}}}class Ce extends Se{constructor(e,t){super(),Ie(this,e,t)}async init(){await Oe(this,qe,Be),super.init()}createReadable(e){const t=this,{useRangeHeader:r,forceRangeRequests:n,size:a}=t;if((r||n)&&a!==Q){const{offset:r=0,size:n=a-r}=e||{};if(n>0&&a>r)return((e,t,r)=>{let n,a=t,o=0,c=r;return new E({start:()=>d(),async pull(e){n||await d();const{value:t,done:r}=await n.read();if(r)throw new w(ue);const s=t.length>o?t.subarray(0,o):t;o-=s.length,c-=s.length,s.length&&e.enqueue(s),o||(await(async()=>{const e=n;n=Q,await e.cancel()})(),c||e.close())},cancel:e=>n&&n.cancel(e)});async function d(){const t=i.min(e.maximumRangeSize,c),r=await qe(he,e,We(e,a,t));if(206!=r.status)throw new w(ue);const d=r.headers.get(fe);if(d){const e=s(d.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=a)throw new w(ue)}Le(e,r),Pe(e,r),a+=t,o=t,n=r.body.getReader()}})(t,r,i.min(n,a-r))}return super.createReadable(e)}readUint8Array(e,t){return Me(this,e,t,qe,Be)}}class Ue extends Se{constructor(e,t){super(),Ie(this,e,t)}async init(){await Oe(this,Ke,Ve),super.init()}readUint8Array(e,t){return Me(this,e,t,Ke,Ve)}}function Ie(e,t,n){const{preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o,checkResourceChanges:c=!0,maximumRangeSize:d=ye,fetch:l}=n;delete(n=r.assign({},n)).preventHeadRequest,delete n.useRangeHeader,delete n.forceRangeRequests,delete n.combineSizeEocd,delete n.checkResourceChanges,delete n.maximumRangeSize,delete n.useXHR,delete n.fetch,r.assign(e,{url:t,options:n,preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o,checkResourceChanges:c,maximumRangeSize:d,fetch:l})}async function Oe(e,t,r){const{url:n,preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o}=e;if((e=>{const{baseURI:t}=ae(),{protocol:r}=new u(e,t);return"http:"==r||"https:"==r})(n)&&(a||i)&&(void 0===s||s)){const n=await t(he,e,We(e,o?-22:void 0)),s=n.headers.get("Accept-Ranges");if(!(i||s&&s.toLowerCase()==me))throw new w(ue);{if(o){const t=new f(await n.arrayBuffer());206==n.status&&t.length==Z&&(e.h=t)}Pe(e,n);const s=Ne(n);s===Q?await je(e,t,r):e.size=s}}else await je(e,t,r)}async function Me(e,t,r,n,a){const{useRangeHeader:i,forceRangeRequests:o,h:c,size:d,options:l}=e;if(i||o){if(c&&t==d-Z&&r==Z)return c;if(d>t&&0!==r){t+r>d&&(r=d-t);const a=await n(he,e,We(e,t,r));if(206!=a.status)throw new w(ue);const i=a.headers.get(fe);if(i){const e=s(i.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=t)throw new w(ue)}Le(e,a),Pe(e,a);const o=new f(await a.arrayBuffer());if(o.length!=r)throw new w(ue);return o}return re}{const{data:n}=e;return n||await a(e,l),e.data.subarray(t,t+r)}}function Ne(e){const t=e.headers.get(fe);if(t){const e=t.trim().split(/\s*\/\s*/)[1];if(e&&"*"!=e){const t=s(e);if(!s.isNaN(t))return t}}}function _e({headers:e}){return{m:e.get("Etag")||Q,lastModified:e.get("Last-Modified")||Q}}function Pe(e,t){const{checkResourceChanges:r,S:n}=e;r&&!n&&206==t.status&&(e.S=_e(t))}function Le(e,t){const{checkResourceChanges:n,S:s,size:a}=e;if(n){const e=Ne(t);if(e!==Q&&a!==Q&&e!=a)throw new w(we);if(s){const e=_e(t);if(r.entries(s).some(([t,r])=>r!==Q&&e[t]!==Q&&r!=e[t]))throw new w(we)}}}function We(e,t=0,n=1){return r.assign({},Ze(e),{[pe]:me+"="+(0>t?t:t+"-"+(t+n-1))})}function Ze({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function Be(e){await He(e,qe)}async function Ve(e){await He(e,Ke)}async function He(e,t){const r=await t(he,e,Ze(e));e.data=new f(await r.arrayBuffer()),e.size=e.data.length}async function je(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const n=await t("HEAD",e,Ze(e)),a=n.headers.get("Content-Length");a&&!n.headers.get("Content-Encoding")?e.size=s(a):await r(e,e.options)}}async function qe(e,{fetch:t=fetch,options:n,url:s},a){const i=await t(s,r.assign({},n,{method:e,headers:a}));if(400>i.status)return i;throw 416==i.status?new w(ue):new w(le+(i.statusText||i.status))}function Ke(e,{url:t},n){return new g((s,a)=>{const i=new XMLHttpRequest;if(i.addEventListener("load",()=>{if(400>i.status){const e=[];i.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const r=t.trim().split(/\s*:\s*/);r[0]=r[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(r)}),s({status:i.status,arrayBuffer:()=>i.response,headers:new c(e)})}else a(416==i.status?new w(ue):new w(le+(i.statusText||i.status)))},!1),i.addEventListener("error",e=>a(e.detail?e.detail.error:new w("Network error")),!1),i.open(e,t),n)for(const e of r.entries(n))i.setRequestHeader(e[0],e[1]);i.responseType="arraybuffer",i.send()})}class Ge extends Se{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR&&!t.fetch?new Ue(e,t):new Ce(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(e){return this.reader.createReadable(e)}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class Ye extends Se{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 Xe extends ze{constructor(e){super(),this.defaultBufferSize=e||262144}init(e=0){r.assign(this,{offset:0,array:new f(e>0?e:this.defaultBufferSize)}),super.init()}writeUint8Array(e){const t=this,r=t.offset+e.length;if(r>t.array.length){let e=t.array.length?2*t.array.length:t.defaultBufferSize;for(;r>e;)e*=2;const n=t.array;t.array=new f(e),t.array.set(n)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}}class Je extends Se{constructor(e){super(),this.F=e}async init(){const e=this,{F:t}=e;e.R=0,await g.all(t.map(e=>tt(e))),e.D=t.map(t=>{const r=e.size;return e.size+=t.size,r}),super.init()}A(e){const{D:t,size:r}=this,n=t.at(e);return n===Q?r:n}async readUint8Array(e,t){const r=this,{F:n}=this;let s,a=0,o=e;for(;n[a]&&o>=n[a].size;)o-=n[a].size,a++;const c=n[a];if(c){const n=c.size;if(o+t>n){const a=n-o;s=oe(await rt(c,o,a),await r.readUint8Array(e+a,t-a))}else s=await rt(c,o,t)}else s=re;return r.R=i.max(a,r.R),s}}class Qe extends be{constructor(e,t=4294967295){super();const n=this;let s,a,i;r.assign(n,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new D({async write(t){if(t===xe)return void(i&&await d());const{availableSize:r}=n;if(i)t.length<r?await c(t):(await c(t.subarray(0,r)),await d(),t.length>r&&await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new w("Writer iterator completed too soon");s=r,s.size=0,s.maxSize&&(n.maxSize=s.maxSize),n.availableSize=n.maxSize,await tt(s),a=r.writable,i=a.getWriter(),await this.write(t)}},async close(){i&&(await i.ready,await l())},async abort(e){i&&await i.abort(e)}});async function c(e){const t=e.length;t&&(await i.ready,await i.write(e),s.size+=t,n.availableSize-=t)}async function d(){await l(),n.diskOffset+=s.size,n.diskNumber++,i=null,n.availableSize=n.maxSize}async function l(){await i.close()}r.defineProperty(n,ge,{get:()=>o})}async closeDisk(){const e=this.writable.getWriter();try{await e.ready,await e.write(xe)}finally{e.releaseLock()}}}class $e{constructor(e){return t.isArray(e)&&(e=new Je(e)),e instanceof E&&(e={readable:e}),e}}class et{constructor(e){return e.writable===Q&&typeof e.next==te&&(e=new Qe(e)),e instanceof D&&(e={writable:e}),e.size===Q&&(e.size=0),e}}async function tt(e,t){if(!e.init||e.initialized)return g.resolve();await e.init(t)}function rt(e,t,r){return e.readUint8Array(t,r)}const nt=[[],[],[],[],[],[],[],[]];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)t=1&t?t>>>1^3988292384:t>>>1;nt[0][e]=t}for(let e=0;256>e;e++)for(let t=1;8>t;t++){const r=nt[t-1][e];nt[t][e]=r>>>8^nt[0][255&r]}const[st,at,it,ot,ct,dt,lt,ut]=nt;class wt{constructor(e){this.v=e||-1}append(e){let t=0|this.v;const r=0|e.length;let n=0;if(r>=8&&e.buffer){const s=new m(e.buffer,e.byteOffset,r),a=r-8;for(;a>=n;n+=8){const e=t^s.getInt32(n,!0),r=s.getInt32(n+4,!0);t=ut[255&e]^lt[e>>>8&255]^dt[e>>>16&255]^ct[e>>>24&255]^ot[255&r]^it[r>>>8&255]^at[r>>>16&255]^st[r>>>24&255]}}for(;r>n;n++)t=t>>>8^st[255&(t^e[n])];this.v=t}get(){return~this.v}}class ft extends R{constructor(){let e;const t=new wt;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 pt(e){if(typeof x==ee){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 x).encode(e)}const ht={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],n=ht.T(r);return 32===n?e.concat(t):ht.C(t,n,0|r,e.slice(0,e.length-1))},U(e){const t=e.length;if(0===t)return 0;const r=e[t-1];return 32*(t-1)+ht.T(r)},I(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]=ht.O(t,e[r-1]&2147483648>>t-1,1)),e},O:(e,t,r)=>32===e?t:(r?0|t:t<<32-e)+1099511627776*e,T:e=>i.round(e/1099511627776)||32,C(e,t,r,n){for(void 0===n&&(n=[]);t>=32;t-=32)n.push(r),r=0;if(0===t)return n.concat(e);for(let s=0;s<e.length;s++)n.push(r|e[s]>>>t),r=e[s]<<32-t;const s=e.length?e[e.length-1]:0,a=ht.T(s);return n.push(ht.O(t+a&31,t+a>32?r:n.pop(),1)),n}},mt={bytes:{M(e){const t=ht.U(e)/8,r=new f(t);let n;for(let s=0;t>s;s++)3&s||(n=e[s/4]),r[s]=n>>>24,n<<=8;return r},N(e){const t=[];let r,n=0;for(r=0;r<e.length;r++)n=n<<8|e[r],3&~r||(t.push(n),n=0);return 3&r&&t.push(ht.O(8*(3&r),n)),t}}},yt=class{constructor(e){const t=this;t.blockSize=512,t._=[1732584193,4023233417,2562383102,271733878,3285377520],t.P=[1518500249,1859775393,2400959708,3395469782],e?(t.L=e.L.slice(0),t.W=e.W.slice(0),t.Z=e.Z):t.reset()}reset(){const e=this;return e.L=e._.slice(0),e.W=[],e.Z=0,e}update(e){const t=this;"string"==typeof e&&(e=mt.B.N(e));const r=t.W=ht.concat(t.W,e),n=t.Z,s=t.Z=n+ht.U(e);if(s>9007199254740991)throw new w("Cannot hash more than 2^53 - 1 bits");const a=new h(r);let i=0;for(let e=t.blockSize+n-(t.blockSize+n&t.blockSize-1);s>=e;e+=t.blockSize)t.V(a.subarray(16*i,16*(i+1))),i+=1;return r.splice(0,16*i),t}H(){const e=this;let t=e.W;const r=e.L;t=ht.concat(t,[ht.O(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(i.floor(e.Z/4294967296)),t.push(0|e.Z);t.length;)e.V(t.splice(0,16));return e.reset(),r}j(e,t,r,n){return e>19?e>39?e>59?e>79?void 0:t^r^n:t&r|t&n|r&n:t^r^n:t&r|~t&n}K(e,t){return t<<e|t>>>32-e}V(e){const r=this,n=r.L,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let a=n[0],o=n[1],c=n[2],d=n[3],l=n[4];for(let e=0;79>=e;e++){16>e||(s[e]=r.K(1,s[e-3]^s[e-8]^s[e-14]^s[e-16]));const t=r.K(5,a)+r.j(e,o,c,d)+l+s[e]+r.P[i.floor(e/20)]|0;l=d,d=c,c=r.K(30,o),o=a,a=t}n[0]=n[0]+a|0,n[1]=n[1]+o|0,n[2]=n[2]+c|0,n[3]=n[3]+d|0,n[4]=n[4]+l|0}},gt={importKey:e=>new gt.G(mt.bytes.N(e)),Y(e,t,r,n){if(r=r||1e4,0>n||0>r)throw new w("invalid params to pbkdf2");const s=1+(n>>5)<<2;let a,i,o,c,d;const l=new ArrayBuffer(s),u=new m(l);let f=0;const p=ht;for(t=mt.bytes.N(t),d=1;(s||1)>f;d++){for(a=i=e.encrypt(p.concat(t,[d])),o=1;r>o;o++)for(i=e.encrypt(i),c=0;c<i.length;c++)a[c]^=i[c];for(o=0;(s||1)>f&&o<a.length;o++)u.setInt32(f,a[o]),f+=4}return l.slice(0,n/8)},G:class{constructor(e){const t=this,r=t.X=yt,n=[[],[]];t.J=[new r,new r];const s=t.J[0].blockSize/32;e.length>s&&(e=(new r).update(e).H());for(let t=0;s>t;t++)n[0][t]=909522486^e[t],n[1][t]=1549556828^e[t];t.J[0].update(n[0]),t.J[1].update(n[1]),t.$=new r(t.J[0])}reset(){const e=this;e.$=new e.X(e.J[0]),e.ee=!1}update(e){this.ee=!0,this.$.update(e)}digest(){const e=this,t=e.$.H(),r=new e.X(e.J[1]).update(t).H();return e.reset(),r}encrypt(e){if(this.ee)throw new w("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},xt=typeof z!=ee&&typeof z.getRandomValues==te,bt="Invalid password",St="Invalid signature",zt="zipjs-abort-check-password";function Ft(e){if(xt)return z.getRandomValues(e);throw new w("Crypto API not supported")}const Rt=16,Et={name:"PBKDF2"},Dt=r.assign({hash:{name:"HMAC"}},Et),At=r.assign({iterations:1e3,hash:{name:"SHA-1"}},Et),vt=["deriveBits"],Tt=[8,12,16],kt=[16,24,32],Ct=10,Ut=[0,0,0,0],It=typeof z!=ee,Ot=It&&z.subtle,Mt=It&&typeof Ot!=ee,Nt=mt.bytes,_t=class{constructor(e){const t=this;t.te=[[[],[],[],[],[]],[[],[],[],[],[]]],t.te[0][0][0]||t.re();const r=t.te[0][4],n=t.te[1],s=e.length;let a,i,o,c=1;if(4!==s&&6!==s&&8!==s)throw new w("invalid aes key size");for(t.P=[i=e.slice(0),o=[]],a=s;4*s+28>a;a++){let e=i[a-1];(a%s===0||8===s&&a%s===4)&&(e=r[e>>>24]<<24^r[e>>16&255]<<16^r[e>>8&255]<<8^r[255&e],a%s===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),i[a]=i[a-s]^e}for(let e=0;a;e++,a--){const t=i[3&e?a:a-4];o[e]=4>=a||4>e?t:n[0][r[t>>>24]]^n[1][r[t>>16&255]]^n[2][r[t>>8&255]]^n[3][r[255&t]]}}encrypt(e){return this.ne(e,0)}decrypt(e){return this.ne(e,1)}re(){const e=this.te[0],t=this.te[1],r=e[4],n=t[4],s=[],a=[];let i,o,c,d;for(let e=0;256>e;e++)a[(s[e]=e<<1^283*(e>>7))^e]=e;for(let l=i=0;!r[l];l^=o||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,r[l]=a,n[a]=l,d=s[c=s[o=s[l]]];let u=16843009*d^65537*c^257*o^16843008*l,w=257*s[a]^16843008*a;for(let r=0;4>r;r++)e[r][l]=w=w<<24^w>>>8,t[r][a]=u=u<<24^u>>>8}for(let r=0;5>r;r++)e[r]=e[r].slice(0),t[r]=t[r].slice(0)}ne(e,t){if(4!==e.length)throw new w("invalid aes block size");const r=this.P[t],n=r.length/4-2,s=[0,0,0,0],a=this.te[t],i=a[0],o=a[1],c=a[2],d=a[3],l=a[4];let u,f,p,h=e[0]^r[0],m=e[t?3:1]^r[1],y=e[2]^r[2],g=e[t?1:3]^r[3],x=4;for(let e=0;n>e;e++)u=i[h>>>24]^o[m>>16&255]^c[y>>8&255]^d[255&g]^r[x],f=i[m>>>24]^o[y>>16&255]^c[g>>8&255]^d[255&h]^r[x+1],p=i[y>>>24]^o[g>>16&255]^c[h>>8&255]^d[255&m]^r[x+2],g=i[g>>>24]^o[h>>16&255]^c[m>>8&255]^d[255&y]^r[x+3],x+=4,h=u,m=f,y=p;for(let e=0;4>e;e++)s[t?3&-e:e]=l[h>>>24]<<24^l[m>>16&255]<<16^l[y>>8&255]<<8^l[255&g]^r[x++],u=h,h=m,m=y,y=g,g=u;return s}},Pt=class{constructor(e,t){this.se=e,this.ae=t,this.ie=t}reset(){this.ie=this.ae}update(e){return this.oe(this.se,e,this.ie)}ce(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,r=e>>8&255,n=255&e;255===t?(t=0,255===r?(r=0,255===n?n=0:++n):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=n}return e}de(e){0===(e[0]=this.ce(e[0]))&&(e[1]=this.ce(e[1]))}oe(e,t,r){let n;if(!(n=t.length))return[];const s=ht.U(t);for(let s=0;n>s;s+=4){this.de(r);const n=e.encrypt(r);t[s]^=n[0],t[s+1]^=n[1],t[s+2]^=n[2],t[s+3]^=n[3]}return ht.I(t,s)}},Lt=gt.G;let Wt=It&&Mt&&typeof Ot.importKey==te,Zt=It&&Mt&&typeof Ot.deriveBits==te;class Bt extends R{constructor({password:e,rawPassword:t,encryptionStrength:r,checkPasswordOnly:n}){super({start(){Ht(this,e,t,r)},async transform(e,t){const r=this,{password:s,strength:a,le:i,ready:o}=r;s?(await(async(e,t,r,n)=>{const s=await qt(e,t,r,Gt(n,0,Tt[t])),a=Gt(n,Tt[t]);if(s[0]!=a[0]||s[1]!=a[1])throw new w(bt)})(r,a,s,Gt(e,0,Tt[a]+2)),e=Gt(e,Tt[a]+2),n?t.error(new w(zt)):i()):await o;const c=new f(e.length-Ct-(e.length-Ct)%Rt);t.enqueue(jt(r,e,c,0,Ct,!0))},async flush(e){const{ue:t,we:r,pending:n,ready:s}=this;if(r&&t){await s;const a=Gt(n,0,n.length-Ct),i=Gt(n,n.length-Ct);let o=re;if(a.length){const e=Xt(Nt,a);r.update(e);const n=t.update(e);o=Yt(Nt,n)}const c=Gt(Yt(Nt,r.digest()),0,Ct);let d=n.length<Ct?1:0;for(let e=0;Ct>e;e++)d|=c[e]^i[e];if(d)throw new w(St);e.enqueue(o)}}})}}class Vt extends R{constructor({password:e,rawPassword:t,encryptionStrength:r}){let n;super({start(){Ht(this,e,t,r)},async transform(e,t){const r=this,{password:n,strength:s,le:a,ready:i}=r;let o=re;n?(o=await(async(e,t,r)=>{const n=Ft(new f(Tt[t]));return oe(n,await qt(e,t,r,n))})(r,s,n),a()):await i;const c=new f(o.length+e.length-e.length%Rt);c.set(o,0),t.enqueue(jt(r,e,c,o.length,0))},async flush(e){const{ue:t,we:r,pending:s,ready:a}=this;if(r&&t){await a;let i=re;if(s.length){const e=t.update(Xt(Nt,s));r.update(e),i=Yt(Nt,e)}n.signature=Yt(Nt,r.digest()).slice(0,Ct),e.enqueue(oe(i,n.signature))}}}),n=this}}function Ht(e,t,n,s){r.assign(e,{ready:new g(t=>e.le=t),password:Kt(t,n),strength:s-1,pending:re})}function jt(e,t,r,n,s,a){const{ue:i,we:o,pending:c}=e;c.length&&(t=oe(c,t));const d=t.length-s;let l;for(r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new f(t)).set(r,0)}return e})(r,n+(d-d%Rt)),l=0;d-Rt>=l;l+=Rt){const e=Xt(Nt,Gt(t,l,l+Rt));a&&o.update(e);const s=i.update(e);a||o.update(s),r.set(Yt(Nt,s),l+n)}return e.pending=Gt(t,l),r}async function qt(e,n,s,a){e.password=null;const i=await(async(e,t,r,n,s)=>{if(!Wt)return gt.importKey(t);try{return await Ot.importKey("raw",t,r,!1,s)}catch{return Wt=!1,gt.importKey(t)}})(0,s,Dt,0,vt),o=await(async(e,t,r)=>{if(!Zt)return gt.Y(t,e.salt,At.iterations,r);try{return await Ot.deriveBits(e,t,r)}catch{return Zt=!1,gt.Y(t,e.salt,At.iterations,r)}})(r.assign({salt:a},At),i,8*(2*kt[n]+2)),c=new f(o),d=Xt(Nt,Gt(c,0,kt[n])),l=Xt(Nt,Gt(c,kt[n],2*kt[n])),u=Gt(c,2*kt[n]);return r.assign(e,{keys:{key:d,fe:l,passwordVerification:u},ue:new Pt(new _t(d),t.from(Ut)),we:new Lt(l)}),u}function Kt(e,t){return t===Q?pt(e):t}function Gt(e,t,r){return e.subarray(t,r)}function Yt(e,t){return e.M(t)}function Xt(e,t){return e.N(t)}class Jt extends R{constructor({password:e,rawPassword:t,passwordVerification:r,checkPasswordOnly:n}){super({start(){$t(this,e,t,r)},transform(e,t){const r=this;if(r.password||r.rawPassword){const t=er(r,e.subarray(0,12));if(r.password=r.rawPassword=null,0!=(t.at(-1)^r.passwordVerification))throw new w(bt);e=e.subarray(12)}n?t.error(new w(zt)):t.enqueue(er(r,e))}})}}class Qt extends R{constructor({password:e,rawPassword:t,passwordVerification:r}){super({start(){$t(this,e,t,r)},transform(e,t){const r=this;let n,s;if(r.password||r.rawPassword){r.password=r.rawPassword=null;const t=Ft(new f(12));t[11]=r.passwordVerification,n=new f(e.length+t.length),n.set(tr(r,t),0),s=12}else n=new f(e.length),s=0;n.set(tr(r,e),s),t.enqueue(n)}})}}function $t(e,t,n,s){r.assign(e,{password:t,rawPassword:n,passwordVerification:s}),((e,t,n)=>{const s=[305419896,591751049,878082192];if(r.assign(e,{keys:s,pe:new wt(s[0]),he:new wt(s[2])}),n)for(let t=0;t<n.length;t++)rr(e,n[t]);else for(let r=0;r<t.length;r++)rr(e,t.charCodeAt(r))})(e,t,n)}function er(e,t){const r=new f(t.length);for(let n=0;n<t.length;n++)r[n]=nr(e)^t[n],rr(e,r[n]);return r}function tr(e,t){const r=new f(t.length);for(let n=0;n<t.length;n++)r[n]=nr(e)^t[n],rr(e,t[n]);return r}function rr(e,t){let[,r]=e.keys;e.pe.append([t]);const n=~e.pe.get();r=ar(i.imul(ar(r+sr(n)),134775813)+1),e.he.append([r>>>24]);const s=~e.he.get();e.keys=[n,r,s]}function nr(e){const t=2|e.keys[2];return sr(i.imul(t,1^t)>>>8)}function sr(e){return 255&e}function ar(e){return 4294967295&e}const ir="Invalid uncompressed size",or="Invalid compressed data";class cr extends R{constructor(e,{chunkSize:t,CompressionStreamZlib:r,CompressionStream:n}){super({});const{compressed:s,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:c,level:d,deflate64:l}=e,u=this;let w,f,p,h=super.readable;const y=c&&s&&!l&&(!a||o)&&!(!i||!n);a&&!o||!c||y||(w=new ft,h=fr(h,w)),s&&(y?(p=new dr,h=pr(h,new n("gzip")),h=fr(h,p)):h=wr(h,i,{level:d,chunkSize:t},n,r,n)),a&&(o?h=fr(h,new Qt(e)):(f=new Vt(e),h=fr(h,f))),ur(u,h,()=>{let e;a&&!o&&(e=f.signature),a&&!o||!c||(e=y?p.signature:new m(w.value.buffer).getUint32(0)),u.signature=e})}}class dr extends R{constructor(){let e,t=10,r=new f(0);super({transform(e,n){if(t){const r=i.min(t,e.length);if(t-=r,!(e=e.subarray(r)).length)return}const s=r.length+e.length;if(8>=s)return void(r=oe(r,e));const a=s-8,o=i.min(a,r.length);n.enqueue(oe(r.subarray(0,o),e.subarray(0,a-o))),r=oe(r.subarray(o),e.subarray(a-o))},flush(){const t=de(r);e.signature=t.getUint32(0,!0),e.uncompressedSize=t.getUint32(4,!0)}}),e=this}}class lr extends R{constructor(e,{chunkSize:t,DecompressionStreamZlib:r,DecompressionStream:n}){super({});const{zipCrypto:s,encrypted:a,signed:i,signature:o,compressed:c,useCompressionStream:d,deflate64:l}=e;let u,f,p=super.readable;a&&(s?p=fr(p,new Jt(e)):(f=new Bt(e),p=fr(p,f))),c&&(p=wr(p,d,{chunkSize:t,deflate64:l},n,r,n),p=(e=>{const t=e.getReader();return new E({async pull(e){let r;try{r=await t.read()}catch(e){if(e&&e.message)throw e;const t=new w(or);throw t.cause=e,t}const{value:n,done:s}=r;s?e.close():e.enqueue(n)},cancel:e=>t.cancel(e)})})(p)),a&&!s||!i||(u=new ft,p=fr(p,u)),ur(this,p,()=>{if((!a||s)&&i){const e=new m(u.value.buffer);if(o!=e.getUint32(0,!1))throw new w(St)}})}}function ur(e,t,n){t=fr(t,new R({flush:n})),r.defineProperty(e,"readable",{get:()=>t})}function wr(e,t,r,n,s,a){const i=t&&n?n:s||a,o=r.deflate64?"deflate64-raw":"deflate-raw";let c;try{c=new i(o,r)}catch(e){if(!t)throw e;if(s)c=new s(o,r);else{if(!a)throw e;c=new a(o,r)}}return pr(e,c)}function fr(e,t){return e.pipeThrough(t)}function pr(e,t){const r=t.writable.getWriter(),n=e.getReader();return(async()=>{try{for(;;){await r.ready;const e=await n.read();if(e.done){await r.close();break}await r.write(e.value)}}catch(e){await(async(e,t)=>{try{await e.abort(t)}catch{}})(r,e),await(async(e,t)=>{try{await e.cancel(t)}catch{}})(n,e)}})(),t.readable}const hr="data",mr="deflate",yr="inflate";class gr extends R{constructor(e,t){super({});const n=this,{codecType:s}=e;let a;s.startsWith(mr)?a=cr:s.startsWith(yr)&&(a=lr),n.outputSize=0;let i=0;const o=new a(e,t),c=super.readable,d=new R({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){r.assign(n,{inputSize:i})}}),l=new R({transform(t,r){if(t&&t.length&&(r.enqueue(t),n.outputSize+=t.length,e.outputSize!==Q&&n.outputSize>e.outputSize))throw new w(ir)},flush(){const{signature:e}=o;r.assign(n,{signature:e,inputSize:i})}});r.defineProperty(n,"readable",{get:()=>c.pipeThrough(d).pipeThrough(o).pipeThrough(l)})}}class xr extends R{constructor(e){const t=[];let r=0;function n(){const n=new f(e);let s=0;for(;e>s;){const r=t[0],a=e-s;r.length>a?(n.set(r.subarray(0,a),s),t[0]=r.subarray(a),s+=a):(n.set(r,s),s+=r.length,t.shift())}return r-=e,n}s.isFinite(e)&&e>=1||(e=65536),super({transform(s,a){for(t.push(s),r+=s.length;r>e;)a.enqueue(n())},flush(e){r&&e.enqueue(((e,t)=>{const r=new f(t);let n=0;for(const t of e)r.set(t,n),n+=t.length;return r})(t,r))}})}}const br={type:"module"},Sr="error";let zr,Fr,Rr,Er,Dr=!0;try{Dr=typeof structuredClone==te&&structuredClone(new DOMException("","AbortError")).code!==Q}catch{}class Ar{constructor(e,{readable:t,writable:n},{options:s,config:a,me:i,useWebWorkers:o,transferStreams:c,workerURI:d},l){const{signal:u}=i;return r.assign(e,{ye:!0,ge:(e.ge||0)+1,readable:t.pipeThrough(new xr(ie(a))).pipeThrough(new vr(i),{signal:u}),writable:n,options:r.assign({},s),workerURI:d,transferStreams:c,terminate:()=>new g(t=>{const{xe:r,ye:n}=e;r?(n?e.be=t:(r.terminate(),t()),e.Se=null):t()}),ze(){if(e.ye){const{be:t}=e;t&&(e.be=null,e.Fe=!0,e.xe.terminate(),t()),e.ye=!1,l(e)}}}),zr===Q&&(zr=typeof k!=ee),(o&&zr?Cr:kr)(e,a)}}class vr extends R{constructor({onstart:e,onprogress:t,size:r,onend:n}){let s=0;super({async start(){e&&await Tr(e,r)},async transform(e,n){s+=e.length,t&&await Tr(t,s,r),n.enqueue(e)},async flush(){n&&await Tr(n,s)}})}}async function Tr(e,...t){try{await e(...t)}catch{}}function kr(e,t){return{run:()=>(async({options:e,readable:t,writable:r,ze:n},s)=>{let a;try{if(!e.useCompressionStream)try{await void 0}catch{const t=e.codecType.startsWith(mr)?s.CompressionStreamZlib:s.DecompressionStreamZlib;t&&!t.Re||(e.useCompressionStream=!0)}a=new gr(e,s),await t.pipeThrough(a).pipeThrough(new xr(ie(s))).pipeTo(r,{preventClose:!0,preventAbort:!0});const{signature:n,inputSize:i,outputSize:o}=a;return{signature:n,inputSize:i,outputSize:o}}catch(e){throw a&&(e.outputSize=a.outputSize),e}finally{n()}})(e,t)}}function Cr(e,t){const{baseURI:n,chunkSize:s}=t;let{wasmURI:a}=t;if(!e.Se){let i;typeof a==te&&(a=a());try{i=Ir(e.workerURI,n,e)}catch{return zr=!1,kr(e,t)}r.assign(e,{xe:i,Fe:!1,Se:{run:()=>(async(e,t)=>{let n,s;const a=new g((e,t)=>{n=e,s=t});r.assign(e,{reader:null,writer:null,Ee:n,De:s,result:a});const{readable:i,options:o}=e,{writable:c,closed:d,Ae:l}=(e=>{const t=new AbortController,{writable:r,readable:n}=new R,s=n.pipeTo(e,{preventClose:!0,preventAbort:!0,signal:t.signal});return s.catch(()=>{}),{writable:r,closed:s,Ae:()=>t.abort()}})(e.writable);let u;try{u=Mr({type:"start",options:o,config:t,readable:i,writable:c},e)}catch(t){l();try{await d}catch{}throw e.ze(),t}u||r.assign(e,{reader:i.getReader(),writer:c.getWriter()});try{const e=await a;return await w(),await d,e}catch(e){await w(),l();try{await d}catch{}throw e}async function w(){if(!u&&!c.locked)try{await c.getWriter().close()}catch{}}})(e,{chunkSize:s,wasmURI:a,baseURI:n})}})}return e.Se}function Ur(e){const{xe:t}=e;if(t)try{t.terminate()}catch{}e.Se=null}function Ir(e,t,n,s,a=!0){let i,o,c;if(Rr===Q||Fr!==e){const r=typeof e==te;o=r?e(a):e;const d=o.startsWith("data:"),l=o.startsWith("blob:");if(d||l){s===Q&&(s=!1),s&&(c=br);try{i=new k(o,c)}catch(a){if(l)try{u.revokeObjectURL(o)}catch{}if(r&&l)return Ir(e,t,n,s,!1);if(s)throw a;return Ir(e,t,n,!0,!1)}}else{s===Q&&(s=!0),s&&(c=br);try{o=new u(o,t)}catch{}try{i=new k(o,c)}catch(r){if(s)throw r;return Ir(e,t,n,!1,a)}}Fr=e,Rr=o,Er=c}else i=new k(Rr,Er);return i.addEventListener("message",e=>(async({data:e},t)=>{const{type:n,value:s,messageId:a,result:i,error:o}=e,{reader:c,writer:d,Ee:l,De:u,ze:p,ge:h}=t,m=()=>t.ge!=h;try{if(o){const{message:e,stack:t,code:n,name:s,outputSize:a}=o,i=new w(e);r.assign(i,{stack:t,code:n,name:s,outputSize:a}),y(i)}else{if("pull"==n){const{value:e,done:r}=await c.read();m()||Mr({type:hr,value:e,done:r,messageId:a},t)}n==hr&&(await d.ready,await d.write(new f(s)),m()||Mr({type:"ack",messageId:a},t)),"close"==n&&y(null,i)}}catch(o){m()||(Ur(t),y(o))}function y(e,t){m()||(e?u(e):l(t),d&&d.releaseLock(),p())}})(e,n)),i.addEventListener(Sr,e=>Or(e,n)),i.addEventListener("messageerror",e=>Or(e,n)),i}function Or(e,t){e.preventDefault&&e.preventDefault();const{De:r,writer:n,ze:s}=t;Ur(t),r&&(r(e.error||new w(e.message||Sr)),n&&n.releaseLock(),s())}function Mr(e,{xe:t,writer:r,transferStreams:n}){try{const{value:r,readable:s,writable:a}=e,i=[];if(r&&(e.value=ce(r),i.push(e.value.buffer)),n&&Dr?(s&&i.push(s),a&&i.push(a)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch{Dr=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),e}}let Nr=[];const _r=[];let Pr,Lr,Wr=0;async function Zr(e,t){const{options:r,config:n}=t,{transferStreams:a,useWebWorkers:i,useCompressionStream:o,compressed:c,signed:d,encrypted:l}=r,{workerURI:u,maxWorkers:w}=n;t.transferStreams=a||a===Q&&n.transferStreams;const f=!c&&!d&&!l;return t.useWebWorkers=!f&&(i||i===Q&&n.useWebWorkers),t.workerURI=t.useWebWorkers&&u?u:Q,r.useCompressionStream=o||o===Q&&n.useCompressionStream,(await(async()=>{const r=Nr.find(e=>!e.ye);if(r)return qr(r),new Ar(r,e,t,p);if(Nr.length<w){const r={ve:Wr};return Wr++,Nr.push(r),new Ar(r,e,t,p)}return new g(r=>{_r.push({resolve:r,stream:e,Te:t}),Lr=n.workerStarvationTimeout,Br()})})()).run();function p(e){if(Vr(),_r.length){const[{resolve:t,stream:r,Te:n}]=_r.splice(0,1);t(new Ar(e,r,n,p)),Br()}else e.xe?(qr(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:n}=r;s.isFinite(n)&&n>=0&&(e.Fe?e.Fe=!1:e.ke=setTimeout(async()=>{Nr=Nr.filter(t=>t!=e);try{await e.terminate()}catch{}},n))})(e,t)):Nr=Nr.filter(t=>t!=e)}}function Br(){!Pr&&_r.length&&s.isFinite(Lr)&&Lr>=0&&(Pr=setTimeout(Hr,Lr))}function Vr(){Pr&&(clearTimeout(Pr),Pr=null)}function Hr(){if(Pr=null,_r.length){const[{resolve:e,stream:t,Te:n}]=_r.splice(0,1),s=r.assign({},n,{useWebWorkers:!1,workerURI:Q});e(new Ar({},t,s,jr)),Br()}}function jr(){Vr(),Br()}function qr(e){const{ke:t}=e;t&&(clearTimeout(t),e.ke=null)}const Kr="\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+=Kr[e[r]];return t}})(e):new b(t,{ignoreBOM:!0}).decode(e)}const Yr="filename",Xr="rawFilename",Jr="comment",Qr="rawComment",$r="uncompressedSize",en="compressedSize",tn="offset",rn="diskNumberStart",nn="lastModDate",sn="rawLastModDate",an="lastAccessDate",on="creationDate",cn="rawCreationDate",dn="internalFileAttributes",ln="externalFileAttributes",un="msdosAttributesRaw",wn="msdosAttributes",fn="msDosCompatible",pn="zip64",hn="encrypted",mn="version",yn="versionMadeBy",gn="zipCrypto",xn="directory",bn="executable",Sn="compressionMethod",zn="signature",Fn="extraField",Rn="unixMode",En="setuid",Dn="setgid",An="sticky",vn=[Yr,Xr,$r,en,nn,sn,Jr,Qr,an,on,cn,tn,rn,dn,ln,un,wn,fn,pn,hn,mn,yn,gn,xn,bn,Sn,zn,Fn,"extraFieldUnix","extraFieldInfoZip","uid","gid",Rn,En,Dn,An,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Tn{constructor(e){vn.forEach(t=>this[t]=e[t])}}const kn="password",Cn="rawPassword",Un="passThrough",In="signal",On="checkAmbiguity",Mn="useWebWorkers",Nn="useCompressionStream",_n="transferStreams",Pn="preventClose",Ln="offset",Wn="strictness",Zn="strict",Bn="tolerant",Vn="File format is not recognized",Hn="End of central directory not found",jn="End of Zip64 central directory locator not found",qn="Central directory header not found",Kn="Local file header not found",Gn="Zip64 extra field not found",Yn="File contains encrypted entry",Xn="Encryption method not supported",Jn="Compression method not supported",Qn="Split zip file",$n="Overlapping entry found",es="Ambiguous archive",ts="utf-8",rs="cp437",ns=[[$r,C],[en,C],[tn,C],[rn,U]],ss={[U]:{Ce:vs,bytes:4},[C]:{Ce:Ts,bytes:8}};class as{constructor(e,t={}){r.assign(this,{reader:new $e(e),options:t,config:ae(),Ue:new c})}async*getEntriesGenerator(e={}){const t=this;let{reader:n}=t;const{config:s}=t;if(await tt(n),n.size!==Q&&n.readUint8Array||(n=new Ae(await new l(n.readable).blob()),await tt(n)),n.size<Z)throw new w(Vn);const a=fs(Fs(t,e,Wn),Fs(t,e,On)),o=a==Zn,c=a!=Bn,u=((e,t)=>e!==Q?e:t==Zn?0:t==Bn?1/0:U)(Fs(t,e,"maxAppendedDataSize"),a),{Ie:f,Oe:p}=await(async(e,t,r)=>{const{size:n}=e,s=i.min(n,65557),a={count:ps};let o,c,d=0;for await(const[r,i,l,u,w]of gs(e,s)){const s=As(r,u+20);if(w+Z+s==n){const s=await bs(e,r,i,u,w,n,a);if(s==ys){if(o||(o=xs(l,u,w)),d++,!t||d>1)break}else s!=ms||c||(c=xs(l,u,w))}}return o||(o=c),o||(o=await(async(e,t,r)=>{const{size:n}=e,s=i.min(n,t==1/0?n:65557+t);let a,o;for await(const[t,i,c,d,l]of gs(e,s)){const s=xs(c,d,l);a||(a=s);const u=await bs(e,t,i,d,l,n,r);if(u==ys)return s;u!=ms||o||(o=s)}return o||a})(e,r,a)),{Ie:o,Oe:d}})(n,c,u);if(!f)throw vs(de(await rt(n,0,4)))==M?new w(Qn):new w(Hn);c&&p>1&&zs("multiple end of central directory records");const h=de(f);let m=vs(h,12),y=vs(h,16);const x=f.offset,b=As(h,20),S=x+Z+b;n.size-S>u&&zs("appended data");let z=As(h,4);const F=n.R||0;let E,D,A=As(h,6),v=As(h,10),T=0;const k=y==C||m==C||v==U||A==U;if(y!=C&&A!=U&&(y+=ws(n,A)),k){const e=f.offset<B?re:await rt(n,f.offset-B,B),t=de(e);if(e.length==B&&vs(t,0)==W){y=ws(n,vs(t,4))+Ts(t,8);let e=await rt(n,y,56),r=de(e);const s=f.offset-B-56;if((56>e.length||vs(r,0)!=L)&&y!=s&&s>=0){const t=y;y=s,y>t&&(T=y-t),e=await rt(n,y,56),r=de(e)}if(56>e.length||vs(r,0)!=L)throw new w(jn);D=!0,z==U?z=vs(r,16):o&&z!=vs(r,16)&&zs("mismatched zip64 end of central directory record"),A==U?A=vs(r,20):o&&A!=vs(r,20)&&zs("mismatched zip64 end of central directory record"),v==U?v=Ts(r,32):o&&v!=Ts(r,32)&&zs("mismatched zip64 end of central directory record"),m==C?m=Ts(r,40):o&&m!=Ts(r,40)&&zs("mismatched zip64 end of central directory record"),y=ws(n,A)+Ts(r,48)+T}}const O=m,N=f.offset-(D?76:0);if(y<n.size||(T=n.size-y-m-Z,y=n.size-m-Z),F!=z)throw new w(Qn);if(0>y)throw new w(Vn);let P=0,V=await rt(n,y,m),H=de(V);if(m){if(4>V.length)throw new w(Vn);const e=N-m;if(y!=e&&A==z){let t=!(vs(H,P)==_);if(t||0>e||e+4>n.size||(t=vs(de(await rt(n,e,4)),0)==_),t){const t=y;y=e,y>t&&(T+=y-t),V=await rt(n,y,m),H=de(V)}}}const Y=N-y;if(m==Y||0>Y||A!=z||(m=Y,V=await rt(n,y,m),H=de(V)),0>y||y>=n.size)throw new w(Vn);E=y;const X=Fs(t,e,"filenameEncoding"),J=Fs(t,e,"commentEncoding"),$=o?new d:Q;let ee;for(let a=0;v>a;a++){const c=new is(n,s,t.options);if(P+46>V.length||vs(H,P)!=_)throw new w(qn);os(c,H,P+6);const d=!!c.bitFlag.languageEncodingFlag,u=P+46,f=u+c.filenameLength,p=f+c.extraFieldLength,h=As(H,P+4),m=!(h>>8),y=h>>8==3,x=V.subarray(u,f),b=As(H,P+32),S=p+b,z=V.subarray(p,S),F=d,D=d,A=vs(H,P+38),k=A&I,C={readOnly:!!(1&k),hidden:!!(2&k),system:!!(4&k),directory:!!(16&k),archive:!!(32&k)},O=vs(H,P+42),M=Fs(t,e,"decodeText")||Gr,N=F?ts:X||rs,L=D?ts:J||rs;let W=M(x,N);W===Q&&(W=Gr(x,N));let Z=M(z,L);Z===Q&&(Z=Gr(z,L)),r.assign(c,{index:a,versionMadeBy:h,msDosCompatible:m,compressedSize:0,uncompressedSize:0,Me:b,offset:O,diskNumberStart:As(H,P+34),internalFileAttributes:As(H,P+36),externalFileAttributes:A,msdosAttributesRaw:k,msdosAttributes:C,rawFilename:x,filenameUTF8:F,commentUTF8:D,rawExtraField:V.subarray(f,p),rawComment:z,filename:W,comment:Z}),cs(c,c,H,P+6),c.offset+=T,E=i.min(ws(n,c.diskNumberStart)+c.offset,E),o&&($.has(c.filename)&&(ee=!0),$.add(c.filename));const B=c.externalFileAttributes>>16&U;c.unixMode===Q&&16877&B&&(c.unixMode=B);const Y=!!(c.unixMode&q),te=!!(c.unixMode&K),re=!!(512&c.unixMode),ne=c.unixMode!==Q?!!(73&c.unixMode):y&&!!(73&B),se=c.unixMode!==Q&&(61440&c.unixMode)==j,ae=(61440&B)==j;r.assign(c,{setuid:Y,setgid:te,sticky:re,unixExternalUpper:B,internalFileAttribute:c.internalFileAttributes,externalFileAttribute:c.externalFileAttributes,executable:ne,directory:se||ae||m&&C.directory||c.filename.endsWith(G)&&!c.uncompressedSize,zipCrypto:c.encrypted&&!c.extraFieldAES});const ie=new Tn(c);ie.getData=(e,r)=>c.getData(e,ie,t.Ue,r),ie.arrayBuffer=async e=>{const r=new R,[n]=await g.all([new l(r.readable).arrayBuffer(),c.getData(r,ie,t.Ue,e)]);return n},P=S;const{onprogress:oe}=e;if(oe)try{await oe(a+1,v,new Tn(c))}catch{}yield ie}o&&P!=O&&zs("trailing central directory data"),ee&&zs("duplicate filename"),o&&(T||v&&E>0)&&zs("prepended data");const te=Fs(t,e,"extractPrependedData"),ne=Fs(t,e,"extractAppendedData");return te&&(t.prependedData=E>0?await rt(n,0,E):re),t.comment=b?await rt(n,x+Z,b):re,ne&&(t.appendedData=S<n.size?await rt(n,S,n.size-S):re),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}let is=class{constructor(e,t,n){r.assign(this,{reader:e,config:t,options:n})}async getData(e,t,r,n={}){const s=this,{reader:a,index:i,offset:o,diskNumberStart:c,extraFieldAES:d,extraFieldZip64:l,compressionMethod:u,config:f,bitFlag:p,signature:h,rawLastModDate:m,uncompressedSize:y,compressedSize:g}=s,{dataDescriptor:x}=p,b=t.localDirectory={},S=ws(a,c)+o,z=await rt(a,S,Y),F=de(z);let R=Fs(s,n,kn),E=Fs(s,n,Cn);const A=Fs(s,n,Un);if(R=R&&R.length&&R,E=E&&E.length&&E,d&&99!=d.originalCompressionMethod)throw new w(Jn);if(0!=u&&8!=u&&9!=u&&!A)throw new w(Jn);if(z.length<Y||vs(F,0)!=O)throw new w(Kn);os(b,F,4);const{extraFieldLength:v,filenameLength:T}=b,k=fs(Fs(s,n,Wn),Fs(s,n,On))==Zn;let C=re;if(k&&(T||v)){const e=await rt(a,S+Y,T+v);C=e.subarray(0,T),b.rawExtraField=e.subarray(T)}else b.rawExtraField=v?await rt(a,S+Y+T,v):re;cs(s,b,F,4,!0),k&&((e,t,r)=>{const{rawFilename:n}=e;(r.length!=n.length||r.some((e,t)=>e!=n[t]))&&zs("mismatched local file header (filename)"),(2057&t.rawBitFlag)!=(2057&e.rawBitFlag)&&zs("mismatched local file header (general purpose bit flag)"),t.compressionMethod!=e.compressionMethod&&zs("mismatched local file header (compression method)"),t.bitFlag.dataDescriptor||!(t.signature||t.compressedSize||t.uncompressedSize)||t.signature==e.signature&&t.compressedSize==e.compressedSize&&t.uncompressedSize==e.uncompressedSize||zs("mismatched local file header (signature or sizes)")})(s,b,C);const{lastAccessDate:U,creationDate:M}=b;U&&(t.lastAccessDate=U),M&&(t.creationDate=M);const _=s.encrypted&&b.encrypted&&!A,P=_&&!d;if(A||(t.zipCrypto=P),_){if(!P&&d.strength===Q)throw new w(Xn);if(!R&&!E)throw new w(Yn)}const L=S+Y+T+v,W=g,Z=a.createReadable({offset:L,size:W}),B=Fs(s,n,In),V=Fs(s,n,"checkPasswordOnly");let H=Fs(s,n,"checkOverlappingEntry");const j=Fs(s,n,"checkOverlappingEntryOnly");j&&(H=!0);const{onstart:q,onprogress:K,onend:G}=n,X=9==u;let J=Fs(s,n,Nn);X&&(J=!1);const $={options:{codecType:yr,password:R,rawPassword:E,zipCrypto:P,encryptionStrength:d&&d.strength,signed:Fs(s,n,"checkSignature")&&!A,passwordVerification:P&&(x?m>>>8&I:h>>>24&I),outputSize:A?g:y,signature:h,compressed:0!=u&&!A,encrypted:_,useWebWorkers:Fs(s,n,Mn),useCompressionStream:J,transferStreams:Fs(s,n,_n),deflate64:X,checkPasswordOnly:V},config:f,me:{signal:B,size:W,onstart:q,onprogress:K,onend:G}};let ee;H&&await(async({reader:e,Ne:t,index:r,offset:n,signature:s,compressedSize:a,uncompressedSize:i,_e:o,dataDescriptor:c,extraFieldZip64:d,Ue:l})=>{let u=0;if(c&&(u=d?20:12),u){const r=await rt(e,o+a,u+4);if(r.length==u+4&&vs(de(r),0)==N){const e=vs(de(r),4);let n,o;d?(n=Ts(de(r),8),o=Ts(de(r),16)):(n=vs(de(r),8),o=vs(de(r),12)),(t.encrypted&&!t.zipCrypto||e==s)&&n==a&&o==i&&(u+=4)}}const f={start:n,end:o+a+u,Ne:t};for(const[e,t]of l)if(e!=r&&f.start<t.end&&t.start<f.end){const e=new w($n);throw e.Pe=t.Ne,e}l.set(r,f)})({reader:a,Ne:t,index:i,offset:S,signature:h,compressedSize:g,uncompressedSize:y,_e:L,dataDescriptor:x||b.bitFlag.dataDescriptor,extraFieldZip64:l||b.extraFieldZip64,Ue:r});try{if(!j){V&&(e=new D),e=new et(e),await tt(e,A?g:y),({writable:ee}=e);const{outputSize:t}=await Zr({readable:Z,writable:ee},$);if(e.size+=t,t!=(A?g:y))throw new w(ir)}}catch(t){if(t.outputSize!==Q&&(e.size+=t.outputSize),!V||t.message!=zt)throw t}finally{Fs(s,n,Pn)||!ee||ee.locked||await ee.getWriter().close()}return V||j?Q:e.getData?e.getData():ee}};function os(e,t,n){const s=e.rawBitFlag=As(t,n+2),a=!(1&~s),i=vs(t,n+6);r.assign(e,{encrypted:a,version:As(t,n),bitFlag:{level:(6&s)>>1,dataDescriptor:!(8&~s),languageEncodingFlag:(s&H)==H},rawLastModDate:i,lastModDate:Rs(i),filenameLength:As(t,n+22),extraFieldLength:As(t,n+24)})}function cs(e,t,n,s,a){const{rawExtraField:i}=t,d=t.extraField=new c,l=de(i);let u=0;try{for(;u<i.length;){const e=As(l,u),t=As(l,u+2);d.set(e,{type:e,data:i.slice(u+4,u+4+t)}),u+=4+t}}catch{}const f=As(n,s+4);r.assign(t,{signature:vs(n,s+10),compressedSize:vs(n,s+14),uncompressedSize:vs(n,s+18)});const p=d.get(1);p&&(((e,t)=>{t.zip64=!0;const r=de(e.data),n=ns.filter(([e,r])=>t[e]==r),s=n.reduce((e,[,t])=>e+ss[t].bytes,0);if(e.data.length<s)throw new w(Gn);for(let s=0,a=0;s<n.length;s++){const[i,o]=n[s],c=ss[o];t[i]=e[i]=c.Ce(r,a),a+=c.bytes}})(p,t),t.extraFieldZip64=p);const h=d.get(28789);h&&(ds(h,Yr,Xr,t,e),t.extraFieldUnicodePath=h);const m=d.get(25461);m&&(ds(m,Jr,Qr,t,e),t.extraFieldUnicodeComment=m);const y=d.get(39169);y&&y.data.length>=7?(((e,t,n)=>{const s=de(e.data),a=Ds(s,4);r.assign(e,{Le:Ds(s,0),vendorId:Ds(s,2),strength:a,originalCompressionMethod:n,compressionMethod:As(s,5)}),t.compressionMethod=e.compressionMethod})(y,t,f),t.extraFieldAES=y):t.compressionMethod=f;const g=d.get(10);g&&(((e,t)=>{const n=de(e.data);let s,a=4;try{for(;a<e.data.length&&!s;){const t=As(n,a),r=As(n,a+2);1==t&&(s=e.data.slice(a+4,a+4+r)),a+=4+r}}catch{}try{if(s&&24==s.length){const n=de(s),a=n.getBigUint64(0,!0),i=n.getBigUint64(8,!0),o=n.getBigUint64(16,!0);r.assign(e,{rawLastModDate:a,rawLastAccessDate:i,rawCreationDate:o});const c={lastModDate:Es(a),lastAccessDate:Es(i),creationDate:Es(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(g,t),t.extraFieldNTFS=g);const x=d.get(30805);if(x)ls(x,t,!1),t.extraFieldUnix=x;else{const e=d.get(30837);e&&(ls(e,t,!0),t.extraFieldInfoZip=e)}const b=d.get(V);b&&(((e,t,r)=>{if(!e.data.length)return;const n=de(e.data),s=Ds(n,0),a=[],i=[];r?(1&~s||(a.push(nn),i.push(sn)),2&~s||(a.push(an),i.push("rawLastAccessDate")),4&~s||(a.push(on),i.push(cn))):5>e.data.length||(a.push(nn),i.push(sn));let c=1;a.forEach((r,s)=>{if(e.data.length>=c+4){const a=vs(n,c);t[r]=e[r]=new o(1e3*(0|a));const d=i[s];e[d]=a}c+=4})})(b,t,a),t.extraFieldExtendedTimestamp=b);const S=d.get(6534);S&&(t.extraFieldUSDZ=S)}function ds(e,t,n,s,a){if(5>e.data.length)return void(e.valid=!1);const i=de(e.data),o=new wt;o.append(a[n]);const c=de(new f(4));c.setUint32(0,o.get(),!0);const d=vs(i,1);r.assign(e,{version:Ds(i,0),[t]:Gr(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&d==vs(c,0)}),e.valid&&(s[t]=e[t],s[t+"UTF8"]=!0)}function ls(e,t,n){try{const s=de(e.data);let a,i;if(n){let t=0;const n=Ds(s,t++),o=Ds(s,t++);a=us(e.data.subarray(t,t+o)),t+=o;const c=Ds(s,t++);i=us(e.data.subarray(t,t+c)),r.assign(e,{version:n,uid:a,gid:i})}else 4>e.data.length||(a=As(s,0),i=As(s,2),r.assign(e,{uid:a,gid:i}));a!==Q&&(t.uid=a),i!==Q&&(t.gid=i)}catch{}}function us(e){const t=new f(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function ws(e,t){return e.A?e.A(t):0}function fs(e,t){return e===Q?t?Zn:"balanced":e}const ps=64,hs=0,ms=1,ys=2;async function*gs(e,t){const r=e.size-t,n=await rt(e,r,t),s=de(n);for(let e=n.length-Z;e>=0;e--)vs(s,e)==P&&(yield[s,r,n,e,r+e])}function xs(e,t,r){return{offset:r,buffer:e.slice(t,t+Z).buffer}}async function bs(e,t,r,n,s,a,i){const o=As(t,n+10),c=vs(t,n+12),d=vs(t,n+16);if(o==U||c==C||d==C)return await Ss(e,t,r,s-B,a,i)==W?ys:hs;if(!o&&!c)return ms;const l=As(t,n+6);for(const n of[s-c,ws(e,l)+d])if(await Ss(e,t,r,n,a,i)==_)return ys;return hs}async function Ss(e,t,r,n,s,a){return 0>n||n+4>s?Q:r>n?a.count>0?(a.count--,vs(de(await rt(e,n,4)),0)):Q:vs(t,n-r)}function zs(e){const t=new w(es);throw t.reason=e,t}function Fs(e,t,r){return t[r]===Q?e.options[r]:t[r]}function Rs(e){const t=(4294901760&e)>>16,r=e&U;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{}}function Es(e){return new o(s(e/a(1e4)-a(116444736e5)))}function Ds(e,t){return e.getUint8(t)}function As(e,t){return e.getUint16(t,!0)}function vs(e,t){return e.getUint32(t,!0)}function Ts(e,t){return s(e.getBigUint64(t,!0))}var ks=r.freeze({__proto__:null,ERR_AMBIGUOUS_ARCHIVE:es,ERR_BAD_FORMAT:Vn,ERR_CENTRAL_DIRECTORY_NOT_FOUND:qn,ERR_ENCRYPTED:Yn,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:jn,ERR_EOCDR_NOT_FOUND:Hn,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:Gn,ERR_INVALID_COMPRESSED_DATA:or,ERR_INVALID_PASSWORD:bt,ERR_INVALID_SIGNATURE:St,ERR_INVALID_UNCOMPRESSED_SIZE:ir,ERR_LOCAL_FILE_HEADER_NOT_FOUND:Kn,ERR_OVERLAPPING_ENTRY:$n,ERR_SPLIT_ZIP_FILE:Qn,ERR_UNSUPPORTED_COMPRESSION:Jn,ERR_UNSUPPORTED_ENCRYPTION:Xn,ZipReader:as});const Cs="Zip file comment exceeds 64KB",Us="Version exceeds 65535",Is="Extra field data exceeds 64KB",Os=-2147483648,Ms=2147483647,Ns="Zip64 is not supported (set the 'zip64' option to 'true')",_s=new f([7,0,2,0,65,69,3,0,0]),Ps="infozip",Ls="unix";let Ws=0;const Zs=[];class Bs{constructor(e,t={}){e=new et(e);const{availableSize:n=$,maxSize:s=$}=e,a=n>0&&n!==$&&s>0&&s!==$;r.assign(this,{writer:e,We:a,options:t,config:ae(),files:new c,Ze:new d,offset:t[Ln]===Q?e.size||e.writable.size||0:t[Ln],Be:t[Ln]===Q?0:t[Ln]-(e.size||e.writable.size||0),Ve:new d,He:0,je:Q})}async prependZip(e){if(this.Ze.size)throw new w("Zip file not empty");e=new $e(e),await tt(e);const{ZipReader:t}=await g.resolve().then(()=>ks),n=new t(e.readable),s=await n.getEntries();await n.close(),await tt(this.writer),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.Ze=new d(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,rawLastModDate:n,lastAccessDate:s,creationDate:a,rawFilename:i,bitFlag:o,encrypted:c,uncompressedSize:d,compressedSize:l,zip64:u}=e;let{compressionMethod:w,qe:f,Ke:p,Ge:h,Ye:m,Xe:y,rawExtraField:g}=e;const{level:x,languageEncodingFlag:b,dataDescriptor:S}=o;f=f||re,p=p||re,h=h||re,m=m||re,y=y||re,g=g||re,e.extraFieldAES&&(w=99);const z=oa(f,p,h,m,y,g),F=u&&d>=C,R=u&&l>=C,E=-7&da(x,b,S,c,w)|x<<1,{Je:D,Qe:A}=ca({version:t,bitFlag:E,compressionMethod:w,uncompressedSize:d,compressedSize:l,rawLastModDate:n,rawFilename:i,$e:R,et:F,extraFieldLength:z}),{signature:v}=e;return v!==Q&&sa(A,10,v),r.assign(e,{et:F,$e:R,nt:u&&e.offset>=C,diskNumberStart:0,st:!1,qe:f,Ke:p,Ge:h,Ye:m,Xe:y,rawExtraField:g,extendedTimestamp:h.length>0||m.length>0,it:1+(s?2:0)+(a?4:0),Je:D,Qe:A}),[e.filename,e]}))}async add(e="",t,n={}){const s=this;n=r.assign({},n);const{Ve:i,config:c}=s;let d,l;Ws<c.maxWorkers?Ws++:await new g(e=>Zs.push(e));try{if(e=e.trim(),ta(s,n,xn)&&!e.endsWith(G)&&(e+=G),s.Ze.has(e))throw new w("File already exists");return s.Ze.add(e),l=!0,d=(async(e,t,n,s)=>{const i=((e,t,r)=>{t=t.trim();let n=ta(e,r,fn),s=ta(e,r,yn,n?20:768);const a=ta(e,r,bn),i=ta(e,r,"uid"),o=ta(e,r,"gid");let c=ta(e,r,Rn),d=ta(e,r,"unixExtraFieldType"),l=ta(e,r,En),u=ta(e,r,Dn),f=ta(e,r,An);if(i!==Q&&(0>i||i>C))throw new w("Invalid uid (must be integer 0..2^32-1)");if(o!==Q&&(0>o||o>C))throw new w("Invalid gid (must be integer 0..2^32-1)");if(c!==Q&&(0>c||c>U))throw new w("Invalid UNIX mode (must be integer 0..65535)");if(d!==Q&&d!==Ps&&d!==Ls)throw new w("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");if(d===Ls&&(i!==Q&&i>U||o!==Q&&o>U))throw new w("uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)");d!==Q||i===Q&&o===Q||(d=Ps);let p=ta(e,r,un),h=ta(e,r,wn);const m=p!==Q||h!==Q;if(i!==Q||o!==Q||c!==Q||d?(n=!1,s=s&U|768):m&&(n=!0,s&=I),p!==Q&&(0>p||p>I))throw new w("Invalid msdosAttributesRaw (must be integer 0..255)");if(h&&"object"!=typeof h)throw new w("Invalid msdosAttributes (must be an object with boolean flags)");if(s>U)throw new w(Us);let y=ta(e,r,ln,0);!r[xn]&&t.endsWith(G)&&(r[xn]=!0);const g=ta(e,r,xn);let x;return g?(t.endsWith(G)||(t+=G),0===y&&(y=16,n||(y|=16877<<16))):n||0!==y||(y=a?493<<16:27525120),n||(x=y>>16&U,c=c===Q?x:c&U,l?c|=q:l=!!(c&q),u?c|=K:u=!!(c&K),f?c|=512:f=!!(512&c),g&&(c|=j),y=(c&U)<<16|y&I),({msdosAttributesRaw:p,msdosAttributes:h}=((e,t)=>{if(e!==Q)e&=I;else if(t!==Q){const{readOnly:r,hidden:n,system:s,directory:a,archive:i}=t;let o=0;r&&(o|=1),n&&(o|=2),s&&(o|=4),a&&(o|=16),i&&(o|=32),e=o&I}return t===Q&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(p,h)),m&&(y=y&C|p&I),{name:t,ot:{versionMadeBy:s,msDosCompatible:n,externalFileAttributes:y,unixExternalUpper:x,uid:i,gid:o,unixMode:c,unixExtraFieldType:d,setuid:l,setgid:u,sticky:f,msdosAttributesRaw:p,msdosAttributes:h}}})(e,t,s);({name:t}=i);const c=((e,t,r)=>{const n=ta(e,r,"encodeText",pt);let s=n(t);if(s===Q&&(s=pt(t)),oa(s)>U)throw new w("File entry name exceeds 64KB");const a=r[Jr]||"";let i=n(a);if(i===Q&&(i=pt(a)),oa(i)>U)throw new w("File entry comment exceeds 64KB");const c=ta(e,r,mn,20);if(c>U)throw new w(Us);const d=ta(e,r,nn,new o),l=ta(e,r,an),u=ta(e,r,on),p=ta(e,r,dn,0),h=ta(e,r,Un);let m,y;h||(m=ta(e,r,kn),y=ta(e,r,Cn));const g=ta(e,r,"encryptionStrength",3),x=ta(e,r,gn),b=ta(e,r,"extendedTimestamp",!0),S=ta(e,r,"keepOrder",!0),z=ta(e,r,Mn),F=ta(e,r,_n),R=ta(e,r,"bufferedWrite"),E=ta(e,r,"createTempStream"),D=ta(e,r,"dataDescriptorSignature",!0),A=ta(e,r,In),v=ta(e,r,"useUnicodeFileNames",!0),T=ta(e,r,Sn);if(!h&&T!==Q&&0!==T&&8!==T)throw new w("Compression method not supported");let k=ta(e,r,"level"),C=ta(e,r,Nn),I=ta(e,r,"dataDescriptor");R&&I===Q&&(I=!1),(I===Q||x)&&(I=!0),k!==Q&&6!=k&&(C=!1),C||e.config.CompressionStream!==Q||e.config.CompressionStreamZlib!==Q||(k=0);const O=ta(e,r,pn);if(!x&&(m!==Q||y!==Q)&&(1>g||g>3))throw new w("The strength must equal 1, 2, or 3");let M=re;const N=r[Fn];if(N){let e=0,t=0;N.forEach(t=>e+=4+oa(t)),M=new f(e);const r=de(M);N.forEach((e,n)=>{if(n>U)throw new w("Extra field type exceeds 65535");if(oa(e)>U)throw new w(Is);na(r,t,n),na(r,t+2,oa(e)),ia(M,e,t+4),t+=4+oa(e)})}return{comment:a,ot:{rawFilename:s,rawComment:i,version:c,lastModDate:d,lastAccessDate:l,creationDate:u,internalFileAttributes:p,passThrough:h,password:m,rawPassword:y,encryptionStrength:g,zipCrypto:x,extendedTimestamp:b,keepOrder:S,useWebWorkers:z,transferStreams:F,bufferedWrite:R,createTempStream:E,dataDescriptorSignature:D,signal:A,useUnicodeFileNames:v,compressionMethod:T,level:k,useCompressionStream:C,dataDescriptor:I,zip64:O,rawExtraField:M}}})(e,t,s),{comment:d}=c,l=s[Fn];let u;e.files.set(t,Q);try{const o=await(async(e,t,{ot:r},n)=>{const{passThrough:s,zipCrypto:a,password:i,rawPassword:o,encryptionStrength:c}=r;let{dataDescriptor:d,zip64:l,level:u,compressionMethod:f}=r,p=0,h=0;if(s){if(!t)throw new w("Undefined reader");if(h=n[$r],h===Q)throw new w("Undefined uncompressed size")}const m=!0===l,y=ta(e,n,hn),g=!!t&&(!!(i&&oa(i)||o&&oa(o))||s&&y);t||(u=0,f=0);const x=g?a?12:16+4*c:0;t&&(t=new $e(t),await tt(t),s?(n.uncompressedSize=h,p=ra(h)+x):t.size===Q?(d=!0,(l||l===Q)&&(l=!0,h=p=4294967296)):(n.uncompressedSize=h=t.size,p=ra(h)+x));const b=m||h>=C,S=m||p>=C;if(b||S){if(!1===l)throw new w(Ns);l=!0}return l=l||!1,{reader:t,ot:{dataDescriptor:d,zip64:l,et:b,$e:S,uncompressedSize:h,level:u,compressionMethod:f,encrypted:g}}})(e,n,c,s);({reader:n}=o);const d=Ks(e.writer),l=qs(e.writer),p=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:n,creationDate:s,level:a,zip64:i,zipCrypto:o,useUnicodeFileNames:c,dataDescriptor:d,directory:l,rawExtraField:u,encryptionStrength:f,extendedTimestamp:p,passThrough:h,encrypted:m,et:y,$e:g,uncompressedSize:x}=e;let{version:b,compressionMethod:S}=e;const z=!l&&(S===Q?a===Q||a>0:0!==S);let F;const R=h||!z,E=i&&(e.bufferedWrite||!d||!y&&!g||R),D=E||i&&d&&(y||g);if(i&&(y||g)){const e=20,t=js(e);if(t.uint16(1),t.uint16(e-4),F=t.array,E&&(t.ct(x),R)){const e=m?o?12:16+4*f:0;t.ct(h?0:x+e)}}else F=re;let A,v,T,k,C;if(m&&!o){const e=js(oa(_s)+2);e.uint16(39169),e.bytes(_s),A=e.array,A[8]=f}else A=re;if(p){const e=Qs(r);if($s(e)){const t=9+(n?4:0)+(s?4:0),r=js(t);k=1+(n?2:0)+(s?4:0),r.uint16(V),r.uint16(t-4),r.uint8(k),r.uint32(e),n&&r.uint32(ea(Qs(n))),s&&r.uint32(ea(Qs(s))),T=r.array}else T=re;try{const e=Js(r),t=js(36);t.uint16(10),t.uint16(32),t.lt(4),t.uint16(1),t.uint16(24),t.ct(e),t.ct(Js(n)||e),t.ct(Js(s)||e),v=t.array}catch{v=re}}else v=T=re;try{const{uid:t,gid:r,unixExtraFieldType:n}=e;if(n!=Ps||t===Q&&r===Q)if(n!=Ls||t===Q&&r===Q)C=re;else{const e=js(8);e.uint16(30805),e.uint16(4),e.uint16((t===Q?0:t)&U),e.uint16((r===Q?0:r)&U),C=e.array}else{const e=Hs(t),n=Hs(r),s=3+e.length+n.length,a=js(4+s);a.uint16(30837),a.uint16(s),a.uint8(1),a.uint8(e.length),a.bytes(e),a.uint8(n.length),a.bytes(n),C=a.array}}catch{C=re}S===Q&&(S=z?8:0),i&&(b=b>45?b:45),m&&!o&&(b=b>51?b:51,A[9]=S,S=99);const I=D?oa(F):0,M=I+oa(A,T,v,C,u);if(M>U)throw new w(Is);const{Je:N,Qe:_,rawLastModDate:P}=ca({version:b,bitFlag:da(a,c,d,m,S),compressionMethod:S,uncompressedSize:x,lastModDate:J>r?J:r>X?X:r,rawFilename:t,$e:g,et:y,extraFieldLength:M}),L=js(Y+oa(t)+M),W=L.array,Z=de(W);return L.uint32(O),L.bytes(N),L.bytes(t),D&&L.bytes(F),L.bytes(A),L.bytes(T),L.bytes(v),L.bytes(C),L.bytes(u),d&&(g||sa(Z,18,0),y||sa(Z,22,0)),{ut:W,wt:Z,Je:N,Qe:_,lastModDate:r,rawLastModDate:P,encrypted:m,compressed:z,version:b,compressionMethod:S,it:k,qe:re,ft:I,Ge:T,Ye:v,Xe:C,Ke:A,extraFieldLength:M}})(s=r.assign({},s,i.ot,c.ot,o.ot,{internalFileAttribute:c.ot.internalFileAttributes,externalFileAttribute:i.ot.externalFileAttributes,signature:s[zn],offset:e.offset-d,diskNumberStart:l})),h=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:r})=>{let n,s=re,a=0,i=e?20:12;return r&&(i+=4),t&&(s=new f(i),n=de(s),r&&(a=4,sa(n,0,N))),{ht:s,yt:n,gt:a}})(s),m=oa(p.ut,h.ht);u=await(async(e,t,n,s,i)=>{const{files:o,writer:c}=e,{keepOrder:d,dataDescriptor:l,signal:u}=i,{xt:p}=s,h=e.options.usdz,m=e.je;let y,x,b,S,z,F,E,A={},v=0;o.set(t,A),e.je=A;try{let x;d&&(x=m&&m.lock,A.lock=new g(e=>b=e)),i.bufferedWrite||!d||e.bt||e.He||!l?(y=!0,e.He++,E=i.createTempStream?await i.createTempStream():new R(Q,Q,{highWaterMark:$}),E.size=0,await tt(c)):(E=c,await T()),await tt(E);const U=Ks(c);if(e.We){delete e.We;const t=new f(4);sa(de(t),0,M),await Xs(c,t),e.offset+=4}h&&!y&&Vs(s,e.offset-U);const{ut:O}=p;y||(await x,await k());const N=qs(c),_=Ys(e,c);if(A.diskNumberStart=N,y||(z=!0,F=c.size,await Xs(E,O)),A=await(async(e,t,{diskNumberStart:n,lock:s},i,o,c)=>{const{xt:d,St:l,zt:u}=i,{Je:f,Qe:p,lastModDate:h,rawLastModDate:m,encrypted:y,compressed:g,version:x,compressionMethod:b,qe:S,ft:z,Ge:F,it:R,Ye:E,Xe:D,Ke:A}=d,{ht:v}=l,{rawFilename:T,lastAccessDate:k,creationDate:U,password:O,rawPassword:M,level:N,zip64:_,et:P,$e:L,zipCrypto:W,dataDescriptor:Z,directory:B,executable:V,versionMadeBy:H,rawComment:j,rawExtraField:q,useWebWorkers:K,transferStreams:G,onstart:Y,onprogress:X,onend:J,signal:$,encryptionStrength:ee,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:ne,externalFileAttributes:se,uid:ae,gid:ie,unixMode:oe,setuid:ce,setgid:de,sticky:le,unixExternalUpper:ue,msdosAttributesRaw:we,msdosAttributes:fe,useCompressionStream:pe,passThrough:he}=c,me={lock:s,versionMadeBy:H,zip64:_,directory:!!B,executable:!!V,filenameUTF8:!0,rawFilename:T,commentUTF8:!0,rawComment:j,qe:S,ft:z,Ge:F,Ye:E,Xe:D,Ke:A,rawExtraField:q,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:ne,externalFileAttributes:se,diskNumberStart:n,uid:ae,gid:ie,unixMode:oe,setuid:ce,setgid:de,sticky:le,unixExternalUpper:ue,msdosAttributesRaw:we,msdosAttributes:fe};let{signature:ye,uncompressedSize:ge}=c,xe=0;he||(ge=0);const{writable:be}=t;if(e){const r=e.createReadable?e.createReadable():e.readable,n=e.size,s={options:{codecType:mr,level:N,rawPassword:M,password:O,encryptionStrength:ee,zipCrypto:y&&W,passwordVerification:y&&W&&m>>8&I,signed:!he,compressed:g&&!he,encrypted:y&&!he,useWebWorkers:K,useCompressionStream:pe,transferStreams:G},config:o,me:{signal:$,size:n,onstart:Y,onprogress:X,onend:J}};try{const e=await Zr({readable:r,writable:be},s);if(xe=e.outputSize,t.size+=xe,he||(ge=e.inputSize,ye=e.signature),!L&&xe>=C||!P&&ge>=C)throw new w(Ns)}catch(e){throw e.outputSize!==Q&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:r,xt:n,St:s},{zip64:i,zipCrypto:o,dataDescriptor:c})=>{const{Qe:d,encrypted:l}=n,{yt:u,gt:w}=s;l&&!o||e===Q||(sa(d,10,e),c&&sa(u,w,e)),i?c&&(aa(u,w+4,a(t)),aa(u,w+12,a(r))):(sa(d,14,t),sa(d,18,r),c&&(sa(u,w+4,t),sa(u,w+8,r)))})({signature:ye,compressedSize:xe,uncompressedSize:ge,xt:d,St:l},c),Z&&await Xs(t,v),r.assign(me,{uncompressedSize:ge,compressedSize:xe,lastModDate:h,rawLastModDate:m,creationDate:U,lastAccessDate:k,encrypted:y,zipCrypto:W,size:u+xe,compressionMethod:b,version:x,Je:f,Qe:p,signature:ye,it:R,et:P,$e:L}),me})(n,E,A,s,e.config,i),y||(z=!1),o.set(t,A),A.filename=t,y){if(await g.all([E.writable.getWriter().close(),x]),await T(),S=!0,F=c.size,await k(),A.diskNumberStart=qs(c),A.offset=Ys(e,c),h){const t=s.zt;Vs(s,e.offset-Ks(c)),A.size+=s.zt-t}(({rawFilename:e,encrypted:t,zip64:r,ft:n,signature:s,compressedSize:i,uncompressedSize:o,et:c,$e:d},l,{dataDescriptor:u})=>{if(u||(t||sa(l,14,s),d||sa(l,18,i),c||sa(l,22,o)),r&&n){const t=Y+oa(e)+4;aa(l,t,a(o)),aa(l,t+8,a(i))}})(A,p.wt,i),await Xs(c,p.ut),await(async(e,t,r)=>{const n=t.writable.getWriter();try{await e.pipeTo(new D({async write(e){var t;await n.ready,await n.write(e),t=oa(e),v+=t}}),{preventClose:!0,preventAbort:!0,signal:r})}finally{n.releaseLock()}})(E.readable,c,u),c.size+=E.size,S=!1}else A.diskNumberStart=N,A.offset=_;return e.offset+=A.size,A}catch(r){if(S||z){if(e.hasCorruptedEntries=!0,r)try{r.corruptedEntry=!0}catch{}e.offset+=c.size-F,y&&(e.offset+=v)}throw o.delete(t),r}finally{if(y&&e.He--,b&&b(),x&&x(),y&&E&&E.dispose)try{await E.dispose()}catch{}}async function T(){e.bt=!0;const{Ft:t}=e;e.Ft=new g(t=>x=()=>{e.bt=!1,t()}),await t}async function k(){Gs(c,oa(p.ut))&&await c.closeDisk()}})(e,t,n,{xt:p,St:h,zt:m},s)}catch(r){throw e.files.delete(t),r}return r.assign(u,{name:t,comment:d,extraField:l}),new Tn(u)})(s,e,t,n),i.add(d),await d}catch(t){throw l&&s.Ze.delete(e),t}finally{i.delete(d);const e=Zs.shift();e?e():Ws--}}remove(e){const{Ze:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==Q){const{filename:n}=e;if(t.has(n)&&r.has(n))return t.delete(n),r.delete(n),!0}return!1}async close(e=re,r={}){const{Ve:n,writer:s}=this,{writable:i}=s;if(oa(e)>U)throw new w(Cs);for(;n.size;)await g.allSettled(t.from(n));return await(async(e,r,n)=>{const s=(e=>{let t=0;for(const[,r]of e){const{rawFilename:e,Ke:n,rawComment:s,Ye:a,Xe:i,rawExtraField:o,extendedTimestamp:c,it:d,lastModDate:l,et:u,$e:f,uncompressedSize:p,compressedSize:h}=r,m=r.offset>=C,y=r.diskNumberStart>=U;let g,x;if(m||y||u||f){const e=4+(u?8:0)+(f?8:0)+(m?8:0)+(y?4:0),t=js(e);t.uint16(1),t.uint16(e-4),u&&t.ct(p),f&&t.ct(h),m&&t.ct(r.offset),y&&t.uint32(r.diskNumberStart),g=t.array}else g=re;r.qe=g,r.nt=m,r.st=y;const b=Qs(l);if(c&&$s(b)){const e=js(9);e.uint16(V),e.uint16(5),e.uint8(d),e.uint32(b),x=e.array}else x=re;r.Ge=x;const S=oa(g,n,a,i,x,o);if(S>U)throw new w(Is);t+=46+oa(e,s)+S}return t})(e.files),i=await(async(e,r,n)=>{const{files:s,writer:a}=e,i=new f(r);await tt(a);let o=0,c=0,d=qs(a),l=Ks(a);for(const[e,r]of t.from(s.values()).entries()){const{offset:t,rawFilename:u,qe:w,Ke:f,Ge:p,Ye:h,Xe:m,rawExtraField:y,rawComment:g,versionMadeBy:x,Je:b,Qe:S,et:z,$e:F,st:R,nt:E,internalFileAttributes:D,externalFileAttributes:A,diskNumberStart:v,uncompressedSize:T,compressedSize:k}=r,I=oa(w,f,p,h,m,y),O=46+oa(u,g)+I;Gs(a,o+O-c)&&(await Xs(a,i.slice(c,o)),c=o,await a.closeDisk()),0==e&&(d=qs(a),l=Ks(a)),z||sa(S,18,T),F||sa(S,14,k),(E||R)&&45>r.version&&na(S,0,45);const M=js(O);if(M.uint32(_),M.uint16(x),M.bytes(b.subarray(0,24)),M.uint16(I),M.uint16(oa(g)),M.uint16(R?U:v),M.uint16(D),M.uint32(A),M.uint32(E?C:t),M.bytes(u),M.bytes(w),M.bytes(f),M.bytes(p),M.bytes(h),M.bytes(m),M.bytes(y),M.bytes(g),ia(i,M.array,o),o+=O,n.onprogress)try{await n.onprogress(e+1,s.size,new Tn(r))}catch{}}return await Xs(a,c?i.slice(c):i),{diskNumber:d,diskOffset:l}})(e,s,n);await(async(e,t,r,n)=>{const{writer:s}=e,{Rt:i}=n;let{Et:o}=n,c=e.files.size,d=i.diskNumber,l=Ys(e,i),u=qs(s);Gs(s,Z)&&u++;let f=ta(e,r,pn);if(!(C>l&&C>o&&U>c&&U>u)){if(!1===f)throw new w(Ns);f=!0}const p=oa(t);if(p>U)throw new w(Cs);const h=js(f?98:Z);Gs(s,oa(h.array)+p)&&await s.closeDisk(),u=qs(s),f&&(h.uint32(L),h.ct(44),h.uint16(45),h.uint16(45),h.uint32(u),h.uint32(d),h.ct(c),h.ct(c),h.ct(o),h.ct(l),h.uint32(W),h.uint32(u),h.ct(a(Ys(e,s))+a(o)),h.uint32(u+1),ta(e,r,"supportZip64SplitFile",!0)&&(u=U,d=U),c=U,l=C,o=C),h.uint32(P),h.uint16(u),h.uint16(d),h.uint16(c),h.uint16(c),h.uint32(o),h.uint32(l),h.uint16(p),await Xs(s,h.array),p&&await Xs(s,t)})(e,r,n,{Rt:i,Et:s})})(this,e,r),ta(this,r,Pn)||await i.getWriter().close(),s.getData?s.getData():i}}function Vs(e,t){const{xt:r}=e;let{ut:n,extraFieldLength:s}=r,a=64-(t+oa(n))%64;4>a&&(a+=64);const i=new f(a),o=de(i);na(o,0,6534),na(o,2,a-4);const c=n;r.ut=n=new f(oa(c)+a),ia(n,c),ia(n,i,oa(c));const d=de(n);na(d,28,s+a),r.wt=d,e.zt+=a}function Hs(e){if(e===Q)return re;{const t=new f(4);de(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function js(e){const t=new f(e),r=de(t);let n=0;return{array:t,uint8:e=>{((e,t,r)=>{e.setUint8(t,r)})(r,n,e),n+=1},uint16:e=>{na(r,n,e),n+=2},uint32:e=>{sa(r,n,e),n+=4},ct:e=>{aa(r,n,a(e)),n+=8},bytes:e=>{ia(t,e,n),n+=oa(e)},lt:e=>n+=e}}function qs(e){const{diskNumber:t=0}=e;return t}function Ks(e){const{diskOffset:t=0}=e;return t}function Gs(e,t){const{availableSize:r=$}=e;return t>r}function Ys(e,{diskNumber:t=0,diskOffset:r=0}){return e.offset-r-(t?e.Be:0)}async function Xs(e,t){const{writable:r}=e,n=r.getWriter();try{await n.ready,e.size+=oa(t),await n.write(t)}finally{n.releaseLock()}}function Js(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function Qs(e){return i.floor(e.getTime()/1e3)}function $s(e){return e>=Os&&Ms>=e}function ea(e){return i.min(Ms,i.max(Os,e))}function ta(e,t,r,n){const s=t[r]===Q?e.options[r]:t[r];return s===Q?n:s}function ra(e){return e+5*(i.floor(e/16383)+1)}function na(e,t,r){e.setUint16(t,r,!0)}function sa(e,t,r){e.setUint32(t,r,!0)}function aa(e,t,r){e.setBigUint64(t,r,!0)}function ia(e,t,r){e.set(t,r)}function oa(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function ca({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:n,compressedSize:s,lastModDate:a,rawLastModDate:i,rawFilename:o,$e:c,et:d,extraFieldLength:l}){const u=js(26),w=u.array,f=de(w);if(u.uint16(e),u.uint16(t),u.uint16(r),i===Q){const e=new h(1),t=de(e);na(t,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),na(t,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate()),i=e[0]}return u.uint32(i),u.lt(4),c||s!==Q?u.uint32(c?C:s):u.lt(4),d||n!==Q?u.uint32(d?C:n):u.lt(4),u.uint16(oa(o)),u.uint16(l),{Je:w,Qe:f,rawLastModDate:i}}function da(e,t,r,n,s){let a=0;return t&&(a|=H),r&&(a|=8),8!=s&&9!=s||(0>e||e>3||(a|=6),e>3&&5>=e&&(a|=4),9==e&&(a|=2)),n&&(a|=1),a}const la="Entry filename already exists";class ua{constructor(e,t,n,s){const a=this;if(e.root&&s&&s.getChildByName(t))throw new w(la);n||(n={}),r.assign(a,{fs:e,name:t,data:n.data,options:n.options,id:e.Dt++,parent:s,children:[],uncompressedSize:n.uncompressedSize||0,passThrough:n.passThrough}),!s&&e.root||(e.entries[a.id]=a),s&&a.parent.children.push(a)}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 w(la);this.name=e}}class wa extends ua{constructor(e,t,r,n){super(e,t,r,n);const s=this;s.Reader=r.Reader,s.Writer=r.Writer,r.getData&&(s.getData=r.getData)}clone(){return new wa(this.fs,this.name,this)}async getData(e,t={}){const r=this;if(!e||e.constructor==r.Writer&&r.data)return r.data;{const n=r.reader=ga(r.Reader,r.data,t),s=r.data?r.data.uncompressedSize:n.size;await g.all([tt(n),tt(e,s)]);const{readable:a}=n;return r.uncompressedSize=n.size,await a.pipeTo(e.writable),e.getData?e.getData():e.writable}}isPasswordProtected(){return!(!this.data||!this.data.encrypted)}async checkPassword(e,t={}){const n=this;if(!n.isPasswordProtected())return!0;try{return await n.data.getData(null,r.assign({},t,{password:e,checkPasswordOnly:!0})),!0}catch(e){if(e.message==bt)return!1;throw e}}getText(e,t){return this.getData(new ke(e),t)}getBlob(e,t){return this.getData(new ve(e),t)}getData64URI(e,t){return this.getData(new Re(e),t)}getUint8Array(e){return this.getData(new Xe,e)}getWritable(e=new D,t){return this.getData({writable:e},t)}async getArrayBuffer(e){return ce(await this.getUint8Array(e)).buffer}replaceBlob(e){r.assign(this,{data:e,Reader:Ae,Writer:ve,reader:null})}replaceText(e){r.assign(this,{data:e,Reader:Te,Writer:ke,reader:null})}replaceData64URI(e){r.assign(this,{data:e,Reader:Fe,Writer:Re,reader:null})}replaceUint8Array(e){r.assign(this,{data:e,Reader:Ye,Writer:Xe,reader:null})}replaceReadable(e){r.assign(this,{data:null,Reader:ma(e),Writer:null,reader:null})}}class fa extends ua{constructor(e,t,r,n){super(e,t,r,n),this.directory=!0}clone(e){const t=this,r=new fa(t.fs,t.name,t);return e&&(r.children=t.children.map(t=>{const n=t.clone(e);return n.parent=r,n})),r}addDirectory(e,t){return Ra(this,e,{options:t},!0)}addText(e,t,r={}){return Ra(this,e,{data:t,Reader:Te,Writer:ke,options:r,uncompressedSize:t.length})}addBlob(e,t,r={}){return Ra(this,e,{data:t,Reader:Ae,Writer:ve,options:r,uncompressedSize:t.size})}addData64URI(e,t,r={}){let n=t.length;for(;"="==t.charAt(n-1);)n--;const s=t.indexOf(",")+1;return Ra(this,e,{data:t,Reader:Fe,Writer:Re,options:r,uncompressedSize:i.floor(.75*(n-s))})}addUint8Array(e,t,r={}){return Ra(this,e,{data:t,Reader:Ye,Writer:Xe,options:r,uncompressedSize:t.length})}addHttpContent(e,t,r={}){return Ra(this,e,{data:t,Reader:class extends Ge{constructor(e){super(e,r)}},options:r})}addReadable(e,t,r={}){return Ra(this,e,{Reader:ma(t),options:r})}addFileSystemEntry(e,t={}){return Sa(this,e,t)}addFileSystemHandle(e,t={}){return Sa(this,e,t)}addFile(e,t={}){return(t=r.assign({},t)).lastModDate||(t.lastModDate=new o(e.lastModified)),Ra(this,e.name,{data:e,Reader:()=>({readable:e.stream(),size:e.size}),options:t,uncompressedSize:e.size})}At(e,t){return Ra(this,e,t)}importBlob(e,t){return this.importZip(new Ae(e),t)}importData64URI(e,t){return this.importZip(new Fe(e),t)}importUint8Array(e,t){return this.importZip(new Ye(e),t)}importHttpContent(e,t){return this.importZip(new Ge(e,t),t)}importReadable(e,t){return this.importZip({readable:e},t)}exportBlob(e={}){return this.exportZip(new ve(e.mimeType||"application/zip"),e)}exportData64URI(e={}){return this.exportZip(new Re(e.mimeType||"application/zip"),e)}exportUint8Array(e={}){return this.exportZip(new Xe,e)}async exportWritable(e=new D,t={}){return await this.exportZip({writable:e},t),e}exportFileSystemHandle(e,n={}){return(async(e,n,s)=>{const a=ha([e],"uncompressedSize"),i=new c;return await o(e,n),n;async function o(e,t){if(s.concurrent){const r=(await g.allSettled(e.children.map(e=>d(e,t)))).find(e=>"rejected"==e.status);if(r)throw r.reason}else for(const r of e.children)await d(r,t)}async function d(e,n){try{if(e.directory){const t=await n.getDirectoryHandle(e.name,{create:!0});await o(e,t)}else{const o=await n.getFileHandle(e.name,{create:!0}),c=await o.createWritable();await e.getData({writable:c},r.assign({},s,{onprogress:async r=>{if(s.onprogress){i.set(e.id,r);try{await s.onprogress(t.from(i.values()).reduce((e,t)=>e+t,0),a)}catch{}}}}))}}catch(t){throw new w(t.message+(e?" ("+e.name+")":""),{cause:t})}}})(this,e,n)}async importZip(e,t={}){await tt(e);const n=new as(e,t),s=[],a=await n.getEntries();for(const e of a){let n=this;try{const a=e.filename.split("/"),i=a.pop();if(a.forEach(e=>{const t=n;if(n=n.getChildByName(e),n){if(!n.directory)throw new w(la)}else n=new fa(this.fs,e,{data:null},t),s.push(n)}),e.directory){let t=n;if(i)if(t=n.getChildByName(i),t){if(!t.directory)throw new w(la)}else t=new fa(this.fs,i,{data:null},n),s.push(t);t==this||t.data||(t.data=e)}else s.push(Ra(n,i,{data:e,Reader:ya(r.assign({},t)),uncompressedSize:e.uncompressedSize,passThrough:t.passThrough}))}catch(t){try{t.cause={entry:e}}catch{}throw t}}return s}async exportZip(e,n={}){const s=this;(n=r.assign({},n)).bufferedWrite===Q&&(n.bufferedWrite=!0);const[a]=await g.all([xa(s,n.readerOptions),tt(e)]),i=new Bs(e,n);return await(async(e,n,s,a,i)=>{const o=n,d=new c;await async function e(n,c){async function l(c){const l=a.relativePath?c.getRelativeName(o):c.getFullname(),u=c.options||{};let w={};if(c.data instanceof Tn){const{externalFileAttributes:e,versionMadeBy:t,comment:n,lastModDate:s,creationDate:a,lastAccessDate:i,uncompressedSize:o,encrypted:d,zipCrypto:l,signature:u,compressionMethod:f,extraFieldAES:p}=c.data;if(w={externalFileAttributes:e,versionMadeBy:t,comment:n,lastModDate:s,creationDate:a,lastAccessDate:i},c.passThrough){let e,t;0===f&&(e=0),p&&(t=p.strength),w=r.assign(w,{passThrough:!0,encrypted:d,zipCrypto:l,signature:u,uncompressedSize:o,level:e,encryptionStrength:t,compressionMethod:f})}}await n.add(l,i.get(c),r.assign({},a,w,u,{directory:c.directory,onprogress:async e=>{if(a.onprogress){d.set(l,e);try{await a.onprogress(t.from(d.values()).reduce((e,t)=>e+t),s)}catch{}}}})),await e(n,c)}await(async()=>{if(a.bufferedWrite){const e=(await g.allSettled(c.children.map(l))).find(e=>"rejected"==e.status);if(e)throw e.reason}else for(const e of c.children)await l(e)})()}(e,n)})(i,s,ha([s],"uncompressedSize"),n,a),await i.close(),e.getData?e.getData():e.writable}getChildByName(e){const t=this.children;for(let r=0;r<t.length;r++){const n=t[r];if(n.name==e)return n}}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 g.all(r.map(r=>r.checkPassword(e,t)))).includes(!1)}}const pa={FS:class{constructor(){Fa(this)}get children(){return this.root.children}remove(e){ba(e);const t=[e];for(;t.length;){const e=t.pop();this.entries[e.id]=null;for(const r of e.children)t.push(r)}e.parent=Q}move(e,t){if(e==this.root)throw new w("Root directory cannot be moved");if(!t.directory)throw new w("Target entry is not a directory");if(t.isDescendantOf(e))throw new w("Entry is a ancestor of target entry");if(e!=t){const r=t.getChildByName(e.name);if(r){if(r!=e)throw new w(la)}else ba(e),e.parent=t,t.children.push(e),((e,t)=>{const r=[t];for(;r.length;){const t=r.pop();e.entries[t.id]=t;for(const e of t.children)r.push(e)}})(this,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||(r=this.entries.find(t=>t&&(t==this.root||t.isDescendantOf(this.root))&&t.getRelativeName()==e)),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)}At(e,t){return this.root.At(e,t)}importBlob(e,t){return Fa(this),this.root.importBlob(e,t)}importData64URI(e,t){return Fa(this),this.root.importData64URI(e,t)}importUint8Array(e,t){return Fa(this),this.root.importUint8Array(e,t)}importHttpContent(e,t){return Fa(this),this.root.importHttpContent(e,t)}importReadable(e,t){return Fa(this),this.root.importReadable(e,t)}importZip(e,t){return Fa(this),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)}exportFileSystemHandle(e,t){return this.root.exportFileSystemHandle(e,t)}exportZip(e,t){return this.root.exportZip(e,t)}isPasswordProtected(){return this.root.isPasswordProtected()}checkPassword(e,t){return this.root.checkPassword(e,t)}},ZipDirectoryEntry:fa,ZipFileEntry:wa};function ha(e,r){let n=0;const s=t.from(e);for(;s.length;){const e=s.pop();n+=e[r]||0;for(const t of e.children)s.push(t)}return n}function ma(e){let t;return()=>{if(t)throw new w("Readable stream already consumed");return t=!0,{readable:e}}}function ya(e){return class extends Se{constructor(e,t={}){super(),this.entry=e,this.options=t}async init(){const t=this;t.size=t.entry.uncompressedSize;const n=await t.entry.getData(new ve,r.assign({},e,t.options));t.data=n,t.vt=new Ae(n),super.init()}readUint8Array(e,t){return this.vt.readUint8Array(e,t)}}}function ga(e,t,r){return e.prototype?new e(t,r):e(t,r)}async function xa(e,t){const r=[],n=[e],s=new c;for(;n.length;){const e=n.pop();for(const t of e.children)t.directory?n.push(t):r.push(t)}return await g.all(r.map(async e=>{const r=e.reader=ga(e.Reader,e.data,t);s.set(e,r);try{await tt(r)}catch(t){try{t.entryId=e.id,t.cause={entry:e}}catch{}throw t}r.size!==Q&&(e.uncompressedSize=r.size)})),s}function ba(e){if(e.parent){const t=e.parent.children;t.forEach((r,n)=>{r.id==e.id&&t.splice(n,1)})}}function Sa(e,t,n){return async function e(t,s,a){if(s)try{if((s.isFile||s.isDirectory)&&(s=await za(s)),"file"==s.kind){const e=await s.getFile();a.push(t.At(e.name,{Reader:()=>({readable:e.stream(),size:e.size}),options:r.assign({},{lastModDate:new o(e.lastModified)},n),uncompressedSize:e.size}))}else if("directory"==s.kind){const r=t.addDirectory(s.name);a.push(r);for await(const t of s.values())await e(r,t,a)}}catch(e){const t=e.message+(s?" ("+s.name+")":"");throw new w(t,{cause:e})}return a}(e,t,[])}async function za(e){const t={name:e.name};if(e.isFile&&(t.kind="file",t.getFile=()=>new g((t,r)=>e.file(t,r))),e.isDirectory){t.kind="directory";const r=await(async e=>{const t=[];function r(e,n,s){e.readEntries(async a=>{if(a.length){for(const e of a)t.push(await za(e));r(e,n,s)}else n(t)},s)}return await new g((t,n)=>r(e.createReader(),t,n)),{[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 Fa(e){e.entries=[],e.Dt=0,e.root=new fa(e)}function Ra(e,t,r,n){if(e.directory)return n?new fa(e.fs,t,r,e):new wa(e.fs,t,r,e);throw new w("Parent entry is not a directory")}e.fs=pa});
|