@gmod/bam 1.1.18 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/CHANGELOG.md +61 -25
  2. package/README.md +95 -57
  3. package/dist/bai.d.ts +34 -15
  4. package/dist/bai.js +87 -91
  5. package/dist/bai.js.map +1 -1
  6. package/dist/bamFile.d.ts +33 -27
  7. package/dist/bamFile.js +127 -121
  8. package/dist/bamFile.js.map +1 -1
  9. package/dist/chunk.d.ts +4 -8
  10. package/dist/chunk.js +2 -8
  11. package/dist/chunk.js.map +1 -1
  12. package/dist/csi.d.ts +74 -10
  13. package/dist/csi.js +78 -90
  14. package/dist/csi.js.map +1 -1
  15. package/dist/htsget.d.ts +5 -8
  16. package/dist/htsget.js +72 -47
  17. package/dist/htsget.js.map +1 -1
  18. package/dist/index.d.ts +5 -6
  19. package/dist/index.js +11 -11
  20. package/dist/index.js.map +1 -1
  21. package/dist/indexFile.d.ts +0 -6
  22. package/dist/indexFile.js +0 -35
  23. package/dist/indexFile.js.map +1 -1
  24. package/dist/nullIndex.d.ts +7 -0
  25. package/dist/nullIndex.js +33 -0
  26. package/dist/nullIndex.js.map +1 -0
  27. package/dist/record.d.ts +2 -2
  28. package/dist/record.js +34 -24
  29. package/dist/record.js.map +1 -1
  30. package/dist/sam.js +9 -7
  31. package/dist/sam.js.map +1 -1
  32. package/dist/util.d.ts +13 -1
  33. package/dist/util.js +47 -15
  34. package/dist/util.js.map +1 -1
  35. package/esm/bai.d.ts +34 -15
  36. package/esm/bai.js +86 -91
  37. package/esm/bai.js.map +1 -1
  38. package/esm/bamFile.d.ts +33 -27
  39. package/esm/bamFile.js +124 -120
  40. package/esm/bamFile.js.map +1 -1
  41. package/esm/chunk.d.ts +4 -8
  42. package/esm/chunk.js +2 -8
  43. package/esm/chunk.js.map +1 -1
  44. package/esm/csi.d.ts +74 -10
  45. package/esm/csi.js +85 -93
  46. package/esm/csi.js.map +1 -1
  47. package/esm/htsget.d.ts +5 -8
  48. package/esm/htsget.js +68 -43
  49. package/esm/htsget.js.map +1 -1
  50. package/esm/index.d.ts +5 -6
  51. package/esm/index.js +5 -6
  52. package/esm/index.js.map +1 -1
  53. package/esm/indexFile.d.ts +0 -6
  54. package/esm/indexFile.js +0 -22
  55. package/esm/indexFile.js.map +1 -1
  56. package/esm/nullIndex.d.ts +7 -0
  57. package/esm/nullIndex.js +16 -0
  58. package/esm/nullIndex.js.map +1 -0
  59. package/esm/record.d.ts +2 -2
  60. package/esm/record.js +34 -24
  61. package/esm/record.js.map +1 -1
  62. package/esm/sam.js +9 -7
  63. package/esm/sam.js.map +1 -1
  64. package/esm/util.d.ts +13 -1
  65. package/esm/util.js +40 -14
  66. package/esm/util.js.map +1 -1
  67. package/package.json +16 -17
  68. package/src/bai.ts +99 -102
  69. package/src/bamFile.ts +174 -198
  70. package/src/chunk.ts +6 -20
  71. package/src/csi.ts +102 -111
  72. package/src/htsget.ts +81 -61
  73. package/src/index.ts +5 -7
  74. package/src/indexFile.ts +0 -27
  75. package/src/nullIndex.ts +18 -0
  76. package/src/record.ts +34 -24
  77. package/src/sam.ts +9 -7
  78. package/src/util.ts +54 -13
  79. package/src/declare.d.ts +0 -2
package/esm/bamFile.js CHANGED
@@ -1,49 +1,52 @@
1
+ import { Buffer } from 'buffer';
1
2
  import crc32 from 'buffer-crc32';
2
3
  import { unzip, unzipChunkSlice } from '@gmod/bgzf-filehandle';
3
- import entries from 'object.entries-ponyfill';
4
4
  import { LocalFile, RemoteFile } from 'generic-filehandle';
5
5
  import AbortablePromiseCache from 'abortable-promise-cache';
6
6
  import QuickLRU from 'quick-lru';
7
- //locals
7
+ // locals
8
8
  import BAI from './bai';
9
9
  import CSI from './csi';
10
10
  import BAMFeature from './record';
11
11
  import { parseHeaderText } from './sam';
12
- import { abortBreakPoint, checkAbortSignal, timeout, makeOpts, } from './util';
12
+ import { checkAbortSignal, timeout, makeOpts } from './util';
13
13
  export const BAM_MAGIC = 21840194;
14
14
  const blockLen = 1 << 16;
15
- function flat(arr) {
16
- return [].concat(...arr);
17
- }
18
15
  async function gen2array(gen) {
19
- const out = [];
16
+ let out = [];
20
17
  for await (const x of gen) {
21
- out.push(x);
18
+ out = out.concat(x);
22
19
  }
23
20
  return out;
24
21
  }
22
+ class NullFilehandle {
23
+ read() {
24
+ throw new Error('never called');
25
+ }
26
+ stat() {
27
+ throw new Error('never called');
28
+ }
29
+ readFile() {
30
+ throw new Error('never called');
31
+ }
32
+ close() {
33
+ throw new Error('never called');
34
+ }
35
+ }
25
36
  export default class BamFile {
26
- /**
27
- * @param {object} args
28
- * @param {string} [args.bamPath]
29
- * @param {FileHandle} [args.bamFilehandle]
30
- * @param {string} [args.baiPath]
31
- * @param {FileHandle} [args.baiFilehandle]
32
- */
33
- constructor({ bamFilehandle, bamPath, bamUrl, baiPath, baiFilehandle, baiUrl, csiPath, csiFilehandle, csiUrl, fetchSizeLimit, chunkSizeLimit, yieldThreadTime = 100, renameRefSeqs = n => n, }) {
37
+ constructor({ bamFilehandle, bamPath, bamUrl, baiPath, baiFilehandle, baiUrl, csiPath, csiFilehandle, csiUrl, htsget, yieldThreadTime = 100, renameRefSeqs = n => n, }) {
38
+ this.htsget = false;
34
39
  this.featureCache = new AbortablePromiseCache({
35
- //@ts-ignore
36
40
  cache: new QuickLRU({
37
41
  maxSize: 50,
38
42
  }),
39
- //@ts-ignore
40
- fill: async ({ chunk, opts }, signal) => {
43
+ fill: async (args, signal) => {
44
+ const { chunk, opts } = args;
41
45
  const { data, cpositions, dpositions } = await this._readChunk({
42
46
  chunk,
43
47
  opts: { ...opts, signal },
44
48
  });
45
- const feats = await this.readBamFeatures(data, cpositions, dpositions, chunk);
46
- return feats;
49
+ return this.readBamFeatures(data, cpositions, dpositions, chunk);
47
50
  },
48
51
  });
49
52
  this.renameRefSeq = renameRefSeqs;
@@ -56,6 +59,10 @@ export default class BamFile {
56
59
  else if (bamUrl) {
57
60
  this.bam = new RemoteFile(bamUrl);
58
61
  }
62
+ else if (htsget) {
63
+ this.htsget = true;
64
+ this.bam = new NullFilehandle();
65
+ }
59
66
  else {
60
67
  throw new Error('unable to initialize bam');
61
68
  }
@@ -83,33 +90,31 @@ export default class BamFile {
83
90
  else if (bamUrl) {
84
91
  this.index = new BAI({ filehandle: new RemoteFile(`${bamUrl}.bai`) });
85
92
  }
93
+ else if (htsget) {
94
+ this.htsget = true;
95
+ }
86
96
  else {
87
97
  throw new Error('unable to infer index format');
88
98
  }
89
- this.fetchSizeLimit = fetchSizeLimit || 500000000; // 500MB
90
- this.chunkSizeLimit = chunkSizeLimit || 300000000; // 300MB
91
99
  this.yieldThreadTime = yieldThreadTime;
92
100
  }
93
- async getHeader(origOpts = {}) {
101
+ async getHeaderPre(origOpts) {
94
102
  const opts = makeOpts(origOpts);
103
+ if (!this.index) {
104
+ return;
105
+ }
95
106
  const indexData = await this.index.parse(opts);
96
107
  const ret = indexData.firstDataLine
97
108
  ? indexData.firstDataLine.blockPosition + 65535
98
109
  : undefined;
99
110
  let buffer;
100
111
  if (ret) {
101
- const res = await this.bam.read(Buffer.alloc(ret + blockLen), 0, ret + blockLen, 0, opts);
102
- const { bytesRead } = res;
103
- ({ buffer } = res);
104
- if (!bytesRead) {
112
+ const s = ret + blockLen;
113
+ const res = await this.bam.read(Buffer.alloc(s), 0, s, 0, opts);
114
+ if (!res.bytesRead) {
105
115
  throw new Error('Error reading header');
106
116
  }
107
- if (bytesRead < ret) {
108
- buffer = buffer.subarray(0, bytesRead);
109
- }
110
- else {
111
- buffer = buffer.subarray(0, ret);
112
- }
117
+ buffer = res.buffer.subarray(0, Math.min(res.bytesRead, ret));
113
118
  }
114
119
  else {
115
120
  buffer = (await this.bam.readFile(opts));
@@ -125,13 +130,22 @@ export default class BamFile {
125
130
  this.indexToChr = indexToChr;
126
131
  return parseHeaderText(this.header);
127
132
  }
133
+ getHeader(opts) {
134
+ if (!this.headerP) {
135
+ this.headerP = this.getHeaderPre(opts).catch(e => {
136
+ this.headerP = undefined;
137
+ throw e;
138
+ });
139
+ }
140
+ return this.headerP;
141
+ }
128
142
  async getHeaderText(opts = {}) {
129
143
  await this.getHeader(opts);
130
144
  return this.header;
131
145
  }
132
146
  // the full length of the refseq block is not given in advance so this grabs
133
147
  // a chunk and doubles it if all refseqs haven't been processed
134
- async _readRefSeqs(start, refSeqBytes, opts = {}) {
148
+ async _readRefSeqs(start, refSeqBytes, opts) {
135
149
  if (start > refSeqBytes) {
136
150
  return this._readRefSeqs(start, refSeqBytes * 2, opts);
137
151
  }
@@ -159,54 +173,29 @@ export default class BamFile {
159
173
  }
160
174
  return { chrToIndex, indexToChr };
161
175
  }
162
- async getRecordsForRange(chr, min, max, opts = {
163
- viewAsPairs: false,
164
- pairAcrossChr: false,
165
- maxInsertSize: 200000,
166
- }) {
167
- return flat(await gen2array(this.streamRecordsForRange(chr, min, max, opts)));
176
+ async getRecordsForRange(chr, min, max, opts) {
177
+ return gen2array(this.streamRecordsForRange(chr, min, max, opts));
168
178
  }
169
- async *streamRecordsForRange(chr, min, max, opts = {}) {
170
- const { signal } = opts;
171
- const chrId = this.chrToIndex && this.chrToIndex[chr];
172
- let chunks;
173
- if (!(chrId >= 0)) {
174
- chunks = [];
179
+ async *streamRecordsForRange(chr, min, max, opts) {
180
+ var _a;
181
+ await this.getHeader(opts);
182
+ const chrId = (_a = this.chrToIndex) === null || _a === void 0 ? void 0 : _a[chr];
183
+ if (chrId === undefined || !this.index) {
184
+ yield [];
175
185
  }
176
186
  else {
177
- chunks = await this.index.blocksForRange(chrId, min - 1, max, opts);
178
- if (!chunks) {
179
- throw new Error('Error in index fetch');
180
- }
181
- }
182
- for (let i = 0; i < chunks.length; i += 1) {
183
- await abortBreakPoint(signal);
184
- const size = chunks[i].fetchedSize();
185
- if (size > this.chunkSizeLimit) {
186
- throw new Error(`Too many BAM features. BAM chunk size ${size} bytes exceeds chunkSizeLimit of ${this.chunkSizeLimit}`);
187
- }
187
+ const chunks = await this.index.blocksForRange(chrId, min - 1, max, opts);
188
+ yield* this._fetchChunkFeatures(chunks, chrId, min, max, opts);
188
189
  }
189
- const totalSize = chunks
190
- .map(s => s.fetchedSize())
191
- .reduce((a, b) => a + b, 0);
192
- if (totalSize > this.fetchSizeLimit) {
193
- throw new Error(`data size of ${totalSize.toLocaleString()} bytes exceeded fetch size limit of ${this.fetchSizeLimit.toLocaleString()} bytes`);
194
- }
195
- yield* this._fetchChunkFeatures(chunks, chrId, min, max, opts);
196
190
  }
197
- async *_fetchChunkFeatures(chunks, chrId, min, max, opts) {
198
- const { viewAsPairs = false } = opts;
191
+ async *_fetchChunkFeatures(chunks, chrId, min, max, opts = {}) {
192
+ const { viewAsPairs } = opts;
199
193
  const feats = [];
200
194
  let done = false;
201
- for (let i = 0; i < chunks.length; i++) {
202
- const c = chunks[i];
203
- const records = (await this.featureCache.get(c.toString(), {
204
- chunk: c,
205
- opts,
206
- }, opts.signal));
195
+ for (const chunk of chunks) {
196
+ const records = await this.featureCache.get(chunk.toString(), { chunk, opts }, opts.signal);
207
197
  const recs = [];
208
- for (let i = 0; i < records.length; i += 1) {
209
- const feature = records[i];
198
+ for (const feature of records) {
210
199
  if (feature.seq_id() === chrId) {
211
200
  if (feature.get('start') >= max) {
212
201
  // past end of range, can stop iterating
@@ -231,35 +220,35 @@ export default class BamFile {
231
220
  }
232
221
  }
233
222
  async fetchPairs(chrId, feats, opts) {
234
- const { pairAcrossChr = false, maxInsertSize = 200000 } = opts;
223
+ const { pairAcrossChr, maxInsertSize = 200000 } = opts;
235
224
  const unmatedPairs = {};
236
225
  const readIds = {};
237
226
  feats.map(ret => {
238
227
  const readNames = {};
239
- for (let i = 0; i < ret.length; i++) {
240
- const name = ret[i].name();
241
- const id = ret[i].id();
228
+ for (const element of ret) {
229
+ const name = element.name();
230
+ const id = element.id();
242
231
  if (!readNames[name]) {
243
232
  readNames[name] = 0;
244
233
  }
245
234
  readNames[name]++;
246
235
  readIds[id] = 1;
247
236
  }
248
- entries(readNames).forEach(([k, v]) => {
237
+ for (const [k, v] of Object.entries(readNames)) {
249
238
  if (v === 1) {
250
239
  unmatedPairs[k] = true;
251
240
  }
252
- });
241
+ }
253
242
  });
254
243
  const matePromises = [];
255
244
  feats.map(ret => {
256
- for (let i = 0; i < ret.length; i++) {
257
- const f = ret[i];
245
+ for (const f of ret) {
258
246
  const name = f.name();
259
247
  const start = f.get('start');
260
248
  const pnext = f._next_pos();
261
249
  const rnext = f._next_refid();
262
- if (unmatedPairs[name] &&
250
+ if (this.index &&
251
+ unmatedPairs[name] &&
263
252
  (pairAcrossChr ||
264
253
  (rnext === chrId && Math.abs(start - pnext) < maxInsertSize))) {
265
254
  matePromises.push(this.index.blocksForRange(rnext, pnext, pnext + 1, opts));
@@ -268,36 +257,35 @@ export default class BamFile {
268
257
  });
269
258
  // filter out duplicate chunks (the blocks are lists of chunks, blocks are
270
259
  // concatenated, then filter dup chunks)
271
- const mateChunks = flat(await Promise.all(matePromises))
272
- .sort()
273
- .filter((item, pos, ary) => !pos || item.toString() !== ary[pos - 1].toString());
274
- const mateTotalSize = mateChunks
275
- .map(s => s.fetchedSize())
276
- .reduce((a, b) => a + b, 0);
277
- if (mateTotalSize > this.fetchSizeLimit) {
278
- throw new Error(`data size of ${mateTotalSize.toLocaleString()} bytes exceeded fetch size limit of ${this.fetchSizeLimit.toLocaleString()} bytes`);
260
+ const map = new Map();
261
+ const res = await Promise.all(matePromises);
262
+ for (const m of res.flat()) {
263
+ if (!map.has(m.toString())) {
264
+ map.set(m.toString(), m);
265
+ }
279
266
  }
280
- const mateFeatPromises = mateChunks.map(async (c) => {
267
+ const mateFeatPromises = await Promise.all([...map.values()].map(async (c) => {
281
268
  const { data, cpositions, dpositions, chunk } = await this._readChunk({
282
269
  chunk: c,
283
270
  opts,
284
271
  });
285
- const feats = await this.readBamFeatures(data, cpositions, dpositions, chunk);
286
272
  const mateRecs = [];
287
- for (let i = 0; i < feats.length; i += 1) {
288
- const feature = feats[i];
273
+ for (const feature of await this.readBamFeatures(data, cpositions, dpositions, chunk)) {
289
274
  if (unmatedPairs[feature.get('name')] && !readIds[feature.id()]) {
290
275
  mateRecs.push(feature);
291
276
  }
292
277
  }
293
278
  return mateRecs;
294
- });
295
- return flat(await Promise.all(mateFeatPromises));
279
+ }));
280
+ return mateFeatPromises.flat();
281
+ }
282
+ async _readRegion(position, size, opts = {}) {
283
+ const { bytesRead, buffer } = await this.bam.read(Buffer.alloc(size), 0, size, position, opts);
284
+ return buffer.subarray(0, Math.min(bytesRead, size));
296
285
  }
297
286
  async _readChunk({ chunk, opts }) {
298
- const size = chunk.fetchedSize();
299
- const { buffer, bytesRead } = await this.bam.read(Buffer.alloc(size), 0, size, chunk.minv.blockPosition, opts);
300
- const { buffer: data, cpositions, dpositions, } = await unzipChunkSlice(buffer.subarray(0, Math.min(bytesRead, size)), chunk);
287
+ const buffer = await this._readRegion(chunk.minv.blockPosition, chunk.fetchedSize(), opts);
288
+ const { buffer: data, cpositions, dpositions, } = await unzipChunkSlice(buffer, chunk);
301
289
  return { data, cpositions, dpositions, chunk };
302
290
  }
303
291
  async readBamFeatures(ba, cpositions, dpositions, chunk) {
@@ -321,23 +309,27 @@ export default class BamFile {
321
309
  start: blockStart,
322
310
  end: blockEnd,
323
311
  },
324
- // the below results in an automatically calculated file-offset based ID
325
- // if the info for that is available, otherwise crc32 of the features
312
+ // the below results in an automatically calculated file-offset based
313
+ // ID if the info for that is available, otherwise crc32 of the
314
+ // features
326
315
  //
327
- // cpositions[pos] refers to actual file offset of a bgzip block boundaries
316
+ // cpositions[pos] refers to actual file offset of a bgzip block
317
+ // boundaries
328
318
  //
329
- // we multiply by (1 <<8) in order to make sure each block has a "unique"
330
- // address space so that data in that block could never overlap
319
+ // we multiply by (1 <<8) in order to make sure each block has a
320
+ // "unique" address space so that data in that block could never
321
+ // overlap
331
322
  //
332
323
  // then the blockStart-dpositions is an uncompressed file offset from
333
- // that bgzip block boundary, and since the cpositions are multiplied by
334
- // (1 << 8) these uncompressed offsets get a unique space
324
+ // that bgzip block boundary, and since the cpositions are multiplied
325
+ // by (1 << 8) these uncompressed offsets get a unique space
335
326
  //
336
- // this has an extra chunk.minv.dataPosition added on because it blockStart
337
- // starts at 0 instead of chunk.minv.dataPosition
327
+ // this has an extra chunk.minv.dataPosition added on because it
328
+ // blockStart starts at 0 instead of chunk.minv.dataPosition
338
329
  //
339
- // the +1 is just to avoid any possible uniqueId 0 but this does not realistically happen
340
- fileOffset: cpositions
330
+ // the +1 is just to avoid any possible uniqueId 0 but this does not
331
+ // realistically happen
332
+ fileOffset: cpositions.length > 0
341
333
  ? cpositions[pos] * (1 << 8) +
342
334
  (blockStart - dpositions[pos]) +
343
335
  chunk.minv.dataPosition +
@@ -356,22 +348,34 @@ export default class BamFile {
356
348
  return sink;
357
349
  }
358
350
  async hasRefSeq(seqName) {
359
- const refId = this.chrToIndex && this.chrToIndex[seqName];
360
- return this.index.hasRefSeq(refId);
351
+ var _a, _b;
352
+ const seqId = (_a = this.chrToIndex) === null || _a === void 0 ? void 0 : _a[seqName];
353
+ return seqId === undefined ? false : (_b = this.index) === null || _b === void 0 ? void 0 : _b.hasRefSeq(seqId);
361
354
  }
362
355
  async lineCount(seqName) {
363
- const refId = this.chrToIndex && this.chrToIndex[seqName];
364
- return this.index.lineCount(refId);
356
+ var _a;
357
+ const seqId = (_a = this.chrToIndex) === null || _a === void 0 ? void 0 : _a[seqName];
358
+ return seqId === undefined || !this.index ? 0 : this.index.lineCount(seqId);
365
359
  }
366
360
  async indexCov(seqName, start, end) {
361
+ var _a;
362
+ if (!this.index) {
363
+ return [];
364
+ }
367
365
  await this.index.parse();
368
- const seqId = this.chrToIndex && this.chrToIndex[seqName];
369
- return this.index.indexCov(seqId, start, end);
366
+ const seqId = (_a = this.chrToIndex) === null || _a === void 0 ? void 0 : _a[seqName];
367
+ return seqId === undefined ? [] : this.index.indexCov(seqId, start, end);
370
368
  }
371
369
  async blocksForRange(seqName, start, end, opts) {
370
+ var _a;
371
+ if (!this.index) {
372
+ return [];
373
+ }
372
374
  await this.index.parse();
373
- const seqId = this.chrToIndex && this.chrToIndex[seqName];
374
- return this.index.blocksForRange(seqId, start, end, opts);
375
+ const seqId = (_a = this.chrToIndex) === null || _a === void 0 ? void 0 : _a[seqName];
376
+ return seqId === undefined
377
+ ? []
378
+ : this.index.blocksForRange(seqId, start, end, opts);
375
379
  }
376
380
  }
377
381
  //# sourceMappingURL=bamFile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bamFile.js","sourceRoot":"","sources":["../src/bamFile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,cAAc,CAAA;AAChC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,OAAO,MAAM,yBAAyB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAqB,MAAM,oBAAoB,CAAA;AAC7E,OAAO,qBAAqB,MAAM,yBAAyB,CAAA;AAC3D,OAAO,QAAQ,MAAM,WAAW,CAAA;AAChC,QAAQ;AACR,OAAO,GAAG,MAAM,OAAO,CAAA;AACvB,OAAO,GAAG,MAAM,OAAO,CAAA;AAEvB,OAAO,UAAU,MAAM,UAAU,CAAA;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,OAAO,EACP,QAAQ,GAGT,MAAM,QAAQ,CAAA;AAEf,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAA;AAEjC,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAA;AAExB,SAAS,IAAI,CAAI,GAAU;IACzB,OAAQ,EAAU,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA;AACnC,CAAC;AAED,KAAK,UAAU,SAAS,CAAI,GAAqB;IAC/C,MAAM,GAAG,GAAQ,EAAE,CAAA;IACnB,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,GAAG,EAAE;QACzB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KACZ;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,CAAC,OAAO,OAAO,OAAO;IAgC1B;;;;;;OAMG;IACH,YAAY,EACV,aAAa,EACb,OAAO,EACP,MAAM,EACN,OAAO,EACP,aAAa,EACb,MAAM,EACN,OAAO,EACP,aAAa,EACb,MAAM,EACN,cAAc,EACd,cAAc,EACd,eAAe,GAAG,GAAG,EACrB,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAevB;QAxDO,iBAAY,GAAG,IAAI,qBAAqB,CAAC;YAC/C,YAAY;YACZ,KAAK,EAAE,IAAI,QAAQ,CAAC;gBAClB,OAAO,EAAE,EAAE;aACZ,CAAC;YACF,YAAY;YACZ,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE;gBACtC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC;oBAC7D,KAAK;oBACL,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE;iBAC1B,CAAC,CAAA;gBACF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CACtC,IAAI,EACJ,UAAU,EACV,UAAU,EACV,KAAK,CACN,CAAA;gBACD,OAAO,KAAK,CAAA;YACd,CAAC;SACF,CAAC,CAAA;QAsCA,IAAI,CAAC,YAAY,GAAG,aAAa,CAAA;QAEjC,IAAI,aAAa,EAAE;YACjB,IAAI,CAAC,GAAG,GAAG,aAAa,CAAA;SACzB;aAAM,IAAI,OAAO,EAAE;YAClB,IAAI,CAAC,GAAG,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAA;SAClC;aAAM,IAAI,MAAM,EAAE;YACjB,IAAI,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;SAClC;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;SAC5C;QACD,IAAI,aAAa,EAAE;YACjB,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAA;SACpD;aAAM,IAAI,OAAO,EAAE;YAClB,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;SAC7D;aAAM,IAAI,MAAM,EAAE;YACjB,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;SAC7D;aAAM,IAAI,aAAa,EAAE;YACxB,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAA;SACpD;aAAM,IAAI,OAAO,EAAE;YAClB,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;SAC7D;aAAM,IAAI,MAAM,EAAE;YACjB,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;SAC7D;aAAM,IAAI,OAAO,EAAE;YAClB,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,SAAS,CAAC,GAAG,OAAO,MAAM,CAAC,EAAE,CAAC,CAAA;SACtE;aAAM,IAAI,MAAM,EAAE;YACjB,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,UAAU,CAAC,GAAG,MAAM,MAAM,CAAC,EAAE,CAAC,CAAA;SACtE;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;SAChD;QACD,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,SAAS,CAAA,CAAC,QAAQ;QAC1D,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,SAAS,CAAA,CAAC,QAAQ;QAC1D,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,WAAmC,EAAE;QACnD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAC/B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC9C,MAAM,GAAG,GAAG,SAAS,CAAC,aAAa;YACjC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa,GAAG,KAAK;YAC/C,CAAC,CAAC,SAAS,CAAA;QACb,IAAI,MAAM,CAAA;QACV,IAAI,GAAG,EAAE;YACP,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAC7B,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,EAC5B,CAAC,EACD,GAAG,GAAG,QAAQ,EACd,CAAC,EACD,IAAI,CACL,CAAA;YAED,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CACxB;YAAA,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,CAAA;YACnB,IAAI,CAAC,SAAS,EAAE;gBACd,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;aACxC;YACD,IAAI,SAAS,GAAG,GAAG,EAAE;gBACnB,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;aACvC;iBAAM;gBACL,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;aACjC;SACF;aAAM;YACL,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAW,CAAA;SACnD;QAED,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAA;QAEjC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;YACtC,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;SAClC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;QAEpC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAA;QACpD,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CACxD,OAAO,GAAG,CAAC,EACX,KAAK,EACL,IAAI,CACL,CAAA;QACD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAE5B,OAAO,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAiB,EAAE;QACrC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,4EAA4E;IAC5E,+DAA+D;IAC/D,KAAK,CAAC,YAAY,CAChB,KAAa,EACb,WAAmB,EACnB,OAAiB,EAAE;QAKnB,IAAI,KAAK,GAAG,WAAW,EAAE;YACvB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;SACvD;QACD,MAAM,IAAI,GAAG,WAAW,GAAG,QAAQ,CAAA;QACnC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAC/C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAClB,CAAC,EACD,WAAW,EACX,CAAC,EACD,IAAI,CACL,CAAA;QACD,IAAI,CAAC,SAAS,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;SACrD;QACD,MAAM,KAAK,GAAG,MAAM,KAAK,CACvB,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CACrD,CAAA;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACrC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;QACjB,MAAM,UAAU,GAA8B,EAAE,CAAA;QAChD,MAAM,UAAU,GAA0C,EAAE,CAAA;QAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE;YAChC,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;YAClC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAC/B,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CACjD,CAAA;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAA;YAE7C,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACvB,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;YAE1C,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;YACjB,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE;gBACpB,OAAO,CAAC,IAAI,CACV,wCAAwC,WAAW,SAAS,CAC7D,CAAA;gBACD,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;aACvD;SACF;QACD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAA;IACnC,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,GAAW,EACX,GAAW,EACX,GAAW,EACX,OAAgB;QACd,WAAW,EAAE,KAAK;QAClB,aAAa,EAAE,KAAK;QACpB,aAAa,EAAE,MAAM;KACtB;QAED,OAAO,IAAI,CACT,MAAM,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CACjE,CAAA;IACH,CAAC;IAED,KAAK,CAAC,CAAC,qBAAqB,CAC1B,GAAW,EACX,GAAW,EACX,GAAW,EACX,OAAgB,EAAE;QAElB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACrD,IAAI,MAAe,CAAA;QACnB,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE;YACjB,MAAM,GAAG,EAAE,CAAA;SACZ;aAAM;YACL,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;YAEnE,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;aACxC;SACF;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YACzC,MAAM,eAAe,CAAC,MAAM,CAAC,CAAA;YAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;YACpC,IAAI,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE;gBAC9B,MAAM,IAAI,KAAK,CACb,yCAAyC,IAAI,oCAAoC,IAAI,CAAC,cAAc,EAAE,CACvG,CAAA;aACF;SACF;QAED,MAAM,SAAS,GAAG,MAAM;aACrB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;aACzB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QAC7B,IAAI,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE;YACnC,MAAM,IAAI,KAAK,CACb,gBAAgB,SAAS,CAAC,cAAc,EAAE,uCAAuC,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,QAAQ,CAC9H,CAAA;SACF;QACD,KAAK,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IAChE,CAAC;IAED,KAAK,CAAC,CAAC,mBAAmB,CACxB,MAAe,EACf,KAAa,EACb,GAAW,EACX,GAAW,EACX,IAAa;QAEb,MAAM,EAAE,WAAW,GAAG,KAAK,EAAE,GAAG,IAAI,CAAA;QACpC,MAAM,KAAK,GAAG,EAAE,CAAA;QAChB,IAAI,IAAI,GAAG,KAAK,CAAA;QAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;YACnB,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAC1C,CAAC,CAAC,QAAQ,EAAE,EACZ;gBACE,KAAK,EAAE,CAAC;gBACR,IAAI;aACL,EACD,IAAI,CAAC,MAAM,CACZ,CAAiB,CAAA;YAElB,MAAM,IAAI,GAAG,EAAE,CAAA;YACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;gBAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;gBAC1B,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK,KAAK,EAAE;oBAC9B,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE;wBAC/B,wCAAwC;wBACxC,IAAI,GAAG,IAAI,CAAA;wBACX,MAAK;qBACN;yBAAM,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE;wBACpC,mBAAmB;wBACnB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;qBACnB;iBACF;aACF;YACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAChB,MAAM,IAAI,CAAA;YACV,IAAI,IAAI,EAAE;gBACR,MAAK;aACN;SACF;QAED,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC7B,IAAI,WAAW,EAAE;YACf,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;SAC1C;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,KAAqB,EAAE,IAAa;QAClE,MAAM,EAAE,aAAa,GAAG,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE,GAAG,IAAI,CAAA;QAC9D,MAAM,YAAY,GAA+B,EAAE,CAAA;QACnD,MAAM,OAAO,GAA8B,EAAE,CAAA;QAC7C,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACd,MAAM,SAAS,GAA8B,EAAE,CAAA;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;gBAC1B,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;gBACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBACpB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;iBACpB;gBACD,SAAS,CAAC,IAAI,CAAC,EAAE,CAAA;gBACjB,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;aAChB;YACD,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAmB,EAAE,EAAE;gBACtD,IAAI,CAAC,KAAK,CAAC,EAAE;oBACX,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;iBACvB;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,MAAM,YAAY,GAAuB,EAAE,CAAA;QAC3C,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;gBAChB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;gBACrB,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;gBAC5B,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,EAAE,CAAA;gBAC3B,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;gBAC7B,IACE,YAAY,CAAC,IAAI,CAAC;oBAClB,CAAC,aAAa;wBACZ,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,aAAa,CAAC,CAAC,EAC/D;oBACA,YAAY,CAAC,IAAI,CACf,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,CACzD,CAAA;iBACF;aACF;QACH,CAAC,CAAC,CAAA;QAEF,0EAA0E;QAC1E,wCAAwC;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;aACrD,IAAI,EAAE;aACN,MAAM,CACL,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CACxE,CAAA;QAEH,MAAM,aAAa,GAAG,UAAU;aAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;aACzB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QAC7B,IAAI,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE;YACvC,MAAM,IAAI,KAAK,CACb,gBAAgB,aAAa,CAAC,cAAc,EAAE,uCAAuC,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,QAAQ,CAClI,CAAA;SACF;QACD,MAAM,gBAAgB,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,EAAC,CAAC,EAAC,EAAE;YAChD,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC;gBACpE,KAAK,EAAE,CAAC;gBACR,IAAI;aACL,CAAC,CAAA;YACF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CACtC,IAAI,EACJ,UAAU,EACV,UAAU,EACV,KAAK,CACN,CAAA;YACD,MAAM,QAAQ,GAAG,EAAE,CAAA;YACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;gBACxC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBACxB,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE;oBAC/D,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;iBACvB;aACF;YACD,OAAO,QAAQ,CAAA;QACjB,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAClD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAoC;QAChE,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;QAChC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAC/C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAClB,CAAC,EACD,IAAI,EACJ,KAAK,CAAC,IAAI,CAAC,aAAa,EACxB,IAAI,CACL,CAAA;QAED,MAAM,EACJ,MAAM,EAAE,IAAI,EACZ,UAAU,EACV,UAAU,GACX,GAAG,MAAM,eAAe,CACvB,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,EAC7C,KAAK,CACN,CAAA;QACD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,CAAA;IAChD,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,EAAU,EACV,UAAoB,EACpB,UAAoB,EACpB,KAAY;QAEZ,IAAI,UAAU,GAAG,CAAC,CAAA;QAClB,MAAM,IAAI,GAAG,EAAE,CAAA;QACf,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;QAEtB,OAAO,UAAU,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE;YACjC,MAAM,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;YAC5C,MAAM,QAAQ,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,CAAA;YAE/C,wDAAwD;YACxD,IAAI,UAAU,EAAE;gBACd,OAAO,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,GAAE;gBACpE,GAAG,EAAE,CAAA;aACN;YAED,+DAA+D;YAC/D,IAAI,QAAQ,GAAG,EAAE,CAAC,MAAM,EAAE;gBACxB,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC;oBAC7B,KAAK,EAAE;wBACL,SAAS,EAAE,EAAE;wBACb,KAAK,EAAE,UAAU;wBACjB,GAAG,EAAE,QAAQ;qBACd;oBACD,wEAAwE;oBACxE,qEAAqE;oBACrE,EAAE;oBACF,2EAA2E;oBAC3E,EAAE;oBACF,yEAAyE;oBACzE,+DAA+D;oBAC/D,EAAE;oBACF,qEAAqE;oBACrE,wEAAwE;oBACxE,yDAAyD;oBACzD,EAAE;oBACF,2EAA2E;oBAC3E,iDAAiD;oBACjD,EAAE;oBACF,yFAAyF;oBACzF,UAAU,EAAE,UAAU;wBACpB,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;4BAC1B,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;4BAC9B,KAAK,CAAC,IAAI,CAAC,YAAY;4BACvB,CAAC;wBACH,CAAC,CAAC,yDAAyD;4BACzD,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;iBACjD,CAAC,CAAA;gBAEF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBAClB,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE;oBACrE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAA;oBAChB,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;iBACnB;aACF;YAED,UAAU,GAAG,QAAQ,GAAG,CAAC,CAAA;SAC1B;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QACzD,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QACzD,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe,EAAE,KAAc,EAAE,GAAY;QAC1D,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QACzD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IAC/C,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,OAAe,EACf,KAAa,EACb,GAAW,EACX,IAAe;QAEf,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QACzD,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IAC3D,CAAC;CACF"}
1
+ {"version":3,"file":"bamFile.js","sourceRoot":"","sources":["../src/bamFile.ts"],"names":[],"mappings":"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"}
package/esm/chunk.d.ts CHANGED
@@ -1,16 +1,12 @@
1
+ /// <reference types="node" />
1
2
  import VirtualOffset from './virtualOffset';
2
3
  export default class Chunk {
3
4
  minv: VirtualOffset;
4
5
  maxv: VirtualOffset;
5
6
  bin: number;
6
- _fetchedSize?: number;
7
- /**
8
- * @param {VirtualOffset} minv
9
- * @param {VirtualOffset} maxv
10
- * @param {number} bin
11
- * @param {number} [fetchedSize]
12
- */
13
- constructor(minv: VirtualOffset, maxv: VirtualOffset, bin: number, fetchedSize?: undefined);
7
+ _fetchedSize?: number | undefined;
8
+ buffer?: Buffer;
9
+ constructor(minv: VirtualOffset, maxv: VirtualOffset, bin: number, _fetchedSize?: number | undefined);
14
10
  toUniqueString(): string;
15
11
  toString(): string;
16
12
  compareTo(b: Chunk): number;
package/esm/chunk.js CHANGED
@@ -1,16 +1,10 @@
1
1
  // little class representing a chunk in the index
2
2
  export default class Chunk {
3
- /**
4
- * @param {VirtualOffset} minv
5
- * @param {VirtualOffset} maxv
6
- * @param {number} bin
7
- * @param {number} [fetchedSize]
8
- */
9
- constructor(minv, maxv, bin, fetchedSize = undefined) {
3
+ constructor(minv, maxv, bin, _fetchedSize) {
10
4
  this.minv = minv;
11
5
  this.maxv = maxv;
12
6
  this.bin = bin;
13
- this._fetchedSize = fetchedSize;
7
+ this._fetchedSize = _fetchedSize;
14
8
  }
15
9
  toUniqueString() {
16
10
  return `${this.minv}..${this.maxv} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`;
package/esm/chunk.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"chunk.js","sourceRoot":"","sources":["../src/chunk.ts"],"names":[],"mappings":"AAEA,iDAAiD;AACjD,MAAM,CAAC,OAAO,OAAO,KAAK;IAMxB;;;;;OAKG;IACH,YACE,IAAmB,EACnB,IAAmB,EACnB,GAAW,EACX,WAAW,GAAG,SAAS;QAEvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;IACjC,CAAC;IAED,cAAc;QACZ,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,SAC/B,IAAI,CAAC,GACP,iBAAiB,IAAI,CAAC,WAAW,EAAE,GAAG,CAAA;IACxC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,cAAc,EAAE,CAAA;IAC9B,CAAC;IAED,SAAS,CAAC,CAAQ;QAChB,OAAO,CACL,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3B,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CACjB,CAAA;IACH,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;YACnC,OAAO,IAAI,CAAC,YAAY,CAAA;SACzB;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAA;IACtE,CAAC;CACF"}
1
+ {"version":3,"file":"chunk.js","sourceRoot":"","sources":["../src/chunk.ts"],"names":[],"mappings":"AAEA,iDAAiD;AACjD,MAAM,CAAC,OAAO,OAAO,KAAK;IAGxB,YACS,IAAmB,EACnB,IAAmB,EACnB,GAAW,EACX,YAAqB;QAHrB,SAAI,GAAJ,IAAI,CAAe;QACnB,SAAI,GAAJ,IAAI,CAAe;QACnB,QAAG,GAAH,GAAG,CAAQ;QACX,iBAAY,GAAZ,YAAY,CAAS;IAC3B,CAAC;IAEJ,cAAc;QACZ,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,SAC/B,IAAI,CAAC,GACP,iBAAiB,IAAI,CAAC,WAAW,EAAE,GAAG,CAAA;IACxC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,cAAc,EAAE,CAAA;IAC9B,CAAC;IAED,SAAS,CAAC,CAAQ;QAChB,OAAO,CACL,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3B,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CACjB,CAAA;IACH,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;YACnC,OAAO,IAAI,CAAC,YAAY,CAAA;SACzB;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAA;IACtE,CAAC;CACF"}
package/esm/csi.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ import VirtualOffset from './virtualOffset';
2
3
  import Chunk from './chunk';
3
4
  import { BaseOpts } from './util';
4
5
  import IndexFile from './indexFile';
@@ -6,30 +7,93 @@ export default class CSI extends IndexFile {
6
7
  private maxBinNumber;
7
8
  private depth;
8
9
  private minShift;
9
- constructor(args: any);
10
- lineCount(refId: number): Promise<number>;
10
+ setupP?: ReturnType<CSI['_parse']>;
11
+ lineCount(refId: number, opts?: BaseOpts): Promise<number>;
11
12
  indexCov(): Promise<never[]>;
12
- parseAuxData(bytes: Buffer, offset: number, auxLength: number): {
13
- [key: string]: any;
14
- };
15
- _parseNameBytes(namesBytes: Buffer): {
13
+ parseAuxData(bytes: Buffer, offset: number): {
16
14
  refNameToId: {
17
15
  [key: string]: number;
18
16
  };
19
17
  refIdToName: string[];
18
+ columnNumbers: {
19
+ ref: number;
20
+ start: number;
21
+ end: number;
22
+ };
23
+ coordinateType: string;
24
+ metaValue: number;
25
+ metaChar: string;
26
+ skipLines: number;
27
+ format: string;
28
+ formatFlags: number;
20
29
  };
21
30
  _parse(opts: {
22
31
  signal?: AbortSignal;
23
32
  }): Promise<{
24
- [key: string]: any;
33
+ refNameToId?: {
34
+ [key: string]: number;
35
+ } | undefined;
36
+ refIdToName?: string[] | undefined;
37
+ columnNumbers?: {
38
+ ref: number;
39
+ start: number;
40
+ end: number;
41
+ } | undefined;
42
+ coordinateType?: string | undefined;
43
+ metaValue?: number | undefined;
44
+ metaChar?: string | undefined;
45
+ skipLines?: number | undefined;
46
+ format?: string | undefined;
47
+ formatFlags?: number | undefined;
48
+ csiVersion: number;
49
+ firstDataLine: VirtualOffset | undefined;
50
+ indices: {
51
+ binIndex: {
52
+ [key: string]: Chunk[];
53
+ };
54
+ stats?: {
55
+ lineCount: number;
56
+ } | undefined;
57
+ }[];
58
+ refCount: number;
59
+ csi: boolean;
60
+ maxBlockSize: number;
25
61
  }>;
26
- parsePseudoBin(bytes: Buffer, offset: number): {
27
- lineCount: number;
28
- };
29
62
  blocksForRange(refId: number, min: number, max: number, opts?: BaseOpts): Promise<Chunk[]>;
30
63
  /**
31
64
  * calculate the list of bins that may overlap with region [beg,end)
32
65
  * (zero-based half-open)
33
66
  */
34
67
  reg2bins(beg: number, end: number): number[][];
68
+ parse(opts?: BaseOpts): Promise<{
69
+ refNameToId?: {
70
+ [key: string]: number;
71
+ } | undefined;
72
+ refIdToName?: string[] | undefined;
73
+ columnNumbers?: {
74
+ ref: number;
75
+ start: number;
76
+ end: number;
77
+ } | undefined;
78
+ coordinateType?: string | undefined;
79
+ metaValue?: number | undefined;
80
+ metaChar?: string | undefined;
81
+ skipLines?: number | undefined;
82
+ format?: string | undefined;
83
+ formatFlags?: number | undefined;
84
+ csiVersion: number;
85
+ firstDataLine: VirtualOffset | undefined;
86
+ indices: {
87
+ binIndex: {
88
+ [key: string]: Chunk[];
89
+ };
90
+ stats?: {
91
+ lineCount: number;
92
+ } | undefined;
93
+ }[];
94
+ refCount: number;
95
+ csi: boolean;
96
+ maxBlockSize: number;
97
+ }>;
98
+ hasRefSeq(seqId: number, opts?: BaseOpts): Promise<boolean>;
35
99
  }