gamma-app-controller 1.1.0 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/application-controller/application-controller.module.mjs +14 -5
- package/esm2020/lib/application-controller/application-dataset-call.service.mjs +3 -3
- package/esm2020/lib/application-controller/application-dataset-component/dataset-query-bulder/dataset-query-bulder.component.mjs +4 -3
- package/esm2020/lib/application-controller/application-filter/application-filter.component.mjs +2 -2
- package/esm2020/lib/application-controller/common.mjs +7 -12
- package/esm2020/lib/application-controller/page-controller/page-config/page-config.component.mjs +5 -3
- package/esm2020/lib/application-controller/page-controller/page-config-multi-layout/page-config-multi-layout.component.mjs +984 -0
- package/esm2020/lib/application-controller/page-controller/page-controller/page-controller.component.mjs +9 -2
- package/esm2020/lib/application-controller/shared/advanced-component/app-advance-header/app-header.component.mjs +23 -6
- package/esm2020/lib/application-controller/shared/advanced-component/gamma-advance-operator-table/gamma-advance-operator-table.component.mjs +14 -3
- package/esm2020/lib/application-controller/shared/advanced-component/gamma-table-clumn-bar-chart/gamma-table-clumn-bar-chart.component.mjs +14 -3
- package/esm2020/lib/application-controller/shared/advanced-component/gamma-table-with-percentage/gamma-table-with-percentage.component.mjs +113 -124
- package/esm2020/lib/application-controller/support-components/dash-table/dash-table.component.mjs +4 -3
- package/esm2020/lib/application-controller/support-components/table-with-bar/table-with-bar.component.mjs +5 -3
- package/esm2020/public-api.mjs +4 -1
- package/fesm2015/gamma-app-controller.mjs +1179 -184
- package/fesm2015/gamma-app-controller.mjs.map +1 -1
- package/fesm2020/gamma-app-controller.mjs +1177 -184
- package/fesm2020/gamma-app-controller.mjs.map +1 -1
- package/lib/application-controller/application-controller.module.d.ts +12 -11
- package/lib/application-controller/page-controller/page-config/page-config.component.d.ts +1 -1
- package/lib/application-controller/page-controller/page-config-multi-layout/page-config-multi-layout.component.d.ts +190 -0
- package/lib/application-controller/shared/advanced-component/app-advance-header/app-header.component.d.ts +3 -1
- package/lib/application-controller/shared/advanced-component/gamma-advance-operator-table/gamma-advance-operator-table.component.d.ts +2 -0
- package/lib/application-controller/shared/advanced-component/gamma-table-clumn-bar-chart/gamma-table-clumn-bar-chart.component.d.ts +2 -0
- package/lib/application-controller/shared/advanced-component/gamma-table-with-percentage/gamma-table-with-percentage.component.d.ts +17 -12
- package/lib/application-controller/support-components/dash-table/dash-table.component.d.ts +1 -0
- package/lib/application-controller/support-components/table-with-bar/table-with-bar.component.d.ts +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +3 -0
|
@@ -36,9 +36,11 @@ export class PageControlerComponent {
|
|
|
36
36
|
this.templateDataSource = [];
|
|
37
37
|
this.componentTemplates = [
|
|
38
38
|
{ "compName": "KpiWithDataSetTestComponent", "item": "Default KPI Layout" },
|
|
39
|
+
{ "compName": "KpiWithMultilayoutSetTestComponent", "item": "Multiple Layout KPI" },
|
|
39
40
|
{ "compName": "LandingComponentComponent", "item": "Default Page" },
|
|
40
41
|
{ "compName": "CdrConfigComponent", "item": "CDR Config" },
|
|
41
42
|
{ "compName": "CreateKpiTreeComponent", "item": "Create KPI Config" },
|
|
43
|
+
{ "compName": "CreateMetricsComponent", "item": "Create Metrics" },
|
|
42
44
|
];
|
|
43
45
|
}
|
|
44
46
|
ngOnInit() {
|
|
@@ -149,7 +151,12 @@ export class PageControlerComponent {
|
|
|
149
151
|
'contentType': "edit",
|
|
150
152
|
}
|
|
151
153
|
};
|
|
152
|
-
|
|
154
|
+
if (item.pageTemplate == "KpiWithMultilayoutSetTestComponent") {
|
|
155
|
+
this.router.navigate(['/apps/controlPanel/multiPageConfigController'], navigation);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
this.router.navigate(['/apps/controlPanel/pageConfigController'], navigation);
|
|
159
|
+
}
|
|
153
160
|
}
|
|
154
161
|
getCreateDashboard() {
|
|
155
162
|
this.router.navigateByUrl('/apps/controlPanel/pageConfigController');
|
|
@@ -169,4 +176,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
169
176
|
type: ViewChild,
|
|
170
177
|
args: ['scrollContainer']
|
|
171
178
|
}] } });
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1jb250cm9sbGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dhbW1hLWFwcC1jb250cm9sbGVyL3NyYy9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9wYWdlLWNvbnRyb2xsZXIvcGFnZS1jb250cm9sbGVyL3BhZ2UtY29udHJvbGxlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYW1tYS1hcHAtY29udHJvbGxlci9zcmMvbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvcGFnZS1jb250cm9sbGVyL3BhZ2UtY29udHJvbGxlci9wYWdlLWNvbnRyb2xsZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBc0IsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVcvQyxNQUFNLE9BQU8sc0JBQXNCO0lBMEJqQyxZQUNVLE1BQWMsRUFBUyxhQUE0QixFQUFVLE9BQWtDLEVBQy9GLE1BQXFCLEVBQVUsbUJBQXdDO1FBRHZFLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBQy9GLFdBQU0sR0FBTixNQUFNLENBQWU7UUFBVSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBM0JqRixvQkFBZSxHQUFHO1lBQ2hCLFFBQVEsRUFBRSxFQUFFO1lBQ1osU0FBUyxFQUFFLEVBQUU7WUFDYixPQUFPLEVBQUUsRUFBRTtZQUNYLFlBQVksRUFBRSxFQUFFO1lBQ2hCLG9CQUFvQixFQUFFLEVBQUU7WUFDeEIsT0FBTyxFQUFFLEVBQUU7WUFDWCxRQUFRLEVBQUUsRUFBRTtTQUNiLENBQUE7UUFD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QyxNQUFNLENBQUMsYUFBYSxDQUFDLHlDQUF5QyxDQUFDLENBQUE7SUFDdEUsQ0FBQztJQUVELGNBQWM7UUFDWixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMxRixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDOzttSEFuS1Usc0JBQXNCO3VHQUF0QixzQkFBc0IsbUxDZG5DLDR6T0F5SU07MkZEM0hPLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSx5QkFBeUI7K05BNEJHLGVBQWU7c0JBQXBELFNBQVM7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkV4dHJhcywgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcbmltcG9ydCB7IGNvbmZpcm0gfSBmcm9tICdkZXZleHRyZW1lL3VpL2RpYWxvZyc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkNvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBwbGljYXRpb24tY29udGVudC5zZXJ2aWNlJztcbmltcG9ydCB7IER5bmFtaWNSb3V0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9wYWdlLXRlbXBsYXRlcy9keW5hbWljLXJvdXRlLXNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbic7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWRhc2hib3JkLWNvbnRyb2xsZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnZS1jb250cm9sbGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFnZS1jb250cm9sbGVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUGFnZUNvbnRyb2xlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGRhc2hib2FyZENvbmZpZyA9IHtcbiAgICBwYWdlTmFtZTogXCJcIixcbiAgICBwYWdlVGl0bGU6IFwiXCIsXG4gICAgcGFnZVVybDogXCJcIixcbiAgICBwYWdlVGVtcGxhdGU6IFwiXCIsXG4gICAgcGFnZURvY3VtZW50YXRpb25Vcmw6IFwiXCIsXG4gICAgd2lkZ2V0czogW10sXG4gICAgZmlsdGVySWQ6IFwiXCJcbiAgfVxuICBpc05ld1RhbXBsZXRlQ3JlYXRlOiBib29sZWFuID0gZmFsc2U7XG4gIGlzTG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgdGVtcGxhdGVEYXRhU291cmNlOiBhbnkgPSBbXTtcblxuICBmaWx0ZXJEYXRhU291cmNlOiBhbnk7XG5cbiAgY29tcG9uZW50VGVtcGxhdGVzID0gW1xuICAgIHsgXCJjb21wTmFtZVwiOiBcIktwaVdpdGhEYXRhU2V0VGVzdENvbXBvbmVudFwiLCBcIml0ZW1cIjogXCJEZWZhdWx0IEtQSSBMYXlvdXRcIiB9LFxuICAgIHsgXCJjb21wTmFtZVwiOiBcIkxhbmRpbmdDb21wb25lbnRDb21wb25lbnRcIiwgXCJpdGVtXCI6IFwiRGVmYXVsdCBQYWdlXCIgfSxcbiAgICB7IFwiY29tcE5hbWVcIjogXCJDZHJDb25maWdDb21wb25lbnRcIiwgXCJpdGVtXCI6IFwiQ0RSIENvbmZpZ1wiIH0sXG4gICAgeyBcImNvbXBOYW1lXCI6IFwiQ3JlYXRlS3BpVHJlZUNvbXBvbmVudFwiLCBcIml0ZW1cIjogXCJDcmVhdGUgS1BJIENvbmZpZ1wiIH0sXG4gIF1cblxuICBAVmlld0NoaWxkKCdzY3JvbGxDb250YWluZXInKSBwcml2YXRlIHNjcm9sbENvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwdWJsaWMgY29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZSwgcHJpdmF0ZSBzZXJ2aWNlOiBBcHBsaWNhdGlvbkNvbnRlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLCBwcml2YXRlIGR5bmFtaWNSb3V0ZVNlcnZpY2U6IER5bmFtaWNSb3V0ZVNlcnZpY2VcbiAgKSB7XG5cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0QXBwUGFnZUNvbmZpZ3MoKTtcbiAgICB0aGlzLmdldEZpbHRlckRhdGFTZXQoKTtcbiAgfVxuICBnZXRGaWx0ZXJEYXRhU2V0KCkge1xuICAgIHRoaXMuc2VydmljZS5nZXRBcHBGaWx0ZXJDb25maWdzKCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5maWx0ZXJEYXRhU291cmNlID0gZGF0YTtcbiAgICAgICAgdGhpcy5pc0xvYWRlciA9IGZhbHNlO1xuICAgICAgfSwgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignVW5leHBlY3RlZCBTZXJ2ZXIgRXhjZXB0aW9uLiBQbGVhc2UgY29udGFjdCBTeXN0ZW0gQWRtaW4uJywgJ1BhZ2UgQ3JlYXRpb24nKVxuXG4gICAgICB9XG4gICAgfSlcbiAgfVxuICBnZXRBcHBQYWdlQ29uZmlncygpIHtcbiAgICB0aGlzLnNlcnZpY2UuZ2V0QXBwUGFnZUNvbmZpZ3MoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnRlbXBsYXRlRGF0YVNvdXJjZSA9IGRhdGE7XG4gICAgICAgIHRoaXMuaXNMb2FkZXIgPSBmYWxzZTtcbiAgICAgIH0sIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ1VuZXhwZWN0ZWQgU2VydmVyIEV4Y2VwdGlvbi4gUGxlYXNlIGNvbnRhY3QgU3lzdGVtIEFkbWluLicsICdQYWdlIENyZWF0aW9uJylcblxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBjcmVhdGVOZXdUYW1wbGV0ZSgpIHtcbiAgICB0aGlzLmlzTmV3VGFtcGxldGVDcmVhdGUgPSB0cnVlO1xuICAgIHRoaXMuZGFzaGJvYXJkQ29uZmlnID0ge1xuICAgICAgcGFnZU5hbWU6IFwiXCIsXG4gICAgICBwYWdlVGl0bGU6IFwiXCIsXG4gICAgICBwYWdlVXJsOiBcIlwiLFxuICAgICAgcGFnZVRlbXBsYXRlOiBcIlwiLFxuICAgICAgcGFnZURvY3VtZW50YXRpb25Vcmw6IFwiXCIsXG4gICAgICB3aWRnZXRzOiBbXSxcbiAgICAgIGZpbHRlcklkOiBcIlwiXG4gICAgfVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zY3JvbGxUb0JvdHRvbSgpO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICB2aWV3c1BhZ2UoaXRlbSkge1xuICAgIGxldCBuYXZpZ2F0aW9uRXh0cmFzOiBOYXZpZ2F0aW9uRXh0cmFzID0ge1xuICAgICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgXCJwYWdlSWRcIjogaXRlbS5wYWdlSWRcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2l0ZW0ucGFnZVVybF0sIG5hdmlnYXRpb25FeHRyYXMpXG4gIH1cbiAgZGVsZXRlVGFtcGxldGUoaXRlbSkge1xuICAgIGxldCByZXN1bHQgPSBjb25maXJtKFwiPGk+QXJlIFlvdSBTdXJlPzwvaT5cIiwgXCJEZWxldGUgRmlsdGVyXCIpO1xuICAgIHJlc3VsdC50aGVuKChkaWFsb2dSZXN1bHQpID0+IHtcbiAgICAgIGlmIChkaWFsb2dSZXN1bHQpIHtcbiAgICAgICAgdGhpcy5pc0xvYWRlciA9IHRydWU7XG4gICAgICAgIHRoaXMuc2VydmljZS5kZWxldGVBcHBQYWdlQ29uZmlnKGl0ZW0ucGFnZUlkKS5zdWJzY3JpYmUoKHZhbDogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5nZXRBcHBQYWdlQ29uZmlncygpO1xuICAgICAgICAgIHRoaXMuaXNMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnRvYXN0ci5zdWNjZXNzKCdQYWdlIERlbGV0ZWQgU3VjY2Vzc2Z1bGx5JylcbiAgICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdVbmV4cGVjdGVkIFNlcnZlciBFeGNlcHRpb24uIFBsZWFzZSBjb250YWN0IFN5c3RlbSBBZG1pbi4nLCAnUnVsZSBNb2R1bGUnKTtcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGVkaXRUZW1wbGF0ZShpdGVtKSB7XG4gICAgdGhpcy5kYXNoYm9hcmRDb25maWcgPSBpdGVtO1xuICAgIHRoaXMuaXNOZXdUYW1wbGV0ZUNyZWF0ZSA9IHRydWU7XG4gICAgdGhpcy5zY3JvbGxUb0JvdHRvbSgpO1xuICB9XG5cbiAgZ2V0U2F2ZUNoYXJ0Q29uZmlnKCkge1xuXG4gICAgaWYgKHRoaXMuZGFzaGJvYXJkQ29uZmlnWydwYWdlSWQnXSkge1xuICAgICAgdGhpcy5zZXJ2aWNlLmVkaXRBcHBQYWdlQ29uZmlnKHRoaXMuZGFzaGJvYXJkQ29uZmlnKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5pc05ld1RhbXBsZXRlQ3JlYXRlID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5nZXRBcHBQYWdlQ29uZmlncygpO1xuICAgICAgICAgIHRoaXMudG9hc3RyLnN1Y2Nlc3MoJ1BhZ2UgVXBkYXRlIFN1Y2Nlc3NmdWxseScpXG4gICAgICAgIH0sIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignVW5leHBlY3RlZCBTZXJ2ZXIgRXhjZXB0aW9uLiBQbGVhc2UgY29udGFjdCBTeXN0ZW0gQWRtaW4uJywgJ1BhZ2UgQ3JlYXRpb24nKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlcnZpY2UuY3JlYXRlQXBwUGFnZUNvbmZpZyh0aGlzLmRhc2hib2FyZENvbmZpZykuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNOZXdUYW1wbGV0ZUNyZWF0ZSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZ2V0QXBwUGFnZUNvbmZpZ3MoKTtcbiAgICAgICAgICB0aGlzLnRvYXN0ci5zdWNjZXNzKCdQYWdlIENyZWF0ZWQgU3VjY2Vzc2Z1bGx5JylcbiAgICAgICAgfSwgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdVbmV4cGVjdGVkIFNlcnZlciBFeGNlcHRpb24uIFBsZWFzZSBjb250YWN0IFN5c3RlbSBBZG1pbi4nLCAnUGFnZSBDcmVhdGlvbicpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgdmlld0NvbmZpZ3VyZWRUZW1wbGF0ZShpdGVtKSB7XG4gICAgbGV0IG5hdmlnYXRpb246IE5hdmlnYXRpb25FeHRyYXMgPSB7XG4gICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAncGFnZUlkJzogaXRlbS5wYWdlSWQsXG4gICAgICAgICdjb250ZW50VHlwZSc6IFwidmlld1wiLFxuXG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9hcHBzL2NvbnRyb2xQYW5lbC9wYWdlQ29uZmlnQ29udHJvbGxlciddLCBuYXZpZ2F0aW9uKTtcbiAgfVxuXG4gIGNvbmZpZ3VyZWRUZW1wbGF0ZShpdGVtKSB7XG4gICAgbGV0IG5hdmlnYXRpb246IE5hdmlnYXRpb25FeHRyYXMgPSB7XG4gICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAncGFnZUlkJzogaXRlbS5wYWdlSWQsXG4gICAgICAgICdjb250ZW50VHlwZSc6IFwiZWRpdFwiLFxuXG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9hcHBzL2NvbnRyb2xQYW5lbC9wYWdlQ29uZmlnQ29udHJvbGxlciddLCBuYXZpZ2F0aW9uKTtcbiAgfVxuXG5cbiAgZ2V0Q3JlYXRlRGFzaGJvYXJkKCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9hcHBzL2NvbnRyb2xQYW5lbC9wYWdlQ29uZmlnQ29udHJvbGxlcicpXG4gIH1cblxuICBzY3JvbGxUb0JvdHRvbSgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2Nyb2xsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnZW5kJyB9KTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIC8vIHNjcm9sbFRvQm90dG9tKCk6IHZvaWQge1xuICAvLyAgIHRoaXMuc2Nyb2xsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID0gdGhpcy5zY3JvbGxDb250YWluZXIubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQ7XG4gIC8vIH1cblxuXG5cbiAgLy8gYWRkUm91dGVzQW5kTmF2aWdhdGUocm91dGVDb25maWcpIHtcbiAgLy8gICBjb25zdCBjb21wb25lbnRNYXAgPSB7XG4gIC8vICAgICAnS3BpVHJlZVZpZXdDb21wb25lbnQnOiBLcGlUcmVlVmlld0NvbXBvbmVudCxcbiAgLy8gICAgICdCb29rbWFya2VkVGVtcGxhdGVDb21wb25lbnQnOiBCb29rbWFya2VkVGVtcGxhdGVDb21wb25lbnRcbiAgLy8gICB9O1xuICAvLyAgIGNvbnN0IGR5bmFtaWNSb3V0ZSA9IHtcbiAgLy8gICAgIHBhdGg6IHJvdXRlQ29uZmlnLnBhdGgsXG4gIC8vICAgICBjb21wb25lbnQ6IGNvbXBvbmVudE1hcFtyb3V0ZUNvbmZpZy5jb21wTmFtZV0sXG4gIC8vICAgfTtcblxuICAvLyAgIC8vIEZpbmQgdGhlIHBhcmVudCByb3V0ZSAoZS5nLiwgTWFpbkxheW91dENvbXBvbmVudClcbiAgLy8gICBjb25zdCBtYWluTGF5b3V0Um91dGUgPSB0aGlzLnJvdXRlci5jb25maWcuZmluZChyb3V0ZSA9PiByb3V0ZS5jb21wb25lbnQgPT09IExheW91dENvbXBvbmVudCk7XG5cbiAgLy8gICBpZiAobWFpbkxheW91dFJvdXRlKSB7XG4gIC8vICAgICBpZiAoIW1haW5MYXlvdXRSb3V0ZS5jaGlsZHJlbikge1xuICAvLyAgICAgICBtYWluTGF5b3V0Um91dGUuY2hpbGRyZW4gPSBbXTtcbiAgLy8gICAgIH1cblxuICAvLyAgICAgLy8gQWRkIHRoZSBkeW5hbWljIHJvdXRlIGFzIGEgY2hpbGQgb2YgdGhlIG1haW4gbGF5b3V0IHJvdXRlXG4gIC8vICAgICBtYWluTGF5b3V0Um91dGUuY2hpbGRyZW4ucHVzaChkeW5hbWljUm91dGUpO1xuICAvLyAgIH0gZWxzZSB7XG4gIC8vICAgICAvLyBGYWxsYmFjazogQWRkIHRoZSByb3V0ZSBkaXJlY3RseSAodGhpcyBtYXkgY2F1c2UgaXNzdWVzIGlmIHRoZSBsYXlvdXQgaXMgbWlzc2luZylcbiAgLy8gICAgIHRoaXMucm91dGVyLmNvbmZpZy5wdXNoKGR5bmFtaWNSb3V0ZSk7XG4gIC8vICAgfVxuXG4gIC8vICAgLy8gTmF2aWdhdGUgdG8gdGhlIG5ld2x5IGFkZGVkIHJvdXRlXG4gIC8vICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3JvdXRlQ29uZmlnLnBhdGhdKTtcbiAgLy8gfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBmbGV4LWF1dG8gbWluLXctMFwiPlxuXG4gICAgPGxpYi1jb21tb24taGVhZGVyIFtwYWdlVGl0bGVdPVwiJyBBcHBsaWNhdGlvbiBQYWdlcydcIj48L2xpYi1jb21tb24taGVhZGVyPlxuXG5cblxuICAgIDxkaXYgY2xhc3M9XCJwLTQgdy1mdWxsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLTMgcC00IGJnLXdoaXRlIGJvcmRlciBib3JkZXItZ3JheS0yMDAgcm91bmRlZC1sZyBzaGFkb3ctbWQgZGFyazpiZy1ncmF5LTgwMCBkYXJrOmJvcmRlci1ncmF5LTcwMFwiPlxuICAgICAgICAgICAgPGg2IGNsYXNzPVwibWItMiB0ZXh0LWxnIHRyYWNraW5nLXRpZ2h0IHRleHQtZ3JheS05MDAgZGFyazp0ZXh0LXdoaXRlIGJvcmRlci1iIHBiLTMgZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRhYmxlIG1yLTJcIj48L2k+IE1hbmFnZSBQYWdlc1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtbC1hdXRvXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ7e2NvbW1vblNlcnZpY2UuYnRuX3ByaW1hcnlfbWR9fVwiIChjbGljayk9XCJjcmVhdGVOZXdUYW1wbGV0ZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGUgTmV3IFBhZ2VcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2g2PlxuICAgICAgICAgICAgPGFwcC1sb2FkZXIgKm5nSWY9XCJpc0xvYWRlclwiPjwvYXBwLWxvYWRlcj5cbiAgICAgICAgICAgIDxkeC1kYXRhLWdyaWQgW2NvbHVtbkF1dG9XaWR0aF09XCJ0cnVlXCIgW2RhdGFTb3VyY2VdPVwidGVtcGxhdGVEYXRhU291cmNlXCIgW2hvdmVyU3RhdGVFbmFibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWlzTG9hZGVyXCIgW3NlbGVjdGVkUm93S2V5c109XCJbXVwiIFtzaG93Qm9yZGVyc109XCJ0cnVlXCIgW3Nob3dDb2x1bW5MaW5lc109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbc2hvd1Jvd0xpbmVzXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8ZHhvLXBhZ2luZyBbcGFnZVNpemVdPVwiMTBcIj48L2R4by1wYWdpbmc+XG4gICAgICAgICAgICAgICAgPGR4by1leHBvcnQgW2VuYWJsZWRdPVwidHJ1ZVwiPjwvZHhvLWV4cG9ydD5cbiAgICAgICAgICAgICAgICA8ZHhvLXNlYXJjaC1wYW5lbCBbaGlnaGxpZ2h0Q2FzZVNlbnNpdGl2ZV09XCJ0cnVlXCIgW3Zpc2libGVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDwvZHhvLXNlYXJjaC1wYW5lbD5cblxuICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInBhZ2VOYW1lXCI+PC9keGktY29sdW1uPlxuICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInBhZ2VUaXRsZVwiPjwvZHhpLWNvbHVtbj5cbiAgICAgICAgICAgICAgICA8IS0tIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInBhZ2VUZW1wbGF0ZVwiPjwvZHhpLWNvbHVtbj4gLS0+XG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwicGFnZUlkXCI+PC9keGktY29sdW1uPlxuICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInBhZ2VVcmxcIj48L2R4aS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgPCEtLSA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJjcmVhdGVkQnlcIj48L2R4aS1jb2x1bW4+IC0tPlxuICAgICAgICAgICAgICAgIDwhLS0gPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiY3JlYXRpb25EYXRlXCI+PC9keGktY29sdW1uPiAtLT5cbiAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJDb25maWd1cmVkXCIgY2VsbFRlbXBsYXRlPVwiY2VsbFRlbXBsYXRlMlwiPjwvZHhpLWNvbHVtbj5cbiAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJhY3Rpb25cIiBjZWxsVGVtcGxhdGU9XCJjZWxsVGVtcGxhdGVcIj48L2R4aS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBkYXRhIG9mICdjZWxsVGVtcGxhdGUnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ7e2NvbW1vblNlcnZpY2UuYnRuX3ByaW1hcnlfbWR9fVwiIChjbGljayk9XCJlZGl0VGVtcGxhdGUoZGF0YS5kYXRhKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgRWRpdFxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInt7Y29tbW9uU2VydmljZS5idG5fc3VjY2Vzc19tZH19XCIgKGNsaWNrKT1cInZpZXdzUGFnZShkYXRhLmRhdGEpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBWaWV3IFBhZ2VcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ7e2NvbW1vblNlcnZpY2UuYnRuX2Rhbmdlcl9tZH19XCIgKGNsaWNrKT1cImRlbGV0ZVRhbXBsZXRlKGRhdGEuZGF0YSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIERlbGV0ZVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGRhdGEgb2YgJ2NlbGxUZW1wbGF0ZTInXCI+XG5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInt7Y29tbW9uU2VydmljZS5idG5fc3VjY2Vzc19tZH19XCIgKGNsaWNrKT1cImNvbmZpZ3VyZWRUZW1wbGF0ZShkYXRhLmRhdGEpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBDb25maWd1cmVcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuXG5cbiAgICAgICAgICAgIDwvZHgtZGF0YS1ncmlkPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgI3Njcm9sbENvbnRhaW5lcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtMlwiICpuZ0lmPVwiaXNOZXdUYW1wbGV0ZUNyZWF0ZVwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibS0zIHAtNCBiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQtbGcgc2hhZG93LW1kIGRhcms6YmctZ3JheS04MDAgZGFyazpib3JkZXItZ3JheS03MDBcIj5cbiAgICAgICAgICAgICAgICA8aDZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYi0yIGZvbnQtYm9sZCB0ZXh0LWxnIHRyYWNraW5nLXRpZ2h0IHRleHQtZ3JheS05MDAgZGFyazp0ZXh0LXdoaXRlIGJvcmRlci1iIHBiLTMgZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10YWJsZSBtci0yXCI+PC9pPiBDcmVhdGUgUGFnZVxuICAgICAgICAgICAgICAgIDwvaDY+XG5cbiAgICAgICAgICAgICAgICA8IS0tIEZsZXggY29udGFpbmVyIGZvciBmb3JtIGZpZWxkcyAtLT5cbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMS8yIHB4LTIgbWItMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgbWItMVwiPlBhZ2UgTmFtZTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IFsobmdNb2RlbCldPVwiZGFzaGJvYXJkQ29uZmlnLnBhZ2VOYW1lXCI+PC9keC10ZXh0LWJveD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEvMiBweC0yIG1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIG1iLTFcIj5QYWdlIFRpdGxlPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZHgtdGV4dC1ib3ggWyhuZ01vZGVsKV09XCJkYXNoYm9hcmRDb25maWcucGFnZVRpdGxlXCI+PC9keC10ZXh0LWJveD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEvMiBweC0yIG1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIG1iLTFcIj5QYWdlIFVSTDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IFsobmdNb2RlbCldPVwiZGFzaGJvYXJkQ29uZmlnLnBhZ2VVcmxcIj48L2R4LXRleHQtYm94PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMS8yIHB4LTIgbWItMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgbWItMVwiPlBhZ2UgVGVtcGxhdGU8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkeC1zZWxlY3QtYm94IFtpdGVtc109XCJjb21wb25lbnRUZW1wbGF0ZXNcIiBkaXNwbGF5RXhwcj1cIml0ZW1cIiB2YWx1ZUV4cHI9XCJjb21wTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJkYXNoYm9hcmRDb25maWcucGFnZVRlbXBsYXRlXCIgc2VhcmNoRW5hYmxlZD1cInRydWVcIj48L2R4LXNlbGVjdC1ib3g+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xLzIgcHgtMiBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBtYi0xXCI+UGFnZSBEb2N1bWVudGF0aW9uIFVybDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IFsobmdNb2RlbCldPVwiZGFzaGJvYXJkQ29uZmlnLnBhZ2VEb2N1bWVudGF0aW9uVXJsXCI+PC9keC10ZXh0LWJveD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEvMiBweC0yIG1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIG1iLTFcIj5QYWdlIEZpbHRlcjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGR4LXNlbGVjdC1ib3ggW2l0ZW1zXT1cImZpbHRlckRhdGFTb3VyY2VcIiBkaXNwbGF5RXhwcj1cImZpbHRlck5hbWVcIiB2YWx1ZUV4cHI9XCJmaWx0ZXJJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJkYXNoYm9hcmRDb25maWcuZmlsdGVySWRcIj48L2R4LXNlbGVjdC1ib3g+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMiBnYXAtNCB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTIgbWItMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgbWItMVwiPlBhZ2UgTmFtZTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IFsobmdNb2RlbCldPVwiZGFzaGJvYXJkQ29uZmlnLnBhZ2VOYW1lXCI+PC9keC10ZXh0LWJveD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC0yIG1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIG1iLTFcIj5QYWdlIFRpdGxlPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZHgtdGV4dC1ib3ggWyhuZ01vZGVsKV09XCJkYXNoYm9hcmRDb25maWcucGFnZVRpdGxlXCI+PC9keC10ZXh0LWJveD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC0yIG1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIG1iLTFcIj5QYWdlIFVSTDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IFsobmdNb2RlbCldPVwiZGFzaGJvYXJkQ29uZmlnLnBhZ2VVcmxcIj48L2R4LXRleHQtYm94PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTIgbWItMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgbWItMVwiPlBhZ2UgVGVtcGxhdGU8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkeC1zZWxlY3QtYm94IFtpdGVtc109XCJjb21wb25lbnRUZW1wbGF0ZXNcIiBkaXNwbGF5RXhwcj1cIml0ZW1cIiB2YWx1ZUV4cHI9XCJjb21wTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJkYXNoYm9hcmRDb25maWcucGFnZVRlbXBsYXRlXCIgW3NlYXJjaEVuYWJsZWRdPVwidHJ1ZVwiPjwvZHgtc2VsZWN0LWJveD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC0yIG1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIG1iLTFcIj5QYWdlIERvY3VtZW50YXRpb24gVXJsPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZHgtdGV4dC1ib3ggWyhuZ01vZGVsKV09XCJkYXNoYm9hcmRDb25maWcucGFnZURvY3VtZW50YXRpb25VcmxcIj48L2R4LXRleHQtYm94PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTIgbWItMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgbWItMVwiPlBhZ2UgRmlsdGVyPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZHgtc2VsZWN0LWJveCBbaXRlbXNdPVwiZmlsdGVyRGF0YVNvdXJjZVwiIGRpc3BsYXlFeHByPVwiZmlsdGVyTmFtZVwiIHZhbHVlRXhwcj1cImZpbHRlcklkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImRhc2hib2FyZENvbmZpZy5maWx0ZXJJZFwiPjwvZHgtc2VsZWN0LWJveD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8IS0tIFN1Ym1pdCBidXR0b24gLS0+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1lbmQgbXgtMSBmbGV4LWdyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInt7Y29tbW9uU2VydmljZS5idG5fc3VjY2Vzc19tZH19IGN1cnNvci1wb2ludGVyIG10LTJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImdldFNhdmVDaGFydENvbmZpZygpXCI+U3VibWl0IFRlbXBsYXRlPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cblxuXG48L2Rpdj4iXX0=
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1jb250cm9sbGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dhbW1hLWFwcC1jb250cm9sbGVyL3NyYy9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9wYWdlLWNvbnRyb2xsZXIvcGFnZS1jb250cm9sbGVyL3BhZ2UtY29udHJvbGxlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYW1tYS1hcHAtY29udHJvbGxlci9zcmMvbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvcGFnZS1jb250cm9sbGVyL3BhZ2UtY29udHJvbGxlci9wYWdlLWNvbnRyb2xsZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBc0IsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVcvQyxNQUFNLE9BQU8sc0JBQXNCO0lBNEJqQyxZQUNVLE1BQWMsRUFBUyxhQUE0QixFQUFVLE9BQWtDLEVBQy9GLE1BQXFCLEVBQVUsbUJBQXdDO1FBRHZFLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBQy9GLFdBQU0sR0FBTixNQUFNLENBQWU7UUFBVSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBN0JqRixvQkFBZSxHQUFHO1lBQ2hCLFFBQVEsRUFBRSxFQUFFO1lBQ1osU0FBUyxFQUFFLEVBQUU7WUFDYixPQUFPLEVBQUUsRUFBRTtZQUNYLFlBQVksRUFBRSxFQUFFO1lBQ2hCLG9CQUFvQixFQUFFLEVBQUU7WUFDeEIsT0FBTyxFQUFFLEVBQUU7WUFDWCxRQUFRLEVBQUUsRUFBRTtTQUNiLENBQUE7UUFD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O1FBQ0YsSUFBRyxJQUFJLENBQUMsWUFBWSxJQUFJLG9DQUFvQyxFQUFDO1lBQzNELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsOENBQThDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUNwRjthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyx5Q0FBeUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQy9FO0lBQ0gsQ0FBQztJQUdELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFBO0lBQ3RFLENBQUM7SUFFRCxjQUFjO1FBQ1osVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDMUYsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQzs7bUhBMUtVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLG1MQ2RuQyw0ek9BeUlNOzJGRDNITyxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UseUJBQXlCOytOQThCRyxlQUFlO3NCQUFwRCxTQUFTO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FeHRyYXMsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XG5pbXBvcnQgeyBjb25maXJtIH0gZnJvbSAnZGV2ZXh0cmVtZS91aS9kaWFsb2cnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Db250ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL2FwcGxpY2F0aW9uLWNvbnRlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBEeW5hbWljUm91dGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcGFnZS10ZW1wbGF0ZXMvZHluYW1pYy1yb3V0ZS1zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1vblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21tb24nO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1kYXNoYm9yZC1jb250cm9sbGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2UtY29udHJvbGxlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhZ2UtY29udHJvbGxlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VDb250cm9sZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBkYXNoYm9hcmRDb25maWcgPSB7XG4gICAgcGFnZU5hbWU6IFwiXCIsXG4gICAgcGFnZVRpdGxlOiBcIlwiLFxuICAgIHBhZ2VVcmw6IFwiXCIsXG4gICAgcGFnZVRlbXBsYXRlOiBcIlwiLFxuICAgIHBhZ2VEb2N1bWVudGF0aW9uVXJsOiBcIlwiLFxuICAgIHdpZGdldHM6IFtdLFxuICAgIGZpbHRlcklkOiBcIlwiXG4gIH1cbiAgaXNOZXdUYW1wbGV0ZUNyZWF0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0xvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHRlbXBsYXRlRGF0YVNvdXJjZTogYW55ID0gW107XG5cbiAgZmlsdGVyRGF0YVNvdXJjZTogYW55O1xuXG4gIGNvbXBvbmVudFRlbXBsYXRlcyA9IFtcbiAgICB7IFwiY29tcE5hbWVcIjogXCJLcGlXaXRoRGF0YVNldFRlc3RDb21wb25lbnRcIiwgXCJpdGVtXCI6IFwiRGVmYXVsdCBLUEkgTGF5b3V0XCIgfSxcbiAgICB7IFwiY29tcE5hbWVcIjogXCJLcGlXaXRoTXVsdGlsYXlvdXRTZXRUZXN0Q29tcG9uZW50XCIsIFwiaXRlbVwiOiBcIk11bHRpcGxlIExheW91dCBLUElcIiB9LFxuICAgIHsgXCJjb21wTmFtZVwiOiBcIkxhbmRpbmdDb21wb25lbnRDb21wb25lbnRcIiwgXCJpdGVtXCI6IFwiRGVmYXVsdCBQYWdlXCIgfSxcbiAgICB7IFwiY29tcE5hbWVcIjogXCJDZHJDb25maWdDb21wb25lbnRcIiwgXCJpdGVtXCI6IFwiQ0RSIENvbmZpZ1wiIH0sXG4gICAgeyBcImNvbXBOYW1lXCI6IFwiQ3JlYXRlS3BpVHJlZUNvbXBvbmVudFwiLCBcIml0ZW1cIjogXCJDcmVhdGUgS1BJIENvbmZpZ1wiIH0sXG4gICAgeyBcImNvbXBOYW1lXCI6IFwiQ3JlYXRlTWV0cmljc0NvbXBvbmVudFwiLCBcIml0ZW1cIjogXCJDcmVhdGUgTWV0cmljc1wiIH0sXG4gIF1cblxuICBAVmlld0NoaWxkKCdzY3JvbGxDb250YWluZXInKSBwcml2YXRlIHNjcm9sbENvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwdWJsaWMgY29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZSwgcHJpdmF0ZSBzZXJ2aWNlOiBBcHBsaWNhdGlvbkNvbnRlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLCBwcml2YXRlIGR5bmFtaWNSb3V0ZVNlcnZpY2U6IER5bmFtaWNSb3V0ZVNlcnZpY2VcbiAgKSB7XG5cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0QXBwUGFnZUNvbmZpZ3MoKTtcbiAgICB0aGlzLmdldEZpbHRlckRhdGFTZXQoKTtcbiAgfVxuICBnZXRGaWx0ZXJEYXRhU2V0KCkge1xuICAgIHRoaXMuc2VydmljZS5nZXRBcHBGaWx0ZXJDb25maWdzKCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5maWx0ZXJEYXRhU291cmNlID0gZGF0YTtcbiAgICAgICAgdGhpcy5pc0xvYWRlciA9IGZhbHNlO1xuICAgICAgfSwgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignVW5leHBlY3RlZCBTZXJ2ZXIgRXhjZXB0aW9uLiBQbGVhc2UgY29udGFjdCBTeXN0ZW0gQWRtaW4uJywgJ1BhZ2UgQ3JlYXRpb24nKVxuXG4gICAgICB9XG4gICAgfSlcbiAgfVxuICBnZXRBcHBQYWdlQ29uZmlncygpIHtcbiAgICB0aGlzLnNlcnZpY2UuZ2V0QXBwUGFnZUNvbmZpZ3MoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnRlbXBsYXRlRGF0YVNvdXJjZSA9IGRhdGE7XG4gICAgICAgIHRoaXMuaXNMb2FkZXIgPSBmYWxzZTtcbiAgICAgIH0sIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ1VuZXhwZWN0ZWQgU2VydmVyIEV4Y2VwdGlvbi4gUGxlYXNlIGNvbnRhY3QgU3lzdGVtIEFkbWluLicsICdQYWdlIENyZWF0aW9uJylcblxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBjcmVhdGVOZXdUYW1wbGV0ZSgpIHtcbiAgICB0aGlzLmlzTmV3VGFtcGxldGVDcmVhdGUgPSB0cnVlO1xuICAgIHRoaXMuZGFzaGJvYXJkQ29uZmlnID0ge1xuICAgICAgcGFnZU5hbWU6IFwiXCIsXG4gICAgICBwYWdlVGl0bGU6IFwiXCIsXG4gICAgICBwYWdlVXJsOiBcIlwiLFxuICAgICAgcGFnZVRlbXBsYXRlOiBcIlwiLFxuICAgICAgcGFnZURvY3VtZW50YXRpb25Vcmw6IFwiXCIsXG4gICAgICB3aWRnZXRzOiBbXSxcbiAgICAgIGZpbHRlcklkOiBcIlwiXG4gICAgfVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zY3JvbGxUb0JvdHRvbSgpO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICB2aWV3c1BhZ2UoaXRlbSkge1xuICAgIGxldCBuYXZpZ2F0aW9uRXh0cmFzOiBOYXZpZ2F0aW9uRXh0cmFzID0ge1xuICAgICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgXCJwYWdlSWRcIjogaXRlbS5wYWdlSWRcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2l0ZW0ucGFnZVVybF0sIG5hdmlnYXRpb25FeHRyYXMpXG4gIH1cbiAgZGVsZXRlVGFtcGxldGUoaXRlbSkge1xuICAgIGxldCByZXN1bHQgPSBjb25maXJtKFwiPGk+QXJlIFlvdSBTdXJlPzwvaT5cIiwgXCJEZWxldGUgRmlsdGVyXCIpO1xuICAgIHJlc3VsdC50aGVuKChkaWFsb2dSZXN1bHQpID0+IHtcbiAgICAgIGlmIChkaWFsb2dSZXN1bHQpIHtcbiAgICAgICAgdGhpcy5pc0xvYWRlciA9IHRydWU7XG4gICAgICAgIHRoaXMuc2VydmljZS5kZWxldGVBcHBQYWdlQ29uZmlnKGl0ZW0ucGFnZUlkKS5zdWJzY3JpYmUoKHZhbDogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5nZXRBcHBQYWdlQ29uZmlncygpO1xuICAgICAgICAgIHRoaXMuaXNMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnRvYXN0ci5zdWNjZXNzKCdQYWdlIERlbGV0ZWQgU3VjY2Vzc2Z1bGx5JylcbiAgICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdVbmV4cGVjdGVkIFNlcnZlciBFeGNlcHRpb24uIFBsZWFzZSBjb250YWN0IFN5c3RlbSBBZG1pbi4nLCAnUnVsZSBNb2R1bGUnKTtcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGVkaXRUZW1wbGF0ZShpdGVtKSB7XG4gICAgdGhpcy5kYXNoYm9hcmRDb25maWcgPSBpdGVtO1xuICAgIHRoaXMuaXNOZXdUYW1wbGV0ZUNyZWF0ZSA9IHRydWU7XG4gICAgdGhpcy5zY3JvbGxUb0JvdHRvbSgpO1xuICB9XG5cbiAgZ2V0U2F2ZUNoYXJ0Q29uZmlnKCkge1xuXG4gICAgaWYgKHRoaXMuZGFzaGJvYXJkQ29uZmlnWydwYWdlSWQnXSkge1xuICAgICAgdGhpcy5zZXJ2aWNlLmVkaXRBcHBQYWdlQ29uZmlnKHRoaXMuZGFzaGJvYXJkQ29uZmlnKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5pc05ld1RhbXBsZXRlQ3JlYXRlID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5nZXRBcHBQYWdlQ29uZmlncygpO1xuICAgICAgICAgIHRoaXMudG9hc3RyLnN1Y2Nlc3MoJ1BhZ2UgVXBkYXRlIFN1Y2Nlc3NmdWxseScpXG4gICAgICAgIH0sIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignVW5leHBlY3RlZCBTZXJ2ZXIgRXhjZXB0aW9uLiBQbGVhc2UgY29udGFjdCBTeXN0ZW0gQWRtaW4uJywgJ1BhZ2UgQ3JlYXRpb24nKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlcnZpY2UuY3JlYXRlQXBwUGFnZUNvbmZpZyh0aGlzLmRhc2hib2FyZENvbmZpZykuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNOZXdUYW1wbGV0ZUNyZWF0ZSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZ2V0QXBwUGFnZUNvbmZpZ3MoKTtcbiAgICAgICAgICB0aGlzLnRvYXN0ci5zdWNjZXNzKCdQYWdlIENyZWF0ZWQgU3VjY2Vzc2Z1bGx5JylcbiAgICAgICAgfSwgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdVbmV4cGVjdGVkIFNlcnZlciBFeGNlcHRpb24uIFBsZWFzZSBjb250YWN0IFN5c3RlbSBBZG1pbi4nLCAnUGFnZSBDcmVhdGlvbicpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgdmlld0NvbmZpZ3VyZWRUZW1wbGF0ZShpdGVtKSB7XG4gICAgbGV0IG5hdmlnYXRpb246IE5hdmlnYXRpb25FeHRyYXMgPSB7XG4gICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAncGFnZUlkJzogaXRlbS5wYWdlSWQsXG4gICAgICAgICdjb250ZW50VHlwZSc6IFwidmlld1wiLFxuXG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9hcHBzL2NvbnRyb2xQYW5lbC9wYWdlQ29uZmlnQ29udHJvbGxlciddLCBuYXZpZ2F0aW9uKTtcbiAgfVxuXG4gIGNvbmZpZ3VyZWRUZW1wbGF0ZShpdGVtKSB7XG4gICAgXG4gICAgbGV0IG5hdmlnYXRpb246IE5hdmlnYXRpb25FeHRyYXMgPSB7XG4gICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAncGFnZUlkJzogaXRlbS5wYWdlSWQsXG4gICAgICAgICdjb250ZW50VHlwZSc6IFwiZWRpdFwiLFxuXG4gICAgICB9XG4gICAgfTtcbiAgICBpZihpdGVtLnBhZ2VUZW1wbGF0ZSA9PSBcIktwaVdpdGhNdWx0aWxheW91dFNldFRlc3RDb21wb25lbnRcIil7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9hcHBzL2NvbnRyb2xQYW5lbC9tdWx0aVBhZ2VDb25maWdDb250cm9sbGVyJ10sIG5hdmlnYXRpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9hcHBzL2NvbnRyb2xQYW5lbC9wYWdlQ29uZmlnQ29udHJvbGxlciddLCBuYXZpZ2F0aW9uKTtcbiAgICB9XG4gIH1cblxuXG4gIGdldENyZWF0ZURhc2hib2FyZCgpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvYXBwcy9jb250cm9sUGFuZWwvcGFnZUNvbmZpZ0NvbnRyb2xsZXInKVxuICB9XG5cbiAgc2Nyb2xsVG9Cb3R0b20oKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNjcm9sbENvbnRhaW5lci5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnLCBibG9jazogJ2VuZCcgfSk7XG4gICAgfSwgMCk7XG4gIH1cblxuICAvLyBzY3JvbGxUb0JvdHRvbSgpOiB2b2lkIHtcbiAgLy8gICB0aGlzLnNjcm9sbENvbnRhaW5lci5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9IHRoaXMuc2Nyb2xsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0O1xuICAvLyB9XG5cblxuXG4gIC8vIGFkZFJvdXRlc0FuZE5hdmlnYXRlKHJvdXRlQ29uZmlnKSB7XG4gIC8vICAgY29uc3QgY29tcG9uZW50TWFwID0ge1xuICAvLyAgICAgJ0twaVRyZWVWaWV3Q29tcG9uZW50JzogS3BpVHJlZVZpZXdDb21wb25lbnQsXG4gIC8vICAgICAnQm9va21hcmtlZFRlbXBsYXRlQ29tcG9uZW50JzogQm9va21hcmtlZFRlbXBsYXRlQ29tcG9uZW50XG4gIC8vICAgfTtcbiAgLy8gICBjb25zdCBkeW5hbWljUm91dGUgPSB7XG4gIC8vICAgICBwYXRoOiByb3V0ZUNvbmZpZy5wYXRoLFxuICAvLyAgICAgY29tcG9uZW50OiBjb21wb25lbnRNYXBbcm91dGVDb25maWcuY29tcE5hbWVdLFxuICAvLyAgIH07XG5cbiAgLy8gICAvLyBGaW5kIHRoZSBwYXJlbnQgcm91dGUgKGUuZy4sIE1haW5MYXlvdXRDb21wb25lbnQpXG4gIC8vICAgY29uc3QgbWFpbkxheW91dFJvdXRlID0gdGhpcy5yb3V0ZXIuY29uZmlnLmZpbmQocm91dGUgPT4gcm91dGUuY29tcG9uZW50ID09PSBMYXlvdXRDb21wb25lbnQpO1xuXG4gIC8vICAgaWYgKG1haW5MYXlvdXRSb3V0ZSkge1xuICAvLyAgICAgaWYgKCFtYWluTGF5b3V0Um91dGUuY2hpbGRyZW4pIHtcbiAgLy8gICAgICAgbWFpbkxheW91dFJvdXRlLmNoaWxkcmVuID0gW107XG4gIC8vICAgICB9XG5cbiAgLy8gICAgIC8vIEFkZCB0aGUgZHluYW1pYyByb3V0ZSBhcyBhIGNoaWxkIG9mIHRoZSBtYWluIGxheW91dCByb3V0ZVxuICAvLyAgICAgbWFpbkxheW91dFJvdXRlLmNoaWxkcmVuLnB1c2goZHluYW1pY1JvdXRlKTtcbiAgLy8gICB9IGVsc2Uge1xuICAvLyAgICAgLy8gRmFsbGJhY2s6IEFkZCB0aGUgcm91dGUgZGlyZWN0bHkgKHRoaXMgbWF5IGNhdXNlIGlzc3VlcyBpZiB0aGUgbGF5b3V0IGlzIG1pc3NpbmcpXG4gIC8vICAgICB0aGlzLnJvdXRlci5jb25maWcucHVzaChkeW5hbWljUm91dGUpO1xuICAvLyAgIH1cblxuICAvLyAgIC8vIE5hdmlnYXRlIHRvIHRoZSBuZXdseSBhZGRlZCByb3V0ZVxuICAvLyAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtyb3V0ZUNvbmZpZy5wYXRoXSk7XG4gIC8vIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZmxleC1hdXRvIG1pbi13LTBcIj5cblxuICAgIDxsaWItY29tbW9uLWhlYWRlciBbcGFnZVRpdGxlXT1cIicgQXBwbGljYXRpb24gUGFnZXMnXCI+PC9saWItY29tbW9uLWhlYWRlcj5cblxuXG5cbiAgICA8ZGl2IGNsYXNzPVwicC00IHctZnVsbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS0zIHAtNCBiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQtbGcgc2hhZG93LW1kIGRhcms6YmctZ3JheS04MDAgZGFyazpib3JkZXItZ3JheS03MDBcIj5cbiAgICAgICAgICAgIDxoNiBjbGFzcz1cIm1iLTIgdGV4dC1sZyB0cmFja2luZy10aWdodCB0ZXh0LWdyYXktOTAwIGRhcms6dGV4dC13aGl0ZSBib3JkZXItYiBwYi0zIGZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10YWJsZSBtci0yXCI+PC9pPiBNYW5hZ2UgUGFnZXNcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWwtYXV0b1wiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwie3tjb21tb25TZXJ2aWNlLmJ0bl9wcmltYXJ5X21kfX1cIiAoY2xpY2spPVwiY3JlYXRlTmV3VGFtcGxldGUoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlIE5ldyBQYWdlXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9oNj5cbiAgICAgICAgICAgIDxhcHAtbG9hZGVyICpuZ0lmPVwiaXNMb2FkZXJcIj48L2FwcC1sb2FkZXI+XG4gICAgICAgICAgICA8ZHgtZGF0YS1ncmlkIFtjb2x1bW5BdXRvV2lkdGhdPVwidHJ1ZVwiIFtkYXRhU291cmNlXT1cInRlbXBsYXRlRGF0YVNvdXJjZVwiIFtob3ZlclN0YXRlRW5hYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFpc0xvYWRlclwiIFtzZWxlY3RlZFJvd0tleXNdPVwiW11cIiBbc2hvd0JvcmRlcnNdPVwidHJ1ZVwiIFtzaG93Q29sdW1uTGluZXNdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3Nob3dSb3dMaW5lc109XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgPGR4by1wYWdpbmcgW3BhZ2VTaXplXT1cIjEwXCI+PC9keG8tcGFnaW5nPlxuICAgICAgICAgICAgICAgIDxkeG8tZXhwb3J0IFtlbmFibGVkXT1cInRydWVcIj48L2R4by1leHBvcnQ+XG4gICAgICAgICAgICAgICAgPGR4by1zZWFyY2gtcGFuZWwgW2hpZ2hsaWdodENhc2VTZW5zaXRpdmVdPVwidHJ1ZVwiIFt2aXNpYmxlXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8L2R4by1zZWFyY2gtcGFuZWw+XG5cbiAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJwYWdlTmFtZVwiPjwvZHhpLWNvbHVtbj5cbiAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJwYWdlVGl0bGVcIj48L2R4aS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgPCEtLSA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJwYWdlVGVtcGxhdGVcIj48L2R4aS1jb2x1bW4+IC0tPlxuICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInBhZ2VJZFwiPjwvZHhpLWNvbHVtbj5cbiAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJwYWdlVXJsXCI+PC9keGktY29sdW1uPlxuICAgICAgICAgICAgICAgIDwhLS0gPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiY3JlYXRlZEJ5XCI+PC9keGktY29sdW1uPiAtLT5cbiAgICAgICAgICAgICAgICA8IS0tIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImNyZWF0aW9uRGF0ZVwiPjwvZHhpLWNvbHVtbj4gLS0+XG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiQ29uZmlndXJlZFwiIGNlbGxUZW1wbGF0ZT1cImNlbGxUZW1wbGF0ZTJcIj48L2R4aS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiYWN0aW9uXCIgY2VsbFRlbXBsYXRlPVwiY2VsbFRlbXBsYXRlXCI+PC9keGktY29sdW1uPlxuICAgICAgICAgICAgICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgZGF0YSBvZiAnY2VsbFRlbXBsYXRlJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwie3tjb21tb25TZXJ2aWNlLmJ0bl9wcmltYXJ5X21kfX1cIiAoY2xpY2spPVwiZWRpdFRlbXBsYXRlKGRhdGEuZGF0YSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEVkaXRcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ7e2NvbW1vblNlcnZpY2UuYnRuX3N1Y2Nlc3NfbWR9fVwiIChjbGljayk9XCJ2aWV3c1BhZ2UoZGF0YS5kYXRhKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgVmlldyBQYWdlXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwie3tjb21tb25TZXJ2aWNlLmJ0bl9kYW5nZXJfbWR9fVwiIChjbGljayk9XCJkZWxldGVUYW1wbGV0ZShkYXRhLmRhdGEpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBEZWxldGVcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBkYXRhIG9mICdjZWxsVGVtcGxhdGUyJ1wiPlxuXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ7e2NvbW1vblNlcnZpY2UuYnRuX3N1Y2Nlc3NfbWR9fVwiIChjbGljayk9XCJjb25maWd1cmVkVGVtcGxhdGUoZGF0YS5kYXRhKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJlXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cblxuXG4gICAgICAgICAgICA8L2R4LWRhdGEtZ3JpZD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICNzY3JvbGxDb250YWluZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwLTJcIiAqbmdJZj1cImlzTmV3VGFtcGxldGVDcmVhdGVcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm0tMyBwLTQgYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLWxnIHNoYWRvdy1tZCBkYXJrOmJnLWdyYXktODAwIGRhcms6Ym9yZGVyLWdyYXktNzAwXCI+XG4gICAgICAgICAgICAgICAgPGg2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWItMiBmb250LWJvbGQgdGV4dC1sZyB0cmFja2luZy10aWdodCB0ZXh0LWdyYXktOTAwIGRhcms6dGV4dC13aGl0ZSBib3JkZXItYiBwYi0zIGZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGFibGUgbXItMlwiPjwvaT4gQ3JlYXRlIFBhZ2VcbiAgICAgICAgICAgICAgICA8L2g2PlxuXG4gICAgICAgICAgICAgICAgPCEtLSBGbGV4IGNvbnRhaW5lciBmb3IgZm9ybSBmaWVsZHMgLS0+XG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgdy1mdWxsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEvMiBweC0yIG1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIG1iLTFcIj5QYWdlIE5hbWU8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBbKG5nTW9kZWwpXT1cImRhc2hib2FyZENvbmZpZy5wYWdlTmFtZVwiPjwvZHgtdGV4dC1ib3g+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xLzIgcHgtMiBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBtYi0xXCI+UGFnZSBUaXRsZTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IFsobmdNb2RlbCldPVwiZGFzaGJvYXJkQ29uZmlnLnBhZ2VUaXRsZVwiPjwvZHgtdGV4dC1ib3g+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xLzIgcHgtMiBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBtYi0xXCI+UGFnZSBVUkw8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBbKG5nTW9kZWwpXT1cImRhc2hib2FyZENvbmZpZy5wYWdlVXJsXCI+PC9keC10ZXh0LWJveD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEvMiBweC0yIG1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIG1iLTFcIj5QYWdlIFRlbXBsYXRlPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZHgtc2VsZWN0LWJveCBbaXRlbXNdPVwiY29tcG9uZW50VGVtcGxhdGVzXCIgZGlzcGxheUV4cHI9XCJpdGVtXCIgdmFsdWVFeHByPVwiY29tcE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZGFzaGJvYXJkQ29uZmlnLnBhZ2VUZW1wbGF0ZVwiIHNlYXJjaEVuYWJsZWQ9XCJ0cnVlXCI+PC9keC1zZWxlY3QtYm94PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMS8yIHB4LTIgbWItMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgbWItMVwiPlBhZ2UgRG9jdW1lbnRhdGlvbiBVcmw8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBbKG5nTW9kZWwpXT1cImRhc2hib2FyZENvbmZpZy5wYWdlRG9jdW1lbnRhdGlvblVybFwiPjwvZHgtdGV4dC1ib3g+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xLzIgcHgtMiBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBtYi0xXCI+UGFnZSBGaWx0ZXI8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkeC1zZWxlY3QtYm94IFtpdGVtc109XCJmaWx0ZXJEYXRhU291cmNlXCIgZGlzcGxheUV4cHI9XCJmaWx0ZXJOYW1lXCIgdmFsdWVFeHByPVwiZmlsdGVySWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZGFzaGJvYXJkQ29uZmlnLmZpbHRlcklkXCI+PC9keC1zZWxlY3QtYm94PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTIgZ2FwLTQgdy1mdWxsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC0yIG1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIG1iLTFcIj5QYWdlIE5hbWU8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBbKG5nTW9kZWwpXT1cImRhc2hib2FyZENvbmZpZy5wYWdlTmFtZVwiPjwvZHgtdGV4dC1ib3g+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtMiBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBtYi0xXCI+UGFnZSBUaXRsZTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IFsobmdNb2RlbCldPVwiZGFzaGJvYXJkQ29uZmlnLnBhZ2VUaXRsZVwiPjwvZHgtdGV4dC1ib3g+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtMiBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBtYi0xXCI+UGFnZSBVUkw8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBbKG5nTW9kZWwpXT1cImRhc2hib2FyZENvbmZpZy5wYWdlVXJsXCI+PC9keC10ZXh0LWJveD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC0yIG1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIG1iLTFcIj5QYWdlIFRlbXBsYXRlPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZHgtc2VsZWN0LWJveCBbaXRlbXNdPVwiY29tcG9uZW50VGVtcGxhdGVzXCIgZGlzcGxheUV4cHI9XCJpdGVtXCIgdmFsdWVFeHByPVwiY29tcE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZGFzaGJvYXJkQ29uZmlnLnBhZ2VUZW1wbGF0ZVwiIFtzZWFyY2hFbmFibGVkXT1cInRydWVcIj48L2R4LXNlbGVjdC1ib3g+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtMiBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBtYi0xXCI+UGFnZSBEb2N1bWVudGF0aW9uIFVybDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IFsobmdNb2RlbCldPVwiZGFzaGJvYXJkQ29uZmlnLnBhZ2VEb2N1bWVudGF0aW9uVXJsXCI+PC9keC10ZXh0LWJveD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC0yIG1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIG1iLTFcIj5QYWdlIEZpbHRlcjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGR4LXNlbGVjdC1ib3ggW2l0ZW1zXT1cImZpbHRlckRhdGFTb3VyY2VcIiBkaXNwbGF5RXhwcj1cImZpbHRlck5hbWVcIiB2YWx1ZUV4cHI9XCJmaWx0ZXJJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJkYXNoYm9hcmRDb25maWcuZmlsdGVySWRcIj48L2R4LXNlbGVjdC1ib3g+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPCEtLSBTdWJtaXQgYnV0dG9uIC0tPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktZW5kIG14LTEgZmxleC1ncm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ7e2NvbW1vblNlcnZpY2UuYnRuX3N1Y2Nlc3NfbWR9fSBjdXJzb3ItcG9pbnRlciBtdC0yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnZXRTYXZlQ2hhcnRDb25maWcoKVwiPlN1Ym1pdCBUZW1wbGF0ZTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG5cblxuPC9kaXY+Il19
|
|
@@ -5,9 +5,10 @@ import * as i1 from "@angular/router";
|
|
|
5
5
|
import * as i2 from "@angular/common";
|
|
6
6
|
import * as i3 from "devextreme-angular/core";
|
|
7
7
|
import * as i4 from "devextreme-angular/ui/popup";
|
|
8
|
-
import * as i5 from "
|
|
9
|
-
import * as i6 from "
|
|
10
|
-
import * as i7 from "../../gamma-
|
|
8
|
+
import * as i5 from "devextreme-angular/ui/select-box";
|
|
9
|
+
import * as i6 from "@angular/material/icon";
|
|
10
|
+
import * as i7 from "../../gamma-advance-filter/gamma-advance-filter.component";
|
|
11
|
+
import * as i8 from "../../gamma-bread-crumbs/bread-crumbs.component";
|
|
11
12
|
export class AppAdvanceHeaderComponent {
|
|
12
13
|
constructor(activatedRoute, route) {
|
|
13
14
|
this.activatedRoute = activatedRoute;
|
|
@@ -91,6 +92,19 @@ export class AppAdvanceHeaderComponent {
|
|
|
91
92
|
}
|
|
92
93
|
}
|
|
93
94
|
}
|
|
95
|
+
set contextFilterItems(value) {
|
|
96
|
+
if (!value) {
|
|
97
|
+
this.contextFilterItemsForFilter = value;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
this.contextFilterItemsForFilter = [];
|
|
101
|
+
value.forEach(element => {
|
|
102
|
+
if (element.filterType == "context") {
|
|
103
|
+
this.contextFilterItemsForFilter.push(element);
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
94
108
|
ngOnInit() {
|
|
95
109
|
}
|
|
96
110
|
pageAutoloadStopRun() {
|
|
@@ -178,10 +192,10 @@ export class AppAdvanceHeaderComponent {
|
|
|
178
192
|
}
|
|
179
193
|
}
|
|
180
194
|
AppAdvanceHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AppAdvanceHeaderComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
181
|
-
AppAdvanceHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: AppAdvanceHeaderComponent, selector: "app-advance-header", inputs: { pageTitle: "pageTitle", bread_crumbs_container: "bread_crumbs_container", isEditButton: "isEditButton", isAdvanceButton: "isAdvanceButton", selectedDates: "selectedDates", filterItems: "filterItems" }, outputs: { toggleEvent: "toggleEvent", selectedDateRangeOrServtype: "selectedDateRangeOrServtype", getFilterPageConfig: "getFilterPageConfig" }, ngImport: i0, template: "<div class=\"flex flex-col mb-2\">\n <div class=\"flex justify-between border-b dark:bg-transparent\">\n <div class=\"flex flex-col ml-1\">\n <div class=\"flex items-center float-start\">\n <div class=\"flex items-center overflow-hidden\">\n <mat-icon class=\"icon-size-2\" [svgIcon]=\"'heroicons_solid:template'\"></mat-icon>\n </div>\n <h2\n class=\"text-2xl md:text-2xl py-3 font-extrabold items-center ml-2 tracking-tight leading-5 truncate capitalize\">\n {{ pageTitle }}\n </h2>\n </div>\n <div class=\"\">\n <!-- INCOMING -->\n <gamma-bread-crumbs [kpi_data_container]=\"bread_crumbs_container\"></gamma-bread-crumbs>\n </div>\n </div>\n <div class=\"flex justify-between items-center border-l-2 p-0 m-0\">\n\n <div class=\"mx-2\" *ngIf=\"isEditButton\">\n <div (click)=\"editKpi()\"\n class=\"bg-blue-700 cursor-pointer dark:bg-blue-600 dark:focus:ring-blue-800 dark:hover:bg-blue-700 focus:outline-none focus:ring-4 focus:ring-blue-300 font-medium hover:bg-blue-800 mr-2 px-2.5 py-2 rounded text-sm text-white ng-star-inserted\">\n Edit\n </div>\n </div>\n <div class=\"w-1 h-full border-l-2\" *ngIf=\"
|
|
195
|
+
AppAdvanceHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: AppAdvanceHeaderComponent, selector: "app-advance-header", inputs: { pageTitle: "pageTitle", bread_crumbs_container: "bread_crumbs_container", isEditButton: "isEditButton", isAdvanceButton: "isAdvanceButton", selectedDates: "selectedDates", filterItems: "filterItems", contextFilterItems: "contextFilterItems" }, outputs: { toggleEvent: "toggleEvent", selectedDateRangeOrServtype: "selectedDateRangeOrServtype", getFilterPageConfig: "getFilterPageConfig" }, ngImport: i0, template: "<div class=\"flex flex-col mb-2\">\n <div class=\"flex justify-between border-b dark:bg-transparent\">\n <div class=\"flex flex-col ml-1\">\n <div class=\"flex items-center float-start\">\n <div class=\"flex items-center overflow-hidden\">\n <mat-icon class=\"icon-size-2\" [svgIcon]=\"'heroicons_solid:template'\"></mat-icon>\n </div>\n <h2\n class=\"text-2xl md:text-2xl py-3 font-extrabold items-center ml-2 tracking-tight leading-5 truncate capitalize\">\n {{ pageTitle }}\n </h2>\n </div>\n <div class=\"\">\n <!-- INCOMING -->\n <gamma-bread-crumbs [kpi_data_container]=\"bread_crumbs_container\"></gamma-bread-crumbs>\n </div>\n </div>\n <div class=\"flex justify-between items-center border-l-2 p-0 m-0\">\n\n <div class=\"mx-2\" *ngIf=\"isEditButton\">\n <div (click)=\"editKpi()\"\n class=\"bg-blue-700 cursor-pointer dark:bg-blue-600 dark:focus:ring-blue-800 dark:hover:bg-blue-700 focus:outline-none focus:ring-4 focus:ring-blue-300 font-medium hover:bg-blue-800 mr-2 px-2.5 py-2 rounded text-sm text-white ng-star-inserted\">\n Edit\n </div>\n </div>\n <div class=\"w-1 h-full border-l-2\"></div>\n <ng-container *ngIf=\"contextFilterItemsForFilter && contextFilterItemsForFilter.length !== 0\">\n <div class=\"mx-2\">\n <dx-select-box [dataSource]=\"contextFilterItemsForFilter\" displayExpr=\"label\" value=\"defaultFilterValue\"></dx-select-box>\n </div>\n </ng-container>\n \n <div class=\"w-1 h-full border-l-2\"></div>\n <div class=\"mx-2\">\n <div class=\"cursor-pointer\" (click)=\"advanceFilterKpi()\"> {{selectedDetesforView}}</div>\n </div>\n <div class=\"w-1 h-full border-l-2\"></div>\n <div class=\"mx-2\" *ngIf=\"isAdvanceButton\">\n <button class=\"mat-focus-indicator mat-menu-trigger mat-icon-button mat-button-base\"\n aria-haspopup=\"menu\" (click)=\"advanceFilterKpi()\">\n <span class=\"mat-button-wrapper\">\n <span class=\"relative\">\n <mat-icon title=\"Filters\" [svgIcon]=\"'heroicons_outline:adjustments'\">\n </mat-icon>\n </span>\n </span>\n </button>\n </div>\n\n\n <div class=\"w-1 h-full border-l-2\"></div>\n \n\n </div>\n </div>\n</div>\n\n<dx-popup [(visible)]=\"isAdvanceFilter\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"600\"\n [height]=\"'auto'\" [showTitle]=\"true\" class=\"popup\" title=\"Filter\">\n <div *dxTemplate=\"let data of 'content'\">\n <app-gamma-advance-filter [kpiId]=\"'231212'\" [filterOperatorData]=\"filterItemsForFilter\"\n [isButtonDesiable]=\"isAdvanceFilter\" [filterStartDate]=\"filterStartDate\" [filterEndDate]=\"filterEndDate\"\n (filterDataObject)=\"getSerchFilter($event)\"></app-gamma-advance-filter>\n </div>\n</dx-popup>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i4.DxPopupComponent, selector: "dx-popup", inputs: ["accessKey", "animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "dragAndResizeArea", "dragEnabled", "dragOutsideBoundary", "elementAttr", "focusStateEnabled", "fullScreen", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "resizeEnabled", "restorePosition", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showTitle", "tabIndex", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onResize", "onResizeEnd", "onResizeStart", "onShowing", "onShown", "onTitleRendered", "accessKeyChange", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "dragAndResizeAreaChange", "dragEnabledChange", "dragOutsideBoundaryChange", "elementAttrChange", "focusStateEnabledChange", "fullScreenChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "resizeEnabledChange", "restorePositionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showTitleChange", "tabIndexChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: i5.DxSelectBoxComponent, selector: "dx-select-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "buttons", "dataSource", "deferRendering", "disabled", "displayExpr", "displayValue", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "items", "itemTemplate", "label", "labelMode", "maxLength", "minSearchLength", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectedItem", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showSelectionControls", "spellcheck", "stylingMode", "tabIndex", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCustomItemCreating", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "displayValueChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxLengthChange", "minSearchLengthChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectedItemChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showSelectionControlsChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.GammaAdvanceFilterComponent, selector: "app-gamma-advance-filter", inputs: ["kpiId", "filterStartDate", "filterEndDate", "browser_api_config", "isButtonDesiable", "filterOperatorData"], outputs: ["filterDataObject"] }, { kind: "component", type: i8.BreadCrumbsComponent, selector: "gamma-bread-crumbs", inputs: ["kpi_data_container"] }] });
|
|
182
196
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AppAdvanceHeaderComponent, decorators: [{
|
|
183
197
|
type: Component,
|
|
184
|
-
args: [{ selector: 'app-advance-header', template: "<div class=\"flex flex-col mb-2\">\n <div class=\"flex justify-between border-b dark:bg-transparent\">\n <div class=\"flex flex-col ml-1\">\n <div class=\"flex items-center float-start\">\n <div class=\"flex items-center overflow-hidden\">\n <mat-icon class=\"icon-size-2\" [svgIcon]=\"'heroicons_solid:template'\"></mat-icon>\n </div>\n <h2\n class=\"text-2xl md:text-2xl py-3 font-extrabold items-center ml-2 tracking-tight leading-5 truncate capitalize\">\n {{ pageTitle }}\n </h2>\n </div>\n <div class=\"\">\n <!-- INCOMING -->\n <gamma-bread-crumbs [kpi_data_container]=\"bread_crumbs_container\"></gamma-bread-crumbs>\n </div>\n </div>\n <div class=\"flex justify-between items-center border-l-2 p-0 m-0\">\n\n <div class=\"mx-2\" *ngIf=\"isEditButton\">\n <div (click)=\"editKpi()\"\n class=\"bg-blue-700 cursor-pointer dark:bg-blue-600 dark:focus:ring-blue-800 dark:hover:bg-blue-700 focus:outline-none focus:ring-4 focus:ring-blue-300 font-medium hover:bg-blue-800 mr-2 px-2.5 py-2 rounded text-sm text-white ng-star-inserted\">\n Edit\n </div>\n </div>\n <div class=\"w-1 h-full border-l-2\" *ngIf=\"
|
|
198
|
+
args: [{ selector: 'app-advance-header', template: "<div class=\"flex flex-col mb-2\">\n <div class=\"flex justify-between border-b dark:bg-transparent\">\n <div class=\"flex flex-col ml-1\">\n <div class=\"flex items-center float-start\">\n <div class=\"flex items-center overflow-hidden\">\n <mat-icon class=\"icon-size-2\" [svgIcon]=\"'heroicons_solid:template'\"></mat-icon>\n </div>\n <h2\n class=\"text-2xl md:text-2xl py-3 font-extrabold items-center ml-2 tracking-tight leading-5 truncate capitalize\">\n {{ pageTitle }}\n </h2>\n </div>\n <div class=\"\">\n <!-- INCOMING -->\n <gamma-bread-crumbs [kpi_data_container]=\"bread_crumbs_container\"></gamma-bread-crumbs>\n </div>\n </div>\n <div class=\"flex justify-between items-center border-l-2 p-0 m-0\">\n\n <div class=\"mx-2\" *ngIf=\"isEditButton\">\n <div (click)=\"editKpi()\"\n class=\"bg-blue-700 cursor-pointer dark:bg-blue-600 dark:focus:ring-blue-800 dark:hover:bg-blue-700 focus:outline-none focus:ring-4 focus:ring-blue-300 font-medium hover:bg-blue-800 mr-2 px-2.5 py-2 rounded text-sm text-white ng-star-inserted\">\n Edit\n </div>\n </div>\n <div class=\"w-1 h-full border-l-2\"></div>\n <ng-container *ngIf=\"contextFilterItemsForFilter && contextFilterItemsForFilter.length !== 0\">\n <div class=\"mx-2\">\n <dx-select-box [dataSource]=\"contextFilterItemsForFilter\" displayExpr=\"label\" value=\"defaultFilterValue\"></dx-select-box>\n </div>\n </ng-container>\n \n <div class=\"w-1 h-full border-l-2\"></div>\n <div class=\"mx-2\">\n <div class=\"cursor-pointer\" (click)=\"advanceFilterKpi()\"> {{selectedDetesforView}}</div>\n </div>\n <div class=\"w-1 h-full border-l-2\"></div>\n <div class=\"mx-2\" *ngIf=\"isAdvanceButton\">\n <button class=\"mat-focus-indicator mat-menu-trigger mat-icon-button mat-button-base\"\n aria-haspopup=\"menu\" (click)=\"advanceFilterKpi()\">\n <span class=\"mat-button-wrapper\">\n <span class=\"relative\">\n <mat-icon title=\"Filters\" [svgIcon]=\"'heroicons_outline:adjustments'\">\n </mat-icon>\n </span>\n </span>\n </button>\n </div>\n\n\n <div class=\"w-1 h-full border-l-2\"></div>\n \n\n </div>\n </div>\n</div>\n\n<dx-popup [(visible)]=\"isAdvanceFilter\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"600\"\n [height]=\"'auto'\" [showTitle]=\"true\" class=\"popup\" title=\"Filter\">\n <div *dxTemplate=\"let data of 'content'\">\n <app-gamma-advance-filter [kpiId]=\"'231212'\" [filterOperatorData]=\"filterItemsForFilter\"\n [isButtonDesiable]=\"isAdvanceFilter\" [filterStartDate]=\"filterStartDate\" [filterEndDate]=\"filterEndDate\"\n (filterDataObject)=\"getSerchFilter($event)\"></app-gamma-advance-filter>\n </div>\n</dx-popup>" }]
|
|
185
199
|
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }]; }, propDecorators: { pageTitle: [{
|
|
186
200
|
type: Input
|
|
187
201
|
}], bread_crumbs_container: [{
|
|
@@ -201,5 +215,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
201
215
|
}], filterItems: [{
|
|
202
216
|
type: Input,
|
|
203
217
|
args: ['filterItems']
|
|
218
|
+
}], contextFilterItems: [{
|
|
219
|
+
type: Input,
|
|
220
|
+
args: ['contextFilterItems']
|
|
204
221
|
}] } });
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYW1tYS1hcHAtY29udHJvbGxlci9zcmMvbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9hcHAtYWR2YW5jZS1oZWFkZXIvYXBwLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYW1tYS1hcHAtY29udHJvbGxlci9zcmMvbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9hcHAtYWR2YW5jZS1oZWFkZXIvYXBwLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sTUFBTSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7QUFNOUMsTUFBTSxPQUFPLHlCQUF5QjtJQTZHbEMsWUFDWSxjQUE4QixFQUM5QixLQUFhO1FBRGIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFVBQUssR0FBTCxLQUFLLENBQVE7UUE1R2hCLGlCQUFZLEdBQVksSUFBSSxDQUFDO1FBSzVCLGdCQUFXLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFTekUsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFFdkIsZ0JBQVcsR0FBRyxlQUFlLENBQUM7UUFFdkIsY0FBUyxHQUFRLEVBQUUsQ0FBQztRQUNwQixzQkFBaUIsR0FBUTtZQUM1QixNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFO1lBQ2hDLG1CQUFtQixFQUFFLElBQUk7WUFDekIsb0JBQW9CLEVBQUUsSUFBSTtZQUMxQixNQUFNLEVBQUU7Z0JBQ0os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SCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO1NBQ2xDO1FBSUQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUN6QyxDQUFDOztzSEEzTlEseUJBQXlCOzBHQUF6Qix5QkFBeUIsK1pDUnRDLHFuSEFzRVc7MkZEOURFLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDSSxvQkFBb0I7MEhBS3JCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBb0NVLDJCQUEyQjtzQkFBM0MsTUFBTTtnQkFDVSxtQkFBbUI7c0JBQW5DLE1BQU07Z0JBTUgsV0FBVztzQkFEZCxLQUFLO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkV4dHJhcywgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCBtb21lbnQgZnJvbSAnLi8uLi8uLi8uLi9tb21lbnQtaGVscGVyJztcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLWFkdmFuY2UtaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXBwLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYXBwLWhlYWRlci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBBcHBBZHZhbmNlSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBwYWdlVGl0bGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBicmVhZF9jcnVtYnNfY29udGFpbmVyOiBhbnk7XG4gICAgQElucHV0KCkgaXNFZGl0QnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBpc0FkdmFuY2VCdXR0b246IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSBzZWxlY3RlZERhdGVzOiBhbnk7XG5cbiAgICBAT3V0cHV0KCkgdG9nZ2xlRXZlbnQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgaXNBZHZhbmNlRmlsdGVyOiBib29sZWFuO1xuICAgIGJyb3dzZXJfY29uZmlnOiBhbnk7XG4gICAga3BpX2lkOiBhbnk7XG5cbiAgICBmaWx0ZXJTdGFydERhdGU7XG4gICAgZmlsdGVyRW5kRGF0ZTtcbiAgICBmaWx0ZXJPcHRpb25zO1xuXG4gICAgYXV0b2xvYWRfYnV0dG9uID0gdHJ1ZTtcbiAgICBwcml2YXRlIHRpbWVfb3V0X2lkO1xuICAgIHRvb2xUaXBUZXh0ID0gJ0J5IERhdGUgUmFuZ2UnO1xuXG4gICAgcHVibGljIGRhdGVyYW5nZTogYW55ID0ge307XG4gICAgcHVibGljIGRhdGVyYW5nZV9vcHRpb25zOiBhbnkgPSB7XG4gICAgICAgIGxvY2FsZTogeyBmb3JtYXQ6ICdZWVlZLU1NLUREJyB9LFxuICAgICAgICBhbHdheXNTaG93Q2FsZW5kYXJzOiB0cnVlLFxuICAgICAgICBzaG93Q3VzdG9tUmFuZ2VMYWJlbDogdHJ1ZSxcbiAgICAgICAgcmFuZ2VzOiB7XG4gICAgICAgICAgICBUb2RheTogW21vbWVudCgpLCBtb21lbnQoKV0sXG4gICAgICAgICAgICAvLyBZZXN0ZXJkYXk6IFttb21lbnQoKS5zdWJ0cmFjdCgxLCAnZGF5cycpLCBtb21lbnQoKS5zdWJ0cmFjdCgxLCAnZGF5cycpXSxcbiAgICAgICAgICAgICdMYXN0IDEgTW9udGgnOiBbbW9tZW50KCkuc3VidHJhY3QoMzAsICdkYXlzJyksIG1vbWVudCgpXSxcbiAgICAgICAgICAgICdMYXN0IDMgTW9udGgnOiBbbW9tZW50KCkuc3VidHJhY3QoOTEsICdkYXlzJyksIG1vbWVudCgpXSxcbiAgICAgICAgICAgICdMYXN0IDYgTW9udGgnOiBbbW9tZW50KCkuc3VidHJhY3QoMTgyLCAnZGF5cycpLCBtb21lbnQoKV0sXG4gICAgICAgICAgICAnTGFzdCAxMiBNb250aCc6IFttb21lbnQoKS5zdWJ0cmFjdCgzNjUsICdkYXlzJyksIG1vbWVudCgpXSxcbiAgICAgICAgICAgICdMYXN0IDEzIE1vbnRocyc6IFtcbiAgICAgICAgICAgICAgICBtb21lbnQoKS5zdWJ0cmFjdCgxMiwgJ21vbnRoJykuc3RhcnRPZignbW9udGgnKSxcbiAgICAgICAgICAgICAgICBtb21lbnQoKSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAnVGhpcyBNb250aCc6IFttb21lbnQoKS5zdGFydE9mKCdtb250aCcpLCBtb21lbnQoKS5lbmRPZignbW9udGgnKV0sXG4gICAgICAgIH0sXG4gICAgfTtcblxuICAgIHNydlR5cGVEYXRhU291cmNlOiBhbnkgPSBbXTtcbiAgICBzcnZUeXBlRGlzcGxheVZhbHVlOiBhbnkgPSBbXTtcbiAgICBzZWxlY3RlZERldGVzZm9yVmlldzogYW55O1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgc2VsZWN0ZWREYXRlUmFuZ2VPclNlcnZ0eXBlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGdldEZpbHRlclBhZ2VDb25maWc6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cbiAgICBmaWx0ZXJJdGVtc0ZvckZpbHRlcjogYW55O1xuXG4gICAgQElucHV0KCdmaWx0ZXJJdGVtcycpXG4gICAgc2V0IGZpbHRlckl0ZW1zKHZhbHVlKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICBsZXQgZGlzcGxheVN0YXJ0RGF0ZSA9ICcnO1xuICAgICAgICAgICAgbGV0IGRpc3BsYXlFbmREYXRlID0gJyc7XG4gICAgICAgICAgICB0aGlzLmZpbHRlckl0ZW1zRm9yRmlsdGVyID0gdmFsdWU7XG4gICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmZpbHRlclR5cGUgPT09ICdkYXRlJyB8fCBlbGVtZW50LmZpbHRlclR5cGUgPT09ICdkYXRldGltZScpIHtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmRlZmF1bHRGaWx0ZXJUeXBlID09PSBcImR5bmFtaWNcIiAmJiBlbGVtZW50Lm1vbWVudEZ1bmN0aW9uICE9PSBcIlwiICYmIGVsZW1lbnQuZGVmYXVsdEZpbHRlclZhbHVlICE9PSBcIlwiICYmIGVsZW1lbnQubW9tZW50Rm9ybWF0ICE9PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgW2NvdW50LCB1bml0XSA9IGVsZW1lbnQuZGVmYXVsdEZpbHRlclZhbHVlLnNwbGl0KCcsJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZm9ybWF0dGVkRGF0ZSA9IG1vbWVudCgpW2VsZW1lbnQubW9tZW50RnVuY3Rpb25dKHBhcnNlSW50KGNvdW50KSwgdW5pdCkuZm9ybWF0KGVsZW1lbnQubW9tZW50Rm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmFwaU5hbWUgPT09IFwic3RhcnREYXRlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5kaXNwbGF5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlTdGFydERhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZXNbZWxlbWVudC5hcGlOYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5hcGlOYW1lID09PSBcImVuZERhdGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmRpc3BsYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheUVuZERhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZXNbZWxlbWVudC5hcGlOYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5kZWZhdWx0RmlsdGVyVHlwZSA9PT0gXCJzdGF0aWNcIiAmJiBlbGVtZW50LmRlZmF1bHRGaWx0ZXJWYWx1ZSAhPT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmFwaU5hbWUgPT09IFwic3RhcnREYXRlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5kaXNwbGF5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlTdGFydERhdGUgPSBtb21lbnQodGhpcy5zZWxlY3RlZERhdGVzW2VsZW1lbnQuYXBpTmFtZV0pLmZvcm1hdChlbGVtZW50Lm1vbWVudEZvcm1hdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuYXBpTmFtZSA9PT0gXCJlbmREYXRlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5kaXNwbGF5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlFbmREYXRlID0gbW9tZW50KHRoaXMuc2VsZWN0ZWREYXRlc1tlbGVtZW50LmFwaU5hbWVdKS5mb3JtYXQoZWxlbWVudC5tb21lbnRGb3JtYXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAvLyB0aGlzLmdldEZpbHRlclBhZ2VDb25maWcuZW1pdChmaWx0ZXJfY29uZmlnKVxuXG4gICAgICAgICAgICBpZiAoZGlzcGxheVN0YXJ0RGF0ZSAmJiBkaXNwbGF5RW5kRGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREZXRlc2ZvclZpZXcgPSBgJHtkaXNwbGF5U3RhcnREYXRlfSAtICR7ZGlzcGxheUVuZERhdGV9YDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGlzcGxheVN0YXJ0RGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREZXRlc2ZvclZpZXcgPSBkaXNwbGF5U3RhcnREYXRlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChkaXNwbGF5RW5kRGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREZXRlc2ZvclZpZXcgPSBkaXNwbGF5RW5kRGF0ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERldGVzZm9yVmlldyA9ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cblxuICAgIH1cblxuXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgcm91dGU6IFJvdXRlcixcbiAgICApIHtcblxuICAgIH1cblxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG5cblxuICAgIH1cblxuXG5cbiAgICBwYWdlQXV0b2xvYWRTdG9wUnVuKCkge1xuICAgICAgICBpZiAodGhpcy5hdXRvbG9hZF9idXR0b24gPT0gdHJ1ZSkge1xuICAgICAgICAgICAgdGhpcy5hdXRvbG9hZF9idXR0b24gPSBmYWxzZTtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lX291dF9pZCk7XG4gICAgICAgICAgICB0aGlzLnRpbWVfb3V0X2lkID0gMDtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmF1dG9sb2FkX2J1dHRvbiA9PSBmYWxzZSkge1xuICAgICAgICAgICAgdGhpcy5hdXRvbG9hZF9idXR0b24gPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy50aW1lX291dF9pZCA9IDE7XG4gICAgICAgICAgICAvLyB0aGlzLmRhdGVzVXBkYXRlZCh0aGlzLnNlbGVjdGVkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNhbGxQYWdlRG9jdW1lbnRhdGlvbigpIHtcblxuICAgIH1cblxuXG4gICAgZ2V0RGF0ZU9yU2VydmVUeXBlVmFsdWVDaGFuZ2Uobm9kZTogYW55KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2VPclNlcnZ0eXBlLmVtaXQobm9kZSlcbiAgICB9XG5cblxuICAgIGVkaXRLcGkoKSB7XG4gICAgICAgIGNvbnN0IHBhZ2VJZCA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ3BhZ2VJZCddO1xuICAgICAgICBsZXQgbmF2aWdhdGlvbkV4dHJhczogTmF2aWdhdGlvbkV4dHJhcyA9IHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgcGFnZUlkOiBwYWdlSWQsXG4gICAgICAgICAgICAgICAgY29udGVudFR5cGU6IFwiZWRpdFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnJvdXRlLm5hdmlnYXRlKFsnL2FwcHMvY29udHJvbFBhbmVsL3BhZ2VDb25maWdDb250cm9sbGVyJ10sIG5hdmlnYXRpb25FeHRyYXMpO1xuICAgIH1cblxuXG4gICAgYWR2YW5jZUZpbHRlcktwaSgpIHtcbiAgICAgICAgdGhpcy5pc0FkdmFuY2VGaWx0ZXIgPSB0cnVlO1xuICAgIH1cblxuICAgIGdldFNlcmNoRmlsdGVyKGZpbHRlcikge1xuXG4gICAgICAgIHRoaXMuaXNBZHZhbmNlRmlsdGVyID0gZmFsc2U7XG4gICAgICAgIGxldCBkaXNwbGF5U3RhcnREYXRlID0gJyc7XG4gICAgICAgIGxldCBkaXNwbGF5RW5kRGF0ZSA9ICcnO1xuXG4gICAgICAgIHRoaXMuZmlsdGVySXRlbXNGb3JGaWx0ZXIuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgIGlmIChlbGVtZW50LmZpbHRlclR5cGUgPT09ICdkYXRlJyB8fCBlbGVtZW50LmZpbHRlclR5cGUgPT09ICdkYXRldGltZScpIHtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5kZWZhdWx0RmlsdGVyVHlwZSA9PT0gXCJkeW5hbWljXCIgJiYgZWxlbWVudC5tb21lbnRGdW5jdGlvbiAhPT0gXCJcIiAmJiBlbGVtZW50LmRlZmF1bHRGaWx0ZXJWYWx1ZSAhPT0gXCJcIiAmJiBlbGVtZW50Lm1vbWVudEZvcm1hdCAhPT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICBsZXQgW2NvdW50LCB1bml0XSA9IGVsZW1lbnQuZGVmYXVsdEZpbHRlclZhbHVlLnNwbGl0KCcsJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmFwaU5hbWUgPT09IFwic3RhcnREYXRlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmRpc3BsYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIuc3RhcnREYXRlID0gbW9tZW50KGZpbHRlci5zdGFydERhdGUpLmZvcm1hdChlbGVtZW50Lm1vbWVudEZvcm1hdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheVN0YXJ0RGF0ZSA9IGZpbHRlci5zdGFydERhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlci5zdGFydERhdGUgPSBtb21lbnQoZmlsdGVyLmVuZERhdGUpW2VsZW1lbnQubW9tZW50RnVuY3Rpb25dKHBhcnNlSW50KGNvdW50KSwgdW5pdCkuZm9ybWF0KGVsZW1lbnQubW9tZW50Rm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5hcGlOYW1lID09PSBcImVuZERhdGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyLmVuZERhdGUgPSBtb21lbnQoZmlsdGVyLmVuZERhdGUpLmZvcm1hdChlbGVtZW50Lm1vbWVudEZvcm1hdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5kaXNwbGF5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheUVuZERhdGUgPSBmaWx0ZXIuZW5kRGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5kZWZhdWx0RmlsdGVyVHlwZSA9PT0gXCJzdGF0aWNcIiAmJiBlbGVtZW50LmRlZmF1bHRGaWx0ZXJWYWx1ZSAhPT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuYXBpTmFtZSA9PT0gXCJzdGFydERhdGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuZGlzcGxheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlTdGFydERhdGUgPSBtb21lbnQodGhpcy5zZWxlY3RlZERhdGVzW2VsZW1lbnQuYXBpTmFtZV0pLmZvcm1hdChlbGVtZW50Lm1vbWVudEZvcm1hdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyLnN0YXJ0RGF0ZSA9IG1vbWVudCh0aGlzLnNlbGVjdGVkRGF0ZXNbZWxlbWVudC5hcGlOYW1lXSkuZm9ybWF0KGVsZW1lbnQubW9tZW50Rm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5hcGlOYW1lID09PSBcImVuZERhdGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuZGlzcGxheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlFbmREYXRlID0gbW9tZW50KHRoaXMuc2VsZWN0ZWREYXRlc1tlbGVtZW50LmFwaU5hbWVdKS5mb3JtYXQoZWxlbWVudC5tb21lbnRGb3JtYXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlci5lbmREYXRlID0gbW9tZW50KHRoaXMuc2VsZWN0ZWREYXRlc1tlbGVtZW50LmFwaU5hbWVdKS5mb3JtYXQoZWxlbWVudC5tb21lbnRGb3JtYXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGRpc3BsYXlTdGFydERhdGUgJiYgZGlzcGxheUVuZERhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREZXRlc2ZvclZpZXcgPSBgJHtkaXNwbGF5U3RhcnREYXRlfSAtICR7ZGlzcGxheUVuZERhdGV9YDtcbiAgICAgICAgfSBlbHNlIGlmIChkaXNwbGF5U3RhcnREYXRlKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGV0ZXNmb3JWaWV3ID0gZGlzcGxheVN0YXJ0RGF0ZTtcbiAgICAgICAgfSBlbHNlIGlmIChkaXNwbGF5RW5kRGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERldGVzZm9yVmlldyA9IGRpc3BsYXlFbmREYXRlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERldGVzZm9yVmlldyA9ICcnO1xuICAgICAgICB9XG5cblxuXG4gICAgICAgIHRoaXMuZ2V0RmlsdGVyUGFnZUNvbmZpZy5lbWl0KGZpbHRlcilcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtYi0yXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGJvcmRlci1iIGRhcms6YmctdHJhbnNwYXJlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWwtMVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGZsb2F0LXN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uLXNpemUtMlwiIFtzdmdJY29uXT1cIidoZXJvaWNvbnNfc29saWQ6dGVtcGxhdGUnXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8aDJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LTJ4bCBtZDp0ZXh0LTJ4bCBweS0zIGZvbnQtZXh0cmFib2xkIGl0ZW1zLWNlbnRlciBtbC0yIHRyYWNraW5nLXRpZ2h0IGxlYWRpbmctNSB0cnVuY2F0ZSBjYXBpdGFsaXplXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IHBhZ2VUaXRsZSB9fVxuICAgICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cbiAgICAgICAgICAgICAgICA8IS0tIElOQ09NSU5HIC0tPlxuICAgICAgICAgICAgICAgIDxnYW1tYS1icmVhZC1jcnVtYnMgW2twaV9kYXRhX2NvbnRhaW5lcl09XCJicmVhZF9jcnVtYnNfY29udGFpbmVyXCI+PC9nYW1tYS1icmVhZC1jcnVtYnM+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgYm9yZGVyLWwtMiBwLTAgbS0wXCI+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteC0yXCIgKm5nSWY9XCJpc0VkaXRCdXR0b25cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJlZGl0S3BpKClcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJnLWJsdWUtNzAwIGN1cnNvci1wb2ludGVyIGRhcms6YmctYmx1ZS02MDAgZGFyazpmb2N1czpyaW5nLWJsdWUtODAwIGRhcms6aG92ZXI6YmctYmx1ZS03MDAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLWJsdWUtMzAwIGZvbnQtbWVkaXVtIGhvdmVyOmJnLWJsdWUtODAwIG1yLTIgcHgtMi41IHB5LTIgcm91bmRlZCB0ZXh0LXNtIHRleHQtd2hpdGUgbmctc3Rhci1pbnNlcnRlZFwiPlxuICAgICAgICAgICAgICAgICAgICBFZGl0XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEgaC1mdWxsIGJvcmRlci1sLTJcIiAqbmdJZj1cImlzRWRpdEJ1dHRvblwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiYWR2YW5jZUZpbHRlcktwaSgpXCI+IHt7c2VsZWN0ZWREZXRlc2ZvclZpZXd9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xIGgtZnVsbCBib3JkZXItbC0yXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXgtMlwiICpuZ0lmPVwiaXNBZHZhbmNlQnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1hdC1mb2N1cy1pbmRpY2F0b3IgbWF0LW1lbnUtdHJpZ2dlciBtYXQtaWNvbi1idXR0b24gbWF0LWJ1dHRvbi1iYXNlXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cIm1lbnVcIiAoY2xpY2spPVwiYWR2YW5jZUZpbHRlcktwaSgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWJ1dHRvbi13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIHRpdGxlPVwiRmlsdGVyc1wiIFtzdmdJY29uXT1cIidoZXJvaWNvbnNfb3V0bGluZTphZGp1c3RtZW50cydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xIGgtZnVsbCBib3JkZXItbC0yXCI+PC9kaXY+XG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJteC0yXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1hdC1mb2N1cy1pbmRpY2F0b3IgbWF0LW1lbnUtdHJpZ2dlciBtYXQtaWNvbi1idXR0b24gbWF0LWJ1dHRvbi1iYXNlXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cIm1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXQtYnV0dG9uLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVsYXRpdmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKGNsaWNrKT1cImNhbGxQYWdlRG9jdW1lbnRhdGlvbigpXCIgdGl0bGU9XCJBZGQgRmlsdGVyc1wiIFtzdmdJY29uXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlcm9pY29uc19vdXRsaW5lOnF1ZXN0aW9uLW1hcmstY2lyY2xlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5XCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+IC0tPlxuXG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxkeC1wb3B1cCBbKHZpc2libGUpXT1cImlzQWR2YW5jZUZpbHRlclwiIFtjbG9zZU9uT3V0c2lkZUNsaWNrXT1cImZhbHNlXCIgW2RyYWdFbmFibGVkXT1cImZhbHNlXCIgW3dpZHRoXT1cIjYwMFwiXG4gICAgW2hlaWdodF09XCInYXV0bydcIiBbc2hvd1RpdGxlXT1cInRydWVcIiBjbGFzcz1cInBvcHVwXCIgdGl0bGU9XCJGaWx0ZXJcIj5cbiAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGRhdGEgb2YgJ2NvbnRlbnQnXCI+XG4gICAgICAgIDxhcHAtZ2FtbWEtYWR2YW5jZS1maWx0ZXIgW2twaUlkXT1cIicyMzEyMTInXCIgW2ZpbHRlck9wZXJhdG9yRGF0YV09XCJmaWx0ZXJJdGVtc0ZvckZpbHRlclwiXG4gICAgICAgICAgICBbaXNCdXR0b25EZXNpYWJsZV09XCJpc0FkdmFuY2VGaWx0ZXJcIiBbZmlsdGVyU3RhcnREYXRlXT1cImZpbHRlclN0YXJ0RGF0ZVwiIFtmaWx0ZXJFbmREYXRlXT1cImZpbHRlckVuZERhdGVcIlxuICAgICAgICAgICAgKGZpbHRlckRhdGFPYmplY3QpPVwiZ2V0U2VyY2hGaWx0ZXIoJGV2ZW50KVwiPjwvYXBwLWdhbW1hLWFkdmFuY2UtZmlsdGVyPlxuICAgIDwvZGl2PlxuPC9keC1wb3B1cD4iXX0=
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYW1tYS1hcHAtY29udHJvbGxlci9zcmMvbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9hcHAtYWR2YW5jZS1oZWFkZXIvYXBwLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYW1tYS1hcHAtY29udHJvbGxlci9zcmMvbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9hcHAtYWR2YW5jZS1oZWFkZXIvYXBwLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sTUFBTSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7O0FBTTlDLE1BQU0sT0FBTyx5QkFBeUI7SUE4SGxDLFlBQ1ksY0FBOEIsRUFDOUIsS0FBYTtRQURiLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBN0hoQixpQkFBWSxHQUFZLElBQUksQ0FBQztRQUs1QixnQkFBVyxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBU3pFLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBRXZCLGdCQUFXLEdBQUcsZUFBZSxDQUFDO1FBRXZCLGNBQVMsR0FBUSxFQUFFLENBQUM7UUFDcEIsc0JBQWlCLEdBQVE7WUFDNUIsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRTtZQUNoQyxtQkFBbUIsRUFBRSxJQUFJO1lBQ3pCLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsTUFBTSxFQUFFO2dCQUNK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LE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7eUJBQzdGO3FCQUNKO2lCQUNKO2FBRUo7UUFFTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksZ0JBQWdCLElBQUksY0FBYyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxHQUFHLGdCQUFnQixNQUFNLGNBQWMsRUFBRSxDQUFDO1NBQ3pFO2FBQU0sSUFBSSxnQkFBZ0IsRUFBRTtZQUN6QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUM7U0FDaEQ7YUFBTSxJQUFJLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsY0FBYyxDQUFDO1NBQzlDO2FBQU07WUFDSCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO1NBQ2xDO1FBSUQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUN6QyxDQUFDOztzSEE1T1EseUJBQXlCOzBHQUF6Qix5QkFBeUIseWNDUnRDLHd5R0FnRVc7MkZEeERFLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDSSxvQkFBb0I7MEhBS3JCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBb0NVLDJCQUEyQjtzQkFBM0MsTUFBTTtnQkFDVSxtQkFBbUI7c0JBQW5DLE1BQU07Z0JBTUgsV0FBVztzQkFEZCxLQUFLO3VCQUFDLGFBQWE7Z0JBMkRoQixrQkFBa0I7c0JBRHJCLEtBQUs7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FeHRyYXMsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgbW9tZW50IGZyb20gJy4vLi4vLi4vLi4vbW9tZW50LWhlbHBlcic7XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1hZHZhbmNlLWhlYWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FwcC1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2FwcC1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQXBwQWR2YW5jZUhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgcGFnZVRpdGxlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgYnJlYWRfY3J1bWJzX2NvbnRhaW5lcjogYW55O1xuICAgIEBJbnB1dCgpIGlzRWRpdEJ1dHRvbjogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KCkgaXNBZHZhbmNlQnV0dG9uOiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgc2VsZWN0ZWREYXRlczogYW55O1xuXG4gICAgQE91dHB1dCgpIHRvZ2dsZUV2ZW50OiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAgIGlzQWR2YW5jZUZpbHRlcjogYm9vbGVhbjtcbiAgICBicm93c2VyX2NvbmZpZzogYW55O1xuICAgIGtwaV9pZDogYW55O1xuXG4gICAgZmlsdGVyU3RhcnREYXRlO1xuICAgIGZpbHRlckVuZERhdGU7XG4gICAgZmlsdGVyT3B0aW9ucztcblxuICAgIGF1dG9sb2FkX2J1dHRvbiA9IHRydWU7XG4gICAgcHJpdmF0ZSB0aW1lX291dF9pZDtcbiAgICB0b29sVGlwVGV4dCA9ICdCeSBEYXRlIFJhbmdlJztcblxuICAgIHB1YmxpYyBkYXRlcmFuZ2U6IGFueSA9IHt9O1xuICAgIHB1YmxpYyBkYXRlcmFuZ2Vfb3B0aW9uczogYW55ID0ge1xuICAgICAgICBsb2NhbGU6IHsgZm9ybWF0OiAnWVlZWS1NTS1ERCcgfSxcbiAgICAgICAgYWx3YXlzU2hvd0NhbGVuZGFyczogdHJ1ZSxcbiAgICAgICAgc2hvd0N1c3RvbVJhbmdlTGFiZWw6IHRydWUsXG4gICAgICAgIHJhbmdlczoge1xuICAgICAgICAgICAgVG9kYXk6IFttb21lbnQoKSwgbW9tZW50KCldLFxuICAgICAgICAgICAgLy8gWWVzdGVyZGF5OiBbbW9tZW50KCkuc3VidHJhY3QoMSwgJ2RheXMnKSwgbW9tZW50KCkuc3VidHJhY3QoMSwgJ2RheXMnKV0sXG4gICAgICAgICAgICAnTGFzdCAxIE1vbnRoJzogW21vbWVudCgpLnN1YnRyYWN0KDMwLCAnZGF5cycpLCBtb21lbnQoKV0sXG4gICAgICAgICAgICAnTGFzdCAzIE1vbnRoJzogW21vbWVudCgpLnN1YnRyYWN0KDkxLCAnZGF5cycpLCBtb21lbnQoKV0sXG4gICAgICAgICAgICAnTGFzdCA2IE1vbnRoJzogW21vbWVudCgpLnN1YnRyYWN0KDE4MiwgJ2RheXMnKSwgbW9tZW50KCldLFxuICAgICAgICAgICAgJ0xhc3QgMTIgTW9udGgnOiBbbW9tZW50KCkuc3VidHJhY3QoMzY1LCAnZGF5cycpLCBtb21lbnQoKV0sXG4gICAgICAgICAgICAnTGFzdCAxMyBNb250aHMnOiBbXG4gICAgICAgICAgICAgICAgbW9tZW50KCkuc3VidHJhY3QoMTIsICdtb250aCcpLnN0YXJ0T2YoJ21vbnRoJyksXG4gICAgICAgICAgICAgICAgbW9tZW50KCksXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgJ1RoaXMgTW9udGgnOiBbbW9tZW50KCkuc3RhcnRPZignbW9udGgnKSwgbW9tZW50KCkuZW5kT2YoJ21vbnRoJyldLFxuICAgICAgICB9LFxuICAgIH07XG5cbiAgICBzcnZUeXBlRGF0YVNvdXJjZTogYW55ID0gW107XG4gICAgc3J2VHlwZURpc3BsYXlWYWx1ZTogYW55ID0gW107XG4gICAgc2VsZWN0ZWREZXRlc2ZvclZpZXc6IGFueTtcbiAgICBAT3V0cHV0KCkgcHVibGljIHNlbGVjdGVkRGF0ZVJhbmdlT3JTZXJ2dHlwZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBnZXRGaWx0ZXJQYWdlQ29uZmlnOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXG4gICAgZmlsdGVySXRlbXNGb3JGaWx0ZXI6IGFueTtcblxuICAgIEBJbnB1dCgnZmlsdGVySXRlbXMnKVxuICAgIHNldCBmaWx0ZXJJdGVtcyh2YWx1ZSkge1xuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgbGV0IGRpc3BsYXlTdGFydERhdGUgPSAnJztcbiAgICAgICAgICAgIGxldCBkaXNwbGF5RW5kRGF0ZSA9ICcnO1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJJdGVtc0ZvckZpbHRlciA9IHZhbHVlO1xuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5maWx0ZXJUeXBlID09PSAnZGF0ZScgfHwgZWxlbWVudC5maWx0ZXJUeXBlID09PSAnZGF0ZXRpbWUnKSB7XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5kZWZhdWx0RmlsdGVyVHlwZSA9PT0gXCJkeW5hbWljXCIgJiYgZWxlbWVudC5tb21lbnRGdW5jdGlvbiAhPT0gXCJcIiAmJiBlbGVtZW50LmRlZmF1bHRGaWx0ZXJWYWx1ZSAhPT0gXCJcIiAmJiBlbGVtZW50Lm1vbWVudEZvcm1hdCAhPT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IFtjb3VudCwgdW5pdF0gPSBlbGVtZW50LmRlZmF1bHRGaWx0ZXJWYWx1ZS5zcGxpdCgnLCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZvcm1hdHRlZERhdGUgPSBtb21lbnQoKVtlbGVtZW50Lm1vbWVudEZ1bmN0aW9uXShwYXJzZUludChjb3VudCksIHVuaXQpLmZvcm1hdChlbGVtZW50Lm1vbWVudEZvcm1hdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5hcGlOYW1lID09PSBcInN0YXJ0RGF0ZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuZGlzcGxheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5U3RhcnREYXRlID0gdGhpcy5zZWxlY3RlZERhdGVzW2VsZW1lbnQuYXBpTmFtZV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuYXBpTmFtZSA9PT0gXCJlbmREYXRlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5kaXNwbGF5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlFbmREYXRlID0gdGhpcy5zZWxlY3RlZERhdGVzW2VsZW1lbnQuYXBpTmFtZV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuZGVmYXVsdEZpbHRlclR5cGUgPT09IFwic3RhdGljXCIgJiYgZWxlbWVudC5kZWZhdWx0RmlsdGVyVmFsdWUgIT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5hcGlOYW1lID09PSBcInN0YXJ0RGF0ZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuZGlzcGxheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5U3RhcnREYXRlID0gbW9tZW50KHRoaXMuc2VsZWN0ZWREYXRlc1tlbGVtZW50LmFwaU5hbWVdKS5mb3JtYXQoZWxlbWVudC5tb21lbnRGb3JtYXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmFwaU5hbWUgPT09IFwiZW5kRGF0ZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuZGlzcGxheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5RW5kRGF0ZSA9IG1vbWVudCh0aGlzLnNlbGVjdGVkRGF0ZXNbZWxlbWVudC5hcGlOYW1lXSkuZm9ybWF0KGVsZW1lbnQubW9tZW50Rm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gdGhpcy5nZXRGaWx0ZXJQYWdlQ29uZmlnLmVtaXQoZmlsdGVyX2NvbmZpZylcblxuICAgICAgICAgICAgaWYgKGRpc3BsYXlTdGFydERhdGUgJiYgZGlzcGxheUVuZERhdGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGV0ZXNmb3JWaWV3ID0gYCR7ZGlzcGxheVN0YXJ0RGF0ZX0gLSAke2Rpc3BsYXlFbmREYXRlfWA7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRpc3BsYXlTdGFydERhdGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGV0ZXNmb3JWaWV3ID0gZGlzcGxheVN0YXJ0RGF0ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGlzcGxheUVuZERhdGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGV0ZXNmb3JWaWV3ID0gZGlzcGxheUVuZERhdGU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREZXRlc2ZvclZpZXcgPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG5cbiAgICB9XG5cbiAgICBjb250ZXh0RmlsdGVySXRlbXNGb3JGaWx0ZXI6YW55O1xuICAgIEBJbnB1dCgnY29udGV4dEZpbHRlckl0ZW1zJylcbiAgICBzZXQgY29udGV4dEZpbHRlckl0ZW1zKHZhbHVlKSB7XG4gICAgICAgIFxuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHRGaWx0ZXJJdGVtc0ZvckZpbHRlciA9IHZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0RmlsdGVySXRlbXNGb3JGaWx0ZXIgPSBbXTtcbiAgICAgICAgICAgIHZhbHVlLmZvckVhY2goZWxlbWVudD0+e1xuICAgICAgICAgICAgICAgIGlmKGVsZW1lbnQuZmlsdGVyVHlwZSA9PSBcImNvbnRleHRcIil7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dEZpbHRlckl0ZW1zRm9yRmlsdGVyLnB1c2goZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIFxuICAgICAgICB9XG5cblxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogUm91dGVyLFxuICAgICkge1xuXG4gICAgfVxuXG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcblxuXG4gICAgfVxuXG5cblxuICAgIHBhZ2VBdXRvbG9hZFN0b3BSdW4oKSB7XG4gICAgICAgIGlmICh0aGlzLmF1dG9sb2FkX2J1dHRvbiA9PSB0cnVlKSB7XG4gICAgICAgICAgICB0aGlzLmF1dG9sb2FkX2J1dHRvbiA9IGZhbHNlO1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVfb3V0X2lkKTtcbiAgICAgICAgICAgIHRoaXMudGltZV9vdXRfaWQgPSAwO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYXV0b2xvYWRfYnV0dG9uID09IGZhbHNlKSB7XG4gICAgICAgICAgICB0aGlzLmF1dG9sb2FkX2J1dHRvbiA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnRpbWVfb3V0X2lkID0gMTtcbiAgICAgICAgICAgIC8vIHRoaXMuZGF0ZXNVcGRhdGVkKHRoaXMuc2VsZWN0ZWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2FsbFBhZ2VEb2N1bWVudGF0aW9uKCkge1xuXG4gICAgfVxuXG5cbiAgICBnZXREYXRlT3JTZXJ2ZVR5cGVWYWx1ZUNoYW5nZShub2RlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZU9yU2VydnR5cGUuZW1pdChub2RlKVxuICAgIH1cblxuXG4gICAgZWRpdEtwaSgpIHtcbiAgICAgICAgY29uc3QgcGFnZUlkID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1sncGFnZUlkJ107XG4gICAgICAgIGxldCBuYXZpZ2F0aW9uRXh0cmFzOiBOYXZpZ2F0aW9uRXh0cmFzID0ge1xuICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgICAgICAgICBwYWdlSWQ6IHBhZ2VJZCxcbiAgICAgICAgICAgICAgICBjb250ZW50VHlwZTogXCJlZGl0XCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMucm91dGUubmF2aWdhdGUoWycvYXBwcy9jb250cm9sUGFuZWwvcGFnZUNvbmZpZ0NvbnRyb2xsZXInXSwgbmF2aWdhdGlvbkV4dHJhcyk7XG4gICAgfVxuXG5cbiAgICBhZHZhbmNlRmlsdGVyS3BpKCkge1xuICAgICAgICB0aGlzLmlzQWR2YW5jZUZpbHRlciA9IHRydWU7XG4gICAgfVxuXG4gICAgZ2V0U2VyY2hGaWx0ZXIoZmlsdGVyKSB7XG5cbiAgICAgICAgdGhpcy5pc0FkdmFuY2VGaWx0ZXIgPSBmYWxzZTtcbiAgICAgICAgbGV0IGRpc3BsYXlTdGFydERhdGUgPSAnJztcbiAgICAgICAgbGV0IGRpc3BsYXlFbmREYXRlID0gJyc7XG5cbiAgICAgICAgdGhpcy5maWx0ZXJJdGVtc0ZvckZpbHRlci5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgaWYgKGVsZW1lbnQuZmlsdGVyVHlwZSA9PT0gJ2RhdGUnIHx8IGVsZW1lbnQuZmlsdGVyVHlwZSA9PT0gJ2RhdGV0aW1lJykge1xuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmRlZmF1bHRGaWx0ZXJUeXBlID09PSBcImR5bmFtaWNcIiAmJiBlbGVtZW50Lm1vbWVudEZ1bmN0aW9uICE9PSBcIlwiICYmIGVsZW1lbnQuZGVmYXVsdEZpbHRlclZhbHVlICE9PSBcIlwiICYmIGVsZW1lbnQubW9tZW50Rm9ybWF0ICE9PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBbY291bnQsIHVuaXRdID0gZWxlbWVudC5kZWZhdWx0RmlsdGVyVmFsdWUuc3BsaXQoJywnKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuYXBpTmFtZSA9PT0gXCJzdGFydERhdGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuZGlzcGxheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlci5zdGFydERhdGUgPSBtb21lbnQoZmlsdGVyLnN0YXJ0RGF0ZSkuZm9ybWF0KGVsZW1lbnQubW9tZW50Rm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5U3RhcnREYXRlID0gZmlsdGVyLnN0YXJ0RGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyLnN0YXJ0RGF0ZSA9IG1vbWVudChmaWx0ZXIuZW5kRGF0ZSlbZWxlbWVudC5tb21lbnRGdW5jdGlvbl0ocGFyc2VJbnQoY291bnQpLCB1bml0KS5mb3JtYXQoZWxlbWVudC5tb21lbnRGb3JtYXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmFwaU5hbWUgPT09IFwiZW5kRGF0ZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIuZW5kRGF0ZSA9IG1vbWVudChmaWx0ZXIuZW5kRGF0ZSkuZm9ybWF0KGVsZW1lbnQubW9tZW50Rm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmRpc3BsYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5RW5kRGF0ZSA9IGZpbHRlci5lbmREYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50LmRlZmF1bHRGaWx0ZXJUeXBlID09PSBcInN0YXRpY1wiICYmIGVsZW1lbnQuZGVmYXVsdEZpbHRlclZhbHVlICE9PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5hcGlOYW1lID09PSBcInN0YXJ0RGF0ZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5kaXNwbGF5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheVN0YXJ0RGF0ZSA9IG1vbWVudCh0aGlzLnNlbGVjdGVkRGF0ZXNbZWxlbWVudC5hcGlOYW1lXSkuZm9ybWF0KGVsZW1lbnQubW9tZW50Rm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIuc3RhcnREYXRlID0gbW9tZW50KHRoaXMuc2VsZWN0ZWREYXRlc1tlbGVtZW50LmFwaU5hbWVdKS5mb3JtYXQoZWxlbWVudC5tb21lbnRGb3JtYXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmFwaU5hbWUgPT09IFwiZW5kRGF0ZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5kaXNwbGF5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheUVuZERhdGUgPSBtb21lbnQodGhpcy5zZWxlY3RlZERhdGVzW2VsZW1lbnQuYXBpTmFtZV0pLmZvcm1hdChlbGVtZW50Lm1vbWVudEZvcm1hdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyLmVuZERhdGUgPSBtb21lbnQodGhpcy5zZWxlY3RlZERhdGVzW2VsZW1lbnQuYXBpTmFtZV0pLmZvcm1hdChlbGVtZW50Lm1vbWVudEZvcm1hdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoZGlzcGxheVN0YXJ0RGF0ZSAmJiBkaXNwbGF5RW5kRGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERldGVzZm9yVmlldyA9IGAke2Rpc3BsYXlTdGFydERhdGV9IC0gJHtkaXNwbGF5RW5kRGF0ZX1gO1xuICAgICAgICB9IGVsc2UgaWYgKGRpc3BsYXlTdGFydERhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREZXRlc2ZvclZpZXcgPSBkaXNwbGF5U3RhcnREYXRlO1xuICAgICAgICB9IGVsc2UgaWYgKGRpc3BsYXlFbmREYXRlKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGV0ZXNmb3JWaWV3ID0gZGlzcGxheUVuZERhdGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGV0ZXNmb3JWaWV3ID0gJyc7XG4gICAgICAgIH1cblxuXG5cbiAgICAgICAgdGhpcy5nZXRGaWx0ZXJQYWdlQ29uZmlnLmVtaXQoZmlsdGVyKVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1iLTJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gYm9yZGVyLWIgZGFyazpiZy10cmFuc3BhcmVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtbC0xXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZmxvYXQtc3RhcnRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24tc2l6ZS0yXCIgW3N2Z0ljb25dPVwiJ2hlcm9pY29uc19zb2xpZDp0ZW1wbGF0ZSdcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxoMlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtMnhsIG1kOnRleHQtMnhsIHB5LTMgZm9udC1leHRyYWJvbGQgaXRlbXMtY2VudGVyIG1sLTIgdHJhY2tpbmctdGlnaHQgbGVhZGluZy01IHRydW5jYXRlIGNhcGl0YWxpemVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgcGFnZVRpdGxlIH19XG4gICAgICAgICAgICAgICAgPC9oMj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlwiPlxuICAgICAgICAgICAgICAgIDwhLS0gSU5DT01JTkcgLS0+XG4gICAgICAgICAgICAgICAgPGdhbW1hLWJyZWFkLWNydW1icyBba3BpX2RhdGFfY29udGFpbmVyXT1cImJyZWFkX2NydW1ic19jb250YWluZXJcIj48L2dhbW1hLWJyZWFkLWNydW1icz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBib3JkZXItbC0yIHAtMCBtLTBcIj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTJcIiAqbmdJZj1cImlzRWRpdEJ1dHRvblwiPlxuICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImVkaXRLcGkoKVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmctYmx1ZS03MDAgY3Vyc29yLXBvaW50ZXIgZGFyazpiZy1ibHVlLTYwMCBkYXJrOmZvY3VzOnJpbmctYmx1ZS04MDAgZGFyazpob3ZlcjpiZy1ibHVlLTcwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy00IGZvY3VzOnJpbmctYmx1ZS0zMDAgZm9udC1tZWRpdW0gaG92ZXI6YmctYmx1ZS04MDAgbXItMiBweC0yLjUgcHktMiByb3VuZGVkIHRleHQtc20gdGV4dC13aGl0ZSBuZy1zdGFyLWluc2VydGVkXCI+XG4gICAgICAgICAgICAgICAgICAgIEVkaXRcbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMSBoLWZ1bGwgYm9yZGVyLWwtMlwiPjwvZGl2PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRleHRGaWx0ZXJJdGVtc0ZvckZpbHRlciAmJiAgY29udGV4dEZpbHRlckl0ZW1zRm9yRmlsdGVyLmxlbmd0aCAhPT0gMFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkeC1zZWxlY3QtYm94IFtkYXRhU291cmNlXT1cImNvbnRleHRGaWx0ZXJJdGVtc0ZvckZpbHRlclwiIGRpc3BsYXlFeHByPVwibGFiZWxcIiB2YWx1ZT1cImRlZmF1bHRGaWx0ZXJWYWx1ZVwiPjwvZHgtc2VsZWN0LWJveD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEgaC1mdWxsIGJvcmRlci1sLTJcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteC0yXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImFkdmFuY2VGaWx0ZXJLcGkoKVwiPiB7e3NlbGVjdGVkRGV0ZXNmb3JWaWV3fX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMSBoLWZ1bGwgYm9yZGVyLWwtMlwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTJcIiAqbmdJZj1cImlzQWR2YW5jZUJ1dHRvblwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtYXQtZm9jdXMtaW5kaWNhdG9yIG1hdC1tZW51LXRyaWdnZXIgbWF0LWljb24tYnV0dG9uIG1hdC1idXR0b24tYmFzZVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJtZW51XCIgKGNsaWNrKT1cImFkdmFuY2VGaWx0ZXJLcGkoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1idXR0b24td3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZWxhdGl2ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiB0aXRsZT1cIkZpbHRlcnNcIiBbc3ZnSWNvbl09XCInaGVyb2ljb25zX291dGxpbmU6YWRqdXN0bWVudHMnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMSBoLWZ1bGwgYm9yZGVyLWwtMlwiPjwvZGl2PlxuICAgICAgICAgICAgXG5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPGR4LXBvcHVwIFsodmlzaWJsZSldPVwiaXNBZHZhbmNlRmlsdGVyXCIgW2Nsb3NlT25PdXRzaWRlQ2xpY2tdPVwiZmFsc2VcIiBbZHJhZ0VuYWJsZWRdPVwiZmFsc2VcIiBbd2lkdGhdPVwiNjAwXCJcbiAgICBbaGVpZ2h0XT1cIidhdXRvJ1wiIFtzaG93VGl0bGVdPVwidHJ1ZVwiIGNsYXNzPVwicG9wdXBcIiB0aXRsZT1cIkZpbHRlclwiPlxuICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgZGF0YSBvZiAnY29udGVudCdcIj5cbiAgICAgICAgPGFwcC1nYW1tYS1hZHZhbmNlLWZpbHRlciBba3BpSWRdPVwiJzIzMTIxMidcIiBbZmlsdGVyT3BlcmF0b3JEYXRhXT1cImZpbHRlckl0ZW1zRm9yRmlsdGVyXCJcbiAgICAgICAgICAgIFtpc0J1dHRvbkRlc2lhYmxlXT1cImlzQWR2YW5jZUZpbHRlclwiIFtmaWx0ZXJTdGFydERhdGVdPVwiZmlsdGVyU3RhcnREYXRlXCIgW2ZpbHRlckVuZERhdGVdPVwiZmlsdGVyRW5kRGF0ZVwiXG4gICAgICAgICAgICAoZmlsdGVyRGF0YU9iamVjdCk9XCJnZXRTZXJjaEZpbHRlcigkZXZlbnQpXCI+PC9hcHAtZ2FtbWEtYWR2YW5jZS1maWx0ZXI+XG4gICAgPC9kaXY+XG48L2R4LXBvcHVwPiJdfQ==
|