@loaders.gl/splats 5.0.0-alpha.10 → 5.0.0-alpha.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dist.dev.js +1108 -1632
- package/dist/dist.min.js +33 -33
- package/dist/index.cjs +185 -886
- package/dist/index.cjs.map +3 -3
- package/dist/ksplat-loader-types.js +1 -1
- package/dist/lib/parse-rad-chunk.d.ts +2 -0
- package/dist/lib/parse-rad-chunk.d.ts.map +1 -1
- package/dist/lib/parse-rad-chunk.js +4 -0
- package/dist/lib/parse-rad-chunk.js.map +1 -1
- package/dist/rad-loader-types.js +1 -1
- package/dist/rad-loader.d.ts +1 -1
- package/dist/rad-loader.d.ts.map +1 -1
- package/dist/rad-loader.js +1 -1
- package/dist/rad-loader.js.map +1 -1
- package/dist/rad-source-loader.d.ts.map +1 -1
- package/dist/rad-source-loader.js +4 -2
- package/dist/rad-source-loader.js.map +1 -1
- package/dist/splat-loader-types.js +1 -1
- package/dist/spz-loader-types.js +1 -1
- package/package.json +7 -7
- package/src/lib/parse-rad-chunk.ts +5 -0
- package/src/rad-loader.ts +1 -0
- package/src/rad-source-loader.ts +3 -0
package/dist/dist.dev.js
CHANGED
|
@@ -12,12 +12,12 @@ var __exports__ = (() => {
|
|
|
12
12
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
13
13
|
var __getProtoOf = Object.getPrototypeOf;
|
|
14
14
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
15
|
-
var __esm = (fn, res,
|
|
16
|
-
if (
|
|
15
|
+
var __esm = (fn, res, err) => function __init() {
|
|
16
|
+
if (err) throw err[0];
|
|
17
17
|
try {
|
|
18
18
|
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
19
19
|
} catch (e) {
|
|
20
|
-
throw
|
|
20
|
+
throw err = [e], e;
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
23
|
var __commonJS = (cb, mod) => function __require() {
|
|
@@ -39,7 +39,6 @@ var __exports__ = (() => {
|
|
|
39
39
|
}
|
|
40
40
|
return to;
|
|
41
41
|
};
|
|
42
|
-
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
43
42
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
44
43
|
// If the importer is in node compatibility mode or this is not an ESM
|
|
45
44
|
// file that has been converted to a CommonJS file using a Babel-
|
|
@@ -730,13 +729,12 @@ var __exports__ = (() => {
|
|
|
730
729
|
});
|
|
731
730
|
|
|
732
731
|
// ../loader-utils/src/lib/javascript-utils/is-type.ts
|
|
733
|
-
var isObject, isPureObject
|
|
732
|
+
var isObject, isPureObject;
|
|
734
733
|
var init_is_type = __esm({
|
|
735
734
|
"../loader-utils/src/lib/javascript-utils/is-type.ts"() {
|
|
736
735
|
"use strict";
|
|
737
736
|
isObject = (value) => value !== null && typeof value === "object";
|
|
738
737
|
isPureObject = (value) => isObject(value) && value.constructor === {}.constructor;
|
|
739
|
-
isSharedArrayBuffer = (value) => typeof SharedArrayBuffer !== "undefined" && value instanceof SharedArrayBuffer;
|
|
740
738
|
}
|
|
741
739
|
});
|
|
742
740
|
|
|
@@ -775,17 +773,6 @@ var __exports__ = (() => {
|
|
|
775
773
|
globalThis.loaders.modules ||= {};
|
|
776
774
|
Object.assign(globalThis.loaders.modules, modules);
|
|
777
775
|
}
|
|
778
|
-
function getJSModule(name, caller) {
|
|
779
|
-
const module = globalThis.loaders?.modules?.[name];
|
|
780
|
-
if (!module) {
|
|
781
|
-
throw new Error(`${caller}: ${name} library not installed`);
|
|
782
|
-
}
|
|
783
|
-
return module;
|
|
784
|
-
}
|
|
785
|
-
function getJSModuleOrNull(name) {
|
|
786
|
-
const module = globalThis.loaders?.modules?.[name];
|
|
787
|
-
return module || null;
|
|
788
|
-
}
|
|
789
776
|
var init_js_module_utils = __esm({
|
|
790
777
|
"../loader-utils/src/lib/module-utils/js-module-utils.ts"() {
|
|
791
778
|
"use strict";
|
|
@@ -1142,33 +1129,6 @@ var __exports__ = (() => {
|
|
|
1142
1129
|
}
|
|
1143
1130
|
});
|
|
1144
1131
|
|
|
1145
|
-
// ../loader-utils/src/lib/binary-utils/memory-conversion-utils.ts
|
|
1146
|
-
function ensureArrayBuffer(bufferSource) {
|
|
1147
|
-
if (bufferSource instanceof ArrayBuffer) {
|
|
1148
|
-
return bufferSource;
|
|
1149
|
-
}
|
|
1150
|
-
if (isSharedArrayBuffer(bufferSource)) {
|
|
1151
|
-
return copyToArrayBuffer2(bufferSource);
|
|
1152
|
-
}
|
|
1153
|
-
const { buffer, byteOffset, byteLength } = bufferSource;
|
|
1154
|
-
if (buffer instanceof ArrayBuffer && byteOffset === 0 && byteLength === buffer.byteLength) {
|
|
1155
|
-
return buffer;
|
|
1156
|
-
}
|
|
1157
|
-
return copyToArrayBuffer2(buffer, byteOffset, byteLength);
|
|
1158
|
-
}
|
|
1159
|
-
function copyToArrayBuffer2(buffer, byteOffset = 0, byteLength = buffer.byteLength - byteOffset) {
|
|
1160
|
-
const view = new Uint8Array(buffer, byteOffset, byteLength);
|
|
1161
|
-
const copy = new Uint8Array(view.length);
|
|
1162
|
-
copy.set(view);
|
|
1163
|
-
return copy.buffer;
|
|
1164
|
-
}
|
|
1165
|
-
var init_memory_conversion_utils = __esm({
|
|
1166
|
-
"../loader-utils/src/lib/binary-utils/memory-conversion-utils.ts"() {
|
|
1167
|
-
"use strict";
|
|
1168
|
-
init_is_type();
|
|
1169
|
-
}
|
|
1170
|
-
});
|
|
1171
|
-
|
|
1172
1132
|
// ../loader-utils/src/lib/sources/data-source.ts
|
|
1173
1133
|
function getFetchFunction(options) {
|
|
1174
1134
|
return getAuthenticatedFetch(options);
|
|
@@ -1258,7 +1218,7 @@ var __exports__ = (() => {
|
|
|
1258
1218
|
/** Whether a real CoreAPI instance was injected by the integration layer. */
|
|
1259
1219
|
hasCoreApi;
|
|
1260
1220
|
_needsRefresh = true;
|
|
1261
|
-
constructor(data, options, defaultOptions,
|
|
1221
|
+
constructor(data, options, defaultOptions, coreApi2) {
|
|
1262
1222
|
this.options = mergeOptions(
|
|
1263
1223
|
mergeOptions(_DataSource.defaultOptions, defaultOptions || {}),
|
|
1264
1224
|
options
|
|
@@ -1268,8 +1228,8 @@ var __exports__ = (() => {
|
|
|
1268
1228
|
const loadOptions = resolveAuthenticationOptions(getSourceLoaderOptions(this.options));
|
|
1269
1229
|
this.loadOptions = loadOptions;
|
|
1270
1230
|
const fetch2 = getFetchFunction(loadOptions);
|
|
1271
|
-
this.coreApi =
|
|
1272
|
-
this.hasCoreApi = Boolean(
|
|
1231
|
+
this.coreApi = coreApi2 || UNAVAILABLE_CORE_API;
|
|
1232
|
+
this.hasCoreApi = Boolean(coreApi2);
|
|
1273
1233
|
this.fetch = fetch2;
|
|
1274
1234
|
}
|
|
1275
1235
|
setProps(options) {
|
|
@@ -1315,15 +1275,13 @@ var __exports__ = (() => {
|
|
|
1315
1275
|
"../loader-utils/src/index.ts"() {
|
|
1316
1276
|
"use strict";
|
|
1317
1277
|
init_js_module_utils();
|
|
1318
|
-
init_js_module_utils();
|
|
1319
1278
|
init_async_iteration();
|
|
1320
|
-
init_memory_conversion_utils();
|
|
1321
1279
|
init_data_source();
|
|
1322
1280
|
}
|
|
1323
1281
|
});
|
|
1324
1282
|
|
|
1325
1283
|
// ../compression/src/lib/compression.ts
|
|
1326
|
-
var CompressionTransform,
|
|
1284
|
+
var CompressionTransform, Decompressor;
|
|
1327
1285
|
var init_compression = __esm({
|
|
1328
1286
|
"../compression/src/lib/compression.ts"() {
|
|
1329
1287
|
"use strict";
|
|
@@ -1345,26 +1303,6 @@ var __exports__ = (() => {
|
|
|
1345
1303
|
return error62;
|
|
1346
1304
|
}
|
|
1347
1305
|
};
|
|
1348
|
-
Compressor = class extends CompressionTransform {
|
|
1349
|
-
constructor(options) {
|
|
1350
|
-
super();
|
|
1351
|
-
this.compressBatches = this.compressBatches.bind(this);
|
|
1352
|
-
}
|
|
1353
|
-
/** Asynchronously compresses data. */
|
|
1354
|
-
async compress(input2) {
|
|
1355
|
-
await this.preload();
|
|
1356
|
-
return this.compressSync(input2);
|
|
1357
|
-
}
|
|
1358
|
-
/** Synchronously compresses data. */
|
|
1359
|
-
compressSync(input2) {
|
|
1360
|
-
throw new Error(`${this.name}: sync compression not supported`);
|
|
1361
|
-
}
|
|
1362
|
-
/** Compresses batches. */
|
|
1363
|
-
async *compressBatches(asyncIterator) {
|
|
1364
|
-
const input2 = await this.concatenate(asyncIterator);
|
|
1365
|
-
yield this.compress(input2);
|
|
1366
|
-
}
|
|
1367
|
-
};
|
|
1368
1306
|
Decompressor = class extends CompressionTransform {
|
|
1369
1307
|
constructor(options) {
|
|
1370
1308
|
super();
|
|
@@ -1385,558 +1323,6 @@ var __exports__ = (() => {
|
|
|
1385
1323
|
yield this.decompress(input2);
|
|
1386
1324
|
}
|
|
1387
1325
|
};
|
|
1388
|
-
Compression = class extends Compressor {
|
|
1389
|
-
constructor(options) {
|
|
1390
|
-
super(options);
|
|
1391
|
-
this.decompressBatches = this.decompressBatches.bind(this);
|
|
1392
|
-
}
|
|
1393
|
-
/** Asynchronously decompresses data. */
|
|
1394
|
-
async decompress(input2, size) {
|
|
1395
|
-
await this.preload();
|
|
1396
|
-
return this.decompressSync(input2, size);
|
|
1397
|
-
}
|
|
1398
|
-
/** Synchronously decompresses data. */
|
|
1399
|
-
decompressSync(input2, size) {
|
|
1400
|
-
throw new Error(`${this.name}: sync decompression not supported`);
|
|
1401
|
-
}
|
|
1402
|
-
/** Decompresses batches. */
|
|
1403
|
-
async *decompressBatches(asyncIterator) {
|
|
1404
|
-
const input2 = await this.concatenate(asyncIterator);
|
|
1405
|
-
yield this.decompress(input2);
|
|
1406
|
-
}
|
|
1407
|
-
};
|
|
1408
|
-
}
|
|
1409
|
-
});
|
|
1410
|
-
|
|
1411
|
-
// ../compression/src/lib/fflate/index.ts
|
|
1412
|
-
function inflateSync(data, out) {
|
|
1413
|
-
return inflt(data, out);
|
|
1414
|
-
}
|
|
1415
|
-
function gunzipSync(data, out) {
|
|
1416
|
-
return inflt(data.subarray(gzs(data), -8), out || new u8(gzl(data)));
|
|
1417
|
-
}
|
|
1418
|
-
function unzlibSync(data, out) {
|
|
1419
|
-
return inflt((zlv(data), data.subarray(2, -4)), out);
|
|
1420
|
-
}
|
|
1421
|
-
var u8, u16, u32, fleb, fdeb, clim, freb, fl, revfl, fd, revfd, rev, hMap, flt, fdt, flrm, fdrm, max, bits, bits16, shft, slc, ec, err, inflt, gzs, gzl, zlv, Inflate, Gunzip, Unzlib;
|
|
1422
|
-
var init_fflate = __esm({
|
|
1423
|
-
"../compression/src/lib/fflate/index.ts"() {
|
|
1424
|
-
"use strict";
|
|
1425
|
-
u8 = Uint8Array;
|
|
1426
|
-
u16 = Uint16Array;
|
|
1427
|
-
u32 = Uint32Array;
|
|
1428
|
-
fleb = new u8([
|
|
1429
|
-
0,
|
|
1430
|
-
0,
|
|
1431
|
-
0,
|
|
1432
|
-
0,
|
|
1433
|
-
0,
|
|
1434
|
-
0,
|
|
1435
|
-
0,
|
|
1436
|
-
0,
|
|
1437
|
-
1,
|
|
1438
|
-
1,
|
|
1439
|
-
1,
|
|
1440
|
-
1,
|
|
1441
|
-
2,
|
|
1442
|
-
2,
|
|
1443
|
-
2,
|
|
1444
|
-
2,
|
|
1445
|
-
3,
|
|
1446
|
-
3,
|
|
1447
|
-
3,
|
|
1448
|
-
3,
|
|
1449
|
-
4,
|
|
1450
|
-
4,
|
|
1451
|
-
4,
|
|
1452
|
-
4,
|
|
1453
|
-
5,
|
|
1454
|
-
5,
|
|
1455
|
-
5,
|
|
1456
|
-
5,
|
|
1457
|
-
0,
|
|
1458
|
-
/* unused */
|
|
1459
|
-
0,
|
|
1460
|
-
0,
|
|
1461
|
-
/* impossible */
|
|
1462
|
-
0
|
|
1463
|
-
]);
|
|
1464
|
-
fdeb = new u8([
|
|
1465
|
-
0,
|
|
1466
|
-
0,
|
|
1467
|
-
0,
|
|
1468
|
-
0,
|
|
1469
|
-
1,
|
|
1470
|
-
1,
|
|
1471
|
-
2,
|
|
1472
|
-
2,
|
|
1473
|
-
3,
|
|
1474
|
-
3,
|
|
1475
|
-
4,
|
|
1476
|
-
4,
|
|
1477
|
-
5,
|
|
1478
|
-
5,
|
|
1479
|
-
6,
|
|
1480
|
-
6,
|
|
1481
|
-
7,
|
|
1482
|
-
7,
|
|
1483
|
-
8,
|
|
1484
|
-
8,
|
|
1485
|
-
9,
|
|
1486
|
-
9,
|
|
1487
|
-
10,
|
|
1488
|
-
10,
|
|
1489
|
-
11,
|
|
1490
|
-
11,
|
|
1491
|
-
12,
|
|
1492
|
-
12,
|
|
1493
|
-
13,
|
|
1494
|
-
13,
|
|
1495
|
-
/* unused */
|
|
1496
|
-
0,
|
|
1497
|
-
0
|
|
1498
|
-
]);
|
|
1499
|
-
clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);
|
|
1500
|
-
freb = (eb, start) => {
|
|
1501
|
-
const b = new u16(31);
|
|
1502
|
-
for (let i = 0; i < 31; ++i) {
|
|
1503
|
-
b[i] = start += 1 << eb[i - 1];
|
|
1504
|
-
}
|
|
1505
|
-
const r = new u32(b[30]);
|
|
1506
|
-
for (let i = 1; i < 30; ++i) {
|
|
1507
|
-
for (let j = b[i]; j < b[i + 1]; ++j) {
|
|
1508
|
-
r[j] = j - b[i] << 5 | i;
|
|
1509
|
-
}
|
|
1510
|
-
}
|
|
1511
|
-
return [b, r];
|
|
1512
|
-
};
|
|
1513
|
-
[fl, revfl] = freb(fleb, 2);
|
|
1514
|
-
fl[28] = 258, revfl[258] = 28;
|
|
1515
|
-
[fd, revfd] = freb(fdeb, 0);
|
|
1516
|
-
rev = new u16(32768);
|
|
1517
|
-
for (let i = 0; i < 32768; ++i) {
|
|
1518
|
-
let x = (i & 43690) >>> 1 | (i & 21845) << 1;
|
|
1519
|
-
x = (x & 52428) >>> 2 | (x & 13107) << 2;
|
|
1520
|
-
x = (x & 61680) >>> 4 | (x & 3855) << 4;
|
|
1521
|
-
rev[i] = ((x & 65280) >>> 8 | (x & 255) << 8) >>> 1;
|
|
1522
|
-
}
|
|
1523
|
-
hMap = (cd, mb, r) => {
|
|
1524
|
-
const s = cd.length;
|
|
1525
|
-
let i = 0;
|
|
1526
|
-
const l = new u16(mb);
|
|
1527
|
-
for (; i < s; ++i) {
|
|
1528
|
-
if (cd[i]) ++l[cd[i] - 1];
|
|
1529
|
-
}
|
|
1530
|
-
const le = new u16(mb);
|
|
1531
|
-
for (i = 0; i < mb; ++i) {
|
|
1532
|
-
le[i] = le[i - 1] + l[i - 1] << 1;
|
|
1533
|
-
}
|
|
1534
|
-
let co;
|
|
1535
|
-
if (r) {
|
|
1536
|
-
co = new u16(1 << mb);
|
|
1537
|
-
const rvb = 15 - mb;
|
|
1538
|
-
for (i = 0; i < s; ++i) {
|
|
1539
|
-
if (cd[i]) {
|
|
1540
|
-
const sv = i << 4 | cd[i];
|
|
1541
|
-
const r2 = mb - cd[i];
|
|
1542
|
-
let v = le[cd[i] - 1]++ << r2;
|
|
1543
|
-
for (const m = v | (1 << r2) - 1; v <= m; ++v) {
|
|
1544
|
-
co[rev[v] >>> rvb] = sv;
|
|
1545
|
-
}
|
|
1546
|
-
}
|
|
1547
|
-
}
|
|
1548
|
-
} else {
|
|
1549
|
-
co = new u16(s);
|
|
1550
|
-
for (i = 0; i < s; ++i) {
|
|
1551
|
-
if (cd[i]) {
|
|
1552
|
-
co[i] = rev[le[cd[i] - 1]++] >>> 15 - cd[i];
|
|
1553
|
-
}
|
|
1554
|
-
}
|
|
1555
|
-
}
|
|
1556
|
-
return co;
|
|
1557
|
-
};
|
|
1558
|
-
flt = new u8(288);
|
|
1559
|
-
for (let i = 0; i < 144; ++i) flt[i] = 8;
|
|
1560
|
-
for (let i = 144; i < 256; ++i) flt[i] = 9;
|
|
1561
|
-
for (let i = 256; i < 280; ++i) flt[i] = 7;
|
|
1562
|
-
for (let i = 280; i < 288; ++i) flt[i] = 8;
|
|
1563
|
-
fdt = new u8(32);
|
|
1564
|
-
for (let i = 0; i < 32; ++i) fdt[i] = 5;
|
|
1565
|
-
flrm = /* @__PURE__ */ hMap(flt, 9, 1);
|
|
1566
|
-
fdrm = /* @__PURE__ */ hMap(fdt, 5, 1);
|
|
1567
|
-
max = (a) => {
|
|
1568
|
-
let m = a[0];
|
|
1569
|
-
for (let i = 1; i < a.length; ++i) {
|
|
1570
|
-
if (a[i] > m) m = a[i];
|
|
1571
|
-
}
|
|
1572
|
-
return m;
|
|
1573
|
-
};
|
|
1574
|
-
bits = (d, p, m) => {
|
|
1575
|
-
const o = p / 8 | 0;
|
|
1576
|
-
return (d[o] | d[o + 1] << 8) >> (p & 7) & m;
|
|
1577
|
-
};
|
|
1578
|
-
bits16 = (d, p) => {
|
|
1579
|
-
const o = p / 8 | 0;
|
|
1580
|
-
return (d[o] | d[o + 1] << 8 | d[o + 2] << 16) >> (p & 7);
|
|
1581
|
-
};
|
|
1582
|
-
shft = (p) => (p + 7) / 8 | 0;
|
|
1583
|
-
slc = (v, s, e) => {
|
|
1584
|
-
if (s == null || s < 0) s = 0;
|
|
1585
|
-
if (e == null || e > v.length) e = v.length;
|
|
1586
|
-
const n = new (v.BYTES_PER_ELEMENT == 2 ? u16 : v.BYTES_PER_ELEMENT == 4 ? u32 : u8)(e - s);
|
|
1587
|
-
n.set(v.subarray(s, e));
|
|
1588
|
-
return n;
|
|
1589
|
-
};
|
|
1590
|
-
ec = [
|
|
1591
|
-
"unexpected EOF",
|
|
1592
|
-
"invalid block type",
|
|
1593
|
-
"invalid length/literal",
|
|
1594
|
-
"invalid distance",
|
|
1595
|
-
"stream finished",
|
|
1596
|
-
"no stream handler",
|
|
1597
|
-
,
|
|
1598
|
-
// determined by compression function
|
|
1599
|
-
"no callback",
|
|
1600
|
-
"invalid UTF-8 data",
|
|
1601
|
-
"extra field too long",
|
|
1602
|
-
"date not in range 1980-2099",
|
|
1603
|
-
"filename too long",
|
|
1604
|
-
"stream finishing",
|
|
1605
|
-
"invalid zip data"
|
|
1606
|
-
// determined by unknown compression method
|
|
1607
|
-
];
|
|
1608
|
-
err = (ind, msg, nt) => {
|
|
1609
|
-
const e = new Error(msg || ec[ind]);
|
|
1610
|
-
e.code = ind;
|
|
1611
|
-
if (Error.captureStackTrace) Error.captureStackTrace(e, err);
|
|
1612
|
-
if (!nt) throw e;
|
|
1613
|
-
return e;
|
|
1614
|
-
};
|
|
1615
|
-
inflt = (dat, buf, st) => {
|
|
1616
|
-
const sl = dat.length;
|
|
1617
|
-
if (!sl || st && st.f && !st.l) return buf || new u8(0);
|
|
1618
|
-
const noBuf = !buf || st;
|
|
1619
|
-
const noSt = !st || st.i;
|
|
1620
|
-
if (!st) st = {};
|
|
1621
|
-
if (!buf) buf = new u8(sl * 3);
|
|
1622
|
-
const cbuf = (l) => {
|
|
1623
|
-
let bl = buf.length;
|
|
1624
|
-
if (l > bl) {
|
|
1625
|
-
const nbuf = new u8(Math.max(bl * 2, l));
|
|
1626
|
-
nbuf.set(buf);
|
|
1627
|
-
buf = nbuf;
|
|
1628
|
-
}
|
|
1629
|
-
};
|
|
1630
|
-
let final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;
|
|
1631
|
-
const tbts = sl * 8;
|
|
1632
|
-
do {
|
|
1633
|
-
if (!lm) {
|
|
1634
|
-
final = bits(dat, pos, 1);
|
|
1635
|
-
const type = bits(dat, pos + 1, 3);
|
|
1636
|
-
pos += 3;
|
|
1637
|
-
if (!type) {
|
|
1638
|
-
const s = shft(pos) + 4, l = dat[s - 4] | dat[s - 3] << 8, t = s + l;
|
|
1639
|
-
if (t > sl) {
|
|
1640
|
-
if (noSt) err(0);
|
|
1641
|
-
break;
|
|
1642
|
-
}
|
|
1643
|
-
if (noBuf) cbuf(bt + l);
|
|
1644
|
-
buf.set(dat.subarray(s, t), bt);
|
|
1645
|
-
st.b = bt += l, st.p = pos = t * 8, st.f = final;
|
|
1646
|
-
continue;
|
|
1647
|
-
} else if (type == 1) lm = flrm, dm = fdrm, lbt = 9, dbt = 5;
|
|
1648
|
-
else if (type == 2) {
|
|
1649
|
-
const hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;
|
|
1650
|
-
const tl = hLit + bits(dat, pos + 5, 31) + 1;
|
|
1651
|
-
pos += 14;
|
|
1652
|
-
const ldt = new u8(tl);
|
|
1653
|
-
const clt = new u8(19);
|
|
1654
|
-
for (let i = 0; i < hcLen; ++i) {
|
|
1655
|
-
clt[clim[i]] = bits(dat, pos + i * 3, 7);
|
|
1656
|
-
}
|
|
1657
|
-
pos += hcLen * 3;
|
|
1658
|
-
const clb = max(clt), clbmsk = (1 << clb) - 1;
|
|
1659
|
-
const clm = hMap(clt, clb, 1);
|
|
1660
|
-
for (let i = 0; i < tl; ) {
|
|
1661
|
-
const r = clm[bits(dat, pos, clbmsk)];
|
|
1662
|
-
pos += r & 15;
|
|
1663
|
-
const s = r >>> 4;
|
|
1664
|
-
if (s < 16) {
|
|
1665
|
-
ldt[i++] = s;
|
|
1666
|
-
} else {
|
|
1667
|
-
let c = 0, n = 0;
|
|
1668
|
-
if (s == 16) n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];
|
|
1669
|
-
else if (s == 17) n = 3 + bits(dat, pos, 7), pos += 3;
|
|
1670
|
-
else if (s == 18) n = 11 + bits(dat, pos, 127), pos += 7;
|
|
1671
|
-
while (n--) ldt[i++] = c;
|
|
1672
|
-
}
|
|
1673
|
-
}
|
|
1674
|
-
const lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);
|
|
1675
|
-
lbt = max(lt);
|
|
1676
|
-
dbt = max(dt);
|
|
1677
|
-
lm = hMap(lt, lbt, 1);
|
|
1678
|
-
dm = hMap(dt, dbt, 1);
|
|
1679
|
-
} else err(1);
|
|
1680
|
-
if (pos > tbts) {
|
|
1681
|
-
if (noSt) err(0);
|
|
1682
|
-
break;
|
|
1683
|
-
}
|
|
1684
|
-
}
|
|
1685
|
-
if (noBuf) cbuf(bt + 131072);
|
|
1686
|
-
const lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;
|
|
1687
|
-
let lpos = pos;
|
|
1688
|
-
for (; ; lpos = pos) {
|
|
1689
|
-
const c = lm[bits16(dat, pos) & lms], sym = c >>> 4;
|
|
1690
|
-
pos += c & 15;
|
|
1691
|
-
if (pos > tbts) {
|
|
1692
|
-
if (noSt) err(0);
|
|
1693
|
-
break;
|
|
1694
|
-
}
|
|
1695
|
-
if (!c) err(2);
|
|
1696
|
-
if (sym < 256) buf[bt++] = sym;
|
|
1697
|
-
else if (sym == 256) {
|
|
1698
|
-
lpos = pos, lm = void 0;
|
|
1699
|
-
break;
|
|
1700
|
-
} else {
|
|
1701
|
-
let add = sym - 254;
|
|
1702
|
-
if (sym > 264) {
|
|
1703
|
-
const i = sym - 257, b = fleb[i];
|
|
1704
|
-
add = bits(dat, pos, (1 << b) - 1) + fl[i];
|
|
1705
|
-
pos += b;
|
|
1706
|
-
}
|
|
1707
|
-
const d = dm[bits16(dat, pos) & dms], dsym = d >>> 4;
|
|
1708
|
-
if (!d) err(3);
|
|
1709
|
-
pos += d & 15;
|
|
1710
|
-
let dt = fd[dsym];
|
|
1711
|
-
if (dsym > 3) {
|
|
1712
|
-
const b = fdeb[dsym];
|
|
1713
|
-
dt += bits16(dat, pos) & (1 << b) - 1, pos += b;
|
|
1714
|
-
}
|
|
1715
|
-
if (pos > tbts) {
|
|
1716
|
-
if (noSt) err(0);
|
|
1717
|
-
break;
|
|
1718
|
-
}
|
|
1719
|
-
if (noBuf) cbuf(bt + 131072);
|
|
1720
|
-
const end = bt + add;
|
|
1721
|
-
for (; bt < end; bt += 4) {
|
|
1722
|
-
buf[bt] = buf[bt - dt];
|
|
1723
|
-
buf[bt + 1] = buf[bt + 1 - dt];
|
|
1724
|
-
buf[bt + 2] = buf[bt + 2 - dt];
|
|
1725
|
-
buf[bt + 3] = buf[bt + 3 - dt];
|
|
1726
|
-
}
|
|
1727
|
-
bt = end;
|
|
1728
|
-
}
|
|
1729
|
-
}
|
|
1730
|
-
st.l = lm, st.p = lpos, st.b = bt, st.f = final;
|
|
1731
|
-
if (lm) final = 1, st.m = lbt, st.d = dm, st.n = dbt;
|
|
1732
|
-
} while (!final);
|
|
1733
|
-
return bt == buf.length ? buf : slc(buf, 0, bt);
|
|
1734
|
-
};
|
|
1735
|
-
gzs = (d) => {
|
|
1736
|
-
if (d[0] != 31 || d[1] != 139 || d[2] != 8) err(6, "invalid gzip data");
|
|
1737
|
-
const flg = d[3];
|
|
1738
|
-
let st = 10;
|
|
1739
|
-
if (flg & 4) st += d[10] | (d[11] << 8) + 2;
|
|
1740
|
-
for (let zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++]) ;
|
|
1741
|
-
return st + (flg & 2);
|
|
1742
|
-
};
|
|
1743
|
-
gzl = (d) => {
|
|
1744
|
-
const l = d.length;
|
|
1745
|
-
return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;
|
|
1746
|
-
};
|
|
1747
|
-
zlv = (d) => {
|
|
1748
|
-
if ((d[0] & 15) != 8 || d[0] >>> 4 > 7 || (d[0] << 8 | d[1]) % 31) err(6, "invalid zlib data");
|
|
1749
|
-
if (d[1] & 32) err(6, "invalid zlib data: preset dictionaries not supported");
|
|
1750
|
-
};
|
|
1751
|
-
Inflate = class {
|
|
1752
|
-
/**
|
|
1753
|
-
* Creates an inflation stream
|
|
1754
|
-
* @param cb The callback to call whenever data is inflated
|
|
1755
|
-
*/
|
|
1756
|
-
constructor(cb) {
|
|
1757
|
-
this.ondata = cb;
|
|
1758
|
-
}
|
|
1759
|
-
/** Persistent bit-reader and Huffman decoding state. */
|
|
1760
|
-
s = {};
|
|
1761
|
-
/** Compression options or retained output window for this stream. */
|
|
1762
|
-
o;
|
|
1763
|
-
/** Compressed bytes pending decoding. */
|
|
1764
|
-
p = new u8(0);
|
|
1765
|
-
/** Whether the stream has received its final chunk. */
|
|
1766
|
-
d;
|
|
1767
|
-
/**
|
|
1768
|
-
* The handler to call whenever data is available
|
|
1769
|
-
*/
|
|
1770
|
-
ondata;
|
|
1771
|
-
/** Appends pending input after checking stream lifecycle. */
|
|
1772
|
-
e(c) {
|
|
1773
|
-
if (!this.ondata) err(5);
|
|
1774
|
-
if (this.d) err(4);
|
|
1775
|
-
const l = this.p.length;
|
|
1776
|
-
const n = new u8(l + c.length);
|
|
1777
|
-
n.set(this.p), n.set(c, l), this.p = n;
|
|
1778
|
-
}
|
|
1779
|
-
/** Decodes pending input and retains the sliding window. */
|
|
1780
|
-
c(final) {
|
|
1781
|
-
this.d = this.s.i = final || false;
|
|
1782
|
-
const bts = this.s.b;
|
|
1783
|
-
const dt = inflt(this.p, this.o, this.s);
|
|
1784
|
-
this.ondata(slc(dt, bts, this.s.b), this.d);
|
|
1785
|
-
this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;
|
|
1786
|
-
this.p = slc(this.p, this.s.p / 8 | 0), this.s.p &= 7;
|
|
1787
|
-
}
|
|
1788
|
-
/**
|
|
1789
|
-
* Pushes a chunk to be inflated
|
|
1790
|
-
* @param chunk The chunk to push
|
|
1791
|
-
* @param final Whether this is the final chunk
|
|
1792
|
-
*/
|
|
1793
|
-
push(chunk, final) {
|
|
1794
|
-
this.e(chunk), this.c(final);
|
|
1795
|
-
}
|
|
1796
|
-
};
|
|
1797
|
-
Gunzip = class extends Inflate {
|
|
1798
|
-
/** Whether the stream header still needs to be emitted or consumed. */
|
|
1799
|
-
v = 1;
|
|
1800
|
-
/**
|
|
1801
|
-
* Creates a GUNZIP stream
|
|
1802
|
-
* @param cb The callback to call whenever data is inflated
|
|
1803
|
-
*/
|
|
1804
|
-
constructor(cb) {
|
|
1805
|
-
super(cb);
|
|
1806
|
-
}
|
|
1807
|
-
/**
|
|
1808
|
-
* Pushes a chunk to be GUNZIPped
|
|
1809
|
-
* @param chunk The chunk to push
|
|
1810
|
-
* @param final Whether this is the last chunk
|
|
1811
|
-
*/
|
|
1812
|
-
push(chunk, final) {
|
|
1813
|
-
Inflate.prototype.e.call(this, chunk);
|
|
1814
|
-
if (this.v) {
|
|
1815
|
-
const s = this.p.length > 3 ? gzs(this.p) : 4;
|
|
1816
|
-
if (s >= this.p.length && !final) return;
|
|
1817
|
-
this.p = this.p.subarray(s), this.v = 0;
|
|
1818
|
-
}
|
|
1819
|
-
if (final) {
|
|
1820
|
-
if (this.p.length < 8) err(6, "invalid gzip data");
|
|
1821
|
-
this.p = this.p.subarray(0, -8);
|
|
1822
|
-
}
|
|
1823
|
-
Inflate.prototype.c.call(this, final);
|
|
1824
|
-
}
|
|
1825
|
-
};
|
|
1826
|
-
Unzlib = class extends Inflate {
|
|
1827
|
-
/** Whether the stream header still needs to be emitted or consumed. */
|
|
1828
|
-
v = 1;
|
|
1829
|
-
/**
|
|
1830
|
-
* Creates a Zlib decompression stream
|
|
1831
|
-
* @param cb The callback to call whenever data is inflated
|
|
1832
|
-
*/
|
|
1833
|
-
constructor(cb) {
|
|
1834
|
-
super(cb);
|
|
1835
|
-
}
|
|
1836
|
-
/**
|
|
1837
|
-
* Pushes a chunk to be unzlibbed
|
|
1838
|
-
* @param chunk The chunk to push
|
|
1839
|
-
* @param final Whether this is the last chunk
|
|
1840
|
-
*/
|
|
1841
|
-
push(chunk, final) {
|
|
1842
|
-
Inflate.prototype.e.call(this, chunk);
|
|
1843
|
-
if (this.v) {
|
|
1844
|
-
if (this.p.length < 2 && !final) return;
|
|
1845
|
-
this.p = this.p.subarray(2), this.v = 0;
|
|
1846
|
-
}
|
|
1847
|
-
if (final) {
|
|
1848
|
-
if (this.p.length < 4) err(6, "invalid zlib data");
|
|
1849
|
-
this.p = this.p.subarray(0, -4);
|
|
1850
|
-
}
|
|
1851
|
-
Inflate.prototype.c.call(this, final);
|
|
1852
|
-
}
|
|
1853
|
-
};
|
|
1854
|
-
}
|
|
1855
|
-
});
|
|
1856
|
-
|
|
1857
|
-
// ../compression/src/lib/compression-stream.ts
|
|
1858
|
-
async function compressWithNativeCompressionStream(input2, format) {
|
|
1859
|
-
const outputBatches = compressBatchesWithNativeCompressionStream([input2], format);
|
|
1860
|
-
return outputBatches ? await concatenateBatches(outputBatches) : null;
|
|
1861
|
-
}
|
|
1862
|
-
function compressBatchesWithNativeCompressionStream(inputBatches, format) {
|
|
1863
|
-
const compressionStream = createNativeCompressionStream(format);
|
|
1864
|
-
return compressionStream ? transformBatches(inputBatches, compressionStream) : null;
|
|
1865
|
-
}
|
|
1866
|
-
function createNativeCompressionStream(format) {
|
|
1867
|
-
if (typeof globalThis.CompressionStream === "undefined") {
|
|
1868
|
-
return null;
|
|
1869
|
-
}
|
|
1870
|
-
try {
|
|
1871
|
-
const CompressionStreamConstructor = globalThis.CompressionStream;
|
|
1872
|
-
return new CompressionStreamConstructor(format);
|
|
1873
|
-
} catch (error62) {
|
|
1874
|
-
if (error62 instanceof TypeError || error62?.name === "TypeError") {
|
|
1875
|
-
return null;
|
|
1876
|
-
}
|
|
1877
|
-
throw error62;
|
|
1878
|
-
}
|
|
1879
|
-
}
|
|
1880
|
-
async function* transformBatches(inputBatches, compressionStream) {
|
|
1881
|
-
const writer = compressionStream.writable.getWriter();
|
|
1882
|
-
const reader = compressionStream.readable.getReader();
|
|
1883
|
-
const writePromise = writeBatches(inputBatches, writer);
|
|
1884
|
-
writePromise.catch(() => {
|
|
1885
|
-
});
|
|
1886
|
-
let outputCompleted = false;
|
|
1887
|
-
try {
|
|
1888
|
-
while (true) {
|
|
1889
|
-
const { done, value } = await reader.read();
|
|
1890
|
-
if (done) {
|
|
1891
|
-
outputCompleted = true;
|
|
1892
|
-
break;
|
|
1893
|
-
}
|
|
1894
|
-
yield new Uint8Array(value).buffer;
|
|
1895
|
-
}
|
|
1896
|
-
await writePromise;
|
|
1897
|
-
} finally {
|
|
1898
|
-
if (!outputCompleted) {
|
|
1899
|
-
await reader.cancel().catch(() => {
|
|
1900
|
-
});
|
|
1901
|
-
await writer.abort().catch(() => {
|
|
1902
|
-
});
|
|
1903
|
-
await writePromise.catch(() => {
|
|
1904
|
-
});
|
|
1905
|
-
}
|
|
1906
|
-
reader.releaseLock();
|
|
1907
|
-
}
|
|
1908
|
-
}
|
|
1909
|
-
async function writeBatches(inputBatches, writer) {
|
|
1910
|
-
try {
|
|
1911
|
-
for await (const inputBatch of inputBatches) {
|
|
1912
|
-
await writer.write(new Uint8Array(inputBatch));
|
|
1913
|
-
}
|
|
1914
|
-
await writer.close();
|
|
1915
|
-
} catch (error62) {
|
|
1916
|
-
await writer.abort(error62).catch(() => {
|
|
1917
|
-
});
|
|
1918
|
-
throw error62;
|
|
1919
|
-
}
|
|
1920
|
-
}
|
|
1921
|
-
async function concatenateBatches(batches) {
|
|
1922
|
-
const output2 = [];
|
|
1923
|
-
let byteLength = 0;
|
|
1924
|
-
for await (const batch of batches) {
|
|
1925
|
-
const bytes = new Uint8Array(batch);
|
|
1926
|
-
output2.push(bytes);
|
|
1927
|
-
byteLength += bytes.byteLength;
|
|
1928
|
-
}
|
|
1929
|
-
const result = new Uint8Array(byteLength);
|
|
1930
|
-
let offset = 0;
|
|
1931
|
-
for (const batch of output2) {
|
|
1932
|
-
result.set(batch, offset);
|
|
1933
|
-
offset += batch.byteLength;
|
|
1934
|
-
}
|
|
1935
|
-
return result.buffer;
|
|
1936
|
-
}
|
|
1937
|
-
var init_compression_stream = __esm({
|
|
1938
|
-
"../compression/src/lib/compression-stream.ts"() {
|
|
1939
|
-
"use strict";
|
|
1940
1326
|
}
|
|
1941
1327
|
});
|
|
1942
1328
|
|
|
@@ -1946,8 +1332,8 @@ var __exports__ = (() => {
|
|
|
1946
1332
|
return outputBatches ? await concatenateNativeDecompressionBatches(outputBatches) : null;
|
|
1947
1333
|
}
|
|
1948
1334
|
function decompressBatchesWithNativeDecompressionStream(inputBatches, format) {
|
|
1949
|
-
const
|
|
1950
|
-
return
|
|
1335
|
+
const decompressionStream5 = createNativeDecompressionStream(format);
|
|
1336
|
+
return decompressionStream5 ? transformBatchesWithNativeDecompressionStream(inputBatches, decompressionStream5) : null;
|
|
1951
1337
|
}
|
|
1952
1338
|
function isNativeDecompressionSupported(format) {
|
|
1953
1339
|
return Boolean(createNativeDecompressionStream(format));
|
|
@@ -1969,9 +1355,9 @@ var __exports__ = (() => {
|
|
|
1969
1355
|
throw error62;
|
|
1970
1356
|
}
|
|
1971
1357
|
}
|
|
1972
|
-
async function* transformBatchesWithNativeDecompressionStream(inputBatches,
|
|
1973
|
-
const writer =
|
|
1974
|
-
const reader =
|
|
1358
|
+
async function* transformBatchesWithNativeDecompressionStream(inputBatches, decompressionStream5) {
|
|
1359
|
+
const writer = decompressionStream5.writable.getWriter();
|
|
1360
|
+
const reader = decompressionStream5.readable.getReader();
|
|
1975
1361
|
const writePromise = writeBatchesToNativeDecompressionStream(inputBatches, writer);
|
|
1976
1362
|
writePromise.catch(() => {
|
|
1977
1363
|
});
|
|
@@ -2156,48 +1542,744 @@ var __exports__ = (() => {
|
|
|
2156
1542
|
}
|
|
2157
1543
|
});
|
|
2158
1544
|
|
|
2159
|
-
// ../compression/src/lib/
|
|
2160
|
-
async function*
|
|
2161
|
-
|
|
2162
|
-
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
|
|
2166
|
-
|
|
2167
|
-
|
|
1545
|
+
// ../compression/src/lib/compress-utils-compression.ts
|
|
1546
|
+
async function* transformBatches(stream, inputBatches) {
|
|
1547
|
+
try {
|
|
1548
|
+
for await (const input2 of inputBatches) {
|
|
1549
|
+
const output3 = stream.write(new Uint8Array(input2));
|
|
1550
|
+
if (output3.byteLength > 0) yield copyArrayBuffer(output3);
|
|
1551
|
+
}
|
|
1552
|
+
const output2 = stream.finish();
|
|
1553
|
+
if (output2.byteLength > 0) yield copyArrayBuffer(output2);
|
|
1554
|
+
} finally {
|
|
1555
|
+
stream.destroy();
|
|
2168
1556
|
}
|
|
2169
|
-
processor.push(new Uint8Array(0), true);
|
|
2170
|
-
yield* chunks;
|
|
2171
1557
|
}
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
|
|
2177
|
-
|
|
2178
|
-
|
|
2179
|
-
|
|
2180
|
-
|
|
2181
|
-
|
|
1558
|
+
function copyArrayBuffer(bytes) {
|
|
1559
|
+
return bytes.slice().buffer;
|
|
1560
|
+
}
|
|
1561
|
+
function getDecompressOptions(options, size) {
|
|
1562
|
+
const decodeOptions = {
|
|
1563
|
+
...options.compressUtils,
|
|
1564
|
+
...size === void 0 ? {} : { expectedSize: size }
|
|
1565
|
+
};
|
|
1566
|
+
const capacity = decodeOptions.expectedSize;
|
|
1567
|
+
const maximum = options.maxOutputByteLength ?? 512 * 1024 * 1024;
|
|
1568
|
+
if (!Number.isSafeInteger(maximum) || maximum < 0 || maximum > 2147483647)
|
|
1569
|
+
throw new RangeError("Invalid maxOutputByteLength");
|
|
1570
|
+
if (capacity !== void 0 && (!Number.isSafeInteger(capacity) || capacity < 0 || capacity > maximum)) {
|
|
1571
|
+
throw new RangeError("expectedSize exceeds the configured output capacity limit");
|
|
1572
|
+
}
|
|
1573
|
+
return decodeOptions;
|
|
1574
|
+
}
|
|
1575
|
+
var CompressUtilsDecompressor;
|
|
1576
|
+
var init_compress_utils_compression = __esm({
|
|
1577
|
+
"../compression/src/lib/compress-utils-compression.ts"() {
|
|
2182
1578
|
"use strict";
|
|
2183
|
-
init_fflate();
|
|
2184
1579
|
init_compression();
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
|
|
2189
|
-
contentEncodings = ["gzip", "x-gzip"];
|
|
1580
|
+
CompressUtilsDecompressor = class extends Decompressor {
|
|
1581
|
+
name;
|
|
1582
|
+
extensions;
|
|
1583
|
+
contentEncodings;
|
|
2190
1584
|
isSupported = true;
|
|
2191
|
-
|
|
1585
|
+
options;
|
|
1586
|
+
loadModule;
|
|
1587
|
+
/** Module initialized for synchronous operations. */
|
|
1588
|
+
module = null;
|
|
1589
|
+
/** Shared import and WASM initialization for concurrent callers. */
|
|
1590
|
+
modulePromise = null;
|
|
1591
|
+
/** Creates a format-specific compress-utils decoder. */
|
|
1592
|
+
constructor(metadata, loadModule2, options = {}) {
|
|
2192
1593
|
super(options);
|
|
1594
|
+
this.name = metadata.name;
|
|
1595
|
+
this.extensions = metadata.extensions || [];
|
|
1596
|
+
this.contentEncodings = metadata.contentEncodings || [];
|
|
1597
|
+
this.loadModule = loadModule2;
|
|
1598
|
+
this.options = options;
|
|
1599
|
+
}
|
|
1600
|
+
/** Imports and initializes the codec without loading the opposite direction. */
|
|
1601
|
+
async preload(modules = {}) {
|
|
1602
|
+
await super.preload(modules);
|
|
1603
|
+
this.modulePromise ||= this.loadModule().then(async (module) => {
|
|
1604
|
+
await module.preload?.();
|
|
1605
|
+
this.module = module;
|
|
1606
|
+
});
|
|
1607
|
+
try {
|
|
1608
|
+
await this.modulePromise;
|
|
1609
|
+
} catch (error62) {
|
|
1610
|
+
this.modulePromise = null;
|
|
1611
|
+
throw error62;
|
|
1612
|
+
}
|
|
1613
|
+
}
|
|
1614
|
+
/** Runs synchronously after preload has initialized the WASM codec. */
|
|
1615
|
+
decompressSync(input2, size) {
|
|
1616
|
+
if (!this.module?.decompressSync)
|
|
1617
|
+
throw new Error(`${this.name}: call preload() before decompressSync()`);
|
|
1618
|
+
return copyArrayBuffer(
|
|
1619
|
+
this.module.decompressSync(new Uint8Array(input2), getDecompressOptions(this.options, size))
|
|
1620
|
+
);
|
|
2193
1621
|
}
|
|
2194
|
-
/** Decompresses one
|
|
2195
|
-
|
|
2196
|
-
|
|
1622
|
+
/** Decompresses one buffer with the selected compress-utils decoder. */
|
|
1623
|
+
async decompress(input2, size) {
|
|
1624
|
+
const decodeOptions = getDecompressOptions(this.options, size);
|
|
1625
|
+
await this.preload();
|
|
1626
|
+
const module = this.module;
|
|
1627
|
+
const output2 = await module.decompress(new Uint8Array(input2), decodeOptions);
|
|
1628
|
+
return copyArrayBuffer(output2);
|
|
2197
1629
|
}
|
|
2198
|
-
/**
|
|
1630
|
+
/** Incrementally decompresses input batches with compress-utils. */
|
|
2199
1631
|
async *decompressBatches(inputBatches) {
|
|
2200
|
-
|
|
1632
|
+
await this.preload();
|
|
1633
|
+
const module = this.module;
|
|
1634
|
+
if (!module.createDecompressStream) {
|
|
1635
|
+
yield await this.decompress(await this.concatenate(inputBatches));
|
|
1636
|
+
return;
|
|
1637
|
+
}
|
|
1638
|
+
const stream = await module.createDecompressStream();
|
|
1639
|
+
yield* transformBatches(stream, inputBatches);
|
|
1640
|
+
}
|
|
1641
|
+
};
|
|
1642
|
+
}
|
|
1643
|
+
});
|
|
1644
|
+
|
|
1645
|
+
// compress-utils-wasm:/home/runner/work/loaders.gl/loaders.gl/node_modules/compress-utils/dist/algorithms/gzip/decompress/gzip.wasm
|
|
1646
|
+
var gzip_default;
|
|
1647
|
+
var init_gzip = __esm({
|
|
1648
|
+
"compress-utils-wasm:/home/runner/work/loaders.gl/loaders.gl/node_modules/compress-utils/dist/algorithms/gzip/decompress/gzip.wasm"() {
|
|
1649
|
+
gzip_default = "data:application/wasm;base64,AGFzbQEAAAABahBgA39/fwF/YAJ/fwBgAX8Bf2ABfwBgBX9/f39/AX9gAn9/AX9gBX9+fn5+AGAEfn5+fgF/YAR/fn5/AGAAAX9gBH9/f38Bf2ADf39/AGAAAGAEf35+fgBgBX9/f39/AGAGf39/f39/AX8DLi0MDQYGBwcICAIFAgMJAgEABAkCAwQKCgAFAgQAAwsLDgIFBAAAAwIDAAAAAQ8EBQFwAQoKBQQBAIECBgkBfwFBgICACAsHsgIPBm1lbW9yeQIAC19pbml0aWFsaXplAAAKY3VfdmVyc2lvbgAMFmN1X2FsZ29yaXRobV9hdmFpbGFibGUADQ1jdV9sYXN0X2Vycm9yABELY3Vfc3RyZXJyb3IAEhxjdV9zZXRfbWF4X2RlY29tcHJlc3NlZF9zaXplABMNY3VfZGVjb21wcmVzcwAUF2N1X2RlY29tcHJlc3Nfc2l6ZV9oaW50ABYbY3VfZGVjb21wcmVzc19zdHJlYW1fY3JlYXRlABgaY3VfZGVjb21wcmVzc19zdHJlYW1fd3JpdGUAGhtjdV9kZWNvbXByZXNzX3N0cmVhbV9maW5pc2gAGxxjdV9kZWNvbXByZXNzX3N0cmVhbV9kZXN0cm95ABwIY3VfYWxsb2MAJgdjdV9mcmVlACcJDwEAQQELCQ8qKxUXGSIkJQwBEAqusQItGABB0NiACCgCAARAAAtB0NiACEEBNgIAC60KAgV/EH4jAEHgAGsiBCQAIANC////////P4MhDCACIAOFQoCAgICAgICAgH+DIQsgAkL///////8/gyINQiCIIQ8CQAJAIAJCMIinQf//AXEiBkH//wFrQYKAfk8gA0IwiKdB//8BcSIHQf//AWtBgoB+T3ENACABUCACQv///////////wCDIglCgICAgICAwP//AFQgCUKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCELDAILIANC////////////AIMiAkKAgICAgIDA//8AVCACQoCAgICAgMD//wBRckUEQCADQoCAgICAgCCEIQtCACEBDAILIAEgCUKAgICAgIDA//8AhYRQBEAgAlAEQEKAgICAgIDg//8AIQtCACEBDAMLIAtCgICAgICAwP//AIQhC0IAIQEMAgsgAkKAgICAgIDA//8AhVBFBEAgASAJhFAEQEIAIQEMAwsgAlAEQEIAIQEMAwsgCUKAgICAgIDAAFQEQCAEQdAAaiABIA0gDXkgAXlCQH0gDUIAUhunQQ9rQf8BcSIFEAdBASAFayEFIAQpA1giDUIgiCEPIAQpA1AhAQsgAkKAgICAgIDAAFoNASAEQUBrQgAgDCAMeUKAASAMQgBSG6dBD2tB/wFxIggQByAFIAhrQQFqIQUgBCkDSCEMIAQpA0AhCgwBCyABIAmEQgAhAVAEQEKAgICAgIDg//8AIQsMAgsgC0KAgICAgIDA//8AhCELDAELIApCD4YiCUKAgP7/D4MiAiABQiCIIgN+IhEgCUIgiCIOIAFC/////w+DIgF+fCIQQiCGIhIgASACfnwiCSASVK0gDUL/////D4MiDSACfiIVIAMgDn58IhIgDEIPhiITIApCMYiEQv////8PgyIKIAF+fCIUIBAgEVStQiCGIBBCIIiEfCIQIAIgD0KAgASEIgx+IhYgDSAOfnwiDyATQiCIQoCAgIAIhCICIAF+fCIRIAMgCn58IhNCIIZ8Ihd8IQEgBiAHaiAFakH//wBrIQUCQCACIAN+IhggDCAOfnwiAyAYVK0gAyADIAogDX58Ig5WrXwgAiAMfnwgCiAMfiIDIAIgDX58IgIgA1StQiCGIAJCIIiEfCAOIAJCIIZ8IgIgDlStfCACIAIgEiAVVK0gEiAUVq18fCIDVq18IAMgAyARIBNWrSAPIBZUrSAPIBFWrXx8QiCGIBNCIIiEfCIKVq18IAogCiAQIBRUrSAQIBdWrXx8IgJWrXwiA0KAgICAgIDAAINQRQRAIAVBAWohBQwBCyAJQj+IIANCAYYgAkI/iIQhAyACQgGGIAFCP4iEIQIgCUIBhiEJIAFCAYaEIQELIAVB/v8BSgRAIAtCgICAgICAwP//AIQhC0IAIQEMAQsCQCAFQQBKBEAgA0L///////8/gyAFrUIwhoQhCgwBC0EBIAVrIgZB/wBNBEAgBEEwaiACIAMgBUEBa0H/AHEiBRAHIARBEGogCSABIAYQBiAEQSBqIAIgAyAGEAYgBCAJIAEgBRAHIAQpAwAgBCkDCIRCAFKtIAQpAzAgBCkDEISEIQkgBCkDOCAEKQMYhCEBIAQpAyghCiAEKQMgIQIMAQtCACEBDAELIAogAiACIAlCAFIgAUKAgICAgICAgIB/ViABQoCAgICAgICAgH9RG618IgNWrXwgAyADIAkgAUKAgICAgICAgIB/hYRQrYMiAnwiASACVK18IAuEIQsLIAAgATcDACAAIAs3AwggBEHgAGokAAujCQIEfwR+IwBB4ABrIgUkACAEQoCAgICAgICAgH+FIQogBEL///////////8AgyEEAkACQCABUCIGIAJC////////////AIMiCUKAgICAgIDA//8AfUKAgICAgIDAgIB/VCAJUBtFBEAgA1AgBEKAgICAgIDA//8AfSILQoCAgICAgMCAgH9UIAtCgICAgICAwICAf1EbRQ0BCyAGIAlCgICAgICAwP//AFQgCUKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCECDAILIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgCkKAgICAgIAghCECIAMhAQwCCyABIAlCgICAgICAwP//AIWEUARAQoCAgICAgOD//wAgAiABIAOFIAIgCoVCgICAgICAgICAf4WEUCIGGyECQgAgASAGGyEBDAILAkAgAyAEQoCAgICAgMD//wCFhFANACABIAmEUARAIAMgBIRQRQ0BIAEgA4MhASACIAqDIQIMAwsgAyAEhFBFDQEMAgsgAyEBIAohAgwBCyADIAEgASADVCAEIAlWIAQgCVEbIggbIQkgCiACIAgbIgxC////////P4MhBCACIAogCBsiC0IwiKdB//8BcSEHIAxCMIinQf//AXEiBkUEQCAFQdAAaiAJIAQgBHkgCXlCQH0gBEIAUhunQQ9rQf8BcSIGEAdBASAGayEGIAUpA1AhCSAFKQNYIQQLIAEgAyAIGyEBIAtC////////P4MhAyAHRQRAIAVBQGsgASADIAN5IAF5QkB9IANCAFIbp0EPa0H/AXEiBxAHQQEgB2shByAFKQNIIQMgBSkDQCEBCyADQgOGIAFCPYiEQoCAgICAgIAEhCEDIARCA4YgCUI9iIQgAUIDhiEEIAIgCoUhAQJAIAYgB0YNACAGIAdrIgdB/wBLBEBCACEDQgEhBAwBCyAFQTBqIAQgA0EAIAdrQf8AcRAHIAVBIGogBCADIAcQBiAFKQMgIAUpAzAgBSkDOIRCAFKthCEEIAUpAyghAwtCgICAgICAgASEIQsgCUIDhiEKIAxCgICAgICAgICAf4MhCQJAAkACQCABQgBTBEBCACEBQgAhAiAEIAqFIAMgC4WEUEUNAQwECyAEIAp8IgEgBFStIAMgC3x8IgJCgICAgICAgAiDUA0BIARCAYMgAkI/hiABQgGIhIQhASAGQQFqIQYgAkIBiCECDAELIAogBH0hASALIAN9IAQgClatfSICQv////////8DVg0AIAVBEGogASACIAJ5IAF5QkB9IAJCAFIbp0EMayIHEAcgBiAHayEGIAUpAxghAiAFKQMQIQEMAQsgBkH+/wFMDQAgCUKAgICAgIDA//8AhCECQgAhAQwBCyAGQQBMBEAgBSABIAJBBCAGaxAGIAUpAwggCYQhAiAFKQMAIQEMAQsgAkI9hiABQgOIhCIDIAFCB4MiBEIEVq18IgEgA1StIAJCA4hC////////P4MgBq1CMIaEIAmEfCABIARCBFGtgyICIAF8IgEgAlStfCECCyAAIAE3AwAgACACNwMIIAVB4ABqJAALjAkCBH4EfyMAQeAAayIJJAAgBEL///////////8AgyEFAkACQCABUCIKIAJC////////////AIMiBkKAgICAgIDA//8AfUKAgICAgIDAgIB/VCAGUBtFBEAgA1AgBUKAgICAgIDA//8AfSIHQoCAgICAgMCAgH9UIAdCgICAgICAwICAf1EbRQ0BCyAKIAZCgICAgICAwP//AFQgBkKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEEIAEhAwwCCyADUCAFQoCAgICAgMD//wBUIAVCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhBAwCCyABIAZCgICAgICAwP//AIWEUARAQoCAgICAgOD//wAgAiABIAOFIAIgBIVCgICAgICAgICAf4WEUCIKGyEEQgAgASAKGyEDDAILIAMgBUKAgICAgIDA//8AhYRQDQEgASAGhFAEQCADIAWEUEUNAiABIAODIQMgAiAEgyEEDAILIAMgBYRQRQ0AIAEhAyACIQQMAQsgAyABIAEgA1QgBSAGViAFIAZRGyIMGyEGIAQgAiAMGyIIQv///////z+DIQUgAiAEIAwbIgdCMIinQf//AXEhCyAIQjCIp0H//wFxIgpFBEAgCUHQAGogBiAFIAV5IAZ5QkB9IAVCAFIbp0EPa0H/AXEiChAHQQEgCmshCiAJKQNQIQYgCSkDWCEFCyABIAMgDBshAyAHQv///////z+DIQEgCwR+IAEFIAlBQGsgAyABIAF5IAN5QkB9IAFCAFIbp0EPa0H/AXEiCxAHQQEgC2shCyAJKQNAIQMgCSkDSAtCA4YgA0I9iIRCgICAgICAgASEIQEgBUIDhiAGQj2IhCADQgOGIQUgAiAEhSEDAkAgCiALRg0AIAogC2siC0H/AEsEQEIAIQFCASEFDAELIAlBMGogBSABQQAgC2tB/wBxEAcgCUEgaiAFIAEgCxAGIAkpAyAgCSkDMCAJKQM4hEIAUq2EIQUgCSkDKCEBC0KAgICAgICABIQhByAGQgOGIQIgCEKAgICAgICAgIB/gyEGAkACQAJAIANCAFMEQEIAIQNCACEEIAIgBYUgASAHhYRQRQ0BDAQLIAIgBXwiAyAFVK0gASAHfHwiBEKAgICAgICACINQDQEgBUIBgyAEQj+GIANCAYiEhCEDIApBAWohCiAEQgGIIQQMAQsgAiAFfSEDIAcgAX0gAiAFVK19IgRC/////////wNWDQAgCUEQaiADIAQgBHkgA3lCQH0gBEIAUhunQQxrIgsQByAKIAtrIQogCSkDGCEEIAkpAxAhAwwBCyAKQf7/AUwNACAGQoCAgICAgMD//wCEIQRCACEDDAELIApBAEwEQCAJIAMgBEEEIAprEAYgCSkDCCAGhCEEIAkpAwAhAwwBCyAEQj2GIANCA4iEIgIgA0IHgyIDQgRWrXwiASACVK0gBEIDiEL///////8/gyAKrUIwhoQgBoR8IAEgASADQgRRrYMiAXwiAyABVK18IQQLIAAgAzcDACAAIAQ3AwggCUHgAGokAAvgAQIBfwJ+QQEhBAJAIABCAFIgAUL///////////8AgyIFQoCAgICAgMD//wBWIAVCgICAgICAwP//AFEbDQAgAlAgA0L///////////8AgyIGQoCAgICAgMD//wBUIAZCgICAgICAwP//AFEbRQ0AIAAgAoQgBSAGhIRQBEBBAA8LAkACQCABIAODQgBZBEAgACACVCABIANTIAEgA1EbRQ0BQX8PCyAAIAJWIAEgA1UgASADURtFDQFBfw8LIAAgAoUgASADhYRCAFIPCyAAIAKFIAEgA4WEQgBSIQQLIAQLYwAgAEIAUiABQv///////////wCDIgBCgICAgICAwP//AFYgAEKAgICAgIDA//8AURsgAkIAUiADQv///////////wCDIgBCgICAgICAwP//AFYgAEKAgICAgIDA//8AURtyC1EBAX4CQCADQT9KBEAgAiADQT9xrYghAUIAIQIMAQsgA0UNACACQQAgA2tBP3GthiABIAOtIgSIhCEBIAIgBIghAgsgACABNwMAIAAgAjcDCAtRAQF+AkAgA0E/SgRAIAEgA0E/ca2GIQJCACEBDAELIANFDQAgAiADrSIEhiABQQAgA2tBP3GtiIQhAiABIASGIQELIAAgATcDACAAIAI3AwgLMgEBfyAAQRBqQQQQCSIBBEAgASAArUIFhkIEhDcDCCABQRBqDwtBnNyACEEwNgIAQQAL6wIBA38jAEEQayIEJAAgBCABQR9xOgAPAkBBfyAAQQRqIgIgACACSxsiAEEBIAF0IgEgACABSxsiAEEBa2ciAUUEQEEAIQEMAQtBICABayIBQf//A3FBA2siA0ENTwRAQgFBICAAQYOABGpBEHZBAWtnayIBrYanIQAgAUH//wNxQQJ0IgIoArzZgAgiAQRAIAJBvNmACGogAEEQdCABakEEaygCADYCAAwCC0EAIABAACIAQRB0IABBf0YbIQEMAQtCASABrYanIQIgA0ECdCIAKAKI2YAIIgEEQCAAQYjZgAhqIAEgAmpBBGsoAgA2AgAMAQsgAEHU2IAIaiEDIAAoAtTYgAgiAUH//wNxRQRAQQAhASADIAICf0G82YAIKAIAIgAEQEG82YAIIAAoAvz/AzYCACAADAELQQFAACIAQQFqQQJJDQIgAEEQdAsiAWo2AgAMAQsgAyABIAJqNgIACyAEQRBqJAAgAQuWAQIDfwF+IwBBEGsiAiQAIAIgAK0iBEIgiKciAEEARzoADAJAAkAgAEUEQCAEpyIBQRBqQQQQCSIADQFBnNyACEEwNgIADAILQZzcgAhBMDYCAAwBCyAAIAGtQgWGQgSENwMIIABBEGohAyABRQ0AQQAhAANAIAAgA2pBADoAACAAQQFqIgAgAUkNAAsLIAJBEGokACADC+IBAgR/AX4jAEEQayIDJAACQCAARQ0AIAMgAEEIaykDACIFpyIBQR9xIgI6AA4gAyACOgAPIABBASABdCIBayEAQSAgBUIFiKcgAWpBBGoiAiABIAEgAkkbIgFBAWtnayICQf//A3FBA2siBEEMTQRA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KCAnQoCAgICAgMCBwAAQASAGQdACaiAGKQPgAiAGKQPoAkKAgICAgIDAgcAAEAEgBkHAAmogBikD0AIgBikD2AJCgICAgICAwIHAABABIAZBsAJqIAYpA8ACIAYpA8gCQoCAgICAgMCBwAAQASAGQaACaiAGKQOwAiAGKQO4AkKAgICAgIDAgcAAEAEgBkGQAmogBikDoAIgBikDqAJCgICAgICAwIHAABABIAZBgAJqIAYpA5ACIAYpA5gCQoCAgICAgMCBwAAQASAGQfABaiAGKQOAAiAGKQOIAkKAgICAgIDAgcAAEAEgBkHgAWogBikD8AEgBikD+AFCgICAgICAwIHAABABIAZB0AFqIAYpA+ABIAYpA+gBQoCAgICAgMCBwAAQASAGQcABaiAGKQPQASAGKQPYAUKAgICAgIDAgcAAEAEgBkGwAWogBikDwAEgBikDyAFCgICAgICAwIHAABABIAZBoAFqIAYpA7ABIAYpA7gBQoCAgICAgMCBwAAQASAGQZABaiAGKQOgASAGKQOoAUKAgICAgIDAgcAAEAEgBkGAAWogBikDkAEgBikDmAFCgICAgICAwIHAABABIAZB8ABqIAYpA4ABIAYpA4gBQoCAgICAgMCBwAAQASAGKQN4IScgBikDcCEoIAVBEGsiBQ0ACwsgCC0AAEEtRgRAIAZBQGsgJSAmQoCAgICAgICAgH+FICggJxACIAZBMGogKCAnIAYpA0AgBikDSBADIAYpAzhCgICAgICAgICAf4UhJiAGKQMwISUMAQsgBkHgAGogJSAmICggJxADIAZB0ABqIAYpA2AgBikDaCAoICcQAiAGKQNYISYgBikDUCElCwJAIAYoAuwFIgsEQCALIAtBH3UiBXMgBWshBSAYIQcDQCAHQQFrIgcgBUEKbiIJQfYBbCAFakEwcjoAACAFQQpJIAkhBUUNAAsMAQsgBkEwOgC/BSAfIQcLIBdBAnIhDCASQSBxIQ0gB0ECayIPIBJBD2o6AAAgB0EBa0EtQSsgC0EASBs6AAAgEEEIcUUgCkEATHEhCyAGQcAFaiEHA0AgByIFIwBBEGsiByQAAn9BACAmQjCIpyIJQf//AXEiEUH+/wBNDQAaICZCP4enQf////8HcyARQZ6AAWtBYE0NABogByAlICZC////////P4NCgICAgICAwACEQe8A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AiACKAIUIAFqNgIUCwvzBgMDfgF/AXwjAEEQayIGJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIAAQIFAwQGBwgJCgsMDQ4PEBESCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAMEQsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADBALIAIgAigCACIBQQRqNgIAIAAgATUCADcDAAwPCyACIAIoAgAiAUEEajYCACAAIAE0AgA3AwAMDgsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADA0LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAAwMCyACIAIoAgAiAUEEajYCACAAIAEyAQA3AwAMCwsgAiACKAIAIgFBBGo2AgAgACABMwEANwMADAoLIAIgAigCACIBQQRqNgIAIAAgATAAADcDAAwJCyACIAIoAgAiAUEEajYCACAAIAExAAA3AwAMCAsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMADAcLIAIgAigCACIBQQRqNgIAIAAgATUCADcDAAwGCyACIAIoAgBBB2pBeHEiAUEIajYCACAAIAEpAwA3AwAMBQsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMADAQLIAIgAigCACIBQQRqNgIAIAAgATQCADcDAAwDCyACIAIoAgAiAUEEajYCACAAIAE1AgA3AwAMAgsgAiACKAIAQQdqQXhxIgFBCGo2AgAgASsDACEHIwBBEGsiASQAAn4gB70iBUL///////////8AgyIDQoCAgICAgIAIfUKAgICAgICA8P8AVARAIANCPIYhBCADQgSIQoCAgICAgICAPHwMAQsgA0KAgICAgICA+P8AWgRAIANCPIYhBCADQgSIQoCAgICAgMD//wCEDAELQgAgA1ANABogASADQgAgA3mnIgJBMWoQByABKQMAIQQgASkDCEKAgICAgIDAAIVBgfgAIAJB9QBqQf8AcWutQjCGhAshAyAGIAQ3AwAgBiADIAVCgICAgICAgICAf4OENwMIIAFBEGokACAAIAYpAwg3AwggACAGKQMANwMADAELIAIgAigCAEEPakFwcSIBQRBqNgIAIAAgASkDADcDACAAIAEpAwg3AwgLIAZBEGokAAuH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ACEGCyAGCwvJVxAAQYCAgAgL8QtpbnN1ZmZpY2llbnQgbWVtb3J5AHpsaWI6IG91dCBvZiBtZW1vcnkAbmVlZCBkaWN0aW9uYXJ5AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAemxpYjogZGVjb21wcmVzc2VkIHNpemUgJWxsdSBleGNlZWRzIGNhcCAlenUAemxpYjogZW1wdHkgaW5wdXQAaW52YWxpZCBhcmd1bWVudABkZWNvbXByZXNzZWQgc2l6ZSBleGNlZWRzIGNvbmZpZ3VyZWQgbGltaXQAaW52YWxpZCBsaXRlcmFsL2xlbmd0aHMgc2V0AGludmFsaWQgY29kZSBsZW5ndGhzIHNldAB1bmtub3duIGhlYWRlciBmbGFncyBzZXQAaW52YWxpZCBkaXN0YW5jZXMgc2V0AGludmFsaWQgYml0IGxlbmd0aCByZXBlYXQAb3V0IG9mIG1lbW9yeSBhbGxvY2F0aW5nIGN1X2RlY29tcHJlc3Nfc3RyZWFtX3QAdG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMAaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocwBidWZmZXIgZXJyb3IAdW5rbm93biBlcnJvcgBzdHJlYW0gZXJyb3IAaW50ZXJuYWwgZXJyb3IAZmlsZSBlcnJvcgBkYXRhIGVycm9yAGd6aXAAaW5jb21wYXRpYmxlIHZlcnNpb24AbmFuAHpsaWI6IG9vbQB3cml0ZSB0byBmaW5pc2hlZCBkZWNvbXByZXNzIHN0cmVhbQB6bGliOiBkYXRhIGFmdGVyIGVuZCBvZiBzdHJlYW0Ab3V0cHV0IGJ1ZmZlciB0b28gc21hbGwAb2sAaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawB6bGliOiB0cnVuY2F0ZWQgc3RyZWFtIGF0IGZpbmlzaABoZWFkZXIgY3JjIG1pc21hdGNoAGRlY29tcHJlc3NlZCBzaXplIG5vdCBlbmNvZGVkIGluIHdpcmUgZm9ybWF0OyB1c2Ugc3RyZWFtaW5nAGluZgBpbnZhbGlkIHdpbmRvdyBzaXplAG9wZXJhdGlvbiBpbnZhbGlkIGZvciBjdXJyZW50IHN0cmVhbSBzdGF0ZQBpbnZhbGlkIGJsb2NrIHR5cGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABzdHJlYW0gZW5kAGFsZ29yaXRobSBub3QgY29tcGlsZWQgaW50byB0aGlzIGJ1aWxkAGFsZ29yaXRobSAlZCBpcyBub3QgYXZhaWxhYmxlIGluIHRoaXMgYnVpbGQAY29tcHJlc3NlZCBpbnB1dCB0cnVuY2F0ZWQAZGVjb21wcmVzc2lvbiBmYWlsZWQAc3RyZWFtIGlzIGFscmVhZHkgZmluaXNoZWQAemxpYjogY29ycnVwdGVkIGRhdGEATkFOAElORgAwLjkuMAAuAHpsaWI6IGNvZGUgJWQgKCVzKQB6bGliOiBvdXRwdXQgYnVmZmVyIHRvbyBzbWFsbCAoc2l6ZSBub3QgZW5jb2RlZCBpbiBzdHJlYW0pAChudWxsKQBjb21wcmVzc2lvbiBsZXZlbCBvdXQgb2YgcmFuZ2UgKDEuLjEwKQAAAI8CAAGUAAABTwUAAXcCAAFNAwABNwQAAacEAAGlBAABigQAAaUAAAG6BAABoQMAARoAAAHnAQABGQALABkZGQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAAZAAoKGRkZAwoHAAEbCQsYAAAJBgsAAAsABhkAAAAZGRkAQYGMgAgLIQ4AAAAAAAAAABkACw0ZGRkADQAAAgAJDgAAAAkADgAADgBBu4yACAsBDABBx4yACAsVEwAAAAATAAAAAAkMAAAAAAAMAAAMAEH1jIAICwEQAEGBjYAICxUPAAAABA8AAAAACRAAAAAAABAAABAAQa+NgAgLARIAQbuNgAgLHhEAAAAAEQAAAAAJEgAAAAAAEgAAEgAAGgAAABoaGgBB8o2ACAsOGgAAABoaGgAAAAAAAAkAQaOOgAgLARQAQa+OgAgLFRcAAAAAFwAAAAAJFAAAAAAAFAAAFABB3Y6ACAsBFgBB6Y6ACAvkDRUAAAAAFQAAAAAJFgAAAAAAFgAAFgAAMDEyMzQ1Njc4OUFCQ0RFRlN1Y2Nlc3MASWxsZWdhbCBieXRlIHNlcXVlbmNlAERvbWFpbiBlcnJvcgBSZXN1bHQgbm90IHJlcHJlc2VudGFibGUATm90IGEgdHR5AFBlcm1pc3Npb24gZGVuaWVkAE9wZXJhdGlvbiBub3QgcGVybWl0dGVkAE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkATm8gc3VjaCBwcm9jZXNzAEZpbGUgZXhpc3RzAFZhbHVlIHRvbyBsYXJnZSBmb3IgZGF0YSB0eXBlAE5vIHNwYWNlIGxlZnQgb24gZGV2aWNlAE91dCBvZiBtZW1vcnkAUmVzb3VyY2UgYnVzeQBJbnRlcnJ1cHRlZCBzeXN0ZW0gY2FsbABSZXNvdXJjZSB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZQBJbnZhbGlkIHNlZWsAQ3Jvc3MtZGV2aWNlIGxpbmsAUmVhZC1vbmx5IGZpbGUgc3lzdGVtAERpcmVjdG9yeSBub3QgZW1wdHkAQ29ubmVjdGlvbiByZXNldCBieSBwZWVyAE9wZXJhdGlvbiB0aW1lZCBvdXQAQ29ubmVjdGlvbiByZWZ1c2VkAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MATm8gc3VjaCBkZXZpY2UATm90IGEgZGlyZWN0b3J5AElzIGEgZGlyZWN0b3J5AFRleHQgZmlsZSBidXN5AEV4ZWMgZm9ybWF0IGVycm9yAEludmFsaWQgYXJndW1lbnQAQXJndW1lbnQgbGlzdCB0b28gbG9uZwBTeW1ib2xpYyBsaW5rIGxvb3AARmlsZW5hbWUgdG9vIGxvbmcAVG9vIG1hbnkgb3BlbiBmaWxlcyBpbiBzeXN0ZW0ATm8gZmlsZSBkZXNjcmlwdG9ycyBhdmFpbGFibGUAQmFkIGZpbGUgZGVzY3JpcHRvcgBObyBjaGlsZCBwcm9jZXNzAEJhZCBhZGRyZXNzAEZpbGUgdG9vIGxhcmdlAFRvbyBtYW55IGxpbmtzAE5vIGxvY2tzIGF2YWlsYWJsZQBSZXNvdXJjZSBkZWFkbG9jayB3b3VsZCBvY2N1cgBTdGF0ZSBub3QgcmVjb3ZlcmFibGUAUHJldmlvdXMgb3duZXIgZGllZABPcGVyYXRpb24gY2FuY2VsZWQARnVuY3Rpb24gbm90IGltcGxlbWVudGVkAE5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBlAElkZW50aWZpZXIgcmVtb3ZlZABMaW5rIGhhcyBiZWVuIHNldmVyZWQAUHJvdG9jb2wgZXJyb3IAQmFkIG1lc3NhZ2UATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBRdW90YSBleGNlZWRlZABNdWx0aWhvcCBhdHRlbXB0ZWQAQ2FwYWJpbGl0aWVzIGluc3VmZmljaWVudAAAAHUCTgDWAeIEuQQYAY4F7QIWBPIAlwMBAzgFrwGCAU8DLwQeANQFogASAx4DwgHeAwgArAUAAWQC8QFlBTQCjALPAi0DTATjBZ8C+AQcBQgFsQJLBRUCeABSAjwD8QPkAMMDfQTMAKoDeQUkAm4BbQMiBKsERAD7Aa4AgwNgAOUBBwSUBF4EKwBYATkBkgDCBZsBQwJGAfYFAAAMAgABAAAAAAAAAAAEAAAABQBB4JyACAu1KAYAAAAHAAAACAAAAAkAAAAAAAAAljAHdyxhDu66UQmZGcRtB4/0anA1pWPp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";
|
|
1650
|
+
}
|
|
1651
|
+
});
|
|
1652
|
+
|
|
1653
|
+
// compress-utils-resolver:resolver
|
|
1654
|
+
var resolveWasm;
|
|
1655
|
+
var init_resolver = __esm({
|
|
1656
|
+
"compress-utils-resolver:resolver"() {
|
|
1657
|
+
resolveWasm = (url2) => Uint8Array.from(atob(url2.href.split(",")[1]), (character) => character.charCodeAt(0));
|
|
1658
|
+
}
|
|
1659
|
+
});
|
|
1660
|
+
|
|
1661
|
+
// ../../node_modules/compress-utils/dist/core/types.js
|
|
1662
|
+
var Algorithm, Status, CompressError;
|
|
1663
|
+
var init_types = __esm({
|
|
1664
|
+
"../../node_modules/compress-utils/dist/core/types.js"() {
|
|
1665
|
+
(function(Algorithm2) {
|
|
1666
|
+
Algorithm2[Algorithm2["Zstd"] = 0] = "Zstd";
|
|
1667
|
+
Algorithm2[Algorithm2["Brotli"] = 1] = "Brotli";
|
|
1668
|
+
Algorithm2[Algorithm2["Zlib"] = 2] = "Zlib";
|
|
1669
|
+
Algorithm2[Algorithm2["Bz2"] = 3] = "Bz2";
|
|
1670
|
+
Algorithm2[Algorithm2["Lz4"] = 4] = "Lz4";
|
|
1671
|
+
Algorithm2[Algorithm2["Xz"] = 5] = "Xz";
|
|
1672
|
+
Algorithm2[Algorithm2["Lzma"] = 6] = "Lzma";
|
|
1673
|
+
Algorithm2[Algorithm2["Snappy"] = 7] = "Snappy";
|
|
1674
|
+
Algorithm2[Algorithm2["Gzip"] = 8] = "Gzip";
|
|
1675
|
+
Algorithm2[Algorithm2["Deflate"] = 9] = "Deflate";
|
|
1676
|
+
Algorithm2[Algorithm2["Lz4Raw"] = 10] = "Lz4Raw";
|
|
1677
|
+
Algorithm2[Algorithm2["Lzo"] = 11] = "Lzo";
|
|
1678
|
+
})(Algorithm || (Algorithm = {}));
|
|
1679
|
+
(function(Status2) {
|
|
1680
|
+
Status2[Status2["Ok"] = 0] = "Ok";
|
|
1681
|
+
Status2[Status2["InvalidArg"] = 1] = "InvalidArg";
|
|
1682
|
+
Status2[Status2["InvalidLevel"] = 2] = "InvalidLevel";
|
|
1683
|
+
Status2[Status2["BufTooSmall"] = 3] = "BufTooSmall";
|
|
1684
|
+
Status2[Status2["SizeUnknown"] = 4] = "SizeUnknown";
|
|
1685
|
+
Status2[Status2["UnsupportedAlgo"] = 5] = "UnsupportedAlgo";
|
|
1686
|
+
Status2[Status2["Compression"] = 6] = "Compression";
|
|
1687
|
+
Status2[Status2["Decompression"] = 7] = "Decompression";
|
|
1688
|
+
Status2[Status2["Truncated"] = 8] = "Truncated";
|
|
1689
|
+
Status2[Status2["SizeLimit"] = 9] = "SizeLimit";
|
|
1690
|
+
Status2[Status2["StreamFinished"] = 10] = "StreamFinished";
|
|
1691
|
+
Status2[Status2["StreamState"] = 11] = "StreamState";
|
|
1692
|
+
Status2[Status2["Oom"] = 12] = "Oom";
|
|
1693
|
+
Status2[Status2["Internal"] = 13] = "Internal";
|
|
1694
|
+
})(Status || (Status = {}));
|
|
1695
|
+
CompressError = class extends Error {
|
|
1696
|
+
/** Underlying C status code. Stable across versions; see compress_utils.h. */
|
|
1697
|
+
code;
|
|
1698
|
+
algorithm;
|
|
1699
|
+
constructor(code, algorithm, message) {
|
|
1700
|
+
super(message);
|
|
1701
|
+
this.name = "CompressError";
|
|
1702
|
+
this.code = code;
|
|
1703
|
+
this.algorithm = algorithm;
|
|
1704
|
+
}
|
|
1705
|
+
};
|
|
1706
|
+
}
|
|
1707
|
+
});
|
|
1708
|
+
|
|
1709
|
+
// ../../node_modules/compress-utils/dist/core/loader.js
|
|
1710
|
+
function wasiImports(getMemory) {
|
|
1711
|
+
return {
|
|
1712
|
+
// proc_exit: codec code paths shouldn't call this, but if libc
|
|
1713
|
+
// startup hits an unrecoverable error it does. Throw so callers
|
|
1714
|
+
// see a real stack instead of a silent exit.
|
|
1715
|
+
proc_exit(code) {
|
|
1716
|
+
throw new Error(`wasm proc_exit(${code})`);
|
|
1717
|
+
},
|
|
1718
|
+
// fd_write: silently swallow. zstd/etc don't log; if they did,
|
|
1719
|
+
// we'd want to wire this to console.warn — but that needs us to
|
|
1720
|
+
// read iovs out of linear memory, which the caller doesn't have
|
|
1721
|
+
// a handle to at import-resolution time.
|
|
1722
|
+
fd_write() {
|
|
1723
|
+
return ERRNO_NOSYS;
|
|
1724
|
+
},
|
|
1725
|
+
fd_close() {
|
|
1726
|
+
return ERRNO_NOSYS;
|
|
1727
|
+
},
|
|
1728
|
+
fd_seek() {
|
|
1729
|
+
return ERRNO_NOSYS;
|
|
1730
|
+
},
|
|
1731
|
+
fd_read() {
|
|
1732
|
+
return ERRNO_NOSYS;
|
|
1733
|
+
},
|
|
1734
|
+
fd_fdstat_get() {
|
|
1735
|
+
return ERRNO_NOSYS;
|
|
1736
|
+
},
|
|
1737
|
+
fd_fdstat_set_flags() {
|
|
1738
|
+
return ERRNO_NOSYS;
|
|
1739
|
+
},
|
|
1740
|
+
// EBADF terminates the wasi-libc preopen scan cleanly. ENOSYS
|
|
1741
|
+
// makes the libc init path think the syscall is implemented but
|
|
1742
|
+
// failed unexpectedly, and on some libc builds aborts.
|
|
1743
|
+
fd_prestat_get() {
|
|
1744
|
+
return ERRNO_BADF;
|
|
1745
|
+
},
|
|
1746
|
+
fd_prestat_dir_name() {
|
|
1747
|
+
return ERRNO_BADF;
|
|
1748
|
+
},
|
|
1749
|
+
fd_filestat_get() {
|
|
1750
|
+
return ERRNO_NOSYS;
|
|
1751
|
+
},
|
|
1752
|
+
path_open() {
|
|
1753
|
+
return ERRNO_NOSYS;
|
|
1754
|
+
},
|
|
1755
|
+
poll_oneoff() {
|
|
1756
|
+
return ERRNO_NOSYS;
|
|
1757
|
+
},
|
|
1758
|
+
sched_yield() {
|
|
1759
|
+
return 0;
|
|
1760
|
+
},
|
|
1761
|
+
environ_sizes_get() {
|
|
1762
|
+
return 0;
|
|
1763
|
+
},
|
|
1764
|
+
environ_get() {
|
|
1765
|
+
return 0;
|
|
1766
|
+
},
|
|
1767
|
+
clock_time_get() {
|
|
1768
|
+
return ERRNO_NOSYS;
|
|
1769
|
+
},
|
|
1770
|
+
// random_get: fill `len` bytes at `buf` with CSPRNG output.
|
|
1771
|
+
// Fails loud (ERRNO_IO) if no crypto is available — the previous
|
|
1772
|
+
// silent zero-fill was a correctness footgun for any future codec
|
|
1773
|
+
// that actually seeds from entropy.
|
|
1774
|
+
random_get(buf, len) {
|
|
1775
|
+
if (!webCrypto)
|
|
1776
|
+
return ERRNO_IO;
|
|
1777
|
+
const memory = getMemory();
|
|
1778
|
+
for (let off = 0; off < len; off += CRYPTO_MAX_CHUNK) {
|
|
1779
|
+
const chunk = Math.min(CRYPTO_MAX_CHUNK, len - off);
|
|
1780
|
+
webCrypto.getRandomValues(new Uint8Array(memory.buffer, buf + off, chunk));
|
|
1781
|
+
}
|
|
1782
|
+
return 0;
|
|
1783
|
+
}
|
|
1784
|
+
};
|
|
1785
|
+
}
|
|
1786
|
+
async function loadModule(source) {
|
|
1787
|
+
let instance8;
|
|
1788
|
+
const imports = {
|
|
1789
|
+
wasi_snapshot_preview1: wasiImports(() => instance8.exports.memory)
|
|
1790
|
+
};
|
|
1791
|
+
if (source instanceof ArrayBuffer || ArrayBuffer.isView(source)) {
|
|
1792
|
+
const { instance: inst } = await WebAssembly.instantiate(source, imports);
|
|
1793
|
+
instance8 = inst;
|
|
1794
|
+
} else {
|
|
1795
|
+
const { instance: inst } = await WebAssembly.instantiateStreaming(source, imports);
|
|
1796
|
+
instance8 = inst;
|
|
1797
|
+
}
|
|
1798
|
+
const exports = instance8.exports;
|
|
1799
|
+
exports._initialize?.();
|
|
1800
|
+
return exports;
|
|
1801
|
+
}
|
|
1802
|
+
function decodeCString(memory, ptr, maxLen = 4096) {
|
|
1803
|
+
if (ptr === 0)
|
|
1804
|
+
return "";
|
|
1805
|
+
const view = new Uint8Array(memory.buffer, ptr);
|
|
1806
|
+
let end = 0;
|
|
1807
|
+
while (end < maxLen && view[end] !== 0)
|
|
1808
|
+
end++;
|
|
1809
|
+
return new TextDecoder("utf-8").decode(view.subarray(0, end));
|
|
1810
|
+
}
|
|
1811
|
+
function checkStatus(exports, status, algorithm) {
|
|
1812
|
+
if (status === Status.Ok)
|
|
1813
|
+
return;
|
|
1814
|
+
const lastErrPtr = exports.cu_last_error();
|
|
1815
|
+
let msg = decodeCString(exports.memory, lastErrPtr);
|
|
1816
|
+
if (!msg)
|
|
1817
|
+
msg = decodeCString(exports.memory, exports.cu_strerror(status));
|
|
1818
|
+
throw new CompressError(status, algorithm, msg || `status ${status}`);
|
|
1819
|
+
}
|
|
1820
|
+
var ERRNO_BADF, ERRNO_IO, ERRNO_NOSYS, CRYPTO_MAX_CHUNK, webCrypto;
|
|
1821
|
+
var init_loader = __esm({
|
|
1822
|
+
"../../node_modules/compress-utils/dist/core/loader.js"() {
|
|
1823
|
+
init_types();
|
|
1824
|
+
ERRNO_BADF = 8;
|
|
1825
|
+
ERRNO_IO = 29;
|
|
1826
|
+
ERRNO_NOSYS = 52;
|
|
1827
|
+
CRYPTO_MAX_CHUNK = 65536;
|
|
1828
|
+
webCrypto = typeof globalThis.crypto !== "undefined" && typeof globalThis.crypto.getRandomValues === "function" ? globalThis.crypto : null;
|
|
1829
|
+
}
|
|
1830
|
+
});
|
|
1831
|
+
|
|
1832
|
+
// ../../node_modules/compress-utils/dist/core/dispatch.js
|
|
1833
|
+
function drain(dispatcher, input2, call) {
|
|
1834
|
+
const arena = dispatcher.newArena();
|
|
1835
|
+
const chunks = [];
|
|
1836
|
+
let total = 0;
|
|
1837
|
+
try {
|
|
1838
|
+
const inLen = input2?.byteLength ?? 0;
|
|
1839
|
+
const inPtr0 = inLen > 0 ? arena.alloc(inLen, dispatcher.algorithmName) : 0;
|
|
1840
|
+
if (inPtr0 !== 0 && input2)
|
|
1841
|
+
dispatcher.writeBytes(inPtr0, input2);
|
|
1842
|
+
const outPtr = arena.alloc(STREAM_DRAIN_CHUNK, dispatcher.algorithmName);
|
|
1843
|
+
const outLenPtr = arena.alloc(4, dispatcher.algorithmName);
|
|
1844
|
+
let inPtr = inPtr0;
|
|
1845
|
+
let remainingIn = inLen;
|
|
1846
|
+
for (let i = 0; ; i++) {
|
|
1847
|
+
if (i >= DRAIN_MAX_ITERATIONS) {
|
|
1848
|
+
throw new CompressError(Status.StreamState, dispatcher.algorithmName, `drain exceeded ${DRAIN_MAX_ITERATIONS} iterations without completion`);
|
|
1849
|
+
}
|
|
1850
|
+
dispatcher.writeU32(outLenPtr, STREAM_DRAIN_CHUNK);
|
|
1851
|
+
const status = call(inPtr, remainingIn, outPtr, outLenPtr);
|
|
1852
|
+
const produced = dispatcher.readU32(outLenPtr);
|
|
1853
|
+
if (produced > 0) {
|
|
1854
|
+
chunks.push(dispatcher.readBytes(outPtr, produced));
|
|
1855
|
+
total += produced;
|
|
1856
|
+
}
|
|
1857
|
+
if (status === Status.Ok)
|
|
1858
|
+
break;
|
|
1859
|
+
if (status !== Status.BufTooSmall) {
|
|
1860
|
+
checkStatus(dispatcher.exports, status, dispatcher.algorithmName);
|
|
1861
|
+
}
|
|
1862
|
+
inPtr = 0;
|
|
1863
|
+
remainingIn = 0;
|
|
1864
|
+
}
|
|
1865
|
+
} finally {
|
|
1866
|
+
arena.freeAll();
|
|
1867
|
+
}
|
|
1868
|
+
if (chunks.length === 1)
|
|
1869
|
+
return chunks[0];
|
|
1870
|
+
const merged = new Uint8Array(total);
|
|
1871
|
+
let off = 0;
|
|
1872
|
+
for (const c of chunks) {
|
|
1873
|
+
merged.set(c, off);
|
|
1874
|
+
off += c.byteLength;
|
|
1875
|
+
}
|
|
1876
|
+
return merged;
|
|
1877
|
+
}
|
|
1878
|
+
function loadSharedModule(wasmUrl, resolveWasm2) {
|
|
1879
|
+
let modules = wasmModulePromises.get(resolveWasm2);
|
|
1880
|
+
if (!modules) {
|
|
1881
|
+
modules = /* @__PURE__ */ new Map();
|
|
1882
|
+
wasmModulePromises.set(resolveWasm2, modules);
|
|
1883
|
+
}
|
|
1884
|
+
const cached2 = modules.get(wasmUrl.href);
|
|
1885
|
+
if (cached2)
|
|
1886
|
+
return cached2;
|
|
1887
|
+
const currentModules = modules;
|
|
1888
|
+
const pending = (async () => loadModule(await resolveWasm2(wasmUrl)))().catch((error62) => {
|
|
1889
|
+
currentModules.delete(wasmUrl.href);
|
|
1890
|
+
throw error62;
|
|
1891
|
+
});
|
|
1892
|
+
modules.set(wasmUrl.href, pending);
|
|
1893
|
+
return pending;
|
|
1894
|
+
}
|
|
1895
|
+
function createBindings(algorithm, name, wasmUrl, resolveWasm2) {
|
|
1896
|
+
let dispatcherPromise = null;
|
|
1897
|
+
let dispatcher = null;
|
|
1898
|
+
const getDispatcher = () => {
|
|
1899
|
+
if (!dispatcherPromise) {
|
|
1900
|
+
dispatcherPromise = (async () => {
|
|
1901
|
+
const exports = await loadSharedModule(wasmUrl, resolveWasm2);
|
|
1902
|
+
dispatcher = new Dispatcher(exports, algorithm, name);
|
|
1903
|
+
return dispatcher;
|
|
1904
|
+
})().catch((error62) => {
|
|
1905
|
+
dispatcherPromise = null;
|
|
1906
|
+
throw error62;
|
|
1907
|
+
});
|
|
1908
|
+
}
|
|
1909
|
+
return dispatcherPromise;
|
|
1910
|
+
};
|
|
1911
|
+
const getInitializedDispatcher = () => {
|
|
1912
|
+
if (!dispatcher) {
|
|
1913
|
+
throw new Error(`${name}: call and await preload() before using synchronous methods`);
|
|
1914
|
+
}
|
|
1915
|
+
return dispatcher;
|
|
1916
|
+
};
|
|
1917
|
+
return {
|
|
1918
|
+
async preload() {
|
|
1919
|
+
await getDispatcher();
|
|
1920
|
+
},
|
|
1921
|
+
compressSync(input2, opts) {
|
|
1922
|
+
return getInitializedDispatcher().compress(input2, opts);
|
|
1923
|
+
},
|
|
1924
|
+
decompressSync(input2, opts) {
|
|
1925
|
+
return getInitializedDispatcher().decompress(input2, opts);
|
|
1926
|
+
},
|
|
1927
|
+
createCompressStreamSync(opts) {
|
|
1928
|
+
return getInitializedDispatcher().createCompressStream(opts);
|
|
1929
|
+
},
|
|
1930
|
+
createDecompressStreamSync() {
|
|
1931
|
+
return getInitializedDispatcher().createDecompressStream();
|
|
1932
|
+
},
|
|
1933
|
+
async compress(input2, opts) {
|
|
1934
|
+
return (await getDispatcher()).compress(input2, opts);
|
|
1935
|
+
},
|
|
1936
|
+
async decompress(input2, opts) {
|
|
1937
|
+
return (await getDispatcher()).decompress(input2, opts);
|
|
1938
|
+
},
|
|
1939
|
+
async createCompressStream(opts) {
|
|
1940
|
+
return (await getDispatcher()).createCompressStream(opts);
|
|
1941
|
+
},
|
|
1942
|
+
async createDecompressStream() {
|
|
1943
|
+
return (await getDispatcher()).createDecompressStream();
|
|
1944
|
+
},
|
|
1945
|
+
compressionStream(opts) {
|
|
1946
|
+
let stream;
|
|
1947
|
+
return new TransformStream({
|
|
1948
|
+
async start() {
|
|
1949
|
+
stream = (await getDispatcher()).createCompressStream(opts);
|
|
1950
|
+
},
|
|
1951
|
+
transform(chunk, controller) {
|
|
1952
|
+
const out = stream.write(chunk);
|
|
1953
|
+
if (out.byteLength > 0)
|
|
1954
|
+
controller.enqueue(out);
|
|
1955
|
+
},
|
|
1956
|
+
flush(controller) {
|
|
1957
|
+
try {
|
|
1958
|
+
const tail = stream.finish();
|
|
1959
|
+
if (tail.byteLength > 0)
|
|
1960
|
+
controller.enqueue(tail);
|
|
1961
|
+
} finally {
|
|
1962
|
+
stream.destroy();
|
|
1963
|
+
}
|
|
1964
|
+
}
|
|
1965
|
+
});
|
|
1966
|
+
},
|
|
1967
|
+
decompressionStream() {
|
|
1968
|
+
let stream;
|
|
1969
|
+
return new TransformStream({
|
|
1970
|
+
async start() {
|
|
1971
|
+
stream = (await getDispatcher()).createDecompressStream();
|
|
1972
|
+
},
|
|
1973
|
+
transform(chunk, controller) {
|
|
1974
|
+
const out = stream.write(chunk);
|
|
1975
|
+
if (out.byteLength > 0)
|
|
1976
|
+
controller.enqueue(out);
|
|
1977
|
+
},
|
|
1978
|
+
flush(controller) {
|
|
1979
|
+
try {
|
|
1980
|
+
const tail = stream.finish();
|
|
1981
|
+
if (tail.byteLength > 0)
|
|
1982
|
+
controller.enqueue(tail);
|
|
1983
|
+
} finally {
|
|
1984
|
+
stream.destroy();
|
|
1985
|
+
}
|
|
1986
|
+
}
|
|
1987
|
+
});
|
|
1988
|
+
},
|
|
1989
|
+
async version() {
|
|
1990
|
+
return (await getDispatcher()).version();
|
|
1991
|
+
},
|
|
1992
|
+
async setMaxDecompressedSize(bytes) {
|
|
1993
|
+
(await getDispatcher()).setMaxDecompressedSize(bytes);
|
|
1994
|
+
}
|
|
1995
|
+
};
|
|
1996
|
+
}
|
|
1997
|
+
var DEFAULT_LEVEL, STREAM_DRAIN_CHUNK, DRAIN_MAX_ITERATIONS, Arena, Dispatcher, streamFinalizer, StreamBase, CompressStream, DecompressStream, wasmModulePromises;
|
|
1998
|
+
var init_dispatch = __esm({
|
|
1999
|
+
"../../node_modules/compress-utils/dist/core/dispatch.js"() {
|
|
2000
|
+
init_loader();
|
|
2001
|
+
init_types();
|
|
2002
|
+
DEFAULT_LEVEL = 5;
|
|
2003
|
+
STREAM_DRAIN_CHUNK = 64 * 1024;
|
|
2004
|
+
DRAIN_MAX_ITERATIONS = 1 << 16;
|
|
2005
|
+
Arena = class {
|
|
2006
|
+
exports;
|
|
2007
|
+
ptrs = [];
|
|
2008
|
+
constructor(exports) {
|
|
2009
|
+
this.exports = exports;
|
|
2010
|
+
}
|
|
2011
|
+
alloc(bytes, algoName) {
|
|
2012
|
+
if (bytes === 0)
|
|
2013
|
+
bytes = 1;
|
|
2014
|
+
const ptr = this.exports.cu_alloc(bytes);
|
|
2015
|
+
if (ptr === 0) {
|
|
2016
|
+
throw new CompressError(Status.Oom, algoName, `cu_alloc(${bytes}) returned NULL`);
|
|
2017
|
+
}
|
|
2018
|
+
this.ptrs.push(ptr);
|
|
2019
|
+
return ptr;
|
|
2020
|
+
}
|
|
2021
|
+
freeAll() {
|
|
2022
|
+
for (const p of this.ptrs)
|
|
2023
|
+
this.exports.cu_free(p);
|
|
2024
|
+
this.ptrs.length = 0;
|
|
2025
|
+
}
|
|
2026
|
+
};
|
|
2027
|
+
Dispatcher = class {
|
|
2028
|
+
algorithm;
|
|
2029
|
+
algorithmName;
|
|
2030
|
+
/** @internal */
|
|
2031
|
+
exports;
|
|
2032
|
+
constructor(exports, algorithm, algorithmName) {
|
|
2033
|
+
this.exports = exports;
|
|
2034
|
+
this.algorithm = algorithm;
|
|
2035
|
+
this.algorithmName = algorithmName;
|
|
2036
|
+
if (exports.cu_algorithm_available(algorithm) === 0) {
|
|
2037
|
+
throw new CompressError(Status.UnsupportedAlgo, algorithmName, `algorithm "${algorithmName}" not compiled into this .wasm module`);
|
|
2038
|
+
}
|
|
2039
|
+
}
|
|
2040
|
+
version() {
|
|
2041
|
+
return decodeCString(this.exports.memory, this.exports.cu_version());
|
|
2042
|
+
}
|
|
2043
|
+
setMaxDecompressedSize(bytes) {
|
|
2044
|
+
this.exports.cu_set_max_decompressed_size?.(bytes);
|
|
2045
|
+
}
|
|
2046
|
+
/* ---------- one-shot ---------- */
|
|
2047
|
+
compress(input2, opts = {}) {
|
|
2048
|
+
const level = opts.level ?? DEFAULT_LEVEL;
|
|
2049
|
+
const inLen = input2.byteLength;
|
|
2050
|
+
const bound = this.exports.cu_compress_bound(inLen, this.algorithm);
|
|
2051
|
+
const arena = new Arena(this.exports);
|
|
2052
|
+
try {
|
|
2053
|
+
const inPtr = arena.alloc(inLen, this.algorithmName);
|
|
2054
|
+
const outPtr = arena.alloc(bound, this.algorithmName);
|
|
2055
|
+
const outLenPtr = arena.alloc(4, this.algorithmName);
|
|
2056
|
+
this.writeBytes(inPtr, input2);
|
|
2057
|
+
this.writeU32(outLenPtr, bound);
|
|
2058
|
+
const status = this.exports.cu_compress(this.algorithm, inPtr, inLen, outPtr, outLenPtr, level);
|
|
2059
|
+
checkStatus(this.exports, status, this.algorithmName);
|
|
2060
|
+
return this.readBytes(outPtr, this.readU32(outLenPtr));
|
|
2061
|
+
} finally {
|
|
2062
|
+
arena.freeAll();
|
|
2063
|
+
}
|
|
2064
|
+
}
|
|
2065
|
+
decompress(input2, opts = {}) {
|
|
2066
|
+
const inLen = input2.byteLength;
|
|
2067
|
+
const arena = new Arena(this.exports);
|
|
2068
|
+
try {
|
|
2069
|
+
const inPtr = arena.alloc(inLen, this.algorithmName);
|
|
2070
|
+
this.writeBytes(inPtr, input2);
|
|
2071
|
+
const outSize = opts.expectedSize ?? this.tryProbeSize(arena, inPtr, inLen);
|
|
2072
|
+
if (outSize === void 0) {
|
|
2073
|
+
return this.decompressStreaming(input2);
|
|
2074
|
+
}
|
|
2075
|
+
const outPtr = arena.alloc(outSize, this.algorithmName);
|
|
2076
|
+
const outLenPtr = arena.alloc(4, this.algorithmName);
|
|
2077
|
+
this.writeU32(outLenPtr, outSize);
|
|
2078
|
+
const status = this.exports.cu_decompress(this.algorithm, inPtr, inLen, outPtr, outLenPtr);
|
|
2079
|
+
checkStatus(this.exports, status, this.algorithmName);
|
|
2080
|
+
return this.readBytes(outPtr, this.readU32(outLenPtr));
|
|
2081
|
+
} finally {
|
|
2082
|
+
arena.freeAll();
|
|
2083
|
+
}
|
|
2084
|
+
}
|
|
2085
|
+
decompressStreaming(input2) {
|
|
2086
|
+
const stream = this.createDecompressStream();
|
|
2087
|
+
try {
|
|
2088
|
+
const body = stream.write(input2);
|
|
2089
|
+
const tail = stream.finish();
|
|
2090
|
+
if (tail.byteLength === 0)
|
|
2091
|
+
return body;
|
|
2092
|
+
const out = new Uint8Array(body.byteLength + tail.byteLength);
|
|
2093
|
+
out.set(body, 0);
|
|
2094
|
+
out.set(tail, body.byteLength);
|
|
2095
|
+
return out;
|
|
2096
|
+
} finally {
|
|
2097
|
+
stream.destroy();
|
|
2098
|
+
}
|
|
2099
|
+
}
|
|
2100
|
+
tryProbeSize(arena, inPtr, inLen) {
|
|
2101
|
+
const sizePtr = arena.alloc(4, this.algorithmName);
|
|
2102
|
+
this.writeU32(sizePtr, 0);
|
|
2103
|
+
const status = this.exports.cu_decompress_size_hint(this.algorithm, inPtr, inLen, sizePtr);
|
|
2104
|
+
if (status === Status.Ok)
|
|
2105
|
+
return this.readU32(sizePtr);
|
|
2106
|
+
if (status === Status.SizeUnknown)
|
|
2107
|
+
return void 0;
|
|
2108
|
+
checkStatus(this.exports, status, this.algorithmName);
|
|
2109
|
+
return void 0;
|
|
2110
|
+
}
|
|
2111
|
+
/* ---------- streaming ---------- */
|
|
2112
|
+
createCompressStream(opts = {}) {
|
|
2113
|
+
const level = opts.level ?? DEFAULT_LEVEL;
|
|
2114
|
+
const arena = new Arena(this.exports);
|
|
2115
|
+
try {
|
|
2116
|
+
const streamPP = arena.alloc(4, this.algorithmName);
|
|
2117
|
+
this.writeU32(streamPP, 0);
|
|
2118
|
+
const status = this.exports.cu_compress_stream_create(this.algorithm, level, streamPP);
|
|
2119
|
+
checkStatus(this.exports, status, this.algorithmName);
|
|
2120
|
+
return new CompressStream(this, this.readU32(streamPP));
|
|
2121
|
+
} finally {
|
|
2122
|
+
arena.freeAll();
|
|
2123
|
+
}
|
|
2124
|
+
}
|
|
2125
|
+
createDecompressStream() {
|
|
2126
|
+
const arena = new Arena(this.exports);
|
|
2127
|
+
try {
|
|
2128
|
+
const streamPP = arena.alloc(4, this.algorithmName);
|
|
2129
|
+
this.writeU32(streamPP, 0);
|
|
2130
|
+
const status = this.exports.cu_decompress_stream_create(this.algorithm, streamPP);
|
|
2131
|
+
checkStatus(this.exports, status, this.algorithmName);
|
|
2132
|
+
return new DecompressStream(this, this.readU32(streamPP));
|
|
2133
|
+
} finally {
|
|
2134
|
+
arena.freeAll();
|
|
2135
|
+
}
|
|
2136
|
+
}
|
|
2137
|
+
/* ---------- internal helpers (used by stream classes) ---------- */
|
|
2138
|
+
/** @internal */
|
|
2139
|
+
writeBytes(ptr, src) {
|
|
2140
|
+
new Uint8Array(this.exports.memory.buffer, ptr, src.byteLength).set(src);
|
|
2141
|
+
}
|
|
2142
|
+
/** @internal */
|
|
2143
|
+
readBytes(ptr, len) {
|
|
2144
|
+
return new Uint8Array(new Uint8Array(this.exports.memory.buffer, ptr, len));
|
|
2145
|
+
}
|
|
2146
|
+
/** @internal */
|
|
2147
|
+
writeU32(ptr, value) {
|
|
2148
|
+
new DataView(this.exports.memory.buffer).setUint32(ptr, value, true);
|
|
2149
|
+
}
|
|
2150
|
+
/** @internal */
|
|
2151
|
+
readU32(ptr) {
|
|
2152
|
+
return new DataView(this.exports.memory.buffer).getUint32(ptr, true);
|
|
2153
|
+
}
|
|
2154
|
+
/** @internal */
|
|
2155
|
+
newArena() {
|
|
2156
|
+
return new Arena(this.exports);
|
|
2157
|
+
}
|
|
2158
|
+
};
|
|
2159
|
+
streamFinalizer = new FinalizationRegistry((c) => {
|
|
2160
|
+
if (c.handle !== 0)
|
|
2161
|
+
c.destroy(c.handle);
|
|
2162
|
+
});
|
|
2163
|
+
StreamBase = class {
|
|
2164
|
+
dispatcher;
|
|
2165
|
+
handle;
|
|
2166
|
+
finished = false;
|
|
2167
|
+
cleanup;
|
|
2168
|
+
constructor(dispatcher, handle, destroyFn) {
|
|
2169
|
+
this.dispatcher = dispatcher;
|
|
2170
|
+
this.handle = handle;
|
|
2171
|
+
this.cleanup = { destroy: destroyFn, handle };
|
|
2172
|
+
streamFinalizer.register(this, this.cleanup, this);
|
|
2173
|
+
}
|
|
2174
|
+
ensureLive() {
|
|
2175
|
+
if (this.handle === 0) {
|
|
2176
|
+
throw new CompressError(Status.StreamState, this.dispatcher.algorithmName, "stream has been destroyed");
|
|
2177
|
+
}
|
|
2178
|
+
}
|
|
2179
|
+
destroy() {
|
|
2180
|
+
if (this.handle !== 0) {
|
|
2181
|
+
this.cleanup.destroy(this.handle);
|
|
2182
|
+
this.handle = 0;
|
|
2183
|
+
this.cleanup.handle = 0;
|
|
2184
|
+
streamFinalizer.unregister(this);
|
|
2185
|
+
}
|
|
2186
|
+
}
|
|
2187
|
+
/** Symbol.dispose — enables `using stream = await create*()`. */
|
|
2188
|
+
[Symbol.dispose]() {
|
|
2189
|
+
this.destroy();
|
|
2190
|
+
}
|
|
2191
|
+
};
|
|
2192
|
+
CompressStream = class extends StreamBase {
|
|
2193
|
+
constructor(dispatcher, handle) {
|
|
2194
|
+
super(dispatcher, handle, (h) => dispatcher.exports.cu_compress_stream_destroy(h));
|
|
2195
|
+
}
|
|
2196
|
+
write(chunk) {
|
|
2197
|
+
this.ensureLive();
|
|
2198
|
+
if (this.finished) {
|
|
2199
|
+
throw new CompressError(Status.StreamFinished, this.dispatcher.algorithmName, "write after finish");
|
|
2200
|
+
}
|
|
2201
|
+
return drain(this.dispatcher, chunk, (inPtr, inLen, outPtr, outLenPtr) => this.dispatcher.exports.cu_compress_stream_write(this.handle, inPtr, inLen, outPtr, outLenPtr));
|
|
2202
|
+
}
|
|
2203
|
+
finish() {
|
|
2204
|
+
this.ensureLive();
|
|
2205
|
+
this.finished = true;
|
|
2206
|
+
return drain(this.dispatcher, null, (_in, _len, outPtr, outLenPtr) => this.dispatcher.exports.cu_compress_stream_finish(this.handle, outPtr, outLenPtr));
|
|
2207
|
+
}
|
|
2208
|
+
};
|
|
2209
|
+
DecompressStream = class extends StreamBase {
|
|
2210
|
+
constructor(dispatcher, handle) {
|
|
2211
|
+
super(dispatcher, handle, (h) => dispatcher.exports.cu_decompress_stream_destroy(h));
|
|
2212
|
+
}
|
|
2213
|
+
write(chunk) {
|
|
2214
|
+
this.ensureLive();
|
|
2215
|
+
return drain(this.dispatcher, chunk, (inPtr, inLen, outPtr, outLenPtr) => this.dispatcher.exports.cu_decompress_stream_write(this.handle, inPtr, inLen, outPtr, outLenPtr));
|
|
2216
|
+
}
|
|
2217
|
+
finish() {
|
|
2218
|
+
this.ensureLive();
|
|
2219
|
+
this.finished = true;
|
|
2220
|
+
return drain(this.dispatcher, null, (_in, _len, outPtr, outLenPtr) => this.dispatcher.exports.cu_decompress_stream_finish(this.handle, outPtr, outLenPtr));
|
|
2221
|
+
}
|
|
2222
|
+
};
|
|
2223
|
+
wasmModulePromises = /* @__PURE__ */ new WeakMap();
|
|
2224
|
+
}
|
|
2225
|
+
});
|
|
2226
|
+
|
|
2227
|
+
// ../../node_modules/compress-utils/dist/core/algorithm.js
|
|
2228
|
+
function defineAlgorithm(algorithm, name, wasmUrl) {
|
|
2229
|
+
return createBindings(algorithm, name, wasmUrl, resolveWasm);
|
|
2230
|
+
}
|
|
2231
|
+
var init_algorithm = __esm({
|
|
2232
|
+
"../../node_modules/compress-utils/dist/core/algorithm.js"() {
|
|
2233
|
+
init_resolver();
|
|
2234
|
+
init_dispatch();
|
|
2235
|
+
}
|
|
2236
|
+
});
|
|
2237
|
+
|
|
2238
|
+
// ../../node_modules/compress-utils/dist/algorithms/gzip/decompress/index.js
|
|
2239
|
+
var decompress_exports = {};
|
|
2240
|
+
__export(decompress_exports, {
|
|
2241
|
+
CompressError: () => CompressError,
|
|
2242
|
+
createDecompressStream: () => createDecompressStream,
|
|
2243
|
+
createDecompressStreamSync: () => createDecompressStreamSync,
|
|
2244
|
+
decompress: () => decompress,
|
|
2245
|
+
decompressSync: () => decompressSync,
|
|
2246
|
+
decompressionStream: () => decompressionStream,
|
|
2247
|
+
preload: () => preload,
|
|
2248
|
+
setMaxDecompressedSize: () => setMaxDecompressedSize,
|
|
2249
|
+
version: () => version2
|
|
2250
|
+
});
|
|
2251
|
+
var bindings, decompress, decompressSync, createDecompressStream, createDecompressStreamSync, decompressionStream, preload, version2, setMaxDecompressedSize;
|
|
2252
|
+
var init_decompress = __esm({
|
|
2253
|
+
"../../node_modules/compress-utils/dist/algorithms/gzip/decompress/index.js"() {
|
|
2254
|
+
init_gzip();
|
|
2255
|
+
init_algorithm();
|
|
2256
|
+
init_types();
|
|
2257
|
+
init_types();
|
|
2258
|
+
bindings = /* @__PURE__ */ defineAlgorithm(Algorithm.Gzip, "gzip", new URL(gzip_default));
|
|
2259
|
+
decompress = bindings.decompress;
|
|
2260
|
+
decompressSync = bindings.decompressSync;
|
|
2261
|
+
createDecompressStream = bindings.createDecompressStream;
|
|
2262
|
+
createDecompressStreamSync = bindings.createDecompressStreamSync;
|
|
2263
|
+
decompressionStream = bindings.decompressionStream;
|
|
2264
|
+
preload = bindings.preload;
|
|
2265
|
+
version2 = bindings.version;
|
|
2266
|
+
setMaxDecompressedSize = bindings.setMaxDecompressedSize;
|
|
2267
|
+
}
|
|
2268
|
+
});
|
|
2269
|
+
|
|
2270
|
+
// ../compression/src/gzip-decompressor-compress-utils.ts
|
|
2271
|
+
var GZipCompressUtilsDecompressor;
|
|
2272
|
+
var init_gzip_decompressor_compress_utils = __esm({
|
|
2273
|
+
"../compression/src/gzip-decompressor-compress-utils.ts"() {
|
|
2274
|
+
"use strict";
|
|
2275
|
+
init_compress_utils_compression();
|
|
2276
|
+
GZipCompressUtilsDecompressor = class extends CompressUtilsDecompressor {
|
|
2277
|
+
constructor(options = {}) {
|
|
2278
|
+
super(
|
|
2279
|
+
{ name: "gzip", extensions: ["gz", "gzip"], contentEncodings: ["gzip", "x-gzip"] },
|
|
2280
|
+
() => Promise.resolve().then(() => (init_decompress(), decompress_exports)),
|
|
2281
|
+
options
|
|
2282
|
+
);
|
|
2201
2283
|
}
|
|
2202
2284
|
};
|
|
2203
2285
|
}
|
|
@@ -2212,23 +2294,18 @@ var __exports__ = (() => {
|
|
|
2212
2294
|
var init_gzip_decompressor = __esm({
|
|
2213
2295
|
"../compression/src/gzip-decompressor.ts"() {
|
|
2214
2296
|
"use strict";
|
|
2215
|
-
|
|
2297
|
+
init_gzip_decompressor_compress_utils();
|
|
2216
2298
|
init_decompression_stream();
|
|
2217
|
-
GZipDecompressor = class extends
|
|
2218
|
-
|
|
2219
|
-
|
|
2220
|
-
super(options);
|
|
2221
|
-
this.options = options;
|
|
2222
|
-
}
|
|
2223
|
-
/** Decompresses with the built-in stream when available, then falls back to fflate. */
|
|
2224
|
-
async decompress(input2) {
|
|
2299
|
+
GZipDecompressor = class extends GZipCompressUtilsDecompressor {
|
|
2300
|
+
/** Decompresses with native streams when available, otherwise lazily initializes WASM. */
|
|
2301
|
+
async decompress(input2, size) {
|
|
2225
2302
|
if (this.options.useNative !== false) {
|
|
2226
2303
|
const output2 = await decompressWithNativeDecompressionStream(input2, "gzip");
|
|
2227
2304
|
if (output2) return output2;
|
|
2228
2305
|
}
|
|
2229
|
-
return
|
|
2306
|
+
return super.decompress(input2, size);
|
|
2230
2307
|
}
|
|
2231
|
-
/**
|
|
2308
|
+
/** Streams native batches when available, otherwise uses the WASM stream. */
|
|
2232
2309
|
async *decompressBatches(inputBatches) {
|
|
2233
2310
|
if (this.options.useNative !== false) {
|
|
2234
2311
|
const output2 = decompressBatchesWithNativeDecompressionStream(inputBatches, "gzip");
|
|
@@ -2243,749 +2320,59 @@ var __exports__ = (() => {
|
|
|
2243
2320
|
}
|
|
2244
2321
|
});
|
|
2245
2322
|
|
|
2246
|
-
//
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
for (; dat.length; ) {
|
|
2251
|
-
var st = rzfh(dat, nb || buf);
|
|
2252
|
-
if (typeof st == "object") {
|
|
2253
|
-
if (nb) {
|
|
2254
|
-
buf = null;
|
|
2255
|
-
if (st.w.length == st.u) {
|
|
2256
|
-
bufs.push(buf = st.w);
|
|
2257
|
-
ol += st.u;
|
|
2258
|
-
}
|
|
2259
|
-
} else {
|
|
2260
|
-
bufs.push(buf);
|
|
2261
|
-
st.e = 0;
|
|
2262
|
-
}
|
|
2263
|
-
for (; !st.l; ) {
|
|
2264
|
-
var blk = rzb(dat, st, buf);
|
|
2265
|
-
if (!blk)
|
|
2266
|
-
err2(5);
|
|
2267
|
-
if (buf)
|
|
2268
|
-
st.e = st.y;
|
|
2269
|
-
else {
|
|
2270
|
-
bufs.push(blk);
|
|
2271
|
-
ol += blk.length;
|
|
2272
|
-
cpw(st.w, 0, blk.length);
|
|
2273
|
-
st.w.set(blk, st.w.length - blk.length);
|
|
2274
|
-
}
|
|
2275
|
-
}
|
|
2276
|
-
bt = st.b + st.c * 4;
|
|
2277
|
-
} else
|
|
2278
|
-
bt = st;
|
|
2279
|
-
dat = dat.subarray(bt);
|
|
2280
|
-
}
|
|
2281
|
-
return cct(bufs, ol);
|
|
2282
|
-
}
|
|
2283
|
-
var ab, u82, u162, i16, i32, slc2, fill, cpw, ec2, err2, rb, b4, rzfh, msb, rfse, rhu, dllt, dmlt, doct, b2bl, llb, llbl, mlb, mlbl, dhu, dhu4, rzb, cct;
|
|
2284
|
-
var init_esm = __esm({
|
|
2285
|
-
"../../node_modules/fzstd/esm/index.mjs"() {
|
|
2286
|
-
ab = ArrayBuffer;
|
|
2287
|
-
u82 = Uint8Array;
|
|
2288
|
-
u162 = Uint16Array;
|
|
2289
|
-
i16 = Int16Array;
|
|
2290
|
-
i32 = Int32Array;
|
|
2291
|
-
slc2 = function(v, s, e) {
|
|
2292
|
-
if (u82.prototype.slice)
|
|
2293
|
-
return u82.prototype.slice.call(v, s, e);
|
|
2294
|
-
if (s == null || s < 0)
|
|
2295
|
-
s = 0;
|
|
2296
|
-
if (e == null || e > v.length)
|
|
2297
|
-
e = v.length;
|
|
2298
|
-
var n = new u82(e - s);
|
|
2299
|
-
n.set(v.subarray(s, e));
|
|
2300
|
-
return n;
|
|
2301
|
-
};
|
|
2302
|
-
fill = function(v, n, s, e) {
|
|
2303
|
-
if (u82.prototype.fill)
|
|
2304
|
-
return u82.prototype.fill.call(v, n, s, e);
|
|
2305
|
-
if (s == null || s < 0)
|
|
2306
|
-
s = 0;
|
|
2307
|
-
if (e == null || e > v.length)
|
|
2308
|
-
e = v.length;
|
|
2309
|
-
for (; s < e; ++s)
|
|
2310
|
-
v[s] = n;
|
|
2311
|
-
return v;
|
|
2312
|
-
};
|
|
2313
|
-
cpw = function(v, t, s, e) {
|
|
2314
|
-
if (u82.prototype.copyWithin)
|
|
2315
|
-
return u82.prototype.copyWithin.call(v, t, s, e);
|
|
2316
|
-
if (s == null || s < 0)
|
|
2317
|
-
s = 0;
|
|
2318
|
-
if (e == null || e > v.length)
|
|
2319
|
-
e = v.length;
|
|
2320
|
-
while (s < e) {
|
|
2321
|
-
v[t++] = v[s++];
|
|
2322
|
-
}
|
|
2323
|
-
};
|
|
2324
|
-
ec2 = [
|
|
2325
|
-
"invalid zstd data",
|
|
2326
|
-
"window size too large (>2046MB)",
|
|
2327
|
-
"invalid block type",
|
|
2328
|
-
"FSE accuracy too high",
|
|
2329
|
-
"match distance too far back",
|
|
2330
|
-
"unexpected EOF"
|
|
2331
|
-
];
|
|
2332
|
-
err2 = function(ind, msg, nt) {
|
|
2333
|
-
var e = new Error(msg || ec2[ind]);
|
|
2334
|
-
e.code = ind;
|
|
2335
|
-
if (Error.captureStackTrace)
|
|
2336
|
-
Error.captureStackTrace(e, err2);
|
|
2337
|
-
if (!nt)
|
|
2338
|
-
throw e;
|
|
2339
|
-
return e;
|
|
2340
|
-
};
|
|
2341
|
-
rb = function(d, b, n) {
|
|
2342
|
-
var i = 0, o = 0;
|
|
2343
|
-
for (; i < n; ++i)
|
|
2344
|
-
o |= d[b++] << (i << 3);
|
|
2345
|
-
return o;
|
|
2346
|
-
};
|
|
2347
|
-
b4 = function(d, b) {
|
|
2348
|
-
return (d[b] | d[b + 1] << 8 | d[b + 2] << 16 | d[b + 3] << 24) >>> 0;
|
|
2349
|
-
};
|
|
2350
|
-
rzfh = function(dat, w) {
|
|
2351
|
-
var n3 = dat[0] | dat[1] << 8 | dat[2] << 16;
|
|
2352
|
-
if (n3 == 3126568 && dat[3] == 253) {
|
|
2353
|
-
var flg = dat[4];
|
|
2354
|
-
var ss = flg >> 5 & 1, cc = flg >> 2 & 1, df = flg & 3, fcf = flg >> 6;
|
|
2355
|
-
if (flg & 8)
|
|
2356
|
-
err2(0);
|
|
2357
|
-
var bt = 6 - ss;
|
|
2358
|
-
var db = df == 3 ? 4 : df;
|
|
2359
|
-
var di = rb(dat, bt, db);
|
|
2360
|
-
bt += db;
|
|
2361
|
-
var fsb = fcf ? 1 << fcf : ss;
|
|
2362
|
-
var fss = rb(dat, bt, fsb) + (fcf == 1 && 256);
|
|
2363
|
-
var ws = fss;
|
|
2364
|
-
if (!ss) {
|
|
2365
|
-
var wb = 1 << 10 + (dat[5] >> 3);
|
|
2366
|
-
ws = wb + (wb >> 3) * (dat[5] & 7);
|
|
2367
|
-
}
|
|
2368
|
-
if (ws > 2145386496)
|
|
2369
|
-
err2(1);
|
|
2370
|
-
var buf = new u82((w == 1 ? fss || ws : w ? 0 : ws) + 12);
|
|
2371
|
-
buf[0] = 1, buf[4] = 4, buf[8] = 8;
|
|
2372
|
-
return {
|
|
2373
|
-
b: bt + fsb,
|
|
2374
|
-
y: 0,
|
|
2375
|
-
l: 0,
|
|
2376
|
-
d: di,
|
|
2377
|
-
w: w && w != 1 ? w : buf.subarray(12),
|
|
2378
|
-
e: ws,
|
|
2379
|
-
o: new i32(buf.buffer, 0, 3),
|
|
2380
|
-
u: fss,
|
|
2381
|
-
c: cc,
|
|
2382
|
-
m: Math.min(131072, ws)
|
|
2383
|
-
};
|
|
2384
|
-
} else if ((n3 >> 4 | dat[3] << 20) == 25481893) {
|
|
2385
|
-
return b4(dat, 4) + 8;
|
|
2386
|
-
}
|
|
2387
|
-
err2(0);
|
|
2388
|
-
};
|
|
2389
|
-
msb = function(val) {
|
|
2390
|
-
var bits2 = 0;
|
|
2391
|
-
for (; 1 << bits2 <= val; ++bits2)
|
|
2392
|
-
;
|
|
2393
|
-
return bits2 - 1;
|
|
2394
|
-
};
|
|
2395
|
-
rfse = function(dat, bt, mal) {
|
|
2396
|
-
var tpos = (bt << 3) + 4;
|
|
2397
|
-
var al = (dat[bt] & 15) + 5;
|
|
2398
|
-
if (al > mal)
|
|
2399
|
-
err2(3);
|
|
2400
|
-
var sz = 1 << al;
|
|
2401
|
-
var probs = sz, sym = -1, re = -1, i = -1, ht = sz;
|
|
2402
|
-
var buf = new ab(512 + (sz << 2));
|
|
2403
|
-
var freq = new i16(buf, 0, 256);
|
|
2404
|
-
var dstate = new u162(buf, 0, 256);
|
|
2405
|
-
var nstate = new u162(buf, 512, sz);
|
|
2406
|
-
var bb1 = 512 + (sz << 1);
|
|
2407
|
-
var syms = new u82(buf, bb1, sz);
|
|
2408
|
-
var nbits = new u82(buf, bb1 + sz);
|
|
2409
|
-
while (sym < 255 && probs > 0) {
|
|
2410
|
-
var bits2 = msb(probs + 1);
|
|
2411
|
-
var cbt = tpos >> 3;
|
|
2412
|
-
var msk = (1 << bits2 + 1) - 1;
|
|
2413
|
-
var val = (dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) >> (tpos & 7) & msk;
|
|
2414
|
-
var msk1fb = (1 << bits2) - 1;
|
|
2415
|
-
var msv = msk - probs - 1;
|
|
2416
|
-
var sval = val & msk1fb;
|
|
2417
|
-
if (sval < msv)
|
|
2418
|
-
tpos += bits2, val = sval;
|
|
2419
|
-
else {
|
|
2420
|
-
tpos += bits2 + 1;
|
|
2421
|
-
if (val > msk1fb)
|
|
2422
|
-
val -= msv;
|
|
2423
|
-
}
|
|
2424
|
-
freq[++sym] = --val;
|
|
2425
|
-
if (val == -1) {
|
|
2426
|
-
probs += val;
|
|
2427
|
-
syms[--ht] = sym;
|
|
2428
|
-
} else
|
|
2429
|
-
probs -= val;
|
|
2430
|
-
if (!val) {
|
|
2431
|
-
do {
|
|
2432
|
-
var rbt = tpos >> 3;
|
|
2433
|
-
re = (dat[rbt] | dat[rbt + 1] << 8) >> (tpos & 7) & 3;
|
|
2434
|
-
tpos += 2;
|
|
2435
|
-
sym += re;
|
|
2436
|
-
} while (re == 3);
|
|
2437
|
-
}
|
|
2438
|
-
}
|
|
2439
|
-
if (sym > 255 || probs)
|
|
2440
|
-
err2(0);
|
|
2441
|
-
var sympos = 0;
|
|
2442
|
-
var sstep = (sz >> 1) + (sz >> 3) + 3;
|
|
2443
|
-
var smask = sz - 1;
|
|
2444
|
-
for (var s = 0; s <= sym; ++s) {
|
|
2445
|
-
var sf = freq[s];
|
|
2446
|
-
if (sf < 1) {
|
|
2447
|
-
dstate[s] = -sf;
|
|
2448
|
-
continue;
|
|
2449
|
-
}
|
|
2450
|
-
for (i = 0; i < sf; ++i) {
|
|
2451
|
-
syms[sympos] = s;
|
|
2452
|
-
do {
|
|
2453
|
-
sympos = sympos + sstep & smask;
|
|
2454
|
-
} while (sympos >= ht);
|
|
2455
|
-
}
|
|
2456
|
-
}
|
|
2457
|
-
if (sympos)
|
|
2458
|
-
err2(0);
|
|
2459
|
-
for (i = 0; i < sz; ++i) {
|
|
2460
|
-
var ns = dstate[syms[i]]++;
|
|
2461
|
-
var nb = nbits[i] = al - msb(ns);
|
|
2462
|
-
nstate[i] = (ns << nb) - sz;
|
|
2463
|
-
}
|
|
2464
|
-
return [tpos + 7 >> 3, {
|
|
2465
|
-
b: al,
|
|
2466
|
-
s: syms,
|
|
2467
|
-
n: nbits,
|
|
2468
|
-
t: nstate
|
|
2469
|
-
}];
|
|
2470
|
-
};
|
|
2471
|
-
rhu = function(dat, bt) {
|
|
2472
|
-
var i = 0, wc = -1;
|
|
2473
|
-
var buf = new u82(292), hb = dat[bt];
|
|
2474
|
-
var hw = buf.subarray(0, 256);
|
|
2475
|
-
var rc = buf.subarray(256, 268);
|
|
2476
|
-
var ri = new u162(buf.buffer, 268);
|
|
2477
|
-
if (hb < 128) {
|
|
2478
|
-
var _a7 = rfse(dat, bt + 1, 6), ebt = _a7[0], fdt2 = _a7[1];
|
|
2479
|
-
bt += hb;
|
|
2480
|
-
var epos = ebt << 3;
|
|
2481
|
-
var lb = dat[bt];
|
|
2482
|
-
if (!lb)
|
|
2483
|
-
err2(0);
|
|
2484
|
-
var st1 = 0, st2 = 0, btr1 = fdt2.b, btr2 = btr1;
|
|
2485
|
-
var fpos = (++bt << 3) - 8 + msb(lb);
|
|
2486
|
-
for (; ; ) {
|
|
2487
|
-
fpos -= btr1;
|
|
2488
|
-
if (fpos < epos)
|
|
2489
|
-
break;
|
|
2490
|
-
var cbt = fpos >> 3;
|
|
2491
|
-
st1 += (dat[cbt] | dat[cbt + 1] << 8) >> (fpos & 7) & (1 << btr1) - 1;
|
|
2492
|
-
hw[++wc] = fdt2.s[st1];
|
|
2493
|
-
fpos -= btr2;
|
|
2494
|
-
if (fpos < epos)
|
|
2495
|
-
break;
|
|
2496
|
-
cbt = fpos >> 3;
|
|
2497
|
-
st2 += (dat[cbt] | dat[cbt + 1] << 8) >> (fpos & 7) & (1 << btr2) - 1;
|
|
2498
|
-
hw[++wc] = fdt2.s[st2];
|
|
2499
|
-
btr1 = fdt2.n[st1];
|
|
2500
|
-
st1 = fdt2.t[st1];
|
|
2501
|
-
btr2 = fdt2.n[st2];
|
|
2502
|
-
st2 = fdt2.t[st2];
|
|
2503
|
-
}
|
|
2504
|
-
if (++wc > 255)
|
|
2505
|
-
err2(0);
|
|
2506
|
-
} else {
|
|
2507
|
-
wc = hb - 127;
|
|
2508
|
-
for (; i < wc; i += 2) {
|
|
2509
|
-
var byte = dat[++bt];
|
|
2510
|
-
hw[i] = byte >> 4;
|
|
2511
|
-
hw[i + 1] = byte & 15;
|
|
2512
|
-
}
|
|
2513
|
-
++bt;
|
|
2514
|
-
}
|
|
2515
|
-
var wes = 0;
|
|
2516
|
-
for (i = 0; i < wc; ++i) {
|
|
2517
|
-
var wt = hw[i];
|
|
2518
|
-
if (wt > 11)
|
|
2519
|
-
err2(0);
|
|
2520
|
-
wes += wt && 1 << wt - 1;
|
|
2521
|
-
}
|
|
2522
|
-
var mb = msb(wes) + 1;
|
|
2523
|
-
var ts = 1 << mb;
|
|
2524
|
-
var rem = ts - wes;
|
|
2525
|
-
if (rem & rem - 1)
|
|
2526
|
-
err2(0);
|
|
2527
|
-
hw[wc++] = msb(rem) + 1;
|
|
2528
|
-
for (i = 0; i < wc; ++i) {
|
|
2529
|
-
var wt = hw[i];
|
|
2530
|
-
++rc[hw[i] = wt && mb + 1 - wt];
|
|
2531
|
-
}
|
|
2532
|
-
var hbuf = new u82(ts << 1);
|
|
2533
|
-
var syms = hbuf.subarray(0, ts), nb = hbuf.subarray(ts);
|
|
2534
|
-
ri[mb] = 0;
|
|
2535
|
-
for (i = mb; i > 0; --i) {
|
|
2536
|
-
var pv = ri[i];
|
|
2537
|
-
fill(nb, i, pv, ri[i - 1] = pv + rc[i] * (1 << mb - i));
|
|
2538
|
-
}
|
|
2539
|
-
if (ri[0] != ts)
|
|
2540
|
-
err2(0);
|
|
2541
|
-
for (i = 0; i < wc; ++i) {
|
|
2542
|
-
var bits2 = hw[i];
|
|
2543
|
-
if (bits2) {
|
|
2544
|
-
var code = ri[bits2];
|
|
2545
|
-
fill(syms, i, code, ri[bits2] = code + (1 << mb - bits2));
|
|
2546
|
-
}
|
|
2547
|
-
}
|
|
2548
|
-
return [bt, {
|
|
2549
|
-
n: nb,
|
|
2550
|
-
b: mb,
|
|
2551
|
-
s: syms
|
|
2552
|
-
}];
|
|
2553
|
-
};
|
|
2554
|
-
dllt = rfse(/* @__PURE__ */ new u82([
|
|
2555
|
-
81,
|
|
2556
|
-
16,
|
|
2557
|
-
99,
|
|
2558
|
-
140,
|
|
2559
|
-
49,
|
|
2560
|
-
198,
|
|
2561
|
-
24,
|
|
2562
|
-
99,
|
|
2563
|
-
12,
|
|
2564
|
-
33,
|
|
2565
|
-
196,
|
|
2566
|
-
24,
|
|
2567
|
-
99,
|
|
2568
|
-
102,
|
|
2569
|
-
102,
|
|
2570
|
-
134,
|
|
2571
|
-
70,
|
|
2572
|
-
146,
|
|
2573
|
-
4
|
|
2574
|
-
]), 0, 6)[1];
|
|
2575
|
-
dmlt = rfse(/* @__PURE__ */ new u82([
|
|
2576
|
-
33,
|
|
2577
|
-
20,
|
|
2578
|
-
196,
|
|
2579
|
-
24,
|
|
2580
|
-
99,
|
|
2581
|
-
140,
|
|
2582
|
-
33,
|
|
2583
|
-
132,
|
|
2584
|
-
16,
|
|
2585
|
-
66,
|
|
2586
|
-
8,
|
|
2587
|
-
33,
|
|
2588
|
-
132,
|
|
2589
|
-
16,
|
|
2590
|
-
66,
|
|
2591
|
-
8,
|
|
2592
|
-
33,
|
|
2593
|
-
68,
|
|
2594
|
-
68,
|
|
2595
|
-
68,
|
|
2596
|
-
68,
|
|
2597
|
-
68,
|
|
2598
|
-
68,
|
|
2599
|
-
68,
|
|
2600
|
-
68,
|
|
2601
|
-
36,
|
|
2602
|
-
9
|
|
2603
|
-
]), 0, 6)[1];
|
|
2604
|
-
doct = rfse(/* @__PURE__ */ new u82([
|
|
2605
|
-
32,
|
|
2606
|
-
132,
|
|
2607
|
-
16,
|
|
2608
|
-
66,
|
|
2609
|
-
102,
|
|
2610
|
-
70,
|
|
2611
|
-
68,
|
|
2612
|
-
68,
|
|
2613
|
-
68,
|
|
2614
|
-
68,
|
|
2615
|
-
36,
|
|
2616
|
-
73,
|
|
2617
|
-
2
|
|
2618
|
-
]), 0, 5)[1];
|
|
2619
|
-
b2bl = function(b, s) {
|
|
2620
|
-
var len = b.length, bl = new i32(len);
|
|
2621
|
-
for (var i = 0; i < len; ++i) {
|
|
2622
|
-
bl[i] = s;
|
|
2623
|
-
s += 1 << b[i];
|
|
2624
|
-
}
|
|
2625
|
-
return bl;
|
|
2626
|
-
};
|
|
2627
|
-
llb = /* @__PURE__ */ new u82((/* @__PURE__ */ new i32([
|
|
2628
|
-
0,
|
|
2629
|
-
0,
|
|
2630
|
-
0,
|
|
2631
|
-
0,
|
|
2632
|
-
16843009,
|
|
2633
|
-
50528770,
|
|
2634
|
-
134678020,
|
|
2635
|
-
202050057,
|
|
2636
|
-
269422093
|
|
2637
|
-
])).buffer, 0, 36);
|
|
2638
|
-
llbl = /* @__PURE__ */ b2bl(llb, 0);
|
|
2639
|
-
mlb = /* @__PURE__ */ new u82((/* @__PURE__ */ new i32([
|
|
2640
|
-
0,
|
|
2641
|
-
0,
|
|
2642
|
-
0,
|
|
2643
|
-
0,
|
|
2644
|
-
0,
|
|
2645
|
-
0,
|
|
2646
|
-
0,
|
|
2647
|
-
0,
|
|
2648
|
-
16843009,
|
|
2649
|
-
50528770,
|
|
2650
|
-
117769220,
|
|
2651
|
-
185207048,
|
|
2652
|
-
252579084,
|
|
2653
|
-
16
|
|
2654
|
-
])).buffer, 0, 53);
|
|
2655
|
-
mlbl = /* @__PURE__ */ b2bl(mlb, 3);
|
|
2656
|
-
dhu = function(dat, out, hu) {
|
|
2657
|
-
var len = dat.length, ss = out.length, lb = dat[len - 1], msk = (1 << hu.b) - 1, eb = -hu.b;
|
|
2658
|
-
if (!lb)
|
|
2659
|
-
err2(0);
|
|
2660
|
-
var st = 0, btr = hu.b, pos = (len << 3) - 8 + msb(lb) - btr, i = -1;
|
|
2661
|
-
for (; pos > eb && i < ss; ) {
|
|
2662
|
-
var cbt = pos >> 3;
|
|
2663
|
-
var val = (dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) >> (pos & 7);
|
|
2664
|
-
st = (st << btr | val) & msk;
|
|
2665
|
-
out[++i] = hu.s[st];
|
|
2666
|
-
pos -= btr = hu.n[st];
|
|
2667
|
-
}
|
|
2668
|
-
if (pos != eb || i + 1 != ss)
|
|
2669
|
-
err2(0);
|
|
2670
|
-
};
|
|
2671
|
-
dhu4 = function(dat, out, hu) {
|
|
2672
|
-
var bt = 6;
|
|
2673
|
-
var ss = out.length, sz1 = ss + 3 >> 2, sz2 = sz1 << 1, sz3 = sz1 + sz2;
|
|
2674
|
-
dhu(dat.subarray(bt, bt += dat[0] | dat[1] << 8), out.subarray(0, sz1), hu);
|
|
2675
|
-
dhu(dat.subarray(bt, bt += dat[2] | dat[3] << 8), out.subarray(sz1, sz2), hu);
|
|
2676
|
-
dhu(dat.subarray(bt, bt += dat[4] | dat[5] << 8), out.subarray(sz2, sz3), hu);
|
|
2677
|
-
dhu(dat.subarray(bt), out.subarray(sz3), hu);
|
|
2678
|
-
};
|
|
2679
|
-
rzb = function(dat, st, out) {
|
|
2680
|
-
var _a7;
|
|
2681
|
-
var bt = st.b;
|
|
2682
|
-
var b0 = dat[bt], btype = b0 >> 1 & 3;
|
|
2683
|
-
st.l = b0 & 1;
|
|
2684
|
-
var sz = b0 >> 3 | dat[bt + 1] << 5 | dat[bt + 2] << 13;
|
|
2685
|
-
var ebt = (bt += 3) + sz;
|
|
2686
|
-
if (btype == 1) {
|
|
2687
|
-
if (bt >= dat.length)
|
|
2688
|
-
return;
|
|
2689
|
-
st.b = bt + 1;
|
|
2690
|
-
if (out) {
|
|
2691
|
-
fill(out, dat[bt], st.y, st.y += sz);
|
|
2692
|
-
return out;
|
|
2693
|
-
}
|
|
2694
|
-
return fill(new u82(sz), dat[bt]);
|
|
2695
|
-
}
|
|
2696
|
-
if (ebt > dat.length)
|
|
2697
|
-
return;
|
|
2698
|
-
if (btype == 0) {
|
|
2699
|
-
st.b = ebt;
|
|
2700
|
-
if (out) {
|
|
2701
|
-
out.set(dat.subarray(bt, ebt), st.y);
|
|
2702
|
-
st.y += sz;
|
|
2703
|
-
return out;
|
|
2704
|
-
}
|
|
2705
|
-
return slc2(dat, bt, ebt);
|
|
2706
|
-
}
|
|
2707
|
-
if (btype == 2) {
|
|
2708
|
-
var b3 = dat[bt], lbt = b3 & 3, sf = b3 >> 2 & 3;
|
|
2709
|
-
var lss = b3 >> 4, lcs = 0, s4 = 0;
|
|
2710
|
-
if (lbt < 2) {
|
|
2711
|
-
if (sf & 1)
|
|
2712
|
-
lss |= dat[++bt] << 4 | (sf & 2 && dat[++bt] << 12);
|
|
2713
|
-
else
|
|
2714
|
-
lss = b3 >> 3;
|
|
2715
|
-
} else {
|
|
2716
|
-
s4 = sf;
|
|
2717
|
-
if (sf < 2)
|
|
2718
|
-
lss |= (dat[++bt] & 63) << 4, lcs = dat[bt] >> 6 | dat[++bt] << 2;
|
|
2719
|
-
else if (sf == 2)
|
|
2720
|
-
lss |= dat[++bt] << 4 | (dat[++bt] & 3) << 12, lcs = dat[bt] >> 2 | dat[++bt] << 6;
|
|
2721
|
-
else
|
|
2722
|
-
lss |= dat[++bt] << 4 | (dat[++bt] & 63) << 12, lcs = dat[bt] >> 6 | dat[++bt] << 2 | dat[++bt] << 10;
|
|
2723
|
-
}
|
|
2724
|
-
++bt;
|
|
2725
|
-
var buf = out ? out.subarray(st.y, st.y + st.m) : new u82(st.m);
|
|
2726
|
-
var spl = buf.length - lss;
|
|
2727
|
-
if (lbt == 0)
|
|
2728
|
-
buf.set(dat.subarray(bt, bt += lss), spl);
|
|
2729
|
-
else if (lbt == 1)
|
|
2730
|
-
fill(buf, dat[bt++], spl);
|
|
2731
|
-
else {
|
|
2732
|
-
var hu = st.h;
|
|
2733
|
-
if (lbt == 2) {
|
|
2734
|
-
var hud = rhu(dat, bt);
|
|
2735
|
-
lcs += bt - (bt = hud[0]);
|
|
2736
|
-
st.h = hu = hud[1];
|
|
2737
|
-
} else if (!hu)
|
|
2738
|
-
err2(0);
|
|
2739
|
-
(s4 ? dhu4 : dhu)(dat.subarray(bt, bt += lcs), buf.subarray(spl), hu);
|
|
2740
|
-
}
|
|
2741
|
-
var ns = dat[bt++];
|
|
2742
|
-
if (ns) {
|
|
2743
|
-
if (ns == 255)
|
|
2744
|
-
ns = (dat[bt++] | dat[bt++] << 8) + 32512;
|
|
2745
|
-
else if (ns > 127)
|
|
2746
|
-
ns = ns - 128 << 8 | dat[bt++];
|
|
2747
|
-
var scm = dat[bt++];
|
|
2748
|
-
if (scm & 3)
|
|
2749
|
-
err2(0);
|
|
2750
|
-
var dts = [dmlt, doct, dllt];
|
|
2751
|
-
for (var i = 2; i > -1; --i) {
|
|
2752
|
-
var md = scm >> (i << 1) + 2 & 3;
|
|
2753
|
-
if (md == 1) {
|
|
2754
|
-
var rbuf = new u82([0, 0, dat[bt++]]);
|
|
2755
|
-
dts[i] = {
|
|
2756
|
-
s: rbuf.subarray(2, 3),
|
|
2757
|
-
n: rbuf.subarray(0, 1),
|
|
2758
|
-
t: new u162(rbuf.buffer, 0, 1),
|
|
2759
|
-
b: 0
|
|
2760
|
-
};
|
|
2761
|
-
} else if (md == 2) {
|
|
2762
|
-
_a7 = rfse(dat, bt, 9 - (i & 1)), bt = _a7[0], dts[i] = _a7[1];
|
|
2763
|
-
} else if (md == 3) {
|
|
2764
|
-
if (!st.t)
|
|
2765
|
-
err2(0);
|
|
2766
|
-
dts[i] = st.t[i];
|
|
2767
|
-
}
|
|
2768
|
-
}
|
|
2769
|
-
var _b2 = st.t = dts, mlt = _b2[0], oct = _b2[1], llt = _b2[2];
|
|
2770
|
-
var lb = dat[ebt - 1];
|
|
2771
|
-
if (!lb)
|
|
2772
|
-
err2(0);
|
|
2773
|
-
var spos = (ebt << 3) - 8 + msb(lb) - llt.b, cbt = spos >> 3, oubt = 0;
|
|
2774
|
-
var lst = (dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << llt.b) - 1;
|
|
2775
|
-
cbt = (spos -= oct.b) >> 3;
|
|
2776
|
-
var ost = (dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << oct.b) - 1;
|
|
2777
|
-
cbt = (spos -= mlt.b) >> 3;
|
|
2778
|
-
var mst = (dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << mlt.b) - 1;
|
|
2779
|
-
for (++ns; --ns; ) {
|
|
2780
|
-
var llc = llt.s[lst];
|
|
2781
|
-
var lbtr = llt.n[lst];
|
|
2782
|
-
var mlc = mlt.s[mst];
|
|
2783
|
-
var mbtr = mlt.n[mst];
|
|
2784
|
-
var ofc = oct.s[ost];
|
|
2785
|
-
var obtr = oct.n[ost];
|
|
2786
|
-
cbt = (spos -= ofc) >> 3;
|
|
2787
|
-
var ofp = 1 << ofc;
|
|
2788
|
-
var off = ofp + ((dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16 | dat[cbt + 3] << 24) >>> (spos & 7) & ofp - 1);
|
|
2789
|
-
cbt = (spos -= mlb[mlc]) >> 3;
|
|
2790
|
-
var ml = mlbl[mlc] + ((dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) >> (spos & 7) & (1 << mlb[mlc]) - 1);
|
|
2791
|
-
cbt = (spos -= llb[llc]) >> 3;
|
|
2792
|
-
var ll = llbl[llc] + ((dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) >> (spos & 7) & (1 << llb[llc]) - 1);
|
|
2793
|
-
cbt = (spos -= lbtr) >> 3;
|
|
2794
|
-
lst = llt.t[lst] + ((dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << lbtr) - 1);
|
|
2795
|
-
cbt = (spos -= mbtr) >> 3;
|
|
2796
|
-
mst = mlt.t[mst] + ((dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << mbtr) - 1);
|
|
2797
|
-
cbt = (spos -= obtr) >> 3;
|
|
2798
|
-
ost = oct.t[ost] + ((dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << obtr) - 1);
|
|
2799
|
-
if (off > 3) {
|
|
2800
|
-
st.o[2] = st.o[1];
|
|
2801
|
-
st.o[1] = st.o[0];
|
|
2802
|
-
st.o[0] = off -= 3;
|
|
2803
|
-
} else {
|
|
2804
|
-
var idx = off - (ll != 0);
|
|
2805
|
-
if (idx) {
|
|
2806
|
-
off = idx == 3 ? st.o[0] - 1 : st.o[idx];
|
|
2807
|
-
if (idx > 1)
|
|
2808
|
-
st.o[2] = st.o[1];
|
|
2809
|
-
st.o[1] = st.o[0];
|
|
2810
|
-
st.o[0] = off;
|
|
2811
|
-
} else
|
|
2812
|
-
off = st.o[0];
|
|
2813
|
-
}
|
|
2814
|
-
for (var i = 0; i < ll; ++i) {
|
|
2815
|
-
buf[oubt + i] = buf[spl + i];
|
|
2816
|
-
}
|
|
2817
|
-
oubt += ll, spl += ll;
|
|
2818
|
-
var stin = oubt - off;
|
|
2819
|
-
if (stin < 0) {
|
|
2820
|
-
var len = -stin;
|
|
2821
|
-
var bs = st.e + stin;
|
|
2822
|
-
if (len > ml)
|
|
2823
|
-
len = ml;
|
|
2824
|
-
for (var i = 0; i < len; ++i) {
|
|
2825
|
-
buf[oubt + i] = st.w[bs + i];
|
|
2826
|
-
}
|
|
2827
|
-
oubt += len, ml -= len, stin = 0;
|
|
2828
|
-
}
|
|
2829
|
-
for (var i = 0; i < ml; ++i) {
|
|
2830
|
-
buf[oubt + i] = buf[stin + i];
|
|
2831
|
-
}
|
|
2832
|
-
oubt += ml;
|
|
2833
|
-
}
|
|
2834
|
-
if (oubt != spl) {
|
|
2835
|
-
while (spl < buf.length) {
|
|
2836
|
-
buf[oubt++] = buf[spl++];
|
|
2837
|
-
}
|
|
2838
|
-
} else
|
|
2839
|
-
oubt = buf.length;
|
|
2840
|
-
if (out)
|
|
2841
|
-
st.y += oubt;
|
|
2842
|
-
else
|
|
2843
|
-
buf = slc2(buf, 0, oubt);
|
|
2844
|
-
} else if (out) {
|
|
2845
|
-
st.y += lss;
|
|
2846
|
-
if (spl) {
|
|
2847
|
-
for (var i = 0; i < lss; ++i) {
|
|
2848
|
-
buf[i] = buf[spl + i];
|
|
2849
|
-
}
|
|
2850
|
-
}
|
|
2851
|
-
} else if (spl)
|
|
2852
|
-
buf = slc2(buf, spl);
|
|
2853
|
-
st.b = ebt;
|
|
2854
|
-
return buf;
|
|
2855
|
-
}
|
|
2856
|
-
err2(2);
|
|
2857
|
-
};
|
|
2858
|
-
cct = function(bufs, ol) {
|
|
2859
|
-
if (bufs.length == 1)
|
|
2860
|
-
return bufs[0];
|
|
2861
|
-
var buf = new u82(ol);
|
|
2862
|
-
for (var i = 0, b = 0; i < bufs.length; ++i) {
|
|
2863
|
-
var chk = bufs[i];
|
|
2864
|
-
buf.set(chk, b);
|
|
2865
|
-
b += chk.length;
|
|
2866
|
-
}
|
|
2867
|
-
return buf;
|
|
2868
|
-
};
|
|
2869
|
-
}
|
|
2870
|
-
});
|
|
2871
|
-
|
|
2872
|
-
// ../compression/src/zstd-decompressor-fzstd.ts
|
|
2873
|
-
var ZstdFzstdDecompressor;
|
|
2874
|
-
var init_zstd_decompressor_fzstd = __esm({
|
|
2875
|
-
"../compression/src/zstd-decompressor-fzstd.ts"() {
|
|
2876
|
-
"use strict";
|
|
2877
|
-
init_compression();
|
|
2878
|
-
init_esm();
|
|
2879
|
-
ZstdFzstdDecompressor = class extends Decompressor {
|
|
2880
|
-
name = "zstd";
|
|
2881
|
-
extensions = ["zst"];
|
|
2882
|
-
contentEncodings = ["zstd"];
|
|
2883
|
-
isSupported = true;
|
|
2884
|
-
constructor(options = {}) {
|
|
2885
|
-
super(options);
|
|
2886
|
-
}
|
|
2887
|
-
/** Decompresses one Zstandard frame synchronously. */
|
|
2888
|
-
decompressSync(input2) {
|
|
2889
|
-
return decompress(new Uint8Array(input2)).slice().buffer;
|
|
2890
|
-
}
|
|
2891
|
-
};
|
|
2323
|
+
// compress-utils-wasm:/home/runner/work/loaders.gl/loaders.gl/node_modules/compress-utils/dist/algorithms/zstd/decompress/zstd.wasm
|
|
2324
|
+
var zstd_default;
|
|
2325
|
+
var init_zstd = __esm({
|
|
2326
|
+
"compress-utils-wasm:/home/runner/work/loaders.gl/loaders.gl/node_modules/compress-utils/dist/algorithms/zstd/decompress/zstd.wasm"() {
|
|
2327
|
+
zstd_default = "data:application/wasm;base64,AGFzbQEAAAABtgEXYAJ/fwBgA39/fwF/YAV/f39/fwF/YAF/AGABfwF/YAR/f39/AX9gAn9/AX9gA39/fwBgB39/f39/f38AYAV/fn5+fgBgBH5+fn4Bf2AEf35+fwBgAAF/YAZ/f39/f38Bf2AAAGAEf35+fgBgBX9/f39/AGABfwF+YAd/f39/f39/AX9gDn9/f39/f39/f39/f39/AX9gCH9/f39/f39/AX9gCX9/f39/f39/fwF/YAR/f39/AANBQA4PCQkKCgsLBAYEBgMMBAABAgwEAwIFBQEGBAIBAwcHEAUNAwQBAgEDBAMDDQcRBQIIAgUSCAICAgEHEwgUFRYEBQFwAQgIBQQBAIECBgkBfwFBgICACAsHsgIPBm1lbW9yeQIAC19pbml0aWFsaXplAAAKY3VfdmVyc2lvbgANFmN1X2FsZ29yaXRobV9hdmFpbGFibGUADg1jdV9sYXN0X2Vycm9yABILY3Vfc3RyZXJyb3IAExxjdV9zZXRfbWF4X2RlY29tcHJlc3NlZF9zaXplABQNY3VfZGVjb21wcmVzcwAVF2N1X2RlY29tcHJlc3Nfc2l6ZV9oaW50ABcbY3VfZGVjb21wcmVzc19zdHJlYW1fY3JlYXRlABkaY3VfZGVjb21wcmVzc19zdHJlYW1fd3JpdGUAGxtjdV9kZWNvbXByZXNzX3N0cmVhbV9maW5pc2gAHBxjdV9kZWNvbXByZXNzX3N0cmVhbV9kZXN0cm95AB0IY3VfYWxsb2MAKQdjdV9mcmVlACoJDQEAQQELBxAWGBomJygMAR4K65UFQBgAQfC8gAgoAgAEQAALQfC8gAhBATYCAAutCgIFfxB+IwBB4ABrIgQkACADQv///////z+DIQwgAiADhUKAgICAgICAgIB/gyELIAJC////////P4MiDUIgiCEPAkACQCACQjCIp0H//wFxIgZB//8Ba0GCgH5PIANCMIinQf//AXEiB0H//wFrQYKAfk9xDQAgAVAgAkL///////////8AgyIJQoCAgICAgMD//wBUIAlCgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhCwwCCyADQv///////////wCDIgJCgICAgICAwP//AFQgAkKAgICAgIDA//8AUXJFBEAgA0KAgICAgIAghCELQgAhAQwCCyABIAlCgICAgICAwP//AIWEUARAIAJQBEBCgICAgICA4P//ACELQgAhAQwDCyALQoCAgICAgMD//wCEIQtCACEBDAILIAJCgICAgICAwP//AIVQRQRAIAEgCYRQBEBCACEBDAMLIAJQBEBCACEBDAMLIAlCgICAgICAwABUBEAgBEHQAGogASANIA15IAF5QkB9IA1CAFIbp0EPa0H/AXEiBRAHQQEgBWshBSAEKQNYIg1CIIghDyAEKQNQIQELIAJCgICAgICAwABaDQEgBEFAa0IAIAwgDHlCgAEgDEIAUhunQQ9rQf8BcSIIEAcgBSAIa0EBaiEFIAQpA0ghDCAEKQNAIQoMAQsgASAJhEIAIQFQBEBCgICAgICA4P//ACELDAILIAtCgICAgICAwP//AIQhCwwBCyAKQg+GIglCgID+/w+DIgIgAUIgiCIDfiIRIAlCIIgiDiABQv////8PgyIBfnwiEEIghiISIAEgAn58IgkgElStIA1C/////w+DIg0gAn4iFSADIA5+fCISIAxCD4YiEyAKQjGIhEL/////D4MiCiABfnwiFCAQIBFUrUIghiAQQiCIhHwiECACIA9CgIAEhCIMfiIWIA0gDn58Ig8gE0IgiEKAgICACIQiAiABfnwiESADIAp+fCITQiCGfCIXfCEBIAYgB2ogBWpB//8AayEFAkAgAiADfiIYIAwgDn58IgMgGFStIAMgAyAKIA1+fCIOVq18IAIgDH58IAogDH4iAyACIA1+fCICIANUrUIghiACQiCIhHwgDiACQiCGfCICIA5UrXwgAiACIBIgFVStIBIgFFatfHwiA1atfCADIAMgESATVq0gDyAWVK0gDyARVq18fEIghiATQiCIhHwiClatfCAKIAogECAUVK0gECAXVq18fCICVq18IgNCgICAgICAwACDUEUEQCAFQQFqIQUMAQsgCUI/iCADQgGGIAJCP4iEIQMgAkIBhiABQj+IhCECIAlCAYYhCSABQgGGhCEBCyAFQf7/AUoEQCALQoCAgICAgMD//wCEIQtCACEBDAELAkAgBUEASgRAIANC////////P4MgBa1CMIaEIQoMAQtBASAFayIGQf8ATQRAIARBMGogAiADIAVBAWtB/wBxIgUQByAEQRBqIAkgASAGEAYgBEEgaiACIAMgBhAGIAQgCSABIAUQByAEKQMAIAQpAwiEQgBSrSAEKQMwIAQpAxCEhCEJIAQpAzggBCkDGIQhASAEKQMoIQogBCkDICECDAELQgAhAQwBCyAKIAIgAiAJQgBSIAFCgICAgICAgICAf1YgAUKAgICAgICAgIB/URutfCIDVq18IAMgAyAJIAFCgICAgICAgICAf4WEUK2DIgJ8IgEgAlStfCALhCELCyAAIAE3AwAgACALNwMIIARB4ABqJAALowkCBH8EfiMAQeAAayIFJAAgBEKAgICAgICAgIB/hSEKIARC////////////AIMhBAJAAkAgAVAiBiACQv///////////wCDIglCgICAgICAwP//AH1CgICAgICAwICAf1QgCVAbRQRAIANQIARCgICAgICAwP//AH0iC0KAgICAgIDAgIB/VCALQoCAgICAgMCAgH9RG0UNAQsgBiAJQoCAgICAgMD//wBUIAlCgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhAgwCCyADUCAEQoCAgICAgMD//wBUIARCgICAgICAwP//AFEbRQRAIApCgICAgICAIIQhAiADIQEMAgsgASAJQoCAgICAgMD//wCFhFAEQEKAgICAgIDg//8AIAIgASADhSACIAqFQoCAgICAgICAgH+FhFAiBhshAkIAIAEgBhshAQwCCwJAIAMgBEKAgICAgIDA//8AhYRQDQAgASAJhFAEQCADIASEUEUNASABIAODIQEgAiAKgyECDAMLIAMgBIRQRQ0BDAILIAMhASAKIQIMAQsgAyABIAEgA1QgBCAJViAEIAlRGyIIGyEJIAogAiAIGyIMQv///////z+DIQQgAiAKIAgbIgtCMIinQf//AXEhByAMQjCIp0H//wFxIgZFBEAgBUHQAGogCSAEIAR5IAl5QkB9IARCAFIbp0EPa0H/AXEiBhAHQQEgBmshBiAFKQNQIQkgBSkDWCEECyABIAMgCBshASALQv///////z+DIQMgB0UEQCAFQUBrIAEgAyADeSABeUJAfSADQgBSG6dBD2tB/wFxIgcQB0EBIAdrIQcgBSkDSCEDIAUpA0AhAQsgA0IDhiABQj2IhEKAgICAgICABIQhAyAEQgOGIAlCPYiEIAFCA4YhBCACIAqFIQECQCAGIAdGDQAgBiAHayIHQf8ASwRAQgAhA0IBIQQMAQsgBUEwaiAEIANBACAHa0H/AHEQByAFQSBqIAQgAyAHEAYgBSkDICAFKQMwIAUpAziEQgBSrYQhBCAFKQMoIQMLQoCAgICAgIAEhCELIAlCA4YhCiAMQoCAgICAgICAgH+DIQkCQAJAAkAgAUIAUwRAQgAhAUIAIQIgBCAKhSADIAuFhFBFDQEMBAsgBCAKfCIBIARUrSADIAt8fCICQoCAgICAgIAIg1ANASAEQgGDIAJCP4YgAUIBiISEIQEgBkEBaiEGIAJCAYghAgwBCyAKIAR9IQEgCyADfSAEIApWrX0iAkL/////////A1YNACAFQRBqIAEgAiACeSABeUJAfSACQgBSG6dBDGsiBxAHIAYgB2shBiAFKQMYIQIgBSkDECEBDAELIAZB/v8BTA0AIAlCgICAgICAwP//AIQhAkIAIQEMAQsgBkEATARAIAUgASACQQQgBmsQBiAFKQMIIAmEIQIgBSkDACEBDAELIAJCPYYgAUIDiIQiAyABQgeDIgRCBFatfCIBIANUrSACQgOIQv///////z+DIAatQjCGhCAJhHwgASAEQgRRrYMiAiABfCIBIAJUrXwhAgsgACABNwMAIAAgAjcDCCAFQeAAaiQAC4wJAgR+BH8jAEHgAGsiCSQAIARC////////////AIMhBQJAAkAgAVAiCiACQv///////////wCDIgZCgICAgICAwP//AH1CgICAgICAwICAf1QgBlAbRQRAIANQIAVCgICAgICAwP//AH0iB0KAgICAgIDAgIB/VCAHQoCAgICAgMCAgH9RG0UNAQsgCiAGQoCAgICAgMD//wBUIAZCgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhBCABIQMMAgsgA1AgBUKAgICAgIDA//8AVCAFQoCAgICAgMD//wBRG0UEQCAEQoCAgICAgCCEIQQMAgsgASAGQoCAgICAgMD//wCFhFAEQEKAgICAgIDg//8AIAIgASADhSACIASFQoCAgICAgICAgH+FhFAiChshBEIAIAEgChshAwwCCyADIAVCgICAgICAwP//AIWEUA0BIAEgBoRQBEAgAyAFhFBFDQIgASADgyEDIAIgBIMhBAwCCyADIAWEUEUNACABIQMgAiEEDAELIAMgASABIANUIAUgBlYgBSAGURsiDBshBiAEIAIgDBsiCEL///////8/gyEFIAIgBCAMGyIHQjCIp0H//wFxIQsgCEIwiKdB//8BcSIKRQRAIAlB0ABqIAYgBSAFeSAGeUJAfSAFQgBSG6dBD2tB/wFxIgoQB0EBIAprIQogCSkDUCEGIAkpA1ghBQsgASADIAwbIQMgB0L///////8/gyEBIAsEfiABBSAJQUBrIAMgASABeSADeUJAfSABQgBSG6dBD2tB/wFxIgsQB0EBIAtrIQsgCSkDQCEDIAkpA0gLQgOGIANCPYiEQoCAgICAgIAEhCEBIAVCA4YgBkI9iIQgA0IDhiEFIAIgBIUhAwJAIAogC0YNACAKIAtrIgtB/wBLBEBCACEBQgEhBQwBCyAJQTBqIAUgAUEAIAtrQf8AcRAHIAlBIGogBSABIAsQBiAJKQMgIAkpAzAgCSkDOIRCAFKthCEFIAkpAyghAQtCgICAgICAgASEIQcgBkIDhiECIAhCgICAgICAgICAf4MhBgJAAkACQCADQgBTBEBCACEDQgAhBCACIAWFIAEgB4WEUEUNAQwECyACIAV8IgMgBVStIAEgB3x8IgRCgICAgICAgAiDUA0BIAVCAYMgBEI/hiADQgGIhIQhAyAKQQFqIQogBEIBiCEEDAELIAIgBX0hAyAHIAF9IAIgBVStfSIEQv////////8DVg0AIAlBEGogAyAEIAR5IAN5QkB9IARCAFIbp0EMayILEAcgCiALayEKIAkpAxghBCAJKQMQIQMMAQsgCkH+/wFMDQAgBkKAgICAgIDA//8AhCEEQgAhAwwBCyAKQQBMBEAgCSADIARBBCAKaxAGIAkpAwggBoQhBCAJKQMAIQMMAQsgBEI9hiADQgOIhCICIANCB4MiA0IEVq18IgEgAlStIARCA4hC////////P4MgCq1CMIaEIAaEfCABIAEgA0IEUa2DIgF8IgMgAVStfCEECyAAIAM3AwAgACAENwMIIAlB4ABqJAAL4AECAX8CfkEBIQQCQCAAQgBSIAFC////////////AIMiBUKAgICAgIDA//8AViAFQoCAgICAgMD//wBRGw0AIAJQIANC////////////AIMiBkKAgICAgIDA//8AVCAGQoCAgICAgMD//wBRG0UNACAAIAKEIAUgBoSEUARAQQAPCwJAAkAgASADg0IAWQRAIAAgAlQgASADUyABIANRG0UNAUF/DwsgACACViABIANVIAEgA1EbRQ0BQX8PCyAAIAKFIAEgA4WEQgBSDwsgACAChSABIAOFhEIAUiEECyAEC2MAIABCAFIgAUL///////////8AgyIAQoCAgICAgMD//wBWIABCgICAgICAwP//AFEbIAJCAFIgA0L///////////8AgyIAQoCAgICAgMD//wBWIABCgICAgICAwP//AFEbcgtRAQF+AkAgA0E/SgRAIAIgA0E/ca2IIQFCACECDAELIANFDQAgAkEAIANrQT9xrYYgASADrSIEiIQhASACIASIIQILIAAgATcDACAAIAI3AwgLUQEBfgJAIANBP0oEQCABIANBP3GthiECQgAhAQwBCyADRQ0AIAIgA60iBIYgAUEAIANrQT9xrYiEIQIgASAEhiEBCyAAIAE3AwAgACACNwMICzIBAX8gAEEQakEEEAkiAQRAIAEgAK1CBYZCBIQ3AwggAUEQag8LQbzAgAhBMDYCAEEAC+sCAQN/IwBBEGsiBCQAIAQgAUEfcToADwJAQX8gAEEEaiICIAAgAksbIgBBASABdCIBIAAgAUsbIgBBAWtnIgFFBEBBACEBDAELQSAgAWsiAUH//wNxQQNrIgNBDU8EQEIBQSAgAEGDgARqQRB2QQFrZ2siAa2GpyEAIAFB//8DcUECdCICKALcvYAIIgEEQCACQdy9gAhqIABBEHQgAWpBBGsoAgA2AgAMAgtBACAAQAAiAEEQdCAAQX9GGyEBDAELQgEgAa2GpyECIANBAnQiACgCqL2ACCIBBEAgAEGovYAIaiABIAJqQQRrKAIANgIADAELIABB9LyACGohAyAAKAL0vIAIIgFB//8DcUUEQEEAIQEgAyACAn9B3L2ACCgCACIABEBB3L2ACCAAKAL8/wM2AgAgAAwBC0EBQAAiAEEBakECSQ0CIABBEHQLIgFqNgIADAELIAMgASACajYCAAsgBEEQaiQAIAELlgECA38BfiMAQRBrIgIkACACIACtIgRCIIinIgBBAEc6AAwCQAJAIABFBEAgBKciAUEQakEEEAkiAA0BQbzAgAhBMDYCAAwCC0G8wIAIQTA2AgAMAQsgACABrUIFhkIEhDcDCCAAQRBqIQMgAUUNAEEAIQADQCAAIANqQQA6AAAgAEEBaiIAIAFJDQALCyACQRBqJAAgAwuHBgIKfwF+IwBBEGsiBSQAAkAgAUUEQCAABEAgBSAAQQhrKQMAIgynIgFBH3EiAjoADCAFIAI6AA0gAEEBIAF0IgFrIQBBICAMQgWIpyABakEEaiICIAEgASACSRsiAUEBa2drIgJB//8DcUEDayIDQQxNBEAgAEIBIAKshqdqQQRrIANBAnQiASgCqL2ACDYCACABIAA2Aqi9gAhBACECDAMLIABCAUEgIAFBg4AEakEQdkEBa2drIgGthqdBEHRqQQRrIAFB//8DcUECdCIBKALcvYAINgIAIAEgADYC3L2ACAtBACECDAELIABFBEAgAUEQakEEEAkiAARAIAAgAa1CBYZCBIQ3AwggAEEQaiECDAILQbzAgAhBMDYCAAwBCyAFIABBCGspAwAiDKciBkEfcSICOgALIAUgAjoADkF/QQEgBnQiAiABaiIEQQRqIgMgAyAESRsiAyACIAIgA0kbIQcgACACayEDAkACQAJAIAxCBYinIgkgAmpBBGoiCCACIAIgCEkbIgpBAWtnIgtBEWtBDE0EQCAHQQFrZyIHRUIBQSAgC2uthqdCAUEgIAdrrYanR3INAQwCC0IBQSAgCkGDgARqQRB2QQFrZ2uthqdCAUEgIAdBg4AEakEQdkEBa2drrYanRg0BCyAEIAYQCSIEBEAgAiAEaiECIAEgCSABIAlJGyIHBEBBACEEA0AgAiAEaiAAIARqLQAAOgAAIARBAWoiBCAHSQ0ACwsgBSAGQR9xOgAPQSAgCEEBIAZ0IgAgACAISRsiAEEBa2drIgZB//8DcUEDayIEQQxNBEAgA0IBIAashqdqQQRrIARBAnQiACgCqL2ACDYCACAAIAM2Aqi9gAgMAwsgA0IBQSAgAEGDgARqQRB2QQFrZ2siAK2Gp0EQdGpBBGsgAEH//wNxQQJ0IgAoAty9gAg2AgAgACADNgLcvYAIDAILQQAhAkG8wIAIQTA2AgAMAgsgAiADaiECCyACQQhrIAxCH4MgAa1CBYaENwMACyAFQRBqJAAgAgviAQIEfwF+IwBBEGsiAyQAAkAgAEUNACADIABBCGspAwAiBaciAUEfcSICOgAOIAMgAjoADyAAQQEgAXQiAWshAEEgIAVCBYinIAFqQQRqIgIgASABIAJJGyIBQQFrZ2siAkH//wNxQQNrIgRBDE0EQCAAQgEgAqyGp2pBBGsgBEECdCIBKAKovYAINgIAIAEgADYCqL2ACAwBCyAAQgFBICABQYOABGpBEHZBAWtnayIBrYanQRB0akEEayABQf//A3FBAnQiASgC3L2ACDYCACABIAA2Aty9gAgLIANBEGokAAsHAEHkkYAICwUAIABFC/cCAQJ/IwBBsANrIgIkACACIAE2AgwgAkH/ATYCiAEgAkGgvoAINgKEASACQRBqQQBB8AD8CwAgAkEBNgIwQaC+gAhBADoAACACIAJBhAFqNgJUIAIgAkGPAWo2AjggAkF/NgJQIAIgATYCrAMgAkGgA2pCADcDACACQZgDakIANwMAIAJBkANqQgA3AwAgAkIANwOIAyACQgA3A4ADIAIgATYCqAMCQAJAQQAgACACQagDaiACQeABaiACQYADahARQQBIDQAgAkIANwMQIAJBfzYCTCACQQA2AhggAkHQADYCPCACIAJB4AFqIgM2AiAgAiACQZABaiIBNgI4IAIgATYCKCACIAE2AiQgAkEQaiIBIAAgAkGoA2ogAyACQYADahARIAFBAEEAIAIoAjARAQAaIAJBADYCPCACQQA2AiggAigCECACIAJBjwFqNgI4QSBxDQAgAigCJEUNAEEATg0BC0GgvoAIQQA6AAALIAJBsANqJAALtAEBBX8gACgCRCIDKAIAIQYgAygCBCIEIAAoAhQgACgCGCIHayIFIAQgBUkbIgUEQCAFBEAgBiAHIAX8CgAACyADIAMoAgAgBWoiBjYCACADIAMoAgQgBWsiBDYCBAsgBCACIAIgBEsbIgQEQCAEBEAgBiABIAT8CgAACyADIAMoAgAgBGoiBjYCACADIAMoAgQgBGs2AgQLIAZBADoAACAAIAAoAigiATYCGCAAIAE2AhQgAgutVAIgfwR+IwBBwMEAayIGJAAgBkHsBWohISAGQZkFaiEiIAZBlwVqISMgBkG/BWohHyAGQcAFaiIYQQhyISAgGEEJciEcIAZBvgVqISQgBkGYBWohFgJAAkADQEEAIQUDQAJAIAEhByAFIBNB/////wdzSg0AIAUgE2ohEwJAAkACQAJAAkACQAJAIActAAAiBQRAA0ACQAJAIAVB/wFxIgUEQCAFQSVHDQIgASEFA0AgAUEBai0AAEElRw0CIAVBAWohBSABQQJqIgEtAABBJUYNAAsMAQsgASEFCyAFIAdrIgUgE0H/////B3MiFEoN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A+gCQoCAgICAgMCBwAAQASAGQcACaiAGKQPQAiAGKQPYAkKAgICAgIDAgcAAEAEgBkGwAmogBikDwAIgBikDyAJCgICAgICAwIHAABABIAZBoAJqIAYpA7ACIAYpA7gCQoCAgICAgMCBwAAQASAGQZACaiAGKQOgAiAGKQOoAkKAgICAgIDAgcAAEAEgBkGAAmogBikDkAIgBikDmAJCgICAgICAwIHAABABIAZB8AFqIAYpA4ACIAYpA4gCQoCAgICAgMCBwAAQASAGQeABaiAGKQPwASAGKQP4AUKAgICAgIDAgcAAEAEgBkHQAWogBikD4AEgBikD6AFCgICAgICAwIHAABABIAZBwAFqIAYpA9ABIAYpA9gBQoCAgICAgMCBwAAQASAGQbABaiAGKQPAASAGKQPIAUKAgICAgIDAgcAAEAEgBkGgAWogBikDsAEgBikDuAFCgICAgICAwIHAABABIAZBkAFqIAYpA6ABIAYpA6gBQoCAgICAgMCBwAAQASAGQYABaiAGKQOQASAGKQOYAUKAgICAgIDAgcAAEAEgBkHwAGogBikDgAEgBikDiAFCgICAgICAwIHAABABIAYpA3ghJyAGKQNwISggBUEQayIFDQALCyAILQAAQS1GBEAgBkFAayAlICZCgICAgICAgICAf4UgKCAnEAIgBkEwaiAoICcgBikDQCAGKQNIEAMgBikDOEKAgICAgICAgIB/hSEmIAYpAzAhJQwBCyAGQeAAaiAlICYgKCAnEAMgBkHQAGogBikDYCAGKQNoICggJxACIAYpA1ghJiAGKQNQISULAkAgBigC7AUiCwRAIAsgC0EfdSIFcyAFayEFIBghBwNAIAdBAWsiByAFQQpuIglB9gFsIAVqQTByOgAAIAVBCkkgCSEFRQ0ACwwBCyAGQTA6AL8FIB8hBwsgF0ECciEMIBJBIHEhDSAHQQJrIg8gEkEPajoAACAHQQFrQS1BKyALQQBIGzoAACAQQQhxRSAKQQBMcSELIAZBwAVqIQcDQCAHIgUjAEEQayIHJAACf0EAICZCMIinIglB//8BcSIRQf7/AE0NABogJkI/h6dB/////wdzIBFBnoABa0FgTQ0AGiAHICUgJkL///////8/g0KAgICAgIDAAIRB7wAgCWtB/wBxEAYgBygCACIJQQAgCWsgJkIAWRsLIAdB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AzYCAEEAIQILIARBEGokACACC9cCAQJ/QRQQCiICRQRAQa++gAhB/YCACCgAADYAAEGovoAIQfaAgAgpAAA3AwBBoL6ACEHugIAIKQAANwMAQbO+gAhBADoAAEEMDwtBwOwFEAgiAUUEQCACQQA2AgAgAhAMQbe+gAhBuJGACCkAADcAAEGwvoAIQbGRgAgpAAA3AwBBqL6ACEGpkYAIKQAANwMAQaC+gAhBoZGACCkAADcDAEG/voAIQQA6AABBDA8LIAFCADcDmOsBIAFCgICAgBA3A5DrASABQQA2AoTrASABQgA3AvzqASABQQA2ArzsBSABQQA2AtTrASABQgA3A8DrASABQgA3AqTrASABQQA2ArjpASABQQA2AqzrASABQYGAgMAANgLM6wEgAUIANwO46wEgAUIANwOw6wEgAUIANwLs6gEgAiABNgIAIAFCADcD6OsBIAAgAjYCACABQQA2ApzrAUEAC7UBAQF/QQEhBQJAIAFBASACG0UgAEUgBEVycg0AIANFBEAgBCgCAA0BCyAAKAIIBEBBv76ACEHthoAIKAAANgAAQbi+gAhB5oaACCkAADcDAEGwvoAIQd6GgAgpAAA3AwBBqL6ACEHWhoAIKQAANwMAQaC+gAhBzoaACCkAADcDAEHDvoAIQQA6AABBCg8LQaC+gAhBADoAACAAKAIEIAEgAiADIAQgACgCACgCKBECACEFCyAFC1ABAX9BASEDAkAgAEUgAkVyDQAgAUUEQCACKAIADQELQaC+gAhBADoAACAAKAIEIAEgAiAAKAIAKAIsEQEAIgMNACAAQQE2AghBACEDCyADCy4BAn8gAARAAkAgACgCACIBRQ0AIAAoAgQiAkUNACACIAEoAjARAwALIAAQDAsLkwIBA38CQCACKAIQIgMEQCACKAIUIQUMAQsgAiACKAI8IgRBAWsgBHI2AjwgAigCACIEQQhxBEAgAiAEQSByNgIADwsgAkIANwIEIAIgAigCKCIFNgIYIAIgBTYCFCACIAUgAigCLGoiAzYCEAsgAyAFayABSQRAIAIgACABIAIoAiARAQAaDwsCQAJAIAIoAkBBAEgEQCAAIQQMAQsgAUUEQCAAIQQMAQsgASEDAkADQCAAIANqIgRBAWstAABBCkYNASADQQFrIgMNAAsgACEEDAELIAIgACADIAIoAiARAQAgA0kNASABIANrIQEgAigCFCEFCyABBEAgBSAEIAH8CgAACyACIAIoAhQgAWo2AhQLC/MGAwN+AX8BfCMAQRBrIgYkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAFBCWsOEgABAgUDBAYHCAkKCwwNDg8QERILIAIgAigCACIBQQRqNgIAIAAgASgCADYCAAwRCyACIAIoAgAiAUEEajYCACAAIAE0AgA3AwAMEAsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAAwOCyACIAIoAgAiAUEEajYCACAAIAE1AgA3AwAMDQsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMADAwLIAIgAigCACIBQQRqNgIAIAAgATIBADcDAAwLCyACIAIoAgAiAUEEajYCACAAIAEzAQA3AwAMCgsgAiACKAIAIgFBBGo2AgAgACABMAAANwMADAkLIAIgAigCACIBQQRqNgIAIAAgATEAADcDAAwICyACIAIoAgBBB2pBeHEiAUEIajYCACAAIAEpAwA3AwAMBwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADAYLIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAAwFCyACIAIoAgBBB2pBeHEiAUEIajYCACAAIAEpAwA3AwAMBAsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADAMLIAIgAigCACIBQQRqNgIAIAAgATUCADcDAAwCCyACIAIoAgBBB2pBeHEiAUEIajYCACABKwMAIQcjAEEQayIBJAACfiAHvSIFQv///////////wCDIgNCgICAgICAgAh9QoCAgICAgIDw/wBUBEAgA0I8hiEEIANCBIhCgICAgICAgIA8fAwBCyADQoCAgICAgID4/wBaBEAgA0I8hiEEIANCBIhCgICAgICAwP//AIQMAQtCACADUA0AGiABIANCACADeaciAkExahAHIAEpAwAhBCABKQMIQoCAgICAgMAAhUGB+AAgAkH1AGpB/wBxa61CMIaECyEDIAYgBDcDACAGIAMgBUKAgICAgICAgIB/g4Q3AwggAUEQaiQAIAAgBikDCDcDCCAAIAYpAwA3AwAMAQsgAiACKAIAQQ9qQXBx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SA0AIAJBKGohBiADQRhqIQMDQCAGQRBrIgIpAAAhMSADQQhqIAJBCGopAAA3AAAgAyAxNwAAIAYpAAAhMSADQRhqIAZBCGopAAA3AAAgA0EQaiAxNwAAIAZBIGohBiADQSBqIgMgCUkNAAsLIAhBiH9LBEAgCCERDAULIAcgCGoLIQcgD0EBaiIPIARHDQALCyAnICEpAgA3AgAgJ0EIaiAhQQhqKAIANgIAIAAoAoTsASEGIA4oAowCIQMLIAZBAkYEQCAQIANrIgIgFiAHa0sEQEG6fyERDAILIAcEfyACBEAgByADIAL8CgAACyACIAdqBUEACyEHIABBiOwFaiEQIABBiOwBaiEDCyAQIANrIgAgFiAHa0sEQEG6fyERDAELIAdFBEBBACABayERDAELIAAEQCAHIAMgAPwKAAALIAAgB2ogAWshEQsgDkGQAmokACARC8QEAgJ/BH4CQCABRQ0AIAAgACkDACACrXw3AwAgACgCSCIDIAJqQR9NBEAgAgRAIAAgA2pBKGogASAC/AoAAAsgACAAKAJIIAJqNgJIDwsgASACaiECIAMEQEEgIANrIgQEQCAAQShqIANqIAEgBPwKAAALIAAoAkghAyAAQQA2AkggACAAKQMIIAApAChCz9bTvtLHq9lCfnxCH4lCh5Wvr5i23puef343AwggACAAKQMQIAApADBCz9bTvtLHq9lCfnxCH4lCh5Wvr5i23puef343AxAgACAAKQMYIAApADhCz9bTvtLHq9lCfnxCH4lCh5Wvr5i23puef343AxggACAAKQMgIAApAEBCz9bTvtLHq9lCfnxCH4lCh5Wvr5i23puef343AyAgASADa0EgaiEBCyACIAFBIGpPBEAgAkEgayEDIAApAyAhBSAAKQMYIQYgACkDECEHIAApAwghCANAIAAgASkAAELP1tO+0ser2UJ+IAh8Qh+JQoeVr6+Ytt6bnn9+Igg3AwggACABQQhqKQAAQs/W077Sx6vZQn4gB3xCH4lCh5Wvr5i23puef34iBzcDECAAIAFBEGopAABCz9bTvtLHq9lCfiAGfEIfiUKHla+vmLbem55/fiIGNwMYIAAgAUEYaikAAELP1tO+0ser2UJ+IAV8Qh+JQoeVr6+Ytt6bnn9+IgU3AyAgAUEgaiIBIANNDQALCyABIAJPDQAgAiABayIC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eAB6c3RkOiBkZWNsYXJlZCBzaXplICVsbHUgZXhjZWVkcyBjYXAgJXp1AHpzdGQ6IGRlY29tcHJlc3NlZCBvdXRwdXQgZXhjZWVkZWQgY2FwICV6dQB6c3RkOiBlbXB0eSBpbnB1dABDb250ZXh0IHNob3VsZCBiZSBpbml0IGZpcnN0AGludmFsaWQgYXJndW1lbnQAZGVjb21wcmVzc2VkIHNpemUgZXhjZWVkcyBjb25maWd1cmVkIGxpbWl0AFNyYyBzaXplIGlzIGluY29ycmVjdABvdXQgb2YgbWVtb3J5IGFsbG9jYXRpbmcgY3VfZGVjb21wcmVzc19zdHJlYW1fdAB6c3RkOiBkZWNsYXJlZCBzaXplIGV4Y2VlZHMgc2l6ZV90AFVuc3VwcG9ydGVkIGNvbWJpbmF0aW9uIG9mIHBhcmFtZXRlcnMAQ2Fubm90IGNyZWF0ZSBEaWN0aW9uYXJ5IGZyb20gcHJvdmlkZWQgc2FtcGxlcwB6c3RkOiAlcwBVbmtub3duIGZyYW1lIGRlc2NyaXB0b3IAdW5rbm93biBlcnJvcgBpbnRlcm5hbCBlcnJvcgBVbnN1cHBvcnRlZCBmcmFtZSBwYXJhbWV0ZXIAVW5zdXBwb3J0ZWQgcGFyYW1ldGVyAE9wZXJhdGlvbiBvbiBOVUxMIGRlc3RpbmF0aW9uIGJ1ZmZlcgB6c3RkOiBvdXQgb2YgbWVtb3J5IGluIGRlY29tcHJlc3Npb24gcGVuZGluZyBidWZmZXIASGVhZGVyIG9mIExpdGVyYWxzJyBibG9jayBkb2Vzbid0IHJlc3BlY3QgZm9ybWF0IHNwZWNpZmljYXRpb24AbmFuAFJlc3RvcmVkIGRhdGEgZG9lc24ndCBtYXRjaCBjaGVja3N1bQB3cml0ZSB0byBmaW5pc2hlZCBkZWNvbXByZXNzIHN0cmVhbQBPcGVyYXRpb24gbWFkZSBubyBwcm9ncmVzcyBvdmVyIG11bHRpcGxlIGNhbGxzLCBkdWUgdG8gb3V0cHV0IGJ1ZmZlciBiZWluZyBmdWxsAERlc3RpbmF0aW9uIGJ1ZmZlciBpcyB0b28gc21hbGwAU3BlY2lmaWVkIG1heFN5bWJvbFZhbHVlIGlzIHRvbyBzbWFsbABvdXRwdXQgYnVmZmVyIHRvbyBzbWFsbABvawBUaGlzIG1vZGUgY2Fubm90IGdlbmVyYXRlIGFuIHVuY29tcHJlc3NlZCBibG9jawB6c3RkOiB0cnVuY2F0ZWQgZnJhbWUgYXQgZmluaXNoAHdvcmtTcGFjZSBidWZmZXIgaXMgbm90IGxhcmdlIGVub3VnaABEaWN0aW9uYXJ5IG1pc21hdGNoAERlc3RpbmF0aW9uIGJ1ZmZlciBpcyB3cm9uZwBTb3VyY2UgYnVmZmVyIGlzIHdyb25nAGRlY29tcHJlc3NlZCBzaXplIG5vdCBlbmNvZGVkIGluIHdpcmUgZm9ybWF0OyB1c2Ugc3RyZWFtaW5nAHpzdGQ6IG91dHB1dCBidWZmZXIgZXhoYXVzdGVkIGFuZCBzaXplIHVua25vd247IHVzZSBzdHJlYW1pbmcAQW4gSS9PIGVycm9yIG9jY3VycmVkIHdoZW4gcmVhZGluZy9zZWVraW5nAEZyYW1lIHJlcXVpcmVzIHRvbyBtdWNoIG1lbW9yeSBmb3IgZGVjb2RpbmcAaW5mAG9wZXJhdGlvbiBpbnZhbGlkIGZvciBjdXJyZW50IHN0cmVhbSBzdGF0ZQB6c3RkOiB0cmFpbGluZyBkYXRhIGFmdGVyIGVuZCBvZiBmcmFtZQB6c3RkOiBub3QgYSB2YWxpZCB6c3RkIGZyYW1lAHpzdGQ6IHRydW5jYXRlZCBmcmFtZQBGcmFtZSBpbmRleCBpcyB0b28gbGFyZ2UAVW5zdXBwb3J0ZWQgbWF4IFN5bWJvbCBWYWx1ZSA6IHRvbyBsYXJnZQBPcGVyYXRpb24gbm90IGF1dGhvcml6ZWQgYXQgY3VycmVudCBwcm9jZXNzaW5nIHN0YWdlAEJsb2NrLWxldmVsIGV4dGVybmFsIHNlcXVlbmNlIHByb2R1Y2VyIHJldHVybmVkIGFuIGVycm9yIGNvZGUAVW5zcGVjaWZpZWQgZXJyb3IgY29kZQB6c3RkAFBhcmFtZXRlciBpcyBvdXQgb2YgYm91bmQAenN0ZDogd3JpdGUgYWZ0ZXIgZnJhbWUgZW5kAGFsZ29yaXRobSBub3QgY29tcGlsZWQgaW50byB0aGlzIGJ1aWxkAGFsZ29yaXRobSAlZCBpcyBub3QgYXZhaWxhYmxlIGluIHRoaXMgYnVpbGQARXh0ZXJuYWwgc2VxdWVuY2VzIGFyZSBub3QgdmFsaWQAdGFibGVMb2cgcmVxdWlyZXMgdG9vIG11Y2ggbWVtb3J5IDogdW5zdXBwb3J0ZWQAVmVyc2lvbiBub3Qgc3VwcG9ydGVkAERpY3Rpb25hcnkgaXMgY29ycnVwdGVkAE5vIGVycm9yIGRldGVjdGVkAERhdGEgY29ycnVwdGlvbiBkZXRlY3RlZABwbGVkZ2VkIGJ1ZmZlciBzdGFiaWxpdHkgY29uZGl0aW9uIGlzIG5vdCByZXNwZWN0ZWQAY29tcHJlc3NlZCBpbnB1dCB0cnVuY2F0ZWQAZGVjb21wcmVzc2lvbiBmYWlsZWQAenN0ZDogWlNURF9jcmVhdGVEU3RyZWFtIGZhaWxlZABzdHJlYW0gaXMgYWxyZWFkeSBmaW5pc2hlZABOQU4ASU5GADAuOS4wAC4AKG51bGwpAEVycm9yIChnZW5lcmljKQBjb21wcmVzc2lvbiBsZXZlbCBvdXQgb2YgcmFuZ2UgKDEuLjEwKQAAACAEAAEiAQABAwkAAQgEAAHfBAABQAcAAY4IAAGMCAABcQgAATMBAAHBCAABtAUAAXQAAAFMAgABAEHwkoAIC0EZAAsAGRkZAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABkACgoZGRkDCgcAARsJCxgAAAkGCwAACwAGGQAAABkZGQBBwZOACAshDgAAAAAAAAAAGQALDRkZGQANAAACAAkOAAAACQAOAAAOAEH7k4AICwEMAEGHlIAICxUTAAAAABMAAAAACQwAAAAAAAwAAAwAQbWUgAgLARAAQcGUgAgLFQ8AAAAEDwAAAAAJEAAAAAAAEAAAEABB75SACAsBEgBB+5SACAseEQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoaAEGylYAICw4aAAAAGhoaAAAAAAAACQBB45WACAsBFABB75WACAsVFwAAAAAXAAAAAAkUAAAAAAAUAAAUAEGdloAICwEWAEGploAIC+QNFQAAAAAVAAAAAAkWAAAAAAAWAAAWAAAwMTIzNDU2Nzg5QUJDREVGU3VjY2VzcwBJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyB1bnJlYWNoYWJsZQBBZGRyZXNzIGluIHVzZQBCcm9rZW4gcGlwZQBJL08gZXJyb3IATm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcwBObyBzdWNoIGRldmljZQBOb3QgYSBkaXJlY3RvcnkASXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmll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";
|
|
2892
2328
|
}
|
|
2893
2329
|
});
|
|
2894
2330
|
|
|
2895
|
-
//
|
|
2896
|
-
var
|
|
2897
|
-
__export(
|
|
2898
|
-
|
|
2331
|
+
// ../../node_modules/compress-utils/dist/algorithms/zstd/decompress/index.js
|
|
2332
|
+
var decompress_exports2 = {};
|
|
2333
|
+
__export(decompress_exports2, {
|
|
2334
|
+
CompressError: () => CompressError,
|
|
2335
|
+
createDecompressStream: () => createDecompressStream2,
|
|
2336
|
+
createDecompressStreamSync: () => createDecompressStreamSync2,
|
|
2337
|
+
decompress: () => decompress2,
|
|
2338
|
+
decompressSync: () => decompressSync2,
|
|
2339
|
+
decompressionStream: () => decompressionStream2,
|
|
2340
|
+
preload: () => preload2,
|
|
2341
|
+
setMaxDecompressedSize: () => setMaxDecompressedSize2,
|
|
2342
|
+
version: () => version3
|
|
2899
2343
|
});
|
|
2900
|
-
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2906
|
-
|
|
2344
|
+
var bindings2, decompress2, decompressSync2, createDecompressStream2, createDecompressStreamSync2, decompressionStream2, preload2, version3, setMaxDecompressedSize2;
|
|
2345
|
+
var init_decompress2 = __esm({
|
|
2346
|
+
"../../node_modules/compress-utils/dist/algorithms/zstd/decompress/index.js"() {
|
|
2347
|
+
init_zstd();
|
|
2348
|
+
init_algorithm();
|
|
2349
|
+
init_types();
|
|
2350
|
+
init_types();
|
|
2351
|
+
bindings2 = /* @__PURE__ */ defineAlgorithm(Algorithm.Zstd, "zstd", new URL(zstd_default));
|
|
2352
|
+
decompress2 = bindings2.decompress;
|
|
2353
|
+
decompressSync2 = bindings2.decompressSync;
|
|
2354
|
+
createDecompressStream2 = bindings2.createDecompressStream;
|
|
2355
|
+
createDecompressStreamSync2 = bindings2.createDecompressStreamSync;
|
|
2356
|
+
decompressionStream2 = bindings2.decompressionStream;
|
|
2357
|
+
preload2 = bindings2.preload;
|
|
2358
|
+
version3 = bindings2.version;
|
|
2359
|
+
setMaxDecompressedSize2 = bindings2.setMaxDecompressedSize;
|
|
2907
2360
|
}
|
|
2908
2361
|
});
|
|
2909
2362
|
|
|
2910
|
-
// ../compression/src/
|
|
2911
|
-
var
|
|
2912
|
-
|
|
2913
|
-
|
|
2914
|
-
});
|
|
2915
|
-
var CHUNK_SIZE, zstdPromise, zstd, ZstdCompression;
|
|
2916
|
-
var init_zstd_compression = __esm({
|
|
2917
|
-
"../compression/src/lib/zstd-compression.ts"() {
|
|
2363
|
+
// ../compression/src/zstd-decompressor-compress-utils.ts
|
|
2364
|
+
var ZstdCompressUtilsDecompressor;
|
|
2365
|
+
var init_zstd_decompressor_compress_utils = __esm({
|
|
2366
|
+
"../compression/src/zstd-decompressor-compress-utils.ts"() {
|
|
2918
2367
|
"use strict";
|
|
2919
|
-
|
|
2920
|
-
|
|
2921
|
-
init_compression_stream();
|
|
2922
|
-
init_decompression_stream();
|
|
2923
|
-
CHUNK_SIZE = 1e6;
|
|
2924
|
-
ZstdCompression = class extends Compression {
|
|
2925
|
-
name = "zstd";
|
|
2926
|
-
extensions = [];
|
|
2927
|
-
contentEncodings = [];
|
|
2928
|
-
isSupported = true;
|
|
2929
|
-
options;
|
|
2930
|
-
/**
|
|
2931
|
-
* zstd-codec is an injectable dependency due to big size
|
|
2932
|
-
* @param options
|
|
2933
|
-
*/
|
|
2368
|
+
init_compress_utils_compression();
|
|
2369
|
+
ZstdCompressUtilsDecompressor = class extends CompressUtilsDecompressor {
|
|
2934
2370
|
constructor(options = {}) {
|
|
2935
|
-
super(
|
|
2936
|
-
|
|
2937
|
-
|
|
2938
|
-
|
|
2939
|
-
|
|
2940
|
-
registerJSModules(modules);
|
|
2941
|
-
const ZstdCodec = getJSModuleOrNull("zstd-codec");
|
|
2942
|
-
if (!zstdPromise && ZstdCodec) {
|
|
2943
|
-
zstdPromise = new Promise((resolve) => ZstdCodec.run((zstd2) => resolve(zstd2)));
|
|
2944
|
-
}
|
|
2945
|
-
if (zstdPromise) {
|
|
2946
|
-
zstd = await zstdPromise;
|
|
2947
|
-
}
|
|
2948
|
-
}
|
|
2949
|
-
compressSync(input2) {
|
|
2950
|
-
getJSModule("zstd-codec", this.name);
|
|
2951
|
-
const simpleZstd = new zstd.Simple();
|
|
2952
|
-
const inputArray = new Uint8Array(input2);
|
|
2953
|
-
return simpleZstd.compress(inputArray).buffer;
|
|
2954
|
-
}
|
|
2955
|
-
async compress(input2) {
|
|
2956
|
-
if (this.options.useNative !== false && this.options.zstd?.useNative !== false) {
|
|
2957
|
-
const nativeOutput = await compressWithNativeCompressionStream(input2, "zstd");
|
|
2958
|
-
if (nativeOutput) return nativeOutput;
|
|
2959
|
-
}
|
|
2960
|
-
await this.preload();
|
|
2961
|
-
return this.compressSync(input2);
|
|
2962
|
-
}
|
|
2963
|
-
decompressSync(input2) {
|
|
2964
|
-
getJSModule("zstd-codec", this.name);
|
|
2965
|
-
const simpleZstd = new zstd.Simple();
|
|
2966
|
-
const inputArray = new Uint8Array(input2);
|
|
2967
|
-
return simpleZstd.decompress(inputArray).buffer;
|
|
2968
|
-
}
|
|
2969
|
-
async decompress(input2, size) {
|
|
2970
|
-
if (!getJSModuleOrNull("zstd-codec") && this.options.useNative !== false && this.options.zstd?.useNative !== false) {
|
|
2971
|
-
const nativeOutput = await decompressWithNativeDecompressionStream(input2, "zstd");
|
|
2972
|
-
if (nativeOutput) return nativeOutput;
|
|
2973
|
-
}
|
|
2974
|
-
await this.preload();
|
|
2975
|
-
const inputArray = new Uint8Array(input2);
|
|
2976
|
-
if (!zstd) {
|
|
2977
|
-
const { decompressZstd: decompressZstd2 } = await Promise.resolve().then(() => (init_zstd_fallback(), zstd_fallback_exports));
|
|
2978
|
-
return ensureArrayBuffer(decompressZstd2(inputArray));
|
|
2979
|
-
}
|
|
2980
|
-
const simpleZstd = new zstd.Streaming();
|
|
2981
|
-
const chunks = [];
|
|
2982
|
-
for (let i = 0; i <= inputArray.length; i += CHUNK_SIZE) {
|
|
2983
|
-
const chunkView = inputArray.subarray(i, i + CHUNK_SIZE);
|
|
2984
|
-
const chunkArrayBuffer = ensureArrayBuffer(chunkView);
|
|
2985
|
-
chunks.push(new Uint8Array(chunkArrayBuffer));
|
|
2986
|
-
}
|
|
2987
|
-
const decompressResult = await simpleZstd.decompressChunks(chunks);
|
|
2988
|
-
return decompressResult.buffer;
|
|
2371
|
+
super(
|
|
2372
|
+
{ name: "zstd", extensions: ["zst"], contentEncodings: ["zstd"] },
|
|
2373
|
+
() => Promise.resolve().then(() => (init_decompress2(), decompress_exports2)),
|
|
2374
|
+
options
|
|
2375
|
+
);
|
|
2989
2376
|
}
|
|
2990
2377
|
};
|
|
2991
2378
|
}
|
|
@@ -3000,48 +2387,18 @@ var __exports__ = (() => {
|
|
|
3000
2387
|
var init_zstd_decompressor = __esm({
|
|
3001
2388
|
"../compression/src/zstd-decompressor.ts"() {
|
|
3002
2389
|
"use strict";
|
|
3003
|
-
|
|
2390
|
+
init_zstd_decompressor_compress_utils();
|
|
3004
2391
|
init_decompression_stream();
|
|
3005
|
-
|
|
3006
|
-
|
|
3007
|
-
|
|
3008
|
-
compatibility = null;
|
|
3009
|
-
constructor(options = {}) {
|
|
3010
|
-
super(options);
|
|
3011
|
-
this.options = options;
|
|
3012
|
-
registerJSModules(options.modules);
|
|
3013
|
-
}
|
|
3014
|
-
/** Preloads an injected zstd-codec implementation when supplied. */
|
|
3015
|
-
async preload(modules = {}) {
|
|
3016
|
-
registerJSModules(modules);
|
|
3017
|
-
if (getJSModuleOrNull("zstd-codec")) {
|
|
3018
|
-
const { ZstdCompression: ZstdCompression2 } = await Promise.resolve().then(() => (init_zstd_compression(), zstd_compression_exports));
|
|
3019
|
-
this.compatibility ||= new ZstdCompression2(this.options);
|
|
3020
|
-
await this.compatibility.preload(modules);
|
|
3021
|
-
}
|
|
3022
|
-
}
|
|
3023
|
-
/** Decompresses with the built-in stream when available, then falls back to fzstd. */
|
|
3024
|
-
async decompress(input2) {
|
|
2392
|
+
ZstdDecompressor = class extends ZstdCompressUtilsDecompressor {
|
|
2393
|
+
/** Decompresses with native streams when available, otherwise lazily initializes WASM. */
|
|
2394
|
+
async decompress(input2, size) {
|
|
3025
2395
|
if (this.options.useNative !== false) {
|
|
3026
2396
|
const output2 = await decompressWithNativeDecompressionStream(input2, "zstd");
|
|
3027
2397
|
if (output2) return output2;
|
|
3028
2398
|
}
|
|
3029
|
-
|
|
3030
|
-
await this.preload(this.options.modules);
|
|
3031
|
-
}
|
|
3032
|
-
return this.decompressSync(input2);
|
|
3033
|
-
}
|
|
3034
|
-
/** Decompresses with a preloaded zstd-codec implementation or compact fzstd. */
|
|
3035
|
-
decompressSync(input2) {
|
|
3036
|
-
if (this.compatibility) {
|
|
3037
|
-
return this.compatibility.decompressSync(input2);
|
|
3038
|
-
}
|
|
3039
|
-
if (getJSModuleOrNull("zstd-codec")) {
|
|
3040
|
-
throw new Error("zstd: call preload() before synchronous decompression with zstd-codec");
|
|
3041
|
-
}
|
|
3042
|
-
return super.decompressSync(input2);
|
|
2399
|
+
return super.decompress(input2, size);
|
|
3043
2400
|
}
|
|
3044
|
-
/**
|
|
2401
|
+
/** Streams native batches when available, otherwise uses the WASM stream. */
|
|
3045
2402
|
async *decompressBatches(inputBatches) {
|
|
3046
2403
|
if (this.options.useNative !== false) {
|
|
3047
2404
|
const output2 = decompressBatchesWithNativeDecompressionStream(inputBatches, "zstd");
|
|
@@ -3050,10 +2407,6 @@ var __exports__ = (() => {
|
|
|
3050
2407
|
return;
|
|
3051
2408
|
}
|
|
3052
2409
|
}
|
|
3053
|
-
if (getJSModuleOrNull("zstd-codec")) {
|
|
3054
|
-
yield this.decompress(await this.concatenate(inputBatches));
|
|
3055
|
-
return;
|
|
3056
|
-
}
|
|
3057
2410
|
yield* super.decompressBatches(inputBatches);
|
|
3058
2411
|
}
|
|
3059
2412
|
};
|
|
@@ -3066,7 +2419,6 @@ var __exports__ = (() => {
|
|
|
3066
2419
|
"../compression/src/default-codecs.ts"() {
|
|
3067
2420
|
"use strict";
|
|
3068
2421
|
init_lazy_compression();
|
|
3069
|
-
init_src();
|
|
3070
2422
|
GZIP = { name: "gzip", extensions: ["gz"], contentEncodings: ["gzip"] };
|
|
3071
2423
|
ZSTD = { name: "zstd", extensions: ["zst"], contentEncodings: ["zstd"] };
|
|
3072
2424
|
GZipDecompressor2 = class extends LazyDecompressor {
|
|
@@ -3085,8 +2437,7 @@ var __exports__ = (() => {
|
|
|
3085
2437
|
ZSTD,
|
|
3086
2438
|
async () => (await Promise.resolve().then(() => (init_zstd_decompressor(), zstd_decompressor_exports))).ZstdDecompressor,
|
|
3087
2439
|
options,
|
|
3088
|
-
"zstd"
|
|
3089
|
-
(preloadOptions) => !preloadOptions.modules?.["zstd-codec"] && !getJSModuleOrNull("zstd-codec")
|
|
2440
|
+
"zstd"
|
|
3090
2441
|
);
|
|
3091
2442
|
}
|
|
3092
2443
|
};
|
|
@@ -3298,7 +2649,7 @@ var __exports__ = (() => {
|
|
|
3298
2649
|
joinUint8Arrays: () => joinUint8Arrays,
|
|
3299
2650
|
memcpy: () => memcpy,
|
|
3300
2651
|
rebaseValueOffsets: () => rebaseValueOffsets,
|
|
3301
|
-
toArrayBufferView: () =>
|
|
2652
|
+
toArrayBufferView: () => toArrayBufferView,
|
|
3302
2653
|
toArrayBufferViewAsyncIterator: () => toArrayBufferViewAsyncIterator,
|
|
3303
2654
|
toArrayBufferViewIterator: () => toArrayBufferViewIterator,
|
|
3304
2655
|
toBigInt64Array: () => toBigInt64Array,
|
|
@@ -3381,7 +2732,7 @@ var __exports__ = (() => {
|
|
|
3381
2732
|
}
|
|
3382
2733
|
return [buffer || new Uint8Array(0), result.slice(index), byteLength - (buffer ? buffer.byteLength : 0)];
|
|
3383
2734
|
}
|
|
3384
|
-
function
|
|
2735
|
+
function toArrayBufferView(ArrayBufferViewCtor, input2) {
|
|
3385
2736
|
let value = isIteratorResult(input2) ? input2.value : input2;
|
|
3386
2737
|
if (value instanceof ArrayBufferViewCtor) {
|
|
3387
2738
|
if (ArrayBufferViewCtor === Uint8Array) {
|
|
@@ -3402,7 +2753,7 @@ var __exports__ = (() => {
|
|
|
3402
2753
|
return new ArrayBufferViewCtor(value);
|
|
3403
2754
|
}
|
|
3404
2755
|
if (isFlatbuffersByteBuffer(value)) {
|
|
3405
|
-
return
|
|
2756
|
+
return toArrayBufferView(ArrayBufferViewCtor, value.bytes());
|
|
3406
2757
|
}
|
|
3407
2758
|
return !ArrayBuffer.isView(value) ? ArrayBufferViewCtor.from(value) : value.byteLength <= 0 ? new ArrayBufferViewCtor(0) : new ArrayBufferViewCtor(value.buffer, value.byteOffset, value.byteLength / ArrayBufferViewCtor.BYTES_PER_ELEMENT);
|
|
3408
2759
|
}
|
|
@@ -3414,7 +2765,7 @@ var __exports__ = (() => {
|
|
|
3414
2765
|
yield* pump((function* (it) {
|
|
3415
2766
|
let r = null;
|
|
3416
2767
|
do {
|
|
3417
|
-
r = it.next(yield
|
|
2768
|
+
r = it.next(yield toArrayBufferView(ArrayCtor, r));
|
|
3418
2769
|
} while (!r.done);
|
|
3419
2770
|
})(buffers[Symbol.iterator]()));
|
|
3420
2771
|
return new ArrayCtor();
|
|
@@ -3446,7 +2797,7 @@ var __exports__ = (() => {
|
|
|
3446
2797
|
return __asyncGenerator(this, arguments, function* () {
|
|
3447
2798
|
let r = null;
|
|
3448
2799
|
do {
|
|
3449
|
-
r = yield __await(it.next(yield yield __await(
|
|
2800
|
+
r = yield __await(it.next(yield yield __await(toArrayBufferView(ArrayCtor, r))));
|
|
3450
2801
|
} while (!r.done);
|
|
3451
2802
|
});
|
|
3452
2803
|
})(buffers[Symbol.asyncIterator]()))))
|
|
@@ -3486,17 +2837,17 @@ var __exports__ = (() => {
|
|
|
3486
2837
|
init_utf8();
|
|
3487
2838
|
init_compat();
|
|
3488
2839
|
SharedArrayBuf = typeof SharedArrayBuffer !== "undefined" ? SharedArrayBuffer : ArrayBuffer;
|
|
3489
|
-
toInt8Array = (input2) =>
|
|
3490
|
-
toInt16Array = (input2) =>
|
|
3491
|
-
toInt32Array = (input2) =>
|
|
3492
|
-
toBigInt64Array = (input2) =>
|
|
3493
|
-
toUint8Array = (input2) =>
|
|
3494
|
-
toUint16Array = (input2) =>
|
|
3495
|
-
toUint32Array = (input2) =>
|
|
3496
|
-
toBigUint64Array = (input2) =>
|
|
3497
|
-
toFloat32Array = (input2) =>
|
|
3498
|
-
toFloat64Array = (input2) =>
|
|
3499
|
-
toUint8ClampedArray = (input2) =>
|
|
2840
|
+
toInt8Array = (input2) => toArrayBufferView(Int8Array, input2);
|
|
2841
|
+
toInt16Array = (input2) => toArrayBufferView(Int16Array, input2);
|
|
2842
|
+
toInt32Array = (input2) => toArrayBufferView(Int32Array, input2);
|
|
2843
|
+
toBigInt64Array = (input2) => toArrayBufferView(BigInt64Array, input2);
|
|
2844
|
+
toUint8Array = (input2) => toArrayBufferView(Uint8Array, input2);
|
|
2845
|
+
toUint16Array = (input2) => toArrayBufferView(Uint16Array, input2);
|
|
2846
|
+
toUint32Array = (input2) => toArrayBufferView(Uint32Array, input2);
|
|
2847
|
+
toBigUint64Array = (input2) => toArrayBufferView(BigUint64Array, input2);
|
|
2848
|
+
toFloat32Array = (input2) => toArrayBufferView(Float32Array, input2);
|
|
2849
|
+
toFloat64Array = (input2) => toArrayBufferView(Float64Array, input2);
|
|
2850
|
+
toUint8ClampedArray = (input2) => toArrayBufferView(Uint8ClampedArray, input2);
|
|
3500
2851
|
pump = (iterator) => {
|
|
3501
2852
|
iterator.next();
|
|
3502
2853
|
return iterator;
|
|
@@ -3633,7 +2984,7 @@ var __exports__ = (() => {
|
|
|
3633
2984
|
return __asyncGenerator(this, arguments, function* fromNodeStream_1() {
|
|
3634
2985
|
const events = [];
|
|
3635
2986
|
let event = "error";
|
|
3636
|
-
let done = false,
|
|
2987
|
+
let done = false, err = null;
|
|
3637
2988
|
let cmd, size, bufferLength = 0;
|
|
3638
2989
|
let buffers = [], buffer;
|
|
3639
2990
|
function byteRange() {
|
|
@@ -3653,7 +3004,7 @@ var __exports__ = (() => {
|
|
|
3653
3004
|
events[1] = onEvent(stream, "error");
|
|
3654
3005
|
do {
|
|
3655
3006
|
events[2] = onEvent(stream, "readable");
|
|
3656
|
-
[event,
|
|
3007
|
+
[event, err] = yield __await(Promise.race(events.map((x) => x[2])));
|
|
3657
3008
|
if (event === "error") {
|
|
3658
3009
|
break;
|
|
3659
3010
|
}
|
|
@@ -3678,10 +3029,10 @@ var __exports__ = (() => {
|
|
|
3678
3029
|
}
|
|
3679
3030
|
} while (!done);
|
|
3680
3031
|
} finally {
|
|
3681
|
-
yield __await(cleanup(events, event === "error" ?
|
|
3032
|
+
yield __await(cleanup(events, event === "error" ? err : null));
|
|
3682
3033
|
}
|
|
3683
3034
|
return yield __await(null);
|
|
3684
|
-
function cleanup(events2,
|
|
3035
|
+
function cleanup(events2, err2) {
|
|
3685
3036
|
buffer = buffers = null;
|
|
3686
3037
|
return new Promise((resolve, reject) => {
|
|
3687
3038
|
for (const [evt, fn] of events2) {
|
|
@@ -3689,12 +3040,12 @@ var __exports__ = (() => {
|
|
|
3689
3040
|
}
|
|
3690
3041
|
try {
|
|
3691
3042
|
const destroy = stream["destroy"];
|
|
3692
|
-
destroy && destroy.call(stream,
|
|
3693
|
-
|
|
3043
|
+
destroy && destroy.call(stream, err2);
|
|
3044
|
+
err2 = void 0;
|
|
3694
3045
|
} catch (e) {
|
|
3695
|
-
|
|
3046
|
+
err2 = e || err2;
|
|
3696
3047
|
} finally {
|
|
3697
|
-
|
|
3048
|
+
err2 != null ? reject(err2) : resolve();
|
|
3698
3049
|
}
|
|
3699
3050
|
});
|
|
3700
3051
|
}
|
|
@@ -6648,7 +5999,7 @@ var __exports__ = (() => {
|
|
|
6648
5999
|
});
|
|
6649
6000
|
function BigNum(x, ...xs) {
|
|
6650
6001
|
if (xs.length === 0) {
|
|
6651
|
-
return Object.setPrototypeOf(
|
|
6002
|
+
return Object.setPrototypeOf(toArrayBufferView(this["TypedArray"], x), this.constructor.prototype);
|
|
6652
6003
|
}
|
|
6653
6004
|
return Object.setPrototypeOf(new this["TypedArray"](x, ...xs), this.constructor.prototype);
|
|
6654
6005
|
}
|
|
@@ -7991,30 +7342,30 @@ var __exports__ = (() => {
|
|
|
7991
7342
|
return 32256;
|
|
7992
7343
|
}
|
|
7993
7344
|
f64[0] = d;
|
|
7994
|
-
const sign = (
|
|
7995
|
-
let expo =
|
|
7345
|
+
const sign = (u32[1] & 2147483648) >> 16 & 65535;
|
|
7346
|
+
let expo = u32[1] & 2146435072, sigf = 0;
|
|
7996
7347
|
if (expo >= 1089470464) {
|
|
7997
|
-
if (
|
|
7348
|
+
if (u32[0] > 0) {
|
|
7998
7349
|
expo = 31744;
|
|
7999
7350
|
} else {
|
|
8000
7351
|
expo = (expo & 2080374784) >> 16;
|
|
8001
|
-
sigf = (
|
|
7352
|
+
sigf = (u32[1] & 1048575) >> 10;
|
|
8002
7353
|
}
|
|
8003
7354
|
} else if (expo <= 1056964608) {
|
|
8004
|
-
sigf = 1048576 + (
|
|
7355
|
+
sigf = 1048576 + (u32[1] & 1048575);
|
|
8005
7356
|
sigf = 1048576 + (sigf << (expo >> 20) - 998) >> 21;
|
|
8006
7357
|
expo = 0;
|
|
8007
7358
|
} else {
|
|
8008
7359
|
expo = expo - 1056964608 >> 10;
|
|
8009
|
-
sigf = (
|
|
7360
|
+
sigf = (u32[1] & 1048575) + 512 >> 10;
|
|
8010
7361
|
}
|
|
8011
7362
|
return sign | expo | sigf & 65535;
|
|
8012
7363
|
}
|
|
8013
|
-
var f64,
|
|
7364
|
+
var f64, u32;
|
|
8014
7365
|
var init_math = __esm({
|
|
8015
7366
|
"../../node_modules/apache-arrow/util/math.mjs"() {
|
|
8016
7367
|
f64 = new Float64Array(1);
|
|
8017
|
-
|
|
7368
|
+
u32 = new Uint32Array(f64.buffer);
|
|
8018
7369
|
}
|
|
8019
7370
|
});
|
|
8020
7371
|
|
|
@@ -9337,21 +8688,21 @@ var __exports__ = (() => {
|
|
|
9337
8688
|
visitBool(props) {
|
|
9338
8689
|
const { ["type"]: type, ["offset"]: offset = 0 } = props;
|
|
9339
8690
|
const nullBitmap = toUint8Array(props["nullBitmap"]);
|
|
9340
|
-
const data =
|
|
8691
|
+
const data = toArrayBufferView(type.ArrayType, props["data"]);
|
|
9341
8692
|
const { ["length"]: length = data.length >> 3, ["nullCount"]: nullCount = props["nullBitmap"] ? -1 : 0 } = props;
|
|
9342
8693
|
return new Data(type, offset, length, nullCount, [void 0, data, nullBitmap]);
|
|
9343
8694
|
}
|
|
9344
8695
|
visitInt(props) {
|
|
9345
8696
|
const { ["type"]: type, ["offset"]: offset = 0 } = props;
|
|
9346
8697
|
const nullBitmap = toUint8Array(props["nullBitmap"]);
|
|
9347
|
-
const data =
|
|
8698
|
+
const data = toArrayBufferView(type.ArrayType, props["data"]);
|
|
9348
8699
|
const { ["length"]: length = data.length, ["nullCount"]: nullCount = props["nullBitmap"] ? -1 : 0 } = props;
|
|
9349
8700
|
return new Data(type, offset, length, nullCount, [void 0, data, nullBitmap]);
|
|
9350
8701
|
}
|
|
9351
8702
|
visitFloat(props) {
|
|
9352
8703
|
const { ["type"]: type, ["offset"]: offset = 0 } = props;
|
|
9353
8704
|
const nullBitmap = toUint8Array(props["nullBitmap"]);
|
|
9354
|
-
const data =
|
|
8705
|
+
const data = toArrayBufferView(type.ArrayType, props["data"]);
|
|
9355
8706
|
const { ["length"]: length = data.length, ["nullCount"]: nullCount = props["nullBitmap"] ? -1 : 0 } = props;
|
|
9356
8707
|
return new Data(type, offset, length, nullCount, [void 0, data, nullBitmap]);
|
|
9357
8708
|
}
|
|
@@ -9366,7 +8717,7 @@ var __exports__ = (() => {
|
|
|
9366
8717
|
visitUtf8View(props) {
|
|
9367
8718
|
var _a7;
|
|
9368
8719
|
const { ["type"]: type, ["offset"]: offset = 0 } = props;
|
|
9369
|
-
const views =
|
|
8720
|
+
const views = toArrayBufferView(type.ArrayType, props["views"]);
|
|
9370
8721
|
const nullBitmap = toUint8Array(props["nullBitmap"]);
|
|
9371
8722
|
const variadicBuffers = (props["variadicBuffers"] || []).map((buffer) => toUint8Array(buffer));
|
|
9372
8723
|
const length = (_a7 = props["length"]) !== null && _a7 !== void 0 ? _a7 : Math.trunc(views.length / Utf8View2.ELEMENT_WIDTH);
|
|
@@ -9392,7 +8743,7 @@ var __exports__ = (() => {
|
|
|
9392
8743
|
visitBinaryView(props) {
|
|
9393
8744
|
var _a7;
|
|
9394
8745
|
const { ["type"]: type, ["offset"]: offset = 0 } = props;
|
|
9395
|
-
const views =
|
|
8746
|
+
const views = toArrayBufferView(type.ArrayType, props["views"]);
|
|
9396
8747
|
const nullBitmap = toUint8Array(props["nullBitmap"]);
|
|
9397
8748
|
const variadicBuffers = (props["variadicBuffers"] || []).map((buffer) => toUint8Array(buffer));
|
|
9398
8749
|
const length = (_a7 = props["length"]) !== null && _a7 !== void 0 ? _a7 : Math.trunc(views.length / BinaryView2.ELEMENT_WIDTH);
|
|
@@ -9410,35 +8761,35 @@ var __exports__ = (() => {
|
|
|
9410
8761
|
visitFixedSizeBinary(props) {
|
|
9411
8762
|
const { ["type"]: type, ["offset"]: offset = 0 } = props;
|
|
9412
8763
|
const nullBitmap = toUint8Array(props["nullBitmap"]);
|
|
9413
|
-
const data =
|
|
8764
|
+
const data = toArrayBufferView(type.ArrayType, props["data"]);
|
|
9414
8765
|
const { ["length"]: length = data.length / strideForType(type), ["nullCount"]: nullCount = props["nullBitmap"] ? -1 : 0 } = props;
|
|
9415
8766
|
return new Data(type, offset, length, nullCount, [void 0, data, nullBitmap]);
|
|
9416
8767
|
}
|
|
9417
8768
|
visitDate(props) {
|
|
9418
8769
|
const { ["type"]: type, ["offset"]: offset = 0 } = props;
|
|
9419
8770
|
const nullBitmap = toUint8Array(props["nullBitmap"]);
|
|
9420
|
-
const data =
|
|
8771
|
+
const data = toArrayBufferView(type.ArrayType, props["data"]);
|
|
9421
8772
|
const { ["length"]: length = data.length / strideForType(type), ["nullCount"]: nullCount = props["nullBitmap"] ? -1 : 0 } = props;
|
|
9422
8773
|
return new Data(type, offset, length, nullCount, [void 0, data, nullBitmap]);
|
|
9423
8774
|
}
|
|
9424
8775
|
visitTimestamp(props) {
|
|
9425
8776
|
const { ["type"]: type, ["offset"]: offset = 0 } = props;
|
|
9426
8777
|
const nullBitmap = toUint8Array(props["nullBitmap"]);
|
|
9427
|
-
const data =
|
|
8778
|
+
const data = toArrayBufferView(type.ArrayType, props["data"]);
|
|
9428
8779
|
const { ["length"]: length = data.length / strideForType(type), ["nullCount"]: nullCount = props["nullBitmap"] ? -1 : 0 } = props;
|
|
9429
8780
|
return new Data(type, offset, length, nullCount, [void 0, data, nullBitmap]);
|
|
9430
8781
|
}
|
|
9431
8782
|
visitTime(props) {
|
|
9432
8783
|
const { ["type"]: type, ["offset"]: offset = 0 } = props;
|
|
9433
8784
|
const nullBitmap = toUint8Array(props["nullBitmap"]);
|
|
9434
|
-
const data =
|
|
8785
|
+
const data = toArrayBufferView(type.ArrayType, props["data"]);
|
|
9435
8786
|
const { ["length"]: length = data.length / strideForType(type), ["nullCount"]: nullCount = props["nullBitmap"] ? -1 : 0 } = props;
|
|
9436
8787
|
return new Data(type, offset, length, nullCount, [void 0, data, nullBitmap]);
|
|
9437
8788
|
}
|
|
9438
8789
|
visitDecimal(props) {
|
|
9439
8790
|
const { ["type"]: type, ["offset"]: offset = 0 } = props;
|
|
9440
8791
|
const nullBitmap = toUint8Array(props["nullBitmap"]);
|
|
9441
|
-
const data =
|
|
8792
|
+
const data = toArrayBufferView(type.ArrayType, props["data"]);
|
|
9442
8793
|
const { ["length"]: length = data.length / strideForType(type), ["nullCount"]: nullCount = props["nullBitmap"] ? -1 : 0 } = props;
|
|
9443
8794
|
return new Data(type, offset, length, nullCount, [void 0, data, nullBitmap]);
|
|
9444
8795
|
}
|
|
@@ -9464,7 +8815,7 @@ var __exports__ = (() => {
|
|
|
9464
8815
|
}
|
|
9465
8816
|
visitUnion(props) {
|
|
9466
8817
|
const { ["type"]: type, ["offset"]: offset = 0, ["children"]: children = [] } = props;
|
|
9467
|
-
const typeIds =
|
|
8818
|
+
const typeIds = toArrayBufferView(type.ArrayType, props["typeIds"]);
|
|
9468
8819
|
const { ["length"]: length = typeIds.length, ["nullCount"]: nullCount = -1 } = props;
|
|
9469
8820
|
if (DataType.isSparseUnion(type)) {
|
|
9470
8821
|
return new Data(type, offset, length, nullCount, [void 0, void 0, void 0, typeIds], children);
|
|
@@ -9475,7 +8826,7 @@ var __exports__ = (() => {
|
|
|
9475
8826
|
visitDictionary(props) {
|
|
9476
8827
|
const { ["type"]: type, ["offset"]: offset = 0 } = props;
|
|
9477
8828
|
const nullBitmap = toUint8Array(props["nullBitmap"]);
|
|
9478
|
-
const data =
|
|
8829
|
+
const data = toArrayBufferView(type.indices.ArrayType, props["data"]);
|
|
9479
8830
|
const { ["dictionary"]: dictionary = new Vector([new _MakeDataVisitor().visit({ type: type.dictionary })]) } = props;
|
|
9480
8831
|
const { ["length"]: length = data.length, ["nullCount"]: nullCount = props["nullBitmap"] ? -1 : 0 } = props;
|
|
9481
8832
|
return new Data(type, offset, length, nullCount, [void 0, data, nullBitmap], [], dictionary);
|
|
@@ -9483,14 +8834,14 @@ var __exports__ = (() => {
|
|
|
9483
8834
|
visitInterval(props) {
|
|
9484
8835
|
const { ["type"]: type, ["offset"]: offset = 0 } = props;
|
|
9485
8836
|
const nullBitmap = toUint8Array(props["nullBitmap"]);
|
|
9486
|
-
const data =
|
|
8837
|
+
const data = toArrayBufferView(type.ArrayType, props["data"]);
|
|
9487
8838
|
const { ["length"]: length = data.length / strideForType(type), ["nullCount"]: nullCount = props["nullBitmap"] ? -1 : 0 } = props;
|
|
9488
8839
|
return new Data(type, offset, length, nullCount, [void 0, data, nullBitmap]);
|
|
9489
8840
|
}
|
|
9490
8841
|
visitDuration(props) {
|
|
9491
8842
|
const { ["type"]: type, ["offset"]: offset = 0 } = props;
|
|
9492
8843
|
const nullBitmap = toUint8Array(props["nullBitmap"]);
|
|
9493
|
-
const data =
|
|
8844
|
+
const data = toArrayBufferView(type.ArrayType, props["data"]);
|
|
9494
8845
|
const { ["length"]: length = data.length, ["nullCount"]: nullCount = props["nullBitmap"] ? -1 : 0 } = props;
|
|
9495
8846
|
return new Data(type, offset, length, nullCount, [void 0, data, nullBitmap]);
|
|
9496
8847
|
}
|
|
@@ -10808,8 +10159,8 @@ return true;`);
|
|
|
10808
10159
|
static startFooter(builder) {
|
|
10809
10160
|
builder.startObject(5);
|
|
10810
10161
|
}
|
|
10811
|
-
static addVersion(builder,
|
|
10812
|
-
builder.addFieldInt16(0,
|
|
10162
|
+
static addVersion(builder, version7) {
|
|
10163
|
+
builder.addFieldInt16(0, version7, MetadataVersion.V1);
|
|
10813
10164
|
}
|
|
10814
10165
|
static addSchema(builder, schemaOffset) {
|
|
10815
10166
|
builder.addFieldOffset(1, schemaOffset, 0);
|
|
@@ -11032,8 +10383,8 @@ return true;`);
|
|
|
11032
10383
|
const b = new Builder3();
|
|
11033
10384
|
const schemaOffset = Schema2.encode(b, footer.schema);
|
|
11034
10385
|
Footer.startRecordBatchesVector(b, footer.numRecordBatches);
|
|
11035
|
-
for (const
|
|
11036
|
-
FileBlock.encode(b,
|
|
10386
|
+
for (const rb of [...footer.recordBatches()].slice().reverse()) {
|
|
10387
|
+
FileBlock.encode(b, rb);
|
|
11037
10388
|
}
|
|
11038
10389
|
const recordBatchesOffset = b.endVector();
|
|
11039
10390
|
Footer.startDictionariesVector(b, footer.numDictionaries);
|
|
@@ -11055,9 +10406,9 @@ return true;`);
|
|
|
11055
10406
|
get numDictionaries() {
|
|
11056
10407
|
return this._dictionaryBatches.length;
|
|
11057
10408
|
}
|
|
11058
|
-
constructor(schema,
|
|
10409
|
+
constructor(schema, version7 = MetadataVersion.V5, recordBatches, dictionaryBatches) {
|
|
11059
10410
|
this.schema = schema;
|
|
11060
|
-
this.version =
|
|
10411
|
+
this.version = version7;
|
|
11061
10412
|
recordBatches && (this._recordBatches = recordBatches);
|
|
11062
10413
|
dictionaryBatches && (this._dictionaryBatches = dictionaryBatches);
|
|
11063
10414
|
}
|
|
@@ -11185,8 +10536,8 @@ return true;`);
|
|
|
11185
10536
|
static startMessage(builder) {
|
|
11186
10537
|
builder.startObject(5);
|
|
11187
10538
|
}
|
|
11188
|
-
static addVersion(builder,
|
|
11189
|
-
builder.addFieldInt16(0,
|
|
10539
|
+
static addVersion(builder, version7) {
|
|
10540
|
+
builder.addFieldInt16(0, version7, MetadataVersion.V1);
|
|
11190
10541
|
}
|
|
11191
10542
|
static addHeaderType(builder, headerType) {
|
|
11192
10543
|
builder.addFieldInt8(1, headerType, MessageHeader.NONE);
|
|
@@ -11220,9 +10571,9 @@ return true;`);
|
|
|
11220
10571
|
static finishSizePrefixedMessageBuffer(builder, offset) {
|
|
11221
10572
|
builder.finish(offset, void 0, true);
|
|
11222
10573
|
}
|
|
11223
|
-
static createMessage(builder,
|
|
10574
|
+
static createMessage(builder, version7, headerType, headerOffset, bodyLength, customMetadataOffset) {
|
|
11224
10575
|
_Message.startMessage(builder);
|
|
11225
|
-
_Message.addVersion(builder,
|
|
10576
|
+
_Message.addVersion(builder, version7);
|
|
11226
10577
|
_Message.addHeaderType(builder, headerType);
|
|
11227
10578
|
_Message.addHeader(builder, headerOffset);
|
|
11228
10579
|
_Message.addBodyLength(builder, bodyLength);
|
|
@@ -11594,16 +10945,16 @@ return true;`);
|
|
|
11594
10945
|
throw new Error(`Unrecognized Message type: { name: ${MessageHeader[type]}, type: ${type} }`);
|
|
11595
10946
|
});
|
|
11596
10947
|
}
|
|
11597
|
-
function decodeSchema(_schema, dictionaries = /* @__PURE__ */ new Map(),
|
|
10948
|
+
function decodeSchema(_schema, dictionaries = /* @__PURE__ */ new Map(), version7 = MetadataVersion.V5) {
|
|
11598
10949
|
const fields = decodeSchemaFields(_schema, dictionaries);
|
|
11599
|
-
return new Schema2(fields, decodeCustomMetadata(_schema), dictionaries,
|
|
10950
|
+
return new Schema2(fields, decodeCustomMetadata(_schema), dictionaries, version7);
|
|
11600
10951
|
}
|
|
11601
|
-
function decodeRecordBatch(batch,
|
|
11602
|
-
const recordBatch = new RecordBatch2(batch.length(), decodeFieldNodes(batch), decodeBuffers(batch,
|
|
10952
|
+
function decodeRecordBatch(batch, version7 = MetadataVersion.V5) {
|
|
10953
|
+
const recordBatch = new RecordBatch2(batch.length(), decodeFieldNodes(batch), decodeBuffers(batch, version7), decodeBodyCompression(batch.compression()), decodeVariadicBufferCounts(batch));
|
|
11603
10954
|
return recordBatch;
|
|
11604
10955
|
}
|
|
11605
|
-
function decodeDictionaryBatch(batch,
|
|
11606
|
-
return new DictionaryBatch2(RecordBatch2.decode(batch.data(),
|
|
10956
|
+
function decodeDictionaryBatch(batch, version7 = MetadataVersion.V5) {
|
|
10957
|
+
return new DictionaryBatch2(RecordBatch2.decode(batch.data(), version7), batch.id(), batch.isDelta());
|
|
11607
10958
|
}
|
|
11608
10959
|
function decodeBufferRegion(b) {
|
|
11609
10960
|
return new BufferRegion(b.offset(), b.length());
|
|
@@ -11620,11 +10971,11 @@ return true;`);
|
|
|
11620
10971
|
}
|
|
11621
10972
|
return nodes;
|
|
11622
10973
|
}
|
|
11623
|
-
function decodeBuffers(batch,
|
|
10974
|
+
function decodeBuffers(batch, version7) {
|
|
11624
10975
|
const bufferRegions = [];
|
|
11625
10976
|
for (let b, i = -1, j = -1, n = batch.buffersLength(); ++i < n; ) {
|
|
11626
10977
|
if (b = batch.buffers(i)) {
|
|
11627
|
-
if (
|
|
10978
|
+
if (version7 < MetadataVersion.V4) {
|
|
11628
10979
|
b.bb_pos += 8 * (i + 1);
|
|
11629
10980
|
}
|
|
11630
10981
|
bufferRegions[++j] = BufferRegion.decode(b);
|
|
@@ -11949,10 +11300,10 @@ return true;`);
|
|
|
11949
11300
|
buf = new ByteBuffer3(toUint8Array(buf));
|
|
11950
11301
|
const _message = Message.getRootAsMessage(buf);
|
|
11951
11302
|
const bodyLength = _message.bodyLength();
|
|
11952
|
-
const
|
|
11303
|
+
const version7 = _message.version();
|
|
11953
11304
|
const headerType = _message.headerType();
|
|
11954
11305
|
const metadata = decodeMessageCustomMetadata(_message);
|
|
11955
|
-
const message = new _Message(bodyLength,
|
|
11306
|
+
const message = new _Message(bodyLength, version7, headerType, void 0, metadata);
|
|
11956
11307
|
message._createHeader = decodeMessageHeader(_message, headerType);
|
|
11957
11308
|
return message;
|
|
11958
11309
|
}
|
|
@@ -12029,8 +11380,8 @@ return true;`);
|
|
|
12029
11380
|
isDictionaryBatch() {
|
|
12030
11381
|
return this.headerType === MessageHeader.DictionaryBatch;
|
|
12031
11382
|
}
|
|
12032
|
-
constructor(bodyLength,
|
|
12033
|
-
this._version =
|
|
11383
|
+
constructor(bodyLength, version7, headerType, header, metadata) {
|
|
11384
|
+
this._version = version7;
|
|
12034
11385
|
this._headerType = headerType;
|
|
12035
11386
|
this.body = new Uint8Array(0);
|
|
12036
11387
|
this._compression = header === null || header === void 0 ? void 0 : header.compression;
|
|
@@ -13193,21 +12544,21 @@ return true;`);
|
|
|
13193
12544
|
return nullCount <= 0 ? new Uint8Array(0) : packBools(this.sources[offset]);
|
|
13194
12545
|
}
|
|
13195
12546
|
readOffsets(_type, { offset } = this.nextBufferRange()) {
|
|
13196
|
-
return
|
|
12547
|
+
return toArrayBufferView(Uint8Array, toArrayBufferView(_type.OffsetArrayType, this.sources[offset]));
|
|
13197
12548
|
}
|
|
13198
12549
|
readTypeIds(type, { offset } = this.nextBufferRange()) {
|
|
13199
|
-
return
|
|
12550
|
+
return toArrayBufferView(Uint8Array, toArrayBufferView(type.ArrayType, this.sources[offset]));
|
|
13200
12551
|
}
|
|
13201
12552
|
readData(type, { offset } = this.nextBufferRange()) {
|
|
13202
12553
|
const { sources } = this;
|
|
13203
12554
|
if (DataType.isTimestamp(type)) {
|
|
13204
|
-
return
|
|
12555
|
+
return toArrayBufferView(Uint8Array, Int642.convertArray(sources[offset]));
|
|
13205
12556
|
} else if ((DataType.isInt(type) || DataType.isTime(type)) && type.bitWidth === 64 || DataType.isDuration(type)) {
|
|
13206
|
-
return
|
|
12557
|
+
return toArrayBufferView(Uint8Array, Int642.convertArray(sources[offset]));
|
|
13207
12558
|
} else if (DataType.isDate(type) && type.unit === DateUnit.MILLISECOND) {
|
|
13208
|
-
return
|
|
12559
|
+
return toArrayBufferView(Uint8Array, Int642.convertArray(sources[offset]));
|
|
13209
12560
|
} else if (DataType.isDecimal(type)) {
|
|
13210
|
-
return
|
|
12561
|
+
return toArrayBufferView(Uint8Array, Int128.convertArray(sources[offset]));
|
|
13211
12562
|
} else if (DataType.isBinary(type) || DataType.isLargeBinary(type) || DataType.isFixedSizeBinary(type)) {
|
|
13212
12563
|
return binaryDataFromJSON(sources[offset]);
|
|
13213
12564
|
} else if (DataType.isBinaryView(type)) {
|
|
@@ -13228,7 +12579,7 @@ return true;`);
|
|
|
13228
12579
|
break;
|
|
13229
12580
|
}
|
|
13230
12581
|
}
|
|
13231
|
-
return
|
|
12582
|
+
return toArrayBufferView(Uint8Array, toArrayBufferView(type.ArrayType, sources[offset].map((x) => +x)));
|
|
13232
12583
|
}
|
|
13233
12584
|
readVariadicBuffers(length) {
|
|
13234
12585
|
const buffers = [];
|
|
@@ -14846,7 +14197,7 @@ return true;`);
|
|
|
14846
14197
|
});
|
|
14847
14198
|
|
|
14848
14199
|
// ../../node_modules/apache-arrow/recordbatch.mjs
|
|
14849
|
-
function ensureSameLengthData(schema, chunks, maxLength = chunks.reduce((
|
|
14200
|
+
function ensureSameLengthData(schema, chunks, maxLength = chunks.reduce((max, col) => Math.max(max, col.length), 0)) {
|
|
14850
14201
|
var _b2;
|
|
14851
14202
|
const fields = [...schema.fields];
|
|
14852
14203
|
const children = [...chunks];
|
|
@@ -15511,8 +14862,8 @@ return true;`);
|
|
|
15511
14862
|
});
|
|
15512
14863
|
|
|
15513
14864
|
// ../../node_modules/apache-arrow/ipc/reader.mjs
|
|
15514
|
-
function shouldAutoDestroy(
|
|
15515
|
-
return options && typeof options["autoDestroy"] === "boolean" ? options["autoDestroy"] :
|
|
14865
|
+
function shouldAutoDestroy(self2, options) {
|
|
14866
|
+
return options && typeof options["autoDestroy"] === "boolean" ? options["autoDestroy"] : self2["autoDestroy"];
|
|
15516
14867
|
}
|
|
15517
14868
|
function* readAllSync(source) {
|
|
15518
14869
|
const reader = RecordBatchReader.from(source);
|
|
@@ -17325,12 +16676,12 @@ return true;`);
|
|
|
17325
16676
|
return makeGaussianSplatsArrowTable(await parseSPZToGaussianSplats(data, options));
|
|
17326
16677
|
}
|
|
17327
16678
|
async function parseSPZToGaussianSplats(data, options) {
|
|
17328
|
-
const
|
|
17329
|
-
if (
|
|
16679
|
+
const version7 = detectSPZVersion(data);
|
|
16680
|
+
if (version7 === 0) {
|
|
17330
16681
|
return await parseLegacySPZ(data, options);
|
|
17331
16682
|
}
|
|
17332
|
-
if (
|
|
17333
|
-
throw new Error(`SPZLoader: version ${
|
|
16683
|
+
if (version7 !== SPZ_VERSION) {
|
|
16684
|
+
throw new Error(`SPZLoader: version ${version7} is not supported.`);
|
|
17334
16685
|
}
|
|
17335
16686
|
const header = parseSPZHeader(data);
|
|
17336
16687
|
const streamInfos = parseSPZStreamInfos(data, header, getSPZStreamByteLengths(header));
|
|
@@ -17824,7 +17175,7 @@ return true;`);
|
|
|
17824
17175
|
});
|
|
17825
17176
|
|
|
17826
17177
|
// src/splat-loader-types.ts
|
|
17827
|
-
async function
|
|
17178
|
+
async function preload3() {
|
|
17828
17179
|
const { SPLATLoaderWithParser: SPLATLoaderWithParser2 } = await Promise.resolve().then(() => (init_splat_loader(), splat_loader_exports));
|
|
17829
17180
|
return SPLATLoaderWithParser2;
|
|
17830
17181
|
}
|
|
@@ -17844,7 +17195,7 @@ return true;`);
|
|
|
17844
17195
|
shape: "arrow-table"
|
|
17845
17196
|
}
|
|
17846
17197
|
},
|
|
17847
|
-
preload
|
|
17198
|
+
preload: preload3
|
|
17848
17199
|
};
|
|
17849
17200
|
}
|
|
17850
17201
|
});
|
|
@@ -18230,7 +17581,7 @@ return true;`);
|
|
|
18230
17581
|
});
|
|
18231
17582
|
|
|
18232
17583
|
// src/ksplat-loader-types.ts
|
|
18233
|
-
async function
|
|
17584
|
+
async function preload4() {
|
|
18234
17585
|
const { KSPLATLoaderWithParser: KSPLATLoaderWithParser2 } = await Promise.resolve().then(() => (init_ksplat_loader(), ksplat_loader_exports));
|
|
18235
17586
|
return KSPLATLoaderWithParser2;
|
|
18236
17587
|
}
|
|
@@ -18250,7 +17601,7 @@ return true;`);
|
|
|
18250
17601
|
shape: "arrow-table"
|
|
18251
17602
|
}
|
|
18252
17603
|
},
|
|
18253
|
-
preload:
|
|
17604
|
+
preload: preload4
|
|
18254
17605
|
};
|
|
18255
17606
|
}
|
|
18256
17607
|
});
|
|
@@ -18275,7 +17626,7 @@ return true;`);
|
|
|
18275
17626
|
});
|
|
18276
17627
|
|
|
18277
17628
|
// src/spz-loader-types.ts
|
|
18278
|
-
async function
|
|
17629
|
+
async function preload5() {
|
|
18279
17630
|
const { SPZLoaderWithParser: SPZLoaderWithParser2 } = await Promise.resolve().then(() => (init_spz_loader(), spz_loader_exports));
|
|
18280
17631
|
return SPZLoaderWithParser2;
|
|
18281
17632
|
}
|
|
@@ -18295,7 +17646,7 @@ return true;`);
|
|
|
18295
17646
|
shape: "arrow-table"
|
|
18296
17647
|
}
|
|
18297
17648
|
},
|
|
18298
|
-
preload:
|
|
17649
|
+
preload: preload5
|
|
18299
17650
|
};
|
|
18300
17651
|
}
|
|
18301
17652
|
});
|
|
@@ -18997,10 +18348,10 @@ return true;`);
|
|
|
18997
18348
|
Object.defineProperty(this, key, { configurable: true, writable: true, value });
|
|
18998
18349
|
broke = broke || outer;
|
|
18999
18350
|
return value;
|
|
19000
|
-
} catch (
|
|
18351
|
+
} catch (err) {
|
|
19001
18352
|
delete this[key];
|
|
19002
18353
|
broke = broke || outer;
|
|
19003
|
-
throw
|
|
18354
|
+
throw err;
|
|
19004
18355
|
}
|
|
19005
18356
|
},
|
|
19006
18357
|
set(value) {
|
|
@@ -19588,18 +18939,18 @@ return true;`);
|
|
|
19588
18939
|
return result.issues.length === 0;
|
|
19589
18940
|
};
|
|
19590
18941
|
_encode = (_Err) => {
|
|
19591
|
-
const
|
|
18942
|
+
const parse4 = _parse(_Err);
|
|
19592
18943
|
const fn = (schema, value, _ctx, _params) => {
|
|
19593
18944
|
const ctx = _ctx ? { ..._ctx, direction: "backward" } : { direction: "backward" };
|
|
19594
|
-
return
|
|
18945
|
+
return parse4(schema, value, ctx, finalizeParams(fn, _params));
|
|
19595
18946
|
};
|
|
19596
18947
|
return fn;
|
|
19597
18948
|
};
|
|
19598
18949
|
encode = /* @__PURE__ */ _encode($ZodRealError);
|
|
19599
18950
|
_decode = (_Err) => {
|
|
19600
|
-
const
|
|
18951
|
+
const parse4 = _parse(_Err);
|
|
19601
18952
|
const fn = (schema, value, _ctx, _params) => {
|
|
19602
|
-
return
|
|
18953
|
+
return parse4(schema, value, _ctx, finalizeParams(fn, _params));
|
|
19603
18954
|
};
|
|
19604
18955
|
return fn;
|
|
19605
18956
|
};
|
|
@@ -19754,10 +19105,10 @@ return true;`);
|
|
|
19754
19105
|
duration = /^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;
|
|
19755
19106
|
extendedDuration = /^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/;
|
|
19756
19107
|
guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/;
|
|
19757
|
-
uuid = (
|
|
19758
|
-
if (!
|
|
19108
|
+
uuid = (version7) => {
|
|
19109
|
+
if (!version7)
|
|
19759
19110
|
return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;
|
|
19760
|
-
return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${
|
|
19111
|
+
return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version7}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`);
|
|
19761
19112
|
};
|
|
19762
19113
|
uuid4 = /* @__PURE__ */ uuid(4);
|
|
19763
19114
|
uuid6 = /* @__PURE__ */ uuid(6);
|
|
@@ -20351,10 +19702,10 @@ ${content.join("\n")}
|
|
|
20351
19702
|
});
|
|
20352
19703
|
|
|
20353
19704
|
// ../../node_modules/zod/v4/core/versions.js
|
|
20354
|
-
var
|
|
19705
|
+
var version4;
|
|
20355
19706
|
var init_versions = __esm({
|
|
20356
19707
|
"../../node_modules/zod/v4/core/versions.js"() {
|
|
20357
|
-
|
|
19708
|
+
version4 = {
|
|
20358
19709
|
major: 4,
|
|
20359
19710
|
minor: 6,
|
|
20360
19711
|
patch: 5
|
|
@@ -21035,7 +20386,7 @@ ${content.join("\n")}
|
|
|
21035
20386
|
inst ?? (inst = {});
|
|
21036
20387
|
inst._zod.def = def;
|
|
21037
20388
|
inst._zod.bag = inst._zod.bag || {};
|
|
21038
|
-
inst._zod.version =
|
|
20389
|
+
inst._zod.version = version4;
|
|
21039
20390
|
const defChecks = inst._zod.def.checks;
|
|
21040
20391
|
const checks = inst._zod.traits.has("$ZodCheck") ? [inst, ...defChecks ?? []] : defChecks?.length ? [...defChecks] : [];
|
|
21041
20392
|
for (const ch of checks) {
|
|
@@ -31149,9 +30500,9 @@ ${content.join("\n")}
|
|
|
31149
30500
|
const clone2 = withParser(schema, parser);
|
|
31150
30501
|
clone2._zod.bag.validator = compileValidator(schema, parser);
|
|
31151
30502
|
return clone2;
|
|
31152
|
-
} catch (
|
|
30503
|
+
} catch (err) {
|
|
31153
30504
|
if (options?.strict)
|
|
31154
|
-
throw
|
|
30505
|
+
throw err;
|
|
31155
30506
|
return schema;
|
|
31156
30507
|
}
|
|
31157
30508
|
}
|
|
@@ -31241,8 +30592,8 @@ ${code}
|
|
|
31241
30592
|
try {
|
|
31242
30593
|
const factory = new F(...constantNames, factoryCode);
|
|
31243
30594
|
fn = factory(...constantValues);
|
|
31244
|
-
} catch (
|
|
31245
|
-
throw new ZodCompileUnsupportedError(`this schema (generated code failed to evaluate: ${
|
|
30595
|
+
} catch (err) {
|
|
30596
|
+
throw new ZodCompileUnsupportedError(`this schema (generated code failed to evaluate: ${err.message})`);
|
|
31246
30597
|
}
|
|
31247
30598
|
if (options?.debug) {
|
|
31248
30599
|
fn.code = fullCode;
|
|
@@ -31280,9 +30631,9 @@ ${code}
|
|
|
31280
30631
|
const varCounter = ctx.varCounter;
|
|
31281
30632
|
try {
|
|
31282
30633
|
return generateCheck(doc, ctx, schema, accessor, needsValue);
|
|
31283
|
-
} catch (
|
|
31284
|
-
if (!(
|
|
31285
|
-
throw
|
|
30634
|
+
} catch (err) {
|
|
30635
|
+
if (!(err instanceof ZodCompileUnsupportedError) || !err.islandable)
|
|
30636
|
+
throw err;
|
|
31286
30637
|
doc.content.length = contentLen;
|
|
31287
30638
|
if (ctx.constants.size > constantCount) {
|
|
31288
30639
|
const trailing = Array.from(ctx.constants.keys()).slice(constantCount);
|
|
@@ -31333,9 +30684,9 @@ ${code}
|
|
|
31333
30684
|
break;
|
|
31334
30685
|
}
|
|
31335
30686
|
case "max_length": {
|
|
31336
|
-
const
|
|
31337
|
-
const len = codePointLengthVar(doc, ctx, currentAccessor, `${currentAccessor}.length > ${
|
|
31338
|
-
doc.write(`if (${len} > ${
|
|
30687
|
+
const max = numericOperand(def.maximum, "max_length");
|
|
30688
|
+
const len = codePointLengthVar(doc, ctx, currentAccessor, `${currentAccessor}.length > ${max}`);
|
|
30689
|
+
doc.write(`if (${len} > ${max}) return INVALID;`);
|
|
31339
30690
|
break;
|
|
31340
30691
|
}
|
|
31341
30692
|
case "length_equals": {
|
|
@@ -35515,7 +34866,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
35515
34866
|
validate: () => validate,
|
|
35516
34867
|
validateAsync: () => validateAsync,
|
|
35517
34868
|
validateURL: () => validateURL,
|
|
35518
|
-
version: () =>
|
|
34869
|
+
version: () => version4,
|
|
35519
34870
|
withParser: () => withParser
|
|
35520
34871
|
});
|
|
35521
34872
|
var init_core2 = __esm({
|
|
@@ -35611,15 +34962,15 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
35611
34962
|
if (_installedErrorProtos.has(proto))
|
|
35612
34963
|
return;
|
|
35613
34964
|
_installedErrorProtos.add(proto);
|
|
35614
|
-
_lazyMethod(proto, "format", (
|
|
35615
|
-
_lazyMethod(proto, "flatten", (
|
|
35616
|
-
_lazyMethod(proto, "addIssue", (
|
|
35617
|
-
|
|
35618
|
-
|
|
34965
|
+
_lazyMethod(proto, "format", (self2) => (mapper) => formatError(self2, mapper));
|
|
34966
|
+
_lazyMethod(proto, "flatten", (self2) => (mapper) => flattenError(self2, mapper));
|
|
34967
|
+
_lazyMethod(proto, "addIssue", (self2) => (issue2) => {
|
|
34968
|
+
self2.issues.push(issue2);
|
|
34969
|
+
self2.message = JSON.stringify(self2.issues, jsonStringifyReplacer, 2);
|
|
35619
34970
|
});
|
|
35620
|
-
_lazyMethod(proto, "addIssues", (
|
|
35621
|
-
|
|
35622
|
-
|
|
34971
|
+
_lazyMethod(proto, "addIssues", (self2) => (issues2) => {
|
|
34972
|
+
self2.issues.push(...issues2);
|
|
34973
|
+
self2.message = JSON.stringify(self2.issues, jsonStringifyReplacer, 2);
|
|
35623
34974
|
});
|
|
35624
34975
|
Object.defineProperty(proto, "isEmpty", {
|
|
35625
34976
|
configurable: true,
|
|
@@ -36983,7 +36334,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
36983
36334
|
$ZodObjectJIT.init(inst, def);
|
|
36984
36335
|
ZodType.init(inst, def);
|
|
36985
36336
|
inst._zod.processJSONSchema = (ctx, json2, params) => objectProcessor(inst, ctx, json2, params);
|
|
36986
|
-
util_exports.installLazyProp(inst, "shape", (
|
|
36337
|
+
util_exports.installLazyProp(inst, "shape", (self2) => self2._zod.def.shape, false);
|
|
36987
36338
|
}, {
|
|
36988
36339
|
keyof() {
|
|
36989
36340
|
return _enum2(Object.keys(this._zod.def.shape));
|
|
@@ -37995,10 +37346,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
37995
37346
|
} catch {
|
|
37996
37347
|
throw new Error("fromJSONSchema input is not valid JSON (possibly cyclic); use $defs/$ref for recursive schemas");
|
|
37997
37348
|
}
|
|
37998
|
-
const
|
|
37349
|
+
const version7 = detectVersion(normalized, params?.defaultTarget);
|
|
37999
37350
|
const defs = normalized.$defs || normalized.definitions || {};
|
|
38000
37351
|
const ctx = {
|
|
38001
|
-
version:
|
|
37352
|
+
version: version7,
|
|
38002
37353
|
defs,
|
|
38003
37354
|
refs: /* @__PURE__ */ new Map(),
|
|
38004
37355
|
processing: /* @__PURE__ */ new Set(),
|
|
@@ -38836,34 +38187,91 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
38836
38187
|
}
|
|
38837
38188
|
});
|
|
38838
38189
|
|
|
38839
|
-
//
|
|
38840
|
-
var
|
|
38841
|
-
var
|
|
38842
|
-
"
|
|
38190
|
+
// compress-utils-wasm:/home/runner/work/loaders.gl/loaders.gl/node_modules/compress-utils/dist/algorithms/zlib/decompress/zlib.wasm
|
|
38191
|
+
var zlib_default;
|
|
38192
|
+
var init_zlib = __esm({
|
|
38193
|
+
"compress-utils-wasm:/home/runner/work/loaders.gl/loaders.gl/node_modules/compress-utils/dist/algorithms/zlib/decompress/zlib.wasm"() {
|
|
38194
|
+
zlib_default = "data:application/wasm;base64,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IAFCgICAgICAgICAf1EbrXwiA1atfCADIAMgCSABQoCAgICAgICAgH+FhFCtgyICfCIBIAJUrXwgC4QhCwsgACABNwMAIAAgCzcDCCAEQeAAaiQAC6MJAgR/BH4jAEHgAGsiBSQAIARCgICAgICAgICAf4UhCiAEQv///////////wCDIQQCQAJAIAFQIgYgAkL///////////8AgyIJQoCAgICAgMD//wB9QoCAgICAgMCAgH9UIAlQG0UEQCADUCAEQoCAgICAgMD//wB9IgtCgICAgICAwICAf1QgC0KAgICAgIDAgIB/URtFDQELIAYgCUKAgICAgIDA//8AVCAJQoCAgICAgMD//wBRG0UEQCACQoCAgICAgCCEIQIMAgsgA1AgBEKAgICAgIDA//8AVCAEQoCAgICAgMD//wBRG0UEQCAKQoCAgICAgCCEIQIgAyEBDAILIAEgCUKAgICAgIDA//8AhYRQBEBCgICAgICA4P//ACACIAEgA4UgAiAKhUKAgICAgICAgIB/hYRQIgYbIQJCACABIAYbIQEMAgsCQCADIARCgICAgICAwP//AIWEUA0AIAEgCYRQBEAgAyAEhFBFDQEgASADgyEBIAIgCoMhAgwDCyADIASEUEUNAQwCCyADIQEgCiECDAELIAMgASABIANUIAQgCVYgBCAJURsiCBshCSAKIAIgCBsiDEL///////8/gyEEIAIgCiAIGyILQjCIp0H//wFxIQcgDEIwiKdB//8BcSIGRQRAIAVB0ABqIAkgBCAEeSAJeUJAfSAEQgBSG6dBD2tB/wFxIgYQB0EBIAZrIQYgBSkDUCEJIAUpA1ghBAsgASADIAgbIQEgC0L///////8/gyEDIAdFBEAgBUFAayABIAMgA3kgAXlCQH0gA0IAUhunQQ9rQf8BcSIHEAdBASAHayEHIAUpA0ghAyAFKQNAIQELIANCA4YgAUI9iIRCgICAgICAgASEIQMgBEIDhiAJQj2IhCABQgOGIQQgAiAKhSEBAkAgBiAHRg0AIAYgB2siB0H/AEsEQEIAIQNCASEEDAELIAVBMGogBCADQQAgB2tB/wBxEAcgBUEgaiAEIAMgBxAGIAUpAyAgBSkDMCAFKQM4hEIAUq2EIQQgBSkDKCEDC0KAgICAgICABIQhCyAJQgOGIQogDEKAgICAgICAgIB/gyEJAkACQAJAIAFCAFMEQEIAIQFCACECIAQgCoUgAyALhYRQRQ0BDAQLIAQgCnwiASAEVK0gAyALfHwiAkKAgICAgICACINQDQEgBEIBgyACQj+GIAFCAYiEhCEBIAZBAWohBiACQgGIIQIMAQsgCiAEfSEBIAsgA30gBCAKVq19IgJC/////////wNWDQAgBUEQaiABIAIgAnkgAXlCQH0gAkIAUhunQQxrIgcQByAGIAdrIQYgBSkDGCECIAUpAxAhAQwBCyAGQf7/AUwNACAJQoCAgICAgMD//wCEIQJCACEBDAELIAZBAEwEQCAFIAEgAkEEIAZrEAYgBSkDCCAJhCECIAUpAwAhAQwBCyACQj2GIAFCA4iEIgMgAUIHgyIEQgRWrXwiASADVK0gAkIDiEL///////8/gyAGrUIwhoQgCYR8IAEgBEIEUa2DIgIgAXwiASACVK18IQILIAAgATcDACAAIAI3AwggBUHgAGokAAuMCQIEfgR/IwBB4ABrIgkkACAEQv///////////wCDIQUCQAJAIAFQIgogAkL///////////8AgyIGQoCAgICAgMD//wB9QoCAgICAgMCAgH9UIAZQG0UEQCADUCAFQoCAgICAgMD//wB9IgdCgICAgICAwICAf1QgB0KAgICAgIDAgIB/URtFDQELIAogBkKAgICAgIDA//8AVCAGQoCAgICAgMD//wBRG0UEQCACQoCAgICAgCCEIQQgASEDDAILIANQIAVCgICAgICAwP//AFQgBUKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCEEDAILIAEgBkKAgICAgIDA//8AhYRQBEBCgICAgICA4P//ACACIAEgA4UgAiAEhUKAgICAgICAgIB/hYRQIgobIQRCACABIAobIQMMAgsgAyAFQoCAgICAgMD//wCFhFANASABIAaEUARAIAMgBYRQRQ0CIAEgA4MhAyACIASDIQQMAgsgAyAFhFBFDQAgASEDIAIhBAwBCyADIAEgASADVCAFIAZWIAUgBlEbIgwbIQYgBCACIAwbIghC////////P4MhBSACIAQgDBsiB0IwiKdB//8BcSELIAhCMIinQf//AXEiCkUEQCAJQdAAaiAGIAUgBXkgBnlCQH0gBUIAUhunQQ9rQf8BcSIKEAdBASAKayEKIAkpA1AhBiAJKQNYIQULIAEgAyAMGyEDIAdC////////P4MhASALBH4gAQUgCUFAayADIAEgAXkgA3lCQH0gAUIAUhunQQ9rQf8BcSILEAdBASALayELIAkpA0AhAyAJKQNIC0IDhiADQj2IhEKAgICAgICABIQhASAFQgOGIAZCPYiEIANCA4YhBSACIASFIQMCQCAKIAtGDQAgCiALayILQf8ASwRAQgAhAUIBIQUMAQsgCUEwaiAFIAFBACALa0H/AHEQByAJQSBqIAUgASALEAYgCSkDICAJKQMwIAkpAziEQgBSrYQhBSAJKQMoIQELQoCAgICAgIAEhCEHIAZCA4YhAiAIQoCAgICAgICAgH+DIQYCQAJAAkAgA0IAUwRAQgAhA0IAIQQgAiAFhSABIAeFhFBFDQEMBAsgAiAFfCIDIAVUrSABIAd8fCIEQoCAgICAgIAIg1ANASAFQgGDIARCP4YgA0IBiISEIQMgCkEBaiEKIARCAYghBAwBCyACIAV9IQMgByABfSACIAVUrX0iBEL/////////A1YNACAJQRBqIAMgBCAEeSADeUJAfSAEQgBSG6dBDGsiCxAHIAogC2shCiAJKQMYIQQgCSkDECEDDAELIApB/v8BTA0AIAZCgICAgICAwP//AIQhBEIAIQMMAQsgCkEATARAIAkgAyAEQQQgCmsQBiAJKQMIIAaEIQQgCSkDACEDDAELIARCPYYgA0IDiIQiAiADQgeDIgNCBFatfCIBIAJUrSAEQgOIQv///////z+DIAqtQjCGhCAGhHwgASABIANCBFGtgyIBfCIDIAFUrXwhBAsgACADNwMAIAAgBDcDCCAJQeAAaiQAC+ABAgF/An5BASEEAkAgAEIAUiABQv///////////wCDIgVCgICAgICAwP//AFYgBUKAgICAgIDA//8AURsNACACUCADQv///////////wCDIgZCgICAgICAwP//AFQgBkKAgICAgIDA//8AURtFDQAgACAChCAFIAaEhFAEQEEADwsCQAJAIAEgA4NCAFkEQCAAIAJUIAEgA1MgASADURtFDQFBfw8LIAAgAlYgASADVSABIANRG0UNAUF/DwsgACAChSABIAOFhEIAUg8LIAAgAoUgASADhYRCAFIhBAsgBAtjACAAQgBSIAFC////////////AIMiAEKAgICAgIDA//8AViAAQoCAgICAgMD//wBRGyACQgBSIANC////////////AIMiAEKAgICAgIDA//8AViAAQoCAgICAgMD//wBRG3ILUQEBfgJAIANBP0oEQCACIANBP3GtiCEBQgAhAgwBCyADRQ0AIAJBACADa0E/ca2GIAEgA60iBIiEIQEgAiAEiCECCyAAIAE3AwAgACACNwMIC1EBAX4CQCADQT9KBEAgASADQT9xrYYhAkIAIQEMAQsgA0UNACACIAOtIgSGIAFBACADa0E/ca2IhCECIAEgBIYhAQsgACABNwMAIAAgAjcDCAsyAQF/IABBEGpBBBAJIgEEQCABIACtQgWGQgSENwMIIAFBEGoPC0HM3YAIQTA2AgBBAAvrAgEDfyMAQRBrIgQkACAEIAFBH3E6AA8CQEF/IABBBGoiAiAAIAJLGyIAQQEgAXQiASAAIAFLGyIAQQFrZyIBRQRAQQAhAQwBC0EgIAFrIgFB//8DcUEDayIDQQ1PBEBCAUEgIABBg4AEakEQdkEBa2drIgGthqchACABQf//A3FBAnQiAigC7NqACCIBBEAgAkHs2oAIaiAAQRB0IAFqQQRrKAIANgIADAILQQAgAEAAIgBBEHQgAEF/RhshAQwBC0IBIAGthqchAiADQQJ0IgAoArjagAgiAQRAIABBuNqACGogASACakEEaygCADYCAAwBCyAAQYTagAhqIQMgACgChNqACCIBQf//A3FFBEBBACEBIAMgAgJ/QezagAgoAgAiAARAQezagAggACgC/P8DNgIAIAAMAQtBAUAAIgBBAWpBAkkNAiAAQRB0CyIBajYCAAwBCyADIAEgAmo2AgALIARBEGokACABC5YBAgN/AX4jAEEQayICJAAgAiAArSIEQiCIpyIAQQBHOgAMAkACQCAARQRAIASnIgFBEGpBBBAJIgANAUHM3YAIQTA2AgAMAgtBzN2ACEEwNgIADAELIAAgAa1CBYZCBIQ3AwggAEEQaiEDIAFFDQBBACEAA0AgACADakEAOgAAIABBAWoiACABSQ0ACwsgAkEQaiQAIAML4gECBH8BfiMAQRBrIgMkAAJAIABFDQAgAyAAQQhrKQMAIgWnIgFBH3EiAjoADiADIAI6AA8gAEEBIAF0IgFrIQBBICAFQgWIpyABakEEaiICIAEgASACSRsiAUEBa2drIgJB//8D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CyAHQQhJDQADQCAGQeACaiAoICdCgICAgICAwIHAABABIAZB0AJqIAYpA+ACIAYpA+gCQoCAgICAgMCBwAAQASAGQcACaiAGKQPQAiAGKQPYAkKAgICAgIDAgcAAEAEgBkGwAmogBikDwAIgBikDyAJCgICAgICAwIHAABABIAZBoAJqIAYpA7ACIAYpA7gCQoCAgICAgMCBwAAQASAGQZACaiAGKQOgAiAGKQOoAkKAgICAgIDAgcAAEAEgBkGAAmogBikDkAIgBikDmAJCgICAgICAwIHAABABIAZB8AFqIAYpA4ACIAYpA4gCQoCAgICAgMCBwAAQASAGQeABaiAGKQPwASAGKQP4AUKAgICAgIDAgcAAEAEgBkHQAWogBikD4AEgBikD6AFCgICAgICAwIHAABABIAZBwAFqIAYpA9ABIAYpA9gBQoCAgICAgMCBwAAQASAGQbABaiAGKQPAASAGKQPIAUKAgICAgIDAgcAAEAEgBkGgAWogBikDsAEgBikDuAFCgICAgICAwIHAABABIAZBkAFqIAYpA6ABIAYpA6gBQoCAgICAgMCBwAAQASAGQYABaiAGKQOQASAGKQOYAUKAgICAgIDAgcAAEAEgBkHwAGogBikDgAEgBikDiAFCgICAgICAwIHAABABIAYpA3ghJyAGKQNwISggBUEQayIFDQALCyAILQAAQS1GBEAgBkFAayAlICZCgICAgICAgICAf4UgKCAnEAIgBkEwaiAoICcgBikDQCAGKQNIEAMgBikDOEKAgICAgICAgIB/hSEmIAYpAzAhJQwBCyAGQeAAaiAlICYgKCAnEAMgBkHQAGogBikDYCAGKQNoICggJxACIAYpA1ghJiAGKQNQISULAkAgBigC7AUiCwRAIAsgC0EfdSIFcyAFayEFIBghBwNAIAdBAWsiByAFQQpuIglB9gFsIAVqQTByOgAAIAVBCkkgCSEFRQ0ACwwBCyAGQTA6AL8FIB8hBwsgF0ECciEMIBJBIHEhDSAHQQJrIg8gEkEPajoAACAHQQFrQS1BKyALQQBIGzoAACAQQQhxRSAKQQBMcSELIAZBwAVqIQcDQCAHIgUjAEEQayIHJAACf0EAICZCMIinIglB//8BcSIRQf7/AE0NABogJkI/h6dB/////wdzIBFBnoABa0FgTQ0AGiAHICUgJkL/////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KAIAKAIoEQQAIQULIAULUAEBf0EBIQMCQCAARSACRXINACABRQRAIAIoAgANAQtBsNuACEEAOgAAIAAoAgQgASACIAAoAgAoAiwRAAAiAw0AIABBATYCCEEAIQMLIAMLLgECfyAABEACQCAAKAIAIgFFDQAgACgCBCICRQ0AIAIgASgCMBEDAAsgABALCwuTAgEDfwJAIAIoAhAiAwRAIAIoAhQhBQwBCyACIAIoAjwiBEEBayAEcjYCPCACKAIAIgRBCHEEQCACIARBIHI2AgAPCyACQgA3AgQgAiACKAIoIgU2AhggAiAFNgIUIAIgBSACKAIsaiIDNgIQCyADIAVrIAFJBEAgAiAAIAEgAigCIBEAABoPCwJAAkAgAigCQEEASARAIAAhBAwBCyABRQRAIAAhBAwBCyABIQMCQANAIAAgA2oiBEEBay0AAEEKRg0BIANBAWsiAw0ACyAAIQQMAQsgAiAAIAMgAigCIBEAACADSQ0BIAEgA2shASACKAIUIQULIAEEQCAFIAQgAfwKAAALIAIgAigCFCABajYCFAsL8wYDA34BfwF8IwBBEGsiBiQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAUEJaw4SAAECBQMEBgcICQoLDA0ODxAREgsgAiACKAIAIgFBBGo2AgAgACABKAIANgIADBELIAIgAigCACIBQQRqNgIAIAAgATQCADcDAAwQCyACIAIoAgAiAUEEajYCACAAIAE1AgA3AwAMDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADA4LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAAwNCyACIAIoAgBBB2pBeHEiAUEIajYCACAAIAEpAwA3AwAMDAsgAiACKAIAIgFBBGo2AgAgACABMgEANwMADAsLIAIgAigCACIBQQRqNgIAIAAgATMBADcDAAwKCyACIAIoAgAiAUEEajYCACAAIAEwAAA3AwAMCQsgAiACKAIAIgFBBGo2AgAgACABMQAANwMADAgLIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAAwHCyACIAIoAgAiAUEEajYCACAAIAE1AgA3AwAMBgsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMADAULIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAAwECyACIAIoAgAiAUEEajYCACAAIAE0AgA3AwAMAwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADAILIAIgAigCAEEHakF4cSIBQQhqNgIAIAErAwAhByMAQRBrIgEkAAJ+IAe9IgVC////////////AIMiA0KAgICAgICACH1CgICAgICAgPD/AFQEQCADQjyGIQQgA0IEiEKAgICAgICAgDx8DAELIANCgICAgICAgPj/AFoEQCADQjyGIQQgA0IEiEKAgICAgIDA//8AhAwBC0IAIANQDQAaIAEgA0IAIAN5pyICQTFqEAcgASkDACEEIAEpAwhCgICAgICAwACFQYH4ACACQfUAakH/AHFrrUIwhoQLIQMgBiAENwMAIAYgAyAFQoCAgICAgICAgH+DhDcDCCABQRBqJAAgACAGKQMINwMIIAAgBikDADcDAAwBCyACIAIoAgBBD2pBcHEiAUEQajYCACAAIAEpAwA3AwAgACABKQMINwMICyAGQRBqJAALhwEBAX8jAEGAAmsiBSQAAkAgBEGAwARxIAIgA0xyDQAgAiADayIDQYACIANBgAJJIgIbIgQEQCAFIAEgBPwLAAsgAkUEQANAIAAtAABBIHFFBEAgBUGAAiAAEBoLIANBgAJrIgNB/wFLDQALCyAALQAAQSBxDQAgBSADIAAQGgsgBUGAAmokAAsOACAAIAEgAiADQQ8QMAv3AgEDf0F6IQJB3IqACC0AAEExRgR/IABBADYCGCAAKAIgIgJFBEAgAEEANgIoIABBAjYCIEECIQILIAAoAiRFBEAgAEEDNgIkCyAAKAIoQQFB0DcgAhEAACICRQRAQXwPCyACQQhqQQBByDf8CwAgAkG0/gA2AgQgAiAANgIAIAAgAjYCHAJAIAAoAiBFIAAoAiQiBEVyDQAgASABQR91IgNzIANrIgNBCGtBCE9BACADGw0AIAJBADYCNCACQgA3AiwgAiADNgIoIAJBAEEFIAFBAEgiARsiAzYCDCACQQA2AiAgAEEANgIsIABCADcCFCAAQQA2AgggAUUEQCAAIANBAXE2AjALIAJCADcCPCACQQA2AiQgAkGAgAI2AhggAkKAgICAcDcCECACQrT+ADcCBCACQoGAgIBwNwLENyACIAJBtApqIgA2AnAgAiAANgJUIAIgADYCUEEADwsgACgCKCACIAQRAQAgAEEANgIcQX4FQXoLC65gASx/IwBBEGsiFyQAQX4hHwJAIABFDQAgACgCIEUNACAAKAIkRQ0AIAAoAhwiBUUNACAFKAIAIABHDQAgBSgCBCIHQbT+AGtBH0sNACAAKAIMIhBFDQAgACgCACICRQRAIAAoAgQNAQsgB0G//gBGBEAgBUHA/gA2AgRBwP4AIQcLIAVB9ABqIRQgBUHcAGohLCAFQfQFaiEiIAVB2ABqISUgBUHwAGohIyAFQbQKaiEbIAUoAkAhBiAFKAI8IQggACgCBCImIQQgACgCECIPIRMCQAJAA0ACQEF9IQMCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAdBtP4Aaw4fCQgMDxIAQQFDBxcYGBkaGwYeBCssAy4CMCAhBShGR0gLIAUoAhQhBww/CyAFKAIUIQkMQAsgBSgCTCEJDCwLIAUoAkwhCQwpCyAFKAJsIQ0MJQsgBSgCDCEHDCELIAZBDk8NFiAERQ09IAZBCGohByACQQFqIQMgBEEBayEKIAItAAAgBnQgCGohCCAGQQVNDRUgAyECIAohBCAHIQYMFgsgBkEgTw0OIARFDTwgAkEBaiEDIARBAWshByACLQAAIAZ0IAhqIQggBkEXTQ0NIAMhAiAHIQQMDgsgBkEQTw0CIARFDTsgBkEIaiEHIAJBAWohAyAEQQFrIQogAi0AACAGdCAIaiEIIAZBB00NASADIQIgCiEEIAchBgwCCyAFKAIMIglFDRgCQCAGQRBPDQAgBEUNOyAGQQhqIQcgAkEBaiEDIARBAWshCiACLQAAIAZ0IAhqIQggBkEHSwRAIAMhAiAKIQQgByEGDAELIApFBEAgAyECQQAhBCAHIQYgDCEDDD4LIAZBEHIhBiAEQQJrIQQgAi0AASAHdCAIaiEIIAJBAmohAgsgCUECcUUgCEGflgJHckUEQCAFKAIoRQRAIAVBDzYCKAtBACEIIAVBADYCHCAXQZ+WAjsADEEAIBdBDGpBAhAsIQMgBUG1/gA2AgQgBSADNgIcQQAhBiAFKAIEIQcMPAsgBSgCJCIDBEAgA0F/NgIwC0EAIAlBAXEgCEEIdEGA/gNxIAhBCHZqQR9wG0UEQCAFQdH+ADYCBCAAQZSGgAg2AhggBSgCBCEHDDwLIAhBD3FBCEcEQCAFQdH+ADYCBCAAQfaIgAg2AhggBSgCBCEHDDwLIAhBBHYiA0EPcSIKQQhqIQkgCkEHTSAFKAIoIgcEfyAHBSAFIAk2AiggCQsgCU9xRQRAIAZBBGshBiAFQdH+ADYCBCAAQeqHgAg2AhggAyEIIAUoAgQhBww8CyAFQQE2AhxBACEGIAVBADYCFCAAQQE2AjAgBUGAAiAKdDYCGCAFQb3+AEG//gAgCEGAwABxGzYCBEEAIQggBSgCBCEHDDsLIApFBEAgAyECQQAhBCAHIQYgDCEDDDwLIAZBEHIhBiAEQQJrIQQgAi0AASAHdCAIaiEIIAJBAmohAgsgBSAINgIUIAhB/wFxQQhHBEAgBUHR/gA2AgQgAEH2iIAINgIYIAUoAgQhBww6CyAIQYDAA3EEQCAFQdH+ADYCBCAAQYWCgAg2AhggBSgCBCEHDDoLIAUoAiQiAwRAIAMgCEEIdkEBcTYCAAsCQCAIQYAEcUUNACAFLQAMQQRxRQ0AIBdBCDoADCAXIAhBCHY6AA0gBSAFKAIcIBdBDGpBAhAsNgIcCyAFQbb+ADYCBEEAIQZBACEIDAELIAZBH0sNAQsgBEUNNiACQQFqIQMgBEEBayEHIAItAAAgBnQgCGohCCAGQRdLBEAgAyECIAchBAwBCyAGQQhqIQogB0UEQCADIQJBACEEIAohBiAMIQMMOQsgAkECaiEDIARBAmshByACLQABIAp0IAhqIQggBkEPSwRAIAMhAiAHIQQMAQsgBkEQaiEKIAdFBEAgAyECQQAhBCAKIQYgDCEDDDkLIAJBA2ohAyAEQQNrIQcgAi0AAiAKdCAIaiEIIAZBB0sEQCADIQIgByEEDAELIAZBGGohBiAHRQRAIAMhAgw3CyAEQQRrIQQgAi0AAyAGdCAIaiEIIAJBBGohAgsgBSgCJCIDBEAgAyAINgIECwJAIAUtABVBAnFFDQAgBS0ADEEEcUUNACAXIAg2AAwgBSAFKAIcIBdBDGpBBBAsNgIcCyAFQbf+ADYCBEEAIQZBACEIDAELIAZBD0sNAQsgBEUNMyACQQFqIQMgBEEBayEHIAItAAAgBnQgCGohCCAGQQdLBEAgAyECIAchBAwBCyAGQQhqIQYgB0UEQCADIQIMNAsgBEECayEEIAItAAEgBnQgCGohCCACQQJqIQILIAUoAiQiAwRAIAMgCEEIdjYCDCADIAhB/wFxNgIICwJAIAUoAhQiB0GABHFFDQAgBS0ADEEEcUUNACAXIAg7AAwgBSAFKAIcIBdBDGpBAhAsNgIcCyAFQbj+ADYCBEEAIQNBACEGQQAhCCAHQYAIcQ0BDCwLIAUoAhQiB0GACHFFBEAgBiEDDCwLIAghAyAGQQ9LDQELIARFBEBBACEEIAMhCCAMIQMMMwsgAkEBaiEKIARBAWshCSACLQAAIAZ0IANqIQggBkEHSwRAIAohAiAJIQQMAQsgBkEIaiEGIAlFBEAgCiECDDELIARBAmshBCACLQABIAZ0IAhqIQggAkECaiECCyAFIAg2AkQgBSgCJCIDBEAgAyAINgIUC0EAIQYCQCAHQYAEcUUNACAFLQAMQQRxRQ0AIBcgCDsADCAFIAUoAhwgF0EMakECECw2AhwLQQAhCAwqCyAGQQhqIQogB0UEQCADIQJBACEEIAohBiAMIQMMMQsgAkECaiEDIARBAmshByACLQABIAp0IAhqIQggBkEPSwRAIAMhAiAHIQQMAQsgBkEQaiEKIAdFBEAgAyECQQAhBCAKIQYgDCEDDDELIAJBA2ohAyAEQQNrIQcgAi0AAiAKdCAIaiEIIAZBB0sEQCADIQIgByEEDAELIAZBGGohBiAHRQRAIAMhAgwvCyAEQQRrIQQgAi0AAyAGdCAIaiEIIAJBBGohAgsgBUG+/gA2AgQgACAIQRh0IAhBgP4DcUEIdHIgCEEIdkGA/gNxIAhBGHZyciIDNgIwIAUgAzYCHEEAIQhBACEGCyAFKAIQRQRAIAAgDzYCECAAIBA2AgwgACAENgIEIAAgAjYCACAFIAY2AkAgBSAINgI8QQIhHwwxCyAAQQE2AjAgBUEBNgIcIAVBv/4ANgIECyAFKAIIDQogBkECTQRAIARFDSwgBEEBayEEIAItAAAgBnQgCGohCCACQQFqIQIgBkEIciEGCyAFIAhBAXE2AghBwf4AIQcCQAJAAkACQCAIQQF2QQNxQQFrDgMAAQIDCyAFQdDIgAg2AlAgBUKJgICA0AA3AlggBUHQ2IAINgJUQcf+ACEHDAILQcT+ACEHDAELIABBsYiACDYCGEHR/gAhBwsgBSAHNgIEIAZBA2shBiAIQQN2IQggBSgCBCEHDCwLIAZBeHEhCyAIIAZBB3F2IQgCfyAGQR9LBEAgAiEDIAsMAQsgBEUEQEEAIQQgCyEGIAwhAwwuCyALQQhqIQogAkEBaiEDIARBAWshByACLQAAIAt0IAhqIQggBkEXSwRAIAchBCAKDAELIAdFBEAgAyECQQAhBCAKIQYgDCEDDC4LIAtBEGohCSACQQJqIQMgBEECayEHIAItAAEgCnQgCGohCCAGQQ9LBEAgByEEIAkMAQsgB0UEQCADIQJBACEEIAkhBiAMIQMMLgsgC0EYaiEKIAJBA2ohAyAEQQNrIQcgAi0AAiAJdCAIaiEIIAZBB0sEQCAHIQQgCgwBCyAHRQRAIAMhAkEAIQQgCiEGIAwhAwwuCyACQQRqIQMgBEEEayEEIAItAAMgCnQgCGohCEEgCyEGIAhB//8DcSICIAhBf3NBEHZHBEAgBUHR/gA2AgQgAEGig4AINgIYIAMhAiAFKAIEIQcMLAsgBSACNgJEQQAhCCADIQJBACEGCyAFQcP+ADYCBAsgBSgCRCIDBEAgAyAEIAMgBEkbIgMgDyADIA9JGyIDRQRAIAwhAwwsCyADBEAgECACIAP8CgAACyAFIAUoAkQgA2s2AkQgAyAQaiEQIA8gA2shDyACIANqIQIgBCADayEEIAUoAgQhBwwqCyAFQb/+ADYCBCAFKAIEIQcMKQsgCkUEQCADIQJBACEEIAchBiAMIQMMKgsgBkEQciEGIARBAmshBCACLQABIAd0IAhqIQggAkECaiECCyAFIAhBH3EiB0GBAmo2AmQgBSAIQQV2QR9xIgNBAWo2AmggBSAIQQp2QQ9xQQRqIgo2AmAgBkEOayEGIAhBDnYhCCADQR5JIAdBHU1xRQRAIAVB0f4ANgIEIABB/oKACDYCGCAFKAIEIQcMKAsgBUHF/gA2AgRBACEHIAVBADYCbAwBCyAFKAJsIgcgBSgCYCIKTw0KCyAHQQF0QaDGgAhqIQMDQCAGQQJNBEAgBEUNJiAEQQFrIQQgAi0AACAGdCAIaiEIIAJBAWohAiAGQQhyIQYLIAUgB0EBaiIHNgJsIBQgAy8BAEEBdGogCEEHcTsBACADQQJqIQMgBkEDayEGIAhBA3YhCCAHIApHDQALIAohBwwJCyAPRQ0QIBAgBSgCRDoAACAFQcj+ADYCBCAPQQFrIQ8gEEEBaiEQIAUoAgQhBwwkCyAFKAIMIgdFBEBBACEHDAULAkAgBkEfSwRAIAIhAwwBCyAERQ0jIAZBCGohCiACQQFqIQMgBEEBayEJIAItAAAgBnQgCGohCCAGQRdLBEAgCSEEIAohBgwBCyAJRQRAIAMhAkEAIQQgCiEGIAwhAwwmCyAGQRBqIQkgAkECaiEDIARBAmshCyACLQABIAp0IAhqIQggBkEPSwRAIAshBCAJIQYMAQsgC0UEQCADIQJBACEEIAkhBiAMIQMMJgsgBkEYaiEKIAJBA2ohAyAEQQNrIQsgAi0AAiAJdCAIaiEIIAZBB0sEQCALIQQgCiEGDAELIAtFBEAgAyECQQAhBCAKIQYgDCEDDCYLIAZBIHIhBiACQQRqIQMgBEEEayEEIAItAAMgCnQgCGohCAsgACATIA9rIgkgACgCFGo2AhQgBSAFKAIgIAlqNgIgIAdBBHEiAkUgDyATRnJFBEAgECAJayEKIAUoAhwhAiAAAn8gBSgCFARAIAIgCiAJECwMAQsgAiAKIAkQKwsiAjYCMCAFIAI2AhwMAwsgAg0CDAMLIAVBwP4ANgIEDBALIAVBzv4ANgIEIAggBkEHcXYhCCAGQXhxIQYgBSgCBCEHDCELIAUoAhwgCCAIQRh0IAhBgP4DcUEIdHIgCEEIdkGA/gNxIAhBGHZyciAFKAIUG0YNACAFQdH+ADYCBCAAQcKGgAg2AhggAyECIA8hEyAFKAIEIQcMIAtBACEIIAMhAkEAIQYgDyETCyAFQc/+ADYCBAsCQCAHRQ0AIAUoAhRFDQACQCAGQR9LBEAgAiEDDAELIARFDR4gBkEIaiEKIAJBAWohAyAEQQFrIQkgAi0AACAGdCAIaiEIIAZBF0sEQCAJIQQgCiEGDAELIAlFBEAgAyECQQAhBCAKIQYgDCEDDCELIAZBEGohCSACQQJqIQMgBEECayELIAItAAEgCnQgCGohCCAGQQ9LBEAgCyEEIAkhBgwBCyALRQRAIAMhAkEAIQQgCSEGIAwhAwwhCyAGQRhqIQogAkEDaiEDIARBA2shCyACLQACIAl0IAhqIQggBkEHSwRAIAshBCAKIQYMAQsgC0UEQCADIQJBACEEIAohBiAMIQMMIQsgBkEgciEGIAJBBGohAyAEQQRrIQQgAi0AAyAKdCAIaiEICwJAIAdBBHFFDQAgCCAFKAIgRg0AIAVB0f4ANgIEIABBq4aACDYCGCADIQIgBSgCBCEHDB8LIAMhAkEAIQhBACEGCyAFQdD+ADYCBAtBASEDDB0LIAdBEk0EQCAHIQkgB0EDcSIMQQNHBEAgB0EBdEGgxoAIaiEDQQAhCQNAIBQgAy8BAEEBdGpBADsBACADQQJqIQMgDCAJQQFqIglzQQNHDQALIAcgCWohCQsgB0EPTQRAIAlBE2shAyAJQQF0QaDGgAhqIQcDQCAUIAcvAQBBAXRqQQA7AQAgFCAHQQJqLwEAQQF0akEAOwEAIBQgB0EEai8BAEEBdGpBADsBACAUIAdBBmovAQBBAXRqQQA7AQAgB0EIaiEHIANBBGoiAw0ACwsgBUETNgJsCyAFIBs2AlQgBSAbNgJwIAVBBzYCWCAFIBs2AlBBACENQQAgFEETICMgJSAiEC8iDARAIAVB0f4ANgIEIABB7IGACDYCGCAFKAIEIQcMHAsgBUHG/gA2AgQgBUEANgJsQQAhDAsgBSgCZCIVIAUoAmhqIiAgDUsEQEF/IAUoAlh0QX9zIRogBSgCUCEcA0ACQCAcIAggGnEiGEECdGotAAEiDiAGTQRAIAIhAyAEIQcgBiEJDAELIAYhCiAEIQcgAiEDA0AgB0UNDSADLQAAIAp0IQsgA0EBaiEDIAdBAWshByAKQQhqIgkhCiAJIBwgCCALaiIIIBpxIhhBAnRqLQABIg5JDQALCwJAIBwgGEECdGovAQIiBkEPTQRAIAUgDUEBaiICNgJsIBQgDUEBdGogBjsBACAJIA5rIQYgCCAOdiEIIAIhDSADIQIgByEEDAELAn8CfwJAAkACQCAGQRBrDgIAAQILIA5BAmoiAiAJSwRAA0AgB0UNGyAHQQFrIQcgAy0AACAJdCAIaiEIIANBAWohAyAJQQhqIgkgAkkNAAsLIAkgDmshBiAIIA52IQogDUUEQCAFQdH+ADYCBCAAQbSCgAg2AhggAyECIAchBCAKIQggBSgCBCEHDCILIAZBAmshBiAKQQJ2IQggCkEDcUEDaiEKIA1BAXQgFGpBAmsvAQAMAwsgDkEDaiICIAlLBEADQCAHRQ0aIAdBAWshByADLQAAIAl0IAhqIQggA0EBaiEDIAlBCGoiCSACSQ0ACwsgCCAOdiICQQN2IQggAkEHcUEDaiEKIAkgDmtBA2sMAQsgDkEHaiICIAlLBEADQCAHRQ0ZIAdBAWshByADLQAAIAl0IAhqIQggA0EBaiEDIAlBCGoiCSACSQ0ACwsgCCAOdiICQQd2IQggAkH/AHFBC2ohCiAJIA5rQQdrCyEGQQALIQsgAyECIAchBCAKIA1qICBLDRMgCkEDcSIDBH8gAyANaiAUIA1BAXRqIQcDQCAHIAs7AQAgB0ECaiEHIANBAWsiAw0ACyENIApB/AFxBSAKCyEDAkAgCkEESQ0AIANBBGsiB0EEcUUEQCAUIA1BAXRqIgMgCzsBACADQQJqIAs7AQAgA0EEaiALOwEAIANBBmogCzsBACANQQRqIQ0gByEDCyAHQQRJDQAgBSANQQF0aiEHA0AgB0GCAWogCzsBACAHQYABaiALOwEAIAdB/gBqIAs7AQAgB0H8AGogCzsBACAHQfoAaiALOwEAIAdB+ABqIAs7AQAgB0H2AGogCzsBACAHQfQAaiALOwEAIAdBEGohByANQQhqIQ0gA0EIayIDDQALCyAFIA02AmwLIA0gIEkNAAsLIAUvAfQERQRAIAVB0f4ANgIEIABB74WACDYCGCAFKAIEIQcMGwsgBUEJNgJYIAUgGzYCUCAFIBs2AnBBASAUIBUgIyAlICIQLyIMBEAgBUHR/gA2AgQgAEHQgYAINgIYIAUoAgQhBwwbCyAFQQY2AlwgBSAFKAJwNgJUQQIgFCAFKAJkQQF0aiAFKAJoICMgLCAiEC8iDA0RQQAhDAsgBUHI/gA2AgQLIARBBkkgD0GCAklyRQRAIAAgDzYCECAAIBA2AgwgACAENgIEIAAgAjYCACAFIAY2AkAgBSAINgI8IAAoAhwiFigCNCIZQXhxIS0gGUEHcSEPIBMgGWohGCAAKAIMIgYgACgCECIDaiIkQYECayEnIAYgAyATa2ohHCAAKAIAIgogACgCBGpBBWshKEF/IBYoAlx0QX9zISBBfyAWKAJYdEF/cyEaIBYoAjgiByAZIBYoAiwiFWoiECATaiADayAGa2ohDiAWKAJUISkgFigCUCEqIBYoAkAhCCAWKAI8IREgFigCMCENA0AgCEEOTQRAIAotAAAgCHQgEWogCi0AASAIQQhqdGohESAIQRByIQggCkECaiEKCyAIICogESAacUECdGoiBC0AASIDayEIIBEgA3YhEQJAAn8CQAJAAkAgFgJ/IAACfwJAA0AgBC0AACIDRQRAIAYgBC0AAjoAACAGQQFqDAgLIANBEHEEQCAELwECIRICfyADQQ9xIgRFBEAgCiEDIBEMAQsCfyAEIAhNBEAgCCECIAoMAQsgCEEIaiECIAotAAAgCHQgEWohESAKQQFqCyEDIAIgBGshCCARQX8gBHRBf3NxIBJqIRIgESAEdgshAiAIQQ5NBEAgAy0AACAIdCACaiADLQABIAhBCGp0aiECIAhBEHIhCCADQQJqIQMLIAggKSACICBxQQJ0aiIELQABIgprIQggAiAKdiERIAQtAAAiAkEQcQ0CA0AgAkHAAHFFBEAgCCApIAQvAQJBAnRqIBFBfyACdEF/c3FBAnRqIgQtAAEiAmshCCARIAJ2IREgBC0AACICQRBxRQ0BDAQLCyADIQpB4IiACAwDCyADQcAAcUUEQCAIICogBC8BAkECdGogEUF/IAN0QX9zcUECdGoiBC0AASIDayEIIBEgA3YhEQwBCwtBv/4AIANBIHENAhpBxIiACAwBCyAELwECIR0CfyACQQ9xIgQgCE0EQCAIIQIgAwwBCyADLQAAIAh0IBFqIREgA0EBaiAEIAhBCGoiAk0NABogAy0AASACdCARaiERIAhBEGohAiADQQJqCyEKIBFBfyAEdEF/c3EhHiACIARrIQggESAEdiERIB0gHmoiISAGIBxrIgNNDQMgISADayIJIA1NDQIgFigCxDdFDQJB14aACAs2AhhB0f4ACzYCBAwECwJAAkAgGUUEQCAHIBUgCWtqIQIgCSASTwRAIAYhBAwDCwJ/IAlBB3EiA0UEQCAJIQMgBgwBC0EAIQQDQCAEIAZqIAIgBGotAAA6AAAgAyAEQQFqIgRHDQALIAIgBGohAiAJIARrIQMgBCAGagshBCATIB4gJGogHWprIAZqQXhLDQEDQCAEIAItAAA6AAAgBEEBaiACQQFqLQAAOgAAIARBAmogAkECai0AADoAACAEQQNqIAJBA2otAAA6AAAgBEEEaiACQQRqLQAAOgAAIARBBWogAkEFai0AADoAACAEQQZqIAJBBmotAAA6AAAgBEEHaiACQQdqLQAAOgAAIARBCGohBCACQQhqIQIgA0EIayIDDQALDAELIAkgGUsEQCAHIBAgCWtqIQIgCSAZayIJIBJPBEAgBiEEDAMLIAYhBCAJIgNBB3EiCwRAIA4gBiAeayAda2ohK0EAIQIDQCACIAZqIAIgK2otAAA6AAAgCyACQQFqIgJHDQALIAkgAmshAyACIAZqIQQgAiAraiECCyAYIB4gJGogHWprIAZqQXhNBEADQCAEIAItAAA6AAAgBEEBaiACQQFqLQAAOgAAIARBAmogAkECai0AADoAACAEQQNqIAJBA2otAAA6AAAgBEEEaiACQQRqLQAAOgAAIARBBWogAkEFai0AADoAACAEQQZqIAJBBmotAAA6AAAgBEEHaiACQQdqLQAAOgAAIARBCGohBCACQQhqIQIgA0EIayIDDQALCyAZIBIgCWsiEk8EQCAHIQIMAwsCfyAPRQRAIAchAiAZDAELIA8hAyAHIQIDQCAEIAItAAA6AAAgBEEBaiEEIAJBAWohAiADQQFrIgMNAAsgLQshAyAZQQhPBEADQCAEIAItAAA6AAAgBEEBaiACQQFqLQAAOgAAIARBAmogAkECai0AADoAACAEQQNqIAJBA2otAAA6AAAgBEEEaiACQQRqLQAAOgAAIARBBWogAkEFai0AADoAACAEQQZqIAJBBmotAAA6AAAgBEEHaiACQQdqLQAAOgAAIARBCGohBCACQQhqIQIgA0EIayIDDQALCyAEICFrIQIgEiAZayESDAILIAcgGSAJa2ohAiAJIBJPBEAgBiEEDAILAn8gCUEHcSIDRQRAIAkhAyAGDAELQQAhBANAIAQgBmogAiAEai0AADoAACADIARBAWoiBEcNAAsgAiAEaiECIAkgBGshAyAEIAZqCyEEIBMgHiAkaiAdamsgBmpBeEsNAANAIAQgAi0AADoAACAEQQFqIAJBAWotAAA6AAAgBEECaiACQQJqLQAAOgAAIARBA2ogAkEDai0AADoAACAEQQRqIAJBBGotAAA6AAAgBEEFaiACQQVqLQAAOgAAIARBBmogAkEGai0AADoAACAEQQdqIAJBB2otAAA6AAAgBEEIaiEEIAJBCGohAiADQQhrIgMNAAsLIAQgIWshAiASIAlrIRILAkAgEkEDSQ0AIBJBA2siCUEDbiIDQQNxQQNHBEAgA0EBakEDcSIG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AGludmFsaWQgZGlzdGFuY2VzIHNldABpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0AG91dCBvZiBtZW1vcnkgYWxsb2NhdGluZyBjdV9kZWNvbXByZXNzX3N0cmVhbV90AHRvbyBtYW55IGxlbmd0aCBvciBkaXN0YW5jZSBzeW1ib2xzAGludmFsaWQgc3RvcmVkIGJsb2NrIGxlbmd0aHMAYnVmZmVyIGVycm9yAHVua25vd24gZXJyb3IAc3RyZWFtIGVycm9yAGludGVybmFsIGVycm9yAGZpbGUgZXJyb3IAZGF0YSBlcnJvcgBpbmNvbXBhdGlibGUgdmVyc2lvbgBuYW4AemxpYjogb29tAG9wZXJhdGlvbiB1bnN1cHBvcnRlZCBmb3IgdGhpcyBhbGdvcml0aG0Ac3RyZWFtaW5nIGRlY29tcHJlc3MgaXMgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBhbGdvcml0aG0Ad3JpdGUgdG8gZmluaXNoZWQgZGVjb21wcmVzcyBzdHJlYW0AemxpYjogZGF0YSBhZnRlciBlbmQgb2Ygc3RyZWFtAG91dHB1dCBidWZmZXIgdG9vIHNtYWxsAG9rAGludmFsaWQgY29kZSAtLSBtaXNzaW5nIGVuZC1vZi1ibG9jawBpbmNvcnJlY3QgaGVhZGVyIGNoZWNrAGluY29ycmVjdCBsZW5ndGggY2hlY2sAaW5jb3JyZWN0IGRhdGEgY2hlY2sAaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2sAemxpYjogdHJ1bmNhdGVkIHN0cmVhbSBhdCBmaW5pc2gAaGVhZGVyIGNyYyBtaXNtYXRjaABkZWNvbXByZXNzZWQgc2l6ZSBub3QgZW5jb2RlZCBpbiB3aXJlIGZvcm1hdDsgdXNlIHN0cmVhbWluZwBpbmYAaW52YWxpZCB3aW5kb3cgc2l6ZQBvcGVyYXRpb24gaW52YWxpZCBmb3IgY3VycmVudCBzdHJlYW0gc3RhdGUAZGVmbGF0ZQBpbnZhbGlkIGJsb2NrIHR5cGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABzdHJlYW0gZW5kAGFsZ29yaXRobSBub3QgY29tcGlsZWQgaW50byB0aGlzIGJ1aWxkAGFsZ29yaXRobSAlZCBpcyBub3QgYXZhaWxhYmxlIGluIHRoaXMgYnVpbGQAY29tcHJlc3NlZCBpbnB1dCB0cnVuY2F0ZWQAZGVjb21wcmVzc2lvbiBmYWlsZWQAc3RyZWFtIGlzIGFscmVhZHkgZmluaXNoZWQAemxpYgB6bGliOiBjb3JydXB0ZWQgZGF0YQBOQU4ASU5GADEuMy4yADAuOS4wAC4AemxpYjogY29kZSAlZCAoJXMpAHpsaWI6IG91dHB1dCBidWZmZXIgdG9vIHNtYWxsIChzaXplIG5vdCBlbmNvZGVkIGluIHN0cmVhbSkAKG51bGwpAGNvbXByZXNzaW9uIGxldmVsIG91dCBvZiByYW5nZSAoMS4uMTApAAAA7AIAAZQAAAG/BQAB1AIAAaoDAAGcBAABDAUAAQoFAAHvBAABpQAAAR8FAAH+AwABGgAAAecBAAEZAAsAGRkZAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABkACgoZGRkDCgcAARsJCxgAAAkGCwAACwAGGQAAABkZGQBB8YyACAshDgAAAAAAAAAAGQALDRkZGQANAAACAAkOAAAACQAOAAAOAEGrjYAICwEMAEG3jYAICxUTAAAAABMAAAAACQwAAAAAAAwAAAwAQeWNgAgLARAAQfGNgAgLFQ8AAAAEDwAAAAAJEAAAAAAAEAAAEABBn46ACAsBEgBBq46ACAseEQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoaAEHijoAICw4aAAAAGhoaAAAAAAAACQBBk4+ACAsBFABBn4+ACAsVFwAAAAAXAAAAAAkUAAAAAAAUAAAUAEHNj4AICwEWAEHZj4AIC+QNFQAAAAAVAAAAAAkWAAAAAAAWAAAWAAAwMTIzNDU2Nzg5QUJDREVGU3VjY2VzcwBJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyB1bnJlYWNoYWJsZQBBZGRyZXNzIGluIHVzZQBCcm9rZW4gcGlwZQBJL08gZXJyb3IATm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcwBObyBzdWNoIGRldmljZQBOb3QgYSBkaXJlY3RvcnkASXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBOb3QgYSBzb2NrZXQA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CcgAEQcNAAAIZAAACCQAAAmoAAAIBAAACIQAAAhEAAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAKAAAAZEEAAHlBQAB9gEAAdoBAAEBAgABAAAAAb8BAAEMAgAB5QUAAQBB+9mACAsBQA==";
|
|
38195
|
+
}
|
|
38196
|
+
});
|
|
38197
|
+
|
|
38198
|
+
// ../../node_modules/compress-utils/dist/algorithms/deflate/decompress/index.js
|
|
38199
|
+
var decompress_exports3 = {};
|
|
38200
|
+
__export(decompress_exports3, {
|
|
38201
|
+
CompressError: () => CompressError,
|
|
38202
|
+
createDecompressStream: () => createDecompressStream3,
|
|
38203
|
+
createDecompressStreamSync: () => createDecompressStreamSync3,
|
|
38204
|
+
decompress: () => decompress3,
|
|
38205
|
+
decompressSync: () => decompressSync3,
|
|
38206
|
+
decompressionStream: () => decompressionStream3,
|
|
38207
|
+
preload: () => preload6,
|
|
38208
|
+
setMaxDecompressedSize: () => setMaxDecompressedSize3,
|
|
38209
|
+
version: () => version5
|
|
38210
|
+
});
|
|
38211
|
+
var bindings3, decompress3, decompressSync3, createDecompressStream3, createDecompressStreamSync3, decompressionStream3, preload6, version5, setMaxDecompressedSize3;
|
|
38212
|
+
var init_decompress3 = __esm({
|
|
38213
|
+
"../../node_modules/compress-utils/dist/algorithms/deflate/decompress/index.js"() {
|
|
38214
|
+
init_zlib();
|
|
38215
|
+
init_algorithm();
|
|
38216
|
+
init_types();
|
|
38217
|
+
init_types();
|
|
38218
|
+
bindings3 = /* @__PURE__ */ defineAlgorithm(Algorithm.Deflate, "deflate", new URL(zlib_default));
|
|
38219
|
+
decompress3 = bindings3.decompress;
|
|
38220
|
+
decompressSync3 = bindings3.decompressSync;
|
|
38221
|
+
createDecompressStream3 = bindings3.createDecompressStream;
|
|
38222
|
+
createDecompressStreamSync3 = bindings3.createDecompressStreamSync;
|
|
38223
|
+
decompressionStream3 = bindings3.decompressionStream;
|
|
38224
|
+
preload6 = bindings3.preload;
|
|
38225
|
+
version5 = bindings3.version;
|
|
38226
|
+
setMaxDecompressedSize3 = bindings3.setMaxDecompressedSize;
|
|
38227
|
+
}
|
|
38228
|
+
});
|
|
38229
|
+
|
|
38230
|
+
// ../../node_modules/compress-utils/dist/algorithms/zlib/decompress/index.js
|
|
38231
|
+
var decompress_exports4 = {};
|
|
38232
|
+
__export(decompress_exports4, {
|
|
38233
|
+
CompressError: () => CompressError,
|
|
38234
|
+
createDecompressStream: () => createDecompressStream4,
|
|
38235
|
+
createDecompressStreamSync: () => createDecompressStreamSync4,
|
|
38236
|
+
decompress: () => decompress4,
|
|
38237
|
+
decompressSync: () => decompressSync4,
|
|
38238
|
+
decompressionStream: () => decompressionStream4,
|
|
38239
|
+
preload: () => preload7,
|
|
38240
|
+
setMaxDecompressedSize: () => setMaxDecompressedSize4,
|
|
38241
|
+
version: () => version6
|
|
38242
|
+
});
|
|
38243
|
+
var bindings4, decompress4, decompressSync4, createDecompressStream4, createDecompressStreamSync4, decompressionStream4, preload7, version6, setMaxDecompressedSize4;
|
|
38244
|
+
var init_decompress4 = __esm({
|
|
38245
|
+
"../../node_modules/compress-utils/dist/algorithms/zlib/decompress/index.js"() {
|
|
38246
|
+
init_zlib();
|
|
38247
|
+
init_algorithm();
|
|
38248
|
+
init_types();
|
|
38249
|
+
init_types();
|
|
38250
|
+
bindings4 = /* @__PURE__ */ defineAlgorithm(Algorithm.Zlib, "zlib", new URL(zlib_default));
|
|
38251
|
+
decompress4 = bindings4.decompress;
|
|
38252
|
+
decompressSync4 = bindings4.decompressSync;
|
|
38253
|
+
createDecompressStream4 = bindings4.createDecompressStream;
|
|
38254
|
+
createDecompressStreamSync4 = bindings4.createDecompressStreamSync;
|
|
38255
|
+
decompressionStream4 = bindings4.decompressionStream;
|
|
38256
|
+
preload7 = bindings4.preload;
|
|
38257
|
+
version6 = bindings4.version;
|
|
38258
|
+
setMaxDecompressedSize4 = bindings4.setMaxDecompressedSize;
|
|
38259
|
+
}
|
|
38260
|
+
});
|
|
38261
|
+
|
|
38262
|
+
// ../compression/src/deflate-decompressor-compress-utils.ts
|
|
38263
|
+
var DeflateCompressUtilsDecompressor;
|
|
38264
|
+
var init_deflate_decompressor_compress_utils = __esm({
|
|
38265
|
+
"../compression/src/deflate-decompressor-compress-utils.ts"() {
|
|
38843
38266
|
"use strict";
|
|
38844
|
-
|
|
38845
|
-
|
|
38846
|
-
init_fflate_stream();
|
|
38847
|
-
DeflateFflateDecompressor = class extends Decompressor {
|
|
38848
|
-
name = "deflate";
|
|
38849
|
-
extensions = [];
|
|
38850
|
-
contentEncodings = ["deflate"];
|
|
38851
|
-
isSupported = true;
|
|
38852
|
-
options;
|
|
38267
|
+
init_compress_utils_compression();
|
|
38268
|
+
DeflateCompressUtilsDecompressor = class extends CompressUtilsDecompressor {
|
|
38853
38269
|
constructor(options = {}) {
|
|
38854
|
-
super(
|
|
38855
|
-
|
|
38856
|
-
|
|
38857
|
-
|
|
38858
|
-
|
|
38859
|
-
const bytes = new Uint8Array(input2);
|
|
38860
|
-
const output2 = this.options.raw ? inflateSync(bytes) : unzlibSync(bytes);
|
|
38861
|
-
return output2.slice().buffer;
|
|
38862
|
-
}
|
|
38863
|
-
/** Decompresses DEFLATE batches incrementally. */
|
|
38864
|
-
async *decompressBatches(inputBatches) {
|
|
38865
|
-
const processor = this.options.raw ? new Inflate() : new Unzlib();
|
|
38866
|
-
yield* transformFflateBatches(processor, inputBatches);
|
|
38270
|
+
super(
|
|
38271
|
+
{ name: "deflate", contentEncodings: ["deflate"] },
|
|
38272
|
+
() => options.raw ? Promise.resolve().then(() => (init_decompress3(), decompress_exports3)) : Promise.resolve().then(() => (init_decompress4(), decompress_exports4)),
|
|
38273
|
+
options
|
|
38274
|
+
);
|
|
38867
38275
|
}
|
|
38868
38276
|
};
|
|
38869
38277
|
}
|
|
@@ -38874,26 +38282,27 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
38874
38282
|
var init_deflate_decompressor = __esm({
|
|
38875
38283
|
"../compression/src/deflate-decompressor.ts"() {
|
|
38876
38284
|
"use strict";
|
|
38877
|
-
|
|
38285
|
+
init_deflate_decompressor_compress_utils();
|
|
38878
38286
|
init_decompression_stream();
|
|
38879
|
-
DeflateDecompressor2 = class extends
|
|
38880
|
-
|
|
38881
|
-
|
|
38882
|
-
}
|
|
38883
|
-
/** Decompresses with the built-in stream when available, then falls back to fflate. */
|
|
38884
|
-
async decompress(input2) {
|
|
38287
|
+
DeflateDecompressor2 = class extends DeflateCompressUtilsDecompressor {
|
|
38288
|
+
/** Decompresses with native streams when available, otherwise lazily initializes WASM. */
|
|
38289
|
+
async decompress(input2, size) {
|
|
38885
38290
|
if (this.options.useNative !== false) {
|
|
38886
|
-
const
|
|
38887
|
-
|
|
38291
|
+
const output2 = await decompressWithNativeDecompressionStream(
|
|
38292
|
+
input2,
|
|
38293
|
+
this.options.raw ? "deflate-raw" : "deflate"
|
|
38294
|
+
);
|
|
38888
38295
|
if (output2) return output2;
|
|
38889
38296
|
}
|
|
38890
|
-
return
|
|
38297
|
+
return super.decompress(input2, size);
|
|
38891
38298
|
}
|
|
38892
|
-
/**
|
|
38299
|
+
/** Streams native batches when available, otherwise uses the WASM stream. */
|
|
38893
38300
|
async *decompressBatches(inputBatches) {
|
|
38894
38301
|
if (this.options.useNative !== false) {
|
|
38895
|
-
const
|
|
38896
|
-
|
|
38302
|
+
const output2 = decompressBatchesWithNativeDecompressionStream(
|
|
38303
|
+
inputBatches,
|
|
38304
|
+
this.options.raw ? "deflate-raw" : "deflate"
|
|
38305
|
+
);
|
|
38897
38306
|
if (output2) {
|
|
38898
38307
|
yield* output2;
|
|
38899
38308
|
return;
|
|
@@ -38906,6 +38315,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
38906
38315
|
});
|
|
38907
38316
|
|
|
38908
38317
|
// src/lib/parse-rad-chunk.ts
|
|
38318
|
+
async function preloadRADCompression() {
|
|
38319
|
+
await Promise.all([RAD_PROPERTY_DEFLATE.preload(), RAD_PROPERTY_RAW_DEFLATE.preload()]);
|
|
38320
|
+
}
|
|
38909
38321
|
function parseRADChunk(data, options) {
|
|
38910
38322
|
return makeGaussianSplatsArrowTable(parseRADChunkToGaussianSplats(data, options));
|
|
38911
38323
|
}
|
|
@@ -39153,7 +38565,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
39153
38565
|
return decompressRADProperty(propertyBytes, property.property);
|
|
39154
38566
|
}
|
|
39155
38567
|
function decompressRADProperty(bytes, propertyName) {
|
|
39156
|
-
const arrayBuffer =
|
|
38568
|
+
const arrayBuffer = copyToArrayBuffer2(bytes);
|
|
39157
38569
|
try {
|
|
39158
38570
|
return new Uint8Array(RAD_PROPERTY_DEFLATE.decompressSync(arrayBuffer));
|
|
39159
38571
|
} catch {
|
|
@@ -39218,9 +38630,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
39218
38630
|
}
|
|
39219
38631
|
return values;
|
|
39220
38632
|
}
|
|
39221
|
-
function decodeR8(bytes, dimensions, count, min,
|
|
38633
|
+
function decodeR8(bytes, dimensions, count, min, max) {
|
|
39222
38634
|
const values = new Float32Array(count * dimensions);
|
|
39223
|
-
const range =
|
|
38635
|
+
const range = max - min;
|
|
39224
38636
|
for (let rowIndex = 0; rowIndex < count; rowIndex++) {
|
|
39225
38637
|
for (let dimension = 0; dimension < dimensions; dimension++) {
|
|
39226
38638
|
values[rowIndex * dimensions + dimension] = bytes[dimension * count + rowIndex] / 255 * range + min;
|
|
@@ -39228,9 +38640,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
39228
38640
|
}
|
|
39229
38641
|
return values;
|
|
39230
38642
|
}
|
|
39231
|
-
function decodeR8Delta(bytes, dimensions, count, min,
|
|
38643
|
+
function decodeR8Delta(bytes, dimensions, count, min, max) {
|
|
39232
38644
|
const values = new Float32Array(count * dimensions);
|
|
39233
|
-
const range =
|
|
38645
|
+
const range = max - min;
|
|
39234
38646
|
const last = new Uint8Array(dimensions);
|
|
39235
38647
|
for (let rowIndex = 0; rowIndex < count; rowIndex++) {
|
|
39236
38648
|
for (let dimension = 0; dimension < dimensions; dimension++) {
|
|
@@ -39242,17 +38654,17 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
39242
38654
|
}
|
|
39243
38655
|
return values;
|
|
39244
38656
|
}
|
|
39245
|
-
function decodeS8(bytes, dimensions, count,
|
|
38657
|
+
function decodeS8(bytes, dimensions, count, max) {
|
|
39246
38658
|
const values = new Float32Array(count * dimensions);
|
|
39247
38659
|
for (let rowIndex = 0; rowIndex < count; rowIndex++) {
|
|
39248
38660
|
for (let dimension = 0; dimension < dimensions; dimension++) {
|
|
39249
38661
|
const byte = bytes[dimension * count + rowIndex];
|
|
39250
|
-
values[rowIndex * dimensions + dimension] = (byte << 24 >> 24) / 127 *
|
|
38662
|
+
values[rowIndex * dimensions + dimension] = (byte << 24 >> 24) / 127 * max;
|
|
39251
38663
|
}
|
|
39252
38664
|
}
|
|
39253
38665
|
return values;
|
|
39254
38666
|
}
|
|
39255
|
-
function decodeS8Delta(bytes, dimensions, count,
|
|
38667
|
+
function decodeS8Delta(bytes, dimensions, count, max) {
|
|
39256
38668
|
const values = new Float32Array(count * dimensions);
|
|
39257
38669
|
const last = new Uint8Array(dimensions);
|
|
39258
38670
|
for (let rowIndex = 0; rowIndex < count; rowIndex++) {
|
|
@@ -39260,19 +38672,19 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
39260
38672
|
const byteOffset = dimension * count + rowIndex;
|
|
39261
38673
|
const value = last[dimension] + bytes[byteOffset] & 255;
|
|
39262
38674
|
last[dimension] = value;
|
|
39263
|
-
values[rowIndex * dimensions + dimension] = (value << 24 >> 24) / 127 *
|
|
38675
|
+
values[rowIndex * dimensions + dimension] = (value << 24 >> 24) / 127 * max;
|
|
39264
38676
|
}
|
|
39265
38677
|
}
|
|
39266
38678
|
return values;
|
|
39267
38679
|
}
|
|
39268
|
-
function decodeScaleR8(bytes, dimensions, count, min,
|
|
38680
|
+
function decodeScaleR8(bytes, dimensions, count, min, max) {
|
|
39269
38681
|
const values = new Float32Array(count * dimensions);
|
|
39270
38682
|
for (let rowIndex = 0; rowIndex < count; rowIndex++) {
|
|
39271
38683
|
for (let dimension = 0; dimension < dimensions; dimension++) {
|
|
39272
38684
|
values[rowIndex * dimensions + dimension] = decodeScale8(
|
|
39273
38685
|
bytes[dimension * count + rowIndex],
|
|
39274
38686
|
min,
|
|
39275
|
-
|
|
38687
|
+
max
|
|
39276
38688
|
);
|
|
39277
38689
|
}
|
|
39278
38690
|
}
|
|
@@ -39315,11 +38727,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
39315
38727
|
}
|
|
39316
38728
|
return rotations;
|
|
39317
38729
|
}
|
|
39318
|
-
function decodeScale8(scale, min,
|
|
38730
|
+
function decodeScale8(scale, min, max) {
|
|
39319
38731
|
if (scale === 0) {
|
|
39320
38732
|
return 0;
|
|
39321
38733
|
}
|
|
39322
|
-
const logScaleStep = (
|
|
38734
|
+
const logScaleStep = (max - min) / 254;
|
|
39323
38735
|
return Math.exp(min + (scale - 1) * logScaleStep);
|
|
39324
38736
|
}
|
|
39325
38737
|
function decodeQuatOct888(u, v, r) {
|
|
@@ -39409,7 +38821,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
39409
38821
|
function normalizeColorByte2(value) {
|
|
39410
38822
|
return Math.round(Math.min(Math.max(value, 0), 1) * 255);
|
|
39411
38823
|
}
|
|
39412
|
-
function
|
|
38824
|
+
function copyToArrayBuffer2(bytes) {
|
|
39413
38825
|
const copy = new Uint8Array(bytes.byteLength);
|
|
39414
38826
|
copy.set(bytes);
|
|
39415
38827
|
return copy.buffer;
|
|
@@ -39438,6 +38850,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
39438
38850
|
parseRADChunkHeader: () => parseRADChunkHeader,
|
|
39439
38851
|
parseRADChunkToGaussianSplats: () => parseRADChunkToGaussianSplats,
|
|
39440
38852
|
parseRADHeader: () => parseRADHeader,
|
|
38853
|
+
preloadRADCompression: () => preloadRADCompression,
|
|
39441
38854
|
tryParseRADHeader: () => tryParseRADHeader
|
|
39442
38855
|
});
|
|
39443
38856
|
var _RADLoaderPreload, RADLoaderMetadataWithoutPreload, RADLoaderWithParser;
|
|
@@ -39458,7 +38871,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
39458
38871
|
});
|
|
39459
38872
|
|
|
39460
38873
|
// src/rad-loader-types.ts
|
|
39461
|
-
async function
|
|
38874
|
+
async function preload8() {
|
|
39462
38875
|
const { RADLoaderWithParser: RADLoaderWithParser2 } = await Promise.resolve().then(() => (init_rad_loader(), rad_loader_exports));
|
|
39463
38876
|
return RADLoaderWithParser2;
|
|
39464
38877
|
}
|
|
@@ -39474,7 +38887,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
39474
38887
|
...RADFormat,
|
|
39475
38888
|
version: VERSION6,
|
|
39476
38889
|
options: {},
|
|
39477
|
-
preload:
|
|
38890
|
+
preload: preload8
|
|
39478
38891
|
};
|
|
39479
38892
|
}
|
|
39480
38893
|
});
|
|
@@ -39482,21 +38895,82 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
39482
38895
|
// bundle.ts
|
|
39483
38896
|
var bundle_exports = {};
|
|
39484
38897
|
__export(bundle_exports, {
|
|
38898
|
+
FetchError: () => import_core9.FetchError,
|
|
38899
|
+
JSONLoader: () => import_core9.JSONLoader,
|
|
39485
38900
|
KSPLATFormat: () => KSPLATFormat,
|
|
39486
38901
|
KSPLATLoader: () => KSPLATLoader,
|
|
38902
|
+
NullLoader: () => import_core9.NullLoader,
|
|
38903
|
+
NullWorkerLoader: () => import_core9.NullWorkerLoader,
|
|
39487
38904
|
RADFormat: () => RADFormat,
|
|
39488
38905
|
RADLoader: () => RADLoader,
|
|
39489
38906
|
RADSource: () => RADSource,
|
|
39490
38907
|
RADSourceLoader: () => RADSourceLoader,
|
|
38908
|
+
RequestScheduler: () => import_core9.RequestScheduler,
|
|
39491
38909
|
SPLATFormat: () => SPLATFormat,
|
|
39492
38910
|
SPLATLoader: () => SPLATLoader,
|
|
39493
38911
|
SPZFormat: () => SPZFormat,
|
|
39494
38912
|
SPZLoader: () => SPZLoader,
|
|
38913
|
+
_BrowserFileSystem: () => import_core9._BrowserFileSystem,
|
|
38914
|
+
_fetchProgress: () => import_core9._fetchProgress,
|
|
38915
|
+
_selectSource: () => import_core9._selectSource,
|
|
38916
|
+
_unregisterLoaders: () => import_core9._unregisterLoaders,
|
|
38917
|
+
assert: () => import_core9.assert,
|
|
38918
|
+
concatenateArrayBuffersAsync: () => import_core9.concatenateArrayBuffersAsync,
|
|
38919
|
+
coreApi: () => import_core9.coreApi,
|
|
38920
|
+
createDataSource: () => import_core9.createDataSource,
|
|
38921
|
+
document: () => import_core9.document,
|
|
38922
|
+
encode: () => import_core9.encode,
|
|
38923
|
+
encodeInBatches: () => import_core9.encodeInBatches,
|
|
38924
|
+
encodeSync: () => import_core9.encodeSync,
|
|
38925
|
+
encodeTable: () => import_core9.encodeTable,
|
|
38926
|
+
encodeTableAsText: () => import_core9.encodeTableAsText,
|
|
38927
|
+
encodeTableInBatches: () => import_core9.encodeTableInBatches,
|
|
38928
|
+
encodeText: () => import_core9.encodeText,
|
|
38929
|
+
encodeTextSync: () => import_core9.encodeTextSync,
|
|
38930
|
+
encodeURLtoURL: () => import_core9.encodeURLtoURL,
|
|
38931
|
+
fetchFile: () => import_core9.fetchFile,
|
|
38932
|
+
forEach: () => import_core9.forEach,
|
|
38933
|
+
getLoaderOptions: () => import_core9.getLoaderOptions,
|
|
38934
|
+
getPathPrefix: () => import_core9.getPathPrefix,
|
|
38935
|
+
global: () => import_core9.global,
|
|
38936
|
+
isAsyncIterable: () => import_core9.isAsyncIterable,
|
|
38937
|
+
isBrowser: () => import_core9.isBrowser,
|
|
38938
|
+
isIterable: () => import_core9.isIterable,
|
|
38939
|
+
isIterator: () => import_core9.isIterator,
|
|
38940
|
+
isPromise: () => import_core9.isPromise,
|
|
38941
|
+
isPureObject: () => import_core9.isPureObject,
|
|
38942
|
+
isReadableStream: () => import_core9.isReadableStream,
|
|
38943
|
+
isResponse: () => import_core9.isResponse,
|
|
38944
|
+
isWorker: () => import_core9.isWorker,
|
|
38945
|
+
isWritableStream: () => import_core9.isWritableStream,
|
|
38946
|
+
load: () => import_core9.load,
|
|
38947
|
+
loadInBatches: () => import_core9.loadInBatches,
|
|
38948
|
+
makeIterator: () => import_core9.makeIterator,
|
|
38949
|
+
makeLineIterator: () => import_core9.makeLineIterator,
|
|
38950
|
+
makeNumberedLineIterator: () => import_core9.makeNumberedLineIterator,
|
|
38951
|
+
makeStream: () => import_core9.makeStream,
|
|
38952
|
+
makeTextDecoderIterator: () => import_core9.makeTextDecoderIterator,
|
|
38953
|
+
makeTextEncoderIterator: () => import_core9.makeTextEncoderIterator,
|
|
38954
|
+
parse: () => import_core9.parse,
|
|
38955
|
+
parseFile: () => import_core9.parseFile,
|
|
38956
|
+
parseInBatches: () => import_core9.parseInBatches,
|
|
39495
38957
|
parseSPZ: () => parseSPZ,
|
|
39496
38958
|
parseSPZToGaussianSplats: () => parseSPZToGaussianSplats,
|
|
39497
|
-
|
|
39498
|
-
|
|
39499
|
-
|
|
38959
|
+
parseSync: () => import_core9.parseSync,
|
|
38960
|
+
preload: () => import_core9.preload,
|
|
38961
|
+
preloadSync: () => import_core9.preloadSync,
|
|
38962
|
+
readArrayBuffer: () => import_core9.readArrayBuffer,
|
|
38963
|
+
registerLoaders: () => import_core9.registerLoaders,
|
|
38964
|
+
resolvePath: () => import_core9.resolvePath,
|
|
38965
|
+
resolveRADChunkUrl: () => resolveRADChunkUrl,
|
|
38966
|
+
selectLoader: () => import_core9.selectLoader,
|
|
38967
|
+
selectLoaderSync: () => import_core9.selectLoaderSync,
|
|
38968
|
+
self: () => import_core9.self,
|
|
38969
|
+
setLoaderOptions: () => import_core9.setLoaderOptions,
|
|
38970
|
+
setPathPrefix: () => import_core9.setPathPrefix,
|
|
38971
|
+
window: () => import_core9.window
|
|
38972
|
+
});
|
|
38973
|
+
var import_core9 = __toESM(require_core(), 1);
|
|
39500
38974
|
|
|
39501
38975
|
// src/index.ts
|
|
39502
38976
|
init_splats_format();
|
|
@@ -39539,7 +39013,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
39539
39013
|
}
|
|
39540
39014
|
},
|
|
39541
39015
|
testURL: (url2) => /\.rad(?:$|[?#])/i.test(url2),
|
|
39542
|
-
createDataSource: (data, options,
|
|
39016
|
+
createDataSource: (data, options, coreApi2) => new RADSource(data, options, coreApi2)
|
|
39543
39017
|
};
|
|
39544
39018
|
var RADSource = class extends DataSource {
|
|
39545
39019
|
/** Shared metadata promise exposed for source-style integrations. */
|
|
@@ -39548,8 +39022,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
39548
39022
|
_metadataPromise = null;
|
|
39549
39023
|
/** Lazily initialized per-chunk metadata promises. */
|
|
39550
39024
|
_chunkMetadataPromises = /* @__PURE__ */ new Map();
|
|
39551
|
-
constructor(data, options,
|
|
39552
|
-
super(data, options, RADSourceLoader.defaultOptions,
|
|
39025
|
+
constructor(data, options, coreApi2) {
|
|
39026
|
+
super(data, options, RADSourceLoader.defaultOptions, coreApi2);
|
|
39553
39027
|
this.metadata = this.getMetadata();
|
|
39554
39028
|
}
|
|
39555
39029
|
/** Ensures the RAD header metadata has been loaded. */
|
|
@@ -39616,6 +39090,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
39616
39090
|
/** Fetches and decodes one RADC chunk into raw Gaussian splat arrays. */
|
|
39617
39091
|
async getChunkSplats(chunkIndex, options = {}) {
|
|
39618
39092
|
const metadata = await this.getMetadata();
|
|
39093
|
+
await preloadRADCompression();
|
|
39619
39094
|
return parseRADChunkToGaussianSplats(
|
|
39620
39095
|
await this.getChunk(chunkIndex, options),
|
|
39621
39096
|
this._getChunkDecodeOptions(metadata, options)
|
|
@@ -39624,6 +39099,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
39624
39099
|
/** Fetches and decodes one RADC chunk into a Mesh Arrow table. */
|
|
39625
39100
|
async getChunkTable(chunkIndex, options = {}) {
|
|
39626
39101
|
const metadata = await this.getMetadata();
|
|
39102
|
+
await preloadRADCompression();
|
|
39627
39103
|
return parseRADChunk(
|
|
39628
39104
|
await this.getChunk(chunkIndex, options),
|
|
39629
39105
|
this._getChunkDecodeOptions(metadata, options)
|