ngx-st-sap-installed-instruments 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/base-interfaces.mjs +1 -1
- package/esm2020/lib/components/sap-installed-instrument-details/activity-details-view/activity-details-view.component.mjs +5 -3
- package/esm2020/lib/components/sap-installed-instrument-list/sap-installed-instrument-list-search/sap-installed-instrument-list-search.component.mjs +3 -3
- package/esm2020/lib/services/sap-installed-instruments.service.mjs +17 -10
- package/fesm2015/ngx-st-sap-installed-instruments.mjs +22 -13
- package/fesm2015/ngx-st-sap-installed-instruments.mjs.map +1 -1
- package/fesm2020/ngx-st-sap-installed-instruments.mjs +22 -13
- package/fesm2020/ngx-st-sap-installed-instruments.mjs.map +1 -1
- package/lib/base-interfaces.d.ts +1 -0
- package/package.json +4 -3
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1pbnRlcmZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXNhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudHMvc3JjL2xpYi9iYXNlLWludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSUNvbmZpZyB7XHJcbiAgYXBpX2Jhc2VfdXJpOiBzdHJpbmc7XHJcbiAgYmFzZV91cmk6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRGlyZWN0aXZlTW9kdWxlQ29uZmlnIHtcclxuICBlcnJvckludGVyY2VwdG9yPzogYW55O1xyXG4gIGFwaUludGVyY2VwdG9yPzogYW55O1xyXG4gIGNvbmZpZz86IElDb25maWc7XHJcbn1cclxuIl19
|
|
@@ -13,7 +13,8 @@ export class ActivityDetailsViewComponent {
|
|
|
13
13
|
ngOnInit() {
|
|
14
14
|
this.baseDownloadLink =
|
|
15
15
|
this.config.api_base_uri +
|
|
16
|
-
|
|
16
|
+
this.config.base_uri +
|
|
17
|
+
'/installedInstrument/activity-attachment?access_token=' +
|
|
17
18
|
this.accessToken;
|
|
18
19
|
}
|
|
19
20
|
updateLink() {
|
|
@@ -22,7 +23,8 @@ export class ActivityDetailsViewComponent {
|
|
|
22
23
|
: '';
|
|
23
24
|
this.baseDownloadLink =
|
|
24
25
|
this.config.api_base_uri +
|
|
25
|
-
|
|
26
|
+
this.config.base_uri +
|
|
27
|
+
'/installedInstrument/activity-attachment?access_token=' +
|
|
26
28
|
this.accessToken +
|
|
27
29
|
company;
|
|
28
30
|
}
|
|
@@ -40,4 +42,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
40
42
|
}], accessToken: [{
|
|
41
43
|
type: Input
|
|
42
44
|
}] } });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktZGV0YWlscy12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdC1zYXAtaW5zdGFsbGVkLWluc3RydW1lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtZGV0YWlscy9hY3Rpdml0eS1kZXRhaWxzLXZpZXcvYWN0aXZpdHktZGV0YWlscy12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdC1zYXAtaW5zdGFsbGVkLWluc3RydW1lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtZGV0YWlscy9hY3Rpdml0eS1kZXRhaWxzLXZpZXcvYWN0aXZpdHktZGV0YWlscy12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVNqRSxNQUFNLE9BQU8sNEJBQTRCO0lBU3ZDLFlBQXNDLE1BQWU7UUFBZixXQUFNLEdBQU4sTUFBTSxDQUFTO1FBRnJELHFCQUFnQixHQUFHLEVBQUUsQ0FBQztJQUVrQyxDQUFDO0lBRXpELFFBQVE7UUFDTixJQUFJLENBQUMsZ0JBQWdCO1lBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWTtnQkFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRO2dCQUNwQix3REFBd0Q7Z0JBQ3hELElBQUksQ0FBQyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVELFVBQVU7UUFDUixNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztZQUNoRCxDQUFDLENBQUMsZUFBZSxZQUFZLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3JELENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDUCxJQUFJLENBQUMsZ0JBQWdCO1lBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWTtnQkFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRO2dCQUNwQix3REFBd0Q7Z0JBQ3hELElBQUksQ0FBQyxXQUFXO2dCQUNoQixPQUFPLENBQUM7SUFDWixDQUFDOzt5SEE3QlUsNEJBQTRCLGtCQVNuQixRQUFROzZHQVRqQiw0QkFBNEIsK0hDVHpDLDh3SEF3RkE7MkZEL0VhLDRCQUE0QjtrQkFMeEMsU0FBUzsrQkFDRSwyQkFBMkI7OzBCQWF4QixNQUFNOzJCQUFDLFFBQVE7NENBUDVCLFFBQVE7c0JBRFAsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTYXBBY3Rpdml0eU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3NhcC1hY3Rpdml0eS5tb2RlbCc7XHJcbmltcG9ydCB7IElDb25maWcgfSBmcm9tICcuLi8uLi8uLi9iYXNlLWludGVyZmFjZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYWN0aXZpdHktZGV0YWlscy12aWV3JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aXZpdHktZGV0YWlscy12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hY3Rpdml0eS1kZXRhaWxzLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFjdGl2aXR5RGV0YWlsc1ZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpXHJcbiAgYWN0aXZpdHk6IFNhcEFjdGl2aXR5TW9kZWw7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYWNjZXNzVG9rZW46IHN0cmluZztcclxuXHJcbiAgYmFzZURvd25sb2FkTGluayA9ICcnO1xyXG5cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KCdjb25maWcnKSBwcml2YXRlIGNvbmZpZzogSUNvbmZpZykge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmJhc2VEb3dubG9hZExpbmsgPVxyXG4gICAgICB0aGlzLmNvbmZpZy5hcGlfYmFzZV91cmkgK1xyXG4gICAgICB0aGlzLmNvbmZpZy5iYXNlX3VyaSArXHJcbiAgICAgICcvaW5zdGFsbGVkSW5zdHJ1bWVudC9hY3Rpdml0eS1hdHRhY2htZW50P2FjY2Vzc190b2tlbj0nICtcclxuICAgICAgdGhpcy5hY2Nlc3NUb2tlbjtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUxpbmsoKSB7XHJcbiAgICBjb25zdCBjb21wYW55ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2NvbXBhbnktaWQnKVxyXG4gICAgICA/IGAmY29tcGFueS1pZD0ke2xvY2FsU3RvcmFnZS5nZXRJdGVtKCdjb21wYW55LWlkJyl9YFxyXG4gICAgICA6ICcnO1xyXG4gICAgdGhpcy5iYXNlRG93bmxvYWRMaW5rID1cclxuICAgICAgdGhpcy5jb25maWcuYXBpX2Jhc2VfdXJpICtcclxuICAgICAgdGhpcy5jb25maWcuYmFzZV91cmkgK1xyXG4gICAgICAnL2luc3RhbGxlZEluc3RydW1lbnQvYWN0aXZpdHktYXR0YWNobWVudD9hY2Nlc3NfdG9rZW49JyArXHJcbiAgICAgIHRoaXMuYWNjZXNzVG9rZW4gK1xyXG4gICAgICBjb21wYW55O1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZ3JvdXAtZGV0YWlscyByb3dcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDIwcHg7XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0zXCI+XHJcbiAgICAgICAgPHNwYW4+e3snc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50LmFjdGl2aXR5JyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgIDxwPnt7YWN0aXZpdHkuYWN0aXZpdHkgfHwgJy0nfX08L3A+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTNcIj5cclxuICAgICAgICA8c3Bhbj57eydnbG9iYWwudHlwZScgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICA8cD57e2FjdGl2aXR5LnR5cGUgfHwgJy0nfX08L3A+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTNcIj5cclxuICAgICAgICA8c3Bhbj57eydzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuc3ViamVjdCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICA8cD57e2FjdGl2aXR5LnN1YmplY3QgfHwgJy0nfX08L3A+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTNcIj5cclxuICAgICAgICA8c3Bhbj57eydnbG9iYWwucmVtYXJrcycgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICA8cD57e2FjdGl2aXR5LnJlbWFya3MgfHwgJy0nfX08L3A+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwiZ3JvdXAtZGV0YWlscyByb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTNcIj5cclxuICAgICAgICA8c3Bhbj57eydzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuc3RhcnRUaW1lJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgIDxwPnt7KGFjdGl2aXR5LnN0YXJ0VGltZSB8IHN0RGF0ZVRpbWVGb3JtYXRQaXBlKSB8fCAnLSd9fTwvcD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tM1wiPlxyXG4gICAgICAgIDxzcGFuPnt7J3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5lbmRUaW1lJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgIDxwPnt7KGFjdGl2aXR5LmVuZFRpbWUgfCBzdERhdGVUaW1lRm9ybWF0UGlwZSkgfHwgJy0nfX08L3A+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTNcIj5cclxuICAgICAgICA8c3Bhbj57eydzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuZHVyYXRpb24nIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgPHA+e3thY3Rpdml0eS5kdXJhdGlvbiB8fCAnLSd9fTwvcD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tM1wiPlxyXG4gICAgICAgIDxzcGFuPnt7J3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5jb250ZW50JyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgIDxwPnt7YWN0aXZpdHkuY29udGVudCB8fCAnLSd9fTwvcD5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxoci8+XHJcblxyXG48ZGl2IGNsYXNzPVwiZ3JvdXAtZGV0YWlscyByb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTNcIj5cclxuICAgICAgICA8c3Bhbj57eydzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuY29vcmRpbmF0b3InIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgPHA+e3thY3Rpdml0eS5jb29yZGluYXRvck5hbWUgfHwgJy0nfX08L3A+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTNcIj5cclxuICAgICAgICA8c3Bhbj57eydzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQub3JkZXJOdW1iZXInIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgPHA+e3thY3Rpdml0eS5vcmRlck51bWJlciB8fCAnLSd9fTwvcD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tM1wiPlxyXG4gICAgICAgIDxzcGFuPnt7J3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5kZXRhaWxlZFN5bXB0b20nIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgPHA+e3thY3Rpdml0eS5kZXRhaWxlZFN5bXB0b20gfHwgJy0nfX08L3A+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTNcIj5cclxuICAgICAgICA8c3Bhbj57eydzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuc29sdXRpb24nIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgPHA+e3thY3Rpdml0eS5zb2x1dGlvbiB8fCAnLSd9fTwvcD5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJncm91cC1kZXRhaWxzIHJvd1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tMTJcIj5cclxuICAgICAgICA8c3Bhbj57eydzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuaW5jb21wbGV0ZVJlYXNvbicgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICA8cD57e2FjdGl2aXR5LmluY29tcGxldGVSZWFzb24gfHwgJy0nfX08L3A+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwiZ3JvdXAtZGV0YWlscyByb3dcIiAqbmdJZj1cImFjdGl2aXR5LmF0dGFjaG1lbnRMaXN0Lmxlbmd0aCA+IDBcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTEyXCI+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJhdHRhY2htZW50cy10aXRsZVwiPnt7J2dsb2JhbC5hdHRhY2htZW50cycgfCB0cmFuc2xhdGV9fTo8L3A+XHJcbiAgICAgICAgPHVsIGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxsaSBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIiAqbmdGb3I9XCJsZXQgYXR0YWNobWVudCBvZiBhY3Rpdml0eS5hdHRhY2htZW50TGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgPHA+e3thdHRhY2htZW50LmZpbGVOYW1lfX0ue3thdHRhY2htZW50LmZpbGVFeHR9fTwvcD5cclxuXHJcbiAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJiYXNlRG93bmxvYWRMaW5rICsgJyZpZD0nICsgYXR0YWNobWVudC5pZCArICcmbGluZT0nICsgYXR0YWNobWVudC5saW5lICsgJyZwcmV2aWV3PXRydWUnXCIgdGFyZ2V0PVwiX2JsYW5rXCIgKGNsaWNrKT1cInVwZGF0ZUxpbmsoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPnByZXZpZXc8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG5cclxuICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cImJhc2VEb3dubG9hZExpbmsgKyAnJmlkPScgKyBhdHRhY2htZW50LmlkICsgJyZsaW5lPScgKyBhdHRhY2htZW50LmxpbmUgKyAnJnByZXZpZXc9ZmFsc2UnXCIgdGFyZ2V0PVwiX2JsYW5rXCIgKGNsaWNrKT1cInVwZGF0ZUxpbmsoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPmNsb3VkX2Rvd25sb2FkPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICA8L3VsPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -121,14 +121,14 @@ export class SapInstalledInstrumentListSearchComponent {
|
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
123
|
SapInstalledInstrumentListSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SapInstalledInstrumentListSearchComponent, deps: [{ token: i1.SapInstalledInstrumentsService }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.NonNullableFormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
124
|
-
SapInstalledInstrumentListSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SapInstalledInstrumentListSearchComponent, selector: "app-sap-installed-instrument-list-search", outputs: { filtersChanged: "filtersChanged" }, viewQueries: [{ propertyName: "multiselectAutocomplete", first: true, predicate: ["multiselectAutocomplete"], descendants: true }], ngImport: i0, template: "<form\r\n class=\"search-filters\"\r\n [formGroup]=\"searchForm\"\r\n (ngSubmit)=\"searchSubmitted()\"\r\n>\r\n <div class=\"row align-items-center\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <ngx-st-multiselect-autocomplete\r\n #multiselectAutocomplete\r\n [label]=\"\r\n ('sapAdminInstalledInstrument.application' | translate) +\r\n ' (' +\r\n ('global.max' | translate) +\r\n ': 10)'\r\n \"\r\n [placeholder]=\"\r\n 'sapAdminInstalledInstrument.applicationPlaceholder' | translate\r\n \"\r\n [getFilteredOptions]=\"this.getFilteredOptions\"\r\n [initSelectedData]=\"searchForm.controls.application.value\"\r\n [maxLengthSelectedData]=\"10\"\r\n (selectedDataChanged)=\"applicationSelected($event)\"\r\n ></ngx-st-multiselect-autocomplete>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"bpName\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.accountName' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.bpName.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('bpName')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"technicianLastName\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.technicianLastName' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.technicianLastName.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('technicianLastName')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"serialNumber\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.serialNumber' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.serialNumber.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('serialNumber')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"instrumentNo\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.instrumentNo' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.instrumentNo.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('instrumentNo')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"instrumentDesc\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.instrumentDescription' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.instrumentDesc.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('instrumentDesc')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <mat-label>{{\r\n 'sapAdminInstalledInstrument.instrumentStatus' | translate\r\n }}</mat-label>\r\n <mat-select formControlName=\"status\">\r\n <mat-option [value]=\"''\">{{ 'global.empty' | translate }}</mat-option>\r\n <mat-option [value]=\"'A'\">{{\r\n 'sapAdminInstalledInstrument.statusA' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'R'\">{{\r\n 'sapAdminInstalledInstrument.statusR' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'T'\">{{\r\n 'sapAdminInstalledInstrument.statusT' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'L'\">{{\r\n 'sapAdminInstalledInstrument.statusL' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'I'\">{{\r\n 'sapAdminInstalledInstrument.statusI' | translate\r\n }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"customerNo\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.accountNo' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.customerNo.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('customerNo')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center row\">\r\n <ngx-st-search-select\r\n *ngIf=\"\r\n searchForm?.get('territory') &&\r\n ((territories$ | async) || []) as territories\r\n \"\r\n [options]=\"territories || []\"\r\n [selectLabel]=\"'global.territory' | translate\"\r\n [optionLabelPropertyName]=\"'name'\"\r\n [selectFormControl]=\"searchForm.controls.territory\"\r\n [selectBindType]=\"'control'\"\r\n [searchLabel]=\"'global.search' | translate\"\r\n [valueMethod]=\"getTerritoryValue\"\r\n ></ngx-st-search-select>\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'global.refresh' | translate\"\r\n (click)=\"refreshTerritories()\"\r\n type=\"button\"\r\n >\r\n <i class=\"material-icons\">refresh</i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"city\"\r\n placeholder=\"{{ 'global.city' | translate }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.city.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('city')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center row\">\r\n <ngx-st-search-select\r\n *ngIf=\"searchForm?.get('state') && ((states$ | async) || []) as states\"\r\n [options]=\"states || []\"\r\n [selectLabel]=\"'global.state' | translate\"\r\n [optionLabelPropertyName]=\"'name'\"\r\n [selectFormControl]=\"searchForm.controls.state\"\r\n [selectBindType]=\"'control'\"\r\n [searchLabel]=\"'global.search' | translate\"\r\n [valueMethod]=\"getStateValue\"\r\n ></ngx-st-search-select>\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'global.refresh' | translate\"\r\n [disabled]=\"!searchForm.controls.country.value\"\r\n (click)=\"refreshStates()\"\r\n type=\"button\"\r\n >\r\n <i class=\"material-icons\">refresh</i>\r\n </button>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"county\"\r\n placeholder=\"{{ 'global.county' | translate }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.county.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('county')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center row\">\r\n <ngx-st-search-select\r\n *ngIf=\"\r\n searchForm?.get('country') &&\r\n ((countries$ | async) || []) as countries\r\n \"\r\n [options]=\"countries || []\"\r\n [selectLabel]=\"'global.country' | translate\"\r\n [optionLabelPropertyName]=\"'name'\"\r\n [selectFormControl]=\"searchForm.controls.country\"\r\n [selectBindType]=\"'control'\"\r\n [searchLabel]=\"'global.search' | translate\"\r\n [valueMethod]=\"getCountryValue\"\r\n ></ngx-st-search-select>\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'global.refresh' | translate\"\r\n (click)=\"refreshCountries()\"\r\n type=\"button\"\r\n >\r\n <i class=\"material-icons\">refresh</i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <mat-label>{{\r\n 'sapAdminInstalledInstrument.installationDateFrom' | translate\r\n }}</mat-label>\r\n <input\r\n matInput\r\n [matDatepicker]=\"picker1\"\r\n formControlName=\"installationDateFrom\"\r\n />\r\n <mat-datepicker-toggle\r\n matSuffix\r\n [for]=\"picker1\"\r\n ></mat-datepicker-toggle>\r\n <mat-datepicker #picker1></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <mat-label>{{\r\n 'sapAdminInstalledInstrument.installationDateTo' | translate\r\n }}</mat-label>\r\n <input\r\n matInput\r\n [matDatepicker]=\"picker2\"\r\n formControlName=\"installationDateTo\"\r\n />\r\n <mat-datepicker-toggle\r\n matSuffix\r\n [for]=\"picker2\"\r\n ></mat-datepicker-toggle>\r\n <mat-datepicker #picker2></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"endUserName\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.endCustomerName' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.endUserName.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('endUserName')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"endUserCode\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.endCustomerNo' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.endUserCode.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('endUserCode')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row justify-content-center\" style=\"margin-bottom: 10px\">\r\n <button\r\n mat-raised-button\r\n type=\"button\"\r\n (click)=\"clearAllFilters()\"\r\n *ngIf=\"showFilters\"\r\n style=\"margin-right: 10px\"\r\n >\r\n Clear All\r\n </button>\r\n <button\r\n mat-raised-button\r\n type=\"button\"\r\n color=\"accent\"\r\n (click)=\"showFilters = !showFilters\"\r\n >\r\n <ng-container *ngIf=\"showFilters\">\r\n {{ 'sapAdminInstalledInstrument.hideFilters' | translate }}\r\n </ng-container>\r\n <ng-container *ngIf=\"!showFilters\">\r\n {{ 'sapAdminInstalledInstrument.showFilters' | translate }}\r\n </ng-container>\r\n </button>\r\n <button\r\n *ngIf=\"showFilters\"\r\n mat-raised-button\r\n type=\"submit\"\r\n color=\"primary\"\r\n style=\"margin-left: 10px\"\r\n >\r\n Search\r\n </button>\r\n </div>\r\n</form>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i12.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i12.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i12.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i13.NgxStMultiselectAutocompleteComponent, selector: "ngx-st-multiselect-autocomplete", inputs: ["label", "placeholder", "getFilteredOptions", "initSelectedData", "maxLengthSelectedData"], outputs: ["selectedDataChanged"] }, { kind: "component", type: i14.SearchSelectComponent, selector: "ngx-st-search-select", inputs: ["selectLabel", "filterMethod", "optionLabelMethod", "optionLabelPropertyName", "valueMethod", "displaySelected", "model", "modelChange", "selectFormControl", "required", "selectBindType", "searchLabel", "options"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
124
|
+
SapInstalledInstrumentListSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SapInstalledInstrumentListSearchComponent, selector: "app-sap-installed-instrument-list-search", outputs: { filtersChanged: "filtersChanged" }, viewQueries: [{ propertyName: "multiselectAutocomplete", first: true, predicate: ["multiselectAutocomplete"], descendants: true }], ngImport: i0, template: "<form\r\n class=\"search-filters\"\r\n [formGroup]=\"searchForm\"\r\n (ngSubmit)=\"searchSubmitted()\"\r\n>\r\n <div class=\"row align-items-center\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <ngx-st-multiselect-autocomplete\r\n #multiselectAutocomplete\r\n [label]=\"\r\n ('sapAdminInstalledInstrument.application' | translate) +\r\n ' (' +\r\n ('global.max' | translate) +\r\n ': 10)'\r\n \"\r\n [searchLabel]=\"\r\n 'sapAdminInstalledInstrument.applicationPlaceholder' | translate\r\n \"\r\n [settings]=\"{\r\n getFilteredOptions: this.getFilteredOptions\r\n }\"\r\n [initSelectedData]=\"searchForm.controls.application.value\"\r\n [maxLengthSelectedData]=\"10\"\r\n (selectedDataChanged)=\"applicationSelected($event)\"\r\n ></ngx-st-multiselect-autocomplete>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"bpName\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.accountName' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.bpName.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('bpName')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"technicianLastName\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.technicianLastName' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.technicianLastName.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('technicianLastName')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"serialNumber\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.serialNumber' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.serialNumber.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('serialNumber')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"instrumentNo\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.instrumentNo' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.instrumentNo.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('instrumentNo')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"instrumentDesc\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.instrumentDescription' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.instrumentDesc.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('instrumentDesc')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <mat-label>{{\r\n 'sapAdminInstalledInstrument.instrumentStatus' | translate\r\n }}</mat-label>\r\n <mat-select formControlName=\"status\">\r\n <mat-option [value]=\"''\">{{ 'global.empty' | translate }}</mat-option>\r\n <mat-option [value]=\"'A'\">{{\r\n 'sapAdminInstalledInstrument.statusA' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'R'\">{{\r\n 'sapAdminInstalledInstrument.statusR' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'T'\">{{\r\n 'sapAdminInstalledInstrument.statusT' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'L'\">{{\r\n 'sapAdminInstalledInstrument.statusL' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'I'\">{{\r\n 'sapAdminInstalledInstrument.statusI' | translate\r\n }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"customerNo\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.accountNo' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.customerNo.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('customerNo')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center row\">\r\n <ngx-st-search-select\r\n *ngIf=\"\r\n searchForm?.get('territory') &&\r\n ((territories$ | async) || []) as territories\r\n \"\r\n [options]=\"territories || []\"\r\n [selectLabel]=\"'global.territory' | translate\"\r\n [optionLabelPropertyName]=\"'name'\"\r\n [selectFormControl]=\"searchForm.controls.territory\"\r\n [selectBindType]=\"'control'\"\r\n [searchLabel]=\"'global.search' | translate\"\r\n [valueMethod]=\"getTerritoryValue\"\r\n ></ngx-st-search-select>\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'global.refresh' | translate\"\r\n (click)=\"refreshTerritories()\"\r\n type=\"button\"\r\n >\r\n <i class=\"material-icons\">refresh</i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"city\"\r\n placeholder=\"{{ 'global.city' | translate }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.city.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('city')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center row\">\r\n <ngx-st-search-select\r\n *ngIf=\"searchForm?.get('state') && ((states$ | async) || []) as states\"\r\n [options]=\"states || []\"\r\n [selectLabel]=\"'global.state' | translate\"\r\n [optionLabelPropertyName]=\"'name'\"\r\n [selectFormControl]=\"searchForm.controls.state\"\r\n [selectBindType]=\"'control'\"\r\n [searchLabel]=\"'global.search' | translate\"\r\n [valueMethod]=\"getStateValue\"\r\n ></ngx-st-search-select>\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'global.refresh' | translate\"\r\n [disabled]=\"!searchForm.controls.country.value\"\r\n (click)=\"refreshStates()\"\r\n type=\"button\"\r\n >\r\n <i class=\"material-icons\">refresh</i>\r\n </button>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"county\"\r\n placeholder=\"{{ 'global.county' | translate }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.county.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('county')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center row\">\r\n <ngx-st-search-select\r\n *ngIf=\"\r\n searchForm?.get('country') &&\r\n ((countries$ | async) || []) as countries\r\n \"\r\n [options]=\"countries || []\"\r\n [selectLabel]=\"'global.country' | translate\"\r\n [optionLabelPropertyName]=\"'name'\"\r\n [selectFormControl]=\"searchForm.controls.country\"\r\n [selectBindType]=\"'control'\"\r\n [searchLabel]=\"'global.search' | translate\"\r\n [valueMethod]=\"getCountryValue\"\r\n ></ngx-st-search-select>\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'global.refresh' | translate\"\r\n (click)=\"refreshCountries()\"\r\n type=\"button\"\r\n >\r\n <i class=\"material-icons\">refresh</i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <mat-label>{{\r\n 'sapAdminInstalledInstrument.installationDateFrom' | translate\r\n }}</mat-label>\r\n <input\r\n matInput\r\n [matDatepicker]=\"picker1\"\r\n formControlName=\"installationDateFrom\"\r\n />\r\n <mat-datepicker-toggle\r\n matSuffix\r\n [for]=\"picker1\"\r\n ></mat-datepicker-toggle>\r\n <mat-datepicker #picker1></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <mat-label>{{\r\n 'sapAdminInstalledInstrument.installationDateTo' | translate\r\n }}</mat-label>\r\n <input\r\n matInput\r\n [matDatepicker]=\"picker2\"\r\n formControlName=\"installationDateTo\"\r\n />\r\n <mat-datepicker-toggle\r\n matSuffix\r\n [for]=\"picker2\"\r\n ></mat-datepicker-toggle>\r\n <mat-datepicker #picker2></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"endUserName\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.endCustomerName' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.endUserName.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('endUserName')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"endUserCode\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.endCustomerNo' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.endUserCode.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('endUserCode')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row justify-content-center\" style=\"margin-bottom: 10px\">\r\n <button\r\n mat-raised-button\r\n type=\"button\"\r\n (click)=\"clearAllFilters()\"\r\n *ngIf=\"showFilters\"\r\n style=\"margin-right: 10px\"\r\n >\r\n Clear All\r\n </button>\r\n <button\r\n mat-raised-button\r\n type=\"button\"\r\n color=\"accent\"\r\n (click)=\"showFilters = !showFilters\"\r\n >\r\n <ng-container *ngIf=\"showFilters\">\r\n {{ 'sapAdminInstalledInstrument.hideFilters' | translate }}\r\n </ng-container>\r\n <ng-container *ngIf=\"!showFilters\">\r\n {{ 'sapAdminInstalledInstrument.showFilters' | translate }}\r\n </ng-container>\r\n </button>\r\n <button\r\n *ngIf=\"showFilters\"\r\n mat-raised-button\r\n type=\"submit\"\r\n color=\"primary\"\r\n style=\"margin-left: 10px\"\r\n >\r\n Search\r\n </button>\r\n </div>\r\n</form>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i12.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i12.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i12.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i13.NgxStMultiselectAutocompleteComponent, selector: "ngx-st-multiselect-autocomplete[settings]", inputs: ["label", "searchLabel", "settings", "initSelectedData", "maxLengthSelectedData", "clearAfterSelect"], outputs: ["selectedDataChanged"] }, { kind: "component", type: i14.SearchSelectComponent, selector: "ngx-st-search-select", inputs: ["selectLabel", "filterMethod", "optionLabelMethod", "optionLabelPropertyName", "valueMethod", "displaySelected", "model", "modelChange", "selectFormControl", "required", "selectBindType", "searchLabel", "showEmptyOption", "options"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
125
125
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SapInstalledInstrumentListSearchComponent, decorators: [{
|
|
126
126
|
type: Component,
|
|
127
|
-
args: [{ selector: 'app-sap-installed-instrument-list-search', changeDetection: ChangeDetectionStrategy.OnPush, template: "<form\r\n class=\"search-filters\"\r\n [formGroup]=\"searchForm\"\r\n (ngSubmit)=\"searchSubmitted()\"\r\n>\r\n <div class=\"row align-items-center\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <ngx-st-multiselect-autocomplete\r\n #multiselectAutocomplete\r\n [label]=\"\r\n ('sapAdminInstalledInstrument.application' | translate) +\r\n ' (' +\r\n ('global.max' | translate) +\r\n ': 10)'\r\n \"\r\n [placeholder]=\"\r\n 'sapAdminInstalledInstrument.applicationPlaceholder' | translate\r\n \"\r\n [getFilteredOptions]=\"this.getFilteredOptions\"\r\n [initSelectedData]=\"searchForm.controls.application.value\"\r\n [maxLengthSelectedData]=\"10\"\r\n (selectedDataChanged)=\"applicationSelected($event)\"\r\n ></ngx-st-multiselect-autocomplete>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"bpName\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.accountName' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.bpName.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('bpName')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"technicianLastName\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.technicianLastName' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.technicianLastName.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('technicianLastName')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"serialNumber\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.serialNumber' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.serialNumber.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('serialNumber')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"instrumentNo\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.instrumentNo' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.instrumentNo.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('instrumentNo')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"instrumentDesc\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.instrumentDescription' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.instrumentDesc.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('instrumentDesc')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <mat-label>{{\r\n 'sapAdminInstalledInstrument.instrumentStatus' | translate\r\n }}</mat-label>\r\n <mat-select formControlName=\"status\">\r\n <mat-option [value]=\"''\">{{ 'global.empty' | translate }}</mat-option>\r\n <mat-option [value]=\"'A'\">{{\r\n 'sapAdminInstalledInstrument.statusA' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'R'\">{{\r\n 'sapAdminInstalledInstrument.statusR' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'T'\">{{\r\n 'sapAdminInstalledInstrument.statusT' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'L'\">{{\r\n 'sapAdminInstalledInstrument.statusL' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'I'\">{{\r\n 'sapAdminInstalledInstrument.statusI' | translate\r\n }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"customerNo\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.accountNo' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.customerNo.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('customerNo')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center row\">\r\n <ngx-st-search-select\r\n *ngIf=\"\r\n searchForm?.get('territory') &&\r\n ((territories$ | async) || []) as territories\r\n \"\r\n [options]=\"territories || []\"\r\n [selectLabel]=\"'global.territory' | translate\"\r\n [optionLabelPropertyName]=\"'name'\"\r\n [selectFormControl]=\"searchForm.controls.territory\"\r\n [selectBindType]=\"'control'\"\r\n [searchLabel]=\"'global.search' | translate\"\r\n [valueMethod]=\"getTerritoryValue\"\r\n ></ngx-st-search-select>\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'global.refresh' | translate\"\r\n (click)=\"refreshTerritories()\"\r\n type=\"button\"\r\n >\r\n <i class=\"material-icons\">refresh</i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"city\"\r\n placeholder=\"{{ 'global.city' | translate }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.city.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('city')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center row\">\r\n <ngx-st-search-select\r\n *ngIf=\"searchForm?.get('state') && ((states$ | async) || []) as states\"\r\n [options]=\"states || []\"\r\n [selectLabel]=\"'global.state' | translate\"\r\n [optionLabelPropertyName]=\"'name'\"\r\n [selectFormControl]=\"searchForm.controls.state\"\r\n [selectBindType]=\"'control'\"\r\n [searchLabel]=\"'global.search' | translate\"\r\n [valueMethod]=\"getStateValue\"\r\n ></ngx-st-search-select>\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'global.refresh' | translate\"\r\n [disabled]=\"!searchForm.controls.country.value\"\r\n (click)=\"refreshStates()\"\r\n type=\"button\"\r\n >\r\n <i class=\"material-icons\">refresh</i>\r\n </button>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"county\"\r\n placeholder=\"{{ 'global.county' | translate }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.county.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('county')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center row\">\r\n <ngx-st-search-select\r\n *ngIf=\"\r\n searchForm?.get('country') &&\r\n ((countries$ | async) || []) as countries\r\n \"\r\n [options]=\"countries || []\"\r\n [selectLabel]=\"'global.country' | translate\"\r\n [optionLabelPropertyName]=\"'name'\"\r\n [selectFormControl]=\"searchForm.controls.country\"\r\n [selectBindType]=\"'control'\"\r\n [searchLabel]=\"'global.search' | translate\"\r\n [valueMethod]=\"getCountryValue\"\r\n ></ngx-st-search-select>\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'global.refresh' | translate\"\r\n (click)=\"refreshCountries()\"\r\n type=\"button\"\r\n >\r\n <i class=\"material-icons\">refresh</i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <mat-label>{{\r\n 'sapAdminInstalledInstrument.installationDateFrom' | translate\r\n }}</mat-label>\r\n <input\r\n matInput\r\n [matDatepicker]=\"picker1\"\r\n formControlName=\"installationDateFrom\"\r\n />\r\n <mat-datepicker-toggle\r\n matSuffix\r\n [for]=\"picker1\"\r\n ></mat-datepicker-toggle>\r\n <mat-datepicker #picker1></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <mat-label>{{\r\n 'sapAdminInstalledInstrument.installationDateTo' | translate\r\n }}</mat-label>\r\n <input\r\n matInput\r\n [matDatepicker]=\"picker2\"\r\n formControlName=\"installationDateTo\"\r\n />\r\n <mat-datepicker-toggle\r\n matSuffix\r\n [for]=\"picker2\"\r\n ></mat-datepicker-toggle>\r\n <mat-datepicker #picker2></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"endUserName\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.endCustomerName' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.endUserName.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('endUserName')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"endUserCode\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.endCustomerNo' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.endUserCode.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('endUserCode')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row justify-content-center\" style=\"margin-bottom: 10px\">\r\n <button\r\n mat-raised-button\r\n type=\"button\"\r\n (click)=\"clearAllFilters()\"\r\n *ngIf=\"showFilters\"\r\n style=\"margin-right: 10px\"\r\n >\r\n Clear All\r\n </button>\r\n <button\r\n mat-raised-button\r\n type=\"button\"\r\n color=\"accent\"\r\n (click)=\"showFilters = !showFilters\"\r\n >\r\n <ng-container *ngIf=\"showFilters\">\r\n {{ 'sapAdminInstalledInstrument.hideFilters' | translate }}\r\n </ng-container>\r\n <ng-container *ngIf=\"!showFilters\">\r\n {{ 'sapAdminInstalledInstrument.showFilters' | translate }}\r\n </ng-container>\r\n </button>\r\n <button\r\n *ngIf=\"showFilters\"\r\n mat-raised-button\r\n type=\"submit\"\r\n color=\"primary\"\r\n style=\"margin-left: 10px\"\r\n >\r\n Search\r\n </button>\r\n </div>\r\n</form>\r\n" }]
|
|
127
|
+
args: [{ selector: 'app-sap-installed-instrument-list-search', changeDetection: ChangeDetectionStrategy.OnPush, template: "<form\r\n class=\"search-filters\"\r\n [formGroup]=\"searchForm\"\r\n (ngSubmit)=\"searchSubmitted()\"\r\n>\r\n <div class=\"row align-items-center\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <ngx-st-multiselect-autocomplete\r\n #multiselectAutocomplete\r\n [label]=\"\r\n ('sapAdminInstalledInstrument.application' | translate) +\r\n ' (' +\r\n ('global.max' | translate) +\r\n ': 10)'\r\n \"\r\n [searchLabel]=\"\r\n 'sapAdminInstalledInstrument.applicationPlaceholder' | translate\r\n \"\r\n [settings]=\"{\r\n getFilteredOptions: this.getFilteredOptions\r\n }\"\r\n [initSelectedData]=\"searchForm.controls.application.value\"\r\n [maxLengthSelectedData]=\"10\"\r\n (selectedDataChanged)=\"applicationSelected($event)\"\r\n ></ngx-st-multiselect-autocomplete>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"bpName\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.accountName' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.bpName.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('bpName')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"technicianLastName\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.technicianLastName' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.technicianLastName.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('technicianLastName')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"serialNumber\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.serialNumber' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.serialNumber.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('serialNumber')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"instrumentNo\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.instrumentNo' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.instrumentNo.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('instrumentNo')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"instrumentDesc\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.instrumentDescription' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.instrumentDesc.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('instrumentDesc')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <mat-label>{{\r\n 'sapAdminInstalledInstrument.instrumentStatus' | translate\r\n }}</mat-label>\r\n <mat-select formControlName=\"status\">\r\n <mat-option [value]=\"''\">{{ 'global.empty' | translate }}</mat-option>\r\n <mat-option [value]=\"'A'\">{{\r\n 'sapAdminInstalledInstrument.statusA' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'R'\">{{\r\n 'sapAdminInstalledInstrument.statusR' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'T'\">{{\r\n 'sapAdminInstalledInstrument.statusT' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'L'\">{{\r\n 'sapAdminInstalledInstrument.statusL' | translate\r\n }}</mat-option>\r\n <mat-option [value]=\"'I'\">{{\r\n 'sapAdminInstalledInstrument.statusI' | translate\r\n }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"customerNo\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.accountNo' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.customerNo.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('customerNo')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-4 align-items-center row\">\r\n <ngx-st-search-select\r\n *ngIf=\"\r\n searchForm?.get('territory') &&\r\n ((territories$ | async) || []) as territories\r\n \"\r\n [options]=\"territories || []\"\r\n [selectLabel]=\"'global.territory' | translate\"\r\n [optionLabelPropertyName]=\"'name'\"\r\n [selectFormControl]=\"searchForm.controls.territory\"\r\n [selectBindType]=\"'control'\"\r\n [searchLabel]=\"'global.search' | translate\"\r\n [valueMethod]=\"getTerritoryValue\"\r\n ></ngx-st-search-select>\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'global.refresh' | translate\"\r\n (click)=\"refreshTerritories()\"\r\n type=\"button\"\r\n >\r\n <i class=\"material-icons\">refresh</i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"city\"\r\n placeholder=\"{{ 'global.city' | translate }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.city.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('city')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center row\">\r\n <ngx-st-search-select\r\n *ngIf=\"searchForm?.get('state') && ((states$ | async) || []) as states\"\r\n [options]=\"states || []\"\r\n [selectLabel]=\"'global.state' | translate\"\r\n [optionLabelPropertyName]=\"'name'\"\r\n [selectFormControl]=\"searchForm.controls.state\"\r\n [selectBindType]=\"'control'\"\r\n [searchLabel]=\"'global.search' | translate\"\r\n [valueMethod]=\"getStateValue\"\r\n ></ngx-st-search-select>\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'global.refresh' | translate\"\r\n [disabled]=\"!searchForm.controls.country.value\"\r\n (click)=\"refreshStates()\"\r\n type=\"button\"\r\n >\r\n <i class=\"material-icons\">refresh</i>\r\n </button>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"county\"\r\n placeholder=\"{{ 'global.county' | translate }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.county.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('county')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center row\">\r\n <ngx-st-search-select\r\n *ngIf=\"\r\n searchForm?.get('country') &&\r\n ((countries$ | async) || []) as countries\r\n \"\r\n [options]=\"countries || []\"\r\n [selectLabel]=\"'global.country' | translate\"\r\n [optionLabelPropertyName]=\"'name'\"\r\n [selectFormControl]=\"searchForm.controls.country\"\r\n [selectBindType]=\"'control'\"\r\n [searchLabel]=\"'global.search' | translate\"\r\n [valueMethod]=\"getCountryValue\"\r\n ></ngx-st-search-select>\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'global.refresh' | translate\"\r\n (click)=\"refreshCountries()\"\r\n type=\"button\"\r\n >\r\n <i class=\"material-icons\">refresh</i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{ hide: !showFilters }\">\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <mat-label>{{\r\n 'sapAdminInstalledInstrument.installationDateFrom' | translate\r\n }}</mat-label>\r\n <input\r\n matInput\r\n [matDatepicker]=\"picker1\"\r\n formControlName=\"installationDateFrom\"\r\n />\r\n <mat-datepicker-toggle\r\n matSuffix\r\n [for]=\"picker1\"\r\n ></mat-datepicker-toggle>\r\n <mat-datepicker #picker1></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <mat-label>{{\r\n 'sapAdminInstalledInstrument.installationDateTo' | translate\r\n }}</mat-label>\r\n <input\r\n matInput\r\n [matDatepicker]=\"picker2\"\r\n formControlName=\"installationDateTo\"\r\n />\r\n <mat-datepicker-toggle\r\n matSuffix\r\n [for]=\"picker2\"\r\n ></mat-datepicker-toggle>\r\n <mat-datepicker #picker2></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"endUserName\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.endCustomerName' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.endUserName.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('endUserName')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-xs-12 col-sm-3 align-items-center\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"endUserCode\"\r\n placeholder=\"{{\r\n 'sapAdminInstalledInstrument.endCustomerNo' | translate\r\n }}\"\r\n />\r\n <button\r\n *ngIf=\"searchForm.controls.endUserCode.value\"\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"clearInputValue('endUserCode')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row justify-content-center\" style=\"margin-bottom: 10px\">\r\n <button\r\n mat-raised-button\r\n type=\"button\"\r\n (click)=\"clearAllFilters()\"\r\n *ngIf=\"showFilters\"\r\n style=\"margin-right: 10px\"\r\n >\r\n Clear All\r\n </button>\r\n <button\r\n mat-raised-button\r\n type=\"button\"\r\n color=\"accent\"\r\n (click)=\"showFilters = !showFilters\"\r\n >\r\n <ng-container *ngIf=\"showFilters\">\r\n {{ 'sapAdminInstalledInstrument.hideFilters' | translate }}\r\n </ng-container>\r\n <ng-container *ngIf=\"!showFilters\">\r\n {{ 'sapAdminInstalledInstrument.showFilters' | translate }}\r\n </ng-container>\r\n </button>\r\n <button\r\n *ngIf=\"showFilters\"\r\n mat-raised-button\r\n type=\"submit\"\r\n color=\"primary\"\r\n style=\"margin-left: 10px\"\r\n >\r\n Search\r\n </button>\r\n </div>\r\n</form>\r\n" }]
|
|
128
128
|
}], ctorParameters: function () { return [{ type: i1.SapInstalledInstrumentsService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.NonNullableFormBuilder }]; }, propDecorators: { multiselectAutocomplete: [{
|
|
129
129
|
type: ViewChild,
|
|
130
130
|
args: ['multiselectAutocomplete']
|
|
131
131
|
}], filtersChanged: [{
|
|
132
132
|
type: Output
|
|
133
133
|
}] } });
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FwLWluc3RhbGxlZC1pbnN0cnVtZW50LWxpc3Qtc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdC1zYXAtaW5zdGFsbGVkLWluc3RydW1lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC1zZWFyY2gvc2FwLWluc3RhbGxlZC1pbnN0cnVtZW50LWxpc3Qtc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdC1zYXAtaW5zdGFsbGVkLWluc3RydW1lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC1zZWFyY2gvc2FwLWluc3RhbGxlZC1pbnN0cnVtZW50LWxpc3Qtc2VhcmNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFpQixNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWpILE9BQU8sRUFBYSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZXBDLE1BQU0sT0FBTyx5Q0FBeUM7SUErQnBELFlBQ1ksNkJBQTZELEVBQzdELE1BQWMsRUFDZCxjQUE4QixFQUM5QixFQUEwQjtRQUgxQixrQ0FBNkIsR0FBN0IsNkJBQTZCLENBQWdDO1FBQzdELFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsT0FBRSxHQUFGLEVBQUUsQ0FBd0I7UUEvQnRDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQWdDLENBQUM7UUFFbEUsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsZUFBVSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3pCLFdBQVcsRUFBRSxDQUFXLEVBQUUsQ0FBQztZQUMzQixZQUFZLEVBQUUsRUFBRTtZQUNoQixZQUFZLEVBQUUsRUFBRTtZQUNoQixjQUFjLEVBQUUsRUFBRTtZQUNsQixVQUFVLEVBQUUsRUFBRTtZQUNkLE1BQU0sRUFBRSxFQUFFO1lBQ1YsSUFBSSxFQUFFLEVBQUU7WUFDUixNQUFNLEVBQUUsRUFBRTtZQUNWLFdBQVcsRUFBRSxFQUFFO1lBQ2YsV0FBVyxFQUFFLEVBQUU7WUFDZixTQUFTLEVBQWlCLElBQUk7WUFDOUIsa0JBQWtCLEVBQUUsRUFBRTtZQUN0QixPQUFPLEVBQUUsRUFBRTtZQUNYLEtBQUssRUFBRSxFQUFFO1lBQ1QsTUFBTSxFQUFFLEVBQUU7WUFDVixvQkFBb0IsRUFBZSxJQUFJO1lBQ3ZDLGtCQUFrQixFQUFlLElBQUk7U0FDdEMsQ0FBQyxDQUFDO1FBK0VILHVCQUFrQixHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7WUFDdEMsT0FBTyxJQUFJLENBQUMsNkJBQTZCLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekUsQ0FBQyxDQUFBO0lBdEVHLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV2QixNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUVwRixJQUFJLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBRXhCLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtnQkFDckMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3BELElBQUksV0FBVyxFQUFFO29CQUNmLElBQUksVUFBVSxLQUFLLHNCQUFzQixJQUFJLFVBQVUsS0FBSyxvQkFBb0IsRUFBRTt3QkFDaEYsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDcEo7eUJBQU07d0JBQ0wsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztxQkFDNUU7aUJBQ0Y7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0csQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUF3QjtRQUN0QyxPQUFPLE9BQU8sQ0FBQyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFvQjtRQUNoQyxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELGlCQUFpQixDQUFDLFNBQTRCO1FBQzVDLE9BQU8sU0FBUyxDQUFDLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZUFBZTtRQUNiLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFakQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGVBQWUsQ0FBQyxlQUF1QjtRQUNyQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFNRCxtQkFBbUIsQ0FBQyxJQUFjO1FBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQWUsRUFBRSxFQUFFO1lBQzFFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFNUMsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3JFO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ3ZCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztzSUFoSVUseUNBQXlDOzBIQUF6Qyx5Q0FBeUMsbVFDakJ0RCxnN2FBZ1pBOzJGRC9YYSx5Q0FBeUM7a0JBTnJELFNBQVM7K0JBQ0UsMENBQTBDLG1CQUduQyx1QkFBdUIsQ0FBQyxNQUFNOzRNQUdULHVCQUF1QjtzQkFBNUQsU0FBUzt1QkFBQyx5QkFBeUI7Z0JBR3BDLGNBQWM7c0JBRGIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Tm9uTnVsbGFibGVGb3JtQnVpbGRlcn0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2Z9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7U2FwVGVycml0b3J5TW9kZWx9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvc2FwLXRlcnJpdG9yeS5tb2RlbFwiO1xyXG5pbXBvcnQge1NhcFN0YXRlTW9kZWx9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvc2FwLXN0YXRlLm1vZGVsXCI7XHJcbmltcG9ydCB7U2FwQ291bnRyeU1vZGVsfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL3NhcC1jb3VudHJ5Lm1vZGVsXCI7XHJcbmltcG9ydCB7Tmd4U3RNdWx0aXNlbGVjdEF1dG9jb21wbGV0ZUNvbXBvbmVudH0gZnJvbSBcIm5neC1zdC1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGVcIjtcclxuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7U2FwSW5zdGFsbGVkSW5zdHJ1bWVudHNTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvc2FwLWluc3RhbGxlZC1pbnN0cnVtZW50cy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7SW5zdGFsbGVkSW5zdHJ1bWVudEZvcm1Nb2RlbH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9pbnN0YWxsZWQtaW5zdHJ1bWVudC1mb3JtLm1vZGVsXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC1zZWFyY2gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC1zZWFyY2guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudC1saXN0LXNlYXJjaC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYXBJbnN0YWxsZWRJbnN0cnVtZW50TGlzdFNlYXJjaENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnbXVsdGlzZWxlY3RBdXRvY29tcGxldGUnKSBtdWx0aXNlbGVjdEF1dG9jb21wbGV0ZTogTmd4U3RNdWx0aXNlbGVjdEF1dG9jb21wbGV0ZUNvbXBvbmVudDtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZmlsdGVyc0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEluc3RhbGxlZEluc3RydW1lbnRGb3JtTW9kZWw+KCk7XHJcblxyXG4gIHNob3dGaWx0ZXJzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2VhcmNoRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgYXBwbGljYXRpb246IFs8c3RyaW5nW10+W11dLFxyXG4gICAgc2VyaWFsTnVtYmVyOiAnJyxcclxuICAgIGluc3RydW1lbnRObzogJycsXHJcbiAgICBpbnN0cnVtZW50RGVzYzogJycsXHJcbiAgICBjdXN0b21lck5vOiAnJyxcclxuICAgIGJwTmFtZTogJycsXHJcbiAgICBjaXR5OiAnJyxcclxuICAgIGNvdW50eTogJycsXHJcbiAgICBlbmRVc2VyTmFtZTogJycsXHJcbiAgICBlbmRVc2VyQ29kZTogJycsXHJcbiAgICB0ZXJyaXRvcnk6IDxudW1iZXIgfCBudWxsPm51bGwsXHJcbiAgICB0ZWNobmljaWFuTGFzdE5hbWU6ICcnLFxyXG4gICAgY291bnRyeTogJycsXHJcbiAgICBzdGF0ZTogJycsXHJcbiAgICBzdGF0dXM6ICcnLFxyXG4gICAgaW5zdGFsbGF0aW9uRGF0ZUZyb206IDxEYXRlIHwgbnVsbD5udWxsLFxyXG4gICAgaW5zdGFsbGF0aW9uRGF0ZVRvOiA8RGF0ZSB8IG51bGw+bnVsbFxyXG4gIH0pO1xyXG5cclxuICB0ZXJyaXRvcmllcyQ6IE9ic2VydmFibGU8U2FwVGVycml0b3J5TW9kZWxbXT47XHJcbiAgc3RhdGVzJDogT2JzZXJ2YWJsZTxTYXBTdGF0ZU1vZGVsW10+O1xyXG4gIGNvdW50cmllcyQ6IE9ic2VydmFibGU8U2FwQ291bnRyeU1vZGVsW10+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgICAgcHJpdmF0ZSBzYXBJbnN0YWxsZWRJbnN0cnVtZW50U2VydmljZTogU2FwSW5zdGFsbGVkSW5zdHJ1bWVudHNTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgcHJpdmF0ZSBmYjogTm9uTnVsbGFibGVGb3JtQnVpbGRlclxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRTZWFyY2hGb3JtKCk7XHJcbiAgICB0aGlzLnNldEFzeW5jRmlsdGVycygpO1xyXG5cclxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zS2V5cyA9IE9iamVjdC5rZXlzKHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMgfHwge30pO1xyXG5cclxuICAgIGlmIChxdWVyeVBhcmFtc0tleXMubGVuZ3RoID4gMikge1xyXG4gICAgICB0aGlzLnNob3dGaWx0ZXJzID0gdHJ1ZTtcclxuXHJcbiAgICAgIHF1ZXJ5UGFyYW1zS2V5cy5mb3JFYWNoKChxdWVyeVBhcmFtKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLnNlYXJjaEZvcm0uZ2V0KHF1ZXJ5UGFyYW0pO1xyXG4gICAgICAgIGlmIChmb3JtQ29udHJvbCkge1xyXG4gICAgICAgICAgaWYgKHF1ZXJ5UGFyYW0gPT09ICdpbnN0YWxsYXRpb25EYXRlRnJvbScgfHwgcXVlcnlQYXJhbSA9PT0gJ2luc3RhbGxhdGlvbkRhdGVUbycpIHtcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1txdWVyeVBhcmFtXSA/IG5ldyBEYXRlKHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbcXVlcnlQYXJhbV0pIDogbnVsbCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBmb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zW3F1ZXJ5UGFyYW1dKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJBbGxGaWx0ZXJzKCkge1xyXG4gICAgdGhpcy5zZWFyY2hGb3JtLnJlc2V0KCk7XHJcbiAgICB0aGlzLm11bHRpc2VsZWN0QXV0b2NvbXBsZXRlLmNsZWFyU2VsZWN0ZWREYXRhKCk7XHJcbiAgICB0aGlzLnNlYXJjaFN1Ym1pdHRlZCgpO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaFRlcnJpdG9yaWVzKCkge1xyXG4gICAgdGhpcy5zZWFyY2hGb3JtLmNvbnRyb2xzLnRlcnJpdG9yeS5zZXRWYWx1ZShudWxsKTtcclxuICAgIHRoaXMudGVycml0b3JpZXMkID0gdGhpcy5zYXBJbnN0YWxsZWRJbnN0cnVtZW50U2VydmljZS5nZXRUZXJyaXRvcnkodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoQ291bnRyaWVzKCkge1xyXG4gICAgdGhpcy5zZWFyY2hGb3JtLmNvbnRyb2xzLmNvdW50cnkuc2V0VmFsdWUoJycpO1xyXG4gICAgdGhpcy5jb3VudHJpZXMkID0gdGhpcy5zYXBJbnN0YWxsZWRJbnN0cnVtZW50U2VydmljZS5nZXRDb3VudHJ5KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaFN0YXRlcygpIHtcclxuICAgIHRoaXMuc2VhcmNoRm9ybS5jb250cm9scy5zdGF0ZS5zZXRWYWx1ZSgnJyk7XHJcbiAgICB0aGlzLnN0YXRlcyQgPSB0aGlzLnNhcEluc3RhbGxlZEluc3RydW1lbnRTZXJ2aWNlLmdldFN0YXRlKHRoaXMuc2VhcmNoRm9ybS5jb250cm9scy5jb3VudHJ5LnZhbHVlLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIGdldENvdW50cnlWYWx1ZShjb3VudHJ5OiBTYXBDb3VudHJ5TW9kZWwpIHtcclxuICAgIHJldHVybiBjb3VudHJ5LmlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RhdGVWYWx1ZShzdGF0ZTogU2FwU3RhdGVNb2RlbCkge1xyXG4gICAgcmV0dXJuIHN0YXRlLmlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGVycml0b3J5VmFsdWUodGVycml0b3J5OiBTYXBUZXJyaXRvcnlNb2RlbCkge1xyXG4gICAgcmV0dXJuIHRlcnJpdG9yeS5pZDtcclxuICB9XHJcblxyXG4gIHNlYXJjaFN1Ym1pdHRlZCgpIHtcclxuICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSB0aGlzLnNlYXJjaEZvcm0uZ2V0UmF3VmFsdWUoKTtcclxuXHJcbiAgICB0aGlzLmZpbHRlcnNDaGFuZ2VkLmVtaXQoZm9ybVZhbHVlcyk7XHJcbiAgfVxyXG5cclxuICBjbGVhcklucHV0VmFsdWUoZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VhcmNoRm9ybS5nZXQoZm9ybUNvbnRyb2xOYW1lKSEuc2V0VmFsdWUoJycpO1xyXG4gICAgdGhpcy5zZWFyY2hTdWJtaXR0ZWQoKTtcclxuICB9XHJcblxyXG4gIGdldEZpbHRlcmVkT3B0aW9ucyA9IChzZWFyY2g6IHN0cmluZykgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2FwSW5zdGFsbGVkSW5zdHJ1bWVudFNlcnZpY2UuZ2V0QXBwbGljYXRpb25TZWFyY2goc2VhcmNoKTtcclxuICB9XHJcblxyXG4gIGFwcGxpY2F0aW9uU2VsZWN0ZWQoZGF0YTogc3RyaW5nW10pIHtcclxuICAgIHRoaXMuc2VhcmNoRm9ybS5jb250cm9scy5hcHBsaWNhdGlvbi5zZXRWYWx1ZShkYXRhKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0QXN5bmNGaWx0ZXJzKCkge1xyXG4gICAgdGhpcy50ZXJyaXRvcmllcyQgPSB0aGlzLnNhcEluc3RhbGxlZEluc3RydW1lbnRTZXJ2aWNlLmdldFRlcnJpdG9yeShmYWxzZSk7XHJcbiAgICB0aGlzLmNvdW50cmllcyQgPSB0aGlzLnNhcEluc3RhbGxlZEluc3RydW1lbnRTZXJ2aWNlLmdldENvdW50cnkoZmFsc2UpO1xyXG4gICAgdGhpcy5zdGF0ZXMkID0gb2YoW10pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRTZWFyY2hGb3JtKCkge1xyXG4gICAgdGhpcy5zZWFyY2hGb3JtLmNvbnRyb2xzLmNvdW50cnkudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoY291bnRyeTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHRoaXMuc2VhcmNoRm9ybS5jb250cm9scy5zdGF0ZS5zZXRWYWx1ZSgnJyk7XHJcblxyXG4gICAgICBpZiAoY291bnRyeSkge1xyXG4gICAgICAgIHRoaXMuc3RhdGVzJCA9IHRoaXMuc2FwSW5zdGFsbGVkSW5zdHJ1bWVudFNlcnZpY2UuZ2V0U3RhdGUoY291bnRyeSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zdGF0ZXMkID0gb2YoW10pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGZvcm1cclxuICBjbGFzcz1cInNlYXJjaC1maWx0ZXJzXCJcclxuICBbZm9ybUdyb3VwXT1cInNlYXJjaEZvcm1cIlxyXG4gIChuZ1N1Ym1pdCk9XCJzZWFyY2hTdWJtaXR0ZWQoKVwiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiIFtuZ0NsYXNzXT1cInsgaGlkZTogIXNob3dGaWx0ZXJzIH1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTQgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxuZ3gtc3QtbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlXHJcbiAgICAgICAgI211bHRpc2VsZWN0QXV0b2NvbXBsZXRlXHJcbiAgICAgICAgW2xhYmVsXT1cIlxyXG4gICAgICAgICAgKCdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuYXBwbGljYXRpb24nIHwgdHJhbnNsYXRlKSArXHJcbiAgICAgICAgICAnICgnICtcclxuICAgICAgICAgICgnZ2xvYmFsLm1heCcgfCB0cmFuc2xhdGUpICtcclxuICAgICAgICAgICc6IDEwKSdcclxuICAgICAgICBcIlxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJcclxuICAgICAgICAgICdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuYXBwbGljYXRpb25QbGFjZWhvbGRlcicgfCB0cmFuc2xhdGVcclxuICAgICAgICBcIlxyXG4gICAgICAgIFtnZXRGaWx0ZXJlZE9wdGlvbnNdPVwidGhpcy5nZXRGaWx0ZXJlZE9wdGlvbnNcIlxyXG4gICAgICAgIFtpbml0U2VsZWN0ZWREYXRhXT1cInNlYXJjaEZvcm0uY29udHJvbHMuYXBwbGljYXRpb24udmFsdWVcIlxyXG4gICAgICAgIFttYXhMZW5ndGhTZWxlY3RlZERhdGFdPVwiMTBcIlxyXG4gICAgICAgIChzZWxlY3RlZERhdGFDaGFuZ2VkKT1cImFwcGxpY2F0aW9uU2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgID48L25neC1zdC1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGU+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTQgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJicE5hbWVcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e1xyXG4gICAgICAgICAgICAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50LmFjY291bnROYW1lJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgfX1cIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgKm5nSWY9XCJzZWFyY2hGb3JtLmNvbnRyb2xzLmJwTmFtZS52YWx1ZVwiXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIG1hdFN1ZmZpeFxyXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXJcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImNsZWFySW5wdXRWYWx1ZSgnYnBOYW1lJylcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTQgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0ZWNobmljaWFuTGFzdE5hbWVcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e1xyXG4gICAgICAgICAgICAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50LnRlY2huaWNpYW5MYXN0TmFtZScgfCB0cmFuc2xhdGVcclxuICAgICAgICAgIH19XCJcclxuICAgICAgICAvPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgICpuZ0lmPVwic2VhcmNoRm9ybS5jb250cm9scy50ZWNobmljaWFuTGFzdE5hbWUudmFsdWVcIlxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBtYXRTdWZmaXhcclxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyXCJcclxuICAgICAgICAgIChjbGljayk9XCJjbGVhcklucHV0VmFsdWUoJ3RlY2huaWNpYW5MYXN0TmFtZScpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInJvd1wiIFtuZ0NsYXNzXT1cInsgaGlkZTogIXNob3dGaWx0ZXJzIH1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTQgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZXJpYWxOdW1iZXJcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e1xyXG4gICAgICAgICAgICAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50LnNlcmlhbE51bWJlcicgfCB0cmFuc2xhdGVcclxuICAgICAgICAgIH19XCJcclxuICAgICAgICAvPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgICpuZ0lmPVwic2VhcmNoRm9ybS5jb250cm9scy5zZXJpYWxOdW1iZXIudmFsdWVcIlxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBtYXRTdWZmaXhcclxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyXCJcclxuICAgICAgICAgIChjbGljayk9XCJjbGVhcklucHV0VmFsdWUoJ3NlcmlhbE51bWJlcicpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS00IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaW5zdHJ1bWVudE5vXCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3tcclxuICAgICAgICAgICAgJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5pbnN0cnVtZW50Tm8nIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICB9fVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAqbmdJZj1cInNlYXJjaEZvcm0uY29udHJvbHMuaW5zdHJ1bWVudE5vLnZhbHVlXCJcclxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgbWF0U3VmZml4XHJcbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhclwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiY2xlYXJJbnB1dFZhbHVlKCdpbnN0cnVtZW50Tm8nKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImluc3RydW1lbnREZXNjXCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3tcclxuICAgICAgICAgICAgJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5pbnN0cnVtZW50RGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICB9fVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAqbmdJZj1cInNlYXJjaEZvcm0uY29udHJvbHMuaW5zdHJ1bWVudERlc2MudmFsdWVcIlxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBtYXRTdWZmaXhcclxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyXCJcclxuICAgICAgICAgIChjbGljayk9XCJjbGVhcklucHV0VmFsdWUoJ2luc3RydW1lbnREZXNjJylcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwicm93XCIgW25nQ2xhc3NdPVwieyBoaWRlOiAhc2hvd0ZpbHRlcnMgfVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+e3tcclxuICAgICAgICAgICdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuaW5zdHJ1bWVudFN0YXR1cycgfCB0cmFuc2xhdGVcclxuICAgICAgICB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInN0YXR1c1wiPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIicnXCI+e3sgJ2dsb2JhbC5lbXB0eScgfCB0cmFuc2xhdGUgfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiJ0EnXCI+e3tcclxuICAgICAgICAgICAgJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5zdGF0dXNBJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiJ1InXCI+e3tcclxuICAgICAgICAgICAgJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5zdGF0dXNSJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiJ1QnXCI+e3tcclxuICAgICAgICAgICAgJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5zdGF0dXNUJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiJ0wnXCI+e3tcclxuICAgICAgICAgICAgJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5zdGF0dXNMJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiJ0knXCI+e3tcclxuICAgICAgICAgICAgJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5zdGF0dXNJJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS00IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY3VzdG9tZXJOb1wiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7XHJcbiAgICAgICAgICAgICdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuYWNjb3VudE5vJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgfX1cIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgKm5nSWY9XCJzZWFyY2hGb3JtLmNvbnRyb2xzLmN1c3RvbWVyTm8udmFsdWVcIlxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBtYXRTdWZmaXhcclxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyXCJcclxuICAgICAgICAgIChjbGljayk9XCJjbGVhcklucHV0VmFsdWUoJ2N1c3RvbWVyTm8nKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNCBhbGlnbi1pdGVtcy1jZW50ZXIgcm93XCI+XHJcbiAgICAgIDxuZ3gtc3Qtc2VhcmNoLXNlbGVjdFxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBzZWFyY2hGb3JtPy5nZXQoJ3RlcnJpdG9yeScpICYmXHJcbiAgICAgICAgICAoKHRlcnJpdG9yaWVzJCB8IGFzeW5jKSB8fCBbXSkgYXMgdGVycml0b3JpZXNcclxuICAgICAgICBcIlxyXG4gICAgICAgIFtvcHRpb25zXT1cInRlcnJpdG9yaWVzIHx8IFtdXCJcclxuICAgICAgICBbc2VsZWN0TGFiZWxdPVwiJ2dsb2JhbC50ZXJyaXRvcnknIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICBbb3B0aW9uTGFiZWxQcm9wZXJ0eU5hbWVdPVwiJ25hbWUnXCJcclxuICAgICAgICBbc2VsZWN0Rm9ybUNvbnRyb2xdPVwic2VhcmNoRm9ybS5jb250cm9scy50ZXJyaXRvcnlcIlxyXG4gICAgICAgIFtzZWxlY3RCaW5kVHlwZV09XCInY29udHJvbCdcIlxyXG4gICAgICAgIFtzZWFyY2hMYWJlbF09XCInZ2xvYmFsLnNlYXJjaCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIFt2YWx1ZU1ldGhvZF09XCJnZXRUZXJyaXRvcnlWYWx1ZVwiXHJcbiAgICAgID48L25neC1zdC1zZWFyY2gtc2VsZWN0PlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2dsb2JhbC5yZWZyZXNoJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgKGNsaWNrKT1cInJlZnJlc2hUZXJyaXRvcmllcygpXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxpIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj5yZWZyZXNoPC9pPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJyb3dcIiBbbmdDbGFzc109XCJ7IGhpZGU6ICFzaG93RmlsdGVycyB9XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0zIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY2l0eVwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdnbG9iYWwuY2l0eScgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgKm5nSWY9XCJzZWFyY2hGb3JtLmNvbnRyb2xzLmNpdHkudmFsdWVcIlxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBtYXRTdWZmaXhcclxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyXCJcclxuICAgICAgICAgIChjbGljayk9XCJjbGVhcklucHV0VmFsdWUoJ2NpdHknKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tMyBhbGlnbi1pdGVtcy1jZW50ZXIgcm93XCI+XHJcbiAgICAgIDxuZ3gtc3Qtc2VhcmNoLXNlbGVjdFxyXG4gICAgICAgICpuZ0lmPVwic2VhcmNoRm9ybT8uZ2V0KCdzdGF0ZScpICYmICgoc3RhdGVzJCB8IGFzeW5jKSB8fCBbXSkgYXMgc3RhdGVzXCJcclxuICAgICAgICBbb3B0aW9uc109XCJzdGF0ZXMgfHwgW11cIlxyXG4gICAgICAgIFtzZWxlY3RMYWJlbF09XCInZ2xvYmFsLnN0YXRlJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgW29wdGlvbkxhYmVsUHJvcGVydHlOYW1lXT1cIiduYW1lJ1wiXHJcbiAgICAgICAgW3NlbGVjdEZvcm1Db250cm9sXT1cInNlYXJjaEZvcm0uY29udHJvbHMuc3RhdGVcIlxyXG4gICAgICAgIFtzZWxlY3RCaW5kVHlwZV09XCInY29udHJvbCdcIlxyXG4gICAgICAgIFtzZWFyY2hMYWJlbF09XCInZ2xvYmFsLnNlYXJjaCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIFt2YWx1ZU1ldGhvZF09XCJnZXRTdGF0ZVZhbHVlXCJcclxuICAgICAgPjwvbmd4LXN0LXNlYXJjaC1zZWxlY3Q+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICBbbWF0VG9vbHRpcF09XCInZ2xvYmFsLnJlZnJlc2gnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiIXNlYXJjaEZvcm0uY29udHJvbHMuY291bnRyeS52YWx1ZVwiXHJcbiAgICAgICAgKGNsaWNrKT1cInJlZnJlc2hTdGF0ZXMoKVwiXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgID5cclxuICAgICAgICA8aSBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+cmVmcmVzaDwvaT5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTMgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb3VudHlcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnZ2xvYmFsLmNvdW50eScgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgKm5nSWY9XCJzZWFyY2hGb3JtLmNvbnRyb2xzLmNvdW50eS52YWx1ZVwiXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIG1hdFN1ZmZpeFxyXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXJcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImNsZWFySW5wdXRWYWx1ZSgnY291bnR5JylcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTMgYWxpZ24taXRlbXMtY2VudGVyIHJvd1wiPlxyXG4gICAgICA8bmd4LXN0LXNlYXJjaC1zZWxlY3RcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgc2VhcmNoRm9ybT8uZ2V0KCdjb3VudHJ5JykgJiZcclxuICAgICAgICAgICgoY291bnRyaWVzJCB8IGFzeW5jKSB8fCBbXSkgYXMgY291bnRyaWVzXHJcbiAgICAgICAgXCJcclxuICAgICAgICBbb3B0aW9uc109XCJjb3VudHJpZXMgfHwgW11cIlxyXG4gICAgICAgIFtzZWxlY3RMYWJlbF09XCInZ2xvYmFsLmNvdW50cnknIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICBbb3B0aW9uTGFiZWxQcm9wZXJ0eU5hbWVdPVwiJ25hbWUnXCJcclxuICAgICAgICBbc2VsZWN0Rm9ybUNvbnRyb2xdPVwic2VhcmNoRm9ybS5jb250cm9scy5jb3VudHJ5XCJcclxuICAgICAgICBbc2VsZWN0QmluZFR5cGVdPVwiJ2NvbnRyb2wnXCJcclxuICAgICAgICBbc2VhcmNoTGFiZWxdPVwiJ2dsb2JhbC5zZWFyY2gnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICBbdmFsdWVNZXRob2RdPVwiZ2V0Q291bnRyeVZhbHVlXCJcclxuICAgICAgPjwvbmd4LXN0LXNlYXJjaC1zZWxlY3Q+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICBbbWF0VG9vbHRpcF09XCInZ2xvYmFsLnJlZnJlc2gnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAoY2xpY2spPVwicmVmcmVzaENvdW50cmllcygpXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxpIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj5yZWZyZXNoPC9pPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJyb3dcIiBbbmdDbGFzc109XCJ7IGhpZGU6ICFzaG93RmlsdGVycyB9XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0zIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57e1xyXG4gICAgICAgICAgJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5pbnN0YWxsYXRpb25EYXRlRnJvbScgfCB0cmFuc2xhdGVcclxuICAgICAgICB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgIFttYXREYXRlcGlja2VyXT1cInBpY2tlcjFcIlxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaW5zdGFsbGF0aW9uRGF0ZUZyb21cIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZVxyXG4gICAgICAgICAgbWF0U3VmZml4XHJcbiAgICAgICAgICBbZm9yXT1cInBpY2tlcjFcIlxyXG4gICAgICAgID48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI3BpY2tlcjE+PC9tYXQtZGF0ZXBpY2tlcj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tMyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+e3tcclxuICAgICAgICAgICdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuaW5zdGFsbGF0aW9uRGF0ZVRvJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyMlwiXHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpbnN0YWxsYXRpb25EYXRlVG9cIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZVxyXG4gICAgICAgICAgbWF0U3VmZml4XHJcbiAgICAgICAgICBbZm9yXT1cInBpY2tlcjJcIlxyXG4gICAgICAgID48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI3BpY2tlcjI+PC9tYXQtZGF0ZXBpY2tlcj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tMyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImVuZFVzZXJOYW1lXCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3tcclxuICAgICAgICAgICAgJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5lbmRDdXN0b21lck5hbWUnIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICB9fVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAqbmdJZj1cInNlYXJjaEZvcm0uY29udHJvbHMuZW5kVXNlck5hbWUudmFsdWVcIlxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBtYXRTdWZmaXhcclxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyXCJcclxuICAgICAgICAgIChjbGljayk9XCJjbGVhcklucHV0VmFsdWUoJ2VuZFVzZXJOYW1lJylcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTMgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJlbmRVc2VyQ29kZVwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7XHJcbiAgICAgICAgICAgICdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuZW5kQ3VzdG9tZXJObycgfCB0cmFuc2xhdGVcclxuICAgICAgICAgIH19XCJcclxuICAgICAgICAvPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgICpuZ0lmPVwic2VhcmNoRm9ybS5jb250cm9scy5lbmRVc2VyQ29kZS52YWx1ZVwiXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIG1hdFN1ZmZpeFxyXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXJcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImNsZWFySW5wdXRWYWx1ZSgnZW5kVXNlckNvZGUnKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIiBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDEwcHhcIj5cclxuICAgIDxidXR0b25cclxuICAgICAgbWF0LXJhaXNlZC1idXR0b25cclxuICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgIChjbGljayk9XCJjbGVhckFsbEZpbHRlcnMoKVwiXHJcbiAgICAgICpuZ0lmPVwic2hvd0ZpbHRlcnNcIlxyXG4gICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTBweFwiXHJcbiAgICA+XHJcbiAgICAgIENsZWFyIEFsbFxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBjb2xvcj1cImFjY2VudFwiXHJcbiAgICAgIChjbGljayk9XCJzaG93RmlsdGVycyA9ICFzaG93RmlsdGVyc1wiXHJcbiAgICA+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93RmlsdGVyc1wiPlxyXG4gICAgICAgIHt7ICdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuaGlkZUZpbHRlcnMnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNob3dGaWx0ZXJzXCI+XHJcbiAgICAgICAge3sgJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5zaG93RmlsdGVycycgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b25cclxuICAgICAgKm5nSWY9XCJzaG93RmlsdGVyc1wiXHJcbiAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXHJcbiAgICAgIHR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAxMHB4XCJcclxuICAgID5cclxuICAgICAgU2VhcmNoXHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9mb3JtPlxyXG4iXX0=
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FwLWluc3RhbGxlZC1pbnN0cnVtZW50LWxpc3Qtc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdC1zYXAtaW5zdGFsbGVkLWluc3RydW1lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC1zZWFyY2gvc2FwLWluc3RhbGxlZC1pbnN0cnVtZW50LWxpc3Qtc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdC1zYXAtaW5zdGFsbGVkLWluc3RydW1lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC1zZWFyY2gvc2FwLWluc3RhbGxlZC1pbnN0cnVtZW50LWxpc3Qtc2VhcmNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFpQixNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWpILE9BQU8sRUFBYSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZXBDLE1BQU0sT0FBTyx5Q0FBeUM7SUErQnBELFlBQ1ksNkJBQTZELEVBQzdELE1BQWMsRUFDZCxjQUE4QixFQUM5QixFQUEwQjtRQUgxQixrQ0FBNkIsR0FBN0IsNkJBQTZCLENBQWdDO1FBQzdELFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsT0FBRSxHQUFGLEVBQUUsQ0FBd0I7UUEvQnRDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQWdDLENBQUM7UUFFbEUs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SUFBSSxDQUFDLDZCQUE2QixDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQWUsRUFBRSxFQUFFO1lBQzFFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFNUMsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3JFO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ3ZCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztzSUFoSVUseUNBQXlDOzBIQUF6Qyx5Q0FBeUMsbVFDakJ0RCxzOWFBa1pBOzJGRGpZYSx5Q0FBeUM7a0JBTnJELFNBQVM7K0JBQ0UsMENBQTBDLG1CQUduQyx1QkFBdUIsQ0FBQyxNQUFNOzRNQUdULHVCQUF1QjtzQkFBNUQsU0FBUzt1QkFBQyx5QkFBeUI7Z0JBR3BDLGNBQWM7c0JBRGIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Tm9uTnVsbGFibGVGb3JtQnVpbGRlcn0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2Z9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7U2FwVGVycml0b3J5TW9kZWx9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvc2FwLXRlcnJpdG9yeS5tb2RlbFwiO1xyXG5pbXBvcnQge1NhcFN0YXRlTW9kZWx9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvc2FwLXN0YXRlLm1vZGVsXCI7XHJcbmltcG9ydCB7U2FwQ291bnRyeU1vZGVsfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL3NhcC1jb3VudHJ5Lm1vZGVsXCI7XHJcbmltcG9ydCB7Tmd4U3RNdWx0aXNlbGVjdEF1dG9jb21wbGV0ZUNvbXBvbmVudH0gZnJvbSBcIm5neC1zdC1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGVcIjtcclxuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7U2FwSW5zdGFsbGVkSW5zdHJ1bWVudHNTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvc2FwLWluc3RhbGxlZC1pbnN0cnVtZW50cy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7SW5zdGFsbGVkSW5zdHJ1bWVudEZvcm1Nb2RlbH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9pbnN0YWxsZWQtaW5zdHJ1bWVudC1mb3JtLm1vZGVsXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC1zZWFyY2gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC1zZWFyY2guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudC1saXN0LXNlYXJjaC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYXBJbnN0YWxsZWRJbnN0cnVtZW50TGlzdFNlYXJjaENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnbXVsdGlzZWxlY3RBdXRvY29tcGxldGUnKSBtdWx0aXNlbGVjdEF1dG9jb21wbGV0ZTogTmd4U3RNdWx0aXNlbGVjdEF1dG9jb21wbGV0ZUNvbXBvbmVudDtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZmlsdGVyc0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEluc3RhbGxlZEluc3RydW1lbnRGb3JtTW9kZWw+KCk7XHJcblxyXG4gIHNob3dGaWx0ZXJzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2VhcmNoRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgYXBwbGljYXRpb246IFs8c3RyaW5nW10+W11dLFxyXG4gICAgc2VyaWFsTnVtYmVyOiAnJyxcclxuICAgIGluc3RydW1lbnRObzogJycsXHJcbiAgICBpbnN0cnVtZW50RGVzYzogJycsXHJcbiAgICBjdXN0b21lck5vOiAnJyxcclxuICAgIGJwTmFtZTogJycsXHJcbiAgICBjaXR5OiAnJyxcclxuICAgIGNvdW50eTogJycsXHJcbiAgICBlbmRVc2VyTmFtZTogJycsXHJcbiAgICBlbmRVc2VyQ29kZTogJycsXHJcbiAgICB0ZXJyaXRvcnk6IDxudW1iZXIgfCBudWxsPm51bGwsXHJcbiAgICB0ZWNobmljaWFuTGFzdE5hbWU6ICcnLFxyXG4gICAgY291bnRyeTogJycsXHJcbiAgICBzdGF0ZTogJycsXHJcbiAgICBzdGF0dXM6ICcnLFxyXG4gICAgaW5zdGFsbGF0aW9uRGF0ZUZyb206IDxEYXRlIHwgbnVsbD5udWxsLFxyXG4gICAgaW5zdGFsbGF0aW9uRGF0ZVRvOiA8RGF0ZSB8IG51bGw+bnVsbFxyXG4gIH0pO1xyXG5cclxuICB0ZXJyaXRvcmllcyQ6IE9ic2VydmFibGU8U2FwVGVycml0b3J5TW9kZWxbXT47XHJcbiAgc3RhdGVzJDogT2JzZXJ2YWJsZTxTYXBTdGF0ZU1vZGVsW10+O1xyXG4gIGNvdW50cmllcyQ6IE9ic2VydmFibGU8U2FwQ291bnRyeU1vZGVsW10+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgICAgcHJpdmF0ZSBzYXBJbnN0YWxsZWRJbnN0cnVtZW50U2VydmljZTogU2FwSW5zdGFsbGVkSW5zdHJ1bWVudHNTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgcHJpdmF0ZSBmYjogTm9uTnVsbGFibGVGb3JtQnVpbGRlclxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRTZWFyY2hGb3JtKCk7XHJcbiAgICB0aGlzLnNldEFzeW5jRmlsdGVycygpO1xyXG5cclxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zS2V5cyA9IE9iamVjdC5rZXlzKHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMgfHwge30pO1xyXG5cclxuICAgIGlmIChxdWVyeVBhcmFtc0tleXMubGVuZ3RoID4gMikge1xyXG4gICAgICB0aGlzLnNob3dGaWx0ZXJzID0gdHJ1ZTtcclxuXHJcbiAgICAgIHF1ZXJ5UGFyYW1zS2V5cy5mb3JFYWNoKChxdWVyeVBhcmFtKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLnNlYXJjaEZvcm0uZ2V0KHF1ZXJ5UGFyYW0pO1xyXG4gICAgICAgIGlmIChmb3JtQ29udHJvbCkge1xyXG4gICAgICAgICAgaWYgKHF1ZXJ5UGFyYW0gPT09ICdpbnN0YWxsYXRpb25EYXRlRnJvbScgfHwgcXVlcnlQYXJhbSA9PT0gJ2luc3RhbGxhdGlvbkRhdGVUbycpIHtcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1txdWVyeVBhcmFtXSA/IG5ldyBEYXRlKHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbcXVlcnlQYXJhbV0pIDogbnVsbCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBmb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zW3F1ZXJ5UGFyYW1dKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJBbGxGaWx0ZXJzKCkge1xyXG4gICAgdGhpcy5zZWFyY2hGb3JtLnJlc2V0KCk7XHJcbiAgICB0aGlzLm11bHRpc2VsZWN0QXV0b2NvbXBsZXRlLmNsZWFyU2VsZWN0ZWREYXRhKCk7XHJcbiAgICB0aGlzLnNlYXJjaFN1Ym1pdHRlZCgpO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaFRlcnJpdG9yaWVzKCkge1xyXG4gICAgdGhpcy5zZWFyY2hGb3JtLmNvbnRyb2xzLnRlcnJpdG9yeS5zZXRWYWx1ZShudWxsKTtcclxuICAgIHRoaXMudGVycml0b3JpZXMkID0gdGhpcy5zYXBJbnN0YWxsZWRJbnN0cnVtZW50U2VydmljZS5nZXRUZXJyaXRvcnkodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoQ291bnRyaWVzKCkge1xyXG4gICAgdGhpcy5zZWFyY2hGb3JtLmNvbnRyb2xzLmNvdW50cnkuc2V0VmFsdWUoJycpO1xyXG4gICAgdGhpcy5jb3VudHJpZXMkID0gdGhpcy5zYXBJbnN0YWxsZWRJbnN0cnVtZW50U2VydmljZS5nZXRDb3VudHJ5KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaFN0YXRlcygpIHtcclxuICAgIHRoaXMuc2VhcmNoRm9ybS5jb250cm9scy5zdGF0ZS5zZXRWYWx1ZSgnJyk7XHJcbiAgICB0aGlzLnN0YXRlcyQgPSB0aGlzLnNhcEluc3RhbGxlZEluc3RydW1lbnRTZXJ2aWNlLmdldFN0YXRlKHRoaXMuc2VhcmNoRm9ybS5jb250cm9scy5jb3VudHJ5LnZhbHVlLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIGdldENvdW50cnlWYWx1ZShjb3VudHJ5OiBTYXBDb3VudHJ5TW9kZWwpIHtcclxuICAgIHJldHVybiBjb3VudHJ5LmlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RhdGVWYWx1ZShzdGF0ZTogU2FwU3RhdGVNb2RlbCkge1xyXG4gICAgcmV0dXJuIHN0YXRlLmlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGVycml0b3J5VmFsdWUodGVycml0b3J5OiBTYXBUZXJyaXRvcnlNb2RlbCkge1xyXG4gICAgcmV0dXJuIHRlcnJpdG9yeS5pZDtcclxuICB9XHJcblxyXG4gIHNlYXJjaFN1Ym1pdHRlZCgpIHtcclxuICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSB0aGlzLnNlYXJjaEZvcm0uZ2V0UmF3VmFsdWUoKTtcclxuXHJcbiAgICB0aGlzLmZpbHRlcnNDaGFuZ2VkLmVtaXQoZm9ybVZhbHVlcyk7XHJcbiAgfVxyXG5cclxuICBjbGVhcklucHV0VmFsdWUoZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VhcmNoRm9ybS5nZXQoZm9ybUNvbnRyb2xOYW1lKSEuc2V0VmFsdWUoJycpO1xyXG4gICAgdGhpcy5zZWFyY2hTdWJtaXR0ZWQoKTtcclxuICB9XHJcblxyXG4gIGdldEZpbHRlcmVkT3B0aW9ucyA9IChzZWFyY2g6IHN0cmluZykgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2FwSW5zdGFsbGVkSW5zdHJ1bWVudFNlcnZpY2UuZ2V0QXBwbGljYXRpb25TZWFyY2goc2VhcmNoKTtcclxuICB9XHJcblxyXG4gIGFwcGxpY2F0aW9uU2VsZWN0ZWQoZGF0YTogc3RyaW5nW10pIHtcclxuICAgIHRoaXMuc2VhcmNoRm9ybS5jb250cm9scy5hcHBsaWNhdGlvbi5zZXRWYWx1ZShkYXRhKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0QXN5bmNGaWx0ZXJzKCkge1xyXG4gICAgdGhpcy50ZXJyaXRvcmllcyQgPSB0aGlzLnNhcEluc3RhbGxlZEluc3RydW1lbnRTZXJ2aWNlLmdldFRlcnJpdG9yeShmYWxzZSk7XHJcbiAgICB0aGlzLmNvdW50cmllcyQgPSB0aGlzLnNhcEluc3RhbGxlZEluc3RydW1lbnRTZXJ2aWNlLmdldENvdW50cnkoZmFsc2UpO1xyXG4gICAgdGhpcy5zdGF0ZXMkID0gb2YoW10pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRTZWFyY2hGb3JtKCkge1xyXG4gICAgdGhpcy5zZWFyY2hGb3JtLmNvbnRyb2xzLmNvdW50cnkudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoY291bnRyeTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHRoaXMuc2VhcmNoRm9ybS5jb250cm9scy5zdGF0ZS5zZXRWYWx1ZSgnJyk7XHJcblxyXG4gICAgICBpZiAoY291bnRyeSkge1xyXG4gICAgICAgIHRoaXMuc3RhdGVzJCA9IHRoaXMuc2FwSW5zdGFsbGVkSW5zdHJ1bWVudFNlcnZpY2UuZ2V0U3RhdGUoY291bnRyeSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zdGF0ZXMkID0gb2YoW10pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGZvcm1cclxuICBjbGFzcz1cInNlYXJjaC1maWx0ZXJzXCJcclxuICBbZm9ybUdyb3VwXT1cInNlYXJjaEZvcm1cIlxyXG4gIChuZ1N1Ym1pdCk9XCJzZWFyY2hTdWJtaXR0ZWQoKVwiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiIFtuZ0NsYXNzXT1cInsgaGlkZTogIXNob3dGaWx0ZXJzIH1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTQgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxuZ3gtc3QtbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlXHJcbiAgICAgICAgI211bHRpc2VsZWN0QXV0b2NvbXBsZXRlXHJcbiAgICAgICAgW2xhYmVsXT1cIlxyXG4gICAgICAgICAgKCdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuYXBwbGljYXRpb24nIHwgdHJhbnNsYXRlKSArXHJcbiAgICAgICAgICAnICgnICtcclxuICAgICAgICAgICgnZ2xvYmFsLm1heCcgfCB0cmFuc2xhdGUpICtcclxuICAgICAgICAgICc6IDEwKSdcclxuICAgICAgICBcIlxyXG4gICAgICAgIFtzZWFyY2hMYWJlbF09XCJcclxuICAgICAgICAgICdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuYXBwbGljYXRpb25QbGFjZWhvbGRlcicgfCB0cmFuc2xhdGVcclxuICAgICAgICBcIlxyXG4gICAgICAgIFtzZXR0aW5nc109XCJ7XHJcbiAgICAgICAgICBnZXRGaWx0ZXJlZE9wdGlvbnM6IHRoaXMuZ2V0RmlsdGVyZWRPcHRpb25zXHJcbiAgICAgICAgfVwiXHJcbiAgICAgICAgW2luaXRTZWxlY3RlZERhdGFdPVwic2VhcmNoRm9ybS5jb250cm9scy5hcHBsaWNhdGlvbi52YWx1ZVwiXHJcbiAgICAgICAgW21heExlbmd0aFNlbGVjdGVkRGF0YV09XCIxMFwiXHJcbiAgICAgICAgKHNlbGVjdGVkRGF0YUNoYW5nZWQpPVwiYXBwbGljYXRpb25TZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgPjwvbmd4LXN0LW11bHRpc2VsZWN0LWF1dG9jb21wbGV0ZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImJwTmFtZVwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7XHJcbiAgICAgICAgICAgICdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuYWNjb3VudE5hbWUnIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICB9fVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAqbmdJZj1cInNlYXJjaEZvcm0uY29udHJvbHMuYnBOYW1lLnZhbHVlXCJcclxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgbWF0U3VmZml4XHJcbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhclwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiY2xlYXJJbnB1dFZhbHVlKCdicE5hbWUnKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRlY2huaWNpYW5MYXN0TmFtZVwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7XHJcbiAgICAgICAgICAgICdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQudGVjaG5pY2lhbkxhc3ROYW1lJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgfX1cIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgKm5nSWY9XCJzZWFyY2hGb3JtLmNvbnRyb2xzLnRlY2huaWNpYW5MYXN0TmFtZS52YWx1ZVwiXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIG1hdFN1ZmZpeFxyXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXJcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImNsZWFySW5wdXRWYWx1ZSgndGVjaG5pY2lhbkxhc3ROYW1lJylcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwicm93XCIgW25nQ2xhc3NdPVwieyBoaWRlOiAhc2hvd0ZpbHRlcnMgfVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlcmlhbE51bWJlclwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7XHJcbiAgICAgICAgICAgICdzYXBBZG1pbkluc3RhbGxlZEluc3RydW1lbnQuc2VyaWFsTnVtYmVyJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgfX1cIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgKm5nSWY9XCJzZWFyY2hGb3JtLmNvbnRyb2xzLnNlcmlhbE51bWJlci52YWx1ZVwiXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIG1hdFN1ZmZpeFxyXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXJcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImNsZWFySW5wdXRWYWx1ZSgnc2VyaWFsTnVtYmVyJylcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTQgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpbnN0cnVtZW50Tm9cIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e1xyXG4gICAgICAgICAgICAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50Lmluc3RydW1lbnRObycgfCB0cmFuc2xhdGVcclxuICAgICAgICAgIH19XCJcclxuICAgICAgICAvPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgICpuZ0lmPVwic2VhcmNoRm9ybS5jb250cm9scy5pbnN0cnVtZW50Tm8udmFsdWVcIlxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBtYXRTdWZmaXhcclxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyXCJcclxuICAgICAgICAgIChjbGljayk9XCJjbGVhcklucHV0VmFsdWUoJ2luc3RydW1lbnRObycpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS00IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaW5zdHJ1bWVudERlc2NcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e1xyXG4gICAgICAgICAgICAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50Lmluc3RydW1lbnREZXNjcmlwdGlvbicgfCB0cmFuc2xhdGVcclxuICAgICAgICAgIH19XCJcclxuICAgICAgICAvPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgICpuZ0lmPVwic2VhcmNoRm9ybS5jb250cm9scy5pbnN0cnVtZW50RGVzYy52YWx1ZVwiXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIG1hdFN1ZmZpeFxyXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXJcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImNsZWFySW5wdXRWYWx1ZSgnaW5zdHJ1bWVudERlc2MnKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJyb3dcIiBbbmdDbGFzc109XCJ7IGhpZGU6ICFzaG93RmlsdGVycyB9XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS00IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57e1xyXG4gICAgICAgICAgJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5pbnN0cnVtZW50U3RhdHVzJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwic3RhdHVzXCI+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiJydcIj57eyAnZ2xvYmFsLmVtcHR5JyB8IHRyYW5zbGF0ZSB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCInQSdcIj57e1xyXG4gICAgICAgICAgICAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50LnN0YXR1c0EnIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCInUidcIj57e1xyXG4gICAgICAgICAgICAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50LnN0YXR1c1InIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCInVCdcIj57e1xyXG4gICAgICAgICAgICAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50LnN0YXR1c1QnIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCInTCdcIj57e1xyXG4gICAgICAgICAgICAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50LnN0YXR1c0wnIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCInSSdcIj57e1xyXG4gICAgICAgICAgICAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50LnN0YXR1c0knIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTQgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjdXN0b21lck5vXCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3tcclxuICAgICAgICAgICAgJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5hY2NvdW50Tm8nIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICB9fVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAqbmdJZj1cInNlYXJjaEZvcm0uY29udHJvbHMuY3VzdG9tZXJOby52YWx1ZVwiXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIG1hdFN1ZmZpeFxyXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXJcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImNsZWFySW5wdXRWYWx1ZSgnY3VzdG9tZXJObycpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS00IGFsaWduLWl0ZW1zLWNlbnRlciByb3dcIj5cclxuICAgICAgPG5neC1zdC1zZWFyY2gtc2VsZWN0XHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIHNlYXJjaEZvcm0/LmdldCgndGVycml0b3J5JykgJiZcclxuICAgICAgICAgICgodGVycml0b3JpZXMkIHwgYXN5bmMpIHx8IFtdKSBhcyB0ZXJyaXRvcmllc1xyXG4gICAgICAgIFwiXHJcbiAgICAgICAgW29wdGlvbnNdPVwidGVycml0b3JpZXMgfHwgW11cIlxyXG4gICAgICAgIFtzZWxlY3RMYWJlbF09XCInZ2xvYmFsLnRlcnJpdG9yeScgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIFtvcHRpb25MYWJlbFByb3BlcnR5TmFtZV09XCInbmFtZSdcIlxyXG4gICAgICAgIFtzZWxlY3RGb3JtQ29udHJvbF09XCJzZWFyY2hGb3JtLmNvbnRyb2xzLnRlcnJpdG9yeVwiXHJcbiAgICAgICAgW3NlbGVjdEJpbmRUeXBlXT1cIidjb250cm9sJ1wiXHJcbiAgICAgICAgW3NlYXJjaExhYmVsXT1cIidnbG9iYWwuc2VhcmNoJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgW3ZhbHVlTWV0aG9kXT1cImdldFRlcnJpdG9yeVZhbHVlXCJcclxuICAgICAgPjwvbmd4LXN0LXNlYXJjaC1zZWxlY3Q+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICBbbWF0VG9vbHRpcF09XCInZ2xvYmFsLnJlZnJlc2gnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAoY2xpY2spPVwicmVmcmVzaFRlcnJpdG9yaWVzKClcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPnJlZnJlc2g8L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInJvd1wiIFtuZ0NsYXNzXT1cInsgaGlkZTogIXNob3dGaWx0ZXJzIH1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTMgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjaXR5XCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2dsb2JhbC5jaXR5JyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAqbmdJZj1cInNlYXJjaEZvcm0uY29udHJvbHMuY2l0eS52YWx1ZVwiXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIG1hdFN1ZmZpeFxyXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXJcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImNsZWFySW5wdXRWYWx1ZSgnY2l0eScpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0zIGFsaWduLWl0ZW1zLWNlbnRlciByb3dcIj5cclxuICAgICAgPG5neC1zdC1zZWFyY2gtc2VsZWN0XHJcbiAgICAgICAgKm5nSWY9XCJzZWFyY2hGb3JtPy5nZXQoJ3N0YXRlJykgJiYgKChzdGF0ZXMkIHwgYXN5bmMpIHx8IFtdKSBhcyBzdGF0ZXNcIlxyXG4gICAgICAgIFtvcHRpb25zXT1cInN0YXRlcyB8fCBbXVwiXHJcbiAgICAgICAgW3NlbGVjdExhYmVsXT1cIidnbG9iYWwuc3RhdGUnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICBbb3B0aW9uTGFiZWxQcm9wZXJ0eU5hbWVdPVwiJ25hbWUnXCJcclxuICAgICAgICBbc2VsZWN0Rm9ybUNvbnRyb2xdPVwic2VhcmNoRm9ybS5jb250cm9scy5zdGF0ZVwiXHJcbiAgICAgICAgW3NlbGVjdEJpbmRUeXBlXT1cIidjb250cm9sJ1wiXHJcbiAgICAgICAgW3NlYXJjaExhYmVsXT1cIidnbG9iYWwuc2VhcmNoJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgW3ZhbHVlTWV0aG9kXT1cImdldFN0YXRlVmFsdWVcIlxyXG4gICAgICA+PC9uZ3gtc3Qtc2VhcmNoLXNlbGVjdD5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgIFttYXRUb29sdGlwXT1cIidnbG9iYWwucmVmcmVzaCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCIhc2VhcmNoRm9ybS5jb250cm9scy5jb3VudHJ5LnZhbHVlXCJcclxuICAgICAgICAoY2xpY2spPVwicmVmcmVzaFN0YXRlcygpXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxpIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj5yZWZyZXNoPC9pPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tMyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvdW50eVwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdnbG9iYWwuY291bnR5JyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAqbmdJZj1cInNlYXJjaEZvcm0uY29udHJvbHMuY291bnR5LnZhbHVlXCJcclxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgbWF0U3VmZml4XHJcbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhclwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiY2xlYXJJbnB1dFZhbHVlKCdjb3VudHknKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tMyBhbGlnbi1pdGVtcy1jZW50ZXIgcm93XCI+XHJcbiAgICAgIDxuZ3gtc3Qtc2VhcmNoLXNlbGVjdFxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBzZWFyY2hGb3JtPy5nZXQoJ2NvdW50cnknKSAmJlxyXG4gICAgICAgICAgKChjb3VudHJpZXMkIHwgYXN5bmMpIHx8IFtdKSBhcyBjb3VudHJpZXNcclxuICAgICAgICBcIlxyXG4gICAgICAgIFtvcHRpb25zXT1cImNvdW50cmllcyB8fCBbXVwiXHJcbiAgICAgICAgW3NlbGVjdExhYmVsXT1cIidnbG9iYWwuY291bnRyeScgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIFtvcHRpb25MYWJlbFByb3BlcnR5TmFtZV09XCInbmFtZSdcIlxyXG4gICAgICAgIFtzZWxlY3RGb3JtQ29udHJvbF09XCJzZWFyY2hGb3JtLmNvbnRyb2xzLmNvdW50cnlcIlxyXG4gICAgICAgIFtzZWxlY3RCaW5kVHlwZV09XCInY29udHJvbCdcIlxyXG4gICAgICAgIFtzZWFyY2hMYWJlbF09XCInZ2xvYmFsLnNlYXJjaCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIFt2YWx1ZU1ldGhvZF09XCJnZXRDb3VudHJ5VmFsdWVcIlxyXG4gICAgICA+PC9uZ3gtc3Qtc2VhcmNoLXNlbGVjdD5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgIFttYXRUb29sdGlwXT1cIidnbG9iYWwucmVmcmVzaCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIChjbGljayk9XCJyZWZyZXNoQ291bnRyaWVzKClcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPnJlZnJlc2g8L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInJvd1wiIFtuZ0NsYXNzXT1cInsgaGlkZTogIXNob3dGaWx0ZXJzIH1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTMgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LWxhYmVsPnt7XHJcbiAgICAgICAgICAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50Lmluc3RhbGxhdGlvbkRhdGVGcm9tJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyMVwiXHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpbnN0YWxsYXRpb25EYXRlRnJvbVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlXHJcbiAgICAgICAgICBtYXRTdWZmaXhcclxuICAgICAgICAgIFtmb3JdPVwicGlja2VyMVwiXHJcbiAgICAgICAgPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjcGlja2VyMT48L21hdC1kYXRlcGlja2VyPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0zIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57e1xyXG4gICAgICAgICAgJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5pbnN0YWxsYXRpb25EYXRlVG8nIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJwaWNrZXIyXCJcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImluc3RhbGxhdGlvbkRhdGVUb1wiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlXHJcbiAgICAgICAgICBtYXRTdWZmaXhcclxuICAgICAgICAgIFtmb3JdPVwicGlja2VyMlwiXHJcbiAgICAgICAgPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjcGlja2VyMj48L21hdC1kYXRlcGlja2VyPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0zIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZW5kVXNlck5hbWVcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e1xyXG4gICAgICAgICAgICAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50LmVuZEN1c3RvbWVyTmFtZScgfCB0cmFuc2xhdGVcclxuICAgICAgICAgIH19XCJcclxuICAgICAgICAvPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgICpuZ0lmPVwic2VhcmNoRm9ybS5jb250cm9scy5lbmRVc2VyTmFtZS52YWx1ZVwiXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIG1hdFN1ZmZpeFxyXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXJcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImNsZWFySW5wdXRWYWx1ZSgnZW5kVXNlck5hbWUnKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tMyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImVuZFVzZXJDb2RlXCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3tcclxuICAgICAgICAgICAgJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5lbmRDdXN0b21lck5vJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgfX1cIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgKm5nSWY9XCJzZWFyY2hGb3JtLmNvbnRyb2xzLmVuZFVzZXJDb2RlLnZhbHVlXCJcclxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgbWF0U3VmZml4XHJcbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhclwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiY2xlYXJJbnB1dFZhbHVlKCdlbmRVc2VyQ29kZScpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMTBweFwiPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBtYXQtcmFpc2VkLWJ1dHRvblxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgKGNsaWNrKT1cImNsZWFyQWxsRmlsdGVycygpXCJcclxuICAgICAgKm5nSWY9XCJzaG93RmlsdGVyc1wiXHJcbiAgICAgIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxMHB4XCJcclxuICAgID5cclxuICAgICAgQ2xlYXIgQWxsXHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b25cclxuICAgICAgbWF0LXJhaXNlZC1idXR0b25cclxuICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgIGNvbG9yPVwiYWNjZW50XCJcclxuICAgICAgKGNsaWNrKT1cInNob3dGaWx0ZXJzID0gIXNob3dGaWx0ZXJzXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dGaWx0ZXJzXCI+XHJcbiAgICAgICAge3sgJ3NhcEFkbWluSW5zdGFsbGVkSW5zdHJ1bWVudC5oaWRlRmlsdGVycycgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2hvd0ZpbHRlcnNcIj5cclxuICAgICAgICB7eyAnc2FwQWRtaW5JbnN0YWxsZWRJbnN0cnVtZW50LnNob3dGaWx0ZXJzJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICAqbmdJZj1cInNob3dGaWx0ZXJzXCJcclxuICAgICAgbWF0LXJhaXNlZC1idXR0b25cclxuICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDEwcHhcIlxyXG4gICAgPlxyXG4gICAgICBTZWFyY2hcclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Zvcm0+XHJcbiJdfQ==
|
|
@@ -45,7 +45,7 @@ export class SapInstalledInstrumentsService {
|
|
|
45
45
|
search.sortByColumn = InstalledInstrumentTableColumnsMapperEnum[sort.active];
|
|
46
46
|
}
|
|
47
47
|
return this.http
|
|
48
|
-
.post(this.config.api_base_uri + '/
|
|
48
|
+
.post(this.config.api_base_uri + this.config.base_uri + '/installedInstrument/list', search)
|
|
49
49
|
.pipe(map((res) => {
|
|
50
50
|
return res.map(installInstrument => ({
|
|
51
51
|
...installInstrument,
|
|
@@ -59,43 +59,50 @@ export class SapInstalledInstrumentsService {
|
|
|
59
59
|
}
|
|
60
60
|
getInstalledInstrument(eqCard) {
|
|
61
61
|
const params = new HttpParams().set('eqCard', eqCard);
|
|
62
|
-
return this.http.get(this.config.api_base_uri + '/
|
|
62
|
+
return this.http.get(this.config.api_base_uri + this.config.base_uri + '/installedInstrument', { params });
|
|
63
63
|
}
|
|
64
64
|
getTerritory(refresh = false) {
|
|
65
65
|
const params = new HttpParams().set('refresh', refresh);
|
|
66
66
|
return this.http.get(this.config.api_base_uri +
|
|
67
|
-
|
|
67
|
+
this.config.base_uri +
|
|
68
|
+
'/installedInstrument/territory', { params });
|
|
68
69
|
}
|
|
69
70
|
getState(country, refresh = false) {
|
|
70
71
|
const params = new HttpParams()
|
|
71
72
|
.set('refresh', refresh)
|
|
72
73
|
.set('country', country);
|
|
73
74
|
return this.http.get(this.config.api_base_uri +
|
|
74
|
-
|
|
75
|
+
this.config.base_uri +
|
|
76
|
+
'/installedInstrument/state', { params });
|
|
75
77
|
}
|
|
76
78
|
getCountry(refresh = false) {
|
|
77
79
|
const params = new HttpParams().set('refresh', refresh);
|
|
78
80
|
return this.http.get(this.config.api_base_uri +
|
|
79
|
-
|
|
81
|
+
this.config.base_uri +
|
|
82
|
+
'/installedInstrument/country', { params });
|
|
80
83
|
}
|
|
81
84
|
getContracts(eqCard) {
|
|
82
85
|
const params = new HttpParams().set('eqCard', eqCard);
|
|
83
86
|
return this.http.get(this.config.api_base_uri +
|
|
84
|
-
|
|
87
|
+
this.config.base_uri +
|
|
88
|
+
'/installedInstrument/contract', { params });
|
|
85
89
|
}
|
|
86
90
|
getCalls(eqCard) {
|
|
87
91
|
const params = new HttpParams().set('eqCard', eqCard);
|
|
88
92
|
return this.http.get(this.config.api_base_uri +
|
|
89
|
-
|
|
93
|
+
this.config.base_uri +
|
|
94
|
+
'/installedInstrument/call', { params });
|
|
90
95
|
}
|
|
91
96
|
getActivities(callId) {
|
|
92
97
|
const params = new HttpParams().set('callId', callId);
|
|
93
98
|
return this.http.get(this.config.api_base_uri +
|
|
94
|
-
|
|
99
|
+
this.config.base_uri +
|
|
100
|
+
'/installedInstrument/activity', { params });
|
|
95
101
|
}
|
|
96
102
|
getApplicationSearch(search) {
|
|
97
103
|
return this.http.get(this.config.api_base_uri +
|
|
98
|
-
|
|
104
|
+
this.config.base_uri +
|
|
105
|
+
'/InstalledInstrument/application?application=' +
|
|
99
106
|
search);
|
|
100
107
|
}
|
|
101
108
|
}
|
|
@@ -107,4 +114,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
107
114
|
type: Inject,
|
|
108
115
|
args: ['config']
|
|
109
116
|
}] }, { type: i1.HttpClient }]; } });
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FwLWluc3RhbGxlZC1pbnN0cnVtZW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXNhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudHMvc3JjL2xpYi9zZXJ2aWNlcy9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBVTlELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUtyQyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNsRyxPQUFPLEVBQ0wseUNBQXlDLEdBRTFDLE1BQU0sb0RBQW9ELENBQUM7QUFDNUQsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDOzs7QUFJNUIsTUFBTSxPQUFPLDhCQUE4QjtJQUl6QyxZQUM0QixNQUFlLEVBQ2pDLElBQWdCO1FBREUsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUNqQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBTDFCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO0lBS3JCLENBQUM7SUFFSiwwQkFBMEIsQ0FDeEIsVUFBb0QsRUFDcEQsSUFBc0I7UUFFdEIsTUFBTSxNQUFNLEdBQXNDO1lBQ2hELGVBQWUsRUFBRSxVQUFVLEVBQUUsV0FBVyxJQUFJLEVBQUU7WUFDOUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLElBQUksRUFBRTtZQUM1QyxxQkFBcUIsRUFBRSxVQUFVLEVBQUUsY0FBYyxJQUFJLEVBQUU7WUFDdkQsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLElBQUksRUFBRTtZQUM1QyxVQUFVLEVBQUUsVUFBVSxFQUFF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TUFBTSxFQUFFLENBQ1gsQ0FBQztJQUNKLENBQUM7SUFFRCxhQUFhLENBQUMsTUFBYztRQUMxQixNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFdEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZO1lBQ3RCLHFEQUFxRCxFQUN2RCxFQUFFLE1BQU0sRUFBRSxDQUNYLENBQUM7SUFDSixDQUFDO0lBRUQsb0JBQW9CLENBQUMsTUFBYztRQUNqQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVk7WUFDdEIscUVBQXFFO1lBQ3JFLE1BQU0sQ0FDVCxDQUFDO0lBQ0osQ0FBQzs7MkhBaEpVLDhCQUE4QixrQkFLL0IsUUFBUTsrSEFMUCw4QkFBOEI7MkZBQTlCLDhCQUE4QjtrQkFEMUMsVUFBVTs7MEJBTU4sTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2FwSW5zdGFsbGVkSW5zdHJ1bWVudExpc3RNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC5tb2RlbCc7XHJcbmltcG9ydCB7IFNhcEluc3RhbGxlZEluc3RydW1lbnRNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQubW9kZWwnO1xyXG5pbXBvcnQgeyBTYXBUZXJyaXRvcnlNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zYXAtdGVycml0b3J5Lm1vZGVsJztcclxuaW1wb3J0IHsgU2FwU3RhdGVNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zYXAtc3RhdGUubW9kZWwnO1xyXG5pbXBvcnQgeyBTYXBDb3VudHJ5TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvc2FwLWNvdW50cnkubW9kZWwnO1xyXG5pbXBvcnQgeyBTYXBDb250cmFjdE1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3NhcC1jb250cmFjdC5tb2RlbCc7XHJcbmltcG9ydCB7IFNhcENhbGxNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zYXAtY2FsbC5tb2RlbCc7XHJcbmltcG9ydCB7IFNhcEFjdGl2aXR5TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvc2FwLWFjdGl2aXR5Lm1vZGVsJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBWaWV3U2FwSW5zdGFsbGVkSW5zdHJ1bWVudExpc3RNb2RlbCB9IGZyb20gJy4uL21vZGVscy92aWV3LXNhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudC1saXN0Lm1vZGVsJztcclxuaW1wb3J0IHsgU2FwSW5zdGFsbGVkSW5zdHJ1bWVudFNlYXJjaE1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3NhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudC1zZWFyY2gubW9kZWwnO1xyXG5pbXBvcnQgeyBJbnN0YWxsZWRJbnN0cnVtZW50Rm9ybU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2luc3RhbGxlZC1pbnN0cnVtZW50LWZvcm0ubW9kZWwnO1xyXG5pbXBvcnQgeyBTb3J0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XHJcbmltcG9ydCB7IEluc3RhbGxlZEluc3RydW1lbnRTb3J0T3JkZXJFbnVtIH0gZnJvbSAnLi4vbW9kZWxzL2luc3RhbGxlZC1pbnN0cnVtZW50LXNvcnQtb3JkZXIuZW51bSc7XHJcbmltcG9ydCB7XHJcbiAgSW5zdGFsbGVkSW5zdHJ1bWVudFRhYmxlQ29sdW1uc01hcHBlckVudW0sXHJcbiAgSW5zdGFsbGVkSW5zdHJ1bWVudFRhYmxlQ29sdW1uc01vZGVsLFxyXG59IGZyb20gJy4uL21vZGVscy9pbnN0YWxsZWQtaW5zdHJ1bWVudC10YWJsZS1jb2x1bW5zLm1vZGVsJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgeyBJQ29uZmlnIH0gZnJvbSAnLi4vYmFzZS1pbnRlcmZhY2VzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFNhcEluc3RhbGxlZEluc3RydW1lbnRzU2VydmljZSB7XHJcbiAgYWNjZXNzVG9rZW4gPSAnJztcclxuICB0ZXJyaXRvcnlGaWx0ZXIgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KCdjb25maWcnKSBwcml2YXRlIGNvbmZpZzogSUNvbmZpZyxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxyXG4gICkge31cclxuXHJcbiAgZ2V0SW5zdGFsbGVkSW5zdHJ1bWVudExpc3QoXHJcbiAgICBzZWFyY2hGb3JtOiBJbnN0YWxsZWRJbnN0cnVtZW50Rm9ybU1vZGVsIHwgdW5kZWZpbmVkLFxyXG4gICAgc29ydDogU29ydCB8IHVuZGVmaW5lZFxyXG4gICk6IE9ic2VydmFibGU8Vmlld1NhcEluc3RhbGxlZEluc3RydW1lbnRMaXN0TW9kZWxbXT4ge1xyXG4gICAgY29uc3Qgc2VhcmNoOiBTYXBJbnN0YWxsZWRJbnN0cnVtZW50U2VhcmNoTW9kZWwgPSB7XHJcbiAgICAgIGFwcGxpY2F0aW9uTGlzdDogc2VhcmNoRm9ybT8uYXBwbGljYXRpb24gfHwgW10sXHJcbiAgICAgIGluc3RydW1lbnRObzogc2VhcmNoRm9ybT8uaW5zdHJ1bWVudE5vIHx8ICcnLFxyXG4gICAgICBpbnN0cnVtZW50RGVzY3JpcHRpb246IHNlYXJjaEZvcm0/Lmluc3RydW1lbnREZXNjIHx8ICcnLFxyXG4gICAgICBzZXJpYWxOdW1iZXI6IHNlYXJjaEZvcm0/LnNlcmlhbE51bWJlciB8fCAnJyxcclxuICAgICAgY3VzdG9tZXJObzogc2VhcmNoRm9ybT8uY3VzdG9tZXJObyB8fCAnJyxcclxuICAgICAgYnVzaW5lc3NQYXJ0bmVyTmFtZTogc2VhcmNoRm9ybT8uYnBOYW1lIHx8ICcnLFxyXG4gICAgICBzdGF0dXNJZDogc2VhcmNoRm9ybT8uc3RhdHVzIHx8ICcnLFxyXG4gICAgICB0ZWNobmljaWFuTGFzdE5hbWU6IHNlYXJjaEZvcm0/LnRlY2huaWNpYW5MYXN0TmFtZSB8fCAnJyxcclxuICAgICAgdGVycml0b3J5SWQ6IHNlYXJjaEZvcm0/LnRlcnJpdG9yeSB8fCBudWxsLFxyXG4gICAgICBlbmRVc2VyTmFtZTogc2VhcmNoRm9ybT8uZW5kVXNlck5hbWUgfHwgJycsXHJcbiAgICAgIGVuZFVzZXJDb2RlOiBzZWFyY2hGb3JtPy5lbmRVc2VyQ29kZSB8fCAnJyxcclxuICAgICAgY2l0eTogc2VhcmNoRm9ybT8uY2l0eSB8fCAnJyxcclxuICAgICAgc3RhdGVJZDogc2VhcmNoRm9ybT8uc3RhdGUgfHwgJycsXHJcbiAgICAgIGNvdW50cnlJZDogc2VhcmNoRm9ybT8uY291bnRyeSB8fCAnJyxcclxuICAgICAgY291bnR5OiBzZWFyY2hGb3JtPy5jb3VudHkgfHwgJycsXHJcbiAgICAgIGluc3RhbGxhdGlvbkRhdGVGcm9tOiBzZWFyY2hGb3JtPy5pbnN0YWxsYXRpb25EYXRlRnJvbVxyXG4gICAgICAgID8gbW9tZW50KHNlYXJjaEZvcm0uaW5zdGFsbGF0aW9uRGF0ZUZyb20pLmZvcm1hdCgnWVlZWS1NTS1ERCcpXHJcbiAgICAgICAgOiBudWxsLFxyXG4gICAgICBpbnN0YWxsYXRpb25EYXRlVG86IHNlYXJjaEZvcm0/Lmluc3RhbGxhdGlvbkRhdGVUb1xyXG4gICAgICAgID8gbW9tZW50KHNlYXJjaEZvcm0uaW5zdGFsbGF0aW9uRGF0ZVRvKS5mb3JtYXQoJ1lZWVktTU0tREQnKVxyXG4gICAgICAgIDogbnVsbCxcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHNvcnQgJiYgc29ydC5kaXJlY3Rpb24gIT09ICcnKSB7XHJcbiAgICAgIHNlYXJjaC5zb3J0T3JkZXIgPVxyXG4gICAgICAgIHNvcnQuZGlyZWN0aW9uID09PSAnYXNjJ1xyXG4gICAgICAgICAgPyBJbnN0YWxsZWRJbnN0cnVtZW50U29ydE9yZGVyRW51bS5Bc2NcclxuICAgICAgICAgIDogSW5zdGFsbGVkSW5zdHJ1bWVudFNvcnRPcmRlckVudW0uRGVzYztcclxuICAgICAgc2VhcmNoLnNvcnRCeUNvbHVtbiA9IEluc3RhbGxlZEluc3RydW1lbnRUYWJsZUNvbHVtbnNNYXBwZXJFbnVtW1xyXG4gICAgICAgIDxJbnN0YWxsZWRJbnN0cnVtZW50VGFibGVDb2x1bW5zTW9kZWw+c29ydC5hY3RpdmVcclxuICAgICAgXSBhcyBhbnk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxcclxuICAgICAgICBWaWV3U2FwSW5zdGFsbGVkSW5zdHJ1bWVudExpc3RNb2RlbFtdXHJcbiAgICAgID4odGhpcy5jb25maWcuYXBpX2Jhc2VfdXJpICsgJy9hZG1pbi9zYXAtbWFzdGVyLWRhdGEvaW5zdGFsbGVkSW5zdHJ1bWVudC9saXN0Jywgc2VhcmNoKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlczogU2FwSW5zdGFsbGVkSW5zdHJ1bWVudExpc3RNb2RlbFtdKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzLm1hcChpbnN0YWxsSW5zdHJ1bWVudCA9PiAoe1xyXG4gICAgICAgICAgICAuLi5pbnN0YWxsSW5zdHJ1bWVudCxcclxuICAgICAgICAgICAgdGVjaG5pY2lhbk5hbWU6IGluc3RhbGxJbnN0cnVtZW50LnRlY2huaWNpYW5GaXJzdE5hbWVcclxuICAgICAgICAgICAgICA/IGluc3RhbGxJbnN0cnVtZW50LnRlY2huaWNpYW5GaXJzdE5hbWUgK1xyXG4gICAgICAgICAgICAgICAgJyAnICtcclxuICAgICAgICAgICAgICAgIGluc3RhbGxJbnN0cnVtZW50LnRlY2huaWNpYW5MYXN0TmFtZVxyXG4gICAgICAgICAgICAgIDogJycsXHJcbiAgICAgICAgICB9KSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIGdldEluc3RhbGxlZEluc3RydW1lbnQoXHJcbiAgICBlcUNhcmQ6IG51bWJlclxyXG4gICk6IE9ic2VydmFibGU8U2FwSW5zdGFsbGVkSW5zdHJ1bWVudE1vZGVsPiB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLnNldCgnZXFDYXJkJywgZXFDYXJkKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxTYXBJbnN0YWxsZWRJbnN0cnVtZW50TW9kZWw+KFxyXG4gICAgICB0aGlzLmNvbmZpZy5hcGlfYmFzZV91cmkgKyAnL2FkbWluL3NhcC1tYXN0ZXItZGF0YS9pbnN0YWxsZWRJbnN0cnVtZW50JyxcclxuICAgICAgeyBwYXJhbXMgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFRlcnJpdG9yeShyZWZyZXNoID0gZmFsc2UpOiBPYnNlcnZhYmxlPFNhcFRlcnJpdG9yeU1vZGVsW10+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdyZWZyZXNoJywgcmVmcmVzaCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8U2FwVGVycml0b3J5TW9kZWxbXT4oXHJcbiAgICAgIHRoaXMuY29uZmlnLmFwaV9iYXNlX3VyaSArXHJcbiAgICAgICAgJy9hZG1pbi9zYXAtbWFzdGVyLWRhdGEvaW5zdGFsbGVkSW5zdHJ1bWVudC90ZXJyaXRvcnknLFxyXG4gICAgICB7IHBhcmFtcyB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RhdGUoY291bnRyeTogc3RyaW5nLCByZWZyZXNoID0gZmFsc2UpOiBPYnNlcnZhYmxlPFNhcFN0YXRlTW9kZWxbXT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgICAuc2V0KCdyZWZyZXNoJywgcmVmcmVzaClcclxuICAgICAgLnNldCgnY291bnRyeScsIGNvdW50cnkpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFNhcFN0YXRlTW9kZWxbXT4oXHJcbiAgICAgIHRoaXMuY29uZmlnLmFwaV9iYXNlX3VyaSArXHJcbiAgICAgICAgJy9hZG1pbi9zYXAtbWFzdGVyLWRhdGEvaW5zdGFsbGVkSW5zdHJ1bWVudC9zdGF0ZScsXHJcbiAgICAgIHsgcGFyYW1zIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRDb3VudHJ5KHJlZnJlc2ggPSBmYWxzZSk6IE9ic2VydmFibGU8U2FwQ291bnRyeU1vZGVsW10+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdyZWZyZXNoJywgcmVmcmVzaCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8U2FwQ291bnRyeU1vZGVsW10+KFxyXG4gICAgICB0aGlzLmNvbmZpZy5hcGlfYmFzZV91cmkgK1xyXG4gICAgICAgICcvYWRtaW4vc2FwLW1hc3Rlci1kYXRhL2luc3RhbGxlZEluc3RydW1lbnQvY291bnRyeScsXHJcbiAgICAgIHsgcGFyYW1zIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRDb250cmFjdHMoZXFDYXJkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFNhcENvbnRyYWN0TW9kZWxbXT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2VxQ2FyZCcsIGVxQ2FyZCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8U2FwQ29udHJhY3RNb2RlbFtdPihcclxuICAgICAgdGhpcy5jb25maWcuYXBpX2Jhc2VfdXJpICtcclxuICAgICAgICAnL2FkbWluL3NhcC1tYXN0ZXItZGF0YS9pbnN0YWxsZWRJbnN0cnVtZW50L2NvbnRyYWN0JyxcclxuICAgICAgeyBwYXJhbXMgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldENhbGxzKGVxQ2FyZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxTYXBDYWxsTW9kZWxbXT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2VxQ2FyZCcsIGVxQ2FyZCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8U2FwQ2FsbE1vZGVsW10+KFxyXG4gICAgICB0aGlzLmNvbmZpZy5hcGlfYmFzZV91cmkgK1xyXG4gICAgICAgICcvYWRtaW4vc2FwLW1hc3Rlci1kYXRhL2luc3RhbGxlZEluc3RydW1lbnQvY2FsbCcsXHJcbiAgICAgIHsgcGFyYW1zIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRBY3Rpdml0aWVzKGNhbGxJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxTYXBBY3Rpdml0eU1vZGVsW10+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdjYWxsSWQnLCBjYWxsSWQpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFNhcEFjdGl2aXR5TW9kZWxbXT4oXHJcbiAgICAgIHRoaXMuY29uZmlnLmFwaV9iYXNlX3VyaSArXHJcbiAgICAgICAgJy9hZG1pbi9zYXAtbWFzdGVyLWRhdGEvaW5zdGFsbGVkSW5zdHJ1bWVudC9hY3Rpdml0eScsXHJcbiAgICAgIHsgcGFyYW1zIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRBcHBsaWNhdGlvblNlYXJjaChzZWFyY2g6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PHN0cmluZ1tdPihcclxuICAgICAgdGhpcy5jb25maWcuYXBpX2Jhc2VfdXJpICtcclxuICAgICAgICAnL2FkbWluL3NhcC1tYXN0ZXItZGF0YS9JbnN0YWxsZWRJbnN0cnVtZW50L2FwcGxpY2F0aW9uP2FwcGxpY2F0aW9uPScgK1xyXG4gICAgICAgIHNlYXJjaFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FwLWluc3RhbGxlZC1pbnN0cnVtZW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXNhcC1pbnN0YWxsZWQtaW5zdHJ1bWVudHMvc3JjL2xpYi9zZXJ2aWNlcy9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBVTlELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUtyQyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNsRyxPQUFPLEVBQ0wseUNBQXlDLEdBRTFDLE1BQU0sb0RBQW9ELENBQUM7QUFDNUQsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDOzs7QUFJNUIsTUFBTSxPQUFPLDhCQUE4QjtJQUl6QyxZQUM0QixNQUFlLEVBQ2pDLElBQWdCO1FBREUsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUNqQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBTDFCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO0lBS3JCLENBQUM7SUFFSiwwQkFBMEIsQ0FDeEIsVUFBb0QsRUFDcEQsSUFBc0I7UUFFdEIsTUFBTSxNQUFNLEdBQXNDO1lBQ2hELGVBQWUsRUFBRSxVQUFVLEVBQUUsV0FBVyxJQUFJLEVBQUU7WUFDOUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLElBQUksRUFBRTtZQUM1QyxxQkFBcUIsRUFBRSxVQUFVLEVBQUUsY0FBYyxJQUFJLEVBQUU7WUFDdkQsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLElBQUksRUFBRTtZQUM1QyxVQUFVLEVBQUUsVUFBVSxFQUFF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RCxRQUFRLENBQUMsTUFBYztRQUNyQixNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFdEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZO1lBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUTtZQUNwQiwyQkFBMkIsRUFDN0IsRUFBRSxNQUFNLEVBQUUsQ0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFjO1FBQzFCLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUV0RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVk7WUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRO1lBQ3BCLCtCQUErQixFQUNqQyxFQUFFLE1BQU0sRUFBRSxDQUNYLENBQUM7SUFDSixDQUFDO0lBRUQsb0JBQW9CLENBQUMsTUFBYztRQUNqQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVk7WUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRO1lBQ3BCLCtDQUErQztZQUMvQyxNQUFNLENBQ1QsQ0FBQztJQUNKLENBQUM7OzJIQXZKVSw4QkFBOEIsa0JBSy9CLFFBQVE7K0hBTFAsOEJBQThCOzJGQUE5Qiw4QkFBOEI7a0JBRDFDLFVBQVU7OzBCQU1OLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNhcEluc3RhbGxlZEluc3RydW1lbnRMaXN0TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvc2FwLWluc3RhbGxlZC1pbnN0cnVtZW50LWxpc3QubW9kZWwnO1xyXG5pbXBvcnQgeyBTYXBJbnN0YWxsZWRJbnN0cnVtZW50TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvc2FwLWluc3RhbGxlZC1pbnN0cnVtZW50Lm1vZGVsJztcclxuaW1wb3J0IHsgU2FwVGVycml0b3J5TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvc2FwLXRlcnJpdG9yeS5tb2RlbCc7XHJcbmltcG9ydCB7IFNhcFN0YXRlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvc2FwLXN0YXRlLm1vZGVsJztcclxuaW1wb3J0IHsgU2FwQ291bnRyeU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3NhcC1jb3VudHJ5Lm1vZGVsJztcclxuaW1wb3J0IHsgU2FwQ29udHJhY3RNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zYXAtY29udHJhY3QubW9kZWwnO1xyXG5pbXBvcnQgeyBTYXBDYWxsTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvc2FwLWNhbGwubW9kZWwnO1xyXG5pbXBvcnQgeyBTYXBBY3Rpdml0eU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3NhcC1hY3Rpdml0eS5tb2RlbCc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVmlld1NhcEluc3RhbGxlZEluc3RydW1lbnRMaXN0TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvdmlldy1zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtbGlzdC5tb2RlbCc7XHJcbmltcG9ydCB7IFNhcEluc3RhbGxlZEluc3RydW1lbnRTZWFyY2hNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zYXAtaW5zdGFsbGVkLWluc3RydW1lbnQtc2VhcmNoLm1vZGVsJztcclxuaW1wb3J0IHsgSW5zdGFsbGVkSW5zdHJ1bWVudEZvcm1Nb2RlbCB9IGZyb20gJy4uL21vZGVscy9pbnN0YWxsZWQtaW5zdHJ1bWVudC1mb3JtLm1vZGVsJztcclxuaW1wb3J0IHsgU29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5pbXBvcnQgeyBJbnN0YWxsZWRJbnN0cnVtZW50U29ydE9yZGVyRW51bSB9IGZyb20gJy4uL21vZGVscy9pbnN0YWxsZWQtaW5zdHJ1bWVudC1zb3J0LW9yZGVyLmVudW0nO1xyXG5pbXBvcnQge1xyXG4gIEluc3RhbGxlZEluc3RydW1lbnRUYWJsZUNvbHVtbnNNYXBwZXJFbnVtLFxyXG4gIEluc3RhbGxlZEluc3RydW1lbnRUYWJsZUNvbHVtbnNNb2RlbCxcclxufSBmcm9tICcuLi9tb2RlbHMvaW5zdGFsbGVkLWluc3RydW1lbnQtdGFibGUtY29sdW1ucy5tb2RlbCc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgSUNvbmZpZyB9IGZyb20gJy4uL2Jhc2UtaW50ZXJmYWNlcyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTYXBJbnN0YWxsZWRJbnN0cnVtZW50c1NlcnZpY2Uge1xyXG4gIGFjY2Vzc1Rva2VuID0gJyc7XHJcbiAgdGVycml0b3J5RmlsdGVyID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdCgnY29uZmlnJykgcHJpdmF0ZSBjb25maWc6IElDb25maWcsXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcclxuICApIHt9XHJcblxyXG4gIGdldEluc3RhbGxlZEluc3RydW1lbnRMaXN0KFxyXG4gICAgc2VhcmNoRm9ybTogSW5zdGFsbGVkSW5zdHJ1bWVudEZvcm1Nb2RlbCB8IHVuZGVmaW5lZCxcclxuICAgIHNvcnQ6IFNvcnQgfCB1bmRlZmluZWRcclxuICApOiBPYnNlcnZhYmxlPFZpZXdTYXBJbnN0YWxsZWRJbnN0cnVtZW50TGlzdE1vZGVsW10+IHtcclxuICAgIGNvbnN0IHNlYXJjaDogU2FwSW5zdGFsbGVkSW5zdHJ1bWVudFNlYXJjaE1vZGVsID0ge1xyXG4gICAgICBhcHBsaWNhdGlvbkxpc3Q6IHNlYXJjaEZvcm0/LmFwcGxpY2F0aW9uIHx8IFtdLFxyXG4gICAgICBpbnN0cnVtZW50Tm86IHNlYXJjaEZvcm0/Lmluc3RydW1lbnRObyB8fCAnJyxcclxuICAgICAgaW5zdHJ1bWVudERlc2NyaXB0aW9uOiBzZWFyY2hGb3JtPy5pbnN0cnVtZW50RGVzYyB8fCAnJyxcclxuICAgICAgc2VyaWFsTnVtYmVyOiBzZWFyY2hGb3JtPy5zZXJpYWxOdW1iZXIgfHwgJycsXHJcbiAgICAgIGN1c3RvbWVyTm86IHNlYXJjaEZvcm0/LmN1c3RvbWVyTm8gfHwgJycsXHJcbiAgICAgIGJ1c2luZXNzUGFydG5lck5hbWU6IHNlYXJjaEZvcm0/LmJwTmFtZSB8fCAnJyxcclxuICAgICAgc3RhdHVzSWQ6IHNlYXJjaEZvcm0/LnN0YXR1cyB8fCAnJyxcclxuICAgICAgdGVjaG5pY2lhbkxhc3ROYW1lOiBzZWFyY2hGb3JtPy50ZWNobmljaWFuTGFzdE5hbWUgfHwgJycsXHJcbiAgICAgIHRlcnJpdG9yeUlkOiBzZWFyY2hGb3JtPy50ZXJyaXRvcnkgfHwgbnVsbCxcclxuICAgICAgZW5kVXNlck5hbWU6IHNlYXJjaEZvcm0/LmVuZFVzZXJOYW1lIHx8ICcnLFxyXG4gICAgICBlbmRVc2VyQ29kZTogc2VhcmNoRm9ybT8uZW5kVXNlckNvZGUgfHwgJycsXHJcbiAgICAgIGNpdHk6IHNlYXJjaEZvcm0/LmNpdHkgfHwgJycsXHJcbiAgICAgIHN0YXRlSWQ6IHNlYXJjaEZvcm0/LnN0YXRlIHx8ICcnLFxyXG4gICAgICBjb3VudHJ5SWQ6IHNlYXJjaEZvcm0/LmNvdW50cnkgfHwgJycsXHJcbiAgICAgIGNvdW50eTogc2VhcmNoRm9ybT8uY291bnR5IHx8ICcnLFxyXG4gICAgICBpbnN0YWxsYXRpb25EYXRlRnJvbTogc2VhcmNoRm9ybT8uaW5zdGFsbGF0aW9uRGF0ZUZyb21cclxuICAgICAgICA/IG1vbWVudChzZWFyY2hGb3JtLmluc3RhbGxhdGlvbkRhdGVGcm9tKS5mb3JtYXQoJ1lZWVktTU0tREQnKVxyXG4gICAgICAgIDogbnVsbCxcclxuICAgICAgaW5zdGFsbGF0aW9uRGF0ZVRvOiBzZWFyY2hGb3JtPy5pbnN0YWxsYXRpb25EYXRlVG9cclxuICAgICAgICA/IG1vbWVudChzZWFyY2hGb3JtLmluc3RhbGxhdGlvbkRhdGVUbykuZm9ybWF0KCdZWVlZLU1NLUREJylcclxuICAgICAgICA6IG51bGwsXHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChzb3J0ICYmIHNvcnQuZGlyZWN0aW9uICE9PSAnJykge1xyXG4gICAgICBzZWFyY2guc29ydE9yZGVyID1cclxuICAgICAgICBzb3J0LmRpcmVjdGlvbiA9PT0gJ2FzYydcclxuICAgICAgICAgID8gSW5zdGFsbGVkSW5zdHJ1bWVudFNvcnRPcmRlckVudW0uQXNjXHJcbiAgICAgICAgICA6IEluc3RhbGxlZEluc3RydW1lbnRTb3J0T3JkZXJFbnVtLkRlc2M7XHJcbiAgICAgIHNlYXJjaC5zb3J0QnlDb2x1bW4gPSBJbnN0YWxsZWRJbnN0cnVtZW50VGFibGVDb2x1bW5zTWFwcGVyRW51bVtcclxuICAgICAgICA8SW5zdGFsbGVkSW5zdHJ1bWVudFRhYmxlQ29sdW1uc01vZGVsPnNvcnQuYWN0aXZlXHJcbiAgICAgIF0gYXMgYW55O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8XHJcbiAgICAgICAgVmlld1NhcEluc3RhbGxlZEluc3RydW1lbnRMaXN0TW9kZWxbXVxyXG4gICAgICA+KHRoaXMuY29uZmlnLmFwaV9iYXNlX3VyaSArIHRoaXMuY29uZmlnLmJhc2VfdXJpICsgJy9pbnN0YWxsZWRJbnN0cnVtZW50L2xpc3QnLCBzZWFyY2gpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzOiBTYXBJbnN0YWxsZWRJbnN0cnVtZW50TGlzdE1vZGVsW10pID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXMubWFwKGluc3RhbGxJbnN0cnVtZW50ID0+ICh7XHJcbiAgICAgICAgICAgIC4uLmluc3RhbGxJbnN0cnVtZW50LFxyXG4gICAgICAgICAgICB0ZWNobmljaWFuTmFtZTogaW5zdGFsbEluc3RydW1lbnQudGVjaG5pY2lhbkZpcnN0TmFtZVxyXG4gICAgICAgICAgICAgID8gaW5zdGFsbEluc3RydW1lbnQudGVjaG5pY2lhbkZpcnN0TmFtZSArXHJcbiAgICAgICAgICAgICAgICAnICcgK1xyXG4gICAgICAgICAgICAgICAgaW5zdGFsbEluc3RydW1lbnQudGVjaG5pY2lhbkxhc3ROYW1lXHJcbiAgICAgICAgICAgICAgOiAnJyxcclxuICAgICAgICAgIH0pKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW5zdGFsbGVkSW5zdHJ1bWVudChcclxuICAgIGVxQ2FyZDogbnVtYmVyXHJcbiAgKTogT2JzZXJ2YWJsZTxTYXBJbnN0YWxsZWRJbnN0cnVtZW50TW9kZWw+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdlcUNhcmQnLCBlcUNhcmQpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFNhcEluc3RhbGxlZEluc3RydW1lbnRNb2RlbD4oXHJcbiAgICAgIHRoaXMuY29uZmlnLmFwaV9iYXNlX3VyaSArIHRoaXMuY29uZmlnLmJhc2VfdXJpICsgJy9pbnN0YWxsZWRJbnN0cnVtZW50JyxcclxuICAgICAgeyBwYXJhbXMgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFRlcnJpdG9yeShyZWZyZXNoID0gZmFsc2UpOiBPYnNlcnZhYmxlPFNhcFRlcnJpdG9yeU1vZGVsW10+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdyZWZyZXNoJywgcmVmcmVzaCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8U2FwVGVycml0b3J5TW9kZWxbXT4oXHJcbiAgICAgIHRoaXMuY29uZmlnLmFwaV9iYXNlX3VyaSArXHJcbiAgICAgICAgdGhpcy5jb25maWcuYmFzZV91cmkgK1xyXG4gICAgICAgICcvaW5zdGFsbGVkSW5zdHJ1bWVudC90ZXJyaXRvcnknLFxyXG4gICAgICB7IHBhcmFtcyB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RhdGUoY291bnRyeTogc3RyaW5nLCByZWZyZXNoID0gZmFsc2UpOiBPYnNlcnZhYmxlPFNhcFN0YXRlTW9kZWxbXT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgICAuc2V0KCdyZWZyZXNoJywgcmVmcmVzaClcclxuICAgICAgLnNldCgnY291bnRyeScsIGNvdW50cnkpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFNhcFN0YXRlTW9kZWxbXT4oXHJcbiAgICAgIHRoaXMuY29uZmlnLmFwaV9iYXNlX3VyaSArXHJcbiAgICAgICAgdGhpcy5jb25maWcuYmFzZV91cmkgK1xyXG4gICAgICAgICcvaW5zdGFsbGVkSW5zdHJ1bWVudC9zdGF0ZScsXHJcbiAgICAgIHsgcGFyYW1zIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRDb3VudHJ5KHJlZnJlc2ggPSBmYWxzZSk6IE9ic2VydmFibGU8U2FwQ291bnRyeU1vZGVsW10+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdyZWZyZXNoJywgcmVmcmVzaCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8U2FwQ291bnRyeU1vZGVsW10+KFxyXG4gICAgICB0aGlzLmNvbmZpZy5hcGlfYmFzZV91cmkgK1xyXG4gICAgICAgIHRoaXMuY29uZmlnLmJhc2VfdXJpICtcclxuICAgICAgICAnL2luc3RhbGxlZEluc3RydW1lbnQvY291bnRyeScsXHJcbiAgICAgIHsgcGFyYW1zIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRDb250cmFjdHMoZXFDYXJkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFNhcENvbnRyYWN0TW9kZWxbXT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2VxQ2FyZCcsIGVxQ2FyZCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8U2FwQ29udHJhY3RNb2RlbFtdPihcclxuICAgICAgdGhpcy5jb25maWcuYXBpX2Jhc2VfdXJpICtcclxuICAgICAgICB0aGlzLmNvbmZpZy5iYXNlX3VyaSArXHJcbiAgICAgICAgJy9pbnN0YWxsZWRJbnN0cnVtZW50L2NvbnRyYWN0JyxcclxuICAgICAgeyBwYXJhbXMgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldENhbGxzKGVxQ2FyZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxTYXBDYWxsTW9kZWxbXT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2VxQ2FyZCcsIGVxQ2FyZCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8U2FwQ2FsbE1vZGVsW10+KFxyXG4gICAgICB0aGlzLmNvbmZpZy5hcGlfYmFzZV91cmkgK1xyXG4gICAgICAgIHRoaXMuY29uZmlnLmJhc2VfdXJpICtcclxuICAgICAgICAnL2luc3RhbGxlZEluc3RydW1lbnQvY2FsbCcsXHJcbiAgICAgIHsgcGFyYW1zIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRBY3Rpdml0aWVzKGNhbGxJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxTYXBBY3Rpdml0eU1vZGVsW10+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdjYWxsSWQnLCBjYWxsSWQpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFNhcEFjdGl2aXR5TW9kZWxbXT4oXHJcbiAgICAgIHRoaXMuY29uZmlnLmFwaV9iYXNlX3VyaSArXHJcbiAgICAgICAgdGhpcy5jb25maWcuYmFzZV91cmkgK1xyXG4gICAgICAgICcvaW5zdGFsbGVkSW5zdHJ1bWVudC9hY3Rpdml0eScsXHJcbiAgICAgIHsgcGFyYW1zIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRBcHBsaWNhdGlvblNlYXJjaChzZWFyY2g6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PHN0cmluZ1tdPihcclxuICAgICAgdGhpcy5jb25maWcuYXBpX2Jhc2VfdXJpICtcclxuICAgICAgICB0aGlzLmNvbmZpZy5iYXNlX3VyaSArXHJcbiAgICAgICAgJy9JbnN0YWxsZWRJbnN0cnVtZW50L2FwcGxpY2F0aW9uP2FwcGxpY2F0aW9uPScgK1xyXG4gICAgICAgIHNlYXJjaFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
|