vc-create-dashboard 2.8.26 → 2.8.28
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/esm2020/lib/create-dashboard-container/categories/categories.component.mjs +3 -3
- package/esm2020/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.mjs +3 -3
- package/esm2020/lib/create-dashboard-container/create-dashboard.component.mjs +246 -125
- package/esm2020/lib/create-dashboard-container/form-group/form-group.component.mjs +14 -10
- package/esm2020/lib/create-dashboard-container/frequency/frequency.component.mjs +8 -3
- package/esm2020/lib/create-dashboard-container/responsibility-center/responsibility-center.component.mjs +3 -3
- package/esm2020/lib/create-dashboard-container/risk-categories/risk-categories.component.mjs +3 -3
- package/esm2020/lib/create-dashboard-container/user-list/user-list.component.mjs +3 -3
- package/esm2020/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.mjs +7 -3
- package/esm2020/lib/ui-kit/dashboard-footer/dashboard-footer.module.mjs +8 -4
- package/esm2020/lib/ui-kit/floating-bar/floating-bar.component.mjs +4 -3
- package/esm2020/lib/ui-kit/floating-bar/floating-bar.module.mjs +7 -3
- package/esm2020/lib/ui-kit/pagination/pagination.component.mjs +3 -3
- package/fesm2015/create-dashboard.mjs +283 -150
- package/fesm2015/create-dashboard.mjs.map +1 -1
- package/fesm2020/create-dashboard.mjs +293 -154
- package/fesm2020/create-dashboard.mjs.map +1 -1
- package/lib/create-dashboard-container/create-dashboard.component.d.ts +25 -25
- package/lib/create-dashboard-container/form-group/form-group.component.d.ts +1 -1
- package/lib/create-dashboard-container/frequency/frequency.component.d.ts +1 -0
- package/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.d.ts +2 -1
- package/lib/ui-kit/dashboard-footer/dashboard-footer.module.d.ts +2 -1
- package/lib/ui-kit/floating-bar/floating-bar.module.d.ts +2 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "../../ui-kit/dialog/dialog.service";
|
|
4
4
|
import * as i2 from "@angular/common";
|
|
@@ -23,15 +23,14 @@ export class FormGroupComponent {
|
|
|
23
23
|
this.dashboardDescription = {
|
|
24
24
|
placeholder: 'Description (Max limit: 250 characters)',
|
|
25
25
|
mode: 'prime',
|
|
26
|
-
id: 'description'
|
|
26
|
+
id: 'description',
|
|
27
27
|
};
|
|
28
28
|
this.fromDatePickerConfig = {
|
|
29
|
-
min: this.getCurrentDate()
|
|
29
|
+
min: this.getCurrentDate(),
|
|
30
30
|
};
|
|
31
31
|
this.toDatePickerConfig = {};
|
|
32
32
|
}
|
|
33
|
-
ngOnInit() {
|
|
34
|
-
}
|
|
33
|
+
ngOnInit() { }
|
|
35
34
|
openFromDatePicker() {
|
|
36
35
|
this.fromDatePicker.api.open();
|
|
37
36
|
this.datePickerOverlay = true;
|
|
@@ -84,7 +83,9 @@ export class FormGroupComponent {
|
|
|
84
83
|
let allFieldsValid = true;
|
|
85
84
|
this.dashboardNameError = '';
|
|
86
85
|
this.dashboardDescriptionError = '';
|
|
87
|
-
if (this.dashboardName === null ||
|
|
86
|
+
if (this.dashboardName === null ||
|
|
87
|
+
this.dashboardName === undefined ||
|
|
88
|
+
this.dashboardName === '') {
|
|
88
89
|
this.dashboardNameError = this.fieldEmptyErrorMessage;
|
|
89
90
|
allFieldsValid = false;
|
|
90
91
|
}
|
|
@@ -92,19 +93,22 @@ export class FormGroupComponent {
|
|
|
92
93
|
this.dashboardNameError = this.fieldLimitExceededErrorMessage.replace('XYZ', '30');
|
|
93
94
|
allFieldsValid = false;
|
|
94
95
|
}
|
|
95
|
-
else if (this.dashboardDescriptionText === null ||
|
|
96
|
+
else if (this.dashboardDescriptionText === null ||
|
|
97
|
+
this.dashboardDescriptionText === undefined ||
|
|
98
|
+
this.dashboardDescriptionText === '') {
|
|
96
99
|
this.dashboardDescriptionError = this.fieldEmptyErrorMessage;
|
|
97
100
|
allFieldsValid = false;
|
|
98
101
|
}
|
|
99
102
|
else if (this.dashboardDescriptionText.length > 250) {
|
|
100
|
-
this.dashboardDescriptionError =
|
|
103
|
+
this.dashboardDescriptionError =
|
|
104
|
+
this.fieldLimitExceededErrorMessage.replace('XYZ', '250');
|
|
101
105
|
allFieldsValid = false;
|
|
102
106
|
}
|
|
103
107
|
return allFieldsValid;
|
|
104
108
|
}
|
|
105
109
|
getCurrentDate() {
|
|
106
110
|
let today = new Date();
|
|
107
|
-
return today.getDate() + '-' + (today.getMonth() + 1) + '-' + today.getFullYear();
|
|
111
|
+
return (today.getDate() + '-' + (today.getMonth() + 1) + '-' + today.getFullYear());
|
|
108
112
|
}
|
|
109
113
|
displayCriteriaSelected(event, selection) {
|
|
110
114
|
this.displayCriteria = selection;
|
|
@@ -134,4 +138,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
134
138
|
type: ViewChild,
|
|
135
139
|
args: ['toDatePicker']
|
|
136
140
|
}] } });
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvY3JlYXRlLWRhc2hib2FyZC1jb250YWluZXIvZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7OztBQUkxRixxSEFBcUg7QUFPckgsTUFBTSxPQUFPLGtCQUFrQjtJQXNCN0IsWUFBb0IsTUFBcUI7UUFBckIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQXJCL0IscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM5QyxpQ0FBNEIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzFELHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDaEQseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNsRCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFLckQsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBSzFCLDJCQUFzQixHQUFXLG1DQUFtQyxDQUFDO1FBQ3JFLG1DQUE4QixHQUFXLGtFQUFrRSxDQUFDO1FBQzVHLHVDQUFrQyxHQUFXLHdGQUF3RixDQUFDO1FBT3RJLHlCQUFvQixHQUFpQjtZQUNuQyxXQUFXLEVBQUUseUNBQXlDO1lBQ3RELElBQUksRUFBRSxPQUFPO1lBQ2IsRUFBRSxFQUFFLGFBQWE7U0FDbEIsQ0FB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Q0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0UsUUFBUTtzQkFBaEIsS0FBSztnQkFFdUIsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBQ0EsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQsIElEYXRlUGlja2VyQ29uZmlnIH0gZnJvbSAnbmcyLWRhdGUtcGlja2VyJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uL3VpLWtpdC9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFZGl0b3JDb25maWcgfSBmcm9tICd2Y29tcGx5LWVkaXRvcic7XHJcbi8vIGltcG9ydCB7IENvbmZpZ3VyZVdpZGdldHNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb25maWd1cmUtd2lkZ2V0cy9jb25maWd1cmUtd2lkZ2V0cy9jb25maWd1cmUtd2lkZ2V0cy5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZm9ybS1ncm91cCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZ3JvdXAuY29tcG9uZW50Lmxlc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAT3V0cHV0KCkgb3BlbkNhdGVnb3J5TGlzdCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBvcGVuUmVzcG9uc2liaWxpdHlDZW50ZXJMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIG9wZW5XaG9DYW5WaWV3VGhpcyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBjbG9zZUNyZWF0ZURhc2hib2FyZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBvcGVuRnJlcXVlbmN5ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQhOiBib29sZWFuO1xyXG5cclxuICBAVmlld0NoaWxkKCdmcm9tRGF0ZVBpY2tlcicpIGZyb21EYXRlUGlja2VyITogRGF0ZVBpY2tlckNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCd0b0RhdGVQaWNrZXInKSB0b0RhdGVQaWNrZXIhOiBEYXRlUGlja2VyQ29tcG9uZW50O1xyXG4gIGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWRGcm9tRGF0ZSE6IGFueTtcclxuICBzZWxlY3RlZFRvRGF0ZSE6IGFueTtcclxuICBkYXNoYm9hcmROYW1lITogYW55O1xyXG4gIGRhc2hib2FyZERlc2NyaXB0aW9uVGV4dCE6IGFueTtcclxuICBmaWVsZEVtcHR5RXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnRW50ZXIgYSB2YWx1ZSBmb3IgdGhpcyBpbnB1dCBib3guJztcclxuICBmaWVsZExpbWl0RXhjZWVkZWRFcnJvck1lc3NhZ2U6IHN0cmluZyA9ICdZb3UgaGF2ZSBleGNlZWRlZCB0aGUgbWF4aW11bSBjaGFyYWN0ZXIgbGltaXQgb2YgWFlaIGNoYXJhY3RlcnMuJztcclxuICBkYXNoYm9hcmROYW1lTm90VW5pcXVlRXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnQSBkYXNoYm9hcmQgd2l0aCB0aGlzIG5hbWUgYWxyZWFkeSBleGlzdHMuIFNwZWNpZnkgYSBkaWZmZXJlbnQgbmFtZSBmb3IgdGhlIGRhc2hib2FyZC4nO1xyXG4gIGRhc2hib2FyZE5hbWVFcnJvciEgOiBzdHJpbmc7XHJcbiAgZGFzaGJvYXJkRGVzY3JpcHRpb25FcnJvciEgOiBzdHJpbmc7XHJcbiAgZGlzcGxheUNyaXRlcmlhISA6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWFsb2c6IERpYWxvZ1NlcnZpY2UpIHsgfVxyXG4gXHJcbiAgZGFzaGJvYXJkRGVzY3JpcHRpb246IEVkaXRvckNvbmZpZyA9IHtcclxuICAgIHBsYWNlaG9sZGVyOiAnRGVzY3JpcHRpb24gKE1heCBsaW1pdDogMjUwIGNoYXJhY3RlcnMpJyxcclxuICAgIG1vZGU6ICdwcmltZScsXHJcbiAgICBpZDogJ2Rlc2NyaXB0aW9uJ1xyXG4gIH1cclxuXHJcbiAgZnJvbURhdGVQaWNrZXJDb25maWcgOiBJRGF0ZVBpY2tlckNvbmZpZyA9ICB7XHJcbiAgICBtaW46IHRoaXMuZ2V0Q3VycmVudERhdGUoKVxyXG4gIH1cclxuXHJcbiAgdG9EYXRlUGlja2VyQ29uZmlnIDogSURhdGVQaWNrZXJDb25maWcgPSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIG9wZW5Gcm9tRGF0ZVBpY2tlcigpIHtcclxuICAgIHRoaXMuZnJvbURhdGVQaWNrZXIuYXBpLm9wZW4oKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgb3BlblRvRGF0ZVBpY2tlcigpIHtcclxuICAgIHRoaXMudG9EYXRlUGlja2VyLmFwaS5vcGVuKCk7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXJPdmVybGF5ID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNsb3NlRnJvbURhdGVQaWNrZXIoKSB7XHJcbiAgICBsZXQgbWluVG9EYXRlID0gdGhpcy5zZWxlY3RlZEZyb21EYXRlLmNsb25lKCkuYWRkKDEsICdkYXlzJyk7XHJcbiAgICB0aGlzLnRvRGF0ZVBpY2tlckNvbmZpZyA9IHttaW4gOiBtaW5Ub0RhdGUsIG1pblRpbWUgOiBtaW5Ub0RhdGV9O1xyXG5cclxuICAgIGlmKHRoaXMuc2VsZWN0ZWRUb0RhdGUgJiYgbWluVG9EYXRlLmRpZmYodGhpcy5zZWxlY3RlZFRvRGF0ZSkgPiAwKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUb0RhdGUgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5mcm9tRGF0ZVBpY2tlci5hcGkuY2xvc2UoKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNsb3NlVG9EYXRlUGlja2VyKCkge1xyXG4gICAgdGhpcy50b0RhdGVQaWNrZXIuYXBpLmNsb3NlKCk7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBhbmltYXRlSW1hZ2UoKSB7XHJcbiAgICBjb25zdCBjaXJjbGVJbWFnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2ltYWdlJylcclxuICAgIGNvbnNvbGUubG9nKGNpcmNsZUltYWdlKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFdob0NhblZpZXdUaGlzKCkge1xyXG4gICAgdGhpcy5vcGVuV2hvQ2FuVmlld1RoaXMuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0UmVzcG9uc2liaWxpdHlDZW50ZXIoKSB7XHJcbiAgICB0aGlzLm9wZW5SZXNwb25zaWJpbGl0eUNlbnRlckxpc3QuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0Q2F0ZWdvcmllcygpIHtcclxuICAgIHRoaXMub3BlbkNhdGVnb3J5TGlzdC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RGcmVxdWVuY3koKSB7XHJcbiAgICB0aGlzLm9wZW5GcmVxdWVuY3kuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgY29uZmlndXJlRGFzaGJvYXJkKCkge1xyXG4gICAgbGV0IGZpZWxkc1N0YXR1cyA9IHRoaXMudmVyaWZ5RmllbGRzKCk7XHJcbiAgICAvLyBpZihmaWVsZHNTdGF0dXMpIHtcclxuICAgIC8vICAgdGhpcy5jbG9zZUNyZWF0ZURhc2hib2FyZC5lbWl0KCk7XHJcbiAgICAvLyAgIGNvbnN0IHJlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQ29uZmlndXJlV2lkZ2V0c0NvbXBvbmVudCwge1xyXG4gICAgLy8gICAgIGRhdGE6IHt9LFxyXG4gICAgLy8gICAgIHBvc2l0aW9uOiAnQ0VOVEVSJyxcclxuICAgIC8vICAgICBwb2ludGVyOiAnbm9uZSdcclxuICAgIC8vICAgfSk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICB2ZXJpZnlGaWVsZHMoKSB7XHJcbiAgICBsZXQgYWxsRmllbGRzVmFsaWQgPSB0cnVlO1xyXG4gICAgdGhpcy5kYXNoYm9hcmROYW1lRXJyb3IgPSAnJztcclxuICAgIHRoaXMuZGFzaGJvYXJkRGVzY3JpcHRpb25FcnJvciA9ICcnO1xyXG4gICAgXHJcbiAgICBpZih0aGlzLmRhc2hib2FyZE5hbWUgPT09IG51bGwgfHwgdGhpcy5kYXNoYm9hcmROYW1lID09PSB1bmRlZmluZWQgfHwgdGhpcy5kYXNoYm9hcmROYW1lID09PSAnJykge1xyXG4gICAgICB0aGlzLmRhc2hib2FyZE5hbWVFcnJvciA9IHRoaXMuZmllbGRFbXB0eUVycm9yTWVzc2FnZTtcclxuICAgICAgYWxsRmllbGRzVmFsaWQgPSBmYWxzZTtcclxuICAgIH0gZWxzZSBpZih0aGlzLmRhc2hib2FyZE5hbWUubGVuZ3RoID4gMzApIHtcclxuICAgICAgdGhpcy5kYXNoYm9hcmROYW1lRXJyb3IgPSB0aGlzLmZpZWxkTGltaXRFeGNlZWRlZEVycm9yTWVzc2FnZS5yZXBsYWNlKCdYWVonLCAnMzAnKTtcclxuICAgICAgYWxsRmllbGRzVmFsaWQgPSBmYWxzZTtcclxuICAgIH0gZWxzZSBpZih0aGlzLmRhc2hib2FyZERlc2NyaXB0aW9uVGV4dCA9PT0gbnVsbCB8fCB0aGlzLmRhc2hib2FyZERlc2NyaXB0aW9uVGV4dCA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuZGFzaGJvYXJkRGVzY3JpcHRpb25UZXh0ID09PSAnJykge1xyXG4gICAgICB0aGlzLmRhc2hib2FyZERlc2NyaXB0aW9uRXJyb3IgPSB0aGlzLmZpZWxkRW1wdHlFcnJvck1lc3NhZ2U7XHJcbiAgICAgIGFsbEZpZWxkc1ZhbGlkID0gZmFsc2U7XHJcbiAgICB9IGVsc2UgaWYodGhpcy5kYXNoYm9hcmREZXNjcmlwdGlvblRleHQubGVuZ3RoID4gMjUwKSB7XHJcbiAgICAgIHRoaXMuZGFzaGJvYXJkRGVzY3JpcHRpb25FcnJvciA9IHRoaXMuZmllbGRMaW1pdEV4Y2VlZGVkRXJyb3JNZXNzYWdlLnJlcGxhY2UoJ1hZWicsICcyNTAnKTtcclxuICAgICAgYWxsRmllbGRzVmFsaWQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBhbGxGaWVsZHNWYWxpZDtcclxuICB9XHJcblxyXG4gIGdldEN1cnJlbnREYXRlKCl7XHJcbiAgICBsZXQgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgcmV0dXJuIHRvZGF5LmdldERhdGUoKSArICctJyArICh0b2RheS5nZXRNb250aCgpKzEpICsgJy0nICsgdG9kYXkuZ2V0RnVsbFllYXIoKTtcclxuICB9XHJcblxyXG4gIGRpc3BsYXlDcml0ZXJpYVNlbGVjdGVkKGV2ZW50OiBib29sZWFuLCBzZWxlY3Rpb246IHN0cmluZykge1xyXG4gICAgdGhpcy5kaXNwbGF5Q3JpdGVyaWEgPSBzZWxlY3Rpb247XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gPHA+Zm9ybS1ncm91cCB3b3JrcyE8L3A+IC0tPlxyXG48ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInZ4LWRpYWxvZy1ib2R5LWNvbnRhaW5lclwiIChzY3JvbGwpPVwiYW5pbWF0ZUltYWdlKClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy93aGF0LnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPkRhc2hib2FyZCBOYW1lPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJBZGQgZGFzaGJvYXJkIG5hbWUgKE1heCBsaW1pdDogMzAgY2hhcmFjdGVycykuXCIgWyhuZ01vZGVsKV09XCJkYXNoYm9hcmROYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiICpuZ0lmPVwiZGFzaGJvYXJkTmFtZT8ubGVuZ3RoID4gMFwiPnt7MzAgLSBkYXNoYm9hcmROYW1lPy5sZW5ndGh9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZ4LXR4dC1lcnJvclwiPnt7ZGFzaGJvYXJkTmFtZUVycm9yfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWlucHV0LWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2Y29tcGx5LWVkaXRvciBbZWRpdG9yQ29uZmlnXT1cImRhc2hib2FyZERlc2NyaXB0aW9uXCIgWyhuZ01vZGVsKV09XCJkYXNoYm9hcmREZXNjcmlwdGlvblRleHRcIj48L3Zjb21wbHktZWRpdG9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIiAqbmdJZj1cImRhc2hib2FyZERlc2NyaXB0aW9uVGV4dD8ubGVuZ3RoID4gMFwiPnt7MjUwIC0gZGFzaGJvYXJkRGVzY3JpcHRpb25UZXh0Py5sZW5ndGh9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZ4LXR4dC1lcnJvclwiPnt7ZGFzaGJvYXJkRGVzY3JpcHRpb25FcnJvcn19PC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiLi9hc3NldHMvaW1hZ2VzL3doby5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5XaG8gY2FuIHZpZXcgdGhpcyBkYXNoYm9hcmQ/PHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0Ym94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiV2hvIGNhbiB2aWV3IHRoaXMgZGFzaGJvYXJkP1wiIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0V2hvQ2FuVmlld1RoaXMoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5TYW1hbnRoYSBKb25lczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPkFuZ2VsIEtsZXZlbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjb3VudFwiPisxMDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImVkaXRcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+IEVkaXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxwIGNsYXNzPVwidngtdHh0LWVycm9yXCI+RW50ZXIgYSB2YWx1ZSBmb3IgdGhpcyBpbnB1dCBib3guPC9wPiAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy9yZXNwb25zaWJpbGl0eS1jZW50ZXIuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+UkVTUE9OU0lCSUxJVFkgQ0VOVEVSKFMpPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0Ym94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20taW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1wbGFjZWhvbGRlcj1cIlNlbGVjdCB0aGUgUmVzcG9uc2liaWxpdHkgQ2VudGVyKHMpIHRoYXQgeW91IHdvdWxkIGxpa2UgZGlzcGxheWVkIGluIHRoZSBEYXNoYm9hcmQsIGlmIGFueS5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFJlc3BvbnNpYmlsaXR5Q2VudGVyKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8cCBjbGFzcz1cInZ4LXR4dC1lcnJvclwiPkVudGVyIGEgdmFsdWUgZm9yIHRoaXMgaW5wdXQgYm94LjwvcD4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy9pbWFnZXMvY2F0ZWdvcnkuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+UFJPR1JBTTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGJveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtcGxhY2Vob2xkZXI9XCJTZWxlY3QgdGhlIFByb2dyYW0gdGhhdCB0aGlzIHJlc3BvbnNpYmlsaXR5IHJlbGF0ZXMgdG8uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RDYXRlZ29yaWVzKClcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxwIGNsYXNzPVwidngtdHh0LWVycm9yXCI+RW50ZXIgYSB2YWx1ZSBmb3IgdGhpcyBpbnB1dCBib3guPC9wPiAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy9jYXRlZ29yeS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5SSVNLIENBVEVHT1JJRVM8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3Rib3hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLXBsYWNlaG9sZGVyPVwiU2VsZWN0IHRoZSBSaXNrIENhdGVnb3JpZXMgdGhhdCB5b3Ugd291bGQgbGlrZSBkaXNwbGF5ZWQgaW4gdGhlIERhc2hib2FyZCwgaWYgYW55LlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0Q2F0ZWdvcmllcygpXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8cCBjbGFzcz1cInZ4LXR4dC1lcnJvclwiPkVudGVyIGEgdmFsdWUgZm9yIHRoaXMgaW5wdXQgYm94LjwvcD4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy9pbWFnZXMvd2hvLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPkRJU1BMQVkgQ1JJVEVSSUE8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYWRpby1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLXJhZGlvIChjaGVja2VkRXZlbnQpPVwiZGlzcGxheUNyaXRlcmlhU2VsZWN0ZWQoJGV2ZW50LCAnQk9USF9SQ19BTkRfQ0FURUdPUlknKVwiPlRob3NlIHJlc3BvbnNpYmlsaXRpZXMgdGhhdCBoYXZlIGJlZW4gYXNzaWduZWQgdG8gYm90aCB0aGUgc2VsZWN0ZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc3BvbnNpYmlsaXR5IENlbnRlcihzKSBhbmQgdGhlIHNlbGVjdGVkIENhdGVnb3JpZXMuPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtcmFkaW8gKGNoZWNrZWRFdmVudCk9XCJkaXNwbGF5Q3JpdGVyaWFTZWxlY3RlZCgkZXZlbnQsICdSQ19PUl9DQVRFR09SWScpXCI+VGhvc2UgcmVzcG9uc2liaWxpdGllcyB0aGF0IGhhdmUgYmVlbiBhc3NpZ25lZCB0byBlaXRoZXIgdGhlIHNlbGVjdGVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNwb25zaWJpbGl0eSBDZW50ZXIocykgb3IgdGhlIHNlbGVjdGVkIENhdGVnb3JpZXMuPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8cCBjbGFzcz1cInZ4LXR4dC1lcnJvclwiPkVudGVyIGEgdmFsdWUgZm9yIHRoaXMgaW5wdXQgYm94LjwvcD4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy9pbWFnZXMvd2hlbi5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5USU1FRlJBTUU8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWwtc3ViLWxhYmVsXCI+U2VsZWN0IGhvdyBsb25nIHlvdSB3b3VsZCBsaWtlIHRoZSBpbmZvcm1hdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCB0byBiZSBkaXNwbGF5ZWQgZm9yLiBJZiBubyB0aW1lZnJhbWUgaXMgc2VsZWN0ZWQsIHRoZSBpbmZvcm1hdGlvbiB3aWxsIGJlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXllZCBwZXJtYW5lbnRseS48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCB2eC1kLWZsZXggdngtanVzdGlmeS1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlLXNlbGVjdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MmQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW3ZhbHVlXT1cInNlbGVjdGVkRnJvbURhdGUgfCBkYXRlOiAnZGQgTU1NIHl5eXknXCIgW3BsYWNlaG9sZGVyXT1cIidGcm9tJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5Gcm9tRGF0ZVBpY2tlcigpXCIgcmVhZG9ubHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHAtZGF0ZS1waWNrZXIgI2Zyb21EYXRlUGlja2VyIFsobmdNb2RlbCldPVwic2VsZWN0ZWRGcm9tRGF0ZVwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0IERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvblNlbGVjdCk9XCJjbG9zZUZyb21EYXRlUGlja2VyKCk7IGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2VcIiBbY29uZmlnXT1cImZyb21EYXRlUGlja2VyQ29uZmlnXCI+PC9kcC1kYXRlLXBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5XCIgKGNsaWNrKT1cImNsb3NlRnJvbURhdGVQaWNrZXIoKVwiICpuZ0lmPVwiZGF0ZVBpY2tlck92ZXJsYXlcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlLXNlbGVjdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MmQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW3ZhbHVlXT1cInNlbGVjdGVkVG9EYXRlIHwgZGF0ZTogJ2RkIE1NTSB5eXl5J1wiIFtwbGFjZWhvbGRlcl09XCInVG8nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblRvRGF0ZVBpY2tlcigpXCIgcmVhZG9ubHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHAtZGF0ZS1waWNrZXIgI3RvRGF0ZVBpY2tlciBbKG5nTW9kZWwpXT1cInNlbGVjdGVkVG9EYXRlXCIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cImNsb3NlVG9EYXRlUGlja2VyKCk7IGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2VcIiAgW2NvbmZpZ109XCJ0b0RhdGVQaWNrZXJDb25maWdcIj48L2RwLWRhdGUtcGlja2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJsYXlcIiAoY2xpY2spPVwiY2xvc2VUb0RhdGVQaWNrZXIoKVwiICpuZ0lmPVwiZGF0ZVBpY2tlck92ZXJsYXlcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8cCBjbGFzcz1cInZ4LXR4dC1lcnJvclwiPkVudGVyIGEgdmFsdWUgZm9yIHRoaXMgaW5wdXQgYm94LjwvcD4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCI+XHJcbiAgICAgICAgICAgIDwhLS1hY3RpdmUgY2xhc3Mgd2lsbCBhcHBlYXIgb24gb3BlbiBsaXN0LS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy9pbWFnZXMvc2VuZC1yZXNvbHV0aW9uLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBFbWFpbCBTdW1tYXJpZXMgPGkgY2xhc3M9XCJpY29uc1wiIFthclRvb2x0aXBdPVwiJ1RoaXMgaXMgYSB0ZXN0IHRvb2x0aXAnXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPiYjeGU5MWY7PC9pPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbC1zdWItbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSWYgeW91IHdvdWxkIGxpa2UgdG8gc2VuZCBhIHN1bW1hcnkgb2YgdGhpcyBEYXNoYm9hcmQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsZWFzZSBzZWxlY3QgYSBmcmVxdWVuY3koQnkgZGVmYXVsdCBWQ29tcGx5IHNlbmRzIGEgd2Vla2x5IFN1bW1hcnkpLlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGJveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkVtYWlsIFN1bW1hcmllc1wiIHJlYWRvbmx5IChjbGljayk9XCJzZWxlY3RGcmVxdWVuY3koKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPHAgY2xhc3M9XCJ2eC10eHQtZXJyb3JcIj5FbnRlciBhIHZhbHVlIGZvciB0aGlzIGlucHV0IGJveC48L3A+IC0tPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWJsb2NrXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInZ4LWJ0biBibG9jayBwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgKGNsaWNrKT1cImNvbmZpZ3VyZURhc2hib2FyZCgpXCI+TmV4dDogQ29uZmlndXJlXHJcbiAgICAgICAgICAgIFdpZGdldHM8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvY3JlYXRlLWRhc2hib2FyZC1jb250YWluZXIvZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7OztBQUl2QixxSEFBcUg7QUFPckgsTUFBTSxPQUFPLGtCQUFrQjtJQXdCN0IsWUFBb0IsTUFBcUI7UUFBckIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQXZCL0IscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM5QyxpQ0FBNEIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzFELHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDaEQseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNsRCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFLckQsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBSzFCLDJCQUFzQixHQUFXLG1DQUFtQyxDQUFDO1FBQ3JFLG1DQUE4QixHQUM1QixrRUFBa0UsQ0FBQztRQUNyRSx1Q0FBa0MsR0FDaEMsd0ZBQXdGLENBQUM7UUFPM0YseUJBQW9CLEdBQWlCO1lBQ25DLFdBQVcsRUFBRSx5Q0FBeUM7WUFDdEQsSUFBSSxFQUFFLE9BQU87WUFDYixFQUFFLEVBQUUsYUFBYTtTQUNsQixD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a0I7c0JBQTNCLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0UsUUFBUTtzQkFBaEIsS0FBSztnQkFFdUIsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBQ0EsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50LCBJRGF0ZVBpY2tlckNvbmZpZyB9IGZyb20gJ25nMi1kYXRlLXBpY2tlcic7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi91aS1raXQvZGlhbG9nL2RpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRWRpdG9yQ29uZmlnIH0gZnJvbSAnQHZjb21wbHkvZWRpdG9yJztcclxuLy8gaW1wb3J0IHsgQ29uZmlndXJlV2lkZ2V0c0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbmZpZ3VyZS13aWRnZXRzL2NvbmZpZ3VyZS13aWRnZXRzL2NvbmZpZ3VyZS13aWRnZXRzLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1mb3JtLWdyb3VwJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1ncm91cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1ncm91cC5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAT3V0cHV0KCkgb3BlbkNhdGVnb3J5TGlzdCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBvcGVuUmVzcG9uc2liaWxpdHlDZW50ZXJMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIG9wZW5XaG9DYW5WaWV3VGhpcyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBjbG9zZUNyZWF0ZURhc2hib2FyZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBvcGVuRnJlcXVlbmN5ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQhOiBib29sZWFuO1xyXG5cclxuICBAVmlld0NoaWxkKCdmcm9tRGF0ZVBpY2tlcicpIGZyb21EYXRlUGlja2VyITogRGF0ZVBpY2tlckNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCd0b0RhdGVQaWNrZXInKSB0b0RhdGVQaWNrZXIhOiBEYXRlUGlja2VyQ29tcG9uZW50O1xyXG4gIGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWRGcm9tRGF0ZSE6IGFueTtcclxuICBzZWxlY3RlZFRvRGF0ZSE6IGFueTtcclxuICBkYXNoYm9hcmROYW1lITogYW55O1xyXG4gIGRhc2hib2FyZERlc2NyaXB0aW9uVGV4dCE6IGFueTtcclxuICBmaWVsZEVtcHR5RXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnRW50ZXIgYSB2YWx1ZSBmb3IgdGhpcyBpbnB1dCBib3guJztcclxuICBmaWVsZExpbWl0RXhjZWVkZWRFcnJvck1lc3NhZ2U6IHN0cmluZyA9XHJcbiAgICAnWW91IGhhdmUgZXhjZWVkZWQgdGhlIG1heGltdW0gY2hhcmFjdGVyIGxpbWl0IG9mIFhZWiBjaGFyYWN0ZXJzLic7XHJcbiAgZGFzaGJvYXJkTmFtZU5vdFVuaXF1ZUVycm9yTWVzc2FnZTogc3RyaW5nID1cclxuICAgICdBIGRhc2hib2FyZCB3aXRoIHRoaXMgbmFtZSBhbHJlYWR5IGV4aXN0cy4gU3BlY2lmeSBhIGRpZmZlcmVudCBuYW1lIGZvciB0aGUgZGFzaGJvYXJkLic7XHJcbiAgZGFzaGJvYXJkTmFtZUVycm9yITogc3RyaW5nO1xyXG4gIGRhc2hib2FyZERlc2NyaXB0aW9uRXJyb3IhOiBzdHJpbmc7XHJcbiAgZGlzcGxheUNyaXRlcmlhITogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZzogRGlhbG9nU2VydmljZSkge31cclxuXHJcbiAgZGFzaGJvYXJkRGVzY3JpcHRpb246IEVkaXRvckNvbmZpZyA9IHtcclxuICAgIHBsYWNlaG9sZGVyOiAnRGVzY3JpcHRpb24gKE1heCBsaW1pdDogMjUwIGNoYXJhY3RlcnMpJyxcclxuICAgIG1vZGU6ICdwcmltZScsXHJcbiAgICBpZDogJ2Rlc2NyaXB0aW9uJyxcclxuICB9O1xyXG5cclxuICBmcm9tRGF0ZVBpY2tlckNvbmZpZzogSURhdGVQaWNrZXJDb25maWcgPSB7XHJcbiAgICBtaW46IHRoaXMuZ2V0Q3VycmVudERhdGUoKSxcclxuICB9O1xyXG5cclxuICB0b0RhdGVQaWNrZXJDb25maWc6IElEYXRlUGlja2VyQ29uZmlnID0ge307XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge31cclxuXHJcbiAgb3BlbkZyb21EYXRlUGlja2VyKCkge1xyXG4gICAgdGhpcy5mcm9tRGF0ZVBpY2tlci5hcGkub3BlbigpO1xyXG4gICAgdGhpcy5kYXRlUGlja2VyT3ZlcmxheSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBvcGVuVG9EYXRlUGlja2VyKCkge1xyXG4gICAgdGhpcy50b0RhdGVQaWNrZXIuYXBpLm9wZW4oKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VGcm9tRGF0ZVBpY2tlcigpIHtcclxuICAgIGxldCBtaW5Ub0RhdGUgPSB0aGlzLnNlbGVjdGVkRnJvbURhdGUuY2xvbmUoKS5hZGQoMSwgJ2RheXMnKTtcclxuICAgIHRoaXMudG9EYXRlUGlja2VyQ29uZmlnID0geyBtaW46IG1pblRvRGF0ZSwgbWluVGltZTogbWluVG9EYXRlIH07XHJcblxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRUb0RhdGUgJiYgbWluVG9EYXRlLmRpZmYodGhpcy5zZWxlY3RlZFRvRGF0ZSkgPiAwKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUb0RhdGUgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5mcm9tRGF0ZVBpY2tlci5hcGkuY2xvc2UoKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNsb3NlVG9EYXRlUGlja2VyKCkge1xyXG4gICAgdGhpcy50b0RhdGVQaWNrZXIuYXBpLmNsb3NlKCk7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBhbmltYXRlSW1hZ2UoKSB7XHJcbiAgICBjb25zdCBjaXJjbGVJbWFnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2ltYWdlJyk7XHJcbiAgICBjb25zb2xlLmxvZyhjaXJjbGVJbWFnZSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RXaG9DYW5WaWV3VGhpcygpIHtcclxuICAgIHRoaXMub3Blbldob0NhblZpZXdUaGlzLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFJlc3BvbnNpYmlsaXR5Q2VudGVyKCkge1xyXG4gICAgdGhpcy5vcGVuUmVzcG9uc2liaWxpdHlDZW50ZXJMaXN0LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdENhdGVnb3JpZXMoKSB7XHJcbiAgICB0aGlzLm9wZW5DYXRlZ29yeUxpc3QuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0RnJlcXVlbmN5KCkge1xyXG4gICAgdGhpcy5vcGVuRnJlcXVlbmN5LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIGNvbmZpZ3VyZURhc2hib2FyZCgpIHtcclxuICAgIGxldCBmaWVsZHNTdGF0dXMgPSB0aGlzLnZlcmlmeUZpZWxkcygpO1xyXG4gICAgLy8gaWYoZmllbGRzU3RhdHVzKSB7XHJcbiAgICAvLyAgIHRoaXMuY2xvc2VDcmVhdGVEYXNoYm9hcmQuZW1pdCgpO1xyXG4gICAgLy8gICBjb25zdCByZWYgPSB0aGlzLmRpYWxvZy5vcGVuKENvbmZpZ3VyZVdpZGdldHNDb21wb25lbnQsIHtcclxuICAgIC8vICAgICBkYXRhOiB7fSxcclxuICAgIC8vICAgICBwb3NpdGlvbjogJ0NFTlRFUicsXHJcbiAgICAvLyAgICAgcG9pbnRlcjogJ25vbmUnXHJcbiAgICAvLyAgIH0pO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgdmVyaWZ5RmllbGRzKCkge1xyXG4gICAgbGV0IGFsbEZpZWxkc1ZhbGlkID0gdHJ1ZTtcclxuICAgIHRoaXMuZGFzaGJvYXJkTmFtZUVycm9yID0gJyc7XHJcbiAgICB0aGlzLmRhc2hib2FyZERlc2NyaXB0aW9uRXJyb3IgPSAnJztcclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuZGFzaGJvYXJkTmFtZSA9PT0gbnVsbCB8fFxyXG4gICAgICB0aGlzLmRhc2hib2FyZE5hbWUgPT09IHVuZGVmaW5lZCB8fFxyXG4gICAgICB0aGlzLmRhc2hib2FyZE5hbWUgPT09ICcnXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5kYXNoYm9hcmROYW1lRXJyb3IgPSB0aGlzLmZpZWxkRW1wdHlFcnJvck1lc3NhZ2U7XHJcbiAgICAgIGFsbEZpZWxkc1ZhbGlkID0gZmFsc2U7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGFzaGJvYXJkTmFtZS5sZW5ndGggPiAzMCkge1xyXG4gICAgICB0aGlzLmRhc2hib2FyZE5hbWVFcnJvciA9IHRoaXMuZmllbGRMaW1pdEV4Y2VlZGVkRXJyb3JNZXNzYWdlLnJlcGxhY2UoXHJcbiAgICAgICAgJ1hZWicsXHJcbiAgICAgICAgJzMwJ1xyXG4gICAgICApO1xyXG4gICAgICBhbGxGaWVsZHNWYWxpZCA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIGlmIChcclxuICAgICAgdGhpcy5kYXNoYm9hcmREZXNjcmlwdGlvblRleHQgPT09IG51bGwgfHxcclxuICAgICAgdGhpcy5kYXNoYm9hcmREZXNjcmlwdGlvblRleHQgPT09IHVuZGVmaW5lZCB8fFxyXG4gICAgICB0aGlzLmRhc2hib2FyZERlc2NyaXB0aW9uVGV4dCA9PT0gJydcclxuICAgICkge1xyXG4gICAgICB0aGlzLmRhc2hib2FyZERlc2NyaXB0aW9uRXJyb3IgPSB0aGlzLmZpZWxkRW1wdHlFcnJvck1lc3NhZ2U7XHJcbiAgICAgIGFsbEZpZWxkc1ZhbGlkID0gZmFsc2U7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGFzaGJvYXJkRGVzY3JpcHRpb25UZXh0Lmxlbmd0aCA+IDI1MCkge1xyXG4gICAgICB0aGlzLmRhc2hib2FyZERlc2NyaXB0aW9uRXJyb3IgPVxyXG4gICAgICAgIHRoaXMuZmllbGRMaW1pdEV4Y2VlZGVkRXJyb3JNZXNzYWdlLnJlcGxhY2UoJ1hZWicsICcyNTAnKTtcclxuICAgICAgYWxsRmllbGRzVmFsaWQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBhbGxGaWVsZHNWYWxpZDtcclxuICB9XHJcblxyXG4gIGdldEN1cnJlbnREYXRlKCkge1xyXG4gICAgbGV0IHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRvZGF5LmdldERhdGUoKSArICctJyArICh0b2RheS5nZXRNb250aCgpICsgMSkgKyAnLScgKyB0b2RheS5nZXRGdWxsWWVhcigpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGlzcGxheUNyaXRlcmlhU2VsZWN0ZWQoZXZlbnQ6IGJvb2xlYW4sIHNlbGVjdGlvbjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRpc3BsYXlDcml0ZXJpYSA9IHNlbGVjdGlvbjtcclxuICB9XHJcbn1cclxuIiwiPCEtLSA8cD5mb3JtLWdyb3VwIHdvcmtzITwvcD4gLS0+XHJcbjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidngtZGlhbG9nLWJvZHktY29udGFpbmVyXCIgKHNjcm9sbCk9XCJhbmltYXRlSW1hZ2UoKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiLi9hc3NldHMvaW1hZ2VzL3doYXQuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+RGFzaGJvYXJkIE5hbWU8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1pbnB1dC1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkFkZCBkYXNoYm9hcmQgbmFtZSAoTWF4IGxpbWl0OiAzMCBjaGFyYWN0ZXJzKS5cIiBbKG5nTW9kZWwpXT1cImRhc2hib2FyZE5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCIgKm5nSWY9XCJkYXNoYm9hcmROYW1lPy5sZW5ndGggPiAwXCI+e3szMCAtIGRhc2hib2FyZE5hbWU/Lmxlbmd0aH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidngtdHh0LWVycm9yXCI+e3tkYXNoYm9hcmROYW1lRXJyb3J9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHZjb21wbHktZWRpdG9yIFtlZGl0b3JDb25maWddPVwiZGFzaGJvYXJkRGVzY3JpcHRpb25cIiBbKG5nTW9kZWwpXT1cImRhc2hib2FyZERlc2NyaXB0aW9uVGV4dFwiPjwvdmNvbXBseS1lZGl0b3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiICpuZ0lmPVwiZGFzaGJvYXJkRGVzY3JpcHRpb25UZXh0Py5sZW5ndGggPiAwXCI+e3syNTAgLSBkYXNoYm9hcmREZXNjcmlwdGlvblRleHQ/Lmxlbmd0aH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidngtdHh0LWVycm9yXCI+e3tkYXNoYm9hcmREZXNjcmlwdGlvbkVycm9yfX08L3A+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy9pbWFnZXMvd2hvLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPldobyBjYW4gdmlldyB0aGlzIGRhc2hib2FyZD88c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3Rib3hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJXaG8gY2FuIHZpZXcgdGhpcyBkYXNoYm9hcmQ/XCIgcmVhZG9ubHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RXaG9DYW5WaWV3VGhpcygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlNhbWFudGhhIEpvbmVzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+QW5nZWwgS2xldmVuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvdW50XCI+KzEwPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZWRpdFwiPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT4gRWRpdDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPHAgY2xhc3M9XCJ2eC10eHQtZXJyb3JcIj5FbnRlciBhIHZhbHVlIGZvciB0aGlzIGlucHV0IGJveC48L3A+IC0tPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiLi9hc3NldHMvaW1hZ2VzL3Jlc3BvbnNpYmlsaXR5LWNlbnRlci5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5SRVNQT05TSUJJTElUWSBDRU5URVIoUyk8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3Rib3hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLXBsYWNlaG9sZGVyPVwiU2VsZWN0IHRoZSBSZXNwb25zaWJpbGl0eSBDZW50ZXIocykgdGhhdCB5b3Ugd291bGQgbGlrZSBkaXNwbGF5ZWQgaW4gdGhlIERhc2hib2FyZCwgaWYgYW55LlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UmVzcG9uc2liaWxpdHlDZW50ZXIoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxwIGNsYXNzPVwidngtdHh0LWVycm9yXCI+RW50ZXIgYSB2YWx1ZSBmb3IgdGhpcyBpbnB1dCBib3guPC9wPiAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy9jYXRlZ29yeS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5QUk9HUkFNPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0Ym94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20taW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1wbGFjZWhvbGRlcj1cIlNlbGVjdCB0aGUgUHJvZ3JhbSB0aGF0IHRoaXMgcmVzcG9uc2liaWxpdHkgcmVsYXRlcyB0by5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdENhdGVnb3JpZXMoKVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPHAgY2xhc3M9XCJ2eC10eHQtZXJyb3JcIj5FbnRlciBhIHZhbHVlIGZvciB0aGlzIGlucHV0IGJveC48L3A+IC0tPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiLi9hc3NldHMvaW1hZ2VzL2NhdGVnb3J5LnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlJJU0sgQ0FURUdPUklFUzwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGJveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtcGxhY2Vob2xkZXI9XCJTZWxlY3QgdGhlIFJpc2sgQ2F0ZWdvcmllcyB0aGF0IHlvdSB3b3VsZCBsaWtlIGRpc3BsYXllZCBpbiB0aGUgRGFzaGJvYXJkLCBpZiBhbnkuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RDYXRlZ29yaWVzKClcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxwIGNsYXNzPVwidngtdHh0LWVycm9yXCI+RW50ZXIgYSB2YWx1ZSBmb3IgdGhpcyBpbnB1dCBib3guPC9wPiAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy93aG8uc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+RElTUExBWSBDUklURVJJQTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJhZGlvLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtcmFkaW8gKGNoZWNrZWRFdmVudCk9XCJkaXNwbGF5Q3JpdGVyaWFTZWxlY3RlZCgkZXZlbnQsICdCT1RIX1JDX0FORF9DQVRFR09SWScpXCI+VGhvc2UgcmVzcG9uc2liaWxpdGllcyB0aGF0IGhhdmUgYmVlbiBhc3NpZ25lZCB0byBib3RoIHRoZSBzZWxlY3RlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzcG9uc2liaWxpdHkgQ2VudGVyKHMpIGFuZCB0aGUgc2VsZWN0ZWQgQ2F0ZWdvcmllcy48L2FwcC1jcy1yYWRpbz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1jcy1yYWRpbyAoY2hlY2tlZEV2ZW50KT1cImRpc3BsYXlDcml0ZXJpYVNlbGVjdGVkKCRldmVudCwgJ1JDX09SX0NBVEVHT1JZJylcIj5UaG9zZSByZXNwb25zaWJpbGl0aWVzIHRoYXQgaGF2ZSBiZWVuIGFzc2lnbmVkIHRvIGVpdGhlciB0aGUgc2VsZWN0ZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc3BvbnNpYmlsaXR5IENlbnRlcihzKSBvciB0aGUgc2VsZWN0ZWQgQ2F0ZWdvcmllcy48L2FwcC1jcy1yYWRpbz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxwIGNsYXNzPVwidngtdHh0LWVycm9yXCI+RW50ZXIgYSB2YWx1ZSBmb3IgdGhpcyBpbnB1dCBib3guPC9wPiAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy93aGVuLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlRJTUVGUkFNRTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbC1zdWItbGFiZWxcIj5TZWxlY3QgaG93IGxvbmcgeW91IHdvdWxkIGxpa2UgdGhlIGluZm9ybWF0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkIHRvIGJlIGRpc3BsYXllZCBmb3IuIElmIG5vIHRpbWVmcmFtZSBpcyBzZWxlY3RlZCwgdGhlIGluZm9ybWF0aW9uIHdpbGwgYmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheWVkIHBlcm1hbmVudGx5LjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIHZ4LWQtZmxleCB2eC1qdXN0aWZ5LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtc2VsZWN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkyZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbdmFsdWVdPVwic2VsZWN0ZWRGcm9tRGF0ZSB8IGRhdGU6ICdkZCBNTU0geXl5eSdcIiBbcGxhY2Vob2xkZXJdPVwiJ0Zyb20nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkZyb21EYXRlUGlja2VyKClcIiByZWFkb25seT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkcC1kYXRlLXBpY2tlciAjZnJvbURhdGVQaWNrZXIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEZyb21EYXRlXCIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cImNsb3NlRnJvbURhdGVQaWNrZXIoKTsgZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZVwiIFtjb25maWddPVwiZnJvbURhdGVQaWNrZXJDb25maWdcIj48L2RwLWRhdGUtcGlja2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJsYXlcIiAoY2xpY2spPVwiY2xvc2VGcm9tRGF0ZVBpY2tlcigpXCIgKm5nSWY9XCJkYXRlUGlja2VyT3ZlcmxheVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtc2VsZWN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkyZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbdmFsdWVdPVwic2VsZWN0ZWRUb0RhdGUgfCBkYXRlOiAnZGQgTU1NIHl5eXknXCIgW3BsYWNlaG9sZGVyXT1cIidUbydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuVG9EYXRlUGlja2VyKClcIiByZWFkb25seT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkcC1kYXRlLXBpY2tlciAjdG9EYXRlUGlja2VyIFsobmdNb2RlbCldPVwic2VsZWN0ZWRUb0RhdGVcIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25TZWxlY3QpPVwiY2xvc2VUb0RhdGVQaWNrZXIoKTsgZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZVwiICBbY29uZmlnXT1cInRvRGF0ZVBpY2tlckNvbmZpZ1wiPjwvZHAtZGF0ZS1waWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheVwiIChjbGljayk9XCJjbG9zZVRvRGF0ZVBpY2tlcigpXCIgKm5nSWY9XCJkYXRlUGlja2VyT3ZlcmxheVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxwIGNsYXNzPVwidngtdHh0LWVycm9yXCI+RW50ZXIgYSB2YWx1ZSBmb3IgdGhpcyBpbnB1dCBib3guPC9wPiAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIj5cclxuICAgICAgICAgICAgPCEtLWFjdGl2ZSBjbGFzcyB3aWxsIGFwcGVhciBvbiBvcGVuIGxpc3QtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy9zZW5kLXJlc29sdXRpb24uc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEVtYWlsIFN1bW1hcmllcyA8aSBjbGFzcz1cImljb25zXCIgW2FyVG9vbHRpcF09XCInVGhpcyBpcyBhIHRlc3QgdG9vbHRpcCdcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+JiN4ZTkxZjs8L2k+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsLXN1Yi1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBJZiB5b3Ugd291bGQgbGlrZSB0byBzZW5kIGEgc3VtbWFyeSBvZiB0aGlzIERhc2hib2FyZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGxlYXNlIHNlbGVjdCBhIGZyZXF1ZW5jeShCeSBkZWZhdWx0IFZDb21wbHkgc2VuZHMgYSB3ZWVrbHkgU3VtbWFyeSkuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0Ym94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiRW1haWwgU3VtbWFyaWVzXCIgcmVhZG9ubHkgKGNsaWNrKT1cInNlbGVjdEZyZXF1ZW5jeSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8cCBjbGFzcz1cInZ4LXR4dC1lcnJvclwiPkVudGVyIGEgdmFsdWUgZm9yIHRoaXMgaW5wdXQgYm94LjwvcD4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJidXR0b24tYmxvY2tcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwidngtYnRuIGJsb2NrIHByaW1hcnlcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAoY2xpY2spPVwiY29uZmlndXJlRGFzaGJvYXJkKClcIj5OZXh0OiBDb25maWd1cmVcclxuICAgICAgICAgICAgV2lkZ2V0czwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -9,6 +9,7 @@ import * as i6 from "../../ui-kit/dashboard-footer/dashboard-footer/dashboard-fo
|
|
|
9
9
|
export class FrequencyComponent {
|
|
10
10
|
constructor(snackBar) {
|
|
11
11
|
this.snackBar = snackBar;
|
|
12
|
+
this.animation = true;
|
|
12
13
|
this.monthlyDate = 1;
|
|
13
14
|
this.quarterlyDate = 1;
|
|
14
15
|
this.frequencyTab = 'weekly';
|
|
@@ -38,6 +39,10 @@ export class FrequencyComponent {
|
|
|
38
39
|
this.savedFrequencies = [...new Set(this.savedFrequencies)];
|
|
39
40
|
}
|
|
40
41
|
ngOnInit() {
|
|
42
|
+
this.animation = true;
|
|
43
|
+
setTimeout(() => {
|
|
44
|
+
this.animation = false;
|
|
45
|
+
}, 300);
|
|
41
46
|
if (this.savedFrequencyTab) {
|
|
42
47
|
this.changeTab(this.savedFrequencyTab);
|
|
43
48
|
}
|
|
@@ -282,10 +287,10 @@ export class FrequencyComponent {
|
|
|
282
287
|
}
|
|
283
288
|
}
|
|
284
289
|
FrequencyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FrequencyComponent, deps: [{ token: i1.SnackBarService }], target: i0.ɵɵFactoryTarget.Component });
|
|
285
|
-
FrequencyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: FrequencyComponent, selector: "app-frequency", inputs: { savedFrequencyTab: "savedFrequencyTab", savedFrequencies: "savedFrequencies", selectedDate: "selectedDate" }, outputs: { closeFrequencyPopup: "closeFrequencyPopup", saveFrequency: "saveFrequency" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"frequency\">\r\n <div class=\"frequency-head vx-d-flex vx-align-center vx-justify-between vx-p-3\">\r\n <h3 class=\"frequency-title\">Select a Frequency</h3>\r\n </div>\r\n <div class=\"frequency-body\">\r\n <div class=\"frequency-tab\" [ngSwitch]=\"frequencyTab\">\r\n <div class=\"frequency-tab-head\">\r\n <ul class=\"navigation\">\r\n <li><button [class.active]=\"frequencyTab == 'weekly'\" (click)=\"changeTab('weekly')\">Weekly</button></li>\r\n <li><button [class.active]=\"frequencyTab == 'monthly'\" (click)=\"changeTab('monthly')\">Monthly</button></li>\r\n <li><button [class.active]=\"frequencyTab == 'quarterly'\" (click)=\"changeTab('quarterly')\">Quarterly</button></li>\r\n </ul>\r\n </div>\r\n <div class=\"frequency-tab-body\" >\r\n <div class=\"checkbox-list\" *ngSwitchCase=\"'weekly'\">\r\n <div class=\"frequency-checkbox vx-d-flex vx-justify-between vx-flex-wrap\">\r\n <app-cs-checkbox *ngFor = \"let day of dayNames; let dayIndex = index\" (ngValueChange)=\"daySelectionChange($event, dayIndex)\" [ngValue]=\"selectedDays.includes(dayIndex)\">{{day}}</app-cs-checkbox>\r\n </div>\r\n </div>\r\n <div class=\"checkbox-list month\" *ngSwitchCase=\"'monthly'\">\r\n <div class=\"frequency-top vx-d-flex vx-align-center\">\r\n <span>Day <input type=\"number\" (focusout)=\"checkDateValidity(monthlyDate,'monthly')\" [(ngModel)]=\"monthlyDate\" class=\"day-counter\"\r\n onkeydown=\"return event.keyCode !== 190\" min=\"1\" oninput=\"this.value = Math.abs(this.value)\"> of</span>\r\n </div>\r\n <div class=\"frequency-checkbox vx-d-flex vx-justify-between vx-flex-wrap\">\r\n <app-cs-checkbox *ngFor = \"let month of monthNames; let monthIndex = index\" (ngValueChange)=\"monthSelectionChange($event, monthIndex)\" [ngValue]=\"selectedMonths.includes(monthIndex)\">{{month}}</app-cs-checkbox>\r\n </div>\r\n </div>\r\n <div class=\"checkbox-list\" *ngSwitchCase=\"'quarterly'\">\r\n <ng-container *ngIf=\"showRadio\">\r\n <div class=\"frequency-top vx-d-flex vx-align-center\">\r\n <span>Day <input type=\"number\" (focusout)=\"checkDateValidity(quarterlyDate,'quarterly')\" [(ngModel)]=\"quarterlyDate\" class=\"day-counter\"\r\n onkeydown=\"return event.keyCode !== 190\" min=\"1\" oninput=\"this.value = Math.abs(this.value)\"> of</span>\r\n </div>\r\n <div class=\"frequency-checkbox vx-d-flex vx-justify-between vx-flex-wrap\">\r\n <app-cs-radio *ngFor = \"let quarter of quarters, let quarterIndex = index\" (checkedEvent)=\"quarterSelectionChange($event, quarterIndex)\" [checked]=\"selectedQuarter === quarterIndex\">{{quarter}}</app-cs-radio>\r\n </div>\r\n </ng-container> \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"frequency-footer\">\r\n <app-dashboard-footer \r\n [footerDetails]=\"footerDetails\"\r\n (cancelEvent)=\"closeFrequencyPopup.emit()\"\r\n (submitEvent)=\"submitFrequency()\"\r\n ></app-dashboard-footer>\r\n </div>\r\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/animate/animation.css\";@import\"https://cdn.v-comply.com/design-system/css/animate/animate-slide-right.css\";::ng-deep .frequency{background:#FFFFFF}::ng-deep .frequency-head{background:#FBFBFB;border-bottom:1px solid #F1F1F1;border-radius:2px 2px 0 0;padding:0 12px}::ng-deep .frequency-title{color:#161b2f;font-size:14px;margin:0;padding:0;line-height:20px;font-weight:500}::ng-deep .frequency-body{padding:60px 0;height:calc(100vh - 110px);overflow:auto}::ng-deep .frequency-tab{position:relative;width:800px;margin:0 auto;box-shadow:0 10px 20px #1e5d15;border-right:1px solid #F1F1F1;border-bottom:1px solid #F1F1F1;border-left:1px solid #F1F1F1;border-radius:2px}::ng-deep .frequency-tab-head{background:#FBFBFB;border-top:1px solid #F1F1F1;border-radius:2px 2px 0 0}::ng-deep .frequency-tab-head ul{padding:0;margin:0}::ng-deep .frequency-tab-head ul.navigation{display:flex;border-radius:2px 2px 0 0}::ng-deep .frequency-tab-head ul.navigation li{list-style:none;width:auto;padding:0 28px;display:flex;justify-content:center}::ng-deep .frequency-tab-head ul.navigation li button{font-size:11px;line-height:32px;position:relative;display:block;color:#747576;font-weight:500;text-transform:uppercase;background:transparent;border:none;white-space:nowrap;cursor:pointer;padding:0}::ng-deep .frequency-tab-head ul.navigation li button:after{position:absolute;right:0;bottom:-1px;left:0;height:2px;content:\"\"}::ng-deep .frequency-tab-head ul.navigation li button.active{color:#1e5dd3}::ng-deep .frequency-tab-head ul.navigation li button.active:after{background:#1e5dd3}::ng-deep .frequency-tab-body{background:#FFFFFF}::ng-deep .frequency-tab-body .checkbox-list{border-top:1px solid #F1F1F1}::ng-deep .frequency-tab-body .checkbox-list .frequency-top{padding:12px 24px;border-bottom:1px solid #F1F1F1}::ng-deep .frequency-tab-body .checkbox-list .frequency-top span{font-size:14px;color:#161b2f;width:auto;display:block;line-height:28px}::ng-deep .frequency-tab-body .checkbox-list .frequency-top .day-counter{-webkit-appearance:textfield;-moz-appearance:textfield;width:40px;margin:6px 8px 0;padding:0 4px;text-align:center;border:none;border-bottom:2px solid #dcdcdc;line-height:26px;color:#161b2f;font-weight:400;outline:none;font-size:14px}::ng-deep .frequency-tab-body .checkbox-list .frequency-checkbox{padding:24px}::ng-deep .frequency-tab-body .checkbox-list app-cs-checkbox,::ng-deep .frequency-tab-body .checkbox-list app-cs-radio{display:flex}::ng-deep .frequency-tab-body .checkbox-list app-cs-checkbox label span.value,::ng-deep .frequency-tab-body .checkbox-list app-cs-radio label span.value{font-size:12px!important;color:#747576!important;font-weight:400!important}::ng-deep .frequency-tab-body .checkbox-list.month app-cs-checkbox{width:calc(100% / 6);padding:4px 0}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.CsCheckboxComponent, selector: "app-cs-checkbox", inputs: ["disabled", "ngValue", "value"], outputs: ["ngValueChange"] }, { kind: "component", type: i4.CsRadioComponent, selector: "app-cs-radio", inputs: ["disabled", "readonly", "name", "checked", "value"], outputs: ["checkedEvent"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.DashboardFooterComponent, selector: "app-dashboard-footer", inputs: ["footerDetails"], outputs: ["cancelEvent", "submitEvent", "deleteEvent"] }] });
|
|
290
|
+
FrequencyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: FrequencyComponent, selector: "app-frequency", inputs: { savedFrequencyTab: "savedFrequencyTab", savedFrequencies: "savedFrequencies", selectedDate: "selectedDate" }, outputs: { closeFrequencyPopup: "closeFrequencyPopup", saveFrequency: "saveFrequency" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"create-frequency\" [class.animate-slideInRight]=\"animation\">\r\n <div class=\"create-frequency-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4 vx-mb-4\">\r\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Frequency</div>\r\n </div>\r\n <div class=\"create-frequency-body vx-pl-4 vx-pr-4\">\r\n <div class=\"create-frequency-body-inner\">\r\n <div class=\"create-frequency-tab\" [ngSwitch]=\"frequencyTab\">\r\n <div class=\"create-frequency-tab-head\">\r\n <ul class=\"navigation\">\r\n <li><button [class.active]=\"frequencyTab == 'weekly'\" (click)=\"changeTab('weekly')\">Weekly</button></li>\r\n <li><button [class.active]=\"frequencyTab == 'monthly'\" (click)=\"changeTab('monthly')\">Monthly</button></li>\r\n <li><button [class.active]=\"frequencyTab == 'quarterly'\" (click)=\"changeTab('quarterly')\">Quarterly</button></li>\r\n </ul>\r\n </div>\r\n <div class=\"create-frequency-tab-body vx-pl-4 vx-pr-4\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">Email Reminder Frequency:</div>\r\n <div class=\"checkbox-list\" *ngSwitchCase=\"'weekly'\">\r\n <div class=\"frequency-checkbox vx-d-flex vx-align-center\">\r\n <div class=\"frequency-checkbox-item vx-p-3 vx-pr-4 vx-d-flex vx-align-center\" *ngFor=\"let day of dayNames; let dayIndex = index\">\r\n <app-cs-checkbox (ngValueChange)=\"daySelectionChange($event, dayIndex)\" [ngValue]=\"selectedDays.includes(dayIndex)\">{{day}}</app-cs-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"checkbox-list month\" *ngSwitchCase=\"'monthly'\">\r\n <div class=\"frequency-top vx-d-flex vx-align-center\">\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">Day</div>\r\n <input type=\"number\" (focusout)=\"checkDateValidity(monthlyDate,'monthly')\" [(ngModel)]=\"monthlyDate\" class=\"countNum\" onkeydown=\"return event.keyCode !== 190\" min=\"1\" oninput=\"this.value = Math.abs(this.value)\">\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">of</div>\r\n </div>\r\n <div class=\"frequency-checkbox vx-d-flex vx-align-center vx-flex-wrap\">\r\n <div class=\"frequency-checkbox-item vx-p-3 vx-pr-4 vx-d-flex vx-align-center\" *ngFor=\"let month of monthNames; let monthIndex = index\">\r\n <app-cs-checkbox (ngValueChange)=\"monthSelectionChange($event, monthIndex)\" [ngValue]=\"selectedMonths.includes(monthIndex)\">{{month}}</app-cs-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"checkbox-list\" *ngSwitchCase=\"'quarterly'\">\r\n <ng-container *ngIf=\"showRadio\">\r\n <div class=\"frequency-top vx-d-flex vx-align-center\">\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">Day</div>\r\n <input type=\"number\" (focusout)=\"checkDateValidity(quarterlyDate,'quarterly')\" [(ngModel)]=\"quarterlyDate\" class=\"countNum\" onkeydown=\"return event.keyCode !== 190\" min=\"1\" oninput=\"this.value = Math.abs(this.value)\">\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">of</div>\r\n </div>\r\n <div class=\"frequency-checkbox vx-d-flex vx-align-center\">\r\n <div class=\"frequency-checkbox-item vx-p-3 vx-pr-4 vx-d-flex vx-align-center vx-w-100\" *ngFor=\"let quarter of quarters, let quarterIndex = index\">\r\n <app-cs-radio (checkedEvent)=\"quarterSelectionChange($event, quarterIndex)\" [checked]=\"selectedQuarter === quarterIndex\">{{quarter}}</app-cs-radio>\r\n </div>\r\n </div>\r\n </ng-container> \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"create-frequency-footer\">\r\n <app-dashboard-footer \r\n [footerDetails]=\"footerDetails\"\r\n (cancelEvent)=\"closeFrequencyPopup.emit()\"\r\n (submitEvent)=\"submitFrequency()\"\r\n ></app-dashboard-footer>\r\n </div>\r\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .create-frequency{background:#FFFFFF;border-right:1px solid #F1F1F1;position:fixed;inset:0 500px 0 0}::ng-deep .create-frequency-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .create-frequency-body{height:calc(100vh - 9.75rem);margin:0 auto 1rem;overflow:hidden;overflow-y:auto;width:calc(100% - 2.5rem)}::ng-deep .create-frequency-body::-webkit-scrollbar-track{background:transparent}::ng-deep .create-frequency-body-inner{width:54.5rem;margin:0 auto}@media screen and (max-width: 1366px){::ng-deep .create-frequency-body-inner{width:auto}}::ng-deep .create-frequency-tab-head{border:none!important;border-bottom:1px solid #f1f1f1!important;margin-bottom:1.5rem}::ng-deep .create-frequency-tab-head ul{padding:0;margin:0}::ng-deep .create-frequency-tab-head ul.navigation{display:flex}::ng-deep .create-frequency-tab-head ul.navigation li{list-style:none;padding:0;margin:0 1.5rem 0 0;display:flex;justify-content:center}::ng-deep .create-frequency-tab-head ul.navigation li button{background:transparent;border-radius:0;border:none;border-bottom:.125rem solid transparent;font-size:11px;font-weight:500;color:#747576;line-height:1.5rem;position:relative;text-transform:uppercase;cursor:pointer;padding:0}::ng-deep .create-frequency-tab-head ul.navigation li button.active{color:#1e5dd3;border-color:#1e5dd3}::ng-deep .create-frequency-tab-body .checkbox-list{border-radius:.25rem;border:1px solid #f1f1f1}::ng-deep .create-frequency-tab-body .checkbox-list .frequency-top{padding:12px;border-bottom:1px solid #F1F1F1}::ng-deep .create-frequency-tab-body .checkbox-list .frequency-top input.countNum{-webkit-appearance:textfield;-moz-appearance:textfield;border:none;border-bottom:1px solid #DBDBDB;color:#161b2f;display:inline-block;font-size:13px;text-align:center;width:2.75rem;padding:.125rem;margin:0 .5rem;outline:none}::ng-deep .create-frequency-tab-body .checkbox-list .frequency-checkbox{background:#fff;border-radius:.25rem}::ng-deep .create-frequency-tab-body .checkbox-list .frequency-checkbox-item{border-right:1px solid #f1f1f1;height:2.75rem}@media screen and (max-width: 1280px){::ng-deep .create-frequency-tab-body .checkbox-list .frequency-checkbox-item{padding:0 .5rem!important}}::ng-deep .create-frequency-tab-body .checkbox-list .frequency-checkbox-item:last-of-type{border-right:none}::ng-deep .create-frequency-tab-body .checkbox-list app-cs-checkbox,::ng-deep .create-frequency-tab-body .checkbox-list app-cs-radio{display:flex}::ng-deep .create-frequency-tab-body .checkbox-list app-cs-checkbox label span.value,::ng-deep .create-frequency-tab-body .checkbox-list app-cs-radio label span.value{font-size:12px!important;color:#161b2f!important;font-weight:400!important}::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item{width:calc(100% / 6)}::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:first-of-type,::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:nth-child(2),::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:nth-child(3),::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:nth-child(4),::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:nth-child(5),::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:nth-child(6){border-bottom:1px solid #f1f1f1}::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:nth-child(6){border-right:none}::ng-deep .create-frequency-footer{padding:0 2rem}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.CsCheckboxComponent, selector: "app-cs-checkbox", inputs: ["disabled", "ngValue", "value"], outputs: ["ngValueChange"] }, { kind: "component", type: i4.CsRadioComponent, selector: "app-cs-radio", inputs: ["disabled", "readonly", "name", "checked", "value"], outputs: ["checkedEvent"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.DashboardFooterComponent, selector: "app-dashboard-footer", inputs: ["footerDetails", "userButtonColor"], outputs: ["cancelEvent", "submitEvent", "deleteEvent"] }] });
|
|
286
291
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FrequencyComponent, decorators: [{
|
|
287
292
|
type: Component,
|
|
288
|
-
args: [{ selector: 'app-frequency', template: "<div class=\"frequency\">\r\n <div class=\"frequency-head vx-d-flex vx-align-center vx-justify-between vx-
|
|
293
|
+
args: [{ selector: 'app-frequency', template: "<div class=\"create-frequency\" [class.animate-slideInRight]=\"animation\">\r\n <div class=\"create-frequency-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4 vx-mb-4\">\r\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Frequency</div>\r\n </div>\r\n <div class=\"create-frequency-body vx-pl-4 vx-pr-4\">\r\n <div class=\"create-frequency-body-inner\">\r\n <div class=\"create-frequency-tab\" [ngSwitch]=\"frequencyTab\">\r\n <div class=\"create-frequency-tab-head\">\r\n <ul class=\"navigation\">\r\n <li><button [class.active]=\"frequencyTab == 'weekly'\" (click)=\"changeTab('weekly')\">Weekly</button></li>\r\n <li><button [class.active]=\"frequencyTab == 'monthly'\" (click)=\"changeTab('monthly')\">Monthly</button></li>\r\n <li><button [class.active]=\"frequencyTab == 'quarterly'\" (click)=\"changeTab('quarterly')\">Quarterly</button></li>\r\n </ul>\r\n </div>\r\n <div class=\"create-frequency-tab-body vx-pl-4 vx-pr-4\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">Email Reminder Frequency:</div>\r\n <div class=\"checkbox-list\" *ngSwitchCase=\"'weekly'\">\r\n <div class=\"frequency-checkbox vx-d-flex vx-align-center\">\r\n <div class=\"frequency-checkbox-item vx-p-3 vx-pr-4 vx-d-flex vx-align-center\" *ngFor=\"let day of dayNames; let dayIndex = index\">\r\n <app-cs-checkbox (ngValueChange)=\"daySelectionChange($event, dayIndex)\" [ngValue]=\"selectedDays.includes(dayIndex)\">{{day}}</app-cs-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"checkbox-list month\" *ngSwitchCase=\"'monthly'\">\r\n <div class=\"frequency-top vx-d-flex vx-align-center\">\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">Day</div>\r\n <input type=\"number\" (focusout)=\"checkDateValidity(monthlyDate,'monthly')\" [(ngModel)]=\"monthlyDate\" class=\"countNum\" onkeydown=\"return event.keyCode !== 190\" min=\"1\" oninput=\"this.value = Math.abs(this.value)\">\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">of</div>\r\n </div>\r\n <div class=\"frequency-checkbox vx-d-flex vx-align-center vx-flex-wrap\">\r\n <div class=\"frequency-checkbox-item vx-p-3 vx-pr-4 vx-d-flex vx-align-center\" *ngFor=\"let month of monthNames; let monthIndex = index\">\r\n <app-cs-checkbox (ngValueChange)=\"monthSelectionChange($event, monthIndex)\" [ngValue]=\"selectedMonths.includes(monthIndex)\">{{month}}</app-cs-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"checkbox-list\" *ngSwitchCase=\"'quarterly'\">\r\n <ng-container *ngIf=\"showRadio\">\r\n <div class=\"frequency-top vx-d-flex vx-align-center\">\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">Day</div>\r\n <input type=\"number\" (focusout)=\"checkDateValidity(quarterlyDate,'quarterly')\" [(ngModel)]=\"quarterlyDate\" class=\"countNum\" onkeydown=\"return event.keyCode !== 190\" min=\"1\" oninput=\"this.value = Math.abs(this.value)\">\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">of</div>\r\n </div>\r\n <div class=\"frequency-checkbox vx-d-flex vx-align-center\">\r\n <div class=\"frequency-checkbox-item vx-p-3 vx-pr-4 vx-d-flex vx-align-center vx-w-100\" *ngFor=\"let quarter of quarters, let quarterIndex = index\">\r\n <app-cs-radio (checkedEvent)=\"quarterSelectionChange($event, quarterIndex)\" [checked]=\"selectedQuarter === quarterIndex\">{{quarter}}</app-cs-radio>\r\n </div>\r\n </div>\r\n </ng-container> \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"create-frequency-footer\">\r\n <app-dashboard-footer \r\n [footerDetails]=\"footerDetails\"\r\n (cancelEvent)=\"closeFrequencyPopup.emit()\"\r\n (submitEvent)=\"submitFrequency()\"\r\n ></app-dashboard-footer>\r\n </div>\r\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .create-frequency{background:#FFFFFF;border-right:1px solid #F1F1F1;position:fixed;inset:0 500px 0 0}::ng-deep .create-frequency-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .create-frequency-body{height:calc(100vh - 9.75rem);margin:0 auto 1rem;overflow:hidden;overflow-y:auto;width:calc(100% - 2.5rem)}::ng-deep .create-frequency-body::-webkit-scrollbar-track{background:transparent}::ng-deep .create-frequency-body-inner{width:54.5rem;margin:0 auto}@media screen and (max-width: 1366px){::ng-deep .create-frequency-body-inner{width:auto}}::ng-deep .create-frequency-tab-head{border:none!important;border-bottom:1px solid #f1f1f1!important;margin-bottom:1.5rem}::ng-deep .create-frequency-tab-head ul{padding:0;margin:0}::ng-deep .create-frequency-tab-head ul.navigation{display:flex}::ng-deep .create-frequency-tab-head ul.navigation li{list-style:none;padding:0;margin:0 1.5rem 0 0;display:flex;justify-content:center}::ng-deep .create-frequency-tab-head ul.navigation li button{background:transparent;border-radius:0;border:none;border-bottom:.125rem solid transparent;font-size:11px;font-weight:500;color:#747576;line-height:1.5rem;position:relative;text-transform:uppercase;cursor:pointer;padding:0}::ng-deep .create-frequency-tab-head ul.navigation li button.active{color:#1e5dd3;border-color:#1e5dd3}::ng-deep .create-frequency-tab-body .checkbox-list{border-radius:.25rem;border:1px solid #f1f1f1}::ng-deep .create-frequency-tab-body .checkbox-list .frequency-top{padding:12px;border-bottom:1px solid #F1F1F1}::ng-deep .create-frequency-tab-body .checkbox-list .frequency-top input.countNum{-webkit-appearance:textfield;-moz-appearance:textfield;border:none;border-bottom:1px solid #DBDBDB;color:#161b2f;display:inline-block;font-size:13px;text-align:center;width:2.75rem;padding:.125rem;margin:0 .5rem;outline:none}::ng-deep .create-frequency-tab-body .checkbox-list .frequency-checkbox{background:#fff;border-radius:.25rem}::ng-deep .create-frequency-tab-body .checkbox-list .frequency-checkbox-item{border-right:1px solid #f1f1f1;height:2.75rem}@media screen and (max-width: 1280px){::ng-deep .create-frequency-tab-body .checkbox-list .frequency-checkbox-item{padding:0 .5rem!important}}::ng-deep .create-frequency-tab-body .checkbox-list .frequency-checkbox-item:last-of-type{border-right:none}::ng-deep .create-frequency-tab-body .checkbox-list app-cs-checkbox,::ng-deep .create-frequency-tab-body .checkbox-list app-cs-radio{display:flex}::ng-deep .create-frequency-tab-body .checkbox-list app-cs-checkbox label span.value,::ng-deep .create-frequency-tab-body .checkbox-list app-cs-radio label span.value{font-size:12px!important;color:#161b2f!important;font-weight:400!important}::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item{width:calc(100% / 6)}::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:first-of-type,::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:nth-child(2),::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:nth-child(3),::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:nth-child(4),::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:nth-child(5),::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:nth-child(6){border-bottom:1px solid #f1f1f1}::ng-deep .create-frequency-tab-body .checkbox-list.month .frequency-checkbox-item:nth-child(6){border-right:none}::ng-deep .create-frequency-footer{padding:0 2rem}\n"] }]
|
|
289
294
|
}], ctorParameters: function () { return [{ type: i1.SnackBarService }]; }, propDecorators: { savedFrequencyTab: [{
|
|
290
295
|
type: Input
|
|
291
296
|
}], savedFrequencies: [{
|
|
@@ -297,4 +302,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
297
302
|
}], saveFrequency: [{
|
|
298
303
|
type: Output
|
|
299
304
|
}] } });
|
|
300
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9mcmVxdWVuY3kvZnJlcXVlbmN5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9mcmVxdWVuY3kvZnJlcXVlbmN5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQVUxRixNQUFNLE9BQU8sa0JBQWtCO0lBNkI3QixZQUFvQixRQUF3QjtRQUF4QixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQTNCNUMsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFHbEIsaUJBQVksR0FBRyxRQUFRLENBQUM7UUFDeEIsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFDckIsYUFBUSxHQUFHLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDMUYsZUFBVSxHQUFHLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN4SSxhQUFRLEdBQUcsQ0FBQywrQkFBK0IsRUFBRSxpQ0FBaUMsRUFBRSxrQ0FBa0MsQ0FBQyxDQUFDO1FBQ3BILGlCQUFZLEdB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dEM7Z0JBQ0gsTUFBTTthQUNQO1lBQ0QsS0FBSyxXQUFXLENBQUMsQ0FBQztnQkFFaEIsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsRUFBQztvQkFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO2lCQUV2QztxQkFBTTtvQkFDTCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7aUJBQ3RDO2dCQUNILE1BQU07YUFDUDtTQUNGO0lBQ0gsQ0FBQzs7K0dBN1JZLGtCQUFrQjttR0FBbEIsa0JBQWtCLDJSQ1YvQiwrakhBaURNOzJGRHZDTyxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsZUFBZTtzR0FLaEIsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUdHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQVNJLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhc2hib2FyZEZvb3RlckNvbmZpZyB9IGZyb20gJy4uLy4uL3VpLWtpdC9kYXNoYm9hcmQtZm9vdGVyL2Rhc2hib2FyZC1mb290ZXItY29uZmlnJztcclxuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZnJlcXVlbmN5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZnJlcXVlbmN5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mcmVxdWVuY3kuY29tcG9uZW50Lmxlc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgc2F2ZWRGcmVxdWVuY3lUYWI6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBtb250aGx5RGF0ZSA9IDE7XHJcbiAgcXVhcnRlcmx5RGF0ZSA9IDE7XHJcbiAgQElucHV0KCkgc2F2ZWRGcmVxdWVuY2llczogYW55O1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkRGF0ZTogYW55O1xyXG4gIGZyZXF1ZW5jeVRhYiA9ICd3ZWVrbHknO1xyXG4gIHNob3dGcmVxdWVuY3kgPSB0cnVlO1xyXG4gIGRheU5hbWVzID0gWydNb25kYXknLCAnVHVlc2RheScsICdXZWRuZXNkYXknLCAnVGh1cnNkYXknLCAnRnJpZGF5JywgJ1NhdHVyZGF5JywgJ1N1bmRheSddO1xyXG4gIG1vbnRoTmFtZXMgPSBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXTtcclxuICBxdWFydGVycyA9IFsnSmFudWFyeSwgQXByaWwsIEp1bHksIE9jdG9iZXInLCAnRmVicnVhcnksIE1heSwgQXVndXN0LCBOb3ZlbWJlcicsICdNYXJjaCwgSnVuZSwgU2VwdGVtYmVyLCBEZWNlbWJlciddO1xyXG4gIHNlbGVjdGVkRGF5czogYW55W10gPSBbMF07XHJcbiAgc2VsZWN0ZWRNb250aHM6IGFueVtdID0gWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMV07XHJcbiAgc2VsZWN0ZWRRdWFydGVyID0gMDtcclxuICBAT3V0cHV0KCkgY2xvc2VGcmVxdWVuY3lQb3B1cCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBzYXZlRnJlcXVlbmN5ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgZm9vdGVyRGV0YWlsczogRGFzaGJvYXJkRm9vdGVyQ29uZmlnID0ge1xyXG4gICAgc2VsZWN0ZWREYXRhOiBbXSxcclxuICAgIG5vblJlbW92YWJsZUxpc3Q6W10sXHJcbiAgICBkaXNwbGF5RWxlbWVudEtleTogJycsXHJcbiAgICBlbGVtZW50SWQ6ICcnLFxyXG4gICAgc2luZ3VsYXJUZXh0OiAnJyxcclxuICAgIHBsdXJhbFRleHQ6ICcnLFxyXG4gICAgc2hvd0ZyZXF1ZW5jeTogdHJ1ZSxcclxuICAgIGZyZXF1ZW5jeVRleHQ6ICdZb3UgaGF2ZSBzZWxlY3RlZCBhIDxzdHJvbmc+JyArIHRoaXMuZnJlcXVlbmN5VGFiICsgJzwvc3Ryb25nPiBmcmVxdWVuY3kuJyxcclxuICAgIGlzRGlzYWJsZWQ6IGZhbHNlXHJcblxyXG4gIH07XHJcbiAgc2hvd1JhZGlvID0gdHJ1ZTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNuYWNrQmFyOlNuYWNrQmFyU2VydmljZSkgeyB9XHJcbiAgbmdPbkNoYW5nZXMoKXtcclxuICAgIHRoaXMuc2F2ZWRGcmVxdWVuY2llcyA9IFsuLi5uZXcgU2V0KHRoaXMuc2F2ZWRGcmVxdWVuY2llcyldXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNhdmVkRnJlcXVlbmN5VGFiKSB7XHJcbiAgICAgIHRoaXMuY2hhbmdlVGFiKHRoaXMuc2F2ZWRGcmVxdWVuY3lUYWIpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREYXRlKSB7XHJcbiAgICAgIHN3aXRjaCAodGhpcy5zYXZlZEZyZXF1ZW5jeVRhYikge1xyXG4gICAgICAgIGNhc2UgJ3dlZWtseSc6XHJcbiAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXlzID0gWy4uLm5ldyBTZXQodGhpcy5zYXZlZEZyZXF1ZW5jaWVzKV1cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ21vbnRobHknOlxyXG4gICAgICAgICB0aGlzLm1vbnRobHlEYXRlID0gdGhpcy5zZWxlY3RlZERhdGU7XHJcbiAgICAgICAgIHRoaXMuc2VsZWN0ZWRNb250aHMgPSBbLi4ubmV3IFNldCh0aGlzLnNhdmVkRnJlcXVlbmNpZXMpXVxyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3F1YXJ0ZXJseSc6XHJcbiAgICAgICAgICB0aGlzLnNob3dSYWRpbyA9IGZhbHNlO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd1JhZGlvID0gdHJ1ZVxyXG4gICAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICAgIHRoaXMucXVhcnRlcmx5RGF0ZSA9IHRoaXMuc2VsZWN0ZWREYXRlXHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkUXVhcnRlciA9IHRoaXMuc2F2ZWRGcmVxdWVuY2llcztcclxuXHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIGNsb3NlRnJlcXVlbmN5KCkge1xyXG4gICAgdGhpcy5jbG9zZUZyZXF1ZW5jeVBvcHVwLmVtaXQoKTtcclxuICB9XHJcbiAgZGF5U2VsZWN0aW9uQ2hhbmdlKGV2ZW50OiBhbnksIGluZGV4OiBhbnkpIHtcclxuICAgIGlmIChldmVudCkgeyAvL2NoZWNrYm94IHdhcyBzZWxlY3RlZFxyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF5cy5wdXNoKGluZGV4KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCB1bnNlbGVjdGVkRWxlbWVudEluZGV4ID0gdGhpcy5zZWxlY3RlZERheXMuaW5kZXhPZihpbmRleCk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXlzLnNwbGljZSh1bnNlbGVjdGVkRWxlbWVudEluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2hlY2tGcmVxdWVuY3lWYWxpZGl0eSgpO1xyXG4gIH1cclxuICBtb250aFNlbGVjdGlvbkNoYW5nZShldmVudDogYW55LCBpbmRleDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZE1vbnRocy5wdXNoKGluZGV4KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCB1bnNlbGVjdGVkRWxlbWVudEluZGV4ID0gdGhpcy5zZWxlY3RlZE1vbnRocy5pbmRleE9mKGluZGV4KTtcclxuICAgICAgdGhpcy5zZWxlY3RlZE1vbnRocy5zcGxpY2UodW5zZWxlY3RlZEVsZW1lbnRJbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNoZWNrRGF0ZVZhbGlkaXR5KHRoaXMubW9udGhseURhdGUsJ21vbnRobHknKVxyXG4gICAgdGhpcy5jaGVja0ZyZXF1ZW5jeVZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICBxdWFydGVyU2VsZWN0aW9uQ2hhbmdlKGV2ZW50OiBhbnksIGluZGV4OiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRRdWFydGVyID0gaW5kZXg7XHJcbiAgICB0aGlzLmNoZWNrRGF0ZVZhbGlkaXR5KHRoaXMucXVhcnRlcmx5RGF0ZSwncXVhcnRlcmx5Jyk7XHJcbiAgICB0aGlzLmNoZWNrRnJlcXVlbmN5VmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVRhYih0YWJWYWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeVRhYiA9IHRhYlZhbHVlO1xyXG4gICAgdGhpcy5mb290ZXJEZXRhaWxzLmZyZXF1ZW5jeVRleHQgPSAnWW91IGhhdmUgc2VsZWN0ZWQgYSA8c3Ryb25nPicgKyB0aGlzLmZyZXF1ZW5jeVRhYiArICc8L3N0cm9uZz4gZnJlcXVlbmN5Lic7XHJcbiAgICB0aGlzLmZvb3RlckRldGFpbHMuaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZXRUb0RlZmF1bHRWYWx1ZXMoKVxyXG4gICAgaWYgKHRoaXMuZnJlcXVlbmN5VGFiID09PSB0aGlzLnNhdmVkRnJlcXVlbmN5VGFiKSB7XHJcbiAgICAgIHN3aXRjaCAodGhpcy5mcmVxdWVuY3lUYWIpIHtcclxuICAgICAgICBjYXNlICd3ZWVrbHknOiB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF5cyA9IFsuLi50aGlzLnNhdmVkRnJlcXVlbmNpZXNdO1xyXG4gICAgICAgICAgdGhpcy5tb250aGx5RGF0ZSA9IDE7XHJcbiAgICAgICAgICB0aGlzLnF1YXJ0ZXJseURhdGUgPSAxO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgJ21vbnRobHknOiB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTW9udGhzID0gWy4uLnRoaXMuc2F2ZWRGcmVxdWVuY2llc107XHJcbiAgICAgICAgICB0aGlzLm1vbnRobHlEYXRlID0gdGhpcy5zZWxlY3RlZERhdGU7XHJcbiAgICAgICAgICB0aGlzLnF1YXJ0ZXJseURhdGUgPSAxO1xyXG4gICAgICAgICAgdGhpcy5jaGVja0RhdGVWYWxpZGl0eSh0aGlzLm1vbnRobHlEYXRlLCdtb250aGx5JylcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXNlICdxdWFydGVybHknOiB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkUXVhcnRlciA9IHRoaXMuc2F2ZWRGcmVxdWVuY2llcztcclxuICAgICAgICAgIHRoaXMucXVhcnRlcmx5RGF0ZSA9IHRoaXMuc2VsZWN0ZWREYXRlO1xyXG4gICAgICAgICAgdGhpcy5tb250aGx5RGF0ZSA9IDE7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrRGF0ZVZhbGlkaXR5KHRoaXMucXVhcnRlcmx5RGF0ZSwncXVhcnRlcmx5JylcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0VG9EZWZhdWx0VmFsdWVzKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZERheXMgPSBbMF07XHJcbiAgICB0aGlzLnNlbGVjdGVkTW9udGhzID0gWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMV07XHJcbiAgICB0aGlzLnNlbGVjdGVkUXVhcnRlciA9IDA7XHJcbiAgfVxyXG5cclxuICBzdWJtaXRGcmVxdWVuY3koKSB7XHJcbiAgICBsZXQgc3RyaW5nVmFsID0gXCJFdmVyeSBcIjtcclxuICAgIGxldCBmcmVxdWVuY2llcztcclxuICAgIGxldCBzZWxlY3RlZERhdGUgPSAxO1xyXG4gICAgc3dpdGNoICh0aGlzLmZyZXF1ZW5jeVRhYikge1xyXG4gICAgICBjYXNlICd3ZWVrbHknOiB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWREYXlzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXlzLnNvcnQoKTtcclxuICAgICAgICAgIGZyZXF1ZW5jaWVzID0gdGhpcy5zZWxlY3RlZERheXM7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF5cy5mb3JFYWNoKChkYXlJbmRleCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgc3RyaW5nVmFsICs9IGluZGV4ID09PSAwID8gdGhpcy5kYXlOYW1lc1tkYXlJbmRleF0gOiAnLCAnICsgdGhpcy5kYXlOYW1lc1tkYXlJbmRleF07XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyBub3RoaW5nIHdhcyBzZWxlY3RlZFxyXG4gICAgICAgICAgdGhpcy5jbG9zZUZyZXF1ZW5jeSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdtb250aGx5Jzoge1xyXG4gICAgICAgIHN0cmluZ1ZhbCA9IFwiIG9mIGV2ZXJ5IFwiO1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkTW9udGhzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIGZyZXF1ZW5jaWVzID0gdGhpcy5zZWxlY3RlZE1vbnRocztcclxuICAgICAgICAgIHRoaXMubW9udGhOYW1lcy5mb3JFYWNoKChtb250aE5hbWVzOiBzdHJpbmcsIG1vbnRoSW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZE1vbnRocy5pbmNsdWRlcyhtb250aEluZGV4KSkge1xyXG4gICAgICAgICAgICAgIHN0cmluZ1ZhbCArPSBtb250aEluZGV4ICA9PT0gMCA/IG1vbnRoTmFtZXMgOiAnLCAnICsgbW9udGhOYW1lcztcclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICBsZXQgbW9udGhEYXRlTmFtZTtcclxuICAgICAgICAgIGlmICh0aGlzLm1vbnRobHlEYXRlID09IDEpIHtcclxuICAgICAgICAgICAgbW9udGhEYXRlTmFtZSA9ICcxc3QnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmICh0aGlzLm1vbnRobHlEYXRlID09IDIpIHtcclxuICAgICAgICAgICAgbW9udGhEYXRlTmFtZSA9ICcybmQnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmICh0aGlzLm1vbnRobHlEYXRlID09IDMpIHtcclxuICAgICAgICAgICAgbW9udGhEYXRlTmFtZSA9ICczcmQnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbW9udGhEYXRlTmFtZSA9IHRoaXMubW9udGhseURhdGUgKyAndGgnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBzdHJpbmdWYWwgPSBtb250aERhdGVOYW1lICsgc3RyaW5nVmFsO1xyXG4gICAgICAgICAgc2VsZWN0ZWREYXRlID0gdGhpcy5tb250aGx5RGF0ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy8gbm90aGluZyB3YXMgc2VsZWN0ZWRcclxuICAgICAgICAgIHRoaXMuY2xvc2VGcmVxdWVuY3koKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAncXVhcnRlcmx5Jzoge1xyXG4gICAgICAgIHN0cmluZ1ZhbCA9IFwiIG9mIGV2ZXJ5IFwiO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFF1YXJ0ZXIgPj0gMCkge1xyXG4gICAgICAgICAgZnJlcXVlbmNpZXMgPSB0aGlzLnNlbGVjdGVkUXVhcnRlcjtcclxuICAgICAgICAgIHN0cmluZ1ZhbCArPSB0aGlzLnF1YXJ0ZXJzW3RoaXMuc2VsZWN0ZWRRdWFydGVyXTtcclxuICAgICAgICAgIHNlbGVjdGVkRGF0ZSA9IHRoaXMucXVhcnRlcmx5RGF0ZTtcclxuICAgICAgICAgIGxldCBtb250aERhdGVOYW1lO1xyXG4gICAgICAgICAgaWYgKHRoaXMucXVhcnRlcmx5RGF0ZSA9PSAxKSB7XHJcbiAgICAgICAgICAgIG1vbnRoRGF0ZU5hbWUgPSAnMXN0J1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSBpZiAodGhpcy5xdWFydGVybHlEYXRlID09IDIpIHtcclxuICAgICAgICAgICAgbW9udGhEYXRlTmFtZSA9ICcybmQnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmICh0aGlzLnF1YXJ0ZXJseURhdGUgPT0gMykge1xyXG4gICAgICAgICAgICBtb250aERhdGVOYW1lID0gJzNyZCdcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBtb250aERhdGVOYW1lID0gdGhpcy5xdWFydGVybHlEYXRlICsgJ3RoJ1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgc3RyaW5nVmFsID0gbW9udGhEYXRlTmFtZSArIHN0cmluZ1ZhbDtcclxuICAgICAgICAgIHNlbGVjdGVkRGF0ZSA9IHRoaXMucXVhcnRlcmx5RGF0ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy8gbm90aGluZyB3YXMgc2VsZWN0ZWRcclxuICAgICAgICAgIHRoaXMuY2xvc2VGcmVxdWVuY3koKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuc2F2ZUZyZXF1ZW5jeS5lbWl0KHtcclxuICAgICAgZnJlcXVlbmN5U3RyaW5nOiBzdHJpbmdWYWwsXHJcbiAgICAgIGZyZXF1ZW5jeVR5cGU6IHRoaXMuZnJlcXVlbmN5VGFiLFxyXG4gICAgICBmcmVxdWVuY2llczogZnJlcXVlbmNpZXMsXHJcbiAgICAgIHNlbGVjdGVkRGF0ZVxyXG4gICAgfSlcclxuICB9XHJcbiAgXHJcbiAgY2hlY2tEYXRlVmFsaWRpdHkoZGF0ZTpudW1iZXIsIHR5cGU6c3RyaW5nKXtcclxuICAgIGlmKGRhdGU+MzEgfHwgZGF0ZTwxKXtcclxuICAgICAgdGhpcy5zbmFja0Jhci5zaG93KCdTZWxlY3QgdmFsaWQgZGF0ZS4nLCdhbGVydCcpO1xyXG4gICAgICB0aGlzLmZvb3RlckRldGFpbHMuaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgcmV0dXJuXHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5mb290ZXJEZXRhaWxzLmlzRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgY29uc3QgIG1vbnRoTGlzdD1be25hbWU6J0phbnVhcnknLG1heERheXM6MzEsdmFsdWU6MH0se25hbWU6J0ZlYnJ1YXJ5JyxtYXhEYXlzOjI4LHZhbHVlOjF9LHtuYW1lOidNYXJjaCcsbWF4RGF5czozMSx2YWx1ZToyfSxcclxuICAge25hbWU6J0FwcmlsJyxtYXhEYXlzOjMwLHZhbHVlOjN9LHtuYW1lOidNYXknLG1heERheXM6MzEsdmFsdWU6NH0se25hbWU6J0p1bmUnLG1heERheXM6MzAsdmFsdWU6NX0sXHJcbiAgIHtuYW1lOidKdWx5JyxtYXhEYXlzOjMxLHZhbHVlOjZ9LHtuYW1lOidBdWd1c3QnLG1heERheXM6MzEsdmFsdWU6N30se25hbWU6J1NlcHRlbWJlcicsbWF4RGF5czozMCx2YWx1ZTo4fSxcclxuICAge25hbWU6J09jdG9iZXInLG1heERheXM6MzEsdmFsdWU6OX0se25hbWU6J05vdmVtYmVyJyxtYXhEYXlzOjMwLHZhbHVlOjEwfSx7bmFtZTonRGVjZW1iZXInLG1heERheXM6MzEsdmFsdWU6MTF9XVxyXG4gIHN3aXRjaCAodHlwZSkge1xyXG4gICAgY2FzZSAnbW9udGhseSc6XHJcbiAgICAgIGlmKHRoaXMuc2VsZWN0ZWRNb250aHMubGVuZ3RoPT0xKXtcclxuICAgICAgICBjb25zdCBpbmRleCA9IG1vbnRoTGlzdC5maW5kSW5kZXgoKGVsZTphbnkpPT5lbGUudmFsdWU9PXRoaXMuc2VsZWN0ZWRNb250aHNbMF0pO1xyXG4gICAgICAgIGlmKGRhdGU8PW1vbnRoTGlzdFtpbmRleF0ubWF4RGF5cyl7XHJcbiAgICAgICAgICB0aGlzLmZvb3RlckRldGFpbHMuaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgIFxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy5zbmFja0Jhci5zaG93KCdTZWxlY3QgdmFsaWQgZGF0ZS4nLCdhbGVydCcpO1xyXG4gICAgICAgICAgdGhpcy5mb290ZXJEZXRhaWxzLmlzRGlzYWJsZWQgPSB0cnVlOyBcclxuICAgICAgICB9XHJcbiAgICAgIH1lbHNlIGlmKHRoaXMuc2VsZWN0ZWRNb250aHMubGVuZ3RoPT0wKXtcclxuICAgICAgICB0aGlzLmZvb3RlckRldGFpbHMuaXNEaXNhYmxlZCA9IHRydWU7IFxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLmZvb3RlckRldGFpbHMuaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLmZvb3RlckRldGFpbHMuaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICB9XHJcblxyXG59XHJcblxyXG5jaGVja0ZyZXF1ZW5jeVZhbGlkaXR5KCl7XHJcbiAgc3dpdGNoICh0aGlzLmZyZXF1ZW5jeVRhYikge1xyXG4gICAgY2FzZSAnd2Vla2x5Jzoge1xyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZERheXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuZm9vdGVyRGV0YWlscy5pc0Rpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZm9vdGVyRGV0YWlscy5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBicmVhaztcclxuICAgIH1cclxuICAgIGNhc2UgJ21vbnRobHknOiB7XHJcbiAgIFxyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkTW9udGhzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMuZm9vdGVyRGV0YWlscy5pc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZm9vdGVyRGV0YWlscy5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgY2FzZSAncXVhcnRlcmx5Jzoge1xyXG5cclxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRRdWFydGVyID49IDApe1xyXG4gICAgICAgICAgdGhpcy5mb290ZXJEZXRhaWxzLmlzRGlzYWJsZWQgPSBmYWxzZTtcclxuICBcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5mb290ZXJEZXRhaWxzLmlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfSBcclxufVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWhlYWQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcC0zXCI+XHJcbiAgICAgICAgPGgzIGNsYXNzPVwiZnJlcXVlbmN5LXRpdGxlXCI+U2VsZWN0IGEgRnJlcXVlbmN5PC9oMz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1ib2R5XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS10YWJcIiBbbmdTd2l0Y2hdPVwiZnJlcXVlbmN5VGFiXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktdGFiLWhlYWRcIj5cclxuICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cIm5hdmlnYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGk+PGJ1dHRvbiBbY2xhc3MuYWN0aXZlXT1cImZyZXF1ZW5jeVRhYiA9PSAnd2Vla2x5J1wiIChjbGljayk9XCJjaGFuZ2VUYWIoJ3dlZWtseScpXCI+V2Vla2x5PC9idXR0b24+PC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8bGk+PGJ1dHRvbiBbY2xhc3MuYWN0aXZlXT1cImZyZXF1ZW5jeVRhYiA9PSAnbW9udGhseSdcIiAoY2xpY2spPVwiY2hhbmdlVGFiKCdtb250aGx5JylcIj5Nb250aGx5PC9idXR0b24+PC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8bGk+PGJ1dHRvbiBbY2xhc3MuYWN0aXZlXT1cImZyZXF1ZW5jeVRhYiA9PSAncXVhcnRlcmx5J1wiIChjbGljayk9XCJjaGFuZ2VUYWIoJ3F1YXJ0ZXJseScpXCI+UXVhcnRlcmx5PC9idXR0b24+PC9saT5cclxuICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LXRhYi1ib2R5XCIgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94LWxpc3RcIiAqbmdTd2l0Y2hDYXNlPVwiJ3dlZWtseSdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWNoZWNrYm94IHZ4LWQtZmxleCB2eC1qdXN0aWZ5LWJldHdlZW4gdngtZmxleC13cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtY2hlY2tib3ggKm5nRm9yID0gXCJsZXQgZGF5IG9mIGRheU5hbWVzOyBsZXQgZGF5SW5kZXggPSBpbmRleFwiIChuZ1ZhbHVlQ2hhbmdlKT1cImRheVNlbGVjdGlvbkNoYW5nZSgkZXZlbnQsIGRheUluZGV4KVwiIFtuZ1ZhbHVlXT1cInNlbGVjdGVkRGF5cy5pbmNsdWRlcyhkYXlJbmRleClcIj57e2RheX19PC9hcHAtY3MtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2JveC1saXN0IG1vbnRoXCIgKm5nU3dpdGNoQ2FzZT1cIidtb250aGx5J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktdG9wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+RGF5IDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgKGZvY3Vzb3V0KT1cImNoZWNrRGF0ZVZhbGlkaXR5KG1vbnRobHlEYXRlLCdtb250aGx5JylcIiBbKG5nTW9kZWwpXT1cIm1vbnRobHlEYXRlXCIgY2xhc3M9XCJkYXktY291bnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbmtleWRvd249XCJyZXR1cm4gZXZlbnQua2V5Q29kZSAhPT0gMTkwXCIgbWluPVwiMVwiIG9uaW5wdXQ9XCJ0aGlzLnZhbHVlID0gTWF0aC5hYnModGhpcy52YWx1ZSlcIj4gb2Y8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1jaGVja2JveCB2eC1kLWZsZXggdngtanVzdGlmeS1iZXR3ZWVuIHZ4LWZsZXgtd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94ICpuZ0ZvciA9IFwibGV0IG1vbnRoIG9mIG1vbnRoTmFtZXM7IGxldCBtb250aEluZGV4ID0gaW5kZXhcIiAobmdWYWx1ZUNoYW5nZSk9XCJtb250aFNlbGVjdGlvbkNoYW5nZSgkZXZlbnQsIG1vbnRoSW5kZXgpXCIgW25nVmFsdWVdPVwic2VsZWN0ZWRNb250aHMuaW5jbHVkZXMobW9udGhJbmRleClcIj57e21vbnRofX08L2FwcC1jcy1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94LWxpc3RcIiAqbmdTd2l0Y2hDYXNlPVwiJ3F1YXJ0ZXJseSdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1JhZGlvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktdG9wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkRheSA8aW5wdXQgdHlwZT1cIm51bWJlclwiICAoZm9jdXNvdXQpPVwiY2hlY2tEYXRlVmFsaWRpdHkocXVhcnRlcmx5RGF0ZSwncXVhcnRlcmx5JylcIiBbKG5nTW9kZWwpXT1cInF1YXJ0ZXJseURhdGVcIiBjbGFzcz1cImRheS1jb3VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbmtleWRvd249XCJyZXR1cm4gZXZlbnQua2V5Q29kZSAhPT0gMTkwXCIgbWluPVwiMVwiIG9uaW5wdXQ9XCJ0aGlzLnZhbHVlID0gTWF0aC5hYnModGhpcy52YWx1ZSlcIj4gb2Y8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWNoZWNrYm94IHZ4LWQtZmxleCB2eC1qdXN0aWZ5LWJldHdlZW4gdngtZmxleC13cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLXJhZGlvICpuZ0ZvciA9IFwibGV0IHF1YXJ0ZXIgb2YgcXVhcnRlcnMsIGxldCBxdWFydGVySW5kZXggPSBpbmRleFwiIChjaGVja2VkRXZlbnQpPVwicXVhcnRlclNlbGVjdGlvbkNoYW5nZSgkZXZlbnQsIHF1YXJ0ZXJJbmRleClcIiBbY2hlY2tlZF09XCJzZWxlY3RlZFF1YXJ0ZXIgPT09IHF1YXJ0ZXJJbmRleFwiPnt7cXVhcnRlcn19PC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZm9vdGVyXCI+XHJcbiAgICAgICAgPGFwcC1kYXNoYm9hcmQtZm9vdGVyIFxyXG4gICAgICAgIFtmb290ZXJEZXRhaWxzXT1cImZvb3RlckRldGFpbHNcIlxyXG4gICAgICAgIChjYW5jZWxFdmVudCk9XCJjbG9zZUZyZXF1ZW5jeVBvcHVwLmVtaXQoKVwiXHJcbiAgICAgICAgIChzdWJtaXRFdmVudCk9XCJzdWJtaXRGcmVxdWVuY3koKVwiXHJcbiAgICAgICAgICA+PC9hcHAtZGFzaGJvYXJkLWZvb3Rlcj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
305
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9mcmVxdWVuY3kvZnJlcXVlbmN5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9mcmVxdWVuY3kvZnJlcXVlbmN5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQVUxRixNQUFNLE9BQU8sa0JBQWtCO0lBOEI3QixZQUFvQixRQUF3QjtRQUF4QixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQTdCNUMsY0FBUyxHQUFHLElBQUksQ0FBQztRQUVqQixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUdsQixpQkFBWSxHQUFHLFFBQVEsQ0FBQztRQUN4QixrQkFBYSxHQUFHLElBQUksQ0FBQztRQUNyQixhQUFRLEdBQUcsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMxRixlQUFVLEdBQUcsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3hJLGFBQVEsR0FBRyxDQUFDLCtCQUErQixFQUFFLGlDQUFpQyxFQUFFLGtDQUFr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QUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUNsQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7aUJBRXZDO3FCQUFNO29CQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztpQkFDdEM7Z0JBQ0gsTUFBTTthQUNQO1lBQ0QsS0FBSyxXQUFXLENBQUMsQ0FBQztnQkFFaEIsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsRUFBQztvQkFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO2lCQUV2QztxQkFBTTtvQkFDTCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7aUJBQ3RDO2dCQUNILE1BQU07YUFDUDtTQUNGO0lBQ0gsQ0FBQzs7K0dBbFNZLGtCQUFrQjttR0FBbEIsa0JBQWtCLDJSQ1YvQiw0ckpBNERNOzJGRGxETyxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsZUFBZTtzR0FNaEIsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUdHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQVNJLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhc2hib2FyZEZvb3RlckNvbmZpZyB9IGZyb20gJy4uLy4uL3VpLWtpdC9kYXNoYm9hcmQtZm9vdGVyL2Rhc2hib2FyZC1mb290ZXItY29uZmlnJztcclxuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZnJlcXVlbmN5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZnJlcXVlbmN5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mcmVxdWVuY3kuY29tcG9uZW50Lmxlc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uQ2hhbmdlcyB7XHJcbiAgYW5pbWF0aW9uID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzYXZlZEZyZXF1ZW5jeVRhYjogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIG1vbnRobHlEYXRlID0gMTtcclxuICBxdWFydGVybHlEYXRlID0gMTtcclxuICBASW5wdXQoKSBzYXZlZEZyZXF1ZW5jaWVzOiBhbnk7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWREYXRlOiBhbnk7XHJcbiAgZnJlcXVlbmN5VGFiID0gJ3dlZWtseSc7XHJcbiAgc2hvd0ZyZXF1ZW5jeSA9IHRydWU7XHJcbiAgZGF5TmFtZXMgPSBbJ01vbmRheScsICdUdWVzZGF5JywgJ1dlZG5lc2RheScsICdUaHVyc2RheScsICdGcmlkYXknLCAnU2F0dXJkYXknLCAnU3VuZGF5J107XHJcbiAgbW9udGhOYW1lcyA9IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddO1xyXG4gIHF1YXJ0ZXJzID0gWydKYW51YXJ5LCBBcHJpbCwgSnVseSwgT2N0b2JlcicsICdGZWJydWFyeSwgTWF5LCBBdWd1c3QsIE5vdmVtYmVyJywgJ01hcmNoLCBKdW5lLCBTZXB0ZW1iZXIsIERlY2VtYmVyJ107XHJcbiAgc2VsZWN0ZWREYXlzOiBhbnlbXSA9IFswXTtcclxuICBzZWxlY3RlZE1vbnRoczogYW55W10gPSBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExXTtcclxuICBzZWxlY3RlZFF1YXJ0ZXIgPSAwO1xyXG4gIEBPdXRwdXQoKSBjbG9zZUZyZXF1ZW5jeVBvcHVwID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIHNhdmVGcmVxdWVuY3kgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBmb290ZXJEZXRhaWxzOiBEYXNoYm9hcmRGb290ZXJDb25maWcgPSB7XHJcbiAgICBzZWxlY3RlZERhdGE6IFtdLFxyXG4gICAgbm9uUmVtb3ZhYmxlTGlzdDpbXSxcclxuICAgIGRpc3BsYXlFbGVtZW50S2V5OiAnJyxcclxuICAgIGVsZW1lbnRJZDogJycsXHJcbiAgICBzaW5ndWxhclRleHQ6ICcnLFxyXG4gICAgcGx1cmFsVGV4dDogJycsXHJcbiAgICBzaG93RnJlcXVlbmN5OiB0cnVlLFxyXG4gICAgZnJlcXVlbmN5VGV4dDogJ1lvdSBoYXZlIHNlbGVjdGVkIGEgPHN0cm9uZz4nICsgdGhpcy5mcmVxdWVuY3lUYWIgKyAnPC9zdHJvbmc+IGZyZXF1ZW5jeS4nLFxyXG4gICAgaXNEaXNhYmxlZDogZmFsc2VcclxuXHJcbiAgfTtcclxuICBzaG93UmFkaW8gPSB0cnVlO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc25hY2tCYXI6U25hY2tCYXJTZXJ2aWNlKSB7IH1cclxuICBuZ09uQ2hhbmdlcygpe1xyXG4gICAgdGhpcy5zYXZlZEZyZXF1ZW5jaWVzID0gWy4uLm5ldyBTZXQodGhpcy5zYXZlZEZyZXF1ZW5jaWVzKV1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hbmltYXRpb24gPSB0cnVlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgICB9LCAzMDApO1xyXG4gICAgaWYgKHRoaXMuc2F2ZWRGcmVxdWVuY3lUYWIpIHtcclxuICAgICAgdGhpcy5jaGFuZ2VUYWIodGhpcy5zYXZlZEZyZXF1ZW5jeVRhYik7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZERhdGUpIHtcclxuICAgICAgc3dpdGNoICh0aGlzLnNhdmVkRnJlcXVlbmN5VGFiKSB7XHJcbiAgICAgICAgY2FzZSAnd2Vla2x5JzpcclxuICAgICAgICAgdGhpcy5zZWxlY3RlZERheXMgPSBbLi4ubmV3IFNldCh0aGlzLnNhdmVkRnJlcXVlbmNpZXMpXVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnbW9udGhseSc6XHJcbiAgICAgICAgIHRoaXMubW9udGhseURhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZTtcclxuICAgICAgICAgdGhpcy5zZWxlY3RlZE1vbnRocyA9IFsuLi5uZXcgU2V0KHRoaXMuc2F2ZWRGcmVxdWVuY2llcyldXHJcblxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAncXVhcnRlcmx5JzpcclxuICAgICAgICAgIHRoaXMuc2hvd1JhZGlvID0gZmFsc2U7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zaG93UmFkaW8gPSB0cnVlXHJcbiAgICAgICAgICB9LCAxMDApO1xyXG4gICAgICAgICAgdGhpcy5xdWFydGVybHlEYXRlID0gdGhpcy5zZWxlY3RlZERhdGVcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRRdWFydGVyID0gdGhpcy5zYXZlZEZyZXF1ZW5jaWVzO1xyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgY2xvc2VGcmVxdWVuY3koKSB7XHJcbiAgICB0aGlzLmNsb3NlRnJlcXVlbmN5UG9wdXAuZW1pdCgpO1xyXG4gIH1cclxuICBkYXlTZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IGFueSwgaW5kZXg6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50KSB7IC8vY2hlY2tib3ggd2FzIHNlbGVjdGVkXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXlzLnB1c2goaW5kZXgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IHVuc2VsZWN0ZWRFbGVtZW50SW5kZXggPSB0aGlzLnNlbGVjdGVkRGF5cy5pbmRleE9mKGluZGV4KTtcclxuICAgICAgdGhpcy5zZWxlY3RlZERheXMuc3BsaWNlKHVuc2VsZWN0ZWRFbGVtZW50SW5kZXgsIDEpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jaGVja0ZyZXF1ZW5jeVZhbGlkaXR5KCk7XHJcbiAgfVxyXG4gIG1vbnRoU2VsZWN0aW9uQ2hhbmdlKGV2ZW50OiBhbnksIGluZGV4OiBhbnkpIHtcclxuICAgIGlmIChldmVudCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkTW9udGhzLnB1c2goaW5kZXgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IHVuc2VsZWN0ZWRFbGVtZW50SW5kZXggPSB0aGlzLnNlbGVjdGVkTW9udGhzLmluZGV4T2YoaW5kZXgpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkTW9udGhzLnNwbGljZSh1bnNlbGVjdGVkRWxlbWVudEluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2hlY2tEYXRlVmFsaWRpdHkodGhpcy5tb250aGx5RGF0ZSwnbW9udGhseScpXHJcbiAgICB0aGlzLmNoZWNrRnJlcXVlbmN5VmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIHF1YXJ0ZXJTZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IGFueSwgaW5kZXg6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFF1YXJ0ZXIgPSBpbmRleDtcclxuICAgIHRoaXMuY2hlY2tEYXRlVmFsaWRpdHkodGhpcy5xdWFydGVybHlEYXRlLCdxdWFydGVybHknKTtcclxuICAgIHRoaXMuY2hlY2tGcmVxdWVuY3lWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlVGFiKHRhYlZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZnJlcXVlbmN5VGFiID0gdGFiVmFsdWU7XHJcbiAgICB0aGlzLmZvb3RlckRldGFpbHMuZnJlcXVlbmN5VGV4dCA9ICdZb3UgaGF2ZSBzZWxlY3RlZCBhIDxzdHJvbmc+JyArIHRoaXMuZnJlcXVlbmN5VGFiICsgJzwvc3Ryb25nPiBmcmVxdWVuY3kuJztcclxuICAgIHRoaXMuZm9vdGVyRGV0YWlscy5pc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLnNldFRvRGVmYXVsdFZhbHVlcygpXHJcbiAgICBpZiAodGhpcy5mcmVxdWVuY3lUYWIgPT09IHRoaXMuc2F2ZWRGcmVxdWVuY3lUYWIpIHtcclxuICAgICAgc3dpdGNoICh0aGlzLmZyZXF1ZW5jeVRhYikge1xyXG4gICAgICAgIGNhc2UgJ3dlZWtseSc6IHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXlzID0gWy4uLnRoaXMuc2F2ZWRGcmVxdWVuY2llc107XHJcbiAgICAgICAgICB0aGlzLm1vbnRobHlEYXRlID0gMTtcclxuICAgICAgICAgIHRoaXMucXVhcnRlcmx5RGF0ZSA9IDE7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAnbW9udGhseSc6IHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRNb250aHMgPSBbLi4udGhpcy5zYXZlZEZyZXF1ZW5jaWVzXTtcclxuICAgICAgICAgIHRoaXMubW9udGhseURhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZTtcclxuICAgICAgICAgIHRoaXMucXVhcnRlcmx5RGF0ZSA9IDE7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrRGF0ZVZhbGlkaXR5KHRoaXMubW9udGhseURhdGUsJ21vbnRobHknKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgJ3F1YXJ0ZXJseSc6IHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRRdWFydGVyID0gdGhpcy5zYXZlZEZyZXF1ZW5jaWVzO1xyXG4gICAgICAgICAgdGhpcy5xdWFydGVybHlEYXRlID0gdGhpcy5zZWxlY3RlZERhdGU7XHJcbiAgICAgICAgICB0aGlzLm1vbnRobHlEYXRlID0gMTtcclxuICAgICAgICAgIHRoaXMuY2hlY2tEYXRlVmFsaWRpdHkodGhpcy5xdWFydGVybHlEYXRlLCdxdWFydGVybHknKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRUb0RlZmF1bHRWYWx1ZXMoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF5cyA9IFswXTtcclxuICAgIHRoaXMuc2VsZWN0ZWRNb250aHMgPSBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExXTtcclxuICAgIHRoaXMuc2VsZWN0ZWRRdWFydGVyID0gMDtcclxuICB9XHJcblxyXG4gIHN1Ym1pdEZyZXF1ZW5jeSgpIHtcclxuICAgIGxldCBzdHJpbmdWYWwgPSBcIkV2ZXJ5IFwiO1xyXG4gICAgbGV0IGZyZXF1ZW5jaWVzO1xyXG4gICAgbGV0IHNlbGVjdGVkRGF0ZSA9IDE7XHJcbiAgICBzd2l0Y2ggKHRoaXMuZnJlcXVlbmN5VGFiKSB7XHJcbiAgICAgIGNhc2UgJ3dlZWtseSc6IHtcclxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZERheXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZERheXMuc29ydCgpO1xyXG4gICAgICAgICAgZnJlcXVlbmNpZXMgPSB0aGlzLnNlbGVjdGVkRGF5cztcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXlzLmZvckVhY2goKGRheUluZGV4LCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBzdHJpbmdWYWwgKz0gaW5kZXggPT09IDAgPyB0aGlzLmRheU5hbWVzW2RheUluZGV4XSA6ICcsICcgKyB0aGlzLmRheU5hbWVzW2RheUluZGV4XTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIG5vdGhpbmcgd2FzIHNlbGVjdGVkXHJcbiAgICAgICAgICB0aGlzLmNsb3NlRnJlcXVlbmN5KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ21vbnRobHknOiB7XHJcbiAgICAgICAgc3RyaW5nVmFsID0gXCIgb2YgZXZlcnkgXCI7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRNb250aHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgZnJlcXVlbmNpZXMgPSB0aGlzLnNlbGVjdGVkTW9udGhzO1xyXG4gICAgICAgICAgdGhpcy5tb250aE5hbWVzLmZvckVhY2goKG1vbnRoTmFtZXM6IHN0cmluZywgbW9udGhJbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkTW9udGhzLmluY2x1ZGVzKG1vbnRoSW5kZXgpKSB7XHJcbiAgICAgICAgICAgICAgc3RyaW5nVmFsICs9IG1vbnRoSW5kZXggID09PSAwID8gbW9udGhOYW1lcyA6ICcsICcgKyBtb250aE5hbWVzO1xyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIGxldCBtb250aERhdGVOYW1lO1xyXG4gICAgICAgICAgaWYgKHRoaXMubW9udGhseURhdGUgPT0gMSkge1xyXG4gICAgICAgICAgICBtb250aERhdGVOYW1lID0gJzFzdCdcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2UgaWYgKHRoaXMubW9udGhseURhdGUgPT0gMikge1xyXG4gICAgICAgICAgICBtb250aERhdGVOYW1lID0gJzJuZCdcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2UgaWYgKHRoaXMubW9udGhseURhdGUgPT0gMykge1xyXG4gICAgICAgICAgICBtb250aERhdGVOYW1lID0gJzNyZCdcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBtb250aERhdGVOYW1lID0gdGhpcy5tb250aGx5RGF0ZSArICd0aCdcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHN0cmluZ1ZhbCA9IG1vbnRoRGF0ZU5hbWUgKyBzdHJpbmdWYWw7XHJcbiAgICAgICAgICBzZWxlY3RlZERhdGUgPSB0aGlzLm1vbnRobHlEYXRlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyBub3RoaW5nIHdhcyBzZWxlY3RlZFxyXG4gICAgICAgICAgdGhpcy5jbG9zZUZyZXF1ZW5jeSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdxdWFydGVybHknOiB7XHJcbiAgICAgICAgc3RyaW5nVmFsID0gXCIgb2YgZXZlcnkgXCI7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkUXVhcnRlciA+PSAwKSB7XHJcbiAgICAgICAgICBmcmVxdWVuY2llcyA9IHRoaXMuc2VsZWN0ZWRRdWFydGVyO1xyXG4gICAgICAgICAgc3RyaW5nVmFsICs9IHRoaXMucXVhcnRlcnNbdGhpcy5zZWxlY3RlZFF1YXJ0ZXJdO1xyXG4gICAgICAgICAgc2VsZWN0ZWREYXRlID0gdGhpcy5xdWFydGVybHlEYXRlO1xyXG4gICAgICAgICAgbGV0IG1vbnRoRGF0ZU5hbWU7XHJcbiAgICAgICAgICBpZiAodGhpcy5xdWFydGVybHlEYXRlID09IDEpIHtcclxuICAgICAgICAgICAgbW9udGhEYXRlTmFtZSA9ICcxc3QnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmICh0aGlzLnF1YXJ0ZXJseURhdGUgPT0gMikge1xyXG4gICAgICAgICAgICBtb250aERhdGVOYW1lID0gJzJuZCdcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2UgaWYgKHRoaXMucXVhcnRlcmx5RGF0ZSA9PSAzKSB7XHJcbiAgICAgICAgICAgIG1vbnRoRGF0ZU5hbWUgPSAnM3JkJ1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIG1vbnRoRGF0ZU5hbWUgPSB0aGlzLnF1YXJ0ZXJseURhdGUgKyAndGgnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBzdHJpbmdWYWwgPSBtb250aERhdGVOYW1lICsgc3RyaW5nVmFsO1xyXG4gICAgICAgICAgc2VsZWN0ZWREYXRlID0gdGhpcy5xdWFydGVybHlEYXRlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyBub3RoaW5nIHdhcyBzZWxlY3RlZFxyXG4gICAgICAgICAgdGhpcy5jbG9zZUZyZXF1ZW5jeSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5zYXZlRnJlcXVlbmN5LmVtaXQoe1xyXG4gICAgICBmcmVxdWVuY3lTdHJpbmc6IHN0cmluZ1ZhbCxcclxuICAgICAgZnJlcXVlbmN5VHlwZTogdGhpcy5mcmVxdWVuY3lUYWIsXHJcbiAgICAgIGZyZXF1ZW5jaWVzOiBmcmVxdWVuY2llcyxcclxuICAgICAgc2VsZWN0ZWREYXRlXHJcbiAgICB9KVxyXG4gIH1cclxuICBcclxuICBjaGVja0RhdGVWYWxpZGl0eShkYXRlOm51bWJlciwgdHlwZTpzdHJpbmcpe1xyXG4gICAgaWYoZGF0ZT4zMSB8fCBkYXRlPDEpe1xyXG4gICAgICB0aGlzLnNuYWNrQmFyLnNob3coJ1NlbGVjdCB2YWxpZCBkYXRlLicsJ2FsZXJ0Jyk7XHJcbiAgICAgIHRoaXMuZm9vdGVyRGV0YWlscy5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICByZXR1cm5cclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmZvb3RlckRldGFpbHMuaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICBjb25zdCAgbW9udGhMaXN0PVt7bmFtZTonSmFudWFyeScsbWF4RGF5czozMSx2YWx1ZTowfSx7bmFtZTonRmVicnVhcnknLG1heERheXM6MjgsdmFsdWU6MX0se25hbWU6J01hcmNoJyxtYXhEYXlzOjMxLHZhbHVlOjJ9LFxyXG4gICB7bmFtZTonQXByaWwnLG1heERheXM6MzAsdmFsdWU6M30se25hbWU6J01heScsbWF4RGF5czozMSx2YWx1ZTo0fSx7bmFtZTonSnVuZScsbWF4RGF5czozMCx2YWx1ZTo1fSxcclxuICAge25hbWU6J0p1bHknLG1heERheXM6MzEsdmFsdWU6Nn0se25hbWU6J0F1Z3VzdCcsbWF4RGF5czozMSx2YWx1ZTo3fSx7bmFtZTonU2VwdGVtYmVyJyxtYXhEYXlzOjMwLHZhbHVlOjh9LFxyXG4gICB7bmFtZTonT2N0b2JlcicsbWF4RGF5czozMSx2YWx1ZTo5fSx7bmFtZTonTm92ZW1iZXInLG1heERheXM6MzAsdmFsdWU6MTB9LHtuYW1lOidEZWNlbWJlcicsbWF4RGF5czozMSx2YWx1ZToxMX1dXHJcbiAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICBjYXNlICdtb250aGx5JzpcclxuICAgICAgaWYodGhpcy5zZWxlY3RlZE1vbnRocy5sZW5ndGg9PTEpe1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gbW9udGhMaXN0LmZpbmRJbmRleCgoZWxlOmFueSk9PmVsZS52YWx1ZT09dGhpcy5zZWxlY3RlZE1vbnRoc1swXSk7XHJcbiAgICAgICAgaWYoZGF0ZTw9bW9udGhMaXN0W2luZGV4XS5tYXhEYXlzKXtcclxuICAgICAgICAgIHRoaXMuZm9vdGVyRGV0YWlscy5pc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgXHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICB0aGlzLnNuYWNrQmFyLnNob3coJ1NlbGVjdCB2YWxpZCBkYXRlLicsJ2FsZXJ0Jyk7XHJcbiAgICAgICAgICB0aGlzLmZvb3RlckRldGFpbHMuaXNEaXNhYmxlZCA9IHRydWU7IFxyXG4gICAgICAgIH1cclxuICAgICAgfWVsc2UgaWYodGhpcy5zZWxlY3RlZE1vbnRocy5sZW5ndGg9PTApe1xyXG4gICAgICAgIHRoaXMuZm9vdGVyRGV0YWlscy5pc0Rpc2FibGVkID0gdHJ1ZTsgXHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuZm9vdGVyRGV0YWlscy5pc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRoaXMuZm9vdGVyRGV0YWlscy5pc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gIH1cclxuXHJcbn1cclxuXHJcbmNoZWNrRnJlcXVlbmN5VmFsaWRpdHkoKXtcclxuICBzd2l0Y2ggKHRoaXMuZnJlcXVlbmN5VGFiKSB7XHJcbiAgICBjYXNlICd3ZWVrbHknOiB7XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkRGF5cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5mb290ZXJEZXRhaWxzLmlzRGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5mb290ZXJEZXRhaWxzLmlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgY2FzZSAnbW9udGhseSc6IHtcclxuICAgXHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRNb250aHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5mb290ZXJEZXRhaWxzLmlzRGlzYWJsZWQgPSBmYWxzZTtcclxuICBcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5mb290ZXJEZXRhaWxzLmlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICBjYXNlICdxdWFydGVybHknOiB7XHJcblxyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFF1YXJ0ZXIgPj0gMCl7XHJcbiAgICAgICAgICB0aGlzLmZvb3RlckRldGFpbHMuaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gIFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmZvb3RlckRldGFpbHMuaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICBicmVhaztcclxuICAgIH1cclxuICB9IFxyXG59XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjcmVhdGUtZnJlcXVlbmN5XCIgW2NsYXNzLmFuaW1hdGUtc2xpZGVJblJpZ2h0XT1cImFuaW1hdGlvblwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNyZWF0ZS1mcmVxdWVuY3ktaGVhZCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wbC00IHZ4LXByLTQgdngtbWItNFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+U2VsZWN0IGEgRnJlcXVlbmN5PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjcmVhdGUtZnJlcXVlbmN5LWJvZHkgdngtcGwtNCB2eC1wci00XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNyZWF0ZS1mcmVxdWVuY3ktYm9keS1pbm5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3JlYXRlLWZyZXF1ZW5jeS10YWJcIiBbbmdTd2l0Y2hdPVwiZnJlcXVlbmN5VGFiXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3JlYXRlLWZyZXF1ZW5jeS10YWItaGVhZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cIm5hdmlnYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxidXR0b24gW2NsYXNzLmFjdGl2ZV09XCJmcmVxdWVuY3lUYWIgPT0gJ3dlZWtseSdcIiAoY2xpY2spPVwiY2hhbmdlVGFiKCd3ZWVrbHknKVwiPldlZWtseTwvYnV0dG9uPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YnV0dG9uIFtjbGFzcy5hY3RpdmVdPVwiZnJlcXVlbmN5VGFiID09ICdtb250aGx5J1wiIChjbGljayk9XCJjaGFuZ2VUYWIoJ21vbnRobHknKVwiPk1vbnRobHk8L2J1dHRvbj48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGJ1dHRvbiBbY2xhc3MuYWN0aXZlXT1cImZyZXF1ZW5jeVRhYiA9PSAncXVhcnRlcmx5J1wiIChjbGljayk9XCJjaGFuZ2VUYWIoJ3F1YXJ0ZXJseScpXCI+UXVhcnRlcmx5PC9idXR0b24+PC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3JlYXRlLWZyZXF1ZW5jeS10YWItYm9keSB2eC1wbC00IHZ4LXByLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC10dC11cHBlcmNhc2UgdngtbWItMVwiPkVtYWlsIFJlbWluZGVyIEZyZXF1ZW5jeTo8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tib3gtbGlzdFwiICpuZ1N3aXRjaENhc2U9XCInd2Vla2x5J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWNoZWNrYm94IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktY2hlY2tib3gtaXRlbSB2eC1wLTMgdngtcHItNCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCIgKm5nRm9yPVwibGV0IGRheSBvZiBkYXlOYW1lczsgbGV0IGRheUluZGV4ID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94IChuZ1ZhbHVlQ2hhbmdlKT1cImRheVNlbGVjdGlvbkNoYW5nZSgkZXZlbnQsIGRheUluZGV4KVwiIFtuZ1ZhbHVlXT1cInNlbGVjdGVkRGF5cy5pbmNsdWRlcyhkYXlJbmRleClcIj57e2RheX19PC9hcHAtY3MtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94LWxpc3QgbW9udGhcIiAqbmdTd2l0Y2hDYXNlPVwiJ21vbnRobHknXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktdG9wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMyB2eC1wYXJhZ3JhcGgtdHh0XCI+RGF5PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIChmb2N1c291dCk9XCJjaGVja0RhdGVWYWxpZGl0eShtb250aGx5RGF0ZSwnbW9udGhseScpXCIgWyhuZ01vZGVsKV09XCJtb250aGx5RGF0ZVwiIGNsYXNzPVwiY291bnROdW1cIiBvbmtleWRvd249XCJyZXR1cm4gZXZlbnQua2V5Q29kZSAhPT0gMTkwXCIgbWluPVwiMVwiIG9uaW5wdXQ9XCJ0aGlzLnZhbHVlID0gTWF0aC5hYnModGhpcy52YWx1ZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMyB2eC1wYXJhZ3JhcGgtdHh0XCI+b2Y8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktY2hlY2tib3ggdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1mbGV4LXdyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktY2hlY2tib3gtaXRlbSB2eC1wLTMgdngtcHItNCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCIgKm5nRm9yPVwibGV0IG1vbnRoIG9mIG1vbnRoTmFtZXM7IGxldCBtb250aEluZGV4ID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94IChuZ1ZhbHVlQ2hhbmdlKT1cIm1vbnRoU2VsZWN0aW9uQ2hhbmdlKCRldmVudCwgbW9udGhJbmRleClcIiBbbmdWYWx1ZV09XCJzZWxlY3RlZE1vbnRocy5pbmNsdWRlcyhtb250aEluZGV4KVwiPnt7bW9udGh9fTwvYXBwLWNzLWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2JveC1saXN0XCIgKm5nU3dpdGNoQ2FzZT1cIidxdWFydGVybHknXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93UmFkaW9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktdG9wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTMgdngtcGFyYWdyYXBoLXR4dFwiPkRheTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgKGZvY3Vzb3V0KT1cImNoZWNrRGF0ZVZhbGlkaXR5KHF1YXJ0ZXJseURhdGUsJ3F1YXJ0ZXJseScpXCIgWyhuZ01vZGVsKV09XCJxdWFydGVybHlEYXRlXCIgY2xhc3M9XCJjb3VudE51bVwiIG9ua2V5ZG93bj1cInJldHVybiBldmVudC5rZXlDb2RlICE9PSAxOTBcIiBtaW49XCIxXCIgb25pbnB1dD1cInRoaXMudmFsdWUgPSBNYXRoLmFicyh0aGlzLnZhbHVlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMyB2eC1wYXJhZ3JhcGgtdHh0XCI+b2Y8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1jaGVja2JveCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1jaGVja2JveC1pdGVtIHZ4LXAtMyB2eC1wci00IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtdy0xMDBcIiAqbmdGb3I9XCJsZXQgcXVhcnRlciBvZiBxdWFydGVycywgbGV0IHF1YXJ0ZXJJbmRleCA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtcmFkaW8gKGNoZWNrZWRFdmVudCk9XCJxdWFydGVyU2VsZWN0aW9uQ2hhbmdlKCRldmVudCwgcXVhcnRlckluZGV4KVwiIFtjaGVja2VkXT1cInNlbGVjdGVkUXVhcnRlciA9PT0gcXVhcnRlckluZGV4XCI+e3txdWFydGVyfX08L2FwcC1jcy1yYWRpbz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY3JlYXRlLWZyZXF1ZW5jeS1mb290ZXJcIj5cclxuICAgICAgICA8YXBwLWRhc2hib2FyZC1mb290ZXIgXHJcbiAgICAgICAgW2Zvb3RlckRldGFpbHNdPVwiZm9vdGVyRGV0YWlsc1wiXHJcbiAgICAgICAgKGNhbmNlbEV2ZW50KT1cImNsb3NlRnJlcXVlbmN5UG9wdXAuZW1pdCgpXCJcclxuICAgICAgICAoc3VibWl0RXZlbnQpPVwic3VibWl0RnJlcXVlbmN5KClcIlxyXG4gICAgICAgID48L2FwcC1kYXNoYm9hcmQtZm9vdGVyPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|