tnx-shared 5.2.9 → 5.2.12
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/assets/gulpfile.js +10 -2
- package/bundles/tnx-shared.umd.js +471 -163
- package/bundles/tnx-shared.umd.js.map +1 -1
- package/bundles/tnx-shared.umd.min.js +1 -1
- package/bundles/tnx-shared.umd.min.js.map +1 -1
- package/classes/base/component-base.d.ts +3 -0
- package/classes/base/component-base.d.ts.map +1 -1
- package/classes/base/list-base.d.ts +2 -0
- package/classes/base/list-base.d.ts.map +1 -1
- package/classes/environment-schema.d.ts +13 -4
- package/classes/environment-schema.d.ts.map +1 -1
- package/classes/form-schema.d.ts +4 -0
- package/classes/form-schema.d.ts.map +1 -1
- package/components/common-app-component/app-topbar-v1/app-topbar-v1.component.d.ts +4 -2
- package/components/common-app-component/app-topbar-v1/app-topbar-v1.component.d.ts.map +1 -1
- package/components/common-app-component/default-setting-form/default-data-settings.component.d.ts +20 -0
- package/components/common-app-component/default-setting-form/default-data-settings.component.d.ts.map +1 -0
- package/components/common-app-component/default-setting-form/default-data-settings.component.ngfactory.d.ts.map +1 -0
- package/components/common-app-component/default-setting-form/default-data-settings.component.scss.shim.ngstyle.d.ts.map +1 -0
- package/components/crud/advance-search/advance-search.component.d.ts +2 -2
- package/components/crud/advance-search/advance-search.component.d.ts.map +1 -1
- package/components/crud/crud-form/crud-form.component.d.ts.map +1 -1
- package/components/datetime-picker/datetime-picker.component.d.ts.map +1 -1
- package/components/workflow/services/workflow-settings.service.d.ts +2 -0
- package/components/workflow/services/workflow-settings.service.d.ts.map +1 -1
- package/esm2015/app-context/application-context.service.js +2 -1
- package/esm2015/classes/base/component-base.js +26 -10
- package/esm2015/classes/base/list-base.js +31 -2
- package/esm2015/classes/environment-schema.js +4 -4
- package/esm2015/classes/form-schema.js +2 -1
- package/esm2015/components/common-app-component/app-root-menu/app-root-menu.component.js +2 -2
- package/esm2015/components/common-app-component/app-topbar-v1/app-topbar-v1.component.js +24 -18
- package/esm2015/components/common-app-component/default-setting-form/default-data-settings.component.js +209 -0
- package/esm2015/components/crud/advance-search/advance-search.component.js +24 -21
- package/esm2015/components/crud/crud-form/crud-form.component.js +4 -2
- package/esm2015/components/datetime-picker/datetime-picker.component.js +7 -4
- package/esm2015/components/workflow/services/workflow-settings.service.js +6 -1
- package/esm2015/services/environment.service.js +25 -6
- package/esm2015/tnx-shared.js +89 -88
- package/esm2015/tnx-shared.module.js +3 -1
- package/fesm2015/tnx-shared.js +348 -61
- package/fesm2015/tnx-shared.js.map +1 -1
- package/package.json +2 -2
- package/services/environment.service.d.ts +19 -4
- package/services/environment.service.d.ts.map +1 -1
- package/tnx-shared.d.ts +88 -87
- package/tnx-shared.d.ts.map +1 -1
- package/tnx-shared.metadata.json +1 -1
- package/tnx-shared.module.d.ts +2 -1
- package/tnx-shared.module.d.ts.map +1 -1
- package/tnx-shared.module.ngfactory.d.ts.map +1 -1
- package/assets/Dockerfile.ci +0 -5
- package/assets/deploy.client.ci +0 -42
- package/assets/gulpfile.js.bak +0 -703
|
@@ -52,8 +52,9 @@ export class DatetimePickerComponent {
|
|
|
52
52
|
this.control.disabled = isDisabled;
|
|
53
53
|
}
|
|
54
54
|
getPanelClass() {
|
|
55
|
-
if (this.control.appendTo == 'body')
|
|
55
|
+
if (this.control.appendTo == 'body') {
|
|
56
56
|
return `${this.control.panelClass} p-fixed`;
|
|
57
|
+
}
|
|
57
58
|
return this.control.panelClass;
|
|
58
59
|
}
|
|
59
60
|
onFocusCalendar(evt) {
|
|
@@ -129,10 +130,12 @@ export class DatetimePickerComponent {
|
|
|
129
130
|
let mm = String(date.getMinutes());
|
|
130
131
|
if (mm.length == 1)
|
|
131
132
|
mm = '0' + mm;
|
|
132
|
-
if (!showTime)
|
|
133
|
+
if (!showTime) {
|
|
133
134
|
return `${dd}/${MM}/${yyyy}`;
|
|
134
|
-
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
135
137
|
return `${dd}/${MM}/${yyyy} ${hh}:${mm}`;
|
|
138
|
+
}
|
|
136
139
|
}
|
|
137
140
|
else if (isValidTime(date)) {
|
|
138
141
|
let hh = String(date.getHours());
|
|
@@ -178,4 +181,4 @@ DatetimePickerComponent.propDecorators = {
|
|
|
178
181
|
onBlur: [{ type: Output }],
|
|
179
182
|
onClose: [{ type: Output }]
|
|
180
183
|
};
|
|
181
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFjOUQsTUFBTSxPQUFPLHVCQUF1QjtJQXdCaEMsWUFDWSxpQkFBbUMsRUFDbkMsY0FBNkI7UUFEN0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQXJCekMsT0FBRSxHQUFHLDBCQUEwQixDQUFDO1FBS2hDLDBCQUFxQixHQUFHLGVBQWUsQ0FBQztRQUN4QywwQkFBcUIsR0FBRyxnQkFBZ0IsQ0FBQztRQUloQyxZQUFPLEdBQTBCLElBQUkscUJBQXFCLEVBQUUsQ0FBQztRQUc1RCxhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDdEQsY0FBUyxHQUFzQixJ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Q2Q7aUJBQ0o7O2FBQ0o7OztZQWxCUSxnQkFBZ0I7WUFLaEIsYUFBYTs7O3VCQTJCakIsU0FBUyxTQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7c0JBRXRDLEtBQUs7dUJBQ0wsS0FBSzt1QkFFTCxNQUFNO3dCQUNOLE1BQU07c0JBQ04sTUFBTTtxQkFDTixNQUFNO3NCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IENhbGVuZGFyIH0gZnJvbSAndG4tY3VzdG9tLXByaW1lbmcvY2FsZW5kYXInO1xuaW1wb3J0IHsgaXNWYWxpZERhdGUsIGlzVmFsaWRUaW1lIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9lbnZpcm9ubWVudC1zY2hlbWEnO1xuaW1wb3J0IHsgRGF0ZVRpbWVDb250cm9sU2NoZW1hIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9mb3JtLXNjaGVtYSc7XG5pbXBvcnQgeyBDT05GSUdfQ0FMRU5EQVJfVklFVE5BTUVTRSB9IGZyb20gJy4uLy4uL2NvbmZpZ3MvY2FsZW5kYXIuY29uZmlnJztcbmltcG9ydCB7IENvbW1vblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb21tb24uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZGF0ZXRpbWUtcGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kYXRldGltZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRldGltZVBpY2tlckNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRldGltZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gICAgb25DaGFuZ2U6IEZ1bmN0aW9uO1xuICAgIG9uVG91Y2hlZDogRnVuY3Rpb247XG5cbiAgICB2aSA9IENPTkZJR19DQUxFTkRBUl9WSUVUTkFNRVNFO1xuXG4gICAgX3ByZXZWYWx1ZTogYW55O1xuICAgIF9jb250cm9sTW9kZWxEYXRhOiBhbnk7XG4gICAgX3RpbWVPbmx5TW9kZWxEYXRhOiBzdHJpbmc7XG4gICAgaGlkZVRyYW5zaXRpb25PcHRpb25zID0gJzE5NW1zIGVhc2UtaW4nO1xuICAgIHNob3dUcmFuc2l0aW9uT3B0aW9ucyA9ICcyMjVtcyBlYXNlLW91dCc7XG5cbiAgICBAVmlld0NoaWxkKCdjYWxlbmRhcicsIHsgc3RhdGljOiB0cnVlIH0pIGNhbGVuZGFyOiBDYWxlbmRhcjtcblxuICAgIEBJbnB1dCgpIGNvbnRyb2w6IERhdGVUaW1lQ29udHJvbFNjaGVtYSA9IG5ldyBEYXRlVGltZUNvbnRyb2xTY2hlbWEoKTtcbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIEBPdXRwdXQoKSBvblNlbGVjdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBvbkZvY3VzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBvbkJsdXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIG9uQ2xvc2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfY29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZSxcbiAgICApIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XG4gICAgICAgIGlmIChvYmopIHtcbiAgICAgICAgICAgIGlmICghKG9iaiBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgICAgICAgICAgICAgb2JqID0gbmV3IERhdGUoU3RyaW5nKG9iaikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzVmFsaWREYXRlKG9iaikpXG4gICAgICAgICAgICAgICAgdGhpcy5fY29udHJvbE1vZGVsRGF0YSA9IG9iajtcblxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fY29udHJvbE1vZGVsRGF0YSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmNhbGVuZGFyLnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuY2FsZW5kYXIudXBkYXRlSW5wdXRmaWVsZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlSW5wdXRmaWVsZCgpIHtcbiAgICAgICAgdGhpcy5jYWxlbmRhci51cGRhdGVJbnB1dGZpZWxkKCk7XG4gICAgfVxuXG4gICAgc2V0VmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLmNhbGVuZGFyLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRyb2wuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIGdldFBhbmVsQ2xhc3MoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wuYXBwZW5kVG8gPT0gJ2JvZHknKVxuICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMuY29udHJvbC5wYW5lbENsYXNzfSBwLWZpeGVkYDtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbC5wYW5lbENsYXNzO1xuICAgIH1cblxuICAgIG9uRm9jdXNDYWxlbmRhcihldnQpIHtcbiAgICAgICAgdGhpcy5vbkZvY3VzLmVtaXQoe1xuICAgICAgICAgICAgZXZlbnQ6IGV2dFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoZXZ0LnRhcmdldC52YWx1ZSkge1xuICAgICAgICAgICAgZXZ0LnRhcmdldC5zZWxlY3QoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQmx1ckNhbGVuZGFyKGV2dCkge1xuICAgICAgICB0aGlzLm9uQmx1ci5lbWl0KHtcbiAgICAgICAgICAgIGV2ZW50OiBldnRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25TaG93Q2FsZW5kYXIoZXZ0KSB7XG4gICAgICAgIHRoaXMuX3ByZXZWYWx1ZSA9IHRoaXMuX2NvbnRyb2xNb2RlbERhdGE7XG4gICAgfVxuXG4gICAgb25DbG9zZUNhbGVuZGFyKGV2dCkge1xuICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMuY2FsZW5kYXIuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGlucHV0LnZhbHVlLnRyaW0oKTtcbiAgICAgICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLnRvRGF0ZVN0cmluZyh0aGlzLl9wcmV2VmFsdWUsIHRoaXMuY29udHJvbC5zaG93VGltZSk7XG4gICAgICAgIGlmIChvbGRWYWx1ZSAhPSB2YWx1ZSkge1xuICAgICAgICAgICAgaW5wdXQudmFsdWUgPSB0aGlzLmF1dG9Db3JlY3REYXRlVGltZSh2YWx1ZSk7XG4gICAgICAgICAgICBpZiAob2xkVmFsdWUgIT0gaW5wdXQudmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpcmVDaGFuZ2VFdmVudCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMub25DbG9zZS5uZXh0KHRoaXMuX2NvbnRyb2xNb2RlbERhdGEpO1xuICAgIH1cblxuICAgIG9uU2VsZWN0RGF0ZVRpbWUoZXZ0KSB7XG4gICAgICAgIHRoaXMub25TZWxlY3QubmV4dCh0aGlzLl9jb250cm9sTW9kZWxEYXRhKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGF1dG9Db3JlY3REYXRlVGltZShpbnB1dCkge1xuICAgICAgICBpZiAoaW5wdXQgIT0gJycpIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGVWYWx1ZSA9IHRoaXMuY29udHJvbC50aW1lT25seSA/IGAwMS8wMS8wMDAxICR7aW5wdXR9YCA6IGlucHV0O1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fY29tbW9uU2VydmljZS5wcm9jZXNzRGF0ZUlucHV0KFxuICAgICAgICAgICAgICAgIGRhdGVWYWx1ZSxcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2wuc2hvd1RpbWUsXG4gICAgICAgICAgICAgICAgdGhpcy5jb250cm9sLnRpbWVPbmx5XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoaXNWYWxpZERhdGUocmVzdWx0KSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbnRyb2wubWluRGF0ZSB8fCB0aGlzLmNvbnRyb2wubWF4RGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jb250cm9sLm1heERhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPiB0aGlzLmNvbnRyb2wubWF4RGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRyb2xNb2RlbERhdGEgPSB0aGlzLmNvbnRyb2wubWF4RGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChyZXN1bHQgPCB0aGlzLmNvbnRyb2wubWluRGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29udHJvbE1vZGVsRGF0YSA9IHRoaXMuY29udHJvbC5taW5EYXRlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb250cm9sTW9kZWxEYXRhID0gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250cm9sTW9kZWxEYXRhID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRyb2xNb2RlbERhdGEgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudG9EYXRlU3RyaW5nKHRoaXMuX2NvbnRyb2xNb2RlbERhdGEsIHRoaXMuY29udHJvbC5zaG93VGltZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0b0RhdGVTdHJpbmcoZGF0ZTogRGF0ZSwgc2hvd1RpbWUpIHtcbiAgICAgICAgaWYgKGlzVmFsaWREYXRlKGRhdGUpICYmICF0aGlzLmNvbnRyb2wudGltZU9ubHkpIHtcbiAgICAgICAgICAgIGxldCBkZCA9IFN0cmluZyhkYXRlLmdldERhdGUoKSk7XG4gICAgICAgICAgICBpZiAoZGQubGVuZ3RoID09IDEpIGRkID0gJzAnICsgZGQ7XG4gICAgICAgICAgICBsZXQgTU0gPSBTdHJpbmcoZGF0ZS5nZXRNb250aCgpICsgMSk7XG4gICAgICAgICAgICBpZiAoTU0ubGVuZ3RoID09IDEpIE1NID0gJzAnICsgTU07XG4gICAgICAgICAgICBjb25zdCB5eXl5ID0gU3RyaW5nKGRhdGUuZ2V0RnVsbFllYXIoKSk7XG5cbiAgICAgICAgICAgIGxldCBoaCA9IFN0cmluZyhkYXRlLmdldEhvdXJzKCkpO1xuICAgICAgICAgICAgaWYgKGhoLmxlbmd0aCA9PSAxKSBoaCA9ICcwJyArIGhoO1xuICAgICAgICAgICAgbGV0IG1tID0gU3RyaW5nKGRhdGUuZ2V0TWludXRlcygpKTtcbiAgICAgICAgICAgIGlmIChtbS5sZW5ndGggPT0gMSkgbW0gPSAnMCcgKyBtbTtcblxuICAgICAgICAgICAgaWYgKCFzaG93VGltZSlcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZGR9LyR7TU19LyR7eXl5eX1gO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHJldHVybiBgJHtkZH0vJHtNTX0vJHt5eXl5fSAke2hofToke21tfWA7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNWYWxpZFRpbWUoZGF0ZSkpIHtcbiAgICAgICAgICAgIGxldCBoaCA9IFN0cmluZyhkYXRlLmdldEhvdXJzKCkpO1xuICAgICAgICAgICAgaWYgKGhoLmxlbmd0aCA9PSAxKSBoaCA9ICcwJyArIGhoO1xuICAgICAgICAgICAgbGV0IG1tID0gU3RyaW5nKGRhdGUuZ2V0TWludXRlcygpKTtcbiAgICAgICAgICAgIGlmIChtbS5sZW5ndGggPT0gMSkgbW0gPSAnMCcgKyBtbTtcbiAgICAgICAgICAgIHJldHVybiBgMDEvMDEvMDAwMS8gJHtoaH06JHttbX1gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpcmVDaGFuZ2VFdmVudCgpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLl9jb250cm9sTW9kZWxEYXRhKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZWQuZW1pdCh0aGlzLl9jb250cm9sTW9kZWxEYXRhKTtcbiAgICB9XG59XG4iXX0=
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFjOUQsTUFBTSxPQUFPLHVCQUF1QjtJQXdCaEMsWUFDWSxpQkFBbUMsRUFDbkMsY0FBNkI7UUFEN0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQXJCekMsT0FBRSxHQUFHLDBCQUEwQixDQUFDO1FBS2hDLDBCQUFxQixHQUFHLGVBQWUsQ0FBQztRQUN4QywwQkFBcUIsR0FBRyxnQkFBZ0IsQ0FBQztRQUloQyxZQUFPLEdBQTBCLElBQUkscUJBQXFCLEVBQUUsQ0FBQztRQUc1RCxhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDdEQsY0FBUyxHQUFzQixJ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QUFDO3dCQUN0RCxLQUFLLEVBQUUsSUFBSTtxQkFDZDtpQkFDSjs7YUFDSjs7O1lBbEJRLGdCQUFnQjtZQUtoQixhQUFhOzs7dUJBMkJqQixTQUFTLFNBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtzQkFFdEMsS0FBSzt1QkFDTCxLQUFLO3VCQUVMLE1BQU07d0JBQ04sTUFBTTtzQkFDTixNQUFNO3FCQUNOLE1BQU07c0JBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQ2FsZW5kYXIgfSBmcm9tICd0bi1jdXN0b20tcHJpbWVuZy9jYWxlbmRhcic7XG5pbXBvcnQgeyBpc1ZhbGlkRGF0ZSwgaXNWYWxpZFRpbWUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2Vudmlyb25tZW50LXNjaGVtYSc7XG5pbXBvcnQgeyBEYXRlVGltZUNvbnRyb2xTY2hlbWEgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2Zvcm0tc2NoZW1hJztcbmltcG9ydCB7IENPTkZJR19DQUxFTkRBUl9WSUVUTkFNRVNFIH0gZnJvbSAnLi4vLi4vY29uZmlncy9jYWxlbmRhci5jb25maWcnO1xuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkYXRldGltZS1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRldGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGV0aW1lUGlja2VyQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGV0aW1lUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgICBvbkNoYW5nZTogRnVuY3Rpb247XG4gICAgb25Ub3VjaGVkOiBGdW5jdGlvbjtcblxuICAgIHZpID0gQ09ORklHX0NBTEVOREFSX1ZJRVROQU1FU0U7XG5cbiAgICBfcHJldlZhbHVlOiBhbnk7XG4gICAgX2NvbnRyb2xNb2RlbERhdGE6IGFueTtcbiAgICBfdGltZU9ubHlNb2RlbERhdGE6IHN0cmluZztcbiAgICBoaWRlVHJhbnNpdGlvbk9wdGlvbnMgPSAnMTk1bXMgZWFzZS1pbic7XG4gICAgc2hvd1RyYW5zaXRpb25PcHRpb25zID0gJzIyNW1zIGVhc2Utb3V0JztcblxuICAgIEBWaWV3Q2hpbGQoJ2NhbGVuZGFyJywgeyBzdGF0aWM6IHRydWUgfSkgY2FsZW5kYXI6IENhbGVuZGFyO1xuXG4gICAgQElucHV0KCkgY29udHJvbDogRGF0ZVRpbWVDb250cm9sU2NoZW1hID0gbmV3IERhdGVUaW1lQ29udHJvbFNjaGVtYSgpO1xuICAgIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgQE91dHB1dCgpIG9uU2VsZWN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIG9uRm9jdXM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIG9uQmx1cjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgb25DbG9zZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF90cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9jb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlLFxuICAgICkge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKG9iaikge1xuICAgICAgICAgICAgaWYgKCEob2JqIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgICAgICAgICAgICBvYmogPSBuZXcgRGF0ZShTdHJpbmcob2JqKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNWYWxpZERhdGUob2JqKSkgdGhpcy5fY29udHJvbE1vZGVsRGF0YSA9IG9iajtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRyb2xNb2RlbERhdGEgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5jYWxlbmRhci52YWx1ZSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmNhbGVuZGFyLnVwZGF0ZUlucHV0ZmllbGQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZUlucHV0ZmllbGQoKSB7XG4gICAgICAgIHRoaXMuY2FsZW5kYXIudXBkYXRlSW5wdXRmaWVsZCgpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5jYWxlbmRhci52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250cm9sLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG5cbiAgICBnZXRQYW5lbENsYXNzKCkge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sLmFwcGVuZFRvID09ICdib2R5Jykge1xuICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMuY29udHJvbC5wYW5lbENsYXNzfSBwLWZpeGVkYDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sLnBhbmVsQ2xhc3M7XG4gICAgfVxuXG4gICAgb25Gb2N1c0NhbGVuZGFyKGV2dCkge1xuICAgICAgICB0aGlzLm9uRm9jdXMuZW1pdCh7XG4gICAgICAgICAgICBldmVudDogZXZ0XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChldnQudGFyZ2V0LnZhbHVlKSB7XG4gICAgICAgICAgICBldnQudGFyZ2V0LnNlbGVjdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25CbHVyQ2FsZW5kYXIoZXZ0KSB7XG4gICAgICAgIHRoaXMub25CbHVyLmVtaXQoe1xuICAgICAgICAgICAgZXZlbnQ6IGV2dFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvblNob3dDYWxlbmRhcihldnQpIHtcbiAgICAgICAgdGhpcy5fcHJldlZhbHVlID0gdGhpcy5fY29udHJvbE1vZGVsRGF0YTtcbiAgICB9XG5cbiAgICBvbkNsb3NlQ2FsZW5kYXIoZXZ0KSB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy5jYWxlbmRhci5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gaW5wdXQudmFsdWUudHJpbSgpO1xuICAgICAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMudG9EYXRlU3RyaW5nKHRoaXMuX3ByZXZWYWx1ZSwgdGhpcy5jb250cm9sLnNob3dUaW1lKTtcbiAgICAgICAgaWYgKG9sZFZhbHVlICE9IHZhbHVlKSB7XG4gICAgICAgICAgICBpbnB1dC52YWx1ZSA9IHRoaXMuYXV0b0NvcmVjdERhdGVUaW1lKHZhbHVlKTtcbiAgICAgICAgICAgIGlmIChvbGRWYWx1ZSAhPSBpbnB1dC52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZmlyZUNoYW5nZUV2ZW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vbkNsb3NlLm5leHQodGhpcy5fY29udHJvbE1vZGVsRGF0YSk7XG4gICAgfVxuXG4gICAgb25TZWxlY3REYXRlVGltZShldnQpIHtcbiAgICAgICAgdGhpcy5vblNlbGVjdC5uZXh0KHRoaXMuX2NvbnRyb2xNb2RlbERhdGEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXV0b0NvcmVjdERhdGVUaW1lKGlucHV0KSB7XG4gICAgICAgIGlmIChpbnB1dCAhPSAnJykge1xuICAgICAgICAgICAgY29uc3QgZGF0ZVZhbHVlID0gdGhpcy5jb250cm9sLnRpbWVPbmx5ID8gYDAxLzAxLzAwMDEgJHtpbnB1dH1gIDogaW5wdXQ7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9jb21tb25TZXJ2aWNlLnByb2Nlc3NEYXRlSW5wdXQoXG4gICAgICAgICAgICAgICAgZGF0ZVZhbHVlLFxuICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbC5zaG93VGltZSxcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2wudGltZU9ubHlcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChpc1ZhbGlkRGF0ZShyZXN1bHQpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY29udHJvbC5taW5EYXRlIHx8IHRoaXMuY29udHJvbC5tYXhEYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbnRyb2wubWF4RGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA+IHRoaXMuY29udHJvbC5tYXhEYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29udHJvbE1vZGVsRGF0YSA9IHRoaXMuY29udHJvbC5tYXhEYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlc3VsdCA8IHRoaXMuY29udHJvbC5taW5EYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb250cm9sTW9kZWxEYXRhID0gdGhpcy5jb250cm9sLm1pbkRhdGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRyb2xNb2RlbERhdGEgPSByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB0aGlzLl9jb250cm9sTW9kZWxEYXRhID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRyb2xNb2RlbERhdGEgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudG9EYXRlU3RyaW5nKHRoaXMuX2NvbnRyb2xNb2RlbERhdGEsIHRoaXMuY29udHJvbC5zaG93VGltZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0b0RhdGVTdHJpbmcoZGF0ZTogRGF0ZSwgc2hvd1RpbWUpIHtcbiAgICAgICAgaWYgKGlzVmFsaWREYXRlKGRhdGUpICYmICF0aGlzLmNvbnRyb2wudGltZU9ubHkpIHtcbiAgICAgICAgICAgIGxldCBkZCA9IFN0cmluZyhkYXRlLmdldERhdGUoKSk7XG4gICAgICAgICAgICBpZiAoZGQubGVuZ3RoID09IDEpIGRkID0gJzAnICsgZGQ7XG4gICAgICAgICAgICBsZXQgTU0gPSBTdHJpbmcoZGF0ZS5nZXRNb250aCgpICsgMSk7XG4gICAgICAgICAgICBpZiAoTU0ubGVuZ3RoID09IDEpIE1NID0gJzAnICsgTU07XG4gICAgICAgICAgICBjb25zdCB5eXl5ID0gU3RyaW5nKGRhdGUuZ2V0RnVsbFllYXIoKSk7XG5cbiAgICAgICAgICAgIGxldCBoaCA9IFN0cmluZyhkYXRlLmdldEhvdXJzKCkpO1xuICAgICAgICAgICAgaWYgKGhoLmxlbmd0aCA9PSAxKSBoaCA9ICcwJyArIGhoO1xuICAgICAgICAgICAgbGV0IG1tID0gU3RyaW5nKGRhdGUuZ2V0TWludXRlcygpKTtcbiAgICAgICAgICAgIGlmIChtbS5sZW5ndGggPT0gMSkgbW0gPSAnMCcgKyBtbTtcblxuICAgICAgICAgICAgaWYgKCFzaG93VGltZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBgJHtkZH0vJHtNTX0vJHt5eXl5fWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZGR9LyR7TU19LyR7eXl5eX0gJHtoaH06JHttbX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzVmFsaWRUaW1lKGRhdGUpKSB7XG4gICAgICAgICAgICBsZXQgaGggPSBTdHJpbmcoZGF0ZS5nZXRIb3VycygpKTtcbiAgICAgICAgICAgIGlmIChoaC5sZW5ndGggPT0gMSkgaGggPSAnMCcgKyBoaDtcbiAgICAgICAgICAgIGxldCBtbSA9IFN0cmluZyhkYXRlLmdldE1pbnV0ZXMoKSk7XG4gICAgICAgICAgICBpZiAobW0ubGVuZ3RoID09IDEpIG1tID0gJzAnICsgbW07XG4gICAgICAgICAgICByZXR1cm4gYDAxLzAxLzAwMDEvICR7aGh9OiR7bW19YDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaXJlQ2hhbmdlRXZlbnQoKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5fY29udHJvbE1vZGVsRGF0YSk7XG4gICAgICAgIHRoaXMub25DaGFuZ2VkLmVtaXQodGhpcy5fY29udHJvbE1vZGVsRGF0YSk7XG4gICAgfVxufVxuIl19
|
|
@@ -10,6 +10,7 @@ import * as i2 from "../../../services/environment.service";
|
|
|
10
10
|
export class WorkflowSettingsService extends BaseService {
|
|
11
11
|
constructor(http, injector, _environmentService) {
|
|
12
12
|
super(http, injector, '');
|
|
13
|
+
this.serviceCode = 'workflow';
|
|
13
14
|
this.entityName = 'WorkflowSetting';
|
|
14
15
|
this.serviceManagers = {};
|
|
15
16
|
this.endPoint = _environmentService.getHttpServiceEndpointWithVersion(this.serviceCode);
|
|
@@ -21,6 +22,10 @@ export class WorkflowSettingsService extends BaseService {
|
|
|
21
22
|
getEndpointByService(service) {
|
|
22
23
|
return service.endPoint;
|
|
23
24
|
}
|
|
25
|
+
changeEndpoint(baseService) {
|
|
26
|
+
this.serviceUri = `${this.getEndpointByService(baseService)}/WorkflowSetting`;
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
24
29
|
setCurrentServiceUri(tableName) {
|
|
25
30
|
const service = this.serviceManagers[tableName];
|
|
26
31
|
if (service == undefined) {
|
|
@@ -147,4 +152,4 @@ WorkflowSettingsService.ctorParameters = () => [
|
|
|
147
152
|
{ type: Injector },
|
|
148
153
|
{ type: EnvironmentService }
|
|
149
154
|
];
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctc2V0dGluZ3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvd29ya2Zsb3cvc2VydmljZXMvd29ya2Zsb3ctc2V0dGluZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFNcEQsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFdBQVc7SUFLcEQsWUFDSSxJQUFnQixFQUNoQixRQUFrQixFQUNsQixtQkFBdUM7UUFFdkMsS0FBSyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFUOUIsZUFBVSxHQUFHLGlCQUFpQixDQUFDO1FBQ3ZCLG9CQUFlLEdBRW5CLEVBQUUsQ0FBQztRQU9ILElBQUksQ0FBQyxRQUFRLEdBQUcsbUJBQW1CLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxrQkFBa0IsQ0FBQztJQUN6RCxDQUFDO0lBRUQsZUFBZSxDQUFDLFVBQWtCLEVBQUUsT0FBb0I7UUFDcEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRyxPQUFPLENBQUM7SUFDL0MsQ0FBQztJQUVELG9CQUFvQixD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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYmFzZS5zZXJ2aWNlJztcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Vudmlyb25tZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgTm90aWZpZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbm90aWZpZXIuc2VydmljZSc7XG5pbXBvcnQgeyBtdWx0aXBsZVNvcnQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9hcnJheSc7XG5pbXBvcnQgeyBXZlNjaGVtYSB9IGZyb20gJy4uL21vZGVscy9tb2RlbHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFdvcmtmbG93U2V0dGluZ3NTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICAgIGVudGl0eU5hbWUgPSAnV29ya2Zsb3dTZXR0aW5nJztcbiAgICBwcml2YXRlIHNlcnZpY2VNYW5hZ2Vyczoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBCYXNlU2VydmljZVxuICAgIH0gPSB7fTtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBfZW52aXJvbm1lbnRTZXJ2aWNlOiBFbnZpcm9ubWVudFNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaHR0cCwgaW5qZWN0b3IsICcnKTtcbiAgICAgICAgdGhpcy5lbmRQb2ludCA9IF9lbnZpcm9ubWVudFNlcnZpY2UuZ2V0SHR0cFNlcnZpY2VFbmRwb2ludFdpdGhWZXJzaW9uKHRoaXMuc2VydmljZUNvZGUpO1xuICAgICAgICB0aGlzLnNlcnZpY2VVcmkgPSBgJHt0aGlzLmVuZFBvaW50fS9Xb3JrZmxvd1NldHRpbmdgO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyU2VydmljZShlbnRpdHlOYW1lOiBzdHJpbmcsIHNlcnZpY2U6IEJhc2VTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuc2VydmljZU1hbmFnZXJzW2VudGl0eU5hbWVdID0gc2VydmljZTtcbiAgICB9XG5cbiAgICBnZXRFbmRwb2ludEJ5U2VydmljZShzZXJ2aWNlOiBCYXNlU2VydmljZSkge1xuICAgICAgICByZXR1cm4gc2VydmljZS5lbmRQb2ludDtcbiAgICB9XG5cbiAgICBzZXRDdXJyZW50U2VydmljZVVyaSh0YWJsZU5hbWU6IHN0cmluZykge1xuICAgICAgICBjb25zdCBzZXJ2aWNlOiBCYXNlU2VydmljZSA9IHRoaXMuc2VydmljZU1hbmFnZXJzW3RhYmxlTmFtZV07XG4gICAgICAgIGlmIChzZXJ2aWNlID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgKHRoaXMuX2luamVjdG9yLmdldChOb3RpZmllclNlcnZpY2UpKS5zaG93V2FybmluZygnQuG6oW4gY2jGsGEgxJHEg25nIGvDvSBiYXNlIHNlcnZpY2UgY2hvIGVudGl0eSB3b3JrZmxvdyBoaXN0b3J5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXJ2aWNlVXJpID0gYCR7dGhpcy5nZXRFbmRwb2ludEJ5U2VydmljZShzZXJ2aWNlKX0vV29ya2Zsb3dTZXR0aW5nYDtcbiAgICB9XG5cbiAgICByZW5kZXJEYXRhU291cmNlQWN0aW9uV29ya2Zsb3cod29ya2Zsb3dTY2hlbWE6IFdmU2NoZW1hKTogYW55W10ge1xuICAgICAgICBjb25zdCBkYXRhU291cmNlQWN0aW9uID0gW107XG4gICAgICAgIGNvbnN0IGRpY1NhbWVOYW1lOiB7IFtrZXk6IHN0cmluZ106IGFueVtdIH0gPSB7fTtcbiAgICAgICAgd29ya2Zsb3dTY2hlbWEuY29ubmVjdGlvbnMuc29ydChtdWx0aXBsZVNvcnQoJ3NvVGh1VHUnKSkuZm9yRWFjaChhY3Rpb24gPT4ge1xuICAgICAgICAgICAgY29uc3Qgc291cmNlID0gd29ya2Zsb3dTY2hlbWEubWFjaGluZXMuZmluZChxID0+IHEuaWQgPT0gYWN0aW9uLnNvdXJjZSk7XG4gICAgICAgICAgICBpZiAoc291cmNlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbUFkZCA9IHtcbiAgICAgICAgICAgICAgICAgICAgY29kZTogYCR7c291cmNlLmNvZGV9X19fJHthY3Rpb24uY29kZX1gLFxuICAgICAgICAgICAgICAgICAgICByYXdDb2RlOiBhY3Rpb24uY29kZSxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogYWN0aW9uLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIG5hbWVMb3dlcjogYWN0aW9uLm5hbWUudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICAgICAgICAgICAgdGVuOiBhY3Rpb24ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgc2hvcnRUZW46IGFjdGlvbi5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBzb3VyY2VOYW1lOiBzb3VyY2UubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgc291cmNlQ29kZTogc291cmNlLmNvZGVcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1FeGlzdCA9IGRhdGFTb3VyY2VBY3Rpb24uZmluZChxID0+IHEubmFtZUxvd2VyID09IGl0ZW1BZGQubmFtZUxvd2VyKTtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbUV4aXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghZGljU2FtZU5hbWVbaXRlbUFkZC5uYW1lTG93ZXJdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaWNTYW1lTmFtZVtpdGVtQWRkLm5hbWVMb3dlcl0gPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoZGljU2FtZU5hbWVbaXRlbUFkZC5uYW1lTG93ZXJdLmluZGV4T2YoaXRlbUV4aXN0KSA9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGljU2FtZU5hbWVbaXRlbUFkZC5uYW1lTG93ZXJdLnB1c2goaXRlbUV4aXN0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoZGljU2FtZU5hbWVbaXRlbUFkZC5uYW1lTG93ZXJdLmluZGV4T2YoaXRlbUFkZCkgPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpY1NhbWVOYW1lW2l0ZW1BZGQubmFtZUxvd2VyXS5wdXNoKGl0ZW1BZGQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRhdGFTb3VyY2VBY3Rpb24ucHVzaChpdGVtQWRkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubWFrZVVuaXF1ZU5hbWUoZGljU2FtZU5hbWUpO1xuICAgICAgICByZXR1cm4gZGF0YVNvdXJjZUFjdGlvbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdlbmVyYXRlVGVuV2l0aENvZGUoaXRlbTogYW55KSB7XG4gICAgICAgIGl0ZW0udGVuID0gYCR7aXRlbS5uYW1lfSAtICR7aXRlbS5yYXdDb2RlfWA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZW5lcmF0ZVRlbldpdGhTb3VyY2UoaXRlbTogYW55KSB7XG4gICAgICAgIGl0ZW0udGVuID0gYCR7aXRlbS5uYW1lfSAoJHtpdGVtLnNvdXJjZU5hbWV9IC0gJHtpdGVtLnNvdXJjZUNvZGV9KWA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZW5lcmF0ZVRlbkZ1bGwoaXRlbTogYW55KSB7XG4gICAgICAgIGl0ZW0udGVuID0gYCR7aXRlbS5uYW1lfSAtICR7aXRlbS5yYXdDb2RlfSAoJHtpdGVtLnNvdXJjZU5hbWV9IC0gJHtpdGVtLnNvdXJjZUNvZGV9KWA7XG4gICAgfVxuXG4gICAgbWluaW1pemVEYXRhc291cmNlQWN0aW9uKGFjdGlvbnM6IGFueVtdLCBsc3RXb3JrZmxvd0hpc3Rvcnk6IGFueVtdKSB7XG4gICAgICAgIGNvbnN0IGRhdGFTb3VyY2VBY3Rpb24gPSBbXTtcbiAgICAgICAgY29uc3QgZGljU2FtZU5hbWU6IHsgW2tleTogc3RyaW5nXTogYW55W10gfSA9IHt9O1xuICAgICAgICBhY3Rpb25zLmZvckVhY2goYWN0aW9uID0+IHtcbiAgICAgICAgICAgIGlmIChhY3Rpb24uYnVpbGRJbikge1xuICAgICAgICAgICAgICAgIGRhdGFTb3VyY2VBY3Rpb24ucHVzaChhY3Rpb24pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFjdGlvbi50ZW4gPSBhY3Rpb24uc2hvcnRUZW47XG4gICAgICAgICAgICBpZiAobHN0V29ya2Zsb3dIaXN0b3J5KSB7XG4gICAgICAgICAgICAgICAgaWYgKCFsc3RXb3JrZmxvd0hpc3Rvcnkuc29tZShxID0+IHEuc291cmNlU3RhdHVzQ29kZSA9PSBhY3Rpb24uc291cmNlQ29kZSAmJiBxLmFjdGlvbkNvZGUgPT0gYWN0aW9uLnJhd0NvZGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpdGVtRXhpc3QgPSBkYXRhU291cmNlQWN0aW9uLmZpbmQocSA9PiBxLm5hbWVMb3dlciA9PSBhY3Rpb24ubmFtZUxvd2VyKTtcbiAgICAgICAgICAgIGlmIChpdGVtRXhpc3QpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWRpY1NhbWVOYW1lW2FjdGlvbi5uYW1lTG93ZXJdKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpY1NhbWVOYW1lW2FjdGlvbi5uYW1lTG93ZXJdID0gW107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChkaWNTYW1lTmFtZVthY3Rpb24ubmFtZUxvd2VyXS5pbmRleE9mKGl0ZW1FeGlzdCkgPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgZGljU2FtZU5hbWVbYWN0aW9uLm5hbWVMb3dlcl0ucHVzaChpdGVtRXhpc3QpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoZGljU2FtZU5hbWVbYWN0aW9uLm5hbWVMb3dlcl0uaW5kZXhPZihhY3Rpb24pID09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpY1NhbWVOYW1lW2FjdGlvbi5uYW1lTG93ZXJdLnB1c2goYWN0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYXRhU291cmNlQWN0aW9uLnB1c2goYWN0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubWFrZVVuaXF1ZU5hbWUoZGljU2FtZU5hbWUpO1xuICAgICAgICByZXR1cm4gZGF0YVNvdXJjZUFjdGlvbjtcbiAgICB9XG5cbiAgICBtYWtlVW5pcXVlTmFtZShkaWNTYW1lTmFtZTogeyBba2V5OiBzdHJpbmddOiBhbnlbXSB9KSB7XG4gICAgICAgIE9iamVjdC52YWx1ZXMoZGljU2FtZU5hbWUpLmZvckVhY2gobHN0SXRlbSA9PiB7XG4gICAgICAgICAgICBsZXQgYXJyVGVuID0gW107XG4gICAgICAgICAgICBsZXQgZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbHN0SXRlbS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMuZ2VuZXJhdGVUZW5XaXRoQ29kZShsc3RJdGVtW2ldKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0ZW5Mb3dlciA9IGxzdEl0ZW1baV0udGVuLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgaWYgKGFyclRlbi5pbmRleE9mKHRlbkxvd2VyKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGFyclRlbi5wdXNoKHRlbkxvd2VyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghZXJyb3IpIHJldHVybjtcblxuICAgICAgICAgICAgZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgIGFyclRlbiA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsc3RJdGVtLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZVRlbldpdGhTb3VyY2UobHN0SXRlbVtpXSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGVuTG93ZXIgPSBsc3RJdGVtW2ldLnRlbi50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIGlmIChhcnJUZW4uaW5kZXhPZih0ZW5Mb3dlcikgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICBlcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhcnJUZW4ucHVzaCh0ZW5Mb3dlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWVycm9yKSByZXR1cm47XG5cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbHN0SXRlbS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMuZ2VuZXJhdGVUZW5GdWxsKGxzdEl0ZW1baV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctc2V0dGluZ3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvd29ya2Zsb3cvc2VydmljZXMvd29ya2Zsb3ctc2V0dGluZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFNcEQsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFdBQVc7SUFNcEQsWUFDSSxJQUFnQixFQUNoQixRQUFrQixFQUNsQixtQkFBdUM7UUFFdkMsS0FBSyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFWOUIsZ0JBQVcsR0FBVyxVQUFVLENBQUM7UUFDakMsZUFBVSxHQUFHLGlCQUFpQixDQUFDO1FBQ3ZCLG9CQUFlLEdBRW5CLEVBQUUsQ0FBQztRQU9ILElBQUksQ0FBQyxRQUFRLEdBQUcsbUJBQW1CLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxrQkFBa0IsQ0FBQztJQUN6RCxDQUFDO0lBRUQsZUFBZSxDQUFDLFVBQWtCLEVBQUUsT0FBb0I7UUFDcEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRyxPQUFPLENBQUM7SUFDL0MsQ0FBQztJQUVELG9CQUFvQixDQUFDLE9BQW9CO1FBQ3JDLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYyxDQUFDLFdBQXdCO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDO1FBQzlFLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxTQUFpQjtRQUNsQyxNQUFNLE9BQU8sR0FBZ0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3RCxJQUFJLE9BQU8sSUFBSSxTQUFTLEVBQUU7WUFDdEIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1NBQ2xIO1FBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7SUFDOUUsQ0FBQztJQUVELDhCQUE4QixDQUFDLGNBQXdCO1FBQ25ELE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQzVCLE1BQU0sV0FBVyxHQUE2QixFQUFFLENBQUM7UUFDakQsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3RFLE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDeEUsSUFBSSxNQUFNLEVBQUU7Z0JBQ1IsTUFBTSxPQUFPLEdBQUc7b0JBQ1osSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksTUFBTSxNQUFNLENBQUMsSUFBSSxFQUFFO29CQUN2QyxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUk7b0JBQ3BCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtvQkFDakIsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO29CQUNwQyxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSTtvQkFDckIsVUFBVSxFQUFFLE1BQU0sQ0FBQyxJQUFJO29CQUN2QixVQUFVLEVBQUUsTUFBTSxDQUFDLElBQUk7aUJBQzFCLENBQUM7Z0JBQ0YsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQy9FLElBQUksU0FBUyxFQUFFO29CQUNYLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO3dCQUNqQyxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztxQkFDdkM7b0JBQ0QsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTt3QkFDekQsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7cUJBQ2xEO29CQUNELElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7d0JBQ3ZELFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3FCQUNoRDtpQkFDSjtnQkFDRCxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDbEM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakMsT0FBTyxnQkFBZ0IsQ0FBQztJQUM1QixDQUFDO0lBRU8sbUJBQW1CLENBQUMsSUFBUztRQUNqQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVPLHFCQUFxQixDQUFDLElBQVM7UUFDbkMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFVBQVUsTUFBTSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUM7SUFDeEUsQ0FBQztJQUVPLGVBQWUsQ0FBQyxJQUFTO1FBQzdCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxNQUFNLElBQUksQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLFVBQVUsTUFBTSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUM7SUFDMUYsQ0FBQztJQUVELHdCQUF3QixDQUFDLE9BQWMsRUFBRSxrQkFBeUI7UUFDOUQsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDNUIsTUFBTSxXQUFXLEdBQTZCLEVBQUUsQ0FBQztRQUNqRCxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3JCLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRTtnQkFDaEIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM5QixPQUFPO2FBQ1Y7WUFDRCxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFDN0IsSUFBSSxrQkFBa0IsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsSUFBSSxNQUFNLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUMxRyxPQUFPO2lCQUNWO2FBQ0o7WUFDRCxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM5RSxJQUFJLFNBQVMsRUFBRTtnQkFDWCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRTtvQkFDaEMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUM7aUJBQ3RDO2dCQUNELElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7b0JBQ3hELFdBQVcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUNqRDtnQkFDRCxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO29CQUNyRCxXQUFXLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDOUM7YUFDSjtZQUNELGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakMsT0FBTyxnQkFBZ0IsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYyxDQUFDLFdBQXFDO1FBQ2hELE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3pDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztZQUNoQixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDckMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDOUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUMvQixLQUFLLEdBQUcsSUFBSSxDQUFDO29CQUNiLE1BQU07aUJBQ1Q7Z0JBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUN6QjtZQUNELElBQUksQ0FBQyxLQUFLO2dCQUFFLE9BQU87WUFFbkIsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNkLE1BQU0sR0FBRyxFQUFFLENBQUM7WUFDWixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDckMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUM5QyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQy9CLEtBQUssR0FBRyxJQUFJLENBQUM7b0JBQ2IsTUFBTTtpQkFDVDtnQkFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3pCO1lBQ0QsSUFBSSxDQUFDLEtBQUs7Z0JBQUUsT0FBTztZQUVuQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDckMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNwQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7OztZQXZKSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQVZRLFVBQVU7WUFDRSxRQUFRO1lBRXBCLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9iYXNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZW52aXJvbm1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBOb3RpZmllclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9ub3RpZmllci5zZXJ2aWNlJztcbmltcG9ydCB7IG11bHRpcGxlU29ydCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2FycmF5JztcbmltcG9ydCB7IFdmU2NoZW1hIH0gZnJvbSAnLi4vbW9kZWxzL21vZGVscyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgV29ya2Zsb3dTZXR0aW5nc1NlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XG4gICAgc2VydmljZUNvZGU6IHN0cmluZyA9ICd3b3JrZmxvdyc7XG4gICAgZW50aXR5TmFtZSA9ICdXb3JrZmxvd1NldHRpbmcnO1xuICAgIHByaXZhdGUgc2VydmljZU1hbmFnZXJzOiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IEJhc2VTZXJ2aWNlXG4gICAgfSA9IHt9O1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBodHRwOiBIdHRwQ2xpZW50LFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIF9lbnZpcm9ubWVudFNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcihodHRwLCBpbmplY3RvciwgJycpO1xuICAgICAgICB0aGlzLmVuZFBvaW50ID0gX2Vudmlyb25tZW50U2VydmljZS5nZXRIdHRwU2VydmljZUVuZHBvaW50V2l0aFZlcnNpb24odGhpcy5zZXJ2aWNlQ29kZSk7XG4gICAgICAgIHRoaXMuc2VydmljZVVyaSA9IGAke3RoaXMuZW5kUG9pbnR9L1dvcmtmbG93U2V0dGluZ2A7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJTZXJ2aWNlKGVudGl0eU5hbWU6IHN0cmluZywgc2VydmljZTogQmFzZVNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlTWFuYWdlcnNbZW50aXR5TmFtZV0gPSBzZXJ2aWNlO1xuICAgIH1cblxuICAgIGdldEVuZHBvaW50QnlTZXJ2aWNlKHNlcnZpY2U6IEJhc2VTZXJ2aWNlKSB7XG4gICAgICAgIHJldHVybiBzZXJ2aWNlLmVuZFBvaW50O1xuICAgIH1cblxuICAgIGNoYW5nZUVuZHBvaW50KGJhc2VTZXJ2aWNlOiBCYXNlU2VydmljZSk6IFdvcmtmbG93U2V0dGluZ3NTZXJ2aWNlIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlVXJpID0gYCR7dGhpcy5nZXRFbmRwb2ludEJ5U2VydmljZShiYXNlU2VydmljZSl9L1dvcmtmbG93U2V0dGluZ2A7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHNldEN1cnJlbnRTZXJ2aWNlVXJpKHRhYmxlTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHNlcnZpY2U6IEJhc2VTZXJ2aWNlID0gdGhpcy5zZXJ2aWNlTWFuYWdlcnNbdGFibGVOYW1lXTtcbiAgICAgICAgaWYgKHNlcnZpY2UgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAodGhpcy5faW5qZWN0b3IuZ2V0KE5vdGlmaWVyU2VydmljZSkpLnNob3dXYXJuaW5nKCdC4bqhbiBjaMawYSDEkcSDbmcga8O9IGJhc2Ugc2VydmljZSBjaG8gZW50aXR5IHdvcmtmbG93IGhpc3RvcnknKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlcnZpY2VVcmkgPSBgJHt0aGlzLmdldEVuZHBvaW50QnlTZXJ2aWNlKHNlcnZpY2UpfS9Xb3JrZmxvd1NldHRpbmdgO1xuICAgIH1cblxuICAgIHJlbmRlckRhdGFTb3VyY2VBY3Rpb25Xb3JrZmxvdyh3b3JrZmxvd1NjaGVtYTogV2ZTY2hlbWEpOiBhbnlbXSB7XG4gICAgICAgIGNvbnN0IGRhdGFTb3VyY2VBY3Rpb24gPSBbXTtcbiAgICAgICAgY29uc3QgZGljU2FtZU5hbWU6IHsgW2tleTogc3RyaW5nXTogYW55W10gfSA9IHt9O1xuICAgICAgICB3b3JrZmxvd1NjaGVtYS5jb25uZWN0aW9ucy5zb3J0KG11bHRpcGxlU29ydCgnc29UaHVUdScpKS5mb3JFYWNoKGFjdGlvbiA9PiB7XG4gICAgICAgICAgICBjb25zdCBzb3VyY2UgPSB3b3JrZmxvd1NjaGVtYS5tYWNoaW5lcy5maW5kKHEgPT4gcS5pZCA9PSBhY3Rpb24uc291cmNlKTtcbiAgICAgICAgICAgIGlmIChzb3VyY2UpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtQWRkID0ge1xuICAgICAgICAgICAgICAgICAgICBjb2RlOiBgJHtzb3VyY2UuY29kZX1fX18ke2FjdGlvbi5jb2RlfWAsXG4gICAgICAgICAgICAgICAgICAgIHJhd0NvZGU6IGFjdGlvbi5jb2RlLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBhY3Rpb24ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgbmFtZUxvd2VyOiBhY3Rpb24ubmFtZS50b0xvd2VyQ2FzZSgpLFxuICAgICAgICAgICAgICAgICAgICB0ZW46IGFjdGlvbi5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBzaG9ydFRlbjogYWN0aW9uLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZU5hbWU6IHNvdXJjZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBzb3VyY2VDb2RlOiBzb3VyY2UuY29kZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbUV4aXN0ID0gZGF0YVNvdXJjZUFjdGlvbi5maW5kKHEgPT4gcS5uYW1lTG93ZXIgPT0gaXRlbUFkZC5uYW1lTG93ZXIpO1xuICAgICAgICAgICAgICAgIGlmIChpdGVtRXhpc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFkaWNTYW1lTmFtZVtpdGVtQWRkLm5hbWVMb3dlcl0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpY1NhbWVOYW1lW2l0ZW1BZGQubmFtZUxvd2VyXSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChkaWNTYW1lTmFtZVtpdGVtQWRkLm5hbWVMb3dlcl0uaW5kZXhPZihpdGVtRXhpc3QpID09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaWNTYW1lTmFtZVtpdGVtQWRkLm5hbWVMb3dlcl0ucHVzaChpdGVtRXhpc3QpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChkaWNTYW1lTmFtZVtpdGVtQWRkLm5hbWVMb3dlcl0uaW5kZXhPZihpdGVtQWRkKSA9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGljU2FtZU5hbWVbaXRlbUFkZC5uYW1lTG93ZXJdLnB1c2goaXRlbUFkZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGF0YVNvdXJjZUFjdGlvbi5wdXNoKGl0ZW1BZGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5tYWtlVW5pcXVlTmFtZShkaWNTYW1lTmFtZSk7XG4gICAgICAgIHJldHVybiBkYXRhU291cmNlQWN0aW9uO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2VuZXJhdGVUZW5XaXRoQ29kZShpdGVtOiBhbnkpIHtcbiAgICAgICAgaXRlbS50ZW4gPSBgJHtpdGVtLm5hbWV9IC0gJHtpdGVtLnJhd0NvZGV9YDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdlbmVyYXRlVGVuV2l0aFNvdXJjZShpdGVtOiBhbnkpIHtcbiAgICAgICAgaXRlbS50ZW4gPSBgJHtpdGVtLm5hbWV9ICgke2l0ZW0uc291cmNlTmFtZX0gLSAke2l0ZW0uc291cmNlQ29kZX0pYDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdlbmVyYXRlVGVuRnVsbChpdGVtOiBhbnkpIHtcbiAgICAgICAgaXRlbS50ZW4gPSBgJHtpdGVtLm5hbWV9IC0gJHtpdGVtLnJhd0NvZGV9ICgke2l0ZW0uc291cmNlTmFtZX0gLSAke2l0ZW0uc291cmNlQ29kZX0pYDtcbiAgICB9XG5cbiAgICBtaW5pbWl6ZURhdGFzb3VyY2VBY3Rpb24oYWN0aW9uczogYW55W10sIGxzdFdvcmtmbG93SGlzdG9yeTogYW55W10pIHtcbiAgICAgICAgY29uc3QgZGF0YVNvdXJjZUFjdGlvbiA9IFtdO1xuICAgICAgICBjb25zdCBkaWNTYW1lTmFtZTogeyBba2V5OiBzdHJpbmddOiBhbnlbXSB9ID0ge307XG4gICAgICAgIGFjdGlvbnMuZm9yRWFjaChhY3Rpb24gPT4ge1xuICAgICAgICAgICAgaWYgKGFjdGlvbi5idWlsZEluKSB7XG4gICAgICAgICAgICAgICAgZGF0YVNvdXJjZUFjdGlvbi5wdXNoKGFjdGlvbik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYWN0aW9uLnRlbiA9IGFjdGlvbi5zaG9ydFRlbjtcbiAgICAgICAgICAgIGlmIChsc3RXb3JrZmxvd0hpc3RvcnkpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWxzdFdvcmtmbG93SGlzdG9yeS5zb21lKHEgPT4gcS5zb3VyY2VTdGF0dXNDb2RlID09IGFjdGlvbi5zb3VyY2VDb2RlICYmIHEuYWN0aW9uQ29kZSA9PSBhY3Rpb24ucmF3Q29kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGl0ZW1FeGlzdCA9IGRhdGFTb3VyY2VBY3Rpb24uZmluZChxID0+IHEubmFtZUxvd2VyID09IGFjdGlvbi5uYW1lTG93ZXIpO1xuICAgICAgICAgICAgaWYgKGl0ZW1FeGlzdCkge1xuICAgICAgICAgICAgICAgIGlmICghZGljU2FtZU5hbWVbYWN0aW9uLm5hbWVMb3dlcl0pIHtcbiAgICAgICAgICAgICAgICAgICAgZGljU2FtZU5hbWVbYWN0aW9uLm5hbWVMb3dlcl0gPSBbXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGRpY1NhbWVOYW1lW2FjdGlvbi5uYW1lTG93ZXJdLmluZGV4T2YoaXRlbUV4aXN0KSA9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICBkaWNTYW1lTmFtZVthY3Rpb24ubmFtZUxvd2VyXS5wdXNoKGl0ZW1FeGlzdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChkaWNTYW1lTmFtZVthY3Rpb24ubmFtZUxvd2VyXS5pbmRleE9mKGFjdGlvbikgPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgZGljU2FtZU5hbWVbYWN0aW9uLm5hbWVMb3dlcl0ucHVzaChhY3Rpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRhdGFTb3VyY2VBY3Rpb24ucHVzaChhY3Rpb24pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5tYWtlVW5pcXVlTmFtZShkaWNTYW1lTmFtZSk7XG4gICAgICAgIHJldHVybiBkYXRhU291cmNlQWN0aW9uO1xuICAgIH1cblxuICAgIG1ha2VVbmlxdWVOYW1lKGRpY1NhbWVOYW1lOiB7IFtrZXk6IHN0cmluZ106IGFueVtdIH0pIHtcbiAgICAgICAgT2JqZWN0LnZhbHVlcyhkaWNTYW1lTmFtZSkuZm9yRWFjaChsc3RJdGVtID0+IHtcbiAgICAgICAgICAgIGxldCBhcnJUZW4gPSBbXTtcbiAgICAgICAgICAgIGxldCBlcnJvciA9IGZhbHNlO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsc3RJdGVtLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZVRlbldpdGhDb2RlKGxzdEl0ZW1baV0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRlbkxvd2VyID0gbHN0SXRlbVtpXS50ZW4udG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICBpZiAoYXJyVGVuLmluZGV4T2YodGVuTG93ZXIpID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYXJyVGVuLnB1c2godGVuTG93ZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFlcnJvcikgcmV0dXJuO1xuXG4gICAgICAgICAgICBlcnJvciA9IGZhbHNlO1xuICAgICAgICAgICAgYXJyVGVuID0gW107XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxzdEl0ZW0ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlVGVuV2l0aFNvdXJjZShsc3RJdGVtW2ldKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0ZW5Mb3dlciA9IGxzdEl0ZW1baV0udGVuLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgaWYgKGFyclRlbi5pbmRleE9mKHRlbkxvd2VyKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGFyclRlbi5wdXNoKHRlbkxvd2VyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghZXJyb3IpIHJldHVybjtcblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsc3RJdGVtLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZVRlbkZ1bGwobHN0SXRlbVtpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -44,7 +44,7 @@ export class EnvironmentService {
|
|
|
44
44
|
getServiceEndpointByServiceInfo(serviceInfo) {
|
|
45
45
|
let endpoint = '';
|
|
46
46
|
if (serviceInfo.useLocal) {
|
|
47
|
-
endpoint = serviceInfo.
|
|
47
|
+
endpoint = serviceInfo.localhttpendpoint;
|
|
48
48
|
}
|
|
49
49
|
else {
|
|
50
50
|
const gateway = this.environment.appMetadata.gateway;
|
|
@@ -98,6 +98,12 @@ export class EnvironmentService {
|
|
|
98
98
|
}
|
|
99
99
|
return endpoint;
|
|
100
100
|
}
|
|
101
|
+
getUserSettingConfig() {
|
|
102
|
+
return this.environment.userSettingConfig;
|
|
103
|
+
}
|
|
104
|
+
getUsersHasPermissionResetPassword() {
|
|
105
|
+
return this.environment.userHasPermissionResetPassword;
|
|
106
|
+
}
|
|
101
107
|
getHttpClientEndpoint(serviceCode) {
|
|
102
108
|
return '';
|
|
103
109
|
}
|
|
@@ -191,7 +197,13 @@ export class EnvironmentService {
|
|
|
191
197
|
return this.isTrue(this.environment.enablePopulateLog);
|
|
192
198
|
}
|
|
193
199
|
getShowDefaultSetting() {
|
|
194
|
-
|
|
200
|
+
const app = this.getObjectApp(this.appCode);
|
|
201
|
+
return this.isTrue(app === null || app === void 0 ? void 0 : app.showdefaultsetting);
|
|
202
|
+
}
|
|
203
|
+
getConfigDefaultSetting() {
|
|
204
|
+
var _a, _b;
|
|
205
|
+
const app = this.getObjectApp(this.appCode);
|
|
206
|
+
return (_b = (_a = app === null || app === void 0 ? void 0 : app.configdefaultsetting) === null || _a === void 0 ? void 0 : _a.column) !== null && _b !== void 0 ? _b : [];
|
|
195
207
|
}
|
|
196
208
|
getDisableNotification() {
|
|
197
209
|
return this.isTrue(this.environment.disableNotification);
|
|
@@ -240,10 +252,11 @@ export class EnvironmentService {
|
|
|
240
252
|
return (_b = (_a = this.environment.defaultValue) === null || _a === void 0 ? void 0 : _a.kySoSim) === null || _b === void 0 ? void 0 : _b.tsaUrl;
|
|
241
253
|
}
|
|
242
254
|
getButtonPermissions() {
|
|
243
|
-
|
|
255
|
+
var _a;
|
|
256
|
+
return (_a = this.environment.buttonPermissions) !== null && _a !== void 0 ? _a : [];
|
|
244
257
|
}
|
|
245
|
-
|
|
246
|
-
return this.environment.
|
|
258
|
+
getFieldsInDefaultSetting() {
|
|
259
|
+
return this.environment.fieldsInDefaultSetting;
|
|
247
260
|
}
|
|
248
261
|
getKeyPressPermissionUtils() {
|
|
249
262
|
return this.environment.keyPressPermissionUtils;
|
|
@@ -278,6 +291,12 @@ export class EnvironmentService {
|
|
|
278
291
|
return null;
|
|
279
292
|
return this.environment.customConfig[key];
|
|
280
293
|
}
|
|
294
|
+
getListDonViQuanLyNganh() {
|
|
295
|
+
return [];
|
|
296
|
+
}
|
|
297
|
+
getListDonViQuanLyHocPhan() {
|
|
298
|
+
return [];
|
|
299
|
+
}
|
|
281
300
|
}
|
|
282
301
|
EnvironmentService.ɵprov = i0.ɵɵdefineInjectable({ factory: function EnvironmentService_Factory() { return new EnvironmentService(i0.ɵɵinject(moduleConfigFunc, 8)); }, token: EnvironmentService, providedIn: "root" });
|
|
283
302
|
EnvironmentService.decorators = [
|
|
@@ -288,4 +307,4 @@ EnvironmentService.decorators = [
|
|
|
288
307
|
EnvironmentService.ctorParameters = () => [
|
|
289
308
|
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [moduleConfigFunc,] }] }
|
|
290
309
|
];
|
|
291
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbInNlcnZpY2VzL2Vudmlyb25tZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJN0UsTUFBTSxVQUFVLGdCQUFnQjtJQUM1QixPQUFPLElBQUksY0FBYyxDQUFlLEVBQUUsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFJRCxNQUFNLE9BQU8sa0JBQWtCO0lBRzNCLFlBRUksa0JBQXVCLElBQUk7UUFFM0IsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNsQiwyQkFBMkI7WUFDM0IsTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3ZELElBQUksSUFBSSxFQUFFO2dCQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN2QztpQkFDSTtnQkFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7YUFDaEQ7U0FDSjthQUNJO1lBQ0QsTUFBTSxrQkFBa0IsR0FBRyxlQUFlLEVBQUUsQ0FBQztZQUM3QyxJQUFJLENBQUMsV0FBVyxHQUFHLGtCQUFrQixDQUFDLFdBQVcsQ0FBQztZQUNsRCxJQUFJLENBQUMsT0FBTyxHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQztZQUMxQyxjQUFjLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7U0FDL0U7SUFDTCxDQUFDO0lBRUQsYUFBYTtRQUNULElBQUksS0FBSyxHQUFHLHNCQUFzQixDQUFDO1FBQ25DLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUU7WUFDL0MsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDO1NBQ3pEO1FBQ0QsT0FBbUI7WUFDZixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sRUFBRTtZQUMzRCxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRTtZQUMvRCxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxpQkFBaUIsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU07WUFDaEcscUJBQXFCLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNO1lBQzdDLHdCQUF3QixFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLHNCQUFzQjtZQUN6RSxZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ2pJLEtBQUs7WUFDTCxvQkFBb0IsRUFBRSxLQUFLO1lBQzNCLGtCQUFrQixFQUFFLElBQUk7WUFDeEIsZ0JBQWdCLEVBQUUsS0FBSztZQUN2QixtQkFBbUIsRUFBRSxJQUFJO1NBQzVCLENBQUM7SUFDTixDQUFDO0lBRU8sK0JBQStCLENBQUMsV0FBZ0I7UUFDcEQsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRTtZQUN0QixRQUFRLEdBQUcsV0FBVyxDQUFDLGlCQUFpQixDQUFDO1NBQzVDO2FBQ0k7WUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7WUFDckQsUUFBUSxHQUFHLEdBQUcsT0FBTyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUMvQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFFTywwQ0FBMEMsQ0FBQyxXQUFnQjtRQUMvRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsK0JBQStCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkUsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUM7UUFDbEQsSUFBSSxXQUFXLENBQUMsVUFBVSxFQUFFO1lBQ3hCLFVBQVUsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDO1NBQ3ZDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsR0FBRyxRQUFRLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDNUMsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVPLHVCQUF1QixDQUFDLFdBQW1CLEVBQUUsaUJBQTBCLEtBQUs7UUFDaEYsV0FBVyxHQUFHLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN4QyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxXQUFXLENBQUMsQ0FBQztRQUM5RixJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyx1Q0FBdUMsV0FBVyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ25GLE9BQU8sRUFBRSxDQUFDO1NBQ2I7UUFBQSxDQUFDO1FBQ0YsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNqQixPQUFPLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUM1RDtRQUNELE9BQU8sSUFBSSxDQUFDLDBDQUEwQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxXQUFtQjtRQUN0QyxPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELGlDQUFpQyxDQUFDLFdBQVc7UUFDekMsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxXQUFtQjtRQUN6QyxXQUFXLEdBQUcsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLFdBQVcsQ0FBQyxDQUFDO1FBQzlGLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLHVDQUF1QyxXQUFXLGlCQUFpQixDQUFDLENBQUM7WUFDbkYsT0FBTyxFQUFFLENBQUM7U0FDYjtRQUFBLENBQUM7UUFDRixJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFO1lBQ3RCLFFBQVEsR0FBRyxXQUFXLENBQUMsb0JBQW9CLENBQUM7U0FDL0M7YUFDSTtZQUNELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztZQUN4RCxRQUFRLEdBQUcsR0FBRyxPQUFPLElBQUksV0FBVyxFQUFFLENBQUM7U0FDMUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRUQscUJBQXFCLENBQUMsV0FBbUI7UUFDckMsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsZUFBZSxDQUFDLFdBQW1CO1FBQy9CLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLFdBQVcsQ0FBQyxDQUFDO1FBQzlGLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLHVDQUF1QyxXQUFXLGlCQUFpQixDQUFDLENBQUM7WUFDbkYsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFBQSxDQUFDO1FBQ0YsT0FBTyxXQUFXLENBQUMsYUFBYSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxZQUFZO1FBQ1IsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO1FBQzlELElBQUksQ0FBQyxhQUFhO1lBQUUsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN2QyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNyQyxJQUFLLGFBQWEsQ0FBQyxHQUFHLENBQVMsS0FBSyxNQUFNLElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDdkUsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQzthQUM3QjtpQkFDSTtnQkFDRCxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO2FBQzlCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLGFBQWEsQ0FBQztJQUN6QixDQUFDO0lBRUQsb0JBQW9CO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQy9ELENBQUM7SUFFRCxzQkFBc0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDakUsQ0FBQztJQUVPLE1BQU0sQ0FBQyxLQUFVO1FBQ3JCLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssTUFBTSxDQUFDO0lBQzlDLENBQUM7SUFFRCx1QkFBdUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsVUFBVTtRQUNOLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYztRQUN2QixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFRCxhQUFhLENBQUMsTUFBYztRQUN4QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBYztRQUM1QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQsNEJBQTRCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELDBCQUEwQjtRQUN0QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxnQkFBZ0I7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsVUFBVTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsY0FBYztRQUNWLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDdkQsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUMvRCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxVQUFVO1FBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztJQUNwQyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELHFCQUFxQjtRQUNqQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCx3QkFBd0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELHFCQUFxQjtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDO0lBQzlELENBQUM7SUFFRCxvQkFBb0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQscUJBQXFCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsc0JBQXNCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELHdCQUF3QjtRQUNwQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztJQUNsRCxDQUFDO0lBRUQsZ0NBQWdDO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUM7SUFDMUQsQ0FBQztJQUVELHlCQUF5QjtRQUNyQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztJQUNuRCxDQUFDO0lBRUQseUJBQXlCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO0lBQ25ELENBQUM7SUFFRCx1QkFBdUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7SUFDakQsQ0FBQztJQUVELGVBQWU7UUFDWCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxvQkFBb0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDO0lBQzlDLENBQUM7SUFFRCxvQkFBb0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDOUMsQ0FBQztJQUVELGFBQWE7UUFDVCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztJQUNoRCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUM7SUFDdkQsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxtQ0FBbUM7UUFDL0IsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQztJQUNuRCxDQUFDO0lBRUQsdUJBQXVCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQztJQUNqRCxDQUFDO0lBRUQsaUJBQWlCOztRQUNiLG1CQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSwwQ0FBRSxPQUFPLDBDQUFFLE1BQU0sQ0FBQztJQUMxRCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQztJQUM5QyxDQUFDO0lBRUQscUJBQXFCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQztJQUMvQyxDQUFDO0lBRUQsMEJBQTBCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQztJQUNwRCxDQUFDO0lBRUQsY0FBYztRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUM7SUFDeEMsQ0FBQztJQUVELFFBQVE7UUFDSixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDbkQsQ0FBQztJQUVELE9BQU87UUFDSCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbEQsQ0FBQztJQUVELFFBQVE7UUFDSixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDbkQsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUM7SUFDM0MsQ0FBQztJQUVELGtCQUFrQjs7UUFDZCxhQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSwwQ0FBRSxlQUFlLENBQUM7SUFDMUQsQ0FBQztJQUVELGVBQWU7UUFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsd0JBQXdCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUM7SUFDMUQsQ0FBQztJQUVELGVBQWUsQ0FBQyxHQUFXO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVk7WUFBRSxPQUFPLElBQUksQ0FBQztRQUNoRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlDLENBQUM7Ozs7WUE3VUosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCOzs7NENBS1EsUUFBUSxZQUFJLE1BQU0sU0FBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aENvbmZpZyB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRTY2hlbWEgfSBmcm9tICcuLi9jbGFzc2VzL2Vudmlyb25tZW50LXNjaGVtYSc7XG5pbXBvcnQgeyBNb2R1bGVDb25maWcgfSBmcm9tICcuLi9jb25maWdzL21vZHVsZS1jb25maWcnO1xuZXhwb3J0IGZ1bmN0aW9uIG1vZHVsZUNvbmZpZ0Z1bmMoKSB7XG4gICAgcmV0dXJuIG5ldyBJbmplY3Rpb25Ub2tlbjxNb2R1bGVDb25maWc+KCcnKTtcbn1cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRW52aXJvbm1lbnRTZXJ2aWNlIHtcbiAgICBlbnZpcm9ubWVudDogRW52aXJvbm1lbnRTY2hlbWE7XG4gICAgcHJpdmF0ZSBhcHBDb2RlOiBzdHJpbmc7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QobW9kdWxlQ29uZmlnRnVuYylcbiAgICAgICAgbW9kdWxlQ29uZmlnVmFsOiBhbnkgPSBudWxsXG4gICAgKSB7XG4gICAgICAgIGlmICghbW9kdWxlQ29uZmlnVmFsKSB7XG4gICAgICAgICAgICAvLyBnZXQgZnJvbSBzZXNzaW9uIHN0b3JhZ2VcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdtb2R1bGVDb25maWdWYWwnKTtcbiAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IEpTT04ucGFyc2UoZGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdjYW5ub3QgZmluZCBtb2R1bGVDb25maWdWYWwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG9iak1vZHVsZUNvbmZpZ1ZhbCA9IG1vZHVsZUNvbmZpZ1ZhbCgpO1xuICAgICAgICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IG9iak1vZHVsZUNvbmZpZ1ZhbC5lbnZpcm9ubWVudDtcbiAgICAgICAgICAgIHRoaXMuYXBwQ29kZSA9IG9iak1vZHVsZUNvbmZpZ1ZhbC5hcHBDb2RlO1xuICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnbW9kdWxlQ29uZmlnVmFsJywgSlNPTi5zdHJpbmdpZnkodGhpcy5lbnZpcm9ubWVudCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0QXV0aENvbmZpZygpOiBBdXRoQ29uZmlnIHtcbiAgICAgICAgbGV0IHNjb3BlID0gJ29wZW5pZCBwcm9maWxlIGVtYWlsJztcbiAgICAgICAgaWYgKHRoaXMuZW52aXJvbm1lbnQuYXV0aGVudGljYXRpb25TZXR0aW5ncy5zY29wZSkge1xuICAgICAgICAgICAgc2NvcGUgPSB0aGlzLmVudmlyb25tZW50LmF1dGhlbnRpY2F0aW9uU2V0dGluZ3Muc2NvcGU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIDxBdXRoQ29uZmlnPntcbiAgICAgICAgICAgIGlzc3VlcjogYCR7dGhpcy5lbnZpcm9ubWVudC5hdXRoZW50aWNhdGlvblNldHRpbmdzLmlzc3Vlcn1gLFxuICAgICAgICAgICAgY2xpZW50SWQ6IGAke3RoaXMuZW52aXJvbm1lbnQuYXV0aGVudGljYXRpb25TZXR0aW5ncy5jbGllbnRJZH1gLFxuICAgICAgICAgICAgcmVkaXJlY3RVcmk6IHRoaXMuZW52aXJvbm1lbnQuYXV0aGVudGljYXRpb25TZXR0aW5ncy5jdXN0b21SZWRpcmVjdFVyaSB8fCB3aW5kb3cubG9jYXRpb24ub3JpZ2luLFxuICAgICAgICAgICAgcG9zdExvZ291dFJlZGlyZWN0VXJpOiB3aW5kb3cubG9jYXRpb24ub3JpZ2luLFxuICAgICAgICAgICAgc2lsZW50UmVmcmVzaFJlZGlyZWN0VXJpOiB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgJy9zaWxlbnQtcmVmcmVzaC5odG1sJyxcbiAgICAgICAgICAgIHJlcXVpcmVIdHRwczogdGhpcy5lbnZpcm9ubWVudC5hdXRoZW50aWNhdGlvblNldHRpbmdzLnJlcXVpcmVIdHRwcyA/IHRoaXMuZW52aXJvbm1lbnQuYXV0aGVudGljYXRpb25TZXR0aW5ncy5yZXF1aXJlSHR0cHMgOiBmYWxzZSxcbiAgICAgICAgICAgIHNjb3BlLFxuICAgICAgICAgICAgc2hvd0RlYnVnSW5mb3JtYXRpb246IGZhbHNlLFxuICAgICAgICAgICAgcmVxdWVzdEFjY2Vzc1Rva2VuOiB0cnVlLFxuICAgICAgICAgICAgdXNlU2lsZW50UmVmcmVzaDogZmFsc2UsXG4gICAgICAgICAgICBjbGVhckhhc2hBZnRlckxvZ2luOiB0cnVlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTZXJ2aWNlRW5kcG9pbnRCeVNlcnZpY2VJbmZvKHNlcnZpY2VJbmZvOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBsZXQgZW5kcG9pbnQgPSAnJztcbiAgICAgICAgaWYgKHNlcnZpY2VJbmZvLnVzZUxvY2FsKSB7XG4gICAgICAgICAgICBlbmRwb2ludCA9IHNlcnZpY2VJbmZvLmxvY2FsSHR0cEVuZHBvaW50O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZ2F0ZXdheSA9IHRoaXMuZW52aXJvbm1lbnQuYXBwTWV0YWRhdGEuZ2F0ZXdheTtcbiAgICAgICAgICAgIGVuZHBvaW50ID0gYCR7Z2F0ZXdheX0vJHtzZXJ2aWNlSW5mby5jb2RlfWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVuZHBvaW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2VydmljZUVuZHBvaW50V2l0aFZlcnNpb25CeVNlcnZpY2VJbmZvKHNlcnZpY2VJbmZvOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBlbmRwb2ludCA9IHRoaXMuZ2V0U2VydmljZUVuZHBvaW50QnlTZXJ2aWNlSW5mbyhzZXJ2aWNlSW5mbyk7XG4gICAgICAgIGxldCBhcGlWZXJzaW9uID0gdGhpcy5lbnZpcm9ubWVudC5tYWpvckFwaVZlcnNpb247XG4gICAgICAgIGlmIChzZXJ2aWNlSW5mby5hcGlWZXJzaW9uKSB7XG4gICAgICAgICAgICBhcGlWZXJzaW9uID0gc2VydmljZUluZm8uYXBpVmVyc2lvbjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHQgPSBgJHtlbmRwb2ludH0vdiR7YXBpVmVyc2lvbn1gO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dldEh0dHBTZXJ2aWNlRW5kcG9pbnQoc2VydmljZUNvZGU6IHN0cmluZywgaW5jbHVkZVZlcnNpb246IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICBzZXJ2aWNlQ29kZSA9IHNlcnZpY2VDb2RlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IHNlcnZpY2VJbmZvID0gT2JqZWN0LnZhbHVlcyh0aGlzLmVudmlyb25tZW50LnNlcnZpY2VzKS5maW5kKHEgPT4gcS5jb2RlID09IHNlcnZpY2VDb2RlKTtcbiAgICAgICAgaWYgKCFzZXJ2aWNlSW5mbykge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgS2jDtG5nIHTDrG0gdGjhuqV5IGVuZHBvaW50IGPhu6dhIHNlcnZpY2UgJHtzZXJ2aWNlQ29kZX0gdHJvbmcgY+G6pXUgaMOsbmhgKTtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKCFpbmNsdWRlVmVyc2lvbikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VydmljZUVuZHBvaW50QnlTZXJ2aWNlSW5mbyhzZXJ2aWNlSW5mbyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VydmljZUVuZHBvaW50V2l0aFZlcnNpb25CeVNlcnZpY2VJbmZvKHNlcnZpY2VJbmZvKTtcbiAgICB9XG5cbiAgICBnZXRIdHRwU2VydmljZUVuZHBvaW50KHNlcnZpY2VDb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0SHR0cFNlcnZpY2VFbmRwb2ludChzZXJ2aWNlQ29kZSwgZmFsc2UpO1xuICAgIH1cblxuICAgIGdldEh0dHBTZXJ2aWNlRW5kcG9pbnRXaXRoVmVyc2lvbihzZXJ2aWNlQ29kZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRIdHRwU2VydmljZUVuZHBvaW50KHNlcnZpY2VDb2RlLCB0cnVlKTtcbiAgICB9XG5cbiAgICBnZXRIdHRwU2VydmljZUVuZHBvaW50T2xkKHNlcnZpY2VDb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBzZXJ2aWNlQ29kZSA9IHNlcnZpY2VDb2RlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IHNlcnZpY2VJbmZvID0gT2JqZWN0LnZhbHVlcyh0aGlzLmVudmlyb25tZW50LnNlcnZpY2VzKS5maW5kKHEgPT4gcS5jb2RlID09IHNlcnZpY2VDb2RlKTtcbiAgICAgICAgaWYgKCFzZXJ2aWNlSW5mbykge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgS2jDtG5nIHTDrG0gdGjhuqV5IGVuZHBvaW50IGPhu6dhIHNlcnZpY2UgJHtzZXJ2aWNlQ29kZX0gdHJvbmcgY+G6pXUgaMOsbmhgKTtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfTtcbiAgICAgICAgbGV0IGVuZHBvaW50ID0gJyc7XG4gICAgICAgIGlmIChzZXJ2aWNlSW5mby51c2VMb2NhbCkge1xuICAgICAgICAgICAgZW5kcG9pbnQgPSBzZXJ2aWNlSW5mby5sb2NhbEh0dHBFbmRwb2ludE9sZDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGdhdGV3YXkgPSB0aGlzLmVudmlyb25tZW50LmFwcE1ldGFkYXRhLmdhdGV3YXlPbGQ7XG4gICAgICAgICAgICBlbmRwb2ludCA9IGAke2dhdGV3YXl9LyR7c2VydmljZUNvZGV9YDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZW5kcG9pbnQ7XG4gICAgfVxuXG4gICAgZ2V0SHR0cENsaWVudEVuZHBvaW50KHNlcnZpY2VDb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgaXNVc2VPbGRTZXJ2aWNlKHNlcnZpY2VDb2RlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qgc2VydmljZUluZm8gPSBPYmplY3QudmFsdWVzKHRoaXMuZW52aXJvbm1lbnQuc2VydmljZXMpLmZpbmQocSA9PiBxLmNvZGUgPT0gc2VydmljZUNvZGUpO1xuICAgICAgICBpZiAoIXNlcnZpY2VJbmZvKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBLaMO0bmcgdMOsbSB0aOG6pXkgZW5kcG9pbnQgY+G7p2Egc2VydmljZSAke3NlcnZpY2VDb2RlfSB0cm9uZyBj4bqldSBow6xuaGApO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gc2VydmljZUluZm8udXNlT2xkVmVyc2lvbjtcbiAgICB9XG5cbiAgICBnZXRFbmFibGVIdWIoKSB7XG4gICAgICAgIGxldCBvYmpFbmFibGVIdWJzID0gdGhpcy5lbnZpcm9ubWVudC5zaWduYWxSQ29uZmlnLmVuYWJsZUh1YnM7XG4gICAgICAgIGlmICghb2JqRW5hYmxlSHVicykgb2JqRW5hYmxlSHVicyA9IHt9O1xuICAgICAgICBPYmplY3Qua2V5cyhvYmpFbmFibGVIdWJzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICBpZiAoKG9iakVuYWJsZUh1YnNba2V5XSBhcyBhbnkpID09PSAndHJ1ZScgfHwgb2JqRW5hYmxlSHVic1trZXldID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgb2JqRW5hYmxlSHVic1trZXldID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG9iakVuYWJsZUh1YnNba2V5XSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG9iakVuYWJsZUh1YnM7XG4gICAgfVxuXG4gICAgZ2V0RGVmYXVsdE1hbGVBdmF0YXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmFwcE1ldGFkYXRhLm1haW4uZGVmYXVsdE1hbGVBdmF0YXI7XG4gICAgfVxuXG4gICAgZ2V0RGVmYXVsdEZlbWFsZUF2YXRhcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuYXBwTWV0YWRhdGEubWFpbi5kZWZhdWx0RmVtYWxlQXZhdGFyO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNUcnVlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSAndHJ1ZSc7XG4gICAgfVxuXG4gICAgZ2V0TG9nb3V0T25VbmF1dGhvcml6ZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVHJ1ZSh0aGlzLmVudmlyb25tZW50LmF1dGhlbnRpY2F0aW9uU2V0dGluZ3MubG9nb3V0T25VbmF1dGhvcml6ZWQpO1xuICAgIH1cblxuICAgIGdldExpc3RBcHAoKTogYW55W10ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLmVudmlyb25tZW50LmFwcHMpO1xuICAgIH1cblxuICAgIGdldE9iamVjdEFwcChtb2R1bGU6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLmVudmlyb25tZW50LmFwcHMpLmZpbmQocSA9PiBxLmNvZGUgPT0gbW9kdWxlLnRvTG93ZXJDYXNlKCkpO1xuICAgIH1cblxuICAgIGdldE1vZHVsZU5hbWUobW9kdWxlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgb2JqQXBwID0gdGhpcy5nZXRPYmplY3RBcHAobW9kdWxlKTtcbiAgICAgICAgcmV0dXJuIG9iakFwcD8udGl0bGU7XG4gICAgfVxuXG4gICAgZ2V0TG9uZ01vZHVsZU5hbWUobW9kdWxlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgb2JqQXBwID0gdGhpcy5nZXRPYmplY3RBcHAobW9kdWxlKTtcbiAgICAgICAgcmV0dXJuIG9iakFwcD8ubG9uZ1RpdGxlO1xuICAgIH1cblxuICAgIGdldFNob3dXYXJuaW5nTWVzc2FnZUluVG9hc3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVHJ1ZSh0aGlzLmVudmlyb25tZW50LnNob3dXYXJuaW5nTWVzc2FnZUluVG9hc3QpO1xuICAgIH1cblxuICAgIGdldFNob3dFcnJvck1lc3NhZ2VJblRvYXN0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1RydWUodGhpcy5lbnZpcm9ubWVudC5zaG93RXJyb3JNZXNzYWdlSW5Ub2FzdCk7XG4gICAgfVxuXG4gICAgZ2V0SXNJZ25vcmVBZG1pbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNUcnVlKHRoaXMuZW52aXJvbm1lbnQuaXNJZ25vcmVBZG1pbik7XG4gICAgfVxuXG4gICAgZ2V0QXBwQ29kZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwQ29kZTtcbiAgICB9XG5cbiAgICBnZXRMaXN0QXBwQ29kZSgpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMuZW52aXJvbm1lbnQuYXBwcykubWFwKHEgPT4gcS5jb2RlKTtcbiAgICB9XG5cbiAgICBnZXRMaXN0QXBpRG9tYWluKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgICAgIE9iamVjdC52YWx1ZXModGhpcy5lbnZpcm9ubWVudC5zZXJ2aWNlcykuZm9yRWFjaChzZXJ2aWNlID0+IHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHRoaXMuZ2V0U2VydmljZUVuZHBvaW50QnlTZXJ2aWNlSW5mbyhzZXJ2aWNlKSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIGdldFN0b3JhZ2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LnN0b3JhZ2U7XG4gICAgfVxuXG4gICAgZ2V0RW5hYmxlVG5DbGllbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVHJ1ZSh0aGlzLmVudmlyb25tZW50LmVuYWJsZVRuQ2xpZW50KTtcbiAgICB9XG5cbiAgICBnZXRJc0ZvcmNlTG9nb3V0SWY0MDEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVHJ1ZSh0aGlzLmVudmlyb25tZW50LmF1dGhlbnRpY2F0aW9uU2V0dGluZ3MuaXNGb3JjZUxvZ291dElmNDAxKTtcbiAgICB9XG5cbiAgICBnZXREaXNhYmxlQXV0aGVudGljYXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVHJ1ZSh0aGlzLmVudmlyb25tZW50LmF1dGhlbnRpY2F0aW9uU2V0dGluZ3MuZGlzYWJsZWQpO1xuICAgIH1cblxuICAgIGdldEF1dGhlbnRpY2F0aW9uVHlwZSgpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmF1dGhlbnRpY2F0aW9uU2V0dGluZ3MuYXV0aGVuVHlwZTtcbiAgICB9XG5cbiAgICBnZXRFbmFibGVQb3B1bGF0ZUxvZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNUcnVlKHRoaXMuZW52aXJvbm1lbnQuZW5hYmxlUG9wdWxhdGVMb2cpO1xuICAgIH1cblxuICAgIGdldFNob3dEZWZhdWx0U2V0dGluZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNUcnVlKHRoaXMuZW52aXJvbm1lbnQuYXBwTWV0YWRhdGEubWFpbi5zaG93RGVmYXVsdFNldHRpbmcpO1xuICAgIH1cblxuICAgIGdldERpc2FibGVOb3RpZmljYXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVHJ1ZSh0aGlzLmVudmlyb25tZW50LmRpc2FibGVOb3RpZmljYXRpb24pO1xuICAgIH1cblxuICAgIGdldEhlbHBDb25maWdfRXhwZXJ0TmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuaGVscENvbmZpZy5leHBlcnROYW1lO1xuICAgIH1cblxuICAgIGdldEhlbHBDb25maWdfRXhwZXJ0UGhvbmVOdW1tYmVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5oZWxwQ29uZmlnLmV4cGVydFBob25lTnVtbWJlcjtcbiAgICB9XG5cbiAgICBnZXRIZWxwQ29uZmlnX0V4cGVydEVtYWlsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5oZWxwQ29uZmlnLmV4cGVydEVtYWlsO1xuICAgIH1cblxuICAgIGdldEhlbHBDb25maWdfTG9nb0NvbXBhbnkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmhlbHBDb25maWcubG9nb0NvbXBhbnk7XG4gICAgfVxuXG4gICAgZ2V0SGVscENvbmZpZ19Eb2N1bWVudHMoKTogYW55W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5oZWxwQ29uZmlnLmRvY3VtZW50cztcbiAgICB9XG5cbiAgICBnZXRTcGxhc2hTY3JlZW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LnNwbGFzaFNjcmVlbjtcbiAgICB9XG5cbiAgICBnZXRVbmRlcmNvbnN0cnVjdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQudW5kZXJjb25zdHJ1Y3Rpb247XG4gICAgfVxuXG4gICAgZ2V0U2lnbmFscl9DbGllbnRLZXkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LnNpZ25hbHIuY2xpZW50S2V5O1xuICAgIH1cblxuICAgIGdldEFwaUdhdGV3YXkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmFwcE1ldGFkYXRhLmdhdGV3YXk7XG4gICAgfVxuXG4gICAgZ2V0R2F0ZXdheVN1YnBhdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmFwcE1ldGFkYXRhLmdhdGV3YXlTdWJwYXRoO1xuICAgIH1cblxuICAgIGdldERvY3VtZW50U2VydmVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5hcHBNZXRhZGF0YS5kb2N1bWVudFNlcnZlcjtcbiAgICB9XG5cbiAgICBnZXRVc2luZ0ludGVybmFsRmlsZUVuZHBvaW50Rm9yVmlldygpIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5lbnZpcm9ubWVudC5pbnRlcm5hbEZpbGVFbmRwb2ludDtcbiAgICB9XG5cbiAgICBnZXRJbnRlcm5hbEZpbGVFbmRwb2ludCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuaW50ZXJuYWxGaWxlRW5kcG9pbnQ7XG4gICAgfVxuXG4gICAgZ2V0S3lTb1NpbV9Uc2FVcmwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmRlZmF1bHRWYWx1ZT8ua3lTb1NpbT8udHNhVXJsO1xuICAgIH1cblxuICAgIGdldEJ1dHRvblBlcm1pc3Npb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5idXR0b25QZXJtaXNzaW9ucztcbiAgICB9XG5cbiAgICBnZXRTZXR0aW5nRGF0YURlZmF1bHQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LnNldHRpbmdEYXRhRGVmYXVsdDtcbiAgICB9XG5cbiAgICBnZXRLZXlQcmVzc1Blcm1pc3Npb25VdGlscygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQua2V5UHJlc3NQZXJtaXNzaW9uVXRpbHM7XG4gICAgfVxuXG4gICAgZ2V0Q3VzdG9taXplVWkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmN1c3RvbWl6ZVVpO1xuICAgIH1cblxuICAgIGdldFRpdGxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5hcHBNZXRhZGF0YS5tYWluLnRpdGxlO1xuICAgIH1cblxuICAgIGdldExvZ28oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmFwcE1ldGFkYXRhLm1haW4ubG9nbztcbiAgICB9XG5cbiAgICBnZXRPd25lcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuYXBwTWV0YWRhdGEubWFpbi5vd25lcjtcbiAgICB9XG5cbiAgICBnZXRFbmFibGVCYXNlSHJlZigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuZW5hYmxlQmFzZUhyZWY7XG4gICAgfVxuXG4gICAgZ2V0RGVmYXVsdFJlZGlyZWN0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5jbGllbnREb21haW4/LmRlZmF1bHRSZWRpcmVjdDtcbiAgICB9XG5cbiAgICBnZXRJc1Byb2R1Y3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVHJ1ZSh0aGlzLmVudmlyb25tZW50LnByb2R1Y3Rpb24pO1xuICAgIH1cblxuICAgIGdldExpbmtEb3dubG9hZENsaWVudEFwcCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuc2lnbmFsci5saW5rRG93bmxvYWRDbGllbnRBcHA7XG4gICAgfVxuXG4gICAgZ2V0Q3VzdG9tQ29uZmlnKGtleTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdGhpcy5lbnZpcm9ubWVudC5jdXN0b21Db25maWcpIHJldHVybiBudWxsO1xuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5jdXN0b21Db25maWdba2V5XTtcbiAgICB9XG59XG4iXX0=
|
|
310
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbInNlcnZpY2VzL2Vudmlyb25tZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJN0UsTUFBTSxVQUFVLGdCQUFnQjtJQUM1QixPQUFPLElBQUksY0FBYyxDQUFlLEVBQUUsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFJRCxNQUFNLE9BQU8sa0JBQWtCO0lBRzNCLFlBRUksa0JBQXVCLElBQUk7UUFFM0IsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNsQiwyQkFBMkI7WUFDM0IsTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3ZELElBQUksSUFBSSxFQUFFO2dCQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN2QztpQkFDSTtnQkFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7YUFDaEQ7U0FDSjthQUNJO1lBQ0QsTUFBTSxrQkFBa0IsR0FBRyxlQUFlLEVBQUUsQ0FBQztZQUM3QyxJQUFJLENBQUMsV0FBVyxHQUFHLGtCQUFrQixDQUFDLFdBQVcsQ0FBQztZQUNsRCxJQUFJLENBQUMsT0FBTyxHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQztZQUMxQyxjQUFjLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7U0FDL0U7SUFDTCxDQUFDO0lBRUQsYUFBYTtRQUNULElBQUksS0FBSyxHQUFHLHNCQUFzQixDQUFDO1FBQ25DLElBQUksSUFB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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dGhDb25maWcgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcbmltcG9ydCB7IEVudmlyb25tZW50U2NoZW1hIH0gZnJvbSAnLi4vY2xhc3Nlcy9lbnZpcm9ubWVudC1zY2hlbWEnO1xuaW1wb3J0IHsgTW9kdWxlQ29uZmlnIH0gZnJvbSAnLi4vY29uZmlncy9tb2R1bGUtY29uZmlnJztcbmV4cG9ydCBmdW5jdGlvbiBtb2R1bGVDb25maWdGdW5jKCkge1xuICAgIHJldHVybiBuZXcgSW5qZWN0aW9uVG9rZW48TW9kdWxlQ29uZmlnPignJyk7XG59XG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEVudmlyb25tZW50U2VydmljZSB7XG4gICAgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50U2NoZW1hO1xuICAgIHByaXZhdGUgYXBwQ29kZTogc3RyaW5nO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KG1vZHVsZUNvbmZpZ0Z1bmMpXG4gICAgICAgIG1vZHVsZUNvbmZpZ1ZhbDogYW55ID0gbnVsbFxuICAgICkge1xuICAgICAgICBpZiAoIW1vZHVsZUNvbmZpZ1ZhbCkge1xuICAgICAgICAgICAgLy8gZ2V0IGZyb20gc2Vzc2lvbiBzdG9yYWdlXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnbW9kdWxlQ29uZmlnVmFsJyk7XG4gICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZW52aXJvbm1lbnQgPSBKU09OLnBhcnNlKGRhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignY2Fubm90IGZpbmQgbW9kdWxlQ29uZmlnVmFsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBvYmpNb2R1bGVDb25maWdWYWwgPSBtb2R1bGVDb25maWdWYWwoKTtcbiAgICAgICAgICAgIHRoaXMuZW52aXJvbm1lbnQgPSBvYmpNb2R1bGVDb25maWdWYWwuZW52aXJvbm1lbnQ7XG4gICAgICAgICAgICB0aGlzLmFwcENvZGUgPSBvYmpNb2R1bGVDb25maWdWYWwuYXBwQ29kZTtcbiAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ21vZHVsZUNvbmZpZ1ZhbCcsIEpTT04uc3RyaW5naWZ5KHRoaXMuZW52aXJvbm1lbnQpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEF1dGhDb25maWcoKTogQXV0aENvbmZpZyB7XG4gICAgICAgIGxldCBzY29wZSA9ICdvcGVuaWQgcHJvZmlsZSBlbWFpbCc7XG4gICAgICAgIGlmICh0aGlzLmVudmlyb25tZW50LmF1dGhlbnRpY2F0aW9uU2V0dGluZ3Muc2NvcGUpIHtcbiAgICAgICAgICAgIHNjb3BlID0gdGhpcy5lbnZpcm9ubWVudC5hdXRoZW50aWNhdGlvblNldHRpbmdzLnNjb3BlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiA8QXV0aENvbmZpZz57XG4gICAgICAgICAgICBpc3N1ZXI6IGAke3RoaXMuZW52aXJvbm1lbnQuYXV0aGVudGljYXRpb25TZXR0aW5ncy5pc3N1ZXJ9YCxcbiAgICAgICAgICAgIGNsaWVudElkOiBgJHt0aGlzLmVudmlyb25tZW50LmF1dGhlbnRpY2F0aW9uU2V0dGluZ3MuY2xpZW50SWR9YCxcbiAgICAgICAgICAgIHJlZGlyZWN0VXJpOiB0aGlzLmVudmlyb25tZW50LmF1dGhlbnRpY2F0aW9uU2V0dGluZ3MuY3VzdG9tUmVkaXJlY3RVcmkgfHwgd2luZG93LmxvY2F0aW9uLm9yaWdpbixcbiAgICAgICAgICAgIHBvc3RMb2dvdXRSZWRpcmVjdFVyaTogd2luZG93LmxvY2F0aW9uLm9yaWdpbixcbiAgICAgICAgICAgIHNpbGVudFJlZnJlc2hSZWRpcmVjdFVyaTogd2luZG93LmxvY2F0aW9uLm9yaWdpbiArICcvc2lsZW50LXJlZnJlc2guaHRtbCcsXG4gICAgICAgICAgICByZXF1aXJlSHR0cHM6IHRoaXMuZW52aXJvbm1lbnQuYXV0aGVudGljYXRpb25TZXR0aW5ncy5yZXF1aXJlSHR0cHMgPyB0aGlzLmVudmlyb25tZW50LmF1dGhlbnRpY2F0aW9uU2V0dGluZ3MucmVxdWlyZUh0dHBzIDogZmFsc2UsXG4gICAgICAgICAgICBzY29wZSxcbiAgICAgICAgICAgIHNob3dEZWJ1Z0luZm9ybWF0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgIHJlcXVlc3RBY2Nlc3NUb2tlbjogdHJ1ZSxcbiAgICAgICAgICAgIHVzZVNpbGVudFJlZnJlc2g6IGZhbHNlLFxuICAgICAgICAgICAgY2xlYXJIYXNoQWZ0ZXJMb2dpbjogdHJ1ZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2VydmljZUVuZHBvaW50QnlTZXJ2aWNlSW5mbyhzZXJ2aWNlSW5mbzogYW55KTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGVuZHBvaW50ID0gJyc7XG4gICAgICAgIGlmIChzZXJ2aWNlSW5mby51c2VMb2NhbCkge1xuICAgICAgICAgICAgZW5kcG9pbnQgPSBzZXJ2aWNlSW5mby5sb2NhbGh0dHBlbmRwb2ludDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGdhdGV3YXkgPSB0aGlzLmVudmlyb25tZW50LmFwcE1ldGFkYXRhLmdhdGV3YXk7XG4gICAgICAgICAgICBlbmRwb2ludCA9IGAke2dhdGV3YXl9LyR7c2VydmljZUluZm8uY29kZX1gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBlbmRwb2ludDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNlcnZpY2VFbmRwb2ludFdpdGhWZXJzaW9uQnlTZXJ2aWNlSW5mbyhzZXJ2aWNlSW5mbzogYW55KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZW5kcG9pbnQgPSB0aGlzLmdldFNlcnZpY2VFbmRwb2ludEJ5U2VydmljZUluZm8oc2VydmljZUluZm8pO1xuICAgICAgICBsZXQgYXBpVmVyc2lvbiA9IHRoaXMuZW52aXJvbm1lbnQubWFqb3JBcGlWZXJzaW9uO1xuICAgICAgICBpZiAoc2VydmljZUluZm8uYXBpVmVyc2lvbikge1xuICAgICAgICAgICAgYXBpVmVyc2lvbiA9IHNlcnZpY2VJbmZvLmFwaVZlcnNpb247XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYCR7ZW5kcG9pbnR9L3Yke2FwaVZlcnNpb259YDtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRIdHRwU2VydmljZUVuZHBvaW50KHNlcnZpY2VDb2RlOiBzdHJpbmcsIGluY2x1ZGVWZXJzaW9uOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAgICAgc2VydmljZUNvZGUgPSBzZXJ2aWNlQ29kZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBzZXJ2aWNlSW5mbyA9IE9iamVjdC52YWx1ZXModGhpcy5lbnZpcm9ubWVudC5zZXJ2aWNlcykuZmluZChxID0+IHEuY29kZSA9PSBzZXJ2aWNlQ29kZSk7XG4gICAgICAgIGlmICghc2VydmljZUluZm8pIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEtow7RuZyB0w6xtIHRo4bqleSBlbmRwb2ludCBj4bunYSBzZXJ2aWNlICR7c2VydmljZUNvZGV9IHRyb25nIGPhuqV1IGjDrG5oYCk7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH07XG4gICAgICAgIGlmICghaW5jbHVkZVZlcnNpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFNlcnZpY2VFbmRwb2ludEJ5U2VydmljZUluZm8oc2VydmljZUluZm8pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmdldFNlcnZpY2VFbmRwb2ludFdpdGhWZXJzaW9uQnlTZXJ2aWNlSW5mbyhzZXJ2aWNlSW5mbyk7XG4gICAgfVxuXG4gICAgZ2V0SHR0cFNlcnZpY2VFbmRwb2ludChzZXJ2aWNlQ29kZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldEh0dHBTZXJ2aWNlRW5kcG9pbnQoc2VydmljZUNvZGUsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBnZXRIdHRwU2VydmljZUVuZHBvaW50V2l0aFZlcnNpb24oc2VydmljZUNvZGUpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0SHR0cFNlcnZpY2VFbmRwb2ludChzZXJ2aWNlQ29kZSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgZ2V0SHR0cFNlcnZpY2VFbmRwb2ludE9sZChzZXJ2aWNlQ29kZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgc2VydmljZUNvZGUgPSBzZXJ2aWNlQ29kZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBzZXJ2aWNlSW5mbyA9IE9iamVjdC52YWx1ZXModGhpcy5lbnZpcm9ubWVudC5zZXJ2aWNlcykuZmluZChxID0+IHEuY29kZSA9PSBzZXJ2aWNlQ29kZSk7XG4gICAgICAgIGlmICghc2VydmljZUluZm8pIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEtow7RuZyB0w6xtIHRo4bqleSBlbmRwb2ludCBj4bunYSBzZXJ2aWNlICR7c2VydmljZUNvZGV9IHRyb25nIGPhuqV1IGjDrG5oYCk7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH07XG4gICAgICAgIGxldCBlbmRwb2ludCA9ICcnO1xuICAgICAgICBpZiAoc2VydmljZUluZm8udXNlTG9jYWwpIHtcbiAgICAgICAgICAgIGVuZHBvaW50ID0gc2VydmljZUluZm8ubG9jYWxIdHRwRW5kcG9pbnRPbGQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBnYXRld2F5ID0gdGhpcy5lbnZpcm9ubWVudC5hcHBNZXRhZGF0YS5nYXRld2F5T2xkO1xuICAgICAgICAgICAgZW5kcG9pbnQgPSBgJHtnYXRld2F5fS8ke3NlcnZpY2VDb2RlfWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVuZHBvaW50O1xuICAgIH1cblxuICAgIGdldFVzZXJTZXR0aW5nQ29uZmlnKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC51c2VyU2V0dGluZ0NvbmZpZztcbiAgICB9XG5cbiAgICBnZXRVc2Vyc0hhc1Blcm1pc3Npb25SZXNldFBhc3N3b3JkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC51c2VySGFzUGVybWlzc2lvblJlc2V0UGFzc3dvcmQ7XG4gICAgfVxuXG4gICAgZ2V0SHR0cENsaWVudEVuZHBvaW50KHNlcnZpY2VDb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgaXNVc2VPbGRTZXJ2aWNlKHNlcnZpY2VDb2RlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qgc2VydmljZUluZm8gPSBPYmplY3QudmFsdWVzKHRoaXMuZW52aXJvbm1lbnQuc2VydmljZXMpLmZpbmQocSA9PiBxLmNvZGUgPT0gc2VydmljZUNvZGUpO1xuICAgICAgICBpZiAoIXNlcnZpY2VJbmZvKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBLaMO0bmcgdMOsbSB0aOG6pXkgZW5kcG9pbnQgY+G7p2Egc2VydmljZSAke3NlcnZpY2VDb2RlfSB0cm9uZyBj4bqldSBow6xuaGApO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gc2VydmljZUluZm8udXNlT2xkVmVyc2lvbjtcbiAgICB9XG5cbiAgICBnZXRFbmFibGVIdWIoKSB7XG4gICAgICAgIGxldCBvYmpFbmFibGVIdWJzID0gdGhpcy5lbnZpcm9ubWVudC5zaWduYWxSQ29uZmlnLmVuYWJsZUh1YnM7XG4gICAgICAgIGlmICghb2JqRW5hYmxlSHVicykgb2JqRW5hYmxlSHVicyA9IHt9O1xuICAgICAgICBPYmplY3Qua2V5cyhvYmpFbmFibGVIdWJzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICBpZiAoKG9iakVuYWJsZUh1YnNba2V5XSBhcyBhbnkpID09PSAndHJ1ZScgfHwgb2JqRW5hYmxlSHVic1trZXldID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgb2JqRW5hYmxlSHVic1trZXldID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG9iakVuYWJsZUh1YnNba2V5XSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG9iakVuYWJsZUh1YnM7XG4gICAgfVxuXG4gICAgZ2V0RGVmYXVsdE1hbGVBdmF0YXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmFwcE1ldGFkYXRhLm1haW4uZGVmYXVsdE1hbGVBdmF0YXI7XG4gICAgfVxuXG4gICAgZ2V0RGVmYXVsdEZlbWFsZUF2YXRhcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuYXBwTWV0YWRhdGEubWFpbi5kZWZhdWx0RmVtYWxlQXZhdGFyO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNUcnVlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSAndHJ1ZSc7XG4gICAgfVxuXG4gICAgZ2V0TG9nb3V0T25VbmF1dGhvcml6ZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVHJ1ZSh0aGlzLmVudmlyb25tZW50LmF1dGhlbnRpY2F0aW9uU2V0dGluZ3MubG9nb3V0T25VbmF1dGhvcml6ZWQpO1xuICAgIH1cblxuICAgIGdldExpc3RBcHAoKTogYW55W10ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLmVudmlyb25tZW50LmFwcHMpO1xuICAgIH1cblxuICAgIGdldE9iamVjdEFwcChtb2R1bGU6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLmVudmlyb25tZW50LmFwcHMpLmZpbmQocSA9PiBxLmNvZGUgPT0gbW9kdWxlLnRvTG93ZXJDYXNlKCkpO1xuICAgIH1cblxuICAgIGdldE1vZHVsZU5hbWUobW9kdWxlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgb2JqQXBwID0gdGhpcy5nZXRPYmplY3RBcHAobW9kdWxlKTtcbiAgICAgICAgcmV0dXJuIG9iakFwcD8udGl0bGU7XG4gICAgfVxuXG4gICAgZ2V0TG9uZ01vZHVsZU5hbWUobW9kdWxlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgb2JqQXBwID0gdGhpcy5nZXRPYmplY3RBcHAobW9kdWxlKTtcbiAgICAgICAgcmV0dXJuIG9iakFwcD8ubG9uZ1RpdGxlO1xuICAgIH1cblxuICAgIGdldFNob3dXYXJuaW5nTWVzc2FnZUluVG9hc3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVHJ1ZSh0aGlzLmVudmlyb25tZW50LnNob3dXYXJuaW5nTWVzc2FnZUluVG9hc3QpO1xuICAgIH1cblxuICAgIGdldFNob3dFcnJvck1lc3NhZ2VJblRvYXN0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1RydWUodGhpcy5lbnZpcm9ubWVudC5zaG93RXJyb3JNZXNzYWdlSW5Ub2FzdCk7XG4gICAgfVxuXG4gICAgZ2V0SXNJZ25vcmVBZG1pbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNUcnVlKHRoaXMuZW52aXJvbm1lbnQuaXNJZ25vcmVBZG1pbik7XG4gICAgfVxuXG4gICAgZ2V0QXBwQ29kZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwQ29kZTtcbiAgICB9XG5cbiAgICBnZXRMaXN0QXBwQ29kZSgpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMuZW52aXJvbm1lbnQuYXBwcykubWFwKHEgPT4gcS5jb2RlKTtcbiAgICB9XG5cbiAgICBnZXRMaXN0QXBpRG9tYWluKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgICAgIE9iamVjdC52YWx1ZXModGhpcy5lbnZpcm9ubWVudC5zZXJ2aWNlcykuZm9yRWFjaChzZXJ2aWNlID0+IHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHRoaXMuZ2V0U2VydmljZUVuZHBvaW50QnlTZXJ2aWNlSW5mbyhzZXJ2aWNlKSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIGdldFN0b3JhZ2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LnN0b3JhZ2U7XG4gICAgfVxuXG4gICAgZ2V0RW5hYmxlVG5DbGllbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVHJ1ZSh0aGlzLmVudmlyb25tZW50LmVuYWJsZVRuQ2xpZW50KTtcbiAgICB9XG5cbiAgICBnZXRJc0ZvcmNlTG9nb3V0SWY0MDEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVHJ1ZSh0aGlzLmVudmlyb25tZW50LmF1dGhlbnRpY2F0aW9uU2V0dGluZ3MuaXNGb3JjZUxvZ291dElmNDAxKTtcbiAgICB9XG5cbiAgICBnZXREaXNhYmxlQXV0aGVudGljYXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVHJ1ZSh0aGlzLmVudmlyb25tZW50LmF1dGhlbnRpY2F0aW9uU2V0dGluZ3MuZGlzYWJsZWQpO1xuICAgIH1cblxuICAgIGdldEF1dGhlbnRpY2F0aW9uVHlwZSgpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmF1dGhlbnRpY2F0aW9uU2V0dGluZ3MuYXV0aGVuVHlwZTtcbiAgICB9XG5cbiAgICBnZXRFbmFibGVQb3B1bGF0ZUxvZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNUcnVlKHRoaXMuZW52aXJvbm1lbnQuZW5hYmxlUG9wdWxhdGVMb2cpO1xuICAgIH1cblxuICAgIGdldFNob3dEZWZhdWx0U2V0dGluZygpIHtcbiAgICAgICAgY29uc3QgYXBwID0gdGhpcy5nZXRPYmplY3RBcHAodGhpcy5hcHBDb2RlKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNUcnVlKGFwcD8uc2hvd2RlZmF1bHRzZXR0aW5nKTtcbiAgICB9XG5cbiAgICBnZXRDb25maWdEZWZhdWx0U2V0dGluZygpIHtcbiAgICAgICAgY29uc3QgYXBwID0gdGhpcy5nZXRPYmplY3RBcHAodGhpcy5hcHBDb2RlKTtcbiAgICAgICAgcmV0dXJuIGFwcD8uY29uZmlnZGVmYXVsdHNldHRpbmc/LmNvbHVtbiA/PyBbXTtcbiAgICB9XG5cbiAgICBnZXREaXNhYmxlTm90aWZpY2F0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1RydWUodGhpcy5lbnZpcm9ubWVudC5kaXNhYmxlTm90aWZpY2F0aW9uKTtcbiAgICB9XG5cbiAgICBnZXRIZWxwQ29uZmlnX0V4cGVydE5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmhlbHBDb25maWcuZXhwZXJ0TmFtZTtcbiAgICB9XG5cbiAgICBnZXRIZWxwQ29uZmlnX0V4cGVydFBob25lTnVtbWJlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuaGVscENvbmZpZy5leHBlcnRQaG9uZU51bW1iZXI7XG4gICAgfVxuXG4gICAgZ2V0SGVscENvbmZpZ19FeHBlcnRFbWFpbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuaGVscENvbmZpZy5leHBlcnRFbWFpbDtcbiAgICB9XG5cbiAgICBnZXRIZWxwQ29uZmlnX0xvZ29Db21wYW55KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5oZWxwQ29uZmlnLmxvZ29Db21wYW55O1xuICAgIH1cblxuICAgIGdldEhlbHBDb25maWdfRG9jdW1lbnRzKCk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuaGVscENvbmZpZy5kb2N1bWVudHM7XG4gICAgfVxuXG4gICAgZ2V0U3BsYXNoU2NyZWVuKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5zcGxhc2hTY3JlZW47XG4gICAgfVxuXG4gICAgZ2V0VW5kZXJjb25zdHJ1Y3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LnVuZGVyY29uc3RydWN0aW9uO1xuICAgIH1cblxuICAgIGdldFNpZ25hbHJfQ2xpZW50S2V5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5zaWduYWxyLmNsaWVudEtleTtcbiAgICB9XG5cbiAgICBnZXRBcGlHYXRld2F5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5hcHBNZXRhZGF0YS5nYXRld2F5O1xuICAgIH1cblxuICAgIGdldEdhdGV3YXlTdWJwYXRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5hcHBNZXRhZGF0YS5nYXRld2F5U3VicGF0aDtcbiAgICB9XG5cbiAgICBnZXREb2N1bWVudFNlcnZlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuYXBwTWV0YWRhdGEuZG9jdW1lbnRTZXJ2ZXI7XG4gICAgfVxuXG4gICAgZ2V0VXNpbmdJbnRlcm5hbEZpbGVFbmRwb2ludEZvclZpZXcoKSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuZW52aXJvbm1lbnQuaW50ZXJuYWxGaWxlRW5kcG9pbnQ7XG4gICAgfVxuXG4gICAgZ2V0SW50ZXJuYWxGaWxlRW5kcG9pbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmludGVybmFsRmlsZUVuZHBvaW50O1xuICAgIH1cblxuICAgIGdldEt5U29TaW1fVHNhVXJsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5kZWZhdWx0VmFsdWU/Lmt5U29TaW0/LnRzYVVybDtcbiAgICB9XG5cbiAgICBnZXRCdXR0b25QZXJtaXNzaW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuYnV0dG9uUGVybWlzc2lvbnMgPz8gW107XG4gICAgfVxuXG4gICAgZ2V0RmllbGRzSW5EZWZhdWx0U2V0dGluZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuZmllbGRzSW5EZWZhdWx0U2V0dGluZztcbiAgICB9XG5cbiAgICBnZXRLZXlQcmVzc1Blcm1pc3Npb25VdGlscygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQua2V5UHJlc3NQZXJtaXNzaW9uVXRpbHM7XG4gICAgfVxuXG4gICAgZ2V0Q3VzdG9taXplVWkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmN1c3RvbWl6ZVVpO1xuICAgIH1cblxuICAgIGdldFRpdGxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5hcHBNZXRhZGF0YS5tYWluLnRpdGxlO1xuICAgIH1cblxuICAgIGdldExvZ28oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmFwcE1ldGFkYXRhLm1haW4ubG9nbztcbiAgICB9XG5cbiAgICBnZXRPd25lcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuYXBwTWV0YWRhdGEubWFpbi5vd25lcjtcbiAgICB9XG5cbiAgICBnZXRFbmFibGVCYXNlSHJlZigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuZW5hYmxlQmFzZUhyZWY7XG4gICAgfVxuXG4gICAgZ2V0RGVmYXVsdFJlZGlyZWN0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5jbGllbnREb21haW4/LmRlZmF1bHRSZWRpcmVjdDtcbiAgICB9XG5cbiAgICBnZXRJc1Byb2R1Y3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVHJ1ZSh0aGlzLmVudmlyb25tZW50LnByb2R1Y3Rpb24pO1xuICAgIH1cblxuICAgIGdldExpbmtEb3dubG9hZENsaWVudEFwcCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuc2lnbmFsci5saW5rRG93bmxvYWRDbGllbnRBcHA7XG4gICAgfVxuXG4gICAgZ2V0Q3VzdG9tQ29uZmlnKGtleTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdGhpcy5lbnZpcm9ubWVudC5jdXN0b21Db25maWcpIHJldHVybiBudWxsO1xuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5jdXN0b21Db25maWdba2V5XTtcbiAgICB9XG5cbiAgICBnZXRMaXN0RG9uVmlRdWFuTHlOZ2FuaCgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGdldExpc3REb25WaVF1YW5MeUhvY1BoYW4oKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG59XG4iXX0=
|