@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 +24 -2
- package/dist/hicFile.js +142 -48
- package/dist/hicFile.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/matrix.d.ts +2 -0
- package/dist/matrix.js +4 -0
- package/dist/matrix.js.map +1 -1
- package/dist/matrixZoomData.d.ts +3 -1
- package/dist/matrixZoomData.js +6 -3
- package/dist/matrixZoomData.js.map +1 -1
- package/dist/types.d.ts +16 -0
- package/esm/hicFile.d.ts +24 -2
- package/esm/hicFile.js +142 -48
- package/esm/hicFile.js.map +1 -1
- package/esm/index.d.ts +1 -1
- package/esm/matrix.d.ts +2 -0
- package/esm/matrix.js +4 -0
- package/esm/matrix.js.map +1 -1
- package/esm/matrixZoomData.d.ts +3 -1
- package/esm/matrixZoomData.js +6 -3
- package/esm/matrixZoomData.js.map +1 -1
- package/esm/types.d.ts +16 -0
- package/package.json +1 -1
- package/src/hicFile.ts +225 -57
- package/src/index.ts +1 -0
- package/src/matrix.ts +5 -0
- package/src/matrixZoomData.ts +6 -1
- package/src/types.ts +12 -0
package/esm/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
|
-
|
|
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/esm/hicFile.js
CHANGED
|
@@ -18,6 +18,18 @@ const Short_MIN_VALUE = -32768;
|
|
|
18
18
|
const DOUBLE = 8;
|
|
19
19
|
const FLOAT = 4;
|
|
20
20
|
const INT = 4;
|
|
21
|
+
function getExpectedKey(type, unit, binSize) {
|
|
22
|
+
return `${type}_${unit}_${binSize}`;
|
|
23
|
+
}
|
|
24
|
+
// The range of `|bin2 - bin1|` over two half-open bin windows.
|
|
25
|
+
function distanceRange([x1, x2], [y1, y2]) {
|
|
26
|
+
const overlap = x1 < y2 && y1 < x2;
|
|
27
|
+
const nearest = overlap
|
|
28
|
+
? 0
|
|
29
|
+
: Math.min(Math.abs(y1 - (x2 - 1)), Math.abs(x1 - (y2 - 1)));
|
|
30
|
+
const farthest = Math.max(Math.abs(y2 - 1 - x1), Math.abs(x2 - 1 - y1));
|
|
31
|
+
return [nearest, farthest];
|
|
32
|
+
}
|
|
21
33
|
/**
|
|
22
34
|
* Copy a partially-filled decode buffer down to its true length, or hand it
|
|
23
35
|
* back untouched when the filter dropped nothing. A `subarray` would be free
|
|
@@ -106,6 +118,9 @@ export class HicFile {
|
|
|
106
118
|
// it has aborted, and drops a rejection so the next caller retries.
|
|
107
119
|
headerCache = new SharedReadCache();
|
|
108
120
|
normVectorIndexCache = new SharedReadCache();
|
|
121
|
+
// 'raw' and 'normalized', each walked once: the sections carry no index, so
|
|
122
|
+
// a chunk's position is known only by walking every chunk before it.
|
|
123
|
+
expectedSectionCache = new SharedReadCache();
|
|
109
124
|
normVectorCache = new SharedReadCache({ maxSize: NORM_VECTOR_CACHE_SIZE });
|
|
110
125
|
matrixCache = new SharedReadCache({
|
|
111
126
|
maxSize: MATRIX_CACHE_SIZE,
|
|
@@ -118,6 +133,8 @@ export class HicFile {
|
|
|
118
133
|
version = 0;
|
|
119
134
|
genomeId = '';
|
|
120
135
|
footerPosition = 0;
|
|
136
|
+
// Where the raw (NONE) expected values begin, right after the master index.
|
|
137
|
+
expectedValuesPosition = 0;
|
|
121
138
|
// Where the file's normalization data begins, and so also where a file
|
|
122
139
|
// carrying none of it ends. Public so a test can cut a real file there to
|
|
123
140
|
// make that second shape.
|
|
@@ -170,7 +187,7 @@ export class HicFile {
|
|
|
170
187
|
throw new Error(`Unsupported hic version: ${version}`);
|
|
171
188
|
}
|
|
172
189
|
const footerPosition = binaryParser.getLong();
|
|
173
|
-
const { masterIndex, normExpectedValueVectorsPosition } = await this.readFooter(version, footerPosition, signal);
|
|
190
|
+
const { masterIndex, expectedValuesPosition, normExpectedValueVectorsPosition, } = await this.readFooter(version, footerPosition, signal);
|
|
174
191
|
const bodyPosition = Object.values(masterIndex).reduce((min, entry) => Math.min(min, entry.start), Number.MAX_VALUE);
|
|
175
192
|
data = await this.file.read(16, bodyPosition - 16, { signal });
|
|
176
193
|
binaryParser = new BinaryParser(new DataView(data));
|
|
@@ -208,6 +225,7 @@ export class HicFile {
|
|
|
208
225
|
throwIfAborted(signal);
|
|
209
226
|
this.version = version;
|
|
210
227
|
this.footerPosition = footerPosition;
|
|
228
|
+
this.expectedValuesPosition = expectedValuesPosition;
|
|
211
229
|
this.masterIndex = masterIndex;
|
|
212
230
|
this.normExpectedValueVectorsPosition = normExpectedValueVectorsPosition;
|
|
213
231
|
this.genomeId = genomeId;
|
|
@@ -242,9 +260,14 @@ export class HicFile {
|
|
|
242
260
|
const size = binaryParser.getInt();
|
|
243
261
|
masterIndex[key] = { start: pos, size };
|
|
244
262
|
}
|
|
263
|
+
const expectedValuesPosition = footerPosition + skip + binaryParser.position;
|
|
245
264
|
// Normalized expected values start after the expected values
|
|
246
265
|
const normExpectedValueVectorsPosition = version > 5 ? footerPosition + (version < 9 ? 4 : 8) + nBytes : undefined;
|
|
247
|
-
return {
|
|
266
|
+
return {
|
|
267
|
+
masterIndex,
|
|
268
|
+
expectedValuesPosition,
|
|
269
|
+
normExpectedValueVectorsPosition,
|
|
270
|
+
};
|
|
248
271
|
}
|
|
249
272
|
async getMatrix(chrIdx1, chrIdx2, opts) {
|
|
250
273
|
await this.init(opts);
|
|
@@ -672,7 +695,7 @@ export class HicFile {
|
|
|
672
695
|
const { signal } = opts;
|
|
673
696
|
let index;
|
|
674
697
|
if (this.normExpectedValueVectorsPosition !== undefined) {
|
|
675
|
-
const nviStart = await this.
|
|
698
|
+
const nviStart = (await this.getExpectedSection('normalized', opts)).end;
|
|
676
699
|
const data = await this.file.read(nviStart, INT, { signal });
|
|
677
700
|
// Possible if there are no norm vectors. A legal v8 file, though uncommon.
|
|
678
701
|
if (data.byteLength !== 0) {
|
|
@@ -699,64 +722,135 @@ export class HicFile {
|
|
|
699
722
|
}
|
|
700
723
|
return index;
|
|
701
724
|
}
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
725
|
+
/**
|
|
726
|
+
* The expected count for a region pair at `binsize`, the denominator of
|
|
727
|
+
* observed/expected, as straw computes it. `normalization` must be the one
|
|
728
|
+
* the pair's records carry (`getContactRecords`' `appliedNormalization`),
|
|
729
|
+
* since each normalization has its own vector. Undefined where the file has
|
|
730
|
+
* no expected value for it: no vector at this binsize, or a version 5 file
|
|
731
|
+
* asked for a normalized one.
|
|
732
|
+
*
|
|
733
|
+
* Within a chromosome the vector is read for only the distances the pair
|
|
734
|
+
* spans. Between chromosomes straw divides by the map's average contact, the
|
|
735
|
+
* raw `sumCounts` over its bins, whatever the normalization.
|
|
736
|
+
*/
|
|
737
|
+
async getExpectedValues(normalization, region1, region2, binsize, opts) {
|
|
738
|
+
await this.init(opts);
|
|
739
|
+
const idx1 = this.chromosomeIndexMap.get(region1.chr);
|
|
740
|
+
const idx2 = this.chromosomeIndexMap.get(region2.chr);
|
|
741
|
+
if (idx1 === undefined || idx2 === undefined) {
|
|
742
|
+
return undefined;
|
|
743
|
+
}
|
|
744
|
+
if (idx1 !== idx2) {
|
|
745
|
+
const matrix = await this.getMatrix(idx1, idx2, opts);
|
|
746
|
+
const zd = matrix?.getZoomData(binsize);
|
|
747
|
+
if (!zd) {
|
|
748
|
+
return undefined;
|
|
749
|
+
}
|
|
750
|
+
// straw's bin counts leave out a chromosome's partial last bin
|
|
751
|
+
const nBins1 = Math.max(1, Math.floor(this.chromosomes[idx1].size / binsize));
|
|
752
|
+
const nBins2 = Math.max(1, Math.floor(this.chromosomes[idx2].size / binsize));
|
|
753
|
+
return { kind: 'inter', average: zd.sumCounts / nBins1 / nBins2 };
|
|
754
|
+
}
|
|
755
|
+
const normalized = !!normalization && normalization !== 'NONE';
|
|
756
|
+
if (normalized && this.normExpectedValueVectorsPosition === undefined) {
|
|
757
|
+
return undefined;
|
|
758
|
+
}
|
|
759
|
+
const section = await this.getExpectedSection(normalized ? 'normalized' : 'raw', opts ?? {});
|
|
760
|
+
const chunk = section.chunks.get(getExpectedKey(normalized ? normalization : 'NONE', 'BP', binsize));
|
|
761
|
+
if (!chunk || chunk.nValues === 0) {
|
|
762
|
+
return undefined;
|
|
763
|
+
}
|
|
764
|
+
const [first, last] = distanceRange(binWindow(region1, binsize), binWindow(region2, binsize));
|
|
765
|
+
const signalOpts = { signal: opts?.signal };
|
|
766
|
+
const stored = await chunk.vector.getValues(first, last + 1, signalOpts);
|
|
767
|
+
const tail = stored.length < last + 1 - first
|
|
768
|
+
? (await chunk.vector.getValues(chunk.nValues - 1, chunk.nValues, signalOpts))[0]
|
|
769
|
+
: 0;
|
|
770
|
+
// straw divides by 1 where the section names no factor for the chromosome
|
|
771
|
+
const factor = chunk.chrScaleFactors.get(idx1) ?? 1;
|
|
772
|
+
const values = new Float64Array(last + 1 - first);
|
|
773
|
+
for (let i = 0; i < values.length; i++) {
|
|
774
|
+
values[i] = (i < stored.length ? stored[i] : tail) / factor;
|
|
775
|
+
}
|
|
776
|
+
return { kind: 'intra', firstDistance: first, values };
|
|
777
|
+
}
|
|
778
|
+
/**
|
|
779
|
+
* The library's total contact count, the `ALL` whole-genome map's
|
|
780
|
+
* `sumCounts`: what scales two libraries of different depth against each
|
|
781
|
+
* other. Undefined for a file with no `ALL` map.
|
|
782
|
+
*/
|
|
783
|
+
async getTotalContacts(opts) {
|
|
784
|
+
await this.init(opts);
|
|
785
|
+
const all = this.chromosomes.find(chr => chr.name.toUpperCase() === 'ALL');
|
|
786
|
+
const zd = all
|
|
787
|
+
? (await this.getMatrix(all.index, all.index, opts))?.getZoomLevels()[0]
|
|
788
|
+
: undefined;
|
|
789
|
+
return zd?.sumCounts;
|
|
790
|
+
}
|
|
791
|
+
async getExpectedSection(section, opts) {
|
|
792
|
+
return this.expectedSectionCache.get(section, opts.signal, signal => this.walkExpectedSection(section === 'raw'
|
|
793
|
+
? this.expectedValuesPosition
|
|
794
|
+
: this.normExpectedValueVectorsPosition, section === 'normalized', { signal, onProgress: opts.onProgress }));
|
|
795
|
+
}
|
|
796
|
+
// Walk one expected-value section, recording where each chunk's values sit
|
|
797
|
+
// and its chromosome scale factors. The normalized section's end is also
|
|
798
|
+
// where a pre-v9 file's normalization vector index begins.
|
|
799
|
+
//
|
|
800
|
+
// A chunk's two reads land a whole expected-value vector apart — one per bin
|
|
801
|
+
// of the genome's longest chromosome, so megabytes at a fine binsize — which
|
|
802
|
+
// is further than the buffer reaches. On a remote file that is two round
|
|
803
|
+
// trips per chunk that nothing can merge, and it is why this walk, not the
|
|
804
|
+
// index it leads to, is the slow part of opening a pre-v9 file. It is also
|
|
805
|
+
// why the chunk is the unit worth counting: known before the first read, each
|
|
806
|
+
// costing about the same. Chunks are walked in order, since each one's size
|
|
807
|
+
// is known only once the one before it has been parsed.
|
|
808
|
+
async walkExpectedSection(start, normalized, opts) {
|
|
705
809
|
const { signal, onProgress } = opts;
|
|
706
810
|
const version = this.version;
|
|
811
|
+
const valueSize = version < 9 ? DOUBLE : FLOAT;
|
|
707
812
|
const file = new BufferedFile({ file: this.file, size: 256000 });
|
|
813
|
+
const chunks = new Map();
|
|
708
814
|
const data = await file.read(start, INT, { signal });
|
|
709
|
-
// A file with no normalization at all ends where
|
|
710
|
-
// so the count this is about to read is past EOF.
|
|
711
|
-
//
|
|
712
|
-
//
|
|
713
|
-
//
|
|
714
|
-
// discovery path, and that path starts by skipping a section that isn't
|
|
715
|
-
// there. Answering `start` leaves the caller's guard to do the rest.
|
|
815
|
+
// A file with no normalization at all ends where the normalized section
|
|
816
|
+
// would start, so the count this is about to read is past EOF. A v9 file
|
|
817
|
+
// that records no norm-vector-index position takes the v8 discovery path,
|
|
818
|
+
// which starts by walking a section that isn't there, so the empty answer
|
|
819
|
+
// has to come from here.
|
|
716
820
|
if (data.byteLength < INT) {
|
|
717
|
-
return start;
|
|
821
|
+
return { chunks, end: start };
|
|
718
822
|
}
|
|
719
|
-
const
|
|
720
|
-
const nEntries = binaryParser.getInt(); // Total # of expected value chunks
|
|
721
|
-
// Skip one chunk, answering where the next one starts.
|
|
722
|
-
//
|
|
723
|
-
// Its two reads land a whole expected-value vector apart — one per bin of
|
|
724
|
-
// the genome, so tens of MB at a fine binsize — which is further than the
|
|
725
|
-
// buffer reaches. On a remote file that is two round trips per chunk that
|
|
726
|
-
// nothing can merge, and it is why this walk, not the index it is looking
|
|
727
|
-
// for, is the slow part of opening a pre-v9 file. It is also why the chunk
|
|
728
|
-
// is the unit worth counting: `nEntries` of them, known before the first
|
|
729
|
-
// read, each costing about the same.
|
|
730
|
-
const skipChunk = async (chunkStart) => {
|
|
731
|
-
let chunkSize = 0;
|
|
732
|
-
let buf = await file.read(chunkStart, 500, { signal });
|
|
733
|
-
let parser = new BinaryParser(new DataView(buf));
|
|
734
|
-
parser.getString(); // type
|
|
735
|
-
parser.getString(); // unit
|
|
736
|
-
parser.getInt(); // binSize
|
|
737
|
-
const nValues = version < 9 ? parser.getInt() : parser.getLong();
|
|
738
|
-
chunkSize += parser.position + nValues * (version < 9 ? DOUBLE : FLOAT);
|
|
739
|
-
buf = await file.read(chunkStart + chunkSize, INT, { signal });
|
|
740
|
-
parser = new BinaryParser(new DataView(buf));
|
|
741
|
-
const nChrScaleFactors = parser.getInt();
|
|
742
|
-
chunkSize +=
|
|
743
|
-
INT + nChrScaleFactors * (INT + (version < 9 ? DOUBLE : FLOAT));
|
|
744
|
-
return chunkStart + chunkSize;
|
|
745
|
-
};
|
|
746
|
-
// A loop rather than the tail recursion this was, because the position is
|
|
747
|
-
// the only thing carried between chunks and a counter now rides along with
|
|
748
|
-
// it. Chunks must be walked in order — each one's size is only known once
|
|
749
|
-
// the one before it has been parsed — so the awaits are sequential by
|
|
750
|
-
// nature, not by oversight.
|
|
823
|
+
const nEntries = new BinaryParser(new DataView(data)).getInt();
|
|
751
824
|
if (nEntries > 0) {
|
|
752
825
|
onProgress?.(0, nEntries);
|
|
753
826
|
}
|
|
754
827
|
let position = start + INT;
|
|
755
828
|
for (let done = 0; done < nEntries; done++) {
|
|
756
|
-
|
|
829
|
+
let parser = new BinaryParser(new DataView(await file.read(position, 500, { signal })));
|
|
830
|
+
const type = normalized ? parser.getString() : 'NONE';
|
|
831
|
+
const unit = parser.getString();
|
|
832
|
+
const binSize = parser.getInt();
|
|
833
|
+
const nValues = version < 9 ? parser.getInt() : parser.getLong();
|
|
834
|
+
const valuesPosition = position + parser.position;
|
|
835
|
+
const factorsPosition = valuesPosition + nValues * valueSize;
|
|
836
|
+
parser = new BinaryParser(new DataView(await file.read(factorsPosition, INT, { signal })));
|
|
837
|
+
const nFactors = parser.getInt();
|
|
838
|
+
const factorBytes = nFactors * (INT + valueSize);
|
|
839
|
+
parser = new BinaryParser(new DataView(await file.read(factorsPosition + INT, factorBytes, { signal })));
|
|
840
|
+
const chrScaleFactors = new Map();
|
|
841
|
+
for (let i = 0; i < nFactors; i++) {
|
|
842
|
+
const chrIdx = parser.getInt();
|
|
843
|
+
chrScaleFactors.set(chrIdx, version < 9 ? parser.getDouble() : parser.getFloat());
|
|
844
|
+
}
|
|
845
|
+
chunks.set(getExpectedKey(type, unit, binSize), {
|
|
846
|
+
vector: new NormalizationVector(this.file, valuesPosition, nValues, valueSize),
|
|
847
|
+
nValues,
|
|
848
|
+
chrScaleFactors,
|
|
849
|
+
});
|
|
850
|
+
position = factorsPosition + INT + factorBytes;
|
|
757
851
|
onProgress?.(done + 1, nEntries);
|
|
758
852
|
}
|
|
759
|
-
return position;
|
|
853
|
+
return { chunks, end: position };
|
|
760
854
|
}
|
|
761
855
|
parseNormVectorEntry(binaryParser, index) {
|
|
762
856
|
const type = binaryParser.getString(); // 15
|
package/esm/hicFile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hicFile.js","sourceRoot":"","sources":["../src/hicFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,YAAY,MAAM,aAAa,CAAA;AACtC,OAAO,YAAY,MAAM,mBAAmB,CAAA;AAC5C,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,mBAAmB,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAelD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,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;AA8Cb;;;;;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,MAAM,OAAO,OAAO;IACV,GAAG,CAAoB;IACvB,IAAI,CAAQ;IAEpB,gEAAgE;IAChE,uEAAuE;IACvE,6EAA6E;IAC7E,2EAA2E;IAC3E,4EAA4E;IAC5E,oEAAoE;IAC5D,WAAW,GAAG,IAAI,eAAe,EAAgB,CAAA;IACjD,oBAAoB,GAAG,IAAI,eAAe,EAG/C,CAAA;IACK,eAAe,GAAG,IAAI,eAAe,CAG3C,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAA;IAC9B,WAAW,GAAG,IAAI,eAAe,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,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,eAAe,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,oBAAoB,CAAC,UAAU,CAAC,CAAA;QAC9C,CAAC;aAAM,IAAI,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC,IAAI,SAAS,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,YAAY,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,EAAE,WAAW,EAAE,gCAAgC,EAAE,GACrD,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,CAAA;QAExD,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,YAAY,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,cAAc,CAAC,MAAM,CAAC,CAAA;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,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,YAAY,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,YAAY,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,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,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAA;IAC1D,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,MAAM,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,MAAM,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,MAAM,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,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;QACvC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,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,cAAc,CAAC,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,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;QAC9C,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,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,sBAAsB,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,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YAC5B,yEAAyE;YACzE,0EAA0E;YAC1E,oEAAoE;YACpE,kEAAkE;YAClE,oCAAoC;YACpC,MAAM,KAAK,GAAG,MAAM,qBAAqB,CACvC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CACjC,CAAA;YACD,MAAM,MAAM,GAAG,IAAI,YAAY,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,YAAY,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,mBAAmB,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,cAAc,CAAC,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,YAAY,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,MAAM,IAAI,CAAC,kBAAkB,CAC5C,IAAI,CAAC,gCAAgC,EACrC,IAAI,CACL,CAAA;YACD,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,YAAY,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,YAAY,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,YAAY,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;oBAC9C,CAAC;oBACD,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;gBAC1C,CAAC;gBACD,cAAc,CAAC,MAAM,CAAC,CAAA;gBACtB,KAAK,GAAG,KAAK,CAAA;YACf,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,uEAAuE;IACvE,gDAAgD;IACxC,KAAK,CAAC,kBAAkB,CAAC,KAAa,EAAE,IAAgB;QAC9D,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAA;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC5B,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;QAChE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;QACpD,2EAA2E;QAC3E,4EAA4E;QAC5E,0EAA0E;QAC1E,uEAAuE;QACvE,oEAAoE;QACpE,wEAAwE;QACxE,qEAAqE;QACrE,IAAI,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAA;QACd,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QACzD,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,EAAE,CAAA,CAAC,mCAAmC;QAE1E,uDAAuD;QACvD,EAAE;QACF,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QAC1E,2EAA2E;QAC3E,yEAAyE;QACzE,qCAAqC;QACrC,MAAM,SAAS,GAAG,KAAK,EAAE,UAAkB,EAAE,EAAE;YAC7C,IAAI,SAAS,GAAG,CAAC,CAAA;YAEjB,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;YACtD,IAAI,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;YAChD,MAAM,CAAC,SAAS,EAAE,CAAA,CAAC,OAAO;YAC1B,MAAM,CAAC,SAAS,EAAE,CAAA,CAAC,OAAO;YAC1B,MAAM,CAAC,MAAM,EAAE,CAAA,CAAC,UAAU;YAC1B,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;YAChE,SAAS,IAAI,MAAM,CAAC,QAAQ,GAAG,OAAO,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YAEvE,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,SAAS,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;YAC9D,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;YAC5C,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;YACxC,SAAS;gBACP,GAAG,GAAG,gBAAgB,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;YAEjE,OAAO,UAAU,GAAG,SAAS,CAAA;QAC/B,CAAC,CAAA;QAED,0EAA0E;QAC1E,2EAA2E;QAC3E,0EAA0E;QAC1E,sEAAsE;QACtE,4BAA4B;QAC5B,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,QAAQ,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAA;YACpC,UAAU,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAA;QAClC,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,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"}
|
|
1
|
+
{"version":3,"file":"hicFile.js","sourceRoot":"","sources":["../src/hicFile.ts"],"names":[],"mappings":"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"}
|
package/esm/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/esm/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/esm/matrix.js
CHANGED
|
@@ -8,6 +8,10 @@ export default class Matrix {
|
|
|
8
8
|
constructor(zoomDataList) {
|
|
9
9
|
this.bpZoomData = zoomDataList.filter(zd => zd.zoom.unit === 'BP');
|
|
10
10
|
}
|
|
11
|
+
/** The BP zoom levels this matrix holds, finest last as the file lists them. */
|
|
12
|
+
getZoomLevels() {
|
|
13
|
+
return this.bpZoomData;
|
|
14
|
+
}
|
|
11
15
|
// Fetch zoom data by bin size. If no matching level exists return undefined.
|
|
12
16
|
getZoomData(binSize) {
|
|
13
17
|
return this.bpZoomData.find(zd => binSize === zd.zoom.binSize);
|
package/esm/matrix.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matrix.js","sourceRoot":"","sources":["../src/matrix.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAA;AACtC,OAAO,cAAc,MAAM,qBAAqB,CAAA;AAIhD,MAAM,CAAC,OAAO,OAAO,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,YAAY,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,cAAc,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;QAClE,CAAC;QACD,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"matrix.js","sourceRoot":"","sources":["../src/matrix.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAA;AACtC,OAAO,cAAc,MAAM,qBAAqB,CAAA;AAIhD,MAAM,CAAC,OAAO,OAAO,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,YAAY,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,cAAc,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;QAClE,CAAC;QACD,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC;CACF"}
|
package/esm/matrixZoomData.d.ts
CHANGED
|
@@ -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;
|
package/esm/matrixZoomData.js
CHANGED
|
@@ -3,13 +3,16 @@ export default class MatrixZoomData {
|
|
|
3
3
|
chr1;
|
|
4
4
|
chr2;
|
|
5
5
|
zoom;
|
|
6
|
+
/** the raw contacts summed over the whole map at this binsize */
|
|
7
|
+
sumCounts;
|
|
6
8
|
blockBinCount;
|
|
7
9
|
blockColumnCount;
|
|
8
10
|
blockIndex;
|
|
9
|
-
constructor(chr1, chr2, zoom, blockBinCount, blockColumnCount, blockIndex) {
|
|
11
|
+
constructor(chr1, chr2, zoom, sumCounts, blockBinCount, blockColumnCount, blockIndex) {
|
|
10
12
|
this.chr1 = chr1;
|
|
11
13
|
this.chr2 = chr2;
|
|
12
14
|
this.zoom = zoom;
|
|
15
|
+
this.sumCounts = sumCounts;
|
|
13
16
|
this.blockBinCount = blockBinCount;
|
|
14
17
|
this.blockColumnCount = blockColumnCount;
|
|
15
18
|
this.blockIndex = blockIndex;
|
|
@@ -72,7 +75,7 @@ export default class MatrixZoomData {
|
|
|
72
75
|
static parseMatrixZoomData(chr1, chr2, dis) {
|
|
73
76
|
const unit = dis.getString();
|
|
74
77
|
const zoomIndex = dis.getInt();
|
|
75
|
-
dis.getFloat();
|
|
78
|
+
const sumCounts = dis.getFloat();
|
|
76
79
|
dis.getFloat(); // occupiedCellCount
|
|
77
80
|
dis.getFloat(); // stdDev
|
|
78
81
|
dis.getFloat(); // percent95
|
|
@@ -87,7 +90,7 @@ export default class MatrixZoomData {
|
|
|
87
90
|
const size = dis.getInt();
|
|
88
91
|
blockIndex[blockNumber] = { filePosition, size };
|
|
89
92
|
}
|
|
90
|
-
return new MatrixZoomData(chr1, chr2, { index: zoomIndex, unit, binSize }, blockBinCount, blockColumnCount, blockIndex);
|
|
93
|
+
return new MatrixZoomData(chr1, chr2, { index: zoomIndex, unit, binSize }, sumCounts, blockBinCount, blockColumnCount, blockIndex);
|
|
91
94
|
}
|
|
92
95
|
}
|
|
93
96
|
//# sourceMappingURL=matrixZoomData.js.map
|
|
@@ -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/esm/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;
|