@po-ui/ng-components 17.18.1 → 17.20.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/esm2022/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal-base.component.mjs +2 -2
- package/esm2022/lib/components/po-menu/po-menu-base.component.mjs +25 -2
- package/esm2022/lib/components/po-menu/po-menu.component.mjs +5 -3
- package/esm2022/lib/components/po-table/po-table.component.mjs +2 -2
- package/fesm2022/po-ui-ng-components.mjs +30 -5
- package/fesm2022/po-ui-ng-components.mjs.map +1 -1
- package/lib/components/po-menu/po-menu-base.component.d.ts +16 -1
- package/package.json +4 -4
- package/po-ui-ng-components-17.20.0.tgz +0 -0
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-update/v14/index.js +1 -1
- package/schematics/ng-update/v15/index.js +1 -1
- package/schematics/ng-update/v16/index.js +1 -1
- package/schematics/ng-update/v17/index.js +1 -1
- package/schematics/ng-update/v2/index.js +1 -1
- package/schematics/ng-update/v3/index.js +1 -1
- package/schematics/ng-update/v4/index.js +1 -1
- package/schematics/ng-update/v5/index.js +1 -1
- package/schematics/ng-update/v6/index.js +1 -1
- package/po-ui-ng-components-17.18.1.tgz +0 -0
package/esm2022/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal-base.component.mjs
CHANGED
|
@@ -344,7 +344,7 @@ export class PoLookupModalBaseComponent {
|
|
|
344
344
|
this.multiple ? (this.selecteds = [{ value: this.selectedItems }]) : (this.selecteds = [this.selectedItems]);
|
|
345
345
|
return;
|
|
346
346
|
}
|
|
347
|
-
if (this.selectedItems && this.selectedItems.length) {
|
|
347
|
+
if (this.selecteds.length === 0 && this.selectedItems && this.selectedItems.length) {
|
|
348
348
|
this.selecteds = [...this.selectedItems];
|
|
349
349
|
}
|
|
350
350
|
}
|
|
@@ -531,4 +531,4 @@ export class PoLookupModalBaseComponent {
|
|
|
531
531
|
type: Input,
|
|
532
532
|
args: ['p-title']
|
|
533
533
|
}] }); })();
|
|
534
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbG9va3VwLW1vZGFsLWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWZpZWxkL3BvLWxvb2t1cC9wby1sb29rdXAtbW9kYWwvcG8tbG9va3VwLW1vZGFsLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUE0QixVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUV4RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFaEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFVbkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7OztBQUUxRSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRztJQUNyQyxFQUFFLEVBQW9CO1FBQ3BCLHVCQUF1QixFQUFFLFFBQVE7UUFDakMseUJBQXlCLEVBQUUsUUFBUTtRQUNuQyxnQkFBZ0IsRUFBRSxRQUFRO1FBQzFCLFVBQVUsRUFBRSxpQkFBaUI7UUFDN0IsbUJBQW1CLEVBQUUsc0JBQXNCLENBQUMsRUFBRSxDQUFDLFNBQVM7UUFDeEQsZ0JB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QUUsSUFBSSxFQUFFO1lBYWhCLGVBQWU7a0JBQTNDLEtBQUs7bUJBQUMsb0JBQW9CO1lBTVAsT0FBTztrQkFBMUIsS0FBSzttQkFBQyxXQUFXO1lBR0EsS0FBSztrQkFBdEIsS0FBSzttQkFBQyxTQUFTO1lBR1csYUFBYTtrQkFBdkMsS0FBSzttQkFBQyxrQkFBa0I7WUFHQyxZQUFZO2tCQUFyQyxLQUFLO21CQUFDLGlCQUFpQjtZQUl4QixrQkFBa0I7a0JBRGpCLEtBQUs7bUJBQUMsRUFBRSxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO1lBSUgsY0FBYztrQkFBakYsS0FBSzttQkFBQyxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7WUFHTCxRQUFRO2tCQUFwRSxLQUFLO21CQUFDLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7WUFHakMsS0FBSztrQkFBOUIsTUFBTTttQkFBQyxnQkFBZ0I7WUFHRyxhQUFhO2tCQUF2QyxLQUFLO21CQUFDLGtCQUFrQjtZQUdELFVBQVU7a0JBQWpDLEtBQUs7bUJBQUMsZUFBZTtZQVNFLFVBQVU7a0JBQWpDLEtBQUs7bUJBQUMsZUFBZTtZQU1GLE9BQU87a0JBQTFCLEtBQUs7bUJBQUMsV0FBVztZQU80QyxRQUFRO2tCQUFyRSxLQUFLO21CQUFDLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7WUFXeEIsb0JBQW9CO2tCQUF2RCxNQUFNO21CQUFDLDBCQUEwQjtZQVdFLG9CQUFvQjtrQkFBdkQsTUFBTTttQkFBQywwQkFBMEI7WUEyRFQsUUFBUTtrQkFBaEMsS0FBSzttQkFBQyxZQUFZO1lBdUJHLEtBQUs7a0JBQTFCLEtBQUs7bUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFBvTW9kYWxBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL3BvLW1vZGFsJztcbmltcG9ydCB7IFBvTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL3BvLW1vZGFsL3BvLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBwb0xvY2FsZURlZmF1bHQgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9wby1sYW5ndWFnZS9wby1sYW5ndWFnZS5jb25zdGFudCc7XG5pbXBvcnQgeyBQb0xhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3BvLWxhbmd1YWdlL3BvLWxhbmd1YWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyLCBjb252ZXJ0VG9Cb29sZWFuLCBpc1R5cGVvZiB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzL3V0aWwnO1xuaW1wb3J0IHsgUG9UYWJsZUNvbHVtblNvcnRUeXBlLCBQb1RhYmxlQ29sdW1uU3BhY2luZyB9IGZyb20gJy4uLy4uLy4uL3BvLXRhYmxlJztcbmltcG9ydCB7IFBvVGFibGVDb2x1bW5Tb3J0IH0gZnJvbSAnLi4vLi4vLi4vcG8tdGFibGUvaW50ZXJmYWNlcy9wby10YWJsZS1jb2x1bW4tc29ydC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgcG9UYWJsZUxpdGVyYWxzRGVmYXVsdCB9IGZyb20gJy4uLy4uLy4uL3BvLXRhYmxlL3BvLXRhYmxlLWJhc2UuY29tcG9uZW50JztcblxuaW1wb3J0IHsgUG9Mb29rdXBBZHZhbmNlZEZpbHRlciB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG8tbG9va3VwLWFkdmFuY2VkLWZpbHRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9Mb29rdXBDb2x1bW4gfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvLWxvb2t1cC1jb2x1bW4uaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvTG9va3VwRmlsdGVyIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wby1sb29rdXAtZmlsdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0xvb2t1cEZpbHRlcmVkSXRlbXNQYXJhbXMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvLWxvb2t1cC1maWx0ZXJlZC1pdGVtcy1wYXJhbXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvTG9va3VwTGl0ZXJhbHMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvLWxvb2t1cC1saXRlcmFscy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9Mb29rdXBSZXNwb25zZUFwaSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG8tbG9va3VwLXJlc3BvbnNlLWFwaS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9EaXNjbGFpbWVyR3JvdXAgfSBmcm9tICcuLy4uLy4uLy4uL3BvLWRpc2NsYWltZXItZ3JvdXAvcG8tZGlzY2xhaW1lci1ncm91cC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9EaXNjbGFpbWVyIH0gZnJvbSAnLi8uLi8uLi8uLi9wby1kaXNjbGFpbWVyL3BvLWRpc2NsYWltZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvVGFibGVDb21wb25lbnQgfSBmcm9tICcuLy4uLy4uLy4uL3BvLXRhYmxlL3BvLXRhYmxlLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjb25zdCBwb0xvb2t1cExpdGVyYWxzRGVmYXVsdCA9IHtcbiAgZW46IDxQb0xvb2t1cExpdGVyYWxzPntcbiAgICBtb2RhbFByaW1hcnlBY3Rpb25MYWJlbDogJ1NlbGVjdCcsXG4gICAgbW9kYWxTZWNvbmRhcnlBY3Rpb25MYWJlbDogJ0NhbmNlbCcsXG4gICAgbW9kYWxQbGFjZWhvbGRlcjogJ1NlYXJjaCcsXG4gICAgbW9kYWxUaXRsZTogJ1NlbGVjdCBhIHJlY29yZCcsXG4gICAgbW9kYWxUYWJsZU5vQ29sdW1uczogcG9UYWJsZUxpdGVyYWxzRGVmYXVsdC5lbi5ub0NvbHVtbnMsXG4gICAgbW9kYWxUYWJsZU5vRGF0YTogcG9UYWJsZUxpdGVyYWxzRGVmYXVsdC5lbi5ub0RhdGEsXG4gICAgbW9kYWxUYWJsZUxvYWRpbmdEYXRhOiBwb1RhYmxlTGl0ZXJhbHNEZWZhdWx0LmVuLmxvYWRpbmdEYXRhLFxuICAgIG1vZGFsVGFibGVMb2FkTW9yZURhdGE6IHBvVGFibGVMaXRlcmFsc0RlZmF1bHQuZW4ubG9hZE1vcmVEYXRhLFxuICAgIG1vZGFsQWR2YW5jZWRTZWFyY2g6ICdBZHZhbmNlZCBzZWFyY2gnLFxuICAgIG1vZGFsQWR2YW5jZWRTZWFyY2hUaXRsZTogJ0FkdmFuY2VkIHNlYXJjaCcsXG4gICAgbW9kYWxBZHZhbmNlZFNlYXJjaFByaW1hcnlBY3Rpb25MYWJlbDogJ0ZpbHRlcicsXG4gICAgbW9kYWxBZHZhbmNlZFNlYXJjaFNlY29uZGFyeUFjdGlvbkxhYmVsOiAnUmV0dXJuJyxcbiAgICBtb2RhbERpc2NsYWltZXJHcm91cFRpdGxlOiAnUHJlc2VudGluZyByZXN1bHRzIGZpbHRlcmVkIGJ5OidcbiAgfSxcbiAgZXM6IDxQb0xvb2t1cExpdGVyYWxzPntcbiAgICBtb2RhbFByaW1hcnlBY3Rpb25MYWJlbDogJ1NlbGVjY2lvbmFyJyxcbiAgICBtb2RhbFNlY29uZGFyeUFjdGlvbkxhYmVsOiAnQ2FuY2VsYXInLFxuICAgIG1vZGFsUGxhY2Vob2xkZXI6ICdCdXNjYXInLFxuICAgIG1vZGFsVGl0bGU6ICdTZWxlY2Npb25lIHVuIHJlZ2lzdHJvJyxcbiAgICBtb2RhbFRhYmxlTm9Db2x1bW5zOiBwb1RhYmxlTGl0ZXJhbHNEZWZhdWx0LmVzLm5vQ29sdW1ucyxcbiAgICBtb2RhbFRhYmxlTm9EYXRhOiBwb1RhYmxlTGl0ZXJhbHNEZWZhdWx0LmVzLm5vRGF0YSxcbiAgICBtb2RhbFRhYmxlTG9hZGluZ0RhdGE6IHBvVGFibGVMaXRlcmFsc0RlZmF1bHQuZXMubG9hZGluZ0RhdGEsXG4gICAgbW9kYWxUYWJsZUxvYWRNb3JlRGF0YTogcG9UYWJsZUxpdGVyYWxzRGVmYXVsdC5lcy5sb2FkTW9yZURhdGEsXG4gICAgbW9kYWxBZHZhbmNlZFNlYXJjaDogJ0LDunNxdWVkYSBBdmFuemFkYScsXG4gICAgbW9kYWxBZHZhbmNlZFNlYXJjaFRpdGxlOiAnQsO6c3F1ZWRhIEF2YW56YWRhJyxcbiAgICBtb2RhbEFkdmFuY2VkU2VhcmNoUHJpbWFyeUFjdGlvbkxhYmVsOiAnRmlsdHJhcicsXG4gICAgbW9kYWxBZHZhbmNlZFNlYXJjaFNlY29uZGFyeUFjdGlvbkxhYmVsOiAnVnVlbHZlJyxcbiAgICBtb2RhbERpc2NsYWltZXJHcm91cFRpdGxlOiAnUHJlc2VudGFyIHJlc3VsdGFkb3MgZmlsdHJhZG9zIHBvcjonXG4gIH0sXG4gIHB0OiA8UG9Mb29rdXBMaXRlcmFscz57XG4gICAgbW9kYWxQcmltYXJ5QWN0aW9uTGFiZWw6ICdTZWxlY2lvbmFyJyxcbiAgICBtb2RhbFNlY29uZGFyeUFjdGlvbkxhYmVsOiAnQ2FuY2VsYXInLFxuICAgIG1vZGFsUGxhY2Vob2xkZXI6ICdQZXNxdWlzYXInLFxuICAgIG1vZGFsVGl0bGU6ICdTZWxlY2lvbmUgdW0gcmVnaXN0cm8nLFxuICAgIG1vZGFsVGFibGVOb0NvbHVtbnM6IHBvVGFibGVMaXRlcmFsc0RlZmF1bHQucHQubm9Db2x1bW5zLFxuICAgIG1vZGFsVGFibGVOb0RhdGE6IHBvVGFibGVMaXRlcmFsc0RlZmF1bHQucHQubm9EYXRhLFxuICAgIG1vZGFsVGFibGVMb2FkaW5nRGF0YTogcG9UYWJsZUxpdGVyYWxzRGVmYXVsdC5wdC5sb2FkaW5nRGF0YSxcbiAgICBtb2RhbFRhYmxlTG9hZE1vcmVEYXRhOiBwb1RhYmxlTGl0ZXJhbHNEZWZhdWx0LnB0LmxvYWRNb3JlRGF0YSxcbiAgICBtb2RhbEFkdmFuY2VkU2VhcmNoOiAnQnVzY2EgYXZhbsOnYWRhJyxcbiAgICBtb2RhbEFkdmFuY2VkU2VhcmNoVGl0bGU6ICdCdXNjYSBBdmFuw6dhZGEnLFxuICAgIG1vZGFsQWR2YW5jZWRTZWFyY2hQcmltYXJ5QWN0aW9uTGFiZWw6ICdGaWx0cmFyJyxcbiAgICBtb2RhbEFkdmFuY2VkU2VhcmNoU2Vjb25kYXJ5QWN0aW9uTGFiZWw6ICdWb2x0YXInLFxuICAgIG1vZGFsRGlzY2xhaW1lckdyb3VwVGl0bGU6ICdBcHJlc2VudGFuZG8gcmVzdWx0YWRvcyBmaWx0cmFkb3MgcG9yOidcbiAgfSxcbiAgcnU6IDxQb0xvb2t1cExpdGVyYWxzPntcbiAgICBtb2RhbFByaW1hcnlBY3Rpb25MYWJlbDogJ9CS0YvQsdGA0LDRgtGMJyxcbiAgICBtb2RhbFNlY29uZGFyeUFjdGlvbkxhYmVsOiAn0J7RgtC80LXQvdC40YLRjCcsXG4gICAgbW9kYWxQbGFjZWhvbGRlcjogJ9Cf0L7QuNGB0LonLFxuICAgIG1vZGFsVGl0bGU6ICfQktGL0LHQtdGA0LjRgtC1INC30LDQv9C40YHRjCcsXG4gICAgbW9kYWxUYWJsZU5vQ29sdW1uczogcG9UYWJsZUxpdGVyYWxzRGVmYXVsdC5ydS5ub0NvbHVtbnMsXG4gICAgbW9kYWxUYWJsZU5vRGF0YTogcG9UYWJsZUxpdGVyYWxzRGVmYXVsdC5ydS5ub0RhdGEsXG4gICAgbW9kYWxUYWJsZUxvYWRpbmdEYXRhOiBwb1RhYmxlTGl0ZXJhbHNEZWZhdWx0LnJ1LmxvYWRpbmdEYXRhLFxuICAgIG1vZGFsVGFibGVMb2FkTW9yZURhdGE6IHBvVGFibGVMaXRlcmFsc0RlZmF1bHQucnUubG9hZE1vcmVEYXRhLFxuICAgIG1vZGFsQWR2YW5jZWRTZWFyY2g6ICfQoNCw0YHRiNC40YDQtdC90L3Ri9C5INC/0L7QuNGB0LonLFxuICAgIG1vZGFsQWR2YW5jZWRTZWFyY2hUaXRsZTogJ9Cg0LDRgdGI0LjRgNC10L3QvdGL0Lkg0L/QvtC40YHQuicsXG4gICAgbW9kYWxBZHZhbmNlZFNlYXJjaFByaW1hcnlBY3Rpb25MYWJlbDogJ9Ck0LjQu9GM0YLRgCcsXG4gICAgbW9kYWxBZHZhbmNlZFNlYXJjaFNlY29uZGFyeUFjdGlvbkxhYmVsOiAn0J3QsNC30LDQtCcsXG4gICAgbW9kYWxEaXNjbGFpbWVyR3JvdXBUaXRsZTogJ9Cf0YDQtdC00YHRgtCw0LLQu9C10L3QvdGL0LUg0YDQtdC30YPQu9GM0YLQsNGC0Ysg0L7RgtGE0LjQu9GM0YLRgNC+0LLQsNC90Ysg0L/QvjonXG4gIH1cbn07XG5cbi8qKlxuICogQGRvY3NQcml2YXRlXG4gKlxuICogQ2xhc3NlIGJhc2UgZG8gY29tcG9uZW50ZSBQbyBMb29rdXAgTW9kYWwuXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBvTG9va3VwTW9kYWxCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICBAVmlld0NoaWxkKFBvTW9kYWxDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIHBvTW9kYWw6IFBvTW9kYWxDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoUG9UYWJsZUNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSkgcG9UYWJsZTogUG9UYWJsZUNvbXBvbmVudDtcblxuICAvKipcbiAgICogT2JqZXRvIGNvbSBvcyBjYW1wb3MgcXVlIHNlcsOjbyBjcmlhZG9zIG5vIGJ1c2NhIGF2YW7Dp2FkYS5cbiAgICpcbiAgICogPiBDYXNvIG7Do28gc2VqYSBwYXNzYWRvIHVtIG9iamV0byBvdSBlbnTDo28gZWxlIGVzdGVqYSBlbSBicmFuY28gbyBsaW5rIGRlIGJ1c2NhIGF2YW7Dp2FkYSBmaWNhcsOhIGVzY29uZGlkby5cbiAgICpcbiAgICogRXhlbXBsbyBkZSBVUkwgY29tIGJ1c2NhIGF2YW7Dp2FkYTogaHR0cDovL2xvY2FsaG9zdDozMDAwL3YxL2hlcm9lcz9maWx0ZXI9JnBhZ2U9MSZwYWdlU2l6ZT0xMGAmbmFtZT1Ub255JTIwU3Rhcmsmbmlja25hbWU9SG9tZW0lMjBkZSUyMEZlcnJvJmVtYWlsPWlybm1hbkBtYXJ2ZWwuY29tYFxuICAgKlxuICAgKiBDYXNvIGFsZ3VtIHBhcsOibWV0cm8gc2VqYSB1bWEgbGlzdGEsIGEgY29uY2F0ZW5hw6fDo28gw6kgZmVpdGEgdXRpbGl6YW5kbyB2aXJndWxhLlxuICAgKiBFeGVtcGxvOiBodHRwOi8vbG9jYWxob3N0OjMwMDAvdjEvaGVyb2VzP2ZpbHRlcj0mcGFnZT0xJnBhZ2VTaXplPTEwYCZuYW1lPVRvbnklMjBTdGFyayxQZXRlciUyMFBhcmtlcixHb2hhbmBcbiAgICpcbiAgICovXG4gIEBJbnB1dCgncC1hZHZhbmNlZC1maWx0ZXJzJykgYWR2YW5jZWRGaWx0ZXJzOiBBcnJheTxQb0xvb2t1cEFkdmFuY2VkRmlsdGVyPjtcblxuICAvKipcbiAgICogTGlzdGEgZGFzIGNvbHVuYXMgZGEgdGFiZWxhLlxuICAgKiBFc3NhIHByb3ByaWVkYWRlIGRldmUgcmVjZWJlciB1bSBhcnJheSBkZSBvYmpldG9zIHF1ZSBpbXBsZW1lbnRhbSBhIGludGVyZmFjZSBQb0xvb2t1cENvbHVtbi5cbiAgICovXG4gIEBJbnB1dCgncC1jb2x1bW5zJykgY29sdW1uczogQXJyYXk8UG9Mb29rdXBDb2x1bW4+O1xuXG4gIC8qKiBMaXN0YSBkZSBpdGVucyBkYSB0YWJlbGEuICovXG4gIEBJbnB1dCgncC1pdGVtcycpIGl0ZW1zOiBBcnJheTxhbnk+O1xuXG4gIC8qKiBDbGFzc2UgZGUgc2VydmnDp28gY29tIGEgaW1wbGVtZW50YcOnw6NvIGRvIGNsaWVudGUuICovXG4gIEBJbnB1dCgncC1maWx0ZXItc2VydmljZScpIGZpbHRlclNlcnZpY2U6IFBvTG9va3VwRmlsdGVyO1xuXG4gIC8qKiBDbGFzc2UgZGUgc2VydmnDp28gY29tIGEgaW1wbGVtZW50YcOnw6NvIGRvIGNsaWVudGUuICovXG4gIEBJbnB1dCgncC1maWx0ZXItcGFyYW1zJykgZmlsdGVyUGFyYW1zOiBhbnk7XG5cbiAgLyoqIFNlIHZlcmRhZGVpcm8sIGVzY29uZGUgbyBnZXJlbmNpYWRvciBkZSB0YXJlZmFzLCByZXNwb25zw6F2ZWwgcGVsYSBkZWZpbmnDp8OjbyBkZSBxdWFpcyBjb2x1bmFzIHNlcsOjbyBleGliaWRhcy4gKi9cbiAgQElucHV0KHsgYWxpYXM6ICdwLWhpZGUtY29sdW1ucy1tYW5hZ2VyJywgdHJhbnNmb3JtOiBjb252ZXJ0VG9Cb29sZWFuIH0pXG4gIGhpZGVDb2x1bW5zTWFuYWdlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBTZSB2ZXJkYWRlaXJvLCBhdGl2YSBhIGZ1bmNpb25hbGlkYWRlIGRlIHNjcm9sbCBpbmZpbml0byBwYXJhIGEgdGFiZWxhIGV4aWJpZGEgbm8gcmV0b3JubyBkYSBjb25zdWx0YS4gKi9cbiAgQElucHV0KHsgYWxpYXM6ICdwLWluZmluaXRlLXNjcm9sbCcsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KSBpbmZpbml0ZVNjcm9sbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBTZSB2ZXJkYWRlaXJvLCBhdGl2YSBhIGZ1bmNpb25hbGlkYWRlIGRlIG11bHRpcGxhIHNlbGXDp8Ojby4gKi9cbiAgQElucHV0KHsgYWxpYXM6ICdwLW11bHRpcGxlJywgdHJhbnNmb3JtOiBjb252ZXJ0VG9Cb29sZWFuIH0pIG11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIEV2ZW50byB1dGlsaXphZG8gYW8gc2VsZWNpb25hciB1bSByZWdpc3RybyBkYSB0YWJlbGEuICovXG4gIEBPdXRwdXQoJ3AtY2hhbmdlLW1vZGVsJykgbW9kZWw6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqIENsYXNzZSBkZSBzZXJ2acOnbyBjb20gaXRlbXMgc2VsZWNpb25hZG9zICovXG4gIEBJbnB1dCgncC1zZWxlY3RlZC1pdGVtcycpIHNlbGVjdGVkSXRlbXM6IGFueTtcblxuICAvKiogSW5kaWNhIGEgY29sdW5hIHF1ZSBzZXLDoSB1dGlsaXphZGEgY29tbyBkZXNjcmnDp8OjbyBkbyBjYW1wbyBlIGNvbW8gZmlsdHJvIGRlbnRybyBkYSBqYW5lbGEuICovXG4gIEBJbnB1dCgncC1maWVsZC1sYWJlbCcpIGZpZWxkTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEluZGljYSBhIGNvbHVuYSBxdWUgc2Vyw6EgdXRpbGl6YWRhIGNvbW8gdmFsb3IgZG8gY2FtcG8uXG4gICAqXG4gICAqID4gQXRlbsOnw6NvOiBDYXNvIG7Do28gc2VqYSBwYXNzYWRhIG91IHRlbmhhIG8gY29udGXDumRvIGluY29ycmV0bywgbsOjbyBpcsOhIGF0dWFsaXphciBvIG1vZGVsIGRvIGZvcm11bMOhcmlvLlxuICAgKi9cbiAgQElucHV0KCdwLWZpZWxkLXZhbHVlJykgZmllbGRWYWx1ZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXNwb25zw6F2ZWwgcG9yIGFwbGljYXIgZXNwYcOnYW1lbnRvIG5hcyBjb2x1bmFzIGRhIHRhYmVsYSBjb250aWRhIG5vIGxvb2t1cC5cbiAgICogRGV2ZSByZWNlYmVyIHVtIGRvcyB2YWxvcmVzIGRvIGVudW0gYFBvVGFibGVDb2x1bW5TcGFjaW5nYC5cbiAgICovXG4gIEBJbnB1dCgncC1zcGFjaW5nJykgc3BhY2luZzogUG9UYWJsZUNvbHVtblNwYWNpbmcgPSBQb1RhYmxlQ29sdW1uU3BhY2luZy5NZWRpdW07XG5cbiAgLyoqXG4gICAqIEhhYmlsaXRhIG91IGRlc2FiaWxpdGEgYSBxdWVicmEgYXV0b23DoXRpY2EgZGUgdGV4dG8uIFF1YW5kbyBhdGl2YWRhLCBvIHRleHRvIHF1ZSBleGNlZGVcbiAgICogbyBlc3Bhw6dvIGRpc3BvbsOtdmVsIMOpIHRyYW5zZmVyaWRvIHBhcmEgYSBwcsOzeGltYSBsaW5oYSBlbSBwb250b3MgYXByb3ByaWFkb3MgcGFyYSB1bWFcbiAgICogbGVpdHVyYSBjbGFyYS5cbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC10ZXh0LXdyYXAnLCB0cmFuc2Zvcm06IGNvbnZlcnRUb0Jvb2xlYW4gfSkgdGV4dFdyYXA/OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRXZlbnRvIGRpc3BhcmFkbyBhbyBmZWNoYXIgbyBwb3BvdmVyIGRvIGdlcmVuY2lhZG9yIGRlIGNvbHVuYXMgYXDDs3MgYWx0ZXJhciBhcyBjb2x1bmFzIHZpc8OtdmVpcy5cbiAgICpcbiAgICogTyBjb21wb25lbnRlIGVudmlhIGNvbW8gcGFyw6JtZXRybyB1bSBhcnJheSBkZSBzdHJpbmcgY29tIGFzIGNvbHVuYXMgdmlzw612ZWlzIGF0dWFsaXphZGFzLlxuICAgKiBQb3IgZXhlbXBsbzogW1wiaWRDYXJkXCIsIFwibmFtZVwiLCBcImhpcmVTdGF0dXNcIiwgXCJhZ2VcIl0uXG4gICAqL1xuICBAT3V0cHV0KCdwLWNoYW5nZS12aXNpYmxlLWNvbHVtbnMnKSBjaGFuZ2VWaXNpYmxlQ29sdW1ucyA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8c3RyaW5nPj4oKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBFdmVudG8gZGlzcGFyYWRvIGFvIGNsaWNhciBubyBib3TDo28gZGUgcmVzdGF1cmFyIHBhZHLDo28gbm8gZ2VyZW5jaWFkb3IgZGUgY29sdW5hcy5cbiAgICpcbiAgICogTyBjb21wb25lbnRlIGVudmlhIGNvbW8gcGFyw6JtZXRybyB1bSBhcnJheSBkZSBzdHJpbmcgY29tIGFzIGNvbHVuYXMgY29uZmlndXJhZGFzIGluaWNpYWxtZW50ZS5cbiAgICogUG9yIGV4ZW1wbG86IFtcImlkQ2FyZFwiLCBcIm5hbWVcIiwgXCJoaXJlU3RhdHVzXCIsIFwiYWdlXCJdLlxuICAgKi9cbiAgQE91dHB1dCgncC1yZXN0b3JlLWNvbHVtbi1tYW5hZ2VyJykgY29sdW1uUmVzdG9yZU1hbmFnZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PFN0cmluZz4+KCk7XG5cbiAgaGFzTmV4dCA9IHRydWU7XG4gIGlzTG9hZGluZyA9IGZhbHNlO1xuICBwYWdlID0gMTtcbiAgcGFnZVNpemUgPSAxMDtcbiAgc2VhcmNoVmFsdWU6IHN0cmluZyA9ICcnO1xuICB0YWJsZUxpdGVyYWxzOiBhbnk7XG5cbiAgLy8gUHJvcHJpZWRhZGUgZGEgbW9kYWwgZGUgYnVzY2EgYXZhbsOnYWRhOlxuICBhZHZhbmNlZEZpbHRlck1vZGFsVGl0bGUgPSAnJztcbiAgZHluYW1pY0Zvcm1WYWx1ZSA9IHt9O1xuICBkaXNjbGFpbWVyITogUG9EaXNjbGFpbWVyO1xuICBkaXNjbGFpbWVyR3JvdXAhOiBQb0Rpc2NsYWltZXJHcm91cDtcbiAgaXNBZHZhbmNlZEZpbHRlciA9IGZhbHNlO1xuICBwcmltYXJ5QWN0aW9uQWR2YW5jZWRGaWx0ZXIhOiBQb01vZGFsQWN0aW9uO1xuICBzZWNvbmRhcnlBY3Rpb25BZHZhbmNlZEZpbHRlciE6IFBvTW9kYWxBY3Rpb247XG4gIHNlbGVjdGVkczogQXJyYXk8YW55PiA9IFtdO1xuXG4gIHByb3RlY3RlZCBzb3J0OiBQb1RhYmxlQ29sdW1uU29ydDtcblxuICBwcml2YXRlIGZpbHRlclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHNlYXJjaFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHNob3dNb3JlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgZGlzY2xhaW1lckxhYmVsOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfbGl0ZXJhbHM6IFBvTG9va3VwTGl0ZXJhbHM7XG4gIHByaXZhdGUgX3RpdGxlOiBzdHJpbmc7XG4gIHByaXZhdGUgbGFuZ3VhZ2U6IHN0cmluZyA9IHBvTG9jYWxlRGVmYXVsdDtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xuICBwcmltYXJ5QWN0aW9uOiBQb01vZGFsQWN0aW9uID0ge1xuICAgIGFjdGlvbjogKCkgPT4ge1xuICAgICAgbGV0IHNlbGVjdGVkc0l0ZW1zOiBBcnJheTxhbnk+ID0gW107XG4gICAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgdGhpcy5pdGVtcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgIGlmIChlbGVtZW50Wyckc2VsZWN0ZWQnXSkge1xuICAgICAgICAgICAgc2VsZWN0ZWRzSXRlbXMucHVzaChlbGVtZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2VsZWN0ZWRzSXRlbXMgPSB0aGlzLnNlbGVjdGVkcztcbiAgICAgIH1cbiAgICAgIHRoaXMubW9kZWwuZW1pdChzZWxlY3RlZHNJdGVtcyk7XG4gICAgICB0aGlzLnBvTW9kYWwuY2xvc2UoKTtcbiAgICB9LFxuICAgIGxhYmVsOiB0aGlzLmxpdGVyYWxzLm1vZGFsUHJpbWFyeUFjdGlvbkxhYmVsXG4gIH07XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcbiAgc2Vjb25kYXJ5QWN0aW9uOiBQb01vZGFsQWN0aW9uID0ge1xuICAgIGFjdGlvbjogKCkgPT4ge1xuICAgICAgdGhpcy5tb2RlbC5lbWl0KG51bGwpO1xuICAgICAgdGhpcy5wb01vZGFsLmNsb3NlKCk7XG4gICAgfSxcbiAgICBsYWJlbDogdGhpcy5saXRlcmFscy5tb2RhbFNlY29uZGFyeUFjdGlvbkxhYmVsXG4gIH07XG5cbiAgLyoqIE9iamV0byBjb20gYXMgbGl0ZXJhaXMgdXNhZGFzIG5vIGBwby1sb29rdXAtbW9kYWxgLiAqL1xuICBASW5wdXQoJ3AtbGl0ZXJhbHMnKSBzZXQgbGl0ZXJhbHModmFsdWU6IFBvTG9va3VwTGl0ZXJhbHMpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSkge1xuICAgICAgdGhpcy5fbGl0ZXJhbHMgPSB7XG4gICAgICAgIC4uLnBvTG9va3VwTGl0ZXJhbHNEZWZhdWx0W3BvTG9jYWxlRGVmYXVsdF0sXG4gICAgICAgIC4uLnBvTG9va3VwTGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdLFxuICAgICAgICAuLi52YWx1ZVxuICAgICAgfTtcbiAgICAgIGlmICh2YWx1ZS5tb2RhbFRpdGxlKSB7XG4gICAgICAgIHRoaXMudGl0bGUgPSB0aGlzLmxpdGVyYWxzLm1vZGFsVGl0bGU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2xpdGVyYWxzID0gcG9Mb29rdXBMaXRlcmFsc0RlZmF1bHRbdGhpcy5sYW5ndWFnZV07XG4gICAgfVxuICAgIHRoaXMucHJpbWFyeUFjdGlvbi5sYWJlbCA9IHRoaXMubGl0ZXJhbHMubW9kYWxQcmltYXJ5QWN0aW9uTGFiZWw7XG4gICAgdGhpcy5zZWNvbmRhcnlBY3Rpb24ubGFiZWwgPSB0aGlzLmxpdGVyYWxzLm1vZGFsU2Vjb25kYXJ5QWN0aW9uTGFiZWw7XG4gICAgdGhpcy5zZXRUYWJsZUxpdGVyYWxzKCk7XG4gIH1cblxuICBnZXQgbGl0ZXJhbHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xpdGVyYWxzIHx8IHBvTG9va3VwTGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdO1xuICB9XG5cbiAgLyoqIFTDrXR1bG8gZGEgbW9kYWwuICovXG4gIEBJbnB1dCgncC10aXRsZScpIHNldCB0aXRsZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fdGl0bGUgPSBpc1R5cGVvZih2YWx1ZSwgJ3N0cmluZycpID8gdmFsdWUgOiB0aGlzLmxpdGVyYWxzLm1vZGFsVGl0bGU7XG4gIH1cblxuICBnZXQgdGl0bGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3RpdGxlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHRoaXMubGFuZ3VhZ2UgPSBsYW5ndWFnZVNlcnZpY2UuZ2V0U2hvcnRMYW5ndWFnZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuZmlsdGVyU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmZpbHRlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNlYXJjaFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zZWFyY2hTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zaG93TW9yZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zaG93TW9yZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2V0QWR2YW5jZWRGaWx0ZXJNb2RhbFByb3BlcnRpZXMoKTtcbiAgICB0aGlzLmluaXRpYWxpemVEYXRhKCk7XG4gICAgdGhpcy5zZXRUYWJsZUxpdGVyYWxzKCk7XG4gIH1cblxuICBjcmVhdGVEaXNjbGFpbWVyKCkge1xuICAgIHRoaXMuZGlzY2xhaW1lckdyb3VwLmRpc2NsYWltZXJzID0gW107XG4gICAgdGhpcy5zZWFyY2hWYWx1ZSA9ICcnO1xuXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5keW5hbWljRm9ybVZhbHVlKSkge1xuICAgICAgdGhpcy5hZGREaXNjbGFpbWVyKHZhbHVlLCBrZXkpO1xuICAgIH1cblxuICAgIGlmICghT2JqZWN0LnZhbHVlcyh0aGlzLmR5bmFtaWNGb3JtVmFsdWUpLnNvbWUodiA9PiB2ICE9PSBudWxsICYmIHR5cGVvZiB2ICE9PSAndW5kZWZpbmVkJykpIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZURhdGEoKTtcbiAgICB9XG4gIH1cblxuICBhZGREaXNjbGFpbWVyKHZhbHVlOiBhbnksIHByb3BlcnR5OiBzdHJpbmcpIHtcbiAgICB0aGlzLmRpc2NsYWltZXJMYWJlbCA9ICcnO1xuICAgIGNvbnN0IGZpZWxkRmlsdGVyID0gdGhpcy5hZHZhbmNlZEZpbHRlcnMuZmluZChmaWx0ZXIgPT4gZmlsdGVyLnByb3BlcnR5ID09PSBwcm9wZXJ0eSk7XG4gICAgdGhpcy5kaXNjbGFpbWVyID0gPGFueT57IHByb3BlcnR5OiBwcm9wZXJ0eSB9O1xuICAgIHRoaXMuZGlzY2xhaW1lci52YWx1ZSA9IHZhbHVlO1xuICAgIGNvbnN0IGxhYmVsUHJvcGVydHkgPSBmaWVsZEZpbHRlci5sYWJlbCB8fCBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoZmllbGRGaWx0ZXIucHJvcGVydHkpO1xuXG4gICAgaWYgKGZpZWxkRmlsdGVyLnR5cGUgPT09ICdjdXJyZW5jeScgJiYgdmFsdWUpIHtcbiAgICAgIHRoaXMuZm9ybWF0VmFsdWVUb0N1cnJlbmN5KGZpZWxkRmlsdGVyLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKGZpZWxkRmlsdGVyLnR5cGUgPT09ICdib29sZWFuJyAmJiAodmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09IGZhbHNlKSkge1xuICAgICAgdGhpcy5mb3JtYXRWYWx1ZVRvQm9vbGVhbihmaWVsZEZpbHRlciwgdmFsdWUpO1xuICAgIH1cblxuICAgIGlmIChmaWVsZEZpbHRlci5vcHRpb25zICYmIHZhbHVlKSB7XG4gICAgICB0aGlzLmFwcGx5RGlzY2xhaW1lckxhYmVsVmFsdWUoZmllbGRGaWx0ZXIsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZGlzY2xhaW1lckxhYmVsKSB7XG4gICAgICB0aGlzLmRpc2NsYWltZXJMYWJlbCA9IHRoaXMuZGlzY2xhaW1lci52YWx1ZTtcbiAgICB9XG5cbiAgICB0aGlzLmRpc2NsYWltZXIubGFiZWwgPSBgJHtsYWJlbFByb3BlcnR5fTogJHt0aGlzLmRpc2NsYWltZXJMYWJlbH1gO1xuICAgIHRoaXMuZGlzY2xhaW1lckdyb3VwLmRpc2NsYWltZXJzID0gWy4uLnRoaXMuZGlzY2xhaW1lckdyb3VwLmRpc2NsYWltZXJzLCB0aGlzLmRpc2NsYWltZXJdO1xuICB9XG5cbiAgb25DaGFuZ2VEaXNjbGFpbWVyR3JvdXAoKSB7XG4gICAgaWYgKCF0aGlzLnNlYXJjaFZhbHVlKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLnNlYXJjaFZhbHVlID0gJyc7XG5cbiAgICAgIHRoaXMuc2VhcmNoRmlsdGVyZWRJdGVtcygpO1xuICAgIH1cbiAgfVxuXG4gIHNlYXJjaCgpOiB2b2lkIHtcbiAgICB0aGlzLnBhZ2UgPSAxO1xuXG4gICAgaWYgKHRoaXMuc2VhcmNoVmFsdWUpIHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuZGlzY2xhaW1lckdyb3VwLmRpc2NsYWltZXJzID0gW107XG5cbiAgICAgIHRoaXMuc2VhcmNoRmlsdGVyZWRJdGVtcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVEYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgc2VhcmNoRmlsdGVyZWRJdGVtcygpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaFN1YnNjcmlwdGlvbiA9IHRoaXMuZ2V0RmlsdGVyZWRJdGVtcyh0aGlzLnNlYXJjaFZhbHVlKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0TG9va3VwUmVzcG9uc2VQcm9wZXJ0aWVzKCk7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKGRhdGE6IFBvTG9va3VwUmVzcG9uc2VBcGkpID0+IHRoaXMuc2V0TG9va3VwUmVzcG9uc2VQcm9wZXJ0aWVzKGRhdGEpLFxuICAgICAgICAoKSA9PiB7fVxuICAgICAgKTtcbiAgfVxuXG4gIHNob3dNb3JlRXZlbnQoKSB7XG4gICAgdGhpcy5wYWdlKys7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuXG4gICAgdGhpcy5zaG93TW9yZVN1YnNjcmlwdGlvbiA9IHRoaXMuZ2V0RmlsdGVyZWRJdGVtcyh0aGlzLnNlYXJjaFZhbHVlKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIHRoaXMuaGFzTmV4dCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKGRhdGE6IFBvTG9va3VwUmVzcG9uc2VBcGkpID0+IHtcbiAgICAgICAgICB0aGlzLml0ZW1zID0gWy4uLnRoaXMuaXRlbXMsIC4uLmRhdGEuaXRlbXNdO1xuICAgICAgICAgIHRoaXMuaGFzTmV4dCA9IGRhdGEuaGFzTmV4dDtcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRJdGVtcygpO1xuICAgICAgICB9LFxuICAgICAgICAoKSA9PiB7fVxuICAgICAgKTtcbiAgfVxuXG4gIC8vTcOpdG9kbyByZXNwb25zw6F2ZWwgcG9yIHNlbGVjaW9uYXIgYXMgbGluaGFzIHF1YW5kbyBhYnJlIG8gbW9kYWwuXG4gIHNldFNlbGVjdGVkSXRlbXMoKSB7XG4gICAgdGhpcy5zZWxlY3RlZHMuZm9yRWFjaChzZWxlY3RlZEl0ZW0gPT4ge1xuICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgdGhpcy5wb1RhYmxlLnNlbGVjdFJvd0l0ZW0oaXRlbSA9PiBpdGVtW3RoaXMuZmllbGRWYWx1ZV0gPT09IHNlbGVjdGVkSXRlbS52YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnBvVGFibGUuc2VsZWN0Um93SXRlbShpdGVtID0+IGl0ZW1bdGhpcy5maWVsZFZhbHVlXSA9PT0gc2VsZWN0ZWRJdGVtW3RoaXMuZmllbGRWYWx1ZV0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy9Nw6l0b2RvIHJlc3BvbnPDoXZlbCBwb3IgY3JpYXIgb3MgZGlzY2xhaW1lcnMgcXVhbmRvIGFicmUgbyBtb2RhbC5cbiAgc2V0RGlzY2xhaW1lcnNJdGVtcygpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW1zICYmICFBcnJheS5pc0FycmF5KHRoaXMuc2VsZWN0ZWRJdGVtcykpIHtcbiAgICAgIHRoaXMubXVsdGlwbGUgPyAodGhpcy5zZWxlY3RlZHMgPSBbeyB2YWx1ZTogdGhpcy5zZWxlY3RlZEl0ZW1zIH1dKSA6ICh0aGlzLnNlbGVjdGVkcyA9IFt0aGlzLnNlbGVjdGVkSXRlbXNdKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW1zICYmIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRzID0gWy4uLnRoaXMuc2VsZWN0ZWRJdGVtc107XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseURpc2NsYWltZXJMYWJlbFZhbHVlKGZpZWxkOiBQb0xvb2t1cEFkdmFuY2VkRmlsdGVyLCBmaWx0ZXJWYWx1ZTogYW55KSB7XG4gICAgY29uc3QgdmFsdWVzID0gQXJyYXkuaXNBcnJheShmaWx0ZXJWYWx1ZSkgPyBmaWx0ZXJWYWx1ZSA6IFtmaWx0ZXJWYWx1ZV07XG4gICAgY29uc3QgbGFiZWxzID0gdmFsdWVzLm1hcChvcHRpb25WYWx1ZSA9PiB7XG4gICAgICBjb25zdCBmaW5kT3B0aW9uID0gZmllbGQub3B0aW9ucy5maW5kKG9wdGlvbiA9PiBvcHRpb24udmFsdWUgPT09IG9wdGlvblZhbHVlKTtcbiAgICAgIHJldHVybiBmaW5kT3B0aW9uLmxhYmVsO1xuICAgIH0pO1xuXG4gICAgaWYgKGxhYmVscy5qb2luKCkpIHtcbiAgICAgIHRoaXMuZGlzY2xhaW1lckxhYmVsID0gbGFiZWxzLmpvaW4oJywgJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRWYWx1ZVRvQ3VycmVuY3koZmllbGQ6IFBvTG9va3VwQWR2YW5jZWRGaWx0ZXIsIGZpbHRlclZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBjdXJyZW5jeUxhYmVsID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KGZpZWxkLmxvY2FsZSA/IGZpZWxkLmxvY2FsZSA6IHRoaXMubGFuZ3VhZ2UsIHtcbiAgICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMlxuICAgIH0pLmZvcm1hdChmaWx0ZXJWYWx1ZSk7XG4gICAgdGhpcy5kaXNjbGFpbWVyTGFiZWwgPSBjdXJyZW5jeUxhYmVsO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRWYWx1ZVRvQm9vbGVhbihmaWVsZDogUG9Mb29rdXBBZHZhbmNlZEZpbHRlciwgZmlsdGVyVmFsdWU6IGFueSkge1xuICAgIGxldCBsYWJlbEJvb2xlYW46IHN0cmluZztcblxuICAgIGlmIChmaWx0ZXJWYWx1ZSkge1xuICAgICAgbGFiZWxCb29sZWFuID0gZmllbGQuYm9vbGVhblRydWUgPyBmaWVsZC5ib29sZWFuVHJ1ZSA6IGZpbHRlclZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBsYWJlbEJvb2xlYW4gPSBmaWVsZC5ib29sZWFuRmFsc2UgPyBmaWVsZC5ib29sZWFuRmFsc2UgOiBmaWx0ZXJWYWx1ZTtcbiAgICB9XG4gICAgdGhpcy5kaXNjbGFpbWVyTGFiZWwgPSBgJHtsYWJlbEJvb2xlYW59YDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QWR2YW5jZWRGaWx0ZXJNb2RhbFByb3BlcnRpZXMoKSB7XG4gICAgdGhpcy5hZHZhbmNlZEZpbHRlck1vZGFsVGl0bGUgPSB0aGlzLmxpdGVyYWxzLm1vZGFsQWR2YW5jZWRTZWFyY2hUaXRsZTtcblxuICAgIHRoaXMuZGlzY2xhaW1lckdyb3VwID0ge1xuICAgICAgdGl0bGU6IHRoaXMubGl0ZXJhbHMubW9kYWxEaXNjbGFpbWVyR3JvdXBUaXRsZSxcbiAgICAgIGRpc2NsYWltZXJzOiBbXVxuICAgIH07XG5cbiAgICB0aGlzLnByaW1hcnlBY3Rpb25BZHZhbmNlZEZpbHRlciA9IHtcbiAgICAgIGFjdGlvbjogKCkgPT4ge1xuICAgICAgICB0aGlzLmRlc3Ryb3lEeW5hbWljRm9ybSgpO1xuICAgICAgICB0aGlzLmlzQWR2YW5jZWRGaWx0ZXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5wYWdlID0gMTtcbiAgICAgICAgdGhpcy5jcmVhdGVEaXNjbGFpbWVyKCk7XG4gICAgICB9LFxuICAgICAgbGFiZWw6IHRoaXMubGl0ZXJhbHMubW9kYWxBZHZhbmNlZFNlYXJjaFByaW1hcnlBY3Rpb25MYWJlbFxuICAgIH07XG5cbiAgICB0aGlzLnNlY29uZGFyeUFjdGlvbkFkdmFuY2VkRmlsdGVyID0ge1xuICAgICAgYWN0aW9uOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuZGVzdHJveUR5bmFtaWNGb3JtKCk7XG4gICAgICAgIHRoaXMuaXNBZHZhbmNlZEZpbHRlciA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGxhYmVsOiB0aGlzLmxpdGVyYWxzLm1vZGFsQWR2YW5jZWRTZWFyY2hTZWNvbmRhcnlBY3Rpb25MYWJlbFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldEFkdmFuY2VkRmlsdGVycyhhZHZhbmNlZFBhcmFtczogYW55KSB7XG4gICAgaWYgKGFkdmFuY2VkUGFyYW1zICYmIGFkdmFuY2VkUGFyYW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZpbHRlcnM6IE9iamVjdCA9IHt9O1xuICAgICAgbGV0IHZhbGlkYXRlZEFkdmFjZW5kRmlsdGVyczogYW55O1xuXG4gICAgICBhZHZhbmNlZFBhcmFtcy5mb3JFYWNoKChmaWx0ZXI6IGFueSkgPT4ge1xuICAgICAgICBmaWx0ZXJzW2ZpbHRlci5wcm9wZXJ0eV0gPSBmaWx0ZXIudmFsdWUgaW5zdGFuY2VvZiBBcnJheSA/IGZpbHRlci52YWx1ZS5qb2luKCkgOiBmaWx0ZXIudmFsdWU7XG5cbiAgICAgICAgdmFsaWRhdGVkQWR2YWNlbmRGaWx0ZXJzID0geyAuLi52YWxpZGF0ZWRBZHZhY2VuZEZpbHRlcnMsIC4uLmZpbHRlcnMgfTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gdmFsaWRhdGVkQWR2YWNlbmRGaWx0ZXJzO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGdldEZpbHRlcmVkSXRlbXMoZmlsdGVyOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFBvTG9va3VwUmVzcG9uc2VBcGk+IHtcbiAgICBjb25zdCBmaWx0ZXJlZFBhcmFtczogUG9Mb29rdXBGaWx0ZXJlZEl0ZW1zUGFyYW1zID0gdGhpcy5nZXRGaWx0ZXJlZFBhcmFtcyhmaWx0ZXIpO1xuXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyU2VydmljZS5nZXRGaWx0ZXJlZEl0ZW1zKGZpbHRlcmVkUGFyYW1zKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmlsdGVyZWRQYXJhbXMoZmlsdGVyOiBzdHJpbmcpIHtcbiAgICBjb25zdCB7IHBhZ2UsIHBhZ2VTaXplLCBmaWx0ZXJQYXJhbXMsIHNvcnQgfSA9IHRoaXM7XG5cbiAgICBjb25zdCBmaWx0ZXJlZFBhcmFtcyA9IHt9O1xuICAgIGNvbnN0IG9yZGVyID0gdGhpcy5nZXRPcmRlclBhcmFtKHNvcnQpO1xuICAgIGNvbnN0IGFkdmFuY2VkRmlsdGVycyA9IHRoaXMuZ2V0QWR2YW5jZWRGaWx0ZXJzKHRoaXMuZGlzY2xhaW1lckdyb3VwLmRpc2NsYWltZXJzKTtcbiAgICBjb25zdCBwYXJhbXMgPSB7IGZpbHRlciwgcGFnZSwgcGFnZVNpemUsIG9yZGVyLCBmaWx0ZXJQYXJhbXMsIGFkdmFuY2VkRmlsdGVycyB9O1xuXG4gICAgZm9yIChjb25zdCBrZXkgaW4gcGFyYW1zKSB7XG4gICAgICBpZiAocGFyYW1zLmhhc093blByb3BlcnR5KGtleSkgJiYgcGFyYW1zW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBmaWx0ZXJlZFBhcmFtc1trZXldID0gcGFyYW1zW2tleV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbHRlcmVkUGFyYW1zO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPcmRlclBhcmFtKHNvcnQ6IFBvVGFibGVDb2x1bW5Tb3J0ID0geyB0eXBlOiB1bmRlZmluZWQgfSkge1xuICAgIGNvbnN0IHsgY29sdW1uLCB0eXBlIH0gPSBzb3J0O1xuXG4gICAgaWYgKCFjb2x1bW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gUG9UYWJsZUNvbHVtblNvcnRUeXBlLkRlc2NlbmRpbmcpIHtcbiAgICAgIHJldHVybiBgLSR7Y29sdW1uLnByb3BlcnR5fWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke2NvbHVtbi5wcm9wZXJ0eX1gO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplRGF0YSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG5cbiAgICB0aGlzLmZpbHRlclN1YnNjcmlwdGlvbiA9IHRoaXMuZ2V0RmlsdGVyZWRJdGVtcygnJykuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgdGhpcy5zZXRMb29rdXBSZXNwb25zZVByb3BlcnRpZXMoZGF0YSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldExvb2t1cFJlc3BvbnNlUHJvcGVydGllcyhkYXRhPzogUG9Mb29rdXBSZXNwb25zZUFwaSkge1xuICAgIHRoaXMuaXRlbXMgPSBkYXRhPy5pdGVtcyA/PyBbXTtcbiAgICB0aGlzLmhhc05leHQgPSBkYXRhPy5oYXNOZXh0ID8/IGZhbHNlO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5zZXREaXNjbGFpbWVyc0l0ZW1zKCk7XG4gICAgdGhpcy5zZXRTZWxlY3RlZEl0ZW1zKCk7XG4gIH1cblxuICBwcml2YXRlIHNldFRhYmxlTGl0ZXJhbHMoKSB7XG4gICAgdGhpcy50YWJsZUxpdGVyYWxzID0ge1xuICAgICAgJ25vQ29sdW1ucyc6IHRoaXMubGl0ZXJhbHMubW9kYWxUYWJsZU5vQ29sdW1ucyxcbiAgICAgICdub0RhdGEnOiB0aGlzLmxpdGVyYWxzLm1vZGFsVGFibGVOb0RhdGEsXG4gICAgICAnbG9hZGluZ0RhdGEnOiB0aGlzLmxpdGVyYWxzLm1vZGFsVGFibGVMb2FkaW5nRGF0YSxcbiAgICAgICdsb2FkTW9yZURhdGEnOiB0aGlzLmxpdGVyYWxzLm1vZGFsVGFibGVMb2FkTW9yZURhdGFcbiAgICB9O1xuICB9XG5cbiAgLy8gTcOpdG9kbyByZXNwb25zw6F2ZWwgcG9yIGFicmlyIGEgbW9kYWwgZGUgYnVzY2EgZGFzIGluZm9ybWHDp8O1ZXMuXG4gIGFic3RyYWN0IG9wZW5Nb2RhbCgpOiB2b2lkO1xuXG4gIC8vIE3DqXRvZG8gcmVzcG9uc8OhdmVsIHBvciBkZXN0cnVpciBvIGR5bmFtaWNGb3JtXG4gIGFic3RyYWN0IGRlc3Ryb3lEeW5hbWljRm9ybSgpOiB2b2lkO1xufVxuIl19
|
|
534
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbG9va3VwLW1vZGFsLWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWZpZWxkL3BvLWxvb2t1cC9wby1sb29rdXAtbW9kYWwvcG8tbG9va3VwLW1vZGFsLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUE0QixVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUV4RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFaEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFVbkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7OztBQUUxRSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRztJQUNyQyxFQUFFLEVBQW9CO1FBQ3BCLHVCQUF1QixFQUFFLFFBQVE7UUFDakMseUJBQXlCLEVBQUUsUUFBUTtRQUNuQyxnQkFBZ0IsRUFBRSxRQUFRO1FBQzFCLFVBQVUsRUFBRSxpQkFBaUI7UUFDN0IsbUJBQW1CLEVBQUUsc0JBQXNCLENBQUMsRUFBRSxDQUFDLFNBQVM7UUFDeEQsZ0JB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aXZlLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBQb01vZGFsQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy9wby1tb2RhbCc7XG5pbXBvcnQgeyBQb01vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy9wby1tb2RhbC9wby1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgcG9Mb2NhbGVEZWZhdWx0IH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvcG8tbGFuZ3VhZ2UvcG8tbGFuZ3VhZ2UuY29uc3RhbnQnO1xuaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9wby1sYW5ndWFnZS9wby1sYW5ndWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IGNhcGl0YWxpemVGaXJzdExldHRlciwgY29udmVydFRvQm9vbGVhbiwgaXNUeXBlb2YgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscy91dGlsJztcbmltcG9ydCB7IFBvVGFibGVDb2x1bW5Tb3J0VHlwZSwgUG9UYWJsZUNvbHVtblNwYWNpbmcgfSBmcm9tICcuLi8uLi8uLi9wby10YWJsZSc7XG5pbXBvcnQgeyBQb1RhYmxlQ29sdW1uU29ydCB9IGZyb20gJy4uLy4uLy4uL3BvLXRhYmxlL2ludGVyZmFjZXMvcG8tdGFibGUtY29sdW1uLXNvcnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IHBvVGFibGVMaXRlcmFsc0RlZmF1bHQgfSBmcm9tICcuLi8uLi8uLi9wby10YWJsZS9wby10YWJsZS1iYXNlLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFBvTG9va3VwQWR2YW5jZWRGaWx0ZXIgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvLWxvb2t1cC1hZHZhbmNlZC1maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvTG9va3VwQ29sdW1uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wby1sb29rdXAtY29sdW1uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0xvb2t1cEZpbHRlciB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG8tbG9va3VwLWZpbHRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9Mb29rdXBGaWx0ZXJlZEl0ZW1zUGFyYW1zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wby1sb29rdXAtZmlsdGVyZWQtaXRlbXMtcGFyYW1zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0xvb2t1cExpdGVyYWxzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wby1sb29rdXAtbGl0ZXJhbHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvTG9va3VwUmVzcG9uc2VBcGkgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvLWxvb2t1cC1yZXNwb25zZS1hcGkuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvRGlzY2xhaW1lckdyb3VwIH0gZnJvbSAnLi8uLi8uLi8uLi9wby1kaXNjbGFpbWVyLWdyb3VwL3BvLWRpc2NsYWltZXItZ3JvdXAuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvRGlzY2xhaW1lciB9IGZyb20gJy4vLi4vLi4vLi4vcG8tZGlzY2xhaW1lci9wby1kaXNjbGFpbWVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi8uLi8uLi8uLi9wby10YWJsZS9wby10YWJsZS5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgcG9Mb29rdXBMaXRlcmFsc0RlZmF1bHQgPSB7XG4gIGVuOiA8UG9Mb29rdXBMaXRlcmFscz57XG4gICAgbW9kYWxQcmltYXJ5QWN0aW9uTGFiZWw6ICdTZWxlY3QnLFxuICAgIG1vZGFsU2Vjb25kYXJ5QWN0aW9uTGFiZWw6ICdDYW5jZWwnLFxuICAgIG1vZGFsUGxhY2Vob2xkZXI6ICdTZWFyY2gnLFxuICAgIG1vZGFsVGl0bGU6ICdTZWxlY3QgYSByZWNvcmQnLFxuICAgIG1vZGFsVGFibGVOb0NvbHVtbnM6IHBvVGFibGVMaXRlcmFsc0RlZmF1bHQuZW4ubm9Db2x1bW5zLFxuICAgIG1vZGFsVGFibGVOb0RhdGE6IHBvVGFibGVMaXRlcmFsc0RlZmF1bHQuZW4ubm9EYXRhLFxuICAgIG1vZGFsVGFibGVMb2FkaW5nRGF0YTogcG9UYWJsZUxpdGVyYWxzRGVmYXVsdC5lbi5sb2FkaW5nRGF0YSxcbiAgICBtb2RhbFRhYmxlTG9hZE1vcmVEYXRhOiBwb1RhYmxlTGl0ZXJhbHNEZWZhdWx0LmVuLmxvYWRNb3JlRGF0YSxcbiAgICBtb2RhbEFkdmFuY2VkU2VhcmNoOiAnQWR2YW5jZWQgc2VhcmNoJyxcbiAgICBtb2RhbEFkdmFuY2VkU2VhcmNoVGl0bGU6ICdBZHZhbmNlZCBzZWFyY2gnLFxuICAgIG1vZGFsQWR2YW5jZWRTZWFyY2hQcmltYXJ5QWN0aW9uTGFiZWw6ICdGaWx0ZXInLFxuICAgIG1vZGFsQWR2YW5jZWRTZWFyY2hTZWNvbmRhcnlBY3Rpb25MYWJlbDogJ1JldHVybicsXG4gICAgbW9kYWxEaXNjbGFpbWVyR3JvdXBUaXRsZTogJ1ByZXNlbnRpbmcgcmVzdWx0cyBmaWx0ZXJlZCBieTonXG4gIH0sXG4gIGVzOiA8UG9Mb29rdXBMaXRlcmFscz57XG4gICAgbW9kYWxQcmltYXJ5QWN0aW9uTGFiZWw6ICdTZWxlY2Npb25hcicsXG4gICAgbW9kYWxTZWNvbmRhcnlBY3Rpb25MYWJlbDogJ0NhbmNlbGFyJyxcbiAgICBtb2RhbFBsYWNlaG9sZGVyOiAnQnVzY2FyJyxcbiAgICBtb2RhbFRpdGxlOiAnU2VsZWNjaW9uZSB1biByZWdpc3RybycsXG4gICAgbW9kYWxUYWJsZU5vQ29sdW1uczogcG9UYWJsZUxpdGVyYWxzRGVmYXVsdC5lcy5ub0NvbHVtbnMsXG4gICAgbW9kYWxUYWJsZU5vRGF0YTogcG9UYWJsZUxpdGVyYWxzRGVmYXVsdC5lcy5ub0RhdGEsXG4gICAgbW9kYWxUYWJsZUxvYWRpbmdEYXRhOiBwb1RhYmxlTGl0ZXJhbHNEZWZhdWx0LmVzLmxvYWRpbmdEYXRhLFxuICAgIG1vZGFsVGFibGVMb2FkTW9yZURhdGE6IHBvVGFibGVMaXRlcmFsc0RlZmF1bHQuZXMubG9hZE1vcmVEYXRhLFxuICAgIG1vZGFsQWR2YW5jZWRTZWFyY2g6ICdCw7pzcXVlZGEgQXZhbnphZGEnLFxuICAgIG1vZGFsQWR2YW5jZWRTZWFyY2hUaXRsZTogJ0LDunNxdWVkYSBBdmFuemFkYScsXG4gICAgbW9kYWxBZHZhbmNlZFNlYXJjaFByaW1hcnlBY3Rpb25MYWJlbDogJ0ZpbHRyYXInLFxuICAgIG1vZGFsQWR2YW5jZWRTZWFyY2hTZWNvbmRhcnlBY3Rpb25MYWJlbDogJ1Z1ZWx2ZScsXG4gICAgbW9kYWxEaXNjbGFpbWVyR3JvdXBUaXRsZTogJ1ByZXNlbnRhciByZXN1bHRhZG9zIGZpbHRyYWRvcyBwb3I6J1xuICB9LFxuICBwdDogPFBvTG9va3VwTGl0ZXJhbHM+e1xuICAgIG1vZGFsUHJpbWFyeUFjdGlvbkxhYmVsOiAnU2VsZWNpb25hcicsXG4gICAgbW9kYWxTZWNvbmRhcnlBY3Rpb25MYWJlbDogJ0NhbmNlbGFyJyxcbiAgICBtb2RhbFBsYWNlaG9sZGVyOiAnUGVzcXVpc2FyJyxcbiAgICBtb2RhbFRpdGxlOiAnU2VsZWNpb25lIHVtIHJlZ2lzdHJvJyxcbiAgICBtb2RhbFRhYmxlTm9Db2x1bW5zOiBwb1RhYmxlTGl0ZXJhbHNEZWZhdWx0LnB0Lm5vQ29sdW1ucyxcbiAgICBtb2RhbFRhYmxlTm9EYXRhOiBwb1RhYmxlTGl0ZXJhbHNEZWZhdWx0LnB0Lm5vRGF0YSxcbiAgICBtb2RhbFRhYmxlTG9hZGluZ0RhdGE6IHBvVGFibGVMaXRlcmFsc0RlZmF1bHQucHQubG9hZGluZ0RhdGEsXG4gICAgbW9kYWxUYWJsZUxvYWRNb3JlRGF0YTogcG9UYWJsZUxpdGVyYWxzRGVmYXVsdC5wdC5sb2FkTW9yZURhdGEsXG4gICAgbW9kYWxBZHZhbmNlZFNlYXJjaDogJ0J1c2NhIGF2YW7Dp2FkYScsXG4gICAgbW9kYWxBZHZhbmNlZFNlYXJjaFRpdGxlOiAnQnVzY2EgQXZhbsOnYWRhJyxcbiAgICBtb2RhbEFkdmFuY2VkU2VhcmNoUHJpbWFyeUFjdGlvbkxhYmVsOiAnRmlsdHJhcicsXG4gICAgbW9kYWxBZHZhbmNlZFNlYXJjaFNlY29uZGFyeUFjdGlvbkxhYmVsOiAnVm9sdGFyJyxcbiAgICBtb2RhbERpc2NsYWltZXJHcm91cFRpdGxlOiAnQXByZXNlbnRhbmRvIHJlc3VsdGFkb3MgZmlsdHJhZG9zIHBvcjonXG4gIH0sXG4gIHJ1OiA8UG9Mb29rdXBMaXRlcmFscz57XG4gICAgbW9kYWxQcmltYXJ5QWN0aW9uTGFiZWw6ICfQktGL0LHRgNCw0YLRjCcsXG4gICAgbW9kYWxTZWNvbmRhcnlBY3Rpb25MYWJlbDogJ9Ce0YLQvNC10L3QuNGC0YwnLFxuICAgIG1vZGFsUGxhY2Vob2xkZXI6ICfQn9C+0LjRgdC6JyxcbiAgICBtb2RhbFRpdGxlOiAn0JLRi9Cx0LXRgNC40YLQtSDQt9Cw0L/QuNGB0YwnLFxuICAgIG1vZGFsVGFibGVOb0NvbHVtbnM6IHBvVGFibGVMaXRlcmFsc0RlZmF1bHQucnUubm9Db2x1bW5zLFxuICAgIG1vZGFsVGFibGVOb0RhdGE6IHBvVGFibGVMaXRlcmFsc0RlZmF1bHQucnUubm9EYXRhLFxuICAgIG1vZGFsVGFibGVMb2FkaW5nRGF0YTogcG9UYWJsZUxpdGVyYWxzRGVmYXVsdC5ydS5sb2FkaW5nRGF0YSxcbiAgICBtb2RhbFRhYmxlTG9hZE1vcmVEYXRhOiBwb1RhYmxlTGl0ZXJhbHNEZWZhdWx0LnJ1LmxvYWRNb3JlRGF0YSxcbiAgICBtb2RhbEFkdmFuY2VkU2VhcmNoOiAn0KDQsNGB0YjQuNGA0LXQvdC90YvQuSDQv9C+0LjRgdC6JyxcbiAgICBtb2RhbEFkdmFuY2VkU2VhcmNoVGl0bGU6ICfQoNCw0YHRiNC40YDQtdC90L3Ri9C5INC/0L7QuNGB0LonLFxuICAgIG1vZGFsQWR2YW5jZWRTZWFyY2hQcmltYXJ5QWN0aW9uTGFiZWw6ICfQpNC40LvRjNGC0YAnLFxuICAgIG1vZGFsQWR2YW5jZWRTZWFyY2hTZWNvbmRhcnlBY3Rpb25MYWJlbDogJ9Cd0LDQt9Cw0LQnLFxuICAgIG1vZGFsRGlzY2xhaW1lckdyb3VwVGl0bGU6ICfQn9GA0LXQtNGB0YLQsNCy0LvQtdC90L3Ri9C1INGA0LXQt9GD0LvRjNGC0LDRgtGLINC+0YLRhNC40LvRjNGC0YDQvtCy0LDQvdGLINC/0L46J1xuICB9XG59O1xuXG4vKipcbiAqIEBkb2NzUHJpdmF0ZVxuICpcbiAqIENsYXNzZSBiYXNlIGRvIGNvbXBvbmVudGUgUG8gTG9va3VwIE1vZGFsLlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQb0xvb2t1cE1vZGFsQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgQFZpZXdDaGlsZChQb01vZGFsQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBwb01vZGFsOiBQb01vZGFsQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKFBvVGFibGVDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIHBvVGFibGU6IFBvVGFibGVDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIE9iamV0byBjb20gb3MgY2FtcG9zIHF1ZSBzZXLDo28gY3JpYWRvcyBubyBidXNjYSBhdmFuw6dhZGEuXG4gICAqXG4gICAqID4gQ2FzbyBuw6NvIHNlamEgcGFzc2FkbyB1bSBvYmpldG8gb3UgZW50w6NvIGVsZSBlc3RlamEgZW0gYnJhbmNvIG8gbGluayBkZSBidXNjYSBhdmFuw6dhZGEgZmljYXLDoSBlc2NvbmRpZG8uXG4gICAqXG4gICAqIEV4ZW1wbG8gZGUgVVJMIGNvbSBidXNjYSBhdmFuw6dhZGE6IGh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC92MS9oZXJvZXM/ZmlsdGVyPSZwYWdlPTEmcGFnZVNpemU9MTBgJm5hbWU9VG9ueSUyMFN0YXJrJm5pY2tuYW1lPUhvbWVtJTIwZGUlMjBGZXJybyZlbWFpbD1pcm5tYW5AbWFydmVsLmNvbWBcbiAgICpcbiAgICogQ2FzbyBhbGd1bSBwYXLDom1ldHJvIHNlamEgdW1hIGxpc3RhLCBhIGNvbmNhdGVuYcOnw6NvIMOpIGZlaXRhIHV0aWxpemFuZG8gdmlyZ3VsYS5cbiAgICogRXhlbXBsbzogaHR0cDovL2xvY2FsaG9zdDozMDAwL3YxL2hlcm9lcz9maWx0ZXI9JnBhZ2U9MSZwYWdlU2l6ZT0xMGAmbmFtZT1Ub255JTIwU3RhcmssUGV0ZXIlMjBQYXJrZXIsR29oYW5gXG4gICAqXG4gICAqL1xuICBASW5wdXQoJ3AtYWR2YW5jZWQtZmlsdGVycycpIGFkdmFuY2VkRmlsdGVyczogQXJyYXk8UG9Mb29rdXBBZHZhbmNlZEZpbHRlcj47XG5cbiAgLyoqXG4gICAqIExpc3RhIGRhcyBjb2x1bmFzIGRhIHRhYmVsYS5cbiAgICogRXNzYSBwcm9wcmllZGFkZSBkZXZlIHJlY2ViZXIgdW0gYXJyYXkgZGUgb2JqZXRvcyBxdWUgaW1wbGVtZW50YW0gYSBpbnRlcmZhY2UgUG9Mb29rdXBDb2x1bW4uXG4gICAqL1xuICBASW5wdXQoJ3AtY29sdW1ucycpIGNvbHVtbnM6IEFycmF5PFBvTG9va3VwQ29sdW1uPjtcblxuICAvKiogTGlzdGEgZGUgaXRlbnMgZGEgdGFiZWxhLiAqL1xuICBASW5wdXQoJ3AtaXRlbXMnKSBpdGVtczogQXJyYXk8YW55PjtcblxuICAvKiogQ2xhc3NlIGRlIHNlcnZpw6dvIGNvbSBhIGltcGxlbWVudGHDp8OjbyBkbyBjbGllbnRlLiAqL1xuICBASW5wdXQoJ3AtZmlsdGVyLXNlcnZpY2UnKSBmaWx0ZXJTZXJ2aWNlOiBQb0xvb2t1cEZpbHRlcjtcblxuICAvKiogQ2xhc3NlIGRlIHNlcnZpw6dvIGNvbSBhIGltcGxlbWVudGHDp8OjbyBkbyBjbGllbnRlLiAqL1xuICBASW5wdXQoJ3AtZmlsdGVyLXBhcmFtcycpIGZpbHRlclBhcmFtczogYW55O1xuXG4gIC8qKiBTZSB2ZXJkYWRlaXJvLCBlc2NvbmRlIG8gZ2VyZW5jaWFkb3IgZGUgdGFyZWZhcywgcmVzcG9uc8OhdmVsIHBlbGEgZGVmaW5pw6fDo28gZGUgcXVhaXMgY29sdW5hcyBzZXLDo28gZXhpYmlkYXMuICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1oaWRlLWNvbHVtbnMtbWFuYWdlcicsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KVxuICBoaWRlQ29sdW1uc01hbmFnZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogU2UgdmVyZGFkZWlybywgYXRpdmEgYSBmdW5jaW9uYWxpZGFkZSBkZSBzY3JvbGwgaW5maW5pdG8gcGFyYSBhIHRhYmVsYSBleGliaWRhIG5vIHJldG9ybm8gZGEgY29uc3VsdGEuICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1pbmZpbml0ZS1zY3JvbGwnLCB0cmFuc2Zvcm06IGNvbnZlcnRUb0Jvb2xlYW4gfSkgaW5maW5pdGVTY3JvbGw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogU2UgdmVyZGFkZWlybywgYXRpdmEgYSBmdW5jaW9uYWxpZGFkZSBkZSBtdWx0aXBsYSBzZWxlw6fDo28uICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1tdWx0aXBsZScsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KSBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBFdmVudG8gdXRpbGl6YWRvIGFvIHNlbGVjaW9uYXIgdW0gcmVnaXN0cm8gZGEgdGFiZWxhLiAqL1xuICBAT3V0cHV0KCdwLWNoYW5nZS1tb2RlbCcpIG1vZGVsOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8qKiBDbGFzc2UgZGUgc2VydmnDp28gY29tIGl0ZW1zIHNlbGVjaW9uYWRvcyAqL1xuICBASW5wdXQoJ3Atc2VsZWN0ZWQtaXRlbXMnKSBzZWxlY3RlZEl0ZW1zOiBhbnk7XG5cbiAgLyoqIEluZGljYSBhIGNvbHVuYSBxdWUgc2Vyw6EgdXRpbGl6YWRhIGNvbW8gZGVzY3Jpw6fDo28gZG8gY2FtcG8gZSBjb21vIGZpbHRybyBkZW50cm8gZGEgamFuZWxhLiAqL1xuICBASW5wdXQoJ3AtZmllbGQtbGFiZWwnKSBmaWVsZExhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBJbmRpY2EgYSBjb2x1bmEgcXVlIHNlcsOhIHV0aWxpemFkYSBjb21vIHZhbG9yIGRvIGNhbXBvLlxuICAgKlxuICAgKiA+IEF0ZW7Dp8OjbzogQ2FzbyBuw6NvIHNlamEgcGFzc2FkYSBvdSB0ZW5oYSBvIGNvbnRlw7pkbyBpbmNvcnJldG8sIG7Do28gaXLDoSBhdHVhbGl6YXIgbyBtb2RlbCBkbyBmb3JtdWzDoXJpby5cbiAgICovXG4gIEBJbnB1dCgncC1maWVsZC12YWx1ZScpIGZpZWxkVmFsdWU6IHN0cmluZztcblxuICAvKipcbiAgICogUmVzcG9uc8OhdmVsIHBvciBhcGxpY2FyIGVzcGHDp2FtZW50byBuYXMgY29sdW5hcyBkYSB0YWJlbGEgY29udGlkYSBubyBsb29rdXAuXG4gICAqIERldmUgcmVjZWJlciB1bSBkb3MgdmFsb3JlcyBkbyBlbnVtIGBQb1RhYmxlQ29sdW1uU3BhY2luZ2AuXG4gICAqL1xuICBASW5wdXQoJ3Atc3BhY2luZycpIHNwYWNpbmc6IFBvVGFibGVDb2x1bW5TcGFjaW5nID0gUG9UYWJsZUNvbHVtblNwYWNpbmcuTWVkaXVtO1xuXG4gIC8qKlxuICAgKiBIYWJpbGl0YSBvdSBkZXNhYmlsaXRhIGEgcXVlYnJhIGF1dG9tw6F0aWNhIGRlIHRleHRvLiBRdWFuZG8gYXRpdmFkYSwgbyB0ZXh0byBxdWUgZXhjZWRlXG4gICAqIG8gZXNwYcOnbyBkaXNwb27DrXZlbCDDqSB0cmFuc2ZlcmlkbyBwYXJhIGEgcHLDs3hpbWEgbGluaGEgZW0gcG9udG9zIGFwcm9wcmlhZG9zIHBhcmEgdW1hXG4gICAqIGxlaXR1cmEgY2xhcmEuXG4gICAqL1xuICBASW5wdXQoeyBhbGlhczogJ3AtdGV4dC13cmFwJywgdHJhbnNmb3JtOiBjb252ZXJ0VG9Cb29sZWFuIH0pIHRleHRXcmFwPzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEV2ZW50byBkaXNwYXJhZG8gYW8gZmVjaGFyIG8gcG9wb3ZlciBkbyBnZXJlbmNpYWRvciBkZSBjb2x1bmFzIGFww7NzIGFsdGVyYXIgYXMgY29sdW5hcyB2aXPDrXZlaXMuXG4gICAqXG4gICAqIE8gY29tcG9uZW50ZSBlbnZpYSBjb21vIHBhcsOibWV0cm8gdW0gYXJyYXkgZGUgc3RyaW5nIGNvbSBhcyBjb2x1bmFzIHZpc8OtdmVpcyBhdHVhbGl6YWRhcy5cbiAgICogUG9yIGV4ZW1wbG86IFtcImlkQ2FyZFwiLCBcIm5hbWVcIiwgXCJoaXJlU3RhdHVzXCIsIFwiYWdlXCJdLlxuICAgKi9cbiAgQE91dHB1dCgncC1jaGFuZ2UtdmlzaWJsZS1jb2x1bW5zJykgY2hhbmdlVmlzaWJsZUNvbHVtbnMgPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PHN0cmluZz4+KCk7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRXZlbnRvIGRpc3BhcmFkbyBhbyBjbGljYXIgbm8gYm90w6NvIGRlIHJlc3RhdXJhciBwYWRyw6NvIG5vIGdlcmVuY2lhZG9yIGRlIGNvbHVuYXMuXG4gICAqXG4gICAqIE8gY29tcG9uZW50ZSBlbnZpYSBjb21vIHBhcsOibWV0cm8gdW0gYXJyYXkgZGUgc3RyaW5nIGNvbSBhcyBjb2x1bmFzIGNvbmZpZ3VyYWRhcyBpbmljaWFsbWVudGUuXG4gICAqIFBvciBleGVtcGxvOiBbXCJpZENhcmRcIiwgXCJuYW1lXCIsIFwiaGlyZVN0YXR1c1wiLCBcImFnZVwiXS5cbiAgICovXG4gIEBPdXRwdXQoJ3AtcmVzdG9yZS1jb2x1bW4tbWFuYWdlcicpIGNvbHVtblJlc3RvcmVNYW5hZ2VyID0gbmV3IEV2ZW50RW1pdHRlcjxBcnJheTxTdHJpbmc+PigpO1xuXG4gIGhhc05leHQgPSB0cnVlO1xuICBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgcGFnZSA9IDE7XG4gIHBhZ2VTaXplID0gMTA7XG4gIHNlYXJjaFZhbHVlOiBzdHJpbmcgPSAnJztcbiAgdGFibGVMaXRlcmFsczogYW55O1xuXG4gIC8vIFByb3ByaWVkYWRlIGRhIG1vZGFsIGRlIGJ1c2NhIGF2YW7Dp2FkYTpcbiAgYWR2YW5jZWRGaWx0ZXJNb2RhbFRpdGxlID0gJyc7XG4gIGR5bmFtaWNGb3JtVmFsdWUgPSB7fTtcbiAgZGlzY2xhaW1lciE6IFBvRGlzY2xhaW1lcjtcbiAgZGlzY2xhaW1lckdyb3VwITogUG9EaXNjbGFpbWVyR3JvdXA7XG4gIGlzQWR2YW5jZWRGaWx0ZXIgPSBmYWxzZTtcbiAgcHJpbWFyeUFjdGlvbkFkdmFuY2VkRmlsdGVyITogUG9Nb2RhbEFjdGlvbjtcbiAgc2Vjb25kYXJ5QWN0aW9uQWR2YW5jZWRGaWx0ZXIhOiBQb01vZGFsQWN0aW9uO1xuICBzZWxlY3RlZHM6IEFycmF5PGFueT4gPSBbXTtcblxuICBwcm90ZWN0ZWQgc29ydDogUG9UYWJsZUNvbHVtblNvcnQ7XG5cbiAgcHJpdmF0ZSBmaWx0ZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBzZWFyY2hTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBzaG93TW9yZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGRpc2NsYWltZXJMYWJlbDogc3RyaW5nO1xuXG4gIHByaXZhdGUgX2xpdGVyYWxzOiBQb0xvb2t1cExpdGVyYWxzO1xuICBwcml2YXRlIF90aXRsZTogc3RyaW5nO1xuICBwcml2YXRlIGxhbmd1YWdlOiBzdHJpbmcgPSBwb0xvY2FsZURlZmF1bHQ7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcbiAgcHJpbWFyeUFjdGlvbjogUG9Nb2RhbEFjdGlvbiA9IHtcbiAgICBhY3Rpb246ICgpID0+IHtcbiAgICAgIGxldCBzZWxlY3RlZHNJdGVtczogQXJyYXk8YW55PiA9IFtdO1xuICAgICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICBpZiAoZWxlbWVudFsnJHNlbGVjdGVkJ10pIHtcbiAgICAgICAgICAgIHNlbGVjdGVkc0l0ZW1zLnB1c2goZWxlbWVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlbGVjdGVkc0l0ZW1zID0gdGhpcy5zZWxlY3RlZHM7XG4gICAgICB9XG4gICAgICB0aGlzLm1vZGVsLmVtaXQoc2VsZWN0ZWRzSXRlbXMpO1xuICAgICAgdGhpcy5wb01vZGFsLmNsb3NlKCk7XG4gICAgfSxcbiAgICBsYWJlbDogdGhpcy5saXRlcmFscy5tb2RhbFByaW1hcnlBY3Rpb25MYWJlbFxuICB9O1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXG4gIHNlY29uZGFyeUFjdGlvbjogUG9Nb2RhbEFjdGlvbiA9IHtcbiAgICBhY3Rpb246ICgpID0+IHtcbiAgICAgIHRoaXMubW9kZWwuZW1pdChudWxsKTtcbiAgICAgIHRoaXMucG9Nb2RhbC5jbG9zZSgpO1xuICAgIH0sXG4gICAgbGFiZWw6IHRoaXMubGl0ZXJhbHMubW9kYWxTZWNvbmRhcnlBY3Rpb25MYWJlbFxuICB9O1xuXG4gIC8qKiBPYmpldG8gY29tIGFzIGxpdGVyYWlzIHVzYWRhcyBubyBgcG8tbG9va3VwLW1vZGFsYC4gKi9cbiAgQElucHV0KCdwLWxpdGVyYWxzJykgc2V0IGxpdGVyYWxzKHZhbHVlOiBQb0xvb2t1cExpdGVyYWxzKSB7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0ICYmICEodmFsdWUgaW5zdGFuY2VvZiBBcnJheSkpIHtcbiAgICAgIHRoaXMuX2xpdGVyYWxzID0ge1xuICAgICAgICAuLi5wb0xvb2t1cExpdGVyYWxzRGVmYXVsdFtwb0xvY2FsZURlZmF1bHRdLFxuICAgICAgICAuLi5wb0xvb2t1cExpdGVyYWxzRGVmYXVsdFt0aGlzLmxhbmd1YWdlXSxcbiAgICAgICAgLi4udmFsdWVcbiAgICAgIH07XG4gICAgICBpZiAodmFsdWUubW9kYWxUaXRsZSkge1xuICAgICAgICB0aGlzLnRpdGxlID0gdGhpcy5saXRlcmFscy5tb2RhbFRpdGxlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9saXRlcmFscyA9IHBvTG9va3VwTGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdO1xuICAgIH1cbiAgICB0aGlzLnByaW1hcnlBY3Rpb24ubGFiZWwgPSB0aGlzLmxpdGVyYWxzLm1vZGFsUHJpbWFyeUFjdGlvbkxhYmVsO1xuICAgIHRoaXMuc2Vjb25kYXJ5QWN0aW9uLmxhYmVsID0gdGhpcy5saXRlcmFscy5tb2RhbFNlY29uZGFyeUFjdGlvbkxhYmVsO1xuICAgIHRoaXMuc2V0VGFibGVMaXRlcmFscygpO1xuICB9XG5cbiAgZ2V0IGxpdGVyYWxzKCkge1xuICAgIHJldHVybiB0aGlzLl9saXRlcmFscyB8fCBwb0xvb2t1cExpdGVyYWxzRGVmYXVsdFt0aGlzLmxhbmd1YWdlXTtcbiAgfVxuXG4gIC8qKiBUw610dWxvIGRhIG1vZGFsLiAqL1xuICBASW5wdXQoJ3AtdGl0bGUnKSBzZXQgdGl0bGUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3RpdGxlID0gaXNUeXBlb2YodmFsdWUsICdzdHJpbmcnKSA/IHZhbHVlIDogdGhpcy5saXRlcmFscy5tb2RhbFRpdGxlO1xuICB9XG5cbiAgZ2V0IHRpdGxlKCkge1xuICAgIHJldHVybiB0aGlzLl90aXRsZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGxhbmd1YWdlU2VydmljZTogUG9MYW5ndWFnZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICB0aGlzLmxhbmd1YWdlID0gbGFuZ3VhZ2VTZXJ2aWNlLmdldFNob3J0TGFuZ3VhZ2UoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmZpbHRlclN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5maWx0ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZWFyY2hTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc2VhcmNoU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2hvd01vcmVTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc2hvd01vcmVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldEFkdmFuY2VkRmlsdGVyTW9kYWxQcm9wZXJ0aWVzKCk7XG4gICAgdGhpcy5pbml0aWFsaXplRGF0YSgpO1xuICAgIHRoaXMuc2V0VGFibGVMaXRlcmFscygpO1xuICB9XG5cbiAgY3JlYXRlRGlzY2xhaW1lcigpIHtcbiAgICB0aGlzLmRpc2NsYWltZXJHcm91cC5kaXNjbGFpbWVycyA9IFtdO1xuICAgIHRoaXMuc2VhcmNoVmFsdWUgPSAnJztcblxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuZHluYW1pY0Zvcm1WYWx1ZSkpIHtcbiAgICAgIHRoaXMuYWRkRGlzY2xhaW1lcih2YWx1ZSwga2V5KTtcbiAgICB9XG5cbiAgICBpZiAoIU9iamVjdC52YWx1ZXModGhpcy5keW5hbWljRm9ybVZhbHVlKS5zb21lKHYgPT4gdiAhPT0gbnVsbCAmJiB0eXBlb2YgdiAhPT0gJ3VuZGVmaW5lZCcpKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVEYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgYWRkRGlzY2xhaW1lcih2YWx1ZTogYW55LCBwcm9wZXJ0eTogc3RyaW5nKSB7XG4gICAgdGhpcy5kaXNjbGFpbWVyTGFiZWwgPSAnJztcbiAgICBjb25zdCBmaWVsZEZpbHRlciA9IHRoaXMuYWR2YW5jZWRGaWx0ZXJzLmZpbmQoZmlsdGVyID0+IGZpbHRlci5wcm9wZXJ0eSA9PT0gcHJvcGVydHkpO1xuICAgIHRoaXMuZGlzY2xhaW1lciA9IDxhbnk+eyBwcm9wZXJ0eTogcHJvcGVydHkgfTtcbiAgICB0aGlzLmRpc2NsYWltZXIudmFsdWUgPSB2YWx1ZTtcbiAgICBjb25zdCBsYWJlbFByb3BlcnR5ID0gZmllbGRGaWx0ZXIubGFiZWwgfHwgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGZpZWxkRmlsdGVyLnByb3BlcnR5KTtcblxuICAgIGlmIChmaWVsZEZpbHRlci50eXBlID09PSAnY3VycmVuY3knICYmIHZhbHVlKSB7XG4gICAgICB0aGlzLmZvcm1hdFZhbHVlVG9DdXJyZW5jeShmaWVsZEZpbHRlciwgdmFsdWUpO1xuICAgIH1cblxuICAgIGlmIChmaWVsZEZpbHRlci50eXBlID09PSAnYm9vbGVhbicgJiYgKHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSBmYWxzZSkpIHtcbiAgICAgIHRoaXMuZm9ybWF0VmFsdWVUb0Jvb2xlYW4oZmllbGRGaWx0ZXIsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBpZiAoZmllbGRGaWx0ZXIub3B0aW9ucyAmJiB2YWx1ZSkge1xuICAgICAgdGhpcy5hcHBseURpc2NsYWltZXJMYWJlbFZhbHVlKGZpZWxkRmlsdGVyLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmRpc2NsYWltZXJMYWJlbCkge1xuICAgICAgdGhpcy5kaXNjbGFpbWVyTGFiZWwgPSB0aGlzLmRpc2NsYWltZXIudmFsdWU7XG4gICAgfVxuXG4gICAgdGhpcy5kaXNjbGFpbWVyLmxhYmVsID0gYCR7bGFiZWxQcm9wZXJ0eX06ICR7dGhpcy5kaXNjbGFpbWVyTGFiZWx9YDtcbiAgICB0aGlzLmRpc2NsYWltZXJHcm91cC5kaXNjbGFpbWVycyA9IFsuLi50aGlzLmRpc2NsYWltZXJHcm91cC5kaXNjbGFpbWVycywgdGhpcy5kaXNjbGFpbWVyXTtcbiAgfVxuXG4gIG9uQ2hhbmdlRGlzY2xhaW1lckdyb3VwKCkge1xuICAgIGlmICghdGhpcy5zZWFyY2hWYWx1ZSkge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9ICcnO1xuXG4gICAgICB0aGlzLnNlYXJjaEZpbHRlcmVkSXRlbXMoKTtcbiAgICB9XG4gIH1cblxuICBzZWFyY2goKTogdm9pZCB7XG4gICAgdGhpcy5wYWdlID0gMTtcblxuICAgIGlmICh0aGlzLnNlYXJjaFZhbHVlKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLmRpc2NsYWltZXJHcm91cC5kaXNjbGFpbWVycyA9IFtdO1xuXG4gICAgICB0aGlzLnNlYXJjaEZpbHRlcmVkSXRlbXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbml0aWFsaXplRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIHNlYXJjaEZpbHRlcmVkSXRlbXMoKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hTdWJzY3JpcHRpb24gPSB0aGlzLmdldEZpbHRlcmVkSXRlbXModGhpcy5zZWFyY2hWYWx1ZSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICB0aGlzLnNldExvb2t1cFJlc3BvbnNlUHJvcGVydGllcygpO1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIChkYXRhOiBQb0xvb2t1cFJlc3BvbnNlQXBpKSA9PiB0aGlzLnNldExvb2t1cFJlc3BvbnNlUHJvcGVydGllcyhkYXRhKSxcbiAgICAgICAgKCkgPT4ge31cbiAgICAgICk7XG4gIH1cblxuICBzaG93TW9yZUV2ZW50KCkge1xuICAgIHRoaXMucGFnZSsrO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcblxuICAgIHRoaXMuc2hvd01vcmVTdWJzY3JpcHRpb24gPSB0aGlzLmdldEZpbHRlcmVkSXRlbXModGhpcy5zZWFyY2hWYWx1ZSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICB0aGlzLmhhc05leHQgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIChkYXRhOiBQb0xvb2t1cFJlc3BvbnNlQXBpKSA9PiB7XG4gICAgICAgICAgdGhpcy5pdGVtcyA9IFsuLi50aGlzLml0ZW1zLCAuLi5kYXRhLml0ZW1zXTtcbiAgICAgICAgICB0aGlzLmhhc05leHQgPSBkYXRhLmhhc05leHQ7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICB0aGlzLnNldFNlbGVjdGVkSXRlbXMoKTtcbiAgICAgICAgfSxcbiAgICAgICAgKCkgPT4ge31cbiAgICAgICk7XG4gIH1cblxuICAvL03DqXRvZG8gcmVzcG9uc8OhdmVsIHBvciBzZWxlY2lvbmFyIGFzIGxpbmhhcyBxdWFuZG8gYWJyZSBvIG1vZGFsLlxuICBzZXRTZWxlY3RlZEl0ZW1zKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRzLmZvckVhY2goc2VsZWN0ZWRJdGVtID0+IHtcbiAgICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgIHRoaXMucG9UYWJsZS5zZWxlY3RSb3dJdGVtKGl0ZW0gPT4gaXRlbVt0aGlzLmZpZWxkVmFsdWVdID09PSBzZWxlY3RlZEl0ZW0udmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wb1RhYmxlLnNlbGVjdFJvd0l0ZW0oaXRlbSA9PiBpdGVtW3RoaXMuZmllbGRWYWx1ZV0gPT09IHNlbGVjdGVkSXRlbVt0aGlzLmZpZWxkVmFsdWVdKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vTcOpdG9kbyByZXNwb25zw6F2ZWwgcG9yIGNyaWFyIG9zIGRpc2NsYWltZXJzIHF1YW5kbyBhYnJlIG8gbW9kYWwuXG4gIHNldERpc2NsYWltZXJzSXRlbXMoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtcyAmJiAhQXJyYXkuaXNBcnJheSh0aGlzLnNlbGVjdGVkSXRlbXMpKSB7XG4gICAgICB0aGlzLm11bHRpcGxlID8gKHRoaXMuc2VsZWN0ZWRzID0gW3sgdmFsdWU6IHRoaXMuc2VsZWN0ZWRJdGVtcyB9XSkgOiAodGhpcy5zZWxlY3RlZHMgPSBbdGhpcy5zZWxlY3RlZEl0ZW1zXSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRzLmxlbmd0aCA9PT0gMCAmJiB0aGlzLnNlbGVjdGVkSXRlbXMgJiYgdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCkge1xuICAgICAgdGhpcy5zZWxlY3RlZHMgPSBbLi4udGhpcy5zZWxlY3RlZEl0ZW1zXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5RGlzY2xhaW1lckxhYmVsVmFsdWUoZmllbGQ6IFBvTG9va3VwQWR2YW5jZWRGaWx0ZXIsIGZpbHRlclZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KGZpbHRlclZhbHVlKSA/IGZpbHRlclZhbHVlIDogW2ZpbHRlclZhbHVlXTtcbiAgICBjb25zdCBsYWJlbHMgPSB2YWx1ZXMubWFwKG9wdGlvblZhbHVlID0+IHtcbiAgICAgIGNvbnN0IGZpbmRPcHRpb24gPSBmaWVsZC5vcHRpb25zLmZpbmQob3B0aW9uID0+IG9wdGlvbi52YWx1ZSA9PT0gb3B0aW9uVmFsdWUpO1xuICAgICAgcmV0dXJuIGZpbmRPcHRpb24ubGFiZWw7XG4gICAgfSk7XG5cbiAgICBpZiAobGFiZWxzLmpvaW4oKSkge1xuICAgICAgdGhpcy5kaXNjbGFpbWVyTGFiZWwgPSBsYWJlbHMuam9pbignLCAnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFZhbHVlVG9DdXJyZW5jeShmaWVsZDogUG9Mb29rdXBBZHZhbmNlZEZpbHRlciwgZmlsdGVyVmFsdWU6IGFueSkge1xuICAgIGNvbnN0IGN1cnJlbmN5TGFiZWwgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQoZmllbGQubG9jYWxlID8gZmllbGQubG9jYWxlIDogdGhpcy5sYW5ndWFnZSwge1xuICAgICAgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAyXG4gICAgfSkuZm9ybWF0KGZpbHRlclZhbHVlKTtcbiAgICB0aGlzLmRpc2NsYWltZXJMYWJlbCA9IGN1cnJlbmN5TGFiZWw7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFZhbHVlVG9Cb29sZWFuKGZpZWxkOiBQb0xvb2t1cEFkdmFuY2VkRmlsdGVyLCBmaWx0ZXJWYWx1ZTogYW55KSB7XG4gICAgbGV0IGxhYmVsQm9vbGVhbjogc3RyaW5nO1xuXG4gICAgaWYgKGZpbHRlclZhbHVlKSB7XG4gICAgICBsYWJlbEJvb2xlYW4gPSBmaWVsZC5ib29sZWFuVHJ1ZSA/IGZpZWxkLmJvb2xlYW5UcnVlIDogZmlsdGVyVmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxhYmVsQm9vbGVhbiA9IGZpZWxkLmJvb2xlYW5GYWxzZSA/IGZpZWxkLmJvb2xlYW5GYWxzZSA6IGZpbHRlclZhbHVlO1xuICAgIH1cbiAgICB0aGlzLmRpc2NsYWltZXJMYWJlbCA9IGAke2xhYmVsQm9vbGVhbn1gO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBZHZhbmNlZEZpbHRlck1vZGFsUHJvcGVydGllcygpIHtcbiAgICB0aGlzLmFkdmFuY2VkRmlsdGVyTW9kYWxUaXRsZSA9IHRoaXMubGl0ZXJhbHMubW9kYWxBZHZhbmNlZFNlYXJjaFRpdGxlO1xuXG4gICAgdGhpcy5kaXNjbGFpbWVyR3JvdXAgPSB7XG4gICAgICB0aXRsZTogdGhpcy5saXRlcmFscy5tb2RhbERpc2NsYWltZXJHcm91cFRpdGxlLFxuICAgICAgZGlzY2xhaW1lcnM6IFtdXG4gICAgfTtcblxuICAgIHRoaXMucHJpbWFyeUFjdGlvbkFkdmFuY2VkRmlsdGVyID0ge1xuICAgICAgYWN0aW9uOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuZGVzdHJveUR5bmFtaWNGb3JtKCk7XG4gICAgICAgIHRoaXMuaXNBZHZhbmNlZEZpbHRlciA9IGZhbHNlO1xuICAgICAgICB0aGlzLnBhZ2UgPSAxO1xuICAgICAgICB0aGlzLmNyZWF0ZURpc2NsYWltZXIoKTtcbiAgICAgIH0sXG4gICAgICBsYWJlbDogdGhpcy5saXRlcmFscy5tb2RhbEFkdmFuY2VkU2VhcmNoUHJpbWFyeUFjdGlvbkxhYmVsXG4gICAgfTtcblxuICAgIHRoaXMuc2Vjb25kYXJ5QWN0aW9uQWR2YW5jZWRGaWx0ZXIgPSB7XG4gICAgICBhY3Rpb246ICgpID0+IHtcbiAgICAgICAgdGhpcy5kZXN0cm95RHluYW1pY0Zvcm0oKTtcbiAgICAgICAgdGhpcy5pc0FkdmFuY2VkRmlsdGVyID0gZmFsc2U7XG4gICAgICB9LFxuICAgICAgbGFiZWw6IHRoaXMubGl0ZXJhbHMubW9kYWxBZHZhbmNlZFNlYXJjaFNlY29uZGFyeUFjdGlvbkxhYmVsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWR2YW5jZWRGaWx0ZXJzKGFkdmFuY2VkUGFyYW1zOiBhbnkpIHtcbiAgICBpZiAoYWR2YW5jZWRQYXJhbXMgJiYgYWR2YW5jZWRQYXJhbXMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZmlsdGVyczogT2JqZWN0ID0ge307XG4gICAgICBsZXQgdmFsaWRhdGVkQWR2YWNlbmRGaWx0ZXJzOiBhbnk7XG5cbiAgICAgIGFkdmFuY2VkUGFyYW1zLmZvckVhY2goKGZpbHRlcjogYW55KSA9PiB7XG4gICAgICAgIGZpbHRlcnNbZmlsdGVyLnByb3BlcnR5XSA9IGZpbHRlci52YWx1ZSBpbnN0YW5jZW9mIEFycmF5ID8gZmlsdGVyLnZhbHVlLmpvaW4oKSA6IGZpbHRlci52YWx1ZTtcblxuICAgICAgICB2YWxpZGF0ZWRBZHZhY2VuZEZpbHRlcnMgPSB7IC4uLnZhbGlkYXRlZEFkdmFjZW5kRmlsdGVycywgLi4uZmlsdGVycyB9O1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB2YWxpZGF0ZWRBZHZhY2VuZEZpbHRlcnM7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmlsdGVyZWRJdGVtcyhmaWx0ZXI6IHN0cmluZyk6IE9ic2VydmFibGU8UG9Mb29rdXBSZXNwb25zZUFwaT4ge1xuICAgIGNvbnN0IGZpbHRlcmVkUGFyYW1zOiBQb0xvb2t1cEZpbHRlcmVkSXRlbXNQYXJhbXMgPSB0aGlzLmdldEZpbHRlcmVkUGFyYW1zKGZpbHRlcik7XG5cbiAgICByZXR1cm4gdGhpcy5maWx0ZXJTZXJ2aWNlLmdldEZpbHRlcmVkSXRlbXMoZmlsdGVyZWRQYXJhbXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWx0ZXJlZFBhcmFtcyhmaWx0ZXI6IHN0cmluZykge1xuICAgIGNvbnN0IHsgcGFnZSwgcGFnZVNpemUsIGZpbHRlclBhcmFtcywgc29ydCB9ID0gdGhpcztcblxuICAgIGNvbnN0IGZpbHRlcmVkUGFyYW1zID0ge307XG4gICAgY29uc3Qgb3JkZXIgPSB0aGlzLmdldE9yZGVyUGFyYW0oc29ydCk7XG4gICAgY29uc3QgYWR2YW5jZWRGaWx0ZXJzID0gdGhpcy5nZXRBZHZhbmNlZEZpbHRlcnModGhpcy5kaXNjbGFpbWVyR3JvdXAuZGlzY2xhaW1lcnMpO1xuICAgIGNvbnN0IHBhcmFtcyA9IHsgZmlsdGVyLCBwYWdlLCBwYWdlU2l6ZSwgb3JkZXIsIGZpbHRlclBhcmFtcywgYWR2YW5jZWRGaWx0ZXJzIH07XG5cbiAgICBmb3IgKGNvbnN0IGtleSBpbiBwYXJhbXMpIHtcbiAgICAgIGlmIChwYXJhbXMuaGFzT3duUHJvcGVydHkoa2V5KSAmJiBwYXJhbXNba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGZpbHRlcmVkUGFyYW1zW2tleV0gPSBwYXJhbXNba2V5XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmlsdGVyZWRQYXJhbXM7XG4gIH1cblxuICBwcml2YXRlIGdldE9yZGVyUGFyYW0oc29ydDogUG9UYWJsZUNvbHVtblNvcnQgPSB7IHR5cGU6IHVuZGVmaW5lZCB9KSB7XG4gICAgY29uc3QgeyBjb2x1bW4sIHR5cGUgfSA9IHNvcnQ7XG5cbiAgICBpZiAoIWNvbHVtbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlID09PSBQb1RhYmxlQ29sdW1uU29ydFR5cGUuRGVzY2VuZGluZykge1xuICAgICAgcmV0dXJuIGAtJHtjb2x1bW4ucHJvcGVydHl9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7Y29sdW1uLnByb3BlcnR5fWA7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVEYXRhKCk6IHZvaWQge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcblxuICAgIHRoaXMuZmlsdGVyU3Vic2NyaXB0aW9uID0gdGhpcy5nZXRGaWx0ZXJlZEl0ZW1zKCcnKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICB0aGlzLnNldExvb2t1cFJlc3BvbnNlUHJvcGVydGllcyhkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0TG9va3VwUmVzcG9uc2VQcm9wZXJ0aWVzKGRhdGE/OiBQb0xvb2t1cFJlc3BvbnNlQXBpKSB7XG4gICAgdGhpcy5pdGVtcyA9IGRhdGE/Lml0ZW1zID8/IFtdO1xuICAgIHRoaXMuaGFzTmV4dCA9IGRhdGE/Lmhhc05leHQgPz8gZmFsc2U7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLnNldERpc2NsYWltZXJzSXRlbXMoKTtcbiAgICB0aGlzLnNldFNlbGVjdGVkSXRlbXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VGFibGVMaXRlcmFscygpIHtcbiAgICB0aGlzLnRhYmxlTGl0ZXJhbHMgPSB7XG4gICAgICAnbm9Db2x1bW5zJzogdGhpcy5saXRlcmFscy5tb2RhbFRhYmxlTm9Db2x1bW5zLFxuICAgICAgJ25vRGF0YSc6IHRoaXMubGl0ZXJhbHMubW9kYWxUYWJsZU5vRGF0YSxcbiAgICAgICdsb2FkaW5nRGF0YSc6IHRoaXMubGl0ZXJhbHMubW9kYWxUYWJsZUxvYWRpbmdEYXRhLFxuICAgICAgJ2xvYWRNb3JlRGF0YSc6IHRoaXMubGl0ZXJhbHMubW9kYWxUYWJsZUxvYWRNb3JlRGF0YVxuICAgIH07XG4gIH1cblxuICAvLyBNw6l0b2RvIHJlc3BvbnPDoXZlbCBwb3IgYWJyaXIgYSBtb2RhbCBkZSBidXNjYSBkYXMgaW5mb3JtYcOnw7Vlcy5cbiAgYWJzdHJhY3Qgb3Blbk1vZGFsKCk6IHZvaWQ7XG5cbiAgLy8gTcOpdG9kbyByZXNwb25zw6F2ZWwgcG9yIGRlc3RydWlyIG8gZHluYW1pY0Zvcm1cbiAgYWJzdHJhY3QgZGVzdHJveUR5bmFtaWNGb3JtKCk6IHZvaWQ7XG59XG4iXX0=
|
|
@@ -91,6 +91,7 @@ export class PoMenuBaseComponent {
|
|
|
91
91
|
literals;
|
|
92
92
|
_collapsed = false;
|
|
93
93
|
_filter = false;
|
|
94
|
+
_searchTreeItems = false;
|
|
94
95
|
_level;
|
|
95
96
|
_maxLevel = 4;
|
|
96
97
|
_menus = [];
|
|
@@ -167,6 +168,25 @@ export class PoMenuBaseComponent {
|
|
|
167
168
|
get filter() {
|
|
168
169
|
return this._filter;
|
|
169
170
|
}
|
|
171
|
+
/**
|
|
172
|
+
* @optional
|
|
173
|
+
*
|
|
174
|
+
* @description
|
|
175
|
+
*
|
|
176
|
+
* Quando ativado, a pesquisa também retornará itens agrupadores além dos itens que contêm uma ação e/ou link definidos.
|
|
177
|
+
* Isso pode ser útil quando se deseja encontrar rapidamente categorias ou seções do menu.
|
|
178
|
+
*
|
|
179
|
+
* > É necessário que a propriedade `p-filter` esteja habilitada.
|
|
180
|
+
*
|
|
181
|
+
* @default `false`
|
|
182
|
+
*/
|
|
183
|
+
set searchTreeItems(searchTreeItems) {
|
|
184
|
+
this._searchTreeItems = searchTreeItems === '' ? true : convertToBoolean(searchTreeItems);
|
|
185
|
+
this.filteredItems = [...this._menus];
|
|
186
|
+
}
|
|
187
|
+
get searchTreeItems() {
|
|
188
|
+
return this._searchTreeItems;
|
|
189
|
+
}
|
|
170
190
|
/**
|
|
171
191
|
* @optional
|
|
172
192
|
*
|
|
@@ -370,7 +390,7 @@ export class PoMenuBaseComponent {
|
|
|
370
390
|
}
|
|
371
391
|
}
|
|
372
392
|
static ɵfac = function PoMenuBaseComponent_Factory(t) { return new (t || PoMenuBaseComponent)(i0.ɵɵdirectiveInject(i1.PoMenuGlobalService), i0.ɵɵdirectiveInject(i2.PoMenuService), i0.ɵɵdirectiveInject(i3.PoLanguageService)); };
|
|
373
|
-
static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoMenuBaseComponent, inputs: { automaticToggle: [i0.ɵɵInputFlags.HasDecoratorInputTransform, "p-automatic-toggle", "automaticToggle", convertToBoolean], collapsed: [i0.ɵɵInputFlags.None, "p-collapsed", "collapsed"], menus: [i0.ɵɵInputFlags.None, "p-menus", "menus"], filter: [i0.ɵɵInputFlags.None, "p-filter", "filter"], service: [i0.ɵɵInputFlags.None, "p-service", "service"], params: [i0.ɵɵInputFlags.None, "p-params", "params"], logo: [i0.ɵɵInputFlags.None, "p-logo", "logo"], logoAlt: [i0.ɵɵInputFlags.None, "p-logo-alt", "logoAlt"], shortLogo: [i0.ɵɵInputFlags.None, "p-short-logo", "shortLogo"] }, features: [i0.ɵɵInputTransformsFeature] });
|
|
393
|
+
static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoMenuBaseComponent, inputs: { automaticToggle: [i0.ɵɵInputFlags.HasDecoratorInputTransform, "p-automatic-toggle", "automaticToggle", convertToBoolean], collapsed: [i0.ɵɵInputFlags.None, "p-collapsed", "collapsed"], menus: [i0.ɵɵInputFlags.None, "p-menus", "menus"], filter: [i0.ɵɵInputFlags.None, "p-filter", "filter"], searchTreeItems: [i0.ɵɵInputFlags.None, "p-search-tree-items", "searchTreeItems"], service: [i0.ɵɵInputFlags.None, "p-service", "service"], params: [i0.ɵɵInputFlags.None, "p-params", "params"], logo: [i0.ɵɵInputFlags.None, "p-logo", "logo"], logoAlt: [i0.ɵɵInputFlags.None, "p-logo-alt", "logoAlt"], shortLogo: [i0.ɵɵInputFlags.None, "p-short-logo", "shortLogo"] }, features: [i0.ɵɵInputTransformsFeature] });
|
|
374
394
|
}
|
|
375
395
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoMenuBaseComponent, [{
|
|
376
396
|
type: Directive
|
|
@@ -386,6 +406,9 @@ export class PoMenuBaseComponent {
|
|
|
386
406
|
}], filter: [{
|
|
387
407
|
type: Input,
|
|
388
408
|
args: ['p-filter']
|
|
409
|
+
}], searchTreeItems: [{
|
|
410
|
+
type: Input,
|
|
411
|
+
args: ['p-search-tree-items']
|
|
389
412
|
}], service: [{
|
|
390
413
|
type: Input,
|
|
391
414
|
args: ['p-service']
|
|
@@ -402,4 +425,4 @@ export class PoMenuBaseComponent {
|
|
|
402
425
|
type: Input,
|
|
403
426
|
args: ['p-short-logo']
|
|
404
427
|
}] }); })();
|
|
405
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbWVudS1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1tZW51L3BvLW1lbnUtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7QUFROUcsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUc7SUFDbkMsRUFBRSxFQUFFO1FBQ0YsWUFBWSxFQUFFLGdCQUFnQjtRQUM5QixlQUFlLEVBQUUsNkNBQTZDO1FBQzlELEtBQUssRUFBRSxZQUFZO1FBQ25CLElBQUksRUFBRSxXQUFXO0tBQ2xCO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsWUFBWSxFQUFFLHdCQUF3QjtRQUN0QyxlQUFlLEVBQUUsaURBQWlEO1FBQ2xFLEtBQUssRUFBRSxhQUFhO1FBQ3BCLElBQUksRUFBRSxZQUFZO0tBQ25CO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsWUFBWSxFQUFFLHFCQUFxQjtRQUNuQyxlQUFlLEVBQUUsZ0RBQWdEO1FBQ2pFLEtBQUssRUFBRSxhQUFhO1FBQ3BCLElBQUksRUFBRSxZQUFZO0tBQ25CO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsWUFBWSxFQUFFLG1CQUFtQjtRQUNqQyxlQUFlLEVBQUUsK0NBQStDO1FBQ2hFLEtBQUssRUFBRSxjQUFjO1FBQ3JCLElBQUksRUFBRSxjQUFjO0tBQ3JCO0NBQ0YsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnREc7QUFFSCxNQUFNLE9BQWdCLG1CQUFtQjtJQWlOOUI7SUFD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TyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOzZFQXJVbUIsbUJBQW1COzZEQUFuQixtQkFBbUIsbUhBMkJVLGdCQUFnQjs7aUZBM0I3QyxtQkFBbUI7Y0FEeEMsU0FBUztnSEE0QjZELGVBQWU7a0JBQW5GLEtBQUs7bUJBQUMsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO1lBb0J6QyxTQUFTO2tCQUFsQyxLQUFLO21CQUFDLGFBQWE7WUFZRSxLQUFLO2tCQUExQixLQUFLO21CQUFDLFNBQVM7WUFnQ08sTUFBTTtrQkFBNUIsS0FBSzttQkFBQyxVQUFVO1lBbUNPLE9BQU87a0JBQTlCLEtBQUs7bUJBQUMsV0FBVztZQThCSyxNQUFNO2tCQUE1QixLQUFLO21CQUFDLFVBQVU7WUFvQkEsSUFBSTtrQkFBcEIsS0FBSzttQkFBQyxRQUFRO1lBY00sT0FBTztrQkFBM0IsS0FBSzttQkFBQyxZQUFZO1lBZ0JJLFNBQVM7a0JBQS9CLEtBQUs7bUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiwgY29udmVydFRvSW50LCBpc0V4dGVybmFsTGluaywgaXNUeXBlb2YsIHV1aWQsIHZhbGlkVmFsdWUgfSBmcm9tICcuLi8uLi91dGlscy91dGlsJztcblxuaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wby1sYW5ndWFnZS9wby1sYW5ndWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IFBvTWVudUZpbHRlciB9IGZyb20gJy4vcG8tbWVudS1maWx0ZXIvcG8tbWVudS1maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvTWVudUl0ZW0gfSBmcm9tICcuL3BvLW1lbnUtaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9NZW51R2xvYmFsU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcG8tbWVudS1nbG9iYWwuc2VydmljZSc7XG5pbXBvcnQgeyBQb01lbnVTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wby1tZW51LnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgcG9NZW51TGl0ZXJhbHNEZWZhdWx0ID0ge1xuICBlbjoge1xuICAgIGl0ZW1Ob3RGb3VuZDogJ0l0ZW0gbm90IGZvdW5kJyxcbiAgICBlbXB0eUxhYmVsRXJyb3I6ICdBdHRyaWJ1dGUgUG9NZW51SXRlbS5sYWJlbCBjYW4gbm90IGJlIGVtcHR5JyxcbiAgICBjbG9zZTogJ0Nsb3NlIG1lbnUnLFxuICAgIG9wZW46ICdPcGVuIG1lbnUnXG4gIH0sXG4gIGVzOiB7XG4gICAgaXRlbU5vdEZvdW5kOiAnRWxlbWVudG8gbm8gZW5jb250cmFkbycsXG4gICAgZW1wdHlMYWJlbEVycm9yOiAnRWwgYXRyaWJ1dG8gUG9NZW51SXRlbS5sYWJlbCBubyBwdWVkZSBzZXIgdmFjw61vJyxcbiAgICBjbG9zZTogJ0NlcnJhciBtZW7DuicsXG4gICAgb3BlbjogJ0FicmlyIG1lbsO6J1xuICB9LFxuICBwdDoge1xuICAgIGl0ZW1Ob3RGb3VuZDogJ0l0ZW0gbsOjbyBlbmNvbnRyYWRvJyxcbiAgICBlbXB0eUxhYmVsRXJyb3I6ICdPIGF0cmlidXRvIFBvTWVudUl0ZW0ubGFiZWwgbsOjbyBwb2RlIHNlciB2YXppbycsXG4gICAgY2xvc2U6ICdGZWNoYXIgbWVudScsXG4gICAgb3BlbjogJ0FicmlyIG1lbnUnXG4gIH0sXG4gIHJ1OiB7XG4gICAgaXRlbU5vdEZvdW5kOiAn0J/RgNC10LTQvNC10YIg0L3QtSDQvdCw0LnQtNC10L0nLFxuICAgIGVtcHR5TGFiZWxFcnJvcjogJ9CQ0YLRgNC40LHRg9GCIFBvTWVudUl0ZW0ubGFiZWwg0L3QtSDQvNC+0LbQtdGCINCx0YvRgtGMINC/0YPRgdGC0YvQvCcsXG4gICAgY2xvc2U6ICfQl9Cw0LrRgNGL0YLRjCDQvNC10L3RjicsXG4gICAgb3BlbjogJ9Ce0YLQutGA0YvRgtGMINC80LXQvdGOJ1xuICB9XG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIEVzdGUgw6kgdW0gY29tcG9uZW50ZSBkZSBtZW51IGxhdGVyYWwgcXVlIMOpIHV0aWxpemFkbyBwYXJhIG5hdmVnYcOnw6NvIG5hcyBww6FnaW5hcyBkZSB1bWEgYXBsaWNhw6fDo28uXG4gKlxuICogTyBjb21wb25lbnRlIHBvLW1lbnUgcmVjZWJlIHVtYSBsaXN0YSBkZSBvYmpldG9zIGRvIHRpcG8gYE1lbnVJdGVtYCBjb20gYXMgaW5mb3JtYcOnw7VlcyBkb3MgaXRlbnMgZGUgbWVudSBjb21vXG4gKiB0ZXh0b3MsIGxpbmtzIHBhcmEgcmVkaXJlY2lvbmFtZW50bywgYcOnw7VlcywgYXTDqSA0IG7DrXZlaXMgZGUgbWVudSBlIMOtY29uZXMgcGFyYSBvIHByaW1laXJvIG7DrXZlbCBkZSBtZW51LlxuICpcbiAqICMjIyMgVG9rZW5zIGN1c3RvbWl6w6F2ZWlzXG4gKlxuICogw4kgcG9zc8OtdmVsIGFsdGVyYXIgbyBlc3RpbG8gZG8gY29tcG9uZW50ZSB1c2FuZG8gb3Mgc2VndWludGVzIHRva2VucyAoQ1NTKTpcbiAqXG4gKiA+IFBhcmEgbWFpb3JlcyBpbmZvcm1hw6fDtWVzLCBhY2Vzc2UgbyBndWlhIFtQZXJzb25hbGl6YW5kbyBvIFRlbWEgUGFkcsOjbyBjb20gVG9rZW5zIENTU10oaHR0cHM6Ly9wby11aS5pby9ndWlkZXMvdGhlbWUtY3VzdG9taXphdGlvbikuXG4gKlxuICogfCBQcm9wcmllZGFkZSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERlc2NyacOnw6NvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBWYWxvciBQYWRyw6NvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuICogfCAqKkRlZmF1bHQgVmFsdWVzKiogICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1ib3JkZXItcmFkaXVzYCAgICAgICAgICAgICAgICAgICAgICB8IENvbnTDqW0gbyB2YWxvciBkbyByYWlvIGRvcyBjYW50b3MgZG8gZWxlbWVudG8mbmJzcDsgICB8IGB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKWAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYm9yZGVyLWNvbG9yYCAgICAgICAgICAgICAgICAgICAgICAgfCBDb3IgZGEgYm9yZGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1uZXV0cmFsLWxpZ2h0LTIwKWAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYmFja2dyb3VuZC1jb2xvcmAgICAgICAgICAgICAgICAgICAgfCBDb3IgZGUgYmFja2dyb3VuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBWYXIoLS0tLWNvbG9yLW5ldXRyYWwtbGlnaHQtMDUpYCAgICAgICAgICAgICAgIHxcbiAqIHwgKipNZW51IEZvb3RlcioqICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tY29sb3JgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb3IgcHJpbmNpcGxhIGRvIG1lbnUgZm9vdGVyICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1hY3Rpb24tZGVmYXVsdClgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tZm9udC1zaXplYCAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUYW1hbmhvIGRhIGZvbnRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1mb250LXNpemUtZGVmYXVsdClgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tbGluZS1oZWlnaHRgICAgICAgICAgICAgICAgICAgICAgICAgfCBUYW1hbmhvIGRhIGxhYmVsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1saW5lLWhlaWdodC1tZClgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tb3V0bGluZS1jb2xvci1mb2N1c2VkYCAgICAgICAgICAgICAgfCBDb3IgZG8gb3V0bGluZSBkbyBlc3RhZG8gZGUgZm9jdXMgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1hY3Rpb24tZm9jdXMpYCAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tZm9udC13ZWlnaHQtbHZsMGAgICAgICAgICAgICAgICAgICAgfCBQZXNvIGRhIGZvbnRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1mb250LXdlaWdodC1ib2xkKWAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgKipwby1tZW51LWl0ZW0qKiAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tZm9udC1mYW1pbHlgICAgICAgICAgICAgICAgICAgICAgICAgfCBGYW3DrWxpYSB0aXBvZ3LDoWZpY2EgdXNhZGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWZvbnQtZmFtaWx5LXRoZW1lKWAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1mb250LXNpemVgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFRhbWFuaG8gZGEgZm9udGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWZvbnQtc2l6ZS1kZWZhdWx0KWAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1saW5lLWhlaWdodGAgICAgICAgICAgICAgICAgICAgICAgICB8IFRhbWFuaG8gZGEgbGFiZWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWxpbmUtaGVpZ2h0LW1kKWAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1ib3JkZXItcmFkaXVzYCAgICAgICAgICAgICAgICAgICAgICB8IENvbnTDqW0gbyB2YWxvciBkbyByYWlvIGRvcyBjYW50b3MgZG8gZWxlbWVudG8mbmJzcDsgICB8IGB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKWAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tY29sb3JgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb3IgcHJpbmNpcGFsIGRvIGl0ZW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1hY3Rpb24tZGVmYXVsdClgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYmFja2dyb3VuZC1jb2xvcmAgICAgICAgICAgICAgICAgICAgfCBDb3IgZG8gYmFja2dyb3VuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB0cmFuc3BhcmVudGAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgKipIb3ZlcioqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tY29sb3ItaG92ZXJgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb3IgcHJpbmNpcGFsIG5vIGVzdGFkbyBob3ZlciAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1icmFuZC0wMS1kYXJrZXN0KWAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYmFja2dyb3VuZC1jb2xvci1ob3ZlcmAgICAgICAgICAgICAgfCBDb3IgZGUgYmFja2dyb3VuZCBubyBlc3RhZG8gaG92ZXIgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1icmFuZC0wMS1saWdodGVyKWAgICAgICAgICAgICAgICAgIHxcbiAqIHwgKipGb2N1c2VkKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tb3V0bGluZS1jb2xvci1mb2N1c2VkYCAgICAgICAgICAgICAgfCBDb3IgZG8gb3V0bGluZSBkbyBlc3RhZG8gZGUgZm9jdXMgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1hY3Rpb24tZm9jdXMpYCAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgKipQcmVzc2VkKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYmFja2dyb3VuZC1jb2xvci1wcmVzc2VkYCAmbmJzcDsgICAgfCBDb3IgZGUgYmFja2dyb3VuZCBubyBlc3RhZG8gZGUgcHJlc3Npb25hZG8mbmJzcDsgICAgICB8IGB2YXIoLS1jb2xvci1icmFuZC0wMS1saWdodClgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgKipBY3RpdmVkKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYmFja2dyb3VuZC1jb2xvci1hY3RpdmVkYCAgICAgICAgICAgfCBDb3IgZGUgYmFja2dyb3VuZCBubyBlc3RhZG8gYWN0aXZlZCAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1icmFuZC0wMS1kYXJrZXN0KWAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tY29sb3ItYWN0aXZlZGAgICAgICAgICAgICAgICAgICAgICAgfCBDb3IgcHJpbmNpcGFsIG5vIGVzdGFkbyBhY3RpdmVkICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1icmFuZC0wMS1saWdodGVyKWAgICAgICAgICAgICAgICAgIHxcbiAqIHwgKipGb250KiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tZm9udC13ZWlnaHQtbHZsMGAgICAgICAgICAgICAgICAgICAgfCBQZXNvIGRhIGZvbnRlIGJvbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1mb250LXdlaWdodC1ib2xkKWAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tZm9udC13ZWlnaHQtbHZsMWAgICAgICAgICAgICAgICAgICAgfCBQZXNvIGRhIGZvbnRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1mb250LXdlaWdodC1ub3JtYWwpYCAgICAgICAgICAgICAgICAgICAgIHxcbiAqXG4gKiA8YnI+XG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBvTWVudUJhc2VDb21wb25lbnQge1xuICBhbGxvd0ljb25zOiBib29sZWFuO1xuICBhbGxvd0NvbGxhcHNlTWVudTogYm9vbGVhbjtcbiAgYWxsb3dDb2xsYXBzZUhvdmVyOiBib29sZWFuO1xuXG4gIGZpbHRlcmVkSXRlbXM7XG4gIGZpbHRlclNlcnZpY2U6IFBvTWVudUZpbHRlcjtcblxuICByZWFkb25seSBsaXRlcmFsczogYW55O1xuXG4gIHByaXZhdGUgX2NvbGxhcHNlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9maWx0ZXIgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfbGV2ZWw7XG4gIHByaXZhdGUgX21heExldmVsID0gNDtcbiAgcHJpdmF0ZSBfbWVudXMgPSBbXTtcbiAgcHJpdmF0ZSBfcGFyYW1zOiBhbnk7XG4gIHByaXZhdGUgX3NlcnZpY2U6IHN0cmluZyB8IFBvTWVudUZpbHRlcjtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBFeHBhbmRlIGUgQ29sYXBzYSAocmV0cmFpKSBvIG1lbnUgYXV0b21hdGljYW1lbnRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoeyBhbGlhczogJ3AtYXV0b21hdGljLXRvZ2dsZScsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KSBhdXRvbWF0aWNUb2dnbGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBDb2xhcHNhIChyZXRyYWkpIG8gbWVudSBlIGNhc28gcmVjZWJhIG8gdmFsb3IgYGZhbHNlYCBleHBhbmRlIG8gbWVudS5cbiAgICpcbiAgICogPiBVdGlsaXplIGVzdGEgcHJvcHJpZWRhZGUgcGFyYSBpbmljaWFyIG8gbWVudSBjb2xhcHNhZG8uXG4gICAqXG4gICAqID4gQW8gdXRpbGl6YXIgb3MgbcOpdG9kb3MgW2Bjb2xhcHNlYF0oZG9jdW1lbnRhdGlvbi9wby1tZW51I2NvbGFwc2VNZXRob2QpLCBbYGV4cGFuZGBdKGRvY3VtZW50YXRpb24vcG8tbWVudSNleHBhbmRNZXRob2QpIGVcbiAgICogW2B0b2dnbGVgXShkb2N1bWVudGF0aW9uL3BvLW1lbnUjdG9nZ2xlTWV0aG9kKSBvIHZhbG9yIGRlc3RhIHByb3ByaWVkYWRlIG7Do28gw6kgYWx0ZXJhZG8uXG4gICAqXG4gICAqICoqSW1wb3J0YW50ZToqKlxuICAgKlxuICAgKiA+IE8gbWVudSBzZXLDoSBjb2xhcHNhZG8vZXhwYW5kaWRvIGFwZW5hcyBzZSB0b2RvcyBvcyBpdGVucyBkZSBtZW51IHRpdmVyZW0gdmFsb3IgbmFzIHByb3ByaWVkYWRlcyBgaWNvbmAgZSBgc2hvcnRMYWJlbGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1jb2xsYXBzZWQnKSBzZXQgY29sbGFwc2VkKGNvbGxhcHNlZDogYm9vbGVhbikge1xuICAgIHRoaXMuX2NvbGxhcHNlZCA9IGNvbnZlcnRUb0Jvb2xlYW4oY29sbGFwc2VkKTtcblxuICAgIHRoaXMuYWxsb3dDb2xsYXBzZUhvdmVyID0gdGhpcy5fY29sbGFwc2VkO1xuICAgIHRoaXMudmFsaWRhdGVDb2xsYXBzZUNsYXNzKCk7XG4gIH1cblxuICBnZXQgY29sbGFwc2VkKCkge1xuICAgIHJldHVybiB0aGlzLl9jb2xsYXBzZWQ7XG4gIH1cblxuICAvKiogTGlzdGEgZG9zIGl0ZW5zIGRvIG1lbnUuIFNlIG8gdmFsb3IgZXN0aXZlciBpbmRlZmluaWRvIG91IGludsOhbGlkbywgc2Vyw6EgaW5pY2lhbGl6YWRvIGNvbW8gdW0gYXJyYXkgdmF6aW8uICovXG4gIEBJbnB1dCgncC1tZW51cycpIHNldCBtZW51cyhtZW51czogQXJyYXk8UG9NZW51SXRlbT4pIHtcbiAgICB0aGlzLl9tZW51cyA9IEFycmF5LmlzQXJyYXkobWVudXMpID8gbWVudXMgOiBbXTtcblxuICAgIHRoaXMubWVudUdsb2JhbFNlcnZpY2Uuc2VuZE1lbnVzKG1lbnVzKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgdXJsUm91dGVyID0gdGhpcy5jaGVja2luZ1JvdXRlckNoaWxkcmVuRnJhZ21lbnRzKCk7XG4gICAgICB0aGlzLmNoZWNrQWN0aXZlTWVudUJ5VXJsKHVybFJvdXRlcik7XG4gICAgfSk7XG4gIH1cblxuICBnZXQgbWVudXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX21lbnVzO1xuICB9XG5cbiAgZ2V0IG1heExldmVsKCkge1xuICAgIHJldHVybiB0aGlzLl9tYXhMZXZlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEhhYmlsaXRhIHVtIGNhbXBvIHBhcmEgcGVzcXVpc2Egbm8gbWVudS5cbiAgICogQSBwZXNxdWlzYSDDqSByZWFsaXphZGEgZW0gdG9kb3Mgb3MgbsOtdmVpcyBkbyBtZW51IGUgYnVzY2EgYXBlbmFzIHBlbG9zIGl0ZW5zIHF1ZSBjb250w6ltIHVtYSBhw6fDo28gZS9vdSBsaW5rIGRlZmluaWRvcyxcbiAgICogb3UgdGFtYsOpbSwgcG9kZSBzZXIgcmVhbGl6YWRhIGF0cmF2w6lzIGRlIHVtIHNlcnZpw6dvIGRlZmluaWRvIG5hIHByb3ByaWVkYWRlIGBwLXNlcnZpY2VgLlxuICAgKlxuICAgKiA+IE8gY2FtcG8gZGUgcGVzcXVpc2Egw6kgZGVzYWJpbGl0YWRvIHNlIG8gbWVudSBlc3RpdmVyIGNvbGFwc2Fkby5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLWZpbHRlcicpIHNldCBmaWx0ZXIoZmlsdGVyOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZmlsdGVyID0gPGFueT5maWx0ZXIgPT09ICcnID8gdHJ1ZSA6IGNvbnZlcnRUb0Jvb2xlYW4oZmlsdGVyKTtcbiAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSBbLi4udGhpcy5fbWVudXNdO1xuICB9XG5cbiAgZ2V0IGZpbHRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogTmVzdGEgcHJvcHJpZWRhZGUgZGV2ZSBzZXIgaW5mb3JtYWRhIGEgVVJMIGRvIHNlcnZpw6dvIGVtIHF1ZSBzZXLDoSB1dGlsaXphZG8gcGFyYSByZWFsaXphciBvIGZpbHRybyBkZSBpdGVucyBkb1xuICAgKiBtZW51IHF1YW5kbyByZWFsaXphciB1bWEgYnVzY2EuIENhc28gaGFqYSBhIG5lY2Vzc2lkYWRlIGRlIGN1c3RvbWl6YcOnw6NvLCBwb2RlIHNlciBpbmZvcm1hZG8gdW1cbiAgICogc2VydmnDp28gaW1wbGVtZW50YW5kbyBhIGludGVyZmFjZSBgUG9NZW51RmlsdGVyYC5cbiAgICpcbiAgICogQ2FzbyB1dGlsaXphZGEgdW1hIFVSTCwgbyBzZXJ2acOnbyBkZXZlIHJldG9ybmFyIG9zIGRhZG9zIGNvbmZvcm1lIG9cbiAgICogW0d1aWEgZGUgaW1wbGVtZW50YcOnw6NvIGRlIEFQSXNdKGh0dHBzOi8vcG8tdWkuaW8vZ3VpZGVzL2FwaSkgZG8gUE8gVUkuXG4gICAqXG4gICAqIFF1YW5kbyB1dGlsaXphZGEgdW1hIFVSTCBkZSBzZXJ2acOnbywgc2Vyw6EgcmVhbGl6YWRvIHVtICpHRVQqIG5hIFVSTCBpbmZvcm1hZGEsIHBhc3NhbmRvIG8gdmFsb3IgZGlnaXRhZG9cbiAgICogbm8gcGFyw6JtZXRybyBgc2VhcmNoYCwgdmVqYSBleGVtcGxvOlxuICAgKlxuICAgKiA+IE8gZmlsdHJvIG5vIHNlcnZpw6dvIHNlcsOhIHJlYWxpemFkbyBjYXNvIGNvbnRlbmhhIG5vIG3DrW5pbW8gdHLDqnMgY2FyYWN0ZXJlcyBubyBjYW1wbyBkZSBidXNjYSwgcG9yIGV4ZW1wbG8gYHRvdGAuXG4gICAqXG4gICAqIGBgYFxuICAgKiA8cG8tbWVudSBwLXNlcnZpY2U9XCIvYXBpL3YxL2ZuZC9tZW51XCI+XG4gICAqIDwvcG8tbWVudT5cbiAgICpcbiAgICogUmVxdWlzacOnw6NvOiBHRVQgL2FwaS92MS9mbmQvbWVudT9zZWFyY2g9Y29udGFzXG4gICAqIGBgYFxuICAgKlxuICAgKiA+IMOJIG5lY2Vzc8OhcmlvIHF1ZSBwcm9wcmllZGFkZSBgcC1maWx0ZXJgIGVzdGVqYSBoYWJpbGl0YWRhLlxuICAgKi9cbiAgQElucHV0KCdwLXNlcnZpY2UnKSBzZXQgc2VydmljZSh2YWx1ZTogc3RyaW5nIHwgUG9NZW51RmlsdGVyKSB7XG4gICAgdGhpcy5fc2VydmljZSA9IHZhbHVlIHx8IHVuZGVmaW5lZDtcblxuICAgIHRoaXMuY29uZmlnU2VydmljZSh0aGlzLnNlcnZpY2UpO1xuICB9XG5cbiAgZ2V0IHNlcnZpY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlcnZpY2U7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZXZlIHNlciBpbmZvcm1hZG8gdW0gb2JqZXRvIHF1ZSBkZXNlamEtc2UgdXRpbGl6YXIgbmEgcmVxdWlzacOnw6NvIGRlIGZpbHRybyBkb3MgaXRlbnMgZGUgbWVudS5cbiAgICpcbiAgICogQ2FzbyB1dGlsaXphZG8gdW0gc2VydmnDp28gY3VzdG9taXphZG8sIGltcGxlbWVudGFuZG8gYSBpbnRlcmZhY2UgYFBvTWVudUZpbHRlcmAsIG8gdmFsb3IgZGVzdGEgcHJvcHJpZWRhZGVcbiAgICogc2Vyw6EgcGFzc2FkbyBjb21vIHBhcsOibWV0cm8sIG5hIGZ1bsOnw6NvIGBnZXRGaWx0ZXJlZERhdGFgLlxuICAgKlxuICAgKiBRdWFuZG8gdXRpbGl6YWRhIHVtYSBVUkwgZGUgc2VydmnDp28sIHNlcsOhIHJlYWxpemFkbyB1bSAqR0VUKiBuYSBVUkwgaW5mb3JtYWRhLCBwYXNzYW5kbyBvcyB2YWxvcmVzIGluZm9ybWFkb3NcbiAgICogbmVzdGEgcHJvcHJpZWRhZGUgZW0gY29uanVudG8gY29tIG8gcGFyw6JtZXRybyBgc2VhcmNoYCwgdmVqYSBleGVtcGxvOlxuICAgKlxuICAgKiBgYGBcbiAgICogPHBvLW1lbnUgcC1zZXJ2aWNlPVwiL2FwaS92MS9mbmQvbWVudVwiIFtwLXBhcmFtc109XCJ7IGNvbXBhbnk6IDEsIHVzZXI6IDI5Nzc2NzUxMiB9XCI+XG4gICAqIDwvcG8tbWVudT5cbiAgICpcbiAgICogUmVxdWlzacOnw6NvOiBHRVQgL2FwaS92MS9mbmQvbWVudT9zZWFyY2g9Y29udGFzJmNvbXBhbnk9MSZ1c2VyPTI5Nzc2NzUxMlxuICAgKiBgYGBcbiAgICovXG4gIEBJbnB1dCgncC1wYXJhbXMnKSBzZXQgcGFyYW1zKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLl9wYXJhbXMgPSB2YWx1ZSAmJiBpc1R5cGVvZih2YWx1ZSwgJ29iamVjdCcpID8gdmFsdWUgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgcGFyYW1zKCkge1xuICAgIHJldHVybiB0aGlzLl9wYXJhbXM7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBDYW1pbmhvIHBhcmEgYSBsb2dvbWFyY2EsIHF1ZSBzZXLDoSBleGliaWRhIHF1YW5kbyBvIGNvbXBvbmVudGUgZXN0aXZlciBleHBhbmRpZG8sIGxvY2FsaXphZGEgbmEgcGFydGUgc3VwZXJpb3IuXG4gICAqXG4gICAqID4gKipJbXBvcnRhbnRlOioqXG4gICAqIC0gQ2FzbyBlc3RhIHByb3ByaWVkYWRlIGVzdGl2ZXIgaW5kZWZpbmlkYSBvdSBpbnbDoWxpZGEgbyBlc3Bhw6dvIHBhcmEgbG9nb21hcmNhIHNlcsOhIHJlbW92aWRvLlxuICAgKiAtIENvbW8gYm9hIHByw6F0aWNhLCBpbmRpY2Etc2UgdXRpbGl6YXIgaW1hZ2VucyBjb20gYXTDqSBgMjRweGAgZGUgYWx0dXJhIGUgYDIyNHB4YCBkZSBsYXJndXJhLFxuICAgKiBjYXNvIHVsdHJhcGFzc2FyIGVzc2VzIHZhbG9yZXMgYSBpbWFnZW0gc2Vyw6EgcmVhZGVxdWFkYSBubyBlc3Bhw6dvIGRpc3BvbsOtdmVsLlxuICAgKi9cbiAgQElucHV0KCdwLWxvZ28nKSBsb2dvPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBvIHRleHRvIGFsdGVybmF0aXZvIHBhcmEgYSBsb2dvbWFyY2EuXG4gICAqXG4gICAqID4gKipJbXBvcnRhbnRlKipcbiAgICogPiBDYXNvIGVzdGEgcHJvcHJpZWRhZGUgbsOjbyBzZWphIGRlZmluaWRhIG8gdGV4dG8gcGFkcsOjbyBzZXLDoSBcIkxvZ29tYXJjYSBpbsOtY2lvXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBMb2dvbWFyY2EgaW7DrWNpb2BcbiAgICovXG4gIEBJbnB1dCgncC1sb2dvLWFsdCcpIGxvZ29BbHQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQ2FtaW5obyBwYXJhIGEgbG9nb21hcmNhLCBxdWUgc2Vyw6EgZXhpYmlkYSBxdWFuZG8gbyBjb21wb25lbnRlIGVzdGl2ZXIgY29sYXBzYWRvLCBsb2NhbGl6YWRhIG5hIHBhcnRlIHN1cGVyaW9yLlxuICAgKlxuICAgKiA+ICoqSW1wb3J0YW50ZToqKlxuICAgKiAtIENhc28gZXN0YSBwcm9wcmllZGFkZSBlc3RpdmVyIGluZGVmaW5pZGEgb3UgaW52w6FsaWRhIHBhc3NhIGEgYXNzdW1pciBvIHZhbG9yIGluZm9ybWFkbyBuYSBwcm9wcmllZGFkZSBgcC1sb2dvYCBlIG5hIGF1c8OqbmNpYSBkZXN0YSBvXG4gICAqIGVzcGHDp28gcGFyYSBsb2dvbWFyY2Egc2Vyw6EgcmVtb3ZpZG8uXG4gICAqIC0gQ29tbyBib2EgcHLDoXRpY2EsIGluZGljYS1zZSB1dGlsaXphciBpbWFnZW5zIGNvbSBhdMOpIGA0OHB4YCBkZSBhbHR1cmEgZSBgNDhweGAgZGUgbGFyZ3VyYSxcbiAgICogY2FzbyB1bHRyYXBhc3NhciBlc3NlcyB2YWxvcmVzIGEgaW1hZ2VtIHNlcsOhIHJlYWRlcXVhZGEgbm8gZXNwYcOnbyBkaXNwb27DrXZlbC5cbiAgICogLSBDYXNvIG7Do28gaW5mb3JtYXIgdW0gdmFsb3IsIGVzdGEgcHJvcHJpZWRhZGUgcGFzc2EgYSBhc3N1bWlyIG8gdmFsb3IgaW5mb3JtYWRvIG5hIHByb3ByaWVkYWRlIGBwLWxvZ29gLlxuICAgKi9cbiAgQElucHV0KCdwLXNob3J0LWxvZ28nKSBzaG9ydExvZ286IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbWVudUdsb2JhbFNlcnZpY2U6IFBvTWVudUdsb2JhbFNlcnZpY2UsXG4gICAgcHVibGljIG1lbnVTZXJ2aWNlOiBQb01lbnVTZXJ2aWNlLFxuICAgIHB1YmxpYyBsYW5ndWFnZVNlcnZpY2U6IFBvTGFuZ3VhZ2VTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMubGl0ZXJhbHMgPSB7XG4gICAgICAuLi5wb01lbnVMaXRlcmFsc0RlZmF1bHRbdGhpcy5sYW5ndWFnZVNlcnZpY2U/LmdldExhbmd1YWdlRGVmYXVsdCgpXSxcbiAgICAgIC4uLnBvTWVudUxpdGVyYWxzRGVmYXVsdFt0aGlzLmxhbmd1YWdlU2VydmljZT8uZ2V0U2hvcnRMYW5ndWFnZSgpXVxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0TWVudUV4dHJhUHJvcGVydGllcygpIHtcbiAgICB0aGlzLmFsbG93SWNvbnMgPSAhIXRoaXMubWVudXMubGVuZ3RoO1xuICAgIHRoaXMuYWxsb3dDb2xsYXBzZU1lbnUgPSAhIXRoaXMubWVudXMubGVuZ3RoO1xuXG4gICAgdGhpcy5tZW51cy5mb3JFYWNoKG1lbnVJdGVtID0+IHtcbiAgICAgIHRoaXMuX2xldmVsID0gMTtcbiAgICAgIHRoaXMuYWxsb3dJY29ucyA9IHRoaXMuYWxsb3dJY29ucyA/IHZhbGlkVmFsdWUobWVudUl0ZW0uaWNvbikgOiBmYWxzZTtcbiAgICAgIHRoaXMuYWxsb3dDb2xsYXBzZU1lbnUgPSB0aGlzLmFsbG93Q29sbGFwc2VNZW51ICYmIHRoaXMuYWxsb3dJY29ucyA/IHZhbGlkVmFsdWUobWVudUl0ZW0uc2hvcnRMYWJlbCkgOiBmYWxzZTtcbiAgICAgIHRoaXMucmVtb3ZlQmFkZ2VBbGVydChtZW51SXRlbSk7XG4gICAgICB0aGlzLnNldE1lbnVJdGVtUHJvcGVydGllcyhtZW51SXRlbSk7XG5cbiAgICAgIGlmIChtZW51SXRlbS5zdWJJdGVtcykge1xuICAgICAgICB0aGlzLl9sZXZlbCsrO1xuICAgICAgICB0aGlzLnByb2Nlc3NTdWJJdGVtcyhtZW51SXRlbSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0TWVudUl0ZW1Qcm9wZXJ0aWVzKG1lbnVJdGVtOiBQb01lbnVJdGVtKTogdm9pZCB7XG4gICAgbWVudUl0ZW1bJ2lkJ10gPSBtZW51SXRlbVsnaWQnXSB8fCB1dWlkKCk7XG4gICAgbWVudUl0ZW1bJ2xldmVsJ10gPSB0aGlzLl9sZXZlbDtcbiAgICBtZW51SXRlbVsndHlwZSddID0gdGhpcy5zZXRNZW51VHlwZShtZW51SXRlbSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdmFsaWRhdGVNZW51cyhtZW51cyk6IHZvaWQge1xuICAgIG1lbnVzLmZvckVhY2gobWVudSA9PiB0aGlzLnZhbGlkYXRlTWVudShtZW51KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0TWVudVR5cGUobWVudUl0ZW06IFBvTWVudUl0ZW0pOiBzdHJpbmcge1xuICAgIGlmIChtZW51SXRlbS5zdWJJdGVtcyAmJiBtZW51SXRlbS5zdWJJdGVtcy5sZW5ndGggPiAwICYmIHRoaXMuX2xldmVsIDwgdGhpcy5tYXhMZXZlbCkge1xuICAgICAgcmV0dXJuICdzdWJJdGVtcyc7XG4gICAgfVxuICAgIGlmICghbWVudUl0ZW0ubGluaykge1xuICAgICAgcmV0dXJuICdub0xpbmsnO1xuICAgIH1cbiAgICBpZiAoaXNFeHRlcm5hbExpbmsobWVudUl0ZW0ubGluaykpIHtcbiAgICAgIHJldHVybiAnZXh0ZXJuYWxMaW5rJztcbiAgICB9XG4gICAgcmV0dXJuICdpbnRlcm5hbExpbmsnO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlKHNlcnZpY2U6IHN0cmluZyB8IFBvTWVudUZpbHRlcikge1xuICAgIGlmICh0eXBlb2Ygc2VydmljZSA9PT0gJ3N0cmluZycgJiYgc2VydmljZS50cmltKCkpIHtcbiAgICAgIC8vIHNlcnZpY2UgdXJsXG4gICAgICB0aGlzLm1lbnVTZXJ2aWNlLmNvbmZpZ1Byb3BlcnRpZXMoc2VydmljZSk7XG4gICAgICB0aGlzLmZpbHRlclNlcnZpY2UgPSB0aGlzLm1lbnVTZXJ2aWNlO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHNlcnZpY2UgPT09ICdvYmplY3QnICYmIHNlcnZpY2UuZ2V0RmlsdGVyZWREYXRhKSB7XG4gICAgICAvLyBjdXN0b20gc2VydmljZVxuICAgICAgdGhpcy5maWx0ZXJTZXJ2aWNlID0gc2VydmljZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWx0ZXJTZXJ2aWNlID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc1N1Ykl0ZW1zKG1lbnUpIHtcbiAgICBtZW51LnN1Ykl0ZW1zLmZvckVhY2goKG1lbnVJdGVtLCBpbmRleCwgbWVudUl0ZW1zKSA9PiB7XG4gICAgICBjb25zdCBwcmV2aW91c0l0ZW0gPSBtZW51SXRlbXNbaW5kZXggLSAxXTtcbiAgICAgIGlmIChwcmV2aW91c0l0ZW0gJiYgcHJldmlvdXNJdGVtLnN1Ykl0ZW1zKSB7XG4gICAgICAgIHRoaXMuX2xldmVsID0gcHJldmlvdXNJdGVtWydsZXZlbCddO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5fbGV2ZWwgPD0gdGhpcy5tYXhMZXZlbCkge1xuICAgICAgICB0aGlzLnNldE1lbnVJdGVtUHJvcGVydGllcyhtZW51SXRlbSk7XG5cbiAgICAgICAgaWYgKG1lbnVJdGVtLnN1Ykl0ZW1zKSB7XG4gICAgICAgICAgdGhpcy5fbGV2ZWwrKztcbiAgICAgICAgICB0aGlzLnByb2Nlc3NTdWJJdGVtcyhtZW51SXRlbSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCFtZW51WydiYWRnZUFsZXJ0J10pIHtcbiAgICAgICAgbWVudSA9IHRoaXMuc2V0TWVudUJhZGdlQWxlcnQobWVudSwgbWVudUl0ZW0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgbWVudS5zdWJJdGVtcyA9IE9iamVjdC5hc3NpZ24oW10sIG1lbnUuc3ViSXRlbXMpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVCYWRnZUFsZXJ0KG1lbnVJdGVtOiBQb01lbnVJdGVtKTogdm9pZCB7XG4gICAgaWYgKG1lbnVJdGVtWydiYWRnZUFsZXJ0J10pIHtcbiAgICAgIGRlbGV0ZSBtZW51SXRlbVsnYmFkZ2VBbGVydCddO1xuICAgIH1cblxuICAgIGlmIChtZW51SXRlbS5zdWJJdGVtcykge1xuICAgICAgbWVudUl0ZW0uc3ViSXRlbXMuZm9yRWFjaChzdWJJdGVtID0+IHRoaXMucmVtb3ZlQmFkZ2VBbGVydChzdWJJdGVtKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRNZW51QmFkZ2VBbGVydChwYXJlbnQ6IFBvTWVudUl0ZW0sIGNoaWxkOiBQb01lbnVJdGVtKTogUG9NZW51SXRlbSB7XG4gICAgY29uc3QgY2hpbGRIYXNTdWJJdGVtcyA9IGNoaWxkLnN1Ykl0ZW1zICYmIGNoaWxkLnN1Ykl0ZW1zLmxlbmd0aDtcbiAgICBjb25zdCBjaGlsZEhhc0JhZGdlQWxlcnQgPSBjaGlsZFsnYmFkZ2VBbGVydCddO1xuICAgIGNvbnN0IGNoaWxkSGFzQmFkZ2UgPSBjaGlsZC5iYWRnZSAmJiBjb252ZXJ0VG9JbnQoY2hpbGQuYmFkZ2UudmFsdWUpID49IDA7XG5cbiAgICBwYXJlbnRbJ2JhZGdlQWxlcnQnXSA9IGNoaWxkSGFzQmFkZ2VBbGVydCB8fCAoY2hpbGRIYXNCYWRnZSAmJiAhY2hpbGRIYXNTdWJJdGVtcyk7XG5cbiAgICByZXR1cm4gcGFyZW50O1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZU1lbnUobWVudUl0ZW06IFBvTWVudUl0ZW0pOiB2b2lkIHtcbiAgICBpZiAoIW1lbnVJdGVtLmxhYmVsIHx8IG1lbnVJdGVtLmxhYmVsLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcih0aGlzLmxpdGVyYWxzLmVtcHR5TGFiZWxFcnJvcik7XG4gICAgfSBlbHNlIGlmIChtZW51SXRlbS5zdWJJdGVtcykge1xuICAgICAgbWVudUl0ZW0uc3ViSXRlbXMuZm9yRWFjaChzdWJJdGVtID0+IHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZU1lbnUoc3ViSXRlbSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY2hlY2tBY3RpdmVNZW51QnlVcmwodXJsUm91dGVyKTtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNoZWNraW5nUm91dGVyQ2hpbGRyZW5GcmFnbWVudHMoKTtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHZhbGlkYXRlQ29sbGFwc2VDbGFzcygpO1xufVxuIl19
|
|
428
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbWVudS1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1tZW51L3BvLW1lbnUtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7QUFROUcsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUc7SUFDbkMsRUFBRSxFQUFFO1FBQ0YsWUFBWSxFQUFFLGdCQUFnQjtRQUM5QixlQUFlLEVBQUUsNkNBQTZDO1FBQzlELEtBQUssRUFBRSxZQUFZO1FBQ25CLElBQUksRUFBRSxXQUFXO0tBQ2xCO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsWUFBWSxFQUFFLHdCQUF3QjtRQUN0QyxlQUFlLEVBQUUsaURBQWlEO1FBQ2xFLEtBQUssRUFBRSxhQUFhO1FBQ3BCLElBQUksRUFBRSxZQUFZO0tBQ25CO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsWUFBWSxFQUFFLHFCQUFxQjtRQUNuQyxlQUFlLEVBQUUsZ0RBQWdEO1FBQ2pFLEtBQUssRUFBRSxhQUFhO1FBQ3BCLElBQUksRUFBRSxZQUFZO0tBQ25CO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsWUFBWSxFQUFFLG1CQUFtQjtRQUNqQyxlQUFlLEVBQUUsK0NBQStDO1FBQ2hFLEtBQUssRUFBRSxjQUFjO1FBQ3JCLElBQUksRUFBRSxjQUFjO0tBQ3JCO0NBQ0YsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnREc7QUFFSCxNQUFNLE9BQWdCLG1CQUFtQjtJQXVPOUI7SUFD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cmVjdGl2ZSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiwgY29udmVydFRvSW50LCBpc0V4dGVybmFsTGluaywgaXNUeXBlb2YsIHV1aWQsIHZhbGlkVmFsdWUgfSBmcm9tICcuLi8uLi91dGlscy91dGlsJztcblxuaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wby1sYW5ndWFnZS9wby1sYW5ndWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IFBvTWVudUZpbHRlciB9IGZyb20gJy4vcG8tbWVudS1maWx0ZXIvcG8tbWVudS1maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvTWVudUl0ZW0gfSBmcm9tICcuL3BvLW1lbnUtaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9NZW51R2xvYmFsU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcG8tbWVudS1nbG9iYWwuc2VydmljZSc7XG5pbXBvcnQgeyBQb01lbnVTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wby1tZW51LnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgcG9NZW51TGl0ZXJhbHNEZWZhdWx0ID0ge1xuICBlbjoge1xuICAgIGl0ZW1Ob3RGb3VuZDogJ0l0ZW0gbm90IGZvdW5kJyxcbiAgICBlbXB0eUxhYmVsRXJyb3I6ICdBdHRyaWJ1dGUgUG9NZW51SXRlbS5sYWJlbCBjYW4gbm90IGJlIGVtcHR5JyxcbiAgICBjbG9zZTogJ0Nsb3NlIG1lbnUnLFxuICAgIG9wZW46ICdPcGVuIG1lbnUnXG4gIH0sXG4gIGVzOiB7XG4gICAgaXRlbU5vdEZvdW5kOiAnRWxlbWVudG8gbm8gZW5jb250cmFkbycsXG4gICAgZW1wdHlMYWJlbEVycm9yOiAnRWwgYXRyaWJ1dG8gUG9NZW51SXRlbS5sYWJlbCBubyBwdWVkZSBzZXIgdmFjw61vJyxcbiAgICBjbG9zZTogJ0NlcnJhciBtZW7DuicsXG4gICAgb3BlbjogJ0FicmlyIG1lbsO6J1xuICB9LFxuICBwdDoge1xuICAgIGl0ZW1Ob3RGb3VuZDogJ0l0ZW0gbsOjbyBlbmNvbnRyYWRvJyxcbiAgICBlbXB0eUxhYmVsRXJyb3I6ICdPIGF0cmlidXRvIFBvTWVudUl0ZW0ubGFiZWwgbsOjbyBwb2RlIHNlciB2YXppbycsXG4gICAgY2xvc2U6ICdGZWNoYXIgbWVudScsXG4gICAgb3BlbjogJ0FicmlyIG1lbnUnXG4gIH0sXG4gIHJ1OiB7XG4gICAgaXRlbU5vdEZvdW5kOiAn0J/RgNC10LTQvNC10YIg0L3QtSDQvdCw0LnQtNC10L0nLFxuICAgIGVtcHR5TGFiZWxFcnJvcjogJ9CQ0YLRgNC40LHRg9GCIFBvTWVudUl0ZW0ubGFiZWwg0L3QtSDQvNC+0LbQtdGCINCx0YvRgtGMINC/0YPRgdGC0YvQvCcsXG4gICAgY2xvc2U6ICfQl9Cw0LrRgNGL0YLRjCDQvNC10L3RjicsXG4gICAgb3BlbjogJ9Ce0YLQutGA0YvRgtGMINC80LXQvdGOJ1xuICB9XG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIEVzdGUgw6kgdW0gY29tcG9uZW50ZSBkZSBtZW51IGxhdGVyYWwgcXVlIMOpIHV0aWxpemFkbyBwYXJhIG5hdmVnYcOnw6NvIG5hcyBww6FnaW5hcyBkZSB1bWEgYXBsaWNhw6fDo28uXG4gKlxuICogTyBjb21wb25lbnRlIHBvLW1lbnUgcmVjZWJlIHVtYSBsaXN0YSBkZSBvYmpldG9zIGRvIHRpcG8gYE1lbnVJdGVtYCBjb20gYXMgaW5mb3JtYcOnw7VlcyBkb3MgaXRlbnMgZGUgbWVudSBjb21vXG4gKiB0ZXh0b3MsIGxpbmtzIHBhcmEgcmVkaXJlY2lvbmFtZW50bywgYcOnw7VlcywgYXTDqSA0IG7DrXZlaXMgZGUgbWVudSBlIMOtY29uZXMgcGFyYSBvIHByaW1laXJvIG7DrXZlbCBkZSBtZW51LlxuICpcbiAqICMjIyMgVG9rZW5zIGN1c3RvbWl6w6F2ZWlzXG4gKlxuICogw4kgcG9zc8OtdmVsIGFsdGVyYXIgbyBlc3RpbG8gZG8gY29tcG9uZW50ZSB1c2FuZG8gb3Mgc2VndWludGVzIHRva2VucyAoQ1NTKTpcbiAqXG4gKiA+IFBhcmEgbWFpb3JlcyBpbmZvcm1hw6fDtWVzLCBhY2Vzc2UgbyBndWlhIFtQZXJzb25hbGl6YW5kbyBvIFRlbWEgUGFkcsOjbyBjb20gVG9rZW5zIENTU10oaHR0cHM6Ly9wby11aS5pby9ndWlkZXMvdGhlbWUtY3VzdG9taXphdGlvbikuXG4gKlxuICogfCBQcm9wcmllZGFkZSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERlc2NyacOnw6NvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBWYWxvciBQYWRyw6NvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuICogfCAqKkRlZmF1bHQgVmFsdWVzKiogICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1ib3JkZXItcmFkaXVzYCAgICAgICAgICAgICAgICAgICAgICB8IENvbnTDqW0gbyB2YWxvciBkbyByYWlvIGRvcyBjYW50b3MgZG8gZWxlbWVudG8mbmJzcDsgICB8IGB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKWAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYm9yZGVyLWNvbG9yYCAgICAgICAgICAgICAgICAgICAgICAgfCBDb3IgZGEgYm9yZGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1uZXV0cmFsLWxpZ2h0LTIwKWAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYmFja2dyb3VuZC1jb2xvcmAgICAgICAgICAgICAgICAgICAgfCBDb3IgZGUgYmFja2dyb3VuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBWYXIoLS0tLWNvbG9yLW5ldXRyYWwtbGlnaHQtMDUpYCAgICAgICAgICAgICAgIHxcbiAqIHwgKipNZW51IEZvb3RlcioqICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tY29sb3JgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb3IgcHJpbmNpcGxhIGRvIG1lbnUgZm9vdGVyICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1hY3Rpb24tZGVmYXVsdClgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tZm9udC1zaXplYCAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUYW1hbmhvIGRhIGZvbnRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1mb250LXNpemUtZGVmYXVsdClgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tbGluZS1oZWlnaHRgICAgICAgICAgICAgICAgICAgICAgICAgfCBUYW1hbmhvIGRhIGxhYmVsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1saW5lLWhlaWdodC1tZClgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tb3V0bGluZS1jb2xvci1mb2N1c2VkYCAgICAgICAgICAgICAgfCBDb3IgZG8gb3V0bGluZSBkbyBlc3RhZG8gZGUgZm9jdXMgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1hY3Rpb24tZm9jdXMpYCAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tZm9udC13ZWlnaHQtbHZsMGAgICAgICAgICAgICAgICAgICAgfCBQZXNvIGRhIGZvbnRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1mb250LXdlaWdodC1ib2xkKWAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgKipwby1tZW51LWl0ZW0qKiAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tZm9udC1mYW1pbHlgICAgICAgICAgICAgICAgICAgICAgICAgfCBGYW3DrWxpYSB0aXBvZ3LDoWZpY2EgdXNhZGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWZvbnQtZmFtaWx5LXRoZW1lKWAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1mb250LXNpemVgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFRhbWFuaG8gZGEgZm9udGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWZvbnQtc2l6ZS1kZWZhdWx0KWAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1saW5lLWhlaWdodGAgICAgICAgICAgICAgICAgICAgICAgICB8IFRhbWFuaG8gZGEgbGFiZWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWxpbmUtaGVpZ2h0LW1kKWAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1ib3JkZXItcmFkaXVzYCAgICAgICAgICAgICAgICAgICAgICB8IENvbnTDqW0gbyB2YWxvciBkbyByYWlvIGRvcyBjYW50b3MgZG8gZWxlbWVudG8mbmJzcDsgICB8IGB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKWAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tY29sb3JgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb3IgcHJpbmNpcGFsIGRvIGl0ZW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1hY3Rpb24tZGVmYXVsdClgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYmFja2dyb3VuZC1jb2xvcmAgICAgICAgICAgICAgICAgICAgfCBDb3IgZG8gYmFja2dyb3VuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB0cmFuc3BhcmVudGAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgKipIb3ZlcioqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tY29sb3ItaG92ZXJgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb3IgcHJpbmNpcGFsIG5vIGVzdGFkbyBob3ZlciAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1icmFuZC0wMS1kYXJrZXN0KWAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYmFja2dyb3VuZC1jb2xvci1ob3ZlcmAgICAgICAgICAgICAgfCBDb3IgZGUgYmFja2dyb3VuZCBubyBlc3RhZG8gaG92ZXIgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1icmFuZC0wMS1saWdodGVyKWAgICAgICAgICAgICAgICAgIHxcbiAqIHwgKipGb2N1c2VkKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tb3V0bGluZS1jb2xvci1mb2N1c2VkYCAgICAgICAgICAgICAgfCBDb3IgZG8gb3V0bGluZSBkbyBlc3RhZG8gZGUgZm9jdXMgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1hY3Rpb24tZm9jdXMpYCAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgKipQcmVzc2VkKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYmFja2dyb3VuZC1jb2xvci1wcmVzc2VkYCAmbmJzcDsgICAgfCBDb3IgZGUgYmFja2dyb3VuZCBubyBlc3RhZG8gZGUgcHJlc3Npb25hZG8mbmJzcDsgICAgICB8IGB2YXIoLS1jb2xvci1icmFuZC0wMS1saWdodClgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgKipBY3RpdmVkKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYmFja2dyb3VuZC1jb2xvci1hY3RpdmVkYCAgICAgICAgICAgfCBDb3IgZGUgYmFja2dyb3VuZCBubyBlc3RhZG8gYWN0aXZlZCAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1icmFuZC0wMS1kYXJrZXN0KWAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tY29sb3ItYWN0aXZlZGAgICAgICAgICAgICAgICAgICAgICAgfCBDb3IgcHJpbmNpcGFsIG5vIGVzdGFkbyBhY3RpdmVkICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1icmFuZC0wMS1saWdodGVyKWAgICAgICAgICAgICAgICAgIHxcbiAqIHwgKipGb250KiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tZm9udC13ZWlnaHQtbHZsMGAgICAgICAgICAgICAgICAgICAgfCBQZXNvIGRhIGZvbnRlIGJvbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1mb250LXdlaWdodC1ib2xkKWAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tZm9udC13ZWlnaHQtbHZsMWAgICAgICAgICAgICAgICAgICAgfCBQZXNvIGRhIGZvbnRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1mb250LXdlaWdodC1ub3JtYWwpYCAgICAgICAgICAgICAgICAgICAgIHxcbiAqXG4gKiA8YnI+XG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBvTWVudUJhc2VDb21wb25lbnQge1xuICBhbGxvd0ljb25zOiBib29sZWFuO1xuICBhbGxvd0NvbGxhcHNlTWVudTogYm9vbGVhbjtcbiAgYWxsb3dDb2xsYXBzZUhvdmVyOiBib29sZWFuO1xuXG4gIGZpbHRlcmVkSXRlbXM7XG4gIGZpbHRlclNlcnZpY2U6IFBvTWVudUZpbHRlcjtcblxuICByZWFkb25seSBsaXRlcmFsczogYW55O1xuXG4gIHByaXZhdGUgX2NvbGxhcHNlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9maWx0ZXIgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfc2VhcmNoVHJlZUl0ZW1zID0gZmFsc2U7XG4gIHByaXZhdGUgX2xldmVsO1xuICBwcml2YXRlIF9tYXhMZXZlbCA9IDQ7XG4gIHByaXZhdGUgX21lbnVzID0gW107XG4gIHByaXZhdGUgX3BhcmFtczogYW55O1xuICBwcml2YXRlIF9zZXJ2aWNlOiBzdHJpbmcgfCBQb01lbnVGaWx0ZXI7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXhwYW5kZSBlIENvbGFwc2EgKHJldHJhaSkgbyBtZW51IGF1dG9tYXRpY2FtZW50ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KHsgYWxpYXM6ICdwLWF1dG9tYXRpYy10b2dnbGUnLCB0cmFuc2Zvcm06IGNvbnZlcnRUb0Jvb2xlYW4gfSkgYXV0b21hdGljVG9nZ2xlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQ29sYXBzYSAocmV0cmFpKSBvIG1lbnUgZSBjYXNvIHJlY2ViYSBvIHZhbG9yIGBmYWxzZWAgZXhwYW5kZSBvIG1lbnUuXG4gICAqXG4gICAqID4gVXRpbGl6ZSBlc3RhIHByb3ByaWVkYWRlIHBhcmEgaW5pY2lhciBvIG1lbnUgY29sYXBzYWRvLlxuICAgKlxuICAgKiA+IEFvIHV0aWxpemFyIG9zIG3DqXRvZG9zIFtgY29sYXBzZWBdKGRvY3VtZW50YXRpb24vcG8tbWVudSNjb2xhcHNlTWV0aG9kKSwgW2BleHBhbmRgXShkb2N1bWVudGF0aW9uL3BvLW1lbnUjZXhwYW5kTWV0aG9kKSBlXG4gICAqIFtgdG9nZ2xlYF0oZG9jdW1lbnRhdGlvbi9wby1tZW51I3RvZ2dsZU1ldGhvZCkgbyB2YWxvciBkZXN0YSBwcm9wcmllZGFkZSBuw6NvIMOpIGFsdGVyYWRvLlxuICAgKlxuICAgKiAqKkltcG9ydGFudGU6KipcbiAgICpcbiAgICogPiBPIG1lbnUgc2Vyw6EgY29sYXBzYWRvL2V4cGFuZGlkbyBhcGVuYXMgc2UgdG9kb3Mgb3MgaXRlbnMgZGUgbWVudSB0aXZlcmVtIHZhbG9yIG5hcyBwcm9wcmllZGFkZXMgYGljb25gIGUgYHNob3J0TGFiZWxgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3AtY29sbGFwc2VkJykgc2V0IGNvbGxhcHNlZChjb2xsYXBzZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9jb2xsYXBzZWQgPSBjb252ZXJ0VG9Cb29sZWFuKGNvbGxhcHNlZCk7XG5cbiAgICB0aGlzLmFsbG93Q29sbGFwc2VIb3ZlciA9IHRoaXMuX2NvbGxhcHNlZDtcbiAgICB0aGlzLnZhbGlkYXRlQ29sbGFwc2VDbGFzcygpO1xuICB9XG5cbiAgZ2V0IGNvbGxhcHNlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29sbGFwc2VkO1xuICB9XG5cbiAgLyoqIExpc3RhIGRvcyBpdGVucyBkbyBtZW51LiBTZSBvIHZhbG9yIGVzdGl2ZXIgaW5kZWZpbmlkbyBvdSBpbnbDoWxpZG8sIHNlcsOhIGluaWNpYWxpemFkbyBjb21vIHVtIGFycmF5IHZhemlvLiAqL1xuICBASW5wdXQoJ3AtbWVudXMnKSBzZXQgbWVudXMobWVudXM6IEFycmF5PFBvTWVudUl0ZW0+KSB7XG4gICAgdGhpcy5fbWVudXMgPSBBcnJheS5pc0FycmF5KG1lbnVzKSA/IG1lbnVzIDogW107XG5cbiAgICB0aGlzLm1lbnVHbG9iYWxTZXJ2aWNlLnNlbmRNZW51cyhtZW51cyk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IHVybFJvdXRlciA9IHRoaXMuY2hlY2tpbmdSb3V0ZXJDaGlsZHJlbkZyYWdtZW50cygpO1xuICAgICAgdGhpcy5jaGVja0FjdGl2ZU1lbnVCeVVybCh1cmxSb3V0ZXIpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IG1lbnVzKCkge1xuICAgIHJldHVybiB0aGlzLl9tZW51cztcbiAgfVxuXG4gIGdldCBtYXhMZXZlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4TGV2ZWw7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBIYWJpbGl0YSB1bSBjYW1wbyBwYXJhIHBlc3F1aXNhIG5vIG1lbnUuXG4gICAqIEEgcGVzcXVpc2Egw6kgcmVhbGl6YWRhIGVtIHRvZG9zIG9zIG7DrXZlaXMgZG8gbWVudSBlIGJ1c2NhIGFwZW5hcyBwZWxvcyBpdGVucyBxdWUgY29udMOpbSB1bWEgYcOnw6NvIGUvb3UgbGluayBkZWZpbmlkb3MsXG4gICAqIG91IHRhbWLDqW0sIHBvZGUgc2VyIHJlYWxpemFkYSBhdHJhdsOpcyBkZSB1bSBzZXJ2acOnbyBkZWZpbmlkbyBuYSBwcm9wcmllZGFkZSBgcC1zZXJ2aWNlYC5cbiAgICpcbiAgICogPiBPIGNhbXBvIGRlIHBlc3F1aXNhIMOpIGRlc2FiaWxpdGFkbyBzZSBvIG1lbnUgZXN0aXZlciBjb2xhcHNhZG8uXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1maWx0ZXInKSBzZXQgZmlsdGVyKGZpbHRlcjogYm9vbGVhbikge1xuICAgIHRoaXMuX2ZpbHRlciA9IDxhbnk+ZmlsdGVyID09PSAnJyA/IHRydWUgOiBjb252ZXJ0VG9Cb29sZWFuKGZpbHRlcik7XG4gICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gWy4uLnRoaXMuX21lbnVzXTtcbiAgfVxuXG4gIGdldCBmaWx0ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIFF1YW5kbyBhdGl2YWRvLCBhIHBlc3F1aXNhIHRhbWLDqW0gcmV0b3JuYXLDoSBpdGVucyBhZ3J1cGFkb3JlcyBhbMOpbSBkb3MgaXRlbnMgcXVlIGNvbnTDqm0gdW1hIGHDp8OjbyBlL291IGxpbmsgZGVmaW5pZG9zLlxuICAgKiBJc3NvIHBvZGUgc2VyIMO6dGlsIHF1YW5kbyBzZSBkZXNlamEgZW5jb250cmFyIHJhcGlkYW1lbnRlIGNhdGVnb3JpYXMgb3Ugc2XDp8O1ZXMgZG8gbWVudS5cbiAgICpcbiAgICogPiDDiSBuZWNlc3PDoXJpbyBxdWUgYSBwcm9wcmllZGFkZSBgcC1maWx0ZXJgIGVzdGVqYSBoYWJpbGl0YWRhLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3Atc2VhcmNoLXRyZWUtaXRlbXMnKSBzZXQgc2VhcmNoVHJlZUl0ZW1zKHNlYXJjaFRyZWVJdGVtczogYm9vbGVhbikge1xuICAgIHRoaXMuX3NlYXJjaFRyZWVJdGVtcyA9IDxhbnk+c2VhcmNoVHJlZUl0ZW1zID09PSAnJyA/IHRydWUgOiBjb252ZXJ0VG9Cb29sZWFuKHNlYXJjaFRyZWVJdGVtcyk7XG4gICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gWy4uLnRoaXMuX21lbnVzXTtcbiAgfVxuXG4gIGdldCBzZWFyY2hUcmVlSXRlbXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaFRyZWVJdGVtcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIE5lc3RhIHByb3ByaWVkYWRlIGRldmUgc2VyIGluZm9ybWFkYSBhIFVSTCBkbyBzZXJ2acOnbyBlbSBxdWUgc2Vyw6EgdXRpbGl6YWRvIHBhcmEgcmVhbGl6YXIgbyBmaWx0cm8gZGUgaXRlbnMgZG9cbiAgICogbWVudSBxdWFuZG8gcmVhbGl6YXIgdW1hIGJ1c2NhLiBDYXNvIGhhamEgYSBuZWNlc3NpZGFkZSBkZSBjdXN0b21pemHDp8OjbywgcG9kZSBzZXIgaW5mb3JtYWRvIHVtXG4gICAqIHNlcnZpw6dvIGltcGxlbWVudGFuZG8gYSBpbnRlcmZhY2UgYFBvTWVudUZpbHRlcmAuXG4gICAqXG4gICAqIENhc28gdXRpbGl6YWRhIHVtYSBVUkwsIG8gc2VydmnDp28gZGV2ZSByZXRvcm5hciBvcyBkYWRvcyBjb25mb3JtZSBvXG4gICAqIFtHdWlhIGRlIGltcGxlbWVudGHDp8OjbyBkZSBBUElzXShodHRwczovL3BvLXVpLmlvL2d1aWRlcy9hcGkpIGRvIFBPIFVJLlxuICAgKlxuICAgKiBRdWFuZG8gdXRpbGl6YWRhIHVtYSBVUkwgZGUgc2VydmnDp28sIHNlcsOhIHJlYWxpemFkbyB1bSAqR0VUKiBuYSBVUkwgaW5mb3JtYWRhLCBwYXNzYW5kbyBvIHZhbG9yIGRpZ2l0YWRvXG4gICAqIG5vIHBhcsOibWV0cm8gYHNlYXJjaGAsIHZlamEgZXhlbXBsbzpcbiAgICpcbiAgICogPiBPIGZpbHRybyBubyBzZXJ2acOnbyBzZXLDoSByZWFsaXphZG8gY2FzbyBjb250ZW5oYSBubyBtw61uaW1vIHRyw6pzIGNhcmFjdGVyZXMgbm8gY2FtcG8gZGUgYnVzY2EsIHBvciBleGVtcGxvIGB0b3RgLlxuICAgKlxuICAgKiBgYGBcbiAgICogPHBvLW1lbnUgcC1zZXJ2aWNlPVwiL2FwaS92MS9mbmQvbWVudVwiPlxuICAgKiA8L3BvLW1lbnU+XG4gICAqXG4gICAqIFJlcXVpc2nDp8OjbzogR0VUIC9hcGkvdjEvZm5kL21lbnU/c2VhcmNoPWNvbnRhc1xuICAgKiBgYGBcbiAgICpcbiAgICogPiDDiSBuZWNlc3PDoXJpbyBxdWUgcHJvcHJpZWRhZGUgYHAtZmlsdGVyYCBlc3RlamEgaGFiaWxpdGFkYS5cbiAgICovXG4gIEBJbnB1dCgncC1zZXJ2aWNlJykgc2V0IHNlcnZpY2UodmFsdWU6IHN0cmluZyB8IFBvTWVudUZpbHRlcikge1xuICAgIHRoaXMuX3NlcnZpY2UgPSB2YWx1ZSB8fCB1bmRlZmluZWQ7XG5cbiAgICB0aGlzLmNvbmZpZ1NlcnZpY2UodGhpcy5zZXJ2aWNlKTtcbiAgfVxuXG4gIGdldCBzZXJ2aWNlKCkge1xuICAgIHJldHVybiB0aGlzLl9zZXJ2aWNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGV2ZSBzZXIgaW5mb3JtYWRvIHVtIG9iamV0byBxdWUgZGVzZWphLXNlIHV0aWxpemFyIG5hIHJlcXVpc2nDp8OjbyBkZSBmaWx0cm8gZG9zIGl0ZW5zIGRlIG1lbnUuXG4gICAqXG4gICAqIENhc28gdXRpbGl6YWRvIHVtIHNlcnZpw6dvIGN1c3RvbWl6YWRvLCBpbXBsZW1lbnRhbmRvIGEgaW50ZXJmYWNlIGBQb01lbnVGaWx0ZXJgLCBvIHZhbG9yIGRlc3RhIHByb3ByaWVkYWRlXG4gICAqIHNlcsOhIHBhc3NhZG8gY29tbyBwYXLDom1ldHJvLCBuYSBmdW7Dp8OjbyBgZ2V0RmlsdGVyZWREYXRhYC5cbiAgICpcbiAgICogUXVhbmRvIHV0aWxpemFkYSB1bWEgVVJMIGRlIHNlcnZpw6dvLCBzZXLDoSByZWFsaXphZG8gdW0gKkdFVCogbmEgVVJMIGluZm9ybWFkYSwgcGFzc2FuZG8gb3MgdmFsb3JlcyBpbmZvcm1hZG9zXG4gICAqIG5lc3RhIHByb3ByaWVkYWRlIGVtIGNvbmp1bnRvIGNvbSBvIHBhcsOibWV0cm8gYHNlYXJjaGAsIHZlamEgZXhlbXBsbzpcbiAgICpcbiAgICogYGBgXG4gICAqIDxwby1tZW51IHAtc2VydmljZT1cIi9hcGkvdjEvZm5kL21lbnVcIiBbcC1wYXJhbXNdPVwieyBjb21wYW55OiAxLCB1c2VyOiAyOTc3Njc1MTIgfVwiPlxuICAgKiA8L3BvLW1lbnU+XG4gICAqXG4gICAqIFJlcXVpc2nDp8OjbzogR0VUIC9hcGkvdjEvZm5kL21lbnU/c2VhcmNoPWNvbnRhcyZjb21wYW55PTEmdXNlcj0yOTc3Njc1MTJcbiAgICogYGBgXG4gICAqL1xuICBASW5wdXQoJ3AtcGFyYW1zJykgc2V0IHBhcmFtcyh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5fcGFyYW1zID0gdmFsdWUgJiYgaXNUeXBlb2YodmFsdWUsICdvYmplY3QnKSA/IHZhbHVlIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0IHBhcmFtcygpIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyYW1zO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQ2FtaW5obyBwYXJhIGEgbG9nb21hcmNhLCBxdWUgc2Vyw6EgZXhpYmlkYSBxdWFuZG8gbyBjb21wb25lbnRlIGVzdGl2ZXIgZXhwYW5kaWRvLCBsb2NhbGl6YWRhIG5hIHBhcnRlIHN1cGVyaW9yLlxuICAgKlxuICAgKiA+ICoqSW1wb3J0YW50ZToqKlxuICAgKiAtIENhc28gZXN0YSBwcm9wcmllZGFkZSBlc3RpdmVyIGluZGVmaW5pZGEgb3UgaW52w6FsaWRhIG8gZXNwYcOnbyBwYXJhIGxvZ29tYXJjYSBzZXLDoSByZW1vdmlkby5cbiAgICogLSBDb21vIGJvYSBwcsOhdGljYSwgaW5kaWNhLXNlIHV0aWxpemFyIGltYWdlbnMgY29tIGF0w6kgYDI0cHhgIGRlIGFsdHVyYSBlIGAyMjRweGAgZGUgbGFyZ3VyYSxcbiAgICogY2FzbyB1bHRyYXBhc3NhciBlc3NlcyB2YWxvcmVzIGEgaW1hZ2VtIHNlcsOhIHJlYWRlcXVhZGEgbm8gZXNwYcOnbyBkaXNwb27DrXZlbC5cbiAgICovXG4gIEBJbnB1dCgncC1sb2dvJykgbG9nbz86IHN0cmluZztcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgbyB0ZXh0byBhbHRlcm5hdGl2byBwYXJhIGEgbG9nb21hcmNhLlxuICAgKlxuICAgKiA+ICoqSW1wb3J0YW50ZSoqXG4gICAqID4gQ2FzbyBlc3RhIHByb3ByaWVkYWRlIG7Do28gc2VqYSBkZWZpbmlkYSBvIHRleHRvIHBhZHLDo28gc2Vyw6EgXCJMb2dvbWFyY2EgaW7DrWNpb1wiLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgTG9nb21hcmNhIGluw61jaW9gXG4gICAqL1xuICBASW5wdXQoJ3AtbG9nby1hbHQnKSBsb2dvQWx0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIENhbWluaG8gcGFyYSBhIGxvZ29tYXJjYSwgcXVlIHNlcsOhIGV4aWJpZGEgcXVhbmRvIG8gY29tcG9uZW50ZSBlc3RpdmVyIGNvbGFwc2FkbywgbG9jYWxpemFkYSBuYSBwYXJ0ZSBzdXBlcmlvci5cbiAgICpcbiAgICogPiAqKkltcG9ydGFudGU6KipcbiAgICogLSBDYXNvIGVzdGEgcHJvcHJpZWRhZGUgZXN0aXZlciBpbmRlZmluaWRhIG91IGludsOhbGlkYSBwYXNzYSBhIGFzc3VtaXIgbyB2YWxvciBpbmZvcm1hZG8gbmEgcHJvcHJpZWRhZGUgYHAtbG9nb2AgZSBuYSBhdXPDqm5jaWEgZGVzdGEgb1xuICAgKiBlc3Bhw6dvIHBhcmEgbG9nb21hcmNhIHNlcsOhIHJlbW92aWRvLlxuICAgKiAtIENvbW8gYm9hIHByw6F0aWNhLCBpbmRpY2Etc2UgdXRpbGl6YXIgaW1hZ2VucyBjb20gYXTDqSBgNDhweGAgZGUgYWx0dXJhIGUgYDQ4cHhgIGRlIGxhcmd1cmEsXG4gICAqIGNhc28gdWx0cmFwYXNzYXIgZXNzZXMgdmFsb3JlcyBhIGltYWdlbSBzZXLDoSByZWFkZXF1YWRhIG5vIGVzcGHDp28gZGlzcG9uw612ZWwuXG4gICAqIC0gQ2FzbyBuw6NvIGluZm9ybWFyIHVtIHZhbG9yLCBlc3RhIHByb3ByaWVkYWRlIHBhc3NhIGEgYXNzdW1pciBvIHZhbG9yIGluZm9ybWFkbyBuYSBwcm9wcmllZGFkZSBgcC1sb2dvYC5cbiAgICovXG4gIEBJbnB1dCgncC1zaG9ydC1sb2dvJykgc2hvcnRMb2dvOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG1lbnVHbG9iYWxTZXJ2aWNlOiBQb01lbnVHbG9iYWxTZXJ2aWNlLFxuICAgIHB1YmxpYyBtZW51U2VydmljZTogUG9NZW51U2VydmljZSxcbiAgICBwdWJsaWMgbGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZVxuICApIHtcbiAgICB0aGlzLmxpdGVyYWxzID0ge1xuICAgICAgLi4ucG9NZW51TGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VTZXJ2aWNlPy5nZXRMYW5ndWFnZURlZmF1bHQoKV0sXG4gICAgICAuLi5wb01lbnVMaXRlcmFsc0RlZmF1bHRbdGhpcy5sYW5ndWFnZVNlcnZpY2U/LmdldFNob3J0TGFuZ3VhZ2UoKV1cbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldE1lbnVFeHRyYVByb3BlcnRpZXMoKSB7XG4gICAgdGhpcy5hbGxvd0ljb25zID0gISF0aGlzLm1lbnVzLmxlbmd0aDtcbiAgICB0aGlzLmFsbG93Q29sbGFwc2VNZW51ID0gISF0aGlzLm1lbnVzLmxlbmd0aDtcblxuICAgIHRoaXMubWVudXMuZm9yRWFjaChtZW51SXRlbSA9PiB7XG4gICAgICB0aGlzLl9sZXZlbCA9IDE7XG4gICAgICB0aGlzLmFsbG93SWNvbnMgPSB0aGlzLmFsbG93SWNvbnMgPyB2YWxpZFZhbHVlKG1lbnVJdGVtLmljb24pIDogZmFsc2U7XG4gICAgICB0aGlzLmFsbG93Q29sbGFwc2VNZW51ID0gdGhpcy5hbGxvd0NvbGxhcHNlTWVudSAmJiB0aGlzLmFsbG93SWNvbnMgPyB2YWxpZFZhbHVlKG1lbnVJdGVtLnNob3J0TGFiZWwpIDogZmFsc2U7XG4gICAgICB0aGlzLnJlbW92ZUJhZGdlQWxlcnQobWVudUl0ZW0pO1xuICAgICAgdGhpcy5zZXRNZW51SXRlbVByb3BlcnRpZXMobWVudUl0ZW0pO1xuXG4gICAgICBpZiAobWVudUl0ZW0uc3ViSXRlbXMpIHtcbiAgICAgICAgdGhpcy5fbGV2ZWwrKztcbiAgICAgICAgdGhpcy5wcm9jZXNzU3ViSXRlbXMobWVudUl0ZW0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldE1lbnVJdGVtUHJvcGVydGllcyhtZW51SXRlbTogUG9NZW51SXRlbSk6IHZvaWQge1xuICAgIG1lbnVJdGVtWydpZCddID0gbWVudUl0ZW1bJ2lkJ10gfHwgdXVpZCgpO1xuICAgIG1lbnVJdGVtWydsZXZlbCddID0gdGhpcy5fbGV2ZWw7XG4gICAgbWVudUl0ZW1bJ3R5cGUnXSA9IHRoaXMuc2V0TWVudVR5cGUobWVudUl0ZW0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHZhbGlkYXRlTWVudXMobWVudXMpOiB2b2lkIHtcbiAgICBtZW51cy5mb3JFYWNoKG1lbnUgPT4gdGhpcy52YWxpZGF0ZU1lbnUobWVudSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldE1lbnVUeXBlKG1lbnVJdGVtOiBQb01lbnVJdGVtKTogc3RyaW5nIHtcbiAgICBpZiAobWVudUl0ZW0uc3ViSXRlbXMgJiYgbWVudUl0ZW0uc3ViSXRlbXMubGVuZ3RoID4gMCAmJiB0aGlzLl9sZXZlbCA8IHRoaXMubWF4TGV2ZWwpIHtcbiAgICAgIHJldHVybiAnc3ViSXRlbXMnO1xuICAgIH1cbiAgICBpZiAoIW1lbnVJdGVtLmxpbmspIHtcbiAgICAgIHJldHVybiAnbm9MaW5rJztcbiAgICB9XG4gICAgaWYgKGlzRXh0ZXJuYWxMaW5rKG1lbnVJdGVtLmxpbmspKSB7XG4gICAgICByZXR1cm4gJ2V4dGVybmFsTGluayc7XG4gICAgfVxuICAgIHJldHVybiAnaW50ZXJuYWxMaW5rJztcbiAgfVxuXG4gIHByaXZhdGUgY29uZmlnU2VydmljZShzZXJ2aWNlOiBzdHJpbmcgfCBQb01lbnVGaWx0ZXIpIHtcbiAgICBpZiAodHlwZW9mIHNlcnZpY2UgPT09ICdzdHJpbmcnICYmIHNlcnZpY2UudHJpbSgpKSB7XG4gICAgICAvLyBzZXJ2aWNlIHVybFxuICAgICAgdGhpcy5tZW51U2VydmljZS5jb25maWdQcm9wZXJ0aWVzKHNlcnZpY2UpO1xuICAgICAgdGhpcy5maWx0ZXJTZXJ2aWNlID0gdGhpcy5tZW51U2VydmljZTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBzZXJ2aWNlID09PSAnb2JqZWN0JyAmJiBzZXJ2aWNlLmdldEZpbHRlcmVkRGF0YSkge1xuICAgICAgLy8gY3VzdG9tIHNlcnZpY2VcbiAgICAgIHRoaXMuZmlsdGVyU2VydmljZSA9IHNlcnZpY2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsdGVyU2VydmljZSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NTdWJJdGVtcyhtZW51KSB7XG4gICAgbWVudS5zdWJJdGVtcy5mb3JFYWNoKChtZW51SXRlbSwgaW5kZXgsIG1lbnVJdGVtcykgPT4ge1xuICAgICAgY29uc3QgcHJldmlvdXNJdGVtID0gbWVudUl0ZW1zW2luZGV4IC0gMV07XG4gICAgICBpZiAocHJldmlvdXNJdGVtICYmIHByZXZpb3VzSXRlbS5zdWJJdGVtcykge1xuICAgICAgICB0aGlzLl9sZXZlbCA9IHByZXZpb3VzSXRlbVsnbGV2ZWwnXTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2xldmVsIDw9IHRoaXMubWF4TGV2ZWwpIHtcbiAgICAgICAgdGhpcy5zZXRNZW51SXRlbVByb3BlcnRpZXMobWVudUl0ZW0pO1xuXG4gICAgICAgIGlmIChtZW51SXRlbS5zdWJJdGVtcykge1xuICAgICAgICAgIHRoaXMuX2xldmVsKys7XG4gICAgICAgICAgdGhpcy5wcm9jZXNzU3ViSXRlbXMobWVudUl0ZW0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghbWVudVsnYmFkZ2VBbGVydCddKSB7XG4gICAgICAgIG1lbnUgPSB0aGlzLnNldE1lbnVCYWRnZUFsZXJ0KG1lbnUsIG1lbnVJdGVtKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIG1lbnUuc3ViSXRlbXMgPSBPYmplY3QuYXNzaWduKFtdLCBtZW51LnN1Ykl0ZW1zKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlQmFkZ2VBbGVydChtZW51SXRlbTogUG9NZW51SXRlbSk6IHZvaWQge1xuICAgIGlmIChtZW51SXRlbVsnYmFkZ2VBbGVydCddKSB7XG4gICAgICBkZWxldGUgbWVudUl0ZW1bJ2JhZGdlQWxlcnQnXTtcbiAgICB9XG5cbiAgICBpZiAobWVudUl0ZW0uc3ViSXRlbXMpIHtcbiAgICAgIG1lbnVJdGVtLnN1Ykl0ZW1zLmZvckVhY2goc3ViSXRlbSA9PiB0aGlzLnJlbW92ZUJhZGdlQWxlcnQoc3ViSXRlbSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0TWVudUJhZGdlQWxlcnQocGFyZW50OiBQb01lbnVJdGVtLCBjaGlsZDogUG9NZW51SXRlbSk6IFBvTWVudUl0ZW0ge1xuICAgIGNvbnN0IGNoaWxkSGFzU3ViSXRlbXMgPSBjaGlsZC5zdWJJdGVtcyAmJiBjaGlsZC5zdWJJdGVtcy5sZW5ndGg7XG4gICAgY29uc3QgY2hpbGRIYXNCYWRnZUFsZXJ0ID0gY2hpbGRbJ2JhZGdlQWxlcnQnXTtcbiAgICBjb25zdCBjaGlsZEhhc0JhZGdlID0gY2hpbGQuYmFkZ2UgJiYgY29udmVydFRvSW50KGNoaWxkLmJhZGdlLnZhbHVlKSA+PSAwO1xuXG4gICAgcGFyZW50WydiYWRnZUFsZXJ0J10gPSBjaGlsZEhhc0JhZGdlQWxlcnQgfHwgKGNoaWxkSGFzQmFkZ2UgJiYgIWNoaWxkSGFzU3ViSXRlbXMpO1xuXG4gICAgcmV0dXJuIHBhcmVudDtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVNZW51KG1lbnVJdGVtOiBQb01lbnVJdGVtKTogdm9pZCB7XG4gICAgaWYgKCFtZW51SXRlbS5sYWJlbCB8fCBtZW51SXRlbS5sYWJlbC50cmltKCkgPT09ICcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IodGhpcy5saXRlcmFscy5lbXB0eUxhYmVsRXJyb3IpO1xuICAgIH0gZWxzZSBpZiAobWVudUl0ZW0uc3ViSXRlbXMpIHtcbiAgICAgIG1lbnVJdGVtLnN1Ykl0ZW1zLmZvckVhY2goc3ViSXRlbSA9PiB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVNZW51KHN1Ykl0ZW0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNoZWNrQWN0aXZlTWVudUJ5VXJsKHVybFJvdXRlcik7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBjaGVja2luZ1JvdXRlckNoaWxkcmVuRnJhZ21lbnRzKCk7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCB2YWxpZGF0ZUNvbGxhcHNlQ2xhc3MoKTtcbn1cbiJdfQ==
|