@gmod/hic 2.0.0 → 2.2.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.
package/dist/hicFile.d.ts CHANGED
@@ -2,7 +2,7 @@ import Matrix from './matrix.ts';
2
2
  import NormalizationVector from './normalizationVector.ts';
3
3
  import type { ContactRecords } from './contactRecords.ts';
4
4
  import type MatrixZoomData from './matrixZoomData.ts';
5
- import type { BaseOpts, BlockIndexEntry, HicMetadata, HicRegion, ProgressOpts, Reader } from './types.ts';
5
+ import type { BaseOpts, BlockIndexEntry, ExpectedValues, HicMetadata, HicRegion, ProgressOpts, Reader } from './types.ts';
6
6
  import type { GenericFilehandle } from 'generic-filehandle2';
7
7
  /**
8
8
  * Prefix of the error thrown when a region pair has no matrix at the requested
@@ -40,6 +40,7 @@ export declare class HicFile {
40
40
  private file;
41
41
  private headerCache;
42
42
  private normVectorIndexCache;
43
+ private expectedSectionCache;
43
44
  private normVectorCache;
44
45
  private matrixCache;
45
46
  private blockCache;
@@ -48,6 +49,7 @@ export declare class HicFile {
48
49
  private version;
49
50
  private genomeId;
50
51
  private footerPosition;
52
+ private expectedValuesPosition;
51
53
  normExpectedValueVectorsPosition: number | undefined;
52
54
  private chromosomes;
53
55
  private chromosomeIndexMap;
@@ -87,7 +89,27 @@ export declare class HicFile {
87
89
  getNormalizationOptions(opts?: ProgressOpts): Promise<string[]>;
88
90
  private readNormVectorIndex;
89
91
  private readNormExpectedValuesAndNormVectorIndex;
90
- private skipExpectedValues;
92
+ /**
93
+ * The expected count for a region pair at `binsize`, the denominator of
94
+ * observed/expected, as straw computes it. `normalization` must be the one
95
+ * the pair's records carry (`getContactRecords`' `appliedNormalization`),
96
+ * since each normalization has its own vector. Undefined where the file has
97
+ * no expected value for it: no vector at this binsize, or a version 5 file
98
+ * asked for a normalized one.
99
+ *
100
+ * Within a chromosome the vector is read for only the distances the pair
101
+ * spans. Between chromosomes straw divides by the map's average contact, the
102
+ * raw `sumCounts` over its bins, whatever the normalization.
103
+ */
104
+ getExpectedValues(normalization: string, region1: HicRegion, region2: HicRegion, binsize: number, opts?: ProgressOpts): Promise<ExpectedValues | undefined>;
105
+ /**
106
+ * The library's total contact count, the `ALL` whole-genome map's
107
+ * `sumCounts`: what scales two libraries of different depth against each
108
+ * other. Undefined for a file with no `ALL` map.
109
+ */
110
+ getTotalContacts(opts?: BaseOpts): Promise<number | undefined>;
111
+ private getExpectedSection;
112
+ private walkExpectedSection;
91
113
  private parseNormVectorEntry;
92
114
  }
93
115
  export {};
package/dist/hicFile.js CHANGED
@@ -24,6 +24,18 @@ const Short_MIN_VALUE = -32768;
24
24
  const DOUBLE = 8;
25
25
  const FLOAT = 4;
26
26
  const INT = 4;
27
+ function getExpectedKey(type, unit, binSize) {
28
+ return `${type}_${unit}_${binSize}`;
29
+ }
30
+ // The range of `|bin2 - bin1|` over two half-open bin windows.
31
+ function distanceRange([x1, x2], [y1, y2]) {
32
+ const overlap = x1 < y2 && y1 < x2;
33
+ const nearest = overlap
34
+ ? 0
35
+ : Math.min(Math.abs(y1 - (x2 - 1)), Math.abs(x1 - (y2 - 1)));
36
+ const farthest = Math.max(Math.abs(y2 - 1 - x1), Math.abs(x2 - 1 - y1));
37
+ return [nearest, farthest];
38
+ }
27
39
  /**
28
40
  * Copy a partially-filled decode buffer down to its true length, or hand it
29
41
  * back untouched when the filter dropped nothing. A `subarray` would be free
@@ -112,6 +124,9 @@ class HicFile {
112
124
  // it has aborted, and drops a rejection so the next caller retries.
113
125
  headerCache = new shared_read_cache_1.SharedReadCache();
114
126
  normVectorIndexCache = new shared_read_cache_1.SharedReadCache();
127
+ // 'raw' and 'normalized', each walked once: the sections carry no index, so
128
+ // a chunk's position is known only by walking every chunk before it.
129
+ expectedSectionCache = new shared_read_cache_1.SharedReadCache();
115
130
  normVectorCache = new shared_read_cache_1.SharedReadCache({ maxSize: NORM_VECTOR_CACHE_SIZE });
116
131
  matrixCache = new shared_read_cache_1.SharedReadCache({
117
132
  maxSize: MATRIX_CACHE_SIZE,
@@ -124,6 +139,8 @@ class HicFile {
124
139
  version = 0;
125
140
  genomeId = '';
126
141
  footerPosition = 0;
142
+ // Where the raw (NONE) expected values begin, right after the master index.
143
+ expectedValuesPosition = 0;
127
144
  // Where the file's normalization data begins, and so also where a file
128
145
  // carrying none of it ends. Public so a test can cut a real file there to
129
146
  // make that second shape.
@@ -176,7 +193,7 @@ class HicFile {
176
193
  throw new Error(`Unsupported hic version: ${version}`);
177
194
  }
178
195
  const footerPosition = binaryParser.getLong();
179
- const { masterIndex, normExpectedValueVectorsPosition } = await this.readFooter(version, footerPosition, signal);
196
+ const { masterIndex, expectedValuesPosition, normExpectedValueVectorsPosition, } = await this.readFooter(version, footerPosition, signal);
180
197
  const bodyPosition = Object.values(masterIndex).reduce((min, entry) => Math.min(min, entry.start), Number.MAX_VALUE);
181
198
  data = await this.file.read(16, bodyPosition - 16, { signal });
182
199
  binaryParser = new binary_ts_1.default(new DataView(data));
@@ -214,6 +231,7 @@ class HicFile {
214
231
  (0, shared_read_cache_1.throwIfAborted)(signal);
215
232
  this.version = version;
216
233
  this.footerPosition = footerPosition;
234
+ this.expectedValuesPosition = expectedValuesPosition;
217
235
  this.masterIndex = masterIndex;
218
236
  this.normExpectedValueVectorsPosition = normExpectedValueVectorsPosition;
219
237
  this.genomeId = genomeId;
@@ -248,9 +266,14 @@ class HicFile {
248
266
  const size = binaryParser.getInt();
249
267
  masterIndex[key] = { start: pos, size };
250
268
  }
269
+ const expectedValuesPosition = footerPosition + skip + binaryParser.position;
251
270
  // Normalized expected values start after the expected values
252
271
  const normExpectedValueVectorsPosition = version > 5 ? footerPosition + (version < 9 ? 4 : 8) + nBytes : undefined;
253
- return { masterIndex, normExpectedValueVectorsPosition };
272
+ return {
273
+ masterIndex,
274
+ expectedValuesPosition,
275
+ normExpectedValueVectorsPosition,
276
+ };
254
277
  }
255
278
  async getMatrix(chrIdx1, chrIdx2, opts) {
256
279
  await this.init(opts);
@@ -678,7 +701,7 @@ class HicFile {
678
701
  const { signal } = opts;
679
702
  let index;
680
703
  if (this.normExpectedValueVectorsPosition !== undefined) {
681
- const nviStart = await this.skipExpectedValues(this.normExpectedValueVectorsPosition, opts);
704
+ const nviStart = (await this.getExpectedSection('normalized', opts)).end;
682
705
  const data = await this.file.read(nviStart, INT, { signal });
683
706
  // Possible if there are no norm vectors. A legal v8 file, though uncommon.
684
707
  if (data.byteLength !== 0) {
@@ -705,64 +728,135 @@ class HicFile {
705
728
  }
706
729
  return index;
707
730
  }
708
- // Used when the position of the norm vector index is unknown: skip the
709
- // normalized expected values to find the index.
710
- async skipExpectedValues(start, opts) {
731
+ /**
732
+ * The expected count for a region pair at `binsize`, the denominator of
733
+ * observed/expected, as straw computes it. `normalization` must be the one
734
+ * the pair's records carry (`getContactRecords`' `appliedNormalization`),
735
+ * since each normalization has its own vector. Undefined where the file has
736
+ * no expected value for it: no vector at this binsize, or a version 5 file
737
+ * asked for a normalized one.
738
+ *
739
+ * Within a chromosome the vector is read for only the distances the pair
740
+ * spans. Between chromosomes straw divides by the map's average contact, the
741
+ * raw `sumCounts` over its bins, whatever the normalization.
742
+ */
743
+ async getExpectedValues(normalization, region1, region2, binsize, opts) {
744
+ await this.init(opts);
745
+ const idx1 = this.chromosomeIndexMap.get(region1.chr);
746
+ const idx2 = this.chromosomeIndexMap.get(region2.chr);
747
+ if (idx1 === undefined || idx2 === undefined) {
748
+ return undefined;
749
+ }
750
+ if (idx1 !== idx2) {
751
+ const matrix = await this.getMatrix(idx1, idx2, opts);
752
+ const zd = matrix?.getZoomData(binsize);
753
+ if (!zd) {
754
+ return undefined;
755
+ }
756
+ // straw's bin counts leave out a chromosome's partial last bin
757
+ const nBins1 = Math.max(1, Math.floor(this.chromosomes[idx1].size / binsize));
758
+ const nBins2 = Math.max(1, Math.floor(this.chromosomes[idx2].size / binsize));
759
+ return { kind: 'inter', average: zd.sumCounts / nBins1 / nBins2 };
760
+ }
761
+ const normalized = !!normalization && normalization !== 'NONE';
762
+ if (normalized && this.normExpectedValueVectorsPosition === undefined) {
763
+ return undefined;
764
+ }
765
+ const section = await this.getExpectedSection(normalized ? 'normalized' : 'raw', opts ?? {});
766
+ const chunk = section.chunks.get(getExpectedKey(normalized ? normalization : 'NONE', 'BP', binsize));
767
+ if (!chunk || chunk.nValues === 0) {
768
+ return undefined;
769
+ }
770
+ const [first, last] = distanceRange((0, binWindow_ts_1.binWindow)(region1, binsize), (0, binWindow_ts_1.binWindow)(region2, binsize));
771
+ const signalOpts = { signal: opts?.signal };
772
+ const stored = await chunk.vector.getValues(first, last + 1, signalOpts);
773
+ const tail = stored.length < last + 1 - first
774
+ ? (await chunk.vector.getValues(chunk.nValues - 1, chunk.nValues, signalOpts))[0]
775
+ : 0;
776
+ // straw divides by 1 where the section names no factor for the chromosome
777
+ const factor = chunk.chrScaleFactors.get(idx1) ?? 1;
778
+ const values = new Float64Array(last + 1 - first);
779
+ for (let i = 0; i < values.length; i++) {
780
+ values[i] = (i < stored.length ? stored[i] : tail) / factor;
781
+ }
782
+ return { kind: 'intra', firstDistance: first, values };
783
+ }
784
+ /**
785
+ * The library's total contact count, the `ALL` whole-genome map's
786
+ * `sumCounts`: what scales two libraries of different depth against each
787
+ * other. Undefined for a file with no `ALL` map.
788
+ */
789
+ async getTotalContacts(opts) {
790
+ await this.init(opts);
791
+ const all = this.chromosomes.find(chr => chr.name.toUpperCase() === 'ALL');
792
+ const zd = all
793
+ ? (await this.getMatrix(all.index, all.index, opts))?.getZoomLevels()[0]
794
+ : undefined;
795
+ return zd?.sumCounts;
796
+ }
797
+ async getExpectedSection(section, opts) {
798
+ return this.expectedSectionCache.get(section, opts.signal, signal => this.walkExpectedSection(section === 'raw'
799
+ ? this.expectedValuesPosition
800
+ : this.normExpectedValueVectorsPosition, section === 'normalized', { signal, onProgress: opts.onProgress }));
801
+ }
802
+ // Walk one expected-value section, recording where each chunk's values sit
803
+ // and its chromosome scale factors. The normalized section's end is also
804
+ // where a pre-v9 file's normalization vector index begins.
805
+ //
806
+ // A chunk's two reads land a whole expected-value vector apart — one per bin
807
+ // of the genome's longest chromosome, so megabytes at a fine binsize — which
808
+ // is further than the buffer reaches. On a remote file that is two round
809
+ // trips per chunk that nothing can merge, and it is why this walk, not the
810
+ // index it leads to, is the slow part of opening a pre-v9 file. It is also
811
+ // why the chunk is the unit worth counting: known before the first read, each
812
+ // costing about the same. Chunks are walked in order, since each one's size
813
+ // is known only once the one before it has been parsed.
814
+ async walkExpectedSection(start, normalized, opts) {
711
815
  const { signal, onProgress } = opts;
712
816
  const version = this.version;
817
+ const valueSize = version < 9 ? DOUBLE : FLOAT;
713
818
  const file = new bufferedFile_ts_1.default({ file: this.file, size: 256000 });
819
+ const chunks = new Map();
714
820
  const data = await file.read(start, INT, { signal });
715
- // A file with no normalization at all ends where this section would start,
716
- // so the count this is about to read is past EOF. That is the same "no norm
717
- // vectors" case `readNormExpectedValuesAndNormVectorIndex` guards its own
718
- // read for, and it has to be caught HERE too, because this runs first:
719
- // a v9 file that records no norm-vector-index position takes the v8
720
- // discovery path, and that path starts by skipping a section that isn't
721
- // there. Answering `start` leaves the caller's guard to do the rest.
821
+ // A file with no normalization at all ends where the normalized section
822
+ // would start, so the count this is about to read is past EOF. A v9 file
823
+ // that records no norm-vector-index position takes the v8 discovery path,
824
+ // which starts by walking a section that isn't there, so the empty answer
825
+ // has to come from here.
722
826
  if (data.byteLength < INT) {
723
- return start;
827
+ return { chunks, end: start };
724
828
  }
725
- const binaryParser = new binary_ts_1.default(new DataView(data));
726
- const nEntries = binaryParser.getInt(); // Total # of expected value chunks
727
- // Skip one chunk, answering where the next one starts.
728
- //
729
- // Its two reads land a whole expected-value vector apart — one per bin of
730
- // the genome, so tens of MB at a fine binsize — which is further than the
731
- // buffer reaches. On a remote file that is two round trips per chunk that
732
- // nothing can merge, and it is why this walk, not the index it is looking
733
- // for, is the slow part of opening a pre-v9 file. It is also why the chunk
734
- // is the unit worth counting: `nEntries` of them, known before the first
735
- // read, each costing about the same.
736
- const skipChunk = async (chunkStart) => {
737
- let chunkSize = 0;
738
- let buf = await file.read(chunkStart, 500, { signal });
739
- let parser = new binary_ts_1.default(new DataView(buf));
740
- parser.getString(); // type
741
- parser.getString(); // unit
742
- parser.getInt(); // binSize
743
- const nValues = version < 9 ? parser.getInt() : parser.getLong();
744
- chunkSize += parser.position + nValues * (version < 9 ? DOUBLE : FLOAT);
745
- buf = await file.read(chunkStart + chunkSize, INT, { signal });
746
- parser = new binary_ts_1.default(new DataView(buf));
747
- const nChrScaleFactors = parser.getInt();
748
- chunkSize +=
749
- INT + nChrScaleFactors * (INT + (version < 9 ? DOUBLE : FLOAT));
750
- return chunkStart + chunkSize;
751
- };
752
- // A loop rather than the tail recursion this was, because the position is
753
- // the only thing carried between chunks and a counter now rides along with
754
- // it. Chunks must be walked in order — each one's size is only known once
755
- // the one before it has been parsed — so the awaits are sequential by
756
- // nature, not by oversight.
829
+ const nEntries = new binary_ts_1.default(new DataView(data)).getInt();
757
830
  if (nEntries > 0) {
758
831
  onProgress?.(0, nEntries);
759
832
  }
760
833
  let position = start + INT;
761
834
  for (let done = 0; done < nEntries; done++) {
762
- position = await skipChunk(position);
835
+ let parser = new binary_ts_1.default(new DataView(await file.read(position, 500, { signal })));
836
+ const type = normalized ? parser.getString() : 'NONE';
837
+ const unit = parser.getString();
838
+ const binSize = parser.getInt();
839
+ const nValues = version < 9 ? parser.getInt() : parser.getLong();
840
+ const valuesPosition = position + parser.position;
841
+ const factorsPosition = valuesPosition + nValues * valueSize;
842
+ parser = new binary_ts_1.default(new DataView(await file.read(factorsPosition, INT, { signal })));
843
+ const nFactors = parser.getInt();
844
+ const factorBytes = nFactors * (INT + valueSize);
845
+ parser = new binary_ts_1.default(new DataView(await file.read(factorsPosition + INT, factorBytes, { signal })));
846
+ const chrScaleFactors = new Map();
847
+ for (let i = 0; i < nFactors; i++) {
848
+ const chrIdx = parser.getInt();
849
+ chrScaleFactors.set(chrIdx, version < 9 ? parser.getDouble() : parser.getFloat());
850
+ }
851
+ chunks.set(getExpectedKey(type, unit, binSize), {
852
+ vector: new normalizationVector_ts_1.default(this.file, valuesPosition, nValues, valueSize),
853
+ nValues,
854
+ chrScaleFactors,
855
+ });
856
+ position = factorsPosition + INT + factorBytes;
763
857
  onProgress?.(done + 1, nEntries);
764
858
  }
765
- return position;
859
+ return { chunks, end: position };
766
860
  }
767
861
  parseNormVectorEntry(binaryParser, index) {
768
862
  const type = binaryParser.getString(); // 15
@@ -1 +1 @@
1
- {"version":3,"file":"hicFile.js","sourceRoot":"","sources":["../src/hicFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hicFile.js","sourceRoot":"","sources":["../src/hicFile.ts"],"names":[],"mappings":";;;;;;AAAA,2CAAqD;AACrD,+DAAyE;AACzE,6DAA+C;AAE/C,iDAA0C;AAC1C,4DAAsC;AACtC,wEAA4C;AAC5C,4DAAgC;AAChC,sFAA0D;AAC1D,2CAAkD;AAgBlD;;;;;GAKG;AACU,QAAA,sBAAsB,GAAG,kCAAkC,CAAA;AAExE,MAAM,eAAe,GAAG,CAAC,KAAK,CAAA;AAC9B,MAAM,MAAM,GAAG,CAAC,CAAA;AAChB,MAAM,KAAK,GAAG,CAAC,CAAA;AACf,MAAM,GAAG,GAAG,CAAC,CAAA;AA6Bb,SAAS,cAAc,CAAC,IAAY,EAAE,IAAY,EAAE,OAAe;IACjE,OAAO,GAAG,IAAI,IAAI,IAAI,IAAI,OAAO,EAAE,CAAA;AACrC,CAAC;AAED,+DAA+D;AAC/D,SAAS,aAAa,CACpB,CAAC,EAAE,EAAE,EAAE,CAA4B,EACnC,CAAC,EAAE,EAAE,EAAE,CAA4B;IAEnC,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;IAClC,MAAM,OAAO,GAAG,OAAO;QACrB,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IACvE,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAU,CAAA;AACrC,CAAC;AAgCD;;;;;GAKG;AACH,SAAS,eAAe,CAAC,OAAuB,EAAE,CAAS;IACzD,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,MAAM;QAC9B,CAAC,CAAC,OAAO;QACT,CAAC,CAAC;YACE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9B,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACnC,CAAA;AACP,CAAC;AAED,4EAA4E;AAC5E,+EAA+E;AAC/E,yCAAyC;AACzC,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,0EAA0E;AAC1E,gFAAgF;AAChF,4EAA4E;AAC5E,yEAAyE;AACzE,mBAAmB;AACnB,EAAE;AACF,2EAA2E;AAC3E,6EAA6E;AAC7E,oBAAoB;AACpB,EAAE;AACF,sCAAsC;AACtC,2CAA2C;AAC3C,2CAA2C;AAC3C,2CAA2C;AAC3C,2CAA2C;AAC3C,EAAE;AACF,iFAAiF;AACjF,6EAA6E;AAC7E,kCAAkC;AAClC,EAAE;AACF,iFAAiF;AACjF,iFAAiF;AACjF,iFAAiF;AACjF,2EAA2E;AAC3E,iFAAiF;AACjF,iEAAiE;AACjE,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,6EAA6E;AAC7E,sEAAsE;AACtE,MAAM,qBAAqB,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAA;AAC/C,0EAA0E;AAC1E,6EAA6E;AAC7E,6EAA6E;AAC7E,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAC7B,yEAAyE;AACzE,4EAA4E;AAC5E,gFAAgF;AAChF,0EAA0E;AAC1E,qEAAqE;AACrE,MAAM,sBAAsB,GAAG,EAAE,CAAA;AAEjC,+EAA+E;AAC/E,yEAAyE;AACzE,6EAA6E;AAC7E,mDAAmD;AACnD,SAAS,gBAAgB,CAAC,KAAwB;IAChD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,CAAA;IACV,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAA;IAC5C,OAAO,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;AAC9D,CAAC;AAED,SAAS,yBAAyB,CAChC,IAAY,EACZ,MAAc,EACd,IAAY,EACZ,UAAkB;IAElB,OAAO,GAAG,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,UAAU,EAAE,CAAA;AAClD,CAAC;AAED,MAAa,OAAO;IACV,GAAG,CAAoB;IACvB,IAAI,CAAQ;IAEpB,gEAAgE;IAChE,uEAAuE;IACvE,6EAA6E;IAC7E,2EAA2E;IAC3E,4EAA4E;IAC5E,oEAAoE;IAC5D,WAAW,GAAG,IAAI,mCAAe,EAAgB,CAAA;IACjD,oBAAoB,GAAG,IAAI,mCAAe,EAG/C,CAAA;IACH,4EAA4E;IAC5E,qEAAqE;IAC7D,oBAAoB,GAAG,IAAI,mCAAe,EAA2B,CAAA;IACrE,eAAe,GAAG,IAAI,mCAAe,CAG3C,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAA;IAC9B,WAAW,GAAG,IAAI,mCAAe,CAA6B;QACpE,OAAO,EAAE,iBAAiB;KAC3B,CAAC,CAAA;IACF,yEAAyE;IACzE,4DAA4D;IACpD,UAAU,CAA4C;IACtD,uBAAuB,GAAG,CAAC,CAAC,CAAA;IAC5B,mBAAmB,GAAG,CAAC,CAAC,CAAA;IAExB,OAAO,GAAG,CAAC,CAAA;IACX,QAAQ,GAAG,EAAE,CAAA;IACb,cAAc,GAAG,CAAC,CAAA;IAC1B,4EAA4E;IACpE,sBAAsB,GAAG,CAAC,CAAA;IAClC,uEAAuE;IACvE,0EAA0E;IAC1E,0BAA0B;IAC1B,gCAAgC,CAAoB;IAE5C,WAAW,GAAiB,EAAE,CAAA;IAC9B,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC9C,aAAa,GAAa,EAAE,CAAA;IAC5B,WAAW,GAAqC,EAAE,CAAA;IAClD,IAAI,CAAyB;IAErC,YAAY,MAAiB;QAC3B,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAA;QACpE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,UAAU,GAAG,IAAI,mCAAe,CAAC;YACpC,OAAO,EAAE,kBAAkB,IAAI,qBAAqB;YACpD,MAAM,EAAE,gBAAgB;SACzB,CAAC,CAAA;QACF,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,IAAI,GAAG,MAAM,CAAA;QACpB,CAAC;aAAM,IAAI,UAAU,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,GAAG,IAAA,gCAAoB,EAAC,UAAU,CAAC,CAAA;QAC9C,CAAC;aAAM,IAAI,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,IAAA,gCAAoB,EAAC,IAAI,+BAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QACvD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAe;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAC3D,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CACjC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAe;QAC/B,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,OAAO,IAAI,CAAC,IAAK,CAAA;IACnB,CAAC;IAED,yEAAyE;IACzE,wEAAwE;IACxE,6EAA6E;IAC7E,sBAAsB;IACd,KAAK,CAAC,mBAAmB,CAAC,MAAmB;QACnD,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;QAClD,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;QAC1C,CAAC;QACD,IAAI,YAAY,GAAG,IAAI,mBAAY,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QACvD,YAAY,CAAC,SAAS,EAAE,CAAA,CAAC,QAAQ;QACjC,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,CAAA;QACrC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAA;QACxD,CAAC;QACD,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,EAAE,CAAA;QAE7C,MAAM,EACJ,WAAW,EACX,sBAAsB,EACtB,gCAAgC,GACjC,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,CAAA;QAE1D,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CACpD,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,EAC1C,MAAM,CAAC,SAAS,CACjB,CAAA;QAED,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;QAC9D,YAAY,GAAG,IAAI,mBAAY,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QAEnD,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,EAAE,CAAA;QAEzC,IAAI,uBAAuB,GAAG,CAAC,CAAC,CAAA;QAChC,IAAI,mBAAmB,GAAG,CAAC,CAAC,CAAA;QAC5B,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;YACjB,uBAAuB,GAAG,YAAY,CAAC,OAAO,EAAE,CAAA;YAChD,mBAAmB,GAAG,YAAY,CAAC,OAAO,EAAE,CAAA;QAC9C,CAAC;QAED,IAAI,WAAW,GAAG,YAAY,CAAC,MAAM,EAAE,CAAA;QACvC,OAAO,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC;YACzB,YAAY,CAAC,SAAS,EAAE,CAAA,CAAC,gBAAgB;YACzC,YAAY,CAAC,SAAS,EAAE,CAAA,CAAC,kBAAkB;QAC7C,CAAC;QAED,MAAM,WAAW,GAAiB,EAAE,CAAA;QACpC,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAA;QACpD,IAAI,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,CAAA;QACjC,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,OAAO,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,GAAG,GAAG;gBACV,KAAK,EAAE,CAAC;gBACR,IAAI,EAAE,YAAY,CAAC,SAAS,EAAE;gBAC9B,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE;aACnE,CAAA;YACD,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACrB,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;YAC3C,CAAC,EAAE,CAAA;QACL,CAAC;QAED,MAAM,aAAa,GAAa,EAAE,CAAA;QAClC,IAAI,cAAc,GAAG,YAAY,CAAC,MAAM,EAAE,CAAA;QAC1C,OAAO,cAAc,EAAE,GAAG,CAAC,EAAE,CAAC;YAC5B,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAA;QAC3C,CAAC;QAED,IAAA,kCAAc,EAAC,MAAM,CAAC,CAAA;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAA;QACpD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,gCAAgC,GAAG,gCAAgC,CAAA;QACxE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAA;QACtD,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAA;QAC9C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;QAC5C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,IAAI,GAAG;YACV,OAAO;YACP,MAAM,EAAE,QAAQ;YAChB,WAAW;YACX,WAAW,EAAE,aAAa;SAC3B,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CACtB,OAAe,EACf,cAAsB,EACtB,MAAmB;QAEnB,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACjC,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;QAEjE,IAAI,YAAY,GAAG,IAAI,mBAAY,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QACvD,6CAA6C;QAC7C,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,CAAA;QAC3E,IAAI,QAAQ,GAAG,YAAY,CAAC,MAAM,EAAE,CAAA;QAEpC,0EAA0E;QAC1E,4BAA4B;QAC5B,MAAM,MAAM,GAAG,QAAQ,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;QACzC,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CACzB,cAAc,GAAG,IAAI,EACrB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACxB,EAAE,MAAM,EAAE,CACX,CAAA;QACD,YAAY,GAAG,IAAI,mBAAY,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QAEnD,MAAM,WAAW,GAAqC,EAAE,CAAA;QACxD,OAAO,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,EAAE,CAAA;YACpC,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,CAAA;YAClC,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAA;YAClC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;QACzC,CAAC;QAED,MAAM,sBAAsB,GAAG,cAAc,GAAG,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAA;QAC5E,6DAA6D;QAC7D,MAAM,gCAAgC,GACpC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;QAC3E,OAAO;YACL,WAAW;YACX,sBAAsB;YACtB,gCAAgC;SACjC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe,EAAE,OAAe,EAAE,IAAe;QAC/D,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CACzB,mBAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CACpD,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CACtB,OAAe,EACf,OAAe,EACf,MAAmB;QAEnB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,mBAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;QAC7D,IAAI,MAA0B,CAAA;QAC9B,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;YAClE,MAAM,GAAG,mBAAM,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QACrD,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,aAAqB,EACrB,OAAkB,EAClB,OAAkB,EAClB,OAAe,EACf,IAAmB;QAEnB,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAErB,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAErD,6EAA6E;QAC7E,yEAAyE;QACzE,4EAA4E;QAC5E,2EAA2E;QAC3E,2EAA2E;QAC3E,uEAAuE;QACvE,qEAAqE;QACrE,2EAA2E;QAC3E,yEAAyE;QACzE,wEAAwE;QACxE,wEAAwE;QACxE,2EAA2E;QAC3E,MAAM,SAAS,GACb,IAAI,KAAK,SAAS;YAClB,IAAI,KAAK,SAAS;YAClB,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;QACnE,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAA;QACxC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAA;QAExC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAA,wBAAS,EAAC,EAAE,EAAE,OAAO,CAAC,CAAA;QACvC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAA,wBAAS,EAAC,EAAE,EAAE,OAAO,CAAC,CAAA;QAEvC,uEAAuE;QACvE,qEAAqE;QACrE,yEAAyE;QACzE,4EAA4E;QAC5E,4DAA4D;QAC5D,EAAE;QACF,6EAA6E;QAC7E,sEAAsE;QACtE,0EAA0E;QAC1E,0EAA0E;QAC1E,2EAA2E;QAC3E,EAAE;QACF,yEAAyE;QACzE,yEAAyE;QACzE,8BAA8B;QAC9B,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACvC,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC;YACzD,uEAAuE;YACvE,qEAAqE;YACrE,mEAAmE;YACnE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC;SACtC,CAAC,CAAA;QACF,IAAA,kCAAc,EAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAE5B,0EAA0E;QAC1E,yEAAyE;QACzE,4EAA4E;QAC5E,yDAAyD;QACzD,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,EAAE,CAAC;gBACV,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAA;YACvC,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAA;QACxC,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAA;QACxC,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAA;QAC5C,IAAI,CAAC,GAAG,CAAC,CAAA;QAET,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,kEAAkE;YAClE,aAAa;YACb,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,SAAQ;YACV,CAAC;YACD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAA;YAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAA;YACvB,qEAAqE;YACrE,kEAAkE;YAClE,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;gBACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAE,CAAA;oBACnB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAE,CAAA;oBACnB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;wBAC/C,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,GAAG,OAAO,CAAE,GAAG,EAAE,CAAC,EAAE,GAAG,OAAO,CAAE,CAAA;wBAClD,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;4BACtC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;4BACf,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;4BACf,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAE,GAAG,IAAI,CAAA;4BAChC,CAAC,EAAE,CAAA;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAE,CAAA;oBACnB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAE,CAAA;oBACnB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;wBAC/C,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;wBACf,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;wBACf,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAE,CAAA;wBACzB,CAAC,EAAE,CAAA;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,4CAA4C;QAC5C,MAAM,cAAc,GAAmB;YACrC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5B,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5B,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;SACjC,CAAA;QAED,qEAAqE;QACrE,6EAA6E;QAC7E,2EAA2E;QAC3E,2EAA2E;QAC3E,kDAAkD;QAClD,EAAE;QACF,2EAA2E;QAC3E,4EAA4E;QAC5E,2EAA2E;QAC3E,kDAAkD;QAClD,OAAO;YACL,OAAO,EAAE,cAAc;YACvB,oBAAoB,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM;YACnD,UAAU,EAAE,SAAS;SACtB,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,aAAqB,EACrB,EAAa,EACb,EAAa,EACb,OAAe,EACf,IAAe;QAEf,IAAI,CAAC,aAAa,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;YAC/C,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,UAAU,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;QAC3C,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,IAAA,wBAAS,EAAC,EAAE,EAAE,OAAO,CAAC,CAAA;QAC9C,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,IAAA,wBAAS,EAAC,EAAE,EAAE,OAAO,CAAC,CAAA;QAC9C,gEAAgE;QAChE,oDAAoD;QACpD,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnC,IAAI,CAAC,sBAAsB,CAAC,aAAa,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC;YACvE,IAAI,CAAC,sBAAsB,CAAC,aAAa,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC;SACxE,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACjB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACjC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC;YACxC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC;SACzC,CAAC,CAAA;QACF,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,SAAS,CACb,OAAkB,EAClB,OAAkB,EAClB,OAAe,EACf,IAAmB;QAEnB,MAAM,QAAQ,GAAG,CAAC,WAAmB,EAAE,EAAkB,EAAE,EAAE,CAC3D,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,WAAW,EAAE,CAAA;QAEjC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAErD,IAAI,MAAM,GAA0B,EAAE,CAAA;QACtC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,wBAAwB,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QACrD,CAAC;aAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,wBAAwB,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QACrD,CAAC;aAAM,CAAC;YACN,yEAAyE;YACzE,2EAA2E;YAC3E,yEAAyE;YACzE,kEAAkE;YAClE,MAAM,UAAU,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;YAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAA;YAC3D,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;gBACtC,IAAI,CAAC,EAAE,EAAE,CAAC;oBACR,MAAM,IAAI,KAAK,CACb,GAAG,8BAAsB,KAAK,OAAO,YAAY,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAC9E,CAAA;gBACH,CAAC;gBAED,MAAM,YAAY,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;gBACvE,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;gBACvD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;gBAExD,qEAAqE;gBACrE,sEAAsE;gBACtE,uEAAuE;gBACvE,4DAA4D;gBAC5D,EAAE;gBACF,wEAAwE;gBACxE,mEAAmE;gBACnE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,IAAI,EAAE,CAAA;gBACjC,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAA;gBACjC,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAA;gBACxC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBACd,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;gBAC3B,CAAC;gBACD,kEAAkE;gBAClE,qEAAqE;gBACrE,mEAAmE;gBACnE,EAAE;gBACF,qEAAqE;gBACrE,uEAAuE;gBACvE,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CACxB,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;oBAChC,MAAM,KAAK,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;wBAC9B,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CACzD,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CACpC;wBACH,CAAC,CAAC,SAAS,CAAA;oBACb,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;wBACf,IAAI,EAAE,CAAA;wBACN,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;oBAC3B,CAAC;oBACD,OAAO,KAAK,CAAA;gBACd,CAAC,CAAC,CACH,CAAA;YACH,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,WAAmB,EAAE,EAAkB,EAAE,IAAe;QACtE,MAAM,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;QAEtC,IAAI,KAAwB,CAAA;QAC5B,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE;gBAC5D,MAAM,EAAE,IAAI,EAAE,MAAM;aACrB,CAAC,CAAA;YACF,IAAA,kCAAc,EAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YAC5B,yEAAyE;YACzE,0EAA0E;YAC1E,oEAAoE;YACpE,kEAAkE;YAClE,oCAAoC;YACpC,MAAM,KAAK,GAAG,MAAM,IAAA,+BAAqB,EACvC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CACjC,CAAA;YACD,MAAM,MAAM,GAAG,IAAI,mBAAY,CAC7B,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAC/D,CAAA;YACD,0EAA0E;YAC1E,uEAAuE;YACvE,2DAA2D;YAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;YAChC,KAAK,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAA;QAC5E,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;;;;;OAQG;IACK,iBAAiB,CACvB,MAAoB,EACpB,QAAgB;QAEhB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAA;YACrC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAA;YACrC,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAA;YACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;gBACzB,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;gBACzB,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;YAC/B,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;QAC/B,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;QAClC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;QAElC,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACpE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACpE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;QAE7B,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,0EAA0E;YAC1E,+DAA+D;YAC/D,yCAAyC;YACzC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAA;YACrC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAA;YACrC,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAA;YACzC,IAAI,CAAC,GAAG,CAAC,CAAA;YACT,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;YACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClC,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;gBAC3D,MAAM,IAAI,GAAG,UAAU,GAAG,EAAE,CAAA;gBAC5B,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;gBACjE,IAAI,CAAC,GAAG,QAAQ,GAAG,QAAQ,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CACb,sBAAsB,QAAQ,iCAAiC,CAChE,CAAA;gBACH,CAAC;gBACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;oBAClC,IAAI,CAAC,CAAC,CAAC;wBACL,UAAU,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;oBACjE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;oBACd,MAAM,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;oBACnE,CAAC,EAAE,CAAA;gBACL,CAAC;YACH,CAAC;YACD,OAAO,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAA;QACnD,CAAC;QAED,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,0EAA0E;YAC1E,yEAAyE;YACzE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;YAC5B,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;YAC3B,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;YACjC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;YACjC,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAA;YACrC,IAAI,CAAC,GAAG,CAAC,CAAA;YACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9B,oEAAoE;gBACpE,wCAAwC;gBACxC,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;gBACjE,mEAAmE;gBACnE,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,eAAe,EAAE,CAAC;oBAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;oBAC7B,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAA;oBACpC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,GAAG,CAAA;oBAC1B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;oBACb,CAAC,EAAE,CAAA;gBACL,CAAC;YACH,CAAC;YACD,OAAO,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAA;QACnD,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAA;IAChD,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC1B,IAAY,EACZ,GAAW,EACX,OAAe,EACf,IAAe;QAEf,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAErB,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC/C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,GAAG,GAAG,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QAElE,2EAA2E;QAC3E,6EAA6E;QAC7E,4EAA4E;QAC5E,2DAA2D;QAC3D,yEAAyE;QACzE,0BAA0B;QAC1B,EAAE;QACF,oEAAoE;QACpE,sEAAsE;QACtE,mEAAmE;QACnE,2EAA2E;QAC3E,4EAA4E;QAC5E,mBAAmB;QACnB,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAC1D,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,MAAM,CAAC,CAC1C,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,GAAW,EAAE,MAAmB;QACpE,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;QAC9D,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;QAClE,MAAM,MAAM,GAAG,IAAI,mBAAY,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA;QAClD,MAAM,YAAY,GAChB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,CAAA;QAChE,OAAO,IAAI,gCAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC5E,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAmB;QAC1C,OAAO,CAAC,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAA;IAC7D,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,IAAmB;QACxD,uEAAuE;QACvE,0EAA0E;QAC1E,sDAAsD;QACtD,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,4EAA4E;QAC5E,0EAA0E;QAC1E,2EAA2E;QAC3E,4EAA4E;QAC5E,oDAAoD;QACpD,EAAE;QACF,wEAAwE;QACxE,yEAAyE;QACzE,oDAAoD;QACpD,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CACjE,IAAI,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CACnE,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,IAAgB;QAChD,IAAI,IAAI,CAAC,uBAAuB,GAAG,CAAC,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC,EAAE,CAAC;YACrE,OAAO,IAAI,CAAC,mBAAmB,CAC7B;gBACE,KAAK,EAAE,IAAI,CAAC,uBAAuB;gBACnC,IAAI,EAAE,IAAI,CAAC,mBAAmB;aAC/B,EACD,IAAI,CAAC,MAAM,CACZ,CAAA;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACxD,OAAO,IAAI,CAAC,mBAAmB,CAC7B;gBACE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC;gBAC7B,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC;aAC7B,EACD,IAAI,CAAC,MAAM,CACZ,CAAA;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,wCAAwC,CAAC,IAAI,CAAC,CAAA;YAClE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAA,kCAAc,EAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAC3B,mEAAmE;gBACnE,uEAAuE;gBACvE,yEAAyE;gBACzE,kEAAkE;gBAClE,uEAAuE;gBACvE,yEAAyE;gBACzE,0BAA0B;gBAC1B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAChB,OAAO,SAAS,CAAA;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,IAAmB;QAC/C,OAAO,CAAC,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,CAAA;IACvE,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,KAAsC,EACtC,MAAmB;QAEnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;QACtE,MAAM,YAAY,GAAG,IAAI,mBAAY,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QACzD,MAAM,KAAK,GAAoB,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,CAAA;QAC/D,IAAI,QAAQ,GAAG,YAAY,CAAC,MAAM,EAAE,CAAA;QACpC,OAAO,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;QAChD,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,2EAA2E;IAC3E,yCAAyC;IACjC,KAAK,CAAC,wCAAwC,CAAC,IAAgB;QACrE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;QACvB,IAAI,KAAkC,CAAA;QACtC,IAAI,IAAI,CAAC,gCAAgC,KAAK,SAAS,EAAE,CAAC;YACxD,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAA;YACxE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;YAC5D,2EAA2E;YAC3E,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,QAAQ,GAAG,IAAI,mBAAY,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAA;gBAC9D,MAAM,KAAK,GAAoB,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,CAAA;gBAE/D,IAAI,QAAQ,GAAG,QAAQ,GAAG,GAAG,CAAA;gBAC7B,IAAI,SAAS,GAAG,QAAQ,GAAG,EAAE,CAAA;gBAC7B,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;gBAC/D,IAAI,MAAM,GAAG,IAAI,mBAAY,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;gBAChD,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAClC,mEAAmE;oBACnE,6CAA6C;oBAC7C,IAAI,MAAM,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;wBAC7D,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAA;wBAC3B,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAA;wBAClC,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;wBAC3D,MAAM,GAAG,IAAI,mBAAY,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;oBAC9C,CAAC;oBACD,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;gBAC1C,CAAC;gBACD,IAAA,kCAAc,EAAC,MAAM,CAAC,CAAA;gBACtB,KAAK,GAAG,KAAK,CAAA;YACf,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,iBAAiB,CACrB,aAAqB,EACrB,OAAkB,EAClB,OAAkB,EAClB,OAAe,EACf,IAAmB;QAEnB,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACrD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7C,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YACrD,MAAM,EAAE,GAAG,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;YACvC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,+DAA+D;YAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CACrB,CAAC,EACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAE,CAAC,IAAI,GAAG,OAAO,CAAC,CACnD,CAAA;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CACrB,CAAC,EACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAE,CAAC,IAAI,GAAG,OAAO,CAAC,CACnD,CAAA;YACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,SAAS,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;QACnE,CAAC;QACD,MAAM,UAAU,GAAG,CAAC,CAAC,aAAa,IAAI,aAAa,KAAK,MAAM,CAAA;QAC9D,IAAI,UAAU,IAAI,IAAI,CAAC,gCAAgC,KAAK,SAAS,EAAE,CAAC;YACtE,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAC3C,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,EACjC,IAAI,IAAI,EAAE,CACX,CAAA;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAC9B,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CACnE,CAAA;QACD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,aAAa,CACjC,IAAA,wBAAS,EAAC,OAAO,EAAE,OAAO,CAAC,EAC3B,IAAA,wBAAS,EAAC,OAAO,EAAE,OAAO,CAAC,CAC5B,CAAA;QACD,MAAM,UAAU,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;QAC3C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,EAAE,UAAU,CAAC,CAAA;QACxE,MAAM,IAAI,GACR,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK;YAC9B,CAAC,CAAC,CACE,MAAM,KAAK,CAAC,MAAM,CAAC,SAAS,CAC1B,KAAK,CAAC,OAAO,GAAG,CAAC,EACjB,KAAK,CAAC,OAAO,EACb,UAAU,CACX,CACF,CAAC,CAAC,CAAE;YACP,CAAC,CAAC,CAAC,CAAA;QACP,0EAA0E;QAC1E,MAAM,MAAM,GAAG,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,CAAA;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAA;QAC9D,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;IACxD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAAC,IAAe;QACpC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAA;QAC1E,MAAM,EAAE,GAAG,GAAG;YACZ,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;YACxE,CAAC,CAAC,SAAS,CAAA;QACb,OAAO,EAAE,EAAE,SAAS,CAAA;IACtB,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,OAA6B,EAC7B,IAAkB;QAElB,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAClE,IAAI,CAAC,mBAAmB,CACtB,OAAO,KAAK,KAAK;YACf,CAAC,CAAC,IAAI,CAAC,sBAAsB;YAC7B,CAAC,CAAC,IAAI,CAAC,gCAAiC,EAC1C,OAAO,KAAK,YAAY,EACxB,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CACxC,CACF,CAAA;IACH,CAAC;IAED,2EAA2E;IAC3E,yEAAyE;IACzE,2DAA2D;IAC3D,EAAE;IACF,6EAA6E;IAC7E,6EAA6E;IAC7E,yEAAyE;IACzE,2EAA2E;IAC3E,2EAA2E;IAC3E,8EAA8E;IAC9E,4EAA4E;IAC5E,wDAAwD;IAChD,KAAK,CAAC,mBAAmB,CAC/B,KAAa,EACb,UAAmB,EACnB,IAAgB;QAEhB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAA;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC5B,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA;QAC9C,MAAM,IAAI,GAAG,IAAI,yBAAY,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;QAChE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAA;QAC/C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;QACpD,wEAAwE;QACxE,yEAAyE;QACzE,0EAA0E;QAC1E,0EAA0E;QAC1E,yBAAyB;QACzB,IAAI,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;YAC1B,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAA;QAC/B,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,mBAAY,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAA;QAC9D,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,UAAU,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;QAC3B,CAAC;QACD,IAAI,QAAQ,GAAG,KAAK,GAAG,GAAG,CAAA;QAC1B,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;YAC3C,IAAI,MAAM,GAAG,IAAI,mBAAY,CAC3B,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CACzD,CAAA;YACD,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;YACrD,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;YAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;YAC/B,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;YAChE,MAAM,cAAc,GAAG,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;YACjD,MAAM,eAAe,GAAG,cAAc,GAAG,OAAO,GAAG,SAAS,CAAA;YAE5D,MAAM,GAAG,IAAI,mBAAY,CACvB,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAChE,CAAA;YACD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;YAChC,MAAM,WAAW,GAAG,QAAQ,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC,CAAA;YAChD,MAAM,GAAG,IAAI,mBAAY,CACvB,IAAI,QAAQ,CACV,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,GAAG,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,CAChE,CACF,CAAA;YACD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAA;YACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;gBAC9B,eAAe,CAAC,GAAG,CACjB,MAAM,EACN,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CACrD,CAAA;YACH,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE;gBAC9C,MAAM,EAAE,IAAI,gCAAmB,CAC7B,IAAI,CAAC,IAAI,EACT,cAAc,EACd,OAAO,EACP,SAAS,CACV;gBACD,OAAO;gBACP,eAAe;aAChB,CAAC,CAAA;YACF,QAAQ,GAAG,eAAe,GAAG,GAAG,GAAG,WAAW,CAAA;YAC9C,UAAU,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAA;QAClC,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAA;IAClC,CAAC;IAEO,oBAAoB,CAC1B,YAA0B,EAC1B,KAAsB;QAEtB,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,EAAE,CAAA,CAAC,KAAK;QAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,CAAA,CAAC,IAAI;QACzC,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,EAAE,CAAA,CAAC,IAAI;QAC1C,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,CAAA,CAAC,IAAI;QAC1C,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,EAAE,CAAA,CAAC,IAAI;QAChD,MAAM,WAAW,GACf,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,CAAA,CAAC,MAAM;QAC1E,MAAM,GAAG,GAAG,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QAElE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxB,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;IAC1D,CAAC;CACF;AA97BD,0BA87BC"}
package/dist/index.d.ts CHANGED
@@ -2,4 +2,4 @@ export { HicFile, NO_DATA_FOR_RESOLUTION } from './hicFile.ts';
2
2
  export { readerFromFilehandle } from './reader.ts';
3
3
  export type { HicConfig } from './hicFile.ts';
4
4
  export type { ContactRecords } from './contactRecords.ts';
5
- export type { BaseOpts, Chromosome, HicMetadata, HicRegion, ProgressCallback, ProgressOpts, Reader, Zoom, } from './types.ts';
5
+ export type { BaseOpts, Chromosome, ExpectedValues, HicMetadata, HicRegion, ProgressCallback, ProgressOpts, Reader, Zoom, } from './types.ts';
package/dist/matrix.d.ts CHANGED
@@ -3,6 +3,8 @@ import type { Chromosome } from './types.ts';
3
3
  export default class Matrix {
4
4
  private bpZoomData;
5
5
  constructor(zoomDataList: MatrixZoomData[]);
6
+ /** The BP zoom levels this matrix holds, finest last as the file lists them. */
7
+ getZoomLevels(): readonly MatrixZoomData[];
6
8
  getZoomData(binSize: number): MatrixZoomData | undefined;
7
9
  static getKey(chrIdx1: number, chrIdx2: number): string;
8
10
  static parseMatrix(data: ArrayBuffer, chromosomes: Chromosome[]): Matrix;
package/dist/matrix.js CHANGED
@@ -13,6 +13,10 @@ class Matrix {
13
13
  constructor(zoomDataList) {
14
14
  this.bpZoomData = zoomDataList.filter(zd => zd.zoom.unit === 'BP');
15
15
  }
16
+ /** The BP zoom levels this matrix holds, finest last as the file lists them. */
17
+ getZoomLevels() {
18
+ return this.bpZoomData;
19
+ }
16
20
  // Fetch zoom data by bin size. If no matching level exists return undefined.
17
21
  getZoomData(binSize) {
18
22
  return this.bpZoomData.find(zd => binSize === zd.zoom.binSize);
@@ -1 +1 @@
1
- {"version":3,"file":"matrix.js","sourceRoot":"","sources":["../src/matrix.ts"],"names":[],"mappings":";;;;;AAAA,4DAAsC;AACtC,4EAAgD;AAIhD,MAAqB,MAAM;IACzB,sEAAsE;IACtE,8EAA8E;IAC9E,2CAA2C;IACnC,UAAU,CAAkB;IAEpC,YAAY,YAA8B;QACxC,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;IACpE,CAAC;IAED,6EAA6E;IAC7E,WAAW,CAAC,OAAe;QACzB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAChE,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,OAAe,EAAE,OAAe;QAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACrC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACrC,OAAO,GAAG,EAAE,IAAI,EAAE,EAAE,CAAA;IACtB,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAiB,EAAE,WAAyB;QAC7D,MAAM,GAAG,GAAG,IAAI,mBAAY,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QAChD,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAA,CAAC,uBAAuB;QAC/C,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAA,CAAC,uBAAuB;QAE/C,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,CAAE,CAAA;QAC7B,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,CAAE,CAAA;QAE7B,wCAAwC;QACxC,IAAI,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,CAAA;QAC/B,MAAM,MAAM,GAAqB,EAAE,CAAA;QACnC,OAAO,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,2BAAc,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;QAClE,CAAC;QACD,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC;CACF;AArCD,yBAqCC"}
1
+ {"version":3,"file":"matrix.js","sourceRoot":"","sources":["../src/matrix.ts"],"names":[],"mappings":";;;;;AAAA,4DAAsC;AACtC,4EAAgD;AAIhD,MAAqB,MAAM;IACzB,sEAAsE;IACtE,8EAA8E;IAC9E,2CAA2C;IACnC,UAAU,CAAkB;IAEpC,YAAY,YAA8B;QACxC,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;IACpE,CAAC;IAED,gFAAgF;IAChF,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;IAED,6EAA6E;IAC7E,WAAW,CAAC,OAAe;QACzB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAChE,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,OAAe,EAAE,OAAe;QAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACrC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACrC,OAAO,GAAG,EAAE,IAAI,EAAE,EAAE,CAAA;IACtB,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAiB,EAAE,WAAyB;QAC7D,MAAM,GAAG,GAAG,IAAI,mBAAY,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QAChD,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAA,CAAC,uBAAuB;QAC/C,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAA,CAAC,uBAAuB;QAE/C,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,CAAE,CAAA;QAC7B,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,CAAE,CAAA;QAE7B,wCAAwC;QACxC,IAAI,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,CAAA;QAC/B,MAAM,MAAM,GAAqB,EAAE,CAAA;QACnC,OAAO,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,2BAAc,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;QAClE,CAAC;QACD,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC;CACF;AA1CD,yBA0CC"}
@@ -4,10 +4,12 @@ export default class MatrixZoomData {
4
4
  chr1: Chromosome;
5
5
  chr2: Chromosome;
6
6
  zoom: Zoom;
7
+ /** the raw contacts summed over the whole map at this binsize */
8
+ sumCounts: number;
7
9
  blockBinCount: number;
8
10
  blockColumnCount: number;
9
11
  blockIndex: Record<number, BlockIndexEntry>;
10
- constructor(chr1: Chromosome, chr2: Chromosome, zoom: Zoom, blockBinCount: number, blockColumnCount: number, blockIndex: Record<number, BlockIndexEntry>);
12
+ constructor(chr1: Chromosome, chr2: Chromosome, zoom: Zoom, sumCounts: number, blockBinCount: number, blockColumnCount: number, blockIndex: Record<number, BlockIndexEntry>);
11
13
  getKey(): string;
12
14
  getBlockNumbers(region1: HicRegion, region2: HicRegion, version: number): number[];
13
15
  static parseMatrixZoomData(chr1: Chromosome, chr2: Chromosome, dis: BinaryParser): MatrixZoomData;
@@ -5,13 +5,16 @@ class MatrixZoomData {
5
5
  chr1;
6
6
  chr2;
7
7
  zoom;
8
+ /** the raw contacts summed over the whole map at this binsize */
9
+ sumCounts;
8
10
  blockBinCount;
9
11
  blockColumnCount;
10
12
  blockIndex;
11
- constructor(chr1, chr2, zoom, blockBinCount, blockColumnCount, blockIndex) {
13
+ constructor(chr1, chr2, zoom, sumCounts, blockBinCount, blockColumnCount, blockIndex) {
12
14
  this.chr1 = chr1;
13
15
  this.chr2 = chr2;
14
16
  this.zoom = zoom;
17
+ this.sumCounts = sumCounts;
15
18
  this.blockBinCount = blockBinCount;
16
19
  this.blockColumnCount = blockColumnCount;
17
20
  this.blockIndex = blockIndex;
@@ -74,7 +77,7 @@ class MatrixZoomData {
74
77
  static parseMatrixZoomData(chr1, chr2, dis) {
75
78
  const unit = dis.getString();
76
79
  const zoomIndex = dis.getInt();
77
- dis.getFloat(); // sumCounts
80
+ const sumCounts = dis.getFloat();
78
81
  dis.getFloat(); // occupiedCellCount
79
82
  dis.getFloat(); // stdDev
80
83
  dis.getFloat(); // percent95
@@ -89,7 +92,7 @@ class MatrixZoomData {
89
92
  const size = dis.getInt();
90
93
  blockIndex[blockNumber] = { filePosition, size };
91
94
  }
92
- return new MatrixZoomData(chr1, chr2, { index: zoomIndex, unit, binSize }, blockBinCount, blockColumnCount, blockIndex);
95
+ return new MatrixZoomData(chr1, chr2, { index: zoomIndex, unit, binSize }, sumCounts, blockBinCount, blockColumnCount, blockIndex);
93
96
  }
94
97
  }
95
98
  exports.default = MatrixZoomData;
@@ -1 +1 @@
1
- {"version":3,"file":"matrixZoomData.js","sourceRoot":"","sources":["../src/matrixZoomData.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"matrixZoomData.js","sourceRoot":"","sources":["../src/matrixZoomData.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -56,6 +56,22 @@ export interface BlockIndexEntry {
56
56
  filePosition: number;
57
57
  size: number;
58
58
  }
59
+ /**
60
+ * The expected contact count for one region pair, the denominator of
61
+ * observed/expected. Within a chromosome it depends only on the distance in
62
+ * bins, so it is the expected-value vector's entries over the distances the
63
+ * pair spans: `values[|bin2 - bin1| - firstDistance]`, already divided by the
64
+ * chromosome's scale factor and holding the vector's last value past its end.
65
+ * Between chromosomes it is one number, the map's average contact.
66
+ */
67
+ export type ExpectedValues = {
68
+ kind: 'intra';
69
+ firstDistance: number;
70
+ values: Float64Array;
71
+ } | {
72
+ kind: 'inter';
73
+ average: number;
74
+ };
59
75
  export interface HicMetadata {
60
76
  version: number;
61
77
  genome: string;