@magic-xpa/mscorelib 4.1100.0-dev4110.252 → 4.1100.0-dev4110.256
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/esm2022/src/DateTime.mjs +1 -1
- package/esm2022/src/Dictionary.mjs +1 -1
- package/esm2022/src/Encoding.mjs +1 -1
- package/esm2022/src/Exception.mjs +1 -1
- package/esm2022/src/HashTable.mjs +1 -1
- package/esm2022/src/ISO_8859_1_Encoding.mjs +1 -1
- package/esm2022/src/List.mjs +1 -1
- package/esm2022/src/NNumber.mjs +1 -1
- package/esm2022/src/NString.mjs +1 -1
- package/esm2022/src/Stack.mjs +1 -1
- package/esm2022/src/StringBuilder.mjs +1 -1
- package/fesm2022/magic-xpa-mscorelib.mjs.map +1 -1
- package/package.json +1 -1
package/esm2022/src/DateTime.mjs
CHANGED
|
@@ -72,4 +72,4 @@ export class DateTime {
|
|
|
72
72
|
return (hh * 60 * 60 + mm * 60 + ss) * 1000 + ms;
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0ZVRpbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc2NvcmVsaWIvc3JjL0RhdGVUaW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQTtBQUUzQixNQUFNLENBQU4sSUFBWSxZQUdYO0FBSEQsV0FBWSxZQUFZO0lBQ3RCLGlEQUFLLENBQUE7SUFDTCw2Q0FBRyxDQUFBO0FBQ0wsQ0FBQyxFQUhXLFlBQVksS0FBWixZQUFZLFFBR3ZCO0FBR0QsTUFBTSxPQUFPLFFBQVE7SUFDWCxFQUFFLEdBQVMsSUFBSSxDQUFDO0lBQ2hCLElBQUksR0FBaUIsSUFBSSxDQUFDO0lBR2pCLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQztJQUdoQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFFN0MsSUFBSSxLQUFLO1FBR1AsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUM7SUFDeEgsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzNGLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuRixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDckYsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3pGLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN6RixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNuRyxDQUFDO0lBTUQsWUFBWSxVQUFlLEVBQUUsS0FBYyxFQUFFLEdBQVksRUFBRSxJQUFhLEVBQUUsTUFBZSxFQUFFLE1BQWU7UUFDeEcsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMxQixJQUFJLENBQUMsRUFBRSxHQUFTLFVBQVUsQ0FBQztTQUM1QjtRQUNELElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBUyxVQUFVLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUN4RDtRQUNELElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBUyxVQUFVLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztTQUM5RTtRQUNELElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztJQUNqQyxDQUFDO0lBS0QsTUFBTSxDQUFDLFlBQW9CO1FBQ3pCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELE1BQU0sS0FBSyxNQUFNO1FBQ2YsSUFBSSxDQUFDLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQztRQUMxQixPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRztRQUNaLElBQUksQ0FBQyxHQUFHLElBQUksUUFBUSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDNUIsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsTUFBTSxDQUFDLDJCQUEyQixDQUFDLE9BQWdCLEVBQUUsSUFBVTtRQUM3RCxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3hELElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDNUQsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUU1RCxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxNQUFNLENBQUMsZ0NBQWdDLENBQUMsT0FBZ0IsRUFBRSxJQUFVO1FBQ2xFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEQsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM1RCxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzVELElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDakUsT0FBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFJLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCdcclxuXHJcbmV4cG9ydCBlbnVtIERhdGVUaW1lS2luZCB7XHJcbiAgTG9jYWwsXHJcbiAgVXRjXHJcbn1cclxuXHJcbi8vIEBkeW5hbWljXHJcbmV4cG9ydCBjbGFzcyBEYXRlVGltZSB7XHJcbiAgcHJpdmF0ZSBkdDogRGF0ZSA9IG51bGw7XHJcbiAgcHJpdmF0ZSBraW5kOiBEYXRlVGltZUtpbmQgPSBudWxsO1xyXG5cclxuICAvLyB0aGUgbnVtYmVyIG9mIC5uZXQgdGlja3MgYXQgdGhlIHVuaXggZXBvY2hcclxuICBwcml2YXRlIHJlYWRvbmx5IGVwb2NoVGlja3MgPSA2MjEzNTU5NjgwMDAwMDAwMDA7XHJcblxyXG4gIC8vIHRoZXJlIGFyZSAxMDAwMCAubmV0IHRpY2tzIHBlciBtaWxsaXNlY29uZFxyXG4gIHByaXZhdGUgcmVhZG9ubHkgdGlja3NQZXJNaWxsaXNlY29uZCA9IDEwMDAwO1xyXG5cclxuICBnZXQgVGlja3MoKTogbnVtYmVyIHtcclxuICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc5NjY1NTkvaG93LXRvLWNvbnZlcnQtamF2YXNjcmlwdC1kYXRlLW9iamVjdC10by10aWNrc1xyXG4gICAgLy8gVE9ETyAtIGNoZWNrIGlmIHdlIG5lZWQgdGhpcyBvciB0byB1c2UgTWlzYy5nZXRTeXN0ZW1NaWxsaXNlY29uZHMoKVxyXG4gICAgcmV0dXJuICgodGhpcy5kdC5nZXRUaW1lKCkgKiB0aGlzLnRpY2tzUGVyTWlsbGlzZWNvbmQpICsgdGhpcy5lcG9jaFRpY2tzKSAtICh0aGlzLmR0LmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMDAwMDApO1xyXG4gIH1cclxuXHJcbiAgZ2V0IFllYXIoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmtpbmQgPT09IERhdGVUaW1lS2luZC5VdGMgPyB0aGlzLmR0LmdldFVUQ0Z1bGxZZWFyKCkgOiB0aGlzLmR0LmdldEZ1bGxZZWFyKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgTW9udGgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmtpbmQgPT09IERhdGVUaW1lS2luZC5VdGMgPyB0aGlzLmR0LmdldFVUQ01vbnRoKCkgKyAxIDogdGhpcy5kdC5nZXRNb250aCgpICsgMTtcclxuICB9XHJcblxyXG4gIGdldCBEYXkoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmtpbmQgPT09IERhdGVUaW1lS2luZC5VdGMgPyB0aGlzLmR0LmdldFVUQ0RhdGUoKSA6IHRoaXMuZHQuZ2V0RGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IEhvdXIoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmtpbmQgPT09IERhdGVUaW1lS2luZC5VdGMgPyB0aGlzLmR0LmdldFVUQ0hvdXJzKCkgOiB0aGlzLmR0LmdldEhvdXJzKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgTWludXRlKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5raW5kID09PSBEYXRlVGltZUtpbmQuVXRjID8gdGhpcy5kdC5nZXRVVENNaW51dGVzKCkgOiB0aGlzLmR0LmdldE1pbnV0ZXMoKTtcclxuICB9XHJcblxyXG4gIGdldCBTZWNvbmQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmtpbmQgPT09IERhdGVUaW1lS2luZC5VdGMgPyB0aGlzLmR0LmdldFVUQ1NlY29uZHMoKSA6IHRoaXMuZHQuZ2V0U2Vjb25kcygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IE1pbGxpc2Vjb25kKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5raW5kID09PSBEYXRlVGltZUtpbmQuVXRjID8gdGhpcy5kdC5nZXRVVENNaWxsaXNlY29uZHMoKSA6IHRoaXMuZHQuZ2V0TWlsbGlzZWNvbmRzKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoZGF0ZTogRGF0ZSk7XHJcbiAgY29uc3RydWN0b3IoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXk6IG51bWJlcik7XHJcbiAgY29uc3RydWN0b3IoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXk6IG51bWJlciwgaG91ciA6IG51bWJlciwgbWludXRlIDogbnVtYmVyLCBzZWNvbmQ6IG51bWJlcik7XHJcbiAgY29uc3RydWN0b3IoeWVhck9yRGF0ZTogYW55LCBtb250aD86IG51bWJlciwgZGF5PzogbnVtYmVyLCBob3VyPzogbnVtYmVyLCBtaW51dGU/OiBudW1iZXIsIHNlY29uZD86IG51bWJlcikge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgdGhpcy5kdCA9IDxEYXRlPnllYXJPckRhdGU7XHJcbiAgICB9XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMykge1xyXG4gICAgICB0aGlzLmR0ID0gbmV3IERhdGUoPG51bWJlcj55ZWFyT3JEYXRlLCBtb250aCAtIDEsIGRheSk7XHJcbiAgICB9XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gNikge1xyXG4gICAgICB0aGlzLmR0ID0gbmV3IERhdGUoPG51bWJlcj55ZWFyT3JEYXRlLCBtb250aCAtIDEsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5raW5kID0gRGF0ZVRpbWVLaW5kLkxvY2FsO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgRm9ybWF0KGZvcm1hdFN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBtb21lbnQodGhpcy5kdCkuZm9ybWF0KGZvcm1hdFN0cmluZyk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0IFV0Y05vdygpOiBEYXRlVGltZSB7XHJcbiAgICBsZXQgZCA9IG5ldyBEYXRlVGltZShuZXcgRGF0ZSgpKTtcclxuICAgIGQua2luZCA9IERhdGVUaW1lS2luZC5VdGM7XHJcbiAgICByZXR1cm4gZDtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXQgTm93KCk6IERhdGVUaW1lIHtcclxuICAgIGxldCBkID0gbmV3IERhdGVUaW1lKG5ldyBEYXRlKCkpO1xyXG4gICAgZC5raW5kID0gRGF0ZVRpbWVLaW5kLkxvY2FsO1xyXG4gICAgcmV0dXJuIGQ7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgR2V0VG90YWxTZWNvbmRzRnJvbU1pZG5pZ2h0KHV0Y1RpbWU6IGJvb2xlYW4sIGRhdGU6IERhdGUpOiBudW1iZXIge1xyXG4gICAgbGV0IGhoID0gdXRjVGltZSA/IGRhdGUuZ2V0VVRDSG91cnMoKSA6IGRhdGUuZ2V0SG91cnMoKTtcclxuICAgIGxldCBtbSA9IHV0Y1RpbWUgPyBkYXRlLmdldFVUQ01pbnV0ZXMoKSA6IGRhdGUuZ2V0TWludXRlcygpO1xyXG4gICAgbGV0IHNzID0gdXRjVGltZSA/IGRhdGUuZ2V0VVRDU2Vjb25kcygpIDogZGF0ZS5nZXRTZWNvbmRzKCk7XHJcblxyXG4gICAgcmV0dXJuIGhoICogNjAgKiA2MCArIG1tICogNjAgKyBzcztcclxuICB9XHJcblxyXG4gIHN0YXRpYyBHZXRUb3RhbE1pbGxpU2Vjb25kc0Zyb21NaWRuaWdodCh1dGNUaW1lOiBib29sZWFuLCBkYXRlOiBEYXRlKTogbnVtYmVyIHtcclxuICAgIGxldCBoaCA9IHV0Y1RpbWUgPyBkYXRlLmdldFVUQ0hvdXJzKCkgOiBkYXRlLmdldEhvdXJzKCk7XHJcbiAgICBsZXQgbW0gPSB1dGNUaW1lID8gZGF0ZS5nZXRVVENNaW51dGVzKCkgOiBkYXRlLmdldE1pbnV0ZXMoKTtcclxuICAgIGxldCBzcyA9IHV0Y1RpbWUgPyBkYXRlLmdldFVUQ1NlY29uZHMoKSA6IGRhdGUuZ2V0U2Vjb25kcygpO1xyXG4gICAgbGV0IG1zID0gdXRjVGltZSA/IGRhdGUuZ2V0VVRDU2Vjb25kcygpIDogZGF0ZS5nZXRNaWxsaXNlY29uZHMoKTtcclxuICAgIHJldHVybiAoaGggKiA2MCAqIDYwICsgbW0gKiA2MCArIHNzKSAqIDEwMDAgICsgbXM7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuIl19
|
|
@@ -36,4 +36,4 @@ export class Dictionary {
|
|
|
36
36
|
return Object.keys(this.values);
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGljdGlvbmFyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvRGljdGlvbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBRXRDLE1BQU0sT0FBTyxVQUFVO0lBQ2IsTUFBTSxHQUFhLElBQUksS0FBSyxFQUFFLENBQUM7SUFFdkMsUUFBUSxDQUFDLEdBQVc7UUFDbEIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUM7WUFDakMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDOztZQUV4QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQVcsRUFBRSxLQUFRO1FBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBVyxFQUFFLEtBQVE7UUFDdkIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUM7WUFDakMsTUFBTSxJQUFJLFNBQVMsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDOztZQUV4RSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQVc7UUFDckIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQVcsRUFBRSxNQUFtQjtRQUMxQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ25DLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoQyxPQUFPLElBQUksQ0FBQztTQUNiO2FBQ0k7WUFDSCxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNwQixPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlZlBhcmFtfSBmcm9tIFwiLi9SZWZQYXJhbVwiO1xyXG5pbXBvcnQge0V4Y2VwdGlvbn0gZnJvbSBcIi4vRXhjZXB0aW9uXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgRGljdGlvbmFyeTxWPiB7XHJcbiAgcHJpdmF0ZSB2YWx1ZXM6IEFycmF5PFY+ID0gbmV3IEFycmF5KCk7XHJcblxyXG4gIGdldF9JdGVtKGtleTogc3RyaW5nKTogViB7XHJcbiAgICBpZiAodGhpcy52YWx1ZXMuaGFzT3duUHJvcGVydHkoa2V5KSlcclxuICAgICAgcmV0dXJuIHRoaXMudmFsdWVzW2tleV07XHJcbiAgICBlbHNlXHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgc2V0X0l0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBWKSB7XHJcbiAgICB0aGlzLnZhbHVlc1trZXldID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBBZGQoa2V5OiBzdHJpbmcsIHZhbHVlOiBWKSB7XHJcbiAgICBpZiAodGhpcy52YWx1ZXMuaGFzT3duUHJvcGVydHkoa2V5KSlcclxuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihcIkFuIGl0ZW0gd2l0aCB0aGUgc2FtZSBrZXkgaGFzIGFscmVhZHkgYmVlbiBhZGRlZFwiKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy52YWx1ZXNba2V5XSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgQ29udGFpbnNLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnZhbHVlcy5oYXNPd25Qcm9wZXJ0eShrZXkpO1xyXG4gIH1cclxuXHJcbiAgVHJ5R2V0VmFsdWUoa2V5OiBzdHJpbmcsIHB2YWx1ZTogUmVmUGFyYW08Vj4pOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLnZhbHVlcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgIHB2YWx1ZS52YWx1ZSA9IHRoaXMudmFsdWVzW2tleV07XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHB2YWx1ZS52YWx1ZSA9IG51bGw7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIFJlbW92ZShrZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgZGVsZXRlIHRoaXMudmFsdWVzW2tleV07XHJcbiAgfVxyXG5cclxuICBnZXQgS2V5cygpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy52YWx1ZXMpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
package/esm2022/src/Encoding.mjs
CHANGED
|
@@ -111,4 +111,4 @@ export class Encoding {
|
|
|
111
111
|
return this.label;
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW5jb2RpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc2NvcmVsaWIvc3JjL0VuY29kaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxXQUFXLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXZELE1BQU0sT0FBTyxRQUFRO0lBU0U7SUFSckIsTUFBTSxDQUFVLEtBQUssR0FBYSxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RCxNQUFNLENBQVUsSUFBSSxHQUFhLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sQ0FBVSxPQUFPLEdBQWEsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFN0QsTUFBTSxDQUFVLHFCQUFxQixHQUFHLFFBQVEsQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO0lBRWhFLFdBQVcsR0FBZ0IsSUFBSSxDQUFDO0lBQ2hDLFdBQVcsR0FBZ0IsSUFBSSxDQUFDO0lBQ2hELFlBQW9CLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsS0FBSyxFQUFFLEVBQUMsK0JBQStCLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDLEtBQUssRUFBRSxFQUFDLCtCQUErQixFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFXO1FBRWxCLElBQUksR0FBRyxLQUFLLElBQUk7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFdEMsSUFBSSxLQUFLLEdBQWUsSUFBSSxDQUFDO1FBRTdCLElBQUksQ0FBQztZQUNILEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxH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LElBQUksQ0FBQyxHQUFHLGFBQWEsQ0FBQztRQUNoQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsT0FBTyxDQUFDO1FBQzNCLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLENBQUM7UUFDM0IsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLGNBQWMsQ0FBQztRQUNqQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsY0FBYyxDQUFDO1FBQ2pDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxjQUFjLENBQUM7UUFDakMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLGNBQWMsQ0FBQztRQUNqQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsY0FBYyxDQUFDO1FBQ2pDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxjQUFjLENBQUM7UUFDakMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLGNBQWMsQ0FBQztRQUNqQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsY0FBYyxDQUFDO1FBQ2pDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxjQUFjLENBQUM7UUFDakMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLGFBQWEsQ0FBQztRQUMvQixTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsVUFBVSxDQUFDO1FBQzlCLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLENBQUM7UUFFM0IsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUdNLFFBQVE7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VGV4dERlY29kZXIsIFRleHRFbmNvZGVyfSBmcm9tIFwidGV4dC1lbmNvZGluZ1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVuY29kaW5nIHtcclxuICBzdGF0aWMgcmVhZG9ubHkgQVNDSUk6IEVuY29kaW5nID0gbmV3IEVuY29kaW5nKFwiYXNjaWlcIik7XHJcbiAgc3RhdGljIHJlYWRvbmx5IFVURjg6IEVuY29kaW5nID0gbmV3IEVuY29kaW5nKFwidXRmLThcIik7XHJcbiAgc3RhdGljIHJlYWRvbmx5IFVuaWNvZGU6IEVuY29kaW5nID0gbmV3IEVuY29kaW5nKFwidXRmLTE2bGVcIik7XHJcblxyXG4gIHN0YXRpYyByZWFkb25seSBDb2RlUGFnZVRvRW5jb2RpbmdNYXAgPSBFbmNvZGluZy5Qb3B1bGF0ZUNvZGVQYWdlVG9FbmNvZGluZ01hcCgpO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IHRleHRFbmNvZGVyOiBUZXh0RW5jb2RlciA9IG51bGw7XHJcbiAgcHJpdmF0ZSByZWFkb25seSB0ZXh0RGVjb2RlcjogVGV4dERlY29kZXIgPSBudWxsO1xyXG4gICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxhYmVsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudGV4dEVuY29kZXIgPSBuZXcgVGV4dEVuY29kZXIobGFiZWwsIHtOT05TVEFOREFSRF9hbGxvd0xlZ2FjeUVuY29kaW5nOiB0cnVlfSk7XHJcbiAgICB0aGlzLnRleHREZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKGxhYmVsLCB7Tk9OU1RBTkRBUkRfYWxsb3dMZWdhY3lFbmNvZGluZzogdHJ1ZX0pO1xyXG4gIH1cclxuXHJcbiAgR2V0Qnl0ZXMoc3RyOiBzdHJpbmcpOiBVaW50OEFycmF5IHtcclxuXHJcbiAgICBpZiAoc3RyID09PSBudWxsKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBcmd1bWVudCBpcyBudWxsXCIpO1xyXG5cclxuICAgIGxldCBieXRlczogVWludDhBcnJheSA9IG51bGw7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgYnl0ZXMgPSB0aGlzLnRleHRFbmNvZGVyLmVuY29kZShzdHIpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGV4KSB7XHJcbiAgICAgIC8vIEluIEMjLCBpZiBhbnkgY2hhcmFjdGVyIGlzIG5vdCB3aXRoaW4gdGhlIHJhbmdlIG9mIHNwZWNpZmllZCBjaGFyc2V0LCBpdCBpcyByZXBsYWNlZCBieSAnPycuXHJcbiAgICAgIC8vIFRleHRFbmNvZGVyLmVuY29kZSgpIHRocm93cyBhbiBlcnJvciBpbiBzdWNoIGEgY2FzZS5cclxuICAgICAgLy8gV2UgY2FuIG1vZGlmeSB0aGUgaW1wbGVtZW50YXRpb24gb2YgVGV4dEVuY29kZXIuZW5jb2RlKCkgdG8gcHV0ICc/JyBpbnN0ZWFkIG9mIHRocm93aW5nIGVycm9yLlxyXG4gICAgICAvLyBCdXQsIGl0IGNhbiBiZSBwcm9ibGVtYXRpYyBpZiB3ZSBjaGFuZ2UgdGhlIGxpYnJhcnkgdmVyc2lvbi5cclxuICAgICAgLy8gU28sIHdlIHdpbGwgY2F0Y2ggdGhpcyBlcnJvciBhbmQgaGFuZGxlIHRoZSBlbmNvZGluZyBvdXJzZWx2ZXMuXHJcbiAgICAgIGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoc3RyLmxlbmd0aCAqIDMpO1xyXG4gICAgICBsZXQgYnl0ZXNDb3VudDogbnVtYmVyID0gMDtcclxuICAgICAgbGV0IHRtcEJ5dGVzOiBVaW50OEFycmF5O1xyXG5cclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspXHJcbiAgICAgIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgdG1wQnl0ZXMgPSB0aGlzLnRleHRFbmNvZGVyLmVuY29kZShzdHJbaV0pO1xyXG4gICAgICAgICAgYnl0ZXMuc2V0KHRtcEJ5dGVzLCBieXRlc0NvdW50KTtcclxuICAgICAgICAgIGJ5dGVzQ291bnQgKz0gdG1wQnl0ZXMubGVuZ3RoO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZXgpIHtcclxuICAgICAgICAgIGJ5dGVzW2J5dGVzQ291bnQrK10gPSBcIj9cIi5jaGFyQ29kZUF0KDApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgYnl0ZXMgPSBieXRlcy5zdWJhcnJheSgwLCAwICsgYnl0ZXNDb3VudCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGJ5dGVzO1xyXG4gIH1cclxuXHJcbiAgR2V0Qnl0ZUNvdW50KHN0cjogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgIC8vIFRPRE86IHRoaXMgaXMgbm90IHRoZSBiZXN0IHdheS5cclxuICAgIHJldHVybiB0aGlzLkdldEJ5dGVzKHN0cikubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgR2V0U3RyaW5nKGJ5dGVzOiBVaW50OEFycmF5LCBpbmRleDogbnVtYmVyLCBjb3VudDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGxldCBzdHI6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gICAgaWYgKGJ5dGVzID09PSBudWxsKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBcmd1bWVudCBpcyBudWxsXCIpO1xyXG5cclxuICAgIGlmIChpbmRleCA8IDAgfHwgY291bnQgPCAwIHx8IChpbmRleCArIGNvdW50KSA+IGJ5dGVzLmxlbmd0aClcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXJndW1lbnQgb3V0IG9mIHJhbmdlXCIpO1xyXG5cclxuICAgIGJ5dGVzID0gYnl0ZXMuc3ViYXJyYXkoaW5kZXgsIGluZGV4ICsgY291bnQpO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIHN0ciA9IHRoaXMudGV4dERlY29kZXIuZGVjb2RlKGJ5dGVzKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChleCkge1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBzdHI7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgR2V0RW5jb2RpbmcoY29kZXBhZ2U6IG51bWJlcik6IEVuY29kaW5nIHtcclxuICAgIGxldCBsYWJlbDogc3RyaW5nID0gRW5jb2RpbmcuQ29kZVBhZ2VUb0VuY29kaW5nTWFwW2NvZGVwYWdlXTtcclxuXHJcbiAgICBpZiAobGFiZWwgPT0gbnVsbClcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBjb2RlcGFnZS5cIik7XHJcblxyXG4gICAgICByZXR1cm4gbmV3IEVuY29kaW5nKGxhYmVsKTtcclxuICAgfVxyXG4gIHByaXZhdGUgc3RhdGljIFBvcHVsYXRlQ29kZVBhZ2VUb0VuY29kaW5nTWFwKCk6IGFueSB7XHJcblxyXG4gICAgbGV0IGhhc2hUYWJsZSA9IG5ldyBPYmplY3Q7XHJcblxyXG4gICAgLy8gVGhlc2UgbWFwIGlzIHNpbWlsYXIgdG8gZW5jX21hcF90YWJsZSBvZiBleHBfeG1sLmNwcFxyXG4gICAgaGFzaFRhYmxlWzIwMTA2XSA9IFwiRElOXzY2MDAzXCI7ICAgICAgICAgICAgICAgICAgICAvLyBJQTUgKEdlcm1hbilcclxuICAgIGhhc2hUYWJsZVsyMDEwN10gPSBcIlNFTl84NTAyMDBfQlwiOyAgICAgICAgICAgICAgICAgLy8gSUE1IChTd2VkaXNoKVxyXG4gICAgaGFzaFRhYmxlWzUwOTMyXSA9IFwiX2F1dG9kZXRlY3RcIjsgICAgICAgICAgICAgICAgICAvLyBKYXBhbmVzZSAoQXV0byBTZWxlY3QpXHJcbiAgICBoYXNoVGFibGVbMjAxMDhdID0gXCJOU180NTUxLTFcIjsgICAgICAgICAgICAgICAgICAgIC8vIElBNSAoTm9yd2VnaWFuKVxyXG4gICAgaGFzaFRhYmxlWzUwOTQ5XSA9IFwiX2F1dG9kZXRlY3Rfa3JcIjsgICAgICAgICAgICAgICAvLyBLb3JlYW4gKEF1dG8gU2VsZWN0KVxyXG4gICAgaGFzaFRhYmxlWzk1MF0gPSBcImJpZzVcIjsgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGluZXNlIFRyYWRpdGlvbmFsIChCaWc1KVxyXG4gICAgaGFzaFRhYmxlWzUwMjIxXSA9IFwiY3NJU08yMDIySlBcIjsgICAgICAgICAgICAgICAgICAvLyBKYXBhbmVzZSAoSklTLUFsbG93IDEgYnl0ZSBLYW5hKVxyXG4gICAgaGFzaFRhYmxlWzUxOTQ5XSA9IFwiZXVjLWtyXCI7ICAgICAgICAgICAgICAgICAgICAgICAvLyBLb3JlYW4gKEVVQylcclxuICAgIGhhc2hUYWJsZVs5MzZdID0gXCJnYjIzMTJcIjsgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hpbmVzZSBTaW1wbGlmaWVkIChHQjIzMTIpXHJcbiAgICBoYXNoVGFibGVbNTI5MzZdID0gXCJoei1nYi0yMzEyXCI7ICAgICAgICAgICAgICAgICAgIC8vIENoaW5lc2UgU2ltcGxpZmllZCAoSFopXHJcbiAgICBoYXNoVGFibGVbODUyXSA9IFwiaWJtODUyXCI7ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENlbnRyYWwgRXVyb3BlYW4gKERPUylcclxuICAgIGhhc2hUYWJsZVs4NjZdID0gXCJpYm04NjZcIjsgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ3lyaWxsaWMgQWxwaGFiZXQgKERPUylcclxuICAgIGhhc2hUYWJsZVsyMDEwNV0gPSBcImlydlwiOyAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSUE1IChJUlYpXHJcbiAgICBoYXNoVGFibGVbNTAyMjBdID0gXCJpc28tMjAyMi1qcFwiOyAgICAgICAgICAgICAgICAgIC8vIEphcGFuZXNlIChKSVMpXHJcbiAgICBoYXNoVGFibGVbNTAyMjJdID0gXCJpc28tMjAyMi1qcFwiOyAgICAgICAgICAgICAgICAgIC8vIEphcGFuZXNlIChKSVMtQWxsb3cgMSBieXRlIEthbmEpXHJcbiAgICBoYXNoVGFibGVbNTAyMjVdID0gXCJpc28tMjAyMi1rclwiOyAgICAgICAgICAgICAgICAgIC8vIEtvcmVhbiAoSVNPKVxyXG4gICAgaGFzaFRhYmxlWzI4NTkxXSA9IFwiaXNvLTg4NTktMVwiOyAgICAgICAgICAgICAgICAgICAvLyBXZXN0ZXJuIEFscGhhYmV0IChJU08pXHJcbiAgICBoYXNoVGFibGVbMjg1OTJdID0gXCJpc28tODg1OS0yXCI7ICAgICAgICAgICAgICAgICAgIC8vIENlbnRyYWwgRXVyb3BlYW4gQWxwaGFiZXQgKElTTylcclxuICAgIGhhc2hUYWJsZVsyODU5M10gPSBcImlzby04ODU5LTNcIjsgICAgICAgICAgICAgICAgICAgLy8gTGF0aW4gMyBBbHBoYWJldCAoSVNPKVxyXG4gICAgaGFzaFRhYmxlWzI4NTk0XSA9IFwiaXNvLTg4NTktNFwiOyAgICAgICAgICAgICAgICAgICAvLyBCYWx0aWMgQWxwaGFiZXQgKElTTylcclxuICAgIGhhc2hUYWJsZVsyODU5NV0gPSBcImlzby04ODU5LTVcIjsgICAgICAgICAgICAgICAgICAgLy8gQ3lyaWxsaWMgQWxwaGFiZXQgKElTTylcclxuICAgIGhhc2hUYWJsZVsyODU5Nl0gPSBcImlzby04ODU5LTZcIjsgICAgICAgICAgICAgICAgICAgLy8gQXJhYmljIEFscGhhYmV0IChJU08pXHJcbiAgICBoYXNoVGFibGVbMjg1OTddID0gXCJpc28tODg1OS03XCI7ICAgICAgICAgICAgICAgICAgIC8vIEdyZWVrIEFscGhhYmV0IChJU08pXHJcbiAgICBoYXNoVGFibGVbMjg1OThdID0gXCJpc28tODg1OS04XCI7ICAgICAgICAgICAgICAgICAgIC8vIEhlYnJldyBBbHBoYWJldCAoSVNPKVxyXG4gICAgaGFzaFRhYmxlWzIwODY2XSA9IFwia29pOC1yXCI7ICAgICAgICAgICAgICAgICAgICAgICAvLyBDeXJpbGxpYyBBbHBoYWJldCAoS09JOC1SKVxyXG4gICAgaGFzaFRhYmxlWzk0OV0gPSBcImtzX2NfNTYwMVwiOyAgICAgICAgICAgICAgICAgICAgICAvLyBLb3JlYW5cclxuICAgIGhhc2hUYWJsZVs5MzJdID0gXCJzaGlmdC1qaXNcIjsgICAgICAgICAgICAgICAgICAgICAgLy8gSmFwYW5lc2UgKFNoaWZ0LUpJUylcclxuICAgIGhhc2hUYWJsZVsxMjAwXSA9IFwidW5pY29kZVwiOyAgICAgICAgICAgICAgICAgICAgICAgLy8gVW5pdmVyc2FsIEFscGhhYmV0XHJcbiAgICBoYXNoVGFibGVbMTIwMV0gPSBcInVuaWNvZGVGRUZGXCI7ICAgICAgICAgICAgICAgICAgIC8vIFVuaXZlcnNhbCBBbHBoYWJldCAoQmlnLUVuZGlhbilcclxuICAgIGhhc2hUYWJsZVs2NTAwMF0gPSBcInV0Zi03XCI7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gVW5pdmVyc2FsIEFscGhhYmV0IChVVEYtNylcclxuICAgIGhhc2hUYWJsZVs2NTAwMV0gPSBcInV0Zi04XCI7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gVW5pdmVyc2FsIEFscGhhYmV0IChVVEYtOClcclxuICAgIGhhc2hUYWJsZVsxMjUwXSA9IFwid2luZG93cy0xMjUwXCI7ICAgICAgICAgICAgICAgICAgLy8gQ2VudHJhbCBFdXJvcGVhbiBBbHBoYWJldCAoV2luZG93cylcclxuICAgIGhhc2hUYWJsZVsxMjUxXSA9IFwid2luZG93cy0xMjUxXCI7ICAgICAgICAgICAgICAgICAgLy8gQ3lyaWxsaWMgQWxwaGFiZXQgKFdpbmRvd3MpXHJcbiAgICBoYXNoVGFibGVbMTI1Ml0gPSBcIndpbmRvd3MtMTI1MlwiOyAgICAgICAgICAgICAgICAgIC8vIFdlc3Rlcm4gQWxwaGFiZXQgKFdpbmRvd3MpXHJcbiAgICBoYXNoVGFibGVbMTI1M10gPSBcIndpbmRvd3MtMTI1M1wiOyAgICAgICAgICAgICAgICAgIC8vIEdyZWVrIEFscGhhYmV0IChXaW5kb3dzKVxyXG4gICAgaGFzaFRhYmxlWzEyNTRdID0gXCJ3aW5kb3dzLTEyNTRcIjsgICAgICAgICAgICAgICAgICAvLyBUdXJraXNoIEFscGhhYmV0XHJcbiAgICBoYXNoVGFibGVbMTI1NV0gPSBcIndpbmRvd3MtMTI1NVwiOyAgICAgICAgICAgICAgICAgIC8vIEhlYnJldyBBbHBoYWJldCAoV2luZG93cylcclxuICAgIGhhc2hUYWJsZVsxMjU2XSA9IFwid2luZG93cy0xMjU2XCI7ICAgICAgICAgICAgICAgICAgLy8gQXJhYmljIEFscGhhYmV0IChXaW5kb3dzKVxyXG4gICAgaGFzaFRhYmxlWzEyNTddID0gXCJ3aW5kb3dzLTEyNTdcIjsgICAgICAgICAgICAgICAgICAvLyBCYWx0aWMgQWxwaGFiZXQgKFdpbmRvd3MpXHJcbiAgICBoYXNoVGFibGVbMTI1OF0gPSBcIndpbmRvd3MtMTI1OFwiOyAgICAgICAgICAgICAgICAgIC8vIFZpZXRuYW1lc2UgQWxwaGFiZXQgKFdpbmRvd3MpXHJcbiAgICBoYXNoVGFibGVbODc0XSA9IFwid2luZG93cy04NzRcIjsgICAgICAgICAgICAgICAgICAgIC8vIFRoYWkgKFdpbmRvd3MpXHJcbiAgICBoYXNoVGFibGVbMjAxMjddID0gXCJVUy1BU0NJSVwiOyAgICAgICAgICAgICAgICAgICAgIC8vIHVzLWFzY2lpXHJcbiAgICBoYXNoVGFibGVbNTE5MzJdID0gXCJ4LWV1Y1wiOyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEphcGFuZXNlIChFVUMpXHJcblxyXG4gICAgcmV0dXJuIGhhc2hUYWJsZTtcclxuICB9XHJcblxyXG4gIC8vIHJldHVybiB0aGUgbmFtZSBvZiBlbmNvZGluZyB1c2VkIFxyXG4gIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMubGFiZWw7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW5jb2RpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc2NvcmVsaWIvc3JjL0VuY29kaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxXQUFXLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXZELE1BQU0sT0FBTyxRQUFRO0lBU0U7SUFSckIsTUFBTSxDQUFVLEtBQUssR0FBYSxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RCxNQUFNLENBQVUsSUFBSSxHQUFhLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sQ0FBVSxPQUFPLEdBQWEsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFN0QsTUFBTSxDQUFVLHFCQUFxQixHQUFHLFFBQVEsQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO0lBRWhFLFdBQVcsR0FBZ0IsSUFBSSxDQUFDO0lBQ2hDLFdBQVcsR0FBZ0IsSUFBSSxDQUFDO0lBQ2hELFlBQW9CLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsS0FBSyxFQUFFLEVBQUMsK0JBQStCLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDLEtBQUssRUFBRSxFQUFDLCtCQUErQixFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFXO1FBRWxCLElBQUksR0FBRyxLQUFLLElBQUk7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFdEMsSUFBSSxLQUFLLEdBQWUsSUFBSSxDQUFDO1FBRTdCLElBQUk7WUFDRixLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxD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M0IsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUMzQixTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsY0FBYyxDQUFDO1FBQ2pDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxjQUFjLENBQUM7UUFDakMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLGNBQWMsQ0FBQztRQUNqQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsY0FBYyxDQUFDO1FBQ2pDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxjQUFjLENBQUM7UUFDakMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLGNBQWMsQ0FBQztRQUNqQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsY0FBYyxDQUFDO1FBQ2pDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxjQUFjLENBQUM7UUFDakMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLGNBQWMsQ0FBQztRQUNqQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDO1FBQy9CLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxVQUFVLENBQUM7UUFDOUIsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUUzQixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBR00sUUFBUTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUZXh0RGVjb2RlciwgVGV4dEVuY29kZXJ9IGZyb20gXCJ0ZXh0LWVuY29kaW5nXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgRW5jb2Rpbmcge1xyXG4gIHN0YXRpYyByZWFkb25seSBBU0NJSTogRW5jb2RpbmcgPSBuZXcgRW5jb2RpbmcoXCJhc2NpaVwiKTtcclxuICBzdGF0aWMgcmVhZG9ubHkgVVRGODogRW5jb2RpbmcgPSBuZXcgRW5jb2RpbmcoXCJ1dGYtOFwiKTtcclxuICBzdGF0aWMgcmVhZG9ubHkgVW5pY29kZTogRW5jb2RpbmcgPSBuZXcgRW5jb2RpbmcoXCJ1dGYtMTZsZVwiKTtcclxuXHJcbiAgc3RhdGljIHJlYWRvbmx5IENvZGVQYWdlVG9FbmNvZGluZ01hcCA9IEVuY29kaW5nLlBvcHVsYXRlQ29kZVBhZ2VUb0VuY29kaW5nTWFwKCk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgdGV4dEVuY29kZXI6IFRleHRFbmNvZGVyID0gbnVsbDtcclxuICBwcml2YXRlIHJlYWRvbmx5IHRleHREZWNvZGVyOiBUZXh0RGVjb2RlciA9IG51bGw7XHJcbiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbGFiZWw6IHN0cmluZykge1xyXG4gICAgdGhpcy50ZXh0RW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcihsYWJlbCwge05PTlNUQU5EQVJEX2FsbG93TGVnYWN5RW5jb2Rpbmc6IHRydWV9KTtcclxuICAgIHRoaXMudGV4dERlY29kZXIgPSBuZXcgVGV4dERlY29kZXIobGFiZWwsIHtOT05TVEFOREFSRF9hbGxvd0xlZ2FjeUVuY29kaW5nOiB0cnVlfSk7XHJcbiAgfVxyXG5cclxuICBHZXRCeXRlcyhzdHI6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xyXG5cclxuICAgIGlmIChzdHIgPT09IG51bGwpXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkFyZ3VtZW50IGlzIG51bGxcIik7XHJcblxyXG4gICAgbGV0IGJ5dGVzOiBVaW50OEFycmF5ID0gbnVsbDtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBieXRlcyA9IHRoaXMudGV4dEVuY29kZXIuZW5jb2RlKHN0cik7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXgpIHtcclxuICAgICAgLy8gSW4gQyMsIGlmIGFueSBjaGFyYWN0ZXIgaXMgbm90IHdpdGhpbiB0aGUgcmFuZ2Ugb2Ygc3BlY2lmaWVkIGNoYXJzZXQsIGl0IGlzIHJlcGxhY2VkIGJ5ICc/Jy5cclxuICAgICAgLy8gVGV4dEVuY29kZXIuZW5jb2RlKCkgdGhyb3dzIGFuIGVycm9yIGluIHN1Y2ggYSBjYXNlLlxyXG4gICAgICAvLyBXZSBjYW4gbW9kaWZ5IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBUZXh0RW5jb2Rlci5lbmNvZGUoKSB0byBwdXQgJz8nIGluc3RlYWQgb2YgdGhyb3dpbmcgZXJyb3IuXHJcbiAgICAgIC8vIEJ1dCwgaXQgY2FuIGJlIHByb2JsZW1hdGljIGlmIHdlIGNoYW5nZSB0aGUgbGlicmFyeSB2ZXJzaW9uLlxyXG4gICAgICAvLyBTbywgd2Ugd2lsbCBjYXRjaCB0aGlzIGVycm9yIGFuZCBoYW5kbGUgdGhlIGVuY29kaW5nIG91cnNlbHZlcy5cclxuICAgICAgYnl0ZXMgPSBuZXcgVWludDhBcnJheShzdHIubGVuZ3RoICogMyk7XHJcbiAgICAgIGxldCBieXRlc0NvdW50OiBudW1iZXIgPSAwO1xyXG4gICAgICBsZXQgdG1wQnl0ZXM6IFVpbnQ4QXJyYXk7XHJcblxyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKylcclxuICAgICAge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICB0bXBCeXRlcyA9IHRoaXMudGV4dEVuY29kZXIuZW5jb2RlKHN0cltpXSk7XHJcbiAgICAgICAgICBieXRlcy5zZXQodG1wQnl0ZXMsIGJ5dGVzQ291bnQpO1xyXG4gICAgICAgICAgYnl0ZXNDb3VudCArPSB0bXBCeXRlcy5sZW5ndGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChleCkge1xyXG4gICAgICAgICAgYnl0ZXNbYnl0ZXNDb3VudCsrXSA9IFwiP1wiLmNoYXJDb2RlQXQoMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBieXRlcyA9IGJ5dGVzLnN1YmFycmF5KDAsIDAgKyBieXRlc0NvdW50KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYnl0ZXM7XHJcbiAgfVxyXG5cclxuICBHZXRCeXRlQ291bnQoc3RyOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgLy8gVE9ETzogdGhpcyBpcyBub3QgdGhlIGJlc3Qgd2F5LlxyXG4gICAgcmV0dXJuIHRoaXMuR2V0Qnl0ZXMoc3RyKS5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBHZXRTdHJpbmcoYnl0ZXM6IFVpbnQ4QXJyYXksIGluZGV4OiBudW1iZXIsIGNvdW50OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgbGV0IHN0cjogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgICBpZiAoYnl0ZXMgPT09IG51bGwpXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkFyZ3VtZW50IGlzIG51bGxcIik7XHJcblxyXG4gICAgaWYgKGluZGV4IDwgMCB8fCBjb3VudCA8IDAgfHwgKGluZGV4ICsgY291bnQpID4gYnl0ZXMubGVuZ3RoKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBcmd1bWVudCBvdXQgb2YgcmFuZ2VcIik7XHJcblxyXG4gICAgYnl0ZXMgPSBieXRlcy5zdWJhcnJheShpbmRleCwgaW5kZXggKyBjb3VudCk7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgc3RyID0gdGhpcy50ZXh0RGVjb2Rlci5kZWNvZGUoYnl0ZXMpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGV4KSB7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHN0cjtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBHZXRFbmNvZGluZyhjb2RlcGFnZTogbnVtYmVyKTogRW5jb2Rpbmcge1xyXG4gICAgbGV0IGxhYmVsOiBzdHJpbmcgPSBFbmNvZGluZy5Db2RlUGFnZVRvRW5jb2RpbmdNYXBbY29kZXBhZ2VdO1xyXG5cclxuICAgIGlmIChsYWJlbCA9PSBudWxsKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGNvZGVwYWdlLlwiKTtcclxuXHJcbiAgICAgIHJldHVybiBuZXcgRW5jb2RpbmcobGFiZWwpO1xyXG4gICB9XHJcbiAgcHJpdmF0ZSBzdGF0aWMgUG9wdWxhdGVDb2RlUGFnZVRvRW5jb2RpbmdNYXAoKTogYW55IHtcclxuXHJcbiAgICBsZXQgaGFzaFRhYmxlID0gbmV3IE9iamVjdDtcclxuXHJcbiAgICAvLyBUaGVzZSBtYXAgaXMgc2ltaWxhciB0byBlbmNfbWFwX3RhYmxlIG9mIGV4cF94bWwuY3BwXHJcbiAgICBoYXNoVGFibGVbMjAxMDZdID0gXCJESU5fNjYwMDNcIjsgICAgICAgICAgICAgICAgICAgIC8vIElBNSAoR2VybWFuKVxyXG4gICAgaGFzaFRhYmxlWzIwMTA3XSA9IFwiU0VOXzg1MDIwMF9CXCI7ICAgICAgICAgICAgICAgICAvLyBJQTUgKFN3ZWRpc2gpXHJcbiAgICBoYXNoVGFibGVbNTA5MzJdID0gXCJfYXV0b2RldGVjdFwiOyAgICAgICAgICAgICAgICAgIC8vIEphcGFuZXNlIChBdXRvIFNlbGVjdClcclxuICAgIGhhc2hUYWJsZVsyMDEwOF0gPSBcIk5TXzQ1NTEtMVwiOyAgICAgICAgICAgICAgICAgICAgLy8gSUE1IChOb3J3ZWdpYW4pXHJcbiAgICBoYXNoVGFibGVbNTA5NDldID0gXCJfYXV0b2RldGVjdF9rclwiOyAgICAgICAgICAgICAgIC8vIEtvcmVhbiAoQXV0byBTZWxlY3QpXHJcbiAgICBoYXNoVGFibGVbOTUwXSA9IFwiYmlnNVwiOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENoaW5lc2UgVHJhZGl0aW9uYWwgKEJpZzUpXHJcbiAgICBoYXNoVGFibGVbNTAyMjFdID0gXCJjc0lTTzIwMjJKUFwiOyAgICAgICAgICAgICAgICAgIC8vIEphcGFuZXNlIChKSVMtQWxsb3cgMSBieXRlIEthbmEpXHJcbiAgICBoYXNoVGFibGVbNTE5NDldID0gXCJldWMta3JcIjsgICAgICAgICAgICAgICAgICAgICAgIC8vIEtvcmVhbiAoRVVDKVxyXG4gICAgaGFzaFRhYmxlWzkzNl0gPSBcImdiMjMxMlwiOyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGluZXNlIFNpbXBsaWZpZWQgKEdCMjMxMilcclxuICAgIGhhc2hUYWJsZVs1MjkzNl0gPSBcImh6LWdiLTIzMTJcIjsgICAgICAgICAgICAgICAgICAgLy8gQ2hpbmVzZSBTaW1wbGlmaWVkIChIWilcclxuICAgIGhhc2hUYWJsZVs4NTJdID0gXCJpYm04NTJcIjsgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2VudHJhbCBFdXJvcGVhbiAoRE9TKVxyXG4gICAgaGFzaFRhYmxlWzg2Nl0gPSBcImlibTg2NlwiOyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDeXJpbGxpYyBBbHBoYWJldCAoRE9TKVxyXG4gICAgaGFzaFRhYmxlWzIwMTA1XSA9IFwiaXJ2XCI7ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJQTUgKElSVilcclxuICAgIGhhc2hUYWJsZVs1MDIyMF0gPSBcImlzby0yMDIyLWpwXCI7ICAgICAgICAgICAgICAgICAgLy8gSmFwYW5lc2UgKEpJUylcclxuICAgIGhhc2hUYWJsZVs1MDIyMl0gPSBcImlzby0yMDIyLWpwXCI7ICAgICAgICAgICAgICAgICAgLy8gSmFwYW5lc2UgKEpJUy1BbGxvdyAxIGJ5dGUgS2FuYSlcclxuICAgIGhhc2hUYWJsZVs1MDIyNV0gPSBcImlzby0yMDIyLWtyXCI7ICAgICAgICAgICAgICAgICAgLy8gS29yZWFuIChJU08pXHJcbiAgICBoYXNoVGFibGVbMjg1OTFdID0gXCJpc28tODg1OS0xXCI7ICAgICAgICAgICAgICAgICAgIC8vIFdlc3Rlcm4gQWxwaGFiZXQgKElTTylcclxuICAgIGhhc2hUYWJsZVsyODU5Ml0gPSBcImlzby04ODU5LTJcIjsgICAgICAgICAgICAgICAgICAgLy8gQ2VudHJhbCBFdXJvcGVhbiBBbHBoYWJldCAoSVNPKVxyXG4gICAgaGFzaFRhYmxlWzI4NTkzXSA9IFwiaXNvLTg4NTktM1wiOyAgICAgICAgICAgICAgICAgICAvLyBMYXRpbiAzIEFscGhhYmV0IChJU08pXHJcbiAgICBoYXNoVGFibGVbMjg1OTRdID0gXCJpc28tODg1OS00XCI7ICAgICAgICAgICAgICAgICAgIC8vIEJhbHRpYyBBbHBoYWJldCAoSVNPKVxyXG4gICAgaGFzaFRhYmxlWzI4NTk1XSA9IFwiaXNvLTg4NTktNVwiOyAgICAgICAgICAgICAgICAgICAvLyBDeXJpbGxpYyBBbHBoYWJldCAoSVNPKVxyXG4gICAgaGFzaFRhYmxlWzI4NTk2XSA9IFwiaXNvLTg4NTktNlwiOyAgICAgICAgICAgICAgICAgICAvLyBBcmFiaWMgQWxwaGFiZXQgKElTTylcclxuICAgIGhhc2hUYWJsZVsyODU5N10gPSBcImlzby04ODU5LTdcIjsgICAgICAgICAgICAgICAgICAgLy8gR3JlZWsgQWxwaGFiZXQgKElTTylcclxuICAgIGhhc2hUYWJsZVsyODU5OF0gPSBcImlzby04ODU5LThcIjsgICAgICAgICAgICAgICAgICAgLy8gSGVicmV3IEFscGhhYmV0IChJU08pXHJcbiAgICBoYXNoVGFibGVbMjA4NjZdID0gXCJrb2k4LXJcIjsgICAgICAgICAgICAgICAgICAgICAgIC8vIEN5cmlsbGljIEFscGhhYmV0IChLT0k4LVIpXHJcbiAgICBoYXNoVGFibGVbOTQ5XSA9IFwia3NfY181NjAxXCI7ICAgICAgICAgICAgICAgICAgICAgIC8vIEtvcmVhblxyXG4gICAgaGFzaFRhYmxlWzkzMl0gPSBcInNoaWZ0LWppc1wiOyAgICAgICAgICAgICAgICAgICAgICAvLyBKYXBhbmVzZSAoU2hpZnQtSklTKVxyXG4gICAgaGFzaFRhYmxlWzEyMDBdID0gXCJ1bmljb2RlXCI7ICAgICAgICAgICAgICAgICAgICAgICAvLyBVbml2ZXJzYWwgQWxwaGFiZXRcclxuICAgIGhhc2hUYWJsZVsxMjAxXSA9IFwidW5pY29kZUZFRkZcIjsgICAgICAgICAgICAgICAgICAgLy8gVW5pdmVyc2FsIEFscGhhYmV0IChCaWctRW5kaWFuKVxyXG4gICAgaGFzaFRhYmxlWzY1MDAwXSA9IFwidXRmLTdcIjsgICAgICAgICAgICAgICAgICAgICAgICAvLyBVbml2ZXJzYWwgQWxwaGFiZXQgKFVURi03KVxyXG4gICAgaGFzaFRhYmxlWzY1MDAxXSA9IFwidXRmLThcIjsgICAgICAgICAgICAgICAgICAgICAgICAvLyBVbml2ZXJzYWwgQWxwaGFiZXQgKFVURi04KVxyXG4gICAgaGFzaFRhYmxlWzEyNTBdID0gXCJ3aW5kb3dzLTEyNTBcIjsgICAgICAgICAgICAgICAgICAvLyBDZW50cmFsIEV1cm9wZWFuIEFscGhhYmV0IChXaW5kb3dzKVxyXG4gICAgaGFzaFRhYmxlWzEyNTFdID0gXCJ3aW5kb3dzLTEyNTFcIjsgICAgICAgICAgICAgICAgICAvLyBDeXJpbGxpYyBBbHBoYWJldCAoV2luZG93cylcclxuICAgIGhhc2hUYWJsZVsxMjUyXSA9IFwid2luZG93cy0xMjUyXCI7ICAgICAgICAgICAgICAgICAgLy8gV2VzdGVybiBBbHBoYWJldCAoV2luZG93cylcclxuICAgIGhhc2hUYWJsZVsxMjUzXSA9IFwid2luZG93cy0xMjUzXCI7ICAgICAgICAgICAgICAgICAgLy8gR3JlZWsgQWxwaGFiZXQgKFdpbmRvd3MpXHJcbiAgICBoYXNoVGFibGVbMTI1NF0gPSBcIndpbmRvd3MtMTI1NFwiOyAgICAgICAgICAgICAgICAgIC8vIFR1cmtpc2ggQWxwaGFiZXRcclxuICAgIGhhc2hUYWJsZVsxMjU1XSA9IFwid2luZG93cy0xMjU1XCI7ICAgICAgICAgICAgICAgICAgLy8gSGVicmV3IEFscGhhYmV0IChXaW5kb3dzKVxyXG4gICAgaGFzaFRhYmxlWzEyNTZdID0gXCJ3aW5kb3dzLTEyNTZcIjsgICAgICAgICAgICAgICAgICAvLyBBcmFiaWMgQWxwaGFiZXQgKFdpbmRvd3MpXHJcbiAgICBoYXNoVGFibGVbMTI1N10gPSBcIndpbmRvd3MtMTI1N1wiOyAgICAgICAgICAgICAgICAgIC8vIEJhbHRpYyBBbHBoYWJldCAoV2luZG93cylcclxuICAgIGhhc2hUYWJsZVsxMjU4XSA9IFwid2luZG93cy0xMjU4XCI7ICAgICAgICAgICAgICAgICAgLy8gVmlldG5hbWVzZSBBbHBoYWJldCAoV2luZG93cylcclxuICAgIGhhc2hUYWJsZVs4NzRdID0gXCJ3aW5kb3dzLTg3NFwiOyAgICAgICAgICAgICAgICAgICAgLy8gVGhhaSAoV2luZG93cylcclxuICAgIGhhc2hUYWJsZVsyMDEyN10gPSBcIlVTLUFTQ0lJXCI7ICAgICAgICAgICAgICAgICAgICAgLy8gdXMtYXNjaWlcclxuICAgIGhhc2hUYWJsZVs1MTkzMl0gPSBcIngtZXVjXCI7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gSmFwYW5lc2UgKEVVQylcclxuXHJcbiAgICByZXR1cm4gaGFzaFRhYmxlO1xyXG4gIH1cclxuXHJcbiAgLy8gcmV0dXJuIHRoZSBuYW1lIG9mIGVuY29kaW5nIHVzZWQgXHJcbiAgcHVibGljIHRvU3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5sYWJlbDtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -29,4 +29,4 @@ export class Exception {
|
|
|
29
29
|
return this.name;
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhjZXB0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXNjb3JlbGliL3NyYy9FeGNlcHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sU0FBUyxDQUFDO0FBRTFDLE1BQU0sT0FBTyxTQUFTO0lBRXBCLElBQUksR0FBVyxXQUFXLENBQUM7SUFDM0IsT0FBTyxHQUFXLEVBQUUsQ0FBQztJQUNyQixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBR25CLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFRZixZQUFZLGNBQThCO1FBQ3hDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUN0QyxJQUFJLGNBQWMsWUFBWSxLQUFLLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxLQUFLLEdBQVcsY0FBZSxDQUFDLEtBQUssQ0FBQztnQkFDM0MsSUFBSSxDQUFDLE9BQU8sR0FBVyxjQUFlLENBQUMsT0FBTyxDQUFDO2FBQ2hEO2lCQUNJO2dCQUNILElBQUksQ0FBQyxPQUFPLEdBQVcsY0FBYyxDQUFDO2dCQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDO2FBQ2hDO1NBQ0Y7SUFDSCxDQUFDO0lBS0QsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFLRCxJQUFJLFVBQVU7UUFFWixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNsQyxJQUFJLFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBR3JGLFVBQVUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTdHLE9BQU8sSUFBSSxHQUFHLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBS00sT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHN1bW1hcnk+XHJcbi8vLyBUaGUgYmFzZSBjbGFzcyBvZiBhbGwgZXhjZXB0aW9uc1xyXG4vLy8gPC9zdW1tYXJ5PlxyXG5cclxuaW1wb3J0IHtpc051bGxPclVuZGVmaW5lZH0gZnJvbSBcIi4vVXRpbHNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBFeGNlcHRpb257XHJcblxyXG4gIG5hbWU6IHN0cmluZyA9IFwiRXhjZXB0aW9uXCI7XHJcbiAgbWVzc2FnZTogc3RyaW5nID0gXCJcIjtcclxuICBzdGFjazogc3RyaW5nID0gXCJcIjtcclxuXHJcblxyXG4gIGVycm9yTGV2ZWwgPSAxO1xyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gY29uc3RydWN0b3JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cIm1lc3NhZ2VcIiAgZGVub3RlcyB0aGUgbWVzc2FnZSBvZiBleGNlcHRpb24+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJuYW1lXCIgIGRlbm90ZXMgdGhlIHR5cGUgb2YgZXhjZXB0aW9uPjwvcGFyYW0+XHJcbiAgY29uc3RydWN0b3IobWVzc2FnZT86IHN0cmluZylcclxuICBjb25zdHJ1Y3RvcihlcnJvcjogRXJyb3IpXHJcbiAgY29uc3RydWN0b3IobWVzc2FnZU9yRXJyb3I6IHN0cmluZyB8IEVycm9yKSB7XHJcbiAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKG1lc3NhZ2VPckVycm9yKSkge1xyXG4gICAgICBpZiAobWVzc2FnZU9yRXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xyXG4gICAgICAgIHRoaXMuc3RhY2sgPSAoPEVycm9yPm1lc3NhZ2VPckVycm9yKS5zdGFjaztcclxuICAgICAgICB0aGlzLm1lc3NhZ2UgPSAoPEVycm9yPm1lc3NhZ2VPckVycm9yKS5tZXNzYWdlO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZSA9IDxzdHJpbmc+bWVzc2FnZU9yRXJyb3I7XHJcbiAgICAgICAgdGhpcy5zdGFjayA9IG5ldyBFcnJvcigpLnN0YWNrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGdldCB0aGUgbWVzc2FnZSBvZiBleGNlcHRpb25cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldCBNZXNzYWdlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubWVzc2FnZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gZ2V0IHRoZSBzdGFjayB0cmFjZSBvZiBleGNlcHRpb25cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldCBTdGFja1RyYWNlKCkge1xyXG5cclxuICAgIGxldCBzdGFja1RyYWNlID0gdGhpcy5zdGFjayB8fCAnJztcclxuICAgIGxldCBzdGFja0xpbmVzID0gc3RhY2tUcmFjZS5zcGxpdChcIlxcblwiKS5tYXAoZnVuY3Rpb24gKGxpbmUpIHsgcmV0dXJuIGxpbmUudHJpbSgpOyB9KTtcclxuXHJcbiAgICAvLyBPbiBzb21lIGJyb3dzZXJzIChlLmcuIENocm9tZSksIHRoZSBzdGF0Y2sgaW5jbHVkZXMgYSB0aXRsZSBhcyBcIkVycm9yXCIsIHNvIHJlbW92ZSBpdC5cclxuICAgIHN0YWNrVHJhY2UgPSBzdGFja0xpbmVzLnNwbGljZShzdGFja0xpbmVzWzBdID09PSAnRXJyb3InID8gdGhpcy5lcnJvckxldmVsICsgMSA6IHRoaXMuZXJyb3JMZXZlbCkuam9pbihcIlxcblwiKTtcclxuXHJcbiAgICByZXR1cm4gXCJcXG5cIiArIHN0YWNrVHJhY2U7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGdldCB0aGUgdHlwZSBvZiBleGNlcHRpb25cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHB1YmxpYyBHZXRUeXBlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbiJdfQ==
|
|
@@ -154,4 +154,4 @@ export class Hashtable {
|
|
|
154
154
|
this._buckets = [];
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGFzaFRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXNjb3JlbGliL3NyYy9IYXNoVGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUN0QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBRXBDLE1BQU0sT0FBTyxTQUFTO0lBR3BCLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBVztRQUM1QixJQUFJLEtBQUssR0FBZSxJQUFJLENBQUM7UUFFN0IsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXBDLE9BQU8sU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUFxQjtRQUM5QyxJQUFJLE9BQWUsQ0FBQztRQUVwQixJQUFJLEtBQUssR0FBVyxJQUFJLENBQUM7UUFDekIsSUFBSSxLQUFLLEdBQVcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBUyxDQUFDO1FBRWQsS0FBSyxJQUFJLENBQUMsR0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3JELENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakIsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLE1BQU07Z0JBQzlCLE1BQU07WUFDUixDQUFDLEdBQUcsU0FBUyxDQUFD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SSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBRS9DLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzVDLE1BQU0sSUFBSSxTQUFTLENBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBR0QsS0FBSztRQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFJlZmVyZW5jZTogaHR0cHM6Ly9naXRodWIuY29tL3Jrb3N0cnpld3NraS9oYXNodGFibGUtdHMvYmxvYi9tYXN0ZXIvc3JjL2hhc2h0YWJsZS50c1xyXG5cclxuaW1wb3J0IHtBcnJheV9FbnVtZXJhdG9yfSBmcm9tIFwiLi9BcnJheUVudW1lcmF0b3JcIjtcclxuaW1wb3J0IHtFeGNlcHRpb259IGZyb20gXCIuL0V4Y2VwdGlvblwiO1xyXG5pbXBvcnQge0VuY29kaW5nfSBmcm9tIFwiLi9FbmNvZGluZ1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEhhc2hVdGlscyB7XHJcbiAgLy8gUGF5IGF0dGVudGlvbiB0aGF0IGluIHNlcnZlciB0aGVyZSBpcyB0aGUgc2FtZSBmdW5jdGlvbiBhbmQgaXQgbXVzdFxyXG4gIC8vIHJldHVybiB0aGUgc2FtZSBoYXNoIHZhbHVlLlxyXG4gIHN0YXRpYyBHZXRIYXNoQ29kZShzdHI6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICBsZXQgYnl0ZXM6IFVpbnQ4QXJyYXkgPSBudWxsO1xyXG5cclxuICAgIGJ5dGVzID0gRW5jb2RpbmcuVVRGOC5HZXRCeXRlcyhzdHIpO1xyXG5cclxuICAgIHJldHVybiBIYXNoVXRpbHMuZ2V0SGFzaENvZGUoYnl0ZXMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0SGFzaENvZGUoYnl0ZUFycmF5OiBVaW50OEFycmF5KSB7XHJcbiAgICBsZXQgaGFzaHZhbDogbnVtYmVyO1xyXG5cclxuICAgIGxldCBoYXNoMTogbnVtYmVyID0gNTM4MTtcclxuICAgIGxldCBoYXNoMjogbnVtYmVyID0gaGFzaDE7XHJcbiAgICBsZXQgYzogbnVtYmVyO1xyXG5cclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBieXRlQXJyYXkubGVuZ3RoOyBpICs9IDIpIHtcclxuICAgICAgYyA9IGJ5dGVBcnJheVtpXTtcclxuICAgICAgaGFzaDEgPSAoKGhhc2gxIDw8IDUpICsgaGFzaDEpIF4gYztcclxuICAgICAgaWYgKChpICsgMSkgPT09IGJ5dGVBcnJheS5sZW5ndGgpXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGMgPSBieXRlQXJyYXlbaSArIDFdO1xyXG4gICAgICBoYXNoMiA9ICgoaGFzaDIgPDwgNSkgKyBoYXNoMikgXiBjO1xyXG4gICAgICBoYXNoMSA9IGhhc2gxICYgMHhmZmZmO1xyXG4gICAgICBoYXNoMiA9IGhhc2gyICYgMHhmZmZmO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBoYXNoMzogbnVtYmVyID0gKGhhc2gyICogMTM1NzcpO1xyXG4gICAgaGFzaHZhbCA9IChoYXNoMSArIGhhc2gzKTtcclxuICAgIHJldHVybiAoaGFzaHZhbCk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElIYXNoQ29kZSB7XHJcbiAgR2V0SGFzaENvZGUoKTogbnVtYmVyO1xyXG59XHJcblxyXG50eXBlIEJ1Y2tldEVsZW1lbnQ8VEtleSwgVFZhbHVlPiA9IHsga2V5OiBUS2V5LCB2YWx1ZTogVFZhbHVlIH07XHJcbnR5cGUgQnVja2V0PFRLZXksIFRWYWx1ZT4gPSBbQnVja2V0RWxlbWVudDxUS2V5LCBUVmFsdWU+XTtcclxuXHJcbmNvbnN0IEhhc2hUYWJsZUxvYWRGYWN0b3IgPSAwLjc1O1xyXG5cclxuLy8gSGFzaHRhYmxlIGltcGxlbWVudGF0aW9uIGZvciBrZXkgVEtleSBhbmQgVmFsdWUgVFZhbHVlXHJcbmV4cG9ydCBjbGFzcyBIYXNodGFibGU8VEtleSBleHRlbmRzIChJSGFzaENvZGUgfCBzdHJpbmcgfCBudW1iZXIpLCBUVmFsdWU+IHtcclxuXHJcbiAgcHJpdmF0ZSBfYnVja2V0czogQnVja2V0PFRLZXksIFRWYWx1ZT5bXSA9IFtdOyAvLyB0b3RhbCBuby4gb2YgYnVja2V0c1xyXG4gIHByaXZhdGUgX2VsZW1lbnRzQ291bnQgPSAwOyAvLyB0b3RhbCBlbGVtZW50c1xyXG4gIHByaXZhdGUgX2J1Y2tldENvdW50OiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgX2xvYWRGYWN0b3I6IG51bWJlciA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGJ1Y2tldENvdW50OiBudW1iZXIgPSA4LCBsb2FkRmFjdG9yOiBudW1iZXIgPSBIYXNoVGFibGVMb2FkRmFjdG9yKSB7XHJcbiAgICB0aGlzLl9idWNrZXRDb3VudCA9IGJ1Y2tldENvdW50O1xyXG4gICAgdGhpcy5fbG9hZEZhY3RvciA9IGxvYWRGYWN0b3I7XHJcblxyXG4gICAgaWYgKHRoaXMuX2J1Y2tldENvdW50ICUgMiAhPT0gMCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdCdWNrZXQgY291bnQgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciBhbmQgYmUgbXVsdGlwbGUgb2YgMi4nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEdlbmVyaWMgSGFzaCBmdW50aW9uXHJcbiAgcHJpdmF0ZSBIYXNoRnVuY3Rpb24oa2V5KTogbnVtYmVyIHtcclxuICAgIGlmICh0eXBlb2Yga2V5LkdldEhhc2hDb2RlID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIHJldHVybiBrZXkuR2V0SGFzaENvZGUoKTtcclxuICAgIH0gZWxzZSBpZiAoa2V5LmNvbnN0cnVjdG9yID09PSBTdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gSGFzaFV0aWxzLkdldEhhc2hDb2RlKGtleS50b1N0cmluZygpKTtcclxuICAgIH0gZWxzZSBpZiAoa2V5LmNvbnN0cnVjdG9yID09PSBOdW1iZXIpIHtcclxuICAgICAgcmV0dXJuICtrZXk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcblxyXG4gIC8vIHJldHVybnMgZWxlbWVudENvdW50XHJcbiAgZ2V0IENvdW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRzQ291bnQ7XHJcbiAgfVxyXG5cclxuICAvLyByZXR1cm5zIFZhbHVlQ29sbGVjdGlvbiAoQXJyYXkgRW51bWVyYXRvcilcclxuICBnZXQgVmFsdWVzKCk6IEFycmF5X0VudW1lcmF0b3I8VFZhbHVlPiB7XHJcbiAgICBsZXQgYXJyYXk6IEFycmF5PFRWYWx1ZT4gPSBbXTtcclxuICAgIHRoaXMuX2J1Y2tldHMuZm9yRWFjaChiID0+IGIuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgYXJyYXkucHVzaChpdGVtLnZhbHVlKTtcclxuICAgIH0pKTtcclxuICAgIHJldHVybiBuZXcgQXJyYXlfRW51bWVyYXRvcihhcnJheSk7XHJcbiAgfVxyXG5cclxuICAvLyByZXR1cm5zIEtleUNvbGxlY3Rpb24gKEFycmF5IEVudW1lcmF0b3IpXHJcbiAgZ2V0IEtleXMoKTogQXJyYXlfRW51bWVyYXRvcjxUS2V5PiB7XHJcbiAgICBsZXQgYXJyYXk6IEFycmF5PFRLZXk+ID0gW107XHJcbiAgICB0aGlzLl9idWNrZXRzLmZvckVhY2goYiA9PiBiLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgIGFycmF5LnB1c2goaXRlbS5rZXkpO1xyXG4gICAgfSkpO1xyXG4gICAgcmV0dXJuIG5ldyBBcnJheV9FbnVtZXJhdG9yKGFycmF5KTtcclxuICB9XHJcblxyXG4gIC8vIGFkZHMgaXRlbSB0byBIYXNodGFibGVcclxuICBBZGQoa2V5OiBUS2V5LCB2YWx1ZTogVFZhbHVlKTogdm9pZCB7XHJcbiAgICB0aGlzLkluc2VydChrZXksIHZhbHVlLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIC8vIHNldHMgaXRlbSBpbiBIYXNodGFibGVcclxuICBzZXRfSXRlbShrZXk6IFRLZXksIHZhbHVlOiBUVmFsdWUpIHtcclxuICAgIHRoaXMuSW5zZXJ0KGtleSwgdmFsdWUsIGZhbHNlKTtcclxuICB9XHJcblxyXG4gIC8vIEluc2VydCBlbGVtZW50IGluIEhhc2h0YWJsZVxyXG4gIHByaXZhdGUgSW5zZXJ0KGtleTogVEtleSwgdmFsdWU6IFRWYWx1ZSwgYWRkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBsZXQgYnVja2V0SW5kZXggPSB0aGlzLkdldEJ1Y2tldEluZGV4KGtleSk7XHJcblxyXG4gICAgaWYgKHR5cGVvZiB0aGlzLl9idWNrZXRzW2J1Y2tldEluZGV4XSA9PT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICB0aGlzLl9idWNrZXRzW2J1Y2tldEluZGV4XSA9IDxCdWNrZXQ8VEtleSwgVFZhbHVlPj48dW5rbm93bj5bXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5fYnVja2V0c1tidWNrZXRJbmRleF0uZmluZCh4ID0+IHgua2V5ID09PSBrZXkpKSB7XHJcbiAgICAgIGlmIChhZGQpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJdGVtIHdpdGggcHJvdmlkZWQga2V5IGFscmVhZHkgZXhpc3RzIScpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuUmVtb3ZlKGtleSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fYnVja2V0c1tidWNrZXRJbmRleF0ucHVzaCh7a2V5OiBrZXksIHZhbHVlOiB2YWx1ZX0pO1xyXG5cclxuICAgIHRoaXMuX2VsZW1lbnRzQ291bnQrKztcclxuICAgIGlmICh0aGlzLl9lbGVtZW50c0NvdW50ID4gdGhpcy5fYnVja2V0Q291bnQgKiB0aGlzLl9sb2FkRmFjdG9yKSB7XHJcbiAgICAgIHRoaXMuUmVzaXplKHRoaXMuX2J1Y2tldENvdW50ICogMik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuLy8gR2V0cyB2YWx1ZSBmb3Iga2V5IFRLZXlcclxuICBnZXRfSXRlbShrZXk6IFRLZXkpOiBUVmFsdWUge1xyXG4gICAgbGV0IGJ1Y2tldEluZGV4ID0gdGhpcy5HZXRCdWNrZXRJbmRleChrZXkpO1xyXG4gICAgbGV0IGJ1Y2tldCA9IHRoaXMuX2J1Y2tldHNbYnVja2V0SW5kZXhdO1xyXG4gICAgaWYgKCFidWNrZXQpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGl0ZW0gPSBidWNrZXQuZmluZCh4ID0+IHgua2V5ID09PSBrZXkpO1xyXG4gICAgaWYgKGl0ZW0pIHtcclxuICAgICAgcmV0dXJuIGl0ZW0udmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvLyBSZXR1cm5zIGlmIGtleSBUS2V5IGlzIHByZXNlbnQgaW4gSGFzaHRhYmxlXHJcbiAgQ29udGFpbnNLZXkoa2V5OiBUS2V5KTogYm9vbGVhbiB7XHJcbiAgICBsZXQgYnVja2V0SW5kZXggPSB0aGlzLkdldEJ1Y2tldEluZGV4KGtleSk7XHJcbiAgICBsZXQgYnVja2V0ID0gdGhpcy5fYnVja2V0c1tidWNrZXRJbmRleF07XHJcbiAgICBpZiAoIWJ1Y2tldCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGl0ZW1JbmRleCA9IGJ1Y2tldC5maW5kSW5kZXgoeCA9PiB4LmtleSA9PT0ga2V5KTtcclxuICAgIHJldHVybiAoaXRlbUluZGV4ID4gLTEpO1xyXG4gIH1cclxuXHJcbiAgLy8gUmVtb3ZlcyBpdGVtIHdpdGgga2V5IFRLZXkgZnJvbSBIYXNodGFibGVcclxuICBSZW1vdmUoa2V5OiBUS2V5KSB7XHJcbiAgICBsZXQgYnVja2V0SW5kZXggPSB0aGlzLkdldEJ1Y2tldEluZGV4KGtleSk7XHJcbiAgICBsZXQgYnVja2V0ID0gdGhpcy5fYnVja2V0c1tidWNrZXRJbmRleF07XHJcbiAgICBpZiAoIWJ1Y2tldCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGl0ZW1JbmRleCA9IGJ1Y2tldC5maW5kSW5kZXgoeCA9PiB4LmtleSA9PT0ga2V5KTtcclxuICAgIGlmIChpdGVtSW5kZXggPiAtMSkge1xyXG4gICAgICBidWNrZXQuc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgIHRoaXMuX2VsZW1lbnRzQ291bnQtLTtcclxuICAgICAgaWYgKHRoaXMuX2VsZW1lbnRzQ291bnQgPD0gdGhpcy5fYnVja2V0Q291bnQgKiAoMSAtIHRoaXMuX2xvYWRGYWN0b3IpKSB7XHJcbiAgICAgICAgdGhpcy5SZXNpemUodGhpcy5fYnVja2V0Q291bnQgLyAyKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gUmVzaXplIGJ1Y2tldCAoSGFzaHRhYmxlKVxyXG4gIHByaXZhdGUgUmVzaXplKG5ld0J1Y2tldENvdW50OiBudW1iZXIpIHtcclxuICAgIGxldCBfb2xkQnVja2V0cyA9IHRoaXMuX2J1Y2tldHM7XHJcbiAgICB0aGlzLl9lbGVtZW50c0NvdW50ID0gMDtcclxuICAgIHRoaXMuX2J1Y2tldHMgPSBbXTtcclxuICAgIHRoaXMuX2J1Y2tldENvdW50ID0gbmV3QnVja2V0Q291bnQ7XHJcblxyXG4gICAgX29sZEJ1Y2tldHMuZm9yRWFjaChiID0+IGIuZm9yRWFjaChpdGVtID0+IHRoaXMuQWRkKGl0ZW0ua2V5LCBpdGVtLnZhbHVlKSkpO1xyXG4gIH1cclxuXHJcbi8vIHJldHVybnMgYnVja2V0SW5kZXggZm9yIGtleVxyXG4gIHByaXZhdGUgR2V0QnVja2V0SW5kZXgoa2V5OiBUS2V5KSB7XHJcbiAgICBsZXQgaGFzaCA9IHRoaXMuSGFzaEZ1bmN0aW9uKGtleSk7XHJcbiAgICBpZiAoaGFzaCAlIDEgIT09IDApIHtcclxuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignS2V5XFwncyBoYXNoIG11c3QgYmUgYW4gaW50ZWdlciEnKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgaW5kZXggPSBNYXRoLmFicyhoYXNoKSAlIHRoaXMuX2J1Y2tldENvdW50O1xyXG5cclxuICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gdGhpcy5fYnVja2V0Q291bnQpIHtcclxuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignSW5kZXggZXhjZWVkcyBidWNrZXQgYm91bmRhcmllcycpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpbmRleDtcclxuICB9XHJcblxyXG4vLyBDbGVhcnMgSGFzaHRhYmxlXHJcbiAgQ2xlYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9lbGVtZW50c0NvdW50ID0gMDtcclxuICAgIHRoaXMuX2J1Y2tldHMgPSBbXTtcclxuICB9XHJcbn1cclxuIl19
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGFzaFRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXNjb3JlbGliL3NyYy9IYXNoVGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUN0QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBRXBDLE1BQU0sT0FBTyxTQUFTO0lBR3BCLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBVztRQUM1QixJQUFJLEtBQUssR0FBZSxJQUFJLENBQUM7UUFFN0IsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXBDLE9BQU8sU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUFxQjtRQUM5QyxJQUFJLE9BQWUsQ0FBQztRQUVwQixJQUFJLEtBQUssR0FBVyxJQUFJLENBQUM7UUFDekIsSUFBSSxLQUFLLEdBQVcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBUyxDQUFDO1FBRWQsS0FBSyxJQUFJLENBQUMsR0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNwRCxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxNQUFNO2dCQUM5QixNQUFNO1lBQ1IsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFD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O1NBQ3hEO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBR0QsS0FBSztRQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFJlZmVyZW5jZTogaHR0cHM6Ly9naXRodWIuY29tL3Jrb3N0cnpld3NraS9oYXNodGFibGUtdHMvYmxvYi9tYXN0ZXIvc3JjL2hhc2h0YWJsZS50c1xyXG5cclxuaW1wb3J0IHtBcnJheV9FbnVtZXJhdG9yfSBmcm9tIFwiLi9BcnJheUVudW1lcmF0b3JcIjtcclxuaW1wb3J0IHtFeGNlcHRpb259IGZyb20gXCIuL0V4Y2VwdGlvblwiO1xyXG5pbXBvcnQge0VuY29kaW5nfSBmcm9tIFwiLi9FbmNvZGluZ1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEhhc2hVdGlscyB7XHJcbiAgLy8gUGF5IGF0dGVudGlvbiB0aGF0IGluIHNlcnZlciB0aGVyZSBpcyB0aGUgc2FtZSBmdW5jdGlvbiBhbmQgaXQgbXVzdFxyXG4gIC8vIHJldHVybiB0aGUgc2FtZSBoYXNoIHZhbHVlLlxyXG4gIHN0YXRpYyBHZXRIYXNoQ29kZShzdHI6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICBsZXQgYnl0ZXM6IFVpbnQ4QXJyYXkgPSBudWxsO1xyXG5cclxuICAgIGJ5dGVzID0gRW5jb2RpbmcuVVRGOC5HZXRCeXRlcyhzdHIpO1xyXG5cclxuICAgIHJldHVybiBIYXNoVXRpbHMuZ2V0SGFzaENvZGUoYnl0ZXMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0SGFzaENvZGUoYnl0ZUFycmF5OiBVaW50OEFycmF5KSB7XHJcbiAgICBsZXQgaGFzaHZhbDogbnVtYmVyO1xyXG5cclxuICAgIGxldCBoYXNoMTogbnVtYmVyID0gNTM4MTtcclxuICAgIGxldCBoYXNoMjogbnVtYmVyID0gaGFzaDE7XHJcbiAgICBsZXQgYzogbnVtYmVyO1xyXG5cclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBieXRlQXJyYXkubGVuZ3RoOyBpICs9IDIpIHtcclxuICAgICAgYyA9IGJ5dGVBcnJheVtpXTtcclxuICAgICAgaGFzaDEgPSAoKGhhc2gxIDw8IDUpICsgaGFzaDEpIF4gYztcclxuICAgICAgaWYgKChpICsgMSkgPT09IGJ5dGVBcnJheS5sZW5ndGgpXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGMgPSBieXRlQXJyYXlbaSArIDFdO1xyXG4gICAgICBoYXNoMiA9ICgoaGFzaDIgPDwgNSkgKyBoYXNoMikgXiBjO1xyXG4gICAgICBoYXNoMSA9IGhhc2gxICYgMHhmZmZmO1xyXG4gICAgICBoYXNoMiA9IGhhc2gyICYgMHhmZmZmO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBoYXNoMzogbnVtYmVyID0gKGhhc2gyICogMTM1NzcpO1xyXG4gICAgaGFzaHZhbCA9IChoYXNoMSArIGhhc2gzKTtcclxuICAgIHJldHVybiAoaGFzaHZhbCk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElIYXNoQ29kZSB7XHJcbiAgR2V0SGFzaENvZGUoKTogbnVtYmVyO1xyXG59XHJcblxyXG50eXBlIEJ1Y2tldEVsZW1lbnQ8VEtleSwgVFZhbHVlPiA9IHsga2V5OiBUS2V5LCB2YWx1ZTogVFZhbHVlIH07XHJcbnR5cGUgQnVja2V0PFRLZXksIFRWYWx1ZT4gPSBbQnVja2V0RWxlbWVudDxUS2V5LCBUVmFsdWU+XTtcclxuXHJcbmNvbnN0IEhhc2hUYWJsZUxvYWRGYWN0b3IgPSAwLjc1O1xyXG5cclxuLy8gSGFzaHRhYmxlIGltcGxlbWVudGF0aW9uIGZvciBrZXkgVEtleSBhbmQgVmFsdWUgVFZhbHVlXHJcbmV4cG9ydCBjbGFzcyBIYXNodGFibGU8VEtleSBleHRlbmRzIChJSGFzaENvZGUgfCBzdHJpbmcgfCBudW1iZXIpLCBUVmFsdWU+IHtcclxuXHJcbiAgcHJpdmF0ZSBfYnVja2V0czogQnVja2V0PFRLZXksIFRWYWx1ZT5bXSA9IFtdOyAvLyB0b3RhbCBuby4gb2YgYnVja2V0c1xyXG4gIHByaXZhdGUgX2VsZW1lbnRzQ291bnQgPSAwOyAvLyB0b3RhbCBlbGVtZW50c1xyXG4gIHByaXZhdGUgX2J1Y2tldENvdW50OiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgX2xvYWRGYWN0b3I6IG51bWJlciA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGJ1Y2tldENvdW50OiBudW1iZXIgPSA4LCBsb2FkRmFjdG9yOiBudW1iZXIgPSBIYXNoVGFibGVMb2FkRmFjdG9yKSB7XHJcbiAgICB0aGlzLl9idWNrZXRDb3VudCA9IGJ1Y2tldENvdW50O1xyXG4gICAgdGhpcy5fbG9hZEZhY3RvciA9IGxvYWRGYWN0b3I7XHJcblxyXG4gICAgaWYgKHRoaXMuX2J1Y2tldENvdW50ICUgMiAhPT0gMCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdCdWNrZXQgY291bnQgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciBhbmQgYmUgbXVsdGlwbGUgb2YgMi4nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEdlbmVyaWMgSGFzaCBmdW50aW9uXHJcbiAgcHJpdmF0ZSBIYXNoRnVuY3Rpb24oa2V5KTogbnVtYmVyIHtcclxuICAgIGlmICh0eXBlb2Yga2V5LkdldEhhc2hDb2RlID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIHJldHVybiBrZXkuR2V0SGFzaENvZGUoKTtcclxuICAgIH0gZWxzZSBpZiAoa2V5LmNvbnN0cnVjdG9yID09PSBTdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gSGFzaFV0aWxzLkdldEhhc2hDb2RlKGtleS50b1N0cmluZygpKTtcclxuICAgIH0gZWxzZSBpZiAoa2V5LmNvbnN0cnVjdG9yID09PSBOdW1iZXIpIHtcclxuICAgICAgcmV0dXJuICtrZXk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcblxyXG4gIC8vIHJldHVybnMgZWxlbWVudENvdW50XHJcbiAgZ2V0IENvdW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRzQ291bnQ7XHJcbiAgfVxyXG5cclxuICAvLyByZXR1cm5zIFZhbHVlQ29sbGVjdGlvbiAoQXJyYXkgRW51bWVyYXRvcilcclxuICBnZXQgVmFsdWVzKCk6IEFycmF5X0VudW1lcmF0b3I8VFZhbHVlPiB7XHJcbiAgICBsZXQgYXJyYXk6IEFycmF5PFRWYWx1ZT4gPSBbXTtcclxuICAgIHRoaXMuX2J1Y2tldHMuZm9yRWFjaChiID0+IGIuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgYXJyYXkucHVzaChpdGVtLnZhbHVlKTtcclxuICAgIH0pKTtcclxuICAgIHJldHVybiBuZXcgQXJyYXlfRW51bWVyYXRvcihhcnJheSk7XHJcbiAgfVxyXG5cclxuICAvLyByZXR1cm5zIEtleUNvbGxlY3Rpb24gKEFycmF5IEVudW1lcmF0b3IpXHJcbiAgZ2V0IEtleXMoKTogQXJyYXlfRW51bWVyYXRvcjxUS2V5PiB7XHJcbiAgICBsZXQgYXJyYXk6IEFycmF5PFRLZXk+ID0gW107XHJcbiAgICB0aGlzLl9idWNrZXRzLmZvckVhY2goYiA9PiBiLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgIGFycmF5LnB1c2goaXRlbS5rZXkpO1xyXG4gICAgfSkpO1xyXG4gICAgcmV0dXJuIG5ldyBBcnJheV9FbnVtZXJhdG9yKGFycmF5KTtcclxuICB9XHJcblxyXG4gIC8vIGFkZHMgaXRlbSB0byBIYXNodGFibGVcclxuICBBZGQoa2V5OiBUS2V5LCB2YWx1ZTogVFZhbHVlKTogdm9pZCB7XHJcbiAgICB0aGlzLkluc2VydChrZXksIHZhbHVlLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIC8vIHNldHMgaXRlbSBpbiBIYXNodGFibGVcclxuICBzZXRfSXRlbShrZXk6IFRLZXksIHZhbHVlOiBUVmFsdWUpIHtcclxuICAgIHRoaXMuSW5zZXJ0KGtleSwgdmFsdWUsIGZhbHNlKTtcclxuICB9XHJcblxyXG4gIC8vIEluc2VydCBlbGVtZW50IGluIEhhc2h0YWJsZVxyXG4gIHByaXZhdGUgSW5zZXJ0KGtleTogVEtleSwgdmFsdWU6IFRWYWx1ZSwgYWRkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBsZXQgYnVja2V0SW5kZXggPSB0aGlzLkdldEJ1Y2tldEluZGV4KGtleSk7XHJcblxyXG4gICAgaWYgKHR5cGVvZiB0aGlzLl9idWNrZXRzW2J1Y2tldEluZGV4XSA9PT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICB0aGlzLl9idWNrZXRzW2J1Y2tldEluZGV4XSA9IDxCdWNrZXQ8VEtleSwgVFZhbHVlPj48dW5rbm93bj5bXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5fYnVja2V0c1tidWNrZXRJbmRleF0uZmluZCh4ID0+IHgua2V5ID09PSBrZXkpKSB7XHJcbiAgICAgIGlmIChhZGQpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJdGVtIHdpdGggcHJvdmlkZWQga2V5IGFscmVhZHkgZXhpc3RzIScpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuUmVtb3ZlKGtleSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fYnVja2V0c1tidWNrZXRJbmRleF0ucHVzaCh7a2V5OiBrZXksIHZhbHVlOiB2YWx1ZX0pO1xyXG5cclxuICAgIHRoaXMuX2VsZW1lbnRzQ291bnQrKztcclxuICAgIGlmICh0aGlzLl9lbGVtZW50c0NvdW50ID4gdGhpcy5fYnVja2V0Q291bnQgKiB0aGlzLl9sb2FkRmFjdG9yKSB7XHJcbiAgICAgIHRoaXMuUmVzaXplKHRoaXMuX2J1Y2tldENvdW50ICogMik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuLy8gR2V0cyB2YWx1ZSBmb3Iga2V5IFRLZXlcclxuICBnZXRfSXRlbShrZXk6IFRLZXkpOiBUVmFsdWUge1xyXG4gICAgbGV0IGJ1Y2tldEluZGV4ID0gdGhpcy5HZXRCdWNrZXRJbmRleChrZXkpO1xyXG4gICAgbGV0IGJ1Y2tldCA9IHRoaXMuX2J1Y2tldHNbYnVja2V0SW5kZXhdO1xyXG4gICAgaWYgKCFidWNrZXQpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGl0ZW0gPSBidWNrZXQuZmluZCh4ID0+IHgua2V5ID09PSBrZXkpO1xyXG4gICAgaWYgKGl0ZW0pIHtcclxuICAgICAgcmV0dXJuIGl0ZW0udmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvLyBSZXR1cm5zIGlmIGtleSBUS2V5IGlzIHByZXNlbnQgaW4gSGFzaHRhYmxlXHJcbiAgQ29udGFpbnNLZXkoa2V5OiBUS2V5KTogYm9vbGVhbiB7XHJcbiAgICBsZXQgYnVja2V0SW5kZXggPSB0aGlzLkdldEJ1Y2tldEluZGV4KGtleSk7XHJcbiAgICBsZXQgYnVja2V0ID0gdGhpcy5fYnVja2V0c1tidWNrZXRJbmRleF07XHJcbiAgICBpZiAoIWJ1Y2tldCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGl0ZW1JbmRleCA9IGJ1Y2tldC5maW5kSW5kZXgoeCA9PiB4LmtleSA9PT0ga2V5KTtcclxuICAgIHJldHVybiAoaXRlbUluZGV4ID4gLTEpO1xyXG4gIH1cclxuXHJcbiAgLy8gUmVtb3ZlcyBpdGVtIHdpdGgga2V5IFRLZXkgZnJvbSBIYXNodGFibGVcclxuICBSZW1vdmUoa2V5OiBUS2V5KSB7XHJcbiAgICBsZXQgYnVja2V0SW5kZXggPSB0aGlzLkdldEJ1Y2tldEluZGV4KGtleSk7XHJcbiAgICBsZXQgYnVja2V0ID0gdGhpcy5fYnVja2V0c1tidWNrZXRJbmRleF07XHJcbiAgICBpZiAoIWJ1Y2tldCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGl0ZW1JbmRleCA9IGJ1Y2tldC5maW5kSW5kZXgoeCA9PiB4LmtleSA9PT0ga2V5KTtcclxuICAgIGlmIChpdGVtSW5kZXggPiAtMSkge1xyXG4gICAgICBidWNrZXQuc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgIHRoaXMuX2VsZW1lbnRzQ291bnQtLTtcclxuICAgICAgaWYgKHRoaXMuX2VsZW1lbnRzQ291bnQgPD0gdGhpcy5fYnVja2V0Q291bnQgKiAoMSAtIHRoaXMuX2xvYWRGYWN0b3IpKSB7XHJcbiAgICAgICAgdGhpcy5SZXNpemUodGhpcy5fYnVja2V0Q291bnQgLyAyKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gUmVzaXplIGJ1Y2tldCAoSGFzaHRhYmxlKVxyXG4gIHByaXZhdGUgUmVzaXplKG5ld0J1Y2tldENvdW50OiBudW1iZXIpIHtcclxuICAgIGxldCBfb2xkQnVja2V0cyA9IHRoaXMuX2J1Y2tldHM7XHJcbiAgICB0aGlzLl9lbGVtZW50c0NvdW50ID0gMDtcclxuICAgIHRoaXMuX2J1Y2tldHMgPSBbXTtcclxuICAgIHRoaXMuX2J1Y2tldENvdW50ID0gbmV3QnVja2V0Q291bnQ7XHJcblxyXG4gICAgX29sZEJ1Y2tldHMuZm9yRWFjaChiID0+IGIuZm9yRWFjaChpdGVtID0+IHRoaXMuQWRkKGl0ZW0ua2V5LCBpdGVtLnZhbHVlKSkpO1xyXG4gIH1cclxuXHJcbi8vIHJldHVybnMgYnVja2V0SW5kZXggZm9yIGtleVxyXG4gIHByaXZhdGUgR2V0QnVja2V0SW5kZXgoa2V5OiBUS2V5KSB7XHJcbiAgICBsZXQgaGFzaCA9IHRoaXMuSGFzaEZ1bmN0aW9uKGtleSk7XHJcbiAgICBpZiAoaGFzaCAlIDEgIT09IDApIHtcclxuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignS2V5XFwncyBoYXNoIG11c3QgYmUgYW4gaW50ZWdlciEnKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgaW5kZXggPSBNYXRoLmFicyhoYXNoKSAlIHRoaXMuX2J1Y2tldENvdW50O1xyXG5cclxuICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gdGhpcy5fYnVja2V0Q291bnQpIHtcclxuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignSW5kZXggZXhjZWVkcyBidWNrZXQgYm91bmRhcmllcycpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpbmRleDtcclxuICB9XHJcblxyXG4vLyBDbGVhcnMgSGFzaHRhYmxlXHJcbiAgQ2xlYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9lbGVtZW50c0NvdW50ID0gMDtcclxuICAgIHRoaXMuX2J1Y2tldHMgPSBbXTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -35,4 +35,4 @@ export class ISO_8859_1_Encoding extends Encoding {
|
|
|
35
35
|
return str;
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVNPXzg4NTlfMV9FbmNvZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvSVNPXzg4NTlfMV9FbmNvZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBRXBDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxRQUFRO0lBRS9DLE1BQU0sQ0FBVSxVQUFVLEdBQXdCLElBQUksbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDeEYsWUFBWSxLQUFhO1FBQ3pCLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBVztRQUVsQixJQUFJLEdBQUcsS0FBSyxJQUFJO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRXRDLElBQUksS0FBSyxHQUFlLElBQUksQ0FBQztRQUU3QixLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2QyxJQUFJLFVBQVUsR0FBVyxDQUFDLENBQUM7UUFDM0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQ25DO1lBQ0UsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM1QztRQUVELEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUM7UUFDMUMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWlCLEVBQUUsS0FBYSxFQUFFLEtBQWE7UUFDdkQsSUFBSSxHQUFHLEdBQVcsSUFBSSxDQUFDO1FBRXZCLElBQUksS0FBSyxLQUFLLElBQUk7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRXRDLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNO1lBQzFELE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUUzQyxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBRTdDLElBQUk7WUFFRixHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ1QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQ3JDO2dCQUNFLEdBQUcsSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3RDO1lBQUEsQ0FBQztTQUNIO1FBQ0QsT0FBTyxFQUFFLEVBQUU7U0FDVjtRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RW5jb2Rpbmd9IGZyb20gXCIuL0VuY29kaW5nXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgSVNPXzg4NTlfMV9FbmNvZGluZyBleHRlbmRzIEVuY29kaW5nIHtcclxuXHJcbiAgc3RhdGljIHJlYWRvbmx5IElTT184ODU5XzE6IElTT184ODU5XzFfRW5jb2RpbmcgPSBuZXcgSVNPXzg4NTlfMV9FbmNvZGluZyhcImlzb184ODU5LTFcIik7XHJcbiAgY29uc3RydWN0b3IobGFiZWw6IHN0cmluZykge1xyXG4gIHN1cGVyKGxhYmVsKTtcclxuICB9XHJcblxyXG4gIEdldEJ5dGVzKHN0cjogc3RyaW5nKTogVWludDhBcnJheSB7XHJcblxyXG4gICAgaWYgKHN0ciA9PT0gbnVsbClcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXJndW1lbnQgaXMgbnVsbFwiKTtcclxuXHJcbiAgICBsZXQgYnl0ZXM6IFVpbnQ4QXJyYXkgPSBudWxsO1xyXG5cclxuICAgIGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoc3RyLmxlbmd0aCAqIDMpO1xyXG4gICAgbGV0IGJ5dGVzQ291bnQ6IG51bWJlciA9IDA7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKylcclxuICAgIHtcclxuICAgICAgYnl0ZXNbYnl0ZXNDb3VudCsrXSA9IHN0cltpXS5jaGFyQ29kZUF0KDApO1xyXG4gICAgfVxyXG5cclxuICAgIGJ5dGVzID0gYnl0ZXMuc3ViYXJyYXkoMCwgMCArIGJ5dGVzQ291bnQpO1xyXG4gICAgcmV0dXJuIGJ5dGVzO1xyXG4gIH1cclxuXHJcbiAgR2V0U3RyaW5nKGJ5dGVzOiBVaW50OEFycmF5LCBpbmRleDogbnVtYmVyLCBjb3VudDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGxldCBzdHI6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gICAgaWYgKGJ5dGVzID09PSBudWxsKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBcmd1bWVudCBpcyBudWxsXCIpO1xyXG5cclxuICAgIGlmIChpbmRleCA8IDAgfHwgY291bnQgPCAwIHx8IChpbmRleCArIGNvdW50KSA+IGJ5dGVzLmxlbmd0aClcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXJndW1lbnQgb3V0IG9mIHJhbmdlXCIpO1xyXG5cclxuICAgIGJ5dGVzID0gYnl0ZXMuc3ViYXJyYXkoaW5kZXgsIGluZGV4ICsgY291bnQpO1xyXG5cclxuICAgIHRyeSB7XHJcblxyXG4gICAgICBzdHIgPSAnJztcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKylcclxuICAgICAge1xyXG4gICAgICAgIHN0ciArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ5dGVzW2ldKTtcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGNhdGNoIChleCkge1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBzdHI7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
package/esm2022/src/List.mjs
CHANGED
|
@@ -84,4 +84,4 @@ export class List extends Array {
|
|
|
84
84
|
this.length = size;
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvTGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBRXBDLE1BQU0sT0FBTyxJQUFTLFNBQVEsS0FBUTtJQUVwQyxZQUFZLGVBQXFDO1FBQy9DLEtBQUssRUFBRSxDQUFDO1FBQ1IsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTVDLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksZUFBZSxDQUFDLFdBQVcsS0FBSyxnQkFBZ0IsRUFBRTtZQUM5RSxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUlELFFBQVEsQ0FBQyxzQkFBMkI7UUFDbEMsSUFBSSxzQkFBc0IsQ0FBQyxXQUFXLEtBQUssS0FBSyxFQUFFO1lBQ2hELHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQU8sRUFBRSxFQUFFO2dCQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFDSTtZQUNILElBQUksQ0FBQyxHQUFHLHNCQUFzQixDQUFDO1lBQy9CLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN0QjtTQUNGO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYSxFQUFFLEtBQVE7UUFDOUIsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTTtZQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDOztZQUVwQixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksZ0JBQWdCLENBQUksSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFTO1FBQ2QsSUFBSSxLQUFLLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV6QyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDWixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBYSxFQUFFLElBQU87UUFDM0IsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTTtZQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDekIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLE1BQU07WUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzs7WUFFaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLEdBQUcsR0FBVyxDQUFDLENBQUM7UUFDcEIsT0FBTyxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM3QixHQUFHLEVBQUUsQ0FBQztTQUNQO0lBQ0gsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxDQUFDLFNBQXlEO1FBQzVELElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEMsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDO1lBQ3hCLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFFbkIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQU1ELE9BQU8sQ0FBQyxJQUFZO1FBQ2xCLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQztTQUM1Qzs7WUFFQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FycmF5X0VudW1lcmF0b3J9IGZyb20gXCIuL0FycmF5RW51bWVyYXRvclwiO1xyXG5pbXBvcnQge2lzVW5kZWZpbmVkfSBmcm9tIFwiLi9VdGlsc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIExpc3Q8VD4gIGV4dGVuZHMgQXJyYXk8VD4ge1xyXG5cclxuICBjb25zdHJ1Y3RvcihhcnJheUVudW1lcmF0b3I/OiBBcnJheV9FbnVtZXJhdG9yPFQ+KSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIExpc3QucHJvdG90eXBlKTtcclxuXHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSAmJiBhcnJheUVudW1lcmF0b3IuY29uc3RydWN0b3IgPT09IEFycmF5X0VudW1lcmF0b3IpIHtcclxuICAgICAgdGhpcy5BZGRSYW5nZShhcnJheUVudW1lcmF0b3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQWRkUmFuZ2UoYXJyYXlFbnVtZXJhdG9yOiBBcnJheV9FbnVtZXJhdG9yPFQ+KVxyXG4gIEFkZFJhbmdlKGFycmF5OiBBcnJheTxUPilcclxuICBBZGRSYW5nZShhcnJheUVudW1lcmF0b3JPckFycmF5OiBhbnkpIHtcclxuICAgIGlmIChhcnJheUVudW1lcmF0b3JPckFycmF5LmNvbnN0cnVjdG9yID09PSBBcnJheSkge1xyXG4gICAgICBhcnJheUVudW1lcmF0b3JPckFycmF5LmZvckVhY2goKGl0ZW06IFQpID0+IHtcclxuICAgICAgICB0aGlzLnB1c2goaXRlbSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCBlID0gYXJyYXlFbnVtZXJhdG9yT3JBcnJheTtcclxuICAgICAgd2hpbGUgKGUuTW92ZU5leHQoKSkge1xyXG4gICAgICAgIHRoaXMucHVzaChlLkN1cnJlbnQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRfSXRlbShpbmRleDogbnVtYmVyKTogVCB7XHJcbiAgICBpZiAoaXNVbmRlZmluZWQodGhpc1tpbmRleF0pKVxyXG4gICAgICB0aGlzW2luZGV4XSA9IG51bGw7XHJcbiAgICByZXR1cm4gdGhpc1tpbmRleF07XHJcbiAgfVxyXG5cclxuICBzZXRfSXRlbShpbmRleDogbnVtYmVyLCB2YWx1ZTogVCk6IHZvaWQge1xyXG4gICAgaWYgKGluZGV4ID49IDAgJiYgaW5kZXggPCB0aGlzLmxlbmd0aClcclxuICAgICAgdGhpc1tpbmRleF0gPSB2YWx1ZTtcclxuICAgIGVsc2VcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiKTtcclxuICB9XHJcblxyXG4gIEdldEVudW1lcmF0b3IoKTogQXJyYXlfRW51bWVyYXRvcjxUPiB7XHJcbiAgICByZXR1cm4gbmV3IEFycmF5X0VudW1lcmF0b3I8VD4odGhpcyk7XHJcbiAgfVxyXG5cclxuICBSZW1vdmUob2JqZWN0OiBUKTogdm9pZCB7XHJcbiAgICBsZXQgaW5kZXg6IG51bWJlciA9IHRoaXMuaW5kZXhPZihvYmplY3QpO1xyXG5cclxuICAgIGlmIChpbmRleCA+IC0xKVxyXG4gICAgICB0aGlzLlJlbW92ZUF0KGluZGV4KTtcclxuICB9XHJcblxyXG4gIFJlbW92ZUF0KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuUmVtb3ZlUmFuZ2UoaW5kZXgsIDEpO1xyXG4gIH1cclxuXHJcbiAgUmVtb3ZlUmFuZ2UoaW5kZXg6IG51bWJlciwgY291bnQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5zcGxpY2UoaW5kZXgsIGNvdW50KTtcclxuICB9XHJcblxyXG4gIEluc2VydChpbmRleDogbnVtYmVyLCBpdGVtOiBUKTogdm9pZCB7XHJcbiAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRoaXMubGVuZ3RoKVxyXG4gICAgICB0aGlzLnNwbGljZShpbmRleCwgMCwgaXRlbSk7XHJcbiAgICBlbHNlIGlmIChpbmRleCA9PT0gdGhpcy5sZW5ndGgpIC8vIGluc2VydGluZyBhdCBlbmQgbWVhbnMgYXBwZW5kXHJcbiAgICAgIHRoaXMucHVzaChpdGVtKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiKTtcclxuICB9XHJcblxyXG4gIEluc2VydFJhbmdlKGl0ZW1zOiBUW10pOiB2b2lkIHtcclxuICAgIGxldCBpZHg6IG51bWJlciA9IDA7XHJcbiAgICB3aGlsZSAoaWR4IDwgaXRlbXMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuSW5zZXJ0KGlkeCwgaXRlbXNbaWR4XSk7XHJcbiAgICAgIGlkeCsrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQ2xlYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNwbGljZSgwLCB0aGlzLmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuICBUb0FycmF5KCk6IFRbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5zbGljZSgwKTtcclxuICB9XHJcblxyXG4gIENvbnRhaW5zKG9iamVjdDogVCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaW5kZXhPZihvYmplY3QpID4gLTE7XHJcbiAgfVxyXG5cclxuICBmaW5kKHByZWRpY2F0ZTogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyLCBvYmo6IFRbXSkgPT4gYm9vbGVhbik6IFQge1xyXG4gICAgbGV0IGZvdW5kSXRlbSA9IHN1cGVyLmZpbmQocHJlZGljYXRlKTtcclxuICAgIGlmIChpc1VuZGVmaW5lZChmb3VuZEl0ZW0pKVxyXG4gICAgICBmb3VuZEl0ZW0gPSBudWxsO1xyXG5cclxuICAgIHJldHVybiBmb3VuZEl0ZW07XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGFkZCBudWxsIGNlbGxzIHVwIHRvICdzaXplJyBjZWxscy5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInNpemVcIj48L3BhcmFtPlxyXG4gIFNldFNpemUoc2l6ZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5sZW5ndGggPiBzaXplKSB7XHJcbiAgICAgIHRoaXMuUmVtb3ZlUmFuZ2Uoc2l6ZSwgdGhpcy5sZW5ndGggLSBzaXplKTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5sZW5ndGggPSBzaXplO1xyXG4gIH1cclxufVxyXG4iXX0=
|
package/esm2022/src/NNumber.mjs
CHANGED
|
@@ -25,4 +25,4 @@ export class NNumber {
|
|
|
25
25
|
throw new NotImplementedException();
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTk51bWJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvTk51bWJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUVsRSxNQUFNLENBQU4sSUFBWSxZQUVYO0FBRkQsV0FBWSxZQUFZO0lBQ3RCLHlEQUFTLENBQUE7QUFDWCxDQUFDLEVBRlcsWUFBWSxLQUFaLFlBQVksUUFFdkI7QUFFRCxNQUFNLE9BQU8sT0FBTztJQU9sQixNQUFNLENBQUMsS0FBSyxDQUFDLElBQVksRUFBRSxLQUFvQjtRQUM3QyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzFCLElBQUksS0FBSyxLQUFLLFlBQVksQ0FBQyxTQUFTO2dCQUNsQyxPQUFPLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7O2dCQUUxQixNQUFNLElBQUksdUJBQXVCLEVBQUUsQ0FBQztTQUN2QztRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDZixDQUFDO0lBUUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFXLEVBQUUsTUFBd0I7UUFDbkQsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQztRQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBS0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFXLEVBQUUsTUFBYztRQUN6QyxJQUFJLE1BQU0sS0FBSyxJQUFJLEVBQUU7WUFDbkIsSUFBSSxHQUFHLEdBQVcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNuQyxPQUFPLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7U0FDM0M7UUFDRCxNQUFNLElBQUksdUJBQXVCLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlZlBhcmFtfSBmcm9tIFwiLi9SZWZQYXJhbVwiO1xyXG5pbXBvcnQge05vdEltcGxlbWVudGVkRXhjZXB0aW9ufSBmcm9tIFwiLi9Ob3RJbXBsZW1lbnRlZEV4Y2VwdGlvblwiO1xyXG5cclxuZXhwb3J0IGVudW0gTnVtYmVyU3R5bGVzIHtcclxuICBIZXhOdW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE5OdW1iZXIge1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICBjb252ZXJ0IGEgc3RyaW5nIHRvIG51bWJlclxyXG4gIC8vLyBmb3IgYmxhbmsgc3RyaW5nICwgaXQgd2lsbCByZXR1cm4gMFxyXG4gIC8vLyAgZm9yIGluY29ycmVjdCBmb3JtYXQgaXQgd2lsbCByZXR1cm4gTmFOXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIHN0YXRpYyBQYXJzZSh0ZXh0OiBzdHJpbmcsIHN0eWxlPzogTnVtYmVyU3R5bGVzKTogbnVtYmVyIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7XHJcbiAgICAgIGlmIChzdHlsZSA9PT0gTnVtYmVyU3R5bGVzLkhleE51bWJlcilcclxuICAgICAgICByZXR1cm4gcGFyc2VJbnQodGV4dCwgMTYpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXhjZXB0aW9uKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gK3RleHQ7IC8vIHVzZSB1bmFyeSArIG9wZXJhdG9yIHRvIGNvbnZlcnQgc3RyaW5nICB0byBudW1iZXIuXHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgY29udmVydCBhIHN0cmluZyB0byBudW1iZXJcclxuICAvLy8gIHJldHVybiB0cnVlIGlmIHN0cmluZyBpcyBjb3JyZWN0bHkgcGFyc2VkIGkuZSBwdmFsdWUudmFsdWUgaXMgbnVtYmVyXHJcbiAgLy8vICBmb3IgaW5jb3JyZWN0IGZvcm1hdCBpdCB3aWxsIHJldHVybiBmYWxzZVxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICBzdGF0aWMgVHJ5UGFyc2Uoc3RyOiBzdHJpbmcsIHB2YWx1ZTogUmVmUGFyYW08bnVtYmVyPik6IGJvb2xlYW4ge1xyXG4gICAgcHZhbHVlLnZhbHVlID0gK3N0cjtcclxuICAgIHJldHVybiAhaXNOYU4ocHZhbHVlLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gIGNvbnZlcnQgYSBudW1iZXIgdG8gc3RyaW5nIHdpdGggc3BlY2lmaWVkIGZvcm1hdFxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICBzdGF0aWMgVG9TdHJpbmcobnVtOiBudW1iZXIsIGZvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmIChmb3JtYXQgPT09ICdYMicpIHtcclxuICAgICAgbGV0IHJlczogc3RyaW5nID0gbnVtLnRvU3RyaW5nKDE2KTtcclxuICAgICAgcmV0dXJuIHJlcy5sZW5ndGggPT09IDEgPyAnMCcgKyByZXMgOiByZXM7XHJcbiAgICB9XHJcbiAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFeGNlcHRpb24oKTtcclxuICB9XHJcbn1cclxuIl19
|
package/esm2022/src/NString.mjs
CHANGED
|
@@ -146,4 +146,4 @@ export class NString {
|
|
|
146
146
|
return resultStr;
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTlN0cmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvTlN0cmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDMUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUl0QyxNQUFNLE9BQU8sT0FBTztJQUNoQixNQUFNLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUVsQixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQVcsRUFBRSxTQUFjLEVBQUUsVUFBa0IsRUFBRSxLQUFhO1FBQ3pFLElBQUksS0FBSyxHQUFXLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRSxPQUFPLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ25ELENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQVcsRUFBRSxJQUFjLEVBQUUsVUFBa0IsRUFBRSxLQUFhO1FBQzVFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNuQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUNiLE9BQU8sQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFD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QUM7SUFDMUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBVyxFQUFFLEtBQWEsRUFBRSxFQUFVO1FBQ2hELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVILE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBVSxFQUFFLFNBQWlCLEVBQUUsU0FBaUI7UUFDN0QsSUFBSSxTQUFTLEdBQVUsRUFBRSxDQUFDO1FBSTFCLFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvRCxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0QsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3RCxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0QsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3RCxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0QsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUU3RCxJQUFJLENBQUM7WUFDSCxTQUFTLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUNELE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDVCxNQUFNLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQge2lzTnVsbE9yVW5kZWZpbmVkfSBmcm9tIFwiLi9VdGlsc1wiO1xyXG5pbXBvcnQge0V4Y2VwdGlvbn0gZnJvbSBcIi4vRXhjZXB0aW9uXCI7XHJcblxyXG5cclxuLy8gQGR5bmFtaWNcclxuZXhwb3J0IGNsYXNzIE5TdHJpbmcge1xyXG4gICAgc3RhdGljIEVtcHR5ID0gXCJcIjtcclxuXHJcbiAgICBzdGF0aWMgSW5kZXhPZihzdHI6IHN0cmluZywgc2VhcmNoU3RyOiBhbnksIHN0YXJ0SW5kZXg6IG51bWJlciwgY291bnQ6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgbGV0IGluZGV4OiBudW1iZXIgPSBzdHIuc3Vic3RyKHN0YXJ0SW5kZXgsIGNvdW50KS5pbmRleE9mKHNlYXJjaFN0cik7XHJcbiAgICAgICAgcmV0dXJuIGluZGV4ID4gLTEgPyBzdGFydEluZGV4ICsgaW5kZXggOiBpbmRleDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgSW5kZXhPZkFueShzdHI6IHN0cmluZywgc3Viczogc3RyaW5nW10sIHN0YXJ0SW5kZXg6IG51bWJlciwgY291bnQ6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7XHJcbiAgICAgICAgICAgIGxldCBjID0gc3RyLmNoYXJBdChzdGFydEluZGV4ICsgaSk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgc3Vicy5sZW5ndGg7ICsraikge1xyXG4gICAgICAgICAgICAgICAgaWYgKGMgPT09IHN1YnNbal0pXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChzdGFydEluZGV4ICsgaSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBDb3B5VG8oc291cmNlOiBzdHJpbmcsIHNvdXJjZUluZGV4OiBudW1iZXIsIGRlc3RpbmF0aW9uOiBzdHJpbmdbXSwgZGVzdGluYXRpb25JbmRleDogbnVtYmVyLCBjb3VudDogbnVtYmVyKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uW2Rlc3RpbmF0aW9uSW5kZXggKyBpXSA9IHNvdXJjZVtzb3VyY2VJbmRleCArIGldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgQ29tcGFyZShzdHJBOiBzdHJpbmcsIHN0ckI6IHN0cmluZywgaWdub3JlQ2FzZTogYm9vbGVhbik6IG51bWJlclxyXG4gICAgc3RhdGljIENvbXBhcmUoc3RyQTogc3RyaW5nLCBzdHJCOiBzdHJpbmcsIGlnbm9yZUNhc2U6IGJvb2xlYW4sIGluZGV4QTogbnVtYmVyLCBpbmRleEI6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpOiBudW1iZXJcclxuICAgIHN0YXRpYyBDb21wYXJlKHN0ckE6IHN0cmluZywgc3RyQjogc3RyaW5nLCBpZ25vcmVDYXNlOiBib29sZWFuLCBpbmRleEE/OiBudW1iZXIsIGluZGV4Qj86IG51bWJlciwgbGVuZ3RoPzogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9IDYpIHtcclxuICAgICAgICAgICAgc3RyQSA9IHN0ckEuc3Vic3RyKGluZGV4QSwgbGVuZ3RoKTtcclxuICAgICAgICAgICAgc3RyQiA9IHN0ckIuc3Vic3RyKGluZGV4QiwgbGVuZ3RoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGlnbm9yZUNhc2UpIHtcclxuICAgICAgICAgICAgc3RyQSA9IHN0ckEudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICAgICAgc3RyQiA9IHN0ckIudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHN0ckEubG9jYWxlQ29tcGFyZShzdHJCKTtcclxuICAgIH1cclxuXHJcblxyXG4gIHN0YXRpYyBFcXVhbHMoc3RyQTogc3RyaW5nLCBzdHJCOiBzdHJpbmcsIGlnbm9yZUNhc2U6IGJvb2xlYW4pOiBib29sZWFuIHtcclxuICAgIGlmICghTlN0cmluZy5Jc051bGxPckVtcHR5KHN0ckEpICYmICFOU3RyaW5nLklzTnVsbE9yRW1wdHkoc3RyQikpIHtcclxuICAgICAgaWYgKGlnbm9yZUNhc2UpIHtcclxuICAgICAgICBzdHJBID0gc3RyQS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIHN0ckIgPSBzdHJCLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHN0ckEgPT09IHN0ckI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAgIHN0YXRpYyBHZXRIYXNoQ29kZShzdHI6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICAgICAgdmFyIGhhc2ggPSAwLCBpLCBsLCBjaDtcclxuICAgICAgICBpZiAoc3RyLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGhhc2g7XHJcbiAgICAgICAgZm9yIChpID0gMCwgbCA9IHN0ci5sZW5ndGg7IGkgPCBsOyBpKyspIHtcclxuICAgICAgICAgICAgY2ggPSBzdHIuY2hhckNvZGVBdChpKTtcclxuICAgICAgICAgICAgaGFzaCA9ICgoaGFzaCA8PCA1KSAtIGhhc2gpICsgY2g7XHJcbiAgICAgICAgICAgIGhhc2ggfD0gMDsgLy8gQ29udmVydCB0byAzMmJpdCBpbnRlZ2VyXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBoYXNoO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBzdGF0aWMgUmVtb3ZlKHN0cjogc3RyaW5nLCBzdGFydEluZGV4OiBudW1iZXIsIGxlbmd0aDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gc3RyLnN1YnN0cigwLCBzdGFydEluZGV4IC0gMSkgKyBzdHIuc3Vic3RyKHN0YXJ0SW5kZXggKyBsZW5ndGggLSAxKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgVHJpbVN0YXJ0KHN0cjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gc3RyLnJlcGxhY2UoL15cXHNcXHMqLywgJycpXHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIFRyaW1FbmQoc3RyaW5nOiBzdHJpbmcsIHRyaW1DaGFycz86IHN0cmluZ1tdKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSlcclxuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXHNcXHMqJC8sICcnKTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0cmltQ2hhcnMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgbGV0IHRyaW1DaGFyID0gdHJpbUNoYXJzW2pdO1xyXG4gICAgICAgICAgICBsZXQgaSA9IHN0cmluZy5sZW5ndGggLSAxO1xyXG4gICAgICAgICAgICB3aGlsZSAoIWlzTnVsbE9yVW5kZWZpbmVkKHN0cmluZ1tpXSkgJiYgc3RyaW5nW2ldLmVuZHNXaXRoKHRyaW1DaGFyKSkge1xyXG4gICAgICAgICAgICAgICAgc3RyaW5nID0gTlN0cmluZy5SZW1vdmUoc3RyaW5nLCBzdHJpbmcubGVuZ3RoLCAxKTtcclxuICAgICAgICAgICAgICAgIGktLTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gc3RyaW5nO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBGb3JtYXQoZm9ybWF0OiBzdHJpbmcsIGFyZzA6IGFueSwgYXJnMT86IGFueSwgYXJnMj86IGFueSwgYXJnMz86IGFueSwgYXJnND86IGFueSwgYXJnNT86IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChhcmcwKSAmJiBhcmcwLmNvbnN0cnVjdG9yID09PSBBcnJheSkge1xyXG4gICAgICAgICAgICB2YXIgcyA9IGZvcm1hdCxcclxuICAgICAgICAgICAgICAgIGkgPSBhcmcwLmxlbmd0aDtcclxuICAgICAgICAgICAgd2hpbGUgKGktLSkge1xyXG4gICAgICAgICAgICAgICAgcyA9IHMucmVwbGFjZShuZXcgUmVnRXhwKCdcXFxceycgKyBpICsgJ1xcXFx9JywgJ2dtJyksIGFyZzBbaV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBzO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdmFyIGFyZ3MgPSBbYXJnMCwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCwgYXJnNV07XHJcbiAgICAgICAgICAgIHJldHVybiBOU3RyaW5nLkZvcm1hdChmb3JtYXQsIGFyZ3MpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgSXNOdWxsT3JFbXB0eShzdHIxOiBzdHJpbmcgfCBOU3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICFzdHIxO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBGcm9tQ2hhcnMoY2hPckNoYXJzOiBzdHJpbmdbXSlcclxuICAgIHN0YXRpYyBGcm9tQ2hhcnMoY2hPckNoYXJzOiBzdHJpbmdbXSwgc3RhcnRJbmRleDogbnVtYmVyLCBsZW46IG51bWJlcilcclxuICAgIHN0YXRpYyBGcm9tQ2hhcnMoY2hPckNoYXJzOiBzdHJpbmdbXSwgc3RhcnRJbmRleD86IG51bWJlciwgbGVuPzogbnVtYmVyKSB7XHJcbiAgICAgICAgbGV0IHN0cjogc3RyaW5nID0gY2hPckNoYXJzLmpvaW4oJycpO1xyXG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAzKVxyXG4gICAgICAgICAgICByZXR1cm4gc3RyLnN1YnN0cihzdGFydEluZGV4LCBsZW4pO1xyXG4gICAgICAgIHJldHVybiBzdHI7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIEZyb21DaGFyKGNoOiBzdHJpbmcsIGNvdW50KTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gKG5ldyBBcnJheTxzdHJpbmc+KGNvdW50KS5maWxsKDxzdHJpbmc+Y2gpKS5qb2luKCcnKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgVG9DaGFyQXJyYXkoc3RyOiBzdHJpbmcpOiBzdHJpbmdbXSB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oc3RyKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgQ29tcGFyZU9yZGluYWwoc3RyQTogc3RyaW5nLCBzdHJCOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgICAgIGxldCBsZW5BID0gc3RyQS5sZW5ndGg7XHJcbiAgICAgICAgbGV0IGxlbkIgPSBzdHJCLmxlbmd0aDtcclxuXHJcbiAgICAgICAgbGV0IGxlbiA9IE1hdGgubWluKGxlbkEsIGxlbkIpO1xyXG5cclxuICAgICAgICAvLyBjb21wYXJlIGNoYXJhY3RlciBieSBjaGFyYWN0ZXJcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChzdHJBW2ldLmNoYXJDb2RlQXQoMCkgIT09IHN0ckJbaV0uY2hhckNvZGVBdCgwKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0ckFbaV0uY2hhckNvZGVBdCgwKSAtIHN0ckJbaV0uY2hhckNvZGVBdCgwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gaWYgYWxsIGNoYXJhY3RlcnMgYXJlIHNhbWUgLCBidXQgbGVuZ3RoIGlzIGRpZmZlcmVudCByZXR1cm4gdGhlIGRpZmZlcmVuY2Ugb2YgbGVuZ3RoXHJcbiAgICAgICAgaWYgKGxlbkEgIT09IGxlbkIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGxlbkEgLSBsZW5CO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gYWxsIGNoYXJzIGFyZSBzYW1lICwgc28gc3RyaW5ncyBhcmUgZXF1YWxcclxuICAgICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgUGFkUmlnaHQoc291cmNlOiBzdHJpbmcsIG1heExlbmd0aDogbnVtYmVyLCBmaWxsU3RyaW5nPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoc291cmNlLmxlbmd0aCA+PSBtYXhMZW5ndGgpXHJcbiAgICAgICAgICAgIHJldHVybiBzb3VyY2U7XHJcblxyXG4gICAgICAgIGxldCBmaWxsTGVuID0gbWF4TGVuZ3RoIC0gc291cmNlLmxlbmd0aDtcclxuICAgICAgICBsZXQgdGltZXNUb1JlcGVhdCA9IE1hdGguY2VpbChmaWxsTGVuIC8gZmlsbFN0cmluZy5sZW5ndGgpO1xyXG4gICAgICAgIGxldCB0cnVuY2F0ZWRTdHJpbmdGaWxsZXIgPSBmaWxsU3RyaW5nLnJlcGVhdCh0aW1lc1RvUmVwZWF0KS5zbGljZSgwLCBmaWxsTGVuKTtcclxuICAgICAgICByZXR1cm4gc291cmNlICsgdHJ1bmNhdGVkU3RyaW5nRmlsbGVyO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBJbnNlcnQoc3RyOiBzdHJpbmcsIGluZGV4OiBudW1iZXIsIGNoOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBzdHIuc3Vic3RyKDAsIGluZGV4KSArIGNoICsgc3RyLnN1YnN0cihpbmRleCwgc3RyLmxlbmd0aCAtIGluZGV4KTtcclxuICAgIH1cclxuXHJcbiAgc3RhdGljIFJlcGxhY2Uoc3RyOnN0cmluZywgb3JnU3ViU3RyOiBzdHJpbmcsIG5ld1N1YlN0cjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGxldCByZXN1bHRTdHI6c3RyaW5nID0gJyc7XHJcblxyXG4gICAgLy8gZml4ZWQgZGVmZWN0IDE1MTgxMDogIHJlcGxhY2UgXCIqXCIgd2l0aCBcIlxcKlwiIGJlZm9yZSB3ZSB1cGRhdGUgdGhlIHN0cmluZyBzbyAqIHdpbGwgYmUgYXMgY2hhciBhbmQgbm90IHJlZyBleHBcclxuICAgIC8vIGFsc28gZm9yIHNwZWNpYWwgY2hhcnMgJCBeIC4gPyArICwgW1xyXG4gICAgb3JnU3ViU3RyID0gb3JnU3ViU3RyLnJlcGxhY2UobmV3IFJlZ0V4cChcIlxcXFxcXFxcXCIsICdnJyksIFwiXFxcXFxcXFxcIik7XHJcbiAgICBvcmdTdWJTdHIgPSBvcmdTdWJTdHIucmVwbGFjZShuZXcgUmVnRXhwKFwiXFxcXCpcIiwnZycpLCBcIlxcXFxcXCpcIik7XHJcbiAgICBvcmdTdWJTdHIgPSBvcmdTdWJTdHIucmVwbGFjZShuZXcgUmVnRXhwKFwiXFxcXCRcIiwnZycpLCBcIlxcXFxcXCRcIik7XHJcbiAgICBvcmdTdWJTdHIgPSBvcmdTdWJTdHIucmVwbGFjZShuZXcgUmVnRXhwKFwiXFxcXF5cIiwnZycpLCBcIlxcXFxcXF5cIik7XHJcbiAgICBvcmdTdWJTdHIgPSBvcmdTdWJTdHIucmVwbGFjZShuZXcgUmVnRXhwKFwiXFxcXC5cIiwnZycpLCBcIlxcXFxcXC5cIik7XHJcbiAgICBvcmdTdWJTdHIgPSBvcmdTdWJTdHIucmVwbGFjZShuZXcgUmVnRXhwKFwiXFxcXD9cIiwnZycpLCBcIlxcXFxcXD9cIik7XHJcbiAgICBvcmdTdWJTdHIgPSBvcmdTdWJTdHIucmVwbGFjZShuZXcgUmVnRXhwKFwiXFxcXCtcIiwnZycpLCBcIlxcXFxcXCtcIik7XHJcbiAgICBvcmdTdWJTdHIgPSBvcmdTdWJTdHIucmVwbGFjZShuZXcgUmVnRXhwKFwiXFxcXCxcIiwnZycpLCBcIlxcXFxcXCxcIik7XHJcbiAgICBvcmdTdWJTdHIgPSBvcmdTdWJTdHIucmVwbGFjZShuZXcgUmVnRXhwKFwiXFxcXFtcIiwnZycpLCBcIlxcXFxcXFtcIik7XHJcbiAgICBvcmdTdWJTdHIgPSBvcmdTdWJTdHIucmVwbGFjZShuZXcgUmVnRXhwKFwiXFxcXHxcIiwnZycpLCBcIlxcXFxcXHxcIik7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgcmVzdWx0U3RyID0gc3RyLnJlcGxhY2UobmV3IFJlZ0V4cChvcmdTdWJTdHIsJ2cnKSwgbmV3U3ViU3RyKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlKSB7XHJcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oZS5tZXNzYWdlKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHRTdHI7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTlN0cmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvTlN0cmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDMUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUl0QyxNQUFNLE9BQU8sT0FBTztJQUNoQixNQUFNLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUVsQixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQVcsRUFBRSxTQUFjLEVBQUUsVUFBa0IsRUFBRSxLQUFhO1FBQ3pFLElBQUksS0FBSyxHQUFXLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRSxPQUFPLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ25ELENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQVcsRUFBRSxJQUFjLEVBQUUsVUFBa0IsRUFBRSxLQUFhO1FBQzVFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUU7WUFDNUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQ2IsT0FBTyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUMvQjtTQUNKO1FB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QUFHLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFSCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQVUsRUFBRSxTQUFpQixFQUFFLFNBQWlCO1FBQzdELElBQUksU0FBUyxHQUFVLEVBQUUsQ0FBQztRQUkxQixTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDL0QsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3RCxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0QsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3RCxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0QsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3RCxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFN0QsSUFBSTtZQUNGLFNBQVMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBQyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztTQUMvRDtRQUNELE9BQU8sQ0FBQyxFQUFFO1lBQ1IsTUFBTSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDaEM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7aXNOdWxsT3JVbmRlZmluZWR9IGZyb20gXCIuL1V0aWxzXCI7XHJcbmltcG9ydCB7RXhjZXB0aW9ufSBmcm9tIFwiLi9FeGNlcHRpb25cIjtcclxuXHJcblxyXG4vLyBAZHluYW1pY1xyXG5leHBvcnQgY2xhc3MgTlN0cmluZyB7XHJcbiAgICBzdGF0aWMgRW1wdHkgPSBcIlwiO1xyXG5cclxuICAgIHN0YXRpYyBJbmRleE9mKHN0cjogc3RyaW5nLCBzZWFyY2hTdHI6IGFueSwgc3RhcnRJbmRleDogbnVtYmVyLCBjb3VudDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBsZXQgaW5kZXg6IG51bWJlciA9IHN0ci5zdWJzdHIoc3RhcnRJbmRleCwgY291bnQpLmluZGV4T2Yoc2VhcmNoU3RyKTtcclxuICAgICAgICByZXR1cm4gaW5kZXggPiAtMSA/IHN0YXJ0SW5kZXggKyBpbmRleCA6IGluZGV4O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBJbmRleE9mQW55KHN0cjogc3RyaW5nLCBzdWJzOiBzdHJpbmdbXSwgc3RhcnRJbmRleDogbnVtYmVyLCBjb3VudDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHtcclxuICAgICAgICAgICAgbGV0IGMgPSBzdHIuY2hhckF0KHN0YXJ0SW5kZXggKyBpKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBzdWJzLmxlbmd0aDsgKytqKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYyA9PT0gc3Vic1tqXSlcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHN0YXJ0SW5kZXggKyBpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gLTE7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIENvcHlUbyhzb3VyY2U6IHN0cmluZywgc291cmNlSW5kZXg6IG51bWJlciwgZGVzdGluYXRpb246IHN0cmluZ1tdLCBkZXN0aW5hdGlvbkluZGV4OiBudW1iZXIsIGNvdW50OiBudW1iZXIpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcclxuICAgICAgICAgICAgZGVzdGluYXRpb25bZGVzdGluYXRpb25JbmRleCArIGldID0gc291cmNlW3NvdXJjZUluZGV4ICsgaV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBDb21wYXJlKHN0ckE6IHN0cmluZywgc3RyQjogc3RyaW5nLCBpZ25vcmVDYXNlOiBib29sZWFuKTogbnVtYmVyXHJcbiAgICBzdGF0aWMgQ29tcGFyZShzdHJBOiBzdHJpbmcsIHN0ckI6IHN0cmluZywgaWdub3JlQ2FzZTogYm9vbGVhbiwgaW5kZXhBOiBudW1iZXIsIGluZGV4QjogbnVtYmVyLCBsZW5ndGg6IG51bWJlcik6IG51bWJlclxyXG4gICAgc3RhdGljIENvbXBhcmUoc3RyQTogc3RyaW5nLCBzdHJCOiBzdHJpbmcsIGlnbm9yZUNhc2U6IGJvb2xlYW4sIGluZGV4QT86IG51bWJlciwgaW5kZXhCPzogbnVtYmVyLCBsZW5ndGg/OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID0gNikge1xyXG4gICAgICAgICAgICBzdHJBID0gc3RyQS5zdWJzdHIoaW5kZXhBLCBsZW5ndGgpO1xyXG4gICAgICAgICAgICBzdHJCID0gc3RyQi5zdWJzdHIoaW5kZXhCLCBsZW5ndGgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaWdub3JlQ2FzZSkge1xyXG4gICAgICAgICAgICBzdHJBID0gc3RyQS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICBzdHJCID0gc3RyQi50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gc3RyQS5sb2NhbGVDb21wYXJlKHN0ckIpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgc3RhdGljIEVxdWFscyhzdHJBOiBzdHJpbmcsIHN0ckI6IHN0cmluZywgaWdub3JlQ2FzZTogYm9vbGVhbik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCFOU3RyaW5nLklzTnVsbE9yRW1wdHkoc3RyQSkgJiYgIU5TdHJpbmcuSXNOdWxsT3JFbXB0eShzdHJCKSkge1xyXG4gICAgICBpZiAoaWdub3JlQ2FzZSkge1xyXG4gICAgICAgIHN0ckEgPSBzdHJBLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgc3RyQiA9IHN0ckIudG9Mb3dlckNhc2UoKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gc3RyQSA9PT0gc3RyQjtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gICAgc3RhdGljIEdldEhhc2hDb2RlKHN0cjogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgICAgICB2YXIgaGFzaCA9IDAsIGksIGwsIGNoO1xyXG4gICAgICAgIGlmIChzdHIubGVuZ3RoID09PSAwKSByZXR1cm4gaGFzaDtcclxuICAgICAgICBmb3IgKGkgPSAwLCBsID0gc3RyLmxlbmd0aDsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgICAgICBjaCA9IHN0ci5jaGFyQ29kZUF0KGkpO1xyXG4gICAgICAgICAgICBoYXNoID0gKChoYXNoIDw8IDUpIC0gaGFzaCkgKyBjaDtcclxuICAgICAgICAgICAgaGFzaCB8PSAwOyAvLyBDb252ZXJ0IHRvIDMyYml0IGludGVnZXJcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGhhc2g7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHN0YXRpYyBSZW1vdmUoc3RyOiBzdHJpbmcsIHN0YXJ0SW5kZXg6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBzdHIuc3Vic3RyKDAsIHN0YXJ0SW5kZXggLSAxKSArIHN0ci5zdWJzdHIoc3RhcnRJbmRleCArIGxlbmd0aCAtIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBUcmltU3RhcnQoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBzdHIucmVwbGFjZSgvXlxcc1xccyovLCAnJylcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgVHJpbUVuZChzdHJpbmc6IHN0cmluZywgdHJpbUNoYXJzPzogc3RyaW5nW10pOiBzdHJpbmcge1xyXG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKVxyXG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcc1xccyokLywgJycpO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRyaW1DaGFycy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgdHJpbUNoYXIgPSB0cmltQ2hhcnNbal07XHJcbiAgICAgICAgICAgIGxldCBpID0gc3RyaW5nLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgICAgIHdoaWxlICghaXNOdWxsT3JVbmRlZmluZWQoc3RyaW5nW2ldKSAmJiBzdHJpbmdbaV0uZW5kc1dpdGgodHJpbUNoYXIpKSB7XHJcbiAgICAgICAgICAgICAgICBzdHJpbmcgPSBOU3RyaW5nLlJlbW92ZShzdHJpbmcsIHN0cmluZy5sZW5ndGgsIDEpO1xyXG4gICAgICAgICAgICAgICAgaS0tO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBzdHJpbmc7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIEZvcm1hdChmb3JtYXQ6IHN0cmluZywgYXJnMDogYW55LCBhcmcxPzogYW55LCBhcmcyPzogYW55LCBhcmczPzogYW55LCBhcmc0PzogYW55LCBhcmc1PzogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKGFyZzApICYmIGFyZzAuY29uc3RydWN0b3IgPT09IEFycmF5KSB7XHJcbiAgICAgICAgICAgIHZhciBzID0gZm9ybWF0LFxyXG4gICAgICAgICAgICAgICAgaSA9IGFyZzAubGVuZ3RoO1xyXG4gICAgICAgICAgICB3aGlsZSAoaS0tKSB7XHJcbiAgICAgICAgICAgICAgICBzID0gcy5yZXBsYWNlKG5ldyBSZWdFeHAoJ1xcXFx7JyArIGkgKyAnXFxcXH0nLCAnZ20nKSwgYXJnMFtpXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB2YXIgYXJncyA9IFthcmcwLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0LCBhcmc1XTtcclxuICAgICAgICAgICAgcmV0dXJuIE5TdHJpbmcuRm9ybWF0KGZvcm1hdCwgYXJncyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBJc051bGxPckVtcHR5KHN0cjE6IHN0cmluZyB8IE5TdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIXN0cjE7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIEZyb21DaGFycyhjaE9yQ2hhcnM6IHN0cmluZ1tdKVxyXG4gICAgc3RhdGljIEZyb21DaGFycyhjaE9yQ2hhcnM6IHN0cmluZ1tdLCBzdGFydEluZGV4OiBudW1iZXIsIGxlbjogbnVtYmVyKVxyXG4gICAgc3RhdGljIEZyb21DaGFycyhjaE9yQ2hhcnM6IHN0cmluZ1tdLCBzdGFydEluZGV4PzogbnVtYmVyLCBsZW4/OiBudW1iZXIpIHtcclxuICAgICAgICBsZXQgc3RyOiBzdHJpbmcgPSBjaE9yQ2hhcnMuam9pbignJyk7XHJcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDMpXHJcbiAgICAgICAgICAgIHJldHVybiBzdHIuc3Vic3RyKHN0YXJ0SW5kZXgsIGxlbik7XHJcbiAgICAgICAgcmV0dXJuIHN0cjtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgRnJvbUNoYXIoY2g6IHN0cmluZywgY291bnQpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAobmV3IEFycmF5PHN0cmluZz4oY291bnQpLmZpbGwoPHN0cmluZz5jaCkpLmpvaW4oJycpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBUb0NoYXJBcnJheShzdHI6IHN0cmluZyk6IHN0cmluZ1tdIHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBDb21wYXJlT3JkaW5hbChzdHJBOiBzdHJpbmcsIHN0ckI6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICAgICAgbGV0IGxlbkEgPSBzdHJBLmxlbmd0aDtcclxuICAgICAgICBsZXQgbGVuQiA9IHN0ckIubGVuZ3RoO1xyXG5cclxuICAgICAgICBsZXQgbGVuID0gTWF0aC5taW4obGVuQSwgbGVuQik7XHJcblxyXG4gICAgICAgIC8vIGNvbXBhcmUgY2hhcmFjdGVyIGJ5IGNoYXJhY3RlclxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHN0ckFbaV0uY2hhckNvZGVBdCgwKSAhPT0gc3RyQltpXS5jaGFyQ29kZUF0KDApKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RyQVtpXS5jaGFyQ29kZUF0KDApIC0gc3RyQltpXS5jaGFyQ29kZUF0KDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBpZiBhbGwgY2hhcmFjdGVycyBhcmUgc2FtZSAsIGJ1dCBsZW5ndGggaXMgZGlmZmVyZW50IHJldHVybiB0aGUgZGlmZmVyZW5jZSBvZiBsZW5ndGhcclxuICAgICAgICBpZiAobGVuQSAhPT0gbGVuQikge1xyXG4gICAgICAgICAgICByZXR1cm4gbGVuQSAtIGxlbkI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBhbGwgY2hhcnMgYXJlIHNhbWUgLCBzbyBzdHJpbmdzIGFyZSBlcXVhbFxyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBQYWRSaWdodChzb3VyY2U6IHN0cmluZywgbWF4TGVuZ3RoOiBudW1iZXIsIGZpbGxTdHJpbmc/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmIChzb3VyY2UubGVuZ3RoID49IG1heExlbmd0aClcclxuICAgICAgICAgICAgcmV0dXJuIHNvdXJjZTtcclxuXHJcbiAgICAgICAgbGV0IGZpbGxMZW4gPSBtYXhMZW5ndGggLSBzb3VyY2UubGVuZ3RoO1xyXG4gICAgICAgIGxldCB0aW1lc1RvUmVwZWF0ID0gTWF0aC5jZWlsKGZpbGxMZW4gLyBmaWxsU3RyaW5nLmxlbmd0aCk7XHJcbiAgICAgICAgbGV0IHRydW5jYXRlZFN0cmluZ0ZpbGxlciA9IGZpbGxTdHJpbmcucmVwZWF0KHRpbWVzVG9SZXBlYXQpLnNsaWNlKDAsIGZpbGxMZW4pO1xyXG4gICAgICAgIHJldHVybiBzb3VyY2UgKyB0cnVuY2F0ZWRTdHJpbmdGaWxsZXI7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIEluc2VydChzdHI6IHN0cmluZywgaW5kZXg6IG51bWJlciwgY2g6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHN0ci5zdWJzdHIoMCwgaW5kZXgpICsgY2ggKyBzdHIuc3Vic3RyKGluZGV4LCBzdHIubGVuZ3RoIC0gaW5kZXgpO1xyXG4gICAgfVxyXG5cclxuICBzdGF0aWMgUmVwbGFjZShzdHI6c3RyaW5nLCBvcmdTdWJTdHI6IHN0cmluZywgbmV3U3ViU3RyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdFN0cjpzdHJpbmcgPSAnJztcclxuXHJcbiAgICAvLyBmaXhlZCBkZWZlY3QgMTUxODEwOiAgcmVwbGFjZSBcIipcIiB3aXRoIFwiXFwqXCIgYmVmb3JlIHdlIHVwZGF0ZSB0aGUgc3RyaW5nIHNvICogd2lsbCBiZSBhcyBjaGFyIGFuZCBub3QgcmVnIGV4cFxyXG4gICAgLy8gYWxzbyBmb3Igc3BlY2lhbCBjaGFycyAkIF4gLiA/ICsgLCBbXHJcbiAgICBvcmdTdWJTdHIgPSBvcmdTdWJTdHIucmVwbGFjZShuZXcgUmVnRXhwKFwiXFxcXFxcXFxcIiwgJ2cnKSwgXCJcXFxcXFxcXFwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcKlwiLCdnJyksIFwiXFxcXFxcKlwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcJFwiLCdnJyksIFwiXFxcXFxcJFwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcXlwiLCdnJyksIFwiXFxcXFxcXlwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcLlwiLCdnJyksIFwiXFxcXFxcLlwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcP1wiLCdnJyksIFwiXFxcXFxcP1wiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcK1wiLCdnJyksIFwiXFxcXFxcK1wiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcLFwiLCdnJyksIFwiXFxcXFxcLFwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcW1wiLCdnJyksIFwiXFxcXFxcW1wiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcfFwiLCdnJyksIFwiXFxcXFxcfFwiKTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICByZXN1bHRTdHIgPSBzdHIucmVwbGFjZShuZXcgUmVnRXhwKG9yZ1N1YlN0ciwnZycpLCBuZXdTdWJTdHIpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGUpIHtcclxuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihlLm1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdFN0cjtcclxuICB9XHJcbn1cclxuIl19
|
package/esm2022/src/Stack.mjs
CHANGED
|
@@ -32,4 +32,4 @@ export class Stack {
|
|
|
32
32
|
return clone;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc2NvcmVsaWIvc3JjL1N0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxLQUFLO0lBRVIsTUFBTSxDQUFlO0lBRTdCO1FBQ0UsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBUyxDQUFDO0lBQ25DLENBQUM7SUFFTSxLQUFLO1FBQ1YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUM1QixDQUFDO0lBRU0sT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxJQUFJLENBQUMsS0FBWTtRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRU0sR0FBRztRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUM1QzthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLEtBQUssR0FBaUIsSUFBSSxLQUFLLEVBQVMsQ0FBQztRQUM3QyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgU3RhY2s8VERhdGE+IHtcclxuXHJcbiAgcHJpdmF0ZSBfYXJyYXk6IEFycmF5PFREYXRhPjtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLl9hcnJheSA9IG5ldyBBcnJheTxURGF0YT4oKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FycmF5Lmxlbmd0aDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc0VtcHR5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FycmF5Lmxlbmd0aCA9PT0gMDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwdXNoKHZhbHVlOiBURGF0YSk6IHZvaWQge1xyXG4gICAgdGhpcy5fYXJyYXkucHVzaCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcG9wKCk6IFREYXRhIHtcclxuICAgIHJldHVybiB0aGlzLl9hcnJheS5wb3AoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwZWVrKCk6IFREYXRhIHtcclxuICAgIGlmICh0aGlzLl9hcnJheS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9hcnJheVt0aGlzLl9hcnJheS5sZW5ndGggLSAxXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIENsZWFyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fYXJyYXkuc3BsaWNlKDAsIHRoaXMuX2FycmF5Lmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQ2xvbmUoKTogU3RhY2s8VERhdGE+IHtcclxuICAgIGxldCBjbG9uZTogU3RhY2s8VERhdGE+ID0gbmV3IFN0YWNrPFREYXRhPigpO1xyXG4gICAgY2xvbmUuX2FycmF5ID0gdGhpcy5fYXJyYXkuc2xpY2UoKTtcclxuICAgIHJldHVybiBjbG9uZTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -109,4 +109,4 @@ export class StringBuilder {
|
|
|
109
109
|
return this.ToString();
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RyaW5nQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvU3RyaW5nQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQzlCLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFNbEMsTUFBTSxPQUFPLGFBQWE7SUFDaEIsSUFBSSxHQUFXLEVBQUUsQ0FBQztJQUsxQixZQUFZLGFBQW1CLEVBQUUsTUFBZTtRQUM5QyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekIsSUFBSSxhQUFhLElBQUksSUFBSSxJQUFLLGFBQWEsQ0FBQyxXQUFXLEtBQUssTUFBTSxFQUFFLENBQUM7WUFJckUsQ0FBQztpQkFDSSxJQUFJLGFBQWEsSUFBSSxJQUFJLElBQUssYUFBYSxDQUFDLFdBQVcsS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDeEUsSUFBSSxDQUFDLElBQUksR0FBRyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7WUFJdkMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBT0QsTUFBTSxDQUFDLFNBQWMsRUFBRSw4QkFBdUMsRUFBRSxTQUFrQjtRQUVoRixJQUFJLFNBQVMsS0FBSyxJQUFJO1lBQ3BCLE9BQU8sSUFBSSxDQUFDO1FBRWQsSUFBSSxTQUFTLENBQUMsV0FBVyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3JDLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDO2dCQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2lCQUNyQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2hDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFD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SUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUN6RSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFFN0QsSUFBSSxRQUFRLEdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQzFELElBQUksU0FBUyxHQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsRixJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsR0FBRyxNQUFNLEdBQUcsU0FBUyxDQUFDO1FBQzVDLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFHRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEZWJ1Z30gZnJvbSBcIi4vRGVidWdcIjtcclxuaW1wb3J0IHtOU3RyaW5nfSBmcm9tIFwiLi9OU3RyaW5nXCI7XHJcblxyXG4vLyBTdHJpbmdCdWlsZGVyIGNsYXNzLiBJdHMgSW1wbGVtZW50YXRpb24gY3VycmVudGx5IHVzZXMgc3RyaW5nIG9iamVjdC4gSXQgY291bGQgaGF2ZSBiZWVuIHN0cmluZ1tdLCBidXQgaXQgaGFzIGlzc3VlcyB3aGVuIGluc2VydGluZyBzdHJpbmcuXHJcbi8vIEl0IHdvdWxkIG5vdCBoYXZlIHNlcnZlZCBwdXJwb3NlIHdoaWxlIGluc2VydGluZyBhIHN0cmluZy4gT3RoZXIgIGNvdWxkIGJlIHRvIHVzZSBzdHJpbmdbXSB3aXRoIG9uZSBjaHJhcmFjdGVyIHBlciBzdHJpbmcuIEV2ZW4gaXRzIHV0aWxpdHlcclxuLy8gaXMgZG91YnRmdWwgYXMgd2hpbGUgbWFuaXB1bGF0aW9uLCBpdCB3b3VsZCBiZSBjcmV0aW5nIG5ldyBvYmplY3RzIGluc3RlYWQgcG9pbnRlcnMuIFNvIGZvciBub3cgd2UgaGF2ZSB1c2VkIG9ubHkgc3RyaW5nIGFuZCBzZWUgaWYgd2UgaGF2ZVxyXG4vLyBhbnkgcGVyZm9ybWFuY2UgaXNzdWVzLlxyXG5leHBvcnQgY2xhc3MgU3RyaW5nQnVpbGRlciB7XHJcbiAgcHJpdmF0ZSBwYXJ0OiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAvLyBDdG9yXHJcbiAgY29uc3RydWN0b3IobGVuZ3RoPzogbnVtYmVyKVxyXG4gIGNvbnN0cnVjdG9yKHZhbHVlPzogc3RyaW5nLCBsZW5ndGg/OiBudW1iZXIpXHJcbiAgY29uc3RydWN0b3IodmFsdWVPckxlbmd0aD86IGFueSwgbGVuZ3RoPzogbnVtYmVyKSB7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgaWYgKHZhbHVlT3JMZW5ndGggIT0gbnVsbCAgJiYgdmFsdWVPckxlbmd0aC5jb25zdHJ1Y3RvciA9PT0gTnVtYmVyKSB7XHJcbiAgICAgICAgLy8gVE9ETzogVmVyeSBsb3cgcHJpb3JpdHkgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgLSBJbXBsZW1lbnQgdGhpcy5cclxuICAgICAgICAvLyBEZWJ1Zy5Bc3NlcnQoZmFsc2UsIFwiU3RyaW5nQnVpbGRlcjogTm90SW1wbGVtZW50ZWQgY29uc3RydWN0b3Igd2l0aCBpbml0aWFsIGxlbmd0aC9jYXBhY2l0eVwiKTtcclxuICAgICAgICAvLyB0aHJvdyAgbmV3IEVycm9yKFwiTm90SW1wbGVtZW50ZWQgY29uc3RydWN0b3Igd2l0aCBpbml0aWFsIGxlbmd0aC9jYXBhY2l0eVwiKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmICh2YWx1ZU9yTGVuZ3RoICE9IG51bGwgICYmIHZhbHVlT3JMZW5ndGguY29uc3RydWN0b3IgPT09IFN0cmluZykge1xyXG4gICAgICAgIHRoaXMucGFydCA9IHZhbHVlT3JMZW5ndGgudG9TdHJpbmcoKTtcclxuICAgICAgICAvLyBUT0RPOiBWZXJ5IGxvdyBwcmlvcml0eSBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCAtIEltcGxlbWVudCB0aGlzLlxyXG4gICAgICAgIC8vIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKVxyXG4gICAgICAgIC8vICAgRGVidWcuQXNzZXJ0KGZhbHNlLCBcIk5vdEltcGxlbWVudGVkIGNvbnN0cnVjdG9yIHdpdGggaW5pdGlhbCBsZW5ndGgvY2FwYWNpdHlcIik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEFwcGVuZHMgc3RyaW5nL251bWJlclxyXG4gIEFwcGVuZChudW06IG51bWJlciwgbnVtYmVyT2ZDaGFyYWN0ZXJzPzogbnVtYmVyKTogU3RyaW5nQnVpbGRlcjtcclxuICBBcHBlbmQodGV4dDogc3RyaW5nKTogU3RyaW5nQnVpbGRlcjtcclxuICBBcHBlbmQodGV4dDogc3RyaW5nLCBudW1iZXJPZkNoYXJhY3RlcnM6IG51bWJlcik6IFN0cmluZ0J1aWxkZXI7XHJcbiAgQXBwZW5kKHRleHQ6IHN0cmluZywgc3RhcnRJbmRleDogbnVtYmVyLCBjaGFyQ291bnQ6IG51bWJlcik6IFN0cmluZ0J1aWxkZXI7XHJcbiAgQXBwZW5kKHRleHRPck51bTogYW55LCBzdGFydEluZGV4T3JOdW1iZXJPZkNoYXJhY3RlcnM/OiBudW1iZXIsIGNoYXJDb3VudD86IG51bWJlcik6IFN0cmluZ0J1aWxkZXIge1xyXG5cclxuICAgIGlmICh0ZXh0T3JOdW0gPT09IG51bGwpXHJcbiAgICAgIHJldHVybiB0aGlzO1xyXG5cclxuICAgIGlmICh0ZXh0T3JOdW0uY29uc3RydWN0b3IgPT09IFN0cmluZykge1xyXG4gICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSlcclxuICAgICAgICB0aGlzLkFwcGVuZFN0cmluZyh0ZXh0T3JOdW0udG9TdHJpbmcoKSk7XHJcbiAgICAgIGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIHtcclxuICAgICAgICBEZWJ1Zy5Bc3NlcnQodGV4dE9yTnVtLmxlbmd0aCA9PT0gMSwgXCJjaGFyYWN0ZXIgaXMgZXhwZWN0ZWQgbm90IHN0cmluZ1wiKTtcclxuICAgICAgICB0aGlzLkFwcGVuZFN0cmluZyh0ZXh0T3JOdW0uY2hhckF0KDApLnJlcGVhdChzdGFydEluZGV4T3JOdW1iZXJPZkNoYXJhY3RlcnMpKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5BcHBlbmRTdHJpbmcodGV4dE9yTnVtLnRvU3RyaW5nKCksIHN0YXJ0SW5kZXhPck51bWJlck9mQ2hhcmFjdGVycywgY2hhckNvdW50KTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5BcHBlbmROdW1iZXIodGV4dE9yTnVtLCBzdGFydEluZGV4T3JOdW1iZXJPZkNoYXJhY3RlcnMpO1xyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLy8gQXBwZW5kIHN0cmluZ1xyXG4gIHByaXZhdGUgQXBwZW5kU3RyaW5nKHRleHQ6IHN0cmluZywgc3RhcnRJbmRleDogbnVtYmVyID0gMCwgY2hhckNvdW50OiBudW1iZXIgPSB0ZXh0Lmxlbmd0aCk6IHZvaWQge1xyXG4gICAgdGhpcy5wYXJ0ID0gdGhpcy5wYXJ0ICsgdGV4dC5zdWJzdHIoc3RhcnRJbmRleCwgY2hhckNvdW50KTtcclxuICB9XHJcblxyXG4gIC8vIEFwcGVuZCBOdW1iZXJcclxuICBwcml2YXRlIEFwcGVuZE51bWJlcihudW06IG51bWJlciwgbnVtYmVyT2ZDaGFyYWN0ZXJzOiBudW1iZXIgPSAxKTogdm9pZCB7XHJcbiAgICBpZiAobnVtYmVyT2ZDaGFyYWN0ZXJzIDw9IDApXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIm51bWJlck9mQ2hhcmFjdGVycyBjYW5ub3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHplcm9cIik7XHJcblxyXG4gICAgdGhpcy5wYXJ0ID0gdGhpcy5wYXJ0ICsgbnVtLnRvU3RyaW5nKCkucmVwZWF0KG51bWJlck9mQ2hhcmFjdGVycyk7XHJcbiAgfVxyXG5cclxuICAvLyBBcHBlbmQgTGluZVxyXG4gIEFwcGVuZExpbmUodGV4dDogc3RyaW5nID0gbnVsbCk6IHZvaWQge1xyXG4gICAgaWYgKHRleHQgIT09IG51bGwpXHJcbiAgICAgIHRoaXMucGFydCA9IHRoaXMucGFydCArIHRleHQ7XHJcbiAgICB0aGlzLnBhcnQgPSB0aGlzLnBhcnQgKyAnXFxuJztcclxuICB9XHJcblxyXG4gIC8vIEFwcGVuZCBGb3JtYXR0ZWQgc3RyaW5nXHJcbiAgQXBwZW5kRm9ybWF0KGZvcm1hdDogc3RyaW5nLCBhcmcwOiBhbnkpOiBTdHJpbmdCdWlsZGVyXHJcbiAgQXBwZW5kRm9ybWF0KGZvcm1hdDogc3RyaW5nLCBhcmcwOiBhbnksIGFyZzE6IGFueSk6IFN0cmluZ0J1aWxkZXJcclxuICBBcHBlbmRGb3JtYXQoZm9ybWF0OiBzdHJpbmcsIGFyZzA6IGFueSwgYXJnMTogYW55LCBhcmcyOiBhbnkpOiBTdHJpbmdCdWlsZGVyXHJcbiAgQXBwZW5kRm9ybWF0KGZvcm1hdDogc3RyaW5nLCBhcmcwOiBhbnksIGFyZzE/OiBhbnksIGFyZzI/OiBhbnkpOiBTdHJpbmdCdWlsZGVyIHtcclxuICAgIHRoaXMucGFydCA9IHRoaXMucGFydCArIE5TdHJpbmcuRm9ybWF0KGZvcm1hdCwgYXJnMCwgYXJnMSwgYXJnMik7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8vIENvbnZlcnQgdG8gc3RyaW5nXHJcbiAgVG9TdHJpbmcoKTogc3RyaW5nO1xyXG4gIFRvU3RyaW5nKHN0YXJ0SW5kZXg6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpOiBzdHJpbmc7XHJcbiAgVG9TdHJpbmcoc3RhcnRJbmRleCA/OiBudW1iZXIsIGxlbmd0aCA/OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIHtcclxuICAgICAgaWYgKHN0YXJ0SW5kZXggPCAwIHx8IGxlbmd0aCA8IDAgfHwgKHN0YXJ0SW5kZXggKyBsZW5ndGgpID4gdGhpcy5wYXJ0Lmxlbmd0aClcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBcmd1bWVudCBvdXQgb2YgcmFuZ2VcIik7XHJcblxyXG4gICAgICByZXR1cm4gdGhpcy5wYXJ0LnN1YnN0cihzdGFydEluZGV4LCBsZW5ndGgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMucGFydDtcclxuICB9XHJcblxyXG4gIGdldCBMZW5ndGgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnBhcnQubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgZ2V0X0l0ZW0oaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IHRoaXMucGFydC5sZW5ndGgpXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkluZGV4IG91dCBvZiByYW5nZVwiKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5wYXJ0LmNoYXJBdChpbmRleCk7XHJcbiAgfVxyXG5cclxuICBzZXRfSXRlbShpbmRleDogbnVtYmVyLCB2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IHRoaXMucGFydC5sZW5ndGgpXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkluZGV4IG91dCBvZiByYW5nZVwiKTtcclxuXHJcbiAgICBEZWJ1Zy5Bc3NlcnQodmFsdWUubGVuZ3RoIDw9IDEsIFwiTGVuZ3RoIG9mIHN0cmluZyBjYW5ub3QgYmUgbW9yZSB0aGFuIDEuIE9ubHkgY2hhcmFjdGVyIGlzIGV4cGVjdGVkXCIpO1xyXG4gICAgbGV0IGxlZnRQYXJ0OiBzdHJpbmcgPSB0aGlzLnBhcnQuc3Vic3RyaW5nKDAsIGluZGV4KTtcclxuICAgIGxldCByaWdodFBhcnQ6IHN0cmluZyA9IHRoaXMucGFydC5zdWJzdHJpbmcoaW5kZXggKyAxLCB0aGlzLnBhcnQubGVuZ3RoKTtcclxuICAgIHRoaXMucGFydCA9IGxlZnRQYXJ0ICsgdmFsdWUuY2hhckF0KDApICsgcmlnaHRQYXJ0O1xyXG4gIH1cclxuXHJcbiAgSW5zZXJ0KGluZGV4OiBudW1iZXIsIHZhbHVlOiBzdHJpbmcpOiBTdHJpbmdCdWlsZGVyIHtcclxuICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPiB0aGlzLnBhcnQubGVuZ3RoKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBcmd1bWVudCBvdXQgb2YgcmFuZ2VcIik7XHJcblxyXG4gICAgbGV0IGxlZnRQYXJ0OiBzdHJpbmcgPSB0aGlzLnBhcnQuc3Vic3RyaW5nKDAsIGluZGV4KTtcclxuICAgIGxldCByaWdodFBhcnQ6IHN0cmluZyA9IHRoaXMucGFydC5zdWJzdHJpbmcoaW5kZXgsIHRoaXMucGFydC5sZW5ndGgpO1xyXG4gICAgdGhpcy5wYXJ0ID0gbGVmdFBhcnQgKyB2YWx1ZSArIHJpZ2h0UGFydDtcclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIFJlbW92ZShzdGFydEluZGV4OiBudW1iZXIsIGxlbmd0aDogbnVtYmVyKTogU3RyaW5nQnVpbGRlciB7XHJcbiAgICBpZiAoc3RhcnRJbmRleCA8IDAgfHwgbGVuZ3RoIDwgMCB8fCAoc3RhcnRJbmRleCArIGxlbmd0aCkgPiB0aGlzLnBhcnQubGVuZ3RoKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBcmd1bWVudCBvdXQgb2YgcmFuZ2VcIik7XHJcblxyXG4gICAgbGV0IGxlZnRQYXJ0OiBzdHJpbmcgPSB0aGlzLnBhcnQuc3Vic3RyaW5nKDAsIHN0YXJ0SW5kZXgpO1xyXG4gICAgbGV0IHJpZ2h0UGFydDogc3RyaW5nID0gdGhpcy5wYXJ0LnN1YnN0cmluZyhzdGFydEluZGV4ICsgbGVuZ3RoLCB0aGlzLnBhcnQubGVuZ3RoKTtcclxuICAgIHRoaXMucGFydCA9IGxlZnRQYXJ0ICsgcmlnaHRQYXJ0O1xyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgUmVwbGFjZShvbGRWYWx1ZTogc3RyaW5nLCBuZXdWYWx1ZTogc3RyaW5nKTogU3RyaW5nQnVpbGRlcjtcclxuICBSZXBsYWNlKG9sZFZhbHVlOiBzdHJpbmcsIG5ld1ZhbHVlOiBzdHJpbmcsIHN0YXJ0SW5kZXg6IG51bWJlciwgY291bnQ6IG51bWJlcik6IFN0cmluZ0J1aWxkZXI7XHJcbiAgUmVwbGFjZShvbGRWYWx1ZTogc3RyaW5nLCBuZXdWYWx1ZTogc3RyaW5nLCBzdGFydEluZGV4PzogbnVtYmVyLCBjb3VudD86IG51bWJlcik6IFN0cmluZ0J1aWxkZXIge1xyXG4gICAgaWYgKG9sZFZhbHVlID09PSBudWxsKVxyXG4gICAgICB0aHJvdyAgbmV3IEVycm9yKFwib2xkVmFsdWUgY2Fubm90IGJlIG51bGxcIik7XHJcbiAgICBlbHNlIGlmIChvbGRWYWx1ZS5sZW5ndGggPT09IDApXHJcbiAgICAgIHRocm93ICBuZXcgRXJyb3IoXCJMZW5ndGggb2Ygb2xkVmFsdWUgY2Fubm90IGJlIDBcIik7XHJcblxyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDQpIHtcclxuICAgICAgaWYgKHN0YXJ0SW5kZXggPCAwIHx8IGNvdW50IDwgMCB8fCAoc3RhcnRJbmRleCArIGNvdW50KSA+IHRoaXMucGFydC5sZW5ndGgpXHJcbiAgICAgICAgdGhyb3cgIG5ldyBFcnJvcihcIkFyZ3VtZW50IG91dCBvZiByYW5nZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMilcclxuICAgICAgdGhpcy5wYXJ0ID0gdGhpcy5wYXJ0LnJlcGxhY2UobmV3IFJlZ0V4cChvbGRWYWx1ZSwgJ2cnKSwgbmV3VmFsdWUpO1xyXG4gICAgZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gNCkge1xyXG4gICAgICBsZXQgc3Vic3RyOiBzdHJpbmcgPSB0aGlzLnBhcnQuc3Vic3RyaW5nKHN0YXJ0SW5kZXgsIHN0YXJ0SW5kZXggKyBjb3VudCk7XHJcbiAgICAgIHN1YnN0ciA9IHN1YnN0ci5yZXBsYWNlKG5ldyBSZWdFeHAob2xkVmFsdWUsICdnJyksIG5ld1ZhbHVlKTtcclxuXHJcbiAgICAgIGxldCBsZWZ0UGFydDogc3RyaW5nID0gdGhpcy5wYXJ0LnN1YnN0cmluZygwLCBzdGFydEluZGV4KTtcclxuICAgICAgbGV0IHJpZ2h0UGFydDogc3RyaW5nID0gdGhpcy5wYXJ0LnN1YnN0cmluZyhzdGFydEluZGV4ICsgY291bnQsIHRoaXMucGFydC5sZW5ndGgpO1xyXG4gICAgICB0aGlzLnBhcnQgPSBsZWZ0UGFydCArIHN1YnN0ciArIHJpZ2h0UGFydDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8vIHJldHVybiB0aGUgc3RyaW5nXHJcbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLlRvU3RyaW5nKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RyaW5nQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvU3RyaW5nQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQzlCLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFNbEMsTUFBTSxPQUFPLGFBQWE7SUFDaEIsSUFBSSxHQUFXLEVBQUUsQ0FBQztJQUsxQixZQUFZLGFBQW1CLEVBQUUsTUFBZTtRQUM5QyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3hCLElBQUksYUFBYSxJQUFJLElBQUksSUFBSyxhQUFhLENBQUMsV0FBVyxLQUFLLE1BQU0sRUFBRTthQUluRTtpQkFDSSxJQUFJLGFBQWEsSUFBSSxJQUFJLElBQUssYUFBYSxDQUFDLFdBQVcsS0FBSyxNQUFNLEVBQUU7Z0JBQ3ZFLElBQUksQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBSXRDO1NBQ0Y7SUFDSCxDQUFDO0lBT0QsTUFBTSxDQUFDLFNBQWMsRUFBRSw4QkFBdUMsRUFBRSxTQUFrQjtRQUVoRixJQUFJLFNBQVMsS0FBSyxJQUFJO1lBQ3BCLE9BQU8sSUFBSSxDQUFDO1FBRWQsSUFBSSxTQUFTLENBQUMsV0FBVyxLQUFLLE1BQU0sRUFBRTtZQUNwQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztpQkFDckMsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDL0IsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxrQ0FBa0MsQ0FBQyxDQUFDO2dCQUN6RSxJQUFJLENBQUMs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LEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFFN0QsSUFBSSxRQUFRLEdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQzFELElBQUksU0FBUyxHQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsRixJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsR0FBRyxNQUFNLEdBQUcsU0FBUyxDQUFDO1NBQzNDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBR0QsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGVidWd9IGZyb20gXCIuL0RlYnVnXCI7XHJcbmltcG9ydCB7TlN0cmluZ30gZnJvbSBcIi4vTlN0cmluZ1wiO1xyXG5cclxuLy8gU3RyaW5nQnVpbGRlciBjbGFzcy4gSXRzIEltcGxlbWVudGF0aW9uIGN1cnJlbnRseSB1c2VzIHN0cmluZyBvYmplY3QuIEl0IGNvdWxkIGhhdmUgYmVlbiBzdHJpbmdbXSwgYnV0IGl0IGhhcyBpc3N1ZXMgd2hlbiBpbnNlcnRpbmcgc3RyaW5nLlxyXG4vLyBJdCB3b3VsZCBub3QgaGF2ZSBzZXJ2ZWQgcHVycG9zZSB3aGlsZSBpbnNlcnRpbmcgYSBzdHJpbmcuIE90aGVyICBjb3VsZCBiZSB0byB1c2Ugc3RyaW5nW10gd2l0aCBvbmUgY2hyYXJhY3RlciBwZXIgc3RyaW5nLiBFdmVuIGl0cyB1dGlsaXR5XHJcbi8vIGlzIGRvdWJ0ZnVsIGFzIHdoaWxlIG1hbmlwdWxhdGlvbiwgaXQgd291bGQgYmUgY3JldGluZyBuZXcgb2JqZWN0cyBpbnN0ZWFkIHBvaW50ZXJzLiBTbyBmb3Igbm93IHdlIGhhdmUgdXNlZCBvbmx5IHN0cmluZyBhbmQgc2VlIGlmIHdlIGhhdmVcclxuLy8gYW55IHBlcmZvcm1hbmNlIGlzc3Vlcy5cclxuZXhwb3J0IGNsYXNzIFN0cmluZ0J1aWxkZXIge1xyXG4gIHByaXZhdGUgcGFydDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgLy8gQ3RvclxyXG4gIGNvbnN0cnVjdG9yKGxlbmd0aD86IG51bWJlcilcclxuICBjb25zdHJ1Y3Rvcih2YWx1ZT86IHN0cmluZywgbGVuZ3RoPzogbnVtYmVyKVxyXG4gIGNvbnN0cnVjdG9yKHZhbHVlT3JMZW5ndGg/OiBhbnksIGxlbmd0aD86IG51bWJlcikge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmICh2YWx1ZU9yTGVuZ3RoICE9IG51bGwgICYmIHZhbHVlT3JMZW5ndGguY29uc3RydWN0b3IgPT09IE51bWJlcikge1xyXG4gICAgICAgIC8vIFRPRE86IFZlcnkgbG93IHByaW9yaXR5IHBlcmZvcm1hbmNlIGltcHJvdmVtZW50IC0gSW1wbGVtZW50IHRoaXMuXHJcbiAgICAgICAgLy8gRGVidWcuQXNzZXJ0KGZhbHNlLCBcIlN0cmluZ0J1aWxkZXI6IE5vdEltcGxlbWVudGVkIGNvbnN0cnVjdG9yIHdpdGggaW5pdGlhbCBsZW5ndGgvY2FwYWNpdHlcIik7XHJcbiAgICAgICAgLy8gdGhyb3cgIG5ldyBFcnJvcihcIk5vdEltcGxlbWVudGVkIGNvbnN0cnVjdG9yIHdpdGggaW5pdGlhbCBsZW5ndGgvY2FwYWNpdHlcIik7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodmFsdWVPckxlbmd0aCAhPSBudWxsICAmJiB2YWx1ZU9yTGVuZ3RoLmNvbnN0cnVjdG9yID09PSBTdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnBhcnQgPSB2YWx1ZU9yTGVuZ3RoLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgLy8gVE9ETzogVmVyeSBsb3cgcHJpb3JpdHkgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgLSBJbXBsZW1lbnQgdGhpcy5cclxuICAgICAgICAvLyBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMilcclxuICAgICAgICAvLyAgIERlYnVnLkFzc2VydChmYWxzZSwgXCJOb3RJbXBsZW1lbnRlZCBjb25zdHJ1Y3RvciB3aXRoIGluaXRpYWwgbGVuZ3RoL2NhcGFjaXR5XCIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBBcHBlbmRzIHN0cmluZy9udW1iZXJcclxuICBBcHBlbmQobnVtOiBudW1iZXIsIG51bWJlck9mQ2hhcmFjdGVycz86IG51bWJlcik6IFN0cmluZ0J1aWxkZXI7XHJcbiAgQXBwZW5kKHRleHQ6IHN0cmluZyk6IFN0cmluZ0J1aWxkZXI7XHJcbiAgQXBwZW5kKHRleHQ6IHN0cmluZywgbnVtYmVyT2ZDaGFyYWN0ZXJzOiBudW1iZXIpOiBTdHJpbmdCdWlsZGVyO1xyXG4gIEFwcGVuZCh0ZXh0OiBzdHJpbmcsIHN0YXJ0SW5kZXg6IG51bWJlciwgY2hhckNvdW50OiBudW1iZXIpOiBTdHJpbmdCdWlsZGVyO1xyXG4gIEFwcGVuZCh0ZXh0T3JOdW06IGFueSwgc3RhcnRJbmRleE9yTnVtYmVyT2ZDaGFyYWN0ZXJzPzogbnVtYmVyLCBjaGFyQ291bnQ/OiBudW1iZXIpOiBTdHJpbmdCdWlsZGVyIHtcclxuXHJcbiAgICBpZiAodGV4dE9yTnVtID09PSBudWxsKVxyXG4gICAgICByZXR1cm4gdGhpcztcclxuXHJcbiAgICBpZiAodGV4dE9yTnVtLmNvbnN0cnVjdG9yID09PSBTdHJpbmcpIHtcclxuICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpXHJcbiAgICAgICAgdGhpcy5BcHBlbmRTdHJpbmcodGV4dE9yTnVtLnRvU3RyaW5nKCkpO1xyXG4gICAgICBlbHNlIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7XHJcbiAgICAgICAgRGVidWcuQXNzZXJ0KHRleHRPck51bS5sZW5ndGggPT09IDEsIFwiY2hhcmFjdGVyIGlzIGV4cGVjdGVkIG5vdCBzdHJpbmdcIik7XHJcbiAgICAgICAgdGhpcy5BcHBlbmRTdHJpbmcodGV4dE9yTnVtLmNoYXJBdCgwKS5yZXBlYXQoc3RhcnRJbmRleE9yTnVtYmVyT2ZDaGFyYWN0ZXJzKSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMuQXBwZW5kU3RyaW5nKHRleHRPck51bS50b1N0cmluZygpLCBzdGFydEluZGV4T3JOdW1iZXJPZkNoYXJhY3RlcnMsIGNoYXJDb3VudCk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuQXBwZW5kTnVtYmVyKHRleHRPck51bSwgc3RhcnRJbmRleE9yTnVtYmVyT2ZDaGFyYWN0ZXJzKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8vIEFwcGVuZCBzdHJpbmdcclxuICBwcml2YXRlIEFwcGVuZFN0cmluZyh0ZXh0OiBzdHJpbmcsIHN0YXJ0SW5kZXg6IG51bWJlciA9IDAsIGNoYXJDb3VudDogbnVtYmVyID0gdGV4dC5sZW5ndGgpOiB2b2lkIHtcclxuICAgIHRoaXMucGFydCA9IHRoaXMucGFydCArIHRleHQuc3Vic3RyKHN0YXJ0SW5kZXgsIGNoYXJDb3VudCk7XHJcbiAgfVxyXG5cclxuICAvLyBBcHBlbmQgTnVtYmVyXHJcbiAgcHJpdmF0ZSBBcHBlbmROdW1iZXIobnVtOiBudW1iZXIsIG51bWJlck9mQ2hhcmFjdGVyczogbnVtYmVyID0gMSk6IHZvaWQge1xyXG4gICAgaWYgKG51bWJlck9mQ2hhcmFjdGVycyA8PSAwKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJudW1iZXJPZkNoYXJhY3RlcnMgY2Fubm90IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byB6ZXJvXCIpO1xyXG5cclxuICAgIHRoaXMucGFydCA9IHRoaXMucGFydCArIG51bS50b1N0cmluZygpLnJlcGVhdChudW1iZXJPZkNoYXJhY3RlcnMpO1xyXG4gIH1cclxuXHJcbiAgLy8gQXBwZW5kIExpbmVcclxuICBBcHBlbmRMaW5lKHRleHQ6IHN0cmluZyA9IG51bGwpOiB2b2lkIHtcclxuICAgIGlmICh0ZXh0ICE9PSBudWxsKVxyXG4gICAgICB0aGlzLnBhcnQgPSB0aGlzLnBhcnQgKyB0ZXh0O1xyXG4gICAgdGhpcy5wYXJ0ID0gdGhpcy5wYXJ0ICsgJ1xcbic7XHJcbiAgfVxyXG5cclxuICAvLyBBcHBlbmQgRm9ybWF0dGVkIHN0cmluZ1xyXG4gIEFwcGVuZEZvcm1hdChmb3JtYXQ6IHN0cmluZywgYXJnMDogYW55KTogU3RyaW5nQnVpbGRlclxyXG4gIEFwcGVuZEZvcm1hdChmb3JtYXQ6IHN0cmluZywgYXJnMDogYW55LCBhcmcxOiBhbnkpOiBTdHJpbmdCdWlsZGVyXHJcbiAgQXBwZW5kRm9ybWF0KGZvcm1hdDogc3RyaW5nLCBhcmcwOiBhbnksIGFyZzE6IGFueSwgYXJnMjogYW55KTogU3RyaW5nQnVpbGRlclxyXG4gIEFwcGVuZEZvcm1hdChmb3JtYXQ6IHN0cmluZywgYXJnMDogYW55LCBhcmcxPzogYW55LCBhcmcyPzogYW55KTogU3RyaW5nQnVpbGRlciB7XHJcbiAgICB0aGlzLnBhcnQgPSB0aGlzLnBhcnQgKyBOU3RyaW5nLkZvcm1hdChmb3JtYXQsIGFyZzAsIGFyZzEsIGFyZzIpO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvLyBDb252ZXJ0IHRvIHN0cmluZ1xyXG4gIFRvU3RyaW5nKCk6IHN0cmluZztcclxuICBUb1N0cmluZyhzdGFydEluZGV4OiBudW1iZXIsIGxlbmd0aDogbnVtYmVyKTogc3RyaW5nO1xyXG4gIFRvU3RyaW5nKHN0YXJ0SW5kZXggPzogbnVtYmVyLCBsZW5ndGggPzogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7XHJcbiAgICAgIGlmIChzdGFydEluZGV4IDwgMCB8fCBsZW5ndGggPCAwIHx8IChzdGFydEluZGV4ICsgbGVuZ3RoKSA+IHRoaXMucGFydC5sZW5ndGgpXHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXJndW1lbnQgb3V0IG9mIHJhbmdlXCIpO1xyXG5cclxuICAgICAgcmV0dXJuIHRoaXMucGFydC5zdWJzdHIoc3RhcnRJbmRleCwgbGVuZ3RoKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLnBhcnQ7XHJcbiAgfVxyXG5cclxuICBnZXQgTGVuZ3RoKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJ0Lmxlbmd0aDtcclxuICB9XHJcblxyXG4gIGdldF9JdGVtKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSB0aGlzLnBhcnQubGVuZ3RoKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbmRleCBvdXQgb2YgcmFuZ2VcIik7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucGFydC5jaGFyQXQoaW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgc2V0X0l0ZW0oaW5kZXg6IG51bWJlciwgdmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSB0aGlzLnBhcnQubGVuZ3RoKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbmRleCBvdXQgb2YgcmFuZ2VcIik7XHJcblxyXG4gICAgRGVidWcuQXNzZXJ0KHZhbHVlLmxlbmd0aCA8PSAxLCBcIkxlbmd0aCBvZiBzdHJpbmcgY2Fubm90IGJlIG1vcmUgdGhhbiAxLiBPbmx5IGNoYXJhY3RlciBpcyBleHBlY3RlZFwiKTtcclxuICAgIGxldCBsZWZ0UGFydDogc3RyaW5nID0gdGhpcy5wYXJ0LnN1YnN0cmluZygwLCBpbmRleCk7XHJcbiAgICBsZXQgcmlnaHRQYXJ0OiBzdHJpbmcgPSB0aGlzLnBhcnQuc3Vic3RyaW5nKGluZGV4ICsgMSwgdGhpcy5wYXJ0Lmxlbmd0aCk7XHJcbiAgICB0aGlzLnBhcnQgPSBsZWZ0UGFydCArIHZhbHVlLmNoYXJBdCgwKSArIHJpZ2h0UGFydDtcclxuICB9XHJcblxyXG4gIEluc2VydChpbmRleDogbnVtYmVyLCB2YWx1ZTogc3RyaW5nKTogU3RyaW5nQnVpbGRlciB7XHJcbiAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID4gdGhpcy5wYXJ0Lmxlbmd0aClcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXJndW1lbnQgb3V0IG9mIHJhbmdlXCIpO1xyXG5cclxuICAgIGxldCBsZWZ0UGFydDogc3RyaW5nID0gdGhpcy5wYXJ0LnN1YnN0cmluZygwLCBpbmRleCk7XHJcbiAgICBsZXQgcmlnaHRQYXJ0OiBzdHJpbmcgPSB0aGlzLnBhcnQuc3Vic3RyaW5nKGluZGV4LCB0aGlzLnBhcnQubGVuZ3RoKTtcclxuICAgIHRoaXMucGFydCA9IGxlZnRQYXJ0ICsgdmFsdWUgKyByaWdodFBhcnQ7XHJcblxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICBSZW1vdmUoc3RhcnRJbmRleDogbnVtYmVyLCBsZW5ndGg6IG51bWJlcik6IFN0cmluZ0J1aWxkZXIge1xyXG4gICAgaWYgKHN0YXJ0SW5kZXggPCAwIHx8IGxlbmd0aCA8IDAgfHwgKHN0YXJ0SW5kZXggKyBsZW5ndGgpID4gdGhpcy5wYXJ0Lmxlbmd0aClcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXJndW1lbnQgb3V0IG9mIHJhbmdlXCIpO1xyXG5cclxuICAgIGxldCBsZWZ0UGFydDogc3RyaW5nID0gdGhpcy5wYXJ0LnN1YnN0cmluZygwLCBzdGFydEluZGV4KTtcclxuICAgIGxldCByaWdodFBhcnQ6IHN0cmluZyA9IHRoaXMucGFydC5zdWJzdHJpbmcoc3RhcnRJbmRleCArIGxlbmd0aCwgdGhpcy5wYXJ0Lmxlbmd0aCk7XHJcbiAgICB0aGlzLnBhcnQgPSBsZWZ0UGFydCArIHJpZ2h0UGFydDtcclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIFJlcGxhY2Uob2xkVmFsdWU6IHN0cmluZywgbmV3VmFsdWU6IHN0cmluZyk6IFN0cmluZ0J1aWxkZXI7XHJcbiAgUmVwbGFjZShvbGRWYWx1ZTogc3RyaW5nLCBuZXdWYWx1ZTogc3RyaW5nLCBzdGFydEluZGV4OiBudW1iZXIsIGNvdW50OiBudW1iZXIpOiBTdHJpbmdCdWlsZGVyO1xyXG4gIFJlcGxhY2Uob2xkVmFsdWU6IHN0cmluZywgbmV3VmFsdWU6IHN0cmluZywgc3RhcnRJbmRleD86IG51bWJlciwgY291bnQ/OiBudW1iZXIpOiBTdHJpbmdCdWlsZGVyIHtcclxuICAgIGlmIChvbGRWYWx1ZSA9PT0gbnVsbClcclxuICAgICAgdGhyb3cgIG5ldyBFcnJvcihcIm9sZFZhbHVlIGNhbm5vdCBiZSBudWxsXCIpO1xyXG4gICAgZWxzZSBpZiAob2xkVmFsdWUubGVuZ3RoID09PSAwKVxyXG4gICAgICB0aHJvdyAgbmV3IEVycm9yKFwiTGVuZ3RoIG9mIG9sZFZhbHVlIGNhbm5vdCBiZSAwXCIpO1xyXG5cclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSA0KSB7XHJcbiAgICAgIGlmIChzdGFydEluZGV4IDwgMCB8fCBjb3VudCA8IDAgfHwgKHN0YXJ0SW5kZXggKyBjb3VudCkgPiB0aGlzLnBhcnQubGVuZ3RoKVxyXG4gICAgICAgIHRocm93ICBuZXcgRXJyb3IoXCJBcmd1bWVudCBvdXQgb2YgcmFuZ2VcIik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpXHJcbiAgICAgIHRoaXMucGFydCA9IHRoaXMucGFydC5yZXBsYWNlKG5ldyBSZWdFeHAob2xkVmFsdWUsICdnJyksIG5ld1ZhbHVlKTtcclxuICAgIGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDQpIHtcclxuICAgICAgbGV0IHN1YnN0cjogc3RyaW5nID0gdGhpcy5wYXJ0LnN1YnN0cmluZyhzdGFydEluZGV4LCBzdGFydEluZGV4ICsgY291bnQpO1xyXG4gICAgICBzdWJzdHIgPSBzdWJzdHIucmVwbGFjZShuZXcgUmVnRXhwKG9sZFZhbHVlLCAnZycpLCBuZXdWYWx1ZSk7XHJcblxyXG4gICAgICBsZXQgbGVmdFBhcnQ6IHN0cmluZyA9IHRoaXMucGFydC5zdWJzdHJpbmcoMCwgc3RhcnRJbmRleCk7XHJcbiAgICAgIGxldCByaWdodFBhcnQ6IHN0cmluZyA9IHRoaXMucGFydC5zdWJzdHJpbmcoc3RhcnRJbmRleCArIGNvdW50LCB0aGlzLnBhcnQubGVuZ3RoKTtcclxuICAgICAgdGhpcy5wYXJ0ID0gbGVmdFBhcnQgKyBzdWJzdHIgKyByaWdodFBhcnQ7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvLyByZXR1cm4gdGhlIHN0cmluZ1xyXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5Ub1N0cmluZygpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"magic-xpa-mscorelib.mjs","sources":["../../../../projects/mscorelib/src/Utils.ts","../../../../projects/mscorelib/src/Exception.ts","../../../../projects/mscorelib/src/ApplicationException.ts","../../../../projects/mscorelib/src/ArrayEnumerator.ts","../../../../projects/mscorelib/src/BitArray.ts","../../../../projects/mscorelib/src/Char.ts","../../../../projects/mscorelib/src/CultureInfo.ts","../../../../projects/mscorelib/src/DateTime.ts","../../../../projects/mscorelib/src/Debug.ts","../../../../projects/mscorelib/src/Dictionary.ts","../../../../projects/mscorelib/src/Encoding.ts","../../../../projects/mscorelib/src/HashTable.ts","../../../../projects/mscorelib/src/Int32.ts","../../../../projects/mscorelib/src/Int64.ts","../../../../projects/mscorelib/src/ISO_8859_1_Encoding.ts","../../../../projects/mscorelib/src/List.ts","../../../../projects/mscorelib/src/StringUtils.ts","../../../../projects/mscorelib/src/NChar.ts","../../../../projects/mscorelib/src/NotImplementedException.ts","../../../../projects/mscorelib/src/NNumber.ts","../../../../projects/mscorelib/src/NString.ts","../../../../projects/mscorelib/src/NumberFormatInfo.ts","../../../../projects/mscorelib/src/RefParam.ts","../../../../projects/mscorelib/src/Stack.ts","../../../../projects/mscorelib/src/StackFrame.ts","../../../../projects/mscorelib/src/StackTrace.ts","../../../../projects/mscorelib/src/StringBuilder.ts","../../../../projects/mscorelib/src/Thread.ts","../../../../projects/mscorelib/src/WebException.ts","../../../../projects/mscorelib/src/XmlConvert.ts"],"sourcesContent":["export function isNullOrUndefined(object: any): boolean {\r\n return object == undefined || object == null;\r\n}\r\nexport function isUndefined(object: any): boolean {\r\n return object == undefined;\r\n}\r\n","/// <summary>\r\n/// The base class of all exceptions\r\n/// </summary>\r\n\r\nimport {isNullOrUndefined} from \"./Utils\";\r\n\r\nexport class Exception{\r\n\r\n name: string = \"Exception\";\r\n message: string = \"\";\r\n stack: string = \"\";\r\n\r\n\r\n errorLevel = 1;\r\n /// <summary>\r\n /// constructor\r\n /// </summary>\r\n /// <param name=\"message\" denotes the message of exception></param>\r\n /// <param name=\"name\" denotes the type of exception></param>\r\n constructor(message?: string)\r\n constructor(error: Error)\r\n constructor(messageOrError: string | Error) {\r\n if (!isNullOrUndefined(messageOrError)) {\r\n if (messageOrError instanceof Error) {\r\n this.stack = (<Error>messageOrError).stack;\r\n this.message = (<Error>messageOrError).message;\r\n }\r\n else {\r\n this.message = <string>messageOrError;\r\n this.stack = new Error().stack;\r\n }\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// get the message of exception\r\n /// </summary>\r\n get Message() {\r\n return this.message;\r\n }\r\n\r\n /// <summary>\r\n /// get the stack trace of exception\r\n /// </summary>\r\n get StackTrace() {\r\n\r\n let stackTrace = this.stack || '';\r\n let stackLines = stackTrace.split(\"\\n\").map(function (line) { return line.trim(); });\r\n\r\n // On some browsers (e.g. Chrome), the statck includes a title as \"Error\", so remove it.\r\n stackTrace = stackLines.splice(stackLines[0] === 'Error' ? this.errorLevel + 1 : this.errorLevel).join(\"\\n\");\r\n\r\n return \"\\n\" + stackTrace;\r\n }\r\n\r\n /// <summary>\r\n /// get the type of exception\r\n /// </summary>\r\n public GetType(): string {\r\n return this.name;\r\n }\r\n}\r\n\r\n\r\n","import {Exception} from \"./Exception\";\r\nimport {isUndefined} from \"./Utils\";\r\n\r\nexport class ApplicationException extends Exception {\r\n\r\n InnerException: Exception = null;\r\n\r\n constructor(message: string = \"\", innerException?: Exception) {\r\n super(message);\r\n this.name = 'ApplicationException';\r\n this.InnerException = (isUndefined(innerException) ? null : innerException);\r\n this.errorLevel = 2;\r\n }\r\n}\r\n","\r\nexport interface IEnumerable<T> {\r\n GetEnumerator(): Array_Enumerator<T>;\r\n}\r\n\r\nexport class Array_Enumerator<T> {\r\n private array: T[];\r\n private index: number = -1;\r\n\r\n constructor(array: T[]) {\r\n this.array = array;\r\n }\r\n\r\n MoveNext(): boolean {\r\n this.index++;\r\n return this.index < this.array.length;\r\n }\r\n\r\n get Current(): T {\r\n return this.array[this.index];\r\n }\r\n\r\n Dispose(): void {\r\n }\r\n}\r\n","/// <summary>\r\n/// Manages a compact array of bit values,\r\n// which are represented as Booleans, where true indicates that the bit is on (1) and false indicates the bit is off (0).\r\n/// </summary>\r\nexport class BitArray {\r\n\r\n private array: Array<boolean> = null; // array of boolean values\r\n\r\n /// <summary>\r\n /// returns the length of array\r\n /// </summary>\r\n /// <returns></returns>\r\n public get Length() {\r\n return this.array.length;\r\n }\r\n\r\n constructor(length: number) {\r\n this.array = new Array(length).fill(false);\r\n }\r\n\r\n /// <summary>\r\n /// get the value of flag at specified index\r\n /// </summary>\r\n /// <returns></returns>\r\n public Get(index: number): boolean {\r\n return this.array[index];\r\n }\r\n\r\n /// <summary>\r\n /// set the value of flag at specified index\r\n /// </summary>\r\n /// <returns></returns>\r\n public Set(index: number, value: boolean) {\r\n this.array[index] = value;\r\n }\r\n\r\n\r\n}\r\n","export class Char {\r\n static MinValue: string = '\\0';\r\n static MaxValue: string = String.fromCharCode(0xFFFF);\r\n}\r\n","export class CultureInfo {\r\n static InvariantCulture: CultureInfo = new CultureInfo();\r\n}\r\n","import moment from 'moment'\r\n\r\nexport enum DateTimeKind {\r\n Local,\r\n Utc\r\n}\r\n\r\n// @dynamic\r\nexport class DateTime {\r\n private dt: Date = null;\r\n private kind: DateTimeKind = null;\r\n\r\n // the number of .net ticks at the unix epoch\r\n private readonly epochTicks = 621355968000000000;\r\n\r\n // there are 10000 .net ticks per millisecond\r\n private readonly ticksPerMillisecond = 10000;\r\n\r\n get Ticks(): number {\r\n // https://stackoverflow.com/questions/7966559/how-to-convert-javascript-date-object-to-ticks\r\n // TODO - check if we need this or to use Misc.getSystemMilliseconds()\r\n return ((this.dt.getTime() * this.ticksPerMillisecond) + this.epochTicks) - (this.dt.getTimezoneOffset() * 600000000);\r\n }\r\n\r\n get Year(): number {\r\n return this.kind === DateTimeKind.Utc ? this.dt.getUTCFullYear() : this.dt.getFullYear();\r\n }\r\n\r\n get Month(): number {\r\n return this.kind === DateTimeKind.Utc ? this.dt.getUTCMonth() + 1 : this.dt.getMonth() + 1;\r\n }\r\n\r\n get Day(): number {\r\n return this.kind === DateTimeKind.Utc ? this.dt.getUTCDate() : this.dt.getDate();\r\n }\r\n\r\n get Hour(): number {\r\n return this.kind === DateTimeKind.Utc ? this.dt.getUTCHours() : this.dt.getHours();\r\n }\r\n\r\n get Minute(): number {\r\n return this.kind === DateTimeKind.Utc ? this.dt.getUTCMinutes() : this.dt.getMinutes();\r\n }\r\n\r\n get Second(): number {\r\n return this.kind === DateTimeKind.Utc ? this.dt.getUTCSeconds() : this.dt.getSeconds();\r\n }\r\n\r\n get Millisecond(): number {\r\n return this.kind === DateTimeKind.Utc ? this.dt.getUTCMilliseconds() : this.dt.getMilliseconds();\r\n }\r\n\r\n\r\n constructor(date: Date);\r\n constructor(year: number, month: number, day: number);\r\n constructor(year: number, month: number, day: number, hour : number, minute : number, second: number);\r\n constructor(yearOrDate: any, month?: number, day?: number, hour?: number, minute?: number, second?: number) {\r\n if (arguments.length === 1) {\r\n this.dt = <Date>yearOrDate;\r\n }\r\n if (arguments.length === 3) {\r\n this.dt = new Date(<number>yearOrDate, month - 1, day);\r\n }\r\n if (arguments.length === 6) {\r\n this.dt = new Date(<number>yearOrDate, month - 1, day, hour, minute, second);\r\n }\r\n this.kind = DateTimeKind.Local;\r\n }\r\n\r\n\r\n\r\n\r\n Format(formatString: string): string {\r\n return moment(this.dt).format(formatString);\r\n }\r\n\r\n static get UtcNow(): DateTime {\r\n let d = new DateTime(new Date());\r\n d.kind = DateTimeKind.Utc;\r\n return d;\r\n }\r\n\r\n static get Now(): DateTime {\r\n let d = new DateTime(new Date());\r\n d.kind = DateTimeKind.Local;\r\n return d;\r\n }\r\n\r\n static GetTotalSecondsFromMidnight(utcTime: boolean, date: Date): number {\r\n let hh = utcTime ? date.getUTCHours() : date.getHours();\r\n let mm = utcTime ? date.getUTCMinutes() : date.getMinutes();\r\n let ss = utcTime ? date.getUTCSeconds() : date.getSeconds();\r\n\r\n return hh * 60 * 60 + mm * 60 + ss;\r\n }\r\n\r\n static GetTotalMilliSecondsFromMidnight(utcTime: boolean, date: Date): number {\r\n let hh = utcTime ? date.getUTCHours() : date.getHours();\r\n let mm = utcTime ? date.getUTCMinutes() : date.getMinutes();\r\n let ss = utcTime ? date.getUTCSeconds() : date.getSeconds();\r\n let ms = utcTime ? date.getUTCSeconds() : date.getMilliseconds();\r\n return (hh * 60 * 60 + mm * 60 + ss) * 1000 + ms;\r\n }\r\n}\r\n\r\n\r\n","export class Debug {\r\n static WriteLine(text: string): void {\r\n console.log(text);\r\n }\r\n\r\n static Assert(assertCondtion: boolean, message?: string): void {\r\n if (!assertCondtion)\r\n alert(message);\r\n }\r\n}\r\n","import {RefParam} from \"./RefParam\";\r\nimport {Exception} from \"./Exception\";\r\n\r\nexport class Dictionary<V> {\r\n private values: Array<V> = new Array();\r\n\r\n get_Item(key: string): V {\r\n if (this.values.hasOwnProperty(key))\r\n return this.values[key];\r\n else\r\n return null;\r\n }\r\n\r\n set_Item(key: string, value: V) {\r\n this.values[key] = value;\r\n }\r\n\r\n Add(key: string, value: V) {\r\n if (this.values.hasOwnProperty(key))\r\n throw new Exception(\"An item with the same key has already been added\");\r\n else\r\n this.values[key] = value;\r\n }\r\n\r\n ContainsKey(key: string): boolean {\r\n return this.values.hasOwnProperty(key);\r\n }\r\n\r\n TryGetValue(key: string, pvalue: RefParam<V>): boolean {\r\n if (this.values.hasOwnProperty(key)) {\r\n pvalue.value = this.values[key];\r\n return true;\r\n }\r\n else {\r\n pvalue.value = null;\r\n return false;\r\n }\r\n }\r\n\r\n Remove(key: string): void {\r\n delete this.values[key];\r\n }\r\n\r\n get Keys(): string[] {\r\n return Object.keys(this.values);\r\n }\r\n}\r\n","import {TextDecoder, TextEncoder} from \"text-encoding\";\r\n\r\nexport class Encoding {\r\n static readonly ASCII: Encoding = new Encoding(\"ascii\");\r\n static readonly UTF8: Encoding = new Encoding(\"utf-8\");\r\n static readonly Unicode: Encoding = new Encoding(\"utf-16le\");\r\n\r\n static readonly CodePageToEncodingMap = Encoding.PopulateCodePageToEncodingMap();\r\n\r\n private readonly textEncoder: TextEncoder = null;\r\n private readonly textDecoder: TextDecoder = null;\r\n constructor(private label: string) {\r\n this.textEncoder = new TextEncoder(label, {NONSTANDARD_allowLegacyEncoding: true});\r\n this.textDecoder = new TextDecoder(label, {NONSTANDARD_allowLegacyEncoding: true});\r\n }\r\n\r\n GetBytes(str: string): Uint8Array {\r\n\r\n if (str === null)\r\n throw new Error(\"Argument is null\");\r\n\r\n let bytes: Uint8Array = null;\r\n\r\n try {\r\n bytes = this.textEncoder.encode(str);\r\n }\r\n catch (ex) {\r\n // In C#, if any character is not within the range of specified charset, it is replaced by '?'.\r\n // TextEncoder.encode() throws an error in such a case.\r\n // We can modify the implementation of TextEncoder.encode() to put '?' instead of throwing error.\r\n // But, it can be problematic if we change the library version.\r\n // So, we will catch this error and handle the encoding ourselves.\r\n bytes = new Uint8Array(str.length * 3);\r\n let bytesCount: number = 0;\r\n let tmpBytes: Uint8Array;\r\n\r\n for (let i = 0; i < str.length; i++)\r\n {\r\n try {\r\n tmpBytes = this.textEncoder.encode(str[i]);\r\n bytes.set(tmpBytes, bytesCount);\r\n bytesCount += tmpBytes.length;\r\n }\r\n catch (ex) {\r\n bytes[bytesCount++] = \"?\".charCodeAt(0);\r\n }\r\n }\r\n\r\n bytes = bytes.subarray(0, 0 + bytesCount);\r\n }\r\n\r\n return bytes;\r\n }\r\n\r\n GetByteCount(str: string): number {\r\n // TODO: this is not the best way.\r\n return this.GetBytes(str).length;\r\n }\r\n\r\n GetString(bytes: Uint8Array, index: number, count: number): string {\r\n let str: string = null;\r\n\r\n if (bytes === null)\r\n throw new Error(\"Argument is null\");\r\n\r\n if (index < 0 || count < 0 || (index + count) > bytes.length)\r\n throw new Error(\"Argument out of range\");\r\n\r\n bytes = bytes.subarray(index, index + count);\r\n\r\n try {\r\n str = this.textDecoder.decode(bytes);\r\n }\r\n catch (ex) {\r\n }\r\n\r\n return str;\r\n }\r\n\r\n static GetEncoding(codepage: number): Encoding {\r\n let label: string = Encoding.CodePageToEncodingMap[codepage];\r\n\r\n if (label == null)\r\n throw new Error(\"Invalid codepage.\");\r\n\r\n return new Encoding(label);\r\n }\r\n private static PopulateCodePageToEncodingMap(): any {\r\n\r\n let hashTable = new Object;\r\n\r\n // These map is similar to enc_map_table of exp_xml.cpp\r\n hashTable[20106] = \"DIN_66003\"; // IA5 (German)\r\n hashTable[20107] = \"SEN_850200_B\"; // IA5 (Swedish)\r\n hashTable[50932] = \"_autodetect\"; // Japanese (Auto Select)\r\n hashTable[20108] = \"NS_4551-1\"; // IA5 (Norwegian)\r\n hashTable[50949] = \"_autodetect_kr\"; // Korean (Auto Select)\r\n hashTable[950] = \"big5\"; // Chinese Traditional (Big5)\r\n hashTable[50221] = \"csISO2022JP\"; // Japanese (JIS-Allow 1 byte Kana)\r\n hashTable[51949] = \"euc-kr\"; // Korean (EUC)\r\n hashTable[936] = \"gb2312\"; // Chinese Simplified (GB2312)\r\n hashTable[52936] = \"hz-gb-2312\"; // Chinese Simplified (HZ)\r\n hashTable[852] = \"ibm852\"; // Central European (DOS)\r\n hashTable[866] = \"ibm866\"; // Cyrillic Alphabet (DOS)\r\n hashTable[20105] = \"irv\"; // IA5 (IRV)\r\n hashTable[50220] = \"iso-2022-jp\"; // Japanese (JIS)\r\n hashTable[50222] = \"iso-2022-jp\"; // Japanese (JIS-Allow 1 byte Kana)\r\n hashTable[50225] = \"iso-2022-kr\"; // Korean (ISO)\r\n hashTable[28591] = \"iso-8859-1\"; // Western Alphabet (ISO)\r\n hashTable[28592] = \"iso-8859-2\"; // Central European Alphabet (ISO)\r\n hashTable[28593] = \"iso-8859-3\"; // Latin 3 Alphabet (ISO)\r\n hashTable[28594] = \"iso-8859-4\"; // Baltic Alphabet (ISO)\r\n hashTable[28595] = \"iso-8859-5\"; // Cyrillic Alphabet (ISO)\r\n hashTable[28596] = \"iso-8859-6\"; // Arabic Alphabet (ISO)\r\n hashTable[28597] = \"iso-8859-7\"; // Greek Alphabet (ISO)\r\n hashTable[28598] = \"iso-8859-8\"; // Hebrew Alphabet (ISO)\r\n hashTable[20866] = \"koi8-r\"; // Cyrillic Alphabet (KOI8-R)\r\n hashTable[949] = \"ks_c_5601\"; // Korean\r\n hashTable[932] = \"shift-jis\"; // Japanese (Shift-JIS)\r\n hashTable[1200] = \"unicode\"; // Universal Alphabet\r\n hashTable[1201] = \"unicodeFEFF\"; // Universal Alphabet (Big-Endian)\r\n hashTable[65000] = \"utf-7\"; // Universal Alphabet (UTF-7)\r\n hashTable[65001] = \"utf-8\"; // Universal Alphabet (UTF-8)\r\n hashTable[1250] = \"windows-1250\"; // Central European Alphabet (Windows)\r\n hashTable[1251] = \"windows-1251\"; // Cyrillic Alphabet (Windows)\r\n hashTable[1252] = \"windows-1252\"; // Western Alphabet (Windows)\r\n hashTable[1253] = \"windows-1253\"; // Greek Alphabet (Windows)\r\n hashTable[1254] = \"windows-1254\"; // Turkish Alphabet\r\n hashTable[1255] = \"windows-1255\"; // Hebrew Alphabet (Windows)\r\n hashTable[1256] = \"windows-1256\"; // Arabic Alphabet (Windows)\r\n hashTable[1257] = \"windows-1257\"; // Baltic Alphabet (Windows)\r\n hashTable[1258] = \"windows-1258\"; // Vietnamese Alphabet (Windows)\r\n hashTable[874] = \"windows-874\"; // Thai (Windows)\r\n hashTable[20127] = \"US-ASCII\"; // us-ascii\r\n hashTable[51932] = \"x-euc\"; // Japanese (EUC)\r\n\r\n return hashTable;\r\n }\r\n\r\n // return the name of encoding used \r\n public toString(): string {\r\n return this.label;\r\n }\r\n}\r\n","// Reference: https://github.com/rkostrzewski/hashtable-ts/blob/master/src/hashtable.ts\r\n\r\nimport {Array_Enumerator} from \"./ArrayEnumerator\";\r\nimport {Exception} from \"./Exception\";\r\nimport {Encoding} from \"./Encoding\";\r\n\r\nexport class HashUtils {\r\n // Pay attention that in server there is the same function and it must\r\n // return the same hash value.\r\n static GetHashCode(str: string): number {\r\n let bytes: Uint8Array = null;\r\n\r\n bytes = Encoding.UTF8.GetBytes(str);\r\n\r\n return HashUtils.getHashCode(bytes);\r\n }\r\n\r\n private static getHashCode(byteArray: Uint8Array) {\r\n let hashval: number;\r\n\r\n let hash1: number = 5381;\r\n let hash2: number = hash1;\r\n let c: number;\r\n\r\n for (let i: number = 0; i < byteArray.length; i += 2) {\r\n c = byteArray[i];\r\n hash1 = ((hash1 << 5) + hash1) ^ c;\r\n if ((i + 1) === byteArray.length)\r\n break;\r\n c = byteArray[i + 1];\r\n hash2 = ((hash2 << 5) + hash2) ^ c;\r\n hash1 = hash1 & 0xffff;\r\n hash2 = hash2 & 0xffff;\r\n }\r\n\r\n let hash3: number = (hash2 * 13577);\r\n hashval = (hash1 + hash3);\r\n return (hashval);\r\n }\r\n}\r\n\r\nexport interface IHashCode {\r\n GetHashCode(): number;\r\n}\r\n\r\ntype BucketElement<TKey, TValue> = { key: TKey, value: TValue };\r\ntype Bucket<TKey, TValue> = [BucketElement<TKey, TValue>];\r\n\r\nconst HashTableLoadFactor = 0.75;\r\n\r\n// Hashtable implementation for key TKey and Value TValue\r\nexport class Hashtable<TKey extends (IHashCode | string | number), TValue> {\r\n\r\n private _buckets: Bucket<TKey, TValue>[] = []; // total no. of buckets\r\n private _elementsCount = 0; // total elements\r\n private _bucketCount: number = 0;\r\n private _loadFactor: number = 0;\r\n\r\n constructor(bucketCount: number = 8, loadFactor: number = HashTableLoadFactor) {\r\n this._bucketCount = bucketCount;\r\n this._loadFactor = loadFactor;\r\n\r\n if (this._bucketCount % 2 !== 0) {\r\n throw new Exception('Bucket count must be a positive number and be multiple of 2.');\r\n }\r\n }\r\n\r\n // Generic Hash funtion\r\n private HashFunction(key): number {\r\n if (typeof key.GetHashCode === 'function') {\r\n return key.GetHashCode();\r\n } else if (key.constructor === String) {\r\n return HashUtils.GetHashCode(key.toString());\r\n } else if (key.constructor === Number) {\r\n return +key;\r\n }\r\n return 0;\r\n }\r\n\r\n // returns elementCount\r\n get Count() {\r\n return this._elementsCount;\r\n }\r\n\r\n // returns ValueCollection (Array Enumerator)\r\n get Values(): Array_Enumerator<TValue> {\r\n let array: Array<TValue> = [];\r\n this._buckets.forEach(b => b.forEach(item => {\r\n array.push(item.value);\r\n }));\r\n return new Array_Enumerator(array);\r\n }\r\n\r\n // returns KeyCollection (Array Enumerator)\r\n get Keys(): Array_Enumerator<TKey> {\r\n let array: Array<TKey> = [];\r\n this._buckets.forEach(b => b.forEach(item => {\r\n array.push(item.key);\r\n }));\r\n return new Array_Enumerator(array);\r\n }\r\n\r\n // adds item to Hashtable\r\n Add(key: TKey, value: TValue): void {\r\n this.Insert(key, value, true);\r\n }\r\n\r\n // sets item in Hashtable\r\n set_Item(key: TKey, value: TValue) {\r\n this.Insert(key, value, false);\r\n }\r\n\r\n // Insert element in Hashtable\r\n private Insert(key: TKey, value: TValue, add: boolean): void {\r\n let bucketIndex = this.GetBucketIndex(key);\r\n\r\n if (typeof this._buckets[bucketIndex] === \"undefined\") {\r\n this._buckets[bucketIndex] = <Bucket<TKey, TValue>><unknown>[];\r\n }\r\n\r\n if (this._buckets[bucketIndex].find(x => x.key === key)) {\r\n if (add) {\r\n throw new Exception('Item with provided key already exists!');\r\n } else {\r\n this.Remove(key);\r\n return;\r\n }\r\n }\r\n\r\n this._buckets[bucketIndex].push({key: key, value: value});\r\n\r\n this._elementsCount++;\r\n if (this._elementsCount > this._bucketCount * this._loadFactor) {\r\n this.Resize(this._bucketCount * 2);\r\n }\r\n }\r\n\r\n// Gets value for key TKey\r\n get_Item(key: TKey): TValue {\r\n let bucketIndex = this.GetBucketIndex(key);\r\n let bucket = this._buckets[bucketIndex];\r\n if (!bucket) {\r\n return null;\r\n }\r\n\r\n let item = bucket.find(x => x.key === key);\r\n if (item) {\r\n return item.value;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n // Returns if key TKey is present in Hashtable\r\n ContainsKey(key: TKey): boolean {\r\n let bucketIndex = this.GetBucketIndex(key);\r\n let bucket = this._buckets[bucketIndex];\r\n if (!bucket) {\r\n return false;\r\n }\r\n\r\n let itemIndex = bucket.findIndex(x => x.key === key);\r\n return (itemIndex > -1);\r\n }\r\n\r\n // Removes item with key TKey from Hashtable\r\n Remove(key: TKey) {\r\n let bucketIndex = this.GetBucketIndex(key);\r\n let bucket = this._buckets[bucketIndex];\r\n if (!bucket) {\r\n return;\r\n }\r\n\r\n let itemIndex = bucket.findIndex(x => x.key === key);\r\n if (itemIndex > -1) {\r\n bucket.splice(itemIndex, 1);\r\n this._elementsCount--;\r\n if (this._elementsCount <= this._bucketCount * (1 - this._loadFactor)) {\r\n this.Resize(this._bucketCount / 2);\r\n }\r\n }\r\n }\r\n\r\n // Resize bucket (Hashtable)\r\n private Resize(newBucketCount: number) {\r\n let _oldBuckets = this._buckets;\r\n this._elementsCount = 0;\r\n this._buckets = [];\r\n this._bucketCount = newBucketCount;\r\n\r\n _oldBuckets.forEach(b => b.forEach(item => this.Add(item.key, item.value)));\r\n }\r\n\r\n// returns bucketIndex for key\r\n private GetBucketIndex(key: TKey) {\r\n let hash = this.HashFunction(key);\r\n if (hash % 1 !== 0) {\r\n throw new Exception('Key\\'s hash must be an integer!');\r\n }\r\n\r\n let index = Math.abs(hash) % this._bucketCount;\r\n\r\n if (index < 0 || index >= this._bucketCount) {\r\n throw new Exception('Index exceeds bucket boundaries');\r\n }\r\n\r\n return index;\r\n }\r\n\r\n// Clears Hashtable\r\n Clear(): void {\r\n this._elementsCount = 0;\r\n this._buckets = [];\r\n }\r\n}\r\n","export class Int32 {\r\n static MinValue: number = -2147483648;\r\n static MaxValue: number = 2147483647;\r\n}\r\n","export class Int64 {\r\n static MinValue: number = -9223372036854775808;\r\n}\r\n","import {Encoding} from \"./Encoding\";\r\n\r\nexport class ISO_8859_1_Encoding extends Encoding {\r\n\r\n static readonly ISO_8859_1: ISO_8859_1_Encoding = new ISO_8859_1_Encoding(\"iso_8859-1\");\r\n constructor(label: string) {\r\n super(label);\r\n }\r\n\r\n GetBytes(str: string): Uint8Array {\r\n\r\n if (str === null)\r\n throw new Error(\"Argument is null\");\r\n\r\n let bytes: Uint8Array = null;\r\n\r\n bytes = new Uint8Array(str.length * 3);\r\n let bytesCount: number = 0;\r\n for (let i = 0; i < str.length; i++)\r\n {\r\n bytes[bytesCount++] = str[i].charCodeAt(0);\r\n }\r\n\r\n bytes = bytes.subarray(0, 0 + bytesCount);\r\n return bytes;\r\n }\r\n\r\n GetString(bytes: Uint8Array, index: number, count: number): string {\r\n let str: string = null;\r\n\r\n if (bytes === null)\r\n throw new Error(\"Argument is null\");\r\n\r\n if (index < 0 || count < 0 || (index + count) > bytes.length)\r\n throw new Error(\"Argument out of range\");\r\n\r\n bytes = bytes.subarray(index, index + count);\r\n\r\n try {\r\n\r\n str = '';\r\n for (let i = 0; i < bytes.length; i++)\r\n {\r\n str += String.fromCharCode(bytes[i]);\r\n };\r\n }\r\n catch (ex) {\r\n }\r\n\r\n return str;\r\n }\r\n}\r\n","import {Array_Enumerator} from \"./ArrayEnumerator\";\r\nimport {isUndefined} from \"./Utils\";\r\n\r\nexport class List<T> extends Array<T> {\r\n\r\n constructor(arrayEnumerator?: Array_Enumerator<T>) {\r\n super();\r\n Object.setPrototypeOf(this, List.prototype);\r\n\r\n if (arguments.length === 1 && arrayEnumerator.constructor === Array_Enumerator) {\r\n this.AddRange(arrayEnumerator);\r\n }\r\n }\r\n\r\n AddRange(arrayEnumerator: Array_Enumerator<T>)\r\n AddRange(array: Array<T>)\r\n AddRange(arrayEnumeratorOrArray: any) {\r\n if (arrayEnumeratorOrArray.constructor === Array) {\r\n arrayEnumeratorOrArray.forEach((item: T) => {\r\n this.push(item);\r\n });\r\n }\r\n else {\r\n let e = arrayEnumeratorOrArray;\r\n while (e.MoveNext()) {\r\n this.push(e.Current);\r\n }\r\n }\r\n }\r\n\r\n get_Item(index: number): T {\r\n if (isUndefined(this[index]))\r\n this[index] = null;\r\n return this[index];\r\n }\r\n\r\n set_Item(index: number, value: T): void {\r\n if (index >= 0 && index < this.length)\r\n this[index] = value;\r\n else\r\n throw new Error(\"index out of bounds\");\r\n }\r\n\r\n GetEnumerator(): Array_Enumerator<T> {\r\n return new Array_Enumerator<T>(this);\r\n }\r\n\r\n Remove(object: T): void {\r\n let index: number = this.indexOf(object);\r\n\r\n if (index > -1)\r\n this.RemoveAt(index);\r\n }\r\n\r\n RemoveAt(index: number): void {\r\n this.RemoveRange(index, 1);\r\n }\r\n\r\n RemoveRange(index: number, count: number): void {\r\n this.splice(index, count);\r\n }\r\n\r\n Insert(index: number, item: T): void {\r\n if (index >= 0 && index < this.length)\r\n this.splice(index, 0, item);\r\n else if (index === this.length) // inserting at end means append\r\n this.push(item);\r\n else\r\n throw new Error(\"index out of bounds\");\r\n }\r\n\r\n InsertRange(items: T[]): void {\r\n let idx: number = 0;\r\n while (idx < items.length) {\r\n this.Insert(idx, items[idx]);\r\n idx++;\r\n }\r\n }\r\n\r\n Clear(): void {\r\n this.splice(0, this.length);\r\n }\r\n\r\n ToArray(): T[] {\r\n return this.slice(0);\r\n }\r\n\r\n Contains(object: T): boolean {\r\n return this.indexOf(object) > -1;\r\n }\r\n\r\n find(predicate: (value: T, index: number, obj: T[]) => boolean): T {\r\n let foundItem = super.find(predicate);\r\n if (isUndefined(foundItem))\r\n foundItem = null;\r\n\r\n return foundItem;\r\n }\r\n\r\n /// <summary>\r\n /// add null cells up to 'size' cells.\r\n /// </summary>\r\n /// <param name=\"size\"></param>\r\n SetSize(size: number): void {\r\n if (this.length > size) {\r\n this.RemoveRange(size, this.length - size);\r\n }\r\n else\r\n this.length = size;\r\n }\r\n}\r\n","export const $EOF = 0;\r\nexport const $TAB = 9;\r\nexport const $LF = 10;\r\nexport const $VTAB = 11;\r\nexport const $FF = 12;\r\nexport const $CR = 13;\r\nexport const $SPACE = 32;\r\nexport const $BANG = 33;\r\nexport const $DQ = 34;\r\nexport const $HASH = 35;\r\nexport const $$ = 36;\r\nexport const $PERCENT = 37;\r\nexport const $AMPERSAND = 38;\r\nexport const $SQ = 39;\r\nexport const $LPAREN = 40;\r\nexport const $RPAREN = 41;\r\nexport const $STAR = 42;\r\nexport const $PLUS = 43;\r\nexport const $COMMA = 44;\r\nexport const $MINUS = 45;\r\nexport const $PERIOD = 46;\r\nexport const $SLASH = 47;\r\nexport const $COLON = 58;\r\nexport const $SEMICOLON = 59;\r\nexport const $LT = 60;\r\nexport const $EQ = 61;\r\nexport const $GT = 62;\r\nexport const $QUESTION = 63;\r\n\r\nexport const $0 = 48;\r\nexport const $9 = 57;\r\n\r\nexport const $A = 65;\r\nexport const $E = 69;\r\nexport const $F = 70;\r\nexport const $X = 88;\r\nexport const $Z = 90;\r\n\r\nexport const $LBRACKET = 91;\r\nexport const $BACKSLASH = 92;\r\nexport const $RBRACKET = 93;\r\nexport const $CARET = 94;\r\nexport const $_ = 95;\r\n\r\nexport const $a = 97;\r\nexport const $e = 101;\r\nexport const $f = 102;\r\nexport const $n = 110;\r\nexport const $r = 114;\r\nexport const $t = 116;\r\nexport const $u = 117;\r\nexport const $v = 118;\r\nexport const $x = 120;\r\nexport const $z = 122;\r\n\r\nexport const $LBRACE = 123;\r\nexport const $BAR = 124;\r\nexport const $RBRACE = 125;\r\nexport const $NBSP = 160;\r\n\r\nexport const $PIPE = 124;\r\nexport const $TILDA = 126;\r\nexport const $AT = 64;\r\n\r\nexport const $BT = 96;\r\n\r\nexport function isWhitespace(code: number): boolean {\r\n return (code >= $TAB && code <= $SPACE) || code === $NBSP;\r\n}\r\n\r\nexport function isDigit(code: number): boolean {\r\n return $0 <= code && code <= $9;\r\n}\r\n\r\nexport function isAsciiLetter(code: number): boolean {\r\n return (code >= $a && code <= $z) || (code >= $A && code <= $Z);\r\n}\r\n\r\nexport function isAsciiHexDigit(code: number): boolean {\r\n return (code >= $a && code <= $f) || (code >= $A && code <= $F) || isDigit(code);\r\n}\r\n\r\nexport function isLowerCase(str: string): boolean {\r\n return str === str.toLowerCase();\r\n}\r\nexport function isUpperCase(str: string): boolean {\r\n return str === str.toUpperCase();\r\n}\r\n","\r\n\r\nimport {isAsciiLetter, isDigit, isLowerCase, isUpperCase, isWhitespace} from \"./StringUtils\";\r\n\r\nexport class NChar {\r\n static IsWhiteSpace(str: string): boolean {\r\n let ch = str.charCodeAt(0);\r\n return isWhitespace(ch);\r\n }\r\n\r\n static IsLetterOrDigit(str: string): boolean {\r\n let ch = str.charCodeAt(0);\r\n return isDigit(ch) || isAsciiLetter(ch);\r\n }\r\n\r\n static IsDigit(str: string): boolean {\r\n let ch = str.charCodeAt(0);\r\n return isDigit(ch);\r\n }\r\n\r\n static IsLetter(ltr: string): boolean {\r\n return isAsciiLetter(ltr.charCodeAt(0));\r\n }\r\n\r\n static IsLower(ch: string): boolean {\r\n return isLowerCase(ch);\r\n }\r\n\r\n static IsUpper(ch: string): boolean {\r\n return isUpperCase(ch)\r\n }\r\n}\r\n","import {Exception} from \"./Exception\";\r\n\r\nexport class NotImplementedException extends Exception {\r\n constructor(message: string = \"Not implemented\") {\r\n super(message);\r\n }\r\n}\r\n","import {RefParam} from \"./RefParam\";\r\nimport {NotImplementedException} from \"./NotImplementedException\";\r\n\r\nexport enum NumberStyles {\r\n HexNumber\r\n}\r\n\r\nexport class NNumber {\r\n\r\n /// <summary>\r\n /// convert a string to number\r\n /// for blank string , it will return 0\r\n /// for incorrect format it will return NaN\r\n /// <summary>\r\n static Parse(text: string, style?: NumberStyles): number {\r\n if (arguments.length === 2) {\r\n if (style === NumberStyles.HexNumber)\r\n return parseInt(text, 16);\r\n else\r\n throw new NotImplementedException();\r\n }\r\n return +text; // use unary + operator to convert string to number.\r\n }\r\n\r\n\r\n /// <summary>\r\n /// convert a string to number\r\n /// return true if string is correctly parsed i.e pvalue.value is number\r\n /// for incorrect format it will return false\r\n /// <summary>\r\n static TryParse(str: string, pvalue: RefParam<number>): boolean {\r\n pvalue.value = +str;\r\n return !isNaN(pvalue.value);\r\n }\r\n\r\n /// <summary>\r\n /// convert a number to string with specified format\r\n /// <summary>\r\n static ToString(num: number, format: string): string {\r\n if (format === 'X2') {\r\n let res: string = num.toString(16);\r\n return res.length === 1 ? '0' + res : res;\r\n }\r\n throw new NotImplementedException();\r\n }\r\n}\r\n","\r\nimport {isNullOrUndefined} from \"./Utils\";\r\nimport {Exception} from \"./Exception\";\r\n\r\n\r\n// @dynamic\r\nexport class NString {\r\n static Empty = \"\";\r\n\r\n static IndexOf(str: string, searchStr: any, startIndex: number, count: number): number {\r\n let index: number = str.substr(startIndex, count).indexOf(searchStr);\r\n return index > -1 ? startIndex + index : index;\r\n }\r\n\r\n static IndexOfAny(str: string, subs: string[], startIndex: number, count: number): number {\r\n for (let i = 0; i < count; ++i) {\r\n let c = str.charAt(startIndex + i);\r\n for (let j = 0; j < subs.length; ++j) {\r\n if (c === subs[j])\r\n return (startIndex + i);\r\n }\r\n }\r\n return -1;\r\n }\r\n\r\n static CopyTo(source: string, sourceIndex: number, destination: string[], destinationIndex: number, count: number) {\r\n for (let i = 0; i < count; i++) {\r\n destination[destinationIndex + i] = source[sourceIndex + i];\r\n }\r\n }\r\n\r\n static Compare(strA: string, strB: string, ignoreCase: boolean): number\r\n static Compare(strA: string, strB: string, ignoreCase: boolean, indexA: number, indexB: number, length: number): number\r\n static Compare(strA: string, strB: string, ignoreCase: boolean, indexA?: number, indexB?: number, length?: number): number {\r\n if (arguments.length = 6) {\r\n strA = strA.substr(indexA, length);\r\n strB = strB.substr(indexB, length);\r\n }\r\n if (ignoreCase) {\r\n strA = strA.toLowerCase();\r\n strB = strB.toLowerCase();\r\n }\r\n return strA.localeCompare(strB);\r\n }\r\n\r\n\r\n static Equals(strA: string, strB: string, ignoreCase: boolean): boolean {\r\n if (!NString.IsNullOrEmpty(strA) && !NString.IsNullOrEmpty(strB)) {\r\n if (ignoreCase) {\r\n strA = strA.toLowerCase();\r\n strB = strB.toLowerCase();\r\n }\r\n return strA === strB;\r\n }\r\n return false;\r\n }\r\n\r\n static GetHashCode(str: string): number {\r\n var hash = 0, i, l, ch;\r\n if (str.length === 0) return hash;\r\n for (i = 0, l = str.length; i < l; i++) {\r\n ch = str.charCodeAt(i);\r\n hash = ((hash << 5) - hash) + ch;\r\n hash |= 0; // Convert to 32bit integer\r\n }\r\n return hash;\r\n }\r\n\r\n\r\n static Remove(str: string, startIndex: number, length: number): string {\r\n return str.substr(0, startIndex - 1) + str.substr(startIndex + length - 1);\r\n }\r\n\r\n static TrimStart(str: string): string {\r\n return str.replace(/^\\s\\s*/, '')\r\n }\r\n\r\n static TrimEnd(string: string, trimChars?: string[]): string {\r\n if (arguments.length === 1)\r\n return string.replace(/\\s\\s*$/, '');\r\n\r\n for (let j = 0; j < trimChars.length; j++) {\r\n let trimChar = trimChars[j];\r\n let i = string.length - 1;\r\n while (!isNullOrUndefined(string[i]) && string[i].endsWith(trimChar)) {\r\n string = NString.Remove(string, string.length, 1);\r\n i--;\r\n }\r\n }\r\n return string;\r\n }\r\n\r\n static Format(format: string, arg0: any, arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any): string {\r\n if (!isNullOrUndefined(arg0) && arg0.constructor === Array) {\r\n var s = format,\r\n i = arg0.length;\r\n while (i--) {\r\n s = s.replace(new RegExp('\\\\{' + i + '\\\\}', 'gm'), arg0[i]);\r\n }\r\n return s;\r\n }\r\n else {\r\n var args = [arg0, arg1, arg2, arg3, arg4, arg5];\r\n return NString.Format(format, args);\r\n }\r\n }\r\n\r\n static IsNullOrEmpty(str1: string | NString): boolean {\r\n return !str1;\r\n }\r\n\r\n static FromChars(chOrChars: string[])\r\n static FromChars(chOrChars: string[], startIndex: number, len: number)\r\n static FromChars(chOrChars: string[], startIndex?: number, len?: number) {\r\n let str: string = chOrChars.join('');\r\n if (arguments.length === 3)\r\n return str.substr(startIndex, len);\r\n return str;\r\n }\r\n\r\n static FromChar(ch: string, count): string {\r\n return (new Array<string>(count).fill(<string>ch)).join('');\r\n }\r\n\r\n static ToCharArray(str: string): string[] {\r\n return Array.from(str);\r\n }\r\n\r\n static CompareOrdinal(strA: string, strB: string): number {\r\n let lenA = strA.length;\r\n let lenB = strB.length;\r\n\r\n let len = Math.min(lenA, lenB);\r\n\r\n // compare character by character\r\n for (let i = 0; i < len; i++) {\r\n if (strA[i].charCodeAt(0) !== strB[i].charCodeAt(0)) {\r\n return strA[i].charCodeAt(0) - strB[i].charCodeAt(0);\r\n }\r\n }\r\n\r\n // if all characters are same , but length is different return the difference of length\r\n if (lenA !== lenB) {\r\n return lenA - lenB;\r\n }\r\n\r\n // all chars are same , so strings are equal\r\n return 0;\r\n }\r\n\r\n static PadRight(source: string, maxLength: number, fillString?: string): string {\r\n if (source.length >= maxLength)\r\n return source;\r\n\r\n let fillLen = maxLength - source.length;\r\n let timesToRepeat = Math.ceil(fillLen / fillString.length);\r\n let truncatedStringFiller = fillString.repeat(timesToRepeat).slice(0, fillLen);\r\n return source + truncatedStringFiller;\r\n }\r\n\r\n static Insert(str: string, index: number, ch: string): string {\r\n return str.substr(0, index) + ch + str.substr(index, str.length - index);\r\n }\r\n\r\n static Replace(str:string, orgSubStr: string, newSubStr: string): string {\r\n let resultStr:string = '';\r\n\r\n // fixed defect 151810: replace \"*\" with \"\\*\" before we update the string so * will be as char and not reg exp\r\n // also for special chars $ ^ . ? + , [\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\\\\\\", 'g'), \"\\\\\\\\\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\*\",'g'), \"\\\\\\*\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\$\",'g'), \"\\\\\\$\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\^\",'g'), \"\\\\\\^\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\.\",'g'), \"\\\\\\.\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\?\",'g'), \"\\\\\\?\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\+\",'g'), \"\\\\\\+\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\,\",'g'), \"\\\\\\,\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\[\",'g'), \"\\\\\\[\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\|\",'g'), \"\\\\\\|\");\r\n\r\n try {\r\n resultStr = str.replace(new RegExp(orgSubStr,'g'), newSubStr);\r\n }\r\n catch (e) {\r\n throw new Exception(e.message);\r\n }\r\n return resultStr;\r\n }\r\n}\r\n","export class NumberFormatInfo {\r\n public static readonly NegativeSign: string = '-';\r\n\r\n public static readonly NumberDecimalSeparator: string = NumberFormatInfo.GetLocaleDecimalSeperator();\r\n\r\n private static GetLocaleDecimalSeperator(): string {\r\n return (1.1).toLocaleString()[1]; // get the decimal seperator of current locale\r\n }\r\n}\r\n","export class RefParam<T> {\r\n value: T;\r\n\r\n constructor(value: T) {\r\n this.value = value;\r\n }\r\n}\r\n","export class Stack<TData> {\r\n\r\n private _array: Array<TData>;\r\n\r\n constructor() {\r\n this._array = new Array<TData>();\r\n }\r\n\r\n public count(): number {\r\n return this._array.length;\r\n }\r\n\r\n public isEmpty(): boolean {\r\n return this._array.length === 0;\r\n }\r\n\r\n public push(value: TData): void {\r\n this._array.push(value);\r\n }\r\n\r\n public pop(): TData {\r\n return this._array.pop();\r\n }\r\n\r\n public peek(): TData {\r\n if (this._array.length > 0) {\r\n return this._array[this._array.length - 1];\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public Clear(): void {\r\n this._array.splice(0, this._array.length);\r\n }\r\n\r\n public Clone(): Stack<TData> {\r\n let clone: Stack<TData> = new Stack<TData>();\r\n clone._array = this._array.slice();\r\n return clone;\r\n }\r\n}\r\n","import * as StackTrace from 'stacktrace-js';\r\nimport JSStackFrame = StackTrace.StackFrame;\r\n\r\n// StackFrame uses StackTrace utility using stacktrace-js utility from npm\r\n// https://www.npmjs.com/package/stacktrace-js\r\nexport class StackFrame {\r\n private stackFrame: JSStackFrame = null;\r\n\r\n constructor(skipFrames: number) {\r\n\r\n let stackFrames: JSStackFrame[] = StackTrace.getSync();\r\n if (skipFrames < 0 || skipFrames >= stackFrames.length)\r\n throw new Error(\"Argument out of range\");\r\n\r\n this.stackFrame = stackFrames[skipFrames];\r\n }\r\n\r\n public GetFileName(): string {\r\n return this.stackFrame.fileName;\r\n }\r\n}\r\n","import * as JSStackTrace from 'stacktrace-js';\r\nimport JSStackFrame = JSStackTrace.StackFrame;\r\n\r\n// This uses StackTrace utility using stacktrace-js utility from npm. Use this in package.json\r\n// https://www.npmjs.com/package/stacktrace-js\r\nexport class StackTrace {\r\n GetFrames(): JSStackFrame[] {\r\n // Using getSync() method, it returns references of callstack ethod from the javascript files bindled and not typeScript file from sources.\r\n // However, if aSync method would have used, it overcomes above problems but the call to log would have been async and we would not have\r\n // received synchronous logs which would be confusing.\r\n return JSStackTrace.getSync();\r\n }\r\n}\r\n","import {Debug} from \"./Debug\";\r\nimport {NString} from \"./NString\";\r\n\r\n// StringBuilder class. Its Implementation currently uses string object. It could have been string[], but it has issues when inserting string.\r\n// It would not have served purpose while inserting a string. Other could be to use string[] with one chraracter per string. Even its utility\r\n// is doubtful as while manipulation, it would be creting new objects instead pointers. So for now we have used only string and see if we have\r\n// any performance issues.\r\nexport class StringBuilder {\r\n private part: string = \"\";\r\n\r\n // Ctor\r\n constructor(length?: number)\r\n constructor(value?: string, length?: number)\r\n constructor(valueOrLength?: any, length?: number) {\r\n if (arguments.length > 0) {\r\n if (valueOrLength != null && valueOrLength.constructor === Number) {\r\n // TODO: Very low priority performance improvement - Implement this.\r\n // Debug.Assert(false, \"StringBuilder: NotImplemented constructor with initial length/capacity\");\r\n // throw new Error(\"NotImplemented constructor with initial length/capacity\");\r\n }\r\n else if (valueOrLength != null && valueOrLength.constructor === String) {\r\n this.part = valueOrLength.toString();\r\n // TODO: Very low priority performance improvement - Implement this.\r\n // if (arguments.length === 2)\r\n // Debug.Assert(false, \"NotImplemented constructor with initial length/capacity\");\r\n }\r\n }\r\n }\r\n\r\n // Appends string/number\r\n Append(num: number, numberOfCharacters?: number): StringBuilder;\r\n Append(text: string): StringBuilder;\r\n Append(text: string, numberOfCharacters: number): StringBuilder;\r\n Append(text: string, startIndex: number, charCount: number): StringBuilder;\r\n Append(textOrNum: any, startIndexOrNumberOfCharacters?: number, charCount?: number): StringBuilder {\r\n\r\n if (textOrNum === null)\r\n return this;\r\n\r\n if (textOrNum.constructor === String) {\r\n if (arguments.length === 1)\r\n this.AppendString(textOrNum.toString());\r\n else if (arguments.length === 2) {\r\n Debug.Assert(textOrNum.length === 1, \"character is expected not string\");\r\n this.AppendString(textOrNum.charAt(0).repeat(startIndexOrNumberOfCharacters));\r\n }\r\n else\r\n this.AppendString(textOrNum.toString(), startIndexOrNumberOfCharacters, charCount);\r\n }\r\n else\r\n this.AppendNumber(textOrNum, startIndexOrNumberOfCharacters);\r\n\r\n return this;\r\n }\r\n\r\n // Append string\r\n private AppendString(text: string, startIndex: number = 0, charCount: number = text.length): void {\r\n this.part = this.part + text.substr(startIndex, charCount);\r\n }\r\n\r\n // Append Number\r\n private AppendNumber(num: number, numberOfCharacters: number = 1): void {\r\n if (numberOfCharacters <= 0)\r\n throw new Error(\"numberOfCharacters cannot be less than or equal to zero\");\r\n\r\n this.part = this.part + num.toString().repeat(numberOfCharacters);\r\n }\r\n\r\n // Append Line\r\n AppendLine(text: string = null): void {\r\n if (text !== null)\r\n this.part = this.part + text;\r\n this.part = this.part + '\\n';\r\n }\r\n\r\n // Append Formatted string\r\n AppendFormat(format: string, arg0: any): StringBuilder\r\n AppendFormat(format: string, arg0: any, arg1: any): StringBuilder\r\n AppendFormat(format: string, arg0: any, arg1: any, arg2: any): StringBuilder\r\n AppendFormat(format: string, arg0: any, arg1?: any, arg2?: any): StringBuilder {\r\n this.part = this.part + NString.Format(format, arg0, arg1, arg2);\r\n return this;\r\n }\r\n\r\n // Convert to string\r\n ToString(): string;\r\n ToString(startIndex: number, length: number): string;\r\n ToString(startIndex ?: number, length ?: number): string {\r\n if (arguments.length === 2) {\r\n if (startIndex < 0 || length < 0 || (startIndex + length) > this.part.length)\r\n throw new Error(\"Argument out of range\");\r\n\r\n return this.part.substr(startIndex, length);\r\n }\r\n return this.part;\r\n }\r\n\r\n get Length(): number {\r\n return this.part.length;\r\n }\r\n\r\n get_Item(index: number): string {\r\n if (index < 0 || index >= this.part.length)\r\n throw new Error(\"Index out of range\");\r\n\r\n return this.part.charAt(index);\r\n }\r\n\r\n set_Item(index: number, value: string) {\r\n if (index < 0 || index >= this.part.length)\r\n throw new Error(\"Index out of range\");\r\n\r\n Debug.Assert(value.length <= 1, \"Length of string cannot be more than 1. Only character is expected\");\r\n let leftPart: string = this.part.substring(0, index);\r\n let rightPart: string = this.part.substring(index + 1, this.part.length);\r\n this.part = leftPart + value.charAt(0) + rightPart;\r\n }\r\n\r\n Insert(index: number, value: string): StringBuilder {\r\n if (index < 0 || index > this.part.length)\r\n throw new Error(\"Argument out of range\");\r\n\r\n let leftPart: string = this.part.substring(0, index);\r\n let rightPart: string = this.part.substring(index, this.part.length);\r\n this.part = leftPart + value + rightPart;\r\n\r\n return this;\r\n }\r\n\r\n Remove(startIndex: number, length: number): StringBuilder {\r\n if (startIndex < 0 || length < 0 || (startIndex + length) > this.part.length)\r\n throw new Error(\"Argument out of range\");\r\n\r\n let leftPart: string = this.part.substring(0, startIndex);\r\n let rightPart: string = this.part.substring(startIndex + length, this.part.length);\r\n this.part = leftPart + rightPart;\r\n\r\n return this;\r\n }\r\n\r\n Replace(oldValue: string, newValue: string): StringBuilder;\r\n Replace(oldValue: string, newValue: string, startIndex: number, count: number): StringBuilder;\r\n Replace(oldValue: string, newValue: string, startIndex?: number, count?: number): StringBuilder {\r\n if (oldValue === null)\r\n throw new Error(\"oldValue cannot be null\");\r\n else if (oldValue.length === 0)\r\n throw new Error(\"Length of oldValue cannot be 0\");\r\n\r\n if (arguments.length === 4) {\r\n if (startIndex < 0 || count < 0 || (startIndex + count) > this.part.length)\r\n throw new Error(\"Argument out of range\");\r\n }\r\n\r\n if (arguments.length === 2)\r\n this.part = this.part.replace(new RegExp(oldValue, 'g'), newValue);\r\n else if (arguments.length === 4) {\r\n let substr: string = this.part.substring(startIndex, startIndex + count);\r\n substr = substr.replace(new RegExp(oldValue, 'g'), newValue);\r\n\r\n let leftPart: string = this.part.substring(0, startIndex);\r\n let rightPart: string = this.part.substring(startIndex + count, this.part.length);\r\n this.part = leftPart + substr + rightPart;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n // return the string\r\n toString(): string {\r\n return this.ToString();\r\n }\r\n}\r\n","import {interval} from 'rxjs';\r\n\r\nexport class Thread {\r\n private static nextId: number = 1;\r\n static CurrentThread: Thread = new Thread();\r\n ManagedThreadId: number = 0;\r\n\r\n constructor() {\r\n this.ManagedThreadId = Thread.nextId++;\r\n }\r\n\r\n /// <summary>\r\n /// Free the thread so it will be able to do other work, like gui events\r\n /// </summary>\r\n /// <param name = \"millisecondsTimeout\"> timeout in milliseconds</param>\r\n\r\n public static async Sleep(millisecondsTimeout: number): Promise<void>\r\n {\r\n await new Promise<void>((resolve) => {\r\n let timer = interval(millisecondsTimeout);\r\n let subscription = timer.subscribe( () => {subscription.unsubscribe(); resolve();});\r\n }).then();\r\n }\r\n}\r\n","import {Exception} from \"./Exception\";\r\n\r\nexport class WebException extends Exception {\r\n constructor(error: Error) {\r\n super();\r\n this.name = \"WebException\";\r\n this.stack = error.stack;\r\n this.message = error.message;\r\n }\r\n}\r\n","import {NotImplementedException} from \"./NotImplementedException\";\r\n\r\nexport class XmlConvert {\r\n // TODO : Implement\r\n static EncodeName(name: string): string {\r\n throw new NotImplementedException();\r\n }\r\n}\r\n"],"names":["StackTrace","JSStackTrace"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"magic-xpa-mscorelib.mjs","sources":["../../../../projects/mscorelib/src/Utils.ts","../../../../projects/mscorelib/src/Exception.ts","../../../../projects/mscorelib/src/ApplicationException.ts","../../../../projects/mscorelib/src/ArrayEnumerator.ts","../../../../projects/mscorelib/src/BitArray.ts","../../../../projects/mscorelib/src/Char.ts","../../../../projects/mscorelib/src/CultureInfo.ts","../../../../projects/mscorelib/src/DateTime.ts","../../../../projects/mscorelib/src/Debug.ts","../../../../projects/mscorelib/src/Dictionary.ts","../../../../projects/mscorelib/src/Encoding.ts","../../../../projects/mscorelib/src/HashTable.ts","../../../../projects/mscorelib/src/Int32.ts","../../../../projects/mscorelib/src/Int64.ts","../../../../projects/mscorelib/src/ISO_8859_1_Encoding.ts","../../../../projects/mscorelib/src/List.ts","../../../../projects/mscorelib/src/StringUtils.ts","../../../../projects/mscorelib/src/NChar.ts","../../../../projects/mscorelib/src/NotImplementedException.ts","../../../../projects/mscorelib/src/NNumber.ts","../../../../projects/mscorelib/src/NString.ts","../../../../projects/mscorelib/src/NumberFormatInfo.ts","../../../../projects/mscorelib/src/RefParam.ts","../../../../projects/mscorelib/src/Stack.ts","../../../../projects/mscorelib/src/StackFrame.ts","../../../../projects/mscorelib/src/StackTrace.ts","../../../../projects/mscorelib/src/StringBuilder.ts","../../../../projects/mscorelib/src/Thread.ts","../../../../projects/mscorelib/src/WebException.ts","../../../../projects/mscorelib/src/XmlConvert.ts"],"sourcesContent":["export function isNullOrUndefined(object: any): boolean {\r\n return object == undefined || object == null;\r\n}\r\nexport function isUndefined(object: any): boolean {\r\n return object == undefined;\r\n}\r\n","/// <summary>\r\n/// The base class of all exceptions\r\n/// </summary>\r\n\r\nimport {isNullOrUndefined} from \"./Utils\";\r\n\r\nexport class Exception{\r\n\r\n name: string = \"Exception\";\r\n message: string = \"\";\r\n stack: string = \"\";\r\n\r\n\r\n errorLevel = 1;\r\n /// <summary>\r\n /// constructor\r\n /// </summary>\r\n /// <param name=\"message\" denotes the message of exception></param>\r\n /// <param name=\"name\" denotes the type of exception></param>\r\n constructor(message?: string)\r\n constructor(error: Error)\r\n constructor(messageOrError: string | Error) {\r\n if (!isNullOrUndefined(messageOrError)) {\r\n if (messageOrError instanceof Error) {\r\n this.stack = (<Error>messageOrError).stack;\r\n this.message = (<Error>messageOrError).message;\r\n }\r\n else {\r\n this.message = <string>messageOrError;\r\n this.stack = new Error().stack;\r\n }\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// get the message of exception\r\n /// </summary>\r\n get Message() {\r\n return this.message;\r\n }\r\n\r\n /// <summary>\r\n /// get the stack trace of exception\r\n /// </summary>\r\n get StackTrace() {\r\n\r\n let stackTrace = this.stack || '';\r\n let stackLines = stackTrace.split(\"\\n\").map(function (line) { return line.trim(); });\r\n\r\n // On some browsers (e.g. Chrome), the statck includes a title as \"Error\", so remove it.\r\n stackTrace = stackLines.splice(stackLines[0] === 'Error' ? this.errorLevel + 1 : this.errorLevel).join(\"\\n\");\r\n\r\n return \"\\n\" + stackTrace;\r\n }\r\n\r\n /// <summary>\r\n /// get the type of exception\r\n /// </summary>\r\n public GetType(): string {\r\n return this.name;\r\n }\r\n}\r\n\r\n\r\n","import {Exception} from \"./Exception\";\r\nimport {isUndefined} from \"./Utils\";\r\n\r\nexport class ApplicationException extends Exception {\r\n\r\n InnerException: Exception = null;\r\n\r\n constructor(message: string = \"\", innerException?: Exception) {\r\n super(message);\r\n this.name = 'ApplicationException';\r\n this.InnerException = (isUndefined(innerException) ? null : innerException);\r\n this.errorLevel = 2;\r\n }\r\n}\r\n","\r\nexport interface IEnumerable<T> {\r\n GetEnumerator(): Array_Enumerator<T>;\r\n}\r\n\r\nexport class Array_Enumerator<T> {\r\n private array: T[];\r\n private index: number = -1;\r\n\r\n constructor(array: T[]) {\r\n this.array = array;\r\n }\r\n\r\n MoveNext(): boolean {\r\n this.index++;\r\n return this.index < this.array.length;\r\n }\r\n\r\n get Current(): T {\r\n return this.array[this.index];\r\n }\r\n\r\n Dispose(): void {\r\n }\r\n}\r\n","/// <summary>\r\n/// Manages a compact array of bit values,\r\n// which are represented as Booleans, where true indicates that the bit is on (1) and false indicates the bit is off (0).\r\n/// </summary>\r\nexport class BitArray {\r\n\r\n private array: Array<boolean> = null; // array of boolean values\r\n\r\n /// <summary>\r\n /// returns the length of array\r\n /// </summary>\r\n /// <returns></returns>\r\n public get Length() {\r\n return this.array.length;\r\n }\r\n\r\n constructor(length: number) {\r\n this.array = new Array(length).fill(false);\r\n }\r\n\r\n /// <summary>\r\n /// get the value of flag at specified index\r\n /// </summary>\r\n /// <returns></returns>\r\n public Get(index: number): boolean {\r\n return this.array[index];\r\n }\r\n\r\n /// <summary>\r\n /// set the value of flag at specified index\r\n /// </summary>\r\n /// <returns></returns>\r\n public Set(index: number, value: boolean) {\r\n this.array[index] = value;\r\n }\r\n\r\n\r\n}\r\n","export class Char {\r\n static MinValue: string = '\\0';\r\n static MaxValue: string = String.fromCharCode(0xFFFF);\r\n}\r\n","export class CultureInfo {\r\n static InvariantCulture: CultureInfo = new CultureInfo();\r\n}\r\n","import moment from 'moment'\r\n\r\nexport enum DateTimeKind {\r\n Local,\r\n Utc\r\n}\r\n\r\n// @dynamic\r\nexport class DateTime {\r\n private dt: Date = null;\r\n private kind: DateTimeKind = null;\r\n\r\n // the number of .net ticks at the unix epoch\r\n private readonly epochTicks = 621355968000000000;\r\n\r\n // there are 10000 .net ticks per millisecond\r\n private readonly ticksPerMillisecond = 10000;\r\n\r\n get Ticks(): number {\r\n // https://stackoverflow.com/questions/7966559/how-to-convert-javascript-date-object-to-ticks\r\n // TODO - check if we need this or to use Misc.getSystemMilliseconds()\r\n return ((this.dt.getTime() * this.ticksPerMillisecond) + this.epochTicks) - (this.dt.getTimezoneOffset() * 600000000);\r\n }\r\n\r\n get Year(): number {\r\n return this.kind === DateTimeKind.Utc ? this.dt.getUTCFullYear() : this.dt.getFullYear();\r\n }\r\n\r\n get Month(): number {\r\n return this.kind === DateTimeKind.Utc ? this.dt.getUTCMonth() + 1 : this.dt.getMonth() + 1;\r\n }\r\n\r\n get Day(): number {\r\n return this.kind === DateTimeKind.Utc ? this.dt.getUTCDate() : this.dt.getDate();\r\n }\r\n\r\n get Hour(): number {\r\n return this.kind === DateTimeKind.Utc ? this.dt.getUTCHours() : this.dt.getHours();\r\n }\r\n\r\n get Minute(): number {\r\n return this.kind === DateTimeKind.Utc ? this.dt.getUTCMinutes() : this.dt.getMinutes();\r\n }\r\n\r\n get Second(): number {\r\n return this.kind === DateTimeKind.Utc ? this.dt.getUTCSeconds() : this.dt.getSeconds();\r\n }\r\n\r\n get Millisecond(): number {\r\n return this.kind === DateTimeKind.Utc ? this.dt.getUTCMilliseconds() : this.dt.getMilliseconds();\r\n }\r\n\r\n\r\n constructor(date: Date);\r\n constructor(year: number, month: number, day: number);\r\n constructor(year: number, month: number, day: number, hour : number, minute : number, second: number);\r\n constructor(yearOrDate: any, month?: number, day?: number, hour?: number, minute?: number, second?: number) {\r\n if (arguments.length === 1) {\r\n this.dt = <Date>yearOrDate;\r\n }\r\n if (arguments.length === 3) {\r\n this.dt = new Date(<number>yearOrDate, month - 1, day);\r\n }\r\n if (arguments.length === 6) {\r\n this.dt = new Date(<number>yearOrDate, month - 1, day, hour, minute, second);\r\n }\r\n this.kind = DateTimeKind.Local;\r\n }\r\n\r\n\r\n\r\n\r\n Format(formatString: string): string {\r\n return moment(this.dt).format(formatString);\r\n }\r\n\r\n static get UtcNow(): DateTime {\r\n let d = new DateTime(new Date());\r\n d.kind = DateTimeKind.Utc;\r\n return d;\r\n }\r\n\r\n static get Now(): DateTime {\r\n let d = new DateTime(new Date());\r\n d.kind = DateTimeKind.Local;\r\n return d;\r\n }\r\n\r\n static GetTotalSecondsFromMidnight(utcTime: boolean, date: Date): number {\r\n let hh = utcTime ? date.getUTCHours() : date.getHours();\r\n let mm = utcTime ? date.getUTCMinutes() : date.getMinutes();\r\n let ss = utcTime ? date.getUTCSeconds() : date.getSeconds();\r\n\r\n return hh * 60 * 60 + mm * 60 + ss;\r\n }\r\n\r\n static GetTotalMilliSecondsFromMidnight(utcTime: boolean, date: Date): number {\r\n let hh = utcTime ? date.getUTCHours() : date.getHours();\r\n let mm = utcTime ? date.getUTCMinutes() : date.getMinutes();\r\n let ss = utcTime ? date.getUTCSeconds() : date.getSeconds();\r\n let ms = utcTime ? date.getUTCSeconds() : date.getMilliseconds();\r\n return (hh * 60 * 60 + mm * 60 + ss) * 1000 + ms;\r\n }\r\n}\r\n\r\n\r\n","export class Debug {\r\n static WriteLine(text: string): void {\r\n console.log(text);\r\n }\r\n\r\n static Assert(assertCondtion: boolean, message?: string): void {\r\n if (!assertCondtion)\r\n alert(message);\r\n }\r\n}\r\n","import {RefParam} from \"./RefParam\";\r\nimport {Exception} from \"./Exception\";\r\n\r\nexport class Dictionary<V> {\r\n private values: Array<V> = new Array();\r\n\r\n get_Item(key: string): V {\r\n if (this.values.hasOwnProperty(key))\r\n return this.values[key];\r\n else\r\n return null;\r\n }\r\n\r\n set_Item(key: string, value: V) {\r\n this.values[key] = value;\r\n }\r\n\r\n Add(key: string, value: V) {\r\n if (this.values.hasOwnProperty(key))\r\n throw new Exception(\"An item with the same key has already been added\");\r\n else\r\n this.values[key] = value;\r\n }\r\n\r\n ContainsKey(key: string): boolean {\r\n return this.values.hasOwnProperty(key);\r\n }\r\n\r\n TryGetValue(key: string, pvalue: RefParam<V>): boolean {\r\n if (this.values.hasOwnProperty(key)) {\r\n pvalue.value = this.values[key];\r\n return true;\r\n }\r\n else {\r\n pvalue.value = null;\r\n return false;\r\n }\r\n }\r\n\r\n Remove(key: string): void {\r\n delete this.values[key];\r\n }\r\n\r\n get Keys(): string[] {\r\n return Object.keys(this.values);\r\n }\r\n}\r\n","import {TextDecoder, TextEncoder} from \"text-encoding\";\r\n\r\nexport class Encoding {\r\n static readonly ASCII: Encoding = new Encoding(\"ascii\");\r\n static readonly UTF8: Encoding = new Encoding(\"utf-8\");\r\n static readonly Unicode: Encoding = new Encoding(\"utf-16le\");\r\n\r\n static readonly CodePageToEncodingMap = Encoding.PopulateCodePageToEncodingMap();\r\n\r\n private readonly textEncoder: TextEncoder = null;\r\n private readonly textDecoder: TextDecoder = null;\r\n constructor(private label: string) {\r\n this.textEncoder = new TextEncoder(label, {NONSTANDARD_allowLegacyEncoding: true});\r\n this.textDecoder = new TextDecoder(label, {NONSTANDARD_allowLegacyEncoding: true});\r\n }\r\n\r\n GetBytes(str: string): Uint8Array {\r\n\r\n if (str === null)\r\n throw new Error(\"Argument is null\");\r\n\r\n let bytes: Uint8Array = null;\r\n\r\n try {\r\n bytes = this.textEncoder.encode(str);\r\n }\r\n catch (ex) {\r\n // In C#, if any character is not within the range of specified charset, it is replaced by '?'.\r\n // TextEncoder.encode() throws an error in such a case.\r\n // We can modify the implementation of TextEncoder.encode() to put '?' instead of throwing error.\r\n // But, it can be problematic if we change the library version.\r\n // So, we will catch this error and handle the encoding ourselves.\r\n bytes = new Uint8Array(str.length * 3);\r\n let bytesCount: number = 0;\r\n let tmpBytes: Uint8Array;\r\n\r\n for (let i = 0; i < str.length; i++)\r\n {\r\n try {\r\n tmpBytes = this.textEncoder.encode(str[i]);\r\n bytes.set(tmpBytes, bytesCount);\r\n bytesCount += tmpBytes.length;\r\n }\r\n catch (ex) {\r\n bytes[bytesCount++] = \"?\".charCodeAt(0);\r\n }\r\n }\r\n\r\n bytes = bytes.subarray(0, 0 + bytesCount);\r\n }\r\n\r\n return bytes;\r\n }\r\n\r\n GetByteCount(str: string): number {\r\n // TODO: this is not the best way.\r\n return this.GetBytes(str).length;\r\n }\r\n\r\n GetString(bytes: Uint8Array, index: number, count: number): string {\r\n let str: string = null;\r\n\r\n if (bytes === null)\r\n throw new Error(\"Argument is null\");\r\n\r\n if (index < 0 || count < 0 || (index + count) > bytes.length)\r\n throw new Error(\"Argument out of range\");\r\n\r\n bytes = bytes.subarray(index, index + count);\r\n\r\n try {\r\n str = this.textDecoder.decode(bytes);\r\n }\r\n catch (ex) {\r\n }\r\n\r\n return str;\r\n }\r\n\r\n static GetEncoding(codepage: number): Encoding {\r\n let label: string = Encoding.CodePageToEncodingMap[codepage];\r\n\r\n if (label == null)\r\n throw new Error(\"Invalid codepage.\");\r\n\r\n return new Encoding(label);\r\n }\r\n private static PopulateCodePageToEncodingMap(): any {\r\n\r\n let hashTable = new Object;\r\n\r\n // These map is similar to enc_map_table of exp_xml.cpp\r\n hashTable[20106] = \"DIN_66003\"; // IA5 (German)\r\n hashTable[20107] = \"SEN_850200_B\"; // IA5 (Swedish)\r\n hashTable[50932] = \"_autodetect\"; // Japanese (Auto Select)\r\n hashTable[20108] = \"NS_4551-1\"; // IA5 (Norwegian)\r\n hashTable[50949] = \"_autodetect_kr\"; // Korean (Auto Select)\r\n hashTable[950] = \"big5\"; // Chinese Traditional (Big5)\r\n hashTable[50221] = \"csISO2022JP\"; // Japanese (JIS-Allow 1 byte Kana)\r\n hashTable[51949] = \"euc-kr\"; // Korean (EUC)\r\n hashTable[936] = \"gb2312\"; // Chinese Simplified (GB2312)\r\n hashTable[52936] = \"hz-gb-2312\"; // Chinese Simplified (HZ)\r\n hashTable[852] = \"ibm852\"; // Central European (DOS)\r\n hashTable[866] = \"ibm866\"; // Cyrillic Alphabet (DOS)\r\n hashTable[20105] = \"irv\"; // IA5 (IRV)\r\n hashTable[50220] = \"iso-2022-jp\"; // Japanese (JIS)\r\n hashTable[50222] = \"iso-2022-jp\"; // Japanese (JIS-Allow 1 byte Kana)\r\n hashTable[50225] = \"iso-2022-kr\"; // Korean (ISO)\r\n hashTable[28591] = \"iso-8859-1\"; // Western Alphabet (ISO)\r\n hashTable[28592] = \"iso-8859-2\"; // Central European Alphabet (ISO)\r\n hashTable[28593] = \"iso-8859-3\"; // Latin 3 Alphabet (ISO)\r\n hashTable[28594] = \"iso-8859-4\"; // Baltic Alphabet (ISO)\r\n hashTable[28595] = \"iso-8859-5\"; // Cyrillic Alphabet (ISO)\r\n hashTable[28596] = \"iso-8859-6\"; // Arabic Alphabet (ISO)\r\n hashTable[28597] = \"iso-8859-7\"; // Greek Alphabet (ISO)\r\n hashTable[28598] = \"iso-8859-8\"; // Hebrew Alphabet (ISO)\r\n hashTable[20866] = \"koi8-r\"; // Cyrillic Alphabet (KOI8-R)\r\n hashTable[949] = \"ks_c_5601\"; // Korean\r\n hashTable[932] = \"shift-jis\"; // Japanese (Shift-JIS)\r\n hashTable[1200] = \"unicode\"; // Universal Alphabet\r\n hashTable[1201] = \"unicodeFEFF\"; // Universal Alphabet (Big-Endian)\r\n hashTable[65000] = \"utf-7\"; // Universal Alphabet (UTF-7)\r\n hashTable[65001] = \"utf-8\"; // Universal Alphabet (UTF-8)\r\n hashTable[1250] = \"windows-1250\"; // Central European Alphabet (Windows)\r\n hashTable[1251] = \"windows-1251\"; // Cyrillic Alphabet (Windows)\r\n hashTable[1252] = \"windows-1252\"; // Western Alphabet (Windows)\r\n hashTable[1253] = \"windows-1253\"; // Greek Alphabet (Windows)\r\n hashTable[1254] = \"windows-1254\"; // Turkish Alphabet\r\n hashTable[1255] = \"windows-1255\"; // Hebrew Alphabet (Windows)\r\n hashTable[1256] = \"windows-1256\"; // Arabic Alphabet (Windows)\r\n hashTable[1257] = \"windows-1257\"; // Baltic Alphabet (Windows)\r\n hashTable[1258] = \"windows-1258\"; // Vietnamese Alphabet (Windows)\r\n hashTable[874] = \"windows-874\"; // Thai (Windows)\r\n hashTable[20127] = \"US-ASCII\"; // us-ascii\r\n hashTable[51932] = \"x-euc\"; // Japanese (EUC)\r\n\r\n return hashTable;\r\n }\r\n\r\n // return the name of encoding used \r\n public toString(): string {\r\n return this.label;\r\n }\r\n}\r\n","// Reference: https://github.com/rkostrzewski/hashtable-ts/blob/master/src/hashtable.ts\r\n\r\nimport {Array_Enumerator} from \"./ArrayEnumerator\";\r\nimport {Exception} from \"./Exception\";\r\nimport {Encoding} from \"./Encoding\";\r\n\r\nexport class HashUtils {\r\n // Pay attention that in server there is the same function and it must\r\n // return the same hash value.\r\n static GetHashCode(str: string): number {\r\n let bytes: Uint8Array = null;\r\n\r\n bytes = Encoding.UTF8.GetBytes(str);\r\n\r\n return HashUtils.getHashCode(bytes);\r\n }\r\n\r\n private static getHashCode(byteArray: Uint8Array) {\r\n let hashval: number;\r\n\r\n let hash1: number = 5381;\r\n let hash2: number = hash1;\r\n let c: number;\r\n\r\n for (let i: number = 0; i < byteArray.length; i += 2) {\r\n c = byteArray[i];\r\n hash1 = ((hash1 << 5) + hash1) ^ c;\r\n if ((i + 1) === byteArray.length)\r\n break;\r\n c = byteArray[i + 1];\r\n hash2 = ((hash2 << 5) + hash2) ^ c;\r\n hash1 = hash1 & 0xffff;\r\n hash2 = hash2 & 0xffff;\r\n }\r\n\r\n let hash3: number = (hash2 * 13577);\r\n hashval = (hash1 + hash3);\r\n return (hashval);\r\n }\r\n}\r\n\r\nexport interface IHashCode {\r\n GetHashCode(): number;\r\n}\r\n\r\ntype BucketElement<TKey, TValue> = { key: TKey, value: TValue };\r\ntype Bucket<TKey, TValue> = [BucketElement<TKey, TValue>];\r\n\r\nconst HashTableLoadFactor = 0.75;\r\n\r\n// Hashtable implementation for key TKey and Value TValue\r\nexport class Hashtable<TKey extends (IHashCode | string | number), TValue> {\r\n\r\n private _buckets: Bucket<TKey, TValue>[] = []; // total no. of buckets\r\n private _elementsCount = 0; // total elements\r\n private _bucketCount: number = 0;\r\n private _loadFactor: number = 0;\r\n\r\n constructor(bucketCount: number = 8, loadFactor: number = HashTableLoadFactor) {\r\n this._bucketCount = bucketCount;\r\n this._loadFactor = loadFactor;\r\n\r\n if (this._bucketCount % 2 !== 0) {\r\n throw new Exception('Bucket count must be a positive number and be multiple of 2.');\r\n }\r\n }\r\n\r\n // Generic Hash funtion\r\n private HashFunction(key): number {\r\n if (typeof key.GetHashCode === 'function') {\r\n return key.GetHashCode();\r\n } else if (key.constructor === String) {\r\n return HashUtils.GetHashCode(key.toString());\r\n } else if (key.constructor === Number) {\r\n return +key;\r\n }\r\n return 0;\r\n }\r\n\r\n // returns elementCount\r\n get Count() {\r\n return this._elementsCount;\r\n }\r\n\r\n // returns ValueCollection (Array Enumerator)\r\n get Values(): Array_Enumerator<TValue> {\r\n let array: Array<TValue> = [];\r\n this._buckets.forEach(b => b.forEach(item => {\r\n array.push(item.value);\r\n }));\r\n return new Array_Enumerator(array);\r\n }\r\n\r\n // returns KeyCollection (Array Enumerator)\r\n get Keys(): Array_Enumerator<TKey> {\r\n let array: Array<TKey> = [];\r\n this._buckets.forEach(b => b.forEach(item => {\r\n array.push(item.key);\r\n }));\r\n return new Array_Enumerator(array);\r\n }\r\n\r\n // adds item to Hashtable\r\n Add(key: TKey, value: TValue): void {\r\n this.Insert(key, value, true);\r\n }\r\n\r\n // sets item in Hashtable\r\n set_Item(key: TKey, value: TValue) {\r\n this.Insert(key, value, false);\r\n }\r\n\r\n // Insert element in Hashtable\r\n private Insert(key: TKey, value: TValue, add: boolean): void {\r\n let bucketIndex = this.GetBucketIndex(key);\r\n\r\n if (typeof this._buckets[bucketIndex] === \"undefined\") {\r\n this._buckets[bucketIndex] = <Bucket<TKey, TValue>><unknown>[];\r\n }\r\n\r\n if (this._buckets[bucketIndex].find(x => x.key === key)) {\r\n if (add) {\r\n throw new Exception('Item with provided key already exists!');\r\n } else {\r\n this.Remove(key);\r\n return;\r\n }\r\n }\r\n\r\n this._buckets[bucketIndex].push({key: key, value: value});\r\n\r\n this._elementsCount++;\r\n if (this._elementsCount > this._bucketCount * this._loadFactor) {\r\n this.Resize(this._bucketCount * 2);\r\n }\r\n }\r\n\r\n// Gets value for key TKey\r\n get_Item(key: TKey): TValue {\r\n let bucketIndex = this.GetBucketIndex(key);\r\n let bucket = this._buckets[bucketIndex];\r\n if (!bucket) {\r\n return null;\r\n }\r\n\r\n let item = bucket.find(x => x.key === key);\r\n if (item) {\r\n return item.value;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n // Returns if key TKey is present in Hashtable\r\n ContainsKey(key: TKey): boolean {\r\n let bucketIndex = this.GetBucketIndex(key);\r\n let bucket = this._buckets[bucketIndex];\r\n if (!bucket) {\r\n return false;\r\n }\r\n\r\n let itemIndex = bucket.findIndex(x => x.key === key);\r\n return (itemIndex > -1);\r\n }\r\n\r\n // Removes item with key TKey from Hashtable\r\n Remove(key: TKey) {\r\n let bucketIndex = this.GetBucketIndex(key);\r\n let bucket = this._buckets[bucketIndex];\r\n if (!bucket) {\r\n return;\r\n }\r\n\r\n let itemIndex = bucket.findIndex(x => x.key === key);\r\n if (itemIndex > -1) {\r\n bucket.splice(itemIndex, 1);\r\n this._elementsCount--;\r\n if (this._elementsCount <= this._bucketCount * (1 - this._loadFactor)) {\r\n this.Resize(this._bucketCount / 2);\r\n }\r\n }\r\n }\r\n\r\n // Resize bucket (Hashtable)\r\n private Resize(newBucketCount: number) {\r\n let _oldBuckets = this._buckets;\r\n this._elementsCount = 0;\r\n this._buckets = [];\r\n this._bucketCount = newBucketCount;\r\n\r\n _oldBuckets.forEach(b => b.forEach(item => this.Add(item.key, item.value)));\r\n }\r\n\r\n// returns bucketIndex for key\r\n private GetBucketIndex(key: TKey) {\r\n let hash = this.HashFunction(key);\r\n if (hash % 1 !== 0) {\r\n throw new Exception('Key\\'s hash must be an integer!');\r\n }\r\n\r\n let index = Math.abs(hash) % this._bucketCount;\r\n\r\n if (index < 0 || index >= this._bucketCount) {\r\n throw new Exception('Index exceeds bucket boundaries');\r\n }\r\n\r\n return index;\r\n }\r\n\r\n// Clears Hashtable\r\n Clear(): void {\r\n this._elementsCount = 0;\r\n this._buckets = [];\r\n }\r\n}\r\n","export class Int32 {\r\n static MinValue: number = -2147483648;\r\n static MaxValue: number = 2147483647;\r\n}\r\n","export class Int64 {\r\n static MinValue: number = -9223372036854775808;\r\n}\r\n","import {Encoding} from \"./Encoding\";\r\n\r\nexport class ISO_8859_1_Encoding extends Encoding {\r\n\r\n static readonly ISO_8859_1: ISO_8859_1_Encoding = new ISO_8859_1_Encoding(\"iso_8859-1\");\r\n constructor(label: string) {\r\n super(label);\r\n }\r\n\r\n GetBytes(str: string): Uint8Array {\r\n\r\n if (str === null)\r\n throw new Error(\"Argument is null\");\r\n\r\n let bytes: Uint8Array = null;\r\n\r\n bytes = new Uint8Array(str.length * 3);\r\n let bytesCount: number = 0;\r\n for (let i = 0; i < str.length; i++)\r\n {\r\n bytes[bytesCount++] = str[i].charCodeAt(0);\r\n }\r\n\r\n bytes = bytes.subarray(0, 0 + bytesCount);\r\n return bytes;\r\n }\r\n\r\n GetString(bytes: Uint8Array, index: number, count: number): string {\r\n let str: string = null;\r\n\r\n if (bytes === null)\r\n throw new Error(\"Argument is null\");\r\n\r\n if (index < 0 || count < 0 || (index + count) > bytes.length)\r\n throw new Error(\"Argument out of range\");\r\n\r\n bytes = bytes.subarray(index, index + count);\r\n\r\n try {\r\n\r\n str = '';\r\n for (let i = 0; i < bytes.length; i++)\r\n {\r\n str += String.fromCharCode(bytes[i]);\r\n };\r\n }\r\n catch (ex) {\r\n }\r\n\r\n return str;\r\n }\r\n}\r\n","import {Array_Enumerator} from \"./ArrayEnumerator\";\r\nimport {isUndefined} from \"./Utils\";\r\n\r\nexport class List<T> extends Array<T> {\r\n\r\n constructor(arrayEnumerator?: Array_Enumerator<T>) {\r\n super();\r\n Object.setPrototypeOf(this, List.prototype);\r\n\r\n if (arguments.length === 1 && arrayEnumerator.constructor === Array_Enumerator) {\r\n this.AddRange(arrayEnumerator);\r\n }\r\n }\r\n\r\n AddRange(arrayEnumerator: Array_Enumerator<T>)\r\n AddRange(array: Array<T>)\r\n AddRange(arrayEnumeratorOrArray: any) {\r\n if (arrayEnumeratorOrArray.constructor === Array) {\r\n arrayEnumeratorOrArray.forEach((item: T) => {\r\n this.push(item);\r\n });\r\n }\r\n else {\r\n let e = arrayEnumeratorOrArray;\r\n while (e.MoveNext()) {\r\n this.push(e.Current);\r\n }\r\n }\r\n }\r\n\r\n get_Item(index: number): T {\r\n if (isUndefined(this[index]))\r\n this[index] = null;\r\n return this[index];\r\n }\r\n\r\n set_Item(index: number, value: T): void {\r\n if (index >= 0 && index < this.length)\r\n this[index] = value;\r\n else\r\n throw new Error(\"index out of bounds\");\r\n }\r\n\r\n GetEnumerator(): Array_Enumerator<T> {\r\n return new Array_Enumerator<T>(this);\r\n }\r\n\r\n Remove(object: T): void {\r\n let index: number = this.indexOf(object);\r\n\r\n if (index > -1)\r\n this.RemoveAt(index);\r\n }\r\n\r\n RemoveAt(index: number): void {\r\n this.RemoveRange(index, 1);\r\n }\r\n\r\n RemoveRange(index: number, count: number): void {\r\n this.splice(index, count);\r\n }\r\n\r\n Insert(index: number, item: T): void {\r\n if (index >= 0 && index < this.length)\r\n this.splice(index, 0, item);\r\n else if (index === this.length) // inserting at end means append\r\n this.push(item);\r\n else\r\n throw new Error(\"index out of bounds\");\r\n }\r\n\r\n InsertRange(items: T[]): void {\r\n let idx: number = 0;\r\n while (idx < items.length) {\r\n this.Insert(idx, items[idx]);\r\n idx++;\r\n }\r\n }\r\n\r\n Clear(): void {\r\n this.splice(0, this.length);\r\n }\r\n\r\n ToArray(): T[] {\r\n return this.slice(0);\r\n }\r\n\r\n Contains(object: T): boolean {\r\n return this.indexOf(object) > -1;\r\n }\r\n\r\n find(predicate: (value: T, index: number, obj: T[]) => boolean): T {\r\n let foundItem = super.find(predicate);\r\n if (isUndefined(foundItem))\r\n foundItem = null;\r\n\r\n return foundItem;\r\n }\r\n\r\n /// <summary>\r\n /// add null cells up to 'size' cells.\r\n /// </summary>\r\n /// <param name=\"size\"></param>\r\n SetSize(size: number): void {\r\n if (this.length > size) {\r\n this.RemoveRange(size, this.length - size);\r\n }\r\n else\r\n this.length = size;\r\n }\r\n}\r\n","export const $EOF = 0;\r\nexport const $TAB = 9;\r\nexport const $LF = 10;\r\nexport const $VTAB = 11;\r\nexport const $FF = 12;\r\nexport const $CR = 13;\r\nexport const $SPACE = 32;\r\nexport const $BANG = 33;\r\nexport const $DQ = 34;\r\nexport const $HASH = 35;\r\nexport const $$ = 36;\r\nexport const $PERCENT = 37;\r\nexport const $AMPERSAND = 38;\r\nexport const $SQ = 39;\r\nexport const $LPAREN = 40;\r\nexport const $RPAREN = 41;\r\nexport const $STAR = 42;\r\nexport const $PLUS = 43;\r\nexport const $COMMA = 44;\r\nexport const $MINUS = 45;\r\nexport const $PERIOD = 46;\r\nexport const $SLASH = 47;\r\nexport const $COLON = 58;\r\nexport const $SEMICOLON = 59;\r\nexport const $LT = 60;\r\nexport const $EQ = 61;\r\nexport const $GT = 62;\r\nexport const $QUESTION = 63;\r\n\r\nexport const $0 = 48;\r\nexport const $9 = 57;\r\n\r\nexport const $A = 65;\r\nexport const $E = 69;\r\nexport const $F = 70;\r\nexport const $X = 88;\r\nexport const $Z = 90;\r\n\r\nexport const $LBRACKET = 91;\r\nexport const $BACKSLASH = 92;\r\nexport const $RBRACKET = 93;\r\nexport const $CARET = 94;\r\nexport const $_ = 95;\r\n\r\nexport const $a = 97;\r\nexport const $e = 101;\r\nexport const $f = 102;\r\nexport const $n = 110;\r\nexport const $r = 114;\r\nexport const $t = 116;\r\nexport const $u = 117;\r\nexport const $v = 118;\r\nexport const $x = 120;\r\nexport const $z = 122;\r\n\r\nexport const $LBRACE = 123;\r\nexport const $BAR = 124;\r\nexport const $RBRACE = 125;\r\nexport const $NBSP = 160;\r\n\r\nexport const $PIPE = 124;\r\nexport const $TILDA = 126;\r\nexport const $AT = 64;\r\n\r\nexport const $BT = 96;\r\n\r\nexport function isWhitespace(code: number): boolean {\r\n return (code >= $TAB && code <= $SPACE) || code === $NBSP;\r\n}\r\n\r\nexport function isDigit(code: number): boolean {\r\n return $0 <= code && code <= $9;\r\n}\r\n\r\nexport function isAsciiLetter(code: number): boolean {\r\n return (code >= $a && code <= $z) || (code >= $A && code <= $Z);\r\n}\r\n\r\nexport function isAsciiHexDigit(code: number): boolean {\r\n return (code >= $a && code <= $f) || (code >= $A && code <= $F) || isDigit(code);\r\n}\r\n\r\nexport function isLowerCase(str: string): boolean {\r\n return str === str.toLowerCase();\r\n}\r\nexport function isUpperCase(str: string): boolean {\r\n return str === str.toUpperCase();\r\n}\r\n","\r\n\r\nimport {isAsciiLetter, isDigit, isLowerCase, isUpperCase, isWhitespace} from \"./StringUtils\";\r\n\r\nexport class NChar {\r\n static IsWhiteSpace(str: string): boolean {\r\n let ch = str.charCodeAt(0);\r\n return isWhitespace(ch);\r\n }\r\n\r\n static IsLetterOrDigit(str: string): boolean {\r\n let ch = str.charCodeAt(0);\r\n return isDigit(ch) || isAsciiLetter(ch);\r\n }\r\n\r\n static IsDigit(str: string): boolean {\r\n let ch = str.charCodeAt(0);\r\n return isDigit(ch);\r\n }\r\n\r\n static IsLetter(ltr: string): boolean {\r\n return isAsciiLetter(ltr.charCodeAt(0));\r\n }\r\n\r\n static IsLower(ch: string): boolean {\r\n return isLowerCase(ch);\r\n }\r\n\r\n static IsUpper(ch: string): boolean {\r\n return isUpperCase(ch)\r\n }\r\n}\r\n","import {Exception} from \"./Exception\";\r\n\r\nexport class NotImplementedException extends Exception {\r\n constructor(message: string = \"Not implemented\") {\r\n super(message);\r\n }\r\n}\r\n","import {RefParam} from \"./RefParam\";\r\nimport {NotImplementedException} from \"./NotImplementedException\";\r\n\r\nexport enum NumberStyles {\r\n HexNumber\r\n}\r\n\r\nexport class NNumber {\r\n\r\n /// <summary>\r\n /// convert a string to number\r\n /// for blank string , it will return 0\r\n /// for incorrect format it will return NaN\r\n /// <summary>\r\n static Parse(text: string, style?: NumberStyles): number {\r\n if (arguments.length === 2) {\r\n if (style === NumberStyles.HexNumber)\r\n return parseInt(text, 16);\r\n else\r\n throw new NotImplementedException();\r\n }\r\n return +text; // use unary + operator to convert string to number.\r\n }\r\n\r\n\r\n /// <summary>\r\n /// convert a string to number\r\n /// return true if string is correctly parsed i.e pvalue.value is number\r\n /// for incorrect format it will return false\r\n /// <summary>\r\n static TryParse(str: string, pvalue: RefParam<number>): boolean {\r\n pvalue.value = +str;\r\n return !isNaN(pvalue.value);\r\n }\r\n\r\n /// <summary>\r\n /// convert a number to string with specified format\r\n /// <summary>\r\n static ToString(num: number, format: string): string {\r\n if (format === 'X2') {\r\n let res: string = num.toString(16);\r\n return res.length === 1 ? '0' + res : res;\r\n }\r\n throw new NotImplementedException();\r\n }\r\n}\r\n","\r\nimport {isNullOrUndefined} from \"./Utils\";\r\nimport {Exception} from \"./Exception\";\r\n\r\n\r\n// @dynamic\r\nexport class NString {\r\n static Empty = \"\";\r\n\r\n static IndexOf(str: string, searchStr: any, startIndex: number, count: number): number {\r\n let index: number = str.substr(startIndex, count).indexOf(searchStr);\r\n return index > -1 ? startIndex + index : index;\r\n }\r\n\r\n static IndexOfAny(str: string, subs: string[], startIndex: number, count: number): number {\r\n for (let i = 0; i < count; ++i) {\r\n let c = str.charAt(startIndex + i);\r\n for (let j = 0; j < subs.length; ++j) {\r\n if (c === subs[j])\r\n return (startIndex + i);\r\n }\r\n }\r\n return -1;\r\n }\r\n\r\n static CopyTo(source: string, sourceIndex: number, destination: string[], destinationIndex: number, count: number) {\r\n for (let i = 0; i < count; i++) {\r\n destination[destinationIndex + i] = source[sourceIndex + i];\r\n }\r\n }\r\n\r\n static Compare(strA: string, strB: string, ignoreCase: boolean): number\r\n static Compare(strA: string, strB: string, ignoreCase: boolean, indexA: number, indexB: number, length: number): number\r\n static Compare(strA: string, strB: string, ignoreCase: boolean, indexA?: number, indexB?: number, length?: number): number {\r\n if (arguments.length = 6) {\r\n strA = strA.substr(indexA, length);\r\n strB = strB.substr(indexB, length);\r\n }\r\n if (ignoreCase) {\r\n strA = strA.toLowerCase();\r\n strB = strB.toLowerCase();\r\n }\r\n return strA.localeCompare(strB);\r\n }\r\n\r\n\r\n static Equals(strA: string, strB: string, ignoreCase: boolean): boolean {\r\n if (!NString.IsNullOrEmpty(strA) && !NString.IsNullOrEmpty(strB)) {\r\n if (ignoreCase) {\r\n strA = strA.toLowerCase();\r\n strB = strB.toLowerCase();\r\n }\r\n return strA === strB;\r\n }\r\n return false;\r\n }\r\n\r\n static GetHashCode(str: string): number {\r\n var hash = 0, i, l, ch;\r\n if (str.length === 0) return hash;\r\n for (i = 0, l = str.length; i < l; i++) {\r\n ch = str.charCodeAt(i);\r\n hash = ((hash << 5) - hash) + ch;\r\n hash |= 0; // Convert to 32bit integer\r\n }\r\n return hash;\r\n }\r\n\r\n\r\n static Remove(str: string, startIndex: number, length: number): string {\r\n return str.substr(0, startIndex - 1) + str.substr(startIndex + length - 1);\r\n }\r\n\r\n static TrimStart(str: string): string {\r\n return str.replace(/^\\s\\s*/, '')\r\n }\r\n\r\n static TrimEnd(string: string, trimChars?: string[]): string {\r\n if (arguments.length === 1)\r\n return string.replace(/\\s\\s*$/, '');\r\n\r\n for (let j = 0; j < trimChars.length; j++) {\r\n let trimChar = trimChars[j];\r\n let i = string.length - 1;\r\n while (!isNullOrUndefined(string[i]) && string[i].endsWith(trimChar)) {\r\n string = NString.Remove(string, string.length, 1);\r\n i--;\r\n }\r\n }\r\n return string;\r\n }\r\n\r\n static Format(format: string, arg0: any, arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any): string {\r\n if (!isNullOrUndefined(arg0) && arg0.constructor === Array) {\r\n var s = format,\r\n i = arg0.length;\r\n while (i--) {\r\n s = s.replace(new RegExp('\\\\{' + i + '\\\\}', 'gm'), arg0[i]);\r\n }\r\n return s;\r\n }\r\n else {\r\n var args = [arg0, arg1, arg2, arg3, arg4, arg5];\r\n return NString.Format(format, args);\r\n }\r\n }\r\n\r\n static IsNullOrEmpty(str1: string | NString): boolean {\r\n return !str1;\r\n }\r\n\r\n static FromChars(chOrChars: string[])\r\n static FromChars(chOrChars: string[], startIndex: number, len: number)\r\n static FromChars(chOrChars: string[], startIndex?: number, len?: number) {\r\n let str: string = chOrChars.join('');\r\n if (arguments.length === 3)\r\n return str.substr(startIndex, len);\r\n return str;\r\n }\r\n\r\n static FromChar(ch: string, count): string {\r\n return (new Array<string>(count).fill(<string>ch)).join('');\r\n }\r\n\r\n static ToCharArray(str: string): string[] {\r\n return Array.from(str);\r\n }\r\n\r\n static CompareOrdinal(strA: string, strB: string): number {\r\n let lenA = strA.length;\r\n let lenB = strB.length;\r\n\r\n let len = Math.min(lenA, lenB);\r\n\r\n // compare character by character\r\n for (let i = 0; i < len; i++) {\r\n if (strA[i].charCodeAt(0) !== strB[i].charCodeAt(0)) {\r\n return strA[i].charCodeAt(0) - strB[i].charCodeAt(0);\r\n }\r\n }\r\n\r\n // if all characters are same , but length is different return the difference of length\r\n if (lenA !== lenB) {\r\n return lenA - lenB;\r\n }\r\n\r\n // all chars are same , so strings are equal\r\n return 0;\r\n }\r\n\r\n static PadRight(source: string, maxLength: number, fillString?: string): string {\r\n if (source.length >= maxLength)\r\n return source;\r\n\r\n let fillLen = maxLength - source.length;\r\n let timesToRepeat = Math.ceil(fillLen / fillString.length);\r\n let truncatedStringFiller = fillString.repeat(timesToRepeat).slice(0, fillLen);\r\n return source + truncatedStringFiller;\r\n }\r\n\r\n static Insert(str: string, index: number, ch: string): string {\r\n return str.substr(0, index) + ch + str.substr(index, str.length - index);\r\n }\r\n\r\n static Replace(str:string, orgSubStr: string, newSubStr: string): string {\r\n let resultStr:string = '';\r\n\r\n // fixed defect 151810: replace \"*\" with \"\\*\" before we update the string so * will be as char and not reg exp\r\n // also for special chars $ ^ . ? + , [\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\\\\\\", 'g'), \"\\\\\\\\\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\*\",'g'), \"\\\\\\*\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\$\",'g'), \"\\\\\\$\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\^\",'g'), \"\\\\\\^\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\.\",'g'), \"\\\\\\.\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\?\",'g'), \"\\\\\\?\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\+\",'g'), \"\\\\\\+\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\,\",'g'), \"\\\\\\,\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\[\",'g'), \"\\\\\\[\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\|\",'g'), \"\\\\\\|\");\r\n\r\n try {\r\n resultStr = str.replace(new RegExp(orgSubStr,'g'), newSubStr);\r\n }\r\n catch (e) {\r\n throw new Exception(e.message);\r\n }\r\n return resultStr;\r\n }\r\n}\r\n","export class NumberFormatInfo {\r\n public static readonly NegativeSign: string = '-';\r\n\r\n public static readonly NumberDecimalSeparator: string = NumberFormatInfo.GetLocaleDecimalSeperator();\r\n\r\n private static GetLocaleDecimalSeperator(): string {\r\n return (1.1).toLocaleString()[1]; // get the decimal seperator of current locale\r\n }\r\n}\r\n","export class RefParam<T> {\r\n value: T;\r\n\r\n constructor(value: T) {\r\n this.value = value;\r\n }\r\n}\r\n","export class Stack<TData> {\r\n\r\n private _array: Array<TData>;\r\n\r\n constructor() {\r\n this._array = new Array<TData>();\r\n }\r\n\r\n public count(): number {\r\n return this._array.length;\r\n }\r\n\r\n public isEmpty(): boolean {\r\n return this._array.length === 0;\r\n }\r\n\r\n public push(value: TData): void {\r\n this._array.push(value);\r\n }\r\n\r\n public pop(): TData {\r\n return this._array.pop();\r\n }\r\n\r\n public peek(): TData {\r\n if (this._array.length > 0) {\r\n return this._array[this._array.length - 1];\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public Clear(): void {\r\n this._array.splice(0, this._array.length);\r\n }\r\n\r\n public Clone(): Stack<TData> {\r\n let clone: Stack<TData> = new Stack<TData>();\r\n clone._array = this._array.slice();\r\n return clone;\r\n }\r\n}\r\n","import * as StackTrace from 'stacktrace-js';\r\nimport JSStackFrame = StackTrace.StackFrame;\r\n\r\n// StackFrame uses StackTrace utility using stacktrace-js utility from npm\r\n// https://www.npmjs.com/package/stacktrace-js\r\nexport class StackFrame {\r\n private stackFrame: JSStackFrame = null;\r\n\r\n constructor(skipFrames: number) {\r\n\r\n let stackFrames: JSStackFrame[] = StackTrace.getSync();\r\n if (skipFrames < 0 || skipFrames >= stackFrames.length)\r\n throw new Error(\"Argument out of range\");\r\n\r\n this.stackFrame = stackFrames[skipFrames];\r\n }\r\n\r\n public GetFileName(): string {\r\n return this.stackFrame.fileName;\r\n }\r\n}\r\n","import * as JSStackTrace from 'stacktrace-js';\r\nimport JSStackFrame = JSStackTrace.StackFrame;\r\n\r\n// This uses StackTrace utility using stacktrace-js utility from npm. Use this in package.json\r\n// https://www.npmjs.com/package/stacktrace-js\r\nexport class StackTrace {\r\n GetFrames(): JSStackFrame[] {\r\n // Using getSync() method, it returns references of callstack ethod from the javascript files bindled and not typeScript file from sources.\r\n // However, if aSync method would have used, it overcomes above problems but the call to log would have been async and we would not have\r\n // received synchronous logs which would be confusing.\r\n return JSStackTrace.getSync();\r\n }\r\n}\r\n","import {Debug} from \"./Debug\";\r\nimport {NString} from \"./NString\";\r\n\r\n// StringBuilder class. Its Implementation currently uses string object. It could have been string[], but it has issues when inserting string.\r\n// It would not have served purpose while inserting a string. Other could be to use string[] with one chraracter per string. Even its utility\r\n// is doubtful as while manipulation, it would be creting new objects instead pointers. So for now we have used only string and see if we have\r\n// any performance issues.\r\nexport class StringBuilder {\r\n private part: string = \"\";\r\n\r\n // Ctor\r\n constructor(length?: number)\r\n constructor(value?: string, length?: number)\r\n constructor(valueOrLength?: any, length?: number) {\r\n if (arguments.length > 0) {\r\n if (valueOrLength != null && valueOrLength.constructor === Number) {\r\n // TODO: Very low priority performance improvement - Implement this.\r\n // Debug.Assert(false, \"StringBuilder: NotImplemented constructor with initial length/capacity\");\r\n // throw new Error(\"NotImplemented constructor with initial length/capacity\");\r\n }\r\n else if (valueOrLength != null && valueOrLength.constructor === String) {\r\n this.part = valueOrLength.toString();\r\n // TODO: Very low priority performance improvement - Implement this.\r\n // if (arguments.length === 2)\r\n // Debug.Assert(false, \"NotImplemented constructor with initial length/capacity\");\r\n }\r\n }\r\n }\r\n\r\n // Appends string/number\r\n Append(num: number, numberOfCharacters?: number): StringBuilder;\r\n Append(text: string): StringBuilder;\r\n Append(text: string, numberOfCharacters: number): StringBuilder;\r\n Append(text: string, startIndex: number, charCount: number): StringBuilder;\r\n Append(textOrNum: any, startIndexOrNumberOfCharacters?: number, charCount?: number): StringBuilder {\r\n\r\n if (textOrNum === null)\r\n return this;\r\n\r\n if (textOrNum.constructor === String) {\r\n if (arguments.length === 1)\r\n this.AppendString(textOrNum.toString());\r\n else if (arguments.length === 2) {\r\n Debug.Assert(textOrNum.length === 1, \"character is expected not string\");\r\n this.AppendString(textOrNum.charAt(0).repeat(startIndexOrNumberOfCharacters));\r\n }\r\n else\r\n this.AppendString(textOrNum.toString(), startIndexOrNumberOfCharacters, charCount);\r\n }\r\n else\r\n this.AppendNumber(textOrNum, startIndexOrNumberOfCharacters);\r\n\r\n return this;\r\n }\r\n\r\n // Append string\r\n private AppendString(text: string, startIndex: number = 0, charCount: number = text.length): void {\r\n this.part = this.part + text.substr(startIndex, charCount);\r\n }\r\n\r\n // Append Number\r\n private AppendNumber(num: number, numberOfCharacters: number = 1): void {\r\n if (numberOfCharacters <= 0)\r\n throw new Error(\"numberOfCharacters cannot be less than or equal to zero\");\r\n\r\n this.part = this.part + num.toString().repeat(numberOfCharacters);\r\n }\r\n\r\n // Append Line\r\n AppendLine(text: string = null): void {\r\n if (text !== null)\r\n this.part = this.part + text;\r\n this.part = this.part + '\\n';\r\n }\r\n\r\n // Append Formatted string\r\n AppendFormat(format: string, arg0: any): StringBuilder\r\n AppendFormat(format: string, arg0: any, arg1: any): StringBuilder\r\n AppendFormat(format: string, arg0: any, arg1: any, arg2: any): StringBuilder\r\n AppendFormat(format: string, arg0: any, arg1?: any, arg2?: any): StringBuilder {\r\n this.part = this.part + NString.Format(format, arg0, arg1, arg2);\r\n return this;\r\n }\r\n\r\n // Convert to string\r\n ToString(): string;\r\n ToString(startIndex: number, length: number): string;\r\n ToString(startIndex ?: number, length ?: number): string {\r\n if (arguments.length === 2) {\r\n if (startIndex < 0 || length < 0 || (startIndex + length) > this.part.length)\r\n throw new Error(\"Argument out of range\");\r\n\r\n return this.part.substr(startIndex, length);\r\n }\r\n return this.part;\r\n }\r\n\r\n get Length(): number {\r\n return this.part.length;\r\n }\r\n\r\n get_Item(index: number): string {\r\n if (index < 0 || index >= this.part.length)\r\n throw new Error(\"Index out of range\");\r\n\r\n return this.part.charAt(index);\r\n }\r\n\r\n set_Item(index: number, value: string) {\r\n if (index < 0 || index >= this.part.length)\r\n throw new Error(\"Index out of range\");\r\n\r\n Debug.Assert(value.length <= 1, \"Length of string cannot be more than 1. Only character is expected\");\r\n let leftPart: string = this.part.substring(0, index);\r\n let rightPart: string = this.part.substring(index + 1, this.part.length);\r\n this.part = leftPart + value.charAt(0) + rightPart;\r\n }\r\n\r\n Insert(index: number, value: string): StringBuilder {\r\n if (index < 0 || index > this.part.length)\r\n throw new Error(\"Argument out of range\");\r\n\r\n let leftPart: string = this.part.substring(0, index);\r\n let rightPart: string = this.part.substring(index, this.part.length);\r\n this.part = leftPart + value + rightPart;\r\n\r\n return this;\r\n }\r\n\r\n Remove(startIndex: number, length: number): StringBuilder {\r\n if (startIndex < 0 || length < 0 || (startIndex + length) > this.part.length)\r\n throw new Error(\"Argument out of range\");\r\n\r\n let leftPart: string = this.part.substring(0, startIndex);\r\n let rightPart: string = this.part.substring(startIndex + length, this.part.length);\r\n this.part = leftPart + rightPart;\r\n\r\n return this;\r\n }\r\n\r\n Replace(oldValue: string, newValue: string): StringBuilder;\r\n Replace(oldValue: string, newValue: string, startIndex: number, count: number): StringBuilder;\r\n Replace(oldValue: string, newValue: string, startIndex?: number, count?: number): StringBuilder {\r\n if (oldValue === null)\r\n throw new Error(\"oldValue cannot be null\");\r\n else if (oldValue.length === 0)\r\n throw new Error(\"Length of oldValue cannot be 0\");\r\n\r\n if (arguments.length === 4) {\r\n if (startIndex < 0 || count < 0 || (startIndex + count) > this.part.length)\r\n throw new Error(\"Argument out of range\");\r\n }\r\n\r\n if (arguments.length === 2)\r\n this.part = this.part.replace(new RegExp(oldValue, 'g'), newValue);\r\n else if (arguments.length === 4) {\r\n let substr: string = this.part.substring(startIndex, startIndex + count);\r\n substr = substr.replace(new RegExp(oldValue, 'g'), newValue);\r\n\r\n let leftPart: string = this.part.substring(0, startIndex);\r\n let rightPart: string = this.part.substring(startIndex + count, this.part.length);\r\n this.part = leftPart + substr + rightPart;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n // return the string\r\n toString(): string {\r\n return this.ToString();\r\n }\r\n}\r\n","import {interval} from 'rxjs';\r\n\r\nexport class Thread {\r\n private static nextId: number = 1;\r\n static CurrentThread: Thread = new Thread();\r\n ManagedThreadId: number = 0;\r\n\r\n constructor() {\r\n this.ManagedThreadId = Thread.nextId++;\r\n }\r\n\r\n /// <summary>\r\n /// Free the thread so it will be able to do other work, like gui events\r\n /// </summary>\r\n /// <param name = \"millisecondsTimeout\"> timeout in milliseconds</param>\r\n\r\n public static async Sleep(millisecondsTimeout: number): Promise<void>\r\n {\r\n await new Promise<void>((resolve) => {\r\n let timer = interval(millisecondsTimeout);\r\n let subscription = timer.subscribe( () => {subscription.unsubscribe(); resolve();});\r\n }).then();\r\n }\r\n}\r\n","import {Exception} from \"./Exception\";\r\n\r\nexport class WebException extends Exception {\r\n constructor(error: Error) {\r\n super();\r\n this.name = \"WebException\";\r\n this.stack = error.stack;\r\n this.message = error.message;\r\n }\r\n}\r\n","import {NotImplementedException} from \"./NotImplementedException\";\r\n\r\nexport class XmlConvert {\r\n // TODO : Implement\r\n static EncodeName(name: string): string {\r\n throw new NotImplementedException();\r\n }\r\n}\r\n"],"names":["StackTrace","JSStackTrace"],"mappings":"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"}
|