{"version":3,"sources":["jsdelivr-header.js","/npm/zip-js-esm@1.1.1/src/zip.js"],"names":[],"mappings":"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","file":"/npm/zip-js-esm@1.1.1/src/zip.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/zip-js-esm@1.1.1/src/zip.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/*\nCopyright (c) 2013 Gildas Lormeau. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice,\nthis list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\nnotice, this list of conditions and the following disclaimer in\nthe documentation and/or other materials provided with the distribution.\n\n3. The names of the authors may not be used to endorse or promote products\nderived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\nINC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\nINCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\nOR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\nEVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\nimport {Deflater} from \"./deflate\";\nimport {Inflater} from \"./inflate\";\n\nvar ERR_BAD_FORMAT = \"File format is not recognized.\";\nvar ERR_CRC = \"CRC failed.\";\nvar ERR_ENCRYPTED = \"File contains encrypted entry.\";\nvar ERR_ZIP64 = \"File is using Zip64 (4gb+ file size).\";\nvar ERR_READ = \"Error while reading zip file.\";\nvar ERR_WRITE = \"Error while writing zip file.\";\nvar ERR_WRITE_DATA = \"Error while writing file data.\";\nvar ERR_READ_DATA = \"Error while reading file data.\";\nvar ERR_DUPLICATED_NAME = \"File already exists.\";\nvar CHUNK_SIZE = 512 * 1024;\n\nvar TEXT_PLAIN = \"text/plain\";\n\nvar appendABViewSupported;\ntry {\n\tappendABViewSupported = new Blob([ new DataView(new ArrayBuffer(0)) ]).size === 0;\n} catch (e) {\n}\n\nfunction Crc32() {\n\tthis.crc = -1;\n}\nCrc32.prototype.append = function append(data) {\n\tvar crc = this.crc | 0, table = this.table;\n\tfor (var offset = 0, len = data.length | 0; offset < len; offset++)\n\t\tcrc = (crc >>> 8) ^ table[(crc ^ data[offset]) & 0xFF];\n\tthis.crc = crc;\n};\nCrc32.prototype.get = function get() {\n\treturn ~this.crc;\n};\nCrc32.prototype.table = (function() {\n\tvar i, j, t, table = []; // Uint32Array is actually slower than []\n\tfor (i = 0; i < 256; i++) {\n\t\tt = i;\n\t\tfor (j = 0; j < 8; j++)\n\t\t\tif (t & 1)\n\t\t\t\tt = (t >>> 1) ^ 0xEDB88320;\n\t\t\telse\n\t\t\t\tt = t >>> 1;\n\t\ttable[i] = t;\n\t}\n\treturn table;\n})();\n\n// \"no-op\" codec\nfunction NOOP() {}\nNOOP.prototype.append = function append(bytes, onprogress) {\n\treturn bytes;\n};\nNOOP.prototype.flush = function flush() {};\n\nfunction blobSlice(blob, index, length) {\n\tif (index < 0 || length < 0 || index + length > blob.size)\n\t\tthrow new RangeError('offset:' + index + ', length:' + length + ', size:' + blob.size);\n\tif (blob.slice)\n\t\treturn blob.slice(index, index + length);\n\telse if (blob.webkitSlice)\n\t\treturn blob.webkitSlice(index, index + length);\n\telse if (blob.mozSlice)\n\t\treturn blob.mozSlice(index, index + length);\n\telse if (blob.msSlice)\n\t\treturn blob.msSlice(index, index + length);\n}\n\nfunction getDataHelper(byteLength, bytes) {\n\tvar dataBuffer, dataArray;\n\tdataBuffer = new ArrayBuffer(byteLength);\n\tdataArray = new Uint8Array(dataBuffer);\n\tif (bytes)\n\t\tdataArray.set(bytes, 0);\n\treturn {\n\t\tbuffer : dataBuffer,\n\t\tarray : dataArray,\n\t\tview : new DataView(dataBuffer)\n\t};\n}\n\n// Readers\nfunction Reader() {\n}\n\nfunction TextReader(text) {\n\tvar that = this, blobReader;\n\n\tfunction init(callback, onerror) {\n\t\tvar blob = new Blob([ text ], {\n\t\t\ttype : TEXT_PLAIN\n\t\t});\n\t\tblobReader = new BlobReader(blob);\n\t\tblobReader.init(function() {\n\t\t\tthat.size = blobReader.size;\n\t\t\tcallback();\n\t\t}, onerror);\n\t}\n\n\tfunction readUint8Array(index, length, callback, onerror) {\n\t\tblobReader.readUint8Array(index, length, callback, onerror);\n\t}\n\n\tthat.size = 0;\n\tthat.init = init;\n\tthat.readUint8Array = readUint8Array;\n}\nTextReader.prototype = new Reader();\nTextReader.prototype.constructor = TextReader;\n\nfunction Data64URIReader(dataURI) {\n\tvar that = this, dataStart;\n\n\tfunction init(callback) {\n\t\tvar dataEnd = dataURI.length;\n\t\twhile (dataURI.charAt(dataEnd - 1) == \"=\")\n\t\t\tdataEnd--;\n\t\tdataStart = dataURI.indexOf(\",\") + 1;\n\t\tthat.size = Math.floor((dataEnd - dataStart) * 0.75);\n\t\tcallback();\n\t}\n\n\tfunction readUint8Array(index, length, callback) {\n\t\tvar i, data = getDataHelper(length);\n\t\tvar start = Math.floor(index / 3) * 4;\n\t\tvar end = Math.ceil((index + length) / 3) * 4;\n\t\tvar bytes = self.atob(dataURI.substring(start + dataStart, end + dataStart));\n\t\tvar delta = index - Math.floor(start / 4) * 3;\n\t\tfor (i = delta; i < delta + length; i++)\n\t\t\tdata.array[i - delta] = bytes.charCodeAt(i);\n\t\tcallback(data.array);\n\t}\n\n\tthat.size = 0;\n\tthat.init = init;\n\tthat.readUint8Array = readUint8Array;\n}\nData64URIReader.prototype = new Reader();\nData64URIReader.prototype.constructor = Data64URIReader;\n\nfunction BlobReader(blob) {\n\tvar that = this;\n\n\tfunction init(callback) {\n\t\tthat.size = blob.size;\n\t\tcallback();\n\t}\n\n\tfunction readUint8Array(index, length, callback, onerror) {\n\t\tvar reader = new FileReader();\n\t\treader.onload = function(e) {\n\t\t\tcallback(new Uint8Array(e.target.result));\n\t\t};\n\t\treader.onerror = onerror;\n\t\ttry {\n\t\t\treader.readAsArrayBuffer(blobSlice(blob, index, length));\n\t\t} catch (e) {\n\t\t\tonerror(e);\n\t\t}\n\t}\n\n\tthat.size = 0;\n\tthat.init = init;\n\tthat.readUint8Array = readUint8Array;\n}\nBlobReader.prototype = new Reader();\nBlobReader.prototype.constructor = BlobReader;\n\n// Writers\n\nfunction Writer() {\n}\nWriter.prototype.getData = function(callback) {\n\tcallback(this.data);\n};\n\nfunction TextWriter(encoding) {\n\tvar that = this, blob;\n\n\tfunction init(callback) {\n\t\tblob = new Blob([], {\n\t\t\ttype : TEXT_PLAIN\n\t\t});\n\t\tcallback();\n\t}\n\n\tfunction writeUint8Array(array, callback) {\n\t\tblob = new Blob([ blob, appendABViewSupported ? array : array.buffer ], {\n\t\t\ttype : TEXT_PLAIN\n\t\t});\n\t\tcallback();\n\t}\n\n\tfunction getData(callback, onerror) {\n\t\tvar reader = new FileReader();\n\t\treader.onload = function(e) {\n\t\t\tcallback(e.target.result);\n\t\t};\n\t\treader.onerror = onerror;\n\t\treader.readAsText(blob, encoding);\n\t}\n\n\tthat.init = init;\n\tthat.writeUint8Array = writeUint8Array;\n\tthat.getData = getData;\n}\nTextWriter.prototype = new Writer();\nTextWriter.prototype.constructor = TextWriter;\n\nfunction Data64URIWriter(contentType) {\n\tvar that = this, data = \"\", pending = \"\";\n\n\tfunction init(callback) {\n\t\tdata += \"data:\" + (contentType || \"\") + \";base64,\";\n\t\tcallback();\n\t}\n\n\tfunction writeUint8Array(array, callback) {\n\t\tvar i, delta = pending.length, dataString = pending;\n\t\tpending = \"\";\n\t\tfor (i = 0; i < (Math.floor((delta + array.length) / 3) * 3) - delta; i++)\n\t\t\tdataString += String.fromCharCode(array[i]);\n\t\tfor (; i < array.length; i++)\n\t\t\tpending += String.fromCharCode(array[i]);\n\t\tif (dataString.length > 2)\n\t\t\tdata += self.btoa(dataString);\n\t\telse\n\t\t\tpending = dataString;\n\t\tcallback();\n\t}\n\n\tfunction getData(callback) {\n\t\tcallback(data + self.btoa(pending));\n\t}\n\n\tthat.init = init;\n\tthat.writeUint8Array = writeUint8Array;\n\tthat.getData = getData;\n}\nData64URIWriter.prototype = new Writer();\nData64URIWriter.prototype.constructor = Data64URIWriter;\n\nfunction BlobWriter(contentType) {\n\tvar blob, that = this;\n\n\tfunction init(callback) {\n\t\tblob = new Blob([], {\n\t\t\ttype : contentType\n\t\t});\n\t\tcallback();\n\t}\n\n\tfunction writeUint8Array(array, callback) {\n\t\tblob = new Blob([ blob, appendABViewSupported ? array : array.buffer ], {\n\t\t\ttype : contentType\n\t\t});\n\t\tcallback();\n\t}\n\n\tfunction getData(callback) {\n\t\tcallback(blob);\n\t}\n\n\tthat.init = init;\n\tthat.writeUint8Array = writeUint8Array;\n\tthat.getData = getData;\n}\nBlobWriter.prototype = new Writer();\nBlobWriter.prototype.constructor = BlobWriter;\n\n/** \n * inflate/deflate core functions\n * @param worker {Worker} web worker for the task.\n * @param initialMessage {Object} initial message to be sent to the worker. should contain\n *   sn(serial number for distinguishing multiple tasks sent to the worker), and codecClass.\n *   This function may add more properties before sending.\n */\nfunction launchWorkerProcess(worker, initialMessage, reader, writer, offset, size, onprogress, onend, onreaderror, onwriteerror) {\n\tvar chunkIndex = 0, index, outputSize, sn = initialMessage.sn, crc;\n\n\tfunction onflush() {\n\t\tworker.removeEventListener('message', onmessage, false);\n\t\tonend(outputSize, crc);\n\t}\n\n\tfunction onmessage(event) {\n\t\tvar message = event.data, data = message.data, err = message.error;\n\t\tif (err) {\n\t\t\terr.toString = function () { return 'Error: ' + this.message; };\n\t\t\tonreaderror(err);\n\t\t\treturn;\n\t\t}\n\t\tif (message.sn !== sn)\n\t\t\treturn;\n\t\tif (typeof message.codecTime === 'number')\n\t\t\tworker.codecTime += message.codecTime; // should be before onflush()\n\t\tif (typeof message.crcTime === 'number')\n\t\t\tworker.crcTime += message.crcTime;\n\n\t\tswitch (message.type) {\n\t\t\tcase 'append':\n\t\t\t\tif (data) {\n\t\t\t\t\toutputSize += data.length;\n\t\t\t\t\twriter.writeUint8Array(data, function() {\n\t\t\t\t\t\tstep();\n\t\t\t\t\t}, onwriteerror);\n\t\t\t\t} else\n\t\t\t\t\tstep();\n\t\t\t\tbreak;\n\t\t\tcase 'flush':\n\t\t\t\tcrc = message.crc;\n\t\t\t\tif (data) {\n\t\t\t\t\toutputSize += data.length;\n\t\t\t\t\twriter.writeUint8Array(data, function() {\n\t\t\t\t\t\tonflush();\n\t\t\t\t\t}, onwriteerror);\n\t\t\t\t} else\n\t\t\t\t\tonflush();\n\t\t\t\tbreak;\n\t\t\tcase 'progress':\n\t\t\t\tif (onprogress)\n\t\t\t\t\tonprogress(index + message.loaded, size);\n\t\t\t\tbreak;\n\t\t\tcase 'importScripts': //no need to handle here\n\t\t\tcase 'newTask':\n\t\t\tcase 'echo':\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tconsole.warn('zip.js:launchWorkerProcess: unknown message: ', message);\n\t\t}\n\t}\n\n\tfunction step() {\n\t\tindex = chunkIndex * CHUNK_SIZE;\n\t\t// use `<=` instead of `<`, because `size` may be 0.\n\t\tif (index <= size) {\n\t\t\treader.readUint8Array(offset + index, Math.min(CHUNK_SIZE, size - index), function(array) {\n\t\t\t\tif (onprogress)\n\t\t\t\t\tonprogress(index, size);\n\t\t\t\tvar msg = index === 0 ? initialMessage : {sn : sn};\n\t\t\t\tmsg.type = 'append';\n\t\t\t\tmsg.data = array;\n\t\t\t\t\n\t\t\t\t// posting a message with transferables will fail on IE10\n\t\t\t\ttry {\n\t\t\t\t\tworker.postMessage(msg, [array.buffer]);\n\t\t\t\t} catch(ex) {\n\t\t\t\t\tworker.postMessage(msg); // retry without transferables\n\t\t\t\t}\n\t\t\t\tchunkIndex++;\n\t\t\t}, onreaderror);\n\t\t} else {\n\t\t\tworker.postMessage({\n\t\t\t\tsn: sn,\n\t\t\t\ttype: 'flush'\n\t\t\t});\n\t\t}\n\t}\n\n\toutputSize = 0;\n\tworker.addEventListener('message', onmessage, false);\n\tstep();\n}\n\nfunction launchProcess(process, reader, writer, offset, size, crcType, onprogress, onend, onreaderror, onwriteerror) {\n\tvar chunkIndex = 0, index, outputSize = 0,\n\t\tcrcInput = crcType === 'input',\n\t\tcrcOutput = crcType === 'output',\n\t\tcrc = new Crc32();\n\tfunction step() {\n\t\tvar outputData;\n\t\tindex = chunkIndex * CHUNK_SIZE;\n\t\tif (index < size)\n\t\t\treader.readUint8Array(offset + index, Math.min(CHUNK_SIZE, size - index), function(inputData) {\n\t\t\t\tvar outputData;\n\t\t\t\ttry {\n\t\t\t\t\toutputData = process.append(inputData, function(loaded) {\n\t\t\t\t\t\tif (onprogress)\n\t\t\t\t\t\t\tonprogress(index + loaded, size);\n\t\t\t\t\t});\n\t\t\t\t} catch (e) {\n\t\t\t\t\tonreaderror(e);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (outputData) {\n\t\t\t\t\toutputSize += outputData.length;\n\t\t\t\t\twriter.writeUint8Array(outputData, function() {\n\t\t\t\t\t\tchunkIndex++;\n\t\t\t\t\t\tsetTimeout(step, 1);\n\t\t\t\t\t}, onwriteerror);\n\t\t\t\t\tif (crcOutput)\n\t\t\t\t\t\tcrc.append(outputData);\n\t\t\t\t} else {\n\t\t\t\t\tchunkIndex++;\n\t\t\t\t\tsetTimeout(step, 1);\n\t\t\t\t}\n\t\t\t\tif (crcInput)\n\t\t\t\t\tcrc.append(inputData);\n\t\t\t\tif (onprogress)\n\t\t\t\t\tonprogress(index, size);\n\t\t\t}, onreaderror);\n\t\telse {\n\t\t\ttry {\n\t\t\t\toutputData = process.flush();\n\t\t\t} catch (e) {\n\t\t\t\tonreaderror(e);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (outputData) {\n\t\t\t\tif (crcOutput)\n\t\t\t\t\tcrc.append(outputData);\n\t\t\t\toutputSize += outputData.length;\n\t\t\t\twriter.writeUint8Array(outputData, function() {\n\t\t\t\t\tonend(outputSize, crc.get());\n\t\t\t\t}, onwriteerror);\n\t\t\t} else\n\t\t\t\tonend(outputSize, crc.get());\n\t\t}\n\t}\n\n\tstep();\n}\n\nfunction inflate(worker, sn, reader, writer, offset, size, computeCrc32, onend, onprogress, onreaderror, onwriteerror) {\n\tvar crcType = computeCrc32 ? 'output' : 'none';\n\tif (Zip.useWebWorkers) {\n\t\tvar initialMessage = {\n\t\t\tsn: sn,\n\t\t\tcodecClass: '_zipjs_Inflater',\n\t\t\tcrcType: crcType,\n\t\t};\n\t\tlaunchWorkerProcess(worker, initialMessage, reader, writer, offset, size, onprogress, onend, onreaderror, onwriteerror);\n\t} else\n\t\tlaunchProcess(new Inflater(), reader, writer, offset, size, crcType, onprogress, onend, onreaderror, onwriteerror);\n}\n\nfunction deflate(worker, sn, reader, writer, level, onend, onprogress, onreaderror, onwriteerror) {\n\tvar crcType = 'input';\n\tif (Zip.useWebWorkers) {\n\t\tvar initialMessage = {\n\t\t\tsn: sn,\n\t\t\toptions: {level: level},\n\t\t\tcodecClass: '_zipjs_Deflater',\n\t\t\tcrcType: crcType,\n\t\t};\n\t\tlaunchWorkerProcess(worker, initialMessage, reader, writer, 0, reader.size, onprogress, onend, onreaderror, onwriteerror);\n\t} else\n\t\tlaunchProcess(new Deflater(), reader, writer, 0, reader.size, crcType, onprogress, onend, onreaderror, onwriteerror);\n}\n\nfunction copy(worker, sn, reader, writer, offset, size, computeCrc32, onend, onprogress, onreaderror, onwriteerror) {\n\tvar crcType = 'input';\n\tif (Zip.useWebWorkers && computeCrc32) {\n\t\tvar initialMessage = {\n\t\t\tsn: sn,\n\t\t\tcodecClass: '_zipjs_NOOP',\n\t\t\tcrcType: crcType,\n\t\t};\n\t\tlaunchWorkerProcess(worker, initialMessage, reader, writer, offset, size, onprogress, onend, onreaderror, onwriteerror);\n\t} else\n\t\tlaunchProcess(new NOOP(), reader, writer, offset, size, crcType, onprogress, onend, onreaderror, onwriteerror);\n}\n\n// ZipReader\n\nfunction decodeASCII(str) {\n\tvar i, out = \"\", charCode, extendedASCII = [ '\\u00C7', '\\u00FC', '\\u00E9', '\\u00E2', '\\u00E4', '\\u00E0', '\\u00E5', '\\u00E7', '\\u00EA', '\\u00EB',\n\t\t\t'\\u00E8', '\\u00EF', '\\u00EE', '\\u00EC', '\\u00C4', '\\u00C5', '\\u00C9', '\\u00E6', '\\u00C6', '\\u00F4', '\\u00F6', '\\u00F2', '\\u00FB', '\\u00F9',\n\t\t\t'\\u00FF', '\\u00D6', '\\u00DC', '\\u00F8', '\\u00A3', '\\u00D8', '\\u00D7', '\\u0192', '\\u00E1', '\\u00ED', '\\u00F3', '\\u00FA', '\\u00F1', '\\u00D1',\n\t\t\t'\\u00AA', '\\u00BA', '\\u00BF', '\\u00AE', '\\u00AC', '\\u00BD', '\\u00BC', '\\u00A1', '\\u00AB', '\\u00BB', '_', '_', '_', '\\u00A6', '\\u00A6',\n\t\t\t'\\u00C1', '\\u00C2', '\\u00C0', '\\u00A9', '\\u00A6', '\\u00A6', '+', '+', '\\u00A2', '\\u00A5', '+', '+', '-', '-', '+', '-', '+', '\\u00E3',\n\t\t\t'\\u00C3', '+', '+', '-', '-', '\\u00A6', '-', '+', '\\u00A4', '\\u00F0', '\\u00D0', '\\u00CA', '\\u00CB', '\\u00C8', 'i', '\\u00CD', '\\u00CE',\n\t\t\t'\\u00CF', '+', '+', '_', '_', '\\u00A6', '\\u00CC', '_', '\\u00D3', '\\u00DF', '\\u00D4', '\\u00D2', '\\u00F5', '\\u00D5', '\\u00B5', '\\u00FE',\n\t\t\t'\\u00DE', '\\u00DA', '\\u00DB', '\\u00D9', '\\u00FD', '\\u00DD', '\\u00AF', '\\u00B4', '\\u00AD', '\\u00B1', '_', '\\u00BE', '\\u00B6', '\\u00A7',\n\t\t\t'\\u00F7', '\\u00B8', '\\u00B0', '\\u00A8', '\\u00B7', '\\u00B9', '\\u00B3', '\\u00B2', '_', ' ' ];\n\tfor (i = 0; i < str.length; i++) {\n\t\tcharCode = str.charCodeAt(i) & 0xFF;\n\t\tif (charCode > 127)\n\t\t\tout += extendedASCII[charCode - 128];\n\t\telse\n\t\t\tout += String.fromCharCode(charCode);\n\t}\n\treturn out;\n}\n\nfunction decodeUTF8(string) {\n\treturn decodeURIComponent(escape(string));\n}\n\nfunction getString(bytes) {\n\tvar i, str = \"\";\n\tfor (i = 0; i < bytes.length; i++)\n\t\tstr += String.fromCharCode(bytes[i]);\n\treturn str;\n}\n\nfunction getDate(timeRaw) {\n\tvar date = (timeRaw & 0xffff0000) >> 16, time = timeRaw & 0x0000ffff;\n\ttry {\n\t\treturn new Date(1980 + ((date & 0xFE00) >> 9), ((date & 0x01E0) >> 5) - 1, date & 0x001F, (time & 0xF800) >> 11, (time & 0x07E0) >> 5,\n\t\t\t\t(time & 0x001F) * 2, 0);\n\t} catch (e) {\n\t}\n}\n\nfunction readCommonHeader(entry, data, index, centralDirectory, onerror) {\n\tentry.version = data.view.getUint16(index, true);\n\tentry.bitFlag = data.view.getUint16(index + 2, true);\n\tentry.compressionMethod = data.view.getUint16(index + 4, true);\n\tentry.lastModDateRaw = data.view.getUint32(index + 6, true);\n\tentry.lastModDate = getDate(entry.lastModDateRaw);\n\tif ((entry.bitFlag & 0x01) === 0x01) {\n\t\tonerror(ERR_ENCRYPTED);\n\t\treturn;\n\t}\n\tif (centralDirectory || (entry.bitFlag & 0x0008) != 0x0008) {\n\t\tentry.crc32 = data.view.getUint32(index + 10, true);\n\t\tentry.compressedSize = data.view.getUint32(index + 14, true);\n\t\tentry.uncompressedSize = data.view.getUint32(index + 18, true);\n\t}\n\tif (entry.compressedSize === 0xFFFFFFFF || entry.uncompressedSize === 0xFFFFFFFF) {\n\t\tonerror(ERR_ZIP64);\n\t\treturn;\n\t}\n\tentry.filenameLength = data.view.getUint16(index + 22, true);\n\tentry.extraFieldLength = data.view.getUint16(index + 24, true);\n}\n\nfunction createZipReader(reader, callback, onerror) {\n\tvar inflateSN = 0;\n\n\tfunction Entry() {\n\t}\n\n\tEntry.prototype.getData = function(writer, onend, onprogress, checkCrc32) {\n\t\tvar that = this;\n\n\t\tfunction testCrc32(crc32) {\n\t\t\tvar dataCrc32 = getDataHelper(4);\n\t\t\tdataCrc32.view.setUint32(0, crc32);\n\t\t\treturn that.crc32 == dataCrc32.view.getUint32(0);\n\t\t}\n\n\t\tfunction getWriterData(uncompressedSize, crc32) {\n\t\t\tif (checkCrc32 && !testCrc32(crc32))\n\t\t\t\tonerror(ERR_CRC);\n\t\t\telse\n\t\t\t\twriter.getData(function(data) {\n\t\t\t\t\tonend(data);\n\t\t\t\t});\n\t\t}\n\n\t\tfunction onreaderror(err) {\n\t\t\tonerror(err || ERR_READ_DATA);\n\t\t}\n\n\t\tfunction onwriteerror(err) {\n\t\t\tonerror(err || ERR_WRITE_DATA);\n\t\t}\n\n\t\treader.readUint8Array(that.offset, 30, function(bytes) {\n\t\t\tvar data = getDataHelper(bytes.length, bytes), dataOffset;\n\t\t\tif (data.view.getUint32(0) != 0x504b0304) {\n\t\t\t\tonerror(ERR_BAD_FORMAT);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treadCommonHeader(that, data, 4, false, onerror);\n\t\t\tdataOffset = that.offset + 30 + that.filenameLength + that.extraFieldLength;\n\t\t\twriter.init(function() {\n\t\t\t\tif (that.compressionMethod === 0)\n\t\t\t\t\tcopy(that._worker, inflateSN++, reader, writer, dataOffset, that.compressedSize, checkCrc32, getWriterData, onprogress, onreaderror, onwriteerror);\n\t\t\t\telse\n\t\t\t\t\tinflate(that._worker, inflateSN++, reader, writer, dataOffset, that.compressedSize, checkCrc32, getWriterData, onprogress, onreaderror, onwriteerror);\n\t\t\t}, onwriteerror);\n\t\t}, onreaderror);\n\t};\n\n\tfunction seekEOCDR(eocdrCallback) {\n\t\t// \"End of central directory record\" is the last part of a zip archive, and is at least 22 bytes long.\n\t\t// Zip file comment is the last part of EOCDR and has max length of 64KB,\n\t\t// so we only have to search the last 64K + 22 bytes of a archive for EOCDR signature (0x06054b50).\n\t\tvar EOCDR_MIN = 22;\n\t\tif (reader.size < EOCDR_MIN) {\n\t\t\tonerror(ERR_BAD_FORMAT);\n\t\t\treturn;\n\t\t}\n\t\tvar ZIP_COMMENT_MAX = 256 * 256, EOCDR_MAX = EOCDR_MIN + ZIP_COMMENT_MAX;\n\n\t\t// In most cases, the EOCDR is EOCDR_MIN bytes long\n\t\tdoSeek(EOCDR_MIN, function() {\n\t\t\t// If not found, try within EOCDR_MAX bytes\n\t\t\tdoSeek(Math.min(EOCDR_MAX, reader.size), function() {\n\t\t\t\tonerror(ERR_BAD_FORMAT);\n\t\t\t});\n\t\t});\n\n\t\t// seek last length bytes of file for EOCDR\n\t\tfunction doSeek(length, eocdrNotFoundCallback) {\n\t\t\treader.readUint8Array(reader.size - length, length, function(bytes) {\n\t\t\t\tfor (var i = bytes.length - EOCDR_MIN; i >= 0; i--) {\n\t\t\t\t\tif (bytes[i] === 0x50 && bytes[i + 1] === 0x4b && bytes[i + 2] === 0x05 && bytes[i + 3] === 0x06) {\n\t\t\t\t\t\teocdrCallback(new DataView(bytes.buffer, i, EOCDR_MIN));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\teocdrNotFoundCallback();\n\t\t\t}, function() {\n\t\t\t\tonerror(ERR_READ);\n\t\t\t});\n\t\t}\n\t}\n\n\tvar zipReader = {\n\t\tgetEntries : function(callback) {\n\t\t\tvar worker = this._worker;\n\t\t\t// look for End of central directory record\n\t\t\tseekEOCDR(function(dataView) {\n\t\t\t\tvar datalength, fileslength;\n\t\t\t\tdatalength = dataView.getUint32(16, true);\n\t\t\t\tfileslength = dataView.getUint16(8, true);\n\t\t\t\tif (datalength < 0 || datalength >= reader.size) {\n\t\t\t\t\tonerror(ERR_BAD_FORMAT);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\treader.readUint8Array(datalength, reader.size - datalength, function(bytes) {\n\t\t\t\t\tvar i, index = 0, entries = [], entry, filename, comment, data = getDataHelper(bytes.length, bytes);\n\t\t\t\t\tfor (i = 0; i < fileslength; i++) {\n\t\t\t\t\t\tentry = new Entry();\n\t\t\t\t\t\tentry._worker = worker;\n\t\t\t\t\t\tif (data.view.getUint32(index) != 0x504b0102) {\n\t\t\t\t\t\t\tonerror(ERR_BAD_FORMAT);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treadCommonHeader(entry, data, index + 6, true, onerror);\n\t\t\t\t\t\tentry.commentLength = data.view.getUint16(index + 32, true);\n\t\t\t\t\t\tentry.directory = ((data.view.getUint8(index + 38) & 0x10) == 0x10);\n\t\t\t\t\t\tentry.offset = data.view.getUint32(index + 42, true);\n\t\t\t\t\t\tfilename = getString(data.array.subarray(index + 46, index + 46 + entry.filenameLength));\n\t\t\t\t\t\tentry.filename = ((entry.bitFlag & 0x0800) === 0x0800) ? decodeUTF8(filename) : decodeASCII(filename);\n\t\t\t\t\t\tif (!entry.directory && entry.filename.charAt(entry.filename.length - 1) == \"/\")\n\t\t\t\t\t\t\tentry.directory = true;\n\t\t\t\t\t\tcomment = getString(data.array.subarray(index + 46 + entry.filenameLength + entry.extraFieldLength, index + 46\n\t\t\t\t\t\t\t\t+ entry.filenameLength + entry.extraFieldLength + entry.commentLength));\n\t\t\t\t\t\tentry.comment = ((entry.bitFlag & 0x0800) === 0x0800) ? decodeUTF8(comment) : decodeASCII(comment);\n\t\t\t\t\t\tentries.push(entry);\n\t\t\t\t\t\tindex += 46 + entry.filenameLength + entry.extraFieldLength + entry.commentLength;\n\t\t\t\t\t}\n\t\t\t\t\tcallback(entries);\n\t\t\t\t}, function() {\n\t\t\t\t\tonerror(ERR_READ);\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\t\tclose : function(callback) {\n\t\t\tif (this._worker) {\n\t\t\t\tthis._worker.terminate();\n\t\t\t\tthis._worker = null;\n\t\t\t}\n\t\t\tif (callback)\n\t\t\t\tcallback();\n\t\t},\n\t\t_worker: null\n\t};\n\n\tif (!Zip.useWebWorkers)\n\t\tcallback(zipReader);\n\telse {\n\t\tcreateWorker('inflater',\n\t\t\tfunction(worker) {\n\t\t\t\tzipReader._worker = worker;\n\t\t\t\tcallback(zipReader);\n\t\t\t},\n\t\t\tfunction(err) {\n\t\t\t\tonerror(err);\n\t\t\t}\n\t\t);\n\t}\n}\n\n// ZipWriter\n\nfunction encodeUTF8(string) {\n\treturn unescape(encodeURIComponent(string));\n}\n\nfunction getBytes(str) {\n\tvar i, array = [];\n\tfor (i = 0; i < str.length; i++)\n\t\tarray.push(str.charCodeAt(i));\n\treturn array;\n}\n\nfunction createZipWriter(writer, callback, onerror, dontDeflate) {\n\tvar files = {}, filenames = [], datalength = 0;\n\tvar deflateSN = 0;\n\n\tfunction onwriteerror(err) {\n\t\tonerror(err || ERR_WRITE);\n\t}\n\n\tfunction onreaderror(err) {\n\t\tonerror(err || ERR_READ_DATA);\n\t}\n\n\tvar zipWriter = {\n\t\tadd : function(name, reader, onend, onprogress, options) {\n\t\t\tvar header, filename, date;\n\t\t\tvar worker = this._worker;\n\n\t\t\tfunction writeHeader(callback) {\n\t\t\t\tvar data;\n\t\t\t\tdate = options.lastModDate || new Date();\n\t\t\t\theader = getDataHelper(26);\n\t\t\t\tfiles[name] = {\n\t\t\t\t\theaderArray : header.array,\n\t\t\t\t\tdirectory : options.directory,\n\t\t\t\t\tfilename : filename,\n\t\t\t\t\toffset : datalength,\n\t\t\t\t\tcomment : getBytes(encodeUTF8(options.comment || \"\"))\n\t\t\t\t};\n\t\t\t\theader.view.setUint32(0, 0x14000808);\n\t\t\t\tif (options.version)\n\t\t\t\t\theader.view.setUint8(0, options.version);\n\t\t\t\tif (!dontDeflate && options.level !== 0 && !options.directory)\n\t\t\t\t\theader.view.setUint16(4, 0x0800);\n\t\t\t\theader.view.setUint16(6, (((date.getHours() << 6) | date.getMinutes()) << 5) | date.getSeconds() / 2, true);\n\t\t\t\theader.view.setUint16(8, ((((date.getFullYear() - 1980) << 4) | (date.getMonth() + 1)) << 5) | date.getDate(), true);\n\t\t\t\theader.view.setUint16(22, filename.length, true);\n\t\t\t\tdata = getDataHelper(30 + filename.length);\n\t\t\t\tdata.view.setUint32(0, 0x504b0304);\n\t\t\t\tdata.array.set(header.array, 4);\n\t\t\t\tdata.array.set(filename, 30);\n\t\t\t\tdatalength += data.array.length;\n\t\t\t\twriter.writeUint8Array(data.array, callback, onwriteerror);\n\t\t\t}\n\n\t\t\tfunction writeFooter(compressedLength, crc32) {\n\t\t\t\tvar footer = getDataHelper(16);\n\t\t\t\tdatalength += compressedLength || 0;\n\t\t\t\tfooter.view.setUint32(0, 0x504b0708);\n\t\t\t\tif (typeof crc32 != \"undefined\") {\n\t\t\t\t\theader.view.setUint32(10, crc32, true);\n\t\t\t\t\tfooter.view.setUint32(4, crc32, true);\n\t\t\t\t}\n\t\t\t\tif (reader) {\n\t\t\t\t\tfooter.view.setUint32(8, compressedLength, true);\n\t\t\t\t\theader.view.setUint32(14, compressedLength, true);\n\t\t\t\t\tfooter.view.setUint32(12, reader.size, true);\n\t\t\t\t\theader.view.setUint32(18, reader.size, true);\n\t\t\t\t}\n\t\t\t\twriter.writeUint8Array(footer.array, function() {\n\t\t\t\t\tdatalength += 16;\n\t\t\t\t\tonend();\n\t\t\t\t}, onwriteerror);\n\t\t\t}\n\n\t\t\tfunction writeFile() {\n\t\t\t\toptions = options || {};\n\t\t\t\tname = name.trim();\n\t\t\t\tif (options.directory && name.charAt(name.length - 1) != \"/\")\n\t\t\t\t\tname += \"/\";\n\t\t\t\tif (files.hasOwnProperty(name)) {\n\t\t\t\t\tonerror(ERR_DUPLICATED_NAME);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tfilename = getBytes(encodeUTF8(name));\n\t\t\t\tfilenames.push(name);\n\t\t\t\twriteHeader(function() {\n\t\t\t\t\tif (reader)\n\t\t\t\t\t\tif (dontDeflate || options.level === 0)\n\t\t\t\t\t\t\tcopy(worker, deflateSN++, reader, writer, 0, reader.size, true, writeFooter, onprogress, onreaderror, onwriteerror);\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tdeflate(worker, deflateSN++, reader, writer, options.level, writeFooter, onprogress, onreaderror, onwriteerror);\n\t\t\t\t\telse\n\t\t\t\t\t\twriteFooter();\n\t\t\t\t}, onwriteerror);\n\t\t\t}\n\n\t\t\tif (reader)\n\t\t\t\treader.init(writeFile, onreaderror);\n\t\t\telse\n\t\t\t\twriteFile();\n\t\t},\n\t\tclose : function(callback) {\n\t\t\tif (this._worker) {\n\t\t\t\tthis._worker.terminate();\n\t\t\t\tthis._worker = null;\n\t\t\t}\n\n\t\t\tvar data, length = 0, index = 0, indexFilename, file;\n\t\t\tfor (indexFilename = 0; indexFilename < filenames.length; indexFilename++) {\n\t\t\t\tfile = files[filenames[indexFilename]];\n\t\t\t\tlength += 46 + file.filename.length + file.comment.length;\n\t\t\t}\n\t\t\tdata = getDataHelper(length + 22);\n\t\t\tfor (indexFilename = 0; indexFilename < filenames.length; indexFilename++) {\n\t\t\t\tfile = files[filenames[indexFilename]];\n\t\t\t\tdata.view.setUint32(index, 0x504b0102);\n\t\t\t\tdata.view.setUint16(index + 4, 0x1400);\n\t\t\t\tdata.array.set(file.headerArray, index + 6);\n\t\t\t\tdata.view.setUint16(index + 32, file.comment.length, true);\n\t\t\t\tif (file.directory)\n\t\t\t\t\tdata.view.setUint8(index + 38, 0x10);\n\t\t\t\tdata.view.setUint32(index + 42, file.offset, true);\n\t\t\t\tdata.array.set(file.filename, index + 46);\n\t\t\t\tdata.array.set(file.comment, index + 46 + file.filename.length);\n\t\t\t\tindex += 46 + file.filename.length + file.comment.length;\n\t\t\t}\n\t\t\tdata.view.setUint32(index, 0x504b0506);\n\t\t\tdata.view.setUint16(index + 8, filenames.length, true);\n\t\t\tdata.view.setUint16(index + 10, filenames.length, true);\n\t\t\tdata.view.setUint32(index + 12, length, true);\n\t\t\tdata.view.setUint32(index + 16, datalength, true);\n\t\t\twriter.writeUint8Array(data.array, function() {\n\t\t\t\twriter.getData(callback);\n\t\t\t}, onwriteerror);\n\t\t},\n\t\t_worker: null\n\t};\n\n\tif (!Zip.useWebWorkers)\n\t\tcallback(zipWriter);\n\telse {\n\t\tcreateWorker('deflater',\n\t\t\tfunction(worker) {\n\t\t\t\tzipWriter._worker = worker;\n\t\t\t\tcallback(zipWriter);\n\t\t\t},\n\t\t\tfunction(err) {\n\t\t\t\tonerror(err);\n\t\t\t}\n\t\t);\n\t}\n}\n\nfunction resolveURLs(urls) {\n\tvar a = document.createElement('a');\n\treturn urls.map(function(url) {\n\t\ta.href = url;\n\t\treturn a.href;\n\t});\n}\n\nvar DEFAULT_WORKER_SCRIPTS = {\n\tdeflater: ['z-worker.js', 'deflate.js'],\n\tinflater: ['z-worker.js', 'inflate.js']\n};\nfunction createWorker(type, callback, onerror) {\n\tif (Zip.workerScripts !== null && Zip.workerScriptsPath !== null) {\n\t\tonerror(new Error('Either zip.workerScripts or zip.workerScriptsPath may be set, not both.'));\n\t\treturn;\n\t}\n\tvar scripts;\n\tif (Zip.workerScripts) {\n\t\tscripts = Zip.workerScripts[type];\n\t\tif (!Array.isArray(scripts)) {\n\t\t\tonerror(new Error('zip.workerScripts.' + type + ' is not an array!'));\n\t\t\treturn;\n\t\t}\n\t\tscripts = resolveURLs(scripts);\n\t} else {\n\t\tscripts = DEFAULT_WORKER_SCRIPTS[type].slice(0);\n\t\tscripts[0] = (Zip.workerScriptsPath || '') + scripts[0];\n\t}\n\tvar worker = new Worker(scripts[0]);\n\t// record total consumed time by inflater/deflater/crc32 in this worker\n\tworker.codecTime = worker.crcTime = 0;\n\tworker.postMessage({ type: 'importScripts', scripts: scripts.slice(1) });\n\tworker.addEventListener('message', onmessage);\n\tfunction onmessage(ev) {\n\t\tvar msg = ev.data;\n\t\tif (msg.error) {\n\t\t\tworker.terminate(); // should before onerror(), because onerror() may throw.\n\t\t\tonerror(msg.error);\n\t\t\treturn;\n\t\t}\n\t\tif (msg.type === 'importScripts') {\n\t\t\tworker.removeEventListener('message', onmessage);\n\t\t\tworker.removeEventListener('error', errorHandler);\n\t\t\tcallback(worker);\n\t\t}\n\t}\n\t// catch entry script loading error and other unhandled errors\n\tworker.addEventListener('error', errorHandler);\n\tfunction errorHandler(err) {\n\t\tworker.terminate();\n\t\tonerror(err);\n\t}\n}\n\nfunction onerror_default(error) {\n\tconsole.error(error);\n}\nconst Zip = {\n    Reader: Reader,\n    Writer: Writer,\n    BlobReader: BlobReader,\n    Data64URIReader: Data64URIReader,\n    TextReader: TextReader,\n    BlobWriter: BlobWriter,\n    Data64URIWriter: Data64URIWriter,\n    TextWriter: TextWriter,\n    createReader: function (reader, callback, onerror) {\n        onerror = onerror || onerror_default;\n\n        reader.init(function () {\n            createZipReader(reader, callback, onerror);\n        }, onerror);\n    },\n    createWriter: function (writer, callback, onerror, dontDeflate) {\n        onerror = onerror || onerror_default;\n        dontDeflate = !!dontDeflate;\n\n        writer.init(function () {\n            createZipWriter(writer, callback, onerror, dontDeflate);\n        }, onerror);\n    },\n    useWebWorkers: true,\n    /**\n     * Directory containing the default worker scripts (z-worker.js, deflate.js, and inflate.js), relative to current base url.\n     * E.g.: zip.workerScripts = './';\n     */\n    workerScriptsPath: null,\n    /**\n     * Advanced option to control which scripts are loaded in the Web worker. If this option is specified, then workerScriptsPath must not be set.\n     * workerScripts.deflater/workerScripts.inflater should be arrays of urls to scripts for deflater/inflater, respectively.\n     * Scripts in the array are executed in order, and the first one should be z-worker.js, which is used to start the worker.\n     * All urls are relative to current base url.\n     * E.g.:\n     * zip.workerScripts = {\n     *   deflater: ['z-worker.js', 'deflate.js'],\n     *   inflater: ['z-worker.js', 'inflate.js']\n     * };\n     */\n    workerScripts: null,\n};\nexport default Zip;\n"]}