@openziti/ziti-console-lib 0.3.0 → 0.4.0
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/README.md +68 -11
- package/assets/banners/ZAC.jpg +0 -0
- package/assets/html/index.htm +21 -3
- package/assets/images/Icon_Minus.png +0 -0
- package/assets/languages/en-us.json +3 -1
- package/assets/styles/global.scss +17 -0
- package/assets/styles/tables.css +28 -3
- package/assets/styles/ziti.css +29 -2
- package/assets/svgs/v8visualizer.svg +60 -0
- package/esm2022/lib/features/creation-summary-dialog/creation-summary-dialog.component.mjs +1 -1
- package/esm2022/lib/features/multi-action-button/multi-action-button.component.mjs +31 -0
- package/esm2022/lib/features/projectable-forms/configuration/configuration-form.component.mjs +1 -1
- package/esm2022/lib/features/projectable-forms/edge-router/edge-router-form.component.mjs +1 -1
- package/esm2022/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.mjs +260 -0
- package/esm2022/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.service.mjs +177 -0
- package/esm2022/lib/features/projectable-forms/form-field-container/form-field-container.component.mjs +8 -5
- package/esm2022/lib/features/projectable-forms/form-header/form-header.component.mjs +10 -6
- package/esm2022/lib/features/projectable-forms/identity/identity-form.component.mjs +1 -1
- package/esm2022/lib/features/projectable-forms/projectable-form.class.mjs +23 -1
- package/esm2022/lib/features/projectable-forms/service/service-form.component.mjs +3 -3
- package/esm2022/lib/features/projectable-forms/service/simple-service/simple-service.component.mjs +1 -1
- package/esm2022/lib/features/projectable-forms/service-policy/service-policy-form.component.mjs +37 -3
- package/esm2022/lib/features/tag-selector/tag-selector.component.mjs +3 -3
- package/esm2022/lib/features/visualizer/network-visualizer/network-visualizer.component.mjs +1508 -0
- package/esm2022/lib/features/visualizer/network-visualizer/network-visualizer.helper.mjs +578 -0
- package/esm2022/lib/features/visualizer/network-visualizer/network-visualizer.treenodeprocessor.mjs +695 -0
- package/esm2022/lib/features/visualizer/visualizer-service.class.mjs +33 -0
- package/esm2022/lib/features/wrappers/zac-wrapper.service.mjs +6 -1
- package/esm2022/lib/models/edge-router-policy.mjs +10 -0
- package/esm2022/lib/pages/edge-router-policies/edge-router-policies-page.component.mjs +132 -0
- package/esm2022/lib/pages/edge-router-policies/edge-router-policies-page.service.mjs +418 -0
- package/esm2022/lib/pages/edge-routers/edge-routers-page.service.mjs +3 -3
- package/esm2022/lib/pages/identities/identities-page.service.mjs +2 -2
- package/esm2022/lib/pages/service-policies/service-policies-page.component.mjs +7 -6
- package/esm2022/lib/pages/service-policies/service-policies-page.service.mjs +3 -3
- package/esm2022/lib/pages/services/services-page.service.mjs +3 -3
- package/esm2022/lib/services/node-data.service.mjs +56 -29
- package/esm2022/lib/shared/list-page-service.class.mjs +12 -5
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/lib/ziti-console-lib.module.mjs +23 -5
- package/esm2022/public-api.mjs +8 -1
- package/fesm2022/openziti-ziti-console-lib.mjs +4098 -246
- package/fesm2022/openziti-ziti-console-lib.mjs.map +1 -1
- package/lib/features/multi-action-button/multi-action-button.component.d.ts +13 -0
- package/lib/features/multi-action-button/multi-action-button.component.d.ts.map +1 -0
- package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.d.ts +56 -0
- package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.d.ts.map +1 -0
- package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.service.d.ts +32 -0
- package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.service.d.ts.map +1 -0
- package/lib/features/projectable-forms/form-field-container/form-field-container.component.d.ts +3 -2
- package/lib/features/projectable-forms/form-field-container/form-field-container.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/form-header/form-header.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/projectable-form.class.d.ts +6 -0
- package/lib/features/projectable-forms/projectable-form.class.d.ts.map +1 -1
- package/lib/features/projectable-forms/service-policy/service-policy-form.component.d.ts +3 -0
- package/lib/features/projectable-forms/service-policy/service-policy-form.component.d.ts.map +1 -1
- package/lib/features/visualizer/network-visualizer/network-visualizer.component.d.ts +129 -0
- package/lib/features/visualizer/network-visualizer/network-visualizer.component.d.ts.map +1 -0
- package/lib/features/visualizer/network-visualizer/network-visualizer.helper.d.ts +131 -0
- package/lib/features/visualizer/network-visualizer/network-visualizer.helper.d.ts.map +1 -0
- package/lib/features/visualizer/network-visualizer/network-visualizer.treenodeprocessor.d.ts +31 -0
- package/lib/features/visualizer/network-visualizer/network-visualizer.treenodeprocessor.d.ts.map +1 -0
- package/lib/features/visualizer/visualizer-service.class.d.ts +10 -0
- package/lib/features/visualizer/visualizer-service.class.d.ts.map +1 -0
- package/lib/features/wrappers/zac-wrapper.service.d.ts.map +1 -1
- package/lib/models/edge-router-policy.d.ts +7 -0
- package/lib/models/edge-router-policy.d.ts.map +1 -0
- package/lib/pages/edge-router-policies/edge-router-policies-page.component.d.ts +35 -0
- package/lib/pages/edge-router-policies/edge-router-policies-page.component.d.ts.map +1 -0
- package/lib/pages/edge-router-policies/edge-router-policies-page.service.d.ts +63 -0
- package/lib/pages/edge-router-policies/edge-router-policies-page.service.d.ts.map +1 -0
- package/lib/services/node-data.service.d.ts +1 -0
- package/lib/services/node-data.service.d.ts.map +1 -1
- package/lib/shared/list-page-service.class.d.ts.map +1 -1
- package/lib/ziti-console-lib.module.d.ts +33 -29
- package/lib/ziti-console-lib.module.d.ts.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +7 -0
- package/public-api.d.ts.map +1 -1
|
@@ -164,7 +164,7 @@ class EdgeRoutersPageService extends ListPageServiceClass {
|
|
|
164
164
|
cellClass: 'nf-cell-vert-align tCol',
|
|
165
165
|
},
|
|
166
166
|
{
|
|
167
|
-
colId: '
|
|
167
|
+
colId: 'roleAttributes',
|
|
168
168
|
field: 'roleAttributes',
|
|
169
169
|
headerName: 'Roles',
|
|
170
170
|
headerComponent: TableColumnDefaultComponent,
|
|
@@ -175,7 +175,7 @@ class EdgeRoutersPageService extends ListPageServiceClass {
|
|
|
175
175
|
this.openUpdate(data.data);
|
|
176
176
|
},
|
|
177
177
|
resizable: true,
|
|
178
|
-
cellRenderer: rolesRenderer,
|
|
178
|
+
cellRenderer: this.rolesRenderer,
|
|
179
179
|
cellClass: 'nf-cell-vert-align tCol',
|
|
180
180
|
sortable: false,
|
|
181
181
|
filter: false,
|
|
@@ -358,4 +358,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
358
358
|
type: Inject,
|
|
359
359
|
args: [EDGE_ROUTER_EXTENSION_SERVICE]
|
|
360
360
|
}] }]; } });
|
|
361
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1yb3V0ZXJzLXBhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9wYWdlcy9lZGdlLXJvdXRlcnMvZWRnZS1yb3V0ZXJzLXBhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUMxQyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUNILDJCQUEyQixFQUM5QixNQUFNLDhGQUE4RixDQUFDO0FBRXRHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBa0IsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRixPQUFPLEVBQUMsaUJBQWlCLEVBQWtCLE1BQU0sa0NBQWtDLENBQUM7QUFFcEYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBR3RDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQzNGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUlwRSxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSx1RUFBdUUsQ0FBQztBQUVwSCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7Ozs7QUFFMUUsTUFBTSxXQUFXLEdBQUc7SUFDaEIsRUFBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUM7SUFDN0IsRUFBQyxLQUFLLEVBQUUsWUFBWSxFQUFF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LEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUM7YUFDM0Y7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7YUFDOUY7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsRUFBRTtnQkFDckMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDO2FBQzlFO1lBQ0QsaUVBQWlFO1lBQ2pFOzs7O2dCQUlJO1lBQ0osS0FBSyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQUMsQ0FBQztTQUM1QzthQUFNO1lBQ0gsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7U0FDOUM7UUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDOytHQXRWUSxzQkFBc0Isa0JBNEJuQixnQkFBZ0IsbURBRWhCLGlCQUFpQixzR0FJakIsNkJBQTZCO21IQWxDaEMsc0JBQXNCLGNBRm5CLE1BQU07O1NBRVQsc0JBQXNCOzRGQUF0QixzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkE2QlEsTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUV2QixNQUFNOzJCQUFDLGlCQUFpQjs7MEJBSXhCLE1BQU07MkJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBJbmplY3QsIENvbXBvbmVudH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7Y2xvbmVEZWVwLCBpc0VtcHR5fSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHtEYXRhVGFibGVGaWx0ZXJTZXJ2aWNlLCBGaWx0ZXJPYmp9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9kYXRhLXRhYmxlL2RhdGEtdGFibGUtZmlsdGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7TGlzdFBhZ2VTZXJ2aWNlQ2xhc3N9IGZyb20gXCIuLi8uLi9zaGFyZWQvbGlzdC1wYWdlLXNlcnZpY2UuY2xhc3NcIjtcbmltcG9ydCB7XG4gICAgVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50XG59IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9kYXRhLXRhYmxlL2NvbHVtbi1oZWFkZXJzL3RhYmxlLWNvbHVtbi1kZWZhdWx0L3RhYmxlLWNvbHVtbi1kZWZhdWx0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtDYWxsYmFja1Jlc3VsdHN9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9saXN0LXBhZ2UtZmVhdHVyZXMvbGlzdC1wYWdlLWZvcm0vbGlzdC1wYWdlLWZvcm0uY29tcG9uZW50XCI7XG5pbXBvcnQge1NFVFRJTkdTX1NFUlZJQ0UsIFNldHRpbmdzU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3NldHRpbmdzLnNlcnZpY2VcIjtcbmltcG9ydCB7WklUSV9EQVRBX1NFUlZJQ0UsIFppdGlEYXRhU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3ppdGktZGF0YS5zZXJ2aWNlXCI7XG5pbXBvcnQge0NzdkRvd25sb2FkU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2Nzdi1kb3dubG9hZC5zZXJ2aWNlXCI7XG5pbXBvcnQge0VkZ2VSb3V0ZXJ9IGZyb20gXCIuLi8uLi9tb2RlbHMvZWRnZS1yb3V0ZXJcIjtcbmltcG9ydCB7dW5zZXQsIGZvckVhY2h9IGZyb20gXCJsb2Rhc2hcIjtcbmltcG9ydCB7SVRvb2x0aXBBbmd1bGFyQ29tcH0gZnJvbSBcImFnLWdyaWQtYW5ndWxhclwiO1xuaW1wb3J0IHtJVG9vbHRpcFBhcmFtc30gZnJvbSBcImFnLWdyaWQtY29tbXVuaXR5XCI7XG5pbXBvcnQge09TVG9vbHRpcENvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2RhdGEtdGFibGUvdG9vbHRpcHMvb3MtdG9vbHRpcC5jb21wb25lbnRcIjtcbmltcG9ydCB7R3Jvd2xlck1vZGVsfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvbWVzc2FnaW5nL2dyb3dsZXIubW9kZWxcIjtcbmltcG9ydCB7R3Jvd2xlclNlcnZpY2V9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9tZXNzYWdpbmcvZ3Jvd2xlci5zZXJ2aWNlXCI7XG5pbXBvcnQge01hdERpYWxvZ30gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xuaW1wb3J0IHtTZXR0aW5nc1NlcnZpY2VDbGFzc30gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3NldHRpbmdzLXNlcnZpY2UuY2xhc3NcIjtcbmltcG9ydCB7RURHRV9ST1VURVJfRVhURU5TSU9OX1NFUlZJQ0V9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9wcm9qZWN0YWJsZS1mb3Jtcy9lZGdlLXJvdXRlci9lZGdlLXJvdXRlci1mb3JtLnNlcnZpY2VcIjtcbmltcG9ydCB7RXh0ZW5zaW9uU2VydmljZX0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2V4dGVuZGFibGUvZXh0ZW5zaW9ucy1ub29wLnNlcnZpY2VcIjtcbmltcG9ydCB7Q29uZmlybUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2NvbmZpcm0vY29uZmlybS5jb21wb25lbnRcIjtcblxuY29uc3QgQ1NWX0NPTFVNTlMgPSBbXG4gICAge2xhYmVsOiAnTmFtZScsIHBhdGg6ICduYW1lJ30sXG4gICAge2xhYmVsOiAnQXR0cmlidXRlcycsIHBhdGg6ICdyb2xlQXR0cmlidXRlcyd9LFxuICAgIHtsYWJlbDogJ1ZlcmlmaWVkJywgcGF0aDogJ2lzVmVyaWZpZWQnfSxcbiAgICB7bGFiZWw6ICdPbmxpbmUnLCBwYXRoOiAnaXNPbmxpbmUnfSxcbiAgICB7bGFiZWw6ICdDcmVhdGVkJywgcGF0aDogJ2NyZWF0ZWRBdCd9LFxuICAgIHtsYWJlbDogJ1Rva2VuJywgcGF0aDogJ2Vucm9sbG1lbnRUb2tlbid9LFxuICAgIHtsYWJlbDogJ05vIFRyYXZlcnNhbCcsIHBhdGg6ICdub1RyYXZlcnNhbCd9LFxuICAgIHtsYWJlbDogJ0hvc3QgTmFtZScsIHBhdGg6ICdob3N0bmFtZSd9LFxuICAgIHtsYWJlbDogJ0Rpc2FibGVkJywgcGF0aDogJ2Rpc2FibGVkJ30sXG4gICAge2xhYmVsOiAnVHVubmVsZXIgRW5hYmxlZCcsIHBhdGg6ICdpc1R1bm5lbGVyRW5hYmxlZCd9LFxuICAgIHtsYWJlbDogJ09TJywgcGF0aDogJ3ZlcnNpb25JbmZvLm9zJ30sXG4gICAge2xhYmVsOiAnQXJjaGl0ZWN0dXJlJywgcGF0aDogJ3ZlcnNpb25JbmZvLmFyY2gnfSxcbiAgICB7bGFiZWw6ICdWZXJzaW9uJywgcGF0aDogJ3ZlcnNpb25JbmZvLnZlcnNpb24nfSxcbiAgICB7bGFiZWw6ICdSZXZpc2lvbicsIHBhdGg6ICd2ZXJzaW9uSW5mby5yZXZpc2lvbid9LFxuICAgIHtsYWJlbDogJ0ZpbmdlcnByaW50JywgcGF0aDogJ2ZpbmdlcnByaW50J30sXG4gICAge2xhYmVsOiAnSUQnLCBwYXRoOiAnaWQnfSxcbl07XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRWRnZVJvdXRlcnNQYWdlU2VydmljZSBleHRlbmRzIExpc3RQYWdlU2VydmljZUNsYXNzIHtcblxuICAgIHByaXZhdGUgcGFnaW5nID0gdGhpcy5ERUZBVUxUX1BBR0lORztcbiAgICBwdWJsaWMgbW9kYWxUeXBlID0gJ2VkZ2Utcm91dGVyJztcblxuICAgIHNlbGVjdGVkRWRnZVJvdXRlcjogYW55ID0gbmV3IEVkZ2VSb3V0ZXIoKTtcbiAgICBjb2x1bW5GaWx0ZXJzOiBhbnkgPSB7XG4gICAgICAgIG5hbWU6ICcnLFxuICAgICAgICBvczogJycsXG4gICAgICAgIGNyZWF0ZWRBdDogJycsXG4gICAgfTtcblxuICAgIG92ZXJyaWRlIG1lbnVJdGVtcyA9IFtcbiAgICAgICAge25hbWU6ICdFZGl0JywgYWN0aW9uOiAndXBkYXRlJ30sXG4gICAgICAgIHtuYW1lOiAnRG93bmxvYWQgSldUJywgYWN0aW9uOiAnZG93bmxvYWQtZW5yb2xsbWVudCd9LFxuICAgICAgICB7bmFtZTogJ1Jlc2V0IEVucm9sbG1lbnQnLCBhY3Rpb246ICdyZXNldC1lbnJvbGxtZW50J30sXG4gICAgICAgIHtuYW1lOiAnUmUtRW5yb2xsJywgYWN0aW9uOiAncmUtZW5yb2xsJ30sXG4gICAgICAgIHtuYW1lOiAnRGVsZXRlJywgYWN0aW9uOiAnZGVsZXRlJ30sXG4gICAgXVxuXG4gICAgb3ZlcnJpZGUgdGFibGVIZWFkZXJBY3Rpb25zID0gW1xuICAgICAgICB7bmFtZTogJ0Rvd25sb2FkIEFsbCcsIGFjdGlvbjogJ2Rvd25sb2FkLWFsbCd9LFxuICAgICAgICB7bmFtZTogJ0Rvd25sb2FkIFNlbGVjdGVkJywgYWN0aW9uOiAnZG93bmxvYWQtc2VsZWN0ZWQnfSxcbiAgICBdXG5cbiAgICByZXNvdXJjZVR5cGUgPSAnZWRnZS1yb3V0ZXJzJztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFNFVFRJTkdTX1NFUlZJQ0UpIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2VDbGFzcyxcbiAgICAgICAgZmlsdGVyU2VydmljZTogRGF0YVRhYmxlRmlsdGVyU2VydmljZSxcbiAgICAgICAgQEluamVjdChaSVRJX0RBVEFfU0VSVklDRSkgcHJpdmF0ZSB6aXRpU2VydmljZTogWml0aURhdGFTZXJ2aWNlLFxuICAgICAgICBvdmVycmlkZSBjc3ZEb3dubG9hZFNlcnZpY2U6IENzdkRvd25sb2FkU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBncm93bGVyU2VydmljZTogR3Jvd2xlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZGlhbG9nRm9ybTogTWF0RGlhbG9nLFxuICAgICAgICBASW5qZWN0KEVER0VfUk9VVEVSX0VYVEVOU0lPTl9TRVJWSUNFKSBwcml2YXRlIGV4dFNlcnZpY2U6IEV4dGVuc2lvblNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoc2V0dGluZ3MsIGZpbHRlclNlcnZpY2UsIGNzdkRvd25sb2FkU2VydmljZSwgZXh0U2VydmljZSk7XG4gICAgfVxuXG4gICAgdmFsaWRhdGUgPSAoZm9ybURhdGEpOiBQcm9taXNlPENhbGxiYWNrUmVzdWx0cz4gPT4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHsgcGFzc2VkOiB0cnVlfSk7XG4gICAgfVxuXG4gICAgaW5pdFRhYmxlQ29sdW1ucygpOiBhbnkge1xuICAgICAgICB0aGlzLmluaXRNZW51QWN0aW9ucygpO1xuXG4gICAgICAgIGNvbnN0IG5hbWVSZW5kZXJlciA9IChyb3cpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBgPGRpdiBjbGFzcz1cImNvbCBjZWxsLW5hbWUtcmVuZGVyZXJcIiBkYXRhLWlkPVwiJHtyb3c/LmRhdGE/LmlkfVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2lyY2xlICR7cm93Py5kYXRhPy5pc1ZlcmlmaWVkfVwiIHRpdGxlPVwiVmVyaWZpZWQgU3RhdHVzXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2lyY2xlICR7cm93Py5kYXRhPy5pc09ubGluZX1cIiB0aXRsZT1cIk9ubGluZSBTdGF0dXNcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPHN0cm9uZz4ke3Jvdz8uZGF0YT8ubmFtZX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgPC9kaXY+YFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgcm9sZXNSZW5kZXJlciA9IChyb3cpID0+IHtcbiAgICAgICAgICAgIGxldCByb2xlcyA9ICcnO1xuICAgICAgICAgICAgcm93Py5kYXRhPy5yb2xlQXR0cmlidXRlcz8uZm9yRWFjaCgoYXR0cikgPT4ge1xuICAgICAgICAgICAgICAgIHJvbGVzICs9ICc8ZGl2IGNsYXNzPVwiaGFzaHRhZ1wiPicrYXR0cisnPC9kaXY+JztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHJvbGVzO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3NSZW5kZXJlciA9IChyb3cpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9zTWFwOiBhbnkgPSB7XG4gICAgICAgICAgICAgICAgJ2Rhcndpbic6ICdhcHBsZScsXG4gICAgICAgICAgICAgICAgJ2xpbnV4JzogJ2xpbnV4JyxcbiAgICAgICAgICAgICAgICAnYW5kcm9pZCc6ICdhbmRyb2lkJyxcbiAgICAgICAgICAgICAgICAnd2luZG93cyc6ICd3aW5kb3dzJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IG9zID0gXCJvdGhlclwiO1xuICAgICAgICAgICAgZm9yRWFjaChvc01hcCwgKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocm93Py5kYXRhPy52ZXJzaW9uSW5mbz8ub3NWZXJzaW9uPy50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoa2V5KT49MCB8fFxuICAgICAgICAgICAgICAgICAgICByb3c/LmRhdGE/LnZlcnNpb25JbmZvPy5vcy50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoa2V5KT49MCkge1xuICAgICAgICAgICAgICAgICAgICBvcyA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwiY29sIGRlc2t0b3BcIiBkYXRhLWlkPVwiJHtyb3c/LmRhdGE/LmlkfVwiIHN0eWxlPVwib3ZlcmZsb3c6IHVuc2V0O1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3MgJHtvc31cIiBkYXRhLWJhbGxvb24tcG9zPVwidXBcIj48L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVucm9sbG1lbnRUb2tlbkZvcm1hdHRlciA9IChyb3cpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRva2VuID0gcm93Py5kYXRhPy5lbnJvbGxtZW50VG9rZW47XG4gICAgICAgICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgICAgICAgICBpZiAobW9tZW50KHJvdz8uZGF0YT8uZW5yb2xsbWVudEV4cGlyZXNBdCkuaXNCZWZvcmUoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ0Vucm9sbG1lbnQgRXhwaXJlZCc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGNvbHVtbkZpbHRlcnMgPSB0aGlzLmNvbHVtbkZpbHRlcnM7XG5cbiAgICAgICAgY29uc3Qgb3NQYXJhbXMgPSB7XG4gICAgICAgICAgICBmaWx0ZXJUeXBlOiAnQ09NQk8nLFxuICAgICAgICAgICAgZmlsdGVyT3B0aW9uczogW1xuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdBbGwnLCB2YWx1ZTogJycsIGljb246ICdlbXB0eScgfSxcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnQXBwbGUnLCB2YWx1ZTogJ2RhcndpbicsIGljb246ICdhcHBsZScgfSxcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnV2luZG93cycsIHZhbHVlOiAnbWluZ3cnLCBpY29uOiAnd2luZG93cycgIH0sXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0xpbnV4JywgdmFsdWU6ICdsaW51eCcsIGljb246ICdsaW51eCcgIH0sXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0FuZHJvaWQnLCB2YWx1ZTogJ2FuZHJvaWQnLCBpY29uOiAnYW5kcm9pZCcgIH0sXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ090aGVyICh0ZXh0IHNlYXJjaCknLCB2YWx1ZTogJycsIGljb246ICdvdGhlcicsIHVzZVRleHRJbnB1dDogdHJ1ZSAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBjb2x1bW5GaWx0ZXJzLFxuICAgICAgICB9O1xuXG4gICAgICAgIGxldCB0YWJsZUNvbHVtbnMgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICduYW1lJyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ25hbWUnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdOYW1lJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnRQYXJhbXM6IHRoaXMuaGVhZGVyQ29tcG9uZW50UGFyYW1zLFxuICAgICAgICAgICAgICAgIG9uQ2VsbENsaWNrZWQ6IChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc1NlbGVjdGVkVGV4dCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuVXBkYXRlKGRhdGEuZGF0YSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiBuYW1lUmVuZGVyZXIsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLnNvcnQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBzb3J0RGlyOiAnYXNjJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ29zJyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ3ZlcnNpb25JbmZvLm9zJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnTy9TJyxcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwLFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogb3NSZW5kZXJlcixcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICB0b29sdGlwQ29tcG9uZW50OiBPU1Rvb2x0aXBDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgdG9vbHRpcEZpZWxkOiAndmVyc2lvbkluZm8ub3MnLFxuICAgICAgICAgICAgICAgIHRvb2x0aXBDb21wb25lbnRQYXJhbXM6IHsgY29sb3I6ICcjZWNlY2VjJyB9LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAncm9sZXMnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAncm9sZUF0dHJpYnV0ZXMnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdSb2xlcycsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgb25DZWxsQ2xpY2tlZDogKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzU2VsZWN0ZWRUZXh0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5VcGRhdGUoZGF0YS5kYXRhKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXI6IHJvbGVzUmVuZGVyZXIsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ3ZlcmlmaWVkJyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2lzVmVyaWZpZWQnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdWZXJpZmllZCcsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ29ubGluZScsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdpc09ubGluZScsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ09ubGluZScsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ2NyZWF0ZWRBdCcsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdjcmVhdGVkQXQnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdDcmVhdGVkIEF0JyxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogdGhpcy5jcmVhdGVkQXRGb3JtYXR0ZXIsXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRDb2x1bW46IHRoaXMuc29ydC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdlbnJvbGxtZW50VG9rZW4nLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAnZW5yb2xsbWVudFRva2VuJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnVG9rZW4nLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHZhbHVlRm9ybWF0dGVyOiBlbnJvbGxtZW50VG9rZW5Gb3JtYXR0ZXIsXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdqd3QnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAnZW5yb2xsbWVudEp3dCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ0pXVCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiAnY2VsbFRva2VuQ29tcG9uZW50JyxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuXG4gICAgICAgIGlmICh0aGlzLmV4dFNlcnZpY2UucHJvY2Vzc1RhYmxlQ29sdW1ucykge1xuICAgICAgICAgICAgdGFibGVDb2x1bW5zID0gdGhpcy5leHRTZXJ2aWNlLnByb2Nlc3NUYWJsZUNvbHVtbnModGFibGVDb2x1bW5zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0YWJsZUNvbHVtbnM7XG4gICAgfVxuXG4gICAgZ2V0RGF0YShmaWx0ZXJzPzogRmlsdGVyT2JqW10sIHNvcnQ/OiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICAvLyB3ZSBjYW4gY3VzdG9taXplIGZpbHRlcnMgb3Igc29ydGluZyBoZXJlIGJlZm9yZSBtb3Zpbmcgb24uLi5cbiAgICAgICAgcmV0dXJuIHN1cGVyLmdldFRhYmxlRGF0YSgnZWRnZS1yb3V0ZXJzJywgdGhpcy5wYWdpbmcsIGZpbHRlcnMsIHNvcnQpXG4gICAgICAgICAgICAudGhlbigocmVzdWx0czogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0RhdGEocmVzdWx0cyk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NEYXRhKHJlc3VsdHM6IGFueSkge1xuICAgICAgICBpZiAoIWlzRW1wdHkocmVzdWx0cz8uZGF0YSkpIHtcbiAgICAgICAgICAgIC8vcHJlLXByb2Nlc3MgZGF0YSBiZWZvcmUgcmVuZGVyaW5nXG4gICAgICAgICAgICByZXN1bHRzLmRhdGEgPSB0aGlzLmFkZEFjdGlvbnNQZXJSb3cocmVzdWx0cyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRBY3Rpb25zUGVyUm93KHJlc3VsdHM6IGFueSk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdHMuZGF0YS5tYXAoKHJvdykgPT4ge1xuICAgICAgICAgICAgcm93LmFjdGlvbkxpc3QgPSBbJ3VwZGF0ZScsICdyZS1lbnJvbGwnLCAnZGVsZXRlJ107XG4gICAgICAgICAgICBpZiAodGhpcy5oYXNFbnJvbG1lbnRUb2tlbihyb3cpKSB7XG4gICAgICAgICAgICAgICAgcm93LmFjdGlvbkxpc3QucHVzaCgnZG93bmxvYWQtZW5yb2xsbWVudCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5hZGRMaXN0SXRlbUV4dGVuc2lvbkFjdGlvbnMocm93KTtcbiAgICAgICAgICAgIHJldHVybiByb3c7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGhhc0Vucm9sbWVudFRva2VuKGl0ZW0pIHtcbiAgICAgICAgcmV0dXJuICFpc0VtcHR5KGl0ZW0/LmVucm9sbG1lbnRKd3QpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRFZGdlUm91dGVyUm9sZUF0dHJpYnV0ZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnppdGlTZXJ2aWNlLmdldCgnZWRnZS1yb3V0ZXItcm9sZS1hdHRyaWJ1dGVzJywge30sIFtdKTtcbiAgICB9XG5cblxuICAgIGdldEpXVChpZGVudGl0eTogYW55KSB7XG4gICAgICAgIHJldHVybiBpZGVudGl0eS5lbnJvbGxtZW50Snd0O1xuICAgIH1cblxuICAgIGRvd25sb2FkSldUKGp3dCwgbmFtZSkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnaHJlZicsICdkYXRhOmFwcGxpY2F0aW9uL3ppdGktand0O2NoYXJzZXQ9dXRmLTgsJyArIGVuY29kZVVSSUNvbXBvbmVudChqd3QpKTtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgbmFtZStcIi5qd3RcIik7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTtcbiAgICAgICAgZWxlbWVudC5jbGljaygpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVsZW1lbnQpO1xuICAgIH1cblxuICAgIGRvd25sb2FkQWxsSXRlbXMoKSB7XG4gICAgICAgIGNvbnN0IHBhZ2luZyA9IGNsb25lRGVlcCh0aGlzLnBhZ2luZyk7XG4gICAgICAgIHBhZ2luZy50b3RhbCA9IDIwMDA7XG4gICAgICAgIHN1cGVyLmdldFRhYmxlRGF0YSgnZWRnZS1yb3V0ZXJzJywgcGFnaW5nLCB1bmRlZmluZWQsIHVuZGVmaW5lZClcbiAgICAgICAgICAgIC50aGVuKChyZXN1bHRzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kb3dubG9hZEl0ZW1zKHJlc3VsdHM/LmRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZG93bmxvYWRJdGVtcyhzZWxlY3RlZEl0ZW1zKSB7XG4gICAgICAgIHRoaXMuY3N2RG93bmxvYWRTZXJ2aWNlLmRvd25sb2FkKFxuICAgICAgICAgICAgJ2VkZ2Utcm91dGVycycsXG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLFxuICAgICAgICAgICAgQ1NWX0NPTFVNTlMsXG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZWVucm9sbChyb3V0ZXI6IGFueSkge1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgYXBwZW5kSWQ6ICdSZWVucm9sbFJvdXRlcicsXG4gICAgICAgICAgICB0aXRsZTogJ1JlLUVucm9sbCBSb3V0ZXInLFxuICAgICAgICAgICAgbWVzc2FnZTogYDxwPklmIHRoZSByb3V0ZXIgaXMgY3VycmVudGx5IGNvbm5lY3RlZCwgaXQgd2lsbCBiZSBkaXNjb25uZWN0ZWQgdW50aWwgdGhlIGVucm9sbG1lbnQgcHJvY2VzcyBpcyBjb21wbGV0ZWQgd2l0aCB0aGUgbmV3bHkgZ2VuZXJhdGVkIEpXVC4gPHA+IEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZS1lbnJvbGwgdGhlIHNlbGVjdGVkIHJvdXRlcj9gLFxuICAgICAgICAgICAgY29uZmlybUxhYmVsOiAnWWVzJyxcbiAgICAgICAgICAgIGNhbmNlbExhYmVsOiAnT29wcywgbm8gZ2V0IG1lIG91dCBvZiBoZXJlJyxcbiAgICAgICAgICAgIHNob3dDYW5jZWxMaW5rOiB0cnVlXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5kaWFsb2dGb3JtLm9wZW4oQ29uZmlybUNvbXBvbmVudCwge1xuICAgICAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgICAgICAgIGF1dG9Gb2N1czogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcy5kaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS50b1Byb21pc2UoKS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy56aXRpU2VydmljZS5wb3N0KGBlZGdlLXJvdXRlcnMvJHtyb3V0ZXIuaWR9L3JlLWVucm9sbGAsIHt9LCB0cnVlKS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3Jvd2xlckRhdGEgPSBuZXcgR3Jvd2xlck1vZGVsKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1N1Y2Nlc3MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYFJlLWVucm9sbCBDb25maXJtZWRgLFxuICAgICAgICAgICAgICAgICAgICAgICAgYFJvdXRlciByZS1lbnJvbGwgd2FzIHNlbnQuIEEgbmV3IGVucm9sbG1lbnQgdG9rZW4gaXMgbm93IGF2YWlsYWJsZWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3Jvd2xlclNlcnZpY2Uuc2hvdyhncm93bGVyRGF0YSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW5VcGRhdGUoaXRlbT86IGFueSkge1xuICAgICAgICB0aGlzLm1vZGFsVHlwZSA9ICdlZGdlLXJvdXRlcic7XG4gICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRWRnZVJvdXRlciA9IGl0ZW07XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRWRnZVJvdXRlci5iYWRnZXMgPSBbXTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkRWRnZVJvdXRlci5pc09ubGluZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFZGdlUm91dGVyLmJhZGdlcy5wdXNoKHtsYWJlbDogJ09ubGluZScsIGNsYXNzOiAnb25saW5lJywgY2lyY2xlOiAndHJ1ZSd9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEVkZ2VSb3V0ZXIuYmFkZ2VzLnB1c2goe2xhYmVsOiAnT2ZmbGluZScsIGNsYXNzOiAnb2ZmbGluZScsIGNpcmNsZTogJ2ZhbHNlJ30pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkRWRnZVJvdXRlci5pc1ZlcmlmaWVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEVkZ2VSb3V0ZXIuYmFkZ2VzLnB1c2goe2xhYmVsOiAnVW52ZXJpZmllZCcsIGNsYXNzOiAndW5yZWcnfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBUT0RPOiBpbXBsZW1lbnQgd2hlbiBtZXRyaWNzIGFuZCBkaWFsb2cgZmVhdHVyZXMgYXJlIGF2YWlsYWJsZVxuICAgICAgICAgICAgLyp0aGlzLnNlbGVjdGVkRWRnZVJvdXRlcloubW9yZUFjdGlvbnMgPSBbXG4gICAgICAgICAgICAgICAge25hbWU6ICdvcGVuLW1ldHJpY3MnLCBsYWJlbDogJ09wZW4gTWV0cmljcyd9LFxuICAgICAgICAgICAgICAgIHtuYW1lOiAnZGlhbC1sb2dzJywgbGFiZWw6ICdEaWFsIExvZ3MnfSxcbiAgICAgICAgICAgICAgICB7bmFtZTogJ2RpYWwtbG9ncycsIGxhYmVsOiAnVmlldyBFdmVudHMnfSxcbiAgICAgICAgICAgIF07Ki9cbiAgICAgICAgICAgIHVuc2V0KHRoaXMuc2VsZWN0ZWRFZGdlUm91dGVyLCAnX2xpbmtzJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRWRnZVJvdXRlciA9IG5ldyBFZGdlUm91dGVyKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaWRlTW9kYWxPcGVuID0gdHJ1ZTtcbiAgICB9XG59XG4iXX0=
|
|
361
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1yb3V0ZXJzLXBhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9wYWdlcy9lZGdlLXJvdXRlcnMvZWRnZS1yb3V0ZXJzLXBhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUMxQyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUNILDJCQUEyQixFQUM5QixNQUFNLDhGQUE4RixDQUFDO0FBRXRHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBa0IsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRixPQUFPLEVBQUMsaUJBQWlCLEVBQWtCLE1BQU0sa0NBQWtDLENBQUM7QUFFcEYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBR3RDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQzNGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUlwRSxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSx1RUFBdUUsQ0FBQztBQUVwSCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7Ozs7QUFFMUUsTUFBTSxXQUFXLEdBQUc7SUFDaEIsRUFBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUM7SUFDN0IsRUFBQyxLQUFLLEVBQUUsWUFBWSxFQUFF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QUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDO2FBQzNGO2lCQUFNO2dCQUNILElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDO2FBQzlGO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBQzthQUM5RTtZQUNELGlFQUFpRTtZQUNqRTs7OztnQkFJSTtZQUNKLEtBQUssQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDNUM7YUFBTTtZQUNILElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1NBQzlDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQzsrR0F0VlEsc0JBQXNCLGtCQTRCbkIsZ0JBQWdCLG1EQUVoQixpQkFBaUIsc0dBSWpCLDZCQUE2QjttSEFsQ2hDLHNCQUFzQixjQUZuQixNQUFNOztTQUVULHNCQUFzQjs0RkFBdEIsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBNkJRLE1BQU07MkJBQUMsZ0JBQWdCOzswQkFFdkIsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUl4QixNQUFNOzJCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgSW5qZWN0LCBDb21wb25lbnR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge2Nsb25lRGVlcCwgaXNFbXB0eX0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7RGF0YVRhYmxlRmlsdGVyU2VydmljZSwgRmlsdGVyT2JqfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLWZpbHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQge0xpc3RQYWdlU2VydmljZUNsYXNzfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2xpc3QtcGFnZS1zZXJ2aWNlLmNsYXNzXCI7XG5pbXBvcnQge1xuICAgIFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudFxufSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9jb2x1bW4taGVhZGVycy90YWJsZS1jb2x1bW4tZGVmYXVsdC90YWJsZS1jb2x1bW4tZGVmYXVsdC5jb21wb25lbnRcIjtcbmltcG9ydCB7Q2FsbGJhY2tSZXN1bHRzfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvbGlzdC1wYWdlLWZlYXR1cmVzL2xpc3QtcGFnZS1mb3JtL2xpc3QtcGFnZS1mb3JtLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtTRVRUSU5HU19TRVJWSUNFLCBTZXR0aW5nc1NlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9zZXR0aW5ncy5zZXJ2aWNlXCI7XG5pbXBvcnQge1pJVElfREFUQV9TRVJWSUNFLCBaaXRpRGF0YVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy96aXRpLWRhdGEuc2VydmljZVwiO1xuaW1wb3J0IHtDc3ZEb3dubG9hZFNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9jc3YtZG93bmxvYWQuc2VydmljZVwiO1xuaW1wb3J0IHtFZGdlUm91dGVyfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2VkZ2Utcm91dGVyXCI7XG5pbXBvcnQge3Vuc2V0LCBmb3JFYWNofSBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQge0lUb29sdGlwQW5ndWxhckNvbXB9IGZyb20gXCJhZy1ncmlkLWFuZ3VsYXJcIjtcbmltcG9ydCB7SVRvb2x0aXBQYXJhbXN9IGZyb20gXCJhZy1ncmlkLWNvbW11bml0eVwiO1xuaW1wb3J0IHtPU1Rvb2x0aXBDb21wb25lbnR9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9kYXRhLXRhYmxlL3Rvb2x0aXBzL29zLXRvb2x0aXAuY29tcG9uZW50XCI7XG5pbXBvcnQge0dyb3dsZXJNb2RlbH0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL21lc3NhZ2luZy9ncm93bGVyLm1vZGVsXCI7XG5pbXBvcnQge0dyb3dsZXJTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvbWVzc2FnaW5nL2dyb3dsZXIuc2VydmljZVwiO1xuaW1wb3J0IHtNYXREaWFsb2d9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcbmltcG9ydCB7U2V0dGluZ3NTZXJ2aWNlQ2xhc3N9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9zZXR0aW5ncy1zZXJ2aWNlLmNsYXNzXCI7XG5pbXBvcnQge0VER0VfUk9VVEVSX0VYVEVOU0lPTl9TRVJWSUNFfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvcHJvamVjdGFibGUtZm9ybXMvZWRnZS1yb3V0ZXIvZWRnZS1yb3V0ZXItZm9ybS5zZXJ2aWNlXCI7XG5pbXBvcnQge0V4dGVuc2lvblNlcnZpY2V9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9leHRlbmRhYmxlL2V4dGVuc2lvbnMtbm9vcC5zZXJ2aWNlXCI7XG5pbXBvcnQge0NvbmZpcm1Db21wb25lbnR9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9jb25maXJtL2NvbmZpcm0uY29tcG9uZW50XCI7XG5cbmNvbnN0IENTVl9DT0xVTU5TID0gW1xuICAgIHtsYWJlbDogJ05hbWUnLCBwYXRoOiAnbmFtZSd9LFxuICAgIHtsYWJlbDogJ0F0dHJpYnV0ZXMnLCBwYXRoOiAncm9sZUF0dHJpYnV0ZXMnfSxcbiAgICB7bGFiZWw6ICdWZXJpZmllZCcsIHBhdGg6ICdpc1ZlcmlmaWVkJ30sXG4gICAge2xhYmVsOiAnT25saW5lJywgcGF0aDogJ2lzT25saW5lJ30sXG4gICAge2xhYmVsOiAnQ3JlYXRlZCcsIHBhdGg6ICdjcmVhdGVkQXQnfSxcbiAgICB7bGFiZWw6ICdUb2tlbicsIHBhdGg6ICdlbnJvbGxtZW50VG9rZW4nfSxcbiAgICB7bGFiZWw6ICdObyBUcmF2ZXJzYWwnLCBwYXRoOiAnbm9UcmF2ZXJzYWwnfSxcbiAgICB7bGFiZWw6ICdIb3N0IE5hbWUnLCBwYXRoOiAnaG9zdG5hbWUnfSxcbiAgICB7bGFiZWw6ICdEaXNhYmxlZCcsIHBhdGg6ICdkaXNhYmxlZCd9LFxuICAgIHtsYWJlbDogJ1R1bm5lbGVyIEVuYWJsZWQnLCBwYXRoOiAnaXNUdW5uZWxlckVuYWJsZWQnfSxcbiAgICB7bGFiZWw6ICdPUycsIHBhdGg6ICd2ZXJzaW9uSW5mby5vcyd9LFxuICAgIHtsYWJlbDogJ0FyY2hpdGVjdHVyZScsIHBhdGg6ICd2ZXJzaW9uSW5mby5hcmNoJ30sXG4gICAge2xhYmVsOiAnVmVyc2lvbicsIHBhdGg6ICd2ZXJzaW9uSW5mby52ZXJzaW9uJ30sXG4gICAge2xhYmVsOiAnUmV2aXNpb24nLCBwYXRoOiAndmVyc2lvbkluZm8ucmV2aXNpb24nfSxcbiAgICB7bGFiZWw6ICdGaW5nZXJwcmludCcsIHBhdGg6ICdmaW5nZXJwcmludCd9LFxuICAgIHtsYWJlbDogJ0lEJywgcGF0aDogJ2lkJ30sXG5dO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEVkZ2VSb3V0ZXJzUGFnZVNlcnZpY2UgZXh0ZW5kcyBMaXN0UGFnZVNlcnZpY2VDbGFzcyB7XG5cbiAgICBwcml2YXRlIHBhZ2luZyA9IHRoaXMuREVGQVVMVF9QQUdJTkc7XG4gICAgcHVibGljIG1vZGFsVHlwZSA9ICdlZGdlLXJvdXRlcic7XG5cbiAgICBzZWxlY3RlZEVkZ2VSb3V0ZXI6IGFueSA9IG5ldyBFZGdlUm91dGVyKCk7XG4gICAgY29sdW1uRmlsdGVyczogYW55ID0ge1xuICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgb3M6ICcnLFxuICAgICAgICBjcmVhdGVkQXQ6ICcnLFxuICAgIH07XG5cbiAgICBvdmVycmlkZSBtZW51SXRlbXMgPSBbXG4gICAgICAgIHtuYW1lOiAnRWRpdCcsIGFjdGlvbjogJ3VwZGF0ZSd9LFxuICAgICAgICB7bmFtZTogJ0Rvd25sb2FkIEpXVCcsIGFjdGlvbjogJ2Rvd25sb2FkLWVucm9sbG1lbnQnfSxcbiAgICAgICAge25hbWU6ICdSZXNldCBFbnJvbGxtZW50JywgYWN0aW9uOiAncmVzZXQtZW5yb2xsbWVudCd9LFxuICAgICAgICB7bmFtZTogJ1JlLUVucm9sbCcsIGFjdGlvbjogJ3JlLWVucm9sbCd9LFxuICAgICAgICB7bmFtZTogJ0RlbGV0ZScsIGFjdGlvbjogJ2RlbGV0ZSd9LFxuICAgIF1cblxuICAgIG92ZXJyaWRlIHRhYmxlSGVhZGVyQWN0aW9ucyA9IFtcbiAgICAgICAge25hbWU6ICdEb3dubG9hZCBBbGwnLCBhY3Rpb246ICdkb3dubG9hZC1hbGwnfSxcbiAgICAgICAge25hbWU6ICdEb3dubG9hZCBTZWxlY3RlZCcsIGFjdGlvbjogJ2Rvd25sb2FkLXNlbGVjdGVkJ30sXG4gICAgXVxuXG4gICAgcmVzb3VyY2VUeXBlID0gJ2VkZ2Utcm91dGVycyc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChTRVRUSU5HU19TRVJWSUNFKSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlQ2xhc3MsXG4gICAgICAgIGZpbHRlclNlcnZpY2U6IERhdGFUYWJsZUZpbHRlclNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoWklUSV9EQVRBX1NFUlZJQ0UpIHByaXZhdGUgeml0aVNlcnZpY2U6IFppdGlEYXRhU2VydmljZSxcbiAgICAgICAgb3ZlcnJpZGUgY3N2RG93bmxvYWRTZXJ2aWNlOiBDc3ZEb3dubG9hZFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZ3Jvd2xlclNlcnZpY2U6IEdyb3dsZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRpYWxvZ0Zvcm06IE1hdERpYWxvZyxcbiAgICAgICAgQEluamVjdChFREdFX1JPVVRFUl9FWFRFTlNJT05fU0VSVklDRSkgcHJpdmF0ZSBleHRTZXJ2aWNlOiBFeHRlbnNpb25TZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKHNldHRpbmdzLCBmaWx0ZXJTZXJ2aWNlLCBjc3ZEb3dubG9hZFNlcnZpY2UsIGV4dFNlcnZpY2UpO1xuICAgIH1cblxuICAgIHZhbGlkYXRlID0gKGZvcm1EYXRhKTogUHJvbWlzZTxDYWxsYmFja1Jlc3VsdHM+ID0+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7IHBhc3NlZDogdHJ1ZX0pO1xuICAgIH1cblxuICAgIGluaXRUYWJsZUNvbHVtbnMoKTogYW55IHtcbiAgICAgICAgdGhpcy5pbml0TWVudUFjdGlvbnMoKTtcblxuICAgICAgICBjb25zdCBuYW1lUmVuZGVyZXIgPSAocm93KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCJjb2wgY2VsbC1uYW1lLXJlbmRlcmVyXCIgZGF0YS1pZD1cIiR7cm93Py5kYXRhPy5pZH1cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNpcmNsZSAke3Jvdz8uZGF0YT8uaXNWZXJpZmllZH1cIiB0aXRsZT1cIlZlcmlmaWVkIFN0YXR1c1wiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNpcmNsZSAke3Jvdz8uZGF0YT8uaXNPbmxpbmV9XCIgdGl0bGU9XCJPbmxpbmUgU3RhdHVzXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzdHJvbmc+JHtyb3c/LmRhdGE/Lm5hbWV9PC9zdHJvbmc+XG4gICAgICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJvbGVzUmVuZGVyZXIgPSAocm93KSA9PiB7XG4gICAgICAgICAgICBsZXQgcm9sZXMgPSAnJztcbiAgICAgICAgICAgIHJvdz8uZGF0YT8ucm9sZUF0dHJpYnV0ZXM/LmZvckVhY2goKGF0dHIpID0+IHtcbiAgICAgICAgICAgICAgICByb2xlcyArPSAnPGRpdiBjbGFzcz1cImhhc2h0YWdcIj4nK2F0dHIrJzwvZGl2Pic7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiByb2xlcztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG9zUmVuZGVyZXIgPSAocm93KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBvc01hcDogYW55ID0ge1xuICAgICAgICAgICAgICAgICdkYXJ3aW4nOiAnYXBwbGUnLFxuICAgICAgICAgICAgICAgICdsaW51eCc6ICdsaW51eCcsXG4gICAgICAgICAgICAgICAgJ2FuZHJvaWQnOiAnYW5kcm9pZCcsXG4gICAgICAgICAgICAgICAgJ3dpbmRvd3MnOiAnd2luZG93cydcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBvcyA9IFwib3RoZXJcIjtcbiAgICAgICAgICAgIGZvckVhY2gob3NNYXAsICh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJvdz8uZGF0YT8udmVyc2lvbkluZm8/Lm9zVmVyc2lvbj8udG9Mb3dlckNhc2UoKS5pbmRleE9mKGtleSk+PTAgfHxcbiAgICAgICAgICAgICAgICAgICAgcm93Py5kYXRhPy52ZXJzaW9uSW5mbz8ub3MudG9Mb3dlckNhc2UoKS5pbmRleE9mKGtleSk+PTApIHtcbiAgICAgICAgICAgICAgICAgICAgb3MgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBgPGRpdiBjbGFzcz1cImNvbCBkZXNrdG9wXCIgZGF0YS1pZD1cIiR7cm93Py5kYXRhPy5pZH1cIiBzdHlsZT1cIm92ZXJmbG93OiB1bnNldDtcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9zICR7b3N9XCIgZGF0YS1iYWxsb29uLXBvcz1cInVwXCI+PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5gXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlbnJvbGxtZW50VG9rZW5Gb3JtYXR0ZXIgPSAocm93KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0b2tlbiA9IHJvdz8uZGF0YT8uZW5yb2xsbWVudFRva2VuO1xuICAgICAgICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1vbWVudChyb3c/LmRhdGE/LmVucm9sbG1lbnRFeHBpcmVzQXQpLmlzQmVmb3JlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdFbnJvbGxtZW50IEV4cGlyZWQnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBjb2x1bW5GaWx0ZXJzID0gdGhpcy5jb2x1bW5GaWx0ZXJzO1xuXG4gICAgICAgIGNvbnN0IG9zUGFyYW1zID0ge1xuICAgICAgICAgICAgZmlsdGVyVHlwZTogJ0NPTUJPJyxcbiAgICAgICAgICAgIGZpbHRlck9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnQWxsJywgdmFsdWU6ICcnLCBpY29uOiAnZW1wdHknIH0sXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0FwcGxlJywgdmFsdWU6ICdkYXJ3aW4nLCBpY29uOiAnYXBwbGUnIH0sXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ1dpbmRvd3MnLCB2YWx1ZTogJ21pbmd3JywgaWNvbjogJ3dpbmRvd3MnICB9LFxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdMaW51eCcsIHZhbHVlOiAnbGludXgnLCBpY29uOiAnbGludXgnICB9LFxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdBbmRyb2lkJywgdmFsdWU6ICdhbmRyb2lkJywgaWNvbjogJ2FuZHJvaWQnICB9LFxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdPdGhlciAodGV4dCBzZWFyY2gpJywgdmFsdWU6ICcnLCBpY29uOiAnb3RoZXInLCB1c2VUZXh0SW5wdXQ6IHRydWUgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgY29sdW1uRmlsdGVycyxcbiAgICAgICAgfTtcblxuICAgICAgICBsZXQgdGFibGVDb2x1bW5zID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAnbmFtZScsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICduYW1lJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnTmFtZScsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50UGFyYW1zOiB0aGlzLmhlYWRlckNvbXBvbmVudFBhcmFtcyxcbiAgICAgICAgICAgICAgICBvbkNlbGxDbGlja2VkOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNTZWxlY3RlZFRleHQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlblVwZGF0ZShkYXRhLmRhdGEpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogbmFtZVJlbmRlcmVyLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IHRydWUsXG4gICAgICAgICAgICAgICAgc29ydENvbHVtbjogdGhpcy5zb3J0LmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgc29ydERpcjogJ2FzYydcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdvcycsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICd2ZXJzaW9uSW5mby5vcycsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ08vUycsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXI6IG9zUmVuZGVyZXIsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgdG9vbHRpcENvbXBvbmVudDogT1NUb29sdGlwQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHRvb2x0aXBGaWVsZDogJ3ZlcnNpb25JbmZvLm9zJyxcbiAgICAgICAgICAgICAgICB0b29sdGlwQ29tcG9uZW50UGFyYW1zOiB7IGNvbG9yOiAnI2VjZWNlYycgfSxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ3JvbGVBdHRyaWJ1dGVzJyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ3JvbGVBdHRyaWJ1dGVzJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnUm9sZXMnLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIG9uQ2VsbENsaWNrZWQ6IChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc1NlbGVjdGVkVGV4dCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuVXBkYXRlKGRhdGEuZGF0YSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiB0aGlzLnJvbGVzUmVuZGVyZXIsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ3ZlcmlmaWVkJyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2lzVmVyaWZpZWQnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdWZXJpZmllZCcsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ29ubGluZScsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdpc09ubGluZScsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ09ubGluZScsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ2NyZWF0ZWRBdCcsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdjcmVhdGVkQXQnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdDcmVhdGVkIEF0JyxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogdGhpcy5jcmVhdGVkQXRGb3JtYXR0ZXIsXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRDb2x1bW46IHRoaXMuc29ydC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdlbnJvbGxtZW50VG9rZW4nLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAnZW5yb2xsbWVudFRva2VuJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnVG9rZW4nLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHZhbHVlRm9ybWF0dGVyOiBlbnJvbGxtZW50VG9rZW5Gb3JtYXR0ZXIsXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdqd3QnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAnZW5yb2xsbWVudEp3dCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ0pXVCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiAnY2VsbFRva2VuQ29tcG9uZW50JyxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuXG4gICAgICAgIGlmICh0aGlzLmV4dFNlcnZpY2UucHJvY2Vzc1RhYmxlQ29sdW1ucykge1xuICAgICAgICAgICAgdGFibGVDb2x1bW5zID0gdGhpcy5leHRTZXJ2aWNlLnByb2Nlc3NUYWJsZUNvbHVtbnModGFibGVDb2x1bW5zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0YWJsZUNvbHVtbnM7XG4gICAgfVxuXG4gICAgZ2V0RGF0YShmaWx0ZXJzPzogRmlsdGVyT2JqW10sIHNvcnQ/OiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICAvLyB3ZSBjYW4gY3VzdG9taXplIGZpbHRlcnMgb3Igc29ydGluZyBoZXJlIGJlZm9yZSBtb3Zpbmcgb24uLi5cbiAgICAgICAgcmV0dXJuIHN1cGVyLmdldFRhYmxlRGF0YSgnZWRnZS1yb3V0ZXJzJywgdGhpcy5wYWdpbmcsIGZpbHRlcnMsIHNvcnQpXG4gICAgICAgICAgICAudGhlbigocmVzdWx0czogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0RhdGEocmVzdWx0cyk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NEYXRhKHJlc3VsdHM6IGFueSkge1xuICAgICAgICBpZiAoIWlzRW1wdHkocmVzdWx0cz8uZGF0YSkpIHtcbiAgICAgICAgICAgIC8vcHJlLXByb2Nlc3MgZGF0YSBiZWZvcmUgcmVuZGVyaW5nXG4gICAgICAgICAgICByZXN1bHRzLmRhdGEgPSB0aGlzLmFkZEFjdGlvbnNQZXJSb3cocmVzdWx0cyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRBY3Rpb25zUGVyUm93KHJlc3VsdHM6IGFueSk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdHMuZGF0YS5tYXAoKHJvdykgPT4ge1xuICAgICAgICAgICAgcm93LmFjdGlvbkxpc3QgPSBbJ3VwZGF0ZScsICdyZS1lbnJvbGwnLCAnZGVsZXRlJ107XG4gICAgICAgICAgICBpZiAodGhpcy5oYXNFbnJvbG1lbnRUb2tlbihyb3cpKSB7XG4gICAgICAgICAgICAgICAgcm93LmFjdGlvbkxpc3QucHVzaCgnZG93bmxvYWQtZW5yb2xsbWVudCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5hZGRMaXN0SXRlbUV4dGVuc2lvbkFjdGlvbnMocm93KTtcbiAgICAgICAgICAgIHJldHVybiByb3c7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGhhc0Vucm9sbWVudFRva2VuKGl0ZW0pIHtcbiAgICAgICAgcmV0dXJuICFpc0VtcHR5KGl0ZW0/LmVucm9sbG1lbnRKd3QpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRFZGdlUm91dGVyUm9sZUF0dHJpYnV0ZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnppdGlTZXJ2aWNlLmdldCgnZWRnZS1yb3V0ZXItcm9sZS1hdHRyaWJ1dGVzJywge30sIFtdKTtcbiAgICB9XG5cblxuICAgIGdldEpXVChpZGVudGl0eTogYW55KSB7XG4gICAgICAgIHJldHVybiBpZGVudGl0eS5lbnJvbGxtZW50Snd0O1xuICAgIH1cblxuICAgIGRvd25sb2FkSldUKGp3dCwgbmFtZSkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnaHJlZicsICdkYXRhOmFwcGxpY2F0aW9uL3ppdGktand0O2NoYXJzZXQ9dXRmLTgsJyArIGVuY29kZVVSSUNvbXBvbmVudChqd3QpKTtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgbmFtZStcIi5qd3RcIik7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTtcbiAgICAgICAgZWxlbWVudC5jbGljaygpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVsZW1lbnQpO1xuICAgIH1cblxuICAgIGRvd25sb2FkQWxsSXRlbXMoKSB7XG4gICAgICAgIGNvbnN0IHBhZ2luZyA9IGNsb25lRGVlcCh0aGlzLnBhZ2luZyk7XG4gICAgICAgIHBhZ2luZy50b3RhbCA9IDIwMDA7XG4gICAgICAgIHN1cGVyLmdldFRhYmxlRGF0YSgnZWRnZS1yb3V0ZXJzJywgcGFnaW5nLCB1bmRlZmluZWQsIHVuZGVmaW5lZClcbiAgICAgICAgICAgIC50aGVuKChyZXN1bHRzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kb3dubG9hZEl0ZW1zKHJlc3VsdHM/LmRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZG93bmxvYWRJdGVtcyhzZWxlY3RlZEl0ZW1zKSB7XG4gICAgICAgIHRoaXMuY3N2RG93bmxvYWRTZXJ2aWNlLmRvd25sb2FkKFxuICAgICAgICAgICAgJ2VkZ2Utcm91dGVycycsXG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLFxuICAgICAgICAgICAgQ1NWX0NPTFVNTlMsXG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZWVucm9sbChyb3V0ZXI6IGFueSkge1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgYXBwZW5kSWQ6ICdSZWVucm9sbFJvdXRlcicsXG4gICAgICAgICAgICB0aXRsZTogJ1JlLUVucm9sbCBSb3V0ZXInLFxuICAgICAgICAgICAgbWVzc2FnZTogYDxwPklmIHRoZSByb3V0ZXIgaXMgY3VycmVudGx5IGNvbm5lY3RlZCwgaXQgd2lsbCBiZSBkaXNjb25uZWN0ZWQgdW50aWwgdGhlIGVucm9sbG1lbnQgcHJvY2VzcyBpcyBjb21wbGV0ZWQgd2l0aCB0aGUgbmV3bHkgZ2VuZXJhdGVkIEpXVC4gPHA+IEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZS1lbnJvbGwgdGhlIHNlbGVjdGVkIHJvdXRlcj9gLFxuICAgICAgICAgICAgY29uZmlybUxhYmVsOiAnWWVzJyxcbiAgICAgICAgICAgIGNhbmNlbExhYmVsOiAnT29wcywgbm8gZ2V0IG1lIG91dCBvZiBoZXJlJyxcbiAgICAgICAgICAgIHNob3dDYW5jZWxMaW5rOiB0cnVlXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5kaWFsb2dGb3JtLm9wZW4oQ29uZmlybUNvbXBvbmVudCwge1xuICAgICAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgICAgICAgIGF1dG9Gb2N1czogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcy5kaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS50b1Byb21pc2UoKS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy56aXRpU2VydmljZS5wb3N0KGBlZGdlLXJvdXRlcnMvJHtyb3V0ZXIuaWR9L3JlLWVucm9sbGAsIHt9LCB0cnVlKS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3Jvd2xlckRhdGEgPSBuZXcgR3Jvd2xlck1vZGVsKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1N1Y2Nlc3MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYFJlLWVucm9sbCBDb25maXJtZWRgLFxuICAgICAgICAgICAgICAgICAgICAgICAgYFJvdXRlciByZS1lbnJvbGwgd2FzIHNlbnQuIEEgbmV3IGVucm9sbG1lbnQgdG9rZW4gaXMgbm93IGF2YWlsYWJsZWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3Jvd2xlclNlcnZpY2Uuc2hvdyhncm93bGVyRGF0YSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW5VcGRhdGUoaXRlbT86IGFueSkge1xuICAgICAgICB0aGlzLm1vZGFsVHlwZSA9ICdlZGdlLXJvdXRlcic7XG4gICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRWRnZVJvdXRlciA9IGl0ZW07XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRWRnZVJvdXRlci5iYWRnZXMgPSBbXTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkRWRnZVJvdXRlci5pc09ubGluZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFZGdlUm91dGVyLmJhZGdlcy5wdXNoKHtsYWJlbDogJ09ubGluZScsIGNsYXNzOiAnb25saW5lJywgY2lyY2xlOiAndHJ1ZSd9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEVkZ2VSb3V0ZXIuYmFkZ2VzLnB1c2goe2xhYmVsOiAnT2ZmbGluZScsIGNsYXNzOiAnb2ZmbGluZScsIGNpcmNsZTogJ2ZhbHNlJ30pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkRWRnZVJvdXRlci5pc1ZlcmlmaWVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEVkZ2VSb3V0ZXIuYmFkZ2VzLnB1c2goe2xhYmVsOiAnVW52ZXJpZmllZCcsIGNsYXNzOiAndW5yZWcnfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBUT0RPOiBpbXBsZW1lbnQgd2hlbiBtZXRyaWNzIGFuZCBkaWFsb2cgZmVhdHVyZXMgYXJlIGF2YWlsYWJsZVxuICAgICAgICAgICAgLyp0aGlzLnNlbGVjdGVkRWRnZVJvdXRlcloubW9yZUFjdGlvbnMgPSBbXG4gICAgICAgICAgICAgICAge25hbWU6ICdvcGVuLW1ldHJpY3MnLCBsYWJlbDogJ09wZW4gTWV0cmljcyd9LFxuICAgICAgICAgICAgICAgIHtuYW1lOiAnZGlhbC1sb2dzJywgbGFiZWw6ICdEaWFsIExvZ3MnfSxcbiAgICAgICAgICAgICAgICB7bmFtZTogJ2RpYWwtbG9ncycsIGxhYmVsOiAnVmlldyBFdmVudHMnfSxcbiAgICAgICAgICAgIF07Ki9cbiAgICAgICAgICAgIHVuc2V0KHRoaXMuc2VsZWN0ZWRFZGdlUm91dGVyLCAnX2xpbmtzJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRWRnZVJvdXRlciA9IG5ldyBFZGdlUm91dGVyKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaWRlTW9kYWxPcGVuID0gdHJ1ZTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -182,7 +182,7 @@ class IdentitiesPageService extends ListPageServiceClass {
|
|
|
182
182
|
width: 300,
|
|
183
183
|
},
|
|
184
184
|
{
|
|
185
|
-
colId: '
|
|
185
|
+
colId: 'roleAttributes',
|
|
186
186
|
field: 'roleAttributes',
|
|
187
187
|
headerName: 'Roles',
|
|
188
188
|
headerComponent: TableColumnDefaultComponent,
|
|
@@ -495,4 +495,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
495
495
|
type: Inject,
|
|
496
496
|
args: [IDENTITY_EXTENSION_SERVICE]
|
|
497
497
|
}] }]; } });
|
|
498
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdGllcy1wYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvcGFnZXMvaWRlbnRpdGllcy9pZGVudGl0aWVzLXBhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUMxQyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUNILDJCQUEyQixFQUM5QixNQUFNLDhGQUE4RixDQUFDO0FBRXRHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBa0IsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRixPQUFPLEVBQUMsaUJBQWlCLEVBQWtCLE1BQU0sa0NBQWtDLENBQUM7QUFFcEYsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQy9DLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFHN0IsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDM0YsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDN0YsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBRXBFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBSXBHLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGlFQUFpRSxDQUFDOzs7Ozs7OztBQUUzRyxNQUFNLFdBQVcsR0FBRztJQUNoQixFQUFDLEtBQUssRUFBRSxNQUFNLEVB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a0JBQWtCLENBQUMsSUFBSTtRQUMxQixJQUFJLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQztRQUM3QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7K0dBdGNRLHFCQUFxQixrQkE4QmxCLGdCQUFnQixtREFFaEIsaUJBQWlCLHNHQUlqQiwwQkFBMEI7bUhBcEM3QixxQkFBcUIsY0FGbEIsTUFBTTs7U0FFVCxxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQStCUSxNQUFNOzJCQUFDLGdCQUFnQjs7MEJBRXZCLE1BQU07MkJBQUMsaUJBQWlCOzswQkFJeEIsTUFBTTsyQkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICAgIENvcHlyaWdodCBOZXRGb3VuZHJ5IEluYy5cblxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4qL1xuXG5pbXBvcnQge0luamVjdGFibGUsIEluamVjdCwgQ29tcG9uZW50LCBPbkluaXR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge2Nsb25lRGVlcCwgaXNFbXB0eX0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7RGF0YVRhYmxlRmlsdGVyU2VydmljZSwgRmlsdGVyT2JqfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLWZpbHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQge0xpc3RQYWdlU2VydmljZUNsYXNzfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2xpc3QtcGFnZS1zZXJ2aWNlLmNsYXNzXCI7XG5pbXBvcnQge1xuICAgIFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudFxufSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9jb2x1bW4taGVhZGVycy90YWJsZS1jb2x1bW4tZGVmYXVsdC90YWJsZS1jb2x1bW4tZGVmYXVsdC5jb21wb25lbnRcIjtcbmltcG9ydCB7Q2FsbGJhY2tSZXN1bHRzfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvbGlzdC1wYWdlLWZlYXR1cmVzL2xpc3QtcGFnZS1mb3JtL2xpc3QtcGFnZS1mb3JtLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtTRVRUSU5HU19TRVJWSUNFLCBTZXR0aW5nc1NlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9zZXR0aW5ncy5zZXJ2aWNlXCI7XG5pbXBvcnQge1pJVElfREFUQV9TRVJWSUNFLCBaaXRpRGF0YVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy96aXRpLWRhdGEuc2VydmljZVwiO1xuaW1wb3J0IHtDc3ZEb3dubG9hZFNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9jc3YtZG93bmxvYWQuc2VydmljZVwiO1xuaW1wb3J0IHtJZGVudGl0eX0gZnJvbSBcIi4uLy4uL21vZGVscy9pZGVudGl0eVwiO1xuaW1wb3J0IHt1bnNldH0gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHtJVG9vbHRpcEFuZ3VsYXJDb21wfSBmcm9tIFwiYWctZ3JpZC1hbmd1bGFyXCI7XG5pbXBvcnQge0lUb29sdGlwUGFyYW1zfSBmcm9tIFwiYWctZ3JpZC1jb21tdW5pdHlcIjtcbmltcG9ydCB7T1NUb29sdGlwQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS90b29sdGlwcy9vcy10b29sdGlwLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtTREtUb29sdGlwQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS90b29sdGlwcy9zZGstdG9vbHRpcC5jb21wb25lbnRcIjtcbmltcG9ydCB7R3Jvd2xlck1vZGVsfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvbWVzc2FnaW5nL2dyb3dsZXIubW9kZWxcIjtcbmltcG9ydCB7R3Jvd2xlclNlcnZpY2V9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9tZXNzYWdpbmcvZ3Jvd2xlci5zZXJ2aWNlXCI7XG5pbXBvcnQge1Jlc2V0RW5yb2xsbWVudENvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL3Jlc2V0LWVucm9sbG1lbnQvcmVzZXQtZW5yb2xsbWVudC5jb21wb25lbnRcIjtcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQge1NldHRpbmdzU2VydmljZUNsYXNzfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc2V0dGluZ3Mtc2VydmljZS5jbGFzc1wiO1xuaW1wb3J0IHtFeHRlbnNpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZXh0ZW5kYWJsZS9leHRlbnNpb25zLW5vb3Auc2VydmljZVwiO1xuaW1wb3J0IHtJREVOVElUWV9FWFRFTlNJT05fU0VSVklDRX0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL3Byb2plY3RhYmxlLWZvcm1zL2lkZW50aXR5L2lkZW50aXR5LWZvcm0uc2VydmljZVwiO1xuXG5jb25zdCBDU1ZfQ09MVU1OUyA9IFtcbiAgICB7bGFiZWw6ICdOYW1lJywgcGF0aDogJ25hbWUnfSxcbiAgICB7bGFiZWw6ICdSb2xlcycsIHBhdGg6ICdyb2xlQXR0cmlidXRlcyd9LFxuICAgIHtsYWJlbDogJ09ubGluZScsIHBhdGg6ICdoYXNBcGlTZXNzaW9uJ30sXG4gICAge2xhYmVsOiAnRWRnZSBSb3V0ZXIgQ29ubmVjdGVkJywgcGF0aDogJ2hhc0VkZ2VSb3V0ZXJDb25uZWN0aW9uJ30sXG4gICAge2xhYmVsOiAnT1MnLCBwYXRoOiAnZW52SW5mby5vcyd9LFxuICAgIHtsYWJlbDogJ09TIFZlcnNpb24nLCBwYXRoOiAnZW52SW5mby5vc1ZlcnNpb24nfSxcbiAgICB7bGFiZWw6ICdTREsnLCBwYXRoOiAnc2RrSW5mby52ZXJzaW9uJ30sXG4gICAge2xhYmVsOiAnQXBwIFZlcnNpb24nLCBwYXRoOiAnc2RrSW5mby5hcHBWZXJzaW9uJ30sXG4gICAge2xhYmVsOiAnVHlwZScsIHBhdGg6ICd0eXBlSWQnfSxcbiAgICB7bGFiZWw6ICdJcyBBZG1pbicsIHBhdGg6ICdpc0FkbWluJ30sXG4gICAge2xhYmVsOiAnQXV0aCBQb2xpY3knLCBwYXRoOiAnYXV0aFBvbGljeS5uYW1lJ30sXG4gICAge2xhYmVsOiAnQXV0aCBQb2xpY3kgSUQnLCBwYXRoOiAnYXV0aFBvbGljeS5pZCd9LFxuICAgIHtsYWJlbDogJ01GQSBFbmFibGVkJywgcGF0aDogJ2lzTWZhRW5hYmxlZCd9LFxuICAgIHtsYWJlbDogJ0NyZWF0ZWQgQXQnLCBwYXRoOiAnY3JlYXRlZEF0J30sXG4gICAge2xhYmVsOiAnSUQnLCBwYXRoOiAnaWQnfSxcbl07XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSWRlbnRpdGllc1BhZ2VTZXJ2aWNlIGV4dGVuZHMgTGlzdFBhZ2VTZXJ2aWNlQ2xhc3Mge1xuXG4gICAgcHJpdmF0ZSBwYWdpbmcgPSB0aGlzLkRFRkFVTFRfUEFHSU5HO1xuICAgIHB1YmxpYyBtb2RhbFR5cGUgPSAnaWRlbnRpdGllcyc7XG5cbiAgICBzZWxlY3RlZElkZW50aXR5OiBhbnkgPSBuZXcgSWRlbnRpdHkoKTtcbiAgICBjb2x1bW5GaWx0ZXJzOiBhbnkgPSB7XG4gICAgICAgIG5hbWU6ICcnLFxuICAgICAgICBvczogJycsXG4gICAgICAgIGNyZWF0ZWRBdDogJycsXG4gICAgfTtcblxuICAgIG92ZXJyaWRlIG1lbnVJdGVtcyA9IFtcbiAgICAgICAge25hbWU6ICdFZGl0JywgYWN0aW9uOiAndXBkYXRlJ30sXG4gICAgICAgIHtuYW1lOiAnRG93bmxvYWQgSldUJywgYWN0aW9uOiAnZG93bmxvYWQtZW5yb2xsbWVudCd9LFxuICAgICAgICB7bmFtZTogJ1ZpZXcgUVInLCBhY3Rpb246ICdxci1jb2RlJ30sXG4gICAgICAgIHtuYW1lOiAnVmlzdWFsaXplcicsIGFjdGlvbjogJ2lkZW50aXR5LXNlcnZpY2UtcGF0aCd9LFxuICAgICAgICB7bmFtZTogJ1Jlc2V0IEVucm9sbG1lbnQnLCBhY3Rpb246ICdyZXNldC1lbnJvbGxtZW50J30sXG4gICAgICAgIHtuYW1lOiAnUmVpc3N1ZSBFbnJvbGxtZW50JywgYWN0aW9uOiAncmVpc3N1ZS1lbnJvbGxtZW50J30sXG4gICAgICAgIHtuYW1lOiAnT3ZlcnJpZGUnLCBhY3Rpb246ICdvdmVycmlkZSd9LFxuICAgICAgICB7bmFtZTogJ0RlbGV0ZScsIGFjdGlvbjogJ2RlbGV0ZSd9LFxuICAgIF1cblxuICAgIG92ZXJyaWRlIHRhYmxlSGVhZGVyQWN0aW9ucyA9IFtcbiAgICAgICAge25hbWU6ICdEb3dubG9hZCBBbGwnLCBhY3Rpb246ICdkb3dubG9hZC1hbGwnfSxcbiAgICAgICAge25hbWU6ICdEb3dubG9hZCBTZWxlY3RlZCcsIGFjdGlvbjogJ2Rvd25sb2FkLXNlbGVjdGVkJ30sXG4gICAgXVxuXG4gICAgcmVzb3VyY2VUeXBlID0gJ2lkZW50aXRpZXMnO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFNFVFRJTkdTX1NFUlZJQ0UpIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2VDbGFzcyxcbiAgICAgICAgZmlsdGVyU2VydmljZTogRGF0YVRhYmxlRmlsdGVyU2VydmljZSxcbiAgICAgICAgQEluamVjdChaSVRJX0RBVEFfU0VSVklDRSkgcHJpdmF0ZSB6aXRpU2VydmljZTogWml0aURhdGFTZXJ2aWNlLFxuICAgICAgICBvdmVycmlkZSBjc3ZEb3dubG9hZFNlcnZpY2U6IENzdkRvd25sb2FkU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBncm93bGVyU2VydmljZTogR3Jvd2xlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZGlhbG9nRm9ybTogTWF0RGlhbG9nLFxuICAgICAgICBASW5qZWN0KElERU5USVRZX0VYVEVOU0lPTl9TRVJWSUNFKSBleHRTZXJ2aWNlOiBFeHRlbnNpb25TZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKHNldHRpbmdzLCBmaWx0ZXJTZXJ2aWNlLCBjc3ZEb3dubG9hZFNlcnZpY2UsIGV4dFNlcnZpY2UpO1xuICAgIH1cblxuICAgIHZhbGlkYXRlID0gKGZvcm1EYXRhKTogUHJvbWlzZTxDYWxsYmFja1Jlc3VsdHM+ID0+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7IHBhc3NlZDogdHJ1ZX0pO1xuICAgIH1cblxuICAgIGluaXRUYWJsZUNvbHVtbnMoKTogYW55IHtcbiAgICAgICAgdGhpcy5pbml0TWVudUFjdGlvbnMoKTtcblxuICAgICAgICBjb25zdCBuYW1lUmVuZGVyZXIgPSAocm93KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCJjb2wgY2VsbC1uYW1lLXJlbmRlcmVyXCIgZGF0YS1pZD1cIiR7cm93Py5kYXRhPy5pZH1cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNpcmNsZSAke3Jvdz8uZGF0YT8uaGFzQXBpU2Vzc2lvbn1cIiB0aXRsZT1cIkFwaSBTZXNzaW9uXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2lyY2xlICR7cm93Py5kYXRhPy5oYXNFZGdlUm91dGVyQ29ubmVjdGlvbn1cIiB0aXRsZT1cIkVkZ2UgUm91dGVyIENvbm5lY3RlZFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3Ryb25nPiR7cm93Py5kYXRhPy5uYW1lfTwvc3Ryb25nPlxuICAgICAgICAgICAgICA8L2Rpdj5gXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvc1JlbmRlcmVyID0gKHJvdykgPT4ge1xuICAgICAgICAgICAgbGV0IG9zID0gXCJvdGhlclwiO1xuICAgICAgICAgICAgbGV0IG9zRGV0YWlscyA9IFwiXCI7XG4gICAgICAgICAgICBpZiAocm93Py5kYXRhPy5lbnZJbmZvKSB7XG4gICAgICAgICAgICAgICAgaWYgKHJvdz8uZGF0YT8uZW52SW5mbz8ub3NWZXJzaW9uJiZyb3c/LmRhdGE/LmVudkluZm8/Lm9zVmVyc2lvbi50b0xvd2VyQ2FzZSgpLmluZGV4T2YoXCJ3aW5kb3dzXCIpPj0wKSBvcyA9IFwid2luZG93c1wiO1xuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAocm93Py5kYXRhPy5lbnZJbmZvPy5vcyYmcm93Py5kYXRhPy5lbnZJbmZvPy5vcy50b0xvd2VyQ2FzZSgpLmluZGV4T2YoXCJkYXJ3aW5cIik+PTApIG9zID0gXCJhcHBsZVwiO1xuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChyb3c/LmRhdGE/LmVudkluZm8/Lm9zJiZyb3c/LmRhdGE/LmVudkluZm8/Lm9zLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihcImxpbnV4XCIpPj0wKSBvcyA9IFwibGludXhcIjtcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocm93Py5kYXRhPy5lbnZJbmZvPy5vcyYmcm93Py5kYXRhPy5lbnZJbmZvPy5vcy50b0xvd2VyQ2FzZSgpLmluZGV4T2YoXCJhbmRyb2lkXCIpPj0wKSBvcyA9IFwiYW5kcm9pZFwiO1xuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChyb3c/LmRhdGE/LmVudkluZm8/Lm9zJiZyb3c/LmRhdGE/LmVudkluZm8/Lm9zLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihcIndpbmRvd3NcIik+PTApIG9zID0gXCJ3aW5kb3dzXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChyb3c/LmRhdGE/LmVudkluZm8/Lm9zKSBvc0RldGFpbHMgKz0gXCJPUzogXCIrcm93Py5kYXRhPy5lbnZJbmZvPy5vcztcbiAgICAgICAgICAgICAgICBpZiAocm93Py5kYXRhPy5lbnZJbmZvPy5hcmNoKSBvc0RldGFpbHMgKz0gXCImIzEwO0FyY2g6IFwiK3Jvdz8uZGF0YT8uZW52SW5mbz8uYXJjaDtcbiAgICAgICAgICAgICAgICBpZiAocm93Py5kYXRhPy5lbnZJbmZvPy5vc1JlbGVhc2UpIG9zRGV0YWlscyArPSBcIiYjMTA7UmVsZWFzZTogXCIrcm93Py5kYXRhPy5lbnZJbmZvPy5vc1JlbGVhc2U7XG4gICAgICAgICAgICAgICAgaWYgKHJvdz8uZGF0YT8uZW52SW5mbz8ub3NWZXJzaW9uKSBvc0RldGFpbHMgKz0gXCImIzEwO1ZlcnNpb246IFwiK3Jvdz8uZGF0YT8uZW52SW5mbz8ub3NWZXJzaW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwiY29sIGRlc2t0b3BcIiBzdHlsZT1cIm92ZXJmbG93OiB1bnNldDtcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9zICR7b3N9XCI+PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5gXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzZGtSZW5kZXJlciA9IChyb3cpID0+IHtcbiAgICAgICAgICAgIGxldCBzZGsgPSBcIlwiO1xuICAgICAgICAgICAgbGV0IHZlcnNpb24gPSBcIi1cIjtcbiAgICAgICAgICAgIGNvbnN0IHNka0luZm8gPSByb3c/LmRhdGE/LnNka0luZm87XG4gICAgICAgICAgICBpZiAoc2RrSW5mbykge1xuICAgICAgICAgICAgICAgIHZlcnNpb24gPSBcIlwiO1xuICAgICAgICAgICAgICAgIGlmIChzZGtJbmZvPy52ZXJzaW9uKSB2ZXJzaW9uICs9IHNka0luZm8/LnZlcnNpb247XG4gICAgICAgICAgICAgICAgaWYgKHNka0luZm8/LmFwcElkKSBzZGsgKz0gc2RrSW5mbz8uYXBwSWQ7XG4gICAgICAgICAgICAgICAgaWYgKHNka0luZm8/LmFwcFZlcnNpb24pIHNkayArPSBzZGtJbmZvPy5hcHBWZXJzaW9uO1xuICAgICAgICAgICAgICAgIGlmIChzZGtJbmZvPy50eXBlKSBzZGsgKz0gc2RrSW5mbz8udHlwZTtcbiAgICAgICAgICAgICAgICBpZiAoc2RrSW5mbz8udHlwZSkgc2RrICs9IFwiJiMxMDtcIitzZGtJbmZvPy5icmFuY2g7XG4gICAgICAgICAgICAgICAgaWYgKHNka0luZm8/LnJldmlzaW9uKSBzZGsgKz0gXCIgLSBcIitzZGtJbmZvPy5yZXZpc2lvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybmA8ZGl2IGNsYXNzPVwiY29sIGRlc2t0b3BcIiBkYXRhLWlkPVwiJHtyb3c/LmRhdGE/LmlkfVwiIHN0eWxlPVwib3ZlcmZsb3c6IHVuc2V0O1wiIGRhdGEtYmFsbG9vbi1wb3M9XCJ1cFwiIGFyaWEtbGFiZWw9XCIke3Nka31cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9uZWxpbmVcIj4ke3ZlcnNpb259PC9zcGFuPlxuICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb2x1bW5GaWx0ZXJzID0gdGhpcy5jb2x1bW5GaWx0ZXJzO1xuXG4gICAgICAgIGNvbnN0IG9zUGFyYW1zID0ge1xuICAgICAgICAgICAgZmlsdGVyVHlwZTogJ0NPTUJPJyxcbiAgICAgICAgICAgIGZpbHRlck9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnQWxsJywgdmFsdWU6ICcnLCBpY29uOiAnZW1wdHknIH0sXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0FwcGxlJywgdmFsdWU6ICdkYXJ3aW4nLCBpY29uOiAnYXBwbGUnIH0sXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ1dpbmRvd3MnLCB2YWx1ZTogJ21pbmd3JywgaWNvbjogJ3dpbmRvd3MnICB9LFxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdMaW51eCcsIHZhbHVlOiAnbGludXgnLCBpY29uOiAnbGludXgnICB9LFxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdBbmRyb2lkJywgdmFsdWU6ICdhbmRyb2lkJywgaWNvbjogJ2FuZHJvaWQnICB9LFxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdPdGhlciAodGV4dCBzZWFyY2gpJywgdmFsdWU6ICcnLCBpY29uOiAnb3RoZXInLCB1c2VUZXh0SW5wdXQ6IHRydWUgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgY29sdW1uRmlsdGVycyxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAnbmFtZScsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICduYW1lJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnTmFtZScsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50UGFyYW1zOiB0aGlzLmhlYWRlckNvbXBvbmVudFBhcmFtcyxcbiAgICAgICAgICAgICAgICBvbkNlbGxDbGlja2VkOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNTZWxlY3RlZFRleHQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlblVwZGF0ZShkYXRhLmRhdGEpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogbmFtZVJlbmRlcmVyLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IHRydWUsXG4gICAgICAgICAgICAgICAgc29ydENvbHVtbjogdGhpcy5zb3J0LmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgc29ydERpcjogJ2FzYycsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDMwMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdyb2xlcycsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdyb2xlQXR0cmlidXRlcycsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ1JvbGVzJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBvbkNlbGxDbGlja2VkOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNTZWxlY3RlZFRleHQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlblVwZGF0ZShkYXRhLmRhdGEpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogdGhpcy5yb2xlc1JlbmRlcmVyLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgZmlsdGVyOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdvcycsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdvcycsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ08vUycsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXI6IG9zUmVuZGVyZXIsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgdG9vbHRpcENvbXBvbmVudDogT1NUb29sdGlwQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHRvb2x0aXBGaWVsZDogJ2VudkluZm8nLFxuICAgICAgICAgICAgICAgIHRvb2x0aXBDb21wb25lbnRQYXJhbXM6IHsgY29sb3I6ICcjZWNlY2VjJyB9LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAnc2RrJyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ3NkaycsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ1NESycsXG4gICAgICAgICAgICAgICAgdG9vbHRpcEZpZWxkOiAnc2RrSW5mbycsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiBzZGtSZW5kZXJlcixcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICB0b29sdGlwQ29tcG9uZW50OiBTREtUb29sdGlwQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEyNSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICd0eXBlJyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ3R5cGUubmFtZScsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ1R5cGUnLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICAgICAgc29ydENvbHVtbjogdGhpcy5zb3J0LmJpbmQodGhpcyksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAnaXNBZG1pbicsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdpc0FkbWluJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnSXMgQWRtaW4nLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLnNvcnQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdjcmVhdGVkQXQnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAnY3JlYXRlZEF0JyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnQ3JlYXRlZCBBdCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IHRoaXMuY3JlYXRlZEF0Rm9ybWF0dGVyLFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLnNvcnQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAndG9rZW4nLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAndG9rZW4nLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdUb2tlbicsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiAnY2VsbFRva2VuQ29tcG9uZW50JyxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ2lzTWZhRW5hYmxlZCcsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdpc01mYUVuYWJsZWQnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdNRkEnLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBnZXREYXRhKGZpbHRlcnM/OiBGaWx0ZXJPYmpbXSwgc29ydD86IGFueSwgcGFnZT86IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIC8vIHdlIGNhbiBjdXN0b21pemUgZmlsdGVycyBvciBzb3J0aW5nIGhlcmUgYmVmb3JlIG1vdmluZyBvbi4uLlxuICAgICAgICB0aGlzLnBhZ2luZy5wYWdlID0gcGFnZSB8fCB0aGlzLnBhZ2luZy5wYWdlO1xuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0VGFibGVEYXRhKCdpZGVudGl0aWVzJywgdGhpcy5wYWdpbmcsIGZpbHRlcnMsIHNvcnQpXG4gICAgICAgICAgICAudGhlbigocmVzdWx0czogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0RhdGEocmVzdWx0cyk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NEYXRhKHJlc3VsdHM6IGFueSkge1xuICAgICAgICBpZiAoIWlzRW1wdHkocmVzdWx0cz8uZGF0YSkpIHtcbiAgICAgICAgICAgIC8vcHJlLXByb2Nlc3MgZGF0YSBiZWZvcmUgcmVuZGVyaW5nXG4gICAgICAgICAgICByZXN1bHRzLmRhdGEgPSB0aGlzLmFkZEFjdGlvbnNQZXJSb3cocmVzdWx0cyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRBY3Rpb25zUGVyUm93KHJlc3VsdHM6IGFueSk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdHMuZGF0YS5tYXAoKHJvdykgPT4ge1xuICAgICAgICAgICAgcm93LmFjdGlvbkxpc3QgPSBbJ3VwZGF0ZScsICdvdmVycmlkZScsICdkZWxldGUnLCAnaWRlbnRpdHktc2VydmljZS1wYXRoJ107XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmhhc0Vucm9sbWVudFRva2VuKHJvdykpIHtcbiAgICAgICAgICAgICAgICByb3cuYWN0aW9uTGlzdC5wdXNoKCdyZWlzc3VlLWVucm9sbG1lbnQnKTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZW5yb2xsbWVudEV4cGlyZWQocm93KSkge1xuICAgICAgICAgICAgICAgICAgICByb3cuYWN0aW9uTGlzdC5wdXNoKCdkb3dubG9hZC1lbnJvbGxtZW50Jyk7XG4gICAgICAgICAgICAgICAgICAgIHJvdy5hY3Rpb25MaXN0LnB1c2goJ3FyLWNvZGUnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaGFzQXV0aGVudGljYXRvcihyb3cpKSB7XG4gICAgICAgICAgICAgICAgcm93LmFjdGlvbkxpc3QucHVzaCgncmVzZXQtZW5yb2xsbWVudCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5hZGRMaXN0SXRlbUV4dGVuc2lvbkFjdGlvbnMocm93KTtcbiAgICAgICAgICAgIHJldHVybiByb3c7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGhhc0F1dGhlbnRpY2F0b3IoaXRlbSkge1xuICAgICAgICByZXR1cm4gaXRlbT8uYXV0aGVudGljYXRvcnM/LmNlcnQ/LmlkIHx8IGl0ZW0uYXV0aGVudGljYXRvcnM/LnVwZGI/LmlkO1xuICAgIH1cblxuICAgIGhhc0Vucm9sbWVudFRva2VuKGl0ZW0pIHtcbiAgICAgICAgbGV0IHRva2VuO1xuICAgICAgICBpZiAoaXRlbT8uZW5yb2xsbWVudD8ub3R0Py5qd3QpIHtcbiAgICAgICAgICAgIHRva2VuID0gaXRlbT8uZW5yb2xsbWVudD8ub3R0Py5qd3Q7XG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbT8uZW5yb2xsbWVudD8ub3R0Y2E/Lmp3dCkge1xuICAgICAgICAgICAgdG9rZW4gPSBpdGVtPy5lbnJvbGxtZW50Py5vdHRjYT8uand0O1xuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0/LmVucm9sbG1lbnQ/LnVwZGI/Lmp3dCkge1xuICAgICAgICAgICAgdG9rZW4gPSBpdGVtPy5lbnJvbGxtZW50Py51cGRiPy5qd3Q7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgIH1cblxuICAgIGVucm9sbG1lbnRFeHBpcmVkKGl0ZW0pIHtcbiAgICAgICAgbGV0IGV4cGlyYXRpb247XG4gICAgICAgIGlmIChpdGVtPy5lbnJvbGxtZW50Py5vdHQ/Lmp3dCkge1xuICAgICAgICAgICAgZXhwaXJhdGlvbiA9IGl0ZW0/LmVucm9sbG1lbnQ/Lm90dD8uZXhwaXJlc0F0O1xuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0/LmVucm9sbG1lbnQ/Lm90dGNhPy5qd3QpIHtcbiAgICAgICAgICAgIGV4cGlyYXRpb24gPSBpdGVtPy5lbnJvbGxtZW50Py5vdHRjYT8uZXhwaXJlc0F0O1xuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0/LmVucm9sbG1lbnQ/LnVwZGI/Lmp3dCkge1xuICAgICAgICAgICAgZXhwaXJhdGlvbiA9IGl0ZW0/LmVucm9sbG1lbnQ/LnVwZGI/LmV4cGlyZXNBdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbW9tZW50KGV4cGlyYXRpb24pLmlzQmVmb3JlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldElkZW50aXRpZXNSb2xlQXR0cmlidXRlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueml0aVNlcnZpY2UuZ2V0KCdpZGVudGl0eS1yb2xlLWF0dHJpYnV0ZXMnLCB7fSwgW10pO1xuICAgIH1cblxuICAgIGdldEpXVChpZGVudGl0eTogYW55KSB7XG4gICAgICAgIGxldCBxckNvZGU7XG4gICAgICAgIGlmICghaXNFbXB0eShpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0Py5qd3QpKSB7XG4gICAgICAgICAgICBxckNvZGUgPSBpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0Py5qd3Q7XG4gICAgICAgIH0gZWxzZSBpZiAoIWlzRW1wdHkoaWRlbnRpdHk/LmVucm9sbG1lbnQ/Lm90dGNhPy5qd3QpKSB7XG4gICAgICAgICAgICBxckNvZGUgPSBpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0Y2E/Lmp3dDtcbiAgICAgICAgfSBlbHNlIGlmKCFpc0VtcHR5KGlkZW50aXR5Py5lbnJvbGxtZW50Py51cGRiPy5qd3QpKSB7XG4gICAgICAgICAgICBxckNvZGUgPSBpZGVudGl0eT8uZW5yb2xsbWVudD8udXBkYj8uand0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBxckNvZGU7XG4gICAgfVxuXG4gICAgZ2V0VG9rZW4oaWRlbnRpdHk6IGFueSkge1xuICAgICAgICBsZXQgcXJDb2RlO1xuICAgICAgICBpZiAoIWlzRW1wdHkoaWRlbnRpdHk/LmVucm9sbG1lbnQ/Lm90dD8udG9rZW4pKSB7XG4gICAgICAgICAgICBxckNvZGUgPSBpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0Py50b2tlbjtcbiAgICAgICAgfSBlbHNlIGlmICghaXNFbXB0eShpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0Y2E/LnRva2VuKSkge1xuICAgICAgICAgICAgcXJDb2RlID0gaWRlbnRpdHk/LmVucm9sbG1lbnQ/Lm90dGNhPy50b2tlbjtcbiAgICAgICAgfSBlbHNlIGlmKCFpc0VtcHR5KGlkZW50aXR5Py5lbnJvbGxtZW50Py51cGRiPy50b2tlbikpIHtcbiAgICAgICAgICAgIHFyQ29kZSA9IGlkZW50aXR5Py5lbnJvbGxtZW50Py51cGRiPy50b2tlbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcXJDb2RlO1xuICAgIH1cblxuICAgIGRvd25sb2FkSldUKGp3dCwgbmFtZSkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnaHJlZicsICdkYXRhOmFwcGxpY2F0aW9uL3ppdGktand0O2NoYXJzZXQ9dXRmLTgsJyArIGVuY29kZVVSSUNvbXBvbmVudChqd3QpKTtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgbmFtZStcIi5qd3RcIik7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTtcbiAgICAgICAgZWxlbWVudC5jbGljaygpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVsZW1lbnQpO1xuICAgIH1cblxuICAgIGNvcHlUb2tlbih0b2tlbikge1xuICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0b2tlbik7XG4gICAgICAgIGNvbnN0IGdyb3dsZXJEYXRhID0gbmV3IEdyb3dsZXJNb2RlbChcbiAgICAgICAgICAgICdzdWNjZXNzJyxcbiAgICAgICAgICAgICdTdWNjZXNzJyxcbiAgICAgICAgICAgIGBUZXh0IENvcGllZGAsXG4gICAgICAgICAgICBgUmVnaXN0cmF0aW9uIHRva2VuIGNvcGllZCB0byBjbGlwYm9hcmRgLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmdyb3dsZXJTZXJ2aWNlLnNob3coZ3Jvd2xlckRhdGEpO1xuICAgIH1cblxuICAgIHJlc2V0SldUKGlkZW50aXR5KSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5kaWFsb2dGb3JtLm9wZW4oUmVzZXRFbnJvbGxtZW50Q29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgaWRlbnRpdHk6IGlkZW50aXR5LFxuICAgICAgICAgICAgICAgIHR5cGU6ICdyZXNldCdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhdXRvRm9jdXM6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlhbG9nUmVmO1xuICAgIH1cblxuICAgIHJlaXNzdWVKV1QoaWRlbnRpdHkpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ0Zvcm0ub3BlbihSZXNldEVucm9sbG1lbnRDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBpZGVudGl0eTogaWRlbnRpdHksXG4gICAgICAgICAgICAgICAgdHlwZTogJ3JlaXNzdWUnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzLmRpYWxvZ1JlZjtcbiAgICB9XG5cbiAgICBnZXRFbnJvbGxtZW50RXhwaXJhdGlvbihpZGVudGl0eTogYW55KSB7XG4gICAgICAgIGxldCBleHBpcmVzQXQ7XG4gICAgICAgIGlmICghaXNFbXB0eShpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0Py5leHBpcmVzQXQpKSB7XG4gICAgICAgICAgICBleHBpcmVzQXQgPSBpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0Py5leHBpcmVzQXQ7XG4gICAgICAgIH0gZWxzZSBpZiAoIWlzRW1wdHkoaWRlbnRpdHk/LmVucm9sbG1lbnQ/Lm90dGNhPy5leHBpcmVzQXQpKSB7XG4gICAgICAgICAgICBleHBpcmVzQXQgPSBpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0Y2E/LmV4cGlyZXNBdDtcbiAgICAgICAgfSBlbHNlIGlmKCFpc0VtcHR5KGlkZW50aXR5Py5lbnJvbGxtZW50Py51cGRiPy5leHBpcmVzQXQpKSB7XG4gICAgICAgICAgICBleHBpcmVzQXQgPSBpZGVudGl0eT8uZW5yb2xsbWVudD8udXBkYj8uZXhwaXJlc0F0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBleHBpcmVzQXQ7XG4gICAgfVxuXG4gICAgZG93bmxvYWRBbGxJdGVtcygpIHtcbiAgICAgICAgY29uc3QgcGFnaW5nID0gY2xvbmVEZWVwKHRoaXMucGFnaW5nKTtcbiAgICAgICAgcGFnaW5nLnRvdGFsID0gMjAwMDtcbiAgICAgICAgc3VwZXIuZ2V0VGFibGVEYXRhKCdpZGVudGl0aWVzJywgcGFnaW5nLCB1bmRlZmluZWQsIHVuZGVmaW5lZClcbiAgICAgICAgICAgIC50aGVuKChyZXN1bHRzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kb3dubG9hZEl0ZW1zKHJlc3VsdHM/LmRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVzZXRFbnJvbGxtZW50KGlkZW50aXR5OiBhbnksIGRhdGU6IGFueSkge1xuICAgICAgICBsZXQgaWQgPSBpZGVudGl0eT8uYXV0aGVudGljYXRvcnM/LmNlcnQ/LmlkO1xuICAgICAgICBpZiAoIWlkKSB7XG4gICAgICAgICAgICBpZighaXNFbXB0eShpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0KSkge1xuICAgICAgICAgICAgICAgIGlkID0gaWRlbnRpdHk/LmVucm9sbG1lbnQ/Lm90dC5pZDtcbiAgICAgICAgICAgIH0gZWxzZSBpZighaXNFbXB0eShpZGVudGl0eT8uZW5yb2xsbWVudC5vdHRjYSkpIHtcbiAgICAgICAgICAgICAgICBpZCA9IGlkZW50aXR5Py5lbnJvbGxtZW50Py5vdHRjYS5pZDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIWlzRW1wdHkoaWRlbnRpdHk/LmVucm9sbG1lbnQudXBkYikpIHtcbiAgICAgICAgICAgICAgICBpZCA9IGlkZW50aXR5Py5lbnJvbGxtZW50Py51cGRiLmlkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLnJlc2V0RW5yb2xsbWVudChpZCwgZGF0ZSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBncm93bGVyRGF0YSA9IG5ldyBHcm93bGVyTW9kZWwoXG4gICAgICAgICAgICAgICAgJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgICAgICdTdWNjZXNzJyxcbiAgICAgICAgICAgICAgICBgRW5yb2xsbWVudCBSZXNldGAsXG4gICAgICAgICAgICAgICAgYFN1Y2Nlc3NmdWxseSByZWlzc3VlZCBlbnJvbGxtZW50IHRva2VuYCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmdyb3dsZXJTZXJ2aWNlLnNob3coZ3Jvd2xlckRhdGEpO1xuICAgICAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGdyb3dsZXJEYXRhID0gbmV3IEdyb3dsZXJNb2RlbChcbiAgICAgICAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICAgICAgICdFcnJvcicsXG4gICAgICAgICAgICAgICAgYFJlc2V0IEZhaWxlZGAsXG4gICAgICAgICAgICAgICAgYEZhaWxlZCB0byByZWlzc3VlcyBlbnJvbGxtZW50IHRva2VuYCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmdyb3dsZXJTZXJ2aWNlLnNob3coZ3Jvd2xlckRhdGEpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBkb3dubG9hZEl0ZW1zKHNlbGVjdGVkSXRlbXMpIHtcbiAgICAgICAgdGhpcy5jc3ZEb3dubG9hZFNlcnZpY2UuZG93bmxvYWQoXG4gICAgICAgICAgICAnaWRlbnRpdGllcycsXG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLFxuICAgICAgICAgICAgQ1NWX0NPTFVNTlMsXG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlblVwZGF0ZShpdGVtPzogYW55KSB7XG4gICAgICAgIHRoaXMubW9kYWxUeXBlID0gJ2lkZW50aXR5JztcbiAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZGVudGl0eSA9IGl0ZW07XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRlbnRpdHkuYmFkZ2VzID0gW107XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZElkZW50aXR5Lmhhc0FwaVNlc3Npb24gfHwgdGhpcy5zZWxlY3RlZElkZW50aXR5Lmhhc0VkZ2VSb3V0ZXJDb25uZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZElkZW50aXR5LmJhZGdlcy5wdXNoKHtsYWJlbDogJ09ubGluZScsIGNsYXNzOiAnb25saW5lJywgY2lyY2xlOiAndHJ1ZSd9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZElkZW50aXR5LmJhZGdlcy5wdXNoKHtsYWJlbDogJ09mZmxpbmUnLCBjbGFzczogJ29mZmxpbmUnLCBjaXJjbGU6ICdmYWxzZSd9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSWRlbnRpdHkuZW5yb2xsbWVudD8ub3R0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZElkZW50aXR5LmJhZGdlcy5wdXNoKHtsYWJlbDogJ1VucmVnaXN0ZXJlZCcsIGNsYXNzOiAndW5yZWcnfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBUT0RPOiBpbXBsZW1lbnQgd2hlbiBtZXRyaWNzIGFuZCBkaWFsb2cgZmVhdHVyZXMgYXJlIGF2YWlsYWJsZVxuICAgICAgICAgICAgLyp0aGlzLnNlbGVjdGVkSWRlbnRpdHkubW9yZUFjdGlvbnMgPSBbXG4gICAgICAgICAgICAgICAge25hbWU6ICdvcGVuLW1ldHJpY3MnLCBsYWJlbDogJ09wZW4gTWV0cmljcyd9LFxuICAgICAgICAgICAgICAgIHtuYW1lOiAnZGlhbC1sb2dzJywgbGFiZWw6ICdEaWFsIExvZ3MnfSxcbiAgICAgICAgICAgICAgICB7bmFtZTogJ2RpYWwtbG9ncycsIGxhYmVsOiAnVmlldyBFdmVudHMnfSxcbiAgICAgICAgICAgIF07Ki9cbiAgICAgICAgICAgIHVuc2V0KHRoaXMuc2VsZWN0ZWRJZGVudGl0eSwgJ19saW5rcycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZElkZW50aXR5ID0gbmV3IElkZW50aXR5KCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaWRlTW9kYWxPcGVuID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3Blbk92ZXJyaWRlc01vZGFsKGl0ZW0pIHtcbiAgICAgICAgdGhpcy5tb2RhbFR5cGUgPSAnb3ZlcnJpZGVzJztcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkZW50aXR5ID0gaXRlbTtcbiAgICAgICAgdGhpcy5zaWRlTW9kYWxPcGVuID0gdHJ1ZTtcbiAgICB9XG59XG4iXX0=
|
|
498
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdGllcy1wYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvcGFnZXMvaWRlbnRpdGllcy9pZGVudGl0aWVzLXBhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUMxQyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUNILDJCQUEyQixFQUM5QixNQUFNLDhGQUE4RixDQUFDO0FBRXRHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBa0IsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRixPQUFPLEVBQUMsaUJBQWlCLEVBQWtCLE1BQU0sa0NBQWtDLENBQUM7QUFFcEYsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQy9DLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFHN0IsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDM0YsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDN0YsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBRXBFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBSXBHLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGlFQUFpRSxDQUFDOzs7Ozs7OztBQUUzRyxNQUFNLFdBQVcsR0FBRztJQUNoQixFQUFDLEtBQUssRUFBRSxNQUFNLEVB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RU0sa0JBQWtCLENBQUMsSUFBSTtRQUMxQixJQUFJLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQztRQUM3QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7K0dBdGNRLHFCQUFxQixrQkE4QmxCLGdCQUFnQixtREFFaEIsaUJBQWlCLHNHQUlqQiwwQkFBMEI7bUhBcEM3QixxQkFBcUIsY0FGbEIsTUFBTTs7U0FFVCxxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQStCUSxNQUFNOzJCQUFDLGdCQUFnQjs7MEJBRXZCLE1BQU07MkJBQUMsaUJBQWlCOzswQkFJeEIsTUFBTTsyQkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICAgIENvcHlyaWdodCBOZXRGb3VuZHJ5IEluYy5cblxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4qL1xuXG5pbXBvcnQge0luamVjdGFibGUsIEluamVjdCwgQ29tcG9uZW50LCBPbkluaXR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge2Nsb25lRGVlcCwgaXNFbXB0eX0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7RGF0YVRhYmxlRmlsdGVyU2VydmljZSwgRmlsdGVyT2JqfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLWZpbHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQge0xpc3RQYWdlU2VydmljZUNsYXNzfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2xpc3QtcGFnZS1zZXJ2aWNlLmNsYXNzXCI7XG5pbXBvcnQge1xuICAgIFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudFxufSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9jb2x1bW4taGVhZGVycy90YWJsZS1jb2x1bW4tZGVmYXVsdC90YWJsZS1jb2x1bW4tZGVmYXVsdC5jb21wb25lbnRcIjtcbmltcG9ydCB7Q2FsbGJhY2tSZXN1bHRzfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvbGlzdC1wYWdlLWZlYXR1cmVzL2xpc3QtcGFnZS1mb3JtL2xpc3QtcGFnZS1mb3JtLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtTRVRUSU5HU19TRVJWSUNFLCBTZXR0aW5nc1NlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9zZXR0aW5ncy5zZXJ2aWNlXCI7XG5pbXBvcnQge1pJVElfREFUQV9TRVJWSUNFLCBaaXRpRGF0YVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy96aXRpLWRhdGEuc2VydmljZVwiO1xuaW1wb3J0IHtDc3ZEb3dubG9hZFNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9jc3YtZG93bmxvYWQuc2VydmljZVwiO1xuaW1wb3J0IHtJZGVudGl0eX0gZnJvbSBcIi4uLy4uL21vZGVscy9pZGVudGl0eVwiO1xuaW1wb3J0IHt1bnNldH0gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHtJVG9vbHRpcEFuZ3VsYXJDb21wfSBmcm9tIFwiYWctZ3JpZC1hbmd1bGFyXCI7XG5pbXBvcnQge0lUb29sdGlwUGFyYW1zfSBmcm9tIFwiYWctZ3JpZC1jb21tdW5pdHlcIjtcbmltcG9ydCB7T1NUb29sdGlwQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS90b29sdGlwcy9vcy10b29sdGlwLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtTREtUb29sdGlwQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS90b29sdGlwcy9zZGstdG9vbHRpcC5jb21wb25lbnRcIjtcbmltcG9ydCB7R3Jvd2xlck1vZGVsfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvbWVzc2FnaW5nL2dyb3dsZXIubW9kZWxcIjtcbmltcG9ydCB7R3Jvd2xlclNlcnZpY2V9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9tZXNzYWdpbmcvZ3Jvd2xlci5zZXJ2aWNlXCI7XG5pbXBvcnQge1Jlc2V0RW5yb2xsbWVudENvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL3Jlc2V0LWVucm9sbG1lbnQvcmVzZXQtZW5yb2xsbWVudC5jb21wb25lbnRcIjtcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQge1NldHRpbmdzU2VydmljZUNsYXNzfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc2V0dGluZ3Mtc2VydmljZS5jbGFzc1wiO1xuaW1wb3J0IHtFeHRlbnNpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZXh0ZW5kYWJsZS9leHRlbnNpb25zLW5vb3Auc2VydmljZVwiO1xuaW1wb3J0IHtJREVOVElUWV9FWFRFTlNJT05fU0VSVklDRX0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL3Byb2plY3RhYmxlLWZvcm1zL2lkZW50aXR5L2lkZW50aXR5LWZvcm0uc2VydmljZVwiO1xuXG5jb25zdCBDU1ZfQ09MVU1OUyA9IFtcbiAgICB7bGFiZWw6ICdOYW1lJywgcGF0aDogJ25hbWUnfSxcbiAgICB7bGFiZWw6ICdSb2xlcycsIHBhdGg6ICdyb2xlQXR0cmlidXRlcyd9LFxuICAgIHtsYWJlbDogJ09ubGluZScsIHBhdGg6ICdoYXNBcGlTZXNzaW9uJ30sXG4gICAge2xhYmVsOiAnRWRnZSBSb3V0ZXIgQ29ubmVjdGVkJywgcGF0aDogJ2hhc0VkZ2VSb3V0ZXJDb25uZWN0aW9uJ30sXG4gICAge2xhYmVsOiAnT1MnLCBwYXRoOiAnZW52SW5mby5vcyd9LFxuICAgIHtsYWJlbDogJ09TIFZlcnNpb24nLCBwYXRoOiAnZW52SW5mby5vc1ZlcnNpb24nfSxcbiAgICB7bGFiZWw6ICdTREsnLCBwYXRoOiAnc2RrSW5mby52ZXJzaW9uJ30sXG4gICAge2xhYmVsOiAnQXBwIFZlcnNpb24nLCBwYXRoOiAnc2RrSW5mby5hcHBWZXJzaW9uJ30sXG4gICAge2xhYmVsOiAnVHlwZScsIHBhdGg6ICd0eXBlSWQnfSxcbiAgICB7bGFiZWw6ICdJcyBBZG1pbicsIHBhdGg6ICdpc0FkbWluJ30sXG4gICAge2xhYmVsOiAnQXV0aCBQb2xpY3knLCBwYXRoOiAnYXV0aFBvbGljeS5uYW1lJ30sXG4gICAge2xhYmVsOiAnQXV0aCBQb2xpY3kgSUQnLCBwYXRoOiAnYXV0aFBvbGljeS5pZCd9LFxuICAgIHtsYWJlbDogJ01GQSBFbmFibGVkJywgcGF0aDogJ2lzTWZhRW5hYmxlZCd9LFxuICAgIHtsYWJlbDogJ0NyZWF0ZWQgQXQnLCBwYXRoOiAnY3JlYXRlZEF0J30sXG4gICAge2xhYmVsOiAnSUQnLCBwYXRoOiAnaWQnfSxcbl07XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSWRlbnRpdGllc1BhZ2VTZXJ2aWNlIGV4dGVuZHMgTGlzdFBhZ2VTZXJ2aWNlQ2xhc3Mge1xuXG4gICAgcHJpdmF0ZSBwYWdpbmcgPSB0aGlzLkRFRkFVTFRfUEFHSU5HO1xuICAgIHB1YmxpYyBtb2RhbFR5cGUgPSAnaWRlbnRpdGllcyc7XG5cbiAgICBzZWxlY3RlZElkZW50aXR5OiBhbnkgPSBuZXcgSWRlbnRpdHkoKTtcbiAgICBjb2x1bW5GaWx0ZXJzOiBhbnkgPSB7XG4gICAgICAgIG5hbWU6ICcnLFxuICAgICAgICBvczogJycsXG4gICAgICAgIGNyZWF0ZWRBdDogJycsXG4gICAgfTtcblxuICAgIG92ZXJyaWRlIG1lbnVJdGVtcyA9IFtcbiAgICAgICAge25hbWU6ICdFZGl0JywgYWN0aW9uOiAndXBkYXRlJ30sXG4gICAgICAgIHtuYW1lOiAnRG93bmxvYWQgSldUJywgYWN0aW9uOiAnZG93bmxvYWQtZW5yb2xsbWVudCd9LFxuICAgICAgICB7bmFtZTogJ1ZpZXcgUVInLCBhY3Rpb246ICdxci1jb2RlJ30sXG4gICAgICAgIHtuYW1lOiAnVmlzdWFsaXplcicsIGFjdGlvbjogJ2lkZW50aXR5LXNlcnZpY2UtcGF0aCd9LFxuICAgICAgICB7bmFtZTogJ1Jlc2V0IEVucm9sbG1lbnQnLCBhY3Rpb246ICdyZXNldC1lbnJvbGxtZW50J30sXG4gICAgICAgIHtuYW1lOiAnUmVpc3N1ZSBFbnJvbGxtZW50JywgYWN0aW9uOiAncmVpc3N1ZS1lbnJvbGxtZW50J30sXG4gICAgICAgIHtuYW1lOiAnT3ZlcnJpZGUnLCBhY3Rpb246ICdvdmVycmlkZSd9LFxuICAgICAgICB7bmFtZTogJ0RlbGV0ZScsIGFjdGlvbjogJ2RlbGV0ZSd9LFxuICAgIF1cblxuICAgIG92ZXJyaWRlIHRhYmxlSGVhZGVyQWN0aW9ucyA9IFtcbiAgICAgICAge25hbWU6ICdEb3dubG9hZCBBbGwnLCBhY3Rpb246ICdkb3dubG9hZC1hbGwnfSxcbiAgICAgICAge25hbWU6ICdEb3dubG9hZCBTZWxlY3RlZCcsIGFjdGlvbjogJ2Rvd25sb2FkLXNlbGVjdGVkJ30sXG4gICAgXVxuXG4gICAgcmVzb3VyY2VUeXBlID0gJ2lkZW50aXRpZXMnO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFNFVFRJTkdTX1NFUlZJQ0UpIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2VDbGFzcyxcbiAgICAgICAgZmlsdGVyU2VydmljZTogRGF0YVRhYmxlRmlsdGVyU2VydmljZSxcbiAgICAgICAgQEluamVjdChaSVRJX0RBVEFfU0VSVklDRSkgcHJpdmF0ZSB6aXRpU2VydmljZTogWml0aURhdGFTZXJ2aWNlLFxuICAgICAgICBvdmVycmlkZSBjc3ZEb3dubG9hZFNlcnZpY2U6IENzdkRvd25sb2FkU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBncm93bGVyU2VydmljZTogR3Jvd2xlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZGlhbG9nRm9ybTogTWF0RGlhbG9nLFxuICAgICAgICBASW5qZWN0KElERU5USVRZX0VYVEVOU0lPTl9TRVJWSUNFKSBleHRTZXJ2aWNlOiBFeHRlbnNpb25TZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKHNldHRpbmdzLCBmaWx0ZXJTZXJ2aWNlLCBjc3ZEb3dubG9hZFNlcnZpY2UsIGV4dFNlcnZpY2UpO1xuICAgIH1cblxuICAgIHZhbGlkYXRlID0gKGZvcm1EYXRhKTogUHJvbWlzZTxDYWxsYmFja1Jlc3VsdHM+ID0+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7IHBhc3NlZDogdHJ1ZX0pO1xuICAgIH1cblxuICAgIGluaXRUYWJsZUNvbHVtbnMoKTogYW55IHtcbiAgICAgICAgdGhpcy5pbml0TWVudUFjdGlvbnMoKTtcblxuICAgICAgICBjb25zdCBuYW1lUmVuZGVyZXIgPSAocm93KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCJjb2wgY2VsbC1uYW1lLXJlbmRlcmVyXCIgZGF0YS1pZD1cIiR7cm93Py5kYXRhPy5pZH1cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNpcmNsZSAke3Jvdz8uZGF0YT8uaGFzQXBpU2Vzc2lvbn1cIiB0aXRsZT1cIkFwaSBTZXNzaW9uXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2lyY2xlICR7cm93Py5kYXRhPy5oYXNFZGdlUm91dGVyQ29ubmVjdGlvbn1cIiB0aXRsZT1cIkVkZ2UgUm91dGVyIENvbm5lY3RlZFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3Ryb25nPiR7cm93Py5kYXRhPy5uYW1lfTwvc3Ryb25nPlxuICAgICAgICAgICAgICA8L2Rpdj5gXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvc1JlbmRlcmVyID0gKHJvdykgPT4ge1xuICAgICAgICAgICAgbGV0IG9zID0gXCJvdGhlclwiO1xuICAgICAgICAgICAgbGV0IG9zRGV0YWlscyA9IFwiXCI7XG4gICAgICAgICAgICBpZiAocm93Py5kYXRhPy5lbnZJbmZvKSB7XG4gICAgICAgICAgICAgICAgaWYgKHJvdz8uZGF0YT8uZW52SW5mbz8ub3NWZXJzaW9uJiZyb3c/LmRhdGE/LmVudkluZm8/Lm9zVmVyc2lvbi50b0xvd2VyQ2FzZSgpLmluZGV4T2YoXCJ3aW5kb3dzXCIpPj0wKSBvcyA9IFwid2luZG93c1wiO1xuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAocm93Py5kYXRhPy5lbnZJbmZvPy5vcyYmcm93Py5kYXRhPy5lbnZJbmZvPy5vcy50b0xvd2VyQ2FzZSgpLmluZGV4T2YoXCJkYXJ3aW5cIik+PTApIG9zID0gXCJhcHBsZVwiO1xuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChyb3c/LmRhdGE/LmVudkluZm8/Lm9zJiZyb3c/LmRhdGE/LmVudkluZm8/Lm9zLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihcImxpbnV4XCIpPj0wKSBvcyA9IFwibGludXhcIjtcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocm93Py5kYXRhPy5lbnZJbmZvPy5vcyYmcm93Py5kYXRhPy5lbnZJbmZvPy5vcy50b0xvd2VyQ2FzZSgpLmluZGV4T2YoXCJhbmRyb2lkXCIpPj0wKSBvcyA9IFwiYW5kcm9pZFwiO1xuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChyb3c/LmRhdGE/LmVudkluZm8/Lm9zJiZyb3c/LmRhdGE/LmVudkluZm8/Lm9zLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihcIndpbmRvd3NcIik+PTApIG9zID0gXCJ3aW5kb3dzXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChyb3c/LmRhdGE/LmVudkluZm8/Lm9zKSBvc0RldGFpbHMgKz0gXCJPUzogXCIrcm93Py5kYXRhPy5lbnZJbmZvPy5vcztcbiAgICAgICAgICAgICAgICBpZiAocm93Py5kYXRhPy5lbnZJbmZvPy5hcmNoKSBvc0RldGFpbHMgKz0gXCImIzEwO0FyY2g6IFwiK3Jvdz8uZGF0YT8uZW52SW5mbz8uYXJjaDtcbiAgICAgICAgICAgICAgICBpZiAocm93Py5kYXRhPy5lbnZJbmZvPy5vc1JlbGVhc2UpIG9zRGV0YWlscyArPSBcIiYjMTA7UmVsZWFzZTogXCIrcm93Py5kYXRhPy5lbnZJbmZvPy5vc1JlbGVhc2U7XG4gICAgICAgICAgICAgICAgaWYgKHJvdz8uZGF0YT8uZW52SW5mbz8ub3NWZXJzaW9uKSBvc0RldGFpbHMgKz0gXCImIzEwO1ZlcnNpb246IFwiK3Jvdz8uZGF0YT8uZW52SW5mbz8ub3NWZXJzaW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwiY29sIGRlc2t0b3BcIiBzdHlsZT1cIm92ZXJmbG93OiB1bnNldDtcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9zICR7b3N9XCI+PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5gXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzZGtSZW5kZXJlciA9IChyb3cpID0+IHtcbiAgICAgICAgICAgIGxldCBzZGsgPSBcIlwiO1xuICAgICAgICAgICAgbGV0IHZlcnNpb24gPSBcIi1cIjtcbiAgICAgICAgICAgIGNvbnN0IHNka0luZm8gPSByb3c/LmRhdGE/LnNka0luZm87XG4gICAgICAgICAgICBpZiAoc2RrSW5mbykge1xuICAgICAgICAgICAgICAgIHZlcnNpb24gPSBcIlwiO1xuICAgICAgICAgICAgICAgIGlmIChzZGtJbmZvPy52ZXJzaW9uKSB2ZXJzaW9uICs9IHNka0luZm8/LnZlcnNpb247XG4gICAgICAgICAgICAgICAgaWYgKHNka0luZm8/LmFwcElkKSBzZGsgKz0gc2RrSW5mbz8uYXBwSWQ7XG4gICAgICAgICAgICAgICAgaWYgKHNka0luZm8/LmFwcFZlcnNpb24pIHNkayArPSBzZGtJbmZvPy5hcHBWZXJzaW9uO1xuICAgICAgICAgICAgICAgIGlmIChzZGtJbmZvPy50eXBlKSBzZGsgKz0gc2RrSW5mbz8udHlwZTtcbiAgICAgICAgICAgICAgICBpZiAoc2RrSW5mbz8udHlwZSkgc2RrICs9IFwiJiMxMDtcIitzZGtJbmZvPy5icmFuY2g7XG4gICAgICAgICAgICAgICAgaWYgKHNka0luZm8/LnJldmlzaW9uKSBzZGsgKz0gXCIgLSBcIitzZGtJbmZvPy5yZXZpc2lvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybmA8ZGl2IGNsYXNzPVwiY29sIGRlc2t0b3BcIiBkYXRhLWlkPVwiJHtyb3c/LmRhdGE/LmlkfVwiIHN0eWxlPVwib3ZlcmZsb3c6IHVuc2V0O1wiIGRhdGEtYmFsbG9vbi1wb3M9XCJ1cFwiIGFyaWEtbGFiZWw9XCIke3Nka31cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9uZWxpbmVcIj4ke3ZlcnNpb259PC9zcGFuPlxuICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb2x1bW5GaWx0ZXJzID0gdGhpcy5jb2x1bW5GaWx0ZXJzO1xuXG4gICAgICAgIGNvbnN0IG9zUGFyYW1zID0ge1xuICAgICAgICAgICAgZmlsdGVyVHlwZTogJ0NPTUJPJyxcbiAgICAgICAgICAgIGZpbHRlck9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnQWxsJywgdmFsdWU6ICcnLCBpY29uOiAnZW1wdHknIH0sXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0FwcGxlJywgdmFsdWU6ICdkYXJ3aW4nLCBpY29uOiAnYXBwbGUnIH0sXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ1dpbmRvd3MnLCB2YWx1ZTogJ21pbmd3JywgaWNvbjogJ3dpbmRvd3MnICB9LFxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdMaW51eCcsIHZhbHVlOiAnbGludXgnLCBpY29uOiAnbGludXgnICB9LFxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdBbmRyb2lkJywgdmFsdWU6ICdhbmRyb2lkJywgaWNvbjogJ2FuZHJvaWQnICB9LFxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdPdGhlciAodGV4dCBzZWFyY2gpJywgdmFsdWU6ICcnLCBpY29uOiAnb3RoZXInLCB1c2VUZXh0SW5wdXQ6IHRydWUgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgY29sdW1uRmlsdGVycyxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAnbmFtZScsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICduYW1lJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnTmFtZScsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50UGFyYW1zOiB0aGlzLmhlYWRlckNvbXBvbmVudFBhcmFtcyxcbiAgICAgICAgICAgICAgICBvbkNlbGxDbGlja2VkOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNTZWxlY3RlZFRleHQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlblVwZGF0ZShkYXRhLmRhdGEpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogbmFtZVJlbmRlcmVyLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IHRydWUsXG4gICAgICAgICAgICAgICAgc29ydENvbHVtbjogdGhpcy5zb3J0LmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgc29ydERpcjogJ2FzYycsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDMwMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdyb2xlQXR0cmlidXRlcycsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdyb2xlQXR0cmlidXRlcycsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ1JvbGVzJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBvbkNlbGxDbGlja2VkOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNTZWxlY3RlZFRleHQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlblVwZGF0ZShkYXRhLmRhdGEpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogdGhpcy5yb2xlc1JlbmRlcmVyLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgZmlsdGVyOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdvcycsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdvcycsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ08vUycsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXI6IG9zUmVuZGVyZXIsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgdG9vbHRpcENvbXBvbmVudDogT1NUb29sdGlwQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHRvb2x0aXBGaWVsZDogJ2VudkluZm8nLFxuICAgICAgICAgICAgICAgIHRvb2x0aXBDb21wb25lbnRQYXJhbXM6IHsgY29sb3I6ICcjZWNlY2VjJyB9LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAnc2RrJyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ3NkaycsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ1NESycsXG4gICAgICAgICAgICAgICAgdG9vbHRpcEZpZWxkOiAnc2RrSW5mbycsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiBzZGtSZW5kZXJlcixcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICB0b29sdGlwQ29tcG9uZW50OiBTREtUb29sdGlwQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEyNSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICd0eXBlJyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ3R5cGUubmFtZScsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ1R5cGUnLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICAgICAgc29ydENvbHVtbjogdGhpcy5zb3J0LmJpbmQodGhpcyksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAnaXNBZG1pbicsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdpc0FkbWluJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnSXMgQWRtaW4nLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLnNvcnQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdjcmVhdGVkQXQnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAnY3JlYXRlZEF0JyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnQ3JlYXRlZCBBdCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IHRoaXMuY3JlYXRlZEF0Rm9ybWF0dGVyLFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLnNvcnQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAndG9rZW4nLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAndG9rZW4nLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdUb2tlbicsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiAnY2VsbFRva2VuQ29tcG9uZW50JyxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ2lzTWZhRW5hYmxlZCcsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdpc01mYUVuYWJsZWQnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdNRkEnLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBnZXREYXRhKGZpbHRlcnM/OiBGaWx0ZXJPYmpbXSwgc29ydD86IGFueSwgcGFnZT86IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIC8vIHdlIGNhbiBjdXN0b21pemUgZmlsdGVycyBvciBzb3J0aW5nIGhlcmUgYmVmb3JlIG1vdmluZyBvbi4uLlxuICAgICAgICB0aGlzLnBhZ2luZy5wYWdlID0gcGFnZSB8fCB0aGlzLnBhZ2luZy5wYWdlO1xuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0VGFibGVEYXRhKCdpZGVudGl0aWVzJywgdGhpcy5wYWdpbmcsIGZpbHRlcnMsIHNvcnQpXG4gICAgICAgICAgICAudGhlbigocmVzdWx0czogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0RhdGEocmVzdWx0cyk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NEYXRhKHJlc3VsdHM6IGFueSkge1xuICAgICAgICBpZiAoIWlzRW1wdHkocmVzdWx0cz8uZGF0YSkpIHtcbiAgICAgICAgICAgIC8vcHJlLXByb2Nlc3MgZGF0YSBiZWZvcmUgcmVuZGVyaW5nXG4gICAgICAgICAgICByZXN1bHRzLmRhdGEgPSB0aGlzLmFkZEFjdGlvbnNQZXJSb3cocmVzdWx0cyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRBY3Rpb25zUGVyUm93KHJlc3VsdHM6IGFueSk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdHMuZGF0YS5tYXAoKHJvdykgPT4ge1xuICAgICAgICAgICAgcm93LmFjdGlvbkxpc3QgPSBbJ3VwZGF0ZScsICdvdmVycmlkZScsICdkZWxldGUnLCAnaWRlbnRpdHktc2VydmljZS1wYXRoJ107XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmhhc0Vucm9sbWVudFRva2VuKHJvdykpIHtcbiAgICAgICAgICAgICAgICByb3cuYWN0aW9uTGlzdC5wdXNoKCdyZWlzc3VlLWVucm9sbG1lbnQnKTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZW5yb2xsbWVudEV4cGlyZWQocm93KSkge1xuICAgICAgICAgICAgICAgICAgICByb3cuYWN0aW9uTGlzdC5wdXNoKCdkb3dubG9hZC1lbnJvbGxtZW50Jyk7XG4gICAgICAgICAgICAgICAgICAgIHJvdy5hY3Rpb25MaXN0LnB1c2goJ3FyLWNvZGUnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaGFzQXV0aGVudGljYXRvcihyb3cpKSB7XG4gICAgICAgICAgICAgICAgcm93LmFjdGlvbkxpc3QucHVzaCgncmVzZXQtZW5yb2xsbWVudCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5hZGRMaXN0SXRlbUV4dGVuc2lvbkFjdGlvbnMocm93KTtcbiAgICAgICAgICAgIHJldHVybiByb3c7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGhhc0F1dGhlbnRpY2F0b3IoaXRlbSkge1xuICAgICAgICByZXR1cm4gaXRlbT8uYXV0aGVudGljYXRvcnM/LmNlcnQ/LmlkIHx8IGl0ZW0uYXV0aGVudGljYXRvcnM/LnVwZGI/LmlkO1xuICAgIH1cblxuICAgIGhhc0Vucm9sbWVudFRva2VuKGl0ZW0pIHtcbiAgICAgICAgbGV0IHRva2VuO1xuICAgICAgICBpZiAoaXRlbT8uZW5yb2xsbWVudD8ub3R0Py5qd3QpIHtcbiAgICAgICAgICAgIHRva2VuID0gaXRlbT8uZW5yb2xsbWVudD8ub3R0Py5qd3Q7XG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbT8uZW5yb2xsbWVudD8ub3R0Y2E/Lmp3dCkge1xuICAgICAgICAgICAgdG9rZW4gPSBpdGVtPy5lbnJvbGxtZW50Py5vdHRjYT8uand0O1xuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0/LmVucm9sbG1lbnQ/LnVwZGI/Lmp3dCkge1xuICAgICAgICAgICAgdG9rZW4gPSBpdGVtPy5lbnJvbGxtZW50Py51cGRiPy5qd3Q7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgIH1cblxuICAgIGVucm9sbG1lbnRFeHBpcmVkKGl0ZW0pIHtcbiAgICAgICAgbGV0IGV4cGlyYXRpb247XG4gICAgICAgIGlmIChpdGVtPy5lbnJvbGxtZW50Py5vdHQ/Lmp3dCkge1xuICAgICAgICAgICAgZXhwaXJhdGlvbiA9IGl0ZW0/LmVucm9sbG1lbnQ/Lm90dD8uZXhwaXJlc0F0O1xuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0/LmVucm9sbG1lbnQ/Lm90dGNhPy5qd3QpIHtcbiAgICAgICAgICAgIGV4cGlyYXRpb24gPSBpdGVtPy5lbnJvbGxtZW50Py5vdHRjYT8uZXhwaXJlc0F0O1xuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0/LmVucm9sbG1lbnQ/LnVwZGI/Lmp3dCkge1xuICAgICAgICAgICAgZXhwaXJhdGlvbiA9IGl0ZW0/LmVucm9sbG1lbnQ/LnVwZGI/LmV4cGlyZXNBdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbW9tZW50KGV4cGlyYXRpb24pLmlzQmVmb3JlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldElkZW50aXRpZXNSb2xlQXR0cmlidXRlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueml0aVNlcnZpY2UuZ2V0KCdpZGVudGl0eS1yb2xlLWF0dHJpYnV0ZXMnLCB7fSwgW10pO1xuICAgIH1cblxuICAgIGdldEpXVChpZGVudGl0eTogYW55KSB7XG4gICAgICAgIGxldCBxckNvZGU7XG4gICAgICAgIGlmICghaXNFbXB0eShpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0Py5qd3QpKSB7XG4gICAgICAgICAgICBxckNvZGUgPSBpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0Py5qd3Q7XG4gICAgICAgIH0gZWxzZSBpZiAoIWlzRW1wdHkoaWRlbnRpdHk/LmVucm9sbG1lbnQ/Lm90dGNhPy5qd3QpKSB7XG4gICAgICAgICAgICBxckNvZGUgPSBpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0Y2E/Lmp3dDtcbiAgICAgICAgfSBlbHNlIGlmKCFpc0VtcHR5KGlkZW50aXR5Py5lbnJvbGxtZW50Py51cGRiPy5qd3QpKSB7XG4gICAgICAgICAgICBxckNvZGUgPSBpZGVudGl0eT8uZW5yb2xsbWVudD8udXBkYj8uand0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBxckNvZGU7XG4gICAgfVxuXG4gICAgZ2V0VG9rZW4oaWRlbnRpdHk6IGFueSkge1xuICAgICAgICBsZXQgcXJDb2RlO1xuICAgICAgICBpZiAoIWlzRW1wdHkoaWRlbnRpdHk/LmVucm9sbG1lbnQ/Lm90dD8udG9rZW4pKSB7XG4gICAgICAgICAgICBxckNvZGUgPSBpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0Py50b2tlbjtcbiAgICAgICAgfSBlbHNlIGlmICghaXNFbXB0eShpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0Y2E/LnRva2VuKSkge1xuICAgICAgICAgICAgcXJDb2RlID0gaWRlbnRpdHk/LmVucm9sbG1lbnQ/Lm90dGNhPy50b2tlbjtcbiAgICAgICAgfSBlbHNlIGlmKCFpc0VtcHR5KGlkZW50aXR5Py5lbnJvbGxtZW50Py51cGRiPy50b2tlbikpIHtcbiAgICAgICAgICAgIHFyQ29kZSA9IGlkZW50aXR5Py5lbnJvbGxtZW50Py51cGRiPy50b2tlbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcXJDb2RlO1xuICAgIH1cblxuICAgIGRvd25sb2FkSldUKGp3dCwgbmFtZSkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnaHJlZicsICdkYXRhOmFwcGxpY2F0aW9uL3ppdGktand0O2NoYXJzZXQ9dXRmLTgsJyArIGVuY29kZVVSSUNvbXBvbmVudChqd3QpKTtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgbmFtZStcIi5qd3RcIik7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTtcbiAgICAgICAgZWxlbWVudC5jbGljaygpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVsZW1lbnQpO1xuICAgIH1cblxuICAgIGNvcHlUb2tlbih0b2tlbikge1xuICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0b2tlbik7XG4gICAgICAgIGNvbnN0IGdyb3dsZXJEYXRhID0gbmV3IEdyb3dsZXJNb2RlbChcbiAgICAgICAgICAgICdzdWNjZXNzJyxcbiAgICAgICAgICAgICdTdWNjZXNzJyxcbiAgICAgICAgICAgIGBUZXh0IENvcGllZGAsXG4gICAgICAgICAgICBgUmVnaXN0cmF0aW9uIHRva2VuIGNvcGllZCB0byBjbGlwYm9hcmRgLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmdyb3dsZXJTZXJ2aWNlLnNob3coZ3Jvd2xlckRhdGEpO1xuICAgIH1cblxuICAgIHJlc2V0SldUKGlkZW50aXR5KSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5kaWFsb2dGb3JtLm9wZW4oUmVzZXRFbnJvbGxtZW50Q29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgaWRlbnRpdHk6IGlkZW50aXR5LFxuICAgICAgICAgICAgICAgIHR5cGU6ICdyZXNldCdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhdXRvRm9jdXM6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlhbG9nUmVmO1xuICAgIH1cblxuICAgIHJlaXNzdWVKV1QoaWRlbnRpdHkpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ0Zvcm0ub3BlbihSZXNldEVucm9sbG1lbnRDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBpZGVudGl0eTogaWRlbnRpdHksXG4gICAgICAgICAgICAgICAgdHlwZTogJ3JlaXNzdWUnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzLmRpYWxvZ1JlZjtcbiAgICB9XG5cbiAgICBnZXRFbnJvbGxtZW50RXhwaXJhdGlvbihpZGVudGl0eTogYW55KSB7XG4gICAgICAgIGxldCBleHBpcmVzQXQ7XG4gICAgICAgIGlmICghaXNFbXB0eShpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0Py5leHBpcmVzQXQpKSB7XG4gICAgICAgICAgICBleHBpcmVzQXQgPSBpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0Py5leHBpcmVzQXQ7XG4gICAgICAgIH0gZWxzZSBpZiAoIWlzRW1wdHkoaWRlbnRpdHk/LmVucm9sbG1lbnQ/Lm90dGNhPy5leHBpcmVzQXQpKSB7XG4gICAgICAgICAgICBleHBpcmVzQXQgPSBpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0Y2E/LmV4cGlyZXNBdDtcbiAgICAgICAgfSBlbHNlIGlmKCFpc0VtcHR5KGlkZW50aXR5Py5lbnJvbGxtZW50Py51cGRiPy5leHBpcmVzQXQpKSB7XG4gICAgICAgICAgICBleHBpcmVzQXQgPSBpZGVudGl0eT8uZW5yb2xsbWVudD8udXBkYj8uZXhwaXJlc0F0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBleHBpcmVzQXQ7XG4gICAgfVxuXG4gICAgZG93bmxvYWRBbGxJdGVtcygpIHtcbiAgICAgICAgY29uc3QgcGFnaW5nID0gY2xvbmVEZWVwKHRoaXMucGFnaW5nKTtcbiAgICAgICAgcGFnaW5nLnRvdGFsID0gMjAwMDtcbiAgICAgICAgc3VwZXIuZ2V0VGFibGVEYXRhKCdpZGVudGl0aWVzJywgcGFnaW5nLCB1bmRlZmluZWQsIHVuZGVmaW5lZClcbiAgICAgICAgICAgIC50aGVuKChyZXN1bHRzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kb3dubG9hZEl0ZW1zKHJlc3VsdHM/LmRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVzZXRFbnJvbGxtZW50KGlkZW50aXR5OiBhbnksIGRhdGU6IGFueSkge1xuICAgICAgICBsZXQgaWQgPSBpZGVudGl0eT8uYXV0aGVudGljYXRvcnM/LmNlcnQ/LmlkO1xuICAgICAgICBpZiAoIWlkKSB7XG4gICAgICAgICAgICBpZighaXNFbXB0eShpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0KSkge1xuICAgICAgICAgICAgICAgIGlkID0gaWRlbnRpdHk/LmVucm9sbG1lbnQ/Lm90dC5pZDtcbiAgICAgICAgICAgIH0gZWxzZSBpZighaXNFbXB0eShpZGVudGl0eT8uZW5yb2xsbWVudC5vdHRjYSkpIHtcbiAgICAgICAgICAgICAgICBpZCA9IGlkZW50aXR5Py5lbnJvbGxtZW50Py5vdHRjYS5pZDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIWlzRW1wdHkoaWRlbnRpdHk/LmVucm9sbG1lbnQudXBkYikpIHtcbiAgICAgICAgICAgICAgICBpZCA9IGlkZW50aXR5Py5lbnJvbGxtZW50Py51cGRiLmlkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLnJlc2V0RW5yb2xsbWVudChpZCwgZGF0ZSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBncm93bGVyRGF0YSA9IG5ldyBHcm93bGVyTW9kZWwoXG4gICAgICAgICAgICAgICAgJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgICAgICdTdWNjZXNzJyxcbiAgICAgICAgICAgICAgICBgRW5yb2xsbWVudCBSZXNldGAsXG4gICAgICAgICAgICAgICAgYFN1Y2Nlc3NmdWxseSByZWlzc3VlZCBlbnJvbGxtZW50IHRva2VuYCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmdyb3dsZXJTZXJ2aWNlLnNob3coZ3Jvd2xlckRhdGEpO1xuICAgICAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGdyb3dsZXJEYXRhID0gbmV3IEdyb3dsZXJNb2RlbChcbiAgICAgICAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICAgICAgICdFcnJvcicsXG4gICAgICAgICAgICAgICAgYFJlc2V0IEZhaWxlZGAsXG4gICAgICAgICAgICAgICAgYEZhaWxlZCB0byByZWlzc3VlcyBlbnJvbGxtZW50IHRva2VuYCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmdyb3dsZXJTZXJ2aWNlLnNob3coZ3Jvd2xlckRhdGEpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBkb3dubG9hZEl0ZW1zKHNlbGVjdGVkSXRlbXMpIHtcbiAgICAgICAgdGhpcy5jc3ZEb3dubG9hZFNlcnZpY2UuZG93bmxvYWQoXG4gICAgICAgICAgICAnaWRlbnRpdGllcycsXG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLFxuICAgICAgICAgICAgQ1NWX0NPTFVNTlMsXG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlblVwZGF0ZShpdGVtPzogYW55KSB7XG4gICAgICAgIHRoaXMubW9kYWxUeXBlID0gJ2lkZW50aXR5JztcbiAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZGVudGl0eSA9IGl0ZW07XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRlbnRpdHkuYmFkZ2VzID0gW107XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZElkZW50aXR5Lmhhc0FwaVNlc3Npb24gfHwgdGhpcy5zZWxlY3RlZElkZW50aXR5Lmhhc0VkZ2VSb3V0ZXJDb25uZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZElkZW50aXR5LmJhZGdlcy5wdXNoKHtsYWJlbDogJ09ubGluZScsIGNsYXNzOiAnb25saW5lJywgY2lyY2xlOiAndHJ1ZSd9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZElkZW50aXR5LmJhZGdlcy5wdXNoKHtsYWJlbDogJ09mZmxpbmUnLCBjbGFzczogJ29mZmxpbmUnLCBjaXJjbGU6ICdmYWxzZSd9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSWRlbnRpdHkuZW5yb2xsbWVudD8ub3R0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZElkZW50aXR5LmJhZGdlcy5wdXNoKHtsYWJlbDogJ1VucmVnaXN0ZXJlZCcsIGNsYXNzOiAndW5yZWcnfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBUT0RPOiBpbXBsZW1lbnQgd2hlbiBtZXRyaWNzIGFuZCBkaWFsb2cgZmVhdHVyZXMgYXJlIGF2YWlsYWJsZVxuICAgICAgICAgICAgLyp0aGlzLnNlbGVjdGVkSWRlbnRpdHkubW9yZUFjdGlvbnMgPSBbXG4gICAgICAgICAgICAgICAge25hbWU6ICdvcGVuLW1ldHJpY3MnLCBsYWJlbDogJ09wZW4gTWV0cmljcyd9LFxuICAgICAgICAgICAgICAgIHtuYW1lOiAnZGlhbC1sb2dzJywgbGFiZWw6ICdEaWFsIExvZ3MnfSxcbiAgICAgICAgICAgICAgICB7bmFtZTogJ2RpYWwtbG9ncycsIGxhYmVsOiAnVmlldyBFdmVudHMnfSxcbiAgICAgICAgICAgIF07Ki9cbiAgICAgICAgICAgIHVuc2V0KHRoaXMuc2VsZWN0ZWRJZGVudGl0eSwgJ19saW5rcycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZElkZW50aXR5ID0gbmV3IElkZW50aXR5KCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaWRlTW9kYWxPcGVuID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3Blbk92ZXJyaWRlc01vZGFsKGl0ZW0pIHtcbiAgICAgICAgdGhpcy5tb2RhbFR5cGUgPSAnb3ZlcnJpZGVzJztcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkZW50aXR5ID0gaXRlbTtcbiAgICAgICAgdGhpcy5zaWRlTW9kYWxPcGVuID0gdHJ1ZTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -26,8 +26,9 @@ import * as i6 from "@angular/common";
|
|
|
26
26
|
import * as i7 from "../../features/list-page-features/list-page-header/list-page-header.component";
|
|
27
27
|
import * as i8 from "../../features/data-table/data-table.component";
|
|
28
28
|
import * as i9 from "../../features/side-modal/side-modal.component";
|
|
29
|
-
import * as i10 from "../../features/
|
|
30
|
-
import * as i11 from "../../features/
|
|
29
|
+
import * as i10 from "../../features/loading-indicator/loading-indicator.component";
|
|
30
|
+
import * as i11 from "../../features/projectable-forms/service-policy/service-policy-form.component";
|
|
31
|
+
import * as i12 from "../../features/wrappers/zac-wrapper-service.class";
|
|
31
32
|
class ServicePoliciesPageComponent extends ListPageComponent {
|
|
32
33
|
constructor(svc, filterService, dialogForm, tabNames, consoleEvents, zacWrapperService) {
|
|
33
34
|
super(filterService, svc, consoleEvents, dialogForm);
|
|
@@ -119,14 +120,14 @@ class ServicePoliciesPageComponent extends ListPageComponent {
|
|
|
119
120
|
this.svc.serviceType = event;
|
|
120
121
|
}
|
|
121
122
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ServicePoliciesPageComponent, deps: [{ token: i1.ServicePoliciesPageService }, { token: i2.DataTableFilterService }, { token: i3.MatDialog }, { token: i4.TabNameService }, { token: i5.ConsoleEventsService }, { token: ZAC_WRAPPER_SERVICE }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
122
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ServicePoliciesPageComponent, selector: "lib-service-policies-page", usesInheritance: true, ngImport: i0, template: "<div class=\"ziti-page-container ziti-service-policies-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [showAdd]=\"!itemsSelected\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n\n <lib-data-table [tableId]=\"'configurations'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No Service Policies defined, Click the plus to add a Service Policy.'\"\n [filterApplied]=\"filterApplied\"\n [menuItems]=\"svc.menuItems\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n
|
|
123
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ServicePoliciesPageComponent, selector: "lib-service-policies-page", usesInheritance: true, ngImport: i0, template: "<div class=\"ziti-page-container ziti-service-policies-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [showAdd]=\"!itemsSelected\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n\n <lib-data-table [tableId]=\"'configurations'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No Service Policies defined, Click the plus to add a Service Policy.'\"\n [filterApplied]=\"filterApplied\"\n [menuItems]=\"svc.menuItems\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n<lib-side-modal [(open)]=\"svc.sideModalOpen\" [showClose]=\"false\">\n <lib-service-policy-form\n *ngIf=\"svc.sideModalOpen\"\n [formData]=\"svc.selectedServicePolicy\"\n [serviceRoleAttributes]=\"svc.serviceRoleAttributes\"\n [serviceNamedAttributes]=\"svc.serviceNamedAttributes\"\n [serviceNamedAttributesMap]=\"svc.serviceNamedAttributesMap\"\n [identityRoleAttributes]=\"svc.identityRoleAttributes\"\n [identityNamedAttributes]=\"svc.identityNamedAttributes\"\n [identityNamedAttributesMap]=\"svc.identityNamedAttributesMap\"\n [postureRoleAttributes]=\"svc.postureRoleAttributes\"\n [postureNamedAttributes]=\"svc.postureNamedAttributes\"\n [postureNamedAttributesMap]=\"svc.postureNamedAttributesMap\"\n (close)=\"closeModal($event)\"\n (dataChange)=\"dataChanged($event)\">\n </lib-service-policy-form>\n</lib-side-modal>\n<lib-loading-indicator *ngIf=\"isLoading\" [isLoading]=\"isLoading\"></lib-loading-indicator>\n", styles: [""], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.ListPageHeaderComponent, selector: "lib-list-page-header", inputs: ["title", "tabs", "showAdd", "hideAction"], outputs: ["actionClicked"] }, { kind: "component", type: i8.DataTableComponent, selector: "lib-data-table", inputs: ["rowData", "expandRowData", "collapseRowData", "rowValidation", "isTimeSearchAvailable", "isLoading", "tableId", "options", "validateService", "rowsToggled", "tableRefreshCount", "view", "serverSideDataSource", "allowDownload", "startCount", "endCount", "totalCount", "emptyMsg", "filterApplied", "menuItems", "headerActions", "noItemsClass", "entityTypeName", "showNoItemsAdd", "currentPage", "noItemsImage", "columnDefinitions", "refreshCount"], outputs: ["actionRequested", "gridReady", "dragStart", "dragLeave", "pageChanged"] }, { kind: "component", type: i9.SideModalComponent, selector: "lib-side-modal", inputs: ["showClose", "open"], outputs: ["openChange"] }, { kind: "component", type: i10.LoadingIndicatorComponent, selector: "lib-loading-indicator", inputs: ["isLoading"] }, { kind: "component", type: i11.ServicePolicyFormComponent, selector: "lib-service-policy-form", inputs: ["formData", "serviceRoleAttributes", "serviceNamedAttributes", "serviceNamedAttributesMap", "identityRoleAttributes", "identityNamedAttributes", "identityNamedAttributesMap", "postureRoleAttributes", "postureNamedAttributes", "postureNamedAttributesMap"], outputs: ["close"] }] }); }
|
|
123
124
|
}
|
|
124
125
|
export { ServicePoliciesPageComponent };
|
|
125
126
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ServicePoliciesPageComponent, decorators: [{
|
|
126
127
|
type: Component,
|
|
127
|
-
args: [{ selector: 'lib-service-policies-page', template: "<div class=\"ziti-page-container ziti-service-policies-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [showAdd]=\"!itemsSelected\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n\n <lib-data-table [tableId]=\"'configurations'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No Service Policies defined, Click the plus to add a Service Policy.'\"\n [filterApplied]=\"filterApplied\"\n [menuItems]=\"svc.menuItems\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n
|
|
128
|
-
}], ctorParameters: function () { return [{ type: i1.ServicePoliciesPageService }, { type: i2.DataTableFilterService }, { type: i3.MatDialog }, { type: i4.TabNameService }, { type: i5.ConsoleEventsService }, { type:
|
|
128
|
+
args: [{ selector: 'lib-service-policies-page', template: "<div class=\"ziti-page-container ziti-service-policies-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [showAdd]=\"!itemsSelected\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n\n <lib-data-table [tableId]=\"'configurations'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No Service Policies defined, Click the plus to add a Service Policy.'\"\n [filterApplied]=\"filterApplied\"\n [menuItems]=\"svc.menuItems\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n<lib-side-modal [(open)]=\"svc.sideModalOpen\" [showClose]=\"false\">\n <lib-service-policy-form\n *ngIf=\"svc.sideModalOpen\"\n [formData]=\"svc.selectedServicePolicy\"\n [serviceRoleAttributes]=\"svc.serviceRoleAttributes\"\n [serviceNamedAttributes]=\"svc.serviceNamedAttributes\"\n [serviceNamedAttributesMap]=\"svc.serviceNamedAttributesMap\"\n [identityRoleAttributes]=\"svc.identityRoleAttributes\"\n [identityNamedAttributes]=\"svc.identityNamedAttributes\"\n [identityNamedAttributesMap]=\"svc.identityNamedAttributesMap\"\n [postureRoleAttributes]=\"svc.postureRoleAttributes\"\n [postureNamedAttributes]=\"svc.postureNamedAttributes\"\n [postureNamedAttributesMap]=\"svc.postureNamedAttributesMap\"\n (close)=\"closeModal($event)\"\n (dataChange)=\"dataChanged($event)\">\n </lib-service-policy-form>\n</lib-side-modal>\n<lib-loading-indicator *ngIf=\"isLoading\" [isLoading]=\"isLoading\"></lib-loading-indicator>\n" }]
|
|
129
|
+
}], ctorParameters: function () { return [{ type: i1.ServicePoliciesPageService }, { type: i2.DataTableFilterService }, { type: i3.MatDialog }, { type: i4.TabNameService }, { type: i5.ConsoleEventsService }, { type: i12.ZacWrapperServiceClass, decorators: [{
|
|
129
130
|
type: Inject,
|
|
130
131
|
args: [ZAC_WRAPPER_SERVICE]
|
|
131
132
|
}] }]; } });
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1wb2xpY2llcy1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9wYWdlcy9zZXJ2aWNlLXBvbGljaWVzL3NlcnZpY2UtcG9saWNpZXMtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvcGFnZXMvc2VydmljZS1wb2xpY2llcy9zZXJ2aWNlLXBvbGljaWVzLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFLekUsT0FBTyxFQUFDLG1CQUFtQixFQUF5QixNQUFNLG1EQUFtRCxDQUFDOzs7Ozs7Ozs7Ozs7O0FBRzlHLE1BS2EsNEJBQTZCLFNBQVEsaUJBQWlCO0lBVWpFLFlBQ29CLEdBQStCLEVBQy9DLGFBQXFDLEVBQ3JDLFVBQXFCLEVBQ2IsUUFBd0IsRUFDaEMsYUFBbUMsRUFDQyxpQkFBeUM7UUFFL0UsS0FBSyxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBUG5DLFFBQUcsR0FBSCxHQUFHLENBQTRCO1FBR3ZDLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBRUksc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF3QjtRQWRqRixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQiwwQkFBcUIsR0FBVSxFQUFFLENBQUM7UUFDbEMsMkJBQXNCLEdBQVUsRUFBRSxDQUFDO1FBQ25DLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBR3hCLFVBQUssR0FBRyx5QkFBeUIsQ0FB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RUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxHQUFHLENBQUMseUJBQXlCLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVM7UUFDbEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFVO1FBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMvQixJQUFHLEtBQUssRUFBRSxPQUFPLEVBQUU7WUFDakIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFLO1FBQ2YsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQUs7UUFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7K0dBekdVLDRCQUE0Qiw2TEFnQjNCLG1CQUFtQjttR0FoQnBCLDRCQUE0Qix3RkM5QnpDLDgrREFzQ0E7O1NEUmEsNEJBQTRCOzRGQUE1Qiw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0UsMkJBQTJCOzswQkFvQmhDLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAgICBDb3B5cmlnaHQgTmV0Rm91bmRyeSBJbmMuXG5cbiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIEluamVjdCwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMaXN0UGFnZUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9saXN0LXBhZ2UtY29tcG9uZW50LmNsYXNzXCI7XG5pbXBvcnQge0RhdGFUYWJsZUZpbHRlclNlcnZpY2V9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9kYXRhLXRhYmxlL2RhdGEtdGFibGUtZmlsdGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQge1RhYk5hbWVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvdGFiLW5hbWUuc2VydmljZVwiO1xuaW1wb3J0IHtDb25zb2xlRXZlbnRzU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2NvbnNvbGUtZXZlbnRzLnNlcnZpY2VcIjtcbmltcG9ydCB7WkFDX1dSQVBQRVJfU0VSVklDRSwgWmFjV3JhcHBlclNlcnZpY2VDbGFzc30gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL3dyYXBwZXJzL3phYy13cmFwcGVyLXNlcnZpY2UuY2xhc3NcIjtcbmltcG9ydCB7U2VydmljZVBvbGljaWVzUGFnZVNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2UtcG9saWNpZXMtcGFnZS5zZXJ2aWNlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zZXJ2aWNlLXBvbGljaWVzLXBhZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VydmljZS1wb2xpY2llcy1wYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VydmljZS1wb2xpY2llcy1wYWdlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VydmljZVBvbGljaWVzUGFnZUNvbXBvbmVudCBleHRlbmRzIExpc3RQYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kgIHtcblxuICBzZXJ2aWNlVHlwZSA9ICcnO1xuICBzZXJ2aWNlUm9sZUF0dHJpYnV0ZXM6IGFueVtdID0gW107XG4gIGlkZW50aXR5Um9sZUF0dHJpYnV0ZXM6IGFueVtdID0gW107XG4gIGZvcm1EYXRhQ2hhbmdlZCA9IGZhbHNlO1xuICBpc0xvYWRpbmc6IGJvb2xlYW47XG4gIHRhYnM6IHsgdXJsOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfVtdO1xuICB0aXRsZSA9ICdNYW5hZ2UgU2VydmljZSBQb2xpY2llcyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwdWJsaWMgb3ZlcnJpZGUgc3ZjOiBTZXJ2aWNlUG9saWNpZXNQYWdlU2VydmljZSxcbiAgICAgIGZpbHRlclNlcnZpY2U6IERhdGFUYWJsZUZpbHRlclNlcnZpY2UsXG4gICAgICBkaWFsb2dGb3JtOiBNYXREaWFsb2csXG4gICAgICBwcml2YXRlIHRhYk5hbWVzOiBUYWJOYW1lU2VydmljZSxcbiAgICAgIGNvbnNvbGVFdmVudHM6IENvbnNvbGVFdmVudHNTZXJ2aWNlLFxuICAgICAgQEluamVjdChaQUNfV1JBUFBFUl9TRVJWSUNFKXByaXZhdGUgemFjV3JhcHBlclNlcnZpY2U6IFphY1dyYXBwZXJTZXJ2aWNlQ2xhc3MsXG4gICkge1xuICAgIHN1cGVyKGZpbHRlclNlcnZpY2UsIHN2YywgY29uc29sZUV2ZW50cywgZGlhbG9nRm9ybSk7XG4gICAgbGV0IHVzZXJMYW5nID0gbmF2aWdhdG9yLmxhbmd1YWdlIHx8ICdlbi11cyc7XG4gICAgdXNlckxhbmcgPSB1c2VyTGFuZy50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLmdldFJvbGVBdHRyaWJ1dGVzKCk7XG4gICAgdGhpcy50YWJzID0gdGhpcy50YWJOYW1lcy5nZXRUYWJzKCdwb2xpY2llcycpO1xuICB9XG5cbiAgaGVhZGVyQWN0aW9uQ2xpY2tlZChhY3Rpb246IHN0cmluZykge1xuICAgIHN3aXRjaChhY3Rpb24pIHtcbiAgICAgIGNhc2UgJ2FkZCc6XG4gICAgICAgIHRoaXMuc3ZjLnNlcnZpY2VUeXBlID0gJyc7XG4gICAgICAgIHRoaXMuc3ZjLm9wZW5VcGRhdGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdlZGl0JzpcbiAgICAgICAgdGhpcy5zdmMub3BlblVwZGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSB0aGlzLnJvd0RhdGEuZmlsdGVyKChyb3cpID0+IHtcbiAgICAgICAgICByZXR1cm4gcm93LnNlbGVjdGVkO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgbGFiZWwgPSBzZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDEgPyAnc2VydmljZXMnIDogJ3NlcnZpY2UnO1xuICAgICAgICB0aGlzLm9wZW5CdWxrRGVsZXRlKHNlbGVjdGVkSXRlbXMsIGxhYmVsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgIH1cbiAgfVxuXG4gIHRhYmxlQWN0aW9uKGV2ZW50OiBhbnkpIHtcbiAgICBzd2l0Y2goZXZlbnQ/LmFjdGlvbikge1xuICAgICAgY2FzZSAndG9nZ2xlQWxsJzpcbiAgICAgIGNhc2UgJ3RvZ2dsZUl0ZW0nOlxuICAgICAgICB0aGlzLml0ZW1Ub2dnbGVkKGV2ZW50Lml0ZW0pXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndXBkYXRlJzpcbiAgICAgICAgdGhpcy5zdmMuc2VydmljZVR5cGUgPSAnYWR2YW5jZWQnO1xuICAgICAgICB0aGlzLnN2Yy5vcGVuVXBkYXRlKGV2ZW50Lml0ZW0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NyZWF0ZSc6XG4gICAgICAgIHRoaXMuc3ZjLm9wZW5VcGRhdGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdkZWxldGUnOlxuICAgICAgICB0aGlzLmRlbGV0ZUl0ZW0oZXZlbnQuaXRlbSlcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdkb3dubG9hZC1hbGwnOlxuICAgICAgICB0aGlzLnN2Yy5kb3dubG9hZEFsbEl0ZW1zKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZG93bmxvYWQtc2VsZWN0ZWQnOlxuICAgICAgICB0aGlzLnN2Yy5kb3dubG9hZEl0ZW1zKHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgZ2V0Um9sZUF0dHJpYnV0ZXMoKSB7XG4gICAgdGhpcy5zdmMuZ2V0U2VydmljZVJvbGVBdHRyaWJ1dGVzKCkudGhlbigocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgIHRoaXMuc2VydmljZVJvbGVBdHRyaWJ1dGVzID0gcmVzdWx0LmRhdGE7XG4gICAgfSk7XG4gICAgdGhpcy5zdmMuZ2V0SWRlbnRpdHlSb2xlQXR0cmlidXRlcygpLnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICB0aGlzLmlkZW50aXR5Um9sZUF0dHJpYnV0ZXMgPSByZXN1bHQuZGF0YTtcbiAgICB9KTtcbiAgICB0aGlzLnN2Yy5nZXRTZXJ2aWNlTmFtZWRBdHRyaWJ1dGVzKCk7XG4gICAgdGhpcy5zdmMuZ2V0SWRlbnRpdHlOYW1lZEF0dHJpYnV0ZXMoKTtcbiAgICB0aGlzLnN2Yy5nZXRQb3N0dXJlTmFtZWRBdHRyaWJ1dGVzKCk7XG4gIH1cblxuICBkZWxldGVJdGVtKGl0ZW06IGFueSkge1xuICAgIHRoaXMub3BlbkJ1bGtEZWxldGUoW2l0ZW1dLCAnc2VydmljZS1wb2xpY2llcycpO1xuICB9XG5cbiAgY2xvc2VNb2RhbChldmVudDogYW55KSB7XG4gICAgdGhpcy5zdmMuc2lkZU1vZGFsT3BlbiA9IGZhbHNlO1xuICAgIGlmKGV2ZW50Py5yZWZyZXNoKSB7XG4gICAgICB0aGlzLnJlZnJlc2hEYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgZGF0YUNoYW5nZWQoZXZlbnQpIHtcbiAgICB0aGlzLmZvcm1EYXRhQ2hhbmdlZCA9IGV2ZW50O1xuICB9XG5cbiAgc2VydmljZVR5cGVTZWxlY3RlZChldmVudCkge1xuICAgIHRoaXMuc3ZjLnNlcnZpY2VUeXBlID0gZXZlbnQ7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cInppdGktcGFnZS1jb250YWluZXIgeml0aS1zZXJ2aWNlLXBvbGljaWVzLWNvbnRhaW5lclwiPlxuICAgIDxsaWItbGlzdC1wYWdlLWhlYWRlciBbdGl0bGVdPVwidGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFic109XCJ0YWJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dBZGRdPVwiIWl0ZW1zU2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoYWN0aW9uQ2xpY2tlZCk9XCJoZWFkZXJBY3Rpb25DbGlja2VkKCRldmVudClcIj48L2xpYi1saXN0LXBhZ2UtaGVhZGVyPlxuXG4gICAgPGxpYi1kYXRhLXRhYmxlIFt0YWJsZUlkXT1cIidjb25maWd1cmF0aW9ucydcIlxuICAgICAgICAgICAgICAgICAgICBbcm93RGF0YV09XCJyb3dEYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgW2NvbHVtbkRlZmluaXRpb25zXT1cImNvbHVtbkRlZnNcIlxuICAgICAgICAgICAgICAgICAgICAoYWN0aW9uUmVxdWVzdGVkKT1cInRhYmxlQWN0aW9uKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbc3RhcnRDb3VudF09XCJzdGFydENvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgW2VuZENvdW50XT1cImVuZENvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgW3RvdGFsQ291bnRdPVwidG90YWxDb3VudFwiXG4gICAgICAgICAgICAgICAgICAgIFtlbXB0eU1zZ109XCInTm8gU2VydmljZSBQb2xpY2llcyBkZWZpbmVkLCBDbGljayB0aGUgcGx1cyB0byBhZGQgYSBTZXJ2aWNlIFBvbGljeS4nXCJcbiAgICAgICAgICAgICAgICAgICAgW2ZpbHRlckFwcGxpZWRdPVwiZmlsdGVyQXBwbGllZFwiXG4gICAgICAgICAgICAgICAgICAgIFttZW51SXRlbXNdPVwic3ZjLm1lbnVJdGVtc1wiXG4gICAgICAgICAgICAgICAgICAgIChncmlkUmVhZHkpPVwiZ3JpZFJlYWR5KCRldmVudClcIlxuICAgID5cbiAgICA8L2xpYi1kYXRhLXRhYmxlPlxuXG4gICAgPGxpYi1zaWRlLW1vZGFsIFsob3BlbildPVwic3ZjLnNpZGVNb2RhbE9wZW5cIiBbc2hvd0Nsb3NlXT1cImZhbHNlXCI+XG4gICAgICAgIDxsaWItc2VydmljZS1wb2xpY3ktZm9ybVxuICAgICAgICAgICAgICAgICpuZ0lmPVwic3ZjLnNpZGVNb2RhbE9wZW5cIlxuICAgICAgICAgICAgICAgIFtmb3JtRGF0YV09XCJzdmMuc2VsZWN0ZWRTZXJ2aWNlUG9saWN5XCJcbiAgICAgICAgICAgICAgICBbc2VydmljZVJvbGVBdHRyaWJ1dGVzXT1cInN2Yy5zZXJ2aWNlUm9sZUF0dHJpYnV0ZXNcIlxuICAgICAgICAgICAgICAgIFtzZXJ2aWNlTmFtZWRBdHRyaWJ1dGVzXT1cInN2Yy5zZXJ2aWNlTmFtZWRBdHRyaWJ1dGVzXCJcbiAgICAgICAgICAgICAgICBbc2VydmljZU5hbWVkQXR0cmlidXRlc01hcF09XCJzdmMuc2VydmljZU5hbWVkQXR0cmlidXRlc01hcFwiXG4gICAgICAgICAgICAgICAgW2lkZW50aXR5Um9sZUF0dHJpYnV0ZXNdPVwic3ZjLmlkZW50aXR5Um9sZUF0dHJpYnV0ZXNcIlxuICAgICAgICAgICAgICAgIFtpZGVudGl0eU5hbWVkQXR0cmlidXRlc109XCJzdmMuaWRlbnRpdHlOYW1lZEF0dHJpYnV0ZXNcIlxuICAgICAgICAgICAgICAgIFtpZGVudGl0eU5hbWVkQXR0cmlidXRlc01hcF09XCJzdmMuaWRlbnRpdHlOYW1lZEF0dHJpYnV0ZXNNYXBcIlxuICAgICAgICAgICAgICAgIFtwb3N0dXJlUm9sZUF0dHJpYnV0ZXNdPVwic3ZjLnBvc3R1cmVSb2xlQXR0cmlidXRlc1wiXG4gICAgICAgICAgICAgICAgW3Bvc3R1cmVOYW1lZEF0dHJpYnV0ZXNdPVwic3ZjLnBvc3R1cmVOYW1lZEF0dHJpYnV0ZXNcIlxuICAgICAgICAgICAgICAgIFtwb3N0dXJlTmFtZWRBdHRyaWJ1dGVzTWFwXT1cInN2Yy5wb3N0dXJlTmFtZWRBdHRyaWJ1dGVzTWFwXCJcbiAgICAgICAgICAgICAgICAoY2xvc2UpPVwiY2xvc2VNb2RhbCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoZGF0YUNoYW5nZSk9XCJkYXRhQ2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgICAgIDwvbGliLXNlcnZpY2UtcG9saWN5LWZvcm0+XG4gICAgPC9saWItc2lkZS1tb2RhbD5cbjwvZGl2PlxuIl19
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1wb2xpY2llcy1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9wYWdlcy9zZXJ2aWNlLXBvbGljaWVzL3NlcnZpY2UtcG9saWNpZXMtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvcGFnZXMvc2VydmljZS1wb2xpY2llcy9zZXJ2aWNlLXBvbGljaWVzLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFLekUsT0FBTyxFQUFDLG1CQUFtQixFQUF5QixNQUFNLG1EQUFtRCxDQUFDOzs7Ozs7Ozs7Ozs7OztBQUc5RyxNQUthLDRCQUE2QixTQUFRLGlCQUFpQjtJQVVqRSxZQUNvQixHQUErQixFQUMvQyxhQUFxQyxFQUNyQyxVQUFxQixFQUNiLFFBQXdCLEVBQ2hDLGFBQW1DLEVBQ0MsaUJBQXlDO1FBRS9FLEtBQUssQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztRQVBuQyxRQUFHLEdBQUgsR0FBRyxDQUE0QjtRQUd2QyxhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUVJLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBd0I7UUFkakYsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsMEJBQXFCLEdBQVUsRUFBRSxDQUFDO1FBQ2xDLDJCQUFzQixHQUFVLEVBQUUsQ0FBQztRQUNuQyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUd4QixVQUFLLEdBQUcseUJBQXlCLENB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LEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsR0FBRyxDQUFDLHlCQUF5QixFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFTO1FBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDL0IsSUFBRyxLQUFLLEVBQUUsT0FBTyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsS0FBSztRQUNmLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFLO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDOytHQXpHVSw0QkFBNEIsNkxBZ0IzQixtQkFBbUI7bUdBaEJwQiw0QkFBNEIsd0ZDOUJ6Qyx1Z0VBc0NBOztTRFJhLDRCQUE0Qjs0RkFBNUIsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLDJCQUEyQjs7MEJBb0JoQyxNQUFNOzJCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gICAgQ29weXJpZ2h0IE5ldEZvdW5kcnkgSW5jLlxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIE9uRGVzdHJveSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TGlzdFBhZ2VDb21wb25lbnR9IGZyb20gXCIuLi8uLi9zaGFyZWQvbGlzdC1wYWdlLWNvbXBvbmVudC5jbGFzc1wiO1xuaW1wb3J0IHtEYXRhVGFibGVGaWx0ZXJTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLWZpbHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQge01hdERpYWxvZ30gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xuaW1wb3J0IHtUYWJOYW1lU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3RhYi1uYW1lLnNlcnZpY2VcIjtcbmltcG9ydCB7Q29uc29sZUV2ZW50c1NlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9jb25zb2xlLWV2ZW50cy5zZXJ2aWNlXCI7XG5pbXBvcnQge1pBQ19XUkFQUEVSX1NFUlZJQ0UsIFphY1dyYXBwZXJTZXJ2aWNlQ2xhc3N9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy93cmFwcGVycy96YWMtd3JhcHBlci1zZXJ2aWNlLmNsYXNzXCI7XG5pbXBvcnQge1NlcnZpY2VQb2xpY2llc1BhZ2VTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlLXBvbGljaWVzLXBhZ2Uuc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItc2VydmljZS1wb2xpY2llcy1wYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlcnZpY2UtcG9saWNpZXMtcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlcnZpY2UtcG9saWNpZXMtcGFnZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNlcnZpY2VQb2xpY2llc1BhZ2VDb21wb25lbnQgZXh0ZW5kcyBMaXN0UGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95ICB7XG5cbiAgc2VydmljZVR5cGUgPSAnJztcbiAgc2VydmljZVJvbGVBdHRyaWJ1dGVzOiBhbnlbXSA9IFtdO1xuICBpZGVudGl0eVJvbGVBdHRyaWJ1dGVzOiBhbnlbXSA9IFtdO1xuICBmb3JtRGF0YUNoYW5nZWQgPSBmYWxzZTtcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICB0YWJzOiB7IHVybDogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH1bXTtcbiAgdGl0bGUgPSAnTWFuYWdlIFNlcnZpY2UgUG9saWNpZXMnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHVibGljIG92ZXJyaWRlIHN2YzogU2VydmljZVBvbGljaWVzUGFnZVNlcnZpY2UsXG4gICAgICBmaWx0ZXJTZXJ2aWNlOiBEYXRhVGFibGVGaWx0ZXJTZXJ2aWNlLFxuICAgICAgZGlhbG9nRm9ybTogTWF0RGlhbG9nLFxuICAgICAgcHJpdmF0ZSB0YWJOYW1lczogVGFiTmFtZVNlcnZpY2UsXG4gICAgICBjb25zb2xlRXZlbnRzOiBDb25zb2xlRXZlbnRzU2VydmljZSxcbiAgICAgIEBJbmplY3QoWkFDX1dSQVBQRVJfU0VSVklDRSlwcml2YXRlIHphY1dyYXBwZXJTZXJ2aWNlOiBaYWNXcmFwcGVyU2VydmljZUNsYXNzLFxuICApIHtcbiAgICBzdXBlcihmaWx0ZXJTZXJ2aWNlLCBzdmMsIGNvbnNvbGVFdmVudHMsIGRpYWxvZ0Zvcm0pO1xuICAgIGxldCB1c2VyTGFuZyA9IG5hdmlnYXRvci5sYW5ndWFnZSB8fCAnZW4tdXMnO1xuICAgIHVzZXJMYW5nID0gdXNlckxhbmcudG9Mb3dlckNhc2UoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5nZXRSb2xlQXR0cmlidXRlcygpO1xuICAgIHRoaXMudGFicyA9IHRoaXMudGFiTmFtZXMuZ2V0VGFicygncG9saWNpZXMnKTtcbiAgfVxuXG4gIGhlYWRlckFjdGlvbkNsaWNrZWQoYWN0aW9uOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2goYWN0aW9uKSB7XG4gICAgICBjYXNlICdhZGQnOlxuICAgICAgICB0aGlzLnN2Yy5zZXJ2aWNlVHlwZSA9ICcnO1xuICAgICAgICB0aGlzLnN2Yy5vcGVuVXBkYXRlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZWRpdCc6XG4gICAgICAgIHRoaXMuc3ZjLm9wZW5VcGRhdGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdkZWxldGUnOlxuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gdGhpcy5yb3dEYXRhLmZpbHRlcigocm93KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJvdy5zZWxlY3RlZDtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAxID8gJ3NlcnZpY2VzJyA6ICdzZXJ2aWNlJztcbiAgICAgICAgdGhpcy5vcGVuQnVsa0RlbGV0ZShzZWxlY3RlZEl0ZW1zLCBsYWJlbCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICB9XG4gIH1cblxuICB0YWJsZUFjdGlvbihldmVudDogYW55KSB7XG4gICAgc3dpdGNoKGV2ZW50Py5hY3Rpb24pIHtcbiAgICAgIGNhc2UgJ3RvZ2dsZUFsbCc6XG4gICAgICBjYXNlICd0b2dnbGVJdGVtJzpcbiAgICAgICAgdGhpcy5pdGVtVG9nZ2xlZChldmVudC5pdGVtKVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3VwZGF0ZSc6XG4gICAgICAgIHRoaXMuc3ZjLnNlcnZpY2VUeXBlID0gJ2FkdmFuY2VkJztcbiAgICAgICAgdGhpcy5zdmMub3BlblVwZGF0ZShldmVudC5pdGVtKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjcmVhdGUnOlxuICAgICAgICB0aGlzLnN2Yy5vcGVuVXBkYXRlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgICAgdGhpcy5kZWxldGVJdGVtKGV2ZW50Lml0ZW0pXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZG93bmxvYWQtYWxsJzpcbiAgICAgICAgdGhpcy5zdmMuZG93bmxvYWRBbGxJdGVtcygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Rvd25sb2FkLXNlbGVjdGVkJzpcbiAgICAgICAgdGhpcy5zdmMuZG93bmxvYWRJdGVtcyh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGdldFJvbGVBdHRyaWJ1dGVzKCkge1xuICAgIHRoaXMuc3ZjLmdldFNlcnZpY2VSb2xlQXR0cmlidXRlcygpLnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICB0aGlzLnNlcnZpY2VSb2xlQXR0cmlidXRlcyA9IHJlc3VsdC5kYXRhO1xuICAgIH0pO1xuICAgIHRoaXMuc3ZjLmdldElkZW50aXR5Um9sZUF0dHJpYnV0ZXMoKS50aGVuKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgdGhpcy5pZGVudGl0eVJvbGVBdHRyaWJ1dGVzID0gcmVzdWx0LmRhdGE7XG4gICAgfSk7XG4gICAgdGhpcy5zdmMuZ2V0U2VydmljZU5hbWVkQXR0cmlidXRlcygpO1xuICAgIHRoaXMuc3ZjLmdldElkZW50aXR5TmFtZWRBdHRyaWJ1dGVzKCk7XG4gICAgdGhpcy5zdmMuZ2V0UG9zdHVyZU5hbWVkQXR0cmlidXRlcygpO1xuICB9XG5cbiAgZGVsZXRlSXRlbShpdGVtOiBhbnkpIHtcbiAgICB0aGlzLm9wZW5CdWxrRGVsZXRlKFtpdGVtXSwgJ3NlcnZpY2UtcG9saWNpZXMnKTtcbiAgfVxuXG4gIGNsb3NlTW9kYWwoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc3ZjLnNpZGVNb2RhbE9wZW4gPSBmYWxzZTtcbiAgICBpZihldmVudD8ucmVmcmVzaCkge1xuICAgICAgdGhpcy5yZWZyZXNoRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIGRhdGFDaGFuZ2VkKGV2ZW50KSB7XG4gICAgdGhpcy5mb3JtRGF0YUNoYW5nZWQgPSBldmVudDtcbiAgfVxuXG4gIHNlcnZpY2VUeXBlU2VsZWN0ZWQoZXZlbnQpIHtcbiAgICB0aGlzLnN2Yy5zZXJ2aWNlVHlwZSA9IGV2ZW50O1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJ6aXRpLXBhZ2UtY29udGFpbmVyIHppdGktc2VydmljZS1wb2xpY2llcy1jb250YWluZXJcIj5cbiAgICA8bGliLWxpc3QtcGFnZS1oZWFkZXIgW3RpdGxlXT1cInRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhYnNdPVwidGFic1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93QWRkXT1cIiFpdGVtc1NlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGFjdGlvbkNsaWNrZWQpPVwiaGVhZGVyQWN0aW9uQ2xpY2tlZCgkZXZlbnQpXCI+PC9saWItbGlzdC1wYWdlLWhlYWRlcj5cblxuICAgIDxsaWItZGF0YS10YWJsZSBbdGFibGVJZF09XCInY29uZmlndXJhdGlvbnMnXCJcbiAgICAgICAgICAgICAgICAgICAgW3Jvd0RhdGFdPVwicm93RGF0YVwiXG4gICAgICAgICAgICAgICAgICAgIFtjb2x1bW5EZWZpbml0aW9uc109XCJjb2x1bW5EZWZzXCJcbiAgICAgICAgICAgICAgICAgICAgKGFjdGlvblJlcXVlc3RlZCk9XCJ0YWJsZUFjdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0YXJ0Q291bnRdPVwic3RhcnRDb3VudFwiXG4gICAgICAgICAgICAgICAgICAgIFtlbmRDb3VudF09XCJlbmRDb3VudFwiXG4gICAgICAgICAgICAgICAgICAgIFt0b3RhbENvdW50XT1cInRvdGFsQ291bnRcIlxuICAgICAgICAgICAgICAgICAgICBbZW1wdHlNc2ddPVwiJ05vIFNlcnZpY2UgUG9saWNpZXMgZGVmaW5lZCwgQ2xpY2sgdGhlIHBsdXMgdG8gYWRkIGEgU2VydmljZSBQb2xpY3kuJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJBcHBsaWVkXT1cImZpbHRlckFwcGxpZWRcIlxuICAgICAgICAgICAgICAgICAgICBbbWVudUl0ZW1zXT1cInN2Yy5tZW51SXRlbXNcIlxuICAgICAgICAgICAgICAgICAgICAoZ3JpZFJlYWR5KT1cImdyaWRSZWFkeSgkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9saWItZGF0YS10YWJsZT5cbjwvZGl2PlxuPGxpYi1zaWRlLW1vZGFsIFsob3BlbildPVwic3ZjLnNpZGVNb2RhbE9wZW5cIiBbc2hvd0Nsb3NlXT1cImZhbHNlXCI+XG4gICAgPGxpYi1zZXJ2aWNlLXBvbGljeS1mb3JtXG4gICAgICAgICAgICAqbmdJZj1cInN2Yy5zaWRlTW9kYWxPcGVuXCJcbiAgICAgICAgICAgIFtmb3JtRGF0YV09XCJzdmMuc2VsZWN0ZWRTZXJ2aWNlUG9saWN5XCJcbiAgICAgICAgICAgIFtzZXJ2aWNlUm9sZUF0dHJpYnV0ZXNdPVwic3ZjLnNlcnZpY2VSb2xlQXR0cmlidXRlc1wiXG4gICAgICAgICAgICBbc2VydmljZU5hbWVkQXR0cmlidXRlc109XCJzdmMuc2VydmljZU5hbWVkQXR0cmlidXRlc1wiXG4gICAgICAgICAgICBbc2VydmljZU5hbWVkQXR0cmlidXRlc01hcF09XCJzdmMuc2VydmljZU5hbWVkQXR0cmlidXRlc01hcFwiXG4gICAgICAgICAgICBbaWRlbnRpdHlSb2xlQXR0cmlidXRlc109XCJzdmMuaWRlbnRpdHlSb2xlQXR0cmlidXRlc1wiXG4gICAgICAgICAgICBbaWRlbnRpdHlOYW1lZEF0dHJpYnV0ZXNdPVwic3ZjLmlkZW50aXR5TmFtZWRBdHRyaWJ1dGVzXCJcbiAgICAgICAgICAgIFtpZGVudGl0eU5hbWVkQXR0cmlidXRlc01hcF09XCJzdmMuaWRlbnRpdHlOYW1lZEF0dHJpYnV0ZXNNYXBcIlxuICAgICAgICAgICAgW3Bvc3R1cmVSb2xlQXR0cmlidXRlc109XCJzdmMucG9zdHVyZVJvbGVBdHRyaWJ1dGVzXCJcbiAgICAgICAgICAgIFtwb3N0dXJlTmFtZWRBdHRyaWJ1dGVzXT1cInN2Yy5wb3N0dXJlTmFtZWRBdHRyaWJ1dGVzXCJcbiAgICAgICAgICAgIFtwb3N0dXJlTmFtZWRBdHRyaWJ1dGVzTWFwXT1cInN2Yy5wb3N0dXJlTmFtZWRBdHRyaWJ1dGVzTWFwXCJcbiAgICAgICAgICAgIChjbG9zZSk9XCJjbG9zZU1vZGFsKCRldmVudClcIlxuICAgICAgICAgICAgKGRhdGFDaGFuZ2UpPVwiZGF0YUNoYW5nZWQoJGV2ZW50KVwiPlxuICAgIDwvbGliLXNlcnZpY2UtcG9saWN5LWZvcm0+XG48L2xpYi1zaWRlLW1vZGFsPlxuPGxpYi1sb2FkaW5nLWluZGljYXRvciAqbmdJZj1cImlzTG9hZGluZ1wiIFtpc0xvYWRpbmddPVwiaXNMb2FkaW5nXCI+PC9saWItbG9hZGluZy1pbmRpY2F0b3I+XG4iXX0=
|