@ieeesa-npm/events-and-meetings 0.3.1 → 0.3.2
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.
|
@@ -136,6 +136,8 @@ export class EventsAndMeetingsComponent {
|
|
|
136
136
|
* @memberof EventsAndMeetingsComponent
|
|
137
137
|
*/
|
|
138
138
|
ngOnInit() {
|
|
139
|
+
console.log("UserPermissions", this.userPermissions);
|
|
140
|
+
console.log("APIBaseURL", this.apiBaseURL);
|
|
139
141
|
if (this.deleteButton)
|
|
140
142
|
this.deleteButton.disabled = true;
|
|
141
143
|
this.supportMessage =
|
|
@@ -703,4 +705,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
703
705
|
}], routePaths: [{
|
|
704
706
|
type: Input
|
|
705
707
|
}] } });
|
|
706
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLWFuZC1tZWV0aW5ncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ldmVudHMtYW5kLW1lZXRpbmdzL3NyYy9saWIvZXZlbnRzLWFuZC1tZWV0aW5ncy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ldmVudHMtYW5kLW1lZXRpbmdzL3NyYy9saWIvZXZlbnRzLWFuZC1NZWV0aW5ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxzRkFBc0YsQ0FBQztBQUUzSSxPQUFPLEVBQ0wsU0FBUyxFQUdULEtBQUssRUFDTCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsMEhBQTBIO0FBQzFILE9BQU8sS0FBSyxTQUFTLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUtMLGVBQWUsRUFFZixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFFVixxQkFBcUIsRUFDckIsU0FBUyxFQUNULDBCQUEwQixFQUMxQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLHdCQUF3QixFQUV4QixrQkFBa0IsRUFFbkIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUNMLFNBQVMsRUFHVCxRQUFRLEVBQ1IsUUFBUSxHQUNULE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBC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QkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixlQUFlO3dCQUNmLFFBQVE7cUJBQ1QsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSTtxUUFRNUIsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQXlFRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3JlYXRlTW9kaWZ5RXZlbnRPck1lZXRpbmdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3JlYXRlLW1vZGlmeS1ldmVudC1vci1tZWV0aW5nL2NyZWF0ZS1tb2RpZnktZXZlbnQtb3ItbWVldGluZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFdmVudHNBbmRNZWV0aW5nc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2V2ZW50cy1hbmQtbWVldGluZ3Muc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgSW5wdXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbi8vIFRvRG86IGNvbnN0YW50cy5qc29uIHRvIGJlIG1haW50YWluZWQgYXQgbGlicmFyeSBzaWRlIGFzIGEgZmFsbGJhY2sgaWYgbm90IGZvdW5kIGFwcGxpY2F0aW9uIHNwZWNpZmljIGZyb20gc2VydmVyIHNpZGUuXHJcbmltcG9ydCAqIGFzIGNvbnN0YW50cyBmcm9tICcuL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmltcG9ydCB7XHJcbiAgUGFnaW5hdG9yQ29uZmlnLFxyXG4gIFRhYmxlQWN0aW9ucyxcclxuICBUb2dnbGVCdXR0b24sXHJcbiAgSWNvbkJ1dHRvbixcclxuICBGaWx0ZXJDb21wb25lbnQsXHJcbiAgQ2hpcE9wdGlvbixcclxuICBDaGlwc1R5cGUsXHJcbiAgU2VhcmNoQ29tcG9uZW50LFxyXG4gIFNlYXJjaFR5cGUsXHJcbiAgTWVudSxcclxuICBUb2dnbGVCdXR0b25Db21wb25lbnQsXHJcbiAgQWxpZ25UeXBlLFxyXG4gIE1vZGFsQ29uZmlybWF0aW9uQ29tcG9uZW50LFxyXG4gIEljb25CdXR0b25Db21wb25lbnQsXHJcbiAgVGFibGVDb2x1bW5UeXBlLFxyXG4gIFRhYmxlQ29sdW1uU29ydERpcmVjdGlvbixcclxuICBUYWJsZUNvbHVtblNjaGVtYSxcclxuICBEYXRhVGFibGVDb21wb25lbnQsXHJcbiAgTGVnZW5kXHJcbn0gZnJvbSAnQGllZWVzYS1ucG0vcHJlc2VudGF0aW9uJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBFdmVudHNBbmRNZWV0aW5ncyxcclxuICBHZXRFdmVudHNBbmRNZWV0aW5nc1BheWxvYWQsXHJcbn0gZnJvbSAnLi9tb2RlbHMvZXZlbnRzLWFuZC1tZWV0aW5ncy1saXN0Lm1vZGVsJztcclxuaW1wb3J0IHsgRmlsdGVyVHlwZSB9IGZyb20gJy4vbW9kZWxzL2ZpbHRlci10eXBlLm1vZGVsJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgRGF0ZUZvcm1hdHMgfSBmcm9tICcuL2Fzc2V0cy9kYXRlLWZvcm1hdHMnO1xyXG5pbXBvcnQge1xyXG4gIEFsZXJ0VHlwZSxcclxuICBBbGVydHNTZXJ2aWNlLFxyXG4gIEJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2UsXHJcbiAgU2FmZVBpcGUsXHJcbiAgU2FmZVR5cGUsXHJcbn0gZnJvbSAnQGllZWVzYS1ucG0vdXRpbGl0eSc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFZpZXdFZGl0QWN0aW9uIH0gZnJvbSAnLi9tb2RlbHMvdmlldy1lZGl0LWFjdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IEV2ZW50c0FuZE1lZXRpbmdzVmlld1R5cGUgfSBmcm9tICcuL21vZGVscy9saXN0LWNhbGVuZGFyLXZpZXctYWN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgUGFnZUV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgRXZlbnRBbmRNZWV0aW5nRnVuY3Rpb25UeXBlIH0gZnJvbSAnLi9tb2RlbHMvZXZlbnQtbWVldGluZy1mdW5jdGlvbi10eXBlcy5tb2RlbCc7XHJcbmltcG9ydCB7IFVzZXJQZXJtaXNzaW9uc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3VzZXItcGVybWlzc2lvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgTWVldGluZ1Blcm1pc3Npb25zLFxyXG4gIFVzZXJQZXJtaXNzaW9uLFxyXG59IGZyb20gJy4vbW9kZWxzL21lZXRpbmctcGVybWlzc2lvbnMubW9kZWwnO1xyXG5pbXBvcnQgeyBQZXJtaXNzaW9uVHlwZSB9IGZyb20gJy4vbW9kZWxzL3Blcm1pc3Npb24tdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEV2ZW50c0FuZE1lZXRpbmdSb3V0ZUNvbmZpZyB9IGZyb20gJy4vbW9kZWxzL3JvdXRlLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgR2V0TWVldGluZ3NCeUV2ZW50SWRQYXlsb2FkLFxyXG4gIE1lZXRpbmcsXHJcbn0gZnJvbSAnLi9tb2RlbHMvbWVldGluZ3MtdW5kZXItZXZlbnRzLm1vZGVsJztcclxuaW1wb3J0IHtcclxuICBFdmVudEFjdGlvbixcclxuICBNZWV0aW5nQWN0aW9uLFxyXG59IGZyb20gJy4vbW9kZWxzL2V2ZW50LW9yLW1lZXRpbmctbWVudS1hY3Rpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBTb3J0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XHJcbmNvbnN0IENPTFVNTl9ERUYgPSB7XHJcbiAgbmFtZTogJ25hbWUnLFxyXG4gIHN0YXJ0RGF0ZVRpbWU6ICdzdGFydC1kYXRlLXRpbWUnLFxyXG4gIGVuZERhdGVUaW1lOiAnZW5kLWRhdGUtdGltZScsXHJcbiAgdGltZVpvbmU6ICd0aW1lLXpvbmUnLFxyXG4gIGdyb3VwOiAncmVsYXRlZC1ncm91cCcsXHJcbiAgbG9jYXRpb246ICdsb2NhdGlvbicsXHJcbn07XHJcblxyXG4vKipcclxuICogSW1wbGVtZW50YXRpb24gb2YgZXZlbnQgYW5kIG1lZXRpbmcgZmVhdHVyZXNcclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICogQGltcGxlbWVudHMge09uSW5pdH1cclxuICogQGltcGxlbWVudHMge09uRGVzdHJveX1cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBDcmVhdGVNb2RpZnlFdmVudE9yTWVldGluZ0NvbXBvbmVudCxcclxuICAgIERhdGFUYWJsZUNvbXBvbmVudCxcclxuICAgIFRvZ2dsZUJ1dHRvbkNvbXBvbmVudCxcclxuICAgIEljb25CdXR0b25Db21wb25lbnQsXHJcbiAgICBGaWx0ZXJDb21wb25lbnQsXHJcbiAgICBTZWFyY2hDb21wb25lbnQsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBTYWZlUGlwZSxcclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2V2ZW50cy1hbmQtTWVldGluZ3MuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2V2ZW50cy1hbmQtTWVldGluZ3MuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xyXG4gIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGRpYWxvZ1JlZjogYW55O1xyXG4gIEBJbnB1dCgpIGFwaUJhc2VVUkwhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdXNlclBlcm1pc3Npb25zITogVXNlclBlcm1pc3Npb25bXTtcclxuICBzZWFyY2hQbGFjZWhvbGRlclRleHQhOiBzdHJpbmc7XHJcbiAgaXNNb2JpbGVWaWV3ID0gZmFsc2U7XHJcbiAgaXNTZWFyY2hBY3RpdmUgPSBmYWxzZTtcclxuICBldmVudERhdGEhOiBFdmVudHNBbmRNZWV0aW5ncztcclxuICBtZWV0aW5nRGF0YSE6IEV2ZW50c0FuZE1lZXRpbmdzO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgc2VsZWN0ZWREYXRhITogYW55O1xyXG4gIG1lbnVEYXRhITogTWVudTtcclxuICBzZWFyY2hUeXBlOiBTZWFyY2hUeXBlID0gU2VhcmNoVHlwZS5PTl9DTElDSztcclxuICBkZWZhdWx0U29ydGVkQ29sdW1uID0gJ3N0YXJ0RGF0ZVRpbWUnO1xyXG4gIG5lc3RlZFRhYmxlRGVmYXVsdFNvcnRlZENvbHVtbiA9ICdtZWV0aW5nU3REYXRlJztcclxuICBmaWx0ZXJzOiBDaGlwT3B0aW9uW10gPSBbXHJcbiAgICB7XHJcbiAgICAgIGlkOiBGaWx0ZXJUeXBlLkdST1VQX05BTUUsXHJcbiAgICAgIG5hbWU6IEZpbHRlclR5cGUuR1JPVVBfTkFNRSxcclxuICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgIGNoaXBUeXBlOiBDaGlwc1R5cGUuVE9HR0xFLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWQ6IEZpbHRlclR5cGUuU1RBVFVTLFxyXG4gICAgICBuYW1lOiBGaWx0ZXJUeXBlLlNUQVRVUyxcclxuICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgIGNoaXBUeXBlOiBDaGlwc1R5cGUuVE9HR0xFLFxyXG4gICAgfSxcclxuICBdO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY29uc3RhbnRzOiBhbnkgPSBjb25zdGFudHM7XHJcbiAgc2NyZWVuVGV4dHMgPSB0aGlzLmNvbnN0YW50cz8udmlld0V2ZW50c0FuZE1lZXRpbmdzO1xyXG4gIHBhZ2luYXRvckNvbmZpZzogUGFnaW5hdG9yQ29uZmlnID0ge1xyXG4gICAgcmVjb3Jkc1BlclBhZ2U6IHRoaXMuc2NyZWVuVGV4dHM/LnBhZ2VTaXplT3B0aW9ucz8uWzFdLFxyXG4gICAgcGFnZVNpemVPcHRpb25zOiB0aGlzLnNjcmVlblRleHRzLnBhZ2VTaXplT3B0aW9ucyxcclxuICAgIHRvdGFsUmVjb3JkczogMCxcclxuICB9O1xyXG4gIG5lc3RlZFRhYmxlUGFnaW5hdG9yQ29uZmlnOiBQYWdpbmF0b3JDb25maWcgPSB7XHJcbiAgICByZWNvcmRzUGVyUGFnZTogdGhpcy5zY3JlZW5UZXh0cz8ucGFnZVNpemVPcHRpb25zPy5bMV0sXHJcbiAgICBwYWdlU2l6ZU9wdGlvbnM6IHRoaXMuc2NyZWVuVGV4dHMucGFnZVNpemVPcHRpb25zLFxyXG4gICAgdG90YWxSZWNvcmRzOiAwLFxyXG4gIH07XHJcbiAgZW1wdHlGaWVsZFZhbHVlUmVwbGFjZWRCeSA9IHRoaXMuc2NyZWVuVGV4dHM/LmVtcHR5RmllbGRWYWx1ZVJlcGxhY2VkQnk7XHJcbiAgY29sdW1uSGVhZGluZyA9IHRoaXMuc2NyZWVuVGV4dHM/LmNvbHVtblNjaGVtYT8uY29sdW1uSGVhZGluZztcclxuICB2aWV3QWxsTWVldGluZ3NUZXh0ID0gdGhpcy5zY3JlZW5UZXh0cz8udmlld0FsbE1lZXRpbmdzO1xyXG4gIGNvbHVtblNjaGVtYSE6IFRhYmxlQ29sdW1uU2NoZW1hW107XHJcbiAgbmVzdGVkVGFibGVDb2x1bW5TY2hlbWEhOiBUYWJsZUNvbHVtblNjaGVtYVtdO1xyXG4gIGV2ZW50c0FuZE1lZXRpbmdzQWN0aW9uczogVGFibGVBY3Rpb25zID0ge1xyXG4gICAgaXNTZWFyY2hOZWVkZWQ6IGZhbHNlLFxyXG4gICAgaXNGaWx0ZXJOZWVkZWQ6IGZhbHNlLFxyXG4gICAgaXNBZGROZWVkZWQ6IGZhbHNlLFxyXG4gICAgaXNEZWxldGVOZWVkZWQ6IGZhbHNlLFxyXG4gICAgaXNFZGl0TmVlZGVkOiBmYWxzZSxcclxuICAgIGlzUGFnaW5hdGlvbk5lZWRlZDogdHJ1ZSxcclxuICB9O1xyXG4gIGV2ZW50QW5kTWVldGluZ0xlZ2VuZHM6IExlZ2VuZFtdID0gdGhpcy5jb25zdGFudHM/LmV2ZW50T3JNZWV0aW5nTGVnZW5kcztcclxuICBsaXN0T3JDYWxlbmRhclZpZXdzOiBUb2dnbGVCdXR0b25bXSA9IHRoaXMuc2NyZWVuVGV4dHM/LnRvZ2dsZUJ1dHRvbnM7XHJcbiAgZGVsZXRlQnV0dG9uOiBJY29uQnV0dG9uID0gdGhpcy5zY3JlZW5UZXh0cz8uYnV0dG9ucz8uWzFdO1xyXG4gIGNyZWF0ZUJ1dHRvbjogSWNvbkJ1dHRvbiA9IHRoaXMuc2NyZWVuVGV4dHM/LmJ1dHRvbnM/LlswXTtcclxuICBldmVudEFuZE1lZXRpbmdWaWV3VHlwZSA9IEV2ZW50c0FuZE1lZXRpbmdzVmlld1R5cGU7XHJcbiAgc2VsZWN0ZWRWaWV3VHlwZTogRXZlbnRzQW5kTWVldGluZ3NWaWV3VHlwZSA9XHJcbiAgICBFdmVudHNBbmRNZWV0aW5nc1ZpZXdUeXBlLkxJU1RfVklFVztcclxuICBldmVudHNBbmRNZWV0aW5nc0xpc3Q6IEV2ZW50c0FuZE1lZXRpbmdzW10gPSBbXTtcclxuICB1c2VyTWVldGluZ1Blcm1pc3Npb25zITogTWVldGluZ1Blcm1pc3Npb25zW107XHJcbiAgcGVybWlzc2lvblR5cGUgPSBQZXJtaXNzaW9uVHlwZTtcclxuICBzdXBwb3J0TWVzc2FnZSE6IHN0cmluZztcclxuICBtaW5DaGFyYWN0ZXJUb1NlYXJjaCA9IDM7XHJcbiAgdHJpbW1lZFNlYXJjaFRlcm0gPSAnJztcclxuICBzZWFyY2hSZXN1bHRNZXNzYWdlITogc3RyaW5nO1xyXG4gIGV2ZW50c09yTWVldGluZ3NJbmZvITogRXZlbnRzQW5kTWVldGluZ3NbXTtcclxuICBzZWxlY3RlZEV2ZW50c0FuZE1lZXRpbmdzSWRzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGlzRGVsZXRlRXZlbnRBbmRNZWV0aW5nQWxsb3dlZCA9IGZhbHNlO1xyXG4gIGlzQ3JlYXRlRXZlbnRBbmRNZWV0aW5nQWxsb3dlZCA9IGZhbHNlO1xyXG4gIGRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWRFdmVudE9yTWVldGluZ0lkOiBzdHJpbmdbXSA9IFtdO1xyXG4gIC8vIFRvRG8gZW1pdCB0aGUgYXNzb2NpYXRlZCBidXR0b24gZXZlbnRzIG9mIENSRUFURSwgVklFVywgRURJVCBldmVudHMgYW5kIG1lZXRpbmdzIHVzaW5nIEBPdXRwdXQgYXMgd2UgZGlzY3Vzc2VkIHRoZSBjb25zdW1lciBhcHBsaWNhdGlvbiBtYXkgbG9hZCB0aGUgbWVldGluZyBhbmQgZXZlbnRzIGNvbXBvbmVudHMgaW50byB0aGUgdGFiYmVkIHZpZXcgb3Igb3RoZXIgd2F5IGluc3RlYWQgb2Ygcm91dGluZ1xyXG4gIEBJbnB1dCgpIHJvdXRlUGF0aHMhOiBFdmVudHNBbmRNZWV0aW5nUm91dGVDb25maWc7XHJcbiAgbWVldGluZ3M6IE1lZXRpbmdbXSA9IFtdO1xyXG4gIHNhZmVUeXBlOiBTYWZlVHlwZSA9IFNhZmVUeXBlLkhUTUw7XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudC5cclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwdWJsaWMgYWxlcnRTZXJ2aWNlOiBBbGVydHNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGV2ZW50c0FuZE1lZXRpbmdzU2VydmljZTogRXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2U6IEJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgdXNlclBlcm1pc3Npb25TZXJ2aWNlOiBVc2VyUGVybWlzc2lvbnNTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2VcclxuICAgICAgLmdldEJyZWFrcG9pbnQoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc01vYmlsZVZpZXcgPSByZXN1bHQubWF0Y2hlcztcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplcyB0aGUgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnQuXHJcbiAgICogQG1lbWJlcm9mIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kZWxldGVCdXR0b24pIHRoaXMuZGVsZXRlQnV0dG9uLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgIHRoaXMuc3VwcG9ydE1lc3NhZ2UgPVxyXG4gICAgICB0aGlzLnNjcmVlblRleHRzPy5taW5DaGFyUmVxdWlyZWRUb1NlYXJjaDEgK1xyXG4gICAgICAnICcgK1xyXG4gICAgICB0aGlzLm1pbkNoYXJhY3RlclRvU2VhcmNoICtcclxuICAgICAgJyAnICtcclxuICAgICAgdGhpcy5zY3JlZW5UZXh0cz8ubWluQ2hhclJlcXVpcmVkVG9TZWFyY2gyO1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2U/LnNldFNlbGVjdGVkRXZlbnREYXRhKG51bGwpO1xyXG4gICAgdGhpcy5yb3V0ZVBhdGhzID0gdGhpcy5yb3V0ZVBhdGhzID8/IHRoaXMuY29uc3RhbnRzPy5yb3V0ZUNvbmZpZ1BhdGg7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8uc2V0Um91dGVQYXRocyh0aGlzLnJvdXRlUGF0aHMpO1xyXG4gICAgdGhpcy51c2VyTWVldGluZ1Blcm1pc3Npb25zID1cclxuICAgICAgdGhpcy51c2VyUGVybWlzc2lvblNlcnZpY2UuZmlsdGVyVXNlck1lZXRpbmdQZXJtaXNzaW9ucyhcclxuICAgICAgICB0aGlzLnVzZXJQZXJtaXNzaW9uc1xyXG4gICAgICApO1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2U/LnNldEFwcENvbmZpZyhcclxuICAgICAgdGhpcy5hcGlCYXNlVVJMLFxyXG4gICAgICB0aGlzLnVzZXJQZXJtaXNzaW9uc1xyXG4gICAgKTtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnNldFVzZXJNZWV0aW5nUGVybWlzc2lvbnMoXHJcbiAgICAgIHRoaXMudXNlck1lZXRpbmdQZXJtaXNzaW9uc1xyXG4gICAgKTtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmdldEdyb3VwcygpLnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5pc0NyZWF0ZUV2ZW50QW5kTWVldGluZ0FsbG93ZWQgPVxyXG4gICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS52YWxpZGF0ZUFjY2VzcyhQZXJtaXNzaW9uVHlwZS5DUkVBVEVfRVZFTlQpO1xyXG4gICAgdGhpcy5maWx0ZXJFdmVudEFuZE1lZXRpbmdBY3Rpb25zKCk7XHJcbiAgICB0aGlzLmlzRGVsZXRlRXZlbnRBbmRNZWV0aW5nQWxsb3dlZCA9XHJcbiAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnZhbGlkYXRlQWNjZXNzKFxyXG4gICAgICAgIFBlcm1pc3Npb25UeXBlLkRFTEVURV9FVkVOVFxyXG4gICAgICApICYmXHJcbiAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnZhbGlkYXRlQWNjZXNzKFxyXG4gICAgICAgIFBlcm1pc3Npb25UeXBlLkRFTEVURV9NRUVUSU5HXHJcbiAgICAgICk7XHJcbiAgICB0aGlzLmluaXRpYWxpemVDb2x1bW5TY2hlbWEoKTtcclxuICAgIHRoaXMuZ2V0RXZlbnRzQW5kTWVldGluZ3Moe1xyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgZXZlbnRJZDogbnVsbCxcclxuICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLmRlZmF1bHRTb3J0ZWRDb2x1bW4sXHJcbiAgICAgICAgYXNjZW5kaW5nT3JkZXI6IGZhbHNlLFxyXG4gICAgICAgIHBhZ2U6IDEsXHJcbiAgICAgICAgc2l6ZTogdGhpcy5wYWdpbmF0b3JDb25maWc/LnJlY29yZHNQZXJQYWdlLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEZpbHRlciB0aGUgZXZlbnQgYW5kIG1lZXRpbmcgYWN0aW9ucyBiYXNlZCBvbiBldmVudCBhbmQgbWVldGluZyBwZXJtaXNzaW9ucy5cclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBmaWx0ZXJFdmVudEFuZE1lZXRpbmdBY3Rpb25zKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2NyZWVuVGV4dHM/LmV2ZW50QWN0aW9ucylcclxuICAgICAgdGhpcy5zY3JlZW5UZXh0cy5ldmVudEFjdGlvbnMgPVxyXG4gICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmdldEZpbHRlcmVkRXZlbnRBY3Rpb25zKFxyXG4gICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cy5ldmVudEFjdGlvbnNcclxuICAgICAgICApO1xyXG4gICAgaWYgKHRoaXMuc2NyZWVuVGV4dHM/Lm1lZXRpbmdBY3Rpb25zKVxyXG4gICAgICB0aGlzLnNjcmVlblRleHRzLm1lZXRpbmdBY3Rpb25zID1cclxuICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5nZXRGaWx0ZXJlZE1lZXRpbmdBY3Rpb25zKFxyXG4gICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cy5tZWV0aW5nQWN0aW9uc1xyXG4gICAgICAgICk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemVzIHRhYmxlIGNvbHVtbiBzY2hlbWEgdG8gZGlzcGxheSB0aGUgbWVldGluZyBhbmQgZXZlbnQgZGV0YWlscyBpbiB0YWJ1bGFyIHZpZXdcclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBpbml0aWFsaXplQ29sdW1uU2NoZW1hKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb2x1bW5TY2hlbWEgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogMSxcclxuICAgICAgICBjb2x1bW5EZWY6IFRhYmxlQ29sdW1uVHlwZS5TRUxFQ1QsXHJcbiAgICAgICAgaGVhZGluZzogJycsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlNFTEVDVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PiBgJHtlbGVtZW50LnNlbGVjdH1gLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDIsXHJcbiAgICAgICAgY29sdW1uRGVmOiBUYWJsZUNvbHVtblR5cGUuTkVTVEVEX1RBQkxFLFxyXG4gICAgICAgIGhlYWRpbmc6ICcnLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5ORVNURURfVEFCTEUsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudC5oYXNDaGlsZHJlbixcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiAzLFxyXG4gICAgICAgIGNvbHVtbkRlZjogQ09MVU1OX0RFRj8ubmFtZSxcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLmNvbHVtbkhlYWRpbmc/Lm5hbWUsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLkxJTkssXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT4gYCR7ZWxlbWVudC5uYW1lfWAsXHJcbiAgICAgICAgaXNDb250ZW50VW5kZXJMaW5rOiB0cnVlLFxyXG4gICAgICAgIGlzU29ydGFibGVDb2x1bW46IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogNCxcclxuICAgICAgICBjb2x1bW5EZWY6IENPTFVNTl9ERUY/LnN0YXJ0RGF0ZVRpbWUsXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy5jb2x1bW5IZWFkaW5nPy5zdGFydERhdGVUaW1lLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+XHJcbiAgICAgICAgICAhZWxlbWVudC5pc01lZXRpbmdFdmVudFxyXG4gICAgICAgICAgICA/IGAke21vbWVudChlbGVtZW50LnN0YXJ0RGF0ZVRpbWUpLmZvcm1hdChcclxuICAgICAgICAgICAgICAgIERhdGVGb3JtYXRzLmRpc3BsYXlGb3JtYXRcclxuICAgICAgICAgICAgICApfTxicj4ke21vbWVudChlbGVtZW50LnN0YXJ0RGF0ZVRpbWUpLmZvcm1hdChcclxuICAgICAgICAgICAgICAgIERhdGVGb3JtYXRzLnRpbWVGb3JtYXRcclxuICAgICAgICAgICAgICApfWBcclxuICAgICAgICAgICAgOiBgJHttb21lbnQoZWxlbWVudC5zdGFydERhdGVUaW1lKS5mb3JtYXQoXHJcbiAgICAgICAgICAgICAgICBEYXRlRm9ybWF0cy5kaXNwbGF5Rm9ybWF0XHJcbiAgICAgICAgICAgICAgKX1gLFxyXG4gICAgICAgIGlzSFRNTENlbGxEYXRhOiB0cnVlLFxyXG4gICAgICAgIGlzU29ydGFibGVDb2x1bW46IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogNSxcclxuICAgICAgICBjb2x1bW5EZWY6IENPTFVNTl9ERUY/LmVuZERhdGVUaW1lLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMuY29sdW1uSGVhZGluZz8uZW5kRGF0ZVRpbWUsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT5cclxuICAgICAgICAgICFlbGVtZW50LmlzTWVldGluZ0V2ZW50XHJcbiAgICAgICAgICAgID8gYCR7bW9tZW50KGVsZW1lbnQuZW5kRGF0ZVRpbWUpLmZvcm1hdChcclxuICAgICAgICAgICAgICAgIERhdGVGb3JtYXRzLmRpc3BsYXlGb3JtYXRcclxuICAgICAgICAgICAgICApfTxicj4ke21vbWVudChlbGVtZW50LmVuZERhdGVUaW1lKS5mb3JtYXQoXHJcbiAgICAgICAgICAgICAgICBEYXRlRm9ybWF0cy50aW1lRm9ybWF0XHJcbiAgICAgICAgICAgICAgKX1gXHJcbiAgICAgICAgICAgIDogYCR7bW9tZW50KGVsZW1lbnQuZW5kRGF0ZVRpbWUpLmZvcm1hdChcclxuICAgICAgICAgICAgICAgIERhdGVGb3JtYXRzLmRpc3BsYXlGb3JtYXRcclxuICAgICAgICAgICAgICApfWAsXHJcbiAgICAgICAgaXNIVE1MQ2VsbERhdGE6IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogNixcclxuICAgICAgICBjb2x1bW5EZWY6IENPTFVNTl9ERUY/LnRpbWVab25lLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMuY29sdW1uSGVhZGluZz8udGltZVpvbmUsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT5cclxuICAgICAgICAgIGAke2VsZW1lbnQudGltZVpvbmUgPz8gdGhpcy5lbXB0eUZpZWxkVmFsdWVSZXBsYWNlZEJ5fWAsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogNyxcclxuICAgICAgICBjb2x1bW5EZWY6IENPTFVNTl9ERUY/Lmdyb3VwLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMuY29sdW1uSGVhZGluZz8uZ3JvdXAsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT5cclxuICAgICAgICAgIGAke2VsZW1lbnQuZ3JvdXBOYW1lID8/IHRoaXMuZW1wdHlGaWVsZFZhbHVlUmVwbGFjZWRCeX1gLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDgsXHJcbiAgICAgICAgY29sdW1uRGVmOiBDT0xVTU5fREVGPy5sb2NhdGlvbixcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLmNvbHVtbkhlYWRpbmc/LmxvY2F0aW9uLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+XHJcbiAgICAgICAgICBgJHtlbGVtZW50Lm1lZXRpbmdMb2NhdGlvbiA/PyB0aGlzLmVtcHR5RmllbGRWYWx1ZVJlcGxhY2VkQnl9YCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiA5LFxyXG4gICAgICAgIGNvbHVtbkRlZjogVGFibGVDb2x1bW5UeXBlLkFDVElPTlMsXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy5jb2x1bW5IZWFkaW5nPy5hY3Rpb25zLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5BQ1RJT05TLFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+IGAke2VsZW1lbnQubWVudUFjdGlvbn1gLFxyXG4gICAgICB9LFxyXG4gICAgXTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgZXZlbnRzIGFuZCBtZWV0aW5ncyBsaXN0IGZyb20gdGhlIHNlcnZlci5cclxuICAgKiBAcGFyYW0ge0dldEV2ZW50c0FuZE1lZXRpbmdzUGF5bG9hZH0gcGF5bG9hZFxyXG4gICAqIEBtZW1iZXJvZiBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldEV2ZW50c0FuZE1lZXRpbmdzKHBheWxvYWQ6IEdldEV2ZW50c0FuZE1lZXRpbmdzUGF5bG9hZCk6IHZvaWQge1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2VcclxuICAgICAgLmdldEV2ZW50c0FuZE1lZXRpbmdzKHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzTGlzdCA9IFtdO1xyXG4gICAgICAgICAgcmVzcG9uc2U/LmJvZHk/LmV2ZW50TWVldGluZ0xpc3Q/LmZvckVhY2goKGV2ZW50TWVldGluZykgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB0aXRsZSA9IGV2ZW50TWVldGluZy5pc01lZXRpbmdFdmVudFxyXG4gICAgICAgICAgICAgID8gdGhpcy5zY3JlZW5UZXh0cz8uZXZlbnRcclxuICAgICAgICAgICAgICA6IHRoaXMuc2NyZWVuVGV4dHM/Lm1lZXRpbmc7XHJcbiAgICAgICAgICAgIGV2ZW50TWVldGluZy50b29sVGlwVGV4dCA9IGV2ZW50TWVldGluZy5uYW1lICsgJyAnICsgdGl0bGU7XHJcbiAgICAgICAgICAgIGV2ZW50TWVldGluZy5jb250ZW50VW5kZXJMaW5rID0gZXZlbnRNZWV0aW5nLnN0YXR1cztcclxuICAgICAgICAgICAgZXZlbnRNZWV0aW5nLmxlZ2VuZENvbG9yID1cclxuICAgICAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5nZXRFdmVudE9yTWVldGluZ0xlZ2VuZENvbG9yKFxyXG4gICAgICAgICAgICAgICAgZXZlbnRNZWV0aW5nPy5zdGF0dXNcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzTGlzdC5wdXNoKGV2ZW50TWVldGluZyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMucGFnaW5hdG9yQ29uZmlnLnRvdGFsUmVjb3JkcyA9XHJcbiAgICAgICAgICAgIHJlc3BvbnNlPy5ib2R5Py50b3RhbFJlY29yZHMgPz8gdGhpcy5ldmVudHNBbmRNZWV0aW5nc0xpc3QubGVuZ3RoO1xyXG4gICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc0xpc3QgPSB0aGlzLm1hcE1lbnVBY3Rpb25Ub0xpc3QoXHJcbiAgICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NMaXN0XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc0xpc3QgPSBbLi4udGhpcy5ldmVudHNBbmRNZWV0aW5nc0xpc3RdO1xyXG4gICAgICAgICAgdGhpcy5wYWdpbmF0b3JDb25maWcgPSB7IC4uLnRoaXMucGFnaW5hdG9yQ29uZmlnIH07XHJcbiAgICAgICAgICBpZiAodGhpcy5pc1NlYXJjaEFjdGl2ZSlcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hSZXN1bHRNZXNzYWdlID0gYDxkaXY+JHt0aGlzLnNjcmVlblRleHRzPy5zZWFyY2hSZXN1bHRNc2dQYXJ0MX0gJHt0aGlzLnBhZ2luYXRvckNvbmZpZz8udG90YWxSZWNvcmRzfVxyXG4gICAgICAgICR7dGhpcy5zY3JlZW5UZXh0cz8uc2VhcmNoUmVzdWx0TXNnUGFydDJ9IFwiPHN0cm9uZz4ke3RoaXMudHJpbW1lZFNlYXJjaFRlcm19PC9zdHJvbmc+XCI8L2Rpdj5gO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHRhYmxlIHJvdyBhY3Rpb25zIGZvciBlYWNoIHJvdyBvZiBldmVudHMgYW5kIG1lZXRpbmdzIHRhYmxlIHRoZW4gcmV0dXJucyBFdmVuc0FuZE1lZXRpbmdzLlxyXG4gICAqIEBwYXJhbSB7RXZlbnRzQW5kTWVldGluZ3NbXX1cclxuICAgKiAqIEByZXR1cm4ge0V2ZW50c0FuZE1lZXRpbmdzW119IC1JdCByZXR1cm5zIGV2ZW50c0FuZE1lZXRpbmdzTGlzdCB3aXRoIG1lbnUgYWN0aW9uIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHJvdy5cclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBtYXBNZW51QWN0aW9uVG9MaXN0KFxyXG4gICAgZXZlbnRzQW5kTWVldGluZ3NMaXN0OiBFdmVudHNBbmRNZWV0aW5nc1tdXHJcbiAgKTogRXZlbnRzQW5kTWVldGluZ3NbXSB7XHJcbiAgICBldmVudHNBbmRNZWV0aW5nc0xpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICBpdGVtLm1lbnVBY3Rpb24gPSBpdGVtLmlzTWVldGluZ0V2ZW50XHJcbiAgICAgICAgPyB0aGlzLnNjcmVlblRleHRzPy5ldmVudEFjdGlvbnNcclxuICAgICAgICA6IHRoaXMuc2NyZWVuVGV4dHM/Lm1lZXRpbmdBY3Rpb25zO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZXZlbnRzQW5kTWVldGluZ3NMaXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgbWVldGluZ3MgYW5kIGV2ZW50cyBsaXN0IGRldGFpbHMgb24gY2hhbmdlIG9mIHRhYmxlIHBhZ2luYXRpb24uXHJcbiAgICogQHBhcmFtIHt7UGFnZUV2ZW50fX0gcGFnZUV2ZW50XHJcbiAgICogQG1lbWJlcm9mIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25FdmVudHNBbmRNZWV0aW5nc1RhYmxlUGFnZUNoYW5nZShwYWdlRXZlbnQ6IFBhZ2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRFdmVudHNBbmRNZWV0aW5ncyh7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBldmVudElkOiAnJyxcclxuICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLmRlZmF1bHRTb3J0ZWRDb2x1bW4sXHJcbiAgICAgICAgYXNjZW5kaW5nT3JkZXI6IHRoaXMuZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb24sXHJcbiAgICAgICAgcGFnZTogcGFnZUV2ZW50LnBhZ2VJbmRleCArIDEsXHJcbiAgICAgICAgc2l6ZTogcGFnZUV2ZW50LnBhZ2VTaXplLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCYXNlZCBvbiBjbGljayBldmVudCBuYXZpZ2F0ZSB0byB2aWV3IG1lZXRpbmcgb3IgZXZlbnQgcGFnZS5cclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIG5hdmlnYXRlVG9WaWV3RGV0YWlsc1BhZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc2V0U3RhbmRhbG9uZU1lZXRpbmdTdGF0dXModHJ1ZSk7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5hY3Rpb25UeXBlID0gRXZlbnRBbmRNZWV0aW5nRnVuY3Rpb25UeXBlLkVESVQ7XHJcbiAgICBpZiAoZXZlbnQ/LnJvdz8uaXNNZWV0aW5nRXZlbnQpIHtcclxuICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc2VsZWN0ZWRFdmVudElkID0gZXZlbnQ/LnJvdz8uaWQ7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5yb3V0ZVBhdGhzLmVkaXRFdmVudCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZWxlY3RlZE1lZXRpbmdJZCA9IGV2ZW50Py5yb3c/LmlkO1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMucm91dGVQYXRocy5lZGl0TWVldGluZyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBOYXZpZ2F0ZXMgdG8gY3JlYXRlIG1lZXRpbmcgb3IgZXZlbnQgcGFnZS5cclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBuYXZpZ2F0ZVRvQ3JlYXRlRXZlbnRNZWV0aW5nRm9ybSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmFjdGlvblR5cGUgPVxyXG4gICAgICBFdmVudEFuZE1lZXRpbmdGdW5jdGlvblR5cGUuQ1JFQVRFO1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc2VsZWN0ZWRFdmVudElkID0gJyc7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZWxlY3RlZE1lZXRpbmdJZCA9ICcnO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnJvdXRlUGF0aHMuY3JlYXRlRXZlbnRNZWV0aW5nKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRvZ2dsZXMgYmV0d2VlbiB0aGUgTGlzdCB2aWV3IG9yIENhbGVuZGFyIHZpZXdcclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBvblRvZ2dsZUJ1dHRvbkNoYW5nZSh0b2dnbGVCdXR0b246IFRvZ2dsZUJ1dHRvbikge1xyXG4gICAgdGhpcy5zZWxlY3RlZFZpZXdUeXBlID1cclxuICAgICAgdG9nZ2xlQnV0dG9uPy5pZCA9PT0gRXZlbnRzQW5kTWVldGluZ3NWaWV3VHlwZS5MSVNUX1ZJRVdcclxuICAgICAgICA/IEV2ZW50c0FuZE1lZXRpbmdzVmlld1R5cGUuTElTVF9WSUVXXHJcbiAgICAgICAgOiBFdmVudHNBbmRNZWV0aW5nc1ZpZXdUeXBlLkNBTEVOREFSX1ZJRVc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTaG93cyB0aGUgc2VhcmNoIGZpZWxkIG9uIGNsaWNrIG9mIHNlYXJjaCBpY29uIGluIGNhc2Ugb2YgbW9iaWxlIHZpZXdcclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBvbkV2ZW50TWVldGluZ1NlYXJjaCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNTZWFyY2hBY3RpdmUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQmFzZWQgb24gY2xpY2sgbWVudSBpdGVtcyBuYXZpZ2F0ZSB0byBlZGl0IG1lZXRpbmcgb3IgZXZlbnQgcGFnZS5cclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGhhbmRsZUVkaXRBY3Rpb25zKHJvdzogYW55KSB7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZXRTdGFuZGFsb25lTWVldGluZ1N0YXR1cyh0cnVlKTtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRhID0gcm93O1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREYXRhPy5sYWJlbCA9PT0gVmlld0VkaXRBY3Rpb24uVklFV19FRElUX0VWRU5UX0RFVEFJTFMpIHtcclxuICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuYWN0aW9uVHlwZSA9XHJcbiAgICAgICAgRXZlbnRBbmRNZWV0aW5nRnVuY3Rpb25UeXBlLkVESVQ7XHJcbiAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnNlbGVjdGVkRXZlbnRJZCA9IHRoaXMuZXZlbnREYXRhPy5pZDtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnJvdXRlUGF0aHMuZWRpdEV2ZW50KTtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRhPy5sYWJlbCA9PT0gVmlld0VkaXRBY3Rpb24uVklFV19FRElUX01FRVRJTkdfREVUQUlMU1xyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmFjdGlvblR5cGUgPVxyXG4gICAgICAgIEV2ZW50QW5kTWVldGluZ0Z1bmN0aW9uVHlwZS5FRElUO1xyXG4gICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZWxlY3RlZE1lZXRpbmdJZCA9IHRoaXMuZXZlbnREYXRhPy5pZDtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnJvdXRlUGF0aHMuZWRpdE1lZXRpbmcpO1xyXG4gICAgfSBlbHNlIGlmIChcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGE/LmlkID09PSBFdmVudEFjdGlvbi5ERUxFVEVfRVZFTlQgfHxcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGE/LmlkID09PSBNZWV0aW5nQWN0aW9uLkRFTEVURV9NRUVUSU5HXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5vcGVuRGVsZXRlQ29uZmlybWF0aW9uTW9kYWwodHJ1ZSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWREYXRhPy5pZCA9PT0gRXZlbnRBY3Rpb24uQ1JFQVRFX01FRVRJTkcpIHtcclxuICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuYWN0aW9uVHlwZSA9XHJcbiAgICAgICAgRXZlbnRBbmRNZWV0aW5nRnVuY3Rpb25UeXBlLkNSRUFURTtcclxuICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc2V0U3RhbmRhbG9uZU1lZXRpbmdTdGF0dXMoZmFsc2UpO1xyXG4gICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZWxlY3RlZEV2ZW50SWQgPSB0aGlzLmV2ZW50RGF0YT8uaWQ7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5yb3V0ZVBhdGhzLmVkaXRFdmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEJhc2VkIG9uIGNsaWNrIGV2ZW50IG5hdmlnYXRlIHRvIGVkaXQgbWVldGluZyBvciBldmVudCBwYWdlLlxyXG4gICAqIEBtZW1iZXJvZiBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudFxyXG4gICAqIEBwYXJhbSB7Kn0gZXZlbnRcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGVkaXRFdmVudE1lZXRpbmcoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5ldmVudERhdGEgPSBldmVudDtcclxuICAgIHRoaXMuc2VsZWN0ZWRFdmVudE9yTWVldGluZ0lkID0gW107XHJcbiAgICBpZiAoZXZlbnQ/LmlkKSB0aGlzLnNlbGVjdGVkRXZlbnRPck1lZXRpbmdJZC5wdXNoKGV2ZW50Py5pZCk7XHJcbiAgICBlbHNlIGlmIChldmVudD8ubWVldGluZ0lkKVxyXG4gICAgICB0aGlzLnNlbGVjdGVkRXZlbnRPck1lZXRpbmdJZC5wdXNoKGV2ZW50Py5tZWV0aW5nSWQpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHZXRzIGlkcyBvZiBhbGwgdGhlIHNlbGVjdGVkIGV2ZW50cyBhbmQgbWVldGluZ3MgdG8gYmUgZGVsZXRlZC5cclxuICAgKiBAcGFyYW0geyp9IHNlbGVjdGVkRXZlbnRzQW5kTWVldGluZ3NcclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRTZWxlY3RlZE1lZXRpbmdzQW5kRXZlbnRzVG9EZWxldGUoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgc2VsZWN0ZWRFdmVudHNBbmRNZWV0aW5nczogYW55XHJcbiAgKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkRXZlbnRzQW5kTWVldGluZ3NJZHMgPSBbXTtcclxuICAgIHNlbGVjdGVkRXZlbnRzQW5kTWVldGluZ3M/LmZvckVhY2goKGV2ZW50T3JNZWV0aW5nOiBFdmVudHNBbmRNZWV0aW5ncykgPT4ge1xyXG4gICAgICBpZiAoZXZlbnRPck1lZXRpbmc/LmlkKVxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRFdmVudHNBbmRNZWV0aW5nc0lkcy5wdXNoKGV2ZW50T3JNZWV0aW5nLmlkKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kZWxldGVCdXR0b24uZGlzYWJsZWQgPSB0aGlzLnNlbGVjdGVkRXZlbnRzQW5kTWVldGluZ3NJZHMubGVuZ3RoID09PSAwO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBPcGVucyBldmVudHMgYW5kIG1lZXRpbmdzIGRlbGV0ZSBjb25maXJtYXRpb24gbW9kYWwgYW5kIGNhbGxzIGRlbGV0ZUV2ZW50c09yTWVldGluZ3MgbWV0aG9kIG9uIGNvbmZpcm1hdGlvbi5cclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBvcGVuRGVsZXRlQ29uZmlybWF0aW9uTW9kYWwoaXNTaW5nbGVEZWxldGU/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb25maXJtYXRpb25JbmZvID1cclxuICAgICAgdGhpcy5zY3JlZW5UZXh0cz8uZGVsZXRlRXZlbnRzT3JNZWV0aW5ncz8uY29uZmlybWF0aW9uSW5mbztcclxuICAgIGNvbnN0IGRlbGV0ZU1vZGFsT3B0aW9ucyA9IHtcclxuICAgICAgbGVmdEJ1dHRvbkxhYmVsOiBjb25maXJtYXRpb25JbmZvPy5sZWZ0QnV0dG9uTGFiZWwsXHJcbiAgICAgIHJpZ2h0QnV0dG9uTGFiZWw6IGNvbmZpcm1hdGlvbkluZm8/LnJpZ2h0QnV0dG9uTGFiZWwsXHJcbiAgICAgIHByb21wdE1lc3NhZ2U6IGNvbmZpcm1hdGlvbkluZm8/LnByb21wdE1lc3NhZ2UsXHJcbiAgICAgIGFjdGlvbkJ1dHRvbkFsaWduOiBBbGlnblR5cGU/Lk1JRERMRSxcclxuICAgIH07XHJcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nPy5vcGVuKE1vZGFsQ29uZmlybWF0aW9uQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IGRlbGV0ZU1vZGFsT3B0aW9ucyxcclxuICAgICAgYXV0b0ZvY3VzOiAnZGlhbG9nJyxcclxuICAgICAgYXJpYUxhYmVsOiB0aGlzLmNvbnN0YW50cz8uYXJpYUxhYmVsPy5hbGVydCxcclxuICAgICAgcGFuZWxDbGFzczogWydpZWVlc2EtZGVsZXRlLWV2ZW50cy1tZWV0aW5ncy1tb2RhbCddLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZlxyXG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgIHRoaXMuZGVsZXRlRXZlbnRzT3JNZWV0aW5ncyhpc1NpbmdsZURlbGV0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2VuZHMgQVBJIFJlcXVlc3QgdG8gZGVsZXRlIHRoZSBzZWxlY3RlZCBldmVudHMgYW5kIG1lZXRpbmdzIGFuZCBoYW5kbGVzIHRoZSBzdWNjZXNzIGFuZCBlcnJvciByZXNwb25zZSBvZiB0aGUgaHR0cCByZXF1ZXN0LlxyXG4gICAqIEBtZW1iZXJvZiBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGRlbGV0ZUV2ZW50c09yTWVldGluZ3MoaXNTaW5nbGVEZWxldGU/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb3VudCA9IGlzU2luZ2xlRGVsZXRlXHJcbiAgICAgID8gdGhpcy5zZWxlY3RlZEV2ZW50T3JNZWV0aW5nSWQ/Lmxlbmd0aFxyXG4gICAgICA6IHRoaXMuc2VsZWN0ZWRFdmVudHNBbmRNZWV0aW5nc0lkcy5sZW5ndGg7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZVxyXG4gICAgICAuZGVsZXRlRXZlbnRzT3JNZWV0aW5ncyh7XHJcbiAgICAgICAgcGF5bG9hZDogaXNTaW5nbGVEZWxldGVcclxuICAgICAgICAgID8gdGhpcy5zZWxlY3RlZEV2ZW50T3JNZWV0aW5nSWRcclxuICAgICAgICAgIDogdGhpcy5zZWxlY3RlZEV2ZW50c0FuZE1lZXRpbmdzSWRzLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZ2V0RXZlbnRzQW5kTWVldGluZ3Moe1xyXG4gICAgICAgICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgICAgICAgZXZlbnRJZDogbnVsbCxcclxuICAgICAgICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLmRlZmF1bHRTb3J0ZWRDb2x1bW4sXHJcbiAgICAgICAgICAgICAgYXNjZW5kaW5nT3JkZXI6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIHBhZ2U6IDEsXHJcbiAgICAgICAgICAgICAgc2l6ZTogdGhpcy5wYWdpbmF0b3JDb25maWc/LnJlY29yZHNQZXJQYWdlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZT8uc2hvd01lc3NhZ2Uoe1xyXG4gICAgICAgICAgICBzdGF0dXM6ICdjdXN0b20nLFxyXG4gICAgICAgICAgICBtZXNzYWdlOlxyXG4gICAgICAgICAgICAgIGNvdW50ICtcclxuICAgICAgICAgICAgICB0aGlzLnNjcmVlblRleHRzPy5kZWxldGVFdmVudHNPck1lZXRpbmdzPy5tZXNzYWdlPy5zdWNjZXNzXHJcbiAgICAgICAgICAgICAgICA/LmRlbGV0aW9uLFxyXG4gICAgICAgICAgICBhbGVydFR5cGU6IEFsZXJ0VHlwZS5TVUNDRVNTLFxyXG4gICAgICAgICAgICBpc0Nsb3NlTmVlZGVkOiB0cnVlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgbWVldGluZ3MgY3JlYXRlZCBmb3IgdGhlIHNlbGVjdGVkIGV2ZW50IGZyb20gc2VydmVyLlxyXG4gICAqIEBwYXJhbSB7R2V0TWVldGluZ3NCeUV2ZW50SWRQYXlsb2FkfSBwYXlsb2FkXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU9yTW9kaWZ5RXZlbnRDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRNZWV0aW5nc0J5RXZlbnRJZChwYXlsb2FkOiBHZXRNZWV0aW5nc0J5RXZlbnRJZFBheWxvYWQpOiB2b2lkIHtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlXHJcbiAgICAgIC5nZXRNZWV0aW5nc0J5RXZlbnRJZChwYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5tZWV0aW5ncyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5uZXN0ZWRUYWJsZVBhZ2luYXRvckNvbmZpZyA9IHtcclxuICAgICAgICAgICAgLi4udGhpcy5uZXN0ZWRUYWJsZVBhZ2luYXRvckNvbmZpZyxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICB0aGlzLm1lZXRpbmdzID1cclxuICAgICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UubWFwTWVldGluZ3NJbmZvVG9EYXRhVGFibGUoXHJcbiAgICAgICAgICAgICAgcmVzcG9uc2U/LmJvZHk/Lm1lZXRpbmdzXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLm5lc3RlZFRhYmxlUGFnaW5hdG9yQ29uZmlnLnRvdGFsUmVjb3JkcyA9XHJcbiAgICAgICAgICAgIHJlc3BvbnNlPy5ib2R5Py50b3RhbFJlY29yZHMgPz8gdGhpcy5tZWV0aW5ncz8ubGVuZ3RoO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZXMgdGhlIHRhYmxlIGNvbHVtbiBzY2hlbWEgYW5kIGdldHMgbWVldGluZ3Mgb2YgdGhlIHNlbGVjdGVkIGV2ZW50IHVzaW5nIGV2ZW50IGlkIGZyb20gc2VydmVyIHRvIGRpc3BsYXkgdGhlIG1lZXRpbmdzIGluIHRoZSBuZXN0ZWQgdGFidWxhciB2aWV3LlxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVPck1vZGlmeUV2ZW50Q29tcG9uZW50XHJcbiAgICogQHBhcmFtIHtFdmVudHNBbmRNZWV0aW5nc30gZXZlbnREZXRhaWxcclxuICAgKi9cclxuICBnZXRFdmVudE1lZXRpbmdzT25Sb3dFeHBhbmQoZXZlbnREZXRhaWw6IEV2ZW50c0FuZE1lZXRpbmdzKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXRpYWxpemVOZXN0ZWRUYWJsZUNvbHVtblNjaGVtYSgpO1xyXG4gICAgdGhpcy5nZXRNZWV0aW5nc0J5RXZlbnRJZCh7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBldmVudElkOiBldmVudERldGFpbD8uaWQsXHJcbiAgICAgICAgc29ydENvbHVtbjogdGhpcy5uZXN0ZWRUYWJsZURlZmF1bHRTb3J0ZWRDb2x1bW4sXHJcbiAgICAgICAgYXNjZW5kaW5nT3JkZXI6IHRoaXMuZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb24sXHJcbiAgICAgICAgcGFnZTogMSxcclxuICAgICAgICBzaXplOiB0aGlzLm5lc3RlZFRhYmxlUGFnaW5hdG9yQ29uZmlnPy5yZWNvcmRzUGVyUGFnZSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZXMgdGFibGUgY29sdW1uIHNjaGVtYSB0byBkaXNwbGF5IHRoZSBtZWV0aW5ncyB1bmRlciBhbiBldmVudCBpbiB0YWJ1bGFyIHZpZXdcclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBpbml0aWFsaXplTmVzdGVkVGFibGVDb2x1bW5TY2hlbWEoKTogdm9pZCB7XHJcbiAgICB0aGlzLm5lc3RlZFRhYmxlQ29sdW1uU2NoZW1hID0gW1xyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDEsXHJcbiAgICAgICAgY29sdW1uRGVmOiBDT0xVTU5fREVGPy5uYW1lLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMuY29sdW1uSGVhZGluZz8ubmFtZSxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuTElOSyxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PiBgJHtlbGVtZW50Lm1lZXRpbmdUaXRsZX1gLFxyXG4gICAgICAgIGlzQ29udGVudFVuZGVyTGluazogdHJ1ZSxcclxuICAgICAgICBpc1NvcnRhYmxlQ29sdW1uOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDIsXHJcbiAgICAgICAgY29sdW1uRGVmOiBDT0xVTU5fREVGPy5zdGFydERhdGVUaW1lLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMuY29sdW1uSGVhZGluZz8uc3RhcnREYXRlVGltZSxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PlxyXG4gICAgICAgICAgYCR7bW9tZW50KGVsZW1lbnQubWVldGluZ1N0RGF0ZSkuZm9ybWF0KFxyXG4gICAgICAgICAgICBEYXRlRm9ybWF0cy5kaXNwbGF5Rm9ybWF0XHJcbiAgICAgICAgICApfTxicj4ke21vbWVudChlbGVtZW50Lm1lZXRpbmdTdERhdGUpLmZvcm1hdChcclxuICAgICAgICAgICAgRGF0ZUZvcm1hdHMudGltZUZvcm1hdFxyXG4gICAgICAgICAgKX1gLFxyXG4gICAgICAgIGlzSFRNTENlbGxEYXRhOiB0cnVlLFxyXG4gICAgICAgIGlzU29ydGFibGVDb2x1bW46IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogMyxcclxuICAgICAgICBjb2x1bW5EZWY6IENPTFVNTl9ERUY/LmVuZERhdGVUaW1lLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMuY29sdW1uSGVhZGluZz8uZW5kRGF0ZVRpbWUsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT5cclxuICAgICAgICAgIGAke21vbWVudChlbGVtZW50Lm1lZXRpbmdFZERhdGUpLmZvcm1hdChcclxuICAgICAgICAgICAgRGF0ZUZvcm1hdHMuZGlzcGxheUZvcm1hdFxyXG4gICAgICAgICAgKX08YnI+JHttb21lbnQoZWxlbWVudC5tZWV0aW5nRWREYXRlKS5mb3JtYXQoXHJcbiAgICAgICAgICAgIERhdGVGb3JtYXRzLnRpbWVGb3JtYXRcclxuICAgICAgICAgICl9YCxcclxuICAgICAgICBpc0hUTUxDZWxsRGF0YTogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiA0LFxyXG4gICAgICAgIGNvbHVtbkRlZjogQ09MVU1OX0RFRj8udGltZVpvbmUsXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy5jb2x1bW5IZWFkaW5nPy50aW1lWm9uZSxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PlxyXG4gICAgICAgICAgYCR7ZWxlbWVudC50aW1lWm9uZSA/PyB0aGlzLmVtcHR5RmllbGRWYWx1ZVJlcGxhY2VkQnl9YCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiA1LFxyXG4gICAgICAgIGNvbHVtbkRlZjogQ09MVU1OX0RFRj8uZ3JvdXAsXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy5jb2x1bW5IZWFkaW5nPy5ncm91cCxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PlxyXG4gICAgICAgICAgYCR7ZWxlbWVudC5ncm91cE5hbWUgPz8gdGhpcy5lbXB0eUZpZWxkVmFsdWVSZXBsYWNlZEJ5fWAsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogNixcclxuICAgICAgICBjb2x1bW5EZWY6IENPTFVNTl9ERUY/LmxvY2F0aW9uLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMuY29sdW1uSGVhZGluZz8ubG9jYXRpb24sXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT5cclxuICAgICAgICAgIGAke2VsZW1lbnQubWVldGluZ0xvY2F0aW9uID8/IHRoaXMuZW1wdHlGaWVsZFZhbHVlUmVwbGFjZWRCeX1gLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDcsXHJcbiAgICAgICAgY29sdW1uRGVmOiBUYWJsZUNvbHVtblR5cGUuQUNUSU9OUyxcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLmNvbHVtbkhlYWRpbmc/LmFjdGlvbnMsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLkFDVElPTlMsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT4gYCR7ZWxlbWVudC5hY3Rpb259YCxcclxuICAgICAgfSxcclxuICAgIF07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBldmVudHMgb3IgbWVldGluZ3MgYmFzZWQgb24gdGhlIGNvbHVtbiBuYW1lIGFuZCBzb3J0IGRpcmVjdGlvbi5cclxuICAgKiBAcGFyYW0ge1NvcnR9IHNvcnRcclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuXHJcbiAgb25Tb3J0TWVldGluZ09yRXZlbnQoc29ydDogU29ydCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZWZhdWx0U29ydGVkQ29sdW1uID1cclxuICAgICAgc29ydC5hY3RpdmUgPT09ICdzdGFydC1kYXRlLXRpbWUnID8gJ3N0YXJ0RGF0ZVRpbWUnIDogc29ydC5hY3RpdmU7XHJcbiAgICB0aGlzLm5lc3RlZFRhYmxlRGVmYXVsdFNvcnRlZENvbHVtbiA9IHNvcnQuYWN0aXZlO1xyXG4gICAgdGhpcy5uZXN0ZWRUYWJsZURlZmF1bHRTb3J0ZWRDb2x1bW4gPVxyXG4gICAgICBzb3J0LmFjdGl2ZSA9PT0gQ09MVU1OX0RFRi5uYW1lID8gJ21lZXRpbmdUaXRsZScgOiAnbWVldGluZ1N0RGF0ZSc7XHJcbiAgICB0aGlzLmRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uID1cclxuICAgICAgc29ydC5kaXJlY3Rpb24gPT09IFRhYmxlQ29sdW1uU29ydERpcmVjdGlvbi5BU0NFTkRJTkc7XHJcbiAgICB0aGlzLmdldEV2ZW50c0FuZE1lZXRpbmdzKHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIGV2ZW50SWQ6IG51bGwsXHJcbiAgICAgICAgc29ydENvbHVtbjogdGhpcy5kZWZhdWx0U29ydGVkQ29sdW1uLFxyXG4gICAgICAgIGFzY2VuZGluZ09yZGVyOiB0aGlzLmRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uLFxyXG4gICAgICAgIHBhZ2U6IDEsXHJcbiAgICAgICAgc2l6ZTogdGhpcy5wYWdpbmF0b3JDb25maWc/LnJlY29yZHNQZXJQYWdlLFxyXG4gICAgICAgIHNlYXJjaFRlcm06IHRoaXMudHJpbW1lZFNlYXJjaFRlcm0gPz8gbnVsbCxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyBpc1NlYXJjaEFjdGl2ZSB0byB0cnVlIGFuZCBsb2FkcyB0aGUgZXZlbnRzIG9yIG1lZXRpbmdzIC5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VhcmNoVGVybVxyXG4gICAqIEBtZW1iZXJvZiBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRXZlbnRzT3JNZWV0aW5nc1NlYXJjaENsaWNrKHNlYXJjaFRlcm06IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHNlYXJjaFRlcm0pIHtcclxuICAgICAgdGhpcy50cmltbWVkU2VhcmNoVGVybSA9IHNlYXJjaFRlcm0udHJpbSgpO1xyXG4gICAgICB0aGlzLmlzU2VhcmNoQWN0aXZlID0gdHJ1ZTtcclxuICAgICAgaWYgKCF0aGlzLnRyaW1tZWRTZWFyY2hUZXJtKSByZXR1cm47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlYXJjaFJlc3VsdE1lc3NhZ2UgPSAnJztcclxuICAgICAgdGhpcy50cmltbWVkU2VhcmNoVGVybSA9ICcnO1xyXG4gICAgICB0aGlzLmlzU2VhcmNoQWN0aXZlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldEV2ZW50c0FuZE1lZXRpbmdzKHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIGV2ZW50SWQ6IG51bGwsXHJcbiAgICAgICAgc29ydENvbHVtbjogdGhpcy5kZWZhdWx0U29ydGVkQ29sdW1uLFxyXG4gICAgICAgIGFzY2VuZGluZ09yZGVyOiBmYWxzZSxcclxuICAgICAgICBwYWdlOiAxLFxyXG4gICAgICAgIHNpemU6IHRoaXMucGFnaW5hdG9yQ29uZmlnPy5yZWNvcmRzUGVyUGFnZSxcclxuICAgICAgICBzZWFyY2hUZXJtOiBzZWFyY2hUZXJtID8gdGhpcy50cmltbWVkU2VhcmNoVGVybSA6IG51bGwsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogTmdPbkRlc3Ryb3kgcGVyZm9ybXMgbmVjZXNzYXJ5IGNsZWFudXAgdGFza3MsIHN1Y2ggYXMgdW5zdWJzY3JpYmluZyBmcm9tIHN1YnNjcmlwdGlvbiB3aGVuIHRoZSBjb21wb25lbnQgaXMgYmVpbmcgZGVzdHJveWVkLlxyXG4gICAqIEBtZW1iZXJvZiBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJpZWVlc2EtZXZlbnRzLWFuZC1tZWV0aW5nXCJcclxuICBbbmdDbGFzc109XCJpc01vYmlsZVZpZXcgPyAnaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZy0tbW9iaWxlLXZpZXcgcC0wJyA6ICcnXCJcclxuPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZ19faGVhZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBwYi0zXCJcclxuICAgIFtuZ0NsYXNzXT1cIlxyXG4gICAgICBpc01vYmlsZVZpZXcgPyAnaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZ19faGVhZGVyLS1tb2JpbGUtdmlldycgOiAnJ1xyXG4gICAgXCJcclxuICA+XHJcbiAgICA8cFxyXG4gICAgICBbbmdDbGFzc109XCJpc01vYmlsZVZpZXcgPyAnaWVlZXNhLXRpdGxlLWxnLTI0JyA6ICdpZWVlc2EtaGVhZGxpbmUtbGctMzQnXCJcclxuICAgID5cclxuICAgICAge3sgc2NyZWVuVGV4dHM/LnRpdGxlIH19XHJcbiAgICA8L3A+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLXN0YXJ0IGdhcC1sZy0zIGdhcC1tZC0zIGdhcC1zbS0zIGdhcC0zIGNvbC1tZC01IGNvbC1sZy00IGp1c3RpZnktY29udGVudC1lbmQgcHMtMFwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNNb2JpbGVWaWV3XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlYXJjaEZpZWxkXCI+IDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwiaXNDcmVhdGVFdmVudEFuZE1lZXRpbmdBbGxvd2VkXCJcclxuICAgICAgICBjbGFzcz1cImllZWVzYS1ldmVudHMtYW5kLW1lZXRpbmdfX2hlYWRlcl9fY3JlYXRlLWJ1dHRvbiBkLW5vbmUgZC1zbS1ub25lIGQtbWQtYmxvY2sgZC1sZy1ibG9jayBkLXhsLWJsb2NrIGNvbC1sZy0zIHBiLTBcIlxyXG4gICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvQ3JlYXRlRXZlbnRNZWV0aW5nRm9ybSgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzdmdcclxuICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZ19faGVhZGVyX19jcmVhdGUtYnV0dG9uX19pY29uIG1lLTJcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDx1c2UgW2F0dHIueGxpbms6aHJlZl09XCJjcmVhdGVCdXR0b24/Lmljb25VUkxcIj48L3VzZT5cclxuICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImllZWVzYS1ldmVudHMtYW5kLW1lZXRpbmdfX2hlYWRlcl9fY3JlYXRlLWJ1dHRvbl9fbGFiZWxcIj57e1xyXG4gICAgICAgICAgY3JlYXRlQnV0dG9uPy5sYWJlbFxyXG4gICAgICAgIH19PC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImQtZmxleCBkLXNtLWZsZXggZC1tZC1ub25lIGQtbGctbm9uZSBkLXhsLW5vbmUgaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZ19faGVhZGVyX19tb2JpbGUtaWNvbnMgZ2FwLTJcIlxyXG4gICAgPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic2NyZWVuVGV4dHM/LnNlYXJjaFBsYWNlaG9sZGVyVGV4dFwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uRXZlbnRNZWV0aW5nU2VhcmNoKClcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1tYWduaWZ5aW5nLWdsYXNzIHNlYXJjaC1ldmVudHMtbWVldGluZ3MtaWNvblwiPjwvaT5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxpZWVlc2EtaWNvbi1idXR0b25cclxuICAgICAgICAqbmdJZj1cImlzQ3JlYXRlRXZlbnRBbmRNZWV0aW5nQWxsb3dlZFwiXHJcbiAgICAgICAgW2ljb25CdXR0b25dPVwiY3JlYXRlQnV0dG9uXCJcclxuICAgICAgICAoaWNvbkJ1dHRvbkNsaWNrKT1cIm5hdmlnYXRlVG9DcmVhdGVFdmVudE1lZXRpbmdGb3JtKClcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvaWVlZXNhLWljb24tYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPG5nLXRlbXBsYXRlICNzZWFyY2hGaWVsZD5cclxuICAgIDxpZWVlc2Etc2VhcmNoXHJcbiAgICAgIFtwbGFjZWhvbGRlckxhYmVsXT1cInNjcmVlblRleHRzPy5zZWFyY2hQbGFjZWhvbGRlclRleHRcIlxyXG4gICAgICBbc2VhcmNoVHlwZV09XCJzZWFyY2hUeXBlXCJcclxuICAgICAgKHNlYXJjaFZhbHVlKT1cIm9uRXZlbnRzT3JNZWV0aW5nc1NlYXJjaENsaWNrKCRldmVudClcIlxyXG4gICAgICBbc2VhcmNoVGVybV09XCJ0cmltbWVkU2VhcmNoVGVybVwiXHJcbiAgICAgIFttaW5DaGFyYWN0ZXJUb1NlYXJjaF09XCJtaW5DaGFyYWN0ZXJUb1NlYXJjaFwiXHJcbiAgICAgIFtzdXBwb3J0TWVzc2FnZV09XCJzdXBwb3J0TWVzc2FnZVwiXHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZ19fc2VhcmNoLXdyYXBwZXJcIlxyXG4gICAgPjwvaWVlZXNhLXNlYXJjaD5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZ19fZmlsdGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBwYi0zXCJcclxuICAgIFtuZ0NsYXNzXT1cIlxyXG4gICAgICBpc01vYmlsZVZpZXcgPyAnaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZ19fZmlsdGVyLS1tb2JpbGUtdmlldycgOiAnJ1xyXG4gICAgXCJcclxuICA+XHJcbiAgICA8aWVlZXNhLWZpbHRlciBbZmlsdGVyc109XCJmaWx0ZXJzXCI+PC9pZWVlc2EtZmlsdGVyPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZ19fdmlld1wiXHJcbiAgICBbbmdDbGFzc109XCJcclxuICAgICAgaXNNb2JpbGVWaWV3ID8gJ2llZWVzYS1ldmVudHMtYW5kLW1lZXRpbmdfX3ZpZXctLW1vYmlsZS12aWV3IHAtMCcgOiAnJ1xyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZ19fdGFiLWFjdGlvbiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCJcclxuICAgICAgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgaXNNb2JpbGVWaWV3XHJcbiAgICAgICAgICA/ICdpZWVlc2EtZXZlbnRzLWFuZC1tZWV0aW5nX190YWItYWN0aW9uLS1tb2JpbGUtdmlldyBwYi0zJ1xyXG4gICAgICAgICAgOiAnJ1xyXG4gICAgICBcIlxyXG4gICAgPlxyXG4gICAgICA8aWVlZXNhLXRvZ2dsZS1idXR0b25cclxuICAgICAgICBbc2VsZWN0ZWRMYWJlbF09XCJsaXN0T3JDYWxlbmRhclZpZXdzWzBdPy5sYWJlbCA/PyAnJ1wiXHJcbiAgICAgICAgW2J1dHRvbnNdPVwibGlzdE9yQ2FsZW5kYXJWaWV3c1wiXHJcbiAgICAgICAgKHRvZ2dsZVNlbGVjdGVkKT1cIm9uVG9nZ2xlQnV0dG9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICA+PC9pZWVlc2EtdG9nZ2xlLWJ1dHRvbj5cclxuICAgICAgPGllZWVzYS1pY29uLWJ1dHRvblxyXG4gICAgICAgIFtpY29uQnV0dG9uXT1cImRlbGV0ZUJ1dHRvblwiXHJcbiAgICAgICAgKm5nSWY9XCJpc0RlbGV0ZUV2ZW50QW5kTWVldGluZ0FsbG93ZWRcIlxyXG4gICAgICAgIChpY29uQnV0dG9uQ2xpY2spPVwib3BlbkRlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsKClcIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZ19fZGVsZXRlLWJ1dHRvblwiXHJcbiAgICAgID48L2llZWVzYS1pY29uLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPHBcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtZXZlbnRzLWFuZC1tZWV0aW5nX190YWItYWN0aW9uIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIlxyXG4gICAgICAqbmdJZj1cInRyaW1tZWRTZWFyY2hUZXJtXCJcclxuICAgICAgW2lubmVySFRNTF09XCJzZWFyY2hSZXN1bHRNZXNzYWdlIHwgc2FmZSA6IHNhZmVUeXBlXCJcclxuICAgID48L3A+XHJcbiAgICA8aWVlZXNhLWRhdGEtdGFibGVcclxuICAgICAgKm5nSWY9XCJzZWxlY3RlZFZpZXdUeXBlID09PSBldmVudEFuZE1lZXRpbmdWaWV3VHlwZS5MSVNUX1ZJRVdcIlxyXG4gICAgICBbdGFibGVEYXRhSW5mb109XCJldmVudHNBbmRNZWV0aW5nc0xpc3RcIlxyXG4gICAgICBbbmVzdGVkVGFibGVEYXRhSW5mb109XCJtZWV0aW5nc1wiXHJcbiAgICAgIFtjb2x1bW5TY2hlbWFJbmZvXT1cImNvbHVtblNjaGVtYVwiXHJcbiAgICAgIFtuZXN0ZWRUYWJsZUNvbHVtblNjaGVtYUluZm9dPVwibmVzdGVkVGFibGVDb2x1bW5TY2hlbWFcIlxyXG4gICAgICBbcGFnaW5hdG9yQ29uZmlnXT1cInBhZ2luYXRvckNvbmZpZ1wiXHJcbiAgICAgIFtuZXN0ZWRQYWdpbmF0b3JDb25maWddPVwibmVzdGVkVGFibGVQYWdpbmF0b3JDb25maWdcIlxyXG4gICAgICBbdmlld0FsbF09XCJ2aWV3QWxsTWVldGluZ3NUZXh0XCJcclxuICAgICAgW3RhYmxlQWN0aW9uc109XCJldmVudHNBbmRNZWV0aW5nc0FjdGlvbnNcIlxyXG4gICAgICBbbmVzdGVkVGFibGVSb3dBY3Rpb25zXT1cInNjcmVlblRleHRzPy5tZWV0aW5nQWN0aW9uc1wiXHJcbiAgICAgIFtjbGFzc05hbWVdPVwiJ2llZWVzYS12aWV3LWV2ZW50cy1hbmQtbWVldGluZ3MnXCJcclxuICAgICAgW2xlZ2VuZHNdPVwiZXZlbnRBbmRNZWV0aW5nTGVnZW5kc1wiXHJcbiAgICAgIChjb2x1bW5EYXRhT25Sb3dMaW5rQ2xpY2spPVwibmF2aWdhdGVUb1ZpZXdEZXRhaWxzUGFnZSgkZXZlbnQpXCJcclxuICAgICAgKG1lbnVBY3Rpb25DbGljayk9XCJlZGl0RXZlbnRNZWV0aW5nKCRldmVudClcIlxyXG4gICAgICAocm93RXhwYW5zaW9uQ2xpY2spPVwiZ2V0RXZlbnRNZWV0aW5nc09uUm93RXhwYW5kKCRldmVudClcIlxyXG4gICAgICAoc2VsZWN0QWN0aW9uTWVudSk9XCJoYW5kbGVFZGl0QWN0aW9ucygkZXZlbnQpXCJcclxuICAgICAgKHBhZ2luYXRpb25DaGFuZ2UpPVwib25FdmVudHNBbmRNZWV0aW5nc1RhYmxlUGFnZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgKHNvcnRDaGFuZ2UpPVwib25Tb3J0TWVldGluZ09yRXZlbnQoJGV2ZW50KVwiXHJcbiAgICAgIChzZWxlY3RlZFJvd3NJbmZvKT1cImdldFNlbGVjdGVkTWVldGluZ3NBbmRFdmVudHNUb0RlbGV0ZSgkZXZlbnQpXCJcclxuICAgID48L2llZWVzYS1kYXRhLXRhYmxlPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
708
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLWFuZC1tZWV0aW5ncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ldmVudHMtYW5kLW1lZXRpbmdzL3NyYy9saWIvZXZlbnRzLWFuZC1tZWV0aW5ncy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ldmVudHMtYW5kLW1lZXRpbmdzL3NyYy9saWIvZXZlbnRzLWFuZC1NZWV0aW5ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxzRkFBc0YsQ0FBQztBQUUzSSxPQUFPLEVBQ0wsU0FBUyxFQUdULEtBQUssRUFDTCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsMEhBQTBIO0FBQzFILE9BQU8sS0FBSyxTQUFTLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUtMLGVBQWUsRUFFZixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFFVixxQkFBcUIsRUFDckIsU0FBUyxFQUNULDBCQUEwQixFQUMxQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLHdCQUF3QixFQUV4QixrQkFBa0IsRUFFbkIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUNMLFNBQVMsRUFHVCxRQUFRLEVBQ1IsUUFBUSxHQUNULE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBC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Q2YsUUFBUTs7NEZBTUMsMEJBQTBCO2tCQWxCdEMsU0FBUzsrQkFDRSwyQkFBMkIsY0FDekIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUNBQW1DO3dCQUNuQyxrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixRQUFRO3FCQUNULGlCQUNjLGlCQUFpQixDQUFDLElBQUk7cVFBUTVCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkF5RUcsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENyZWF0ZU1vZGlmeUV2ZW50T3JNZWV0aW5nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NyZWF0ZS1tb2RpZnktZXZlbnQtb3ItbWVldGluZy9jcmVhdGUtbW9kaWZ5LWV2ZW50LW9yLW1lZXRpbmcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9ldmVudHMtYW5kLW1lZXRpbmdzLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIElucHV0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG4vLyBUb0RvOiBjb25zdGFudHMuanNvbiB0byBiZSBtYWludGFpbmVkIGF0IGxpYnJhcnkgc2lkZSBhcyBhIGZhbGxiYWNrIGlmIG5vdCBmb3VuZCBhcHBsaWNhdGlvbiBzcGVjaWZpYyBmcm9tIHNlcnZlciBzaWRlLlxyXG5pbXBvcnQgKiBhcyBjb25zdGFudHMgZnJvbSAnLi9hc3NldHMvY29uc3RhbnRzLmpzb24nO1xyXG5pbXBvcnQge1xyXG4gIFBhZ2luYXRvckNvbmZpZyxcclxuICBUYWJsZUFjdGlvbnMsXHJcbiAgVG9nZ2xlQnV0dG9uLFxyXG4gIEljb25CdXR0b24sXHJcbiAgRmlsdGVyQ29tcG9uZW50LFxyXG4gIENoaXBPcHRpb24sXHJcbiAgQ2hpcHNUeXBlLFxyXG4gIFNlYXJjaENvbXBvbmVudCxcclxuICBTZWFyY2hUeXBlLFxyXG4gIE1lbnUsXHJcbiAgVG9nZ2xlQnV0dG9uQ29tcG9uZW50LFxyXG4gIEFsaWduVHlwZSxcclxuICBNb2RhbENvbmZpcm1hdGlvbkNvbXBvbmVudCxcclxuICBJY29uQnV0dG9uQ29tcG9uZW50LFxyXG4gIFRhYmxlQ29sdW1uVHlwZSxcclxuICBUYWJsZUNvbHVtblNvcnREaXJlY3Rpb24sXHJcbiAgVGFibGVDb2x1bW5TY2hlbWEsXHJcbiAgRGF0YVRhYmxlQ29tcG9uZW50LFxyXG4gIExlZ2VuZFxyXG59IGZyb20gJ0BpZWVlc2EtbnBtL3ByZXNlbnRhdGlvbic7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgRXZlbnRzQW5kTWVldGluZ3MsXHJcbiAgR2V0RXZlbnRzQW5kTWVldGluZ3NQYXlsb2FkLFxyXG59IGZyb20gJy4vbW9kZWxzL2V2ZW50cy1hbmQtbWVldGluZ3MtbGlzdC5tb2RlbCc7XHJcbmltcG9ydCB7IEZpbHRlclR5cGUgfSBmcm9tICcuL21vZGVscy9maWx0ZXItdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IERhdGVGb3JtYXRzIH0gZnJvbSAnLi9hc3NldHMvZGF0ZS1mb3JtYXRzJztcclxuaW1wb3J0IHtcclxuICBBbGVydFR5cGUsXHJcbiAgQWxlcnRzU2VydmljZSxcclxuICBCcmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlLFxyXG4gIFNhZmVQaXBlLFxyXG4gIFNhZmVUeXBlLFxyXG59IGZyb20gJ0BpZWVlc2EtbnBtL3V0aWxpdHknO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBWaWV3RWRpdEFjdGlvbiB9IGZyb20gJy4vbW9kZWxzL3ZpZXctZWRpdC1hY3Rpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBFdmVudHNBbmRNZWV0aW5nc1ZpZXdUeXBlIH0gZnJvbSAnLi9tb2RlbHMvbGlzdC1jYWxlbmRhci12aWV3LWFjdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IEV2ZW50QW5kTWVldGluZ0Z1bmN0aW9uVHlwZSB9IGZyb20gJy4vbW9kZWxzL2V2ZW50LW1lZXRpbmctZnVuY3Rpb24tdHlwZXMubW9kZWwnO1xyXG5pbXBvcnQgeyBVc2VyUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy91c2VyLXBlcm1pc3Npb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIE1lZXRpbmdQZXJtaXNzaW9ucyxcclxuICBVc2VyUGVybWlzc2lvbixcclxufSBmcm9tICcuL21vZGVscy9tZWV0aW5nLXBlcm1pc3Npb25zLm1vZGVsJztcclxuaW1wb3J0IHsgUGVybWlzc2lvblR5cGUgfSBmcm9tICcuL21vZGVscy9wZXJtaXNzaW9uLXR5cGUubW9kZWwnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBFdmVudHNBbmRNZWV0aW5nUm91dGVDb25maWcgfSBmcm9tICcuL21vZGVscy9yb3V0ZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIEdldE1lZXRpbmdzQnlFdmVudElkUGF5bG9hZCxcclxuICBNZWV0aW5nLFxyXG59IGZyb20gJy4vbW9kZWxzL21lZXRpbmdzLXVuZGVyLWV2ZW50cy5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgRXZlbnRBY3Rpb24sXHJcbiAgTWVldGluZ0FjdGlvbixcclxufSBmcm9tICcuL21vZGVscy9ldmVudC1vci1tZWV0aW5nLW1lbnUtYWN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgU29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5jb25zdCBDT0xVTU5fREVGID0ge1xyXG4gIG5hbWU6ICduYW1lJyxcclxuICBzdGFydERhdGVUaW1lOiAnc3RhcnQtZGF0ZS10aW1lJyxcclxuICBlbmREYXRlVGltZTogJ2VuZC1kYXRlLXRpbWUnLFxyXG4gIHRpbWVab25lOiAndGltZS16b25lJyxcclxuICBncm91cDogJ3JlbGF0ZWQtZ3JvdXAnLFxyXG4gIGxvY2F0aW9uOiAnbG9jYXRpb24nLFxyXG59O1xyXG5cclxuLyoqXHJcbiAqIEltcGxlbWVudGF0aW9uIG9mIGV2ZW50IGFuZCBtZWV0aW5nIGZlYXR1cmVzXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50XHJcbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XHJcbiAqIEBpbXBsZW1lbnRzIHtPbkRlc3Ryb3l9XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2llZWVzYS1ldmVudHMtYW5kLW1lZXRpbmcnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQ3JlYXRlTW9kaWZ5RXZlbnRPck1lZXRpbmdDb21wb25lbnQsXHJcbiAgICBEYXRhVGFibGVDb21wb25lbnQsXHJcbiAgICBUb2dnbGVCdXR0b25Db21wb25lbnQsXHJcbiAgICBJY29uQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgRmlsdGVyQ29tcG9uZW50LFxyXG4gICAgU2VhcmNoQ29tcG9uZW50LFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgU2FmZVBpcGUsXHJcbiAgXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ldmVudHMtYW5kLU1lZXRpbmdzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ldmVudHMtYW5kLU1lZXRpbmdzLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcclxuICBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBkaWFsb2dSZWY6IGFueTtcclxuICBASW5wdXQoKSBhcGlCYXNlVVJMITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHVzZXJQZXJtaXNzaW9ucyE6IFVzZXJQZXJtaXNzaW9uW107XHJcbiAgc2VhcmNoUGxhY2Vob2xkZXJUZXh0ITogc3RyaW5nO1xyXG4gIGlzTW9iaWxlVmlldyA9IGZhbHNlO1xyXG4gIGlzU2VhcmNoQWN0aXZlID0gZmFsc2U7XHJcbiAgZXZlbnREYXRhITogRXZlbnRzQW5kTWVldGluZ3M7XHJcbiAgbWVldGluZ0RhdGEhOiBFdmVudHNBbmRNZWV0aW5ncztcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHNlbGVjdGVkRGF0YSE6IGFueTtcclxuICBtZW51RGF0YSE6IE1lbnU7XHJcbiAgc2VhcmNoVHlwZTogU2VhcmNoVHlwZSA9IFNlYXJjaFR5cGUuT05fQ0xJQ0s7XHJcbiAgZGVmYXVsdFNvcnRlZENvbHVtbiA9ICdzdGFydERhdGVUaW1lJztcclxuICBuZXN0ZWRUYWJsZURlZmF1bHRTb3J0ZWRDb2x1bW4gPSAnbWVldGluZ1N0RGF0ZSc7XHJcbiAgZmlsdGVyczogQ2hpcE9wdGlvbltdID0gW1xyXG4gICAge1xyXG4gICAgICBpZDogRmlsdGVyVHlwZS5HUk9VUF9OQU1FLFxyXG4gICAgICBuYW1lOiBGaWx0ZXJUeXBlLkdST1VQX05BTUUsXHJcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICBjaGlwVHlwZTogQ2hpcHNUeXBlLlRPR0dMRSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGlkOiBGaWx0ZXJUeXBlLlNUQVRVUyxcclxuICAgICAgbmFtZTogRmlsdGVyVHlwZS5TVEFUVVMsXHJcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICBjaGlwVHlwZTogQ2hpcHNUeXBlLlRPR0dMRSxcclxuICAgIH0sXHJcbiAgXTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNvbnN0YW50czogYW55ID0gY29uc3RhbnRzO1xyXG4gIHNjcmVlblRleHRzID0gdGhpcy5jb25zdGFudHM/LnZpZXdFdmVudHNBbmRNZWV0aW5ncztcclxuICBwYWdpbmF0b3JDb25maWc6IFBhZ2luYXRvckNvbmZpZyA9IHtcclxuICAgIHJlY29yZHNQZXJQYWdlOiB0aGlzLnNjcmVlblRleHRzPy5wYWdlU2l6ZU9wdGlvbnM/LlsxXSxcclxuICAgIHBhZ2VTaXplT3B0aW9uczogdGhpcy5zY3JlZW5UZXh0cy5wYWdlU2l6ZU9wdGlvbnMsXHJcbiAgICB0b3RhbFJlY29yZHM6IDAsXHJcbiAgfTtcclxuICBuZXN0ZWRUYWJsZVBhZ2luYXRvckNvbmZpZzogUGFnaW5hdG9yQ29uZmlnID0ge1xyXG4gICAgcmVjb3Jkc1BlclBhZ2U6IHRoaXMuc2NyZWVuVGV4dHM/LnBhZ2VTaXplT3B0aW9ucz8uWzFdLFxyXG4gICAgcGFnZVNpemVPcHRpb25zOiB0aGlzLnNjcmVlblRleHRzLnBhZ2VTaXplT3B0aW9ucyxcclxuICAgIHRvdGFsUmVjb3JkczogMCxcclxuICB9O1xyXG4gIGVtcHR5RmllbGRWYWx1ZVJlcGxhY2VkQnkgPSB0aGlzLnNjcmVlblRleHRzPy5lbXB0eUZpZWxkVmFsdWVSZXBsYWNlZEJ5O1xyXG4gIGNvbHVtbkhlYWRpbmcgPSB0aGlzLnNjcmVlblRleHRzPy5jb2x1bW5TY2hlbWE/LmNvbHVtbkhlYWRpbmc7XHJcbiAgdmlld0FsbE1lZXRpbmdzVGV4dCA9IHRoaXMuc2NyZWVuVGV4dHM/LnZpZXdBbGxNZWV0aW5ncztcclxuICBjb2x1bW5TY2hlbWEhOiBUYWJsZUNvbHVtblNjaGVtYVtdO1xyXG4gIG5lc3RlZFRhYmxlQ29sdW1uU2NoZW1hITogVGFibGVDb2x1bW5TY2hlbWFbXTtcclxuICBldmVudHNBbmRNZWV0aW5nc0FjdGlvbnM6IFRhYmxlQWN0aW9ucyA9IHtcclxuICAgIGlzU2VhcmNoTmVlZGVkOiBmYWxzZSxcclxuICAgIGlzRmlsdGVyTmVlZGVkOiBmYWxzZSxcclxuICAgIGlzQWRkTmVlZGVkOiBmYWxzZSxcclxuICAgIGlzRGVsZXRlTmVlZGVkOiBmYWxzZSxcclxuICAgIGlzRWRpdE5lZWRlZDogZmFsc2UsXHJcbiAgICBpc1BhZ2luYXRpb25OZWVkZWQ6IHRydWUsXHJcbiAgfTtcclxuICBldmVudEFuZE1lZXRpbmdMZWdlbmRzOiBMZWdlbmRbXSA9IHRoaXMuY29uc3RhbnRzPy5ldmVudE9yTWVldGluZ0xlZ2VuZHM7XHJcbiAgbGlzdE9yQ2FsZW5kYXJWaWV3czogVG9nZ2xlQnV0dG9uW10gPSB0aGlzLnNjcmVlblRleHRzPy50b2dnbGVCdXR0b25zO1xyXG4gIGRlbGV0ZUJ1dHRvbjogSWNvbkJ1dHRvbiA9IHRoaXMuc2NyZWVuVGV4dHM/LmJ1dHRvbnM/LlsxXTtcclxuICBjcmVhdGVCdXR0b246IEljb25CdXR0b24gPSB0aGlzLnNjcmVlblRleHRzPy5idXR0b25zPy5bMF07XHJcbiAgZXZlbnRBbmRNZWV0aW5nVmlld1R5cGUgPSBFdmVudHNBbmRNZWV0aW5nc1ZpZXdUeXBlO1xyXG4gIHNlbGVjdGVkVmlld1R5cGU6IEV2ZW50c0FuZE1lZXRpbmdzVmlld1R5cGUgPVxyXG4gICAgRXZlbnRzQW5kTWVldGluZ3NWaWV3VHlwZS5MSVNUX1ZJRVc7XHJcbiAgZXZlbnRzQW5kTWVldGluZ3NMaXN0OiBFdmVudHNBbmRNZWV0aW5nc1tdID0gW107XHJcbiAgdXNlck1lZXRpbmdQZXJtaXNzaW9ucyE6IE1lZXRpbmdQZXJtaXNzaW9uc1tdO1xyXG4gIHBlcm1pc3Npb25UeXBlID0gUGVybWlzc2lvblR5cGU7XHJcbiAgc3VwcG9ydE1lc3NhZ2UhOiBzdHJpbmc7XHJcbiAgbWluQ2hhcmFjdGVyVG9TZWFyY2ggPSAzO1xyXG4gIHRyaW1tZWRTZWFyY2hUZXJtID0gJyc7XHJcbiAgc2VhcmNoUmVzdWx0TWVzc2FnZSE6IHN0cmluZztcclxuICBldmVudHNPck1lZXRpbmdzSW5mbyE6IEV2ZW50c0FuZE1lZXRpbmdzW107XHJcbiAgc2VsZWN0ZWRFdmVudHNBbmRNZWV0aW5nc0lkczogc3RyaW5nW10gPSBbXTtcclxuICBpc0RlbGV0ZUV2ZW50QW5kTWVldGluZ0FsbG93ZWQgPSBmYWxzZTtcclxuICBpc0NyZWF0ZUV2ZW50QW5kTWVldGluZ0FsbG93ZWQgPSBmYWxzZTtcclxuICBkZWZhdWx0Q29sdW1uU29ydERpcmVjdGlvbiA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkRXZlbnRPck1lZXRpbmdJZDogc3RyaW5nW10gPSBbXTtcclxuICAvLyBUb0RvIGVtaXQgdGhlIGFzc29jaWF0ZWQgYnV0dG9uIGV2ZW50cyBvZiBDUkVBVEUsIFZJRVcsIEVESVQgZXZlbnRzIGFuZCBtZWV0aW5ncyB1c2luZyBAT3V0cHV0IGFzIHdlIGRpc2N1c3NlZCB0aGUgY29uc3VtZXIgYXBwbGljYXRpb24gbWF5IGxvYWQgdGhlIG1lZXRpbmcgYW5kIGV2ZW50cyBjb21wb25lbnRzIGludG8gdGhlIHRhYmJlZCB2aWV3IG9yIG90aGVyIHdheSBpbnN0ZWFkIG9mIHJvdXRpbmdcclxuICBASW5wdXQoKSByb3V0ZVBhdGhzITogRXZlbnRzQW5kTWVldGluZ1JvdXRlQ29uZmlnO1xyXG4gIG1lZXRpbmdzOiBNZWV0aW5nW10gPSBbXTtcclxuICBzYWZlVHlwZTogU2FmZVR5cGUgPSBTYWZlVHlwZS5IVE1MO1xyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnQuXHJcbiAgICogQG1lbWJlcm9mIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGFsZXJ0U2VydmljZTogQWxlcnRzU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBldmVudHNBbmRNZWV0aW5nc1NlcnZpY2U6IEV2ZW50c0FuZE1lZXRpbmdzU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBicmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlOiBCcmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIHVzZXJQZXJtaXNzaW9uU2VydmljZTogVXNlclBlcm1pc3Npb25zU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5icmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlXHJcbiAgICAgIC5nZXRCcmVha3BvaW50KClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNNb2JpbGVWaWV3ID0gcmVzdWx0Lm1hdGNoZXM7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZXMgdGhlIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50LlxyXG4gICAqIEBtZW1iZXJvZiBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coXCJVc2VyUGVybWlzc2lvbnNcIiwgdGhpcy51c2VyUGVybWlzc2lvbnMpO1xyXG4gICAgY29uc29sZS5sb2coXCJBUElCYXNlVVJMXCIsIHRoaXMuYXBpQmFzZVVSTCk7XHJcbiAgICBpZiAodGhpcy5kZWxldGVCdXR0b24pIHRoaXMuZGVsZXRlQnV0dG9uLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgIHRoaXMuc3VwcG9ydE1lc3NhZ2UgPVxyXG4gICAgICB0aGlzLnNjcmVlblRleHRzPy5taW5DaGFyUmVxdWlyZWRUb1NlYXJjaDEgK1xyXG4gICAgICAnICcgK1xyXG4gICAgICB0aGlzLm1pbkNoYXJhY3RlclRvU2VhcmNoICtcclxuICAgICAgJyAnICtcclxuICAgICAgdGhpcy5zY3JlZW5UZXh0cz8ubWluQ2hhclJlcXVpcmVkVG9TZWFyY2gyO1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2U/LnNldFNlbGVjdGVkRXZlbnREYXRhKG51bGwpO1xyXG4gICAgdGhpcy5yb3V0ZVBhdGhzID0gdGhpcy5yb3V0ZVBhdGhzID8/IHRoaXMuY29uc3RhbnRzPy5yb3V0ZUNvbmZpZ1BhdGg7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8uc2V0Um91dGVQYXRocyh0aGlzLnJvdXRlUGF0aHMpO1xyXG4gICAgdGhpcy51c2VyTWVldGluZ1Blcm1pc3Npb25zID1cclxuICAgICAgdGhpcy51c2VyUGVybWlzc2lvblNlcnZpY2UuZmlsdGVyVXNlck1lZXRpbmdQZXJtaXNzaW9ucyhcclxuICAgICAgICB0aGlzLnVzZXJQZXJtaXNzaW9uc1xyXG4gICAgICApO1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2U/LnNldEFwcENvbmZpZyhcclxuICAgICAgdGhpcy5hcGlCYXNlVVJMLFxyXG4gICAgICB0aGlzLnVzZXJQZXJtaXNzaW9uc1xyXG4gICAgKTtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnNldFVzZXJNZWV0aW5nUGVybWlzc2lvbnMoXHJcbiAgICAgIHRoaXMudXNlck1lZXRpbmdQZXJtaXNzaW9uc1xyXG4gICAgKTtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmdldEdyb3VwcygpLnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5pc0NyZWF0ZUV2ZW50QW5kTWVldGluZ0FsbG93ZWQgPVxyXG4gICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS52YWxpZGF0ZUFjY2VzcyhQZXJtaXNzaW9uVHlwZS5DUkVBVEVfRVZFTlQpO1xyXG4gICAgdGhpcy5maWx0ZXJFdmVudEFuZE1lZXRpbmdBY3Rpb25zKCk7XHJcbiAgICB0aGlzLmlzRGVsZXRlRXZlbnRBbmRNZWV0aW5nQWxsb3dlZCA9XHJcbiAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnZhbGlkYXRlQWNjZXNzKFxyXG4gICAgICAgIFBlcm1pc3Npb25UeXBlLkRFTEVURV9FVkVOVFxyXG4gICAgICApICYmXHJcbiAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnZhbGlkYXRlQWNjZXNzKFxyXG4gICAgICAgIFBlcm1pc3Npb25UeXBlLkRFTEVURV9NRUVUSU5HXHJcbiAgICAgICk7XHJcbiAgICB0aGlzLmluaXRpYWxpemVDb2x1bW5TY2hlbWEoKTtcclxuICAgIHRoaXMuZ2V0RXZlbnRzQW5kTWVldGluZ3Moe1xyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgZXZlbnRJZDogbnVsbCxcclxuICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLmRlZmF1bHRTb3J0ZWRDb2x1bW4sXHJcbiAgICAgICAgYXNjZW5kaW5nT3JkZXI6IGZhbHNlLFxyXG4gICAgICAgIHBhZ2U6IDEsXHJcbiAgICAgICAgc2l6ZTogdGhpcy5wYWdpbmF0b3JDb25maWc/LnJlY29yZHNQZXJQYWdlLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEZpbHRlciB0aGUgZXZlbnQgYW5kIG1lZXRpbmcgYWN0aW9ucyBiYXNlZCBvbiBldmVudCBhbmQgbWVldGluZyBwZXJtaXNzaW9ucy5cclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBmaWx0ZXJFdmVudEFuZE1lZXRpbmdBY3Rpb25zKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2NyZWVuVGV4dHM/LmV2ZW50QWN0aW9ucylcclxuICAgICAgdGhpcy5zY3JlZW5UZXh0cy5ldmVudEFjdGlvbnMgPVxyXG4gICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmdldEZpbHRlcmVkRXZlbnRBY3Rpb25zKFxyXG4gICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cy5ldmVudEFjdGlvbnNcclxuICAgICAgICApO1xyXG4gICAgaWYgKHRoaXMuc2NyZWVuVGV4dHM/Lm1lZXRpbmdBY3Rpb25zKVxyXG4gICAgICB0aGlzLnNjcmVlblRleHRzLm1lZXRpbmdBY3Rpb25zID1cclxuICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5nZXRGaWx0ZXJlZE1lZXRpbmdBY3Rpb25zKFxyXG4gICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cy5tZWV0aW5nQWN0aW9uc1xyXG4gICAgICAgICk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemVzIHRhYmxlIGNvbHVtbiBzY2hlbWEgdG8gZGlzcGxheSB0aGUgbWVldGluZyBhbmQgZXZlbnQgZGV0YWlscyBpbiB0YWJ1bGFyIHZpZXdcclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBpbml0aWFsaXplQ29sdW1uU2NoZW1hKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb2x1bW5TY2hlbWEgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogMSxcclxuICAgICAgICBjb2x1bW5EZWY6IFRhYmxlQ29sdW1uVHlwZS5TRUxFQ1QsXHJcbiAgICAgICAgaGVhZGluZzogJycsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlNFTEVDVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PiBgJHtlbGVtZW50LnNlbGVjdH1gLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDIsXHJcbiAgICAgICAgY29sdW1uRGVmOiBUYWJsZUNvbHVtblR5cGUuTkVTVEVEX1RBQkxFLFxyXG4gICAgICAgIGhlYWRpbmc6ICcnLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5ORVNURURfVEFCTEUsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudC5oYXNDaGlsZHJlbixcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiAzLFxyXG4gICAgICAgIGNvbHVtbkRlZjogQ09MVU1OX0RFRj8ubmFtZSxcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLmNvbHVtbkhlYWRpbmc/Lm5hbWUsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLkxJTkssXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT4gYCR7ZWxlbWVudC5uYW1lfWAsXHJcbiAgICAgICAgaXNDb250ZW50VW5kZXJMaW5rOiB0cnVlLFxyXG4gICAgICAgIGlzU29ydGFibGVDb2x1bW46IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogNCxcclxuICAgICAgICBjb2x1bW5EZWY6IENPTFVNTl9ERUY/LnN0YXJ0RGF0ZVRpbWUsXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy5jb2x1bW5IZWFkaW5nPy5zdGFydERhdGVUaW1lLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+XHJcbiAgICAgICAgICAhZWxlbWVudC5pc01lZXRpbmdFdmVudFxyXG4gICAgICAgICAgICA/IGAke21vbWVudChlbGVtZW50LnN0YXJ0RGF0ZVRpbWUpLmZvcm1hdChcclxuICAgICAgICAgICAgICAgIERhdGVGb3JtYXRzLmRpc3BsYXlGb3JtYXRcclxuICAgICAgICAgICAgICApfTxicj4ke21vbWVudChlbGVtZW50LnN0YXJ0RGF0ZVRpbWUpLmZvcm1hdChcclxuICAgICAgICAgICAgICAgIERhdGVGb3JtYXRzLnRpbWVGb3JtYXRcclxuICAgICAgICAgICAgICApfWBcclxuICAgICAgICAgICAgOiBgJHttb21lbnQoZWxlbWVudC5zdGFydERhdGVUaW1lKS5mb3JtYXQoXHJcbiAgICAgICAgICAgICAgICBEYXRlRm9ybWF0cy5kaXNwbGF5Rm9ybWF0XHJcbiAgICAgICAgICAgICAgKX1gLFxyXG4gICAgICAgIGlzSFRNTENlbGxEYXRhOiB0cnVlLFxyXG4gICAgICAgIGlzU29ydGFibGVDb2x1bW46IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogNSxcclxuICAgICAgICBjb2x1bW5EZWY6IENPTFVNTl9ERUY/LmVuZERhdGVUaW1lLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMuY29sdW1uSGVhZGluZz8uZW5kRGF0ZVRpbWUsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT5cclxuICAgICAgICAgICFlbGVtZW50LmlzTWVldGluZ0V2ZW50XHJcbiAgICAgICAgICAgID8gYCR7bW9tZW50KGVsZW1lbnQuZW5kRGF0ZVRpbWUpLmZvcm1hdChcclxuICAgICAgICAgICAgICAgIERhdGVGb3JtYXRzLmRpc3BsYXlGb3JtYXRcclxuICAgICAgICAgICAgICApfTxicj4ke21vbWVudChlbGVtZW50LmVuZERhdGVUaW1lKS5mb3JtYXQoXHJcbiAgICAgICAgICAgICAgICBEYXRlRm9ybWF0cy50aW1lRm9ybWF0XHJcbiAgICAgICAgICAgICAgKX1gXHJcbiAgICAgICAgICAgIDogYCR7bW9tZW50KGVsZW1lbnQuZW5kRGF0ZVRpbWUpLmZvcm1hdChcclxuICAgICAgICAgICAgICAgIERhdGVGb3JtYXRzLmRpc3BsYXlGb3JtYXRcclxuICAgICAgICAgICAgICApfWAsXHJcbiAgICAgICAgaXNIVE1MQ2VsbERhdGE6IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogNixcclxuICAgICAgICBjb2x1bW5EZWY6IENPTFVNTl9ERUY/LnRpbWVab25lLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMuY29sdW1uSGVhZGluZz8udGltZVpvbmUsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT5cclxuICAgICAgICAgIGAke2VsZW1lbnQudGltZVpvbmUgPz8gdGhpcy5lbXB0eUZpZWxkVmFsdWVSZXBsYWNlZEJ5fWAsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogNyxcclxuICAgICAgICBjb2x1bW5EZWY6IENPTFVNTl9ERUY/Lmdyb3VwLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMuY29sdW1uSGVhZGluZz8uZ3JvdXAsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT5cclxuICAgICAgICAgIGAke2VsZW1lbnQuZ3JvdXBOYW1lID8/IHRoaXMuZW1wdHlGaWVsZFZhbHVlUmVwbGFjZWRCeX1gLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDgsXHJcbiAgICAgICAgY29sdW1uRGVmOiBDT0xVTU5fREVGPy5sb2NhdGlvbixcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLmNvbHVtbkhlYWRpbmc/LmxvY2F0aW9uLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+XHJcbiAgICAgICAgICBgJHtlbGVtZW50Lm1lZXRpbmdMb2NhdGlvbiA/PyB0aGlzLmVtcHR5RmllbGRWYWx1ZVJlcGxhY2VkQnl9YCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiA5LFxyXG4gICAgICAgIGNvbHVtbkRlZjogVGFibGVDb2x1bW5UeXBlLkFDVElPTlMsXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy5jb2x1bW5IZWFkaW5nPy5hY3Rpb25zLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5BQ1RJT05TLFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+IGAke2VsZW1lbnQubWVudUFjdGlvbn1gLFxyXG4gICAgICB9LFxyXG4gICAgXTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgZXZlbnRzIGFuZCBtZWV0aW5ncyBsaXN0IGZyb20gdGhlIHNlcnZlci5cclxuICAgKiBAcGFyYW0ge0dldEV2ZW50c0FuZE1lZXRpbmdzUGF5bG9hZH0gcGF5bG9hZFxyXG4gICAqIEBtZW1iZXJvZiBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldEV2ZW50c0FuZE1lZXRpbmdzKHBheWxvYWQ6IEdldEV2ZW50c0FuZE1lZXRpbmdzUGF5bG9hZCk6IHZvaWQge1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2VcclxuICAgICAgLmdldEV2ZW50c0FuZE1lZXRpbmdzKHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzTGlzdCA9IFtdO1xyXG4gICAgICAgICAgcmVzcG9uc2U/LmJvZHk/LmV2ZW50TWVldGluZ0xpc3Q/LmZvckVhY2goKGV2ZW50TWVldGluZykgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB0aXRsZSA9IGV2ZW50TWVldGluZy5pc01lZXRpbmdFdmVudFxyXG4gICAgICAgICAgICAgID8gdGhpcy5zY3JlZW5UZXh0cz8uZXZlbnRcclxuICAgICAgICAgICAgICA6IHRoaXMuc2NyZWVuVGV4dHM/Lm1lZXRpbmc7XHJcbiAgICAgICAgICAgIGV2ZW50TWVldGluZy50b29sVGlwVGV4dCA9IGV2ZW50TWVldGluZy5uYW1lICsgJyAnICsgdGl0bGU7XHJcbiAgICAgICAgICAgIGV2ZW50TWVldGluZy5jb250ZW50VW5kZXJMaW5rID0gZXZlbnRNZWV0aW5nLnN0YXR1cztcclxuICAgICAgICAgICAgZXZlbnRNZWV0aW5nLmxlZ2VuZENvbG9yID1cclxuICAgICAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5nZXRFdmVudE9yTWVldGluZ0xlZ2VuZENvbG9yKFxyXG4gICAgICAgICAgICAgICAgZXZlbnRNZWV0aW5nPy5zdGF0dXNcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzTGlzdC5wdXNoKGV2ZW50TWVldGluZyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMucGFnaW5hdG9yQ29uZmlnLnRvdGFsUmVjb3JkcyA9XHJcbiAgICAgICAgICAgIHJlc3BvbnNlPy5ib2R5Py50b3RhbFJlY29yZHMgPz8gdGhpcy5ldmVudHNBbmRNZWV0aW5nc0xpc3QubGVuZ3RoO1xyXG4gICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc0xpc3QgPSB0aGlzLm1hcE1lbnVBY3Rpb25Ub0xpc3QoXHJcbiAgICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NMaXN0XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc0xpc3QgPSBbLi4udGhpcy5ldmVudHNBbmRNZWV0aW5nc0xpc3RdO1xyXG4gICAgICAgICAgdGhpcy5wYWdpbmF0b3JDb25maWcgPSB7IC4uLnRoaXMucGFnaW5hdG9yQ29uZmlnIH07XHJcbiAgICAgICAgICBpZiAodGhpcy5pc1NlYXJjaEFjdGl2ZSlcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hSZXN1bHRNZXNzYWdlID0gYDxkaXY+JHt0aGlzLnNjcmVlblRleHRzPy5zZWFyY2hSZXN1bHRNc2dQYXJ0MX0gJHt0aGlzLnBhZ2luYXRvckNvbmZpZz8udG90YWxSZWNvcmRzfVxyXG4gICAgICAgICR7dGhpcy5zY3JlZW5UZXh0cz8uc2VhcmNoUmVzdWx0TXNnUGFydDJ9IFwiPHN0cm9uZz4ke3RoaXMudHJpbW1lZFNlYXJjaFRlcm19PC9zdHJvbmc+XCI8L2Rpdj5gO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHRhYmxlIHJvdyBhY3Rpb25zIGZvciBlYWNoIHJvdyBvZiBldmVudHMgYW5kIG1lZXRpbmdzIHRhYmxlIHRoZW4gcmV0dXJucyBFdmVuc0FuZE1lZXRpbmdzLlxyXG4gICAqIEBwYXJhbSB7RXZlbnRzQW5kTWVldGluZ3NbXX1cclxuICAgKiAqIEByZXR1cm4ge0V2ZW50c0FuZE1lZXRpbmdzW119IC1JdCByZXR1cm5zIGV2ZW50c0FuZE1lZXRpbmdzTGlzdCB3aXRoIG1lbnUgYWN0aW9uIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHJvdy5cclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBtYXBNZW51QWN0aW9uVG9MaXN0KFxyXG4gICAgZXZlbnRzQW5kTWVldGluZ3NMaXN0OiBFdmVudHNBbmRNZWV0aW5nc1tdXHJcbiAgKTogRXZlbnRzQW5kTWVldGluZ3NbXSB7XHJcbiAgICBldmVudHNBbmRNZWV0aW5nc0xpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICBpdGVtLm1lbnVBY3Rpb24gPSBpdGVtLmlzTWVldGluZ0V2ZW50XHJcbiAgICAgICAgPyB0aGlzLnNjcmVlblRleHRzPy5ldmVudEFjdGlvbnNcclxuICAgICAgICA6IHRoaXMuc2NyZWVuVGV4dHM/Lm1lZXRpbmdBY3Rpb25zO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZXZlbnRzQW5kTWVldGluZ3NMaXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgbWVldGluZ3MgYW5kIGV2ZW50cyBsaXN0IGRldGFpbHMgb24gY2hhbmdlIG9mIHRhYmxlIHBhZ2luYXRpb24uXHJcbiAgICogQHBhcmFtIHt7UGFnZUV2ZW50fX0gcGFnZUV2ZW50XHJcbiAgICogQG1lbWJlcm9mIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25FdmVudHNBbmRNZWV0aW5nc1RhYmxlUGFnZUNoYW5nZShwYWdlRXZlbnQ6IFBhZ2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRFdmVudHNBbmRNZWV0aW5ncyh7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBldmVudElkOiAnJyxcclxuICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLmRlZmF1bHRTb3J0ZWRDb2x1bW4sXHJcbiAgICAgICAgYXNjZW5kaW5nT3JkZXI6IHRoaXMuZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb24sXHJcbiAgICAgICAgcGFnZTogcGFnZUV2ZW50LnBhZ2VJbmRleCArIDEsXHJcbiAgICAgICAgc2l6ZTogcGFnZUV2ZW50LnBhZ2VTaXplLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCYXNlZCBvbiBjbGljayBldmVudCBuYXZpZ2F0ZSB0byB2aWV3IG1lZXRpbmcgb3IgZXZlbnQgcGFnZS5cclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIG5hdmlnYXRlVG9WaWV3RGV0YWlsc1BhZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc2V0U3RhbmRhbG9uZU1lZXRpbmdTdGF0dXModHJ1ZSk7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5hY3Rpb25UeXBlID0gRXZlbnRBbmRNZWV0aW5nRnVuY3Rpb25UeXBlLkVESVQ7XHJcbiAgICBpZiAoZXZlbnQ/LnJvdz8uaXNNZWV0aW5nRXZlbnQpIHtcclxuICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc2VsZWN0ZWRFdmVudElkID0gZXZlbnQ/LnJvdz8uaWQ7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5yb3V0ZVBhdGhzLmVkaXRFdmVudCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZWxlY3RlZE1lZXRpbmdJZCA9IGV2ZW50Py5yb3c/LmlkO1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMucm91dGVQYXRocy5lZGl0TWVldGluZyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBOYXZpZ2F0ZXMgdG8gY3JlYXRlIG1lZXRpbmcgb3IgZXZlbnQgcGFnZS5cclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBuYXZpZ2F0ZVRvQ3JlYXRlRXZlbnRNZWV0aW5nRm9ybSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmFjdGlvblR5cGUgPVxyXG4gICAgICBFdmVudEFuZE1lZXRpbmdGdW5jdGlvblR5cGUuQ1JFQVRFO1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc2VsZWN0ZWRFdmVudElkID0gJyc7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZWxlY3RlZE1lZXRpbmdJZCA9ICcnO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnJvdXRlUGF0aHMuY3JlYXRlRXZlbnRNZWV0aW5nKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRvZ2dsZXMgYmV0d2VlbiB0aGUgTGlzdCB2aWV3IG9yIENhbGVuZGFyIHZpZXdcclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBvblRvZ2dsZUJ1dHRvbkNoYW5nZSh0b2dnbGVCdXR0b246IFRvZ2dsZUJ1dHRvbikge1xyXG4gICAgdGhpcy5zZWxlY3RlZFZpZXdUeXBlID1cclxuICAgICAgdG9nZ2xlQnV0dG9uPy5pZCA9PT0gRXZlbnRzQW5kTWVldGluZ3NWaWV3VHlwZS5MSVNUX1ZJRVdcclxuICAgICAgICA/IEV2ZW50c0FuZE1lZXRpbmdzVmlld1R5cGUuTElTVF9WSUVXXHJcbiAgICAgICAgOiBFdmVudHNBbmRNZWV0aW5nc1ZpZXdUeXBlLkNBTEVOREFSX1ZJRVc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTaG93cyB0aGUgc2VhcmNoIGZpZWxkIG9uIGNsaWNrIG9mIHNlYXJjaCBpY29uIGluIGNhc2Ugb2YgbW9iaWxlIHZpZXdcclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBvbkV2ZW50TWVldGluZ1NlYXJjaCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNTZWFyY2hBY3RpdmUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQmFzZWQgb24gY2xpY2sgbWVudSBpdGVtcyBuYXZpZ2F0ZSB0byBlZGl0IG1lZXRpbmcgb3IgZXZlbnQgcGFnZS5cclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGhhbmRsZUVkaXRBY3Rpb25zKHJvdzogYW55KSB7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZXRTdGFuZGFsb25lTWVldGluZ1N0YXR1cyh0cnVlKTtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRhID0gcm93O1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREYXRhPy5sYWJlbCA9PT0gVmlld0VkaXRBY3Rpb24uVklFV19FRElUX0VWRU5UX0RFVEFJTFMpIHtcclxuICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuYWN0aW9uVHlwZSA9XHJcbiAgICAgICAgRXZlbnRBbmRNZWV0aW5nRnVuY3Rpb25UeXBlLkVESVQ7XHJcbiAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnNlbGVjdGVkRXZlbnRJZCA9IHRoaXMuZXZlbnREYXRhPy5pZDtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnJvdXRlUGF0aHMuZWRpdEV2ZW50KTtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRhPy5sYWJlbCA9PT0gVmlld0VkaXRBY3Rpb24uVklFV19FRElUX01FRVRJTkdfREVUQUlMU1xyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmFjdGlvblR5cGUgPVxyXG4gICAgICAgIEV2ZW50QW5kTWVldGluZ0Z1bmN0aW9uVHlwZS5FRElUO1xyXG4gICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZWxlY3RlZE1lZXRpbmdJZCA9IHRoaXMuZXZlbnREYXRhPy5pZDtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnJvdXRlUGF0aHMuZWRpdE1lZXRpbmcpO1xyXG4gICAgfSBlbHNlIGlmIChcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGE/LmlkID09PSBFdmVudEFjdGlvbi5ERUxFVEVfRVZFTlQgfHxcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGE/LmlkID09PSBNZWV0aW5nQWN0aW9uLkRFTEVURV9NRUVUSU5HXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5vcGVuRGVsZXRlQ29uZmlybWF0aW9uTW9kYWwodHJ1ZSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWREYXRhPy5pZCA9PT0gRXZlbnRBY3Rpb24uQ1JFQVRFX01FRVRJTkcpIHtcclxuICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuYWN0aW9uVHlwZSA9XHJcbiAgICAgICAgRXZlbnRBbmRNZWV0aW5nRnVuY3Rpb25UeXBlLkNSRUFURTtcclxuICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc2V0U3RhbmRhbG9uZU1lZXRpbmdTdGF0dXMoZmFsc2UpO1xyXG4gICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZWxlY3RlZEV2ZW50SWQgPSB0aGlzLmV2ZW50RGF0YT8uaWQ7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5yb3V0ZVBhdGhzLmVkaXRFdmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEJhc2VkIG9uIGNsaWNrIGV2ZW50IG5hdmlnYXRlIHRvIGVkaXQgbWVldGluZyBvciBldmVudCBwYWdlLlxyXG4gICAqIEBtZW1iZXJvZiBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudFxyXG4gICAqIEBwYXJhbSB7Kn0gZXZlbnRcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGVkaXRFdmVudE1lZXRpbmcoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5ldmVudERhdGEgPSBldmVudDtcclxuICAgIHRoaXMuc2VsZWN0ZWRFdmVudE9yTWVldGluZ0lkID0gW107XHJcbiAgICBpZiAoZXZlbnQ/LmlkKSB0aGlzLnNlbGVjdGVkRXZlbnRPck1lZXRpbmdJZC5wdXNoKGV2ZW50Py5pZCk7XHJcbiAgICBlbHNlIGlmIChldmVudD8ubWVldGluZ0lkKVxyXG4gICAgICB0aGlzLnNlbGVjdGVkRXZlbnRPck1lZXRpbmdJZC5wdXNoKGV2ZW50Py5tZWV0aW5nSWQpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHZXRzIGlkcyBvZiBhbGwgdGhlIHNlbGVjdGVkIGV2ZW50cyBhbmQgbWVldGluZ3MgdG8gYmUgZGVsZXRlZC5cclxuICAgKiBAcGFyYW0geyp9IHNlbGVjdGVkRXZlbnRzQW5kTWVldGluZ3NcclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRTZWxlY3RlZE1lZXRpbmdzQW5kRXZlbnRzVG9EZWxldGUoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgc2VsZWN0ZWRFdmVudHNBbmRNZWV0aW5nczogYW55XHJcbiAgKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkRXZlbnRzQW5kTWVldGluZ3NJZHMgPSBbXTtcclxuICAgIHNlbGVjdGVkRXZlbnRzQW5kTWVldGluZ3M/LmZvckVhY2goKGV2ZW50T3JNZWV0aW5nOiBFdmVudHNBbmRNZWV0aW5ncykgPT4ge1xyXG4gICAgICBpZiAoZXZlbnRPck1lZXRpbmc/LmlkKVxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRFdmVudHNBbmRNZWV0aW5nc0lkcy5wdXNoKGV2ZW50T3JNZWV0aW5nLmlkKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kZWxldGVCdXR0b24uZGlzYWJsZWQgPSB0aGlzLnNlbGVjdGVkRXZlbnRzQW5kTWVldGluZ3NJZHMubGVuZ3RoID09PSAwO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBPcGVucyBldmVudHMgYW5kIG1lZXRpbmdzIGRlbGV0ZSBjb25maXJtYXRpb24gbW9kYWwgYW5kIGNhbGxzIGRlbGV0ZUV2ZW50c09yTWVldGluZ3MgbWV0aG9kIG9uIGNvbmZpcm1hdGlvbi5cclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBvcGVuRGVsZXRlQ29uZmlybWF0aW9uTW9kYWwoaXNTaW5nbGVEZWxldGU/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb25maXJtYXRpb25JbmZvID1cclxuICAgICAgdGhpcy5zY3JlZW5UZXh0cz8uZGVsZXRlRXZlbnRzT3JNZWV0aW5ncz8uY29uZmlybWF0aW9uSW5mbztcclxuICAgIGNvbnN0IGRlbGV0ZU1vZGFsT3B0aW9ucyA9IHtcclxuICAgICAgbGVmdEJ1dHRvbkxhYmVsOiBjb25maXJtYXRpb25JbmZvPy5sZWZ0QnV0dG9uTGFiZWwsXHJcbiAgICAgIHJpZ2h0QnV0dG9uTGFiZWw6IGNvbmZpcm1hdGlvbkluZm8/LnJpZ2h0QnV0dG9uTGFiZWwsXHJcbiAgICAgIHByb21wdE1lc3NhZ2U6IGNvbmZpcm1hdGlvbkluZm8/LnByb21wdE1lc3NhZ2UsXHJcbiAgICAgIGFjdGlvbkJ1dHRvbkFsaWduOiBBbGlnblR5cGU/Lk1JRERMRSxcclxuICAgIH07XHJcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nPy5vcGVuKE1vZGFsQ29uZmlybWF0aW9uQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IGRlbGV0ZU1vZGFsT3B0aW9ucyxcclxuICAgICAgYXV0b0ZvY3VzOiAnZGlhbG9nJyxcclxuICAgICAgYXJpYUxhYmVsOiB0aGlzLmNvbnN0YW50cz8uYXJpYUxhYmVsPy5hbGVydCxcclxuICAgICAgcGFuZWxDbGFzczogWydpZWVlc2EtZGVsZXRlLWV2ZW50cy1tZWV0aW5ncy1tb2RhbCddLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZlxyXG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgIHRoaXMuZGVsZXRlRXZlbnRzT3JNZWV0aW5ncyhpc1NpbmdsZURlbGV0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2VuZHMgQVBJIFJlcXVlc3QgdG8gZGVsZXRlIHRoZSBzZWxlY3RlZCBldmVudHMgYW5kIG1lZXRpbmdzIGFuZCBoYW5kbGVzIHRoZSBzdWNjZXNzIGFuZCBlcnJvciByZXNwb25zZSBvZiB0aGUgaHR0cCByZXF1ZXN0LlxyXG4gICAqIEBtZW1iZXJvZiBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGRlbGV0ZUV2ZW50c09yTWVldGluZ3MoaXNTaW5nbGVEZWxldGU/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb3VudCA9IGlzU2luZ2xlRGVsZXRlXHJcbiAgICAgID8gdGhpcy5zZWxlY3RlZEV2ZW50T3JNZWV0aW5nSWQ/Lmxlbmd0aFxyXG4gICAgICA6IHRoaXMuc2VsZWN0ZWRFdmVudHNBbmRNZWV0aW5nc0lkcy5sZW5ndGg7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZVxyXG4gICAgICAuZGVsZXRlRXZlbnRzT3JNZWV0aW5ncyh7XHJcbiAgICAgICAgcGF5bG9hZDogaXNTaW5nbGVEZWxldGVcclxuICAgICAgICAgID8gdGhpcy5zZWxlY3RlZEV2ZW50T3JNZWV0aW5nSWRcclxuICAgICAgICAgIDogdGhpcy5zZWxlY3RlZEV2ZW50c0FuZE1lZXRpbmdzSWRzLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZ2V0RXZlbnRzQW5kTWVldGluZ3Moe1xyXG4gICAgICAgICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgICAgICAgZXZlbnRJZDogbnVsbCxcclxuICAgICAgICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLmRlZmF1bHRTb3J0ZWRDb2x1bW4sXHJcbiAgICAgICAgICAgICAgYXNjZW5kaW5nT3JkZXI6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIHBhZ2U6IDEsXHJcbiAgICAgICAgICAgICAgc2l6ZTogdGhpcy5wYWdpbmF0b3JDb25maWc/LnJlY29yZHNQZXJQYWdlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZT8uc2hvd01lc3NhZ2Uoe1xyXG4gICAgICAgICAgICBzdGF0dXM6ICdjdXN0b20nLFxyXG4gICAgICAgICAgICBtZXNzYWdlOlxyXG4gICAgICAgICAgICAgIGNvdW50ICtcclxuICAgICAgICAgICAgICB0aGlzLnNjcmVlblRleHRzPy5kZWxldGVFdmVudHNPck1lZXRpbmdzPy5tZXNzYWdlPy5zdWNjZXNzXHJcbiAgICAgICAgICAgICAgICA/LmRlbGV0aW9uLFxyXG4gICAgICAgICAgICBhbGVydFR5cGU6IEFsZXJ0VHlwZS5TVUNDRVNTLFxyXG4gICAgICAgICAgICBpc0Nsb3NlTmVlZGVkOiB0cnVlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgbWVldGluZ3MgY3JlYXRlZCBmb3IgdGhlIHNlbGVjdGVkIGV2ZW50IGZyb20gc2VydmVyLlxyXG4gICAqIEBwYXJhbSB7R2V0TWVldGluZ3NCeUV2ZW50SWRQYXlsb2FkfSBwYXlsb2FkXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU9yTW9kaWZ5RXZlbnRDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRNZWV0aW5nc0J5RXZlbnRJZChwYXlsb2FkOiBHZXRNZWV0aW5nc0J5RXZlbnRJZFBheWxvYWQpOiB2b2lkIHtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlXHJcbiAgICAgIC5nZXRNZWV0aW5nc0J5RXZlbnRJZChwYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5tZWV0aW5ncyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5uZXN0ZWRUYWJsZVBhZ2luYXRvckNvbmZpZyA9IHtcclxuICAgICAgICAgICAgLi4udGhpcy5uZXN0ZWRUYWJsZVBhZ2luYXRvckNvbmZpZyxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICB0aGlzLm1lZXRpbmdzID1cclxuICAgICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UubWFwTWVldGluZ3NJbmZvVG9EYXRhVGFibGUoXHJcbiAgICAgICAgICAgICAgcmVzcG9uc2U/LmJvZHk/Lm1lZXRpbmdzXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLm5lc3RlZFRhYmxlUGFnaW5hdG9yQ29uZmlnLnRvdGFsUmVjb3JkcyA9XHJcbiAgICAgICAgICAgIHJlc3BvbnNlPy5ib2R5Py50b3RhbFJlY29yZHMgPz8gdGhpcy5tZWV0aW5ncz8ubGVuZ3RoO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZXMgdGhlIHRhYmxlIGNvbHVtbiBzY2hlbWEgYW5kIGdldHMgbWVldGluZ3Mgb2YgdGhlIHNlbGVjdGVkIGV2ZW50IHVzaW5nIGV2ZW50IGlkIGZyb20gc2VydmVyIHRvIGRpc3BsYXkgdGhlIG1lZXRpbmdzIGluIHRoZSBuZXN0ZWQgdGFidWxhciB2aWV3LlxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVPck1vZGlmeUV2ZW50Q29tcG9uZW50XHJcbiAgICogQHBhcmFtIHtFdmVudHNBbmRNZWV0aW5nc30gZXZlbnREZXRhaWxcclxuICAgKi9cclxuICBnZXRFdmVudE1lZXRpbmdzT25Sb3dFeHBhbmQoZXZlbnREZXRhaWw6IEV2ZW50c0FuZE1lZXRpbmdzKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXRpYWxpemVOZXN0ZWRUYWJsZUNvbHVtblNjaGVtYSgpO1xyXG4gICAgdGhpcy5nZXRNZWV0aW5nc0J5RXZlbnRJZCh7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBldmVudElkOiBldmVudERldGFpbD8uaWQsXHJcbiAgICAgICAgc29ydENvbHVtbjogdGhpcy5uZXN0ZWRUYWJsZURlZmF1bHRTb3J0ZWRDb2x1bW4sXHJcbiAgICAgICAgYXNjZW5kaW5nT3JkZXI6IHRoaXMuZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb24sXHJcbiAgICAgICAgcGFnZTogMSxcclxuICAgICAgICBzaXplOiB0aGlzLm5lc3RlZFRhYmxlUGFnaW5hdG9yQ29uZmlnPy5yZWNvcmRzUGVyUGFnZSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZXMgdGFibGUgY29sdW1uIHNjaGVtYSB0byBkaXNwbGF5IHRoZSBtZWV0aW5ncyB1bmRlciBhbiBldmVudCBpbiB0YWJ1bGFyIHZpZXdcclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBpbml0aWFsaXplTmVzdGVkVGFibGVDb2x1bW5TY2hlbWEoKTogdm9pZCB7XHJcbiAgICB0aGlzLm5lc3RlZFRhYmxlQ29sdW1uU2NoZW1hID0gW1xyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDEsXHJcbiAgICAgICAgY29sdW1uRGVmOiBDT0xVTU5fREVGPy5uYW1lLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMuY29sdW1uSGVhZGluZz8ubmFtZSxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuTElOSyxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PiBgJHtlbGVtZW50Lm1lZXRpbmdUaXRsZX1gLFxyXG4gICAgICAgIGlzQ29udGVudFVuZGVyTGluazogdHJ1ZSxcclxuICAgICAgICBpc1NvcnRhYmxlQ29sdW1uOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDIsXHJcbiAgICAgICAgY29sdW1uRGVmOiBDT0xVTU5fREVGPy5zdGFydERhdGVUaW1lLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMuY29sdW1uSGVhZGluZz8uc3RhcnREYXRlVGltZSxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PlxyXG4gICAgICAgICAgYCR7bW9tZW50KGVsZW1lbnQubWVldGluZ1N0RGF0ZSkuZm9ybWF0KFxyXG4gICAgICAgICAgICBEYXRlRm9ybWF0cy5kaXNwbGF5Rm9ybWF0XHJcbiAgICAgICAgICApfTxicj4ke21vbWVudChlbGVtZW50Lm1lZXRpbmdTdERhdGUpLmZvcm1hdChcclxuICAgICAgICAgICAgRGF0ZUZvcm1hdHMudGltZUZvcm1hdFxyXG4gICAgICAgICAgKX1gLFxyXG4gICAgICAgIGlzSFRNTENlbGxEYXRhOiB0cnVlLFxyXG4gICAgICAgIGlzU29ydGFibGVDb2x1bW46IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogMyxcclxuICAgICAgICBjb2x1bW5EZWY6IENPTFVNTl9ERUY/LmVuZERhdGVUaW1lLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMuY29sdW1uSGVhZGluZz8uZW5kRGF0ZVRpbWUsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT5cclxuICAgICAgICAgIGAke21vbWVudChlbGVtZW50Lm1lZXRpbmdFZERhdGUpLmZvcm1hdChcclxuICAgICAgICAgICAgRGF0ZUZvcm1hdHMuZGlzcGxheUZvcm1hdFxyXG4gICAgICAgICAgKX08YnI+JHttb21lbnQoZWxlbWVudC5tZWV0aW5nRWREYXRlKS5mb3JtYXQoXHJcbiAgICAgICAgICAgIERhdGVGb3JtYXRzLnRpbWVGb3JtYXRcclxuICAgICAgICAgICl9YCxcclxuICAgICAgICBpc0hUTUxDZWxsRGF0YTogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiA0LFxyXG4gICAgICAgIGNvbHVtbkRlZjogQ09MVU1OX0RFRj8udGltZVpvbmUsXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy5jb2x1bW5IZWFkaW5nPy50aW1lWm9uZSxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PlxyXG4gICAgICAgICAgYCR7ZWxlbWVudC50aW1lWm9uZSA/PyB0aGlzLmVtcHR5RmllbGRWYWx1ZVJlcGxhY2VkQnl9YCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiA1LFxyXG4gICAgICAgIGNvbHVtbkRlZjogQ09MVU1OX0RFRj8uZ3JvdXAsXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy5jb2x1bW5IZWFkaW5nPy5ncm91cCxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PlxyXG4gICAgICAgICAgYCR7ZWxlbWVudC5ncm91cE5hbWUgPz8gdGhpcy5lbXB0eUZpZWxkVmFsdWVSZXBsYWNlZEJ5fWAsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogNixcclxuICAgICAgICBjb2x1bW5EZWY6IENPTFVNTl9ERUY/LmxvY2F0aW9uLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMuY29sdW1uSGVhZGluZz8ubG9jYXRpb24sXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT5cclxuICAgICAgICAgIGAke2VsZW1lbnQubWVldGluZ0xvY2F0aW9uID8/IHRoaXMuZW1wdHlGaWVsZFZhbHVlUmVwbGFjZWRCeX1gLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDcsXHJcbiAgICAgICAgY29sdW1uRGVmOiBUYWJsZUNvbHVtblR5cGUuQUNUSU9OUyxcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLmNvbHVtbkhlYWRpbmc/LmFjdGlvbnMsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLkFDVElPTlMsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT4gYCR7ZWxlbWVudC5hY3Rpb259YCxcclxuICAgICAgfSxcclxuICAgIF07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBldmVudHMgb3IgbWVldGluZ3MgYmFzZWQgb24gdGhlIGNvbHVtbiBuYW1lIGFuZCBzb3J0IGRpcmVjdGlvbi5cclxuICAgKiBAcGFyYW0ge1NvcnR9IHNvcnRcclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuXHJcbiAgb25Tb3J0TWVldGluZ09yRXZlbnQoc29ydDogU29ydCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZWZhdWx0U29ydGVkQ29sdW1uID1cclxuICAgICAgc29ydC5hY3RpdmUgPT09ICdzdGFydC1kYXRlLXRpbWUnID8gJ3N0YXJ0RGF0ZVRpbWUnIDogc29ydC5hY3RpdmU7XHJcbiAgICB0aGlzLm5lc3RlZFRhYmxlRGVmYXVsdFNvcnRlZENvbHVtbiA9IHNvcnQuYWN0aXZlO1xyXG4gICAgdGhpcy5uZXN0ZWRUYWJsZURlZmF1bHRTb3J0ZWRDb2x1bW4gPVxyXG4gICAgICBzb3J0LmFjdGl2ZSA9PT0gQ09MVU1OX0RFRi5uYW1lID8gJ21lZXRpbmdUaXRsZScgOiAnbWVldGluZ1N0RGF0ZSc7XHJcbiAgICB0aGlzLmRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uID1cclxuICAgICAgc29ydC5kaXJlY3Rpb24gPT09IFRhYmxlQ29sdW1uU29ydERpcmVjdGlvbi5BU0NFTkRJTkc7XHJcbiAgICB0aGlzLmdldEV2ZW50c0FuZE1lZXRpbmdzKHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIGV2ZW50SWQ6IG51bGwsXHJcbiAgICAgICAgc29ydENvbHVtbjogdGhpcy5kZWZhdWx0U29ydGVkQ29sdW1uLFxyXG4gICAgICAgIGFzY2VuZGluZ09yZGVyOiB0aGlzLmRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uLFxyXG4gICAgICAgIHBhZ2U6IDEsXHJcbiAgICAgICAgc2l6ZTogdGhpcy5wYWdpbmF0b3JDb25maWc/LnJlY29yZHNQZXJQYWdlLFxyXG4gICAgICAgIHNlYXJjaFRlcm06IHRoaXMudHJpbW1lZFNlYXJjaFRlcm0gPz8gbnVsbCxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyBpc1NlYXJjaEFjdGl2ZSB0byB0cnVlIGFuZCBsb2FkcyB0aGUgZXZlbnRzIG9yIG1lZXRpbmdzIC5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VhcmNoVGVybVxyXG4gICAqIEBtZW1iZXJvZiBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRXZlbnRzT3JNZWV0aW5nc1NlYXJjaENsaWNrKHNlYXJjaFRlcm06IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHNlYXJjaFRlcm0pIHtcclxuICAgICAgdGhpcy50cmltbWVkU2VhcmNoVGVybSA9IHNlYXJjaFRlcm0udHJpbSgpO1xyXG4gICAgICB0aGlzLmlzU2VhcmNoQWN0aXZlID0gdHJ1ZTtcclxuICAgICAgaWYgKCF0aGlzLnRyaW1tZWRTZWFyY2hUZXJtKSByZXR1cm47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlYXJjaFJlc3VsdE1lc3NhZ2UgPSAnJztcclxuICAgICAgdGhpcy50cmltbWVkU2VhcmNoVGVybSA9ICcnO1xyXG4gICAgICB0aGlzLmlzU2VhcmNoQWN0aXZlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldEV2ZW50c0FuZE1lZXRpbmdzKHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIGV2ZW50SWQ6IG51bGwsXHJcbiAgICAgICAgc29ydENvbHVtbjogdGhpcy5kZWZhdWx0U29ydGVkQ29sdW1uLFxyXG4gICAgICAgIGFzY2VuZGluZ09yZGVyOiBmYWxzZSxcclxuICAgICAgICBwYWdlOiAxLFxyXG4gICAgICAgIHNpemU6IHRoaXMucGFnaW5hdG9yQ29uZmlnPy5yZWNvcmRzUGVyUGFnZSxcclxuICAgICAgICBzZWFyY2hUZXJtOiBzZWFyY2hUZXJtID8gdGhpcy50cmltbWVkU2VhcmNoVGVybSA6IG51bGwsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogTmdPbkRlc3Ryb3kgcGVyZm9ybXMgbmVjZXNzYXJ5IGNsZWFudXAgdGFza3MsIHN1Y2ggYXMgdW5zdWJzY3JpYmluZyBmcm9tIHN1YnNjcmlwdGlvbiB3aGVuIHRoZSBjb21wb25lbnQgaXMgYmVpbmcgZGVzdHJveWVkLlxyXG4gICAqIEBtZW1iZXJvZiBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJpZWVlc2EtZXZlbnRzLWFuZC1tZWV0aW5nXCJcclxuICBbbmdDbGFzc109XCJpc01vYmlsZVZpZXcgPyAnaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZy0tbW9iaWxlLXZpZXcgcC0wJyA6ICcnXCJcclxuPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZ19faGVhZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBwYi0zXCJcclxuICAgIFtuZ0NsYXNzXT1cIlxyXG4gICAgICBpc01vYmlsZVZpZXcgPyAnaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZ19faGVhZGVyLS1tb2JpbGUtdmlldycgOiAnJ1xyXG4gICAgXCJcclxuICA+XHJcbiAgICA8cFxyXG4gICAgICBbbmdDbGFzc109XCJpc01vYmlsZVZpZXcgPyAnaWVlZXNhLXRpdGxlLWxnLTI0JyA6ICdpZWVlc2EtaGVhZGxpbmUtbGctMzQnXCJcclxuICAgID5cclxuICAgICAge3sgc2NyZWVuVGV4dHM/LnRpdGxlIH19XHJcbiAgICA8L3A+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLXN0YXJ0IGdhcC1sZy0zIGdhcC1tZC0zIGdhcC1zbS0zIGdhcC0zIGNvbC1tZC01IGNvbC1sZy00IGp1c3RpZnktY29udGVudC1lbmQgcHMtMFwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNNb2JpbGVWaWV3XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlYXJjaEZpZWxkXCI+IDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwiaXNDcmVhdGVFdmVudEFuZE1lZXRpbmdBbGxvd2VkXCJcclxuICAgICAgICBjbGFzcz1cImllZWVzYS1ldmVudHMtYW5kLW1lZXRpbmdfX2hlYWRlcl9fY3JlYXRlLWJ1dHRvbiBkLW5vbmUgZC1zbS1ub25lIGQtbWQtYmxvY2sgZC1sZy1ibG9jayBkLXhsLWJsb2NrIGNvbC1sZy0zIHBiLTBcIlxyXG4gICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvQ3JlYXRlRXZlbnRNZWV0aW5nRm9ybSgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzdmdcclxuICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZ19faGVhZGVyX19jcmVhdGUtYnV0dG9uX19pY29uIG1lLTJcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDx1c2UgW2F0dHIueGxpbms6aHJlZl09XCJjcmVhdGVCdXR0b24/Lmljb25VUkxcIj48L3VzZT5cclxuICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImllZWVzYS1ldmVudHMtYW5kLW1lZXRpbmdfX2hlYWRlcl9fY3JlYXRlLWJ1dHRvbl9fbGFiZWxcIj57e1xyXG4gICAgICAgICAgY3JlYXRlQnV0dG9uPy5sYWJlbFxyXG4gICAgICAgIH19PC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImQtZmxleCBkLXNtLWZsZXggZC1tZC1ub25lIGQtbGctbm9uZSBkLXhsLW5vbmUgaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZ19faGVhZGVyX19tb2JpbGUtaWNvbnMgZ2FwLTJcIlxyXG4gICAgPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic2NyZWVuVGV4dHM/LnNlYXJjaFBsYWNlaG9sZGVyVGV4dFwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uRXZlbnRNZWV0aW5nU2VhcmNoKClcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1tYWduaWZ5aW5nLWdsYXNzIHNlYXJjaC1ldmVudHMtbWVldGluZ3MtaWNvblwiPjwvaT5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxpZWVlc2EtaWNvbi1idXR0b25cclxuICAgICAgICAqbmdJZj1cImlzQ3JlYXRlRXZlbnRBbmRNZWV0aW5nQWxsb3dlZFwiXHJcbiAgICAgICAgW2ljb25CdXR0b25dPVwiY3JlYXRlQnV0dG9uXCJcclxuICAgICAgICAoaWNvbkJ1dHRvbkNsaWNrKT1cIm5hdmlnYXRlVG9DcmVhdGVFdmVudE1lZXRpbmdGb3JtKClcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvaWVlZXNhLWljb24tYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPG5nLXRlbXBsYXRlICNzZWFyY2hGaWVsZD5cclxuICAgIDxpZWVlc2Etc2VhcmNoXHJcbiAgICAgIFtwbGFjZWhvbGRlckxhYmVsXT1cInNjcmVlblRleHRzPy5zZWFyY2hQbGFjZWhvbGRlclRleHRcIlxyXG4gICAgICBbc2VhcmNoVHlwZV09XCJzZWFyY2hUeXBlXCJcclxuICAgICAgKHNlYXJjaFZhbHVlKT1cIm9uRXZlbnRzT3JNZWV0aW5nc1NlYXJjaENsaWNrKCRldmVudClcIlxyXG4gICAgICBbc2VhcmNoVGVybV09XCJ0cmltbWVkU2VhcmNoVGVybVwiXHJcbiAgICAgIFttaW5DaGFyYWN0ZXJUb1NlYXJjaF09XCJtaW5DaGFyYWN0ZXJUb1NlYXJjaFwiXHJcbiAgICAgIFtzdXBwb3J0TWVzc2FnZV09XCJzdXBwb3J0TWVzc2FnZVwiXHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZ19fc2VhcmNoLXdyYXBwZXJcIlxyXG4gICAgPjwvaWVlZXNhLXNlYXJjaD5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZ19fZmlsdGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBwYi0zXCJcclxuICAgIFtuZ0NsYXNzXT1cIlxyXG4gICAgICBpc01vYmlsZVZpZXcgPyAnaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZ19fZmlsdGVyLS1tb2JpbGUtdmlldycgOiAnJ1xyXG4gICAgXCJcclxuICA+XHJcbiAgICA8aWVlZXNhLWZpbHRlciBbZmlsdGVyc109XCJmaWx0ZXJzXCI+PC9pZWVlc2EtZmlsdGVyPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZ19fdmlld1wiXHJcbiAgICBbbmdDbGFzc109XCJcclxuICAgICAgaXNNb2JpbGVWaWV3ID8gJ2llZWVzYS1ldmVudHMtYW5kLW1lZXRpbmdfX3ZpZXctLW1vYmlsZS12aWV3IHAtMCcgOiAnJ1xyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZ19fdGFiLWFjdGlvbiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCJcclxuICAgICAgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgaXNNb2JpbGVWaWV3XHJcbiAgICAgICAgICA/ICdpZWVlc2EtZXZlbnRzLWFuZC1tZWV0aW5nX190YWItYWN0aW9uLS1tb2JpbGUtdmlldyBwYi0zJ1xyXG4gICAgICAgICAgOiAnJ1xyXG4gICAgICBcIlxyXG4gICAgPlxyXG4gICAgICA8aWVlZXNhLXRvZ2dsZS1idXR0b25cclxuICAgICAgICBbc2VsZWN0ZWRMYWJlbF09XCJsaXN0T3JDYWxlbmRhclZpZXdzWzBdPy5sYWJlbCA/PyAnJ1wiXHJcbiAgICAgICAgW2J1dHRvbnNdPVwibGlzdE9yQ2FsZW5kYXJWaWV3c1wiXHJcbiAgICAgICAgKHRvZ2dsZVNlbGVjdGVkKT1cIm9uVG9nZ2xlQnV0dG9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICA+PC9pZWVlc2EtdG9nZ2xlLWJ1dHRvbj5cclxuICAgICAgPGllZWVzYS1pY29uLWJ1dHRvblxyXG4gICAgICAgIFtpY29uQnV0dG9uXT1cImRlbGV0ZUJ1dHRvblwiXHJcbiAgICAgICAgKm5nSWY9XCJpc0RlbGV0ZUV2ZW50QW5kTWVldGluZ0FsbG93ZWRcIlxyXG4gICAgICAgIChpY29uQnV0dG9uQ2xpY2spPVwib3BlbkRlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsKClcIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZ19fZGVsZXRlLWJ1dHRvblwiXHJcbiAgICAgID48L2llZWVzYS1pY29uLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPHBcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtZXZlbnRzLWFuZC1tZWV0aW5nX190YWItYWN0aW9uIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIlxyXG4gICAgICAqbmdJZj1cInRyaW1tZWRTZWFyY2hUZXJtXCJcclxuICAgICAgW2lubmVySFRNTF09XCJzZWFyY2hSZXN1bHRNZXNzYWdlIHwgc2FmZSA6IHNhZmVUeXBlXCJcclxuICAgID48L3A+XHJcbiAgICA8aWVlZXNhLWRhdGEtdGFibGVcclxuICAgICAgKm5nSWY9XCJzZWxlY3RlZFZpZXdUeXBlID09PSBldmVudEFuZE1lZXRpbmdWaWV3VHlwZS5MSVNUX1ZJRVdcIlxyXG4gICAgICBbdGFibGVEYXRhSW5mb109XCJldmVudHNBbmRNZWV0aW5nc0xpc3RcIlxyXG4gICAgICBbbmVzdGVkVGFibGVEYXRhSW5mb109XCJtZWV0aW5nc1wiXHJcbiAgICAgIFtjb2x1bW5TY2hlbWFJbmZvXT1cImNvbHVtblNjaGVtYVwiXHJcbiAgICAgIFtuZXN0ZWRUYWJsZUNvbHVtblNjaGVtYUluZm9dPVwibmVzdGVkVGFibGVDb2x1bW5TY2hlbWFcIlxyXG4gICAgICBbcGFnaW5hdG9yQ29uZmlnXT1cInBhZ2luYXRvckNvbmZpZ1wiXHJcbiAgICAgIFtuZXN0ZWRQYWdpbmF0b3JDb25maWddPVwibmVzdGVkVGFibGVQYWdpbmF0b3JDb25maWdcIlxyXG4gICAgICBbdmlld0FsbF09XCJ2aWV3QWxsTWVldGluZ3NUZXh0XCJcclxuICAgICAgW3RhYmxlQWN0aW9uc109XCJldmVudHNBbmRNZWV0aW5nc0FjdGlvbnNcIlxyXG4gICAgICBbbmVzdGVkVGFibGVSb3dBY3Rpb25zXT1cInNjcmVlblRleHRzPy5tZWV0aW5nQWN0aW9uc1wiXHJcbiAgICAgIFtjbGFzc05hbWVdPVwiJ2llZWVzYS12aWV3LWV2ZW50cy1hbmQtbWVldGluZ3MnXCJcclxuICAgICAgW2xlZ2VuZHNdPVwiZXZlbnRBbmRNZWV0aW5nTGVnZW5kc1wiXHJcbiAgICAgIChjb2x1bW5EYXRhT25Sb3dMaW5rQ2xpY2spPVwibmF2aWdhdGVUb1ZpZXdEZXRhaWxzUGFnZSgkZXZlbnQpXCJcclxuICAgICAgKG1lbnVBY3Rpb25DbGljayk9XCJlZGl0RXZlbnRNZWV0aW5nKCRldmVudClcIlxyXG4gICAgICAocm93RXhwYW5zaW9uQ2xpY2spPVwiZ2V0RXZlbnRNZWV0aW5nc09uUm93RXhwYW5kKCRldmVudClcIlxyXG4gICAgICAoc2VsZWN0QWN0aW9uTWVudSk9XCJoYW5kbGVFZGl0QWN0aW9ucygkZXZlbnQpXCJcclxuICAgICAgKHBhZ2luYXRpb25DaGFuZ2UpPVwib25FdmVudHNBbmRNZWV0aW5nc1RhYmxlUGFnZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgKHNvcnRDaGFuZ2UpPVwib25Tb3J0TWVldGluZ09yRXZlbnQoJGV2ZW50KVwiXHJcbiAgICAgIChzZWxlY3RlZFJvd3NJbmZvKT1cImdldFNlbGVjdGVkTWVldGluZ3NBbmRFdmVudHNUb0RlbGV0ZSgkZXZlbnQpXCJcclxuICAgID48L2llZWVzYS1kYXRhLXRhYmxlPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -4150,6 +4150,8 @@ class EventsAndMeetingsComponent {
|
|
|
4150
4150
|
* @memberof EventsAndMeetingsComponent
|
|
4151
4151
|
*/
|
|
4152
4152
|
ngOnInit() {
|
|
4153
|
+
console.log("UserPermissions", this.userPermissions);
|
|
4154
|
+
console.log("APIBaseURL", this.apiBaseURL);
|
|
4153
4155
|
if (this.deleteButton)
|
|
4154
4156
|
this.deleteButton.disabled = true;
|
|
4155
4157
|
this.supportMessage =
|