@gnggln/ng-ui-system 1.0.0-alpha.21 → 1.0.0-alpha.23
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/crud-table/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.d.ts +1 -0
- package/crud-table/lib/components/form-builder/types/schema.types.d.ts +20 -0
- package/crud-table/lib/core/logging/logger.service.d.ts +1 -1
- package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/form-number-field.component.mjs +1 -1
- package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.mjs +1 -1
- package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/form-select-field.component.mjs +1 -1
- package/esm2022/crud-table/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.mjs +13 -7
- package/esm2022/crud-table/lib/components/form-builder/types/schema.types.mjs +1 -1
- package/esm2022/crud-table/lib/core/logging/logger.service.mjs +1 -1
- package/esm2022/form-builder/lib/components/form-builder/form-wizard.component.mjs +105 -18
- package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/form-number-field.component.mjs +1 -1
- package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.mjs +1 -1
- package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/form-select-field.component.mjs +1 -1
- package/esm2022/form-builder/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.mjs +13 -7
- package/esm2022/form-builder/lib/components/form-builder/types/index.mjs +1 -1
- package/esm2022/form-builder/lib/components/form-builder/types/schema.types.mjs +1 -1
- package/esm2022/form-builder/lib/core/logging/logger.service.mjs +1 -1
- package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-number-field.component.mjs +1 -1
- package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.mjs +1 -1
- package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-select-field.component.mjs +1 -1
- package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.mjs +13 -7
- package/esm2022/form-builder-editor/lib/components/form-builder/types/index.mjs +1 -1
- package/esm2022/form-builder-editor/lib/components/form-builder/types/schema.types.mjs +1 -1
- package/esm2022/form-builder-editor/lib/core/logging/logger.service.mjs +1 -1
- package/esm2022/lib/components/form-builder/form-wizard.component.mjs +105 -18
- package/esm2022/lib/components/form-builder/sub-components/form-fields/form-number-field.component.mjs +1 -1
- package/esm2022/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.mjs +1 -1
- package/esm2022/lib/components/form-builder/sub-components/form-fields/form-select-field.component.mjs +1 -1
- package/esm2022/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.mjs +13 -7
- package/esm2022/lib/components/form-builder/types/index.mjs +1 -1
- package/esm2022/lib/components/form-builder/types/schema.types.mjs +1 -1
- package/esm2022/lib/core/logging/logger.service.mjs +1 -1
- package/fesm2022/gnggln-ng-ui-system-crud-table.mjs +12 -6
- package/fesm2022/gnggln-ng-ui-system-crud-table.mjs.map +1 -1
- package/fesm2022/gnggln-ng-ui-system-form-builder-editor.mjs +12 -6
- package/fesm2022/gnggln-ng-ui-system-form-builder-editor.mjs.map +1 -1
- package/fesm2022/gnggln-ng-ui-system-form-builder.mjs +116 -23
- package/fesm2022/gnggln-ng-ui-system-form-builder.mjs.map +1 -1
- package/fesm2022/gnggln-ng-ui-system.mjs +116 -23
- package/fesm2022/gnggln-ng-ui-system.mjs.map +1 -1
- package/form-builder/lib/components/form-builder/form-wizard.component.d.ts +10 -1
- package/form-builder/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.d.ts +1 -0
- package/form-builder/lib/components/form-builder/types/index.d.ts +1 -1
- package/form-builder/lib/components/form-builder/types/schema.types.d.ts +20 -0
- package/form-builder/lib/core/logging/logger.service.d.ts +1 -1
- package/form-builder-editor/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.d.ts +1 -0
- package/form-builder-editor/lib/components/form-builder/types/index.d.ts +1 -1
- package/form-builder-editor/lib/components/form-builder/types/schema.types.d.ts +20 -0
- package/form-builder-editor/lib/core/logging/logger.service.d.ts +1 -1
- package/lib/components/form-builder/form-wizard.component.d.ts +10 -1
- package/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.d.ts +1 -0
- package/lib/components/form-builder/types/index.d.ts +1 -1
- package/lib/components/form-builder/types/schema.types.d.ts +20 -0
- package/lib/core/logging/logger.service.d.ts +1 -1
- package/package.json +13 -13
|
@@ -102,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
102
102
|
}], blurred: [{
|
|
103
103
|
type: Output
|
|
104
104
|
}] } });
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1yYWRpby1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy11aS1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0tYnVpbGRlci9zdWItY29tcG9uZW50cy9mb3JtLWZpZWxkcy9mb3JtLXJhZGlvLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLXVpLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1idWlsZGVyL3N1Yi1jb21wb25lbnRzL2Zvcm0tZmllbGRzL2Zvcm0tcmFkaW8tZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUVaLEtBQUssRUFFTCxNQUFNLEVBRU4saUJBQWlCLEVBRWpCLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsV0FBVyxFQUFhLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXpELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBRSx1QkFBdUIsRUFBOEIsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7QUFROUc7Ozs7Ozs7O0dBUUc7QUFvQkgsTUFBTSxPQUFPLHlCQUF5QjtJQWxCdEM7UUFvQm1CLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBUTVELGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsV0FBTSxHQUFvQixJQUFJLENBQUM7UUFFL0IsWUFBTyxHQUFvQixFQUFFLENBQUM7UUFFdkMsa0VBQWtFO1FBRXpELGFBQVEsR0FBRyxLQUFLLENBQUM7UUFF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QixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFJRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFJRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUlJLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcclxuICBDb21wb25lbnQsXHJcclxuICBFdmVudEVtaXR0ZXIsXHJcclxuICBJbnB1dCxcclxyXG4gIE91dHB1dCxcclxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXHJcbiAgaW5qZWN0LFxyXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxyXG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcclxyXG5pbXBvcnQgeyBMdWNpZGVBbmd1bGFyTW9kdWxlIH0gZnJvbSAnbHVjaWRlLWFuZ3VsYXInO1xyXHJcbmltcG9ydCB7IFVpRm9ybUZpZWxkRXJyb3JTZXJ2aWNlLCBVaUZpZWxkRXJyb3JEaXNwbGF5T3B0aW9ucyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm0tZmllbGQtZXJyb3Iuc2VydmljZSc7XHJcclxuaW1wb3J0IHsgVWlGaWVsZE9wdGlvbiwgVWlGb3JtRmllbGREZXNjcmlwdG9yIH0gZnJvbSAnLi4vLi4vdHlwZXMvZmllbGQudHlwZXMnO1xyXHJcbmltcG9ydCB7IFVpVmFsaWRhdGlvblJ1bGUgfSBmcm9tICcuLi8uLi90eXBlcy92YWxpZGF0aW9uLnR5cGVzJztcclxyXG5cclxyXG4vKipcclxyXG4gKiBDYW1wbyBhdG9taWNvIHJhZGlvIGdyb3VwIOKAlCBzdGVzc28gcmVuZGVyaW5nIGRlbCBmb3JtLWJ1aWxkZXIuXHJcclxuICpcclxyXG4gKiBAc2VsZWN0b3IgdWktZm9ybS1yYWRpby1maWVsZFxyXHJcbiAqL1xyXHJcbkBDb21wb25lbnQoe1xyXHJcbiAgc2VsZWN0b3I6ICd1aS1mb3JtLXJhZGlvLWZpZWxkJyxcclxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcclxuICBpbXBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZSwgTWF0UmFkaW9Nb2R1bGUsIEx1Y2lkZUFuZ3VsYXJNb2R1bGVdLFxyXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tcmFkaW8tZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXHJcbiAgc3R5bGVVcmw6ICcuL2Zvcm0tZmllbGRzLnNjc3MnLFxyXHJcbn0pXHJcclxuZXhwb3J0IGNsYXNzIFVpRm9ybVJhZGlvRmllbGRDb21wb25lbnQge1xyXHJcbiAgcHJpdmF0ZSByZWFkb25seSBmaWVsZEVycm9yU2VydmljZSA9IGluamVjdChVaUZvcm1GaWVsZEVycm9yU2VydmljZSk7XHJcclxuXHJcclxuICBASW5wdXQoKSBmaWVsZD86IFVpRm9ybUZpZWxkRGVzY3JpcHRvcjtcclxyXG4gIEBJbnB1dCgpIGZvcm1Hcm91cD86IEZvcm1Hcm91cDtcclxyXG4gIEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XHJcclxuICBASW5wdXQoKSBlcnJvcnM6IHN0cmluZ1tdIHwgbnVsbCA9IG51bGw7XHJcclxuICBASW5wdXQoKSBvcHRpb25zOiBVaUZpZWxkT3B0aW9uW10gPSBbXTtcclxyXG4gIC8qKiBJbmRpY2EgYXN0ZXJpc2NvIG9iYmxpZ2F0b3JpbyAoYnVpbGRlcjogYGlzRmllbGRSZXF1aXJlZGApLiAqL1xyXHJcbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcclxyXG4gIC8qKiBPdmVycmlkZSB2aXNpYmlsaXTDoCBlcnJvcmk7IHNlIG51bGwgZGVyaXZhIGRhbCBjb250cm9sbG8uICovXHJcclxuICBASW5wdXQoKSBzaG93RXJyb3JzOiBib29sZWFuIHwgbnVsbCA9IG51bGw7XHJcclxuICBASW5wdXQoKSBlcnJvckRpc3BsYXlPcHRpb25zOiBVaUZpZWxkRXJyb3JEaXNwbGF5T3B0aW9ucyA9IHt9O1xyXHJcblxyXHJcbiAgQElucHV0KCkgY29udHJvbD86IEZvcm1Db250cm9sO1xyXHJcbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmc7XHJcclxuICBASW5wdXQoKSB2YWxpZGF0aW9uUnVsZXM/OiBVaVZhbGlkYXRpb25SdWxlW107XHJcclxuICBASW5wdXQoKSBjb2xvcjogJ3ByaW1hcnknIHwgJ2FjY2VudCcgfCAnd2FybicgPSAncHJpbWFyeSc7XHJcclxuXHJcclxuICBAT3V0cHV0KCkgYmx1cnJlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxyXG5cclxyXG4gIGdldCBlZmZlY3RpdmVMYWJlbCgpOiBzdHJpbmcge1xyXHJcbiAgICByZXR1cm4gdGhpcy5maWVsZD8ubGFiZWwgPz8gdGhpcy5sYWJlbCA/PyAnJztcclxyXG4gIH1cclxyXG5cclxyXG4gIGdldCBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xyXHJcbiAgICByZXR1cm4gdGhpcy5yZWFkb25seSB8fCB0aGlzLmZpZWxkPy5yZWFkb25seSA9PT0gdHJ1ZSB8fCB0aGlzLmZpZWxkPy5kaXNhYmxlZCA9PT0gdHJ1ZTtcclxyXG4gIH1cclxyXG5cclxyXG4gIGdldCBlZmZlY3RpdmVPcHRpb25zKCk6IFVpRmllbGRPcHRpb25bXSB7XHJcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbnM7XHJcclxuICB9XHJcclxuXHJcclxuICBnZXQgZWZmZWN0aXZlQ29sb3IoKTogJ3ByaW1hcnknIHwgJ2FjY2VudCcgfCAnd2Fybicge1xyXHJcbiAgICByZXR1cm4gdGhpcy5maWVsZD8uYXBwZWFyYW5jZT8uY29sb3IgPz8gdGhpcy5jb2xvcjtcclxyXG4gIH1cclxyXG5cclxyXG4gIGdldCBlZmZlY3RpdmVSdWxlcygpOiBVaVZhbGlkYXRpb25SdWxlW10ge1xyXHJcbiAgICByZXR1cm4gdGhpcy5maWVsZD8udmFsaWRhdGlvbiA/PyB0aGlzLnZhbGlkYXRpb25SdWxlcyA/PyBbXTtcclxyXG4gIH1cclxyXG5cclxyXG4gIGdldCBzaG93UmVxdWlyZWRNYXJrZXIoKTogYm9vbGVhbiB7XHJcclxuICAgIGlmICh0aGlzLnJlcXVpcmVkKSByZXR1cm4gdHJ1ZTtcclxyXG4gICAgcmV0dXJuIHRoaXMuZWZmZWN0aXZlUnVsZXMuc29tZSgocikgPT4gci50eXBlID09PSAncmVxdWlyZWQnICYmICFyLmNvbmRpdGlvbnM/Lmxlbmd0aCk7XHJcclxuICB9XHJcclxuXHJcclxuICBnZXQgZmllbGRDb250cm9sKCk6IEZvcm1Db250cm9sIHwgbnVsbCB7XHJcclxuICAgIGlmICghdGhpcy5maWVsZCB8fCAhdGhpcy5mb3JtR3JvdXApIHJldHVybiBudWxsO1xyXHJcbiAgICBjb25zdCBjID0gdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuZmllbGQua2V5KTtcclxyXG4gICAgcmV0dXJuIGMgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCA/IGMgOiBudWxsO1xyXHJcbiAgfVxyXHJcblxyXHJcbiAgcmVzb2x2ZWRFcnJvcnMoY29udHJvbDogRm9ybUNvbnRyb2wgfCBudWxsKTogc3RyaW5nW10ge1xyXHJcbiAgICBpZiAodGhpcy5lcnJvcnMgIT0gbnVsbCkgcmV0dXJuIHRoaXMuZXJyb3JzO1xyXHJcbiAgICByZXR1cm4gdGhpcy5maWVsZEVycm9yU2VydmljZS5nZXRGaWVsZEVycm9ycyhjb250cm9sLCB0aGlzLmVmZmVjdGl2ZVJ1bGVzKTtcclxyXG4gIH1cclxyXG5cclxyXG4gIHNob3VsZFNob3dFcnJvcnMoY29udHJvbDogRm9ybUNvbnRyb2wgfCBudWxsKTogYm9vbGVhbiB7XHJcclxuICAgIGlmICh0aGlzLnNob3dFcnJvcnMgIT0gbnVsbCkgcmV0dXJuIHRoaXMuc2hvd0Vycm9ycztcclxyXG4gICAgcmV0dXJuIHRoaXMuZmllbGRFcnJvclNlcnZpY2Uuc2hvdWxkU2hvd0ZpZWxkRXJyb3JzKGNvbnRyb2wsIHRoaXMuZXJyb3JEaXNwbGF5T3B0aW9ucyk7XHJcclxuICB9XHJcclxuXHJcclxuICBvbkJsdXIoKTogdm9pZCB7XHJcclxuICAgIHRoaXMuYmx1cnJlZC5lbWl0KCk7XHJcclxuICB9XHJcclxufVxyXHJcblxyIiwiQGlmIChmaWVsZCAmJiBmb3JtR3JvdXApIHtcclxuICA8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCIgY2xhc3M9XCJ1aS1mYi1maWVsZC1jdHhcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ1aS1mb3JtLWJ1aWxkZXJfX3JhZGlvLXdyYXBwZXJcIj5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwidWktZm9ybS1idWlsZGVyX19maWVsZC1sYWJlbFwiPlxyXG4gICAgICAgIHt7IGVmZmVjdGl2ZUxhYmVsIH19XHJcbiAgICAgICAgQGlmIChzaG93UmVxdWlyZWRNYXJrZXIpIHtcclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidWktZm9ybS1idWlsZGVyX19yZXF1aXJlZFwiPio8L3NwYW4+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2xhYmVsPlxyXG4gICAgICA8bWF0LXJhZGlvLWdyb3VwXHJcbiAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5rZXlcIlxyXG4gICAgICAgIFtjb2xvcl09XCJlZmZlY3RpdmVDb2xvclwiXHJcbiAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgQGZvciAob3B0IG9mIGVmZmVjdGl2ZU9wdGlvbnM7IHRyYWNrIG9wdC52YWx1ZSkge1xyXG4gICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gW3ZhbHVlXT1cIm9wdC52YWx1ZVwiIFtkaXNhYmxlZF09XCJvcHQuZGlzYWJsZWQgfHwgaXNEaXNhYmxlZFwiPlxyXG4gICAgICAgICAgICBAaWYgKG9wdC5pY29uKSB7XHJcbiAgICAgICAgICAgICAgPGx1Y2lkZS1pY29uIFtuYW1lXT1cIm9wdC5pY29uXCIgW3NpemVdPVwiMTZcIiAvPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHt7IG9wdC5sYWJlbCB9fVxyXG4gICAgICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICAgIEBpZiAoc2hvdWxkU2hvd0Vycm9ycyhmaWVsZENvbnRyb2wpKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInVpLWZvcm0tYnVpbGRlcl9fZmllbGQtZXJyb3JcIj5cclxuICAgICAgICAgIEBmb3IgKGVyciBvZiByZXNvbHZlZEVycm9ycyhmaWVsZENvbnRyb2wpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgPHNwYW4+e3sgZXJyIH19PC9zcGFuPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxufSBAZWxzZSBpZiAoY29udHJvbCkge1xyXG4gIDxkaXYgY2xhc3M9XCJ1aS1mb3JtLWZpZWxkLWF0b20gdWktZm9ybS1idWlsZGVyX19yYWRpby13cmFwcGVyXCI+XHJcbiAgICBAaWYgKGVmZmVjdGl2ZUxhYmVsKSB7XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cInVpLWZvcm0tYnVpbGRlcl9fZmllbGQtbGFiZWxcIj5cclxuICAgICAgICB7eyBlZmZlY3RpdmVMYWJlbCB9fVxyXG4gICAgICAgIEBpZiAoc2hvd1JlcXVpcmVkTWFya2VyKSB7XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInVpLWZvcm0tYnVpbGRlcl9fcmVxdWlyZWRcIj4qPC9zcGFuPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9sYWJlbD5cclxuICAgIH1cclxuICAgIDxtYXQtcmFkaW8tZ3JvdXAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIiBbY29sb3JdPVwiZWZmZWN0aXZlQ29sb3JcIiAoYmx1cik9XCJvbkJsdXIoKVwiPlxyXG4gICAgICBAZm9yIChvcHQgb2YgZWZmZWN0aXZlT3B0aW9uczsgdHJhY2sgb3B0LnZhbHVlKSB7XHJcbiAgICAgICAgPG1hdC1yYWRpby1idXR0b24gW3ZhbHVlXT1cIm9wdC52YWx1ZVwiIFtkaXNhYmxlZF09XCJvcHQuZGlzYWJsZWRcIj5cclxuICAgICAgICAgIEBpZiAob3B0Lmljb24pIHtcclxuICAgICAgICAgICAgPGx1Y2lkZS1pY29uIFtuYW1lXT1cIm9wdC5pY29uXCIgW3NpemVdPVwiMTZcIiAvPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAge3sgb3B0LmxhYmVsIH19XHJcbiAgICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICA8L21hdC1yYWRpby1ncm91cD5cclxuICAgIEBpZiAoc2hvdWxkU2hvd0Vycm9ycyhjb250cm9sKSkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwidWktZm9ybS1idWlsZGVyX19maWVsZC1lcnJvclwiPlxyXG4gICAgICAgIEBmb3IgKGVyciBvZiByZXNvbHZlZEVycm9ycyhjb250cm9sKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICA8c3Bhbj57eyBlcnIgfX08L3NwYW4+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxufVxyXG4iXX0=
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1yYWRpby1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy11aS1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0tYnVpbGRlci9zdWItY29tcG9uZW50cy9mb3JtLWZpZWxkcy9mb3JtLXJhZGlvLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLXVpLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1idWlsZGVyL3N1Yi1jb21wb25lbnRzL2Zvcm0tZmllbGRzL2Zvcm0tcmFkaW8tZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUVaLEtBQUssRUFFTCxNQUFNLEVBRU4saUJBQWlCLEVBRWpCLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsV0FBVyxFQUFhLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXpELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBRSx1QkFBdUIsRUFBOEIsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7QUFROUc7Ozs7Ozs7O0dBUUc7QUFvQkgsTUFBTSxPQUFPLHlCQUF5QjtJQWxCdEM7UUFvQm1CLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBUTVELGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsV0FBTSxHQUFvQixJQUFJLENBQUM7UUFFL0IsWUFBTyxHQUFvQixFQUFFLENBQUM7UUFFdkMsa0VBQWtFO1FBRXpELGFBQVEsR0FBRyxLQUFLLENBQUM7UUFF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QixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFJRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFJRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUlJLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuXHJcbiAgQ29tcG9uZW50LFxyXG5cclxuICBFdmVudEVtaXR0ZXIsXHJcblxyXG4gIElucHV0LFxyXG5cclxuICBPdXRwdXQsXHJcblxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG5cclxuICBpbmplY3QsXHJcblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IE1hdFJhZGlvTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xyXG5cclxuaW1wb3J0IHsgTHVjaWRlQW5ndWxhck1vZHVsZSB9IGZyb20gJ2x1Y2lkZS1hbmd1bGFyJztcclxuXHJcbmltcG9ydCB7IFVpRm9ybUZpZWxkRXJyb3JTZXJ2aWNlLCBVaUZpZWxkRXJyb3JEaXNwbGF5T3B0aW9ucyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm0tZmllbGQtZXJyb3Iuc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBVaUZpZWxkT3B0aW9uLCBVaUZvcm1GaWVsZERlc2NyaXB0b3IgfSBmcm9tICcuLi8uLi90eXBlcy9maWVsZC50eXBlcyc7XHJcblxyXG5pbXBvcnQgeyBVaVZhbGlkYXRpb25SdWxlIH0gZnJvbSAnLi4vLi4vdHlwZXMvdmFsaWRhdGlvbi50eXBlcyc7XHJcblxyXG5cclxuXHJcbi8qKlxyXG5cclxuICogQ2FtcG8gYXRvbWljbyByYWRpbyBncm91cCDigJQgc3Rlc3NvIHJlbmRlcmluZyBkZWwgZm9ybS1idWlsZGVyLlxyXG5cclxuICpcclxuXHJcbiAqIEBzZWxlY3RvciB1aS1mb3JtLXJhZGlvLWZpZWxkXHJcblxyXG4gKi9cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ3VpLWZvcm0tcmFkaW8tZmllbGQnLFxyXG5cclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG5cclxuICBpbXBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZSwgTWF0UmFkaW9Nb2R1bGUsIEx1Y2lkZUFuZ3VsYXJNb2R1bGVdLFxyXG5cclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tcmFkaW8tZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG5cclxuICBzdHlsZVVybDogJy4vZm9ybS1maWVsZHMuc2NzcycsXHJcblxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFVpRm9ybVJhZGlvRmllbGRDb21wb25lbnQge1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGZpZWxkRXJyb3JTZXJ2aWNlID0gaW5qZWN0KFVpRm9ybUZpZWxkRXJyb3JTZXJ2aWNlKTtcclxuXHJcblxyXG5cclxuICBASW5wdXQoKSBmaWVsZD86IFVpRm9ybUZpZWxkRGVzY3JpcHRvcjtcclxuXHJcbiAgQElucHV0KCkgZm9ybUdyb3VwPzogRm9ybUdyb3VwO1xyXG5cclxuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBlcnJvcnM6IHN0cmluZ1tdIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIEBJbnB1dCgpIG9wdGlvbnM6IFVpRmllbGRPcHRpb25bXSA9IFtdO1xyXG5cclxuICAvKiogSW5kaWNhIGFzdGVyaXNjbyBvYmJsaWdhdG9yaW8gKGJ1aWxkZXI6IGBpc0ZpZWxkUmVxdWlyZWRgKS4gKi9cclxuXHJcbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcclxuXHJcbiAgLyoqIE92ZXJyaWRlIHZpc2liaWxpdMOgIGVycm9yaTsgc2UgbnVsbCBkZXJpdmEgZGFsIGNvbnRyb2xsby4gKi9cclxuXHJcbiAgQElucHV0KCkgc2hvd0Vycm9yczogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xyXG5cclxuICBASW5wdXQoKSBlcnJvckRpc3BsYXlPcHRpb25zOiBVaUZpZWxkRXJyb3JEaXNwbGF5T3B0aW9ucyA9IHt9O1xyXG5cclxuXHJcblxyXG4gIEBJbnB1dCgpIGNvbnRyb2w/OiBGb3JtQ29udHJvbDtcclxuXHJcbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIHZhbGlkYXRpb25SdWxlcz86IFVpVmFsaWRhdGlvblJ1bGVbXTtcclxuXHJcbiAgQElucHV0KCkgY29sb3I6ICdwcmltYXJ5JyB8ICdhY2NlbnQnIHwgJ3dhcm4nID0gJ3ByaW1hcnknO1xyXG5cclxuXHJcblxyXG4gIEBPdXRwdXQoKSBibHVycmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuXHJcblxyXG4gIGdldCBlZmZlY3RpdmVMYWJlbCgpOiBzdHJpbmcge1xyXG5cclxuICAgIHJldHVybiB0aGlzLmZpZWxkPy5sYWJlbCA/PyB0aGlzLmxhYmVsID8/ICcnO1xyXG5cclxuICB9XHJcblxyXG5cclxuXHJcbiAgZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucmVhZG9ubHkgfHwgdGhpcy5maWVsZD8ucmVhZG9ubHkgPT09IHRydWUgfHwgdGhpcy5maWVsZD8uZGlzYWJsZWQgPT09IHRydWU7XHJcblxyXG4gIH1cclxuXHJcblxyXG5cclxuICBnZXQgZWZmZWN0aXZlT3B0aW9ucygpOiBVaUZpZWxkT3B0aW9uW10ge1xyXG5cclxuICAgIHJldHVybiB0aGlzLm9wdGlvbnM7XHJcblxyXG4gIH1cclxuXHJcblxyXG5cclxuICBnZXQgZWZmZWN0aXZlQ29sb3IoKTogJ3ByaW1hcnknIHwgJ2FjY2VudCcgfCAnd2Fybicge1xyXG5cclxuICAgIHJldHVybiB0aGlzLmZpZWxkPy5hcHBlYXJhbmNlPy5jb2xvciA/PyB0aGlzLmNvbG9yO1xyXG5cclxuICB9XHJcblxyXG5cclxuXHJcbiAgZ2V0IGVmZmVjdGl2ZVJ1bGVzKCk6IFVpVmFsaWRhdGlvblJ1bGVbXSB7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZmllbGQ/LnZhbGlkYXRpb24gPz8gdGhpcy52YWxpZGF0aW9uUnVsZXMgPz8gW107XHJcblxyXG4gIH1cclxuXHJcblxyXG5cclxuICBnZXQgc2hvd1JlcXVpcmVkTWFya2VyKCk6IGJvb2xlYW4ge1xyXG5cclxuICAgIGlmICh0aGlzLnJlcXVpcmVkKSByZXR1cm4gdHJ1ZTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5lZmZlY3RpdmVSdWxlcy5zb21lKChyKSA9PiByLnR5cGUgPT09ICdyZXF1aXJlZCcgJiYgIXIuY29uZGl0aW9ucz8ubGVuZ3RoKTtcclxuXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGdldCBmaWVsZENvbnRyb2woKTogRm9ybUNvbnRyb2wgfCBudWxsIHtcclxuXHJcbiAgICBpZiAoIXRoaXMuZmllbGQgfHwgIXRoaXMuZm9ybUdyb3VwKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICBjb25zdCBjID0gdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuZmllbGQua2V5KTtcclxuXHJcbiAgICByZXR1cm4gYyBpbnN0YW5jZW9mIEZvcm1Db250cm9sID8gYyA6IG51bGw7XHJcblxyXG4gIH1cclxuXHJcblxyXG5cclxuICByZXNvbHZlZEVycm9ycyhjb250cm9sOiBGb3JtQ29udHJvbCB8IG51bGwpOiBzdHJpbmdbXSB7XHJcblxyXG4gICAgaWYgKHRoaXMuZXJyb3JzICE9IG51bGwpIHJldHVybiB0aGlzLmVycm9ycztcclxuXHJcbiAgICByZXR1cm4gdGhpcy5maWVsZEVycm9yU2VydmljZS5nZXRGaWVsZEVycm9ycyhjb250cm9sLCB0aGlzLmVmZmVjdGl2ZVJ1bGVzKTtcclxuXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHNob3VsZFNob3dFcnJvcnMoY29udHJvbDogRm9ybUNvbnRyb2wgfCBudWxsKTogYm9vbGVhbiB7XHJcblxyXG4gICAgaWYgKHRoaXMuc2hvd0Vycm9ycyAhPSBudWxsKSByZXR1cm4gdGhpcy5zaG93RXJyb3JzO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmZpZWxkRXJyb3JTZXJ2aWNlLnNob3VsZFNob3dGaWVsZEVycm9ycyhjb250cm9sLCB0aGlzLmVycm9yRGlzcGxheU9wdGlvbnMpO1xyXG5cclxuICB9XHJcblxyXG5cclxuXHJcbiAgb25CbHVyKCk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuYmx1cnJlZC5lbWl0KCk7XHJcblxyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG4iLCJAaWYgKGZpZWxkICYmIGZvcm1Hcm91cCkge1xyXG4gIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBjbGFzcz1cInVpLWZiLWZpZWxkLWN0eFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInVpLWZvcm0tYnVpbGRlcl9fcmFkaW8td3JhcHBlclwiPlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJ1aS1mb3JtLWJ1aWxkZXJfX2ZpZWxkLWxhYmVsXCI+XHJcbiAgICAgICAge3sgZWZmZWN0aXZlTGFiZWwgfX1cclxuICAgICAgICBAaWYgKHNob3dSZXF1aXJlZE1hcmtlcikge1xyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1aS1mb3JtLWJ1aWxkZXJfX3JlcXVpcmVkXCI+Kjwvc3Bhbj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvbGFiZWw+XHJcbiAgICAgIDxtYXQtcmFkaW8tZ3JvdXBcclxuICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLmtleVwiXHJcbiAgICAgICAgW2NvbG9yXT1cImVmZmVjdGl2ZUNvbG9yXCJcclxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXHJcbiAgICAgID5cclxuICAgICAgICBAZm9yIChvcHQgb2YgZWZmZWN0aXZlT3B0aW9uczsgdHJhY2sgb3B0LnZhbHVlKSB7XHJcbiAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBbdmFsdWVdPVwib3B0LnZhbHVlXCIgW2Rpc2FibGVkXT1cIm9wdC5kaXNhYmxlZCB8fCBpc0Rpc2FibGVkXCI+XHJcbiAgICAgICAgICAgIEBpZiAob3B0Lmljb24pIHtcclxuICAgICAgICAgICAgICA8bHVjaWRlLWljb24gW25hbWVdPVwib3B0Lmljb25cIiBbc2l6ZV09XCIxNlwiIC8+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAge3sgb3B0LmxhYmVsIH19XHJcbiAgICAgICAgICA8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L21hdC1yYWRpby1ncm91cD5cclxuICAgICAgQGlmIChzaG91bGRTaG93RXJyb3JzKGZpZWxkQ29udHJvbCkpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwidWktZm9ybS1idWlsZGVyX19maWVsZC1lcnJvclwiPlxyXG4gICAgICAgICAgQGZvciAoZXJyIG9mIHJlc29sdmVkRXJyb3JzKGZpZWxkQ29udHJvbCk7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICA8c3Bhbj57eyBlcnIgfX08L3NwYW4+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG59IEBlbHNlIGlmIChjb250cm9sKSB7XHJcbiAgPGRpdiBjbGFzcz1cInVpLWZvcm0tZmllbGQtYXRvbSB1aS1mb3JtLWJ1aWxkZXJfX3JhZGlvLXdyYXBwZXJcIj5cclxuICAgIEBpZiAoZWZmZWN0aXZlTGFiZWwpIHtcclxuICAgICAgPGxhYmVsIGNsYXNzPVwidWktZm9ybS1idWlsZGVyX19maWVsZC1sYWJlbFwiPlxyXG4gICAgICAgIHt7IGVmZmVjdGl2ZUxhYmVsIH19XHJcbiAgICAgICAgQGlmIChzaG93UmVxdWlyZWRNYXJrZXIpIHtcclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidWktZm9ybS1idWlsZGVyX19yZXF1aXJlZFwiPio8L3NwYW4+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2xhYmVsPlxyXG4gICAgfVxyXG4gICAgPG1hdC1yYWRpby1ncm91cCBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiIFtjb2xvcl09XCJlZmZlY3RpdmVDb2xvclwiIChibHVyKT1cIm9uQmx1cigpXCI+XHJcbiAgICAgIEBmb3IgKG9wdCBvZiBlZmZlY3RpdmVPcHRpb25zOyB0cmFjayBvcHQudmFsdWUpIHtcclxuICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBbdmFsdWVdPVwib3B0LnZhbHVlXCIgW2Rpc2FibGVkXT1cIm9wdC5kaXNhYmxlZFwiPlxyXG4gICAgICAgICAgQGlmIChvcHQuaWNvbikge1xyXG4gICAgICAgICAgICA8bHVjaWRlLWljb24gW25hbWVdPVwib3B0Lmljb25cIiBbc2l6ZV09XCIxNlwiIC8+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB7eyBvcHQubGFiZWwgfX1cclxuICAgICAgICA8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgIH1cclxuICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgQGlmIChzaG91bGRTaG93RXJyb3JzKGNvbnRyb2wpKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ1aS1mb3JtLWJ1aWxkZXJfX2ZpZWxkLWVycm9yXCI+XHJcbiAgICAgICAgQGZvciAoZXJyIG9mIHJlc29sdmVkRXJyb3JzKGNvbnRyb2wpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgIDxzcGFuPnt7IGVyciB9fTwvc3Bhbj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG59XHJcbiJdfQ==
|
|
@@ -123,4 +123,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
123
123
|
}], blurred: [{
|
|
124
124
|
type: Output
|
|
125
125
|
}] } });
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zZWxlY3QtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctdWktc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWJ1aWxkZXIvc3ViLWNvbXBvbmVudHMvZm9ybS1maWVsZHMvZm9ybS1zZWxlY3QtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctdWktc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWJ1aWxkZXIvc3ViLWNvbXBvbmVudHMvZm9ybS1maWVsZHMvZm9ybS1zZWxlY3QtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUVaLEtBQUssRUFFTCxNQUFNLEVBRU4saUJBQWlCLEVBRWpCLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsV0FBVyxFQUFhLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXpELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUVsRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7Ozs7OztBQVFsRjs7Ozs7Ozs7R0FRRztBQXNDSCxNQUFNLE9BQU8sMEJBQTBCO0lBcEN2QztRQXNDbUIsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFRNUQsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixXQUFNLEdBQW9CLElBQUksQ0FBQztRQUUvQixZQUFPLEdBQW9CLEVBQUUsQ0FBQztRQVU5QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRW5CLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBTXZCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUUzQyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQW9GN0MsZ0JBQVcsR0FBRyxDQUFDLEtBQWMsRUFBVSxFQUFFO1lBRXZDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7WUFFakUsT0FBTyxHQUFHLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUUxQixDQUFDLENBQUM7S0FrQkg7SUF4R0MsSUFBSSxjQUFjO1FBRWhCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFFL0MsQ0FBQztJQUlELElBQUksb0JBQW9CO1FBRXRCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7SUFFM0QsQ0FBQztJQUlELElBQUksVUFBVTtRQUVaLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsS0FBSyxJQUFJLENBQUM7SUFFeEQsQ0FBQztJQUlELElBQUksWUFBWTtRQUVkLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUM7SUFFNUQsQ0FBQztJQUlELElBQUksZUFBZTtRQUVqQixJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO1FBRW5ELE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBRS9CLENBQUM7SUFJRCxJQUFJLGdCQUFnQjtRQUVsQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFFdEIsQ0FBQztJQUlELElBQUksY0FBYztRQUVoQixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDO0lBRTlELENBQUM7SUFJRCxJQUFJLFlBQVk7UUFFZCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFaEQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU3QyxPQUFPLENBQUMsWUFBWSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBRTdDLENBQUM7SUFJRCxjQUFjLENBQUMsT0FBMkI7UUFFeEMsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFNUMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFN0UsQ0FBQztJQWNELE9BQU8sQ0FBQyxLQUFhO1FBRW5CLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRWpDLENBQUM7SUFJRCxNQUFNO1FBRUosSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUV0QixDQUFDOytHQTVJVSwwQkFBMEI7bUdBQTFCLDBCQUEwQixzWkFSMUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQywwQkNsRmhGLHVqTEEySUEsK3hJRDdFSSxtQkFBbUIsc2hDQUVuQixrQkFBa0Isd2dCQUVsQixjQUFjLDBXQUVkLGVBQWUsbXJCQUVmLHFCQUFxQix1ckJBRXJCLGdCQUFnQiw0VEFFaEIsbUJBQW1COzs0RkFnQlYsMEJBQTBCO2tCQXBDdEMsU0FBUzsrQkFFRSxzQkFBc0IsY0FFcEIsSUFBSSxXQUVQO3dCQUVQLG1CQUFtQjt3QkFFbkIsa0JBQWtCO3dCQUVsQixjQUFjO3dCQUVkLGVBQWU7d0JBRWYscUJBQXFCO3dCQUVyQixnQkFBZ0I7d0JBRWhCLG1CQUFtQjtxQkFFcEIsbUJBRWdCLHVCQUF1QixDQUFDLE1BQU0saUJBRWhDLGlCQUFpQixDQUFDLElBQUksYUFFMUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQzs4QkFjckUsS0FBSztzQkFBYixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUlHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFJSSxhQUFhO3NCQUF0QixNQUFNO2dCQUVHLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcclxuICBDb21wb25lbnQsXHJcclxuICBFdmVudEVtaXR0ZXIsXHJcclxuICBJbnB1dCxcclxyXG4gIE91dHB1dCxcclxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXHJcbiAgaW5qZWN0LFxyXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxyXG5pbXBvcnQgeyBFcnJvclN0YXRlTWF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcclxuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcclxyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcclxuaW1wb3J0IHsgTHVjaWRlQW5ndWxhck1vZHVsZSB9IGZyb20gJ2x1Y2lkZS1hbmd1bGFyJztcclxyXG5pbXBvcnQgeyBVaUZvcm1FcnJvclN0YXRlTWF0Y2hlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm0tZXJyb3Itc3RhdGUubWF0Y2hlcic7XHJcclxuaW1wb3J0IHsgVWlGb3JtRmllbGRFcnJvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb3JtLWZpZWxkLWVycm9yLnNlcnZpY2UnO1xyXHJcbmltcG9ydCB7IFVpRmllbGRPcHRpb24sIFVpRm9ybUZpZWxkRGVzY3JpcHRvciB9IGZyb20gJy4uLy4uL3R5cGVzL2ZpZWxkLnR5cGVzJztcclxyXG5pbXBvcnQgeyBVaVZhbGlkYXRpb25SdWxlIH0gZnJvbSAnLi4vLi4vdHlwZXMvdmFsaWRhdGlvbi50eXBlcyc7XHJcclxuXHJcclxuLyoqXHJcclxuICogQ2FtcG8gYXRvbWljbyBzZWxlY3QgKG1hdC1zZWxlY3QgbyBhdXRvY29tcGxldGUgc2VhcmNoYWJsZSkuXHJcclxuICpcclxyXG4gKiBAc2VsZWN0b3IgdWktZm9ybS1zZWxlY3QtZmllbGRcclxyXG4gKi9cclxyXG5AQ29tcG9uZW50KHtcclxyXG4gIHNlbGVjdG9yOiAndWktZm9ybS1zZWxlY3QtZmllbGQnLFxyXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxyXG4gIGltcG9ydHM6IFtcclxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxyXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxyXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxyXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxyXHJcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXHJcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcclxuICAgIEx1Y2lkZUFuZ3VsYXJNb2R1bGUsXHJcclxuICBdLFxyXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXHJcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBFcnJvclN0YXRlTWF0Y2hlciwgdXNlQ2xhc3M6IFVpRm9ybUVycm9yU3RhdGVNYXRjaGVyIH1dLFxyXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tc2VsZWN0LWZpZWxkLmNvbXBvbmVudC5odG1sJyxcclxyXG4gIHN0eWxlVXJsOiAnLi9mb3JtLWZpZWxkcy5zY3NzJyxcclxyXG59KVxyXHJcbmV4cG9ydCBjbGFzcyBVaUZvcm1TZWxlY3RGaWVsZENvbXBvbmVudCB7XHJcclxuICBwcml2YXRlIHJlYWRvbmx5IGZpZWxkRXJyb3JTZXJ2aWNlID0gaW5qZWN0KFVpRm9ybUZpZWxkRXJyb3JTZXJ2aWNlKTtcclxyXG5cclxyXG4gIEBJbnB1dCgpIGZpZWxkPzogVWlGb3JtRmllbGREZXNjcmlwdG9yO1xyXHJcbiAgQElucHV0KCkgZm9ybUdyb3VwPzogRm9ybUdyb3VwO1xyXHJcbiAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcclxyXG4gIEBJbnB1dCgpIGVycm9yczogc3RyaW5nW10gfCBudWxsID0gbnVsbDtcclxyXG4gIEBJbnB1dCgpIG9wdGlvbnM6IFVpRmllbGRPcHRpb25bXSA9IFtdO1xyXHJcblxyXHJcbiAgQElucHV0KCkgY29udHJvbD86IEZvcm1Db250cm9sO1xyXHJcbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmc7XHJcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcj86IHN0cmluZztcclxyXG4gIEBJbnB1dCgpIHNlYXJjaGFibGUgPSBmYWxzZTtcclxyXG4gIEBJbnB1dCgpIGhpZGVFbXB0eU9wdGlvbiA9IGZhbHNlO1xyXHJcbiAgQElucHV0KCkgdmFsaWRhdGlvblJ1bGVzPzogVWlWYWxpZGF0aW9uUnVsZVtdO1xyXHJcblxyXHJcbiAgQE91dHB1dCgpIG9wdGlvbnNGaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxyXG4gIEBPdXRwdXQoKSBibHVycmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXHJcblxyXHJcbiAgZ2V0IGVmZmVjdGl2ZUxhYmVsKCk6IHN0cmluZyB7XHJcclxuICAgIHJldHVybiB0aGlzLmZpZWxkPy5sYWJlbCA/PyB0aGlzLmxhYmVsID8/ICcnO1xyXHJcbiAgfVxyXHJcblxyXHJcbiAgZ2V0IGVmZmVjdGl2ZVBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XHJcclxuICAgIHJldHVybiB0aGlzLmZpZWxkPy5wbGFjZWhvbGRlciA/PyB0aGlzLnBsYWNlaG9sZGVyID8/ICcnO1xyXHJcbiAgfVxyXHJcblxyXHJcbiAgZ2V0IGlzUmVhZG9ubHkoKTogYm9vbGVhbiB7XHJcclxuICAgIHJldHVybiB0aGlzLnJlYWRvbmx5IHx8IHRoaXMuZmllbGQ/LnJlYWRvbmx5ID09PSB0cnVlO1xyXHJcbiAgfVxyXHJcblxyXHJcbiAgZ2V0IGlzU2VhcmNoYWJsZSgpOiBib29sZWFuIHtcclxyXG4gICAgcmV0dXJuIHRoaXMuZmllbGQ/LnNlYXJjaGFibGUgPT09IHRydWUgfHwgdGhpcy5zZWFyY2hhYmxlO1xyXHJcbiAgfVxyXHJcblxyXHJcbiAgZ2V0IHNob3dFbXB0eU9wdGlvbigpOiBib29sZWFuIHtcclxyXG4gICAgaWYgKHRoaXMuZmllbGQpIHJldHVybiAhdGhpcy5maWVsZC5oaWRlRW1wdHlPcHRpb247XHJcclxuICAgIHJldHVybiAhdGhpcy5oaWRlRW1wdHlPcHRpb247XHJcclxuICB9XHJcclxuXHJcclxuICBnZXQgZWZmZWN0aXZlT3B0aW9ucygpOiBVaUZpZWxkT3B0aW9uW10ge1xyXHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zO1xyXHJcbiAgfVxyXHJcblxyXHJcbiAgZ2V0IGVmZmVjdGl2ZVJ1bGVzKCk6IFVpVmFsaWRhdGlvblJ1bGVbXSB7XHJcclxuICAgIHJldHVybiB0aGlzLmZpZWxkPy52YWxpZGF0aW9uID8/IHRoaXMudmFsaWRhdGlvblJ1bGVzID8/IFtdO1xyXHJcbiAgfVxyXHJcblxyXHJcbiAgZ2V0IGZpZWxkQ29udHJvbCgpOiBGb3JtQ29udHJvbCB8IG51bGwge1xyXHJcbiAgICBpZiAoIXRoaXMuZmllbGQgfHwgIXRoaXMuZm9ybUdyb3VwKSByZXR1cm4gbnVsbDtcclxyXG4gICAgY29uc3QgYyA9IHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLmZpZWxkLmtleSk7XHJcclxuICAgIHJldHVybiBjIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wgPyBjIDogbnVsbDtcclxyXG4gIH1cclxyXG5cclxyXG4gIHJlc29sdmVkRXJyb3JzKGNvbnRyb2w6IEZvcm1Db250cm9sIHwgbnVsbCk6IHN0cmluZ1tdIHtcclxyXG4gICAgaWYgKHRoaXMuZXJyb3JzICE9IG51bGwpIHJldHVybiB0aGlzLmVycm9ycztcclxyXG4gICAgcmV0dXJuIHRoaXMuZmllbGRFcnJvclNlcnZpY2UuZ2V0RmllbGRFcnJvcnMoY29udHJvbCwgdGhpcy5lZmZlY3RpdmVSdWxlcyk7XHJcclxuICB9XHJcclxuXHJcclxuICBkaXNwbGF5V2l0aCA9ICh2YWx1ZTogdW5rbm93bik6IHN0cmluZyA9PiB7XHJcclxuICAgIGNvbnN0IG9wdCA9IHRoaXMuZWZmZWN0aXZlT3B0aW9ucy5maW5kKChvKSA9PiBvLnZhbHVlID09PSB2YWx1ZSk7XHJcclxuICAgIHJldHVybiBvcHQ/LmxhYmVsID8/ICcnO1xyXHJcbiAgfTtcclxyXG5cclxyXG4gIG9uSW5wdXQocXVlcnk6IHN0cmluZyk6IHZvaWQge1xyXHJcbiAgICB0aGlzLm9wdGlvbnNGaWx0ZXIuZW1pdChxdWVyeSk7XHJcclxuICB9XHJcclxuXHJcclxuICBvbkJsdXIoKTogdm9pZCB7XHJcclxuICAgIHRoaXMuYmx1cnJlZC5lbWl0KCk7XHJcclxuICB9XHJcclxufVxyXHJcblxyIiwiQGlmIChmaWVsZCAmJiBmb3JtR3JvdXApIHtcclxuICA8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCIgY2xhc3M9XCJ1aS1mYi1maWVsZC1jdHhcIj5cclxuICAgIEBpZiAoaXNTZWFyY2hhYmxlKSB7XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidWktZm9ybS1idWlsZGVyX19mdWxsLXdpZHRoXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+e3sgZWZmZWN0aXZlTGFiZWwgfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLmtleVwiXHJcbiAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cInNlbGVjdEF1dG9cIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImVmZmVjdGl2ZVBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgIFtyZWFkb25seV09XCJpc1JlYWRvbmx5XCJcclxuICAgICAgICAgIChpbnB1dCk9XCJvbklucHV0KCRhbnkoJGV2ZW50LnRhcmdldCkudmFsdWUpXCJcclxuICAgICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgICAvPlxyXG4gICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlICNzZWxlY3RBdXRvPVwibWF0QXV0b2NvbXBsZXRlXCIgW2Rpc3BsYXlXaXRoXT1cImRpc3BsYXlXaXRoXCI+XHJcbiAgICAgICAgICBAZm9yIChvcHQgb2YgZWZmZWN0aXZlT3B0aW9uczsgdHJhY2sgb3B0LnZhbHVlKSB7XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJvcHQudmFsdWVcIiBbZGlzYWJsZWRdPVwib3B0LmRpc2FibGVkXCI+XHJcbiAgICAgICAgICAgICAgQGlmIChvcHQuaWNvbikge1xyXG4gICAgICAgICAgICAgICAgPGx1Y2lkZS1pY29uIFtuYW1lXT1cIm9wdC5pY29uXCIgW3NpemVdPVwiMTZcIiBjbGFzcz1cInVpLWZvcm0tYnVpbGRlcl9fb3B0aW9uLWljb25cIiAvPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB7eyBvcHQubGFiZWwgfX1cclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgICAgICA8bWF0LWVycm9yPlxyXG4gICAgICAgICAgQGZvciAoZXJyIG9mIHJlc29sdmVkRXJyb3JzKGZpZWxkQ29udHJvbCk7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICA8ZGl2Pnt7IGVyciB9fTwvZGl2PlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidWktZm9ybS1idWlsZGVyX19mdWxsLXdpZHRoXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+e3sgZWZmZWN0aXZlTGFiZWwgfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8bWF0LXNlbGVjdCBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLmtleVwiIFtwbGFjZWhvbGRlcl09XCJlZmZlY3RpdmVQbGFjZWhvbGRlclwiPlxyXG4gICAgICAgICAgQGlmIChzaG93RW1wdHlPcHRpb24pIHtcclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIm51bGxcIj4tLTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBmb3IgKG9wdCBvZiBlZmZlY3RpdmVPcHRpb25zOyB0cmFjayBvcHQudmFsdWUpIHtcclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIm9wdC52YWx1ZVwiIFtkaXNhYmxlZF09XCJvcHQuZGlzYWJsZWRcIj5cclxuICAgICAgICAgICAgICBAaWYgKG9wdC5pY29uKSB7XHJcbiAgICAgICAgICAgICAgICA8bHVjaWRlLWljb24gW25hbWVdPVwib3B0Lmljb25cIiBbc2l6ZV09XCIxNlwiIGNsYXNzPVwidWktZm9ybS1idWlsZGVyX19vcHRpb24taWNvblwiIC8+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHt7IG9wdC5sYWJlbCB9fVxyXG4gICAgICAgICAgICAgIEBpZiAob3B0LnRvb2x0aXApIHtcclxuICAgICAgICAgICAgICAgIDxsdWNpZGUtaWNvblxyXG4gICAgICAgICAgICAgICAgICBuYW1lPVwiaW5mb1wiXHJcbiAgICAgICAgICAgICAgICAgIFtzaXplXT1cIjE0XCJcclxuICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwib3B0LnRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInVpLWZvcm0tYnVpbGRlcl9fb3B0aW9uLWluZm9cIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgQGlmIChmaWVsZC5pY29uVG9vbHRpcCkge1xyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBtYXRTdWZmaXhcclxuICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJmaWVsZC5pY29uVG9vbHRpcC50ZXh0XCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJmaWVsZC5pY29uVG9vbHRpcC50ZXh0XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGx1Y2lkZS1pY29uIFtuYW1lXT1cImZpZWxkLmljb25Ub29sdGlwLmljb24gfHwgJ2luZm8nXCIgW3NpemVdPVwiMThcIiAvPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDxtYXQtZXJyb3I+XHJcbiAgICAgICAgICBAZm9yIChlcnIgb2YgcmVzb2x2ZWRFcnJvcnMoZmllbGRDb250cm9sKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgIDxkaXY+e3sgZXJyIH19PC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbn0gQGVsc2UgaWYgKGNvbnRyb2wpIHtcclxuICA8ZGl2IGNsYXNzPVwidWktZm9ybS1maWVsZC1hdG9tXCI+XHJcbiAgICBAaWYgKGlzU2VhcmNoYWJsZSkge1xyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInVpLWZvcm0tYnVpbGRlcl9fZnVsbC13aWR0aFwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cclxuICAgICAgICBAaWYgKGVmZmVjdGl2ZUxhYmVsKSB7XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPnt7IGVmZmVjdGl2ZUxhYmVsIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwic2VsZWN0QXV0b1N0YW5kYWxvbmVcIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImVmZmVjdGl2ZVBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgIChpbnB1dCk9XCJvbklucHV0KCRhbnkoJGV2ZW50LnRhcmdldCkudmFsdWUpXCJcclxuICAgICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgICAvPlxyXG4gICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlICNzZWxlY3RBdXRvU3RhbmRhbG9uZT1cIm1hdEF1dG9jb21wbGV0ZVwiIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5V2l0aFwiPlxyXG4gICAgICAgICAgQGZvciAob3B0IG9mIGVmZmVjdGl2ZU9wdGlvbnM7IHRyYWNrIG9wdC52YWx1ZSkge1xyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwib3B0LnZhbHVlXCIgW2Rpc2FibGVkXT1cIm9wdC5kaXNhYmxlZFwiPlxyXG4gICAgICAgICAgICAgIEBpZiAob3B0Lmljb24pIHtcclxuICAgICAgICAgICAgICAgIDxsdWNpZGUtaWNvbiBbbmFtZV09XCJvcHQuaWNvblwiIFtzaXplXT1cIjE2XCIgY2xhc3M9XCJ1aS1mb3JtLWJ1aWxkZXJfX29wdGlvbi1pY29uXCIgLz5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAge3sgb3B0LmxhYmVsIH19XHJcbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICAgICAgPG1hdC1lcnJvcj5cclxuICAgICAgICAgIEBmb3IgKGVyciBvZiByZXNvbHZlZEVycm9ycyhjb250cm9sKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgIDxkaXY+e3sgZXJyIH19PC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJ1aS1mb3JtLWJ1aWxkZXJfX2Z1bGwtd2lkdGhcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XHJcbiAgICAgICAgQGlmIChlZmZlY3RpdmVMYWJlbCkge1xyXG4gICAgICAgICAgPG1hdC1sYWJlbD57eyBlZmZlY3RpdmVMYWJlbCB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgIH1cclxuICAgICAgICA8bWF0LXNlbGVjdCBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiIFtwbGFjZWhvbGRlcl09XCJlZmZlY3RpdmVQbGFjZWhvbGRlclwiPlxyXG4gICAgICAgICAgQGlmIChzaG93RW1wdHlPcHRpb24pIHtcclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIm51bGxcIj4tLTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBmb3IgKG9wdCBvZiBlZmZlY3RpdmVPcHRpb25zOyB0cmFjayBvcHQudmFsdWUpIHtcclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIm9wdC52YWx1ZVwiIFtkaXNhYmxlZF09XCJvcHQuZGlzYWJsZWRcIj5cclxuICAgICAgICAgICAgICBAaWYgKG9wdC5pY29uKSB7XHJcbiAgICAgICAgICAgICAgICA8bHVjaWRlLWljb24gW25hbWVdPVwib3B0Lmljb25cIiBbc2l6ZV09XCIxNlwiIGNsYXNzPVwidWktZm9ybS1idWlsZGVyX19vcHRpb24taWNvblwiIC8+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHt7IG9wdC5sYWJlbCB9fVxyXG4gICAgICAgICAgICAgIEBpZiAob3B0LnRvb2x0aXApIHtcclxuICAgICAgICAgICAgICAgIDxsdWNpZGUtaWNvblxyXG4gICAgICAgICAgICAgICAgICBuYW1lPVwiaW5mb1wiXHJcbiAgICAgICAgICAgICAgICAgIFtzaXplXT1cIjE0XCJcclxuICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwib3B0LnRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInVpLWZvcm0tYnVpbGRlcl9fb3B0aW9uLWluZm9cIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgPG1hdC1lcnJvcj5cclxuICAgICAgICAgIEBmb3IgKGVyciBvZiByZXNvbHZlZEVycm9ycyhjb250cm9sKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgIDxkaXY+e3sgZXJyIH19PC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbn1cclxuIl19
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zZWxlY3QtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctdWktc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWJ1aWxkZXIvc3ViLWNvbXBvbmVudHMvZm9ybS1maWVsZHMvZm9ybS1zZWxlY3QtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctdWktc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWJ1aWxkZXIvc3ViLWNvbXBvbmVudHMvZm9ybS1maWVsZHMvZm9ybS1zZWxlY3QtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUVaLEtBQUssRUFFTCxNQUFNLEVBRU4saUJBQWlCLEVBRWpCLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsV0FBVyxFQUFhLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXpELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5Q0FBeUMs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QyxJQUFJLEVBQUUsQ0FBQztJQUV0QixDQUFDOytHQTVJVSwwQkFBMEI7bUdBQTFCLDBCQUEwQixzWkFSMUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQywwQkNsRmhGLHVqTEEySUEsK3hJRDdFSSxtQkFBbUIsc2hDQUVuQixrQkFBa0Isd2dCQUVsQixjQUFjLDBXQUVkLGVBQWUsbXJCQUVmLHFCQUFxQix1ckJBRXJCLGdCQUFnQiw0VEFFaEIsbUJBQW1COzs0RkFnQlYsMEJBQTBCO2tCQXBDdEMsU0FBUzsrQkFFRSxzQkFBc0IsY0FFcEIsSUFBSSxXQUVQO3dCQUVQLG1CQUFtQjt3QkFFbkIsa0JBQWtCO3dCQUVsQixjQUFjO3dCQUVkLGVBQWU7d0JBRWYscUJBQXFCO3dCQUVyQixnQkFBZ0I7d0JBRWhCLG1CQUFtQjtxQkFFcEIsbUJBRWdCLHVCQUF1QixDQUFDLE1BQU0saUJBRWhDLGlCQUFpQixDQUFDLElBQUksYUFFMUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQzs4QkFjckUsS0FBSztzQkFBYixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUlHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFJSSxhQUFhO3NCQUF0QixNQUFNO2dCQUVHLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuXHJcbiAgQ29tcG9uZW50LFxyXG5cclxuICBFdmVudEVtaXR0ZXIsXHJcblxyXG4gIElucHV0LFxyXG5cclxuICBPdXRwdXQsXHJcblxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG5cclxuICBpbmplY3QsXHJcblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IEVycm9yU3RhdGVNYXRjaGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5cclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcblxyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuXHJcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XHJcblxyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcblxyXG5pbXBvcnQgeyBMdWNpZGVBbmd1bGFyTW9kdWxlIH0gZnJvbSAnbHVjaWRlLWFuZ3VsYXInO1xyXG5cclxuaW1wb3J0IHsgVWlGb3JtRXJyb3JTdGF0ZU1hdGNoZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb3JtLWVycm9yLXN0YXRlLm1hdGNoZXInO1xyXG5cclxuaW1wb3J0IHsgVWlGb3JtRmllbGRFcnJvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb3JtLWZpZWxkLWVycm9yLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgVWlGaWVsZE9wdGlvbiwgVWlGb3JtRmllbGREZXNjcmlwdG9yIH0gZnJvbSAnLi4vLi4vdHlwZXMvZmllbGQudHlwZXMnO1xyXG5cclxuaW1wb3J0IHsgVWlWYWxpZGF0aW9uUnVsZSB9IGZyb20gJy4uLy4uL3R5cGVzL3ZhbGlkYXRpb24udHlwZXMnO1xyXG5cclxuXHJcblxyXG4vKipcclxuXHJcbiAqIENhbXBvIGF0b21pY28gc2VsZWN0IChtYXQtc2VsZWN0IG8gYXV0b2NvbXBsZXRlIHNlYXJjaGFibGUpLlxyXG5cclxuICpcclxuXHJcbiAqIEBzZWxlY3RvciB1aS1mb3JtLXNlbGVjdC1maWVsZFxyXG5cclxuICovXHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHJcbiAgc2VsZWN0b3I6ICd1aS1mb3JtLXNlbGVjdC1maWVsZCcsXHJcblxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcblxyXG4gIGltcG9ydHM6IFtcclxuXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG5cclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuXHJcbiAgICBNYXRTZWxlY3RNb2R1bGUsXHJcblxyXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxyXG5cclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcblxyXG4gICAgTHVjaWRlQW5ndWxhck1vZHVsZSxcclxuXHJcbiAgXSxcclxuXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcblxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcblxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogRXJyb3JTdGF0ZU1hdGNoZXIsIHVzZUNsYXNzOiBVaUZvcm1FcnJvclN0YXRlTWF0Y2hlciB9XSxcclxuXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tc2VsZWN0LWZpZWxkLmNvbXBvbmVudC5odG1sJyxcclxuXHJcbiAgc3R5bGVVcmw6ICcuL2Zvcm0tZmllbGRzLnNjc3MnLFxyXG5cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBVaUZvcm1TZWxlY3RGaWVsZENvbXBvbmVudCB7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZmllbGRFcnJvclNlcnZpY2UgPSBpbmplY3QoVWlGb3JtRmllbGRFcnJvclNlcnZpY2UpO1xyXG5cclxuXHJcblxyXG4gIEBJbnB1dCgpIGZpZWxkPzogVWlGb3JtRmllbGREZXNjcmlwdG9yO1xyXG5cclxuICBASW5wdXQoKSBmb3JtR3JvdXA/OiBGb3JtR3JvdXA7XHJcblxyXG4gIEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGVycm9yczogc3RyaW5nW10gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgQElucHV0KCkgb3B0aW9uczogVWlGaWVsZE9wdGlvbltdID0gW107XHJcblxyXG5cclxuXHJcbiAgQElucHV0KCkgY29udHJvbD86IEZvcm1Db250cm9sO1xyXG5cclxuICBASW5wdXQoKSBsYWJlbD86IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIHNlYXJjaGFibGUgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgaGlkZUVtcHR5T3B0aW9uID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHZhbGlkYXRpb25SdWxlcz86IFVpVmFsaWRhdGlvblJ1bGVbXTtcclxuXHJcblxyXG5cclxuICBAT3V0cHV0KCkgb3B0aW9uc0ZpbHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBAT3V0cHV0KCkgYmx1cnJlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcblxyXG5cclxuICBnZXQgZWZmZWN0aXZlTGFiZWwoKTogc3RyaW5nIHtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5maWVsZD8ubGFiZWwgPz8gdGhpcy5sYWJlbCA/PyAnJztcclxuXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGdldCBlZmZlY3RpdmVQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xyXG5cclxuICAgIHJldHVybiB0aGlzLmZpZWxkPy5wbGFjZWhvbGRlciA/PyB0aGlzLnBsYWNlaG9sZGVyID8/ICcnO1xyXG5cclxuICB9XHJcblxyXG5cclxuXHJcbiAgZ2V0IGlzUmVhZG9ubHkoKTogYm9vbGVhbiB7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucmVhZG9ubHkgfHwgdGhpcy5maWVsZD8ucmVhZG9ubHkgPT09IHRydWU7XHJcblxyXG4gIH1cclxuXHJcblxyXG5cclxuICBnZXQgaXNTZWFyY2hhYmxlKCk6IGJvb2xlYW4ge1xyXG5cclxuICAgIHJldHVybiB0aGlzLmZpZWxkPy5zZWFyY2hhYmxlID09PSB0cnVlIHx8IHRoaXMuc2VhcmNoYWJsZTtcclxuXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGdldCBzaG93RW1wdHlPcHRpb24oKTogYm9vbGVhbiB7XHJcblxyXG4gICAgaWYgKHRoaXMuZmllbGQpIHJldHVybiAhdGhpcy5maWVsZC5oaWRlRW1wdHlPcHRpb247XHJcblxyXG4gICAgcmV0dXJuICF0aGlzLmhpZGVFbXB0eU9wdGlvbjtcclxuXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGdldCBlZmZlY3RpdmVPcHRpb25zKCk6IFVpRmllbGRPcHRpb25bXSB7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucztcclxuXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGdldCBlZmZlY3RpdmVSdWxlcygpOiBVaVZhbGlkYXRpb25SdWxlW10ge1xyXG5cclxuICAgIHJldHVybiB0aGlzLmZpZWxkPy52YWxpZGF0aW9uID8/IHRoaXMudmFsaWRhdGlvblJ1bGVzID8/IFtdO1xyXG5cclxuICB9XHJcblxyXG5cclxuXHJcbiAgZ2V0IGZpZWxkQ29udHJvbCgpOiBGb3JtQ29udHJvbCB8IG51bGwge1xyXG5cclxuICAgIGlmICghdGhpcy5maWVsZCB8fCAhdGhpcy5mb3JtR3JvdXApIHJldHVybiBudWxsO1xyXG5cclxuICAgIGNvbnN0IGMgPSB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5maWVsZC5rZXkpO1xyXG5cclxuICAgIHJldHVybiBjIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wgPyBjIDogbnVsbDtcclxuXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHJlc29sdmVkRXJyb3JzKGNvbnRyb2w6IEZvcm1Db250cm9sIHwgbnVsbCk6IHN0cmluZ1tdIHtcclxuXHJcbiAgICBpZiAodGhpcy5lcnJvcnMgIT0gbnVsbCkgcmV0dXJuIHRoaXMuZXJyb3JzO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmZpZWxkRXJyb3JTZXJ2aWNlLmdldEZpZWxkRXJyb3JzKGNvbnRyb2wsIHRoaXMuZWZmZWN0aXZlUnVsZXMpO1xyXG5cclxuICB9XHJcblxyXG5cclxuXHJcbiAgZGlzcGxheVdpdGggPSAodmFsdWU6IHVua25vd24pOiBzdHJpbmcgPT4ge1xyXG5cclxuICAgIGNvbnN0IG9wdCA9IHRoaXMuZWZmZWN0aXZlT3B0aW9ucy5maW5kKChvKSA9PiBvLnZhbHVlID09PSB2YWx1ZSk7XHJcblxyXG4gICAgcmV0dXJuIG9wdD8ubGFiZWwgPz8gJyc7XHJcblxyXG4gIH07XHJcblxyXG5cclxuXHJcbiAgb25JbnB1dChxdWVyeTogc3RyaW5nKTogdm9pZCB7XHJcblxyXG4gICAgdGhpcy5vcHRpb25zRmlsdGVyLmVtaXQocXVlcnkpO1xyXG5cclxuICB9XHJcblxyXG5cclxuXHJcbiAgb25CbHVyKCk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuYmx1cnJlZC5lbWl0KCk7XHJcblxyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG4iLCJAaWYgKGZpZWxkICYmIGZvcm1Hcm91cCkge1xyXG4gIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBjbGFzcz1cInVpLWZiLWZpZWxkLWN0eFwiPlxyXG4gICAgQGlmIChpc1NlYXJjaGFibGUpIHtcclxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJ1aS1mb3JtLWJ1aWxkZXJfX2Z1bGwtd2lkdGhcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57eyBlZmZlY3RpdmVMYWJlbCB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQua2V5XCJcclxuICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwic2VsZWN0QXV0b1wiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZWZmZWN0aXZlUGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgW3JlYWRvbmx5XT1cImlzUmVhZG9ubHlcIlxyXG4gICAgICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIlxyXG4gICAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPG1hdC1hdXRvY29tcGxldGUgI3NlbGVjdEF1dG89XCJtYXRBdXRvY29tcGxldGVcIiBbZGlzcGxheVdpdGhdPVwiZGlzcGxheVdpdGhcIj5cclxuICAgICAgICAgIEBmb3IgKG9wdCBvZiBlZmZlY3RpdmVPcHRpb25zOyB0cmFjayBvcHQudmFsdWUpIHtcclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIm9wdC52YWx1ZVwiIFtkaXNhYmxlZF09XCJvcHQuZGlzYWJsZWRcIj5cclxuICAgICAgICAgICAgICBAaWYgKG9wdC5pY29uKSB7XHJcbiAgICAgICAgICAgICAgICA8bHVjaWRlLWljb24gW25hbWVdPVwib3B0Lmljb25cIiBbc2l6ZV09XCIxNlwiIGNsYXNzPVwidWktZm9ybS1idWlsZGVyX19vcHRpb24taWNvblwiIC8+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHt7IG9wdC5sYWJlbCB9fVxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gICAgICAgIDxtYXQtZXJyb3I+XHJcbiAgICAgICAgICBAZm9yIChlcnIgb2YgcmVzb2x2ZWRFcnJvcnMoZmllbGRDb250cm9sKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgIDxkaXY+e3sgZXJyIH19PC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJ1aS1mb3JtLWJ1aWxkZXJfX2Z1bGwtd2lkdGhcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57eyBlZmZlY3RpdmVMYWJlbCB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxtYXQtc2VsZWN0IFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQua2V5XCIgW3BsYWNlaG9sZGVyXT1cImVmZmVjdGl2ZVBsYWNlaG9sZGVyXCI+XHJcbiAgICAgICAgICBAaWYgKHNob3dFbXB0eU9wdGlvbikge1xyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwibnVsbFwiPi0tPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGZvciAob3B0IG9mIGVmZmVjdGl2ZU9wdGlvbnM7IHRyYWNrIG9wdC52YWx1ZSkge1xyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwib3B0LnZhbHVlXCIgW2Rpc2FibGVkXT1cIm9wdC5kaXNhYmxlZFwiPlxyXG4gICAgICAgICAgICAgIEBpZiAob3B0Lmljb24pIHtcclxuICAgICAgICAgICAgICAgIDxsdWNpZGUtaWNvbiBbbmFtZV09XCJvcHQuaWNvblwiIFtzaXplXT1cIjE2XCIgY2xhc3M9XCJ1aS1mb3JtLWJ1aWxkZXJfX29wdGlvbi1pY29uXCIgLz5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAge3sgb3B0LmxhYmVsIH19XHJcbiAgICAgICAgICAgICAgQGlmIChvcHQudG9vbHRpcCkge1xyXG4gICAgICAgICAgICAgICAgPGx1Y2lkZS1pY29uXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJpbmZvXCJcclxuICAgICAgICAgICAgICAgICAgW3NpemVdPVwiMTRcIlxyXG4gICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJvcHQudG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidWktZm9ybS1idWlsZGVyX19vcHRpb24taW5mb1wiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICBAaWYgKGZpZWxkLmljb25Ub29sdGlwKSB7XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIG1hdFN1ZmZpeFxyXG4gICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImZpZWxkLmljb25Ub29sdGlwLnRleHRcIlxyXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImZpZWxkLmljb25Ub29sdGlwLnRleHRcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bHVjaWRlLWljb24gW25hbWVdPVwiZmllbGQuaWNvblRvb2x0aXAuaWNvbiB8fCAnaW5mbydcIiBbc2l6ZV09XCIxOFwiIC8+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICAgICAgPG1hdC1lcnJvcj5cclxuICAgICAgICAgIEBmb3IgKGVyciBvZiByZXNvbHZlZEVycm9ycyhmaWVsZENvbnRyb2wpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgPGRpdj57eyBlcnIgfX08L2Rpdj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIH1cclxuICA8L2Rpdj5cclxufSBAZWxzZSBpZiAoY29udHJvbCkge1xyXG4gIDxkaXYgY2xhc3M9XCJ1aS1mb3JtLWZpZWxkLWF0b21cIj5cclxuICAgIEBpZiAoaXNTZWFyY2hhYmxlKSB7XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidWktZm9ybS1idWlsZGVyX19mdWxsLXdpZHRoXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxyXG4gICAgICAgIEBpZiAoZWZmZWN0aXZlTGFiZWwpIHtcclxuICAgICAgICAgIDxtYXQtbGFiZWw+e3sgZWZmZWN0aXZlTGFiZWwgfX08L21hdC1sYWJlbD5cclxuICAgICAgICB9XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJzZWxlY3RBdXRvU3RhbmRhbG9uZVwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZWZmZWN0aXZlUGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIlxyXG4gICAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPG1hdC1hdXRvY29tcGxldGUgI3NlbGVjdEF1dG9TdGFuZGFsb25lPVwibWF0QXV0b2NvbXBsZXRlXCIgW2Rpc3BsYXlXaXRoXT1cImRpc3BsYXlXaXRoXCI+XHJcbiAgICAgICAgICBAZm9yIChvcHQgb2YgZWZmZWN0aXZlT3B0aW9uczsgdHJhY2sgb3B0LnZhbHVlKSB7XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJvcHQudmFsdWVcIiBbZGlzYWJsZWRdPVwib3B0LmRpc2FibGVkXCI+XHJcbiAgICAgICAgICAgICAgQGlmIChvcHQuaWNvbikge1xyXG4gICAgICAgICAgICAgICAgPGx1Y2lkZS1pY29uIFtuYW1lXT1cIm9wdC5pY29uXCIgW3NpemVdPVwiMTZcIiBjbGFzcz1cInVpLWZvcm0tYnVpbGRlcl9fb3B0aW9uLWljb25cIiAvPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB7eyBvcHQubGFiZWwgfX1cclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgICAgICA8bWF0LWVycm9yPlxyXG4gICAgICAgICAgQGZvciAoZXJyIG9mIHJlc29sdmVkRXJyb3JzKGNvbnRyb2wpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgPGRpdj57eyBlcnIgfX08L2Rpdj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInVpLWZvcm0tYnVpbGRlcl9fZnVsbC13aWR0aFwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cclxuICAgICAgICBAaWYgKGVmZmVjdGl2ZUxhYmVsKSB7XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPnt7IGVmZmVjdGl2ZUxhYmVsIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDxtYXQtc2VsZWN0IFtmb3JtQ29udHJvbF09XCJjb250cm9sXCIgW3BsYWNlaG9sZGVyXT1cImVmZmVjdGl2ZVBsYWNlaG9sZGVyXCI+XHJcbiAgICAgICAgICBAaWYgKHNob3dFbXB0eU9wdGlvbikge1xyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwibnVsbFwiPi0tPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGZvciAob3B0IG9mIGVmZmVjdGl2ZU9wdGlvbnM7IHRyYWNrIG9wdC52YWx1ZSkge1xyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwib3B0LnZhbHVlXCIgW2Rpc2FibGVkXT1cIm9wdC5kaXNhYmxlZFwiPlxyXG4gICAgICAgICAgICAgIEBpZiAob3B0Lmljb24pIHtcclxuICAgICAgICAgICAgICAgIDxsdWNpZGUtaWNvbiBbbmFtZV09XCJvcHQuaWNvblwiIFtzaXplXT1cIjE2XCIgY2xhc3M9XCJ1aS1mb3JtLWJ1aWxkZXJfX29wdGlvbi1pY29uXCIgLz5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAge3sgb3B0LmxhYmVsIH19XHJcbiAgICAgICAgICAgICAgQGlmIChvcHQudG9vbHRpcCkge1xyXG4gICAgICAgICAgICAgICAgPGx1Y2lkZS1pY29uXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJpbmZvXCJcclxuICAgICAgICAgICAgICAgICAgW3NpemVdPVwiMTRcIlxyXG4gICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJvcHQudG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidWktZm9ybS1idWlsZGVyX19vcHRpb24taW5mb1wiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICA8bWF0LWVycm9yPlxyXG4gICAgICAgICAgQGZvciAoZXJyIG9mIHJlc29sdmVkRXJyb3JzKGNvbnRyb2wpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgPGRpdj57eyBlcnIgfX08L2Rpdj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIH1cclxuICA8L2Rpdj5cclxufVxyXG4iXX0=
|
|
@@ -365,6 +365,12 @@ export class UiSpecificaTerritorialeComponent {
|
|
|
365
365
|
}
|
|
366
366
|
return value;
|
|
367
367
|
}
|
|
368
|
+
emitFormValueIfReady() {
|
|
369
|
+
if (!this.isInitializing && this.tipologicheLoaded) {
|
|
370
|
+
this.onChange(this.form.getRawValue());
|
|
371
|
+
this.notifyValidationChange();
|
|
372
|
+
}
|
|
373
|
+
}
|
|
368
374
|
// ─── Subscriptions ──────────────────────────────────────────────
|
|
369
375
|
setupFormSubscriptions() {
|
|
370
376
|
// Subscription per i cambiamenti territoriali (nazione/provincia/comune)
|
|
@@ -383,14 +389,13 @@ export class UiSpecificaTerritorialeComponent {
|
|
|
383
389
|
this.handleTerritorialChanges(nazioneId, provinciaId, comuneId);
|
|
384
390
|
}
|
|
385
391
|
});
|
|
386
|
-
// Subscription per tutti i cambiamenti del form
|
|
392
|
+
// Subscription per tutti i cambiamenti del form.
|
|
393
|
+
// getRawValue(): i campi disabilitati (es. CAP auto-selezionato, nazione con italyByDefault)
|
|
394
|
+
// non compaiono in form.value ma devono essere propagati al form parent.
|
|
387
395
|
this.form.valueChanges
|
|
388
396
|
.pipe(takeUntil(this.destroy$), distinctUntilChanged((prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)))
|
|
389
|
-
.subscribe((
|
|
390
|
-
|
|
391
|
-
this.onChange(formValue);
|
|
392
|
-
this.notifyValidationChange();
|
|
393
|
-
}
|
|
397
|
+
.subscribe(() => {
|
|
398
|
+
this.emitFormValueIfReady();
|
|
394
399
|
});
|
|
395
400
|
this.cdr.detectChanges();
|
|
396
401
|
}
|
|
@@ -419,6 +424,7 @@ export class UiSpecificaTerritorialeComponent {
|
|
|
419
424
|
this.filteredCaps = [];
|
|
420
425
|
}
|
|
421
426
|
this.applyFieldsDisabledState();
|
|
427
|
+
this.emitFormValueIfReady();
|
|
422
428
|
}
|
|
423
429
|
async updateFilteredComuni(provinciaId) {
|
|
424
430
|
if (!provinciaId) {
|
|
@@ -645,4 +651,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
645
651
|
}], disabled: [{
|
|
646
652
|
type: Input
|
|
647
653
|
}] } });
|
|
648
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lmaWNhLXRlcnJpdG9yaWFsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy11aS1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0tYnVpbGRlci9zdWItY29tcG9uZW50cy9zcGVjaWZpY2EtdGVycml0b3JpYWxlL3NwZWNpZmljYS10ZXJyaXRvcmlhbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctdWktc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWJ1aWxkZXIvc3ViLWNvbXBvbmVudHMvc3BlY2lmaWNhLXRlcnJpdG9yaWFsZS9zcGVjaWZpY2EtdGVycml0b3JpYWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFVBQVUsRUFLVixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUlMLGlCQUFpQixFQUNqQixhQUFhLEVBSWIsVUFBVSxFQUVWLFNBQVMsRUFDVCxtQkFBbUIsR0FDcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7OztBQWdCekQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCRztBQXFCSCxNQUFNLE9BQU8sZ0NBQWdDO0lBdUMzQyxZQUNtQixFQUFlLEVBQ2Ys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LFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBmb3J3YXJkUmVmLFxyXG4gIE9uSW5pdCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgSW5qZWN0b3IsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXHJcbiAgRm9ybUJ1aWxkZXIsXHJcbiAgRm9ybUdyb3VwLFxyXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIE5HX1ZBTElEQVRPUlMsXHJcbiAgRm9ybUNvbnRyb2wsXHJcbiAgQWJzdHJhY3RDb250cm9sLFxyXG4gIFZhbGlkYXRpb25FcnJvcnMsXHJcbiAgVmFsaWRhdG9ycyxcclxuICBWYWxpZGF0b3IsXHJcbiAgTmdDb250cm9sLFxyXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCB0YWtlVW50aWwsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBzdGFydFdpdGgsIG1hcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IFVpTG9jYXRpb25TZXJ2aWNlLCBVaU5hemlvbmUsIFVpUHJvdmluY2lhLCBVaUNvbXVuZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVaUxvY2F0aW9uQ29uZmlnLCBVaUxvY2F0aW9uVmFsdWUgfSBmcm9tICcuLi8uLi90eXBlcy90ZXJyaXRvcmlhbGUudHlwZXMnO1xyXG5cclxuLyoqXHJcbiAqIEludGVyZmFjY2lhIGludGVybmEgcGVyIGkgQ0FQIG5lbCBjb21wb25lbnRlLlxyXG4gKi9cclxuaW50ZXJmYWNlIFVpQ2FwT3B0aW9uIHtcclxuICAvKiogSUQgZGVsIENBUC4gKi9cclxuICBpZDogc3RyaW5nO1xyXG4gIC8qKiBDb2RpY2UgQ0FQIHZpc3VhbGl6emF0by4gKi9cclxuICBjb2RpY2U6IHN0cmluZztcclxuICAvKiogSUQgZGVsIGNvbXVuZSBhc3NvY2lhdG8uICovXHJcbiAgY29tdW5lSWQ6IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudGUgc3RhbmRhbG9uZSBwZXIgbGEgc2VsZXppb25lIGRpIGRhdGkgZ2VvZ3JhZmljaSBpdGFsaWFuaSBvIGVzdGVyaS5cclxuICpcclxuICogU3VwcG9ydGEgZHVlIG1vZGFsaXRhOlxyXG4gKiAtICoqSXRhbGlhKio6IHNlbGV6aW9uZSBhIGNhc2NhdGEgbmF6aW9uZSAtPiBwcm92aW5jaWEgLT4gY29tdW5lIC0+IENBUFxyXG4gKiAtICoqRXN0ZXJvKio6IHNlbGV6aW9uZSBuYXppb25lICsgY2FtcG8gdGVzdG8gbGliZXJvIHBlciBpbCBjb211bmVcclxuICpcclxuICogQ2FtcGkgb3B6aW9uYWxpIGNvbmZpZ3VyYWJpbGk6IGluZGlyaXp6bywgbWFpbCwgUEVDLCB0ZWxlZm9uby5cclxuICpcclxuICogSW1wbGVtZW50YSBgQ29udHJvbFZhbHVlQWNjZXNzb3JgIGUgYFZhbGlkYXRvcmAgcGVyIGwnaW50ZWdyYXppb25lXHJcbiAqIGRpcmV0dGEgY29uIEFuZ3VsYXIgUmVhY3RpdmUgRm9ybXMuXHJcbiAqXHJcbiAqIFV0aWxpenphIGRhdGkgZGEgSlNPTiBzdGF0aWNpIHRyYW1pdGUgYFVpTG9jYXRpb25TZXJ2aWNlYFxyXG4gKiAobmVzc3VuYSBkaXBlbmRlbnphIGFsIGJhY2tlbmQpLlxyXG4gKlxyXG4gKiBAc2VsZWN0b3IgdWktc3BlY2lmaWNhLXRlcnJpdG9yaWFsZVxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGBodG1sXHJcbiAqIDx1aS1zcGVjaWZpY2EtdGVycml0b3JpYWxlXHJcbiAqICAgW2Zvcm1Db250cm9sXT1cIm15Q29udHJvbFwiXHJcbiAqICAgW2NvbmZpZ109XCJ7IGl0YWx5QnlEZWZhdWx0OiB0cnVlLCBjYXA6IHsgc2hvdzogdHJ1ZSB9IH1cIlxyXG4gKiAvPlxyXG4gKiBgYGBcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndWktc3BlY2lmaWNhLXRlcnJpdG9yaWFsZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZSwgTWF0Rm9ybUZpZWxkTW9kdWxlLCBNYXRTZWxlY3RNb2R1bGUsIE1hdElucHV0TW9kdWxlXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFVpU3BlY2lmaWNhVGVycml0b3JpYWxlQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBVaVNwZWNpZmljYVRlcnJpdG9yaWFsZUNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NwZWNpZmljYS10ZXJyaXRvcmlhbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9zcGVjaWZpY2EtdGVycml0b3JpYWxlLmNvbXBvbmVudC5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFVpU3BlY2lmaWNhVGVycml0b3JpYWxlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIC8qKiBDb25maWd1cmF6aW9uZSBkZWwgY29tcG9uZW50ZS4gKi9cclxuICBASW5wdXQoKSBjb25maWc6IFVpTG9jYXRpb25Db25maWcgPSB7fTtcclxuXHJcbiAgLyoqIFN0YXRvIGRpc2FiaWxpdGF0byBnbG9iYWxlLiAqL1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gIC8vIOKUgOKUgOKUgCBQYXR0ZXJuIGRpIHZhbGlkYXppb25lIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gIHByaXZhdGUgcmVhZG9ubHkgRU1BSUxfUEFUVEVSTiA9IC9eW2EtekEtWjAtOS5fJSstXStAW2EtekEtWjAtOS4tXStcXC5bYS16QS1aXXsyLH0kLztcclxuICBwcml2YXRlIHJlYWRvbmx5IFBFQ19QQVRURVJOID0gL15bYS16QS1aMC05Ll8lKy1dK0BbYS16QS1aMC05Li1dK1xcLlthLXpBLVpdezIsfSQvO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgUEhPTkVfUEFUVEVSTiA9IC9eWytdP1swLTlcXHNcXC0oKV17NiwxNn0kLztcclxuXHJcbiAgLy8g4pSA4pSA4pSAIFN0YXRvIGludGVybm8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgZm9ybSE6IEZvcm1Hcm91cDtcclxuICBpc0l0YWxpYW4gPSBmYWxzZTtcclxuICBpc0ZvcmVpZ24gPSBmYWxzZTtcclxuICBuZ0NvbnRyb2whOiBOZ0NvbnRyb2w7XHJcblxyXG4gIC8qKiBFbGVuY28gbmF6aW9uaSBkaXNwb25pYmlsaS4gKi9cclxuICBuYXppb25pOiBVaU5hemlvbmVbXSA9IFtdO1xyXG4gIC8qKiBFbGVuY28gcHJvdmluY2UgZGlzcG9uaWJpbGkuICovXHJcbiAgcHJvdmluY2U6IFVpUHJvdmluY2lhW10gPSBbXTtcclxuICAvKiogQ29tdW5pIGZpbHRyYXRpIHBlciBsYSBwcm92aW5jaWEgc2VsZXppb25hdGEuICovXHJcbiAgZmlsdGVyZWRDb211bmk6IFVpQ29tdW5lW10gPSBbXTtcclxuICAvKiogQ0FQIGZpbHRyYXRpIHBlciBpbCBjb211bmUgc2VsZXppb25hdG8uICovXHJcbiAgZmlsdGVyZWRDYXBzOiBVaUNhcE9wdGlvbltdID0gW107XHJcblxyXG4gIC8qKiBQcm9taXNlIGRpIGluaXppYWxpenphemlvbmUgKHV0aWxlIHBlciB0ZXN0IGUgdGFibGUtdGVycml0b3JpYWxlKS4gKi9cclxuICBpbml0aWFsaXphdGlvblByb21pc2U6IFByb21pc2U8dm9pZD4gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBvbkNoYW5nZSA9IChfdmFsdWU6IFVpTG9jYXRpb25WYWx1ZSkgPT4ge307XHJcbiAgcHJpdmF0ZSBvblRvdWNoZWQgPSAoKSA9PiB7fTtcclxuICBwcml2YXRlIG9uVmFsaWRhdG9yQ2hhbmdlID0gKCkgPT4ge307XHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zSW5pdGlhbGl6ZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIHBlbmRpbmdXcml0ZVZhbHVlOiBVaUxvY2F0aW9uVmFsdWUgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIGlzSW5pdGlhbGl6aW5nID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSB0aXBvbG9naWNoZUxvYWRlZCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2F0aW9uU2VydmljZTogVWlMb2NhdGlvblNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICB0aGlzLmluaXRpYWxpemVGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0dXBOZ0NvbnRyb2woKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6YXRpb25Qcm9taXNlID0gdGhpcy5pbml0aWFsaXplQ29tcG9uZW50KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgLy8g4pSA4pSA4pSAIENvbnRyb2xWYWx1ZUFjY2Vzc29yIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBVaUxvY2F0aW9uVmFsdWUgfCBudWxsKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMudGlwb2xvZ2ljaGVMb2FkZWQpIHtcclxuICAgICAgdGhpcy5wZW5kaW5nV3JpdGVWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnByb2Nlc3NXcml0ZVZhbHVlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogVWlMb2NhdGlvblZhbHVlKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gKHZhbHVlKSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5pc0luaXRpYWxpemluZykgZm4odmFsdWUpO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblZhbGlkYXRvckNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm0uZW5hYmxlKCk7XHJcbiAgICAgIHRoaXMuYXBwbHlGaWVsZHNEaXNhYmxlZFN0YXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyDilIDilIDilIAgVmFsaWRhdG9yIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG5cclxuICB2YWxpZGF0ZShfY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgaWYgKCF0aGlzLmZvcm0pIHJldHVybiBudWxsO1xyXG5cclxuICAgIGNvbnN0IGVycm9yczogVmFsaWRhdGlvbkVycm9ycyA9IHt9O1xyXG4gICAgY29uc3QgaXNOYXppb25lUmVxdWlyZWQgPSB0aGlzLmNvbmZpZy5uYXppb25lPy5yZXF1aXJlZCAhPT0gZmFsc2U7XHJcbiAgICBjb25zdCBpc1Byb3ZpbmNpYVJlcXVpcmVkID0gdGhpcy5jb25maWcucHJvdmluY2lhPy5yZXF1aXJlZCAhPT0gZmFsc2U7XHJcbiAgICBjb25zdCBpc0NvbXVuZVJlcXVpcmVkID0gdGhpcy5jb25maWcuY29tdW5lPy5yZXF1aXJlZCAhPT0gZmFsc2U7XHJcbiAgICBjb25zdCBpc0NvbXVuZUVzdGVyb1JlcXVpcmVkID0gdGhpcy5jb25maWcuY29tdW5lRXN0ZXJvPy5yZXF1aXJlZCAhPT0gZmFsc2U7XHJcblxyXG4gICAgLy8gVmFsaWRhemlvbmUgbmF6aW9uZVxyXG4gICAgaWYgKGlzTmF6aW9uZVJlcXVpcmVkICYmICF0aGlzLmZvcm0uZ2V0KCduYXppb25lSWQnKT8udmFsdWUpIHtcclxuICAgICAgZXJyb3JzWyduYXppb25lUmVxdWlyZWQnXSA9ICdTZWxlemlvbmEgdW5hIG5hemlvbmUnO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFZhbGlkYXppb25pIEl0YWxpYVxyXG4gICAgaWYgKHRoaXMuaXNJdGFsaWFuKSB7XHJcbiAgICAgIGlmIChpc1Byb3ZpbmNpYVJlcXVpcmVkICYmICF0aGlzLmZvcm0uZ2V0KCdwcm92aW5jaWFJZCcpPy52YWx1ZSkge1xyXG4gICAgICAgIGVycm9yc1sncHJvdmluY2lhUmVxdWlyZWQnXSA9ICdTZWxlemlvbmEgdW5hIHByb3ZpbmNpYSc7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGlzQ29tdW5lUmVxdWlyZWQgJiYgIXRoaXMuZm9ybS5nZXQoJ2NvbXVuZUlkJyk/LnZhbHVlKSB7XHJcbiAgICAgICAgZXJyb3JzWydjb211bmVSZXF1aXJlZCddID0gJ1NlbGV6aW9uYSB1biBjb211bmUnO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmNvbmZpZy5jYXA/LnJlcXVpcmVkICYmIHRoaXMuc2hvd0NBUCAmJiAhdGhpcy5mb3JtLmdldCgnY2FwJyk/LnZhbHVlKSB7XHJcbiAgICAgICAgZXJyb3JzWydjYXBSZXF1aXJlZCddID0gJ0luc2VyaXNjaSBpbCBDQVAnO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmNvbmZpZy5pbmRpcml6em8/LnJlcXVpcmVkICYmIHRoaXMuc2hvd0luZGlyaXp6bykge1xyXG4gICAgICAgIGNvbnN0IHYgPSB0aGlzLmZvcm0uZ2V0KCdpbmRpcml6em8nKT8udmFsdWU7XHJcbiAgICAgICAgaWYgKCF2IHx8IHYudHJpbSgpID09PSAnJykgZXJyb3JzWydpbmRpcml6em9SZXF1aXJlZCddID0gXCJJbnNlcmlzY2kgbCdpbmRpcml6em9cIjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnZhbGlkYXRlQ29udGFjdEZpZWxkcyhlcnJvcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFZhbGlkYXppb25pIGVzdGVyb1xyXG4gICAgaWYgKHRoaXMuaXNGb3JlaWduKSB7XHJcbiAgICAgIGNvbnN0IGNvbXVuZUVzdGVybyA9IHRoaXMuZm9ybS5nZXQoJ2NvbXVuZUVzdGVybycpPy52YWx1ZTtcclxuICAgICAgaWYgKGlzQ29tdW5lRXN0ZXJvUmVxdWlyZWQgJiYgKCFjb211bmVFc3Rlcm8gfHwgY29tdW5lRXN0ZXJvLnRyaW0oKSA9PT0gJycpKSB7XHJcbiAgICAgICAgZXJyb3JzWydjb211bmVFc3Rlcm9SZXF1aXJlZCddID0gJ0luc2VyaXNjaSBpbCBjb211bmUgZXN0ZXJvJztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBPYmplY3Qua2V5cyhlcnJvcnMpLmxlbmd0aCA+IDAgPyBlcnJvcnMgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8g4pSA4pSA4pSAIEFQSSBwdWJibGljYSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuXHJcbiAgLyoqIE1hcmNhIHR1dHRpIGkgY29udHJvbGxpIGludGVybmkgY29tZSB0b3VjaGVkLiAqL1xyXG4gIG1hcmtBc1RvdWNoZWQoKTogdm9pZCB7XHJcbiAgICBPYmplY3QudmFsdWVzKHRoaXMuZm9ybS5jb250cm9scykuZm9yRWFjaCgoYykgPT4gYy5tYXJrQXNUb3VjaGVkKCkpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFZlcmlmaWNhIHNlIG1vc3RyYXJlIGdsaSBlcnJvcmkgcGVyIHVuIGNhbXBvIGludGVybm8uICovXHJcbiAgc2hvdWxkU2hvd0ZpZWxkRXJyb3JzKGZpZWxkS2V5OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KGZpZWxkS2V5KTtcclxuICAgIHJldHVybiAhIShjb250cm9sPy5pbnZhbGlkICYmIChjb250cm9sLnRvdWNoZWQgfHwgY29udHJvbC5kaXJ0eSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEVycm9yaSBkaSB1biBjYW1wbyBpbnRlcm5vIGNvbWUgYXJyYXkgZGkgbWVzc2FnZ2kuICovXHJcbiAgZ2V0RmllbGRFcnJvcnMoZmllbGRLZXk6IHN0cmluZyk6IHN0cmluZ1tdIHtcclxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KGZpZWxkS2V5KTtcclxuICAgIGlmICghY29udHJvbD8uZXJyb3JzKSByZXR1cm4gW107XHJcbiAgICBjb25zdCBtZXNzYWdlczogc3RyaW5nW10gPSBbXTtcclxuICAgIGNvbnN0IGVycnMgPSBjb250cm9sLmVycm9ycztcclxuICAgIGlmIChlcnJzWydyZXF1aXJlZCddKSBtZXNzYWdlcy5wdXNoKCdDYW1wbyBvYmJsaWdhdG9yaW8nKTtcclxuICAgIGlmIChlcnJzWydwYXR0ZXJuJ10pIG1lc3NhZ2VzLnB1c2goJ0Zvcm1hdG8gbm9uIHZhbGlkbycpO1xyXG4gICAgaWYgKGVycnNbJ2VtYWlsJ10pIG1lc3NhZ2VzLnB1c2goJ0VtYWlsIG5vbiB2YWxpZGEnKTtcclxuICAgIHJldHVybiBtZXNzYWdlcztcclxuICB9XHJcblxyXG4gIC8qKiBIYW5kbGVyIGJsdXIgcGVyIHByb3BhZ2FyZSBpbCB0b3VjaGVkLiAqL1xyXG4gIG9uQmx1cigpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgfVxyXG5cclxuICAvKiogUmVzZXR0YSBsbyBzdGF0byBkZWwgY29tcG9uZW50ZS4gKi9cclxuICByZXNldENvbXBvbmVudFN0YXRlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0l0YWxpYW4gPSBmYWxzZTtcclxuICAgIHRoaXMuaXNGb3JlaWduID0gZmFsc2U7XHJcbiAgICB0aGlzLmZpbHRlcmVkQ29tdW5pID0gW107XHJcbiAgICB0aGlzLmZpbHRlcmVkQ2FwcyA9IFtdO1xyXG4gICAgdGhpcy5mb3JtLmdldCgnY29tdW5lSWQnKT8uZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdjYXAnKT8uZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICB0aGlzLnVwZGF0ZVZhbGlkYXRvcnMoKTtcclxuICB9XHJcblxyXG4gIC8vIOKUgOKUgOKUgCBHZXR0ZXIgY2FsY29sYXRpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG5cclxuICAvKiogTGFiZWxzIHBlcnNvbmFsaXp6YWJpbGkgY29uIHZhbG9yaSBkaSBkZWZhdWx0LiAqL1xyXG4gIGdldCBsYWJlbHMoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuYXppb25lOiB0aGlzLmNvbmZpZy5sYWJlbHM/Lm5hemlvbmUgfHwgJ05hemlvbmUnLFxyXG4gICAgICBwcm92aW5jaWE6IHRoaXMuY29uZmlnLmxhYmVscz8ucHJvdmluY2lhIHx8ICdQcm92aW5jaWEnLFxyXG4gICAgICBjb211bmU6IHRoaXMuY29uZmlnLmxhYmVscz8uY29tdW5lIHx8ICdDb211bmUnLFxyXG4gICAgICBjYXA6IHRoaXMuY29uZmlnLmxhYmVscz8uY2FwIHx8ICdDQVAnLFxyXG4gICAgICBpbmRpcml6em86IHRoaXMuY29uZmlnLmxhYmVscz8uaW5kaXJpenpvIHx8ICdJbmRpcml6em8nLFxyXG4gICAgICBjb211bmVFc3Rlcm86IHRoaXMuY29uZmlnLmxhYmVscz8uY29tdW5lRXN0ZXJvIHx8ICdDb211bmUgRXN0ZXJvJyxcclxuICAgICAgbWFpbDogdGhpcy5jb25maWcubGFiZWxzPy5tYWlsIHx8ICdFbWFpbCcsXHJcbiAgICAgIHBlYzogdGhpcy5jb25maWcubGFiZWxzPy5wZWMgfHwgJ1BFQycsXHJcbiAgICAgIHRlbGVmb25vOiB0aGlzLmNvbmZpZy5sYWJlbHM/LnRlbGVmb25vIHx8ICdUZWxlZm9ubycsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhhc1ZhbGlkYXRpb25FcnJvcnMoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBleHRlcm5hbEludmFsaWQgPSAhIShcclxuICAgICAgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LmludmFsaWQgJiZcclxuICAgICAgKHRoaXMubmdDb250cm9sLmNvbnRyb2wudG91Y2hlZCB8fCB0aGlzLm5nQ29udHJvbC5jb250cm9sLmRpcnR5KVxyXG4gICAgKTtcclxuICAgIGlmIChleHRlcm5hbEludmFsaWQpIHJldHVybiB0cnVlO1xyXG5cclxuICAgIGNvbnN0IGlzSW50ZXJhY3RlZCA9XHJcbiAgICAgIHRoaXMuZm9ybT8udG91Y2hlZCB8fCB0aGlzLmZvcm0/LmRpcnR5IHx8IHRoaXMubmdDb250cm9sPy5jb250cm9sPy50b3VjaGVkIHx8IHRoaXMubmdDb250cm9sPy5jb250cm9sPy5kaXJ0eTtcclxuICAgIGlmIChpc0ludGVyYWN0ZWQpIHtcclxuICAgICAgcmV0dXJuICEhdGhpcy52YWxpZGF0ZShudWxsIGFzIGFueSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBnZXQgdmFsaWRhdGlvbkVycm9ycygpOiBzdHJpbmdbXSB7XHJcbiAgICAvLyBFcnJvcmkgZXN0ZXJuaSBkYWwgRm9ybUJ1aWxkZXJcclxuICAgIGlmICh0aGlzLm5nQ29udHJvbD8uY29udHJvbD8uZXJyb3JzKSB7XHJcbiAgICAgIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXTtcclxuICAgICAgaWYgKHRoaXMubmdDb250cm9sLmNvbnRyb2wuZXJyb3JzWydyZXF1aXJlZCddKSB7XHJcbiAgICAgICAgZXJyb3JzLnB1c2goJ0luaXppYSBzZWxlemlvbmFuZG8gbGEgbmF6aW9uZScpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkgcmV0dXJuIGVycm9ycztcclxuICAgIH1cclxuXHJcbiAgICAvLyBFcnJvcmkgaW50ZXJuaVxyXG4gICAgY29uc3QgaW50ZXJuYWxFcnJvcnMgPSB0aGlzLnZhbGlkYXRlKG51bGwgYXMgYW55KTtcclxuICAgIGlmICghaW50ZXJuYWxFcnJvcnMpIHJldHVybiBbXTtcclxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKGludGVybmFsRXJyb3JzKSBhcyBzdHJpbmdbXTtcclxuICB9XHJcblxyXG4gIGdldCBzaG93Q0FQKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmNhcD8uc2hvdyAhPT0gZmFsc2U7XHJcbiAgfVxyXG4gIGdldCBzaG93SW5kaXJpenpvKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmluZGlyaXp6bz8uc2hvdyAhPT0gZmFsc2U7XHJcbiAgfVxyXG4gIGdldCBzaG93TWFpbCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5tYWlsPy5zaG93ID09PSB0cnVlO1xyXG4gIH1cclxuICBnZXQgc2hvd1BFQygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5wZWM/LnNob3cgPT09IHRydWU7XHJcbiAgfVxyXG4gIGdldCBzaG93VGVsZWZvbm8oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWcudGVsZWZvbm8/LnNob3cgPT09IHRydWU7XHJcbiAgfVxyXG5cclxuICBnZXQgY2FwQ29sdW1ucygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmNhcD8uY29sdW1ucyB8fCA2O1xyXG4gIH1cclxuICBnZXQgaW5kaXJpenpvQ29sdW1ucygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmluZGlyaXp6bz8uY29sdW1ucyB8fCAxMjtcclxuICB9XHJcbiAgZ2V0IG1haWxDb2x1bW5zKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWcubWFpbD8uY29sdW1ucyB8fCA2O1xyXG4gIH1cclxuICBnZXQgcGVjQ29sdW1ucygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnBlYz8uY29sdW1ucyB8fCA2O1xyXG4gIH1cclxuICBnZXQgdGVsZWZvbm9Db2x1bW5zKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWcudGVsZWZvbm8/LmNvbHVtbnMgfHwgNjtcclxuICB9XHJcblxyXG4gIGdldCBpc0l0YWx5QnlEZWZhdWx0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLml0YWx5QnlEZWZhdWx0ID09PSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzQ2FwRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBjb211bmVJZCA9IHRoaXMuZm9ybS5nZXQoJ2NvbXVuZUlkJyk/LnZhbHVlO1xyXG4gICAgcmV0dXJuICFjb211bmVJZCB8fCB0aGlzLmZpbHRlcmVkQ2Fwcy5sZW5ndGggPT09IDAgfHwgdGhpcy5maWx0ZXJlZENhcHMubGVuZ3RoID09PSAxO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzTmF6aW9uZURpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5jb25maWcuaXRhbHlCeURlZmF1bHQgPT09IHRydWU7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNSZXF1aXJlZCgpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLmNvbmZpZy5uYXppb25lPy5yZXF1aXJlZCAhPT0gZmFsc2UpIHJldHVybiB0cnVlO1xyXG4gICAgaWYgKCF0aGlzLm5nQ29udHJvbD8uY29udHJvbCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgY29uc3QgdmFsaWRhdG9yID0gdGhpcy5uZ0NvbnRyb2wuY29udHJvbC52YWxpZGF0b3I7XHJcbiAgICBpZiAodmFsaWRhdG9yKSB7XHJcbiAgICAgIGNvbnN0IGVycm9ycyA9IHZhbGlkYXRvcih7fSBhcyBBYnN0cmFjdENvbnRyb2wpO1xyXG4gICAgICByZXR1cm4gISFlcnJvcnM/LlsncmVxdWlyZWQnXTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8vIOKUgOKUgOKUgCBJbml6aWFsaXp6YXppb25lIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG5cclxuICBwcml2YXRlIGFzeW5jIGluaXRpYWxpemVDb21wb25lbnQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0cnkge1xyXG4gICAgICBhd2FpdCB0aGlzLmxvYWRMb2NhdGlvbkRhdGEoKTtcclxuICAgICAgdGhpcy50aXBvbG9naWNoZUxvYWRlZCA9IHRydWU7XHJcblxyXG4gICAgICBpZiAodGhpcy5wZW5kaW5nV3JpdGVWYWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMucHJvY2Vzc1dyaXRlVmFsdWUodGhpcy5wZW5kaW5nV3JpdGVWYWx1ZSk7XHJcbiAgICAgICAgdGhpcy5wZW5kaW5nV3JpdGVWYWx1ZSA9IG51bGw7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5hcHBseUluaXRpYWxDb25maWd1cmF0aW9uKCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICghdGhpcy5zdWJzY3JpcHRpb25zSW5pdGlhbGl6ZWQpIHtcclxuICAgICAgICB0aGlzLnNldHVwRm9ybVN1YnNjcmlwdGlvbnMoKTtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnNJbml0aWFsaXplZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tVaVNwZWNpZmljYVRlcnJpdG9yaWFsZV0gRXJyb3JlIGluaXppYWxpenphemlvbmU6JywgZXJyb3IpO1xyXG4gICAgICB0aGlzLnRpcG9sb2dpY2hlTG9hZGVkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRpYWxpemVGb3JtKCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIG5hemlvbmVJZDogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICBwcm92aW5jaWFJZDogW251bGxdLFxyXG4gICAgICBjb211bmVJZDogW3sgdmFsdWU6IG51bGwsIGRpc2FibGVkOiB0cnVlIH1dLFxyXG4gICAgICBjYXA6IFt7IHZhbHVlOiBudWxsLCBkaXNhYmxlZDogdHJ1ZSB9XSxcclxuICAgICAgY29tdW5lRXN0ZXJvOiBbbnVsbF0sXHJcbiAgICAgIGluZGlyaXp6bzogW251bGxdLFxyXG4gICAgICBtYWlsOiBbbnVsbF0sXHJcbiAgICAgIHBlYzogW251bGxdLFxyXG4gICAgICB0ZWxlZm9ubzogW251bGxdLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwTmdDb250cm9sKCk6IHZvaWQge1xyXG4gICAgY29uc3QgbmdDb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sLCBudWxsLCB7IHNlbGY6IHRydWUsIG9wdGlvbmFsOiB0cnVlIH0pO1xyXG4gICAgaWYgKG5nQ29udHJvbCkge1xyXG4gICAgICB0aGlzLm5nQ29udHJvbCA9IG5nQ29udHJvbDtcclxuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGxvYWRMb2NhdGlvbkRhdGEoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCBbbmF6aW9uaVJlc3VsdCwgcHJvdmluY2VSZXN1bHRdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xyXG4gICAgICB0aGlzLmxvY2F0aW9uU2VydmljZS5nZXROYXppb25pKCksXHJcbiAgICAgIHRoaXMubG9jYXRpb25TZXJ2aWNlLmdldFByb3ZpbmNlKCksXHJcbiAgICBdKTtcclxuICAgIHRoaXMubmF6aW9uaSA9IG5hemlvbmlSZXN1bHQuZGF0YTtcclxuICAgIHRoaXMucHJvdmluY2UgPSBwcm92aW5jZVJlc3VsdC5jb250ZW50O1xyXG4gIH1cclxuXHJcbiAgLy8g4pSA4pSA4pSAIEdlc3Rpb25lIHdyaXRlVmFsdWUg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcblxyXG4gIHByaXZhdGUgcHJvY2Vzc1dyaXRlVmFsdWUodmFsdWU6IFVpTG9jYXRpb25WYWx1ZSB8IG51bGwpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNJbml0aWFsaXppbmcgPSB0cnVlO1xyXG5cclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICBjb25zdCBwcm9jZXNzZWRWYWx1ZSA9IHRoaXMuaGFuZGxlSXRhbHlCeURlZmF1bHRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHByb2Nlc3NlZFZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcblxyXG4gICAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudFN0YXRlKHByb2Nlc3NlZFZhbHVlKS50aGVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLmFwcGx5SW5pdGlhbENvbmZpZ3VyYXRpb24oKTtcclxuICAgICAgICB0aGlzLmlzSW5pdGlhbGl6aW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUocHJvY2Vzc2VkVmFsdWUsIHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xyXG4gICAgICAgIHRoaXMuaGFuZGxlVGVycml0b3JpYWxDaGFuZ2VzKFxyXG4gICAgICAgICAgcHJvY2Vzc2VkVmFsdWUubmF6aW9uZUlkIHx8ICcnLFxyXG4gICAgICAgICAgcHJvY2Vzc2VkVmFsdWUucHJvdmluY2lhSWQgfHwgJycsXHJcbiAgICAgICAgICBwcm9jZXNzZWRWYWx1ZS5jb211bmVJZCB8fCAnJyxcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMudXBkYXRlVmFsaWRhdG9ycygpO1xyXG4gICAgICAgIE9iamVjdC52YWx1ZXModGhpcy5mb3JtLmNvbnRyb2xzKS5mb3JFYWNoKChjdHJsKSA9PiBjdHJsLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pKTtcclxuICAgICAgICB0aGlzLmZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybS5yZXNldCh1bmRlZmluZWQsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgdGhpcy5yZXNldENvbXBvbmVudFN0YXRlKCk7XHJcbiAgICAgIHRoaXMuYXBwbHlJbml0aWFsQ29uZmlndXJhdGlvbigpO1xyXG4gICAgICB0aGlzLmlzSW5pdGlhbGl6aW5nID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUl0YWx5QnlEZWZhdWx0VmFsdWUodmFsdWU6IFVpTG9jYXRpb25WYWx1ZSk6IFVpTG9jYXRpb25WYWx1ZSB7XHJcbiAgICBpZiAoIXRoaXMuY29uZmlnLml0YWx5QnlEZWZhdWx0KSByZXR1cm4gdmFsdWU7XHJcbiAgICBpZiAodmFsdWUubmF6aW9uZUlkICYmIHZhbHVlLm5hemlvbmVJZCAhPT0gJ0lUQScpIHtcclxuICAgICAgcmV0dXJuIHsgLi4udmFsdWUsIG5hemlvbmVJZDogJ0lUQScsIGNvbXVuZUVzdGVybzogdW5kZWZpbmVkIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvLyDilIDilIDilIAgU3Vic2NyaXB0aW9ucyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuXHJcbiAgcHJpdmF0ZSBzZXR1cEZvcm1TdWJzY3JpcHRpb25zKCk6IHZvaWQge1xyXG4gICAgLy8gU3Vic2NyaXB0aW9uIHBlciBpIGNhbWJpYW1lbnRpIHRlcnJpdG9yaWFsaSAobmF6aW9uZS9wcm92aW5jaWEvY29tdW5lKVxyXG4gICAgY29tYmluZUxhdGVzdChbXHJcbiAgICAgIHRoaXMuZm9ybVxyXG4gICAgICAgIC5nZXQoJ25hemlvbmVJZCcpIVxyXG4gICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5mb3JtLmdldCgnbmF6aW9uZUlkJykhLnZhbHVlKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXHJcbiAgICAgIHRoaXMuZm9ybVxyXG4gICAgICAgIC5nZXQoJ3Byb3ZpbmNpYUlkJykhXHJcbiAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLmZvcm0uZ2V0KCdwcm92aW5jaWFJZCcpIS52YWx1ZSksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdjb211bmVJZCcpIS52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5mb3JtLmdldCgnY29tdW5lSWQnKSEudmFsdWUpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcclxuICAgIF0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcclxuICAgICAgICBtYXAoKFtuYXppb25lSWQsIHByb3ZpbmNpYUlkLCBjb211bmVJZF0pID0+ICh7IG5hemlvbmVJZCwgcHJvdmluY2lhSWQsIGNvbXVuZUlkIH0pKSxcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh7IG5hemlvbmVJZCwgcHJvdmluY2lhSWQsIGNvbXVuZUlkIH0pID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNJbml0aWFsaXppbmcgJiYgdGhpcy50aXBvbG9naWNoZUxvYWRlZCkge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVUZXJyaXRvcmlhbENoYW5nZXMobmF6aW9uZUlkLCBwcm92aW5jaWFJZCwgY29tdW5lSWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgLy8gU3Vic2NyaXB0aW9uIHBlciB0dXR0aSBpIGNhbWJpYW1lbnRpIGRlbCBmb3JtXHJcbiAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJldiwgY3VycikgPT4gSlNPTi5zdHJpbmdpZnkocHJldikgPT09IEpTT04uc3RyaW5naWZ5KGN1cnIpKSxcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChmb3JtVmFsdWUpID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNJbml0aWFsaXppbmcgJiYgdGhpcy50aXBvbG9naWNoZUxvYWRlZCkge1xyXG4gICAgICAgICAgdGhpcy5vbkNoYW5nZShmb3JtVmFsdWUpO1xyXG4gICAgICAgICAgdGhpcy5ub3RpZnlWYWxpZGF0aW9uQ2hhbmdlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICAvLyDilIDilIDilIAgTG9naWNhIHRlcnJpdG9yaWFsZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVUZXJyaXRvcmlhbENoYW5nZXMobmF6aW9uZUlkOiBzdHJpbmcsIHByb3ZpbmNpYUlkOiBzdHJpbmcsIGNvbXVuZUlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMudXBkYXRlTmF0aW9uYWxpdHlTdGF0ZShuYXppb25lSWQpO1xyXG4gICAgYXdhaXQgdGhpcy51cGRhdGVUZXJyaXRvcmlhbERhdGEocHJvdmluY2lhSWQsIGNvbXVuZUlkKTtcclxuICAgIHRoaXMudXBkYXRlVmFsaWRhdG9ycygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVOYXRpb25hbGl0eVN0YXRlKG5hemlvbmVJZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBuYXppb25lID0gdGhpcy5uYXppb25pLmZpbmQoKG4pID0+IG4uY29kU3RhdG9QayA9PT0gbmF6aW9uZUlkKTtcclxuICAgIHRoaXMuaXNJdGFsaWFuID0gbmF6aW9uZT8uY29kU3RhdG9QayA9PT0gJ0lUQSc7XHJcbiAgICB0aGlzLmlzRm9yZWlnbiA9ICEhKG5hemlvbmUgJiYgbmF6aW9uZS5jb2RTdGF0b1BrICE9PSAnSVRBJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZVRlcnJpdG9yaWFsRGF0YShwcm92aW5jaWFJZDogc3RyaW5nLCBjb211bmVJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5pc0l0YWxpYW4gJiYgcHJvdmluY2lhSWQpIHtcclxuICAgICAgYXdhaXQgdGhpcy51cGRhdGVGaWx0ZXJlZENvbXVuaShwcm92aW5jaWFJZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkQ29tdW5pID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNJdGFsaWFuICYmIGNvbXVuZUlkKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMudXBkYXRlRmlsdGVyZWRDYXBzKGNvbXVuZUlkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRDYXBzID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hcHBseUZpZWxkc0Rpc2FibGVkU3RhdGUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlRmlsdGVyZWRDb211bmkocHJvdmluY2lhSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCFwcm92aW5jaWFJZCkge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkQ29tdW5pID0gW107XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRyeSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRDb211bmkgPSBhd2FpdCB0aGlzLmxvY2F0aW9uU2VydmljZS5nZXRDb211bmlCeVByb3ZpbmNpYShwcm92aW5jaWFJZCk7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRDb211bmVJZCA9IHRoaXMuZm9ybS5nZXQoJ2NvbXVuZUlkJyk/LnZhbHVlO1xyXG4gICAgICBpZiAoY3VycmVudENvbXVuZUlkICYmICF0aGlzLmZpbHRlcmVkQ29tdW5pLmZpbmQoKGMpID0+IGMuY29kaWNlQ29tdW5lUGsgPT09IGN1cnJlbnRDb211bmVJZCkpIHtcclxuICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IGNvbXVuZUlkOiBudWxsIH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRDb211bmkgPSBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlRmlsdGVyZWRDYXBzKGNvbXVuZUlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghY29tdW5lSWQpIHtcclxuICAgICAgdGhpcy5maWx0ZXJlZENhcHMgPSBbXTtcclxuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyBjYXA6IG51bGwgfSwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjYXBzID0gYXdhaXQgdGhpcy5sb2NhdGlvblNlcnZpY2UuZ2V0Q2FwTGlzdChjb211bmVJZCk7XHJcbiAgICB0aGlzLmZpbHRlcmVkQ2FwcyA9IGNhcHMubWFwKChjYXBDb2RlKSA9PiAoeyBpZDogY2FwQ29kZSwgY29kaWNlOiBjYXBDb2RlLCBjb211bmVJZCB9KSk7XHJcblxyXG4gICAgY29uc3QgY3VycmVudENhcCA9IHRoaXMuZm9ybS5nZXQoJ2NhcCcpPy52YWx1ZTtcclxuICAgIGlmICh0aGlzLmZpbHRlcmVkQ2Fwcy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyBjYXA6IHRoaXMuZmlsdGVyZWRDYXBzWzBdLmlkIH0sIHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmZpbHRlcmVkQ2Fwcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgIGlmICghY3VycmVudENhcCB8fCAhdGhpcy5maWx0ZXJlZENhcHMuc29tZSgoYykgPT4gYy5pZCA9PT0gY3VycmVudENhcCkpIHtcclxuICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IGNhcDogbnVsbCB9LCB7IGVtaXRFdmVudDogdHJ1ZSB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyBjYXA6IG51bGwgfSwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZUNvbXBvbmVudFN0YXRlKHZhbHVlOiBVaUxvY2F0aW9uVmFsdWUpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMudXBkYXRlTmF0aW9uYWxpdHlTdGF0ZSh2YWx1ZS5uYXppb25lSWQgfHwgJycpO1xyXG4gICAgYXdhaXQgdGhpcy51cGRhdGVGaWx0ZXJlZENvbXVuaSh2YWx1ZS5wcm92aW5jaWFJZCB8fCAnJyk7XHJcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZUZpbHRlcmVkQ2Fwcyh2YWx1ZS5jb211bmVJZCB8fCAnJyk7XHJcbiAgICB0aGlzLmFwcGx5RmllbGRzRGlzYWJsZWRTdGF0ZSgpO1xyXG4gICAgdGhpcy51cGRhdGVWYWxpZGF0b3JzKCk7XHJcbiAgfVxyXG5cclxuICAvLyDilIDilIDilIAgU3RhdG8gY2FtcGkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcblxyXG4gIHByaXZhdGUgYXBwbHlGaWVsZHNEaXNhYmxlZFN0YXRlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5mb3JtLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY29tdW5lQ29udHJvbCA9IHRoaXMuZm9ybS5nZXQoJ2NvbXVuZUlkJyk7XHJcbiAgICBjb25zdCBjYXBDb250cm9sID0gdGhpcy5mb3JtLmdldCgnY2FwJyk7XHJcbiAgICBjb25zdCBuYXppb25lQ29udHJvbCA9IHRoaXMuZm9ybS5nZXQoJ25hemlvbmVJZCcpO1xyXG5cclxuICAgIC8vIENvbXVuZSBhYmlsaXRhdG8gc29sbyBzZSBJdGFsaWEgKyBwcm92aW5jaWEgc2VsZXppb25hdGFcclxuICAgIGlmICh0aGlzLmlzSXRhbGlhbiAmJiB0aGlzLmZvcm0uZ2V0KCdwcm92aW5jaWFJZCcpPy52YWx1ZSkge1xyXG4gICAgICBjb211bmVDb250cm9sPy5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29tdW5lQ29udHJvbD8uZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ0FQIHNlZ3VlIGxvZ2ljYSBzcGVjaWZpY2FcclxuICAgIGlmICh0aGlzLmlzQ2FwRGlzYWJsZWQpIHtcclxuICAgICAgY2FwQ29udHJvbD8uZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjYXBDb250cm9sPy5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIE5hemlvbmUgZGlzYWJpbGl0YXRhIHNlIGl0YWx5QnlEZWZhdWx0XHJcbiAgICBpZiAodGhpcy5pc0l0YWx5QnlEZWZhdWx0KSB7XHJcbiAgICAgIG5hemlvbmVDb250cm9sPy5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5hemlvbmVDb250cm9sPy5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8g4pSA4pSA4pSAIFZhbGlkYXppb25lIGRpbmFtaWNhIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVZhbGlkYXRvcnMoKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb250cm9sczogUmVjb3JkPHN0cmluZywgQWJzdHJhY3RDb250cm9sIHwgbnVsbD4gPSB7XHJcbiAgICAgIG5hemlvbmU6IHRoaXMuZm9ybS5nZXQoJ25hemlvbmVJZCcpLFxyXG4gICAgICBwcm92aW5jaWE6IHRoaXMuZm9ybS5nZXQoJ3Byb3ZpbmNpYUlkJyksXHJcbiAgICAgIGNvbXVuZTogdGhpcy5mb3JtLmdldCgnY29tdW5lSWQnKSxcclxuICAgICAgY29tdW5lRXN0ZXJvOiB0aGlzLmZvcm0uZ2V0KCdjb211bmVFc3Rlcm8nKSxcclxuICAgICAgY2FwOiB0aGlzLmZvcm0uZ2V0KCdjYXAnKSxcclxuICAgICAgaW5kaXJpenpvOiB0aGlzLmZvcm0uZ2V0KCdpbmRpcml6em8nKSxcclxuICAgICAgbWFpbDogdGhpcy5mb3JtLmdldCgnbWFpbCcpLFxyXG4gICAgICBwZWM6IHRoaXMuZm9ybS5nZXQoJ3BlYycpLFxyXG4gICAgICB0ZWxlZm9ubzogdGhpcy5mb3JtLmdldCgndGVsZWZvbm8nKSxcclxuICAgIH07XHJcblxyXG4gICAgLy8gUHVsaXNjaSB0dXR0aSBpIHZhbGlkYXRvcmlcclxuICAgIE9iamVjdC52YWx1ZXMoY29udHJvbHMpLmZvckVhY2goKGMpID0+IGM/LmNsZWFyVmFsaWRhdG9ycygpKTtcclxuXHJcbiAgICAvLyBOYXppb25lXHJcbiAgICBpZiAodGhpcy5jb25maWcubmF6aW9uZT8ucmVxdWlyZWQgIT09IGZhbHNlKSB7XHJcbiAgICAgIGNvbnRyb2xzWyduYXppb25lJ10/LnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNJdGFsaWFuKSB7XHJcbiAgICAgIGlmICh0aGlzLmNvbmZpZy5wcm92aW5jaWE/LnJlcXVpcmVkICE9PSBmYWxzZSkge1xyXG4gICAgICAgIGNvbnRyb2xzWydwcm92aW5jaWEnXT8uc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5jb25maWcuY29tdW5lPy5yZXF1aXJlZCAhPT0gZmFsc2UpIHtcclxuICAgICAgICBjb250cm9sc1snY29tdW5lJ10/LnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuY29uZmlnLmNhcD8ucmVxdWlyZWQgJiYgdGhpcy5zaG93Q0FQKSB7XHJcbiAgICAgICAgY29udHJvbHNbJ2NhcCddPy5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmNvbmZpZy5pbmRpcml6em8/LnJlcXVpcmVkICYmIHRoaXMuc2hvd0luZGlyaXp6bykge1xyXG4gICAgICAgIGNvbnRyb2xzWydpbmRpcml6em8nXT8uc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmFwcGx5Q29udGFjdFZhbGlkYXRvcnMoY29udHJvbHMpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmlzRm9yZWlnbikge1xyXG4gICAgICBpZiAodGhpcy5jb25maWcuY29tdW5lRXN0ZXJvPy5yZXF1aXJlZCAhPT0gZmFsc2UpIHtcclxuICAgICAgICBjb250cm9sc1snY29tdW5lRXN0ZXJvJ10/LnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBBZ2dpb3JuYSBzZW56YSBlbWV0dGVyZSBldmVudGlcclxuICAgIE9iamVjdC52YWx1ZXMoY29udHJvbHMpLmZvckVhY2goKGMpID0+IGM/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pKTtcclxuICAgIHRoaXMubm90aWZ5VmFsaWRhdGlvbkNoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhcHBseUNvbnRhY3RWYWxpZGF0b3JzKGNvbnRyb2xzOiBSZWNvcmQ8c3RyaW5nLCBBYnN0cmFjdENvbnRyb2wgfCBudWxsPik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnLm1haWw/LnJlcXVpcmVkICYmIHRoaXMuc2hvd01haWwpIHtcclxuICAgICAgY29udHJvbHNbJ21haWwnXT8uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKHRoaXMuRU1BSUxfUEFUVEVSTildKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5zaG93TWFpbCkge1xyXG4gICAgICBjb250cm9sc1snbWFpbCddPy5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnBhdHRlcm4odGhpcy5FTUFJTF9QQVRURVJOKV0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZy5wZWM/LnJlcXVpcmVkICYmIHRoaXMuc2hvd1BFQykge1xyXG4gICAgICBjb250cm9sc1sncGVjJ10/LnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybih0aGlzLlBFQ19QQVRURVJOKV0pO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnNob3dQRUMpIHtcclxuICAgICAgY29udHJvbHNbJ3BlYyddPy5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnBhdHRlcm4odGhpcy5QRUNfUEFUVEVSTildKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jb25maWcudGVsZWZvbm8/LnJlcXVpcmVkICYmIHRoaXMuc2hvd1RlbGVmb25vKSB7XHJcbiAgICAgIGNvbnRyb2xzWyd0ZWxlZm9ubyddPy5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4odGhpcy5QSE9ORV9QQVRURVJOKV0pO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnNob3dUZWxlZm9ubykge1xyXG4gICAgICBjb250cm9sc1sndGVsZWZvbm8nXT8uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5wYXR0ZXJuKHRoaXMuUEhPTkVfUEFUVEVSTildKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdmFsaWRhdGVDb250YWN0RmllbGRzKGVycm9yczogVmFsaWRhdGlvbkVycm9ycyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnLm1haWw/LnJlcXVpcmVkICYmIHRoaXMuc2hvd01haWwpIHtcclxuICAgICAgY29uc3QgdiA9IHRoaXMuZm9ybS5nZXQoJ21haWwnKT8udmFsdWU7XHJcbiAgICAgIGlmICghdiB8fCB2LnRyaW0oKSA9PT0gJycpIHtcclxuICAgICAgICBlcnJvcnNbJ21haWxSZXF1aXJlZCddID0gXCJJbnNlcmlzY2kgbCdlbWFpbFwiO1xyXG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLkVNQUlMX1BBVFRFUk4udGVzdCh2KSkge1xyXG4gICAgICAgIGVycm9yc1snbWFpbEludmFsaWQnXSA9IFwiSW5zZXJpc2NpIHVuJ2VtYWlsIHZhbGlkYVwiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jb25maWcucGVjPy5yZXF1aXJlZCAmJiB0aGlzLnNob3dQRUMpIHtcclxuICAgICAgY29uc3QgdiA9IHRoaXMuZm9ybS5nZXQoJ3BlYycpPy52YWx1ZTtcclxuICAgICAgaWYgKCF2IHx8IHYudHJpbSgpID09PSAnJykge1xyXG4gICAgICAgIGVycm9yc1sncGVjUmVxdWlyZWQnXSA9ICdJbnNlcmlzY2kgbGEgUEVDJztcclxuICAgICAgfSBlbHNlIGlmICghdGhpcy5QRUNfUEFUVEVSTi50ZXN0KHYpKSB7XHJcbiAgICAgICAgZXJyb3JzWydwZWNJbnZhbGlkJ10gPSAnSW5zZXJpc2NpIHVuYSBQRUMgdmFsaWRhJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY29uZmlnLnRlbGVmb25vPy5yZXF1aXJlZCAmJiB0aGlzLnNob3dUZWxlZm9ubykge1xyXG4gICAgICBjb25zdCB2ID0gdGhpcy5mb3JtLmdldCgndGVsZWZvbm8nKT8udmFsdWU7XHJcbiAgICAgIGlmICghdiB8fCB2LnRyaW0oKSA9PT0gJycpIHtcclxuICAgICAgICBlcnJvcnNbJ3RlbGVmb25vUmVxdWlyZWQnXSA9ICdJbnNlcmlzY2kgaWwgdGVsZWZvbm8nO1xyXG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLlBIT05FX1BBVFRFUk4udGVzdCh2KSkge1xyXG4gICAgICAgIGVycm9yc1sndGVsZWZvbm9JbnZhbGlkJ10gPSAnSW5zZXJpc2NpIHVuIG51bWVybyBkaSB0ZWxlZm9ubyB2YWxpZG8nO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyDilIDilIDilIAgQ29uZmlndXJhemlvbmUgaW5pemlhbGUg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcblxyXG4gIHByaXZhdGUgYXBwbHlJbml0aWFsQ29uZmlndXJhdGlvbigpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5hemlvbmVDb250cm9sID0gdGhpcy5mb3JtLmdldCgnbmF6aW9uZUlkJyk7XHJcbiAgICBjb25zdCBjdXJyZW50TmF6aW9uZUlkID0gbmF6aW9uZUNvbnRyb2w/LnZhbHVlO1xyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZy5pdGFseUJ5RGVmYXVsdCkge1xyXG4gICAgICBjb25zdCBpdGFsaWEgPSB0aGlzLm5hemlvbmkuZmluZCgobikgPT4gbi5jb2RTdGF0b1BrID09PSAnSVRBJyk7XHJcbiAgICAgIGlmIChpdGFsaWEgJiYgKCFjdXJyZW50TmF6aW9uZUlkIHx8IGN1cnJlbnROYXppb25lSWQgIT09ICdJVEEnKSkge1xyXG4gICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHsgbmF6aW9uZUlkOiBpdGFsaWEuY29kU3RhdG9QayB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy51cGRhdGVOYXRpb25hbGl0eVN0YXRlKCdJVEEnKTtcclxuICAgICAgbmF6aW9uZUNvbnRyb2w/LmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGN1cnJlbnROYXppb25lSWQpIHRoaXMudXBkYXRlTmF0aW9uYWxpdHlTdGF0ZShjdXJyZW50TmF6aW9uZUlkKTtcclxuICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSBuYXppb25lQ29udHJvbD8uZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnVwZGF0ZVZhbGlkYXRvcnMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbm90aWZ5VmFsaWRhdGlvbkNoYW5nZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm9uVmFsaWRhdG9yQ2hhbmdlKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5vblZhbGlkYXRvckNoYW5nZSgpLCAwKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPCEtLVxyXG4gIENvbXBvbmVudGUgcGVyIGxhIHNlbGV6aW9uZSBkaSBkYXRpIGdlb2dyYWZpY2kgKEl0YWxpYS9Fc3Rlcm8pLlxyXG4gIFV0aWxpenphIGlsIGZsb3cgY29udHJvbCBtb2Rlcm5vIGRpIEFuZ3VsYXIgKEBpZiwgQGZvcikuXHJcbi0tPlxyXG48ZGl2XHJcbiAgY2xhc3M9XCJ1aS1sb2NhdGlvblwiXHJcbiAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcclxuICBbY2xhc3MudWktbG9jYXRpb24tLWZvcmVpZ25dPVwiaXNGb3JlaWduXCJcclxuICBbY2xhc3MudWktbG9jYXRpb24tLWl0YWxpYW5dPVwiaXNJdGFsaWFuXCJcclxuPlxyXG4gIDwhLS0gPT09PT09PT09PT09PT09PT09PT0gTkFaSU9ORSA9PT09PT09PT09PT09PT09PT09PSAtLT5cclxuICA8ZGl2IGNsYXNzPVwidWktbG9jYXRpb25fX2ZpZWxkLXJvd1wiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkXHJcbiAgICAgIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCJcclxuICAgICAgY2xhc3M9XCJ1aS1sb2NhdGlvbl9fZnVsbC13aWR0aFwiXHJcbiAgICAgIFtjbGFzcy51aS1sb2NhdGlvbl9faXRhbHktZGVmYXVsdF09XCJjb25maWcuaXRhbHlCeURlZmF1bHRcIlxyXG4gICAgPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7IGxhYmVscy5uYXppb25lIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmF6aW9uZUlkXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgaXNOYXppb25lRGlzYWJsZWRcIlxyXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgICBhcmlhLWxhYmVsPVwiU2VsZXppb25hIG5hemlvbmVcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIm51bGxcIj5TZWxlemlvbmEgbmF6aW9uZTwvbWF0LW9wdGlvbj5cclxuICAgICAgICBAZm9yIChuYXppb25lIG9mIG5hemlvbmk7IHRyYWNrIG5hemlvbmUuY29kU3RhdG9Qaykge1xyXG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIm5hemlvbmUuY29kU3RhdG9Qa1wiPlxyXG4gICAgICAgICAgICB7eyBuYXppb25lLmRlc2NyaXppb25lIH19XHJcbiAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgIEBpZiAoc2hvdWxkU2hvd0ZpZWxkRXJyb3JzKCduYXppb25lSWQnKSkge1xyXG4gICAgICAgIDxtYXQtZXJyb3I+XHJcbiAgICAgICAgICBAZm9yIChlcnJvciBvZiBnZXRGaWVsZEVycm9ycygnbmF6aW9uZUlkJyk7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICA8ZGl2Pnt7IGVycm9yIH19PC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgIH1cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gPT09PT09PT09PT09PT09PT09PT0gQ0FNUEkgSVRBTElBID09PT09PT09PT09PT09PT09PT09IC0tPlxyXG4gIEBpZiAoaXNJdGFsaWFuKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwidWktbG9jYXRpb25fX3Byb3ZpbmNpYS1jb211bmVcIj5cclxuICAgICAgPCEtLSBQcm92aW5jaWEgLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ1aS1sb2NhdGlvbl9fZmllbGQtcm93XCI+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJ1aS1sb2NhdGlvbl9fZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57eyBsYWJlbHMucHJvdmluY2lhIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwcm92aW5jaWFJZFwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlNlbGV6aW9uYSBwcm92aW5jaWFcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwibnVsbFwiPlNlbGV6aW9uYSBwcm92aW5jaWE8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIEBmb3IgKHByb3Ygb2YgcHJvdmluY2U7IHRyYWNrIHByb3YuY29kaWNlUHJvdmluY2lhUGspIHtcclxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwicHJvdi5jb2RpY2VQcm92aW5jaWFQa1wiPlxyXG4gICAgICAgICAgICAgICAge3sgcHJvdi5ub21lUHJvdmluY2lhIH19XHJcbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICBAaWYgKHNob3VsZFNob3dGaWVsZEVycm9ycygncHJvdmluY2lhSWQnKSkge1xyXG4gICAgICAgICAgICA8bWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgIEBmb3IgKGVycm9yIG9mIGdldEZpZWxkRXJyb3JzKCdwcm92aW5jaWFJZCcpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgIDxkaXY+e3sgZXJyb3IgfX08L2Rpdj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLSBDb211bmUgLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ1aS1sb2NhdGlvbl9fZmllbGQtcm93XCI+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJ1aS1sb2NhdGlvbl9fZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57eyBsYWJlbHMuY29tdW5lIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb211bmVJZFwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlNlbGV6aW9uYSBjb211bmVcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwibnVsbFwiPlNlbGV6aW9uYSBjb211bmU8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIEBmb3IgKGNvbXVuZSBvZiBmaWx0ZXJlZENvbXVuaTsgdHJhY2sgY29tdW5lLmNvZGljZUNvbXVuZVBrKSB7XHJcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImNvbXVuZS5jb2RpY2VDb211bmVQa1wiPlxyXG4gICAgICAgICAgICAgICAge3sgY29tdW5lLm5vbWVDb211bmUgfX1cclxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgIEBpZiAoc2hvdWxkU2hvd0ZpZWxkRXJyb3JzKCdjb211bmVJZCcpKSB7XHJcbiAgICAgICAgICAgIDxtYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgQGZvciAoZXJyb3Igb2YgZ2V0RmllbGRFcnJvcnMoJ2NvbXVuZUlkJyk7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgPGRpdj57eyBlcnJvciB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tID09PT09PT09PT09PT09PT09PT09IEdSSUdMSUEgQ0FNUEkgRElOQU1JQ0kgPT09PT09PT09PT09PT09PT09PT0gLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwidWktbG9jYXRpb25fX2R5bmFtaWMtZ3JpZFwiPlxyXG4gICAgICA8IS0tIENBUCAtLT5cclxuICAgICAgQGlmIChzaG93Q0FQICYmIGlzSXRhbGlhbikge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1aS1sb2NhdGlvbl9fZ3JpZC1jZWxsXCIgW3N0eWxlLmdyaWQtY29sdW1uXT1cIidzcGFuICcgKyBjYXBDb2x1bW5zXCI+XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInVpLWxvY2F0aW9uX19mdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgbGFiZWxzLmNhcCB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNhcFwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGlzQ2FwRGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2VsZXppb25hIENBUFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwibnVsbFwiPlNlbGV6aW9uYSBDQVA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgQGZvciAoY2FwIG9mIGZpbHRlcmVkQ2FwczsgdHJhY2sgY2FwLmlkKSB7XHJcbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiY2FwLmlkXCI+e3sgY2FwLmNvZGljZSB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgQGlmIChzaG91bGRTaG93RmllbGRFcnJvcnMoJ2NhcCcpKSB7XHJcbiAgICAgICAgICAgICAgPG1hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIEBmb3IgKGVycm9yIG9mIGdldEZpZWxkRXJyb3JzKCdjYXAnKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+e3sgZXJyb3IgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG5cclxuICAgICAgPCEtLSBJbmRpcml6em8gLS0+XHJcbiAgICAgIEBpZiAoc2hvd0luZGlyaXp6bykge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1aS1sb2NhdGlvbl9fZ3JpZC1jZWxsXCIgW3N0eWxlLmdyaWQtY29sdW1uXT1cIidzcGFuICcgKyBpbmRpcml6em9Db2x1bW5zXCI+XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInVpLWxvY2F0aW9uX19mdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgbGFiZWxzLmluZGlyaXp6byB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImluZGlyaXp6b1wiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJWaWEsIG51bWVybyBjaXZpY29cIlxyXG4gICAgICAgICAgICAgIFtyZWFkb25seV09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICBAaWYgKHNob3VsZFNob3dGaWVsZEVycm9ycygnaW5kaXJpenpvJykpIHtcclxuICAgICAgICAgICAgICA8bWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgQGZvciAoZXJyb3Igb2YgZ2V0RmllbGRFcnJvcnMoJ2luZGlyaXp6bycpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgPGRpdj57eyBlcnJvciB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcblxyXG4gICAgICA8IS0tIE1haWwgLS0+XHJcbiAgICAgIEBpZiAoc2hvd01haWwpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwidWktbG9jYXRpb25fX2dyaWQtY2VsbFwiIFtzdHlsZS5ncmlkLWNvbHVtbl09XCInc3BhbiAnICsgbWFpbENvbHVtbnNcIj5cclxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidWktbG9jYXRpb25fX2Z1bGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgPG1hdC1sYWJlbD57eyBsYWJlbHMubWFpbCB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJlbWFpbFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWFpbFwiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJlc2VtcGlvQGVtYWlsLmNvbVwiXHJcbiAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIEBpZiAoc2hvdWxkU2hvd0ZpZWxkRXJyb3JzKCdtYWlsJykpIHtcclxuICAgICAgICAgICAgICA8bWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgQGZvciAoZXJyb3Igb2YgZ2V0RmllbGRFcnJvcnMoJ21haWwnKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+e3sgZXJyb3IgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG5cclxuICAgICAgPCEtLSBQRUMgLS0+XHJcbiAgICAgIEBpZiAoc2hvd1BFQykge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1aS1sb2NhdGlvbl9fZ3JpZC1jZWxsXCIgW3N0eWxlLmdyaWQtY29sdW1uXT1cIidzcGFuICcgKyBwZWNDb2x1bW5zXCI+XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInVpLWxvY2F0aW9uX19mdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgbGFiZWxzLnBlYyB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJlbWFpbFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGVjXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cImVzZW1waW9AcGVjLml0XCJcclxuICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgQGlmIChzaG91bGRTaG93RmllbGRFcnJvcnMoJ3BlYycpKSB7XHJcbiAgICAgICAgICAgICAgPG1hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIEBmb3IgKGVycm9yIG9mIGdldEZpZWxkRXJyb3JzKCdwZWMnKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+e3sgZXJyb3IgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG5cclxuICAgICAgPCEtLSBUZWxlZm9ubyAtLT5cclxuICAgICAgQGlmIChzaG93VGVsZWZvbm8pIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwidWktbG9jYXRpb25fX2dyaWQtY2VsbFwiIFtzdHlsZS5ncmlkLWNvbHVtbl09XCInc3BhbiAnICsgdGVsZWZvbm9Db2x1bW5zXCI+XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInVpLWxvY2F0aW9uX19mdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgbGFiZWxzLnRlbGVmb25vIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cInRlbFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGVsZWZvbm9cIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiKzM5IDEyMyA0NTYgNzg5MFwiXHJcbiAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIEBpZiAoc2hvdWxkU2hvd0ZpZWxkRXJyb3JzKCd0ZWxlZm9ubycpKSB7XHJcbiAgICAgICAgICAgICAgPG1hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIEBmb3IgKGVycm9yIG9mIGdldEZpZWxkRXJyb3JzKCd0ZWxlZm9ubycpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgPGRpdj57eyBlcnJvciB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcblxyXG4gIDwhLS0gPT09PT09PT09PT09PT09PT09PT0gQ0FNUE8gRVNURVJPID09PT09PT09PT09PT09PT09PT09IC0tPlxyXG4gIEBpZiAoaXNGb3JlaWduKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwidWktbG9jYXRpb25fX2ZpZWxkLXJvd1wiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInVpLWxvY2F0aW9uX19mdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57eyBsYWJlbHMuY29tdW5lRXN0ZXJvIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29tdW5lRXN0ZXJvXCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiSW5zZXJpc2NpIGNpdHRhL2NvbXVuZVwiXHJcbiAgICAgICAgICBbcmVhZG9ubHldPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgQGlmIChzaG91bGRTaG93RmllbGRFcnJvcnMoJ2NvbXVuZUVzdGVybycpKSB7XHJcbiAgICAgICAgICA8bWF0LWVycm9yPlxyXG4gICAgICAgICAgICBAZm9yIChlcnJvciBvZiBnZXRGaWVsZEVycm9ycygnY29tdW5lRXN0ZXJvJyk7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgIDxkaXY+e3sgZXJyb3IgfX08L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19
|
|
654
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lmaWNhLXRlcnJpdG9yaWFsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy11aS1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0tYnVpbGRlci9zdWItY29tcG9uZW50cy9zcGVjaWZpY2EtdGVycml0b3JpYWxlL3NwZWNpZmljYS10ZXJyaXRvcmlhbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctdWktc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWJ1aWxkZXIvc3ViLWNvbXBvbmVudHMvc3BlY2lmaWNhLXRlcnJpdG9yaWFsZS9zcGVjaWZpY2EtdGVycml0b3JpYWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFVBQVUsRUFLVixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUlMLGlCQUFpQixFQUNqQixhQUFhLEVBSWIsVUFBVSxFQUVWLFNBQVMsRUFDVCxtQkFBbUIsR0FDcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7OztBQWdCekQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCRztBQXFCSCxNQUFNLE9BQU8sZ0NBQWdDO0lBdUMzQyxZQUNtQixFQUFlLEVBQ2Ys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LFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGlDQUFpQyxDQUFDOzRCQUMvRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJO3VLQU01QixNQUFNO3NCQUFkLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgT25Jbml0LFxyXG4gIE9uRGVzdHJveSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBJbmplY3RvcixcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcclxuICBGb3JtQnVpbGRlcixcclxuICBGb3JtR3JvdXAsXHJcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgTkdfVkFMSURBVE9SUyxcclxuICBGb3JtQ29udHJvbCxcclxuICBBYnN0cmFjdENvbnRyb2wsXHJcbiAgVmFsaWRhdGlvbkVycm9ycyxcclxuICBWYWxpZGF0b3JzLFxyXG4gIFZhbGlkYXRvcixcclxuICBOZ0NvbnRyb2wsXHJcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIHRha2VVbnRpbCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHN0YXJ0V2l0aCwgbWFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgVWlMb2NhdGlvblNlcnZpY2UsIFVpTmF6aW9uZSwgVWlQcm92aW5jaWEsIFVpQ29tdW5lIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9jYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFVpTG9jYXRpb25Db25maWcsIFVpTG9jYXRpb25WYWx1ZSB9IGZyb20gJy4uLy4uL3R5cGVzL3RlcnJpdG9yaWFsZS50eXBlcyc7XHJcblxyXG4vKipcclxuICogSW50ZXJmYWNjaWEgaW50ZXJuYSBwZXIgaSBDQVAgbmVsIGNvbXBvbmVudGUuXHJcbiAqL1xyXG5pbnRlcmZhY2UgVWlDYXBPcHRpb24ge1xyXG4gIC8qKiBJRCBkZWwgQ0FQLiAqL1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgLyoqIENvZGljZSBDQVAgdmlzdWFsaXp6YXRvLiAqL1xyXG4gIGNvZGljZTogc3RyaW5nO1xyXG4gIC8qKiBJRCBkZWwgY29tdW5lIGFzc29jaWF0by4gKi9cclxuICBjb211bmVJZDogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50ZSBzdGFuZGFsb25lIHBlciBsYSBzZWxlemlvbmUgZGkgZGF0aSBnZW9ncmFmaWNpIGl0YWxpYW5pIG8gZXN0ZXJpLlxyXG4gKlxyXG4gKiBTdXBwb3J0YSBkdWUgbW9kYWxpdGE6XHJcbiAqIC0gKipJdGFsaWEqKjogc2VsZXppb25lIGEgY2FzY2F0YSBuYXppb25lIC0+IHByb3ZpbmNpYSAtPiBjb211bmUgLT4gQ0FQXHJcbiAqIC0gKipFc3Rlcm8qKjogc2VsZXppb25lIG5hemlvbmUgKyBjYW1wbyB0ZXN0byBsaWJlcm8gcGVyIGlsIGNvbXVuZVxyXG4gKlxyXG4gKiBDYW1waSBvcHppb25hbGkgY29uZmlndXJhYmlsaTogaW5kaXJpenpvLCBtYWlsLCBQRUMsIHRlbGVmb25vLlxyXG4gKlxyXG4gKiBJbXBsZW1lbnRhIGBDb250cm9sVmFsdWVBY2Nlc3NvcmAgZSBgVmFsaWRhdG9yYCBwZXIgbCdpbnRlZ3JhemlvbmVcclxuICogZGlyZXR0YSBjb24gQW5ndWxhciBSZWFjdGl2ZSBGb3Jtcy5cclxuICpcclxuICogVXRpbGl6emEgZGF0aSBkYSBKU09OIHN0YXRpY2kgdHJhbWl0ZSBgVWlMb2NhdGlvblNlcnZpY2VgXHJcbiAqIChuZXNzdW5hIGRpcGVuZGVuemEgYWwgYmFja2VuZCkuXHJcbiAqXHJcbiAqIEBzZWxlY3RvciB1aS1zcGVjaWZpY2EtdGVycml0b3JpYWxlXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYGh0bWxcclxuICogPHVpLXNwZWNpZmljYS10ZXJyaXRvcmlhbGVcclxuICogICBbZm9ybUNvbnRyb2xdPVwibXlDb250cm9sXCJcclxuICogICBbY29uZmlnXT1cInsgaXRhbHlCeURlZmF1bHQ6IHRydWUsIGNhcDogeyBzaG93OiB0cnVlIH0gfVwiXHJcbiAqIC8+XHJcbiAqIGBgYFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd1aS1zcGVjaWZpY2EtdGVycml0b3JpYWxlJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtSZWFjdGl2ZUZvcm1zTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUsIE1hdFNlbGVjdE1vZHVsZSwgTWF0SW5wdXRNb2R1bGVdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVWlTcGVjaWZpY2FUZXJyaXRvcmlhbGVDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFVpU3BlY2lmaWNhVGVycml0b3JpYWxlQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3BlY2lmaWNhLXRlcnJpdG9yaWFsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3NwZWNpZmljYS10ZXJyaXRvcmlhbGUuY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlTcGVjaWZpY2FUZXJyaXRvcmlhbGVDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgLyoqIENvbmZpZ3VyYXppb25lIGRlbCBjb21wb25lbnRlLiAqL1xyXG4gIEBJbnB1dCgpIGNvbmZpZzogVWlMb2NhdGlvbkNvbmZpZyA9IHt9O1xyXG5cclxuICAvKiogU3RhdG8gZGlzYWJpbGl0YXRvIGdsb2JhbGUuICovXHJcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgLy8g4pSA4pSA4pSAIFBhdHRlcm4gZGkgdmFsaWRhemlvbmUg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgcHJpdmF0ZSByZWFkb25seSBFTUFJTF9QQVRURVJOID0gL15bYS16QS1aMC05Ll8lKy1dK0BbYS16QS1aMC05Li1dK1xcLlthLXpBLVpdezIsfSQvO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgUEVDX1BBVFRFUk4gPSAvXlthLXpBLVowLTkuXyUrLV0rQFthLXpBLVowLTkuLV0rXFwuW2EtekEtWl17Mix9JC87XHJcbiAgcHJpdmF0ZSByZWFkb25seSBQSE9ORV9QQVRURVJOID0gL15bK10/WzAtOVxcc1xcLSgpXXs2LDE2fSQvO1xyXG5cclxuICAvLyDilIDilIDilIAgU3RhdG8gaW50ZXJubyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICBmb3JtITogRm9ybUdyb3VwO1xyXG4gIGlzSXRhbGlhbiA9IGZhbHNlO1xyXG4gIGlzRm9yZWlnbiA9IGZhbHNlO1xyXG4gIG5nQ29udHJvbCE6IE5nQ29udHJvbDtcclxuXHJcbiAgLyoqIEVsZW5jbyBuYXppb25pIGRpc3BvbmliaWxpLiAqL1xyXG4gIG5hemlvbmk6IFVpTmF6aW9uZVtdID0gW107XHJcbiAgLyoqIEVsZW5jbyBwcm92aW5jZSBkaXNwb25pYmlsaS4gKi9cclxuICBwcm92aW5jZTogVWlQcm92aW5jaWFbXSA9IFtdO1xyXG4gIC8qKiBDb211bmkgZmlsdHJhdGkgcGVyIGxhIHByb3ZpbmNpYSBzZWxlemlvbmF0YS4gKi9cclxuICBmaWx0ZXJlZENvbXVuaTogVWlDb211bmVbXSA9IFtdO1xyXG4gIC8qKiBDQVAgZmlsdHJhdGkgcGVyIGlsIGNvbXVuZSBzZWxlemlvbmF0by4gKi9cclxuICBmaWx0ZXJlZENhcHM6IFVpQ2FwT3B0aW9uW10gPSBbXTtcclxuXHJcbiAgLyoqIFByb21pc2UgZGkgaW5pemlhbGl6emF6aW9uZSAodXRpbGUgcGVyIHRlc3QgZSB0YWJsZS10ZXJyaXRvcmlhbGUpLiAqL1xyXG4gIGluaXRpYWxpemF0aW9uUHJvbWlzZTogUHJvbWlzZTx2b2lkPiB8IG51bGwgPSBudWxsO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIG9uQ2hhbmdlID0gKF92YWx1ZTogVWlMb2NhdGlvblZhbHVlKSA9PiB7fTtcclxuICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xyXG4gIHByaXZhdGUgb25WYWxpZGF0b3JDaGFuZ2UgPSAoKSA9PiB7fTtcclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnNJbml0aWFsaXplZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgcGVuZGluZ1dyaXRlVmFsdWU6IFVpTG9jYXRpb25WYWx1ZSB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgaXNJbml0aWFsaXppbmcgPSBmYWxzZTtcclxuICBwcml2YXRlIHRpcG9sb2dpY2hlTG9hZGVkID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9jYXRpb25TZXJ2aWNlOiBVaUxvY2F0aW9uU2VydmljZSxcclxuICApIHtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZUZvcm0oKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXR1cE5nQ29udHJvbCgpO1xyXG4gICAgdGhpcy5pbml0aWFsaXphdGlvblByb21pc2UgPSB0aGlzLmluaXRpYWxpemVDb21wb25lbnQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICAvLyDilIDilIDilIAgQ29udHJvbFZhbHVlQWNjZXNzb3Ig4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IFVpTG9jYXRpb25WYWx1ZSB8IG51bGwpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy50aXBvbG9naWNoZUxvYWRlZCkge1xyXG4gICAgICB0aGlzLnBlbmRpbmdXcml0ZVZhbHVlID0gdmFsdWU7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMucHJvY2Vzc1dyaXRlVmFsdWUodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBVaUxvY2F0aW9uVmFsdWUpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSAodmFsdWUpID0+IHtcclxuICAgICAgaWYgKCF0aGlzLmlzSW5pdGlhbGl6aW5nKSBmbih2YWx1ZSk7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVmFsaWRhdG9yQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5mb3JtLmRpc2FibGUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybS5lbmFibGUoKTtcclxuICAgICAgdGhpcy5hcHBseUZpZWxkc0Rpc2FibGVkU3RhdGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIOKUgOKUgOKUgCBWYWxpZGF0b3Ig4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcblxyXG4gIHZhbGlkYXRlKF9jb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBpZiAoIXRoaXMuZm9ybSkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgY29uc3QgZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzID0ge307XHJcbiAgICBjb25zdCBpc05hemlvbmVSZXF1aXJlZCA9IHRoaXMuY29uZmlnLm5hemlvbmU/LnJlcXVpcmVkICE9PSBmYWxzZTtcclxuICAgIGNvbnN0IGlzUHJvdmluY2lhUmVxdWlyZWQgPSB0aGlzLmNvbmZpZy5wcm92aW5jaWE/LnJlcXVpcmVkICE9PSBmYWxzZTtcclxuICAgIGNvbnN0IGlzQ29tdW5lUmVxdWlyZWQgPSB0aGlzLmNvbmZpZy5jb211bmU/LnJlcXVpcmVkICE9PSBmYWxzZTtcclxuICAgIGNvbnN0IGlzQ29tdW5lRXN0ZXJvUmVxdWlyZWQgPSB0aGlzLmNvbmZpZy5jb211bmVFc3Rlcm8/LnJlcXVpcmVkICE9PSBmYWxzZTtcclxuXHJcbiAgICAvLyBWYWxpZGF6aW9uZSBuYXppb25lXHJcbiAgICBpZiAoaXNOYXppb25lUmVxdWlyZWQgJiYgIXRoaXMuZm9ybS5nZXQoJ25hemlvbmVJZCcpPy52YWx1ZSkge1xyXG4gICAgICBlcnJvcnNbJ25hemlvbmVSZXF1aXJlZCddID0gJ1NlbGV6aW9uYSB1bmEgbmF6aW9uZSc7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVmFsaWRhemlvbmkgSXRhbGlhXHJcbiAgICBpZiAodGhpcy5pc0l0YWxpYW4pIHtcclxuICAgICAgaWYgKGlzUHJvdmluY2lhUmVxdWlyZWQgJiYgIXRoaXMuZm9ybS5nZXQoJ3Byb3ZpbmNpYUlkJyk/LnZhbHVlKSB7XHJcbiAgICAgICAgZXJyb3JzWydwcm92aW5jaWFSZXF1aXJlZCddID0gJ1NlbGV6aW9uYSB1bmEgcHJvdmluY2lhJztcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXNDb211bmVSZXF1aXJlZCAmJiAhdGhpcy5mb3JtLmdldCgnY29tdW5lSWQnKT8udmFsdWUpIHtcclxuICAgICAgICBlcnJvcnNbJ2NvbXVuZVJlcXVpcmVkJ10gPSAnU2VsZXppb25hIHVuIGNvbXVuZSc7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuY29uZmlnLmNhcD8ucmVxdWlyZWQgJiYgdGhpcy5zaG93Q0FQICYmICF0aGlzLmZvcm0uZ2V0KCdjYXAnKT8udmFsdWUpIHtcclxuICAgICAgICBlcnJvcnNbJ2NhcFJlcXVpcmVkJ10gPSAnSW5zZXJpc2NpIGlsIENBUCc7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuY29uZmlnLmluZGlyaXp6bz8ucmVxdWlyZWQgJiYgdGhpcy5zaG93SW5kaXJpenpvKSB7XHJcbiAgICAgICAgY29uc3QgdiA9IHRoaXMuZm9ybS5nZXQoJ2luZGlyaXp6bycpPy52YWx1ZTtcclxuICAgICAgICBpZiAoIXYgfHwgdi50cmltKCkgPT09ICcnKSBlcnJvcnNbJ2luZGlyaXp6b1JlcXVpcmVkJ10gPSBcIkluc2VyaXNjaSBsJ2luZGlyaXp6b1wiO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudmFsaWRhdGVDb250YWN0RmllbGRzKGVycm9ycyk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVmFsaWRhemlvbmkgZXN0ZXJvXHJcbiAgICBpZiAodGhpcy5pc0ZvcmVpZ24pIHtcclxuICAgICAgY29uc3QgY29tdW5lRXN0ZXJvID0gdGhpcy5mb3JtLmdldCgnY29tdW5lRXN0ZXJvJyk/LnZhbHVlO1xyXG4gICAgICBpZiAoaXNDb211bmVFc3Rlcm9SZXF1aXJlZCAmJiAoIWNvbXVuZUVzdGVybyB8fCBjb211bmVFc3Rlcm8udHJpbSgpID09PSAnJykpIHtcclxuICAgICAgICBlcnJvcnNbJ2NvbXVuZUVzdGVyb1JlcXVpcmVkJ10gPSAnSW5zZXJpc2NpIGlsIGNvbXVuZSBlc3Rlcm8nO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGVycm9ycykubGVuZ3RoID4gMCA/IGVycm9ycyA6IG51bGw7XHJcbiAgfVxyXG5cclxuICAvLyDilIDilIDilIAgQVBJIHB1YmJsaWNhIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG5cclxuICAvKiogTWFyY2EgdHV0dGkgaSBjb250cm9sbGkgaW50ZXJuaSBjb21lIHRvdWNoZWQuICovXHJcbiAgbWFya0FzVG91Y2hlZCgpOiB2b2lkIHtcclxuICAgIE9iamVjdC52YWx1ZXModGhpcy5mb3JtLmNvbnRyb2xzKS5mb3JFYWNoKChjKSA9PiBjLm1hcmtBc1RvdWNoZWQoKSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICAvKiogVmVyaWZpY2Egc2UgbW9zdHJhcmUgZ2xpIGVycm9yaSBwZXIgdW4gY2FtcG8gaW50ZXJuby4gKi9cclxuICBzaG91bGRTaG93RmllbGRFcnJvcnMoZmllbGRLZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybS5nZXQoZmllbGRLZXkpO1xyXG4gICAgcmV0dXJuICEhKGNvbnRyb2w/LmludmFsaWQgJiYgKGNvbnRyb2wudG91Y2hlZCB8fCBjb250cm9sLmRpcnR5KSk7XHJcbiAgfVxyXG5cclxuICAvKiogRXJyb3JpIGRpIHVuIGNhbXBvIGludGVybm8gY29tZSBhcnJheSBkaSBtZXNzYWdnaS4gKi9cclxuICBnZXRGaWVsZEVycm9ycyhmaWVsZEtleTogc3RyaW5nKTogc3RyaW5nW10ge1xyXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybS5nZXQoZmllbGRLZXkpO1xyXG4gICAgaWYgKCFjb250cm9sPy5lcnJvcnMpIHJldHVybiBbXTtcclxuICAgIGNvbnN0IG1lc3NhZ2VzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgY29uc3QgZXJycyA9IGNvbnRyb2wuZXJyb3JzO1xyXG4gICAgaWYgKGVycnNbJ3JlcXVpcmVkJ10pIG1lc3NhZ2VzLnB1c2goJ0NhbXBvIG9iYmxpZ2F0b3JpbycpO1xyXG4gICAgaWYgKGVycnNbJ3BhdHRlcm4nXSkgbWVzc2FnZXMucHVzaCgnRm9ybWF0byBub24gdmFsaWRvJyk7XHJcbiAgICBpZiAoZXJyc1snZW1haWwnXSkgbWVzc2FnZXMucHVzaCgnRW1haWwgbm9uIHZhbGlkYScpO1xyXG4gICAgcmV0dXJuIG1lc3NhZ2VzO1xyXG4gIH1cclxuXHJcbiAgLyoqIEhhbmRsZXIgYmx1ciBwZXIgcHJvcGFnYXJlIGlsIHRvdWNoZWQuICovXHJcbiAgb25CbHVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICB9XHJcblxyXG4gIC8qKiBSZXNldHRhIGxvIHN0YXRvIGRlbCBjb21wb25lbnRlLiAqL1xyXG4gIHJlc2V0Q29tcG9uZW50U3RhdGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzSXRhbGlhbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0ZvcmVpZ24gPSBmYWxzZTtcclxuICAgIHRoaXMuZmlsdGVyZWRDb211bmkgPSBbXTtcclxuICAgIHRoaXMuZmlsdGVyZWRDYXBzID0gW107XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdjb211bmVJZCcpPy5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ2NhcCcpPy5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIHRoaXMudXBkYXRlVmFsaWRhdG9ycygpO1xyXG4gIH1cclxuXHJcbiAgLy8g4pSA4pSA4pSAIEdldHRlciBjYWxjb2xhdGkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcblxyXG4gIC8qKiBMYWJlbHMgcGVyc29uYWxpenphYmlsaSBjb24gdmFsb3JpIGRpIGRlZmF1bHQuICovXHJcbiAgZ2V0IGxhYmVscygpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5hemlvbmU6IHRoaXMuY29uZmlnLmxhYmVscz8ubmF6aW9uZSB8fCAnTmF6aW9uZScsXHJcbiAgICAgIHByb3ZpbmNpYTogdGhpcy5jb25maWcubGFiZWxzPy5wcm92aW5jaWEgfHwgJ1Byb3ZpbmNpYScsXHJcbiAgICAgIGNvbXVuZTogdGhpcy5jb25maWcubGFiZWxzPy5jb211bmUgfHwgJ0NvbXVuZScsXHJcbiAgICAgIGNhcDogdGhpcy5jb25maWcubGFiZWxzPy5jYXAgfHwgJ0NBUCcsXHJcbiAgICAgIGluZGlyaXp6bzogdGhpcy5jb25maWcubGFiZWxzPy5pbmRpcml6em8gfHwgJ0luZGlyaXp6bycsXHJcbiAgICAgIGNvbXVuZUVzdGVybzogdGhpcy5jb25maWcubGFiZWxzPy5jb211bmVFc3Rlcm8gfHwgJ0NvbXVuZSBFc3Rlcm8nLFxyXG4gICAgICBtYWlsOiB0aGlzLmNvbmZpZy5sYWJlbHM/Lm1haWwgfHwgJ0VtYWlsJyxcclxuICAgICAgcGVjOiB0aGlzLmNvbmZpZy5sYWJlbHM/LnBlYyB8fCAnUEVDJyxcclxuICAgICAgdGVsZWZvbm86IHRoaXMuY29uZmlnLmxhYmVscz8udGVsZWZvbm8gfHwgJ1RlbGVmb25vJyxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzVmFsaWRhdGlvbkVycm9ycygpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGV4dGVybmFsSW52YWxpZCA9ICEhKFxyXG4gICAgICB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8uaW52YWxpZCAmJlxyXG4gICAgICAodGhpcy5uZ0NvbnRyb2wuY29udHJvbC50b3VjaGVkIHx8IHRoaXMubmdDb250cm9sLmNvbnRyb2wuZGlydHkpXHJcbiAgICApO1xyXG4gICAgaWYgKGV4dGVybmFsSW52YWxpZCkgcmV0dXJuIHRydWU7XHJcblxyXG4gICAgY29uc3QgaXNJbnRlcmFjdGVkID1cclxuICAgICAgdGhpcy5mb3JtPy50b3VjaGVkIHx8IHRoaXMuZm9ybT8uZGlydHkgfHwgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnRvdWNoZWQgfHwgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LmRpcnR5O1xyXG4gICAgaWYgKGlzSW50ZXJhY3RlZCkge1xyXG4gICAgICByZXR1cm4gISF0aGlzLnZhbGlkYXRlKG51bGwgYXMgYW55KTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGdldCB2YWxpZGF0aW9uRXJyb3JzKCk6IHN0cmluZ1tdIHtcclxuICAgIC8vIEVycm9yaSBlc3Rlcm5pIGRhbCBGb3JtQnVpbGRlclxyXG4gICAgaWYgKHRoaXMubmdDb250cm9sPy5jb250cm9sPy5lcnJvcnMpIHtcclxuICAgICAgY29uc3QgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICBpZiAodGhpcy5uZ0NvbnRyb2wuY29udHJvbC5lcnJvcnNbJ3JlcXVpcmVkJ10pIHtcclxuICAgICAgICBlcnJvcnMucHVzaCgnSW5pemlhIHNlbGV6aW9uYW5kbyBsYSBuYXppb25lJyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSByZXR1cm4gZXJyb3JzO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEVycm9yaSBpbnRlcm5pXHJcbiAgICBjb25zdCBpbnRlcm5hbEVycm9ycyA9IHRoaXMudmFsaWRhdGUobnVsbCBhcyBhbnkpO1xyXG4gICAgaWYgKCFpbnRlcm5hbEVycm9ycykgcmV0dXJuIFtdO1xyXG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoaW50ZXJuYWxFcnJvcnMpIGFzIHN0cmluZ1tdO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dDQVAoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWcuY2FwPy5zaG93ICE9PSBmYWxzZTtcclxuICB9XHJcbiAgZ2V0IHNob3dJbmRpcml6em8oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWcuaW5kaXJpenpvPy5zaG93ICE9PSBmYWxzZTtcclxuICB9XHJcbiAgZ2V0IHNob3dNYWlsKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLm1haWw/LnNob3cgPT09IHRydWU7XHJcbiAgfVxyXG4gIGdldCBzaG93UEVDKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnBlYz8uc2hvdyA9PT0gdHJ1ZTtcclxuICB9XHJcbiAgZ2V0IHNob3dUZWxlZm9ubygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZy50ZWxlZm9ubz8uc2hvdyA9PT0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGdldCBjYXBDb2x1bW5zKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWcuY2FwPy5jb2x1bW5zIHx8IDY7XHJcbiAgfVxyXG4gIGdldCBpbmRpcml6em9Db2x1bW5zKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWcuaW5kaXJpenpvPy5jb2x1bW5zIHx8IDEyO1xyXG4gIH1cclxuICBnZXQgbWFpbENvbHVtbnMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5tYWlsPy5jb2x1bW5zIHx8IDY7XHJcbiAgfVxyXG4gIGdldCBwZWNDb2x1bW5zKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWcucGVjPy5jb2x1bW5zIHx8IDY7XHJcbiAgfVxyXG4gIGdldCB0ZWxlZm9ub0NvbHVtbnMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZy50ZWxlZm9ubz8uY29sdW1ucyB8fCA2O1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzSXRhbHlCeURlZmF1bHQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWcuaXRhbHlCeURlZmF1bHQgPT09IHRydWU7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNDYXBEaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGNvbXVuZUlkID0gdGhpcy5mb3JtLmdldCgnY29tdW5lSWQnKT8udmFsdWU7XHJcbiAgICByZXR1cm4gIWNvbXVuZUlkIHx8IHRoaXMuZmlsdGVyZWRDYXBzLmxlbmd0aCA9PT0gMCB8fCB0aGlzLmZpbHRlcmVkQ2Fwcy5sZW5ndGggPT09IDE7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNOYXppb25lRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCB8fCB0aGlzLmNvbmZpZy5pdGFseUJ5RGVmYXVsdCA9PT0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGdldCBpc1JlcXVpcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnLm5hemlvbmU/LnJlcXVpcmVkICE9PSBmYWxzZSkgcmV0dXJuIHRydWU7XHJcbiAgICBpZiAoIXRoaXMubmdDb250cm9sPy5jb250cm9sKSByZXR1cm4gZmFsc2U7XHJcbiAgICBjb25zdCB2YWxpZGF0b3IgPSB0aGlzLm5nQ29udHJvbC5jb250cm9sLnZhbGlkYXRvcjtcclxuICAgIGlmICh2YWxpZGF0b3IpIHtcclxuICAgICAgY29uc3QgZXJyb3JzID0gdmFsaWRhdG9yKHt9IGFzIEFic3RyYWN0Q29udHJvbCk7XHJcbiAgICAgIHJldHVybiAhIWVycm9ycz8uWydyZXF1aXJlZCddO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLy8g4pSA4pSA4pSAIEluaXppYWxpenphemlvbmUg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcblxyXG4gIHByaXZhdGUgYXN5bmMgaW5pdGlhbGl6ZUNvbXBvbmVudCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGF3YWl0IHRoaXMubG9hZExvY2F0aW9uRGF0YSgpO1xyXG4gICAgICB0aGlzLnRpcG9sb2dpY2hlTG9hZGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnBlbmRpbmdXcml0ZVZhbHVlICE9PSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5wcm9jZXNzV3JpdGVWYWx1ZSh0aGlzLnBlbmRpbmdXcml0ZVZhbHVlKTtcclxuICAgICAgICB0aGlzLnBlbmRpbmdXcml0ZVZhbHVlID0gbnVsbDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmFwcGx5SW5pdGlhbENvbmZpZ3VyYXRpb24oKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCF0aGlzLnN1YnNjcmlwdGlvbnNJbml0aWFsaXplZCkge1xyXG4gICAgICAgIHRoaXMuc2V0dXBGb3JtU3Vic2NyaXB0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uc0luaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5lcnJvcignW1VpU3BlY2lmaWNhVGVycml0b3JpYWxlXSBFcnJvcmUgaW5pemlhbGl6emF6aW9uZTonLCBlcnJvcik7XHJcbiAgICAgIHRoaXMudGlwb2xvZ2ljaGVMb2FkZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUZvcm0oKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgbmF6aW9uZUlkOiBbbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgIHByb3ZpbmNpYUlkOiBbbnVsbF0sXHJcbiAgICAgIGNvbXVuZUlkOiBbeyB2YWx1ZTogbnVsbCwgZGlzYWJsZWQ6IHRydWUgfV0sXHJcbiAgICAgIGNhcDogW3sgdmFsdWU6IG51bGwsIGRpc2FibGVkOiB0cnVlIH1dLFxyXG4gICAgICBjb211bmVFc3Rlcm86IFtudWxsXSxcclxuICAgICAgaW5kaXJpenpvOiBbbnVsbF0sXHJcbiAgICAgIG1haWw6IFtudWxsXSxcclxuICAgICAgcGVjOiBbbnVsbF0sXHJcbiAgICAgIHRlbGVmb25vOiBbbnVsbF0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBOZ0NvbnRyb2woKTogdm9pZCB7XHJcbiAgICBjb25zdCBuZ0NvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wsIG51bGwsIHsgc2VsZjogdHJ1ZSwgb3B0aW9uYWw6IHRydWUgfSk7XHJcbiAgICBpZiAobmdDb250cm9sKSB7XHJcbiAgICAgIHRoaXMubmdDb250cm9sID0gbmdDb250cm9sO1xyXG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgbG9hZExvY2F0aW9uRGF0YSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IFtuYXppb25pUmVzdWx0LCBwcm92aW5jZVJlc3VsdF0gPSBhd2FpdCBQcm9taXNlLmFsbChbXHJcbiAgICAgIHRoaXMubG9jYXRpb25TZXJ2aWNlLmdldE5hemlvbmkoKSxcclxuICAgICAgdGhpcy5sb2NhdGlvblNlcnZpY2UuZ2V0UHJvdmluY2UoKSxcclxuICAgIF0pO1xyXG4gICAgdGhpcy5uYXppb25pID0gbmF6aW9uaVJlc3VsdC5kYXRhO1xyXG4gICAgdGhpcy5wcm92aW5jZSA9IHByb3ZpbmNlUmVzdWx0LmNvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICAvLyDilIDilIDilIAgR2VzdGlvbmUgd3JpdGVWYWx1ZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuXHJcbiAgcHJpdmF0ZSBwcm9jZXNzV3JpdGVWYWx1ZSh2YWx1ZTogVWlMb2NhdGlvblZhbHVlIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0luaXRpYWxpemluZyA9IHRydWU7XHJcblxyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIGNvbnN0IHByb2Nlc3NlZFZhbHVlID0gdGhpcy5oYW5kbGVJdGFseUJ5RGVmYXVsdFZhbHVlKHZhbHVlKTtcclxuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUocHJvY2Vzc2VkVmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHJcbiAgICAgIHRoaXMudXBkYXRlQ29tcG9uZW50U3RhdGUocHJvY2Vzc2VkVmFsdWUpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuYXBwbHlJbml0aWFsQ29uZmlndXJhdGlvbigpO1xyXG4gICAgICAgIHRoaXMuaXNJbml0aWFsaXppbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShwcm9jZXNzZWRWYWx1ZSwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVUZXJyaXRvcmlhbENoYW5nZXMoXHJcbiAgICAgICAgICBwcm9jZXNzZWRWYWx1ZS5uYXppb25lSWQgfHwgJycsXHJcbiAgICAgICAgICBwcm9jZXNzZWRWYWx1ZS5wcm92aW5jaWFJZCB8fCAnJyxcclxuICAgICAgICAgIHByb2Nlc3NlZFZhbHVlLmNvbXVuZUlkIHx8ICcnLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVWYWxpZGF0b3JzKCk7XHJcbiAgICAgICAgT2JqZWN0LnZhbHVlcyh0aGlzLmZvcm0uY29udHJvbHMpLmZvckVhY2goKGN0cmwpID0+IGN0cmwudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSkpO1xyXG4gICAgICAgIHRoaXMuZm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtLnJlc2V0KHVuZGVmaW5lZCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICB0aGlzLnJlc2V0Q29tcG9uZW50U3RhdGUoKTtcclxuICAgICAgdGhpcy5hcHBseUluaXRpYWxDb25maWd1cmF0aW9uKCk7XHJcbiAgICAgIHRoaXMuaXNJbml0aWFsaXppbmcgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlSXRhbHlCeURlZmF1bHRWYWx1ZSh2YWx1ZTogVWlMb2NhdGlvblZhbHVlKTogVWlMb2NhdGlvblZhbHVlIHtcclxuICAgIGlmICghdGhpcy5jb25maWcuaXRhbHlCeURlZmF1bHQpIHJldHVybiB2YWx1ZTtcclxuICAgIGlmICh2YWx1ZS5uYXppb25lSWQgJiYgdmFsdWUubmF6aW9uZUlkICE9PSAnSVRBJykge1xyXG4gICAgICByZXR1cm4geyAuLi52YWx1ZSwgbmF6aW9uZUlkOiAnSVRBJywgY29tdW5lRXN0ZXJvOiB1bmRlZmluZWQgfTtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZW1pdEZvcm1WYWx1ZUlmUmVhZHkoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaXNJbml0aWFsaXppbmcgJiYgdGhpcy50aXBvbG9naWNoZUxvYWRlZCkge1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpIGFzIFVpTG9jYXRpb25WYWx1ZSk7XHJcbiAgICAgIHRoaXMubm90aWZ5VmFsaWRhdGlvbkNoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8g4pSA4pSA4pSAIFN1YnNjcmlwdGlvbnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcblxyXG4gIHByaXZhdGUgc2V0dXBGb3JtU3Vic2NyaXB0aW9ucygpOiB2b2lkIHtcclxuICAgIC8vIFN1YnNjcmlwdGlvbiBwZXIgaSBjYW1iaWFtZW50aSB0ZXJyaXRvcmlhbGkgKG5hemlvbmUvcHJvdmluY2lhL2NvbXVuZSlcclxuICAgIGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICB0aGlzLmZvcm1cclxuICAgICAgICAuZ2V0KCduYXppb25lSWQnKSFcclxuICAgICAgICAudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuZm9ybS5nZXQoJ25hemlvbmVJZCcpIS52YWx1ZSksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxyXG4gICAgICB0aGlzLmZvcm1cclxuICAgICAgICAuZ2V0KCdwcm92aW5jaWFJZCcpIVxyXG4gICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5mb3JtLmdldCgncHJvdmluY2lhSWQnKSEudmFsdWUpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcclxuICAgICAgdGhpcy5mb3JtLmdldCgnY29tdW5lSWQnKSEudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuZm9ybS5nZXQoJ2NvbXVuZUlkJykhLnZhbHVlKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXHJcbiAgICBdKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXHJcbiAgICAgICAgbWFwKChbbmF6aW9uZUlkLCBwcm92aW5jaWFJZCwgY29tdW5lSWRdKSA9PiAoeyBuYXppb25lSWQsIHByb3ZpbmNpYUlkLCBjb211bmVJZCB9KSksXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoeyBuYXppb25lSWQsIHByb3ZpbmNpYUlkLCBjb211bmVJZCB9KSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzSW5pdGlhbGl6aW5nICYmIHRoaXMudGlwb2xvZ2ljaGVMb2FkZWQpIHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlVGVycml0b3JpYWxDaGFuZ2VzKG5hemlvbmVJZCwgcHJvdmluY2lhSWQsIGNvbXVuZUlkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIC8vIFN1YnNjcmlwdGlvbiBwZXIgdHV0dGkgaSBjYW1iaWFtZW50aSBkZWwgZm9ybS5cclxuICAgIC8vIGdldFJhd1ZhbHVlKCk6IGkgY2FtcGkgZGlzYWJpbGl0YXRpIChlcy4gQ0FQIGF1dG8tc2VsZXppb25hdG8sIG5hemlvbmUgY29uIGl0YWx5QnlEZWZhdWx0KVxyXG4gICAgLy8gbm9uIGNvbXBhaW9ubyBpbiBmb3JtLnZhbHVlIG1hIGRldm9ubyBlc3NlcmUgcHJvcGFnYXRpIGFsIGZvcm0gcGFyZW50LlxyXG4gICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXHJcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHByZXYsIGN1cnIpID0+IEpTT04uc3RyaW5naWZ5KHByZXYpID09PSBKU09OLnN0cmluZ2lmeShjdXJyKSksXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5lbWl0Rm9ybVZhbHVlSWZSZWFkeSgpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICAvLyDilIDilIDilIAgTG9naWNhIHRlcnJpdG9yaWFsZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVUZXJyaXRvcmlhbENoYW5nZXMobmF6aW9uZUlkOiBzdHJpbmcsIHByb3ZpbmNpYUlkOiBzdHJpbmcsIGNvbXVuZUlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMudXBkYXRlTmF0aW9uYWxpdHlTdGF0ZShuYXppb25lSWQpO1xyXG4gICAgYXdhaXQgdGhpcy51cGRhdGVUZXJyaXRvcmlhbERhdGEocHJvdmluY2lhSWQsIGNvbXVuZUlkKTtcclxuICAgIHRoaXMudXBkYXRlVmFsaWRhdG9ycygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVOYXRpb25hbGl0eVN0YXRlKG5hemlvbmVJZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBuYXppb25lID0gdGhpcy5uYXppb25pLmZpbmQoKG4pID0+IG4uY29kU3RhdG9QayA9PT0gbmF6aW9uZUlkKTtcclxuICAgIHRoaXMuaXNJdGFsaWFuID0gbmF6aW9uZT8uY29kU3RhdG9QayA9PT0gJ0lUQSc7XHJcbiAgICB0aGlzLmlzRm9yZWlnbiA9ICEhKG5hemlvbmUgJiYgbmF6aW9uZS5jb2RTdGF0b1BrICE9PSAnSVRBJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZVRlcnJpdG9yaWFsRGF0YShwcm92aW5jaWFJZDogc3RyaW5nLCBjb211bmVJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5pc0l0YWxpYW4gJiYgcHJvdmluY2lhSWQpIHtcclxuICAgICAgYXdhaXQgdGhpcy51cGRhdGVGaWx0ZXJlZENvbXVuaShwcm92aW5jaWFJZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkQ29tdW5pID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNJdGFsaWFuICYmIGNvbXVuZUlkKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMudXBkYXRlRmlsdGVyZWRDYXBzKGNvbXVuZUlkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRDYXBzID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hcHBseUZpZWxkc0Rpc2FibGVkU3RhdGUoKTtcclxuICAgIHRoaXMuZW1pdEZvcm1WYWx1ZUlmUmVhZHkoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlRmlsdGVyZWRDb211bmkocHJvdmluY2lhSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCFwcm92aW5jaWFJZCkge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkQ29tdW5pID0gW107XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRyeSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRDb211bmkgPSBhd2FpdCB0aGlzLmxvY2F0aW9uU2VydmljZS5nZXRDb211bmlCeVByb3ZpbmNpYShwcm92aW5jaWFJZCk7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRDb211bmVJZCA9IHRoaXMuZm9ybS5nZXQoJ2NvbXVuZUlkJyk/LnZhbHVlO1xyXG4gICAgICBpZiAoY3VycmVudENvbXVuZUlkICYmICF0aGlzLmZpbHRlcmVkQ29tdW5pLmZpbmQoKGMpID0+IGMuY29kaWNlQ29tdW5lUGsgPT09IGN1cnJlbnRDb211bmVJZCkpIHtcclxuICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IGNvbXVuZUlkOiBudWxsIH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRDb211bmkgPSBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlRmlsdGVyZWRDYXBzKGNvbXVuZUlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghY29tdW5lSWQpIHtcclxuICAgICAgdGhpcy5maWx0ZXJlZENhcHMgPSBbXTtcclxuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyBjYXA6IG51bGwgfSwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjYXBzID0gYXdhaXQgdGhpcy5sb2NhdGlvblNlcnZpY2UuZ2V0Q2FwTGlzdChjb211bmVJZCk7XHJcbiAgICB0aGlzLmZpbHRlcmVkQ2FwcyA9IGNhcHMubWFwKChjYXBDb2RlKSA9PiAoeyBpZDogY2FwQ29kZSwgY29kaWNlOiBjYXBDb2RlLCBjb211bmVJZCB9KSk7XHJcblxyXG4gICAgY29uc3QgY3VycmVudENhcCA9IHRoaXMuZm9ybS5nZXQoJ2NhcCcpPy52YWx1ZTtcclxuICAgIGlmICh0aGlzLmZpbHRlcmVkQ2Fwcy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyBjYXA6IHRoaXMuZmlsdGVyZWRDYXBzWzBdLmlkIH0sIHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmZpbHRlcmVkQ2Fwcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgIGlmICghY3VycmVudENhcCB8fCAhdGhpcy5maWx0ZXJlZENhcHMuc29tZSgoYykgPT4gYy5pZCA9PT0gY3VycmVudENhcCkpIHtcclxuICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IGNhcDogbnVsbCB9LCB7IGVtaXRFdmVudDogdHJ1ZSB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyBjYXA6IG51bGwgfSwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZUNvbXBvbmVudFN0YXRlKHZhbHVlOiBVaUxvY2F0aW9uVmFsdWUpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMudXBkYXRlTmF0aW9uYWxpdHlTdGF0ZSh2YWx1ZS5uYXppb25lSWQgfHwgJycpO1xyXG4gICAgYXdhaXQgdGhpcy51cGRhdGVGaWx0ZXJlZENvbXVuaSh2YWx1ZS5wcm92aW5jaWFJZCB8fCAnJyk7XHJcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZUZpbHRlcmVkQ2Fwcyh2YWx1ZS5jb211bmVJZCB8fCAnJyk7XHJcbiAgICB0aGlzLmFwcGx5RmllbGRzRGlzYWJsZWRTdGF0ZSgpO1xyXG4gICAgdGhpcy51cGRhdGVWYWxpZGF0b3JzKCk7XHJcbiAgfVxyXG5cclxuICAvLyDilIDilIDilIAgU3RhdG8gY2FtcGkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcblxyXG4gIHByaXZhdGUgYXBwbHlGaWVsZHNEaXNhYmxlZFN0YXRlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5mb3JtLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY29tdW5lQ29udHJvbCA9IHRoaXMuZm9ybS5nZXQoJ2NvbXVuZUlkJyk7XHJcbiAgICBjb25zdCBjYXBDb250cm9sID0gdGhpcy5mb3JtLmdldCgnY2FwJyk7XHJcbiAgICBjb25zdCBuYXppb25lQ29udHJvbCA9IHRoaXMuZm9ybS5nZXQoJ25hemlvbmVJZCcpO1xyXG5cclxuICAgIC8vIENvbXVuZSBhYmlsaXRhdG8gc29sbyBzZSBJdGFsaWEgKyBwcm92aW5jaWEgc2VsZXppb25hdGFcclxuICAgIGlmICh0aGlzLmlzSXRhbGlhbiAmJiB0aGlzLmZvcm0uZ2V0KCdwcm92aW5jaWFJZCcpPy52YWx1ZSkge1xyXG4gICAgICBjb211bmVDb250cm9sPy5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29tdW5lQ29udHJvbD8uZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ0FQIHNlZ3VlIGxvZ2ljYSBzcGVjaWZpY2FcclxuICAgIGlmICh0aGlzLmlzQ2FwRGlzYWJsZWQpIHtcclxuICAgICAgY2FwQ29udHJvbD8uZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjYXBDb250cm9sPy5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIE5hemlvbmUgZGlzYWJpbGl0YXRhIHNlIGl0YWx5QnlEZWZhdWx0XHJcbiAgICBpZiAodGhpcy5pc0l0YWx5QnlEZWZhdWx0KSB7XHJcbiAgICAgIG5hemlvbmVDb250cm9sPy5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5hemlvbmVDb250cm9sPy5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8g4pSA4pSA4pSAIFZhbGlkYXppb25lIGRpbmFtaWNhIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVZhbGlkYXRvcnMoKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb250cm9sczogUmVjb3JkPHN0cmluZywgQWJzdHJhY3RDb250cm9sIHwgbnVsbD4gPSB7XHJcbiAgICAgIG5hemlvbmU6IHRoaXMuZm9ybS5nZXQoJ25hemlvbmVJZCcpLFxyXG4gICAgICBwcm92aW5jaWE6IHRoaXMuZm9ybS5nZXQoJ3Byb3ZpbmNpYUlkJyksXHJcbiAgICAgIGNvbXVuZTogdGhpcy5mb3JtLmdldCgnY29tdW5lSWQnKSxcclxuICAgICAgY29tdW5lRXN0ZXJvOiB0aGlzLmZvcm0uZ2V0KCdjb211bmVFc3Rlcm8nKSxcclxuICAgICAgY2FwOiB0aGlzLmZvcm0uZ2V0KCdjYXAnKSxcclxuICAgICAgaW5kaXJpenpvOiB0aGlzLmZvcm0uZ2V0KCdpbmRpcml6em8nKSxcclxuICAgICAgbWFpbDogdGhpcy5mb3JtLmdldCgnbWFpbCcpLFxyXG4gICAgICBwZWM6IHRoaXMuZm9ybS5nZXQoJ3BlYycpLFxyXG4gICAgICB0ZWxlZm9ubzogdGhpcy5mb3JtLmdldCgndGVsZWZvbm8nKSxcclxuICAgIH07XHJcblxyXG4gICAgLy8gUHVsaXNjaSB0dXR0aSBpIHZhbGlkYXRvcmlcclxuICAgIE9iamVjdC52YWx1ZXMoY29udHJvbHMpLmZvckVhY2goKGMpID0+IGM/LmNsZWFyVmFsaWRhdG9ycygpKTtcclxuXHJcbiAgICAvLyBOYXppb25lXHJcbiAgICBpZiAodGhpcy5jb25maWcubmF6aW9uZT8ucmVxdWlyZWQgIT09IGZhbHNlKSB7XHJcbiAgICAgIGNvbnRyb2xzWyduYXppb25lJ10/LnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNJdGFsaWFuKSB7XHJcbiAgICAgIGlmICh0aGlzLmNvbmZpZy5wcm92aW5jaWE/LnJlcXVpcmVkICE9PSBmYWxzZSkge1xyXG4gICAgICAgIGNvbnRyb2xzWydwcm92aW5jaWEnXT8uc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5jb25maWcuY29tdW5lPy5yZXF1aXJlZCAhPT0gZmFsc2UpIHtcclxuICAgICAgICBjb250cm9sc1snY29tdW5lJ10/LnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuY29uZmlnLmNhcD8ucmVxdWlyZWQgJiYgdGhpcy5zaG93Q0FQKSB7XHJcbiAgICAgICAgY29udHJvbHNbJ2NhcCddPy5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmNvbmZpZy5pbmRpcml6em8/LnJlcXVpcmVkICYmIHRoaXMuc2hvd0luZGlyaXp6bykge1xyXG4gICAgICAgIGNvbnRyb2xzWydpbmRpcml6em8nXT8uc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmFwcGx5Q29udGFjdFZhbGlkYXRvcnMoY29udHJvbHMpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmlzRm9yZWlnbikge1xyXG4gICAgICBpZiAodGhpcy5jb25maWcuY29tdW5lRXN0ZXJvPy5yZXF1aXJlZCAhPT0gZmFsc2UpIHtcclxuICAgICAgICBjb250cm9sc1snY29tdW5lRXN0ZXJvJ10/LnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBBZ2dpb3JuYSBzZW56YSBlbWV0dGVyZSBldmVudGlcclxuICAgIE9iamVjdC52YWx1ZXMoY29udHJvbHMpLmZvckVhY2goKGMpID0+IGM/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pKTtcclxuICAgIHRoaXMubm90aWZ5VmFsaWRhdGlvbkNoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhcHBseUNvbnRhY3RWYWxpZGF0b3JzKGNvbnRyb2xzOiBSZWNvcmQ8c3RyaW5nLCBBYnN0cmFjdENvbnRyb2wgfCBudWxsPik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnLm1haWw/LnJlcXVpcmVkICYmIHRoaXMuc2hvd01haWwpIHtcclxuICAgICAgY29udHJvbHNbJ21haWwnXT8uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKHRoaXMuRU1BSUxfUEFUVEVSTildKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5zaG93TWFpbCkge1xyXG4gICAgICBjb250cm9sc1snbWFpbCddPy5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnBhdHRlcm4odGhpcy5FTUFJTF9QQVRURVJOKV0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZy5wZWM/LnJlcXVpcmVkICYmIHRoaXMuc2hvd1BFQykge1xyXG4gICAgICBjb250cm9sc1sncGVjJ10/LnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybih0aGlzLlBFQ19QQVRURVJOKV0pO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnNob3dQRUMpIHtcclxuICAgICAgY29udHJvbHNbJ3BlYyddPy5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnBhdHRlcm4odGhpcy5QRUNfUEFUVEVSTildKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jb25maWcudGVsZWZvbm8/LnJlcXVpcmVkICYmIHRoaXMuc2hvd1RlbGVmb25vKSB7XHJcbiAgICAgIGNvbnRyb2xzWyd0ZWxlZm9ubyddPy5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4odGhpcy5QSE9ORV9QQVRURVJOKV0pO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnNob3dUZWxlZm9ubykge1xyXG4gICAgICBjb250cm9sc1sndGVsZWZvbm8nXT8uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5wYXR0ZXJuKHRoaXMuUEhPTkVfUEFUVEVSTildKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdmFsaWRhdGVDb250YWN0RmllbGRzKGVycm9yczogVmFsaWRhdGlvbkVycm9ycyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnLm1haWw/LnJlcXVpcmVkICYmIHRoaXMuc2hvd01haWwpIHtcclxuICAgICAgY29uc3QgdiA9IHRoaXMuZm9ybS5nZXQoJ21haWwnKT8udmFsdWU7XHJcbiAgICAgIGlmICghdiB8fCB2LnRyaW0oKSA9PT0gJycpIHtcclxuICAgICAgICBlcnJvcnNbJ21haWxSZXF1aXJlZCddID0gXCJJbnNlcmlzY2kgbCdlbWFpbFwiO1xyXG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLkVNQUlMX1BBVFRFUk4udGVzdCh2KSkge1xyXG4gICAgICAgIGVycm9yc1snbWFpbEludmFsaWQnXSA9IFwiSW5zZXJpc2NpIHVuJ2VtYWlsIHZhbGlkYVwiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jb25maWcucGVjPy5yZXF1aXJlZCAmJiB0aGlzLnNob3dQRUMpIHtcclxuICAgICAgY29uc3QgdiA9IHRoaXMuZm9ybS5nZXQoJ3BlYycpPy52YWx1ZTtcclxuICAgICAgaWYgKCF2IHx8IHYudHJpbSgpID09PSAnJykge1xyXG4gICAgICAgIGVycm9yc1sncGVjUmVxdWlyZWQnXSA9ICdJbnNlcmlzY2kgbGEgUEVDJztcclxuICAgICAgfSBlbHNlIGlmICghdGhpcy5QRUNfUEFUVEVSTi50ZXN0KHYpKSB7XHJcbiAgICAgICAgZXJyb3JzWydwZWNJbnZhbGlkJ10gPSAnSW5zZXJpc2NpIHVuYSBQRUMgdmFsaWRhJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY29uZmlnLnRlbGVmb25vPy5yZXF1aXJlZCAmJiB0aGlzLnNob3dUZWxlZm9ubykge1xyXG4gICAgICBjb25zdCB2ID0gdGhpcy5mb3JtLmdldCgndGVsZWZvbm8nKT8udmFsdWU7XHJcbiAgICAgIGlmICghdiB8fCB2LnRyaW0oKSA9PT0gJycpIHtcclxuICAgICAgICBlcnJvcnNbJ3RlbGVmb25vUmVxdWlyZWQnXSA9ICdJbnNlcmlzY2kgaWwgdGVsZWZvbm8nO1xyXG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLlBIT05FX1BBVFRFUk4udGVzdCh2KSkge1xyXG4gICAgICAgIGVycm9yc1sndGVsZWZvbm9JbnZhbGlkJ10gPSAnSW5zZXJpc2NpIHVuIG51bWVybyBkaSB0ZWxlZm9ubyB2YWxpZG8nO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyDilIDilIDilIAgQ29uZmlndXJhemlvbmUgaW5pemlhbGUg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcblxyXG4gIHByaXZhdGUgYXBwbHlJbml0aWFsQ29uZmlndXJhdGlvbigpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5hemlvbmVDb250cm9sID0gdGhpcy5mb3JtLmdldCgnbmF6aW9uZUlkJyk7XHJcbiAgICBjb25zdCBjdXJyZW50TmF6aW9uZUlkID0gbmF6aW9uZUNvbnRyb2w/LnZhbHVlO1xyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZy5pdGFseUJ5RGVmYXVsdCkge1xyXG4gICAgICBjb25zdCBpdGFsaWEgPSB0aGlzLm5hemlvbmkuZmluZCgobikgPT4gbi5jb2RTdGF0b1BrID09PSAnSVRBJyk7XHJcbiAgICAgIGlmIChpdGFsaWEgJiYgKCFjdXJyZW50TmF6aW9uZUlkIHx8IGN1cnJlbnROYXppb25lSWQgIT09ICdJVEEnKSkge1xyXG4gICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHsgbmF6aW9uZUlkOiBpdGFsaWEuY29kU3RhdG9QayB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy51cGRhdGVOYXRpb25hbGl0eVN0YXRlKCdJVEEnKTtcclxuICAgICAgbmF6aW9uZUNvbnRyb2w/LmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGN1cnJlbnROYXppb25lSWQpIHRoaXMudXBkYXRlTmF0aW9uYWxpdHlTdGF0ZShjdXJyZW50TmF6aW9uZUlkKTtcclxuICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSBuYXppb25lQ29udHJvbD8uZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnVwZGF0ZVZhbGlkYXRvcnMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbm90aWZ5VmFsaWRhdGlvbkNoYW5nZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm9uVmFsaWRhdG9yQ2hhbmdlKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5vblZhbGlkYXRvckNoYW5nZSgpLCAwKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPCEtLVxyXG4gIENvbXBvbmVudGUgcGVyIGxhIHNlbGV6aW9uZSBkaSBkYXRpIGdlb2dyYWZpY2kgKEl0YWxpYS9Fc3Rlcm8pLlxyXG4gIFV0aWxpenphIGlsIGZsb3cgY29udHJvbCBtb2Rlcm5vIGRpIEFuZ3VsYXIgKEBpZiwgQGZvcikuXHJcbi0tPlxyXG48ZGl2XHJcbiAgY2xhc3M9XCJ1aS1sb2NhdGlvblwiXHJcbiAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcclxuICBbY2xhc3MudWktbG9jYXRpb24tLWZvcmVpZ25dPVwiaXNGb3JlaWduXCJcclxuICBbY2xhc3MudWktbG9jYXRpb24tLWl0YWxpYW5dPVwiaXNJdGFsaWFuXCJcclxuPlxyXG4gIDwhLS0gPT09PT09PT09PT09PT09PT09PT0gTkFaSU9ORSA9PT09PT09PT09PT09PT09PT09PSAtLT5cclxuICA8ZGl2IGNsYXNzPVwidWktbG9jYXRpb25fX2ZpZWxkLXJvd1wiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkXHJcbiAgICAgIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCJcclxuICAgICAgY2xhc3M9XCJ1aS1sb2NhdGlvbl9fZnVsbC13aWR0aFwiXHJcbiAgICAgIFtjbGFzcy51aS1sb2NhdGlvbl9faXRhbHktZGVmYXVsdF09XCJjb25maWcuaXRhbHlCeURlZmF1bHRcIlxyXG4gICAgPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7IGxhYmVscy5uYXppb25lIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmF6aW9uZUlkXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgaXNOYXppb25lRGlzYWJsZWRcIlxyXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgICBhcmlhLWxhYmVsPVwiU2VsZXppb25hIG5hemlvbmVcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIm51bGxcIj5TZWxlemlvbmEgbmF6aW9uZTwvbWF0LW9wdGlvbj5cclxuICAgICAgICBAZm9yIChuYXppb25lIG9mIG5hemlvbmk7IHRyYWNrIG5hemlvbmUuY29kU3RhdG9Qaykge1xyXG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIm5hemlvbmUuY29kU3RhdG9Qa1wiPlxyXG4gICAgICAgICAgICB7eyBuYXppb25lLmRlc2NyaXppb25lIH19XHJcbiAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgIEBpZiAoc2hvdWxkU2hvd0ZpZWxkRXJyb3JzKCduYXppb25lSWQnKSkge1xyXG4gICAgICAgIDxtYXQtZXJyb3I+XHJcbiAgICAgICAgICBAZm9yIChlcnJvciBvZiBnZXRGaWVsZEVycm9ycygnbmF6aW9uZUlkJyk7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICA8ZGl2Pnt7IGVycm9yIH19PC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgIH1cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gPT09PT09PT09PT09PT09PT09PT0gQ0FNUEkgSVRBTElBID09PT09PT09PT09PT09PT09PT09IC0tPlxyXG4gIEBpZiAoaXNJdGFsaWFuKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwidWktbG9jYXRpb25fX3Byb3ZpbmNpYS1jb211bmVcIj5cclxuICAgICAgPCEtLSBQcm92aW5jaWEgLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ1aS1sb2NhdGlvbl9fZmllbGQtcm93XCI+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJ1aS1sb2NhdGlvbl9fZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57eyBsYWJlbHMucHJvdmluY2lhIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwcm92aW5jaWFJZFwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlNlbGV6aW9uYSBwcm92aW5jaWFcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwibnVsbFwiPlNlbGV6aW9uYSBwcm92aW5jaWE8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIEBmb3IgKHByb3Ygb2YgcHJvdmluY2U7IHRyYWNrIHByb3YuY29kaWNlUHJvdmluY2lhUGspIHtcclxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwicHJvdi5jb2RpY2VQcm92aW5jaWFQa1wiPlxyXG4gICAgICAgICAgICAgICAge3sgcHJvdi5ub21lUHJvdmluY2lhIH19XHJcbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICBAaWYgKHNob3VsZFNob3dGaWVsZEVycm9ycygncHJvdmluY2lhSWQnKSkge1xyXG4gICAgICAgICAgICA8bWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgIEBmb3IgKGVycm9yIG9mIGdldEZpZWxkRXJyb3JzKCdwcm92aW5jaWFJZCcpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgIDxkaXY+e3sgZXJyb3IgfX08L2Rpdj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLSBDb211bmUgLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ1aS1sb2NhdGlvbl9fZmllbGQtcm93XCI+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJ1aS1sb2NhdGlvbl9fZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57eyBsYWJlbHMuY29tdW5lIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb211bmVJZFwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlNlbGV6aW9uYSBjb211bmVcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwibnVsbFwiPlNlbGV6aW9uYSBjb211bmU8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIEBmb3IgKGNvbXVuZSBvZiBmaWx0ZXJlZENvbXVuaTsgdHJhY2sgY29tdW5lLmNvZGljZUNvbXVuZVBrKSB7XHJcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImNvbXVuZS5jb2RpY2VDb211bmVQa1wiPlxyXG4gICAgICAgICAgICAgICAge3sgY29tdW5lLm5vbWVDb211bmUgfX1cclxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgIEBpZiAoc2hvdWxkU2hvd0ZpZWxkRXJyb3JzKCdjb211bmVJZCcpKSB7XHJcbiAgICAgICAgICAgIDxtYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgQGZvciAoZXJyb3Igb2YgZ2V0RmllbGRFcnJvcnMoJ2NvbXVuZUlkJyk7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgPGRpdj57eyBlcnJvciB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tID09PT09PT09PT09PT09PT09PT09IEdSSUdMSUEgQ0FNUEkgRElOQU1JQ0kgPT09PT09PT09PT09PT09PT09PT0gLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwidWktbG9jYXRpb25fX2R5bmFtaWMtZ3JpZFwiPlxyXG4gICAgICA8IS0tIENBUCAtLT5cclxuICAgICAgQGlmIChzaG93Q0FQICYmIGlzSXRhbGlhbikge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1aS1sb2NhdGlvbl9fZ3JpZC1jZWxsXCIgW3N0eWxlLmdyaWQtY29sdW1uXT1cIidzcGFuICcgKyBjYXBDb2x1bW5zXCI+XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInVpLWxvY2F0aW9uX19mdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgbGFiZWxzLmNhcCB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNhcFwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGlzQ2FwRGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2VsZXppb25hIENBUFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwibnVsbFwiPlNlbGV6aW9uYSBDQVA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgQGZvciAoY2FwIG9mIGZpbHRlcmVkQ2FwczsgdHJhY2sgY2FwLmlkKSB7XHJcbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiY2FwLmlkXCI+e3sgY2FwLmNvZGljZSB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgQGlmIChzaG91bGRTaG93RmllbGRFcnJvcnMoJ2NhcCcpKSB7XHJcbiAgICAgICAgICAgICAgPG1hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIEBmb3IgKGVycm9yIG9mIGdldEZpZWxkRXJyb3JzKCdjYXAnKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+e3sgZXJyb3IgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG5cclxuICAgICAgPCEtLSBJbmRpcml6em8gLS0+XHJcbiAgICAgIEBpZiAoc2hvd0luZGlyaXp6bykge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1aS1sb2NhdGlvbl9fZ3JpZC1jZWxsXCIgW3N0eWxlLmdyaWQtY29sdW1uXT1cIidzcGFuICcgKyBpbmRpcml6em9Db2x1bW5zXCI+XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInVpLWxvY2F0aW9uX19mdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgbGFiZWxzLmluZGlyaXp6byB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImluZGlyaXp6b1wiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJWaWEsIG51bWVybyBjaXZpY29cIlxyXG4gICAgICAgICAgICAgIFtyZWFkb25seV09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICBAaWYgKHNob3VsZFNob3dGaWVsZEVycm9ycygnaW5kaXJpenpvJykpIHtcclxuICAgICAgICAgICAgICA8bWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgQGZvciAoZXJyb3Igb2YgZ2V0RmllbGRFcnJvcnMoJ2luZGlyaXp6bycpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgPGRpdj57eyBlcnJvciB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcblxyXG4gICAgICA8IS0tIE1haWwgLS0+XHJcbiAgICAgIEBpZiAoc2hvd01haWwpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwidWktbG9jYXRpb25fX2dyaWQtY2VsbFwiIFtzdHlsZS5ncmlkLWNvbHVtbl09XCInc3BhbiAnICsgbWFpbENvbHVtbnNcIj5cclxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidWktbG9jYXRpb25fX2Z1bGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgPG1hdC1sYWJlbD57eyBsYWJlbHMubWFpbCB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJlbWFpbFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWFpbFwiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJlc2VtcGlvQGVtYWlsLmNvbVwiXHJcbiAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIEBpZiAoc2hvdWxkU2hvd0ZpZWxkRXJyb3JzKCdtYWlsJykpIHtcclxuICAgICAgICAgICAgICA8bWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgQGZvciAoZXJyb3Igb2YgZ2V0RmllbGRFcnJvcnMoJ21haWwnKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+e3sgZXJyb3IgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG5cclxuICAgICAgPCEtLSBQRUMgLS0+XHJcbiAgICAgIEBpZiAoc2hvd1BFQykge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1aS1sb2NhdGlvbl9fZ3JpZC1jZWxsXCIgW3N0eWxlLmdyaWQtY29sdW1uXT1cIidzcGFuICcgKyBwZWNDb2x1bW5zXCI+XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInVpLWxvY2F0aW9uX19mdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgbGFiZWxzLnBlYyB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJlbWFpbFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGVjXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cImVzZW1waW9AcGVjLml0XCJcclxuICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgQGlmIChzaG91bGRTaG93RmllbGRFcnJvcnMoJ3BlYycpKSB7XHJcbiAgICAgICAgICAgICAgPG1hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIEBmb3IgKGVycm9yIG9mIGdldEZpZWxkRXJyb3JzKCdwZWMnKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+e3sgZXJyb3IgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG5cclxuICAgICAgPCEtLSBUZWxlZm9ubyAtLT5cclxuICAgICAgQGlmIChzaG93VGVsZWZvbm8pIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwidWktbG9jYXRpb25fX2dyaWQtY2VsbFwiIFtzdHlsZS5ncmlkLWNvbHVtbl09XCInc3BhbiAnICsgdGVsZWZvbm9Db2x1bW5zXCI+XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInVpLWxvY2F0aW9uX19mdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgbGFiZWxzLnRlbGVmb25vIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cInRlbFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGVsZWZvbm9cIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiKzM5IDEyMyA0NTYgNzg5MFwiXHJcbiAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIEBpZiAoc2hvdWxkU2hvd0ZpZWxkRXJyb3JzKCd0ZWxlZm9ubycpKSB7XHJcbiAgICAgICAgICAgICAgPG1hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIEBmb3IgKGVycm9yIG9mIGdldEZpZWxkRXJyb3JzKCd0ZWxlZm9ubycpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgPGRpdj57eyBlcnJvciB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcblxyXG4gIDwhLS0gPT09PT09PT09PT09PT09PT09PT0gQ0FNUE8gRVNURVJPID09PT09PT09PT09PT09PT09PT09IC0tPlxyXG4gIEBpZiAoaXNGb3JlaWduKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwidWktbG9jYXRpb25fX2ZpZWxkLXJvd1wiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInVpLWxvY2F0aW9uX19mdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57eyBsYWJlbHMuY29tdW5lRXN0ZXJvIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29tdW5lRXN0ZXJvXCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiSW5zZXJpc2NpIGNpdHRhL2NvbXVuZVwiXHJcbiAgICAgICAgICBbcmVhZG9ubHldPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgQGlmIChzaG91bGRTaG93RmllbGRFcnJvcnMoJ2NvbXVuZUVzdGVybycpKSB7XHJcbiAgICAgICAgICA8bWF0LWVycm9yPlxyXG4gICAgICAgICAgICBAZm9yIChlcnJvciBvZiBnZXRGaWVsZEVycm9ycygnY29tdW5lRXN0ZXJvJyk7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgIDxkaXY+e3sgZXJyb3IgfX08L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// ── Tipi validazione ──
|
|
2
2
|
export { UI_FORM_NESTED_FIELD_ERRORS_KEY, } from './validation.types';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy11aS1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0tYnVpbGRlci90eXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSx5QkFBeUI7QUFDekIsT0FBTyxFQVNMLCtCQUErQixHQUNoQyxNQUFNLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8g4pSA4pSAIFRpcGkgY2FtcG8g4pSA4pSAXG5leHBvcnQge1xuICBVaUZpZWxkVHlwZSxcbiAgVWlGaWVsZE9wdGlvbixcbiAgVWlEeW5hbWljT3B0aW9uc0NvbmZpZyxcbiAgVWlEZXBlbmRlbnRPcHRpb25zQ29uZmlnLFxuICBVaUljb25Ub29sdGlwLFxuICBVaUZpbGVEYXRhLFxuICBVaUZpbGVJbnB1dENvbmZpZyxcbiAgVWlDdXN0b21Db21wb25lbnRDb25maWcsXG4gIFVpQ3VzdG9tRmllbGRUZW1wbGF0ZUNvbnRleHQsXG4gIFVpQ3VzdG9tRm9ybUNvbXBvbmVudCxcbiAgVWlGb3JtRmllbGREZXNjcmlwdG9yLFxufSBmcm9tICcuL2ZpZWxkLnR5cGVzJztcblxuLy8g4pSA4pSAIFRpcGkgdmFsaWRhemlvbmUg4pSA4pSAXG5leHBvcnQge1xuICBVaUNyb3NzRmllbGRPcGVyYXRvcixcbiAgVWlDcm9zc0ZpZWxkQ29uZmlnLFxuICBVaURhdGVLZXl3b3JkLFxuICBVaURhdGVWYWxpZGF0aW9uQ29uZmlnLFxuICBVaVZhbGlkYXRpb25UeXBlLFxuICBVaVZhbGlkYXRpb25SdWxlLFxuICBVaUZvcm1WYWxpZGF0aW9uU3RhdGUsXG4gIFVpRm9ybUVycm9yRGV0YWlsLFxuICBVSV9GT1JNX05FU1RFRF9GSUVMRF9FUlJPUlNfS0VZLFxufSBmcm9tICcuL3ZhbGlkYXRpb24udHlwZXMnO1xuXG4vLyDilIDilIAgVGlwaSBjb25kaXppb25lIOKUgOKUgFxuZXhwb3J0IHtcbiAgVWlDb25kaXRpb25hbE9wZXJhdG9yLFxuICBVaUZpZWxkQ29uZGl0aW9uLFxufSBmcm9tICcuL2NvbmRpdGlvbi50eXBlcyc7XG5cbi8vIOKUgOKUgCBUaXBpIHRlcnJpdG9yaWFsZSAobG9jYXRpb24pIOKUgOKUgFxuZXhwb3J0IHtcbiAgVWlMb2NhdGlvbkZpZWxkQ29uZmlnLFxuICBVaUxvY2F0aW9uQ29uZmlnLFxuICBVaUxvY2F0aW9uTGFiZWxzLFxuICBVaUxvY2F0aW9uVmFsdWUsXG4gIFVpTG9jYXRpb25UYWJsZUNvbmZpZyxcbiAgVWlMb2NhdGlvblJvdyxcbn0gZnJvbSAnLi90ZXJyaXRvcmlhbGUudHlwZXMnO1xuXG4vLyDilIDilIAgVGlwaSBsb2NhdGlvbiBnZW9jb2RpZmljYXRhIOKUgOKUgFxuZXhwb3J0IHtcbiAgVWlHZW9jb2RlZExvY2F0aW9uVHlwZSxcbiAgVWlHZW9jb2RlZExvY2F0aW9uSW5wdXQsXG4gIFVpR2VvY29kZWRJdGFsaWFuRGV0YWlscyxcbiAgVWlHZW9jb2RlZEZvcmVpZ25EZXRhaWxzLFxuICBVaUxvY2F0aW9uR2VvY29kZWRGaWVsZENvbmZpZyxcbn0gZnJvbSAnLi9nZW9jb2RlZC1sb2NhdGlvbi50eXBlcyc7XG5cbi8vIOKUgOKUgCBUaXBpIHNjaGVtYSDilIDilIBcbmV4cG9ydCB7XG4gIFVpUmVwZWF0YWJsZUNvbmZpZyxcbiAgVWlXaXphcmRTdGVwVmFsaWRhdGlvbixcbiAgVWlXaXphcmRWYWxpZGF0aW9uRm4sXG4gIFVpV2l6YXJkU3RlcENvbmZpZyxcbiAgVWlGb3JtU2VjdGlvbixcbiAgVWlGb3JtQnVpbGRlckNvbmZpZyxcbiAgVWlXaXphcmRDb25maWcsXG4gIFVpV2l6YXJkU3RhdGUsXG4gIFVpRm9ybVNjaGVtYSxcbiAgVWlGb3JtRGF0YSxcbiAgVWlGb3JtQ3VzdG9tRXZlbnQsXG4gIFVpV2l6YXJkU3RlcENoYW5nZUV2ZW50LFxuICBVaVdpemFyZFN0ZXBDb21wbGV0ZUV2ZW50LFxuICBVaVdpemFyZFJlc3VtZU9wdGlvbnMsXG4gIFVpV2l6YXJkUmVzdW1lUmVzdWx0LFxufSBmcm9tICcuL3NjaGVtYS50eXBlcyc7XG4iXX0=
|