From 339d87bf86379176bae657385ceeb5da816ba8f3 Mon Sep 17 00:00:00 2001 From: UA1ZBE Date: Fri, 5 Jun 2026 09:48:14 +0300 Subject: [PATCH] feat: add web flasher (Vue 3 + Web Serial DFU) and DFU zip generation --- flasher/Heltec_T114_Beacon_BLE.dfu.zip | Bin 0 -> 305769 bytes flasher/create_dfu_zip.py | 152 ++++++++ flasher/index.html | 385 ++++++++++++++++++++ flasher/lib/console.js | 98 ++++++ flasher/lib/dfu.js | 469 +++++++++++++++++++++++++ flasher/lib/zip.min.js | 1 + flasher/pio_create_dfu_zip.py | 116 ++++++ variants/heltec_t114/platformio.ini | 2 + 8 files changed, 1223 insertions(+) create mode 100644 flasher/Heltec_T114_Beacon_BLE.dfu.zip create mode 100644 flasher/create_dfu_zip.py create mode 100644 flasher/index.html create mode 100644 flasher/lib/console.js create mode 100644 flasher/lib/dfu.js create mode 100644 flasher/lib/zip.min.js create mode 100644 flasher/pio_create_dfu_zip.py diff --git a/flasher/Heltec_T114_Beacon_BLE.dfu.zip b/flasher/Heltec_T114_Beacon_BLE.dfu.zip new file mode 100644 index 0000000000000000000000000000000000000000..73b59aa077d902d1c002f89dd19c3e26127eb733 GIT binary patch literal 305769 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%0D?h^zbL>;Y*;U13G%3 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�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 D8!3$% literal 0 HcmV?d00001 diff --git a/flasher/create_dfu_zip.py b/flasher/create_dfu_zip.py new file mode 100644 index 0000000..b58bfb3 --- /dev/null +++ b/flasher/create_dfu_zip.py @@ -0,0 +1,152 @@ +#!/usr/bin/env python3 +""" +Convert .hex or .uf2 to nRF52 DFU .zip for Web Serial flashing. + +Usage: + python3 create_dfu_zip.py firmware.hex firmware.dfu.zip + python3 create_dfu_zip.py firmware.uf2 firmware.dfu.zip +""" + +import sys +import os +import json +import struct +import zipfile +import hashlib + +def hex_to_bin(hex_path): + """Convert Intel HEX to raw binary.""" + from intelhex import IntelHex + ih = IntelHex(hex_path) + # Use the full address range or just the used portion + min_addr = ih.minaddr() if ih.minaddr() is not None else 0 + max_addr = ih.maxaddr() if ih.maxaddr() is not None else 0 + size = max_addr - min_addr + 1 + # Align to page size (4KB for nRF52840) + page_size = 0x1000 + aligned_size = ((size + page_size - 1) // page_size) * page_size + data = ih.tobinarray(start=min_addr, size=aligned_size) + return bytes(data), min_addr + +def uf2_to_bin(uf2_path): + """Convert UF2 to raw binary.""" + FAMILY_NRF52840 = 0xADA52840 + data = {} + with open(uf2_path, 'rb') as f: + while True: + block = f.read(512) + if not block or len(block) < 512: + break + magic0, magic1, flags, addr, size, seq, num = struct.unpack_from(' [fw_version] [hw_version]") + sys.exit(1) + + input_path = sys.argv[1] + output_path = sys.argv[2] + fw_version = int(sys.argv[3]) if len(sys.argv) > 3 else 1 + hw_version = int(sys.argv[4]) if len(sys.argv) > 4 else 52 + + ext = os.path.splitext(input_path)[1].lower() + + if ext == '.hex': + try: + bin_data, base_addr = hex_to_bin(input_path) + except ImportError: + print("Error: intelhex package required for .hex files.") + print("Install: pip install intelhex") + sys.exit(1) + elif ext == '.uf2': + bin_data, base_addr = uf2_to_bin(input_path) + else: + print(f"Unsupported format: {ext}") + sys.exit(1) + + manifest, fw_bin, fw_dat = create_dfu_zip(bin_data, base_addr, fw_version, hw_version) + + with zipfile.ZipFile(output_path, 'w', zipfile.ZIP_DEFLATED) as zf: + zf.writestr("manifest.json", json.dumps(manifest, indent=2)) + zf.writestr("firmware.bin", fw_bin) + zf.writestr("firmware.dat", fw_dat) + + size = os.path.getsize(output_path) + print(f"DFU zip created: {output_path}") + print(f" Size: {size} bytes ({size/1024:.0f} KB)") + print(f" Firmware: {len(fw_bin)} bytes @ 0x{base_addr:08X}") + +if __name__ == '__main__': + main() diff --git a/flasher/index.html b/flasher/index.html new file mode 100644 index 0000000..a7f4912 --- /dev/null +++ b/flasher/index.html @@ -0,0 +1,385 @@ + + + + + + MeshCore Firmware Flasher + + + + + + + + + + diff --git a/flasher/lib/console.js b/flasher/lib/console.js new file mode 100644 index 0000000..707b6bd --- /dev/null +++ b/flasher/lib/console.js @@ -0,0 +1,98 @@ +function delay(msecs) { + return new Promise((resolve) => setTimeout(resolve, msecs)); +} + +class LineBreakTransformer { + chunks = ''; + port = null; + + transform(chunk, controller) { + // Append new chunks to existing chunks. + this.chunks += chunk; + // For each line breaks in chunks, send the parsed lines out. + const lines = this.chunks.split('\r\n'); + this.chunks = lines.pop(); + lines.forEach((line) => controller.enqueue(line + '\r\n')); + } + + flush(controller) { + // When the stream is closed, flush any remaining chunks out. + controller.enqueue(this.chunks); + } +} + +export class SerialConsole { + connected = false; + constructor(port) { + this.port = port; + this.controller = new AbortController(); + this.signal = this.controller.signal; + this.onOutput = (text) => { + console.log(text); + }; + } + + async connect() { + try { + await this.port.open({ baudRate: 115200 }); + this.connected = true; + await this.port.readable + .pipeThrough(new TextDecoderStream(), { signal: this.signal }) + .pipeThrough(new TransformStream(new LineBreakTransformer())) + .pipeTo( + new WritableStream({ + write: (chunk) => { + this.addLine(chunk.replace('\r', '')); + }, + }), + ); + + // Check AFTER the pipeTo has completed (or been aborted) + if (!this.signal.aborted) { + this.addLine('\n\n*** Terminal disconnected'); + this.connected = false; + } + } catch (e) { + this.addLine(`\n\n*** Terminal disconnected: ${e}`); + this.connected = false; + } finally { + await delay(100); + } + } + + addLine(text) { + this.onOutput(text); + } + + async sendCommand(command) { + const encoder = new TextEncoder(); + const writer = this.port.writable.getWriter(); // Get writer from 'this.port' + await writer.write(encoder.encode(command + '\r\n')); + try { + writer.releaseLock(); + } catch (err) { + console.error('Ignoring release lock error', err); + } + } + + async disconnect() { + this.controller.abort(); + await delay(50); + await this.port.close(); + } + + async reset() { + console.debug('Triggering reset'); + await this.port.setSignals({ + dataTerminalReady: false, + requestToSend: true, + }); + await delay(250); + await this.port.setSignals({ + dataTerminalReady: false, + requestToSend: false, + }); + + await delay(1250); + } +} \ No newline at end of file diff --git a/flasher/lib/dfu.js b/flasher/lib/dfu.js new file mode 100644 index 0000000..412dc15 --- /dev/null +++ b/flasher/lib/dfu.js @@ -0,0 +1,469 @@ +import * as zip from "./zip.min.js"; + +// Constants adapted from dfu/dfu_transport_serial.py +const DFU_TOUCH_BAUD = 1200; +const SERIAL_PORT_OPEN_WAIT_TIME = 0.1; +const TOUCH_RESET_WAIT_TIME = 1.5; + +const DEFAULT_SERIAL_PORT_TIMEOUT = 1.0; // Timeout time on serial port read +const FLASH_PAGE_SIZE = 4096; +const FLASH_PAGE_ERASE_TIME = 0.0897; // nRF52840 max erase time +const FLASH_WORD_WRITE_TIME = 0.000100; // nRF52840 max write time +const FLASH_PAGE_WRITE_TIME = (FLASH_PAGE_SIZE / 4) * FLASH_WORD_WRITE_TIME; +const DFU_PACKET_MAX_SIZE = 512; + +const DATA_INTEGRITY_CHECK_PRESENT = 1; +const RELIABLE_PACKET = 1; +const HCI_PACKET_TYPE = 14; + +const DFU_INIT_PACKET = 1; +const DFU_START_PACKET = 3; +const DFU_DATA_PACKET = 4; +const DFU_STOP_DATA_PACKET = 5; +const DFU_ERASE_PAGE = 6; // Added for explicit page erase + +const DFU_UPDATE_MODE_APP = 4; + +// --- Utility Functions (adapted from dfu/util.py) --- + +function int32ToBytes(value) { + const buffer = new ArrayBuffer(4); + const view = new DataView(buffer); + view.setUint32(0, value, true); // Little-endian + return new Uint8Array(buffer); +} + +function int16ToBytes(value) { + const buffer = new ArrayBuffer(2); + const view = new DataView(buffer); + view.setUint16(0, value, true); // Little-endian + return new Uint8Array(buffer); +} + +function slipPartsToFourBytes(seq, dip, rp, pktType, pktLen) { + const ints = new Uint8Array(4); + ints[0] = seq | (((seq + 1) % 8) << 3) | (dip << 6) | (rp << 7); + ints[1] = pktType | ((pktLen & 0x000F) << 4); + ints[2] = (pktLen & 0x0FF0) >> 4; + ints[3] = (~(ints[0] + ints[1] + ints[2]) + 1) & 0xFF; + return ints; +} + +function slipEncodeEscChars(data) { + const result = []; + for (const byte of data) { + if (byte === 0xC0) { + result.push(0xDB, 0xDC); + } else if (byte === 0xDB) { + result.push(0xDB, 0xDD); + } else { + result.push(byte); + } + } + return new Uint8Array(result); +} + +// --- CRC16 Calculation (adapted from dfu/crc16.py) --- + +function calcCrc16(data, crc = 0xFFFF) { + if (!(data instanceof Uint8Array)) { + throw new Error("calcCrc16 requires Uint8Array input"); + } + for (let i = 0; i < data.length; i++) { + crc = ((crc >> 8) & 0x00FF) | ((crc << 8) & 0xFF00); + crc ^= data[i]; + crc ^= (crc & 0x00FF) >> 4; + crc ^= (crc << 8) << 4; + crc ^= ((crc & 0x00FF) << 4) << 1; + } + return crc & 0xFFFF; +} + +function sleep(milliseconds) { + return new Promise((resolve) => setTimeout(resolve, milliseconds)); +} + +// --- HciPacket Class (adapted from dfu/dfu_transport_serial.py) --- + +class HciPacket { + static sequenceNumber = 0; + + constructor(data) { + HciPacket.sequenceNumber = (HciPacket.sequenceNumber + 1) % 8; + let tempData = []; + + const slipBytes = slipPartsToFourBytes( + HciPacket.sequenceNumber, + DATA_INTEGRITY_CHECK_PRESENT, + RELIABLE_PACKET, + HCI_PACKET_TYPE, + data.length + ); + tempData = tempData.concat(Array.from(slipBytes)); + + tempData = tempData.concat(Array.from(data)); + + // Add CRC + const crc = calcCrc16(new Uint8Array(tempData)); + tempData.push(crc & 0xFF); + tempData.push((crc & 0xFF00) >> 8); + + const encoded = slipEncodeEscChars(new Uint8Array(tempData)); + this.data = new Uint8Array([0xC0, ...encoded, 0xC0]); + } +} + + +// --- Main DFU Class --- + +export class Dfu { + /** + * @param {SerialPort} port - The Web Serial API port object. + * @param {boolean} [eraseBeforeUpdate=false] - Whether to erase the entire flash before updating. + */ + constructor(port, eraseBeforeUpdate = false) { + this.port = port; + this.transferInProgress = false; + this.lastAck = -1; + this.eraseBeforeUpdate = eraseBeforeUpdate; // Store the erase flag + } + + getReader() { + const reader = this.port.readable.getReader(); + + return { + read() { + return new Promise((resolve, reject) => { + const timeoutHandle = setTimeout(() => { + reader.releaseLock(); + reject(new Error("Read timeout")); + }, DEFAULT_SERIAL_PORT_TIMEOUT * 1000 * 5) + + reader.read().then(result => { + clearTimeout(timeoutHandle); + resolve(result); + }); + }); + }, + releaseLock() { + return reader.releaseLock(); + } + } + } + + async sendPacket(pkt) { + if (!this.port || !this.port.writable) { + throw new Error("Serial port not open or not writable."); + } + + const writer = this.port.writable.getWriter(); + try { + await writer.write(pkt.data); + console.debug("Sent packet:", pkt.data.length); + } finally { + writer.releaseLock(); + } + + await this.getAck(); // Wait for ACK after sending + } + + async getAck() { + if (!this.port || !this.port.readable) { + throw new Error("Serial port not open or not readable."); + } + + const reader = this.getReader(); + let buffer = []; + let c0Count = 0; + + try { + const startTime = Date.now(); + while (c0Count < 2) { + const { value, done } = await reader.read(); + if (done) { + throw new Error("Stream closed before receiving full ACK."); + } + + if (value) { + for (const byte of value) { + buffer.push(byte); + if (byte === 0xC0) { + c0Count++; + } + } + } + } + } + catch(e) { + HciPacket.sequenceNumber = 0; + throw e; + } + finally { + reader.releaseLock(); + } + + // Extract the SLIP frame between the two 0xC0 delimiters, ignoring any + // stale bytes that arrived before the opening delimiter. + const firstC0 = buffer.indexOf(0xC0); + const secondC0 = buffer.indexOf(0xC0, firstC0 + 1); + if (firstC0 === -1 || secondC0 === -1) { + throw new Error("Received incomplete ACK."); + } + const decodedData = this.decodeSlip(buffer.slice(firstC0 + 1, secondC0)); + + if (decodedData.length < 2) { + throw new Error("Received incomplete ACK."); + } + const ack = (decodedData[0] >> 3) & 0x07; + + // Check for valid ACK sequence + if (this.lastAck !== -1 && ack !== (this.lastAck + 1) % 8) { + HciPacket.sequenceNumber = 0; // Reset on bad ack + throw new Error(`Invalid ACK sequence. Expected ${(this.lastAck + 1) % 8}, got ${ack}`); + } + this.lastAck = ack; + + return ack; + } + + decodeSlip(data) { + const result = []; + let i = 0; + while (i < data.length) { + if (data[i] === 0xDB) { + i++; + if (i >= data.length) { + throw new Error("Invalid SLIP escape sequence: incomplete."); + } + if (data[i] === 0xDC) { + result.push(0xC0); + } else if (data[i] === 0xDD) { + result.push(0xDB); + } else { + throw new Error(`Invalid SLIP escape sequence: DB followed by ${data[i].toString(16)}`); + } + } else if (data[i] === 0xC0) { + // Ignore 0xC0 (start/end of packet) + } + else { + result.push(data[i]); + } + i++; + } + return new Uint8Array(result); + } + + async sendInitPacket(initPacket) { + const frame = new Uint8Array([ + ...int32ToBytes(DFU_INIT_PACKET), + ...initPacket, + ...int16ToBytes(0x0000), // Padding + ]); + const packet = new HciPacket(frame); + await this.sendPacket(packet); + } + + // THANKS Liam!!! + static async forceDfuMode(port) { + // open port + await port.open({ + baudRate: DFU_TOUCH_BAUD, + }); + + // wait SERIAL_PORT_OPEN_WAIT_TIME before closing port + await sleep(SERIAL_PORT_OPEN_WAIT_TIME * 1000); + + // close port + await port.close(); + + // wait TOUCH_RESET_WAIT_TIME for device to enter into DFU mode + await sleep(TOUCH_RESET_WAIT_TIME * 1000); + } + + async sendStartDfu(mode, softdeviceSize = 0, bootloaderSize = 0, appSize = 0) { + const frame = new Uint8Array([ + ...int32ToBytes(DFU_START_PACKET), + ...int32ToBytes(mode), + ...int32ToBytes(softdeviceSize), + ...int32ToBytes(bootloaderSize), + ...int32ToBytes(appSize), + ]); + + const packet = new HciPacket(frame); + await this.sendPacket(packet); + + // Calculate and apply erase wait time. + const totalSize = softdeviceSize + bootloaderSize + appSize; + const eraseWaitTime = Math.max(0.5, ((totalSize / FLASH_PAGE_SIZE) + 1) * FLASH_PAGE_ERASE_TIME); + await sleep(eraseWaitTime * 1000); + } + + + async sendErasePage(pageAddress) { + const frame = new Uint8Array([ + ...int32ToBytes(DFU_ERASE_PAGE), + ...int32ToBytes(pageAddress), + ]); + const packet = new HciPacket(frame); + await this.sendPacket(packet); + await sleep(FLASH_PAGE_ERASE_TIME * 1000); // Wait for page erase + } + + + async eraseFlash(appSize) { + console.log("Erasing flash..."); + const numPages = Math.ceil(appSize / FLASH_PAGE_SIZE); + + // Assuming application starts at address 0x00000000 + let startAddress = 0x00000000; + + for (let i = 0; i < numPages; i++) { + const pageAddress = startAddress + (i * FLASH_PAGE_SIZE); + console.log(`Erasing page ${i} at address 0x${pageAddress.toString(16)}`); + await this.sendErasePage(pageAddress); + } + console.log("Flash erase complete."); + } + + + async sendFirmware(firmware, progressCallback) { + const frames = []; + let totalBytes = firmware.length; + + // Chunk firmware into DFU packets + for (let i = 0; i < firmware.length; i += DFU_PACKET_MAX_SIZE) { + const chunk = firmware.subarray(i, i + DFU_PACKET_MAX_SIZE); + const frame = new Uint8Array([ + ...int32ToBytes(DFU_DATA_PACKET), + ...chunk, + ]); + const dataPacket = new HciPacket(frame); + frames.push(dataPacket); + } + + let bytesSent = 0; + // Brief stabilization pause before starting data transfer (mirrors Python's implicit + // pause at count=0 — it sleeps FLASH_PAGE_WRITE_TIME after the very first packet). + await sleep(FLASH_PAGE_WRITE_TIME * 1000); + + // Send firmware packets + for (const [index, pkt] of frames.entries()) { + await this.sendPacket(pkt); + bytesSent += pkt.data.length - 6; // Correctly calculate sent bytes, excluding SLIP overhead + + if (progressCallback) { + const progress = Math.min(100, Math.round((bytesSent / totalBytes) * 100)); // Ensure progress doesn't exceed 100 + progressCallback(progress); + } + + // Wait after every 8 frames (one flash page) + if ((index + 1) % 8 === 0) { + await sleep(FLASH_PAGE_WRITE_TIME * 1000); + } + } + + // Wait for the last page to be written + await sleep(FLASH_PAGE_WRITE_TIME * 1000); + + // Send stop packet + const stopPacket = new HciPacket(int32ToBytes(DFU_STOP_DATA_PACKET)); + await this.sendPacket(stopPacket); + } + + async dfuUpdate(zipFile, progressCallback) { + if (this.transferInProgress) { + throw new Error("DFU update already in progress."); + } + this.transferInProgress = true; + this.lastAck = -1; // Reset last ACK + HciPacket.sequenceNumber = 0; // Reset HCI sequence number + const decoder = new TextDecoder(); + try { + await this.port.open({ baudRate: 115200 }); // Open with correct baudrate + + const reader = new zip.ZipReader(new zip.BlobReader(zipFile)); + const entries = await reader.getEntries(); + + let manifest = null; + let firmwareFiles = {}; + + for (const entry of entries) { + const filename = decoder.decode(entry.rawFilename); + console.debug('Found zip filename: ', filename); + if (filename === 'manifest.json') { + const text = await entry.getData(new zip.TextWriter()); + manifest = JSON.parse(text); + } else if (filename.endsWith('.bin') || filename.endsWith('.dat')) { + firmwareFiles[filename] = await entry.getData(new zip.Uint8ArrayWriter()); + } + } + + await reader.close(); + + if (!manifest) { + throw new Error("manifest.json not found in the ZIP file."); + } + if (!firmwareFiles[manifest.manifest.application.bin_file] || + !firmwareFiles[manifest.manifest.application.dat_file]) + { + throw new Error("Application .bin or .dat file not found."); + } + + const appBin = firmwareFiles[manifest.manifest.application.bin_file]; + const initPacket = firmwareFiles[manifest.manifest.application.dat_file]; + const appSize = appBin.length; + + // Erase flash if requested + if (this.eraseBeforeUpdate) { + await this.eraseFlash(appSize); + } + + // Start DFU + await this.sendStartDfu(DFU_UPDATE_MODE_APP, 0, 0, appSize); + + // Send Init Packet + await this.sendInitPacket(initPacket); + + // Send Firmware + await this.sendFirmware(appBin, progressCallback); + + console.log("DFU update complete."); + + } catch (error) { + console.error("DFU Update failed:", error); + throw error; // Re-throw the error for handling by the caller + } finally { + this.transferInProgress = false; + if (this.port && this.port.readable) { + try { + const reader = this.port.readable.getReader(); + await reader.cancel(); + reader.releaseLock(); + + } catch (error) { + // Ignore errors when trying to cancel the reader + console.debug(`Error: closing reader: ${error}`); + } + } + if (this.port && this.port.writable) { + try { + const writer = this.port.writable.getWriter(); + await writer.close(); + writer.releaseLock(); + } catch(error) { + // Ignore errors when trying to close the writer + console.debug(`Error: closing writer: ${error}`); + } + } + if (this.port) { + try { + await this.port.close(); + } + catch (error) { + // Ignore errors when trying to close the port + console.debug(`Error: closing port: ${error}`); + } + } + } + } +} \ No newline at end of file diff --git a/flasher/lib/zip.min.js b/flasher/lib/zip.min.js new file mode 100644 index 0000000..23e2c10 --- /dev/null +++ b/flasher/lib/zip.min.js @@ -0,0 +1 @@ +const e=-2;function t(e){return n(e.map((([e,t])=>Array(e).fill(t,0,e))))}function n(e){return e.reduce(((e,t)=>e.concat(Array.isArray(t)?n(t):t)),[])}const r=[0,1,2,3].concat(...t([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function i(){const e=this;function t(e,t){let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}e.build_tree=n=>{const r=e.dyn_tree,i=e.stat_desc.static_tree,s=e.stat_desc.elems;let a,o,c,l=-1;for(n.heap_len=0,n.heap_max=573,a=0;s>a;a++)0!==r[2*a]?(n.heap[++n.heap_len]=l=a,n.depth[a]=0):r[2*a+1]=0;for(;2>n.heap_len;)c=n.heap[++n.heap_len]=2>l?++l:0,r[2*c]=1,n.depth[c]=0,n.opt_len--,i&&(n.static_len-=i[2*c+1]);for(e.max_code=l,a=Math.floor(n.heap_len/2);a>=1;a--)n.pqdownheap(r,a);c=s;do{a=n.heap[1],n.heap[1]=n.heap[n.heap_len--],n.pqdownheap(r,1),o=n.heap[1],n.heap[--n.heap_max]=a,n.heap[--n.heap_max]=o,r[2*c]=r[2*a]+r[2*o],n.depth[c]=Math.max(n.depth[a],n.depth[o])+1,r[2*a+1]=r[2*o+1]=c,n.heap[1]=c++,n.pqdownheap(r,1)}while(n.heap_len>=2);n.heap[--n.heap_max]=n.heap[1],(t=>{const n=e.dyn_tree,r=e.stat_desc.static_tree,i=e.stat_desc.extra_bits,s=e.stat_desc.extra_base,a=e.stat_desc.max_length;let o,c,l,d,f,u,p=0;for(d=0;15>=d;d++)t.bl_count[d]=0;for(n[2*t.heap[t.heap_max]+1]=0,o=t.heap_max+1;573>o;o++)c=t.heap[o],d=n[2*n[2*c+1]+1]+1,d>a&&(d=a,p++),n[2*c+1]=d,c>e.max_code||(t.bl_count[d]++,f=0,s>c||(f=i[c-s]),u=n[2*c],t.opt_len+=u*(d+f),r&&(t.static_len+=u*(r[2*c+1]+f)));if(0!==p){do{for(d=a-1;0===t.bl_count[d];)d--;t.bl_count[d]--,t.bl_count[d+1]+=2,t.bl_count[a]--,p-=2}while(p>0);for(d=a;0!==d;d--)for(c=t.bl_count[d];0!==c;)l=t.heap[--o],l>e.max_code||(n[2*l+1]!=d&&(t.opt_len+=(d-n[2*l+1])*n[2*l],n[2*l+1]=d),c--)}})(n),((e,n,r)=>{const i=[];let s,a,o,c=0;for(s=1;15>=s;s++)i[s]=c=c+r[s-1]<<1;for(a=0;n>=a;a++)o=e[2*a+1],0!==o&&(e[2*a]=t(i[o]++,o))})(r,e.max_code,n.bl_count)}}function s(e,t,n,r,i){const s=this;s.static_tree=e,s.extra_bits=t,s.extra_base=n,s.elems=r,s.max_length=i}i._length_code=[0,1,2,3,4,5,6,7].concat(...t([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),i.base_length=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],i.base_dist=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],i.d_code=e=>256>e?r[e]:r[256+(e>>>7)],i.extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],i.extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],i.extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],i.bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const a=t([[144,8],[112,9],[24,7],[8,8]]);s.static_ltree=n([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((e,t)=>[e,a[t]])));const o=t([[30,5]]);function c(e,t,n,r,i){const s=this;s.good_length=e,s.max_lazy=t,s.nice_length=n,s.max_chain=r,s.func=i}s.static_dtree=n([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((e,t)=>[e,o[t]]))),s.static_l_desc=new s(s.static_ltree,i.extra_lbits,257,286,15),s.static_d_desc=new s(s.static_dtree,i.extra_dbits,0,30,15),s.static_bl_desc=new s(null,i.extra_blbits,0,19,7);const l=[new c(0,0,0,0,0),new c(4,4,8,4,1),new c(4,5,16,8,1),new c(4,6,32,32,1),new c(4,4,16,16,2),new c(8,16,32,32,2),new c(8,16,128,128,2),new c(8,32,128,256,2),new c(32,128,258,1024,2),new c(32,258,258,4096,2)],d=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],f=113,u=666,p=262;function m(e,t,n,r){const i=e[2*t],s=e[2*n];return s>i||i==s&&r[t]<=r[n]}function h(){const t=this;let n,r,a,o,c,h,w,g,x,b,v,y,_,k,S,z,A,C,D,U,E,W,F,j,q,T,O,R,L,I,M,P,B;const H=new i,N=new i,V=new i;let Z,K,G,X,J,Y;function Q(){let e;for(e=0;286>e;e++)M[2*e]=0;for(e=0;30>e;e++)P[2*e]=0;for(e=0;19>e;e++)B[2*e]=0;M[512]=1,t.opt_len=t.static_len=0,K=G=0}function $(e,t){let n,r=-1,i=e[1],s=0,a=7,o=4;0===i&&(a=138,o=3),e[2*(t+1)+1]=65535;for(let c=0;t>=c;c++)n=i,i=e[2*(c+1)+1],++ss?B[2*n]+=s:0!==n?(n!=r&&B[2*n]++,B[32]++):s>10?B[36]++:B[34]++,s=0,r=n,0===i?(a=138,o=3):n==i?(a=6,o=3):(a=7,o=4))}function ee(e){t.pending_buf[t.pending++]=e}function te(e){ee(255&e),ee(e>>>8&255)}function ne(e,t){let n;const r=t;Y>16-r?(n=e,J|=n<>>16-Y,Y+=r-16):(J|=e<=n;n++)if(r=s,s=e[2*(n+1)+1],++a>=o||r!=s){if(c>a)do{re(r,B)}while(0!=--a);else 0!==r?(r!=i&&(re(r,B),a--),re(16,B),ne(a-3,2)):a>10?(re(18,B),ne(a-11,7)):(re(17,B),ne(a-3,3));a=0,i=r,0===s?(o=138,c=3):r==s?(o=6,c=3):(o=7,c=4)}}function se(){16==Y?(te(J),J=0,Y=0):8>Y||(ee(255&J),J>>>=8,Y-=8)}function ae(e,n){let r,s,a;if(t.dist_buf[K]=e,t.lc_buf[K]=255&n,K++,0===e?M[2*n]++:(G++,e--,M[2*(i._length_code[n]+256+1)]++,P[2*i.d_code(e)]++),!(8191&K)&&O>2){for(r=8*K,s=E-A,a=0;30>a;a++)r+=P[2*a]*(5+i.extra_dbits[a]);if(r>>>=3,Math.floor(K/2)>G&&Math.floor(s/2)>r)return!0}return K==Z-1}function oe(e,n){let r,s,a,o,c=0;if(0!==K)do{r=t.dist_buf[c],s=t.lc_buf[c],c++,0===r?re(s,e):(a=i._length_code[s],re(a+256+1,e),o=i.extra_lbits[a],0!==o&&(s-=i.base_length[a],ne(s,o)),r--,a=i.d_code(r),re(a,n),o=i.extra_dbits[a],0!==o&&(r-=i.base_dist[a],ne(r,o)))}while(K>c);re(256,e),X=e[513]}function ce(){Y>8?te(J):Y>0&&ee(255&J),J=0,Y=0}function le(e,n,r){ne(0+(r?1:0),3),((e,n)=>{ce(),X=8,te(n),te(~n),t.pending_buf.set(g.subarray(e,e+n),t.pending),t.pending+=n})(e,n)}function de(e){((e,n,r)=>{let a,o,c=0;O>0?(H.build_tree(t),N.build_tree(t),c=(()=>{let e;for($(M,H.max_code),$(P,N.max_code),V.build_tree(t),e=18;e>=3&&0===B[2*i.bl_order[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e})(),a=t.opt_len+3+7>>>3,o=t.static_len+3+7>>>3,o>a||(a=o)):a=o=n+5,n+4>a||-1==e?o==a?(ne(2+(r?1:0),3),oe(s.static_ltree,s.static_dtree)):(ne(4+(r?1:0),3),((e,t,n)=>{let r;for(ne(e-257,5),ne(t-1,5),ne(n-4,4),r=0;n>r;r++)ne(B[2*i.bl_order[r]+1],3);ie(M,e-1),ie(P,t-1)})(H.max_code+1,N.max_code+1,c+1),oe(M,P)):le(e,n,r),Q(),r&&ce()})(0>A?-1:A,E-A,e),A=E,n.flush_pending()}function fe(){let e,t,r,i;do{if(i=x-F-E,0===i&&0===E&&0===F)i=c;else if(-1==i)i--;else if(E>=c+c-p){g.set(g.subarray(c,c+c),0),W-=c,E-=c,A-=c,e=_,r=e;do{t=65535&v[--r],v[r]=c>t?0:t-c}while(0!=--e);e=c,r=e;do{t=65535&b[--r],b[r]=c>t?0:t-c}while(0!=--e);i+=c}if(0===n.avail_in)return;e=n.read_buf(g,E+F,i),F+=e,3>F||(y=255&g[E],y=(y<F&&0!==n.avail_in)}function ue(e){let t,n,r=q,i=E,s=j;const a=E>c-p?E-(c-p):0;let o=I;const l=w,d=E+258;let f=g[i+s-1],u=g[i+s];L>j||(r>>=2),o>F&&(o=F);do{if(t=e,g[t+s]==u&&g[t+s-1]==f&&g[t]==g[i]&&g[++t]==g[i+1]){i+=2,t++;do{}while(g[++i]==g[++t]&&g[++i]==g[++t]&&g[++i]==g[++t]&&g[++i]==g[++t]&&g[++i]==g[++t]&&g[++i]==g[++t]&&g[++i]==g[++t]&&g[++i]==g[++t]&&d>i);if(n=258-(d-i),i=d-258,n>s){if(W=e,s=n,n>=o)break;f=g[i+s-1],u=g[i+s]}}}while((e=65535&b[e&l])>a&&0!=--r);return s>F?F:s}t.depth=[],t.bl_count=[],t.heap=[],M=[],P=[],B=[],t.pqdownheap=(e,n)=>{const r=t.heap,i=r[n];let s=n<<1;for(;s<=t.heap_len&&(s(u||(u=8),p||(p=8),m||(m=0),n.msg=null,-1==i&&(i=6),1>p||p>9||8!=u||9>d||d>15||0>i||i>9||0>m||m>2?e:(n.dstate=t,h=d,c=1<(e.total_in=e.total_out=0,e.msg=null,t.pending=0,t.pending_out=0,r=f,o=0,H.dyn_tree=M,H.stat_desc=s.static_l_desc,N.dyn_tree=P,N.stat_desc=s.static_d_desc,V.dyn_tree=B,V.stat_desc=s.static_bl_desc,J=0,Y=0,X=8,Q(),(()=>{x=2*c,v[_-1]=0;for(let e=0;_-1>e;e++)v[e]=0;T=l[O].max_lazy,L=l[O].good_length,I=l[O].nice_length,q=l[O].max_chain,E=0,A=0,F=0,C=j=2,U=0,y=0})(),0))(n))),t.deflateEnd=()=>42!=r&&r!=f&&r!=u?e:(t.lc_buf=null,t.dist_buf=null,t.pending_buf=null,v=null,b=null,g=null,t.dstate=null,r==f?-3:0),t.deflateParams=(t,n,r)=>{let i=0;return-1==n&&(n=6),0>n||n>9||0>r||r>2?e:(l[O].func!=l[n].func&&0!==t.total_in&&(i=t.deflate(1)),O!=n&&(O=n,T=l[O].max_lazy,L=l[O].good_length,I=l[O].nice_length,q=l[O].max_chain),R=r,i)},t.deflateSetDictionary=(t,n,i)=>{let s,a=i,o=0;if(!n||42!=r)return e;if(3>a)return 0;for(a>c-p&&(a=c-p,o=i-a),g.set(n.subarray(o,o+a),0),E=a,A=a,y=255&g[0],y=(y<=s;s++)y=(y<{let x,k,q,L,I;if(m>4||0>m)return e;if(!i.next_out||!i.next_in&&0!==i.avail_in||r==u&&4!=m)return i.msg=d[4],e;if(0===i.avail_out)return i.msg=d[7],-5;var M;if(n=i,L=o,o=m,42==r&&(k=8+(h-8<<4)<<8,q=(O-1&255)>>1,q>3&&(q=3),k|=q<<6,0!==E&&(k|=32),k+=31-k%31,r=f,ee((M=k)>>8&255),ee(255&M)),0!==t.pending){if(n.flush_pending(),0===n.avail_out)return o=-1,0}else if(0===n.avail_in&&L>=m&&4!=m)return n.msg=d[7],-5;if(r==u&&0!==n.avail_in)return i.msg=d[7],-5;if(0!==n.avail_in||0!==F||0!=m&&r!=u){switch(I=-1,l[O].func){case 0:I=(e=>{let t,r=65535;for(r>a-5&&(r=a-5);;){if(1>=F){if(fe(),0===F&&0==e)return 0;if(0===F)break}if(E+=F,F=0,t=A+r,(0===E||E>=t)&&(F=E-t,E=t,de(!1),0===n.avail_out))return 0;if(E-A>=c-p&&(de(!1),0===n.avail_out))return 0}return de(4==e),0===n.avail_out?4==e?2:0:4==e?3:1})(m);break;case 1:I=(e=>{let t,r=0;for(;;){if(p>F){if(fe(),p>F&&0==e)return 0;if(0===F)break}if(3>F||(y=(y<c-p||2!=R&&(C=ue(r)),3>C)t=ae(0,255&g[E]),F--,E++;else if(t=ae(E-W,C-3),F-=C,C>T||3>F)E+=C,C=0,y=255&g[E],y=(y<{let t,r,i=0;for(;;){if(p>F){if(fe(),p>F&&0==e)return 0;if(0===F)break}if(3>F||(y=(y<j&&c-p>=(E-i&65535)&&(2!=R&&(C=ue(i)),5>=C&&(1==R||3==C&&E-W>4096)&&(C=2)),3>j||C>j)if(0!==U){if(t=ae(0,255&g[E-1]),t&&de(!1),E++,F--,0===n.avail_out)return 0}else U=1,E++,F--;else{r=E+F-3,t=ae(E-1-D,j-3),F-=j-1,j-=2;do{++E>r||(y=(y<1+X+10-Y&&(ne(2,3),re(256,s.static_ltree),se()),X=7;else if(le(0,0,!1),3==m)for(x=0;_>x;x++)v[x]=0;if(n.flush_pending(),0===n.avail_out)return o=-1,0}}return 4!=m?0:1}}function w(){const e=this;e.next_in_index=0,e.next_out_index=0,e.avail_in=0,e.total_in=0,e.avail_out=0,e.total_out=0}w.prototype={deflateInit(e,t){const n=this;return n.dstate=new h,t||(t=15),n.dstate.deflateInit(n,e,t)},deflate(t){const n=this;return n.dstate?n.dstate.deflate(n,t):e},deflateEnd(){const t=this;if(!t.dstate)return e;const n=t.dstate.deflateEnd();return t.dstate=null,n},deflateParams(t,n){const r=this;return r.dstate?r.dstate.deflateParams(r,t,n):e},deflateSetDictionary(t,n){const r=this;return r.dstate?r.dstate.deflateSetDictionary(r,t,n):e},read_buf(e,t,n){const r=this;let i=r.avail_in;return i>n&&(i=n),0===i?0:(r.avail_in-=i,e.set(r.next_in.subarray(r.next_in_index,r.next_in_index+i),t),r.next_in_index+=i,r.total_in+=i,i)},flush_pending(){const e=this;let t=e.dstate.pending;t>e.avail_out&&(t=e.avail_out),0!==t&&(e.next_out.set(e.dstate.pending_buf.subarray(e.dstate.pending_out,e.dstate.pending_out+t),e.next_out_index),e.next_out_index+=t,e.dstate.pending_out+=t,e.total_out+=t,e.avail_out-=t,e.dstate.pending-=t,0===e.dstate.pending&&(e.dstate.pending_out=0))}};const g=-2,x=-3,b=-5,v=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],y=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],_=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],k=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],S=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],z=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],A=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];function C(){let e,t,n,r,i,s;function a(e,t,a,o,c,l,d,f,u,p,m){let h,w,g,v,y,_,k,S,z,A,C,D,U,E,W;A=0,y=a;do{n[e[t+A]]++,A++,y--}while(0!==y);if(n[0]==a)return d[0]=-1,f[0]=0,0;for(S=f[0],_=1;15>=_&&0===n[_];_++);for(k=_,_>S&&(S=_),y=15;0!==y&&0===n[y];y--);for(g=y,S>y&&(S=y),f[0]=S,E=1<<_;y>_;_++,E<<=1)if(0>(E-=n[_]))return x;if(0>(E-=n[y]))return x;for(n[y]+=E,s[1]=_=0,A=1,U=2;0!=--y;)s[U]=_+=n[A],U++,A++;y=0,A=0;do{0!==(_=e[t+A])&&(m[s[_]++]=y),A++}while(++y=k;k++)for(h=n[k];0!=h--;){for(;k>D+S;){if(v++,D+=S,W=g-D,W=W>S?S:W,(w=1<<(_=k-D))>h+1&&(w-=h+1,U=k,W>_))for(;++_n[++U];)w-=n[U];if(W=1<<_,p[0]+W>1440)return x;i[v]=C=p[0],p[0]+=W,0!==v?(s[v]=y,r[0]=_,r[1]=S,_=y>>>D-S,r[2]=C-i[v-1]-_,u.set(r,3*(i[v-1]+_))):d[0]=C}for(r[1]=k-D,a>A?m[A]m[A]?0:96,r[2]=m[A++]):(r[0]=l[m[A]-o]+16+64,r[2]=c[m[A++]-o]):r[0]=192,w=1<>>D;W>_;_+=w)u.set(r,3*(C+_));for(_=1<>>=1)y^=_;for(y^=_,z=(1<o;o++)t[o]=0;for(o=0;16>o;o++)n[o]=0;for(o=0;3>o;o++)r[o]=0;i.set(n.subarray(0,15),0),s.set(n.subarray(0,16),0)}this.inflate_trees_bits=(n,r,i,s,c)=>{let l;return o(19),e[0]=0,l=a(n,0,19,19,null,null,i,r,s,e,t),l==x?c.msg="oversubscribed dynamic bit lengths tree":l!=b&&0!==r[0]||(c.msg="incomplete dynamic bit lengths tree",l=x),l},this.inflate_trees_dynamic=(n,r,i,s,c,l,d,f,u)=>{let p;return o(288),e[0]=0,p=a(i,0,n,257,k,S,l,s,f,e,t),0!=p||0===s[0]?(p==x?u.msg="oversubscribed literal/length tree":-4!=p&&(u.msg="incomplete literal/length tree",p=x),p):(o(288),p=a(i,n,r,0,z,A,d,c,f,e,t),0!=p||0===c[0]&&n>257?(p==x?u.msg="oversubscribed distance tree":p==b?(u.msg="incomplete distance tree",p=x):-4!=p&&(u.msg="empty distance tree with lengths",p=x),p):0)}}function D(){const e=this;let t,n,r,i,s=0,a=0,o=0,c=0,l=0,d=0,f=0,u=0,p=0,m=0;function h(e,t,n,r,i,s,a,o){let c,l,d,f,u,p,m,h,w,g,b,y,_,k,S,z;m=o.next_in_index,h=o.avail_in,u=a.bitb,p=a.bitk,w=a.write,g=wp;)h--,u|=(255&o.read_byte(m++))<>=l[z+1],p-=l[z+1],16&f){for(f&=15,_=l[z+2]+(u&v[f]),u>>=f,p-=f;15>p;)h--,u|=(255&o.read_byte(m++))<>=l[z+1],p-=l[z+1],16&f){for(f&=15;f>p;)h--,u|=(255&o.read_byte(m++))<>=f,p-=f,g-=_,k>w){S=w-k;do{S+=a.end}while(0>S);if(f=a.end-S,_>f){if(_-=f,w-S>0&&f>w-S)do{a.win[w++]=a.win[S++]}while(0!=--f);else a.win.set(a.win.subarray(S,S+f),w),w+=f,S+=f,f=0;S=0}}else S=w-k,w-S>0&&2>w-S?(a.win[w++]=a.win[S++],a.win[w++]=a.win[S++],_-=2):(a.win.set(a.win.subarray(S,S+2),w),w+=2,S+=2,_-=2);if(w-S>0&&_>w-S)do{a.win[w++]=a.win[S++]}while(0!=--_);else a.win.set(a.win.subarray(S,S+_),w),w+=_,S+=_,_=0;break}if(64&f)return o.msg="invalid distance code",_=o.avail_in-h,_=_>p>>3?p>>3:_,h+=_,m-=_,p-=_<<3,a.bitb=u,a.bitk=p,o.avail_in=h,o.total_in+=m-o.next_in_index,o.next_in_index=m,a.write=w,x;c+=l[z+2],c+=u&v[f],z=3*(d+c),f=l[z]}break}if(64&f)return 32&f?(_=o.avail_in-h,_=_>p>>3?p>>3:_,h+=_,m-=_,p-=_<<3,a.bitb=u,a.bitk=p,o.avail_in=h,o.total_in+=m-o.next_in_index,o.next_in_index=m,a.write=w,1):(o.msg="invalid literal/length code",_=o.avail_in-h,_=_>p>>3?p>>3:_,h+=_,m-=_,p-=_<<3,a.bitb=u,a.bitk=p,o.avail_in=h,o.total_in+=m-o.next_in_index,o.next_in_index=m,a.write=w,x);if(c+=l[z+2],c+=u&v[f],z=3*(d+c),0===(f=l[z])){u>>=l[z+1],p-=l[z+1],a.win[w++]=l[z+2],g--;break}}else u>>=l[z+1],p-=l[z+1],a.win[w++]=l[z+2],g--}while(g>=258&&h>=10);return _=o.avail_in-h,_=_>p>>3?p>>3:_,h+=_,m-=_,p-=_<<3,a.bitb=u,a.bitk=p,o.avail_in=h,o.total_in+=m-o.next_in_index,o.next_in_index=m,a.write=w,0}e.init=(e,s,a,o,c,l)=>{t=0,f=e,u=s,r=a,p=o,i=c,m=l,n=null},e.proc=(e,w,b)=>{let y,_,k,S,z,A,C,D=0,U=0,E=0;for(E=w.next_in_index,S=w.avail_in,D=e.bitb,U=e.bitk,z=e.write,A=z=258&&S>=10&&(e.bitb=D,e.bitk=U,w.avail_in=S,w.total_in+=E-w.next_in_index,w.next_in_index=E,e.write=z,b=h(f,u,r,p,i,m,e,w),E=w.next_in_index,S=w.avail_in,D=e.bitb,U=e.bitk,z=e.write,A=zU;){if(0===S)return e.bitb=D,e.bitk=U,w.avail_in=S,w.total_in+=E-w.next_in_index,w.next_in_index=E,e.write=z,e.inflate_flush(w,b);b=0,S--,D|=(255&w.read_byte(E++))<>>=n[_+1],U-=n[_+1],k=n[_],0===k){c=n[_+2],t=6;break}if(16&k){l=15&k,s=n[_+2],t=2;break}if(!(64&k)){o=k,a=_/3+n[_+2];break}if(32&k){t=7;break}return t=9,w.msg="invalid literal/length code",b=x,e.bitb=D,e.bitk=U,w.avail_in=S,w.total_in+=E-w.next_in_index,w.next_in_index=E,e.write=z,e.inflate_flush(w,b);case 2:for(y=l;y>U;){if(0===S)return e.bitb=D,e.bitk=U,w.avail_in=S,w.total_in+=E-w.next_in_index,w.next_in_index=E,e.write=z,e.inflate_flush(w,b);b=0,S--,D|=(255&w.read_byte(E++))<>=y,U-=y,o=u,n=i,a=m,t=3;case 3:for(y=o;y>U;){if(0===S)return e.bitb=D,e.bitk=U,w.avail_in=S,w.total_in+=E-w.next_in_index,w.next_in_index=E,e.write=z,e.inflate_flush(w,b);b=0,S--,D|=(255&w.read_byte(E++))<>=n[_+1],U-=n[_+1],k=n[_],16&k){l=15&k,d=n[_+2],t=4;break}if(!(64&k)){o=k,a=_/3+n[_+2];break}return t=9,w.msg="invalid distance code",b=x,e.bitb=D,e.bitk=U,w.avail_in=S,w.total_in+=E-w.next_in_index,w.next_in_index=E,e.write=z,e.inflate_flush(w,b);case 4:for(y=l;y>U;){if(0===S)return e.bitb=D,e.bitk=U,w.avail_in=S,w.total_in+=E-w.next_in_index,w.next_in_index=E,e.write=z,e.inflate_flush(w,b);b=0,S--,D|=(255&w.read_byte(E++))<>=y,U-=y,t=5;case 5:for(C=z-d;0>C;)C+=e.end;for(;0!==s;){if(0===A&&(z==e.end&&0!==e.read&&(z=0,A=z7&&(U-=8,S++,E--),e.write=z,b=e.inflate_flush(w,b),z=e.write,A=z{}}C.inflate_trees_fixed=(e,t,n,r)=>(e[0]=9,t[0]=5,n[0]=y,r[0]=_,0);const U=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function E(e,t){const n=this;let r,i=0,s=0,a=0,o=0;const c=[0],l=[0],d=new D;let f=0,u=new Int32Array(4320);const p=new C;n.bitk=0,n.bitb=0,n.win=new Uint8Array(t),n.end=t,n.read=0,n.write=0,n.reset=(e,t)=>{t&&(t[0]=0),6==i&&d.free(e),i=0,n.bitk=0,n.bitb=0,n.read=n.write=0},n.reset(e,null),n.inflate_flush=(e,t)=>{let r,i,s;return i=e.next_out_index,s=n.read,r=(s>n.write?n.end:n.write)-s,r>e.avail_out&&(r=e.avail_out),0!==r&&t==b&&(t=0),e.avail_out-=r,e.total_out+=r,e.next_out.set(n.win.subarray(s,s+r),i),i+=r,s+=r,s==n.end&&(s=0,n.write==n.end&&(n.write=0),r=n.write-s,r>e.avail_out&&(r=e.avail_out),0!==r&&t==b&&(t=0),e.avail_out-=r,e.total_out+=r,e.next_out.set(n.win.subarray(s,s+r),i),i+=r,s+=r),e.next_out_index=i,n.read=s,t},n.proc=(e,t)=>{let m,h,w,b,y,_,k,S;for(b=e.next_in_index,y=e.avail_in,h=n.bitb,w=n.bitk,_=n.write,k=_w;){if(0===y)return n.bitb=h,n.bitk=w,e.avail_in=y,e.total_in+=b-e.next_in_index,e.next_in_index=b,n.write=_,n.inflate_flush(e,t);t=0,y--,h|=(255&e.read_byte(b++))<>>1){case 0:h>>>=3,w-=3,m=7&w,h>>>=m,w-=m,i=1;break;case 1:z=[],A=[],D=[[]],E=[[]],C.inflate_trees_fixed(z,A,D,E),d.init(z[0],A[0],D[0],0,E[0],0),h>>>=3,w-=3,i=6;break;case 2:h>>>=3,w-=3,i=3;break;case 3:return h>>>=3,w-=3,i=9,e.msg="invalid block type",t=x,n.bitb=h,n.bitk=w,e.avail_in=y,e.total_in+=b-e.next_in_index,e.next_in_index=b,n.write=_,n.inflate_flush(e,t)}break;case 1:for(;32>w;){if(0===y)return n.bitb=h,n.bitk=w,e.avail_in=y,e.total_in+=b-e.next_in_index,e.next_in_index=b,n.write=_,n.inflate_flush(e,t);t=0,y--,h|=(255&e.read_byte(b++))<>>16&65535)!=(65535&h))return i=9,e.msg="invalid stored block lengths",t=x,n.bitb=h,n.bitk=w,e.avail_in=y,e.total_in+=b-e.next_in_index,e.next_in_index=b,n.write=_,n.inflate_flush(e,t);s=65535&h,h=w=0,i=0!==s?2:0!==f?7:0;break;case 2:if(0===y)return n.bitb=h,n.bitk=w,e.avail_in=y,e.total_in+=b-e.next_in_index,e.next_in_index=b,n.write=_,n.inflate_flush(e,t);if(0===k&&(_==n.end&&0!==n.read&&(_=0,k=_y&&(m=y),m>k&&(m=k),n.win.set(e.read_buf(b,m),_),b+=m,y-=m,_+=m,k-=m,0!=(s-=m))break;i=0!==f?7:0;break;case 3:for(;14>w;){if(0===y)return n.bitb=h,n.bitk=w,e.avail_in=y,e.total_in+=b-e.next_in_index,e.next_in_index=b,n.write=_,n.inflate_flush(e,t);t=0,y--,h|=(255&e.read_byte(b++))<29||(m>>5&31)>29)return i=9,e.msg="too many length or distance symbols",t=x,n.bitb=h,n.bitk=w,e.avail_in=y,e.total_in+=b-e.next_in_index,e.next_in_index=b,n.write=_,n.inflate_flush(e,t);if(m=258+(31&m)+(m>>5&31),!r||r.lengthS;S++)r[S]=0;h>>>=14,w-=14,o=0,i=4;case 4:for(;4+(a>>>10)>o;){for(;3>w;){if(0===y)return n.bitb=h,n.bitk=w,e.avail_in=y,e.total_in+=b-e.next_in_index,e.next_in_index=b,n.write=_,n.inflate_flush(e,t);t=0,y--,h|=(255&e.read_byte(b++))<>>=3,w-=3}for(;19>o;)r[U[o++]]=0;if(c[0]=7,m=p.inflate_trees_bits(r,c,l,u,e),0!=m)return(t=m)==x&&(r=null,i=9),n.bitb=h,n.bitk=w,e.avail_in=y,e.total_in+=b-e.next_in_index,e.next_in_index=b,n.write=_,n.inflate_flush(e,t);o=0,i=5;case 5:for(;m=a,258+(31&m)+(m>>5&31)>o;){let s,d;for(m=c[0];m>w;){if(0===y)return n.bitb=h,n.bitk=w,e.avail_in=y,e.total_in+=b-e.next_in_index,e.next_in_index=b,n.write=_,n.inflate_flush(e,t);t=0,y--,h|=(255&e.read_byte(b++))<d)h>>>=m,w-=m,r[o++]=d;else{for(S=18==d?7:d-14,s=18==d?11:3;m+S>w;){if(0===y)return n.bitb=h,n.bitk=w,e.avail_in=y,e.total_in+=b-e.next_in_index,e.next_in_index=b,n.write=_,n.inflate_flush(e,t);t=0,y--,h|=(255&e.read_byte(b++))<>>=m,w-=m,s+=h&v[S],h>>>=S,w-=S,S=o,m=a,S+s>258+(31&m)+(m>>5&31)||16==d&&1>S)return r=null,i=9,e.msg="invalid bit length repeat",t=x,n.bitb=h,n.bitk=w,e.avail_in=y,e.total_in+=b-e.next_in_index,e.next_in_index=b,n.write=_,n.inflate_flush(e,t);d=16==d?r[S-1]:0;do{r[S++]=d}while(0!=--s);o=S}}if(l[0]=-1,W=[],F=[],j=[],q=[],W[0]=9,F[0]=6,m=a,m=p.inflate_trees_dynamic(257+(31&m),1+(m>>5&31),r,W,F,j,q,u,e),0!=m)return m==x&&(r=null,i=9),t=m,n.bitb=h,n.bitk=w,e.avail_in=y,e.total_in+=b-e.next_in_index,e.next_in_index=b,n.write=_,n.inflate_flush(e,t);d.init(W[0],F[0],u,j[0],u,q[0]),i=6;case 6:if(n.bitb=h,n.bitk=w,e.avail_in=y,e.total_in+=b-e.next_in_index,e.next_in_index=b,n.write=_,1!=(t=d.proc(n,e,t)))return n.inflate_flush(e,t);if(t=0,d.free(e),b=e.next_in_index,y=e.avail_in,h=n.bitb,w=n.bitk,_=n.write,k=_{n.reset(e,null),n.win=null,u=null},n.set_dictionary=(e,t,r)=>{n.win.set(e.subarray(t,t+r),0),n.read=n.write=r},n.sync_point=()=>1==i?1:0}const W=13,F=[0,0,255,255];function j(){const e=this;function t(e){return e&&e.istate?(e.total_in=e.total_out=0,e.msg=null,e.istate.mode=7,e.istate.blocks.reset(e,null),0):g}e.mode=0,e.method=0,e.was=[0],e.need=0,e.marker=0,e.wbits=0,e.inflateEnd=t=>(e.blocks&&e.blocks.free(t),e.blocks=null,0),e.inflateInit=(n,r)=>(n.msg=null,e.blocks=null,8>r||r>15?(e.inflateEnd(n),g):(e.wbits=r,n.istate.blocks=new E(n,1<{let n,r;if(!e||!e.istate||!e.next_in)return g;const i=e.istate;for(t=4==t?b:0,n=b;;)switch(i.mode){case 0:if(0===e.avail_in)return n;if(n=t,e.avail_in--,e.total_in++,8!=(15&(i.method=e.read_byte(e.next_in_index++)))){i.mode=W,e.msg="unknown compression method",i.marker=5;break}if(8+(i.method>>4)>i.wbits){i.mode=W,e.msg="invalid win size",i.marker=5;break}i.mode=1;case 1:if(0===e.avail_in)return n;if(n=t,e.avail_in--,e.total_in++,r=255&e.read_byte(e.next_in_index++),((i.method<<8)+r)%31!=0){i.mode=W,e.msg="incorrect header check",i.marker=5;break}if(!(32&r)){i.mode=7;break}i.mode=2;case 2:if(0===e.avail_in)return n;n=t,e.avail_in--,e.total_in++,i.need=(255&e.read_byte(e.next_in_index++))<<24&4278190080,i.mode=3;case 3:if(0===e.avail_in)return n;n=t,e.avail_in--,e.total_in++,i.need+=(255&e.read_byte(e.next_in_index++))<<16&16711680,i.mode=4;case 4:if(0===e.avail_in)return n;n=t,e.avail_in--,e.total_in++,i.need+=(255&e.read_byte(e.next_in_index++))<<8&65280,i.mode=5;case 5:return 0===e.avail_in?n:(n=t,e.avail_in--,e.total_in++,i.need+=255&e.read_byte(e.next_in_index++),i.mode=6,2);case 6:return i.mode=W,e.msg="need dictionary",i.marker=0,g;case 7:if(n=i.blocks.proc(e,n),n==x){i.mode=W,i.marker=0;break}if(0==n&&(n=t),1!=n)return n;n=t,i.blocks.reset(e,i.was),i.mode=12;case 12:return e.avail_in=0,1;case W:return x;default:return g}},e.inflateSetDictionary=(e,t,n)=>{let r=0,i=n;if(!e||!e.istate||6!=e.istate.mode)return g;const s=e.istate;return i<1<{let n,r,i,s,a;if(!e||!e.istate)return g;const o=e.istate;if(o.mode!=W&&(o.mode=W,o.marker=0),0===(n=e.avail_in))return b;for(r=e.next_in_index,i=o.marker;0!==n&&4>i;)e.read_byte(r)==F[i]?i++:i=0!==e.read_byte(r)?0:4-i,r++,n--;return e.total_in+=r-e.next_in_index,e.next_in_index=r,e.avail_in=n,o.marker=i,4!=i?x:(s=e.total_in,a=e.total_out,t(e),e.total_in=s,e.total_out=a,o.mode=7,0)},e.inflateSyncPoint=e=>e&&e.istate&&e.istate.blocks?e.istate.blocks.sync_point():g}function q(){}q.prototype={inflateInit(e){const t=this;return t.istate=new j,e||(e=15),t.istate.inflateInit(t,e)},inflate(e){const t=this;return t.istate?t.istate.inflate(t,e):g},inflateEnd(){const e=this;if(!e.istate)return g;const t=e.istate.inflateEnd(e);return e.istate=null,t},inflateSync(){const e=this;return e.istate?e.istate.inflateSync(e):g},inflateSetDictionary(e,t){const n=this;return n.istate?n.istate.inflateSetDictionary(n,e,t):g},read_byte(e){return this.next_in[e]},read_buf(e,t){return this.next_in.subarray(e,e+t)}};const T=4294967295,O=65535,R=67324752,L=134695760,I=L,M=33639248,P=101010256,B=101075792,H=117853008,N=22,V=21589,Z=2048,K="/",G=new Date(2107,11,31),X=new Date(1980,0,1),J=void 0,Y="undefined",Q="function";class ${constructor(e){return class extends TransformStream{constructor(t,n){const r=new e(n);super({transform(e,t){t.enqueue(r.append(e))},flush(e){const t=r.flush();t&&e.enqueue(t)}})}}}}let ee=2;try{typeof navigator!=Y&&navigator.hardwareConcurrency&&(ee=navigator.hardwareConcurrency)}catch(e){}const te={chunkSize:524288,maxWorkers:ee,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:J,CompressionStreamNative:typeof CompressionStream!=Y&&CompressionStream,DecompressionStreamNative:typeof DecompressionStream!=Y&&DecompressionStream},ne=Object.assign({},te);function re(){return ne}function ie(e){return Math.max(e.chunkSize,64)}function se(e){const{baseURL:t,chunkSize:n,maxWorkers:r,terminateWorkerTimeout:i,useCompressionStream:s,useWebWorkers:a,Deflate:o,Inflate:c,CompressionStream:l,DecompressionStream:d,workerScripts:f}=e;if(ae("baseURL",t),ae("chunkSize",n),ae("maxWorkers",r),ae("terminateWorkerTimeout",i),ae("useCompressionStream",s),ae("useWebWorkers",a),o&&(ne.CompressionStream=new $(o)),c&&(ne.DecompressionStream=new $(c)),ae("CompressionStream",l),ae("DecompressionStream",d),f!==J){const{deflate:e,inflate:t}=f;if((e||t)&&(ne.workerScripts||(ne.workerScripts={})),e){if(!Array.isArray(e))throw Error("workerScripts.deflate must be an array");ne.workerScripts.deflate=e}if(t){if(!Array.isArray(t))throw Error("workerScripts.inflate must be an array");ne.workerScripts.inflate=t}}}function ae(e,t){t!==J&&(ne[e]=t)}const oe={application:{"andrew-inset":"ez",annodex:"anx","atom+xml":"atom","atomcat+xml":"atomcat","atomserv+xml":"atomsrv",bbolin:"lin","cu-seeme":"cu","davmount+xml":"davmount",dsptype:"tsp",ecmascript:["es","ecma"],futuresplash:"spl",hta:"hta","java-archive":"jar","java-serialized-object":"ser","java-vm":"class",m3g:"m3g","mac-binhex40":"hqx",mathematica:["nb","ma","mb"],msaccess:"mdb",msword:["doc","dot","wiz"],mxf:"mxf",oda:"oda",ogg:"ogx",pdf:"pdf","pgp-keys":"key","pgp-signature":["asc","sig"],"pics-rules":"prf",postscript:["ps","ai","eps","epsi","epsf","eps2","eps3"],rar:"rar","rdf+xml":"rdf","rss+xml":"rss",rtf:"rtf","xhtml+xml":["xhtml","xht"],xml:["xml","xsl","xsd","xpdl"],"xspf+xml":"xspf",zip:"zip","vnd.android.package-archive":"apk","vnd.cinderella":"cdy","vnd.google-earth.kml+xml":"kml","vnd.google-earth.kmz":"kmz","vnd.mozilla.xul+xml":"xul","vnd.ms-excel":["xls","xlb","xlt","xlm","xla","xlc","xlw"],"vnd.ms-pki.seccat":"cat","vnd.ms-pki.stl":"stl","vnd.ms-powerpoint":["ppt","pps","pot","ppa","pwz"],"vnd.oasis.opendocument.chart":"odc","vnd.oasis.opendocument.database":"odb","vnd.oasis.opendocument.formula":"odf","vnd.oasis.opendocument.graphics":"odg","vnd.oasis.opendocument.graphics-template":"otg","vnd.oasis.opendocument.image":"odi","vnd.oasis.opendocument.presentation":"odp","vnd.oasis.opendocument.presentation-template":"otp","vnd.oasis.opendocument.spreadsheet":"ods","vnd.oasis.opendocument.spreadsheet-template":"ots","vnd.oasis.opendocument.text":"odt","vnd.oasis.opendocument.text-master":["odm","otm"],"vnd.oasis.opendocument.text-template":"ott","vnd.oasis.opendocument.text-web":"oth","vnd.openxmlformats-officedocument.spreadsheetml.sheet":"xlsx","vnd.openxmlformats-officedocument.spreadsheetml.template":"xltx","vnd.openxmlformats-officedocument.presentationml.presentation":"pptx","vnd.openxmlformats-officedocument.presentationml.slideshow":"ppsx","vnd.openxmlformats-officedocument.presentationml.template":"potx","vnd.openxmlformats-officedocument.wordprocessingml.document":"docx","vnd.openxmlformats-officedocument.wordprocessingml.template":"dotx","vnd.smaf":"mmf","vnd.stardivision.calc":"sdc","vnd.stardivision.chart":"sds","vnd.stardivision.draw":"sda","vnd.stardivision.impress":"sdd","vnd.stardivision.math":["sdf","smf"],"vnd.stardivision.writer":["sdw","vor"],"vnd.stardivision.writer-global":"sgl","vnd.sun.xml.calc":"sxc","vnd.sun.xml.calc.template":"stc","vnd.sun.xml.draw":"sxd","vnd.sun.xml.draw.template":"std","vnd.sun.xml.impress":"sxi","vnd.sun.xml.impress.template":"sti","vnd.sun.xml.math":"sxm","vnd.sun.xml.writer":"sxw","vnd.sun.xml.writer.global":"sxg","vnd.sun.xml.writer.template":"stw","vnd.symbian.install":["sis","sisx"],"vnd.visio":["vsd","vst","vss","vsw","vsdx","vssx","vstx","vssm","vstm"],"vnd.wap.wbxml":"wbxml","vnd.wap.wmlc":"wmlc","vnd.wap.wmlscriptc":"wmlsc","vnd.wordperfect":"wpd","vnd.wordperfect5.1":"wp5","x-123":"wk","x-7z-compressed":"7z","x-abiword":"abw","x-apple-diskimage":"dmg","x-bcpio":"bcpio","x-bittorrent":"torrent","x-cbr":["cbr","cba","cbt","cb7"],"x-cbz":"cbz","x-cdf":["cdf","cda"],"x-cdlink":"vcd","x-chess-pgn":"pgn","x-cpio":"cpio","x-csh":"csh","x-director":["dir","dxr","cst","cct","cxt","w3d","fgd","swa"],"x-dms":"dms","x-doom":"wad","x-dvi":"dvi","x-httpd-eruby":"rhtml","x-font":"pcf.Z","x-freemind":"mm","x-gnumeric":"gnumeric","x-go-sgf":"sgf","x-graphing-calculator":"gcf","x-gtar":["gtar","taz"],"x-hdf":"hdf","x-httpd-php":["phtml","pht","php"],"x-httpd-php-source":"phps","x-httpd-php3":"php3","x-httpd-php3-preprocessed":"php3p","x-httpd-php4":"php4","x-httpd-php5":"php5","x-ica":"ica","x-info":"info","x-internet-signup":["ins","isp"],"x-iphone":"iii","x-iso9660-image":"iso","x-java-jnlp-file":"jnlp","x-jmol":"jmz","x-killustrator":"kil","x-latex":"latex","x-lyx":"lyx","x-lzx":"lzx","x-maker":["frm","fb","fbdoc"],"x-ms-wmd":"wmd","x-msdos-program":["com","exe","bat","dll"],"x-netcdf":["nc"],"x-ns-proxy-autoconfig":["pac","dat"],"x-nwc":"nwc","x-object":"o","x-oz-application":"oza","x-pkcs7-certreqresp":"p7r","x-python-code":["pyc","pyo"],"x-qgis":["qgs","shp","shx"],"x-quicktimeplayer":"qtl","x-redhat-package-manager":["rpm","rpa"],"x-ruby":"rb","x-sh":"sh","x-shar":"shar","x-shockwave-flash":["swf","swfl"],"x-silverlight":"scr","x-stuffit":"sit","x-sv4cpio":"sv4cpio","x-sv4crc":"sv4crc","x-tar":"tar","x-tex-gf":"gf","x-tex-pk":"pk","x-texinfo":["texinfo","texi"],"x-trash":["~","%","bak","old","sik"],"x-ustar":"ustar","x-wais-source":"src","x-wingz":"wz","x-x509-ca-cert":["crt","der","cer"],"x-xcf":"xcf","x-xfig":"fig","x-xpinstall":"xpi",applixware:"aw","atomsvc+xml":"atomsvc","ccxml+xml":"ccxml","cdmi-capability":"cdmia","cdmi-container":"cdmic","cdmi-domain":"cdmid","cdmi-object":"cdmio","cdmi-queue":"cdmiq","docbook+xml":"dbk","dssc+der":"dssc","dssc+xml":"xdssc","emma+xml":"emma","epub+zip":"epub",exi:"exi","font-tdpfr":"pfr","gml+xml":"gml","gpx+xml":"gpx",gxf:"gxf",hyperstudio:"stk","inkml+xml":["ink","inkml"],ipfix:"ipfix","jsonml+json":"jsonml","lost+xml":"lostxml","mads+xml":"mads",marc:"mrc","marcxml+xml":"mrcx","mathml+xml":["mathml","mml"],mbox:"mbox","mediaservercontrol+xml":"mscml","metalink+xml":"metalink","metalink4+xml":"meta4","mets+xml":"mets","mods+xml":"mods",mp21:["m21","mp21"],mp4:"mp4s","oebps-package+xml":"opf","omdoc+xml":"omdoc",onenote:["onetoc","onetoc2","onetmp","onepkg"],oxps:"oxps","patch-ops-error+xml":"xer","pgp-encrypted":"pgp",pkcs10:"p10","pkcs7-mime":["p7m","p7c"],"pkcs7-signature":"p7s",pkcs8:"p8","pkix-attr-cert":"ac","pkix-crl":"crl","pkix-pkipath":"pkipath",pkixcmp:"pki","pls+xml":"pls","prs.cww":"cww","pskc+xml":"pskcxml","reginfo+xml":"rif","relax-ng-compact-syntax":"rnc","resource-lists+xml":"rl","resource-lists-diff+xml":"rld","rls-services+xml":"rs","rpki-ghostbusters":"gbr","rpki-manifest":"mft","rpki-roa":"roa","rsd+xml":"rsd","sbml+xml":"sbml","scvp-cv-request":"scq","scvp-cv-response":"scs","scvp-vp-request":"spq","scvp-vp-response":"spp",sdp:"sdp","set-payment-initiation":"setpay","set-registration-initiation":"setreg","shf+xml":"shf","sparql-query":"rq","sparql-results+xml":"srx",srgs:"gram","srgs+xml":"grxml","sru+xml":"sru","ssdl+xml":"ssdl","ssml+xml":"ssml","tei+xml":["tei","teicorpus"],"thraud+xml":"tfi","timestamped-data":"tsd","vnd.3gpp.pic-bw-large":"plb","vnd.3gpp.pic-bw-small":"psb","vnd.3gpp.pic-bw-var":"pvb","vnd.3gpp2.tcap":"tcap","vnd.3m.post-it-notes":"pwn","vnd.accpac.simply.aso":"aso","vnd.accpac.simply.imp":"imp","vnd.acucobol":"acu","vnd.acucorp":["atc","acutc"],"vnd.adobe.air-application-installer-package+zip":"air","vnd.adobe.formscentral.fcdt":"fcdt","vnd.adobe.fxp":["fxp","fxpl"],"vnd.adobe.xdp+xml":"xdp","vnd.adobe.xfdf":"xfdf","vnd.ahead.space":"ahead","vnd.airzip.filesecure.azf":"azf","vnd.airzip.filesecure.azs":"azs","vnd.amazon.ebook":"azw","vnd.americandynamics.acc":"acc","vnd.amiga.ami":"ami","vnd.anser-web-certificate-issue-initiation":"cii","vnd.anser-web-funds-transfer-initiation":"fti","vnd.antix.game-component":"atx","vnd.apple.installer+xml":"mpkg","vnd.apple.mpegurl":"m3u8","vnd.aristanetworks.swi":"swi","vnd.astraea-software.iota":"iota","vnd.audiograph":"aep","vnd.blueice.multipass":"mpm","vnd.bmi":"bmi","vnd.businessobjects":"rep","vnd.chemdraw+xml":"cdxml","vnd.chipnuts.karaoke-mmd":"mmd","vnd.claymore":"cla","vnd.cloanto.rp9":"rp9","vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"vnd.cluetrust.cartomobile-config":"c11amc","vnd.cluetrust.cartomobile-config-pkg":"c11amz","vnd.commonspace":"csp","vnd.contact.cmsg":"cdbcmsg","vnd.cosmocaller":"cmc","vnd.crick.clicker":"clkx","vnd.crick.clicker.keyboard":"clkk","vnd.crick.clicker.palette":"clkp","vnd.crick.clicker.template":"clkt","vnd.crick.clicker.wordbank":"clkw","vnd.criticaltools.wbs+xml":"wbs","vnd.ctc-posml":"pml","vnd.cups-ppd":"ppd","vnd.curl.car":"car","vnd.curl.pcurl":"pcurl","vnd.dart":"dart","vnd.data-vision.rdz":"rdz","vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"vnd.dece.ttml+xml":["uvt","uvvt"],"vnd.dece.unspecified":["uvx","uvvx"],"vnd.dece.zip":["uvz","uvvz"],"vnd.denovo.fcselayout-link":"fe_launch","vnd.dna":"dna","vnd.dolby.mlp":"mlp","vnd.dpgraph":"dpg","vnd.dreamfactory":"dfac","vnd.ds-keypoint":"kpxx","vnd.dvb.ait":"ait","vnd.dvb.service":"svc","vnd.dynageo":"geo","vnd.ecowin.chart":"mag","vnd.enliven":"nml","vnd.epson.esf":"esf","vnd.epson.msf":"msf","vnd.epson.quickanime":"qam","vnd.epson.salt":"slt","vnd.epson.ssf":"ssf","vnd.eszigno3+xml":["es3","et3"],"vnd.ezpix-album":"ez2","vnd.ezpix-package":"ez3","vnd.fdf":"fdf","vnd.fdsn.mseed":"mseed","vnd.fdsn.seed":["seed","dataless"],"vnd.flographit":"gph","vnd.fluxtime.clip":"ftc","vnd.framemaker":["fm","frame","maker","book"],"vnd.frogans.fnc":"fnc","vnd.frogans.ltf":"ltf","vnd.fsc.weblaunch":"fsc","vnd.fujitsu.oasys":"oas","vnd.fujitsu.oasys2":"oa2","vnd.fujitsu.oasys3":"oa3","vnd.fujitsu.oasysgp":"fg5","vnd.fujitsu.oasysprs":"bh2","vnd.fujixerox.ddd":"ddd","vnd.fujixerox.docuworks":"xdw","vnd.fujixerox.docuworks.binder":"xbd","vnd.fuzzysheet":"fzs","vnd.genomatix.tuxedo":"txd","vnd.geogebra.file":"ggb","vnd.geogebra.tool":"ggt","vnd.geometry-explorer":["gex","gre"],"vnd.geonext":"gxt","vnd.geoplan":"g2w","vnd.geospace":"g3w","vnd.gmx":"gmx","vnd.grafeq":["gqf","gqs"],"vnd.groove-account":"gac","vnd.groove-help":"ghf","vnd.groove-identity-message":"gim","vnd.groove-injector":"grv","vnd.groove-tool-message":"gtm","vnd.groove-tool-template":"tpl","vnd.groove-vcard":"vcg","vnd.hal+xml":"hal","vnd.handheld-entertainment+xml":"zmm","vnd.hbci":"hbci","vnd.hhe.lesson-player":"les","vnd.hp-hpgl":"hpgl","vnd.hp-hpid":"hpid","vnd.hp-hps":"hps","vnd.hp-jlyt":"jlt","vnd.hp-pcl":"pcl","vnd.hp-pclxl":"pclxl","vnd.hydrostatix.sof-data":"sfd-hdstx","vnd.ibm.minipay":"mpy","vnd.ibm.modcap":["afp","listafp","list3820"],"vnd.ibm.rights-management":"irm","vnd.ibm.secure-container":"sc","vnd.iccprofile":["icc","icm"],"vnd.igloader":"igl","vnd.immervision-ivp":"ivp","vnd.immervision-ivu":"ivu","vnd.insors.igm":"igm","vnd.intercon.formnet":["xpw","xpx"],"vnd.intergeo":"i2g","vnd.intu.qbo":"qbo","vnd.intu.qfx":"qfx","vnd.ipunplugged.rcprofile":"rcprofile","vnd.irepository.package+xml":"irp","vnd.is-xpr":"xpr","vnd.isac.fcs":"fcs","vnd.jam":"jam","vnd.jcp.javame.midlet-rms":"rms","vnd.jisp":"jisp","vnd.joost.joda-archive":"joda","vnd.kahootz":["ktz","ktr"],"vnd.kde.karbon":"karbon","vnd.kde.kchart":"chrt","vnd.kde.kformula":"kfo","vnd.kde.kivio":"flw","vnd.kde.kontour":"kon","vnd.kde.kpresenter":["kpr","kpt"],"vnd.kde.kspread":"ksp","vnd.kde.kword":["kwd","kwt"],"vnd.kenameaapp":"htke","vnd.kidspiration":"kia","vnd.kinar":["kne","knp"],"vnd.koan":["skp","skd","skt","skm"],"vnd.kodak-descriptor":"sse","vnd.las.las+xml":"lasxml","vnd.llamagraphics.life-balance.desktop":"lbd","vnd.llamagraphics.life-balance.exchange+xml":"lbe","vnd.lotus-1-2-3":"123","vnd.lotus-approach":"apr","vnd.lotus-freelance":"pre","vnd.lotus-notes":"nsf","vnd.lotus-organizer":"org","vnd.lotus-screencam":"scm","vnd.lotus-wordpro":"lwp","vnd.macports.portpkg":"portpkg","vnd.mcd":"mcd","vnd.medcalcdata":"mc1","vnd.mediastation.cdkey":"cdkey","vnd.mfer":"mwf","vnd.mfmp":"mfm","vnd.micrografx.flo":"flo","vnd.micrografx.igx":"igx","vnd.mif":"mif","vnd.mobius.daf":"daf","vnd.mobius.dis":"dis","vnd.mobius.mbk":"mbk","vnd.mobius.mqy":"mqy","vnd.mobius.msl":"msl","vnd.mobius.plc":"plc","vnd.mobius.txf":"txf","vnd.mophun.application":"mpn","vnd.mophun.certificate":"mpc","vnd.ms-artgalry":"cil","vnd.ms-cab-compressed":"cab","vnd.ms-excel.addin.macroenabled.12":"xlam","vnd.ms-excel.sheet.binary.macroenabled.12":"xlsb","vnd.ms-excel.sheet.macroenabled.12":"xlsm","vnd.ms-excel.template.macroenabled.12":"xltm","vnd.ms-fontobject":"eot","vnd.ms-htmlhelp":"chm","vnd.ms-ims":"ims","vnd.ms-lrm":"lrm","vnd.ms-officetheme":"thmx","vnd.ms-powerpoint.addin.macroenabled.12":"ppam","vnd.ms-powerpoint.presentation.macroenabled.12":"pptm","vnd.ms-powerpoint.slide.macroenabled.12":"sldm","vnd.ms-powerpoint.slideshow.macroenabled.12":"ppsm","vnd.ms-powerpoint.template.macroenabled.12":"potm","vnd.ms-project":["mpp","mpt"],"vnd.ms-word.document.macroenabled.12":"docm","vnd.ms-word.template.macroenabled.12":"dotm","vnd.ms-works":["wps","wks","wcm","wdb"],"vnd.ms-wpl":"wpl","vnd.ms-xpsdocument":"xps","vnd.mseq":"mseq","vnd.musician":"mus","vnd.muvee.style":"msty","vnd.mynfc":"taglet","vnd.neurolanguage.nlu":"nlu","vnd.nitf":["ntf","nitf"],"vnd.noblenet-directory":"nnd","vnd.noblenet-sealer":"nns","vnd.noblenet-web":"nnw","vnd.nokia.n-gage.data":"ngdat","vnd.nokia.n-gage.symbian.install":"n-gage","vnd.nokia.radio-preset":"rpst","vnd.nokia.radio-presets":"rpss","vnd.novadigm.edm":"edm","vnd.novadigm.edx":"edx","vnd.novadigm.ext":"ext","vnd.oasis.opendocument.chart-template":"otc","vnd.oasis.opendocument.formula-template":"odft","vnd.oasis.opendocument.image-template":"oti","vnd.olpc-sugar":"xo","vnd.oma.dd2+xml":"dd2","vnd.openofficeorg.extension":"oxt","vnd.openxmlformats-officedocument.presentationml.slide":"sldx","vnd.osgeo.mapguide.package":"mgp","vnd.osgi.dp":"dp","vnd.osgi.subsystem":"esa","vnd.palm":["pdb","pqa","oprc"],"vnd.pawaafile":"paw","vnd.pg.format":"str","vnd.pg.osasli":"ei6","vnd.picsel":"efif","vnd.pmi.widget":"wg","vnd.pocketlearn":"plf","vnd.powerbuilder6":"pbd","vnd.previewsystems.box":"box","vnd.proteus.magazine":"mgz","vnd.publishare-delta-tree":"qps","vnd.pvi.ptid1":"ptid","vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"vnd.realvnc.bed":"bed","vnd.recordare.musicxml":"mxl","vnd.recordare.musicxml+xml":"musicxml","vnd.rig.cryptonote":"cryptonote","vnd.rn-realmedia":"rm","vnd.rn-realmedia-vbr":"rmvb","vnd.route66.link66+xml":"link66","vnd.sailingtracker.track":"st","vnd.seemail":"see","vnd.sema":"sema","vnd.semd":"semd","vnd.semf":"semf","vnd.shana.informed.formdata":"ifm","vnd.shana.informed.formtemplate":"itp","vnd.shana.informed.interchange":"iif","vnd.shana.informed.package":"ipk","vnd.simtech-mindmapper":["twd","twds"],"vnd.smart.teacher":"teacher","vnd.solent.sdkm+xml":["sdkm","sdkd"],"vnd.spotfire.dxp":"dxp","vnd.spotfire.sfs":"sfs","vnd.stepmania.package":"smzip","vnd.stepmania.stepchart":"sm","vnd.sus-calendar":["sus","susp"],"vnd.svd":"svd","vnd.syncml+xml":"xsm","vnd.syncml.dm+wbxml":"bdm","vnd.syncml.dm+xml":"xdm","vnd.tao.intent-module-archive":"tao","vnd.tcpdump.pcap":["pcap","cap","dmp"],"vnd.tmobile-livetv":"tmo","vnd.trid.tpt":"tpt","vnd.triscape.mxs":"mxs","vnd.trueapp":"tra","vnd.ufdl":["ufd","ufdl"],"vnd.uiq.theme":"utz","vnd.umajin":"umj","vnd.unity":"unityweb","vnd.uoml+xml":"uoml","vnd.vcx":"vcx","vnd.visionary":"vis","vnd.vsf":"vsf","vnd.webturbo":"wtb","vnd.wolfram.player":"nbp","vnd.wqd":"wqd","vnd.wt.stf":"stf","vnd.xara":"xar","vnd.xfdl":"xfdl","vnd.yamaha.hv-dic":"hvd","vnd.yamaha.hv-script":"hvs","vnd.yamaha.hv-voice":"hvp","vnd.yamaha.openscoreformat":"osf","vnd.yamaha.openscoreformat.osfpvg+xml":"osfpvg","vnd.yamaha.smaf-audio":"saf","vnd.yamaha.smaf-phrase":"spf","vnd.yellowriver-custom-menu":"cmp","vnd.zul":["zir","zirz"],"vnd.zzazz.deck+xml":"zaz","voicexml+xml":"vxml",widget:"wgt",winhlp:"hlp","wsdl+xml":"wsdl","wspolicy+xml":"wspolicy","x-ace-compressed":"ace","x-authorware-bin":["aab","x32","u32","vox"],"x-authorware-map":"aam","x-authorware-seg":"aas","x-blorb":["blb","blorb"],"x-bzip":"bz","x-bzip2":["bz2","boz"],"x-cfs-compressed":"cfs","x-chat":"chat","x-conference":"nsc","x-dgc-compressed":"dgc","x-dtbncx+xml":"ncx","x-dtbook+xml":"dtb","x-dtbresource+xml":"res","x-eva":"eva","x-font-bdf":"bdf","x-font-ghostscript":"gsf","x-font-linux-psf":"psf","x-font-pcf":"pcf","x-font-snf":"snf","x-font-ttf":["ttf","ttc"],"x-font-type1":["pfa","pfb","pfm","afm"],"x-freearc":"arc","x-gca-compressed":"gca","x-glulx":"ulx","x-gramps-xml":"gramps","x-install-instructions":"install","x-lzh-compressed":["lzh","lha"],"x-mie":"mie","x-mobipocket-ebook":["prc","mobi"],"x-ms-application":"application","x-ms-shortcut":"lnk","x-ms-xbap":"xbap","x-msbinder":"obd","x-mscardfile":"crd","x-msclip":"clp","application/x-ms-installer":"msi","x-msmediaview":["mvb","m13","m14"],"x-msmetafile":["wmf","wmz","emf","emz"],"x-msmoney":"mny","x-mspublisher":"pub","x-msschedule":"scd","x-msterminal":"trm","x-mswrite":"wri","x-nzb":"nzb","x-pkcs12":["p12","pfx"],"x-pkcs7-certificates":["p7b","spc"],"x-research-info-systems":"ris","x-silverlight-app":"xap","x-sql":"sql","x-stuffitx":"sitx","x-subrip":"srt","x-t3vm-image":"t3","x-tex-tfm":"tfm","x-tgif":"obj","x-xliff+xml":"xlf","x-xz":"xz","x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"xaml+xml":"xaml","xcap-diff+xml":"xdf","xenc+xml":"xenc","xml-dtd":"dtd","xop+xml":"xop","xproc+xml":"xpl","xslt+xml":"xslt","xv+xml":["mxml","xhvml","xvml","xvm"],yang:"yang","yin+xml":"yin",envoy:"evy",fractals:"fif","internet-property-stream":"acx",olescript:"axs","vnd.ms-outlook":"msg","vnd.ms-pkicertstore":"sst","x-compress":"z","x-perfmon":["pma","pmc","pmr","pmw"],"ynd.ms-pkipko":"pko",gzip:["gz","tgz"],"smil+xml":["smi","smil"],"vnd.debian.binary-package":["deb","udeb"],"vnd.hzn-3d-crossword":"x3d","vnd.sqlite3":["db","sqlite","sqlite3","db-wal","sqlite-wal","db-shm","sqlite-shm"],"vnd.wap.sic":"sic","vnd.wap.slc":"slc","x-krita":["kra","krz"],"x-perl":["pm","pl"],yaml:["yaml","yml"]},audio:{amr:"amr","amr-wb":"awb",annodex:"axa",basic:["au","snd"],flac:"flac",midi:["mid","midi","kar","rmi"],mpeg:["mpga","mpega","mp3","m4a","mp2a","m2a","m3a"],mpegurl:"m3u",ogg:["oga","ogg","spx"],"prs.sid":"sid","x-aiff":"aifc","x-gsm":"gsm","x-ms-wma":"wma","x-ms-wax":"wax","x-pn-realaudio":"ram","x-realaudio":"ra","x-sd2":"sd2",adpcm:"adp",mp4:"mp4a",s3m:"s3m",silk:"sil","vnd.dece.audio":["uva","uvva"],"vnd.digital-winds":"eol","vnd.dra":"dra","vnd.dts":"dts","vnd.dts.hd":"dtshd","vnd.lucent.voice":"lvp","vnd.ms-playready.media.pya":"pya","vnd.nuera.ecelp4800":"ecelp4800","vnd.nuera.ecelp7470":"ecelp7470","vnd.nuera.ecelp9600":"ecelp9600","vnd.rip":"rip",webm:"weba","x-caf":"caf","x-matroska":"mka","x-pn-realaudio-plugin":"rmp",xm:"xm",aac:"aac",aiff:["aiff","aif","aff"],opus:"opus",wav:"wav"},chemical:{"x-alchemy":"alc","x-cache":["cac","cache"],"x-cache-csf":"csf","x-cactvs-binary":["cbin","cascii","ctab"],"x-cdx":"cdx","x-chem3d":"c3d","x-cif":"cif","x-cmdf":"cmdf","x-cml":"cml","x-compass":"cpa","x-crossfire":"bsd","x-csml":["csml","csm"],"x-ctx":"ctx","x-cxf":["cxf","cef"],"x-embl-dl-nucleotide":["emb","embl"],"x-gamess-input":["inp","gam","gamin"],"x-gaussian-checkpoint":["fch","fchk"],"x-gaussian-cube":"cub","x-gaussian-input":["gau","gjc","gjf"],"x-gaussian-log":"gal","x-gcg8-sequence":"gcg","x-genbank":"gen","x-hin":"hin","x-isostar":["istr","ist"],"x-jcamp-dx":["jdx","dx"],"x-kinemage":"kin","x-macmolecule":"mcm","x-macromodel-input":"mmod","x-mdl-molfile":"mol","x-mdl-rdfile":"rd","x-mdl-rxnfile":"rxn","x-mdl-sdfile":"sd","x-mdl-tgf":"tgf","x-mmcif":"mcif","x-mol2":"mol2","x-molconn-Z":"b","x-mopac-graph":"gpt","x-mopac-input":["mop","mopcrt","zmt"],"x-mopac-out":"moo","x-ncbi-asn1":"asn","x-ncbi-asn1-ascii":["prt","ent"],"x-ncbi-asn1-binary":"val","x-rosdal":"ros","x-swissprot":"sw","x-vamas-iso14976":"vms","x-vmd":"vmd","x-xtel":"xtel","x-xyz":"xyz"},font:{otf:"otf",woff:"woff",woff2:"woff2"},image:{gif:"gif",ief:"ief",jpeg:["jpeg","jpg","jpe","jfif","jfif-tbnl","jif"],pcx:"pcx",png:"png","svg+xml":["svg","svgz"],tiff:["tiff","tif"],"vnd.djvu":["djvu","djv"],"vnd.wap.wbmp":"wbmp","x-canon-cr2":"cr2","x-canon-crw":"crw","x-cmu-raster":"ras","x-coreldraw":"cdr","x-coreldrawpattern":"pat","x-coreldrawtemplate":"cdt","x-corelphotopaint":"cpt","x-epson-erf":"erf","x-icon":"ico","x-jg":"art","x-jng":"jng","x-nikon-nef":"nef","x-olympus-orf":"orf","x-portable-anymap":"pnm","x-portable-bitmap":"pbm","x-portable-graymap":"pgm","x-portable-pixmap":"ppm","x-rgb":"rgb","x-xbitmap":"xbm","x-xpixmap":"xpm","x-xwindowdump":"xwd",bmp:"bmp",cgm:"cgm",g3fax:"g3",ktx:"ktx","prs.btif":"btif",sgi:"sgi","vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"vnd.dwg":"dwg","vnd.dxf":"dxf","vnd.fastbidsheet":"fbs","vnd.fpx":"fpx","vnd.fst":"fst","vnd.fujixerox.edmics-mmr":"mmr","vnd.fujixerox.edmics-rlc":"rlc","vnd.ms-modi":"mdi","vnd.ms-photo":"wdp","vnd.net-fpx":"npx","vnd.xiff":"xif",webp:"webp","x-3ds":"3ds","x-cmx":"cmx","x-freehand":["fh","fhc","fh4","fh5","fh7"],"x-pict":["pic","pct"],"x-tga":"tga","cis-cod":"cod",avif:"avifs",heic:["heif","heic"],pjpeg:["pjpg"],"vnd.adobe.photoshop":"psd","x-adobe-dng":"dng","x-fuji-raf":"raf","x-icns":"icns","x-kodak-dcr":"dcr","x-kodak-k25":"k25","x-kodak-kdc":"kdc","x-minolta-mrw":"mrw","x-panasonic-raw":["raw","rw2","rwl"],"x-pentax-pef":["pef","ptx"],"x-sigma-x3f":"x3f","x-sony-arw":"arw","x-sony-sr2":"sr2","x-sony-srf":"srf"},message:{rfc822:["eml","mime","mht","mhtml","nws"]},model:{iges:["igs","iges"],mesh:["msh","mesh","silo"],vrml:["wrl","vrml"],"x3d+vrml":["x3dv","x3dvz"],"x3d+xml":"x3dz","x3d+binary":["x3db","x3dbz"],"vnd.collada+xml":"dae","vnd.dwf":"dwf","vnd.gdl":"gdl","vnd.gtw":"gtw","vnd.mts":"mts","vnd.usdz+zip":"usdz","vnd.vtu":"vtu"},text:{"cache-manifest":["manifest","appcache"],calendar:["ics","icz","ifb"],css:"css",csv:"csv",h323:"323",html:["html","htm","shtml","stm"],iuls:"uls",plain:["txt","text","brf","conf","def","list","log","in","bas","diff","ksh"],richtext:"rtx",scriptlet:["sct","wsc"],texmacs:"tm","tab-separated-values":"tsv","vnd.sun.j2me.app-descriptor":"jad","vnd.wap.wml":"wml","vnd.wap.wmlscript":"wmls","x-bibtex":"bib","x-boo":"boo","x-c++hdr":["h++","hpp","hxx","hh"],"x-c++src":["c++","cpp","cxx","cc"],"x-component":"htc","x-dsrc":"d","x-diff":"patch","x-haskell":"hs","x-java":"java","x-literate-haskell":"lhs","x-moc":"moc","x-pascal":["p","pas","pp","inc"],"x-pcs-gcd":"gcd","x-python":"py","x-scala":"scala","x-setext":"etx","x-tcl":["tcl","tk"],"x-tex":["tex","ltx","sty","cls"],"x-vcalendar":"vcs","x-vcard":"vcf",n3:"n3","prs.lines.tag":"dsc",sgml:["sgml","sgm"],troff:["t","tr","roff","man","me","ms"],turtle:"ttl","uri-list":["uri","uris","urls"],vcard:"vcard","vnd.curl":"curl","vnd.curl.dcurl":"dcurl","vnd.curl.scurl":"scurl","vnd.curl.mcurl":"mcurl","vnd.dvb.subtitle":"sub","vnd.fly":"fly","vnd.fmi.flexstor":"flx","vnd.graphviz":"gv","vnd.in3d.3dml":"3dml","vnd.in3d.spot":"spot","x-asm":["s","asm"],"x-c":["c","h","dic"],"x-fortran":["f","for","f77","f90"],"x-opml":"opml","x-nfo":"nfo","x-sfv":"sfv","x-uuencode":"uu",webviewhtml:"htt",javascript:"js",json:"json",markdown:["md","markdown","mdown","markdn"],"vnd.wap.si":"si","vnd.wap.sl":"sl"},video:{avif:"avif","3gpp":"3gp",annodex:"axv",dl:"dl",dv:["dif","dv"],fli:"fli",gl:"gl",mpeg:["mpeg","mpg","mpe","m1v","m2v","mp2","mpa","mpv2"],mp4:["mp4","mp4v","mpg4"],quicktime:["qt","mov"],ogg:"ogv","vnd.mpegurl":["mxu","m4u"],"x-flv":"flv","x-la-asf":["lsf","lsx"],"x-mng":"mng","x-ms-asf":["asf","asx","asr"],"x-ms-wm":"wm","x-ms-wmv":"wmv","x-ms-wmx":"wmx","x-ms-wvx":"wvx","x-msvideo":"avi","x-sgi-movie":"movie","x-matroska":["mpv","mkv","mk3d","mks"],"3gpp2":"3g2",h261:"h261",h263:"h263",h264:"h264",jpeg:"jpgv",jpm:["jpm","jpgm"],mj2:["mj2","mjp2"],"vnd.dece.hd":["uvh","uvvh"],"vnd.dece.mobile":["uvm","uvvm"],"vnd.dece.pd":["uvp","uvvp"],"vnd.dece.sd":["uvs","uvvs"],"vnd.dece.video":["uvv","uvvv"],"vnd.dvb.file":"dvb","vnd.fvt":"fvt","vnd.ms-playready.media.pyv":"pyv","vnd.uvvu.mp4":["uvu","uvvu"],"vnd.vivo":"viv",webm:"webm","x-f4v":"f4v","x-m4v":"m4v","x-ms-vob":"vob","x-smv":"smv",mp2t:"ts"},"x-conference":{"x-cooltalk":"ice"},"x-world":{"x-vrml":["vrm","flr","wrz","xaf","xof"]}},ce=(()=>{const e={};for(const t of Object.keys(oe))for(const n of Object.keys(oe[t])){const r=oe[t][n];if("string"==typeof r)e[r]=t+"/"+n;else for(let i=0;ie;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;de[e]=t}class fe{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let n=0,r=0|e.length;r>n;n++)t=t>>>8^de[255&(t^e[n])];this.crc=t}get(){return~this.crc}}class ue extends TransformStream{constructor(){let e;const t=new fe;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new Uint8Array(4);new DataView(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}function pe(e){if(typeof TextEncoder==Y){e=unescape(encodeURIComponent(e));const t=new Uint8Array(e.length);for(let n=0;n0&&t&&(e[n-1]=me.partial(t,e[n-1]&2147483648>>t-1,1)),e},partial:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,getPartial:e=>Math.round(e/1099511627776)||32,_shiftRight(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let i=0;i>>t),n=e[i]<<32-t;const i=e.length?e[e.length-1]:0,s=me.getPartial(i);return r.push(me.partial(t+s&31,t+s>32?n:r.pop(),1)),r}},he={bytes:{fromBits(e){const t=me.bitLength(e)/8,n=new Uint8Array(t);let r;for(let i=0;t>i;i++)3&i||(r=e[i/4]),n[i]=r>>>24,r<<=8;return n},toBits(e){const t=[];let n,r=0;for(n=0;n9007199254740991)throw Error("Cannot hash more than 2^53 - 1 bits");const s=new Uint32Array(n);let a=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);i>=e;e+=t.blockSize)t._block(s.subarray(16*a,16*(a+1))),a+=1;return n.splice(0,16*a),t}finalize(){const e=this;let t=e._buffer;const n=e._h;t=me.concat(t,[me.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(Math.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),n}_f(e,t,n,r){return e>19?e>39?e>59?e>79?void 0:t^n^r:t&n|t&r|n&r:t^n^r:t&n|~t&r}_S(e,t){return t<>>32-e}_block(e){const t=this,n=t._h,r=Array(80);for(let t=0;16>t;t++)r[t]=e[t];let i=n[0],s=n[1],a=n[2],o=n[3],c=n[4];for(let e=0;79>=e;e++){16>e||(r[e]=t._S(1,r[e-3]^r[e-8]^r[e-14]^r[e-16]));const n=t._S(5,i)+t._f(e,s,a,o)+c+r[e]+t._key[Math.floor(e/20)]|0;c=o,o=a,a=t._S(30,s),s=i,i=n}n[0]=n[0]+i|0,n[1]=n[1]+s|0,n[2]=n[2]+a|0,n[3]=n[3]+o|0,n[4]=n[4]+c|0}},ge={getRandomValues(e){const t=new Uint32Array(e.buffer),n=e=>{let t=987654321;const n=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&n,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n)/4294967296+.5)*(Math.random()>.5?1:-1))};for(let r,i=0;inew xe.hmacSha1(he.bytes.toBits(e)),pbkdf2(e,t,n,r){if(n=n||1e4,0>r||0>n)throw Error("invalid params to pbkdf2");const i=1+(r>>5)<<2;let s,a,o,c,l;const d=new ArrayBuffer(i),f=new DataView(d);let u=0;const p=me;for(t=he.bytes.toBits(t),l=1;(i||1)>u;l++){for(s=a=e.encrypt(p.concat(t,[l])),o=1;n>o;o++)for(a=e.encrypt(a),c=0;cu&&oi&&(e=(new n).update(e).finalize());for(let t=0;i>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t._baseHash[0].update(r[0]),t._baseHash[1].update(r[1]),t._resultHash=new n(t._baseHash[0])}reset(){const e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){this._updated=!0,this._resultHash.update(e)}digest(){const e=this,t=e._resultHash.finalize(),n=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),n}encrypt(e){if(this._updated)throw Error("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},be=typeof crypto!=Y&&typeof crypto.getRandomValues==Q,ve="Invalid password",ye="Invalid signature",_e="zipjs-abort-check-password";function ke(e){return be?crypto.getRandomValues(e):ge.getRandomValues(e)}const Se=16,ze={name:"PBKDF2"},Ae=Object.assign({hash:{name:"HMAC"}},ze),Ce=Object.assign({iterations:1e3,hash:{name:"SHA-1"}},ze),De=["deriveBits"],Ue=[8,12,16],Ee=[16,24,32],We=10,Fe=[0,0,0,0],je=typeof crypto!=Y,qe=je&&crypto.subtle,Te=je&&typeof qe!=Y,Oe=he.bytes,Re=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const n=t._tables[0][4],r=t._tables[1],i=e.length;let s,a,o,c=1;if(4!==i&&6!==i&&8!==i)throw Error("invalid aes key size");for(t._key=[a=e.slice(0),o=[]],s=i;4*i+28>s;s++){let e=a[s-1];(s%i==0||8===i&&s%i==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],s%i==0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),a[s]=a[s-i]^e}for(let e=0;s;e++,s--){const t=a[3&e?s:s-4];o[e]=4>=s||4>e?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],n=e[4],r=t[4],i=[],s=[];let a,o,c,l;for(let e=0;256>e;e++)s[(i[e]=e<<1^283*(e>>7))^e]=e;for(let d=a=0;!n[d];d^=o||1,a=s[a]||1){let s=a^a<<1^a<<2^a<<3^a<<4;s=s>>8^255&s^99,n[d]=s,r[s]=d,l=i[c=i[o=i[d]]];let f=16843009*l^65537*c^257*o^16843008*d,u=257*i[s]^16843008*s;for(let n=0;4>n;n++)e[n][d]=u=u<<24^u>>>8,t[n][s]=f=f<<24^f>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}_crypt(e,t){if(4!==e.length)throw Error("invalid aes block size");const n=this._key[t],r=n.length/4-2,i=[0,0,0,0],s=this._tables[t],a=s[0],o=s[1],c=s[2],l=s[3],d=s[4];let f,u,p,m=e[0]^n[0],h=e[t?3:1]^n[1],w=e[2]^n[2],g=e[t?1:3]^n[3],x=4;for(let e=0;r>e;e++)f=a[m>>>24]^o[h>>16&255]^c[w>>8&255]^l[255&g]^n[x],u=a[h>>>24]^o[w>>16&255]^c[g>>8&255]^l[255&m]^n[x+1],p=a[w>>>24]^o[g>>16&255]^c[m>>8&255]^l[255&h]^n[x+2],g=a[g>>>24]^o[m>>16&255]^c[h>>8&255]^l[255&w]^n[x+3],x+=4,m=f,h=u,w=p;for(let e=0;4>e;e++)i[t?3&-e:e]=d[m>>>24]<<24^d[h>>16&255]<<16^d[w>>8&255]<<8^d[255&g]^n[x++],f=m,m=h,h=w,w=g,g=f;return i}},Le=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let r;if(!(r=t.length))return[];const i=me.bitLength(t);for(let i=0;r>i;i+=4){this.incCounter(n);const r=e.encrypt(n);t[i]^=r[0],t[i+1]^=r[1],t[i+2]^=r[2],t[i+3]^=r[3]}return me.clamp(t,i)}},Ie=xe.hmacSha1;let Me=je&&Te&&typeof qe.importKey==Q,Pe=je&&Te&&typeof qe.deriveBits==Q;class Be extends TransformStream{constructor({password:e,rawPassword:t,signed:n,encryptionStrength:r,checkPasswordOnly:i}){super({start(){Object.assign(this,{ready:new Promise((e=>this.resolveReady=e)),password:Ze(e,t),signed:n,strength:r-1,pending:new Uint8Array})},async transform(e,t){const n=this,{password:r,strength:s,resolveReady:a,ready:o}=n;r?(await(async(e,t,n,r)=>{const i=await Ve(e,t,n,Ge(r,0,Ue[t])),s=Ge(r,Ue[t]);if(i[0]!=s[0]||i[1]!=s[1])throw Error(ve)})(n,s,r,Ge(e,0,Ue[s]+2)),e=Ge(e,Ue[s]+2),i?t.error(Error(_e)):a()):await o;const c=new Uint8Array(e.length-We-(e.length-We)%Se);t.enqueue(Ne(n,e,c,0,We,!0))},async flush(e){const{signed:t,ctr:n,hmac:r,pending:i,ready:s}=this;if(r&&n){await s;const a=Ge(i,0,i.length-We),o=Ge(i,i.length-We);let c=new Uint8Array;if(a.length){const e=Je(Oe,a);r.update(e);const t=n.update(e);c=Xe(Oe,t)}if(t){const e=Ge(Xe(Oe,r.digest()),0,We);for(let t=0;We>t;t++)if(e[t]!=o[t])throw Error(ye)}e.enqueue(c)}}})}}class He extends TransformStream{constructor({password:e,rawPassword:t,encryptionStrength:n}){let r;super({start(){Object.assign(this,{ready:new Promise((e=>this.resolveReady=e)),password:Ze(e,t),strength:n-1,pending:new Uint8Array})},async transform(e,t){const n=this,{password:r,strength:i,resolveReady:s,ready:a}=n;let o=new Uint8Array;r?(o=await(async(e,t,n)=>{const r=ke(new Uint8Array(Ue[t]));return Ke(r,await Ve(e,t,n,r))})(n,i,r),s()):await a;const c=new Uint8Array(o.length+e.length-e.length%Se);c.set(o,0),t.enqueue(Ne(n,e,c,o.length,0))},async flush(e){const{ctr:t,hmac:n,pending:i,ready:s}=this;if(n&&t){await s;let a=new Uint8Array;if(i.length){const e=t.update(Je(Oe,i));n.update(e),a=Xe(Oe,e)}r.signature=Xe(Oe,n.digest()).slice(0,We),e.enqueue(Ke(a,r.signature))}}}),r=this}}function Ne(e,t,n,r,i,s){const{ctr:a,hmac:o,pending:c}=e,l=t.length-i;let d;for(c.length&&(t=Ke(c,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new Uint8Array(t)).set(n,0)}return e})(n,l-l%Se)),d=0;l-Se>=d;d+=Se){const e=Je(Oe,Ge(t,d,d+Se));s&&o.update(e);const i=a.update(e);s||o.update(i),n.set(Xe(Oe,i),d+r)}return e.pending=Ge(t,d),n}async function Ve(e,t,n,r){e.password=null;const i=await(async(e,t,n,r,i)=>{if(!Me)return xe.importKey(t);try{return await qe.importKey("raw",t,n,!1,i)}catch(e){return Me=!1,xe.importKey(t)}})(0,n,Ae,0,De),s=await(async(e,t,n)=>{if(!Pe)return xe.pbkdf2(t,e.salt,Ce.iterations,n);try{return await qe.deriveBits(e,t,n)}catch(r){return Pe=!1,xe.pbkdf2(t,e.salt,Ce.iterations,n)}})(Object.assign({salt:r},Ce),i,8*(2*Ee[t]+2)),a=new Uint8Array(s),o=Je(Oe,Ge(a,0,Ee[t])),c=Je(Oe,Ge(a,Ee[t],2*Ee[t])),l=Ge(a,2*Ee[t]);return Object.assign(e,{keys:{key:o,authentication:c,passwordVerification:l},ctr:new Le(new Re(o),Array.from(Fe)),hmac:new Ie(c)}),l}function Ze(e,t){return t===J?pe(e):t}function Ke(e,t){let n=e;return e.length+t.length&&(n=new Uint8Array(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function Ge(e,t,n){return e.subarray(t,n)}function Xe(e,t){return e.fromBits(t)}function Je(e,t){return e.toBits(t)}class Ye extends TransformStream{constructor({password:e,passwordVerification:t,checkPasswordOnly:n}){super({start(){Object.assign(this,{password:e,passwordVerification:t}),tt(this,e)},transform(e,t){const r=this;if(r.password){const t=$e(r,e.subarray(0,12));if(r.password=null,t[11]!=r.passwordVerification)throw Error(ve);e=e.subarray(12)}n?t.error(Error(_e)):t.enqueue($e(r,e))}})}}class Qe extends TransformStream{constructor({password:e,passwordVerification:t}){super({start(){Object.assign(this,{password:e,passwordVerification:t}),tt(this,e)},transform(e,t){const n=this;let r,i;if(n.password){n.password=null;const t=ke(new Uint8Array(12));t[11]=n.passwordVerification,r=new Uint8Array(e.length+t.length),r.set(et(n,t),0),i=12}else r=new Uint8Array(e.length),i=0;r.set(et(n,e),i),t.enqueue(r)}})}}function $e(e,t){const n=new Uint8Array(t.length);for(let r=0;r>>24]),i=~e.crcKey2.get(),e.keys=[n,r,i]}function rt(e){const t=2|e.keys[2];return it(Math.imul(t,1^t)>>>8)}function it(e){return 255&e}function st(e){return 4294967295&e}const at="deflate-raw";class ot extends TransformStream{constructor(e,{chunkSize:t,CompressionStream:n,CompressionStreamNative:r}){super({});const{compressed:i,encrypted:s,useCompressionStream:a,zipCrypto:o,signed:c,level:l}=e,d=this;let f,u,p=lt(super.readable);s&&!o||!c||(f=new ue,p=ut(p,f)),i&&(p=ft(p,a,{level:l,chunkSize:t},r,n)),s&&(o?p=ut(p,new Qe(e)):(u=new He(e),p=ut(p,u))),dt(d,p,(()=>{let e;s&&!o&&(e=u.signature),s&&!o||!c||(e=new DataView(f.value.buffer).getUint32(0)),d.signature=e}))}}class ct extends TransformStream{constructor(e,{chunkSize:t,DecompressionStream:n,DecompressionStreamNative:r}){super({});const{zipCrypto:i,encrypted:s,signed:a,signature:o,compressed:c,useCompressionStream:l}=e;let d,f,u=lt(super.readable);s&&(i?u=ut(u,new Ye(e)):(f=new Be(e),u=ut(u,f))),c&&(u=ft(u,l,{chunkSize:t},r,n)),s&&!i||!a||(d=new ue,u=ut(u,d)),dt(this,u,(()=>{if((!s||i)&&a){const e=new DataView(d.value.buffer);if(o!=e.getUint32(0,!1))throw Error(ye)}}))}}function lt(e){return ut(e,new TransformStream({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function dt(e,t,n){t=ut(t,new TransformStream({flush:n})),Object.defineProperty(e,"readable",{get:()=>t})}function ft(e,t,n,r,i){try{e=ut(e,new(t&&r?r:i)(at,n))}catch(r){if(!t)return e;try{e=ut(e,new i(at,n))}catch(t){return e}}return e}function ut(e,t){return e.pipeThrough(t)}const pt="data",mt="close",ht="deflate",wt="inflate";class gt extends TransformStream{constructor(e,t){super({});const n=this,{codecType:r}=e;let i;r.startsWith(ht)?i=ot:r.startsWith(wt)&&(i=ct);let s=0,a=0;const o=new i(e,t),c=super.readable,l=new TransformStream({transform(e,t){e&&e.length&&(a+=e.length,t.enqueue(e))},flush(){Object.assign(n,{inputSize:a})}}),d=new TransformStream({transform(e,t){e&&e.length&&(s+=e.length,t.enqueue(e))},flush(){const{signature:e}=o;Object.assign(n,{signature:e,outputSize:s,inputSize:a})}});Object.defineProperty(n,"readable",{get:()=>c.pipeThrough(l).pipeThrough(o).pipeThrough(d)})}}class xt extends TransformStream{constructor(e){let t;super({transform:function n(r,i){if(t){const e=new Uint8Array(t.length+r.length);e.set(t),e.set(r,t.length),r=e,t=null}r.length>e?(i.enqueue(r.slice(0,e)),n(r.slice(e),i)):t=r},flush(e){t&&t.length&&e.enqueue(t)}})}}let bt=typeof Worker!=Y;class vt{constructor(e,{readable:t,writable:n},{options:r,config:i,streamOptions:s,useWebWorkers:a,transferStreams:o,scripts:c},l){const{signal:d}=s;return Object.assign(e,{busy:!0,readable:t.pipeThrough(new xt(i.chunkSize)).pipeThrough(new yt(t,s),{signal:d}),writable:n,options:Object.assign({},r),scripts:c,transferStreams:o,terminate:()=>new Promise((t=>{const{worker:n,busy:r}=e;n?(r?e.resolveTerminated=t:(n.terminate(),t()),e.interface=null):t()})),onTaskFinished(){const{resolveTerminated:t}=e;t&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),t()),e.busy=!1,l(e)}}),(a&&bt?St:kt)(e,i)}}class yt extends TransformStream{constructor(e,{onstart:t,onprogress:n,size:r,onend:i}){let s=0;super({async start(){t&&await _t(t,r)},async transform(e,t){s+=e.length,n&&await _t(n,s,r),t.enqueue(e)},async flush(){e.size=s,i&&await _t(i,s)}})}}async function _t(e,...t){try{await e(...t)}catch(e){}}function kt(e,t){return{run:()=>(async({options:e,readable:t,writable:n,onTaskFinished:r},i)=>{try{const r=new gt(e,i);await t.pipeThrough(r).pipeTo(n,{preventClose:!0,preventAbort:!0});const{signature:s,inputSize:a,outputSize:o}=r;return{signature:s,inputSize:a,outputSize:o}}finally{r()}})(e,t)}}function St(e,t){const{baseURL:n,chunkSize:r}=t;if(!e.interface){let i;try{i=((e,t,n)=>{const r={type:"module"};let i,s;typeof e==Q&&(e=e());try{i=new URL(e,t)}catch(t){i=e}if(zt)try{s=new Worker(i)}catch(e){zt=!1,s=new Worker(i,r)}else s=new Worker(i,r);return s.addEventListener("message",(e=>(async({data:e},t)=>{const{type:n,value:r,messageId:i,result:s,error:a}=e,{reader:o,writer:c,resolveResult:l,rejectResult:d,onTaskFinished:f}=t;try{if(a){const{message:e,stack:t,code:n,name:r}=a,i=Error(e);Object.assign(i,{stack:t,code:n,name:r}),u(i)}else{if("pull"==n){const{value:e,done:n}=await o.read();Ct({type:pt,value:e,done:n,messageId:i},t)}n==pt&&(await c.ready,await c.write(new Uint8Array(r)),Ct({type:"ack",messageId:i},t)),n==mt&&u(null,s)}}catch(a){Ct({type:mt,messageId:i},t),u(a)}function u(e,t){e?d(e):l(t),c&&c.releaseLock(),f()}})(e,n))),s})(e.scripts[0],n,e)}catch(n){return bt=!1,kt(e,t)}Object.assign(e,{worker:i,interface:{run:()=>(async(e,t)=>{let n,r;const i=new Promise(((e,t)=>{n=e,r=t}));Object.assign(e,{reader:null,writer:null,resolveResult:n,rejectResult:r,result:i});const{readable:s,options:a,scripts:o}=e,{writable:c,closed:l}=(e=>{let t;const n=new Promise((e=>t=e));return{writable:new WritableStream({async write(t){const n=e.getWriter();await n.ready,await n.write(t),n.releaseLock()},close(){t()},abort:t=>e.getWriter().abort(t)}),closed:n}})(e.writable),d=Ct({type:"start",scripts:o.slice(1),options:a,config:t,readable:s,writable:c},e);d||Object.assign(e,{reader:s.getReader(),writer:c.getWriter()});const f=await i;return d||await c.getWriter().close(),await l,f})(e,{chunkSize:r})}})}return e.interface}let zt=!0,At=!0;function Ct(e,{worker:t,writer:n,onTaskFinished:r,transferStreams:i}){try{const{value:n,readable:r,writable:s}=e,a=[];if(n&&(n.byteLength{const n=Dt.find((e=>!e.busy));if(n)return Ft(n),new vt(n,e,t,m);if(Dt.lengthUt.push({resolve:n,stream:e,workerOptions:t})))})()).run();function m(e){if(Ut.length){const[{resolve:t,stream:n,workerOptions:r}]=Ut.splice(0,1);t(new vt(e,n,r,m))}else e.worker?(Ft(e),((e,t)=>{const{config:n}=t,{terminateWorkerTimeout:r}=n;Number.isFinite(r)&&r>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout((async()=>{Dt=Dt.filter((t=>t!=e));try{await e.terminate()}catch(e){}}),r))})(e,t)):Dt=Dt.filter((t=>t!=e))}}function Ft(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}async function jt(){await Promise.allSettled(Dt.map((e=>(Ft(e),e.terminate()))))}function qt(e,t={},n){return{Deflate:Tt(e.Deflate,t.deflate,n),Inflate:Tt(e.Inflate,t.inflate,n)}}function Tt(e,t,n){return class{constructor(r){const i=this;var s,a;s=r,a="level",(typeof Object.hasOwn===Q?Object.hasOwn(s,a):s.hasOwnProperty(a))&&r.level===J&&delete r.level,i.codec=new e(Object.assign({},t,r)),n(i.codec,(e=>{if(i.pendingData){const t=i.pendingData;i.pendingData=new Uint8Array(t.length+e.length);const{pendingData:n}=i;n.set(t,0),n.set(e,t.length)}else i.pendingData=new Uint8Array(e)}))}append(e){return this.codec.push(e),r(this)}flush(){return this.codec.push(new Uint8Array,!0),r(this)}};function r(e){if(e.pendingData){const t=e.pendingData;return e.pendingData=null,t}return new Uint8Array}}const Ot="HTTP error ",Rt="HTTP Range not supported",Lt="Writer iterator completed too soon",It="Range",Mt="GET",Pt="bytes",Bt=65536,Ht="writable";class Nt{constructor(){this.size=0}init(){this.initialized=!0}}class Vt extends Nt{get readable(){const e=this,{chunkSize:t=Bt}=e,n=new ReadableStream({start(){this.chunkOffset=0},async pull(r){const{offset:i=0,size:s,diskNumberStart:a}=n,{chunkOffset:o}=this;r.enqueue(await _n(e,i+o,Math.min(t,s-o),a)),o+t>s?r.close():this.chunkOffset+=t}});return n}}class Zt extends Nt{constructor(){super();const e=this,t=new WritableStream({write:t=>e.writeUint8Array(t)});Object.defineProperty(e,Ht,{get:()=>t})}writeUint8Array(){}}class Kt extends Vt{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const n=e.indexOf(",")+1;Object.assign(this,{dataURI:e,dataStart:n,size:Math.floor(.75*(t-n))})}readUint8Array(e,t){const{dataStart:n,dataURI:r}=this,i=new Uint8Array(t),s=4*Math.floor(e/3),a=atob(r.substring(s+n,4*Math.ceil((e+t)/3)+n)),o=e-3*Math.floor(s/4);for(let e=o;o+t>e;e++)i[e-o]=a.charCodeAt(e);return i}}class Gt extends Zt{constructor(e){super(),Object.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let n=0,r=t.pending;const i=t.pending.length;for(t.pending="",n=0;n<3*Math.floor((i+e.length)/3)-i;n++)r+=String.fromCharCode(e[n]);for(;n2?t.data+=btoa(r):t.pending=r}getData(){return this.data+btoa(this.pending)}}class Xt extends Vt{constructor(e){super(),Object.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const n=this,r=e+t,i=e||rt&&(s=s.slice(e,r)),new Uint8Array(s)}}class Jt extends Nt{constructor(e){super();const t=new TransformStream,n=[];e&&n.push(["Content-Type",e]),Object.defineProperty(this,Ht,{get:()=>t.writable}),this.blob=new Response(t.readable,{headers:n}).blob()}getData(){return this.blob}}class Yt extends Xt{constructor(e){super(new Blob([e],{type:"text/plain"}))}}class Qt extends Jt{constructor(e){super(e),Object.assign(this,{encoding:e,utf8:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,utf8:t}=this,n=await super.getData();if(n.text&&t)return n.text();{const t=new FileReader;return new Promise(((r,i)=>{Object.assign(t,{onload:({target:e})=>r(e.result),onerror:()=>i(t.error)}),t.readAsText(n,e)}))}}}class $t extends Vt{constructor(e,t){super(),tn(this,e,t)}async init(){await nn(this,fn,on),super.init()}readUint8Array(e,t){return rn(this,e,t,fn,on)}}class en extends Vt{constructor(e,t){super(),tn(this,e,t)}async init(){await nn(this,un,cn),super.init()}readUint8Array(e,t){return rn(this,e,t,un,cn)}}function tn(e,t,n){const{preventHeadRequest:r,useRangeHeader:i,forceRangeRequests:s,combineSizeEocd:a}=n;delete(n=Object.assign({},n)).preventHeadRequest,delete n.useRangeHeader,delete n.forceRangeRequests,delete n.combineSizeEocd,delete n.useXHR,Object.assign(e,{url:t,options:n,preventHeadRequest:r,useRangeHeader:i,forceRangeRequests:s,combineSizeEocd:a})}async function nn(e,t,n){const{url:r,preventHeadRequest:i,useRangeHeader:s,forceRangeRequests:a,combineSizeEocd:o}=e;if((e=>{const{baseURL:t}=re(),{protocol:n}=new URL(e,t);return"http:"==n||"https:"==n})(r)&&(s||a)&&(void 0===i||i)){const r=await t(Mt,e,sn(e,o?-22:void 0));if(!a&&r.headers.get("Accept-Ranges")!=Pt)throw Error(Rt);{let i;o&&(e.eocdCache=new Uint8Array(await r.arrayBuffer()));const s=r.headers.get("Content-Range");if(s){const e=s.trim().split(/\s*\/\s*/);if(e.length){const t=e[1];t&&"*"!=t&&(i=Number(t))}}i===J?await dn(e,t,n):e.size=i}}else await dn(e,t,n)}async function rn(e,t,n,r,i){const{useRangeHeader:s,forceRangeRequests:a,eocdCache:o,size:c,options:l}=e;if(s||a){if(o&&t==c-N&&n==N)return o;const i=await r(Mt,e,sn(e,t,n));if(206!=i.status)throw Error(Rt);return new Uint8Array(await i.arrayBuffer())}{const{data:r}=e;return r||await i(e,l),new Uint8Array(e.data.subarray(t,t+n))}}function sn(e,t=0,n=1){return Object.assign({},an(e),{[It]:Pt+"="+(0>t?t:t+"-"+(t+n-1))})}function an({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?Object.fromEntries(t):t}async function on(e){await ln(e,fn)}async function cn(e){await ln(e,un)}async function ln(e,t){const n=await t(Mt,e,an(e));e.data=new Uint8Array(await n.arrayBuffer()),e.size||(e.size=e.data.length)}async function dn(e,t,n){if(e.preventHeadRequest)await n(e,e.options);else{const r=(await t("HEAD",e,an(e))).headers.get("Content-Length");r?e.size=Number(r):await n(e,e.options)}}async function fn(e,{options:t,url:n},r){const i=await fetch(n,Object.assign({},t,{method:e,headers:r}));if(400>i.status)return i;throw 416==i.status?Error(Rt):Error(Ot+(i.statusText||i.status))}function un(e,{url:t},n){return new Promise(((r,i)=>{const s=new XMLHttpRequest;if(s.addEventListener("load",(()=>{if(400>s.status){const e=[];s.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach((t=>{const n=t.trim().split(/\s*:\s*/);n[0]=n[0].trim().replace(/^[a-z]|-[a-z]/g,(e=>e.toUpperCase())),e.push(n)})),r({status:s.status,arrayBuffer:()=>s.response,headers:new Map(e)})}else i(416==s.status?Error(Rt):Error(Ot+(s.statusText||s.status)))}),!1),s.addEventListener("error",(e=>i(e.detail?e.detail.error:Error("Network error"))),!1),s.open(e,t),n)for(const e of Object.entries(n))s.setRequestHeader(e[0],e[1]);s.responseType="arraybuffer",s.send()}))}class pn extends Vt{constructor(e,t={}){super(),Object.assign(this,{url:e,reader:t.useXHR?new en(e,t):new $t(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class mn extends pn{constructor(e,t={}){t.useRangeHeader=!0,super(e,t)}}class hn extends Vt{constructor(e){super(),Object.assign(this,{array:e,size:e.length})}readUint8Array(e,t){return this.array.slice(e,e+t)}}class wn extends Zt{init(e=0){Object.assign(this,{offset:0,array:new Uint8Array(e)}),super.init()}writeUint8Array(e){const t=this;if(t.offset+e.length>t.array.length){const n=t.array;t.array=new Uint8Array(n.length+e.length),t.array.set(n)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.array}}class gn extends Vt{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:t}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await Promise.all(t.map((async(n,r)=>{await n.init(),r!=t.length-1&&(e.lastDiskOffset+=n.size),e.size+=n.size}))),super.init()}async readUint8Array(e,t,n=0){const r=this,{readers:i}=this;let s,a=n;-1==a&&(a=i.length-1);let o=e;for(;o>=i[a].size;)o-=i[a].size,a++;const c=i[a],l=c.size;if(o+t>l){const i=l-o;s=new Uint8Array(t),s.set(await _n(c,o,i)),s.set(await r.readUint8Array(e+i,t-i,n),i)}else s=await _n(c,o,t);return r.lastDiskNumber=Math.max(a,r.lastDiskNumber),s}}class xn extends Nt{constructor(e,t=4294967295){super();const n=this;let r,i,s;Object.assign(n,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const a=new WritableStream({async write(t){const{availableSize:a}=n;if(s)t.lengtha})}}async function bn(e,t){if(!e.init||e.initialized)return Promise.resolve();await e.init(t)}function vn(e){return Array.isArray(e)&&(e=new gn(e)),e instanceof ReadableStream&&(e={readable:e}),e}function yn(e){e.writable===J&&typeof e.next==Q&&(e=new xn(e)),e instanceof WritableStream&&(e={writable:e});const{writable:t}=e;return t.size===J&&(t.size=0),e instanceof xn||Object.assign(e,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),e}function _n(e,t,n,r){return e.readUint8Array(t,n,r)}const kn=gn,Sn=xn,zn="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function An(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let n=0;nthis[t]=e[t]))}}const $n="File format is not recognized",er="End of central directory not found",tr="End of Zip64 central directory locator not found",nr="Central directory header not found",rr="Local file header not found",ir="Zip64 extra field not found",sr="File contains encrypted entry",ar="Encryption method not supported",or="Compression method not supported",cr="Split zip file",lr="utf-8",dr="cp437",fr=[[Wn,T],[Fn,T],[jn,T],[qn,O]],ur={[O]:{getValue:Sr,bytes:4},[T]:{getValue:zr,bytes:8}};class pr{constructor(e,t={}){Object.assign(this,{reader:vn(e),options:t,config:re()})}async*getEntriesGenerator(e={}){const t=this;let{reader:n}=t;const{config:r}=t;if(await bn(n),n.size!==J&&n.readUint8Array||(n=new Xt(await new Response(n.readable).blob()),await bn(n)),n.size{const r=new Uint8Array(4);var i;return i=t,Ar(r).setUint32(0,i,!0),await s(22)||await s(Math.min(1048582,n));async function s(t){const i=n-t,s=await _n(e,i,t);for(let e=s.length-22;e>=0;e--)if(s[e]==r[0]&&s[e+1]==r[1]&&s[e+2]==r[2]&&s[e+3]==r[3])return{offset:i+e,buffer:s.slice(e,e+22).buffer}}})(n,P,n.size);if(!i)throw Sr(Ar(await _n(n,0,4)))==L?Error(cr):Error(er);const s=Ar(i);let a=Sr(s,12),o=Sr(s,16);const c=i.offset,l=kr(s,20),d=c+N+l;let f=kr(s,4);const u=n.lastDiskNumber||0;let p=kr(s,6),m=kr(s,8),h=0,w=0;if(o==T||a==T||m==O||p==O){const e=Ar(await _n(n,i.offset-20,20));if(Sr(e,0)==H){o=zr(e,8);let t=await _n(n,o,56,-1),r=Ar(t);const s=i.offset-20-56;if(Sr(r,0)!=B&&o!=s){const e=o;o=s,h=o-e,t=await _n(n,o,56,-1),r=Ar(t)}if(Sr(r,0)!=B)throw Error(tr);f==O&&(f=Sr(r,16)),p==O&&(p=Sr(r,20)),m==O&&(m=zr(r,32)),a==T&&(a=zr(r,40)),o-=a}}if(oo)throw Error($n);let g=0,x=await _n(n,o,a,p),b=Ar(x);if(a){const e=i.offset-a;if(Sr(b,g)!=M&&o!=e){const t=o;o=e,h+=o-t,x=await _n(n,o,a,p),b=Ar(x)}}const v=i.offset-o-(n.lastDiskOffset||0);if(a==v||0>v||(a=v,x=await _n(n,o,a,p),b=Ar(x)),0>o||o>=n.size)throw Error($n);const y=br(t,e,"filenameEncoding"),_=br(t,e,"commentEncoding");for(let i=0;m>i;i++){const s=new hr(n,r,t.options);if(Sr(b,g)!=M)throw Error(nr);wr(s,b,g+6);const a=!!s.bitFlag.languageEncodingFlag,o=g+46,c=o+s.filenameLength,l=c+s.extraFieldLength,d=kr(b,g+4),f=!(d>>8),u=d>>8==3,p=x.subarray(o,c),v=kr(b,g+32),k=l+v,S=x.subarray(l,k),z=a,A=a,C=Sr(b,g+38),D=f&&!(16&~_r(b,g+38))||u&&!(16384&~(C>>16))||p.length&&47==p[p.length-1],U=u&&!(73&~(C>>16)),E=Sr(b,g+42)+h;Object.assign(s,{versionMadeBy:d,msDosCompatible:f,compressedSize:0,uncompressedSize:0,commentLength:v,directory:D,offset:E,diskNumberStart:kr(b,g+34),internalFileAttributes:kr(b,g+36),externalFileAttributes:C,rawFilename:p,filenameUTF8:z,commentUTF8:A,rawExtraField:x.subarray(c,l),executable:U}),s.internalFileAttribute=s.internalFileAttributes,s.externalFileAttribute=s.externalFileAttributes;const W=br(t,e,"decodeText")||An,F=z?lr:y||dr,j=A?lr:_||dr;let q=W(p,F);q===J&&(q=An(p,F));let T=W(S,j);T===J&&(T=An(S,j)),Object.assign(s,{rawComment:S,filename:q,comment:T,directory:D||q.endsWith(K)}),w=Math.max(E,w),gr(s,s,b,g+6),s.zipCrypto=s.encrypted&&!s.extraFieldAES;const O=new Qn(s);O.getData=(e,t)=>s.getData(e,O,t),g=k;const{onprogress:R}=e;if(R)try{await R(i+1,m,new Qn(s))}catch(e){}yield O}const k=br(t,e,"extractPrependedData"),S=br(t,e,"extractAppendedData");return k&&(t.prependedData=w>0?await _n(n,0,w):new Uint8Array),t.comment=l?await _n(n,c+N,l):new Uint8Array,S&&(t.appendedData=d{const{readable:e,writable:t}=new TransformStream;if(n.getData)return n.getData(t),e})()};delete i.getData,e.enqueue(i)}}),this.writable=n}}let hr=class{constructor(e,t,n){Object.assign(this,{reader:e,config:t,options:n})}async getData(e,t,n={}){const r=this,{reader:i,offset:s,diskNumberStart:a,extraFieldAES:o,compressionMethod:c,config:l,bitFlag:d,signature:f,rawLastModDate:u,uncompressedSize:p,compressedSize:m}=r,h=t.localDirectory={},w=Ar(await _n(i,s,30,a));let g=br(r,n,"password"),x=br(r,n,"rawPassword");const b=br(r,n,"passThrough");if(g=g&&g.length&&g,x=x&&x.length&&x,o&&99!=o.originalCompressionMethod)throw Error(or);if(0!=c&&8!=c&&!b)throw Error(or);if(Sr(w,0)!=R)throw Error(rr);wr(h,w,4),h.rawExtraField=h.extraFieldLength?await _n(i,s+30+h.filenameLength,h.extraFieldLength,a):new Uint8Array,gr(r,h,w,4,!0),Object.assign(t,{lastAccessDate:h.lastAccessDate,creationDate:h.creationDate});const v=r.encrypted&&h.encrypted&&!b,y=v&&!o;if(b||(t.zipCrypto=y),v){if(!y&&o.strength===J)throw Error(ar);if(!g&&!x)throw Error(sr)}const _=s+30+h.filenameLength+h.extraFieldLength,k=m,S=i.readable;Object.assign(S,{diskNumberStart:a,offset:_,size:k});const z=br(r,n,"signal"),A=br(r,n,"checkPasswordOnly");A&&(e=new WritableStream),e=yn(e),await bn(e,b?m:p);const{writable:C}=e,{onstart:D,onprogress:U,onend:E}=n,W={options:{codecType:wt,password:g,rawPassword:x,zipCrypto:y,encryptionStrength:o&&o.strength,signed:br(r,n,"checkSignature")&&!b,passwordVerification:y&&(d.dataDescriptor?u>>>8&255:f>>>24&255),signature:f,compressed:0!=c&&!b,encrypted:r.encrypted&&!b,useWebWorkers:br(r,n,"useWebWorkers"),useCompressionStream:br(r,n,"useCompressionStream"),transferStreams:br(r,n,"transferStreams"),checkPasswordOnly:A},config:l,streamOptions:{signal:z,size:k,onstart:D,onprogress:U,onend:E}};let F=0;try{({outputSize:F}=await Wt({readable:S,writable:C},W))}catch(e){if(!A||e.message!=_e)throw e}finally{const e=br(r,n,"preventClose");C.size+=F,e||C.locked||await C.getWriter().close()}return A?J:e.getData?e.getData():C}};function wr(e,t,n){const r=e.rawBitFlag=kr(t,n+2),i=!(1&~r),s=Sr(t,n+6);Object.assign(e,{encrypted:i,version:kr(t,n),bitFlag:{level:(6&r)>>1,dataDescriptor:!(8&~r),languageEncodingFlag:(r&Z)==Z},rawLastModDate:s,lastModDate:vr(s),filenameLength:kr(t,n+22),extraFieldLength:kr(t,n+24)})}function gr(e,t,n,r,i){const{rawExtraField:s}=t,a=t.extraField=new Map,o=Ar(new Uint8Array(s));let c=0;try{for(;c{t.zip64=!0;const n=Ar(e.data),r=fr.filter((([e,n])=>t[e]==n));for(let i=0,s=0;i{const r=Ar(e.data),i=_r(r,4);Object.assign(e,{vendorVersion:_r(r,0),vendorId:_r(r,2),strength:i,originalCompressionMethod:n,compressionMethod:kr(r,5)}),t.compressionMethod=e.compressionMethod})(p,t,l),t.extraFieldAES=p):t.compressionMethod=l;const m=a.get(10);m&&(((e,t)=>{const n=Ar(e.data);let r,i=4;try{for(;i{const r=Ar(e.data),i=_r(r,0),s=[],a=[];n?(1&~i||(s.push(Tn),a.push(On)),2&~i||(s.push(Rn),a.push("rawLastAccessDate")),4&~i||(s.push(Ln),a.push("rawCreationDate"))):5>e.data.length||(s.push(Tn),a.push(On));let o=1;s.forEach(((n,i)=>{if(e.data.length>=o+4){const s=Sr(r,o);t[n]=e[n]=new Date(1e3*s);const c=a[i];e[c]=s}o+=4}))})(h,t,i),t.extraFieldExtendedTimestamp=h);const w=a.get(6534);w&&(t.extraFieldUSDZ=w)}function xr(e,t,n,r,i){const s=Ar(e.data),a=new fe;a.append(i[n]);const o=Ar(new Uint8Array(4));o.setUint32(0,a.get(),!0);const c=Sr(s,1);Object.assign(e,{version:_r(s,0),[t]:An(e.data.subarray(5)),valid:!i.bitFlag.languageEncodingFlag&&c==Sr(o,0)}),e.valid&&(r[t]=e[t],r[t+"UTF8"]=!0)}function br(e,t,n){return t[n]===J?e.options[n]:t[n]}function vr(e){const t=(4294901760&e)>>16,n=65535&e;try{return new Date(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&n)>>11,(2016&n)>>5,2*(31&n),0)}catch(e){}}function yr(e){return new Date(Number(e/BigInt(1e4)-BigInt(116444736e5)))}function _r(e,t){return e.getUint8(t)}function kr(e,t){return e.getUint16(t,!0)}function Sr(e,t){return e.getUint32(t,!0)}function zr(e,t){return Number(e.getBigUint64(t,!0))}function Ar(e){return new DataView(e.buffer)}const Cr="File already exists",Dr="Zip file comment exceeds 64KB",Ur="File entry comment exceeds 64KB",Er="File entry name exceeds 64KB",Wr="Version exceeds 65535",Fr="The strength must equal 1, 2, or 3",jr="Extra field type exceeds 65535",qr="Extra field data exceeds 64KB",Tr="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",Or="Undefined uncompressed size",Rr=new Uint8Array([7,0,2,0,65,69,3,0,0]);let Lr=0;const Ir=[];class Mr{constructor(e,t={}){const n=(e=yn(e)).availableSize!==J&&e.availableSize>0&&e.availableSize!==1/0&&e.maxSize!==J&&e.maxSize>0&&e.maxSize!==1/0;Object.assign(this,{writer:e,addSplitZipSignature:n,options:t,config:re(),files:new Map,filenames:new Set,offset:t.offset===J?e.writable.size:t.offset,pendingEntriesSize:0,pendingAddFileCalls:new Set,bufferedWrites:0})}async add(e="",t,n={}){const r=this,{pendingAddFileCalls:i,config:s}=r;let a;LrIr.push(e)));try{if(e=e.trim(),r.filenames.has(e))throw Error(Cr);return r.filenames.add(e),a=(async(e,t,n,r)=>{t=t.trim();const i=Nr(e,r,Hn),s=Nr(e,r,Kn,i?20:768),a=Nr(e,r,Jn);if(s>O)throw Error(Wr);let o=Nr(e,r,Bn,0);0===o&&(o=Nr(e,r,Pn,0)),!r.directory&&t.endsWith(K)&&(r.directory=!0),Nr(e,r,Xn)?(t.endsWith(K)||(t+=K),0===o&&(o=i?16:1073741824)):i||0!==o||(o=a?493<<16:27525120);const c=Nr(e,r,"encodeText",pe);let l=c(t);if(l===J&&(l=pe(t)),Qr(l)>O)throw Error(Er);const d=r.comment||"";let f=c(d);if(f===J&&(f=pe(d)),Qr(f)>O)throw Error(Ur);const u=Nr(e,r,Zn,20);if(u>O)throw Error(Wr);const p=Nr(e,r,Tn,new Date),m=Nr(e,r,Rn),h=Nr(e,r,Ln);let w=Nr(e,r,Mn,0);0===w&&(w=Nr(e,r,In,0));const g=Nr(e,r,"passThrough");let x,b;g||(x=Nr(e,r,"password"),b=Nr(e,r,"rawPassword"));const v=Nr(e,r,"encryptionStrength",3),y=Nr(e,r,Gn),_=Nr(e,r,"extendedTimestamp",!0),k=Nr(e,r,"keepOrder",!0),S=Nr(e,r,"level"),z=Nr(e,r,"useWebWorkers"),A=Nr(e,r,"bufferedWrite"),C=Nr(e,r,"dataDescriptorSignature",!1),D=Nr(e,r,"signal"),U=Nr(e,r,"useUnicodeFileNames",!0),E=Nr(e,r,"useCompressionStream"),W=Nr(e,r,"compressionMethod");let F=Nr(e,r,"dataDescriptor",!0),j=Nr(e,r,Nn);if(!y&&(x!==J||b!==J)&&(1>v||v>3))throw Error(Fr);let q=new Uint8Array;const{extraField:M}=r;if(M){let e=0,t=0;M.forEach((t=>e+=4+Qr(t))),q=new Uint8Array(e),M.forEach(((e,n)=>{if(n>O)throw Error(jr);if(Qr(e)>O)throw Error(qr);Jr(q,new Uint16Array([n]),t),Jr(q,new Uint16Array([Qr(e)]),t+2),Jr(q,e,t+4),t+=4+Qr(e)}))}let P=0,B=0,H=0;if(g&&(({uncompressedSize:H}=r),H===J))throw Error(Or);const N=!0===j;n&&(n=vn(n),await bn(n),g?P=Vr(H):n.size===J?(F=!0,(j||j===J)&&(j=!0,H=P=4294967296)):(H=n.size,P=Vr(H)));const{diskOffset:Y,diskNumber:Q,maxSize:$}=e.writer,ee=N||H>T,te=N||P>T,ne=N||e.offset+e.pendingEntriesSize-Y>T,re=Nr(e,r,"supportZip64SplitFile",!0)&&N||Q+Math.ceil(e.pendingEntriesSize/$)>O;if(ne||ee||te||re){if(!1===j||!k)throw Error(Tr);j=!0}j=j||!1;const se=Nr(e,r,Vn),{signature:ae}=r,oe=(e=>{const{rawFilename:t,lastModDate:n,lastAccessDate:r,creationDate:i,level:s,zip64:a,zipCrypto:o,useUnicodeFileNames:c,dataDescriptor:l,directory:d,rawExtraField:f,encryptionStrength:u,extendedTimestamp:p,encrypted:m}=e;let{version:h,compressionMethod:w}=e;const g=!d&&(s>0||s===J&&0!==w);let x,b,v,y;if(m&&!o){x=new Uint8Array(Qr(Rr)+2);const e=Yr(x);Kr(e,0,39169),Jr(x,Rr,2),Zr(e,8,u)}else x=new Uint8Array;if(p){v=new Uint8Array(9+(r?4:0)+(i?4:0));const e=Yr(v);Kr(e,0,V),Kr(e,2,Qr(v)-4),y=1+(r?2:0)+(i?4:0),Zr(e,4,y);let t=5;Gr(e,t,Math.floor(n.getTime()/1e3)),t+=4,r&&(Gr(e,t,Math.floor(r.getTime()/1e3)),t+=4),i&&Gr(e,t,Math.floor(i.getTime()/1e3));try{b=new Uint8Array(36);const e=Yr(b),t=Hr(n);Kr(e,0,10),Kr(e,2,32),Kr(e,8,1),Kr(e,10,24),Xr(e,12,t),Xr(e,20,Hr(r)||t),Xr(e,28,Hr(i)||t)}catch(e){b=new Uint8Array}}else b=v=new Uint8Array;let _=0;c&&(_|=Z),l&&(_|=8),w===J&&(w=g?8:0),8==w&&(s>=1&&3>s&&(_|=6),s>=3&&5>s&&(_|=1),9===s&&(_|=2)),a&&(h=h>45?h:45),m&&(_|=1,o||(h=h>51?h:51,x[9]=w,w=99));const k=new Uint8Array(26),S=Yr(k);Kr(S,0,h),Kr(S,2,_),Kr(S,4,w);const z=new Uint32Array(1),A=Yr(z);let C;C=X>n?X:n>G?G:n,Kr(A,0,(C.getHours()<<6|C.getMinutes())<<5|C.getSeconds()/2),Kr(A,2,(C.getFullYear()-1980<<4|C.getMonth()+1)<<5|C.getDate());const D=z[0];Gr(S,6,D),Kr(S,22,Qr(t));const U=Qr(x,v,b,f);Kr(S,24,U);const E=new Uint8Array(30+Qr(t)+U);return Gr(Yr(E),0,R),Jr(E,k,4),Jr(E,t,30),Jr(E,x,30+Qr(t)),Jr(E,v,30+Qr(t,x)),Jr(E,b,30+Qr(t,x,v)),Jr(E,f,30+Qr(t,x,v,b)),{localHeaderArray:E,headerArray:k,headerView:S,lastModDate:n,rawLastModDate:D,encrypted:m,compressed:g,version:h,compressionMethod:w,extraFieldExtendedTimestampFlag:y,rawExtraFieldExtendedTimestamp:v,rawExtraFieldNTFS:b,rawExtraFieldAES:x,extraFieldLength:U}})(r=Object.assign({},r,{rawFilename:l,rawComment:f,version:u,versionMadeBy:s,lastModDate:p,lastAccessDate:m,creationDate:h,rawExtraField:q,zip64:j,zip64UncompressedSize:ee,zip64CompressedSize:te,zip64Offset:ne,zip64DiskNumberStart:re,password:x,rawPassword:b,level:E||e.config.CompressionStream!==J||e.config.CompressionStreamNative!==J?S:0,useWebWorkers:z,encryptionStrength:v,extendedTimestamp:_,zipCrypto:y,bufferedWrite:A,keepOrder:k,useUnicodeFileNames:U,dataDescriptor:F,dataDescriptorSignature:C,signal:D,msDosCompatible:i,internalFileAttribute:w,internalFileAttributes:w,externalFileAttribute:o,externalFileAttributes:o,useCompressionStream:E,passThrough:g,encrypted:!!(x&&Qr(x)||b&&Qr(b))||g&&se,signature:ae,compressionMethod:W})),ce=(e=>{const{zip64:t,dataDescriptor:n,dataDescriptorSignature:r}=e;let i,s=new Uint8Array,a=0;return n&&(s=new Uint8Array(t?r?24:20:r?16:12),i=Yr(s),r&&(a=4,Gr(i,0,I))),{dataDescriptorArray:s,dataDescriptorView:i,dataDescriptorOffset:a}})(r),le=Qr(oe.localHeaderArray,ce.dataDescriptorArray);let de;B=le+P,e.options.usdz&&(B+=B+64),e.pendingEntriesSize+=B;try{de=await(async(e,t,n,r,i)=>{const{files:s,writer:a}=e,{keepOrder:o,dataDescriptor:c,signal:l}=i,{headerInfo:d}=r,{usdz:f}=e.options,u=Array.from(s.values()).pop();let p,m,h,w,g,x,b,v={};s.set(t,v);try{let d;o&&(d=u&&u.lock,v.lock=new Promise((e=>h=e))),!(i.bufferedWrite||e.writerLocked||e.bufferedWrites&&o)&&c||f?(x=a,await y()):(x=new TransformStream,b=new Response(x.readable).blob(),x.writable.size=0,p=!0,e.bufferedWrites++,await bn(a)),await bn(x);const{writable:m}=a;let{diskOffset:k}=a;if(e.addSplitZipSignature){delete e.addSplitZipSignature;const t=new Uint8Array(4);Gr(Yr(t),0,L),await Br(m,t),e.offset+=4}f&&((e,t)=>{const{headerInfo:n}=e;let{localHeaderArray:r,extraFieldLength:i}=n,s=Yr(r),a=64-(t+Qr(r))%64;4>a&&(a+=64);const o=new Uint8Array(a),c=Yr(o);Kr(c,0,6534),Kr(c,2,a-2);const l=r;n.localHeaderArray=r=new Uint8Array(Qr(l)+a),Jr(r,l),Jr(r,o,Qr(l)),s=Yr(r),Kr(s,28,i+a),e.metadataSize+=a})(r,e.offset-k),p||(await d,await _(m));const{diskNumber:S}=a;if(g=!0,v.diskNumberStart=S,v=await(async(e,t,{diskNumberStart:n,lock:r},i,s,a)=>{const{headerInfo:o,dataDescriptorInfo:c,metadataSize:l}=i,{localHeaderArray:d,headerArray:f,lastModDate:u,rawLastModDate:p,encrypted:m,compressed:h,version:w,compressionMethod:g,rawExtraFieldExtendedTimestamp:x,extraFieldExtendedTimestampFlag:b,rawExtraFieldNTFS:v,rawExtraFieldAES:y}=o,{dataDescriptorArray:_}=c,{rawFilename:k,lastAccessDate:S,creationDate:z,password:A,rawPassword:C,level:D,zip64:U,zip64UncompressedSize:E,zip64CompressedSize:W,zip64Offset:F,zip64DiskNumberStart:j,zipCrypto:q,dataDescriptor:O,directory:R,executable:L,versionMadeBy:I,rawComment:M,rawExtraField:P,useWebWorkers:B,onstart:H,onprogress:N,onend:V,signal:Z,encryptionStrength:K,extendedTimestamp:G,msDosCompatible:X,internalFileAttributes:Y,externalFileAttributes:Q,useCompressionStream:$,passThrough:ee}=a,te={lock:r,versionMadeBy:I,zip64:U,directory:!!R,executable:!!L,filenameUTF8:!0,rawFilename:k,commentUTF8:!0,rawComment:M,rawExtraFieldExtendedTimestamp:x,rawExtraFieldNTFS:v,rawExtraFieldAES:y,rawExtraField:P,extendedTimestamp:G,msDosCompatible:X,internalFileAttributes:Y,externalFileAttributes:Q,diskNumberStart:n};let{signature:ne,uncompressedSize:re}=a,se=0;ee||(re=0);const{writable:ae}=t;if(e){e.chunkSize=ie(s),await Br(ae,d);const t=e.readable,n=t.size=e.size,r={options:{codecType:ht,level:D,rawPassword:C,password:A,encryptionStrength:K,zipCrypto:m&&q,passwordVerification:m&&q&&p>>8&255,signed:!ee,compressed:h&&!ee,encrypted:m&&!ee,useWebWorkers:B,useCompressionStream:$,transferStreams:!1},config:s,streamOptions:{signal:Z,size:n,onstart:H,onprogress:N,onend:V}},i=await Wt({readable:t,writable:ae},r);se=i.outputSize,ee||(re=i.inputSize,ne=i.signature),ae.size+=re}else await Br(ae,d);let oe;if(U){let e=4;E&&(e+=8),W&&(e+=8),F&&(e+=8),j&&(e+=4),oe=new Uint8Array(e)}else oe=new Uint8Array;return((e,t)=>{const{signature:n,rawExtraFieldZip64:r,compressedSize:i,uncompressedSize:s,headerInfo:a,dataDescriptorInfo:o}=e,{headerView:c,encrypted:l}=a,{dataDescriptorView:d,dataDescriptorOffset:f}=o,{zip64:u,zip64UncompressedSize:p,zip64CompressedSize:m,zipCrypto:h,dataDescriptor:w}=t;if(l&&!h||n===J||(Gr(c,10,n),w&&Gr(d,f,n)),u){const e=Yr(r);Kr(e,0,1),Kr(e,2,Qr(r)-4);let t=4;p&&(Gr(c,18,T),Xr(e,t,BigInt(s)),t+=8),m&&(Gr(c,14,T),Xr(e,t,BigInt(i))),w&&(Xr(d,f+4,BigInt(i)),Xr(d,f+12,BigInt(s)))}else Gr(c,14,i),Gr(c,18,s),w&&(Gr(d,f+4,i),Gr(d,f+8,s))})({signature:ne,rawExtraFieldZip64:oe,compressedSize:se,uncompressedSize:re,headerInfo:o,dataDescriptorInfo:c},a),O&&await Br(ae,_),Object.assign(te,{uncompressedSize:re,compressedSize:se,lastModDate:u,rawLastModDate:p,creationDate:z,lastAccessDate:S,encrypted:m,zipCrypto:q,size:l+se,compressionMethod:g,version:w,headerArray:f,signature:ne,rawExtraFieldZip64:oe,extraFieldExtendedTimestampFlag:b,zip64UncompressedSize:E,zip64CompressedSize:W,zip64Offset:F,zip64DiskNumberStart:j}),te})(n,x,v,r,e.config,i),g=!1,s.set(t,v),v.filename=t,p){await x.writable.getWriter().close();let e=await b;await d,await y(),w=!0,c||(e=await(async(e,t,n,{zipCrypto:r})=>{let i;i=await t.slice(0,26).arrayBuffer(),26!=i.byteLength&&(i=i.slice(0,26));const s=new DataView(i);return e.encrypted&&!r||Gr(s,14,e.signature),e.zip64?(Gr(s,18,T),Gr(s,22,T)):(Gr(s,18,e.compressedSize),Gr(s,22,e.uncompressedSize)),await Br(n,new Uint8Array(i)),t.slice(i.byteLength)})(v,e,m,i)),await _(m),v.diskNumberStart=a.diskNumber,k=a.diskOffset,await e.stream().pipeTo(m,{preventClose:!0,preventAbort:!0,signal:l}),m.size+=e.size,w=!1}if(v.offset=e.offset-k,v.zip64)((e,t)=>{const{rawExtraFieldZip64:n,offset:r,diskNumberStart:i}=e,{zip64UncompressedSize:s,zip64CompressedSize:a,zip64Offset:o,zip64DiskNumberStart:c}=t,l=Yr(n);let d=4;s&&(d+=8),a&&(d+=8),o&&(Xr(l,d,BigInt(r)),d+=8),c&&Gr(l,d,i)})(v,i);else if(v.offset>T)throw Error(Tr);return e.offset+=v.size,v}catch(n){if(p&&w||!p&&g){if(e.hasCorruptedEntries=!0,n)try{n.corruptedEntry=!0}catch(e){}p?e.offset+=x.writable.size:e.offset=x.writable.size}throw s.delete(t),n}finally{p&&e.bufferedWrites--,h&&h(),m&&m()}async function y(){e.writerLocked=!0;const{lockWriter:t}=e;e.lockWriter=new Promise((t=>m=()=>{e.writerLocked=!1,t()})),await t}async function _(e){Qr(d.localHeaderArray)>a.availableSize&&(a.availableSize=0,await Br(e,new Uint8Array))}})(e,t,n,{headerInfo:oe,dataDescriptorInfo:ce,metadataSize:le},r)}finally{e.pendingEntriesSize-=B}return Object.assign(de,{name:t,comment:d,extraField:M}),new Qn(de)})(r,e,t,n),i.add(a),await a}catch(t){throw r.filenames.delete(e),t}finally{i.delete(a);const e=Ir.shift();e?e():Lr--}}async close(e=new Uint8Array,t={}){const{pendingAddFileCalls:n,writer:r}=this,{writable:i}=r;for(;n.size;)await Promise.allSettled(Array.from(n));return await(async(e,t,n)=>{const{files:r,writer:i}=e,{diskOffset:s,writable:a}=i;let{diskNumber:o}=i,c=0,l=0,d=e.offset-s,f=r.size;for(const[,e]of r){const{rawFilename:t,rawExtraFieldZip64:n,rawExtraFieldAES:r,rawComment:i,rawExtraFieldNTFS:s,rawExtraField:a,extendedTimestamp:o,extraFieldExtendedTimestampFlag:c,lastModDate:d}=e;let f;if(o){f=new Uint8Array(9);const e=Yr(f);Kr(e,0,V),Kr(e,2,5),Zr(e,4,c),Gr(e,5,Math.floor(d.getTime()/1e3))}else f=new Uint8Array;e.rawExtraFieldCDExtendedTimestamp=f,l+=46+Qr(t,i,n,r,s,f,a)}const u=new Uint8Array(l),p=Yr(u);await bn(i);let m=0;for(const[e,t]of Array.from(r.values()).entries()){const{offset:s,rawFilename:o,rawExtraFieldZip64:l,rawExtraFieldAES:d,rawExtraFieldCDExtendedTimestamp:f,rawExtraFieldNTFS:h,rawExtraField:w,rawComment:g,versionMadeBy:x,headerArray:b,zip64:v,zip64UncompressedSize:y,zip64CompressedSize:_,zip64DiskNumberStart:k,zip64Offset:S,internalFileAttributes:z,externalFileAttributes:A,diskNumberStart:C,uncompressedSize:D,compressedSize:U}=t,E=Qr(l,d,f,h,w);Gr(p,c,M),Kr(p,c+4,x);const W=Yr(b);y||Gr(W,18,D),_||Gr(W,14,U),Jr(u,b,c+6),Kr(p,c+30,E),Kr(p,c+32,Qr(g)),Kr(p,c+34,v&&k?O:C),Kr(p,c+36,z),A&&Gr(p,c+38,A),Gr(p,c+42,v&&S?T:s),Jr(u,o,c+46),Jr(u,l,c+46+Qr(o)),Jr(u,d,c+46+Qr(o,l)),Jr(u,f,c+46+Qr(o,l,d)),Jr(u,h,c+46+Qr(o,l,d,f)),Jr(u,w,c+46+Qr(o,l,d,f,h)),Jr(u,g,c+46+Qr(o)+E);const F=46+Qr(o,g)+E;if(c-m>i.availableSize&&(i.availableSize=0,await Br(a,u.slice(m,c)),m=c),c+=F,n.onprogress)try{await n.onprogress(e+1,r.size,new Qn(t))}catch(e){}}await Br(a,m?u.slice(m):u);let h=i.diskNumber;const{availableSize:w}=i;N>w&&h++;let g=Nr(e,n,Nn);if(d>T||l>T||f>O||h>O){if(!1===g)throw Error(Tr);g=!0}const x=new Uint8Array(g?98:N),b=Yr(x);c=0,g&&(Gr(b,0,B),Xr(b,4,BigInt(44)),Kr(b,12,45),Kr(b,14,45),Gr(b,16,h),Gr(b,20,o),Xr(b,24,BigInt(f)),Xr(b,32,BigInt(f)),Xr(b,40,BigInt(l)),Xr(b,48,BigInt(d)),Gr(b,56,H),Xr(b,64,BigInt(d)+BigInt(l)),Gr(b,72,h+1),Nr(e,n,"supportZip64SplitFile",!0)&&(h=O,o=O),f=O,d=T,l=T,c+=76),Gr(b,c,P),Kr(b,c+4,h),Kr(b,c+6,o),Kr(b,c+8,f),Kr(b,c+10,f),Gr(b,c+12,l),Gr(b,c+16,d);const v=Qr(t);if(v){if(v>O)throw Error(Dr);Kr(b,c+20,v)}await Br(a,x),v&&await Br(a,t)})(this,e,t),Nr(this,t,"preventClose")||await i.getWriter().close(),r.getData?r.getData():i}}class Pr{constructor(e={}){const{readable:t,writable:n}=new TransformStream;this.readable=t,this.zipWriter=new Mr(n,e)}transform(e){const{readable:t,writable:n}=new TransformStream({flush:()=>{this.zipWriter.close()}});return this.zipWriter.add(e,t),{readable:this.readable,writable:n}}writable(e){const{readable:t,writable:n}=new TransformStream;return this.zipWriter.add(e,t),n}close(e,t={}){return this.zipWriter.close(e,t)}}async function Br(e,t){const n=e.getWriter();try{await n.ready,e.size+=Qr(t),await n.write(t)}finally{n.releaseLock()}}function Hr(e){if(e)return(BigInt(e.getTime())+BigInt(116444736e5))*BigInt(1e4)}function Nr(e,t,n,r){const i=t[n]===J?e.options[n]:t[n];return i===J?r:i}function Vr(e){return e+5*(Math.floor(e/16383)+1)}function Zr(e,t,n){e.setUint8(t,n)}function Kr(e,t,n){e.setUint16(t,n,!0)}function Gr(e,t,n){e.setUint32(t,n,!0)}function Xr(e,t,n){e.setBigUint64(t,n,!0)}function Jr(e,t,n){e.set(t,n)}function Yr(e){return new DataView(e.buffer)}function Qr(...e){let t=0;return e.forEach((e=>e&&(t+=e.length))),t}class $r{constructor(e,t,n,r){const i=this;if(e.root&&r&&r.getChildByName(t))throw Error("Entry filename already exists");n||(n={}),Object.assign(i,{fs:e,name:t,data:n.data,options:n.options,id:e.entries.length,parent:r,children:[],uncompressedSize:n.uncompressedSize||0,passThrough:n.passThrough}),e.entries.push(i),r&&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,n=this.parent;for(;n&&n!=e;)t=(n.name?n.name+"/":"")+t,n=n.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 Error("Entry filename already exists");this.name=e}}class ei extends $r{constructor(e,t,n,r){super(e,t,n,r);const i=this;i.Reader=n.Reader,i.Writer=n.Writer,n.getData&&(i.getData=n.getData)}clone(){return new ei(this.fs,this.name,this)}async getData(e,t={}){const n=this;if(!e||e.constructor==n.Writer&&n.data)return n.data;{const r=n.reader=new n.Reader(n.data,t),i=n.data?n.data.uncompressedSize:r.size;await Promise.all([bn(r),bn(e,i)]);const s=r.readable;return s.size=n.uncompressedSize=r.size,await s.pipeTo(e.writable),e.getData?e.getData():e.writable}}isPasswordProtected(){return this.data.encrypted}async checkPassword(e,t={}){const n=this;if(!n.isPasswordProtected())return!0;t.password=e,t.checkPasswordOnly=!0;try{return await n.data.getData(null,t),!0}catch(e){if(e.message==ve)return!1;throw e}}getText(e,t){return this.getData(new Qt(e),t)}getBlob(e,t){return this.getData(new Jt(e),t)}getData64URI(e,t){return this.getData(new Gt(e),t)}getUint8Array(e){return this.getData(new wn,e)}getWritable(e=new WritableStream,t){return this.getData({writable:e},t)}replaceBlob(e){Object.assign(this,{data:e,Reader:Xt,Writer:Jt,reader:null})}replaceText(e){Object.assign(this,{data:e,Reader:Yt,Writer:Qt,reader:null})}replaceData64URI(e){Object.assign(this,{data:e,Reader:Kt,Writer:Gt,reader:null})}replaceUint8Array(e){Object.assign(this,{data:e,Reader:hn,Writer:wn,reader:null})}replaceReadable(e){Object.assign(this,{data:null,Reader:()=>({readable:e}),Writer:null,reader:null})}}class ti extends $r{constructor(e,t,n,r){super(e,t,n,r),this.directory=!0}clone(e){const t=this,n=new ti(t.fs,t.name);return e&&(n.children=t.children.map((t=>{const r=t.clone(e);return r.parent=n,r}))),n}addDirectory(e,t){return li(this,e,{options:t},!0)}addText(e,t,n={}){return li(this,e,{data:t,Reader:Yt,Writer:Qt,options:n,uncompressedSize:t.length})}addBlob(e,t,n={}){return li(this,e,{data:t,Reader:Xt,Writer:Jt,options:n,uncompressedSize:t.size})}addData64URI(e,t,n={}){let r=t.length;for(;"="==t.charAt(r-1);)r--;const i=t.indexOf(",")+1;return li(this,e,{data:t,Reader:Kt,Writer:Gt,options:n,uncompressedSize:Math.floor(.75*(r-i))})}addUint8Array(e,t,n={}){return li(this,e,{data:t,Reader:hn,Writer:wn,options:n,uncompressedSize:t.length})}addHttpContent(e,t,n={}){return li(this,e,{data:t,Reader:class extends pn{constructor(e){super(e,n)}},options:n})}addReadable(e,t,n={}){return li(this,e,{Reader:()=>({readable:t}),options:n})}addFileSystemEntry(e,t={}){return ai(this,e,t)}addFileSystemHandle(e,t={}){return ai(this,e,t)}addFile(e,t={}){return t.lastModDate||(t.lastModDate=new Date(e.lastModified)),li(this,e.name,{data:e,Reader:()=>({readable:e.stream(),size:e.size}),options:t,uncompressedSize:e.size})}addData(e,t){return li(this,e,t)}importBlob(e,t){return this.importZip(new Xt(e),t)}importData64URI(e,t){return this.importZip(new Kt(e),t)}importUint8Array(e,t){return this.importZip(new hn(e),t)}importHttpContent(e,t){return this.importZip(new pn(e,t),t)}importReadable(e,t){return this.importZip({readable:e},t)}exportBlob(e={}){return this.exportZip(new Jt(e.mimeType||"application/zip"),e)}exportData64URI(e={}){return this.exportZip(new Gt(e.mimeType||"application/zip"),e)}exportUint8Array(e={}){return this.exportZip(new wn,e)}async exportWritable(e=new WritableStream,t={}){return await this.exportZip({writable:e},t),e}async importZip(e,t={}){await bn(e);const n=new pr(e,t),r=[],i=await n.getEntries();for(const e of i){let n=this;try{const i=e.filename.split("/"),s=i.pop();i.forEach(((t,s)=>{const a=n;n=n.getChildByName(t),n||(n=new ti(this.fs,t,{data:s==i.length-1?e:null},a),r.push(n))})),e.directory||r.push(li(n,s,{data:e,Reader:ri(Object.assign({},t)),uncompressedSize:e.uncompressedSize,passThrough:t.passThrough}))}catch(t){try{t.cause={entry:e}}catch(e){}throw t}}return r}async exportZip(e,t){const n=this;t.bufferedWrite===J&&(t.bufferedWrite=!0),await Promise.all([ii(n,t.readerOptions),bn(e)]);const r=new Mr(e,t);return await(async(e,t,n,r)=>{const i=t,s=new Map;await async function e(t,a){async function o(a){const o=r.relativePath?a.getRelativeName(i):a.getFullname(),c=a.options||{};let l={};if(a.data instanceof Qn){const{externalFileAttributes:e,versionMadeBy:t,comment:n,lastModDate:r,creationDate:i,lastAccessDate:s,uncompressedSize:o,encrypted:c,zipCrypto:d,signature:f,compressionMethod:u,extraFieldAES:p}=a.data;if(l={externalFileAttributes:e,versionMadeBy:t,comment:n,lastModDate:r,creationDate:i,lastAccessDate:s},a.passThrough){let e,t;0===u&&(e=0),p&&(t=p.strength),l=Object.assign(l,{passThrough:!0,encrypted:c,zipCrypto:d,signature:f,uncompressedSize:o,level:e,encryptionStrength:t,compressionMethod:u})}}await t.add(o,a.reader,Object.assign({directory:a.directory},Object.assign({},r,l,c,{onprogress:async e=>{if(r.onprogress){s.set(o,e);try{await r.onprogress(Array.from(s.values()).reduce(((e,t)=>e+t)),n)}catch(e){}}}}))),await e(t,a)}await(async()=>{if(r.bufferedWrite)await Promise.allSettled(a.children.map(o));else for(const e of a.children)await o(e)})()}(e,t)})(r,n,(e=>{let t=0;return e.forEach((function e(n){t+=n.uncompressedSize,n.children&&n.children.forEach(e)})),t})([n]),t),await r.close(),e.getData?e.getData():e.writable}getChildByName(e){const t=this.children;for(let n=0;nn.checkPassword(e,t))))).includes(!1)}}const ni={FS:class{constructor(){ci(this)}get children(){return this.root.children}remove(e){si(e),this.entries[e.id]=null}move(e,t){if(e==this.root)throw Error("Root directory cannot be moved");if(!t.directory)throw Error("Target entry is not a directory");if(t.isDescendantOf(e))throw Error("Entry is a ancestor of target entry");if(e!=t){if(t.getChildByName(e.name))throw Error("Entry filename already exists");si(e),e.parent=t,t.children.push(e)}}find(e){const t=e.split("/");let n=this.root;for(let e=0;n&&e{if(e.directory)await ii(e,t);else{const n=e.reader=new e.Reader(e.data,t);try{await bn(n)}catch(t){try{t.entryId=e.id,t.cause={entry:e}}catch(e){}throw t}e.uncompressedSize=n.size}})))}function si(e){if(e.parent){const t=e.parent.children;t.forEach(((n,r)=>{n.id==e.id&&t.splice(r,1)}))}}function ai(e,t,n){return async function e(t,r,i){if(r)try{if((r.isFile||r.isDirectory)&&(r=await oi(r)),"file"==r.kind){const e=await r.getFile();i.push(t.addData(e.name,{Reader:()=>({readable:e.stream(),size:e.size}),options:Object.assign({},{lastModDate:new Date(e.lastModified)},n),uncompressedSize:e.size}))}else if("directory"==r.kind){const n=t.addDirectory(r.name);i.push(n);for await(const t of r.values())await e(n,t,i)}}catch(e){const t=e.message+(r?" ("+r.name+")":"");throw Error(t)}return i}(e,t,[])}async function oi(e){const t={name:e.name};if(e.isFile&&(t.kind="file",t.getFile=()=>new Promise(((t,n)=>e.file(t,n)))),e.isDirectory){t.kind="directory";const n=await(async e=>{const t=[];function n(e,r,i){e.readEntries((async s=>{if(s.length){for(const e of s)t.push(await oi(e));n(e,r,i)}else r(t)}),i)}return await new Promise(((t,r)=>n(e.createReader(),t,r))),{[Symbol.iterator](){let e=0;return{next(){const n={value:t[e],done:e===t.length};return e++,n}}}}})(e);t.values=()=>n}return t}function ci(e){e.entries=[],e.root=new ti(e)}function li(e,t,n,r){if(e.directory)return r?new ti(e.fs,t,n,e):new ei(e.fs,t,n,e);throw Error("Parent entry is not a directory")}let di;try{di=import.meta.url}catch(e){}se({baseURL:di}),((e,t={})=>{const n='const{Array:e,Object:t,Number:n,Math:r,Error:s,Uint8Array:i,Uint16Array:o,Uint32Array:c,Int32Array:f,Map:a,DataView:l,Promise:u,TextEncoder:w,crypto:h,postMessage:d,TransformStream:p,ReadableStream:y,WritableStream:m,CompressionStream:b,DecompressionStream:g}=self,k=void 0,v="undefined",S="function";class z{constructor(e){return class extends p{constructor(t,n){const r=new e(n);super({transform(e,t){t.enqueue(r.append(e))},flush(e){const t=r.flush();t&&e.enqueue(t)}})}}}}const C=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;C[e]=t}class x{constructor(e){this.t=e||-1}append(e){let t=0|this.t;for(let n=0,r=0|e.length;r>n;n++)t=t>>>8^C[255&(t^e[n])];this.t=t}get(){return~this.t}}class A extends p{constructor(){let e;const t=new x;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new i(4);new l(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}const _={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=_.i(n);return 32===r?e.concat(t):_.o(t,r,0|n,e.slice(0,e.length-1))},l(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+_.i(n)},u(e,t){if(32*e.length0&&t&&(e[n-1]=_.h(t,e[n-1]&2147483648>>t-1,1)),e},h:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,i:e=>r.round(e/1099511627776)||32,o(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,i=_.i(s);return r.push(_.h(t+i&31,t+i>32?n:r.pop(),1)),r}},I={bytes:{p(e){const t=_.l(e)/8,n=new i(t);let r;for(let s=0;t>s;s++)3&s||(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},m(e){const t=[];let n,r=0;for(n=0;n9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const o=new c(n);let f=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);i>=e;e+=t.blockSize)t.I(o.subarray(16*f,16*(f+1))),f+=1;return n.splice(0,16*f),t}P(){const e=this;let t=e.C;const n=e.S;t=_.concat(t,[_.h(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(r.floor(e.A/4294967296)),t.push(0|e.A);t.length;)e.I(t.splice(0,16));return e.reset(),n}D(e,t,n,r){return e>19?e>39?e>59?e>79?void 0:t^n^r:t&n|t&r|n&r:t^n^r:t&n|~t&r}V(e,t){return t<>>32-e}I(t){const n=this,s=n.S,i=e(80);for(let e=0;16>e;e++)i[e]=t[e];let o=s[0],c=s[1],f=s[2],a=s[3],l=s[4];for(let e=0;79>=e;e++){16>e||(i[e]=n.V(1,i[e-3]^i[e-8]^i[e-14]^i[e-16]));const t=n.V(5,o)+n.D(e,c,f,a)+l+i[e]+n.v[r.floor(e/20)]|0;l=a,a=f,f=n.V(30,c),c=o,o=t}s[0]=s[0]+o|0,s[1]=s[1]+c|0,s[2]=s[2]+f|0,s[3]=s[3]+a|0,s[4]=s[4]+l|0}},D={getRandomValues(e){const t=new c(e.buffer),n=e=>{let t=987654321;const n=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&n,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n)/4294967296+.5)*(r.random()>.5?1:-1))};for(let s,i=0;inew V.R(I.bytes.m(e)),B(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new s("invalid params to pbkdf2");const i=1+(r>>5)<<2;let o,c,f,a,u;const w=new ArrayBuffer(i),h=new l(w);let d=0;const p=_;for(t=I.bytes.m(t),u=1;(i||1)>d;u++){for(o=c=e.encrypt(p.concat(t,[u])),f=1;n>f;f++)for(c=e.encrypt(c),a=0;ad&&fs&&(e=(new n).update(e).P());for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t.U[0].update(r[0]),t.U[1].update(r[1]),t.K=new n(t.U[0])}reset(){const e=this;e.K=new e.M(e.U[0]),e.N=!1}update(e){this.N=!0,this.K.update(e)}digest(){const e=this,t=e.K.P(),n=new e.M(e.U[1]).update(t).P();return e.reset(),n}encrypt(e){if(this.N)throw new s("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},R=typeof h!=v&&typeof h.getRandomValues==S,B="Invalid password",E="Invalid signature",M="zipjs-abort-check-password";function U(e){return R?h.getRandomValues(e):D.getRandomValues(e)}const K=16,N={name:"PBKDF2"},O=t.assign({hash:{name:"HMAC"}},N),T=t.assign({iterations:1e3,hash:{name:"SHA-1"}},N),W=["deriveBits"],j=[8,12,16],H=[16,24,32],L=10,F=[0,0,0,0],q=typeof h!=v,G=q&&h.subtle,J=q&&typeof G!=v,Q=I.bytes,X=class{constructor(e){const t=this;t.O=[[[],[],[],[],[]],[[],[],[],[],[]]],t.O[0][0][0]||t.T();const n=t.O[0][4],r=t.O[1],i=e.length;let o,c,f,a=1;if(4!==i&&6!==i&&8!==i)throw new s("invalid aes key size");for(t.v=[c=e.slice(0),f=[]],o=i;4*i+28>o;o++){let e=c[o-1];(o%i==0||8===i&&o%i==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],o%i==0&&(e=e<<8^e>>>24^a<<24,a=a<<1^283*(a>>7))),c[o]=c[o-i]^e}for(let e=0;o;e++,o--){const t=c[3&e?o:o-4];f[e]=4>=o||4>e?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this.W(e,0)}decrypt(e){return this.W(e,1)}T(){const e=this.O[0],t=this.O[1],n=e[4],r=t[4],s=[],i=[];let o,c,f,a;for(let e=0;256>e;e++)i[(s[e]=e<<1^283*(e>>7))^e]=e;for(let l=o=0;!n[l];l^=c||1,o=i[o]||1){let i=o^o<<1^o<<2^o<<3^o<<4;i=i>>8^255&i^99,n[l]=i,r[i]=l,a=s[f=s[c=s[l]]];let u=16843009*a^65537*f^257*c^16843008*l,w=257*s[i]^16843008*i;for(let n=0;4>n;n++)e[n][l]=w=w<<24^w>>>8,t[n][i]=u=u<<24^u>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}W(e,t){if(4!==e.length)throw new s("invalid aes block size");const n=this.v[t],r=n.length/4-2,i=[0,0,0,0],o=this.O[t],c=o[0],f=o[1],a=o[2],l=o[3],u=o[4];let w,h,d,p=e[0]^n[0],y=e[t?3:1]^n[1],m=e[2]^n[2],b=e[t?1:3]^n[3],g=4;for(let e=0;r>e;e++)w=c[p>>>24]^f[y>>16&255]^a[m>>8&255]^l[255&b]^n[g],h=c[y>>>24]^f[m>>16&255]^a[b>>8&255]^l[255&p]^n[g+1],d=c[m>>>24]^f[b>>16&255]^a[p>>8&255]^l[255&y]^n[g+2],b=c[b>>>24]^f[p>>16&255]^a[y>>8&255]^l[255&m]^n[g+3],g+=4,p=w,y=h,m=d;for(let e=0;4>e;e++)i[t?3&-e:e]=u[p>>>24]<<24^u[y>>16&255]<<16^u[m>>8&255]<<8^u[255&b]^n[g++],w=p,p=y,y=m,m=b,b=w;return i}},Y=class{constructor(e,t){this.j=e,this.H=t,this.L=t}reset(){this.L=this.H}update(e){return this.F(this.j,e,this.L)}q(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}return e}G(e){0===(e[0]=this.q(e[0]))&&(e[1]=this.q(e[1]))}F(e,t,n){let r;if(!(r=t.length))return[];const s=_.l(t);for(let s=0;r>s;s+=4){this.G(n);const r=e.encrypt(n);t[s]^=r[0],t[s+1]^=r[1],t[s+2]^=r[2],t[s+3]^=r[3]}return _.u(t,s)}},Z=V.R;let $=q&&J&&typeof G.importKey==S,ee=q&&J&&typeof G.deriveBits==S;class te extends p{constructor({password:e,rawPassword:n,signed:r,encryptionStrength:o,checkPasswordOnly:c}){super({start(){t.assign(this,{ready:new u((e=>this.J=e)),password:ie(e,n),signed:r,X:o-1,pending:new i})},async transform(e,t){const n=this,{password:r,X:o,J:f,ready:a}=n;r?(await(async(e,t,n,r)=>{const i=await se(e,t,n,ce(r,0,j[t])),o=ce(r,j[t]);if(i[0]!=o[0]||i[1]!=o[1])throw new s(B)})(n,o,r,ce(e,0,j[o]+2)),e=ce(e,j[o]+2),c?t.error(new s(M)):f()):await a;const l=new i(e.length-L-(e.length-L)%K);t.enqueue(re(n,e,l,0,L,!0))},async flush(e){const{signed:t,Y:n,Z:r,pending:o,ready:c}=this;if(r&&n){await c;const f=ce(o,0,o.length-L),a=ce(o,o.length-L);let l=new i;if(f.length){const e=ae(Q,f);r.update(e);const t=n.update(e);l=fe(Q,t)}if(t){const e=ce(fe(Q,r.digest()),0,L);for(let t=0;L>t;t++)if(e[t]!=a[t])throw new s(E)}e.enqueue(l)}}})}}class ne extends p{constructor({password:e,rawPassword:n,encryptionStrength:r}){let s;super({start(){t.assign(this,{ready:new u((e=>this.J=e)),password:ie(e,n),X:r-1,pending:new i})},async transform(e,t){const n=this,{password:r,X:s,J:o,ready:c}=n;let f=new i;r?(f=await(async(e,t,n)=>{const r=U(new i(j[t]));return oe(r,await se(e,t,n,r))})(n,s,r),o()):await c;const a=new i(f.length+e.length-e.length%K);a.set(f,0),t.enqueue(re(n,e,a,f.length,0))},async flush(e){const{Y:t,Z:n,pending:r,ready:o}=this;if(n&&t){await o;let c=new i;if(r.length){const e=t.update(ae(Q,r));n.update(e),c=fe(Q,e)}s.signature=fe(Q,n.digest()).slice(0,L),e.enqueue(oe(c,s.signature))}}}),s=this}}function re(e,t,n,r,s,o){const{Y:c,Z:f,pending:a}=e,l=t.length-s;let u;for(a.length&&(t=oe(a,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new i(t)).set(n,0)}return e})(n,l-l%K)),u=0;l-K>=u;u+=K){const e=ae(Q,ce(t,u,u+K));o&&f.update(e);const s=c.update(e);o||f.update(s),n.set(fe(Q,s),u+r)}return e.pending=ce(t,u),n}async function se(n,r,s,o){n.password=null;const c=await(async(e,t,n,r,s)=>{if(!$)return V.importKey(t);try{return await G.importKey("raw",t,n,!1,s)}catch(e){return $=!1,V.importKey(t)}})(0,s,O,0,W),f=await(async(e,t,n)=>{if(!ee)return V.B(t,e.salt,T.iterations,n);try{return await G.deriveBits(e,t,n)}catch(r){return ee=!1,V.B(t,e.salt,T.iterations,n)}})(t.assign({salt:o},T),c,8*(2*H[r]+2)),a=new i(f),l=ae(Q,ce(a,0,H[r])),u=ae(Q,ce(a,H[r],2*H[r])),w=ce(a,2*H[r]);return t.assign(n,{keys:{key:l,$:u,passwordVerification:w},Y:new Y(new X(l),e.from(F)),Z:new Z(u)}),w}function ie(e,t){return t===k?(e=>{if(typeof w==v){const t=new i((e=unescape(encodeURIComponent(e))).length);for(let n=0;n>>24]),i=~e.te.get(),e.keys=[n,s,i]}function ye(e){const t=2|e.keys[2];return me(r.imul(t,1^t)>>>8)}function me(e){return 255&e}function be(e){return 4294967295&e}const ge="deflate-raw";class ke extends p{constructor(e,{chunkSize:t,CompressionStream:n,CompressionStreamNative:r}){super({});const{compressed:s,encrypted:i,useCompressionStream:o,zipCrypto:c,signed:f,level:a}=e,u=this;let w,h,d=Se(super.readable);i&&!c||!f||(w=new A,d=xe(d,w)),s&&(d=Ce(d,o,{level:a,chunkSize:t},r,n)),i&&(c?d=xe(d,new ue(e)):(h=new ne(e),d=xe(d,h))),ze(u,d,(()=>{let e;i&&!c&&(e=h.signature),i&&!c||!f||(e=new l(w.value.buffer).getUint32(0)),u.signature=e}))}}class ve extends p{constructor(e,{chunkSize:t,DecompressionStream:n,DecompressionStreamNative:r}){super({});const{zipCrypto:i,encrypted:o,signed:c,signature:f,compressed:a,useCompressionStream:u}=e;let w,h,d=Se(super.readable);o&&(i?d=xe(d,new le(e)):(h=new te(e),d=xe(d,h))),a&&(d=Ce(d,u,{chunkSize:t},r,n)),o&&!i||!c||(w=new A,d=xe(d,w)),ze(this,d,(()=>{if((!o||i)&&c){const e=new l(w.value.buffer);if(f!=e.getUint32(0,!1))throw new s(E)}}))}}function Se(e){return xe(e,new p({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function ze(e,n,r){n=xe(n,new p({flush:r})),t.defineProperty(e,"readable",{get:()=>n})}function Ce(e,t,n,r,s){try{e=xe(e,new(t&&r?r:s)(ge,n))}catch(r){if(!t)return e;try{e=xe(e,new s(ge,n))}catch(t){return e}}return e}function xe(e,t){return e.pipeThrough(t)}const Ae="data",_e="close";class Ie extends p{constructor(e,n){super({});const r=this,{codecType:s}=e;let i;s.startsWith("deflate")?i=ke:s.startsWith("inflate")&&(i=ve);let o=0,c=0;const f=new i(e,n),a=super.readable,l=new p({transform(e,t){e&&e.length&&(c+=e.length,t.enqueue(e))},flush(){t.assign(r,{inputSize:c})}}),u=new p({transform(e,t){e&&e.length&&(o+=e.length,t.enqueue(e))},flush(){const{signature:e}=f;t.assign(r,{signature:e,outputSize:o,inputSize:c})}});t.defineProperty(r,"readable",{get:()=>a.pipeThrough(l).pipeThrough(f).pipeThrough(u)})}}class Pe extends p{constructor(e){let t;super({transform:function n(r,s){if(t){const e=new i(t.length+r.length);e.set(t),e.set(r,t.length),r=e,t=null}r.length>e?(s.enqueue(r.slice(0,e)),n(r.slice(e),s)):t=r},flush(e){t&&t.length&&e.enqueue(t)}})}}const De=new a,Ve=new a;let Re,Be=0,Ee=!0;async function Me(e){try{const{options:t,scripts:r,config:s}=e;if(r&&r.length)try{Ee?importScripts.apply(k,r):await Ue(r)}catch(e){Ee=!1,await Ue(r)}self.initCodec&&self.initCodec(),s.CompressionStreamNative=self.CompressionStream,s.DecompressionStreamNative=self.DecompressionStream,self.Deflate&&(s.CompressionStream=new z(self.Deflate)),self.Inflate&&(s.DecompressionStream=new z(self.Inflate));const i={highWaterMark:1},o=e.readable||new y({async pull(e){const t=new u((e=>De.set(Be,e)));Ke({type:"pull",messageId:Be}),Be=(Be+1)%n.MAX_SAFE_INTEGER;const{value:r,done:s}=await t;e.enqueue(r),s&&e.close()}},i),c=e.writable||new m({async write(e){let t;const r=new u((e=>t=e));Ve.set(Be,t),Ke({type:Ae,value:e,messageId:Be}),Be=(Be+1)%n.MAX_SAFE_INTEGER,await r}},i),f=new Ie(t,s);Re=new AbortController;const{signal:a}=Re;await o.pipeThrough(f).pipeThrough(new Pe(s.chunkSize)).pipeTo(c,{signal:a,preventClose:!0,preventAbort:!0}),await c.getWriter().close();const{signature:l,inputSize:w,outputSize:h}=f;Ke({type:_e,result:{signature:l,inputSize:w,outputSize:h}})}catch(e){Ne(e)}}async function Ue(e){for(const t of e)await import(t)}function Ke(e){let{value:t}=e;if(t)if(t.length)try{t=new i(t),e.value=t.buffer,d(e,[e.value])}catch(t){d(e)}else d(e);else d(e)}function Ne(e=new s("Unknown error")){const{message:t,stack:n,code:r,name:i}=e;d({error:{message:t,stack:n,code:r,name:i}})}addEventListener("message",(({data:e})=>{const{type:t,messageId:n,value:r,done:s}=e;try{if("start"==t&&Me(e),t==Ae){const e=De.get(n);De.delete(n),e({value:new i(r),done:s})}if("ack"==t){const e=Ve.get(n);Ve.delete(n),e()}t==_e&&Re.abort()}catch(e){Ne(e)}}));const Oe=-2;function Te(t){return We(t.map((([t,n])=>new e(t).fill(n,0,t))))}function We(t){return t.reduce(((t,n)=>t.concat(e.isArray(n)?We(n):n)),[])}const je=[0,1,2,3].concat(...Te([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function He(){const e=this;function t(e,t){let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}e.ne=n=>{const s=e.re,i=e.ie.se,o=e.ie.oe;let c,f,a,l=-1;for(n.ce=0,n.fe=573,c=0;o>c;c++)0!==s[2*c]?(n.ae[++n.ce]=l=c,n.le[c]=0):s[2*c+1]=0;for(;2>n.ce;)a=n.ae[++n.ce]=2>l?++l:0,s[2*a]=1,n.le[a]=0,n.ue--,i&&(n.we-=i[2*a+1]);for(e.he=l,c=r.floor(n.ce/2);c>=1;c--)n.de(s,c);a=o;do{c=n.ae[1],n.ae[1]=n.ae[n.ce--],n.de(s,1),f=n.ae[1],n.ae[--n.fe]=c,n.ae[--n.fe]=f,s[2*a]=s[2*c]+s[2*f],n.le[a]=r.max(n.le[c],n.le[f])+1,s[2*c+1]=s[2*f+1]=a,n.ae[1]=a++,n.de(s,1)}while(n.ce>=2);n.ae[--n.fe]=n.ae[1],(t=>{const n=e.re,r=e.ie.se,s=e.ie.pe,i=e.ie.ye,o=e.ie.me;let c,f,a,l,u,w,h=0;for(l=0;15>=l;l++)t.be[l]=0;for(n[2*t.ae[t.fe]+1]=0,c=t.fe+1;573>c;c++)f=t.ae[c],l=n[2*n[2*f+1]+1]+1,l>o&&(l=o,h++),n[2*f+1]=l,f>e.he||(t.be[l]++,u=0,i>f||(u=s[f-i]),w=n[2*f],t.ue+=w*(l+u),r&&(t.we+=w*(r[2*f+1]+u)));if(0!==h){do{for(l=o-1;0===t.be[l];)l--;t.be[l]--,t.be[l+1]+=2,t.be[o]--,h-=2}while(h>0);for(l=o;0!==l;l--)for(f=t.be[l];0!==f;)a=t.ae[--c],a>e.he||(n[2*a+1]!=l&&(t.ue+=(l-n[2*a+1])*n[2*a],n[2*a+1]=l),f--)}})(n),((e,n,r)=>{const s=[];let i,o,c,f=0;for(i=1;15>=i;i++)s[i]=f=f+r[i-1]<<1;for(o=0;n>=o;o++)c=e[2*o+1],0!==c&&(e[2*o]=t(s[c]++,c))})(s,e.he,n.be)}}function Le(e,t,n,r,s){const i=this;i.se=e,i.pe=t,i.ye=n,i.oe=r,i.me=s}He.ge=[0,1,2,3,4,5,6,7].concat(...Te([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),He.ke=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],He.ve=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],He.Se=e=>256>e?je[e]:je[256+(e>>>7)],He.ze=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],He.Ce=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],He.xe=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],He.Ae=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const Fe=Te([[144,8],[112,9],[24,7],[8,8]]);Le._e=We([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((e,t)=>[e,Fe[t]])));const qe=Te([[30,5]]);function Ge(e,t,n,r,s){const i=this;i.Ie=e,i.Pe=t,i.De=n,i.Ve=r,i.Re=s}Le.Be=We([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((e,t)=>[e,qe[t]]))),Le.Ee=new Le(Le._e,He.ze,257,286,15),Le.Me=new Le(Le.Be,He.Ce,0,30,15),Le.Ue=new Le(null,He.xe,0,19,7);const Je=[new Ge(0,0,0,0,0),new Ge(4,4,8,4,1),new Ge(4,5,16,8,1),new Ge(4,6,32,32,1),new Ge(4,4,16,16,2),new Ge(8,16,32,32,2),new Ge(8,16,128,128,2),new Ge(8,32,128,256,2),new Ge(32,128,258,1024,2),new Ge(32,258,258,4096,2)],Qe=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],Xe=113,Ye=666,Ze=262;function $e(e,t,n,r){const s=e[2*t],i=e[2*n];return i>s||s==i&&r[t]<=r[n]}function et(){const e=this;let t,n,s,c,f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,z,C,x,A,_,I,P,D,V,R,B,E,M,U;const K=new He,N=new He,O=new He;let T,W,j,H,L,F;function q(){let t;for(t=0;286>t;t++)E[2*t]=0;for(t=0;30>t;t++)M[2*t]=0;for(t=0;19>t;t++)U[2*t]=0;E[512]=1,e.ue=e.we=0,W=j=0}function G(e,t){let n,r=-1,s=e[1],i=0,o=7,c=4;0===s&&(o=138,c=3),e[2*(t+1)+1]=65535;for(let f=0;t>=f;f++)n=s,s=e[2*(f+1)+1],++ii?U[2*n]+=i:0!==n?(n!=r&&U[2*n]++,U[32]++):i>10?U[36]++:U[34]++,i=0,r=n,0===s?(o=138,c=3):n==s?(o=6,c=3):(o=7,c=4))}function J(t){e.Ke[e.pending++]=t}function Q(e){J(255&e),J(e>>>8&255)}function X(e,t){let n;const r=t;F>16-r?(n=e,L|=n<>>16-F,F+=r-16):(L|=e<=n;n++)if(r=i,i=e[2*(n+1)+1],++o>=c||r!=i){if(f>o)do{Y(r,U)}while(0!=--o);else 0!==r?(r!=s&&(Y(r,U),o--),Y(16,U),X(o-3,2)):o>10?(Y(18,U),X(o-11,7)):(Y(17,U),X(o-3,3));o=0,s=r,0===i?(c=138,f=3):r==i?(c=6,f=3):(c=7,f=4)}}function $(){16==F?(Q(L),L=0,F=0):8>F||(J(255&L),L>>>=8,F-=8)}function ee(t,n){let s,i,o;if(e.Ne[W]=t,e.Oe[W]=255&n,W++,0===t?E[2*n]++:(j++,t--,E[2*(He.ge[n]+256+1)]++,M[2*He.Se(t)]++),!(8191&W)&&D>2){for(s=8*W,i=C-k,o=0;30>o;o++)s+=M[2*o]*(5+He.Ce[o]);if(s>>>=3,jc);Y(256,t),H=t[513]}function ne(){F>8?Q(L):F>0&&J(255&L),L=0,F=0}function re(t,n,r){X(0+(r?1:0),3),((t,n)=>{ne(),H=8,Q(n),Q(~n),e.Ke.set(u.subarray(t,t+n),e.pending),e.pending+=n})(t,n)}function se(n){((t,n,r)=>{let s,i,o=0;D>0?(K.ne(e),N.ne(e),o=(()=>{let t;for(G(E,K.he),G(M,N.he),O.ne(e),t=18;t>=3&&0===U[2*He.Ae[t]+1];t--);return e.ue+=14+3*(t+1),t})(),s=e.ue+3+7>>>3,i=e.we+3+7>>>3,i>s||(s=i)):s=i=n+5,n+4>s||-1==t?i==s?(X(2+(r?1:0),3),te(Le._e,Le.Be)):(X(4+(r?1:0),3),((e,t,n)=>{let r;for(X(e-257,5),X(t-1,5),X(n-4,4),r=0;n>r;r++)X(U[2*He.Ae[r]+1],3);Z(E,e-1),Z(M,t-1)})(K.he+1,N.he+1,o+1),te(E,M)):re(t,n,r),q(),r&&ne()})(0>k?-1:k,C-k,n),k=C,t.Te()}function ie(){let e,n,r,s;do{if(s=w-A-C,0===s&&0===C&&0===A)s=f;else if(-1==s)s--;else if(C>=f+f-Ze){u.set(u.subarray(f,f+f),0),x-=f,C-=f,k-=f,e=y,r=e;do{n=65535&d[--r],d[r]=f>n?0:n-f}while(0!=--e);e=f,r=e;do{n=65535&h[--r],h[r]=f>n?0:n-f}while(0!=--e);s+=f}if(0===t.We)return;e=t.je(u,C+A,s),A+=e,3>A||(p=255&u[C],p=(p<A&&0!==t.We)}function oe(e){let t,n,r=I,s=C,i=_;const o=C>f-Ze?C-(f-Ze):0;let c=B;const a=l,w=C+258;let d=u[s+i-1],p=u[s+i];R>_||(r>>=2),c>A&&(c=A);do{if(t=e,u[t+i]==p&&u[t+i-1]==d&&u[t]==u[s]&&u[++t]==u[s+1]){s+=2,t++;do{}while(u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&w>s);if(n=258-(w-s),s=w-258,n>i){if(x=e,i=n,n>=c)break;d=u[s+i-1],p=u[s+i]}}}while((e=65535&h[e&a])>o&&0!=--r);return i>A?A:i}e.le=[],e.be=[],e.ae=[],E=[],M=[],U=[],e.de=(t,n)=>{const r=e.ae,s=r[n];let i=n<<1;for(;i<=e.ce&&(i(W||(W=8),j||(j=8),G||(G=0),t.Le=null,-1==S&&(S=6),1>j||j>9||8!=W||9>x||x>15||0>S||S>9||0>G||G>2?Oe:(t.Fe=e,a=x,f=1<(t.qe=t.Ge=0,t.Le=null,e.pending=0,e.Je=0,n=Xe,c=0,K.re=E,K.ie=Le.Ee,N.re=M,N.ie=Le.Me,O.re=U,O.ie=Le.Ue,L=0,F=0,H=8,q(),(()=>{w=2*f,d[y-1]=0;for(let e=0;y-1>e;e++)d[e]=0;P=Je[D].Pe,R=Je[D].Ie,B=Je[D].De,I=Je[D].Ve,C=0,k=0,A=0,v=_=2,z=0,p=0})(),0))(t))),e.Qe=()=>42!=n&&n!=Xe&&n!=Ye?Oe:(e.Oe=null,e.Ne=null,e.Ke=null,d=null,h=null,u=null,e.Fe=null,n==Xe?-3:0),e.Xe=(e,t,n)=>{let r=0;return-1==t&&(t=6),0>t||t>9||0>n||n>2?Oe:(Je[D].Re!=Je[t].Re&&0!==e.qe&&(r=e.Ye(1)),D!=t&&(D=t,P=Je[D].Pe,R=Je[D].Ie,B=Je[D].De,I=Je[D].Ve),V=n,r)},e.Ze=(e,t,r)=>{let s,i=r,o=0;if(!t||42!=n)return Oe;if(3>i)return 0;for(i>f-Ze&&(i=f-Ze,o=r-i),u.set(t.subarray(o,o+i),0),C=i,k=i,p=255&u[0],p=(p<=s;s++)p=(p<{let o,w,m,I,R;if(i>4||0>i)return Oe;if(!r.$e||!r.et&&0!==r.We||n==Ye&&4!=i)return r.Le=Qe[4],Oe;if(0===r.tt)return r.Le=Qe[7],-5;var B;if(t=r,I=c,c=i,42==n&&(w=8+(a-8<<4)<<8,m=(D-1&255)>>1,m>3&&(m=3),w|=m<<6,0!==C&&(w|=32),w+=31-w%31,n=Xe,J((B=w)>>8&255),J(255&B)),0!==e.pending){if(t.Te(),0===t.tt)return c=-1,0}else if(0===t.We&&I>=i&&4!=i)return t.Le=Qe[7],-5;if(n==Ye&&0!==t.We)return r.Le=Qe[7],-5;if(0!==t.We||0!==A||0!=i&&n!=Ye){switch(R=-1,Je[D].Re){case 0:R=(e=>{let n,r=65535;for(r>s-5&&(r=s-5);;){if(1>=A){if(ie(),0===A&&0==e)return 0;if(0===A)break}if(C+=A,A=0,n=k+r,(0===C||C>=n)&&(A=C-n,C=n,se(!1),0===t.tt))return 0;if(C-k>=f-Ze&&(se(!1),0===t.tt))return 0}return se(4==e),0===t.tt?4==e?2:0:4==e?3:1})(i);break;case 1:R=(e=>{let n,r=0;for(;;){if(Ze>A){if(ie(),Ze>A&&0==e)return 0;if(0===A)break}if(3>A||(p=(p<f-Ze||2!=V&&(v=oe(r)),3>v)n=ee(0,255&u[C]),A--,C++;else if(n=ee(C-x,v-3),A-=v,v>P||3>A)C+=v,v=0,p=255&u[C],p=(p<{let n,r,s=0;for(;;){if(Ze>A){if(ie(),Ze>A&&0==e)return 0;if(0===A)break}if(3>A||(p=(p<_&&f-Ze>=(C-s&65535)&&(2!=V&&(v=oe(s)),5>=v&&(1==V||3==v&&C-x>4096)&&(v=2)),3>_||v>_)if(0!==z){if(n=ee(0,255&u[C-1]),n&&se(!1),C++,A--,0===t.tt)return 0}else z=1,C++,A--;else{r=C+A-3,n=ee(C-1-S,_-3),A-=_-1,_-=2;do{++C>r||(p=(p<1+H+10-F&&(X(2,3),Y(256,Le._e),$()),H=7;else if(re(0,0,!1),3==i)for(o=0;y>o;o++)d[o]=0;if(t.Te(),0===t.tt)return c=-1,0}}return 4!=i?0:1}}function tt(){const e=this;e.nt=0,e.rt=0,e.We=0,e.qe=0,e.tt=0,e.Ge=0}function nt(e){const t=new tt,n=(o=e&&e.chunkSize?e.chunkSize:65536)+5*(r.floor(o/16383)+1);var o;const c=new i(n);let f=e?e.level:-1;void 0===f&&(f=-1),t.He(f),t.$e=c,this.append=(e,r)=>{let o,f,a=0,l=0,u=0;const w=[];if(e.length){t.nt=0,t.et=e,t.We=e.length;do{if(t.rt=0,t.tt=n,o=t.Ye(0),0!=o)throw new s("deflating: "+t.Le);t.rt&&(t.rt==n?w.push(new i(c)):w.push(c.subarray(0,t.rt))),u+=t.rt,r&&t.nt>0&&t.nt!=a&&(r(t.nt),a=t.nt)}while(t.We>0||0===t.tt);return w.length>1?(f=new i(u),w.forEach((e=>{f.set(e,l),l+=e.length}))):f=w[0]?new i(w[0]):new i,f}},this.flush=()=>{let e,r,o=0,f=0;const a=[];do{if(t.rt=0,t.tt=n,e=t.Ye(4),1!=e&&0!=e)throw new s("deflating: "+t.Le);n-t.tt>0&&a.push(c.slice(0,t.rt)),f+=t.rt}while(t.We>0||0===t.tt);return t.Qe(),r=new i(f),a.forEach((e=>{r.set(e,o),o+=e.length})),r}}tt.prototype={He(e,t){const n=this;return n.Fe=new et,t||(t=15),n.Fe.He(n,e,t)},Ye(e){const t=this;return t.Fe?t.Fe.Ye(t,e):Oe},Qe(){const e=this;if(!e.Fe)return Oe;const t=e.Fe.Qe();return e.Fe=null,t},Xe(e,t){const n=this;return n.Fe?n.Fe.Xe(n,e,t):Oe},Ze(e,t){const n=this;return n.Fe?n.Fe.Ze(n,e,t):Oe},je(e,t,n){const r=this;let s=r.We;return s>n&&(s=n),0===s?0:(r.We-=s,e.set(r.et.subarray(r.nt,r.nt+s),t),r.nt+=s,r.qe+=s,s)},Te(){const e=this;let t=e.Fe.pending;t>e.tt&&(t=e.tt),0!==t&&(e.$e.set(e.Fe.Ke.subarray(e.Fe.Je,e.Fe.Je+t),e.rt),e.rt+=t,e.Fe.Je+=t,e.Ge+=t,e.tt-=t,e.Fe.pending-=t,0===e.Fe.pending&&(e.Fe.Je=0))}};const rt=-2,st=-3,it=-5,ot=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],ct=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],ft=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],at=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],lt=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],ut=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],wt=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];function ht(){let e,t,n,r,s,i;function o(e,t,o,c,f,a,l,u,w,h,d){let p,y,m,b,g,k,v,S,z,C,x,A,_,I,P;C=0,g=o;do{n[e[t+C]]++,C++,g--}while(0!==g);if(n[0]==o)return l[0]=-1,u[0]=0,0;for(S=u[0],k=1;15>=k&&0===n[k];k++);for(v=k,k>S&&(S=k),g=15;0!==g&&0===n[g];g--);for(m=g,S>g&&(S=g),u[0]=S,I=1<k;k++,I<<=1)if(0>(I-=n[k]))return st;if(0>(I-=n[g]))return st;for(n[g]+=I,i[1]=k=0,C=1,_=2;0!=--g;)i[_]=k+=n[C],_++,C++;g=0,C=0;do{0!==(k=e[t+C])&&(d[i[k]++]=g),C++}while(++g=v;v++)for(p=n[v];0!=p--;){for(;v>A+S;){if(b++,A+=S,P=m-A,P=P>S?S:P,(y=1<<(k=v-A))>p+1&&(y-=p+1,_=v,P>k))for(;++kn[++_];)y-=n[_];if(P=1<1440)return st;s[b]=x=h[0],h[0]+=P,0!==b?(i[b]=g,r[0]=k,r[1]=S,k=g>>>A-S,r[2]=x-s[b-1]-k,w.set(r,3*(s[b-1]+k))):l[0]=x}for(r[1]=v-A,o>C?d[C]d[C]?0:96,r[2]=d[C++]):(r[0]=a[d[C]-c]+16+64,r[2]=f[d[C++]-c]):r[0]=192,y=1<>>A;P>k;k+=y)w.set(r,3*(x+k));for(k=1<>>=1)g^=k;for(g^=k,z=(1<c;c++)t[c]=0;for(c=0;16>c;c++)n[c]=0;for(c=0;3>c;c++)r[c]=0;s.set(n.subarray(0,15),0),i.set(n.subarray(0,16),0)}this.st=(n,r,s,i,f)=>{let a;return c(19),e[0]=0,a=o(n,0,19,19,null,null,s,r,i,e,t),a==st?f.Le="oversubscribed dynamic bit lengths tree":a!=it&&0!==r[0]||(f.Le="incomplete dynamic bit lengths tree",a=st),a},this.it=(n,r,s,i,f,a,l,u,w)=>{let h;return c(288),e[0]=0,h=o(s,0,n,257,at,lt,a,i,u,e,t),0!=h||0===i[0]?(h==st?w.Le="oversubscribed literal/length tree":-4!=h&&(w.Le="incomplete literal/length tree",h=st),h):(c(288),h=o(s,n,r,0,ut,wt,l,f,u,e,t),0!=h||0===f[0]&&n>257?(h==st?w.Le="oversubscribed distance tree":h==it?(w.Le="incomplete distance tree",h=st):-4!=h&&(w.Le="empty distance tree with lengths",h=st),h):0)}}function dt(){const e=this;let t,n,r,s,i=0,o=0,c=0,f=0,a=0,l=0,u=0,w=0,h=0,d=0;function p(e,t,n,r,s,i,o,c){let f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,z;d=c.nt,p=c.We,w=o.ot,h=o.ct,y=o.write,m=yh;)p--,w|=(255&c.ft(d++))<>=a[z+1],h-=a[z+1],16&u){for(u&=15,k=a[z+2]+(w&ot[u]),w>>=u,h-=u;15>h;)p--,w|=(255&c.ft(d++))<>=a[z+1],h-=a[z+1],16&u){for(u&=15;u>h;)p--,w|=(255&c.ft(d++))<>=u,h-=u,m-=k,v>y){S=y-v;do{S+=o.end}while(0>S);if(u=o.end-S,k>u){if(k-=u,y-S>0&&u>y-S)do{o.lt[y++]=o.lt[S++]}while(0!=--u);else o.lt.set(o.lt.subarray(S,S+u),y),y+=u,S+=u,u=0;S=0}}else S=y-v,y-S>0&&2>y-S?(o.lt[y++]=o.lt[S++],o.lt[y++]=o.lt[S++],k-=2):(o.lt.set(o.lt.subarray(S,S+2),y),y+=2,S+=2,k-=2);if(y-S>0&&k>y-S)do{o.lt[y++]=o.lt[S++]}while(0!=--k);else o.lt.set(o.lt.subarray(S,S+k),y),y+=k,S+=k,k=0;break}if(64&u)return c.Le="invalid distance code",k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,st;f+=a[z+2],f+=w&ot[u],z=3*(l+f),u=a[z]}break}if(64&u)return 32&u?(k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,1):(c.Le="invalid literal/length code",k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,st);if(f+=a[z+2],f+=w&ot[u],z=3*(l+f),0===(u=a[z])){w>>=a[z+1],h-=a[z+1],o.lt[y++]=a[z+2],m--;break}}else w>>=a[z+1],h-=a[z+1],o.lt[y++]=a[z+2],m--}while(m>=258&&p>=10);return k=c.We-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ot=w,o.ct=h,c.We=p,c.qe+=d-c.nt,c.nt=d,o.write=y,0}e.init=(e,i,o,c,f,a)=>{t=0,u=e,w=i,r=o,h=c,s=f,d=a,n=null},e.ut=(e,y,m)=>{let b,g,k,v,S,z,C,x=0,A=0,_=0;for(_=y.nt,v=y.We,x=e.ot,A=e.ct,S=e.write,z=S=258&&v>=10&&(e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,m=p(u,w,r,h,s,d,e,y),_=y.nt,v=y.We,x=e.ot,A=e.ct,S=e.write,z=SA;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<>>=n[g+1],A-=n[g+1],k=n[g],0===k){f=n[g+2],t=6;break}if(16&k){a=15&k,i=n[g+2],t=2;break}if(!(64&k)){c=k,o=g/3+n[g+2];break}if(32&k){t=7;break}return t=9,y.Le="invalid literal/length code",m=st,e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);case 2:for(b=a;b>A;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<>=b,A-=b,c=w,n=s,o=d,t=3;case 3:for(b=c;b>A;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<>=n[g+1],A-=n[g+1],k=n[g],16&k){a=15&k,l=n[g+2],t=4;break}if(!(64&k)){c=k,o=g/3+n[g+2];break}return t=9,y.Le="invalid distance code",m=st,e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);case 4:for(b=a;b>A;){if(0===v)return e.ot=x,e.ct=A,y.We=v,y.qe+=_-y.nt,y.nt=_,e.write=S,e.wt(y,m);m=0,v--,x|=(255&y.ft(_++))<>=b,A-=b,t=5;case 5:for(C=S-l;0>C;)C+=e.end;for(;0!==i;){if(0===z&&(S==e.end&&0!==e.read&&(S=0,z=S7&&(A-=8,v++,_--),e.write=S,m=e.wt(y,m),S=e.write,z=S{}}ht.dt=(e,t,n,r)=>(e[0]=9,t[0]=5,n[0]=ct,r[0]=ft,0);const pt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function yt(e,t){const n=this;let r,s=0,o=0,c=0,a=0;const l=[0],u=[0],w=new dt;let h=0,d=new f(4320);const p=new ht;n.ct=0,n.ot=0,n.lt=new i(t),n.end=t,n.read=0,n.write=0,n.reset=(e,t)=>{t&&(t[0]=0),6==s&&w.ht(e),s=0,n.ct=0,n.ot=0,n.read=n.write=0},n.reset(e,null),n.wt=(e,t)=>{let r,s,i;return s=e.rt,i=n.read,r=(i>n.write?n.end:n.write)-i,r>e.tt&&(r=e.tt),0!==r&&t==it&&(t=0),e.tt-=r,e.Ge+=r,e.$e.set(n.lt.subarray(i,i+r),s),s+=r,i+=r,i==n.end&&(i=0,n.write==n.end&&(n.write=0),r=n.write-i,r>e.tt&&(r=e.tt),0!==r&&t==it&&(t=0),e.tt-=r,e.Ge+=r,e.$e.set(n.lt.subarray(i,i+r),s),s+=r,i+=r),e.rt=s,n.read=i,t},n.ut=(e,t)=>{let i,f,y,m,b,g,k,v;for(m=e.nt,b=e.We,f=n.ot,y=n.ct,g=n.write,k=gy;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>1){case 0:f>>>=3,y-=3,i=7&y,f>>>=i,y-=i,s=1;break;case 1:S=[],z=[],C=[[]],x=[[]],ht.dt(S,z,C,x),w.init(S[0],z[0],C[0],0,x[0],0),f>>>=3,y-=3,s=6;break;case 2:f>>>=3,y-=3,s=3;break;case 3:return f>>>=3,y-=3,s=9,e.Le="invalid block type",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t)}break;case 1:for(;32>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>16&65535)!=(65535&f))return s=9,e.Le="invalid stored block lengths",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);o=65535&f,f=y=0,s=0!==o?2:0!==h?7:0;break;case 2:if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);if(0===k&&(g==n.end&&0!==n.read&&(g=0,k=gb&&(i=b),i>k&&(i=k),n.lt.set(e.je(m,i),g),m+=i,b-=i,g+=i,k-=i,0!=(o-=i))break;s=0!==h?7:0;break;case 3:for(;14>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<29||(i>>5&31)>29)return s=9,e.Le="too many length or distance symbols",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);if(i=258+(31&i)+(i>>5&31),!r||r.lengthv;v++)r[v]=0;f>>>=14,y-=14,a=0,s=4;case 4:for(;4+(c>>>10)>a;){for(;3>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>=3,y-=3}for(;19>a;)r[pt[a++]]=0;if(l[0]=7,i=p.st(r,l,u,d,e),0!=i)return(t=i)==st&&(r=null,s=9),n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);a=0,s=5;case 5:for(;i=c,258+(31&i)+(i>>5&31)>a;){let o,w;for(i=l[0];i>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<w)f>>>=i,y-=i,r[a++]=w;else{for(v=18==w?7:w-14,o=18==w?11:3;i+v>y;){if(0===b)return n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);t=0,b--,f|=(255&e.ft(m++))<>>=i,y-=i,o+=f&ot[v],f>>>=v,y-=v,v=a,i=c,v+o>258+(31&i)+(i>>5&31)||16==w&&1>v)return r=null,s=9,e.Le="invalid bit length repeat",t=st,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);w=16==w?r[v-1]:0;do{r[v++]=w}while(0!=--o);a=v}}if(u[0]=-1,A=[],_=[],I=[],P=[],A[0]=9,_[0]=6,i=c,i=p.it(257+(31&i),1+(i>>5&31),r,A,_,I,P,d,e),0!=i)return i==st&&(r=null,s=9),t=i,n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,n.wt(e,t);w.init(A[0],_[0],d,I[0],d,P[0]),s=6;case 6:if(n.ot=f,n.ct=y,e.We=b,e.qe+=m-e.nt,e.nt=m,n.write=g,1!=(t=w.ut(n,e,t)))return n.wt(e,t);if(t=0,w.ht(e),m=e.nt,b=e.We,f=n.ot,y=n.ct,g=n.write,k=g{n.reset(e,null),n.lt=null,d=null},n.yt=(e,t,r)=>{n.lt.set(e.subarray(t,t+r),0),n.read=n.write=r},n.bt=()=>1==s?1:0}const mt=13,bt=[0,0,255,255];function gt(){const e=this;function t(e){return e&&e.gt?(e.qe=e.Ge=0,e.Le=null,e.gt.mode=7,e.gt.kt.reset(e,null),0):rt}e.mode=0,e.method=0,e.vt=[0],e.St=0,e.marker=0,e.zt=0,e.Ct=t=>(e.kt&&e.kt.ht(t),e.kt=null,0),e.xt=(n,r)=>(n.Le=null,e.kt=null,8>r||r>15?(e.Ct(n),rt):(e.zt=r,n.gt.kt=new yt(n,1<{let n,r;if(!e||!e.gt||!e.et)return rt;const s=e.gt;for(t=4==t?it:0,n=it;;)switch(s.mode){case 0:if(0===e.We)return n;if(n=t,e.We--,e.qe++,8!=(15&(s.method=e.ft(e.nt++)))){s.mode=mt,e.Le="unknown compression method",s.marker=5;break}if(8+(s.method>>4)>s.zt){s.mode=mt,e.Le="invalid win size",s.marker=5;break}s.mode=1;case 1:if(0===e.We)return n;if(n=t,e.We--,e.qe++,r=255&e.ft(e.nt++),((s.method<<8)+r)%31!=0){s.mode=mt,e.Le="incorrect header check",s.marker=5;break}if(!(32&r)){s.mode=7;break}s.mode=2;case 2:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St=(255&e.ft(e.nt++))<<24&4278190080,s.mode=3;case 3:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St+=(255&e.ft(e.nt++))<<16&16711680,s.mode=4;case 4:if(0===e.We)return n;n=t,e.We--,e.qe++,s.St+=(255&e.ft(e.nt++))<<8&65280,s.mode=5;case 5:return 0===e.We?n:(n=t,e.We--,e.qe++,s.St+=255&e.ft(e.nt++),s.mode=6,2);case 6:return s.mode=mt,e.Le="need dictionary",s.marker=0,rt;case 7:if(n=s.kt.ut(e,n),n==st){s.mode=mt,s.marker=0;break}if(0==n&&(n=t),1!=n)return n;n=t,s.kt.reset(e,s.vt),s.mode=12;case 12:return e.We=0,1;case mt:return st;default:return rt}},e._t=(e,t,n)=>{let r=0,s=n;if(!e||!e.gt||6!=e.gt.mode)return rt;const i=e.gt;return s<1<{let n,r,s,i,o;if(!e||!e.gt)return rt;const c=e.gt;if(c.mode!=mt&&(c.mode=mt,c.marker=0),0===(n=e.We))return it;for(r=e.nt,s=c.marker;0!==n&&4>s;)e.ft(r)==bt[s]?s++:s=0!==e.ft(r)?0:4-s,r++,n--;return e.qe+=r-e.nt,e.nt=r,e.We=n,c.marker=s,4!=s?st:(i=e.qe,o=e.Ge,t(e),e.qe=i,e.Ge=o,c.mode=7,0)},e.Pt=e=>e&&e.gt&&e.gt.kt?e.gt.kt.bt():rt}function kt(){}function vt(e){const t=new kt,n=e&&e.chunkSize?r.floor(2*e.chunkSize):131072,o=new i(n);let c=!1;t.xt(),t.$e=o,this.append=(e,r)=>{const f=[];let a,l,u=0,w=0,h=0;if(0!==e.length){t.nt=0,t.et=e,t.We=e.length;do{if(t.rt=0,t.tt=n,0!==t.We||c||(t.nt=0,c=!0),a=t.At(0),c&&a===it){if(0!==t.We)throw new s("inflating: bad input")}else if(0!==a&&1!==a)throw new s("inflating: "+t.Le);if((c||1===a)&&t.We===e.length)throw new s("inflating: bad input");t.rt&&(t.rt===n?f.push(new i(o)):f.push(o.subarray(0,t.rt))),h+=t.rt,r&&t.nt>0&&t.nt!=u&&(r(t.nt),u=t.nt)}while(t.We>0||0===t.tt);return f.length>1?(l=new i(h),f.forEach((e=>{l.set(e,w),w+=e.length}))):l=f[0]?new i(f[0]):new i,l}},this.flush=()=>{t.Ct()}}kt.prototype={xt(e){const t=this;return t.gt=new gt,e||(e=15),t.gt.xt(t,e)},At(e){const t=this;return t.gt?t.gt.At(t,e):rt},Ct(){const e=this;if(!e.gt)return rt;const t=e.gt.Ct(e);return e.gt=null,t},It(){const e=this;return e.gt?e.gt.It(e):rt},_t(e,t){const n=this;return n.gt?n.gt._t(n,e,t):rt},ft(e){return this.et[e]},je(e,t){return this.et.subarray(e,e+t)}},self.initCodec=()=>{self.Deflate=nt,self.Inflate=vt};\n',r=()=>t.useDataURI?"data:text/javascript,"+encodeURIComponent(n):URL.createObjectURL(new Blob([n],{type:"text/javascript"}));se({workerScripts:{inflate:[r],deflate:[r]}})})(),se({Deflate:function(e){const t=new w,n=(r=e&&e.chunkSize?e.chunkSize:65536)+5*(Math.floor(r/16383)+1);var r;const i=new Uint8Array(n);let s=e?e.level:-1;void 0===s&&(s=-1),t.deflateInit(s),t.next_out=i,this.append=(e,r)=>{let s,a,o=0,c=0,l=0;const d=[];if(e.length){t.next_in_index=0,t.next_in=e,t.avail_in=e.length;do{if(t.next_out_index=0,t.avail_out=n,s=t.deflate(0),0!=s)throw Error("deflating: "+t.msg);t.next_out_index&&(t.next_out_index==n?d.push(new Uint8Array(i)):d.push(i.subarray(0,t.next_out_index))),l+=t.next_out_index,r&&t.next_in_index>0&&t.next_in_index!=o&&(r(t.next_in_index),o=t.next_in_index)}while(t.avail_in>0||0===t.avail_out);return d.length>1?(a=new Uint8Array(l),d.forEach((e=>{a.set(e,c),c+=e.length}))):a=d[0]?new Uint8Array(d[0]):new Uint8Array,a}},this.flush=()=>{let e,r,s=0,a=0;const o=[];do{if(t.next_out_index=0,t.avail_out=n,e=t.deflate(4),1!=e&&0!=e)throw Error("deflating: "+t.msg);n-t.avail_out>0&&o.push(i.slice(0,t.next_out_index)),a+=t.next_out_index}while(t.avail_in>0||0===t.avail_out);return t.deflateEnd(),r=new Uint8Array(a),o.forEach((e=>{r.set(e,s),s+=e.length})),r}},Inflate:function(e){const t=new q,n=e&&e.chunkSize?Math.floor(2*e.chunkSize):131072,r=new Uint8Array(n);let i=!1;t.inflateInit(),t.next_out=r,this.append=(e,s)=>{const a=[];let o,c,l=0,d=0,f=0;if(0!==e.length){t.next_in_index=0,t.next_in=e,t.avail_in=e.length;do{if(t.next_out_index=0,t.avail_out=n,0!==t.avail_in||i||(t.next_in_index=0,i=!0),o=t.inflate(0),i&&o===b){if(0!==t.avail_in)throw Error("inflating: bad input")}else if(0!==o&&1!==o)throw Error("inflating: "+t.msg);if((i||1===o)&&t.avail_in===e.length)throw Error("inflating: bad input");t.next_out_index&&(t.next_out_index===n?a.push(new Uint8Array(r)):a.push(r.subarray(0,t.next_out_index))),f+=t.next_out_index,s&&t.next_in_index>0&&t.next_in_index!=l&&(s(t.next_in_index),l=t.next_in_index)}while(t.avail_in>0||0===t.avail_out);return a.length>1?(c=new Uint8Array(f),a.forEach((e=>{c.set(e,d),d+=e.length}))):c=a[0]?new Uint8Array(a[0]):new Uint8Array,c}},this.flush=()=>{t.inflateEnd()}}});export{Xt as BlobReader,Jt as BlobWriter,Kt as Data64URIReader,Gt as Data64URIWriter,$n as ERR_BAD_FORMAT,nr as ERR_CENTRAL_DIRECTORY_NOT_FOUND,Cr as ERR_DUPLICATED_NAME,sr as ERR_ENCRYPTED,tr as ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND,er as ERR_EOCDR_NOT_FOUND,ir as ERR_EXTRAFIELD_ZIP64_NOT_FOUND,Rt as ERR_HTTP_RANGE,Dr as ERR_INVALID_COMMENT,Fr as ERR_INVALID_ENCRYPTION_STRENGTH,Ur as ERR_INVALID_ENTRY_COMMENT,Er as ERR_INVALID_ENTRY_NAME,qr as ERR_INVALID_EXTRAFIELD_DATA,jr as ERR_INVALID_EXTRAFIELD_TYPE,ve as ERR_INVALID_PASSWORD,ye as ERR_INVALID_SIGNATURE,Wr as ERR_INVALID_VERSION,Lt as ERR_ITERATOR_COMPLETED_TOO_SOON,rr as ERR_LOCAL_FILE_HEADER_NOT_FOUND,cr as ERR_SPLIT_ZIP_FILE,Or as ERR_UNDEFINED_UNCOMPRESSED_SIZE,or as ERR_UNSUPPORTED_COMPRESSION,ar as ERR_UNSUPPORTED_ENCRYPTION,Tr as ERR_UNSUPPORTED_FORMAT,mn as HttpRangeReader,pn as HttpReader,Vt as Reader,gn as SplitDataReader,xn as SplitDataWriter,kn as SplitZipReader,Sn as SplitZipWriter,Yt as TextReader,Qt as TextWriter,hn as Uint8ArrayReader,wn as Uint8ArrayWriter,Zt as Writer,pr as ZipReader,mr as ZipReaderStream,Mr as ZipWriter,Pr as ZipWriterStream,se as configure,ni as fs,le as getMimeType,qt as initShimAsyncCodec,jt as terminateWorkers}; \ No newline at end of file diff --git a/flasher/pio_create_dfu_zip.py b/flasher/pio_create_dfu_zip.py new file mode 100644 index 0000000..08ff0ff --- /dev/null +++ b/flasher/pio_create_dfu_zip.py @@ -0,0 +1,116 @@ +#!/usr/bin/env python3 +""" +PlatformIO extra script: generate DFU .zip after build. + +Add to platformio.ini: + extra_scripts = post:flasher/pio_create_dfu_zip.py +""" + +import sys +import os +import json +import struct +import zipfile + +# Add flasher dir to path for importing the main module +sys.path.insert(0, os.path.join(os.path.dirname(__file__))) + +try: + from create_dfu_zip import hex_to_bin, uf2_to_bin, create_dfu_zip +except ImportError: + # Fallback: define minimal conversion inline + def hex_to_bin(hex_path): + from intelhex import IntelHex + ih = IntelHex(hex_path) + min_addr = ih.minaddr() or 0 + max_addr = ih.maxaddr() or 0 + size = max_addr - min_addr + 1 + page_size = 0x1000 + aligned = ((size + page_size - 1) // page_size) * page_size + return bytes(ih.tobinarray(start=min_addr, size=aligned)), min_addr + + def create_dfu_zip(bin_data, base_addr, fw_version=1, hw_version=52): + init_packet = bytearray() + init_packet.append(0x01) + init_packet.append(0x04) + init_packet += struct.pack(' Heltec_T114_Beacon_BLE + parts = env_name.split("_") + if "beacon" in parts: + fw_name = "Heltec_T114_Beacon" + elif "companion" in parts: + fw_name = "Heltec_T114_Companion_Radio" + elif "repeater" in parts: + fw_name = "Heltec_T114_Repeater" + elif "room" in parts: + fw_name = "Heltec_T114_Room_Server" + else: + fw_name = "firmware" + + if "ble" in parts: + fw_name += "_BLE" + elif "usb" in parts: + fw_name += "_USB" + + zip_name = f"{fw_name}.dfu.zip" + zip_path = os.path.join(build_dir, zip_name) + + with zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) as zf: + zf.writestr("manifest.json", json.dumps(manifest, indent=2)) + zf.writestr("firmware.bin", fw_bin) + zf.writestr("firmware.dat", fw_dat) + + size = os.path.getsize(zip_path) + print(f" [DFU] Created: {zip_path} ({size / 1024:.0f} KB)") + + +# Register hook +Import("env") +env.AddPostAction("$BUILD_DIR/${PROGNAME}.hex", create_dfu_zip_from_build) + +# Also trigger after .uf2 creation if that action exists +try: + env.AddPostAction("$BUILD_DIR/${PROGNAME}.uf2", create_dfu_zip_from_build) +except: + pass diff --git a/variants/heltec_t114/platformio.ini b/variants/heltec_t114/platformio.ini index f482497..dbb358d 100644 --- a/variants/heltec_t114/platformio.ini +++ b/variants/heltec_t114/platformio.ini @@ -121,6 +121,7 @@ lib_deps = extends = Heltec_t114 board_build.ldscript = boards/nrf52840_s140_v6_extrafs.ld board_upload.maximum_size = 712704 +extra_scripts = post:flasher/pio_create_dfu_zip.py build_flags = ${Heltec_t114.build_flags} -I examples/beacon_sensor/ui-new @@ -170,6 +171,7 @@ lib_deps = extends = Heltec_t114 board_build.ldscript = boards/nrf52840_s140_v6_extrafs.ld board_upload.maximum_size = 712704 +extra_scripts = post:flasher/pio_create_dfu_zip.py build_flags = ${Heltec_t114.build_flags} -I examples/beacon_sensor/ui-new
+ + + + + + +
+ ⓘ Релизы загружены через CORS-прокси. Для прямой загрузки настрой CORS в Gitea: + app.ini: [cors] ENABLED = true; ALLOW_DOMAIN = * или размести flasher на том же домене. +
+ + +
+
+
{{ selectedAsset.name }}
+

{{ (selectedAsset.size / 1024).toFixed(0) }} KB · {{ selectedRelease.tag_name }}

+
+
{{ selectedRelease.body }}
+
+
+
Способ 1: UF2 (drag-n-drop)
+
    +
  1. Зажми BOOT/PRG на T114
  2. +
  3. Подключи USB к ПК
  4. +
  5. Отпусти — появится диск T114
  6. +
  7. Перетащи .uf2 файл на этот диск
  8. +
+ ⬇ Скачать UF2 +
+
+
Способ 2: Web DFU (экспер.)
+
    +
  1. Дважды кликни RESET на T114
  2. +
  3. Нажми «Enter DFU mode» и выбери порт
  4. +
  5. Нажми «Flash DFU»
  6. +
+
+ + + +
+

+ Web Serial не поддерживается. Используй Chrome/Edge на десктопе. +

+

+ ⓘ Для DFU нужен .zip файл. В релизе только .uf2. +

+
+
+
+ +

+ Прошивка... {{ Math.round(flashing.percent) }}% +

+

✓ Готово!

+
{{ flashing.log }}
+
+ +
+
+ +
+ + +
+
+
💻 Serial Console (115200 бод)
+

Подключение к T114 для AT-команд

+
+
+ + + +
+
{{ console.log || 'Нажми «Подключиться» и выбери порт T114...' }}
+
+ + +
+
+ AT команды +
    +
  • ver — версия
  • +
  • log — лог пакетов
  • +
  • erase — стереть FS
  • +
  • reboot — перезагрузка
  • +
  • advert — отправить ADV
  • +
  • get freq — частота
  • +
  • set freq 868.7 — частота
  • +
  • get af — Air-time factor
  • +
  • set name — имя
  • +
  • password <pass> — пароль
  • +
+
+ +
+ + +
+
+
{{ selectedRelease.name || selectedRelease.tag_name }}
+ {{ selectedRelease.assets.length }} файл(ов) +
+

{{ selectedRelease.body }}

+
+
+
+ {{ asset.name }} + + · {{ (asset.size / 1024).toFixed(0) }} KB + + + {{ asset.download_count }} загрузок + +
+
+ ⬇ Скачать + +
+
+
+
+

Нет файлов прошивки в этом релизе

+
+
+ + +
+
+ +

Загрузка релизов...

+
+
+

📄 Релизов пока нет

+ Перейти к релизам +
+
+
+
+ {{ r.name || r.tag_name }} + {{ r.assets.length }} файл(ов) +
+

{{ r.body }}

+
+ {{ formatDate(r.published_at) }} + · {{ r.assets.reduce((s, a) => s + (a.download_count||0), 0) }} скачиваний +
+
+
+
+ + +