zstdify 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -5,13 +5,26 @@
5
5
  [![Tests][tests-badge]][tests-url]
6
6
  [![Coverage][coverage-badge]][coverage-url]
7
7
 
8
- Pure TypeScript zstd compression library. No native dependencies, works in Node.js and browsers.
9
-
10
- ## Status
11
-
12
- - **Decoder**: Raw and RLE blocks supported. Compressed blocks (Huffman/FSE) planned.
13
- - **Encoder**: Raw baseline, RLE blocks for repeated-byte chunks (`level > 0`), plus an initial compressed-block path (`level > 1`) for selected single-sequence blocks with raw fallback.
14
- - **Format**: RFC 8878 compliant for supported features.
8
+ Pure JavaScript/TypeScript zstd compression/decompression library. No native dependencies, works in Node.js and browsers.
9
+
10
+ ## Features
11
+
12
+ - **Pure JS/TS zstd in Node and browsers**: No native dependencies, portable by default.
13
+ - **Decoder support across real-world zstd frames**:
14
+ - Raw, RLE, and compressed blocks (including Huffman/FSE-based paths).
15
+ - Single and concatenated frames, plus skippable frame support.
16
+ - Content checksum validation.
17
+ - Dictionary-aware decompression, including dictionary ID checks.
18
+ - **Encoder support with adaptive strategy**:
19
+ - Raw blocks, RLE blocks, and compressed blocks.
20
+ - Compression-level driven behavior with automatic raw fallback when compressed output is not smaller.
21
+ - Optional frame content checksums.
22
+ - **Interop-focused**: `zstdify` output is decoded by the official `zstd` CLI, and `zstd` CLI output is decoded by `zstdify`.
23
+ - **Extensively tested**:
24
+ - Round-trip and property-based tests.
25
+ - Conformance fixtures from known-good archives generated by the official `zstd` tool.
26
+ - Differential tests against the official `zstd` CLI (both directions).
27
+ - Corruption, boundary, and compression-regression coverage.
15
28
 
16
29
  ## Usage
17
30
 
@@ -26,8 +39,8 @@ const restored = decompress(compressed);
26
39
 
27
40
  ## API
28
41
 
29
- - `compress(input: Uint8Array, options?: { level?: number }): Uint8Array`
30
- - `decompress(input: Uint8Array, options?: { maxSize?: number }): Uint8Array`
42
+ - `compress(input: Uint8Array, options?: { level?: number; checksum?: boolean }): Uint8Array`
43
+ - `decompress(input: Uint8Array, options?: { maxSize?: number; dictionary?: Uint8Array | { bytes: Uint8Array; id?: number } }): Uint8Array`
31
44
 
32
45
  ## CLI Tool
33
46
 
@@ -55,12 +68,14 @@ pnpm check
55
68
 
56
69
  ### How we validate
57
70
 
58
- - **Round-trip**: `decompress(compress(x)) === x` for a variety of payloads and levels (see [packages/zstdify-tests/src/roundtrip/](packages/zstdify-tests/src/roundtrip/)), plus property-based tests with [fast-check](https://fast-check.dev/).
59
- - **Conformance fixtures**: Pre-generated `.zst` files from the official zstd CLI; we decompress and compare. Legacy fixtures are documented in [packages/zstdify-tests/fixtures/README.md](packages/zstdify-tests/fixtures/README.md). A decodecorpus-style **corpus** (multiple sizes/levels, manifest with hashes) is generated by `pnpm --filter zstdify-tests run generate:corpus` and tested in `conformance/corpus-manifest.test.ts`.
60
- - **Differential (zstd ↔ zstdify)**: With the zstd CLI installed, we test zstd compress → zstdify decompress and zstdify compress zstd decompress across payloads and levels.
61
- - **Corruption**: Truncation, checksum mismatch, invalid header bits, and related error paths are tested in [conformance/corruption.test.ts](packages/zstdify-tests/src/conformance/corruption.test.ts).
62
- - **Compression regression**: `pnpm --filter zstdify-tests run regression:compression` checks that compressed sizes for fixed payloads do not increase (ratio stability).
63
- - **Fuzzing**: A decompress harness (`pnpm --filter zstdify-tests run fuzz:decompress`) reads bytes from stdin and calls `decompress`; use with a fuzzer or corpus to find crashes. See [upstream zstd TESTING.md](https://github.com/facebook/zstd/blob/dev/TESTING.md) and decodecorpus for comparison.
71
+ All of the following run as part of the test suite (`pnpm test` / `pnpm vitest`):
72
+
73
+ - **Round-trip**: `decompress(compress(x)) === x` for a variety of payloads and levels, plus property-based tests with [fast-check](https://fast-check.dev/).
74
+ - **Conformance fixtures**: Pre-generated `.zst` files from the official zstd CLI (legacy fixtures and a committed decodecorpus-style **corpus** with manifest); we decompress and compare. See [packages/zstdify-tests/fixtures/README.md](packages/zstdify-tests/fixtures/README.md).
75
+ - **Differential (zstd ↔ zstdify)**: When the zstd CLI is installed, we test zstd compress zstdify decompress and zstdify compress → zstd decompress across payloads and levels.
76
+ - **Corruption**: Truncation, checksum mismatch, invalid header bits, and related error paths.
77
+ - **Compression regression**: Compressed sizes for fixed payloads are checked against golden values (ratio stability).
78
+ - **Decompress robustness**: Each corpus fixture is decompressed in its own test (one test per file), so the suite tracks decompress behavior per input. See [upstream zstd TESTING.md](https://github.com/facebook/zstd/blob/dev/TESTING.md) for comparison.
64
79
 
65
80
  ## Publishing
66
81
 
@@ -74,8 +89,9 @@ pnpm make-release:cli
74
89
  ## Project structure
75
90
 
76
91
  - `packages/zstdify` - Core library
77
- - `packages/cli` - CLI tool (`zstdify-cli` on npm)
78
92
  - `packages/zstdify-tests` - Integration tests
93
+ - `packages/cli` - CLI tool (`zstdify-cli` on npm)
94
+ - `packages/cli-tests` - Tests of the CLI tool
79
95
 
80
96
  # License
81
97
 
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,25 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import * as bitstream from './bitstream/index.js';
3
+ import * as entropy from './entropy/index.js';
4
+ import * as frame from './frame/index.js';
5
+ import * as root from './index.js';
6
+ describe('public barrel exports smoke', () => {
7
+ it('exposes root API functions', () => {
8
+ expect(typeof root.compress).toBe('function');
9
+ expect(typeof root.decompress).toBe('function');
10
+ });
11
+ it('exposes bitstream helpers', () => {
12
+ expect(typeof bitstream.BitReader).toBe('function');
13
+ expect(typeof bitstream.BitWriter).toBe('function');
14
+ expect(typeof bitstream.readU32LE).toBe('function');
15
+ expect(typeof bitstream.encodeVarint).toBe('function');
16
+ });
17
+ it('exposes entropy and frame helpers', () => {
18
+ expect(typeof entropy.buildFSEDecodeTable).toBe('function');
19
+ expect(typeof entropy.buildHuffmanDecodeTable).toBe('function');
20
+ expect(typeof frame.parseZstdFrame).toBe('function');
21
+ expect(typeof frame.validateContentChecksum).toBe('function');
22
+ expect(typeof frame.isSkippableFrame).toBe('function');
23
+ });
24
+ });
25
+ //# sourceMappingURL=barrelExports.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"barrelExports.test.js","sourceRoot":"","sources":["../src/barrelExports.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AAEnC,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE,CAAC;IAC5C,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE,CAAC;QACrC,MAAM,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAAA,CACjD,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE,CAAC;QACpC,MAAM,CAAC,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,MAAM,CAAC,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,MAAM,CAAC,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,MAAM,CAAC,OAAO,SAAS,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAAA,CACxD,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE,CAAC;QAC5C,MAAM,CAAC,OAAO,OAAO,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5D,MAAM,CAAC,OAAO,OAAO,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChE,MAAM,CAAC,OAAO,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrD,MAAM,CAAC,OAAO,KAAK,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9D,MAAM,CAAC,OAAO,KAAK,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAAA,CACxD,CAAC,CAAC;AAAA,CACJ,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,39 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { compress } from './compress.js';
3
+ import { parseBlockHeader } from './decode/block.js';
4
+ import { parseZstdFrame } from './frame/frameHeader.js';
5
+ function firstBlockType(frame) {
6
+ const { header } = parseZstdFrame(frame, 0);
7
+ const blockOffset = 4 + header.headerSize;
8
+ return parseBlockHeader(frame, blockOffset).blockType;
9
+ }
10
+ describe('compress branch behavior', () => {
11
+ it('uses raw block path at level=0', () => {
12
+ const input = new Uint8Array(4096);
13
+ input.fill(0x61);
14
+ const encoded = compress(input, { level: 0 });
15
+ expect(firstBlockType(encoded)).toBe(0);
16
+ });
17
+ it('uses RLE for repeated bytes and raw for non-repeated bytes at level=1', () => {
18
+ const repeated = new Uint8Array(2048);
19
+ repeated.fill(0x7a);
20
+ const repeatedEncoded = compress(repeated, { level: 1 });
21
+ expect(firstBlockType(repeatedEncoded)).toBe(1);
22
+ const mixed = new Uint8Array(2048);
23
+ for (let i = 0; i < mixed.length; i++)
24
+ mixed[i] = i & 0xff;
25
+ const mixedEncoded = compress(mixed, { level: 1 });
26
+ expect(firstBlockType(mixedEncoded)).toBe(0);
27
+ });
28
+ it('at level>1 chooses compressed block when smaller and falls back when not smaller', () => {
29
+ const repeatedPattern = new TextEncoder().encode('abcabcabcabcabcabcabcabcabcabc'.repeat(256));
30
+ const compressedChoice = compress(repeatedPattern, { level: 3 });
31
+ expect(firstBlockType(compressedChoice)).toBe(2);
32
+ const noMatches = new Uint8Array(64);
33
+ for (let i = 0; i < noMatches.length; i++)
34
+ noMatches[i] = i;
35
+ const fallbackChoice = compress(noMatches, { level: 3 });
36
+ expect(firstBlockType(fallbackChoice)).toBe(0);
37
+ });
38
+ });
39
+ //# sourceMappingURL=compress.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compress.test.js","sourceRoot":"","sources":["../src/compress.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,95 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { BitWriter } from '../bitstream/bitWriter.js';
3
+ import { readU32LE } from '../bitstream/littleEndian.js';
4
+ import { writeRawBlock, writeRLEBlock } from '../encode/blockWriter.js';
5
+ import { writeFrameHeader } from '../encode/frameWriter.js';
6
+ import { computeContentChecksum32 } from '../frame/checksum.js';
7
+ import { parseZstdFrame } from '../frame/frameHeader.js';
8
+ import { decompressFrame } from './decompressFrame.js';
9
+ function concatBytes(...chunks) {
10
+ const total = chunks.reduce((sum, chunk) => sum + chunk.length, 0);
11
+ const out = new Uint8Array(total);
12
+ let pos = 0;
13
+ for (const chunk of chunks) {
14
+ out.set(chunk, pos);
15
+ pos += chunk.length;
16
+ }
17
+ return out;
18
+ }
19
+ function checksumBytes(data) {
20
+ const checksum = computeContentChecksum32(data);
21
+ return new Uint8Array([checksum & 0xff, (checksum >>> 8) & 0xff, (checksum >>> 16) & 0xff, (checksum >>> 24) & 0xff]);
22
+ }
23
+ describe('decompressFrame', () => {
24
+ it('decodes an RLE block path', () => {
25
+ const expected = new Uint8Array(5);
26
+ expected.fill(0x61);
27
+ const frame = concatBytes(writeFrameHeader(expected.length, false), writeRLEBlock(0x61, expected.length, true));
28
+ const { header } = parseZstdFrame(frame, 0);
29
+ const result = decompressFrame(frame, 0, header);
30
+ expect(result.output).toEqual(expected);
31
+ });
32
+ it('decodes compressed block with empty sequence section', () => {
33
+ const literals = new TextEncoder().encode('abc');
34
+ const literalsSection = concatBytes(new Uint8Array([(literals.length << 3) | 0]), literals);
35
+ const compressedBlockHeader = new Uint8Array([0x25, 0x00, 0x00]); // last=1, type=2, size=4
36
+ const frame = concatBytes(writeFrameHeader(literals.length, false), compressedBlockHeader, literalsSection);
37
+ const { header } = parseZstdFrame(frame, 0);
38
+ const result = decompressFrame(frame, 0, header);
39
+ expect(result.output).toEqual(literals);
40
+ });
41
+ it('rejects truncated checksum and checksum mismatch', () => {
42
+ const payload = new TextEncoder().encode('hello');
43
+ const header = writeFrameHeader(payload.length, true);
44
+ const rawBlock = writeRawBlock(payload, 0, payload.length, true);
45
+ const truncated = concatBytes(header, rawBlock);
46
+ const parsedTruncated = parseZstdFrame(truncated, 0).header;
47
+ expect(() => decompressFrame(truncated, 0, parsedTruncated)).toThrowError(/checksum truncated/i);
48
+ const validChecksum = checksumBytes(payload);
49
+ const mismatch = concatBytes(header, rawBlock, validChecksum);
50
+ const last = mismatch.length - 1;
51
+ mismatch[last] = (mismatch[last] ?? 0) ^ 0xff;
52
+ const parsedMismatch = parseZstdFrame(mismatch, 0).header;
53
+ expect(() => decompressFrame(mismatch, 0, parsedMismatch)).toThrowError(/checksum mismatch/i);
54
+ });
55
+ it('rejects frame content-size mismatch', () => {
56
+ const payload = new TextEncoder().encode('hello');
57
+ const frame = concatBytes(writeFrameHeader(payload.length, false), writeRawBlock(payload, 0, payload.length - 1, true));
58
+ const { header } = parseZstdFrame(frame, 0);
59
+ expect(() => decompressFrame(frame, 0, header)).toThrowError(/content size mismatch/i);
60
+ });
61
+ it('rejects when in-frame decompressed output exceeds maxSize', () => {
62
+ const payload = new TextEncoder().encode('hello');
63
+ const frame = concatBytes(writeFrameHeader(payload.length, false), writeRawBlock(payload, 0, payload.length, true));
64
+ const { header } = parseZstdFrame(frame, 0);
65
+ expect(() => decompressFrame(frame, 0, header, null, 4)).toThrowError(/maxSize/i);
66
+ });
67
+ it('rejects treeless literals when no previous Huffman table exists', () => {
68
+ const writer = new BitWriter();
69
+ writer.writeBits(2, 3); // blockType = treeless
70
+ writer.writeBits(2, 0); // sizeFormat = 0 (10-bit fields)
71
+ writer.writeBits(10, 1); // regeneratedSize
72
+ writer.writeBits(10, 1); // compressedSize
73
+ const literalsHeader = writer.flush();
74
+ const blockContent = concatBytes(literalsHeader, new Uint8Array([0x00]));
75
+ const blockHeaderWord = (blockContent.length << 3) | (2 << 1) | 1; // compressed block
76
+ const blockHeader = new Uint8Array([
77
+ blockHeaderWord & 0xff,
78
+ (blockHeaderWord >>> 8) & 0xff,
79
+ (blockHeaderWord >>> 16) & 0xff,
80
+ ]);
81
+ const frame = concatBytes(writeFrameHeader(1, false), blockHeader, blockContent);
82
+ const { header } = parseZstdFrame(frame, 0);
83
+ expect(() => decompressFrame(frame, 0, header)).toThrowError(/Treeless literals without previous Huffman table/i);
84
+ });
85
+ it('reports consumed bytes including checksum bytes', () => {
86
+ const payload = new TextEncoder().encode('world');
87
+ const frame = concatBytes(writeFrameHeader(payload.length, true), writeRawBlock(payload, 0, payload.length, true), checksumBytes(payload));
88
+ const { header } = parseZstdFrame(frame, 0);
89
+ const result = decompressFrame(frame, 0, header);
90
+ const stored = readU32LE(frame, frame.length - 4);
91
+ expect(stored).toBe(computeContentChecksum32(payload));
92
+ expect(result.bytesConsumed).toBe(frame.length);
93
+ });
94
+ });
95
+ //# sourceMappingURL=decompressFrame.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decompressFrame.test.js","sourceRoot":"","sources":["../../src/decode/decompressFrame.test.ts"],"names":[],"mappings":"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"}
@@ -22,5 +22,47 @@ describe('literals corruption handling', () => {
22
22
  const data = new Uint8Array(9);
23
23
  expect(() => decodeTreelessLiterals(data, 0, 9, 100, 4, table)).toThrowError(/4-stream mode requires at least 10 bytes/i);
24
24
  });
25
+ it('rejects compressed literals 4-stream jump table with negative stream4', () => {
26
+ const data = new Uint8Array([
27
+ 129,
28
+ 0x10, // tree
29
+ 0x0a,
30
+ 0x00, // s1 = 10
31
+ 0x0a,
32
+ 0x00, // s2 = 10
33
+ 0x0a,
34
+ 0x00, // s3 = 10
35
+ 0x01,
36
+ 0x01,
37
+ 0x01,
38
+ 0x01,
39
+ 0x01,
40
+ 0x01,
41
+ 0x01,
42
+ 0x01,
43
+ 0x01,
44
+ 0x01,
45
+ ]);
46
+ expect(() => decodeCompressedLiterals(data, 0, 12, 4, 4)).toThrowError(/Invalid jump table/i);
47
+ });
48
+ it('rejects treeless literals 4-stream jump table with negative stream4', () => {
49
+ const table = decodeCompressedLiterals(new Uint8Array([129, 0x10, 0x02]), 0, 3, 1, 1).huffmanTable;
50
+ const data = new Uint8Array([0x0a, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x01, 0x01, 0x01, 0x01]);
51
+ expect(() => decodeTreelessLiterals(data, 0, 10, 4, 4, table)).toThrowError(/Invalid jump table/i);
52
+ });
53
+ it('rejects Huffman stream with invalid end marker in 4-stream treeless mode', () => {
54
+ const table = decodeCompressedLiterals(new Uint8Array([129, 0x10, 0x02]), 0, 3, 1, 1).huffmanTable;
55
+ // Jump table: 1,1,1 and stream4=1. First stream byte is 0x00 => invalid end marker.
56
+ const data = new Uint8Array([0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01]);
57
+ expect(() => decodeTreelessLiterals(data, 0, 10, 4, 4, table)).toThrowError(/invalid end marker/i);
58
+ });
59
+ it('rejects malformed Huffman stream termination in 4-stream treeless mode', () => {
60
+ const malformedTable = {
61
+ table: [{ symbol: 0, numBits: 2 }],
62
+ maxNumBits: 2,
63
+ };
64
+ const data = new Uint8Array([0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x01, 0x01, 0x01]);
65
+ expect(() => decodeTreelessLiterals(data, 0, 10, 4, 4, malformedTable)).toThrowError(/did not end cleanly/i);
66
+ });
25
67
  });
26
68
  //# sourceMappingURL=literals.corruption.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"literals.corruption.test.js","sourceRoot":"","sources":["../../src/decode/literals.corruption.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AAEvB,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE,CAAC;IAC7C,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,0DAA0D;QAC/F,MAAM,CAAC,GAAG,EAAE,CAAC,0BAA0B,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;IAAA,CACrF,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC;IAAA,CACrF,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE,CAAC;QAC3D,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC;IAAA,CACtF,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE,CAAC;QACnD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,yDAAyD;QAC9F,MAAM,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CACpE,6CAA6C,CAC9C,CAAC;IAAA,CACH,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE,CAAC;QAC7D,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;QACnG,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,YAAY,CAC1E,2CAA2C,CAC5C,CAAC;IAAA,CACH,CAAC,CAAC;AAAA,CACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"literals.corruption.test.js","sourceRoot":"","sources":["../../src/decode/literals.corruption.test.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,22 @@ describe('literals header parsing', () => {
17
17
  expect(header.headerSize).toBe(3);
18
18
  expect(dataOffset).toBe(3);
19
19
  });
20
+ it('parses raw literals header with sizeFormat=3', () => {
21
+ const data = new Uint8Array([0x5c, 0x32, 0x00]); // blockType=0, sizeFormat=3, regeneratedSize=0x325
22
+ const { header, dataOffset } = parseLiteralsSectionHeader(data, 0);
23
+ expect(header.blockType).toBe(0);
24
+ expect(header.regeneratedSize).toBe(0x325);
25
+ expect(header.headerSize).toBe(3);
26
+ expect(dataOffset).toBe(3);
27
+ });
28
+ it('parses RLE literals header with sizeFormat=3', () => {
29
+ const data = new Uint8Array([0xad, 0x01, 0x00]); // blockType=1, sizeFormat=3, regeneratedSize=0x1a
30
+ const { header, dataOffset } = parseLiteralsSectionHeader(data, 0);
31
+ expect(header.blockType).toBe(1);
32
+ expect(header.regeneratedSize).toBe(0x1a);
33
+ expect(header.headerSize).toBe(3);
34
+ expect(dataOffset).toBe(3);
35
+ });
20
36
  });
21
37
  describe('decodeCompressedLiterals', () => {
22
38
  it('decodes minimal single-symbol Huffman (direct weights, 1 stream)', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"literals.test.js","sourceRoot":"","sources":["../../src/decode/literals.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"literals.test.js","sourceRoot":"","sources":["../../src/decode/literals.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,56 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { decodeSequences } from './sequences.js';
3
+ describe('decodeSequences modes and extended counts', () => {
4
+ it('parses extended numSequences encoding for >= 128 path', () => {
5
+ const result = decodeSequences(new Uint8Array([0x80, 0x00]), 0, 2, null);
6
+ expect(result.sequences).toEqual([]);
7
+ expect(result.bytesRead).toBe(2);
8
+ });
9
+ it('parses 255 marker path and rejects truncated section afterwards', () => {
10
+ const data = new Uint8Array([0xff, 0x00, 0x00]);
11
+ expect(() => decodeSequences(data, 0, data.length, null)).toThrowError(/truncated/i);
12
+ });
13
+ it('handles all-RLE mode (LL/OF/ML) with explicit symbols', () => {
14
+ const data = new Uint8Array([
15
+ 0x01, // numSequences
16
+ 0x54, // ll=1, of=1, ml=1
17
+ 0x00, // ll RLE symbol
18
+ 0x00, // of RLE symbol
19
+ 0x00, // ml RLE symbol
20
+ 0xff,
21
+ 0xff,
22
+ 0xff, // bitstream bytes
23
+ ]);
24
+ const result = decodeSequences(data, 0, data.length, null);
25
+ expect(result.sequences.length).toBe(1);
26
+ });
27
+ it('enters FSE mode and rejects malformed FSE table stream', () => {
28
+ const data = new Uint8Array([0x01, 0xa8, 0x00]); // ll=2, of=2, ml=2
29
+ expect(() => decodeSequences(data, 0, data.length, null)).toThrow();
30
+ });
31
+ it('uses repeat mode when previous tables are provided', () => {
32
+ const seeded = decodeSequences(new Uint8Array([0x00, 0x00]), 0, 2, null);
33
+ const data = new Uint8Array([
34
+ 0x01, // numSequences
35
+ 0xfc, // ll=3, of=3, ml=3 (repeat)
36
+ 0xff,
37
+ 0xff,
38
+ 0xff, // bitstream bytes
39
+ ]);
40
+ const result = decodeSequences(data, 0, data.length, seeded.tables);
41
+ expect(result.sequences.length).toBe(1);
42
+ });
43
+ it('rejects invalid state row when repeated tables are structurally invalid', () => {
44
+ const invalidTables = {
45
+ llTable: [],
46
+ llTableLog: 1,
47
+ ofTable: [],
48
+ ofTableLog: 1,
49
+ mlTable: [],
50
+ mlTableLog: 1,
51
+ };
52
+ const data = new Uint8Array([0x01, 0xfc, 0x80]);
53
+ expect(() => decodeSequences(data, 0, data.length, invalidTables)).toThrowError(/invalid state/i);
54
+ });
55
+ });
56
+ //# sourceMappingURL=sequences.modes.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequences.modes.test.js","sourceRoot":"","sources":["../../src/decode/sequences.modes.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "zstdify",
3
3
  "description": "Pure TypeScript zstd compression library",
4
- "version": "1.0.0",
4
+ "version": "1.0.1",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -1 +0,0 @@
1
- {"version":"7.0.0-dev.20251202.1","root":[[81,104],[290,316]],"fileNames":["lib.es5.d.ts","lib.es2015.d.ts","lib.es2016.d.ts","lib.es2017.d.ts","lib.es2018.d.ts","lib.es2019.d.ts","lib.es2020.d.ts","lib.es2021.d.ts","lib.es2022.d.ts","lib.es2023.d.ts","lib.es2024.d.ts","lib.esnext.d.ts","lib.es2015.core.d.ts","lib.es2015.collection.d.ts","lib.es2015.generator.d.ts","lib.es2015.iterable.d.ts","lib.es2015.promise.d.ts","lib.es2015.proxy.d.ts","lib.es2015.reflect.d.ts","lib.es2015.symbol.d.ts","lib.es2015.symbol.wellknown.d.ts","lib.es2016.array.include.d.ts","lib.es2016.intl.d.ts","lib.es2017.arraybuffer.d.ts","lib.es2017.date.d.ts","lib.es2017.object.d.ts","lib.es2017.sharedmemory.d.ts","lib.es2017.string.d.ts","lib.es2017.intl.d.ts","lib.es2017.typedarrays.d.ts","lib.es2018.asyncgenerator.d.ts","lib.es2018.asynciterable.d.ts","lib.es2018.intl.d.ts","lib.es2018.promise.d.ts","lib.es2018.regexp.d.ts","lib.es2019.array.d.ts","lib.es2019.object.d.ts","lib.es2019.string.d.ts","lib.es2019.symbol.d.ts","lib.es2019.intl.d.ts","lib.es2020.bigint.d.ts","lib.es2020.date.d.ts","lib.es2020.promise.d.ts","lib.es2020.sharedmemory.d.ts","lib.es2020.string.d.ts","lib.es2020.symbol.wellknown.d.ts","lib.es2020.intl.d.ts","lib.es2020.number.d.ts","lib.es2021.promise.d.ts","lib.es2021.string.d.ts","lib.es2021.weakref.d.ts","lib.es2021.intl.d.ts","lib.es2022.array.d.ts","lib.es2022.error.d.ts","lib.es2022.intl.d.ts","lib.es2022.object.d.ts","lib.es2022.string.d.ts","lib.es2022.regexp.d.ts","lib.es2023.array.d.ts","lib.es2023.collection.d.ts","lib.es2023.intl.d.ts","lib.es2024.arraybuffer.d.ts","lib.es2024.collection.d.ts","lib.es2024.object.d.ts","lib.es2024.promise.d.ts","lib.es2024.regexp.d.ts","lib.es2024.sharedmemory.d.ts","lib.es2024.string.d.ts","lib.esnext.array.d.ts","lib.esnext.collection.d.ts","lib.esnext.intl.d.ts","lib.esnext.disposable.d.ts","lib.esnext.promise.d.ts","lib.esnext.decorators.d.ts","lib.esnext.iterator.d.ts","lib.esnext.float16.d.ts","lib.esnext.error.d.ts","lib.esnext.sharedmemory.d.ts","lib.decorators.d.ts","lib.decorators.legacy.d.ts","../src/encode/blockwriter.ts","../src/bitstream/bitwriter.ts","../src/errors.ts","../src/decode/reconstruct.ts","../src/bitstream/bitreaderreverse.ts","../src/entropy/fse.ts","../src/entropy/huffman.ts","../src/entropy/predefined.ts","../src/encode/compressedblock.ts","../src/encode/framewriter.ts","../src/encode/greedysequences.ts","../src/bitstream/littleendian.ts","../src/frame/checksum.ts","../src/compress.ts","../src/decode/sequences.ts","../src/entropy/weights.ts","../src/dictionary/decoderdictionary.ts","../src/frame/frameheader.ts","../src/decode/block.ts","../src/bitstream/bitreader.ts","../src/decode/literals.ts","../src/decode/decompressframe.ts","../src/frame/skippable.ts","../src/decompress.ts","../../../node_modules/.pnpm/@vitest+pretty-format@2.1.9/node_modules/@vitest/pretty-format/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+utils@2.1.9/node_modules/@vitest/utils/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+utils@2.1.9/node_modules/@vitest/utils/dist/helpers.d.ts","../../../node_modules/.pnpm/tinyrainbow@1.2.0/node_modules/tinyrainbow/dist/index-c1cfc5e9.d.ts","../../../node_modules/.pnpm/tinyrainbow@1.2.0/node_modules/tinyrainbow/dist/node.d.ts","../../../node_modules/.pnpm/@vitest+utils@2.1.9/node_modules/@vitest/utils/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/tasks-3znpj1lr.d.ts","../../../node_modules/.pnpm/@vitest+utils@2.1.9/node_modules/@vitest/utils/dist/types-bxe-2udy.d.ts","../../../node_modules/.pnpm/@vitest+utils@2.1.9/node_modules/@vitest/utils/dist/diff.d.ts","../../../node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+utils@2.1.9/node_modules/@vitest/utils/dist/error.d.ts","../../../node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@24.10.13/node_modules/vitest/dist/chunks/environment.looobwuu.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/web-globals/crypto.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/utility.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/client-stats.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/h2c-client.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/snapshot-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@24.10.13/node_modules/@types/node/index.d.ts","../../../node_modules/.pnpm/@types+estree@1.0.8/node_modules/@types/estree/index.d.ts","../../../node_modules/.pnpm/rollup@4.58.0/node_modules/rollup/dist/rollup.d.ts","../../../node_modules/.pnpm/rollup@4.58.0/node_modules/rollup/dist/parseast.d.ts","../../../node_modules/.pnpm/vite@5.4.21_@types+node@24.10.13/node_modules/vite/types/hmrpayload.d.ts","../../../node_modules/.pnpm/vite@5.4.21_@types+node@24.10.13/node_modules/vite/types/customevent.d.ts","../../../node_modules/.pnpm/vite@5.4.21_@types+node@24.10.13/node_modules/vite/types/hot.d.ts","../../../node_modules/.pnpm/vite@5.4.21_@types+node@24.10.13/node_modules/vite/dist/node/types.d-agj9qkwt.d.ts","../../../node_modules/.pnpm/esbuild@0.21.5/node_modules/esbuild/lib/main.d.ts","../../../node_modules/.pnpm/source-map-js@1.2.1/node_modules/source-map-js/source-map.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/previous-map.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/input.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/css-syntax-error.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/declaration.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/root.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/warning.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/lazy-result.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/no-work-result.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/processor.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/result.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/document.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/rule.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/node.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/comment.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/container.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/at-rule.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/list.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/postcss.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/postcss.d.mts","../../../node_modules/.pnpm/vite@5.4.21_@types+node@24.10.13/node_modules/vite/dist/node/runtime.d.ts","../../../node_modules/.pnpm/vite@5.4.21_@types+node@24.10.13/node_modules/vite/types/importglob.d.ts","../../../node_modules/.pnpm/vite@5.4.21_@types+node@24.10.13/node_modules/vite/types/metadata.d.ts","../../../node_modules/.pnpm/vite@5.4.21_@types+node@24.10.13/node_modules/vite/dist/node/index.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@2.1.9/node_modules/@vitest/snapshot/dist/environment-ddx0edty.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@2.1.9/node_modules/@vitest/snapshot/dist/rawsnapshot-cpnkto81.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@2.1.9/node_modules/@vitest/snapshot/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@2.1.9/node_modules/@vitest/snapshot/dist/environment.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@24.10.13/node_modules/vitest/dist/chunks/config.cy0c388z.d.ts","../../../node_modules/.pnpm/vite-node@2.1.9_@types+node@24.10.13/node_modules/vite-node/dist/trace-mapping.d-dlvdeqop.d.ts","../../../node_modules/.pnpm/vite-node@2.1.9_@types+node@24.10.13/node_modules/vite-node/dist/index-z0r8hvru.d.ts","../../../node_modules/.pnpm/vite-node@2.1.9_@types+node@24.10.13/node_modules/vite-node/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+utils@2.1.9/node_modules/@vitest/utils/dist/source-map.d.ts","../../../node_modules/.pnpm/vite-node@2.1.9_@types+node@24.10.13/node_modules/vite-node/dist/client.d.ts","../../../node_modules/.pnpm/vite-node@2.1.9_@types+node@24.10.13/node_modules/vite-node/dist/server.d.ts","../../../node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/utils.d.ts","../../../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@24.10.13/node_modules/vitest/dist/chunks/benchmark.geerunq4.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@2.1.9/node_modules/@vitest/snapshot/dist/manager.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@24.10.13/node_modules/vitest/dist/chunks/reporters.nr4dxcka.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@24.10.13/node_modules/vitest/dist/chunks/worker.tn5kgiih.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@24.10.13/node_modules/vitest/dist/chunks/worker.b9fxpcac.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@24.10.13/node_modules/vitest/dist/chunks/vite.czkp4x9w.d.ts","../../../node_modules/.pnpm/@vitest+expect@2.1.9/node_modules/@vitest/expect/dist/chai.d.cts","../../../node_modules/.pnpm/@vitest+expect@2.1.9/node_modules/@vitest/expect/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+expect@2.1.9/node_modules/@vitest/expect/index.d.ts","../../../node_modules/.pnpm/@vitest+spy@2.1.9/node_modules/@vitest/spy/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+mocker@2.1.9_vite@5.4.21_@types+node@24.10.13_/node_modules/@vitest/mocker/dist/types-dzoqtgin.d.ts","../../../node_modules/.pnpm/@vitest+mocker@2.1.9_vite@5.4.21_@types+node@24.10.13_/node_modules/@vitest/mocker/dist/index.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@24.10.13/node_modules/vitest/dist/chunks/mocker.crtm890j.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@24.10.13/node_modules/vitest/dist/chunks/suite.b2jumifp.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/utils.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/overloads.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/branding.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/messages.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/index.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@24.10.13/node_modules/vitest/dist/index.d.ts","../src/errors.test.ts","../src/index.ts","../src/bitstream/bitreader.test.ts","../src/bitstream/bitreaderreverse.test.ts","../src/bitstream/varint.ts","../src/bitstream/index.ts","../src/bitstream/littleendian.test.ts","../src/bitstream/varint.test.ts","../src/decode/block.test.ts","../src/decode/literals.corruption.test.ts","../src/decode/literals.test.ts","../src/decode/reconstruct.test.ts","../src/decode/sequences.corruption.test.ts","../src/decode/sequences.level1.test.ts","../src/dictionary/decoderdictionary.test.ts","../src/encode/blockwriter.test.ts","../src/encode/compressedblock.test.ts","../src/encode/framewriter.test.ts","../src/encode/greedysequences.test.ts","../src/entropy/fse.test.ts","../src/entropy/huffman.test.ts","../src/entropy/index.ts","../src/entropy/weights.test.ts","../src/frame/checksum.test.ts","../src/frame/frameheader.test.ts","../src/frame/index.ts","../src/frame/skippable.test.ts"],"fileInfos":[{"version":"71cf8049ea8d435bcdf47408dac2525c","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"24660545bd04f64286946ca58f9461fc","impliedNodeFormat":99},{"version":"006807822602069b83b496ad7e25e6ca","impliedNodeFormat":99},{"version":"4d9b146f28d6be2c3542b08b595febfe","impliedNodeFormat":99},{"version":"455ea9b314b4d327c535fb65bd954959","impliedNodeFormat":99},{"version":"c079fccc6ede08aa4f8ca702c3ba328e","impliedNodeFormat":99},{"version":"c349310240662575d10e855fb8cff0b9","impliedNodeFormat":99},{"version":"4ccba7d48aa8b5a54b56f9a48b076496","impliedNodeFormat":99},{"version":"92ef9b8df31d3a08512928a3066d8fa9","impliedNodeFormat":99},{"version":"43f782dfe0cfccc03603dff6d7ffbe56","impliedNodeFormat":99},{"version":"af52c5f9c7d4f8a91e85748a8ab9c442","impliedNodeFormat":99},{"version":"1bd73602c7001221ecdb45a83c47f811","impliedNodeFormat":99},{"version":"751a26973b059fed1d0ecc4b02a0aa43","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"be28f9bf546cb528601aaa04d7034fc8","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"3bc4e9a53ee556f3dc15abc1179278dd","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"2c63fa39e2cdd849306f21679fdac8b1","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"e1a9f024b1a69565194afcdb4b57ef1d","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"9fa1fffd5b2b67d8d8c33e295cb91a9f","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"4d8ab857b044eaa0661bd0aebebc038b","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"748df784ad0b12a20c5f5ce011418c3c","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"1f3a8dca322a95bc3ffc20a28e72893a","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"d901677b09e934598f913e2c05f827b0","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"ab7a40e3c7854c54c6f329376cf3f9b6","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"00ece0060faf280c5873f3cfe62d7d19","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"cf5a418e3fbdb27a784c5fc37be6797a","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"a73a6f599fda19ffee929d4386bab691","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"14475f4288b8cf4a098c2806834a1c0b","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"fbae9331a88fa1a8a336fe90253cbbc7","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"d4124f01474cfa693099d8be321979e4","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"e3e80cf65ee855fd4a5813ea19701f93","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"cd8650f4caf8166f19fd93217907da21","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"c39604220a24016cb90fe3094a6b4b56","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"2652c52b1c748791681ca0a4d751b09b","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"9540816cf2a3418a9254e43f1055e767","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"f9616d828e6afe0f8146e9ac3b33fa59","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"4f00a6f131995907fe9b0faf4dbabc18","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"47f85dd672027fda65064cbfee6b2d71","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"8adddec358b9acfa3d65fd4d2013ac84","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"8170fe225cf3b8b74c06f1fe8913924f","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"c9dbd0e301b2bd8fc6d5dcb75dc61ec4","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"3a64170086e7ddb980f07478f95f7c49","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"a804e69080dc542b8de4079fdde7ebef","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"783d6e41b4c30cc983d131b2f413044a","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"11b11ae792c173835b03d064a0853462","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"4cdc220ae24b55dcc69d30252c36ce9d","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"36fd93eca51199e9dfee76d7dbbf2719","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"7fc46463d5c6871146e3aac105f21a2d","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"21ed16210f33f30f1e2df6dd5bc584d9","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"b2d1055a33f1612669aed4b1c06ab438","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"6779bb060769fcc1b3063d7d6dacca83","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"5de91aed11cf11bbf79c2323600f2a28","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"2843d76b135201d1ba75d56f45238760","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"98afe632d712655c371691bc02dd15f8","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"e33a3b1212a9f61f3d7229e068573681","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"2be269e94382bba86f42d7d4109c6ddc","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"045bc80bcb8ba75cf56e2c9af4636a06","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"5c327c3a580ef35777e7f2b97b6b23e4","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"9965653fed0cc40aff9f23e6250e449a","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"3f0224f4e28ecc5c714451c6fe9ed637","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"31bf9dad4e4564649a923b1f8e9fe016","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"ab498520bb087228060205c259f9f1db","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"2ed49ae6f083c5ceea392013d5500bd1","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"4f1fc94e4ceefdf65dfae80b7ca74761","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"bb0f36efb1ca5ac2c05b884ea9eb300d","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"e7e8f73cc8fbc557946f3c599af084dd","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"c108a3fdbc1f311f3505db4b5d6d4311","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"bf2ba43f37aefa733d387c1b1477906b","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"b5af3bd27050b2af3ba57b2b37f431f6","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"91cfeba82a5dd4c400c77ab8b5af4bc7","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"0ddc167cfc604225cb84a9620926049e","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"f244cb057e35de9b71f7d2e330a684dc","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"6ff13a1f4d84ba0dfb73813250150f0a","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"c277a50101d5ab0655c320101c70d3a2","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"815784e3a8d0d7682680536b3f7a25bc","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"59ae3ec3878ab72bfbfb82c7593d3a52","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"43bb073f85094030dbdac6036ec860d0","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"142e3750ad8fcff9893edc2eed0affcb","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"75f52d5da55e5899f01782e3b911d988","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"45c91c5f844a9ee1df11d1b71c484b0e","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"39e009135c77d60baa790854b51d2195","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"76c1b3ed32c9651056b17553715898a4","signature":"b998d00d576dd0bf58235d4a1ba3bfbe","impliedNodeFormat":1},{"version":"9e97ee2b139e09f8c070e4a3eb8ea67a","signature":"91945795b9f934ca1a364bd940ea39f4","impliedNodeFormat":1},{"version":"681726bc2f5c2732995a904ef45e3e1d","signature":"e0f395dae9b089cd3c2e4f53c56fa7cd","impliedNodeFormat":1},{"version":"be3e75a5f9fd0bb97af0545d1b4c2a58","signature":"066b4fb8cdc855fa0550ca05136e0243","impliedNodeFormat":1},{"version":"d0a787fc5a089447bec3009d8311e9b5","signature":"d428f2af0c8adb1b3ea96eaab12f9f31","impliedNodeFormat":1},{"version":"d31f188e0493eb7fecb487600b3e09d0","signature":"7ad256b11699817194880fef4c9d4d29","impliedNodeFormat":1},{"version":"c3f945a97cb6ba5545f9108fde7d3e0c","signature":"670cdd223464b8130c2346389764ae4f","impliedNodeFormat":1},{"version":"2438af0a3fba7f981ebbb25b48ca0f5a","signature":"5b07b08ccb10ef1d278265f073a1b045","impliedNodeFormat":1},{"version":"96e3086bff7deba2ee031289e1f36ea8","signature":"860f5a8a3fd738bd660d0e0c65f1b399","impliedNodeFormat":1},{"version":"a470c6d40d9b0078dea9363bb4ee035f","signature":"34864b5f795ec4bd01636ff0f71cb012","impliedNodeFormat":1},{"version":"6943f4f168bc0cddfe51eb0ff73f9912","signature":"7d1f2427e2e25e78bd120061b582808c","impliedNodeFormat":1},{"version":"5636252975c15da459e9afed84b4feef","signature":"cc83a850d47fafe9d01fcc78ba858bad","impliedNodeFormat":1},{"version":"a89d79decce7feae3f9bec4ca12484d9","signature":"67abd9c380a21837508147c9044e649b","impliedNodeFormat":1},{"version":"ac8588cf2bdb5a5b2c34135d187c1f90","signature":"3cba5d8f1fdbcc12b7062bd44837197c","impliedNodeFormat":1},{"version":"10a47ffa2ea41404feb5091be55952c1","signature":"55a9b72e60936dc053e7cac615f90122","impliedNodeFormat":1},{"version":"1ba0cc468c617854594204ef90a810b7","signature":"f91d6a16c1e787a734084c29ada30869","impliedNodeFormat":1},{"version":"8f8675fa562ddd289a94d8cdd39528ad","signature":"d30bede93617da03463521454806c676","impliedNodeFormat":1},{"version":"2e69e0f918746351f698dfa27dd3361c","signature":"08845a41dd5ee3119106a8e4f3d8fe03","impliedNodeFormat":1},{"version":"5cc1e2e700c47565774e804d0e6752ab","signature":"94b70724d2f60e032e04ddcc96690d67","impliedNodeFormat":1},{"version":"6d564993eb51368eff0bdf1fdaf9a8ea","signature":"c346355e59adb8e5c9a6060658dd0071","impliedNodeFormat":1},{"version":"3685bc120b06ab1e8a254fd6297016e3","signature":"f2832089cf4e4c9ba3fdf6cac922085f","impliedNodeFormat":1},{"version":"2f6f30b31255b0875d7a888f243434d7","signature":"8a8f7daf6227fbdd48c36e9ac279bde1","impliedNodeFormat":1},{"version":"c553de31145266e2818edc09c2e9af43","signature":"ded1c78673b4634f2c19f067bbe71feb","impliedNodeFormat":1},{"version":"2a607471e04151a2803b73cf51ac4b71","signature":"c95fb2576a927fc8ac04291f2cbe9d61","impliedNodeFormat":1},{"version":"bed8314d264a8896771c4bdc268ea3ff","impliedNodeFormat":99},{"version":"2cc748f4dcf57bda300acad03257288c","impliedNodeFormat":99},{"version":"660cf124abb644ec3006dc3f3fdefc7f","impliedNodeFormat":99},{"version":"e3e0147b630f9a683156e42c8663327a","impliedNodeFormat":99},{"version":"0611ea97a347a79e7f670bec155cb7ae","impliedNodeFormat":99},{"version":"afbb231cbab1ac1c8bbe1b09f5162081","impliedNodeFormat":99},{"version":"efdabbaa4a9aa6f1ff54abe74c1212a5","impliedNodeFormat":99},{"version":"11e211998cfa1c5fa4ca79452f09bdda","impliedNodeFormat":99},{"version":"5d19c917378e8922295d9f8ba1b7092f","impliedNodeFormat":99},{"version":"5347f4f3f9cf22e1d0eae67ca09c482d","impliedNodeFormat":99},{"version":"3d9c6efbe7e440b69a6843496451bcce","impliedNodeFormat":99},{"version":"1e9922bc6916051cf5442ca105214a0a","impliedNodeFormat":99},{"version":"7feddd86d77a0aa24b58826b0091b0b7","impliedNodeFormat":99},{"version":"2514e9a2749c0fc18d2f478e9e1e641e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6ae4c332ecb24e76c1e47c0e21d4663d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"69ee0752d1e70c56ca160360425752a9","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"bf33440030f0a0fae7d1efd6c293a8d2","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9af0a7e3ef1c42cd066b9f8d365cc1ba","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"7b772cebc7136c34fc77954aef70519d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9eca652586205dc5b07f9ba57b1c8500","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ec5f75939754ce94652189ec7d0d3058","affectsGlobalScope":true,"impliedNodeFormat":1},"49133c0dfbc32ab95668c3443dea49e5","85c2cf74d24d4069fac4686501a2d7e3","83f416ded62bb31c035580c3b5a8d334","d261ae135609468365bc2d32742d3e0d","60c67c092ae78d2e7858ca0a88f54659","9508c917bd7e458745e222a82dd24ef0","fcd1a513c1e5802916fa602e8b8e64bc","9cf55e98366383279869ace31be98079","8e2bc11d0328ba95e490a741c44a215d","f36661bccb8b9a0b5ccb8539ae751cb3","705645fe223430c696f47b708d592ca8","28d57c837c94adb42add03d499793cab","8c01a9bbae8449be21b3e018d59a74ac","705c3696b9d9681bf22181718bb08ffc","679024f8e9f58a112f4badf119c4d612","16f740a706028e841b09fb8b1aa8faaf","e6828eaf960f006eb1adb6e7df8913c0","6fdde11403da5129f4388a489f361535","d7e5f7a0f1f883f28458f684106e7643","c2364011a80b6a9e3cc0e77895bad577","38da5c670190f4a35cbc204ca6c616bf","d95cc0eb29beed58f5ce72db21398f53","ecd53256b1ec7379c73316eaf392a69c","db5a9211b779628398011a5b8f5b8b5d","69c7bb9c3befe9ae37eed0e6a6310fee","1cba93fafccb7b2655f0e75229185e83","094ecadae30f65a82b77343dde77a666","f75df12d75dd783b03a0329b95abdb25","b438b08b2f0ed94a95a75c8990d9021b","771a77c9bec862600c95f7a563871b5e","c665284a9cb3dd886b14663cd04742e0","1c3833453f6ed0acab1b4663ccdbd310","0468c0ccd0ec7770b76481b165564d62","188234d616a4f50ed9b14c8f84a39f33","4c116bcf0a47ea8fbf4072f380925fa7","1948703c2f27e582e0a0cc37bd67a868","add85ec26ba695fc99c698dbec065f8c","73ba12091cff7d4499df83bbe40d777b","b744265d8ad12b7d4d5c5dc35d18d44e","eff32168b8348b822afeed9cbf61afa7","af51e27e980746d79714b72188b3ee40",{"version":"dd1cf1cc3aa21cd78b4869a44d98c6d9","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"292c9398a407b33b1d9c9812b673387a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"45df94b3c51b898624bacc2bcd6d9eb2","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"7d352f71d1b1bcc12c79dd0e4597537c","affectsGlobalScope":true,"impliedNodeFormat":1},"db11b80743ed5356b81d763a708788e6","39078ea063fcaf72bd3cca7e0d13d017","f81aa09811fa65ac6f354ab0018d3c38",{"version":"282318b178d190157a4deacb14f3040a","affectsGlobalScope":true,"impliedNodeFormat":1},"8808902c9175daaaa4cb55f549a45608","54c5c3dcfdb5f7cf5fbbccfff6ead3fa",{"version":"dc14f078230582a2f8fb2138bfcf4f85","affectsGlobalScope":true,"impliedNodeFormat":1},"b2b472cd0bf0f8d5f022e00ca1c401f4","973ebe6a8aa5a2455e23a1dbaa0ad02a","39b3089f3df8d14e0f2ddac0479872d9","cc7a57e86f908c313649aea8d90377e1","5c271f10d8a9b9a1206bc82a4fe5b84d","fbe31979333ec391d8b59e8f42236e8e","6f97553fd1690f568365155d4c51a3b5",{"version":"a3f111d2a29b6cdd04fc4b41aa560c86","affectsGlobalScope":true,"impliedNodeFormat":1},"5f4ac576bcdc670a8489c881b23a2b17","84c4165c4499465304988f5db8d9940a","168fc383d498de31c08864cb111063e7","86978b8f91524043f71ff8dfaf83288b","4acfe57fcd69b01ad21cb5a7655dfaf2","579675a2c3b0f8c532a82ad9cbd5d384","6c4de7becb0d667144a298a048daa5f8",{"version":"2e0aa7aecec3c5e9ab4a64d08399e9d8","affectsGlobalScope":true,"impliedNodeFormat":1},"b59cb5a2a891b4a59040eecaa4e4fd92","c9053dbbe4fa2853f2d3f73b9a2fee81","4e458316a6083cbd2bba2fd29f674dd5",{"version":"c30a191ddcdb0b73c5f4982f6fd2eeb2","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"7d05a0dd550db66561b277e26819ab2c","affectsGlobalScope":true,"impliedNodeFormat":1},"6b26581aa2587701d570206a0db8c9ee","88a29e2aac8082c0910733950159e1ca","609d3ac6ba921e6e83c5da182c204fb8","0f80958d77cd6301b43c1d7904e3e4bc","3bdc645524ab0d2f6795d3a008833bd7","deb50b47eb75a5566532a763fa1324fa","60ce7e2b7ea6ef20a957106c8bff3756","7e470eddc0bd0486dc2a8ab902de79b7","c8206d568b54e5ea06131963eecd576a","15878f4f50c2e562c0768eb735c2aed5",{"version":"98d7074a05f2d388bfaa708af5660466","affectsGlobalScope":true,"impliedNodeFormat":1},"dd404118e8bd70aff746f7d31e46270b","4b9ff1cc38cc2243605ecef78c80ef8b",{"version":"6b8649a280031d9e86955db721cfad87","affectsGlobalScope":true,"impliedNodeFormat":1},"4bc8f13c472858fb74f77388c0c5d885","4135a556dceeda3f626dc8b05ec47a50","c72d2516d1e8910caca33c4dff75fcd4","f0231f36cb7117fbe9271ff19ef0f5f4",{"version":"e995f9c4853f0e5bcfafddb750fb9cf9","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"05b61990a35c8c3ddca8ab7c65d6ad9f","affectsGlobalScope":true,"impliedNodeFormat":1},"53754b619210c571daf58c393ea6bf83","9d0a504d30d1e9052afa9f6a5a9426c5","9268959cff1006c82e6abbd73824db97",{"version":"a08438ea6c1ea2f0cf4aa6835e2cf1d1","affectsGlobalScope":true,"impliedNodeFormat":1},"595eb99a4776c696a2fe27ca8d877652","eb567c7b5824aab578f75bbccf9f4b05","4501167a04f84205017251407e6ed43b",{"version":"16f4c8704cdad73fc94a6821e4630b40","affectsGlobalScope":true,"impliedNodeFormat":1},"ec8179256edf276707d3fc2d546c08a5","c41dfa992327d5d9ac91f5ba67140a9f","bc40746db9f4f7844c2c87b3f766c2c2","057dd0248541710a8c55273d076f5ea8",{"version":"3e9947c80f076a191d01091547b58b23","impliedNodeFormat":99},{"version":"9a46e873ee3113eb1ec9417022c2ec56","affectsGlobalScope":true,"impliedNodeFormat":1},"07e14c037c571c6a65227f6028ba71bb","e0d71344e08090d242ddbb62202bf525","cb388ab2b69f225dfc1713f375cdf700","bd1ac570ac6462dd37f134886d47b59e","05d39561dc324d83b21f1f75257bb14a","e45043f374eb5ed478726d5a2b57e00e","c3c8b27013c9eef710cf3b4651ed5d30","e9ace6a4040eca965b9bfb930f846e1e","68694a8f369c36362861a107d633314f","dcbfb791583f55a7052a66993c6a768c","5561f39c7d4c83b7753fc2aec55dceba","37c6157c8da787727a0d91c04d6417ca","da942b7f92675632be38fbe393c25eec","935192a885a2c1300f35de0c84fcb04d","2e97d8eb4916aec3abb69b0604c31832","3c8aaa3d1e0d528b17aff81f65d91879","38d9bd5d6de46b1c4960bbe6e7059d78","2c57a35029458c772083ca627c5963bc","8e2e72ac1d5bd18528c0fc7d3665c5f1",{"version":"8ddb259287bbefd133968a222c647fa6","impliedNodeFormat":99},{"version":"175d1ce79fb7bcebcf51d8bed373276f","impliedNodeFormat":99},"c69df9466cdbac67af017c84c2535476","d929083a600293ef8150310a8f1a77f9",{"version":"f15b5919b156648b63436c7d8ecb2538","impliedNodeFormat":99},{"version":"b40a46ee34c8932227c946aa1684919b","impliedNodeFormat":99},{"version":"7155fb0e5bc9be550cc478158f05e8a9","impliedNodeFormat":99},{"version":"b5ffbf41ddc58062ab0c450b8ccf7628","impliedNodeFormat":99},{"version":"a5c8ae222b70cf628f1b0d7a6355eea5","impliedNodeFormat":99},{"version":"cda9a9c77f7dbf207486c53ad032377a","impliedNodeFormat":99},{"version":"0e2c28ead35d0b37adaeb4cbc4fe2064","impliedNodeFormat":99},{"version":"59a67b3f101abf5b39d283a14cac64bb","impliedNodeFormat":99},{"version":"6396e09ea55b84a57890c12aff35b3bb","impliedNodeFormat":99},{"version":"ba8e6dcefa21cc2d01f87b2fa73c23a5","impliedNodeFormat":99},{"version":"80f21f8cfd61d024c4fcc3e59fd535d2","impliedNodeFormat":99},{"version":"cb86fb4a5f5d1dbb195e7b9c7fd6d565","impliedNodeFormat":99},{"version":"1402efd09848c3e59e4eb417e5ec0c88","impliedNodeFormat":99},{"version":"bd01f3bcdc72c9256e5cd5093d132df3","impliedNodeFormat":99},{"version":"36f0c3503febcc8d38539a02351e0394","impliedNodeFormat":99},{"version":"e8546dd39d30bfdff6a523d0c56901dd","impliedNodeFormat":99},{"version":"17d1a8fe8dc00826cbd32f842b6d49c5","impliedNodeFormat":99},{"version":"6ba388f1b9e0d668cf525d43be7a08c3","impliedNodeFormat":99},{"version":"32bac8d8f8f3f8c1dc17b60847c96583","impliedNodeFormat":99},{"version":"68309800c73b1bce965b23ae06ead389","impliedNodeFormat":99},{"version":"777744d5d2c7de5b55323054ee452f47","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ec908a3342cf12bedb03dbbe88c9b4e9","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"305529ed4821c55762d70ef7d8bf8520","impliedNodeFormat":99},{"version":"28f1b77b7da091064ceed7b1ff57fcb8","impliedNodeFormat":99},{"version":"346a35feba467fccdf031167b88a2d97","impliedNodeFormat":99},{"version":"8b8177ab69d2fbfca9d668abbd34f0e2","impliedNodeFormat":99},{"version":"cfd4f825071bc6e41be926d926830d95","impliedNodeFormat":99},{"version":"b3a969b6e0b33baf233692998e28f0a5","impliedNodeFormat":99},"8d8a98bf45979ce5401d9ca4027940cd","7d98e95d38525423bbe0f05e0a508a41","96920299d013de56061cbc74a1d658b2","439adabdf29be1212ec7acc292679f21","3eb46d20ed056dcbfa5e75bad9014661",{"version":"f47bb577462ffdf93e9100b0b2c20caf","affectsGlobalScope":true,"impliedNodeFormat":99},{"version":"ad09082ea574346757601880c3068689","signature":"abe7d9981d6018efb6b2b794f40a1607","impliedNodeFormat":1},"8fc0dd8c8aa3be2a2cc273257c1041a0",{"version":"8dd9522cc593d76bed2cdca03316af8d","signature":"abe7d9981d6018efb6b2b794f40a1607","impliedNodeFormat":1},{"version":"f4db1abdbf25bd91eb9a98600c92755d","signature":"abe7d9981d6018efb6b2b794f40a1607","impliedNodeFormat":1},{"version":"c4ef204839f59c2ce8da66552784ff82","signature":"5265af78b2d953f252defafbb2a79a8a","impliedNodeFormat":1},"7f8405190401b4225c6af64981570f32",{"version":"3ed29d59d1f7ed17c4a13b7ca1b3d73c","signature":"abe7d9981d6018efb6b2b794f40a1607","impliedNodeFormat":1},{"version":"9cd1e118dcfbe926408d0f9b18a77fcc","signature":"abe7d9981d6018efb6b2b794f40a1607","impliedNodeFormat":1},{"version":"a31e64d8ebe9eb3809a511162949736a","signature":"abe7d9981d6018efb6b2b794f40a1607","impliedNodeFormat":1},{"version":"f801acfbc397985cf0965981bafd8a3f","signature":"abe7d9981d6018efb6b2b794f40a1607","impliedNodeFormat":1},{"version":"d25f790b4bc2f7c16394ee645b164f0f","signature":"abe7d9981d6018efb6b2b794f40a1607","impliedNodeFormat":1},{"version":"6f0e40378d61adfc8c7a4ae22780d986","signature":"abe7d9981d6018efb6b2b794f40a1607","impliedNodeFormat":1},{"version":"fe161a8bcf929bcaae191f0014f6c586","signature":"abe7d9981d6018efb6b2b794f40a1607","impliedNodeFormat":1},{"version":"64b1f8ebf2367c0fd2dfb1033f0566b6","signature":"abe7d9981d6018efb6b2b794f40a1607","impliedNodeFormat":1},{"version":"86ec3b856226713810e2988e383d6c9c","signature":"abe7d9981d6018efb6b2b794f40a1607","impliedNodeFormat":1},{"version":"8b45ea5fe91c7a0b4ca26fa5a2ae724e","signature":"abe7d9981d6018efb6b2b794f40a1607","impliedNodeFormat":1},{"version":"a4d622f899c44b7da74a347f75ee53ec","signature":"abe7d9981d6018efb6b2b794f40a1607","impliedNodeFormat":1},{"version":"9a98ce7c7302f24f320a175686ee3c95","signature":"abe7d9981d6018efb6b2b794f40a1607","impliedNodeFormat":1},{"version":"f0ca0fb72aa04b783a9ff305ea80e367","signature":"abe7d9981d6018efb6b2b794f40a1607","impliedNodeFormat":1},{"version":"e5ef14002d502e0eaa15694ab7a4df11","signature":"abe7d9981d6018efb6b2b794f40a1607","impliedNodeFormat":1},{"version":"47f4b88080be202476f7e7694607c8ec","signature":"abe7d9981d6018efb6b2b794f40a1607","impliedNodeFormat":1},{"version":"424fc623b9a83c6432acbc904211199d","signature":"567bed0dbc5af91395e8110350a7e664","impliedNodeFormat":1},{"version":"128caf50271957aaab2af83bf8514351","signature":"abe7d9981d6018efb6b2b794f40a1607","impliedNodeFormat":1},{"version":"0f4af8b1a1d1da4b002954398fe2cae0","signature":"abe7d9981d6018efb6b2b794f40a1607","impliedNodeFormat":1},{"version":"4066378c00e9fbc01f2997e011ab52bc","signature":"abe7d9981d6018efb6b2b794f40a1607","impliedNodeFormat":1},{"version":"4dd851812b967ecc2504b436d8157bfd","signature":"7216b1d1175926b6743a8bfd9ef2ce51","impliedNodeFormat":1},{"version":"37fc768d16ed8ea660a0bc4957d8f432","signature":"abe7d9981d6018efb6b2b794f40a1607","impliedNodeFormat":1}],"fileIdsList":[[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,166,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[118,119,120,121,122,123,124,125,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,222,223,276],[120,166,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,166,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223],[109,110,113,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,277],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,280],[110,111,113,114,115,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[110,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[110,111,113,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[110,111,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,257,276],[105,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,257,258,276],[105,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,257,276],[105,112,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[106,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[105,106,107,109,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[105,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,284,285],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,284,285,286,287],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,284,286],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,284],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,248,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,246,248,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,237,245,246,247,249,251,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,235,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,238,243,248,251,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,234,251,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,238,239,242,243,244,251,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,238,239,240,242,243,251,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,235,236,237,238,239,243,244,245,247,248,249,251,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,251,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,233,235,236,237,238,239,240,242,243,244,245,246,247,248,249,250,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,233,251,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,238,240,241,243,244,251,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,242,251,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,243,244,248,251,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,236,246,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,226,255,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,225,276],[108,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,132,135,138,139,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,135,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,135,139,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,129,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,133,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,131,132,135,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,276],[120,129,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,276],[120,131,135,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,126,127,128,130,134,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,135,143,151,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,127,133,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,135,160,161,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,127,130,135,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,276],[120,126,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,129,130,131,133,134,135,136,137,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,161,162,163,164,165,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,135,153,156,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,135,143,144,145,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,133,135,144,146,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,134,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,127,129,135,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,135,139,144,146,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,139,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,133,135,138,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,127,131,135,143,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,135,153,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,146,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[120,129,135,160,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,262,263,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,262,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,256,262,263,275,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,226,227,228,229,230,231,232,252,253,254,255,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,228,229,230,231,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,228,229,230,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,228,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,229,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,226,276],[116,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,268,269,276,289],[105,116,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,259,260,276,289],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,281],[105,110,116,117,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,256,259,261,264,265,266,267,270,271,275,276,289],[116,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,268,269,270,276,289],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,256,272,276],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,273,276],[116,117,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,259,261,264,276,289],[105,110,113,116,117,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,256,259,260,261,264,265,266,267,268,269,270,271,272,273,274,275,276,278,279,281,282,283,288],[100,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,289],[85,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,289],[82,92,100,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,294],[92,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,289],[120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,289,294],[81,89,90,91,93,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[99,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,289],[83,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[83,84,87,92,93,95,97,98,99,101,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[101,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,289],[82,101,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,289],[83,85,87,96,100,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[84,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,289],[95,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,289],[84,95,98,99,101,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,289],[83,84,85,86,88,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[83,97,98,102,103,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[97,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,289],[83,86,87,92,95,96,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[81,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,289],[89,91,94,98,101,104,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,289],[82,84,86,87,88,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[90,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,289],[84,91,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,289],[84,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[85,86,88,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,289],[83,85,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[85,87,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,289],[86,87,88,96,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[96,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,289],[83,86,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[83,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,289],[93,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,289],[92,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[98,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,289],[83,92,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[93,98,103,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276],[103,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276,289],[94,104,120,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,276]],"options":{"allowJs":false,"allowSyntheticDefaultImports":true,"alwaysStrict":true,"declaration":true,"esModuleInterop":true,"module":7,"noFallthroughCasesInSwitch":true,"noImplicitAny":true,"noImplicitThis":true,"noImplicitReturns":true,"noUncheckedIndexedAccess":true,"outDir":"./","skipLibCheck":true,"strict":true,"strictFunctionTypes":true,"skipDefaultLibCheck":true,"sourceMap":true,"target":9,"tsBuildInfoFile":"./tsconfig.tsbuildinfo","verbatimModuleSyntax":true},"referencedMap":[[225,1],[171,2],[172,3],[173,4],[120,5],[174,6],[175,7],[176,8],[118,1],[177,9],[178,10],[179,11],[180,12],[181,13],[182,14],[183,15],[184,16],[185,17],[186,18],[187,19],[121,1],[119,1],[188,20],[189,21],[190,22],[224,23],[191,24],[192,25],[193,26],[194,27],[195,28],[196,29],[197,30],[198,31],[199,32],[200,33],[201,34],[202,35],[203,36],[204,37],[205,38],[206,39],[208,40],[207,41],[209,42],[210,43],[211,44],[212,45],[213,46],[214,47],[215,48],[216,49],[217,50],[218,51],[219,52],[220,53],[221,54],[122,1],[123,1],[124,1],[125,1],[167,55],[168,1],[169,1],[170,1],[222,56],[223,57],[79,1],[80,1],[14,1],[13,1],[2,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[3,1],[23,1],[24,1],[4,1],[25,1],[29,1],[26,1],[27,1],[28,1],[30,1],[31,1],[32,1],[5,1],[33,1],[34,1],[35,1],[36,1],[6,1],[40,1],[37,1],[38,1],[39,1],[41,1],[7,1],[42,1],[47,1],[48,1],[43,1],[44,1],[45,1],[46,1],[8,1],[52,1],[49,1],[50,1],[51,1],[53,1],[9,1],[54,1],[55,1],[56,1],[58,1],[57,1],[59,1],[60,1],[10,1],[61,1],[62,1],[63,1],[11,1],[64,1],[65,1],[66,1],[67,1],[68,1],[1,1],[69,1],[70,1],[12,1],[74,1],[72,1],[77,1],[76,1],[71,1],[75,1],[73,1],[78,1],[276,58],[277,59],[278,60],[281,61],[280,1],[105,1],[116,62],[111,63],[114,64],[268,65],[257,1],[260,66],[259,67],[271,67],[258,68],[279,1],[113,69],[115,69],[107,70],[110,71],[265,70],[112,72],[106,1],[232,1],[286,73],[288,74],[287,75],[285,76],[284,1],[249,77],[247,78],[248,79],[236,80],[237,78],[244,81],[235,82],[240,83],[250,1],[241,84],[246,85],[252,86],[251,87],[234,88],[242,89],[243,90],[238,91],[245,77],[239,92],[227,93],[226,94],[233,1],[269,1],[108,1],[109,95],[143,96],[155,97],[141,98],[156,1],[165,99],[132,100],[133,101],[131,1],[164,102],[159,103],[163,104],[135,105],[152,106],[134,107],[162,108],[129,109],[130,103],[136,97],[137,1],[142,104],[140,97],[127,110],[166,111],[157,112],[146,113],[145,97],[147,114],[150,115],[144,116],[148,117],[160,102],[138,118],[139,119],[151,120],[128,1],[154,121],[153,97],[149,122],[158,1],[126,1],[161,123],[266,124],[263,125],[264,124],[267,126],[262,1],[256,127],[253,128],[231,129],[229,130],[228,1],[230,131],[254,1],[255,132],[270,133],[261,134],[117,1],[282,135],[272,136],[283,137],[275,138],[274,139],[273,140],[289,141],[292,142],[100,1],[293,143],[85,1],[82,1],[295,144],[296,145],[92,1],[297,146],[294,1],[94,147],[298,148],[99,149],[102,150],[299,151],[300,152],[101,153],[301,154],[84,149],[302,155],[303,156],[95,157],[104,158],[304,159],[97,160],[305,161],[81,1],[306,162],[89,163],[307,164],[90,1],[308,165],[91,166],[309,167],[86,168],[310,169],[87,168],[311,170],[88,1],[312,171],[96,172],[290,173],[83,1],[313,174],[93,175],[314,176],[98,177],[315,178],[316,179],[103,175],[291,180]]}