@igo2/context 1.15.4 → 1.15.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/context-import-export/context-import-export/context-import-export.component.mjs +2 -2
- package/esm2020/lib/context-import-export/context-import-export.module.mjs +1 -1
- package/esm2020/lib/context-import-export/index.mjs +1 -1
- package/esm2020/lib/context-import-export/shared/context-export.errors.mjs +1 -1
- package/esm2020/lib/context-import-export/shared/context-export.interface.mjs +1 -1
- package/esm2020/lib/context-import-export/shared/context-export.service.mjs +1 -1
- package/esm2020/lib/context-import-export/shared/context-export.utils.mjs +1 -1
- package/esm2020/lib/context-import-export/shared/context-import.errors.mjs +1 -1
- package/esm2020/lib/context-import-export/shared/context-import.service.mjs +1 -1
- package/esm2020/lib/context-import-export/shared/context-import.utils.mjs +1 -1
- package/esm2020/lib/context-import-export/shared/index.mjs +1 -1
- package/esm2020/lib/context-manager/context-edit/context-edit-binding.directive.mjs +1 -1
- package/esm2020/lib/context-manager/context-edit/context-edit.component.mjs +2 -2
- package/esm2020/lib/context-manager/context-edit/index.mjs +1 -1
- package/esm2020/lib/context-manager/context-form/context-form.component.mjs +2 -2
- package/esm2020/lib/context-manager/context-form/index.mjs +1 -1
- package/esm2020/lib/context-manager/context-item/context-item.component.mjs +2 -2
- package/esm2020/lib/context-manager/context-item/index.mjs +1 -1
- package/esm2020/lib/context-manager/context-list/context-list-binding.directive.mjs +1 -1
- package/esm2020/lib/context-manager/context-list/context-list.component.mjs +2 -2
- package/esm2020/lib/context-manager/context-list/context-list.enum.mjs +1 -1
- package/esm2020/lib/context-manager/context-list/index.mjs +1 -1
- package/esm2020/lib/context-manager/context-manager.module.mjs +1 -1
- package/esm2020/lib/context-manager/context-permissions/context-permissions-binding.directive.mjs +1 -1
- package/esm2020/lib/context-manager/context-permissions/context-permissions.component.mjs +2 -2
- package/esm2020/lib/context-manager/context-permissions/index.mjs +1 -1
- package/esm2020/lib/context-manager/index.mjs +1 -1
- package/esm2020/lib/context-manager/shared/context.enum.mjs +1 -1
- package/esm2020/lib/context-manager/shared/context.interface.mjs +1 -1
- package/esm2020/lib/context-manager/shared/context.service.mjs +1 -1
- package/esm2020/lib/context-manager/shared/index.mjs +1 -1
- package/esm2020/lib/context-manager/shared/layer-context.directive.mjs +7 -7
- package/esm2020/lib/context-manager/shared/map-context.directive.mjs +1 -1
- package/esm2020/lib/context-map-button/bookmark-button/bookmark-button.component.mjs +2 -2
- package/esm2020/lib/context-map-button/bookmark-button/bookmark-dialog.component.mjs +2 -2
- package/esm2020/lib/context-map-button/bookmark-button/index.mjs +1 -1
- package/esm2020/lib/context-map-button/context-map-button.module.mjs +1 -1
- package/esm2020/lib/context-map-button/index.mjs +1 -1
- package/esm2020/lib/context-map-button/poi-button/index.mjs +1 -1
- package/esm2020/lib/context-map-button/poi-button/poi-button.component.mjs +2 -2
- package/esm2020/lib/context-map-button/poi-button/poi-dialog.component.mjs +2 -2
- package/esm2020/lib/context-map-button/poi-button/shared/index.mjs +1 -1
- package/esm2020/lib/context-map-button/poi-button/shared/poi.interface.mjs +1 -1
- package/esm2020/lib/context-map-button/poi-button/shared/poi.service.mjs +1 -1
- package/esm2020/lib/context-map-button/user-button/index.mjs +1 -1
- package/esm2020/lib/context-map-button/user-button/user-button.animation.mjs +1 -1
- package/esm2020/lib/context-map-button/user-button/user-button.component.mjs +2 -2
- package/esm2020/lib/context-map-button/user-button/user-dialog.component.mjs +2 -2
- package/esm2020/lib/context.module.mjs +1 -1
- package/esm2020/lib/share-map/index.mjs +1 -1
- package/esm2020/lib/share-map/share-map/share-map-api.component.mjs +2 -2
- package/esm2020/lib/share-map/share-map/share-map-url.component.mjs +2 -2
- package/esm2020/lib/share-map/share-map/share-map.component.mjs +2 -2
- package/esm2020/lib/share-map/share-map.module.mjs +1 -1
- package/esm2020/lib/share-map/shared/index.mjs +1 -1
- package/esm2020/lib/share-map/shared/share-map.service.mjs +1 -1
- package/esm2020/lib/sidenav/index.mjs +1 -1
- package/esm2020/lib/sidenav/sidenav.component.mjs +2 -2
- package/esm2020/lib/sidenav/sidenav.module.mjs +1 -1
- package/esm2020/public_api.mjs +1 -1
- package/fesm2015/igo2-context.mjs +22 -22
- package/fesm2015/igo2-context.mjs.map +1 -1
- package/fesm2020/igo2-context.mjs +22 -22
- package/fesm2020/igo2-context.mjs.map +1 -1
- package/ngcc.config.js +3 -3
- package/package.json +6 -6
package/esm2020/lib/context-manager/context-permissions/context-permissions-binding.directive.mjs
CHANGED
|
@@ -96,4 +96,4 @@ ContextPermissionsBindingDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective(
|
|
|
96
96
|
type: HostListener,
|
|
97
97
|
args: ['scopeChanged', ['$event']]
|
|
98
98
|
}] }); })();
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1wZXJtaXNzaW9ucy1iaW5kaW5nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbnRleHQvc3JjL2xpYi9jb250ZXh0LW1hbmFnZXIvY29udGV4dC1wZXJtaXNzaW9ucy9jb250ZXh0LXBlcm1pc3Npb25zLWJpbmRpbmcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsSUFBSSxFQUdKLFlBQVksRUFFYixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFnQnZCLE1BQU0sT0FBTyxrQ0FBa0M7SUFxRTdDLFlBQ1UsU0FBc0MsRUFDdEMsY0FBOEIsRUFDOUIsZUFBZ0MsRUFDaEMsY0FBOEIsRUFDOUIsRUFBcUI7UUFIckIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFFN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQXhFRCxlQUFlLENBQUMsVUFBNkI7UUFFM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQ3ZCLHNEQUFzRCxFQUN0RCxzREFBc0QsQ0FBQyxDQUFDO1lBQzFELE9BQU87U0FDUjtRQUNELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUM1QyxJQUFJLENBQUMsY0FBYzthQUNoQix3QkFBd0IsQ0FDdkIsU0FBUyxFQUNULFVBQVUsQ0FBQyxNQUFNLEVBQ2pCLFVBQVUsQ0FBQyxjQUFjLENBQzFCO2FBQ0EsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ25CLEtBQUssTUFBTSxDQUFDLElBQUksT0FB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MUMsTUFBTSxXQUFXLEdBQUc7b0JBQ2xCLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBQ2hDLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxNQUFNLENBQUM7b0JBQ2hELENBQUMsQ0FBQztvQkFDRixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUNqQyxPQUFPLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLEtBQUssT0FBTyxDQUFDO29CQUNqRCxDQUFDLENBQUM7aUJBQ0gsQ0FBQztnQkFDRixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLENBQUM7WUFDcEQsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7O29IQTdHVSxrQ0FBa0M7cUZBQWxDLGtDQUFrQztxSUFBbEMsMkJBQXVCLDBIQUF2Qiw4QkFBMEIsa0hBQTFCLDBCQUFzQjs7dUZBQXRCLGtDQUFrQztjQUg5QyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdDQUFnQzthQUMzQzs7c0JBdUVJLElBQUk7Z0pBakVQLGVBQWU7a0JBRGQsWUFBWTttQkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUErQnpDLGtCQUFrQjtrQkFEakIsWUFBWTttQkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztZQXdCNUMsY0FBYztrQkFEYixZQUFZO21CQUFDLGNBQWMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgRGlyZWN0aXZlLFxyXG4gIFNlbGYsXHJcbiAgT25Jbml0LFxyXG4gIE9uRGVzdHJveSxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSwgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gIENvbnRleHQsXHJcbiAgQ29udGV4dFBlcm1pc3Npb24sXHJcbiAgRGV0YWlsZWRDb250ZXh0XHJcbn0gZnJvbSAnLi4vc2hhcmVkL2NvbnRleHQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29udGV4dFBlcm1pc3Npb25zQ29tcG9uZW50IH0gZnJvbSAnLi9jb250ZXh0LXBlcm1pc3Npb25zLmNvbXBvbmVudCc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tpZ29Db250ZXh0UGVybWlzc2lvbnNCaW5kaW5nXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnRleHRQZXJtaXNzaW9uc0JpbmRpbmdEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBjb21wb25lbnQ6IENvbnRleHRQZXJtaXNzaW9uc0NvbXBvbmVudDtcclxuICBwcml2YXRlIGVkaXRlZENvbnRleHQkJDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdhZGRQZXJtaXNzaW9uJywgWyckZXZlbnQnXSlcclxuICBvbkFkZFBlcm1pc3Npb24ocGVybWlzc2lvbjogQ29udGV4dFBlcm1pc3Npb24pIHtcclxuXHJcbiAgICBpZiAoIXBlcm1pc3Npb24ucHJvZmlsKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgJ2lnby5jb250ZXh0LmNvbnRleHRNYW5hZ2VyLmVycm9ycy5hZGRQZXJtaXNzaW9uRW1wdHknLFxyXG4gICAgICAgICdpZ28uY29udGV4dC5jb250ZXh0TWFuYWdlci5lcnJvcnMuYWRkUGVybWlzc2lvblRpdGxlJyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvbnRleHRJZCA9IHRoaXMuY29tcG9uZW50LmNvbnRleHQuaWQ7XHJcbiAgICB0aGlzLmNvbnRleHRTZXJ2aWNlXHJcbiAgICAgIC5hZGRQZXJtaXNzaW9uQXNzb2NpYXRpb24oXHJcbiAgICAgICAgY29udGV4dElkLFxyXG4gICAgICAgIHBlcm1pc3Npb24ucHJvZmlsLFxyXG4gICAgICAgIHBlcm1pc3Npb24udHlwZVBlcm1pc3Npb25cclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHByb2ZpbHMgPT4ge1xyXG4gICAgICAgIGZvciAoY29uc3QgcCBvZiBwcm9maWxzKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbXBvbmVudC5wZXJtaXNzaW9uc1twZXJtaXNzaW9uLnR5cGVQZXJtaXNzaW9uXS5wdXNoKHApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBwcm9maWwgPSBwZXJtaXNzaW9uLnByb2ZpbDtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3MoXHJcbiAgICAgICAgICAnaWdvLmNvbnRleHQucGVybWlzc2lvbi5kaWFsb2cuYWRkTXNnJyxcclxuICAgICAgICAgICdpZ28uY29udGV4dC5wZXJtaXNzaW9uLmRpYWxvZy5hZGRUaXRsZScsXHJcbiAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICB7IHZhbHVlOiBwcm9maWwgfSk7XHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigncmVtb3ZlUGVybWlzc2lvbicsIFsnJGV2ZW50J10pXHJcbiAgb25SZW1vdmVQZXJtaXNzaW9uKHBlcm1pc3Npb246IENvbnRleHRQZXJtaXNzaW9uKSB7XHJcbiAgICBjb25zdCBjb250ZXh0SWQgPSB0aGlzLmNvbXBvbmVudC5jb250ZXh0LmlkO1xyXG4gICAgdGhpcy5jb250ZXh0U2VydmljZVxyXG4gICAgICAuZGVsZXRlUGVybWlzc2lvbkFzc29jaWF0aW9uKGNvbnRleHRJZCwgcGVybWlzc2lvbi5pZClcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmNvbXBvbmVudC5wZXJtaXNzaW9uc1tcclxuICAgICAgICAgIHBlcm1pc3Npb24udHlwZVBlcm1pc3Npb25cclxuICAgICAgICBdLmZpbmRJbmRleChwID0+IHtcclxuICAgICAgICAgIHJldHVybiBwLmlkID09PSBwZXJtaXNzaW9uLmlkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuY29tcG9uZW50LnBlcm1pc3Npb25zW3Blcm1pc3Npb24udHlwZVBlcm1pc3Npb25dLnNwbGljZShpbmRleCwgMSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHByb2ZpbCA9IHBlcm1pc3Npb24ucHJvZmlsO1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2Uuc3VjY2VzcyhcclxuICAgICAgICAgICdpZ28uY29udGV4dC5wZXJtaXNzaW9uLmRpYWxvZy5kZWxldGVNc2cnLFxyXG4gICAgICAgICAgJ2lnby5jb250ZXh0LnBlcm1pc3Npb24uZGlhbG9nLmRlbGV0ZVRpdGxlJyxcclxuICAgICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAgIHsgdmFsdWU6IHByb2ZpbCB9KTtcclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdzY29wZUNoYW5nZWQnLCBbJyRldmVudCddKVxyXG4gIG9uU2NvcGVDaGFuZ2VkKGNvbnRleHQ6IENvbnRleHQpIHtcclxuICAgIGNvbnN0IHNjb3BlID0gY29udGV4dC5zY29wZTtcclxuICAgIHRoaXMuY29udGV4dFNlcnZpY2UudXBkYXRlKGNvbnRleHQuaWQsIHsgc2NvcGUgfSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5zdWNjZXNzKFxyXG4gICAgICAgICdpZ28uY29udGV4dC5wZXJtaXNzaW9uLmRpYWxvZy5zY29wZUNoYW5nZWRNc2cnLFxyXG4gICAgICAgICdpZ28uY29udGV4dC5wZXJtaXNzaW9uLmRpYWxvZy5zY29wZUNoYW5nZWRUaXRsZScsXHJcbiAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgIHsgdmFsdWU6ICdpZ28uY29udGV4dC5wZXJtaXNzaW9uLnNjb3BlLicgKyBzY29wZSB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBAU2VsZigpIGNvbXBvbmVudDogQ29udGV4dFBlcm1pc3Npb25zQ29tcG9uZW50LFxyXG4gICAgcHJpdmF0ZSBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgdGhpcy5jb21wb25lbnQgPSBjb21wb25lbnQ7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZWRpdGVkQ29udGV4dCQkID0gdGhpcy5jb250ZXh0U2VydmljZS5lZGl0ZWRDb250ZXh0JC5zdWJzY3JpYmUoXHJcbiAgICAgIGNvbnRleHQgPT4gdGhpcy5oYW5kbGVFZGl0ZWRDb250ZXh0Q2hhbmdlKGNvbnRleHQpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmVkaXRlZENvbnRleHQkJC51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5jb250ZXh0U2VydmljZS5lZGl0ZWRDb250ZXh0JC5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUVkaXRlZENvbnRleHRDaGFuZ2UoY29udGV4dDogRGV0YWlsZWRDb250ZXh0KSB7XHJcbiAgICB0aGlzLmNvbXBvbmVudC5jb250ZXh0ID0gY29udGV4dDtcclxuXHJcbiAgICBpZiAoY29udGV4dCkge1xyXG4gICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlXHJcbiAgICAgICAgLmdldFBlcm1pc3Npb25zKGNvbnRleHQuaWQpXHJcbiAgICAgICAgLnN1YnNjcmliZShwZXJtaXNzaW9uc0FycmF5ID0+IHtcclxuICAgICAgICAgIHBlcm1pc3Npb25zQXJyYXkgPSBwZXJtaXNzaW9uc0FycmF5IHx8IFtdO1xyXG4gICAgICAgICAgY29uc3QgcGVybWlzc2lvbnMgPSB7XHJcbiAgICAgICAgICAgIHJlYWQ6IHBlcm1pc3Npb25zQXJyYXkuZmlsdGVyKHAgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiBwLnR5cGVQZXJtaXNzaW9uLnRvU3RyaW5nKCkgPT09ICdyZWFkJztcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIHdyaXRlOiBwZXJtaXNzaW9uc0FycmF5LmZpbHRlcihwID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gcC50eXBlUGVybWlzc2lvbi50b1N0cmluZygpID09PSAnd3JpdGUnO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHJldHVybiAodGhpcy5jb21wb25lbnQucGVybWlzc2lvbnMgPSBwZXJtaXNzaW9ucyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1wZXJtaXNzaW9ucy1iaW5kaW5nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbnRleHQvc3JjL2xpYi9jb250ZXh0LW1hbmFnZXIvY29udGV4dC1wZXJtaXNzaW9ucy9jb250ZXh0LXBlcm1pc3Npb25zLWJpbmRpbmcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsSUFBSSxFQUdKLFlBQVksRUFFYixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFnQnZCLE1BQU0sT0FBTyxrQ0FBa0M7SUFxRTdDLFlBQ1UsU0FBc0MsRUFDdEMsY0FBOEIsRUFDOUIsZUFBZ0MsRUFDaEMsY0FBOEIsRUFDOUIsRUFBcUI7UUFIckIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFFN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQXhFRCxlQUFlLENBQUMsVUFBNkI7UUFFM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQ3ZCLHNEQUFzRCxFQUN0RCxzREFBc0QsQ0FBQyxDQUFDO1lBQzFELE9BQU87U0FDUjtRQUNELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUM1QyxJQUFJLENBQUMsY0FBYzthQUNoQix3QkFBd0IsQ0FDdkIsU0FBUyxFQUNULFVBQVUsQ0FBQyxNQUFNLEVBQ2pCLFVBQVUsQ0FBQyxjQUFjLENBQzFCO2FBQ0EsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ25CLEtBQUssTUFBTSxDQUFDLElBQUksT0FB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MUMsTUFBTSxXQUFXLEdBQUc7b0JBQ2xCLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBQ2hDLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxNQUFNLENBQUM7b0JBQ2hELENBQUMsQ0FBQztvQkFDRixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUNqQyxPQUFPLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLEtBQUssT0FBTyxDQUFDO29CQUNqRCxDQUFDLENBQUM7aUJBQ0gsQ0FBQztnQkFDRixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLENBQUM7WUFDcEQsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7O29IQTdHVSxrQ0FBa0M7cUZBQWxDLGtDQUFrQztxSUFBbEMsMkJBQXVCLDBIQUF2Qiw4QkFBMEIsa0hBQTFCLDBCQUFzQjs7dUZBQXRCLGtDQUFrQztjQUg5QyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdDQUFnQzthQUMzQzs7c0JBdUVJLElBQUk7Z0pBakVQLGVBQWU7a0JBRGQsWUFBWTttQkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUErQnpDLGtCQUFrQjtrQkFEakIsWUFBWTttQkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztZQXdCNUMsY0FBYztrQkFEYixZQUFZO21CQUFDLGNBQWMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgU2VsZixcbiAgT25Jbml0LFxuICBPbkRlc3Ryb3ksXG4gIEhvc3RMaXN0ZW5lcixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UsIExhbmd1YWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xuXG5pbXBvcnQge1xuICBDb250ZXh0LFxuICBDb250ZXh0UGVybWlzc2lvbixcbiAgRGV0YWlsZWRDb250ZXh0XG59IGZyb20gJy4uL3NoYXJlZC9jb250ZXh0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb250ZXh0U2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udGV4dFBlcm1pc3Npb25zQ29tcG9uZW50IH0gZnJvbSAnLi9jb250ZXh0LXBlcm1pc3Npb25zLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tpZ29Db250ZXh0UGVybWlzc2lvbnNCaW5kaW5nXSdcbn0pXG5leHBvcnQgY2xhc3MgQ29udGV4dFBlcm1pc3Npb25zQmluZGluZ0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBjb21wb25lbnQ6IENvbnRleHRQZXJtaXNzaW9uc0NvbXBvbmVudDtcbiAgcHJpdmF0ZSBlZGl0ZWRDb250ZXh0JCQ6IFN1YnNjcmlwdGlvbjtcblxuICBASG9zdExpc3RlbmVyKCdhZGRQZXJtaXNzaW9uJywgWyckZXZlbnQnXSlcbiAgb25BZGRQZXJtaXNzaW9uKHBlcm1pc3Npb246IENvbnRleHRQZXJtaXNzaW9uKSB7XG5cbiAgICBpZiAoIXBlcm1pc3Npb24ucHJvZmlsKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxuICAgICAgICAnaWdvLmNvbnRleHQuY29udGV4dE1hbmFnZXIuZXJyb3JzLmFkZFBlcm1pc3Npb25FbXB0eScsXG4gICAgICAgICdpZ28uY29udGV4dC5jb250ZXh0TWFuYWdlci5lcnJvcnMuYWRkUGVybWlzc2lvblRpdGxlJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGNvbnRleHRJZCA9IHRoaXMuY29tcG9uZW50LmNvbnRleHQuaWQ7XG4gICAgdGhpcy5jb250ZXh0U2VydmljZVxuICAgICAgLmFkZFBlcm1pc3Npb25Bc3NvY2lhdGlvbihcbiAgICAgICAgY29udGV4dElkLFxuICAgICAgICBwZXJtaXNzaW9uLnByb2ZpbCxcbiAgICAgICAgcGVybWlzc2lvbi50eXBlUGVybWlzc2lvblxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShwcm9maWxzID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBwIG9mIHByb2ZpbHMpIHtcbiAgICAgICAgICB0aGlzLmNvbXBvbmVudC5wZXJtaXNzaW9uc1twZXJtaXNzaW9uLnR5cGVQZXJtaXNzaW9uXS5wdXNoKHApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByb2ZpbCA9IHBlcm1pc3Npb24ucHJvZmlsO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3MoXG4gICAgICAgICAgJ2lnby5jb250ZXh0LnBlcm1pc3Npb24uZGlhbG9nLmFkZE1zZycsXG4gICAgICAgICAgJ2lnby5jb250ZXh0LnBlcm1pc3Npb24uZGlhbG9nLmFkZFRpdGxlJyxcbiAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgeyB2YWx1ZTogcHJvZmlsIH0pO1xuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigncmVtb3ZlUGVybWlzc2lvbicsIFsnJGV2ZW50J10pXG4gIG9uUmVtb3ZlUGVybWlzc2lvbihwZXJtaXNzaW9uOiBDb250ZXh0UGVybWlzc2lvbikge1xuICAgIGNvbnN0IGNvbnRleHRJZCA9IHRoaXMuY29tcG9uZW50LmNvbnRleHQuaWQ7XG4gICAgdGhpcy5jb250ZXh0U2VydmljZVxuICAgICAgLmRlbGV0ZVBlcm1pc3Npb25Bc3NvY2lhdGlvbihjb250ZXh0SWQsIHBlcm1pc3Npb24uaWQpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmNvbXBvbmVudC5wZXJtaXNzaW9uc1tcbiAgICAgICAgICBwZXJtaXNzaW9uLnR5cGVQZXJtaXNzaW9uXG4gICAgICAgIF0uZmluZEluZGV4KHAgPT4ge1xuICAgICAgICAgIHJldHVybiBwLmlkID09PSBwZXJtaXNzaW9uLmlkO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jb21wb25lbnQucGVybWlzc2lvbnNbcGVybWlzc2lvbi50eXBlUGVybWlzc2lvbl0uc3BsaWNlKGluZGV4LCAxKTtcblxuICAgICAgICBjb25zdCBwcm9maWwgPSBwZXJtaXNzaW9uLnByb2ZpbDtcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5zdWNjZXNzKFxuICAgICAgICAgICdpZ28uY29udGV4dC5wZXJtaXNzaW9uLmRpYWxvZy5kZWxldGVNc2cnLFxuICAgICAgICAgICdpZ28uY29udGV4dC5wZXJtaXNzaW9uLmRpYWxvZy5kZWxldGVUaXRsZScsXG4gICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgIHsgdmFsdWU6IHByb2ZpbCB9KTtcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3Njb3BlQ2hhbmdlZCcsIFsnJGV2ZW50J10pXG4gIG9uU2NvcGVDaGFuZ2VkKGNvbnRleHQ6IENvbnRleHQpIHtcbiAgICBjb25zdCBzY29wZSA9IGNvbnRleHQuc2NvcGU7XG4gICAgdGhpcy5jb250ZXh0U2VydmljZS51cGRhdGUoY29udGV4dC5pZCwgeyBzY29wZSB9KS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5zdWNjZXNzKFxuICAgICAgICAnaWdvLmNvbnRleHQucGVybWlzc2lvbi5kaWFsb2cuc2NvcGVDaGFuZ2VkTXNnJyxcbiAgICAgICAgJ2lnby5jb250ZXh0LnBlcm1pc3Npb24uZGlhbG9nLnNjb3BlQ2hhbmdlZFRpdGxlJyxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICB7IHZhbHVlOiAnaWdvLmNvbnRleHQucGVybWlzc2lvbi5zY29wZS4nICsgc2NvcGUgfSk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBAU2VsZigpIGNvbXBvbmVudDogQ29udGV4dFBlcm1pc3Npb25zQ29tcG9uZW50LFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgdGhpcy5jb21wb25lbnQgPSBjb21wb25lbnQ7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmVkaXRlZENvbnRleHQkJCA9IHRoaXMuY29udGV4dFNlcnZpY2UuZWRpdGVkQ29udGV4dCQuc3Vic2NyaWJlKFxuICAgICAgY29udGV4dCA9PiB0aGlzLmhhbmRsZUVkaXRlZENvbnRleHRDaGFuZ2UoY29udGV4dClcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5lZGl0ZWRDb250ZXh0JCQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLmVkaXRlZENvbnRleHQkLm5leHQodW5kZWZpbmVkKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRWRpdGVkQ29udGV4dENoYW5nZShjb250ZXh0OiBEZXRhaWxlZENvbnRleHQpIHtcbiAgICB0aGlzLmNvbXBvbmVudC5jb250ZXh0ID0gY29udGV4dDtcblxuICAgIGlmIChjb250ZXh0KSB7XG4gICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlXG4gICAgICAgIC5nZXRQZXJtaXNzaW9ucyhjb250ZXh0LmlkKVxuICAgICAgICAuc3Vic2NyaWJlKHBlcm1pc3Npb25zQXJyYXkgPT4ge1xuICAgICAgICAgIHBlcm1pc3Npb25zQXJyYXkgPSBwZXJtaXNzaW9uc0FycmF5IHx8IFtdO1xuICAgICAgICAgIGNvbnN0IHBlcm1pc3Npb25zID0ge1xuICAgICAgICAgICAgcmVhZDogcGVybWlzc2lvbnNBcnJheS5maWx0ZXIocCA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBwLnR5cGVQZXJtaXNzaW9uLnRvU3RyaW5nKCkgPT09ICdyZWFkJztcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgd3JpdGU6IHBlcm1pc3Npb25zQXJyYXkuZmlsdGVyKHAgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gcC50eXBlUGVybWlzc2lvbi50b1N0cmluZygpID09PSAnd3JpdGUnO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9O1xuICAgICAgICAgIHJldHVybiAodGhpcy5jb21wb25lbnQucGVybWlzc2lvbnMgPSBwZXJtaXNzaW9ucyk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -291,7 +291,7 @@ ContextPermissionsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
|
|
|
291
291
|
} }, dependencies: [i5.NgForOf, i5.NgIf, i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.RequiredValidator, i1.NgModel, i1.FormControlDirective, i1.FormGroupDirective, i1.FormControlName, i6.MatError, i6.MatFormField, i7.MatInput, i8.MatIcon, i9.MatButton, i10.MatTooltip, i11.MatListItem, i11.MatListAvatarCssMatStyler, i12.MatLine, i13.MatRadioGroup, i13.MatRadioButton, i12.MatOption, i14.MatAutocomplete, i14.MatAutocompleteTrigger, i15.ListComponent, i15.CollapsibleComponent, i15.StopPropagationDirective, i15.KeyValuePipe, i16.TranslatePipe], styles: ["[_nghost-%COMP%]{margin:10px}.full-width[_ngcontent-%COMP%]{width:100%}mat-radio-button[_ngcontent-%COMP%]{padding:14px 14px 14px 0}.scopeForm[_ngcontent-%COMP%], form[_ngcontent-%COMP%]{padding:5px}mat-option[_ngcontent-%COMP%] .mat-option-text{line-height:normal;line-height:initial}"] });
|
|
292
292
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContextPermissionsComponent, [{
|
|
293
293
|
type: Component,
|
|
294
|
-
args: [{ selector: 'igo-context-permissions', template: "<div *ngIf=\"context\">\
|
|
294
|
+
args: [{ selector: 'igo-context-permissions', template: "<div *ngIf=\"context\">\n\n <div *ngIf=\"!canWrite\" class=\"scopeForm\">\n <h4>{{ 'igo.context.permission.readOnlyTitle' | translate }}</h4>\n <p>{{ 'igo.context.permission.readOnlyMsg' | translate }}</p>\n </div>\n\n <div *ngIf=\"canWrite\" class=\"scopeForm\">\n <mat-radio-group [(ngModel)]=\"context.scope\"\n (change)=\"scopeChanged.emit(context)\">\n <mat-radio-button value=\"private\">\n {{ 'igo.context.permission.scope.private' | translate }}\n </mat-radio-button>\n <mat-radio-button value=\"protected\">\n {{ 'igo.context.permission.scope.shared' | translate }}\n </mat-radio-button>\n <mat-radio-button *ngIf=\"authService.isAdmin\" value=\"public\">\n {{ 'igo.context.permission.scope.public' | translate }}\n </mat-radio-button>\n </mat-radio-group>\n </div>\n\n <form *ngIf=\"context.scope !== 'private' && canWrite\" [formGroup]=\"form\"\n (ngSubmit)=\"handleFormSubmit(form.value)\">\n\n <mat-form-field class=\"full-width\">\n <input matInput required\n [placeholder]=\"'igo.context.permission.user' | translate\"\n [formControl]=\"formControl\"\n [matAutocomplete]=\"auto\">\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onProfilSelected($event.option.value)\"\n [displayWith]=\"displayFn\">\n <mat-option *ngFor=\"let profil of this.profils\" [value]=\"profil\">\n {{profil.title}}<br>\n <small class=\"mat-typography\">{{profil.name}}</small>\n </mat-option>\n </mat-autocomplete>\n <mat-error>\n {{ 'igo.context.permission.profilRequired' | translate }}\n </mat-error>\n </mat-form-field>\n\n\n <mat-radio-group formControlName=\"typePermission\">\n <mat-radio-button value=\"read\">\n {{ 'igo.context.permission.read' | translate }}\n </mat-radio-button>\n <mat-radio-button value=\"write\">\n {{ 'igo.context.permission.write' | translate }}\n </mat-radio-button>\n </mat-radio-group>\n\n\n <div class=\"igo-form-button-group\">\n <button\n mat-raised-button\n type=\"submit\"\n [disabled]=\"!form.valid\">\n {{ 'igo.context.permission.addBtn' | translate }}\n </button>\n </div>\n\n </form>\n\n <igo-list *ngIf=\"permissions && context.scope !== 'private'\">\n <ng-template ngFor let-groupPermissions [ngForOf]=\"permissions | keyvalue\">\n <igo-collapsible\n *ngIf=\"groupPermissions.value.length\"\n [title]=\"'igo.context.permission.' + groupPermissions.key | translate\">\n\n <ng-template ngFor let-permission [ngForOf]=\"groupPermissions.value\">\n <mat-list-item>\n <mat-icon mat-list-avatar svgIcon=\"account-outline\"></mat-icon>\n <h4 mat-line>{{permission.profilTitle}} <small class=\"mat-typography\">{{permission.profil}}</small></h4>\n\n <div igoStopPropagation\n class=\"igo-actions-container\">\n\n <button *ngIf=\"canWrite || permission.profil === authService.decodeToken().user.sourceId\"\n mat-icon-button\n [matTooltip]=\"'igo.context.permission.delete' | translate\"\n matTooltipShowDelay=\"500\"\n color=\"warn\"\n (click)=\"removePermission.emit(permission)\">\n <mat-icon svgIcon=\"delete\"></mat-icon>\n </button>\n </div>\n\n </mat-list-item>\n </ng-template>\n </igo-collapsible>\n </ng-template>\n </igo-list>\n\n</div>\n", styles: [":host{margin:10px}.full-width{width:100%}mat-radio-button{padding:14px 14px 14px 0}.scopeForm,form{padding:5px}mat-option ::ng-deep .mat-option-text{line-height:normal;line-height:initial}\n"] }]
|
|
295
295
|
}], function () { return [{ type: i1.UntypedFormBuilder }, { type: i0.ChangeDetectorRef }, { type: i2.HttpClient }, { type: i3.AuthService }, { type: i4.ConfigService }]; }, { context: [{
|
|
296
296
|
type: Input
|
|
297
297
|
}], permissions: [{
|
|
@@ -303,4 +303,4 @@ ContextPermissionsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
|
|
|
303
303
|
}], scopeChanged: [{
|
|
304
304
|
type: Output
|
|
305
305
|
}] }); })();
|
|
306
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1wZXJtaXNzaW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYW5hZ2VyL2NvbnRleHQtcGVybWlzc2lvbnMvY29udGV4dC1wZXJtaXNzaW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYW5hZ2VyL2NvbnRleHQtcGVybWlzc2lvbnMvY29udGV4dC1wZXJtaXNzaW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQXdDLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFRMUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDUHRELDhCQUF5QyxTQUFBO0lBQ25DLFlBQXdEOztJQUFBLGlCQUFLO0lBQ2pFLHlCQUFHO0lBQUEsWUFBc0Q7O0lBQUEsaUJBQUksRUFBQTs7SUFEekQsZUFBd0Q7SUFBeEQsa0ZBQXdEO0lBQ3pELGVBQXNEO0lBQXRELGdGQUFzRDs7O0lBWXZELDJDQUE2RDtJQUMzRCxZQUNGOztJQUFBLGlCQUFtQjs7SUFEakIsZUFDRjtJQURFLDRGQUNGOzs7O0lBWEosOEJBQXdDLHlCQUFBO0lBQ3JCLDhNQUFhLDZDQUM3QixJQUQyQyw2S0FDbEIsZUFBQSx3Q0FBMEIsQ0FBQSxJQURSO0lBRTFDLDJDQUFrQztJQUNoQyxZQUNGOztJQUFBLGlCQUFtQjtJQUNuQiwyQ0FBb0M7SUFDbEMsWUFDRjs7SUFBQSxpQkFBbUI7SUFDbkIsa0hBRW1CO0lBQ3JCLGlCQUFrQixFQUFBOzs7SUFYRCxlQUEy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YSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU8sU0FBUztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDakMsTUFBTSxFQUFFLEVBQUU7WUFDVixjQUFjLEVBQUUsQ0FBQyxNQUFNLENBQUM7U0FDekIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQUs7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDakIsTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2xCLGNBQWMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjO1NBQy9DLENBQUMsQ0FBQztJQUNMLENBQUM7O3NHQTlGVSwyQkFBMkI7OEVBQTNCLDJCQUEyQjtRQ3RCeEMsNEVBOEZNOztRQTlGQSxrQ0FBYTs7dUZEc0JOLDJCQUEyQjtjQUx2QyxTQUFTOzJCQUNFLHlCQUF5QjtvTEFRL0IsT0FBTztrQkFEVixLQUFLO1lBV0YsV0FBVztrQkFEZCxLQUFLO1lBNEJJLGFBQWE7a0JBQXRCLE1BQU07WUFDRyxnQkFBZ0I7a0JBQXpCLE1BQU07WUFDRyxZQUFZO2tCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQge1xyXG4gIENvbnRleHQsXHJcbiAgQ29udGV4dFBlcm1pc3Npb24sXHJcbiAgQ29udGV4dFBlcm1pc3Npb25zTGlzdCxcclxuICBDb250ZXh0UHJvZmlsc1xyXG59IGZyb20gJy4uL3NoYXJlZC9jb250ZXh0LmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFR5cGVQZXJtaXNzaW9uIH0gZnJvbSAnLi4vc2hhcmVkL2NvbnRleHQuZW51bSc7XHJcblxyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvYXV0aCc7XHJcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLWNvbnRleHQtcGVybWlzc2lvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZXh0LXBlcm1pc3Npb25zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb250ZXh0LXBlcm1pc3Npb25zLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnRleHRQZXJtaXNzaW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHVibGljIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGNvbnRleHQoKTogQ29udGV4dCB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29udGV4dDtcclxuICB9XHJcbiAgc2V0IGNvbnRleHQodmFsdWU6IENvbnRleHQpIHtcclxuICAgIHRoaXMuX2NvbnRleHQgPSB2YWx1ZTtcclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuICBwcml2YXRlIF9jb250ZXh0OiBDb250ZXh0O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBwZXJtaXNzaW9ucygpOiBDb250ZXh0UGVybWlzc2lvbnNMaXN0IHtcclxuICAgIHJldHVybiB0aGlzLl9wZXJtaXNzaW9ucztcclxuICB9XHJcbiAgc2V0IHBlcm1pc3Npb25zKHZhbHVlOiBDb250ZXh0UGVybWlzc2lvbnNMaXN0KSB7XHJcbiAgICB0aGlzLl9wZXJtaXNzaW9ucyA9IHZhbHVlO1xyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3Blcm1pc3Npb25zOiBDb250ZXh0UGVybWlzc2lvbnNMaXN0O1xyXG5cclxuICBnZXQgcHJvZmlscygpOiBDb250ZXh0UHJvZmlsc1tdIHtcclxuICAgIHJldHVybiB0aGlzLl9wcm9maWxzO1xyXG4gIH1cclxuICBzZXQgcHJvZmlscyh2YWx1ZTogQ29udGV4dFByb2ZpbHNbXSkge1xyXG4gICAgdGhpcy5fcHJvZmlscyA9IHZhbHVlO1xyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3Byb2ZpbHM6IENvbnRleHRQcm9maWxzW10gPSBbXTtcclxuXHJcbiAgZ2V0IGNhbldyaXRlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC5wZXJtaXNzaW9uID09PSBUeXBlUGVybWlzc2lvbltUeXBlUGVybWlzc2lvbi53cml0ZV07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJhc2VVcmxQcm9maWxzO1xyXG5cclxuICBwdWJsaWMgZm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XHJcbiAgZm9ybVZhbHVlQ2hhbmdlcyQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIEBPdXRwdXQoKSBhZGRQZXJtaXNzaW9uOiBFdmVudEVtaXR0ZXI8Q29udGV4dFBlcm1pc3Npb24+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSByZW1vdmVQZXJtaXNzaW9uOiBFdmVudEVtaXR0ZXI8Q29udGV4dFBlcm1pc3Npb24+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzY29wZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDb250ZXh0PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICAgICAgICBwdWJsaWMgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYnVpbGRGb3JtKCk7XHJcblxyXG4gICAgdGhpcy5iYXNlVXJsUHJvZmlscyA9IHRoaXMuY29uZmlnLmdldENvbmZpZygnY29udGV4dC51cmwnKSArICcvcHJvZmlscy11c2Vycz8nO1xyXG5cclxuICAgIHRoaXMuZm9ybVZhbHVlQ2hhbmdlcyQkID0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICBpZiAodmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5odHRwLmdldCh0aGlzLmJhc2VVcmxQcm9maWxzICsgJ3E9JyArIHZhbHVlKS5zdWJzY3JpYmUocHJvZmlscyA9PiB7XHJcbiAgICAgICAgICB0aGlzLnByb2ZpbHMgPSBwcm9maWxzIGFzIENvbnRleHRQcm9maWxzW107XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5wcm9maWxzLmZpbHRlcigocHJvZmlsKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBmaWx0ZXJOb3JtYWxpemVkID0gdmFsdWUudG9Mb3dlckNhc2UoKS5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKTtcclxuICAgICAgICAgIGNvbnN0IHByb2ZpbFRpdGxlTm9ybWFsaXplZCA9IHByb2ZpbC50aXRsZS50b0xvd2VyQ2FzZSgpLm5vcm1hbGl6ZSgnTkZEJykucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpO1xyXG4gICAgICAgICAgY29uc3QgcHJvZmlsTmFtZU5vcm1hbGl6ZWQgPSBwcm9maWwubmFtZS50b0xvd2VyQ2FzZSgpLm5vcm1hbGl6ZSgnTkZEJykucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpO1xyXG4gICAgICAgICAgY29uc3QgcHJvZmlsTm9ybWFsaXplZCA9IHByb2ZpbE5hbWVOb3JtYWxpemVkICsgcHJvZmlsVGl0bGVOb3JtYWxpemVkO1xyXG4gICAgICAgICAgcmV0dXJuIHByb2ZpbE5vcm1hbGl6ZWQuaW5jbHVkZXMoZmlsdGVyTm9ybWFsaXplZCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5wcm9maWxzID0gW107XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZGlzcGxheUZuKHByb2ZpbD86IENvbnRleHRQcm9maWxzKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiBwcm9maWwgPyBwcm9maWwudGl0bGUgOiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRm9ybVN1Ym1pdCh2YWx1ZSkge1xyXG4gICAgdGhpcy5hZGRQZXJtaXNzaW9uLmVtaXQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZEZvcm0oKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgcHJvZmlsOiBbXSxcclxuICAgICAgdHlwZVBlcm1pc3Npb246IFsncmVhZCddXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uUHJvZmlsU2VsZWN0ZWQodmFsdWUpIHtcclxuICAgIHRoaXMuZm9ybS5zZXRWYWx1ZSh7XHJcbiAgICAgIHByb2ZpbDogdmFsdWUubmFtZSxcclxuICAgICAgdHlwZVBlcm1pc3Npb246IHRoaXMuZm9ybS52YWx1ZS50eXBlUGVybWlzc2lvblxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJjb250ZXh0XCI+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCIhY2FuV3JpdGVcIiBjbGFzcz1cInNjb3BlRm9ybVwiPlxyXG4gICAgPGg0Pnt7ICdpZ28uY29udGV4dC5wZXJtaXNzaW9uLnJlYWRPbmx5VGl0bGUnIHwgdHJhbnNsYXRlIH19PC9oND5cclxuICAgIDxwPnt7ICdpZ28uY29udGV4dC5wZXJtaXNzaW9uLnJlYWRPbmx5TXNnJyB8IHRyYW5zbGF0ZSB9fTwvcD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiAqbmdJZj1cImNhbldyaXRlXCIgY2xhc3M9XCJzY29wZUZvcm1cIj5cclxuICAgIDxtYXQtcmFkaW8tZ3JvdXAgWyhuZ01vZGVsKV09XCJjb250ZXh0LnNjb3BlXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInNjb3BlQ2hhbmdlZC5lbWl0KGNvbnRleHQpXCI+XHJcbiAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIHZhbHVlPVwicHJpdmF0ZVwiPlxyXG4gICAgICAgIHt7ICdpZ28uY29udGV4dC5wZXJtaXNzaW9uLnNjb3BlLnByaXZhdGUnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgPG1hdC1yYWRpby1idXR0b24gdmFsdWU9XCJwcm90ZWN0ZWRcIj5cclxuICAgICAgICB7eyAnaWdvLmNvbnRleHQucGVybWlzc2lvbi5zY29wZS5zaGFyZWQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgPG1hdC1yYWRpby1idXR0b24gKm5nSWY9XCJhdXRoU2VydmljZS5pc0FkbWluXCIgdmFsdWU9XCJwdWJsaWNcIj5cclxuICAgICAgICB7eyAnaWdvLmNvbnRleHQucGVybWlzc2lvbi5zY29wZS5wdWJsaWMnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8Zm9ybSAqbmdJZj1cImNvbnRleHQuc2NvcGUgIT09ICdwcml2YXRlJyAmJiBjYW5Xcml0ZVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiXHJcbiAgICAobmdTdWJtaXQpPVwiaGFuZGxlRm9ybVN1Ym1pdChmb3JtLnZhbHVlKVwiPlxyXG5cclxuICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cclxuICAgICAgPGlucHV0IG1hdElucHV0IHJlcXVpcmVkXHJcbiAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ2lnby5jb250ZXh0LnBlcm1pc3Npb24udXNlcicgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcclxuICAgICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiPlxyXG4gICAgICA8bWF0LWF1dG9jb21wbGV0ZSAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiIChvcHRpb25TZWxlY3RlZCk9XCJvblByb2ZpbFNlbGVjdGVkKCRldmVudC5vcHRpb24udmFsdWUpXCJcclxuICAgICAgICBbZGlzcGxheVdpdGhdPVwiZGlzcGxheUZuXCI+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgcHJvZmlsIG9mIHRoaXMucHJvZmlsc1wiIFt2YWx1ZV09XCJwcm9maWxcIj5cclxuICAgICAgICAgICAgICB7e3Byb2ZpbC50aXRsZX19PGJyPlxyXG4gICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCI+e3twcm9maWwubmFtZX19PC9zbWFsbD5cclxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gICAgIDxtYXQtZXJyb3I+XHJcbiAgICAgICB7eyAnaWdvLmNvbnRleHQucGVybWlzc2lvbi5wcm9maWxSZXF1aXJlZCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICA8L21hdC1lcnJvcj5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG5cclxuICAgIDxtYXQtcmFkaW8tZ3JvdXAgZm9ybUNvbnRyb2xOYW1lPVwidHlwZVBlcm1pc3Npb25cIj5cclxuICAgICAgPG1hdC1yYWRpby1idXR0b24gdmFsdWU9XCJyZWFkXCI+XHJcbiAgICAgICAge3sgJ2lnby5jb250ZXh0LnBlcm1pc3Npb24ucmVhZCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICA8bWF0LXJhZGlvLWJ1dHRvbiB2YWx1ZT1cIndyaXRlXCI+XHJcbiAgICAgICAge3sgJ2lnby5jb250ZXh0LnBlcm1pc3Npb24ud3JpdGUnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiaWdvLWZvcm0tYnV0dG9uLWdyb3VwXCI+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCIhZm9ybS52YWxpZFwiPlxyXG4gICAgICAgIHt7ICdpZ28uY29udGV4dC5wZXJtaXNzaW9uLmFkZEJ0bicgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9mb3JtPlxyXG5cclxuICA8aWdvLWxpc3QgKm5nSWY9XCJwZXJtaXNzaW9ucyAmJiBjb250ZXh0LnNjb3BlICE9PSAncHJpdmF0ZSdcIj5cclxuICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtZ3JvdXBQZXJtaXNzaW9ucyBbbmdGb3JPZl09XCJwZXJtaXNzaW9ucyB8IGtleXZhbHVlXCI+XHJcbiAgICAgIDxpZ28tY29sbGFwc2libGVcclxuICAgICAgICAqbmdJZj1cImdyb3VwUGVybWlzc2lvbnMudmFsdWUubGVuZ3RoXCJcclxuICAgICAgICBbdGl0bGVdPVwiJ2lnby5jb250ZXh0LnBlcm1pc3Npb24uJyArIGdyb3VwUGVybWlzc2lvbnMua2V5IHwgdHJhbnNsYXRlXCI+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtcGVybWlzc2lvbiBbbmdGb3JPZl09XCJncm91cFBlcm1pc3Npb25zLnZhbHVlXCI+XHJcbiAgICAgICAgICA8bWF0LWxpc3QtaXRlbT5cclxuICAgICAgICAgICAgPG1hdC1pY29uIG1hdC1saXN0LWF2YXRhciBzdmdJY29uPVwiYWNjb3VudC1vdXRsaW5lXCI+PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPGg0IG1hdC1saW5lPnt7cGVybWlzc2lvbi5wcm9maWxUaXRsZX19IDxzbWFsbCBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCI+e3twZXJtaXNzaW9uLnByb2ZpbH19PC9zbWFsbD48L2g0PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBpZ29TdG9wUHJvcGFnYXRpb25cclxuICAgICAgICAgICAgICAgICBjbGFzcz1cImlnby1hY3Rpb25zLWNvbnRhaW5lclwiPlxyXG5cclxuICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNhbldyaXRlIHx8IHBlcm1pc3Npb24ucHJvZmlsID09PSBhdXRoU2VydmljZS5kZWNvZGVUb2tlbigpLnVzZXIuc291cmNlSWRcIlxyXG4gICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uY29udGV4dC5wZXJtaXNzaW9uLmRlbGV0ZScgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxyXG4gICAgICAgICAgICAgICAgIGNvbG9yPVwid2FyblwiXHJcbiAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZVBlcm1pc3Npb24uZW1pdChwZXJtaXNzaW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZGVsZXRlXCI+PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L2lnby1jb2xsYXBzaWJsZT5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9pZ28tbGlzdD5cclxuXHJcbjwvZGl2PlxyXG4iXX0=
|
|
306
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1wZXJtaXNzaW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYW5hZ2VyL2NvbnRleHQtcGVybWlzc2lvbnMvY29udGV4dC1wZXJtaXNzaW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYW5hZ2VyL2NvbnRleHQtcGVybWlzc2lvbnMvY29udGV4dC1wZXJtaXNzaW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQXdDLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFRMUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDUHRELDhCQUF5QyxTQUFBO0lBQ25DLFlBQXdEOztJQUFBLGlCQUFLO0lBQ2pFLHlCQUFHO0lBQUEsWUFBc0Q7O0lBQUEsaUJBQUksRUFBQTs7SUFEekQsZUFBd0Q7SUFBeEQsa0ZBQXdEO0lBQ3pELGVBQXNEO0lBQXRELGdGQUFzRDs7O0lBWXZELDJDQUE2RDtJQUMzRCxZQUNGOztJQUFBLGlCQUFtQjs7SUFEakIsZUFDRjtJQURFLDRGQUNGOzs7O0lBWEosOEJBQXdDLHlCQUFBO0lBQ3JCLDhNQUFhLDZDQUM1QixJQUQwQyw2S0FDbEIsZUFBQSx3Q0FBMEIsQ0FBQSxJQURSO0lBRTFDLDJDQUFrQztJQUNoQyxZQUNGOztJQUFBLGlCQUFtQjtJQUNuQiwyQ0FBb0M7SUFDbEMsWUFDRjs7SUFBQSxpQkFBbUI7SUFDbkIsa0hBRW1CO0lBQ3JCLGlCQUFrQixFQUFBOzs7SUFYRCxlQUEy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YSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU8sU0FBUztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDakMsTUFBTSxFQUFFLEVBQUU7WUFDVixjQUFjLEVBQUUsQ0FBQyxNQUFNLENBQUM7U0FDekIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQUs7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDakIsTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2xCLGNBQWMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjO1NBQy9DLENBQUMsQ0FBQztJQUNMLENBQUM7O3NHQTlGVSwyQkFBMkI7OEVBQTNCLDJCQUEyQjtRQ3RCeEMsNEVBOEZNOztRQTlGQSxrQ0FBYTs7dUZEc0JOLDJCQUEyQjtjQUx2QyxTQUFTOzJCQUNFLHlCQUF5QjtvTEFRL0IsT0FBTztrQkFEVixLQUFLO1lBV0YsV0FBVztrQkFEZCxLQUFLO1lBNEJJLGFBQWE7a0JBQXRCLE1BQU07WUFDRyxnQkFBZ0I7a0JBQXpCLE1BQU07WUFDRyxZQUFZO2tCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQge1xuICBDb250ZXh0LFxuICBDb250ZXh0UGVybWlzc2lvbixcbiAgQ29udGV4dFBlcm1pc3Npb25zTGlzdCxcbiAgQ29udGV4dFByb2ZpbHNcbn0gZnJvbSAnLi4vc2hhcmVkL2NvbnRleHQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFR5cGVQZXJtaXNzaW9uIH0gZnJvbSAnLi4vc2hhcmVkL2NvbnRleHQuZW51bSc7XG5cbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICdAaWdvMi9hdXRoJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLWNvbnRleHQtcGVybWlzc2lvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29udGV4dC1wZXJtaXNzaW9ucy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbnRleHQtcGVybWlzc2lvbnMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDb250ZXh0UGVybWlzc2lvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcblxuICBASW5wdXQoKVxuICBnZXQgY29udGV4dCgpOiBDb250ZXh0IHtcbiAgICByZXR1cm4gdGhpcy5fY29udGV4dDtcbiAgfVxuICBzZXQgY29udGV4dCh2YWx1ZTogQ29udGV4dCkge1xuICAgIHRoaXMuX2NvbnRleHQgPSB2YWx1ZTtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuICBwcml2YXRlIF9jb250ZXh0OiBDb250ZXh0O1xuXG4gIEBJbnB1dCgpXG4gIGdldCBwZXJtaXNzaW9ucygpOiBDb250ZXh0UGVybWlzc2lvbnNMaXN0IHtcbiAgICByZXR1cm4gdGhpcy5fcGVybWlzc2lvbnM7XG4gIH1cbiAgc2V0IHBlcm1pc3Npb25zKHZhbHVlOiBDb250ZXh0UGVybWlzc2lvbnNMaXN0KSB7XG4gICAgdGhpcy5fcGVybWlzc2lvbnMgPSB2YWx1ZTtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuICBwcml2YXRlIF9wZXJtaXNzaW9uczogQ29udGV4dFBlcm1pc3Npb25zTGlzdDtcblxuICBnZXQgcHJvZmlscygpOiBDb250ZXh0UHJvZmlsc1tdIHtcbiAgICByZXR1cm4gdGhpcy5fcHJvZmlscztcbiAgfVxuICBzZXQgcHJvZmlscyh2YWx1ZTogQ29udGV4dFByb2ZpbHNbXSkge1xuICAgIHRoaXMuX3Byb2ZpbHMgPSB2YWx1ZTtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuICBwcml2YXRlIF9wcm9maWxzOiBDb250ZXh0UHJvZmlsc1tdID0gW107XG5cbiAgZ2V0IGNhbldyaXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQucGVybWlzc2lvbiA9PT0gVHlwZVBlcm1pc3Npb25bVHlwZVBlcm1pc3Npb24ud3JpdGVdO1xuICB9XG5cbiAgcHJpdmF0ZSBiYXNlVXJsUHJvZmlscztcblxuICBwdWJsaWMgZm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XG4gIGZvcm1WYWx1ZUNoYW5nZXMkJDogU3Vic2NyaXB0aW9uO1xuXG4gIEBPdXRwdXQoKSBhZGRQZXJtaXNzaW9uOiBFdmVudEVtaXR0ZXI8Q29udGV4dFBlcm1pc3Npb24+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcmVtb3ZlUGVybWlzc2lvbjogRXZlbnRFbWl0dGVyPENvbnRleHRQZXJtaXNzaW9uPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHNjb3BlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPENvbnRleHQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgICAgICAgcHVibGljIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZ1NlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5idWlsZEZvcm0oKTtcblxuICAgIHRoaXMuYmFzZVVybFByb2ZpbHMgPSB0aGlzLmNvbmZpZy5nZXRDb25maWcoJ2NvbnRleHQudXJsJykgKyAnL3Byb2ZpbHMtdXNlcnM/JztcblxuICAgIHRoaXMuZm9ybVZhbHVlQ2hhbmdlcyQkID0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgaWYgKHZhbHVlLmxlbmd0aCkge1xuICAgICAgICB0aGlzLmh0dHAuZ2V0KHRoaXMuYmFzZVVybFByb2ZpbHMgKyAncT0nICsgdmFsdWUpLnN1YnNjcmliZShwcm9maWxzID0+IHtcbiAgICAgICAgICB0aGlzLnByb2ZpbHMgPSBwcm9maWxzIGFzIENvbnRleHRQcm9maWxzW107XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnByb2ZpbHMuZmlsdGVyKChwcm9maWwpID0+IHtcbiAgICAgICAgICBjb25zdCBmaWx0ZXJOb3JtYWxpemVkID0gdmFsdWUudG9Mb3dlckNhc2UoKS5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKTtcbiAgICAgICAgICBjb25zdCBwcm9maWxUaXRsZU5vcm1hbGl6ZWQgPSBwcm9maWwudGl0bGUudG9Mb3dlckNhc2UoKS5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKTtcbiAgICAgICAgICBjb25zdCBwcm9maWxOYW1lTm9ybWFsaXplZCA9IHByb2ZpbC5uYW1lLnRvTG93ZXJDYXNlKCkubm9ybWFsaXplKCdORkQnKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJyk7XG4gICAgICAgICAgY29uc3QgcHJvZmlsTm9ybWFsaXplZCA9IHByb2ZpbE5hbWVOb3JtYWxpemVkICsgcHJvZmlsVGl0bGVOb3JtYWxpemVkO1xuICAgICAgICAgIHJldHVybiBwcm9maWxOb3JtYWxpemVkLmluY2x1ZGVzKGZpbHRlck5vcm1hbGl6ZWQpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucHJvZmlscyA9IFtdO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZGlzcGxheUZuKHByb2ZpbD86IENvbnRleHRQcm9maWxzKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gcHJvZmlsID8gcHJvZmlsLnRpdGxlIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZUZvcm1TdWJtaXQodmFsdWUpIHtcbiAgICB0aGlzLmFkZFBlcm1pc3Npb24uZW1pdCh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIHByb2ZpbDogW10sXG4gICAgICB0eXBlUGVybWlzc2lvbjogWydyZWFkJ11cbiAgICB9KTtcbiAgfVxuXG4gIG9uUHJvZmlsU2VsZWN0ZWQodmFsdWUpIHtcbiAgICB0aGlzLmZvcm0uc2V0VmFsdWUoe1xuICAgICAgcHJvZmlsOiB2YWx1ZS5uYW1lLFxuICAgICAgdHlwZVBlcm1pc3Npb246IHRoaXMuZm9ybS52YWx1ZS50eXBlUGVybWlzc2lvblxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiY29udGV4dFwiPlxuXG4gIDxkaXYgKm5nSWY9XCIhY2FuV3JpdGVcIiBjbGFzcz1cInNjb3BlRm9ybVwiPlxuICAgIDxoND57eyAnaWdvLmNvbnRleHQucGVybWlzc2lvbi5yZWFkT25seVRpdGxlJyB8IHRyYW5zbGF0ZSB9fTwvaDQ+XG4gICAgPHA+e3sgJ2lnby5jb250ZXh0LnBlcm1pc3Npb24ucmVhZE9ubHlNc2cnIHwgdHJhbnNsYXRlIH19PC9wPlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwiY2FuV3JpdGVcIiBjbGFzcz1cInNjb3BlRm9ybVwiPlxuICAgIDxtYXQtcmFkaW8tZ3JvdXAgWyhuZ01vZGVsKV09XCJjb250ZXh0LnNjb3BlXCJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzY29wZUNoYW5nZWQuZW1pdChjb250ZXh0KVwiPlxuICAgICAgPG1hdC1yYWRpby1idXR0b24gdmFsdWU9XCJwcml2YXRlXCI+XG4gICAgICAgIHt7ICdpZ28uY29udGV4dC5wZXJtaXNzaW9uLnNjb3BlLnByaXZhdGUnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L21hdC1yYWRpby1idXR0b24+XG4gICAgICA8bWF0LXJhZGlvLWJ1dHRvbiB2YWx1ZT1cInByb3RlY3RlZFwiPlxuICAgICAgICB7eyAnaWdvLmNvbnRleHQucGVybWlzc2lvbi5zY29wZS5zaGFyZWQnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L21hdC1yYWRpby1idXR0b24+XG4gICAgICA8bWF0LXJhZGlvLWJ1dHRvbiAqbmdJZj1cImF1dGhTZXJ2aWNlLmlzQWRtaW5cIiB2YWx1ZT1cInB1YmxpY1wiPlxuICAgICAgICB7eyAnaWdvLmNvbnRleHQucGVybWlzc2lvbi5zY29wZS5wdWJsaWMnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L21hdC1yYWRpby1idXR0b24+XG4gICAgPC9tYXQtcmFkaW8tZ3JvdXA+XG4gIDwvZGl2PlxuXG4gIDxmb3JtICpuZ0lmPVwiY29udGV4dC5zY29wZSAhPT0gJ3ByaXZhdGUnICYmIGNhbldyaXRlXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAobmdTdWJtaXQpPVwiaGFuZGxlRm9ybVN1Ym1pdChmb3JtLnZhbHVlKVwiPlxuXG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxuICAgICAgPGlucHV0IG1hdElucHV0IHJlcXVpcmVkXG4gICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidpZ28uY29udGV4dC5wZXJtaXNzaW9uLnVzZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiPlxuICAgICAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiAob3B0aW9uU2VsZWN0ZWQpPVwib25Qcm9maWxTZWxlY3RlZCgkZXZlbnQub3B0aW9uLnZhbHVlKVwiXG4gICAgICAgIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5Rm5cIj5cbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgcHJvZmlsIG9mIHRoaXMucHJvZmlsc1wiIFt2YWx1ZV09XCJwcm9maWxcIj5cbiAgICAgICAgICAgICAge3twcm9maWwudGl0bGV9fTxicj5cbiAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj57e3Byb2ZpbC5uYW1lfX08L3NtYWxsPlxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICAgPG1hdC1lcnJvcj5cbiAgICAgICB7eyAnaWdvLmNvbnRleHQucGVybWlzc2lvbi5wcm9maWxSZXF1aXJlZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgPC9tYXQtZXJyb3I+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuXG4gICAgPG1hdC1yYWRpby1ncm91cCBmb3JtQ29udHJvbE5hbWU9XCJ0eXBlUGVybWlzc2lvblwiPlxuICAgICAgPG1hdC1yYWRpby1idXR0b24gdmFsdWU9XCJyZWFkXCI+XG4gICAgICAgIHt7ICdpZ28uY29udGV4dC5wZXJtaXNzaW9uLnJlYWQnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L21hdC1yYWRpby1idXR0b24+XG4gICAgICA8bWF0LXJhZGlvLWJ1dHRvbiB2YWx1ZT1cIndyaXRlXCI+XG4gICAgICAgIHt7ICdpZ28uY29udGV4dC5wZXJtaXNzaW9uLndyaXRlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxuXG5cbiAgICA8ZGl2IGNsYXNzPVwiaWdvLWZvcm0tYnV0dG9uLWdyb3VwXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIWZvcm0udmFsaWRcIj5cbiAgICAgICAge3sgJ2lnby5jb250ZXh0LnBlcm1pc3Npb24uYWRkQnRuJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgPC9mb3JtPlxuXG4gIDxpZ28tbGlzdCAqbmdJZj1cInBlcm1pc3Npb25zICYmIGNvbnRleHQuc2NvcGUgIT09ICdwcml2YXRlJ1wiPlxuICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtZ3JvdXBQZXJtaXNzaW9ucyBbbmdGb3JPZl09XCJwZXJtaXNzaW9ucyB8IGtleXZhbHVlXCI+XG4gICAgICA8aWdvLWNvbGxhcHNpYmxlXG4gICAgICAgICpuZ0lmPVwiZ3JvdXBQZXJtaXNzaW9ucy52YWx1ZS5sZW5ndGhcIlxuICAgICAgICBbdGl0bGVdPVwiJ2lnby5jb250ZXh0LnBlcm1pc3Npb24uJyArIGdyb3VwUGVybWlzc2lvbnMua2V5IHwgdHJhbnNsYXRlXCI+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1wZXJtaXNzaW9uIFtuZ0Zvck9mXT1cImdyb3VwUGVybWlzc2lvbnMudmFsdWVcIj5cbiAgICAgICAgICA8bWF0LWxpc3QtaXRlbT5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBtYXQtbGlzdC1hdmF0YXIgc3ZnSWNvbj1cImFjY291bnQtb3V0bGluZVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8aDQgbWF0LWxpbmU+e3twZXJtaXNzaW9uLnByb2ZpbFRpdGxlfX0gPHNtYWxsIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj57e3Blcm1pc3Npb24ucHJvZmlsfX08L3NtYWxsPjwvaDQ+XG5cbiAgICAgICAgICAgIDxkaXYgaWdvU3RvcFByb3BhZ2F0aW9uXG4gICAgICAgICAgICAgICAgIGNsYXNzPVwiaWdvLWFjdGlvbnMtY29udGFpbmVyXCI+XG5cbiAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJjYW5Xcml0ZSB8fCBwZXJtaXNzaW9uLnByb2ZpbCA9PT0gYXV0aFNlcnZpY2UuZGVjb2RlVG9rZW4oKS51c2VyLnNvdXJjZUlkXCJcbiAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uY29udGV4dC5wZXJtaXNzaW9uLmRlbGV0ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgICAgICAgICAgY29sb3I9XCJ3YXJuXCJcbiAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZVBlcm1pc3Npb24uZW1pdChwZXJtaXNzaW9uKVwiPlxuICAgICAgICAgICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImRlbGV0ZVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9pZ28tY29sbGFwc2libGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9pZ28tbGlzdD5cblxuPC9kaXY+XG4iXX0=
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export * from './context-permissions.component';
|
|
2
2
|
export * from './context-permissions-binding.directive';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYW5hZ2VyL2NvbnRleHQtcGVybWlzc2lvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHlDQUF5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0LXBlcm1pc3Npb25zLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHQtcGVybWlzc2lvbnMtYmluZGluZy5kaXJlY3RpdmUnO1xuIl19
|
|
@@ -4,4 +4,4 @@ export * from './context-item';
|
|
|
4
4
|
export * from './context-form';
|
|
5
5
|
export * from './context-edit';
|
|
6
6
|
export * from './context-permissions';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYW5hZ2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2hhcmVkJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1saXN0JztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1pdGVtJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1mb3JtJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1lZGl0JztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1wZXJtaXNzaW9ucyc7XG4iXX0=
|
|
@@ -10,4 +10,4 @@ export var Scope;
|
|
|
10
10
|
Scope[Scope["protected"] = 1] = "protected";
|
|
11
11
|
Scope[Scope["private"] = 2] = "private";
|
|
12
12
|
})(Scope || (Scope = {}));
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29udGV4dC9zcmMvbGliL2NvbnRleHQtbWFuYWdlci9zaGFyZWQvY29udGV4dC5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGNBSVg7QUFKRCxXQUFZLGNBQWM7SUFDeEIsbURBQUksQ0FBQTtJQUNKLG1EQUFJLENBQUE7SUFDSixxREFBSyxDQUFBO0FBQ1AsQ0FBQyxFQUpXLGNBQWMsS0FBZCxjQUFjLFFBSXpCO0FBRUQsTUFBTSxDQUFOLElBQVksS0FJWDtBQUpELFdBQVksS0FBSztJQUNmLHFDQUFNLENBQUE7SUFDTiwyQ0FBUyxDQUFBO0lBQ1QsdUNBQU8sQ0FBQTtBQUNULENBQUMsRUFKVyxLQUFLLEtBQUwsS0FBSyxRQUloQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFR5cGVQZXJtaXNzaW9uIHtcbiAgbnVsbCxcbiAgcmVhZCxcbiAgd3JpdGVcbn1cblxuZXhwb3J0IGVudW0gU2NvcGUge1xuICBwdWJsaWMsXG4gIHByb3RlY3RlZCxcbiAgcHJpdmF0ZVxufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYW5hZ2VyL3NoYXJlZC9jb250ZXh0LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVzc2FnZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xuaW1wb3J0IHsgVG9vbCB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XG5pbXBvcnQgeyBNYXBWaWV3T3B0aW9ucywgTGF5ZXJPcHRpb25zLCBNYXBTY2FsZUxpbmVPcHRpb25zLCBNYXBBdHRyaWJ1dGlvbk9wdGlvbnMsIE1hcEV4dGVudCB9IGZyb20gJ0BpZ28yL2dlbyc7XG5cbmltcG9ydCB7IFR5cGVQZXJtaXNzaW9uIH0gZnJvbSAnLi9jb250ZXh0LmVudW0nO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRleHQge1xuICBpZD86IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHVyaT86IHN0cmluZztcbiAgc2NvcGU/OiBzdHJpbmc7IC8vIFNjb3BlOiAncHVibGljJyB8ICdwcm90ZWN0ZWQnIHwgJ3ByaXZhdGUnO1xuICBwZXJtaXNzaW9uPzogc3RyaW5nOyAvLyBUeXBlUGVybWlzc2lvbjogJ3JlYWQnIHwgJ3dyaXRlJ1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgaWNvbkltYWdlPzogc3RyaW5nO1xuICBoaWRkZW4/OiBib29sZWFuO1xuICBpbXBvcnRlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dHNMaXN0IHtcbiAgb3VyczogQ29udGV4dFtdO1xuICBzaGFyZWQ/OiBDb250ZXh0W107XG4gIHB1YmxpYz86IENvbnRleHRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXRhaWxlZENvbnRleHQgZXh0ZW5kcyBDb250ZXh0IHtcbiAgYmFzZT86IHN0cmluZztcbiAgbWFwPzogQ29udGV4dE1hcDtcbiAgbGF5ZXJzPzogTGF5ZXJPcHRpb25zW107XG4gIHRvb2xzPzogVG9vbFtdO1xuICB0b29sYmFyPzogc3RyaW5nW107XG4gIG1lc3NhZ2U/OiBNZXNzYWdlO1xuICBtZXNzYWdlcz86IE1lc3NhZ2VbXTtcbiAgcmVtb3ZlTGF5ZXJzT25Db250ZXh0Q2hhbmdlPzogYm9vbGVhbjtcbiAgZXh0cmFGZWF0dXJlcz86IGFueVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRleHRNYXBWaWV3IGV4dGVuZHMgTWFwVmlld09wdGlvbnMge1xuICBrZWVwQ3VycmVudFZpZXc/OiBib29sZWFuO1xuICBob21lRXh0ZW50PzogQ29udGV4dEhvbWVFeHRlbnRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250ZXh0SG9tZUV4dGVudCB7XG4gIGV4dGVudD86IE1hcEV4dGVudFxuICBjZW50ZXI/OiBbbnVtYmVyLCBudW1iZXJdO1xuICB6b29tPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRleHRNYXAge1xuICB2aWV3OiBDb250ZXh0TWFwVmlldztcbiAgY29udHJvbHM/OiB7XG4gICAgc2NhbGVMaW5lPzogYm9vbGVhbiB8IE1hcFNjYWxlTGluZU9wdGlvbnM7XG4gICAgYXR0cmlidXRpb24/OiBib29sZWFuIHwgTWFwQXR0cmlidXRpb25PcHRpb25zO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRleHRTZXJ2aWNlT3B0aW9ucyB7XG4gIHVybD86IHN0cmluZztcbiAgYmFzZVBhdGg/OiBzdHJpbmc7XG4gIGNvbnRleHRMaXN0RmlsZT86IHN0cmluZztcbiAgZGVmYXVsdENvbnRleHRVcmk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dFBlcm1pc3Npb24ge1xuICBpZD86IHN0cmluZztcbiAgY29udGV4dElkPzogc3RyaW5nO1xuICBwcm9maWw6IHN0cmluZztcbiAgcHJvZmlsVGl0bGU/OiBzdHJpbmc7XG4gIHR5cGVQZXJtaXNzaW9uOiBUeXBlUGVybWlzc2lvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250ZXh0UGVybWlzc2lvbnNMaXN0IHtcbiAgcmVhZDogQ29udGV4dFBlcm1pc3Npb25bXTtcbiAgd3JpdGU6IENvbnRleHRQZXJtaXNzaW9uW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dFVzZXJQZXJtaXNzaW9uIHtcbiAgbmFtZTogc3RyaW5nO1xuICBjaGVja2VkOiBib29sZWFuO1xuICBpbmRldGVybWluYXRlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250ZXh0UHJvZmlscyB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgY2hpbGRzPzogQ29udGV4dFByb2ZpbHNbXTtcbn1cbiJdfQ==
|
|
@@ -629,4 +629,4 @@ ContextService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ContextSe
|
|
|
629
629
|
}], function () { return [{ type: i1.HttpClient }, { type: i2.AuthService }, { type: i3.LanguageService }, { type: i3.ConfigService }, { type: i3.MessageService }, { type: i3.StorageService }, { type: i4.ExportService }, { type: i3.RouteService, decorators: [{
|
|
630
630
|
type: Optional
|
|
631
631
|
}] }]; }, null); })();
|
|
632
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29udGV4dC9zcmMvbGliL2NvbnRleHQtbWFuYWdlci9zaGFyZWQvY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3JELE9BQU8sRUFBRSxlQUFlLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQ0wsR0FBRyxFQUNILEdBQUcsRUFDSCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBQ0wsSUFBSSxFQUNMLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBQ3BDLE9BQU8sT0FBTyxNQUFNLG1CQUFtQixDQUFDO0FBQ3hDLE9BQU8sT0FBTyxNQUFNLG1CQUFtQixDQUFDO0FBQ3hDLE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBY2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBY2hELE1BQU0sT0FBTyxjQUFjO0lBd0J6QixZQUNVLElBQWdCLEVBQ2hCLFdBQXdCLEVBQ3hCLGVBQWdDLEVBQ2hDLE1BQXFCLEVBQ3JCLGNBQThCLEVBQzlCLGNBQThCLEVBQzlCLGFBQTRCLEVBQ2hCLEtBQW1CO1FBUC9CLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG1CQUFjLEdBQWQsY0FB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Q3pDLENBQUM7WUFDRixJQUFJLEtBQUssRUFBRTtnQkFDVCxNQUFNO2FBQ1A7U0FDRjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7NEVBaHdCVSxjQUFjO29FQUFkLGNBQWMsV0FBZCxjQUFjLG1CQUZiLE1BQU07dUZBRVAsY0FBYztjQUgxQixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7O3NCQWlDSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgbWFwLFxyXG4gIHRhcCxcclxuICBjYXRjaEVycm9yLFxyXG4gIGRlYm91bmNlVGltZSxcclxuICBtZXJnZU1hcCxcclxuICBmaXJzdCxcclxuICBza2lwXHJcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IG9sUG9pbnQgZnJvbSAnb2wvZ2VvbS9Qb2ludCc7XHJcbmltcG9ydCBHZW9KU09OIGZyb20gJ29sL2Zvcm1hdC9HZW9KU09OJztcclxuaW1wb3J0IENsdXN0ZXIgZnJvbSAnb2wvc291cmNlL0NsdXN0ZXInO1xyXG5pbXBvcnQgb2xWZWN0b3JTb3VyY2UgZnJvbSAnb2wvc291cmNlL1ZlY3Rvcic7XHJcblxyXG5pbXBvcnQgeyBUb29sIH0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuaW1wb3J0IHsgdXVpZCwgT2JqZWN0VXRpbHMgfSBmcm9tICdAaWdvMi91dGlscyc7XHJcbmltcG9ydCB7XHJcbiAgQ29uZmlnU2VydmljZSxcclxuICBSb3V0ZVNlcnZpY2UsXHJcbiAgTWVzc2FnZSxcclxuICBNZXNzYWdlU2VydmljZSxcclxuICBMYW5ndWFnZVNlcnZpY2UsXHJcbiAgU3RvcmFnZVNlcnZpY2VcclxufSBmcm9tICdAaWdvMi9jb3JlJztcclxuXHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvYXV0aCc7XHJcbmltcG9ydCB0eXBlIHsgSWdvTWFwLCBMYXllciwgTGF5ZXJPcHRpb25zIH0gZnJvbSAnQGlnbzIvZ2VvJztcclxuaW1wb3J0IHsgRXhwb3J0U2VydmljZSB9IGZyb20gJ0BpZ28yL2dlbyc7XHJcblxyXG5pbXBvcnQgeyBUeXBlUGVybWlzc2lvbiB9IGZyb20gJy4vY29udGV4dC5lbnVtJztcclxuaW1wb3J0IHtcclxuICBDb250ZXh0c0xpc3QsXHJcbiAgQ29udGV4dFNlcnZpY2VPcHRpb25zLFxyXG4gIENvbnRleHQsXHJcbiAgRGV0YWlsZWRDb250ZXh0LFxyXG4gIENvbnRleHRNYXBWaWV3LFxyXG4gIENvbnRleHRQZXJtaXNzaW9uLFxyXG4gIENvbnRleHRQcm9maWxzXHJcbn0gZnJvbSAnLi9jb250ZXh0LmludGVyZmFjZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb250ZXh0U2VydmljZSB7XHJcbiAgcHVibGljIGNvbnRleHQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEZXRhaWxlZENvbnRleHQ+KHVuZGVmaW5lZCk7XHJcbiAgcHVibGljIGNvbnRleHRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29udGV4dHNMaXN0Pih7IG91cnM6IFtdIH0pO1xyXG4gIHB1YmxpYyBkZWZhdWx0Q29udGV4dElkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPih1bmRlZmluZWQpO1xyXG4gIHB1YmxpYyBlZGl0ZWRDb250ZXh0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGV0YWlsZWRDb250ZXh0Pih1bmRlZmluZWQpO1xyXG4gIHB1YmxpYyBpbXBvcnRlZENvbnRleHQ6IEFycmF5PERldGFpbGVkQ29udGV4dD4gPSBbXTtcclxuICBwdWJsaWMgdG9vbHNDaGFuZ2VkJCA9IG5ldyBTdWJqZWN0PERldGFpbGVkQ29udGV4dD4oKTtcclxuICBwcml2YXRlIG1hcFZpZXdGcm9tUm91dGU6IENvbnRleHRNYXBWaWV3ID0ge307XHJcbiAgcHJpdmF0ZSBvcHRpb25zOiBDb250ZXh0U2VydmljZU9wdGlvbnM7XHJcbiAgcHJpdmF0ZSBiYXNlVXJsOiBzdHJpbmc7XHJcblxyXG4gIC8vIFVudGlsIHRoZSBDb250ZXh0U2VydmljZSBpcyBjb21wbGV0ZWx5IHJlZmFjdG9yZWQsIHRoaXMgaXMgbmVlZGVkXHJcbiAgLy8gdG8gdHJhY2sgdGhlIGN1cnJlbnQgdG9vbHNcclxuICBwcml2YXRlIHRvb2xzOiBUb29sW107XHJcbiAgcHJpdmF0ZSB0b29sYmFyOiBzdHJpbmdbXTtcclxuXHJcbiAgZ2V0IGRlZmF1bHRDb250ZXh0VXJpKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXQoJ2Zhdm9yaXRlLmNvbnRleHQudXJpJykgYXMgc3RyaW5nIHx8IHRoaXMuX2RlZmF1bHRDb250ZXh0VXJpIHx8IHRoaXMub3B0aW9ucy5kZWZhdWx0Q29udGV4dFVyaTtcclxuICB9XHJcbiAgc2V0IGRlZmF1bHRDb250ZXh0VXJpKHVyaTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9kZWZhdWx0Q29udGV4dFVyaSA9IHVyaTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGVmYXVsdENvbnRleHRVcmk6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGV4cG9ydFNlcnZpY2U6IEV4cG9ydFNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJvdXRlOiBSb3V0ZVNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oXHJcbiAgICAgIHtcclxuICAgICAgICBiYXNlUGF0aDogJ2NvbnRleHRzJyxcclxuICAgICAgICBjb250ZXh0TGlzdEZpbGU6ICdfY29udGV4dHMuanNvbicsXHJcbiAgICAgICAgZGVmYXVsdENvbnRleHRVcmk6ICdfZGVmYXVsdCdcclxuICAgICAgfSxcclxuICAgICAgdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdjb250ZXh0JylcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5iYXNlVXJsID0gdGhpcy5vcHRpb25zLnVybDtcclxuXHJcbiAgICB0aGlzLnJlYWRQYXJhbXNGcm9tUm91dGUoKTtcclxuXHJcbiAgICBpZiAodGhpcy5hdXRoU2VydmljZS5oYXNBdXRoU2VydmljZSkge1xyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ2dlZCQuc3Vic2NyaWJlKChsb2dnZWQpID0+IHtcclxuICAgICAgICBpZiAobG9nZ2VkKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbnRleHRzJC5waXBlKHNraXAoMSksIGZpcnN0KCkpLnN1YnNjcmliZSgoYykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNvbnRleHRzQ2hhbmdlKCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMubG9hZENvbnRleHRzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubG9hZENvbnRleHRzKCk7XHJcbiAgICAgIHRoaXMuaGFuZGxlQ29udGV4dHNDaGFuZ2UoZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0KHBlcm1pc3Npb25zPzogc3RyaW5nW10sIGhpZGRlbj86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPENvbnRleHRzTGlzdD4ge1xyXG4gICAgbGV0IHVybCA9IHRoaXMuYmFzZVVybCArICcvY29udGV4dHMnO1xyXG4gICAgaWYgKHBlcm1pc3Npb25zICYmIHRoaXMuYXV0aFNlcnZpY2UuYXV0aGVudGljYXRlZCkge1xyXG4gICAgICB1cmwgKz0gJz9wZXJtaXNzaW9uPScgKyBwZXJtaXNzaW9ucy5qb2luKCk7XHJcbiAgICAgIGlmIChoaWRkZW4pIHtcclxuICAgICAgICB1cmwgKz0gJyZoaWRkZW49dHJ1ZSc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PENvbnRleHRzTGlzdD4odXJsKTtcclxuICB9XHJcblxyXG4gIGdldEJ5SWQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Q29udGV4dD4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5iYXNlVXJsICsgJy9jb250ZXh0cy8nICsgaWQ7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxDb250ZXh0Pih1cmwpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGV0YWlscyhpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxEZXRhaWxlZENvbnRleHQ+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYmFzZVVybH0vY29udGV4dHMvJHtpZH0vZGV0YWlsc2A7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxEZXRhaWxlZENvbnRleHQ+KHVybCkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcigocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihyZXMsIGlkKTtcclxuICAgICAgICB0aHJvdyByZXM7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGVmYXVsdCgpOiBPYnNlcnZhYmxlPERldGFpbGVkQ29udGV4dD4ge1xyXG4gICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UuYXV0aGVudGljYXRlZCkge1xyXG4gICAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzL2RlZmF1bHQnO1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxEZXRhaWxlZENvbnRleHQ+KHVybCkucGlwZShcclxuICAgICAgICB0YXAoKGNvbnRleHQpID0+IHtcclxuICAgICAgICAgIHRoaXMuZGVmYXVsdENvbnRleHRJZCQubmV4dChjb250ZXh0LmlkKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgdXJpID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXQoJ2Zhdm9yaXRlLmNvbnRleHQudXJpJykgYXMgc3RyaW5nO1xyXG4gICAgICB0aGlzLmRlZmF1bHRDb250ZXh0SWQkLm5leHQodXJpKTtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0Q29udGV4dEJ5VXJpKHVyaSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ2V0UHJvZmlsQnlVc2VyKCk6IE9ic2VydmFibGU8Q29udGV4dFByb2ZpbHNbXT4ge1xyXG4gICAgaWYgKHRoaXMuYmFzZVVybCkge1xyXG4gICAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL3Byb2ZpbHM/JztcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Q29udGV4dFByb2ZpbHNbXT4odXJsKTtcclxuICAgIH1cclxuICAgIHJldHVybiBvZihbXSk7XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0KGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UuYXV0aGVudGljYXRlZCkge1xyXG4gICAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzL2RlZmF1bHQnO1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodXJsLCB7IGRlZmF1bHRDb250ZXh0SWQ6IGlkIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXQoJ2Zhdm9yaXRlLmNvbnRleHQudXJpJywgaWQpO1xyXG4gICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhpZGVDb250ZXh0KGlkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuYmFzZVVybCArICcvY29udGV4dHMvJyArIGlkICsgJy9oaWRlJztcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIHt9KTtcclxuICB9XHJcblxyXG4gIHNob3dDb250ZXh0KGlkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuYmFzZVVybCArICcvY29udGV4dHMvJyArIGlkICsgJy9zaG93JztcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIHt9KTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZShpZDogc3RyaW5nLCBpbXBvcnRlZCA9IGZhbHNlKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICBjb25zdCBjb250ZXh0czogQ29udGV4dHNMaXN0ID0geyBvdXJzOiBbXSB9O1xyXG4gICAgT2JqZWN0LmtleXModGhpcy5jb250ZXh0cyQudmFsdWUpLmZvckVhY2goXHJcbiAgICAgIChrZXkpID0+XHJcbiAgICAgICAgKGNvbnRleHRzW2tleV0gPSB0aGlzLmNvbnRleHRzJC52YWx1ZVtrZXldLmZpbHRlcigoYykgPT4gYy5pZCAhPT0gaWQpKVxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAoaW1wb3J0ZWQpIHtcclxuICAgICAgdGhpcy5pbXBvcnRlZENvbnRleHQgPSB0aGlzLmltcG9ydGVkQ29udGV4dC5maWx0ZXIoKGMpID0+IGMuaWQgIT09IGlkKTtcclxuICAgICAgcmV0dXJuIG9mKHRoaXMuY29udGV4dHMkLm5leHQoY29udGV4dHMpKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzLycgKyBpZDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPHZvaWQ+KHVybCkucGlwZShcclxuICAgICAgdGFwKChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLmNvbnRleHRzJC5uZXh0KGNvbnRleHRzKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGUoY29udGV4dDogRGV0YWlsZWRDb250ZXh0KTogT2JzZXJ2YWJsZTxDb250ZXh0PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzJztcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxDb250ZXh0Pih1cmwsIGNvbnRleHQpLnBpcGUoXHJcbiAgICAgIG1hcCgoY29udGV4dENyZWF0ZWQpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5hdXRoU2VydmljZS5hdXRoZW50aWNhdGVkKSB7XHJcbiAgICAgICAgICBjb250ZXh0Q3JlYXRlZC5wZXJtaXNzaW9uID0gVHlwZVBlcm1pc3Npb25bVHlwZVBlcm1pc3Npb24ud3JpdGVdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb250ZXh0Q3JlYXRlZC5wZXJtaXNzaW9uID0gVHlwZVBlcm1pc3Npb25bVHlwZVBlcm1pc3Npb24ucmVhZF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY29udGV4dHMkLnZhbHVlLm91cnMudW5zaGlmdChjb250ZXh0Q3JlYXRlZCk7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0cyQubmV4dCh0aGlzLmNvbnRleHRzJC52YWx1ZSk7XHJcbiAgICAgICAgcmV0dXJuIGNvbnRleHRDcmVhdGVkO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGNsb25lKGlkOiBzdHJpbmcsIHByb3BlcnRpZXMgPSB7fSk6IE9ic2VydmFibGU8Q29udGV4dD4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5iYXNlVXJsICsgJy9jb250ZXh0cy8nICsgaWQgKyAnL2Nsb25lJztcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxDb250ZXh0Pih1cmwsIHByb3BlcnRpZXMpLnBpcGUoXHJcbiAgICAgIG1hcCgoY29udGV4dENsb25lZCkgPT4ge1xyXG4gICAgICAgIGNvbnRleHRDbG9uZWQucGVybWlzc2lvbiA9IFR5cGVQZXJtaXNzaW9uW1R5cGVQZXJtaXNzaW9uLndyaXRlXTtcclxuICAgICAgICB0aGlzLmNvbnRleHRzJC52YWx1ZS5vdXJzLnVuc2hpZnQoY29udGV4dENsb25lZCk7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0cyQubmV4dCh0aGlzLmNvbnRleHRzJC52YWx1ZSk7XHJcbiAgICAgICAgcmV0dXJuIGNvbnRleHRDbG9uZWQ7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlKGlkOiBzdHJpbmcsIGNvbnRleHQ6IENvbnRleHQpOiBPYnNlcnZhYmxlPENvbnRleHQ+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuYmFzZVVybCArICcvY29udGV4dHMvJyArIGlkO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDxDb250ZXh0Pih1cmwsIGNvbnRleHQpO1xyXG4gIH1cclxuXHJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiAgYWRkVG9vbEFzc29jaWF0aW9uKGNvbnRleHRJZDogc3RyaW5nLCB0b29sSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5iYXNlVXJsfS9jb250ZXh0cy8ke2NvbnRleHRJZH0vdG9vbHNgO1xyXG4gICAgY29uc3QgYXNzb2NpYXRpb24gPSB7XHJcbiAgICAgIHRvb2xJZFxyXG4gICAgfTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDx2b2lkPih1cmwsIGFzc29jaWF0aW9uKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZVRvb2xBc3NvY2lhdGlvbihjb250ZXh0SWQ6IHN0cmluZywgdG9vbElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5iYXNlVXJsfS9jb250ZXh0cy8ke2NvbnRleHRJZH0vdG9vbHMvJHt0b29sSWR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKHVybCk7XHJcbiAgfVxyXG5cclxuICBnZXRQZXJtaXNzaW9ucyhpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxDb250ZXh0UGVybWlzc2lvbltdPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzLycgKyBpZCArICcvcGVybWlzc2lvbnMnO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Q29udGV4dFBlcm1pc3Npb25bXT4odXJsKTtcclxuICB9XHJcblxyXG4gIGFkZFBlcm1pc3Npb25Bc3NvY2lhdGlvbihcclxuICAgIGNvbnRleHRJZDogc3RyaW5nLFxyXG4gICAgcHJvZmlsOiBzdHJpbmcsXHJcbiAgICB0eXBlOiBUeXBlUGVybWlzc2lvblxyXG4gICk6IE9ic2VydmFibGU8Q29udGV4dFBlcm1pc3Npb25bXT4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5iYXNlVXJsfS9jb250ZXh0cy8ke2NvbnRleHRJZH0vcGVybWlzc2lvbnNgO1xyXG4gICAgY29uc3QgYXNzb2NpYXRpb24gPSB7XHJcbiAgICAgIHByb2ZpbCxcclxuICAgICAgdHlwZVBlcm1pc3Npb246IHR5cGVcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENvbnRleHRQZXJtaXNzaW9uW10+KHVybCwgYXNzb2NpYXRpb24pLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IoKHJlcykgPT4ge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlRXJyb3IocmVzLCB1bmRlZmluZWQsIHRydWUpO1xyXG4gICAgICAgIHRocm93IFtyZXNdOyAvLyBUT0RPIE5vdCBzdXJlIGFib3V0IHRoaXMuXHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlUGVybWlzc2lvbkFzc29jaWF0aW9uKFxyXG4gICAgY29udGV4dElkOiBzdHJpbmcsXHJcbiAgICBwZXJtaXNzaW9uSWQ6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5iYXNlVXJsfS9jb250ZXh0cy8ke2NvbnRleHRJZH0vcGVybWlzc2lvbnMvJHtwZXJtaXNzaW9uSWR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPHZvaWQ+KHVybCk7XHJcbiAgfVxyXG5cclxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4gIGdldExvY2FsQ29udGV4dHMoKTogT2JzZXJ2YWJsZTxDb250ZXh0c0xpc3Q+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0UGF0aCh0aGlzLm9wdGlvbnMuY29udGV4dExpc3RGaWxlKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PENvbnRleHRzTGlzdD4odXJsKS5waXBlKFxyXG4gICAgICBtYXAoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgb3VyczogcmVzIH07XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0TG9jYWxDb250ZXh0KHVyaTogc3RyaW5nKTogT2JzZXJ2YWJsZTxEZXRhaWxlZENvbnRleHQ+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0UGF0aChgJHt1cml9Lmpzb25gKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PERldGFpbGVkQ29udGV4dD4odXJsKS5waXBlKFxyXG4gICAgICBtZXJnZU1hcCgocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKCFyZXMuYmFzZSkge1xyXG4gICAgICAgICAgcmV0dXJuIG9mKHJlcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHVybEJhc2UgPSB0aGlzLmdldFBhdGgoYCR7cmVzLmJhc2V9Lmpzb25gKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxEZXRhaWxlZENvbnRleHQ+KHVybEJhc2UpLnBpcGUoXHJcbiAgICAgICAgICBtYXAoKHJlc0Jhc2U6IERldGFpbGVkQ29udGV4dCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCByZXNNZXJnZSA9IHJlcztcclxuICAgICAgICAgICAgcmVzTWVyZ2UubWFwID0gT2JqZWN0VXRpbHMubWVyZ2VEZWVwKHJlc0Jhc2UubWFwLCByZXMubWFwKTtcclxuICAgICAgICAgICAgcmVzTWVyZ2UubGF5ZXJzID0gKHJlc0Jhc2UubGF5ZXJzIHx8IFtdKVxyXG4gICAgICAgICAgICAgIC5jb25jYXQocmVzLmxheWVycyB8fCBbXSlcclxuICAgICAgICAgICAgICAucmV2ZXJzZSgpXHJcbiAgICAgICAgICAgICAgLmZpbHRlcihcclxuICAgICAgICAgICAgICAgIChsLCBpbmRleCwgc2VsZikgPT5cclxuICAgICAgICAgICAgICAgICAgIWwuaWQgfHwgc2VsZi5maW5kSW5kZXgoKGwyKSA9PiBsMi5pZCA9PT0gbC5pZCkgPT09IGluZGV4XHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgIC5yZXZlcnNlKCk7XHJcbiAgICAgICAgICAgIHJlc01lcmdlLnRvb2xiYXIgPSByZXMudG9vbGJhciB8fCByZXNCYXNlLnRvb2xiYXI7XHJcbiAgICAgICAgICAgIHJlc01lcmdlLm1lc3NhZ2UgPSByZXMubWVzc2FnZSB8fCByZXNCYXNlLm1lc3NhZ2U7XHJcbiAgICAgICAgICAgIHJlc01lcmdlLm1lc3NhZ2VzID0gcmVzLm1lc3NhZ2VzIHx8IHJlc0Jhc2UubWVzc2FnZXM7XHJcbiAgICAgICAgICAgIHJlc01lcmdlLnRvb2xzID0gKHJlcy50b29scyB8fCBbXSlcclxuICAgICAgICAgICAgICAuY29uY2F0KHJlc0Jhc2UudG9vbHMgfHwgW10pXHJcbiAgICAgICAgICAgICAgLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICh0LCBpbmRleCwgc2VsZikgPT5cclxuICAgICAgICAgICAgICAgICAgc2VsZi5maW5kSW5kZXgoKHQyKSA9PiB0Mi5uYW1lID09PSB0Lm5hbWUpID09PSBpbmRleFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHJldHVybiByZXNNZXJnZTtcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyLCB1cmkpO1xyXG4gICAgICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIyKSA9PiB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnIyLCB1cmkpO1xyXG4gICAgICAgIHRocm93IGVycjI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbG9hZENvbnRleHRzKHBlcm1pc3Npb25zPzogc3RyaW5nW10sIGhpZGRlbj86IGJvb2xlYW4pIHtcclxuICAgIGxldCByZXF1ZXN0O1xyXG4gICAgaWYgKHRoaXMuYmFzZVVybCkge1xyXG4gICAgICByZXF1ZXN0ID0gdGhpcy5nZXQocGVybWlzc2lvbnMsIGhpZGRlbik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXF1ZXN0ID0gdGhpcy5nZXRMb2NhbENvbnRleHRzKCk7XHJcbiAgICB9XHJcbiAgICByZXF1ZXN0LnN1YnNjcmliZSgoY29udGV4dHMpID0+IHtcclxuICAgICAgY29udGV4dHMub3VycyA9IHRoaXMuaW1wb3J0ZWRDb250ZXh0LmNvbmNhdChjb250ZXh0cy5vdXJzKTtcclxuICAgICAgdGhpcy5jb250ZXh0cyQubmV4dChjb250ZXh0cyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGxvYWREZWZhdWx0Q29udGV4dCgpIHtcclxuICAgIGNvbnN0IGxvYWRGY3QgPSAoZGlyZWN0ID0gZmFsc2UpID0+IHtcclxuICAgICAgaWYgKCFkaXJlY3QgJiYgdGhpcy5iYXNlVXJsICYmIHRoaXMuYXV0aFNlcnZpY2UuYXV0aGVudGljYXRlZCkge1xyXG4gICAgICAgIHRoaXMuZ2V0RGVmYXVsdCgpLnN1YnNjcmliZShcclxuICAgICAgICAgIChfY29udGV4dDogRGV0YWlsZWRDb250ZXh0KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdENvbnRleHRVcmkgPSBfY29udGV4dC51cmk7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkQ29udGV4dFRvTGlzdChfY29udGV4dCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q29udGV4dChfY29udGV4dCk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRDb250ZXh0SWQkLm5leHQodW5kZWZpbmVkKTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkQ29udGV4dCh0aGlzLmRlZmF1bHRDb250ZXh0VXJpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubG9hZENvbnRleHQodGhpcy5kZWZhdWx0Q29udGV4dFVyaSk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMucm91dGUgJiYgdGhpcy5yb3V0ZS5vcHRpb25zLmNvbnRleHRLZXkpIHtcclxuICAgICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5waXBlKGRlYm91bmNlVGltZSgxMDApKS5zdWJzY3JpYmUoKHBhcmFtcykgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbnRleHRQYXJhbSA9IHBhcmFtc1t0aGlzLnJvdXRlLm9wdGlvbnMuY29udGV4dEtleSBhcyBzdHJpbmddO1xyXG4gICAgICAgIGxldCBkaXJlY3QgPSBmYWxzZTtcclxuICAgICAgICBpZiAoY29udGV4dFBhcmFtKSB7XHJcbiAgICAgICAgICB0aGlzLmRlZmF1bHRDb250ZXh0VXJpID0gY29udGV4dFBhcmFtO1xyXG4gICAgICAgICAgZGlyZWN0ID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbG9hZEZjdChkaXJlY3QpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxvYWRGY3QoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxvYWRDb250ZXh0KHVyaTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5jb250ZXh0JC52YWx1ZTtcclxuXHJcbiAgICBpZiAoY29udGV4dCAmJiBjb250ZXh0LnVyaSA9PT0gdXJpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmdldENvbnRleHRCeVVyaSh1cmkpXHJcbiAgICAgIC5waXBlKGZpcnN0KCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgKF9jb250ZXh0OiBEZXRhaWxlZENvbnRleHQpID0+IHtcclxuICAgICAgICAgIHRoaXMuYWRkQ29udGV4dFRvTGlzdChfY29udGV4dCk7XHJcbiAgICAgICAgICB0aGlzLnNldENvbnRleHQoX2NvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgaWYgKHVyaSAhPT0gdGhpcy5vcHRpb25zLmRlZmF1bHRDb250ZXh0VXJpKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZENvbnRleHQodGhpcy5vcHRpb25zLmRlZmF1bHRDb250ZXh0VXJpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBzZXRDb250ZXh0KGNvbnRleHQ6IERldGFpbGVkQ29udGV4dCkge1xyXG4gICAgdGhpcy5oYW5kbGVDb250ZXh0TWVzc2FnZShjb250ZXh0KTtcclxuICAgIGNvbnN0IGN1cnJlbnRDb250ZXh0ID0gdGhpcy5jb250ZXh0JC52YWx1ZTtcclxuICAgIGlmIChjdXJyZW50Q29udGV4dCAmJiBjb250ZXh0ICYmIGNvbnRleHQuaWQgPT09IGN1cnJlbnRDb250ZXh0LmlkKSB7XHJcbiAgICAgIGlmIChjb250ZXh0Lm1hcC52aWV3LmtlZXBDdXJyZW50VmlldyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgY29udGV4dC5tYXAudmlldy5rZWVwQ3VycmVudFZpZXcgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29udGV4dCQubmV4dChjb250ZXh0KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghY29udGV4dC5tYXApIHtcclxuICAgICAgY29udGV4dC5tYXAgPSB7IHZpZXc6IHt9IH07XHJcbiAgICB9XHJcblxyXG4gICAgT2JqZWN0LmFzc2lnbihjb250ZXh0Lm1hcC52aWV3LCB0aGlzLm1hcFZpZXdGcm9tUm91dGUpO1xyXG5cclxuICAgIHRoaXMuY29udGV4dCQubmV4dChjb250ZXh0KTtcclxuICB9XHJcblxyXG4gIGxvYWRFZGl0ZWRDb250ZXh0KHVyaTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmdldENvbnRleHRCeVVyaSh1cmkpLnN1YnNjcmliZSgoX2NvbnRleHQ6IERldGFpbGVkQ29udGV4dCkgPT4ge1xyXG4gICAgICB0aGlzLnNldEVkaXRlZENvbnRleHQoX2NvbnRleHQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRFZGl0ZWRDb250ZXh0KGNvbnRleHQ6IERldGFpbGVkQ29udGV4dCkge1xyXG4gICAgdGhpcy5lZGl0ZWRDb250ZXh0JC5uZXh0KGNvbnRleHQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29udGV4dEZyb21NYXAoaWdvTWFwOiBJZ29NYXAsIGVtcHR5PzogYm9vbGVhbik6IERldGFpbGVkQ29udGV4dCB7XHJcbiAgICBjb25zdCB2aWV3ID0gaWdvTWFwLm9sLmdldFZpZXcoKTtcclxuICAgIGNvbnN0IHByb2ogPSB2aWV3LmdldFByb2plY3Rpb24oKS5nZXRDb2RlKCk7XHJcbiAgICBjb25zdCBjZW50ZXI6IGFueSA9IG5ldyBvbFBvaW50KHZpZXcuZ2V0Q2VudGVyKCkpLnRyYW5zZm9ybShcclxuICAgICAgcHJvaixcclxuICAgICAgJ0VQU0c6NDMyNidcclxuICAgICk7XHJcblxyXG4gICAgY29uc3QgY29udGV4dCA9IHtcclxuICAgICAgdXJpOiB1dWlkKCksXHJcbiAgICAgIHRpdGxlOiAnJyxcclxuICAgICAgc2NvcGU6ICdwcml2YXRlJyxcclxuICAgICAgbWFwOiB7XHJcbiAgICAgICAgdmlldzoge1xyXG4gICAgICAgICAgY2VudGVyOiBjZW50ZXIuZ2V0Q29vcmRpbmF0ZXMoKSxcclxuICAgICAgICAgIHpvb206IHZpZXcuZ2V0Wm9vbSgpLFxyXG4gICAgICAgICAgcHJvamVjdGlvbjogcHJvaixcclxuICAgICAgICAgIG1heFpvb21PbkV4dGVudDogaWdvTWFwLnZpZXdDb250cm9sbGVyLm1heFpvb21PbkV4dGVudFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgbGF5ZXJzOiBbXSxcclxuICAgICAgdG9vbHM6IFtdXHJcbiAgICB9O1xyXG5cclxuICAgIGxldCBsYXllcnMgPSBbXTtcclxuICAgIGlmIChlbXB0eSA9PT0gdHJ1ZSkge1xyXG4gICAgICBsYXllcnMgPSBpZ29NYXAubGF5ZXJzJFxyXG4gICAgICAgIC5nZXRWYWx1ZSgpXHJcbiAgICAgICAgLmZpbHRlcihcclxuICAgICAgICAgIChsYXkpID0+XHJcbiAgICAgICAgICAgIGxheS5iYXNlTGF5ZXIgPT09IHRydWUgfHxcclxuICAgICAgICAgICAgbGF5Lm9wdGlvbnMuaWQgPT09ICdzZWFyY2hQb2ludGVyU3VtbWFyeUlkJ1xyXG4gICAgICAgIClcclxuICAgICAgICAuc29ydCgoYSwgYikgPT4gYS56SW5kZXggLSBiLnpJbmRleCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsYXllcnMgPSBpZ29NYXAubGF5ZXJzJC5nZXRWYWx1ZSgpLmZpbHRlcihsYXkgPT4gIWxheS5pZC5pbmNsdWRlcygnV2ZzV29ya3NwYWNlVGFibGVEZXN0JykpLnNvcnQoKGEsIGIpID0+IGEuekluZGV4IC0gYi56SW5kZXgpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBpID0gMDtcclxuICAgIGZvciAoY29uc3QgbCBvZiBsYXllcnMpIHtcclxuICAgICAgY29uc3QgbGF5ZXI6IGFueSA9IGw7XHJcbiAgICAgIGNvbnN0IG9wdHMgPSB7XHJcbiAgICAgICAgaWQ6IGxheWVyLm9wdGlvbnMuaWQgPyBTdHJpbmcobGF5ZXIub3B0aW9ucy5pZCkgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgbGF5ZXJPcHRpb25zOiB7XHJcbiAgICAgICAgICB0aXRsZTogbGF5ZXIub3B0aW9ucy50aXRsZSxcclxuICAgICAgICAgIHpJbmRleDogKytpLFxyXG4gICAgICAgICAgdmlzaWJsZTogbGF5ZXIudmlzaWJsZSxcclxuICAgICAgICAgIHNlY3VyaXR5OiBsYXllci5zZWN1cml0eVxyXG4gICAgICAgIH0gYXMgTGF5ZXJPcHRpb25zLFxyXG4gICAgICAgIHNvdXJjZU9wdGlvbnM6IHtcclxuICAgICAgICAgIHR5cGU6IGxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy50eXBlLFxyXG4gICAgICAgICAgcGFyYW1zOiBsYXllci5kYXRhU291cmNlLm9wdGlvbnMucGFyYW1zLFxyXG4gICAgICAgICAgdXJsOiBsYXllci5kYXRhU291cmNlLm9wdGlvbnMudXJsLFxyXG4gICAgICAgICAgcXVlcnlhYmxlOiBsYXllci5xdWVyeWFibGVcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICAgIGlmIChvcHRzLnNvdXJjZU9wdGlvbnMudHlwZSkge1xyXG4gICAgICAgIGNvbnRleHQubGF5ZXJzLnB1c2gob3B0cyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb250ZXh0LnRvb2xzID0gdGhpcy50b29scy5tYXAoKHRvb2wpID0+IHtcclxuICAgICAgcmV0dXJuIHsgaWQ6IFN0cmluZyh0b29sLmlkKSwgZ2xvYmFsOiB0b29sLmdsb2JhbCB9O1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGNvbnRleHQ7XHJcbiAgfVxyXG5cclxuICBnZXRDb250ZXh0RnJvbUxheWVycyhcclxuICAgIGlnb01hcDogSWdvTWFwLFxyXG4gICAgbGF5ZXJzOiBMYXllcltdLFxyXG4gICAgbmFtZTogc3RyaW5nXHJcbiAgKTogRGV0YWlsZWRDb250ZXh0IHtcclxuICAgIGNvbnN0IGN1cnJlbnRDb250ZXh0ID0gdGhpcy5jb250ZXh0JC5nZXRWYWx1ZSgpO1xyXG4gICAgY29uc3QgdmlldyA9IGlnb01hcC5vbC5nZXRWaWV3KCk7XHJcbiAgICBjb25zdCBwcm9qID0gdmlldy5nZXRQcm9qZWN0aW9uKCkuZ2V0Q29kZSgpO1xyXG4gICAgY29uc3QgY2VudGVyOiBhbnkgPSBuZXcgb2xQb2ludCh2aWV3LmdldENlbnRlcigpKS50cmFuc2Zvcm0oXHJcbiAgICAgIHByb2osXHJcbiAgICAgICdFUFNHOjQzMjYnXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IGNvbnRleHQgPSB7XHJcbiAgICAgIHVyaTogbmFtZSxcclxuICAgICAgdGl0bGU6IG5hbWUsXHJcbiAgICAgIG1hcDoge1xyXG4gICAgICAgIHZpZXc6IHtcclxuICAgICAgICAgIGNlbnRlcjogY2VudGVyLmdldENvb3JkaW5hdGVzKCksXHJcbiAgICAgICAgICB6b29tOiB2aWV3LmdldFpvb20oKSxcclxuICAgICAgICAgIHByb2plY3Rpb246IHByb2pcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGxheWVyczogW10sXHJcbiAgICAgIHRvb2xiYXI6IFtdLFxyXG4gICAgICB0b29sczogW10sXHJcbiAgICAgIGV4dHJhRmVhdHVyZXM6IFtdXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGN1cnJlbnRMYXllcnMgPSBpZ29NYXAubGF5ZXJzJC5nZXRWYWx1ZSgpO1xyXG4gICAgY29udGV4dC5sYXllcnMgPSBjdXJyZW50TGF5ZXJzXHJcbiAgICAgIC5maWx0ZXIoKGwpID0+IGwuYmFzZUxheWVyKVxyXG4gICAgICAubWFwKChsKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGJhc2VMYXllcjogdHJ1ZSxcclxuICAgICAgICAgIHNvdXJjZU9wdGlvbnM6IGwub3B0aW9ucy5zb3VyY2VPcHRpb25zLFxyXG4gICAgICAgICAgdGl0bGU6IGwub3B0aW9ucy50aXRsZSxcclxuICAgICAgICAgIHZpc2libGU6IGwudmlzaWJsZVxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIGxheWVycy5mb3JFYWNoKChsYXllcikgPT4ge1xyXG4gICAgICAvLyBEbyBub3Qgc2VlbSB0byB3b3JrIHByb3Blcmx5LiBsYXllckZvdW5kIGlzIGFsd2F5cyB1bmRlZmluZWQuXHJcbiAgICAgIGNvbnN0IGxheWVyRm91bmQgPSBjdXJyZW50Q29udGV4dC5sYXllcnMuZmluZChcclxuICAgICAgICAoY29udGV4dExheWVyKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBzb3VyY2UgPSBjb250ZXh0TGF5ZXIuc291cmNlO1xyXG4gICAgICAgICAgcmV0dXJuIHNvdXJjZSAmJiBsYXllci5pZCA9PT0gc291cmNlLmlkICYmICFjb250ZXh0TGF5ZXIuYmFzZUxheWVyO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICBpZiAobGF5ZXJGb3VuZCkge1xyXG4gICAgICAgIGxldCBsYXllclN0eWxlID0gbGF5ZXJGb3VuZFtgc3R5bGVgXTtcclxuICAgICAgICBpZiAobGF5ZXJGb3VuZFtgaWdvU3R5bGVgXVtgc3R5bGVCeUF0dHJpYnV0ZWBdKSB7XHJcbiAgICAgICAgICBsYXllclN0eWxlID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIH0gZWxzZSBpZiAobGF5ZXJGb3VuZFtgaWdvU3R5bGVgXVtgY2x1c3RlckJhc2VTdHlsZWBdKSB7XHJcbiAgICAgICAgICBsYXllclN0eWxlID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgZGVsZXRlIGxheWVyRm91bmQuc291cmNlT3B0aW9uc1tgc291cmNlYF07XHJcbiAgICAgICAgICBkZWxldGUgbGF5ZXJGb3VuZC5zb3VyY2VPcHRpb25zW2Bmb3JtYXRgXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3Qgb3B0cyA9IHtcclxuICAgICAgICAgIGJhc2VMYXllcjogbGF5ZXJGb3VuZC5iYXNlTGF5ZXIsXHJcbiAgICAgICAgICB0aXRsZTogbGF5ZXIub3B0aW9ucy50aXRsZSxcclxuICAgICAgICAgIHpJbmRleDogbGF5ZXIuekluZGV4LFxyXG4gICAgICAgICAgaWdvU3R5bGU6IHtcclxuICAgICAgICAgICAgc3R5bGVCeUF0dHJpYnV0ZTogbGF5ZXJGb3VuZFtgaWdvU3R5bGVgXVtgc3R5bGVCeUF0dHJpYnV0ZWBdLFxyXG4gICAgICAgICAgICBjbHVzdGVyQmFzZVN0eWxlOiBsYXllckZvdW5kW2BpZ29TdHlsZWBdW2BjbHVzdGVyQmFzZVN0eWxlYF0sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgc3R5bGU6IGxheWVyU3R5bGUsXHJcbiAgICAgICAgICBjbHVzdGVyUGFyYW06IGxheWVyRm91bmRbYGNsdXN0ZXJQYXJhbWBdLFxyXG4gICAgICAgICAgdmlzaWJsZTogbGF5ZXIudmlzaWJsZSxcclxuICAgICAgICAgIG9wYWNpdHk6IGxheWVyLm9wYWNpdHksXHJcbiAgICAgICAgICBzb3VyY2VPcHRpb25zOiBsYXllckZvdW5kLnNvdXJjZU9wdGlvbnNcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnRleHQubGF5ZXJzLnB1c2gob3B0cyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKCEobGF5ZXIub2wuZ2V0U291cmNlKCkgaW5zdGFuY2VvZiBvbFZlY3RvclNvdXJjZSkpIHtcclxuICAgICAgICAgIGNvbnN0IGNhdGFsb2dMYXllciA9IGxheWVyLm9wdGlvbnM7XHJcbiAgICAgICAgICBjYXRhbG9nTGF5ZXIuekluZGV4ID0gbGF5ZXIuekluZGV4O1xyXG4gICAgICAgICAgZGVsZXRlIGNhdGFsb2dMYXllci5zb3VyY2U7XHJcbiAgICAgICAgICBjb250ZXh0LmxheWVycy5wdXNoKGNhdGFsb2dMYXllcik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGxldCBmZWF0dXJlcztcclxuICAgICAgICAgIGNvbnN0IHdyaXRlciA9IG5ldyBHZW9KU09OKCk7XHJcbiAgICAgICAgICBpZiAobGF5ZXIub2wuZ2V0U291cmNlKCkgaW5zdGFuY2VvZiBDbHVzdGVyKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNsdXN0ZXJTb3VyY2UgPSBsYXllci5vbC5nZXRTb3VyY2UoKSBhcyBDbHVzdGVyO1xyXG4gICAgICAgICAgICBsZXQgb2xGZWF0dXJlcyA9IGNsdXN0ZXJTb3VyY2UuZ2V0RmVhdHVyZXMoKTtcclxuICAgICAgICAgICAgb2xGZWF0dXJlcyA9IChvbEZlYXR1cmVzIGFzIGFueSkuZmxhdE1hcCgoY2x1c3RlcjogYW55KSA9PiBjbHVzdGVyLmdldCgnZmVhdHVyZXMnKSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGNsZWFuZWRPbEZlYXR1cmVzID0gdGhpcy5leHBvcnRTZXJ2aWNlLmdlbmVyYXRlRmVhdHVyZShvbEZlYXR1cmVzLCAnR2VvSlNPTicsICdfZmVhdHVyZVN0b3JlJyk7XHJcbiAgICAgICAgICAgIGZlYXR1cmVzID0gd3JpdGVyLndyaXRlRmVhdHVyZXMoXHJcbiAgICAgICAgICAgICAgY2xlYW5lZE9sRmVhdHVyZXMsXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxyXG4gICAgICAgICAgICAgICAgZmVhdHVyZVByb2plY3Rpb246ICdFUFNHOjM4NTcnXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3Qgc291cmNlID0gbGF5ZXIub2wuZ2V0U291cmNlKCkgYXMgb2xWZWN0b3JTb3VyY2U7XHJcbiAgICAgICAgICAgIGNvbnN0IG9sRmVhdHVyZXMgPSBzb3VyY2UuZ2V0RmVhdHVyZXMoKTtcclxuICAgICAgICAgICAgY29uc3QgY2xlYW5lZE9sRmVhdHVyZXMgPSB0aGlzLmV4cG9ydFNlcnZpY2UuZ2VuZXJhdGVGZWF0dXJlKG9sRmVhdHVyZXMsICdHZW9KU09OJywgJ19mZWF0dXJlU3RvcmUnKTtcclxuICAgICAgICAgICAgZmVhdHVyZXMgPSB3cml0ZXIud3JpdGVGZWF0dXJlcyhcclxuICAgICAgICAgICAgICBjbGVhbmVkT2xGZWF0dXJlcyxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBkYXRhUHJvamVjdGlvbjogJ0VQU0c6NDMyNicsXHJcbiAgICAgICAgICAgICAgICBmZWF0dXJlUHJvamVjdGlvbjogJ0VQU0c6Mzg1NydcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBmZWF0dXJlcyA9IEpTT04ucGFyc2UoZmVhdHVyZXMpO1xyXG4gICAgICAgICAgZmVhdHVyZXMubmFtZSA9IGxheWVyLm9wdGlvbnMudGl0bGU7XHJcbiAgICAgICAgICBjb250ZXh0LmV4dHJhRmVhdHVyZXMucHVzaChmZWF0dXJlcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250ZXh0LnRvb2xiYXIgPSB0aGlzLnRvb2xiYXI7XHJcbiAgICBjb250ZXh0LnRvb2xzID0gdGhpcy50b29scztcclxuXHJcbiAgICByZXR1cm4gY29udGV4dDtcclxuICB9XHJcblxyXG4gIHNldFRvb2xzKHRvb2xzOiBUb29sW10pIHtcclxuICAgIHRoaXMudG9vbHMgPSB0b29scztcclxuICB9XHJcblxyXG4gIHNldFRvb2xiYXIodG9vbGJhcjogc3RyaW5nW10pIHtcclxuICAgIHRoaXMudG9vbGJhciA9IHRvb2xiYXI7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUNvbnRleHRNZXNzYWdlKGNvbnRleHQ6IERldGFpbGVkQ29udGV4dCkge1xyXG4gICAgaWYgKHRoaXMuY29udGV4dCQudmFsdWUgJiYgY29udGV4dC51cmkgJiYgdGhpcy5jb250ZXh0JC52YWx1ZS51cmkgIT09IGNvbnRleHQudXJpKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UucmVtb3ZlQWxsQXJlTm90RXJyb3IoKTtcclxuICAgIH1cclxuXHJcbiAgICBjb250ZXh0Lm1lc3NhZ2VzID0gY29udGV4dC5tZXNzYWdlcyA/IGNvbnRleHQubWVzc2FnZXMgOiBbXTtcclxuICAgIGNvbnRleHQubWVzc2FnZXMucHVzaChjb250ZXh0Lm1lc3NhZ2UpO1xyXG4gICAgY29udGV4dC5tZXNzYWdlcy5tYXAobWVzc2FnZSA9PiB7XHJcbiAgICAgIGlmIChtZXNzYWdlKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5tZXNzYWdlKG1lc3NhZ2UgYXMgTWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRDb250ZXh0QnlVcmkodXJpOiBzdHJpbmcpOiBPYnNlcnZhYmxlPERldGFpbGVkQ29udGV4dD4ge1xyXG4gICAgaWYgKHRoaXMuYmFzZVVybCkge1xyXG4gICAgICBsZXQgY29udGV4dFRvTG9hZDtcclxuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModGhpcy5jb250ZXh0cyQudmFsdWUpKSB7XHJcbiAgICAgICAgY29udGV4dFRvTG9hZCA9IHRoaXMuY29udGV4dHMkLnZhbHVlW2tleV0uZmluZCgoYykgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIGMudXJpID09PSB1cmk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKGNvbnRleHRUb0xvYWQpIHtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGNvbnRleHRUb0xvYWQgJiYgY29udGV4dFRvTG9hZC5pbXBvcnRlZCkge1xyXG4gICAgICAgIHJldHVybiBvZihjb250ZXh0VG9Mb2FkKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gVE9ETyA6IHVzZSBhbHdheXMgaWQgb3IgdXJpXHJcbiAgICAgIGNvbnN0IGlkID0gY29udGV4dFRvTG9hZCA/IGNvbnRleHRUb0xvYWQuaWQgOiB1cmk7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldERldGFpbHMoaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGltcG9ydGVkQ29udGV4dCA9IHRoaXMuY29udGV4dHMkLnZhbHVlLm91cnMuZmluZCgoY3VycmVudENvbnRleHQpID0+IHtcclxuICAgICAgcmV0dXJuIGN1cnJlbnRDb250ZXh0LnVyaSA9PT0gdXJpICYmIGN1cnJlbnRDb250ZXh0LmltcG9ydGVkID09PSB0cnVlO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGltcG9ydGVkQ29udGV4dCkge1xyXG4gICAgICByZXR1cm4gb2YoaW1wb3J0ZWRDb250ZXh0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldExvY2FsQ29udGV4dCh1cmkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Q29udGV4dExheWVycyhpZ29NYXA6IElnb01hcCkge1xyXG4gICAgY29uc3QgbGF5ZXJzOiBMYXllcltdID0gW107XHJcbiAgICBjb25zdCBtYXBMYXllcnMgPSBpZ29NYXAubGF5ZXJzJC5nZXRWYWx1ZSgpO1xyXG4gICAgbWFwTGF5ZXJzLmZvckVhY2goKGxheWVyKSA9PiB7XHJcbiAgICAgIGlmICghbGF5ZXIuYmFzZUxheWVyICYmIGxheWVyLm9wdGlvbnMuaWQgIT09ICdzZWFyY2hQb2ludGVyU3VtbWFyeUlkJykge1xyXG4gICAgICAgIGxheWVycy5wdXNoKGxheWVyKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbGF5ZXJzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWFkUGFyYW1zRnJvbVJvdXRlKCkge1xyXG4gICAgaWYgKCF0aGlzLnJvdXRlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNlbnRlcktleSA9IHRoaXMucm91dGUub3B0aW9ucy5jZW50ZXJLZXk7XHJcbiAgICAgIGlmIChjZW50ZXJLZXkgJiYgcGFyYW1zW2NlbnRlcktleSBhcyBzdHJpbmddKSB7XHJcbiAgICAgICAgY29uc3QgY2VudGVyUGFyYW1zID0gcGFyYW1zW2NlbnRlcktleSBhcyBzdHJpbmddO1xyXG4gICAgICAgIHRoaXMubWFwVmlld0Zyb21Sb3V0ZS5jZW50ZXIgPSBjZW50ZXJQYXJhbXMuc3BsaXQoJywnKS5tYXAoTnVtYmVyKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgcHJvamVjdGlvbktleSA9IHRoaXMucm91dGUub3B0aW9ucy5wcm9qZWN0aW9uS2V5O1xyXG4gICAgICBpZiAocHJvamVjdGlvbktleSAmJiBwYXJhbXNbcHJvamVjdGlvbktleSBhcyBzdHJpbmddKSB7XHJcbiAgICAgICAgY29uc3QgcHJvamVjdGlvblBhcmFtID0gcGFyYW1zW3Byb2plY3Rpb25LZXkgYXMgc3RyaW5nXTtcclxuICAgICAgICB0aGlzLm1hcFZpZXdGcm9tUm91dGUucHJvamVjdGlvbiA9IHByb2plY3Rpb25QYXJhbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3Qgem9vbUtleSA9IHRoaXMucm91dGUub3B0aW9ucy56b29tS2V5O1xyXG4gICAgICBpZiAoem9vbUtleSAmJiBwYXJhbXNbem9vbUtleSBhcyBzdHJpbmddKSB7XHJcbiAgICAgICAgY29uc3Qgem9vbVBhcmFtID0gcGFyYW1zW3pvb21LZXkgYXMgc3RyaW5nXTtcclxuICAgICAgICB0aGlzLm1hcFZpZXdGcm9tUm91dGUuem9vbSA9IE51bWJlcih6b29tUGFyYW0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UGF0aChmaWxlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGJhc2VQYXRoID0gdGhpcy5vcHRpb25zLmJhc2VQYXRoLnJlcGxhY2UoL1xcLyQvLCAnJyk7XHJcblxyXG4gICAgcmV0dXJuIGAke2Jhc2VQYXRofS8ke2ZpbGV9YDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IoXHJcbiAgICBlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UsXHJcbiAgICB1cmk6IHN0cmluZyxcclxuICAgIHBlcm1pc3Npb25FcnJvcj86IGJvb2xlYW5cclxuICApIHtcclxuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmNvbnRleHRzJC52YWx1ZS5vdXJzLmZpbmQoKG9iaikgPT4gb2JqLnVyaSA9PT0gdXJpKTtcclxuICAgIGNvbnN0IHRpdGxlQ29udGV4dCA9IGNvbnRleHQgPyBjb250ZXh0LnRpdGxlIDogdXJpO1xyXG4gICAgZXJyb3IuZXJyb3IudGl0bGUgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgJ2lnby5jb250ZXh0LmNvbnRleHRNYW5hZ2VyLmludmFsaWQudGl0bGUnXHJcbiAgICApO1xyXG5cclxuICAgIGVycm9yLmVycm9yLm1lc3NhZ2UgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgJ2lnby5jb250ZXh0LmNvbnRleHRNYW5hZ2VyLmludmFsaWQudGV4dCcsXHJcbiAgICAgIHsgdmFsdWU6IHRpdGxlQ29udGV4dCB9XHJcbiAgICApO1xyXG5cclxuICAgIGVycm9yLmVycm9yLnRvRGlzcGxheSA9IHRydWU7XHJcblxyXG4gICAgaWYgKHBlcm1pc3Npb25FcnJvcikge1xyXG4gICAgICBlcnJvci5lcnJvci50aXRsZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICdpZ28uY29udGV4dC5jb250ZXh0TWFuYWdlci5lcnJvcnMuYWRkUGVybWlzc2lvblRpdGxlJ1xyXG4gICAgICApO1xyXG4gICAgICBlcnJvci5lcnJvci5tZXNzYWdlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgJ2lnby5jb250ZXh0LmNvbnRleHRNYW5hZ2VyLmVycm9ycy5hZGRQZXJtaXNzaW9uJ1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcihcclxuICAgICAgJ2lnby5jb250ZXh0LmNvbnRleHRNYW5hZ2VyLmVycm9ycy5hZGRQZXJtaXNzaW9uJyxcclxuICAgICAgJ2lnby5jb250ZXh0LmNvbnRleHRNYW5hZ2VyLmVycm9ycy5hZGRQZXJtaXNzaW9uVGl0bGUnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlQ29udGV4dHNDaGFuZ2UoXHJcbiAgICBrZWVwQ3VycmVudENvbnRleHQgPSB0cnVlXHJcbiAgKSB7XHJcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5jb250ZXh0JC52YWx1ZTtcclxuICAgIGNvbnN0IGVkaXRlZENvbnRleHQgPSB0aGlzLmVkaXRlZENvbnRleHQkLnZhbHVlO1xyXG4gICAgaWYgKCFjb250ZXh0IHx8IGNvbnRleHQudXJpID09PSB0aGlzLm9wdGlvbnMuZGVmYXVsdENvbnRleHRVcmkpIHtcclxuICAgICAga2VlcEN1cnJlbnRDb250ZXh0ID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAoIWtlZXBDdXJyZW50Q29udGV4dCB8fCAhdGhpcy5maW5kQ29udGV4dChjb250ZXh0KSkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRDb250ZXh0VXJpID0gdW5kZWZpbmVkO1xyXG4gICAgICB0aGlzLmxvYWREZWZhdWx0Q29udGV4dCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5nZXRDb250ZXh0QnlVcmkoY29udGV4dC51cmkpXHJcbiAgICAgICAgLnBpcGUoZmlyc3QoKSlcclxuICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgKG5ld0NvbnRleHQ6IERldGFpbGVkQ29udGV4dCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRvb2xzQ2hhbmdlZCQubmV4dChuZXdDb250ZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG5cclxuICAgICAgaWYgKHRoaXMuYmFzZVVybCAmJiB0aGlzLmF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZWQpIHtcclxuICAgICAgICB0aGlzLmdldERlZmF1bHQoKS5zdWJzY3JpYmUoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgZWRpdGVkRm91bmQgPSB0aGlzLmZpbmRDb250ZXh0KGVkaXRlZENvbnRleHQpO1xyXG4gICAgaWYgKCFlZGl0ZWRGb3VuZCB8fCBlZGl0ZWRGb3VuZC5wZXJtaXNzaW9uICE9PSAnd3JpdGUnKSB7XHJcbiAgICAgIHRoaXMuc2V0RWRpdGVkQ29udGV4dCh1bmRlZmluZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRDb250ZXh0VG9MaXN0KGNvbnRleHQ6IENvbnRleHQpIHtcclxuICAgIGNvbnN0IGNvbnRleHRGb3VuZCA9IHRoaXMuZmluZENvbnRleHQoY29udGV4dCk7XHJcbiAgICBpZiAoIWNvbnRleHRGb3VuZCkge1xyXG4gICAgICBjb25zdCBjb250ZXh0U2ltcGxpZmllID0ge1xyXG4gICAgICAgIGlkOiBjb250ZXh0LmlkLFxyXG4gICAgICAgIHVyaTogY29udGV4dC51cmksXHJcbiAgICAgICAgdGl0bGU6IGNvbnRleHQudGl0bGUsXHJcbiAgICAgICAgc2NvcGU6IGNvbnRleHQuc2NvcGUsXHJcbiAgICAgICAgcGVybWlzc2lvbjogVHlwZVBlcm1pc3Npb25bVHlwZVBlcm1pc3Npb24ucmVhZF1cclxuICAgICAgfTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmNvbnRleHRzJC52YWx1ZSAmJiB0aGlzLmNvbnRleHRzJC52YWx1ZS5wdWJsaWMpIHtcclxuICAgICAgICB0aGlzLmNvbnRleHRzJC52YWx1ZS5wdWJsaWMucHVzaChjb250ZXh0U2ltcGxpZmllKTtcclxuICAgICAgICB0aGlzLmNvbnRleHRzJC5uZXh0KHRoaXMuY29udGV4dHMkLnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaW5kQ29udGV4dChjb250ZXh0OiBDb250ZXh0KSB7XHJcbiAgICBpZiAoIWNvbnRleHQpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvbnRleHRzID0gdGhpcy5jb250ZXh0cyQudmFsdWU7XHJcbiAgICBsZXQgZm91bmQ7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhjb250ZXh0cykpIHtcclxuICAgICAgY29uc3QgdmFsdWUgPSBjb250ZXh0c1trZXldO1xyXG4gICAgICBmb3VuZCA9IHZhbHVlLmZpbmQoXHJcbiAgICAgICAgKGMpID0+XHJcbiAgICAgICAgICAoY29udGV4dC5pZCAmJiBjLmlkID09PSBjb250ZXh0LmlkKSB8fFxyXG4gICAgICAgICAgKGNvbnRleHQudXJpICYmIGMudXJpID09PSBjb250ZXh0LnVyaSlcclxuICAgICAgKTtcclxuICAgICAgaWYgKGZvdW5kKSB7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZm91bmQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
632
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29udGV4dC9zcmMvbGliL2NvbnRleHQtbWFuYWdlci9zaGFyZWQvY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3JELE9BQU8sRUFBRSxlQUFlLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQ0wsR0FBRyxFQUNILEdBQUcsRUFDSCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBQ0wsSUFBSSxFQUNMLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBQ3BDLE9BQU8sT0FBTyxNQUFNLG1CQUFtQixDQUFDO0FBQ3hDLE9BQU8sT0FBTyxNQUFNLG1CQUFtQixDQUFDO0FBQ3hDLE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBY2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBY2hELE1BQU0sT0FBTyxjQUFjO0lBd0J6QixZQUNVLElBQWdCLEVBQ2hCLFdBQXdCLEVBQ3hCLGVBQWdDLEVBQ2hDLE1BQXFCLEVBQ3JCLGNBQThCLEVBQzlCLGNBQThCLEVBQzlCLGFBQTRCLEVBQ2hCLEtBQW1CO1FBUC9CLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG1CQUFjLEdBQWQsY0FB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Q3pDLENBQUM7WUFDRixJQUFJLEtBQUssRUFBRTtnQkFDVCxNQUFNO2FBQ1A7U0FDRjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7NEVBaHdCVSxjQUFjO29FQUFkLGNBQWMsV0FBZCxjQUFjLG1CQUZiLE1BQU07dUZBRVAsY0FBYztjQUgxQixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7O3NCQWlDSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBtYXAsXG4gIHRhcCxcbiAgY2F0Y2hFcnJvcixcbiAgZGVib3VuY2VUaW1lLFxuICBtZXJnZU1hcCxcbiAgZmlyc3QsXG4gIHNraXBcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgb2xQb2ludCBmcm9tICdvbC9nZW9tL1BvaW50JztcbmltcG9ydCBHZW9KU09OIGZyb20gJ29sL2Zvcm1hdC9HZW9KU09OJztcbmltcG9ydCBDbHVzdGVyIGZyb20gJ29sL3NvdXJjZS9DbHVzdGVyJztcbmltcG9ydCBvbFZlY3RvclNvdXJjZSBmcm9tICdvbC9zb3VyY2UvVmVjdG9yJztcblxuaW1wb3J0IHsgVG9vbCB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XG5pbXBvcnQgeyB1dWlkLCBPYmplY3RVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcbmltcG9ydCB7XG4gIENvbmZpZ1NlcnZpY2UsXG4gIFJvdXRlU2VydmljZSxcbiAgTWVzc2FnZSxcbiAgTWVzc2FnZVNlcnZpY2UsXG4gIExhbmd1YWdlU2VydmljZSxcbiAgU3RvcmFnZVNlcnZpY2Vcbn0gZnJvbSAnQGlnbzIvY29yZSc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvYXV0aCc7XG5pbXBvcnQgdHlwZSB7IElnb01hcCwgTGF5ZXIsIExheWVyT3B0aW9ucyB9IGZyb20gJ0BpZ28yL2dlbyc7XG5pbXBvcnQgeyBFeHBvcnRTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvZ2VvJztcblxuaW1wb3J0IHsgVHlwZVBlcm1pc3Npb24gfSBmcm9tICcuL2NvbnRleHQuZW51bSc7XG5pbXBvcnQge1xuICBDb250ZXh0c0xpc3QsXG4gIENvbnRleHRTZXJ2aWNlT3B0aW9ucyxcbiAgQ29udGV4dCxcbiAgRGV0YWlsZWRDb250ZXh0LFxuICBDb250ZXh0TWFwVmlldyxcbiAgQ29udGV4dFBlcm1pc3Npb24sXG4gIENvbnRleHRQcm9maWxzXG59IGZyb20gJy4vY29udGV4dC5pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb250ZXh0U2VydmljZSB7XG4gIHB1YmxpYyBjb250ZXh0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGV0YWlsZWRDb250ZXh0Pih1bmRlZmluZWQpO1xuICBwdWJsaWMgY29udGV4dHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb250ZXh0c0xpc3Q+KHsgb3VyczogW10gfSk7XG4gIHB1YmxpYyBkZWZhdWx0Q29udGV4dElkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPih1bmRlZmluZWQpO1xuICBwdWJsaWMgZWRpdGVkQ29udGV4dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERldGFpbGVkQ29udGV4dD4odW5kZWZpbmVkKTtcbiAgcHVibGljIGltcG9ydGVkQ29udGV4dDogQXJyYXk8RGV0YWlsZWRDb250ZXh0PiA9IFtdO1xuICBwdWJsaWMgdG9vbHNDaGFuZ2VkJCA9IG5ldyBTdWJqZWN0PERldGFpbGVkQ29udGV4dD4oKTtcbiAgcHJpdmF0ZSBtYXBWaWV3RnJvbVJvdXRlOiBDb250ZXh0TWFwVmlldyA9IHt9O1xuICBwcml2YXRlIG9wdGlvbnM6IENvbnRleHRTZXJ2aWNlT3B0aW9ucztcbiAgcHJpdmF0ZSBiYXNlVXJsOiBzdHJpbmc7XG5cbiAgLy8gVW50aWwgdGhlIENvbnRleHRTZXJ2aWNlIGlzIGNvbXBsZXRlbHkgcmVmYWN0b3JlZCwgdGhpcyBpcyBuZWVkZWRcbiAgLy8gdG8gdHJhY2sgdGhlIGN1cnJlbnQgdG9vbHNcbiAgcHJpdmF0ZSB0b29sczogVG9vbFtdO1xuICBwcml2YXRlIHRvb2xiYXI6IHN0cmluZ1tdO1xuXG4gIGdldCBkZWZhdWx0Q29udGV4dFVyaSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldCgnZmF2b3JpdGUuY29udGV4dC51cmknKSBhcyBzdHJpbmcgfHwgdGhpcy5fZGVmYXVsdENvbnRleHRVcmkgfHwgdGhpcy5vcHRpb25zLmRlZmF1bHRDb250ZXh0VXJpO1xuICB9XG4gIHNldCBkZWZhdWx0Q29udGV4dFVyaSh1cmk6IHN0cmluZykge1xuICAgIHRoaXMuX2RlZmF1bHRDb250ZXh0VXJpID0gdXJpO1xuICB9XG4gIHByaXZhdGUgX2RlZmF1bHRDb250ZXh0VXJpOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBleHBvcnRTZXJ2aWNlOiBFeHBvcnRTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcm91dGU6IFJvdXRlU2VydmljZVxuICApIHtcbiAgICB0aGlzLm9wdGlvbnMgPSBPYmplY3QuYXNzaWduKFxuICAgICAge1xuICAgICAgICBiYXNlUGF0aDogJ2NvbnRleHRzJyxcbiAgICAgICAgY29udGV4dExpc3RGaWxlOiAnX2NvbnRleHRzLmpzb24nLFxuICAgICAgICBkZWZhdWx0Q29udGV4dFVyaTogJ19kZWZhdWx0J1xuICAgICAgfSxcbiAgICAgIHRoaXMuY29uZmlnLmdldENvbmZpZygnY29udGV4dCcpXG4gICAgKTtcblxuICAgIHRoaXMuYmFzZVVybCA9IHRoaXMub3B0aW9ucy51cmw7XG5cbiAgICB0aGlzLnJlYWRQYXJhbXNGcm9tUm91dGUoKTtcblxuICAgIGlmICh0aGlzLmF1dGhTZXJ2aWNlLmhhc0F1dGhTZXJ2aWNlKSB7XG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ2dlZCQuc3Vic2NyaWJlKChsb2dnZWQpID0+IHtcbiAgICAgICAgaWYgKGxvZ2dlZCkge1xuICAgICAgICAgIHRoaXMuY29udGV4dHMkLnBpcGUoc2tpcCgxKSwgZmlyc3QoKSkuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNvbnRleHRzQ2hhbmdlKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5sb2FkQ29udGV4dHMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9hZENvbnRleHRzKCk7XG4gICAgICB0aGlzLmhhbmRsZUNvbnRleHRzQ2hhbmdlKGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBnZXQocGVybWlzc2lvbnM/OiBzdHJpbmdbXSwgaGlkZGVuPzogYm9vbGVhbik6IE9ic2VydmFibGU8Q29udGV4dHNMaXN0PiB7XG4gICAgbGV0IHVybCA9IHRoaXMuYmFzZVVybCArICcvY29udGV4dHMnO1xuICAgIGlmIChwZXJtaXNzaW9ucyAmJiB0aGlzLmF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZWQpIHtcbiAgICAgIHVybCArPSAnP3Blcm1pc3Npb249JyArIHBlcm1pc3Npb25zLmpvaW4oKTtcbiAgICAgIGlmIChoaWRkZW4pIHtcbiAgICAgICAgdXJsICs9ICcmaGlkZGVuPXRydWUnO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxDb250ZXh0c0xpc3Q+KHVybCk7XG4gIH1cblxuICBnZXRCeUlkKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPENvbnRleHQ+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzLycgKyBpZDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxDb250ZXh0Pih1cmwpO1xuICB9XG5cbiAgZ2V0RGV0YWlscyhpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxEZXRhaWxlZENvbnRleHQ+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmJhc2VVcmx9L2NvbnRleHRzLyR7aWR9L2RldGFpbHNgO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PERldGFpbGVkQ29udGV4dD4odXJsKS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcigocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlRXJyb3IocmVzLCBpZCk7XG4gICAgICAgIHRocm93IHJlcztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldERlZmF1bHQoKTogT2JzZXJ2YWJsZTxEZXRhaWxlZENvbnRleHQ+IHtcbiAgICBpZiAodGhpcy5hdXRoU2VydmljZS5hdXRoZW50aWNhdGVkKSB7XG4gICAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzL2RlZmF1bHQnO1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8RGV0YWlsZWRDb250ZXh0Pih1cmwpLnBpcGUoXG4gICAgICAgIHRhcCgoY29udGV4dCkgPT4ge1xuICAgICAgICAgIHRoaXMuZGVmYXVsdENvbnRleHRJZCQubmV4dChjb250ZXh0LmlkKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHVyaSA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0KCdmYXZvcml0ZS5jb250ZXh0LnVyaScpIGFzIHN0cmluZztcbiAgICAgIHRoaXMuZGVmYXVsdENvbnRleHRJZCQubmV4dCh1cmkpO1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0Q29udGV4dEJ5VXJpKHVyaSk7XG4gICAgfVxuXG4gIH1cblxuICBnZXRQcm9maWxCeVVzZXIoKTogT2JzZXJ2YWJsZTxDb250ZXh0UHJvZmlsc1tdPiB7XG4gICAgaWYgKHRoaXMuYmFzZVVybCkge1xuICAgICAgY29uc3QgdXJsID0gdGhpcy5iYXNlVXJsICsgJy9wcm9maWxzPyc7XG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxDb250ZXh0UHJvZmlsc1tdPih1cmwpO1xuICAgIH1cbiAgICByZXR1cm4gb2YoW10pO1xuICB9XG5cbiAgc2V0RGVmYXVsdChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBpZiAodGhpcy5hdXRoU2VydmljZS5hdXRoZW50aWNhdGVkKSB7XG4gICAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzL2RlZmF1bHQnO1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHVybCwgeyBkZWZhdWx0Q29udGV4dElkOiBpZCB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXQoJ2Zhdm9yaXRlLmNvbnRleHQudXJpJywgaWQpO1xuICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgfVxuICB9XG5cbiAgaGlkZUNvbnRleHQoaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYmFzZVVybCArICcvY29udGV4dHMvJyArIGlkICsgJy9oaWRlJztcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodXJsLCB7fSk7XG4gIH1cblxuICBzaG93Q29udGV4dChpZDogc3RyaW5nKSB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iYXNlVXJsICsgJy9jb250ZXh0cy8nICsgaWQgKyAnL3Nob3cnO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIHt9KTtcbiAgfVxuXG4gIGRlbGV0ZShpZDogc3RyaW5nLCBpbXBvcnRlZCA9IGZhbHNlKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgY29udGV4dHM6IENvbnRleHRzTGlzdCA9IHsgb3VyczogW10gfTtcbiAgICBPYmplY3Qua2V5cyh0aGlzLmNvbnRleHRzJC52YWx1ZSkuZm9yRWFjaChcbiAgICAgIChrZXkpID0+XG4gICAgICAgIChjb250ZXh0c1trZXldID0gdGhpcy5jb250ZXh0cyQudmFsdWVba2V5XS5maWx0ZXIoKGMpID0+IGMuaWQgIT09IGlkKSlcbiAgICApO1xuXG4gICAgaWYgKGltcG9ydGVkKSB7XG4gICAgICB0aGlzLmltcG9ydGVkQ29udGV4dCA9IHRoaXMuaW1wb3J0ZWRDb250ZXh0LmZpbHRlcigoYykgPT4gYy5pZCAhPT0gaWQpO1xuICAgICAgcmV0dXJuIG9mKHRoaXMuY29udGV4dHMkLm5leHQoY29udGV4dHMpKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzLycgKyBpZDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTx2b2lkPih1cmwpLnBpcGUoXG4gICAgICB0YXAoKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmNvbnRleHRzJC5uZXh0KGNvbnRleHRzKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGNyZWF0ZShjb250ZXh0OiBEZXRhaWxlZENvbnRleHQpOiBPYnNlcnZhYmxlPENvbnRleHQ+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzJztcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Q29udGV4dD4odXJsLCBjb250ZXh0KS5waXBlKFxuICAgICAgbWFwKChjb250ZXh0Q3JlYXRlZCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5hdXRoU2VydmljZS5hdXRoZW50aWNhdGVkKSB7XG4gICAgICAgICAgY29udGV4dENyZWF0ZWQucGVybWlzc2lvbiA9IFR5cGVQZXJtaXNzaW9uW1R5cGVQZXJtaXNzaW9uLndyaXRlXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb250ZXh0Q3JlYXRlZC5wZXJtaXNzaW9uID0gVHlwZVBlcm1pc3Npb25bVHlwZVBlcm1pc3Npb24ucmVhZF07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb250ZXh0cyQudmFsdWUub3Vycy51bnNoaWZ0KGNvbnRleHRDcmVhdGVkKTtcbiAgICAgICAgdGhpcy5jb250ZXh0cyQubmV4dCh0aGlzLmNvbnRleHRzJC52YWx1ZSk7XG4gICAgICAgIHJldHVybiBjb250ZXh0Q3JlYXRlZDtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGNsb25lKGlkOiBzdHJpbmcsIHByb3BlcnRpZXMgPSB7fSk6IE9ic2VydmFibGU8Q29udGV4dD4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYmFzZVVybCArICcvY29udGV4dHMvJyArIGlkICsgJy9jbG9uZSc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENvbnRleHQ+KHVybCwgcHJvcGVydGllcykucGlwZShcbiAgICAgIG1hcCgoY29udGV4dENsb25lZCkgPT4ge1xuICAgICAgICBjb250ZXh0Q2xvbmVkLnBlcm1pc3Npb24gPSBUeXBlUGVybWlzc2lvbltUeXBlUGVybWlzc2lvbi53cml0ZV07XG4gICAgICAgIHRoaXMuY29udGV4dHMkLnZhbHVlLm91cnMudW5zaGlmdChjb250ZXh0Q2xvbmVkKTtcbiAgICAgICAgdGhpcy5jb250ZXh0cyQubmV4dCh0aGlzLmNvbnRleHRzJC52YWx1ZSk7XG4gICAgICAgIHJldHVybiBjb250ZXh0Q2xvbmVkO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgdXBkYXRlKGlkOiBzdHJpbmcsIGNvbnRleHQ6IENvbnRleHQpOiBPYnNlcnZhYmxlPENvbnRleHQ+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzLycgKyBpZDtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBhdGNoPENvbnRleHQ+KHVybCwgY29udGV4dCk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIGFkZFRvb2xBc3NvY2lhdGlvbihjb250ZXh0SWQ6IHN0cmluZywgdG9vbElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmJhc2VVcmx9L2NvbnRleHRzLyR7Y29udGV4dElkfS90b29sc2A7XG4gICAgY29uc3QgYXNzb2NpYXRpb24gPSB7XG4gICAgICB0b29sSWRcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDx2b2lkPih1cmwsIGFzc29jaWF0aW9uKTtcbiAgfVxuXG4gIGRlbGV0ZVRvb2xBc3NvY2lhdGlvbihjb250ZXh0SWQ6IHN0cmluZywgdG9vbElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYmFzZVVybH0vY29udGV4dHMvJHtjb250ZXh0SWR9L3Rvb2xzLyR7dG9vbElkfWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUodXJsKTtcbiAgfVxuXG4gIGdldFBlcm1pc3Npb25zKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPENvbnRleHRQZXJtaXNzaW9uW10+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzLycgKyBpZCArICcvcGVybWlzc2lvbnMnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PENvbnRleHRQZXJtaXNzaW9uW10+KHVybCk7XG4gIH1cblxuICBhZGRQZXJtaXNzaW9uQXNzb2NpYXRpb24oXG4gICAgY29udGV4dElkOiBzdHJpbmcsXG4gICAgcHJvZmlsOiBzdHJpbmcsXG4gICAgdHlwZTogVHlwZVBlcm1pc3Npb25cbiAgKTogT2JzZXJ2YWJsZTxDb250ZXh0UGVybWlzc2lvbltdPiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5iYXNlVXJsfS9jb250ZXh0cy8ke2NvbnRleHRJZH0vcGVybWlzc2lvbnNgO1xuICAgIGNvbnN0IGFzc29jaWF0aW9uID0ge1xuICAgICAgcHJvZmlsLFxuICAgICAgdHlwZVBlcm1pc3Npb246IHR5cGVcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENvbnRleHRQZXJtaXNzaW9uW10+KHVybCwgYXNzb2NpYXRpb24pLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihyZXMsIHVuZGVmaW5lZCwgdHJ1ZSk7XG4gICAgICAgIHRocm93IFtyZXNdOyAvLyBUT0RPIE5vdCBzdXJlIGFib3V0IHRoaXMuXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBkZWxldGVQZXJtaXNzaW9uQXNzb2NpYXRpb24oXG4gICAgY29udGV4dElkOiBzdHJpbmcsXG4gICAgcGVybWlzc2lvbklkOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5iYXNlVXJsfS9jb250ZXh0cy8ke2NvbnRleHRJZH0vcGVybWlzc2lvbnMvJHtwZXJtaXNzaW9uSWR9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTx2b2lkPih1cmwpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIGdldExvY2FsQ29udGV4dHMoKTogT2JzZXJ2YWJsZTxDb250ZXh0c0xpc3Q+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmdldFBhdGgodGhpcy5vcHRpb25zLmNvbnRleHRMaXN0RmlsZSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Q29udGV4dHNMaXN0Pih1cmwpLnBpcGUoXG4gICAgICBtYXAoKHJlczogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiB7IG91cnM6IHJlcyB9O1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZ2V0TG9jYWxDb250ZXh0KHVyaTogc3RyaW5nKTogT2JzZXJ2YWJsZTxEZXRhaWxlZENvbnRleHQ+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmdldFBhdGgoYCR7dXJpfS5qc29uYCk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8RGV0YWlsZWRDb250ZXh0Pih1cmwpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgocmVzKSA9PiB7XG4gICAgICAgIGlmICghcmVzLmJhc2UpIHtcbiAgICAgICAgICByZXR1cm4gb2YocmVzKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB1cmxCYXNlID0gdGhpcy5nZXRQYXRoKGAke3Jlcy5iYXNlfS5qc29uYCk7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PERldGFpbGVkQ29udGV4dD4odXJsQmFzZSkucGlwZShcbiAgICAgICAgICBtYXAoKHJlc0Jhc2U6IERldGFpbGVkQ29udGV4dCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzTWVyZ2UgPSByZXM7XG4gICAgICAgICAgICByZXNNZXJnZS5tYXAgPSBPYmplY3RVdGlscy5tZXJnZURlZXAocmVzQmFzZS5tYXAsIHJlcy5tYXApO1xuICAgICAgICAgICAgcmVzTWVyZ2UubGF5ZXJzID0gKHJlc0Jhc2UubGF5ZXJzIHx8IFtdKVxuICAgICAgICAgICAgICAuY29uY2F0KHJlcy5sYXllcnMgfHwgW10pXG4gICAgICAgICAgICAgIC5yZXZlcnNlKClcbiAgICAgICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAgICAobCwgaW5kZXgsIHNlbGYpID0+XG4gICAgICAgICAgICAgICAgICAhbC5pZCB8fCBzZWxmLmZpbmRJbmRleCgobDIpID0+IGwyLmlkID09PSBsLmlkKSA9PT0gaW5kZXhcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAucmV2ZXJzZSgpO1xuICAgICAgICAgICAgcmVzTWVyZ2UudG9vbGJhciA9IHJlcy50b29sYmFyIHx8IHJlc0Jhc2UudG9vbGJhcjtcbiAgICAgICAgICAgIHJlc01lcmdlLm1lc3NhZ2UgPSByZXMubWVzc2FnZSB8fCByZXNCYXNlLm1lc3NhZ2U7XG4gICAgICAgICAgICByZXNNZXJnZS5tZXNzYWdlcyA9IHJlcy5tZXNzYWdlcyB8fCByZXNCYXNlLm1lc3NhZ2VzO1xuICAgICAgICAgICAgcmVzTWVyZ2UudG9vbHMgPSAocmVzLnRvb2xzIHx8IFtdKVxuICAgICAgICAgICAgICAuY29uY2F0KHJlc0Jhc2UudG9vbHMgfHwgW10pXG4gICAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKHQsIGluZGV4LCBzZWxmKSA9PlxuICAgICAgICAgICAgICAgICAgc2VsZi5maW5kSW5kZXgoKHQyKSA9PiB0Mi5uYW1lID09PSB0Lm5hbWUpID09PSBpbmRleFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuIHJlc01lcmdlO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnIsIHVyaSk7XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyMikgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycjIsIHVyaSk7XG4gICAgICAgIHRocm93IGVycjI7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBsb2FkQ29udGV4dHMocGVybWlzc2lvbnM/OiBzdHJpbmdbXSwgaGlkZGVuPzogYm9vbGVhbikge1xuICAgIGxldCByZXF1ZXN0O1xuICAgIGlmICh0aGlzLmJhc2VVcmwpIHtcbiAgICAgIHJlcXVlc3QgPSB0aGlzLmdldChwZXJtaXNzaW9ucywgaGlkZGVuKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVxdWVzdCA9IHRoaXMuZ2V0TG9jYWxDb250ZXh0cygpO1xuICAgIH1cbiAgICByZXF1ZXN0LnN1YnNjcmliZSgoY29udGV4dHMpID0+IHtcbiAgICAgIGNvbnRleHRzLm91cnMgPSB0aGlzLmltcG9ydGVkQ29udGV4dC5jb25jYXQoY29udGV4dHMub3Vycyk7XG4gICAgICB0aGlzLmNvbnRleHRzJC5uZXh0KGNvbnRleHRzKTtcbiAgICB9KTtcbiAgfVxuXG4gIGxvYWREZWZhdWx0Q29udGV4dCgpIHtcbiAgICBjb25zdCBsb2FkRmN0ID0gKGRpcmVjdCA9IGZhbHNlKSA9PiB7XG4gICAgICBpZiAoIWRpcmVjdCAmJiB0aGlzLmJhc2VVcmwgJiYgdGhpcy5hdXRoU2VydmljZS5hdXRoZW50aWNhdGVkKSB7XG4gICAgICAgIHRoaXMuZ2V0RGVmYXVsdCgpLnN1YnNjcmliZShcbiAgICAgICAgICAoX2NvbnRleHQ6IERldGFpbGVkQ29udGV4dCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kZWZhdWx0Q29udGV4dFVyaSA9IF9jb250ZXh0LnVyaTtcbiAgICAgICAgICAgIHRoaXMuYWRkQ29udGV4dFRvTGlzdChfY29udGV4dCk7XG4gICAgICAgICAgICB0aGlzLnNldENvbnRleHQoX2NvbnRleHQpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kZWZhdWx0Q29udGV4dElkJC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgICAgICAgICB0aGlzLmxvYWRDb250ZXh0KHRoaXMuZGVmYXVsdENvbnRleHRVcmkpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9hZENvbnRleHQodGhpcy5kZWZhdWx0Q29udGV4dFVyaSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmICh0aGlzLnJvdXRlICYmIHRoaXMucm91dGUub3B0aW9ucy5jb250ZXh0S2V5KSB7XG4gICAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnBpcGUoZGVib3VuY2VUaW1lKDEwMCkpLnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnRleHRQYXJhbSA9IHBhcmFtc1t0aGlzLnJvdXRlLm9wdGlvbnMuY29udGV4dEtleSBhcyBzdHJpbmddO1xuICAgICAgICBsZXQgZGlyZWN0ID0gZmFsc2U7XG4gICAgICAgIGlmIChjb250ZXh0UGFyYW0pIHtcbiAgICAgICAgICB0aGlzLmRlZmF1bHRDb250ZXh0VXJpID0gY29udGV4dFBhcmFtO1xuICAgICAgICAgIGRpcmVjdCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgbG9hZEZjdChkaXJlY3QpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvYWRGY3QoKTtcbiAgICB9XG4gIH1cblxuICBsb2FkQ29udGV4dCh1cmk6IHN0cmluZykge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmNvbnRleHQkLnZhbHVlO1xuXG4gICAgaWYgKGNvbnRleHQgJiYgY29udGV4dC51cmkgPT09IHVyaSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZ2V0Q29udGV4dEJ5VXJpKHVyaSlcbiAgICAgIC5waXBlKGZpcnN0KCkpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAoX2NvbnRleHQ6IERldGFpbGVkQ29udGV4dCkgPT4ge1xuICAgICAgICAgIHRoaXMuYWRkQ29udGV4dFRvTGlzdChfY29udGV4dCk7XG4gICAgICAgICAgdGhpcy5zZXRDb250ZXh0KF9jb250ZXh0KTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgIGlmICh1cmkgIT09IHRoaXMub3B0aW9ucy5kZWZhdWx0Q29udGV4dFVyaSkge1xuICAgICAgICAgICAgdGhpcy5sb2FkQ29udGV4dCh0aGlzLm9wdGlvbnMuZGVmYXVsdENvbnRleHRVcmkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHNldENvbnRleHQoY29udGV4dDogRGV0YWlsZWRDb250ZXh0KSB7XG4gICAgdGhpcy5oYW5kbGVDb250ZXh0TWVzc2FnZShjb250ZXh0KTtcbiAgICBjb25zdCBjdXJyZW50Q29udGV4dCA9IHRoaXMuY29udGV4dCQudmFsdWU7XG4gICAgaWYgKGN1cnJlbnRDb250ZXh0ICYmIGNvbnRleHQgJiYgY29udGV4dC5pZCA9PT0gY3VycmVudENvbnRleHQuaWQpIHtcbiAgICAgIGlmIChjb250ZXh0Lm1hcC52aWV3LmtlZXBDdXJyZW50VmlldyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnRleHQubWFwLnZpZXcua2VlcEN1cnJlbnRWaWV3ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY29udGV4dCQubmV4dChjb250ZXh0KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWNvbnRleHQubWFwKSB7XG4gICAgICBjb250ZXh0Lm1hcCA9IHsgdmlldzoge30gfTtcbiAgICB9XG5cbiAgICBPYmplY3QuYXNzaWduKGNvbnRleHQubWFwLnZpZXcsIHRoaXMubWFwVmlld0Zyb21Sb3V0ZSk7XG5cbiAgICB0aGlzLmNvbnRleHQkLm5leHQoY29udGV4dCk7XG4gIH1cblxuICBsb2FkRWRpdGVkQ29udGV4dCh1cmk6IHN0cmluZykge1xuICAgIHRoaXMuZ2V0Q29udGV4dEJ5VXJpKHVyaSkuc3Vic2NyaWJlKChfY29udGV4dDogRGV0YWlsZWRDb250ZXh0KSA9PiB7XG4gICAgICB0aGlzLnNldEVkaXRlZENvbnRleHQoX2NvbnRleHQpO1xuICAgIH0pO1xuICB9XG5cbiAgc2V0RWRpdGVkQ29udGV4dChjb250ZXh0OiBEZXRhaWxlZENvbnRleHQpIHtcbiAgICB0aGlzLmVkaXRlZENvbnRleHQkLm5leHQoY29udGV4dCk7XG4gIH1cblxuICBnZXRDb250ZXh0RnJvbU1hcChpZ29NYXA6IElnb01hcCwgZW1wdHk/OiBib29sZWFuKTogRGV0YWlsZWRDb250ZXh0IHtcbiAgICBjb25zdCB2aWV3ID0gaWdvTWFwLm9sLmdldFZpZXcoKTtcbiAgICBjb25zdCBwcm9qID0gdmlldy5nZXRQcm9qZWN0aW9uKCkuZ2V0Q29kZSgpO1xuICAgIGNvbnN0IGNlbnRlcjogYW55ID0gbmV3IG9sUG9pbnQodmlldy5nZXRDZW50ZXIoKSkudHJhbnNmb3JtKFxuICAgICAgcHJvaixcbiAgICAgICdFUFNHOjQzMjYnXG4gICAgKTtcblxuICAgIGNvbnN0IGNvbnRleHQgPSB7XG4gICAgICB1cmk6IHV1aWQoKSxcbiAgICAgIHRpdGxlOiAnJyxcbiAgICAgIHNjb3BlOiAncHJpdmF0ZScsXG4gICAgICBtYXA6IHtcbiAgICAgICAgdmlldzoge1xuICAgICAgICAgIGNlbnRlcjogY2VudGVyLmdldENvb3JkaW5hdGVzKCksXG4gICAgICAgICAgem9vbTogdmlldy5nZXRab29tKCksXG4gICAgICAgICAgcHJvamVjdGlvbjogcHJvaixcbiAgICAgICAgICBtYXhab29tT25FeHRlbnQ6IGlnb01hcC52aWV3Q29udHJvbGxlci5tYXhab29tT25FeHRlbnRcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGxheWVyczogW10sXG4gICAgICB0b29sczogW11cbiAgICB9O1xuXG4gICAgbGV0IGxheWVycyA9IFtdO1xuICAgIGlmIChlbXB0eSA9PT0gdHJ1ZSkge1xuICAgICAgbGF5ZXJzID0gaWdvTWFwLmxheWVycyRcbiAgICAgICAgLmdldFZhbHVlKClcbiAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAobGF5KSA9PlxuICAgICAgICAgICAgbGF5LmJhc2VMYXllciA9PT0gdHJ1ZSB8fFxuICAgICAgICAgICAgbGF5Lm9wdGlvbnMuaWQgPT09ICdzZWFyY2hQb2ludGVyU3VtbWFyeUlkJ1xuICAgICAgICApXG4gICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLnpJbmRleCAtIGIuekluZGV4KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGF5ZXJzID0gaWdvTWFwLmxheWVycyQuZ2V0VmFsdWUoKS5maWx0ZXIobGF5ID0+ICFsYXkuaWQuaW5jbHVkZXMoJ1dmc1dvcmtzcGFjZVRhYmxlRGVzdCcpKS5zb3J0KChhLCBiKSA9PiBhLnpJbmRleCAtIGIuekluZGV4KTtcbiAgICB9XG5cbiAgICBsZXQgaSA9IDA7XG4gICAgZm9yIChjb25zdCBsIG9mIGxheWVycykge1xuICAgICAgY29uc3QgbGF5ZXI6IGFueSA9IGw7XG4gICAgICBjb25zdCBvcHRzID0ge1xuICAgICAgICBpZDogbGF5ZXIub3B0aW9ucy5pZCA/IFN0cmluZyhsYXllci5vcHRpb25zLmlkKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgbGF5ZXJPcHRpb25zOiB7XG4gICAgICAgICAgdGl0bGU6IGxheWVyLm9wdGlvbnMudGl0bGUsXG4gICAgICAgICAgekluZGV4OiArK2ksXG4gICAgICAgICAgdmlzaWJsZTogbGF5ZXIudmlzaWJsZSxcbiAgICAgICAgICBzZWN1cml0eTogbGF5ZXIuc2VjdXJpdHlcbiAgICAgICAgfSBhcyBMYXllck9wdGlvbnMsXG4gICAgICAgIHNvdXJjZU9wdGlvbnM6IHtcbiAgICAgICAgICB0eXBlOiBsYXllci5kYXRhU291cmNlLm9wdGlvbnMudHlwZSxcbiAgICAgICAgICBwYXJhbXM6IGxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy5wYXJhbXMsXG4gICAgICAgICAgdXJsOiBsYXllci5kYXRhU291cmNlLm9wdGlvbnMudXJsLFxuICAgICAgICAgIHF1ZXJ5YWJsZTogbGF5ZXIucXVlcnlhYmxlXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBpZiAob3B0cy5zb3VyY2VPcHRpb25zLnR5cGUpIHtcbiAgICAgICAgY29udGV4dC5sYXllcnMucHVzaChvcHRzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb250ZXh0LnRvb2xzID0gdGhpcy50b29scy5tYXAoKHRvb2wpID0+IHtcbiAgICAgIHJldHVybiB7IGlkOiBTdHJpbmcodG9vbC5pZCksIGdsb2JhbDogdG9vbC5nbG9iYWwgfTtcbiAgICB9KTtcblxuICAgIHJldHVybiBjb250ZXh0O1xuICB9XG5cbiAgZ2V0Q29udGV4dEZyb21MYXllcnMoXG4gICAgaWdvTWFwOiBJZ29NYXAsXG4gICAgbGF5ZXJzOiBMYXllcltdLFxuICAgIG5hbWU6IHN0cmluZ1xuICApOiBEZXRhaWxlZENvbnRleHQge1xuICAgIGNvbnN0IGN1cnJlbnRDb250ZXh0ID0gdGhpcy5jb250ZXh0JC5nZXRWYWx1ZSgpO1xuICAgIGNvbnN0IHZpZXcgPSBpZ29NYXAub2wuZ2V0VmlldygpO1xuICAgIGNvbnN0IHByb2ogPSB2aWV3LmdldFByb2plY3Rpb24oKS5nZXRDb2RlKCk7XG4gICAgY29uc3QgY2VudGVyOiBhbnkgPSBuZXcgb2xQb2ludCh2aWV3LmdldENlbnRlcigpKS50cmFuc2Zvcm0oXG4gICAgICBwcm9qLFxuICAgICAgJ0VQU0c6NDMyNidcbiAgICApO1xuXG4gICAgY29uc3QgY29udGV4dCA9IHtcbiAgICAgIHVyaTogbmFtZSxcbiAgICAgIHRpdGxlOiBuYW1lLFxuICAgICAgbWFwOiB7XG4gICAgICAgIHZpZXc6IHtcbiAgICAgICAgICBjZW50ZXI6IGNlbnRlci5nZXRDb29yZGluYXRlcygpLFxuICAgICAgICAgIHpvb206IHZpZXcuZ2V0Wm9vbSgpLFxuICAgICAgICAgIHByb2plY3Rpb246IHByb2pcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGxheWVyczogW10sXG4gICAgICB0b29sYmFyOiBbXSxcbiAgICAgIHRvb2xzOiBbXSxcbiAgICAgIGV4dHJhRmVhdHVyZXM6IFtdXG4gICAgfTtcblxuICAgIGNvbnN0IGN1cnJlbnRMYXllcnMgPSBpZ29NYXAubGF5ZXJzJC5nZXRWYWx1ZSgpO1xuICAgIGNvbnRleHQubGF5ZXJzID0gY3VycmVudExheWVyc1xuICAgICAgLmZpbHRlcigobCkgPT4gbC5iYXNlTGF5ZXIpXG4gICAgICAubWFwKChsKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYmFzZUxheWVyOiB0cnVlLFxuICAgICAgICAgIHNvdXJjZU9wdGlvbnM6IGwub3B0aW9ucy5zb3VyY2VPcHRpb25zLFxuICAgICAgICAgIHRpdGxlOiBsLm9wdGlvbnMudGl0bGUsXG4gICAgICAgICAgdmlzaWJsZTogbC52aXNpYmxlXG4gICAgICAgIH07XG4gICAgICB9KTtcblxuICAgIGxheWVycy5mb3JFYWNoKChsYXllcikgPT4ge1xuICAgICAgLy8gRG8gbm90IHNlZW0gdG8gd29yayBwcm9wZXJseS4gbGF5ZXJGb3VuZCBpcyBhbHdheXMgdW5kZWZpbmVkLlxuICAgICAgY29uc3QgbGF5ZXJGb3VuZCA9IGN1cnJlbnRDb250ZXh0LmxheWVycy5maW5kKFxuICAgICAgICAoY29udGV4dExheWVyKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc291cmNlID0gY29udGV4dExheWVyLnNvdXJjZTtcbiAgICAgICAgICByZXR1cm4gc291cmNlICYmIGxheWVyLmlkID09PSBzb3VyY2UuaWQgJiYgIWNvbnRleHRMYXllci5iYXNlTGF5ZXI7XG4gICAgICAgIH0pO1xuICAgICAgaWYgKGxheWVyRm91bmQpIHtcbiAgICAgICAgbGV0IGxheWVyU3R5bGUgPSBsYXllckZvdW5kW2BzdHlsZWBdO1xuICAgICAgICBpZiAobGF5ZXJGb3VuZFtgaWdvU3R5bGVgXVtgc3R5bGVCeUF0dHJpYnV0ZWBdKSB7XG4gICAgICAgICAgbGF5ZXJTdHlsZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfSBlbHNlIGlmIChsYXllckZvdW5kW2BpZ29TdHlsZWBdW2BjbHVzdGVyQmFzZVN0eWxlYF0pIHtcbiAgICAgICAgICBsYXllclN0eWxlID0gdW5kZWZpbmVkO1xuICAgICAgICAgIGRlbGV0ZSBsYXllckZvdW5kLnNvdXJjZU9wdGlvbnNbYHNvdXJjZWBdO1xuICAgICAgICAgIGRlbGV0ZSBsYXllckZvdW5kLnNvdXJjZU9wdGlvbnNbYGZvcm1hdGBdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9wdHMgPSB7XG4gICAgICAgICAgYmFzZUxheWVyOiBsYXllckZvdW5kLmJhc2VMYXllcixcbiAgICAgICAgICB0aXRsZTogbGF5ZXIub3B0aW9ucy50aXRsZSxcbiAgICAgICAgICB6SW5kZXg6IGxheWVyLnpJbmRleCxcbiAgICAgICAgICBpZ29TdHlsZToge1xuICAgICAgICAgICAgc3R5bGVCeUF0dHJpYnV0ZTogbGF5ZXJGb3VuZFtgaWdvU3R5bGVgXVtgc3R5bGVCeUF0dHJpYnV0ZWBdLFxuICAgICAgICAgICAgY2x1c3RlckJhc2VTdHlsZTogbGF5ZXJGb3VuZFtgaWdvU3R5bGVgXVtgY2x1c3RlckJhc2VTdHlsZWBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc3R5bGU6IGxheWVyU3R5bGUsXG4gICAgICAgICAgY2x1c3RlclBhcmFtOiBsYXllckZvdW5kW2BjbHVzdGVyUGFyYW1gXSxcbiAgICAgICAgICB2aXNpYmxlOiBsYXllci52aXNpYmxlLFxuICAgICAgICAgIG9wYWNpdHk6IGxheWVyLm9wYWNpdHksXG4gICAgICAgICAgc291cmNlT3B0aW9uczogbGF5ZXJGb3VuZC5zb3VyY2VPcHRpb25zXG4gICAgICAgIH07XG4gICAgICAgIGNvbnRleHQubGF5ZXJzLnB1c2gob3B0cyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoIShsYXllci5vbC5nZXRTb3VyY2UoKSBpbnN0YW5jZW9mIG9sVmVjdG9yU291cmNlKSkge1xuICAgICAgICAgIGNvbnN0IGNhdGFsb2dMYXllciA9IGxheWVyLm9wdGlvbnM7XG4gICAgICAgICAgY2F0YWxvZ0xheWVyLnpJbmRleCA9IGxheWVyLnpJbmRleDtcbiAgICAgICAgICBkZWxldGUgY2F0YWxvZ0xheWVyLnNvdXJjZTtcbiAgICAgICAgICBjb250ZXh0LmxheWVycy5wdXNoKGNhdGFsb2dMYXllcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGV0IGZlYXR1cmVzO1xuICAgICAgICAgIGNvbnN0IHdyaXRlciA9IG5ldyBHZW9KU09OKCk7XG4gICAgICAgICAgaWYgKGxheWVyLm9sLmdldFNvdXJjZSgpIGluc3RhbmNlb2YgQ2x1c3Rlcikge1xuICAgICAgICAgICAgY29uc3QgY2x1c3RlclNvdXJjZSA9IGxheWVyLm9sLmdldFNvdXJjZSgpIGFzIENsdXN0ZXI7XG4gICAgICAgICAgICBsZXQgb2xGZWF0dXJlcyA9IGNsdXN0ZXJTb3VyY2UuZ2V0RmVhdHVyZXMoKTtcbiAgICAgICAgICAgIG9sRmVhdHVyZXMgPSAob2xGZWF0dXJlcyBhcyBhbnkpLmZsYXRNYXAoKGNsdXN0ZXI6IGFueSkgPT4gY2x1c3Rlci5nZXQoJ2ZlYXR1cmVzJykpO1xuICAgICAgICAgICAgY29uc3QgY2xlYW5lZE9sRmVhdHVyZXMgPSB0aGlzLmV4cG9ydFNlcnZpY2UuZ2VuZXJhdGVGZWF0dXJlKG9sRmVhdHVyZXMsICdHZW9KU09OJywgJ19mZWF0dXJlU3RvcmUnKTtcbiAgICAgICAgICAgIGZlYXR1cmVzID0gd3JpdGVyLndyaXRlRmVhdHVyZXMoXG4gICAgICAgICAgICAgIGNsZWFuZWRPbEZlYXR1cmVzLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgICAgICAgICAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiAnRVBTRzozODU3J1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBsYXllci5vbC5nZXRTb3VyY2UoKSBhcyBvbFZlY3RvclNvdXJjZTtcbiAgICAgICAgICAgIGNvbnN0IG9sRmVhdHVyZXMgPSBzb3VyY2UuZ2V0RmVhdHVyZXMoKTtcbiAgICAgICAgICAgIGNvbnN0IGNsZWFuZWRPbEZlYXR1cmVzID0gdGhpcy5leHBvcnRTZXJ2aWNlLmdlbmVyYXRlRmVhdHVyZShvbEZlYXR1cmVzLCAnR2VvSlNPTicsICdfZmVhdHVyZVN0b3JlJyk7XG4gICAgICAgICAgICBmZWF0dXJlcyA9IHdyaXRlci53cml0ZUZlYXR1cmVzKFxuICAgICAgICAgICAgICBjbGVhbmVkT2xGZWF0dXJlcyxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRhdGFQcm9qZWN0aW9uOiAnRVBTRzo0MzI2JyxcbiAgICAgICAgICAgICAgICBmZWF0dXJlUHJvamVjdGlvbjogJ0VQU0c6Mzg1NydcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZmVhdHVyZXMgPSBKU09OLnBhcnNlKGZlYXR1cmVzKTtcbiAgICAgICAgICBmZWF0dXJlcy5uYW1lID0gbGF5ZXIub3B0aW9ucy50aXRsZTtcbiAgICAgICAgICBjb250ZXh0LmV4dHJhRmVhdHVyZXMucHVzaChmZWF0dXJlcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnRleHQudG9vbGJhciA9IHRoaXMudG9vbGJhcjtcbiAgICBjb250ZXh0LnRvb2xzID0gdGhpcy50b29scztcblxuICAgIHJldHVybiBjb250ZXh0O1xuICB9XG5cbiAgc2V0VG9vbHModG9vbHM6IFRvb2xbXSkge1xuICAgIHRoaXMudG9vbHMgPSB0b29scztcbiAgfVxuXG4gIHNldFRvb2xiYXIodG9vbGJhcjogc3RyaW5nW10pIHtcbiAgICB0aGlzLnRvb2xiYXIgPSB0b29sYmFyO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVDb250ZXh0TWVzc2FnZShjb250ZXh0OiBEZXRhaWxlZENvbnRleHQpIHtcbiAgICBpZiAodGhpcy5jb250ZXh0JC52YWx1ZSAmJiBjb250ZXh0LnVyaSAmJiB0aGlzLmNvbnRleHQkLnZhbHVlLnVyaSAhPT0gY29udGV4dC51cmkpIHtcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UucmVtb3ZlQWxsQXJlTm90RXJyb3IoKTtcbiAgICB9XG5cbiAgICBjb250ZXh0Lm1lc3NhZ2VzID0gY29udGV4dC5tZXNzYWdlcyA/IGNvbnRleHQubWVzc2FnZXMgOiBbXTtcbiAgICBjb250ZXh0Lm1lc3NhZ2VzLnB1c2goY29udGV4dC5tZXNzYWdlKTtcbiAgICBjb250ZXh0Lm1lc3NhZ2VzLm1hcChtZXNzYWdlID0+IHtcbiAgICAgIGlmIChtZXNzYWdlKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UubWVzc2FnZShtZXNzYWdlIGFzIE1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb250ZXh0QnlVcmkodXJpOiBzdHJpbmcpOiBPYnNlcnZhYmxlPERldGFpbGVkQ29udGV4dD4ge1xuICAgIGlmICh0aGlzLmJhc2VVcmwpIHtcbiAgICAgIGxldCBjb250ZXh0VG9Mb2FkO1xuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModGhpcy5jb250ZXh0cyQudmFsdWUpKSB7XG4gICAgICAgIGNvbnRleHRUb0xvYWQgPSB0aGlzLmNvbnRleHRzJC52YWx1ZVtrZXldLmZpbmQoKGMpID0+IHtcbiAgICAgICAgICByZXR1cm4gYy51cmkgPT09IHVyaTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChjb250ZXh0VG9Mb2FkKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGNvbnRleHRUb0xvYWQgJiYgY29udGV4dFRvTG9hZC5pbXBvcnRlZCkge1xuICAgICAgICByZXR1cm4gb2YoY29udGV4dFRvTG9hZCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFRPRE8gOiB1c2UgYWx3YXlzIGlkIG9yIHVyaVxuICAgICAgY29uc3QgaWQgPSBjb250ZXh0VG9Mb2FkID8gY29udGV4dFRvTG9hZC5pZCA6IHVyaTtcbiAgICAgIHJldHVybiB0aGlzLmdldERldGFpbHMoaWQpO1xuICAgIH1cblxuICAgIGNvbnN0IGltcG9ydGVkQ29udGV4dCA9IHRoaXMuY29udGV4dHMkLnZhbHVlLm91cnMuZmluZCgoY3VycmVudENvbnRleHQpID0+IHtcbiAgICAgIHJldHVybiBjdXJyZW50Q29udGV4dC51cmkgPT09IHVyaSAmJiBjdXJyZW50Q29udGV4dC5pbXBvcnRlZCA9PT0gdHJ1ZTtcbiAgICB9KTtcblxuICAgIGlmIChpbXBvcnRlZENvbnRleHQpIHtcbiAgICAgIHJldHVybiBvZihpbXBvcnRlZENvbnRleHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRMb2NhbENvbnRleHQodXJpKTtcbiAgICB9XG4gIH1cblxuICBnZXRDb250ZXh0TGF5ZXJzKGlnb01hcDogSWdvTWFwKSB7XG4gICAgY29uc3QgbGF5ZXJzOiBMYXllcltdID0gW107XG4gICAgY29uc3QgbWFwTGF5ZXJzID0gaWdvTWFwLmxheWVycyQuZ2V0VmFsdWUoKTtcbiAgICBtYXBMYXllcnMuZm9yRWFjaCgobGF5ZXIpID0+IHtcbiAgICAgIGlmICghbGF5ZXIuYmFzZUxheWVyICYmIGxheWVyLm9wdGlvbnMuaWQgIT09ICdzZWFyY2hQb2ludGVyU3VtbWFyeUlkJykge1xuICAgICAgICBsYXllcnMucHVzaChsYXllcik7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGxheWVycztcbiAgfVxuXG4gIHByaXZhdGUgcmVhZFBhcmFtc0Zyb21Sb3V0ZSgpIHtcbiAgICBpZiAoIXRoaXMucm91dGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XG4gICAgICBjb25zdCBjZW50ZXJLZXkgPSB0aGlzLnJvdXRlLm9wdGlvbnMuY2VudGVyS2V5O1xuICAgICAgaWYgKGNlbnRlcktleSAmJiBwYXJhbXNbY2VudGVyS2V5IGFzIHN0cmluZ10pIHtcbiAgICAgICAgY29uc3QgY2VudGVyUGFyYW1zID0gcGFyYW1zW2NlbnRlcktleSBhcyBzdHJpbmddO1xuICAgICAgICB0aGlzLm1hcFZpZXdGcm9tUm91dGUuY2VudGVyID0gY2VudGVyUGFyYW1zLnNwbGl0KCcsJykubWFwKE51bWJlcik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByb2plY3Rpb25LZXkgPSB0aGlzLnJvdXRlLm9wdGlvbnMucHJvamVjdGlvbktleTtcbiAgICAgIGlmIChwcm9qZWN0aW9uS2V5ICYmIHBhcmFtc1twcm9qZWN0aW9uS2V5IGFzIHN0cmluZ10pIHtcbiAgICAgICAgY29uc3QgcHJvamVjdGlvblBhcmFtID0gcGFyYW1zW3Byb2plY3Rpb25LZXkgYXMgc3RyaW5nXTtcbiAgICAgICAgdGhpcy5tYXBWaWV3RnJvbVJvdXRlLnByb2plY3Rpb24gPSBwcm9qZWN0aW9uUGFyYW07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHpvb21LZXkgPSB0aGlzLnJvdXRlLm9wdGlvbnMuem9vbUtleTtcbiAgICAgIGlmICh6b29tS2V5ICYmIHBhcmFtc1t6b29tS2V5IGFzIHN0cmluZ10pIHtcbiAgICAgICAgY29uc3Qgem9vbVBhcmFtID0gcGFyYW1zW3pvb21LZXkgYXMgc3RyaW5nXTtcbiAgICAgICAgdGhpcy5tYXBWaWV3RnJvbVJvdXRlLnpvb20gPSBOdW1iZXIoem9vbVBhcmFtKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGF0aChmaWxlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBiYXNlUGF0aCA9IHRoaXMub3B0aW9ucy5iYXNlUGF0aC5yZXBsYWNlKC9cXC8kLywgJycpO1xuXG4gICAgcmV0dXJuIGAke2Jhc2VQYXRofS8ke2ZpbGV9YDtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IoXG4gICAgZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlLFxuICAgIHVyaTogc3RyaW5nLFxuICAgIHBlcm1pc3Npb25FcnJvcj86IGJvb2xlYW5cbiAgKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuY29udGV4dHMkLnZhbHVlLm91cnMuZmluZCgob2JqKSA9PiBvYmoudXJpID09PSB1cmkpO1xuICAgIGNvbnN0IHRpdGxlQ29udGV4dCA9IGNvbnRleHQgPyBjb250ZXh0LnRpdGxlIDogdXJpO1xuICAgIGVycm9yLmVycm9yLnRpdGxlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAnaWdvLmNvbnRleHQuY29udGV4dE1hbmFnZXIuaW52YWxpZC50aXRsZSdcbiAgICApO1xuXG4gICAgZXJyb3IuZXJyb3IubWVzc2FnZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgJ2lnby5jb250ZXh0LmNvbnRleHRNYW5hZ2VyLmludmFsaWQudGV4dCcsXG4gICAgICB7IHZhbHVlOiB0aXRsZUNvbnRleHQgfVxuICAgICk7XG5cbiAgICBlcnJvci5lcnJvci50b0Rpc3BsYXkgPSB0cnVlO1xuXG4gICAgaWYgKHBlcm1pc3Npb25FcnJvcikge1xuICAgICAgZXJyb3IuZXJyb3IudGl0bGUgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgJ2lnby5jb250ZXh0LmNvbnRleHRNYW5hZ2VyLmVycm9ycy5hZGRQZXJtaXNzaW9uVGl0bGUnXG4gICAgICApO1xuICAgICAgZXJyb3IuZXJyb3IubWVzc2FnZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAnaWdvLmNvbnRleHQuY29udGV4dE1hbmFnZXIuZXJyb3JzLmFkZFBlcm1pc3Npb24nXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxuICAgICAgJ2lnby5jb250ZXh0LmNvbnRleHRNYW5hZ2VyLmVycm9ycy5hZGRQZXJtaXNzaW9uJyxcbiAgICAgICdpZ28uY29udGV4dC5jb250ZXh0TWFuYWdlci5lcnJvcnMuYWRkUGVybWlzc2lvblRpdGxlJyk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUNvbnRleHRzQ2hhbmdlKFxuICAgIGtlZXBDdXJyZW50Q29udGV4dCA9IHRydWVcbiAgKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuY29udGV4dCQudmFsdWU7XG4gICAgY29uc3QgZWRpdGVkQ29udGV4dCA9IHRoaXMuZWRpdGVkQ29udGV4dCQudmFsdWU7XG4gICAgaWYgKCFjb250ZXh0IHx8IGNvbnRleHQudXJpID09PSB0aGlzLm9wdGlvbnMuZGVmYXVsdENvbnRleHRVcmkpIHtcbiAgICAgIGtlZXBDdXJyZW50Q29udGV4dCA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAoIWtlZXBDdXJyZW50Q29udGV4dCB8fCAhdGhpcy5maW5kQ29udGV4dChjb250ZXh0KSkge1xuICAgICAgdGhpcy5kZWZhdWx0Q29udGV4dFVyaSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMubG9hZERlZmF1bHRDb250ZXh0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZ2V0Q29udGV4dEJ5VXJpKGNvbnRleHQudXJpKVxuICAgICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgIChuZXdDb250ZXh0OiBEZXRhaWxlZENvbnRleHQpID0+IHtcbiAgICAgICAgICAgIHRoaXMudG9vbHNDaGFuZ2VkJC5uZXh0KG5ld0NvbnRleHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgaWYgKHRoaXMuYmFzZVVybCAmJiB0aGlzLmF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZWQpIHtcbiAgICAgICAgdGhpcy5nZXREZWZhdWx0KCkuc3Vic2NyaWJlKCk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGVkaXRlZEZvdW5kID0gdGhpcy5maW5kQ29udGV4dChlZGl0ZWRDb250ZXh0KTtcbiAgICBpZiAoIWVkaXRlZEZvdW5kIHx8IGVkaXRlZEZvdW5kLnBlcm1pc3Npb24gIT09ICd3cml0ZScpIHtcbiAgICAgIHRoaXMuc2V0RWRpdGVkQ29udGV4dCh1bmRlZmluZWQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRkQ29udGV4dFRvTGlzdChjb250ZXh0OiBDb250ZXh0KSB7XG4gICAgY29uc3QgY29udGV4dEZvdW5kID0gdGhpcy5maW5kQ29udGV4dChjb250ZXh0KTtcbiAgICBpZiAoIWNvbnRleHRGb3VuZCkge1xuICAgICAgY29uc3QgY29udGV4dFNpbXBsaWZpZSA9IHtcbiAgICAgICAgaWQ6IGNvbnRleHQuaWQsXG4gICAgICAgIHVyaTogY29udGV4dC51cmksXG4gICAgICAgIHRpdGxlOiBjb250ZXh0LnRpdGxlLFxuICAgICAgICBzY29wZTogY29udGV4dC5zY29wZSxcbiAgICAgICAgcGVybWlzc2lvbjogVHlwZVBlcm1pc3Npb25bVHlwZVBlcm1pc3Npb24ucmVhZF1cbiAgICAgIH07XG5cbiAgICAgIGlmICh0aGlzLmNvbnRleHRzJC52YWx1ZSAmJiB0aGlzLmNvbnRleHRzJC52YWx1ZS5wdWJsaWMpIHtcbiAgICAgICAgdGhpcy5jb250ZXh0cyQudmFsdWUucHVibGljLnB1c2goY29udGV4dFNpbXBsaWZpZSk7XG4gICAgICAgIHRoaXMuY29udGV4dHMkLm5leHQodGhpcy5jb250ZXh0cyQudmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluZENvbnRleHQoY29udGV4dDogQ29udGV4dCkge1xuICAgIGlmICghY29udGV4dCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRleHRzID0gdGhpcy5jb250ZXh0cyQudmFsdWU7XG4gICAgbGV0IGZvdW5kO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGNvbnRleHRzKSkge1xuICAgICAgY29uc3QgdmFsdWUgPSBjb250ZXh0c1trZXldO1xuICAgICAgZm91bmQgPSB2YWx1ZS5maW5kKFxuICAgICAgICAoYykgPT5cbiAgICAgICAgICAoY29udGV4dC5pZCAmJiBjLmlkID09PSBjb250ZXh0LmlkKSB8fFxuICAgICAgICAgIChjb250ZXh0LnVyaSAmJiBjLnVyaSA9PT0gY29udGV4dC51cmkpXG4gICAgICApO1xuICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmb3VuZDtcbiAgfVxufVxuIl19
|
|
@@ -3,4 +3,4 @@ export * from './context.enum';
|
|
|
3
3
|
export * from './context.interface';
|
|
4
4
|
export * from './layer-context.directive';
|
|
5
5
|
export * from './map-context.directive';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYW5hZ2VyL3NoYXJlZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbnRleHQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHQuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGF5ZXItY29udGV4dC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXAtY29udGV4dC5kaXJlY3RpdmUnO1xuIl19
|