@datagrok-libraries/bio 5.0.0 → 5.1.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/index.d.ts +6 -4
- package/index.d.ts.map +1 -1
- package/index.js +5 -3
- package/index.ts +16 -4
- package/package.json +1 -1
- package/src/utils/macromolecule.d.ts +22 -0
- package/src/utils/macromolecule.d.ts.map +1 -1
- package/src/utils/macromolecule.js +38 -26
- package/src/utils/notation-converter.d.ts +2 -2
- package/src/utils/notation-converter.d.ts.map +1 -1
- package/src/utils/notation-converter.js +2 -2
- package/src/utils/splitter.d.ts.map +1 -1
- package/src/utils/splitter.js +2 -3
- package/src/utils/units-handler.d.ts +1 -19
- package/src/utils/units-handler.d.ts.map +1 -1
- package/src/utils/units-handler.js +23 -38
- package/src/viewers/phylocanvas-gl-viewer.d.ts +7 -0
- package/src/viewers/phylocanvas-gl-viewer.d.ts.map +1 -0
- package/src/viewers/phylocanvas-gl-viewer.js +2 -0
- package/src/viewers/vd-regions-viewer.d.ts +2 -2
- package/src/viewers/vd-regions-viewer.d.ts.map +1 -1
- package/src/viewers/vd-regions-viewer.js +1 -1
- package/src/viewers/viewer.d.ts +9 -0
- package/src/viewers/viewer.d.ts.map +1 -0
- package/src/viewers/viewer.js +2 -0
- package/src/viewers/web-logo.js +2 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as DG from 'datagrok-api/dg';
|
|
2
|
-
import {
|
|
2
|
+
import { getStats, splitterAsFasta, detectAlphabet } from './macromolecule';
|
|
3
3
|
/** Class for handling notation units in Macromolecule columns */
|
|
4
4
|
export class UnitsHandler {
|
|
5
5
|
constructor(col) {
|
|
@@ -13,21 +13,21 @@ export class UnitsHandler {
|
|
|
13
13
|
this._defaultGapSymbol = (this.isFasta()) ? UnitsHandler._defaultGapSymbolsDict.FASTA :
|
|
14
14
|
(this.isHelm()) ? UnitsHandler._defaultGapSymbolsDict.HELM :
|
|
15
15
|
UnitsHandler._defaultGapSymbolsDict.SEPARATOR;
|
|
16
|
-
if (!this.column.tags.has(
|
|
16
|
+
if (!this.column.tags.has(".alphabetSize" /* TAGS.alphabetSize */)) {
|
|
17
17
|
if (this.isHelm())
|
|
18
18
|
throw new Error(`For column '${this.column.name}' of notation '${this.notation}' ` +
|
|
19
|
-
`tag '${
|
|
19
|
+
`tag '${".alphabetSize" /* TAGS.alphabetSize */}' is mandatory.`);
|
|
20
20
|
else if (['UN'].includes(this.alphabet))
|
|
21
21
|
throw new Error(`For column '${this.column.name}' of alphabet '${this.alphabet}' ` +
|
|
22
|
-
`tag '${
|
|
22
|
+
`tag '${".alphabetSize" /* TAGS.alphabetSize */}' is mandatory.`);
|
|
23
23
|
}
|
|
24
|
-
if (!this.column.tags.has(
|
|
24
|
+
if (!this.column.tags.has(".alphabetIsMultichar" /* TAGS.alphabetIsMultichar */)) {
|
|
25
25
|
if (this.isHelm())
|
|
26
26
|
throw new Error(`For column '${this.column.name}' of notation '${this.notation}' ` +
|
|
27
|
-
`tag '${
|
|
27
|
+
`tag '${".alphabetIsMultichar" /* TAGS.alphabetIsMultichar */}' is mandatory.`);
|
|
28
28
|
else if (['UN'].includes(this.alphabet))
|
|
29
29
|
throw new Error(`For column '${this.column.name}' of alphabet '${this.alphabet}' ` +
|
|
30
|
-
`tag '${
|
|
30
|
+
`tag '${".alphabetIsMultichar" /* TAGS.alphabetIsMultichar */}' is mandatory.`);
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
static setUnitsToFastaColumn(col) {
|
|
@@ -35,32 +35,24 @@ export class UnitsHandler {
|
|
|
35
35
|
throw new Error('Fasta column must be MACROMOLECULE');
|
|
36
36
|
const stats = getStats(col, 5, splitterAsFasta);
|
|
37
37
|
const seqType = stats.sameLength ? 'SEQ.MSA' : 'SEQ';
|
|
38
|
-
const
|
|
39
|
-
["PT" /* ALPHABET.PT */, UnitsHandler.PeptideFastaAlphabet],
|
|
40
|
-
["DNA" /* ALPHABET.DNA */, UnitsHandler.DnaFastaAlphabet],
|
|
41
|
-
["RNA" /* ALPHABET.RNA */, UnitsHandler.RnaFastaAlphabet],
|
|
42
|
-
];
|
|
43
|
-
// Calculate likelihoods for alphabet_candidates
|
|
44
|
-
const alphabetCandidatesSim = alphabetCandidates.map((c) => getAlphabetSimilarity(stats.freq, c[1]));
|
|
45
|
-
const maxCos = Math.max(...alphabetCandidatesSim);
|
|
46
|
-
const alphabet = maxCos > 0.65 ? alphabetCandidates[alphabetCandidatesSim.indexOf(maxCos)][0] : 'UN';
|
|
38
|
+
const alphabet = detectAlphabet(stats);
|
|
47
39
|
col.setTag(DG.TAGS.UNITS, "fasta" /* NOTATION.FASTA */);
|
|
48
|
-
col.setTag(
|
|
49
|
-
col.setTag(
|
|
40
|
+
col.setTag("aligned" /* TAGS.aligned */, seqType);
|
|
41
|
+
col.setTag("alphabet" /* TAGS.alphabet */, alphabet);
|
|
50
42
|
}
|
|
51
43
|
get units() { return this._units; }
|
|
52
44
|
get column() { return this._column; }
|
|
53
45
|
get notation() { return this._notation; }
|
|
54
46
|
get defaultGapSymbol() { return this._defaultGapSymbol; }
|
|
55
47
|
get separator() {
|
|
56
|
-
const separator = this.column.getTag(
|
|
48
|
+
const separator = this.column.getTag("separator" /* TAGS.separator */);
|
|
57
49
|
if (separator !== null)
|
|
58
50
|
return separator;
|
|
59
51
|
else
|
|
60
52
|
throw new Error('Separator not set');
|
|
61
53
|
}
|
|
62
54
|
get aligned() {
|
|
63
|
-
const aligned = this.column.getTag(
|
|
55
|
+
const aligned = this.column.getTag("aligned" /* TAGS.aligned */);
|
|
64
56
|
if (aligned !== null) {
|
|
65
57
|
return aligned;
|
|
66
58
|
}
|
|
@@ -70,7 +62,7 @@ export class UnitsHandler {
|
|
|
70
62
|
}
|
|
71
63
|
/** Alphabet name (upper case) */
|
|
72
64
|
get alphabet() {
|
|
73
|
-
const alphabet = this.column.getTag(
|
|
65
|
+
const alphabet = this.column.getTag("alphabet" /* TAGS.alphabet */);
|
|
74
66
|
if (alphabet !== null) {
|
|
75
67
|
return alphabet.toUpperCase();
|
|
76
68
|
}
|
|
@@ -80,7 +72,7 @@ export class UnitsHandler {
|
|
|
80
72
|
}
|
|
81
73
|
getAlphabetSize() {
|
|
82
74
|
if (this.notation == "helm" /* NOTATION.HELM */ || this.alphabet == "UN" /* ALPHABET.UN */) {
|
|
83
|
-
const alphabetSize = parseInt(this.column.getTag(
|
|
75
|
+
const alphabetSize = parseInt(this.column.getTag(".alphabetSize" /* TAGS.alphabetSize */));
|
|
84
76
|
return alphabetSize;
|
|
85
77
|
}
|
|
86
78
|
else {
|
|
@@ -100,7 +92,7 @@ export class UnitsHandler {
|
|
|
100
92
|
}
|
|
101
93
|
getAlphabetIsMultichar() {
|
|
102
94
|
if (this.notation == "helm" /* NOTATION.HELM */ || this.alphabet == "UN" /* ALPHABET.UN */) {
|
|
103
|
-
return this.column.getTag(
|
|
95
|
+
return this.column.getTag(".alphabetIsMultichar" /* TAGS.alphabetIsMultichar */) == 'true';
|
|
104
96
|
}
|
|
105
97
|
else {
|
|
106
98
|
return false;
|
|
@@ -143,18 +135,18 @@ export class UnitsHandler {
|
|
|
143
135
|
newColumn.semType = DG.SEMTYPE.MACROMOLECULE;
|
|
144
136
|
newColumn.setTag(DG.TAGS.UNITS, targetNotation);
|
|
145
137
|
newColumn.setTag(DG.TAGS.CELL_RENDERER, 'Macromolecule');
|
|
146
|
-
const srcAlphabet = col.getTag(
|
|
138
|
+
const srcAlphabet = col.getTag("alphabet" /* TAGS.alphabet */);
|
|
147
139
|
if (srcAlphabet)
|
|
148
|
-
newColumn.setTag(
|
|
149
|
-
let srcAlphabetSize = col.getTag(
|
|
140
|
+
newColumn.setTag("alphabet" /* TAGS.alphabet */, srcAlphabet);
|
|
141
|
+
let srcAlphabetSize = col.getTag(".alphabetSize" /* TAGS.alphabetSize */);
|
|
150
142
|
if (srcAlphabetSize)
|
|
151
|
-
newColumn.setTag(
|
|
152
|
-
const srcAlphabetIsMultichar = col.getTag(
|
|
143
|
+
newColumn.setTag(".alphabetSize" /* TAGS.alphabetSize */, srcAlphabetSize);
|
|
144
|
+
const srcAlphabetIsMultichar = col.getTag(".alphabetIsMultichar" /* TAGS.alphabetIsMultichar */);
|
|
153
145
|
if (srcAlphabetIsMultichar !== undefined)
|
|
154
|
-
newColumn.setTag(
|
|
146
|
+
newColumn.setTag(".alphabetIsMultichar" /* TAGS.alphabetIsMultichar */, srcAlphabetIsMultichar);
|
|
155
147
|
if (targetNotation == "helm" /* NOTATION.HELM */) {
|
|
156
148
|
srcAlphabetSize = this.getAlphabetSize().toString();
|
|
157
|
-
newColumn.setTag(
|
|
149
|
+
newColumn.setTag(".alphabetSize" /* TAGS.alphabetSize */, srcAlphabetSize);
|
|
158
150
|
}
|
|
159
151
|
return newColumn;
|
|
160
152
|
}
|
|
@@ -204,13 +196,6 @@ export class UnitsHandler {
|
|
|
204
196
|
return newColumn;
|
|
205
197
|
}
|
|
206
198
|
}
|
|
207
|
-
UnitsHandler.TAGS = {
|
|
208
|
-
aligned: 'aligned',
|
|
209
|
-
alphabet: 'alphabet',
|
|
210
|
-
alphabetSize: '.alphabetSize',
|
|
211
|
-
alphabetIsMultichar: '.alphabetIsMultichar',
|
|
212
|
-
separator: 'separator',
|
|
213
|
-
};
|
|
214
199
|
UnitsHandler._defaultGapSymbolsDict = {
|
|
215
200
|
HELM: '*',
|
|
216
201
|
SEPARATOR: '',
|
|
@@ -222,4 +207,4 @@ UnitsHandler.PeptideFastaAlphabet = new Set([
|
|
|
222
207
|
]);
|
|
223
208
|
UnitsHandler.DnaFastaAlphabet = new Set(['A', 'C', 'G', 'T']);
|
|
224
209
|
UnitsHandler.RnaFastaAlphabet = new Set(['A', 'C', 'G', 'U']);
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdHMtaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInVuaXRzLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUl0QyxPQUFPLEVBQUMscUJBQXFCLEVBQUUsUUFBUSxFQUFlLGVBQWUsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBZ0I5RixpRUFBaUU7QUFDakUsTUFBTSxPQUFPLFlBQVk7SUF3T3ZCLFlBQW1CLEdBQWM7UUFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDbkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxJQUFJLEtBQUssS0FBSyxJQUFJO1lBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDOztZQUVwQixNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyRixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzFELFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUM7UUFFbEQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3pELElBQUksSUFBSSxDQUFDLE1BQU0sRUFB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IjpbImltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5cbmltcG9ydCB7Z2V0QWxwaGFiZXRTaW1pbGFyaXR5LCBnZXRTdGF0cywgU2VxQ29sU3RhdHMsIHNwbGl0dGVyQXNGYXN0YX0gZnJvbSAnLi9tYWNyb21vbGVjdWxlJztcblxuLyoqIGVudW0gdHlwZSB0byBzaW1wbGlmeSBzZXR0aW5nIFwidXNlci1mcmllbmRseVwiIG5vdGF0aW9uIGlmIG5lY2Vzc2FyeSAqL1xuZXhwb3J0IGNvbnN0IGVudW0gTk9UQVRJT04ge1xuICBGQVNUQSA9ICdmYXN0YScsXG4gIFNFUEFSQVRPUiA9ICdzZXBhcmF0b3InLFxuICBIRUxNID0gJ2hlbG0nLFxufVxuXG5leHBvcnQgY29uc3QgZW51bSBBTFBIQUJFVCB7XG4gIEROQSA9ICdETkEnLFxuICBSTkEgPSAnUk5BJyxcbiAgUFQgPSAnUFQnLFxuICBVTiA9ICdVTicsXG59XG5cbi8qKiBDbGFzcyBmb3IgaGFuZGxpbmcgbm90YXRpb24gdW5pdHMgaW4gTWFjcm9tb2xlY3VsZSBjb2x1bW5zICovXG5leHBvcnQgY2xhc3MgVW5pdHNIYW5kbGVyIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBUQUdTID0ge1xuICAgIGFsaWduZWQ6ICdhbGlnbmVkJyxcbiAgICBhbHBoYWJldDogJ2FscGhhYmV0JyxcbiAgICBhbHBoYWJldFNpemU6ICcuYWxwaGFiZXRTaXplJyxcbiAgICBhbHBoYWJldElzTXVsdGljaGFyOiAnLmFscGhhYmV0SXNNdWx0aWNoYXInLFxuICAgIHNlcGFyYXRvcjogJ3NlcGFyYXRvcicsXG4gIH07XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9jb2x1bW46IERHLkNvbHVtbjsgLy8gdGhlIGNvbHVtbiB0byBiZSBjb252ZXJ0ZWRcbiAgcHJvdGVjdGVkIF91bml0czogc3RyaW5nOyAvLyB1bml0cywgb2YgdGhlIGZvcm0gZmFzdGEsIHNlcGFyYXRvclxuICBwcm90ZWN0ZWQgX25vdGF0aW9uOiBOT1RBVElPTjsgLy8gY3VycmVudCBub3RhdGlvbiAod2l0aG91dCA6U0VROk5ULCBldGMuKVxuICBwcm90ZWN0ZWQgX2RlZmF1bHRHYXBTeW1ib2w6IHN0cmluZztcbiAgcHJvdGVjdGVkIHN0YXRpYyByZWFkb25seSBfZGVmYXVsdEdhcFN5bWJvbHNEaWN0ID0ge1xuICAgIEhFTE06ICcqJyxcbiAgICBTRVBBUkFUT1I6ICcnLFxuICAgIEZBU1RBOiAnLScsXG4gIH07XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQZXB0aWRlRmFzdGFBbHBoYWJldCA9IG5ldyBTZXQoW1xuICAgICdHJywgJ0wnLCAnWScsICdTJywgJ0UnLCAnUScsICdEJywgJ04nLCAnRicsICdBJyxcbiAgICAnSycsICdSJywgJ0gnLCAnQycsICdWJywgJ1AnLCAnVycsICdJJywgJ00nLCAnVCcsXG4gIF0pO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERuYUZhc3RhQWxwaGFiZXQgPSBuZXcgU2V0KFsnQScsICdDJywgJ0cnLCAnVCddKTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBSbmFGYXN0YUFscGhhYmV0ID0gbmV3IFNldChbJ0EnLCAnQycsICdHJywgJ1UnXSk7XG5cbiAgcHVibGljIHN0YXRpYyBzZXRVbml0c1RvRmFzdGFDb2x1bW4oY29sOiBERy5Db2x1bW4pIHtcbiAgICBpZiAoY29sLnNlbVR5cGUgIT09IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRSlcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmFzdGEgY29sdW1uIG11c3QgYmUgTUFDUk9NT0xFQ1VMRScpO1xuXG4gICAgY29uc3Qgc3RhdHM6IFNlcUNvbFN0YXRzID0gZ2V0U3RhdHMoY29sLCA1LCBzcGxpdHRlckFzRmFzdGEpO1xuICAgIGNvbnN0IHNlcVR5cGUgPSBzdGF0cy5zYW1lTGVuZ3RoID8gJ1NFUS5NU0EnIDogJ1NFUSc7XG5cbiAgICBjb25zdCBhbHBoYWJldENhbmRpZGF0ZXM6IFtzdHJpbmcsIFNldDxzdHJpbmc+XVtdID0gW1xuICAgICAgW0FMUEhBQkVULlBULCBVbml0c0hhbmRsZXIuUGVwdGlkZUZhc3RhQWxwaGFiZXRdLFxuICAgICAgW0FMUEhBQkVULkROQSwgVW5pdHNIYW5kbGVyLkRuYUZhc3RhQWxwaGFiZXRdLFxuICAgICAgW0FMUEhBQkVULlJOQSwgVW5pdHNIYW5kbGVyLlJuYUZhc3RhQWxwaGFiZXRdLFxuICAgIF07XG5cbiAgICAvLyBDYWxjdWxhdGUgbGlrZWxpaG9vZHMgZm9yIGFscGhhYmV0X2NhbmRpZGF0ZXNcbiAgICBjb25zdCBhbHBoYWJldENhbmRpZGF0ZXNTaW06IG51bWJlcltdID0gYWxwaGFiZXRDYW5kaWRhdGVzLm1hcChcbiAgICAgIChjKSA9PiBnZXRBbHBoYWJldFNpbWlsYXJpdHkoc3RhdHMuZnJlcSwgY1sxXSkpO1xuICAgIGNvbnN0IG1heENvcyA9IE1hdGgubWF4KC4uLmFscGhhYmV0Q2FuZGlkYXRlc1NpbSk7XG4gICAgY29uc3QgYWxwaGFiZXQgPSBtYXhDb3MgPiAwLjY1ID8gYWxwaGFiZXRDYW5kaWRhdGVzW2FscGhhYmV0Q2FuZGlkYXRlc1NpbS5pbmRleE9mKG1heENvcyldWzBdIDogJ1VOJztcblxuICAgIGNvbC5zZXRUYWcoREcuVEFHUy5VTklUUywgTk9UQVRJT04uRkFTVEEpO1xuICAgIGNvbC5zZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxpZ25lZCwgc2VxVHlwZSk7XG4gICAgY29sLnNldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldCwgYWxwaGFiZXQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB1bml0cygpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5fdW5pdHM7IH1cblxuICBwcm90ZWN0ZWQgZ2V0IGNvbHVtbigpOiBERy5Db2x1bW4geyByZXR1cm4gdGhpcy5fY29sdW1uOyB9XG5cbiAgcHVibGljIGdldCBub3RhdGlvbigpOiBOT1RBVElPTiB7IHJldHVybiB0aGlzLl9ub3RhdGlvbjsgfVxuXG4gIHB1YmxpYyBnZXQgZGVmYXVsdEdhcFN5bWJvbCgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5fZGVmYXVsdEdhcFN5bWJvbDsgfVxuXG4gIHB1YmxpYyBnZXQgc2VwYXJhdG9yKCk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2VwYXJhdG9yID0gdGhpcy5jb2x1bW4uZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLnNlcGFyYXRvcik7XG4gICAgaWYgKHNlcGFyYXRvciAhPT0gbnVsbClcbiAgICAgIHJldHVybiBzZXBhcmF0b3I7XG4gICAgZWxzZVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTZXBhcmF0b3Igbm90IHNldCcpO1xuICB9XG5cbiAgcHVibGljIGdldCBhbGlnbmVkKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYWxpZ25lZCA9IHRoaXMuY29sdW1uLmdldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5hbGlnbmVkKTtcbiAgICBpZiAoYWxpZ25lZCAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGFsaWduZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGFnIGFsaWduZWQgbm90IHNldCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBBbHBoYWJldCBuYW1lICh1cHBlciBjYXNlKSAqL1xuICBwdWJsaWMgZ2V0IGFscGhhYmV0KCk6IHN0cmluZyB7XG4gICAgY29uc3QgYWxwaGFiZXQgPSB0aGlzLmNvbHVtbi5nZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXQpO1xuICAgIGlmIChhbHBoYWJldCAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGFscGhhYmV0LnRvVXBwZXJDYXNlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGFnIGFscGhhYmV0IG5vdCBzZXQnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0QWxwaGFiZXRTaXplKCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMubm90YXRpb24gPT0gTk9UQVRJT04uSEVMTSB8fCB0aGlzLmFscGhhYmV0ID09IEFMUEhBQkVULlVOKSB7XG4gICAgICBjb25zdCBhbHBoYWJldFNpemUgPSBwYXJzZUludCh0aGlzLmNvbHVtbi5nZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXRTaXplKSk7XG4gICAgICByZXR1cm4gYWxwaGFiZXRTaXplO1xuICAgIH0gZWxzZSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuYWxwaGFiZXQpIHtcbiAgICAgIGNhc2UgQUxQSEFCRVQuUFQ6XG4gICAgICAgIHJldHVybiAyMDtcbiAgICAgIGNhc2UgQUxQSEFCRVQuRE5BOlxuICAgICAgY2FzZSBBTFBIQUJFVC5STkE6XG4gICAgICAgIHJldHVybiA0O1xuICAgICAgY2FzZSAnTlQnOlxuICAgICAgICBjb25zb2xlLndhcm4oYFVuZXhwZWN0ZWQgYWxwaGFiZXQgJ05UJy5gKTtcbiAgICAgICAgcmV0dXJuIDQ7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgYWxwaGFiZXQgJyR7dGhpcy5hbHBoYWJldH0nLmApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRBbHBoYWJldElzTXVsdGljaGFyKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLm5vdGF0aW9uID09IE5PVEFUSU9OLkhFTE0gfHwgdGhpcy5hbHBoYWJldCA9PSBBTFBIQUJFVC5VTikge1xuICAgICAgcmV0dXJuIHRoaXMuY29sdW1uLmdldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldElzTXVsdGljaGFyKSA9PSAndHJ1ZSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNGYXN0YSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMubm90YXRpb24gPT09IE5PVEFUSU9OLkZBU1RBOyB9XG5cbiAgcHVibGljIGlzU2VwYXJhdG9yKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5ub3RhdGlvbiA9PT0gTk9UQVRJT04uU0VQQVJBVE9SOyB9XG5cbiAgcHVibGljIGlzSGVsbSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMubm90YXRpb24gPT09IE5PVEFUSU9OLkhFTE07IH1cblxuICBwdWJsaWMgaXNSbmEoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmFscGhhYmV0ID09PSAnUk5BJzsgfVxuXG4gIHB1YmxpYyBpc0RuYSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuYWxwaGFiZXQgPT09ICdETkEnOyB9XG5cbiAgcHVibGljIGlzUGVwdGlkZSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuYWxwaGFiZXQgPT09ICdQVCc7IH1cblxuICBwdWJsaWMgaXNNc2EoKTogYm9vbGVhbiB7cmV0dXJuIHRoaXMuYWxpZ25lZC50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCdNU0EnKTsgfVxuXG4gIC8qKiBBc3NvY2lhdGUgbm90YXRpb24gdHlwZXMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyB1bml0cyAqL1xuICAvKipcbiAgICogQHJldHVybiB7Tk9UQVRJT059ICAgICBOb3RhdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIHVuaXRzIHR5cGVcbiAgICovXG4gIHByb3RlY3RlZCBnZXROb3RhdGlvbigpOiBOT1RBVElPTiB7XG4gICAgaWYgKHRoaXMudW5pdHMudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKE5PVEFUSU9OLkZBU1RBKSlcbiAgICAgIHJldHVybiBOT1RBVElPTi5GQVNUQTtcbiAgICBlbHNlIGlmICh0aGlzLnVuaXRzLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChOT1RBVElPTi5TRVBBUkFUT1IpKVxuICAgICAgcmV0dXJuIE5PVEFUSU9OLlNFUEFSQVRPUjtcbiAgICBlbHNlIGlmICh0aGlzLnVuaXRzLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChOT1RBVElPTi5IRUxNKSlcbiAgICAgIHJldHVybiBOT1RBVElPTi5IRUxNO1xuICAgIGVsc2VcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29sdW1uICcke3RoaXMuY29sdW1uLm5hbWV9JyBoYXMgdW5leHBlY3RlZCBub3RhdGlvbiAnJHt0aGlzLnVuaXRzfScuYCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IGVtcHR5IGNvbHVtbiBvZiB0aGUgc3BlY2lmaWVkIG5vdGF0aW9uIHR5cGUgYW5kIHRoZSBzYW1lXG4gICAqIGxlbmd0aCBhcyBjb2x1bW5cbiAgICpcbiAgICogQHBhcmFtIHtOT1RBVElPTn0gdGFyZ2V0Tm90YXRpb25cbiAgICogQHJldHVybiB7REcuQ29sdW1ufVxuICAgKi9cbiAgcHJvdGVjdGVkIGdldE5ld0NvbHVtbih0YXJnZXROb3RhdGlvbjogTk9UQVRJT04pOiBERy5Db2x1bW4ge1xuICAgIGNvbnN0IGNvbCA9IHRoaXMuY29sdW1uO1xuICAgIGNvbnN0IGxlbiA9IGNvbC5sZW5ndGg7XG4gICAgY29uc3QgbmFtZSA9IHRhcmdldE5vdGF0aW9uLnRvTG93ZXJDYXNlKCkgKyAnKCcgKyBjb2wubmFtZSArICcpJztcbiAgICBjb25zdCBuZXdDb2xOYW1lID0gY29sLmRhdGFGcmFtZS5jb2x1bW5zLmdldFVudXNlZE5hbWUobmFtZSk7XG4gICAgY29uc3QgbmV3Q29sdW1uID0gREcuQ29sdW1uLmZyb21MaXN0KCdzdHJpbmcnLCBuZXdDb2xOYW1lLCBuZXcgQXJyYXkobGVuKS5maWxsKCcnKSk7XG4gICAgbmV3Q29sdW1uLnNlbVR5cGUgPSBERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEU7XG4gICAgbmV3Q29sdW1uLnNldFRhZyhERy5UQUdTLlVOSVRTLCB0YXJnZXROb3RhdGlvbik7XG4gICAgbmV3Q29sdW1uLnNldFRhZyhERy5UQUdTLkNFTExfUkVOREVSRVIsICdNYWNyb21vbGVjdWxlJyk7XG5cbiAgICBjb25zdCBzcmNBbHBoYWJldCA9IGNvbC5nZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXQpO1xuICAgIGlmIChzcmNBbHBoYWJldClcbiAgICAgIG5ld0NvbHVtbi5zZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXQsIHNyY0FscGhhYmV0KTtcblxuICAgIGxldCBzcmNBbHBoYWJldFNpemU6IHN0cmluZyA9IGNvbC5nZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXRTaXplKTtcbiAgICBpZiAoc3JjQWxwaGFiZXRTaXplKVxuICAgICAgbmV3Q29sdW1uLnNldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldFNpemUsIHNyY0FscGhhYmV0U2l6ZSk7XG5cbiAgICBjb25zdCBzcmNBbHBoYWJldElzTXVsdGljaGFyOiBzdHJpbmcgPSBjb2wuZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0SXNNdWx0aWNoYXIpO1xuICAgIGlmIChzcmNBbHBoYWJldElzTXVsdGljaGFyICE9PSB1bmRlZmluZWQpXG4gICAgICBuZXdDb2x1bW4uc2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0SXNNdWx0aWNoYXIsIHNyY0FscGhhYmV0SXNNdWx0aWNoYXIpO1xuXG4gICAgaWYgKHRhcmdldE5vdGF0aW9uID09IE5PVEFUSU9OLkhFTE0pIHtcbiAgICAgIHNyY0FscGhhYmV0U2l6ZSA9IHRoaXMuZ2V0QWxwaGFiZXRTaXplKCkudG9TdHJpbmcoKTtcbiAgICAgIG5ld0NvbHVtbi5zZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXRTaXplLCBzcmNBbHBoYWJldFNpemUpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXdDb2x1bW47XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IGVtcHR5IGNvbHVtbiB1c2luZyB0ZW1wbGF0ZUNvbCBhcyBhIHRlbXBsYXRlXG4gICAqXG4gICAqIEBwYXJhbSB7REcuQ29sdW1ufSB0ZW1wbGF0ZUNvbCAgdGhlIHByb3BlcnRpZXMgYW5kIHVuaXRzIG9mIHRoaXMgY29sdW1uIGFyZSB1c2VkIGFzIGFcbiAgICogdGVtcGxhdGUgdG8gYnVpbGQgdGhlIG5ldyBvbmVcbiAgICogQHJldHVybiB7REcuQ29sdW1ufVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXROZXdDb2x1bW4odGVtcGxhdGVDb2w6IERHLkNvbHVtbik6IERHLkNvbHVtbiB7XG4gICAgY29uc3QgY29sOiBVbml0c0hhbmRsZXIgPSBuZXcgVW5pdHNIYW5kbGVyKHRlbXBsYXRlQ29sKTtcbiAgICBjb25zdCB0YXJnZXROb3RhdGlvbiA9IGNvbC5ub3RhdGlvbjtcbiAgICByZXR1cm4gY29sLmdldE5ld0NvbHVtbih0YXJnZXROb3RhdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogQSBoZWxwZXIgZnVuY3Rpb24gY2hlY2tpbmcgdGhlIHZhbGlkaXR5IG9mIHRoZSAndW5pdHMnIHN0cmluZ1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdHMgIHRoZSBzdHJpbmcgdG8gYmUgdmFsaWRhdGVkXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVuaXRzU3RyaW5nSXNWYWxpZCh1bml0czogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdW5pdHMgPSB1bml0cy50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IHByZWZpeGVzID0gW05PVEFUSU9OLkZBU1RBLCBOT1RBVElPTi5TRVBBUkFUT1IsIE5PVEFUSU9OLkhFTE1dO1xuICAgIGNvbnN0IHBvc3RmaXhlcyA9IFsncm5hJywgJ2RuYScsICdwdCddO1xuXG4gICAgY29uc3QgcHJlZml4Q3JpdGVyaW9uID0gcHJlZml4ZXMuc29tZSgocCkgPT4gdW5pdHMuc3RhcnRzV2l0aChwLnRvTG93ZXJDYXNlKCkpKTtcbiAgICByZXR1cm4gcHJlZml4Q3JpdGVyaW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdCBhIG5ldyBjb2x1bW4gb2Ygc2VtYW50aWMgdHlwZSBNQUNST01PTEVDVUxFIGZyb20gdGhlIGxpc3Qgb2ZcbiAgICogc3BlY2lmaWVkIHBhcmFtZXRlcnNcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9ICAgIGxlbiAgdGhlIGxlbmd0aCBvZiB0aGUgbmV3IGNvbHVtblxuICAgKiBAcGFyYW0ge3N0cmluZ30gICAgbmFtZSAgdGhlIG5hbWUgb2YgdGhlIG5ldyBjb2x1bW5cbiAgICogQHBhcmFtIHtzdHJpbmd9ICAgIHVuaXRzICB0aGUgdW5pdHMgb2YgdGhlIG5ldyBjb2x1bW5cbiAgICogQHJldHVybiB7REcuQ29sdW1ufVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXROZXdDb2x1bW5Gcm9tUGFyYW1zKFxuICAgIGxlbjogbnVtYmVyLFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICB1bml0czogc3RyaW5nXG4gICk6IERHLkNvbHVtbiB7XG4gICAgLy8gV0FSTklORzogaW4gdGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBpcyBpbXBvc3NpYmxlIHRvIHZlcmlmeSB0aGUgdW5pcXVlbmVzc1xuICAgIC8vIG9mIHRoZSBuZXcgY29sdW1uJ3MgbmFtZVxuICAgIC8vIFRPRE86IHZlcmlmeSB0aGUgdmFsaWRpdHkgb2YgdW5pdHMgcGFyYW1ldGVyXG4gICAgaWYgKCFVbml0c0hhbmRsZXIudW5pdHNTdHJpbmdJc1ZhbGlkKHVuaXRzKSlcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBmb3JtYXQgb2YgXFwndW5pdHNcXCcgcGFyYW1ldGVyJyk7XG4gICAgY29uc3QgbmV3Q29sdW1uID0gREcuQ29sdW1uLmZyb21MaXN0KCdzdHJpbmcnLCBuYW1lLCBuZXcgQXJyYXkobGVuKS5maWxsKCcnKSk7XG4gICAgbmV3Q29sdW1uLnNlbVR5cGUgPSBERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEU7XG4gICAgbmV3Q29sdW1uLnNldFRhZyhERy5UQUdTLlVOSVRTLCB1bml0cyk7XG4gICAgcmV0dXJuIG5ld0NvbHVtbjtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihjb2w6IERHLkNvbHVtbikge1xuICAgIHRoaXMuX2NvbHVtbiA9IGNvbDtcbiAgICBjb25zdCB1bml0cyA9IHRoaXMuX2NvbHVtbi50YWdzW0RHLlRBR1MuVU5JVFNdO1xuICAgIGlmICh1bml0cyAhPT0gbnVsbClcbiAgICAgIHRoaXMuX3VuaXRzID0gdW5pdHM7XG4gICAgZWxzZVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbml0cyBhcmUgbm90IHNwZWNpZmllZCBpbiBjb2x1bW4nKTtcbiAgICB0aGlzLl9ub3RhdGlvbiA9IHRoaXMuZ2V0Tm90YXRpb24oKTtcbiAgICB0aGlzLl9kZWZhdWx0R2FwU3ltYm9sID0gKHRoaXMuaXNGYXN0YSgpKSA/IFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LkZBU1RBIDpcbiAgICAgICh0aGlzLmlzSGVsbSgpKSA/IFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LkhFTE0gOlxuICAgICAgICBVbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5TRVBBUkFUT1I7XG5cbiAgICBpZiAoIXRoaXMuY29sdW1uLnRhZ3MuaGFzKFVuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0U2l6ZSkpIHtcbiAgICAgIGlmICh0aGlzLmlzSGVsbSgpKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZvciBjb2x1bW4gJyR7dGhpcy5jb2x1bW4ubmFtZX0nIG9mIG5vdGF0aW9uICcke3RoaXMubm90YXRpb259JyBgICtcbiAgICAgICAgICBgdGFnICcke1VuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0U2l6ZX0nIGlzIG1hbmRhdG9yeS5gKTtcbiAgICAgIGVsc2UgaWYgKFsnVU4nXS5pbmNsdWRlcyh0aGlzLmFscGhhYmV0KSlcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGb3IgY29sdW1uICcke3RoaXMuY29sdW1uLm5hbWV9JyBvZiBhbHBoYWJldCAnJHt0aGlzLmFscGhhYmV0fScgYCArXG4gICAgICAgICAgYHRhZyAnJHtVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldFNpemV9JyBpcyBtYW5kYXRvcnkuYCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmNvbHVtbi50YWdzLmhhcyhVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldElzTXVsdGljaGFyKSkge1xuICAgICAgaWYgKHRoaXMuaXNIZWxtKCkpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRm9yIGNvbHVtbiAnJHt0aGlzLmNvbHVtbi5uYW1lfScgb2Ygbm90YXRpb24gJyR7dGhpcy5ub3RhdGlvbn0nIGAgK1xuICAgICAgICAgIGB0YWcgJyR7VW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXRJc011bHRpY2hhcn0nIGlzIG1hbmRhdG9yeS5gKTtcbiAgICAgIGVsc2UgaWYgKFsnVU4nXS5pbmNsdWRlcyh0aGlzLmFscGhhYmV0KSlcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGb3IgY29sdW1uICcke3RoaXMuY29sdW1uLm5hbWV9JyBvZiBhbHBoYWJldCAnJHt0aGlzLmFscGhhYmV0fScgYCArXG4gICAgICAgICAgYHRhZyAnJHtVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldElzTXVsdGljaGFyfScgaXMgbWFuZGF0b3J5LmApO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdHMtaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInVuaXRzLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUl0QyxPQUFPLEVBRUwsUUFBUSxFQUVSLGVBQWUsRUFDZixjQUFjLEVBQ2YsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixpRUFBaUU7QUFDakUsTUFBTSxPQUFPLFlBQVk7SUFxTnZCLFlBQW1CLEdBQWM7UUFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDbkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxJQUFJLEtBQUssS0FBSyxJQUFJO1lBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDOztZQUVwQixNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyRixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzFELFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUM7UUFFbEQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcseUNBQW1CLEVBQUU7WUFDNUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFB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QUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQzdDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs7QUE5TXlCLG1DQUFzQixHQUFHO0lBQ2pELElBQUksRUFBRSxHQUFHO0lBQ1QsU0FBUyxFQUFFLEVBQUU7SUFDYixLQUFLLEVBQUUsR0FBRztDQUNYLENBQUM7QUFFcUIsaUNBQW9CLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDcEQsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRztJQUNoRCxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHO0NBQ2pELENBQUMsQ0FBQztBQUNvQiw2QkFBZ0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDakQsNkJBQWdCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcblxuaW1wb3J0IHtcbiAgQUxQSEFCRVQsIE5PVEFUSU9OLFxuICBnZXRTdGF0cyxcbiAgU2VxQ29sU3RhdHMsXG4gIHNwbGl0dGVyQXNGYXN0YSxcbiAgZGV0ZWN0QWxwaGFiZXQsIFRBR1Ncbn0gZnJvbSAnLi9tYWNyb21vbGVjdWxlJztcblxuLyoqIENsYXNzIGZvciBoYW5kbGluZyBub3RhdGlvbiB1bml0cyBpbiBNYWNyb21vbGVjdWxlIGNvbHVtbnMgKi9cbmV4cG9ydCBjbGFzcyBVbml0c0hhbmRsZXIge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2NvbHVtbjogREcuQ29sdW1uOyAvLyB0aGUgY29sdW1uIHRvIGJlIGNvbnZlcnRlZFxuICBwcm90ZWN0ZWQgX3VuaXRzOiBzdHJpbmc7IC8vIHVuaXRzLCBvZiB0aGUgZm9ybSBmYXN0YSwgc2VwYXJhdG9yXG4gIHByb3RlY3RlZCBfbm90YXRpb246IE5PVEFUSU9OOyAvLyBjdXJyZW50IG5vdGF0aW9uICh3aXRob3V0IDpTRVE6TlQsIGV0Yy4pXG4gIHByb3RlY3RlZCBfZGVmYXVsdEdhcFN5bWJvbDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgc3RhdGljIHJlYWRvbmx5IF9kZWZhdWx0R2FwU3ltYm9sc0RpY3QgPSB7XG4gICAgSEVMTTogJyonLFxuICAgIFNFUEFSQVRPUjogJycsXG4gICAgRkFTVEE6ICctJyxcbiAgfTtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBlcHRpZGVGYXN0YUFscGhhYmV0ID0gbmV3IFNldChbXG4gICAgJ0cnLCAnTCcsICdZJywgJ1MnLCAnRScsICdRJywgJ0QnLCAnTicsICdGJywgJ0EnLFxuICAgICdLJywgJ1InLCAnSCcsICdDJywgJ1YnLCAnUCcsICdXJywgJ0knLCAnTScsICdUJyxcbiAgXSk7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRG5hRmFzdGFBbHBoYWJldCA9IG5ldyBTZXQoWydBJywgJ0MnLCAnRycsICdUJ10pO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFJuYUZhc3RhQWxwaGFiZXQgPSBuZXcgU2V0KFsnQScsICdDJywgJ0cnLCAnVSddKTtcblxuICBwdWJsaWMgc3RhdGljIHNldFVuaXRzVG9GYXN0YUNvbHVtbihjb2w6IERHLkNvbHVtbikge1xuICAgIGlmIChjb2wuc2VtVHlwZSAhPT0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYXN0YSBjb2x1bW4gbXVzdCBiZSBNQUNST01PTEVDVUxFJyk7XG5cbiAgICBjb25zdCBzdGF0czogU2VxQ29sU3RhdHMgPSBnZXRTdGF0cyhjb2wsIDUsIHNwbGl0dGVyQXNGYXN0YSk7XG4gICAgY29uc3Qgc2VxVHlwZSA9IHN0YXRzLnNhbWVMZW5ndGggPyAnU0VRLk1TQScgOiAnU0VRJztcbiAgICBjb25zdCBhbHBoYWJldCA9IGRldGVjdEFscGhhYmV0KHN0YXRzKTtcblxuICAgIGNvbC5zZXRUYWcoREcuVEFHUy5VTklUUywgTk9UQVRJT04uRkFTVEEpO1xuICAgIGNvbC5zZXRUYWcoVEFHUy5hbGlnbmVkLCBzZXFUeXBlKTtcbiAgICBjb2wuc2V0VGFnKFRBR1MuYWxwaGFiZXQsIGFscGhhYmV0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdW5pdHMoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuX3VuaXRzOyB9XG5cbiAgcHJvdGVjdGVkIGdldCBjb2x1bW4oKTogREcuQ29sdW1uIHsgcmV0dXJuIHRoaXMuX2NvbHVtbjsgfVxuXG4gIHB1YmxpYyBnZXQgbm90YXRpb24oKTogTk9UQVRJT04geyByZXR1cm4gdGhpcy5fbm90YXRpb247IH1cblxuICBwdWJsaWMgZ2V0IGRlZmF1bHRHYXBTeW1ib2woKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuX2RlZmF1bHRHYXBTeW1ib2w7IH1cblxuICBwdWJsaWMgZ2V0IHNlcGFyYXRvcigpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNlcGFyYXRvciA9IHRoaXMuY29sdW1uLmdldFRhZyhUQUdTLnNlcGFyYXRvcik7XG4gICAgaWYgKHNlcGFyYXRvciAhPT0gbnVsbClcbiAgICAgIHJldHVybiBzZXBhcmF0b3I7XG4gICAgZWxzZVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTZXBhcmF0b3Igbm90IHNldCcpO1xuICB9XG5cbiAgcHVibGljIGdldCBhbGlnbmVkKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYWxpZ25lZCA9IHRoaXMuY29sdW1uLmdldFRhZyhUQUdTLmFsaWduZWQpO1xuICAgIGlmIChhbGlnbmVkICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gYWxpZ25lZDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUYWcgYWxpZ25lZCBub3Qgc2V0Jyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEFscGhhYmV0IG5hbWUgKHVwcGVyIGNhc2UpICovXG4gIHB1YmxpYyBnZXQgYWxwaGFiZXQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBhbHBoYWJldCA9IHRoaXMuY29sdW1uLmdldFRhZyhUQUdTLmFscGhhYmV0KTtcbiAgICBpZiAoYWxwaGFiZXQgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiBhbHBoYWJldC50b1VwcGVyQ2FzZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RhZyBhbHBoYWJldCBub3Qgc2V0Jyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEFscGhhYmV0U2l6ZSgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLm5vdGF0aW9uID09IE5PVEFUSU9OLkhFTE0gfHwgdGhpcy5hbHBoYWJldCA9PSBBTFBIQUJFVC5VTikge1xuICAgICAgY29uc3QgYWxwaGFiZXRTaXplID0gcGFyc2VJbnQodGhpcy5jb2x1bW4uZ2V0VGFnKFRBR1MuYWxwaGFiZXRTaXplKSk7XG4gICAgICByZXR1cm4gYWxwaGFiZXRTaXplO1xuICAgIH0gZWxzZSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuYWxwaGFiZXQpIHtcbiAgICAgIGNhc2UgQUxQSEFCRVQuUFQ6XG4gICAgICAgIHJldHVybiAyMDtcbiAgICAgIGNhc2UgQUxQSEFCRVQuRE5BOlxuICAgICAgY2FzZSBBTFBIQUJFVC5STkE6XG4gICAgICAgIHJldHVybiA0O1xuICAgICAgY2FzZSAnTlQnOlxuICAgICAgICBjb25zb2xlLndhcm4oYFVuZXhwZWN0ZWQgYWxwaGFiZXQgJ05UJy5gKTtcbiAgICAgICAgcmV0dXJuIDQ7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgYWxwaGFiZXQgJyR7dGhpcy5hbHBoYWJldH0nLmApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRBbHBoYWJldElzTXVsdGljaGFyKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLm5vdGF0aW9uID09IE5PVEFUSU9OLkhFTE0gfHwgdGhpcy5hbHBoYWJldCA9PSBBTFBIQUJFVC5VTikge1xuICAgICAgcmV0dXJuIHRoaXMuY29sdW1uLmdldFRhZyhUQUdTLmFscGhhYmV0SXNNdWx0aWNoYXIpID09ICd0cnVlJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc0Zhc3RhKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5ub3RhdGlvbiA9PT0gTk9UQVRJT04uRkFTVEE7IH1cblxuICBwdWJsaWMgaXNTZXBhcmF0b3IoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLm5vdGF0aW9uID09PSBOT1RBVElPTi5TRVBBUkFUT1I7IH1cblxuICBwdWJsaWMgaXNIZWxtKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5ub3RhdGlvbiA9PT0gTk9UQVRJT04uSEVMTTsgfVxuXG4gIHB1YmxpYyBpc1JuYSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuYWxwaGFiZXQgPT09ICdSTkEnOyB9XG5cbiAgcHVibGljIGlzRG5hKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5hbHBoYWJldCA9PT0gJ0ROQSc7IH1cblxuICBwdWJsaWMgaXNQZXB0aWRlKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5hbHBoYWJldCA9PT0gJ1BUJzsgfVxuXG4gIHB1YmxpYyBpc01zYSgpOiBib29sZWFuIHtyZXR1cm4gdGhpcy5hbGlnbmVkLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoJ01TQScpOyB9XG5cbiAgLyoqIEFzc29jaWF0ZSBub3RhdGlvbiB0eXBlcyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHVuaXRzICovXG4gIC8qKlxuICAgKiBAcmV0dXJuIHtOT1RBVElPTn0gICAgIE5vdGF0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgdW5pdHMgdHlwZVxuICAgKi9cbiAgcHJvdGVjdGVkIGdldE5vdGF0aW9uKCk6IE5PVEFUSU9OIHtcbiAgICBpZiAodGhpcy51bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoTk9UQVRJT04uRkFTVEEpKVxuICAgICAgcmV0dXJuIE5PVEFUSU9OLkZBU1RBO1xuICAgIGVsc2UgaWYgKHRoaXMudW5pdHMudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKE5PVEFUSU9OLlNFUEFSQVRPUikpXG4gICAgICByZXR1cm4gTk9UQVRJT04uU0VQQVJBVE9SO1xuICAgIGVsc2UgaWYgKHRoaXMudW5pdHMudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKE5PVEFUSU9OLkhFTE0pKVxuICAgICAgcmV0dXJuIE5PVEFUSU9OLkhFTE07XG4gICAgZWxzZVxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2x1bW4gJyR7dGhpcy5jb2x1bW4ubmFtZX0nIGhhcyB1bmV4cGVjdGVkIG5vdGF0aW9uICcke3RoaXMudW5pdHN9Jy5gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgZW1wdHkgY29sdW1uIG9mIHRoZSBzcGVjaWZpZWQgbm90YXRpb24gdHlwZSBhbmQgdGhlIHNhbWVcbiAgICogbGVuZ3RoIGFzIGNvbHVtblxuICAgKlxuICAgKiBAcGFyYW0ge05PVEFUSU9OfSB0YXJnZXROb3RhdGlvblxuICAgKiBAcmV0dXJuIHtERy5Db2x1bW59XG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0TmV3Q29sdW1uKHRhcmdldE5vdGF0aW9uOiBOT1RBVElPTik6IERHLkNvbHVtbiB7XG4gICAgY29uc3QgY29sID0gdGhpcy5jb2x1bW47XG4gICAgY29uc3QgbGVuID0gY29sLmxlbmd0aDtcbiAgICBjb25zdCBuYW1lID0gdGFyZ2V0Tm90YXRpb24udG9Mb3dlckNhc2UoKSArICcoJyArIGNvbC5uYW1lICsgJyknO1xuICAgIGNvbnN0IG5ld0NvbE5hbWUgPSBjb2wuZGF0YUZyYW1lLmNvbHVtbnMuZ2V0VW51c2VkTmFtZShuYW1lKTtcbiAgICBjb25zdCBuZXdDb2x1bW4gPSBERy5Db2x1bW4uZnJvbUxpc3QoJ3N0cmluZycsIG5ld0NvbE5hbWUsIG5ldyBBcnJheShsZW4pLmZpbGwoJycpKTtcbiAgICBuZXdDb2x1bW4uc2VtVHlwZSA9IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRTtcbiAgICBuZXdDb2x1bW4uc2V0VGFnKERHLlRBR1MuVU5JVFMsIHRhcmdldE5vdGF0aW9uKTtcbiAgICBuZXdDb2x1bW4uc2V0VGFnKERHLlRBR1MuQ0VMTF9SRU5ERVJFUiwgJ01hY3JvbW9sZWN1bGUnKTtcblxuICAgIGNvbnN0IHNyY0FscGhhYmV0ID0gY29sLmdldFRhZyhUQUdTLmFscGhhYmV0KTtcbiAgICBpZiAoc3JjQWxwaGFiZXQpXG4gICAgICBuZXdDb2x1bW4uc2V0VGFnKFRBR1MuYWxwaGFiZXQsIHNyY0FscGhhYmV0KTtcblxuICAgIGxldCBzcmNBbHBoYWJldFNpemU6IHN0cmluZyA9IGNvbC5nZXRUYWcoVEFHUy5hbHBoYWJldFNpemUpO1xuICAgIGlmIChzcmNBbHBoYWJldFNpemUpXG4gICAgICBuZXdDb2x1bW4uc2V0VGFnKFRBR1MuYWxwaGFiZXRTaXplLCBzcmNBbHBoYWJldFNpemUpO1xuXG4gICAgY29uc3Qgc3JjQWxwaGFiZXRJc011bHRpY2hhcjogc3RyaW5nID0gY29sLmdldFRhZyhUQUdTLmFscGhhYmV0SXNNdWx0aWNoYXIpO1xuICAgIGlmIChzcmNBbHBoYWJldElzTXVsdGljaGFyICE9PSB1bmRlZmluZWQpXG4gICAgICBuZXdDb2x1bW4uc2V0VGFnKFRBR1MuYWxwaGFiZXRJc011bHRpY2hhciwgc3JjQWxwaGFiZXRJc011bHRpY2hhcik7XG5cbiAgICBpZiAodGFyZ2V0Tm90YXRpb24gPT0gTk9UQVRJT04uSEVMTSkge1xuICAgICAgc3JjQWxwaGFiZXRTaXplID0gdGhpcy5nZXRBbHBoYWJldFNpemUoKS50b1N0cmluZygpO1xuICAgICAgbmV3Q29sdW1uLnNldFRhZyhUQUdTLmFscGhhYmV0U2l6ZSwgc3JjQWxwaGFiZXRTaXplKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3Q29sdW1uO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBlbXB0eSBjb2x1bW4gdXNpbmcgdGVtcGxhdGVDb2wgYXMgYSB0ZW1wbGF0ZVxuICAgKlxuICAgKiBAcGFyYW0ge0RHLkNvbHVtbn0gdGVtcGxhdGVDb2wgIHRoZSBwcm9wZXJ0aWVzIGFuZCB1bml0cyBvZiB0aGlzIGNvbHVtbiBhcmUgdXNlZCBhcyBhXG4gICAqIHRlbXBsYXRlIHRvIGJ1aWxkIHRoZSBuZXcgb25lXG4gICAqIEByZXR1cm4ge0RHLkNvbHVtbn1cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0TmV3Q29sdW1uKHRlbXBsYXRlQ29sOiBERy5Db2x1bW4pOiBERy5Db2x1bW4ge1xuICAgIGNvbnN0IGNvbDogVW5pdHNIYW5kbGVyID0gbmV3IFVuaXRzSGFuZGxlcih0ZW1wbGF0ZUNvbCk7XG4gICAgY29uc3QgdGFyZ2V0Tm90YXRpb24gPSBjb2wubm90YXRpb247XG4gICAgcmV0dXJuIGNvbC5nZXROZXdDb2x1bW4odGFyZ2V0Tm90YXRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgaGVscGVyIGZ1bmN0aW9uIGNoZWNraW5nIHRoZSB2YWxpZGl0eSBvZiB0aGUgJ3VuaXRzJyBzdHJpbmdcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXRzICB0aGUgc3RyaW5nIHRvIGJlIHZhbGlkYXRlZFxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB1bml0c1N0cmluZ0lzVmFsaWQodW5pdHM6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHVuaXRzID0gdW5pdHMudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBwcmVmaXhlcyA9IFtOT1RBVElPTi5GQVNUQSwgTk9UQVRJT04uU0VQQVJBVE9SLCBOT1RBVElPTi5IRUxNXTtcbiAgICBjb25zdCBwb3N0Zml4ZXMgPSBbJ3JuYScsICdkbmEnLCAncHQnXTtcblxuICAgIGNvbnN0IHByZWZpeENyaXRlcmlvbiA9IHByZWZpeGVzLnNvbWUoKHApID0+IHVuaXRzLnN0YXJ0c1dpdGgocC50b0xvd2VyQ2FzZSgpKSk7XG4gICAgcmV0dXJuIHByZWZpeENyaXRlcmlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3QgYSBuZXcgY29sdW1uIG9mIHNlbWFudGljIHR5cGUgTUFDUk9NT0xFQ1VMRSBmcm9tIHRoZSBsaXN0IG9mXG4gICAqIHNwZWNpZmllZCBwYXJhbWV0ZXJzXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSAgICBsZW4gIHRoZSBsZW5ndGggb2YgdGhlIG5ldyBjb2x1bW5cbiAgICogQHBhcmFtIHtzdHJpbmd9ICAgIG5hbWUgIHRoZSBuYW1lIG9mIHRoZSBuZXcgY29sdW1uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSAgICB1bml0cyAgdGhlIHVuaXRzIG9mIHRoZSBuZXcgY29sdW1uXG4gICAqIEByZXR1cm4ge0RHLkNvbHVtbn1cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0TmV3Q29sdW1uRnJvbVBhcmFtcyhcbiAgICBsZW46IG51bWJlcixcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgdW5pdHM6IHN0cmluZ1xuICApOiBERy5Db2x1bW4ge1xuICAgIC8vIFdBUk5JTkc6IGluIHRoaXMgaW1wbGVtZW50YXRpb24gaXMgaXMgaW1wb3NzaWJsZSB0byB2ZXJpZnkgdGhlIHVuaXF1ZW5lc3NcbiAgICAvLyBvZiB0aGUgbmV3IGNvbHVtbidzIG5hbWVcbiAgICAvLyBUT0RPOiB2ZXJpZnkgdGhlIHZhbGlkaXR5IG9mIHVuaXRzIHBhcmFtZXRlclxuICAgIGlmICghVW5pdHNIYW5kbGVyLnVuaXRzU3RyaW5nSXNWYWxpZCh1bml0cykpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZm9ybWF0IG9mIFxcJ3VuaXRzXFwnIHBhcmFtZXRlcicpO1xuICAgIGNvbnN0IG5ld0NvbHVtbiA9IERHLkNvbHVtbi5mcm9tTGlzdCgnc3RyaW5nJywgbmFtZSwgbmV3IEFycmF5KGxlbikuZmlsbCgnJykpO1xuICAgIG5ld0NvbHVtbi5zZW1UeXBlID0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFO1xuICAgIG5ld0NvbHVtbi5zZXRUYWcoREcuVEFHUy5VTklUUywgdW5pdHMpO1xuICAgIHJldHVybiBuZXdDb2x1bW47XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoY29sOiBERy5Db2x1bW4pIHtcbiAgICB0aGlzLl9jb2x1bW4gPSBjb2w7XG4gICAgY29uc3QgdW5pdHMgPSB0aGlzLl9jb2x1bW4udGFnc1tERy5UQUdTLlVOSVRTXTtcbiAgICBpZiAodW5pdHMgIT09IG51bGwpXG4gICAgICB0aGlzLl91bml0cyA9IHVuaXRzO1xuICAgIGVsc2VcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5pdHMgYXJlIG5vdCBzcGVjaWZpZWQgaW4gY29sdW1uJyk7XG4gICAgdGhpcy5fbm90YXRpb24gPSB0aGlzLmdldE5vdGF0aW9uKCk7XG4gICAgdGhpcy5fZGVmYXVsdEdhcFN5bWJvbCA9ICh0aGlzLmlzRmFzdGEoKSkgPyBVbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5GQVNUQSA6XG4gICAgICAodGhpcy5pc0hlbG0oKSkgPyBVbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5IRUxNIDpcbiAgICAgICAgVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QuU0VQQVJBVE9SO1xuXG4gICAgaWYgKCF0aGlzLmNvbHVtbi50YWdzLmhhcyhUQUdTLmFscGhhYmV0U2l6ZSkpIHtcbiAgICAgIGlmICh0aGlzLmlzSGVsbSgpKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZvciBjb2x1bW4gJyR7dGhpcy5jb2x1bW4ubmFtZX0nIG9mIG5vdGF0aW9uICcke3RoaXMubm90YXRpb259JyBgICtcbiAgICAgICAgICBgdGFnICcke1RBR1MuYWxwaGFiZXRTaXplfScgaXMgbWFuZGF0b3J5LmApO1xuICAgICAgZWxzZSBpZiAoWydVTiddLmluY2x1ZGVzKHRoaXMuYWxwaGFiZXQpKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZvciBjb2x1bW4gJyR7dGhpcy5jb2x1bW4ubmFtZX0nIG9mIGFscGhhYmV0ICcke3RoaXMuYWxwaGFiZXR9JyBgICtcbiAgICAgICAgICBgdGFnICcke1RBR1MuYWxwaGFiZXRTaXplfScgaXMgbWFuZGF0b3J5LmApO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5jb2x1bW4udGFncy5oYXMoVEFHUy5hbHBoYWJldElzTXVsdGljaGFyKSkge1xuICAgICAgaWYgKHRoaXMuaXNIZWxtKCkpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRm9yIGNvbHVtbiAnJHt0aGlzLmNvbHVtbi5uYW1lfScgb2Ygbm90YXRpb24gJyR7dGhpcy5ub3RhdGlvbn0nIGAgK1xuICAgICAgICAgIGB0YWcgJyR7VEFHUy5hbHBoYWJldElzTXVsdGljaGFyfScgaXMgbWFuZGF0b3J5LmApO1xuICAgICAgZWxzZSBpZiAoWydVTiddLmluY2x1ZGVzKHRoaXMuYWxwaGFiZXQpKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZvciBjb2x1bW4gJyR7dGhpcy5jb2x1bW4ubmFtZX0nIG9mIGFscGhhYmV0ICcke3RoaXMuYWxwaGFiZXR9JyBgICtcbiAgICAgICAgICBgdGFnICcke1RBR1MuYWxwaGFiZXRJc011bHRpY2hhcn0nIGlzIG1hbmRhdG9yeS5gKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phylocanvas-gl-viewer.d.ts","sourceRoot":"","sources":["phylocanvas-gl-viewer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAC,OAAO,EAAC,MAAM,UAAU,CAAC;AAGjC,MAAM,WAAW,oBAAqB,SAAQ,OAAO;IACnD,IAAI,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC;IAE1B,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,EAAE;CAChC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGh5bG9jYW52YXMtZ2wtdmlld2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGh5bG9jYW52YXMtZ2wtdmlld2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuXG5pbXBvcnQge0lWaWV3ZXJ9IGZyb20gJy4vdmlld2VyJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIElQaHlsb2NhbnZhc0dsVmlld2VyIGV4dGVuZHMgSVZpZXdlciB7XG4gIGdldCBud2tEZigpOiBERy5EYXRhRnJhbWU7XG5cbiAgc2V0IG53a0RmKHZhbHVlOiBERy5EYXRhRnJhbWUpO1xufSJdfQ==
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as DG from 'datagrok-api/dg';
|
|
2
2
|
import { VdRegion } from '../vd-regions';
|
|
3
|
+
import { IViewer } from './viewer';
|
|
3
4
|
/** Interface for VdRegionsViewer from @datagrok/bio to unbind dependency to Bio package */
|
|
4
|
-
export interface IVdRegionsViewer {
|
|
5
|
-
get root(): HTMLElement;
|
|
5
|
+
export interface IVdRegionsViewer extends IViewer {
|
|
6
6
|
init(): Promise<void>;
|
|
7
7
|
setDf(mlbDf: DG.DataFrame, regions: VdRegion[]): Promise<void>;
|
|
8
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vd-regions-viewer.d.ts","sourceRoot":"","sources":["vd-regions-viewer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"vd-regions-viewer.d.ts","sourceRoot":"","sources":["vd-regions-viewer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,EAAC,OAAO,EAAC,MAAM,UAAU,CAAC;AAEjC,2FAA2F;AAC3F,MAAM,WAAW,gBAAiB,SAAQ,OAAO;IAC/C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmQtcmVnaW9ucy12aWV3ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ2ZC1yZWdpb25zLXZpZXdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcblxuaW1wb3J0IHtWZFJlZ2lvbn0gZnJvbSAnLi4vdmQtcmVnaW9ucyc7XG5pbXBvcnQge0lWaWV3ZXJ9IGZyb20gJy4vdmlld2VyJztcblxuLyoqIEludGVyZmFjZSBmb3IgVmRSZWdpb25zVmlld2VyIGZyb20gQGRhdGFncm9rL2JpbyB0byB1bmJpbmQgZGVwZW5kZW5jeSB0byBCaW8gcGFja2FnZSAqL1xuZXhwb3J0IGludGVyZmFjZSBJVmRSZWdpb25zVmlld2VyIGV4dGVuZHMgSVZpZXdlciB7XG4gIGluaXQoKTogUHJvbWlzZTx2b2lkPjtcblxuICBzZXREZihtbGJEZjogREcuRGF0YUZyYW1lLCByZWdpb25zOiBWZFJlZ2lvbltdKTogUHJvbWlzZTx2b2lkPjtcbn0iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewer.d.ts","sourceRoot":"","sources":["viewer.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,OAAO;IACtB,mCAAmC;IACnC,IAAI,IAAI,IAAI,WAAW,CAAC;IAExB,2BAA2B;IAC3B,KAAK,IAAI,IAAI,CAAC;IAEd,mCAAmC;IACnC,cAAc,IAAI,GAAG,CAAC;CACvB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidmlld2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElWaWV3ZXIge1xuICAvKiogSnNWaWV3ZXIucm9vdCgpOiBIVE1MRWxlbWVudCAqL1xuICBnZXQgcm9vdCgpOiBIVE1MRWxlbWVudDtcblxuICAvKiogVmlld2VyLmNsb3NlKCk6IHZvaWQgKi9cbiAgY2xvc2UoKTogdm9pZDtcblxuICAvKiogVmlld2VyLnJlbW92ZUZyb21WaWV3KCk6IGFueSAqL1xuICByZW1vdmVGcm9tVmlldygpOiBhbnk7XG59Il19
|