@seniorsistemas/angular-components 14.5.0 → 14.7.1
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/bundles/seniorsistemas-angular-components.umd.js +140 -76
- package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
- package/bundles/seniorsistemas-angular-components.umd.min.js +2 -2
- package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
- package/components/dynamic-form/components/lookup/lookup.component.d.ts +3 -0
- package/components/locale/pipes/localized-bignumber-impure.pipe.d.ts +6 -0
- package/components/locale/pipes/localized-bignumber.pipe.d.ts +9 -0
- package/components/locale/pipes/localized-currency-impure.pipe.d.ts +3 -0
- package/components/locale/pipes/localized-currency.pipe.d.ts +3 -0
- package/components/locale/pipes/localized-number.pipe.d.ts +3 -0
- package/components/stats-card/stats-card.component.d.ts +2 -1
- package/components/table/table-column/table-columns.component.d.ts +1 -1
- package/esm2015/components/dynamic-form/components/lookup/lookup.component.js +13 -3
- package/esm2015/components/dynamic-form/configurations/fields/bignumber-field.js +3 -2
- package/esm2015/components/locale/locale.module.js +9 -1
- package/esm2015/components/locale/pipes/localized-bignumber-impure.pipe.js +16 -0
- package/esm2015/components/locale/pipes/localized-bignumber.pipe.js +38 -0
- package/esm2015/components/locale/pipes/localized-currency-impure.pipe.js +4 -1
- package/esm2015/components/locale/pipes/localized-currency.pipe.js +4 -1
- package/esm2015/components/locale/pipes/localized-number.pipe.js +4 -1
- package/esm2015/components/stats-card/stats-card.component.js +21 -19
- package/esm2015/components/table/table-column/table-columns.component.js +11 -20
- package/esm2015/seniorsistemas-angular-components.js +34 -32
- package/esm5/components/dynamic-form/components/lookup/lookup.component.js +13 -3
- package/esm5/components/dynamic-form/configurations/fields/bignumber-field.js +3 -2
- package/esm5/components/locale/locale.module.js +9 -1
- package/esm5/components/locale/pipes/localized-bignumber-impure.pipe.js +21 -0
- package/esm5/components/locale/pipes/localized-bignumber.pipe.js +39 -0
- package/esm5/components/locale/pipes/localized-currency-impure.pipe.js +4 -1
- package/esm5/components/locale/pipes/localized-currency.pipe.js +4 -1
- package/esm5/components/locale/pipes/localized-number.pipe.js +4 -1
- package/esm5/components/stats-card/stats-card.component.js +20 -19
- package/esm5/components/table/table-column/table-columns.component.js +11 -21
- package/esm5/seniorsistemas-angular-components.js +34 -32
- package/fesm2015/seniorsistemas-angular-components.js +100 -42
- package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
- package/fesm5/seniorsistemas-angular-components.js +105 -43
- package/fesm5/seniorsistemas-angular-components.js.map +1 -1
- package/package.json +2 -2
- package/seniorsistemas-angular-components.d.ts +33 -31
- package/seniorsistemas-angular-components.metadata.json +1 -1
|
@@ -3,6 +3,9 @@ import { Pipe } from "@angular/core";
|
|
|
3
3
|
import { from } from "rxjs";
|
|
4
4
|
import { map } from "rxjs/operators";
|
|
5
5
|
import { LocaleService } from "../locale.service";
|
|
6
|
+
/**
|
|
7
|
+
* @deprecated Should use localizedBignumberPipe instead
|
|
8
|
+
*/
|
|
6
9
|
let LocalizedNumberPipe = class LocalizedNumberPipe {
|
|
7
10
|
constructor(localeService) {
|
|
8
11
|
this.localeService = localeService;
|
|
@@ -25,4 +28,4 @@ LocalizedNumberPipe = __decorate([
|
|
|
25
28
|
Pipe({ name: "localizedNumber" })
|
|
26
29
|
], LocalizedNumberPipe);
|
|
27
30
|
export { LocalizedNumberPipe };
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemVkLW51bWJlci5waXBlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvbG9jYWxlL3BpcGVzL2xvY2FsaXplZC1udW1iZXIucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxEOztHQUVHO0FBRUgsSUFBYSxtQkFBbUIsR0FBaEMsTUFBYSxtQkFBbUI7SUFDNUIsWUFBb0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFBRyxDQUFDO0lBRXBELFNBQVMsQ0FBQyxLQUFzQixFQUFFLHFCQUE4QjtRQUM1RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUM1QyxHQUFHLENBQUMsQ0FBQyxNQUFjLEVBQUUsRUFBRTtZQUNuQixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFbkMsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDO2dCQUFFLE9BQU87WUFFMUMsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO2dCQUNqQyxxQkFBcUIsRUFBRSxxQkFBcUIsSUFBSSxDQUFDO2FBQ3BELENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7Q0FDSixDQUFBOztZQWZzQyxhQUFhOztBQUR2QyxtQkFBbUI7SUFEL0IsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUM7R0FDckIsbUJBQW1CLENBZ0IvQjtTQWhCWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IGZyb20gfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBMb2NhbGVTZXJ2aWNlIH0gZnJvbSBcIi4uL2xvY2FsZS5zZXJ2aWNlXCI7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgU2hvdWxkIHVzZSBsb2NhbGl6ZWRCaWdudW1iZXJQaXBlIGluc3RlYWRcbiAqL1xuQFBpcGUoeyBuYW1lOiBcImxvY2FsaXplZE51bWJlclwiIH0pXG5leHBvcnQgY2xhc3MgTG9jYWxpemVkTnVtYmVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9jYWxlU2VydmljZTogTG9jYWxlU2VydmljZSkge31cblxuICAgIHRyYW5zZm9ybSh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBtaW5pbXVtRnJhY3Rpb25EaWdpdHM/OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5sb2NhbGVTZXJ2aWNlLmdldExvY2FsZSgpKS5waXBlKFxuICAgICAgICAgICAgbWFwKChsb2NhbGU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG51bWVyaWNWYWx1ZSA9IE51bWJlcih2YWx1ZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXZhbHVlICYmIGlzTmFOKG51bWVyaWNWYWx1ZSkpIHJldHVybjtcblxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQobG9jYWxlLCB7XG4gICAgICAgICAgICAgICAgICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0czogbWluaW11bUZyYWN0aW9uRGlnaXRzIHx8IDAsXG4gICAgICAgICAgICAgICAgfSkuZm9ybWF0KE51bWJlcih2YWx1ZSkpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYWxlIHtcbiAgICBsb2NhbGlkYWRlPzogc3RyaW5nO1xuICAgIHRlbmFudExvY2FsZT86IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
var StatsCardComponent_1;
|
|
2
2
|
import { __decorate } from "tslib";
|
|
3
3
|
import { Component, Input, ViewEncapsulation, Output, EventEmitter } from "@angular/core";
|
|
4
|
+
import { BigNumber } from "bignumber.js";
|
|
4
5
|
let StatsCardComponent = StatsCardComponent_1 = class StatsCardComponent {
|
|
5
6
|
constructor() {
|
|
6
7
|
this.id = `s-stats-card-${StatsCardComponent_1.nextId++}`;
|
|
@@ -29,42 +30,43 @@ let StatsCardComponent = StatsCardComponent_1 = class StatsCardComponent {
|
|
|
29
30
|
return this._value;
|
|
30
31
|
}
|
|
31
32
|
updateDisplayValue() {
|
|
32
|
-
const previousRawValue =
|
|
33
|
-
const rawValue =
|
|
34
|
-
const
|
|
35
|
-
const
|
|
33
|
+
const previousRawValue = new BigNumber(this.previousValue.replace(/\D/g, ""));
|
|
34
|
+
const rawValue = new BigNumber(this.value.replace(/\D/g, ""));
|
|
35
|
+
const eachAnimationDuration = new BigNumber(this.ANIMATION_DURATION_MS).dividedBy(new BigNumber(this.STEP_DURATION_MS));
|
|
36
|
+
const incrementValue = rawValue.minus(previousRawValue).absoluteValue().dividedBy(eachAnimationDuration).dp(0, 7);
|
|
37
|
+
const incremental = previousRawValue.isLessThan(rawValue);
|
|
36
38
|
clearInterval(this.intervalId);
|
|
37
39
|
this.displayValue = this.replaceNumericPositions(this.value);
|
|
38
40
|
let counter = previousRawValue;
|
|
39
41
|
this.intervalId = setInterval(() => {
|
|
40
|
-
if (incremental && counter
|
|
41
|
-
this.displayValue = this.replaceNumericPositions(this.displayValue,
|
|
42
|
-
counter
|
|
42
|
+
if (incremental && counter.isLessThan(rawValue)) {
|
|
43
|
+
this.displayValue = this.replaceNumericPositions(this.displayValue, counter);
|
|
44
|
+
counter = counter.plus(incrementValue);
|
|
43
45
|
}
|
|
44
|
-
else if (incremental) {
|
|
45
|
-
this.displayValue = this.
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
else if (!incremental && counter > rawValue) {
|
|
49
|
-
this.displayValue = this.replaceNumericPositions(this.displayValue, String(counter));
|
|
50
|
-
counter -= incrementValue;
|
|
46
|
+
else if (!incremental && counter.isGreaterThan(rawValue)) {
|
|
47
|
+
this.displayValue = this.replaceNumericPositions(this.displayValue, counter);
|
|
48
|
+
counter = counter.minus(incrementValue);
|
|
51
49
|
}
|
|
52
|
-
else
|
|
50
|
+
else {
|
|
53
51
|
this.displayValue = this.value;
|
|
54
52
|
clearInterval(this.intervalId);
|
|
55
53
|
}
|
|
56
54
|
}, this.STEP_DURATION_MS);
|
|
57
55
|
}
|
|
58
|
-
replaceNumericPositions(value, newValue
|
|
56
|
+
replaceNumericPositions(value, newValue) {
|
|
59
57
|
const rawValue = value.replace(/[^\d]/g, "");
|
|
60
|
-
const newValueString = newValue.
|
|
58
|
+
const newValueString = newValue ? newValue.toString() : "";
|
|
59
|
+
const formattedNewValue = newValueString
|
|
60
|
+
.toString()
|
|
61
|
+
.replace(/\D/g, "")
|
|
62
|
+
.padStart(rawValue.length, "0");
|
|
61
63
|
let newValueIndex = 0;
|
|
62
64
|
return value
|
|
63
65
|
.split("")
|
|
64
66
|
.map(char => {
|
|
65
67
|
const number = Number(char);
|
|
66
68
|
if (number || char === "0")
|
|
67
|
-
return
|
|
69
|
+
return formattedNewValue[newValueIndex++];
|
|
68
70
|
return char;
|
|
69
71
|
})
|
|
70
72
|
.join("");
|
|
@@ -113,4 +115,4 @@ StatsCardComponent = StatsCardComponent_1 = __decorate([
|
|
|
113
115
|
})
|
|
114
116
|
], StatsCardComponent);
|
|
115
117
|
export { StatsCardComponent };
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHMtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9zdGF0cy1jYXJkL3N0YXRzLWNhcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBUXpDLElBQWEsa0JBQWtCLDBCQUEvQixNQUFhLGtCQUFrQjtJQUEvQjtRQUlXLE9BQUUsR0FBRyxnQkFBZ0Isb0JBQWtCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQU1uRCxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUdyQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBR2pCLGNBQVMsR0FBRyxpQkFBaUIsQ0FBQztRQUc5QixVQUFLLEdBQUcsU0FBUyxDQUFDO1FBR2xCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBR3RCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFXbEIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQU9iLFlBQU8sR0FBNkIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUl0RCwwQkFBcUIsR0FBRyxHQUFHLENBQUM7UUFDNUIscUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLGtCQUFhLEdBQUcsR0FBRyxDQUFDO1FBRXBCLFdBQU0sR0FBRyxHQUFHLENBQUM7SUE2Q3pCLENBQUM7SUFwRUcsSUFBVyxLQUFLLENBQUMsS0FBYTtRQUMxQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxJQUFJLENBQUMsY0FBYztZQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDOztZQUM5QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDeEMsQ0FBQztJQUtELElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBYU8sa0JBQWtCO1FBQ3RCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUUsTUFBTSxRQUFRLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUQsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztRQUN4SCxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsSCxNQUFNLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFMUQsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0QsSUFBSSxPQUFPLEdBQUcsZ0JBQWdCLENBQUM7UUFFL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQy9CLElBQUksV0FBVyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQzdDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQzdFLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQzFDO2lCQUFNLElBQUksQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDeEQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDN0UsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDM0M7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUMvQixhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ2xDO1FBQ0wsQ0FBQyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxLQUFhLEVBQUUsUUFBb0I7UUFDOUQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDN0MsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMzRCxNQUFNLGlCQUFpQixHQUFHLGNBQWM7YUFDbkMsUUFBUSxFQUFFO2FBQ1YsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7YUFDbEIsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEMsSUFBSSxhQUFhLEdBQUcsQ0FBQyxDQUFDO1FBRXRCLE9BQU8sS0FBSzthQUNQLEtBQUssQ0FBQyxFQUFFLENBQUM7YUFDVCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDUixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUIsSUFBSSxNQUFNLElBQUksSUFBSSxLQUFLLEdBQUc7Z0JBQUUsT0FBTyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQ3RFLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUMsQ0FBQzthQUNELElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsQixDQUFDO0NBQ0osQ0FBQTtBQS9GaUIseUJBQU0sR0FBRyxDQUFDLENBQUM7QUFHekI7SUFEQyxLQUFLLEVBQUU7OENBQ2tEO0FBRzFEO0lBREMsS0FBSyxFQUFFO2lEQUNhO0FBR3JCO0lBREMsS0FBSyxFQUFFO3dEQUNvQjtBQUc1QjtJQURDLEtBQUssRUFBRTtxREFDZ0I7QUFHeEI7SUFEQyxLQUFLLEVBQUU7cURBQzZCO0FBR3JDO0lBREMsS0FBSyxFQUFFO2lEQUNpQjtBQUd6QjtJQURDLEtBQUssRUFBRTswREFDcUI7QUFHN0I7SUFEQyxLQUFLLEVBQUU7cURBQ2lCO0FBR3pCO0lBREMsS0FBSyxFQUFFOytDQU1QO0FBR0Q7SUFEQyxLQUFLLEVBQUU7bURBQ1k7QUFPcEI7SUFEQyxNQUFNLEVBQUU7bURBQ3FEO0FBM0NyRCxrQkFBa0I7SUFOOUIsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLGNBQWM7UUFDeEIsOGdFQUEwQztRQUUxQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTs7S0FDeEMsQ0FBQztHQUNXLGtCQUFrQixDQWdHOUI7U0FoR1ksa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24sIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEJpZ051bWJlciB9IGZyb20gXCJiaWdudW1iZXIuanNcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicy1zdGF0cy1jYXJkXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9zdGF0cy1jYXJkLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL3N0YXRzLWNhcmQuY29tcG9uZW50LnNjc3NcIl0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgU3RhdHNDYXJkQ29tcG9uZW50IHtcbiAgICBwdWJsaWMgc3RhdGljIG5leHRJZCA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZCA9IGBzLXN0YXRzLWNhcmQtJHtTdGF0c0NhcmRDb21wb25lbnQubmV4dElkKyt9YDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsaWdodFZlcnNpb24gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxpZ2h0TW9kZSA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpY29uQ2xhc3MgPSBcImZhIGZhLWJhci1jaGFydFwiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29sb3IgPSBcIiMzMzk5NjZcIjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFuaW1hdGVOdW1iZXJzID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNsaWNrYWJsZSA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5wcmV2aW91c1ZhbHVlID0gdGhpcy5fdmFsdWU7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMuYW5pbWF0ZU51bWJlcnMpIHRoaXMudXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gICAgICAgIGVsc2UgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHRvb2x0aXAgPSBcIlwiO1xuXG4gICAgcHVibGljIGdldCB2YWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgZGlzcGxheVZhbHVlOiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIEFOSU1BVElPTl9EVVJBVElPTl9NUyA9IDIwMDtcbiAgICBwcml2YXRlIFNURVBfRFVSQVRJT05fTVMgPSAyMDtcbiAgICBwcml2YXRlIHByZXZpb3VzVmFsdWUgPSBcIjBcIjtcbiAgICBwcml2YXRlIGludGVydmFsSWQ6IGFueTtcbiAgICBwcml2YXRlIF92YWx1ZSA9IFwiMFwiO1xuXG4gICAgcHJpdmF0ZSB1cGRhdGVEaXNwbGF5VmFsdWUoKSB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzUmF3VmFsdWUgPSBuZXcgQmlnTnVtYmVyKHRoaXMucHJldmlvdXNWYWx1ZS5yZXBsYWNlKC9cXEQvZywgXCJcIikpO1xuICAgICAgICBjb25zdCByYXdWYWx1ZSA9IG5ldyBCaWdOdW1iZXIodGhpcy52YWx1ZS5yZXBsYWNlKC9cXEQvZywgXCJcIikpO1xuICAgICAgICBjb25zdCBlYWNoQW5pbWF0aW9uRHVyYXRpb24gPSBuZXcgQmlnTnVtYmVyKHRoaXMuQU5JTUFUSU9OX0RVUkFUSU9OX01TKS5kaXZpZGVkQnkobmV3IEJpZ051bWJlcih0aGlzLlNURVBfRFVSQVRJT05fTVMpKTtcbiAgICAgICAgY29uc3QgaW5jcmVtZW50VmFsdWUgPSByYXdWYWx1ZS5taW51cyhwcmV2aW91c1Jhd1ZhbHVlKS5hYnNvbHV0ZVZhbHVlKCkuZGl2aWRlZEJ5KGVhY2hBbmltYXRpb25EdXJhdGlvbikuZHAoMCwgNyk7XG4gICAgICAgIGNvbnN0IGluY3JlbWVudGFsID0gcHJldmlvdXNSYXdWYWx1ZS5pc0xlc3NUaGFuKHJhd1ZhbHVlKTtcblxuICAgICAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxJZCk7XG4gICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5yZXBsYWNlTnVtZXJpY1Bvc2l0aW9ucyh0aGlzLnZhbHVlKTtcbiAgICAgICAgbGV0IGNvdW50ZXIgPSBwcmV2aW91c1Jhd1ZhbHVlO1xuXG4gICAgICAgIHRoaXMuaW50ZXJ2YWxJZCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgIGlmIChpbmNyZW1lbnRhbCAmJiBjb3VudGVyLmlzTGVzc1RoYW4ocmF3VmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLnJlcGxhY2VOdW1lcmljUG9zaXRpb25zKHRoaXMuZGlzcGxheVZhbHVlLCBjb3VudGVyKTtcbiAgICAgICAgICAgICAgICBjb3VudGVyID0gY291bnRlci5wbHVzKGluY3JlbWVudFZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIWluY3JlbWVudGFsICYmIGNvdW50ZXIuaXNHcmVhdGVyVGhhbihyYXdWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMucmVwbGFjZU51bWVyaWNQb3NpdGlvbnModGhpcy5kaXNwbGF5VmFsdWUsIGNvdW50ZXIpO1xuICAgICAgICAgICAgICAgIGNvdW50ZXIgPSBjb3VudGVyLm1pbnVzKGluY3JlbWVudFZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbElkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgdGhpcy5TVEVQX0RVUkFUSU9OX01TKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVwbGFjZU51bWVyaWNQb3NpdGlvbnModmFsdWU6IHN0cmluZywgbmV3VmFsdWU/OiBCaWdOdW1iZXIpIHtcbiAgICAgICAgY29uc3QgcmF3VmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9bXlxcZF0vZywgXCJcIik7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlU3RyaW5nID0gbmV3VmFsdWUgPyBuZXdWYWx1ZS50b1N0cmluZygpIDogXCJcIjtcbiAgICAgICAgY29uc3QgZm9ybWF0dGVkTmV3VmFsdWUgPSBuZXdWYWx1ZVN0cmluZ1xuICAgICAgICAgICAgLnRvU3RyaW5nKClcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXEQvZywgXCJcIilcbiAgICAgICAgICAgIC5wYWRTdGFydChyYXdWYWx1ZS5sZW5ndGgsIFwiMFwiKTtcbiAgICAgICAgbGV0IG5ld1ZhbHVlSW5kZXggPSAwO1xuXG4gICAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAgICAgLnNwbGl0KFwiXCIpXG4gICAgICAgICAgICAubWFwKGNoYXIgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG51bWJlciA9IE51bWJlcihjaGFyKTtcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyIHx8IGNoYXIgPT09IFwiMFwiKSByZXR1cm4gZm9ybWF0dGVkTmV3VmFsdWVbbmV3VmFsdWVJbmRleCsrXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2hhcjtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuam9pbihcIlwiKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -3,6 +3,8 @@ import { Inject, OnChanges, SimpleChanges, TemplateRef, ViewContainerRef } from
|
|
|
3
3
|
import { Component, Input, ViewChild } from "@angular/core";
|
|
4
4
|
import { TranslateService } from "@ngx-translate/core";
|
|
5
5
|
import * as moment from "moment";
|
|
6
|
+
import { applyMask } from "@seniorsistemas/ng2-currency-mask";
|
|
7
|
+
import BigNumber from "bignumber.js";
|
|
6
8
|
import { EnumColumnFieldType } from "./models";
|
|
7
9
|
let TableColumnsComponent = class TableColumnsComponent {
|
|
8
10
|
constructor(viewContainerRef, translate, hostProjectConfigs) {
|
|
@@ -69,7 +71,7 @@ let TableColumnsComponent = class TableColumnsComponent {
|
|
|
69
71
|
return uninformed;
|
|
70
72
|
}
|
|
71
73
|
else {
|
|
72
|
-
const numberConfigs = Object.assign(Object.assign({}, locale.number), { scale: column.scale ? this.getColumnScale(column.scale) : locale.number.scale });
|
|
74
|
+
const numberConfigs = Object.assign(Object.assign({}, locale.number), { scale: column.scale ? this.getColumnScale(column.scale) : locale.number.scale, prefix: `${locale.number.currencySymbol} ` });
|
|
73
75
|
switch (column.type) {
|
|
74
76
|
case EnumColumnFieldType.ENUM:
|
|
75
77
|
if (column.badgeConfigs && column.badgeConfigs.length) {
|
|
@@ -77,7 +79,7 @@ let TableColumnsComponent = class TableColumnsComponent {
|
|
|
77
79
|
}
|
|
78
80
|
return this.translate.instant(column.enumPrefix + attributeValue.toString().toLowerCase());
|
|
79
81
|
case EnumColumnFieldType.CURRENCY:
|
|
80
|
-
return
|
|
82
|
+
return applyMask(attributeValue, numberConfigs, this.isNumber(attributeValue));
|
|
81
83
|
case EnumColumnFieldType.DATE:
|
|
82
84
|
const dateFormat = column.dateFormat ? column.dateFormat : locale.calendar.dateFormat;
|
|
83
85
|
return moment(attributeValue).format(dateFormat);
|
|
@@ -88,7 +90,8 @@ let TableColumnsComponent = class TableColumnsComponent {
|
|
|
88
90
|
case EnumColumnFieldType.STRING:
|
|
89
91
|
return attributeValue;
|
|
90
92
|
case EnumColumnFieldType.NUMBER:
|
|
91
|
-
|
|
93
|
+
numberConfigs.prefix = "";
|
|
94
|
+
return applyMask(attributeValue, numberConfigs, this.isNumber(attributeValue));
|
|
92
95
|
case EnumColumnFieldType.TOKENS:
|
|
93
96
|
return this.getTokens(attributeValue);
|
|
94
97
|
}
|
|
@@ -143,20 +146,8 @@ let TableColumnsComponent = class TableColumnsComponent {
|
|
|
143
146
|
return tooltip;
|
|
144
147
|
}
|
|
145
148
|
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
const currencySymbol = useCurrencySymbol ? options.currencySymbol : "";
|
|
149
|
-
const rawValue = Number(value ? value : 0).toFixed(scale);
|
|
150
|
-
const onlyNumbers = rawValue.replace(/[^0-9]/g, ``);
|
|
151
|
-
const integerPart = onlyNumbers
|
|
152
|
-
.slice(0, onlyNumbers.length - scale)
|
|
153
|
-
.replace(/^0*/g, ``)
|
|
154
|
-
.replace(/\B(?=(\d{3})+(?!\d))/g, thousandsSeparator) || `0`;
|
|
155
|
-
const decimalPart = onlyNumbers.slice(onlyNumbers.length - scale);
|
|
156
|
-
const newValue = scale ? integerPart + decimalSeparator + decimalPart : integerPart;
|
|
157
|
-
const isZero = !Number(onlyNumbers);
|
|
158
|
-
const operator = rawValue.includes("-") && !isZero ? "-" : "";
|
|
159
|
-
return `${operator}${currencySymbol} ${newValue}`;
|
|
149
|
+
isNumber(value) {
|
|
150
|
+
return !(new BigNumber(value).isNaN());
|
|
160
151
|
}
|
|
161
152
|
getTokens(values) {
|
|
162
153
|
if (!this.isArray(values))
|
|
@@ -221,11 +212,11 @@ __decorate([
|
|
|
221
212
|
], TableColumnsComponent.prototype, "locale", void 0);
|
|
222
213
|
TableColumnsComponent = __decorate([
|
|
223
214
|
Component({
|
|
224
|
-
template: "\n<ng-template #columnsTemplate>\n <td *ngFor=\"let column of formattedColumns\" [ngStyle]=\"column.style\" (click)=\"column.onColumnClick ? column.onColumnClick(rowValue) : null\">\n\n <div *ngIf=\"column.type !== 'TOKENS' || !isArray(column.columnValue); else tokensTemplate\">\n\n <span *ngIf=\"column.type !== 'LINK'\" [pTooltip]=\"column.tooltip\" [escape]=\"false\" [ngClass]=\"column.badgeClass\">\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container> \n </span>\n\n <a *ngIf=\"column.type === 'LINK'\" [pTooltip]=\"column.tooltip\" [escape]=\"false\" (click)=\"column.onLinkClick ? column.onLinkClick(rowValue) : null\">\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container> \n </a>\n\n <ng-template #columnValueTemplate>\n <span *ngFor=\"let value of getSplittedString(column)\">\n <span [ngClass]=\"{ 'sds-
|
|
215
|
+
template: "\n<ng-template #columnsTemplate>\n <td *ngFor=\"let column of formattedColumns\" [ngStyle]=\"column.style\" (click)=\"column.onColumnClick ? column.onColumnClick(rowValue) : null\">\n\n <div *ngIf=\"column.type !== 'TOKENS' || !isArray(column.columnValue); else tokensTemplate\">\n\n <span *ngIf=\"column.type !== 'LINK'\" [pTooltip]=\"column.tooltip\" [escape]=\"false\" [ngClass]=\"column.badgeClass\">\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container> \n </span>\n\n <a *ngIf=\"column.type === 'LINK'\" [pTooltip]=\"column.tooltip\" [escape]=\"false\" (click)=\"column.onLinkClick ? column.onLinkClick(rowValue) : null\">\n <ng-container *ngTemplateOutlet=\"columnValueTemplate\"></ng-container> \n </a>\n\n <ng-template #columnValueTemplate>\n <span *ngFor=\"let value of getSplittedString(column)\">\n <span [ngClass]=\"{ 'sds-empty-value': value.isUninformed }\">{{value.value}}</span>\n <span>{{value.separator}}</span>\n </span>\n </ng-template>\n\n </div>\n\n <ng-template #tokensTemplate>\n <s-token-list\n [tokens]=\"column.columnValue\"\n [hidePointerEvents]=\"true\"\n >\n </s-token-list>\n </ng-template>\n\n </td>\n</ng-template>\n",
|
|
225
216
|
selector: "s-table-columns",
|
|
226
|
-
styles: ["
|
|
217
|
+
styles: [":host{display:none}"]
|
|
227
218
|
}),
|
|
228
219
|
__param(2, Inject("hostProjectConfigs"))
|
|
229
220
|
], TableColumnsComponent);
|
|
230
221
|
export { TableColumnsComponent };
|
|
231
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90YWJsZS90YWJsZS1jb2x1bW4vdGFibGUtY29sdW1ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXZELE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBR2pDLE9BQU8sRUFLSCxtQkFBbUIsRUFHdEIsTUFBTSxVQUFVLENBQUM7QUFPbEIsSUFBYSxxQkFBcUIsR0FBbEMsTUFBYSxxQkFBcUI7SUFVOUIsWUFDWSxnQkFBa0MsRUFDbEMsU0FBMkIsRUFDRyxrQkFBc0M7UUFGcEUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUNHLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFMekUscUJBQWdCLEdBQW1CLEVBQUUsQ0FBQztJQU0xQyxDQUFDO0lBRUosV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVPLDJCQUEyQixDQUFDLE9BQXNCOztRQUN0RCxJQUFJLFFBQUMsT0FBTyxDQUFDLE9BQU8sMENBQUUsWUFBWSxDQUFBO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBQ2pHLElBQUksUUFBQyxPQUFPLENBQUMsUUFBUSwwQ0FBRSxZQUFZLENBQUE7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7UUFDbkcsSUFBSSxRQUFDLE9BQU8sQ0FBQyxNQUFNLDBDQUFFLFlBQVksQ0FBQTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLENBQUMsQ0FBQztJQUNuRyxDQUFDO0lBRU8scUJBQXFCLENBQUMsT0FBc0I7UUFDaEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTlCLE1BQU0sT0FBTyxHQUFhLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQ3ZELE1BQU0sUUFBUSxHQUFXLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQ3ZELE1BQU0sTUFBTSxHQUE2QixPQUFPLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUVyRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU8sY0FBYyxDQUFDLE1BQWMsRUFBRSxRQUFnQixFQUFFLE1BQWdDO1FBQ3JGLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNO1lBQ3hCLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUNmLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sR0FBRyxDQUFDO1FBQzlFLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTO1lBQzlCLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNsQixDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ1osTUFBTSxVQUFVLEdBQVcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDM0IsSUFBSSxVQUFVLEdBQWdCO1lBQzFCLFdBQVcsRUFBRSxLQUFLO1NBQ3JCLENBQUM7UUFFRixNQUFNLFdBQVcsR0FBVSxNQUFNLENBQUMsVUFBVTthQUN2QyxHQUFHLENBQUMsQ0FBQyxTQUFpQixFQUFFLEVBQUU7WUFDdkIsSUFBSSxjQUFvQixDQUFDO1lBRXpCLFNBQVM7aUJBQ0osS0FBSyxDQUFDLEdBQUcsQ0FBQztpQkFDVixPQUFPLENBQUMsQ0FBQyxLQUFhLEVBQUUsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLGNBQWMsRUFBRTtvQkFDakIsS0FBSzt5QkFDQSxLQUFLLENBQUMsR0FBRyxDQUFDO3lCQUNWLE9BQU8sQ0FBQyxDQUFDLEdBQVcsRUFBRSxDQUFDLEVBQUUsRUFBRTt3QkFDeEIsSUFBSSxRQUFRLEVBQUU7NEJBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dDQUNULGNBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7NkJBQ2xDO2lDQUFNLElBQUksY0FBYyxFQUFFO2dDQUN2QixjQUFjLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDOzZCQUN4Qzt5QkFDSjtvQkFDVCxDQUFDLENBQUMsQ0FBQztpQkFDTjtZQUNMLENBQUMsQ0FBQyxDQUFDO1lBRVAsSUFBSSxjQUFjLEtBQUssSUFBSSxJQUFJLGNBQWMsS0FBSyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNySCxPQUFPLFVBQVUsQ0FBQzthQUNyQjtpQkFBTTtnQkFDSCxNQUFNLGFBQWEsbUNBQ1osTUFBTSxDQUFDLE1BQU0sS0FDaEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssR0FDaEYsQ0FBQztnQkFFRixRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUU7b0JBQ2pCLEtBQUssbUJBQW1CLENBQUMsSUFBSTt3QkFDekIsSUFBSSxNQUFNLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFOzRCQUNuRCxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO3lCQUN4RTt3QkFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUcsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7b0JBRS9GLEtBQUssbUJBQW1CLENBQUMsUUFBUTt3QkFDN0IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUMsQ0FBQztvQkFFekQsS0FBSyxtQkFBbUIsQ0FBQyxJQUFJO3dCQUN6QixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQzt3QkFDdEYsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUVyRCxLQUFLLG1CQUFtQixDQUFDLE9BQU87d0JBQzVCLE1BQU0sS0FBSyxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7d0JBQzVDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDO29CQUVsRCxLQUFLLG1CQUFtQixDQUFDLElBQUksQ0FBQztvQkFDOUIsS0FBSyxtQkFBbUIsQ0FBQyxNQUFNO3dCQUMzQixPQUFPLGNBQWMsQ0FBQztvQkFFMUIsS0FBSyxtQkFBbUIsQ0FBQyxNQUFNO3dCQUMzQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFFaEUsS0FBSyxtQkFBbUIsQ0FBQyxNQUFNO3dCQUMzQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7aUJBQzdDO2FBQ0o7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVQLE1BQU0sbUJBQW1CLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4RCxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQjthQUN2QyxLQUFLLENBQUMsU0FBUyxDQUFDO2FBQ2hCLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFFbEQsSUFBSSxvQkFBdUMsQ0FBQztRQUM1QyxJQUFJLGdCQUFnQixLQUFLLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQy9DLG9CQUFvQixHQUFHLFVBQVUsQ0FBQztTQUNyQzthQUFNLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUU7WUFDbkQsb0JBQW9CLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQztTQUNuRzthQUFNO1lBQ0gsb0JBQW9CLEdBQUcsbUJBQW1CLENBQUM7U0FDOUM7UUFFRCxPQUFPO1lBQ0gsS0FBSztZQUNMLFdBQVcsRUFBRSxvQkFBb0I7WUFDakMsVUFBVTtZQUNWLFNBQVM7WUFDVCxVQUFVO1lBQ1YsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ2pCLE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUM5QyxXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7WUFDL0IsYUFBYSxFQUFFLE1BQU0sQ0FBQyxhQUFhO1NBQ3RDLENBQUM7SUFDTixDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQWEsRUFBRSxZQUE0Qjs7UUFDN0QsTUFBTSxXQUFXLEdBQUc7WUFDaEIsV0FBVyxFQUFFLElBQUk7U0FDcEIsQ0FBQztRQUNGLE1BQU0sS0FBSyxTQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQywwQ0FBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbEcsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztRQUUxQixPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQTJDO1FBQzlELElBQUksT0FBTyxLQUFLLEtBQUssVUFBVSxFQUFFO1lBQzdCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMvQjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxPQUE2QztRQUNsRSxJQUFJLE9BQU8sS0FBSyxTQUFTLElBQUksT0FBTyxLQUFLLElBQUksRUFBRTtZQUMzQyxJQUFJLE9BQU8sT0FBTyxLQUFLLFVBQVUsRUFBRTtnQkFDL0IsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ2pDO1lBQ0QsT0FBTyxPQUFPLENBQUM7U0FDbEI7SUFDTCxDQUFDO0lBRU8sU0FBUyxDQUFDLEtBQVUsRUFBRSxPQUF1QyxFQUFFLGlCQUFpQixHQUFHLElBQUk7UUFDM0YsTUFBTSxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUVoRSxNQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3ZFLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sV0FBVyxHQUNiLFdBQVc7YUFDTixLQUFLLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO2FBQ3BDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO2FBQ25CLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLEdBQUcsQ0FBQztRQUNyRSxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDbEUsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFDcEYsTUFBTSxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFOUQsT0FBTyxHQUFHLFFBQVEsR0FBRyxjQUFjLElBQUksUUFBUSxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVPLFNBQVMsQ0FBQyxNQUFXO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQztRQUN0Riw0Q0FBNEM7UUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGdIQUFnSCxDQUFDLENBQUM7UUFFdkssSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDO1lBQUUsT0FBTyxNQUFNLENBQUM7UUFFbkQsT0FBTyxNQUFNO2FBQ1IsTUFBTSxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUM7YUFDN0QsR0FBRyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDaEIsTUFBTSxLQUFLLEdBQUcsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUM7WUFDeEUsT0FBTztnQkFDSCxLQUFLO2FBQ1IsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVPLGlCQUFpQixDQUFDLE1BQWE7UUFDbkMsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxNQUFhO1FBQ3hDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNwRixDQUFDO0lBRU8sa0JBQWtCLENBQUMsTUFBYTtRQUNwQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxLQUFLLE1BQUssSUFBSSxJQUFJLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLEtBQUssTUFBSyxTQUFTLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNoSCxDQUFDO0lBRU0sT0FBTyxDQUFDLEtBQVU7UUFDckIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxNQUFvQjtRQUN6QyxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFDdEQsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUU7WUFDakMsTUFBTSxjQUFjLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwRCxPQUFPLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ3hDLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLEtBQUssQ0FBQztnQkFDeEQsT0FBTztvQkFDSCxLQUFLLEVBQUUsTUFBTTtvQkFDYixZQUFZLEVBQUUsTUFBTSxLQUFLLFVBQVU7b0JBQ25DLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO2lCQUMzQyxDQUFDO1lBQ04sQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7Q0FFSixDQUFBOztZQTdOaUMsZ0JBQWdCO1lBQ3ZCLGdCQUFnQjs0Q0FDbEMsTUFBTSxTQUFDLG9CQUFvQjs7QUFYZ0I7SUFBL0MsU0FBUyxDQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDOzhEQUFtQztBQUV6RTtJQUFSLEtBQUssRUFBRTtzREFBb0I7QUFDbkI7SUFBUixLQUFLLEVBQUU7dURBQWdCO0FBQ2Y7SUFBUixLQUFLLEVBQUU7cURBQW1DO0FBTmxDLHFCQUFxQjtJQUxqQyxTQUFTLENBQUM7UUFDUCxpNkNBQTZDO1FBRTdDLFFBQVEsRUFBRSxpQkFBaUI7O0tBQzlCLENBQUM7SUFjTyxXQUFBLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0dBYnhCLHFCQUFxQixDQXdPakM7U0F4T1kscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IElUb2tlbiB9IGZyb20gXCIuLi8uLi90b2tlbi1saXN0XCI7XG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xuXG5pbXBvcnQgeyBIb3N0UHJvamVjdENvbmZpZ3MgfSBmcm9tIFwiLi4vLi4vLi4vYW5ndWxhci1jb21wb25lbnRzLm1vZHVsZVwiO1xuaW1wb3J0IHtcbiAgICBCYWRnZUNvbHVtbixcbiAgICBCYWRnZUNvbmZpZ3MsXG4gICAgQ29sdW1uLFxuICAgIENvbHVtblZhbHVlcyxcbiAgICBFbnVtQ29sdW1uRmllbGRUeXBlLFxuICAgIFRhYmxlQ29sdW1uTG9jYWxlT3B0aW9ucyxcbiAgICBUYWJsZUNvbHVtbk51bWJlckxvY2FsZU9wdGlvbnNcbn0gZnJvbSBcIi4vbW9kZWxzXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiBcIi4vdGFibGUtY29sdW1ucy5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi90YWJsZS1jb2x1bW5zLmNvbXBvbmVudC5zY3NzXCJdLFxuICAgIHNlbGVjdG9yOiBcInMtdGFibGUtY29sdW1uc1wiLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbHVtbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gICAgQFZpZXdDaGlsZChcImNvbHVtbnNUZW1wbGF0ZVwiLCB7IHN0YXRpYzogdHJ1ZSB9KSBjb2x1bW5zVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASW5wdXQoKSBjb2x1bW5zITogQ29sdW1uW107XG4gICAgQElucHV0KCkgcm93VmFsdWUhOiBhbnk7XG4gICAgQElucHV0KCkgbG9jYWxlITogVGFibGVDb2x1bW5Mb2NhbGVPcHRpb25zO1xuXG4gICAgcHVibGljIGZvcm1hdHRlZENvbHVtbnM6IENvbHVtblZhbHVlc1tdID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgQEluamVjdChcImhvc3RQcm9qZWN0Q29uZmlnc1wiKSBwcml2YXRlIGhvc3RQcm9qZWN0Q29uZmlnczogSG9zdFByb2plY3RDb25maWdzXG4gICAgKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbGlkYXRlQ29tcG9uZW50QXR0cmlidXRlcyhjaGFuZ2VzKTtcbiAgICAgICAgdGhpcy5jcmVhdGVDb2x1bW5zVGVtcGxhdGUoY2hhbmdlcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUNvbXBvbmVudEF0dHJpYnV0ZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoIWNoYW5nZXMuY29sdW1ucz8uY3VycmVudFZhbHVlKSB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgJ2NvbHVtbnMnIGF0dHJpYnV0ZSBtdXN0IGJlIGluZm9ybWVkIVwiKTtcbiAgICAgICAgaWYgKCFjaGFuZ2VzLnJvd1ZhbHVlPy5jdXJyZW50VmFsdWUpIHRocm93IG5ldyBFcnJvcihcIlRoZSAncm93VmFsdWUnIGF0dHJpYnV0ZSBtdXN0IGJlIGluZm9ybWVkIVwiKTtcbiAgICAgICAgaWYgKCFjaGFuZ2VzLmxvY2FsZT8uY3VycmVudFZhbHVlKSB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgJ2xvY2FsZScgYXR0cmlidXRlIG11c3QgYmUgaW5mb3JtZWQhXCIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQ29sdW1uc1RlbXBsYXRlKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG5cbiAgICAgICAgY29uc3QgY29sdW1uczogQ29sdW1uW10gPSBjaGFuZ2VzLmNvbHVtbnMuY3VycmVudFZhbHVlO1xuICAgICAgICBjb25zdCByb3dWYWx1ZTogb2JqZWN0ID0gY2hhbmdlcy5yb3dWYWx1ZS5jdXJyZW50VmFsdWU7XG4gICAgICAgIGNvbnN0IGxvY2FsZTogVGFibGVDb2x1bW5Mb2NhbGVPcHRpb25zID0gY2hhbmdlcy5sb2NhbGUuY3VycmVudFZhbHVlO1xuXG4gICAgICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB0aGlzLmZvcm1hdHRlZENvbHVtbnMucHVzaCh0aGlzLmdldENvbHVtblZhbHVlKGNvbHVtbiwgcm93VmFsdWUsIGxvY2FsZSkpKTtcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmNvbHVtbnNUZW1wbGF0ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb2x1bW5WYWx1ZShjb2x1bW46IENvbHVtbiwgcm93VmFsdWU6IG9iamVjdCwgbG9jYWxlOiBUYWJsZUNvbHVtbkxvY2FsZU9wdGlvbnMpOiBDb2x1bW5WYWx1ZXMge1xuICAgICAgICBjb25zdCBwcmVmaXggPSBjb2x1bW4ucHJlZml4XG4gICAgICAgICAgICA/IGNvbHVtbi5wcmVmaXhcbiAgICAgICAgICAgIDogYCR7dGhpcy5ob3N0UHJvamVjdENvbmZpZ3MuZG9tYWlufS4ke3RoaXMuaG9zdFByb2plY3RDb25maWdzLnNlcnZpY2V9LmA7XG4gICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IGNvbHVtbi5zZXBhcmF0b3JcbiAgICAgICAgICAgID8gY29sdW1uLnNlcGFyYXRvclxuICAgICAgICAgICAgOiBcIiAtIFwiO1xuICAgICAgICBjb25zdCB1bmluZm9ybWVkOiBzdHJpbmcgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHByZWZpeCArIFwiZW1wdHlfbGFiZWxcIik7XG4gICAgICAgIGNvbnN0IHN0eWxlID0gY29sdW1uLnN0eWxlO1xuICAgICAgICBsZXQgYmFkZ2VDbGFzczogQmFkZ2VDb2x1bW4gPSB7XG4gICAgICAgICAgICBcInNkcy1iYWRnZVwiOiBmYWxzZVxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGNvbHVtblZhbHVlOiBhbnlbXSA9IGNvbHVtbi5hdHRyaWJ1dGVzXG4gICAgICAgICAgICAubWFwKChhdHRyaWJ1dGU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBhdHRyaWJ1dGVWYWx1ZSE6IGFueTtcblxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVxuICAgICAgICAgICAgICAgICAgICAuc3BsaXQoXCIvXCIpXG4gICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKCh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWF0dHJpYnV0ZVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KFwiLlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgodmFsOiBzdHJpbmcsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyb3dWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlID0gcm93VmFsdWVbdmFsXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlID0gYXR0cmlidXRlVmFsdWVbdmFsXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZVZhbHVlID09PSBudWxsIHx8IGF0dHJpYnV0ZVZhbHVlID09PSB1bmRlZmluZWQgfHwgKHRoaXMuaXNBcnJheShhdHRyaWJ1dGVWYWx1ZSkgJiYgIWF0dHJpYnV0ZVZhbHVlLmxlbmd0aCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuaW5mb3JtZWQ7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbnVtYmVyQ29uZmlnczogVGFibGVDb2x1bW5OdW1iZXJMb2NhbGVPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4ubG9jYWxlLm51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlOiBjb2x1bW4uc2NhbGUgPyB0aGlzLmdldENvbHVtblNjYWxlKGNvbHVtbi5zY2FsZSkgOiBsb2NhbGUubnVtYmVyLnNjYWxlXG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChjb2x1bW4udHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBFbnVtQ29sdW1uRmllbGRUeXBlLkVOVU06XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbHVtbi5iYWRnZUNvbmZpZ3MgJiYgY29sdW1uLmJhZGdlQ29uZmlncy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFkZ2VDbGFzcyA9IHRoaXMuZ2V0QmFkZ2VDbGFzcyhhdHRyaWJ1dGVWYWx1ZSwgY29sdW1uLmJhZGdlQ29uZmlncyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGNvbHVtbi5lbnVtUHJlZml4ICsgYXR0cmlidXRlVmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBFbnVtQ29sdW1uRmllbGRUeXBlLkNVUlJFTkNZOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFwcGx5TWFzayhhdHRyaWJ1dGVWYWx1ZSwgbnVtYmVyQ29uZmlncyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5EQVRFOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGVGb3JtYXQgPSBjb2x1bW4uZGF0ZUZvcm1hdCA/IGNvbHVtbi5kYXRlRm9ybWF0IDogbG9jYWxlLmNhbGVuZGFyLmRhdGVGb3JtYXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vbWVudChhdHRyaWJ1dGVWYWx1ZSkuZm9ybWF0KGRhdGVGb3JtYXQpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEVudW1Db2x1bW5GaWVsZFR5cGUuQk9PTEVBTjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlID8gXCJ5ZXNcIiA6IFwibm9cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChwcmVmaXggKyB2YWx1ZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5MSU5LOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBFbnVtQ29sdW1uRmllbGRUeXBlLlNUUklORzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXR0cmlidXRlVmFsdWU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5OVU1CRVI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXBwbHlNYXNrKGF0dHJpYnV0ZVZhbHVlLCBudW1iZXJDb25maWdzLCBmYWxzZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5UT0tFTlM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VG9rZW5zKGF0dHJpYnV0ZVZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHVuaWZpZWRDb2x1bW5WYWx1ZXMgPSBjb2x1bW5WYWx1ZS5qb2luKHNlcGFyYXRvcik7XG4gICAgICAgIGNvbnN0IHVuaW5mb3JtZWROdW1iZXIgPSB1bmlmaWVkQ29sdW1uVmFsdWVzXG4gICAgICAgICAgICAuc3BsaXQoc2VwYXJhdG9yKVxuICAgICAgICAgICAgLmZpbHRlcih2YWx1ZSA9PiB2YWx1ZSA9PT0gdW5pbmZvcm1lZCkubGVuZ3RoO1xuXG4gICAgICAgIGxldCBmb3JtYXR0ZWRDb2x1bW5WYWx1ZTogc3RyaW5nIHwgSVRva2VuW107XG4gICAgICAgIGlmICh1bmluZm9ybWVkTnVtYmVyID09PSBjb2x1bW4uYXR0cmlidXRlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZvcm1hdHRlZENvbHVtblZhbHVlID0gdW5pbmZvcm1lZDtcbiAgICAgICAgfSBlbHNlIGlmIChjb2x1bW4udHlwZSA9PT0gRW51bUNvbHVtbkZpZWxkVHlwZS5UT0tFTlMpIHtcbiAgICAgICAgICAgIGZvcm1hdHRlZENvbHVtblZhbHVlID0gW10uY29uY2F0LmFwcGx5KFtdLCBjb2x1bW5WYWx1ZS5maWx0ZXIodmFsdWVzID0+IHZhbHVlcyAhPT0gdW5pbmZvcm1lZCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9ybWF0dGVkQ29sdW1uVmFsdWUgPSB1bmlmaWVkQ29sdW1uVmFsdWVzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN0eWxlLFxuICAgICAgICAgICAgY29sdW1uVmFsdWU6IGZvcm1hdHRlZENvbHVtblZhbHVlLFxuICAgICAgICAgICAgYmFkZ2VDbGFzcyxcbiAgICAgICAgICAgIHNlcGFyYXRvcixcbiAgICAgICAgICAgIHVuaW5mb3JtZWQsXG4gICAgICAgICAgICB0eXBlOiBjb2x1bW4udHlwZSxcbiAgICAgICAgICAgIHRvb2x0aXA6IHRoaXMuZ2V0Q29sdW1uVG9vbHRpcChjb2x1bW4udG9vbHRpcCksXG4gICAgICAgICAgICBvbkxpbmtDbGljazogY29sdW1uLm9uTGlua0NsaWNrLFxuICAgICAgICAgICAgb25Db2x1bW5DbGljazogY29sdW1uLm9uQ29sdW1uQ2xpY2tcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEJhZGdlQ2xhc3ModmFsdWU6IHN0cmluZywgYmFkZ2VDb25maWdzOiBCYWRnZUNvbmZpZ3NbXSk6IEJhZGdlQ29sdW1uIHtcbiAgICAgICAgY29uc3QgYmFkZ2VDb2x1bW4gPSB7XG4gICAgICAgICAgICBcInNkcy1iYWRnZVwiOiB0cnVlXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGNvbG9yID0gIGJhZGdlQ29uZmlncy5maW5kKGJhZGdlQ29uZmlnID0+IGJhZGdlQ29uZmlnLmVudW1WYWx1ZSA9PT0gdmFsdWUpPy5jb2xvci52YWx1ZU9mKCk7XG4gICAgICAgIGJhZGdlQ29sdW1uW2NvbG9yXSA9IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIGJhZGdlQ29sdW1uO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29sdW1uU2NhbGUoc2NhbGU6IG51bWJlciB8ICgocm93VmFsdWU6IGFueSkgPT4gbnVtYmVyKSk6IG51bWJlciB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2NhbGUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgcmV0dXJuIHNjYWxlKHRoaXMucm93VmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzY2FsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbHVtblRvb2x0aXAodG9vbHRpcDogc3RyaW5nIHwgKChyb3dWYWx1ZTogYW55KSA9PiBzdHJpbmcpKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRvb2x0aXAgIT09IHVuZGVmaW5lZCAmJiB0b29sdGlwICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHRvb2x0aXAgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0b29sdGlwKHRoaXMucm93VmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRvb2x0aXA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGx5TWFzayh2YWx1ZTogYW55LCBvcHRpb25zOiBUYWJsZUNvbHVtbk51bWJlckxvY2FsZU9wdGlvbnMsIHVzZUN1cnJlbmN5U3ltYm9sID0gdHJ1ZSkge1xuICAgICAgICBjb25zdCB7IHNjYWxlLCB0aG91c2FuZHNTZXBhcmF0b3IsIGRlY2ltYWxTZXBhcmF0b3IgfSA9IG9wdGlvbnM7XG5cbiAgICAgICAgY29uc3QgY3VycmVuY3lTeW1ib2wgPSB1c2VDdXJyZW5jeVN5bWJvbCA/IG9wdGlvbnMuY3VycmVuY3lTeW1ib2wgOiBcIlwiO1xuICAgICAgICBjb25zdCByYXdWYWx1ZSA9IE51bWJlcih2YWx1ZSA/IHZhbHVlIDogMCkudG9GaXhlZChzY2FsZSk7XG4gICAgICAgIGNvbnN0IG9ubHlOdW1iZXJzID0gcmF3VmFsdWUucmVwbGFjZSgvW14wLTldL2csIGBgKTtcbiAgICAgICAgY29uc3QgaW50ZWdlclBhcnQgPVxuICAgICAgICAgICAgb25seU51bWJlcnNcbiAgICAgICAgICAgICAgICAuc2xpY2UoMCwgb25seU51bWJlcnMubGVuZ3RoIC0gc2NhbGUpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL14wKi9nLCBgYClcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZywgdGhvdXNhbmRzU2VwYXJhdG9yKSB8fCBgMGA7XG4gICAgICAgIGNvbnN0IGRlY2ltYWxQYXJ0ID0gb25seU51bWJlcnMuc2xpY2Uob25seU51bWJlcnMubGVuZ3RoIC0gc2NhbGUpO1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHNjYWxlID8gaW50ZWdlclBhcnQgKyBkZWNpbWFsU2VwYXJhdG9yICsgZGVjaW1hbFBhcnQgOiBpbnRlZ2VyUGFydDtcbiAgICAgICAgY29uc3QgaXNaZXJvID0gIU51bWJlcihvbmx5TnVtYmVycyk7XG4gICAgICAgIGNvbnN0IG9wZXJhdG9yID0gcmF3VmFsdWUuaW5jbHVkZXMoXCItXCIpICYmICFpc1plcm8gPyBcIi1cIiA6IFwiXCI7XG5cbiAgICAgICAgcmV0dXJuIGAke29wZXJhdG9yfSR7Y3VycmVuY3lTeW1ib2x9ICR7bmV3VmFsdWV9YDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRva2Vucyh2YWx1ZXM6IGFueSk6IElUb2tlbltdIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzQXJyYXkodmFsdWVzKSkgdGhyb3cgbmV3IEVycm9yKFwiVG8gdXNlIHRva2VucyBhbiBhcnJheSBtdXN0IGJlIGluZm9ybWVkXCIpO1xuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG1heC1saW5lLWxlbmd0aFxuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZFRva2VuQXJyYXkodmFsdWVzKSkgdGhyb3cgbmV3IEVycm9yKFwiTm90IGEgdmFsaWQgdG9rZW4gYXJyYXkuIFRva2VuIGFycmF5IG11c3QgYmUgYSBwcmltaXRpdmUgdmFsdWVzIGFycmF5IG9yIGFuIG9iamVjdHMgd2l0aCBsYWJlbCBhdHRyaWJ1dGUgYXJyYXlcIik7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNMYWJlbE9iamVjdEFycmF5KHZhbHVlcykpIHJldHVybiB2YWx1ZXM7XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlc1xuICAgICAgICAgICAgLmZpbHRlcigodmFsdWU6IGFueSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbClcbiAgICAgICAgICAgIC5tYXAoKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IHR5cGVvZiB2YWx1ZSA9PT0gXCJzeW1ib2xcIiA/IHZhbHVlLnRvU3RyaW5nKCkgOiBgJHt2YWx1ZX1gO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNWYWxpZFRva2VuQXJyYXkodmFsdWVzOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1ByaW1pdGl2ZVZhbHVlc0FycmF5KHZhbHVlcykgfHwgdGhpcy5pc0xhYmVsT2JqZWN0QXJyYXkodmFsdWVzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzUHJpbWl0aXZlVmFsdWVzQXJyYXkodmFsdWVzOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdmFsdWVzLmZpbHRlcih2YWx1ZSA9PiB2YWx1ZSAhPT0gT2JqZWN0KHZhbHVlKSkubGVuZ3RoID09PSB2YWx1ZXMubGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNMYWJlbE9iamVjdEFycmF5KHZhbHVlczogYW55W10pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlcy5maWx0ZXIodmFsdWUgPT4gdmFsdWU/LmxhYmVsICE9PSBudWxsICYmIHZhbHVlPy5sYWJlbCAhPT0gdW5kZWZpbmVkKS5sZW5ndGggPT09IHZhbHVlcy5sZW5ndGg7XG4gICAgfVxuXG4gICAgcHVibGljIGlzQXJyYXkodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNwbGl0dGVkU3RyaW5nKGNvbHVtbjogQ29sdW1uVmFsdWVzKTogeyB2YWx1ZTogc3RyaW5nLCBpc1VuaW5mb3JtZWQ6IGJvb2xlYW4sIHNlcGFyYXRvcjogc3RyaW5nIH1bXSB7XG4gICAgICAgIGNvbnN0IHsgY29sdW1uVmFsdWUsIHNlcGFyYXRvciwgdW5pbmZvcm1lZCB9ID0gY29sdW1uO1xuICAgICAgICBpZiAodHlwZW9mIGNvbHVtblZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBjb25zdCBzcGxpdHRlZFN0cmluZyA9IGNvbHVtblZhbHVlLnNwbGl0KHNlcGFyYXRvcik7XG4gICAgICAgICAgICByZXR1cm4gc3BsaXR0ZWRTdHJpbmcubWFwKChzdHJpbmcsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNMYXN0SW5kZXggPSBzcGxpdHRlZFN0cmluZy5sZW5ndGggLSAxID09PSBpbmRleDtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICBpc1VuaW5mb3JtZWQ6IHN0cmluZyA9PT0gdW5pbmZvcm1lZCxcbiAgICAgICAgICAgICAgICAgICAgc2VwYXJhdG9yOiAhaXNMYXN0SW5kZXggPyBzZXBhcmF0b3IgOiBcIlwiXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iXX0=
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90YWJsZS90YWJsZS1jb2x1bW4vdGFibGUtY29sdW1ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLFNBQVMsTUFBTSxjQUFjLENBQUM7QUFJckMsT0FBTyxFQUtILG1CQUFtQixFQUV0QixNQUFNLFVBQVUsQ0FBQztBQU9sQixJQUFhLHFCQUFxQixHQUFsQyxNQUFhLHFCQUFxQjtJQVU5QixZQUNZLGdCQUFrQyxFQUNsQyxTQUEyQixFQUNHLGtCQUFzQztRQUZwRSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQ0csdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUx6RSxxQkFBZ0IsR0FBbUIsRUFBRSxDQUFDO0lBTTFDLENBQUM7SUFFSixXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRU8sMkJBQTJCLENBQUMsT0FBc0I7O1FBQ3RELElB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LENBQUM7Q0FFSixDQUFBOztZQWhOaUMsZ0JBQWdCO1lBQ3ZCLGdCQUFnQjs0Q0FDbEMsTUFBTSxTQUFDLG9CQUFvQjs7QUFYZ0I7SUFBL0MsU0FBUyxDQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDOzhEQUFtQztBQUV6RTtJQUFSLEtBQUssRUFBRTtzREFBb0I7QUFDbkI7SUFBUixLQUFLLEVBQUU7dURBQWdCO0FBQ2Y7SUFBUixLQUFLLEVBQUU7cURBQW1DO0FBTmxDLHFCQUFxQjtJQUxqQyxTQUFTLENBQUM7UUFDUCxtNkNBQTZDO1FBRTdDLFFBQVEsRUFBRSxpQkFBaUI7O0tBQzlCLENBQUM7SUFjTyxXQUFBLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0dBYnhCLHFCQUFxQixDQTJOakM7U0EzTlkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tIFwibW9tZW50XCI7XG5pbXBvcnQgeyBhcHBseU1hc2ssIE1hc2tDb25maWcgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL25nMi1jdXJyZW5jeS1tYXNrXCI7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gXCJiaWdudW1iZXIuanNcIjtcblxuaW1wb3J0IHsgSG9zdFByb2plY3RDb25maWdzIH0gZnJvbSBcIi4uLy4uLy4uL2FuZ3VsYXItY29tcG9uZW50cy5tb2R1bGVcIjtcbmltcG9ydCB7IElUb2tlbiB9IGZyb20gXCIuLi8uLi90b2tlbi1saXN0XCI7XG5pbXBvcnQge1xuICAgIEJhZGdlQ29sdW1uLFxuICAgIEJhZGdlQ29uZmlncyxcbiAgICBDb2x1bW4sXG4gICAgQ29sdW1uVmFsdWVzLFxuICAgIEVudW1Db2x1bW5GaWVsZFR5cGUsXG4gICAgVGFibGVDb2x1bW5Mb2NhbGVPcHRpb25zXG59IGZyb20gXCIuL21vZGVsc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3RhYmxlLWNvbHVtbnMuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vdGFibGUtY29sdW1ucy5jb21wb25lbnQuc2Nzc1wiXSxcbiAgICBzZWxlY3RvcjogXCJzLXRhYmxlLWNvbHVtbnNcIixcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5zQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICAgIEBWaWV3Q2hpbGQoXCJjb2x1bW5zVGVtcGxhdGVcIiwgeyBzdGF0aWM6IHRydWUgfSkgY29sdW1uc1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQElucHV0KCkgY29sdW1ucyE6IENvbHVtbltdO1xuICAgIEBJbnB1dCgpIHJvd1ZhbHVlITogYW55O1xuICAgIEBJbnB1dCgpIGxvY2FsZSE6IFRhYmxlQ29sdW1uTG9jYWxlT3B0aW9ucztcblxuICAgIHB1YmxpYyBmb3JtYXR0ZWRDb2x1bW5zOiBDb2x1bW5WYWx1ZXNbXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoXCJob3N0UHJvamVjdENvbmZpZ3NcIikgcHJpdmF0ZSBob3N0UHJvamVjdENvbmZpZ3M6IEhvc3RQcm9qZWN0Q29uZmlnc1xuICAgICkge31cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZUNvbXBvbmVudEF0dHJpYnV0ZXMoY2hhbmdlcyk7XG4gICAgICAgIHRoaXMuY3JlYXRlQ29sdW1uc1RlbXBsYXRlKGNoYW5nZXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGVDb21wb25lbnRBdHRyaWJ1dGVzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFjaGFuZ2VzLmNvbHVtbnM/LmN1cnJlbnRWYWx1ZSkgdGhyb3cgbmV3IEVycm9yKFwiVGhlICdjb2x1bW5zJyBhdHRyaWJ1dGUgbXVzdCBiZSBpbmZvcm1lZCFcIik7XG4gICAgICAgIGlmICghY2hhbmdlcy5yb3dWYWx1ZT8uY3VycmVudFZhbHVlKSB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgJ3Jvd1ZhbHVlJyBhdHRyaWJ1dGUgbXVzdCBiZSBpbmZvcm1lZCFcIik7XG4gICAgICAgIGlmICghY2hhbmdlcy5sb2NhbGU/LmN1cnJlbnRWYWx1ZSkgdGhyb3cgbmV3IEVycm9yKFwiVGhlICdsb2NhbGUnIGF0dHJpYnV0ZSBtdXN0IGJlIGluZm9ybWVkIVwiKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUNvbHVtbnNUZW1wbGF0ZShjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuXG4gICAgICAgIGNvbnN0IGNvbHVtbnM6IENvbHVtbltdID0gY2hhbmdlcy5jb2x1bW5zLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgY29uc3Qgcm93VmFsdWU6IG9iamVjdCA9IGNoYW5nZXMucm93VmFsdWUuY3VycmVudFZhbHVlO1xuICAgICAgICBjb25zdCBsb2NhbGU6IFRhYmxlQ29sdW1uTG9jYWxlT3B0aW9ucyA9IGNoYW5nZXMubG9jYWxlLmN1cnJlbnRWYWx1ZTtcblxuICAgICAgICBjb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4gdGhpcy5mb3JtYXR0ZWRDb2x1bW5zLnB1c2godGhpcy5nZXRDb2x1bW5WYWx1ZShjb2x1bW4sIHJvd1ZhbHVlLCBsb2NhbGUpKSk7XG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5jb2x1bW5zVGVtcGxhdGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29sdW1uVmFsdWUoY29sdW1uOiBDb2x1bW4sIHJvd1ZhbHVlOiBvYmplY3QsIGxvY2FsZTogVGFibGVDb2x1bW5Mb2NhbGVPcHRpb25zKTogQ29sdW1uVmFsdWVzIHtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gY29sdW1uLnByZWZpeFxuICAgICAgICAgICAgPyBjb2x1bW4ucHJlZml4XG4gICAgICAgICAgICA6IGAke3RoaXMuaG9zdFByb2plY3RDb25maWdzLmRvbWFpbn0uJHt0aGlzLmhvc3RQcm9qZWN0Q29uZmlncy5zZXJ2aWNlfS5gO1xuICAgICAgICBjb25zdCBzZXBhcmF0b3IgPSBjb2x1bW4uc2VwYXJhdG9yXG4gICAgICAgICAgICA/IGNvbHVtbi5zZXBhcmF0b3JcbiAgICAgICAgICAgIDogXCIgLSBcIjtcbiAgICAgICAgY29uc3QgdW5pbmZvcm1lZDogc3RyaW5nID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChwcmVmaXggKyBcImVtcHR5X2xhYmVsXCIpO1xuICAgICAgICBjb25zdCBzdHlsZSA9IGNvbHVtbi5zdHlsZTtcbiAgICAgICAgbGV0IGJhZGdlQ2xhc3M6IEJhZGdlQ29sdW1uID0ge1xuICAgICAgICAgICAgXCJzZHMtYmFkZ2VcIjogZmFsc2VcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBjb2x1bW5WYWx1ZTogYW55W10gPSBjb2x1bW4uYXR0cmlidXRlc1xuICAgICAgICAgICAgLm1hcCgoYXR0cmlidXRlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgYXR0cmlidXRlVmFsdWUhOiBhbnk7XG5cbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVcbiAgICAgICAgICAgICAgICAgICAgLnNwbGl0KFwiL1wiKVxuICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFhdHRyaWJ1dGVWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zcGxpdChcIi5cIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZvckVhY2goKHZhbDogc3RyaW5nLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocm93VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVWYWx1ZSA9IHJvd1ZhbHVlW3ZhbF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhdHRyaWJ1dGVWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVWYWx1ZSA9IGF0dHJpYnV0ZVZhbHVlW3ZhbF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVWYWx1ZSA9PT0gbnVsbCB8fCBhdHRyaWJ1dGVWYWx1ZSA9PT0gdW5kZWZpbmVkIHx8ICh0aGlzLmlzQXJyYXkoYXR0cmlidXRlVmFsdWUpICYmICFhdHRyaWJ1dGVWYWx1ZS5sZW5ndGgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmluZm9ybWVkO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG51bWJlckNvbmZpZ3M6IE1hc2tDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5sb2NhbGUubnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGU6IGNvbHVtbi5zY2FsZSA/IHRoaXMuZ2V0Q29sdW1uU2NhbGUoY29sdW1uLnNjYWxlKSA6IGxvY2FsZS5udW1iZXIuc2NhbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXg6IGAke2xvY2FsZS5udW1iZXIuY3VycmVuY3lTeW1ib2x9IGBcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbHVtbi50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEVudW1Db2x1bW5GaWVsZFR5cGUuRU5VTTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29sdW1uLmJhZGdlQ29uZmlncyAmJiBjb2x1bW4uYmFkZ2VDb25maWdzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWRnZUNsYXNzID0gdGhpcy5nZXRCYWRnZUNsYXNzKGF0dHJpYnV0ZVZhbHVlLCBjb2x1bW4uYmFkZ2VDb25maWdzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoY29sdW1uLmVudW1QcmVmaXggKyBhdHRyaWJ1dGVWYWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEVudW1Db2x1bW5GaWVsZFR5cGUuQ1VSUkVOQ1k6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFwcGx5TWFzayhhdHRyaWJ1dGVWYWx1ZSwgbnVtYmVyQ29uZmlncywgdGhpcy5pc051bWJlcihhdHRyaWJ1dGVWYWx1ZSkpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEVudW1Db2x1bW5GaWVsZFR5cGUuREFURTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRlRm9ybWF0ID0gY29sdW1uLmRhdGVGb3JtYXQgPyBjb2x1bW4uZGF0ZUZvcm1hdCA6IGxvY2FsZS5jYWxlbmRhci5kYXRlRm9ybWF0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtb21lbnQoYXR0cmlidXRlVmFsdWUpLmZvcm1hdChkYXRlRm9ybWF0KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBFbnVtQ29sdW1uRmllbGRUeXBlLkJPT0xFQU46XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBhdHRyaWJ1dGVWYWx1ZSA/IFwieWVzXCIgOiBcIm5vXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQocHJlZml4ICsgdmFsdWUpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEVudW1Db2x1bW5GaWVsZFR5cGUuTElOSzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5TVFJJTkc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZVZhbHVlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEVudW1Db2x1bW5GaWVsZFR5cGUuTlVNQkVSOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlckNvbmZpZ3MucHJlZml4ID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXBwbHlNYXNrKGF0dHJpYnV0ZVZhbHVlLCBudW1iZXJDb25maWdzLCB0aGlzLmlzTnVtYmVyKGF0dHJpYnV0ZVZhbHVlKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5UT0tFTlM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VG9rZW5zKGF0dHJpYnV0ZVZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHVuaWZpZWRDb2x1bW5WYWx1ZXMgPSBjb2x1bW5WYWx1ZS5qb2luKHNlcGFyYXRvcik7XG4gICAgICAgIGNvbnN0IHVuaW5mb3JtZWROdW1iZXIgPSB1bmlmaWVkQ29sdW1uVmFsdWVzXG4gICAgICAgICAgICAuc3BsaXQoc2VwYXJhdG9yKVxuICAgICAgICAgICAgLmZpbHRlcih2YWx1ZSA9PiB2YWx1ZSA9PT0gdW5pbmZvcm1lZCkubGVuZ3RoO1xuXG4gICAgICAgIGxldCBmb3JtYXR0ZWRDb2x1bW5WYWx1ZTogc3RyaW5nIHwgSVRva2VuW107XG4gICAgICAgIGlmICh1bmluZm9ybWVkTnVtYmVyID09PSBjb2x1bW4uYXR0cmlidXRlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZvcm1hdHRlZENvbHVtblZhbHVlID0gdW5pbmZvcm1lZDtcbiAgICAgICAgfSBlbHNlIGlmIChjb2x1bW4udHlwZSA9PT0gRW51bUNvbHVtbkZpZWxkVHlwZS5UT0tFTlMpIHtcbiAgICAgICAgICAgIGZvcm1hdHRlZENvbHVtblZhbHVlID0gW10uY29uY2F0LmFwcGx5KFtdLCBjb2x1bW5WYWx1ZS5maWx0ZXIodmFsdWVzID0+IHZhbHVlcyAhPT0gdW5pbmZvcm1lZCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9ybWF0dGVkQ29sdW1uVmFsdWUgPSB1bmlmaWVkQ29sdW1uVmFsdWVzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN0eWxlLFxuICAgICAgICAgICAgY29sdW1uVmFsdWU6IGZvcm1hdHRlZENvbHVtblZhbHVlLFxuICAgICAgICAgICAgYmFkZ2VDbGFzcyxcbiAgICAgICAgICAgIHNlcGFyYXRvcixcbiAgICAgICAgICAgIHVuaW5mb3JtZWQsXG4gICAgICAgICAgICB0eXBlOiBjb2x1bW4udHlwZSxcbiAgICAgICAgICAgIHRvb2x0aXA6IHRoaXMuZ2V0Q29sdW1uVG9vbHRpcChjb2x1bW4udG9vbHRpcCksXG4gICAgICAgICAgICBvbkxpbmtDbGljazogY29sdW1uLm9uTGlua0NsaWNrLFxuICAgICAgICAgICAgb25Db2x1bW5DbGljazogY29sdW1uLm9uQ29sdW1uQ2xpY2tcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEJhZGdlQ2xhc3ModmFsdWU6IHN0cmluZywgYmFkZ2VDb25maWdzOiBCYWRnZUNvbmZpZ3NbXSk6IEJhZGdlQ29sdW1uIHtcbiAgICAgICAgY29uc3QgYmFkZ2VDb2x1bW4gPSB7XG4gICAgICAgICAgICBcInNkcy1iYWRnZVwiOiB0cnVlXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGNvbG9yID0gIGJhZGdlQ29uZmlncy5maW5kKGJhZGdlQ29uZmlnID0+IGJhZGdlQ29uZmlnLmVudW1WYWx1ZSA9PT0gdmFsdWUpPy5jb2xvci52YWx1ZU9mKCk7XG4gICAgICAgIGJhZGdlQ29sdW1uW2NvbG9yXSA9IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIGJhZGdlQ29sdW1uO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29sdW1uU2NhbGUoc2NhbGU6IG51bWJlciB8ICgocm93VmFsdWU6IGFueSkgPT4gbnVtYmVyKSk6IG51bWJlciB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2NhbGUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgcmV0dXJuIHNjYWxlKHRoaXMucm93VmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzY2FsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbHVtblRvb2x0aXAodG9vbHRpcDogc3RyaW5nIHwgKChyb3dWYWx1ZTogYW55KSA9PiBzdHJpbmcpKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRvb2x0aXAgIT09IHVuZGVmaW5lZCAmJiB0b29sdGlwICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHRvb2x0aXAgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0b29sdGlwKHRoaXMucm93VmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRvb2x0aXA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlzTnVtYmVyKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEobmV3IEJpZ051bWJlcih2YWx1ZSkuaXNOYU4oKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUb2tlbnModmFsdWVzOiBhbnkpOiBJVG9rZW5bXSB7XG4gICAgICAgIGlmICghdGhpcy5pc0FycmF5KHZhbHVlcykpIHRocm93IG5ldyBFcnJvcihcIlRvIHVzZSB0b2tlbnMgYW4gYXJyYXkgbXVzdCBiZSBpbmZvcm1lZFwiKTtcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWRUb2tlbkFycmF5KHZhbHVlcykpIHRocm93IG5ldyBFcnJvcihcIk5vdCBhIHZhbGlkIHRva2VuIGFycmF5LiBUb2tlbiBhcnJheSBtdXN0IGJlIGEgcHJpbWl0aXZlIHZhbHVlcyBhcnJheSBvciBhbiBvYmplY3RzIHdpdGggbGFiZWwgYXR0cmlidXRlIGFycmF5XCIpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzTGFiZWxPYmplY3RBcnJheSh2YWx1ZXMpKSByZXR1cm4gdmFsdWVzO1xuXG4gICAgICAgIHJldHVybiB2YWx1ZXNcbiAgICAgICAgICAgIC5maWx0ZXIoKHZhbHVlOiBhbnkpID0+IHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwpXG4gICAgICAgICAgICAubWFwKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSB0eXBlb2YgdmFsdWUgPT09IFwic3ltYm9sXCIgPyB2YWx1ZS50b1N0cmluZygpIDogYCR7dmFsdWV9YDtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVmFsaWRUb2tlbkFycmF5KHZhbHVlczogYW55W10pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNQcmltaXRpdmVWYWx1ZXNBcnJheSh2YWx1ZXMpIHx8IHRoaXMuaXNMYWJlbE9iamVjdEFycmF5KHZhbHVlcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1ByaW1pdGl2ZVZhbHVlc0FycmF5KHZhbHVlczogYW55W10pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlcy5maWx0ZXIodmFsdWUgPT4gdmFsdWUgIT09IE9iamVjdCh2YWx1ZSkpLmxlbmd0aCA9PT0gdmFsdWVzLmxlbmd0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzTGFiZWxPYmplY3RBcnJheSh2YWx1ZXM6IGFueVtdKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2YWx1ZXMuZmlsdGVyKHZhbHVlID0+IHZhbHVlPy5sYWJlbCAhPT0gbnVsbCAmJiB2YWx1ZT8ubGFiZWwgIT09IHVuZGVmaW5lZCkubGVuZ3RoID09PSB2YWx1ZXMubGVuZ3RoO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0FycmF5KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTcGxpdHRlZFN0cmluZyhjb2x1bW46IENvbHVtblZhbHVlcyk6IHsgdmFsdWU6IHN0cmluZywgaXNVbmluZm9ybWVkOiBib29sZWFuLCBzZXBhcmF0b3I6IHN0cmluZyB9W10ge1xuICAgICAgICBjb25zdCB7IGNvbHVtblZhbHVlLCBzZXBhcmF0b3IsIHVuaW5mb3JtZWQgfSA9IGNvbHVtbjtcbiAgICAgICAgaWYgKHR5cGVvZiBjb2x1bW5WYWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgY29uc3Qgc3BsaXR0ZWRTdHJpbmcgPSBjb2x1bW5WYWx1ZS5zcGxpdChzZXBhcmF0b3IpO1xuICAgICAgICAgICAgcmV0dXJuIHNwbGl0dGVkU3RyaW5nLm1hcCgoc3RyaW5nLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzTGFzdEluZGV4ID0gc3BsaXR0ZWRTdHJpbmcubGVuZ3RoIC0gMSA9PT0gaW5kZXg7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgaXNVbmluZm9ybWVkOiBzdHJpbmcgPT09IHVuaW5mb3JtZWQsXG4gICAgICAgICAgICAgICAgICAgIHNlcGFyYXRvcjogIWlzTGFzdEluZGV4ID8gc2VwYXJhdG9yIDogXCJcIlxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIl19
|
|
@@ -2,36 +2,38 @@
|
|
|
2
2
|
* Generated bundle index. Do not edit.
|
|
3
3
|
*/
|
|
4
4
|
export * from './public-api';
|
|
5
|
-
export { AutocompleteFieldComponent as
|
|
6
|
-
export { BaseFieldComponent as
|
|
7
|
-
export { BignumberFieldComponent as
|
|
8
|
-
export { BooleanFieldComponent as
|
|
9
|
-
export { CalendarFieldComponent as
|
|
10
|
-
export { ChipsFieldComponent as
|
|
11
|
-
export { CurrencyFieldComponent as
|
|
12
|
-
export { FileUploadComponent as
|
|
13
|
-
export { LookupFieldComponent as
|
|
14
|
-
export { NumberFieldComponent as
|
|
15
|
-
export { RadioButtonComponent as
|
|
16
|
-
export { SelectFieldComponent as
|
|
17
|
-
export { TextAreaFieldComponent as
|
|
18
|
-
export { TextFieldComponent as
|
|
19
|
-
export { RowComponent as
|
|
20
|
-
export { FieldsetComponent as
|
|
21
|
-
export { SectionComponent as
|
|
22
|
-
export { DecimalField as
|
|
23
|
-
export { DynamicFieldComponent as
|
|
24
|
-
export { DynamicFormDirective as
|
|
25
|
-
export { InfiniteScrollDirective as
|
|
26
|
-
export { InfiniteScrollModule as
|
|
27
|
-
export { InfoSignModule as
|
|
28
|
-
export { InfoSignComponent as
|
|
29
|
-
export { NumberLocaleOptions as
|
|
5
|
+
export { AutocompleteFieldComponent as ɵg } from './components/dynamic-form/components/fields/autocomplete/autocomplete-field.component';
|
|
6
|
+
export { BaseFieldComponent as ɵl } from './components/dynamic-form/components/fields/base-field-component';
|
|
7
|
+
export { BignumberFieldComponent as ɵs } from './components/dynamic-form/components/fields/bignumber/number-field.component';
|
|
8
|
+
export { BooleanFieldComponent as ɵh } from './components/dynamic-form/components/fields/boolean/boolean-field.component';
|
|
9
|
+
export { CalendarFieldComponent as ɵi } from './components/dynamic-form/components/fields/calendar/calendar-field.component';
|
|
10
|
+
export { ChipsFieldComponent as ɵj } from './components/dynamic-form/components/fields/chips/chips-field.component';
|
|
11
|
+
export { CurrencyFieldComponent as ɵk } from './components/dynamic-form/components/fields/currency/currency-field.component';
|
|
12
|
+
export { FileUploadComponent as ɵp } from './components/dynamic-form/components/fields/file-upload/file-upload.component';
|
|
13
|
+
export { LookupFieldComponent as ɵq } from './components/dynamic-form/components/fields/lookup/lookup-field.component';
|
|
14
|
+
export { NumberFieldComponent as ɵr } from './components/dynamic-form/components/fields/number/number-field.component';
|
|
15
|
+
export { RadioButtonComponent as ɵt } from './components/dynamic-form/components/fields/radio-button/radio-button-field.component';
|
|
16
|
+
export { SelectFieldComponent as ɵw } from './components/dynamic-form/components/fields/select/select-field.component';
|
|
17
|
+
export { TextAreaFieldComponent as ɵx } from './components/dynamic-form/components/fields/text-area/text-area-field.component';
|
|
18
|
+
export { TextFieldComponent as ɵy } from './components/dynamic-form/components/fields/text/text-field.component';
|
|
19
|
+
export { RowComponent as ɵu } from './components/dynamic-form/components/grid/row/row.component';
|
|
20
|
+
export { FieldsetComponent as ɵo } from './components/dynamic-form/components/structure/fieldset/fieldset.component';
|
|
21
|
+
export { SectionComponent as ɵv } from './components/dynamic-form/components/structure/section/section.component';
|
|
22
|
+
export { DecimalField as ɵba } from './components/dynamic-form/configurations/fields/decimal-field';
|
|
23
|
+
export { DynamicFieldComponent as ɵm } from './components/dynamic-form/dynamic-field.component';
|
|
24
|
+
export { DynamicFormDirective as ɵn } from './components/dynamic-form/dynamic-form.directive';
|
|
25
|
+
export { InfiniteScrollDirective as ɵbi } from './components/infinite-scroll/infinite-scroll.directive';
|
|
26
|
+
export { InfiniteScrollModule as ɵbh } from './components/infinite-scroll/infinite-scroll.module';
|
|
27
|
+
export { InfoSignModule as ɵf } from './components/info-sign';
|
|
28
|
+
export { InfoSignComponent as ɵbe } from './components/info-sign/info-sign.component';
|
|
29
|
+
export { NumberLocaleOptions as ɵbf } from './components/locale/options';
|
|
30
|
+
export { LocalizedBignumberImpurePipe as ɵc } from './components/locale/pipes/localized-bignumber-impure.pipe';
|
|
31
|
+
export { LocalizedBignumberPipe as ɵb } from './components/locale/pipes/localized-bignumber.pipe';
|
|
30
32
|
export { LocalizedCurrencyImpurePipe as ɵa } from './components/locale/pipes/localized-currency-impure.pipe';
|
|
31
|
-
export { FooterComponent as
|
|
32
|
-
export { HeaderComponent as
|
|
33
|
-
export { StructureModule as
|
|
34
|
-
export { TableColumnsComponent as
|
|
35
|
-
export { ThumbnailService as
|
|
36
|
-
export { TokenListModule as
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
export { FooterComponent as ɵbd } from './components/structure/footer.component';
|
|
34
|
+
export { HeaderComponent as ɵbc } from './components/structure/header.component';
|
|
35
|
+
export { StructureModule as ɵbb } from './components/structure/structure.module';
|
|
36
|
+
export { TableColumnsComponent as ɵe } from './components/table/table-column/table-columns.component';
|
|
37
|
+
export { ThumbnailService as ɵbg } from './components/thumbnail/thumbnail.service';
|
|
38
|
+
export { TokenListModule as ɵd } from './components/token-list';
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuaW9yc2lzdGVtYXMtYW5ndWxhci1jb21wb25lbnRzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbInNlbmlvcnNpc3RlbWFzLWFuZ3VsYXItY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsTUFBTSx1RkFBdUYsQ0FBQztBQUN2SSxPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sa0VBQWtFLENBQUM7QUFDMUcsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxNQUFNLDhFQUE4RSxDQUFDO0FBQzNILE9BQU8sRUFBQyxxQkFBcUIsSUFBSSxFQUFFLEVBQUMsTUFBTSw2RUFBNkUsQ0FBQztBQUN4SCxPQUFPLEVBQUMsc0JBQXNCLElBQUksRUFBRSxFQUFDLE1BQU0sK0VBQStFLENBQUM7QUFDM0gsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLHlFQUF5RSxDQUFDO0FBQ2xILE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxFQUFFLEVBQUMsTUFBTSwrRUFBK0UsQ0FBQztBQUMzSCxPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0sK0VBQStFLENBQUM7QUFDeEgsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEVBQUUsRUFBQyxNQUFNLDJFQUEyRSxDQUFDO0FBQ3JILE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSwyRUFBMkUsQ0FBQztBQUNySCxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sdUZBQXVGLENBQUM7QUFDakksT0FBTyxFQUFDLG9CQUFvQixJQUFJLEVBQUUsRUFBQyxNQUFNLDJFQUEyRSxDQUFDO0FBQ3JILE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxpRkFBaUYsQ0FBQztBQUM3SCxPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sdUVBQXVFLENBQUM7QUFDL0csT0FBTyxFQUFDLFlBQVksSUFBSSxFQUFFLEVBQUMsTUFBTSw2REFBNkQsQ0FBQztBQUMvRixPQUFPLEVBQUMsaUJBQWlCLElBQUksRUFBRSxFQUFDLE1BQU0sNEVBQTRFLENBQUM7QUFDbkgsT0FBTyxFQUFDLGdCQUFnQixJQUFJLEVBQUUsRUFBQyxNQUFNLDBFQUEwRSxDQUFDO0FBQ2hILE9BQU8sRUFBQyxZQUFZLElBQUksR0FBRyxFQUEwQixNQUFNLCtEQUErRCxDQUFDO0FBQzNILE9BQU8sRUFBQyxxQkFBcUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUM5RixPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDNUYsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEdBQUcsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxHQUFHLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUNoRyxPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBQyxpQkFBaUIsSUFBSSxHQUFHLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUMsbUJBQW1CLElBQUksR0FBRyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDdkUsT0FBTyxFQUFDLDRCQUE0QixJQUFJLEVBQUUsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQzdHLE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUNoRyxPQUFPLEVBQUMsMkJBQTJCLElBQUksRUFBRSxFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDM0csT0FBTyxFQUFDLGVBQWUsSUFBSSxHQUFHLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUMvRSxPQUFPLEVBQUMsZUFBZSxJQUFJLEdBQUcsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxlQUFlLElBQUksR0FBRyxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQ3BHLE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxHQUFHLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUMsZUFBZSxJQUFJLEVBQUUsRUFBQyxNQUFNLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0F1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50IGFzIMm1Z30gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQge0Jhc2VGaWVsZENvbXBvbmVudCBhcyDJtWx9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvYmFzZS1maWVsZC1jb21wb25lbnQnO1xuZXhwb3J0IHtCaWdudW1iZXJGaWVsZENvbXBvbmVudCBhcyDJtXN9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvYmlnbnVtYmVyL251bWJlci1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtCb29sZWFuRmllbGRDb21wb25lbnQgYXMgybVofSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZmllbGRzL2Jvb2xlYW4vYm9vbGVhbi1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtDYWxlbmRhckZpZWxkQ29tcG9uZW50IGFzIMm1aX0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy9jYWxlbmRhci9jYWxlbmRhci1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtDaGlwc0ZpZWxkQ29tcG9uZW50IGFzIMm1an0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy9jaGlwcy9jaGlwcy1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtDdXJyZW5jeUZpZWxkQ29tcG9uZW50IGFzIMm1a30gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy9jdXJyZW5jeS9jdXJyZW5jeS1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtGaWxlVXBsb2FkQ29tcG9uZW50IGFzIMm1cH0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQnO1xuZXhwb3J0IHtMb29rdXBGaWVsZENvbXBvbmVudCBhcyDJtXF9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvbG9va3VwL2xvb2t1cC1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtOdW1iZXJGaWVsZENvbXBvbmVudCBhcyDJtXJ9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvbnVtYmVyL251bWJlci1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtSYWRpb0J1dHRvbkNvbXBvbmVudCBhcyDJtXR9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvcmFkaW8tYnV0dG9uL3JhZGlvLWJ1dHRvbi1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtTZWxlY3RGaWVsZENvbXBvbmVudCBhcyDJtXd9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvc2VsZWN0L3NlbGVjdC1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtUZXh0QXJlYUZpZWxkQ29tcG9uZW50IGFzIMm1eH0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy90ZXh0LWFyZWEvdGV4dC1hcmVhLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQge1RleHRGaWVsZENvbXBvbmVudCBhcyDJtXl9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvdGV4dC90ZXh0LWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQge1Jvd0NvbXBvbmVudCBhcyDJtXV9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9ncmlkL3Jvdy9yb3cuY29tcG9uZW50JztcbmV4cG9ydCB7RmllbGRzZXRDb21wb25lbnQgYXMgybVvfSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvc3RydWN0dXJlL2ZpZWxkc2V0L2ZpZWxkc2V0LmNvbXBvbmVudCc7XG5leHBvcnQge1NlY3Rpb25Db21wb25lbnQgYXMgybV2fSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvc3RydWN0dXJlL3NlY3Rpb24vc2VjdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0IHtEZWNpbWFsRmllbGQgYXMgybViYSxEZWNpbWFsRmllbGRDb25maWcgYXMgybV6fSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9kZWNpbWFsLWZpZWxkJztcbmV4cG9ydCB7RHluYW1pY0ZpZWxkQ29tcG9uZW50IGFzIMm1bX0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9keW5hbWljLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQge0R5bmFtaWNGb3JtRGlyZWN0aXZlIGFzIMm1bn0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0uZGlyZWN0aXZlJztcbmV4cG9ydCB7SW5maW5pdGVTY3JvbGxEaXJlY3RpdmUgYXMgybViaX0gZnJvbSAnLi9jb21wb25lbnRzL2luZmluaXRlLXNjcm9sbC9pbmZpbml0ZS1zY3JvbGwuZGlyZWN0aXZlJztcbmV4cG9ydCB7SW5maW5pdGVTY3JvbGxNb2R1bGUgYXMgybViaH0gZnJvbSAnLi9jb21wb25lbnRzL2luZmluaXRlLXNjcm9sbC9pbmZpbml0ZS1zY3JvbGwubW9kdWxlJztcbmV4cG9ydCB7SW5mb1NpZ25Nb2R1bGUgYXMgybVmfSBmcm9tICcuL2NvbXBvbmVudHMvaW5mby1zaWduJztcbmV4cG9ydCB7SW5mb1NpZ25Db21wb25lbnQgYXMgybViZX0gZnJvbSAnLi9jb21wb25lbnRzL2luZm8tc2lnbi9pbmZvLXNpZ24uY29tcG9uZW50JztcbmV4cG9ydCB7TnVtYmVyTG9jYWxlT3B0aW9ucyBhcyDJtWJmfSBmcm9tICcuL2NvbXBvbmVudHMvbG9jYWxlL29wdGlvbnMnO1xuZXhwb3J0IHtMb2NhbGl6ZWRCaWdudW1iZXJJbXB1cmVQaXBlIGFzIMm1Y30gZnJvbSAnLi9jb21wb25lbnRzL2xvY2FsZS9waXBlcy9sb2NhbGl6ZWQtYmlnbnVtYmVyLWltcHVyZS5waXBlJztcbmV4cG9ydCB7TG9jYWxpemVkQmlnbnVtYmVyUGlwZSBhcyDJtWJ9IGZyb20gJy4vY29tcG9uZW50cy9sb2NhbGUvcGlwZXMvbG9jYWxpemVkLWJpZ251bWJlci5waXBlJztcbmV4cG9ydCB7TG9jYWxpemVkQ3VycmVuY3lJbXB1cmVQaXBlIGFzIMm1YX0gZnJvbSAnLi9jb21wb25lbnRzL2xvY2FsZS9waXBlcy9sb2NhbGl6ZWQtY3VycmVuY3ktaW1wdXJlLnBpcGUnO1xuZXhwb3J0IHtGb290ZXJDb21wb25lbnQgYXMgybViZH0gZnJvbSAnLi9jb21wb25lbnRzL3N0cnVjdHVyZS9mb290ZXIuY29tcG9uZW50JztcbmV4cG9ydCB7SGVhZGVyQ29tcG9uZW50IGFzIMm1YmN9IGZyb20gJy4vY29tcG9uZW50cy9zdHJ1Y3R1cmUvaGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQge1N0cnVjdHVyZU1vZHVsZSBhcyDJtWJifSBmcm9tICcuL2NvbXBvbmVudHMvc3RydWN0dXJlL3N0cnVjdHVyZS5tb2R1bGUnO1xuZXhwb3J0IHtUYWJsZUNvbHVtbnNDb21wb25lbnQgYXMgybVlfSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUvdGFibGUtY29sdW1uL3RhYmxlLWNvbHVtbnMuY29tcG9uZW50JztcbmV4cG9ydCB7VGh1bWJuYWlsU2VydmljZSBhcyDJtWJnfSBmcm9tICcuL2NvbXBvbmVudHMvdGh1bWJuYWlsL3RodW1ibmFpbC5zZXJ2aWNlJztcbmV4cG9ydCB7VG9rZW5MaXN0TW9kdWxlIGFzIMm1ZH0gZnJvbSAnLi9jb21wb25lbnRzL3Rva2VuLWxpc3QnOyJdfQ==
|