5351 lines
239 KiB
JavaScript
5351 lines
239 KiB
JavaScript
|
|
!(function (e, t) {
|
||
|
|
if ("object" == typeof exports && "object" == typeof module) module.exports = t()
|
||
|
|
else if ("function" == typeof define && define.amd) define([], t)
|
||
|
|
else {
|
||
|
|
var n = t()
|
||
|
|
for (var r in n) ("object" == typeof exports ? exports : e)[r] = n[r]
|
||
|
|
}
|
||
|
|
})(globalThis, () =>
|
||
|
|
(() => {
|
||
|
|
"use strict"
|
||
|
|
var e = {
|
||
|
|
d: (t, n) => {
|
||
|
|
for (var r in n) e.o(n, r) && !e.o(t, r) && Object.defineProperty(t, r, { enumerable: !0, get: n[r] })
|
||
|
|
},
|
||
|
|
o: (e, t) => Object.prototype.hasOwnProperty.call(e, t)
|
||
|
|
},
|
||
|
|
t = {}
|
||
|
|
e.d(t, { default: () => oi })
|
||
|
|
const n = 15,
|
||
|
|
r = 573,
|
||
|
|
i = -1,
|
||
|
|
s = 0,
|
||
|
|
a = 4,
|
||
|
|
o = 0,
|
||
|
|
c = 1,
|
||
|
|
l = -2
|
||
|
|
function d(e) {
|
||
|
|
return f(e.map(([e, t]) => new Array(e).fill(t, 0, e)))
|
||
|
|
}
|
||
|
|
function f(e) {
|
||
|
|
return e.reduce((e, t) => e.concat(Array.isArray(t) ? f(t) : t), [])
|
||
|
|
}
|
||
|
|
const u = [0, 1, 2, 3].concat(
|
||
|
|
...d([
|
||
|
|
[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 p() {
|
||
|
|
const e = this
|
||
|
|
function t(e, t) {
|
||
|
|
let n = 0
|
||
|
|
do {
|
||
|
|
;(n |= 1 & e), (e >>>= 1), (n <<= 1)
|
||
|
|
} while (--t > 0)
|
||
|
|
return n >>> 1
|
||
|
|
}
|
||
|
|
e.build_tree = function (i) {
|
||
|
|
const s = e.dyn_tree,
|
||
|
|
a = e.stat_desc.static_tree,
|
||
|
|
o = e.stat_desc.elems
|
||
|
|
let c,
|
||
|
|
l,
|
||
|
|
d,
|
||
|
|
f = -1
|
||
|
|
for (i.heap_len = 0, i.heap_max = r, c = 0; c < o; c++)
|
||
|
|
0 !== s[2 * c] ? ((i.heap[++i.heap_len] = f = c), (i.depth[c] = 0)) : (s[2 * c + 1] = 0)
|
||
|
|
for (; i.heap_len < 2; )
|
||
|
|
(d = i.heap[++i.heap_len] = f < 2 ? ++f : 0), (s[2 * d] = 1), (i.depth[d] = 0), i.opt_len--, a && (i.static_len -= a[2 * d + 1])
|
||
|
|
for (e.max_code = f, c = Math.floor(i.heap_len / 2); c >= 1; c--) i.pqdownheap(s, c)
|
||
|
|
d = o
|
||
|
|
do {
|
||
|
|
;(c = i.heap[1]),
|
||
|
|
(i.heap[1] = i.heap[i.heap_len--]),
|
||
|
|
i.pqdownheap(s, 1),
|
||
|
|
(l = i.heap[1]),
|
||
|
|
(i.heap[--i.heap_max] = c),
|
||
|
|
(i.heap[--i.heap_max] = l),
|
||
|
|
(s[2 * d] = s[2 * c] + s[2 * l]),
|
||
|
|
(i.depth[d] = Math.max(i.depth[c], i.depth[l]) + 1),
|
||
|
|
(s[2 * c + 1] = s[2 * l + 1] = d),
|
||
|
|
(i.heap[1] = d++),
|
||
|
|
i.pqdownheap(s, 1)
|
||
|
|
} while (i.heap_len >= 2)
|
||
|
|
;(i.heap[--i.heap_max] = i.heap[1]),
|
||
|
|
(function (t) {
|
||
|
|
const i = e.dyn_tree,
|
||
|
|
s = e.stat_desc.static_tree,
|
||
|
|
a = e.stat_desc.extra_bits,
|
||
|
|
o = e.stat_desc.extra_base,
|
||
|
|
c = e.stat_desc.max_length
|
||
|
|
let l,
|
||
|
|
d,
|
||
|
|
f,
|
||
|
|
u,
|
||
|
|
p,
|
||
|
|
m,
|
||
|
|
w = 0
|
||
|
|
for (u = 0; u <= n; u++) t.bl_count[u] = 0
|
||
|
|
for (i[2 * t.heap[t.heap_max] + 1] = 0, l = t.heap_max + 1; l < r; l++)
|
||
|
|
(d = t.heap[l]),
|
||
|
|
(u = i[2 * i[2 * d + 1] + 1] + 1),
|
||
|
|
u > c && ((u = c), w++),
|
||
|
|
(i[2 * d + 1] = u),
|
||
|
|
d > e.max_code ||
|
||
|
|
(t.bl_count[u]++,
|
||
|
|
(p = 0),
|
||
|
|
d >= o && (p = a[d - o]),
|
||
|
|
(m = i[2 * d]),
|
||
|
|
(t.opt_len += m * (u + p)),
|
||
|
|
s && (t.static_len += m * (s[2 * d + 1] + p)))
|
||
|
|
if (0 !== w) {
|
||
|
|
do {
|
||
|
|
for (u = c - 1; 0 === t.bl_count[u]; ) u--
|
||
|
|
t.bl_count[u]--, (t.bl_count[u + 1] += 2), t.bl_count[c]--, (w -= 2)
|
||
|
|
} while (w > 0)
|
||
|
|
for (u = c; 0 !== u; u--)
|
||
|
|
for (d = t.bl_count[u]; 0 !== d; )
|
||
|
|
(f = t.heap[--l]), f > e.max_code || (i[2 * f + 1] != u && ((t.opt_len += (u - i[2 * f + 1]) * i[2 * f]), (i[2 * f + 1] = u)), d--)
|
||
|
|
}
|
||
|
|
})(i),
|
||
|
|
(function (e, r, i) {
|
||
|
|
const s = []
|
||
|
|
let a,
|
||
|
|
o,
|
||
|
|
c,
|
||
|
|
l = 0
|
||
|
|
for (a = 1; a <= n; a++) s[a] = l = (l + i[a - 1]) << 1
|
||
|
|
for (o = 0; o <= r; o++) (c = e[2 * o + 1]), 0 !== c && (e[2 * o] = t(s[c]++, c))
|
||
|
|
})(s, e.max_code, i.bl_count)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
function m(e, t, n, r, i) {
|
||
|
|
const s = this
|
||
|
|
;(s.static_tree = e), (s.extra_bits = t), (s.extra_base = n), (s.elems = r), (s.max_length = i)
|
||
|
|
}
|
||
|
|
;(p._length_code = [0, 1, 2, 3, 4, 5, 6, 7].concat(
|
||
|
|
...d([
|
||
|
|
[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]
|
||
|
|
])
|
||
|
|
)),
|
||
|
|
(p.base_length = [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 0]),
|
||
|
|
(p.base_dist = [
|
||
|
|
0, 1, 2, 3, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128, 192, 256, 384, 512, 768, 1024, 1536, 2048, 3072, 4096, 6144, 8192, 12288, 16384, 24576
|
||
|
|
]),
|
||
|
|
(p.d_code = function (e) {
|
||
|
|
return e < 256 ? u[e] : u[256 + (e >>> 7)]
|
||
|
|
}),
|
||
|
|
(p.extra_lbits = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0]),
|
||
|
|
(p.extra_dbits = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13]),
|
||
|
|
(p.extra_blbits = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7]),
|
||
|
|
(p.bl_order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15])
|
||
|
|
const w = d([
|
||
|
|
[144, 8],
|
||
|
|
[112, 9],
|
||
|
|
[24, 7],
|
||
|
|
[8, 8]
|
||
|
|
])
|
||
|
|
m.static_ltree = f(
|
||
|
|
[
|
||
|
|
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, w[t]])
|
||
|
|
)
|
||
|
|
const h = d([[30, 5]])
|
||
|
|
function x(e, t, n, r, i) {
|
||
|
|
const s = this
|
||
|
|
;(s.good_length = e), (s.max_lazy = t), (s.nice_length = n), (s.max_chain = r), (s.func = i)
|
||
|
|
}
|
||
|
|
;(m.static_dtree = f(
|
||
|
|
[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, h[t]])
|
||
|
|
)),
|
||
|
|
(m.static_l_desc = new m(m.static_ltree, p.extra_lbits, 257, 286, n)),
|
||
|
|
(m.static_d_desc = new m(m.static_dtree, p.extra_dbits, 0, 30, n)),
|
||
|
|
(m.static_bl_desc = new m(null, p.extra_blbits, 0, 19, 7))
|
||
|
|
const g = [
|
||
|
|
new x(0, 0, 0, 0, 0),
|
||
|
|
new x(4, 4, 8, 4, 1),
|
||
|
|
new x(4, 5, 16, 8, 1),
|
||
|
|
new x(4, 6, 32, 32, 1),
|
||
|
|
new x(4, 4, 16, 16, 2),
|
||
|
|
new x(8, 16, 32, 32, 2),
|
||
|
|
new x(8, 16, 128, 128, 2),
|
||
|
|
new x(8, 32, 128, 256, 2),
|
||
|
|
new x(32, 128, 258, 1024, 2),
|
||
|
|
new x(32, 258, 258, 4096, 2)
|
||
|
|
],
|
||
|
|
b = ["need dictionary", "stream end", "", "", "stream error", "data error", "", "buffer error", "", ""],
|
||
|
|
v = 113,
|
||
|
|
y = 666,
|
||
|
|
_ = 262
|
||
|
|
function k(e, t, n, r) {
|
||
|
|
const i = e[2 * t],
|
||
|
|
s = e[2 * n]
|
||
|
|
return i < s || (i == s && r[t] <= r[n])
|
||
|
|
}
|
||
|
|
function z() {
|
||
|
|
const e = this
|
||
|
|
let t, n, r, d, f, u, w, h, x, z, S, A, C, W, F, E, U, D, j, q, T, O, R, I, L, B, M, K, N, V, P, H, Y
|
||
|
|
const X = new p(),
|
||
|
|
Z = new p(),
|
||
|
|
J = new p()
|
||
|
|
let G, $, Q, ee, te, ne
|
||
|
|
function re() {
|
||
|
|
let t
|
||
|
|
for (t = 0; t < 286; t++) P[2 * t] = 0
|
||
|
|
for (t = 0; t < 30; t++) H[2 * t] = 0
|
||
|
|
for (t = 0; t < 19; t++) Y[2 * t] = 0
|
||
|
|
;(P[512] = 1), (e.opt_len = e.static_len = 0), ($ = Q = 0)
|
||
|
|
}
|
||
|
|
function ie(e, t) {
|
||
|
|
let n,
|
||
|
|
r = -1,
|
||
|
|
i = e[1],
|
||
|
|
s = 0,
|
||
|
|
a = 7,
|
||
|
|
o = 4
|
||
|
|
0 === i && ((a = 138), (o = 3)), (e[2 * (t + 1) + 1] = 65535)
|
||
|
|
for (let c = 0; c <= t; c++)
|
||
|
|
(n = i),
|
||
|
|
(i = e[2 * (c + 1) + 1]),
|
||
|
|
(++s < a && n == i) ||
|
||
|
|
(s < o ? (Y[2 * n] += s) : 0 !== n ? (n != r && Y[2 * n]++, Y[32]++) : s <= 10 ? Y[34]++ : Y[36]++,
|
||
|
|
(s = 0),
|
||
|
|
(r = n),
|
||
|
|
0 === i ? ((a = 138), (o = 3)) : n == i ? ((a = 6), (o = 3)) : ((a = 7), (o = 4)))
|
||
|
|
}
|
||
|
|
function se(t) {
|
||
|
|
e.pending_buf[e.pending++] = t
|
||
|
|
}
|
||
|
|
function ae(e) {
|
||
|
|
se(255 & e), se((e >>> 8) & 255)
|
||
|
|
}
|
||
|
|
function oe(e, t) {
|
||
|
|
let n
|
||
|
|
const r = t
|
||
|
|
ne > 16 - r ? ((n = e), (te |= (n << ne) & 65535), ae(te), (te = n >>> (16 - ne)), (ne += r - 16)) : ((te |= (e << ne) & 65535), (ne += r))
|
||
|
|
}
|
||
|
|
function ce(e, t) {
|
||
|
|
const n = 2 * e
|
||
|
|
oe(65535 & t[n], 65535 & t[n + 1])
|
||
|
|
}
|
||
|
|
function le(e, t) {
|
||
|
|
let n,
|
||
|
|
r,
|
||
|
|
i = -1,
|
||
|
|
s = e[1],
|
||
|
|
a = 0,
|
||
|
|
o = 7,
|
||
|
|
c = 4
|
||
|
|
for (0 === s && ((o = 138), (c = 3)), n = 0; n <= t; n++)
|
||
|
|
if (((r = s), (s = e[2 * (n + 1) + 1]), !(++a < o && r == s))) {
|
||
|
|
if (a < c)
|
||
|
|
do {
|
||
|
|
ce(r, Y)
|
||
|
|
} while (0 != --a)
|
||
|
|
else 0 !== r ? (r != i && (ce(r, Y), a--), ce(16, Y), oe(a - 3, 2)) : a <= 10 ? (ce(17, Y), oe(a - 3, 3)) : (ce(18, Y), oe(a - 11, 7))
|
||
|
|
;(a = 0), (i = r), 0 === s ? ((o = 138), (c = 3)) : r == s ? ((o = 6), (c = 3)) : ((o = 7), (c = 4))
|
||
|
|
}
|
||
|
|
}
|
||
|
|
function de() {
|
||
|
|
16 == ne ? (ae(te), (te = 0), (ne = 0)) : ne >= 8 && (se(255 & te), (te >>>= 8), (ne -= 8))
|
||
|
|
}
|
||
|
|
function fe(t, n) {
|
||
|
|
let r, i, s
|
||
|
|
if (
|
||
|
|
((e.dist_buf[$] = t),
|
||
|
|
(e.lc_buf[$] = 255 & n),
|
||
|
|
$++,
|
||
|
|
0 === t ? P[2 * n]++ : (Q++, t--, P[2 * (p._length_code[n] + 256 + 1)]++, H[2 * p.d_code(t)]++),
|
||
|
|
0 == (8191 & $) && M > 2)
|
||
|
|
) {
|
||
|
|
for (r = 8 * $, i = T - U, s = 0; s < 30; s++) r += H[2 * s] * (5 + p.extra_dbits[s])
|
||
|
|
if (((r >>>= 3), Q < Math.floor($ / 2) && r < Math.floor(i / 2))) return !0
|
||
|
|
}
|
||
|
|
return $ == G - 1
|
||
|
|
}
|
||
|
|
function ue(t, n) {
|
||
|
|
let r,
|
||
|
|
i,
|
||
|
|
s,
|
||
|
|
a,
|
||
|
|
o = 0
|
||
|
|
if (0 !== $)
|
||
|
|
do {
|
||
|
|
;(r = e.dist_buf[o]),
|
||
|
|
(i = e.lc_buf[o]),
|
||
|
|
o++,
|
||
|
|
0 === r
|
||
|
|
? ce(i, t)
|
||
|
|
: ((s = p._length_code[i]),
|
||
|
|
ce(s + 256 + 1, t),
|
||
|
|
(a = p.extra_lbits[s]),
|
||
|
|
0 !== a && ((i -= p.base_length[s]), oe(i, a)),
|
||
|
|
r--,
|
||
|
|
(s = p.d_code(r)),
|
||
|
|
ce(s, n),
|
||
|
|
(a = p.extra_dbits[s]),
|
||
|
|
0 !== a && ((r -= p.base_dist[s]), oe(r, a)))
|
||
|
|
} while (o < $)
|
||
|
|
ce(256, t), (ee = t[513])
|
||
|
|
}
|
||
|
|
function pe() {
|
||
|
|
ne > 8 ? ae(te) : ne > 0 && se(255 & te), (te = 0), (ne = 0)
|
||
|
|
}
|
||
|
|
function me(t, n, r) {
|
||
|
|
oe(0 + (r ? 1 : 0), 3),
|
||
|
|
(function (t, n, r) {
|
||
|
|
pe(), (ee = 8), ae(n), ae(~n), e.pending_buf.set(h.subarray(t, t + n), e.pending), (e.pending += n)
|
||
|
|
})(t, n)
|
||
|
|
}
|
||
|
|
function we(n) {
|
||
|
|
;(function (t, n, r) {
|
||
|
|
let i,
|
||
|
|
s,
|
||
|
|
a = 0
|
||
|
|
M > 0
|
||
|
|
? (X.build_tree(e),
|
||
|
|
Z.build_tree(e),
|
||
|
|
(a = (function () {
|
||
|
|
let t
|
||
|
|
for (ie(P, X.max_code), ie(H, Z.max_code), J.build_tree(e), t = 18; t >= 3 && 0 === Y[2 * p.bl_order[t] + 1]; t--);
|
||
|
|
return (e.opt_len += 3 * (t + 1) + 5 + 5 + 4), t
|
||
|
|
})()),
|
||
|
|
(i = (e.opt_len + 3 + 7) >>> 3),
|
||
|
|
(s = (e.static_len + 3 + 7) >>> 3),
|
||
|
|
s <= i && (i = s))
|
||
|
|
: (i = s = n + 5),
|
||
|
|
n + 4 <= i && -1 != t
|
||
|
|
? me(t, n, r)
|
||
|
|
: s == i
|
||
|
|
? (oe(2 + (r ? 1 : 0), 3), ue(m.static_ltree, m.static_dtree))
|
||
|
|
: (oe(4 + (r ? 1 : 0), 3),
|
||
|
|
(function (e, t, n) {
|
||
|
|
let r
|
||
|
|
for (oe(e - 257, 5), oe(t - 1, 5), oe(n - 4, 4), r = 0; r < n; r++) oe(Y[2 * p.bl_order[r] + 1], 3)
|
||
|
|
le(P, e - 1), le(H, t - 1)
|
||
|
|
})(X.max_code + 1, Z.max_code + 1, a + 1),
|
||
|
|
ue(P, H)),
|
||
|
|
re(),
|
||
|
|
r && pe()
|
||
|
|
})(U >= 0 ? U : -1, T - U, n),
|
||
|
|
(U = T),
|
||
|
|
t.flush_pending()
|
||
|
|
}
|
||
|
|
function he() {
|
||
|
|
let e, n, r, i
|
||
|
|
do {
|
||
|
|
if (((i = x - R - T), 0 === i && 0 === T && 0 === R)) i = f
|
||
|
|
else if (-1 == i) i--
|
||
|
|
else if (T >= f + f - _) {
|
||
|
|
h.set(h.subarray(f, f + f), 0), (O -= f), (T -= f), (U -= f), (e = C), (r = e)
|
||
|
|
do {
|
||
|
|
;(n = 65535 & S[--r]), (S[r] = n >= f ? n - f : 0)
|
||
|
|
} while (0 != --e)
|
||
|
|
;(e = f), (r = e)
|
||
|
|
do {
|
||
|
|
;(n = 65535 & z[--r]), (z[r] = n >= f ? n - f : 0)
|
||
|
|
} while (0 != --e)
|
||
|
|
i += f
|
||
|
|
}
|
||
|
|
if (0 === t.avail_in) return
|
||
|
|
;(e = t.read_buf(h, T + R, i)), (R += e), R >= 3 && ((A = 255 & h[T]), (A = ((A << E) ^ (255 & h[T + 1])) & F))
|
||
|
|
} while (R < _ && 0 !== t.avail_in)
|
||
|
|
}
|
||
|
|
function xe(e) {
|
||
|
|
let t,
|
||
|
|
n,
|
||
|
|
r = L,
|
||
|
|
i = T,
|
||
|
|
s = I
|
||
|
|
const a = T > f - _ ? T - (f - _) : 0
|
||
|
|
let o = V
|
||
|
|
const c = w,
|
||
|
|
l = T + 258
|
||
|
|
let d = h[i + s - 1],
|
||
|
|
u = h[i + s]
|
||
|
|
I >= N && (r >>= 2), o > R && (o = R)
|
||
|
|
do {
|
||
|
|
if (((t = e), h[t + s] == u && h[t + s - 1] == d && h[t] == h[i] && h[++t] == h[i + 1])) {
|
||
|
|
;(i += 2), t++
|
||
|
|
do {} while (
|
||
|
|
h[++i] == h[++t] &&
|
||
|
|
h[++i] == h[++t] &&
|
||
|
|
h[++i] == h[++t] &&
|
||
|
|
h[++i] == h[++t] &&
|
||
|
|
h[++i] == h[++t] &&
|
||
|
|
h[++i] == h[++t] &&
|
||
|
|
h[++i] == h[++t] &&
|
||
|
|
h[++i] == h[++t] &&
|
||
|
|
i < l
|
||
|
|
)
|
||
|
|
if (((n = 258 - (l - i)), (i = l - 258), n > s)) {
|
||
|
|
if (((O = e), (s = n), n >= o)) break
|
||
|
|
;(d = h[i + s - 1]), (u = h[i + s])
|
||
|
|
}
|
||
|
|
}
|
||
|
|
} while ((e = 65535 & z[e & c]) > a && 0 != --r)
|
||
|
|
return s <= R ? s : R
|
||
|
|
}
|
||
|
|
;(e.depth = []),
|
||
|
|
(e.bl_count = []),
|
||
|
|
(e.heap = []),
|
||
|
|
(P = []),
|
||
|
|
(H = []),
|
||
|
|
(Y = []),
|
||
|
|
(e.pqdownheap = function (t, n) {
|
||
|
|
const r = e.heap,
|
||
|
|
i = r[n]
|
||
|
|
let s = n << 1
|
||
|
|
for (; s <= e.heap_len && (s < e.heap_len && k(t, r[s + 1], r[s], e.depth) && s++, !k(t, i, r[s], e.depth)); )
|
||
|
|
(r[n] = r[s]), (n = s), (s <<= 1)
|
||
|
|
r[n] = i
|
||
|
|
}),
|
||
|
|
(e.deflateInit = function (t, a, c, p, b, y) {
|
||
|
|
return (
|
||
|
|
p || (p = 8),
|
||
|
|
b || (b = 8),
|
||
|
|
y || (y = 0),
|
||
|
|
(t.msg = null),
|
||
|
|
a == i && (a = 6),
|
||
|
|
b < 1 || b > 9 || 8 != p || c < 9 || c > 15 || a < 0 || a > 9 || y < 0 || y > 2
|
||
|
|
? l
|
||
|
|
: ((t.dstate = e),
|
||
|
|
(u = c),
|
||
|
|
(f = 1 << u),
|
||
|
|
(w = f - 1),
|
||
|
|
(W = b + 7),
|
||
|
|
(C = 1 << W),
|
||
|
|
(F = C - 1),
|
||
|
|
(E = Math.floor((W + 3 - 1) / 3)),
|
||
|
|
(h = new Uint8Array(2 * f)),
|
||
|
|
(z = []),
|
||
|
|
(S = []),
|
||
|
|
(G = 1 << (b + 6)),
|
||
|
|
(e.pending_buf = new Uint8Array(4 * G)),
|
||
|
|
(r = 4 * G),
|
||
|
|
(e.dist_buf = new Uint16Array(G)),
|
||
|
|
(e.lc_buf = new Uint8Array(G)),
|
||
|
|
(M = a),
|
||
|
|
(K = y),
|
||
|
|
(function (t) {
|
||
|
|
return (
|
||
|
|
(t.total_in = t.total_out = 0),
|
||
|
|
(t.msg = null),
|
||
|
|
(e.pending = 0),
|
||
|
|
(e.pending_out = 0),
|
||
|
|
(n = v),
|
||
|
|
(d = s),
|
||
|
|
(X.dyn_tree = P),
|
||
|
|
(X.stat_desc = m.static_l_desc),
|
||
|
|
(Z.dyn_tree = H),
|
||
|
|
(Z.stat_desc = m.static_d_desc),
|
||
|
|
(J.dyn_tree = Y),
|
||
|
|
(J.stat_desc = m.static_bl_desc),
|
||
|
|
(te = 0),
|
||
|
|
(ne = 0),
|
||
|
|
(ee = 8),
|
||
|
|
re(),
|
||
|
|
(function () {
|
||
|
|
;(x = 2 * f), (S[C - 1] = 0)
|
||
|
|
for (let e = 0; e < C - 1; e++) S[e] = 0
|
||
|
|
;(B = g[M].max_lazy),
|
||
|
|
(N = g[M].good_length),
|
||
|
|
(V = g[M].nice_length),
|
||
|
|
(L = g[M].max_chain),
|
||
|
|
(T = 0),
|
||
|
|
(U = 0),
|
||
|
|
(R = 0),
|
||
|
|
(D = I = 2),
|
||
|
|
(q = 0),
|
||
|
|
(A = 0)
|
||
|
|
})(),
|
||
|
|
o
|
||
|
|
)
|
||
|
|
})(t))
|
||
|
|
)
|
||
|
|
}),
|
||
|
|
(e.deflateEnd = function () {
|
||
|
|
return 42 != n && n != v && n != y
|
||
|
|
? l
|
||
|
|
: ((e.lc_buf = null), (e.dist_buf = null), (e.pending_buf = null), (S = null), (z = null), (h = null), (e.dstate = null), n == v ? -3 : o)
|
||
|
|
}),
|
||
|
|
(e.deflateParams = function (e, t, n) {
|
||
|
|
let r = o
|
||
|
|
return (
|
||
|
|
t == i && (t = 6),
|
||
|
|
t < 0 || t > 9 || n < 0 || n > 2
|
||
|
|
? l
|
||
|
|
: (g[M].func != g[t].func && 0 !== e.total_in && (r = e.deflate(1)),
|
||
|
|
M != t && ((M = t), (B = g[M].max_lazy), (N = g[M].good_length), (V = g[M].nice_length), (L = g[M].max_chain)),
|
||
|
|
(K = n),
|
||
|
|
r)
|
||
|
|
)
|
||
|
|
}),
|
||
|
|
(e.deflateSetDictionary = function (e, t, r) {
|
||
|
|
let i,
|
||
|
|
s = r,
|
||
|
|
a = 0
|
||
|
|
if (!t || 42 != n) return l
|
||
|
|
if (s < 3) return o
|
||
|
|
for (
|
||
|
|
s > f - _ && ((s = f - _), (a = r - s)),
|
||
|
|
h.set(t.subarray(a, a + s), 0),
|
||
|
|
T = s,
|
||
|
|
U = s,
|
||
|
|
A = 255 & h[0],
|
||
|
|
A = ((A << E) ^ (255 & h[1])) & F,
|
||
|
|
i = 0;
|
||
|
|
i <= s - 3;
|
||
|
|
i++
|
||
|
|
)
|
||
|
|
(A = ((A << E) ^ (255 & h[i + 2])) & F), (z[i & w] = S[A]), (S[A] = i)
|
||
|
|
return o
|
||
|
|
}),
|
||
|
|
(e.deflate = function (i, p) {
|
||
|
|
let x, k, W, L, N
|
||
|
|
if (p > a || p < 0) return l
|
||
|
|
if (!i.next_out || (!i.next_in && 0 !== i.avail_in) || (n == y && p != a)) return (i.msg = b[2 - l]), l
|
||
|
|
if (0 === i.avail_out) return (i.msg = b[7]), -5
|
||
|
|
var V
|
||
|
|
if (
|
||
|
|
((t = i),
|
||
|
|
(L = d),
|
||
|
|
(d = p),
|
||
|
|
42 == n &&
|
||
|
|
((k = (8 + ((u - 8) << 4)) << 8),
|
||
|
|
(W = ((M - 1) & 255) >> 1),
|
||
|
|
W > 3 && (W = 3),
|
||
|
|
(k |= W << 6),
|
||
|
|
0 !== T && (k |= 32),
|
||
|
|
(k += 31 - (k % 31)),
|
||
|
|
(n = v),
|
||
|
|
se(((V = k) >> 8) & 255),
|
||
|
|
se(255 & V)),
|
||
|
|
0 !== e.pending)
|
||
|
|
) {
|
||
|
|
if ((t.flush_pending(), 0 === t.avail_out)) return (d = -1), o
|
||
|
|
} else if (0 === t.avail_in && p <= L && p != a) return (t.msg = b[7]), -5
|
||
|
|
if (n == y && 0 !== t.avail_in) return (i.msg = b[7]), -5
|
||
|
|
if (0 !== t.avail_in || 0 !== R || (p != s && n != y)) {
|
||
|
|
switch (((N = -1), g[M].func)) {
|
||
|
|
case 0:
|
||
|
|
N = (function (e) {
|
||
|
|
let n,
|
||
|
|
i = 65535
|
||
|
|
for (i > r - 5 && (i = r - 5); ; ) {
|
||
|
|
if (R <= 1) {
|
||
|
|
if ((he(), 0 === R && e == s)) return 0
|
||
|
|
if (0 === R) break
|
||
|
|
}
|
||
|
|
if (((T += R), (R = 0), (n = U + i), (0 === T || T >= n) && ((R = T - n), (T = n), we(!1), 0 === t.avail_out))) return 0
|
||
|
|
if (T - U >= f - _ && (we(!1), 0 === t.avail_out)) return 0
|
||
|
|
}
|
||
|
|
return we(e == a), 0 === t.avail_out ? (e == a ? 2 : 0) : e == a ? 3 : 1
|
||
|
|
})(p)
|
||
|
|
break
|
||
|
|
case 1:
|
||
|
|
N = (function (e) {
|
||
|
|
let n,
|
||
|
|
r = 0
|
||
|
|
for (;;) {
|
||
|
|
if (R < _) {
|
||
|
|
if ((he(), R < _ && e == s)) return 0
|
||
|
|
if (0 === R) break
|
||
|
|
}
|
||
|
|
if (
|
||
|
|
(R >= 3 && ((A = ((A << E) ^ (255 & h[T + 2])) & F), (r = 65535 & S[A]), (z[T & w] = S[A]), (S[A] = T)),
|
||
|
|
0 !== r && ((T - r) & 65535) <= f - _ && 2 != K && (D = xe(r)),
|
||
|
|
D >= 3)
|
||
|
|
)
|
||
|
|
if (((n = fe(T - O, D - 3)), (R -= D), D <= B && R >= 3)) {
|
||
|
|
D--
|
||
|
|
do {
|
||
|
|
T++, (A = ((A << E) ^ (255 & h[T + 2])) & F), (r = 65535 & S[A]), (z[T & w] = S[A]), (S[A] = T)
|
||
|
|
} while (0 != --D)
|
||
|
|
T++
|
||
|
|
} else (T += D), (D = 0), (A = 255 & h[T]), (A = ((A << E) ^ (255 & h[T + 1])) & F)
|
||
|
|
else (n = fe(0, 255 & h[T])), R--, T++
|
||
|
|
if (n && (we(!1), 0 === t.avail_out)) return 0
|
||
|
|
}
|
||
|
|
return we(e == a), 0 === t.avail_out ? (e == a ? 2 : 0) : e == a ? 3 : 1
|
||
|
|
})(p)
|
||
|
|
break
|
||
|
|
case 2:
|
||
|
|
N = (function (e) {
|
||
|
|
let n,
|
||
|
|
r,
|
||
|
|
i = 0
|
||
|
|
for (;;) {
|
||
|
|
if (R < _) {
|
||
|
|
if ((he(), R < _ && e == s)) return 0
|
||
|
|
if (0 === R) break
|
||
|
|
}
|
||
|
|
if (
|
||
|
|
(R >= 3 && ((A = ((A << E) ^ (255 & h[T + 2])) & F), (i = 65535 & S[A]), (z[T & w] = S[A]), (S[A] = T)),
|
||
|
|
(I = D),
|
||
|
|
(j = O),
|
||
|
|
(D = 2),
|
||
|
|
0 !== i &&
|
||
|
|
I < B &&
|
||
|
|
((T - i) & 65535) <= f - _ &&
|
||
|
|
(2 != K && (D = xe(i)), D <= 5 && (1 == K || (3 == D && T - O > 4096)) && (D = 2)),
|
||
|
|
I >= 3 && D <= I)
|
||
|
|
) {
|
||
|
|
;(r = T + R - 3), (n = fe(T - 1 - j, I - 3)), (R -= I - 1), (I -= 2)
|
||
|
|
do {
|
||
|
|
++T <= r && ((A = ((A << E) ^ (255 & h[T + 2])) & F), (i = 65535 & S[A]), (z[T & w] = S[A]), (S[A] = T))
|
||
|
|
} while (0 != --I)
|
||
|
|
if (((q = 0), (D = 2), T++, n && (we(!1), 0 === t.avail_out))) return 0
|
||
|
|
} else if (0 !== q) {
|
||
|
|
if (((n = fe(0, 255 & h[T - 1])), n && we(!1), T++, R--, 0 === t.avail_out)) return 0
|
||
|
|
} else (q = 1), T++, R--
|
||
|
|
}
|
||
|
|
return 0 !== q && ((n = fe(0, 255 & h[T - 1])), (q = 0)), we(e == a), 0 === t.avail_out ? (e == a ? 2 : 0) : e == a ? 3 : 1
|
||
|
|
})(p)
|
||
|
|
}
|
||
|
|
if (((2 != N && 3 != N) || (n = y), 0 == N || 2 == N)) return 0 === t.avail_out && (d = -1), o
|
||
|
|
if (1 == N) {
|
||
|
|
if (1 == p) oe(2, 3), ce(256, m.static_ltree), de(), 1 + ee + 10 - ne < 9 && (oe(2, 3), ce(256, m.static_ltree), de()), (ee = 7)
|
||
|
|
else if ((me(0, 0, !1), 3 == p)) for (x = 0; x < C; x++) S[x] = 0
|
||
|
|
if ((t.flush_pending(), 0 === t.avail_out)) return (d = -1), o
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return p != a ? o : c
|
||
|
|
})
|
||
|
|
}
|
||
|
|
function S() {
|
||
|
|
const e = this
|
||
|
|
;(e.next_in_index = 0), (e.next_out_index = 0), (e.avail_in = 0), (e.total_in = 0), (e.avail_out = 0), (e.total_out = 0)
|
||
|
|
}
|
||
|
|
S.prototype = {
|
||
|
|
deflateInit(e, t) {
|
||
|
|
const r = this
|
||
|
|
return (r.dstate = new z()), t || (t = n), r.dstate.deflateInit(r, e, t)
|
||
|
|
},
|
||
|
|
deflate(e) {
|
||
|
|
const t = this
|
||
|
|
return t.dstate ? t.dstate.deflate(t, e) : l
|
||
|
|
},
|
||
|
|
deflateEnd() {
|
||
|
|
const e = this
|
||
|
|
if (!e.dstate) return l
|
||
|
|
const t = e.dstate.deflateEnd()
|
||
|
|
return (e.dstate = null), t
|
||
|
|
},
|
||
|
|
deflateParams(e, t) {
|
||
|
|
const n = this
|
||
|
|
return n.dstate ? n.dstate.deflateParams(n, e, t) : l
|
||
|
|
},
|
||
|
|
deflateSetDictionary(e, t) {
|
||
|
|
const n = this
|
||
|
|
return n.dstate ? n.dstate.deflateSetDictionary(n, e, t) : l
|
||
|
|
},
|
||
|
|
read_buf(e, t, n) {
|
||
|
|
const r = this
|
||
|
|
let i = r.avail_in
|
||
|
|
return (
|
||
|
|
i > n && (i = n),
|
||
|
|
0 === i
|
||
|
|
? 0
|
||
|
|
: ((r.avail_in -= i), e.set(r.next_in.subarray(r.next_in_index, r.next_in_index + i), t), (r.next_in_index += i), (r.total_in += i), i)
|
||
|
|
)
|
||
|
|
},
|
||
|
|
flush_pending() {
|
||
|
|
const e = this
|
||
|
|
let t = e.dstate.pending
|
||
|
|
t > e.avail_out && (t = e.avail_out),
|
||
|
|
0 !== t &&
|
||
|
|
(e.next_out.set(e.dstate.pending_buf.subarray(e.dstate.pending_out, e.dstate.pending_out + t), e.next_out_index),
|
||
|
|
(e.next_out_index += t),
|
||
|
|
(e.dstate.pending_out += t),
|
||
|
|
(e.total_out += t),
|
||
|
|
(e.avail_out -= t),
|
||
|
|
(e.dstate.pending -= t),
|
||
|
|
0 === e.dstate.pending && (e.dstate.pending_out = 0))
|
||
|
|
}
|
||
|
|
}
|
||
|
|
const A = 0,
|
||
|
|
C = 1,
|
||
|
|
W = -2,
|
||
|
|
F = -3,
|
||
|
|
E = -4,
|
||
|
|
U = -5,
|
||
|
|
D = [0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535],
|
||
|
|
j = 1440,
|
||
|
|
q = [
|
||
|
|
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
|
||
|
|
],
|
||
|
|
T = [
|
||
|
|
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
|
||
|
|
],
|
||
|
|
O = [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],
|
||
|
|
R = [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],
|
||
|
|
I = [
|
||
|
|
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
|
||
|
|
],
|
||
|
|
L = [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],
|
||
|
|
B = 15
|
||
|
|
function M() {
|
||
|
|
let e, t, n, r, i, s
|
||
|
|
function a(e, t, a, o, c, l, d, f, u, p, m) {
|
||
|
|
let w, h, x, g, b, v, y, _, k, z, S, C, W, E, D
|
||
|
|
;(z = 0), (b = a)
|
||
|
|
do {
|
||
|
|
n[e[t + z]]++, z++, b--
|
||
|
|
} while (0 !== b)
|
||
|
|
if (n[0] == a) return (d[0] = -1), (f[0] = 0), A
|
||
|
|
for (_ = f[0], v = 1; v <= B && 0 === n[v]; v++);
|
||
|
|
for (y = v, _ < v && (_ = v), b = B; 0 !== b && 0 === n[b]; b--);
|
||
|
|
for (x = b, _ > b && (_ = b), f[0] = _, E = 1 << v; v < b; v++, E <<= 1) if ((E -= n[v]) < 0) return F
|
||
|
|
if ((E -= n[b]) < 0) return F
|
||
|
|
for (n[b] += E, s[1] = v = 0, z = 1, W = 2; 0 != --b; ) (s[W] = v += n[z]), W++, z++
|
||
|
|
;(b = 0), (z = 0)
|
||
|
|
do {
|
||
|
|
0 !== (v = e[t + z]) && (m[s[v]++] = b), z++
|
||
|
|
} while (++b < a)
|
||
|
|
for (a = s[x], s[0] = b = 0, z = 0, g = -1, C = -_, i[0] = 0, S = 0, D = 0; y <= x; y++)
|
||
|
|
for (w = n[y]; 0 != w--; ) {
|
||
|
|
for (; y > C + _; ) {
|
||
|
|
if ((g++, (C += _), (D = x - C), (D = D > _ ? _ : D), (h = 1 << (v = y - C)) > w + 1 && ((h -= w + 1), (W = y), v < D)))
|
||
|
|
for (; ++v < D && !((h <<= 1) <= n[++W]); ) h -= n[W]
|
||
|
|
if (((D = 1 << v), p[0] + D > j)) return F
|
||
|
|
;(i[g] = S = p[0]),
|
||
|
|
(p[0] += D),
|
||
|
|
0 !== g
|
||
|
|
? ((s[g] = b), (r[0] = v), (r[1] = _), (v = b >>> (C - _)), (r[2] = S - i[g - 1] - v), u.set(r, 3 * (i[g - 1] + v)))
|
||
|
|
: (d[0] = S)
|
||
|
|
}
|
||
|
|
for (
|
||
|
|
r[1] = y - C,
|
||
|
|
z >= a
|
||
|
|
? (r[0] = 192)
|
||
|
|
: m[z] < o
|
||
|
|
? ((r[0] = m[z] < 256 ? 0 : 96), (r[2] = m[z++]))
|
||
|
|
: ((r[0] = l[m[z] - o] + 16 + 64), (r[2] = c[m[z++] - o])),
|
||
|
|
h = 1 << (y - C),
|
||
|
|
v = b >>> C;
|
||
|
|
v < D;
|
||
|
|
v += h
|
||
|
|
)
|
||
|
|
u.set(r, 3 * (S + v))
|
||
|
|
for (v = 1 << (y - 1); 0 != (b & v); v >>>= 1) b ^= v
|
||
|
|
for (b ^= v, k = (1 << C) - 1; (b & k) != s[g]; ) g--, (C -= _), (k = (1 << C) - 1)
|
||
|
|
}
|
||
|
|
return 0 !== E && 1 != x ? U : A
|
||
|
|
}
|
||
|
|
function o(a) {
|
||
|
|
let o
|
||
|
|
for (
|
||
|
|
e || ((e = []), (t = []), (n = new Int32Array(B + 1)), (r = []), (i = new Int32Array(B)), (s = new Int32Array(B + 1))),
|
||
|
|
t.length < a && (t = []),
|
||
|
|
o = 0;
|
||
|
|
o < a;
|
||
|
|
o++
|
||
|
|
)
|
||
|
|
t[o] = 0
|
||
|
|
for (o = 0; o < B + 1; o++) n[o] = 0
|
||
|
|
for (o = 0; o < 3; o++) r[o] = 0
|
||
|
|
i.set(n.subarray(0, B), 0), s.set(n.subarray(0, B + 1), 0)
|
||
|
|
}
|
||
|
|
;(this.inflate_trees_bits = function (n, r, i, s, c) {
|
||
|
|
let l
|
||
|
|
return (
|
||
|
|
o(19),
|
||
|
|
(e[0] = 0),
|
||
|
|
(l = a(n, 0, 19, 19, null, null, i, r, s, e, t)),
|
||
|
|
l == F
|
||
|
|
? (c.msg = "oversubscribed dynamic bit lengths tree")
|
||
|
|
: (l != U && 0 !== r[0]) || ((c.msg = "incomplete dynamic bit lengths tree"), (l = F)),
|
||
|
|
l
|
||
|
|
)
|
||
|
|
}),
|
||
|
|
(this.inflate_trees_dynamic = function (n, r, i, s, c, l, d, f, u) {
|
||
|
|
let p
|
||
|
|
return (
|
||
|
|
o(288),
|
||
|
|
(e[0] = 0),
|
||
|
|
(p = a(i, 0, n, 257, O, R, l, s, f, e, t)),
|
||
|
|
p != A || 0 === s[0]
|
||
|
|
? (p == F ? (u.msg = "oversubscribed literal/length tree") : p != E && ((u.msg = "incomplete literal/length tree"), (p = F)), p)
|
||
|
|
: (o(288),
|
||
|
|
(p = a(i, n, r, 0, I, L, d, c, f, e, t)),
|
||
|
|
p != A || (0 === c[0] && n > 257)
|
||
|
|
? (p == F
|
||
|
|
? (u.msg = "oversubscribed distance tree")
|
||
|
|
: p == U
|
||
|
|
? ((u.msg = "incomplete distance tree"), (p = F))
|
||
|
|
: p != E && ((u.msg = "empty distance tree with lengths"), (p = F)),
|
||
|
|
p)
|
||
|
|
: A)
|
||
|
|
)
|
||
|
|
})
|
||
|
|
}
|
||
|
|
M.inflate_trees_fixed = function (e, t, n, r) {
|
||
|
|
return (e[0] = 9), (t[0] = 5), (n[0] = q), (r[0] = T), A
|
||
|
|
}
|
||
|
|
const K = 0,
|
||
|
|
N = 1,
|
||
|
|
V = 2,
|
||
|
|
P = 3,
|
||
|
|
H = 4,
|
||
|
|
Y = 5,
|
||
|
|
X = 6,
|
||
|
|
Z = 7,
|
||
|
|
J = 8,
|
||
|
|
G = 9
|
||
|
|
function $() {
|
||
|
|
const e = this
|
||
|
|
let t,
|
||
|
|
n,
|
||
|
|
r,
|
||
|
|
i,
|
||
|
|
s = 0,
|
||
|
|
a = 0,
|
||
|
|
o = 0,
|
||
|
|
c = 0,
|
||
|
|
l = 0,
|
||
|
|
d = 0,
|
||
|
|
f = 0,
|
||
|
|
u = 0,
|
||
|
|
p = 0,
|
||
|
|
m = 0
|
||
|
|
function w(e, t, n, r, i, s, a, o) {
|
||
|
|
let c, l, d, f, u, p, m, w, h, x, g, b, v, y, _, k
|
||
|
|
;(m = o.next_in_index),
|
||
|
|
(w = o.avail_in),
|
||
|
|
(u = a.bitb),
|
||
|
|
(p = a.bitk),
|
||
|
|
(h = a.write),
|
||
|
|
(x = h < a.read ? a.read - h - 1 : a.end - h),
|
||
|
|
(g = D[e]),
|
||
|
|
(b = D[t])
|
||
|
|
do {
|
||
|
|
for (; p < 20; ) w--, (u |= (255 & o.read_byte(m++)) << p), (p += 8)
|
||
|
|
if (((c = u & g), (l = n), (d = r), (k = 3 * (d + c)), 0 !== (f = l[k])))
|
||
|
|
for (;;) {
|
||
|
|
if (((u >>= l[k + 1]), (p -= l[k + 1]), 0 != (16 & f))) {
|
||
|
|
for (f &= 15, v = l[k + 2] + (u & D[f]), u >>= f, p -= f; p < 15; ) w--, (u |= (255 & o.read_byte(m++)) << p), (p += 8)
|
||
|
|
for (c = u & b, l = i, d = s, k = 3 * (d + c), f = l[k]; ; ) {
|
||
|
|
if (((u >>= l[k + 1]), (p -= l[k + 1]), 0 != (16 & f))) {
|
||
|
|
for (f &= 15; p < f; ) w--, (u |= (255 & o.read_byte(m++)) << p), (p += 8)
|
||
|
|
if (((y = l[k + 2] + (u & D[f])), (u >>= f), (p -= f), (x -= v), h >= y))
|
||
|
|
(_ = h - y),
|
||
|
|
h - _ > 0 && 2 > h - _
|
||
|
|
? ((a.win[h++] = a.win[_++]), (a.win[h++] = a.win[_++]), (v -= 2))
|
||
|
|
: (a.win.set(a.win.subarray(_, _ + 2), h), (h += 2), (_ += 2), (v -= 2))
|
||
|
|
else {
|
||
|
|
_ = h - y
|
||
|
|
do {
|
||
|
|
_ += a.end
|
||
|
|
} while (_ < 0)
|
||
|
|
if (((f = a.end - _), v > f)) {
|
||
|
|
if (((v -= f), h - _ > 0 && f > h - _))
|
||
|
|
do {
|
||
|
|
a.win[h++] = a.win[_++]
|
||
|
|
} while (0 != --f)
|
||
|
|
else a.win.set(a.win.subarray(_, _ + f), h), (h += f), (_ += f), (f = 0)
|
||
|
|
_ = 0
|
||
|
|
}
|
||
|
|
}
|
||
|
|
if (h - _ > 0 && v > h - _)
|
||
|
|
do {
|
||
|
|
a.win[h++] = a.win[_++]
|
||
|
|
} while (0 != --v)
|
||
|
|
else a.win.set(a.win.subarray(_, _ + v), h), (h += v), (_ += v), (v = 0)
|
||
|
|
break
|
||
|
|
}
|
||
|
|
if (0 != (64 & f))
|
||
|
|
return (
|
||
|
|
(o.msg = "invalid distance code"),
|
||
|
|
(v = o.avail_in - w),
|
||
|
|
(v = p >> 3 < v ? p >> 3 : v),
|
||
|
|
(w += v),
|
||
|
|
(m -= v),
|
||
|
|
(p -= v << 3),
|
||
|
|
(a.bitb = u),
|
||
|
|
(a.bitk = p),
|
||
|
|
(o.avail_in = w),
|
||
|
|
(o.total_in += m - o.next_in_index),
|
||
|
|
(o.next_in_index = m),
|
||
|
|
(a.write = h),
|
||
|
|
F
|
||
|
|
)
|
||
|
|
;(c += l[k + 2]), (c += u & D[f]), (k = 3 * (d + c)), (f = l[k])
|
||
|
|
}
|
||
|
|
break
|
||
|
|
}
|
||
|
|
if (0 != (64 & f))
|
||
|
|
return 0 != (32 & f)
|
||
|
|
? ((v = o.avail_in - w),
|
||
|
|
(v = p >> 3 < v ? p >> 3 : v),
|
||
|
|
(w += v),
|
||
|
|
(m -= v),
|
||
|
|
(p -= v << 3),
|
||
|
|
(a.bitb = u),
|
||
|
|
(a.bitk = p),
|
||
|
|
(o.avail_in = w),
|
||
|
|
(o.total_in += m - o.next_in_index),
|
||
|
|
(o.next_in_index = m),
|
||
|
|
(a.write = h),
|
||
|
|
C)
|
||
|
|
: ((o.msg = "invalid literal/length code"),
|
||
|
|
(v = o.avail_in - w),
|
||
|
|
(v = p >> 3 < v ? p >> 3 : v),
|
||
|
|
(w += v),
|
||
|
|
(m -= v),
|
||
|
|
(p -= v << 3),
|
||
|
|
(a.bitb = u),
|
||
|
|
(a.bitk = p),
|
||
|
|
(o.avail_in = w),
|
||
|
|
(o.total_in += m - o.next_in_index),
|
||
|
|
(o.next_in_index = m),
|
||
|
|
(a.write = h),
|
||
|
|
F)
|
||
|
|
if (((c += l[k + 2]), (c += u & D[f]), (k = 3 * (d + c)), 0 === (f = l[k]))) {
|
||
|
|
;(u >>= l[k + 1]), (p -= l[k + 1]), (a.win[h++] = l[k + 2]), x--
|
||
|
|
break
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else (u >>= l[k + 1]), (p -= l[k + 1]), (a.win[h++] = l[k + 2]), x--
|
||
|
|
} while (x >= 258 && w >= 10)
|
||
|
|
return (
|
||
|
|
(v = o.avail_in - w),
|
||
|
|
(v = p >> 3 < v ? p >> 3 : v),
|
||
|
|
(w += v),
|
||
|
|
(m -= v),
|
||
|
|
(p -= v << 3),
|
||
|
|
(a.bitb = u),
|
||
|
|
(a.bitk = p),
|
||
|
|
(o.avail_in = w),
|
||
|
|
(o.total_in += m - o.next_in_index),
|
||
|
|
(o.next_in_index = m),
|
||
|
|
(a.write = h),
|
||
|
|
A
|
||
|
|
)
|
||
|
|
}
|
||
|
|
;(e.init = function (e, s, a, o, c, l) {
|
||
|
|
;(t = K), (f = e), (u = s), (r = a), (p = o), (i = c), (m = l), (n = null)
|
||
|
|
}),
|
||
|
|
(e.proc = function (e, h, x) {
|
||
|
|
let g,
|
||
|
|
b,
|
||
|
|
v,
|
||
|
|
y,
|
||
|
|
_,
|
||
|
|
k,
|
||
|
|
z,
|
||
|
|
S = 0,
|
||
|
|
E = 0,
|
||
|
|
U = 0
|
||
|
|
for (U = h.next_in_index, y = h.avail_in, S = e.bitb, E = e.bitk, _ = e.write, k = _ < e.read ? e.read - _ - 1 : e.end - _; ; )
|
||
|
|
switch (t) {
|
||
|
|
case K:
|
||
|
|
if (
|
||
|
|
k >= 258 &&
|
||
|
|
y >= 10 &&
|
||
|
|
((e.bitb = S),
|
||
|
|
(e.bitk = E),
|
||
|
|
(h.avail_in = y),
|
||
|
|
(h.total_in += U - h.next_in_index),
|
||
|
|
(h.next_in_index = U),
|
||
|
|
(e.write = _),
|
||
|
|
(x = w(f, u, r, p, i, m, e, h)),
|
||
|
|
(U = h.next_in_index),
|
||
|
|
(y = h.avail_in),
|
||
|
|
(S = e.bitb),
|
||
|
|
(E = e.bitk),
|
||
|
|
(_ = e.write),
|
||
|
|
(k = _ < e.read ? e.read - _ - 1 : e.end - _),
|
||
|
|
x != A)
|
||
|
|
) {
|
||
|
|
t = x == C ? Z : G
|
||
|
|
break
|
||
|
|
}
|
||
|
|
;(o = f), (n = r), (a = p), (t = N)
|
||
|
|
case N:
|
||
|
|
for (g = o; E < g; ) {
|
||
|
|
if (0 === y)
|
||
|
|
return (
|
||
|
|
(e.bitb = S),
|
||
|
|
(e.bitk = E),
|
||
|
|
(h.avail_in = y),
|
||
|
|
(h.total_in += U - h.next_in_index),
|
||
|
|
(h.next_in_index = U),
|
||
|
|
(e.write = _),
|
||
|
|
e.inflate_flush(h, x)
|
||
|
|
)
|
||
|
|
;(x = A), y--, (S |= (255 & h.read_byte(U++)) << E), (E += 8)
|
||
|
|
}
|
||
|
|
if (((b = 3 * (a + (S & D[g]))), (S >>>= n[b + 1]), (E -= n[b + 1]), (v = n[b]), 0 === v)) {
|
||
|
|
;(c = n[b + 2]), (t = X)
|
||
|
|
break
|
||
|
|
}
|
||
|
|
if (0 != (16 & v)) {
|
||
|
|
;(l = 15 & v), (s = n[b + 2]), (t = V)
|
||
|
|
break
|
||
|
|
}
|
||
|
|
if (0 == (64 & v)) {
|
||
|
|
;(o = v), (a = b / 3 + n[b + 2])
|
||
|
|
break
|
||
|
|
}
|
||
|
|
if (0 != (32 & v)) {
|
||
|
|
t = Z
|
||
|
|
break
|
||
|
|
}
|
||
|
|
return (
|
||
|
|
(t = G),
|
||
|
|
(h.msg = "invalid literal/length code"),
|
||
|
|
(x = F),
|
||
|
|
(e.bitb = S),
|
||
|
|
(e.bitk = E),
|
||
|
|
(h.avail_in = y),
|
||
|
|
(h.total_in += U - h.next_in_index),
|
||
|
|
(h.next_in_index = U),
|
||
|
|
(e.write = _),
|
||
|
|
e.inflate_flush(h, x)
|
||
|
|
)
|
||
|
|
case V:
|
||
|
|
for (g = l; E < g; ) {
|
||
|
|
if (0 === y)
|
||
|
|
return (
|
||
|
|
(e.bitb = S),
|
||
|
|
(e.bitk = E),
|
||
|
|
(h.avail_in = y),
|
||
|
|
(h.total_in += U - h.next_in_index),
|
||
|
|
(h.next_in_index = U),
|
||
|
|
(e.write = _),
|
||
|
|
e.inflate_flush(h, x)
|
||
|
|
)
|
||
|
|
;(x = A), y--, (S |= (255 & h.read_byte(U++)) << E), (E += 8)
|
||
|
|
}
|
||
|
|
;(s += S & D[g]), (S >>= g), (E -= g), (o = u), (n = i), (a = m), (t = P)
|
||
|
|
case P:
|
||
|
|
for (g = o; E < g; ) {
|
||
|
|
if (0 === y)
|
||
|
|
return (
|
||
|
|
(e.bitb = S),
|
||
|
|
(e.bitk = E),
|
||
|
|
(h.avail_in = y),
|
||
|
|
(h.total_in += U - h.next_in_index),
|
||
|
|
(h.next_in_index = U),
|
||
|
|
(e.write = _),
|
||
|
|
e.inflate_flush(h, x)
|
||
|
|
)
|
||
|
|
;(x = A), y--, (S |= (255 & h.read_byte(U++)) << E), (E += 8)
|
||
|
|
}
|
||
|
|
if (((b = 3 * (a + (S & D[g]))), (S >>= n[b + 1]), (E -= n[b + 1]), (v = n[b]), 0 != (16 & v))) {
|
||
|
|
;(l = 15 & v), (d = n[b + 2]), (t = H)
|
||
|
|
break
|
||
|
|
}
|
||
|
|
if (0 == (64 & v)) {
|
||
|
|
;(o = v), (a = b / 3 + n[b + 2])
|
||
|
|
break
|
||
|
|
}
|
||
|
|
return (
|
||
|
|
(t = G),
|
||
|
|
(h.msg = "invalid distance code"),
|
||
|
|
(x = F),
|
||
|
|
(e.bitb = S),
|
||
|
|
(e.bitk = E),
|
||
|
|
(h.avail_in = y),
|
||
|
|
(h.total_in += U - h.next_in_index),
|
||
|
|
(h.next_in_index = U),
|
||
|
|
(e.write = _),
|
||
|
|
e.inflate_flush(h, x)
|
||
|
|
)
|
||
|
|
case H:
|
||
|
|
for (g = l; E < g; ) {
|
||
|
|
if (0 === y)
|
||
|
|
return (
|
||
|
|
(e.bitb = S),
|
||
|
|
(e.bitk = E),
|
||
|
|
(h.avail_in = y),
|
||
|
|
(h.total_in += U - h.next_in_index),
|
||
|
|
(h.next_in_index = U),
|
||
|
|
(e.write = _),
|
||
|
|
e.inflate_flush(h, x)
|
||
|
|
)
|
||
|
|
;(x = A), y--, (S |= (255 & h.read_byte(U++)) << E), (E += 8)
|
||
|
|
}
|
||
|
|
;(d += S & D[g]), (S >>= g), (E -= g), (t = Y)
|
||
|
|
case Y:
|
||
|
|
for (z = _ - d; z < 0; ) z += e.end
|
||
|
|
for (; 0 !== s; ) {
|
||
|
|
if (
|
||
|
|
0 === k &&
|
||
|
|
(_ == e.end && 0 !== e.read && ((_ = 0), (k = _ < e.read ? e.read - _ - 1 : e.end - _)),
|
||
|
|
0 === k &&
|
||
|
|
((e.write = _),
|
||
|
|
(x = e.inflate_flush(h, x)),
|
||
|
|
(_ = e.write),
|
||
|
|
(k = _ < e.read ? e.read - _ - 1 : e.end - _),
|
||
|
|
_ == e.end && 0 !== e.read && ((_ = 0), (k = _ < e.read ? e.read - _ - 1 : e.end - _)),
|
||
|
|
0 === k))
|
||
|
|
)
|
||
|
|
return (
|
||
|
|
(e.bitb = S),
|
||
|
|
(e.bitk = E),
|
||
|
|
(h.avail_in = y),
|
||
|
|
(h.total_in += U - h.next_in_index),
|
||
|
|
(h.next_in_index = U),
|
||
|
|
(e.write = _),
|
||
|
|
e.inflate_flush(h, x)
|
||
|
|
)
|
||
|
|
;(e.win[_++] = e.win[z++]), k--, z == e.end && (z = 0), s--
|
||
|
|
}
|
||
|
|
t = K
|
||
|
|
break
|
||
|
|
case X:
|
||
|
|
if (
|
||
|
|
0 === k &&
|
||
|
|
(_ == e.end && 0 !== e.read && ((_ = 0), (k = _ < e.read ? e.read - _ - 1 : e.end - _)),
|
||
|
|
0 === k &&
|
||
|
|
((e.write = _),
|
||
|
|
(x = e.inflate_flush(h, x)),
|
||
|
|
(_ = e.write),
|
||
|
|
(k = _ < e.read ? e.read - _ - 1 : e.end - _),
|
||
|
|
_ == e.end && 0 !== e.read && ((_ = 0), (k = _ < e.read ? e.read - _ - 1 : e.end - _)),
|
||
|
|
0 === k))
|
||
|
|
)
|
||
|
|
return (
|
||
|
|
(e.bitb = S),
|
||
|
|
(e.bitk = E),
|
||
|
|
(h.avail_in = y),
|
||
|
|
(h.total_in += U - h.next_in_index),
|
||
|
|
(h.next_in_index = U),
|
||
|
|
(e.write = _),
|
||
|
|
e.inflate_flush(h, x)
|
||
|
|
)
|
||
|
|
;(x = A), (e.win[_++] = c), k--, (t = K)
|
||
|
|
break
|
||
|
|
case Z:
|
||
|
|
if (
|
||
|
|
(E > 7 && ((E -= 8), y++, U--),
|
||
|
|
(e.write = _),
|
||
|
|
(x = e.inflate_flush(h, x)),
|
||
|
|
(_ = e.write),
|
||
|
|
(k = _ < e.read ? e.read - _ - 1 : e.end - _),
|
||
|
|
e.read != e.write)
|
||
|
|
)
|
||
|
|
return (
|
||
|
|
(e.bitb = S),
|
||
|
|
(e.bitk = E),
|
||
|
|
(h.avail_in = y),
|
||
|
|
(h.total_in += U - h.next_in_index),
|
||
|
|
(h.next_in_index = U),
|
||
|
|
(e.write = _),
|
||
|
|
e.inflate_flush(h, x)
|
||
|
|
)
|
||
|
|
t = J
|
||
|
|
case J:
|
||
|
|
return (
|
||
|
|
(x = C),
|
||
|
|
(e.bitb = S),
|
||
|
|
(e.bitk = E),
|
||
|
|
(h.avail_in = y),
|
||
|
|
(h.total_in += U - h.next_in_index),
|
||
|
|
(h.next_in_index = U),
|
||
|
|
(e.write = _),
|
||
|
|
e.inflate_flush(h, x)
|
||
|
|
)
|
||
|
|
case G:
|
||
|
|
return (
|
||
|
|
(x = F),
|
||
|
|
(e.bitb = S),
|
||
|
|
(e.bitk = E),
|
||
|
|
(h.avail_in = y),
|
||
|
|
(h.total_in += U - h.next_in_index),
|
||
|
|
(h.next_in_index = U),
|
||
|
|
(e.write = _),
|
||
|
|
e.inflate_flush(h, x)
|
||
|
|
)
|
||
|
|
default:
|
||
|
|
return (
|
||
|
|
(x = W),
|
||
|
|
(e.bitb = S),
|
||
|
|
(e.bitk = E),
|
||
|
|
(h.avail_in = y),
|
||
|
|
(h.total_in += U - h.next_in_index),
|
||
|
|
(h.next_in_index = U),
|
||
|
|
(e.write = _),
|
||
|
|
e.inflate_flush(h, x)
|
||
|
|
)
|
||
|
|
}
|
||
|
|
}),
|
||
|
|
(e.free = function () {})
|
||
|
|
}
|
||
|
|
const Q = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15],
|
||
|
|
ee = 0,
|
||
|
|
te = 1,
|
||
|
|
ne = 2,
|
||
|
|
re = 3,
|
||
|
|
ie = 4,
|
||
|
|
se = 5,
|
||
|
|
ae = 6,
|
||
|
|
oe = 7,
|
||
|
|
ce = 8,
|
||
|
|
le = 9
|
||
|
|
function de(e, t) {
|
||
|
|
const n = this
|
||
|
|
let r,
|
||
|
|
i = ee,
|
||
|
|
s = 0,
|
||
|
|
a = 0,
|
||
|
|
o = 0
|
||
|
|
const c = [0],
|
||
|
|
l = [0],
|
||
|
|
d = new $()
|
||
|
|
let f = 0,
|
||
|
|
u = new Int32Array(3 * j)
|
||
|
|
const p = new M()
|
||
|
|
;(n.bitk = 0),
|
||
|
|
(n.bitb = 0),
|
||
|
|
(n.win = new Uint8Array(t)),
|
||
|
|
(n.end = t),
|
||
|
|
(n.read = 0),
|
||
|
|
(n.write = 0),
|
||
|
|
(n.reset = function (e, t) {
|
||
|
|
t && (t[0] = 0), i == ae && d.free(e), (i = ee), (n.bitk = 0), (n.bitb = 0), (n.read = n.write = 0)
|
||
|
|
}),
|
||
|
|
n.reset(e, null),
|
||
|
|
(n.inflate_flush = function (e, t) {
|
||
|
|
let r, i, s
|
||
|
|
return (
|
||
|
|
(i = e.next_out_index),
|
||
|
|
(s = n.read),
|
||
|
|
(r = (s <= n.write ? n.write : n.end) - s),
|
||
|
|
r > e.avail_out && (r = e.avail_out),
|
||
|
|
0 !== r && t == U && (t = A),
|
||
|
|
(e.avail_out -= r),
|
||
|
|
(e.total_out += r),
|
||
|
|
e.next_out.set(n.win.subarray(s, s + r), i),
|
||
|
|
(i += r),
|
||
|
|
(s += r),
|
||
|
|
s == n.end &&
|
||
|
|
((s = 0),
|
||
|
|
n.write == n.end && (n.write = 0),
|
||
|
|
(r = n.write - s),
|
||
|
|
r > e.avail_out && (r = e.avail_out),
|
||
|
|
0 !== r && t == U && (t = A),
|
||
|
|
(e.avail_out -= r),
|
||
|
|
(e.total_out += r),
|
||
|
|
e.next_out.set(n.win.subarray(s, s + r), i),
|
||
|
|
(i += r),
|
||
|
|
(s += r)),
|
||
|
|
(e.next_out_index = i),
|
||
|
|
(n.read = s),
|
||
|
|
t
|
||
|
|
)
|
||
|
|
}),
|
||
|
|
(n.proc = function (e, t) {
|
||
|
|
let m, w, h, x, g, b, v, y
|
||
|
|
for (x = e.next_in_index, g = e.avail_in, w = n.bitb, h = n.bitk, b = n.write, v = b < n.read ? n.read - b - 1 : n.end - b; ; ) {
|
||
|
|
let _, k, z, S, E, U, j, q
|
||
|
|
switch (i) {
|
||
|
|
case ee:
|
||
|
|
for (; h < 3; ) {
|
||
|
|
if (0 === g)
|
||
|
|
return (
|
||
|
|
(n.bitb = w),
|
||
|
|
(n.bitk = h),
|
||
|
|
(e.avail_in = g),
|
||
|
|
(e.total_in += x - e.next_in_index),
|
||
|
|
(e.next_in_index = x),
|
||
|
|
(n.write = b),
|
||
|
|
n.inflate_flush(e, t)
|
||
|
|
)
|
||
|
|
;(t = A), g--, (w |= (255 & e.read_byte(x++)) << h), (h += 8)
|
||
|
|
}
|
||
|
|
switch (((m = 7 & w), (f = 1 & m), m >>> 1)) {
|
||
|
|
case 0:
|
||
|
|
;(w >>>= 3), (h -= 3), (m = 7 & h), (w >>>= m), (h -= m), (i = te)
|
||
|
|
break
|
||
|
|
case 1:
|
||
|
|
;(_ = []),
|
||
|
|
(k = []),
|
||
|
|
(z = [[]]),
|
||
|
|
(S = [[]]),
|
||
|
|
M.inflate_trees_fixed(_, k, z, S),
|
||
|
|
d.init(_[0], k[0], z[0], 0, S[0], 0),
|
||
|
|
(w >>>= 3),
|
||
|
|
(h -= 3),
|
||
|
|
(i = ae)
|
||
|
|
break
|
||
|
|
case 2:
|
||
|
|
;(w >>>= 3), (h -= 3), (i = re)
|
||
|
|
break
|
||
|
|
case 3:
|
||
|
|
return (
|
||
|
|
(w >>>= 3),
|
||
|
|
(h -= 3),
|
||
|
|
(i = le),
|
||
|
|
(e.msg = "invalid block type"),
|
||
|
|
(t = F),
|
||
|
|
(n.bitb = w),
|
||
|
|
(n.bitk = h),
|
||
|
|
(e.avail_in = g),
|
||
|
|
(e.total_in += x - e.next_in_index),
|
||
|
|
(e.next_in_index = x),
|
||
|
|
(n.write = b),
|
||
|
|
n.inflate_flush(e, t)
|
||
|
|
)
|
||
|
|
}
|
||
|
|
break
|
||
|
|
case te:
|
||
|
|
for (; h < 32; ) {
|
||
|
|
if (0 === g)
|
||
|
|
return (
|
||
|
|
(n.bitb = w),
|
||
|
|
(n.bitk = h),
|
||
|
|
(e.avail_in = g),
|
||
|
|
(e.total_in += x - e.next_in_index),
|
||
|
|
(e.next_in_index = x),
|
||
|
|
(n.write = b),
|
||
|
|
n.inflate_flush(e, t)
|
||
|
|
)
|
||
|
|
;(t = A), g--, (w |= (255 & e.read_byte(x++)) << h), (h += 8)
|
||
|
|
}
|
||
|
|
if (((~w >>> 16) & 65535) != (65535 & w))
|
||
|
|
return (
|
||
|
|
(i = le),
|
||
|
|
(e.msg = "invalid stored block lengths"),
|
||
|
|
(t = F),
|
||
|
|
(n.bitb = w),
|
||
|
|
(n.bitk = h),
|
||
|
|
(e.avail_in = g),
|
||
|
|
(e.total_in += x - e.next_in_index),
|
||
|
|
(e.next_in_index = x),
|
||
|
|
(n.write = b),
|
||
|
|
n.inflate_flush(e, t)
|
||
|
|
)
|
||
|
|
;(s = 65535 & w), (w = h = 0), (i = 0 !== s ? ne : 0 !== f ? oe : ee)
|
||
|
|
break
|
||
|
|
case ne:
|
||
|
|
if (0 === g)
|
||
|
|
return (
|
||
|
|
(n.bitb = w),
|
||
|
|
(n.bitk = h),
|
||
|
|
(e.avail_in = g),
|
||
|
|
(e.total_in += x - e.next_in_index),
|
||
|
|
(e.next_in_index = x),
|
||
|
|
(n.write = b),
|
||
|
|
n.inflate_flush(e, t)
|
||
|
|
)
|
||
|
|
if (
|
||
|
|
0 === v &&
|
||
|
|
(b == n.end && 0 !== n.read && ((b = 0), (v = b < n.read ? n.read - b - 1 : n.end - b)),
|
||
|
|
0 === v &&
|
||
|
|
((n.write = b),
|
||
|
|
(t = n.inflate_flush(e, t)),
|
||
|
|
(b = n.write),
|
||
|
|
(v = b < n.read ? n.read - b - 1 : n.end - b),
|
||
|
|
b == n.end && 0 !== n.read && ((b = 0), (v = b < n.read ? n.read - b - 1 : n.end - b)),
|
||
|
|
0 === v))
|
||
|
|
)
|
||
|
|
return (
|
||
|
|
(n.bitb = w),
|
||
|
|
(n.bitk = h),
|
||
|
|
(e.avail_in = g),
|
||
|
|
(e.total_in += x - e.next_in_index),
|
||
|
|
(e.next_in_index = x),
|
||
|
|
(n.write = b),
|
||
|
|
n.inflate_flush(e, t)
|
||
|
|
)
|
||
|
|
if (
|
||
|
|
((t = A),
|
||
|
|
(m = s),
|
||
|
|
m > g && (m = g),
|
||
|
|
m > v && (m = v),
|
||
|
|
n.win.set(e.read_buf(x, m), b),
|
||
|
|
(x += m),
|
||
|
|
(g -= m),
|
||
|
|
(b += m),
|
||
|
|
(v -= m),
|
||
|
|
0 != (s -= m))
|
||
|
|
)
|
||
|
|
break
|
||
|
|
i = 0 !== f ? oe : ee
|
||
|
|
break
|
||
|
|
case re:
|
||
|
|
for (; h < 14; ) {
|
||
|
|
if (0 === g)
|
||
|
|
return (
|
||
|
|
(n.bitb = w),
|
||
|
|
(n.bitk = h),
|
||
|
|
(e.avail_in = g),
|
||
|
|
(e.total_in += x - e.next_in_index),
|
||
|
|
(e.next_in_index = x),
|
||
|
|
(n.write = b),
|
||
|
|
n.inflate_flush(e, t)
|
||
|
|
)
|
||
|
|
;(t = A), g--, (w |= (255 & e.read_byte(x++)) << h), (h += 8)
|
||
|
|
}
|
||
|
|
if (((a = m = 16383 & w), (31 & m) > 29 || ((m >> 5) & 31) > 29))
|
||
|
|
return (
|
||
|
|
(i = le),
|
||
|
|
(e.msg = "too many length or distance symbols"),
|
||
|
|
(t = F),
|
||
|
|
(n.bitb = w),
|
||
|
|
(n.bitk = h),
|
||
|
|
(e.avail_in = g),
|
||
|
|
(e.total_in += x - e.next_in_index),
|
||
|
|
(e.next_in_index = x),
|
||
|
|
(n.write = b),
|
||
|
|
n.inflate_flush(e, t)
|
||
|
|
)
|
||
|
|
if (((m = 258 + (31 & m) + ((m >> 5) & 31)), !r || r.length < m)) r = []
|
||
|
|
else for (y = 0; y < m; y++) r[y] = 0
|
||
|
|
;(w >>>= 14), (h -= 14), (o = 0), (i = ie)
|
||
|
|
case ie:
|
||
|
|
for (; o < 4 + (a >>> 10); ) {
|
||
|
|
for (; h < 3; ) {
|
||
|
|
if (0 === g)
|
||
|
|
return (
|
||
|
|
(n.bitb = w),
|
||
|
|
(n.bitk = h),
|
||
|
|
(e.avail_in = g),
|
||
|
|
(e.total_in += x - e.next_in_index),
|
||
|
|
(e.next_in_index = x),
|
||
|
|
(n.write = b),
|
||
|
|
n.inflate_flush(e, t)
|
||
|
|
)
|
||
|
|
;(t = A), g--, (w |= (255 & e.read_byte(x++)) << h), (h += 8)
|
||
|
|
}
|
||
|
|
;(r[Q[o++]] = 7 & w), (w >>>= 3), (h -= 3)
|
||
|
|
}
|
||
|
|
for (; o < 19; ) r[Q[o++]] = 0
|
||
|
|
if (((c[0] = 7), (m = p.inflate_trees_bits(r, c, l, u, e)), m != A))
|
||
|
|
return (
|
||
|
|
(t = m) == F && ((r = null), (i = le)),
|
||
|
|
(n.bitb = w),
|
||
|
|
(n.bitk = h),
|
||
|
|
(e.avail_in = g),
|
||
|
|
(e.total_in += x - e.next_in_index),
|
||
|
|
(e.next_in_index = x),
|
||
|
|
(n.write = b),
|
||
|
|
n.inflate_flush(e, t)
|
||
|
|
)
|
||
|
|
;(o = 0), (i = se)
|
||
|
|
case se:
|
||
|
|
for (; (m = a), !(o >= 258 + (31 & m) + ((m >> 5) & 31)); ) {
|
||
|
|
let s, d
|
||
|
|
for (m = c[0]; h < m; ) {
|
||
|
|
if (0 === g)
|
||
|
|
return (
|
||
|
|
(n.bitb = w),
|
||
|
|
(n.bitk = h),
|
||
|
|
(e.avail_in = g),
|
||
|
|
(e.total_in += x - e.next_in_index),
|
||
|
|
(e.next_in_index = x),
|
||
|
|
(n.write = b),
|
||
|
|
n.inflate_flush(e, t)
|
||
|
|
)
|
||
|
|
;(t = A), g--, (w |= (255 & e.read_byte(x++)) << h), (h += 8)
|
||
|
|
}
|
||
|
|
if (((m = u[3 * (l[0] + (w & D[m])) + 1]), (d = u[3 * (l[0] + (w & D[m])) + 2]), d < 16)) (w >>>= m), (h -= m), (r[o++] = d)
|
||
|
|
else {
|
||
|
|
for (y = 18 == d ? 7 : d - 14, s = 18 == d ? 11 : 3; h < m + y; ) {
|
||
|
|
if (0 === g)
|
||
|
|
return (
|
||
|
|
(n.bitb = w),
|
||
|
|
(n.bitk = h),
|
||
|
|
(e.avail_in = g),
|
||
|
|
(e.total_in += x - e.next_in_index),
|
||
|
|
(e.next_in_index = x),
|
||
|
|
(n.write = b),
|
||
|
|
n.inflate_flush(e, t)
|
||
|
|
)
|
||
|
|
;(t = A), g--, (w |= (255 & e.read_byte(x++)) << h), (h += 8)
|
||
|
|
}
|
||
|
|
if (
|
||
|
|
((w >>>= m),
|
||
|
|
(h -= m),
|
||
|
|
(s += w & D[y]),
|
||
|
|
(w >>>= y),
|
||
|
|
(h -= y),
|
||
|
|
(y = o),
|
||
|
|
(m = a),
|
||
|
|
y + s > 258 + (31 & m) + ((m >> 5) & 31) || (16 == d && y < 1))
|
||
|
|
)
|
||
|
|
return (
|
||
|
|
(r = null),
|
||
|
|
(i = le),
|
||
|
|
(e.msg = "invalid bit length repeat"),
|
||
|
|
(t = F),
|
||
|
|
(n.bitb = w),
|
||
|
|
(n.bitk = h),
|
||
|
|
(e.avail_in = g),
|
||
|
|
(e.total_in += x - e.next_in_index),
|
||
|
|
(e.next_in_index = x),
|
||
|
|
(n.write = b),
|
||
|
|
n.inflate_flush(e, t)
|
||
|
|
)
|
||
|
|
d = 16 == d ? r[y - 1] : 0
|
||
|
|
do {
|
||
|
|
r[y++] = d
|
||
|
|
} while (0 != --s)
|
||
|
|
o = y
|
||
|
|
}
|
||
|
|
}
|
||
|
|
if (
|
||
|
|
((l[0] = -1),
|
||
|
|
(E = []),
|
||
|
|
(U = []),
|
||
|
|
(j = []),
|
||
|
|
(q = []),
|
||
|
|
(E[0] = 9),
|
||
|
|
(U[0] = 6),
|
||
|
|
(m = a),
|
||
|
|
(m = p.inflate_trees_dynamic(257 + (31 & m), 1 + ((m >> 5) & 31), r, E, U, j, q, u, e)),
|
||
|
|
m != A)
|
||
|
|
)
|
||
|
|
return (
|
||
|
|
m == F && ((r = null), (i = le)),
|
||
|
|
(t = m),
|
||
|
|
(n.bitb = w),
|
||
|
|
(n.bitk = h),
|
||
|
|
(e.avail_in = g),
|
||
|
|
(e.total_in += x - e.next_in_index),
|
||
|
|
(e.next_in_index = x),
|
||
|
|
(n.write = b),
|
||
|
|
n.inflate_flush(e, t)
|
||
|
|
)
|
||
|
|
d.init(E[0], U[0], u, j[0], u, q[0]), (i = ae)
|
||
|
|
case ae:
|
||
|
|
if (
|
||
|
|
((n.bitb = w),
|
||
|
|
(n.bitk = h),
|
||
|
|
(e.avail_in = g),
|
||
|
|
(e.total_in += x - e.next_in_index),
|
||
|
|
(e.next_in_index = x),
|
||
|
|
(n.write = b),
|
||
|
|
(t = d.proc(n, e, t)) != C)
|
||
|
|
)
|
||
|
|
return n.inflate_flush(e, t)
|
||
|
|
if (
|
||
|
|
((t = A),
|
||
|
|
d.free(e),
|
||
|
|
(x = e.next_in_index),
|
||
|
|
(g = e.avail_in),
|
||
|
|
(w = n.bitb),
|
||
|
|
(h = n.bitk),
|
||
|
|
(b = n.write),
|
||
|
|
(v = b < n.read ? n.read - b - 1 : n.end - b),
|
||
|
|
0 === f)
|
||
|
|
) {
|
||
|
|
i = ee
|
||
|
|
break
|
||
|
|
}
|
||
|
|
i = oe
|
||
|
|
case oe:
|
||
|
|
if (((n.write = b), (t = n.inflate_flush(e, t)), (b = n.write), (v = b < n.read ? n.read - b - 1 : n.end - b), n.read != n.write))
|
||
|
|
return (
|
||
|
|
(n.bitb = w),
|
||
|
|
(n.bitk = h),
|
||
|
|
(e.avail_in = g),
|
||
|
|
(e.total_in += x - e.next_in_index),
|
||
|
|
(e.next_in_index = x),
|
||
|
|
(n.write = b),
|
||
|
|
n.inflate_flush(e, t)
|
||
|
|
)
|
||
|
|
i = ce
|
||
|
|
case ce:
|
||
|
|
return (
|
||
|
|
(t = C),
|
||
|
|
(n.bitb = w),
|
||
|
|
(n.bitk = h),
|
||
|
|
(e.avail_in = g),
|
||
|
|
(e.total_in += x - e.next_in_index),
|
||
|
|
(e.next_in_index = x),
|
||
|
|
(n.write = b),
|
||
|
|
n.inflate_flush(e, t)
|
||
|
|
)
|
||
|
|
case le:
|
||
|
|
return (
|
||
|
|
(t = F),
|
||
|
|
(n.bitb = w),
|
||
|
|
(n.bitk = h),
|
||
|
|
(e.avail_in = g),
|
||
|
|
(e.total_in += x - e.next_in_index),
|
||
|
|
(e.next_in_index = x),
|
||
|
|
(n.write = b),
|
||
|
|
n.inflate_flush(e, t)
|
||
|
|
)
|
||
|
|
default:
|
||
|
|
return (
|
||
|
|
(t = W),
|
||
|
|
(n.bitb = w),
|
||
|
|
(n.bitk = h),
|
||
|
|
(e.avail_in = g),
|
||
|
|
(e.total_in += x - e.next_in_index),
|
||
|
|
(e.next_in_index = x),
|
||
|
|
(n.write = b),
|
||
|
|
n.inflate_flush(e, t)
|
||
|
|
)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}),
|
||
|
|
(n.free = function (e) {
|
||
|
|
n.reset(e, null), (n.win = null), (u = null)
|
||
|
|
}),
|
||
|
|
(n.set_dictionary = function (e, t, r) {
|
||
|
|
n.win.set(e.subarray(t, t + r), 0), (n.read = n.write = r)
|
||
|
|
}),
|
||
|
|
(n.sync_point = function () {
|
||
|
|
return i == te ? 1 : 0
|
||
|
|
})
|
||
|
|
}
|
||
|
|
const fe = 13,
|
||
|
|
ue = [0, 0, 255, 255]
|
||
|
|
function pe() {
|
||
|
|
const e = this
|
||
|
|
function t(e) {
|
||
|
|
return e && e.istate ? ((e.total_in = e.total_out = 0), (e.msg = null), (e.istate.mode = 7), e.istate.blocks.reset(e, null), A) : W
|
||
|
|
}
|
||
|
|
;(e.mode = 0),
|
||
|
|
(e.method = 0),
|
||
|
|
(e.was = [0]),
|
||
|
|
(e.need = 0),
|
||
|
|
(e.marker = 0),
|
||
|
|
(e.wbits = 0),
|
||
|
|
(e.inflateEnd = function (t) {
|
||
|
|
return e.blocks && e.blocks.free(t), (e.blocks = null), A
|
||
|
|
}),
|
||
|
|
(e.inflateInit = function (n, r) {
|
||
|
|
return (
|
||
|
|
(n.msg = null),
|
||
|
|
(e.blocks = null),
|
||
|
|
r < 8 || r > 15 ? (e.inflateEnd(n), W) : ((e.wbits = r), (n.istate.blocks = new de(n, 1 << r)), t(n), A)
|
||
|
|
)
|
||
|
|
}),
|
||
|
|
(e.inflate = function (e, t) {
|
||
|
|
let n, r
|
||
|
|
if (!e || !e.istate || !e.next_in) return W
|
||
|
|
const i = e.istate
|
||
|
|
for (t = 4 == t ? U : A, n = U; ; )
|
||
|
|
switch (i.mode) {
|
||
|
|
case 0:
|
||
|
|
if (0 === e.avail_in) return n
|
||
|
|
if (((n = t), e.avail_in--, e.total_in++, 8 != (15 & (i.method = e.read_byte(e.next_in_index++))))) {
|
||
|
|
;(i.mode = fe), (e.msg = "unknown compression method"), (i.marker = 5)
|
||
|
|
break
|
||
|
|
}
|
||
|
|
if (8 + (i.method >> 4) > i.wbits) {
|
||
|
|
;(i.mode = fe), (e.msg = "invalid win size"), (i.marker = 5)
|
||
|
|
break
|
||
|
|
}
|
||
|
|
i.mode = 1
|
||
|
|
case 1:
|
||
|
|
if (0 === e.avail_in) return n
|
||
|
|
if (((n = t), e.avail_in--, e.total_in++, (r = 255 & e.read_byte(e.next_in_index++)), ((i.method << 8) + r) % 31 != 0)) {
|
||
|
|
;(i.mode = fe), (e.msg = "incorrect header check"), (i.marker = 5)
|
||
|
|
break
|
||
|
|
}
|
||
|
|
if (0 == (32 & r)) {
|
||
|
|
i.mode = 7
|
||
|
|
break
|
||
|
|
}
|
||
|
|
i.mode = 2
|
||
|
|
case 2:
|
||
|
|
if (0 === e.avail_in) return n
|
||
|
|
;(n = t), e.avail_in--, e.total_in++, (i.need = ((255 & e.read_byte(e.next_in_index++)) << 24) & 4278190080), (i.mode = 3)
|
||
|
|
case 3:
|
||
|
|
if (0 === e.avail_in) return n
|
||
|
|
;(n = t), e.avail_in--, e.total_in++, (i.need += ((255 & e.read_byte(e.next_in_index++)) << 16) & 16711680), (i.mode = 4)
|
||
|
|
case 4:
|
||
|
|
if (0 === e.avail_in) return n
|
||
|
|
;(n = t), e.avail_in--, e.total_in++, (i.need += ((255 & e.read_byte(e.next_in_index++)) << 8) & 65280), (i.mode = 5)
|
||
|
|
case 5:
|
||
|
|
return 0 === e.avail_in ? n : ((n = t), e.avail_in--, e.total_in++, (i.need += 255 & e.read_byte(e.next_in_index++)), (i.mode = 6), 2)
|
||
|
|
case 6:
|
||
|
|
return (i.mode = fe), (e.msg = "need dictionary"), (i.marker = 0), W
|
||
|
|
case 7:
|
||
|
|
if (((n = i.blocks.proc(e, n)), n == F)) {
|
||
|
|
;(i.mode = fe), (i.marker = 0)
|
||
|
|
break
|
||
|
|
}
|
||
|
|
if ((n == A && (n = t), n != C)) return n
|
||
|
|
;(n = t), i.blocks.reset(e, i.was), (i.mode = 12)
|
||
|
|
case 12:
|
||
|
|
return (e.avail_in = 0), C
|
||
|
|
case fe:
|
||
|
|
return F
|
||
|
|
default:
|
||
|
|
return W
|
||
|
|
}
|
||
|
|
}),
|
||
|
|
(e.inflateSetDictionary = function (e, t, n) {
|
||
|
|
let r = 0,
|
||
|
|
i = n
|
||
|
|
if (!e || !e.istate || 6 != e.istate.mode) return W
|
||
|
|
const s = e.istate
|
||
|
|
return i >= 1 << s.wbits && ((i = (1 << s.wbits) - 1), (r = n - i)), s.blocks.set_dictionary(t, r, i), (s.mode = 7), A
|
||
|
|
}),
|
||
|
|
(e.inflateSync = function (e) {
|
||
|
|
let n, r, i, s, a
|
||
|
|
if (!e || !e.istate) return W
|
||
|
|
const o = e.istate
|
||
|
|
if ((o.mode != fe && ((o.mode = fe), (o.marker = 0)), 0 === (n = e.avail_in))) return U
|
||
|
|
for (r = e.next_in_index, i = o.marker; 0 !== n && i < 4; ) e.read_byte(r) == ue[i] ? i++ : (i = 0 !== e.read_byte(r) ? 0 : 4 - i), r++, n--
|
||
|
|
return (
|
||
|
|
(e.total_in += r - e.next_in_index),
|
||
|
|
(e.next_in_index = r),
|
||
|
|
(e.avail_in = n),
|
||
|
|
(o.marker = i),
|
||
|
|
4 != i ? F : ((s = e.total_in), (a = e.total_out), t(e), (e.total_in = s), (e.total_out = a), (o.mode = 7), A)
|
||
|
|
)
|
||
|
|
}),
|
||
|
|
(e.inflateSyncPoint = function (e) {
|
||
|
|
return e && e.istate && e.istate.blocks ? e.istate.blocks.sync_point() : W
|
||
|
|
})
|
||
|
|
}
|
||
|
|
function me() {}
|
||
|
|
me.prototype = {
|
||
|
|
inflateInit(e) {
|
||
|
|
const t = this
|
||
|
|
return (t.istate = new pe()), e || (e = 15), t.istate.inflateInit(t, e)
|
||
|
|
},
|
||
|
|
inflate(e) {
|
||
|
|
const t = this
|
||
|
|
return t.istate ? t.istate.inflate(t, e) : W
|
||
|
|
},
|
||
|
|
inflateEnd() {
|
||
|
|
const e = this
|
||
|
|
if (!e.istate) return W
|
||
|
|
const t = e.istate.inflateEnd(e)
|
||
|
|
return (e.istate = null), t
|
||
|
|
},
|
||
|
|
inflateSync() {
|
||
|
|
const e = this
|
||
|
|
return e.istate ? e.istate.inflateSync(e) : W
|
||
|
|
},
|
||
|
|
inflateSetDictionary(e, t) {
|
||
|
|
const n = this
|
||
|
|
return n.istate ? n.istate.inflateSetDictionary(n, e, t) : W
|
||
|
|
},
|
||
|
|
read_byte(e) {
|
||
|
|
return this.next_in[e]
|
||
|
|
},
|
||
|
|
read_buf(e, t) {
|
||
|
|
return this.next_in.subarray(e, e + t)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
const we = 4294967295,
|
||
|
|
he = 65535,
|
||
|
|
xe = 67324752,
|
||
|
|
ge = 134695760,
|
||
|
|
be = 33639248,
|
||
|
|
ve = 101010256,
|
||
|
|
ye = 101075792,
|
||
|
|
_e = 117853008,
|
||
|
|
ke = 22,
|
||
|
|
ze = 1,
|
||
|
|
Se = 39169,
|
||
|
|
Ae = 10,
|
||
|
|
Ce = 1,
|
||
|
|
We = 21589,
|
||
|
|
Fe = 1,
|
||
|
|
Ee = 8,
|
||
|
|
Ue = 2048,
|
||
|
|
De = "/",
|
||
|
|
je = new Date(2107, 11, 31),
|
||
|
|
qe = new Date(1980, 0, 1),
|
||
|
|
Te = void 0,
|
||
|
|
Oe = "undefined",
|
||
|
|
Re = "function"
|
||
|
|
class Ie {
|
||
|
|
constructor(e) {
|
||
|
|
return class extends TransformStream {
|
||
|
|
constructor(t, n) {
|
||
|
|
const r = new e(n)
|
||
|
|
super({
|
||
|
|
transform(e, t) {
|
||
|
|
t.enqueue(r.append(e))
|
||
|
|
},
|
||
|
|
flush(e) {
|
||
|
|
const t = r.flush()
|
||
|
|
t && e.enqueue(t)
|
||
|
|
}
|
||
|
|
})
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
let Le = 2
|
||
|
|
try {
|
||
|
|
typeof navigator != Oe && navigator.hardwareConcurrency && (Le = navigator.hardwareConcurrency)
|
||
|
|
} catch (e) {}
|
||
|
|
const Be = {
|
||
|
|
chunkSize: 524288,
|
||
|
|
maxWorkers: Le,
|
||
|
|
terminateWorkerTimeout: 5e3,
|
||
|
|
useWebWorkers: !0,
|
||
|
|
useCompressionStream: !0,
|
||
|
|
workerScripts: Te,
|
||
|
|
CompressionStreamNative: typeof CompressionStream != Oe && CompressionStream,
|
||
|
|
DecompressionStreamNative: typeof DecompressionStream != Oe && DecompressionStream
|
||
|
|
},
|
||
|
|
Me = Object.assign({}, Be)
|
||
|
|
function Ke() {
|
||
|
|
return Me
|
||
|
|
}
|
||
|
|
function Ne(e) {
|
||
|
|
return Math.max(e.chunkSize, 64)
|
||
|
|
}
|
||
|
|
function Ve(e) {
|
||
|
|
const {
|
||
|
|
baseURL: t,
|
||
|
|
chunkSize: n,
|
||
|
|
maxWorkers: r,
|
||
|
|
terminateWorkerTimeout: i,
|
||
|
|
useCompressionStream: s,
|
||
|
|
useWebWorkers: a,
|
||
|
|
Deflate: o,
|
||
|
|
Inflate: c,
|
||
|
|
CompressionStream: l,
|
||
|
|
DecompressionStream: d,
|
||
|
|
workerScripts: f
|
||
|
|
} = e
|
||
|
|
if (
|
||
|
|
(Pe("baseURL", t),
|
||
|
|
Pe("chunkSize", n),
|
||
|
|
Pe("maxWorkers", r),
|
||
|
|
Pe("terminateWorkerTimeout", i),
|
||
|
|
Pe("useCompressionStream", s),
|
||
|
|
Pe("useWebWorkers", a),
|
||
|
|
o && (Me.CompressionStream = new Ie(o)),
|
||
|
|
c && (Me.DecompressionStream = new Ie(c)),
|
||
|
|
Pe("CompressionStream", l),
|
||
|
|
Pe("DecompressionStream", d),
|
||
|
|
f !== Te)
|
||
|
|
) {
|
||
|
|
const { deflate: e, inflate: t } = f
|
||
|
|
if (((e || t) && (Me.workerScripts || (Me.workerScripts = {})), e)) {
|
||
|
|
if (!Array.isArray(e)) throw new Error("workerScripts.deflate must be an array")
|
||
|
|
Me.workerScripts.deflate = e
|
||
|
|
}
|
||
|
|
if (t) {
|
||
|
|
if (!Array.isArray(t)) throw new Error("workerScripts.inflate must be an array")
|
||
|
|
Me.workerScripts.inflate = t
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
function Pe(e, t) {
|
||
|
|
t !== Te && (Me[e] = t)
|
||
|
|
}
|
||
|
|
const He = {
|
||
|
|
application: {
|
||
|
|
"andrew-inset": "ez",
|
||
|
|
annodex: "anx",
|
||
|
|
"atom+xml": "atom",
|
||
|
|
"atomcat+xml": "atomcat",
|
||
|
|
"atomserv+xml": "atomsrv",
|
||
|
|
bbolin: "lin",
|
||
|
|
cap: ["cap", "pcap"],
|
||
|
|
"cu-seeme": "cu",
|
||
|
|
"davmount+xml": "davmount",
|
||
|
|
dsptype: "tsp",
|
||
|
|
ecmascript: ["es", "ecma"],
|
||
|
|
futuresplash: "spl",
|
||
|
|
hta: "hta",
|
||
|
|
"java-archive": "jar",
|
||
|
|
"java-serialized-object": "ser",
|
||
|
|
"java-vm": "class",
|
||
|
|
javascript: "js",
|
||
|
|
m3g: "m3g",
|
||
|
|
"mac-binhex40": "hqx",
|
||
|
|
mathematica: ["nb", "ma", "mb"],
|
||
|
|
msaccess: "mdb",
|
||
|
|
msword: ["doc", "dot"],
|
||
|
|
mxf: "mxf",
|
||
|
|
oda: "oda",
|
||
|
|
ogg: "ogx",
|
||
|
|
pdf: "pdf",
|
||
|
|
"pgp-keys": "key",
|
||
|
|
"pgp-signature": ["asc", "sig"],
|
||
|
|
"pics-rules": "prf",
|
||
|
|
postscript: ["ps", "ai", "eps", "epsi", "epsf", "eps2", "eps3"],
|
||
|
|
rar: "rar",
|
||
|
|
"rdf+xml": "rdf",
|
||
|
|
"rss+xml": "rss",
|
||
|
|
rtf: "rtf",
|
||
|
|
smil: ["smi", "smil"],
|
||
|
|
"xhtml+xml": ["xhtml", "xht"],
|
||
|
|
xml: ["xml", "xsl", "xsd"],
|
||
|
|
"xspf+xml": "xspf",
|
||
|
|
zip: "zip",
|
||
|
|
"vnd.android.package-archive": "apk",
|
||
|
|
"vnd.cinderella": "cdy",
|
||
|
|
"vnd.google-earth.kml+xml": "kml",
|
||
|
|
"vnd.google-earth.kmz": "kmz",
|
||
|
|
"vnd.mozilla.xul+xml": "xul",
|
||
|
|
"vnd.ms-excel": ["xls", "xlb", "xlt", "xlm", "xla", "xlc", "xlw"],
|
||
|
|
"vnd.ms-pki.seccat": "cat",
|
||
|
|
"vnd.ms-pki.stl": "stl",
|
||
|
|
"vnd.ms-powerpoint": ["ppt", "pps", "pot"],
|
||
|
|
"vnd.oasis.opendocument.chart": "odc",
|
||
|
|
"vnd.oasis.opendocument.database": "odb",
|
||
|
|
"vnd.oasis.opendocument.formula": "odf",
|
||
|
|
"vnd.oasis.opendocument.graphics": "odg",
|
||
|
|
"vnd.oasis.opendocument.graphics-template": "otg",
|
||
|
|
"vnd.oasis.opendocument.image": "odi",
|
||
|
|
"vnd.oasis.opendocument.presentation": "odp",
|
||
|
|
"vnd.oasis.opendocument.presentation-template": "otp",
|
||
|
|
"vnd.oasis.opendocument.spreadsheet": "ods",
|
||
|
|
"vnd.oasis.opendocument.spreadsheet-template": "ots",
|
||
|
|
"vnd.oasis.opendocument.text": "odt",
|
||
|
|
"vnd.oasis.opendocument.text-master": "odm",
|
||
|
|
"vnd.oasis.opendocument.text-template": "ott",
|
||
|
|
"vnd.oasis.opendocument.text-web": "oth",
|
||
|
|
"vnd.openxmlformats-officedocument.spreadsheetml.sheet": "xlsx",
|
||
|
|
"vnd.openxmlformats-officedocument.spreadsheetml.template": "xltx",
|
||
|
|
"vnd.openxmlformats-officedocument.presentationml.presentation": "pptx",
|
||
|
|
"vnd.openxmlformats-officedocument.presentationml.slideshow": "ppsx",
|
||
|
|
"vnd.openxmlformats-officedocument.presentationml.template": "potx",
|
||
|
|
"vnd.openxmlformats-officedocument.wordprocessingml.document": "docx",
|
||
|
|
"vnd.openxmlformats-officedocument.wordprocessingml.template": "dotx",
|
||
|
|
"vnd.smaf": "mmf",
|
||
|
|
"vnd.stardivision.calc": "sdc",
|
||
|
|
"vnd.stardivision.chart": "sds",
|
||
|
|
"vnd.stardivision.draw": "sda",
|
||
|
|
"vnd.stardivision.impress": "sdd",
|
||
|
|
"vnd.stardivision.math": ["sdf", "smf"],
|
||
|
|
"vnd.stardivision.writer": ["sdw", "vor"],
|
||
|
|
"vnd.stardivision.writer-global": "sgl",
|
||
|
|
"vnd.sun.xml.calc": "sxc",
|
||
|
|
"vnd.sun.xml.calc.template": "stc",
|
||
|
|
"vnd.sun.xml.draw": "sxd",
|
||
|
|
"vnd.sun.xml.draw.template": "std",
|
||
|
|
"vnd.sun.xml.impress": "sxi",
|
||
|
|
"vnd.sun.xml.impress.template": "sti",
|
||
|
|
"vnd.sun.xml.math": "sxm",
|
||
|
|
"vnd.sun.xml.writer": "sxw",
|
||
|
|
"vnd.sun.xml.writer.global": "sxg",
|
||
|
|
"vnd.sun.xml.writer.template": "stw",
|
||
|
|
"vnd.symbian.install": ["sis", "sisx"],
|
||
|
|
"vnd.visio": ["vsd", "vst", "vss", "vsw"],
|
||
|
|
"vnd.wap.wbxml": "wbxml",
|
||
|
|
"vnd.wap.wmlc": "wmlc",
|
||
|
|
"vnd.wap.wmlscriptc": "wmlsc",
|
||
|
|
"vnd.wordperfect": "wpd",
|
||
|
|
"vnd.wordperfect5.1": "wp5",
|
||
|
|
"x-123": "wk",
|
||
|
|
"x-7z-compressed": "7z",
|
||
|
|
"x-abiword": "abw",
|
||
|
|
"x-apple-diskimage": "dmg",
|
||
|
|
"x-bcpio": "bcpio",
|
||
|
|
"x-bittorrent": "torrent",
|
||
|
|
"x-cbr": ["cbr", "cba", "cbt", "cb7"],
|
||
|
|
"x-cbz": "cbz",
|
||
|
|
"x-cdf": ["cdf", "cda"],
|
||
|
|
"x-cdlink": "vcd",
|
||
|
|
"x-chess-pgn": "pgn",
|
||
|
|
"x-cpio": "cpio",
|
||
|
|
"x-csh": "csh",
|
||
|
|
"x-debian-package": ["deb", "udeb"],
|
||
|
|
"x-director": ["dcr", "dir", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"],
|
||
|
|
"x-dms": "dms",
|
||
|
|
"x-doom": "wad",
|
||
|
|
"x-dvi": "dvi",
|
||
|
|
"x-httpd-eruby": "rhtml",
|
||
|
|
"x-font": "pcf.Z",
|
||
|
|
"x-freemind": "mm",
|
||
|
|
"x-gnumeric": "gnumeric",
|
||
|
|
"x-go-sgf": "sgf",
|
||
|
|
"x-graphing-calculator": "gcf",
|
||
|
|
"x-gtar": ["gtar", "taz"],
|
||
|
|
"x-hdf": "hdf",
|
||
|
|
"x-httpd-php": ["phtml", "pht", "php"],
|
||
|
|
"x-httpd-php-source": "phps",
|
||
|
|
"x-httpd-php3": "php3",
|
||
|
|
"x-httpd-php3-preprocessed": "php3p",
|
||
|
|
"x-httpd-php4": "php4",
|
||
|
|
"x-httpd-php5": "php5",
|
||
|
|
"x-ica": "ica",
|
||
|
|
"x-info": "info",
|
||
|
|
"x-internet-signup": ["ins", "isp"],
|
||
|
|
"x-iphone": "iii",
|
||
|
|
"x-iso9660-image": "iso",
|
||
|
|
"x-java-jnlp-file": "jnlp",
|
||
|
|
"x-jmol": "jmz",
|
||
|
|
"x-killustrator": "kil",
|
||
|
|
"x-koan": ["skp", "skd", "skt", "skm"],
|
||
|
|
"x-kpresenter": ["kpr", "kpt"],
|
||
|
|
"x-kword": ["kwd", "kwt"],
|
||
|
|
"x-latex": "latex",
|
||
|
|
"x-lha": "lha",
|
||
|
|
"x-lyx": "lyx",
|
||
|
|
"x-lzh": "lzh",
|
||
|
|
"x-lzx": "lzx",
|
||
|
|
"x-maker": ["frm", "maker", "frame", "fm", "fb", "book", "fbdoc"],
|
||
|
|
"x-ms-wmd": "wmd",
|
||
|
|
"x-ms-wmz": "wmz",
|
||
|
|
"x-msdos-program": ["com", "exe", "bat", "dll"],
|
||
|
|
"x-msi": "msi",
|
||
|
|
"x-netcdf": ["nc", "cdf"],
|
||
|
|
"x-ns-proxy-autoconfig": ["pac", "dat"],
|
||
|
|
"x-nwc": "nwc",
|
||
|
|
"x-object": "o",
|
||
|
|
"x-oz-application": "oza",
|
||
|
|
"x-pkcs7-certreqresp": "p7r",
|
||
|
|
"x-python-code": ["pyc", "pyo"],
|
||
|
|
"x-qgis": ["qgs", "shp", "shx"],
|
||
|
|
"x-quicktimeplayer": "qtl",
|
||
|
|
"x-redhat-package-manager": "rpm",
|
||
|
|
"x-ruby": "rb",
|
||
|
|
"x-sh": "sh",
|
||
|
|
"x-shar": "shar",
|
||
|
|
"x-shockwave-flash": ["swf", "swfl"],
|
||
|
|
"x-silverlight": "scr",
|
||
|
|
"x-stuffit": "sit",
|
||
|
|
"x-sv4cpio": "sv4cpio",
|
||
|
|
"x-sv4crc": "sv4crc",
|
||
|
|
"x-tar": "tar",
|
||
|
|
"x-tcl": "tcl",
|
||
|
|
"x-tex-gf": "gf",
|
||
|
|
"x-tex-pk": "pk",
|
||
|
|
"x-texinfo": ["texinfo", "texi"],
|
||
|
|
"x-trash": ["~", "%", "bak", "old", "sik"],
|
||
|
|
"x-troff": ["t", "tr", "roff"],
|
||
|
|
"x-troff-man": "man",
|
||
|
|
"x-troff-me": "me",
|
||
|
|
"x-troff-ms": "ms",
|
||
|
|
"x-ustar": "ustar",
|
||
|
|
"x-wais-source": "src",
|
||
|
|
"x-wingz": "wz",
|
||
|
|
"x-x509-ca-cert": ["crt", "der", "cer"],
|
||
|
|
"x-xcf": "xcf",
|
||
|
|
"x-xfig": "fig",
|
||
|
|
"x-xpinstall": "xpi",
|
||
|
|
applixware: "aw",
|
||
|
|
"atomsvc+xml": "atomsvc",
|
||
|
|
"ccxml+xml": "ccxml",
|
||
|
|
"cdmi-capability": "cdmia",
|
||
|
|
"cdmi-container": "cdmic",
|
||
|
|
"cdmi-domain": "cdmid",
|
||
|
|
"cdmi-object": "cdmio",
|
||
|
|
"cdmi-queue": "cdmiq",
|
||
|
|
"docbook+xml": "dbk",
|
||
|
|
"dssc+der": "dssc",
|
||
|
|
"dssc+xml": "xdssc",
|
||
|
|
"emma+xml": "emma",
|
||
|
|
"epub+zip": "epub",
|
||
|
|
exi: "exi",
|
||
|
|
"font-tdpfr": "pfr",
|
||
|
|
"gml+xml": "gml",
|
||
|
|
"gpx+xml": "gpx",
|
||
|
|
gxf: "gxf",
|
||
|
|
hyperstudio: "stk",
|
||
|
|
"inkml+xml": ["ink", "inkml"],
|
||
|
|
ipfix: "ipfix",
|
||
|
|
json: "json",
|
||
|
|
"jsonml+json": "jsonml",
|
||
|
|
"lost+xml": "lostxml",
|
||
|
|
"mads+xml": "mads",
|
||
|
|
marc: "mrc",
|
||
|
|
"marcxml+xml": "mrcx",
|
||
|
|
"mathml+xml": "mathml",
|
||
|
|
mbox: "mbox",
|
||
|
|
"mediaservercontrol+xml": "mscml",
|
||
|
|
"metalink+xml": "metalink",
|
||
|
|
"metalink4+xml": "meta4",
|
||
|
|
"mets+xml": "mets",
|
||
|
|
"mods+xml": "mods",
|
||
|
|
mp21: ["m21", "mp21"],
|
||
|
|
mp4: "mp4s",
|
||
|
|
"oebps-package+xml": "opf",
|
||
|
|
"omdoc+xml": "omdoc",
|
||
|
|
onenote: ["onetoc", "onetoc2", "onetmp", "onepkg"],
|
||
|
|
oxps: "oxps",
|
||
|
|
"patch-ops-error+xml": "xer",
|
||
|
|
"pgp-encrypted": "pgp",
|
||
|
|
pkcs10: "p10",
|
||
|
|
"pkcs7-mime": ["p7m", "p7c"],
|
||
|
|
"pkcs7-signature": "p7s",
|
||
|
|
pkcs8: "p8",
|
||
|
|
"pkix-attr-cert": "ac",
|
||
|
|
"pkix-crl": "crl",
|
||
|
|
"pkix-pkipath": "pkipath",
|
||
|
|
pkixcmp: "pki",
|
||
|
|
"pls+xml": "pls",
|
||
|
|
"prs.cww": "cww",
|
||
|
|
"pskc+xml": "pskcxml",
|
||
|
|
"reginfo+xml": "rif",
|
||
|
|
"relax-ng-compact-syntax": "rnc",
|
||
|
|
"resource-lists+xml": "rl",
|
||
|
|
"resource-lists-diff+xml": "rld",
|
||
|
|
"rls-services+xml": "rs",
|
||
|
|
"rpki-ghostbusters": "gbr",
|
||
|
|
"rpki-manifest": "mft",
|
||
|
|
"rpki-roa": "roa",
|
||
|
|
"rsd+xml": "rsd",
|
||
|
|
"sbml+xml": "sbml",
|
||
|
|
"scvp-cv-request": "scq",
|
||
|
|
"scvp-cv-response": "scs",
|
||
|
|
"scvp-vp-request": "spq",
|
||
|
|
"scvp-vp-response": "spp",
|
||
|
|
sdp: "sdp",
|
||
|
|
"set-payment-initiation": "setpay",
|
||
|
|
"set-registration-initiation": "setreg",
|
||
|
|
"shf+xml": "shf",
|
||
|
|
"sparql-query": "rq",
|
||
|
|
"sparql-results+xml": "srx",
|
||
|
|
srgs: "gram",
|
||
|
|
"srgs+xml": "grxml",
|
||
|
|
"sru+xml": "sru",
|
||
|
|
"ssdl+xml": "ssdl",
|
||
|
|
"ssml+xml": "ssml",
|
||
|
|
"tei+xml": ["tei", "teicorpus"],
|
||
|
|
"thraud+xml": "tfi",
|
||
|
|
"timestamped-data": "tsd",
|
||
|
|
"vnd.3gpp.pic-bw-large": "plb",
|
||
|
|
"vnd.3gpp.pic-bw-small": "psb",
|
||
|
|
"vnd.3gpp.pic-bw-var": "pvb",
|
||
|
|
"vnd.3gpp2.tcap": "tcap",
|
||
|
|
"vnd.3m.post-it-notes": "pwn",
|
||
|
|
"vnd.accpac.simply.aso": "aso",
|
||
|
|
"vnd.accpac.simply.imp": "imp",
|
||
|
|
"vnd.acucobol": "acu",
|
||
|
|
"vnd.acucorp": ["atc", "acutc"],
|
||
|
|
"vnd.adobe.air-application-installer-package+zip": "air",
|
||
|
|
"vnd.adobe.formscentral.fcdt": "fcdt",
|
||
|
|
"vnd.adobe.fxp": ["fxp", "fxpl"],
|
||
|
|
"vnd.adobe.xdp+xml": "xdp",
|
||
|
|
"vnd.adobe.xfdf": "xfdf",
|
||
|
|
"vnd.ahead.space": "ahead",
|
||
|
|
"vnd.airzip.filesecure.azf": "azf",
|
||
|
|
"vnd.airzip.filesecure.azs": "azs",
|
||
|
|
"vnd.amazon.ebook": "azw",
|
||
|
|
"vnd.americandynamics.acc": "acc",
|
||
|
|
"vnd.amiga.ami": "ami",
|
||
|
|
"vnd.anser-web-certificate-issue-initiation": "cii",
|
||
|
|
"vnd.anser-web-funds-transfer-initiation": "fti",
|
||
|
|
"vnd.antix.game-component": "atx",
|
||
|
|
"vnd.apple.installer+xml": "mpkg",
|
||
|
|
"vnd.apple.mpegurl": "m3u8",
|
||
|
|
"vnd.aristanetworks.swi": "swi",
|
||
|
|
"vnd.astraea-software.iota": "iota",
|
||
|
|
"vnd.audiograph": "aep",
|
||
|
|
"vnd.blueice.multipass": "mpm",
|
||
|
|
"vnd.bmi": "bmi",
|
||
|
|
"vnd.businessobjects": "rep",
|
||
|
|
"vnd.chemdraw+xml": "cdxml",
|
||
|
|
"vnd.chipnuts.karaoke-mmd": "mmd",
|
||
|
|
"vnd.claymore": "cla",
|
||
|
|
"vnd.cloanto.rp9": "rp9",
|
||
|
|
"vnd.clonk.c4group": ["c4g", "c4d", "c4f", "c4p", "c4u"],
|
||
|
|
"vnd.cluetrust.cartomobile-config": "c11amc",
|
||
|
|
"vnd.cluetrust.cartomobile-config-pkg": "c11amz",
|
||
|
|
"vnd.commonspace": "csp",
|
||
|
|
"vnd.contact.cmsg": "cdbcmsg",
|
||
|
|
"vnd.cosmocaller": "cmc",
|
||
|
|
"vnd.crick.clicker": "clkx",
|
||
|
|
"vnd.crick.clicker.keyboard": "clkk",
|
||
|
|
"vnd.crick.clicker.palette": "clkp",
|
||
|
|
"vnd.crick.clicker.template": "clkt",
|
||
|
|
"vnd.crick.clicker.wordbank": "clkw",
|
||
|
|
"vnd.criticaltools.wbs+xml": "wbs",
|
||
|
|
"vnd.ctc-posml": "pml",
|
||
|
|
"vnd.cups-ppd": "ppd",
|
||
|
|
"vnd.curl.car": "car",
|
||
|
|
"vnd.curl.pcurl": "pcurl",
|
||
|
|
"vnd.dart": "dart",
|
||
|
|
"vnd.data-vision.rdz": "rdz",
|
||
|
|
"vnd.dece.data": ["uvf", "uvvf", "uvd", "uvvd"],
|
||
|
|
"vnd.dece.ttml+xml": ["uvt", "uvvt"],
|
||
|
|
"vnd.dece.unspecified": ["uvx", "uvvx"],
|
||
|
|
"vnd.dece.zip": ["uvz", "uvvz"],
|
||
|
|
"vnd.denovo.fcselayout-link": "fe_launch",
|
||
|
|
"vnd.dna": "dna",
|
||
|
|
"vnd.dolby.mlp": "mlp",
|
||
|
|
"vnd.dpgraph": "dpg",
|
||
|
|
"vnd.dreamfactory": "dfac",
|
||
|
|
"vnd.ds-keypoint": "kpxx",
|
||
|
|
"vnd.dvb.ait": "ait",
|
||
|
|
"vnd.dvb.service": "svc",
|
||
|
|
"vnd.dynageo": "geo",
|
||
|
|
"vnd.ecowin.chart": "mag",
|
||
|
|
"vnd.enliven": "nml",
|
||
|
|
"vnd.epson.esf": "esf",
|
||
|
|
"vnd.epson.msf": "msf",
|
||
|
|
"vnd.epson.quickanime": "qam",
|
||
|
|
"vnd.epson.salt": "slt",
|
||
|
|
"vnd.epson.ssf": "ssf",
|
||
|
|
"vnd.eszigno3+xml": ["es3", "et3"],
|
||
|
|
"vnd.ezpix-album": "ez2",
|
||
|
|
"vnd.ezpix-package": "ez3",
|
||
|
|
"vnd.fdf": "fdf",
|
||
|
|
"vnd.fdsn.mseed": "mseed",
|
||
|
|
"vnd.fdsn.seed": ["seed", "dataless"],
|
||
|
|
"vnd.flographit": "gph",
|
||
|
|
"vnd.fluxtime.clip": "ftc",
|
||
|
|
"vnd.framemaker": ["fm", "frame", "maker", "book"],
|
||
|
|
"vnd.frogans.fnc": "fnc",
|
||
|
|
"vnd.frogans.ltf": "ltf",
|
||
|
|
"vnd.fsc.weblaunch": "fsc",
|
||
|
|
"vnd.fujitsu.oasys": "oas",
|
||
|
|
"vnd.fujitsu.oasys2": "oa2",
|
||
|
|
"vnd.fujitsu.oasys3": "oa3",
|
||
|
|
"vnd.fujitsu.oasysgp": "fg5",
|
||
|
|
"vnd.fujitsu.oasysprs": "bh2",
|
||
|
|
"vnd.fujixerox.ddd": "ddd",
|
||
|
|
"vnd.fujixerox.docuworks": "xdw",
|
||
|
|
"vnd.fujixerox.docuworks.binder": "xbd",
|
||
|
|
"vnd.fuzzysheet": "fzs",
|
||
|
|
"vnd.genomatix.tuxedo": "txd",
|
||
|
|
"vnd.geogebra.file": "ggb",
|
||
|
|
"vnd.geogebra.tool": "ggt",
|
||
|
|
"vnd.geometry-explorer": ["gex", "gre"],
|
||
|
|
"vnd.geonext": "gxt",
|
||
|
|
"vnd.geoplan": "g2w",
|
||
|
|
"vnd.geospace": "g3w",
|
||
|
|
"vnd.gmx": "gmx",
|
||
|
|
"vnd.grafeq": ["gqf", "gqs"],
|
||
|
|
"vnd.groove-account": "gac",
|
||
|
|
"vnd.groove-help": "ghf",
|
||
|
|
"vnd.groove-identity-message": "gim",
|
||
|
|
"vnd.groove-injector": "grv",
|
||
|
|
"vnd.groove-tool-message": "gtm",
|
||
|
|
"vnd.groove-tool-template": "tpl",
|
||
|
|
"vnd.groove-vcard": "vcg",
|
||
|
|
"vnd.hal+xml": "hal",
|
||
|
|
"vnd.handheld-entertainment+xml": "zmm",
|
||
|
|
"vnd.hbci": "hbci",
|
||
|
|
"vnd.hhe.lesson-player": "les",
|
||
|
|
"vnd.hp-hpgl": "hpgl",
|
||
|
|
"vnd.hp-hpid": "hpid",
|
||
|
|
"vnd.hp-hps": "hps",
|
||
|
|
"vnd.hp-jlyt": "jlt",
|
||
|
|
"vnd.hp-pcl": "pcl",
|
||
|
|
"vnd.hp-pclxl": "pclxl",
|
||
|
|
"vnd.hydrostatix.sof-data": "sfd-hdstx",
|
||
|
|
"vnd.ibm.minipay": "mpy",
|
||
|
|
"vnd.ibm.modcap": ["afp", "listafp", "list3820"],
|
||
|
|
"vnd.ibm.rights-management": "irm",
|
||
|
|
"vnd.ibm.secure-container": "sc",
|
||
|
|
"vnd.iccprofile": ["icc", "icm"],
|
||
|
|
"vnd.igloader": "igl",
|
||
|
|
"vnd.immervision-ivp": "ivp",
|
||
|
|
"vnd.immervision-ivu": "ivu",
|
||
|
|
"vnd.insors.igm": "igm",
|
||
|
|
"vnd.intercon.formnet": ["xpw", "xpx"],
|
||
|
|
"vnd.intergeo": "i2g",
|
||
|
|
"vnd.intu.qbo": "qbo",
|
||
|
|
"vnd.intu.qfx": "qfx",
|
||
|
|
"vnd.ipunplugged.rcprofile": "rcprofile",
|
||
|
|
"vnd.irepository.package+xml": "irp",
|
||
|
|
"vnd.is-xpr": "xpr",
|
||
|
|
"vnd.isac.fcs": "fcs",
|
||
|
|
"vnd.jam": "jam",
|
||
|
|
"vnd.jcp.javame.midlet-rms": "rms",
|
||
|
|
"vnd.jisp": "jisp",
|
||
|
|
"vnd.joost.joda-archive": "joda",
|
||
|
|
"vnd.kahootz": ["ktz", "ktr"],
|
||
|
|
"vnd.kde.karbon": "karbon",
|
||
|
|
"vnd.kde.kchart": "chrt",
|
||
|
|
"vnd.kde.kformula": "kfo",
|
||
|
|
"vnd.kde.kivio": "flw",
|
||
|
|
"vnd.kde.kontour": "kon",
|
||
|
|
"vnd.kde.kpresenter": ["kpr", "kpt"],
|
||
|
|
"vnd.kde.kspread": "ksp",
|
||
|
|
"vnd.kde.kword": ["kwd", "kwt"],
|
||
|
|
"vnd.kenameaapp": "htke",
|
||
|
|
"vnd.kidspiration": "kia",
|
||
|
|
"vnd.kinar": ["kne", "knp"],
|
||
|
|
"vnd.koan": ["skp", "skd", "skt", "skm"],
|
||
|
|
"vnd.kodak-descriptor": "sse",
|
||
|
|
"vnd.las.las+xml": "lasxml",
|
||
|
|
"vnd.llamagraphics.life-balance.desktop": "lbd",
|
||
|
|
"vnd.llamagraphics.life-balance.exchange+xml": "lbe",
|
||
|
|
"vnd.lotus-1-2-3": "123",
|
||
|
|
"vnd.lotus-approach": "apr",
|
||
|
|
"vnd.lotus-freelance": "pre",
|
||
|
|
"vnd.lotus-notes": "nsf",
|
||
|
|
"vnd.lotus-organizer": "org",
|
||
|
|
"vnd.lotus-screencam": "scm",
|
||
|
|
"vnd.lotus-wordpro": "lwp",
|
||
|
|
"vnd.macports.portpkg": "portpkg",
|
||
|
|
"vnd.mcd": "mcd",
|
||
|
|
"vnd.medcalcdata": "mc1",
|
||
|
|
"vnd.mediastation.cdkey": "cdkey",
|
||
|
|
"vnd.mfer": "mwf",
|
||
|
|
"vnd.mfmp": "mfm",
|
||
|
|
"vnd.micrografx.flo": "flo",
|
||
|
|
"vnd.micrografx.igx": "igx",
|
||
|
|
"vnd.mif": "mif",
|
||
|
|
"vnd.mobius.daf": "daf",
|
||
|
|
"vnd.mobius.dis": "dis",
|
||
|
|
"vnd.mobius.mbk": "mbk",
|
||
|
|
"vnd.mobius.mqy": "mqy",
|
||
|
|
"vnd.mobius.msl": "msl",
|
||
|
|
"vnd.mobius.plc": "plc",
|
||
|
|
"vnd.mobius.txf": "txf",
|
||
|
|
"vnd.mophun.application": "mpn",
|
||
|
|
"vnd.mophun.certificate": "mpc",
|
||
|
|
"vnd.ms-artgalry": "cil",
|
||
|
|
"vnd.ms-cab-compressed": "cab",
|
||
|
|
"vnd.ms-excel.addin.macroenabled.12": "xlam",
|
||
|
|
"vnd.ms-excel.sheet.binary.macroenabled.12": "xlsb",
|
||
|
|
"vnd.ms-excel.sheet.macroenabled.12": "xlsm",
|
||
|
|
"vnd.ms-excel.template.macroenabled.12": "xltm",
|
||
|
|
"vnd.ms-fontobject": "eot",
|
||
|
|
"vnd.ms-htmlhelp": "chm",
|
||
|
|
"vnd.ms-ims": "ims",
|
||
|
|
"vnd.ms-lrm": "lrm",
|
||
|
|
"vnd.ms-officetheme": "thmx",
|
||
|
|
"vnd.ms-powerpoint.addin.macroenabled.12": "ppam",
|
||
|
|
"vnd.ms-powerpoint.presentation.macroenabled.12": "pptm",
|
||
|
|
"vnd.ms-powerpoint.slide.macroenabled.12": "sldm",
|
||
|
|
"vnd.ms-powerpoint.slideshow.macroenabled.12": "ppsm",
|
||
|
|
"vnd.ms-powerpoint.template.macroenabled.12": "potm",
|
||
|
|
"vnd.ms-project": ["mpp", "mpt"],
|
||
|
|
"vnd.ms-word.document.macroenabled.12": "docm",
|
||
|
|
"vnd.ms-word.template.macroenabled.12": "dotm",
|
||
|
|
"vnd.ms-works": ["wps", "wks", "wcm", "wdb"],
|
||
|
|
"vnd.ms-wpl": "wpl",
|
||
|
|
"vnd.ms-xpsdocument": "xps",
|
||
|
|
"vnd.mseq": "mseq",
|
||
|
|
"vnd.musician": "mus",
|
||
|
|
"vnd.muvee.style": "msty",
|
||
|
|
"vnd.mynfc": "taglet",
|
||
|
|
"vnd.neurolanguage.nlu": "nlu",
|
||
|
|
"vnd.nitf": ["ntf", "nitf"],
|
||
|
|
"vnd.noblenet-directory": "nnd",
|
||
|
|
"vnd.noblenet-sealer": "nns",
|
||
|
|
"vnd.noblenet-web": "nnw",
|
||
|
|
"vnd.nokia.n-gage.data": "ngdat",
|
||
|
|
"vnd.nokia.n-gage.symbian.install": "n-gage",
|
||
|
|
"vnd.nokia.radio-preset": "rpst",
|
||
|
|
"vnd.nokia.radio-presets": "rpss",
|
||
|
|
"vnd.novadigm.edm": "edm",
|
||
|
|
"vnd.novadigm.edx": "edx",
|
||
|
|
"vnd.novadigm.ext": "ext",
|
||
|
|
"vnd.oasis.opendocument.chart-template": "otc",
|
||
|
|
"vnd.oasis.opendocument.formula-template": "odft",
|
||
|
|
"vnd.oasis.opendocument.image-template": "oti",
|
||
|
|
"vnd.olpc-sugar": "xo",
|
||
|
|
"vnd.oma.dd2+xml": "dd2",
|
||
|
|
"vnd.openofficeorg.extension": "oxt",
|
||
|
|
"vnd.openxmlformats-officedocument.presentationml.slide": "sldx",
|
||
|
|
"vnd.osgeo.mapguide.package": "mgp",
|
||
|
|
"vnd.osgi.dp": "dp",
|
||
|
|
"vnd.osgi.subsystem": "esa",
|
||
|
|
"vnd.palm": ["pdb", "pqa", "oprc"],
|
||
|
|
"vnd.pawaafile": "paw",
|
||
|
|
"vnd.pg.format": "str",
|
||
|
|
"vnd.pg.osasli": "ei6",
|
||
|
|
"vnd.picsel": "efif",
|
||
|
|
"vnd.pmi.widget": "wg",
|
||
|
|
"vnd.pocketlearn": "plf",
|
||
|
|
"vnd.powerbuilder6": "pbd",
|
||
|
|
"vnd.previewsystems.box": "box",
|
||
|
|
"vnd.proteus.magazine": "mgz",
|
||
|
|
"vnd.publishare-delta-tree": "qps",
|
||
|
|
"vnd.pvi.ptid1": "ptid",
|
||
|
|
"vnd.quark.quarkxpress": ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"],
|
||
|
|
"vnd.realvnc.bed": "bed",
|
||
|
|
"vnd.recordare.musicxml": "mxl",
|
||
|
|
"vnd.recordare.musicxml+xml": "musicxml",
|
||
|
|
"vnd.rig.cryptonote": "cryptonote",
|
||
|
|
"vnd.rn-realmedia": "rm",
|
||
|
|
"vnd.rn-realmedia-vbr": "rmvb",
|
||
|
|
"vnd.route66.link66+xml": "link66",
|
||
|
|
"vnd.sailingtracker.track": "st",
|
||
|
|
"vnd.seemail": "see",
|
||
|
|
"vnd.sema": "sema",
|
||
|
|
"vnd.semd": "semd",
|
||
|
|
"vnd.semf": "semf",
|
||
|
|
"vnd.shana.informed.formdata": "ifm",
|
||
|
|
"vnd.shana.informed.formtemplate": "itp",
|
||
|
|
"vnd.shana.informed.interchange": "iif",
|
||
|
|
"vnd.shana.informed.package": "ipk",
|
||
|
|
"vnd.simtech-mindmapper": ["twd", "twds"],
|
||
|
|
"vnd.smart.teacher": "teacher",
|
||
|
|
"vnd.solent.sdkm+xml": ["sdkm", "sdkd"],
|
||
|
|
"vnd.spotfire.dxp": "dxp",
|
||
|
|
"vnd.spotfire.sfs": "sfs",
|
||
|
|
"vnd.stepmania.package": "smzip",
|
||
|
|
"vnd.stepmania.stepchart": "sm",
|
||
|
|
"vnd.sus-calendar": ["sus", "susp"],
|
||
|
|
"vnd.svd": "svd",
|
||
|
|
"vnd.syncml+xml": "xsm",
|
||
|
|
"vnd.syncml.dm+wbxml": "bdm",
|
||
|
|
"vnd.syncml.dm+xml": "xdm",
|
||
|
|
"vnd.tao.intent-module-archive": "tao",
|
||
|
|
"vnd.tcpdump.pcap": ["pcap", "cap", "dmp"],
|
||
|
|
"vnd.tmobile-livetv": "tmo",
|
||
|
|
"vnd.trid.tpt": "tpt",
|
||
|
|
"vnd.triscape.mxs": "mxs",
|
||
|
|
"vnd.trueapp": "tra",
|
||
|
|
"vnd.ufdl": ["ufd", "ufdl"],
|
||
|
|
"vnd.uiq.theme": "utz",
|
||
|
|
"vnd.umajin": "umj",
|
||
|
|
"vnd.unity": "unityweb",
|
||
|
|
"vnd.uoml+xml": "uoml",
|
||
|
|
"vnd.vcx": "vcx",
|
||
|
|
"vnd.visionary": "vis",
|
||
|
|
"vnd.vsf": "vsf",
|
||
|
|
"vnd.webturbo": "wtb",
|
||
|
|
"vnd.wolfram.player": "nbp",
|
||
|
|
"vnd.wqd": "wqd",
|
||
|
|
"vnd.wt.stf": "stf",
|
||
|
|
"vnd.xara": "xar",
|
||
|
|
"vnd.xfdl": "xfdl",
|
||
|
|
"vnd.yamaha.hv-dic": "hvd",
|
||
|
|
"vnd.yamaha.hv-script": "hvs",
|
||
|
|
"vnd.yamaha.hv-voice": "hvp",
|
||
|
|
"vnd.yamaha.openscoreformat": "osf",
|
||
|
|
"vnd.yamaha.openscoreformat.osfpvg+xml": "osfpvg",
|
||
|
|
"vnd.yamaha.smaf-audio": "saf",
|
||
|
|
"vnd.yamaha.smaf-phrase": "spf",
|
||
|
|
"vnd.yellowriver-custom-menu": "cmp",
|
||
|
|
"vnd.zul": ["zir", "zirz"],
|
||
|
|
"vnd.zzazz.deck+xml": "zaz",
|
||
|
|
"voicexml+xml": "vxml",
|
||
|
|
widget: "wgt",
|
||
|
|
winhlp: "hlp",
|
||
|
|
"wsdl+xml": "wsdl",
|
||
|
|
"wspolicy+xml": "wspolicy",
|
||
|
|
"x-ace-compressed": "ace",
|
||
|
|
"x-authorware-bin": ["aab", "x32", "u32", "vox"],
|
||
|
|
"x-authorware-map": "aam",
|
||
|
|
"x-authorware-seg": "aas",
|
||
|
|
"x-blorb": ["blb", "blorb"],
|
||
|
|
"x-bzip": "bz",
|
||
|
|
"x-bzip2": ["bz2", "boz"],
|
||
|
|
"x-cfs-compressed": "cfs",
|
||
|
|
"x-chat": "chat",
|
||
|
|
"x-conference": "nsc",
|
||
|
|
"x-dgc-compressed": "dgc",
|
||
|
|
"x-dtbncx+xml": "ncx",
|
||
|
|
"x-dtbook+xml": "dtb",
|
||
|
|
"x-dtbresource+xml": "res",
|
||
|
|
"x-eva": "eva",
|
||
|
|
"x-font-bdf": "bdf",
|
||
|
|
"x-font-ghostscript": "gsf",
|
||
|
|
"x-font-linux-psf": "psf",
|
||
|
|
"x-font-otf": "otf",
|
||
|
|
"x-font-pcf": "pcf",
|
||
|
|
"x-font-snf": "snf",
|
||
|
|
"x-font-ttf": ["ttf", "ttc"],
|
||
|
|
"x-font-type1": ["pfa", "pfb", "pfm", "afm"],
|
||
|
|
"x-font-woff": "woff",
|
||
|
|
"x-freearc": "arc",
|
||
|
|
"x-gca-compressed": "gca",
|
||
|
|
"x-glulx": "ulx",
|
||
|
|
"x-gramps-xml": "gramps",
|
||
|
|
"x-install-instructions": "install",
|
||
|
|
"x-lzh-compressed": ["lzh", "lha"],
|
||
|
|
"x-mie": "mie",
|
||
|
|
"x-mobipocket-ebook": ["prc", "mobi"],
|
||
|
|
"x-ms-application": "application",
|
||
|
|
"x-ms-shortcut": "lnk",
|
||
|
|
"x-ms-xbap": "xbap",
|
||
|
|
"x-msbinder": "obd",
|
||
|
|
"x-mscardfile": "crd",
|
||
|
|
"x-msclip": "clp",
|
||
|
|
"x-msdownload": ["exe", "dll", "com", "bat", "msi"],
|
||
|
|
"x-msmediaview": ["mvb", "m13", "m14"],
|
||
|
|
"x-msmetafile": ["wmf", "wmz", "emf", "emz"],
|
||
|
|
"x-msmoney": "mny",
|
||
|
|
"x-mspublisher": "pub",
|
||
|
|
"x-msschedule": "scd",
|
||
|
|
"x-msterminal": "trm",
|
||
|
|
"x-mswrite": "wri",
|
||
|
|
"x-nzb": "nzb",
|
||
|
|
"x-pkcs12": ["p12", "pfx"],
|
||
|
|
"x-pkcs7-certificates": ["p7b", "spc"],
|
||
|
|
"x-research-info-systems": "ris",
|
||
|
|
"x-silverlight-app": "xap",
|
||
|
|
"x-sql": "sql",
|
||
|
|
"x-stuffitx": "sitx",
|
||
|
|
"x-subrip": "srt",
|
||
|
|
"x-t3vm-image": "t3",
|
||
|
|
"x-tads": "gam",
|
||
|
|
"x-tex": "tex",
|
||
|
|
"x-tex-tfm": "tfm",
|
||
|
|
"x-tgif": "obj",
|
||
|
|
"x-xliff+xml": "xlf",
|
||
|
|
"x-xz": "xz",
|
||
|
|
"x-zmachine": ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"],
|
||
|
|
"xaml+xml": "xaml",
|
||
|
|
"xcap-diff+xml": "xdf",
|
||
|
|
"xenc+xml": "xenc",
|
||
|
|
"xml-dtd": "dtd",
|
||
|
|
"xop+xml": "xop",
|
||
|
|
"xproc+xml": "xpl",
|
||
|
|
"xslt+xml": "xslt",
|
||
|
|
"xv+xml": ["mxml", "xhvml", "xvml", "xvm"],
|
||
|
|
yang: "yang",
|
||
|
|
"yin+xml": "yin",
|
||
|
|
envoy: "evy",
|
||
|
|
fractals: "fif",
|
||
|
|
"internet-property-stream": "acx",
|
||
|
|
olescript: "axs",
|
||
|
|
"vnd.ms-outlook": "msg",
|
||
|
|
"vnd.ms-pkicertstore": "sst",
|
||
|
|
"x-compress": "z",
|
||
|
|
"x-compressed": "tgz",
|
||
|
|
"x-gzip": "gz",
|
||
|
|
"x-perfmon": ["pma", "pmc", "pml", "pmr", "pmw"],
|
||
|
|
"x-pkcs7-mime": ["p7c", "p7m"],
|
||
|
|
"ynd.ms-pkipko": "pko"
|
||
|
|
},
|
||
|
|
audio: {
|
||
|
|
amr: "amr",
|
||
|
|
"amr-wb": "awb",
|
||
|
|
annodex: "axa",
|
||
|
|
basic: ["au", "snd"],
|
||
|
|
flac: "flac",
|
||
|
|
midi: ["mid", "midi", "kar", "rmi"],
|
||
|
|
mpeg: ["mpga", "mpega", "mp2", "mp3", "m4a", "mp2a", "m2a", "m3a"],
|
||
|
|
mpegurl: "m3u",
|
||
|
|
ogg: ["oga", "ogg", "spx"],
|
||
|
|
"prs.sid": "sid",
|
||
|
|
"x-aiff": ["aif", "aiff", "aifc"],
|
||
|
|
"x-gsm": "gsm",
|
||
|
|
"x-ms-wma": "wma",
|
||
|
|
"x-ms-wax": "wax",
|
||
|
|
"x-pn-realaudio": "ram",
|
||
|
|
"x-realaudio": "ra",
|
||
|
|
"x-sd2": "sd2",
|
||
|
|
"x-wav": "wav",
|
||
|
|
adpcm: "adp",
|
||
|
|
mp4: "mp4a",
|
||
|
|
s3m: "s3m",
|
||
|
|
silk: "sil",
|
||
|
|
"vnd.dece.audio": ["uva", "uvva"],
|
||
|
|
"vnd.digital-winds": "eol",
|
||
|
|
"vnd.dra": "dra",
|
||
|
|
"vnd.dts": "dts",
|
||
|
|
"vnd.dts.hd": "dtshd",
|
||
|
|
"vnd.lucent.voice": "lvp",
|
||
|
|
"vnd.ms-playready.media.pya": "pya",
|
||
|
|
"vnd.nuera.ecelp4800": "ecelp4800",
|
||
|
|
"vnd.nuera.ecelp7470": "ecelp7470",
|
||
|
|
"vnd.nuera.ecelp9600": "ecelp9600",
|
||
|
|
"vnd.rip": "rip",
|
||
|
|
webm: "weba",
|
||
|
|
"x-aac": "aac",
|
||
|
|
"x-caf": "caf",
|
||
|
|
"x-matroska": "mka",
|
||
|
|
"x-pn-realaudio-plugin": "rmp",
|
||
|
|
xm: "xm",
|
||
|
|
mid: ["mid", "rmi"]
|
||
|
|
},
|
||
|
|
chemical: {
|
||
|
|
"x-alchemy": "alc",
|
||
|
|
"x-cache": ["cac", "cache"],
|
||
|
|
"x-cache-csf": "csf",
|
||
|
|
"x-cactvs-binary": ["cbin", "cascii", "ctab"],
|
||
|
|
"x-cdx": "cdx",
|
||
|
|
"x-chem3d": "c3d",
|
||
|
|
"x-cif": "cif",
|
||
|
|
"x-cmdf": "cmdf",
|
||
|
|
"x-cml": "cml",
|
||
|
|
"x-compass": "cpa",
|
||
|
|
"x-crossfire": "bsd",
|
||
|
|
"x-csml": ["csml", "csm"],
|
||
|
|
"x-ctx": "ctx",
|
||
|
|
"x-cxf": ["cxf", "cef"],
|
||
|
|
"x-embl-dl-nucleotide": ["emb", "embl"],
|
||
|
|
"x-gamess-input": ["inp", "gam", "gamin"],
|
||
|
|
"x-gaussian-checkpoint": ["fch", "fchk"],
|
||
|
|
"x-gaussian-cube": "cub",
|
||
|
|
"x-gaussian-input": ["gau", "gjc", "gjf"],
|
||
|
|
"x-gaussian-log": "gal",
|
||
|
|
"x-gcg8-sequence": "gcg",
|
||
|
|
"x-genbank": "gen",
|
||
|
|
"x-hin": "hin",
|
||
|
|
"x-isostar": ["istr", "ist"],
|
||
|
|
"x-jcamp-dx": ["jdx", "dx"],
|
||
|
|
"x-kinemage": "kin",
|
||
|
|
"x-macmolecule": "mcm",
|
||
|
|
"x-macromodel-input": ["mmd", "mmod"],
|
||
|
|
"x-mdl-molfile": "mol",
|
||
|
|
"x-mdl-rdfile": "rd",
|
||
|
|
"x-mdl-rxnfile": "rxn",
|
||
|
|
"x-mdl-sdfile": ["sd", "sdf"],
|
||
|
|
"x-mdl-tgf": "tgf",
|
||
|
|
"x-mmcif": "mcif",
|
||
|
|
"x-mol2": "mol2",
|
||
|
|
"x-molconn-Z": "b",
|
||
|
|
"x-mopac-graph": "gpt",
|
||
|
|
"x-mopac-input": ["mop", "mopcrt", "mpc", "zmt"],
|
||
|
|
"x-mopac-out": "moo",
|
||
|
|
"x-ncbi-asn1": "asn",
|
||
|
|
"x-ncbi-asn1-ascii": ["prt", "ent"],
|
||
|
|
"x-ncbi-asn1-binary": ["val", "aso"],
|
||
|
|
"x-pdb": ["pdb", "ent"],
|
||
|
|
"x-rosdal": "ros",
|
||
|
|
"x-swissprot": "sw",
|
||
|
|
"x-vamas-iso14976": "vms",
|
||
|
|
"x-vmd": "vmd",
|
||
|
|
"x-xtel": "xtel",
|
||
|
|
"x-xyz": "xyz"
|
||
|
|
},
|
||
|
|
image: {
|
||
|
|
gif: "gif",
|
||
|
|
ief: "ief",
|
||
|
|
jpeg: ["jpeg", "jpg", "jpe"],
|
||
|
|
pcx: "pcx",
|
||
|
|
png: "png",
|
||
|
|
"svg+xml": ["svg", "svgz"],
|
||
|
|
tiff: ["tiff", "tif"],
|
||
|
|
"vnd.djvu": ["djvu", "djv"],
|
||
|
|
"vnd.wap.wbmp": "wbmp",
|
||
|
|
"x-canon-cr2": "cr2",
|
||
|
|
"x-canon-crw": "crw",
|
||
|
|
"x-cmu-raster": "ras",
|
||
|
|
"x-coreldraw": "cdr",
|
||
|
|
"x-coreldrawpattern": "pat",
|
||
|
|
"x-coreldrawtemplate": "cdt",
|
||
|
|
"x-corelphotopaint": "cpt",
|
||
|
|
"x-epson-erf": "erf",
|
||
|
|
"x-icon": "ico",
|
||
|
|
"x-jg": "art",
|
||
|
|
"x-jng": "jng",
|
||
|
|
"x-nikon-nef": "nef",
|
||
|
|
"x-olympus-orf": "orf",
|
||
|
|
"x-photoshop": "psd",
|
||
|
|
"x-portable-anymap": "pnm",
|
||
|
|
"x-portable-bitmap": "pbm",
|
||
|
|
"x-portable-graymap": "pgm",
|
||
|
|
"x-portable-pixmap": "ppm",
|
||
|
|
"x-rgb": "rgb",
|
||
|
|
"x-xbitmap": "xbm",
|
||
|
|
"x-xpixmap": "xpm",
|
||
|
|
"x-xwindowdump": "xwd",
|
||
|
|
bmp: "bmp",
|
||
|
|
cgm: "cgm",
|
||
|
|
g3fax: "g3",
|
||
|
|
ktx: "ktx",
|
||
|
|
"prs.btif": "btif",
|
||
|
|
sgi: "sgi",
|
||
|
|
"vnd.dece.graphic": ["uvi", "uvvi", "uvg", "uvvg"],
|
||
|
|
"vnd.dwg": "dwg",
|
||
|
|
"vnd.dxf": "dxf",
|
||
|
|
"vnd.fastbidsheet": "fbs",
|
||
|
|
"vnd.fpx": "fpx",
|
||
|
|
"vnd.fst": "fst",
|
||
|
|
"vnd.fujixerox.edmics-mmr": "mmr",
|
||
|
|
"vnd.fujixerox.edmics-rlc": "rlc",
|
||
|
|
"vnd.ms-modi": "mdi",
|
||
|
|
"vnd.ms-photo": "wdp",
|
||
|
|
"vnd.net-fpx": "npx",
|
||
|
|
"vnd.xiff": "xif",
|
||
|
|
webp: "webp",
|
||
|
|
"x-3ds": "3ds",
|
||
|
|
"x-cmx": "cmx",
|
||
|
|
"x-freehand": ["fh", "fhc", "fh4", "fh5", "fh7"],
|
||
|
|
"x-pict": ["pic", "pct"],
|
||
|
|
"x-tga": "tga",
|
||
|
|
"cis-cod": "cod",
|
||
|
|
pipeg: "jfif"
|
||
|
|
},
|
||
|
|
message: { rfc822: ["eml", "mime", "mht", "mhtml", "nws"] },
|
||
|
|
model: {
|
||
|
|
iges: ["igs", "iges"],
|
||
|
|
mesh: ["msh", "mesh", "silo"],
|
||
|
|
vrml: ["wrl", "vrml"],
|
||
|
|
"x3d+vrml": ["x3dv", "x3dvz"],
|
||
|
|
"x3d+xml": ["x3d", "x3dz"],
|
||
|
|
"x3d+binary": ["x3db", "x3dbz"],
|
||
|
|
"vnd.collada+xml": "dae",
|
||
|
|
"vnd.dwf": "dwf",
|
||
|
|
"vnd.gdl": "gdl",
|
||
|
|
"vnd.gtw": "gtw",
|
||
|
|
"vnd.mts": "mts",
|
||
|
|
"vnd.vtu": "vtu"
|
||
|
|
},
|
||
|
|
text: {
|
||
|
|
"cache-manifest": ["manifest", "appcache"],
|
||
|
|
calendar: ["ics", "icz", "ifb"],
|
||
|
|
css: "css",
|
||
|
|
csv: "csv",
|
||
|
|
h323: "323",
|
||
|
|
html: ["html", "htm", "shtml", "stm"],
|
||
|
|
iuls: "uls",
|
||
|
|
mathml: "mml",
|
||
|
|
plain: ["txt", "text", "brf", "conf", "def", "list", "log", "in", "bas"],
|
||
|
|
richtext: "rtx",
|
||
|
|
scriptlet: ["sct", "wsc"],
|
||
|
|
texmacs: ["tm", "ts"],
|
||
|
|
"tab-separated-values": "tsv",
|
||
|
|
"vnd.sun.j2me.app-descriptor": "jad",
|
||
|
|
"vnd.wap.wml": "wml",
|
||
|
|
"vnd.wap.wmlscript": "wmls",
|
||
|
|
"x-bibtex": "bib",
|
||
|
|
"x-boo": "boo",
|
||
|
|
"x-c++hdr": ["h++", "hpp", "hxx", "hh"],
|
||
|
|
"x-c++src": ["c++", "cpp", "cxx", "cc"],
|
||
|
|
"x-component": "htc",
|
||
|
|
"x-dsrc": "d",
|
||
|
|
"x-diff": ["diff", "patch"],
|
||
|
|
"x-haskell": "hs",
|
||
|
|
"x-java": "java",
|
||
|
|
"x-literate-haskell": "lhs",
|
||
|
|
"x-moc": "moc",
|
||
|
|
"x-pascal": ["p", "pas"],
|
||
|
|
"x-pcs-gcd": "gcd",
|
||
|
|
"x-perl": ["pl", "pm"],
|
||
|
|
"x-python": "py",
|
||
|
|
"x-scala": "scala",
|
||
|
|
"x-setext": "etx",
|
||
|
|
"x-tcl": ["tcl", "tk"],
|
||
|
|
"x-tex": ["tex", "ltx", "sty", "cls"],
|
||
|
|
"x-vcalendar": "vcs",
|
||
|
|
"x-vcard": "vcf",
|
||
|
|
n3: "n3",
|
||
|
|
"prs.lines.tag": "dsc",
|
||
|
|
sgml: ["sgml", "sgm"],
|
||
|
|
troff: ["t", "tr", "roff", "man", "me", "ms"],
|
||
|
|
turtle: "ttl",
|
||
|
|
"uri-list": ["uri", "uris", "urls"],
|
||
|
|
vcard: "vcard",
|
||
|
|
"vnd.curl": "curl",
|
||
|
|
"vnd.curl.dcurl": "dcurl",
|
||
|
|
"vnd.curl.scurl": "scurl",
|
||
|
|
"vnd.curl.mcurl": "mcurl",
|
||
|
|
"vnd.dvb.subtitle": "sub",
|
||
|
|
"vnd.fly": "fly",
|
||
|
|
"vnd.fmi.flexstor": "flx",
|
||
|
|
"vnd.graphviz": "gv",
|
||
|
|
"vnd.in3d.3dml": "3dml",
|
||
|
|
"vnd.in3d.spot": "spot",
|
||
|
|
"x-asm": ["s", "asm"],
|
||
|
|
"x-c": ["c", "cc", "cxx", "cpp", "h", "hh", "dic"],
|
||
|
|
"x-fortran": ["f", "for", "f77", "f90"],
|
||
|
|
"x-opml": "opml",
|
||
|
|
"x-nfo": "nfo",
|
||
|
|
"x-sfv": "sfv",
|
||
|
|
"x-uuencode": "uu",
|
||
|
|
webviewhtml: "htt"
|
||
|
|
},
|
||
|
|
video: {
|
||
|
|
avif: ".avif",
|
||
|
|
"3gpp": "3gp",
|
||
|
|
annodex: "axv",
|
||
|
|
dl: "dl",
|
||
|
|
dv: ["dif", "dv"],
|
||
|
|
fli: "fli",
|
||
|
|
gl: "gl",
|
||
|
|
mpeg: ["mpeg", "mpg", "mpe", "m1v", "m2v", "mp2", "mpa", "mpv2"],
|
||
|
|
mp4: ["mp4", "mp4v", "mpg4"],
|
||
|
|
quicktime: ["qt", "mov"],
|
||
|
|
ogg: "ogv",
|
||
|
|
"vnd.mpegurl": ["mxu", "m4u"],
|
||
|
|
"x-flv": "flv",
|
||
|
|
"x-la-asf": ["lsf", "lsx"],
|
||
|
|
"x-mng": "mng",
|
||
|
|
"x-ms-asf": ["asf", "asx", "asr"],
|
||
|
|
"x-ms-wm": "wm",
|
||
|
|
"x-ms-wmv": "wmv",
|
||
|
|
"x-ms-wmx": "wmx",
|
||
|
|
"x-ms-wvx": "wvx",
|
||
|
|
"x-msvideo": "avi",
|
||
|
|
"x-sgi-movie": "movie",
|
||
|
|
"x-matroska": ["mpv", "mkv", "mk3d", "mks"],
|
||
|
|
"3gpp2": "3g2",
|
||
|
|
h261: "h261",
|
||
|
|
h263: "h263",
|
||
|
|
h264: "h264",
|
||
|
|
jpeg: "jpgv",
|
||
|
|
jpm: ["jpm", "jpgm"],
|
||
|
|
mj2: ["mj2", "mjp2"],
|
||
|
|
"vnd.dece.hd": ["uvh", "uvvh"],
|
||
|
|
"vnd.dece.mobile": ["uvm", "uvvm"],
|
||
|
|
"vnd.dece.pd": ["uvp", "uvvp"],
|
||
|
|
"vnd.dece.sd": ["uvs", "uvvs"],
|
||
|
|
"vnd.dece.video": ["uvv", "uvvv"],
|
||
|
|
"vnd.dvb.file": "dvb",
|
||
|
|
"vnd.fvt": "fvt",
|
||
|
|
"vnd.ms-playready.media.pyv": "pyv",
|
||
|
|
"vnd.uvvu.mp4": ["uvu", "uvvu"],
|
||
|
|
"vnd.vivo": "viv",
|
||
|
|
webm: "webm",
|
||
|
|
"x-f4v": "f4v",
|
||
|
|
"x-m4v": "m4v",
|
||
|
|
"x-ms-vob": "vob",
|
||
|
|
"x-smv": "smv"
|
||
|
|
},
|
||
|
|
"x-conference": { "x-cooltalk": "ice" },
|
||
|
|
"x-world": { "x-vrml": ["vrm", "vrml", "wrl", "flr", "wrz", "xaf", "xof"] }
|
||
|
|
}
|
||
|
|
;(() => {
|
||
|
|
const e = {}
|
||
|
|
for (const t in He)
|
||
|
|
if (He.hasOwnProperty(t))
|
||
|
|
for (const n in He[t])
|
||
|
|
if (He[t].hasOwnProperty(n)) {
|
||
|
|
const r = He[t][n]
|
||
|
|
if ("string" == typeof r) e[r] = t + "/" + n
|
||
|
|
else for (let i = 0; i < r.length; i++) e[r[i]] = t + "/" + n
|
||
|
|
}
|
||
|
|
})()
|
||
|
|
const Ye = []
|
||
|
|
for (let e = 0; e < 256; e++) {
|
||
|
|
let t = e
|
||
|
|
for (let e = 0; e < 8; e++) 1 & t ? (t = (t >>> 1) ^ 3988292384) : (t >>>= 1)
|
||
|
|
Ye[e] = t
|
||
|
|
}
|
||
|
|
class Xe {
|
||
|
|
constructor(e) {
|
||
|
|
this.crc = e || -1
|
||
|
|
}
|
||
|
|
append(e) {
|
||
|
|
let t = 0 | this.crc
|
||
|
|
for (let n = 0, r = 0 | e.length; n < r; n++) t = (t >>> 8) ^ Ye[255 & (t ^ e[n])]
|
||
|
|
this.crc = t
|
||
|
|
}
|
||
|
|
get() {
|
||
|
|
return ~this.crc
|
||
|
|
}
|
||
|
|
}
|
||
|
|
class Ze extends TransformStream {
|
||
|
|
constructor() {
|
||
|
|
const e = new Xe()
|
||
|
|
super({
|
||
|
|
transform(t) {
|
||
|
|
e.append(t)
|
||
|
|
},
|
||
|
|
flush(t) {
|
||
|
|
const n = new Uint8Array(4)
|
||
|
|
new DataView(n.buffer).setUint32(0, e.get()), t.enqueue(n)
|
||
|
|
}
|
||
|
|
})
|
||
|
|
}
|
||
|
|
}
|
||
|
|
function Je(e) {
|
||
|
|
if ("undefined" == typeof TextEncoder) {
|
||
|
|
e = unescape(encodeURIComponent(e))
|
||
|
|
const t = new Uint8Array(e.length)
|
||
|
|
for (let n = 0; n < t.length; n++) t[n] = e.charCodeAt(n)
|
||
|
|
return t
|
||
|
|
}
|
||
|
|
return new TextEncoder().encode(e)
|
||
|
|
}
|
||
|
|
const Ge = {
|
||
|
|
concat(e, t) {
|
||
|
|
if (0 === e.length || 0 === t.length) return e.concat(t)
|
||
|
|
const n = e[e.length - 1],
|
||
|
|
r = Ge.getPartial(n)
|
||
|
|
return 32 === r ? e.concat(t) : Ge._shiftRight(t, r, 0 | n, e.slice(0, e.length - 1))
|
||
|
|
},
|
||
|
|
bitLength(e) {
|
||
|
|
const t = e.length
|
||
|
|
if (0 === t) return 0
|
||
|
|
const n = e[t - 1]
|
||
|
|
return 32 * (t - 1) + Ge.getPartial(n)
|
||
|
|
},
|
||
|
|
clamp(e, t) {
|
||
|
|
if (32 * e.length < t) return e
|
||
|
|
const n = (e = e.slice(0, Math.ceil(t / 32))).length
|
||
|
|
return (t &= 31), n > 0 && t && (e[n - 1] = Ge.partial(t, e[n - 1] & (2147483648 >> (t - 1)), 1)), e
|
||
|
|
},
|
||
|
|
partial: (e, t, n) => (32 === e ? t : (n ? 0 | t : t << (32 - e)) + 1099511627776 * e),
|
||
|
|
getPartial: (e) => Math.round(e / 1099511627776) || 32,
|
||
|
|
_shiftRight(e, t, n, r) {
|
||
|
|
for (void 0 === r && (r = []); t >= 32; t -= 32) r.push(n), (n = 0)
|
||
|
|
if (0 === t) return r.concat(e)
|
||
|
|
for (let i = 0; i < e.length; i++) r.push(n | (e[i] >>> t)), (n = e[i] << (32 - t))
|
||
|
|
const i = e.length ? e[e.length - 1] : 0,
|
||
|
|
s = Ge.getPartial(i)
|
||
|
|
return r.push(Ge.partial((t + s) & 31, t + s > 32 ? n : r.pop(), 1)), r
|
||
|
|
}
|
||
|
|
},
|
||
|
|
$e = {
|
||
|
|
bytes: {
|
||
|
|
fromBits(e) {
|
||
|
|
const t = Ge.bitLength(e) / 8,
|
||
|
|
n = new Uint8Array(t)
|
||
|
|
let r
|
||
|
|
for (let i = 0; i < t; i++) 0 == (3 & i) && (r = e[i / 4]), (n[i] = r >>> 24), (r <<= 8)
|
||
|
|
return n
|
||
|
|
},
|
||
|
|
toBits(e) {
|
||
|
|
const t = []
|
||
|
|
let n,
|
||
|
|
r = 0
|
||
|
|
for (n = 0; n < e.length; n++) (r = (r << 8) | e[n]), 3 == (3 & n) && (t.push(r), (r = 0))
|
||
|
|
return 3 & n && t.push(Ge.partial(8 * (3 & n), r)), t
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
Qe = class {
|
||
|
|
constructor(e) {
|
||
|
|
const t = this
|
||
|
|
;(t.blockSize = 512),
|
||
|
|
(t._init = [1732584193, 4023233417, 2562383102, 271733878, 3285377520]),
|
||
|
|
(t._key = [1518500249, 1859775393, 2400959708, 3395469782]),
|
||
|
|
e ? ((t._h = e._h.slice(0)), (t._buffer = e._buffer.slice(0)), (t._length = e._length)) : t.reset()
|
||
|
|
}
|
||
|
|
reset() {
|
||
|
|
const e = this
|
||
|
|
return (e._h = e._init.slice(0)), (e._buffer = []), (e._length = 0), e
|
||
|
|
}
|
||
|
|
update(e) {
|
||
|
|
const t = this
|
||
|
|
"string" == typeof e && (e = $e.utf8String.toBits(e))
|
||
|
|
const n = (t._buffer = Ge.concat(t._buffer, e)),
|
||
|
|
r = t._length,
|
||
|
|
i = (t._length = r + Ge.bitLength(e))
|
||
|
|
if (i > 9007199254740991) throw new Error("Cannot hash more than 2^53 - 1 bits")
|
||
|
|
const s = new Uint32Array(n)
|
||
|
|
let a = 0
|
||
|
|
for (let e = t.blockSize + r - ((t.blockSize + r) & (t.blockSize - 1)); e <= i; e += t.blockSize)
|
||
|
|
t._block(s.subarray(16 * a, 16 * (a + 1))), (a += 1)
|
||
|
|
return n.splice(0, 16 * a), t
|
||
|
|
}
|
||
|
|
finalize() {
|
||
|
|
const e = this
|
||
|
|
let t = e._buffer
|
||
|
|
const n = e._h
|
||
|
|
t = Ge.concat(t, [Ge.partial(1, 1)])
|
||
|
|
for (let e = t.length + 2; 15 & e; e++) t.push(0)
|
||
|
|
for (t.push(Math.floor(e._length / 4294967296)), t.push(0 | e._length); t.length; ) e._block(t.splice(0, 16))
|
||
|
|
return e.reset(), n
|
||
|
|
}
|
||
|
|
_f(e, t, n, r) {
|
||
|
|
return e <= 19 ? (t & n) | (~t & r) : e <= 39 ? t ^ n ^ r : e <= 59 ? (t & n) | (t & r) | (n & r) : e <= 79 ? t ^ n ^ r : void 0
|
||
|
|
}
|
||
|
|
_S(e, t) {
|
||
|
|
return (t << e) | (t >>> (32 - e))
|
||
|
|
}
|
||
|
|
_block(e) {
|
||
|
|
const t = this,
|
||
|
|
n = t._h,
|
||
|
|
r = Array(80)
|
||
|
|
for (let t = 0; t < 16; t++) r[t] = e[t]
|
||
|
|
let i = n[0],
|
||
|
|
s = n[1],
|
||
|
|
a = n[2],
|
||
|
|
o = n[3],
|
||
|
|
c = n[4]
|
||
|
|
for (let e = 0; e <= 79; e++) {
|
||
|
|
e >= 16 && (r[e] = t._S(1, r[e - 3] ^ r[e - 8] ^ r[e - 14] ^ r[e - 16]))
|
||
|
|
const n = (t._S(5, i) + t._f(e, s, a, o) + c + r[e] + t._key[Math.floor(e / 20)]) | 0
|
||
|
|
;(c = o), (o = a), (a = t._S(30, s)), (s = i), (i = n)
|
||
|
|
}
|
||
|
|
;(n[0] = (n[0] + i) | 0), (n[1] = (n[1] + s) | 0), (n[2] = (n[2] + a) | 0), (n[3] = (n[3] + o) | 0), (n[4] = (n[4] + c) | 0)
|
||
|
|
}
|
||
|
|
},
|
||
|
|
et = class {
|
||
|
|
constructor(e) {
|
||
|
|
const t = this
|
||
|
|
;(t._tables = [
|
||
|
|
[[], [], [], [], []],
|
||
|
|
[[], [], [], [], []]
|
||
|
|
]),
|
||
|
|
t._tables[0][0][0] || t._precompute()
|
||
|
|
const n = t._tables[0][4],
|
||
|
|
r = t._tables[1],
|
||
|
|
i = e.length
|
||
|
|
let s,
|
||
|
|
a,
|
||
|
|
o,
|
||
|
|
c = 1
|
||
|
|
if (4 !== i && 6 !== i && 8 !== i) throw new Error("invalid aes key size")
|
||
|
|
for (t._key = [(a = e.slice(0)), (o = [])], s = i; s < 4 * i + 28; s++) {
|
||
|
|
let e = a[s - 1]
|
||
|
|
;(s % i == 0 || (8 === i && s % i == 4)) &&
|
||
|
|
((e = (n[e >>> 24] << 24) ^ (n[(e >> 16) & 255] << 16) ^ (n[(e >> 8) & 255] << 8) ^ n[255 & e]),
|
||
|
|
s % i == 0 && ((e = (e << 8) ^ (e >>> 24) ^ (c << 24)), (c = (c << 1) ^ (283 * (c >> 7))))),
|
||
|
|
(a[s] = a[s - i] ^ e)
|
||
|
|
}
|
||
|
|
for (let e = 0; s; e++, s--) {
|
||
|
|
const t = a[3 & e ? s : s - 4]
|
||
|
|
o[e] = s <= 4 || e < 4 ? t : r[0][n[t >>> 24]] ^ r[1][n[(t >> 16) & 255]] ^ r[2][n[(t >> 8) & 255]] ^ r[3][n[255 & t]]
|
||
|
|
}
|
||
|
|
}
|
||
|
|
encrypt(e) {
|
||
|
|
return this._crypt(e, 0)
|
||
|
|
}
|
||
|
|
decrypt(e) {
|
||
|
|
return this._crypt(e, 1)
|
||
|
|
}
|
||
|
|
_precompute() {
|
||
|
|
const e = this._tables[0],
|
||
|
|
t = this._tables[1],
|
||
|
|
n = e[4],
|
||
|
|
r = t[4],
|
||
|
|
i = [],
|
||
|
|
s = []
|
||
|
|
let a, o, c, l
|
||
|
|
for (let e = 0; e < 256; e++) s[(i[e] = (e << 1) ^ (283 * (e >> 7))) ^ e] = e
|
||
|
|
for (let d = (a = 0); !n[d]; d ^= o || 1, a = s[a] || 1) {
|
||
|
|
let s = a ^ (a << 1) ^ (a << 2) ^ (a << 3) ^ (a << 4)
|
||
|
|
;(s = (s >> 8) ^ (255 & s) ^ 99), (n[d] = s), (r[s] = d), (l = i[(c = i[(o = i[d])])])
|
||
|
|
let f = (16843009 * l) ^ (65537 * c) ^ (257 * o) ^ (16843008 * d),
|
||
|
|
u = (257 * i[s]) ^ (16843008 * s)
|
||
|
|
for (let n = 0; n < 4; n++) (e[n][d] = u = (u << 24) ^ (u >>> 8)), (t[n][s] = f = (f << 24) ^ (f >>> 8))
|
||
|
|
}
|
||
|
|
for (let n = 0; n < 5; n++) (e[n] = e[n].slice(0)), (t[n] = t[n].slice(0))
|
||
|
|
}
|
||
|
|
_crypt(e, t) {
|
||
|
|
if (4 !== e.length) throw new Error("invalid aes block size")
|
||
|
|
const n = this._key[t],
|
||
|
|
r = n.length / 4 - 2,
|
||
|
|
i = [0, 0, 0, 0],
|
||
|
|
s = this._tables[t],
|
||
|
|
a = s[0],
|
||
|
|
o = s[1],
|
||
|
|
c = s[2],
|
||
|
|
l = s[3],
|
||
|
|
d = s[4]
|
||
|
|
let f,
|
||
|
|
u,
|
||
|
|
p,
|
||
|
|
m = e[0] ^ n[0],
|
||
|
|
w = e[t ? 3 : 1] ^ n[1],
|
||
|
|
h = e[2] ^ n[2],
|
||
|
|
x = e[t ? 1 : 3] ^ n[3],
|
||
|
|
g = 4
|
||
|
|
for (let e = 0; e < r; e++)
|
||
|
|
(f = a[m >>> 24] ^ o[(w >> 16) & 255] ^ c[(h >> 8) & 255] ^ l[255 & x] ^ n[g]),
|
||
|
|
(u = a[w >>> 24] ^ o[(h >> 16) & 255] ^ c[(x >> 8) & 255] ^ l[255 & m] ^ n[g + 1]),
|
||
|
|
(p = a[h >>> 24] ^ o[(x >> 16) & 255] ^ c[(m >> 8) & 255] ^ l[255 & w] ^ n[g + 2]),
|
||
|
|
(x = a[x >>> 24] ^ o[(m >> 16) & 255] ^ c[(w >> 8) & 255] ^ l[255 & h] ^ n[g + 3]),
|
||
|
|
(g += 4),
|
||
|
|
(m = f),
|
||
|
|
(w = u),
|
||
|
|
(h = p)
|
||
|
|
for (let e = 0; e < 4; e++)
|
||
|
|
(i[t ? 3 & -e : e] = (d[m >>> 24] << 24) ^ (d[(w >> 16) & 255] << 16) ^ (d[(h >> 8) & 255] << 8) ^ d[255 & x] ^ n[g++]),
|
||
|
|
(f = m),
|
||
|
|
(m = w),
|
||
|
|
(w = h),
|
||
|
|
(h = x),
|
||
|
|
(x = f)
|
||
|
|
return i
|
||
|
|
}
|
||
|
|
},
|
||
|
|
tt = {
|
||
|
|
getRandomValues(e) {
|
||
|
|
const t = new Uint32Array(e.buffer),
|
||
|
|
n = (e) => {
|
||
|
|
let t = 987654321
|
||
|
|
const n = 4294967295
|
||
|
|
return function () {
|
||
|
|
return (
|
||
|
|
(t = (36969 * (65535 & t) + (t >> 16)) & n),
|
||
|
|
((((t << 16) + (e = (18e3 * (65535 & e) + (e >> 16)) & n)) & n) / 4294967296 + 0.5) * (Math.random() > 0.5 ? 1 : -1)
|
||
|
|
)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
for (let r, i = 0; i < e.length; i += 4) {
|
||
|
|
const e = n(4294967296 * (r || Math.random()))
|
||
|
|
;(r = 987654071 * e()), (t[i / 4] = (4294967296 * e()) | 0)
|
||
|
|
}
|
||
|
|
return e
|
||
|
|
}
|
||
|
|
},
|
||
|
|
nt = class {
|
||
|
|
constructor(e, t) {
|
||
|
|
;(this._prf = e), (this._initIv = t), (this._iv = t)
|
||
|
|
}
|
||
|
|
reset() {
|
||
|
|
this._iv = this._initIv
|
||
|
|
}
|
||
|
|
update(e) {
|
||
|
|
return this.calculate(this._prf, e, this._iv)
|
||
|
|
}
|
||
|
|
incWord(e) {
|
||
|
|
if (255 == ((e >> 24) & 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
|
||
|
|
}
|
||
|
|
incCounter(e) {
|
||
|
|
0 === (e[0] = this.incWord(e[0])) && (e[1] = this.incWord(e[1]))
|
||
|
|
}
|
||
|
|
calculate(e, t, n) {
|
||
|
|
let r
|
||
|
|
if (!(r = t.length)) return []
|
||
|
|
const i = Ge.bitLength(t)
|
||
|
|
for (let i = 0; i < r; i += 4) {
|
||
|
|
this.incCounter(n)
|
||
|
|
const r = e.encrypt(n)
|
||
|
|
;(t[i] ^= r[0]), (t[i + 1] ^= r[1]), (t[i + 2] ^= r[2]), (t[i + 3] ^= r[3])
|
||
|
|
}
|
||
|
|
return Ge.clamp(t, i)
|
||
|
|
}
|
||
|
|
},
|
||
|
|
rt = {
|
||
|
|
importKey: (e) => new rt.hmacSha1($e.bytes.toBits(e)),
|
||
|
|
pbkdf2(e, t, n, r) {
|
||
|
|
if (((n = n || 1e4), r < 0 || n < 0)) throw new Error("invalid params to pbkdf2")
|
||
|
|
const i = (1 + (r >> 5)) << 2
|
||
|
|
let s, a, o, c, l
|
||
|
|
const d = new ArrayBuffer(i),
|
||
|
|
f = new DataView(d)
|
||
|
|
let u = 0
|
||
|
|
const p = Ge
|
||
|
|
for (t = $e.bytes.toBits(t), l = 1; u < (i || 1); l++) {
|
||
|
|
for (s = a = e.encrypt(p.concat(t, [l])), o = 1; o < n; o++) for (a = e.encrypt(a), c = 0; c < a.length; c++) s[c] ^= a[c]
|
||
|
|
for (o = 0; u < (i || 1) && o < s.length; o++) f.setInt32(u, s[o]), (u += 4)
|
||
|
|
}
|
||
|
|
return d.slice(0, r / 8)
|
||
|
|
},
|
||
|
|
hmacSha1: class {
|
||
|
|
constructor(e) {
|
||
|
|
const t = this,
|
||
|
|
n = (t._hash = Qe),
|
||
|
|
r = [[], []]
|
||
|
|
t._baseHash = [new n(), new n()]
|
||
|
|
const i = t._baseHash[0].blockSize / 32
|
||
|
|
e.length > i && (e = new n().update(e).finalize())
|
||
|
|
for (let t = 0; t < i; t++) (r[0][t] = 909522486 ^ e[t]), (r[1][t] = 1549556828 ^ e[t])
|
||
|
|
t._baseHash[0].update(r[0]), t._baseHash[1].update(r[1]), (t._resultHash = new n(t._baseHash[0]))
|
||
|
|
}
|
||
|
|
reset() {
|
||
|
|
const e = this
|
||
|
|
;(e._resultHash = new e._hash(e._baseHash[0])), (e._updated = !1)
|
||
|
|
}
|
||
|
|
update(e) {
|
||
|
|
;(this._updated = !0), this._resultHash.update(e)
|
||
|
|
}
|
||
|
|
digest() {
|
||
|
|
const e = this,
|
||
|
|
t = e._resultHash.finalize(),
|
||
|
|
n = new e._hash(e._baseHash[1]).update(t).finalize()
|
||
|
|
return e.reset(), n
|
||
|
|
}
|
||
|
|
encrypt(e) {
|
||
|
|
if (this._updated) throw new Error("encrypt on already updated hmac called!")
|
||
|
|
return this.update(e), this.digest(e)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
it = "undefined" != typeof crypto && "function" == typeof crypto.getRandomValues,
|
||
|
|
st = "Invalid password",
|
||
|
|
at = "Invalid signature",
|
||
|
|
ot = "zipjs-abort-check-password"
|
||
|
|
function ct(e) {
|
||
|
|
return it ? crypto.getRandomValues(e) : tt.getRandomValues(e)
|
||
|
|
}
|
||
|
|
const lt = 16,
|
||
|
|
dt = { name: "PBKDF2" },
|
||
|
|
ft = Object.assign({ hash: { name: "HMAC" } }, dt),
|
||
|
|
ut = Object.assign({ iterations: 1e3, hash: { name: "SHA-1" } }, dt),
|
||
|
|
pt = ["deriveBits"],
|
||
|
|
mt = [8, 12, 16],
|
||
|
|
wt = [16, 24, 32],
|
||
|
|
ht = 10,
|
||
|
|
xt = [0, 0, 0, 0],
|
||
|
|
gt = "undefined",
|
||
|
|
bt = "function",
|
||
|
|
vt = typeof crypto != gt,
|
||
|
|
yt = vt && crypto.subtle,
|
||
|
|
_t = vt && typeof yt != gt,
|
||
|
|
kt = $e.bytes,
|
||
|
|
zt = et,
|
||
|
|
St = nt,
|
||
|
|
At = rt.hmacSha1
|
||
|
|
let Ct = vt && _t && typeof yt.importKey == bt,
|
||
|
|
Wt = vt && _t && typeof yt.deriveBits == bt
|
||
|
|
class Ft extends TransformStream {
|
||
|
|
constructor({ password: e, signed: t, encryptionStrength: n, checkPasswordOnly: r }) {
|
||
|
|
super({
|
||
|
|
start() {
|
||
|
|
Object.assign(this, {
|
||
|
|
ready: new Promise((e) => (this.resolveReady = e)),
|
||
|
|
password: e,
|
||
|
|
signed: t,
|
||
|
|
strength: n - 1,
|
||
|
|
pending: new Uint8Array()
|
||
|
|
})
|
||
|
|
},
|
||
|
|
async transform(e, t) {
|
||
|
|
const n = this,
|
||
|
|
{ password: i, strength: s, resolveReady: a, ready: o } = n
|
||
|
|
i
|
||
|
|
? (await (async function (e, t, n, r) {
|
||
|
|
const i = await Dt(e, t, n, qt(r, 0, mt[t])),
|
||
|
|
s = qt(r, mt[t])
|
||
|
|
if (i[0] != s[0] || i[1] != s[1]) throw new Error(st)
|
||
|
|
})(n, s, i, qt(e, 0, mt[s] + 2)),
|
||
|
|
(e = qt(e, mt[s] + 2)),
|
||
|
|
r ? t.error(new Error(ot)) : a())
|
||
|
|
: await o
|
||
|
|
const c = new Uint8Array(e.length - ht - ((e.length - ht) % lt))
|
||
|
|
t.enqueue(Ut(n, e, c, 0, ht, !0))
|
||
|
|
},
|
||
|
|
async flush(e) {
|
||
|
|
const { signed: t, ctr: n, hmac: r, pending: i, ready: s } = this
|
||
|
|
await s
|
||
|
|
const a = qt(i, 0, i.length - ht),
|
||
|
|
o = qt(i, i.length - ht)
|
||
|
|
let c = new Uint8Array()
|
||
|
|
if (a.length) {
|
||
|
|
const e = Ot(kt, a)
|
||
|
|
r.update(e)
|
||
|
|
const t = n.update(e)
|
||
|
|
c = Tt(kt, t)
|
||
|
|
}
|
||
|
|
if (t) {
|
||
|
|
const e = qt(Tt(kt, r.digest()), 0, ht)
|
||
|
|
for (let t = 0; t < ht; t++) if (e[t] != o[t]) throw new Error(at)
|
||
|
|
}
|
||
|
|
e.enqueue(c)
|
||
|
|
}
|
||
|
|
})
|
||
|
|
}
|
||
|
|
}
|
||
|
|
class Et extends TransformStream {
|
||
|
|
constructor({ password: e, encryptionStrength: t }) {
|
||
|
|
let n
|
||
|
|
super({
|
||
|
|
start() {
|
||
|
|
Object.assign(this, { ready: new Promise((e) => (this.resolveReady = e)), password: e, strength: t - 1, pending: new Uint8Array() })
|
||
|
|
},
|
||
|
|
async transform(e, t) {
|
||
|
|
const n = this,
|
||
|
|
{ password: r, strength: i, resolveReady: s, ready: a } = n
|
||
|
|
let o = new Uint8Array()
|
||
|
|
r
|
||
|
|
? ((o = await (async function (e, t, n) {
|
||
|
|
const r = ct(new Uint8Array(mt[t]))
|
||
|
|
return jt(r, await Dt(e, t, n, r))
|
||
|
|
})(n, i, r)),
|
||
|
|
s())
|
||
|
|
: await a
|
||
|
|
const c = new Uint8Array(o.length + e.length - (e.length % lt))
|
||
|
|
c.set(o, 0), t.enqueue(Ut(n, e, c, o.length, 0))
|
||
|
|
},
|
||
|
|
async flush(e) {
|
||
|
|
const { ctr: t, hmac: r, pending: i, ready: s } = this
|
||
|
|
await s
|
||
|
|
let a = new Uint8Array()
|
||
|
|
if (i.length) {
|
||
|
|
const e = t.update(Ot(kt, i))
|
||
|
|
r.update(e), (a = Tt(kt, e))
|
||
|
|
}
|
||
|
|
;(n.signature = Tt(kt, r.digest()).slice(0, ht)), e.enqueue(jt(a, n.signature))
|
||
|
|
}
|
||
|
|
}),
|
||
|
|
(n = this)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
function Ut(e, t, n, r, i, s) {
|
||
|
|
const { ctr: a, hmac: o, pending: c } = e,
|
||
|
|
l = t.length - i
|
||
|
|
let d
|
||
|
|
for (
|
||
|
|
c.length &&
|
||
|
|
((t = jt(c, t)),
|
||
|
|
(n = (function (e, t) {
|
||
|
|
if (t && t > e.length) {
|
||
|
|
const n = e
|
||
|
|
;(e = new Uint8Array(t)).set(n, 0)
|
||
|
|
}
|
||
|
|
return e
|
||
|
|
})(n, l - (l % lt)))),
|
||
|
|
d = 0;
|
||
|
|
d <= l - lt;
|
||
|
|
d += lt
|
||
|
|
) {
|
||
|
|
const e = Ot(kt, qt(t, d, d + lt))
|
||
|
|
s && o.update(e)
|
||
|
|
const i = a.update(e)
|
||
|
|
s || o.update(i), n.set(Tt(kt, i), d + r)
|
||
|
|
}
|
||
|
|
return (e.pending = qt(t, d)), n
|
||
|
|
}
|
||
|
|
async function Dt(e, t, n, r) {
|
||
|
|
e.password = null
|
||
|
|
const i = Je(n),
|
||
|
|
s = await (async function (e, t, n, r, i) {
|
||
|
|
if (!Ct) return rt.importKey(t)
|
||
|
|
try {
|
||
|
|
return await yt.importKey(e, t, n, !1, i)
|
||
|
|
} catch (e) {
|
||
|
|
return (Ct = !1), rt.importKey(t)
|
||
|
|
}
|
||
|
|
})("raw", i, ft, 0, pt),
|
||
|
|
a = await (async function (e, t, n) {
|
||
|
|
if (!Wt) return rt.pbkdf2(t, e.salt, ut.iterations, n)
|
||
|
|
try {
|
||
|
|
return await yt.deriveBits(e, t, n)
|
||
|
|
} catch (r) {
|
||
|
|
return (Wt = !1), rt.pbkdf2(t, e.salt, ut.iterations, n)
|
||
|
|
}
|
||
|
|
})(Object.assign({ salt: r }, ut), s, 8 * (2 * wt[t] + 2)),
|
||
|
|
o = new Uint8Array(a),
|
||
|
|
c = Ot(kt, qt(o, 0, wt[t])),
|
||
|
|
l = Ot(kt, qt(o, wt[t], 2 * wt[t])),
|
||
|
|
d = qt(o, 2 * wt[t])
|
||
|
|
return (
|
||
|
|
Object.assign(e, { keys: { key: c, authentication: l, passwordVerification: d }, ctr: new St(new zt(c), Array.from(xt)), hmac: new At(l) }), d
|
||
|
|
)
|
||
|
|
}
|
||
|
|
function jt(e, t) {
|
||
|
|
let n = e
|
||
|
|
return e.length + t.length && ((n = new Uint8Array(e.length + t.length)), n.set(e, 0), n.set(t, e.length)), n
|
||
|
|
}
|
||
|
|
function qt(e, t, n) {
|
||
|
|
return e.subarray(t, n)
|
||
|
|
}
|
||
|
|
function Tt(e, t) {
|
||
|
|
return e.fromBits(t)
|
||
|
|
}
|
||
|
|
function Ot(e, t) {
|
||
|
|
return e.toBits(t)
|
||
|
|
}
|
||
|
|
class Rt extends TransformStream {
|
||
|
|
constructor({ password: e, passwordVerification: t, checkPasswordOnly: n }) {
|
||
|
|
super({
|
||
|
|
start() {
|
||
|
|
Object.assign(this, { password: e, passwordVerification: t }), Mt(this, e)
|
||
|
|
},
|
||
|
|
transform(e, t) {
|
||
|
|
const r = this
|
||
|
|
if (r.password) {
|
||
|
|
const t = Lt(r, e.subarray(0, 12))
|
||
|
|
if (((r.password = null), t[11] != r.passwordVerification)) throw new Error(st)
|
||
|
|
e = e.subarray(12)
|
||
|
|
}
|
||
|
|
n ? t.error(new Error(ot)) : t.enqueue(Lt(r, e))
|
||
|
|
}
|
||
|
|
})
|
||
|
|
}
|
||
|
|
}
|
||
|
|
class It extends TransformStream {
|
||
|
|
constructor({ password: e, passwordVerification: t }) {
|
||
|
|
super({
|
||
|
|
start() {
|
||
|
|
Object.assign(this, { password: e, passwordVerification: t }), Mt(this, e)
|
||
|
|
},
|
||
|
|
transform(e, t) {
|
||
|
|
const n = this
|
||
|
|
let r, i
|
||
|
|
if (n.password) {
|
||
|
|
n.password = null
|
||
|
|
const t = ct(new Uint8Array(12))
|
||
|
|
;(t[11] = n.passwordVerification), (r = new Uint8Array(e.length + t.length)), r.set(Bt(n, t), 0), (i = 12)
|
||
|
|
} else (r = new Uint8Array(e.length)), (i = 0)
|
||
|
|
r.set(Bt(n, e), i), t.enqueue(r)
|
||
|
|
}
|
||
|
|
})
|
||
|
|
}
|
||
|
|
}
|
||
|
|
function Lt(e, t) {
|
||
|
|
const n = new Uint8Array(t.length)
|
||
|
|
for (let r = 0; r < t.length; r++) (n[r] = Nt(e) ^ t[r]), Kt(e, n[r])
|
||
|
|
return n
|
||
|
|
}
|
||
|
|
function Bt(e, t) {
|
||
|
|
const n = new Uint8Array(t.length)
|
||
|
|
for (let r = 0; r < t.length; r++) (n[r] = Nt(e) ^ t[r]), Kt(e, t[r])
|
||
|
|
return n
|
||
|
|
}
|
||
|
|
function Mt(e, t) {
|
||
|
|
const n = [305419896, 591751049, 878082192]
|
||
|
|
Object.assign(e, { keys: n, crcKey0: new Xe(n[0]), crcKey2: new Xe(n[2]) })
|
||
|
|
for (let n = 0; n < t.length; n++) Kt(e, t.charCodeAt(n))
|
||
|
|
}
|
||
|
|
function Kt(e, t) {
|
||
|
|
let [n, r, i] = e.keys
|
||
|
|
e.crcKey0.append([t]),
|
||
|
|
(n = ~e.crcKey0.get()),
|
||
|
|
(r = Pt(Math.imul(Pt(r + Vt(n)), 134775813) + 1)),
|
||
|
|
e.crcKey2.append([r >>> 24]),
|
||
|
|
(i = ~e.crcKey2.get()),
|
||
|
|
(e.keys = [n, r, i])
|
||
|
|
}
|
||
|
|
function Nt(e) {
|
||
|
|
const t = 2 | e.keys[2]
|
||
|
|
return Vt(Math.imul(t, 1 ^ t) >>> 8)
|
||
|
|
}
|
||
|
|
function Vt(e) {
|
||
|
|
return 255 & e
|
||
|
|
}
|
||
|
|
function Pt(e) {
|
||
|
|
return 4294967295 & e
|
||
|
|
}
|
||
|
|
const Ht = "deflate-raw"
|
||
|
|
class Yt extends TransformStream {
|
||
|
|
constructor(e, { chunkSize: t, CompressionStream: n, CompressionStreamNative: r }) {
|
||
|
|
super({})
|
||
|
|
const { compressed: i, encrypted: s, useCompressionStream: a, zipCrypto: o, signed: c, level: l } = e,
|
||
|
|
d = this
|
||
|
|
let f,
|
||
|
|
u,
|
||
|
|
p = Zt(super.readable)
|
||
|
|
;(s && !o) || !c || (([p, f] = p.tee()), (f = $t(f, new Ze()))),
|
||
|
|
i && (p = Gt(p, a, { level: l, chunkSize: t }, r, n)),
|
||
|
|
s && (o ? (p = $t(p, new It(e))) : ((u = new Et(e)), (p = $t(p, u)))),
|
||
|
|
Jt(d, p, async () => {
|
||
|
|
let e
|
||
|
|
s && !o && (e = u.signature),
|
||
|
|
(s && !o) || !c || ((e = await f.getReader().read()), (e = new DataView(e.value.buffer).getUint32(0))),
|
||
|
|
(d.signature = e)
|
||
|
|
})
|
||
|
|
}
|
||
|
|
}
|
||
|
|
class Xt extends TransformStream {
|
||
|
|
constructor(e, { chunkSize: t, DecompressionStream: n, DecompressionStreamNative: r }) {
|
||
|
|
super({})
|
||
|
|
const { zipCrypto: i, encrypted: s, signed: a, signature: o, compressed: c, useCompressionStream: l } = e
|
||
|
|
let d,
|
||
|
|
f,
|
||
|
|
u = Zt(super.readable)
|
||
|
|
s && (i ? (u = $t(u, new Rt(e))) : ((f = new Ft(e)), (u = $t(u, f)))),
|
||
|
|
c && (u = Gt(u, l, { chunkSize: t }, r, n)),
|
||
|
|
(s && !i) || !a || (([u, d] = u.tee()), (d = $t(d, new Ze()))),
|
||
|
|
Jt(this, u, async () => {
|
||
|
|
if ((!s || i) && a) {
|
||
|
|
const e = await d.getReader().read(),
|
||
|
|
t = new DataView(e.value.buffer)
|
||
|
|
if (o != t.getUint32(0, !1)) throw new Error(at)
|
||
|
|
}
|
||
|
|
})
|
||
|
|
}
|
||
|
|
}
|
||
|
|
function Zt(e) {
|
||
|
|
return $t(
|
||
|
|
e,
|
||
|
|
new TransformStream({
|
||
|
|
transform(e, t) {
|
||
|
|
e && e.length && t.enqueue(e)
|
||
|
|
}
|
||
|
|
})
|
||
|
|
)
|
||
|
|
}
|
||
|
|
function Jt(e, t, n) {
|
||
|
|
;(t = $t(t, new TransformStream({ flush: n }))), Object.defineProperty(e, "readable", { get: () => t })
|
||
|
|
}
|
||
|
|
function Gt(e, t, n, r, i) {
|
||
|
|
try {
|
||
|
|
e = $t(e, new (t && r ? r : i)(Ht, n))
|
||
|
|
} catch (r) {
|
||
|
|
if (!t) throw r
|
||
|
|
e = $t(e, new i(Ht, n))
|
||
|
|
}
|
||
|
|
return e
|
||
|
|
}
|
||
|
|
function $t(e, t) {
|
||
|
|
return e.pipeThrough(t)
|
||
|
|
}
|
||
|
|
const Qt = "message",
|
||
|
|
en = "pull",
|
||
|
|
tn = "data",
|
||
|
|
nn = "ack",
|
||
|
|
rn = "close",
|
||
|
|
sn = "deflate",
|
||
|
|
an = "inflate"
|
||
|
|
class on extends TransformStream {
|
||
|
|
constructor(e, t) {
|
||
|
|
super({})
|
||
|
|
const n = this,
|
||
|
|
{ codecType: r } = e
|
||
|
|
let i
|
||
|
|
r.startsWith(sn) ? (i = Yt) : r.startsWith(an) && (i = Xt)
|
||
|
|
let s = 0
|
||
|
|
const a = new i(e, t),
|
||
|
|
o = super.readable,
|
||
|
|
c = new TransformStream({
|
||
|
|
transform(e, t) {
|
||
|
|
e && e.length && ((s += e.length), t.enqueue(e))
|
||
|
|
},
|
||
|
|
flush() {
|
||
|
|
const { signature: e } = a
|
||
|
|
Object.assign(n, { signature: e, size: s })
|
||
|
|
}
|
||
|
|
})
|
||
|
|
Object.defineProperty(n, "readable", { get: () => o.pipeThrough(a).pipeThrough(c) })
|
||
|
|
}
|
||
|
|
}
|
||
|
|
const cn = typeof Worker != Oe
|
||
|
|
class ln {
|
||
|
|
constructor(e, { readable: t, writable: n }, { options: r, config: i, streamOptions: s, useWebWorkers: a, transferStreams: o, scripts: c }, l) {
|
||
|
|
const { signal: d } = s
|
||
|
|
return (
|
||
|
|
Object.assign(e, {
|
||
|
|
busy: !0,
|
||
|
|
readable: t.pipeThrough(new dn(t, s, i), { signal: d }),
|
||
|
|
writable: n,
|
||
|
|
options: Object.assign({}, r),
|
||
|
|
scripts: c,
|
||
|
|
transferStreams: o,
|
||
|
|
terminate() {
|
||
|
|
const { worker: t, busy: n } = e
|
||
|
|
t && !n && (t.terminate(), (e.interface = null))
|
||
|
|
},
|
||
|
|
onTaskFinished() {
|
||
|
|
;(e.busy = !1), l(e)
|
||
|
|
}
|
||
|
|
}),
|
||
|
|
(a && cn ? pn : un)(e, i)
|
||
|
|
)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
class dn extends TransformStream {
|
||
|
|
constructor(e, { onstart: t, onprogress: n, size: r, onend: i }, { chunkSize: s }) {
|
||
|
|
let a = 0
|
||
|
|
super(
|
||
|
|
{
|
||
|
|
start() {
|
||
|
|
t && fn(t, r)
|
||
|
|
},
|
||
|
|
async transform(e, t) {
|
||
|
|
;(a += e.length), n && (await fn(n, a, r)), t.enqueue(e)
|
||
|
|
},
|
||
|
|
flush() {
|
||
|
|
;(e.size = a), i && fn(i, a)
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{ highWaterMark: 1, size: () => s }
|
||
|
|
)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
async function fn(e, ...t) {
|
||
|
|
try {
|
||
|
|
await e(...t)
|
||
|
|
} catch (e) {}
|
||
|
|
}
|
||
|
|
function un(e, t) {
|
||
|
|
return {
|
||
|
|
run: () =>
|
||
|
|
(async function ({ options: e, readable: t, writable: n, onTaskFinished: r }, i) {
|
||
|
|
const s = new on(e, i)
|
||
|
|
try {
|
||
|
|
await t.pipeThrough(s).pipeTo(n, { preventClose: !0, preventAbort: !0 })
|
||
|
|
const { signature: e, size: r } = s
|
||
|
|
return { signature: e, size: r }
|
||
|
|
} finally {
|
||
|
|
r()
|
||
|
|
}
|
||
|
|
})(e, t)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
function pn(e, { baseURL: t, chunkSize: n }) {
|
||
|
|
return (
|
||
|
|
e.interface ||
|
||
|
|
Object.assign(e, {
|
||
|
|
worker: hn(e.scripts[0], t, e),
|
||
|
|
interface: {
|
||
|
|
run: () =>
|
||
|
|
(async function (e, t) {
|
||
|
|
let n, r
|
||
|
|
const i = new Promise((e, t) => {
|
||
|
|
;(n = e), (r = t)
|
||
|
|
})
|
||
|
|
Object.assign(e, { reader: null, writer: null, resolveResult: n, rejectResult: r, result: i })
|
||
|
|
const { readable: s, options: a, scripts: o } = e,
|
||
|
|
{ writable: c, closed: l } = (function (e) {
|
||
|
|
const t = e.getWriter()
|
||
|
|
let n
|
||
|
|
const r = new Promise((e) => (n = e))
|
||
|
|
return {
|
||
|
|
writable: new WritableStream({
|
||
|
|
async write(e) {
|
||
|
|
await t.ready, await t.write(e)
|
||
|
|
},
|
||
|
|
close() {
|
||
|
|
t.releaseLock(), n()
|
||
|
|
},
|
||
|
|
abort: (e) => t.abort(e)
|
||
|
|
}),
|
||
|
|
closed: r
|
||
|
|
}
|
||
|
|
})(e.writable)
|
||
|
|
xn({ type: "start", scripts: o.slice(1), options: a, config: t, readable: s, writable: c }, e) ||
|
||
|
|
Object.assign(e, { reader: s.getReader(), writer: c.getWriter() })
|
||
|
|
const d = await i
|
||
|
|
try {
|
||
|
|
await c.close()
|
||
|
|
} catch (e) {}
|
||
|
|
return await l, d
|
||
|
|
})(e, { chunkSize: n })
|
||
|
|
}
|
||
|
|
}),
|
||
|
|
e.interface
|
||
|
|
)
|
||
|
|
}
|
||
|
|
let mn = !0,
|
||
|
|
wn = !0
|
||
|
|
function hn(e, t, n) {
|
||
|
|
const r = { type: "module" }
|
||
|
|
let i, s
|
||
|
|
typeof e == Re && (e = e())
|
||
|
|
try {
|
||
|
|
i = new URL(e, t)
|
||
|
|
} catch (t) {
|
||
|
|
i = e
|
||
|
|
}
|
||
|
|
if (mn)
|
||
|
|
try {
|
||
|
|
s = new Worker(i)
|
||
|
|
} catch (e) {
|
||
|
|
;(mn = !1), (s = new Worker(i, r))
|
||
|
|
}
|
||
|
|
else s = new Worker(i, r)
|
||
|
|
return (
|
||
|
|
s.addEventListener(Qt, (e) =>
|
||
|
|
(async function ({ data: e }, t) {
|
||
|
|
const { type: n, value: r, messageId: i, result: s, error: a } = e,
|
||
|
|
{ reader: o, writer: c, resolveResult: l, rejectResult: d, onTaskFinished: f } = t
|
||
|
|
try {
|
||
|
|
if (a) {
|
||
|
|
const { message: e, stack: t, code: n, name: r } = a,
|
||
|
|
i = new Error(e)
|
||
|
|
Object.assign(i, { stack: t, code: n, name: r }), u(i)
|
||
|
|
} else {
|
||
|
|
if (n == en) {
|
||
|
|
const { value: e, done: n } = await o.read()
|
||
|
|
xn({ type: tn, value: e, done: n, messageId: i }, t)
|
||
|
|
}
|
||
|
|
n == tn && (await c.ready, await c.write(new Uint8Array(r)), xn({ type: nn, messageId: i }, t)), n == rn && u(null, s)
|
||
|
|
}
|
||
|
|
} catch (a) {
|
||
|
|
u(a)
|
||
|
|
}
|
||
|
|
function u(e, t) {
|
||
|
|
e ? d(e) : l(t), c && c.releaseLock(), f()
|
||
|
|
}
|
||
|
|
})(e, n)
|
||
|
|
),
|
||
|
|
s
|
||
|
|
)
|
||
|
|
}
|
||
|
|
function xn(e, { worker: t, writer: n, onTaskFinished: r, transferStreams: i }) {
|
||
|
|
try {
|
||
|
|
let { value: n, readable: r, writable: s } = e
|
||
|
|
const a = []
|
||
|
|
if (n) {
|
||
|
|
const { buffer: t, length: r } = n
|
||
|
|
r != t.byteLength && (n = new Uint8Array(n)), (e.value = n.buffer), a.push(e.value)
|
||
|
|
}
|
||
|
|
if ((i && wn ? (r && a.push(r), s && a.push(s)) : (e.readable = e.writable = null), a.length))
|
||
|
|
try {
|
||
|
|
return t.postMessage(e, a), !0
|
||
|
|
} catch (n) {
|
||
|
|
;(wn = !1), (e.readable = e.writable = null), t.postMessage(e)
|
||
|
|
}
|
||
|
|
else t.postMessage(e)
|
||
|
|
} catch (e) {
|
||
|
|
throw (n && n.releaseLock(), r(), e)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
let gn = []
|
||
|
|
const bn = []
|
||
|
|
let vn = 0
|
||
|
|
async function yn(e, t) {
|
||
|
|
const { options: n, config: r } = t,
|
||
|
|
{ transferStreams: i, useWebWorkers: s, useCompressionStream: a, codecType: o, compressed: c, signed: l, encrypted: d } = n,
|
||
|
|
{ workerScripts: f, maxWorkers: u, terminateWorkerTimeout: p } = r
|
||
|
|
t.transferStreams = i || i === Te
|
||
|
|
const m = !(c || l || d || t.transferStreams)
|
||
|
|
let w
|
||
|
|
;(t.useWebWorkers = !m && (s || (s === Te && r.useWebWorkers))),
|
||
|
|
(t.scripts = t.useWebWorkers && f ? f[o] : []),
|
||
|
|
(n.useCompressionStream = a || (a === Te && r.useCompressionStream))
|
||
|
|
const h = gn.find((e) => !e.busy)
|
||
|
|
if (h) _n(h), (w = new ln(h, e, t, x))
|
||
|
|
else if (gn.length < u) {
|
||
|
|
const n = { indexWorker: vn }
|
||
|
|
vn++, gn.push(n), (w = new ln(n, e, t, x))
|
||
|
|
} else w = await new Promise((n) => bn.push({ resolve: n, stream: e, workerOptions: t }))
|
||
|
|
return w.run()
|
||
|
|
function x(e) {
|
||
|
|
if (bn.length) {
|
||
|
|
const [{ resolve: t, stream: n, workerOptions: r }] = bn.splice(0, 1)
|
||
|
|
t(new ln(e, n, r, x))
|
||
|
|
} else
|
||
|
|
e.worker
|
||
|
|
? (_n(e),
|
||
|
|
Number.isFinite(p) &&
|
||
|
|
p >= 0 &&
|
||
|
|
(e.terminateTimeout = setTimeout(() => {
|
||
|
|
;(gn = gn.filter((t) => t != e)), e.terminate()
|
||
|
|
}, p)))
|
||
|
|
: (gn = gn.filter((t) => t != e))
|
||
|
|
}
|
||
|
|
}
|
||
|
|
function _n(e) {
|
||
|
|
const { terminateTimeout: t } = e
|
||
|
|
t && (clearTimeout(t), (e.terminateTimeout = null))
|
||
|
|
}
|
||
|
|
const kn = "HTTP error ",
|
||
|
|
zn = "HTTP Range not supported",
|
||
|
|
Sn = "Content-Length",
|
||
|
|
An = "Range",
|
||
|
|
Cn = "HEAD",
|
||
|
|
Wn = "GET",
|
||
|
|
Fn = "bytes",
|
||
|
|
En = 65536,
|
||
|
|
Un = "writable"
|
||
|
|
class Dn {
|
||
|
|
constructor() {
|
||
|
|
this.size = 0
|
||
|
|
}
|
||
|
|
init() {
|
||
|
|
this.initialized = !0
|
||
|
|
}
|
||
|
|
}
|
||
|
|
class jn extends Dn {
|
||
|
|
get readable() {
|
||
|
|
const e = this,
|
||
|
|
{ chunkSize: t = En } = e,
|
||
|
|
n = new ReadableStream({
|
||
|
|
start() {
|
||
|
|
this.chunkOffset = 0
|
||
|
|
},
|
||
|
|
async pull(r) {
|
||
|
|
const { offset: i = 0, size: s, diskNumberStart: a } = n,
|
||
|
|
{ chunkOffset: o } = this
|
||
|
|
r.enqueue(await tr(e, i + o, Math.min(t, s - o), a)), o + t > s ? r.close() : (this.chunkOffset += t)
|
||
|
|
}
|
||
|
|
})
|
||
|
|
return n
|
||
|
|
}
|
||
|
|
}
|
||
|
|
class qn extends jn {
|
||
|
|
constructor(e) {
|
||
|
|
super(), Object.assign(this, { blob: e, size: e.size })
|
||
|
|
}
|
||
|
|
async readUint8Array(e, t) {
|
||
|
|
const n = this,
|
||
|
|
r = e + t,
|
||
|
|
i = e || r < n.size ? n.blob.slice(e, r) : n.blob
|
||
|
|
return new Uint8Array(await i.arrayBuffer())
|
||
|
|
}
|
||
|
|
}
|
||
|
|
class Tn extends Dn {
|
||
|
|
constructor(e) {
|
||
|
|
super()
|
||
|
|
const t = new TransformStream(),
|
||
|
|
n = []
|
||
|
|
e && n.push(["Content-Type", e]),
|
||
|
|
Object.defineProperty(this, Un, { get: () => t.writable }),
|
||
|
|
(this.blob = new Response(t.readable, { headers: n }).blob())
|
||
|
|
}
|
||
|
|
getData() {
|
||
|
|
return this.blob
|
||
|
|
}
|
||
|
|
}
|
||
|
|
class On extends jn {
|
||
|
|
constructor(e, t) {
|
||
|
|
super(), In(this, e, t)
|
||
|
|
}
|
||
|
|
async init() {
|
||
|
|
await Ln(this, Yn, Nn), super.init()
|
||
|
|
}
|
||
|
|
readUint8Array(e, t) {
|
||
|
|
return Bn(this, e, t, Yn, Nn)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
class Rn extends jn {
|
||
|
|
constructor(e, t) {
|
||
|
|
super(), In(this, e, t)
|
||
|
|
}
|
||
|
|
async init() {
|
||
|
|
await Ln(this, Xn, Vn), super.init()
|
||
|
|
}
|
||
|
|
readUint8Array(e, t) {
|
||
|
|
return Bn(this, e, t, Xn, Vn)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
function In(e, t, n) {
|
||
|
|
const { preventHeadRequest: r, useRangeHeader: i, forceRangeRequests: s } = n
|
||
|
|
delete (n = Object.assign({}, n)).preventHeadRequest,
|
||
|
|
delete n.useRangeHeader,
|
||
|
|
delete n.forceRangeRequests,
|
||
|
|
delete n.useXHR,
|
||
|
|
Object.assign(e, { url: t, options: n, preventHeadRequest: r, useRangeHeader: i, forceRangeRequests: s })
|
||
|
|
}
|
||
|
|
async function Ln(e, t, n) {
|
||
|
|
const { url: r, useRangeHeader: i, forceRangeRequests: s } = e
|
||
|
|
if (
|
||
|
|
(function (e) {
|
||
|
|
const { baseURL: t } = Ke(),
|
||
|
|
{ protocol: n } = new URL(e, t)
|
||
|
|
return "http:" == n || "https:" == n
|
||
|
|
})(r) &&
|
||
|
|
(i || s)
|
||
|
|
) {
|
||
|
|
const { headers: r } = await t(Wn, e, Mn(e))
|
||
|
|
if (!s && r.get("Accept-Ranges") != Fn) throw new Error(zn)
|
||
|
|
{
|
||
|
|
let i
|
||
|
|
const s = r.get("Content-Range")
|
||
|
|
if (s) {
|
||
|
|
const e = s.trim().split(/\s*\/\s*/)
|
||
|
|
if (e.length) {
|
||
|
|
const t = e[1]
|
||
|
|
t && "*" != t && (i = Number(t))
|
||
|
|
}
|
||
|
|
}
|
||
|
|
i === Te ? await Hn(e, t, n) : (e.size = i)
|
||
|
|
}
|
||
|
|
} else await Hn(e, t, n)
|
||
|
|
}
|
||
|
|
async function Bn(e, t, n, r, i) {
|
||
|
|
const { useRangeHeader: s, forceRangeRequests: a, options: o } = e
|
||
|
|
if (s || a) {
|
||
|
|
const i = await r(Wn, e, Mn(e, t, n))
|
||
|
|
if (206 != i.status) throw new Error(zn)
|
||
|
|
return new Uint8Array(await i.arrayBuffer())
|
||
|
|
}
|
||
|
|
{
|
||
|
|
const { data: r } = e
|
||
|
|
return r || (await i(e, o)), new Uint8Array(e.data.subarray(t, t + n))
|
||
|
|
}
|
||
|
|
}
|
||
|
|
function Mn(e, t = 0, n = 1) {
|
||
|
|
return Object.assign({}, Kn(e), { [An]: Fn + "=" + t + "-" + (t + n - 1) })
|
||
|
|
}
|
||
|
|
function Kn({ options: e }) {
|
||
|
|
const { headers: t } = e
|
||
|
|
if (t) return Symbol.iterator in t ? Object.fromEntries(t) : t
|
||
|
|
}
|
||
|
|
async function Nn(e) {
|
||
|
|
await Pn(e, Yn)
|
||
|
|
}
|
||
|
|
async function Vn(e) {
|
||
|
|
await Pn(e, Xn)
|
||
|
|
}
|
||
|
|
async function Pn(e, t) {
|
||
|
|
const n = await t(Wn, e, Kn(e))
|
||
|
|
;(e.data = new Uint8Array(await n.arrayBuffer())), e.size || (e.size = e.data.length)
|
||
|
|
}
|
||
|
|
async function Hn(e, t, n) {
|
||
|
|
if (e.preventHeadRequest) await n(e, e.options)
|
||
|
|
else {
|
||
|
|
const r = (await t(Cn, e, Kn(e))).headers.get(Sn)
|
||
|
|
r ? (e.size = Number(r)) : await n(e, e.options)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
async function Yn(e, { options: t, url: n }, r) {
|
||
|
|
const i = await fetch(n, Object.assign({}, t, { method: e, headers: r }))
|
||
|
|
if (i.status < 400) return i
|
||
|
|
throw 416 == i.status ? new Error(zn) : new Error(kn + (i.statusText || i.status))
|
||
|
|
}
|
||
|
|
function Xn(e, { url: t }, n) {
|
||
|
|
return new Promise((r, i) => {
|
||
|
|
const s = new XMLHttpRequest()
|
||
|
|
if (
|
||
|
|
(s.addEventListener(
|
||
|
|
"load",
|
||
|
|
() => {
|
||
|
|
if (s.status < 400) {
|
||
|
|
const e = []
|
||
|
|
s
|
||
|
|
.getAllResponseHeaders()
|
||
|
|
.trim()
|
||
|
|
.split(/[\r\n]+/)
|
||
|
|
.forEach((t) => {
|
||
|
|
const n = t.trim().split(/\s*:\s*/)
|
||
|
|
;(n[0] = n[0].trim().replace(/^[a-z]|-[a-z]/g, (e) => e.toUpperCase())), e.push(n)
|
||
|
|
}),
|
||
|
|
r({ status: s.status, arrayBuffer: () => s.response, headers: new Map(e) })
|
||
|
|
} else i(416 == s.status ? new Error(zn) : new Error(kn + (s.statusText || s.status)))
|
||
|
|
},
|
||
|
|
!1
|
||
|
|
),
|
||
|
|
s.addEventListener("error", (e) => i(e.detail.error), !1),
|
||
|
|
s.open(e, t),
|
||
|
|
n)
|
||
|
|
)
|
||
|
|
for (const e of Object.entries(n)) s.setRequestHeader(e[0], e[1])
|
||
|
|
;(s.responseType = "arraybuffer"), s.send()
|
||
|
|
})
|
||
|
|
}
|
||
|
|
class Zn extends jn {
|
||
|
|
constructor(e, t = {}) {
|
||
|
|
super(), Object.assign(this, { url: e, reader: t.useXHR ? new Rn(e, t) : new On(e, t) })
|
||
|
|
}
|
||
|
|
set size(e) {}
|
||
|
|
get size() {
|
||
|
|
return this.reader.size
|
||
|
|
}
|
||
|
|
async init() {
|
||
|
|
await this.reader.init(), super.init()
|
||
|
|
}
|
||
|
|
readUint8Array(e, t) {
|
||
|
|
return this.reader.readUint8Array(e, t)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
class Jn extends jn {
|
||
|
|
constructor(e) {
|
||
|
|
super(), (this.readers = e)
|
||
|
|
}
|
||
|
|
async init() {
|
||
|
|
const e = this,
|
||
|
|
{ readers: t } = e
|
||
|
|
;(e.lastDiskNumber = 0),
|
||
|
|
await Promise.all(
|
||
|
|
t.map(async (t) => {
|
||
|
|
await t.init(), (e.size += t.size)
|
||
|
|
})
|
||
|
|
),
|
||
|
|
super.init()
|
||
|
|
}
|
||
|
|
async readUint8Array(e, t, n = 0) {
|
||
|
|
const r = this,
|
||
|
|
{ readers: i } = this
|
||
|
|
let s,
|
||
|
|
a = n
|
||
|
|
;-1 == a && (a = i.length - 1)
|
||
|
|
let o = e
|
||
|
|
for (; o >= i[a].size; ) (o -= i[a].size), a++
|
||
|
|
const c = i[a],
|
||
|
|
l = c.size
|
||
|
|
if (o + t <= l) s = await tr(c, o, t)
|
||
|
|
else {
|
||
|
|
const i = l - o
|
||
|
|
;(s = new Uint8Array(t)), s.set(await tr(c, o, i)), s.set(await r.readUint8Array(e + i, t - i, n), i)
|
||
|
|
}
|
||
|
|
return (r.lastDiskNumber = Math.max(a, r.lastDiskNumber)), s
|
||
|
|
}
|
||
|
|
}
|
||
|
|
class Gn extends Dn {
|
||
|
|
constructor(e, t = 4294967295) {
|
||
|
|
super()
|
||
|
|
const n = this
|
||
|
|
let r, i, s
|
||
|
|
Object.assign(n, { diskNumber: 0, diskOffset: 0, size: 0, maxSize: t, availableSize: t })
|
||
|
|
const a = new WritableStream({
|
||
|
|
async write(t) {
|
||
|
|
const { availableSize: a } = n
|
||
|
|
if (s)
|
||
|
|
t.length >= a
|
||
|
|
? (await o(t.slice(0, a)), await c(), (n.diskOffset += r.size), n.diskNumber++, (s = null), await this.write(t.slice(a)))
|
||
|
|
: await o(t)
|
||
|
|
else {
|
||
|
|
const { value: a, done: o } = await e.next()
|
||
|
|
if (o && !a) throw new Error("Writer iterator completed too soon")
|
||
|
|
;(r = a),
|
||
|
|
(r.size = 0),
|
||
|
|
r.maxSize && (n.maxSize = r.maxSize),
|
||
|
|
(n.availableSize = n.maxSize),
|
||
|
|
await $n(r),
|
||
|
|
(i = a.writable),
|
||
|
|
(s = i.getWriter()),
|
||
|
|
await this.write(t)
|
||
|
|
}
|
||
|
|
},
|
||
|
|
async close() {
|
||
|
|
await s.ready, await c()
|
||
|
|
}
|
||
|
|
})
|
||
|
|
async function o(e) {
|
||
|
|
const t = e.length
|
||
|
|
t && (await s.ready, await s.write(e), (r.size += t), (n.size += t), (n.availableSize -= t))
|
||
|
|
}
|
||
|
|
async function c() {
|
||
|
|
;(i.size = r.size), await s.close()
|
||
|
|
}
|
||
|
|
Object.defineProperty(n, Un, { get: () => a })
|
||
|
|
}
|
||
|
|
}
|
||
|
|
async function $n(e, t) {
|
||
|
|
e.init && !e.initialized && (await e.init(t))
|
||
|
|
}
|
||
|
|
function Qn(e) {
|
||
|
|
return Array.isArray(e) && (e = new Jn(e)), e instanceof ReadableStream && (e = { readable: e }), e
|
||
|
|
}
|
||
|
|
function er(e) {
|
||
|
|
e.writable === Te && typeof e.next == Re && (e = new Gn(e)), e instanceof WritableStream && (e = { writable: e })
|
||
|
|
const { writable: t } = e
|
||
|
|
return (
|
||
|
|
t.size === Te && (t.size = 0), e instanceof Gn || Object.assign(e, { diskNumber: 0, diskOffset: 0, availableSize: 1 / 0, maxSize: 1 / 0 }), e
|
||
|
|
)
|
||
|
|
}
|
||
|
|
function tr(e, t, n, r) {
|
||
|
|
return e.readUint8Array(t, n, r)
|
||
|
|
}
|
||
|
|
const nr =
|
||
|
|
"\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split(
|
||
|
|
""
|
||
|
|
),
|
||
|
|
rr = 256 == nr.length
|
||
|
|
function ir(e, t) {
|
||
|
|
return t && "cp437" == t.trim().toLowerCase()
|
||
|
|
? (function (e) {
|
||
|
|
if (rr) {
|
||
|
|
let t = ""
|
||
|
|
for (let n = 0; n < e.length; n++) t += nr[e[n]]
|
||
|
|
return t
|
||
|
|
}
|
||
|
|
return new TextDecoder().decode(e)
|
||
|
|
})(e)
|
||
|
|
: new TextDecoder(t).decode(e)
|
||
|
|
}
|
||
|
|
const sr = "filename",
|
||
|
|
ar = "rawFilename",
|
||
|
|
or = "comment",
|
||
|
|
cr = "rawComment",
|
||
|
|
lr = "uncompressedSize",
|
||
|
|
dr = "compressedSize",
|
||
|
|
fr = "offset",
|
||
|
|
ur = "diskNumberStart",
|
||
|
|
pr = "lastModDate",
|
||
|
|
mr = "rawLastModDate",
|
||
|
|
wr = "lastAccessDate",
|
||
|
|
hr = "creationDate",
|
||
|
|
xr = "internalFileAttribute",
|
||
|
|
gr = "externalFileAttribute",
|
||
|
|
br = "msDosCompatible",
|
||
|
|
vr = "zip64",
|
||
|
|
yr = [
|
||
|
|
sr,
|
||
|
|
ar,
|
||
|
|
dr,
|
||
|
|
lr,
|
||
|
|
pr,
|
||
|
|
mr,
|
||
|
|
or,
|
||
|
|
cr,
|
||
|
|
wr,
|
||
|
|
hr,
|
||
|
|
fr,
|
||
|
|
ur,
|
||
|
|
ur,
|
||
|
|
xr,
|
||
|
|
gr,
|
||
|
|
br,
|
||
|
|
vr,
|
||
|
|
"directory",
|
||
|
|
"bitFlag",
|
||
|
|
"encrypted",
|
||
|
|
"signature",
|
||
|
|
"filenameUTF8",
|
||
|
|
"commentUTF8",
|
||
|
|
"compressionMethod",
|
||
|
|
"version",
|
||
|
|
"versionMadeBy",
|
||
|
|
"extraField",
|
||
|
|
"rawExtraField",
|
||
|
|
"extraFieldZip64",
|
||
|
|
"extraFieldUnicodePath",
|
||
|
|
"extraFieldUnicodeComment",
|
||
|
|
"extraFieldAES",
|
||
|
|
"extraFieldNTFS",
|
||
|
|
"extraFieldExtendedTimestamp"
|
||
|
|
]
|
||
|
|
class _r {
|
||
|
|
constructor(e) {
|
||
|
|
yr.forEach((t) => (this[t] = e[t]))
|
||
|
|
}
|
||
|
|
}
|
||
|
|
const kr = "File format is not recognized",
|
||
|
|
zr = "Compression method not supported",
|
||
|
|
Sr = "Split zip file",
|
||
|
|
Ar = "utf-8",
|
||
|
|
Cr = "cp437",
|
||
|
|
Wr = [
|
||
|
|
[lr, we],
|
||
|
|
[dr, we],
|
||
|
|
[fr, we],
|
||
|
|
[ur, he]
|
||
|
|
],
|
||
|
|
Fr = { [he]: { getValue: Br, bytes: 4 }, [we]: { getValue: Mr, bytes: 8 } }
|
||
|
|
class Er {
|
||
|
|
constructor(e, t = {}) {
|
||
|
|
Object.assign(this, { reader: Qn(e), options: t, config: Ke() })
|
||
|
|
}
|
||
|
|
async *getEntriesGenerator(e = {}) {
|
||
|
|
const t = this
|
||
|
|
let { reader: n } = t
|
||
|
|
const { config: r } = t
|
||
|
|
if ((await $n(n), (n.size !== Te && n.readUint8Array) || ((n = new qn(await new Response(n.readable).blob())), await $n(n)), n.size < ke))
|
||
|
|
throw new Error(kr)
|
||
|
|
n.chunkSize = Ne(r)
|
||
|
|
const i = await (async function (e, t, n, r, i) {
|
||
|
|
const s = new Uint8Array(4)
|
||
|
|
Kr(s).setUint32(0, 101010256, !0)
|
||
|
|
const a = r + 1048560
|
||
|
|
return (await o(r)) || (await o(Math.min(a, n)))
|
||
|
|
async function o(t) {
|
||
|
|
const i = n - t,
|
||
|
|
a = await tr(e, i, t)
|
||
|
|
for (let e = a.length - r; e >= 0; e--)
|
||
|
|
if (a[e] == s[0] && a[e + 1] == s[1] && a[e + 2] == s[2] && a[e + 3] == s[3]) return { offset: i + e, buffer: a.slice(e, e + r).buffer }
|
||
|
|
}
|
||
|
|
})(n, 0, n.size, ke)
|
||
|
|
if (!i) throw Br(Kr(await tr(n, 0, 4))) == ge ? new Error(Sr) : new Error("End of central directory not found")
|
||
|
|
const s = Kr(i)
|
||
|
|
let a = Br(s, 12),
|
||
|
|
o = Br(s, 16)
|
||
|
|
const c = i.offset,
|
||
|
|
l = Lr(s, 20),
|
||
|
|
d = c + ke + l
|
||
|
|
let f = Lr(s, 4)
|
||
|
|
const u = n.lastDiskNumber || 0
|
||
|
|
let p = Lr(s, 6),
|
||
|
|
m = Lr(s, 8),
|
||
|
|
w = 0,
|
||
|
|
h = 0
|
||
|
|
if (o == we || a == we || m == he || p == he) {
|
||
|
|
const e = Kr(await tr(n, i.offset - 20, 20))
|
||
|
|
if (Br(e, 0) != _e) throw new Error("End of Zip64 central directory not found")
|
||
|
|
o = Mr(e, 8)
|
||
|
|
let t = await tr(n, o, 56, -1),
|
||
|
|
r = Kr(t)
|
||
|
|
const s = i.offset - 20 - 56
|
||
|
|
if (Br(r, 0) != ye && o != s) {
|
||
|
|
const e = o
|
||
|
|
;(o = s), (w = o - e), (t = await tr(n, o, 56, -1)), (r = Kr(t))
|
||
|
|
}
|
||
|
|
if (Br(r, 0) != ye) throw new Error("End of Zip64 central directory locator not found")
|
||
|
|
f == he && (f = Br(r, 16)), p == he && (p = Br(r, 20)), m == he && (m = Mr(r, 32)), a == we && (a = Mr(r, 40)), (o -= a)
|
||
|
|
}
|
||
|
|
if (u != f) throw new Error(Sr)
|
||
|
|
if (o < 0 || o >= n.size) throw new Error(kr)
|
||
|
|
let x = 0,
|
||
|
|
g = await tr(n, o, a, p),
|
||
|
|
b = Kr(g)
|
||
|
|
if (a) {
|
||
|
|
const e = i.offset - a
|
||
|
|
if (Br(b, x) != be && o != e) {
|
||
|
|
const t = o
|
||
|
|
;(o = e), (w = o - t), (g = await tr(n, o, a, p)), (b = Kr(g))
|
||
|
|
}
|
||
|
|
}
|
||
|
|
if (o < 0 || o >= n.size) throw new Error(kr)
|
||
|
|
const v = Tr(t, e, "filenameEncoding"),
|
||
|
|
y = Tr(t, e, "commentEncoding")
|
||
|
|
for (let i = 0; i < m; i++) {
|
||
|
|
const s = new Ur(n, r, t.options)
|
||
|
|
if (Br(b, x) != be) throw new Error("Central directory header not found")
|
||
|
|
Dr(s, b, x + 6)
|
||
|
|
const a = Boolean(s.bitFlag.languageEncodingFlag),
|
||
|
|
o = x + 46,
|
||
|
|
c = o + s.filenameLength,
|
||
|
|
l = c + s.extraFieldLength,
|
||
|
|
d = Lr(b, x + 4),
|
||
|
|
f = 0 == (0 & d),
|
||
|
|
u = g.subarray(o, c),
|
||
|
|
p = Lr(b, x + 32),
|
||
|
|
_ = l + p,
|
||
|
|
k = g.subarray(l, _),
|
||
|
|
z = a,
|
||
|
|
S = a,
|
||
|
|
A = f && 16 == (16 & Ir(b, x + 38)),
|
||
|
|
C = Br(b, x + 42) + w
|
||
|
|
Object.assign(s, {
|
||
|
|
versionMadeBy: d,
|
||
|
|
msDosCompatible: f,
|
||
|
|
compressedSize: 0,
|
||
|
|
uncompressedSize: 0,
|
||
|
|
commentLength: p,
|
||
|
|
directory: A,
|
||
|
|
offset: C,
|
||
|
|
diskNumberStart: Lr(b, x + 34),
|
||
|
|
internalFileAttribute: Lr(b, x + 36),
|
||
|
|
externalFileAttribute: Br(b, x + 38),
|
||
|
|
rawFilename: u,
|
||
|
|
filenameUTF8: z,
|
||
|
|
commentUTF8: S,
|
||
|
|
rawExtraField: g.subarray(c, l)
|
||
|
|
})
|
||
|
|
const [W, F] = await Promise.all([ir(u, z ? Ar : v || Cr), ir(k, S ? Ar : y || Cr)])
|
||
|
|
Object.assign(s, { rawComment: k, filename: W, comment: F, directory: A || W.endsWith(De) }), (h = Math.max(C, h)), await jr(s, s, b, x + 6)
|
||
|
|
const E = new _r(s)
|
||
|
|
;(E.getData = (e, t) => s.getData(e, E, t)), (x = _)
|
||
|
|
const { onprogress: U } = e
|
||
|
|
if (U)
|
||
|
|
try {
|
||
|
|
await U(i + 1, m, new _r(s))
|
||
|
|
} catch (e) {}
|
||
|
|
yield E
|
||
|
|
}
|
||
|
|
const _ = Tr(t, e, "extractPrependedData"),
|
||
|
|
k = Tr(t, e, "extractAppendedData")
|
||
|
|
return (
|
||
|
|
_ && (t.prependedData = h > 0 ? await tr(n, 0, h) : new Uint8Array()),
|
||
|
|
(t.comment = l ? await tr(n, c + ke, l) : new Uint8Array()),
|
||
|
|
k && (t.appendedData = d < n.size ? await tr(n, d, n.size - d) : new Uint8Array()),
|
||
|
|
!0
|
||
|
|
)
|
||
|
|
}
|
||
|
|
async getEntries(e = {}) {
|
||
|
|
const t = []
|
||
|
|
for await (const n of this.getEntriesGenerator(e)) t.push(n)
|
||
|
|
return t
|
||
|
|
}
|
||
|
|
async close() {}
|
||
|
|
}
|
||
|
|
class Ur {
|
||
|
|
constructor(e, t, n) {
|
||
|
|
Object.assign(this, { reader: e, config: t, options: n })
|
||
|
|
}
|
||
|
|
async getData(e, t, n = {}) {
|
||
|
|
const r = this,
|
||
|
|
{
|
||
|
|
reader: i,
|
||
|
|
offset: s,
|
||
|
|
diskNumberStart: a,
|
||
|
|
extraFieldAES: o,
|
||
|
|
compressionMethod: c,
|
||
|
|
config: l,
|
||
|
|
bitFlag: d,
|
||
|
|
signature: f,
|
||
|
|
rawLastModDate: u,
|
||
|
|
uncompressedSize: p,
|
||
|
|
compressedSize: m
|
||
|
|
} = r,
|
||
|
|
w = (r.localDirectory = {}),
|
||
|
|
h = Kr(await tr(i, s, 30, a))
|
||
|
|
let x = Tr(r, n, "password")
|
||
|
|
if (((x = x && x.length && x), o && 99 != o.originalCompressionMethod)) throw new Error(zr)
|
||
|
|
if (0 != c && 8 != c) throw new Error(zr)
|
||
|
|
if (Br(h, 0) != xe) throw new Error("Local file header not found")
|
||
|
|
Dr(w, h, 4),
|
||
|
|
(w.rawExtraField = w.extraFieldLength ? await tr(i, s + 30 + w.filenameLength, w.extraFieldLength, a) : new Uint8Array()),
|
||
|
|
await jr(r, w, h, 4),
|
||
|
|
Object.assign(t, { lastAccessDate: w.lastAccessDate, creationDate: w.creationDate })
|
||
|
|
const g = r.encrypted && w.encrypted,
|
||
|
|
b = g && !o
|
||
|
|
if (g) {
|
||
|
|
if (!b && o.strength === Te) throw new Error("Encryption method not supported")
|
||
|
|
if (!x) throw new Error("File contains encrypted entry")
|
||
|
|
}
|
||
|
|
const v = s + 30 + w.filenameLength + w.extraFieldLength,
|
||
|
|
y = i.readable
|
||
|
|
;(y.diskNumberStart = a), (y.offset = v)
|
||
|
|
let _ = (y.size = m)
|
||
|
|
const k = Tr(r, n, "signal"),
|
||
|
|
z = Tr(r, n, "checkPasswordOnly")
|
||
|
|
z && (e = new WritableStream()), (e = er(e)), await $n(e, p)
|
||
|
|
const { writable: S } = e,
|
||
|
|
{ onstart: A, onprogress: C, onend: W } = n,
|
||
|
|
F = {
|
||
|
|
options: {
|
||
|
|
codecType: an,
|
||
|
|
password: x,
|
||
|
|
zipCrypto: b,
|
||
|
|
encryptionStrength: o && o.strength,
|
||
|
|
signed: Tr(r, n, "checkSignature"),
|
||
|
|
passwordVerification: b && (d.dataDescriptor ? (u >>> 8) & 255 : (f >>> 24) & 255),
|
||
|
|
signature: f,
|
||
|
|
compressed: 0 != c,
|
||
|
|
encrypted: g,
|
||
|
|
useWebWorkers: Tr(r, n, "useWebWorkers"),
|
||
|
|
useCompressionStream: Tr(r, n, "useCompressionStream"),
|
||
|
|
transferStreams: Tr(r, n, "transferStreams"),
|
||
|
|
checkPasswordOnly: z
|
||
|
|
},
|
||
|
|
config: l,
|
||
|
|
streamOptions: { signal: k, size: _, onstart: A, onprogress: C, onend: W }
|
||
|
|
}
|
||
|
|
let E = 0
|
||
|
|
try {
|
||
|
|
;({ outputSize: E } = await yn({ readable: y, writable: S }, F))
|
||
|
|
} catch (e) {
|
||
|
|
if (!z || e.message != ot) throw e
|
||
|
|
} finally {
|
||
|
|
const e = Tr(r, n, "preventClose")
|
||
|
|
;(S.size += E), e || S.locked || (await S.close())
|
||
|
|
}
|
||
|
|
return z ? void 0 : e.getData ? e.getData() : S
|
||
|
|
}
|
||
|
|
}
|
||
|
|
function Dr(e, t, n) {
|
||
|
|
const r = (e.rawBitFlag = Lr(t, n + 2)),
|
||
|
|
i = (r & Fe) == Fe,
|
||
|
|
s = Br(t, n + 6)
|
||
|
|
Object.assign(e, {
|
||
|
|
encrypted: i,
|
||
|
|
version: Lr(t, n),
|
||
|
|
bitFlag: { level: (6 & r) >> 1, dataDescriptor: (r & Ee) == Ee, languageEncodingFlag: (r & Ue) == Ue },
|
||
|
|
rawLastModDate: s,
|
||
|
|
lastModDate: Or(s),
|
||
|
|
filenameLength: Lr(t, n + 22),
|
||
|
|
extraFieldLength: Lr(t, n + 24)
|
||
|
|
})
|
||
|
|
}
|
||
|
|
async function jr(e, t, n, r) {
|
||
|
|
const { rawExtraField: i } = t,
|
||
|
|
s = (t.extraField = new Map()),
|
||
|
|
a = Kr(new Uint8Array(i))
|
||
|
|
let o = 0
|
||
|
|
try {
|
||
|
|
for (; o < i.length; ) {
|
||
|
|
const e = Lr(a, o),
|
||
|
|
t = Lr(a, o + 2)
|
||
|
|
s.set(e, { type: e, data: i.slice(o + 4, o + 4 + t) }), (o += 4 + t)
|
||
|
|
}
|
||
|
|
} catch (e) {}
|
||
|
|
const c = Lr(n, r + 4)
|
||
|
|
Object.assign(t, { signature: Br(n, r + 10), uncompressedSize: Br(n, r + 18), compressedSize: Br(n, r + 14) })
|
||
|
|
const l = s.get(ze)
|
||
|
|
l &&
|
||
|
|
((function (e, t) {
|
||
|
|
t.zip64 = !0
|
||
|
|
const n = Kr(e.data),
|
||
|
|
r = Wr.filter(([e, n]) => t[e] == n)
|
||
|
|
for (let i = 0, s = 0; i < r.length; i++) {
|
||
|
|
const [a, o] = r[i]
|
||
|
|
if (t[a] == o) {
|
||
|
|
const r = Fr[o]
|
||
|
|
;(t[a] = e[a] = r.getValue(n, s)), (s += r.bytes)
|
||
|
|
} else if (e[a]) throw new Error("Zip64 extra field not found")
|
||
|
|
}
|
||
|
|
})(l, t),
|
||
|
|
(t.extraFieldZip64 = l))
|
||
|
|
const d = s.get(28789)
|
||
|
|
d && (await qr(d, sr, ar, t, e), (t.extraFieldUnicodePath = d))
|
||
|
|
const f = s.get(25461)
|
||
|
|
f && (await qr(f, or, cr, t, e), (t.extraFieldUnicodeComment = f))
|
||
|
|
const u = s.get(Se)
|
||
|
|
u
|
||
|
|
? ((function (e, t, n) {
|
||
|
|
const r = Kr(e.data),
|
||
|
|
i = Ir(r, 4)
|
||
|
|
Object.assign(e, { vendorVersion: Ir(r, 0), vendorId: Ir(r, 2), strength: i, originalCompressionMethod: n, compressionMethod: Lr(r, 5) }),
|
||
|
|
(t.compressionMethod = e.compressionMethod)
|
||
|
|
})(u, t, c),
|
||
|
|
(t.extraFieldAES = u))
|
||
|
|
: (t.compressionMethod = c)
|
||
|
|
const p = s.get(Ae)
|
||
|
|
p &&
|
||
|
|
((function (e, t) {
|
||
|
|
const n = Kr(e.data)
|
||
|
|
let r,
|
||
|
|
i = 4
|
||
|
|
try {
|
||
|
|
for (; i < e.data.length && !r; ) {
|
||
|
|
const t = Lr(n, i),
|
||
|
|
s = Lr(n, i + 2)
|
||
|
|
t == Ce && (r = e.data.slice(i + 4, i + 4 + s)), (i += 4 + s)
|
||
|
|
}
|
||
|
|
} catch (e) {}
|
||
|
|
try {
|
||
|
|
if (r && 24 == r.length) {
|
||
|
|
const n = Kr(r),
|
||
|
|
i = n.getBigUint64(0, !0),
|
||
|
|
s = n.getBigUint64(8, !0),
|
||
|
|
a = n.getBigUint64(16, !0)
|
||
|
|
Object.assign(e, { rawLastModDate: i, rawLastAccessDate: s, rawCreationDate: a })
|
||
|
|
const o = Rr(i),
|
||
|
|
c = { lastModDate: o, lastAccessDate: Rr(s), creationDate: Rr(a) }
|
||
|
|
Object.assign(e, c), Object.assign(t, c)
|
||
|
|
}
|
||
|
|
} catch (e) {}
|
||
|
|
})(p, t),
|
||
|
|
(t.extraFieldNTFS = p))
|
||
|
|
const m = s.get(We)
|
||
|
|
m &&
|
||
|
|
((function (e, t) {
|
||
|
|
const n = Kr(e.data),
|
||
|
|
r = Ir(n, 0),
|
||
|
|
i = [],
|
||
|
|
s = []
|
||
|
|
1 == (1 & r) && (i.push(pr), s.push(mr)),
|
||
|
|
2 == (2 & r) && (i.push(wr), s.push("rawLastAccessDate")),
|
||
|
|
4 == (4 & r) && (i.push(hr), s.push("rawCreationDate"))
|
||
|
|
let a = 1
|
||
|
|
i.forEach((r, i) => {
|
||
|
|
if (e.data.length >= a + 4) {
|
||
|
|
const o = Br(n, a)
|
||
|
|
t[r] = e[r] = new Date(1e3 * o)
|
||
|
|
const c = s[i]
|
||
|
|
e[c] = o
|
||
|
|
}
|
||
|
|
a += 4
|
||
|
|
})
|
||
|
|
})(m, t),
|
||
|
|
(t.extraFieldExtendedTimestamp = m))
|
||
|
|
}
|
||
|
|
async function qr(e, t, n, r, i) {
|
||
|
|
const s = Kr(e.data),
|
||
|
|
a = new Xe()
|
||
|
|
a.append(i[n])
|
||
|
|
const o = Kr(new Uint8Array(4))
|
||
|
|
o.setUint32(0, a.get(), !0),
|
||
|
|
Object.assign(e, {
|
||
|
|
version: Ir(s, 0),
|
||
|
|
signature: Br(s, 1),
|
||
|
|
[t]: await ir(e.data.subarray(5)),
|
||
|
|
valid: !i.bitFlag.languageEncodingFlag && e.signature == Br(o, 0)
|
||
|
|
}),
|
||
|
|
e.valid && ((r[t] = e[t]), (r[t + "UTF8"] = !0))
|
||
|
|
}
|
||
|
|
function Tr(e, t, n) {
|
||
|
|
return t[n] === Te ? e.options[n] : t[n]
|
||
|
|
}
|
||
|
|
function Or(e) {
|
||
|
|
const t = (4294901760 & e) >> 16,
|
||
|
|
n = 65535 & e
|
||
|
|
try {
|
||
|
|
return new Date(1980 + ((65024 & t) >> 9), ((480 & t) >> 5) - 1, 31 & t, (63488 & n) >> 11, (2016 & n) >> 5, 2 * (31 & n), 0)
|
||
|
|
} catch (e) {}
|
||
|
|
}
|
||
|
|
function Rr(e) {
|
||
|
|
return new Date(Number(e / BigInt(1e4) - BigInt(116444736e5)))
|
||
|
|
}
|
||
|
|
function Ir(e, t) {
|
||
|
|
return e.getUint8(t)
|
||
|
|
}
|
||
|
|
function Lr(e, t) {
|
||
|
|
return e.getUint16(t, !0)
|
||
|
|
}
|
||
|
|
function Br(e, t) {
|
||
|
|
return e.getUint32(t, !0)
|
||
|
|
}
|
||
|
|
function Mr(e, t) {
|
||
|
|
return Number(e.getBigUint64(t, !0))
|
||
|
|
}
|
||
|
|
function Kr(e) {
|
||
|
|
return new DataView(e.buffer)
|
||
|
|
}
|
||
|
|
const Nr = "Version exceeds 65535",
|
||
|
|
Vr = "Zip64 is not supported (make sure 'keepOrder' is set to 'true')",
|
||
|
|
Pr = new Uint8Array([7, 0, 2, 0, 65, 69, 3, 0, 0])
|
||
|
|
let Hr = 0
|
||
|
|
const Yr = []
|
||
|
|
class Xr {
|
||
|
|
constructor(e, t = {}) {
|
||
|
|
;(e = er(e)),
|
||
|
|
Object.assign(this, {
|
||
|
|
writer: e,
|
||
|
|
addSplitZipSignature: e instanceof Gn,
|
||
|
|
options: t,
|
||
|
|
config: Ke(),
|
||
|
|
files: new Map(),
|
||
|
|
filenames: new Set(),
|
||
|
|
offset: e.writable.size,
|
||
|
|
pendingEntriesSize: 0,
|
||
|
|
pendingAddFileCalls: new Set(),
|
||
|
|
bufferedWrites: 0
|
||
|
|
})
|
||
|
|
}
|
||
|
|
async add(e = "", t, n = {}) {
|
||
|
|
const r = this,
|
||
|
|
{ pendingAddFileCalls: i, config: s } = r
|
||
|
|
let a
|
||
|
|
Hr < s.maxWorkers ? Hr++ : await new Promise((e) => Yr.push(e))
|
||
|
|
try {
|
||
|
|
if (((e = e.trim()), r.filenames.has(e))) throw new Error("File already exists")
|
||
|
|
return (
|
||
|
|
r.filenames.add(e),
|
||
|
|
(a = (async function (e, t, n, r) {
|
||
|
|
;(t = t.trim()), r.directory && !t.endsWith(De) ? (t += De) : (r.directory = t.endsWith(De))
|
||
|
|
const i = Je(t)
|
||
|
|
if (ii(i) > he) throw new Error("File entry name exceeds 64KB")
|
||
|
|
const s = r.comment || "",
|
||
|
|
a = Je(s)
|
||
|
|
if (ii(a) > he) throw new Error("File entry comment exceeds 64KB")
|
||
|
|
const o = Gr(e, r, "version", 20)
|
||
|
|
if (o > he) throw new Error(Nr)
|
||
|
|
const c = Gr(e, r, "versionMadeBy", 20)
|
||
|
|
if (c > he) throw new Error(Nr)
|
||
|
|
const l = Gr(e, r, pr, new Date()),
|
||
|
|
d = Gr(e, r, wr),
|
||
|
|
f = Gr(e, r, hr),
|
||
|
|
u = Gr(e, r, br, !0),
|
||
|
|
p = Gr(e, r, xr, 0),
|
||
|
|
m = Gr(e, r, gr, 0),
|
||
|
|
w = Gr(e, r, "password"),
|
||
|
|
h = Gr(e, r, "encryptionStrength", 3),
|
||
|
|
x = Gr(e, r, "zipCrypto"),
|
||
|
|
g = Gr(e, r, "extendedTimestamp", !0),
|
||
|
|
b = Gr(e, r, "keepOrder", !0),
|
||
|
|
v = Gr(e, r, "level"),
|
||
|
|
y = Gr(e, r, "useWebWorkers"),
|
||
|
|
_ = Gr(e, r, "bufferedWrite"),
|
||
|
|
k = Gr(e, r, "dataDescriptorSignature", !1),
|
||
|
|
z = Gr(e, r, "signal"),
|
||
|
|
S = Gr(e, r, "useCompressionStream")
|
||
|
|
let A = Gr(e, r, "dataDescriptor", !0),
|
||
|
|
C = Gr(e, r, vr)
|
||
|
|
if (w !== Te && h !== Te && (h < 1 || h > 3)) throw new Error("The strength must equal 1, 2, or 3")
|
||
|
|
let W = new Uint8Array()
|
||
|
|
const { extraField: F } = r
|
||
|
|
if (F) {
|
||
|
|
let e = 0,
|
||
|
|
t = 0
|
||
|
|
F.forEach((t) => (e += 4 + ii(t))),
|
||
|
|
(W = new Uint8Array(e)),
|
||
|
|
F.forEach((e, n) => {
|
||
|
|
if (n > he) throw new Error("Extra field type exceeds 65535")
|
||
|
|
if (ii(e) > he) throw new Error("Extra field data exceeds 64KB")
|
||
|
|
ni(W, new Uint16Array([n]), t), ni(W, new Uint16Array([ii(e)]), t + 2), ni(W, e, t + 4), (t += 4 + ii(e))
|
||
|
|
})
|
||
|
|
}
|
||
|
|
let E = 0,
|
||
|
|
U = 0,
|
||
|
|
D = 0
|
||
|
|
const j = !0 === C
|
||
|
|
n &&
|
||
|
|
((n = Qn(n)),
|
||
|
|
await $n(n),
|
||
|
|
n.size === Te
|
||
|
|
? ((A = !0), (C || C === Te) && ((C = !0), (E = we)))
|
||
|
|
: ((D = n.size),
|
||
|
|
(E = (function (e) {
|
||
|
|
return e + 5 * (Math.floor(e / 16383) + 1)
|
||
|
|
})(D))))
|
||
|
|
const { diskOffset: q, diskNumber: T, maxSize: O } = e.writer,
|
||
|
|
R = j || D >= we,
|
||
|
|
I = j || E >= we,
|
||
|
|
L = j || e.offset + e.pendingEntriesSize - q >= we,
|
||
|
|
B = (Gr(e, r, "supportZip64SplitFile", !0) && j) || T + Math.ceil(e.pendingEntriesSize / O) >= he
|
||
|
|
if (L || R || I || B) {
|
||
|
|
if (!1 === C || !b) throw new Error(Vr)
|
||
|
|
C = !0
|
||
|
|
}
|
||
|
|
C = C || !1
|
||
|
|
const M = (function (e) {
|
||
|
|
const {
|
||
|
|
rawFilename: t,
|
||
|
|
lastModDate: n,
|
||
|
|
lastAccessDate: r,
|
||
|
|
creationDate: i,
|
||
|
|
password: s,
|
||
|
|
level: a,
|
||
|
|
zip64: o,
|
||
|
|
zipCrypto: c,
|
||
|
|
dataDescriptor: l,
|
||
|
|
directory: d,
|
||
|
|
rawExtraField: f,
|
||
|
|
encryptionStrength: u,
|
||
|
|
extendedTimestamp: p
|
||
|
|
} = e,
|
||
|
|
m = 0 !== a && !d,
|
||
|
|
w = Boolean(s && ii(s))
|
||
|
|
let h,
|
||
|
|
x,
|
||
|
|
g,
|
||
|
|
b = e.version
|
||
|
|
if (w && !c) {
|
||
|
|
h = new Uint8Array(ii(Pr) + 2)
|
||
|
|
const e = ri(h)
|
||
|
|
Qr(e, 0, Se), ni(h, Pr, 2), $r(e, 8, u)
|
||
|
|
} else h = new Uint8Array()
|
||
|
|
if (p) {
|
||
|
|
g = new Uint8Array(9 + (r ? 4 : 0) + (i ? 4 : 0))
|
||
|
|
const e = ri(g)
|
||
|
|
Qr(e, 0, We),
|
||
|
|
Qr(e, 2, ii(g) - 4),
|
||
|
|
$r(e, 4, 1 + (r ? 2 : 0) + (i ? 4 : 0)),
|
||
|
|
ei(e, 5, Math.floor(n.getTime() / 1e3)),
|
||
|
|
r && ei(e, 9, Math.floor(r.getTime() / 1e3)),
|
||
|
|
i && ei(e, 13, Math.floor(i.getTime() / 1e3))
|
||
|
|
try {
|
||
|
|
x = new Uint8Array(36)
|
||
|
|
const e = ri(x),
|
||
|
|
t = Jr(n)
|
||
|
|
Qr(e, 0, Ae), Qr(e, 2, 32), Qr(e, 8, Ce), Qr(e, 10, 24), ti(e, 12, t), ti(e, 20, Jr(r) || t), ti(e, 28, Jr(i) || t)
|
||
|
|
} catch (e) {
|
||
|
|
x = new Uint8Array()
|
||
|
|
}
|
||
|
|
} else x = g = new Uint8Array()
|
||
|
|
let v = Ue
|
||
|
|
l && (v |= Ee)
|
||
|
|
let y = 0
|
||
|
|
m && (y = 8), o && (b = b > 45 ? b : 45), w && ((v |= Fe), c || ((b = b > 51 ? b : 51), (y = 99), m && (h[9] = 8)))
|
||
|
|
const _ = new Uint8Array(26),
|
||
|
|
k = ri(_)
|
||
|
|
Qr(k, 0, b), Qr(k, 2, v), Qr(k, 4, y)
|
||
|
|
const z = new Uint32Array(1),
|
||
|
|
S = ri(z)
|
||
|
|
let A
|
||
|
|
;(A = n < qe ? qe : n > je ? je : n),
|
||
|
|
Qr(S, 0, (((A.getHours() << 6) | A.getMinutes()) << 5) | (A.getSeconds() / 2)),
|
||
|
|
Qr(S, 2, ((((A.getFullYear() - 1980) << 4) | (A.getMonth() + 1)) << 5) | A.getDate())
|
||
|
|
const C = z[0]
|
||
|
|
ei(k, 6, C), Qr(k, 22, ii(t))
|
||
|
|
const W = ii(h, g, x, f)
|
||
|
|
Qr(k, 24, W)
|
||
|
|
const F = new Uint8Array(30 + ii(t) + W)
|
||
|
|
return (
|
||
|
|
ei(ri(F), 0, xe),
|
||
|
|
ni(F, _, 4),
|
||
|
|
ni(F, t, 30),
|
||
|
|
ni(F, h, 30 + ii(t)),
|
||
|
|
ni(F, g, 30 + ii(t, h)),
|
||
|
|
ni(F, x, 30 + ii(t, h, g)),
|
||
|
|
ni(F, f, 30 + ii(t, h, g, x)),
|
||
|
|
{
|
||
|
|
localHeaderArray: F,
|
||
|
|
headerArray: _,
|
||
|
|
headerView: k,
|
||
|
|
lastModDate: n,
|
||
|
|
rawLastModDate: C,
|
||
|
|
encrypted: w,
|
||
|
|
compressed: m,
|
||
|
|
version: b,
|
||
|
|
compressionMethod: y,
|
||
|
|
rawExtraFieldExtendedTimestamp: g,
|
||
|
|
rawExtraFieldNTFS: x,
|
||
|
|
rawExtraFieldAES: h
|
||
|
|
}
|
||
|
|
)
|
||
|
|
})(
|
||
|
|
(r = Object.assign({}, r, {
|
||
|
|
rawFilename: i,
|
||
|
|
rawComment: a,
|
||
|
|
version: o,
|
||
|
|
versionMadeBy: c,
|
||
|
|
lastModDate: l,
|
||
|
|
lastAccessDate: d,
|
||
|
|
creationDate: f,
|
||
|
|
rawExtraField: W,
|
||
|
|
zip64: C,
|
||
|
|
zip64UncompressedSize: R,
|
||
|
|
zip64CompressedSize: I,
|
||
|
|
zip64Offset: L,
|
||
|
|
zip64DiskNumberStart: B,
|
||
|
|
password: w,
|
||
|
|
level: v,
|
||
|
|
useWebWorkers: y,
|
||
|
|
encryptionStrength: h,
|
||
|
|
extendedTimestamp: g,
|
||
|
|
zipCrypto: x,
|
||
|
|
bufferedWrite: _,
|
||
|
|
keepOrder: b,
|
||
|
|
dataDescriptor: A,
|
||
|
|
dataDescriptorSignature: k,
|
||
|
|
signal: z,
|
||
|
|
msDosCompatible: u,
|
||
|
|
internalFileAttribute: p,
|
||
|
|
externalFileAttribute: m,
|
||
|
|
useCompressionStream: S
|
||
|
|
}))
|
||
|
|
),
|
||
|
|
K = (function (e) {
|
||
|
|
const { zip64: t, dataDescriptor: n, dataDescriptorSignature: r } = e
|
||
|
|
let i,
|
||
|
|
s = new Uint8Array(),
|
||
|
|
a = 0
|
||
|
|
return (
|
||
|
|
n && ((s = new Uint8Array(t ? (r ? 24 : 20) : r ? 16 : 12)), (i = ri(s)), r && ((a = 4), ei(i, 0, 134695760))),
|
||
|
|
{ dataDescriptorArray: s, dataDescriptorView: i, dataDescriptorOffset: a }
|
||
|
|
)
|
||
|
|
})(r)
|
||
|
|
let N
|
||
|
|
;(U = ii(M.localHeaderArray, K.dataDescriptorArray) + E), (e.pendingEntriesSize += U)
|
||
|
|
try {
|
||
|
|
N = await (async function (e, t, n, r, i) {
|
||
|
|
const { files: s, writer: a } = e,
|
||
|
|
{ keepOrder: o, dataDescriptor: c, signal: l } = i,
|
||
|
|
{ headerInfo: d } = r,
|
||
|
|
f = Array.from(s.values()).pop()
|
||
|
|
let u,
|
||
|
|
p,
|
||
|
|
m,
|
||
|
|
w,
|
||
|
|
h,
|
||
|
|
x,
|
||
|
|
g = {}
|
||
|
|
s.set(t, g)
|
||
|
|
try {
|
||
|
|
let d
|
||
|
|
o && ((d = f && f.lock), (g.lock = new Promise((e) => (m = e)))),
|
||
|
|
i.bufferedWrite || e.writerLocked || (e.bufferedWrites && o) || !c
|
||
|
|
? ((x = new Tn()), (x.writable.size = 0), (u = !0), e.bufferedWrites++, await $n(a))
|
||
|
|
: ((x = a), await b()),
|
||
|
|
await $n(x)
|
||
|
|
const { writable: p } = a
|
||
|
|
let { diskOffset: y } = a
|
||
|
|
if (e.addSplitZipSignature) {
|
||
|
|
delete e.addSplitZipSignature
|
||
|
|
const t = new Uint8Array(4)
|
||
|
|
ei(ri(t), 0, ge), await Zr(p, t), (e.offset += 4)
|
||
|
|
}
|
||
|
|
u || (await d, await v(p))
|
||
|
|
const { diskNumber: _ } = a
|
||
|
|
if (
|
||
|
|
((h = !0),
|
||
|
|
(g.diskNumberStart = _),
|
||
|
|
(g = await (async function (e, t, { diskNumberStart: n, lock: r }, i, s, a) {
|
||
|
|
const { headerInfo: o, dataDescriptorInfo: c } = i,
|
||
|
|
{
|
||
|
|
localHeaderArray: l,
|
||
|
|
headerArray: d,
|
||
|
|
lastModDate: f,
|
||
|
|
rawLastModDate: u,
|
||
|
|
encrypted: p,
|
||
|
|
compressed: m,
|
||
|
|
version: w,
|
||
|
|
compressionMethod: h,
|
||
|
|
rawExtraFieldExtendedTimestamp: x,
|
||
|
|
rawExtraFieldNTFS: g,
|
||
|
|
rawExtraFieldAES: b
|
||
|
|
} = o,
|
||
|
|
{ dataDescriptorArray: v } = c,
|
||
|
|
{
|
||
|
|
rawFilename: y,
|
||
|
|
lastAccessDate: _,
|
||
|
|
creationDate: k,
|
||
|
|
password: z,
|
||
|
|
level: S,
|
||
|
|
zip64: A,
|
||
|
|
zip64UncompressedSize: C,
|
||
|
|
zip64CompressedSize: W,
|
||
|
|
zip64Offset: F,
|
||
|
|
zip64DiskNumberStart: E,
|
||
|
|
zipCrypto: U,
|
||
|
|
dataDescriptor: D,
|
||
|
|
directory: j,
|
||
|
|
versionMadeBy: q,
|
||
|
|
rawComment: T,
|
||
|
|
rawExtraField: O,
|
||
|
|
useWebWorkers: R,
|
||
|
|
onstart: I,
|
||
|
|
onprogress: L,
|
||
|
|
onend: B,
|
||
|
|
signal: M,
|
||
|
|
encryptionStrength: K,
|
||
|
|
extendedTimestamp: N,
|
||
|
|
msDosCompatible: V,
|
||
|
|
internalFileAttribute: P,
|
||
|
|
externalFileAttribute: H,
|
||
|
|
useCompressionStream: Y
|
||
|
|
} = a,
|
||
|
|
X = {
|
||
|
|
lock: r,
|
||
|
|
versionMadeBy: q,
|
||
|
|
zip64: A,
|
||
|
|
directory: Boolean(j),
|
||
|
|
filenameUTF8: !0,
|
||
|
|
rawFilename: y,
|
||
|
|
commentUTF8: !0,
|
||
|
|
rawComment: T,
|
||
|
|
rawExtraFieldExtendedTimestamp: x,
|
||
|
|
rawExtraFieldNTFS: g,
|
||
|
|
rawExtraFieldAES: b,
|
||
|
|
rawExtraField: O,
|
||
|
|
extendedTimestamp: N,
|
||
|
|
msDosCompatible: V,
|
||
|
|
internalFileAttribute: P,
|
||
|
|
externalFileAttribute: H,
|
||
|
|
diskNumberStart: n
|
||
|
|
}
|
||
|
|
let Z,
|
||
|
|
J = 0,
|
||
|
|
G = 0
|
||
|
|
const { writable: $ } = t
|
||
|
|
if (e) {
|
||
|
|
;(e.chunkSize = Ne(s)), await Zr($, l)
|
||
|
|
const t = e.readable,
|
||
|
|
n = (t.size = e.size),
|
||
|
|
r = {
|
||
|
|
options: {
|
||
|
|
codecType: sn,
|
||
|
|
level: S,
|
||
|
|
password: z,
|
||
|
|
encryptionStrength: K,
|
||
|
|
zipCrypto: p && U,
|
||
|
|
passwordVerification: p && U && (u >> 8) & 255,
|
||
|
|
signed: !0,
|
||
|
|
compressed: m,
|
||
|
|
encrypted: p,
|
||
|
|
useWebWorkers: R,
|
||
|
|
useCompressionStream: Y,
|
||
|
|
transferStreams: !1
|
||
|
|
},
|
||
|
|
config: s,
|
||
|
|
streamOptions: { signal: M, size: n, onstart: I, onprogress: L, onend: B }
|
||
|
|
},
|
||
|
|
i = await yn({ readable: t, writable: $ }, r)
|
||
|
|
;($.size += i.size), (Z = i.signature), (G = e.size = t.size), (J = i.size)
|
||
|
|
} else await Zr($, l)
|
||
|
|
let Q
|
||
|
|
if (A) {
|
||
|
|
let e = 4
|
||
|
|
C && (e += 8), W && (e += 8), F && (e += 8), E && (e += 4), (Q = new Uint8Array(e))
|
||
|
|
} else Q = new Uint8Array()
|
||
|
|
return (
|
||
|
|
(function (e, t) {
|
||
|
|
const {
|
||
|
|
signature: n,
|
||
|
|
rawExtraFieldZip64: r,
|
||
|
|
compressedSize: i,
|
||
|
|
uncompressedSize: s,
|
||
|
|
headerInfo: a,
|
||
|
|
dataDescriptorInfo: o
|
||
|
|
} = e,
|
||
|
|
{ headerView: c, encrypted: l } = a,
|
||
|
|
{ dataDescriptorView: d, dataDescriptorOffset: f } = o,
|
||
|
|
{ zip64: u, zip64UncompressedSize: p, zip64CompressedSize: m, zipCrypto: w, dataDescriptor: h } = t
|
||
|
|
if (((l && !w) || n === Te || (ei(c, 10, n), h && ei(d, f, n)), u)) {
|
||
|
|
const e = ri(r)
|
||
|
|
Qr(e, 0, ze), Qr(e, 2, r.length - 4)
|
||
|
|
let t = 4
|
||
|
|
p && (ei(c, 18, we), ti(e, t, BigInt(s)), (t += 8)),
|
||
|
|
m && (ei(c, 14, we), ti(e, t, BigInt(i))),
|
||
|
|
h && (ti(d, f + 4, BigInt(i)), ti(d, f + 12, BigInt(s)))
|
||
|
|
} else ei(c, 14, i), ei(c, 18, s), h && (ei(d, f + 4, i), ei(d, f + 8, s))
|
||
|
|
})(
|
||
|
|
{ signature: Z, rawExtraFieldZip64: Q, compressedSize: J, uncompressedSize: G, headerInfo: o, dataDescriptorInfo: c },
|
||
|
|
a
|
||
|
|
),
|
||
|
|
D && (await Zr($, v)),
|
||
|
|
Object.assign(X, {
|
||
|
|
uncompressedSize: G,
|
||
|
|
compressedSize: J,
|
||
|
|
lastModDate: f,
|
||
|
|
rawLastModDate: u,
|
||
|
|
creationDate: k,
|
||
|
|
lastAccessDate: _,
|
||
|
|
encrypted: p,
|
||
|
|
length: ii(l, v) + J,
|
||
|
|
compressionMethod: h,
|
||
|
|
version: w,
|
||
|
|
headerArray: d,
|
||
|
|
signature: Z,
|
||
|
|
rawExtraFieldZip64: Q,
|
||
|
|
zip64UncompressedSize: C,
|
||
|
|
zip64CompressedSize: W,
|
||
|
|
zip64Offset: F,
|
||
|
|
zip64DiskNumberStart: E
|
||
|
|
}),
|
||
|
|
X
|
||
|
|
)
|
||
|
|
})(n, x, g, r, e.config, i)),
|
||
|
|
(h = !1),
|
||
|
|
s.set(t, g),
|
||
|
|
(g.filename = t),
|
||
|
|
u)
|
||
|
|
) {
|
||
|
|
await x.writable.close()
|
||
|
|
let e = await x.getData()
|
||
|
|
await d,
|
||
|
|
await b(),
|
||
|
|
(w = !0),
|
||
|
|
c ||
|
||
|
|
(e = await (async function (e, t, n, { zipCrypto: r }) {
|
||
|
|
const i = await (function (e, t, n) {
|
||
|
|
return e.slice(0, 26).arrayBuffer()
|
||
|
|
})(t),
|
||
|
|
s = new DataView(i)
|
||
|
|
return (
|
||
|
|
(e.encrypted && !r) || ei(s, 14, e.signature),
|
||
|
|
e.zip64 ? (ei(s, 18, we), ei(s, 22, we)) : (ei(s, 18, e.compressedSize), ei(s, 22, e.uncompressedSize)),
|
||
|
|
await Zr(n, new Uint8Array(i)),
|
||
|
|
t.slice(i.byteLength)
|
||
|
|
)
|
||
|
|
})(g, e, p, i)),
|
||
|
|
await v(p),
|
||
|
|
(g.diskNumberStart = a.diskNumber),
|
||
|
|
(y = a.diskOffset),
|
||
|
|
await e.stream().pipeTo(p, { preventClose: !0, preventAbort: !0, signal: l }),
|
||
|
|
(p.size += e.size),
|
||
|
|
(w = !1)
|
||
|
|
}
|
||
|
|
if (((g.offset = e.offset - y), g.zip64))
|
||
|
|
!(function (e, t) {
|
||
|
|
const { rawExtraFieldZip64: n, offset: r, diskNumberStart: i } = e,
|
||
|
|
{ zip64UncompressedSize: s, zip64CompressedSize: a, zip64Offset: o, zip64DiskNumberStart: c } = t,
|
||
|
|
l = ri(n)
|
||
|
|
let d = 4
|
||
|
|
s && (d += 8), a && (d += 8), o && (ti(l, d, BigInt(r)), (d += 8)), c && ei(l, d, i)
|
||
|
|
})(g, i)
|
||
|
|
else if (g.offset >= we) throw new Error(Vr)
|
||
|
|
return (e.offset += g.length), g
|
||
|
|
} catch (n) {
|
||
|
|
if ((u && w) || (!u && h)) {
|
||
|
|
if (((e.hasCorruptedEntries = !0), n))
|
||
|
|
try {
|
||
|
|
n.corruptedEntry = !0
|
||
|
|
} catch (e) {}
|
||
|
|
u ? (e.offset += x.writable.size) : (e.offset = x.writable.size)
|
||
|
|
}
|
||
|
|
throw (s.delete(t), n)
|
||
|
|
} finally {
|
||
|
|
u && e.bufferedWrites--, m && m(), p && p()
|
||
|
|
}
|
||
|
|
async function b() {
|
||
|
|
e.writerLocked = !0
|
||
|
|
const { lockWriter: t } = e
|
||
|
|
;(e.lockWriter = new Promise(
|
||
|
|
(t) =>
|
||
|
|
(p = () => {
|
||
|
|
;(e.writerLocked = !1), t()
|
||
|
|
})
|
||
|
|
)),
|
||
|
|
await t
|
||
|
|
}
|
||
|
|
async function v(e) {
|
||
|
|
d.localHeaderArray.length > a.availableSize && ((a.availableSize = 0), await Zr(e, new Uint8Array()))
|
||
|
|
}
|
||
|
|
})(e, t, n, { headerInfo: M, dataDescriptorInfo: K }, r)
|
||
|
|
} finally {
|
||
|
|
e.pendingEntriesSize -= U
|
||
|
|
}
|
||
|
|
return Object.assign(N, { name: t, comment: s, extraField: F }), new _r(N)
|
||
|
|
})(r, e, t, n)),
|
||
|
|
i.add(a),
|
||
|
|
await a
|
||
|
|
)
|
||
|
|
} catch (t) {
|
||
|
|
throw (r.filenames.delete(e), t)
|
||
|
|
} finally {
|
||
|
|
i.delete(a)
|
||
|
|
const e = Yr.shift()
|
||
|
|
e ? e() : Hr--
|
||
|
|
}
|
||
|
|
}
|
||
|
|
async close(e = new Uint8Array(), t = {}) {
|
||
|
|
const { pendingAddFileCalls: n, writer: r } = this,
|
||
|
|
{ writable: i } = r
|
||
|
|
for (; n.size; ) await Promise.all(Array.from(n))
|
||
|
|
return (
|
||
|
|
await (async function (e, t, n) {
|
||
|
|
const { files: r, writer: i } = e,
|
||
|
|
{ diskOffset: s, writable: a } = i
|
||
|
|
let { diskNumber: o } = i,
|
||
|
|
c = 0,
|
||
|
|
l = 0,
|
||
|
|
d = e.offset - s,
|
||
|
|
f = r.size
|
||
|
|
for (const [
|
||
|
|
,
|
||
|
|
{
|
||
|
|
rawFilename: e,
|
||
|
|
rawExtraFieldZip64: t,
|
||
|
|
rawExtraFieldAES: n,
|
||
|
|
rawExtraField: i,
|
||
|
|
rawComment: s,
|
||
|
|
rawExtraFieldExtendedTimestamp: a,
|
||
|
|
rawExtraFieldNTFS: o
|
||
|
|
}
|
||
|
|
] of r)
|
||
|
|
l += 46 + ii(e, s, t, n, a, o, i)
|
||
|
|
const u = new Uint8Array(l),
|
||
|
|
p = ri(u)
|
||
|
|
await $n(i)
|
||
|
|
let m = 0
|
||
|
|
for (const [e, t] of Array.from(r.values()).entries()) {
|
||
|
|
const {
|
||
|
|
offset: s,
|
||
|
|
rawFilename: o,
|
||
|
|
rawExtraFieldZip64: l,
|
||
|
|
rawExtraFieldAES: d,
|
||
|
|
rawExtraFieldNTFS: f,
|
||
|
|
rawExtraField: w,
|
||
|
|
rawComment: h,
|
||
|
|
versionMadeBy: x,
|
||
|
|
headerArray: g,
|
||
|
|
directory: b,
|
||
|
|
zip64: v,
|
||
|
|
zip64UncompressedSize: y,
|
||
|
|
zip64CompressedSize: _,
|
||
|
|
zip64DiskNumberStart: k,
|
||
|
|
zip64Offset: z,
|
||
|
|
msDosCompatible: S,
|
||
|
|
internalFileAttribute: A,
|
||
|
|
externalFileAttribute: C,
|
||
|
|
extendedTimestamp: W,
|
||
|
|
lastModDate: F,
|
||
|
|
diskNumberStart: E,
|
||
|
|
uncompressedSize: U,
|
||
|
|
compressedSize: D
|
||
|
|
} = t
|
||
|
|
let j
|
||
|
|
if (W) {
|
||
|
|
j = new Uint8Array(9)
|
||
|
|
const e = ri(j)
|
||
|
|
Qr(e, 0, We), Qr(e, 2, ii(j) - 4), $r(e, 4, 1), ei(e, 5, Math.floor(F.getTime() / 1e3))
|
||
|
|
} else j = new Uint8Array()
|
||
|
|
const q = ii(l, d, j, f, w)
|
||
|
|
ei(p, c, be), Qr(p, c + 4, x)
|
||
|
|
const T = ri(g)
|
||
|
|
y || ei(T, 18, U),
|
||
|
|
_ || ei(T, 14, D),
|
||
|
|
ni(u, g, c + 6),
|
||
|
|
Qr(p, c + 30, q),
|
||
|
|
Qr(p, c + 32, ii(h)),
|
||
|
|
Qr(p, c + 34, v && k ? he : E),
|
||
|
|
Qr(p, c + 36, A),
|
||
|
|
C ? ei(p, c + 38, C) : b && S && $r(p, c + 38, 16),
|
||
|
|
ei(p, c + 42, v && z ? we : s),
|
||
|
|
ni(u, o, c + 46),
|
||
|
|
ni(u, l, c + 46 + ii(o)),
|
||
|
|
ni(u, d, c + 46 + ii(o, l)),
|
||
|
|
ni(u, j, c + 46 + ii(o, l, d)),
|
||
|
|
ni(u, f, c + 46 + ii(o, l, d, j)),
|
||
|
|
ni(u, w, c + 46 + ii(o, l, d, j, f)),
|
||
|
|
ni(u, h, c + 46 + ii(o) + q)
|
||
|
|
const O = 46 + ii(o, h) + q
|
||
|
|
if ((c - m > i.availableSize && ((i.availableSize = 0), await Zr(a, u.slice(m, c)), (m = c)), (c += O), n.onprogress))
|
||
|
|
try {
|
||
|
|
await n.onprogress(e + 1, r.size, new _r(t))
|
||
|
|
} catch (e) {}
|
||
|
|
}
|
||
|
|
await Zr(a, m ? u.slice(m) : u)
|
||
|
|
let w = i.diskNumber
|
||
|
|
const { availableSize: h } = i
|
||
|
|
h < ke && w++
|
||
|
|
let x = Gr(e, n, "zip64")
|
||
|
|
if (d >= we || l >= we || f >= he || w >= he) {
|
||
|
|
if (!1 === x) throw new Error(Vr)
|
||
|
|
x = !0
|
||
|
|
}
|
||
|
|
const g = new Uint8Array(x ? 98 : ke),
|
||
|
|
b = ri(g)
|
||
|
|
;(c = 0),
|
||
|
|
x &&
|
||
|
|
(ei(b, 0, ye),
|
||
|
|
ti(b, 4, BigInt(44)),
|
||
|
|
Qr(b, 12, 45),
|
||
|
|
Qr(b, 14, 45),
|
||
|
|
ei(b, 16, w),
|
||
|
|
ei(b, 20, o),
|
||
|
|
ti(b, 24, BigInt(f)),
|
||
|
|
ti(b, 32, BigInt(f)),
|
||
|
|
ti(b, 40, BigInt(l)),
|
||
|
|
ti(b, 48, BigInt(d)),
|
||
|
|
ei(b, 56, _e),
|
||
|
|
ti(b, 64, BigInt(d) + BigInt(l)),
|
||
|
|
ei(b, 72, w + 1),
|
||
|
|
Gr(e, n, "supportZip64SplitFile", !0) && ((w = he), (o = he)),
|
||
|
|
(f = he),
|
||
|
|
(d = we),
|
||
|
|
(l = we),
|
||
|
|
(c += 76)),
|
||
|
|
ei(b, c, ve),
|
||
|
|
Qr(b, c + 4, w),
|
||
|
|
Qr(b, c + 6, o),
|
||
|
|
Qr(b, c + 8, f),
|
||
|
|
Qr(b, c + 10, f),
|
||
|
|
ei(b, c + 12, l),
|
||
|
|
ei(b, c + 16, d)
|
||
|
|
const v = ii(t)
|
||
|
|
if (v) {
|
||
|
|
if (!(v <= he)) throw new Error("Zip file comment exceeds 64KB")
|
||
|
|
Qr(b, c + 20, v)
|
||
|
|
}
|
||
|
|
await Zr(a, g), v && (await Zr(a, t))
|
||
|
|
})(this, e, t),
|
||
|
|
Gr(this, t, "preventClose") || (await i.close()),
|
||
|
|
r.getData ? r.getData() : i
|
||
|
|
)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
async function Zr(e, t) {
|
||
|
|
const n = e.getWriter()
|
||
|
|
await n.ready, (e.size += ii(t)), await n.write(t), n.releaseLock()
|
||
|
|
}
|
||
|
|
function Jr(e) {
|
||
|
|
if (e) return (BigInt(e.getTime()) + BigInt(116444736e5)) * BigInt(1e4)
|
||
|
|
}
|
||
|
|
function Gr(e, t, n, r) {
|
||
|
|
const i = t[n] === Te ? e.options[n] : t[n]
|
||
|
|
return i === Te ? r : i
|
||
|
|
}
|
||
|
|
function $r(e, t, n) {
|
||
|
|
e.setUint8(t, n)
|
||
|
|
}
|
||
|
|
function Qr(e, t, n) {
|
||
|
|
e.setUint16(t, n, !0)
|
||
|
|
}
|
||
|
|
function ei(e, t, n) {
|
||
|
|
e.setUint32(t, n, !0)
|
||
|
|
}
|
||
|
|
function ti(e, t, n) {
|
||
|
|
e.setBigUint64(t, n, !0)
|
||
|
|
}
|
||
|
|
function ni(e, t, n) {
|
||
|
|
e.set(t, n)
|
||
|
|
}
|
||
|
|
function ri(e) {
|
||
|
|
return new DataView(e.buffer)
|
||
|
|
}
|
||
|
|
function ii(...e) {
|
||
|
|
let t = 0
|
||
|
|
return e.forEach((e) => e && (t += e.length)), t
|
||
|
|
}
|
||
|
|
let si
|
||
|
|
try {
|
||
|
|
si = "file:///D:/Gitee-Lib/CesiumNetworkPlug/%E6%BA%90%E7%A0%81/CesiumNetworkPlug/src/@zip.js/lib/zip-fs.js"
|
||
|
|
} catch (e) {}
|
||
|
|
Ve({ baseURL: si }),
|
||
|
|
(function (e) {
|
||
|
|
const t = () =>
|
||
|
|
URL.createObjectURL(
|
||
|
|
new Blob(
|
||
|
|
[
|
||
|
|
'const{Array:e,Object:t,Number:n,Math:r,Error:s,Uint8Array:i,Uint16Array:o,Uint32Array:c,Int32Array:f,Map:a,DataView:l,Promise:u,TextEncoder:w,crypto:h,postMessage:d,TransformStream:p,ReadableStream:y,WritableStream:m,CompressionStream:b,DecompressionStream:g}=self;class k{constructor(e){return class extends p{constructor(t,n){const r=new e(n);super({transform(e,t){t.enqueue(r.append(e))},flush(e){const t=r.flush();t&&e.enqueue(t)}})}}}}const v=[];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;v[e]=t}class S{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^v[255&(t^e[n])];this.t=t}get(){return~this.t}}class z extends p{constructor(){const e=new S;super({transform(t){e.append(t)},flush(t){const n=new i(4);new l(n.buffer).setUint32(0,e.get()),t.enqueue(n)}})}}const C={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=C.i(n);return 32===r?e.concat(t):C.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)+C.i(n)},u(e,t){if(32*e.length<t)return e;const n=(e=e.slice(0,r.ceil(t/32))).length;return t&=31,n>0&&t&&(e[n-1]=C.h(t,e[n-1]&2147483648>>t-1,1)),e},h:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,i:e=>r.round(e/1099511627776)||32,o(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s<e.length;s++)r.push(n|e[s]>>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,i=C.i(s);return r.push(C.h(t+i&31,t+i>32?n:r.pop(),1)),r}},x={p:{m(e){const t=C.l(e)/8,n=new i(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(C.h(8*(3&n),r)),t}}},_=class{constructor(e){const t=this;t.blockSize=512,t.k=[1732584193,4023233417,2562383102,271733878,3285377520],t.v=[1518500249,1859775393,2400959708,3395469782],e?(t.S=e.S.slice(0),t.C=e.C.slice(0),t._=e._):t.reset()}reset(){const e=this;return e.S=e.k.slice(0),e.C=[],e._=0,e}update(e){const t=this;"string"==typeof e&&(e=x.A.g(e));const n=t.C=C.concat(t.C,e),r=t._,i=t._=r+C.l(e);if(i>9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const o=new c(n);let f=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);i>=e;e+=t.blockSize)t.I(o.subarray(16*f,16*(f+1))),f+=1;return n.splice(0,16*f),t}D(){const e=this;let t=e.C;const n=e.S;t=C.concat(t,[C.h(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(r.floor(e._/4294967296)),t.push(0|e._);t.length;)e.I(t.splice(0,16));return e.reset(),n}V(e,t,n,r){return e>19?e>39?e>59?e>79?void 0:t^n^r:t&n|t&r|n&r:t^n^r:t&n|~t&r}P(e,t){return t<<e|t>>>32-e}I(t){const n=this,s=n.S,i=e(80);for(let e=0;16>e;e++)i[e]=t[e];let o=s[0],c=s[1],f=s[2],a=s[3],l=s[4];for(let e=0;79>=e;e++){16>e||(i[e]=n.P(1,i[e-3]^i[e-8]^i[e-14]^i[e-16]));const t=n.P(5,o)+n.V(e,c,f,a)+l+i[e]+n.v[r.floor(e/20)]|0;l=a,a=f,f=n.P(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}},A={getRandomValues(e){const t=new c(e.buffer),n=e=>{let t=987654321;const n=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&n,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n)/4294967296+.5)*(r.random()>.5?1:-1))};for(let s,i=0;i<e.length;i+=4){const e=n(4294967296*(s||r.random()));s=987654071*e(),t[i/4]=4294967296*e()|0}return e}},I={importKey:e=>new I.R(x.p.g(e)),B(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new s("invalid params to pbkdf2");const i=1+(r>>5)<<2;let o,c,f,a,u;const w=new ArrayBuffer(i),h=new l(w);let d=0;const p=C;for(t=x.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),a=0;a<c.length;a++)o[a]^=c[a];for(f=0;(i||1)>d&&f<o.length;f++)h.setInt32(d,o[f]),d+=4}return w.slice(0,r/8)},R:class{constructor(e){const t=this,n=t.M=_,r=[[],[]];t.K=[new n,new n];const s=t.K[0].blockSize/32;e.length>s&&(e=(new n).update(e).D());for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t.K[0].update(r[0]),t.K[1].update(r[1]),t.U=new n(t.K[0])}reset(){const e=this;e.U=new e
|
||
|
|
],
|
||
|
|
{ type: "text/javascript" }
|
||
|
|
)
|
||
|
|
)
|
||
|
|
e({ workerScripts: { inflate: [t], deflate: [t] } })
|
||
|
|
})(Ve),
|
||
|
|
Ve({
|
||
|
|
Deflate: function (e) {
|
||
|
|
const t = new S(),
|
||
|
|
n = (r = e && e.chunkSize ? e.chunkSize : 65536) + 5 * (Math.floor(r / 16383) + 1)
|
||
|
|
var r
|
||
|
|
const l = s,
|
||
|
|
d = new Uint8Array(n)
|
||
|
|
let f = e ? e.level : i
|
||
|
|
void 0 === f && (f = i),
|
||
|
|
t.deflateInit(f),
|
||
|
|
(t.next_out = d),
|
||
|
|
(this.append = function (e, r) {
|
||
|
|
let i,
|
||
|
|
s,
|
||
|
|
a = 0,
|
||
|
|
c = 0,
|
||
|
|
f = 0
|
||
|
|
const u = []
|
||
|
|
if (e.length) {
|
||
|
|
;(t.next_in_index = 0), (t.next_in = e), (t.avail_in = e.length)
|
||
|
|
do {
|
||
|
|
if (((t.next_out_index = 0), (t.avail_out = n), (i = t.deflate(l)), i != o)) throw new Error("deflating: " + t.msg)
|
||
|
|
t.next_out_index && (t.next_out_index == n ? u.push(new Uint8Array(d)) : u.push(d.slice(0, t.next_out_index))),
|
||
|
|
(f += t.next_out_index),
|
||
|
|
r && t.next_in_index > 0 && t.next_in_index != a && (r(t.next_in_index), (a = t.next_in_index))
|
||
|
|
} while (t.avail_in > 0 || 0 === t.avail_out)
|
||
|
|
return (
|
||
|
|
u.length > 1
|
||
|
|
? ((s = new Uint8Array(f)),
|
||
|
|
u.forEach(function (e) {
|
||
|
|
s.set(e, c), (c += e.length)
|
||
|
|
}))
|
||
|
|
: (s = u[0] || new Uint8Array()),
|
||
|
|
s
|
||
|
|
)
|
||
|
|
}
|
||
|
|
}),
|
||
|
|
(this.flush = function () {
|
||
|
|
let e,
|
||
|
|
r,
|
||
|
|
i = 0,
|
||
|
|
s = 0
|
||
|
|
const l = []
|
||
|
|
do {
|
||
|
|
if (((t.next_out_index = 0), (t.avail_out = n), (e = t.deflate(a)), e != c && e != o)) throw new Error("deflating: " + t.msg)
|
||
|
|
n - t.avail_out > 0 && l.push(d.slice(0, t.next_out_index)), (s += t.next_out_index)
|
||
|
|
} while (t.avail_in > 0 || 0 === t.avail_out)
|
||
|
|
return (
|
||
|
|
t.deflateEnd(),
|
||
|
|
(r = new Uint8Array(s)),
|
||
|
|
l.forEach(function (e) {
|
||
|
|
r.set(e, i), (i += e.length)
|
||
|
|
}),
|
||
|
|
r
|
||
|
|
)
|
||
|
|
})
|
||
|
|
},
|
||
|
|
Inflate: function (e) {
|
||
|
|
const t = new me(),
|
||
|
|
n = e && e.chunkSize ? Math.floor(2 * e.chunkSize) : 131072,
|
||
|
|
r = new Uint8Array(n)
|
||
|
|
let i = !1
|
||
|
|
t.inflateInit(),
|
||
|
|
(t.next_out = r),
|
||
|
|
(this.append = function (e, s) {
|
||
|
|
const a = []
|
||
|
|
let o,
|
||
|
|
c,
|
||
|
|
l = 0,
|
||
|
|
d = 0,
|
||
|
|
f = 0
|
||
|
|
if (0 !== e.length) {
|
||
|
|
;(t.next_in_index = 0), (t.next_in = e), (t.avail_in = e.length)
|
||
|
|
do {
|
||
|
|
if (
|
||
|
|
((t.next_out_index = 0),
|
||
|
|
(t.avail_out = n),
|
||
|
|
0 !== t.avail_in || i || ((t.next_in_index = 0), (i = !0)),
|
||
|
|
(o = t.inflate(0)),
|
||
|
|
i && o === U)
|
||
|
|
) {
|
||
|
|
if (0 !== t.avail_in) throw new Error("inflating: bad input")
|
||
|
|
} else if (o !== A && o !== C) throw new Error("inflating: " + t.msg)
|
||
|
|
if ((i || o === C) && t.avail_in === e.length) throw new Error("inflating: bad input")
|
||
|
|
t.next_out_index && (t.next_out_index === n ? a.push(new Uint8Array(r)) : a.push(r.slice(0, t.next_out_index))),
|
||
|
|
(f += t.next_out_index),
|
||
|
|
s && t.next_in_index > 0 && t.next_in_index != l && (s(t.next_in_index), (l = t.next_in_index))
|
||
|
|
} while (t.avail_in > 0 || 0 === t.avail_out)
|
||
|
|
return (
|
||
|
|
a.length > 1
|
||
|
|
? ((c = new Uint8Array(f)),
|
||
|
|
a.forEach(function (e) {
|
||
|
|
c.set(e, d), (d += e.length)
|
||
|
|
}))
|
||
|
|
: (c = a[0] || new Uint8Array()),
|
||
|
|
c
|
||
|
|
)
|
||
|
|
}
|
||
|
|
}),
|
||
|
|
(this.flush = function () {
|
||
|
|
t.inflateEnd()
|
||
|
|
})
|
||
|
|
}
|
||
|
|
})
|
||
|
|
const ai = {
|
||
|
|
async encryptByReader(e, t, n, r = !1) {
|
||
|
|
try {
|
||
|
|
const i = new Tn(),
|
||
|
|
s = new Xr(i)
|
||
|
|
await s.add(n, e, { bufferedWrite: !0, password: t }), await s.close(), r && console.time("encryption time")
|
||
|
|
let a = await i.getData()
|
||
|
|
return r && console.timeEnd("encryption time"), [null, a]
|
||
|
|
} catch (e) {
|
||
|
|
return [e, null]
|
||
|
|
}
|
||
|
|
},
|
||
|
|
async decryptByReader(e, t, n = !1) {
|
||
|
|
try {
|
||
|
|
const r = new Er(e, { password: t })
|
||
|
|
n && console.time("loading time")
|
||
|
|
const i = await r.getEntries()
|
||
|
|
n && console.timeEnd("loading time")
|
||
|
|
const s = []
|
||
|
|
for (let e = 0; e < i.length; e++) {
|
||
|
|
n && console.time("decrypt time")
|
||
|
|
const t = await i[e].getData(new Tn())
|
||
|
|
n && console.timeEnd("decrypt time"), s.push({ name: i[e].filename, blob: await t })
|
||
|
|
}
|
||
|
|
return await r.close(), [null, { password: t, files: s }]
|
||
|
|
} catch (e) {
|
||
|
|
return [e, null]
|
||
|
|
}
|
||
|
|
},
|
||
|
|
async encryptByBlob(e, t = "123465", n = "A.data", r = !1) {
|
||
|
|
return this.encryptByReader(new qn(e), t, n, r)
|
||
|
|
},
|
||
|
|
async decryptByBlob(e, t, n = !1) {
|
||
|
|
return this.decryptByReader(new qn(e), t, n)
|
||
|
|
},
|
||
|
|
async decryptByUrl(e, t, n = !1) {
|
||
|
|
return this.decryptByReader(new Zn(e, {}), t, n)
|
||
|
|
},
|
||
|
|
async decryptFirstFileBlob(e, t, n = !1) {
|
||
|
|
let [r, i] = await this.decryptByBlob(e, t, n),
|
||
|
|
[s, a] = [null, null]
|
||
|
|
return i && ([s, a] = await this.getFirstFileByFiles(i.files)), [r || s, a]
|
||
|
|
},
|
||
|
|
async decryptFirstFileByUrl(e, t, n = !1) {
|
||
|
|
let [r, i] = await this.decryptByUrl(e, t, n),
|
||
|
|
[s, a] = [null, null]
|
||
|
|
return i && ([s, a] = await this.getFirstFileByFiles(i.files)), [r || s, a]
|
||
|
|
},
|
||
|
|
getFirstFileByFiles: (e) => (e?.length > 0 ? [null, e[0].blob] : [{ msg: "file.length === 0" }, null]),
|
||
|
|
async blobToText(e) {
|
||
|
|
const t = new FileReader()
|
||
|
|
return (
|
||
|
|
t.readAsText(e, "utf-8"),
|
||
|
|
new Promise((e, n) => {
|
||
|
|
;(t.onload = function (t) {
|
||
|
|
e([null, t.target.result])
|
||
|
|
}),
|
||
|
|
(t.onerror = function (t) {
|
||
|
|
e([t, null])
|
||
|
|
})
|
||
|
|
})
|
||
|
|
)
|
||
|
|
},
|
||
|
|
async blobToJson(e) {
|
||
|
|
let [t, n] = await this.blobToText(e)
|
||
|
|
if (!n) return [t, null]
|
||
|
|
try {
|
||
|
|
return [null, JSON.parse(n)]
|
||
|
|
} catch (e) {
|
||
|
|
return [e, null]
|
||
|
|
}
|
||
|
|
},
|
||
|
|
blobToArrayBuffer: async (e) => e.arrayBuffer()
|
||
|
|
},
|
||
|
|
oi = ai
|
||
|
|
return t.default
|
||
|
|
})()
|
||
|
|
)
|