zstdify 1.3.0 → 1.4.0

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.
Files changed (53) hide show
  1. package/README.md +24 -4
  2. package/dist/bitstream/bitReaderReverse.d.ts +15 -0
  3. package/dist/bitstream/bitReaderReverse.js +41 -1
  4. package/dist/bitstream/bitReaderReverse.js.map +1 -1
  5. package/dist/bitstream/index.d.ts +1 -1
  6. package/dist/bitstream/index.js +1 -1
  7. package/dist/bitstream/index.js.map +1 -1
  8. package/dist/bitstream/reverseBitWriter.d.ts +15 -1
  9. package/dist/bitstream/reverseBitWriter.js +6 -7
  10. package/dist/bitstream/reverseBitWriter.js.map +1 -1
  11. package/dist/bitstream/varint.d.ts +2 -1
  12. package/dist/bitstream/varint.js +16 -8
  13. package/dist/bitstream/varint.js.map +1 -1
  14. package/dist/compress.js +8 -7
  15. package/dist/compress.js.map +1 -1
  16. package/dist/decode/block.d.ts +1 -0
  17. package/dist/decode/block.js +4 -0
  18. package/dist/decode/block.js.map +1 -1
  19. package/dist/decode/decompressFrame.js +25 -71
  20. package/dist/decode/decompressFrame.js.map +1 -1
  21. package/dist/decode/fusedSequences.d.ts +4 -5
  22. package/dist/decode/fusedSequences.js +403 -20
  23. package/dist/decode/fusedSequences.js.map +1 -1
  24. package/dist/decode/reconstruct.d.ts +0 -2
  25. package/dist/decode/reconstruct.js +87 -78
  26. package/dist/decode/reconstruct.js.map +1 -1
  27. package/dist/decode/sequences.js +19 -20
  28. package/dist/decode/sequences.js.map +1 -1
  29. package/dist/dictionary/compressorDictionary.d.ts +8 -0
  30. package/dist/dictionary/compressorDictionary.js +22 -14
  31. package/dist/dictionary/compressorDictionary.js.map +1 -1
  32. package/dist/encode/compressedBlock.d.ts +2 -2
  33. package/dist/encode/compressedBlock.js +107 -198
  34. package/dist/encode/compressedBlock.js.map +1 -1
  35. package/dist/encode/fastMatcher.js.map +1 -1
  36. package/dist/encode/frameWriter.js +5 -1
  37. package/dist/encode/frameWriter.js.map +1 -1
  38. package/dist/encode/lazyMatcher.js.map +1 -1
  39. package/dist/encode/literalsEncoder.d.ts +2 -1
  40. package/dist/encode/literalsEncoder.js +289 -47
  41. package/dist/encode/literalsEncoder.js.map +1 -1
  42. package/dist/encode/optimalParser.js.map +1 -1
  43. package/dist/encode/sequencePlanner.js.map +1 -1
  44. package/dist/entropy/fse.d.ts +1 -1
  45. package/dist/entropy/fse.js +21 -1
  46. package/dist/entropy/fse.js.map +1 -1
  47. package/dist/entropy/huffman.d.ts +1 -1
  48. package/dist/entropy/huffman.js +2 -1
  49. package/dist/entropy/huffman.js.map +1 -1
  50. package/dist/frame/frameHeader.js +1 -1
  51. package/dist/frame/skippable.js +7 -2
  52. package/dist/frame/skippable.js.map +1 -1
  53. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- import { buildFSEDecodeTable, normalizeCountsForTable, writeNCount } from '../entropy/fse.js';
2
- import { encodeReverseBitstream } from '../bitstream/reverseBitWriter.js';
1
+ import { encodeReverseBitstream, ReverseBitWriter } from '../bitstream/reverseBitWriter.js';
2
+ import { buildFSEDecodeTable, normalizeCountsForTable, readNCount, writeNCount, } from '../entropy/fse.js';
3
3
  import { LITERALS_LENGTH_DEFAULT_DISTRIBUTION, LITERALS_LENGTH_TABLE_LOG, MATCH_LENGTH_DEFAULT_DISTRIBUTION, MATCH_LENGTH_TABLE_LOG, OFFSET_CODE_DEFAULT_DISTRIBUTION, OFFSET_CODE_TABLE_LOG, } from '../entropy/predefined.js';
4
4
  import { buildGeneralCompressedLiteralsForBench, encodeLiteralsSection, } from './literalsEncoder.js';
5
5
  // Predefined FSE tables built once and reused for sequence encoding.
@@ -34,88 +34,9 @@ function writeU24LE(arr, offset, value) {
34
34
  arr[offset + 1] = (value >> 8) & 0xff;
35
35
  arr[offset + 2] = (value >> 16) & 0xff;
36
36
  }
37
- const U32_ALL_BITS = 0xffff_ffff >>> 0;
38
37
  const pathTableCache = new WeakMap();
39
- let pathMasksScratch = null;
40
- let pathNextChoiceScratch = null;
41
38
  let sequenceReadCountsScratch = null;
42
39
  let sequenceReadValuesScratch = null;
43
- function rangeMask(startBit, endBit) {
44
- if (startBit === 0 && endBit === 31)
45
- return U32_ALL_BITS;
46
- const startMask = (U32_ALL_BITS << startBit) >>> 0;
47
- const endMask = endBit === 31 ? U32_ALL_BITS : ((1 << (endBit + 1)) - 1) >>> 0;
48
- return (startMask & endMask) >>> 0;
49
- }
50
- function setMaskBit(mask, maskOffset, bit) {
51
- const word = bit >>> 5;
52
- mask[maskOffset + word] = (mask[maskOffset + word] | (1 << (bit & 31))) >>> 0;
53
- }
54
- function isMaskEmpty(mask, maskOffset, wordCount) {
55
- for (let i = 0; i < wordCount; i++) {
56
- if ((mask[maskOffset + i] ?? 0) !== 0)
57
- return false;
58
- }
59
- return true;
60
- }
61
- function firstBitInWord(word) {
62
- const normalized = word >>> 0;
63
- const lsb = (normalized & -normalized) >>> 0;
64
- return 31 - Math.clz32(lsb);
65
- }
66
- function findFirstSetBit(mask, maskOffset, wordCount) {
67
- for (let wi = 0; wi < wordCount; wi++) {
68
- const word = mask[maskOffset + wi] ?? 0;
69
- if (word !== 0) {
70
- return (wi << 5) + firstBitInWord(word);
71
- }
72
- }
73
- return -1;
74
- }
75
- function codesAreUniform(codes) {
76
- if (codes.length === 0)
77
- return -1;
78
- const first = codes[0] ?? -1;
79
- for (let i = 1; i < codes.length; i++) {
80
- if ((codes[i] ?? -1) !== first)
81
- return -1;
82
- }
83
- return first;
84
- }
85
- function findFirstSetBitInRange(mask, maskOffset, wordCount, minState, maxState) {
86
- if (wordCount <= 0)
87
- return -1;
88
- let min = minState;
89
- let max = maxState;
90
- const maxBit = (wordCount << 5) - 1;
91
- if (min < 0)
92
- min = 0;
93
- if (max > maxBit)
94
- max = maxBit;
95
- if (min > max)
96
- return -1;
97
- const startWord = min >>> 5;
98
- const endWord = max >>> 5;
99
- if (startWord === endWord) {
100
- const masked = ((mask[maskOffset + startWord] ?? 0) & rangeMask(min & 31, max & 31)) >>> 0;
101
- if (masked === 0)
102
- return -1;
103
- return (startWord << 5) + firstBitInWord(masked);
104
- }
105
- const firstMasked = ((mask[maskOffset + startWord] ?? 0) & rangeMask(min & 31, 31)) >>> 0;
106
- if (firstMasked !== 0) {
107
- return (startWord << 5) + firstBitInWord(firstMasked);
108
- }
109
- for (let wi = startWord + 1; wi < endWord; wi++) {
110
- const word = mask[maskOffset + wi] ?? 0;
111
- if (word !== 0)
112
- return (wi << 5) + firstBitInWord(word);
113
- }
114
- const lastMasked = ((mask[maskOffset + endWord] ?? 0) & rangeMask(0, max & 31)) >>> 0;
115
- if (lastMasked === 0)
116
- return -1;
117
- return (endWord << 5) + firstBitInWord(lastMasked);
118
- }
119
40
  function getPrecomputedPathTable(table) {
120
41
  const cached = pathTableCache.get(table);
121
42
  if (cached)
@@ -172,19 +93,6 @@ function getPrecomputedPathTable(table) {
172
93
  pathTableCache.set(table, precomputed);
173
94
  return precomputed;
174
95
  }
175
- function getPathMasksScratch(requiredLength) {
176
- if (!pathMasksScratch || pathMasksScratch.length < requiredLength) {
177
- pathMasksScratch = new Uint32Array(requiredLength);
178
- }
179
- pathMasksScratch.fill(0, 0, requiredLength);
180
- return pathMasksScratch;
181
- }
182
- function getPathNextChoiceScratch(requiredLength) {
183
- if (!pathNextChoiceScratch || pathNextChoiceScratch.length < requiredLength) {
184
- pathNextChoiceScratch = new Int32Array(requiredLength);
185
- }
186
- return pathNextChoiceScratch;
187
- }
188
96
  function getSequenceReadCountsScratch(requiredLength) {
189
97
  if (!sequenceReadCountsScratch || sequenceReadCountsScratch.length < requiredLength) {
190
98
  sequenceReadCountsScratch = new Uint8Array(requiredLength);
@@ -231,101 +139,89 @@ function buildStatePath(codes, table) {
231
139
  if (codes.length === 0)
232
140
  return { states: [], updateBits: [] };
233
141
  const pre = getPrecomputedPathTable(table);
234
- const { tableSize, wordCount, statesBySymbol, symbolMasks, minNextByState, maxNextByState, baselineByState } = pre;
142
+ const { tableSize, statesBySymbol, baselineByState } = pre;
235
143
  if (tableSize <= 0)
236
144
  return null;
237
145
  const rowCount = codes.length;
238
- if (rowCount === 1) {
239
- const onlyCode = codes[0] ?? -1;
240
- if (onlyCode < 0 || onlyCode >= statesBySymbol.length)
241
- return null;
242
- const onlyStates = statesBySymbol[onlyCode];
243
- if (!onlyStates || onlyStates.length === 0)
244
- return null;
245
- const firstState = onlyStates[0];
246
- if (firstState === undefined)
247
- return null;
248
- return { states: [firstState], updateBits: [] };
249
- }
250
- const uniformCode = codesAreUniform(codes);
251
- if (uniformCode >= 0 && uniformCode < statesBySymbol.length) {
252
- const candidateStates = statesBySymbol[uniformCode];
253
- const candidateMask = symbolMasks[uniformCode];
254
- if (!candidateStates || candidateStates.length === 0 || !candidateMask)
255
- return null;
256
- for (let startIndex = 0; startIndex < candidateStates.length; startIndex++) {
257
- const startState = candidateStates[startIndex];
258
- if (startState === undefined)
259
- continue;
260
- const states = new Array(rowCount);
261
- const updateBits = new Array(rowCount - 1);
262
- states[0] = startState;
263
- let state = startState;
264
- let valid = true;
265
- for (let row = 0; row < rowCount - 1; row++) {
266
- const nextState = findFirstSetBitInRange(candidateMask, 0, wordCount, minNextByState[state], maxNextByState[state]);
267
- if (nextState < 0) {
268
- valid = false;
269
- break;
270
- }
271
- states[row + 1] = nextState;
272
- updateBits[row] = nextState - baselineByState[state];
273
- state = nextState;
274
- }
275
- if (valid)
276
- return { states, updateBits };
277
- }
278
- }
279
- const masks = getPathMasksScratch(rowCount * wordCount);
280
- const nextChoice = getPathNextChoiceScratch(Math.max(0, rowCount - 1) * tableSize);
281
- const maskOffset = (rowIndex) => rowIndex * wordCount;
282
- const nextChoiceOffset = (rowIndex) => rowIndex * tableSize;
146
+ const reachable = new Uint8Array(rowCount * tableSize);
147
+ const nextChoice = new Int32Array(Math.max(0, rowCount - 1) * tableSize);
148
+ nextChoice.fill(-1);
149
+ const rowOffset = (rowIndex) => rowIndex * tableSize;
283
150
  const lastCode = codes[rowCount - 1] ?? -1;
284
- if (lastCode < 0 || lastCode >= symbolMasks.length)
285
- return null;
286
- const lastMask = symbolMasks[lastCode];
287
- if (!lastMask)
151
+ if (lastCode < 0 || lastCode >= statesBySymbol.length)
288
152
  return null;
289
- const lastMaskOffset = maskOffset(rowCount - 1);
290
- for (let wi = 0; wi < wordCount; wi++) {
291
- masks[lastMaskOffset + wi] = lastMask[wi];
292
- }
293
- if (isMaskEmpty(masks, lastMaskOffset, wordCount))
153
+ const lastStates = statesBySymbol[lastCode];
154
+ if (!lastStates || lastStates.length === 0)
294
155
  return null;
295
- for (let i = rowCount - 2; i >= 0; i--) {
296
- const code = codes[i] ?? -1;
156
+ const lastRowOffset = rowOffset(rowCount - 1);
157
+ for (let i = 0; i < lastStates.length; i++) {
158
+ const state = lastStates[i];
159
+ if (state !== undefined)
160
+ reachable[lastRowOffset + state] = 1;
161
+ }
162
+ for (let row = rowCount - 2; row >= 0; row--) {
163
+ const code = codes[row] ?? -1;
297
164
  if (code < 0 || code >= statesBySymbol.length)
298
165
  return null;
299
- const candidates = statesBySymbol[code];
300
- if (!candidates || candidates.length === 0)
166
+ const candidateStates = statesBySymbol[code];
167
+ if (!candidateStates || candidateStates.length === 0)
301
168
  return null;
302
- const curMaskOffset = maskOffset(i);
303
- const nextMaskOffset = maskOffset(i + 1);
304
- const curNextOffset = nextChoiceOffset(i);
305
- for (let ci = 0; ci < candidates.length; ci++) {
306
- const state = candidates[ci];
169
+ const curRowOffset = rowOffset(row);
170
+ const nextRowOffset = rowOffset(row + 1);
171
+ let anyReachable = false;
172
+ for (let i = 0; i < candidateStates.length; i++) {
173
+ const state = candidateStates[i];
307
174
  if (state === undefined)
308
175
  continue;
309
- const chosenNext = findFirstSetBitInRange(masks, nextMaskOffset, wordCount, minNextByState[state], maxNextByState[state]);
310
- if (chosenNext >= 0) {
311
- setMaskBit(masks, curMaskOffset, state);
312
- nextChoice[curNextOffset + state] = chosenNext;
176
+ const baseline = table.baseline[state];
177
+ const bits = table.numBits[state];
178
+ const width = bits > 0 ? 1 << bits : 1;
179
+ let minNext = baseline;
180
+ let maxNext = baseline + width - 1;
181
+ if (minNext < 0)
182
+ minNext = 0;
183
+ if (maxNext >= tableSize)
184
+ maxNext = tableSize - 1;
185
+ for (let next = minNext; next <= maxNext; next++) {
186
+ if (reachable[nextRowOffset + next] === 0)
187
+ continue;
188
+ reachable[curRowOffset + state] = 1;
189
+ nextChoice[curRowOffset + state] = next;
190
+ anyReachable = true;
191
+ break;
313
192
  }
314
193
  }
315
- if (isMaskEmpty(masks, curMaskOffset, wordCount))
194
+ if (!anyReachable)
316
195
  return null;
317
196
  }
197
+ const firstCode = codes[0] ?? -1;
198
+ if (firstCode < 0 || firstCode >= statesBySymbol.length)
199
+ return null;
200
+ const firstStates = statesBySymbol[firstCode];
201
+ if (!firstStates || firstStates.length === 0)
202
+ return null;
203
+ const firstRowOffset = rowOffset(0);
204
+ let startState = -1;
205
+ for (let i = 0; i < firstStates.length; i++) {
206
+ const state = firstStates[i];
207
+ if (state !== undefined && reachable[firstRowOffset + state] !== 0) {
208
+ startState = state;
209
+ break;
210
+ }
211
+ }
212
+ if (startState < 0)
213
+ return null;
318
214
  const states = new Array(rowCount);
319
215
  const updateBits = new Array(Math.max(0, rowCount - 1));
320
- let state = findFirstSetBit(masks, maskOffset(0), wordCount);
321
- if (state < 0)
322
- return null;
323
- states[0] = state;
324
- for (let i = 0; i < rowCount - 1; i++) {
325
- const nextState = nextChoice[nextChoiceOffset(i) + state];
326
- states[i + 1] = nextState;
327
- updateBits[i] = nextState - baselineByState[state];
328
- state = nextState;
216
+ states[0] = startState;
217
+ let state = startState;
218
+ for (let row = 0; row < rowCount - 1; row++) {
219
+ const choice = nextChoice[rowOffset(row) + state] ?? -1;
220
+ if (choice < 0)
221
+ return null;
222
+ states[row + 1] = choice;
223
+ updateBits[row] = choice - baselineByState[state];
224
+ state = choice;
329
225
  }
330
226
  return { states, updateBits };
331
227
  }
@@ -418,7 +314,7 @@ function histogramsEqual(a, b) {
418
314
  }
419
315
  return true;
420
316
  }
421
- function getNormalizedTableCandidates(codes, maxTableLog) {
317
+ function getNormalizedTableCandidates(codes, maxTableLog, decodeMaxSymbolValue) {
422
318
  const alphabetSize = symbolRange(codes);
423
319
  if (alphabetSize <= 0)
424
320
  return [];
@@ -454,30 +350,36 @@ function getNormalizedTableCandidates(codes, maxTableLog) {
454
350
  if (matched)
455
351
  continue;
456
352
  }
457
- try {
458
- const { normalizedCounter, maxSymbolValue } = normalizeCountsForTable(Array.from(histogram), tableLog);
459
- const header = writeNCount(normalizedCounter, maxSymbolValue, tableLog);
460
- const table = buildFSEDecodeTable(normalizedCounter, tableLog);
461
- const out = {
462
- histogram: histogram.slice(0),
463
- table,
464
- tableLog,
465
- header,
466
- };
467
- if (!cachedBucket) {
468
- normalizedTableCache.set(key, [out]);
469
- }
470
- else {
471
- cachedBucket.push(out);
472
- }
473
- results.push(out);
353
+ const { normalizedCounter, maxSymbolValue: normalizedMaxSymbolValue } = normalizeCountsForTable(Array.from(histogram), tableLog);
354
+ const header = writeNCount(normalizedCounter, normalizedMaxSymbolValue, tableLog);
355
+ // Rebuild table from our own serialized header so encoder pathing matches decoder semantics exactly.
356
+ const parsed = readNCount(header, 0, decodeMaxSymbolValue, maxTableLog);
357
+ const table = buildFSEDecodeTable(parsed.normalizedCounter, parsed.tableLog);
358
+ const out = {
359
+ histogram: histogram.slice(0),
360
+ table,
361
+ tableLog: parsed.tableLog,
362
+ header,
363
+ };
364
+ if (!cachedBucket) {
365
+ normalizedTableCache.set(key, [out]);
474
366
  }
475
- catch {
476
- // Skip invalid normalizations for this table log.
367
+ else {
368
+ cachedBucket.push(out);
477
369
  }
370
+ results.push(out);
478
371
  }
479
372
  return results;
480
373
  }
374
+ function getTableMaxSymbol(table) {
375
+ let max = 0;
376
+ for (let i = 0; i < table.length; i++) {
377
+ const symbol = table.symbol[i] ?? 0;
378
+ if (symbol > max)
379
+ max = symbol;
380
+ }
381
+ return max;
382
+ }
481
383
  function symbolizedSequences(sequences) {
482
384
  if (sequences.length === 0)
483
385
  return null;
@@ -538,13 +440,19 @@ function chooseStreamMode(codes, predefinedTable, predefinedTableLog, maxTableLo
538
440
  if (repeatPath) {
539
441
  const repeatScore = scorePath(repeatPath, prevTable, prevTableLog);
540
442
  if (repeatScore < bestScore) {
541
- best = { mode: 3, table: prevTable, tableLog: prevTableLog, path: repeatPath, tableHeader: new Uint8Array(0) };
443
+ best = {
444
+ mode: 3,
445
+ table: prevTable,
446
+ tableLog: prevTableLog,
447
+ path: repeatPath,
448
+ tableHeader: new Uint8Array(0),
449
+ };
542
450
  bestScore = repeatScore;
543
451
  }
544
452
  }
545
453
  }
546
454
  }
547
- const compressedCandidates = getNormalizedTableCandidates(codes, maxTableLog);
455
+ const compressedCandidates = getNormalizedTableCandidates(codes, maxTableLog, getTableMaxSymbol(predefinedTable));
548
456
  if (compressedCandidates.length > 0) {
549
457
  const ranked = compressedCandidates
550
458
  .map((compressed) => ({
@@ -576,7 +484,7 @@ function chooseStreamMode(codes, predefinedTable, predefinedTableLog, maxTableLo
576
484
  }
577
485
  return best;
578
486
  }
579
- function buildSequenceSection(sequences, context) {
487
+ function buildSequenceSection(sequences, context, reverseBitWriter = new ReverseBitWriter()) {
580
488
  const encoded = symbolizedSequences(sequences);
581
489
  if (!encoded)
582
490
  return null;
@@ -639,7 +547,7 @@ function buildSequenceSection(sequences, context) {
639
547
  readValues[readPos++] = ofUpdates[i];
640
548
  }
641
549
  }
642
- const bitstream = encodeReverseBitstream(readCounts, readValues);
550
+ const bitstream = encodeReverseBitstream(readCounts, readValues, reverseBitWriter);
643
551
  const tableHeaderSize = llChoice.tableHeader.length + ofChoice.tableHeader.length + mlChoice.tableHeader.length;
644
552
  const out = new Uint8Array(numSequencesBytes.length + 1 + tableHeaderSize + bitstream.length);
645
553
  out.set(numSequencesBytes, 0);
@@ -666,14 +574,15 @@ function buildSequenceSection(sequences, context) {
666
574
  };
667
575
  }
668
576
  export function buildCompressedBlockPayload(literals, sequences, context) {
577
+ const reverseBitWriter = new ReverseBitWriter();
669
578
  const literalsContext = {
670
579
  prevTable: context?.prevLiteralsTable ?? null,
671
580
  };
672
- const encodedLiterals = encodeLiteralsSection(literals, literalsContext);
581
+ const encodedLiterals = encodeLiteralsSection(literals, literalsContext, reverseBitWriter);
673
582
  if (!encodedLiterals)
674
583
  return null;
675
584
  const literalsSection = encodedLiterals.section;
676
- const seqSection = buildSequenceSection(sequences, context);
585
+ const seqSection = buildSequenceSection(sequences, context, reverseBitWriter);
677
586
  if (!seqSection)
678
587
  return null;
679
588
  const out = new Uint8Array(literalsSection.length + seqSection.section.length);
@@ -1 +1 @@
1
- {"version":3,"file":"compressedBlock.js","sourceRoot":"","sources":["../../src/encode/compressedBlock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compressedBlock.js","sourceRoot":"","sources":["../../src/encode/compressedBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAE5F,OAAO,EACL,mBAAmB,EAEnB,uBAAuB,EACvB,UAAU,EACV,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,oCAAoC,EACpC,yBAAyB,EACzB,iCAAiC,EACjC,sBAAsB,EACtB,gCAAgC,EAChC,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,sCAAsC,EACtC,qBAAqB,GAGtB,MAAM,sBAAsB,CAAC;AAE9B,qEAAqE;AACrE,IAAI,aAAa,GAA0B,IAAI,CAAC;AAChD,IAAI,aAAa,GAA0B,IAAI,CAAC;AAChD,IAAI,aAAa,GAA0B,IAAI,CAAC;AAChD,SAAS,sBAAsB,GAI7B;IACA,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,aAAa,GAAG,mBAAmB,CAAC,oCAAoC,EAAE,yBAAyB,CAAC,CAAC;QACrG,aAAa,GAAG,mBAAmB,CAAC,gCAAgC,EAAE,qBAAqB,CAAC,CAAC;QAC7F,aAAa,GAAG,mBAAmB,CAAC,iCAAiC,EAAE,sBAAsB,CAAC,CAAC;IACjG,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,aAAc,EAAE,EAAE,EAAE,aAAc,EAAE,CAAC;AAAA,CACtE;AAED,MAAM,WAAW,GAAG;IAClB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI;IACjH,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;CAChC,CAAC;AACF,MAAM,UAAU,GAAG;IACjB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;CAClH,CAAC;AACF,MAAM,WAAW,GAAG;IAClB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IACnH,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;CAC3G,CAAC;AACF,MAAM,UAAU,GAAG;IACjB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACnH,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;CAChD,CAAC;AAEF,SAAS,UAAU,CAAC,GAAe,EAAE,MAAc,EAAE,KAAa,EAAQ;IACxE,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;IAC3B,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACtC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;AAAA,CACxC;AAED,MAAM,cAAc,GAAG,IAAI,OAAO,EAAwC,CAAC;AAC3E,IAAI,yBAAyB,GAAsB,IAAI,CAAC;AACxD,IAAI,yBAAyB,GAAuB,IAAI,CAAC;AA2BzD,SAAS,uBAAuB,CAAC,KAAqB,EAAwB;IAC5E,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;IAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC;IACzD,MAAM,eAAe,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,cAAc,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;IACjD,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;QAC/B,eAAe,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,QAAQ,CAAC;QACzB,MAAM,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,CAAC,CAAC;QACrC,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC9C,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACnE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC;QAChC,IAAI,MAAM,GAAG,SAAS;YAAE,SAAS,GAAG,MAAM,CAAC;IAC7C,CAAC;IACD,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAc,CAAC,CAAC;IACnF,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5F,MAAM,iBAAiB,GAAG,IAAI,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,mBAAmB,GAAG,IAAI,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS;YAAE,SAAS;QACvC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACnE,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACjF,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,eAAe,GAAG,IAAI,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IACxD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC;IACtG,CAAC;IACD,MAAM,WAAW,GAAG;QAClB,SAAS;QACT,SAAS;QACT,cAAc;QACd,WAAW;QACX,eAAe;QACf,eAAe;QACf,cAAc;QACd,cAAc;KACf,CAAC;IACF,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACvC,OAAO,WAAW,CAAC;AAAA,CACpB;AAED,SAAS,4BAA4B,CAAC,cAAsB,EAAc;IACxE,IAAI,CAAC,yBAAyB,IAAI,yBAAyB,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;QACpF,yBAAyB,GAAG,IAAI,UAAU,CAAC,cAAc,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,yBAAyB,CAAC;AAAA,CAClC;AAED,SAAS,4BAA4B,CAAC,cAAsB,EAAe;IACzE,IAAI,CAAC,yBAAyB,IAAI,yBAAyB,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;QACpF,yBAAyB,GAAG,IAAI,WAAW,CAAC,cAAc,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,yBAAyB,CAAC;AAAA,CAClC;AAED,SAAS,cAAc,CACrB,KAAa,EACb,QAA2B,EAC3B,SAA4B,EAC5B,SAAiB,EACjB,UAAkB,EAKX;IACP,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC;QAChC,IAAI,IAAI,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1B,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACvC,CAAC;IACD,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC7C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AAAA,CACb;AAED,SAAS,kBAAkB,CAAC,YAAoB,EAAqB;IACnE,IAAI,YAAY,GAAG,CAAC,IAAI,YAAY,GAAG,MAAM,GAAG,MAAM;QAAE,OAAO,IAAI,CAAC;IACpE,IAAI,YAAY,GAAG,GAAG,EAAE,CAAC;QACvB,OAAO,IAAI,UAAU,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,YAAY,GAAG,MAAM,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QAChD,MAAM,EAAE,GAAG,YAAY,GAAG,IAAI,CAAC;QAC/B,OAAO,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,KAAK,GAAG,YAAY,GAAG,MAAM,CAAC;IACpC,OAAO,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAAA,CACnE;AAED,SAAS,cAAc,CACrB,KAAwB,EACxB,KAAqB,EAC8B;IACnD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAC9D,MAAM,GAAG,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,GAAG,CAAC;IAC3D,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;IAC9B,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACzE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,QAAQ,GAAG,SAAS,CAAC;IAE7D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,IAAI,cAAc,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACnE,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACxD,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS,CAAC,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,IAAI,GAAG,GAAG,QAAQ,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9B,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,cAAc,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAC3D,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAClE,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAS;YAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAE,CAAC;YACxC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAE,CAAC;YACnC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,OAAO,GAAG,QAAQ,CAAC;YACvB,IAAI,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,CAAC,CAAC;YACnC,IAAI,OAAO,GAAG,CAAC;gBAAE,OAAO,GAAG,CAAC,CAAC;YAC7B,IAAI,OAAO,IAAI,SAAS;gBAAE,OAAO,GAAG,SAAS,GAAG,CAAC,CAAC;YAClD,KAAK,IAAI,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;gBACjD,IAAI,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;oBAAE,SAAS;gBACpD,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;gBACpC,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC;gBACxC,YAAY,GAAG,IAAI,CAAC;gBACpB,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC;IACjC,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACjC,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,IAAI,cAAc,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACrE,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,KAAK,KAAK,SAAS,IAAI,SAAS,CAAC,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACnE,UAAU,GAAG,KAAK,CAAC;YACnB,MAAM;QACR,CAAC;IACH,CAAC;IACD,IAAI,UAAU,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEhC,MAAM,MAAM,GAAa,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAa,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;IACvB,IAAI,KAAK,GAAG,UAAU,CAAC;IACvB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,IAAI,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5B,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;QACzB,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,eAAe,CAAC,KAAK,CAAE,CAAC;QACnD,KAAK,GAAG,MAAM,CAAC;IACjB,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAAA,CAC/B;AA0BD,IAAI,iBAAiB,GAAsC,IAAI,CAAC;AAEhE,SAAS,uBAAuB,CAAC,SAAiB,EAA8B;IAC9E,MAAM,QAAQ,GAAG,iBAAiB,CAAC;IACnC,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QACrD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,QAAQ,GAAG,QAAQ,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;IAC7C,IAAI,QAAQ,KAAK,CAAC;QAAE,QAAQ,GAAG,EAAE,CAAC;IAClC,OAAO,QAAQ,GAAG,SAAS;QAAE,QAAQ,IAAI,CAAC,CAAC;IAC3C,iBAAiB,GAAG;QAClB,OAAO,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC;QACjC,QAAQ,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC;QAClC,YAAY,EAAE,IAAI,WAAW,CAAC,QAAQ,CAAC;QACvC,OAAO,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC;QACjC,QAAQ,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC;QAClC,YAAY,EAAE,IAAI,WAAW,CAAC,QAAQ,CAAC;QACvC,OAAO,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC;QACjC,QAAQ,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC;QAClC,YAAY,EAAE,IAAI,WAAW,CAAC,QAAQ,CAAC;KACxC,CAAC;IACF,OAAO,iBAAiB,CAAC;AAAA,CAC1B;AAUD,SAAS,WAAW,CAAC,KAAwB,EAAU;IACrD,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,KAAK,GAAG,GAAG;YAAE,GAAG,GAAG,KAAK,CAAC;IAC/B,CAAC;IACD,OAAO,GAAG,GAAG,CAAC,CAAC;AAAA,CAChB;AAED,SAAS,cAAc,CAAC,KAAwB,EAAE,YAAoB,EAAe;IACnF,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,YAAY;YAAE,SAAS;QACzC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,GAAG,CAAC;AAAA,CACZ;AAED,SAAS,SAAS,CAAC,IAA0B,EAAE,KAAqB,EAAE,QAAgB,EAAU;IAC9F,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACvC,IAAI,IAAI,GAAG,QAAQ,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACnC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM;YAAE,OAAO,MAAM,CAAC,iBAAiB,CAAC;QACxE,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAE,CAAC;IAChC,CAAC;IACD,OAAO,IAAI,CAAC;AAAA,CACb;AAED,SAAS,6BAA6B,CACpC,SAAsB,EACtB,KAAqB,EACrB,QAAgB,EAChB,eAAuB,EACf;IACR,MAAM,GAAG,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAC;IACpC,IAAI,IAAI,GAAG,QAAQ,GAAG,eAAe,CAAC;IACtC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,IAAI,IAAI,CAAC;YAAE,SAAS;QACxB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,iBAAiB,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,MAAM,CAAC,iBAAiB,CAAC;QAClC,CAAC;QACD,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,OAAO,IAAI,CAAC;AAAA,CACb;AASD,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAuC,CAAC;AAE5E,SAAS,aAAa,CAAC,SAAsB,EAAU;IACrD,IAAI,IAAI,GAAG,UAAU,KAAK,CAAC,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,CAAC;AAAA,CACnB;AAED,SAAS,eAAe,CAAC,CAAc,EAAE,CAAc,EAAW;IAChE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IAChD,CAAC;IACD,OAAO,IAAI,CAAC;AAAA,CACb;AAED,SAAS,4BAA4B,CACnC,KAAwB,EACxB,WAAmB,EACnB,oBAA4B,EAC4C;IACxE,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,YAAY,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACtD,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;YAAE,QAAQ,EAAE,CAAC;IAC1C,CAAC;IACD,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7B,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,OAAO,CAAC,IAAI,WAAW,GAAG,QAAQ,IAAI,WAAW,GAAG,WAAW;QAAE,WAAW,EAAE,CAAC;IAC/E,IAAI,CAAC,IAAI,WAAW,GAAG,QAAQ;QAAE,OAAO,EAAE,CAAC;IAC3C,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC;IAClF,MAAM,OAAO,GAA2E,EAAE,CAAC;IAC3F,MAAM,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC/C,KAAK,IAAI,QAAQ,GAAG,WAAW,EAAE,QAAQ,IAAI,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC/D,MAAM,GAAG,GAAG,GAAG,QAAQ,IAAI,YAAY,IAAI,aAAa,EAAE,CAAC;QAC3D,MAAM,YAAY,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnD,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;gBAClC,IAAI,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;oBACjD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACrB,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM;gBACR,CAAC;YACH,CAAC;YACD,IAAI,OAAO;gBAAE,SAAS;QACxB,CAAC;QACD,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,wBAAwB,EAAE,GAAG,uBAAuB,CAC7F,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EACrB,QAAQ,CACT,CAAC;QACF,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,EAAE,wBAAwB,EAAE,QAAQ,CAAC,CAAC;QAClF,qGAAqG;QACrG,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,oBAAoB,EAAE,WAAW,CAAC,CAAC;QACxE,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7E,MAAM,GAAG,GAA8B;YACrC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7B,KAAK;YACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM;SACP,CAAC;QACF,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,OAAO,CAAC;AAAA,CAChB;AAED,SAAS,iBAAiB,CAAC,KAAqB,EAAU;IACxD,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,MAAM,GAAG,GAAG;YAAE,GAAG,GAAG,MAAM,CAAC;IACjC,CAAC;IACD,OAAO,GAAG,CAAC;AAAA,CACZ;AAED,SAAS,mBAAmB,CAAC,SAA8B,EAA8B;IACvF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC;IACtC,MAAM,OAAO,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAEpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,cAAc,CAAC,QAAQ,CAAC,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACnF,MAAM,EAAE,GAAG,cAAc,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAChF,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAC5B,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC;QACpC,IAAI,WAAW,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACjC,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,EAAE;YAAE,OAAO,IAAI,CAAC;QAC3C,MAAM,IAAI,GAAG,WAAW,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;QAEzC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QACrB,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;QACxB,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;QAC3B,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QACrB,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;QACxB,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;QAC3B,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QACpB,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QACrB,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACzB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;AAAA,CAC9G;AAED,SAAS,gBAAgB,CACvB,KAAwB,EACxB,eAA+B,EAC/B,kBAA0B,EAC1B,WAAmB,EACnB,SAAgC,EAChC,YAA2B,EACN;IACrB,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IAC9F,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IAC9D,IAAI,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,IAAI,GAAiB;QACvB,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE,kBAAkB;QAC5B,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC;KAC/B,CAAC;IACF,IAAI,SAAS,GAAG,SAAS,CAAC,cAAc,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC;IAE/E,IAAI,SAAS,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QACvC,MAAM,cAAc,GAAG,6BAA6B,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;QAC5F,IAAI,cAAc,GAAG,SAAS,GAAG,EAAE,EAAE,CAAC;YACpC,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACpD,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,WAAW,GAAG,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;gBACnE,IAAI,WAAW,GAAG,SAAS,EAAE,CAAC;oBAC5B,IAAI,GAAG;wBACL,IAAI,EAAE,CAAC;wBACP,KAAK,EAAE,SAAS;wBAChB,QAAQ,EAAE,YAAY;wBACtB,IAAI,EAAE,UAAU;wBAChB,WAAW,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC;qBAC/B,CAAC;oBACF,SAAS,GAAG,WAAW,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,oBAAoB,GAAG,4BAA4B,CAAC,KAAK,EAAE,WAAW,EAAE,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC;IAClH,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,oBAAoB;aAChC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACpB,UAAU;YACV,QAAQ,EAAE,6BAA6B,CACrC,SAAS,EACT,UAAU,CAAC,KAAK,EAChB,UAAU,CAAC,QAAQ,EACnB,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAC7B;SACF,CAAC,CAAC;aACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,GAAG,EAAE;gBAAE,SAAS;YACjE,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACzE,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,eAAe,GACnB,SAAS,CAAC,cAAc,EAAE,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC;oBACpF,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBACzC,IAAI,eAAe,GAAG,SAAS,EAAE,CAAC;oBAChC,IAAI,GAAG;wBACL,IAAI,EAAE,CAAC;wBACP,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,KAAK;wBACjC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,QAAQ;wBACvC,IAAI,EAAE,cAAc;wBACpB,WAAW,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM;qBACzC,CAAC;oBACF,SAAS,GAAG,eAAe,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AAAA,CACb;AAED,SAAS,oBAAoB,CAC3B,SAA8B,EAC9B,OAAgC,EAChC,gBAAgB,GAAqB,IAAI,gBAAgB,EAAE,EACE;IAC7D,MAAM,OAAO,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC;IACtC,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC3D,IAAI,CAAC,iBAAiB;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,sBAAsB,EAAE,CAAC;IAC3E,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,OAAO,CAAC,OAAO,EACf,OAAO,EACP,yBAAyB,EACzB,CAAC,EACD,OAAO,EAAE,UAAU,EAAE,OAAO,IAAI,IAAI,EACpC,OAAO,EAAE,UAAU,EAAE,UAAU,IAAI,IAAI,CACxC,CAAC;IACF,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,OAAO,CAAC,OAAO,EACf,OAAO,EACP,qBAAqB,EACrB,CAAC,EACD,OAAO,EAAE,UAAU,EAAE,OAAO,IAAI,IAAI,EACpC,OAAO,EAAE,UAAU,EAAE,UAAU,IAAI,IAAI,CACxC,CAAC;IACF,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,OAAO,CAAC,OAAO,EACf,OAAO,EACP,sBAAsB,EACtB,CAAC,EACD,OAAO,EAAE,UAAU,EAAE,OAAO,IAAI,IAAI,EACpC,OAAO,EAAE,UAAU,EAAE,UAAU,IAAI,IAAI,CACxC,CAAC;IACF,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAErD,MAAM,UAAU,GAAG,YAAY,GAAG,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,4BAA4B,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACpF,MAAM,UAAU,GAAG,4BAA4B,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACpF,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;IACtC,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;IAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;IACtC,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;IAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;IACtC,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;IAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAC1C,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACxC,UAAU,CAAC,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;IACrC,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACxC,UAAU,CAAC,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;IACrC,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACxC,UAAU,CAAC,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;QACnC,UAAU,CAAC,OAAO,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAE,CAAC;QACzC,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;QACnC,UAAU,CAAC,OAAO,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAE,CAAC;QACzC,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;QACnC,UAAU,CAAC,OAAO,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAE,CAAC;QACzC,IAAI,CAAC,KAAK,YAAY,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;YAC7B,IACE,OAAO,GAAG,CAAC;gBACX,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM;gBAChC,OAAO,GAAG,CAAC;gBACX,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM;gBAChC,OAAO,GAAG,CAAC;gBACX,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAChC,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAE,CAAC;YACvD,UAAU,CAAC,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;YACtC,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAE,CAAC;YACvD,UAAU,CAAC,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;YACtC,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAE,CAAC;YACvD,UAAU,CAAC,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;QACxC,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,sBAAsB,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;IACnF,MAAM,eAAe,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;IAChH,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,GAAG,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9F,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IACpF,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;IAChD,IAAI,GAAG,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;IACvC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACnC,GAAG,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;IACnC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACnC,GAAG,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;IACnC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACnC,GAAG,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;IACnC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACxB,OAAO;QACL,OAAO,EAAE,GAAG;QACZ,MAAM,EAAE;YACN,OAAO,EAAE,QAAQ,CAAC,KAAK;YACvB,UAAU,EAAE,QAAQ,CAAC,QAAQ;YAC7B,OAAO,EAAE,QAAQ,CAAC,KAAK;YACvB,UAAU,EAAE,QAAQ,CAAC,QAAQ;YAC7B,OAAO,EAAE,QAAQ,CAAC,KAAK;YACvB,UAAU,EAAE,QAAQ,CAAC,QAAQ;SAC9B;KACF,CAAC;AAAA,CACH;AAED,MAAM,UAAU,2BAA2B,CACzC,QAAoB,EACpB,SAAqB,EACrB,OAAgC,EACb;IACnB,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAChD,MAAM,eAAe,GAA0B;QAC7C,SAAS,EAAE,OAAO,EAAE,iBAAiB,IAAI,IAAI;KAC9C,CAAC;IACF,MAAM,eAAe,GAAG,qBAAqB,CAAC,QAAQ,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC;IAC3F,IAAI,CAAC,eAAe;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC;IAChD,MAAM,UAAU,GAAG,oBAAoB,CAAC,SAAS,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAC9E,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,eAAe,CAAC,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/E,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IAC5B,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;QACvC,OAAO,CAAC,iBAAiB,GAAG,eAAe,CAAC,KAAK,CAAC;IACpD,CAAC;IACD,OAAO,GAAG,CAAC;AAAA,CACZ;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAmB,EAAE,IAAa,EAAc;IACnF,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IACtE,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACnB,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACpB,OAAO,GAAG,CAAC;AAAA,CACZ;AAED,mDAAmD;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,sBAAsB;IACtB,8BAA8B,EAAE,sCAAsC;IACtE,8BAA8B,EAAE,CAAC,SAA8B,EAAE,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE,OAAO,IAAI,IAAI;IACpH,oBAAoB;CACrB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fastMatcher.js","sourceRoot":"","sources":["../../src/encode/fastMatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsD,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAQzG,MAAM,UAAU,yBAAyB,CAAC,KAAiB,EAAE,OAA4B,EAAsB;IAC7G,OAAO,aAAa,CAAC,KAAK,EAAE;QAC1B,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,UAAU,EAAE,OAAO,EAAE,UAAU;QAC/B,YAAY,EAAE,OAAO,EAAE,YAAY;QACnC,UAAU,EAAE,CAAC;QACb,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QAC3B,SAAS,EAAE,CAAC;QACZ,YAAY,EAAE,CAAC;KAChB,CAAC,CAAC;AAAA,CACJ"}
1
+ {"version":3,"file":"fastMatcher.js","sourceRoot":"","sources":["../../src/encode/fastMatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,aAAa,EAA6B,MAAM,sBAAsB,CAAC;AAQzG,MAAM,UAAU,yBAAyB,CAAC,KAAiB,EAAE,OAA4B,EAAsB;IAC7G,OAAO,aAAa,CAAC,KAAK,EAAE;QAC1B,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,UAAU,EAAE,OAAO,EAAE,UAAU;QAC/B,YAAY,EAAE,OAAO,EAAE,YAAY;QACnC,UAAU,EAAE,CAAC;QACb,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QAC3B,SAAS,EAAE,CAAC;QACZ,YAAY,EAAE,CAAC;KAChB,CAAC,CAAC;AAAA,CACJ"}
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Write zstd frame header.
3
3
  */
4
+ import { ZstdError } from '../errors.js';
4
5
  const ZSTD_MAGIC = 0xfd2fb528;
5
6
  function writeDictionaryId(chunks, dictionaryId) {
6
7
  if (dictionaryId <= 0xff) {
@@ -14,6 +15,9 @@ function writeDictionaryId(chunks, dictionaryId) {
14
15
  chunks.push(dictionaryId & 0xff, (dictionaryId >>> 8) & 0xff, (dictionaryId >>> 16) & 0xff, (dictionaryId >>> 24) & 0xff);
15
16
  }
16
17
  export function writeFrameHeader(contentSize, hasChecksum, dictionaryId = null) {
18
+ if (!Number.isInteger(contentSize) || contentSize < 0 || contentSize > 0xffff_ffff) {
19
+ throw new ZstdError('contentSize must be a 32-bit non-negative integer', 'parameter_unsupported');
20
+ }
17
21
  const chunks = [];
18
22
  chunks.push(ZSTD_MAGIC & 0xff, (ZSTD_MAGIC >> 8) & 0xff, (ZSTD_MAGIC >> 16) & 0xff, (ZSTD_MAGIC >> 24) & 0xff);
19
23
  let fhd = 0;
@@ -31,7 +35,7 @@ export function writeFrameHeader(contentSize, hasChecksum, dictionaryId = null)
31
35
  }
32
36
  if (dictionaryId !== null) {
33
37
  if (!Number.isInteger(dictionaryId) || dictionaryId <= 0 || dictionaryId > 0xffff_ffff) {
34
- throw new Error('Invalid dictionaryId in frame header');
38
+ throw new ZstdError('Invalid dictionaryId in frame header', 'parameter_unsupported');
35
39
  }
36
40
  if (dictionaryId <= 0xff)
37
41
  fhd |= 1;
@@ -1 +1 @@
1
- {"version":3,"file":"frameWriter.js","sourceRoot":"","sources":["../../src/encode/frameWriter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frameWriter.js","sourceRoot":"","sources":["../../src/encode/frameWriter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lazyMatcher.js","sourceRoot":"","sources":["../../src/encode/lazyMatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsD,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAQzG,MAAM,UAAU,yBAAyB,CAAC,KAAiB,EAAE,OAA4B,EAAsB;IAC7G,OAAO,aAAa,CAAC,KAAK,EAAE;QAC1B,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,UAAU,EAAE,OAAO,EAAE,UAAU;QAC/B,YAAY,EAAE,OAAO,EAAE,YAAY;QACnC,UAAU,EAAE,EAAE;QACd,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QAC3B,SAAS,EAAE,CAAC;QACZ,YAAY,EAAE,CAAC;KAChB,CAAC,CAAC;AAAA,CACJ"}
1
+ {"version":3,"file":"lazyMatcher.js","sourceRoot":"","sources":["../../src/encode/lazyMatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,aAAa,EAA6B,MAAM,sBAAsB,CAAC;AAQzG,MAAM,UAAU,yBAAyB,CAAC,KAAiB,EAAE,OAA4B,EAAsB;IAC7G,OAAO,aAAa,CAAC,KAAK,EAAE;QAC1B,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,UAAU,EAAE,OAAO,EAAE,UAAU;QAC/B,YAAY,EAAE,OAAO,EAAE,YAAY;QACnC,UAAU,EAAE,EAAE;QACd,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QAC3B,SAAS,EAAE,CAAC;QACZ,YAAY,EAAE,CAAC;KAChB,CAAC,CAAC;AAAA,CACJ"}
@@ -1,3 +1,4 @@
1
+ import { ReverseBitWriter } from '../bitstream/reverseBitWriter.js';
1
2
  export interface LiteralEntropyTable {
2
3
  maxNumBits: number;
3
4
  codeBySymbol: Int32Array;
@@ -10,5 +11,5 @@ export interface EncodedLiteralsSection {
10
11
  section: Uint8Array;
11
12
  table: LiteralEntropyTable | null;
12
13
  }
13
- export declare function encodeLiteralsSection(literals: Uint8Array, context?: LiteralEntropyContext): EncodedLiteralsSection | null;
14
+ export declare function encodeLiteralsSection(literals: Uint8Array, context?: LiteralEntropyContext, reverseBitWriter?: ReverseBitWriter): EncodedLiteralsSection | null;
14
15
  export declare function buildGeneralCompressedLiteralsForBench(literals: Uint8Array): Uint8Array | null;