@libs-ui/components-datetime-picker 0.2.77 → 0.2.78
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/custom-ranges/calendar/calendar.component.d.ts +1 -1
- package/custom-ranges/custom-ranges.component.d.ts +1 -1
- package/defines/common-date.define.d.ts +2 -0
- package/defines/date-options.define.d.ts +0 -2
- package/esm2022/custom-ranges/calendar/calendar.component.mjs +6 -3
- package/esm2022/custom-ranges/custom-ranges.component.mjs +45 -3
- package/esm2022/defines/common-date.define.mjs +3 -0
- package/esm2022/defines/date-options.define.mjs +1 -3
- package/esm2022/index.mjs +2 -1
- package/esm2022/picker.component.mjs +12 -2
- package/fesm2022/libs-ui-components-datetime-picker.mjs +62 -7
- package/fesm2022/libs-ui-components-datetime-picker.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/package.json +1 -1
- package/picker.component.d.ts +1 -1
|
@@ -34,7 +34,21 @@ export class LibsUiComponentsDatetimePickerCustomRangesComponent {
|
|
|
34
34
|
endDate = model(dayjs().endOf('day'));
|
|
35
35
|
showCustomRangeLabel = input(undefined);
|
|
36
36
|
keepCalendarOpeningWithRange = input(undefined);
|
|
37
|
-
singleDateSelected = input(
|
|
37
|
+
singleDateSelected = input(undefined, {
|
|
38
|
+
transform: (value) => {
|
|
39
|
+
if (!value) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
let date = value.date;
|
|
43
|
+
if (typeof date === 'string') {
|
|
44
|
+
date = dayjs(date);
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
...value,
|
|
48
|
+
date
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
});
|
|
38
52
|
dateRangeSelected = input(undefined, {
|
|
39
53
|
transform: (value) => {
|
|
40
54
|
if (!value) {
|
|
@@ -76,10 +90,37 @@ export class LibsUiComponentsDatetimePickerCustomRangesComponent {
|
|
|
76
90
|
this.endDate.set(dayjs().endOf('day'));
|
|
77
91
|
}
|
|
78
92
|
const dateRangeSelected = this.dateRangeSelected();
|
|
93
|
+
const singleDateSelected = this.singleDateSelected();
|
|
79
94
|
const customRange = {
|
|
80
95
|
id: this.dateOptions()?.customRangeLabel || '',
|
|
81
96
|
label: this.dateOptions()?.customRangeLabel || ''
|
|
82
97
|
};
|
|
98
|
+
if (this.isSingle()) {
|
|
99
|
+
if (this.hasTimePicker()) {
|
|
100
|
+
const now = dayjs();
|
|
101
|
+
this.startDate.update(current => {
|
|
102
|
+
if (current) {
|
|
103
|
+
current.set('hour', 10).set('minute', 30);
|
|
104
|
+
// current.hour(now.hour()).minute(now.minute());
|
|
105
|
+
}
|
|
106
|
+
console.log('current', current, now, now.hour(), now.minute());
|
|
107
|
+
return current;
|
|
108
|
+
});
|
|
109
|
+
this.endDate.update(current => {
|
|
110
|
+
if (current) {
|
|
111
|
+
current.hour(now.hour()).minute(now.minute());
|
|
112
|
+
}
|
|
113
|
+
return current;
|
|
114
|
+
});
|
|
115
|
+
console.log(this.startDate(), this.endDate());
|
|
116
|
+
}
|
|
117
|
+
if (singleDateSelected) {
|
|
118
|
+
this.startDate.set(singleDateSelected.date);
|
|
119
|
+
this.endDate.set(singleDateSelected.date);
|
|
120
|
+
}
|
|
121
|
+
this.renderRanges();
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
83
124
|
if (dateRangeSelected) {
|
|
84
125
|
this.selectedQuickRange.set(dateRangeSelected.quickRangeId ? dateRangeSelected.quickRangeId : customRange.id);
|
|
85
126
|
this.chosenQuickRange.set(dateRangeSelected.quickRangeId ?? customRange.id);
|
|
@@ -103,10 +144,11 @@ export class LibsUiComponentsDatetimePickerCustomRangesComponent {
|
|
|
103
144
|
}
|
|
104
145
|
renderRanges() {
|
|
105
146
|
if (this.isSingle()) {
|
|
147
|
+
this.showCalTableInRanges.set(true);
|
|
106
148
|
return;
|
|
107
149
|
}
|
|
108
150
|
const rangesDefault = getDateRangeDefault();
|
|
109
|
-
const ranges = this.
|
|
151
|
+
const ranges = this.dateOptions()?.ranges;
|
|
110
152
|
this.quickRangesArray.set([]);
|
|
111
153
|
for (const key in ranges) {
|
|
112
154
|
const rangeValue = rangesDefault[key];
|
|
@@ -263,4 +305,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
263
305
|
LibsUiComponentsButtonsButtonComponent
|
|
264
306
|
], template: "<div #pickerContainer\n class=\"libs-ui-component-custom_ranges flex rounded-[4px] bg-[#ffffff] z-[1000] overflow-[hidden] relative inline\"\n [class.flex-row-reverse]=\"positionQuickRanges() === 'right'\">\n @if (!isSingle()) {\n <div class=\"libs-ui-component-custom_ranges-ranges {{ classInclude() || '' }}\"\n [class.border-l-[#e6e8ed]]=\"positionQuickRanges() === 'right' && showCalTableInRanges()\"\n [class.border-l]=\"positionQuickRanges() === 'right' && showCalTableInRanges()\"\n [class.border-r-[#e6e8ed]]=\"positionQuickRanges() === 'left' && showCalTableInRanges()\"\n [class.border-r]=\"positionQuickRanges() === 'left' && showCalTableInRanges()\"\n [class.!min-h-[260px]]=\"showCalTableInRanges() && !isSingle()\"\n [class.!min-h-[300px]]=\"hasTimePicker() && !isSingle()\"\n [class.!w-[160px]]=\"!widthByParent()\"\n [class.!w-full]=\"widthByParent()\">\n @for (range of quickRangesArray(); track range.id) {\n <div class=\"flex items-center hover:bg-[var(--libs-ui-color-light-3)] cursor-pointer px-[16px] py-[8px]\"\n [class.libs-ui-selected-range]=\"range.id === chosenQuickRange() && showCustomRangeLabel()\"\n [class.bg-[var(--libs-ui-color-light-3)]]=\"range.id === chosenQuickRange() || range.id === selectedQuickRange()\"\n (click)=\"handlerClickRange($event, range)\">\n <div class=\"libs-ui-font-h5r flex text-[#333333] min-w-0 w-full\">\n <div LibsUiComponentsPopoverDirective\n type=\"text\"\n [config]=\"{maxWidth:160,direction:'top',zIndex:(zIndex() ||1000) + 1}\"\n [innerHTML]=\"range.label\"\n (click)=\"handlerClickRange($event, range)\">\n </div>\n </div>\n <i class=\"text-[12px] ml-[16px]\"\n [class.libs-ui-icon-check]=\"range.id === selectedQuickRange()\"\n [class.text-[var(--libs-ui-color-default)]]=\"range.id === selectedQuickRange()\"></i>\n </div>\n }\n </div>\n }\n @if (showCalTableInRanges()) {\n <div class=\"m-[16px] w-full\">\n <libs_ui-components-datetime-picker-custom_ranges-calendar [isSingle]=\"isSingle()\"\n [autoApply]=\"autoApply()\"\n [zIndex]=\"zIndex()\"\n [flagMouse]=\"flagMouse()\"\n [dateOptions]=\"dateOptions()\"\n [hasTimePicker]=\"hasTimePicker()\"\n [quickRangesArray]=\"quickRangesArray()\"\n [startDate]=\"startDate()\"\n [endDate]=\"endDate()\"\n [classInclude]=\"'w-full'\"\n (outCancel)=\"handlerCancel()\"\n (outPickerDate)=\"handlerPickerDate($event)\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\"\n (outChangStageFlagMouse)=\"handlerChangeFlagMouse($event)\" />\n </div>\n }\n</div>\n", styles: [".libs-ui-component-custom_ranges{position:absolute;box-shadow:0 2px 4px #00000029,0 2px 8px #0000001f}.libs-ui-component-custom_ranges .libs-ui-component-custom_ranges-ranges{width:159px;flex-shrink:0}.libs-ui-component-custom_ranges .libs-ui-component-custom_ranges-ranges .libs-ui-selected-range{position:relative}.libs-ui-component-custom_ranges .libs-ui-component-custom_ranges-ranges .libs-ui-selected-range:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:2px;background-color:var(--libs-ui-color-default)!important}@media (min-width: 564px){.libs-ui-component-custom_ranges{width:auto}}\n"] }]
|
|
265
307
|
}], ctorParameters: () => [] });
|
|
266
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJhbmdlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvcGlja2VyL3NyYy9jdXN0b20tcmFuZ2VzL2N1c3RvbS1yYW5nZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2RhdGV0aW1lL3BpY2tlci9zcmMvY3VzdG9tLXJhbmdlcy9jdXN0b20tcmFuZ2VzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZJLE9BQU8sRUFBYyxnQ0FBZ0MsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSzFHLE9BQU8sRUFBRSwyREFBMkQsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVHLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQWdCNUYsTUFBTSxPQUFPLG1EQUFtRDtJQUM5RCxlQUFlO0lBQ0wsb0JBQW9CLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQzlDLGdCQUFnQixHQUFHLE1BQU0sQ0FBb0IsRUFBRSxDQUFDLENBQUM7SUFDakQsa0JBQWtCLEdBQUcsTUFBTSxDQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUNBQW1DO0lBQzVFLGdCQUFnQixHQUFHLE1BQU0sQ0FB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QUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNwRCx5QkFBeUI7UUFDekIsNkJBQTZCO0lBQy9CLENBQUM7d0dBL1JVLG1EQUFtRDs0RkFBbkQsbURBQW1ELDAwRkMxQmhFLHl2RkFvREEsNnBCRGhDSSxlQUFlLCtCQUNmLDJEQUEyRCxxZUFDM0QsZ0NBQWdDOzs0RkFJdkIsbURBQW1EO2tCQWQvRCxTQUFTOytCQUVFLGtEQUFrRCxjQUdoRCxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsZUFBZTt3QkFDZiwyREFBMkQ7d0JBQzNELGdDQUFnQzt3QkFDaEMsc0NBQXNDO3FCQUN2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGVmZmVjdCwgaW5wdXQsIG1vZGVsLCBPbkRlc3Ryb3ksIE9uSW5pdCwgb3V0cHV0LCBzaWduYWwsIHVudHJhY2tlZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJRmxhZ01vdXNlLCBMaWJzVWlDb21wb25lbnRzUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gXCJAbGlicy11aS9jb21wb25lbnRzLXBvcG92ZXJcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IHsgZGVmYXVsdExvY2FsZUNvbmZpZywgZ2V0RGF0ZU9wdGlvbnMsIGdldERhdGVSYW5nZURlZmF1bHQgfSBmcm9tIFwiLi4vZGVmaW5lcy9kYXRlLW9wdGlvbnMuZGVmaW5lXCI7XG5pbXBvcnQgeyBJRW1pdERhdGVDYWxlbmRhciwgSUVtaXREYXRlUmFuZ2UsIElFbWl0U2luZ2xlRGF0ZSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL2NhbGVuZGFyLWVtaXQuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBJRGF0ZVJhbmdlIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvY2FsZW5kYXItdmFyaWFibGVzLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgSUNhbGVuZGFyRnVuY3Rpb25Db250cm9sRXZlbnQgfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9mdW5jdGlvbi1jb250cm9sLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uQ29uZmlnIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvcGlja2VyLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lUGlja2VyQ3VzdG9tUmFuZ2VzQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tIFwiLi9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnRcIjtcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNCdXR0b25zQnV0dG9uQ29tcG9uZW50IH0gZnJvbSBcIkBsaWJzLXVpL2NvbXBvbmVudHMtYnV0dG9ucy1idXR0b25cIjtcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGlic191aS1jb21wb25lbnRzLWRhdGV0aW1lLXBpY2tlci1jdXN0b21fcmFuZ2VzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbS1yYW5nZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jdXN0b20tcmFuZ2VzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIExpYnNVaUNvbXBvbmVudHNEYXRldGltZVBpY2tlckN1c3RvbVJhbmdlc0NhbGVuZGFyQ29tcG9uZW50LFxuICAgIExpYnNVaUNvbXBvbmVudHNQb3BvdmVyQ29tcG9uZW50LFxuICAgIExpYnNVaUNvbXBvbmVudHNCdXR0b25zQnV0dG9uQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lUGlja2VyQ3VzdG9tUmFuZ2VzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKiogUFJPUEVSVFkgKi9cbiAgcHJvdGVjdGVkIHNob3dDYWxUYWJsZUluUmFuZ2VzID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJvdGVjdGVkIHF1aWNrUmFuZ2VzQXJyYXkgPSBzaWduYWw8QXJyYXk8SURhdGVSYW5nZT4+KFtdKTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkUXVpY2tSYW5nZSA9IHNpZ25hbDxzdHJpbmc+KCcnKTsgLy8gcXVpY2sgcmFuZ2UgxJHDoyDEkcaw4bujYyBsxrB1IHRyxrDhu5tjIMSRw7NcbiAgcHJvdGVjdGVkIGNob3NlblF1aWNrUmFuZ2UgPSBzaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpOyAvLyBxdWljayByYW5nZSDEkWFuZyDEkcaw4bujYyBjaOG7jW5cblxuICBwcml2YXRlIGNhbGVuZGFyU2hvd2luZyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgdGltZW91dHMgPSBzaWduYWw8QXJyYXk8bnVtYmVyPj4oW10pO1xuICBwcml2YXRlIGNhbGVuZGFyRnVuY3Rpb25Db250cm9sRXZlbnQgPSBzaWduYWw8SUNhbGVuZGFyRnVuY3Rpb25Db250cm9sRXZlbnQgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgY2hvc2VuU2luZ2xlRGF0ZSA9IHNpZ25hbDxJRW1pdFNpbmdsZURhdGUgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgY2hvc2VuRGF0ZVJhbmdlID0gc2lnbmFsPElFbWl0RGF0ZVJhbmdlIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIC8qKiBJTlBVVCAqL1xuICAvLyByZWFkb25seSBTZWxlY3RlZFF1aWNrUmFuZ2UgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgcmVhZG9ubHkgekluZGV4ID0gaW5wdXQ8bnVtYmVyLCBudW1iZXI+KDEyMDAsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/IDEyMDAgfSk7XG4gIHJlYWRvbmx5IGNsYXNzSW5jbHVkZSA9IGlucHV0PHN0cmluZz4oJycpO1xuICByZWFkb25seSBleHRlbmRSYW5nZXMgPSBpbnB1dDxBcnJheTxJRGF0ZVJhbmdlPj4oW10pO1xuICByZWFkb25seSB3aWR0aEJ5UGFyZW50ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBhdXRvQXBwbHkgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgcmVhZG9ubHkgcG9zaXRpb25RdWlja1JhbmdlcyA9IGlucHV0PCdsZWZ0JyB8ICdyaWdodCcsICdsZWZ0JyB8ICdyaWdodCc+KCdsZWZ0JywgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gJ2xlZnQnIH0pO1xuICByZWFkb25seSBpc1NpbmdsZSA9IGlucHV0PGJvb2xlYW4sIGJvb2xlYW4+KGZhbHNlLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyBmYWxzZSB9KTtcbiAgcmVhZG9ubHkgaGFzVGltZVBpY2tlciA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSBmbGFnTW91c2UgPSBpbnB1dDxJRmxhZ01vdXNlPih7IGlzTW91c2VFbnRlcjogZmFsc2UsIGlzTW91c2VFbnRlckNvbnRlbnQ6IGZhbHNlIH0pO1xuICByZWFkb25seSBkYXRlT3B0aW9ucyA9IGlucHV0PExvY2FsaXphdGlvbkNvbmZpZz4oeyAuLi5kZWZhdWx0TG9jYWxlQ29uZmlnKCksIC4uLmdldERhdGVPcHRpb25zKCkgfSk7XG4gIHJlYWRvbmx5IGFsd2F5c1Nob3dDYWxlbmRhcnMgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHN0YXJ0RGF0ZSA9IG1vZGVsPGRheWpzLkRheWpzIHwgdW5kZWZpbmVkPihkYXlqcygpLnN0YXJ0T2YoJ2RheScpKTtcbiAgcmVhZG9ubHkgZW5kRGF0ZSA9IG1vZGVsPGRheWpzLkRheWpzIHwgdW5kZWZpbmVkPihkYXlqcygpLmVuZE9mKCdkYXknKSk7XG4gIHJlYWRvbmx5IHNob3dDdXN0b21SYW5nZUxhYmVsID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkga2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZSA9IGlucHV0PGJvb2xlYW4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgcmVhZG9ubHkgc2luZ2xlRGF0ZVNlbGVjdGVkID0gaW5wdXQ8SUVtaXRTaW5nbGVEYXRlPigpO1xuICByZWFkb25seSBkYXRlUmFuZ2VTZWxlY3RlZCA9IGlucHV0PElFbWl0RGF0ZVJhbmdlIHwgdW5kZWZpbmVkLCBJRW1pdERhdGVSYW5nZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkLCB7XG4gICAgdHJhbnNmb3JtOiAodmFsdWUpID0+IHtcbiAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGV0IHN0YXJ0RGF0ZSA9IHZhbHVlLnN0YXJ0RGF0ZTtcbiAgICAgIGxldCBlbmREYXRlID0gdmFsdWUuZW5kRGF0ZTtcblxuICAgICAgaWYgKHR5cGVvZiBzdGFydERhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHN0YXJ0RGF0ZSA9IGRheWpzKHN0YXJ0RGF0ZSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgZW5kRGF0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgZW5kRGF0ZSA9IGRheWpzKGVuZERhdGUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi52YWx1ZSxcbiAgICAgICAgc3RhcnREYXRlLFxuICAgICAgICBlbmREYXRlXG4gICAgICB9O1xuICAgIH1cbiAgfSk7XG5cbiAgLyoqIE9VVFBVVCAqL1xuICByZWFkb25seSBvdXRDaGFuZ1N0YWdlRmxhZ01vdXNlID0gb3V0cHV0PElGbGFnTW91c2U+KCk7XG4gIHJlYWRvbmx5IG91dFVwZGF0ZVdpZHRoID0gb3V0cHV0PG51bWJlcj4oKTtcbiAgcmVhZG9ubHkgb3V0Q2FuY2VsID0gb3V0cHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgb3V0U2VsZWN0U2luZ2xlRGF0ZSA9IG91dHB1dDxJRW1pdFNpbmdsZURhdGU+KCk7XG4gIHJlYWRvbmx5IG91dFNlbGVjdERhdGVSYW5nZSA9IG91dHB1dDxJRW1pdERhdGVSYW5nZT4oKTtcbiAgcmVhZG9ubHkgb3V0Q2xpY2tSYW5nZSA9IG91dHB1dDxJRGF0ZVJhbmdlPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB1bnRyYWNrZWQodGhpcy5vbkFmdGVyVmlld0luaXQuYmluZCh0aGlzKSkpO1xuICB9XG4gIG5nT25Jbml0KCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkFmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKCF0aGlzLnN0YXJ0RGF0ZSgpKSB7XG4gICAgICB0aGlzLnN0YXJ0RGF0ZS5zZXQoZGF5anMoKS5zdGFydE9mKCdkYXknKSk7XG4gICAgfVxuICAgIGlmICghdGhpcy5lbmREYXRlKCkpIHtcbiAgICAgIHRoaXMuZW5kRGF0ZS5zZXQoZGF5anMoKS5lbmRPZignZGF5JykpO1xuICAgIH1cbiAgICBjb25zdCBkYXRlUmFuZ2VTZWxlY3RlZCA9IHRoaXMuZGF0ZVJhbmdlU2VsZWN0ZWQoKTtcbiAgICBjb25zdCBjdXN0b21SYW5nZSA9IHtcbiAgICAgIGlkOiB0aGlzLmRhdGVPcHRpb25zKCk/LmN1c3RvbVJhbmdlTGFiZWwgfHwgJycsXG4gICAgICBsYWJlbDogdGhpcy5kYXRlT3B0aW9ucygpPy5jdXN0b21SYW5nZUxhYmVsIHx8ICcnXG4gICAgfTtcblxuICAgIGlmIChkYXRlUmFuZ2VTZWxlY3RlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFF1aWNrUmFuZ2Uuc2V0KGRhdGVSYW5nZVNlbGVjdGVkLnF1aWNrUmFuZ2VJZCA/IGRhdGVSYW5nZVNlbGVjdGVkLnF1aWNrUmFuZ2VJZCA6IGN1c3RvbVJhbmdlLmlkKTtcbiAgICAgIHRoaXMuY2hvc2VuUXVpY2tSYW5nZS5zZXQoZGF0ZVJhbmdlU2VsZWN0ZWQucXVpY2tSYW5nZUlkID8/IGN1c3RvbVJhbmdlLmlkKTtcblxuICAgICAgdGhpcy5zdGFydERhdGUuc2V0KGRhdGVSYW5nZVNlbGVjdGVkLnN0YXJ0RGF0ZSBhcyBkYXlqcy5EYXlqcyk7XG4gICAgICB0aGlzLmVuZERhdGUuc2V0KGRhdGVSYW5nZVNlbGVjdGVkLmVuZERhdGUgYXMgZGF5anMuRGF5anMpO1xuICAgIH1cbiAgICBpZiAodGhpcy5oYXNUaW1lUGlja2VyKCkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRRdWlja1JhbmdlLnNldChjdXN0b21SYW5nZS5pZCk7XG4gICAgICB0aGlzLmNob3NlblF1aWNrUmFuZ2Uuc2V0KGN1c3RvbVJhbmdlLmlkKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRRdWlja1JhbmdlKCkgPT09IHRoaXMuZGF0ZU9wdGlvbnMoKT8uY3VzdG9tUmFuZ2VMYWJlbCkge1xuICAgICAgdGhpcy5zaG93Q2FsVGFibGVJblJhbmdlcy5zZXQodHJ1ZSk7XG4gICAgfVxuICAgIHRoaXMucmVuZGVyUmFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVdpZHRoKCkge1xuICAgIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5vdXRVcGRhdGVXaWR0aC5lbWl0KDEpO1xuICAgIH0pIGFzIHVua25vd24gYXMgbnVtYmVyO1xuXG4gICAgdGhpcy50aW1lb3V0cy51cGRhdGUoaWRzID0+IFsuLi5pZHMsIHRpbWVvdXRJZF0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJSYW5nZXMoKSB7XG4gICAgaWYgKHRoaXMuaXNTaW5nbGUoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByYW5nZXNEZWZhdWx0ID0gZ2V0RGF0ZVJhbmdlRGVmYXVsdCgpO1xuICAgIGNvbnN0IHJhbmdlcyA9IHRoaXMuaXNTaW5nbGUoKSA/IHt9IDogdGhpcy5kYXRlT3B0aW9ucygpPy5yYW5nZXM7XG5cbiAgICB0aGlzLnF1aWNrUmFuZ2VzQXJyYXkuc2V0KFtdKTtcblxuICAgIGZvciAoY29uc3Qga2V5IGluIHJhbmdlcykge1xuICAgICAgY29uc3QgcmFuZ2VWYWx1ZSA9IHJhbmdlc0RlZmF1bHRba2V5XTtcbiAgICAgIGNvbnN0IHN0YXJ0ID0gZGF5anMocmFuZ2VWYWx1ZVswXSk7XG4gICAgICBjb25zdCBlbmQgPSBkYXlqcyhyYW5nZVZhbHVlWzFdKTtcblxuICAgICAgdGhpcy5xdWlja1Jhbmdlc0FycmF5LnVwZGF0ZShjdXJyZW50ID0+IHtcbiAgICAgICAgY3VycmVudC5wdXNoKHtcbiAgICAgICAgICBpZDoga2V5LFxuICAgICAgICAgIGxhYmVsOiByYW5nZXNba2V5XSxcbiAgICAgICAgICB2YWx1ZXM6IFtzdGFydCwgZW5kXVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5zaG93Q3VzdG9tUmFuZ2VMYWJlbCgpICYmIHRoaXMuZGF0ZU9wdGlvbnMoKT8uY3VzdG9tUmFuZ2VMYWJlbCkge1xuICAgICAgdGhpcy5xdWlja1Jhbmdlc0FycmF5LnVwZGF0ZShjdXJyZW50ID0+IHtcbiAgICAgICAgY3VycmVudC5wdXNoKHtcbiAgICAgICAgICBpZDogdGhpcy5kYXRlT3B0aW9ucygpPy5jdXN0b21SYW5nZUxhYmVsIHx8ICcnLFxuICAgICAgICAgIGxhYmVsOiB0aGlzLmRhdGVPcHRpb25zKCk/LmN1c3RvbVJhbmdlTGFiZWwgfHwgJydcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZXh0ZW5kUmFuZ2VzKCkpIHtcbiAgICAgIHRoaXMucXVpY2tSYW5nZXNBcnJheS51cGRhdGUoY3VycmVudCA9PiB7XG4gICAgICAgIGN1cnJlbnQudW5zaGlmdCguLi50aGlzLmV4dGVuZFJhbmdlcygpKTtcblxuICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoIXRoaXMucXVpY2tSYW5nZXNBcnJheSgpLmxlbmd0aCkge1xuICAgICAgdGhpcy5zaG93Q2FsVGFibGVJblJhbmdlcy5zZXQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJDYW5jZWwoKSB7XG4gICAgdGhpcy5vdXRDYW5jZWwuZW1pdCgnJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlclBpY2tlckRhdGUoZXZlbnQ6IElFbWl0RGF0ZUNhbGVuZGFyKSB7XG4gICAgY29uc29sZS5sb2coJ2hhbmRsZXJQaWNrZXJEYXRlJywgZXZlbnQpO1xuXG4gICAgdGhpcy5jaG9zZW5TaW5nbGVEYXRlLnNldCh7XG4gICAgICBkaXNwbGF5TGFiZWw6IGV2ZW50LmRpc3BsYXlMYWJlbCxcbiAgICAgIGRhdGU6IGV2ZW50LnN0YXJ0RGF0ZSxcbiAgICAgIHZhbHVlczogZXZlbnQuZGV0YWlsRGF0ZVBpY2tlci5zdGFydCgpXG4gICAgfSk7XG4gICAgLy8gaWYgKCF0aGlzLmlzU2luZ2xlKCkgJiYgZXZlbnQuc3RhcnREYXRlICYmICFldmVudC5lbmREYXRlKSB7XG4gICAgLy8gICBjb25zdCBlbmRUaW1lID0gZXZlbnQuZGV0YWlsRGF0ZVBpY2tlci5lbmQoKTtcbiAgICAvLyAgIGV2ZW50LmVuZERhdGUgPSBldmVudC5zdGFydERhdGUuY2xvbmUoKS5ob3VyKGVuZFRpbWUuaG91ciBhcyBudW1iZXIpLm1pbnV0ZShlbmRUaW1lLm1pbnV0ZSBhcyBudW1iZXIpLnNlY29uZCg1OSk7XG4gICAgLy8gfVxuICAgIHRoaXMuY2hvc2VuRGF0ZVJhbmdlLnNldCh7XG4gICAgICBxdWlja1JhbmdlSWQ6IHRoaXMuY2hvc2VuUXVpY2tSYW5nZSgpLFxuICAgICAgLi4uZXZlbnRcbiAgICB9KTtcbiAgICBjb25zdCBjaG9zZW5TaW5nbGVEYXRlID0gdGhpcy5jaG9zZW5TaW5nbGVEYXRlKCk7XG4gICAgY29uc3QgY2hvc2VuRGF0ZVJhbmdlID0gdGhpcy5jaG9zZW5EYXRlUmFuZ2UoKTtcbiAgICBpZiAodGhpcy5pc1NpbmdsZSgpICYmIGNob3NlblNpbmdsZURhdGUpIHtcbiAgICAgIHRoaXMub3V0U2VsZWN0U2luZ2xlRGF0ZS5lbWl0KGNob3NlblNpbmdsZURhdGUpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghY2hvc2VuRGF0ZVJhbmdlIHx8ICghY2hvc2VuRGF0ZVJhbmdlLnN0YXJ0RGF0ZSAmJiAhY2hvc2VuRGF0ZVJhbmdlLmVuZERhdGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMub3V0U2VsZWN0RGF0ZVJhbmdlLmVtaXQoY2hvc2VuRGF0ZVJhbmdlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyQ2xpY2tSYW5nZShlOiBFdmVudCwgcmFuZ2U6IElEYXRlUmFuZ2UpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMudXBkYXRlV2lkdGgoKTtcbiAgICB0aGlzLmNob3NlblF1aWNrUmFuZ2Uuc2V0KHJhbmdlLmlkKTtcblxuICAgIGlmIChyYW5nZS5pZCA9PT0gdGhpcy5kYXRlT3B0aW9ucygpPy5jdXN0b21SYW5nZUxhYmVsKSB7XG4gICAgICB0aGlzLmNhbGVuZGFyU2hvd2luZy5zZXQodHJ1ZSk7XG4gICAgICB0aGlzLnNob3dDYWxUYWJsZUluUmFuZ2VzLnNldCh0cnVlKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5leHRlbmRSYW5nZXMoKSkge1xuICAgICAgY29uc3QgZmluZEV4dGVybmFsUmFuZ2UgPSB0aGlzLmV4dGVuZFJhbmdlcygpLmZpbmQoaXRlbSA9PiBpdGVtLmxhYmVsID09PSByYW5nZS5pZCk7XG5cbiAgICAgIGlmIChmaW5kRXh0ZXJuYWxSYW5nZSAmJiByYW5nZS5pZCA9PT0gZmluZEV4dGVybmFsUmFuZ2UubGFiZWwpIHtcbiAgICAgICAgaWYgKGZpbmRFeHRlcm5hbFJhbmdlLnZhbHVlcykge1xuICAgICAgICAgIHRoaXMub3V0U2VsZWN0RGF0ZVJhbmdlLmVtaXQoeyBxdWlja1JhbmdlSWQ6IGZpbmRFeHRlcm5hbFJhbmdlLmlkLCBkaXNwbGF5TGFiZWw6IGZpbmRFeHRlcm5hbFJhbmdlLmxhYmVsLCBzdGFydERhdGU6IGZpbmRFeHRlcm5hbFJhbmdlLnZhbHVlc1swXSwgZW5kRGF0ZTogZmluZEV4dGVybmFsUmFuZ2UudmFsdWVzWzFdIH0pO1xuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3V0U2VsZWN0RGF0ZVJhbmdlLmVtaXQoeyBxdWlja1JhbmdlSWQ6IGZpbmRFeHRlcm5hbFJhbmdlLmlkLCBkaXNwbGF5TGFiZWw6IGZpbmRFeHRlcm5hbFJhbmdlLmxhYmVsLCBzdGFydERhdGU6IHVuZGVmaW5lZCwgZW5kRGF0ZTogdW5kZWZpbmVkIH0pO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgZGF0ZXMgPSByYW5nZS52YWx1ZXMgPz8gW107XG5cbiAgICAvLyB0aGlzLnN0YXJ0RGF0ZS5zZXQoZGF0ZXNbMF0uY2xvbmUoKS5ob3VyKDApLm1pbnV0ZSgwKS5zZWNvbmQoMCkpO1xuICAgIC8vIHRoaXMuZW5kRGF0ZS5zZXQoZGF0ZXNbMV0uY2xvbmUoKS5ob3VyKDIzKS5taW51dGUoNTkpLnNlY29uZCg1OSkpO1xuICAgIC8vIHRoaXMudGltZVZhbHVlID0geyBob3VyOiAwLCB0b0hvdXI6IDAsIG1pbnV0ZTogMjMsIHRvTWludXRlOiA1OSB9O1xuICAgIC8vIHRoaXMudGltZXBpY2tlclZhcmlhYmxlcy5sZWZ0LnNlbGVjdGVkSG91ciA9IDA7XG4gICAgLy8gdGhpcy50aW1lcGlja2VyVmFyaWFibGVzLmxlZnQuc2VsZWN0ZWRNaW51dGUgPSAwO1xuICAgIC8vIHRoaXMudGltZXBpY2tlclZhcmlhYmxlcy5yaWdodC5zZWxlY3RlZEhvdXIgPSAyMztcbiAgICAvLyB0aGlzLnRpbWVwaWNrZXJWYXJpYWJsZXMucmlnaHQuc2VsZWN0ZWRNaW51dGUgPSA1OTtcblxuICAgIC8vIHRoaXMuc2hvd1JhbmdlTGFiZWxPbklucHV0ICYmIGxhYmVsICE9PSB0aGlzLmxvY2FsZURheS5jdXN0b21SYW5nZUxhYmVsID8gdGhpcy5jaG9zZW5MYWJlbCA9IGxhYmVsIDogdGhpcy5jYWxjdWxhdGVDaG9zZW5MYWJlbCgpO1xuXG4gICAgLy8gLy8gdGhpcy5hdXRvQXBwbHkuc2V0KHRydWUpO1xuICAgIC8vIGlmICghdGhpcy5oYXNUaW1lUGlja2VyKCkpIHtcbiAgICAvLyAgIGlmKHRoaXMuc3RhcnREYXRlKCkpIHtcbiAgICAvLyAgICAgdGhpcy5zdGFydERhdGUuc2V0KHRoaXMuc3RhcnREYXRlKCk/LnN0YXJ0T2YoJ2RheScpKTtcbiAgICAvLyAgIH1cbiAgICAvLyAgIGlmKHRoaXMuZW5kRGF0ZSgpKSB7XG4gICAgLy8gICAgIHRoaXMuZW5kRGF0ZS5zZXQodGhpcy5lbmREYXRlKCk/LmVuZE9mKCdkYXknKSk7XG4gICAgLy8gICB9XG4gICAgLy8gfVxuICAgIC8vIGlmICghdGhpcy5hbHdheXNTaG93Q2FsZW5kYXJzKCkpIHtcbiAgICAvLyAgIHRoaXMuY2FsZW5kYXJTaG93aW5nLnNldChmYWxzZSk7XG4gICAgLy8gfVxuICAgIC8vIHRoaXMub3V0Q2xpY2tSYW5nZS5lbWl0KHJhbmdlKTtcblxuICAgIGlmICghdGhpcy5rZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlKCkgfHwgIXRoaXMuYWx3YXlzU2hvd0NhbGVuZGFycygpKSB7XG4gICAgICB0aGlzLm91dFNlbGVjdERhdGVSYW5nZS5lbWl0KHsgcXVpY2tSYW5nZUlkOiByYW5nZS5pZCwgZGlzcGxheUxhYmVsOiByYW5nZS5sYWJlbCwgc3RhcnREYXRlOiByYW5nZS52YWx1ZXM/LlswXSwgZW5kRGF0ZTogcmFuZ2UudmFsdWVzPy5bMV0gfSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gaWYgKHRoaXMudGltZVBpY2tlcikge1xuICAgIC8vICAgdGhpcy5yZW5kZXJUaW1lUGlja2VyKFNpZGVFbnVtLmxlZnQpO1xuICAgIC8vICAgdGhpcy5yZW5kZXJUaW1lUGlja2VyKFNpZGVFbnVtLnJpZ2h0KTtcbiAgICAvLyB9XG4gICAgLy8gaWYgKHRoaXMuZ2V0TWF4RGF0ZSgpICYmIHRoaXMuZ2V0TWF4RGF0ZSgpLmlzU2FtZShkYXRlc1swXSwgJ21vbnRoJykpIHtcbiAgICAvLyAgIHRoaXMucmlnaHRDYWxlbmRhci5tb250aCA9IHRoaXMucmlnaHRDYWxlbmRhci5tb250aCAmJiB0aGlzLnJpZ2h0Q2FsZW5kYXIubW9udGgubW9udGgoZGF0ZXNbMF0ubW9udGgoKSk7XG4gICAgLy8gICB0aGlzLnJpZ2h0Q2FsZW5kYXIubW9udGggPSB0aGlzLnJpZ2h0Q2FsZW5kYXIubW9udGggJiYgdGhpcy5yaWdodENhbGVuZGFyLm1vbnRoLnllYXIoZGF0ZXNbMF0ueWVhcigpKTtcbiAgICAvLyAgIHRoaXMubGVmdENhbGVuZGFyLm1vbnRoID0gdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGggJiYgdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGgubW9udGgoZGF0ZXNbMF0ubW9udGgoKSAtIDEpO1xuICAgIC8vICAgdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGggPSB0aGlzLmxlZnRDYWxlbmRhci5tb250aCAmJiB0aGlzLmxlZnRDYWxlbmRhci5tb250aC55ZWFyKGRhdGVzWzFdLnllYXIoKSk7XG5cbiAgICAvLyAgIHJldHVybiB0aGlzLnVwZGF0ZUNhbGVuZGFycygpO1xuICAgIC8vIH1cbiAgICAvLyB0aGlzLmxlZnRDYWxlbmRhci5tb250aCA9IHRoaXMubGVmdENhbGVuZGFyLm1vbnRoICYmIHRoaXMubGVmdENhbGVuZGFyLm1vbnRoLm1vbnRoKGRhdGVzWzBdLm1vbnRoKCkpO1xuICAgIC8vIHRoaXMubGVmdENhbGVuZGFyLm1vbnRoID0gdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGggJiYgdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGgueWVhcihkYXRlc1swXS55ZWFyKCkpO1xuICAgIC8vIGNvbnN0IG5leHRNb250aCA9IGRhdGVzWzBdLmNsb25lKCkuYWRkKDEsICdtb250aCcpO1xuXG4gICAgLy8gdGhpcy5yaWdodENhbGVuZGFyLm1vbnRoID0gdGhpcy5yaWdodENhbGVuZGFyLm1vbnRoICYmIHRoaXMucmlnaHRDYWxlbmRhci5tb250aC5tb250aChuZXh0TW9udGgubW9udGgoKSk7XG4gICAgLy8gdGhpcy5yaWdodENhbGVuZGFyLm1vbnRoID0gdGhpcy5yaWdodENhbGVuZGFyLm1vbnRoICYmIHRoaXMucmlnaHRDYWxlbmRhci5tb250aC55ZWFyKG5leHRNb250aC55ZWFyKCkpO1xuICAgIC8vIHRoaXMudXBkYXRlQ2FsZW5kYXJzKCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckNsaWNrQ2FuY2VsKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIC8vIHRoaXMuc3RhcnREYXRlLnNldChkYXlqcygwKSk7XG4gICAgLy8gdGhpcy5lbmREYXRlLnNldChkYXlqcygwKSk7XG4gICAgdGhpcy5vdXRDYW5jZWwuZW1pdCgnJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckNoYW5nZUZsYWdNb3VzZShmbGFnTW91c2U6IElGbGFnTW91c2UpIHtcbiAgICB0aGlzLm91dENoYW5nU3RhZ2VGbGFnTW91c2UuZW1pdChmbGFnTW91c2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJGdW5jdGlvbnNDb250cm9sKGV2ZW50OiBJQ2FsZW5kYXJGdW5jdGlvbkNvbnRyb2xFdmVudCkge1xuICAgIHRoaXMuY2FsZW5kYXJGdW5jdGlvbkNvbnRyb2xFdmVudC5zZXQoZXZlbnQpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy50aW1lb3V0cygpLmZvckVhY2goaXRlbSA9PiBjbGVhclRpbWVvdXQoaXRlbSkpO1xuICAgIC8vIHRoaXMub25EZXN0cm95Lm5leHQoKTtcbiAgICAvLyB0aGlzLm9uRGVzdHJveS5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8ZGl2ICNwaWNrZXJDb250YWluZXJcbiAgY2xhc3M9XCJsaWJzLXVpLWNvbXBvbmVudC1jdXN0b21fcmFuZ2VzIGZsZXggcm91bmRlZC1bNHB4XSBiZy1bI2ZmZmZmZl0gei1bMTAwMF0gb3ZlcmZsb3ctW2hpZGRlbl0gcmVsYXRpdmUgaW5saW5lXCJcbiAgW2NsYXNzLmZsZXgtcm93LXJldmVyc2VdPVwicG9zaXRpb25RdWlja1JhbmdlcygpID09PSAncmlnaHQnXCI+XG4gIEBpZiAoIWlzU2luZ2xlKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwibGlicy11aS1jb21wb25lbnQtY3VzdG9tX3Jhbmdlcy1yYW5nZXMge3sgY2xhc3NJbmNsdWRlKCkgfHwgJycgfX1cIlxuICAgICAgW2NsYXNzLmJvcmRlci1sLVsjZTZlOGVkXV09XCJwb3NpdGlvblF1aWNrUmFuZ2VzKCkgPT09ICdyaWdodCcgJiYgc2hvd0NhbFRhYmxlSW5SYW5nZXMoKVwiXG4gICAgICBbY2xhc3MuYm9yZGVyLWxdPVwicG9zaXRpb25RdWlja1JhbmdlcygpID09PSAncmlnaHQnICYmIHNob3dDYWxUYWJsZUluUmFuZ2VzKClcIlxuICAgICAgW2NsYXNzLmJvcmRlci1yLVsjZTZlOGVkXV09XCJwb3NpdGlvblF1aWNrUmFuZ2VzKCkgPT09ICdsZWZ0JyAmJiBzaG93Q2FsVGFibGVJblJhbmdlcygpXCJcbiAgICAgIFtjbGFzcy5ib3JkZXItcl09XCJwb3NpdGlvblF1aWNrUmFuZ2VzKCkgPT09ICdsZWZ0JyAmJiBzaG93Q2FsVGFibGVJblJhbmdlcygpXCJcbiAgICAgIFtjbGFzcy4hbWluLWgtWzI2MHB4XV09XCJzaG93Q2FsVGFibGVJblJhbmdlcygpICYmICFpc1NpbmdsZSgpXCJcbiAgICAgIFtjbGFzcy4hbWluLWgtWzMwMHB4XV09XCJoYXNUaW1lUGlja2VyKCkgJiYgIWlzU2luZ2xlKClcIlxuICAgICAgW2NsYXNzLiF3LVsxNjBweF1dPVwiIXdpZHRoQnlQYXJlbnQoKVwiXG4gICAgICBbY2xhc3MuIXctZnVsbF09XCJ3aWR0aEJ5UGFyZW50KClcIj5cbiAgICAgIEBmb3IgKHJhbmdlIG9mIHF1aWNrUmFuZ2VzQXJyYXkoKTsgdHJhY2sgcmFuZ2UuaWQpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGhvdmVyOmJnLVt2YXIoLS1saWJzLXVpLWNvbG9yLWxpZ2h0LTMpXSBjdXJzb3ItcG9pbnRlciBweC1bMTZweF0gcHktWzhweF1cIlxuICAgICAgICAgIFtjbGFzcy5saWJzLXVpLXNlbGVjdGVkLXJhbmdlXT1cInJhbmdlLmlkID09PSBjaG9zZW5RdWlja1JhbmdlKCkgJiYgc2hvd0N1c3RvbVJhbmdlTGFiZWwoKVwiXG4gICAgICAgICAgW2NsYXNzLmJnLVt2YXIoLS1saWJzLXVpLWNvbG9yLWxpZ2h0LTMpXV09XCJyYW5nZS5pZCA9PT0gY2hvc2VuUXVpY2tSYW5nZSgpIHx8IHJhbmdlLmlkID09PSBzZWxlY3RlZFF1aWNrUmFuZ2UoKVwiXG4gICAgICAgICAgKGNsaWNrKT1cImhhbmRsZXJDbGlja1JhbmdlKCRldmVudCwgcmFuZ2UpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktZm9udC1oNXIgZmxleCB0ZXh0LVsjMzMzMzMzXSBtaW4tdy0wIHctZnVsbFwiPlxuICAgICAgICAgICAgPGRpdiBMaWJzVWlDb21wb25lbnRzUG9wb3ZlckRpcmVjdGl2ZVxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgIFtjb25maWddPVwie21heFdpZHRoOjE2MCxkaXJlY3Rpb246J3RvcCcsekluZGV4Oih6SW5kZXgoKSB8fDEwMDApICsgMX1cIlxuICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cInJhbmdlLmxhYmVsXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZXJDbGlja1JhbmdlKCRldmVudCwgcmFuZ2UpXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8aSBjbGFzcz1cInRleHQtWzEycHhdIG1sLVsxNnB4XVwiXG4gICAgICAgICAgICBbY2xhc3MubGlicy11aS1pY29uLWNoZWNrXT1cInJhbmdlLmlkID09PSBzZWxlY3RlZFF1aWNrUmFuZ2UoKVwiXG4gICAgICAgICAgICBbY2xhc3MudGV4dC1bdmFyKC0tbGlicy11aS1jb2xvci1kZWZhdWx0KV1dPVwicmFuZ2UuaWQgPT09IHNlbGVjdGVkUXVpY2tSYW5nZSgpXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuICBAaWYgKHNob3dDYWxUYWJsZUluUmFuZ2VzKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwibS1bMTZweF0gdy1mdWxsXCI+XG4gICAgICA8bGlic191aS1jb21wb25lbnRzLWRhdGV0aW1lLXBpY2tlci1jdXN0b21fcmFuZ2VzLWNhbGVuZGFyIFtpc1NpbmdsZV09XCJpc1NpbmdsZSgpXCJcbiAgICAgICAgW2F1dG9BcHBseV09XCJhdXRvQXBwbHkoKVwiXG4gICAgICAgIFt6SW5kZXhdPVwiekluZGV4KClcIlxuICAgICAgICBbZmxhZ01vdXNlXT1cImZsYWdNb3VzZSgpXCJcbiAgICAgICAgW2RhdGVPcHRpb25zXT1cImRhdGVPcHRpb25zKClcIlxuICAgICAgICBbaGFzVGltZVBpY2tlcl09XCJoYXNUaW1lUGlja2VyKClcIlxuICAgICAgICBbcXVpY2tSYW5nZXNBcnJheV09XCJxdWlja1Jhbmdlc0FycmF5KClcIlxuICAgICAgICBbc3RhcnREYXRlXT1cInN0YXJ0RGF0ZSgpXCJcbiAgICAgICAgW2VuZERhdGVdPVwiZW5kRGF0ZSgpXCJcbiAgICAgICAgW2NsYXNzSW5jbHVkZV09XCIndy1mdWxsJ1wiXG4gICAgICAgIChvdXRDYW5jZWwpPVwiaGFuZGxlckNhbmNlbCgpXCJcbiAgICAgICAgKG91dFBpY2tlckRhdGUpPVwiaGFuZGxlclBpY2tlckRhdGUoJGV2ZW50KVwiXG4gICAgICAgIChvdXRGdW5jdGlvbnNDb250cm9sKT1cImhhbmRsZXJGdW5jdGlvbnNDb250cm9sKCRldmVudClcIlxuICAgICAgICAob3V0Q2hhbmdTdGFnZUZsYWdNb3VzZSk9XCJoYW5kbGVyQ2hhbmdlRmxhZ01vdXNlKCRldmVudClcIiAvPlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==
|
|
308
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJhbmdlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvcGlja2VyL3NyYy9jdXN0b20tcmFuZ2VzL2N1c3RvbS1yYW5nZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2RhdGV0aW1lL3BpY2tlci9zcmMvY3VzdG9tLXJhbmdlcy9jdXN0b20tcmFuZ2VzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZJLE9BQU8sRUFBYyxnQ0FBZ0MsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSzFHLE9BQU8sRUFBRSwyREFBMkQsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVHLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQWdCNUYsTUFBTSxPQUFPLG1EQUFtRDtJQUM5RCxlQUFlO0lBQ0wsb0JBQW9CLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQzlDLGdCQUFnQixHQUFHLE1BQU0sQ0FBb0IsRUFBRSxDQUFDLENBQUM7SUFDakQsa0JBQWtCLEdBQUcsTUFBTSxDQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUNBQW1DO0lBQzVFLGdCQUFnQixHQUFHLE1BQU0sQ0FB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RyxtQ0FBbUM7UUFDbkMsSUFBSTtRQUNKLHdHQUF3RztRQUN4RyxzR0FBc0c7UUFDdEcsc0RBQXNEO1FBRXRELDRHQUE0RztRQUM1RywwR0FBMEc7UUFDMUcsMEJBQTBCO1FBRTFCLE9BQU87SUFDVCxDQUFDO0lBRVMsa0JBQWtCLENBQUMsS0FBWTtRQUN2QyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsZ0NBQWdDO1FBQ2hDLDhCQUE4QjtRQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRVMsc0JBQXNCLENBQUMsU0FBcUI7UUFDcEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRVMsdUJBQXVCLENBQUMsS0FBb0M7UUFDcEUsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNwRCx5QkFBeUI7UUFDekIsNkJBQTZCO0lBQy9CLENBQUM7d0dBcFZVLG1EQUFtRDs0RkFBbkQsbURBQW1ELDAwRkMxQmhFLHl2RkFvREEsNnBCRGhDSSxlQUFlLCtCQUNmLDJEQUEyRCxxZUFDM0QsZ0NBQWdDOzs0RkFJdkIsbURBQW1EO2tCQWQvRCxTQUFTOytCQUVFLGtEQUFrRCxjQUdoRCxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsZUFBZTt3QkFDZiwyREFBMkQ7d0JBQzNELGdDQUFnQzt3QkFDaEMsc0NBQXNDO3FCQUN2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGVmZmVjdCwgaW5wdXQsIG1vZGVsLCBPbkRlc3Ryb3ksIE9uSW5pdCwgb3V0cHV0LCBzaWduYWwsIHVudHJhY2tlZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJRmxhZ01vdXNlLCBMaWJzVWlDb21wb25lbnRzUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gXCJAbGlicy11aS9jb21wb25lbnRzLXBvcG92ZXJcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IHsgZGVmYXVsdExvY2FsZUNvbmZpZywgZ2V0RGF0ZU9wdGlvbnMsIGdldERhdGVSYW5nZURlZmF1bHQgfSBmcm9tIFwiLi4vZGVmaW5lcy9kYXRlLW9wdGlvbnMuZGVmaW5lXCI7XG5pbXBvcnQgeyBJRW1pdERhdGVDYWxlbmRhciwgSUVtaXREYXRlUmFuZ2UsIElFbWl0U2luZ2xlRGF0ZSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL2NhbGVuZGFyLWVtaXQuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBJRGF0ZVJhbmdlIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvY2FsZW5kYXItdmFyaWFibGVzLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgSUNhbGVuZGFyRnVuY3Rpb25Db250cm9sRXZlbnQgfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9mdW5jdGlvbi1jb250cm9sLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uQ29uZmlnIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvcGlja2VyLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lUGlja2VyQ3VzdG9tUmFuZ2VzQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tIFwiLi9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnRcIjtcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNCdXR0b25zQnV0dG9uQ29tcG9uZW50IH0gZnJvbSBcIkBsaWJzLXVpL2NvbXBvbmVudHMtYnV0dG9ucy1idXR0b25cIjtcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGlic191aS1jb21wb25lbnRzLWRhdGV0aW1lLXBpY2tlci1jdXN0b21fcmFuZ2VzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbS1yYW5nZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jdXN0b20tcmFuZ2VzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIExpYnNVaUNvbXBvbmVudHNEYXRldGltZVBpY2tlckN1c3RvbVJhbmdlc0NhbGVuZGFyQ29tcG9uZW50LFxuICAgIExpYnNVaUNvbXBvbmVudHNQb3BvdmVyQ29tcG9uZW50LFxuICAgIExpYnNVaUNvbXBvbmVudHNCdXR0b25zQnV0dG9uQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lUGlja2VyQ3VzdG9tUmFuZ2VzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKiogUFJPUEVSVFkgKi9cbiAgcHJvdGVjdGVkIHNob3dDYWxUYWJsZUluUmFuZ2VzID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJvdGVjdGVkIHF1aWNrUmFuZ2VzQXJyYXkgPSBzaWduYWw8QXJyYXk8SURhdGVSYW5nZT4+KFtdKTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkUXVpY2tSYW5nZSA9IHNpZ25hbDxzdHJpbmc+KCcnKTsgLy8gcXVpY2sgcmFuZ2UgxJHDoyDEkcaw4bujYyBsxrB1IHRyxrDhu5tjIMSRw7NcbiAgcHJvdGVjdGVkIGNob3NlblF1aWNrUmFuZ2UgPSBzaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpOyAvLyBxdWljayByYW5nZSDEkWFuZyDEkcaw4bujYyBjaOG7jW5cblxuICBwcml2YXRlIGNhbGVuZGFyU2hvd2luZyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgdGltZW91dHMgPSBzaWduYWw8QXJyYXk8bnVtYmVyPj4oW10pO1xuICBwcml2YXRlIGNhbGVuZGFyRnVuY3Rpb25Db250cm9sRXZlbnQgPSBzaWduYWw8SUNhbGVuZGFyRnVuY3Rpb25Db250cm9sRXZlbnQgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgY2hvc2VuU2luZ2xlRGF0ZSA9IHNpZ25hbDxJRW1pdFNpbmdsZURhdGUgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgY2hvc2VuRGF0ZVJhbmdlID0gc2lnbmFsPElFbWl0RGF0ZVJhbmdlIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIC8qKiBJTlBVVCAqL1xuICAvLyByZWFkb25seSBTZWxlY3RlZFF1aWNrUmFuZ2UgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgcmVhZG9ubHkgekluZGV4ID0gaW5wdXQ8bnVtYmVyLCBudW1iZXI+KDEyMDAsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/IDEyMDAgfSk7XG4gIHJlYWRvbmx5IGNsYXNzSW5jbHVkZSA9IGlucHV0PHN0cmluZz4oJycpO1xuICByZWFkb25seSBleHRlbmRSYW5nZXMgPSBpbnB1dDxBcnJheTxJRGF0ZVJhbmdlPj4oW10pO1xuICByZWFkb25seSB3aWR0aEJ5UGFyZW50ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBhdXRvQXBwbHkgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgcmVhZG9ubHkgcG9zaXRpb25RdWlja1JhbmdlcyA9IGlucHV0PCdsZWZ0JyB8ICdyaWdodCcsICdsZWZ0JyB8ICdyaWdodCc+KCdsZWZ0JywgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gJ2xlZnQnIH0pO1xuICByZWFkb25seSBpc1NpbmdsZSA9IGlucHV0PGJvb2xlYW4sIGJvb2xlYW4+KGZhbHNlLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyBmYWxzZSB9KTtcbiAgcmVhZG9ubHkgaGFzVGltZVBpY2tlciA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSBmbGFnTW91c2UgPSBpbnB1dDxJRmxhZ01vdXNlPih7IGlzTW91c2VFbnRlcjogZmFsc2UsIGlzTW91c2VFbnRlckNvbnRlbnQ6IGZhbHNlIH0pO1xuICByZWFkb25seSBkYXRlT3B0aW9ucyA9IGlucHV0PExvY2FsaXphdGlvbkNvbmZpZz4oeyAuLi5kZWZhdWx0TG9jYWxlQ29uZmlnKCksIC4uLmdldERhdGVPcHRpb25zKCkgfSk7XG4gIHJlYWRvbmx5IGFsd2F5c1Nob3dDYWxlbmRhcnMgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHN0YXJ0RGF0ZSA9IG1vZGVsPGRheWpzLkRheWpzIHwgdW5kZWZpbmVkPihkYXlqcygpLnN0YXJ0T2YoJ2RheScpKTtcbiAgcmVhZG9ubHkgZW5kRGF0ZSA9IG1vZGVsPGRheWpzLkRheWpzIHwgdW5kZWZpbmVkPihkYXlqcygpLmVuZE9mKCdkYXknKSk7XG4gIHJlYWRvbmx5IHNob3dDdXN0b21SYW5nZUxhYmVsID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkga2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZSA9IGlucHV0PGJvb2xlYW4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgcmVhZG9ubHkgc2luZ2xlRGF0ZVNlbGVjdGVkID0gaW5wdXQ8SUVtaXRTaW5nbGVEYXRlIHwgdW5kZWZpbmVkLCBJRW1pdFNpbmdsZURhdGUgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCwge1xuICAgIHRyYW5zZm9ybTogKHZhbHVlKSA9PiB7XG4gICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGxldCBkYXRlID0gdmFsdWUuZGF0ZTtcblxuICAgICAgaWYgKHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJykge1xuICAgICAgICBkYXRlID0gZGF5anMoZGF0ZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnZhbHVlLFxuICAgICAgICBkYXRlXG4gICAgICB9O1xuICAgIH1cbiAgfSk7XG4gIHJlYWRvbmx5IGRhdGVSYW5nZVNlbGVjdGVkID0gaW5wdXQ8SUVtaXREYXRlUmFuZ2UgfCB1bmRlZmluZWQsIElFbWl0RGF0ZVJhbmdlIHwgdW5kZWZpbmVkPih1bmRlZmluZWQsIHtcbiAgICB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4ge1xuICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBsZXQgc3RhcnREYXRlID0gdmFsdWUuc3RhcnREYXRlO1xuICAgICAgbGV0IGVuZERhdGUgPSB2YWx1ZS5lbmREYXRlO1xuXG4gICAgICBpZiAodHlwZW9mIHN0YXJ0RGF0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgc3RhcnREYXRlID0gZGF5anMoc3RhcnREYXRlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBlbmREYXRlID09PSAnc3RyaW5nJykge1xuICAgICAgICBlbmREYXRlID0gZGF5anMoZW5kRGF0ZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnZhbHVlLFxuICAgICAgICBzdGFydERhdGUsXG4gICAgICAgIGVuZERhdGVcbiAgICAgIH07XG4gICAgfVxuICB9KTtcblxuICAvKiogT1VUUFVUICovXG4gIHJlYWRvbmx5IG91dENoYW5nU3RhZ2VGbGFnTW91c2UgPSBvdXRwdXQ8SUZsYWdNb3VzZT4oKTtcbiAgcmVhZG9ubHkgb3V0VXBkYXRlV2lkdGggPSBvdXRwdXQ8bnVtYmVyPigpO1xuICByZWFkb25seSBvdXRDYW5jZWwgPSBvdXRwdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBvdXRTZWxlY3RTaW5nbGVEYXRlID0gb3V0cHV0PElFbWl0U2luZ2xlRGF0ZT4oKTtcbiAgcmVhZG9ubHkgb3V0U2VsZWN0RGF0ZVJhbmdlID0gb3V0cHV0PElFbWl0RGF0ZVJhbmdlPigpO1xuICByZWFkb25seSBvdXRDbGlja1JhbmdlID0gb3V0cHV0PElEYXRlUmFuZ2U+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHVudHJhY2tlZCh0aGlzLm9uQWZ0ZXJWaWV3SW5pdC5iaW5kKHRoaXMpKSk7XG4gIH1cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gIH1cblxuICBwcml2YXRlIG9uQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuc3RhcnREYXRlKCkpIHtcbiAgICAgIHRoaXMuc3RhcnREYXRlLnNldChkYXlqcygpLnN0YXJ0T2YoJ2RheScpKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmVuZERhdGUoKSkge1xuICAgICAgdGhpcy5lbmREYXRlLnNldChkYXlqcygpLmVuZE9mKCdkYXknKSk7XG4gICAgfVxuICAgIGNvbnN0IGRhdGVSYW5nZVNlbGVjdGVkID0gdGhpcy5kYXRlUmFuZ2VTZWxlY3RlZCgpO1xuICAgIGNvbnN0IHNpbmdsZURhdGVTZWxlY3RlZCA9IHRoaXMuc2luZ2xlRGF0ZVNlbGVjdGVkKCk7XG4gICAgY29uc3QgY3VzdG9tUmFuZ2UgPSB7XG4gICAgICBpZDogdGhpcy5kYXRlT3B0aW9ucygpPy5jdXN0b21SYW5nZUxhYmVsIHx8ICcnLFxuICAgICAgbGFiZWw6IHRoaXMuZGF0ZU9wdGlvbnMoKT8uY3VzdG9tUmFuZ2VMYWJlbCB8fCAnJ1xuICAgIH07XG5cbiAgICBpZiAodGhpcy5pc1NpbmdsZSgpKSB7XG4gICAgICBpZiAodGhpcy5oYXNUaW1lUGlja2VyKCkpIHtcbiAgICAgICAgY29uc3Qgbm93ID0gZGF5anMoKTtcblxuICAgICAgICB0aGlzLnN0YXJ0RGF0ZS51cGRhdGUoY3VycmVudCA9PiB7XG4gICAgICAgICAgaWYgKGN1cnJlbnQpIHtcbiAgICAgICAgICAgIGN1cnJlbnQuc2V0KCdob3VyJywgMTApLnNldCgnbWludXRlJywgMzApO1xuICAgICAgICAgICAgLy8gY3VycmVudC5ob3VyKG5vdy5ob3VyKCkpLm1pbnV0ZShub3cubWludXRlKCkpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnNvbGUubG9nKCdjdXJyZW50JywgY3VycmVudCwgbm93LCBub3cuaG91cigpLCBub3cubWludXRlKCkpO1xuXG5cbiAgICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZW5kRGF0ZS51cGRhdGUoY3VycmVudCA9PiB7XG4gICAgICAgICAgaWYgKGN1cnJlbnQpIHtcbiAgICAgICAgICAgIGN1cnJlbnQuaG91cihub3cuaG91cigpKS5taW51dGUobm93Lm1pbnV0ZSgpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMuc3RhcnREYXRlKCksIHRoaXMuZW5kRGF0ZSgpKTtcbiAgICAgIH1cbiAgICAgIGlmIChzaW5nbGVEYXRlU2VsZWN0ZWQpIHtcbiAgICAgICAgdGhpcy5zdGFydERhdGUuc2V0KHNpbmdsZURhdGVTZWxlY3RlZC5kYXRlIGFzIGRheWpzLkRheWpzKTtcbiAgICAgICAgdGhpcy5lbmREYXRlLnNldChzaW5nbGVEYXRlU2VsZWN0ZWQuZGF0ZSBhcyBkYXlqcy5EYXlqcyk7XG4gICAgICB9XG4gICAgICB0aGlzLnJlbmRlclJhbmdlcygpO1xuXG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZGF0ZVJhbmdlU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRRdWlja1JhbmdlLnNldChkYXRlUmFuZ2VTZWxlY3RlZC5xdWlja1JhbmdlSWQgPyBkYXRlUmFuZ2VTZWxlY3RlZC5xdWlja1JhbmdlSWQgOiBjdXN0b21SYW5nZS5pZCk7XG4gICAgICB0aGlzLmNob3NlblF1aWNrUmFuZ2Uuc2V0KGRhdGVSYW5nZVNlbGVjdGVkLnF1aWNrUmFuZ2VJZCA/PyBjdXN0b21SYW5nZS5pZCk7XG5cbiAgICAgIHRoaXMuc3RhcnREYXRlLnNldChkYXRlUmFuZ2VTZWxlY3RlZC5zdGFydERhdGUgYXMgZGF5anMuRGF5anMpO1xuICAgICAgdGhpcy5lbmREYXRlLnNldChkYXRlUmFuZ2VTZWxlY3RlZC5lbmREYXRlIGFzIGRheWpzLkRheWpzKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGFzVGltZVBpY2tlcigpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkUXVpY2tSYW5nZS5zZXQoY3VzdG9tUmFuZ2UuaWQpO1xuICAgICAgdGhpcy5jaG9zZW5RdWlja1JhbmdlLnNldChjdXN0b21SYW5nZS5pZCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnNlbGVjdGVkUXVpY2tSYW5nZSgpID09PSB0aGlzLmRhdGVPcHRpb25zKCk/LmN1c3RvbVJhbmdlTGFiZWwpIHtcbiAgICAgIHRoaXMuc2hvd0NhbFRhYmxlSW5SYW5nZXMuc2V0KHRydWUpO1xuICAgIH1cbiAgICB0aGlzLnJlbmRlclJhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVXaWR0aCgpIHtcbiAgICBjb25zdCB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMub3V0VXBkYXRlV2lkdGguZW1pdCgxKTtcbiAgICB9KSBhcyB1bmtub3duIGFzIG51bWJlcjtcblxuICAgIHRoaXMudGltZW91dHMudXBkYXRlKGlkcyA9PiBbLi4uaWRzLCB0aW1lb3V0SWRdKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyUmFuZ2VzKCkge1xuICAgIGlmICh0aGlzLmlzU2luZ2xlKCkpIHtcbiAgICAgIHRoaXMuc2hvd0NhbFRhYmxlSW5SYW5nZXMuc2V0KHRydWUpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHJhbmdlc0RlZmF1bHQgPSBnZXREYXRlUmFuZ2VEZWZhdWx0KCk7XG4gICAgY29uc3QgcmFuZ2VzID0gdGhpcy5kYXRlT3B0aW9ucygpPy5yYW5nZXM7XG5cbiAgICB0aGlzLnF1aWNrUmFuZ2VzQXJyYXkuc2V0KFtdKTtcblxuICAgIGZvciAoY29uc3Qga2V5IGluIHJhbmdlcykge1xuICAgICAgY29uc3QgcmFuZ2VWYWx1ZSA9IHJhbmdlc0RlZmF1bHRba2V5XTtcbiAgICAgIGNvbnN0IHN0YXJ0ID0gZGF5anMocmFuZ2VWYWx1ZVswXSk7XG4gICAgICBjb25zdCBlbmQgPSBkYXlqcyhyYW5nZVZhbHVlWzFdKTtcblxuICAgICAgdGhpcy5xdWlja1Jhbmdlc0FycmF5LnVwZGF0ZShjdXJyZW50ID0+IHtcbiAgICAgICAgY3VycmVudC5wdXNoKHtcbiAgICAgICAgICBpZDoga2V5LFxuICAgICAgICAgIGxhYmVsOiByYW5nZXNba2V5XSxcbiAgICAgICAgICB2YWx1ZXM6IFtzdGFydCwgZW5kXVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5zaG93Q3VzdG9tUmFuZ2VMYWJlbCgpICYmIHRoaXMuZGF0ZU9wdGlvbnMoKT8uY3VzdG9tUmFuZ2VMYWJlbCkge1xuICAgICAgdGhpcy5xdWlja1Jhbmdlc0FycmF5LnVwZGF0ZShjdXJyZW50ID0+IHtcbiAgICAgICAgY3VycmVudC5wdXNoKHtcbiAgICAgICAgICBpZDogdGhpcy5kYXRlT3B0aW9ucygpPy5jdXN0b21SYW5nZUxhYmVsIHx8ICcnLFxuICAgICAgICAgIGxhYmVsOiB0aGlzLmRhdGVPcHRpb25zKCk/LmN1c3RvbVJhbmdlTGFiZWwgfHwgJydcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZXh0ZW5kUmFuZ2VzKCkpIHtcbiAgICAgIHRoaXMucXVpY2tSYW5nZXNBcnJheS51cGRhdGUoY3VycmVudCA9PiB7XG4gICAgICAgIGN1cnJlbnQudW5zaGlmdCguLi50aGlzLmV4dGVuZFJhbmdlcygpKTtcblxuICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoIXRoaXMucXVpY2tSYW5nZXNBcnJheSgpLmxlbmd0aCkge1xuICAgICAgdGhpcy5zaG93Q2FsVGFibGVJblJhbmdlcy5zZXQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJDYW5jZWwoKSB7XG4gICAgdGhpcy5vdXRDYW5jZWwuZW1pdCgnJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlclBpY2tlckRhdGUoZXZlbnQ6IElFbWl0RGF0ZUNhbGVuZGFyKSB7XG4gICAgY29uc29sZS5sb2coJ2hhbmRsZXJQaWNrZXJEYXRlJywgZXZlbnQpO1xuXG4gICAgdGhpcy5jaG9zZW5TaW5nbGVEYXRlLnNldCh7XG4gICAgICBkaXNwbGF5TGFiZWw6IGV2ZW50LmRpc3BsYXlMYWJlbCxcbiAgICAgIGRhdGU6IGV2ZW50LnN0YXJ0RGF0ZSxcbiAgICAgIHZhbHVlczogZXZlbnQuZGV0YWlsRGF0ZVBpY2tlci5zdGFydCgpXG4gICAgfSk7XG4gICAgLy8gaWYgKCF0aGlzLmlzU2luZ2xlKCkgJiYgZXZlbnQuc3RhcnREYXRlICYmICFldmVudC5lbmREYXRlKSB7XG4gICAgLy8gICBjb25zdCBlbmRUaW1lID0gZXZlbnQuZGV0YWlsRGF0ZVBpY2tlci5lbmQoKTtcbiAgICAvLyAgIGV2ZW50LmVuZERhdGUgPSBldmVudC5zdGFydERhdGUuY2xvbmUoKS5ob3VyKGVuZFRpbWUuaG91ciBhcyBudW1iZXIpLm1pbnV0ZShlbmRUaW1lLm1pbnV0ZSBhcyBudW1iZXIpLnNlY29uZCg1OSk7XG4gICAgLy8gfVxuICAgIHRoaXMuY2hvc2VuRGF0ZVJhbmdlLnNldCh7XG4gICAgICBxdWlja1JhbmdlSWQ6IHRoaXMuY2hvc2VuUXVpY2tSYW5nZSgpLFxuICAgICAgLi4uZXZlbnRcbiAgICB9KTtcbiAgICBjb25zdCBjaG9zZW5TaW5nbGVEYXRlID0gdGhpcy5jaG9zZW5TaW5nbGVEYXRlKCk7XG4gICAgY29uc3QgY2hvc2VuRGF0ZVJhbmdlID0gdGhpcy5jaG9zZW5EYXRlUmFuZ2UoKTtcbiAgICBpZiAodGhpcy5pc1NpbmdsZSgpICYmIGNob3NlblNpbmdsZURhdGUpIHtcbiAgICAgIHRoaXMub3V0U2VsZWN0U2luZ2xlRGF0ZS5lbWl0KGNob3NlblNpbmdsZURhdGUpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghY2hvc2VuRGF0ZVJhbmdlIHx8ICghY2hvc2VuRGF0ZVJhbmdlLnN0YXJ0RGF0ZSAmJiAhY2hvc2VuRGF0ZVJhbmdlLmVuZERhdGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMub3V0U2VsZWN0RGF0ZVJhbmdlLmVtaXQoY2hvc2VuRGF0ZVJhbmdlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyQ2xpY2tSYW5nZShlOiBFdmVudCwgcmFuZ2U6IElEYXRlUmFuZ2UpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMudXBkYXRlV2lkdGgoKTtcbiAgICB0aGlzLmNob3NlblF1aWNrUmFuZ2Uuc2V0KHJhbmdlLmlkKTtcblxuICAgIGlmIChyYW5nZS5pZCA9PT0gdGhpcy5kYXRlT3B0aW9ucygpPy5jdXN0b21SYW5nZUxhYmVsKSB7XG4gICAgICB0aGlzLmNhbGVuZGFyU2hvd2luZy5zZXQodHJ1ZSk7XG4gICAgICB0aGlzLnNob3dDYWxUYWJsZUluUmFuZ2VzLnNldCh0cnVlKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5leHRlbmRSYW5nZXMoKSkge1xuICAgICAgY29uc3QgZmluZEV4dGVybmFsUmFuZ2UgPSB0aGlzLmV4dGVuZFJhbmdlcygpLmZpbmQoaXRlbSA9PiBpdGVtLmxhYmVsID09PSByYW5nZS5pZCk7XG5cbiAgICAgIGlmIChmaW5kRXh0ZXJuYWxSYW5nZSAmJiByYW5nZS5pZCA9PT0gZmluZEV4dGVybmFsUmFuZ2UubGFiZWwpIHtcbiAgICAgICAgaWYgKGZpbmRFeHRlcm5hbFJhbmdlLnZhbHVlcykge1xuICAgICAgICAgIHRoaXMub3V0U2VsZWN0RGF0ZVJhbmdlLmVtaXQoeyBxdWlja1JhbmdlSWQ6IGZpbmRFeHRlcm5hbFJhbmdlLmlkLCBkaXNwbGF5TGFiZWw6IGZpbmRFeHRlcm5hbFJhbmdlLmxhYmVsLCBzdGFydERhdGU6IGZpbmRFeHRlcm5hbFJhbmdlLnZhbHVlc1swXSwgZW5kRGF0ZTogZmluZEV4dGVybmFsUmFuZ2UudmFsdWVzWzFdIH0pO1xuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3V0U2VsZWN0RGF0ZVJhbmdlLmVtaXQoeyBxdWlja1JhbmdlSWQ6IGZpbmRFeHRlcm5hbFJhbmdlLmlkLCBkaXNwbGF5TGFiZWw6IGZpbmRFeHRlcm5hbFJhbmdlLmxhYmVsLCBzdGFydERhdGU6IHVuZGVmaW5lZCwgZW5kRGF0ZTogdW5kZWZpbmVkIH0pO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgZGF0ZXMgPSByYW5nZS52YWx1ZXMgPz8gW107XG5cbiAgICAvLyB0aGlzLnN0YXJ0RGF0ZS5zZXQoZGF0ZXNbMF0uY2xvbmUoKS5ob3VyKDApLm1pbnV0ZSgwKS5zZWNvbmQoMCkpO1xuICAgIC8vIHRoaXMuZW5kRGF0ZS5zZXQoZGF0ZXNbMV0uY2xvbmUoKS5ob3VyKDIzKS5taW51dGUoNTkpLnNlY29uZCg1OSkpO1xuICAgIC8vIHRoaXMudGltZVZhbHVlID0geyBob3VyOiAwLCB0b0hvdXI6IDAsIG1pbnV0ZTogMjMsIHRvTWludXRlOiA1OSB9O1xuICAgIC8vIHRoaXMudGltZXBpY2tlclZhcmlhYmxlcy5sZWZ0LnNlbGVjdGVkSG91ciA9IDA7XG4gICAgLy8gdGhpcy50aW1lcGlja2VyVmFyaWFibGVzLmxlZnQuc2VsZWN0ZWRNaW51dGUgPSAwO1xuICAgIC8vIHRoaXMudGltZXBpY2tlclZhcmlhYmxlcy5yaWdodC5zZWxlY3RlZEhvdXIgPSAyMztcbiAgICAvLyB0aGlzLnRpbWVwaWNrZXJWYXJpYWJsZXMucmlnaHQuc2VsZWN0ZWRNaW51dGUgPSA1OTtcblxuICAgIC8vIHRoaXMuc2hvd1JhbmdlTGFiZWxPbklucHV0ICYmIGxhYmVsICE9PSB0aGlzLmxvY2FsZURheS5jdXN0b21SYW5nZUxhYmVsID8gdGhpcy5jaG9zZW5MYWJlbCA9IGxhYmVsIDogdGhpcy5jYWxjdWxhdGVDaG9zZW5MYWJlbCgpO1xuXG4gICAgLy8gLy8gdGhpcy5hdXRvQXBwbHkuc2V0KHRydWUpO1xuICAgIC8vIGlmICghdGhpcy5oYXNUaW1lUGlja2VyKCkpIHtcbiAgICAvLyAgIGlmKHRoaXMuc3RhcnREYXRlKCkpIHtcbiAgICAvLyAgICAgdGhpcy5zdGFydERhdGUuc2V0KHRoaXMuc3RhcnREYXRlKCk/LnN0YXJ0T2YoJ2RheScpKTtcbiAgICAvLyAgIH1cbiAgICAvLyAgIGlmKHRoaXMuZW5kRGF0ZSgpKSB7XG4gICAgLy8gICAgIHRoaXMuZW5kRGF0ZS5zZXQodGhpcy5lbmREYXRlKCk/LmVuZE9mKCdkYXknKSk7XG4gICAgLy8gICB9XG4gICAgLy8gfVxuICAgIC8vIGlmICghdGhpcy5hbHdheXNTaG93Q2FsZW5kYXJzKCkpIHtcbiAgICAvLyAgIHRoaXMuY2FsZW5kYXJTaG93aW5nLnNldChmYWxzZSk7XG4gICAgLy8gfVxuICAgIC8vIHRoaXMub3V0Q2xpY2tSYW5nZS5lbWl0KHJhbmdlKTtcblxuICAgIGlmICghdGhpcy5rZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlKCkgfHwgIXRoaXMuYWx3YXlzU2hvd0NhbGVuZGFycygpKSB7XG4gICAgICB0aGlzLm91dFNlbGVjdERhdGVSYW5nZS5lbWl0KHsgcXVpY2tSYW5nZUlkOiByYW5nZS5pZCwgZGlzcGxheUxhYmVsOiByYW5nZS5sYWJlbCwgc3RhcnREYXRlOiByYW5nZS52YWx1ZXM/LlswXSwgZW5kRGF0ZTogcmFuZ2UudmFsdWVzPy5bMV0gfSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gaWYgKHRoaXMudGltZVBpY2tlcikge1xuICAgIC8vICAgdGhpcy5yZW5kZXJUaW1lUGlja2VyKFNpZGVFbnVtLmxlZnQpO1xuICAgIC8vICAgdGhpcy5yZW5kZXJUaW1lUGlja2VyKFNpZGVFbnVtLnJpZ2h0KTtcbiAgICAvLyB9XG4gICAgLy8gaWYgKHRoaXMuZ2V0TWF4RGF0ZSgpICYmIHRoaXMuZ2V0TWF4RGF0ZSgpLmlzU2FtZShkYXRlc1swXSwgJ21vbnRoJykpIHtcbiAgICAvLyAgIHRoaXMucmlnaHRDYWxlbmRhci5tb250aCA9IHRoaXMucmlnaHRDYWxlbmRhci5tb250aCAmJiB0aGlzLnJpZ2h0Q2FsZW5kYXIubW9udGgubW9udGgoZGF0ZXNbMF0ubW9udGgoKSk7XG4gICAgLy8gICB0aGlzLnJpZ2h0Q2FsZW5kYXIubW9udGggPSB0aGlzLnJpZ2h0Q2FsZW5kYXIubW9udGggJiYgdGhpcy5yaWdodENhbGVuZGFyLm1vbnRoLnllYXIoZGF0ZXNbMF0ueWVhcigpKTtcbiAgICAvLyAgIHRoaXMubGVmdENhbGVuZGFyLm1vbnRoID0gdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGggJiYgdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGgubW9udGgoZGF0ZXNbMF0ubW9udGgoKSAtIDEpO1xuICAgIC8vICAgdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGggPSB0aGlzLmxlZnRDYWxlbmRhci5tb250aCAmJiB0aGlzLmxlZnRDYWxlbmRhci5tb250aC55ZWFyKGRhdGVzWzFdLnllYXIoKSk7XG5cbiAgICAvLyAgIHJldHVybiB0aGlzLnVwZGF0ZUNhbGVuZGFycygpO1xuICAgIC8vIH1cbiAgICAvLyB0aGlzLmxlZnRDYWxlbmRhci5tb250aCA9IHRoaXMubGVmdENhbGVuZGFyLm1vbnRoICYmIHRoaXMubGVmdENhbGVuZGFyLm1vbnRoLm1vbnRoKGRhdGVzWzBdLm1vbnRoKCkpO1xuICAgIC8vIHRoaXMubGVmdENhbGVuZGFyLm1vbnRoID0gdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGggJiYgdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGgueWVhcihkYXRlc1swXS55ZWFyKCkpO1xuICAgIC8vIGNvbnN0IG5leHRNb250aCA9IGRhdGVzWzBdLmNsb25lKCkuYWRkKDEsICdtb250aCcpO1xuXG4gICAgLy8gdGhpcy5yaWdodENhbGVuZGFyLm1vbnRoID0gdGhpcy5yaWdodENhbGVuZGFyLm1vbnRoICYmIHRoaXMucmlnaHRDYWxlbmRhci5tb250aC5tb250aChuZXh0TW9udGgubW9udGgoKSk7XG4gICAgLy8gdGhpcy5yaWdodENhbGVuZGFyLm1vbnRoID0gdGhpcy5yaWdodENhbGVuZGFyLm1vbnRoICYmIHRoaXMucmlnaHRDYWxlbmRhci5tb250aC55ZWFyKG5leHRNb250aC55ZWFyKCkpO1xuICAgIC8vIHRoaXMudXBkYXRlQ2FsZW5kYXJzKCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckNsaWNrQ2FuY2VsKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIC8vIHRoaXMuc3RhcnREYXRlLnNldChkYXlqcygwKSk7XG4gICAgLy8gdGhpcy5lbmREYXRlLnNldChkYXlqcygwKSk7XG4gICAgdGhpcy5vdXRDYW5jZWwuZW1pdCgnJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckNoYW5nZUZsYWdNb3VzZShmbGFnTW91c2U6IElGbGFnTW91c2UpIHtcbiAgICB0aGlzLm91dENoYW5nU3RhZ2VGbGFnTW91c2UuZW1pdChmbGFnTW91c2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJGdW5jdGlvbnNDb250cm9sKGV2ZW50OiBJQ2FsZW5kYXJGdW5jdGlvbkNvbnRyb2xFdmVudCkge1xuICAgIHRoaXMuY2FsZW5kYXJGdW5jdGlvbkNvbnRyb2xFdmVudC5zZXQoZXZlbnQpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy50aW1lb3V0cygpLmZvckVhY2goaXRlbSA9PiBjbGVhclRpbWVvdXQoaXRlbSkpO1xuICAgIC8vIHRoaXMub25EZXN0cm95Lm5leHQoKTtcbiAgICAvLyB0aGlzLm9uRGVzdHJveS5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8ZGl2ICNwaWNrZXJDb250YWluZXJcbiAgY2xhc3M9XCJsaWJzLXVpLWNvbXBvbmVudC1jdXN0b21fcmFuZ2VzIGZsZXggcm91bmRlZC1bNHB4XSBiZy1bI2ZmZmZmZl0gei1bMTAwMF0gb3ZlcmZsb3ctW2hpZGRlbl0gcmVsYXRpdmUgaW5saW5lXCJcbiAgW2NsYXNzLmZsZXgtcm93LXJldmVyc2VdPVwicG9zaXRpb25RdWlja1JhbmdlcygpID09PSAncmlnaHQnXCI+XG4gIEBpZiAoIWlzU2luZ2xlKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwibGlicy11aS1jb21wb25lbnQtY3VzdG9tX3Jhbmdlcy1yYW5nZXMge3sgY2xhc3NJbmNsdWRlKCkgfHwgJycgfX1cIlxuICAgICAgW2NsYXNzLmJvcmRlci1sLVsjZTZlOGVkXV09XCJwb3NpdGlvblF1aWNrUmFuZ2VzKCkgPT09ICdyaWdodCcgJiYgc2hvd0NhbFRhYmxlSW5SYW5nZXMoKVwiXG4gICAgICBbY2xhc3MuYm9yZGVyLWxdPVwicG9zaXRpb25RdWlja1JhbmdlcygpID09PSAncmlnaHQnICYmIHNob3dDYWxUYWJsZUluUmFuZ2VzKClcIlxuICAgICAgW2NsYXNzLmJvcmRlci1yLVsjZTZlOGVkXV09XCJwb3NpdGlvblF1aWNrUmFuZ2VzKCkgPT09ICdsZWZ0JyAmJiBzaG93Q2FsVGFibGVJblJhbmdlcygpXCJcbiAgICAgIFtjbGFzcy5ib3JkZXItcl09XCJwb3NpdGlvblF1aWNrUmFuZ2VzKCkgPT09ICdsZWZ0JyAmJiBzaG93Q2FsVGFibGVJblJhbmdlcygpXCJcbiAgICAgIFtjbGFzcy4hbWluLWgtWzI2MHB4XV09XCJzaG93Q2FsVGFibGVJblJhbmdlcygpICYmICFpc1NpbmdsZSgpXCJcbiAgICAgIFtjbGFzcy4hbWluLWgtWzMwMHB4XV09XCJoYXNUaW1lUGlja2VyKCkgJiYgIWlzU2luZ2xlKClcIlxuICAgICAgW2NsYXNzLiF3LVsxNjBweF1dPVwiIXdpZHRoQnlQYXJlbnQoKVwiXG4gICAgICBbY2xhc3MuIXctZnVsbF09XCJ3aWR0aEJ5UGFyZW50KClcIj5cbiAgICAgIEBmb3IgKHJhbmdlIG9mIHF1aWNrUmFuZ2VzQXJyYXkoKTsgdHJhY2sgcmFuZ2UuaWQpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGhvdmVyOmJnLVt2YXIoLS1saWJzLXVpLWNvbG9yLWxpZ2h0LTMpXSBjdXJzb3ItcG9pbnRlciBweC1bMTZweF0gcHktWzhweF1cIlxuICAgICAgICAgIFtjbGFzcy5saWJzLXVpLXNlbGVjdGVkLXJhbmdlXT1cInJhbmdlLmlkID09PSBjaG9zZW5RdWlja1JhbmdlKCkgJiYgc2hvd0N1c3RvbVJhbmdlTGFiZWwoKVwiXG4gICAgICAgICAgW2NsYXNzLmJnLVt2YXIoLS1saWJzLXVpLWNvbG9yLWxpZ2h0LTMpXV09XCJyYW5nZS5pZCA9PT0gY2hvc2VuUXVpY2tSYW5nZSgpIHx8IHJhbmdlLmlkID09PSBzZWxlY3RlZFF1aWNrUmFuZ2UoKVwiXG4gICAgICAgICAgKGNsaWNrKT1cImhhbmRsZXJDbGlja1JhbmdlKCRldmVudCwgcmFuZ2UpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktZm9udC1oNXIgZmxleCB0ZXh0LVsjMzMzMzMzXSBtaW4tdy0wIHctZnVsbFwiPlxuICAgICAgICAgICAgPGRpdiBMaWJzVWlDb21wb25lbnRzUG9wb3ZlckRpcmVjdGl2ZVxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgIFtjb25maWddPVwie21heFdpZHRoOjE2MCxkaXJlY3Rpb246J3RvcCcsekluZGV4Oih6SW5kZXgoKSB8fDEwMDApICsgMX1cIlxuICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cInJhbmdlLmxhYmVsXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZXJDbGlja1JhbmdlKCRldmVudCwgcmFuZ2UpXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8aSBjbGFzcz1cInRleHQtWzEycHhdIG1sLVsxNnB4XVwiXG4gICAgICAgICAgICBbY2xhc3MubGlicy11aS1pY29uLWNoZWNrXT1cInJhbmdlLmlkID09PSBzZWxlY3RlZFF1aWNrUmFuZ2UoKVwiXG4gICAgICAgICAgICBbY2xhc3MudGV4dC1bdmFyKC0tbGlicy11aS1jb2xvci1kZWZhdWx0KV1dPVwicmFuZ2UuaWQgPT09IHNlbGVjdGVkUXVpY2tSYW5nZSgpXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuICBAaWYgKHNob3dDYWxUYWJsZUluUmFuZ2VzKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwibS1bMTZweF0gdy1mdWxsXCI+XG4gICAgICA8bGlic191aS1jb21wb25lbnRzLWRhdGV0aW1lLXBpY2tlci1jdXN0b21fcmFuZ2VzLWNhbGVuZGFyIFtpc1NpbmdsZV09XCJpc1NpbmdsZSgpXCJcbiAgICAgICAgW2F1dG9BcHBseV09XCJhdXRvQXBwbHkoKVwiXG4gICAgICAgIFt6SW5kZXhdPVwiekluZGV4KClcIlxuICAgICAgICBbZmxhZ01vdXNlXT1cImZsYWdNb3VzZSgpXCJcbiAgICAgICAgW2RhdGVPcHRpb25zXT1cImRhdGVPcHRpb25zKClcIlxuICAgICAgICBbaGFzVGltZVBpY2tlcl09XCJoYXNUaW1lUGlja2VyKClcIlxuICAgICAgICBbcXVpY2tSYW5nZXNBcnJheV09XCJxdWlja1Jhbmdlc0FycmF5KClcIlxuICAgICAgICBbc3RhcnREYXRlXT1cInN0YXJ0RGF0ZSgpXCJcbiAgICAgICAgW2VuZERhdGVdPVwiZW5kRGF0ZSgpXCJcbiAgICAgICAgW2NsYXNzSW5jbHVkZV09XCIndy1mdWxsJ1wiXG4gICAgICAgIChvdXRDYW5jZWwpPVwiaGFuZGxlckNhbmNlbCgpXCJcbiAgICAgICAgKG91dFBpY2tlckRhdGUpPVwiaGFuZGxlclBpY2tlckRhdGUoJGV2ZW50KVwiXG4gICAgICAgIChvdXRGdW5jdGlvbnNDb250cm9sKT1cImhhbmRsZXJGdW5jdGlvbnNDb250cm9sKCRldmVudClcIlxuICAgICAgICAob3V0Q2hhbmdTdGFnZUZsYWdNb3VzZSk9XCJoYW5kbGVyQ2hhbmdlRmxhZ01vdXNlKCRldmVudClcIiAvPlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export const DEFAULT_MIN_YEAR = 1945;
|
|
2
|
+
export const DEFAULT_MAX_YEAR = 2100;
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWRhdGUuZGVmaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2RhdGV0aW1lL3BpY2tlci9zcmMvZGVmaW5lcy9jb21tb24tZGF0ZS5kZWZpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0FBQ3JDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTUlOX1lFQVIgPSAxOTQ1O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTUFYX1lFQVIgPSAyMTAwO1xuIl19
|
|
@@ -50,6 +50,4 @@ export const getDateRangeDefault = () => {
|
|
|
50
50
|
_3months_ago: [dayjs().subtract(89, 'days').hour(0).second(0).minute(0).millisecond(0), dayjs().hour(23).minute(59).second(59)],
|
|
51
51
|
};
|
|
52
52
|
};
|
|
53
|
-
|
|
54
|
-
export const DEFAULT_MAX_YEAR = 2100;
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1vcHRpb25zLmRlZmluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9kYXRldGltZS9waWNrZXIvc3JjL2RlZmluZXMvZGF0ZS1vcHRpb25zLmRlZmluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUxQixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBdUIsRUFBRTtJQUNyRCxNQUFNLFdBQVcsR0FBRztRQUNsQixDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzNCLFlBQVksRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDO1lBQ3JKLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUU7WUFDL00sWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hELFlBQVksRUFBRSxLQUFLO1lBQ25CLGFBQWEsRUFBRSxRQUFRO1lBQ3ZCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLGtCQUFrQixFQUFFLFdBQVc7U0FDaEM7UUFDRCxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzNCLFlBQVksRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO1lBQ2xHLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUU7WUFDek0sWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hELFlBQVksRUFBRSxPQUFPO1lBQ3JCLGFBQWEsRUFBRSxRQUFRO1lBQ3ZCLFdBQVcsRUFBRSxNQUFNO1lBQ25CLFNBQVMsRUFBRSxJQUFJO1lBQ2Ysa0JBQWtCLEVBQUUsV0FBVztTQUNoQztLQUNGLENBQUM7SUFFRixPQUFPLEdBQUcsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7QUFDaEQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxFQUFFO0lBQ3RDLE9BQU87UUFDTCxTQUFTLEVBQUUsS0FBSztRQUNoQixTQUFTLEVBQUUsS0FBSztRQUNoQixTQUFTLEVBQUUsR0FBRztRQUNkLFVBQVUsRUFBRSxPQUFPO1FBQ25CLFdBQVcsRUFBRSxRQUFRO1FBQ3JCLFVBQVUsRUFBRSxPQUFPO1FBQ25CLGdCQUFnQixFQUFFLGtCQUFrQjtRQUNwQyxVQUFVLEVBQUUsRUFBRTtRQUNkLFVBQVUsRUFBRSxFQUFFO1FBQ2QsUUFBUSxFQUFFLENBQUM7S0FDWixDQUFBO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBMEMsRUFBRTtJQUM3RSxPQUFPO1FBQ0wsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25HLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0ksVUFBVSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUgsV0FBVyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUgsVUFBVSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RCxVQUFVLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RyxZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNoSSxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0FBQ3JDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldCwgVXRpbHNDYWNoZSwgVXRpbHNMYW5ndWFnZUNvbnN0YW50cyB9IGZyb20gXCJAbGlicy11aS91dGlsc1wiO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uQ29uZmlnIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvcGlja2VyLmludGVyZmFjZVwiO1xuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcblxuZXhwb3J0IGNvbnN0IGdldERhdGVPcHRpb25zID0gKCk6IExvY2FsaXphdGlvbkNvbmZpZyA9PiB7XG4gIGNvbnN0IGRhdGVPcHRpb25zID0ge1xuICAgIFtVdGlsc0xhbmd1YWdlQ29uc3RhbnRzLlZJXToge1xuICAgICAgXCJtb250aE5hbWVzXCI6IFtcIlRow6FuZyAxXCIsIFwiVGjDoW5nIDJcIiwgXCJUaMOhbmcgM1wiLCBcIlRow6FuZyA0XCIsIFwiVGjDoW5nIDVcIiwgXCJUaMOhbmcgNlwiLCBcIlRow6FuZyA3XCIsIFwiVGjDoW5nIDhcIiwgXCJUaMOhbmcgOVwiLCBcIlRow6FuZyAxMFwiLCBcIlRow6FuZyAxMVwiLCBcIlRow6FuZyAxMlwiXSxcbiAgICAgIFwicmFuZ2VzXCI6IHsgXCJ0b2RheVwiOiBcIkjDtG0gbmF5XCIsIFwieWVzdGVyZGF5XCI6IFwiSMO0bSBxdWFcIiwgXCJfN2RheXNfYWdvXCI6IFwiNyBuZ8OgeSB0csaw4bubY1wiLCBcIl8zMGRheXNfYWdvXCI6IFwiMzAgbmfDoHkgdHLGsOG7m2NcIiwgXCJ0aGlzX21vbnRoXCI6IFwiVGjDoW5nIG7DoHlcIiwgXCJsYXN0X21vbnRoXCI6IFwiVGjDoW5nIHRyxrDhu5tjXCIsIFwiXzNtb250aHNfYWdvXCI6IFwiOTAgbmfDoHkgdHLGsOG7m2NcIiB9LFxuICAgICAgXCJkYXlzT2ZXZWVrXCI6IFtcIlQyXCIsIFwiVDNcIiwgXCJUNFwiLCBcIlQ1XCIsIFwiVDZcIiwgXCJUN1wiLCBcIkNOXCJdLFxuICAgICAgXCJhcHBseUxhYmVsXCI6IFwiTMawdVwiLFxuICAgICAgXCJjYW5jZWxMYWJlbFwiOiBcIkh14bu3IGLhu49cIixcbiAgICAgIFwiZnJvbUxhYmVsXCI6IFwiVOG7q1wiLFxuICAgICAgXCJ0b0xhYmVsXCI6IFwixJDhur9uXCIsXG4gICAgICBcImN1c3RvbVJhbmdlTGFiZWxcIjogXCJUw7l5IENo4buJbmhcIlxuICAgIH0sXG4gICAgW1V0aWxzTGFuZ3VhZ2VDb25zdGFudHMuRU5dOiB7XG4gICAgICBcIm1vbnRoTmFtZXNcIjogW1wiSmFuXCIsIFwiRmViXCIsIFwiTWFyXCIsIFwiQXByXCIsIFwiTWF5XCIsIFwiSnVuXCIsIFwiSnVsXCIsIFwiQXVnXCIsIFwiU2VwXCIsIFwiT2N0XCIsIFwiTm92XCIsIFwiRGVjXCJdLFxuICAgICAgXCJyYW5nZXNcIjogeyBcInRvZGF5XCI6IFwiVG9kYXlcIiwgXCJ5ZXN0ZXJkYXlcIjogXCJZZXN0ZXJkYXlcIiwgXCJfN2RheXNfYWdvXCI6IFwiNyBkYXlzIGFnb1wiLCBcIl8zMGRheXNfYWdvXCI6IFwiMzAgZGF5cyBhZ29cIiwgXCJ0aGlzX21vbnRoXCI6IFwiVGhpcyBtb250aFwiLCBcImxhc3RfbW9udGhcIjogXCJMYXN0IG1vbnRoXCIsIFwiXzNtb250aHNfYWdvXCI6IFwiOTAgZGF5cyBhZ29cIiB9LFxuICAgICAgXCJkYXlzT2ZXZWVrXCI6IFtcIk1vXCIsIFwiVHVcIiwgXCJXZVwiLCBcIlRoXCIsIFwiRnJcIiwgXCJTYVwiLCBcIlN1XCJdLFxuICAgICAgXCJhcHBseUxhYmVsXCI6IFwiQXBwbHlcIixcbiAgICAgIFwiY2FuY2VsTGFiZWxcIjogXCJDYW5jZWxcIixcbiAgICAgIFwiZnJvbUxhYmVsXCI6IFwiRnJvbVwiLFxuICAgICAgXCJ0b0xhYmVsXCI6IFwiVG9cIixcbiAgICAgIFwiY3VzdG9tUmFuZ2VMYWJlbFwiOiBcIkN1c3RvbWl6ZVwiXG4gICAgfVxuICB9O1xuXG4gIHJldHVybiBnZXQoZGF0ZU9wdGlvbnMsIFV0aWxzQ2FjaGUuZ2V0TGFuZygpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0TG9jYWxlQ29uZmlnID0gKCkgPT4ge1xuICByZXR1cm4ge1xuICAgIGRpcmVjdGlvbjogJ2x0cicsXG4gICAgc2VwYXJhdG9yOiAnIC0gJyxcbiAgICB3ZWVrTGFiZWw6ICdXJyxcbiAgICBhcHBseUxhYmVsOiAnQXBwbHknLFxuICAgIGNhbmNlbExhYmVsOiAnQ2FuY2VsJyxcbiAgICBjbGVhckxhYmVsOiAnQ2xlYXInLFxuICAgIGN1c3RvbVJhbmdlTGFiZWw6ICdjdXN0b21SYW5nZUxhYmVsJyxcbiAgICBkYXlzT2ZXZWVrOiBbXSxcbiAgICBtb250aE5hbWVzOiBbXSxcbiAgICBmaXJzdERheTogMVxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RGF0ZVJhbmdlRGVmYXVsdCA9ICgpOiB7IFtrZXk6IHN0cmluZ106IEFycmF5PGRheWpzLkRheWpzPiB9ID0+IHtcbiAgcmV0dXJuIHtcbiAgICB0b2RheTogW2RheWpzKCkuaG91cigwKS5taW51dGUoMCkuc2Vjb25kKDApLm1pbGxpc2Vjb25kKDApLCBkYXlqcygpLmhvdXIoMjMpLm1pbnV0ZSg1OSkuc2Vjb25kKDU5KV0sXG4gICAgeWVzdGVyZGF5OiBbZGF5anMoKS5zdWJ0cmFjdCgxLCAnZGF5cycpLmhvdXIoMCkubWludXRlKDApLnNlY29uZCgwKS5taWxsaXNlY29uZCgwKSwgZGF5anMoKS5zdWJ0cmFjdCgxLCAnZGF5cycpLmhvdXIoMjMpLm1pbnV0ZSg1OSkuc2Vjb25kKDU5KV0sXG4gICAgXzdkYXlzX2FnbzogW2RheWpzKCkuc3VidHJhY3QoNiwgJ2RheXMnKS5ob3VyKDApLnNlY29uZCgwKS5taW51dGUoMCkubWlsbGlzZWNvbmQoMCksIGRheWpzKCkuaG91cigyMykubWludXRlKDU5KS5zZWNvbmQoNTkpXSxcbiAgICBfMzBkYXlzX2FnbzogW2RheWpzKCkuc3VidHJhY3QoMjksICdkYXlzJykuaG91cigwKS5zZWNvbmQoMCkubWludXRlKDApLm1pbGxpc2Vjb25kKDApLCBkYXlqcygpLmhvdXIoMjMpLm1pbnV0ZSg1OSkuc2Vjb25kKDU5KV0sXG4gICAgdGhpc19tb250aDogW2RheWpzKCkuc3RhcnRPZignbW9udGgnKSwgZGF5anMoKS5lbmRPZignbW9udGgnKV0sXG4gICAgbGFzdF9tb250aDogW2RheWpzKCkuc3VidHJhY3QoMSwgJ21vbnRoJykuc3RhcnRPZignbW9udGgnKSwgZGF5anMoKS5zdWJ0cmFjdCgxLCAnbW9udGgnKS5lbmRPZignbW9udGgnKV0sXG4gICAgXzNtb250aHNfYWdvOiBbZGF5anMoKS5zdWJ0cmFjdCg4OSwgJ2RheXMnKS5ob3VyKDApLnNlY29uZCgwKS5taW51dGUoMCkubWlsbGlzZWNvbmQoMCksIGRheWpzKCkuaG91cigyMykubWludXRlKDU5KS5zZWNvbmQoNTkpXSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX01JTl9ZRUFSID0gMTk0NTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX01BWF9ZRUFSID0gMjEwMDsiXX0=
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1vcHRpb25zLmRlZmluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9kYXRldGltZS9waWNrZXIvc3JjL2RlZmluZXMvZGF0ZS1vcHRpb25zLmRlZmluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUxQixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBdUIsRUFBRTtJQUNyRCxNQUFNLFdBQVcsR0FBRztRQUNsQixDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzNCLFlBQVksRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDO1lBQ3JKLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUU7WUFDL00sWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hELFlBQVksRUFBRSxLQUFLO1lBQ25CLGFBQWEsRUFBRSxRQUFRO1lBQ3ZCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLGtCQUFrQixFQUFFLFdBQVc7U0FDaEM7UUFDRCxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzNCLFlBQVksRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO1lBQ2xHLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUU7WUFDek0sWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hELFlBQVksRUFBRSxPQUFPO1lBQ3JCLGFBQWEsRUFBRSxRQUFRO1lBQ3ZCLFdBQVcsRUFBRSxNQUFNO1lBQ25CLFNBQVMsRUFBRSxJQUFJO1lBQ2Ysa0JBQWtCLEVBQUUsV0FBVztTQUNoQztLQUNGLENBQUM7SUFFRixPQUFPLEdBQUcsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7QUFDaEQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxFQUFFO0lBQ3RDLE9BQU87UUFDTCxTQUFTLEVBQUUsS0FBSztRQUNoQixTQUFTLEVBQUUsS0FBSztRQUNoQixTQUFTLEVBQUUsR0FBRztRQUNkLFVBQVUsRUFBRSxPQUFPO1FBQ25CLFdBQVcsRUFBRSxRQUFRO1FBQ3JCLFVBQVUsRUFBRSxPQUFPO1FBQ25CLGdCQUFnQixFQUFFLGtCQUFrQjtRQUNwQyxVQUFVLEVBQUUsRUFBRTtRQUNkLFVBQVUsRUFBRSxFQUFFO1FBQ2QsUUFBUSxFQUFFLENBQUM7S0FDWixDQUFBO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBMEMsRUFBRTtJQUM3RSxPQUFPO1FBQ0wsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25HLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0ksVUFBVSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUgsV0FBVyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUgsVUFBVSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RCxVQUFVLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RyxZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNoSSxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0LCBVdGlsc0NhY2hlLCBVdGlsc0xhbmd1YWdlQ29uc3RhbnRzIH0gZnJvbSBcIkBsaWJzLXVpL3V0aWxzXCI7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25Db25maWcgfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9waWNrZXIuaW50ZXJmYWNlXCI7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuXG5leHBvcnQgY29uc3QgZ2V0RGF0ZU9wdGlvbnMgPSAoKTogTG9jYWxpemF0aW9uQ29uZmlnID0+IHtcbiAgY29uc3QgZGF0ZU9wdGlvbnMgPSB7XG4gICAgW1V0aWxzTGFuZ3VhZ2VDb25zdGFudHMuVkldOiB7XG4gICAgICBcIm1vbnRoTmFtZXNcIjogW1wiVGjDoW5nIDFcIiwgXCJUaMOhbmcgMlwiLCBcIlRow6FuZyAzXCIsIFwiVGjDoW5nIDRcIiwgXCJUaMOhbmcgNVwiLCBcIlRow6FuZyA2XCIsIFwiVGjDoW5nIDdcIiwgXCJUaMOhbmcgOFwiLCBcIlRow6FuZyA5XCIsIFwiVGjDoW5nIDEwXCIsIFwiVGjDoW5nIDExXCIsIFwiVGjDoW5nIDEyXCJdLFxuICAgICAgXCJyYW5nZXNcIjogeyBcInRvZGF5XCI6IFwiSMO0bSBuYXlcIiwgXCJ5ZXN0ZXJkYXlcIjogXCJIw7RtIHF1YVwiLCBcIl83ZGF5c19hZ29cIjogXCI3IG5nw6B5IHRyxrDhu5tjXCIsIFwiXzMwZGF5c19hZ29cIjogXCIzMCBuZ8OgeSB0csaw4bubY1wiLCBcInRoaXNfbW9udGhcIjogXCJUaMOhbmcgbsOgeVwiLCBcImxhc3RfbW9udGhcIjogXCJUaMOhbmcgdHLGsOG7m2NcIiwgXCJfM21vbnRoc19hZ29cIjogXCI5MCBuZ8OgeSB0csaw4bubY1wiIH0sXG4gICAgICBcImRheXNPZldlZWtcIjogW1wiVDJcIiwgXCJUM1wiLCBcIlQ0XCIsIFwiVDVcIiwgXCJUNlwiLCBcIlQ3XCIsIFwiQ05cIl0sXG4gICAgICBcImFwcGx5TGFiZWxcIjogXCJMxrB1XCIsXG4gICAgICBcImNhbmNlbExhYmVsXCI6IFwiSHXhu7cgYuG7j1wiLFxuICAgICAgXCJmcm9tTGFiZWxcIjogXCJU4burXCIsXG4gICAgICBcInRvTGFiZWxcIjogXCLEkOG6v25cIixcbiAgICAgIFwiY3VzdG9tUmFuZ2VMYWJlbFwiOiBcIlTDuXkgQ2jhu4luaFwiXG4gICAgfSxcbiAgICBbVXRpbHNMYW5ndWFnZUNvbnN0YW50cy5FTl06IHtcbiAgICAgIFwibW9udGhOYW1lc1wiOiBbXCJKYW5cIiwgXCJGZWJcIiwgXCJNYXJcIiwgXCJBcHJcIiwgXCJNYXlcIiwgXCJKdW5cIiwgXCJKdWxcIiwgXCJBdWdcIiwgXCJTZXBcIiwgXCJPY3RcIiwgXCJOb3ZcIiwgXCJEZWNcIl0sXG4gICAgICBcInJhbmdlc1wiOiB7IFwidG9kYXlcIjogXCJUb2RheVwiLCBcInllc3RlcmRheVwiOiBcIlllc3RlcmRheVwiLCBcIl83ZGF5c19hZ29cIjogXCI3IGRheXMgYWdvXCIsIFwiXzMwZGF5c19hZ29cIjogXCIzMCBkYXlzIGFnb1wiLCBcInRoaXNfbW9udGhcIjogXCJUaGlzIG1vbnRoXCIsIFwibGFzdF9tb250aFwiOiBcIkxhc3QgbW9udGhcIiwgXCJfM21vbnRoc19hZ29cIjogXCI5MCBkYXlzIGFnb1wiIH0sXG4gICAgICBcImRheXNPZldlZWtcIjogW1wiTW9cIiwgXCJUdVwiLCBcIldlXCIsIFwiVGhcIiwgXCJGclwiLCBcIlNhXCIsIFwiU3VcIl0sXG4gICAgICBcImFwcGx5TGFiZWxcIjogXCJBcHBseVwiLFxuICAgICAgXCJjYW5jZWxMYWJlbFwiOiBcIkNhbmNlbFwiLFxuICAgICAgXCJmcm9tTGFiZWxcIjogXCJGcm9tXCIsXG4gICAgICBcInRvTGFiZWxcIjogXCJUb1wiLFxuICAgICAgXCJjdXN0b21SYW5nZUxhYmVsXCI6IFwiQ3VzdG9taXplXCJcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIGdldChkYXRlT3B0aW9ucywgVXRpbHNDYWNoZS5nZXRMYW5nKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRMb2NhbGVDb25maWcgPSAoKSA9PiB7XG4gIHJldHVybiB7XG4gICAgZGlyZWN0aW9uOiAnbHRyJyxcbiAgICBzZXBhcmF0b3I6ICcgLSAnLFxuICAgIHdlZWtMYWJlbDogJ1cnLFxuICAgIGFwcGx5TGFiZWw6ICdBcHBseScsXG4gICAgY2FuY2VsTGFiZWw6ICdDYW5jZWwnLFxuICAgIGNsZWFyTGFiZWw6ICdDbGVhcicsXG4gICAgY3VzdG9tUmFuZ2VMYWJlbDogJ2N1c3RvbVJhbmdlTGFiZWwnLFxuICAgIGRheXNPZldlZWs6IFtdLFxuICAgIG1vbnRoTmFtZXM6IFtdLFxuICAgIGZpcnN0RGF5OiAxXG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXREYXRlUmFuZ2VEZWZhdWx0ID0gKCk6IHsgW2tleTogc3RyaW5nXTogQXJyYXk8ZGF5anMuRGF5anM+IH0gPT4ge1xuICByZXR1cm4ge1xuICAgIHRvZGF5OiBbZGF5anMoKS5ob3VyKDApLm1pbnV0ZSgwKS5zZWNvbmQoMCkubWlsbGlzZWNvbmQoMCksIGRheWpzKCkuaG91cigyMykubWludXRlKDU5KS5zZWNvbmQoNTkpXSxcbiAgICB5ZXN0ZXJkYXk6IFtkYXlqcygpLnN1YnRyYWN0KDEsICdkYXlzJykuaG91cigwKS5taW51dGUoMCkuc2Vjb25kKDApLm1pbGxpc2Vjb25kKDApLCBkYXlqcygpLnN1YnRyYWN0KDEsICdkYXlzJykuaG91cigyMykubWludXRlKDU5KS5zZWNvbmQoNTkpXSxcbiAgICBfN2RheXNfYWdvOiBbZGF5anMoKS5zdWJ0cmFjdCg2LCAnZGF5cycpLmhvdXIoMCkuc2Vjb25kKDApLm1pbnV0ZSgwKS5taWxsaXNlY29uZCgwKSwgZGF5anMoKS5ob3VyKDIzKS5taW51dGUoNTkpLnNlY29uZCg1OSldLFxuICAgIF8zMGRheXNfYWdvOiBbZGF5anMoKS5zdWJ0cmFjdCgyOSwgJ2RheXMnKS5ob3VyKDApLnNlY29uZCgwKS5taW51dGUoMCkubWlsbGlzZWNvbmQoMCksIGRheWpzKCkuaG91cigyMykubWludXRlKDU5KS5zZWNvbmQoNTkpXSxcbiAgICB0aGlzX21vbnRoOiBbZGF5anMoKS5zdGFydE9mKCdtb250aCcpLCBkYXlqcygpLmVuZE9mKCdtb250aCcpXSxcbiAgICBsYXN0X21vbnRoOiBbZGF5anMoKS5zdWJ0cmFjdCgxLCAnbW9udGgnKS5zdGFydE9mKCdtb250aCcpLCBkYXlqcygpLnN1YnRyYWN0KDEsICdtb250aCcpLmVuZE9mKCdtb250aCcpXSxcbiAgICBfM21vbnRoc19hZ286IFtkYXlqcygpLnN1YnRyYWN0KDg5LCAnZGF5cycpLmhvdXIoMCkuc2Vjb25kKDApLm1pbnV0ZSgwKS5taWxsaXNlY29uZCgwKSwgZGF5anMoKS5ob3VyKDIzKS5taW51dGUoNTkpLnNlY29uZCg1OSldLFxuICB9O1xufTtcbiJdfQ==
|
package/esm2022/index.mjs
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export * from './picker.component';
|
|
2
|
-
|
|
2
|
+
export * from './defines/common-date.define';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvcGlja2VyL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3BpY2tlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWZpbmVzL2NvbW1vbi1kYXRlLmRlZmluZSc7Il19
|
|
@@ -87,6 +87,16 @@ export class LibsUiComponentsDatetimePickerComponent {
|
|
|
87
87
|
}
|
|
88
88
|
handlerPickerSingleDate(data) {
|
|
89
89
|
this.outSelectSingleDate.emit(data);
|
|
90
|
+
this.chosenDateFromRanges.set({ selectedLabel: data.displayLabel });
|
|
91
|
+
if (this.hasTimePicker()) {
|
|
92
|
+
const startTime = dayjs(data.date).format('DD/MM/YYYY HH:mm');
|
|
93
|
+
this.chosenDateFromRanges.update(current => {
|
|
94
|
+
current.selectedLabel = `${startTime}`;
|
|
95
|
+
return current;
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
this.singleDateSelected.set(data);
|
|
99
|
+
this.popoverFunctionControlEvent()?.removePopoverOverlay();
|
|
90
100
|
}
|
|
91
101
|
handlerPickerDateRange(data) {
|
|
92
102
|
console.log(data);
|
|
@@ -101,7 +111,7 @@ export class LibsUiComponentsDatetimePickerComponent {
|
|
|
101
111
|
const startTime = dayjs(data.startDate).format('DD/MM/YYYY HH:mm');
|
|
102
112
|
const endTime = dayjs(data.endDate).format('DD/MM/YYYY HH:mm');
|
|
103
113
|
this.chosenDateFromRanges.update(current => {
|
|
104
|
-
current.selectedLabel = `${
|
|
114
|
+
current.selectedLabel = `${startTime} - ${endTime}`;
|
|
105
115
|
return current;
|
|
106
116
|
});
|
|
107
117
|
}
|
|
@@ -177,4 +187,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
177
187
|
LibsUiComponentsDatetimePickerCustomRangesComponent
|
|
178
188
|
], template: "<div class=\"{{ classInclude() }}\">\n @if (labelConfig(); as labelConfig) {\n <libs_ui-components-label [classInclude]=\"labelConfig.classInclude\"\n [labelLeft]=\"labelConfig.labelLeft\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [required]=\"labelConfig.required \"\n [description]=\"labelConfig.description\"\n [descriptionClass]=\"labelConfig.descriptionClass\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [disableButtonsLeft]=\"labelConfig.disableButtonsLeft || disable()\"\n [disableButtonsRight]=\"labelConfig.disableButtonsRight || disable()\"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"labelConfig.toggleDisable || disable()\"\n [popover]=\"labelConfig.popover\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [limitLength]=\"labelConfig.limitLength\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [disableButtonsDescription]=\"labelConfig.disableButtonsDescription || disable()\"\n [buttonsDescriptionContainerClass]=\"labelConfig.buttonsDescriptionContainerClass\"\n [count]=\"labelConfig.count\" />\n }\n <div class=\"flex w-full\">\n <libs_ui-components-popover [classInclude]=\"classPickerInclude()\"\n [ignoreShowPopover]=\"disable() || readonly()\"\n [mode]=\"'click'\"\n [ignoreHiddenPopoverContentWhenMouseLeave]=\"true\"\n [ignoreStopPropagationEvent]=\"ignoreStopPropagationEvent()\"\n [flagMouse]=\"flagMouse()\"\n [config]=\"{\n animationConfig:{},\n maxWidth: 770,\n maxHeight: 420,\n directionDistance:2,\n template: customRangesRef,\n widthByParent: widthByParent(),\n whiteTheme: true,\n ignoreArrow: true,\n zIndex: zIndex(),\n classInclude: 'rounded-[4px] ',\n position: {mode: rangesPopoverPosition(),distance: 0}}\"\n (outChangStageFlagMouse)=\"handlerChangStagePopoverFlagMouse($event)\"\n (outFunctionsControl)=\"handlerFunctionControl($event)\"\n (outEvent)=\"handlerPopoverEvent($event)\">\n @if (!isNgContent()) {\n <div #containerRef\n class=\"flex items-center px-[12px] h-[32px] rounded-[4px] bg-[#ffffff] cursor-pointer libs-ui-font-h5r {{ classPickerContentInclude() }}\"\n [class.libs-ui-disable]=\"disable()\"\n [class.!border-none]=\"ignoreBorderQuickRange()\"\n [class.libs-ui-border-general]=\"!singleError().message && !ignoreBorderQuickRange()\"\n [class.libs-ui-border-error-general]=\"singleError().message && !ignoreBorderQuickRange()\"\n [class.min-w-[284px]]=\"!chosenDateFromRanges().selectedLabel && !isSingle() && hasTimePicker()\"\n [class.!border]=\"showRangesPopup() && !ignoreBorderQuickRange() && !readonly()\"\n [class.!border-[#4e8cf7]]=\"showRangesPopup() && !ignoreBorderQuickRange() && !readonly()\"\n [class.libs-ui-readonly]=\"readonly() || false\"\n [style.width.px]=\"width()\"\n (click)=\"handlerSelectRanges($event)\">\n <div class=\"libs-ui-icon-calendar text-[#9ca2ad] text-[16px]\"></div>\n <div class=\"ml-[8px]\"\n [class.!text-[#071631]]=\"!disable()\"\n [class.!text-[#9ca2ad]]=\"disable()\">\n @if (!chosenDateFromRanges().selectedLabel) {\n @if (!isSingle()) {\n <span class=\"text-[#9ca2ad]\">dd/mm/yyyy@if (hasTimePicker()) {<span> hh:mm</span>} - dd/mm/yyyy@if (hasTimePicker()) {<span> hh:mm</span>}</span>\n }\n @if (isSingle()) {\n <span class=\"text-[#9ca2ad]\">dd/mm/yyyy@if (hasTimePicker()) {<span> hh:mm</span>}</span>\n }\n }\n @if (chosenDateFromRanges().selectedLabel && !isSingle()) {\n {{ displayRangeTitle() }}\n }\n @if (chosenDateFromRanges().selectedLabel && isSingle()) {\n <span [class.text-[#29c7cc]]=\"useColorModeExist() || false\">\n {{ chosenDateFromRanges().selectedLabel }}\n </span>\n }\n </div>\n @if (chosenDateFromRanges().selectedLabel && allowReset() && !disable() && !readonly()) {\n <div class=\"pl-[12px] ml-auto h-full flex items-center\">\n <i class=\"libs-ui-icon-close-circle-solid text-[16px] text-[#cdd0d6]\"\n (click)=\"handlerReset($event)\"></i>\n </div>\n }\n </div>\n }\n @if (isNgContent()) {\n <div (click)=\"handlerSelectRanges($event)\">\n <ng-content></ng-content>\n </div>\n }\n </libs_ui-components-popover>\n </div>\n @if (singleError().message && !validRequired()?.ignoreMessage) {\n <div class=\"mt-[8px] text-[#ee2d41] libs-ui-font-h7r\">\n {{ (singleError().message || ERROR_MESSAGE_EMPTY_VALID)| translate:validRequired()?.interpolateParams }}\n </div>\n }\n</div>\n\n<ng-template #customRangesRef>\n <libs_ui-components-datetime-picker-custom_ranges [zIndex]=\"zIndex()\"\n [classInclude]=\"classIncludeCustomRanges()\"\n [widthByParent]=\"widthByParent()\"\n [dateOptions]=\"dateOptions()\"\n [positionQuickRanges]=\"positionQuickRanges()\"\n [showCustomRangeLabel]=\"showCustomRangeLabel()\"\n [autoApply]=\"autoApply()\"\n [isSingle]=\"isSingle()\"\n [singleDateSelected]=\"singleDateSelected()\"\n [dateRangeSelected]=\"dateRangeSelected()\"\n [extendRanges]=\"extendRanges()\"\n [hasTimePicker]=\"hasTimePicker()\"\n (outUpdateWidth)=\"handlerUpdateWidth()\"\n (outCancel)=\"handlerCancel()\"\n (outSelectSingleDate)=\"handlerPickerSingleDate($event)\"\n (outSelectDateRange)=\"handlerPickerDateRange($event)\"\n (outChangStageFlagMouse)=\"handlerChangStageFlagMouse($event)\" />\n</ng-template>\n" }]
|
|
179
189
|
}], ctorParameters: () => [] });
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9kYXRldGltZS9waWNrZXIvc3JjL3BpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvcGlja2VyL3NyYy9waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5SCxPQUFPLEVBQVUsOEJBQThCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRixPQUFPLEVBQTRDLGdDQUFnQyxFQUFzQixNQUFNLDZCQUE2QixDQUFDO0FBQzdJLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUl0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEYsT0FBTyxFQUFFLG1EQUFtRCxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFOUcsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDOzs7QUFpQjFCLE1BQU0sT0FBTyx1Q0FBdUM7SUFDbEQsZUFBZTtJQUNJLHlCQUF5QixHQUFHLHlCQUF5QixDQUFDO0lBQy9ELGVBQWUsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDekMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2hELFdBQVcsR0FBRyxNQUFNLENBQWlCLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDN0Qsb0JBQW9CLEdBQUcsTUFBTSxDQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLHdCQUF3QixDQUE4QztJQUN0RSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQzFDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLGFBQStCLENBQUM7UUFFbEYsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN0QyxPQUFPO1FBQ1QsQ0FBQztRQUVELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUMsQ0FBQyxDQUFDO0lBQ08sV0FBVyxHQUFHLE1BQU0sQ0FBcUIsRUFBRSxHQUFHLG1CQUFtQixFQUFFLEVBQUUsR0FBRyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFOUYsMkJBQTJCLEdBQUcsTUFBTSxDQUEyQyxTQUFTLENBQUMsQ0FBQztJQUVsRyxZQUFZO0lBQ0gsb0JBQW9CLEdBQUcsS0FBSyxDQUFtQixJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlGLFdBQVcsR0FBRyxLQUFLLEVBQVUsQ0FBQztJQUM5QixPQUFPLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLFFBQVEsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDakMsWUFBWSxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztJQUNqQyxrQkFBa0IsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7SUFDdkMseUJBQXlCLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLHNCQUFzQixHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUMvQyxpQkFBaUIsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDMUMsYUFBYSxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztJQUNyQyxVQUFVLEdBQUcsS0FBSyxDQUFVLElBQUksQ0FBQyxDQUFDO0lBQ2xDLFlBQVksR0FBRyxLQUFLLENBQW1CLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdEYsWUFBWSxHQUFHLEtBQUssQ0FBcUIsU0FBUyxDQUFDLENBQUM7SUFDcEQsUUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUNqQyxZQUFZLEdBQUcsS0FBSyxDQUFvQixFQUFFLENBQUMsQ0FBQztJQUU1QyxhQUFhLEdBQUcsS0FBSyxDQUE2QixTQUFTLENBQUMsQ0FBQztJQUM3RCwwQkFBMEIsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDbkQsU0FBUyxHQUFHLEtBQUssQ0FBYSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNuRixhQUFhLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sR0FBRyxLQUFLLENBQWlCLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUUscUJBQXFCLEdBQUcsS0FBSyxDQUF5RCxPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzNJLFdBQVcsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDcEMsd0JBQXdCLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLFNBQVMsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDbEMsbUJBQW1CLEdBQUcsS0FBSyxDQUFtQixNQUFNLENBQUMsQ0FBQyxDQUFDLDBDQUEwQztJQUVqRyxrQkFBa0IsR0FBRyxLQUFLLEVBQW1CLENBQUM7SUFDOUMsaUJBQWlCLEdBQUcsS0FBSyxFQUFrQixDQUFDO0lBRXJELGFBQWE7SUFDSixzQkFBc0IsR0FBRyxNQUFNLEVBQWMsQ0FBQztJQUM5QyxRQUFRLEdBQUcsTUFBTSxFQUFhLENBQUM7SUFDL0IsbUJBQW1CLEdBQUcsTUFBTSxFQUFtQixDQUFDO0lBQ2hELGtCQUFrQixHQUFHLE1BQU0sRUFBa0IsQ0FBQztJQUM5QyxtQkFBbUIsR0FBRyxNQUFNLEVBQXVDLENBQUM7SUFFN0U7UUFDRSwwQ0FBMEM7SUFDNUMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUMvRSxDQUFDO0lBRVMsbUJBQW1CLENBQUMsS0FBWTtRQUN4QyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVTLDBCQUEwQixDQUFDLFNBQXFCO1FBQ3hELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQy9CLENBQUM7SUFFUyxpQ0FBaUMsQ0FBQyxTQUFxQjtRQUMvRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO1lBQzFDLFNBQVMsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDdkMsQ0FBQztRQUNELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUdTLHNCQUFzQixDQUFDLEtBQW1DO1FBQ2xFLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVTLG1CQUFtQixDQUFDLEtBQXlCO1FBQ3JELElBQUksS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDO0lBRVMsdUJBQXVCLENBQUMsSUFBcUI7UUFDckQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRVMsc0JBQXNCLENBQUMsSUFBb0I7UUFDbkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzVELE9BQU87UUFDVCxDQUFDO1FBQ0QseUNBQXlDO1FBQ3pDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFFcEUsK0NBQStDO1FBQy9DLDJDQUEyQztRQUMzQyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDbkUsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUUvRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUN6QyxPQUFPLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxNQUFNLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDeEYsT0FBTyxPQUFPLENBQUM7WUFDakIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0Qsa1dBQWtXO1FBQ2xXLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFNUgsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksMEJBQTBCLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUN6QyxPQUFPLENBQUMsYUFBYSxHQUFHLDBCQUEwQixJQUFJLDBCQUEwQixDQUFDLEtBQUssQ0FBQztnQkFDdkYsT0FBTyxPQUFPLENBQUM7WUFDakIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNsSCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3BILElBQUksQ0FBQywyQkFBMkIsRUFBRSxFQUFFLG9CQUFvQixFQUFFLENBQUM7UUFDM0QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFUyxZQUFZLENBQUMsS0FBYTtRQUNsQyxLQUFLLEVBQUUsZUFBZSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsQywrR0FBK0c7UUFDL0csSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVTLGtCQUFrQjtRQUMxQixJQUFJLENBQUMsMkJBQTJCLEVBQUUsRUFBRSw0QkFBNEIsRUFBRSxDQUFDO0lBQ3JFLENBQUM7SUFFUyxhQUFhO1FBQ3JCLElBQUksQ0FBQywyQkFBMkIsRUFBRSxFQUFFLG9CQUFvQixFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVPLEtBQUssQ0FBQyxZQUFZO1FBQ3hCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ3RDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE1BQU0sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRXRCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDbkQsQ0FBQztJQUVPLEtBQUssQ0FBQyxRQUFRO1FBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFFN0MsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO1lBQzFCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2RSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQztnQkFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxPQUFPLElBQUkseUJBQXlCO2dCQUNuRSxpQkFBaUIsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsaUJBQWlCLElBQUksRUFBRTthQUNqRSxDQUFDLENBQUM7WUFFSCxPQUFPO1FBQ1QsQ0FBQztJQUNILENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7WUFDeEIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzdCLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3RDLENBQUM7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUN0QyxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDN0IsQ0FBQzt3R0EvTFUsdUNBQXVDOzRGQUF2Qyx1Q0FBdUMsMjJJQzVCcEQseWxNQTRIQSx5RER0R0ksZUFBZSw0RkFDZiw4QkFBOEIsNHFCQUM5QixnQ0FBZ0MscWVBQ2hDLG1EQUFtRDs7NEZBRzFDLHVDQUF1QztrQkFkbkQsU0FBUzsrQkFFRSxvQ0FBb0MsY0FHbEMsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLGVBQWU7d0JBQ2YsOEJBQThCO3dCQUM5QixnQ0FBZ0M7d0JBQ2hDLG1EQUFtRDtxQkFDcEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQsIG1vZGVsLCBPbkRlc3Ryb3ksIE9uSW5pdCwgb3V0cHV0LCBzaWduYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgSUxhYmVsLCBMaWJzVWlDb21wb25lbnRzTGFiZWxDb21wb25lbnQgfSBmcm9tIFwiQGxpYnMtdWkvY29tcG9uZW50cy1sYWJlbFwiO1xuaW1wb3J0IHsgSUZsYWdNb3VzZSwgSVBvcG92ZXJGdW5jdGlvbkNvbnRyb2xFdmVudCwgTGlic1VpQ29tcG9uZW50c1BvcG92ZXJDb21wb25lbnQsIFRZUEVfUE9QT1ZFUl9FVkVOVCB9IGZyb20gXCJAbGlicy11aS9jb21wb25lbnRzLXBvcG92ZXJcIjtcbmltcG9ydCB7IEVSUk9SX01FU1NBR0VfRU1QVFlfVkFMSUQgfSBmcm9tIFwiQGxpYnMtdWkvdXRpbHNcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBJRGF0ZVRpbWVWYWxpZCB9IGZyb20gXCIuL2ludGVyZmFjZXMvdmFsaWQuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBJQ2hvc2VuRGF0ZSwgTG9jYWxpemF0aW9uQ29uZmlnLCBUWVBFX1JBTkdFX0tFWSB9IGZyb20gXCIuL2ludGVyZmFjZXMvcGlja2VyLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgSURhdGVUaW1lUGlja2VyRnVuY3Rpb25Db250cm9sRXZlbnQgfSBmcm9tIFwiLi9pbnRlcmZhY2VzL2Z1bmN0aW9uLWNvbnRyb2wuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBkZWZhdWx0TG9jYWxlQ29uZmlnLCBnZXREYXRlT3B0aW9ucyB9IGZyb20gXCIuL2RlZmluZXMvZGF0ZS1vcHRpb25zLmRlZmluZVwiO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lUGlja2VyQ3VzdG9tUmFuZ2VzQ29tcG9uZW50IH0gZnJvbSBcIi4vY3VzdG9tLXJhbmdlcy9jdXN0b20tcmFuZ2VzLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgSUVtaXREYXRlUmFuZ2UsIElFbWl0U2luZ2xlRGF0ZSB9IGZyb20gXCIuL2ludGVyZmFjZXMvY2FsZW5kYXItZW1pdC5pbnRlcmZhY2VcIjtcbmltcG9ydCBkYXlqcyBmcm9tIFwiZGF5anNcIjtcbmltcG9ydCB7IElEYXRlUmFuZ2UgfSBmcm9tIFwiLi9pbnRlcmZhY2VzL2NhbGVuZGFyLXZhcmlhYmxlcy5pbnRlcmZhY2VcIjtcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGlic191aS1jb21wb25lbnRzLWRhdGV0aW1lLXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgTGlic1VpQ29tcG9uZW50c0xhYmVsQ29tcG9uZW50LFxuICAgIExpYnNVaUNvbXBvbmVudHNQb3BvdmVyQ29tcG9uZW50LFxuICAgIExpYnNVaUNvbXBvbmVudHNEYXRldGltZVBpY2tlckN1c3RvbVJhbmdlc0NvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNEYXRldGltZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqIFBST1BFUlRZICovXG4gIHByb3RlY3RlZCByZWFkb25seSBFUlJPUl9NRVNTQUdFX0VNUFRZX1ZBTElEID0gRVJST1JfTUVTU0FHRV9FTVBUWV9WQUxJRDtcbiAgcHJvdGVjdGVkIHNob3dSYW5nZXNQb3B1cCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIHByb3RlY3RlZCB3aWR0aCA9IGNvbXB1dGVkKHRoaXMuY29tcHV0ZWRXaWR0aC5iaW5kKHRoaXMpKTtcbiAgcHJvdGVjdGVkIHNpbmdsZUVycm9yID0gc2lnbmFsPElEYXRlVGltZVZhbGlkPih7IG1lc3NhZ2U6IHVuZGVmaW5lZCB9KTtcbiAgcHJvdGVjdGVkIGNob3NlbkRhdGVGcm9tUmFuZ2VzID0gc2lnbmFsPElDaG9zZW5EYXRlPih7fSk7XG4gIHByb3RlY3RlZCBzZWxlY3RlZERhdGVGcm9tQ2FsZW5kYXIhOiB7IHN0YXJ0PzogZGF5anMuRGF5anMsIGVuZD86IGRheWpzLkRheWpzIH07XG4gIHByb3RlY3RlZCBkaXNwbGF5UmFuZ2VUaXRsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZExhYmVsID0gdGhpcy5jaG9zZW5EYXRlRnJvbVJhbmdlcygpLnNlbGVjdGVkTGFiZWwgYXMgVFlQRV9SQU5HRV9LRVk7XG5cbiAgICBpZiAodGhpcy5pc1NpbmdsZSgpIHx8ICFzZWxlY3RlZExhYmVsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlbGVjdGVkTGFiZWw7XG4gIH0pO1xuICBwcm90ZWN0ZWQgZGF0ZU9wdGlvbnMgPSBzaWduYWw8TG9jYWxpemF0aW9uQ29uZmlnPih7IC4uLmRlZmF1bHRMb2NhbGVDb25maWcoKSwgLi4uZ2V0RGF0ZU9wdGlvbnMoKSB9KTtcblxuICBwcml2YXRlIHBvcG92ZXJGdW5jdGlvbkNvbnRyb2xFdmVudCA9IHNpZ25hbDxJUG9wb3ZlckZ1bmN0aW9uQ29udHJvbEV2ZW50IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIC8qKiBJTlBVVCAqL1xuICByZWFkb25seSBzaG93Q3VzdG9tUmFuZ2VMYWJlbCA9IGlucHV0PGJvb2xlYW4sIGJvb2xlYW4+KHRydWUsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/IHRydWUgfSk7XG4gIHJlYWRvbmx5IGxhYmVsQ29uZmlnID0gaW5wdXQ8SUxhYmVsPigpO1xuICByZWFkb25seSBkaXNhYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSByZWFkb25seSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgY2xhc3NJbmNsdWRlID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIHJlYWRvbmx5IGNsYXNzUGlja2VySW5jbHVkZSA9IGlucHV0PHN0cmluZz4oJycpO1xuICByZWFkb25seSBjbGFzc1BpY2tlckNvbnRlbnRJbmNsdWRlID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIHJlYWRvbmx5IGlnbm9yZUJvcmRlclF1aWNrUmFuZ2UgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHVzZUNvbG9yTW9kZUV4aXN0ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBoYXNUaW1lUGlja2VyID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gIHJlYWRvbmx5IGFsbG93UmVzZXQgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgcmVhZG9ubHkgd2lkdGhCeUxhYmVsID0gaW5wdXQ8Ym9vbGVhbiwgYm9vbGVhbj4odHJ1ZSwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gdHJ1ZSB9KTtcbiAgcmVhZG9ubHkgZGVmYXVsdFdpZHRoID0gaW5wdXQ8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBpc1NpbmdsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgZXh0ZW5kUmFuZ2VzID0gaW5wdXQ8QXJyYXk8SURhdGVSYW5nZT4+KFtdKTtcblxuICByZWFkb25seSB2YWxpZFJlcXVpcmVkID0gaW5wdXQ8SURhdGVUaW1lVmFsaWQgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGlnbm9yZVN0b3BQcm9wYWdhdGlvbkV2ZW50ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBmbGFnTW91c2UgPSBtb2RlbDxJRmxhZ01vdXNlPih7IGlzTW91c2VFbnRlcjogZmFsc2UsIGlzTW91c2VFbnRlckNvbnRlbnQ6IGZhbHNlIH0pO1xuICByZWFkb25seSB3aWR0aEJ5UGFyZW50ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSB6SW5kZXggPSBpbnB1dDxudW1iZXIsIG51bWJlcj4oMTIwMCwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gMTIwMCB9KTtcbiAgcmVhZG9ubHkgcmFuZ2VzUG9wb3ZlclBvc2l0aW9uID0gaW5wdXQ8J3N0YXJ0JyB8ICdjZW50ZXInIHwgJ2VuZCcsICdzdGFydCcgfCAnY2VudGVyJyB8ICdlbmQnPignc3RhcnQnLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyAnc3RhcnQnIH0pO1xuICByZWFkb25seSBpc05nQ29udGVudCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgY2xhc3NJbmNsdWRlQ3VzdG9tUmFuZ2VzID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIHJlYWRvbmx5IGF1dG9BcHBseSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgcG9zaXRpb25RdWlja1JhbmdlcyA9IGlucHV0PCdsZWZ0JyB8ICdyaWdodCc+KCdsZWZ0Jyk7IC8vIHbhu4sgdHLDrSBsaXN0IGNo4buNbiBuaGFuaCBraG/huqNuZyB0aOG7nWkgZ2lhblxuXG4gIHJlYWRvbmx5IHNpbmdsZURhdGVTZWxlY3RlZCA9IG1vZGVsPElFbWl0U2luZ2xlRGF0ZT4oKTtcbiAgcmVhZG9ubHkgZGF0ZVJhbmdlU2VsZWN0ZWQgPSBtb2RlbDxJRW1pdERhdGVSYW5nZT4oKTtcblxuICAvKiogT1VUUFVUICovXG4gIHJlYWRvbmx5IG91dENoYW5nU3RhZ2VGbGFnTW91c2UgPSBvdXRwdXQ8SUZsYWdNb3VzZT4oKTtcbiAgcmVhZG9ubHkgb3V0UmVzZXQgPSBvdXRwdXQ8dW5kZWZpbmVkPigpO1xuICByZWFkb25seSBvdXRTZWxlY3RTaW5nbGVEYXRlID0gb3V0cHV0PElFbWl0U2luZ2xlRGF0ZT4oKTtcbiAgcmVhZG9ubHkgb3V0U2VsZWN0RGF0ZVJhbmdlID0gb3V0cHV0PElFbWl0RGF0ZVJhbmdlPigpO1xuICByZWFkb25seSBvdXRGdW5jdGlvbnNDb250cm9sID0gb3V0cHV0PElEYXRlVGltZVBpY2tlckZ1bmN0aW9uQ29udHJvbEV2ZW50PigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIHRoaXMuZGF0ZU9wdGlvbnMuc2V0KGdldERhdGVPcHRpb25zKCkpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5vdXRGdW5jdGlvbnNDb250cm9sLmVtaXQoeyBjaGVja0lzVmFsaWQ6IHRoaXMuY2hlY2tJc1ZhbGlkLmJpbmQodGhpcykgfSlcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyU2VsZWN0UmFuZ2VzKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJDaGFuZ1N0YWdlRmxhZ01vdXNlKGZsYWdNb3VzZTogSUZsYWdNb3VzZSkge1xuICAgIHRoaXMuZmxhZ01vdXNlLnNldChmbGFnTW91c2UpXG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckNoYW5nU3RhZ2VQb3BvdmVyRmxhZ01vdXNlKGZsYWdNb3VzZTogSUZsYWdNb3VzZSkge1xuICAgIGlmICh0aGlzLmZsYWdNb3VzZSgpPy5pc01vdXNlRW50ZXJDb250ZW50KSB7XG4gICAgICBmbGFnTW91c2UuaXNNb3VzZUVudGVyQ29udGVudCA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMub3V0Q2hhbmdTdGFnZUZsYWdNb3VzZS5lbWl0KGZsYWdNb3VzZSk7XG4gIH1cblxuXG4gIHByb3RlY3RlZCBoYW5kbGVyRnVuY3Rpb25Db250cm9sKGV2ZW50OiBJUG9wb3ZlckZ1bmN0aW9uQ29udHJvbEV2ZW50KSB7XG4gICAgdGhpcy5wb3BvdmVyRnVuY3Rpb25Db250cm9sRXZlbnQuc2V0KGV2ZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyUG9wb3ZlckV2ZW50KGV2ZW50OiBUWVBFX1BPUE9WRVJfRVZFTlQpIHtcbiAgICBpZiAoZXZlbnQgPT09ICdyZW1vdmUnKSB7XG4gICAgICB0aGlzLnNob3dSYW5nZXNQb3B1cC5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyUGlja2VyU2luZ2xlRGF0ZShkYXRhOiBJRW1pdFNpbmdsZURhdGUpIHtcbiAgICB0aGlzLm91dFNlbGVjdFNpbmdsZURhdGUuZW1pdChkYXRhKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyUGlja2VyRGF0ZVJhbmdlKGRhdGE6IElFbWl0RGF0ZVJhbmdlKSB7XG4gICAgY29uc29sZS5sb2coZGF0YSk7XG5cbiAgICBpZiAoKGRhdGEuZGlzcGxheUxhYmVsPy5pbmRleE9mKCdJbnZhbGlkIERhdGUnKSA/PyAtMSkgPiAtMSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyB0aGlzLnNlbGVjdGVkS2V5ID0gZGF0YS5zZWxlY3RlZExhYmVsO1xuICAgIHRoaXMuY2hvc2VuRGF0ZUZyb21SYW5nZXMuc2V0KHsgc2VsZWN0ZWRMYWJlbDogZGF0YS5kaXNwbGF5TGFiZWwgfSk7XG5cbiAgICAvLyB0aGlzLnNlbGVjdGVkLnN0YXJ0ID0gZGF5anMoZGF0YS5zdGFydERhdGUpO1xuICAgIC8vIHRoaXMuc2VsZWN0ZWQuZW5kID0gZGF5anMoZGF0YS5lbmREYXRlKTtcbiAgICBpZiAodGhpcy5oYXNUaW1lUGlja2VyKCkpIHtcbiAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IGRheWpzKGRhdGEuc3RhcnREYXRlKS5mb3JtYXQoJ0REL01NL1lZWVkgSEg6bW0nKTtcbiAgICAgIGNvbnN0IGVuZFRpbWUgPSBkYXlqcyhkYXRhLmVuZERhdGUpLmZvcm1hdCgnREQvTU0vWVlZWSBISDptbScpO1xuXG4gICAgICB0aGlzLmNob3NlbkRhdGVGcm9tUmFuZ2VzLnVwZGF0ZShjdXJyZW50ID0+IHtcbiAgICAgICAgY3VycmVudC5zZWxlY3RlZExhYmVsID0gYCR7IXRoaXMuaXNTaW5nbGUoKSA/IGAke3N0YXJ0VGltZX0gLSAke2VuZFRpbWV9YCA6IHN0YXJ0VGltZX1gO1xuICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgIH0pO1xuICAgIH1cbiAgICAvLyB0aGlzLm1vRGF0ZVBpY2tlci5lbWl0KHRoaXMuc2luZ2xlRGF0ZVBpY2tlciA/IHsgY2hvc2VuTGFiZWw6IHRoaXMuZGF0ZVZhbHVlLmNob3NlbkxhYmVsLCBzaW5nbGVEYXRlOiB0aGlzLmRhdGVWYWx1ZS5zdGFydERhdGU/LnV0YygpLCBzdGFydERhdGU6IHRoaXMuZGF0ZVZhbHVlLnN0YXJ0RGF0ZT8udXRjKCksIGVuZERhdGU6IHRoaXMuZGF0ZVZhbHVlLmVuZERhdGU/LnV0YygpIH0gOiB7IGNob3NlbkxhYmVsOiB0aGlzLmRhdGVWYWx1ZS5jaG9zZW5MYWJlbCwgc3RhcnREYXRlOiB0aGlzLmRhdGVWYWx1ZS5zdGFydERhdGU/LnV0YygpLCBlbmREYXRlOiB0aGlzLmRhdGVWYWx1ZS5lbmREYXRlPy51dGMoKSB9KTtcbiAgICBjb25zdCBzaG93Vmlld0V4dGVybmFsUmFuZ2VMYWJlbCA9IHRoaXMuZXh0ZW5kUmFuZ2VzKCk/LmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSB0aGlzLmNob3NlbkRhdGVGcm9tUmFuZ2VzKCkuc2VsZWN0ZWRMYWJlbCk7XG5cbiAgICBpZiAodGhpcy5leHRlbmRSYW5nZXMoKSAmJiBzaG93Vmlld0V4dGVybmFsUmFuZ2VMYWJlbCkge1xuICAgICAgdGhpcy5jaG9zZW5EYXRlRnJvbVJhbmdlcy51cGRhdGUoY3VycmVudCA9PiB7XG4gICAgICAgIGN1cnJlbnQuc2VsZWN0ZWRMYWJlbCA9IHNob3dWaWV3RXh0ZXJuYWxSYW5nZUxhYmVsICYmIHNob3dWaWV3RXh0ZXJuYWxSYW5nZUxhYmVsLmxhYmVsO1xuICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuZGF0ZVJhbmdlU2VsZWN0ZWQuc2V0KHsgcXVpY2tSYW5nZUlkOiBkYXRhLnF1aWNrUmFuZ2VJZCwgc3RhcnREYXRlOiBkYXRhLnN0YXJ0RGF0ZSwgZW5kRGF0ZTogZGF0YS5lbmREYXRlIH0pO1xuICAgIHRoaXMub3V0U2VsZWN0RGF0ZVJhbmdlLmVtaXQoeyBxdWlja1JhbmdlSWQ6IGRhdGEucXVpY2tSYW5nZUlkLCBzdGFydERhdGU6IGRhdGEuc3RhcnREYXRlLCBlbmREYXRlOiBkYXRhLmVuZERhdGUgfSk7XG4gICAgdGhpcy5wb3BvdmVyRnVuY3Rpb25Db250cm9sRXZlbnQoKT8ucmVtb3ZlUG9wb3Zlck92ZXJsYXkoKTtcbiAgICB0aGlzLmNoZWNrSXNWYWxpZCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJSZXNldChldmVudD86IEV2ZW50KSB7XG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuY2hvc2VuRGF0ZUZyb21SYW5nZXMuc2V0KHt9KTtcbiAgICAvLyB0aGlzLnNlbGVjdGVkID0geyBzdGFydDogZGF5anMoKS5ob3VyKDApLm1pbnV0ZSgwKS5zZWNvbmQoMCksIGVuZDogZGF5anMoKS5ob3VyKDIzKS5taW51dGUoNTkpLnNlY29uZCg1OSkgfTtcbiAgICB0aGlzLm91dFJlc2V0LmVtaXQodW5kZWZpbmVkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyVXBkYXRlV2lkdGgoKSB7XG4gICAgdGhpcy5wb3BvdmVyRnVuY3Rpb25Db250cm9sRXZlbnQoKT8udXBkYXRlUG9wb3Zlck92ZXJsYXlQb3NpdGlvbigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJDYW5jZWwoKSB7XG4gICAgdGhpcy5wb3BvdmVyRnVuY3Rpb25Db250cm9sRXZlbnQoKT8ucmVtb3ZlUG9wb3Zlck92ZXJsYXkoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2hlY2tJc1ZhbGlkKCkge1xuICAgIGlmICh0aGlzLnJlYWRvbmx5KCkgfHwgdGhpcy5kaXNhYmxlKCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLnZhbGlkYXRlKCk7XG5cbiAgICByZXR1cm4gdGhpcy5zaW5nbGVFcnJvcigpLm1lc3NhZ2UgPyB0cnVlIDogZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHZhbGlkYXRlKCkge1xuICAgIHRoaXMuc2luZ2xlRXJyb3Iuc2V0KHsgbWVzc2FnZTogdW5kZWZpbmVkIH0pO1xuXG4gICAgaWYgKCF0aGlzLnZhbGlkUmVxdWlyZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnZhbGlkUmVxdWlyZWQoKSAmJiAhdGhpcy5jaG9zZW5EYXRlRnJvbVJhbmdlcygpLnNlbGVjdGVkTGFiZWwpIHtcbiAgICAgIHRoaXMuc2luZ2xlRXJyb3Iuc2V0KHtcbiAgICAgICAgbWVzc2FnZTogdGhpcy52YWxpZFJlcXVpcmVkKCk/Lm1lc3NhZ2UgfHwgRVJST1JfTUVTU0FHRV9FTVBUWV9WQUxJRCxcbiAgICAgICAgaW50ZXJwb2xhdGVQYXJhbXM6IHRoaXMudmFsaWRSZXF1aXJlZCgpPy5pbnRlcnBvbGF0ZVBhcmFtcyB8fCB7fVxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbXB1dGVkV2lkdGgoKSB7XG4gICAgaWYgKHRoaXMud2lkdGhCeUxhYmVsKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kZWZhdWx0V2lkdGgoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFdpZHRoKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGFzVGltZVBpY2tlcigpKSB7XG4gICAgICByZXR1cm4gIXRoaXMuaXNTaW5nbGUoKSA/IDMyMiA6IDE5MDtcbiAgICB9XG4gICAgcmV0dXJuICF0aGlzLmlzU2luZ2xlKCkgPyAyMzIgOiAxNTI7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBjb25zb2xlLmxvZygnbmdPbkRlc3Ryb3knKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInt7IGNsYXNzSW5jbHVkZSgpIH19XCI+XG4gIEBpZiAobGFiZWxDb25maWcoKTsgYXMgbGFiZWxDb25maWcpIHtcbiAgICA8bGlic191aS1jb21wb25lbnRzLWxhYmVsIFtjbGFzc0luY2x1ZGVdPVwibGFiZWxDb25maWcuY2xhc3NJbmNsdWRlXCJcbiAgICAgIFtsYWJlbExlZnRdPVwibGFiZWxDb25maWcubGFiZWxMZWZ0XCJcbiAgICAgIFtsYWJlbExlZnRDbGFzc109XCJsYWJlbENvbmZpZy5sYWJlbExlZnRDbGFzc1wiXG4gICAgICBbcmVxdWlyZWRdPVwibGFiZWxDb25maWcucmVxdWlyZWQgXCJcbiAgICAgIFtkZXNjcmlwdGlvbl09XCJsYWJlbENvbmZpZy5kZXNjcmlwdGlvblwiXG4gICAgICBbZGVzY3JpcHRpb25DbGFzc109XCJsYWJlbENvbmZpZy5kZXNjcmlwdGlvbkNsYXNzXCJcbiAgICAgIFtsYWJlbFJpZ2h0XT1cImxhYmVsQ29uZmlnLmxhYmVsUmlnaHRcIlxuICAgICAgW2xhYmVsUmlnaHRDbGFzc109XCJsYWJlbENvbmZpZy5sYWJlbFJpZ2h0Q2xhc3NcIlxuICAgICAgW29ubHlTaG93Q291bnRdPVwibGFiZWxDb25maWcub25seVNob3dDb3VudFwiXG4gICAgICBbYnV0dG9uc0xlZnRdPVwibGFiZWxDb25maWcuYnV0dG9uc0xlZnRcIlxuICAgICAgW2J1dHRvbnNSaWdodF09XCJsYWJlbENvbmZpZy5idXR0b25zUmlnaHRcIlxuICAgICAgW2Rpc2FibGVCdXR0b25zTGVmdF09XCJsYWJlbENvbmZpZy5kaXNhYmxlQnV0dG9uc0xlZnQgfHwgZGlzYWJsZSgpXCJcbiAgICAgIFtkaXNhYmxlQnV0dG9uc1JpZ2h0XT1cImxhYmVsQ29uZmlnLmRpc2FibGVCdXR0b25zUmlnaHQgfHwgZGlzYWJsZSgpXCJcbiAgICAgIFtoYXNUb2dnbGVdPVwibGFiZWxDb25maWcuaGFzVG9nZ2xlXCJcbiAgICAgIFt0b2dnbGVBY3RpdmVdPVwibGFiZWxDb25maWcudG9nZ2xlQWN0aXZlXCJcbiAgICAgIFt0b2dnbGVEaXNhYmxlXT1cImxhYmVsQ29uZmlnLnRvZ2dsZURpc2FibGUgfHwgZGlzYWJsZSgpXCJcbiAgICAgIFtwb3BvdmVyXT1cImxhYmVsQ29uZmlnLnBvcG92ZXJcIlxuICAgICAgW2ljb25Qb3BvdmVyQ2xhc3NdPVwibGFiZWxDb25maWcuaWNvblBvcG92ZXJDbGFzc1wiXG4gICAgICBbb25seVNob3dDb3VudF09XCJsYWJlbENvbmZpZy5vbmx5U2hvd0NvdW50XCJcbiAgICAgIFtsaW1pdExlbmd0aF09XCJsYWJlbENvbmZpZy5saW1pdExlbmd0aFwiXG4gICAgICBbYnV0dG9uc0Rlc2NyaXB0aW9uXT1cImxhYmVsQ29uZmlnLmJ1dHRvbnNEZXNjcmlwdGlvblwiXG4gICAgICBbZGlzYWJsZUJ1dHRvbnNEZXNjcmlwdGlvbl09XCJsYWJlbENvbmZpZy5kaXNhYmxlQnV0dG9uc0Rlc2NyaXB0aW9uIHx8IGRpc2FibGUoKVwiXG4gICAgICBbYnV0dG9uc0Rlc2NyaXB0aW9uQ29udGFpbmVyQ2xhc3NdPVwibGFiZWxDb25maWcuYnV0dG9uc0Rlc2NyaXB0aW9uQ29udGFpbmVyQ2xhc3NcIlxuICAgICAgW2NvdW50XT1cImxhYmVsQ29uZmlnLmNvdW50XCIgLz5cbiAgfVxuICA8ZGl2IGNsYXNzPVwiZmxleCB3LWZ1bGxcIj5cbiAgICA8bGlic191aS1jb21wb25lbnRzLXBvcG92ZXIgW2NsYXNzSW5jbHVkZV09XCJjbGFzc1BpY2tlckluY2x1ZGUoKVwiXG4gICAgICBbaWdub3JlU2hvd1BvcG92ZXJdPVwiZGlzYWJsZSgpIHx8IHJlYWRvbmx5KClcIlxuICAgICAgW21vZGVdPVwiJ2NsaWNrJ1wiXG4gICAgICBbaWdub3JlSGlkZGVuUG9wb3ZlckNvbnRlbnRXaGVuTW91c2VMZWF2ZV09XCJ0cnVlXCJcbiAgICAgIFtpZ25vcmVTdG9wUHJvcGFnYXRpb25FdmVudF09XCJpZ25vcmVTdG9wUHJvcGFnYXRpb25FdmVudCgpXCJcbiAgICAgIFtmbGFnTW91c2VdPVwiZmxhZ01vdXNlKClcIlxuICAgICAgW2NvbmZpZ109XCJ7XG4gICAgICAgIGFuaW1hdGlvbkNvbmZpZzp7fSxcbiAgICAgICAgbWF4V2lkdGg6IDc3MCxcbiAgICAgICAgbWF4SGVpZ2h0OiA0MjAsXG4gICAgICAgIGRpcmVjdGlvbkRpc3RhbmNlOjIsXG4gICAgICAgIHRlbXBsYXRlOiBjdXN0b21SYW5nZXNSZWYsXG4gICAgICAgIHdpZHRoQnlQYXJlbnQ6IHdpZHRoQnlQYXJlbnQoKSxcbiAgICAgICAgd2hpdGVUaGVtZTogdHJ1ZSxcbiAgICAgICAgaWdub3JlQXJyb3c6IHRydWUsXG4gICAgICAgIHpJbmRleDogekluZGV4KCksXG4gICAgICAgIGNsYXNzSW5jbHVkZTogJ3JvdW5kZWQtWzRweF0gJyxcbiAgICAgICAgcG9zaXRpb246IHttb2RlOiByYW5nZXNQb3BvdmVyUG9zaXRpb24oKSxkaXN0YW5jZTogMH19XCJcbiAgICAgIChvdXRDaGFuZ1N0YWdlRmxhZ01vdXNlKT1cImhhbmRsZXJDaGFuZ1N0YWdlUG9wb3ZlckZsYWdNb3VzZSgkZXZlbnQpXCJcbiAgICAgIChvdXRGdW5jdGlvbnNDb250cm9sKT1cImhhbmRsZXJGdW5jdGlvbkNvbnRyb2woJGV2ZW50KVwiXG4gICAgICAob3V0RXZlbnQpPVwiaGFuZGxlclBvcG92ZXJFdmVudCgkZXZlbnQpXCI+XG4gICAgICBAaWYgKCFpc05nQ29udGVudCgpKSB7XG4gICAgICAgIDxkaXYgI2NvbnRhaW5lclJlZlxuICAgICAgICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgcHgtWzEycHhdIGgtWzMycHhdIHJvdW5kZWQtWzRweF0gYmctWyNmZmZmZmZdIGN1cnNvci1wb2ludGVyIGxpYnMtdWktZm9udC1oNXIge3sgY2xhc3NQaWNrZXJDb250ZW50SW5jbHVkZSgpIH19XCJcbiAgICAgICAgICBbY2xhc3MubGlicy11aS1kaXNhYmxlXT1cImRpc2FibGUoKVwiXG4gICAgICAgICAgW2NsYXNzLiFib3JkZXItbm9uZV09XCJpZ25vcmVCb3JkZXJRdWlja1JhbmdlKClcIlxuICAgICAgICAgIFtjbGFzcy5saWJzLXVpLWJvcmRlci1nZW5lcmFsXT1cIiFzaW5nbGVFcnJvcigpLm1lc3NhZ2UgJiYgIWlnbm9yZUJvcmRlclF1aWNrUmFuZ2UoKVwiXG4gICAgICAgICAgW2NsYXNzLmxpYnMtdWktYm9yZGVyLWVycm9yLWdlbmVyYWxdPVwic2luZ2xlRXJyb3IoKS5tZXNzYWdlICYmICFpZ25vcmVCb3JkZXJRdWlja1JhbmdlKClcIlxuICAgICAgICAgIFtjbGFzcy5taW4tdy1bMjg0cHhdXT1cIiFjaG9zZW5EYXRlRnJvbVJhbmdlcygpLnNlbGVjdGVkTGFiZWwgJiYgIWlzU2luZ2xlKCkgJiYgaGFzVGltZVBpY2tlcigpXCJcbiAgICAgICAgICBbY2xhc3MuIWJvcmRlcl09XCJzaG93UmFuZ2VzUG9wdXAoKSAmJiAhaWdub3JlQm9yZGVyUXVpY2tSYW5nZSgpICYmICFyZWFkb25seSgpXCJcbiAgICAgICAgICBbY2xhc3MuIWJvcmRlci1bIzRlOGNmN11dPVwic2hvd1Jhbmdlc1BvcHVwKCkgJiYgIWlnbm9yZUJvcmRlclF1aWNrUmFuZ2UoKSAmJiAhcmVhZG9ubHkoKVwiXG4gICAgICAgICAgW2NsYXNzLmxpYnMtdWktcmVhZG9ubHldPVwicmVhZG9ubHkoKSB8fCBmYWxzZVwiXG4gICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cIndpZHRoKClcIlxuICAgICAgICAgIChjbGljayk9XCJoYW5kbGVyU2VsZWN0UmFuZ2VzKCRldmVudClcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlicy11aS1pY29uLWNhbGVuZGFyIHRleHQtWyM5Y2EyYWRdIHRleHQtWzE2cHhdXCI+PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1sLVs4cHhdXCJcbiAgICAgICAgICAgIFtjbGFzcy4hdGV4dC1bIzA3MTYzMV1dPVwiIWRpc2FibGUoKVwiXG4gICAgICAgICAgICBbY2xhc3MuIXRleHQtWyM5Y2EyYWRdXT1cImRpc2FibGUoKVwiPlxuICAgICAgICAgICAgQGlmICghY2hvc2VuRGF0ZUZyb21SYW5nZXMoKS5zZWxlY3RlZExhYmVsKSB7XG4gICAgICAgICAgICAgIEBpZiAoIWlzU2luZ2xlKCkpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtWyM5Y2EyYWRdXCI+ZGQvbW0veXl5eUBpZiAoaGFzVGltZVBpY2tlcigpKSB7PHNwYW4+Jm5ic3A7aGg6bW08L3NwYW4+fSAtIGRkL21tL3l5eXlAaWYgKGhhc1RpbWVQaWNrZXIoKSkgezxzcGFuPiZuYnNwO2hoOm1tPC9zcGFuPn08L3NwYW4+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGlmIChpc1NpbmdsZSgpKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LVsjOWNhMmFkXVwiPmRkL21tL3l5eXlAaWYgKGhhc1RpbWVQaWNrZXIoKSkgezxzcGFuPiZuYnNwO2hoOm1tPC9zcGFuPn08L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGNob3NlbkRhdGVGcm9tUmFuZ2VzKCkuc2VsZWN0ZWRMYWJlbCAmJiAhaXNTaW5nbGUoKSkge1xuICAgICAgICAgICAgICAgICAge3sgZGlzcGxheVJhbmdlVGl0bGUoKSB9fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGNob3NlbkRhdGVGcm9tUmFuZ2VzKCkuc2VsZWN0ZWRMYWJlbCAmJiBpc1NpbmdsZSgpKSB7XG4gICAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3MudGV4dC1bIzI5YzdjY11dPVwidXNlQ29sb3JNb2RlRXhpc3QoKSB8fCBmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBjaG9zZW5EYXRlRnJvbVJhbmdlcygpLnNlbGVjdGVkTGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgQGlmIChjaG9zZW5EYXRlRnJvbVJhbmdlcygpLnNlbGVjdGVkTGFiZWwgJiYgYWxsb3dSZXNldCgpICYmICFkaXNhYmxlKCkgJiYgIXJlYWRvbmx5KCkpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbC1bMTJweF0gbWwtYXV0byBoLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJsaWJzLXVpLWljb24tY2xvc2UtY2lyY2xlLXNvbGlkIHRleHQtWzE2cHhdIHRleHQtWyNjZGQwZDZdXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlclJlc2V0KCRldmVudClcIj48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoaXNOZ0NvbnRlbnQoKSkge1xuICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImhhbmRsZXJTZWxlY3RSYW5nZXMoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9saWJzX3VpLWNvbXBvbmVudHMtcG9wb3Zlcj5cbiAgPC9kaXY+XG4gIEBpZiAoc2luZ2xlRXJyb3IoKS5tZXNzYWdlICYmICF2YWxpZFJlcXVpcmVkKCk/Lmlnbm9yZU1lc3NhZ2UpIHtcbiAgICA8ZGl2IGNsYXNzPVwibXQtWzhweF0gdGV4dC1bI2VlMmQ0MV0gbGlicy11aS1mb250LWg3clwiPlxuICAgICAge3sgKHNpbmdsZUVycm9yKCkubWVzc2FnZSB8fCBFUlJPUl9NRVNTQUdFX0VNUFRZX1ZBTElEKXwgdHJhbnNsYXRlOnZhbGlkUmVxdWlyZWQoKT8uaW50ZXJwb2xhdGVQYXJhbXMgfX1cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjY3VzdG9tUmFuZ2VzUmVmPlxuICA8bGlic191aS1jb21wb25lbnRzLWRhdGV0aW1lLXBpY2tlci1jdXN0b21fcmFuZ2VzIFt6SW5kZXhdPVwiekluZGV4KClcIlxuICAgIFtjbGFzc0luY2x1ZGVdPVwiY2xhc3NJbmNsdWRlQ3VzdG9tUmFuZ2VzKClcIlxuICAgIFt3aWR0aEJ5UGFyZW50XT1cIndpZHRoQnlQYXJlbnQoKVwiXG4gICAgW2RhdGVPcHRpb25zXT1cImRhdGVPcHRpb25zKClcIlxuICAgIFtwb3NpdGlvblF1aWNrUmFuZ2VzXT1cInBvc2l0aW9uUXVpY2tSYW5nZXMoKVwiXG4gICAgW3Nob3dDdXN0b21SYW5nZUxhYmVsXT1cInNob3dDdXN0b21SYW5nZUxhYmVsKClcIlxuICAgIFthdXRvQXBwbHldPVwiYXV0b0FwcGx5KClcIlxuICAgIFtpc1NpbmdsZV09XCJpc1NpbmdsZSgpXCJcbiAgICBbc2luZ2xlRGF0ZVNlbGVjdGVkXT1cInNpbmdsZURhdGVTZWxlY3RlZCgpXCJcbiAgICBbZGF0ZVJhbmdlU2VsZWN0ZWRdPVwiZGF0ZVJhbmdlU2VsZWN0ZWQoKVwiXG4gICAgW2V4dGVuZFJhbmdlc109XCJleHRlbmRSYW5nZXMoKVwiXG4gICAgW2hhc1RpbWVQaWNrZXJdPVwiaGFzVGltZVBpY2tlcigpXCJcbiAgICAob3V0VXBkYXRlV2lkdGgpPVwiaGFuZGxlclVwZGF0ZVdpZHRoKClcIlxuICAgIChvdXRDYW5jZWwpPVwiaGFuZGxlckNhbmNlbCgpXCJcbiAgICAob3V0U2VsZWN0U2luZ2xlRGF0ZSk9XCJoYW5kbGVyUGlja2VyU2luZ2xlRGF0ZSgkZXZlbnQpXCJcbiAgICAob3V0U2VsZWN0RGF0ZVJhbmdlKT1cImhhbmRsZXJQaWNrZXJEYXRlUmFuZ2UoJGV2ZW50KVwiXG4gICAgKG91dENoYW5nU3RhZ2VGbGFnTW91c2UpPVwiaGFuZGxlckNoYW5nU3RhZ2VGbGFnTW91c2UoJGV2ZW50KVwiIC8+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9kYXRldGltZS9waWNrZXIvc3JjL3BpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvcGlja2VyL3NyYy9waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5SCxPQUFPLEVBQVUsOEJBQThCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRixPQUFPLEVBQTRDLGdDQUFnQyxFQUFzQixNQUFNLDZCQUE2QixDQUFDO0FBQzdJLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUl0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEYsT0FBTyxFQUFFLG1EQUFtRCxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFOUcsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDOzs7QUFpQjFCLE1BQU0sT0FBTyx1Q0FBdUM7SUFDbEQsZUFBZTtJQUNJLHlCQUF5QixHQUFHLHlCQUF5QixDQUFDO0lBQy9ELGVBQWUsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDekMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2hELFdBQVcsR0FBRyxNQUFNLENBQWlCLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFB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LG9DQUFvQyxjQUdsQyxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsZUFBZTt3QkFDZiw4QkFBOEI7d0JBQzlCLGdDQUFnQzt3QkFDaEMsbURBQW1EO3FCQUNwRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCwgbW9kZWwsIE9uRGVzdHJveSwgT25Jbml0LCBvdXRwdXQsIHNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJTGFiZWwsIExpYnNVaUNvbXBvbmVudHNMYWJlbENvbXBvbmVudCB9IGZyb20gXCJAbGlicy11aS9jb21wb25lbnRzLWxhYmVsXCI7XG5pbXBvcnQgeyBJRmxhZ01vdXNlLCBJUG9wb3ZlckZ1bmN0aW9uQ29udHJvbEV2ZW50LCBMaWJzVWlDb21wb25lbnRzUG9wb3ZlckNvbXBvbmVudCwgVFlQRV9QT1BPVkVSX0VWRU5UIH0gZnJvbSBcIkBsaWJzLXVpL2NvbXBvbmVudHMtcG9wb3ZlclwiO1xuaW1wb3J0IHsgRVJST1JfTUVTU0FHRV9FTVBUWV9WQUxJRCB9IGZyb20gXCJAbGlicy11aS91dGlsc1wiO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IElEYXRlVGltZVZhbGlkIH0gZnJvbSBcIi4vaW50ZXJmYWNlcy92YWxpZC5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IElDaG9zZW5EYXRlLCBMb2NhbGl6YXRpb25Db25maWcsIFRZUEVfUkFOR0VfS0VZIH0gZnJvbSBcIi4vaW50ZXJmYWNlcy9waWNrZXIuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBJRGF0ZVRpbWVQaWNrZXJGdW5jdGlvbkNvbnRyb2xFdmVudCB9IGZyb20gXCIuL2ludGVyZmFjZXMvZnVuY3Rpb24tY29udHJvbC5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IGRlZmF1bHRMb2NhbGVDb25maWcsIGdldERhdGVPcHRpb25zIH0gZnJvbSBcIi4vZGVmaW5lcy9kYXRlLW9wdGlvbnMuZGVmaW5lXCI7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVQaWNrZXJDdXN0b21SYW5nZXNDb21wb25lbnQgfSBmcm9tIFwiLi9jdXN0b20tcmFuZ2VzL2N1c3RvbS1yYW5nZXMuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBJRW1pdERhdGVSYW5nZSwgSUVtaXRTaW5nbGVEYXRlIH0gZnJvbSBcIi4vaW50ZXJmYWNlcy9jYWxlbmRhci1lbWl0LmludGVyZmFjZVwiO1xuaW1wb3J0IGRheWpzIGZyb20gXCJkYXlqc1wiO1xuaW1wb3J0IHsgSURhdGVSYW5nZSB9IGZyb20gXCIuL2ludGVyZmFjZXMvY2FsZW5kYXItdmFyaWFibGVzLmludGVyZmFjZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWJzX3VpLWNvbXBvbmVudHMtZGF0ZXRpbWUtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBMaWJzVWlDb21wb25lbnRzTGFiZWxDb21wb25lbnQsXG4gICAgTGlic1VpQ29tcG9uZW50c1BvcG92ZXJDb21wb25lbnQsXG4gICAgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lUGlja2VyQ3VzdG9tUmFuZ2VzQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKiogUFJPUEVSVFkgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IEVSUk9SX01FU1NBR0VfRU1QVFlfVkFMSUQgPSBFUlJPUl9NRVNTQUdFX0VNUFRZX1ZBTElEO1xuICBwcm90ZWN0ZWQgc2hvd1Jhbmdlc1BvcHVwID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJvdGVjdGVkIHdpZHRoID0gY29tcHV0ZWQodGhpcy5jb21wdXRlZFdpZHRoLmJpbmQodGhpcykpO1xuICBwcm90ZWN0ZWQgc2luZ2xlRXJyb3IgPSBzaWduYWw8SURhdGVUaW1lVmFsaWQ+KHsgbWVzc2FnZTogdW5kZWZpbmVkIH0pO1xuICBwcm90ZWN0ZWQgY2hvc2VuRGF0ZUZyb21SYW5nZXMgPSBzaWduYWw8SUNob3NlbkRhdGU+KHt9KTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkRGF0ZUZyb21DYWxlbmRhciE6IHsgc3RhcnQ/OiBkYXlqcy5EYXlqcywgZW5kPzogZGF5anMuRGF5anMgfTtcbiAgcHJvdGVjdGVkIGRpc3BsYXlSYW5nZVRpdGxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkTGFiZWwgPSB0aGlzLmNob3NlbkRhdGVGcm9tUmFuZ2VzKCkuc2VsZWN0ZWRMYWJlbCBhcyBUWVBFX1JBTkdFX0tFWTtcblxuICAgIGlmICh0aGlzLmlzU2luZ2xlKCkgfHwgIXNlbGVjdGVkTGFiZWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gc2VsZWN0ZWRMYWJlbDtcbiAgfSk7XG4gIHByb3RlY3RlZCBkYXRlT3B0aW9ucyA9IHNpZ25hbDxMb2NhbGl6YXRpb25Db25maWc+KHsgLi4uZGVmYXVsdExvY2FsZUNvbmZpZygpLCAuLi5nZXREYXRlT3B0aW9ucygpIH0pO1xuXG4gIHByaXZhdGUgcG9wb3ZlckZ1bmN0aW9uQ29udHJvbEV2ZW50ID0gc2lnbmFsPElQb3BvdmVyRnVuY3Rpb25Db250cm9sRXZlbnQgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgLyoqIElOUFVUICovXG4gIHJlYWRvbmx5IHNob3dDdXN0b21SYW5nZUxhYmVsID0gaW5wdXQ8Ym9vbGVhbiwgYm9vbGVhbj4odHJ1ZSwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gdHJ1ZSB9KTtcbiAgcmVhZG9ubHkgbGFiZWxDb25maWcgPSBpbnB1dDxJTGFiZWw+KCk7XG4gIHJlYWRvbmx5IGRpc2FibGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHJlYWRvbmx5ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBjbGFzc0luY2x1ZGUgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgcmVhZG9ubHkgY2xhc3NQaWNrZXJJbmNsdWRlID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIHJlYWRvbmx5IGNsYXNzUGlja2VyQ29udGVudEluY2x1ZGUgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgcmVhZG9ubHkgaWdub3JlQm9yZGVyUXVpY2tSYW5nZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgdXNlQ29sb3JNb2RlRXhpc3QgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGhhc1RpbWVQaWNrZXIgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgcmVhZG9ubHkgYWxsb3dSZXNldCA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSB3aWR0aEJ5TGFiZWwgPSBpbnB1dDxib29sZWFuLCBib29sZWFuPih0cnVlLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyB0cnVlIH0pO1xuICByZWFkb25seSBkZWZhdWx0V2lkdGggPSBpbnB1dDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGlzU2luZ2xlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBleHRlbmRSYW5nZXMgPSBpbnB1dDxBcnJheTxJRGF0ZVJhbmdlPj4oW10pO1xuXG4gIHJlYWRvbmx5IHZhbGlkUmVxdWlyZWQgPSBpbnB1dDxJRGF0ZVRpbWVWYWxpZCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaWdub3JlU3RvcFByb3BhZ2F0aW9uRXZlbnQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGZsYWdNb3VzZSA9IG1vZGVsPElGbGFnTW91c2U+KHsgaXNNb3VzZUVudGVyOiBmYWxzZSwgaXNNb3VzZUVudGVyQ29udGVudDogZmFsc2UgfSk7XG4gIHJlYWRvbmx5IHdpZHRoQnlQYXJlbnQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHpJbmRleCA9IGlucHV0PG51bWJlciwgbnVtYmVyPigxMjAwLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyAxMjAwIH0pO1xuICByZWFkb25seSByYW5nZXNQb3BvdmVyUG9zaXRpb24gPSBpbnB1dDwnc3RhcnQnIHwgJ2NlbnRlcicgfCAnZW5kJywgJ3N0YXJ0JyB8ICdjZW50ZXInIHwgJ2VuZCc+KCdzdGFydCcsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/ICdzdGFydCcgfSk7XG4gIHJlYWRvbmx5IGlzTmdDb250ZW50ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBjbGFzc0luY2x1ZGVDdXN0b21SYW5nZXMgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgcmVhZG9ubHkgYXV0b0FwcGx5ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBwb3NpdGlvblF1aWNrUmFuZ2VzID0gaW5wdXQ8J2xlZnQnIHwgJ3JpZ2h0Jz4oJ2xlZnQnKTsgLy8gduG7iyB0csOtIGxpc3QgY2jhu41uIG5oYW5oIGtob+G6o25nIHRo4budaSBnaWFuXG5cbiAgcmVhZG9ubHkgc2luZ2xlRGF0ZVNlbGVjdGVkID0gbW9kZWw8SUVtaXRTaW5nbGVEYXRlPigpO1xuICByZWFkb25seSBkYXRlUmFuZ2VTZWxlY3RlZCA9IG1vZGVsPElFbWl0RGF0ZVJhbmdlPigpO1xuXG4gIC8qKiBPVVRQVVQgKi9cbiAgcmVhZG9ubHkgb3V0Q2hhbmdTdGFnZUZsYWdNb3VzZSA9IG91dHB1dDxJRmxhZ01vdXNlPigpO1xuICByZWFkb25seSBvdXRSZXNldCA9IG91dHB1dDx1bmRlZmluZWQ+KCk7XG4gIHJlYWRvbmx5IG91dFNlbGVjdFNpbmdsZURhdGUgPSBvdXRwdXQ8SUVtaXRTaW5nbGVEYXRlPigpO1xuICByZWFkb25seSBvdXRTZWxlY3REYXRlUmFuZ2UgPSBvdXRwdXQ8SUVtaXREYXRlUmFuZ2U+KCk7XG4gIHJlYWRvbmx5IG91dEZ1bmN0aW9uc0NvbnRyb2wgPSBvdXRwdXQ8SURhdGVUaW1lUGlja2VyRnVuY3Rpb25Db250cm9sRXZlbnQ+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gdGhpcy5kYXRlT3B0aW9ucy5zZXQoZ2V0RGF0ZU9wdGlvbnMoKSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm91dEZ1bmN0aW9uc0NvbnRyb2wuZW1pdCh7IGNoZWNrSXNWYWxpZDogdGhpcy5jaGVja0lzVmFsaWQuYmluZCh0aGlzKSB9KVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJTZWxlY3RSYW5nZXMoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckNoYW5nU3RhZ2VGbGFnTW91c2UoZmxhZ01vdXNlOiBJRmxhZ01vdXNlKSB7XG4gICAgdGhpcy5mbGFnTW91c2Uuc2V0KGZsYWdNb3VzZSlcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyQ2hhbmdTdGFnZVBvcG92ZXJGbGFnTW91c2UoZmxhZ01vdXNlOiBJRmxhZ01vdXNlKSB7XG4gICAgaWYgKHRoaXMuZmxhZ01vdXNlKCk/LmlzTW91c2VFbnRlckNvbnRlbnQpIHtcbiAgICAgIGZsYWdNb3VzZS5pc01vdXNlRW50ZXJDb250ZW50ID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5vdXRDaGFuZ1N0YWdlRmxhZ01vdXNlLmVtaXQoZmxhZ01vdXNlKTtcbiAgfVxuXG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJGdW5jdGlvbkNvbnRyb2woZXZlbnQ6IElQb3BvdmVyRnVuY3Rpb25Db250cm9sRXZlbnQpIHtcbiAgICB0aGlzLnBvcG92ZXJGdW5jdGlvbkNvbnRyb2xFdmVudC5zZXQoZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJQb3BvdmVyRXZlbnQoZXZlbnQ6IFRZUEVfUE9QT1ZFUl9FVkVOVCkge1xuICAgIGlmIChldmVudCA9PT0gJ3JlbW92ZScpIHtcbiAgICAgIHRoaXMuc2hvd1Jhbmdlc1BvcHVwLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJQaWNrZXJTaW5nbGVEYXRlKGRhdGE6IElFbWl0U2luZ2xlRGF0ZSkge1xuICAgIHRoaXMub3V0U2VsZWN0U2luZ2xlRGF0ZS5lbWl0KGRhdGEpO1xuICAgIHRoaXMuY2hvc2VuRGF0ZUZyb21SYW5nZXMuc2V0KHsgc2VsZWN0ZWRMYWJlbDogZGF0YS5kaXNwbGF5TGFiZWwgfSk7XG4gICAgaWYgKHRoaXMuaGFzVGltZVBpY2tlcigpKSB7XG4gICAgICBjb25zdCBzdGFydFRpbWUgPSBkYXlqcyhkYXRhLmRhdGUpLmZvcm1hdCgnREQvTU0vWVlZWSBISDptbScpO1xuXG4gICAgICB0aGlzLmNob3NlbkRhdGVGcm9tUmFuZ2VzLnVwZGF0ZShjdXJyZW50ID0+IHtcbiAgICAgICAgY3VycmVudC5zZWxlY3RlZExhYmVsID0gYCR7c3RhcnRUaW1lfWA7XG4gICAgICAgIHJldHVybiBjdXJyZW50O1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuc2luZ2xlRGF0ZVNlbGVjdGVkLnNldChkYXRhKTtcbiAgICB0aGlzLnBvcG92ZXJGdW5jdGlvbkNvbnRyb2xFdmVudCgpPy5yZW1vdmVQb3BvdmVyT3ZlcmxheSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJQaWNrZXJEYXRlUmFuZ2UoZGF0YTogSUVtaXREYXRlUmFuZ2UpIHtcbiAgICBjb25zb2xlLmxvZyhkYXRhKTtcblxuICAgIGlmICgoZGF0YS5kaXNwbGF5TGFiZWw/LmluZGV4T2YoJ0ludmFsaWQgRGF0ZScpID8/IC0xKSA+IC0xKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIHRoaXMuc2VsZWN0ZWRLZXkgPSBkYXRhLnNlbGVjdGVkTGFiZWw7XG4gICAgdGhpcy5jaG9zZW5EYXRlRnJvbVJhbmdlcy5zZXQoeyBzZWxlY3RlZExhYmVsOiBkYXRhLmRpc3BsYXlMYWJlbCB9KTtcblxuICAgIC8vIHRoaXMuc2VsZWN0ZWQuc3RhcnQgPSBkYXlqcyhkYXRhLnN0YXJ0RGF0ZSk7XG4gICAgLy8gdGhpcy5zZWxlY3RlZC5lbmQgPSBkYXlqcyhkYXRhLmVuZERhdGUpO1xuICAgIGlmICh0aGlzLmhhc1RpbWVQaWNrZXIoKSkge1xuICAgICAgY29uc3Qgc3RhcnRUaW1lID0gZGF5anMoZGF0YS5zdGFydERhdGUpLmZvcm1hdCgnREQvTU0vWVlZWSBISDptbScpO1xuICAgICAgY29uc3QgZW5kVGltZSA9IGRheWpzKGRhdGEuZW5kRGF0ZSkuZm9ybWF0KCdERC9NTS9ZWVlZIEhIOm1tJyk7XG5cbiAgICAgIHRoaXMuY2hvc2VuRGF0ZUZyb21SYW5nZXMudXBkYXRlKGN1cnJlbnQgPT4ge1xuICAgICAgICBjdXJyZW50LnNlbGVjdGVkTGFiZWwgPSBgJHtzdGFydFRpbWV9IC0gJHtlbmRUaW1lfWA7XG4gICAgICAgIHJldHVybiBjdXJyZW50O1xuICAgICAgfSk7XG4gICAgfVxuICAgIC8vIHRoaXMubW9EYXRlUGlja2VyLmVtaXQodGhpcy5zaW5nbGVEYXRlUGlja2VyID8geyBjaG9zZW5MYWJlbDogdGhpcy5kYXRlVmFsdWUuY2hvc2VuTGFiZWwsIHNpbmdsZURhdGU6IHRoaXMuZGF0ZVZhbHVlLnN0YXJ0RGF0ZT8udXRjKCksIHN0YXJ0RGF0ZTogdGhpcy5kYXRlVmFsdWUuc3RhcnREYXRlPy51dGMoKSwgZW5kRGF0ZTogdGhpcy5kYXRlVmFsdWUuZW5kRGF0ZT8udXRjKCkgfSA6IHsgY2hvc2VuTGFiZWw6IHRoaXMuZGF0ZVZhbHVlLmNob3NlbkxhYmVsLCBzdGFydERhdGU6IHRoaXMuZGF0ZVZhbHVlLnN0YXJ0RGF0ZT8udXRjKCksIGVuZERhdGU6IHRoaXMuZGF0ZVZhbHVlLmVuZERhdGU/LnV0YygpIH0pO1xuICAgIGNvbnN0IHNob3dWaWV3RXh0ZXJuYWxSYW5nZUxhYmVsID0gdGhpcy5leHRlbmRSYW5nZXMoKT8uZmluZChpdGVtID0+IGl0ZW0uaWQgPT09IHRoaXMuY2hvc2VuRGF0ZUZyb21SYW5nZXMoKS5zZWxlY3RlZExhYmVsKTtcblxuICAgIGlmICh0aGlzLmV4dGVuZFJhbmdlcygpICYmIHNob3dWaWV3RXh0ZXJuYWxSYW5nZUxhYmVsKSB7XG4gICAgICB0aGlzLmNob3NlbkRhdGVGcm9tUmFuZ2VzLnVwZGF0ZShjdXJyZW50ID0+IHtcbiAgICAgICAgY3VycmVudC5zZWxlY3RlZExhYmVsID0gc2hvd1ZpZXdFeHRlcm5hbFJhbmdlTGFiZWwgJiYgc2hvd1ZpZXdFeHRlcm5hbFJhbmdlTGFiZWwubGFiZWw7XG4gICAgICAgIHJldHVybiBjdXJyZW50O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5kYXRlUmFuZ2VTZWxlY3RlZC5zZXQoeyBxdWlja1JhbmdlSWQ6IGRhdGEucXVpY2tSYW5nZUlkLCBzdGFydERhdGU6IGRhdGEuc3RhcnREYXRlLCBlbmREYXRlOiBkYXRhLmVuZERhdGUgfSk7XG4gICAgdGhpcy5vdXRTZWxlY3REYXRlUmFuZ2UuZW1pdCh7IHF1aWNrUmFuZ2VJZDogZGF0YS5xdWlja1JhbmdlSWQsIHN0YXJ0RGF0ZTogZGF0YS5zdGFydERhdGUsIGVuZERhdGU6IGRhdGEuZW5kRGF0ZSB9KTtcbiAgICB0aGlzLnBvcG92ZXJGdW5jdGlvbkNvbnRyb2xFdmVudCgpPy5yZW1vdmVQb3BvdmVyT3ZlcmxheSgpO1xuICAgIHRoaXMuY2hlY2tJc1ZhbGlkKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlclJlc2V0KGV2ZW50PzogRXZlbnQpIHtcbiAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5jaG9zZW5EYXRlRnJvbVJhbmdlcy5zZXQoe30pO1xuICAgIC8vIHRoaXMuc2VsZWN0ZWQgPSB7IHN0YXJ0OiBkYXlqcygpLmhvdXIoMCkubWludXRlKDApLnNlY29uZCgwKSwgZW5kOiBkYXlqcygpLmhvdXIoMjMpLm1pbnV0ZSg1OSkuc2Vjb25kKDU5KSB9O1xuICAgIHRoaXMub3V0UmVzZXQuZW1pdCh1bmRlZmluZWQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJVcGRhdGVXaWR0aCgpIHtcbiAgICB0aGlzLnBvcG92ZXJGdW5jdGlvbkNvbnRyb2xFdmVudCgpPy51cGRhdGVQb3BvdmVyT3ZlcmxheVBvc2l0aW9uKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckNhbmNlbCgpIHtcbiAgICB0aGlzLnBvcG92ZXJGdW5jdGlvbkNvbnRyb2xFdmVudCgpPy5yZW1vdmVQb3BvdmVyT3ZlcmxheSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjaGVja0lzVmFsaWQoKSB7XG4gICAgaWYgKHRoaXMucmVhZG9ubHkoKSB8fCB0aGlzLmRpc2FibGUoKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMudmFsaWRhdGUoKTtcblxuICAgIHJldHVybiB0aGlzLnNpbmdsZUVycm9yKCkubWVzc2FnZSA/IHRydWUgOiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdmFsaWRhdGUoKSB7XG4gICAgdGhpcy5zaW5nbGVFcnJvci5zZXQoeyBtZXNzYWdlOiB1bmRlZmluZWQgfSk7XG5cbiAgICBpZiAoIXRoaXMudmFsaWRSZXF1aXJlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudmFsaWRSZXF1aXJlZCgpICYmICF0aGlzLmNob3NlbkRhdGVGcm9tUmFuZ2VzKCkuc2VsZWN0ZWRMYWJlbCkge1xuICAgICAgdGhpcy5zaW5nbGVFcnJvci5zZXQoe1xuICAgICAgICBtZXNzYWdlOiB0aGlzLnZhbGlkUmVxdWlyZWQoKT8ubWVzc2FnZSB8fCBFUlJPUl9NRVNTQUdFX0VNUFRZX1ZBTElELFxuICAgICAgICBpbnRlcnBvbGF0ZVBhcmFtczogdGhpcy52YWxpZFJlcXVpcmVkKCk/LmludGVycG9sYXRlUGFyYW1zIHx8IHt9XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29tcHV0ZWRXaWR0aCgpIHtcbiAgICBpZiAodGhpcy53aWR0aEJ5TGFiZWwoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRlZmF1bHRXaWR0aCgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZWZhdWx0V2lkdGgoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oYXNUaW1lUGlja2VyKCkpIHtcbiAgICAgIHJldHVybiAhdGhpcy5pc1NpbmdsZSgpID8gMzIyIDogMTkwO1xuICAgIH1cbiAgICByZXR1cm4gIXRoaXMuaXNTaW5nbGUoKSA/IDIzMiA6IDE1MjtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGNvbnNvbGUubG9nKCduZ09uRGVzdHJveScpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwie3sgY2xhc3NJbmNsdWRlKCkgfX1cIj5cbiAgQGlmIChsYWJlbENvbmZpZygpOyBhcyBsYWJlbENvbmZpZykge1xuICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtbGFiZWwgW2NsYXNzSW5jbHVkZV09XCJsYWJlbENvbmZpZy5jbGFzc0luY2x1ZGVcIlxuICAgICAgW2xhYmVsTGVmdF09XCJsYWJlbENvbmZpZy5sYWJlbExlZnRcIlxuICAgICAgW2xhYmVsTGVmdENsYXNzXT1cImxhYmVsQ29uZmlnLmxhYmVsTGVmdENsYXNzXCJcbiAgICAgIFtyZXF1aXJlZF09XCJsYWJlbENvbmZpZy5yZXF1aXJlZCBcIlxuICAgICAgW2Rlc2NyaXB0aW9uXT1cImxhYmVsQ29uZmlnLmRlc2NyaXB0aW9uXCJcbiAgICAgIFtkZXNjcmlwdGlvbkNsYXNzXT1cImxhYmVsQ29uZmlnLmRlc2NyaXB0aW9uQ2xhc3NcIlxuICAgICAgW2xhYmVsUmlnaHRdPVwibGFiZWxDb25maWcubGFiZWxSaWdodFwiXG4gICAgICBbbGFiZWxSaWdodENsYXNzXT1cImxhYmVsQ29uZmlnLmxhYmVsUmlnaHRDbGFzc1wiXG4gICAgICBbb25seVNob3dDb3VudF09XCJsYWJlbENvbmZpZy5vbmx5U2hvd0NvdW50XCJcbiAgICAgIFtidXR0b25zTGVmdF09XCJsYWJlbENvbmZpZy5idXR0b25zTGVmdFwiXG4gICAgICBbYnV0dG9uc1JpZ2h0XT1cImxhYmVsQ29uZmlnLmJ1dHRvbnNSaWdodFwiXG4gICAgICBbZGlzYWJsZUJ1dHRvbnNMZWZ0XT1cImxhYmVsQ29uZmlnLmRpc2FibGVCdXR0b25zTGVmdCB8fCBkaXNhYmxlKClcIlxuICAgICAgW2Rpc2FibGVCdXR0b25zUmlnaHRdPVwibGFiZWxDb25maWcuZGlzYWJsZUJ1dHRvbnNSaWdodCB8fCBkaXNhYmxlKClcIlxuICAgICAgW2hhc1RvZ2dsZV09XCJsYWJlbENvbmZpZy5oYXNUb2dnbGVcIlxuICAgICAgW3RvZ2dsZUFjdGl2ZV09XCJsYWJlbENvbmZpZy50b2dnbGVBY3RpdmVcIlxuICAgICAgW3RvZ2dsZURpc2FibGVdPVwibGFiZWxDb25maWcudG9nZ2xlRGlzYWJsZSB8fCBkaXNhYmxlKClcIlxuICAgICAgW3BvcG92ZXJdPVwibGFiZWxDb25maWcucG9wb3ZlclwiXG4gICAgICBbaWNvblBvcG92ZXJDbGFzc109XCJsYWJlbENvbmZpZy5pY29uUG9wb3ZlckNsYXNzXCJcbiAgICAgIFtvbmx5U2hvd0NvdW50XT1cImxhYmVsQ29uZmlnLm9ubHlTaG93Q291bnRcIlxuICAgICAgW2xpbWl0TGVuZ3RoXT1cImxhYmVsQ29uZmlnLmxpbWl0TGVuZ3RoXCJcbiAgICAgIFtidXR0b25zRGVzY3JpcHRpb25dPVwibGFiZWxDb25maWcuYnV0dG9uc0Rlc2NyaXB0aW9uXCJcbiAgICAgIFtkaXNhYmxlQnV0dG9uc0Rlc2NyaXB0aW9uXT1cImxhYmVsQ29uZmlnLmRpc2FibGVCdXR0b25zRGVzY3JpcHRpb24gfHwgZGlzYWJsZSgpXCJcbiAgICAgIFtidXR0b25zRGVzY3JpcHRpb25Db250YWluZXJDbGFzc109XCJsYWJlbENvbmZpZy5idXR0b25zRGVzY3JpcHRpb25Db250YWluZXJDbGFzc1wiXG4gICAgICBbY291bnRdPVwibGFiZWxDb25maWcuY291bnRcIiAvPlxuICB9XG4gIDxkaXYgY2xhc3M9XCJmbGV4IHctZnVsbFwiPlxuICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtcG9wb3ZlciBbY2xhc3NJbmNsdWRlXT1cImNsYXNzUGlja2VySW5jbHVkZSgpXCJcbiAgICAgIFtpZ25vcmVTaG93UG9wb3Zlcl09XCJkaXNhYmxlKCkgfHwgcmVhZG9ubHkoKVwiXG4gICAgICBbbW9kZV09XCInY2xpY2snXCJcbiAgICAgIFtpZ25vcmVIaWRkZW5Qb3BvdmVyQ29udGVudFdoZW5Nb3VzZUxlYXZlXT1cInRydWVcIlxuICAgICAgW2lnbm9yZVN0b3BQcm9wYWdhdGlvbkV2ZW50XT1cImlnbm9yZVN0b3BQcm9wYWdhdGlvbkV2ZW50KClcIlxuICAgICAgW2ZsYWdNb3VzZV09XCJmbGFnTW91c2UoKVwiXG4gICAgICBbY29uZmlnXT1cIntcbiAgICAgICAgYW5pbWF0aW9uQ29uZmlnOnt9LFxuICAgICAgICBtYXhXaWR0aDogNzcwLFxuICAgICAgICBtYXhIZWlnaHQ6IDQyMCxcbiAgICAgICAgZGlyZWN0aW9uRGlzdGFuY2U6MixcbiAgICAgICAgdGVtcGxhdGU6IGN1c3RvbVJhbmdlc1JlZixcbiAgICAgICAgd2lkdGhCeVBhcmVudDogd2lkdGhCeVBhcmVudCgpLFxuICAgICAgICB3aGl0ZVRoZW1lOiB0cnVlLFxuICAgICAgICBpZ25vcmVBcnJvdzogdHJ1ZSxcbiAgICAgICAgekluZGV4OiB6SW5kZXgoKSxcbiAgICAgICAgY2xhc3NJbmNsdWRlOiAncm91bmRlZC1bNHB4XSAnLFxuICAgICAgICBwb3NpdGlvbjoge21vZGU6IHJhbmdlc1BvcG92ZXJQb3NpdGlvbigpLGRpc3RhbmNlOiAwfX1cIlxuICAgICAgKG91dENoYW5nU3RhZ2VGbGFnTW91c2UpPVwiaGFuZGxlckNoYW5nU3RhZ2VQb3BvdmVyRmxhZ01vdXNlKCRldmVudClcIlxuICAgICAgKG91dEZ1bmN0aW9uc0NvbnRyb2wpPVwiaGFuZGxlckZ1bmN0aW9uQ29udHJvbCgkZXZlbnQpXCJcbiAgICAgIChvdXRFdmVudCk9XCJoYW5kbGVyUG9wb3ZlckV2ZW50KCRldmVudClcIj5cbiAgICAgIEBpZiAoIWlzTmdDb250ZW50KCkpIHtcbiAgICAgICAgPGRpdiAjY29udGFpbmVyUmVmXG4gICAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBweC1bMTJweF0gaC1bMzJweF0gcm91bmRlZC1bNHB4XSBiZy1bI2ZmZmZmZl0gY3Vyc29yLXBvaW50ZXIgbGlicy11aS1mb250LWg1ciB7eyBjbGFzc1BpY2tlckNvbnRlbnRJbmNsdWRlKCkgfX1cIlxuICAgICAgICAgIFtjbGFzcy5saWJzLXVpLWRpc2FibGVdPVwiZGlzYWJsZSgpXCJcbiAgICAgICAgICBbY2xhc3MuIWJvcmRlci1ub25lXT1cImlnbm9yZUJvcmRlclF1aWNrUmFuZ2UoKVwiXG4gICAgICAgICAgW2NsYXNzLmxpYnMtdWktYm9yZGVyLWdlbmVyYWxdPVwiIXNpbmdsZUVycm9yKCkubWVzc2FnZSAmJiAhaWdub3JlQm9yZGVyUXVpY2tSYW5nZSgpXCJcbiAgICAgICAgICBbY2xhc3MubGlicy11aS1ib3JkZXItZXJyb3ItZ2VuZXJhbF09XCJzaW5nbGVFcnJvcigpLm1lc3NhZ2UgJiYgIWlnbm9yZUJvcmRlclF1aWNrUmFuZ2UoKVwiXG4gICAgICAgICAgW2NsYXNzLm1pbi13LVsyODRweF1dPVwiIWNob3NlbkRhdGVGcm9tUmFuZ2VzKCkuc2VsZWN0ZWRMYWJlbCAmJiAhaXNTaW5nbGUoKSAmJiBoYXNUaW1lUGlja2VyKClcIlxuICAgICAgICAgIFtjbGFzcy4hYm9yZGVyXT1cInNob3dSYW5nZXNQb3B1cCgpICYmICFpZ25vcmVCb3JkZXJRdWlja1JhbmdlKCkgJiYgIXJlYWRvbmx5KClcIlxuICAgICAgICAgIFtjbGFzcy4hYm9yZGVyLVsjNGU4Y2Y3XV09XCJzaG93UmFuZ2VzUG9wdXAoKSAmJiAhaWdub3JlQm9yZGVyUXVpY2tSYW5nZSgpICYmICFyZWFkb25seSgpXCJcbiAgICAgICAgICBbY2xhc3MubGlicy11aS1yZWFkb25seV09XCJyZWFkb25seSgpIHx8IGZhbHNlXCJcbiAgICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwid2lkdGgoKVwiXG4gICAgICAgICAgKGNsaWNrKT1cImhhbmRsZXJTZWxlY3RSYW5nZXMoJGV2ZW50KVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaWJzLXVpLWljb24tY2FsZW5kYXIgdGV4dC1bIzljYTJhZF0gdGV4dC1bMTZweF1cIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWwtWzhweF1cIlxuICAgICAgICAgICAgW2NsYXNzLiF0ZXh0LVsjMDcxNjMxXV09XCIhZGlzYWJsZSgpXCJcbiAgICAgICAgICAgIFtjbGFzcy4hdGV4dC1bIzljYTJhZF1dPVwiZGlzYWJsZSgpXCI+XG4gICAgICAgICAgICBAaWYgKCFjaG9zZW5EYXRlRnJvbVJhbmdlcygpLnNlbGVjdGVkTGFiZWwpIHtcbiAgICAgICAgICAgICAgQGlmICghaXNTaW5nbGUoKSkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1bIzljYTJhZF1cIj5kZC9tbS95eXl5QGlmIChoYXNUaW1lUGlja2VyKCkpIHs8c3Bhbj4mbmJzcDtoaDptbTwvc3Bhbj59IC0gZGQvbW0veXl5eUBpZiAoaGFzVGltZVBpY2tlcigpKSB7PHNwYW4+Jm5ic3A7aGg6bW08L3NwYW4+fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBAaWYgKGlzU2luZ2xlKCkpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtWyM5Y2EyYWRdXCI+ZGQvbW0veXl5eUBpZiAoaGFzVGltZVBpY2tlcigpKSB7PHNwYW4+Jm5ic3A7aGg6bW08L3NwYW4+fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoY2hvc2VuRGF0ZUZyb21SYW5nZXMoKS5zZWxlY3RlZExhYmVsICYmICFpc1NpbmdsZSgpKSB7XG4gICAgICAgICAgICAgICAgICB7eyBkaXNwbGF5UmFuZ2VUaXRsZSgpIH19XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoY2hvc2VuRGF0ZUZyb21SYW5nZXMoKS5zZWxlY3RlZExhYmVsICYmIGlzU2luZ2xlKCkpIHtcbiAgICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzcy50ZXh0LVsjMjljN2NjXV09XCJ1c2VDb2xvck1vZGVFeGlzdCgpIHx8IGZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGNob3NlbkRhdGVGcm9tUmFuZ2VzKCkuc2VsZWN0ZWRMYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBAaWYgKGNob3NlbkRhdGVGcm9tUmFuZ2VzKCkuc2VsZWN0ZWRMYWJlbCAmJiBhbGxvd1Jlc2V0KCkgJiYgIWRpc2FibGUoKSAmJiAhcmVhZG9ubHkoKSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBsLVsxMnB4XSBtbC1hdXRvIGgtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImxpYnMtdWktaWNvbi1jbG9zZS1jaXJjbGUtc29saWQgdGV4dC1bMTZweF0gdGV4dC1bI2NkZDBkNl1cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVyUmVzZXQoJGV2ZW50KVwiPjwvaT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChpc05nQ29udGVudCgpKSB7XG4gICAgICAgICAgPGRpdiAoY2xpY2spPVwiaGFuZGxlclNlbGVjdFJhbmdlcygkZXZlbnQpXCI+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICA8L2xpYnNfdWktY29tcG9uZW50cy1wb3BvdmVyPlxuICA8L2Rpdj5cbiAgQGlmIChzaW5nbGVFcnJvcigpLm1lc3NhZ2UgJiYgIXZhbGlkUmVxdWlyZWQoKT8uaWdub3JlTWVzc2FnZSkge1xuICAgIDxkaXYgY2xhc3M9XCJtdC1bOHB4XSB0ZXh0LVsjZWUyZDQxXSBsaWJzLXVpLWZvbnQtaDdyXCI+XG4gICAgICB7eyAoc2luZ2xlRXJyb3IoKS5tZXNzYWdlIHx8IEVSUk9SX01FU1NBR0VfRU1QVFlfVkFMSUQpfCB0cmFuc2xhdGU6dmFsaWRSZXF1aXJlZCgpPy5pbnRlcnBvbGF0ZVBhcmFtcyB9fVxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNjdXN0b21SYW5nZXNSZWY+XG4gIDxsaWJzX3VpLWNvbXBvbmVudHMtZGF0ZXRpbWUtcGlja2VyLWN1c3RvbV9yYW5nZXMgW3pJbmRleF09XCJ6SW5kZXgoKVwiXG4gICAgW2NsYXNzSW5jbHVkZV09XCJjbGFzc0luY2x1ZGVDdXN0b21SYW5nZXMoKVwiXG4gICAgW3dpZHRoQnlQYXJlbnRdPVwid2lkdGhCeVBhcmVudCgpXCJcbiAgICBbZGF0ZU9wdGlvbnNdPVwiZGF0ZU9wdGlvbnMoKVwiXG4gICAgW3Bvc2l0aW9uUXVpY2tSYW5nZXNdPVwicG9zaXRpb25RdWlja1JhbmdlcygpXCJcbiAgICBbc2hvd0N1c3RvbVJhbmdlTGFiZWxdPVwic2hvd0N1c3RvbVJhbmdlTGFiZWwoKVwiXG4gICAgW2F1dG9BcHBseV09XCJhdXRvQXBwbHkoKVwiXG4gICAgW2lzU2luZ2xlXT1cImlzU2luZ2xlKClcIlxuICAgIFtzaW5nbGVEYXRlU2VsZWN0ZWRdPVwic2luZ2xlRGF0ZVNlbGVjdGVkKClcIlxuICAgIFtkYXRlUmFuZ2VTZWxlY3RlZF09XCJkYXRlUmFuZ2VTZWxlY3RlZCgpXCJcbiAgICBbZXh0ZW5kUmFuZ2VzXT1cImV4dGVuZFJhbmdlcygpXCJcbiAgICBbaGFzVGltZVBpY2tlcl09XCJoYXNUaW1lUGlja2VyKClcIlxuICAgIChvdXRVcGRhdGVXaWR0aCk9XCJoYW5kbGVyVXBkYXRlV2lkdGgoKVwiXG4gICAgKG91dENhbmNlbCk9XCJoYW5kbGVyQ2FuY2VsKClcIlxuICAgIChvdXRTZWxlY3RTaW5nbGVEYXRlKT1cImhhbmRsZXJQaWNrZXJTaW5nbGVEYXRlKCRldmVudClcIlxuICAgIChvdXRTZWxlY3REYXRlUmFuZ2UpPVwiaGFuZGxlclBpY2tlckRhdGVSYW5nZSgkZXZlbnQpXCJcbiAgICAob3V0Q2hhbmdTdGFnZUZsYWdNb3VzZSk9XCJoYW5kbGVyQ2hhbmdTdGFnZUZsYWdNb3VzZSgkZXZlbnQpXCIgLz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|