@zip.js/zip.js 2.6.26 → 2.6.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/z-worker-fflate.js +1 -1
- package/dist/z-worker-pako.js +1 -1
- package/dist/z-worker.js +1 -1
- package/dist/zip-fs-full.js +1781 -1731
- package/dist/zip-fs-full.min.js +1 -1
- package/dist/zip-fs.js +623 -573
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-full.js +623 -573
- package/dist/zip-full.min.js +1 -1
- package/dist/zip-no-worker-deflate.min.js +1 -1
- package/dist/zip-no-worker-inflate.min.js +1 -1
- package/dist/zip-no-worker.min.js +1 -1
- package/dist/zip.js +583 -533
- package/dist/zip.min.js +1 -1
- package/index.cjs +10364 -0
- package/index.d.ts +42 -19
- package/lib/core/codec-interface.js +17 -9
- package/lib/core/codec-pool-worker.js +2 -3
- package/lib/core/codec-pool.js +1 -1
- package/lib/core/configuration.js +29 -8
- package/lib/core/io.js +36 -46
- package/lib/core/streams/aes-crypto-stream.js +86 -61
- package/lib/core/streams/codec-stream.js +2 -6
- package/lib/core/streams/common-crypto.js +3 -1
- package/lib/core/streams/zip-crypto-stream.js +12 -15
- package/lib/core/streams/zip-entry-stream.js +41 -57
- package/lib/core/z-worker-core.js +9 -9
- package/lib/core/zip-reader.js +50 -34
- package/lib/core/zip-writer.js +87 -67
- package/lib/z-worker-inline.js +1 -1
- package/package.json +5 -2
- package/rollup-fflate.config.dev.js +5 -2
- package/rollup-fflate.config.js +5 -2
- package/rollup.config.dev.js +5 -2
- package/rollup.config.js +5 -2
- package/tests/all/test-common-js.cjs +31 -0
- package/tests/tests-data.js +1 -0
- package/tests/web-runner.js +4 -1
package/dist/zip-fs-full.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.zip = {}));
|
|
5
5
|
})(this, (function (exports) { 'use strict';
|
|
6
6
|
|
|
7
|
-
const { Array, Object, String, BigInt, Math, Date, Map, URL, Error, Uint8Array, Uint16Array, Uint32Array, DataView, Blob, Promise, TextEncoder, TextDecoder, document, crypto, btoa, TransformStream, ReadableStream, WritableStream, CompressionStream, DecompressionStream, navigator } = globalThis;
|
|
7
|
+
const { Array, Object, String, Number, BigInt, Math, Date, Map, Set, Response, URL, Error, Uint8Array, Uint16Array, Uint32Array, DataView, Blob, Promise, TextEncoder, TextDecoder, document, crypto, btoa, TransformStream, ReadableStream, WritableStream, CompressionStream, DecompressionStream, navigator } = globalThis;
|
|
8
8
|
|
|
9
9
|
/*
|
|
10
10
|
Copyright (c) 2022 Gildas Lormeau. All rights reserved.
|
|
@@ -4257,73 +4257,35 @@
|
|
|
4257
4257
|
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
4258
4258
|
*/
|
|
4259
4259
|
|
|
4260
|
-
|
|
4261
|
-
|
|
4262
|
-
|
|
4263
|
-
|
|
4264
|
-
|
|
4265
|
-
|
|
4266
|
-
|
|
4267
|
-
|
|
4268
|
-
|
|
4269
|
-
|
|
4270
|
-
|
|
4271
|
-
|
|
4272
|
-
const config = Object.assign({}, DEFAULT_CONFIGURATION);
|
|
4273
|
-
|
|
4274
|
-
function getConfiguration() {
|
|
4275
|
-
return config;
|
|
4260
|
+
const table$1 = [];
|
|
4261
|
+
for (let i = 0; i < 256; i++) {
|
|
4262
|
+
let t = i;
|
|
4263
|
+
for (let j = 0; j < 8; j++) {
|
|
4264
|
+
if (t & 1) {
|
|
4265
|
+
t = (t >>> 1) ^ 0xEDB88320;
|
|
4266
|
+
} else {
|
|
4267
|
+
t = t >>> 1;
|
|
4268
|
+
}
|
|
4269
|
+
}
|
|
4270
|
+
table$1[i] = t;
|
|
4276
4271
|
}
|
|
4277
4272
|
|
|
4278
|
-
|
|
4279
|
-
return Math.max(config.chunkSize, MINIMUM_CHUNK_SIZE);
|
|
4280
|
-
}
|
|
4273
|
+
class Crc32 {
|
|
4281
4274
|
|
|
4282
|
-
|
|
4283
|
-
|
|
4284
|
-
|
|
4285
|
-
|
|
4286
|
-
|
|
4287
|
-
|
|
4288
|
-
|
|
4289
|
-
|
|
4290
|
-
Deflate,
|
|
4291
|
-
Inflate,
|
|
4292
|
-
workerScripts
|
|
4293
|
-
} = configuration;
|
|
4294
|
-
setIfDefined("baseURL", baseURL);
|
|
4295
|
-
setIfDefined("chunkSize", chunkSize);
|
|
4296
|
-
setIfDefined("maxWorkers", maxWorkers);
|
|
4297
|
-
setIfDefined("terminateWorkerTimeout", terminateWorkerTimeout);
|
|
4298
|
-
setIfDefined("useCompressionStream", useCompressionStream);
|
|
4299
|
-
setIfDefined("useWebWorkers", useWebWorkers);
|
|
4300
|
-
setIfDefined("Deflate", Deflate);
|
|
4301
|
-
setIfDefined("Inflate", Inflate);
|
|
4302
|
-
if (workerScripts !== UNDEFINED_TYPE$2) {
|
|
4303
|
-
const { deflate, inflate } = workerScripts;
|
|
4304
|
-
if (deflate || inflate) {
|
|
4305
|
-
if (!config.workerScripts) {
|
|
4306
|
-
config.workerScripts = {};
|
|
4307
|
-
}
|
|
4308
|
-
}
|
|
4309
|
-
if (deflate) {
|
|
4310
|
-
if (!Array.isArray(deflate)) {
|
|
4311
|
-
throw new Error("workerScripts.deflate must be an array");
|
|
4312
|
-
}
|
|
4313
|
-
config.workerScripts.deflate = deflate;
|
|
4314
|
-
}
|
|
4315
|
-
if (inflate) {
|
|
4316
|
-
if (!Array.isArray(inflate)) {
|
|
4317
|
-
throw new Error("workerScripts.inflate must be an array");
|
|
4318
|
-
}
|
|
4319
|
-
config.workerScripts.inflate = inflate;
|
|
4275
|
+
constructor(crc) {
|
|
4276
|
+
this.crc = crc || -1;
|
|
4277
|
+
}
|
|
4278
|
+
|
|
4279
|
+
append(data) {
|
|
4280
|
+
let crc = this.crc | 0;
|
|
4281
|
+
for (let offset = 0, length = data.length | 0; offset < length; offset++) {
|
|
4282
|
+
crc = (crc >>> 8) ^ table$1[(crc ^ data[offset]) & 0xFF];
|
|
4320
4283
|
}
|
|
4284
|
+
this.crc = crc;
|
|
4321
4285
|
}
|
|
4322
|
-
}
|
|
4323
4286
|
|
|
4324
|
-
|
|
4325
|
-
|
|
4326
|
-
config[propertyName] = propertyValue;
|
|
4287
|
+
get() {
|
|
4288
|
+
return ~this.crc;
|
|
4327
4289
|
}
|
|
4328
4290
|
}
|
|
4329
4291
|
|
|
@@ -4355,1115 +4317,22 @@
|
|
|
4355
4317
|
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
4356
4318
|
*/
|
|
4357
4319
|
|
|
4358
|
-
|
|
4359
|
-
|
|
4360
|
-
|
|
4361
|
-
|
|
4362
|
-
|
|
4363
|
-
|
|
4364
|
-
|
|
4365
|
-
|
|
4366
|
-
|
|
4367
|
-
|
|
4368
|
-
|
|
4369
|
-
|
|
4370
|
-
|
|
4371
|
-
|
|
4372
|
-
|
|
4373
|
-
|
|
4374
|
-
|
|
4375
|
-
3. The names of the authors may not be used to endorse or promote products
|
|
4376
|
-
derived from this software without specific prior written permission.
|
|
4377
|
-
|
|
4378
|
-
THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
|
|
4379
|
-
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
4380
|
-
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
|
|
4381
|
-
INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
4382
|
-
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
4383
|
-
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
|
4384
|
-
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
4385
|
-
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
4386
|
-
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
4387
|
-
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
4388
|
-
*/
|
|
4389
|
-
|
|
4390
|
-
const table$1 = {
|
|
4391
|
-
"application": {
|
|
4392
|
-
"andrew-inset": "ez",
|
|
4393
|
-
"annodex": "anx",
|
|
4394
|
-
"atom+xml": "atom",
|
|
4395
|
-
"atomcat+xml": "atomcat",
|
|
4396
|
-
"atomserv+xml": "atomsrv",
|
|
4397
|
-
"bbolin": "lin",
|
|
4398
|
-
"cap": ["cap", "pcap"],
|
|
4399
|
-
"cu-seeme": "cu",
|
|
4400
|
-
"davmount+xml": "davmount",
|
|
4401
|
-
"dsptype": "tsp",
|
|
4402
|
-
"ecmascript": ["es", "ecma"],
|
|
4403
|
-
"futuresplash": "spl",
|
|
4404
|
-
"hta": "hta",
|
|
4405
|
-
"java-archive": "jar",
|
|
4406
|
-
"java-serialized-object": "ser",
|
|
4407
|
-
"java-vm": "class",
|
|
4408
|
-
"javascript": "js",
|
|
4409
|
-
"m3g": "m3g",
|
|
4410
|
-
"mac-binhex40": "hqx",
|
|
4411
|
-
"mathematica": ["nb", "ma", "mb"],
|
|
4412
|
-
"msaccess": "mdb",
|
|
4413
|
-
"msword": ["doc", "dot"],
|
|
4414
|
-
"mxf": "mxf",
|
|
4415
|
-
"oda": "oda",
|
|
4416
|
-
"ogg": "ogx",
|
|
4417
|
-
"pdf": "pdf",
|
|
4418
|
-
"pgp-keys": "key",
|
|
4419
|
-
"pgp-signature": ["asc", "sig"],
|
|
4420
|
-
"pics-rules": "prf",
|
|
4421
|
-
"postscript": ["ps", "ai", "eps", "epsi", "epsf", "eps2", "eps3"],
|
|
4422
|
-
"rar": "rar",
|
|
4423
|
-
"rdf+xml": "rdf",
|
|
4424
|
-
"rss+xml": "rss",
|
|
4425
|
-
"rtf": "rtf",
|
|
4426
|
-
"smil": ["smi", "smil"],
|
|
4427
|
-
"xhtml+xml": ["xhtml", "xht"],
|
|
4428
|
-
"xml": ["xml", "xsl", "xsd"],
|
|
4429
|
-
"xspf+xml": "xspf",
|
|
4430
|
-
"zip": "zip",
|
|
4431
|
-
"vnd.android.package-archive": "apk",
|
|
4432
|
-
"vnd.cinderella": "cdy",
|
|
4433
|
-
"vnd.google-earth.kml+xml": "kml",
|
|
4434
|
-
"vnd.google-earth.kmz": "kmz",
|
|
4435
|
-
"vnd.mozilla.xul+xml": "xul",
|
|
4436
|
-
"vnd.ms-excel": ["xls", "xlb", "xlt", "xlm", "xla", "xlc", "xlw"],
|
|
4437
|
-
"vnd.ms-pki.seccat": "cat",
|
|
4438
|
-
"vnd.ms-pki.stl": "stl",
|
|
4439
|
-
"vnd.ms-powerpoint": ["ppt", "pps", "pot"],
|
|
4440
|
-
"vnd.oasis.opendocument.chart": "odc",
|
|
4441
|
-
"vnd.oasis.opendocument.database": "odb",
|
|
4442
|
-
"vnd.oasis.opendocument.formula": "odf",
|
|
4443
|
-
"vnd.oasis.opendocument.graphics": "odg",
|
|
4444
|
-
"vnd.oasis.opendocument.graphics-template": "otg",
|
|
4445
|
-
"vnd.oasis.opendocument.image": "odi",
|
|
4446
|
-
"vnd.oasis.opendocument.presentation": "odp",
|
|
4447
|
-
"vnd.oasis.opendocument.presentation-template": "otp",
|
|
4448
|
-
"vnd.oasis.opendocument.spreadsheet": "ods",
|
|
4449
|
-
"vnd.oasis.opendocument.spreadsheet-template": "ots",
|
|
4450
|
-
"vnd.oasis.opendocument.text": "odt",
|
|
4451
|
-
"vnd.oasis.opendocument.text-master": "odm",
|
|
4452
|
-
"vnd.oasis.opendocument.text-template": "ott",
|
|
4453
|
-
"vnd.oasis.opendocument.text-web": "oth",
|
|
4454
|
-
"vnd.openxmlformats-officedocument.spreadsheetml.sheet": "xlsx",
|
|
4455
|
-
"vnd.openxmlformats-officedocument.spreadsheetml.template": "xltx",
|
|
4456
|
-
"vnd.openxmlformats-officedocument.presentationml.presentation": "pptx",
|
|
4457
|
-
"vnd.openxmlformats-officedocument.presentationml.slideshow": "ppsx",
|
|
4458
|
-
"vnd.openxmlformats-officedocument.presentationml.template": "potx",
|
|
4459
|
-
"vnd.openxmlformats-officedocument.wordprocessingml.document": "docx",
|
|
4460
|
-
"vnd.openxmlformats-officedocument.wordprocessingml.template": "dotx",
|
|
4461
|
-
"vnd.smaf": "mmf",
|
|
4462
|
-
"vnd.stardivision.calc": "sdc",
|
|
4463
|
-
"vnd.stardivision.chart": "sds",
|
|
4464
|
-
"vnd.stardivision.draw": "sda",
|
|
4465
|
-
"vnd.stardivision.impress": "sdd",
|
|
4466
|
-
"vnd.stardivision.math": ["sdf", "smf"],
|
|
4467
|
-
"vnd.stardivision.writer": ["sdw", "vor"],
|
|
4468
|
-
"vnd.stardivision.writer-global": "sgl",
|
|
4469
|
-
"vnd.sun.xml.calc": "sxc",
|
|
4470
|
-
"vnd.sun.xml.calc.template": "stc",
|
|
4471
|
-
"vnd.sun.xml.draw": "sxd",
|
|
4472
|
-
"vnd.sun.xml.draw.template": "std",
|
|
4473
|
-
"vnd.sun.xml.impress": "sxi",
|
|
4474
|
-
"vnd.sun.xml.impress.template": "sti",
|
|
4475
|
-
"vnd.sun.xml.math": "sxm",
|
|
4476
|
-
"vnd.sun.xml.writer": "sxw",
|
|
4477
|
-
"vnd.sun.xml.writer.global": "sxg",
|
|
4478
|
-
"vnd.sun.xml.writer.template": "stw",
|
|
4479
|
-
"vnd.symbian.install": ["sis", "sisx"],
|
|
4480
|
-
"vnd.visio": ["vsd", "vst", "vss", "vsw"],
|
|
4481
|
-
"vnd.wap.wbxml": "wbxml",
|
|
4482
|
-
"vnd.wap.wmlc": "wmlc",
|
|
4483
|
-
"vnd.wap.wmlscriptc": "wmlsc",
|
|
4484
|
-
"vnd.wordperfect": "wpd",
|
|
4485
|
-
"vnd.wordperfect5.1": "wp5",
|
|
4486
|
-
"x-123": "wk",
|
|
4487
|
-
"x-7z-compressed": "7z",
|
|
4488
|
-
"x-abiword": "abw",
|
|
4489
|
-
"x-apple-diskimage": "dmg",
|
|
4490
|
-
"x-bcpio": "bcpio",
|
|
4491
|
-
"x-bittorrent": "torrent",
|
|
4492
|
-
"x-cbr": ["cbr", "cba", "cbt", "cb7"],
|
|
4493
|
-
"x-cbz": "cbz",
|
|
4494
|
-
"x-cdf": ["cdf", "cda"],
|
|
4495
|
-
"x-cdlink": "vcd",
|
|
4496
|
-
"x-chess-pgn": "pgn",
|
|
4497
|
-
"x-cpio": "cpio",
|
|
4498
|
-
"x-csh": "csh",
|
|
4499
|
-
"x-debian-package": ["deb", "udeb"],
|
|
4500
|
-
"x-director": ["dcr", "dir", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"],
|
|
4501
|
-
"x-dms": "dms",
|
|
4502
|
-
"x-doom": "wad",
|
|
4503
|
-
"x-dvi": "dvi",
|
|
4504
|
-
"x-httpd-eruby": "rhtml",
|
|
4505
|
-
"x-font": "pcf.Z",
|
|
4506
|
-
"x-freemind": "mm",
|
|
4507
|
-
"x-gnumeric": "gnumeric",
|
|
4508
|
-
"x-go-sgf": "sgf",
|
|
4509
|
-
"x-graphing-calculator": "gcf",
|
|
4510
|
-
"x-gtar": ["gtar", "taz"],
|
|
4511
|
-
"x-hdf": "hdf",
|
|
4512
|
-
"x-httpd-php": ["phtml", "pht", "php"],
|
|
4513
|
-
"x-httpd-php-source": "phps",
|
|
4514
|
-
"x-httpd-php3": "php3",
|
|
4515
|
-
"x-httpd-php3-preprocessed": "php3p",
|
|
4516
|
-
"x-httpd-php4": "php4",
|
|
4517
|
-
"x-httpd-php5": "php5",
|
|
4518
|
-
"x-ica": "ica",
|
|
4519
|
-
"x-info": "info",
|
|
4520
|
-
"x-internet-signup": ["ins", "isp"],
|
|
4521
|
-
"x-iphone": "iii",
|
|
4522
|
-
"x-iso9660-image": "iso",
|
|
4523
|
-
"x-java-jnlp-file": "jnlp",
|
|
4524
|
-
"x-jmol": "jmz",
|
|
4525
|
-
"x-killustrator": "kil",
|
|
4526
|
-
"x-koan": ["skp", "skd", "skt", "skm"],
|
|
4527
|
-
"x-kpresenter": ["kpr", "kpt"],
|
|
4528
|
-
"x-kword": ["kwd", "kwt"],
|
|
4529
|
-
"x-latex": "latex",
|
|
4530
|
-
"x-lha": "lha",
|
|
4531
|
-
"x-lyx": "lyx",
|
|
4532
|
-
"x-lzh": "lzh",
|
|
4533
|
-
"x-lzx": "lzx",
|
|
4534
|
-
"x-maker": ["frm", "maker", "frame", "fm", "fb", "book", "fbdoc"],
|
|
4535
|
-
"x-ms-wmd": "wmd",
|
|
4536
|
-
"x-ms-wmz": "wmz",
|
|
4537
|
-
"x-msdos-program": ["com", "exe", "bat", "dll"],
|
|
4538
|
-
"x-msi": "msi",
|
|
4539
|
-
"x-netcdf": ["nc", "cdf"],
|
|
4540
|
-
"x-ns-proxy-autoconfig": ["pac", "dat"],
|
|
4541
|
-
"x-nwc": "nwc",
|
|
4542
|
-
"x-object": "o",
|
|
4543
|
-
"x-oz-application": "oza",
|
|
4544
|
-
"x-pkcs7-certreqresp": "p7r",
|
|
4545
|
-
"x-python-code": ["pyc", "pyo"],
|
|
4546
|
-
"x-qgis": ["qgs", "shp", "shx"],
|
|
4547
|
-
"x-quicktimeplayer": "qtl",
|
|
4548
|
-
"x-redhat-package-manager": "rpm",
|
|
4549
|
-
"x-ruby": "rb",
|
|
4550
|
-
"x-sh": "sh",
|
|
4551
|
-
"x-shar": "shar",
|
|
4552
|
-
"x-shockwave-flash": ["swf", "swfl"],
|
|
4553
|
-
"x-silverlight": "scr",
|
|
4554
|
-
"x-stuffit": "sit",
|
|
4555
|
-
"x-sv4cpio": "sv4cpio",
|
|
4556
|
-
"x-sv4crc": "sv4crc",
|
|
4557
|
-
"x-tar": "tar",
|
|
4558
|
-
"x-tcl": "tcl",
|
|
4559
|
-
"x-tex-gf": "gf",
|
|
4560
|
-
"x-tex-pk": "pk",
|
|
4561
|
-
"x-texinfo": ["texinfo", "texi"],
|
|
4562
|
-
"x-trash": ["~", "%", "bak", "old", "sik"],
|
|
4563
|
-
"x-troff": ["t", "tr", "roff"],
|
|
4564
|
-
"x-troff-man": "man",
|
|
4565
|
-
"x-troff-me": "me",
|
|
4566
|
-
"x-troff-ms": "ms",
|
|
4567
|
-
"x-ustar": "ustar",
|
|
4568
|
-
"x-wais-source": "src",
|
|
4569
|
-
"x-wingz": "wz",
|
|
4570
|
-
"x-x509-ca-cert": ["crt", "der", "cer"],
|
|
4571
|
-
"x-xcf": "xcf",
|
|
4572
|
-
"x-xfig": "fig",
|
|
4573
|
-
"x-xpinstall": "xpi",
|
|
4574
|
-
"applixware": "aw",
|
|
4575
|
-
"atomsvc+xml": "atomsvc",
|
|
4576
|
-
"ccxml+xml": "ccxml",
|
|
4577
|
-
"cdmi-capability": "cdmia",
|
|
4578
|
-
"cdmi-container": "cdmic",
|
|
4579
|
-
"cdmi-domain": "cdmid",
|
|
4580
|
-
"cdmi-object": "cdmio",
|
|
4581
|
-
"cdmi-queue": "cdmiq",
|
|
4582
|
-
"docbook+xml": "dbk",
|
|
4583
|
-
"dssc+der": "dssc",
|
|
4584
|
-
"dssc+xml": "xdssc",
|
|
4585
|
-
"emma+xml": "emma",
|
|
4586
|
-
"epub+zip": "epub",
|
|
4587
|
-
"exi": "exi",
|
|
4588
|
-
"font-tdpfr": "pfr",
|
|
4589
|
-
"gml+xml": "gml",
|
|
4590
|
-
"gpx+xml": "gpx",
|
|
4591
|
-
"gxf": "gxf",
|
|
4592
|
-
"hyperstudio": "stk",
|
|
4593
|
-
"inkml+xml": ["ink", "inkml"],
|
|
4594
|
-
"ipfix": "ipfix",
|
|
4595
|
-
"json": "json",
|
|
4596
|
-
"jsonml+json": "jsonml",
|
|
4597
|
-
"lost+xml": "lostxml",
|
|
4598
|
-
"mads+xml": "mads",
|
|
4599
|
-
"marc": "mrc",
|
|
4600
|
-
"marcxml+xml": "mrcx",
|
|
4601
|
-
"mathml+xml": "mathml",
|
|
4602
|
-
"mbox": "mbox",
|
|
4603
|
-
"mediaservercontrol+xml": "mscml",
|
|
4604
|
-
"metalink+xml": "metalink",
|
|
4605
|
-
"metalink4+xml": "meta4",
|
|
4606
|
-
"mets+xml": "mets",
|
|
4607
|
-
"mods+xml": "mods",
|
|
4608
|
-
"mp21": ["m21", "mp21"],
|
|
4609
|
-
"mp4": "mp4s",
|
|
4610
|
-
"oebps-package+xml": "opf",
|
|
4611
|
-
"omdoc+xml": "omdoc",
|
|
4612
|
-
"onenote": ["onetoc", "onetoc2", "onetmp", "onepkg"],
|
|
4613
|
-
"oxps": "oxps",
|
|
4614
|
-
"patch-ops-error+xml": "xer",
|
|
4615
|
-
"pgp-encrypted": "pgp",
|
|
4616
|
-
"pkcs10": "p10",
|
|
4617
|
-
"pkcs7-mime": ["p7m", "p7c"],
|
|
4618
|
-
"pkcs7-signature": "p7s",
|
|
4619
|
-
"pkcs8": "p8",
|
|
4620
|
-
"pkix-attr-cert": "ac",
|
|
4621
|
-
"pkix-crl": "crl",
|
|
4622
|
-
"pkix-pkipath": "pkipath",
|
|
4623
|
-
"pkixcmp": "pki",
|
|
4624
|
-
"pls+xml": "pls",
|
|
4625
|
-
"prs.cww": "cww",
|
|
4626
|
-
"pskc+xml": "pskcxml",
|
|
4627
|
-
"reginfo+xml": "rif",
|
|
4628
|
-
"relax-ng-compact-syntax": "rnc",
|
|
4629
|
-
"resource-lists+xml": "rl",
|
|
4630
|
-
"resource-lists-diff+xml": "rld",
|
|
4631
|
-
"rls-services+xml": "rs",
|
|
4632
|
-
"rpki-ghostbusters": "gbr",
|
|
4633
|
-
"rpki-manifest": "mft",
|
|
4634
|
-
"rpki-roa": "roa",
|
|
4635
|
-
"rsd+xml": "rsd",
|
|
4636
|
-
"sbml+xml": "sbml",
|
|
4637
|
-
"scvp-cv-request": "scq",
|
|
4638
|
-
"scvp-cv-response": "scs",
|
|
4639
|
-
"scvp-vp-request": "spq",
|
|
4640
|
-
"scvp-vp-response": "spp",
|
|
4641
|
-
"sdp": "sdp",
|
|
4642
|
-
"set-payment-initiation": "setpay",
|
|
4643
|
-
"set-registration-initiation": "setreg",
|
|
4644
|
-
"shf+xml": "shf",
|
|
4645
|
-
"sparql-query": "rq",
|
|
4646
|
-
"sparql-results+xml": "srx",
|
|
4647
|
-
"srgs": "gram",
|
|
4648
|
-
"srgs+xml": "grxml",
|
|
4649
|
-
"sru+xml": "sru",
|
|
4650
|
-
"ssdl+xml": "ssdl",
|
|
4651
|
-
"ssml+xml": "ssml",
|
|
4652
|
-
"tei+xml": ["tei", "teicorpus"],
|
|
4653
|
-
"thraud+xml": "tfi",
|
|
4654
|
-
"timestamped-data": "tsd",
|
|
4655
|
-
"vnd.3gpp.pic-bw-large": "plb",
|
|
4656
|
-
"vnd.3gpp.pic-bw-small": "psb",
|
|
4657
|
-
"vnd.3gpp.pic-bw-var": "pvb",
|
|
4658
|
-
"vnd.3gpp2.tcap": "tcap",
|
|
4659
|
-
"vnd.3m.post-it-notes": "pwn",
|
|
4660
|
-
"vnd.accpac.simply.aso": "aso",
|
|
4661
|
-
"vnd.accpac.simply.imp": "imp",
|
|
4662
|
-
"vnd.acucobol": "acu",
|
|
4663
|
-
"vnd.acucorp": ["atc", "acutc"],
|
|
4664
|
-
"vnd.adobe.air-application-installer-package+zip": "air",
|
|
4665
|
-
"vnd.adobe.formscentral.fcdt": "fcdt",
|
|
4666
|
-
"vnd.adobe.fxp": ["fxp", "fxpl"],
|
|
4667
|
-
"vnd.adobe.xdp+xml": "xdp",
|
|
4668
|
-
"vnd.adobe.xfdf": "xfdf",
|
|
4669
|
-
"vnd.ahead.space": "ahead",
|
|
4670
|
-
"vnd.airzip.filesecure.azf": "azf",
|
|
4671
|
-
"vnd.airzip.filesecure.azs": "azs",
|
|
4672
|
-
"vnd.amazon.ebook": "azw",
|
|
4673
|
-
"vnd.americandynamics.acc": "acc",
|
|
4674
|
-
"vnd.amiga.ami": "ami",
|
|
4675
|
-
"vnd.anser-web-certificate-issue-initiation": "cii",
|
|
4676
|
-
"vnd.anser-web-funds-transfer-initiation": "fti",
|
|
4677
|
-
"vnd.antix.game-component": "atx",
|
|
4678
|
-
"vnd.apple.installer+xml": "mpkg",
|
|
4679
|
-
"vnd.apple.mpegurl": "m3u8",
|
|
4680
|
-
"vnd.aristanetworks.swi": "swi",
|
|
4681
|
-
"vnd.astraea-software.iota": "iota",
|
|
4682
|
-
"vnd.audiograph": "aep",
|
|
4683
|
-
"vnd.blueice.multipass": "mpm",
|
|
4684
|
-
"vnd.bmi": "bmi",
|
|
4685
|
-
"vnd.businessobjects": "rep",
|
|
4686
|
-
"vnd.chemdraw+xml": "cdxml",
|
|
4687
|
-
"vnd.chipnuts.karaoke-mmd": "mmd",
|
|
4688
|
-
"vnd.claymore": "cla",
|
|
4689
|
-
"vnd.cloanto.rp9": "rp9",
|
|
4690
|
-
"vnd.clonk.c4group": ["c4g", "c4d", "c4f", "c4p", "c4u"],
|
|
4691
|
-
"vnd.cluetrust.cartomobile-config": "c11amc",
|
|
4692
|
-
"vnd.cluetrust.cartomobile-config-pkg": "c11amz",
|
|
4693
|
-
"vnd.commonspace": "csp",
|
|
4694
|
-
"vnd.contact.cmsg": "cdbcmsg",
|
|
4695
|
-
"vnd.cosmocaller": "cmc",
|
|
4696
|
-
"vnd.crick.clicker": "clkx",
|
|
4697
|
-
"vnd.crick.clicker.keyboard": "clkk",
|
|
4698
|
-
"vnd.crick.clicker.palette": "clkp",
|
|
4699
|
-
"vnd.crick.clicker.template": "clkt",
|
|
4700
|
-
"vnd.crick.clicker.wordbank": "clkw",
|
|
4701
|
-
"vnd.criticaltools.wbs+xml": "wbs",
|
|
4702
|
-
"vnd.ctc-posml": "pml",
|
|
4703
|
-
"vnd.cups-ppd": "ppd",
|
|
4704
|
-
"vnd.curl.car": "car",
|
|
4705
|
-
"vnd.curl.pcurl": "pcurl",
|
|
4706
|
-
"vnd.dart": "dart",
|
|
4707
|
-
"vnd.data-vision.rdz": "rdz",
|
|
4708
|
-
"vnd.dece.data": ["uvf", "uvvf", "uvd", "uvvd"],
|
|
4709
|
-
"vnd.dece.ttml+xml": ["uvt", "uvvt"],
|
|
4710
|
-
"vnd.dece.unspecified": ["uvx", "uvvx"],
|
|
4711
|
-
"vnd.dece.zip": ["uvz", "uvvz"],
|
|
4712
|
-
"vnd.denovo.fcselayout-link": "fe_launch",
|
|
4713
|
-
"vnd.dna": "dna",
|
|
4714
|
-
"vnd.dolby.mlp": "mlp",
|
|
4715
|
-
"vnd.dpgraph": "dpg",
|
|
4716
|
-
"vnd.dreamfactory": "dfac",
|
|
4717
|
-
"vnd.ds-keypoint": "kpxx",
|
|
4718
|
-
"vnd.dvb.ait": "ait",
|
|
4719
|
-
"vnd.dvb.service": "svc",
|
|
4720
|
-
"vnd.dynageo": "geo",
|
|
4721
|
-
"vnd.ecowin.chart": "mag",
|
|
4722
|
-
"vnd.enliven": "nml",
|
|
4723
|
-
"vnd.epson.esf": "esf",
|
|
4724
|
-
"vnd.epson.msf": "msf",
|
|
4725
|
-
"vnd.epson.quickanime": "qam",
|
|
4726
|
-
"vnd.epson.salt": "slt",
|
|
4727
|
-
"vnd.epson.ssf": "ssf",
|
|
4728
|
-
"vnd.eszigno3+xml": ["es3", "et3"],
|
|
4729
|
-
"vnd.ezpix-album": "ez2",
|
|
4730
|
-
"vnd.ezpix-package": "ez3",
|
|
4731
|
-
"vnd.fdf": "fdf",
|
|
4732
|
-
"vnd.fdsn.mseed": "mseed",
|
|
4733
|
-
"vnd.fdsn.seed": ["seed", "dataless"],
|
|
4734
|
-
"vnd.flographit": "gph",
|
|
4735
|
-
"vnd.fluxtime.clip": "ftc",
|
|
4736
|
-
"vnd.framemaker": ["fm", "frame", "maker", "book"],
|
|
4737
|
-
"vnd.frogans.fnc": "fnc",
|
|
4738
|
-
"vnd.frogans.ltf": "ltf",
|
|
4739
|
-
"vnd.fsc.weblaunch": "fsc",
|
|
4740
|
-
"vnd.fujitsu.oasys": "oas",
|
|
4741
|
-
"vnd.fujitsu.oasys2": "oa2",
|
|
4742
|
-
"vnd.fujitsu.oasys3": "oa3",
|
|
4743
|
-
"vnd.fujitsu.oasysgp": "fg5",
|
|
4744
|
-
"vnd.fujitsu.oasysprs": "bh2",
|
|
4745
|
-
"vnd.fujixerox.ddd": "ddd",
|
|
4746
|
-
"vnd.fujixerox.docuworks": "xdw",
|
|
4747
|
-
"vnd.fujixerox.docuworks.binder": "xbd",
|
|
4748
|
-
"vnd.fuzzysheet": "fzs",
|
|
4749
|
-
"vnd.genomatix.tuxedo": "txd",
|
|
4750
|
-
"vnd.geogebra.file": "ggb",
|
|
4751
|
-
"vnd.geogebra.tool": "ggt",
|
|
4752
|
-
"vnd.geometry-explorer": ["gex", "gre"],
|
|
4753
|
-
"vnd.geonext": "gxt",
|
|
4754
|
-
"vnd.geoplan": "g2w",
|
|
4755
|
-
"vnd.geospace": "g3w",
|
|
4756
|
-
"vnd.gmx": "gmx",
|
|
4757
|
-
"vnd.grafeq": ["gqf", "gqs"],
|
|
4758
|
-
"vnd.groove-account": "gac",
|
|
4759
|
-
"vnd.groove-help": "ghf",
|
|
4760
|
-
"vnd.groove-identity-message": "gim",
|
|
4761
|
-
"vnd.groove-injector": "grv",
|
|
4762
|
-
"vnd.groove-tool-message": "gtm",
|
|
4763
|
-
"vnd.groove-tool-template": "tpl",
|
|
4764
|
-
"vnd.groove-vcard": "vcg",
|
|
4765
|
-
"vnd.hal+xml": "hal",
|
|
4766
|
-
"vnd.handheld-entertainment+xml": "zmm",
|
|
4767
|
-
"vnd.hbci": "hbci",
|
|
4768
|
-
"vnd.hhe.lesson-player": "les",
|
|
4769
|
-
"vnd.hp-hpgl": "hpgl",
|
|
4770
|
-
"vnd.hp-hpid": "hpid",
|
|
4771
|
-
"vnd.hp-hps": "hps",
|
|
4772
|
-
"vnd.hp-jlyt": "jlt",
|
|
4773
|
-
"vnd.hp-pcl": "pcl",
|
|
4774
|
-
"vnd.hp-pclxl": "pclxl",
|
|
4775
|
-
"vnd.hydrostatix.sof-data": "sfd-hdstx",
|
|
4776
|
-
"vnd.ibm.minipay": "mpy",
|
|
4777
|
-
"vnd.ibm.modcap": ["afp", "listafp", "list3820"],
|
|
4778
|
-
"vnd.ibm.rights-management": "irm",
|
|
4779
|
-
"vnd.ibm.secure-container": "sc",
|
|
4780
|
-
"vnd.iccprofile": ["icc", "icm"],
|
|
4781
|
-
"vnd.igloader": "igl",
|
|
4782
|
-
"vnd.immervision-ivp": "ivp",
|
|
4783
|
-
"vnd.immervision-ivu": "ivu",
|
|
4784
|
-
"vnd.insors.igm": "igm",
|
|
4785
|
-
"vnd.intercon.formnet": ["xpw", "xpx"],
|
|
4786
|
-
"vnd.intergeo": "i2g",
|
|
4787
|
-
"vnd.intu.qbo": "qbo",
|
|
4788
|
-
"vnd.intu.qfx": "qfx",
|
|
4789
|
-
"vnd.ipunplugged.rcprofile": "rcprofile",
|
|
4790
|
-
"vnd.irepository.package+xml": "irp",
|
|
4791
|
-
"vnd.is-xpr": "xpr",
|
|
4792
|
-
"vnd.isac.fcs": "fcs",
|
|
4793
|
-
"vnd.jam": "jam",
|
|
4794
|
-
"vnd.jcp.javame.midlet-rms": "rms",
|
|
4795
|
-
"vnd.jisp": "jisp",
|
|
4796
|
-
"vnd.joost.joda-archive": "joda",
|
|
4797
|
-
"vnd.kahootz": ["ktz", "ktr"],
|
|
4798
|
-
"vnd.kde.karbon": "karbon",
|
|
4799
|
-
"vnd.kde.kchart": "chrt",
|
|
4800
|
-
"vnd.kde.kformula": "kfo",
|
|
4801
|
-
"vnd.kde.kivio": "flw",
|
|
4802
|
-
"vnd.kde.kontour": "kon",
|
|
4803
|
-
"vnd.kde.kpresenter": ["kpr", "kpt"],
|
|
4804
|
-
"vnd.kde.kspread": "ksp",
|
|
4805
|
-
"vnd.kde.kword": ["kwd", "kwt"],
|
|
4806
|
-
"vnd.kenameaapp": "htke",
|
|
4807
|
-
"vnd.kidspiration": "kia",
|
|
4808
|
-
"vnd.kinar": ["kne", "knp"],
|
|
4809
|
-
"vnd.koan": ["skp", "skd", "skt", "skm"],
|
|
4810
|
-
"vnd.kodak-descriptor": "sse",
|
|
4811
|
-
"vnd.las.las+xml": "lasxml",
|
|
4812
|
-
"vnd.llamagraphics.life-balance.desktop": "lbd",
|
|
4813
|
-
"vnd.llamagraphics.life-balance.exchange+xml": "lbe",
|
|
4814
|
-
"vnd.lotus-1-2-3": "123",
|
|
4815
|
-
"vnd.lotus-approach": "apr",
|
|
4816
|
-
"vnd.lotus-freelance": "pre",
|
|
4817
|
-
"vnd.lotus-notes": "nsf",
|
|
4818
|
-
"vnd.lotus-organizer": "org",
|
|
4819
|
-
"vnd.lotus-screencam": "scm",
|
|
4820
|
-
"vnd.lotus-wordpro": "lwp",
|
|
4821
|
-
"vnd.macports.portpkg": "portpkg",
|
|
4822
|
-
"vnd.mcd": "mcd",
|
|
4823
|
-
"vnd.medcalcdata": "mc1",
|
|
4824
|
-
"vnd.mediastation.cdkey": "cdkey",
|
|
4825
|
-
"vnd.mfer": "mwf",
|
|
4826
|
-
"vnd.mfmp": "mfm",
|
|
4827
|
-
"vnd.micrografx.flo": "flo",
|
|
4828
|
-
"vnd.micrografx.igx": "igx",
|
|
4829
|
-
"vnd.mif": "mif",
|
|
4830
|
-
"vnd.mobius.daf": "daf",
|
|
4831
|
-
"vnd.mobius.dis": "dis",
|
|
4832
|
-
"vnd.mobius.mbk": "mbk",
|
|
4833
|
-
"vnd.mobius.mqy": "mqy",
|
|
4834
|
-
"vnd.mobius.msl": "msl",
|
|
4835
|
-
"vnd.mobius.plc": "plc",
|
|
4836
|
-
"vnd.mobius.txf": "txf",
|
|
4837
|
-
"vnd.mophun.application": "mpn",
|
|
4838
|
-
"vnd.mophun.certificate": "mpc",
|
|
4839
|
-
"vnd.ms-artgalry": "cil",
|
|
4840
|
-
"vnd.ms-cab-compressed": "cab",
|
|
4841
|
-
"vnd.ms-excel.addin.macroenabled.12": "xlam",
|
|
4842
|
-
"vnd.ms-excel.sheet.binary.macroenabled.12": "xlsb",
|
|
4843
|
-
"vnd.ms-excel.sheet.macroenabled.12": "xlsm",
|
|
4844
|
-
"vnd.ms-excel.template.macroenabled.12": "xltm",
|
|
4845
|
-
"vnd.ms-fontobject": "eot",
|
|
4846
|
-
"vnd.ms-htmlhelp": "chm",
|
|
4847
|
-
"vnd.ms-ims": "ims",
|
|
4848
|
-
"vnd.ms-lrm": "lrm",
|
|
4849
|
-
"vnd.ms-officetheme": "thmx",
|
|
4850
|
-
"vnd.ms-powerpoint.addin.macroenabled.12": "ppam",
|
|
4851
|
-
"vnd.ms-powerpoint.presentation.macroenabled.12": "pptm",
|
|
4852
|
-
"vnd.ms-powerpoint.slide.macroenabled.12": "sldm",
|
|
4853
|
-
"vnd.ms-powerpoint.slideshow.macroenabled.12": "ppsm",
|
|
4854
|
-
"vnd.ms-powerpoint.template.macroenabled.12": "potm",
|
|
4855
|
-
"vnd.ms-project": ["mpp", "mpt"],
|
|
4856
|
-
"vnd.ms-word.document.macroenabled.12": "docm",
|
|
4857
|
-
"vnd.ms-word.template.macroenabled.12": "dotm",
|
|
4858
|
-
"vnd.ms-works": ["wps", "wks", "wcm", "wdb"],
|
|
4859
|
-
"vnd.ms-wpl": "wpl",
|
|
4860
|
-
"vnd.ms-xpsdocument": "xps",
|
|
4861
|
-
"vnd.mseq": "mseq",
|
|
4862
|
-
"vnd.musician": "mus",
|
|
4863
|
-
"vnd.muvee.style": "msty",
|
|
4864
|
-
"vnd.mynfc": "taglet",
|
|
4865
|
-
"vnd.neurolanguage.nlu": "nlu",
|
|
4866
|
-
"vnd.nitf": ["ntf", "nitf"],
|
|
4867
|
-
"vnd.noblenet-directory": "nnd",
|
|
4868
|
-
"vnd.noblenet-sealer": "nns",
|
|
4869
|
-
"vnd.noblenet-web": "nnw",
|
|
4870
|
-
"vnd.nokia.n-gage.data": "ngdat",
|
|
4871
|
-
"vnd.nokia.n-gage.symbian.install": "n-gage",
|
|
4872
|
-
"vnd.nokia.radio-preset": "rpst",
|
|
4873
|
-
"vnd.nokia.radio-presets": "rpss",
|
|
4874
|
-
"vnd.novadigm.edm": "edm",
|
|
4875
|
-
"vnd.novadigm.edx": "edx",
|
|
4876
|
-
"vnd.novadigm.ext": "ext",
|
|
4877
|
-
"vnd.oasis.opendocument.chart-template": "otc",
|
|
4878
|
-
"vnd.oasis.opendocument.formula-template": "odft",
|
|
4879
|
-
"vnd.oasis.opendocument.image-template": "oti",
|
|
4880
|
-
"vnd.olpc-sugar": "xo",
|
|
4881
|
-
"vnd.oma.dd2+xml": "dd2",
|
|
4882
|
-
"vnd.openofficeorg.extension": "oxt",
|
|
4883
|
-
"vnd.openxmlformats-officedocument.presentationml.slide": "sldx",
|
|
4884
|
-
"vnd.osgeo.mapguide.package": "mgp",
|
|
4885
|
-
"vnd.osgi.dp": "dp",
|
|
4886
|
-
"vnd.osgi.subsystem": "esa",
|
|
4887
|
-
"vnd.palm": ["pdb", "pqa", "oprc"],
|
|
4888
|
-
"vnd.pawaafile": "paw",
|
|
4889
|
-
"vnd.pg.format": "str",
|
|
4890
|
-
"vnd.pg.osasli": "ei6",
|
|
4891
|
-
"vnd.picsel": "efif",
|
|
4892
|
-
"vnd.pmi.widget": "wg",
|
|
4893
|
-
"vnd.pocketlearn": "plf",
|
|
4894
|
-
"vnd.powerbuilder6": "pbd",
|
|
4895
|
-
"vnd.previewsystems.box": "box",
|
|
4896
|
-
"vnd.proteus.magazine": "mgz",
|
|
4897
|
-
"vnd.publishare-delta-tree": "qps",
|
|
4898
|
-
"vnd.pvi.ptid1": "ptid",
|
|
4899
|
-
"vnd.quark.quarkxpress": ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"],
|
|
4900
|
-
"vnd.realvnc.bed": "bed",
|
|
4901
|
-
"vnd.recordare.musicxml": "mxl",
|
|
4902
|
-
"vnd.recordare.musicxml+xml": "musicxml",
|
|
4903
|
-
"vnd.rig.cryptonote": "cryptonote",
|
|
4904
|
-
"vnd.rn-realmedia": "rm",
|
|
4905
|
-
"vnd.rn-realmedia-vbr": "rmvb",
|
|
4906
|
-
"vnd.route66.link66+xml": "link66",
|
|
4907
|
-
"vnd.sailingtracker.track": "st",
|
|
4908
|
-
"vnd.seemail": "see",
|
|
4909
|
-
"vnd.sema": "sema",
|
|
4910
|
-
"vnd.semd": "semd",
|
|
4911
|
-
"vnd.semf": "semf",
|
|
4912
|
-
"vnd.shana.informed.formdata": "ifm",
|
|
4913
|
-
"vnd.shana.informed.formtemplate": "itp",
|
|
4914
|
-
"vnd.shana.informed.interchange": "iif",
|
|
4915
|
-
"vnd.shana.informed.package": "ipk",
|
|
4916
|
-
"vnd.simtech-mindmapper": ["twd", "twds"],
|
|
4917
|
-
"vnd.smart.teacher": "teacher",
|
|
4918
|
-
"vnd.solent.sdkm+xml": ["sdkm", "sdkd"],
|
|
4919
|
-
"vnd.spotfire.dxp": "dxp",
|
|
4920
|
-
"vnd.spotfire.sfs": "sfs",
|
|
4921
|
-
"vnd.stepmania.package": "smzip",
|
|
4922
|
-
"vnd.stepmania.stepchart": "sm",
|
|
4923
|
-
"vnd.sus-calendar": ["sus", "susp"],
|
|
4924
|
-
"vnd.svd": "svd",
|
|
4925
|
-
"vnd.syncml+xml": "xsm",
|
|
4926
|
-
"vnd.syncml.dm+wbxml": "bdm",
|
|
4927
|
-
"vnd.syncml.dm+xml": "xdm",
|
|
4928
|
-
"vnd.tao.intent-module-archive": "tao",
|
|
4929
|
-
"vnd.tcpdump.pcap": ["pcap", "cap", "dmp"],
|
|
4930
|
-
"vnd.tmobile-livetv": "tmo",
|
|
4931
|
-
"vnd.trid.tpt": "tpt",
|
|
4932
|
-
"vnd.triscape.mxs": "mxs",
|
|
4933
|
-
"vnd.trueapp": "tra",
|
|
4934
|
-
"vnd.ufdl": ["ufd", "ufdl"],
|
|
4935
|
-
"vnd.uiq.theme": "utz",
|
|
4936
|
-
"vnd.umajin": "umj",
|
|
4937
|
-
"vnd.unity": "unityweb",
|
|
4938
|
-
"vnd.uoml+xml": "uoml",
|
|
4939
|
-
"vnd.vcx": "vcx",
|
|
4940
|
-
"vnd.visionary": "vis",
|
|
4941
|
-
"vnd.vsf": "vsf",
|
|
4942
|
-
"vnd.webturbo": "wtb",
|
|
4943
|
-
"vnd.wolfram.player": "nbp",
|
|
4944
|
-
"vnd.wqd": "wqd",
|
|
4945
|
-
"vnd.wt.stf": "stf",
|
|
4946
|
-
"vnd.xara": "xar",
|
|
4947
|
-
"vnd.xfdl": "xfdl",
|
|
4948
|
-
"vnd.yamaha.hv-dic": "hvd",
|
|
4949
|
-
"vnd.yamaha.hv-script": "hvs",
|
|
4950
|
-
"vnd.yamaha.hv-voice": "hvp",
|
|
4951
|
-
"vnd.yamaha.openscoreformat": "osf",
|
|
4952
|
-
"vnd.yamaha.openscoreformat.osfpvg+xml": "osfpvg",
|
|
4953
|
-
"vnd.yamaha.smaf-audio": "saf",
|
|
4954
|
-
"vnd.yamaha.smaf-phrase": "spf",
|
|
4955
|
-
"vnd.yellowriver-custom-menu": "cmp",
|
|
4956
|
-
"vnd.zul": ["zir", "zirz"],
|
|
4957
|
-
"vnd.zzazz.deck+xml": "zaz",
|
|
4958
|
-
"voicexml+xml": "vxml",
|
|
4959
|
-
"widget": "wgt",
|
|
4960
|
-
"winhlp": "hlp",
|
|
4961
|
-
"wsdl+xml": "wsdl",
|
|
4962
|
-
"wspolicy+xml": "wspolicy",
|
|
4963
|
-
"x-ace-compressed": "ace",
|
|
4964
|
-
"x-authorware-bin": ["aab", "x32", "u32", "vox"],
|
|
4965
|
-
"x-authorware-map": "aam",
|
|
4966
|
-
"x-authorware-seg": "aas",
|
|
4967
|
-
"x-blorb": ["blb", "blorb"],
|
|
4968
|
-
"x-bzip": "bz",
|
|
4969
|
-
"x-bzip2": ["bz2", "boz"],
|
|
4970
|
-
"x-cfs-compressed": "cfs",
|
|
4971
|
-
"x-chat": "chat",
|
|
4972
|
-
"x-conference": "nsc",
|
|
4973
|
-
"x-dgc-compressed": "dgc",
|
|
4974
|
-
"x-dtbncx+xml": "ncx",
|
|
4975
|
-
"x-dtbook+xml": "dtb",
|
|
4976
|
-
"x-dtbresource+xml": "res",
|
|
4977
|
-
"x-eva": "eva",
|
|
4978
|
-
"x-font-bdf": "bdf",
|
|
4979
|
-
"x-font-ghostscript": "gsf",
|
|
4980
|
-
"x-font-linux-psf": "psf",
|
|
4981
|
-
"x-font-otf": "otf",
|
|
4982
|
-
"x-font-pcf": "pcf",
|
|
4983
|
-
"x-font-snf": "snf",
|
|
4984
|
-
"x-font-ttf": ["ttf", "ttc"],
|
|
4985
|
-
"x-font-type1": ["pfa", "pfb", "pfm", "afm"],
|
|
4986
|
-
"x-font-woff": "woff",
|
|
4987
|
-
"x-freearc": "arc",
|
|
4988
|
-
"x-gca-compressed": "gca",
|
|
4989
|
-
"x-glulx": "ulx",
|
|
4990
|
-
"x-gramps-xml": "gramps",
|
|
4991
|
-
"x-install-instructions": "install",
|
|
4992
|
-
"x-lzh-compressed": ["lzh", "lha"],
|
|
4993
|
-
"x-mie": "mie",
|
|
4994
|
-
"x-mobipocket-ebook": ["prc", "mobi"],
|
|
4995
|
-
"x-ms-application": "application",
|
|
4996
|
-
"x-ms-shortcut": "lnk",
|
|
4997
|
-
"x-ms-xbap": "xbap",
|
|
4998
|
-
"x-msbinder": "obd",
|
|
4999
|
-
"x-mscardfile": "crd",
|
|
5000
|
-
"x-msclip": "clp",
|
|
5001
|
-
"x-msdownload": ["exe", "dll", "com", "bat", "msi"],
|
|
5002
|
-
"x-msmediaview": ["mvb", "m13", "m14"],
|
|
5003
|
-
"x-msmetafile": ["wmf", "wmz", "emf", "emz"],
|
|
5004
|
-
"x-msmoney": "mny",
|
|
5005
|
-
"x-mspublisher": "pub",
|
|
5006
|
-
"x-msschedule": "scd",
|
|
5007
|
-
"x-msterminal": "trm",
|
|
5008
|
-
"x-mswrite": "wri",
|
|
5009
|
-
"x-nzb": "nzb",
|
|
5010
|
-
"x-pkcs12": ["p12", "pfx"],
|
|
5011
|
-
"x-pkcs7-certificates": ["p7b", "spc"],
|
|
5012
|
-
"x-research-info-systems": "ris",
|
|
5013
|
-
"x-silverlight-app": "xap",
|
|
5014
|
-
"x-sql": "sql",
|
|
5015
|
-
"x-stuffitx": "sitx",
|
|
5016
|
-
"x-subrip": "srt",
|
|
5017
|
-
"x-t3vm-image": "t3",
|
|
5018
|
-
"x-tads": "gam",
|
|
5019
|
-
"x-tex": "tex",
|
|
5020
|
-
"x-tex-tfm": "tfm",
|
|
5021
|
-
"x-tgif": "obj",
|
|
5022
|
-
"x-xliff+xml": "xlf",
|
|
5023
|
-
"x-xz": "xz",
|
|
5024
|
-
"x-zmachine": ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"],
|
|
5025
|
-
"xaml+xml": "xaml",
|
|
5026
|
-
"xcap-diff+xml": "xdf",
|
|
5027
|
-
"xenc+xml": "xenc",
|
|
5028
|
-
"xml-dtd": "dtd",
|
|
5029
|
-
"xop+xml": "xop",
|
|
5030
|
-
"xproc+xml": "xpl",
|
|
5031
|
-
"xslt+xml": "xslt",
|
|
5032
|
-
"xv+xml": ["mxml", "xhvml", "xvml", "xvm"],
|
|
5033
|
-
"yang": "yang",
|
|
5034
|
-
"yin+xml": "yin",
|
|
5035
|
-
"envoy": "evy",
|
|
5036
|
-
"fractals": "fif",
|
|
5037
|
-
"internet-property-stream": "acx",
|
|
5038
|
-
"olescript": "axs",
|
|
5039
|
-
"vnd.ms-outlook": "msg",
|
|
5040
|
-
"vnd.ms-pkicertstore": "sst",
|
|
5041
|
-
"x-compress": "z",
|
|
5042
|
-
"x-compressed": "tgz",
|
|
5043
|
-
"x-gzip": "gz",
|
|
5044
|
-
"x-perfmon": ["pma", "pmc", "pml", "pmr", "pmw"],
|
|
5045
|
-
"x-pkcs7-mime": ["p7c", "p7m"],
|
|
5046
|
-
"ynd.ms-pkipko": "pko"
|
|
5047
|
-
},
|
|
5048
|
-
"audio": {
|
|
5049
|
-
"amr": "amr",
|
|
5050
|
-
"amr-wb": "awb",
|
|
5051
|
-
"annodex": "axa",
|
|
5052
|
-
"basic": ["au", "snd"],
|
|
5053
|
-
"flac": "flac",
|
|
5054
|
-
"midi": ["mid", "midi", "kar", "rmi"],
|
|
5055
|
-
"mpeg": ["mpga", "mpega", "mp2", "mp3", "m4a", "mp2a", "m2a", "m3a"],
|
|
5056
|
-
"mpegurl": "m3u",
|
|
5057
|
-
"ogg": ["oga", "ogg", "spx"],
|
|
5058
|
-
"prs.sid": "sid",
|
|
5059
|
-
"x-aiff": ["aif", "aiff", "aifc"],
|
|
5060
|
-
"x-gsm": "gsm",
|
|
5061
|
-
"x-ms-wma": "wma",
|
|
5062
|
-
"x-ms-wax": "wax",
|
|
5063
|
-
"x-pn-realaudio": "ram",
|
|
5064
|
-
"x-realaudio": "ra",
|
|
5065
|
-
"x-sd2": "sd2",
|
|
5066
|
-
"x-wav": "wav",
|
|
5067
|
-
"adpcm": "adp",
|
|
5068
|
-
"mp4": "mp4a",
|
|
5069
|
-
"s3m": "s3m",
|
|
5070
|
-
"silk": "sil",
|
|
5071
|
-
"vnd.dece.audio": ["uva", "uvva"],
|
|
5072
|
-
"vnd.digital-winds": "eol",
|
|
5073
|
-
"vnd.dra": "dra",
|
|
5074
|
-
"vnd.dts": "dts",
|
|
5075
|
-
"vnd.dts.hd": "dtshd",
|
|
5076
|
-
"vnd.lucent.voice": "lvp",
|
|
5077
|
-
"vnd.ms-playready.media.pya": "pya",
|
|
5078
|
-
"vnd.nuera.ecelp4800": "ecelp4800",
|
|
5079
|
-
"vnd.nuera.ecelp7470": "ecelp7470",
|
|
5080
|
-
"vnd.nuera.ecelp9600": "ecelp9600",
|
|
5081
|
-
"vnd.rip": "rip",
|
|
5082
|
-
"webm": "weba",
|
|
5083
|
-
"x-aac": "aac",
|
|
5084
|
-
"x-caf": "caf",
|
|
5085
|
-
"x-matroska": "mka",
|
|
5086
|
-
"x-pn-realaudio-plugin": "rmp",
|
|
5087
|
-
"xm": "xm",
|
|
5088
|
-
"mid": ["mid", "rmi"]
|
|
5089
|
-
},
|
|
5090
|
-
"chemical": {
|
|
5091
|
-
"x-alchemy": "alc",
|
|
5092
|
-
"x-cache": ["cac", "cache"],
|
|
5093
|
-
"x-cache-csf": "csf",
|
|
5094
|
-
"x-cactvs-binary": ["cbin", "cascii", "ctab"],
|
|
5095
|
-
"x-cdx": "cdx",
|
|
5096
|
-
"x-chem3d": "c3d",
|
|
5097
|
-
"x-cif": "cif",
|
|
5098
|
-
"x-cmdf": "cmdf",
|
|
5099
|
-
"x-cml": "cml",
|
|
5100
|
-
"x-compass": "cpa",
|
|
5101
|
-
"x-crossfire": "bsd",
|
|
5102
|
-
"x-csml": ["csml", "csm"],
|
|
5103
|
-
"x-ctx": "ctx",
|
|
5104
|
-
"x-cxf": ["cxf", "cef"],
|
|
5105
|
-
"x-embl-dl-nucleotide": ["emb", "embl"],
|
|
5106
|
-
"x-gamess-input": ["inp", "gam", "gamin"],
|
|
5107
|
-
"x-gaussian-checkpoint": ["fch", "fchk"],
|
|
5108
|
-
"x-gaussian-cube": "cub",
|
|
5109
|
-
"x-gaussian-input": ["gau", "gjc", "gjf"],
|
|
5110
|
-
"x-gaussian-log": "gal",
|
|
5111
|
-
"x-gcg8-sequence": "gcg",
|
|
5112
|
-
"x-genbank": "gen",
|
|
5113
|
-
"x-hin": "hin",
|
|
5114
|
-
"x-isostar": ["istr", "ist"],
|
|
5115
|
-
"x-jcamp-dx": ["jdx", "dx"],
|
|
5116
|
-
"x-kinemage": "kin",
|
|
5117
|
-
"x-macmolecule": "mcm",
|
|
5118
|
-
"x-macromodel-input": ["mmd", "mmod"],
|
|
5119
|
-
"x-mdl-molfile": "mol",
|
|
5120
|
-
"x-mdl-rdfile": "rd",
|
|
5121
|
-
"x-mdl-rxnfile": "rxn",
|
|
5122
|
-
"x-mdl-sdfile": ["sd", "sdf"],
|
|
5123
|
-
"x-mdl-tgf": "tgf",
|
|
5124
|
-
"x-mmcif": "mcif",
|
|
5125
|
-
"x-mol2": "mol2",
|
|
5126
|
-
"x-molconn-Z": "b",
|
|
5127
|
-
"x-mopac-graph": "gpt",
|
|
5128
|
-
"x-mopac-input": ["mop", "mopcrt", "mpc", "zmt"],
|
|
5129
|
-
"x-mopac-out": "moo",
|
|
5130
|
-
"x-ncbi-asn1": "asn",
|
|
5131
|
-
"x-ncbi-asn1-ascii": ["prt", "ent"],
|
|
5132
|
-
"x-ncbi-asn1-binary": ["val", "aso"],
|
|
5133
|
-
"x-pdb": ["pdb", "ent"],
|
|
5134
|
-
"x-rosdal": "ros",
|
|
5135
|
-
"x-swissprot": "sw",
|
|
5136
|
-
"x-vamas-iso14976": "vms",
|
|
5137
|
-
"x-vmd": "vmd",
|
|
5138
|
-
"x-xtel": "xtel",
|
|
5139
|
-
"x-xyz": "xyz"
|
|
5140
|
-
},
|
|
5141
|
-
"image": {
|
|
5142
|
-
"gif": "gif",
|
|
5143
|
-
"ief": "ief",
|
|
5144
|
-
"jpeg": ["jpeg", "jpg", "jpe"],
|
|
5145
|
-
"pcx": "pcx",
|
|
5146
|
-
"png": "png",
|
|
5147
|
-
"svg+xml": ["svg", "svgz"],
|
|
5148
|
-
"tiff": ["tiff", "tif"],
|
|
5149
|
-
"vnd.djvu": ["djvu", "djv"],
|
|
5150
|
-
"vnd.wap.wbmp": "wbmp",
|
|
5151
|
-
"x-canon-cr2": "cr2",
|
|
5152
|
-
"x-canon-crw": "crw",
|
|
5153
|
-
"x-cmu-raster": "ras",
|
|
5154
|
-
"x-coreldraw": "cdr",
|
|
5155
|
-
"x-coreldrawpattern": "pat",
|
|
5156
|
-
"x-coreldrawtemplate": "cdt",
|
|
5157
|
-
"x-corelphotopaint": "cpt",
|
|
5158
|
-
"x-epson-erf": "erf",
|
|
5159
|
-
"x-icon": "ico",
|
|
5160
|
-
"x-jg": "art",
|
|
5161
|
-
"x-jng": "jng",
|
|
5162
|
-
"x-nikon-nef": "nef",
|
|
5163
|
-
"x-olympus-orf": "orf",
|
|
5164
|
-
"x-photoshop": "psd",
|
|
5165
|
-
"x-portable-anymap": "pnm",
|
|
5166
|
-
"x-portable-bitmap": "pbm",
|
|
5167
|
-
"x-portable-graymap": "pgm",
|
|
5168
|
-
"x-portable-pixmap": "ppm",
|
|
5169
|
-
"x-rgb": "rgb",
|
|
5170
|
-
"x-xbitmap": "xbm",
|
|
5171
|
-
"x-xpixmap": "xpm",
|
|
5172
|
-
"x-xwindowdump": "xwd",
|
|
5173
|
-
"bmp": "bmp",
|
|
5174
|
-
"cgm": "cgm",
|
|
5175
|
-
"g3fax": "g3",
|
|
5176
|
-
"ktx": "ktx",
|
|
5177
|
-
"prs.btif": "btif",
|
|
5178
|
-
"sgi": "sgi",
|
|
5179
|
-
"vnd.dece.graphic": ["uvi", "uvvi", "uvg", "uvvg"],
|
|
5180
|
-
"vnd.dwg": "dwg",
|
|
5181
|
-
"vnd.dxf": "dxf",
|
|
5182
|
-
"vnd.fastbidsheet": "fbs",
|
|
5183
|
-
"vnd.fpx": "fpx",
|
|
5184
|
-
"vnd.fst": "fst",
|
|
5185
|
-
"vnd.fujixerox.edmics-mmr": "mmr",
|
|
5186
|
-
"vnd.fujixerox.edmics-rlc": "rlc",
|
|
5187
|
-
"vnd.ms-modi": "mdi",
|
|
5188
|
-
"vnd.ms-photo": "wdp",
|
|
5189
|
-
"vnd.net-fpx": "npx",
|
|
5190
|
-
"vnd.xiff": "xif",
|
|
5191
|
-
"webp": "webp",
|
|
5192
|
-
"x-3ds": "3ds",
|
|
5193
|
-
"x-cmx": "cmx",
|
|
5194
|
-
"x-freehand": ["fh", "fhc", "fh4", "fh5", "fh7"],
|
|
5195
|
-
"x-pict": ["pic", "pct"],
|
|
5196
|
-
"x-tga": "tga",
|
|
5197
|
-
"cis-cod": "cod",
|
|
5198
|
-
"pipeg": "jfif"
|
|
5199
|
-
},
|
|
5200
|
-
"message": {
|
|
5201
|
-
"rfc822": ["eml", "mime", "mht", "mhtml", "nws"]
|
|
5202
|
-
},
|
|
5203
|
-
"model": {
|
|
5204
|
-
"iges": ["igs", "iges"],
|
|
5205
|
-
"mesh": ["msh", "mesh", "silo"],
|
|
5206
|
-
"vrml": ["wrl", "vrml"],
|
|
5207
|
-
"x3d+vrml": ["x3dv", "x3dvz"],
|
|
5208
|
-
"x3d+xml": ["x3d", "x3dz"],
|
|
5209
|
-
"x3d+binary": ["x3db", "x3dbz"],
|
|
5210
|
-
"vnd.collada+xml": "dae",
|
|
5211
|
-
"vnd.dwf": "dwf",
|
|
5212
|
-
"vnd.gdl": "gdl",
|
|
5213
|
-
"vnd.gtw": "gtw",
|
|
5214
|
-
"vnd.mts": "mts",
|
|
5215
|
-
"vnd.vtu": "vtu"
|
|
5216
|
-
},
|
|
5217
|
-
"text": {
|
|
5218
|
-
"cache-manifest": ["manifest", "appcache"],
|
|
5219
|
-
"calendar": ["ics", "icz", "ifb"],
|
|
5220
|
-
"css": "css",
|
|
5221
|
-
"csv": "csv",
|
|
5222
|
-
"h323": "323",
|
|
5223
|
-
"html": ["html", "htm", "shtml", "stm"],
|
|
5224
|
-
"iuls": "uls",
|
|
5225
|
-
"mathml": "mml",
|
|
5226
|
-
"plain": ["txt", "text", "brf", "conf", "def", "list", "log", "in", "bas"],
|
|
5227
|
-
"richtext": "rtx",
|
|
5228
|
-
"scriptlet": ["sct", "wsc"],
|
|
5229
|
-
"texmacs": ["tm", "ts"],
|
|
5230
|
-
"tab-separated-values": "tsv",
|
|
5231
|
-
"vnd.sun.j2me.app-descriptor": "jad",
|
|
5232
|
-
"vnd.wap.wml": "wml",
|
|
5233
|
-
"vnd.wap.wmlscript": "wmls",
|
|
5234
|
-
"x-bibtex": "bib",
|
|
5235
|
-
"x-boo": "boo",
|
|
5236
|
-
"x-c++hdr": ["h++", "hpp", "hxx", "hh"],
|
|
5237
|
-
"x-c++src": ["c++", "cpp", "cxx", "cc"],
|
|
5238
|
-
"x-component": "htc",
|
|
5239
|
-
"x-dsrc": "d",
|
|
5240
|
-
"x-diff": ["diff", "patch"],
|
|
5241
|
-
"x-haskell": "hs",
|
|
5242
|
-
"x-java": "java",
|
|
5243
|
-
"x-literate-haskell": "lhs",
|
|
5244
|
-
"x-moc": "moc",
|
|
5245
|
-
"x-pascal": ["p", "pas"],
|
|
5246
|
-
"x-pcs-gcd": "gcd",
|
|
5247
|
-
"x-perl": ["pl", "pm"],
|
|
5248
|
-
"x-python": "py",
|
|
5249
|
-
"x-scala": "scala",
|
|
5250
|
-
"x-setext": "etx",
|
|
5251
|
-
"x-tcl": ["tcl", "tk"],
|
|
5252
|
-
"x-tex": ["tex", "ltx", "sty", "cls"],
|
|
5253
|
-
"x-vcalendar": "vcs",
|
|
5254
|
-
"x-vcard": "vcf",
|
|
5255
|
-
"n3": "n3",
|
|
5256
|
-
"prs.lines.tag": "dsc",
|
|
5257
|
-
"sgml": ["sgml", "sgm"],
|
|
5258
|
-
"troff": ["t", "tr", "roff", "man", "me", "ms"],
|
|
5259
|
-
"turtle": "ttl",
|
|
5260
|
-
"uri-list": ["uri", "uris", "urls"],
|
|
5261
|
-
"vcard": "vcard",
|
|
5262
|
-
"vnd.curl": "curl",
|
|
5263
|
-
"vnd.curl.dcurl": "dcurl",
|
|
5264
|
-
"vnd.curl.scurl": "scurl",
|
|
5265
|
-
"vnd.curl.mcurl": "mcurl",
|
|
5266
|
-
"vnd.dvb.subtitle": "sub",
|
|
5267
|
-
"vnd.fly": "fly",
|
|
5268
|
-
"vnd.fmi.flexstor": "flx",
|
|
5269
|
-
"vnd.graphviz": "gv",
|
|
5270
|
-
"vnd.in3d.3dml": "3dml",
|
|
5271
|
-
"vnd.in3d.spot": "spot",
|
|
5272
|
-
"x-asm": ["s", "asm"],
|
|
5273
|
-
"x-c": ["c", "cc", "cxx", "cpp", "h", "hh", "dic"],
|
|
5274
|
-
"x-fortran": ["f", "for", "f77", "f90"],
|
|
5275
|
-
"x-opml": "opml",
|
|
5276
|
-
"x-nfo": "nfo",
|
|
5277
|
-
"x-sfv": "sfv",
|
|
5278
|
-
"x-uuencode": "uu",
|
|
5279
|
-
"webviewhtml": "htt"
|
|
5280
|
-
},
|
|
5281
|
-
"video": {
|
|
5282
|
-
"avif": ".avif",
|
|
5283
|
-
"3gpp": "3gp",
|
|
5284
|
-
"annodex": "axv",
|
|
5285
|
-
"dl": "dl",
|
|
5286
|
-
"dv": ["dif", "dv"],
|
|
5287
|
-
"fli": "fli",
|
|
5288
|
-
"gl": "gl",
|
|
5289
|
-
"mpeg": ["mpeg", "mpg", "mpe", "m1v", "m2v", "mp2", "mpa", "mpv2"],
|
|
5290
|
-
"mp4": ["mp4", "mp4v", "mpg4"],
|
|
5291
|
-
"quicktime": ["qt", "mov"],
|
|
5292
|
-
"ogg": "ogv",
|
|
5293
|
-
"vnd.mpegurl": ["mxu", "m4u"],
|
|
5294
|
-
"x-flv": "flv",
|
|
5295
|
-
"x-la-asf": ["lsf", "lsx"],
|
|
5296
|
-
"x-mng": "mng",
|
|
5297
|
-
"x-ms-asf": ["asf", "asx", "asr"],
|
|
5298
|
-
"x-ms-wm": "wm",
|
|
5299
|
-
"x-ms-wmv": "wmv",
|
|
5300
|
-
"x-ms-wmx": "wmx",
|
|
5301
|
-
"x-ms-wvx": "wvx",
|
|
5302
|
-
"x-msvideo": "avi",
|
|
5303
|
-
"x-sgi-movie": "movie",
|
|
5304
|
-
"x-matroska": ["mpv", "mkv", "mk3d", "mks"],
|
|
5305
|
-
"3gpp2": "3g2",
|
|
5306
|
-
"h261": "h261",
|
|
5307
|
-
"h263": "h263",
|
|
5308
|
-
"h264": "h264",
|
|
5309
|
-
"jpeg": "jpgv",
|
|
5310
|
-
"jpm": ["jpm", "jpgm"],
|
|
5311
|
-
"mj2": ["mj2", "mjp2"],
|
|
5312
|
-
"vnd.dece.hd": ["uvh", "uvvh"],
|
|
5313
|
-
"vnd.dece.mobile": ["uvm", "uvvm"],
|
|
5314
|
-
"vnd.dece.pd": ["uvp", "uvvp"],
|
|
5315
|
-
"vnd.dece.sd": ["uvs", "uvvs"],
|
|
5316
|
-
"vnd.dece.video": ["uvv", "uvvv"],
|
|
5317
|
-
"vnd.dvb.file": "dvb",
|
|
5318
|
-
"vnd.fvt": "fvt",
|
|
5319
|
-
"vnd.ms-playready.media.pyv": "pyv",
|
|
5320
|
-
"vnd.uvvu.mp4": ["uvu", "uvvu"],
|
|
5321
|
-
"vnd.vivo": "viv",
|
|
5322
|
-
"webm": "webm",
|
|
5323
|
-
"x-f4v": "f4v",
|
|
5324
|
-
"x-m4v": "m4v",
|
|
5325
|
-
"x-ms-vob": "vob",
|
|
5326
|
-
"x-smv": "smv"
|
|
5327
|
-
},
|
|
5328
|
-
"x-conference": {
|
|
5329
|
-
"x-cooltalk": "ice"
|
|
5330
|
-
},
|
|
5331
|
-
"x-world": {
|
|
5332
|
-
"x-vrml": ["vrm", "vrml", "wrl", "flr", "wrz", "xaf", "xof"]
|
|
5333
|
-
}
|
|
5334
|
-
};
|
|
5335
|
-
|
|
5336
|
-
const mimeTypes = (() => {
|
|
5337
|
-
const mimeTypes = {};
|
|
5338
|
-
for (const type in table$1) {
|
|
5339
|
-
// eslint-disable-next-line no-prototype-builtins
|
|
5340
|
-
if (table$1.hasOwnProperty(type)) {
|
|
5341
|
-
for (const subtype in table$1[type]) {
|
|
5342
|
-
// eslint-disable-next-line no-prototype-builtins
|
|
5343
|
-
if (table$1[type].hasOwnProperty(subtype)) {
|
|
5344
|
-
const value = table$1[type][subtype];
|
|
5345
|
-
if (typeof value == "string") {
|
|
5346
|
-
mimeTypes[value] = type + "/" + subtype;
|
|
5347
|
-
} else {
|
|
5348
|
-
for (let indexMimeType = 0; indexMimeType < value.length; indexMimeType++) {
|
|
5349
|
-
mimeTypes[value[indexMimeType]] = type + "/" + subtype;
|
|
5350
|
-
}
|
|
5351
|
-
}
|
|
5352
|
-
}
|
|
5353
|
-
}
|
|
5354
|
-
}
|
|
5355
|
-
}
|
|
5356
|
-
return mimeTypes;
|
|
5357
|
-
})();
|
|
5358
|
-
|
|
5359
|
-
function getMimeType(filename) {
|
|
5360
|
-
return filename && mimeTypes[filename.split(".").pop().toLowerCase()] || getMimeType$1();
|
|
5361
|
-
}
|
|
5362
|
-
|
|
5363
|
-
/*
|
|
5364
|
-
Copyright (c) 2022 Gildas Lormeau. All rights reserved.
|
|
5365
|
-
|
|
5366
|
-
Redistribution and use in source and binary forms, with or without
|
|
5367
|
-
modification, are permitted provided that the following conditions are met:
|
|
5368
|
-
|
|
5369
|
-
1. Redistributions of source code must retain the above copyright notice,
|
|
5370
|
-
this list of conditions and the following disclaimer.
|
|
5371
|
-
|
|
5372
|
-
2. Redistributions in binary form must reproduce the above copyright
|
|
5373
|
-
notice, this list of conditions and the following disclaimer in
|
|
5374
|
-
the documentation and/or other materials provided with the distribution.
|
|
5375
|
-
|
|
5376
|
-
3. The names of the authors may not be used to endorse or promote products
|
|
5377
|
-
derived from this software without specific prior written permission.
|
|
5378
|
-
|
|
5379
|
-
THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
|
|
5380
|
-
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
5381
|
-
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
|
|
5382
|
-
INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
5383
|
-
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
5384
|
-
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
|
5385
|
-
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
5386
|
-
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
5387
|
-
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
5388
|
-
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
5389
|
-
*/
|
|
5390
|
-
|
|
5391
|
-
const table = [];
|
|
5392
|
-
for (let i = 0; i < 256; i++) {
|
|
5393
|
-
let t = i;
|
|
5394
|
-
for (let j = 0; j < 8; j++) {
|
|
5395
|
-
if (t & 1) {
|
|
5396
|
-
t = (t >>> 1) ^ 0xEDB88320;
|
|
5397
|
-
} else {
|
|
5398
|
-
t = t >>> 1;
|
|
5399
|
-
}
|
|
5400
|
-
}
|
|
5401
|
-
table[i] = t;
|
|
5402
|
-
}
|
|
5403
|
-
|
|
5404
|
-
class Crc32 {
|
|
5405
|
-
|
|
5406
|
-
constructor(crc) {
|
|
5407
|
-
this.crc = crc || -1;
|
|
5408
|
-
}
|
|
5409
|
-
|
|
5410
|
-
append(data) {
|
|
5411
|
-
let crc = this.crc | 0;
|
|
5412
|
-
for (let offset = 0, length = data.length | 0; offset < length; offset++) {
|
|
5413
|
-
crc = (crc >>> 8) ^ table[(crc ^ data[offset]) & 0xFF];
|
|
5414
|
-
}
|
|
5415
|
-
this.crc = crc;
|
|
5416
|
-
}
|
|
5417
|
-
|
|
5418
|
-
get() {
|
|
5419
|
-
return ~this.crc;
|
|
5420
|
-
}
|
|
5421
|
-
}
|
|
5422
|
-
|
|
5423
|
-
/*
|
|
5424
|
-
Copyright (c) 2022 Gildas Lormeau. All rights reserved.
|
|
5425
|
-
|
|
5426
|
-
Redistribution and use in source and binary forms, with or without
|
|
5427
|
-
modification, are permitted provided that the following conditions are met:
|
|
5428
|
-
|
|
5429
|
-
1. Redistributions of source code must retain the above copyright notice,
|
|
5430
|
-
this list of conditions and the following disclaimer.
|
|
5431
|
-
|
|
5432
|
-
2. Redistributions in binary form must reproduce the above copyright
|
|
5433
|
-
notice, this list of conditions and the following disclaimer in
|
|
5434
|
-
the documentation and/or other materials provided with the distribution.
|
|
5435
|
-
|
|
5436
|
-
3. The names of the authors may not be used to endorse or promote products
|
|
5437
|
-
derived from this software without specific prior written permission.
|
|
5438
|
-
|
|
5439
|
-
THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
|
|
5440
|
-
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
5441
|
-
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
|
|
5442
|
-
INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
5443
|
-
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
5444
|
-
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
|
5445
|
-
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
5446
|
-
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
5447
|
-
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
5448
|
-
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
5449
|
-
*/
|
|
5450
|
-
|
|
5451
|
-
class Crc32Stream extends TransformStream {
|
|
5452
|
-
|
|
5453
|
-
constructor() {
|
|
5454
|
-
const crc32 = new Crc32();
|
|
5455
|
-
super({
|
|
5456
|
-
transform(chunk) {
|
|
5457
|
-
crc32.append(chunk);
|
|
5458
|
-
},
|
|
5459
|
-
flush(controller) {
|
|
5460
|
-
const value = new Uint8Array(4);
|
|
5461
|
-
const dataView = new DataView(value.buffer);
|
|
5462
|
-
dataView.setUint32(0, crc32.get());
|
|
5463
|
-
controller.enqueue(value);
|
|
5464
|
-
}
|
|
5465
|
-
});
|
|
5466
|
-
}
|
|
4320
|
+
class Crc32Stream extends TransformStream {
|
|
4321
|
+
|
|
4322
|
+
constructor() {
|
|
4323
|
+
const crc32 = new Crc32();
|
|
4324
|
+
super({
|
|
4325
|
+
transform(chunk) {
|
|
4326
|
+
crc32.append(chunk);
|
|
4327
|
+
},
|
|
4328
|
+
flush(controller) {
|
|
4329
|
+
const value = new Uint8Array(4);
|
|
4330
|
+
const dataView = new DataView(value.buffer);
|
|
4331
|
+
dataView.setUint32(0, crc32.get());
|
|
4332
|
+
controller.enqueue(value);
|
|
4333
|
+
}
|
|
4334
|
+
});
|
|
4335
|
+
}
|
|
5467
4336
|
}
|
|
5468
4337
|
|
|
5469
4338
|
/*
|
|
@@ -6362,6 +5231,7 @@
|
|
|
6362
5231
|
const GET_RANDOM_VALUES_SUPPORTED = typeof crypto != "undefined" && typeof crypto.getRandomValues == "function";
|
|
6363
5232
|
|
|
6364
5233
|
const ERR_INVALID_PASSWORD = "Invalid password";
|
|
5234
|
+
const ERR_INVALID_SIGNATURE = "Invalid signature";
|
|
6365
5235
|
|
|
6366
5236
|
function getRandomValues(array) {
|
|
6367
5237
|
if (GET_RANDOM_VALUES_SUPPORTED) {
|
|
@@ -6411,12 +5281,13 @@
|
|
|
6411
5281
|
const KEY_LENGTH = [16, 24, 32];
|
|
6412
5282
|
const SIGNATURE_LENGTH = 10;
|
|
6413
5283
|
const COUNTER_DEFAULT_VALUE = [0, 0, 0, 0];
|
|
6414
|
-
const UNDEFINED_TYPE
|
|
5284
|
+
const UNDEFINED_TYPE = "undefined";
|
|
6415
5285
|
const FUNCTION_TYPE = "function";
|
|
6416
|
-
const CRYPTO_API_SUPPORTED = typeof crypto != UNDEFINED_TYPE
|
|
6417
|
-
const
|
|
6418
|
-
const
|
|
6419
|
-
const
|
|
5286
|
+
const CRYPTO_API_SUPPORTED = typeof crypto != UNDEFINED_TYPE;
|
|
5287
|
+
const subtle = CRYPTO_API_SUPPORTED && crypto.subtle;
|
|
5288
|
+
const SUBTLE_API_SUPPORTED = CRYPTO_API_SUPPORTED && typeof subtle != UNDEFINED_TYPE;
|
|
5289
|
+
const IMPORT_KEY_SUPPORTED = CRYPTO_API_SUPPORTED && SUBTLE_API_SUPPORTED && typeof subtle.importKey == FUNCTION_TYPE;
|
|
5290
|
+
const DERIVE_BITS_SUPPORTED = CRYPTO_API_SUPPORTED && SUBTLE_API_SUPPORTED && typeof subtle.deriveBits == FUNCTION_TYPE;
|
|
6420
5291
|
const codecBytes = codec.bytes;
|
|
6421
5292
|
const Aes = cipher.aes;
|
|
6422
5293
|
const CtrGladman = mode.ctrGladman;
|
|
@@ -6425,7 +5296,6 @@
|
|
|
6425
5296
|
class AESDecryptionStream extends TransformStream {
|
|
6426
5297
|
|
|
6427
5298
|
constructor(password, signed, strength) {
|
|
6428
|
-
let stream;
|
|
6429
5299
|
super({
|
|
6430
5300
|
start() {
|
|
6431
5301
|
Object.assign(this, {
|
|
@@ -6438,47 +5308,51 @@
|
|
|
6438
5308
|
},
|
|
6439
5309
|
async transform(chunk, controller) {
|
|
6440
5310
|
const aesCrypto = this;
|
|
6441
|
-
|
|
6442
|
-
|
|
6443
|
-
|
|
6444
|
-
|
|
6445
|
-
|
|
6446
|
-
|
|
6447
|
-
|
|
6448
|
-
|
|
6449
|
-
|
|
5311
|
+
const {
|
|
5312
|
+
password,
|
|
5313
|
+
strength,
|
|
5314
|
+
resolveReady,
|
|
5315
|
+
ready
|
|
5316
|
+
} = aesCrypto;
|
|
5317
|
+
if (password) {
|
|
5318
|
+
await createDecryptionKeys(aesCrypto, strength, password, subarray(chunk, 0, SALT_LENGTH[strength] + 2));
|
|
5319
|
+
chunk = subarray(chunk, SALT_LENGTH[strength] + 2);
|
|
5320
|
+
resolveReady();
|
|
6450
5321
|
} else {
|
|
6451
|
-
await
|
|
5322
|
+
await ready;
|
|
6452
5323
|
}
|
|
6453
5324
|
const output = new Uint8Array(chunk.length - SIGNATURE_LENGTH - ((chunk.length - SIGNATURE_LENGTH) % BLOCK_LENGTH));
|
|
6454
5325
|
controller.enqueue(append(aesCrypto, chunk, output, 0, SIGNATURE_LENGTH, true));
|
|
6455
5326
|
},
|
|
6456
5327
|
async flush(controller) {
|
|
6457
|
-
const
|
|
6458
|
-
|
|
6459
|
-
|
|
5328
|
+
const {
|
|
5329
|
+
signed,
|
|
5330
|
+
ctr,
|
|
5331
|
+
hmac,
|
|
5332
|
+
pending,
|
|
5333
|
+
ready
|
|
5334
|
+
} = this;
|
|
5335
|
+
await ready;
|
|
6460
5336
|
const chunkToDecrypt = subarray(pending, 0, pending.length - SIGNATURE_LENGTH);
|
|
6461
5337
|
const originalSignature = subarray(pending, pending.length - SIGNATURE_LENGTH);
|
|
6462
5338
|
let decryptedChunkArray = new Uint8Array();
|
|
6463
5339
|
if (chunkToDecrypt.length) {
|
|
6464
5340
|
const encryptedChunk = toBits(codecBytes, chunkToDecrypt);
|
|
6465
|
-
|
|
6466
|
-
const decryptedChunk =
|
|
5341
|
+
hmac.update(encryptedChunk);
|
|
5342
|
+
const decryptedChunk = ctr.update(encryptedChunk);
|
|
6467
5343
|
decryptedChunkArray = fromBits(codecBytes, decryptedChunk);
|
|
6468
5344
|
}
|
|
6469
|
-
|
|
6470
|
-
|
|
6471
|
-
const signature = subarray(fromBits(codecBytes, aesCrypto.hmac.digest()), 0, SIGNATURE_LENGTH);
|
|
5345
|
+
if (signed) {
|
|
5346
|
+
const signature = subarray(fromBits(codecBytes, hmac.digest()), 0, SIGNATURE_LENGTH);
|
|
6472
5347
|
for (let indexSignature = 0; indexSignature < SIGNATURE_LENGTH; indexSignature++) {
|
|
6473
5348
|
if (signature[indexSignature] != originalSignature[indexSignature]) {
|
|
6474
|
-
|
|
5349
|
+
throw new Error(ERR_INVALID_SIGNATURE);
|
|
6475
5350
|
}
|
|
6476
5351
|
}
|
|
6477
5352
|
}
|
|
6478
5353
|
controller.enqueue(decryptedChunkArray);
|
|
6479
5354
|
}
|
|
6480
5355
|
});
|
|
6481
|
-
stream = this;
|
|
6482
5356
|
}
|
|
6483
5357
|
}
|
|
6484
5358
|
|
|
@@ -6497,31 +5371,38 @@
|
|
|
6497
5371
|
},
|
|
6498
5372
|
async transform(chunk, controller) {
|
|
6499
5373
|
const aesCrypto = this;
|
|
5374
|
+
const {
|
|
5375
|
+
password,
|
|
5376
|
+
strength,
|
|
5377
|
+
resolveReady,
|
|
5378
|
+
ready
|
|
5379
|
+
} = aesCrypto;
|
|
6500
5380
|
let preamble = new Uint8Array();
|
|
6501
|
-
if (
|
|
6502
|
-
|
|
6503
|
-
|
|
6504
|
-
preamble = await createEncryptionKeys(aesCrypto, password);
|
|
6505
|
-
aesCrypto.ctr = new CtrGladman(new Aes(aesCrypto.keys.key), Array.from(COUNTER_DEFAULT_VALUE));
|
|
6506
|
-
aesCrypto.hmac = new HmacSha1(aesCrypto.keys.authentication);
|
|
6507
|
-
aesCrypto.resolveReady();
|
|
5381
|
+
if (password) {
|
|
5382
|
+
preamble = await createEncryptionKeys(aesCrypto, strength, password);
|
|
5383
|
+
resolveReady();
|
|
6508
5384
|
} else {
|
|
6509
|
-
await
|
|
5385
|
+
await ready;
|
|
6510
5386
|
}
|
|
6511
5387
|
const output = new Uint8Array(preamble.length + chunk.length - (chunk.length % BLOCK_LENGTH));
|
|
6512
5388
|
output.set(preamble, 0);
|
|
6513
5389
|
controller.enqueue(append(aesCrypto, chunk, output, preamble.length, 0));
|
|
6514
5390
|
},
|
|
6515
5391
|
async flush(controller) {
|
|
6516
|
-
const
|
|
6517
|
-
|
|
5392
|
+
const {
|
|
5393
|
+
ctr,
|
|
5394
|
+
hmac,
|
|
5395
|
+
pending,
|
|
5396
|
+
ready
|
|
5397
|
+
} = this;
|
|
5398
|
+
await ready;
|
|
6518
5399
|
let encryptedChunkArray = new Uint8Array();
|
|
6519
|
-
if (
|
|
6520
|
-
const encryptedChunk =
|
|
6521
|
-
|
|
5400
|
+
if (pending.length) {
|
|
5401
|
+
const encryptedChunk = ctr.update(toBits(codecBytes, pending));
|
|
5402
|
+
hmac.update(encryptedChunk);
|
|
6522
5403
|
encryptedChunkArray = fromBits(codecBytes, encryptedChunk);
|
|
6523
5404
|
}
|
|
6524
|
-
stream.signature = fromBits(codecBytes,
|
|
5405
|
+
stream.signature = fromBits(codecBytes, hmac.digest()).slice(0, SIGNATURE_LENGTH);
|
|
6525
5406
|
controller.enqueue(concat(encryptedChunkArray, stream.signature));
|
|
6526
5407
|
}
|
|
6527
5408
|
});
|
|
@@ -6530,20 +5411,25 @@
|
|
|
6530
5411
|
}
|
|
6531
5412
|
|
|
6532
5413
|
function append(aesCrypto, input, output, paddingStart, paddingEnd, verifySignature) {
|
|
5414
|
+
const {
|
|
5415
|
+
ctr,
|
|
5416
|
+
hmac,
|
|
5417
|
+
pending
|
|
5418
|
+
} = aesCrypto;
|
|
6533
5419
|
const inputLength = input.length - paddingEnd;
|
|
6534
|
-
if (
|
|
6535
|
-
input = concat(
|
|
5420
|
+
if (pending.length) {
|
|
5421
|
+
input = concat(pending, input);
|
|
6536
5422
|
output = expand(output, inputLength - (inputLength % BLOCK_LENGTH));
|
|
6537
5423
|
}
|
|
6538
5424
|
let offset;
|
|
6539
5425
|
for (offset = 0; offset <= inputLength - BLOCK_LENGTH; offset += BLOCK_LENGTH) {
|
|
6540
5426
|
const inputChunk = toBits(codecBytes, subarray(input, offset, offset + BLOCK_LENGTH));
|
|
6541
5427
|
if (verifySignature) {
|
|
6542
|
-
|
|
5428
|
+
hmac.update(inputChunk);
|
|
6543
5429
|
}
|
|
6544
|
-
const outputChunk =
|
|
5430
|
+
const outputChunk = ctr.update(inputChunk);
|
|
6545
5431
|
if (!verifySignature) {
|
|
6546
|
-
|
|
5432
|
+
hmac.update(outputChunk);
|
|
6547
5433
|
}
|
|
6548
5434
|
output.set(fromBits(codecBytes, outputChunk), offset + paddingStart);
|
|
6549
5435
|
}
|
|
@@ -6551,77 +5437,366 @@
|
|
|
6551
5437
|
return output;
|
|
6552
5438
|
}
|
|
6553
5439
|
|
|
6554
|
-
async function createDecryptionKeys(decrypt,
|
|
6555
|
-
await createKeys$1(decrypt, password, subarray(
|
|
6556
|
-
const passwordVerification = subarray(
|
|
6557
|
-
const passwordVerificationKey = decrypt.keys.passwordVerification;
|
|
5440
|
+
async function createDecryptionKeys(decrypt, strength, password, preamble) {
|
|
5441
|
+
const passwordVerificationKey = await createKeys$1(decrypt, strength, password, subarray(preamble, 0, SALT_LENGTH[strength]));
|
|
5442
|
+
const passwordVerification = subarray(preamble, SALT_LENGTH[strength]);
|
|
6558
5443
|
if (passwordVerificationKey[0] != passwordVerification[0] || passwordVerificationKey[1] != passwordVerification[1]) {
|
|
6559
5444
|
throw new Error(ERR_INVALID_PASSWORD);
|
|
6560
5445
|
}
|
|
6561
5446
|
}
|
|
6562
5447
|
|
|
6563
|
-
async function createEncryptionKeys(encrypt, password) {
|
|
6564
|
-
const salt = getRandomValues(new Uint8Array(SALT_LENGTH[
|
|
6565
|
-
await createKeys$1(encrypt, password, salt);
|
|
6566
|
-
return concat(salt,
|
|
5448
|
+
async function createEncryptionKeys(encrypt, strength, password) {
|
|
5449
|
+
const salt = getRandomValues(new Uint8Array(SALT_LENGTH[strength]));
|
|
5450
|
+
const passwordVerification = await createKeys$1(encrypt, strength, password, salt);
|
|
5451
|
+
return concat(salt, passwordVerification);
|
|
6567
5452
|
}
|
|
6568
5453
|
|
|
6569
|
-
async function createKeys$1(
|
|
5454
|
+
async function createKeys$1(aesCrypto, strength, password, salt) {
|
|
5455
|
+
aesCrypto.password = null;
|
|
6570
5456
|
const encodedPassword = encodeText(password);
|
|
6571
|
-
const
|
|
6572
|
-
const derivedBits = await deriveBits(Object.assign({ salt }, DERIVED_BITS_ALGORITHM),
|
|
5457
|
+
const baseKey = await importKey(RAW_FORMAT, encodedPassword, BASE_KEY_ALGORITHM, false, DERIVED_BITS_USAGE);
|
|
5458
|
+
const derivedBits = await deriveBits(Object.assign({ salt }, DERIVED_BITS_ALGORITHM), baseKey, 8 * ((KEY_LENGTH[strength] * 2) + 2));
|
|
6573
5459
|
const compositeKey = new Uint8Array(derivedBits);
|
|
6574
|
-
|
|
6575
|
-
|
|
6576
|
-
|
|
6577
|
-
|
|
6578
|
-
|
|
5460
|
+
const key = toBits(codecBytes, subarray(compositeKey, 0, KEY_LENGTH[strength]));
|
|
5461
|
+
const authentication = toBits(codecBytes, subarray(compositeKey, KEY_LENGTH[strength], KEY_LENGTH[strength] * 2));
|
|
5462
|
+
const passwordVerification = subarray(compositeKey, KEY_LENGTH[strength] * 2);
|
|
5463
|
+
Object.assign(aesCrypto, {
|
|
5464
|
+
keys: {
|
|
5465
|
+
key,
|
|
5466
|
+
authentication,
|
|
5467
|
+
passwordVerification
|
|
5468
|
+
},
|
|
5469
|
+
ctr: new CtrGladman(new Aes(key), Array.from(COUNTER_DEFAULT_VALUE)),
|
|
5470
|
+
hmac: new HmacSha1(authentication)
|
|
5471
|
+
});
|
|
5472
|
+
return passwordVerification;
|
|
6579
5473
|
}
|
|
6580
5474
|
|
|
6581
5475
|
function importKey(format, password, algorithm, extractable, keyUsages) {
|
|
6582
5476
|
if (IMPORT_KEY_SUPPORTED) {
|
|
6583
|
-
return
|
|
5477
|
+
return subtle.importKey(format, password, algorithm, extractable, keyUsages);
|
|
6584
5478
|
} else {
|
|
6585
5479
|
return misc.importKey(password);
|
|
6586
5480
|
}
|
|
6587
5481
|
}
|
|
6588
5482
|
|
|
6589
|
-
async function deriveBits(algorithm, baseKey, length) {
|
|
6590
|
-
if (DERIVE_BITS_SUPPORTED) {
|
|
6591
|
-
return await
|
|
6592
|
-
} else {
|
|
6593
|
-
return misc.pbkdf2(baseKey, algorithm.salt, DERIVED_BITS_ALGORITHM.iterations, length);
|
|
6594
|
-
}
|
|
6595
|
-
}
|
|
5483
|
+
async function deriveBits(algorithm, baseKey, length) {
|
|
5484
|
+
if (DERIVE_BITS_SUPPORTED) {
|
|
5485
|
+
return await subtle.deriveBits(algorithm, baseKey, length);
|
|
5486
|
+
} else {
|
|
5487
|
+
return misc.pbkdf2(baseKey, algorithm.salt, DERIVED_BITS_ALGORITHM.iterations, length);
|
|
5488
|
+
}
|
|
5489
|
+
}
|
|
5490
|
+
|
|
5491
|
+
function concat(leftArray, rightArray) {
|
|
5492
|
+
let array = leftArray;
|
|
5493
|
+
if (leftArray.length + rightArray.length) {
|
|
5494
|
+
array = new Uint8Array(leftArray.length + rightArray.length);
|
|
5495
|
+
array.set(leftArray, 0);
|
|
5496
|
+
array.set(rightArray, leftArray.length);
|
|
5497
|
+
}
|
|
5498
|
+
return array;
|
|
5499
|
+
}
|
|
5500
|
+
|
|
5501
|
+
function expand(inputArray, length) {
|
|
5502
|
+
if (length && length > inputArray.length) {
|
|
5503
|
+
const array = inputArray;
|
|
5504
|
+
inputArray = new Uint8Array(length);
|
|
5505
|
+
inputArray.set(array, 0);
|
|
5506
|
+
}
|
|
5507
|
+
return inputArray;
|
|
5508
|
+
}
|
|
5509
|
+
|
|
5510
|
+
function subarray(array, begin, end) {
|
|
5511
|
+
return array.subarray(begin, end);
|
|
5512
|
+
}
|
|
5513
|
+
|
|
5514
|
+
function fromBits(codecBytes, chunk) {
|
|
5515
|
+
return codecBytes.fromBits(chunk);
|
|
5516
|
+
}
|
|
5517
|
+
function toBits(codecBytes, chunk) {
|
|
5518
|
+
return codecBytes.toBits(chunk);
|
|
5519
|
+
}
|
|
5520
|
+
|
|
5521
|
+
/*
|
|
5522
|
+
Copyright (c) 2022 Gildas Lormeau. All rights reserved.
|
|
5523
|
+
|
|
5524
|
+
Redistribution and use in source and binary forms, with or without
|
|
5525
|
+
modification, are permitted provided that the following conditions are met:
|
|
5526
|
+
|
|
5527
|
+
1. Redistributions of source code must retain the above copyright notice,
|
|
5528
|
+
this list of conditions and the following disclaimer.
|
|
5529
|
+
|
|
5530
|
+
2. Redistributions in binary form must reproduce the above copyright
|
|
5531
|
+
notice, this list of conditions and the following disclaimer in
|
|
5532
|
+
the documentation and/or other materials provided with the distribution.
|
|
5533
|
+
|
|
5534
|
+
3. The names of the authors may not be used to endorse or promote products
|
|
5535
|
+
derived from this software without specific prior written permission.
|
|
5536
|
+
|
|
5537
|
+
THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
|
|
5538
|
+
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
5539
|
+
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
|
|
5540
|
+
INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
5541
|
+
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
5542
|
+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
|
5543
|
+
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
5544
|
+
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
5545
|
+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
5546
|
+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
5547
|
+
*/
|
|
5548
|
+
|
|
5549
|
+
const HEADER_LENGTH = 12;
|
|
5550
|
+
|
|
5551
|
+
class ZipCryptoDecryptionStream extends TransformStream {
|
|
5552
|
+
|
|
5553
|
+
constructor(password, passwordVerification) {
|
|
5554
|
+
super({
|
|
5555
|
+
start() {
|
|
5556
|
+
Object.assign(this, {
|
|
5557
|
+
password,
|
|
5558
|
+
passwordVerification
|
|
5559
|
+
});
|
|
5560
|
+
createKeys(this, password);
|
|
5561
|
+
},
|
|
5562
|
+
transform(chunk, controller) {
|
|
5563
|
+
const zipCrypto = this;
|
|
5564
|
+
if (zipCrypto.password) {
|
|
5565
|
+
const decryptedHeader = decrypt(zipCrypto, chunk.subarray(0, HEADER_LENGTH));
|
|
5566
|
+
zipCrypto.password = null;
|
|
5567
|
+
if (decryptedHeader[HEADER_LENGTH - 1] != zipCrypto.passwordVerification) {
|
|
5568
|
+
throw new Error(ERR_INVALID_PASSWORD);
|
|
5569
|
+
}
|
|
5570
|
+
chunk = chunk.subarray(HEADER_LENGTH);
|
|
5571
|
+
}
|
|
5572
|
+
controller.enqueue(decrypt(zipCrypto, chunk));
|
|
5573
|
+
}
|
|
5574
|
+
});
|
|
5575
|
+
}
|
|
5576
|
+
}
|
|
5577
|
+
|
|
5578
|
+
class ZipCryptoEncryptionStream extends TransformStream {
|
|
5579
|
+
|
|
5580
|
+
constructor(password, passwordVerification) {
|
|
5581
|
+
super({
|
|
5582
|
+
start() {
|
|
5583
|
+
Object.assign(this, {
|
|
5584
|
+
password,
|
|
5585
|
+
passwordVerification
|
|
5586
|
+
});
|
|
5587
|
+
createKeys(this, password);
|
|
5588
|
+
},
|
|
5589
|
+
transform(chunk, controller) {
|
|
5590
|
+
const zipCrypto = this;
|
|
5591
|
+
let output;
|
|
5592
|
+
let offset;
|
|
5593
|
+
if (zipCrypto.password) {
|
|
5594
|
+
zipCrypto.password = null;
|
|
5595
|
+
const header = getRandomValues(new Uint8Array(HEADER_LENGTH));
|
|
5596
|
+
header[HEADER_LENGTH - 1] = zipCrypto.passwordVerification;
|
|
5597
|
+
output = new Uint8Array(chunk.length + header.length);
|
|
5598
|
+
output.set(encrypt(zipCrypto, header), 0);
|
|
5599
|
+
offset = HEADER_LENGTH;
|
|
5600
|
+
} else {
|
|
5601
|
+
output = new Uint8Array(chunk.length);
|
|
5602
|
+
offset = 0;
|
|
5603
|
+
}
|
|
5604
|
+
output.set(encrypt(zipCrypto, chunk), offset);
|
|
5605
|
+
controller.enqueue(output);
|
|
5606
|
+
}
|
|
5607
|
+
});
|
|
5608
|
+
}
|
|
5609
|
+
}
|
|
5610
|
+
|
|
5611
|
+
function decrypt(target, input) {
|
|
5612
|
+
const output = new Uint8Array(input.length);
|
|
5613
|
+
for (let index = 0; index < input.length; index++) {
|
|
5614
|
+
output[index] = getByte(target) ^ input[index];
|
|
5615
|
+
updateKeys(target, output[index]);
|
|
5616
|
+
}
|
|
5617
|
+
return output;
|
|
5618
|
+
}
|
|
5619
|
+
|
|
5620
|
+
function encrypt(target, input) {
|
|
5621
|
+
const output = new Uint8Array(input.length);
|
|
5622
|
+
for (let index = 0; index < input.length; index++) {
|
|
5623
|
+
output[index] = getByte(target) ^ input[index];
|
|
5624
|
+
updateKeys(target, input[index]);
|
|
5625
|
+
}
|
|
5626
|
+
return output;
|
|
5627
|
+
}
|
|
5628
|
+
|
|
5629
|
+
function createKeys(target, password) {
|
|
5630
|
+
const keys = [0x12345678, 0x23456789, 0x34567890];
|
|
5631
|
+
Object.assign(target, {
|
|
5632
|
+
keys,
|
|
5633
|
+
crcKey0: new Crc32(keys[0]),
|
|
5634
|
+
crcKey2: new Crc32(keys[2]),
|
|
5635
|
+
});
|
|
5636
|
+
for (let index = 0; index < password.length; index++) {
|
|
5637
|
+
updateKeys(target, password.charCodeAt(index));
|
|
5638
|
+
}
|
|
5639
|
+
}
|
|
5640
|
+
|
|
5641
|
+
function updateKeys(target, byte) {
|
|
5642
|
+
let [key0, key1, key2] = target.keys;
|
|
5643
|
+
target.crcKey0.append([byte]);
|
|
5644
|
+
key0 = ~target.crcKey0.get();
|
|
5645
|
+
key1 = getInt32(Math.imul(getInt32(key1 + getInt8(key0)), 134775813) + 1);
|
|
5646
|
+
target.crcKey2.append([key1 >>> 24]);
|
|
5647
|
+
key2 = ~target.crcKey2.get();
|
|
5648
|
+
target.keys = [key0, key1, key2];
|
|
5649
|
+
}
|
|
5650
|
+
|
|
5651
|
+
function getByte(target) {
|
|
5652
|
+
const temp = target.keys[2] | 2;
|
|
5653
|
+
return getInt8(Math.imul(temp, (temp ^ 1)) >>> 8);
|
|
5654
|
+
}
|
|
5655
|
+
|
|
5656
|
+
function getInt8(number) {
|
|
5657
|
+
return number & 0xFF;
|
|
5658
|
+
}
|
|
5659
|
+
|
|
5660
|
+
function getInt32(number) {
|
|
5661
|
+
return number & 0xFFFFFFFF;
|
|
5662
|
+
}
|
|
5663
|
+
|
|
5664
|
+
/*
|
|
5665
|
+
Copyright (c) 2022 Gildas Lormeau. All rights reserved.
|
|
5666
|
+
|
|
5667
|
+
Redistribution and use in source and binary forms, with or without
|
|
5668
|
+
modification, are permitted provided that the following conditions are met:
|
|
5669
|
+
|
|
5670
|
+
1. Redistributions of source code must retain the above copyright notice,
|
|
5671
|
+
this list of conditions and the following disclaimer.
|
|
5672
|
+
|
|
5673
|
+
2. Redistributions in binary form must reproduce the above copyright
|
|
5674
|
+
notice, this list of conditions and the following disclaimer in
|
|
5675
|
+
the documentation and/or other materials provided with the distribution.
|
|
5676
|
+
|
|
5677
|
+
3. The names of the authors may not be used to endorse or promote products
|
|
5678
|
+
derived from this software without specific prior written permission.
|
|
5679
|
+
|
|
5680
|
+
THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
|
|
5681
|
+
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
5682
|
+
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
|
|
5683
|
+
INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
5684
|
+
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
5685
|
+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
|
5686
|
+
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
5687
|
+
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
5688
|
+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
5689
|
+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
5690
|
+
*/
|
|
5691
|
+
|
|
5692
|
+
const COMPRESSION_FORMAT = "deflate-raw";
|
|
5693
|
+
|
|
5694
|
+
class DeflateStream extends TransformStream {
|
|
5695
|
+
|
|
5696
|
+
constructor(options, { chunkSize, CompressionStream, CompressionStreamNative }) {
|
|
5697
|
+
super({});
|
|
5698
|
+
const { compressed, encrypted, useCompressionStream, password, passwordVerification, encryptionStrength, zipCrypto, signed, level } = options;
|
|
5699
|
+
const stream = this;
|
|
5700
|
+
let crc32Stream, encryptionStream;
|
|
5701
|
+
let readable = filterEmptyChunks(super.readable);
|
|
5702
|
+
if ((!encrypted || zipCrypto) && signed) {
|
|
5703
|
+
[readable, crc32Stream] = readable.tee();
|
|
5704
|
+
crc32Stream = pipeThrough(crc32Stream, new Crc32Stream());
|
|
5705
|
+
}
|
|
5706
|
+
if (compressed) {
|
|
5707
|
+
readable = pipeThroughCommpressionStream(readable, useCompressionStream, { level, chunkSize }, CompressionStreamNative, CompressionStream);
|
|
5708
|
+
}
|
|
5709
|
+
if (encrypted) {
|
|
5710
|
+
if (zipCrypto) {
|
|
5711
|
+
readable = pipeThrough(readable, new ZipCryptoEncryptionStream(password, passwordVerification));
|
|
5712
|
+
} else {
|
|
5713
|
+
encryptionStream = new AESEncryptionStream(password, encryptionStrength);
|
|
5714
|
+
readable = pipeThrough(readable, encryptionStream);
|
|
5715
|
+
}
|
|
5716
|
+
}
|
|
5717
|
+
setReadable(stream, readable, async () => {
|
|
5718
|
+
let signature;
|
|
5719
|
+
if (encrypted && !zipCrypto) {
|
|
5720
|
+
signature = encryptionStream.signature;
|
|
5721
|
+
}
|
|
5722
|
+
if ((!encrypted || zipCrypto) && signed) {
|
|
5723
|
+
signature = await crc32Stream.getReader().read();
|
|
5724
|
+
signature = new DataView(signature.value.buffer).getUint32(0);
|
|
5725
|
+
}
|
|
5726
|
+
stream.signature = signature;
|
|
5727
|
+
});
|
|
5728
|
+
}
|
|
5729
|
+
}
|
|
5730
|
+
|
|
5731
|
+
class InflateStream extends TransformStream {
|
|
6596
5732
|
|
|
6597
|
-
|
|
6598
|
-
|
|
6599
|
-
|
|
6600
|
-
|
|
6601
|
-
|
|
6602
|
-
|
|
5733
|
+
constructor(options, { chunkSize, DecompressionStream, DecompressionStreamNative }) {
|
|
5734
|
+
super({});
|
|
5735
|
+
const { zipCrypto, encrypted, password, passwordVerification, signed, signature, encryptionStrength, compressed, useCompressionStream } = options;
|
|
5736
|
+
let crc32Stream, decryptionStream;
|
|
5737
|
+
let readable = filterEmptyChunks(super.readable);
|
|
5738
|
+
if (encrypted) {
|
|
5739
|
+
if (zipCrypto) {
|
|
5740
|
+
readable = pipeThrough(readable, new ZipCryptoDecryptionStream(password, passwordVerification));
|
|
5741
|
+
} else {
|
|
5742
|
+
decryptionStream = new AESDecryptionStream(password, signed, encryptionStrength);
|
|
5743
|
+
readable = pipeThrough(readable, decryptionStream);
|
|
5744
|
+
}
|
|
5745
|
+
}
|
|
5746
|
+
if (compressed) {
|
|
5747
|
+
readable = pipeThroughCommpressionStream(readable, useCompressionStream, { chunkSize }, DecompressionStreamNative, DecompressionStream);
|
|
5748
|
+
}
|
|
5749
|
+
if ((!encrypted || zipCrypto) && signed) {
|
|
5750
|
+
[readable, crc32Stream] = readable.tee();
|
|
5751
|
+
crc32Stream = pipeThrough(crc32Stream, new Crc32Stream());
|
|
5752
|
+
}
|
|
5753
|
+
setReadable(this, readable, async () => {
|
|
5754
|
+
if ((!encrypted || zipCrypto) && signed) {
|
|
5755
|
+
const streamSignature = await crc32Stream.getReader().read();
|
|
5756
|
+
const dataViewSignature = new DataView(streamSignature.value.buffer);
|
|
5757
|
+
if (signature != dataViewSignature.getUint32(0, false)) {
|
|
5758
|
+
throw new Error(ERR_INVALID_SIGNATURE);
|
|
5759
|
+
}
|
|
5760
|
+
}
|
|
5761
|
+
});
|
|
6603
5762
|
}
|
|
6604
|
-
return array;
|
|
6605
5763
|
}
|
|
6606
5764
|
|
|
6607
|
-
function
|
|
6608
|
-
|
|
6609
|
-
|
|
6610
|
-
|
|
6611
|
-
|
|
6612
|
-
|
|
6613
|
-
|
|
5765
|
+
function filterEmptyChunks(readable) {
|
|
5766
|
+
return pipeThrough(readable, new TransformStream({
|
|
5767
|
+
transform(chunk, controller) {
|
|
5768
|
+
if (chunk && chunk.length) {
|
|
5769
|
+
controller.enqueue(chunk);
|
|
5770
|
+
}
|
|
5771
|
+
}
|
|
5772
|
+
}));
|
|
6614
5773
|
}
|
|
6615
5774
|
|
|
6616
|
-
function
|
|
6617
|
-
|
|
5775
|
+
function setReadable(stream, readable, flush) {
|
|
5776
|
+
readable = pipeThrough(readable, new TransformStream({ flush }));
|
|
5777
|
+
Object.defineProperty(stream, "readable", {
|
|
5778
|
+
get() {
|
|
5779
|
+
return readable;
|
|
5780
|
+
}
|
|
5781
|
+
});
|
|
6618
5782
|
}
|
|
6619
5783
|
|
|
6620
|
-
function
|
|
6621
|
-
|
|
5784
|
+
function pipeThroughCommpressionStream(readable, useCompressionStream, options, CodecStreamNative, CodecStream) {
|
|
5785
|
+
try {
|
|
5786
|
+
const CompressionStream = useCompressionStream && CodecStreamNative ? CodecStreamNative : CodecStream;
|
|
5787
|
+
readable = pipeThrough(readable, new CompressionStream(COMPRESSION_FORMAT, options));
|
|
5788
|
+
} catch (error) {
|
|
5789
|
+
if (useCompressionStream) {
|
|
5790
|
+
readable = pipeThrough(readable, new CodecStream(COMPRESSION_FORMAT, options));
|
|
5791
|
+
} else {
|
|
5792
|
+
throw error;
|
|
5793
|
+
}
|
|
5794
|
+
}
|
|
5795
|
+
return readable;
|
|
6622
5796
|
}
|
|
6623
|
-
|
|
6624
|
-
|
|
5797
|
+
|
|
5798
|
+
function pipeThrough(readable, transformStream) {
|
|
5799
|
+
return readable.pipeThrough(transformStream);
|
|
6625
5800
|
}
|
|
6626
5801
|
|
|
6627
5802
|
/*
|
|
@@ -6652,122 +5827,236 @@
|
|
|
6652
5827
|
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
6653
5828
|
*/
|
|
6654
5829
|
|
|
6655
|
-
|
|
5830
|
+
/*
|
|
5831
|
+
* This program is based on JZlib 1.0.2 ymnk, JCraft,Inc.
|
|
5832
|
+
* JZlib is based on zlib-1.1.3, so all credit should go authors
|
|
5833
|
+
* Jean-loup Gailly(jloup@gzip.org) and Mark Adler(madler@alumni.caltech.edu)
|
|
5834
|
+
* and contributors of zlib.
|
|
5835
|
+
*/
|
|
6656
5836
|
|
|
6657
|
-
|
|
5837
|
+
/* global TransformStream */
|
|
6658
5838
|
|
|
6659
|
-
|
|
6660
|
-
|
|
5839
|
+
class CodecStream extends TransformStream {
|
|
5840
|
+
|
|
5841
|
+
constructor(Codec, options) {
|
|
5842
|
+
const codec = new Codec(options);
|
|
6661
5843
|
super({
|
|
6662
|
-
start() {
|
|
6663
|
-
Object.assign(this, {
|
|
6664
|
-
password,
|
|
6665
|
-
passwordVerification
|
|
6666
|
-
});
|
|
6667
|
-
createKeys(this, password);
|
|
6668
|
-
},
|
|
6669
5844
|
transform(chunk, controller) {
|
|
6670
|
-
|
|
6671
|
-
if (zipCrypto.password) {
|
|
6672
|
-
const decryptedHeader = decrypt(zipCrypto, chunk.subarray(0, HEADER_LENGTH));
|
|
6673
|
-
zipCrypto.password = null;
|
|
6674
|
-
if (decryptedHeader[HEADER_LENGTH - 1] != zipCrypto.passwordVerification) {
|
|
6675
|
-
throw new Error(ERR_INVALID_PASSWORD);
|
|
6676
|
-
}
|
|
6677
|
-
chunk = chunk.subarray(HEADER_LENGTH);
|
|
6678
|
-
}
|
|
6679
|
-
controller.enqueue(decrypt(zipCrypto, chunk));
|
|
5845
|
+
controller.enqueue(codec.append(chunk));
|
|
6680
5846
|
},
|
|
6681
|
-
flush() {
|
|
6682
|
-
|
|
5847
|
+
flush(controller) {
|
|
5848
|
+
const chunk = codec.flush();
|
|
5849
|
+
if (chunk) {
|
|
5850
|
+
controller.enqueue(chunk);
|
|
5851
|
+
}
|
|
6683
5852
|
}
|
|
6684
5853
|
});
|
|
6685
|
-
stream = this;
|
|
6686
5854
|
}
|
|
6687
5855
|
}
|
|
6688
5856
|
|
|
6689
|
-
|
|
5857
|
+
/*
|
|
5858
|
+
Copyright (c) 2022 Gildas Lormeau. All rights reserved.
|
|
6690
5859
|
|
|
6691
|
-
|
|
6692
|
-
|
|
6693
|
-
|
|
6694
|
-
|
|
6695
|
-
|
|
6696
|
-
|
|
6697
|
-
|
|
6698
|
-
|
|
6699
|
-
|
|
6700
|
-
|
|
6701
|
-
|
|
6702
|
-
|
|
6703
|
-
|
|
6704
|
-
|
|
6705
|
-
|
|
6706
|
-
|
|
6707
|
-
|
|
6708
|
-
|
|
6709
|
-
|
|
6710
|
-
|
|
6711
|
-
|
|
6712
|
-
|
|
6713
|
-
|
|
6714
|
-
|
|
6715
|
-
|
|
6716
|
-
|
|
6717
|
-
|
|
6718
|
-
|
|
6719
|
-
|
|
5860
|
+
Redistribution and use in source and binary forms, with or without
|
|
5861
|
+
modification, are permitted provided that the following conditions are met:
|
|
5862
|
+
|
|
5863
|
+
1. Redistributions of source code must retain the above copyright notice,
|
|
5864
|
+
this list of conditions and the following disclaimer.
|
|
5865
|
+
|
|
5866
|
+
2. Redistributions in binary form must reproduce the above copyright
|
|
5867
|
+
notice, this list of conditions and the following disclaimer in
|
|
5868
|
+
the documentation and/or other materials provided with the distribution.
|
|
5869
|
+
|
|
5870
|
+
3. The names of the authors may not be used to endorse or promote products
|
|
5871
|
+
derived from this software without specific prior written permission.
|
|
5872
|
+
|
|
5873
|
+
THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
|
|
5874
|
+
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
5875
|
+
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
|
|
5876
|
+
INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
5877
|
+
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
5878
|
+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
|
5879
|
+
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
5880
|
+
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
5881
|
+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
5882
|
+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
5883
|
+
*/
|
|
5884
|
+
|
|
5885
|
+
const CODEC_DEFLATE = "deflate";
|
|
5886
|
+
const CODEC_INFLATE = "inflate";
|
|
5887
|
+
const MESSAGE_EVENT_TYPE = "message";
|
|
5888
|
+
const MESSAGE_START = "start";
|
|
5889
|
+
const MESSAGE_PULL = "pull";
|
|
5890
|
+
const MESSAGE_DATA = "data";
|
|
5891
|
+
const MESSAGE_ACK_DATA = "ack";
|
|
5892
|
+
const MESSAGE_CLOSE = "close";
|
|
5893
|
+
|
|
5894
|
+
class Codec {
|
|
5895
|
+
|
|
5896
|
+
constructor(readable, writable, options, config) {
|
|
5897
|
+
const { codecType } = options;
|
|
5898
|
+
let CodecStream;
|
|
5899
|
+
if (codecType.startsWith(CODEC_DEFLATE)) {
|
|
5900
|
+
CodecStream = DeflateStream;
|
|
5901
|
+
} else if (codecType.startsWith(CODEC_INFLATE)) {
|
|
5902
|
+
CodecStream = InflateStream;
|
|
5903
|
+
}
|
|
5904
|
+
Object.assign(this, {
|
|
5905
|
+
CodecStream,
|
|
5906
|
+
readable,
|
|
5907
|
+
writable,
|
|
5908
|
+
options,
|
|
5909
|
+
config
|
|
6720
5910
|
});
|
|
6721
5911
|
}
|
|
6722
|
-
}
|
|
6723
5912
|
|
|
6724
|
-
|
|
6725
|
-
|
|
6726
|
-
|
|
6727
|
-
|
|
6728
|
-
|
|
5913
|
+
async run() {
|
|
5914
|
+
const {
|
|
5915
|
+
CodecStream,
|
|
5916
|
+
readable,
|
|
5917
|
+
writable,
|
|
5918
|
+
options,
|
|
5919
|
+
config
|
|
5920
|
+
} = this;
|
|
5921
|
+
const stream = new CodecStream(options, config);
|
|
5922
|
+
let size = 0;
|
|
5923
|
+
await readable
|
|
5924
|
+
.pipeThrough(stream)
|
|
5925
|
+
.pipeThrough(new TransformStream({
|
|
5926
|
+
transform(chunk, controller) {
|
|
5927
|
+
if (chunk && chunk.length) {
|
|
5928
|
+
size += chunk.length;
|
|
5929
|
+
controller.enqueue(chunk);
|
|
5930
|
+
}
|
|
5931
|
+
}
|
|
5932
|
+
}))
|
|
5933
|
+
.pipeTo(writable, { preventClose: true, preventAbort: true });
|
|
5934
|
+
const { signature } = stream;
|
|
5935
|
+
return { size, signature };
|
|
6729
5936
|
}
|
|
6730
|
-
return output;
|
|
6731
5937
|
}
|
|
6732
5938
|
|
|
6733
|
-
function
|
|
6734
|
-
|
|
6735
|
-
|
|
6736
|
-
|
|
6737
|
-
|
|
6738
|
-
}
|
|
6739
|
-
return output;
|
|
5939
|
+
function getCodecStreamClass(Codec) {
|
|
5940
|
+
return class extends CodecStream {
|
|
5941
|
+
constructor(algorithm, options) {
|
|
5942
|
+
super(Codec, options);
|
|
5943
|
+
}
|
|
5944
|
+
};
|
|
6740
5945
|
}
|
|
6741
5946
|
|
|
6742
|
-
|
|
6743
|
-
|
|
6744
|
-
|
|
6745
|
-
|
|
6746
|
-
|
|
6747
|
-
|
|
5947
|
+
/*
|
|
5948
|
+
Copyright (c) 2022 Gildas Lormeau. All rights reserved.
|
|
5949
|
+
|
|
5950
|
+
Redistribution and use in source and binary forms, with or without
|
|
5951
|
+
modification, are permitted provided that the following conditions are met:
|
|
5952
|
+
|
|
5953
|
+
1. Redistributions of source code must retain the above copyright notice,
|
|
5954
|
+
this list of conditions and the following disclaimer.
|
|
5955
|
+
|
|
5956
|
+
2. Redistributions in binary form must reproduce the above copyright
|
|
5957
|
+
notice, this list of conditions and the following disclaimer in
|
|
5958
|
+
the documentation and/or other materials provided with the distribution.
|
|
5959
|
+
|
|
5960
|
+
3. The names of the authors may not be used to endorse or promote products
|
|
5961
|
+
derived from this software without specific prior written permission.
|
|
5962
|
+
|
|
5963
|
+
THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
|
|
5964
|
+
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
5965
|
+
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
|
|
5966
|
+
INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
5967
|
+
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
5968
|
+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
|
5969
|
+
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
5970
|
+
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
5971
|
+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
5972
|
+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
5973
|
+
*/
|
|
5974
|
+
|
|
5975
|
+
const MINIMUM_CHUNK_SIZE = 64;
|
|
5976
|
+
const UNDEFINED_VALUE = undefined;
|
|
5977
|
+
let maxWorkers = 2;
|
|
5978
|
+
try {
|
|
5979
|
+
if (typeof navigator != "undefined" && navigator.hardwareConcurrency) {
|
|
5980
|
+
maxWorkers = navigator.hardwareConcurrency;
|
|
6748
5981
|
}
|
|
5982
|
+
} catch (_error) {
|
|
5983
|
+
// ignored
|
|
6749
5984
|
}
|
|
5985
|
+
const DEFAULT_CONFIGURATION = {
|
|
5986
|
+
chunkSize: 512 * 1024,
|
|
5987
|
+
maxWorkers,
|
|
5988
|
+
terminateWorkerTimeout: 5000,
|
|
5989
|
+
useWebWorkers: true,
|
|
5990
|
+
useCompressionStream: true,
|
|
5991
|
+
workerScripts: undefined,
|
|
5992
|
+
CompressionStreamNative: typeof CompressionStream != "undefined" && CompressionStream,
|
|
5993
|
+
DecompressionStreamNative: typeof DecompressionStream != "undefined" && DecompressionStream
|
|
5994
|
+
};
|
|
6750
5995
|
|
|
6751
|
-
|
|
6752
|
-
|
|
6753
|
-
|
|
6754
|
-
|
|
6755
|
-
target.keys[1] = getInt32(Math.imul(target.keys[1], 134775813) + 1);
|
|
6756
|
-
target.crcKey2.append([target.keys[1] >>> 24]);
|
|
6757
|
-
target.keys[2] = ~target.crcKey2.get();
|
|
5996
|
+
const config = Object.assign({}, DEFAULT_CONFIGURATION);
|
|
5997
|
+
|
|
5998
|
+
function getConfiguration() {
|
|
5999
|
+
return config;
|
|
6758
6000
|
}
|
|
6759
6001
|
|
|
6760
|
-
function
|
|
6761
|
-
|
|
6762
|
-
return getInt8(Math.imul(temp, (temp ^ 1)) >>> 8);
|
|
6002
|
+
function getChunkSize(config) {
|
|
6003
|
+
return Math.max(config.chunkSize, MINIMUM_CHUNK_SIZE);
|
|
6763
6004
|
}
|
|
6764
6005
|
|
|
6765
|
-
function
|
|
6766
|
-
|
|
6006
|
+
function configure(configuration) {
|
|
6007
|
+
const {
|
|
6008
|
+
baseURL,
|
|
6009
|
+
chunkSize,
|
|
6010
|
+
maxWorkers,
|
|
6011
|
+
terminateWorkerTimeout,
|
|
6012
|
+
useCompressionStream,
|
|
6013
|
+
useWebWorkers,
|
|
6014
|
+
Deflate,
|
|
6015
|
+
Inflate,
|
|
6016
|
+
CompressionStream,
|
|
6017
|
+
DecompressionStream,
|
|
6018
|
+
workerScripts
|
|
6019
|
+
} = configuration;
|
|
6020
|
+
setIfDefined("baseURL", baseURL);
|
|
6021
|
+
setIfDefined("chunkSize", chunkSize);
|
|
6022
|
+
setIfDefined("maxWorkers", maxWorkers);
|
|
6023
|
+
setIfDefined("terminateWorkerTimeout", terminateWorkerTimeout);
|
|
6024
|
+
setIfDefined("useCompressionStream", useCompressionStream);
|
|
6025
|
+
setIfDefined("useWebWorkers", useWebWorkers);
|
|
6026
|
+
if (Deflate) {
|
|
6027
|
+
config.CompressionStream = getCodecStreamClass(Deflate);
|
|
6028
|
+
}
|
|
6029
|
+
if (Inflate) {
|
|
6030
|
+
config.DecompressionStream = getCodecStreamClass(Inflate);
|
|
6031
|
+
}
|
|
6032
|
+
setIfDefined("CompressionStream", CompressionStream);
|
|
6033
|
+
setIfDefined("DecompressionStream", DecompressionStream);
|
|
6034
|
+
if (workerScripts !== UNDEFINED_VALUE) {
|
|
6035
|
+
const { deflate, inflate } = workerScripts;
|
|
6036
|
+
if (deflate || inflate) {
|
|
6037
|
+
if (!config.workerScripts) {
|
|
6038
|
+
config.workerScripts = {};
|
|
6039
|
+
}
|
|
6040
|
+
}
|
|
6041
|
+
if (deflate) {
|
|
6042
|
+
if (!Array.isArray(deflate)) {
|
|
6043
|
+
throw new Error("workerScripts.deflate must be an array");
|
|
6044
|
+
}
|
|
6045
|
+
config.workerScripts.deflate = deflate;
|
|
6046
|
+
}
|
|
6047
|
+
if (inflate) {
|
|
6048
|
+
if (!Array.isArray(inflate)) {
|
|
6049
|
+
throw new Error("workerScripts.inflate must be an array");
|
|
6050
|
+
}
|
|
6051
|
+
config.workerScripts.inflate = inflate;
|
|
6052
|
+
}
|
|
6053
|
+
}
|
|
6767
6054
|
}
|
|
6768
6055
|
|
|
6769
|
-
function
|
|
6770
|
-
|
|
6056
|
+
function setIfDefined(propertyName, propertyValue) {
|
|
6057
|
+
if (propertyValue !== UNDEFINED_VALUE) {
|
|
6058
|
+
config[propertyName] = propertyValue;
|
|
6059
|
+
}
|
|
6771
6060
|
}
|
|
6772
6061
|
|
|
6773
6062
|
/*
|
|
@@ -6798,35 +6087,8 @@
|
|
|
6798
6087
|
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
6799
6088
|
*/
|
|
6800
6089
|
|
|
6801
|
-
|
|
6802
|
-
|
|
6803
|
-
* JZlib is based on zlib-1.1.3, so all credit should go authors
|
|
6804
|
-
* Jean-loup Gailly(jloup@gzip.org) and Mark Adler(madler@alumni.caltech.edu)
|
|
6805
|
-
* and contributors of zlib.
|
|
6806
|
-
*/
|
|
6807
|
-
|
|
6808
|
-
/* global TransformStream */
|
|
6809
|
-
|
|
6810
|
-
class CodecStream extends TransformStream {
|
|
6811
|
-
|
|
6812
|
-
constructor(Codec, options) {
|
|
6813
|
-
let codec;
|
|
6814
|
-
super({
|
|
6815
|
-
start() {
|
|
6816
|
-
codec = new Codec(options);
|
|
6817
|
-
},
|
|
6818
|
-
transform(chunk, controller) {
|
|
6819
|
-
chunk = codec.append(chunk);
|
|
6820
|
-
controller.enqueue(chunk);
|
|
6821
|
-
},
|
|
6822
|
-
flush(controller) {
|
|
6823
|
-
const chunk = codec.flush();
|
|
6824
|
-
if (chunk) {
|
|
6825
|
-
controller.enqueue(chunk);
|
|
6826
|
-
}
|
|
6827
|
-
}
|
|
6828
|
-
});
|
|
6829
|
-
}
|
|
6090
|
+
function getMimeType$1() {
|
|
6091
|
+
return "application/octet-stream";
|
|
6830
6092
|
}
|
|
6831
6093
|
|
|
6832
6094
|
/*
|
|
@@ -6857,214 +6119,977 @@
|
|
|
6857
6119
|
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
6858
6120
|
*/
|
|
6859
6121
|
|
|
6860
|
-
const
|
|
6861
|
-
|
|
6862
|
-
|
|
6863
|
-
|
|
6864
|
-
|
|
6865
|
-
|
|
6866
|
-
|
|
6867
|
-
|
|
6868
|
-
|
|
6869
|
-
|
|
6870
|
-
|
|
6871
|
-
|
|
6872
|
-
|
|
6873
|
-
|
|
6874
|
-
|
|
6875
|
-
|
|
6876
|
-
|
|
6877
|
-
|
|
6878
|
-
|
|
6879
|
-
|
|
6880
|
-
|
|
6881
|
-
|
|
6882
|
-
|
|
6883
|
-
|
|
6884
|
-
|
|
6885
|
-
|
|
6886
|
-
|
|
6887
|
-
|
|
6888
|
-
|
|
6889
|
-
|
|
6890
|
-
|
|
6891
|
-
|
|
6892
|
-
|
|
6893
|
-
|
|
6894
|
-
|
|
6895
|
-
|
|
6896
|
-
|
|
6897
|
-
|
|
6898
|
-
|
|
6899
|
-
|
|
6900
|
-
|
|
6901
|
-
|
|
6902
|
-
|
|
6903
|
-
|
|
6904
|
-
|
|
6905
|
-
|
|
6906
|
-
|
|
6907
|
-
|
|
6908
|
-
|
|
6909
|
-
|
|
6910
|
-
|
|
6122
|
+
const table = {
|
|
6123
|
+
"application": {
|
|
6124
|
+
"andrew-inset": "ez",
|
|
6125
|
+
"annodex": "anx",
|
|
6126
|
+
"atom+xml": "atom",
|
|
6127
|
+
"atomcat+xml": "atomcat",
|
|
6128
|
+
"atomserv+xml": "atomsrv",
|
|
6129
|
+
"bbolin": "lin",
|
|
6130
|
+
"cap": ["cap", "pcap"],
|
|
6131
|
+
"cu-seeme": "cu",
|
|
6132
|
+
"davmount+xml": "davmount",
|
|
6133
|
+
"dsptype": "tsp",
|
|
6134
|
+
"ecmascript": ["es", "ecma"],
|
|
6135
|
+
"futuresplash": "spl",
|
|
6136
|
+
"hta": "hta",
|
|
6137
|
+
"java-archive": "jar",
|
|
6138
|
+
"java-serialized-object": "ser",
|
|
6139
|
+
"java-vm": "class",
|
|
6140
|
+
"javascript": "js",
|
|
6141
|
+
"m3g": "m3g",
|
|
6142
|
+
"mac-binhex40": "hqx",
|
|
6143
|
+
"mathematica": ["nb", "ma", "mb"],
|
|
6144
|
+
"msaccess": "mdb",
|
|
6145
|
+
"msword": ["doc", "dot"],
|
|
6146
|
+
"mxf": "mxf",
|
|
6147
|
+
"oda": "oda",
|
|
6148
|
+
"ogg": "ogx",
|
|
6149
|
+
"pdf": "pdf",
|
|
6150
|
+
"pgp-keys": "key",
|
|
6151
|
+
"pgp-signature": ["asc", "sig"],
|
|
6152
|
+
"pics-rules": "prf",
|
|
6153
|
+
"postscript": ["ps", "ai", "eps", "epsi", "epsf", "eps2", "eps3"],
|
|
6154
|
+
"rar": "rar",
|
|
6155
|
+
"rdf+xml": "rdf",
|
|
6156
|
+
"rss+xml": "rss",
|
|
6157
|
+
"rtf": "rtf",
|
|
6158
|
+
"smil": ["smi", "smil"],
|
|
6159
|
+
"xhtml+xml": ["xhtml", "xht"],
|
|
6160
|
+
"xml": ["xml", "xsl", "xsd"],
|
|
6161
|
+
"xspf+xml": "xspf",
|
|
6162
|
+
"zip": "zip",
|
|
6163
|
+
"vnd.android.package-archive": "apk",
|
|
6164
|
+
"vnd.cinderella": "cdy",
|
|
6165
|
+
"vnd.google-earth.kml+xml": "kml",
|
|
6166
|
+
"vnd.google-earth.kmz": "kmz",
|
|
6167
|
+
"vnd.mozilla.xul+xml": "xul",
|
|
6168
|
+
"vnd.ms-excel": ["xls", "xlb", "xlt", "xlm", "xla", "xlc", "xlw"],
|
|
6169
|
+
"vnd.ms-pki.seccat": "cat",
|
|
6170
|
+
"vnd.ms-pki.stl": "stl",
|
|
6171
|
+
"vnd.ms-powerpoint": ["ppt", "pps", "pot"],
|
|
6172
|
+
"vnd.oasis.opendocument.chart": "odc",
|
|
6173
|
+
"vnd.oasis.opendocument.database": "odb",
|
|
6174
|
+
"vnd.oasis.opendocument.formula": "odf",
|
|
6175
|
+
"vnd.oasis.opendocument.graphics": "odg",
|
|
6176
|
+
"vnd.oasis.opendocument.graphics-template": "otg",
|
|
6177
|
+
"vnd.oasis.opendocument.image": "odi",
|
|
6178
|
+
"vnd.oasis.opendocument.presentation": "odp",
|
|
6179
|
+
"vnd.oasis.opendocument.presentation-template": "otp",
|
|
6180
|
+
"vnd.oasis.opendocument.spreadsheet": "ods",
|
|
6181
|
+
"vnd.oasis.opendocument.spreadsheet-template": "ots",
|
|
6182
|
+
"vnd.oasis.opendocument.text": "odt",
|
|
6183
|
+
"vnd.oasis.opendocument.text-master": "odm",
|
|
6184
|
+
"vnd.oasis.opendocument.text-template": "ott",
|
|
6185
|
+
"vnd.oasis.opendocument.text-web": "oth",
|
|
6186
|
+
"vnd.openxmlformats-officedocument.spreadsheetml.sheet": "xlsx",
|
|
6187
|
+
"vnd.openxmlformats-officedocument.spreadsheetml.template": "xltx",
|
|
6188
|
+
"vnd.openxmlformats-officedocument.presentationml.presentation": "pptx",
|
|
6189
|
+
"vnd.openxmlformats-officedocument.presentationml.slideshow": "ppsx",
|
|
6190
|
+
"vnd.openxmlformats-officedocument.presentationml.template": "potx",
|
|
6191
|
+
"vnd.openxmlformats-officedocument.wordprocessingml.document": "docx",
|
|
6192
|
+
"vnd.openxmlformats-officedocument.wordprocessingml.template": "dotx",
|
|
6193
|
+
"vnd.smaf": "mmf",
|
|
6194
|
+
"vnd.stardivision.calc": "sdc",
|
|
6195
|
+
"vnd.stardivision.chart": "sds",
|
|
6196
|
+
"vnd.stardivision.draw": "sda",
|
|
6197
|
+
"vnd.stardivision.impress": "sdd",
|
|
6198
|
+
"vnd.stardivision.math": ["sdf", "smf"],
|
|
6199
|
+
"vnd.stardivision.writer": ["sdw", "vor"],
|
|
6200
|
+
"vnd.stardivision.writer-global": "sgl",
|
|
6201
|
+
"vnd.sun.xml.calc": "sxc",
|
|
6202
|
+
"vnd.sun.xml.calc.template": "stc",
|
|
6203
|
+
"vnd.sun.xml.draw": "sxd",
|
|
6204
|
+
"vnd.sun.xml.draw.template": "std",
|
|
6205
|
+
"vnd.sun.xml.impress": "sxi",
|
|
6206
|
+
"vnd.sun.xml.impress.template": "sti",
|
|
6207
|
+
"vnd.sun.xml.math": "sxm",
|
|
6208
|
+
"vnd.sun.xml.writer": "sxw",
|
|
6209
|
+
"vnd.sun.xml.writer.global": "sxg",
|
|
6210
|
+
"vnd.sun.xml.writer.template": "stw",
|
|
6211
|
+
"vnd.symbian.install": ["sis", "sisx"],
|
|
6212
|
+
"vnd.visio": ["vsd", "vst", "vss", "vsw"],
|
|
6213
|
+
"vnd.wap.wbxml": "wbxml",
|
|
6214
|
+
"vnd.wap.wmlc": "wmlc",
|
|
6215
|
+
"vnd.wap.wmlscriptc": "wmlsc",
|
|
6216
|
+
"vnd.wordperfect": "wpd",
|
|
6217
|
+
"vnd.wordperfect5.1": "wp5",
|
|
6218
|
+
"x-123": "wk",
|
|
6219
|
+
"x-7z-compressed": "7z",
|
|
6220
|
+
"x-abiword": "abw",
|
|
6221
|
+
"x-apple-diskimage": "dmg",
|
|
6222
|
+
"x-bcpio": "bcpio",
|
|
6223
|
+
"x-bittorrent": "torrent",
|
|
6224
|
+
"x-cbr": ["cbr", "cba", "cbt", "cb7"],
|
|
6225
|
+
"x-cbz": "cbz",
|
|
6226
|
+
"x-cdf": ["cdf", "cda"],
|
|
6227
|
+
"x-cdlink": "vcd",
|
|
6228
|
+
"x-chess-pgn": "pgn",
|
|
6229
|
+
"x-cpio": "cpio",
|
|
6230
|
+
"x-csh": "csh",
|
|
6231
|
+
"x-debian-package": ["deb", "udeb"],
|
|
6232
|
+
"x-director": ["dcr", "dir", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"],
|
|
6233
|
+
"x-dms": "dms",
|
|
6234
|
+
"x-doom": "wad",
|
|
6235
|
+
"x-dvi": "dvi",
|
|
6236
|
+
"x-httpd-eruby": "rhtml",
|
|
6237
|
+
"x-font": "pcf.Z",
|
|
6238
|
+
"x-freemind": "mm",
|
|
6239
|
+
"x-gnumeric": "gnumeric",
|
|
6240
|
+
"x-go-sgf": "sgf",
|
|
6241
|
+
"x-graphing-calculator": "gcf",
|
|
6242
|
+
"x-gtar": ["gtar", "taz"],
|
|
6243
|
+
"x-hdf": "hdf",
|
|
6244
|
+
"x-httpd-php": ["phtml", "pht", "php"],
|
|
6245
|
+
"x-httpd-php-source": "phps",
|
|
6246
|
+
"x-httpd-php3": "php3",
|
|
6247
|
+
"x-httpd-php3-preprocessed": "php3p",
|
|
6248
|
+
"x-httpd-php4": "php4",
|
|
6249
|
+
"x-httpd-php5": "php5",
|
|
6250
|
+
"x-ica": "ica",
|
|
6251
|
+
"x-info": "info",
|
|
6252
|
+
"x-internet-signup": ["ins", "isp"],
|
|
6253
|
+
"x-iphone": "iii",
|
|
6254
|
+
"x-iso9660-image": "iso",
|
|
6255
|
+
"x-java-jnlp-file": "jnlp",
|
|
6256
|
+
"x-jmol": "jmz",
|
|
6257
|
+
"x-killustrator": "kil",
|
|
6258
|
+
"x-koan": ["skp", "skd", "skt", "skm"],
|
|
6259
|
+
"x-kpresenter": ["kpr", "kpt"],
|
|
6260
|
+
"x-kword": ["kwd", "kwt"],
|
|
6261
|
+
"x-latex": "latex",
|
|
6262
|
+
"x-lha": "lha",
|
|
6263
|
+
"x-lyx": "lyx",
|
|
6264
|
+
"x-lzh": "lzh",
|
|
6265
|
+
"x-lzx": "lzx",
|
|
6266
|
+
"x-maker": ["frm", "maker", "frame", "fm", "fb", "book", "fbdoc"],
|
|
6267
|
+
"x-ms-wmd": "wmd",
|
|
6268
|
+
"x-ms-wmz": "wmz",
|
|
6269
|
+
"x-msdos-program": ["com", "exe", "bat", "dll"],
|
|
6270
|
+
"x-msi": "msi",
|
|
6271
|
+
"x-netcdf": ["nc", "cdf"],
|
|
6272
|
+
"x-ns-proxy-autoconfig": ["pac", "dat"],
|
|
6273
|
+
"x-nwc": "nwc",
|
|
6274
|
+
"x-object": "o",
|
|
6275
|
+
"x-oz-application": "oza",
|
|
6276
|
+
"x-pkcs7-certreqresp": "p7r",
|
|
6277
|
+
"x-python-code": ["pyc", "pyo"],
|
|
6278
|
+
"x-qgis": ["qgs", "shp", "shx"],
|
|
6279
|
+
"x-quicktimeplayer": "qtl",
|
|
6280
|
+
"x-redhat-package-manager": "rpm",
|
|
6281
|
+
"x-ruby": "rb",
|
|
6282
|
+
"x-sh": "sh",
|
|
6283
|
+
"x-shar": "shar",
|
|
6284
|
+
"x-shockwave-flash": ["swf", "swfl"],
|
|
6285
|
+
"x-silverlight": "scr",
|
|
6286
|
+
"x-stuffit": "sit",
|
|
6287
|
+
"x-sv4cpio": "sv4cpio",
|
|
6288
|
+
"x-sv4crc": "sv4crc",
|
|
6289
|
+
"x-tar": "tar",
|
|
6290
|
+
"x-tcl": "tcl",
|
|
6291
|
+
"x-tex-gf": "gf",
|
|
6292
|
+
"x-tex-pk": "pk",
|
|
6293
|
+
"x-texinfo": ["texinfo", "texi"],
|
|
6294
|
+
"x-trash": ["~", "%", "bak", "old", "sik"],
|
|
6295
|
+
"x-troff": ["t", "tr", "roff"],
|
|
6296
|
+
"x-troff-man": "man",
|
|
6297
|
+
"x-troff-me": "me",
|
|
6298
|
+
"x-troff-ms": "ms",
|
|
6299
|
+
"x-ustar": "ustar",
|
|
6300
|
+
"x-wais-source": "src",
|
|
6301
|
+
"x-wingz": "wz",
|
|
6302
|
+
"x-x509-ca-cert": ["crt", "der", "cer"],
|
|
6303
|
+
"x-xcf": "xcf",
|
|
6304
|
+
"x-xfig": "fig",
|
|
6305
|
+
"x-xpinstall": "xpi",
|
|
6306
|
+
"applixware": "aw",
|
|
6307
|
+
"atomsvc+xml": "atomsvc",
|
|
6308
|
+
"ccxml+xml": "ccxml",
|
|
6309
|
+
"cdmi-capability": "cdmia",
|
|
6310
|
+
"cdmi-container": "cdmic",
|
|
6311
|
+
"cdmi-domain": "cdmid",
|
|
6312
|
+
"cdmi-object": "cdmio",
|
|
6313
|
+
"cdmi-queue": "cdmiq",
|
|
6314
|
+
"docbook+xml": "dbk",
|
|
6315
|
+
"dssc+der": "dssc",
|
|
6316
|
+
"dssc+xml": "xdssc",
|
|
6317
|
+
"emma+xml": "emma",
|
|
6318
|
+
"epub+zip": "epub",
|
|
6319
|
+
"exi": "exi",
|
|
6320
|
+
"font-tdpfr": "pfr",
|
|
6321
|
+
"gml+xml": "gml",
|
|
6322
|
+
"gpx+xml": "gpx",
|
|
6323
|
+
"gxf": "gxf",
|
|
6324
|
+
"hyperstudio": "stk",
|
|
6325
|
+
"inkml+xml": ["ink", "inkml"],
|
|
6326
|
+
"ipfix": "ipfix",
|
|
6327
|
+
"json": "json",
|
|
6328
|
+
"jsonml+json": "jsonml",
|
|
6329
|
+
"lost+xml": "lostxml",
|
|
6330
|
+
"mads+xml": "mads",
|
|
6331
|
+
"marc": "mrc",
|
|
6332
|
+
"marcxml+xml": "mrcx",
|
|
6333
|
+
"mathml+xml": "mathml",
|
|
6334
|
+
"mbox": "mbox",
|
|
6335
|
+
"mediaservercontrol+xml": "mscml",
|
|
6336
|
+
"metalink+xml": "metalink",
|
|
6337
|
+
"metalink4+xml": "meta4",
|
|
6338
|
+
"mets+xml": "mets",
|
|
6339
|
+
"mods+xml": "mods",
|
|
6340
|
+
"mp21": ["m21", "mp21"],
|
|
6341
|
+
"mp4": "mp4s",
|
|
6342
|
+
"oebps-package+xml": "opf",
|
|
6343
|
+
"omdoc+xml": "omdoc",
|
|
6344
|
+
"onenote": ["onetoc", "onetoc2", "onetmp", "onepkg"],
|
|
6345
|
+
"oxps": "oxps",
|
|
6346
|
+
"patch-ops-error+xml": "xer",
|
|
6347
|
+
"pgp-encrypted": "pgp",
|
|
6348
|
+
"pkcs10": "p10",
|
|
6349
|
+
"pkcs7-mime": ["p7m", "p7c"],
|
|
6350
|
+
"pkcs7-signature": "p7s",
|
|
6351
|
+
"pkcs8": "p8",
|
|
6352
|
+
"pkix-attr-cert": "ac",
|
|
6353
|
+
"pkix-crl": "crl",
|
|
6354
|
+
"pkix-pkipath": "pkipath",
|
|
6355
|
+
"pkixcmp": "pki",
|
|
6356
|
+
"pls+xml": "pls",
|
|
6357
|
+
"prs.cww": "cww",
|
|
6358
|
+
"pskc+xml": "pskcxml",
|
|
6359
|
+
"reginfo+xml": "rif",
|
|
6360
|
+
"relax-ng-compact-syntax": "rnc",
|
|
6361
|
+
"resource-lists+xml": "rl",
|
|
6362
|
+
"resource-lists-diff+xml": "rld",
|
|
6363
|
+
"rls-services+xml": "rs",
|
|
6364
|
+
"rpki-ghostbusters": "gbr",
|
|
6365
|
+
"rpki-manifest": "mft",
|
|
6366
|
+
"rpki-roa": "roa",
|
|
6367
|
+
"rsd+xml": "rsd",
|
|
6368
|
+
"sbml+xml": "sbml",
|
|
6369
|
+
"scvp-cv-request": "scq",
|
|
6370
|
+
"scvp-cv-response": "scs",
|
|
6371
|
+
"scvp-vp-request": "spq",
|
|
6372
|
+
"scvp-vp-response": "spp",
|
|
6373
|
+
"sdp": "sdp",
|
|
6374
|
+
"set-payment-initiation": "setpay",
|
|
6375
|
+
"set-registration-initiation": "setreg",
|
|
6376
|
+
"shf+xml": "shf",
|
|
6377
|
+
"sparql-query": "rq",
|
|
6378
|
+
"sparql-results+xml": "srx",
|
|
6379
|
+
"srgs": "gram",
|
|
6380
|
+
"srgs+xml": "grxml",
|
|
6381
|
+
"sru+xml": "sru",
|
|
6382
|
+
"ssdl+xml": "ssdl",
|
|
6383
|
+
"ssml+xml": "ssml",
|
|
6384
|
+
"tei+xml": ["tei", "teicorpus"],
|
|
6385
|
+
"thraud+xml": "tfi",
|
|
6386
|
+
"timestamped-data": "tsd",
|
|
6387
|
+
"vnd.3gpp.pic-bw-large": "plb",
|
|
6388
|
+
"vnd.3gpp.pic-bw-small": "psb",
|
|
6389
|
+
"vnd.3gpp.pic-bw-var": "pvb",
|
|
6390
|
+
"vnd.3gpp2.tcap": "tcap",
|
|
6391
|
+
"vnd.3m.post-it-notes": "pwn",
|
|
6392
|
+
"vnd.accpac.simply.aso": "aso",
|
|
6393
|
+
"vnd.accpac.simply.imp": "imp",
|
|
6394
|
+
"vnd.acucobol": "acu",
|
|
6395
|
+
"vnd.acucorp": ["atc", "acutc"],
|
|
6396
|
+
"vnd.adobe.air-application-installer-package+zip": "air",
|
|
6397
|
+
"vnd.adobe.formscentral.fcdt": "fcdt",
|
|
6398
|
+
"vnd.adobe.fxp": ["fxp", "fxpl"],
|
|
6399
|
+
"vnd.adobe.xdp+xml": "xdp",
|
|
6400
|
+
"vnd.adobe.xfdf": "xfdf",
|
|
6401
|
+
"vnd.ahead.space": "ahead",
|
|
6402
|
+
"vnd.airzip.filesecure.azf": "azf",
|
|
6403
|
+
"vnd.airzip.filesecure.azs": "azs",
|
|
6404
|
+
"vnd.amazon.ebook": "azw",
|
|
6405
|
+
"vnd.americandynamics.acc": "acc",
|
|
6406
|
+
"vnd.amiga.ami": "ami",
|
|
6407
|
+
"vnd.anser-web-certificate-issue-initiation": "cii",
|
|
6408
|
+
"vnd.anser-web-funds-transfer-initiation": "fti",
|
|
6409
|
+
"vnd.antix.game-component": "atx",
|
|
6410
|
+
"vnd.apple.installer+xml": "mpkg",
|
|
6411
|
+
"vnd.apple.mpegurl": "m3u8",
|
|
6412
|
+
"vnd.aristanetworks.swi": "swi",
|
|
6413
|
+
"vnd.astraea-software.iota": "iota",
|
|
6414
|
+
"vnd.audiograph": "aep",
|
|
6415
|
+
"vnd.blueice.multipass": "mpm",
|
|
6416
|
+
"vnd.bmi": "bmi",
|
|
6417
|
+
"vnd.businessobjects": "rep",
|
|
6418
|
+
"vnd.chemdraw+xml": "cdxml",
|
|
6419
|
+
"vnd.chipnuts.karaoke-mmd": "mmd",
|
|
6420
|
+
"vnd.claymore": "cla",
|
|
6421
|
+
"vnd.cloanto.rp9": "rp9",
|
|
6422
|
+
"vnd.clonk.c4group": ["c4g", "c4d", "c4f", "c4p", "c4u"],
|
|
6423
|
+
"vnd.cluetrust.cartomobile-config": "c11amc",
|
|
6424
|
+
"vnd.cluetrust.cartomobile-config-pkg": "c11amz",
|
|
6425
|
+
"vnd.commonspace": "csp",
|
|
6426
|
+
"vnd.contact.cmsg": "cdbcmsg",
|
|
6427
|
+
"vnd.cosmocaller": "cmc",
|
|
6428
|
+
"vnd.crick.clicker": "clkx",
|
|
6429
|
+
"vnd.crick.clicker.keyboard": "clkk",
|
|
6430
|
+
"vnd.crick.clicker.palette": "clkp",
|
|
6431
|
+
"vnd.crick.clicker.template": "clkt",
|
|
6432
|
+
"vnd.crick.clicker.wordbank": "clkw",
|
|
6433
|
+
"vnd.criticaltools.wbs+xml": "wbs",
|
|
6434
|
+
"vnd.ctc-posml": "pml",
|
|
6435
|
+
"vnd.cups-ppd": "ppd",
|
|
6436
|
+
"vnd.curl.car": "car",
|
|
6437
|
+
"vnd.curl.pcurl": "pcurl",
|
|
6438
|
+
"vnd.dart": "dart",
|
|
6439
|
+
"vnd.data-vision.rdz": "rdz",
|
|
6440
|
+
"vnd.dece.data": ["uvf", "uvvf", "uvd", "uvvd"],
|
|
6441
|
+
"vnd.dece.ttml+xml": ["uvt", "uvvt"],
|
|
6442
|
+
"vnd.dece.unspecified": ["uvx", "uvvx"],
|
|
6443
|
+
"vnd.dece.zip": ["uvz", "uvvz"],
|
|
6444
|
+
"vnd.denovo.fcselayout-link": "fe_launch",
|
|
6445
|
+
"vnd.dna": "dna",
|
|
6446
|
+
"vnd.dolby.mlp": "mlp",
|
|
6447
|
+
"vnd.dpgraph": "dpg",
|
|
6448
|
+
"vnd.dreamfactory": "dfac",
|
|
6449
|
+
"vnd.ds-keypoint": "kpxx",
|
|
6450
|
+
"vnd.dvb.ait": "ait",
|
|
6451
|
+
"vnd.dvb.service": "svc",
|
|
6452
|
+
"vnd.dynageo": "geo",
|
|
6453
|
+
"vnd.ecowin.chart": "mag",
|
|
6454
|
+
"vnd.enliven": "nml",
|
|
6455
|
+
"vnd.epson.esf": "esf",
|
|
6456
|
+
"vnd.epson.msf": "msf",
|
|
6457
|
+
"vnd.epson.quickanime": "qam",
|
|
6458
|
+
"vnd.epson.salt": "slt",
|
|
6459
|
+
"vnd.epson.ssf": "ssf",
|
|
6460
|
+
"vnd.eszigno3+xml": ["es3", "et3"],
|
|
6461
|
+
"vnd.ezpix-album": "ez2",
|
|
6462
|
+
"vnd.ezpix-package": "ez3",
|
|
6463
|
+
"vnd.fdf": "fdf",
|
|
6464
|
+
"vnd.fdsn.mseed": "mseed",
|
|
6465
|
+
"vnd.fdsn.seed": ["seed", "dataless"],
|
|
6466
|
+
"vnd.flographit": "gph",
|
|
6467
|
+
"vnd.fluxtime.clip": "ftc",
|
|
6468
|
+
"vnd.framemaker": ["fm", "frame", "maker", "book"],
|
|
6469
|
+
"vnd.frogans.fnc": "fnc",
|
|
6470
|
+
"vnd.frogans.ltf": "ltf",
|
|
6471
|
+
"vnd.fsc.weblaunch": "fsc",
|
|
6472
|
+
"vnd.fujitsu.oasys": "oas",
|
|
6473
|
+
"vnd.fujitsu.oasys2": "oa2",
|
|
6474
|
+
"vnd.fujitsu.oasys3": "oa3",
|
|
6475
|
+
"vnd.fujitsu.oasysgp": "fg5",
|
|
6476
|
+
"vnd.fujitsu.oasysprs": "bh2",
|
|
6477
|
+
"vnd.fujixerox.ddd": "ddd",
|
|
6478
|
+
"vnd.fujixerox.docuworks": "xdw",
|
|
6479
|
+
"vnd.fujixerox.docuworks.binder": "xbd",
|
|
6480
|
+
"vnd.fuzzysheet": "fzs",
|
|
6481
|
+
"vnd.genomatix.tuxedo": "txd",
|
|
6482
|
+
"vnd.geogebra.file": "ggb",
|
|
6483
|
+
"vnd.geogebra.tool": "ggt",
|
|
6484
|
+
"vnd.geometry-explorer": ["gex", "gre"],
|
|
6485
|
+
"vnd.geonext": "gxt",
|
|
6486
|
+
"vnd.geoplan": "g2w",
|
|
6487
|
+
"vnd.geospace": "g3w",
|
|
6488
|
+
"vnd.gmx": "gmx",
|
|
6489
|
+
"vnd.grafeq": ["gqf", "gqs"],
|
|
6490
|
+
"vnd.groove-account": "gac",
|
|
6491
|
+
"vnd.groove-help": "ghf",
|
|
6492
|
+
"vnd.groove-identity-message": "gim",
|
|
6493
|
+
"vnd.groove-injector": "grv",
|
|
6494
|
+
"vnd.groove-tool-message": "gtm",
|
|
6495
|
+
"vnd.groove-tool-template": "tpl",
|
|
6496
|
+
"vnd.groove-vcard": "vcg",
|
|
6497
|
+
"vnd.hal+xml": "hal",
|
|
6498
|
+
"vnd.handheld-entertainment+xml": "zmm",
|
|
6499
|
+
"vnd.hbci": "hbci",
|
|
6500
|
+
"vnd.hhe.lesson-player": "les",
|
|
6501
|
+
"vnd.hp-hpgl": "hpgl",
|
|
6502
|
+
"vnd.hp-hpid": "hpid",
|
|
6503
|
+
"vnd.hp-hps": "hps",
|
|
6504
|
+
"vnd.hp-jlyt": "jlt",
|
|
6505
|
+
"vnd.hp-pcl": "pcl",
|
|
6506
|
+
"vnd.hp-pclxl": "pclxl",
|
|
6507
|
+
"vnd.hydrostatix.sof-data": "sfd-hdstx",
|
|
6508
|
+
"vnd.ibm.minipay": "mpy",
|
|
6509
|
+
"vnd.ibm.modcap": ["afp", "listafp", "list3820"],
|
|
6510
|
+
"vnd.ibm.rights-management": "irm",
|
|
6511
|
+
"vnd.ibm.secure-container": "sc",
|
|
6512
|
+
"vnd.iccprofile": ["icc", "icm"],
|
|
6513
|
+
"vnd.igloader": "igl",
|
|
6514
|
+
"vnd.immervision-ivp": "ivp",
|
|
6515
|
+
"vnd.immervision-ivu": "ivu",
|
|
6516
|
+
"vnd.insors.igm": "igm",
|
|
6517
|
+
"vnd.intercon.formnet": ["xpw", "xpx"],
|
|
6518
|
+
"vnd.intergeo": "i2g",
|
|
6519
|
+
"vnd.intu.qbo": "qbo",
|
|
6520
|
+
"vnd.intu.qfx": "qfx",
|
|
6521
|
+
"vnd.ipunplugged.rcprofile": "rcprofile",
|
|
6522
|
+
"vnd.irepository.package+xml": "irp",
|
|
6523
|
+
"vnd.is-xpr": "xpr",
|
|
6524
|
+
"vnd.isac.fcs": "fcs",
|
|
6525
|
+
"vnd.jam": "jam",
|
|
6526
|
+
"vnd.jcp.javame.midlet-rms": "rms",
|
|
6527
|
+
"vnd.jisp": "jisp",
|
|
6528
|
+
"vnd.joost.joda-archive": "joda",
|
|
6529
|
+
"vnd.kahootz": ["ktz", "ktr"],
|
|
6530
|
+
"vnd.kde.karbon": "karbon",
|
|
6531
|
+
"vnd.kde.kchart": "chrt",
|
|
6532
|
+
"vnd.kde.kformula": "kfo",
|
|
6533
|
+
"vnd.kde.kivio": "flw",
|
|
6534
|
+
"vnd.kde.kontour": "kon",
|
|
6535
|
+
"vnd.kde.kpresenter": ["kpr", "kpt"],
|
|
6536
|
+
"vnd.kde.kspread": "ksp",
|
|
6537
|
+
"vnd.kde.kword": ["kwd", "kwt"],
|
|
6538
|
+
"vnd.kenameaapp": "htke",
|
|
6539
|
+
"vnd.kidspiration": "kia",
|
|
6540
|
+
"vnd.kinar": ["kne", "knp"],
|
|
6541
|
+
"vnd.koan": ["skp", "skd", "skt", "skm"],
|
|
6542
|
+
"vnd.kodak-descriptor": "sse",
|
|
6543
|
+
"vnd.las.las+xml": "lasxml",
|
|
6544
|
+
"vnd.llamagraphics.life-balance.desktop": "lbd",
|
|
6545
|
+
"vnd.llamagraphics.life-balance.exchange+xml": "lbe",
|
|
6546
|
+
"vnd.lotus-1-2-3": "123",
|
|
6547
|
+
"vnd.lotus-approach": "apr",
|
|
6548
|
+
"vnd.lotus-freelance": "pre",
|
|
6549
|
+
"vnd.lotus-notes": "nsf",
|
|
6550
|
+
"vnd.lotus-organizer": "org",
|
|
6551
|
+
"vnd.lotus-screencam": "scm",
|
|
6552
|
+
"vnd.lotus-wordpro": "lwp",
|
|
6553
|
+
"vnd.macports.portpkg": "portpkg",
|
|
6554
|
+
"vnd.mcd": "mcd",
|
|
6555
|
+
"vnd.medcalcdata": "mc1",
|
|
6556
|
+
"vnd.mediastation.cdkey": "cdkey",
|
|
6557
|
+
"vnd.mfer": "mwf",
|
|
6558
|
+
"vnd.mfmp": "mfm",
|
|
6559
|
+
"vnd.micrografx.flo": "flo",
|
|
6560
|
+
"vnd.micrografx.igx": "igx",
|
|
6561
|
+
"vnd.mif": "mif",
|
|
6562
|
+
"vnd.mobius.daf": "daf",
|
|
6563
|
+
"vnd.mobius.dis": "dis",
|
|
6564
|
+
"vnd.mobius.mbk": "mbk",
|
|
6565
|
+
"vnd.mobius.mqy": "mqy",
|
|
6566
|
+
"vnd.mobius.msl": "msl",
|
|
6567
|
+
"vnd.mobius.plc": "plc",
|
|
6568
|
+
"vnd.mobius.txf": "txf",
|
|
6569
|
+
"vnd.mophun.application": "mpn",
|
|
6570
|
+
"vnd.mophun.certificate": "mpc",
|
|
6571
|
+
"vnd.ms-artgalry": "cil",
|
|
6572
|
+
"vnd.ms-cab-compressed": "cab",
|
|
6573
|
+
"vnd.ms-excel.addin.macroenabled.12": "xlam",
|
|
6574
|
+
"vnd.ms-excel.sheet.binary.macroenabled.12": "xlsb",
|
|
6575
|
+
"vnd.ms-excel.sheet.macroenabled.12": "xlsm",
|
|
6576
|
+
"vnd.ms-excel.template.macroenabled.12": "xltm",
|
|
6577
|
+
"vnd.ms-fontobject": "eot",
|
|
6578
|
+
"vnd.ms-htmlhelp": "chm",
|
|
6579
|
+
"vnd.ms-ims": "ims",
|
|
6580
|
+
"vnd.ms-lrm": "lrm",
|
|
6581
|
+
"vnd.ms-officetheme": "thmx",
|
|
6582
|
+
"vnd.ms-powerpoint.addin.macroenabled.12": "ppam",
|
|
6583
|
+
"vnd.ms-powerpoint.presentation.macroenabled.12": "pptm",
|
|
6584
|
+
"vnd.ms-powerpoint.slide.macroenabled.12": "sldm",
|
|
6585
|
+
"vnd.ms-powerpoint.slideshow.macroenabled.12": "ppsm",
|
|
6586
|
+
"vnd.ms-powerpoint.template.macroenabled.12": "potm",
|
|
6587
|
+
"vnd.ms-project": ["mpp", "mpt"],
|
|
6588
|
+
"vnd.ms-word.document.macroenabled.12": "docm",
|
|
6589
|
+
"vnd.ms-word.template.macroenabled.12": "dotm",
|
|
6590
|
+
"vnd.ms-works": ["wps", "wks", "wcm", "wdb"],
|
|
6591
|
+
"vnd.ms-wpl": "wpl",
|
|
6592
|
+
"vnd.ms-xpsdocument": "xps",
|
|
6593
|
+
"vnd.mseq": "mseq",
|
|
6594
|
+
"vnd.musician": "mus",
|
|
6595
|
+
"vnd.muvee.style": "msty",
|
|
6596
|
+
"vnd.mynfc": "taglet",
|
|
6597
|
+
"vnd.neurolanguage.nlu": "nlu",
|
|
6598
|
+
"vnd.nitf": ["ntf", "nitf"],
|
|
6599
|
+
"vnd.noblenet-directory": "nnd",
|
|
6600
|
+
"vnd.noblenet-sealer": "nns",
|
|
6601
|
+
"vnd.noblenet-web": "nnw",
|
|
6602
|
+
"vnd.nokia.n-gage.data": "ngdat",
|
|
6603
|
+
"vnd.nokia.n-gage.symbian.install": "n-gage",
|
|
6604
|
+
"vnd.nokia.radio-preset": "rpst",
|
|
6605
|
+
"vnd.nokia.radio-presets": "rpss",
|
|
6606
|
+
"vnd.novadigm.edm": "edm",
|
|
6607
|
+
"vnd.novadigm.edx": "edx",
|
|
6608
|
+
"vnd.novadigm.ext": "ext",
|
|
6609
|
+
"vnd.oasis.opendocument.chart-template": "otc",
|
|
6610
|
+
"vnd.oasis.opendocument.formula-template": "odft",
|
|
6611
|
+
"vnd.oasis.opendocument.image-template": "oti",
|
|
6612
|
+
"vnd.olpc-sugar": "xo",
|
|
6613
|
+
"vnd.oma.dd2+xml": "dd2",
|
|
6614
|
+
"vnd.openofficeorg.extension": "oxt",
|
|
6615
|
+
"vnd.openxmlformats-officedocument.presentationml.slide": "sldx",
|
|
6616
|
+
"vnd.osgeo.mapguide.package": "mgp",
|
|
6617
|
+
"vnd.osgi.dp": "dp",
|
|
6618
|
+
"vnd.osgi.subsystem": "esa",
|
|
6619
|
+
"vnd.palm": ["pdb", "pqa", "oprc"],
|
|
6620
|
+
"vnd.pawaafile": "paw",
|
|
6621
|
+
"vnd.pg.format": "str",
|
|
6622
|
+
"vnd.pg.osasli": "ei6",
|
|
6623
|
+
"vnd.picsel": "efif",
|
|
6624
|
+
"vnd.pmi.widget": "wg",
|
|
6625
|
+
"vnd.pocketlearn": "plf",
|
|
6626
|
+
"vnd.powerbuilder6": "pbd",
|
|
6627
|
+
"vnd.previewsystems.box": "box",
|
|
6628
|
+
"vnd.proteus.magazine": "mgz",
|
|
6629
|
+
"vnd.publishare-delta-tree": "qps",
|
|
6630
|
+
"vnd.pvi.ptid1": "ptid",
|
|
6631
|
+
"vnd.quark.quarkxpress": ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"],
|
|
6632
|
+
"vnd.realvnc.bed": "bed",
|
|
6633
|
+
"vnd.recordare.musicxml": "mxl",
|
|
6634
|
+
"vnd.recordare.musicxml+xml": "musicxml",
|
|
6635
|
+
"vnd.rig.cryptonote": "cryptonote",
|
|
6636
|
+
"vnd.rn-realmedia": "rm",
|
|
6637
|
+
"vnd.rn-realmedia-vbr": "rmvb",
|
|
6638
|
+
"vnd.route66.link66+xml": "link66",
|
|
6639
|
+
"vnd.sailingtracker.track": "st",
|
|
6640
|
+
"vnd.seemail": "see",
|
|
6641
|
+
"vnd.sema": "sema",
|
|
6642
|
+
"vnd.semd": "semd",
|
|
6643
|
+
"vnd.semf": "semf",
|
|
6644
|
+
"vnd.shana.informed.formdata": "ifm",
|
|
6645
|
+
"vnd.shana.informed.formtemplate": "itp",
|
|
6646
|
+
"vnd.shana.informed.interchange": "iif",
|
|
6647
|
+
"vnd.shana.informed.package": "ipk",
|
|
6648
|
+
"vnd.simtech-mindmapper": ["twd", "twds"],
|
|
6649
|
+
"vnd.smart.teacher": "teacher",
|
|
6650
|
+
"vnd.solent.sdkm+xml": ["sdkm", "sdkd"],
|
|
6651
|
+
"vnd.spotfire.dxp": "dxp",
|
|
6652
|
+
"vnd.spotfire.sfs": "sfs",
|
|
6653
|
+
"vnd.stepmania.package": "smzip",
|
|
6654
|
+
"vnd.stepmania.stepchart": "sm",
|
|
6655
|
+
"vnd.sus-calendar": ["sus", "susp"],
|
|
6656
|
+
"vnd.svd": "svd",
|
|
6657
|
+
"vnd.syncml+xml": "xsm",
|
|
6658
|
+
"vnd.syncml.dm+wbxml": "bdm",
|
|
6659
|
+
"vnd.syncml.dm+xml": "xdm",
|
|
6660
|
+
"vnd.tao.intent-module-archive": "tao",
|
|
6661
|
+
"vnd.tcpdump.pcap": ["pcap", "cap", "dmp"],
|
|
6662
|
+
"vnd.tmobile-livetv": "tmo",
|
|
6663
|
+
"vnd.trid.tpt": "tpt",
|
|
6664
|
+
"vnd.triscape.mxs": "mxs",
|
|
6665
|
+
"vnd.trueapp": "tra",
|
|
6666
|
+
"vnd.ufdl": ["ufd", "ufdl"],
|
|
6667
|
+
"vnd.uiq.theme": "utz",
|
|
6668
|
+
"vnd.umajin": "umj",
|
|
6669
|
+
"vnd.unity": "unityweb",
|
|
6670
|
+
"vnd.uoml+xml": "uoml",
|
|
6671
|
+
"vnd.vcx": "vcx",
|
|
6672
|
+
"vnd.visionary": "vis",
|
|
6673
|
+
"vnd.vsf": "vsf",
|
|
6674
|
+
"vnd.webturbo": "wtb",
|
|
6675
|
+
"vnd.wolfram.player": "nbp",
|
|
6676
|
+
"vnd.wqd": "wqd",
|
|
6677
|
+
"vnd.wt.stf": "stf",
|
|
6678
|
+
"vnd.xara": "xar",
|
|
6679
|
+
"vnd.xfdl": "xfdl",
|
|
6680
|
+
"vnd.yamaha.hv-dic": "hvd",
|
|
6681
|
+
"vnd.yamaha.hv-script": "hvs",
|
|
6682
|
+
"vnd.yamaha.hv-voice": "hvp",
|
|
6683
|
+
"vnd.yamaha.openscoreformat": "osf",
|
|
6684
|
+
"vnd.yamaha.openscoreformat.osfpvg+xml": "osfpvg",
|
|
6685
|
+
"vnd.yamaha.smaf-audio": "saf",
|
|
6686
|
+
"vnd.yamaha.smaf-phrase": "spf",
|
|
6687
|
+
"vnd.yellowriver-custom-menu": "cmp",
|
|
6688
|
+
"vnd.zul": ["zir", "zirz"],
|
|
6689
|
+
"vnd.zzazz.deck+xml": "zaz",
|
|
6690
|
+
"voicexml+xml": "vxml",
|
|
6691
|
+
"widget": "wgt",
|
|
6692
|
+
"winhlp": "hlp",
|
|
6693
|
+
"wsdl+xml": "wsdl",
|
|
6694
|
+
"wspolicy+xml": "wspolicy",
|
|
6695
|
+
"x-ace-compressed": "ace",
|
|
6696
|
+
"x-authorware-bin": ["aab", "x32", "u32", "vox"],
|
|
6697
|
+
"x-authorware-map": "aam",
|
|
6698
|
+
"x-authorware-seg": "aas",
|
|
6699
|
+
"x-blorb": ["blb", "blorb"],
|
|
6700
|
+
"x-bzip": "bz",
|
|
6701
|
+
"x-bzip2": ["bz2", "boz"],
|
|
6702
|
+
"x-cfs-compressed": "cfs",
|
|
6703
|
+
"x-chat": "chat",
|
|
6704
|
+
"x-conference": "nsc",
|
|
6705
|
+
"x-dgc-compressed": "dgc",
|
|
6706
|
+
"x-dtbncx+xml": "ncx",
|
|
6707
|
+
"x-dtbook+xml": "dtb",
|
|
6708
|
+
"x-dtbresource+xml": "res",
|
|
6709
|
+
"x-eva": "eva",
|
|
6710
|
+
"x-font-bdf": "bdf",
|
|
6711
|
+
"x-font-ghostscript": "gsf",
|
|
6712
|
+
"x-font-linux-psf": "psf",
|
|
6713
|
+
"x-font-otf": "otf",
|
|
6714
|
+
"x-font-pcf": "pcf",
|
|
6715
|
+
"x-font-snf": "snf",
|
|
6716
|
+
"x-font-ttf": ["ttf", "ttc"],
|
|
6717
|
+
"x-font-type1": ["pfa", "pfb", "pfm", "afm"],
|
|
6718
|
+
"x-font-woff": "woff",
|
|
6719
|
+
"x-freearc": "arc",
|
|
6720
|
+
"x-gca-compressed": "gca",
|
|
6721
|
+
"x-glulx": "ulx",
|
|
6722
|
+
"x-gramps-xml": "gramps",
|
|
6723
|
+
"x-install-instructions": "install",
|
|
6724
|
+
"x-lzh-compressed": ["lzh", "lha"],
|
|
6725
|
+
"x-mie": "mie",
|
|
6726
|
+
"x-mobipocket-ebook": ["prc", "mobi"],
|
|
6727
|
+
"x-ms-application": "application",
|
|
6728
|
+
"x-ms-shortcut": "lnk",
|
|
6729
|
+
"x-ms-xbap": "xbap",
|
|
6730
|
+
"x-msbinder": "obd",
|
|
6731
|
+
"x-mscardfile": "crd",
|
|
6732
|
+
"x-msclip": "clp",
|
|
6733
|
+
"x-msdownload": ["exe", "dll", "com", "bat", "msi"],
|
|
6734
|
+
"x-msmediaview": ["mvb", "m13", "m14"],
|
|
6735
|
+
"x-msmetafile": ["wmf", "wmz", "emf", "emz"],
|
|
6736
|
+
"x-msmoney": "mny",
|
|
6737
|
+
"x-mspublisher": "pub",
|
|
6738
|
+
"x-msschedule": "scd",
|
|
6739
|
+
"x-msterminal": "trm",
|
|
6740
|
+
"x-mswrite": "wri",
|
|
6741
|
+
"x-nzb": "nzb",
|
|
6742
|
+
"x-pkcs12": ["p12", "pfx"],
|
|
6743
|
+
"x-pkcs7-certificates": ["p7b", "spc"],
|
|
6744
|
+
"x-research-info-systems": "ris",
|
|
6745
|
+
"x-silverlight-app": "xap",
|
|
6746
|
+
"x-sql": "sql",
|
|
6747
|
+
"x-stuffitx": "sitx",
|
|
6748
|
+
"x-subrip": "srt",
|
|
6749
|
+
"x-t3vm-image": "t3",
|
|
6750
|
+
"x-tads": "gam",
|
|
6751
|
+
"x-tex": "tex",
|
|
6752
|
+
"x-tex-tfm": "tfm",
|
|
6753
|
+
"x-tgif": "obj",
|
|
6754
|
+
"x-xliff+xml": "xlf",
|
|
6755
|
+
"x-xz": "xz",
|
|
6756
|
+
"x-zmachine": ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"],
|
|
6757
|
+
"xaml+xml": "xaml",
|
|
6758
|
+
"xcap-diff+xml": "xdf",
|
|
6759
|
+
"xenc+xml": "xenc",
|
|
6760
|
+
"xml-dtd": "dtd",
|
|
6761
|
+
"xop+xml": "xop",
|
|
6762
|
+
"xproc+xml": "xpl",
|
|
6763
|
+
"xslt+xml": "xslt",
|
|
6764
|
+
"xv+xml": ["mxml", "xhvml", "xvml", "xvm"],
|
|
6765
|
+
"yang": "yang",
|
|
6766
|
+
"yin+xml": "yin",
|
|
6767
|
+
"envoy": "evy",
|
|
6768
|
+
"fractals": "fif",
|
|
6769
|
+
"internet-property-stream": "acx",
|
|
6770
|
+
"olescript": "axs",
|
|
6771
|
+
"vnd.ms-outlook": "msg",
|
|
6772
|
+
"vnd.ms-pkicertstore": "sst",
|
|
6773
|
+
"x-compress": "z",
|
|
6774
|
+
"x-compressed": "tgz",
|
|
6775
|
+
"x-gzip": "gz",
|
|
6776
|
+
"x-perfmon": ["pma", "pmc", "pml", "pmr", "pmw"],
|
|
6777
|
+
"x-pkcs7-mime": ["p7c", "p7m"],
|
|
6778
|
+
"ynd.ms-pkipko": "pko"
|
|
6779
|
+
},
|
|
6780
|
+
"audio": {
|
|
6781
|
+
"amr": "amr",
|
|
6782
|
+
"amr-wb": "awb",
|
|
6783
|
+
"annodex": "axa",
|
|
6784
|
+
"basic": ["au", "snd"],
|
|
6785
|
+
"flac": "flac",
|
|
6786
|
+
"midi": ["mid", "midi", "kar", "rmi"],
|
|
6787
|
+
"mpeg": ["mpga", "mpega", "mp2", "mp3", "m4a", "mp2a", "m2a", "m3a"],
|
|
6788
|
+
"mpegurl": "m3u",
|
|
6789
|
+
"ogg": ["oga", "ogg", "spx"],
|
|
6790
|
+
"prs.sid": "sid",
|
|
6791
|
+
"x-aiff": ["aif", "aiff", "aifc"],
|
|
6792
|
+
"x-gsm": "gsm",
|
|
6793
|
+
"x-ms-wma": "wma",
|
|
6794
|
+
"x-ms-wax": "wax",
|
|
6795
|
+
"x-pn-realaudio": "ram",
|
|
6796
|
+
"x-realaudio": "ra",
|
|
6797
|
+
"x-sd2": "sd2",
|
|
6798
|
+
"x-wav": "wav",
|
|
6799
|
+
"adpcm": "adp",
|
|
6800
|
+
"mp4": "mp4a",
|
|
6801
|
+
"s3m": "s3m",
|
|
6802
|
+
"silk": "sil",
|
|
6803
|
+
"vnd.dece.audio": ["uva", "uvva"],
|
|
6804
|
+
"vnd.digital-winds": "eol",
|
|
6805
|
+
"vnd.dra": "dra",
|
|
6806
|
+
"vnd.dts": "dts",
|
|
6807
|
+
"vnd.dts.hd": "dtshd",
|
|
6808
|
+
"vnd.lucent.voice": "lvp",
|
|
6809
|
+
"vnd.ms-playready.media.pya": "pya",
|
|
6810
|
+
"vnd.nuera.ecelp4800": "ecelp4800",
|
|
6811
|
+
"vnd.nuera.ecelp7470": "ecelp7470",
|
|
6812
|
+
"vnd.nuera.ecelp9600": "ecelp9600",
|
|
6813
|
+
"vnd.rip": "rip",
|
|
6814
|
+
"webm": "weba",
|
|
6815
|
+
"x-aac": "aac",
|
|
6816
|
+
"x-caf": "caf",
|
|
6817
|
+
"x-matroska": "mka",
|
|
6818
|
+
"x-pn-realaudio-plugin": "rmp",
|
|
6819
|
+
"xm": "xm",
|
|
6820
|
+
"mid": ["mid", "rmi"]
|
|
6821
|
+
},
|
|
6822
|
+
"chemical": {
|
|
6823
|
+
"x-alchemy": "alc",
|
|
6824
|
+
"x-cache": ["cac", "cache"],
|
|
6825
|
+
"x-cache-csf": "csf",
|
|
6826
|
+
"x-cactvs-binary": ["cbin", "cascii", "ctab"],
|
|
6827
|
+
"x-cdx": "cdx",
|
|
6828
|
+
"x-chem3d": "c3d",
|
|
6829
|
+
"x-cif": "cif",
|
|
6830
|
+
"x-cmdf": "cmdf",
|
|
6831
|
+
"x-cml": "cml",
|
|
6832
|
+
"x-compass": "cpa",
|
|
6833
|
+
"x-crossfire": "bsd",
|
|
6834
|
+
"x-csml": ["csml", "csm"],
|
|
6835
|
+
"x-ctx": "ctx",
|
|
6836
|
+
"x-cxf": ["cxf", "cef"],
|
|
6837
|
+
"x-embl-dl-nucleotide": ["emb", "embl"],
|
|
6838
|
+
"x-gamess-input": ["inp", "gam", "gamin"],
|
|
6839
|
+
"x-gaussian-checkpoint": ["fch", "fchk"],
|
|
6840
|
+
"x-gaussian-cube": "cub",
|
|
6841
|
+
"x-gaussian-input": ["gau", "gjc", "gjf"],
|
|
6842
|
+
"x-gaussian-log": "gal",
|
|
6843
|
+
"x-gcg8-sequence": "gcg",
|
|
6844
|
+
"x-genbank": "gen",
|
|
6845
|
+
"x-hin": "hin",
|
|
6846
|
+
"x-isostar": ["istr", "ist"],
|
|
6847
|
+
"x-jcamp-dx": ["jdx", "dx"],
|
|
6848
|
+
"x-kinemage": "kin",
|
|
6849
|
+
"x-macmolecule": "mcm",
|
|
6850
|
+
"x-macromodel-input": ["mmd", "mmod"],
|
|
6851
|
+
"x-mdl-molfile": "mol",
|
|
6852
|
+
"x-mdl-rdfile": "rd",
|
|
6853
|
+
"x-mdl-rxnfile": "rxn",
|
|
6854
|
+
"x-mdl-sdfile": ["sd", "sdf"],
|
|
6855
|
+
"x-mdl-tgf": "tgf",
|
|
6856
|
+
"x-mmcif": "mcif",
|
|
6857
|
+
"x-mol2": "mol2",
|
|
6858
|
+
"x-molconn-Z": "b",
|
|
6859
|
+
"x-mopac-graph": "gpt",
|
|
6860
|
+
"x-mopac-input": ["mop", "mopcrt", "mpc", "zmt"],
|
|
6861
|
+
"x-mopac-out": "moo",
|
|
6862
|
+
"x-ncbi-asn1": "asn",
|
|
6863
|
+
"x-ncbi-asn1-ascii": ["prt", "ent"],
|
|
6864
|
+
"x-ncbi-asn1-binary": ["val", "aso"],
|
|
6865
|
+
"x-pdb": ["pdb", "ent"],
|
|
6866
|
+
"x-rosdal": "ros",
|
|
6867
|
+
"x-swissprot": "sw",
|
|
6868
|
+
"x-vamas-iso14976": "vms",
|
|
6869
|
+
"x-vmd": "vmd",
|
|
6870
|
+
"x-xtel": "xtel",
|
|
6871
|
+
"x-xyz": "xyz"
|
|
6872
|
+
},
|
|
6873
|
+
"image": {
|
|
6874
|
+
"gif": "gif",
|
|
6875
|
+
"ief": "ief",
|
|
6876
|
+
"jpeg": ["jpeg", "jpg", "jpe"],
|
|
6877
|
+
"pcx": "pcx",
|
|
6878
|
+
"png": "png",
|
|
6879
|
+
"svg+xml": ["svg", "svgz"],
|
|
6880
|
+
"tiff": ["tiff", "tif"],
|
|
6881
|
+
"vnd.djvu": ["djvu", "djv"],
|
|
6882
|
+
"vnd.wap.wbmp": "wbmp",
|
|
6883
|
+
"x-canon-cr2": "cr2",
|
|
6884
|
+
"x-canon-crw": "crw",
|
|
6885
|
+
"x-cmu-raster": "ras",
|
|
6886
|
+
"x-coreldraw": "cdr",
|
|
6887
|
+
"x-coreldrawpattern": "pat",
|
|
6888
|
+
"x-coreldrawtemplate": "cdt",
|
|
6889
|
+
"x-corelphotopaint": "cpt",
|
|
6890
|
+
"x-epson-erf": "erf",
|
|
6891
|
+
"x-icon": "ico",
|
|
6892
|
+
"x-jg": "art",
|
|
6893
|
+
"x-jng": "jng",
|
|
6894
|
+
"x-nikon-nef": "nef",
|
|
6895
|
+
"x-olympus-orf": "orf",
|
|
6896
|
+
"x-photoshop": "psd",
|
|
6897
|
+
"x-portable-anymap": "pnm",
|
|
6898
|
+
"x-portable-bitmap": "pbm",
|
|
6899
|
+
"x-portable-graymap": "pgm",
|
|
6900
|
+
"x-portable-pixmap": "ppm",
|
|
6901
|
+
"x-rgb": "rgb",
|
|
6902
|
+
"x-xbitmap": "xbm",
|
|
6903
|
+
"x-xpixmap": "xpm",
|
|
6904
|
+
"x-xwindowdump": "xwd",
|
|
6905
|
+
"bmp": "bmp",
|
|
6906
|
+
"cgm": "cgm",
|
|
6907
|
+
"g3fax": "g3",
|
|
6908
|
+
"ktx": "ktx",
|
|
6909
|
+
"prs.btif": "btif",
|
|
6910
|
+
"sgi": "sgi",
|
|
6911
|
+
"vnd.dece.graphic": ["uvi", "uvvi", "uvg", "uvvg"],
|
|
6912
|
+
"vnd.dwg": "dwg",
|
|
6913
|
+
"vnd.dxf": "dxf",
|
|
6914
|
+
"vnd.fastbidsheet": "fbs",
|
|
6915
|
+
"vnd.fpx": "fpx",
|
|
6916
|
+
"vnd.fst": "fst",
|
|
6917
|
+
"vnd.fujixerox.edmics-mmr": "mmr",
|
|
6918
|
+
"vnd.fujixerox.edmics-rlc": "rlc",
|
|
6919
|
+
"vnd.ms-modi": "mdi",
|
|
6920
|
+
"vnd.ms-photo": "wdp",
|
|
6921
|
+
"vnd.net-fpx": "npx",
|
|
6922
|
+
"vnd.xiff": "xif",
|
|
6923
|
+
"webp": "webp",
|
|
6924
|
+
"x-3ds": "3ds",
|
|
6925
|
+
"x-cmx": "cmx",
|
|
6926
|
+
"x-freehand": ["fh", "fhc", "fh4", "fh5", "fh7"],
|
|
6927
|
+
"x-pict": ["pic", "pct"],
|
|
6928
|
+
"x-tga": "tga",
|
|
6929
|
+
"cis-cod": "cod",
|
|
6930
|
+
"pipeg": "jfif"
|
|
6931
|
+
},
|
|
6932
|
+
"message": {
|
|
6933
|
+
"rfc822": ["eml", "mime", "mht", "mhtml", "nws"]
|
|
6934
|
+
},
|
|
6935
|
+
"model": {
|
|
6936
|
+
"iges": ["igs", "iges"],
|
|
6937
|
+
"mesh": ["msh", "mesh", "silo"],
|
|
6938
|
+
"vrml": ["wrl", "vrml"],
|
|
6939
|
+
"x3d+vrml": ["x3dv", "x3dvz"],
|
|
6940
|
+
"x3d+xml": ["x3d", "x3dz"],
|
|
6941
|
+
"x3d+binary": ["x3db", "x3dbz"],
|
|
6942
|
+
"vnd.collada+xml": "dae",
|
|
6943
|
+
"vnd.dwf": "dwf",
|
|
6944
|
+
"vnd.gdl": "gdl",
|
|
6945
|
+
"vnd.gtw": "gtw",
|
|
6946
|
+
"vnd.mts": "mts",
|
|
6947
|
+
"vnd.vtu": "vtu"
|
|
6948
|
+
},
|
|
6949
|
+
"text": {
|
|
6950
|
+
"cache-manifest": ["manifest", "appcache"],
|
|
6951
|
+
"calendar": ["ics", "icz", "ifb"],
|
|
6952
|
+
"css": "css",
|
|
6953
|
+
"csv": "csv",
|
|
6954
|
+
"h323": "323",
|
|
6955
|
+
"html": ["html", "htm", "shtml", "stm"],
|
|
6956
|
+
"iuls": "uls",
|
|
6957
|
+
"mathml": "mml",
|
|
6958
|
+
"plain": ["txt", "text", "brf", "conf", "def", "list", "log", "in", "bas"],
|
|
6959
|
+
"richtext": "rtx",
|
|
6960
|
+
"scriptlet": ["sct", "wsc"],
|
|
6961
|
+
"texmacs": ["tm", "ts"],
|
|
6962
|
+
"tab-separated-values": "tsv",
|
|
6963
|
+
"vnd.sun.j2me.app-descriptor": "jad",
|
|
6964
|
+
"vnd.wap.wml": "wml",
|
|
6965
|
+
"vnd.wap.wmlscript": "wmls",
|
|
6966
|
+
"x-bibtex": "bib",
|
|
6967
|
+
"x-boo": "boo",
|
|
6968
|
+
"x-c++hdr": ["h++", "hpp", "hxx", "hh"],
|
|
6969
|
+
"x-c++src": ["c++", "cpp", "cxx", "cc"],
|
|
6970
|
+
"x-component": "htc",
|
|
6971
|
+
"x-dsrc": "d",
|
|
6972
|
+
"x-diff": ["diff", "patch"],
|
|
6973
|
+
"x-haskell": "hs",
|
|
6974
|
+
"x-java": "java",
|
|
6975
|
+
"x-literate-haskell": "lhs",
|
|
6976
|
+
"x-moc": "moc",
|
|
6977
|
+
"x-pascal": ["p", "pas"],
|
|
6978
|
+
"x-pcs-gcd": "gcd",
|
|
6979
|
+
"x-perl": ["pl", "pm"],
|
|
6980
|
+
"x-python": "py",
|
|
6981
|
+
"x-scala": "scala",
|
|
6982
|
+
"x-setext": "etx",
|
|
6983
|
+
"x-tcl": ["tcl", "tk"],
|
|
6984
|
+
"x-tex": ["tex", "ltx", "sty", "cls"],
|
|
6985
|
+
"x-vcalendar": "vcs",
|
|
6986
|
+
"x-vcard": "vcf",
|
|
6987
|
+
"n3": "n3",
|
|
6988
|
+
"prs.lines.tag": "dsc",
|
|
6989
|
+
"sgml": ["sgml", "sgm"],
|
|
6990
|
+
"troff": ["t", "tr", "roff", "man", "me", "ms"],
|
|
6991
|
+
"turtle": "ttl",
|
|
6992
|
+
"uri-list": ["uri", "uris", "urls"],
|
|
6993
|
+
"vcard": "vcard",
|
|
6994
|
+
"vnd.curl": "curl",
|
|
6995
|
+
"vnd.curl.dcurl": "dcurl",
|
|
6996
|
+
"vnd.curl.scurl": "scurl",
|
|
6997
|
+
"vnd.curl.mcurl": "mcurl",
|
|
6998
|
+
"vnd.dvb.subtitle": "sub",
|
|
6999
|
+
"vnd.fly": "fly",
|
|
7000
|
+
"vnd.fmi.flexstor": "flx",
|
|
7001
|
+
"vnd.graphviz": "gv",
|
|
7002
|
+
"vnd.in3d.3dml": "3dml",
|
|
7003
|
+
"vnd.in3d.spot": "spot",
|
|
7004
|
+
"x-asm": ["s", "asm"],
|
|
7005
|
+
"x-c": ["c", "cc", "cxx", "cpp", "h", "hh", "dic"],
|
|
7006
|
+
"x-fortran": ["f", "for", "f77", "f90"],
|
|
7007
|
+
"x-opml": "opml",
|
|
7008
|
+
"x-nfo": "nfo",
|
|
7009
|
+
"x-sfv": "sfv",
|
|
7010
|
+
"x-uuencode": "uu",
|
|
7011
|
+
"webviewhtml": "htt"
|
|
7012
|
+
},
|
|
7013
|
+
"video": {
|
|
7014
|
+
"avif": ".avif",
|
|
7015
|
+
"3gpp": "3gp",
|
|
7016
|
+
"annodex": "axv",
|
|
7017
|
+
"dl": "dl",
|
|
7018
|
+
"dv": ["dif", "dv"],
|
|
7019
|
+
"fli": "fli",
|
|
7020
|
+
"gl": "gl",
|
|
7021
|
+
"mpeg": ["mpeg", "mpg", "mpe", "m1v", "m2v", "mp2", "mpa", "mpv2"],
|
|
7022
|
+
"mp4": ["mp4", "mp4v", "mpg4"],
|
|
7023
|
+
"quicktime": ["qt", "mov"],
|
|
7024
|
+
"ogg": "ogv",
|
|
7025
|
+
"vnd.mpegurl": ["mxu", "m4u"],
|
|
7026
|
+
"x-flv": "flv",
|
|
7027
|
+
"x-la-asf": ["lsf", "lsx"],
|
|
7028
|
+
"x-mng": "mng",
|
|
7029
|
+
"x-ms-asf": ["asf", "asx", "asr"],
|
|
7030
|
+
"x-ms-wm": "wm",
|
|
7031
|
+
"x-ms-wmv": "wmv",
|
|
7032
|
+
"x-ms-wmx": "wmx",
|
|
7033
|
+
"x-ms-wvx": "wvx",
|
|
7034
|
+
"x-msvideo": "avi",
|
|
7035
|
+
"x-sgi-movie": "movie",
|
|
7036
|
+
"x-matroska": ["mpv", "mkv", "mk3d", "mks"],
|
|
7037
|
+
"3gpp2": "3g2",
|
|
7038
|
+
"h261": "h261",
|
|
7039
|
+
"h263": "h263",
|
|
7040
|
+
"h264": "h264",
|
|
7041
|
+
"jpeg": "jpgv",
|
|
7042
|
+
"jpm": ["jpm", "jpgm"],
|
|
7043
|
+
"mj2": ["mj2", "mjp2"],
|
|
7044
|
+
"vnd.dece.hd": ["uvh", "uvvh"],
|
|
7045
|
+
"vnd.dece.mobile": ["uvm", "uvvm"],
|
|
7046
|
+
"vnd.dece.pd": ["uvp", "uvvp"],
|
|
7047
|
+
"vnd.dece.sd": ["uvs", "uvvs"],
|
|
7048
|
+
"vnd.dece.video": ["uvv", "uvvv"],
|
|
7049
|
+
"vnd.dvb.file": "dvb",
|
|
7050
|
+
"vnd.fvt": "fvt",
|
|
7051
|
+
"vnd.ms-playready.media.pyv": "pyv",
|
|
7052
|
+
"vnd.uvvu.mp4": ["uvu", "uvvu"],
|
|
7053
|
+
"vnd.vivo": "viv",
|
|
7054
|
+
"webm": "webm",
|
|
7055
|
+
"x-f4v": "f4v",
|
|
7056
|
+
"x-m4v": "m4v",
|
|
7057
|
+
"x-ms-vob": "vob",
|
|
7058
|
+
"x-smv": "smv"
|
|
7059
|
+
},
|
|
7060
|
+
"x-conference": {
|
|
7061
|
+
"x-cooltalk": "ice"
|
|
7062
|
+
},
|
|
7063
|
+
"x-world": {
|
|
7064
|
+
"x-vrml": ["vrm", "vrml", "wrl", "flr", "wrz", "xaf", "xof"]
|
|
6911
7065
|
}
|
|
6912
|
-
}
|
|
6913
|
-
|
|
6914
|
-
class InflateStream extends TransformStream {
|
|
7066
|
+
};
|
|
6915
7067
|
|
|
6916
|
-
|
|
6917
|
-
|
|
6918
|
-
|
|
6919
|
-
|
|
6920
|
-
|
|
6921
|
-
|
|
6922
|
-
|
|
6923
|
-
|
|
6924
|
-
|
|
6925
|
-
|
|
6926
|
-
|
|
6927
|
-
|
|
6928
|
-
|
|
6929
|
-
|
|
6930
|
-
|
|
6931
|
-
|
|
6932
|
-
readable = pipeCodecStream(codecConstructor, readable, { chunkSize });
|
|
6933
|
-
} else {
|
|
6934
|
-
try {
|
|
6935
|
-
readable = readable.pipeThrough(new DecompressionStream(COMPRESSION_FORMAT));
|
|
6936
|
-
} catch (_error) {
|
|
6937
|
-
INFLATE_RAW_SUPPORTED = false;
|
|
6938
|
-
readable = pipeCodecStream(codecConstructor, readable, { chunkSize });
|
|
6939
|
-
}
|
|
6940
|
-
}
|
|
6941
|
-
}
|
|
6942
|
-
if ((!encrypted || zipCrypto) && signed) {
|
|
6943
|
-
[readable, crc32Stream] = readable.tee();
|
|
6944
|
-
crc32Stream = crc32Stream.pipeThrough(new Crc32Stream());
|
|
6945
|
-
}
|
|
6946
|
-
setReadable(stream, readable, async () => {
|
|
6947
|
-
if (encrypted && !zipCrypto) {
|
|
6948
|
-
if (!decryptionStream.valid) {
|
|
6949
|
-
throw new Error(ERR_INVALID_SIGNATURE);
|
|
6950
|
-
}
|
|
6951
|
-
}
|
|
6952
|
-
if ((!encrypted || zipCrypto) && signed) {
|
|
6953
|
-
const signature = await crc32Stream.getReader().read();
|
|
6954
|
-
const dataViewSignature = new DataView(signature.value.buffer);
|
|
6955
|
-
if (options.signature != dataViewSignature.getUint32(0, false)) {
|
|
6956
|
-
throw new Error(ERR_INVALID_SIGNATURE);
|
|
7068
|
+
const mimeTypes = (() => {
|
|
7069
|
+
const mimeTypes = {};
|
|
7070
|
+
for (const type in table) {
|
|
7071
|
+
// eslint-disable-next-line no-prototype-builtins
|
|
7072
|
+
if (table.hasOwnProperty(type)) {
|
|
7073
|
+
for (const subtype in table[type]) {
|
|
7074
|
+
// eslint-disable-next-line no-prototype-builtins
|
|
7075
|
+
if (table[type].hasOwnProperty(subtype)) {
|
|
7076
|
+
const value = table[type][subtype];
|
|
7077
|
+
if (typeof value == "string") {
|
|
7078
|
+
mimeTypes[value] = type + "/" + subtype;
|
|
7079
|
+
} else {
|
|
7080
|
+
for (let indexMimeType = 0; indexMimeType < value.length; indexMimeType++) {
|
|
7081
|
+
mimeTypes[value[indexMimeType]] = type + "/" + subtype;
|
|
7082
|
+
}
|
|
7083
|
+
}
|
|
6957
7084
|
}
|
|
6958
7085
|
}
|
|
6959
|
-
});
|
|
6960
|
-
}
|
|
6961
|
-
}
|
|
6962
|
-
|
|
6963
|
-
function pipeCodecStream(codecConstructor, readable, options) {
|
|
6964
|
-
return readable.pipeThrough(new CodecStream(codecConstructor, options));
|
|
6965
|
-
}
|
|
6966
|
-
|
|
6967
|
-
function filterEmptyChunks(readable) {
|
|
6968
|
-
return readable.pipeThrough(new TransformStream({
|
|
6969
|
-
transform(chunk, controller) {
|
|
6970
|
-
if (chunk && chunk.length) {
|
|
6971
|
-
controller.enqueue(chunk);
|
|
6972
|
-
}
|
|
6973
|
-
}
|
|
6974
|
-
}));
|
|
6975
|
-
}
|
|
6976
|
-
|
|
6977
|
-
function setReadable(stream, readable, flush) {
|
|
6978
|
-
readable = readable.pipeThrough(new TransformStream({ flush }));
|
|
6979
|
-
Object.defineProperty(stream, "readable", {
|
|
6980
|
-
get() {
|
|
6981
|
-
return readable;
|
|
6982
|
-
}
|
|
6983
|
-
});
|
|
6984
|
-
}
|
|
6985
|
-
|
|
6986
|
-
/*
|
|
6987
|
-
Copyright (c) 2022 Gildas Lormeau. All rights reserved.
|
|
6988
|
-
|
|
6989
|
-
Redistribution and use in source and binary forms, with or without
|
|
6990
|
-
modification, are permitted provided that the following conditions are met:
|
|
6991
|
-
|
|
6992
|
-
1. Redistributions of source code must retain the above copyright notice,
|
|
6993
|
-
this list of conditions and the following disclaimer.
|
|
6994
|
-
|
|
6995
|
-
2. Redistributions in binary form must reproduce the above copyright
|
|
6996
|
-
notice, this list of conditions and the following disclaimer in
|
|
6997
|
-
the documentation and/or other materials provided with the distribution.
|
|
6998
|
-
|
|
6999
|
-
3. The names of the authors may not be used to endorse or promote products
|
|
7000
|
-
derived from this software without specific prior written permission.
|
|
7001
|
-
|
|
7002
|
-
THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
|
|
7003
|
-
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
7004
|
-
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
|
|
7005
|
-
INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
7006
|
-
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
7007
|
-
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
|
7008
|
-
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
7009
|
-
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
7010
|
-
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
7011
|
-
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
7012
|
-
*/
|
|
7013
|
-
|
|
7014
|
-
const CODEC_DEFLATE = "deflate";
|
|
7015
|
-
const CODEC_INFLATE = "inflate";
|
|
7016
|
-
const MESSAGE_EVENT_TYPE = "message";
|
|
7017
|
-
const MESSAGE_START = "start";
|
|
7018
|
-
const MESSAGE_PULL = "pull";
|
|
7019
|
-
const MESSAGE_DATA = "data";
|
|
7020
|
-
const MESSAGE_ACK_DATA = "ack";
|
|
7021
|
-
const MESSAGE_CLOSE = "close";
|
|
7022
|
-
|
|
7023
|
-
class Codec {
|
|
7024
|
-
|
|
7025
|
-
constructor(CodecConstructor, readable, writable, options, config) {
|
|
7026
|
-
const { codecType } = options;
|
|
7027
|
-
let StreamConstructor;
|
|
7028
|
-
if (codecType.startsWith(CODEC_DEFLATE)) {
|
|
7029
|
-
StreamConstructor = DeflateStream;
|
|
7030
|
-
} else if (codecType.startsWith(CODEC_INFLATE)) {
|
|
7031
|
-
StreamConstructor = InflateStream;
|
|
7032
7086
|
}
|
|
7033
|
-
Object.assign(this, {
|
|
7034
|
-
StreamConstructor,
|
|
7035
|
-
CodecConstructor,
|
|
7036
|
-
readable,
|
|
7037
|
-
writable,
|
|
7038
|
-
options,
|
|
7039
|
-
config
|
|
7040
|
-
});
|
|
7041
7087
|
}
|
|
7088
|
+
return mimeTypes;
|
|
7089
|
+
})();
|
|
7042
7090
|
|
|
7043
|
-
|
|
7044
|
-
|
|
7045
|
-
StreamConstructor,
|
|
7046
|
-
CodecConstructor,
|
|
7047
|
-
readable,
|
|
7048
|
-
writable,
|
|
7049
|
-
options,
|
|
7050
|
-
config
|
|
7051
|
-
} = this;
|
|
7052
|
-
const stream = new StreamConstructor(CodecConstructor, options, config);
|
|
7053
|
-
let size = 0;
|
|
7054
|
-
await readable
|
|
7055
|
-
.pipeThrough(stream)
|
|
7056
|
-
.pipeThrough(new TransformStream({
|
|
7057
|
-
transform(chunk, controller) {
|
|
7058
|
-
if (chunk && chunk.length) {
|
|
7059
|
-
size += chunk.length;
|
|
7060
|
-
controller.enqueue(chunk);
|
|
7061
|
-
}
|
|
7062
|
-
}
|
|
7063
|
-
}))
|
|
7064
|
-
.pipeTo(writable, { preventClose: true, preventAbort: true });
|
|
7065
|
-
const { signature } = stream;
|
|
7066
|
-
return { size, signature };
|
|
7067
|
-
}
|
|
7091
|
+
function getMimeType(filename) {
|
|
7092
|
+
return filename && mimeTypes[filename.split(".").pop().toLowerCase()] || getMimeType$1();
|
|
7068
7093
|
}
|
|
7069
7094
|
|
|
7070
7095
|
/*
|
|
@@ -7103,10 +7128,9 @@
|
|
|
7103
7128
|
|
|
7104
7129
|
constructor(workerData, stream, workerOptions, onTaskFinished) {
|
|
7105
7130
|
const { readable, writable } = stream;
|
|
7106
|
-
const { options, config, streamOptions, useWebWorkers, transferStreams, scripts
|
|
7131
|
+
const { options, config, streamOptions, useWebWorkers, transferStreams, scripts } = workerOptions;
|
|
7107
7132
|
Object.assign(workerData, {
|
|
7108
7133
|
busy: true,
|
|
7109
|
-
codecConstructor,
|
|
7110
7134
|
readable,
|
|
7111
7135
|
writable,
|
|
7112
7136
|
options: Object.assign({}, options),
|
|
@@ -7159,7 +7183,7 @@
|
|
|
7159
7183
|
}
|
|
7160
7184
|
|
|
7161
7185
|
function createWorkerInterface(workerData, config) {
|
|
7162
|
-
const interfaceCodec = new Codec(workerData.
|
|
7186
|
+
const interfaceCodec = new Codec(workerData.readable, workerData.writable, workerData.options, config);
|
|
7163
7187
|
const { onTaskFinished } = workerData;
|
|
7164
7188
|
const codec = {
|
|
7165
7189
|
async run() {
|
|
@@ -7360,7 +7384,7 @@
|
|
|
7360
7384
|
const streamCopy = !compressed && !signed && !encrypted && !workerOptions.transferStreams;
|
|
7361
7385
|
workerOptions.useWebWorkers = !streamCopy && (useWebWorkers || (useWebWorkers === undefined && config.useWebWorkers));
|
|
7362
7386
|
workerOptions.scripts = workerOptions.useWebWorkers && workerScripts ? workerScripts[codecType] : [];
|
|
7363
|
-
options.useCompressionStream = useCompressionStream === undefined
|
|
7387
|
+
options.useCompressionStream = useCompressionStream || (useCompressionStream === undefined && config.useCompressionStream);
|
|
7364
7388
|
let worker;
|
|
7365
7389
|
if (pool.length < config.maxWorkers) {
|
|
7366
7390
|
const workerData = { indexWorker };
|
|
@@ -7412,7 +7436,7 @@
|
|
|
7412
7436
|
});
|
|
7413
7437
|
}
|
|
7414
7438
|
|
|
7415
|
-
function t(t){const e=()=>URL.createObjectURL(new Blob(['const{Array:t,Object:e,Math:n,Error:r,Uint8Array:i,Uint16Array:s,Uint32Array:o,Int32Array:c,DataView:f,Promise:l,TextEncoder:a,crypto:u,postMessage:w,TransformStream:h,ReadableStream:d,WritableStream:p,CompressionStream:b,DecompressionStream:y}=globalThis,m=[];for(let t=0;256>t;t++){let e=t;for(let t=0;8>t;t++)1&e?e=e>>>1^3988292384:e>>>=1;m[t]=e}class k{constructor(t){this.t=t||-1}append(t){let e=0|this.t;for(let n=0,r=0|t.length;r>n;n++)e=e>>>8^m[255&(e^t[n])];this.t=e}get(){return~this.t}}class g extends h{constructor(){const t=new k;super({transform(e){t.append(e)},flush(e){const n=new i(4);new f(n.buffer).setUint32(0,t.get()),e.enqueue(n)}})}}const v={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const n=t[t.length-1],r=v.i(n);return 32===r?t.concat(e):v.o(e,r,0|n,t.slice(0,t.length-1))},l(t){const e=t.length;if(0===e)return 0;const n=t[e-1];return 32*(e-1)+v.i(n)},u(t,e){if(32*t.length<e)return t;const r=(t=t.slice(0,n.ceil(e/32))).length;return e&=31,r>0&&e&&(t[r-1]=v.h(e,t[r-1]&2147483648>>e-1,1)),t},h:(t,e,n)=>32===t?e:(n?0|e:e<<32-t)+1099511627776*t,i:t=>n.round(t/1099511627776)||32,o(t,e,n,r){for(void 0===r&&(r=[]);e>=32;e-=32)r.push(n),n=0;if(0===e)return r.concat(t);for(let i=0;i<t.length;i++)r.push(n|t[i]>>>e),n=t[i]<<32-e;const i=t.length?t[t.length-1]:0,s=v.i(i);return r.push(v.h(e+s&31,e+s>32?n:r.pop(),1)),r}},S={p:{m(t){const e=v.l(t)/8,n=new i(e);let r;for(let i=0;e>i;i++)0==(3&i)&&(r=t[i/4]),n[i]=r>>>24,r<<=8;return n},k(t){const e=[];let n,r=0;for(n=0;n<t.length;n++)r=r<<8|t[n],3==(3&n)&&(e.push(r),r=0);return 3&n&&e.push(v.h(8*(3&n),r)),e}}},C={g:function(t){t?(this.v=t.v.slice(0),this.S=t.S.slice(0),this.C=t.C):this.reset()}};C.g.prototype={blockSize:512,reset(){const t=this;return t.v=this._.slice(0),t.S=[],t.C=0,t},update(t){const e=this;"string"==typeof t&&(t=S.I.k(t));const n=e.S=v.concat(e.S,t),i=e.C,s=e.C=i+v.l(t);if(s>9007199254740991)throw new r("Cannot hash more than 2^53 - 1 bits");const c=new o(n);let f=0;for(let t=e.blockSize+i-(e.blockSize+i&e.blockSize-1);s>=t;t+=e.blockSize)e.A(c.subarray(16*f,16*(f+1))),f+=1;return n.splice(0,16*f),e},V(){const t=this;let e=t.S;const r=t.v;e=v.concat(e,[v.h(1,1)]);for(let t=e.length+2;15&t;t++)e.push(0);for(e.push(n.floor(t.C/4294967296)),e.push(0|t.C);e.length;)t.A(e.splice(0,16));return t.reset(),r},_:[1732584193,4023233417,2562383102,271733878,3285377520],M:[1518500249,1859775393,2400959708,3395469782],B:(t,e,n,r)=>t>19?t>39?t>59?t>79?void 0:e^n^r:e&n|e&r|n&r:e^n^r:e&n|~e&r,D:(t,e)=>e<<t|e>>>32-t,A(e){const r=this,i=r.v,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let o=i[0],c=i[1],f=i[2],l=i[3],a=i[4];for(let t=0;79>=t;t++){16>t||(s[t]=r.D(1,s[t-3]^s[t-8]^s[t-14]^s[t-16]));const e=r.D(5,o)+r.B(t,c,f,l)+a+s[t]+r.M[n.floor(t/20)]|0;a=l,l=f,f=r.D(30,c),c=o,o=e}i[0]=i[0]+o|0,i[1]=i[1]+c|0,i[2]=i[2]+f|0,i[3]=i[3]+l|0,i[4]=i[4]+a|0}};const z={getRandomValues(t){const e=new o(t.buffer),r=t=>{let e=987654321;const r=4294967295;return()=>(e=36969*(65535&e)+(e>>16)&r,(((e<<16)+(t=18e3*(65535&t)+(t>>16)&r)&r)/4294967296+.5)*(n.random()>.5?1:-1))};for(let i,s=0;s<t.length;s+=4){const t=r(4294967296*(i||n.random()));i=987654071*t(),e[s/4]=4294967296*t()|0}return t}},_={importKey:t=>new _.T(S.p.k(t)),P(t,e,n,i){if(n=n||1e4,0>i||0>n)throw new r("invalid params to pbkdf2");const s=1+(i>>5)<<2;let o,c,l,a,u;const w=new ArrayBuffer(s),h=new f(w);let d=0;const p=v;for(e=S.p.k(e),u=1;(s||1)>d;u++){for(o=c=t.encrypt(p.concat(e,[u])),l=1;n>l;l++)for(c=t.encrypt(c),a=0;a<c.length;a++)o[a]^=c[a];for(l=0;(s||1)>d&&l<o.length;l++)h.setInt32(d,o[l]),d+=4}return w.slice(0,i/8)},T:class{constructor(t){const e=this,n=e.R=C.g,r=[[],[]],i=n.prototype.blockSize/32;e.U=[new n,new n],t.length>i&&(t=n.hash(t));for(let e=0;i>e;e++)r[0][e]=909522486^t[e],r[1][e]=1549556828^t[e];e.U[0].update(r[0]),e.U[1].update(r[1]),e.W=new n(e.U[0])}reset(){const t=this;t.W=new t.R(t.U[0]),t.H=!1}update(t){this.H=!0,this.W.update(t)}digest(){const t=this,e=t.W.V(),n=new t.R(t.U[1]).update(e).V();return t.reset(),n}encrypt(t){if(this.H)throw new r("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}},I=void 0!==u&&"function"==typeof u.getRandomValues;function x(t){return I?u.getRandomValues(t):z.getRandomValues(t)}const A={name:"PBKDF2"},V=e.assign({hash:{name:"HMAC"}},A),M=e.assign({iterations:1e3,hash:{name:"SHA-1"}},A),B=["deriveBits"],D=[8,12,16],E=[16,24,32],T=[0,0,0,0],P=void 0!==u,R=P&&void 0!==u.subtle,U=P&&R&&"function"==typeof u.subtle.importKey,W=P&&R&&"function"==typeof u.subtle.deriveBits,H=S.p,K=class{constructor(t){const e=this;e.K=[[[],[],[],[],[]],[[],[],[],[],[]]],e.K[0][0][0]||e.L();const n=e.K[0][4],i=e.K[1],s=t.length;let o,c,f,l=1;if(4!==s&&6!==s&&8!==s)throw new r("invalid aes key size");for(e.M=[c=t.slice(0),f=[]],o=s;4*s+28>o;o++){let t=c[o-1];(o%s==0||8===s&&o%s==4)&&(t=n[t>>>24]<<24^n[t>>16&255]<<16^n[t>>8&255]<<8^n[255&t],o%s==0&&(t=t<<8^t>>>24^l<<24,l=l<<1^283*(l>>7))),c[o]=c[o-s]^t}for(let t=0;o;t++,o--){const e=c[3&t?o:o-4];f[t]=4>=o||4>t?e:i[0][n[e>>>24]]^i[1][n[e>>16&255]]^i[2][n[e>>8&255]]^i[3][n[255&e]]}}encrypt(t){return this.N(t,0)}decrypt(t){return this.N(t,1)}L(){const t=this.K[0],e=this.K[1],n=t[4],r=e[4],i=[],s=[];let o,c,f,l;for(let t=0;256>t;t++)s[(i[t]=t<<1^283*(t>>7))^t]=t;for(let a=o=0;!n[a];a^=c||1,o=s[o]||1){let s=o^o<<1^o<<2^o<<3^o<<4;s=s>>8^255&s^99,n[a]=s,r[s]=a,l=i[f=i[c=i[a]]];let u=16843009*l^65537*f^257*c^16843008*a,w=257*i[s]^16843008*s;for(let n=0;4>n;n++)t[n][a]=w=w<<24^w>>>8,e[n][s]=u=u<<24^u>>>8}for(let n=0;5>n;n++)t[n]=t[n].slice(0),e[n]=e[n].slice(0)}N(t,e){if(4!==t.length)throw new r("invalid aes block size");const n=this.M[e],i=n.length/4-2,s=[0,0,0,0],o=this.K[e],c=o[0],f=o[1],l=o[2],a=o[3],u=o[4];let w,h,d,p=t[0]^n[0],b=t[e?3:1]^n[1],y=t[2]^n[2],m=t[e?1:3]^n[3],k=4;for(let t=0;i>t;t++)w=c[p>>>24]^f[b>>16&255]^l[y>>8&255]^a[255&m]^n[k],h=c[b>>>24]^f[y>>16&255]^l[m>>8&255]^a[255&p]^n[k+1],d=c[y>>>24]^f[m>>16&255]^l[p>>8&255]^a[255&b]^n[k+2],m=c[m>>>24]^f[p>>16&255]^l[b>>8&255]^a[255&y]^n[k+3],k+=4,p=w,b=h,y=d;for(let t=0;4>t;t++)s[e?3&-t:t]=u[p>>>24]<<24^u[b>>16&255]<<16^u[y>>8&255]<<8^u[255&m]^n[k++],w=p,p=b,b=y,y=m,m=w;return s}},L=class{constructor(t,e){this.j=t,this.F=e,this.O=e}reset(){this.O=this.F}update(t){return this.q(this.j,t,this.O)}G(t){if(255==(t>>24&255)){let e=t>>16&255,n=t>>8&255,r=255&t;255===e?(e=0,255===n?(n=0,255===r?r=0:++r):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=r}else t+=1<<24;return t}J(t){0===(t[0]=this.G(t[0]))&&(t[1]=this.G(t[1]))}q(t,e,n){let r;if(!(r=e.length))return[];const i=v.l(e);for(let i=0;r>i;i+=4){this.J(n);const r=t.encrypt(n);e[i]^=r[0],e[i+1]^=r[1],e[i+2]^=r[2],e[i+3]^=r[3]}return v.u(e,i)}},N=_.T;class j extends h{constructor(n,s,o){let c;super({start(){e.assign(this,{ready:new l((t=>this.X=t)),password:n,signed:s,Y:o-1,pending:new i})},async transform(e,n){const s=this;if(s.password){const n=s.password;s.password=null;const i=J(e,0,D[s.Y]+2);await(async(t,e,n)=>{await q(t,n,J(e,0,D[t.Y]));const i=J(e,D[t.Y]),s=t.keys.passwordVerification;if(s[0]!=i[0]||s[1]!=i[1])throw new r("Invalid password")})(s,i,n),s.Z=new L(new K(s.keys.key),t.from(T)),s.$=new N(s.keys.tt),e=J(e,D[s.Y]+2),s.X()}else await s.ready;const o=new i(e.length-10-(e.length-10)%16);n.enqueue(O(s,e,o,0,10,!0))},async flush(t){const e=this;await e.ready;const n=e.pending,r=J(n,0,n.length-10),s=J(n,n.length-10);let o=new i;if(r.length){const t=X(H,r);e.$.update(t);const n=e.Z.update(t);o=Q(H,n)}if(c.valid=!0,e.signed){const t=J(Q(H,e.$.digest()),0,10);for(let e=0;10>e;e++)t[e]!=s[e]&&(c.valid=!1)}t.enqueue(o)}}),c=this}}class F extends h{constructor(n,r){let s;super({start(){e.assign(this,{ready:new l((t=>this.X=t)),password:n,Y:r-1,pending:new i})},async transform(e,n){const r=this;let s=new i;if(r.password){const e=r.password;r.password=null,s=await(async(t,e)=>{const n=x(new i(D[t.Y]));return await q(t,e,n),G(n,t.keys.passwordVerification)})(r,e),r.Z=new L(new K(r.keys.key),t.from(T)),r.$=new N(r.keys.tt),r.X()}else await r.ready;const o=new i(s.length+e.length-e.length%16);o.set(s,0),n.enqueue(O(r,e,o,s.length,0))},async flush(t){const e=this;await e.ready;let n=new i;if(e.pending.length){const t=e.Z.update(X(H,e.pending));e.$.update(t),n=Q(H,t)}s.signature=Q(H,e.$.digest()).slice(0,10),t.enqueue(G(n,s.signature))}}),s=this}}function O(t,e,n,r,s,o){const c=e.length-s;let f;for(t.pending.length&&(e=G(t.pending,e),n=((t,e)=>{if(e&&e>t.length){const n=t;(t=new i(e)).set(n,0)}return t})(n,c-c%16)),f=0;c-16>=f;f+=16){const i=X(H,J(e,f,f+16));o&&t.$.update(i);const s=t.Z.update(i);o||t.$.update(s),n.set(Q(H,s),f+r)}return t.pending=J(e,f),n}async function q(t,n,r){const s=(t=>{if(void 0===a){const e=new i((t=unescape(encodeURIComponent(t))).length);for(let n=0;n<e.length;n++)e[n]=t.charCodeAt(n);return e}return(new a).encode(t)})(n),o=await((t,e,n,r,i)=>U?u.subtle.importKey("raw",e,n,!1,i):_.importKey(e))(0,s,V,0,B),c=await(async(t,e,n)=>W?await u.subtle.deriveBits(t,e,n):_.P(e,t.salt,M.iterations,n))(e.assign({salt:r},M),o,8*(2*E[t.Y]+2)),f=new i(c);t.keys={key:X(H,J(f,0,E[t.Y])),tt:X(H,J(f,E[t.Y],2*E[t.Y])),passwordVerification:J(f,2*E[t.Y])}}function G(t,e){let n=t;return t.length+e.length&&(n=new i(t.length+e.length),n.set(t,0),n.set(e,t.length)),n}function J(t,e,n){return t.subarray(e,n)}function Q(t,e){return t.m(e)}function X(t,e){return t.k(e)}class Y extends h{constructor(t,n){let i;super({start(){e.assign(this,{password:t,passwordVerification:n}),et(this,t)},transform(t,e){const n=this;if(n.password){const e=$(n,t.subarray(0,12));if(n.password=null,e[11]!=n.passwordVerification)throw new r("Invalid password");t=t.subarray(12)}e.enqueue($(n,t))},flush(){i.valid=!0}}),i=this}}class Z extends h{constructor(t,n){super({start(){e.assign(this,{password:t,passwordVerification:n}),et(this,t)},transform(t,e){const n=this;let r,s;if(n.password){n.password=null;const e=x(new i(12));e[11]=n.passwordVerification,r=new i(t.length+e.length),r.set(tt(n,e),0),s=12}else r=new i(t.length),s=0;r.set(tt(n,t),s),e.enqueue(r)},flush(){}})}}function $(t,e){const n=new i(e.length);for(let r=0;r<e.length;r++)n[r]=rt(t)^e[r],nt(t,n[r]);return n}function tt(t,e){const n=new i(e.length);for(let r=0;r<e.length;r++)n[r]=rt(t)^e[r],nt(t,e[r]);return n}function et(t,e){t.keys=[305419896,591751049,878082192],t.et=new k(t.keys[0]),t.nt=new k(t.keys[2]);for(let n=0;n<e.length;n++)nt(t,e.charCodeAt(n))}function nt(t,e){t.et.append([e]),t.keys[0]=~t.et.get(),t.keys[1]=st(t.keys[1]+it(t.keys[0])),t.keys[1]=st(n.imul(t.keys[1],134775813)+1),t.nt.append([t.keys[1]>>>24]),t.keys[2]=~t.nt.get()}function rt(t){const e=2|t.keys[2];return it(n.imul(e,1^e)>>>8)}function it(t){return 255&t}function st(t){return 4294967295&t}class ot extends h{constructor(t,e){let n;super({start(){n=new t(e)},transform(t,e){t=n.append(t),e.enqueue(t)},flush(t){const e=n.flush();e&&t.enqueue(e)}})}}const ct=void 0===b,ft=void 0===y;let lt=!0,at=!0;class ut extends h{constructor(t,e,{chunkSize:n},...r){super({},...r);const{compressed:i,encrypted:s,useCompressionStream:o,password:c,passwordVerification:l,encryptionStrength:a,zipCrypto:u,signed:w,level:h}=e,d=this;let p,y,m=dt(super.readable);if(s&&!u||!w||([m,p]=m.tee(),p=p.pipeThrough(new g)),i)if(void 0!==o&&!o||ct&&!at)m=ht(t,m,{chunkSize:n,level:h});else try{m=m.pipeThrough(new b("deflate-raw"))}catch(e){at=!1,m=ht(t,m,{chunkSize:n,level:h})}s&&(u?m=m.pipeThrough(new Z(c,l)):(y=new F(c,a),m=m.pipeThrough(y))),pt(d,m,(async()=>{let t;s&&!u&&(t=y.signature),s&&!u||!w||(t=await p.getReader().read(),t=new f(t.value.buffer).getUint32(0)),d.signature=t}))}}class wt extends h{constructor(t,e,{chunkSize:n},...i){super({},...i);const{zipCrypto:s,encrypted:o,password:c,passwordVerification:l,signed:a,encryptionStrength:u,compressed:w,useCompressionStream:h}=e;let d,p,b=dt(super.readable);if(o&&(s?b=b.pipeThrough(new Y(c,l)):(p=new j(c,a,u),b=b.pipeThrough(p))),w)if(void 0!==h&&!h||ft&&!lt)b=ht(t,b,{chunkSize:n});else try{b=b.pipeThrough(new y("deflate-raw"))}catch(e){lt=!1,b=ht(t,b,{chunkSize:n})}o&&!s||!a||([b,d]=b.tee(),d=d.pipeThrough(new g)),pt(this,b,(async()=>{if(o&&!s&&!p.valid)throw new r("Invalid signature");if((!o||s)&&a){const t=await d.getReader().read(),n=new f(t.value.buffer);if(e.signature!=n.getUint32(0,!1))throw new r("Invalid signature")}}))}}function ht(t,e,n){return e.pipeThrough(new ot(t,n))}function dt(t){return t.pipeThrough(new h({transform(t,e){t&&t.length&&e.enqueue(t)}}))}function pt(t,n,r){n=n.pipeThrough(new h({flush:r})),e.defineProperty(t,"readable",{get:()=>n})}class bt{constructor(t,n,r,i,s){const{codecType:o}=i;let c;o.startsWith("deflate")?c=ut:o.startsWith("inflate")&&(c=wt),e.assign(this,{rt:c,it:t,readable:n,writable:r,options:i,config:s})}async st(){const{rt:t,it:e,readable:n,writable:r,options:i,config:s}=this,o=new t(e,i,s);let c=0;await n.pipeThrough(o).pipeThrough(new h({transform(t,e){t&&t.length&&(c+=t.length,e.enqueue(t))}})).pipeTo(r,{preventClose:!0,ot:!0});const{signature:f}=o;return{size:c,signature:f}}}const yt=new Map,mt=new Map;let kt,gt=0;async function vt(t){try{const{options:e,scripts:n,config:r}=t,{codecType:i}=e;let s;n&&n.length&&importScripts.apply(void 0,n),self.initCodec&&self.initCodec(),i.startsWith("deflate")?s=self.Deflate:i.startsWith("inflate")&&(s=self.Inflate);const o={highWaterMark:1,size:()=>r.chunkSize},c=t.readable||new d({async pull(t){let e=new l((t=>yt.set(gt,t)));St({type:"pull",messageId:gt}),gt=(gt+1)%Number.MAX_SAFE_INTEGER;const{value:n,done:r}=await e;t.enqueue(n),r&&t.close()}},o),f=t.writable||new p({async write(t){let e;const n=new l((t=>e=t));mt.set(gt,e),St({type:"data",data:t,messageId:gt}),gt=(gt+1)%Number.MAX_SAFE_INTEGER,await n}},o);kt=new bt(s,c,f,e,r);const a=await kt.st();t.writable&&!e.preventClose&&await t.writable.close(),St({type:"close",result:a})}catch(t){Ct(t)}}function St(t){if(t.data){let{data:e}=t;if(e&&e.length)try{e=new i(e),t.data=e.buffer,w(t,[t.data])}catch(e){w(t)}else w(t)}else w(t)}function Ct(t){const{message:e,stack:n,code:r,name:i}=t;w({error:{message:e,stack:n,code:r,name:i}})}function zt(e){return _t(e.map((([e,n])=>new t(e).fill(n,0,e))))}function _t(e){return e.reduce(((e,n)=>e.concat(t.isArray(n)?_t(n):n)),[])}addEventListener("message",(async t=>{const e=t.data,{type:n,messageId:r,data:s,done:o}=e;try{if("start"==n&&vt(e),"data"==n){const t=yt.get(r);yt.delete(r),t({value:new i(s),done:o})}if("ack"==n){const t=mt.get(r);mt.delete(r),t()}}catch(t){Ct(t)}}));const It=[0,1,2,3].concat(...zt([[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 xt(){const t=this;function e(t,e){let n=0;do{n|=1&t,t>>>=1,n<<=1}while(--e>0);return n>>>1}t.ct=r=>{const i=t.ft,s=t.ut.lt,o=t.ut.wt;let c,f,l,a=-1;for(r.ht=0,r.dt=573,c=0;o>c;c++)0!==i[2*c]?(r.bt[++r.ht]=a=c,r.yt[c]=0):i[2*c+1]=0;for(;2>r.ht;)l=r.bt[++r.ht]=2>a?++a:0,i[2*l]=1,r.yt[l]=0,r.kt--,s&&(r.gt-=s[2*l+1]);for(t.vt=a,c=n.floor(r.ht/2);c>=1;c--)r.St(i,c);l=o;do{c=r.bt[1],r.bt[1]=r.bt[r.ht--],r.St(i,1),f=r.bt[1],r.bt[--r.dt]=c,r.bt[--r.dt]=f,i[2*l]=i[2*c]+i[2*f],r.yt[l]=n.max(r.yt[c],r.yt[f])+1,i[2*c+1]=i[2*f+1]=l,r.bt[1]=l++,r.St(i,1)}while(r.ht>=2);r.bt[--r.dt]=r.bt[1],(e=>{const n=t.ft,r=t.ut.lt,i=t.ut.Ct,s=t.ut.zt,o=t.ut._t;let c,f,l,a,u,w,h=0;for(a=0;15>=a;a++)e.It[a]=0;for(n[2*e.bt[e.dt]+1]=0,c=e.dt+1;573>c;c++)f=e.bt[c],a=n[2*n[2*f+1]+1]+1,a>o&&(a=o,h++),n[2*f+1]=a,f>t.vt||(e.It[a]++,u=0,s>f||(u=i[f-s]),w=n[2*f],e.kt+=w*(a+u),r&&(e.gt+=w*(r[2*f+1]+u)));if(0!==h){do{for(a=o-1;0===e.It[a];)a--;e.It[a]--,e.It[a+1]+=2,e.It[o]--,h-=2}while(h>0);for(a=o;0!==a;a--)for(f=e.It[a];0!==f;)l=e.bt[--c],l>t.vt||(n[2*l+1]!=a&&(e.kt+=(a-n[2*l+1])*n[2*l],n[2*l+1]=a),f--)}})(r),((t,n,r)=>{const i=[];let s,o,c,f=0;for(s=1;15>=s;s++)i[s]=f=f+r[s-1]<<1;for(o=0;n>=o;o++)c=t[2*o+1],0!==c&&(t[2*o]=e(i[c]++,c))})(i,t.vt,r.It)}}function At(t,e,n,r,i){const s=this;s.lt=t,s.Ct=e,s.zt=n,s.wt=r,s._t=i}xt.xt=[0,1,2,3,4,5,6,7].concat(...zt([[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]])),xt.At=[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],xt.Vt=[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],xt.Mt=t=>256>t?It[t]:It[256+(t>>>7)],xt.Bt=[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],xt.Dt=[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],xt.Et=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],xt.Tt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const Vt=zt([[144,8],[112,9],[24,7],[8,8]]);At.Pt=_t([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(((t,e)=>[t,Vt[e]])));const Mt=zt([[30,5]]);function Bt(t,e,n,r,i){const s=this;s.Rt=t,s.Ut=e,s.Wt=n,s.Ht=r,s.Kt=i}At.Lt=_t([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(((t,e)=>[t,Mt[e]]))),At.Nt=new At(At.Pt,xt.Bt,257,286,15),At.jt=new At(At.Lt,xt.Dt,0,30,15),At.Ft=new At(null,xt.Et,0,19,7);const Dt=[new Bt(0,0,0,0,0),new Bt(4,4,8,4,1),new Bt(4,5,16,8,1),new Bt(4,6,32,32,1),new Bt(4,4,16,16,2),new Bt(8,16,32,32,2),new Bt(8,16,128,128,2),new Bt(8,32,128,256,2),new Bt(32,128,258,1024,2),new Bt(32,258,258,4096,2)],Et=["need dictionary","stream end","","","stream error","data error","","buffer error","",""];function Tt(t,e,n,r){const i=t[2*e],s=t[2*n];return s>i||i==s&&r[e]<=r[n]}function Pt(){const t=this;let e,r,o,c,f,l,a,u,w,h,d,p,b,y,m,k,g,v,S,C,z,_,I,x,A,V,M,B,D,E,T,P,R;const U=new xt,W=new xt,H=new xt;let K,L,N,j,F,O;function q(){let e;for(e=0;286>e;e++)T[2*e]=0;for(e=0;30>e;e++)P[2*e]=0;for(e=0;19>e;e++)R[2*e]=0;T[512]=1,t.kt=t.gt=0,L=N=0}function G(t,e){let n,r=-1,i=t[1],s=0,o=7,c=4;0===i&&(o=138,c=3),t[2*(e+1)+1]=65535;for(let f=0;e>=f;f++)n=i,i=t[2*(f+1)+1],++s<o&&n==i||(c>s?R[2*n]+=s:0!==n?(n!=r&&R[2*n]++,R[32]++):s>10?R[36]++:R[34]++,s=0,r=n,0===i?(o=138,c=3):n==i?(o=6,c=3):(o=7,c=4))}function J(e){t.Ot[t.pending++]=e}function Q(t){J(255&t),J(t>>>8&255)}function X(t,e){let n;const r=e;O>16-r?(n=t,F|=n<<O&65535,Q(F),F=n>>>16-O,O+=r-16):(F|=t<<O&65535,O+=r)}function Y(t,e){const n=2*t;X(65535&e[n],65535&e[n+1])}function Z(t,e){let n,r,i=-1,s=t[1],o=0,c=7,f=4;for(0===s&&(c=138,f=3),n=0;e>=n;n++)if(r=s,s=t[2*(n+1)+1],++o>=c||r!=s){if(f>o)do{Y(r,R)}while(0!=--o);else 0!==r?(r!=i&&(Y(r,R),o--),Y(16,R),X(o-3,2)):o>10?(Y(18,R),X(o-11,7)):(Y(17,R),X(o-3,3));o=0,i=r,0===s?(c=138,f=3):r==s?(c=6,f=3):(c=7,f=4)}}function $(){16==O?(Q(F),F=0,O=0):8>O||(J(255&F),F>>>=8,O-=8)}function tt(e,r){let i,s,o;if(t.qt[L]=e,t.Gt[L]=255&r,L++,0===e?T[2*r]++:(N++,e--,T[2*(xt.xt[r]+256+1)]++,P[2*xt.Mt(e)]++),0==(8191&L)&&M>2){for(i=8*L,s=z-g,o=0;30>o;o++)i+=P[2*o]*(5+xt.Dt[o]);if(i>>>=3,N<n.floor(L/2)&&i<n.floor(s/2))return!0}return L==K-1}function et(e,n){let r,i,s,o,c=0;if(0!==L)do{r=t.qt[c],i=t.Gt[c],c++,0===r?Y(i,e):(s=xt.xt[i],Y(s+256+1,e),o=xt.Bt[s],0!==o&&(i-=xt.At[s],X(i,o)),r--,s=xt.Mt(r),Y(s,n),o=xt.Dt[s],0!==o&&(r-=xt.Vt[s],X(r,o)))}while(L>c);Y(256,e),j=e[513]}function nt(){O>8?Q(F):O>0&&J(255&F),F=0,O=0}function rt(e,n,r){X(0+(r?1:0),3),((e,n)=>{nt(),j=8,Q(n),Q(~n),t.Ot.set(u.subarray(e,e+n),t.pending),t.pending+=n})(e,n)}function it(n){((e,n,r)=>{let i,s,o=0;M>0?(U.ct(t),W.ct(t),o=(()=>{let e;for(G(T,U.vt),G(P,W.vt),H.ct(t),e=18;e>=3&&0===R[2*xt.Tt[e]+1];e--);return t.kt+=14+3*(e+1),e})(),i=t.kt+3+7>>>3,s=t.gt+3+7>>>3,s>i||(i=s)):i=s=n+5,n+4>i||-1==e?s==i?(X(2+(r?1:0),3),et(At.Pt,At.Lt)):(X(4+(r?1:0),3),((t,e,n)=>{let r;for(X(t-257,5),X(e-1,5),X(n-4,4),r=0;n>r;r++)X(R[2*xt.Tt[r]+1],3);Z(T,t-1),Z(P,e-1)})(U.vt+1,W.vt+1,o+1),et(T,P)):rt(e,n,r),q(),r&&nt()})(0>g?-1:g,z-g,n),g=z,e.Jt()}function st(){let t,n,r,i;do{if(i=w-I-z,0===i&&0===z&&0===I)i=f;else if(-1==i)i--;else if(z>=f+f-262){u.set(u.subarray(f,f+f),0),_-=f,z-=f,g-=f,t=b,r=t;do{n=65535&d[--r],d[r]=f>n?0:n-f}while(0!=--t);t=f,r=t;do{n=65535&h[--r],h[r]=f>n?0:n-f}while(0!=--t);i+=f}if(0===e.Qt)return;t=e.Xt(u,z+I,i),I+=t,3>I||(p=255&u[z],p=(p<<k^255&u[z+1])&m)}while(262>I&&0!==e.Qt)}function ot(t){let e,n,r=A,i=z,s=x;const o=z>f-262?z-(f-262):0;let c=E;const l=a,w=z+258;let d=u[i+s-1],p=u[i+s];D>x||(r>>=2),c>I&&(c=I);do{if(e=t,u[e+s]==p&&u[e+s-1]==d&&u[e]==u[i]&&u[++e]==u[i+1]){i+=2,e++;do{}while(u[++i]==u[++e]&&u[++i]==u[++e]&&u[++i]==u[++e]&&u[++i]==u[++e]&&u[++i]==u[++e]&&u[++i]==u[++e]&&u[++i]==u[++e]&&u[++i]==u[++e]&&w>i);if(n=258-(w-i),i=w-258,n>s){if(_=t,s=n,n>=c)break;d=u[i+s-1],p=u[i+s]}}}while((t=65535&h[t&l])>o&&0!=--r);return s>I?I:s}t.yt=[],t.It=[],t.bt=[],T=[],P=[],R=[],t.St=(e,n)=>{const r=t.bt,i=r[n];let s=n<<1;for(;s<=t.ht&&(s<t.ht&&Tt(e,r[s+1],r[s],t.yt)&&s++,!Tt(e,i,r[s],t.yt));)r[n]=r[s],n=s,s<<=1;r[n]=i},t.Yt=(e,S,_,L,N,G)=>(L||(L=8),N||(N=8),G||(G=0),e.Zt=null,-1==S&&(S=6),1>N||N>9||8!=L||9>_||_>15||0>S||S>9||0>G||G>2?-2:(e.$t=t,l=_,f=1<<l,a=f-1,y=N+7,b=1<<y,m=b-1,k=n.floor((y+3-1)/3),u=new i(2*f),h=[],d=[],K=1<<N+6,t.Ot=new i(4*K),o=4*K,t.qt=new s(K),t.Gt=new i(K),M=S,B=G,(e=>(e.te=e.ee=0,e.Zt=null,t.pending=0,t.ne=0,r=113,c=0,U.ft=T,U.ut=At.Nt,W.ft=P,W.ut=At.jt,H.ft=R,H.ut=At.Ft,F=0,O=0,j=8,q(),(()=>{w=2*f,d[b-1]=0;for(let t=0;b-1>t;t++)d[t]=0;V=Dt[M].Ut,D=Dt[M].Rt,E=Dt[M].Wt,A=Dt[M].Ht,z=0,g=0,I=0,v=x=2,C=0,p=0})(),0))(e))),t.re=()=>42!=r&&113!=r&&666!=r?-2:(t.Gt=null,t.qt=null,t.Ot=null,d=null,h=null,u=null,t.$t=null,113==r?-3:0),t.ie=(t,e,n)=>{let r=0;return-1==e&&(e=6),0>e||e>9||0>n||n>2?-2:(Dt[M].Kt!=Dt[e].Kt&&0!==t.te&&(r=t.se(1)),M!=e&&(M=e,V=Dt[M].Ut,D=Dt[M].Rt,E=Dt[M].Wt,A=Dt[M].Ht),B=n,r)},t.oe=(t,e,n)=>{let i,s=n,o=0;if(!e||42!=r)return-2;if(3>s)return 0;for(s>f-262&&(s=f-262,o=n-s),u.set(e.subarray(o,o+s),0),z=s,g=s,p=255&u[0],p=(p<<k^255&u[1])&m,i=0;s-3>=i;i++)p=(p<<k^255&u[i+2])&m,h[i&a]=d[p],d[p]=i;return 0},t.se=(n,i)=>{let s,w,y,A,D;if(i>4||0>i)return-2;if(!n.ce||!n.fe&&0!==n.Qt||666==r&&4!=i)return n.Zt=Et[4],-2;if(0===n.le)return n.Zt=Et[7],-5;var E;if(e=n,A=c,c=i,42==r&&(w=8+(l-8<<4)<<8,y=(M-1&255)>>1,y>3&&(y=3),w|=y<<6,0!==z&&(w|=32),w+=31-w%31,r=113,J((E=w)>>8&255),J(255&E)),0!==t.pending){if(e.Jt(),0===e.le)return c=-1,0}else if(0===e.Qt&&A>=i&&4!=i)return e.Zt=Et[7],-5;if(666==r&&0!==e.Qt)return n.Zt=Et[7],-5;if(0!==e.Qt||0!==I||0!=i&&666!=r){switch(D=-1,Dt[M].Kt){case 0:D=(t=>{let n,r=65535;for(r>o-5&&(r=o-5);;){if(1>=I){if(st(),0===I&&0==t)return 0;if(0===I)break}if(z+=I,I=0,n=g+r,(0===z||z>=n)&&(I=z-n,z=n,it(!1),0===e.le))return 0;if(z-g>=f-262&&(it(!1),0===e.le))return 0}return it(4==t),0===e.le?4==t?2:0:4==t?3:1})(i);break;case 1:D=(t=>{let n,r=0;for(;;){if(262>I){if(st(),262>I&&0==t)return 0;if(0===I)break}if(3>I||(p=(p<<k^255&u[z+2])&m,r=65535&d[p],h[z&a]=d[p],d[p]=z),0===r||(z-r&65535)>f-262||2!=B&&(v=ot(r)),3>v)n=tt(0,255&u[z]),I--,z++;else if(n=tt(z-_,v-3),I-=v,v>V||3>I)z+=v,v=0,p=255&u[z],p=(p<<k^255&u[z+1])&m;else{v--;do{z++,p=(p<<k^255&u[z+2])&m,r=65535&d[p],h[z&a]=d[p],d[p]=z}while(0!=--v);z++}if(n&&(it(!1),0===e.le))return 0}return it(4==t),0===e.le?4==t?2:0:4==t?3:1})(i);break;case 2:D=(t=>{let n,r,i=0;for(;;){if(262>I){if(st(),262>I&&0==t)return 0;if(0===I)break}if(3>I||(p=(p<<k^255&u[z+2])&m,i=65535&d[p],h[z&a]=d[p],d[p]=z),x=v,S=_,v=2,0!==i&&V>x&&f-262>=(z-i&65535)&&(2!=B&&(v=ot(i)),5>=v&&(1==B||3==v&&z-_>4096)&&(v=2)),3>x||v>x)if(0!==C){if(n=tt(0,255&u[z-1]),n&&it(!1),z++,I--,0===e.le)return 0}else C=1,z++,I--;else{r=z+I-3,n=tt(z-1-S,x-3),I-=x-1,x-=2;do{++z>r||(p=(p<<k^255&u[z+2])&m,i=65535&d[p],h[z&a]=d[p],d[p]=z)}while(0!=--x);if(C=0,v=2,z++,n&&(it(!1),0===e.le))return 0}}return 0!==C&&(n=tt(0,255&u[z-1]),C=0),it(4==t),0===e.le?4==t?2:0:4==t?3:1})(i)}if(2!=D&&3!=D||(r=666),0==D||2==D)return 0===e.le&&(c=-1),0;if(1==D){if(1==i)X(2,3),Y(256,At.Pt),$(),9>1+j+10-O&&(X(2,3),Y(256,At.Pt),$()),j=7;else if(rt(0,0,!1),3==i)for(s=0;b>s;s++)d[s]=0;if(e.Jt(),0===e.le)return c=-1,0}}return 4!=i?0:1}}function Rt(){const t=this;t.ae=0,t.ue=0,t.Qt=0,t.te=0,t.le=0,t.ee=0}function Ut(t){const e=new Rt,s=(o=t&&t.chunkSize?t.chunkSize:65536)+5*(n.floor(o/16383)+1);var o;const c=new i(s);let f=t?t.level:-1;void 0===f&&(f=-1),e.Yt(f),e.ce=c,this.append=(t,n)=>{let o,f,l=0,a=0,u=0;const w=[];if(t.length){e.ae=0,e.fe=t,e.Qt=t.length;do{if(e.ue=0,e.le=s,o=e.se(0),0!=o)throw new r("deflating: "+e.Zt);e.ue&&(e.ue==s?w.push(new i(c)):w.push(c.slice(0,e.ue))),u+=e.ue,n&&e.ae>0&&e.ae!=l&&(n(e.ae),l=e.ae)}while(e.Qt>0||0===e.le);return w.length>1?(f=new i(u),w.forEach((t=>{f.set(t,a),a+=t.length}))):f=w[0]||new i,f}},this.flush=()=>{let t,n,o=0,f=0;const l=[];do{if(e.ue=0,e.le=s,t=e.se(4),1!=t&&0!=t)throw new r("deflating: "+e.Zt);s-e.le>0&&l.push(c.slice(0,e.ue)),f+=e.ue}while(e.Qt>0||0===e.le);return e.re(),n=new i(f),l.forEach((t=>{n.set(t,o),o+=t.length})),n}}Rt.prototype={Yt(t,e){const n=this;return n.$t=new Pt,e||(e=15),n.$t.Yt(n,t,e)},se(t){const e=this;return e.$t?e.$t.se(e,t):-2},re(){const t=this;if(!t.$t)return-2;const e=t.$t.re();return t.$t=null,e},ie(t,e){const n=this;return n.$t?n.$t.ie(n,t,e):-2},oe(t,e){const n=this;return n.$t?n.$t.oe(n,t,e):-2},Xt(t,e,n){const r=this;let i=r.Qt;return i>n&&(i=n),0===i?0:(r.Qt-=i,t.set(r.fe.subarray(r.ae,r.ae+i),e),r.ae+=i,r.te+=i,i)},Jt(){const t=this;let e=t.$t.pending;e>t.le&&(e=t.le),0!==e&&(t.ce.set(t.$t.Ot.subarray(t.$t.ne,t.$t.ne+e),t.ue),t.ue+=e,t.$t.ne+=e,t.ee+=e,t.le-=e,t.$t.pending-=e,0===t.$t.pending&&(t.$t.ne=0))}};const Wt=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],Ht=[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],Kt=[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],Lt=[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],Nt=[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],jt=[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],Ft=[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 Ot(){let t,e,n,r,i,s;function o(t,e,o,c,f,l,a,u,w,h,d){let p,b,y,m,k,g,v,S,C,z,_,I,x,A,V;z=0,k=o;do{n[t[e+z]]++,z++,k--}while(0!==k);if(n[0]==o)return a[0]=-1,u[0]=0,0;for(S=u[0],g=1;15>=g&&0===n[g];g++);for(v=g,g>S&&(S=g),k=15;0!==k&&0===n[k];k--);for(y=k,S>k&&(S=k),u[0]=S,A=1<<g;k>g;g++,A<<=1)if(0>(A-=n[g]))return-3;if(0>(A-=n[k]))return-3;for(n[k]+=A,s[1]=g=0,z=1,x=2;0!=--k;)s[x]=g+=n[z],x++,z++;k=0,z=0;do{0!==(g=t[e+z])&&(d[s[g]++]=k),z++}while(++k<o);for(o=s[y],s[0]=k=0,z=0,m=-1,I=-S,i[0]=0,_=0,V=0;y>=v;v++)for(p=n[v];0!=p--;){for(;v>I+S;){if(m++,I+=S,V=y-I,V=V>S?S:V,(b=1<<(g=v-I))>p+1&&(b-=p+1,x=v,V>g))for(;++g<V&&(b<<=1)>n[++x];)b-=n[x];if(V=1<<g,h[0]+V>1440)return-3;i[m]=_=h[0],h[0]+=V,0!==m?(s[m]=k,r[0]=g,r[1]=S,g=k>>>I-S,r[2]=_-i[m-1]-g,w.set(r,3*(i[m-1]+g))):a[0]=_}for(r[1]=v-I,o>z?d[z]<c?(r[0]=256>d[z]?0:96,r[2]=d[z++]):(r[0]=l[d[z]-c]+16+64,r[2]=f[d[z++]-c]):r[0]=192,b=1<<v-I,g=k>>>I;V>g;g+=b)w.set(r,3*(_+g));for(g=1<<v-1;0!=(k&g);g>>>=1)k^=g;for(k^=g,C=(1<<I)-1;(k&C)!=s[m];)m--,I-=S,C=(1<<I)-1}return 0!==A&&1!=y?-5:0}function f(o){let f;for(t||(t=[],e=[],n=new c(16),r=[],i=new c(15),s=new c(16)),e.length<o&&(e=[]),f=0;o>f;f++)e[f]=0;for(f=0;16>f;f++)n[f]=0;for(f=0;3>f;f++)r[f]=0;i.set(n.subarray(0,15),0),s.set(n.subarray(0,16),0)}this.we=(n,r,i,s,c)=>{let l;return f(19),t[0]=0,l=o(n,0,19,19,null,null,i,r,s,t,e),-3==l?c.Zt="oversubscribed dynamic bit lengths tree":-5!=l&&0!==r[0]||(c.Zt="incomplete dynamic bit lengths tree",l=-3),l},this.he=(n,r,i,s,c,l,a,u,w)=>{let h;return f(288),t[0]=0,h=o(i,0,n,257,Lt,Nt,l,s,u,t,e),0!=h||0===s[0]?(-3==h?w.Zt="oversubscribed literal/length tree":-4!=h&&(w.Zt="incomplete literal/length tree",h=-3),h):(f(288),h=o(i,n,r,0,jt,Ft,a,c,u,t,e),0!=h||0===c[0]&&n>257?(-3==h?w.Zt="oversubscribed distance tree":-5==h?(w.Zt="incomplete distance tree",h=-3):-4!=h&&(w.Zt="empty distance tree with lengths",h=-3),h):0)}}function qt(){const t=this;let e,n,r,i,s=0,o=0,c=0,f=0,l=0,a=0,u=0,w=0,h=0,d=0;function p(t,e,n,r,i,s,o,c){let f,l,a,u,w,h,d,p,b,y,m,k,g,v,S,C;d=c.ae,p=c.Qt,w=o.de,h=o.pe,b=o.write,y=b<o.read?o.read-b-1:o.end-b,m=Wt[t],k=Wt[e];do{for(;20>h;)p--,w|=(255&c.be(d++))<<h,h+=8;if(f=w&m,l=n,a=r,C=3*(a+f),0!==(u=l[C]))for(;;){if(w>>=l[C+1],h-=l[C+1],0!=(16&u)){for(u&=15,g=l[C+2]+(w&Wt[u]),w>>=u,h-=u;15>h;)p--,w|=(255&c.be(d++))<<h,h+=8;for(f=w&k,l=i,a=s,C=3*(a+f),u=l[C];;){if(w>>=l[C+1],h-=l[C+1],0!=(16&u)){for(u&=15;u>h;)p--,w|=(255&c.be(d++))<<h,h+=8;if(v=l[C+2]+(w&Wt[u]),w>>=u,h-=u,y-=g,v>b){S=b-v;do{S+=o.end}while(0>S);if(u=o.end-S,g>u){if(g-=u,b-S>0&&u>b-S)do{o.ye[b++]=o.ye[S++]}while(0!=--u);else o.ye.set(o.ye.subarray(S,S+u),b),b+=u,S+=u,u=0;S=0}}else S=b-v,b-S>0&&2>b-S?(o.ye[b++]=o.ye[S++],o.ye[b++]=o.ye[S++],g-=2):(o.ye.set(o.ye.subarray(S,S+2),b),b+=2,S+=2,g-=2);if(b-S>0&&g>b-S)do{o.ye[b++]=o.ye[S++]}while(0!=--g);else o.ye.set(o.ye.subarray(S,S+g),b),b+=g,S+=g,g=0;break}if(0!=(64&u))return c.Zt="invalid distance code",g=c.Qt-p,g=g>h>>3?h>>3:g,p+=g,d-=g,h-=g<<3,o.de=w,o.pe=h,c.Qt=p,c.te+=d-c.ae,c.ae=d,o.write=b,-3;f+=l[C+2],f+=w&Wt[u],C=3*(a+f),u=l[C]}break}if(0!=(64&u))return 0!=(32&u)?(g=c.Qt-p,g=g>h>>3?h>>3:g,p+=g,d-=g,h-=g<<3,o.de=w,o.pe=h,c.Qt=p,c.te+=d-c.ae,c.ae=d,o.write=b,1):(c.Zt="invalid literal/length code",g=c.Qt-p,g=g>h>>3?h>>3:g,p+=g,d-=g,h-=g<<3,o.de=w,o.pe=h,c.Qt=p,c.te+=d-c.ae,c.ae=d,o.write=b,-3);if(f+=l[C+2],f+=w&Wt[u],C=3*(a+f),0===(u=l[C])){w>>=l[C+1],h-=l[C+1],o.ye[b++]=l[C+2],y--;break}}else w>>=l[C+1],h-=l[C+1],o.ye[b++]=l[C+2],y--}while(y>=258&&p>=10);return g=c.Qt-p,g=g>h>>3?h>>3:g,p+=g,d-=g,h-=g<<3,o.de=w,o.pe=h,c.Qt=p,c.te+=d-c.ae,c.ae=d,o.write=b,0}t.init=(t,s,o,c,f,l)=>{e=0,u=t,w=s,r=o,h=c,i=f,d=l,n=null},t.me=(t,b,y)=>{let m,k,g,v,S,C,z,_=0,I=0,x=0;for(x=b.ae,v=b.Qt,_=t.de,I=t.pe,S=t.write,C=S<t.read?t.read-S-1:t.end-S;;)switch(e){case 0:if(C>=258&&v>=10&&(t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,y=p(u,w,r,h,i,d,t,b),x=b.ae,v=b.Qt,_=t.de,I=t.pe,S=t.write,C=S<t.read?t.read-S-1:t.end-S,0!=y)){e=1==y?7:9;break}c=u,n=r,o=h,e=1;case 1:for(m=c;m>I;){if(0===v)return t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);y=0,v--,_|=(255&b.be(x++))<<I,I+=8}if(k=3*(o+(_&Wt[m])),_>>>=n[k+1],I-=n[k+1],g=n[k],0===g){f=n[k+2],e=6;break}if(0!=(16&g)){l=15&g,s=n[k+2],e=2;break}if(0==(64&g)){c=g,o=k/3+n[k+2];break}if(0!=(32&g)){e=7;break}return e=9,b.Zt="invalid literal/length code",y=-3,t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);case 2:for(m=l;m>I;){if(0===v)return t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);y=0,v--,_|=(255&b.be(x++))<<I,I+=8}s+=_&Wt[m],_>>=m,I-=m,c=w,n=i,o=d,e=3;case 3:for(m=c;m>I;){if(0===v)return t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);y=0,v--,_|=(255&b.be(x++))<<I,I+=8}if(k=3*(o+(_&Wt[m])),_>>=n[k+1],I-=n[k+1],g=n[k],0!=(16&g)){l=15&g,a=n[k+2],e=4;break}if(0==(64&g)){c=g,o=k/3+n[k+2];break}return e=9,b.Zt="invalid distance code",y=-3,t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);case 4:for(m=l;m>I;){if(0===v)return t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);y=0,v--,_|=(255&b.be(x++))<<I,I+=8}a+=_&Wt[m],_>>=m,I-=m,e=5;case 5:for(z=S-a;0>z;)z+=t.end;for(;0!==s;){if(0===C&&(S==t.end&&0!==t.read&&(S=0,C=S<t.read?t.read-S-1:t.end-S),0===C&&(t.write=S,y=t.ke(b,y),S=t.write,C=S<t.read?t.read-S-1:t.end-S,S==t.end&&0!==t.read&&(S=0,C=S<t.read?t.read-S-1:t.end-S),0===C)))return t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);t.ye[S++]=t.ye[z++],C--,z==t.end&&(z=0),s--}e=0;break;case 6:if(0===C&&(S==t.end&&0!==t.read&&(S=0,C=S<t.read?t.read-S-1:t.end-S),0===C&&(t.write=S,y=t.ke(b,y),S=t.write,C=S<t.read?t.read-S-1:t.end-S,S==t.end&&0!==t.read&&(S=0,C=S<t.read?t.read-S-1:t.end-S),0===C)))return t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);y=0,t.ye[S++]=f,C--,e=0;break;case 7:if(I>7&&(I-=8,v++,x--),t.write=S,y=t.ke(b,y),S=t.write,C=S<t.read?t.read-S-1:t.end-S,t.read!=t.write)return t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);e=8;case 8:return y=1,t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);case 9:return y=-3,t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);default:return y=-2,t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y)}},t.ge=()=>{}}Ot.ve=(t,e,n,r)=>(t[0]=9,e[0]=5,n[0]=Ht,r[0]=Kt,0);const Gt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function Jt(t,e){const n=this;let r,s=0,o=0,f=0,l=0;const a=[0],u=[0],w=new qt;let h=0,d=new c(4320);const p=new Ot;n.pe=0,n.de=0,n.ye=new i(e),n.end=e,n.read=0,n.write=0,n.reset=(t,e)=>{e&&(e[0]=0),6==s&&w.ge(t),s=0,n.pe=0,n.de=0,n.read=n.write=0},n.reset(t,null),n.ke=(t,e)=>{let r,i,s;return i=t.ue,s=n.read,r=(s>n.write?n.end:n.write)-s,r>t.le&&(r=t.le),0!==r&&-5==e&&(e=0),t.le-=r,t.ee+=r,t.ce.set(n.ye.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>t.le&&(r=t.le),0!==r&&-5==e&&(e=0),t.le-=r,t.ee+=r,t.ce.set(n.ye.subarray(s,s+r),i),i+=r,s+=r),t.ue=i,n.read=s,e},n.me=(t,e)=>{let i,c,b,y,m,k,g,v;for(y=t.ae,m=t.Qt,c=n.de,b=n.pe,k=n.write,g=k<n.read?n.read-k-1:n.end-k;;){let S,C,z,_,I,x,A,V;switch(s){case 0:for(;3>b;){if(0===m)return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);e=0,m--,c|=(255&t.be(y++))<<b,b+=8}switch(i=7&c,h=1&i,i>>>1){case 0:c>>>=3,b-=3,i=7&b,c>>>=i,b-=i,s=1;break;case 1:S=[],C=[],z=[[]],_=[[]],Ot.ve(S,C,z,_),w.init(S[0],C[0],z[0],0,_[0],0),c>>>=3,b-=3,s=6;break;case 2:c>>>=3,b-=3,s=3;break;case 3:return c>>>=3,b-=3,s=9,t.Zt="invalid block type",e=-3,n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e)}break;case 1:for(;32>b;){if(0===m)return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);e=0,m--,c|=(255&t.be(y++))<<b,b+=8}if((~c>>>16&65535)!=(65535&c))return s=9,t.Zt="invalid stored block lengths",e=-3,n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);o=65535&c,c=b=0,s=0!==o?2:0!==h?7:0;break;case 2:if(0===m)return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);if(0===g&&(k==n.end&&0!==n.read&&(k=0,g=k<n.read?n.read-k-1:n.end-k),0===g&&(n.write=k,e=n.ke(t,e),k=n.write,g=k<n.read?n.read-k-1:n.end-k,k==n.end&&0!==n.read&&(k=0,g=k<n.read?n.read-k-1:n.end-k),0===g)))return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);if(e=0,i=o,i>m&&(i=m),i>g&&(i=g),n.ye.set(t.Xt(y,i),k),y+=i,m-=i,k+=i,g-=i,0!=(o-=i))break;s=0!==h?7:0;break;case 3:for(;14>b;){if(0===m)return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);e=0,m--,c|=(255&t.be(y++))<<b,b+=8}if(f=i=16383&c,(31&i)>29||(i>>5&31)>29)return s=9,t.Zt="too many length or distance symbols",e=-3,n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);if(i=258+(31&i)+(i>>5&31),!r||r.length<i)r=[];else for(v=0;i>v;v++)r[v]=0;c>>>=14,b-=14,l=0,s=4;case 4:for(;4+(f>>>10)>l;){for(;3>b;){if(0===m)return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);e=0,m--,c|=(255&t.be(y++))<<b,b+=8}r[Gt[l++]]=7&c,c>>>=3,b-=3}for(;19>l;)r[Gt[l++]]=0;if(a[0]=7,i=p.we(r,a,u,d,t),0!=i)return-3==(e=i)&&(r=null,s=9),n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);l=0,s=5;case 5:for(;i=f,258+(31&i)+(i>>5&31)>l;){let o,w;for(i=a[0];i>b;){if(0===m)return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);e=0,m--,c|=(255&t.be(y++))<<b,b+=8}if(i=d[3*(u[0]+(c&Wt[i]))+1],w=d[3*(u[0]+(c&Wt[i]))+2],16>w)c>>>=i,b-=i,r[l++]=w;else{for(v=18==w?7:w-14,o=18==w?11:3;i+v>b;){if(0===m)return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);e=0,m--,c|=(255&t.be(y++))<<b,b+=8}if(c>>>=i,b-=i,o+=c&Wt[v],c>>>=v,b-=v,v=l,i=f,v+o>258+(31&i)+(i>>5&31)||16==w&&1>v)return r=null,s=9,t.Zt="invalid bit length repeat",e=-3,n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);w=16==w?r[v-1]:0;do{r[v++]=w}while(0!=--o);l=v}}if(u[0]=-1,I=[],x=[],A=[],V=[],I[0]=9,x[0]=6,i=f,i=p.he(257+(31&i),1+(i>>5&31),r,I,x,A,V,d,t),0!=i)return-3==i&&(r=null,s=9),e=i,n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);w.init(I[0],x[0],d,A[0],d,V[0]),s=6;case 6:if(n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,1!=(e=w.me(n,t,e)))return n.ke(t,e);if(e=0,w.ge(t),y=t.ae,m=t.Qt,c=n.de,b=n.pe,k=n.write,g=k<n.read?n.read-k-1:n.end-k,0===h){s=0;break}s=7;case 7:if(n.write=k,e=n.ke(t,e),k=n.write,g=k<n.read?n.read-k-1:n.end-k,n.read!=n.write)return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);s=8;case 8:return e=1,n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);case 9:return e=-3,n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);default:return e=-2,n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e)}}},n.ge=t=>{n.reset(t,null),n.ye=null,d=null},n.Se=(t,e,r)=>{n.ye.set(t.subarray(e,e+r),0),n.read=n.write=r},n.Ce=()=>1==s?1:0}const Qt=[0,0,255,255];function Xt(){const t=this;function e(t){return t&&t.ze?(t.te=t.ee=0,t.Zt=null,t.ze.mode=7,t.ze._e.reset(t,null),0):-2}t.mode=0,t.method=0,t.Ie=[0],t.xe=0,t.marker=0,t.Ae=0,t.Ve=e=>(t._e&&t._e.ge(e),t._e=null,0),t.Me=(n,r)=>(n.Zt=null,t._e=null,8>r||r>15?(t.Ve(n),-2):(t.Ae=r,n.ze._e=new Jt(n,1<<r),e(n),0)),t.Be=(t,e)=>{let n,r;if(!t||!t.ze||!t.fe)return-2;const i=t.ze;for(e=4==e?-5:0,n=-5;;)switch(i.mode){case 0:if(0===t.Qt)return n;if(n=e,t.Qt--,t.te++,8!=(15&(i.method=t.be(t.ae++)))){i.mode=13,t.Zt="unknown compression method",i.marker=5;break}if(8+(i.method>>4)>i.Ae){i.mode=13,t.Zt="invalid win size",i.marker=5;break}i.mode=1;case 1:if(0===t.Qt)return n;if(n=e,t.Qt--,t.te++,r=255&t.be(t.ae++),((i.method<<8)+r)%31!=0){i.mode=13,t.Zt="incorrect header check",i.marker=5;break}if(0==(32&r)){i.mode=7;break}i.mode=2;case 2:if(0===t.Qt)return n;n=e,t.Qt--,t.te++,i.xe=(255&t.be(t.ae++))<<24&4278190080,i.mode=3;case 3:if(0===t.Qt)return n;n=e,t.Qt--,t.te++,i.xe+=(255&t.be(t.ae++))<<16&16711680,i.mode=4;case 4:if(0===t.Qt)return n;n=e,t.Qt--,t.te++,i.xe+=(255&t.be(t.ae++))<<8&65280,i.mode=5;case 5:return 0===t.Qt?n:(n=e,t.Qt--,t.te++,i.xe+=255&t.be(t.ae++),i.mode=6,2);case 6:return i.mode=13,t.Zt="need dictionary",i.marker=0,-2;case 7:if(n=i._e.me(t,n),-3==n){i.mode=13,i.marker=0;break}if(0==n&&(n=e),1!=n)return n;n=e,i._e.reset(t,i.Ie),i.mode=12;case 12:return t.Qt=0,1;case 13:return-3;default:return-2}},t.De=(t,e,n)=>{let r=0,i=n;if(!t||!t.ze||6!=t.ze.mode)return-2;const s=t.ze;return i<1<<s.Ae||(i=(1<<s.Ae)-1,r=n-i),s._e.Se(e,r,i),s.mode=7,0},t.Ee=t=>{let n,r,i,s,o;if(!t||!t.ze)return-2;const c=t.ze;if(13!=c.mode&&(c.mode=13,c.marker=0),0===(n=t.Qt))return-5;for(r=t.ae,i=c.marker;0!==n&&4>i;)t.be(r)==Qt[i]?i++:i=0!==t.be(r)?0:4-i,r++,n--;return t.te+=r-t.ae,t.ae=r,t.Qt=n,c.marker=i,4!=i?-3:(s=t.te,o=t.ee,e(t),t.te=s,t.ee=o,c.mode=7,0)},t.Te=t=>t&&t.ze&&t.ze._e?t.ze._e.Ce():-2}function Yt(){}function Zt(t){const e=new Yt,s=t&&t.chunkSize?n.floor(2*t.chunkSize):131072,o=new i(s);let c=!1;e.Me(),e.ce=o,this.append=(t,n)=>{const f=[];let l,a,u=0,w=0,h=0;if(0!==t.length){e.ae=0,e.fe=t,e.Qt=t.length;do{if(e.ue=0,e.le=s,0!==e.Qt||c||(e.ae=0,c=!0),l=e.Be(0),c&&-5===l){if(0!==e.Qt)throw new r("inflating: bad input")}else if(0!==l&&1!==l)throw new r("inflating: "+e.Zt);if((c||1===l)&&e.Qt===t.length)throw new r("inflating: bad input");e.ue&&(e.ue===s?f.push(new i(o)):f.push(o.slice(0,e.ue))),h+=e.ue,n&&e.ae>0&&e.ae!=u&&(n(e.ae),u=e.ae)}while(e.Qt>0||0===e.le);return f.length>1?(a=new i(h),f.forEach((t=>{a.set(t,w),w+=t.length}))):a=f[0]||new i,a}},this.flush=()=>{e.Ve()}}Yt.prototype={Me(t){const e=this;return e.ze=new Xt,t||(t=15),e.ze.Me(e,t)},Be(t){const e=this;return e.ze?e.ze.Be(e,t):-2},Ve(){const t=this;if(!t.ze)return-2;const e=t.ze.Ve(t);return t.ze=null,e},Ee(){const t=this;return t.ze?t.ze.Ee(t):-2},De(t,e){const n=this;return n.ze?n.ze.De(n,t,e):-2},be(t){return this.fe[t]},Xt(t,e){return this.fe.subarray(t,t+e)}},self.initCodec=()=>{self.Deflate=Ut,self.Inflate=Zt};\n'],{type:"text/javascript"}));t({workerScripts:{inflate:[e],deflate:[e]}});}
|
|
7439
|
+
function e(e){const t=()=>URL.createObjectURL(new Blob(['const{Array:e,Object:t,Math:n,Error:r,Uint8Array:s,Uint16Array:i,Uint32Array:o,Int32Array:c,Map:f,DataView:a,Promise:l,TextEncoder:u,crypto:w,postMessage:h,TransformStream:d,ReadableStream:p,WritableStream:y,CompressionStream:m,DecompressionStream:b}=globalThis,g=[];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;g[e]=t}class k{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^g[255&(t^e[n])];this.t=t}get(){return~this.t}}class v extends d{constructor(){const e=new k;super({transform(t){e.append(t)},flush(t){const n=new s(4);new a(n.buffer).setUint32(0,e.get()),t.enqueue(n)}})}}const S={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=S.i(n);return 32===r?e.concat(t):S.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)+S.i(n)},u(e,t){if(32*e.length<t)return e;const r=(e=e.slice(0,n.ceil(t/32))).length;return t&=31,r>0&&t&&(e[r-1]=S.h(t,e[r-1]&2147483648>>t-1,1)),e},h:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,i:e=>n.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<e.length;s++)r.push(n|e[s]>>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,i=S.i(s);return r.push(S.h(t+i&31,t+i>32?n:r.pop(),1)),r}},C={p:{m(e){const t=S.l(e)/8,n=new s(t);let r;for(let s=0;t>s;s++)0==(3&s)&&(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},g(e){const t=[];let n,r=0;for(n=0;n<e.length;n++)r=r<<8|e[n],3==(3&n)&&(t.push(r),r=0);return 3&n&&t.push(S.h(8*(3&n),r)),t}}},z={k:function(e){e?(this.v=e.v.slice(0),this.S=e.S.slice(0),this.C=e.C):this.reset()}};z.k.prototype={blockSize:512,reset(){const e=this;return e.v=this._.slice(0),e.S=[],e.C=0,e},update(e){const t=this;"string"==typeof e&&(e=C.I.g(e));const n=t.S=S.concat(t.S,e),s=t.C,i=t.C=s+S.l(e);if(i>9007199254740991)throw new r("Cannot hash more than 2^53 - 1 bits");const c=new o(n);let f=0;for(let e=t.blockSize+s-(t.blockSize+s&t.blockSize-1);i>=e;e+=t.blockSize)t.A(c.subarray(16*f,16*(f+1))),f+=1;return n.splice(0,16*f),t},D(){const e=this;let t=e.S;const r=e.v;t=S.concat(t,[S.h(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(n.floor(e.C/4294967296)),t.push(0|e.C);t.length;)e.A(t.splice(0,16));return e.reset(),r},_:[1732584193,4023233417,2562383102,271733878,3285377520],V:[1518500249,1859775393,2400959708,3395469782],R:(e,t,n,r)=>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,B:(e,t)=>t<<e|t>>>32-e,A(t){const r=this,s=r.v,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]=r.B(1,i[e-3]^i[e-8]^i[e-14]^i[e-16]));const t=r.B(5,o)+r.R(e,c,f,a)+l+i[e]+r.V[n.floor(e/20)]|0;l=a,a=f,f=r.B(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}};const _={getRandomValues(e){const t=new o(e.buffer),r=e=>{let t=987654321;const r=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&r,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&r)&r)/4294967296+.5)*(n.random()>.5?1:-1))};for(let s,i=0;i<e.length;i+=4){const e=r(4294967296*(s||n.random()));s=987654071*e(),t[i/4]=4294967296*e()|0}return e}},I={importKey:e=>new I.M(C.p.g(e)),K(e,t,n,s){if(n=n||1e4,0>s||0>n)throw new r("invalid params to pbkdf2");const i=1+(s>>5)<<2;let o,c,f,l,u;const w=new ArrayBuffer(i),h=new a(w);let d=0;const p=S;for(t=C.p.g(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),l=0;l<c.length;l++)o[l]^=c[l];for(f=0;(i||1)>d&&f<o.length;f++)h.setInt32(d,o[f]),d+=4}return w.slice(0,s/8)},M:class{constructor(e){const t=this,n=t.N=z.k,r=[[],[]],s=n.prototype.blockSize/32;t.P=[new n,new n],e.length>s&&(e=n.hash(e));for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t.P[0].update(r[0]),t.P[1].update(r[1]),t.T=new n(t.P[0])}reset(){const e=this;e.T=new e.N(e.P[0]),e.U=!1}update(e){this.U=!0,this.T.update(e)}digest(){const e=this,t=e.T.D(),n=new e.N(e.P[1]).update(t).D();return e.reset(),n}encrypt(e){if(this.U)throw new r("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},x=void 0!==w&&"function"==typeof w.getRandomValues;function A(e){return x?w.getRandomValues(e):_.getRandomValues(e)}const D={name:"PBKDF2"},V=t.assign({hash:{name:"HMAC"}},D),R=t.assign({iterations:1e3,hash:{name:"SHA-1"}},D),B=["deriveBits"],E=[8,12,16],M=[16,24,32],K=[0,0,0,0],N=void 0!==w,P=N&&w.subtle,T=N&&void 0!==P,U=N&&T&&"function"==typeof P.importKey,W=N&&T&&"function"==typeof P.deriveBits,H=C.p,L=class{constructor(e){const t=this;t.W=[[[],[],[],[],[]],[[],[],[],[],[]]],t.W[0][0][0]||t.H();const n=t.W[0][4],s=t.W[1],i=e.length;let o,c,f,a=1;if(4!==i&&6!==i&&8!==i)throw new r("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:s[0][n[t>>>24]]^s[1][n[t>>16&255]]^s[2][n[t>>8&255]]^s[3][n[255&t]]}}encrypt(e){return this.L(e,0)}decrypt(e){return this.L(e,1)}H(){const e=this.W[0],t=this.W[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)}L(e,t){if(4!==e.length)throw new r("invalid aes block size");const n=this.V[t],s=n.length/4-2,i=[0,0,0,0],o=this.W[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;s>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}},j=class{constructor(e,t){this.j=e,this.F=t,this.O=t}reset(){this.O=this.F}update(e){return this.q(this.j,e,this.O)}G(e){if(255==(e>>24&255)){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}else e+=1<<24;return e}J(e){0===(e[0]=this.G(e[0]))&&(e[1]=this.G(e[1]))}q(e,t,n){let r;if(!(r=t.length))return[];const s=S.l(t);for(let s=0;r>s;s+=4){this.J(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 S.u(t,s)}},F=I.M;class O extends d{constructor(e,n,i){super({start(){t.assign(this,{ready:new l((e=>this.X=e)),password:e,signed:n,Y:i-1,pending:new s})},async transform(e,t){const n=this,{password:i,Y:o,X:c,ready:f}=n;i?(await(async(e,t,n,s)=>{const i=await J(e,t,n,X(s,0,E[t])),o=X(s,E[t]);if(i[0]!=o[0]||i[1]!=o[1])throw new r("Invalid password")})(n,o,i,X(e,0,E[o]+2)),e=X(e,E[o]+2),c()):await f;const a=new s(e.length-10-(e.length-10)%16);t.enqueue(G(n,e,a,0,10,!0))},async flush(e){const{signed:t,Z:n,$:i,pending:o,ready:c}=this;await c;const f=X(o,0,o.length-10),a=X(o,o.length-10);let l=new s;if(f.length){const e=Z(H,f);i.update(e);const t=n.update(e);l=Y(H,t)}if(t){const e=X(Y(H,i.digest()),0,10);for(let t=0;10>t;t++)if(e[t]!=a[t])throw new r("Invalid signature")}e.enqueue(l)}})}}class q extends d{constructor(e,n){let r;super({start(){t.assign(this,{ready:new l((e=>this.X=e)),password:e,Y:n-1,pending:new s})},async transform(e,t){const n=this,{password:r,Y:i,X:o,ready:c}=n;let f=new s;r?(f=await(async(e,t,n)=>{const r=A(new s(E[t]));return Q(r,await J(e,t,n,r))})(n,i,r),o()):await c;const a=new s(f.length+e.length-e.length%16);a.set(f,0),t.enqueue(G(n,e,a,f.length,0))},async flush(e){const{Z:t,$:n,pending:i,ready:o}=this;await o;let c=new s;if(i.length){const e=t.update(Z(H,i));n.update(e),c=Y(H,e)}r.signature=Y(H,n.digest()).slice(0,10),e.enqueue(Q(c,r.signature))}}),r=this}}function G(e,t,n,r,i,o){const{Z:c,$:f,pending:a}=e,l=t.length-i;let u;for(a.length&&(t=Q(a,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new s(t)).set(n,0)}return e})(n,l-l%16)),u=0;l-16>=u;u+=16){const e=Z(H,X(t,u,u+16));o&&f.update(e);const s=c.update(e);o||f.update(s),n.set(Y(H,s),u+r)}return e.pending=X(t,u),n}async function J(n,r,i,o){n.password=null;const c=(e=>{if(void 0===u){const t=new s((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new u).encode(e)})(i),f=await((e,t,n,r,s)=>U?P.importKey("raw",t,n,!1,s):I.importKey(t))(0,c,V,0,B),a=await(async(e,t,n)=>W?await P.deriveBits(e,t,n):I.K(t,e.salt,R.iterations,n))(t.assign({salt:o},R),f,8*(2*M[r]+2)),l=new s(a),w=Z(H,X(l,0,M[r])),h=Z(H,X(l,M[r],2*M[r])),d=X(l,2*M[r]);return t.assign(n,{keys:{key:w,ee:h,passwordVerification:d},Z:new j(new L(w),e.from(K)),$:new F(h)}),d}function Q(e,t){let n=e;return e.length+t.length&&(n=new s(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function X(e,t,n){return e.subarray(t,n)}function Y(e,t){return e.m(t)}function Z(e,t){return e.g(t)}class $ extends d{constructor(e,n){super({start(){t.assign(this,{password:e,passwordVerification:n}),re(this,e)},transform(e,t){const n=this;if(n.password){const t=te(n,e.subarray(0,12));if(n.password=null,t[11]!=n.passwordVerification)throw new r("Invalid password");e=e.subarray(12)}t.enqueue(te(n,e))}})}}class ee extends d{constructor(e,n){super({start(){t.assign(this,{password:e,passwordVerification:n}),re(this,e)},transform(e,t){const n=this;let r,i;if(n.password){n.password=null;const t=A(new s(12));t[11]=n.passwordVerification,r=new s(e.length+t.length),r.set(ne(n,t),0),i=12}else r=new s(e.length),i=0;r.set(ne(n,e),i),t.enqueue(r)}})}}function te(e,t){const n=new s(t.length);for(let r=0;r<t.length;r++)n[r]=ie(e)^t[r],se(e,n[r]);return n}function ne(e,t){const n=new s(t.length);for(let r=0;r<t.length;r++)n[r]=ie(e)^t[r],se(e,t[r]);return n}function re(e,n){const r=[305419896,591751049,878082192];t.assign(e,{keys:r,te:new k(r[0]),ne:new k(r[2])});for(let t=0;t<n.length;t++)se(e,n.charCodeAt(t))}function se(e,t){let[r,s,i]=e.keys;e.te.append([t]),r=~e.te.get(),s=ce(n.imul(ce(s+oe(r)),134775813)+1),e.ne.append([s>>>24]),i=~e.ne.get(),e.keys=[r,s,i]}function ie(e){const t=2|e.keys[2];return oe(n.imul(t,1^t)>>>8)}function oe(e){return 255&e}function ce(e){return 4294967295&e}class fe extends d{constructor(e,{chunkSize:t,CompressionStream:n,re:r}){super({});const{compressed:s,encrypted:i,useCompressionStream:o,password:c,passwordVerification:f,encryptionStrength:l,zipCrypto:u,signed:w,level:h}=e,d=this;let p,y,m=le(super.readable);i&&!u||!w||([m,p]=m.tee(),p=he(p,new v)),s&&(m=we(m,o,{level:h,chunkSize:t},r,n)),i&&(u?m=he(m,new ee(c,f)):(y=new q(c,l),m=he(m,y))),ue(d,m,(async()=>{let e;i&&!u&&(e=y.signature),i&&!u||!w||(e=await p.getReader().read(),e=new a(e.value.buffer).getUint32(0)),d.signature=e}))}}class ae extends d{constructor(e,{chunkSize:t,DecompressionStream:n,se:s}){super({});const{zipCrypto:i,encrypted:o,password:c,passwordVerification:f,signed:l,signature:u,encryptionStrength:w,compressed:h,useCompressionStream:d}=e;let p,y,m=le(super.readable);o&&(i?m=he(m,new $(c,f)):(y=new O(c,l,w),m=he(m,y))),h&&(m=we(m,d,{chunkSize:t},s,n)),o&&!i||!l||([m,p]=m.tee(),p=he(p,new v)),ue(this,m,(async()=>{if((!o||i)&&l){const e=await p.getReader().read(),t=new a(e.value.buffer);if(u!=t.getUint32(0,!1))throw new r("Invalid signature")}}))}}function le(e){return he(e,new d({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function ue(e,n,r){n=he(n,new d({flush:r})),t.defineProperty(e,"readable",{get:()=>n})}function we(e,t,n,r,s){try{e=he(e,new(t&&r?r:s)("deflate-raw",n))}catch(r){if(!t)throw r;e=he(e,new s("deflate-raw",n))}return e}function he(e,t){return e.pipeThrough(t)}class de extends d{constructor(e,t){const n=new e(t);super({transform(e,t){t.enqueue(n.append(e))},flush(e){const t=n.flush();t&&e.enqueue(t)}})}}class pe{constructor(e,n,r,s){const{codecType:i}=r;let o;i.startsWith("deflate")?o=fe:i.startsWith("inflate")&&(o=ae),t.assign(this,{ie:o,readable:e,writable:n,options:r,config:s})}async oe(){const{ie:e,readable:t,writable:n,options:r,config:s}=this,i=new e(r,s);let o=0;await t.pipeThrough(i).pipeThrough(new d({transform(e,t){e&&e.length&&(o+=e.length,t.enqueue(e))}})).pipeTo(n,{preventClose:!0,ce:!0});const{signature:c}=i;return{size:o,signature:c}}}function ye(e){return class extends de{constructor(t,n){super(e,n)}}}const me=new f,be=new f;let ge,ke=0;async function ve(e){try{const{options:t,scripts:n,config:r}=e;n&&n.length&&importScripts.apply(void 0,n),self.initCodec&&self.initCodec(),r.re=self.CompressionStream,r.se=self.DecompressionStream,self.Deflate&&(r.CompressionStream=ye(self.Deflate)),self.Inflate&&(r.DecompressionStream=ye(self.Inflate));const s={highWaterMark:1,size:()=>r.chunkSize},i=e.readable||new p({async pull(e){let t=new l((e=>me.set(ke,e)));Se({type:"pull",messageId:ke}),ke=(ke+1)%Number.MAX_SAFE_INTEGER;const{value:n,done:r}=await t;e.enqueue(n),r&&e.close()}},s),o=e.writable||new y({async write(e){let t;const n=new l((e=>t=e));be.set(ke,t),Se({type:"data",data:e,messageId:ke}),ke=(ke+1)%Number.MAX_SAFE_INTEGER,await n}},s);ge=new pe(i,o,t,r);const c=await ge.oe();e.writable&&!t.preventClose&&await e.writable.close(),Se({type:"close",result:c})}catch(e){Ce(e)}}function Se(e){if(e.data){let{data:t}=e;if(t&&t.length)try{t=new s(t),e.data=t.buffer,h(e,[e.data])}catch(t){h(e)}else h(e)}else h(e)}function Ce(e){const{message:t,stack:n,code:r,name:s}=e;h({error:{message:t,stack:n,code:r,name:s}})}function ze(t){return _e(t.map((([t,n])=>new e(t).fill(n,0,t))))}function _e(t){return t.reduce(((t,n)=>t.concat(e.isArray(n)?_e(n):n)),[])}addEventListener("message",(async e=>{const t=e.data,{type:n,messageId:r,data:i,done:o}=t;try{if("start"==n&&ve(t),"data"==n){const e=me.get(r);me.delete(r),e({value:new s(i),done:o})}if("ack"==n){const e=be.get(r);be.delete(r),e()}}catch(e){Ce(e)}}));const Ie=[0,1,2,3].concat(...ze([[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 xe(){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.fe=r=>{const s=e.ae,i=e.ue.le,o=e.ue.we;let c,f,a,l=-1;for(r.he=0,r.de=573,c=0;o>c;c++)0!==s[2*c]?(r.pe[++r.he]=l=c,r.ye[c]=0):s[2*c+1]=0;for(;2>r.he;)a=r.pe[++r.he]=2>l?++l:0,s[2*a]=1,r.ye[a]=0,r.me--,i&&(r.be-=i[2*a+1]);for(e.ge=l,c=n.floor(r.he/2);c>=1;c--)r.ke(s,c);a=o;do{c=r.pe[1],r.pe[1]=r.pe[r.he--],r.ke(s,1),f=r.pe[1],r.pe[--r.de]=c,r.pe[--r.de]=f,s[2*a]=s[2*c]+s[2*f],r.ye[a]=n.max(r.ye[c],r.ye[f])+1,s[2*c+1]=s[2*f+1]=a,r.pe[1]=a++,r.ke(s,1)}while(r.he>=2);r.pe[--r.de]=r.pe[1],(t=>{const n=e.ae,r=e.ue.le,s=e.ue.ve,i=e.ue.Se,o=e.ue.Ce;let c,f,a,l,u,w,h=0;for(l=0;15>=l;l++)t.ze[l]=0;for(n[2*t.pe[t.de]+1]=0,c=t.de+1;573>c;c++)f=t.pe[c],l=n[2*n[2*f+1]+1]+1,l>o&&(l=o,h++),n[2*f+1]=l,f>e.ge||(t.ze[l]++,u=0,i>f||(u=s[f-i]),w=n[2*f],t.me+=w*(l+u),r&&(t.be+=w*(r[2*f+1]+u)));if(0!==h){do{for(l=o-1;0===t.ze[l];)l--;t.ze[l]--,t.ze[l+1]+=2,t.ze[o]--,h-=2}while(h>0);for(l=o;0!==l;l--)for(f=t.ze[l];0!==f;)a=t.pe[--c],a>e.ge||(n[2*a+1]!=l&&(t.me+=(l-n[2*a+1])*n[2*a],n[2*a+1]=l),f--)}})(r),((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.ge,r.ze)}}function Ae(e,t,n,r,s){const i=this;i.le=e,i.ve=t,i.Se=n,i.we=r,i.Ce=s}xe._e=[0,1,2,3,4,5,6,7].concat(...ze([[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]])),xe.Ie=[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],xe.xe=[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],xe.Ae=e=>256>e?Ie[e]:Ie[256+(e>>>7)],xe.De=[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],xe.Ve=[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],xe.Re=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],xe.Be=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const De=ze([[144,8],[112,9],[24,7],[8,8]]);Ae.Ee=_e([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,De[t]])));const Ve=ze([[30,5]]);function Re(e,t,n,r,s){const i=this;i.Me=e,i.Ke=t,i.Ne=n,i.Pe=r,i.Te=s}Ae.Ue=_e([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,Ve[t]]))),Ae.We=new Ae(Ae.Ee,xe.De,257,286,15),Ae.He=new Ae(Ae.Ue,xe.Ve,0,30,15),Ae.Le=new Ae(null,xe.Re,0,19,7);const Be=[new Re(0,0,0,0,0),new Re(4,4,8,4,1),new Re(4,5,16,8,1),new Re(4,6,32,32,1),new Re(4,4,16,16,2),new Re(8,16,32,32,2),new Re(8,16,128,128,2),new Re(8,32,128,256,2),new Re(32,128,258,1024,2),new Re(32,258,258,4096,2)],Ee=["need dictionary","stream end","","","stream error","data error","","buffer error","",""];function Me(e,t,n,r){const s=e[2*t],i=e[2*n];return i>s||s==i&&r[t]<=r[n]}function Ke(){const e=this;let t,r,o,c,f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,C,z,_,I,x,A,D,V,R,B,E,M,K,N;const P=new xe,T=new xe,U=new xe;let W,H,L,j,F,O;function q(){let t;for(t=0;286>t;t++)M[2*t]=0;for(t=0;30>t;t++)K[2*t]=0;for(t=0;19>t;t++)N[2*t]=0;M[512]=1,e.me=e.be=0,H=L=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],++i<o&&n==s||(c>i?N[2*n]+=i:0!==n?(n!=r&&N[2*n]++,N[32]++):i>10?N[36]++:N[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.je[e.pending++]=t}function Q(e){J(255&e),J(e>>>8&255)}function X(e,t){let n;const r=t;O>16-r?(n=e,F|=n<<O&65535,Q(F),F=n>>>16-O,O+=r-16):(F|=e<<O&65535,O+=r)}function Y(e,t){const n=2*e;X(65535&t[n],65535&t[n+1])}function Z(e,t){let n,r,s=-1,i=e[1],o=0,c=7,f=4;for(0===i&&(c=138,f=3),n=0;t>=n;n++)if(r=i,i=e[2*(n+1)+1],++o>=c||r!=i){if(f>o)do{Y(r,N)}while(0!=--o);else 0!==r?(r!=s&&(Y(r,N),o--),Y(16,N),X(o-3,2)):o>10?(Y(18,N),X(o-11,7)):(Y(17,N),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==O?(Q(F),F=0,O=0):8>O||(J(255&F),F>>>=8,O-=8)}function ee(t,r){let s,i,o;if(e.Fe[H]=t,e.Oe[H]=255&r,H++,0===t?M[2*r]++:(L++,t--,M[2*(xe._e[r]+256+1)]++,K[2*xe.Ae(t)]++),0==(8191&H)&&V>2){for(s=8*H,i=z-k,o=0;30>o;o++)s+=K[2*o]*(5+xe.Ve[o]);if(s>>>=3,L<n.floor(H/2)&&s<n.floor(i/2))return!0}return H==W-1}function te(t,n){let r,s,i,o,c=0;if(0!==H)do{r=e.Fe[c],s=e.Oe[c],c++,0===r?Y(s,t):(i=xe._e[s],Y(i+256+1,t),o=xe.De[i],0!==o&&(s-=xe.Ie[i],X(s,o)),r--,i=xe.Ae(r),Y(i,n),o=xe.Ve[i],0!==o&&(r-=xe.xe[i],X(r,o)))}while(H>c);Y(256,t),j=t[513]}function ne(){O>8?Q(F):O>0&&J(255&F),F=0,O=0}function re(t,n,r){X(0+(r?1:0),3),((t,n)=>{ne(),j=8,Q(n),Q(~n),e.je.set(u.subarray(t,t+n),e.pending),e.pending+=n})(t,n)}function se(n){((t,n,r)=>{let s,i,o=0;V>0?(P.fe(e),T.fe(e),o=(()=>{let t;for(G(M,P.ge),G(K,T.ge),U.fe(e),t=18;t>=3&&0===N[2*xe.Be[t]+1];t--);return e.me+=14+3*(t+1),t})(),s=e.me+3+7>>>3,i=e.be+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(Ae.Ee,Ae.Ue)):(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(N[2*xe.Be[r]+1],3);Z(M,e-1),Z(K,t-1)})(P.ge+1,T.ge+1,o+1),te(M,K)):re(t,n,r),q(),r&&ne()})(0>k?-1:k,z-k,n),k=z,t.qe()}function ie(){let e,n,r,s;do{if(s=w-I-z,0===s&&0===z&&0===I)s=f;else if(-1==s)s--;else if(z>=f+f-262){u.set(u.subarray(f,f+f),0),_-=f,z-=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.Ge)return;e=t.Je(u,z+I,s),I+=e,3>I||(p=255&u[z],p=(p<<g^255&u[z+1])&b)}while(262>I&&0!==t.Ge)}function oe(e){let t,n,r=A,s=z,i=x;const o=z>f-262?z-(f-262):0;let c=E;const a=l,w=z+258;let d=u[s+i-1],p=u[s+i];B>x||(r>>=2),c>I&&(c=I);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(_=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>I?I:i}e.ye=[],e.ze=[],e.pe=[],M=[],K=[],N=[],e.ke=(t,n)=>{const r=e.pe,s=r[n];let i=n<<1;for(;i<=e.he&&(i<e.he&&Me(t,r[i+1],r[i],e.ye)&&i++,!Me(t,s,r[i],e.ye));)r[n]=r[i],n=i,i<<=1;r[n]=s},e.Qe=(t,S,_,H,L,G)=>(H||(H=8),L||(L=8),G||(G=0),t.Xe=null,-1==S&&(S=6),1>L||L>9||8!=H||9>_||_>15||0>S||S>9||0>G||G>2?-2:(t.Ye=e,a=_,f=1<<a,l=f-1,m=L+7,y=1<<m,b=y-1,g=n.floor((m+3-1)/3),u=new s(2*f),h=[],d=[],W=1<<L+6,e.je=new s(4*W),o=4*W,e.Fe=new i(W),e.Oe=new s(W),V=S,R=G,(t=>(t.Ze=t.$e=0,t.Xe=null,e.pending=0,e.et=0,r=113,c=0,P.ae=M,P.ue=Ae.We,T.ae=K,T.ue=Ae.He,U.ae=N,U.ue=Ae.Le,F=0,O=0,j=8,q(),(()=>{w=2*f,d[y-1]=0;for(let e=0;y-1>e;e++)d[e]=0;D=Be[V].Ke,B=Be[V].Me,E=Be[V].Ne,A=Be[V].Pe,z=0,k=0,I=0,v=x=2,C=0,p=0})(),0))(t))),e.tt=()=>42!=r&&113!=r&&666!=r?-2:(e.Oe=null,e.Fe=null,e.je=null,d=null,h=null,u=null,e.Ye=null,113==r?-3:0),e.nt=(e,t,n)=>{let r=0;return-1==t&&(t=6),0>t||t>9||0>n||n>2?-2:(Be[V].Te!=Be[t].Te&&0!==e.Ze&&(r=e.rt(1)),V!=t&&(V=t,D=Be[V].Ke,B=Be[V].Me,E=Be[V].Ne,A=Be[V].Pe),R=n,r)},e.st=(e,t,n)=>{let s,i=n,o=0;if(!t||42!=r)return-2;if(3>i)return 0;for(i>f-262&&(i=f-262,o=n-i),u.set(t.subarray(o,o+i),0),z=i,k=i,p=255&u[0],p=(p<<g^255&u[1])&b,s=0;i-3>=s;s++)p=(p<<g^255&u[s+2])&b,h[s&l]=d[p],d[p]=s;return 0},e.rt=(n,s)=>{let i,w,m,A,B;if(s>4||0>s)return-2;if(!n.it||!n.ot&&0!==n.Ge||666==r&&4!=s)return n.Xe=Ee[4],-2;if(0===n.ct)return n.Xe=Ee[7],-5;var E;if(t=n,A=c,c=s,42==r&&(w=8+(a-8<<4)<<8,m=(V-1&255)>>1,m>3&&(m=3),w|=m<<6,0!==z&&(w|=32),w+=31-w%31,r=113,J((E=w)>>8&255),J(255&E)),0!==e.pending){if(t.qe(),0===t.ct)return c=-1,0}else if(0===t.Ge&&A>=s&&4!=s)return t.Xe=Ee[7],-5;if(666==r&&0!==t.Ge)return n.Xe=Ee[7],-5;if(0!==t.Ge||0!==I||0!=s&&666!=r){switch(B=-1,Be[V].Te){case 0:B=(e=>{let n,r=65535;for(r>o-5&&(r=o-5);;){if(1>=I){if(ie(),0===I&&0==e)return 0;if(0===I)break}if(z+=I,I=0,n=k+r,(0===z||z>=n)&&(I=z-n,z=n,se(!1),0===t.ct))return 0;if(z-k>=f-262&&(se(!1),0===t.ct))return 0}return se(4==e),0===t.ct?4==e?2:0:4==e?3:1})(s);break;case 1:B=(e=>{let n,r=0;for(;;){if(262>I){if(ie(),262>I&&0==e)return 0;if(0===I)break}if(3>I||(p=(p<<g^255&u[z+2])&b,r=65535&d[p],h[z&l]=d[p],d[p]=z),0===r||(z-r&65535)>f-262||2!=R&&(v=oe(r)),3>v)n=ee(0,255&u[z]),I--,z++;else if(n=ee(z-_,v-3),I-=v,v>D||3>I)z+=v,v=0,p=255&u[z],p=(p<<g^255&u[z+1])&b;else{v--;do{z++,p=(p<<g^255&u[z+2])&b,r=65535&d[p],h[z&l]=d[p],d[p]=z}while(0!=--v);z++}if(n&&(se(!1),0===t.ct))return 0}return se(4==e),0===t.ct?4==e?2:0:4==e?3:1})(s);break;case 2:B=(e=>{let n,r,s=0;for(;;){if(262>I){if(ie(),262>I&&0==e)return 0;if(0===I)break}if(3>I||(p=(p<<g^255&u[z+2])&b,s=65535&d[p],h[z&l]=d[p],d[p]=z),x=v,S=_,v=2,0!==s&&D>x&&f-262>=(z-s&65535)&&(2!=R&&(v=oe(s)),5>=v&&(1==R||3==v&&z-_>4096)&&(v=2)),3>x||v>x)if(0!==C){if(n=ee(0,255&u[z-1]),n&&se(!1),z++,I--,0===t.ct)return 0}else C=1,z++,I--;else{r=z+I-3,n=ee(z-1-S,x-3),I-=x-1,x-=2;do{++z>r||(p=(p<<g^255&u[z+2])&b,s=65535&d[p],h[z&l]=d[p],d[p]=z)}while(0!=--x);if(C=0,v=2,z++,n&&(se(!1),0===t.ct))return 0}}return 0!==C&&(n=ee(0,255&u[z-1]),C=0),se(4==e),0===t.ct?4==e?2:0:4==e?3:1})(s)}if(2!=B&&3!=B||(r=666),0==B||2==B)return 0===t.ct&&(c=-1),0;if(1==B){if(1==s)X(2,3),Y(256,Ae.Ee),$(),9>1+j+10-O&&(X(2,3),Y(256,Ae.Ee),$()),j=7;else if(re(0,0,!1),3==s)for(i=0;y>i;i++)d[i]=0;if(t.qe(),0===t.ct)return c=-1,0}}return 4!=s?0:1}}function Ne(){const e=this;e.ft=0,e.lt=0,e.Ge=0,e.Ze=0,e.ct=0,e.$e=0}function Pe(e){const t=new Ne,i=(o=e&&e.chunkSize?e.chunkSize:65536)+5*(n.floor(o/16383)+1);var o;const c=new s(i);let f=e?e.level:-1;void 0===f&&(f=-1),t.Qe(f),t.it=c,this.append=(e,n)=>{let o,f,a=0,l=0,u=0;const w=[];if(e.length){t.ft=0,t.ot=e,t.Ge=e.length;do{if(t.lt=0,t.ct=i,o=t.rt(0),0!=o)throw new r("deflating: "+t.Xe);t.lt&&(t.lt==i?w.push(new s(c)):w.push(c.slice(0,t.lt))),u+=t.lt,n&&t.ft>0&&t.ft!=a&&(n(t.ft),a=t.ft)}while(t.Ge>0||0===t.ct);return w.length>1?(f=new s(u),w.forEach((e=>{f.set(e,l),l+=e.length}))):f=w[0]||new s,f}},this.flush=()=>{let e,n,o=0,f=0;const a=[];do{if(t.lt=0,t.ct=i,e=t.rt(4),1!=e&&0!=e)throw new r("deflating: "+t.Xe);i-t.ct>0&&a.push(c.slice(0,t.lt)),f+=t.lt}while(t.Ge>0||0===t.ct);return t.tt(),n=new s(f),a.forEach((e=>{n.set(e,o),o+=e.length})),n}}Ne.prototype={Qe(e,t){const n=this;return n.Ye=new Ke,t||(t=15),n.Ye.Qe(n,e,t)},rt(e){const t=this;return t.Ye?t.Ye.rt(t,e):-2},tt(){const e=this;if(!e.Ye)return-2;const t=e.Ye.tt();return e.Ye=null,t},nt(e,t){const n=this;return n.Ye?n.Ye.nt(n,e,t):-2},st(e,t){const n=this;return n.Ye?n.Ye.st(n,e,t):-2},Je(e,t,n){const r=this;let s=r.Ge;return s>n&&(s=n),0===s?0:(r.Ge-=s,e.set(r.ot.subarray(r.ft,r.ft+s),t),r.ft+=s,r.Ze+=s,s)},qe(){const e=this;let t=e.Ye.pending;t>e.ct&&(t=e.ct),0!==t&&(e.it.set(e.Ye.je.subarray(e.Ye.et,e.Ye.et+t),e.lt),e.lt+=t,e.Ye.et+=t,e.$e+=t,e.ct-=t,e.Ye.pending-=t,0===e.Ye.pending&&(e.Ye.et=0))}};const Te=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],Ue=[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],We=[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],He=[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],Le=[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],je=[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],Fe=[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 Oe(){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,C,z,_,I,x,A,D;z=0,g=o;do{n[e[t+z]]++,z++,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,A=1<<k;g>k;k++,A<<=1)if(0>(A-=n[k]))return-3;if(0>(A-=n[g]))return-3;for(n[g]+=A,i[1]=k=0,z=1,x=2;0!=--g;)i[x]=k+=n[z],x++,z++;g=0,z=0;do{0!==(k=e[t+z])&&(d[i[k]++]=g),z++}while(++g<o);for(o=i[m],i[0]=g=0,z=0,b=-1,I=-S,s[0]=0,_=0,D=0;m>=v;v++)for(p=n[v];0!=p--;){for(;v>I+S;){if(b++,I+=S,D=m-I,D=D>S?S:D,(y=1<<(k=v-I))>p+1&&(y-=p+1,x=v,D>k))for(;++k<D&&(y<<=1)>n[++x];)y-=n[x];if(D=1<<k,h[0]+D>1440)return-3;s[b]=_=h[0],h[0]+=D,0!==b?(i[b]=g,r[0]=k,r[1]=S,k=g>>>I-S,r[2]=_-s[b-1]-k,w.set(r,3*(s[b-1]+k))):l[0]=_}for(r[1]=v-I,o>z?d[z]<c?(r[0]=256>d[z]?0:96,r[2]=d[z++]):(r[0]=a[d[z]-c]+16+64,r[2]=f[d[z++]-c]):r[0]=192,y=1<<v-I,k=g>>>I;D>k;k+=y)w.set(r,3*(_+k));for(k=1<<v-1;0!=(g&k);k>>>=1)g^=k;for(g^=k,C=(1<<I)-1;(g&C)!=i[b];)b--,I-=S,C=(1<<I)-1}return 0!==A&&1!=m?-5:0}function f(o){let f;for(e||(e=[],t=[],n=new c(16),r=[],s=new c(15),i=new c(16)),t.length<o&&(t=[]),f=0;o>f;f++)t[f]=0;for(f=0;16>f;f++)n[f]=0;for(f=0;3>f;f++)r[f]=0;s.set(n.subarray(0,15),0),i.set(n.subarray(0,16),0)}this.ut=(n,r,s,i,c)=>{let a;return f(19),e[0]=0,a=o(n,0,19,19,null,null,s,r,i,e,t),-3==a?c.Xe="oversubscribed dynamic bit lengths tree":-5!=a&&0!==r[0]||(c.Xe="incomplete dynamic bit lengths tree",a=-3),a},this.wt=(n,r,s,i,c,a,l,u,w)=>{let h;return f(288),e[0]=0,h=o(s,0,n,257,He,Le,a,i,u,e,t),0!=h||0===i[0]?(-3==h?w.Xe="oversubscribed literal/length tree":-4!=h&&(w.Xe="incomplete literal/length tree",h=-3),h):(f(288),h=o(s,n,r,0,je,Fe,l,c,u,e,t),0!=h||0===c[0]&&n>257?(-3==h?w.Xe="oversubscribed distance tree":-5==h?(w.Xe="incomplete distance tree",h=-3):-4!=h&&(w.Xe="empty distance tree with lengths",h=-3),h):0)}}function qe(){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,C;d=c.ft,p=c.Ge,w=o.ht,h=o.dt,y=o.write,m=y<o.read?o.read-y-1:o.end-y,b=Te[e],g=Te[t];do{for(;20>h;)p--,w|=(255&c.yt(d++))<<h,h+=8;if(f=w&b,a=n,l=r,C=3*(l+f),0!==(u=a[C]))for(;;){if(w>>=a[C+1],h-=a[C+1],0!=(16&u)){for(u&=15,k=a[C+2]+(w&Te[u]),w>>=u,h-=u;15>h;)p--,w|=(255&c.yt(d++))<<h,h+=8;for(f=w&g,a=s,l=i,C=3*(l+f),u=a[C];;){if(w>>=a[C+1],h-=a[C+1],0!=(16&u)){for(u&=15;u>h;)p--,w|=(255&c.yt(d++))<<h,h+=8;if(v=a[C+2]+(w&Te[u]),w>>=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.bt[y++]=o.bt[S++]}while(0!=--u);else o.bt.set(o.bt.subarray(S,S+u),y),y+=u,S+=u,u=0;S=0}}else S=y-v,y-S>0&&2>y-S?(o.bt[y++]=o.bt[S++],o.bt[y++]=o.bt[S++],k-=2):(o.bt.set(o.bt.subarray(S,S+2),y),y+=2,S+=2,k-=2);if(y-S>0&&k>y-S)do{o.bt[y++]=o.bt[S++]}while(0!=--k);else o.bt.set(o.bt.subarray(S,S+k),y),y+=k,S+=k,k=0;break}if(0!=(64&u))return c.Xe="invalid distance code",k=c.Ge-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ht=w,o.dt=h,c.Ge=p,c.Ze+=d-c.ft,c.ft=d,o.write=y,-3;f+=a[C+2],f+=w&Te[u],C=3*(l+f),u=a[C]}break}if(0!=(64&u))return 0!=(32&u)?(k=c.Ge-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ht=w,o.dt=h,c.Ge=p,c.Ze+=d-c.ft,c.ft=d,o.write=y,1):(c.Xe="invalid literal/length code",k=c.Ge-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ht=w,o.dt=h,c.Ge=p,c.Ze+=d-c.ft,c.ft=d,o.write=y,-3);if(f+=a[C+2],f+=w&Te[u],C=3*(l+f),0===(u=a[C])){w>>=a[C+1],h-=a[C+1],o.bt[y++]=a[C+2],m--;break}}else w>>=a[C+1],h-=a[C+1],o.bt[y++]=a[C+2],m--}while(m>=258&&p>=10);return k=c.Ge-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ht=w,o.dt=h,c.Ge=p,c.Ze+=d-c.ft,c.ft=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.gt=(e,y,m)=>{let b,g,k,v,S,C,z,_=0,I=0,x=0;for(x=y.ft,v=y.Ge,_=e.ht,I=e.dt,S=e.write,C=S<e.read?e.read-S-1:e.end-S;;)switch(t){case 0:if(C>=258&&v>=10&&(e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,m=p(u,w,r,h,s,d,e,y),x=y.ft,v=y.Ge,_=e.ht,I=e.dt,S=e.write,C=S<e.read?e.read-S-1:e.end-S,0!=m)){t=1==m?7:9;break}c=u,n=r,o=h,t=1;case 1:for(b=c;b>I;){if(0===v)return e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);m=0,v--,_|=(255&y.yt(x++))<<I,I+=8}if(g=3*(o+(_&Te[b])),_>>>=n[g+1],I-=n[g+1],k=n[g],0===k){f=n[g+2],t=6;break}if(0!=(16&k)){a=15&k,i=n[g+2],t=2;break}if(0==(64&k)){c=k,o=g/3+n[g+2];break}if(0!=(32&k)){t=7;break}return t=9,y.Xe="invalid literal/length code",m=-3,e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);case 2:for(b=a;b>I;){if(0===v)return e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);m=0,v--,_|=(255&y.yt(x++))<<I,I+=8}i+=_&Te[b],_>>=b,I-=b,c=w,n=s,o=d,t=3;case 3:for(b=c;b>I;){if(0===v)return e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);m=0,v--,_|=(255&y.yt(x++))<<I,I+=8}if(g=3*(o+(_&Te[b])),_>>=n[g+1],I-=n[g+1],k=n[g],0!=(16&k)){a=15&k,l=n[g+2],t=4;break}if(0==(64&k)){c=k,o=g/3+n[g+2];break}return t=9,y.Xe="invalid distance code",m=-3,e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);case 4:for(b=a;b>I;){if(0===v)return e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);m=0,v--,_|=(255&y.yt(x++))<<I,I+=8}l+=_&Te[b],_>>=b,I-=b,t=5;case 5:for(z=S-l;0>z;)z+=e.end;for(;0!==i;){if(0===C&&(S==e.end&&0!==e.read&&(S=0,C=S<e.read?e.read-S-1:e.end-S),0===C&&(e.write=S,m=e.kt(y,m),S=e.write,C=S<e.read?e.read-S-1:e.end-S,S==e.end&&0!==e.read&&(S=0,C=S<e.read?e.read-S-1:e.end-S),0===C)))return e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);e.bt[S++]=e.bt[z++],C--,z==e.end&&(z=0),i--}t=0;break;case 6:if(0===C&&(S==e.end&&0!==e.read&&(S=0,C=S<e.read?e.read-S-1:e.end-S),0===C&&(e.write=S,m=e.kt(y,m),S=e.write,C=S<e.read?e.read-S-1:e.end-S,S==e.end&&0!==e.read&&(S=0,C=S<e.read?e.read-S-1:e.end-S),0===C)))return e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);m=0,e.bt[S++]=f,C--,t=0;break;case 7:if(I>7&&(I-=8,v++,x--),e.write=S,m=e.kt(y,m),S=e.write,C=S<e.read?e.read-S-1:e.end-S,e.read!=e.write)return e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);t=8;case 8:return m=1,e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);case 9:return m=-3,e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);default:return m=-2,e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m)}},e.vt=()=>{}}Oe.St=(e,t,n,r)=>(e[0]=9,t[0]=5,n[0]=Ue,r[0]=We,0);const Ge=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function Je(e,t){const n=this;let r,i=0,o=0,f=0,a=0;const l=[0],u=[0],w=new qe;let h=0,d=new c(4320);const p=new Oe;n.dt=0,n.ht=0,n.bt=new s(t),n.end=t,n.read=0,n.write=0,n.reset=(e,t)=>{t&&(t[0]=0),6==i&&w.vt(e),i=0,n.dt=0,n.ht=0,n.read=n.write=0},n.reset(e,null),n.kt=(e,t)=>{let r,s,i;return s=e.lt,i=n.read,r=(i>n.write?n.end:n.write)-i,r>e.ct&&(r=e.ct),0!==r&&-5==t&&(t=0),e.ct-=r,e.$e+=r,e.it.set(n.bt.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.ct&&(r=e.ct),0!==r&&-5==t&&(t=0),e.ct-=r,e.$e+=r,e.it.set(n.bt.subarray(i,i+r),s),s+=r,i+=r),e.lt=s,n.read=i,t},n.gt=(e,t)=>{let s,c,y,m,b,g,k,v;for(m=e.ft,b=e.Ge,c=n.ht,y=n.dt,g=n.write,k=g<n.read?n.read-g-1:n.end-g;;){let S,C,z,_,I,x,A,D;switch(i){case 0:for(;3>y;){if(0===b)return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);t=0,b--,c|=(255&e.yt(m++))<<y,y+=8}switch(s=7&c,h=1&s,s>>>1){case 0:c>>>=3,y-=3,s=7&y,c>>>=s,y-=s,i=1;break;case 1:S=[],C=[],z=[[]],_=[[]],Oe.St(S,C,z,_),w.init(S[0],C[0],z[0],0,_[0],0),c>>>=3,y-=3,i=6;break;case 2:c>>>=3,y-=3,i=3;break;case 3:return c>>>=3,y-=3,i=9,e.Xe="invalid block type",t=-3,n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t)}break;case 1:for(;32>y;){if(0===b)return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);t=0,b--,c|=(255&e.yt(m++))<<y,y+=8}if((~c>>>16&65535)!=(65535&c))return i=9,e.Xe="invalid stored block lengths",t=-3,n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);o=65535&c,c=y=0,i=0!==o?2:0!==h?7:0;break;case 2:if(0===b)return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);if(0===k&&(g==n.end&&0!==n.read&&(g=0,k=g<n.read?n.read-g-1:n.end-g),0===k&&(n.write=g,t=n.kt(e,t),g=n.write,k=g<n.read?n.read-g-1:n.end-g,g==n.end&&0!==n.read&&(g=0,k=g<n.read?n.read-g-1:n.end-g),0===k)))return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);if(t=0,s=o,s>b&&(s=b),s>k&&(s=k),n.bt.set(e.Je(m,s),g),m+=s,b-=s,g+=s,k-=s,0!=(o-=s))break;i=0!==h?7:0;break;case 3:for(;14>y;){if(0===b)return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);t=0,b--,c|=(255&e.yt(m++))<<y,y+=8}if(f=s=16383&c,(31&s)>29||(s>>5&31)>29)return i=9,e.Xe="too many length or distance symbols",t=-3,n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);if(s=258+(31&s)+(s>>5&31),!r||r.length<s)r=[];else for(v=0;s>v;v++)r[v]=0;c>>>=14,y-=14,a=0,i=4;case 4:for(;4+(f>>>10)>a;){for(;3>y;){if(0===b)return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);t=0,b--,c|=(255&e.yt(m++))<<y,y+=8}r[Ge[a++]]=7&c,c>>>=3,y-=3}for(;19>a;)r[Ge[a++]]=0;if(l[0]=7,s=p.ut(r,l,u,d,e),0!=s)return-3==(t=s)&&(r=null,i=9),n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);a=0,i=5;case 5:for(;s=f,258+(31&s)+(s>>5&31)>a;){let o,w;for(s=l[0];s>y;){if(0===b)return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);t=0,b--,c|=(255&e.yt(m++))<<y,y+=8}if(s=d[3*(u[0]+(c&Te[s]))+1],w=d[3*(u[0]+(c&Te[s]))+2],16>w)c>>>=s,y-=s,r[a++]=w;else{for(v=18==w?7:w-14,o=18==w?11:3;s+v>y;){if(0===b)return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);t=0,b--,c|=(255&e.yt(m++))<<y,y+=8}if(c>>>=s,y-=s,o+=c&Te[v],c>>>=v,y-=v,v=a,s=f,v+o>258+(31&s)+(s>>5&31)||16==w&&1>v)return r=null,i=9,e.Xe="invalid bit length repeat",t=-3,n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);w=16==w?r[v-1]:0;do{r[v++]=w}while(0!=--o);a=v}}if(u[0]=-1,I=[],x=[],A=[],D=[],I[0]=9,x[0]=6,s=f,s=p.wt(257+(31&s),1+(s>>5&31),r,I,x,A,D,d,e),0!=s)return-3==s&&(r=null,i=9),t=s,n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);w.init(I[0],x[0],d,A[0],d,D[0]),i=6;case 6:if(n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,1!=(t=w.gt(n,e,t)))return n.kt(e,t);if(t=0,w.vt(e),m=e.ft,b=e.Ge,c=n.ht,y=n.dt,g=n.write,k=g<n.read?n.read-g-1:n.end-g,0===h){i=0;break}i=7;case 7:if(n.write=g,t=n.kt(e,t),g=n.write,k=g<n.read?n.read-g-1:n.end-g,n.read!=n.write)return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);i=8;case 8:return t=1,n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);case 9:return t=-3,n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);default:return t=-2,n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t)}}},n.vt=e=>{n.reset(e,null),n.bt=null,d=null},n.Ct=(e,t,r)=>{n.bt.set(e.subarray(t,t+r),0),n.read=n.write=r},n.zt=()=>1==i?1:0}const Qe=[0,0,255,255];function Xe(){const e=this;function t(e){return e&&e._t?(e.Ze=e.$e=0,e.Xe=null,e._t.mode=7,e._t.It.reset(e,null),0):-2}e.mode=0,e.method=0,e.xt=[0],e.At=0,e.marker=0,e.Dt=0,e.Vt=t=>(e.It&&e.It.vt(t),e.It=null,0),e.Rt=(n,r)=>(n.Xe=null,e.It=null,8>r||r>15?(e.Vt(n),-2):(e.Dt=r,n._t.It=new Je(n,1<<r),t(n),0)),e.Bt=(e,t)=>{let n,r;if(!e||!e._t||!e.ot)return-2;const s=e._t;for(t=4==t?-5:0,n=-5;;)switch(s.mode){case 0:if(0===e.Ge)return n;if(n=t,e.Ge--,e.Ze++,8!=(15&(s.method=e.yt(e.ft++)))){s.mode=13,e.Xe="unknown compression method",s.marker=5;break}if(8+(s.method>>4)>s.Dt){s.mode=13,e.Xe="invalid win size",s.marker=5;break}s.mode=1;case 1:if(0===e.Ge)return n;if(n=t,e.Ge--,e.Ze++,r=255&e.yt(e.ft++),((s.method<<8)+r)%31!=0){s.mode=13,e.Xe="incorrect header check",s.marker=5;break}if(0==(32&r)){s.mode=7;break}s.mode=2;case 2:if(0===e.Ge)return n;n=t,e.Ge--,e.Ze++,s.At=(255&e.yt(e.ft++))<<24&4278190080,s.mode=3;case 3:if(0===e.Ge)return n;n=t,e.Ge--,e.Ze++,s.At+=(255&e.yt(e.ft++))<<16&16711680,s.mode=4;case 4:if(0===e.Ge)return n;n=t,e.Ge--,e.Ze++,s.At+=(255&e.yt(e.ft++))<<8&65280,s.mode=5;case 5:return 0===e.Ge?n:(n=t,e.Ge--,e.Ze++,s.At+=255&e.yt(e.ft++),s.mode=6,2);case 6:return s.mode=13,e.Xe="need dictionary",s.marker=0,-2;case 7:if(n=s.It.gt(e,n),-3==n){s.mode=13,s.marker=0;break}if(0==n&&(n=t),1!=n)return n;n=t,s.It.reset(e,s.xt),s.mode=12;case 12:return e.Ge=0,1;case 13:return-3;default:return-2}},e.Et=(e,t,n)=>{let r=0,s=n;if(!e||!e._t||6!=e._t.mode)return-2;const i=e._t;return s<1<<i.Dt||(s=(1<<i.Dt)-1,r=n-s),i.It.Ct(t,r,s),i.mode=7,0},e.Mt=e=>{let n,r,s,i,o;if(!e||!e._t)return-2;const c=e._t;if(13!=c.mode&&(c.mode=13,c.marker=0),0===(n=e.Ge))return-5;for(r=e.ft,s=c.marker;0!==n&&4>s;)e.yt(r)==Qe[s]?s++:s=0!==e.yt(r)?0:4-s,r++,n--;return e.Ze+=r-e.ft,e.ft=r,e.Ge=n,c.marker=s,4!=s?-3:(i=e.Ze,o=e.$e,t(e),e.Ze=i,e.$e=o,c.mode=7,0)},e.Kt=e=>e&&e._t&&e._t.It?e._t.It.zt():-2}function Ye(){}function Ze(e){const t=new Ye,i=e&&e.chunkSize?n.floor(2*e.chunkSize):131072,o=new s(i);let c=!1;t.Rt(),t.it=o,this.append=(e,n)=>{const f=[];let a,l,u=0,w=0,h=0;if(0!==e.length){t.ft=0,t.ot=e,t.Ge=e.length;do{if(t.lt=0,t.ct=i,0!==t.Ge||c||(t.ft=0,c=!0),a=t.Bt(0),c&&-5===a){if(0!==t.Ge)throw new r("inflating: bad input")}else if(0!==a&&1!==a)throw new r("inflating: "+t.Xe);if((c||1===a)&&t.Ge===e.length)throw new r("inflating: bad input");t.lt&&(t.lt===i?f.push(new s(o)):f.push(o.slice(0,t.lt))),h+=t.lt,n&&t.ft>0&&t.ft!=u&&(n(t.ft),u=t.ft)}while(t.Ge>0||0===t.ct);return f.length>1?(l=new s(h),f.forEach((e=>{l.set(e,w),w+=e.length}))):l=f[0]||new s,l}},this.flush=()=>{t.Vt()}}Ye.prototype={Rt(e){const t=this;return t._t=new Xe,e||(e=15),t._t.Rt(t,e)},Bt(e){const t=this;return t._t?t._t.Bt(t,e):-2},Vt(){const e=this;if(!e._t)return-2;const t=e._t.Vt(e);return e._t=null,t},Mt(){const e=this;return e._t?e._t.Mt(e):-2},Et(e,t){const n=this;return n._t?n._t.Et(n,e,t):-2},yt(e){return this.ot[e]},Je(e,t){return this.ot.subarray(e,e+t)}},self.initCodec=()=>{self.Deflate=Pe,self.Inflate=Ze};\n'],{type:"text/javascript"}));e({workerScripts:{inflate:[t],deflate:[t]}});}
|
|
7416
7440
|
|
|
7417
7441
|
function initShimAsyncCodec(library, options = {}, registerDataHandler) {
|
|
7418
7442
|
return {
|
|
@@ -7563,52 +7587,6 @@
|
|
|
7563
7587
|
}
|
|
7564
7588
|
}
|
|
7565
7589
|
|
|
7566
|
-
class TextReader extends Reader {
|
|
7567
|
-
|
|
7568
|
-
constructor(text) {
|
|
7569
|
-
super();
|
|
7570
|
-
this.blobReader = new BlobReader(new Blob([text], { type: CONTENT_TYPE_TEXT_PLAIN }));
|
|
7571
|
-
}
|
|
7572
|
-
|
|
7573
|
-
init() {
|
|
7574
|
-
const reader = this;
|
|
7575
|
-
super.init();
|
|
7576
|
-
reader.blobReader.init();
|
|
7577
|
-
reader.size = reader.blobReader.size;
|
|
7578
|
-
}
|
|
7579
|
-
|
|
7580
|
-
readUint8Array(offset, length) {
|
|
7581
|
-
return this.blobReader.readUint8Array(offset, length);
|
|
7582
|
-
}
|
|
7583
|
-
}
|
|
7584
|
-
|
|
7585
|
-
class TextWriter extends Writer {
|
|
7586
|
-
|
|
7587
|
-
constructor(encoding) {
|
|
7588
|
-
super();
|
|
7589
|
-
this.encoding = encoding;
|
|
7590
|
-
this.blob = new Blob([], { type: CONTENT_TYPE_TEXT_PLAIN });
|
|
7591
|
-
}
|
|
7592
|
-
|
|
7593
|
-
writeUint8Array(array) {
|
|
7594
|
-
this.blob = new Blob([this.blob, array.buffer], { type: CONTENT_TYPE_TEXT_PLAIN });
|
|
7595
|
-
}
|
|
7596
|
-
|
|
7597
|
-
getData() {
|
|
7598
|
-
const writer = this;
|
|
7599
|
-
if (writer.blob.text && (writer.encoding === undefined || (writer.encoding && writer.encoding.toLowerCase() == "utf-8"))) {
|
|
7600
|
-
return writer.blob.text();
|
|
7601
|
-
} else {
|
|
7602
|
-
const reader = new FileReader();
|
|
7603
|
-
return new Promise((resolve, reject) => {
|
|
7604
|
-
reader.onload = event => resolve(event.target.result);
|
|
7605
|
-
reader.onerror = () => reject(reader.error);
|
|
7606
|
-
reader.readAsText(writer.blob, writer.encoding);
|
|
7607
|
-
});
|
|
7608
|
-
}
|
|
7609
|
-
}
|
|
7610
|
-
}
|
|
7611
|
-
|
|
7612
7590
|
class Data64URIReader extends Reader {
|
|
7613
7591
|
|
|
7614
7592
|
constructor(dataURI) {
|
|
@@ -7705,6 +7683,42 @@
|
|
|
7705
7683
|
}
|
|
7706
7684
|
}
|
|
7707
7685
|
|
|
7686
|
+
class TextReader extends BlobReader {
|
|
7687
|
+
|
|
7688
|
+
constructor(text) {
|
|
7689
|
+
super(new Blob([text], { type: CONTENT_TYPE_TEXT_PLAIN }));
|
|
7690
|
+
}
|
|
7691
|
+
}
|
|
7692
|
+
|
|
7693
|
+
class TextWriter extends BlobWriter {
|
|
7694
|
+
|
|
7695
|
+
constructor(encoding) {
|
|
7696
|
+
super(encoding);
|
|
7697
|
+
Object.assign(this, {
|
|
7698
|
+
encoding,
|
|
7699
|
+
utf8: !encoding || encoding.toLowerCase() == "utf-8"
|
|
7700
|
+
});
|
|
7701
|
+
}
|
|
7702
|
+
|
|
7703
|
+
async getData() {
|
|
7704
|
+
const {
|
|
7705
|
+
encoding,
|
|
7706
|
+
utf8
|
|
7707
|
+
} = this;
|
|
7708
|
+
const blob = await super.getData();
|
|
7709
|
+
if (blob.text && utf8) {
|
|
7710
|
+
return blob.text();
|
|
7711
|
+
} else {
|
|
7712
|
+
const reader = new FileReader();
|
|
7713
|
+
return new Promise((resolve, reject) => {
|
|
7714
|
+
reader.onload = ({ target }) => resolve(target.result);
|
|
7715
|
+
reader.onerror = () => reject(reader.error);
|
|
7716
|
+
reader.readAsText(blob, encoding);
|
|
7717
|
+
});
|
|
7718
|
+
}
|
|
7719
|
+
}
|
|
7720
|
+
}
|
|
7721
|
+
|
|
7708
7722
|
class FetchReader extends Reader {
|
|
7709
7723
|
|
|
7710
7724
|
constructor(url, options) {
|
|
@@ -8303,40 +8317,48 @@
|
|
|
8303
8317
|
const commentOffset = extraFieldOffset + fileEntry.extraFieldLength;
|
|
8304
8318
|
const versionMadeBy = getUint16(directoryView, offset + 4);
|
|
8305
8319
|
const msDosCompatible = (versionMadeBy & 0) == 0;
|
|
8320
|
+
const rawFilename = directoryArray.subarray(filenameOffset, extraFieldOffset);
|
|
8321
|
+
const commentLength = getUint16(directoryView, offset + 32);
|
|
8322
|
+
const endOffset = commentOffset + commentLength;
|
|
8323
|
+
const rawComment = directoryArray.subarray(commentOffset, endOffset);
|
|
8324
|
+
const filenameUTF8 = languageEncodingFlag;
|
|
8325
|
+
const commentUTF8 = languageEncodingFlag;
|
|
8326
|
+
const directory = msDosCompatible && ((getUint8(directoryView, offset + 38) & FILE_ATTR_MSDOS_DIR_MASK) == FILE_ATTR_MSDOS_DIR_MASK);
|
|
8327
|
+
const offsetFileEntry = getUint32(directoryView, offset + 42) + prependedDataLength;
|
|
8306
8328
|
Object.assign(fileEntry, {
|
|
8307
8329
|
versionMadeBy,
|
|
8308
8330
|
msDosCompatible,
|
|
8309
8331
|
compressedSize: 0,
|
|
8310
8332
|
uncompressedSize: 0,
|
|
8311
|
-
commentLength
|
|
8312
|
-
directory
|
|
8313
|
-
offset:
|
|
8333
|
+
commentLength,
|
|
8334
|
+
directory,
|
|
8335
|
+
offset: offsetFileEntry,
|
|
8314
8336
|
internalFileAttribute: getUint16(directoryView, offset + 36),
|
|
8315
8337
|
externalFileAttribute: getUint32(directoryView, offset + 38),
|
|
8316
|
-
rawFilename
|
|
8317
|
-
filenameUTF8
|
|
8318
|
-
commentUTF8
|
|
8338
|
+
rawFilename,
|
|
8339
|
+
filenameUTF8,
|
|
8340
|
+
commentUTF8,
|
|
8319
8341
|
rawExtraField: directoryArray.subarray(extraFieldOffset, commentOffset)
|
|
8320
8342
|
});
|
|
8321
|
-
startOffset = Math.max(fileEntry.offset, startOffset);
|
|
8322
|
-
const endOffset = commentOffset + fileEntry.commentLength;
|
|
8323
|
-
fileEntry.rawComment = directoryArray.subarray(commentOffset, endOffset);
|
|
8324
8343
|
const [filename, comment] = await Promise.all([
|
|
8325
|
-
decodeText(
|
|
8326
|
-
decodeText(
|
|
8344
|
+
decodeText(rawFilename, filenameUTF8 ? CHARSET_UTF8 : filenameEncoding || CHARSET_CP437),
|
|
8345
|
+
decodeText(rawComment, commentUTF8 ? CHARSET_UTF8 : commentEncoding || CHARSET_CP437)
|
|
8327
8346
|
]);
|
|
8328
|
-
fileEntry
|
|
8329
|
-
|
|
8330
|
-
|
|
8331
|
-
|
|
8332
|
-
|
|
8347
|
+
Object.assign(fileEntry, {
|
|
8348
|
+
rawComment,
|
|
8349
|
+
filename,
|
|
8350
|
+
comment,
|
|
8351
|
+
directory: directory || filename.endsWith(DIRECTORY_SIGNATURE)
|
|
8352
|
+
});
|
|
8353
|
+
startOffset = Math.max(offsetFileEntry, startOffset);
|
|
8333
8354
|
await readCommonFooter(fileEntry, fileEntry, directoryView, offset + 6);
|
|
8334
8355
|
const entry = new Entry(fileEntry);
|
|
8335
8356
|
entry.getData = (writer, options) => fileEntry.getData(writer, entry, options);
|
|
8336
8357
|
offset = endOffset;
|
|
8337
|
-
|
|
8358
|
+
const { onprogress } = options;
|
|
8359
|
+
if (onprogress) {
|
|
8338
8360
|
try {
|
|
8339
|
-
await
|
|
8361
|
+
await onprogress(indexFile + 1, filesLength, new Entry(fileEntry));
|
|
8340
8362
|
} catch (_error) {
|
|
8341
8363
|
// ignored
|
|
8342
8364
|
}
|
|
@@ -8411,8 +8433,10 @@
|
|
|
8411
8433
|
dataArray = await readUint8Array(reader, offset, 30 + localDirectory.filenameLength + localDirectory.extraFieldLength);
|
|
8412
8434
|
localDirectory.rawExtraField = dataArray.subarray(30 + localDirectory.filenameLength);
|
|
8413
8435
|
await readCommonFooter(zipEntry, localDirectory, dataView, 4);
|
|
8414
|
-
fileEntry
|
|
8415
|
-
|
|
8436
|
+
Object.assign(fileEntry, {
|
|
8437
|
+
lastAccessDate: localDirectory.lastAccessDate,
|
|
8438
|
+
creationDate: localDirectory.creationDate
|
|
8439
|
+
});
|
|
8416
8440
|
const encrypted = zipEntry.encrypted && localDirectory.encrypted;
|
|
8417
8441
|
const zipCrypto = encrypted && !extraFieldAES;
|
|
8418
8442
|
if (encrypted) {
|
|
@@ -8456,8 +8480,7 @@
|
|
|
8456
8480
|
preventClose
|
|
8457
8481
|
},
|
|
8458
8482
|
config,
|
|
8459
|
-
streamOptions: { signal, size, onstart, onprogress, onend }
|
|
8460
|
-
codecConstructor: config.Inflate
|
|
8483
|
+
streamOptions: { signal, size, onstart, onprogress, onend }
|
|
8461
8484
|
};
|
|
8462
8485
|
writable.size += (await runWorker({ readable, writable }, workerOptions)).size;
|
|
8463
8486
|
if (!preventClose) {
|
|
@@ -8509,9 +8532,11 @@
|
|
|
8509
8532
|
// ignored
|
|
8510
8533
|
}
|
|
8511
8534
|
const compressionMethod = getUint16(dataView, offset + 4);
|
|
8512
|
-
|
|
8513
|
-
|
|
8514
|
-
|
|
8535
|
+
Object.assign(directory, {
|
|
8536
|
+
signature: getUint32(dataView, offset + 10),
|
|
8537
|
+
uncompressedSize: getUint32(dataView, offset + 18),
|
|
8538
|
+
compressedSize: getUint32(dataView, offset + 14)
|
|
8539
|
+
});
|
|
8515
8540
|
const extraFieldZip64 = extraField.get(EXTRAFIELD_TYPE_ZIP64);
|
|
8516
8541
|
if (extraFieldZip64) {
|
|
8517
8542
|
readExtraFieldZip64(extraFieldZip64, directory);
|
|
@@ -8570,14 +8595,16 @@
|
|
|
8570
8595
|
|
|
8571
8596
|
async function readExtraFieldUnicode(extraFieldUnicode, propertyName, rawPropertyName, directory, fileEntry) {
|
|
8572
8597
|
const extraFieldView = getDataView$1(extraFieldUnicode.data);
|
|
8573
|
-
extraFieldUnicode.version = getUint8(extraFieldView, 0);
|
|
8574
|
-
extraFieldUnicode.signature = getUint32(extraFieldView, 1);
|
|
8575
8598
|
const crc32 = new Crc32();
|
|
8576
8599
|
crc32.append(fileEntry[rawPropertyName]);
|
|
8577
8600
|
const dataViewSignature = getDataView$1(new Uint8Array(4));
|
|
8578
8601
|
dataViewSignature.setUint32(0, crc32.get(), true);
|
|
8579
|
-
extraFieldUnicode
|
|
8580
|
-
|
|
8602
|
+
Object.assign(extraFieldUnicode, {
|
|
8603
|
+
version: getUint8(extraFieldView, 0),
|
|
8604
|
+
signature: getUint32(extraFieldView, 1),
|
|
8605
|
+
[propertyName]: await decodeText(extraFieldUnicode.data.subarray(5)),
|
|
8606
|
+
valid: !fileEntry.bitFlag.languageEncodingFlag && extraFieldUnicode.signature == getUint32(dataViewSignature, 0)
|
|
8607
|
+
});
|
|
8581
8608
|
if (extraFieldUnicode.valid) {
|
|
8582
8609
|
directory[propertyName] = extraFieldUnicode[propertyName];
|
|
8583
8610
|
directory[propertyName + "UTF8"] = true;
|
|
@@ -8586,12 +8613,15 @@
|
|
|
8586
8613
|
|
|
8587
8614
|
function readExtraFieldAES(extraFieldAES, directory, compressionMethod) {
|
|
8588
8615
|
const extraFieldView = getDataView$1(extraFieldAES.data);
|
|
8589
|
-
extraFieldAES.vendorVersion = getUint8(extraFieldView, 0);
|
|
8590
|
-
extraFieldAES.vendorId = getUint8(extraFieldView, 2);
|
|
8591
8616
|
const strength = getUint8(extraFieldView, 4);
|
|
8592
|
-
extraFieldAES
|
|
8593
|
-
|
|
8594
|
-
|
|
8617
|
+
Object.assign(extraFieldAES, {
|
|
8618
|
+
vendorVersion: getUint8(extraFieldView, 0),
|
|
8619
|
+
vendorId: getUint8(extraFieldView, 2),
|
|
8620
|
+
strength,
|
|
8621
|
+
originalCompressionMethod: compressionMethod,
|
|
8622
|
+
compressionMethod: getUint16(extraFieldView, 5)
|
|
8623
|
+
});
|
|
8624
|
+
directory.compressionMethod = extraFieldAES.compressionMethod;
|
|
8595
8625
|
}
|
|
8596
8626
|
|
|
8597
8627
|
function readExtraFieldNTFS(extraFieldNTFS, directory) {
|
|
@@ -8779,7 +8809,7 @@
|
|
|
8779
8809
|
if (writer instanceof WritableStream) {
|
|
8780
8810
|
writer = { writable: writer };
|
|
8781
8811
|
}
|
|
8782
|
-
if (writer.writable.size
|
|
8812
|
+
if (writer.writable.size === undefined) {
|
|
8783
8813
|
writer.writable.size = 0;
|
|
8784
8814
|
}
|
|
8785
8815
|
Object.assign(this, {
|
|
@@ -8851,12 +8881,12 @@
|
|
|
8851
8881
|
options.directory = name.endsWith(DIRECTORY_SIGNATURE);
|
|
8852
8882
|
}
|
|
8853
8883
|
const rawFilename = encodeText(name);
|
|
8854
|
-
if (rawFilename
|
|
8884
|
+
if (getLength(rawFilename) > MAX_16_BITS) {
|
|
8855
8885
|
throw new Error(ERR_INVALID_ENTRY_NAME);
|
|
8856
8886
|
}
|
|
8857
8887
|
const comment = options.comment || "";
|
|
8858
8888
|
const rawComment = encodeText(comment);
|
|
8859
|
-
if (rawComment
|
|
8889
|
+
if (getLength(rawComment) > MAX_16_BITS) {
|
|
8860
8890
|
throw new Error(ERR_INVALID_ENTRY_COMMENT);
|
|
8861
8891
|
}
|
|
8862
8892
|
const version = zipWriter.options.version || options.version || 0;
|
|
@@ -8881,19 +8911,19 @@
|
|
|
8881
8911
|
if (extraField) {
|
|
8882
8912
|
let extraFieldSize = 0;
|
|
8883
8913
|
let offset = 0;
|
|
8884
|
-
extraField.forEach(data => extraFieldSize += 4 + data
|
|
8914
|
+
extraField.forEach(data => extraFieldSize += 4 + getLength(data));
|
|
8885
8915
|
rawExtraField = new Uint8Array(extraFieldSize);
|
|
8886
8916
|
extraField.forEach((data, type) => {
|
|
8887
8917
|
if (type > MAX_16_BITS) {
|
|
8888
8918
|
throw new Error(ERR_INVALID_EXTRAFIELD_TYPE);
|
|
8889
8919
|
}
|
|
8890
|
-
if (data
|
|
8920
|
+
if (getLength(data) > MAX_16_BITS) {
|
|
8891
8921
|
throw new Error(ERR_INVALID_EXTRAFIELD_DATA);
|
|
8892
8922
|
}
|
|
8893
8923
|
arraySet(rawExtraField, new Uint16Array([type]), offset);
|
|
8894
|
-
arraySet(rawExtraField, new Uint16Array([data
|
|
8924
|
+
arraySet(rawExtraField, new Uint16Array([getLength(data)]), offset + 2);
|
|
8895
8925
|
arraySet(rawExtraField, data, offset + 4);
|
|
8896
|
-
offset += 4 + data
|
|
8926
|
+
offset += 4 + getLength(data);
|
|
8897
8927
|
});
|
|
8898
8928
|
}
|
|
8899
8929
|
let extendedTimestamp = getOptionValue(zipWriter, options, "extendedTimestamp");
|
|
@@ -8982,7 +9012,7 @@
|
|
|
8982
9012
|
});
|
|
8983
9013
|
const headerInfo = getHeaderInfo(options);
|
|
8984
9014
|
const dataDescriptorInfo = getDataDescriptorInfo(options);
|
|
8985
|
-
maximumEntrySize = headerInfo.localHeaderArray.
|
|
9015
|
+
maximumEntrySize = getLength(headerInfo.localHeaderArray, dataDescriptorInfo.dataDescriptorArray) + maximumCompressedSize;
|
|
8986
9016
|
zipWriter.pendingEntriesSize += maximumEntrySize;
|
|
8987
9017
|
let fileEntry;
|
|
8988
9018
|
try {
|
|
@@ -9013,7 +9043,8 @@
|
|
|
9013
9043
|
let bufferedWrite;
|
|
9014
9044
|
let releaseLockWriter;
|
|
9015
9045
|
let releaseLockCurrentFileEntry;
|
|
9016
|
-
let
|
|
9046
|
+
let writingBufferedEntryData;
|
|
9047
|
+
let writingEntryData;
|
|
9017
9048
|
let fileWriter;
|
|
9018
9049
|
files.set(name, fileEntry);
|
|
9019
9050
|
try {
|
|
@@ -9036,8 +9067,9 @@
|
|
|
9036
9067
|
if (!bufferedWrite) {
|
|
9037
9068
|
await lockPreviousFileEntry;
|
|
9038
9069
|
}
|
|
9039
|
-
|
|
9070
|
+
writingEntryData = true;
|
|
9040
9071
|
fileEntry = await createFileEntry(reader, fileWriter, fileEntry, entryInfo, zipWriter.config, options);
|
|
9072
|
+
writingEntryData = false;
|
|
9041
9073
|
files.set(name, fileEntry);
|
|
9042
9074
|
fileEntry.filename = name;
|
|
9043
9075
|
if (bufferedWrite) {
|
|
@@ -9045,7 +9077,7 @@
|
|
|
9045
9077
|
let blob = await fileWriter.getData();
|
|
9046
9078
|
await lockPreviousFileEntry;
|
|
9047
9079
|
await requestLockWriter();
|
|
9048
|
-
|
|
9080
|
+
writingBufferedEntryData = true;
|
|
9049
9081
|
const { writable } = writer;
|
|
9050
9082
|
if (!dataDescriptor) {
|
|
9051
9083
|
const arrayBuffer = await sliceAsArrayBuffer(blob, 0, 26);
|
|
@@ -9064,7 +9096,7 @@
|
|
|
9064
9096
|
blob = blob.slice(arrayBuffer.byteLength);
|
|
9065
9097
|
}
|
|
9066
9098
|
await blob.stream().pipeTo(writable, { preventClose: true, signal });
|
|
9067
|
-
|
|
9099
|
+
writingBufferedEntryData = false;
|
|
9068
9100
|
}
|
|
9069
9101
|
fileEntry.offset = zipWriter.offset;
|
|
9070
9102
|
if (fileEntry.zip64) {
|
|
@@ -9076,7 +9108,7 @@
|
|
|
9076
9108
|
zipWriter.offset += fileEntry.length;
|
|
9077
9109
|
return fileEntry;
|
|
9078
9110
|
} catch (error) {
|
|
9079
|
-
if ((bufferedWrite &&
|
|
9111
|
+
if ((bufferedWrite && writingBufferedEntryData) || (!bufferedWrite && writingEntryData)) {
|
|
9080
9112
|
zipWriter.hasCorruptedEntries = true;
|
|
9081
9113
|
if (error) {
|
|
9082
9114
|
error.corruptedEntry = true;
|
|
@@ -9200,8 +9232,7 @@
|
|
|
9200
9232
|
transferStreams: false
|
|
9201
9233
|
},
|
|
9202
9234
|
config,
|
|
9203
|
-
streamOptions: { signal, size, onstart, onprogress, onend }
|
|
9204
|
-
codecConstructor: config.Deflate
|
|
9235
|
+
streamOptions: { signal, size, onstart, onprogress, onend }
|
|
9205
9236
|
};
|
|
9206
9237
|
const result = await runWorker({ readable, writable }, workerOptions);
|
|
9207
9238
|
writable.size += result.size;
|
|
@@ -9232,7 +9263,7 @@
|
|
|
9232
9263
|
creationDate,
|
|
9233
9264
|
lastAccessDate,
|
|
9234
9265
|
encrypted,
|
|
9235
|
-
length: localHeaderArray
|
|
9266
|
+
length: getLength(localHeaderArray, dataDescriptorArray) + compressedSize,
|
|
9236
9267
|
compressionMethod,
|
|
9237
9268
|
version,
|
|
9238
9269
|
headerArray,
|
|
@@ -9245,6 +9276,7 @@
|
|
|
9245
9276
|
function getHeaderInfo(options) {
|
|
9246
9277
|
const {
|
|
9247
9278
|
rawFilename,
|
|
9279
|
+
lastModDate,
|
|
9248
9280
|
lastAccessDate,
|
|
9249
9281
|
creationDate,
|
|
9250
9282
|
password,
|
|
@@ -9257,12 +9289,11 @@
|
|
|
9257
9289
|
encryptionStrength,
|
|
9258
9290
|
extendedTimestamp,
|
|
9259
9291
|
} = options;
|
|
9260
|
-
let version = options.version || VERSION_DEFLATE;
|
|
9261
9292
|
const compressed = level !== 0 && !directory;
|
|
9262
|
-
const encrypted = Boolean(password && password
|
|
9293
|
+
const encrypted = Boolean(password && getLength(password));
|
|
9263
9294
|
let rawExtraFieldAES;
|
|
9264
9295
|
if (encrypted && !zipCrypto) {
|
|
9265
|
-
rawExtraFieldAES = new Uint8Array(EXTRAFIELD_DATA_AES
|
|
9296
|
+
rawExtraFieldAES = new Uint8Array(getLength(EXTRAFIELD_DATA_AES) + 2);
|
|
9266
9297
|
const extraFieldAESView = getDataView(rawExtraFieldAES);
|
|
9267
9298
|
setUint16(extraFieldAESView, 0, EXTRAFIELD_TYPE_AES);
|
|
9268
9299
|
arraySet(rawExtraFieldAES, EXTRAFIELD_DATA_AES, 2);
|
|
@@ -9276,10 +9307,10 @@
|
|
|
9276
9307
|
rawExtraFieldExtendedTimestamp = new Uint8Array(9 + (lastAccessDate ? 4 : 0) + (creationDate ? 4 : 0));
|
|
9277
9308
|
const extraFieldExtendedTimestampView = getDataView(rawExtraFieldExtendedTimestamp);
|
|
9278
9309
|
setUint16(extraFieldExtendedTimestampView, 0, EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP);
|
|
9279
|
-
setUint16(extraFieldExtendedTimestampView, 2, rawExtraFieldExtendedTimestamp
|
|
9310
|
+
setUint16(extraFieldExtendedTimestampView, 2, getLength(rawExtraFieldExtendedTimestamp) - 4);
|
|
9280
9311
|
const extraFieldExtendedTimestampFlag = 0x1 + (lastAccessDate ? 0x2 : 0) + (creationDate ? 0x4 : 0);
|
|
9281
9312
|
setUint8(extraFieldExtendedTimestampView, 4, extraFieldExtendedTimestampFlag);
|
|
9282
|
-
setUint32(extraFieldExtendedTimestampView, 5, Math.floor(
|
|
9313
|
+
setUint32(extraFieldExtendedTimestampView, 5, Math.floor(lastModDate.getTime() / 1000));
|
|
9283
9314
|
if (lastAccessDate) {
|
|
9284
9315
|
setUint32(extraFieldExtendedTimestampView, 9, Math.floor(lastAccessDate.getTime() / 1000));
|
|
9285
9316
|
}
|
|
@@ -9289,7 +9320,7 @@
|
|
|
9289
9320
|
try {
|
|
9290
9321
|
rawExtraFieldNTFS = new Uint8Array(36);
|
|
9291
9322
|
const extraFieldNTFSView = getDataView(rawExtraFieldNTFS);
|
|
9292
|
-
const lastModTimeNTFS = getTimeNTFS(
|
|
9323
|
+
const lastModTimeNTFS = getTimeNTFS(lastModDate);
|
|
9293
9324
|
setUint16(extraFieldNTFSView, 0, EXTRAFIELD_TYPE_NTFS);
|
|
9294
9325
|
setUint16(extraFieldNTFSView, 2, 32);
|
|
9295
9326
|
setUint16(extraFieldNTFSView, 8, EXTRAFIELD_TYPE_NTFS_TAG1);
|
|
@@ -9311,6 +9342,7 @@
|
|
|
9311
9342
|
if (compressed) {
|
|
9312
9343
|
compressionMethod = COMPRESSION_METHOD_DEFLATE;
|
|
9313
9344
|
}
|
|
9345
|
+
let version = options.version || VERSION_DEFLATE;
|
|
9314
9346
|
if (zip64) {
|
|
9315
9347
|
version = version > VERSION_ZIP64 ? version : VERSION_ZIP64;
|
|
9316
9348
|
}
|
|
@@ -9331,30 +9363,30 @@
|
|
|
9331
9363
|
setUint16(headerView, 4, compressionMethod);
|
|
9332
9364
|
const dateArray = new Uint32Array(1);
|
|
9333
9365
|
const dateView = getDataView(dateArray);
|
|
9334
|
-
let
|
|
9335
|
-
if (
|
|
9336
|
-
|
|
9337
|
-
} else if (
|
|
9338
|
-
|
|
9366
|
+
let lastModDateMsDos;
|
|
9367
|
+
if (lastModDate < MIN_DATE) {
|
|
9368
|
+
lastModDateMsDos = MIN_DATE;
|
|
9369
|
+
} else if (lastModDate > MAX_DATE) {
|
|
9370
|
+
lastModDateMsDos = MAX_DATE;
|
|
9339
9371
|
} else {
|
|
9340
|
-
|
|
9372
|
+
lastModDateMsDos = lastModDate;
|
|
9341
9373
|
}
|
|
9342
|
-
setUint16(dateView, 0, (((
|
|
9343
|
-
setUint16(dateView, 2, ((((
|
|
9374
|
+
setUint16(dateView, 0, (((lastModDateMsDos.getHours() << 6) | lastModDateMsDos.getMinutes()) << 5) | lastModDateMsDos.getSeconds() / 2);
|
|
9375
|
+
setUint16(dateView, 2, ((((lastModDateMsDos.getFullYear() - 1980) << 4) | (lastModDateMsDos.getMonth() + 1)) << 5) | lastModDateMsDos.getDate());
|
|
9344
9376
|
const rawLastModDate = dateArray[0];
|
|
9345
9377
|
setUint32(headerView, 6, rawLastModDate);
|
|
9346
|
-
setUint16(headerView, 22, rawFilename
|
|
9347
|
-
const extraFieldLength = rawExtraFieldAES
|
|
9378
|
+
setUint16(headerView, 22, getLength(rawFilename));
|
|
9379
|
+
const extraFieldLength = getLength(rawExtraFieldAES, rawExtraFieldExtendedTimestamp, rawExtraFieldNTFS, rawExtraField);
|
|
9348
9380
|
setUint16(headerView, 24, extraFieldLength);
|
|
9349
|
-
const localHeaderArray = new Uint8Array(30 + rawFilename
|
|
9381
|
+
const localHeaderArray = new Uint8Array(30 + getLength(rawFilename) + extraFieldLength);
|
|
9350
9382
|
const localHeaderView = getDataView(localHeaderArray);
|
|
9351
9383
|
setUint32(localHeaderView, 0, LOCAL_FILE_HEADER_SIGNATURE);
|
|
9352
9384
|
arraySet(localHeaderArray, headerArray, 4);
|
|
9353
9385
|
arraySet(localHeaderArray, rawFilename, 30);
|
|
9354
|
-
arraySet(localHeaderArray, rawExtraFieldAES, 30 + rawFilename
|
|
9355
|
-
arraySet(localHeaderArray, rawExtraFieldExtendedTimestamp, 30 + rawFilename
|
|
9356
|
-
arraySet(localHeaderArray, rawExtraFieldNTFS, 30 + rawFilename
|
|
9357
|
-
arraySet(localHeaderArray, rawExtraField, 30 + rawFilename
|
|
9386
|
+
arraySet(localHeaderArray, rawExtraFieldAES, 30 + getLength(rawFilename));
|
|
9387
|
+
arraySet(localHeaderArray, rawExtraFieldExtendedTimestamp, 30 + getLength(rawFilename, rawExtraFieldAES));
|
|
9388
|
+
arraySet(localHeaderArray, rawExtraFieldNTFS, 30 + getLength(rawFilename, rawExtraFieldAES, rawExtraFieldExtendedTimestamp));
|
|
9389
|
+
arraySet(localHeaderArray, rawExtraField, 30 + getLength(rawFilename, rawExtraFieldAES, rawExtraFieldExtendedTimestamp, rawExtraFieldNTFS));
|
|
9358
9390
|
return {
|
|
9359
9391
|
localHeaderArray,
|
|
9360
9392
|
headerArray,
|
|
@@ -9450,15 +9482,24 @@
|
|
|
9450
9482
|
let directoryDataLength = 0;
|
|
9451
9483
|
let directoryOffset = zipWriter.offset;
|
|
9452
9484
|
let filesLength = files.size;
|
|
9453
|
-
for (const [,
|
|
9485
|
+
for (const [, {
|
|
9486
|
+
rawFilename,
|
|
9487
|
+
rawExtraFieldZip64,
|
|
9488
|
+
rawExtraFieldAES,
|
|
9489
|
+
rawExtraField,
|
|
9490
|
+
rawComment,
|
|
9491
|
+
rawExtraFieldExtendedTimestamp,
|
|
9492
|
+
rawExtraFieldNTFS
|
|
9493
|
+
}] of files) {
|
|
9454
9494
|
directoryDataLength += 46 +
|
|
9455
|
-
|
|
9456
|
-
|
|
9457
|
-
|
|
9458
|
-
|
|
9459
|
-
|
|
9460
|
-
|
|
9461
|
-
|
|
9495
|
+
getLength(
|
|
9496
|
+
rawFilename,
|
|
9497
|
+
rawComment,
|
|
9498
|
+
rawExtraFieldZip64,
|
|
9499
|
+
rawExtraFieldAES,
|
|
9500
|
+
rawExtraFieldExtendedTimestamp,
|
|
9501
|
+
rawExtraFieldNTFS,
|
|
9502
|
+
rawExtraField);
|
|
9462
9503
|
}
|
|
9463
9504
|
let zip64 = options.zip64 || zipWriter.options.zip64 || false;
|
|
9464
9505
|
if (directoryOffset >= MAX_32_BITS || directoryDataLength >= MAX_32_BITS || filesLength >= MAX_16_BITS) {
|
|
@@ -9472,9 +9513,11 @@
|
|
|
9472
9513
|
const directoryView = getDataView(directoryArray);
|
|
9473
9514
|
for (const [indexFileEntry, fileEntry] of Array.from(files.values()).entries()) {
|
|
9474
9515
|
const {
|
|
9516
|
+
offset: fileEntryOffset,
|
|
9475
9517
|
rawFilename,
|
|
9476
9518
|
rawExtraFieldZip64,
|
|
9477
9519
|
rawExtraFieldAES,
|
|
9520
|
+
rawExtraFieldNTFS,
|
|
9478
9521
|
rawExtraField,
|
|
9479
9522
|
rawComment,
|
|
9480
9523
|
versionMadeBy,
|
|
@@ -9483,27 +9526,27 @@
|
|
|
9483
9526
|
zip64,
|
|
9484
9527
|
msDosCompatible,
|
|
9485
9528
|
internalFileAttribute,
|
|
9486
|
-
externalFileAttribute
|
|
9529
|
+
externalFileAttribute,
|
|
9530
|
+
extendedTimestamp,
|
|
9531
|
+
lastModDate
|
|
9487
9532
|
} = fileEntry;
|
|
9488
9533
|
let rawExtraFieldExtendedTimestamp;
|
|
9489
|
-
|
|
9490
|
-
if (fileEntry.extendedTimestamp) {
|
|
9491
|
-
rawExtraFieldNTFS = fileEntry.rawExtraFieldNTFS;
|
|
9534
|
+
if (extendedTimestamp) {
|
|
9492
9535
|
rawExtraFieldExtendedTimestamp = new Uint8Array(9);
|
|
9493
9536
|
const extraFieldExtendedTimestampView = getDataView(rawExtraFieldExtendedTimestamp);
|
|
9494
9537
|
setUint16(extraFieldExtendedTimestampView, 0, EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP);
|
|
9495
|
-
setUint16(extraFieldExtendedTimestampView, 2, rawExtraFieldExtendedTimestamp
|
|
9538
|
+
setUint16(extraFieldExtendedTimestampView, 2, getLength(rawExtraFieldExtendedTimestamp) - 4);
|
|
9496
9539
|
setUint8(extraFieldExtendedTimestampView, 4, 0x1);
|
|
9497
|
-
setUint32(extraFieldExtendedTimestampView, 5, Math.floor(
|
|
9540
|
+
setUint32(extraFieldExtendedTimestampView, 5, Math.floor(lastModDate.getTime() / 1000));
|
|
9498
9541
|
} else {
|
|
9499
|
-
|
|
9542
|
+
rawExtraFieldExtendedTimestamp = new Uint8Array();
|
|
9500
9543
|
}
|
|
9501
|
-
const extraFieldLength = rawExtraFieldZip64
|
|
9544
|
+
const extraFieldLength = getLength(rawExtraFieldZip64, rawExtraFieldAES, rawExtraFieldExtendedTimestamp, rawExtraFieldNTFS, rawExtraField);
|
|
9502
9545
|
setUint32(directoryView, offset, CENTRAL_FILE_HEADER_SIGNATURE);
|
|
9503
9546
|
setUint16(directoryView, offset + 4, versionMadeBy);
|
|
9504
9547
|
arraySet(directoryArray, headerArray, offset + 6);
|
|
9505
9548
|
setUint16(directoryView, offset + 30, extraFieldLength);
|
|
9506
|
-
setUint16(directoryView, offset + 32, rawComment
|
|
9549
|
+
setUint16(directoryView, offset + 32, getLength(rawComment));
|
|
9507
9550
|
setUint16(directoryView, offset + 36, internalFileAttribute);
|
|
9508
9551
|
if (externalFileAttribute) {
|
|
9509
9552
|
setUint32(directoryView, offset + 38, externalFileAttribute);
|
|
@@ -9513,16 +9556,16 @@
|
|
|
9513
9556
|
if (zip64) {
|
|
9514
9557
|
setUint32(directoryView, offset + 42, MAX_32_BITS);
|
|
9515
9558
|
} else {
|
|
9516
|
-
setUint32(directoryView, offset + 42,
|
|
9559
|
+
setUint32(directoryView, offset + 42, fileEntryOffset);
|
|
9517
9560
|
}
|
|
9518
9561
|
arraySet(directoryArray, rawFilename, offset + 46);
|
|
9519
|
-
arraySet(directoryArray, rawExtraFieldZip64, offset + 46 + rawFilename
|
|
9520
|
-
arraySet(directoryArray, rawExtraFieldAES, offset + 46 + rawFilename
|
|
9521
|
-
arraySet(directoryArray, rawExtraFieldExtendedTimestamp, offset + 46 + rawFilename
|
|
9522
|
-
arraySet(directoryArray, rawExtraFieldNTFS, offset + 46 + rawFilename
|
|
9523
|
-
arraySet(directoryArray, rawExtraField, offset + 46 + rawFilename
|
|
9524
|
-
arraySet(directoryArray, rawComment, offset + 46 + rawFilename
|
|
9525
|
-
offset += 46 + rawFilename
|
|
9562
|
+
arraySet(directoryArray, rawExtraFieldZip64, offset + 46 + getLength(rawFilename));
|
|
9563
|
+
arraySet(directoryArray, rawExtraFieldAES, offset + 46 + getLength(rawFilename, rawExtraFieldZip64));
|
|
9564
|
+
arraySet(directoryArray, rawExtraFieldExtendedTimestamp, offset + 46 + getLength(rawFilename, rawExtraFieldZip64, rawExtraFieldAES));
|
|
9565
|
+
arraySet(directoryArray, rawExtraFieldNTFS, offset + 46 + getLength(rawFilename, rawExtraFieldZip64, rawExtraFieldAES, rawExtraFieldExtendedTimestamp));
|
|
9566
|
+
arraySet(directoryArray, rawExtraField, offset + 46 + getLength(rawFilename, rawExtraFieldZip64, rawExtraFieldAES, rawExtraFieldExtendedTimestamp, rawExtraFieldNTFS));
|
|
9567
|
+
arraySet(directoryArray, rawComment, offset + 46 + getLength(rawFilename) + extraFieldLength);
|
|
9568
|
+
offset += 46 + getLength(rawFilename, rawComment) + extraFieldLength;
|
|
9526
9569
|
if (options.onprogress) {
|
|
9527
9570
|
try {
|
|
9528
9571
|
await options.onprogress(indexFileEntry + 1, files.size, new Entry(fileEntry));
|
|
@@ -9553,9 +9596,10 @@
|
|
|
9553
9596
|
setUint16(directoryView, offset + 10, filesLength);
|
|
9554
9597
|
setUint32(directoryView, offset + 12, directoryDataLength);
|
|
9555
9598
|
setUint32(directoryView, offset + 16, directoryOffset);
|
|
9556
|
-
|
|
9557
|
-
|
|
9558
|
-
|
|
9599
|
+
const commentLength = getLength(comment);
|
|
9600
|
+
if (commentLength) {
|
|
9601
|
+
if (commentLength <= MAX_16_BITS) {
|
|
9602
|
+
setUint16(directoryView, offset + 20, commentLength);
|
|
9559
9603
|
} else {
|
|
9560
9604
|
throw new Error(ERR_INVALID_COMMENT);
|
|
9561
9605
|
}
|
|
@@ -9563,7 +9607,7 @@
|
|
|
9563
9607
|
const { writable } = zipWriter.writer;
|
|
9564
9608
|
await initStream(zipWriter.writer);
|
|
9565
9609
|
await writeData(writable, directoryArray);
|
|
9566
|
-
if (
|
|
9610
|
+
if (commentLength) {
|
|
9567
9611
|
await writeData(writable, comment);
|
|
9568
9612
|
}
|
|
9569
9613
|
}
|
|
@@ -9579,7 +9623,7 @@
|
|
|
9579
9623
|
async function writeData(writable, array) {
|
|
9580
9624
|
const streamWriter = writable.getWriter();
|
|
9581
9625
|
await streamWriter.ready;
|
|
9582
|
-
writable.size += array
|
|
9626
|
+
writable.size += getLength(array);
|
|
9583
9627
|
await streamWriter.write(array);
|
|
9584
9628
|
streamWriter.releaseLock();
|
|
9585
9629
|
}
|
|
@@ -9622,6 +9666,12 @@
|
|
|
9622
9666
|
return new DataView(array.buffer);
|
|
9623
9667
|
}
|
|
9624
9668
|
|
|
9669
|
+
function getLength(...arrayLikes) {
|
|
9670
|
+
let result = 0;
|
|
9671
|
+
arrayLikes.forEach(arrayLike => arrayLike && (result += arrayLike.length));
|
|
9672
|
+
return result;
|
|
9673
|
+
}
|
|
9674
|
+
|
|
9625
9675
|
/*
|
|
9626
9676
|
Copyright (c) 2022 Gildas Lormeau. All rights reserved.
|
|
9627
9677
|
|
|
@@ -10269,7 +10319,7 @@
|
|
|
10269
10319
|
// ignored
|
|
10270
10320
|
}
|
|
10271
10321
|
configure({ baseURL });
|
|
10272
|
-
|
|
10322
|
+
e(configure);
|
|
10273
10323
|
|
|
10274
10324
|
/// <reference types="./index.d.ts" />
|
|
10275
10325
|
|