ontimize-web-ngx 15.6.0-next.1 → 15.6.0-next.3

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.
Files changed (76) hide show
  1. package/esm2020/lib/components/app-header/o-app-header.component.mjs +3 -3
  2. package/esm2020/lib/components/app-sidenav/menu-item/o-app-sidenav-menu-item.component.mjs +3 -3
  3. package/esm2020/lib/components/filter-builder/o-filter-builder.component.mjs +1 -1
  4. package/esm2020/lib/components/form/navigation/o-form-navigation.component.mjs +2 -2
  5. package/esm2020/lib/components/form/o-form.component.mjs +6 -4
  6. package/esm2020/lib/components/grid/o-grid.component.mjs +3 -2
  7. package/esm2020/lib/components/input/o-form-service-component.class.mjs +2 -2
  8. package/esm2020/lib/components/list/list-item/o-list-item.component.mjs +8 -3
  9. package/esm2020/lib/components/list/o-list.component.mjs +18 -4
  10. package/esm2020/lib/components/o-service-base-component.class.mjs +2 -2
  11. package/esm2020/lib/components/table/column/cell-renderer/service/o-table-cell-renderer-service.component.mjs +3 -3
  12. package/esm2020/lib/components/table/extensions/header/table-menu/o-table-menu.component.mjs +2 -2
  13. package/esm2020/lib/components/table/extensions/o-table.dao.mjs +6 -4
  14. package/esm2020/lib/components/table/o-table.component.mjs +3 -2
  15. package/esm2020/lib/components/user-info/o-user-info.component.mjs +5 -4
  16. package/esm2020/lib/config/o-providers.mjs +3 -2
  17. package/esm2020/lib/injection-tokens/index.mjs +17 -0
  18. package/esm2020/lib/interfaces/base-response.interface.mjs +1 -1
  19. package/esm2020/lib/interfaces/form-layout-manager.interface.mjs +1 -1
  20. package/esm2020/lib/interfaces/jsonapi-response.interface.mjs +2 -1
  21. package/esm2020/lib/interfaces/service-response.interface.mjs +1 -1
  22. package/esm2020/lib/layouts/form-layout/o-form-layout-manager.component.mjs +3 -2
  23. package/esm2020/lib/services/base-service.class.mjs +3 -3
  24. package/esm2020/lib/services/factories.mjs +13 -46
  25. package/esm2020/lib/services/index.mjs +2 -2
  26. package/esm2020/lib/services/jsonapi/jsonapi-preferences.service.mjs +2 -2
  27. package/esm2020/lib/services/jsonapi/jsonapi.service.mjs +10 -15
  28. package/esm2020/lib/services/request-adapter/base-request-argument.adapter.mjs +12 -0
  29. package/esm2020/lib/services/request-adapter/base-request-argument.interface.mjs +2 -0
  30. package/esm2020/lib/services/request-adapter/index.mjs +5 -0
  31. package/esm2020/lib/services/request-adapter/jsonapi-request-arguments.adapter.mjs +70 -0
  32. package/esm2020/lib/services/request-adapter/ontimize-request-arguments.adapter.mjs +19 -0
  33. package/esm2020/lib/services/state/o-filter-builder-component-state.service.mjs +1 -1
  34. package/esm2020/lib/services/translate/o-translate.service.mjs +3 -2
  35. package/esm2020/lib/util/errors.mjs +2 -2
  36. package/esm2020/lib/util/index.mjs +2 -1
  37. package/esm2020/lib/util/injection-token.utils.mjs +4 -0
  38. package/esm2020/lib/util/preference-mapping-util.mjs +2 -2
  39. package/esm2020/lib/util/util.mjs +15 -4
  40. package/esm2020/public-api.mjs +2 -1
  41. package/fesm2015/ontimize-web-ngx.mjs +4469 -4442
  42. package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
  43. package/fesm2020/ontimize-web-ngx.mjs +4138 -4111
  44. package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
  45. package/lib/components/filter-builder/o-filter-builder.component.d.ts +1 -1
  46. package/lib/components/list/o-list.component.d.ts +3 -1
  47. package/lib/components/user-info/o-user-info.component.d.ts +2 -1
  48. package/lib/injection-tokens/index.d.ts +29 -0
  49. package/lib/interfaces/base-response.interface.d.ts +0 -2
  50. package/lib/interfaces/form-layout-manager.interface.d.ts +1 -1
  51. package/lib/interfaces/jsonapi-response.interface.d.ts +47 -7
  52. package/lib/interfaces/service-response.interface.d.ts +2 -0
  53. package/lib/services/base-service.class.d.ts +2 -2
  54. package/lib/services/factories.d.ts +7 -28
  55. package/lib/services/index.d.ts +1 -1
  56. package/lib/services/jsonapi/jsonapi.service.d.ts +3 -4
  57. package/lib/services/{query-arguments/base-query-argument.adapter.d.ts → request-adapter/base-request-argument.adapter.d.ts} +2 -1
  58. package/lib/services/{query-arguments/base-query-argument.interface.d.ts → request-adapter/base-request-argument.interface.d.ts} +1 -1
  59. package/lib/services/request-adapter/index.d.ts +4 -0
  60. package/lib/services/request-adapter/jsonapi-request-arguments.adapter.d.ts +13 -0
  61. package/lib/services/request-adapter/ontimize-request-arguments.adapter.d.ts +8 -0
  62. package/lib/services/state/o-filter-builder-component-state.service.d.ts +1 -1
  63. package/lib/util/index.d.ts +1 -0
  64. package/lib/util/injection-token.utils.d.ts +2 -0
  65. package/lib/util/util.d.ts +2 -0
  66. package/package.json +1 -1
  67. package/public-api.d.ts +1 -0
  68. package/theme.scss +69 -69
  69. package/esm2020/lib/services/query-arguments/base-query-argument.adapter.mjs +0 -9
  70. package/esm2020/lib/services/query-arguments/base-query-argument.interface.mjs +0 -2
  71. package/esm2020/lib/services/query-arguments/index.mjs +0 -5
  72. package/esm2020/lib/services/query-arguments/jsonapi-query-arguments.adapter.mjs +0 -62
  73. package/esm2020/lib/services/query-arguments/ontimize-query-arguments.adapter.mjs +0 -19
  74. package/lib/services/query-arguments/index.d.ts +0 -4
  75. package/lib/services/query-arguments/jsonapi-query-arguments.adapter.d.ts +0 -12
  76. package/lib/services/query-arguments/ontimize-query-arguments.adapter.d.ts +0 -8
@@ -68,7 +68,7 @@ export class OAppHeaderComponent {
68
68
  OAppHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OAppHeaderComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
69
69
  OAppHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OAppHeaderComponent, selector: "o-app-header", inputs: { showUserInfo: ["show-user-info", "showUserInfo"], showLanguageSelector: ["show-language-selector", "showLanguageSelector"], useFlagIcons: ["use-flag-icons", "useFlagIcons"], color: "color", headerHeight: ["header-height", "headerHeight"], showTitle: ["show-title", "showTitle"], staticTitle: ["static-title", "staticTitle"], showStaticTitle: ["show-static-title", "showStaticTitle"] }, outputs: { onSidenavToggle: "onSidenavToggle" }, host: { properties: { "class.o-app-header": "true", "class.o-app-header-small": "headerHeight===\"small\"", "class.o-app-header-medium": "headerHeight===\"medium\"", "class.o-app-header-large": "headerHeight===\"large\"" } }, providers: [
70
70
  { provide: OAppHeaderBase, useExisting: forwardRef(() => OAppHeaderComponent) }
71
- ], viewQueries: [{ propertyName: "userInfo", first: true, predicate: ["userInfo"], descendants: true }], ngImport: i0, template: "<nav fxFlex fxLayout=\"row\" fxLayoutAlign=\"space-between stretch\" [ngClass]=\"color ? 'o-app-header-'+color : ''\">\n <div fxFlex fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\n <ng-content></ng-content>\n <ng-content select=\"o-app-layout-header-projection-start\"></ng-content>\n <span *ngIf=\"showTitle && !showStaticTitle\" class=\"o-app-header-title\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n {{ headerTitle$ | async | oTranslate }}\n </span>\n <span *ngIf=\"showTitle && showStaticTitle\" class=\"o-app-header-title\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n {{ staticTitle | oTranslate }}\n </span>\n <div fxLayout=\"row\" fxLayoutAlign=\"end stretch\" class=\"o-app-header-default-actions\">\n <div class=\"layout-header-projection-end\">\n <ng-content select=\"o-app-layout-header-projection-end\"></ng-content>\n </div>\n <o-user-info #userInfo *ngIf=\"showUserInfo\"></o-user-info>\n <o-language-selector *ngIf=\"showLanguageSelector\" [use-flag-icons]=\"useFlagIcons\"></o-language-selector>\n </div>\n </div>\n</nav>\n", styles: [".o-app-header{z-index:2;box-shadow:0 2px 6px #00000029}.o-app-header.o-app-header-large{height:56px}.o-app-header.o-app-header-large+.header-layout{top:56px}.o-app-header.o-app-header-large .o-user-info{font-size:16px}.o-app-header.o-app-header-large .o-user-info .o-user-info-avatar-wrapper{height:40px;width:40px}.o-app-header.o-app-header-medium{height:48px}.o-app-header.o-app-header-medium+.header-layout{top:48px}.o-app-header.o-app-header-medium .o-user-info{font-size:16px}.o-app-header.o-app-header-medium .o-user-info .o-user-info-avatar-wrapper{height:32px;width:32px}.o-app-header.o-app-header-small{height:40px}.o-app-header.o-app-header-small+.header-layout{top:40px}.o-app-header.o-app-header-small .o-user-info{font-size:14px}.o-app-header.o-app-header-small .o-user-info .o-user-info-avatar-wrapper{height:30px;width:30px}.o-app-header nav{padding-right:16px}.o-app-header nav .sidenav-toggle{text-align:center;padding:16px;cursor:pointer}.o-app-header nav .o-app-header-title{padding:0 16px;cursor:default}.o-app-header nav .o-app-header-default-actions{margin-left:auto}.o-app-header nav .o-app-header-default-actions .layout-header-projection-end{margin-right:16px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.OLanguageSelectorComponent, selector: "o-language-selector", inputs: ["use-flag-icons"], outputs: ["onChange"] }, { kind: "component", type: i3.OUserInfoComponent, selector: "o-user-info", inputs: ["show-profile", "show-settings", "show-logout"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i4.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i5.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
71
+ ], viewQueries: [{ propertyName: "userInfo", first: true, predicate: ["userInfo"], descendants: true }], ngImport: i0, template: "<nav fxFlex fxLayout=\"row\" fxLayoutAlign=\"space-between stretch\" [ngClass]=\"color ? 'o-app-header-'+color : ''\">\n <div fxFlex fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\n <ng-content></ng-content>\n <ng-content select=\"o-app-layout-header-projection-start\"></ng-content>\n <span *ngIf=\"showTitle && !showStaticTitle\" class=\"o-app-header-title\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n {{ headerTitle$ | async | oTranslate }}\n </span>\n <span *ngIf=\"showTitle && showStaticTitle\" class=\"o-app-header-title\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n {{ staticTitle | oTranslate }}\n </span>\n <div fxLayout=\"row\" fxLayoutAlign=\"end stretch\" class=\"o-app-header-default-actions\">\n <div class=\"layout-header-projection-end\">\n <ng-content select=\"o-app-layout-header-projection-end\"></ng-content>\n </div>\n <o-user-info #userInfo id=\"userInfo\" *ngIf=\"showUserInfo\"></o-user-info>\n <o-language-selector *ngIf=\"showLanguageSelector\" [use-flag-icons]=\"useFlagIcons\"></o-language-selector>\n </div>\n </div>\n</nav>\n", styles: [".o-app-header{z-index:2;box-shadow:0 2px 6px #00000029}.o-app-header.o-app-header-large{height:56px}.o-app-header.o-app-header-large+.header-layout{top:56px}.o-app-header.o-app-header-large .o-user-info{font-size:16px}.o-app-header.o-app-header-large .o-user-info .o-user-info-avatar-wrapper{height:40px;width:40px}.o-app-header.o-app-header-medium{height:48px}.o-app-header.o-app-header-medium+.header-layout{top:48px}.o-app-header.o-app-header-medium .o-user-info{font-size:16px}.o-app-header.o-app-header-medium .o-user-info .o-user-info-avatar-wrapper{height:32px;width:32px}.o-app-header.o-app-header-small{height:40px}.o-app-header.o-app-header-small+.header-layout{top:40px}.o-app-header.o-app-header-small .o-user-info{font-size:14px}.o-app-header.o-app-header-small .o-user-info .o-user-info-avatar-wrapper{height:30px;width:30px}.o-app-header nav{padding-right:16px}.o-app-header nav .sidenav-toggle{text-align:center;padding:16px;cursor:pointer}.o-app-header nav .o-app-header-title{padding:0 16px;cursor:default}.o-app-header nav .o-app-header-default-actions{margin-left:auto}.o-app-header nav .o-app-header-default-actions .layout-header-projection-end{margin-right:16px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.OLanguageSelectorComponent, selector: "o-language-selector", inputs: ["use-flag-icons"], outputs: ["onChange"] }, { kind: "component", type: i3.OUserInfoComponent, selector: "o-user-info", inputs: ["show-profile", "show-settings", "show-logout", "id"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i4.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i5.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
72
72
  __decorate([
73
73
  BooleanInputConverter(),
74
74
  __metadata("design:type", Boolean)
@@ -90,9 +90,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
90
90
  '[class.o-app-header-large]': 'headerHeight==="large"'
91
91
  }, providers: [
92
92
  { provide: OAppHeaderBase, useExisting: forwardRef(() => OAppHeaderComponent) }
93
- ], template: "<nav fxFlex fxLayout=\"row\" fxLayoutAlign=\"space-between stretch\" [ngClass]=\"color ? 'o-app-header-'+color : ''\">\n <div fxFlex fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\n <ng-content></ng-content>\n <ng-content select=\"o-app-layout-header-projection-start\"></ng-content>\n <span *ngIf=\"showTitle && !showStaticTitle\" class=\"o-app-header-title\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n {{ headerTitle$ | async | oTranslate }}\n </span>\n <span *ngIf=\"showTitle && showStaticTitle\" class=\"o-app-header-title\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n {{ staticTitle | oTranslate }}\n </span>\n <div fxLayout=\"row\" fxLayoutAlign=\"end stretch\" class=\"o-app-header-default-actions\">\n <div class=\"layout-header-projection-end\">\n <ng-content select=\"o-app-layout-header-projection-end\"></ng-content>\n </div>\n <o-user-info #userInfo *ngIf=\"showUserInfo\"></o-user-info>\n <o-language-selector *ngIf=\"showLanguageSelector\" [use-flag-icons]=\"useFlagIcons\"></o-language-selector>\n </div>\n </div>\n</nav>\n", styles: [".o-app-header{z-index:2;box-shadow:0 2px 6px #00000029}.o-app-header.o-app-header-large{height:56px}.o-app-header.o-app-header-large+.header-layout{top:56px}.o-app-header.o-app-header-large .o-user-info{font-size:16px}.o-app-header.o-app-header-large .o-user-info .o-user-info-avatar-wrapper{height:40px;width:40px}.o-app-header.o-app-header-medium{height:48px}.o-app-header.o-app-header-medium+.header-layout{top:48px}.o-app-header.o-app-header-medium .o-user-info{font-size:16px}.o-app-header.o-app-header-medium .o-user-info .o-user-info-avatar-wrapper{height:32px;width:32px}.o-app-header.o-app-header-small{height:40px}.o-app-header.o-app-header-small+.header-layout{top:40px}.o-app-header.o-app-header-small .o-user-info{font-size:14px}.o-app-header.o-app-header-small .o-user-info .o-user-info-avatar-wrapper{height:30px;width:30px}.o-app-header nav{padding-right:16px}.o-app-header nav .sidenav-toggle{text-align:center;padding:16px;cursor:pointer}.o-app-header nav .o-app-header-title{padding:0 16px;cursor:default}.o-app-header nav .o-app-header-default-actions{margin-left:auto}.o-app-header nav .o-app-header-default-actions .layout-header-projection-end{margin-right:16px}\n"] }]
93
+ ], template: "<nav fxFlex fxLayout=\"row\" fxLayoutAlign=\"space-between stretch\" [ngClass]=\"color ? 'o-app-header-'+color : ''\">\n <div fxFlex fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\n <ng-content></ng-content>\n <ng-content select=\"o-app-layout-header-projection-start\"></ng-content>\n <span *ngIf=\"showTitle && !showStaticTitle\" class=\"o-app-header-title\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n {{ headerTitle$ | async | oTranslate }}\n </span>\n <span *ngIf=\"showTitle && showStaticTitle\" class=\"o-app-header-title\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n {{ staticTitle | oTranslate }}\n </span>\n <div fxLayout=\"row\" fxLayoutAlign=\"end stretch\" class=\"o-app-header-default-actions\">\n <div class=\"layout-header-projection-end\">\n <ng-content select=\"o-app-layout-header-projection-end\"></ng-content>\n </div>\n <o-user-info #userInfo id=\"userInfo\" *ngIf=\"showUserInfo\"></o-user-info>\n <o-language-selector *ngIf=\"showLanguageSelector\" [use-flag-icons]=\"useFlagIcons\"></o-language-selector>\n </div>\n </div>\n</nav>\n", styles: [".o-app-header{z-index:2;box-shadow:0 2px 6px #00000029}.o-app-header.o-app-header-large{height:56px}.o-app-header.o-app-header-large+.header-layout{top:56px}.o-app-header.o-app-header-large .o-user-info{font-size:16px}.o-app-header.o-app-header-large .o-user-info .o-user-info-avatar-wrapper{height:40px;width:40px}.o-app-header.o-app-header-medium{height:48px}.o-app-header.o-app-header-medium+.header-layout{top:48px}.o-app-header.o-app-header-medium .o-user-info{font-size:16px}.o-app-header.o-app-header-medium .o-user-info .o-user-info-avatar-wrapper{height:32px;width:32px}.o-app-header.o-app-header-small{height:40px}.o-app-header.o-app-header-small+.header-layout{top:40px}.o-app-header.o-app-header-small .o-user-info{font-size:14px}.o-app-header.o-app-header-small .o-user-info .o-user-info-avatar-wrapper{height:30px;width:30px}.o-app-header nav{padding-right:16px}.o-app-header nav .sidenav-toggle{text-align:center;padding:16px;cursor:pointer}.o-app-header nav .o-app-header-title{padding:0 16px;cursor:default}.o-app-header nav .o-app-header-default-actions{margin-left:auto}.o-app-header nav .o-app-header-default-actions .layout-header-projection-end{margin-right:16px}\n"] }]
94
94
  }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { userInfo: [{
95
95
  type: ViewChild,
96
96
  args: ['userInfo']
97
97
  }], showUserInfo: [], showLanguageSelector: [], useFlagIcons: [] } });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1hcHAtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1oZWFkZXIvby1hcHAtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1oZWFkZXIvby1hcHAtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQVEsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUlsSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7OztBQUUzRCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRztJQUN6Qyw4QkFBOEI7SUFDOUIsOENBQThDO0lBQzlDLDhCQUE4QjtJQUM5QixPQUFPO0lBQ1AsNEJBQTRCO0lBQzVCLHVCQUF1QjtJQUN2QiwyQkFBMkI7SUFDM0Isb0NBQW9DO0NBQ3JDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRztJQUMxQyxpQkFBaUI7Q0FDbEIsQ0FBQztBQW9CRixNQUFNLE9BQU8sbUJBQW1CO0lBdUI5QixJQUFJLFlBQVksQ0FBQyxLQUFLO1FBQ3BCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN6RCxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUMvQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztTQUMvQztJQUNILENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUlELFlBQ1ksUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWhDdkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQVEvQixpQkFBWSxHQUFZLElBQUksQ0FBQztRQUU3Qix5QkFBb0IsR0FBWSxJQUFJLENBQUM7UUFFckMsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFFdkIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3hDLGtCQUFhLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDO1FBa0JqRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFnQixhQUFvQyxDQUFDLENBQUM7UUFDNUYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFzQixtQkFBZ0QsQ0FBQyxDQUFDO1FBQ25ILElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQWMsV0FBZ0MsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMseUJBQXlCLEVBQUUsQ0FBQztTQUN6RTtJQUNILENBQUM7SUFDRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxRQUFzQjtRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7O2dIQXpEVSxtQkFBbUI7b0dBQW5CLG1CQUFtQixzc0JBTG5CO1FBQ1QsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUMsRUFBRTtLQUVoRixnSUMzQ0gsNG1DQW1CQTtBRHVDRTtJQUFDLHFCQUFxQixFQUFFOzt5REFDSztBQUM3QjtJQUFDLHFCQUFxQixFQUFFOztpRUFDYTtBQUNyQztJQUFDLHFCQUFxQixFQUFFOzt5REFDTTsyRkFsQm5CLG1CQUFtQjtrQkFsQi9CLFNBQVM7K0JBQ0UsY0FBYyxVQUNoQiwyQkFBMkIsV0FDMUIsNEJBQTRCLGlCQUd0QixpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLHNCQUFzQixFQUFFLE1BQU07d0JBQzlCLDRCQUE0QixFQUFFLHdCQUF3Qjt3QkFDdEQsNkJBQTZCLEVBQUUseUJBQXlCO3dCQUN4RCw0QkFBNEIsRUFBRSx3QkFBd0I7cUJBQ3ZELGFBQ1U7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDLEVBQUU7cUJBRWhGOytGQWFNLFFBQVE7c0JBRGQsU0FBUzt1QkFBQyxVQUFVO2dCQUlyQixZQUFZLE1BRVosb0JBQW9CLE1BRXBCLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIFR5cGUsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBCb29sZWFuSW5wdXRDb252ZXJ0ZXIgfSBmcm9tICcuLi8uLi9kZWNvcmF0b3JzL2lucHV0LWNvbnZlcnRlcic7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kaWFsb2cuc2VydmljZSc7XG5pbXBvcnQgeyBPTW9kdWxlc0luZm9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvby1tb2R1bGVzLWluZm8uc2VydmljZSc7XG5pbXBvcnQgeyBDb2RlcyB9IGZyb20gJy4uLy4uL3V0aWwvY29kZXMnO1xuaW1wb3J0IHsgT1VzZXJJbmZvQmFzZSB9IGZyb20gJy4uL3VzZXItaW5mby9vLXVzZXItaW5mby1iYXNlLmNsYXNzJztcbmltcG9ydCB7IE9BcHBIZWFkZXJCYXNlIH0gZnJvbSAnLi9vLWFwcC1oZWFkZXItYmFzZS5jbGFzcyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0lOUFVUU19PX0FQUF9IRUFERVIgPSBbXG4gICdzaG93VXNlckluZm86IHNob3ctdXNlci1pbmZvJyxcbiAgJ3Nob3dMYW5ndWFnZVNlbGVjdG9yOiBzaG93LWxhbmd1YWdlLXNlbGVjdG9yJyxcbiAgJ3VzZUZsYWdJY29uczogdXNlLWZsYWctaWNvbnMnLFxuICAnY29sb3InLFxuICAnaGVhZGVySGVpZ2h0OmhlYWRlci1oZWlnaHQnLFxuICAnc2hvd1RpdGxlOiBzaG93LXRpdGxlJyxcbiAgJ3N0YXRpY1RpdGxlOiBzdGF0aWMtdGl0bGUnLFxuICAnc2hvd1N0YXRpY1RpdGxlOiBzaG93LXN0YXRpYy10aXRsZSdcbl07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX09VVFBVVFNfT19BUFBfSEVBREVSID0gW1xuICAnb25TaWRlbmF2VG9nZ2xlJ1xuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnby1hcHAtaGVhZGVyJyxcbiAgaW5wdXRzOiBERUZBVUxUX0lOUFVUU19PX0FQUF9IRUFERVIsXG4gIG91dHB1dHM6IERFRkFVTFRfT1VUUFVUU19PX0FQUF9IRUFERVIsXG4gIHRlbXBsYXRlVXJsOiAnLi9vLWFwcC1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vLWFwcC1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3Muby1hcHAtaGVhZGVyXSc6ICd0cnVlJyxcbiAgICAnW2NsYXNzLm8tYXBwLWhlYWRlci1zbWFsbF0nOiAnaGVhZGVySGVpZ2h0PT09XCJzbWFsbFwiJyxcbiAgICAnW2NsYXNzLm8tYXBwLWhlYWRlci1tZWRpdW1dJzogJ2hlYWRlckhlaWdodD09PVwibWVkaXVtXCInLFxuICAgICdbY2xhc3Muby1hcHAtaGVhZGVyLWxhcmdlXSc6ICdoZWFkZXJIZWlnaHQ9PT1cImxhcmdlXCInXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogT0FwcEhlYWRlckJhc2UsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE9BcHBIZWFkZXJDb21wb25lbnQpIH1cblxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE9BcHBIZWFkZXJDb21wb25lbnQge1xuXG4gIHByb3RlY3RlZCBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgbW9kdWxlc0luZm9TZXJ2aWNlOiBPTW9kdWxlc0luZm9TZXJ2aWNlO1xuICBwcm90ZWN0ZWQgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlO1xuICBwdWJsaWMgc2hvd1RpdGxlID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93U3RhdGljVGl0bGUgPSBmYWxzZTtcbiAgcHVibGljIHN0YXRpY1RpdGxlOiBzdHJpbmc7XG4gIHB1YmxpYyBoZWFkZXJUaXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBAVmlld0NoaWxkKCd1c2VySW5mbycpXG4gIHB1YmxpYyB1c2VySW5mbzogT1VzZXJJbmZvQmFzZTtcblxuICBAQm9vbGVhbklucHV0Q29udmVydGVyKClcbiAgc2hvd1VzZXJJbmZvOiBib29sZWFuID0gdHJ1ZTtcbiAgQEJvb2xlYW5JbnB1dENvbnZlcnRlcigpXG4gIHNob3dMYW5ndWFnZVNlbGVjdG9yOiBib29sZWFuID0gdHJ1ZTtcbiAgQEJvb2xlYW5JbnB1dENvbnZlcnRlcigpXG4gIHVzZUZsYWdJY29uczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBvblNpZGVuYXZUb2dnbGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIHByb3RlY3RlZCBfaGVhZGVySGVpZ2h0ID0gQ29kZXMuREVGQVVMVF9ST1dfSEVJR0hUO1xuXG4gIHNldCBoZWFkZXJIZWlnaHQodmFsdWUpIHtcbiAgICB0aGlzLl9oZWFkZXJIZWlnaHQgPSB2YWx1ZSA/IHZhbHVlLnRvTG93ZXJDYXNlKCkgOiB2YWx1ZTtcbiAgICBpZiAoIUNvZGVzLmlzVmFsaWRSb3dIZWlnaHQodGhpcy5faGVhZGVySGVpZ2h0KSkge1xuICAgICAgdGhpcy5faGVhZGVySGVpZ2h0ID0gQ29kZXMuREVGQVVMVF9ST1dfSEVJR0hUO1xuICAgIH1cbiAgfVxuXG4gIGdldCBoZWFkZXJIZWlnaHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5faGVhZGVySGVpZ2h0O1xuICB9XG5cbiAgcHJpdmF0ZSBfY29sb3I6IFRoZW1lUGFsZXR0ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxuICApIHtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldDxEaWFsb2dTZXJ2aWNlPihEaWFsb2dTZXJ2aWNlIGFzIFR5cGU8RGlhbG9nU2VydmljZT4pO1xuICAgIHRoaXMubW9kdWxlc0luZm9TZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQ8T01vZHVsZXNJbmZvU2VydmljZT4oT01vZHVsZXNJbmZvU2VydmljZSBhcyBUeXBlPE9Nb2R1bGVzSW5mb1NlcnZpY2U+KTtcbiAgICB0aGlzLmF1dGhTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQ8QXV0aFNlcnZpY2U+KEF1dGhTZXJ2aWNlIGFzIFR5cGU8QXV0aFNlcnZpY2U+KTtcbiAgfVxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuc2hvd1N0YXRpY1RpdGxlKSB7XG4gICAgICB0aGlzLmhlYWRlclRpdGxlJCA9IHRoaXMubW9kdWxlc0luZm9TZXJ2aWNlLmdldE1vZHVsZUNoYW5nZU9ic2VydmFibGUoKTtcbiAgICB9XG4gIH1cbiAgb25Mb2dvdXRDbGljaygpIHtcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ291dFdpdGhDb25maXJtYXRpb24oKTtcbiAgfVxuICBzZXQgY29sb3IobmV3VmFsdWU6IFRoZW1lUGFsZXR0ZSkge1xuICAgIHRoaXMuX2NvbG9yID0gbmV3VmFsdWU7XG4gIH1cblxuICBnZXQgY29sb3IoKTogVGhlbWVQYWxldHRlIHtcbiAgICByZXR1cm4gdGhpcy5fY29sb3I7XG4gIH1cblxufVxuIiwiPG5hdiBmeEZsZXggZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBzdHJldGNoXCIgW25nQ2xhc3NdPVwiY29sb3IgPyAnby1hcHAtaGVhZGVyLScrY29sb3IgOiAnJ1wiPlxuICA8ZGl2IGZ4RmxleCBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJvLWFwcC1sYXlvdXQtaGVhZGVyLXByb2plY3Rpb24tc3RhcnRcIj48L25nLWNvbnRlbnQ+XG4gICAgPHNwYW4gKm5nSWY9XCJzaG93VGl0bGUgJiYgIXNob3dTdGF0aWNUaXRsZVwiIGNsYXNzPVwiby1hcHAtaGVhZGVyLXRpdGxlXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxuICAgICAge3sgaGVhZGVyVGl0bGUkIHwgYXN5bmMgfCBvVHJhbnNsYXRlIH19XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwic2hvd1RpdGxlICYmIHNob3dTdGF0aWNUaXRsZVwiIGNsYXNzPVwiby1hcHAtaGVhZGVyLXRpdGxlXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxuICAgICAge3sgc3RhdGljVGl0bGUgfCBvVHJhbnNsYXRlIH19XG4gICAgPC9zcGFuPlxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiZW5kIHN0cmV0Y2hcIiBjbGFzcz1cIm8tYXBwLWhlYWRlci1kZWZhdWx0LWFjdGlvbnNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtaGVhZGVyLXByb2plY3Rpb24tZW5kXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm8tYXBwLWxheW91dC1oZWFkZXItcHJvamVjdGlvbi1lbmRcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxvLXVzZXItaW5mbyAjdXNlckluZm8gKm5nSWY9XCJzaG93VXNlckluZm9cIj48L28tdXNlci1pbmZvPlxuICAgICAgPG8tbGFuZ3VhZ2Utc2VsZWN0b3IgKm5nSWY9XCJzaG93TGFuZ3VhZ2VTZWxlY3RvclwiIFt1c2UtZmxhZy1pY29uc109XCJ1c2VGbGFnSWNvbnNcIj48L28tbGFuZ3VhZ2Utc2VsZWN0b3I+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uYXY+XG4iXX0=
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1hcHAtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1oZWFkZXIvby1hcHAtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1oZWFkZXIvby1hcHAtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQVEsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUlsSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7OztBQUUzRCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRztJQUN6Qyw4QkFBOEI7SUFDOUIsOENBQThDO0lBQzlDLDhCQUE4QjtJQUM5QixPQUFPO0lBQ1AsNEJBQTRCO0lBQzVCLHVCQUF1QjtJQUN2QiwyQkFBMkI7SUFDM0Isb0NBQW9DO0NBQ3JDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRztJQUMxQyxpQkFBaUI7Q0FDbEIsQ0FBQztBQW9CRixNQUFNLE9BQU8sbUJBQW1CO0lBdUI5QixJQUFJLFlBQVksQ0FBQyxLQUFLO1FBQ3BCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN6RCxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUMvQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztTQUMvQztJQUNILENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUlELFlBQ1ksUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWhDdkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQVEvQixpQkFBWSxHQUFZLElBQUksQ0FBQztRQUU3Qix5QkFBb0IsR0FBWSxJQUFJLENBQUM7UUFFckMsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFFdkIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3hDLGtCQUFhLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDO1FBa0JqRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFnQixhQUFvQyxDQUFDLENBQUM7UUFDNUYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFzQixtQkFBZ0QsQ0FBQyxDQUFDO1FBQ25ILElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQWMsV0FBZ0MsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMseUJBQXlCLEVBQUUsQ0FBQztTQUN6RTtJQUNILENBQUM7SUFDRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxRQUFzQjtRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7O2dIQXpEVSxtQkFBbUI7b0dBQW5CLG1CQUFtQixzc0JBTG5CO1FBQ1QsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUMsRUFBRTtLQUVoRixnSUMzQ0gsNG5DQW1CQTtBRHVDRTtJQUFDLHFCQUFxQixFQUFFOzt5REFDSztBQUM3QjtJQUFDLHFCQUFxQixFQUFFOztpRUFDYTtBQUNyQztJQUFDLHFCQUFxQixFQUFFOzt5REFDTTsyRkFsQm5CLG1CQUFtQjtrQkFsQi9CLFNBQVM7K0JBQ0UsY0FBYyxVQUNoQiwyQkFBMkIsV0FDMUIsNEJBQTRCLGlCQUd0QixpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLHNCQUFzQixFQUFFLE1BQU07d0JBQzlCLDRCQUE0QixFQUFFLHdCQUF3Qjt3QkFDdEQsNkJBQTZCLEVBQUUseUJBQXlCO3dCQUN4RCw0QkFBNEIsRUFBRSx3QkFBd0I7cUJBQ3ZELGFBQ1U7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDLEVBQUU7cUJBRWhGOytGQWFNLFFBQVE7c0JBRGQsU0FBUzt1QkFBQyxVQUFVO2dCQUlyQixZQUFZLE1BRVosb0JBQW9CLE1BRXBCLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIFR5cGUsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBCb29sZWFuSW5wdXRDb252ZXJ0ZXIgfSBmcm9tICcuLi8uLi9kZWNvcmF0b3JzL2lucHV0LWNvbnZlcnRlcic7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kaWFsb2cuc2VydmljZSc7XG5pbXBvcnQgeyBPTW9kdWxlc0luZm9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvby1tb2R1bGVzLWluZm8uc2VydmljZSc7XG5pbXBvcnQgeyBDb2RlcyB9IGZyb20gJy4uLy4uL3V0aWwvY29kZXMnO1xuaW1wb3J0IHsgT1VzZXJJbmZvQmFzZSB9IGZyb20gJy4uL3VzZXItaW5mby9vLXVzZXItaW5mby1iYXNlLmNsYXNzJztcbmltcG9ydCB7IE9BcHBIZWFkZXJCYXNlIH0gZnJvbSAnLi9vLWFwcC1oZWFkZXItYmFzZS5jbGFzcyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0lOUFVUU19PX0FQUF9IRUFERVIgPSBbXG4gICdzaG93VXNlckluZm86IHNob3ctdXNlci1pbmZvJyxcbiAgJ3Nob3dMYW5ndWFnZVNlbGVjdG9yOiBzaG93LWxhbmd1YWdlLXNlbGVjdG9yJyxcbiAgJ3VzZUZsYWdJY29uczogdXNlLWZsYWctaWNvbnMnLFxuICAnY29sb3InLFxuICAnaGVhZGVySGVpZ2h0OmhlYWRlci1oZWlnaHQnLFxuICAnc2hvd1RpdGxlOiBzaG93LXRpdGxlJyxcbiAgJ3N0YXRpY1RpdGxlOiBzdGF0aWMtdGl0bGUnLFxuICAnc2hvd1N0YXRpY1RpdGxlOiBzaG93LXN0YXRpYy10aXRsZSdcbl07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX09VVFBVVFNfT19BUFBfSEVBREVSID0gW1xuICAnb25TaWRlbmF2VG9nZ2xlJ1xuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnby1hcHAtaGVhZGVyJyxcbiAgaW5wdXRzOiBERUZBVUxUX0lOUFVUU19PX0FQUF9IRUFERVIsXG4gIG91dHB1dHM6IERFRkFVTFRfT1VUUFVUU19PX0FQUF9IRUFERVIsXG4gIHRlbXBsYXRlVXJsOiAnLi9vLWFwcC1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vLWFwcC1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3Muby1hcHAtaGVhZGVyXSc6ICd0cnVlJyxcbiAgICAnW2NsYXNzLm8tYXBwLWhlYWRlci1zbWFsbF0nOiAnaGVhZGVySGVpZ2h0PT09XCJzbWFsbFwiJyxcbiAgICAnW2NsYXNzLm8tYXBwLWhlYWRlci1tZWRpdW1dJzogJ2hlYWRlckhlaWdodD09PVwibWVkaXVtXCInLFxuICAgICdbY2xhc3Muby1hcHAtaGVhZGVyLWxhcmdlXSc6ICdoZWFkZXJIZWlnaHQ9PT1cImxhcmdlXCInXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogT0FwcEhlYWRlckJhc2UsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE9BcHBIZWFkZXJDb21wb25lbnQpIH1cblxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE9BcHBIZWFkZXJDb21wb25lbnQge1xuXG4gIHByb3RlY3RlZCBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgbW9kdWxlc0luZm9TZXJ2aWNlOiBPTW9kdWxlc0luZm9TZXJ2aWNlO1xuICBwcm90ZWN0ZWQgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlO1xuICBwdWJsaWMgc2hvd1RpdGxlID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93U3RhdGljVGl0bGUgPSBmYWxzZTtcbiAgcHVibGljIHN0YXRpY1RpdGxlOiBzdHJpbmc7XG4gIHB1YmxpYyBoZWFkZXJUaXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBAVmlld0NoaWxkKCd1c2VySW5mbycpXG4gIHB1YmxpYyB1c2VySW5mbzogT1VzZXJJbmZvQmFzZTtcblxuICBAQm9vbGVhbklucHV0Q29udmVydGVyKClcbiAgc2hvd1VzZXJJbmZvOiBib29sZWFuID0gdHJ1ZTtcbiAgQEJvb2xlYW5JbnB1dENvbnZlcnRlcigpXG4gIHNob3dMYW5ndWFnZVNlbGVjdG9yOiBib29sZWFuID0gdHJ1ZTtcbiAgQEJvb2xlYW5JbnB1dENvbnZlcnRlcigpXG4gIHVzZUZsYWdJY29uczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBvblNpZGVuYXZUb2dnbGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIHByb3RlY3RlZCBfaGVhZGVySGVpZ2h0ID0gQ29kZXMuREVGQVVMVF9ST1dfSEVJR0hUO1xuXG4gIHNldCBoZWFkZXJIZWlnaHQodmFsdWUpIHtcbiAgICB0aGlzLl9oZWFkZXJIZWlnaHQgPSB2YWx1ZSA/IHZhbHVlLnRvTG93ZXJDYXNlKCkgOiB2YWx1ZTtcbiAgICBpZiAoIUNvZGVzLmlzVmFsaWRSb3dIZWlnaHQodGhpcy5faGVhZGVySGVpZ2h0KSkge1xuICAgICAgdGhpcy5faGVhZGVySGVpZ2h0ID0gQ29kZXMuREVGQVVMVF9ST1dfSEVJR0hUO1xuICAgIH1cbiAgfVxuXG4gIGdldCBoZWFkZXJIZWlnaHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5faGVhZGVySGVpZ2h0O1xuICB9XG5cbiAgcHJpdmF0ZSBfY29sb3I6IFRoZW1lUGFsZXR0ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxuICApIHtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldDxEaWFsb2dTZXJ2aWNlPihEaWFsb2dTZXJ2aWNlIGFzIFR5cGU8RGlhbG9nU2VydmljZT4pO1xuICAgIHRoaXMubW9kdWxlc0luZm9TZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQ8T01vZHVsZXNJbmZvU2VydmljZT4oT01vZHVsZXNJbmZvU2VydmljZSBhcyBUeXBlPE9Nb2R1bGVzSW5mb1NlcnZpY2U+KTtcbiAgICB0aGlzLmF1dGhTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQ8QXV0aFNlcnZpY2U+KEF1dGhTZXJ2aWNlIGFzIFR5cGU8QXV0aFNlcnZpY2U+KTtcbiAgfVxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuc2hvd1N0YXRpY1RpdGxlKSB7XG4gICAgICB0aGlzLmhlYWRlclRpdGxlJCA9IHRoaXMubW9kdWxlc0luZm9TZXJ2aWNlLmdldE1vZHVsZUNoYW5nZU9ic2VydmFibGUoKTtcbiAgICB9XG4gIH1cbiAgb25Mb2dvdXRDbGljaygpIHtcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ291dFdpdGhDb25maXJtYXRpb24oKTtcbiAgfVxuICBzZXQgY29sb3IobmV3VmFsdWU6IFRoZW1lUGFsZXR0ZSkge1xuICAgIHRoaXMuX2NvbG9yID0gbmV3VmFsdWU7XG4gIH1cblxuICBnZXQgY29sb3IoKTogVGhlbWVQYWxldHRlIHtcbiAgICByZXR1cm4gdGhpcy5fY29sb3I7XG4gIH1cblxufVxuIiwiPG5hdiBmeEZsZXggZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBzdHJldGNoXCIgW25nQ2xhc3NdPVwiY29sb3IgPyAnby1hcHAtaGVhZGVyLScrY29sb3IgOiAnJ1wiPlxuICA8ZGl2IGZ4RmxleCBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJvLWFwcC1sYXlvdXQtaGVhZGVyLXByb2plY3Rpb24tc3RhcnRcIj48L25nLWNvbnRlbnQ+XG4gICAgPHNwYW4gKm5nSWY9XCJzaG93VGl0bGUgJiYgIXNob3dTdGF0aWNUaXRsZVwiIGNsYXNzPVwiby1hcHAtaGVhZGVyLXRpdGxlXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxuICAgICAge3sgaGVhZGVyVGl0bGUkIHwgYXN5bmMgfCBvVHJhbnNsYXRlIH19XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwic2hvd1RpdGxlICYmIHNob3dTdGF0aWNUaXRsZVwiIGNsYXNzPVwiby1hcHAtaGVhZGVyLXRpdGxlXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxuICAgICAge3sgc3RhdGljVGl0bGUgfCBvVHJhbnNsYXRlIH19XG4gICAgPC9zcGFuPlxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiZW5kIHN0cmV0Y2hcIiBjbGFzcz1cIm8tYXBwLWhlYWRlci1kZWZhdWx0LWFjdGlvbnNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtaGVhZGVyLXByb2plY3Rpb24tZW5kXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm8tYXBwLWxheW91dC1oZWFkZXItcHJvamVjdGlvbi1lbmRcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxvLXVzZXItaW5mbyAjdXNlckluZm8gaWQ9XCJ1c2VySW5mb1wiICpuZ0lmPVwic2hvd1VzZXJJbmZvXCI+PC9vLXVzZXItaW5mbz5cbiAgICAgIDxvLWxhbmd1YWdlLXNlbGVjdG9yICpuZ0lmPVwic2hvd0xhbmd1YWdlU2VsZWN0b3JcIiBbdXNlLWZsYWctaWNvbnNdPVwidXNlRmxhZ0ljb25zXCI+PC9vLWxhbmd1YWdlLXNlbGVjdG9yPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmF2PlxuIl19
@@ -210,7 +210,7 @@ export class OAppSidenavMenuItemComponent {
210
210
  }
211
211
  }
212
212
  OAppSidenavMenuItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OAppSidenavMenuItemComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
213
- OAppSidenavMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OAppSidenavMenuItemComponent, selector: "o-app-sidenav-menu-item", inputs: { menuItem: ["menu-item", "menuItem"], menuItemType: ["menu-item-type", "menuItemType"], sidenavOpened: ["sidenav-opened", "sidenavOpened"], disabled: "disabled" }, outputs: { onClick: "onClick" }, host: { properties: { "class": "getClass()", "attr.disabled": "disabled" } }, ngImport: i0, template: "<ng-container *ngIf=\"sidenavOpened\">\n <li *ngIf=\"!hidden\" class=\"o-app-sidenav-menuitem o-app-sidenav-item\" [class.o-user-info]=\"isUserInfoItem()\">\n\n <a mat-button *ngIf=\"!isUserInfoItem() && !isLocaleItem()\" (click)=\"triggerClick($event)\"\n [class.o-app-sidenav-viewer-sidenav-item-selected]=\"active\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon *ngIf=\"menuItem.svgIcon\" [svgIcon]=\"menuItem.svgIcon\"></mat-icon>\n <mat-icon *ngIf=\"menuItem.icon\">{{ menuItem.icon }}</mat-icon>\n <span class=\"o-app-sidenav-menuitem-title\">{{ menuItem.name | oTranslate }}</span>\n </div>\n </a>\n\n <a mat-button *ngIf=\"isLocaleItem()\" (click)=\"triggerClick($event)\">\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\n <mat-icon *ngIf=\"menuItem.svgIcon\" [svgIcon]=\"menuItem.svgIcon\"></mat-icon>\n <mat-icon *ngIf=\"menuItem.icon\">{{ menuItem.icon }}</mat-icon>\n {{ menuItem.name | oTranslate }}\n <mat-icon *ngIf=\"isConfiguredLang()\" class=\"configured-lang\">check_circle</mat-icon>\n </div>\n </a>\n\n <div *ngIf=\"isUserInfoItem()\" fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"o-user-info-menu-item\">\n <div class=\"o-user-info-image\" fxFlexFill></div>\n <div class=\"o-user-info-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\" fxFlexFill>\n <div class=\"o-user-info-name\">{{ menuItem.user }} </div>\n <o-language-selector [use-flag-icons]=\"useFlagIcons\"></o-language-selector>\n </div>\n </div>\n </li>\n</ng-container>\n\n<ng-container *ngIf=\"!sidenavOpened\">\n <li *ngIf=\"!hidden\" class=\"o-app-sidenav-menuitem o-app-sidenav-item\">\n <a [matTooltip]=\"tooltip\" matTooltipClass=\"menuitem-tooltip\" matTooltipPosition=\"right\" mat-button (click)=\"triggerClick($event)\"\n [class.o-app-sidenav-viewer-sidenav-item-selected]=\"active\">\n <mat-icon *ngIf=\"menuItem.svgIcon\" [svgIcon]=\"menuItem.svgIcon\"></mat-icon>\n <mat-icon *ngIf=\"menuItem.icon\">{{ menuItem.icon }}</mat-icon>\n </a>\n </li>\n</ng-container>\n", styles: [".o-app-sidenav-menu-item .o-user-info-menu-item{cursor:default}.o-app-sidenav-menu-item .o-user-info-menu-item .o-user-info-image{background-repeat:no-repeat;background-position:center;background-size:cover;width:100%;height:200px!important}.o-app-sidenav-menu-item .o-user-info-menu-item .o-user-info-item{padding:0 8px 0 16px}.o-app-sidenav-menu-item .o-user-info-menu-item .o-user-info-name{text-transform:uppercase;font-weight:600}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "component", type: i3.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i6.OLanguageSelectorComponent, selector: "o-language-selector", inputs: ["use-flag-icons"], outputs: ["onChange"] }, { kind: "pipe", type: i7.OTranslatePipe, name: "oTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
213
+ OAppSidenavMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OAppSidenavMenuItemComponent, selector: "o-app-sidenav-menu-item", inputs: { menuItem: ["menu-item", "menuItem"], menuItemType: ["menu-item-type", "menuItemType"], sidenavOpened: ["sidenav-opened", "sidenavOpened"], disabled: "disabled" }, outputs: { onClick: "onClick" }, host: { properties: { "class": "getClass()", "attr.disabled": "disabled" } }, ngImport: i0, template: "<ng-container *ngIf=\"sidenavOpened\">\n <li *ngIf=\"!hidden\" class=\"o-app-sidenav-menuitem o-app-sidenav-item\" [class.o-user-info]=\"isUserInfoItem()\" [id]=\"menuItem.id\">\n\n <a mat-button *ngIf=\"!isUserInfoItem() && !isLocaleItem()\" (click)=\"triggerClick($event)\"\n [class.o-app-sidenav-viewer-sidenav-item-selected]=\"active\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon *ngIf=\"menuItem.svgIcon\" [svgIcon]=\"menuItem.svgIcon\"></mat-icon>\n <mat-icon *ngIf=\"menuItem.icon\">{{ menuItem.icon }}</mat-icon>\n <span class=\"o-app-sidenav-menuitem-title\">{{ menuItem.name | oTranslate }}</span>\n </div>\n </a>\n\n <a mat-button *ngIf=\"isLocaleItem()\" (click)=\"triggerClick($event)\">\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\n <mat-icon *ngIf=\"menuItem.svgIcon\" [svgIcon]=\"menuItem.svgIcon\"></mat-icon>\n <mat-icon *ngIf=\"menuItem.icon\">{{ menuItem.icon }}</mat-icon>\n {{ menuItem.name | oTranslate }}\n <mat-icon *ngIf=\"isConfiguredLang()\" class=\"configured-lang\">check_circle</mat-icon>\n </div>\n </a>\n\n <div *ngIf=\"isUserInfoItem()\" fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"o-user-info-menu-item\">\n <div class=\"o-user-info-image\" fxFlexFill></div>\n <div class=\"o-user-info-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\" fxFlexFill>\n <div class=\"o-user-info-name\">{{ menuItem.user }} </div>\n <o-language-selector [use-flag-icons]=\"useFlagIcons\"></o-language-selector>\n </div>\n </div>\n </li>\n</ng-container>\n\n<ng-container *ngIf=\"!sidenavOpened\">\n <li *ngIf=\"!hidden\" class=\"o-app-sidenav-menuitem o-app-sidenav-item\">\n <a [matTooltip]=\"tooltip\" matTooltipClass=\"menuitem-tooltip\" matTooltipPosition=\"right\" mat-button (click)=\"triggerClick($event)\"\n [class.o-app-sidenav-viewer-sidenav-item-selected]=\"active\">\n <mat-icon *ngIf=\"menuItem.svgIcon\" [svgIcon]=\"menuItem.svgIcon\"></mat-icon>\n <mat-icon *ngIf=\"menuItem.icon\">{{ menuItem.icon }}</mat-icon>\n </a>\n </li>\n</ng-container>\n", styles: [".o-app-sidenav-menu-item .o-user-info-menu-item{cursor:default}.o-app-sidenav-menu-item .o-user-info-menu-item .o-user-info-image{background-repeat:no-repeat;background-position:center;background-size:cover;width:100%;height:200px!important}.o-app-sidenav-menu-item .o-user-info-menu-item .o-user-info-item{padding:0 8px 0 16px}.o-app-sidenav-menu-item .o-user-info-menu-item .o-user-info-name{text-transform:uppercase;font-weight:600}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "component", type: i3.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i6.OLanguageSelectorComponent, selector: "o-language-selector", inputs: ["use-flag-icons"], outputs: ["onChange"] }, { kind: "pipe", type: i7.OTranslatePipe, name: "oTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
214
214
  __decorate([
215
215
  BooleanInputConverter(),
216
216
  __metadata("design:type", Boolean)
@@ -224,6 +224,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
224
224
  args: [{ selector: 'o-app-sidenav-menu-item', inputs: DEFAULT_INPUTS_O_APP_SIDENAV_MENU_ITEM, outputs: DEFAULT_OUTPUTS_O_APP_SIDENAV_MENU_ITEM, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
225
225
  '[class]': 'getClass()',
226
226
  '[attr.disabled]': 'disabled'
227
- }, template: "<ng-container *ngIf=\"sidenavOpened\">\n <li *ngIf=\"!hidden\" class=\"o-app-sidenav-menuitem o-app-sidenav-item\" [class.o-user-info]=\"isUserInfoItem()\">\n\n <a mat-button *ngIf=\"!isUserInfoItem() && !isLocaleItem()\" (click)=\"triggerClick($event)\"\n [class.o-app-sidenav-viewer-sidenav-item-selected]=\"active\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon *ngIf=\"menuItem.svgIcon\" [svgIcon]=\"menuItem.svgIcon\"></mat-icon>\n <mat-icon *ngIf=\"menuItem.icon\">{{ menuItem.icon }}</mat-icon>\n <span class=\"o-app-sidenav-menuitem-title\">{{ menuItem.name | oTranslate }}</span>\n </div>\n </a>\n\n <a mat-button *ngIf=\"isLocaleItem()\" (click)=\"triggerClick($event)\">\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\n <mat-icon *ngIf=\"menuItem.svgIcon\" [svgIcon]=\"menuItem.svgIcon\"></mat-icon>\n <mat-icon *ngIf=\"menuItem.icon\">{{ menuItem.icon }}</mat-icon>\n {{ menuItem.name | oTranslate }}\n <mat-icon *ngIf=\"isConfiguredLang()\" class=\"configured-lang\">check_circle</mat-icon>\n </div>\n </a>\n\n <div *ngIf=\"isUserInfoItem()\" fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"o-user-info-menu-item\">\n <div class=\"o-user-info-image\" fxFlexFill></div>\n <div class=\"o-user-info-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\" fxFlexFill>\n <div class=\"o-user-info-name\">{{ menuItem.user }} </div>\n <o-language-selector [use-flag-icons]=\"useFlagIcons\"></o-language-selector>\n </div>\n </div>\n </li>\n</ng-container>\n\n<ng-container *ngIf=\"!sidenavOpened\">\n <li *ngIf=\"!hidden\" class=\"o-app-sidenav-menuitem o-app-sidenav-item\">\n <a [matTooltip]=\"tooltip\" matTooltipClass=\"menuitem-tooltip\" matTooltipPosition=\"right\" mat-button (click)=\"triggerClick($event)\"\n [class.o-app-sidenav-viewer-sidenav-item-selected]=\"active\">\n <mat-icon *ngIf=\"menuItem.svgIcon\" [svgIcon]=\"menuItem.svgIcon\"></mat-icon>\n <mat-icon *ngIf=\"menuItem.icon\">{{ menuItem.icon }}</mat-icon>\n </a>\n </li>\n</ng-container>\n", styles: [".o-app-sidenav-menu-item .o-user-info-menu-item{cursor:default}.o-app-sidenav-menu-item .o-user-info-menu-item .o-user-info-image{background-repeat:no-repeat;background-position:center;background-size:cover;width:100%;height:200px!important}.o-app-sidenav-menu-item .o-user-info-menu-item .o-user-info-item{padding:0 8px 0 16px}.o-app-sidenav-menu-item .o-user-info-menu-item .o-user-info-name{text-transform:uppercase;font-weight:600}\n"] }]
227
+ }, template: "<ng-container *ngIf=\"sidenavOpened\">\n <li *ngIf=\"!hidden\" class=\"o-app-sidenav-menuitem o-app-sidenav-item\" [class.o-user-info]=\"isUserInfoItem()\" [id]=\"menuItem.id\">\n\n <a mat-button *ngIf=\"!isUserInfoItem() && !isLocaleItem()\" (click)=\"triggerClick($event)\"\n [class.o-app-sidenav-viewer-sidenav-item-selected]=\"active\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon *ngIf=\"menuItem.svgIcon\" [svgIcon]=\"menuItem.svgIcon\"></mat-icon>\n <mat-icon *ngIf=\"menuItem.icon\">{{ menuItem.icon }}</mat-icon>\n <span class=\"o-app-sidenav-menuitem-title\">{{ menuItem.name | oTranslate }}</span>\n </div>\n </a>\n\n <a mat-button *ngIf=\"isLocaleItem()\" (click)=\"triggerClick($event)\">\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\n <mat-icon *ngIf=\"menuItem.svgIcon\" [svgIcon]=\"menuItem.svgIcon\"></mat-icon>\n <mat-icon *ngIf=\"menuItem.icon\">{{ menuItem.icon }}</mat-icon>\n {{ menuItem.name | oTranslate }}\n <mat-icon *ngIf=\"isConfiguredLang()\" class=\"configured-lang\">check_circle</mat-icon>\n </div>\n </a>\n\n <div *ngIf=\"isUserInfoItem()\" fxLayout=\"column\" fxLayoutAlign=\"center center\" class=\"o-user-info-menu-item\">\n <div class=\"o-user-info-image\" fxFlexFill></div>\n <div class=\"o-user-info-item\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\" fxFlexFill>\n <div class=\"o-user-info-name\">{{ menuItem.user }} </div>\n <o-language-selector [use-flag-icons]=\"useFlagIcons\"></o-language-selector>\n </div>\n </div>\n </li>\n</ng-container>\n\n<ng-container *ngIf=\"!sidenavOpened\">\n <li *ngIf=\"!hidden\" class=\"o-app-sidenav-menuitem o-app-sidenav-item\">\n <a [matTooltip]=\"tooltip\" matTooltipClass=\"menuitem-tooltip\" matTooltipPosition=\"right\" mat-button (click)=\"triggerClick($event)\"\n [class.o-app-sidenav-viewer-sidenav-item-selected]=\"active\">\n <mat-icon *ngIf=\"menuItem.svgIcon\" [svgIcon]=\"menuItem.svgIcon\"></mat-icon>\n <mat-icon *ngIf=\"menuItem.icon\">{{ menuItem.icon }}</mat-icon>\n </a>\n </li>\n</ng-container>\n", styles: [".o-app-sidenav-menu-item .o-user-info-menu-item{cursor:default}.o-app-sidenav-menu-item .o-user-info-menu-item .o-user-info-image{background-repeat:no-repeat;background-position:center;background-size:cover;width:100%;height:200px!important}.o-app-sidenav-menu-item .o-user-info-menu-item .o-user-info-item{padding:0 8px 0 16px}.o-app-sidenav-menu-item .o-user-info-menu-item .o-user-info-name{text-transform:uppercase;font-weight:600}\n"] }]
228
228
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { sidenavOpened: [], disabled: [] } });
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1hcHAtc2lkZW5hdi1tZW51LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvYXBwLXNpZGVuYXYvbWVudS1pdGVtL28tYXBwLXNpZGVuYXYtbWVudS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1zaWRlbmF2L21lbnUtaXRlbS9vLWFwcC1zaWRlbmF2LW1lbnUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osUUFBUSxFQUlSLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDdkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFFcEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scURBQXFELENBQUM7Ozs7Ozs7OztBQUVyRixNQUFNLENBQUMsTUFBTSxzQ0FBc0MsR0FBRztJQUNwRCxzQkFBc0I7SUFDdEIsK0JBQStCO0lBQy9CLGdDQUFnQztJQUNoQyxVQUFVO0NBQ1gsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVDQUF1QyxHQUFHO0lBQ3JELFNBQVM7Q0FDVixDQUFDO0FBZUYsTUFBTSxPQUFPLDRCQUE0QjtJQWdDdkMsWUFDWSxRQUFrQixFQUNsQixLQUFpQixFQUNqQixFQUFxQjtRQUZyQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFqQzFCLFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQWdCNUQsa0JBQWEsR0FBWSxJQUFJLENBQUM7UUFFOUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUVoQixpQ0FBNEIsR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQWV4RSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQW9CLGlCQUE0QyxDQUFDLENBQUM7UUFDM0csSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBYyxXQUFnQyxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBZ0IsYUFBb0MsQ0FBQyxDQUFDO1FBQzVGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBcUIsa0JBQThDLENBQUMsQ0FBQztRQUNoSCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQW1CLGdCQUEwQyxDQUFDLENBQUM7UUFDeEcsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBa0IsZUFBd0MsQ0FBQyxDQUFDO1FBQzVGLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBaUIsY0FBc0MsQ0FBQyxDQUFDO1FBQ3JHLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQVMsTUFBc0IsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQWlCLGNBQXNDLENBQUMsQ0FBQztRQUVoRyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDL0QsSUFBSSxLQUFLLFlBQVksYUFBYSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDcEYsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBeUIsQ0FBQyxDQUFDO2dCQUMvRSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3pCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQXlCLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDekMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RGLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO29CQUMvQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDeEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7aUJBQ3pCO1lBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNKLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3hGLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO29CQUM1RCxJQUFJLENBQUMsUUFBNkIsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztvQkFDeEQsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7aUJBQ3pCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsNEJBQTRCLEVBQUU7WUFDckMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ2pEO1FBQ0QsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3ZDO1FBQ0QsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ3BDO1FBQ0QsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDN0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQztJQUVTLGdCQUFnQjtRQUV4QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNyQyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQztRQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUVsQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQztTQUNwRDtRQUVELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUU7Z0JBQzlGLGdCQUFnQixFQUFFLElBQUk7YUFDdkIsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEYsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ3ZCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUE0QixDQUFDO1lBQy9DLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLDBCQUEwQixHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUM7U0FDL0U7UUFDRCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxpQkFBaUI7UUFDZixNQUFNLFVBQVUsR0FBSSxJQUFJLENBQUMsUUFBMkIsQ0FBQztRQUNyRCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNoRCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLFdBQVcsSUFBSSx5QkFBeUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNoSjthQUFNO1lBQ0wsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxNQUFNLFVBQVUsR0FBSSxJQUFJLENBQUMsUUFBMkIsQ0FBQztRQUNyRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFO1lBQzNCLE9BQU87U0FDUjtRQUNELElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzlDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE1BQU0sVUFBVSxHQUFJLElBQUksQ0FBQyxRQUEyQixDQUFDO1FBQ3JELElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLEtBQUssVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3ZFO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sUUFBUSxHQUFJLElBQUksQ0FBQyxRQUEyQixDQUFDO1FBQ25ELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQzdDLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztTQUMzQzthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxLQUFLLEdBQUksSUFBSSxDQUFDLFFBQTBCLENBQUMsS0FBSyxDQUFDO1FBQ3JELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFO1lBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsQ0FBUTtRQUNuQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFbkMsUUFBUSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3pCLEtBQUssUUFBUTtnQkFDWCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDekIsTUFBTTtZQUNSLEtBQUssUUFBUTtnQkFDWCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3JCLE1BQU07WUFDUixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNkLE1BQU07WUFDUjtnQkFDRSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDbEQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2lCQUNqQjtnQkFDRCxNQUFNO1NBQ1Q7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBSUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxRQUFRLENBQUM7SUFDeEMsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxZQUFZLEtBQUssUUFBUSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsWUFBWSxLQUFLLFFBQVEsQ0FBQztJQUN4QyxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxXQUFXLENBQUM7SUFDM0MsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLEtBQUssU0FBUyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDO0lBQzNFLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0QsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDekMsTUFBTSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDbkU7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksU0FBUyxHQUFHLHlCQUF5QixDQUFDO1FBQzFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7WUFDdkIsU0FBUyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztTQUN4QztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7O3lIQXJPVSw0QkFBNEI7NkdBQTVCLDRCQUE0QiwyVkN0RHpDLCtuRUF3Q0E7QUQrQkU7SUFBQyxxQkFBcUIsRUFBRTs7bUVBQ007QUFDOUI7SUFBQyxxQkFBcUIsRUFBRTs7OERBQ0U7MkZBcEJmLDRCQUE0QjtrQkFieEMsU0FBUzsrQkFDRSx5QkFBeUIsVUFDM0Isc0NBQXNDLFdBQ3JDLHVDQUF1QyxpQkFHakMsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSixTQUFTLEVBQUUsWUFBWTt3QkFDdkIsaUJBQWlCLEVBQUUsVUFBVTtxQkFDOUI7d0pBb0JELGFBQWEsTUFFYixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBUeXBlLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQm9vbGVhbklucHV0Q29udmVydGVyIH0gZnJvbSAnLi4vLi4vLi4vZGVjb3JhdG9ycy9pbnB1dC1jb252ZXJ0ZXInO1xuaW1wb3J0IHsgTWVudUl0ZW1BY3Rpb24sIE1lbnVJdGVtTG9jYWxlLCBNZW51SXRlbUxvZ291dCwgTWVudUl0ZW1Sb3V0ZSwgTWVudUl0ZW1Vc2VySW5mbyB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvYXBwLW1lbnUuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFwcE1lbnVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXBwLW1lbnUuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgT1VzZXJJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL28tdXNlci1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcGVybWlzc2lvbnMvcGVybWlzc2lvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBPVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS9vLXRyYW5zbGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9QZXJtaXNzaW9ucyB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL28tcGVybWlzc2lvbnMudHlwZSc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uc1V0aWxzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC9wZXJtaXNzaW9ucyc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB7IE9BcHBTaWRlbmF2QmFzZSB9IGZyb20gJy4uL28tYXBwLXNpZGVuYXYtYmFzZS5jbGFzcyc7XG5pbXBvcnQgeyBPQXBwTGF5b3V0QmFzZSB9IGZyb20gJy4uLy4uLy4uL2xheW91dHMvYXBwLWxheW91dC9vLWFwcC1sYXlvdXQtYmFzZS5jbGFzcyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0lOUFVUU19PX0FQUF9TSURFTkFWX01FTlVfSVRFTSA9IFtcbiAgJ21lbnVJdGVtIDogbWVudS1pdGVtJyxcbiAgJ21lbnVJdGVtVHlwZSA6IG1lbnUtaXRlbS10eXBlJyxcbiAgJ3NpZGVuYXZPcGVuZWQgOiBzaWRlbmF2LW9wZW5lZCcsXG4gICdkaXNhYmxlZCdcbl07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX09VVFBVVFNfT19BUFBfU0lERU5BVl9NRU5VX0lURU0gPSBbXG4gICdvbkNsaWNrJ1xuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnby1hcHAtc2lkZW5hdi1tZW51LWl0ZW0nLFxuICBpbnB1dHM6IERFRkFVTFRfSU5QVVRTX09fQVBQX1NJREVOQVZfTUVOVV9JVEVNLFxuICBvdXRwdXRzOiBERUZBVUxUX09VVFBVVFNfT19BUFBfU0lERU5BVl9NRU5VX0lURU0sXG4gIHRlbXBsYXRlVXJsOiAnLi9vLWFwcC1zaWRlbmF2LW1lbnUtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL28tYXBwLXNpZGVuYXYtbWVudS1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzc10nOiAnZ2V0Q2xhc3MoKScsXG4gICAgJ1thdHRyLmRpc2FibGVkXSc6ICdkaXNhYmxlZCdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBPQXBwU2lkZW5hdk1lbnVJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIHB1YmxpYyBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIHByb3RlY3RlZCB0cmFuc2xhdGVTZXJ2aWNlOiBPVHJhbnNsYXRlU2VydmljZTtcbiAgcHJvdGVjdGVkIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZTtcbiAgcHJvdGVjdGVkIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2U7XG4gIHByb3RlY3RlZCBwZXJtaXNzaW9uc1NlcnZpY2U6IFBlcm1pc3Npb25zU2VydmljZTtcbiAgcHJvdGVjdGVkIG9Vc2VySW5mb1NlcnZpY2U6IE9Vc2VySW5mb1NlcnZpY2U7XG4gIHByb3RlY3RlZCBhcHBNZW51U2VydmljZTogQXBwTWVudVNlcnZpY2U7XG4gIHByb3RlY3RlZCB1c2VySW5mb1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIHByb3RlY3RlZCBzaWRlbmF2OiBPQXBwU2lkZW5hdkJhc2U7XG4gIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlcjtcblxuICBtZW51SXRlbTogYW55OyAvLyBUT0RPIE1lbnVSb290SXRlbTtcbiAgbWVudUl0ZW1UeXBlOiBzdHJpbmc7XG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBzaWRlbmF2T3BlbmVkOiBib29sZWFuID0gdHJ1ZTtcbiAgQEJvb2xlYW5JbnB1dENvbnZlcnRlcigpXG4gIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIGFwcFNpZGVuYXZUb2dnbGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJvdGVjdGVkIHJvdXRlclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcm90ZWN0ZWQgb0FwcExheW91dENvbXBvbmVudDogT0FwcExheW91dEJhc2U7XG5cbiAgcHJvdGVjdGVkIHBlcm1pc3Npb25zOiBPUGVybWlzc2lvbnM7XG4gIHByb3RlY3RlZCBtdXRhdGlvbk9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyO1xuXG4gIGhpZGRlbjogYm9vbGVhbjtcbiAgYWN0aXZlOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJvdGVjdGVkIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQ8T1RyYW5zbGF0ZVNlcnZpY2U+KE9UcmFuc2xhdGVTZXJ2aWNlIGFzIFR5cGU8T1RyYW5zbGF0ZVNlcnZpY2U+KTtcbiAgICB0aGlzLmF1dGhTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQ8QXV0aFNlcnZpY2U+KEF1dGhTZXJ2aWNlIGFzIFR5cGU8QXV0aFNlcnZpY2U+KTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldDxEaWFsb2dTZXJ2aWNlPihEaWFsb2dTZXJ2aWNlIGFzIFR5cGU8RGlhbG9nU2VydmljZT4pO1xuICAgIHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQ8UGVybWlzc2lvbnNTZXJ2aWNlPihQZXJtaXNzaW9uc1NlcnZpY2UgYXMgVHlwZTxQZXJtaXNzaW9uc1NlcnZpY2U+KTtcbiAgICB0aGlzLm9Vc2VySW5mb1NlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldDxPVXNlckluZm9TZXJ2aWNlPihPVXNlckluZm9TZXJ2aWNlIGFzIFR5cGU8T1VzZXJJbmZvU2VydmljZT4pO1xuICAgIHRoaXMuc2lkZW5hdiA9IHRoaXMuaW5qZWN0b3IuZ2V0PE9BcHBTaWRlbmF2QmFzZT4oT0FwcFNpZGVuYXZCYXNlIGFzIFR5cGU8T0FwcFNpZGVuYXZCYXNlPik7XG4gICAgdGhpcy5vQXBwTGF5b3V0Q29tcG9uZW50ID0gdGhpcy5pbmplY3Rvci5nZXQ8T0FwcExheW91dEJhc2U+KE9BcHBMYXlvdXRCYXNlIGFzIFR5cGU8T0FwcExheW91dEJhc2U+KTtcbiAgICB0aGlzLnJvdXRlciA9IHRoaXMuaW5qZWN0b3IuZ2V0PFJvdXRlcj4oUm91dGVyIGFzIFR5cGU8Um91dGVyPik7XG4gICAgdGhpcy5hcHBNZW51U2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0PEFwcE1lbnVTZXJ2aWNlPihBcHBNZW51U2VydmljZSBhcyBUeXBlPEFwcE1lbnVTZXJ2aWNlPik7XG5cbiAgICB0aGlzLnJvdXRlclN1YnNjcmlwdGlvbiA9IHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kICYmIHRoaXMuYXBwTWVudVNlcnZpY2UuaXNSb3V0ZUl0ZW0odGhpcy5tZW51SXRlbSkpIHtcbiAgICAgICAgdGhpcy5hY3RpdmUgPSB0aGlzLmFwcE1lbnVTZXJ2aWNlLmlzSXRlbUFjdGl2ZSh0aGlzLm1lbnVJdGVtIGFzIE1lbnVJdGVtUm91dGUpO1xuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucGFyc2VQZXJtaXNzaW9ucygpO1xuICAgIHRoaXMuYWN0aXZlID0gdGhpcy5hcHBNZW51U2VydmljZS5pc0l0ZW1BY3RpdmUodGhpcy5tZW51SXRlbSBhcyBNZW51SXRlbVJvdXRlKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5pc1VzZXJJbmZvSXRlbSgpICYmIHRoaXMuc2lkZW5hdikge1xuICAgICAgdGhpcy5zZXRVc2VySW5mb0ltYWdlKCk7XG4gICAgICB0aGlzLmFwcFNpZGVuYXZUb2dnbGVTdWJzY3JpcHRpb24uYWRkKHRoaXMuc2lkZW5hdi5vblNpZGVuYXZPcGVuZWRDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuc2lkZW5hdi5zaWRlbmF2Lm9wZW5lZCkge1xuICAgICAgICAgIHRoaXMuc2V0VXNlckluZm9JbWFnZSgpO1xuICAgICAgICAgIHRoaXMuc2V0VXNlckluZm9JbWFnZSgpO1xuICAgICAgICB9XG4gICAgICB9KSk7XG4gICAgICB0aGlzLnVzZXJJbmZvU3Vic2NyaXB0aW9uID0gdGhpcy5vVXNlckluZm9TZXJ2aWNlLmdldFVzZXJJbmZvT2JzZXJ2YWJsZSgpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICBpZiAoVXRpbC5pc0RlZmluZWQocmVzLmF2YXRhcikgJiYgdGhpcy5zaWRlbmF2LnNpZGVuYXYub3BlbmVkKSB7XG4gICAgICAgICAgKHRoaXMubWVudUl0ZW0gYXMgTWVudUl0ZW1Vc2VySW5mbykuYXZhdGFyID0gcmVzLmF2YXRhcjtcbiAgICAgICAgICB0aGlzLnNldFVzZXJJbmZvSW1hZ2UoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuYXBwU2lkZW5hdlRvZ2dsZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5hcHBTaWRlbmF2VG9nZ2xlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnJvdXRlclN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMubXV0YXRpb25PYnNlcnZlcikge1xuICAgICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudXNlckluZm9TdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMudXNlckluZm9TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VQZXJtaXNzaW9ucygpIHtcbiAgICAvLyBpZiBvYXR0ciBpbiBmb3JtLCBpdCBjYW4gaGF2ZSBwZXJtaXNzaW9uc1xuICAgIHRoaXMucGVybWlzc2lvbnMgPSB0aGlzLnBlcm1pc3Npb25zU2VydmljZS5nZXRNZW51UGVybWlzc2lvbnModGhpcy5tZW51SXRlbS5pZCk7XG4gICAgaWYgKCFVdGlsLmlzRGVmaW5lZCh0aGlzLnBlcm1pc3Npb25zKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmhpZGRlbiA9IHRoaXMucGVybWlzc2lvbnMudmlzaWJsZSA9PT0gZmFsc2U7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAvLyBpZiB0aGUgZGlzYWJsZWQgaW5wdXQgaXMgdHJ1ZSBpdCBtZWFucyB0aGF0IGl0cyBwYXJlbnQgaXMgZGlzYWJsZWQgdXNpbmcgcGVybWlzc2lvbnNcbiAgICAgIHRoaXMuZGlzYWJsZWQgPSB0aGlzLnBlcm1pc3Npb25zLmVuYWJsZWQgPT09IGZhbHNlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXIgPSBQZXJtaXNzaW9uc1V0aWxzLnJlZ2lzdGVyRGlzYWJsZWRDaGFuZ2VzSW5Eb20odGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgIGNoZWNrU3RyaW5nVmFsdWU6IHRydWVcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRVc2VySW5mb0ltYWdlKCkge1xuICAgIGNvbnN0IGltZ0VsID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ28tdXNlci1pbmZvLWltYWdlJylbMF07XG4gICAgaWYgKGltZ0VsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLm1lbnVJdGVtIGFzIE1lbnVJdGVtVXNlckluZm87XG4gICAgICBpbWdFbC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2JhY2tncm91bmQtaW1hZ2U6IHVybChcXCcnICsgaXRlbS5hdmF0YXIgKyAnXFwnKScpO1xuICAgIH1cbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGV4ZWN1dGVJdGVtQWN0aW9uKCkge1xuICAgIGNvbnN0IGFjdGlvbkl0ZW0gPSAodGhpcy5tZW51SXRlbSBhcyBNZW51SXRlbUFjdGlvbik7XG4gICAgaWYgKFV0aWwucGFyc2VCb29sZWFuKGFjdGlvbkl0ZW0uY29uZmlybSwgZmFsc2UpKSB7XG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY29uZmlybSgnQ09ORklSTScsIGFjdGlvbkl0ZW0uY29uZmlybVRleHQgfHwgJ01FU1NBR0VTLkNPTkZJUk1fQUNUSU9OJykudGhlbihyZXN1bHQgPT4gcmVzdWx0ID8gYWN0aW9uSXRlbS5hY3Rpb24oKSA6IG51bGwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhY3Rpb25JdGVtLmFjdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIGNvbmZpZ3VyZUkxOG4oKSB7XG4gICAgY29uc3QgbG9jYWxlSXRlbSA9ICh0aGlzLm1lbnVJdGVtIGFzIE1lbnVJdGVtTG9jYWxlKTtcbiAgICBpZiAodGhpcy5pc0NvbmZpZ3VyZWRMYW5nKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMudHJhbnNsYXRlU2VydmljZSkge1xuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnVzZShsb2NhbGVJdGVtLmxvY2FsZSk7XG4gICAgfVxuICB9XG5cbiAgaXNDb25maWd1cmVkTGFuZygpIHtcbiAgICBjb25zdCBsb2NhbGVJdGVtID0gKHRoaXMubWVudUl0ZW0gYXMgTWVudUl0ZW1Mb2NhbGUpO1xuICAgIGlmICh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgICAgIHJldHVybiAodGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldEN1cnJlbnRMYW5nKCkgPT09IGxvY2FsZUl0ZW0ubG9jYWxlKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgbG9nb3V0KCkge1xuICAgIGNvbnN0IG1lbnVJdGVtID0gKHRoaXMubWVudUl0ZW0gYXMgTWVudUl0ZW1Mb2dvdXQpO1xuICAgIGlmIChVdGlsLnBhcnNlQm9vbGVhbihtZW51SXRlbS5jb25maXJtLCB0cnVlKSkge1xuICAgICAgdGhpcy5hdXRoU2VydmljZS5sb2dvdXRXaXRoQ29uZmlybWF0aW9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nb3V0KCk7XG4gICAgfVxuICB9XG5cbiAgbmF2aWdhdGUoKSB7XG4gICAgY29uc3Qgcm91dGUgPSAodGhpcy5tZW51SXRlbSBhcyBNZW51SXRlbVJvdXRlKS5yb3V0ZTtcbiAgICBpZiAodGhpcy5yb3V0ZXIudXJsICE9PSByb3V0ZSkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3JvdXRlXSk7XG4gICAgfVxuICB9XG5cbiAgdHJpZ2dlckNsaWNrKGU6IEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5hcHBNZW51U2VydmljZS5vbkNsaWNrLm5leHQoKTtcblxuICAgIHN3aXRjaCAodGhpcy5tZW51SXRlbVR5cGUpIHtcbiAgICAgIGNhc2UgJ2FjdGlvbic6XG4gICAgICAgIHRoaXMuZXhlY3V0ZUl0ZW1BY3Rpb24oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsb2NhbGUnOlxuICAgICAgICB0aGlzLmNvbmZpZ3VyZUkxOG4oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsb2dvdXQnOlxuICAgICAgICB0aGlzLmxvZ291dCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmICh0aGlzLmFwcE1lbnVTZXJ2aWNlLmlzUm91dGVJdGVtKHRoaXMubWVudUl0ZW0pKSB7XG4gICAgICAgICAgdGhpcy5uYXZpZ2F0ZSgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB0aGlzLm9uQ2xpY2suZW1pdChlKTtcbiAgfVxuXG5cblxuICBpc0FjdGlvbkl0ZW0oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubWVudUl0ZW1UeXBlID09PSAnYWN0aW9uJztcbiAgfVxuXG4gIGlzTG9jYWxlSXRlbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tZW51SXRlbVR5cGUgPT09ICdsb2NhbGUnO1xuICB9XG5cbiAgaXNMb2dvdXRJdGVtKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1lbnVJdGVtVHlwZSA9PT0gJ2xvZ291dCc7XG4gIH1cblxuICBpc1VzZXJJbmZvSXRlbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tZW51SXRlbVR5cGUgPT09ICd1c2VyLWluZm8nO1xuICB9XG5cbiAgaXNEZWZhdWx0SXRlbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tZW51SXRlbVR5cGUgPT09ICdkZWZhdWx0JztcbiAgfVxuXG4gIGdldCB1c2VGbGFnSWNvbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMub0FwcExheW91dENvbXBvbmVudCAmJiB0aGlzLm9BcHBMYXlvdXRDb21wb25lbnQudXNlRmxhZ0ljb25zO1xuICB9XG5cbiAgZ2V0IHRvb2x0aXAoKTogc3RyaW5nIHtcbiAgICBsZXQgcmVzdWx0ID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCh0aGlzLm1lbnVJdGVtLm5hbWUpO1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLm1lbnVJdGVtLnRvb2x0aXApKSB7XG4gICAgICByZXN1bHQgKz0gJzogJyArIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQodGhpcy5tZW51SXRlbS50b29sdGlwKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldENsYXNzKCkge1xuICAgIGxldCBjbGFzc05hbWUgPSAnby1hcHAtc2lkZW5hdi1tZW51LWl0ZW0nO1xuICAgIGlmICh0aGlzLm1lbnVJdGVtLmNsYXNzKSB7XG4gICAgICBjbGFzc05hbWUgKz0gJyAnICsgdGhpcy5tZW51SXRlbS5jbGFzcztcbiAgICB9XG4gICAgcmV0dXJuIGNsYXNzTmFtZTtcbiAgfVxuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwic2lkZW5hdk9wZW5lZFwiPlxuICA8bGkgKm5nSWY9XCIhaGlkZGVuXCIgY2xhc3M9XCJvLWFwcC1zaWRlbmF2LW1lbnVpdGVtIG8tYXBwLXNpZGVuYXYtaXRlbVwiIFtjbGFzcy5vLXVzZXItaW5mb109XCJpc1VzZXJJbmZvSXRlbSgpXCI+XG5cbiAgICA8YSBtYXQtYnV0dG9uICpuZ0lmPVwiIWlzVXNlckluZm9JdGVtKCkgJiYgIWlzTG9jYWxlSXRlbSgpXCIgKGNsaWNrKT1cInRyaWdnZXJDbGljaygkZXZlbnQpXCJcbiAgICAgIFtjbGFzcy5vLWFwcC1zaWRlbmF2LXZpZXdlci1zaWRlbmF2LWl0ZW0tc2VsZWN0ZWRdPVwiYWN0aXZlXCI+XG4gICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJtZW51SXRlbS5zdmdJY29uXCIgW3N2Z0ljb25dPVwibWVudUl0ZW0uc3ZnSWNvblwiPjwvbWF0LWljb24+XG4gICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIm1lbnVJdGVtLmljb25cIj57eyBtZW51SXRlbS5pY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJvLWFwcC1zaWRlbmF2LW1lbnVpdGVtLXRpdGxlXCI+e3sgbWVudUl0ZW0ubmFtZSB8IG9UcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2E+XG5cbiAgICA8YSBtYXQtYnV0dG9uICpuZ0lmPVwiaXNMb2NhbGVJdGVtKClcIiAoY2xpY2spPVwidHJpZ2dlckNsaWNrKCRldmVudClcIj5cbiAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIj5cbiAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwibWVudUl0ZW0uc3ZnSWNvblwiIFtzdmdJY29uXT1cIm1lbnVJdGVtLnN2Z0ljb25cIj48L21hdC1pY29uPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJtZW51SXRlbS5pY29uXCI+e3sgbWVudUl0ZW0uaWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgIHt7IG1lbnVJdGVtLm5hbWUgfCBvVHJhbnNsYXRlIH19XG4gICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImlzQ29uZmlndXJlZExhbmcoKVwiIGNsYXNzPVwiY29uZmlndXJlZC1sYW5nXCI+Y2hlY2tfY2lyY2xlPC9tYXQtaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYT5cblxuICAgIDxkaXYgKm5nSWY9XCJpc1VzZXJJbmZvSXRlbSgpXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIGNsYXNzPVwiby11c2VyLWluZm8tbWVudS1pdGVtXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiby11c2VyLWluZm8taW1hZ2VcIiBmeEZsZXhGaWxsPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm8tdXNlci1pbmZvLWl0ZW1cIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiIGZ4RmxleEZpbGw+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvLXVzZXItaW5mby1uYW1lXCI+e3sgbWVudUl0ZW0udXNlciB9fSA8L2Rpdj5cbiAgICAgICAgPG8tbGFuZ3VhZ2Utc2VsZWN0b3IgW3VzZS1mbGFnLWljb25zXT1cInVzZUZsYWdJY29uc1wiPjwvby1sYW5ndWFnZS1zZWxlY3Rvcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2xpPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhc2lkZW5hdk9wZW5lZFwiPlxuICA8bGkgKm5nSWY9XCIhaGlkZGVuXCIgY2xhc3M9XCJvLWFwcC1zaWRlbmF2LW1lbnVpdGVtIG8tYXBwLXNpZGVuYXYtaXRlbVwiPlxuICAgIDxhIFttYXRUb29sdGlwXT1cInRvb2x0aXBcIiBtYXRUb29sdGlwQ2xhc3M9XCJtZW51aXRlbS10b29sdGlwXCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIiBtYXQtYnV0dG9uIChjbGljayk9XCJ0cmlnZ2VyQ2xpY2soJGV2ZW50KVwiXG4gICAgICBbY2xhc3Muby1hcHAtc2lkZW5hdi12aWV3ZXItc2lkZW5hdi1pdGVtLXNlbGVjdGVkXT1cImFjdGl2ZVwiPlxuICAgICAgPG1hdC1pY29uICpuZ0lmPVwibWVudUl0ZW0uc3ZnSWNvblwiIFtzdmdJY29uXT1cIm1lbnVJdGVtLnN2Z0ljb25cIj48L21hdC1pY29uPlxuICAgICAgPG1hdC1pY29uICpuZ0lmPVwibWVudUl0ZW0uaWNvblwiPnt7IG1lbnVJdGVtLmljb24gfX08L21hdC1pY29uPlxuICAgIDwvYT5cbiAgPC9saT5cbjwvbmctY29udGFpbmVyPlxuIl19
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1hcHAtc2lkZW5hdi1tZW51LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvYXBwLXNpZGVuYXYvbWVudS1pdGVtL28tYXBwLXNpZGVuYXYtbWVudS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1zaWRlbmF2L21lbnUtaXRlbS9vLWFwcC1zaWRlbmF2LW1lbnUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osUUFBUSxFQUlSLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDdkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFFcEYsT0FBTyxFQUFFLGdCQUFnQixFQUFF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QyxpQkFHakMsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSixTQUFTLEVBQUUsWUFBWTt3QkFDdkIsaUJBQWlCLEVBQUUsVUFBVTtxQkFDOUI7d0pBb0JELGFBQWEsTUFFYixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBUeXBlLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQm9vbGVhbklucHV0Q29udmVydGVyIH0gZnJvbSAnLi4vLi4vLi4vZGVjb3JhdG9ycy9pbnB1dC1jb252ZXJ0ZXInO1xuaW1wb3J0IHsgTWVudUl0ZW1BY3Rpb24sIE1lbnVJdGVtTG9jYWxlLCBNZW51SXRlbUxvZ291dCwgTWVudUl0ZW1Sb3V0ZSwgTWVudUl0ZW1Vc2VySW5mbyB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvYXBwLW1lbnUuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFwcE1lbnVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXBwLW1lbnUuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgT1VzZXJJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL28tdXNlci1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcGVybWlzc2lvbnMvcGVybWlzc2lvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBPVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS9vLXRyYW5zbGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9QZXJtaXNzaW9ucyB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL28tcGVybWlzc2lvbnMudHlwZSc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uc1V0aWxzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC9wZXJtaXNzaW9ucyc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB7IE9BcHBTaWRlbmF2QmFzZSB9IGZyb20gJy4uL28tYXBwLXNpZGVuYXYtYmFzZS5jbGFzcyc7XG5pbXBvcnQgeyBPQXBwTGF5b3V0QmFzZSB9IGZyb20gJy4uLy4uLy4uL2xheW91dHMvYXBwLWxheW91dC9vLWFwcC1sYXlvdXQtYmFzZS5jbGFzcyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0lOUFVUU19PX0FQUF9TSURFTkFWX01FTlVfSVRFTSA9IFtcbiAgJ21lbnVJdGVtIDogbWVudS1pdGVtJyxcbiAgJ21lbnVJdGVtVHlwZSA6IG1lbnUtaXRlbS10eXBlJyxcbiAgJ3NpZGVuYXZPcGVuZWQgOiBzaWRlbmF2LW9wZW5lZCcsXG4gICdkaXNhYmxlZCdcbl07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX09VVFBVVFNfT19BUFBfU0lERU5BVl9NRU5VX0lURU0gPSBbXG4gICdvbkNsaWNrJ1xuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnby1hcHAtc2lkZW5hdi1tZW51LWl0ZW0nLFxuICBpbnB1dHM6IERFRkFVTFRfSU5QVVRTX09fQVBQX1NJREVOQVZfTUVOVV9JVEVNLFxuICBvdXRwdXRzOiBERUZBVUxUX09VVFBVVFNfT19BUFBfU0lERU5BVl9NRU5VX0lURU0sXG4gIHRlbXBsYXRlVXJsOiAnLi9vLWFwcC1zaWRlbmF2LW1lbnUtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL28tYXBwLXNpZGVuYXYtbWVudS1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzc10nOiAnZ2V0Q2xhc3MoKScsXG4gICAgJ1thdHRyLmRpc2FibGVkXSc6ICdkaXNhYmxlZCdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBPQXBwU2lkZW5hdk1lbnVJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIHB1YmxpYyBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIHByb3RlY3RlZCB0cmFuc2xhdGVTZXJ2aWNlOiBPVHJhbnNsYXRlU2VydmljZTtcbiAgcHJvdGVjdGVkIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZTtcbiAgcHJvdGVjdGVkIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2U7XG4gIHByb3RlY3RlZCBwZXJtaXNzaW9uc1NlcnZpY2U6IFBlcm1pc3Npb25zU2VydmljZTtcbiAgcHJvdGVjdGVkIG9Vc2VySW5mb1NlcnZpY2U6IE9Vc2VySW5mb1NlcnZpY2U7XG4gIHByb3RlY3RlZCBhcHBNZW51U2VydmljZTogQXBwTWVudVNlcnZpY2U7XG4gIHByb3RlY3RlZCB1c2VySW5mb1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIHByb3RlY3RlZCBzaWRlbmF2OiBPQXBwU2lkZW5hdkJhc2U7XG4gIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlcjtcblxuICBtZW51SXRlbTogYW55OyAvLyBUT0RPIE1lbnVSb290SXRlbTtcbiAgbWVudUl0ZW1UeXBlOiBzdHJpbmc7XG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBzaWRlbmF2T3BlbmVkOiBib29sZWFuID0gdHJ1ZTtcbiAgQEJvb2xlYW5JbnB1dENvbnZlcnRlcigpXG4gIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIGFwcFNpZGVuYXZUb2dnbGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJvdGVjdGVkIHJvdXRlclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcm90ZWN0ZWQgb0FwcExheW91dENvbXBvbmVudDogT0FwcExheW91dEJhc2U7XG5cbiAgcHJvdGVjdGVkIHBlcm1pc3Npb25zOiBPUGVybWlzc2lvbnM7XG4gIHByb3RlY3RlZCBtdXRhdGlvbk9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyO1xuXG4gIGhpZGRlbjogYm9vbGVhbjtcbiAgYWN0aXZlOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJvdGVjdGVkIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQ8T1RyYW5zbGF0ZVNlcnZpY2U+KE9UcmFuc2xhdGVTZXJ2aWNlIGFzIFR5cGU8T1RyYW5zbGF0ZVNlcnZpY2U+KTtcbiAgICB0aGlzLmF1dGhTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQ8QXV0aFNlcnZpY2U+KEF1dGhTZXJ2aWNlIGFzIFR5cGU8QXV0aFNlcnZpY2U+KTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldDxEaWFsb2dTZXJ2aWNlPihEaWFsb2dTZXJ2aWNlIGFzIFR5cGU8RGlhbG9nU2VydmljZT4pO1xuICAgIHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQ8UGVybWlzc2lvbnNTZXJ2aWNlPihQZXJtaXNzaW9uc1NlcnZpY2UgYXMgVHlwZTxQZXJtaXNzaW9uc1NlcnZpY2U+KTtcbiAgICB0aGlzLm9Vc2VySW5mb1NlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldDxPVXNlckluZm9TZXJ2aWNlPihPVXNlckluZm9TZXJ2aWNlIGFzIFR5cGU8T1VzZXJJbmZvU2VydmljZT4pO1xuICAgIHRoaXMuc2lkZW5hdiA9IHRoaXMuaW5qZWN0b3IuZ2V0PE9BcHBTaWRlbmF2QmFzZT4oT0FwcFNpZGVuYXZCYXNlIGFzIFR5cGU8T0FwcFNpZGVuYXZCYXNlPik7XG4gICAgdGhpcy5vQXBwTGF5b3V0Q29tcG9uZW50ID0gdGhpcy5pbmplY3Rvci5nZXQ8T0FwcExheW91dEJhc2U+KE9BcHBMYXlvdXRCYXNlIGFzIFR5cGU8T0FwcExheW91dEJhc2U+KTtcbiAgICB0aGlzLnJvdXRlciA9IHRoaXMuaW5qZWN0b3IuZ2V0PFJvdXRlcj4oUm91dGVyIGFzIFR5cGU8Um91dGVyPik7XG4gICAgdGhpcy5hcHBNZW51U2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0PEFwcE1lbnVTZXJ2aWNlPihBcHBNZW51U2VydmljZSBhcyBUeXBlPEFwcE1lbnVTZXJ2aWNlPik7XG5cbiAgICB0aGlzLnJvdXRlclN1YnNjcmlwdGlvbiA9IHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kICYmIHRoaXMuYXBwTWVudVNlcnZpY2UuaXNSb3V0ZUl0ZW0odGhpcy5tZW51SXRlbSkpIHtcbiAgICAgICAgdGhpcy5hY3RpdmUgPSB0aGlzLmFwcE1lbnVTZXJ2aWNlLmlzSXRlbUFjdGl2ZSh0aGlzLm1lbnVJdGVtIGFzIE1lbnVJdGVtUm91dGUpO1xuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucGFyc2VQZXJtaXNzaW9ucygpO1xuICAgIHRoaXMuYWN0aXZlID0gdGhpcy5hcHBNZW51U2VydmljZS5pc0l0ZW1BY3RpdmUodGhpcy5tZW51SXRlbSBhcyBNZW51SXRlbVJvdXRlKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5pc1VzZXJJbmZvSXRlbSgpICYmIHRoaXMuc2lkZW5hdikge1xuICAgICAgdGhpcy5zZXRVc2VySW5mb0ltYWdlKCk7XG4gICAgICB0aGlzLmFwcFNpZGVuYXZUb2dnbGVTdWJzY3JpcHRpb24uYWRkKHRoaXMuc2lkZW5hdi5vblNpZGVuYXZPcGVuZWRDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuc2lkZW5hdi5zaWRlbmF2Lm9wZW5lZCkge1xuICAgICAgICAgIHRoaXMuc2V0VXNlckluZm9JbWFnZSgpO1xuICAgICAgICAgIHRoaXMuc2V0VXNlckluZm9JbWFnZSgpO1xuICAgICAgICB9XG4gICAgICB9KSk7XG4gICAgICB0aGlzLnVzZXJJbmZvU3Vic2NyaXB0aW9uID0gdGhpcy5vVXNlckluZm9TZXJ2aWNlLmdldFVzZXJJbmZvT2JzZXJ2YWJsZSgpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICBpZiAoVXRpbC5pc0RlZmluZWQocmVzLmF2YXRhcikgJiYgdGhpcy5zaWRlbmF2LnNpZGVuYXYub3BlbmVkKSB7XG4gICAgICAgICAgKHRoaXMubWVudUl0ZW0gYXMgTWVudUl0ZW1Vc2VySW5mbykuYXZhdGFyID0gcmVzLmF2YXRhcjtcbiAgICAgICAgICB0aGlzLnNldFVzZXJJbmZvSW1hZ2UoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuYXBwU2lkZW5hdlRvZ2dsZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5hcHBTaWRlbmF2VG9nZ2xlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnJvdXRlclN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMubXV0YXRpb25PYnNlcnZlcikge1xuICAgICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudXNlckluZm9TdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMudXNlckluZm9TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VQZXJtaXNzaW9ucygpIHtcbiAgICAvLyBpZiBvYXR0ciBpbiBmb3JtLCBpdCBjYW4gaGF2ZSBwZXJtaXNzaW9uc1xuICAgIHRoaXMucGVybWlzc2lvbnMgPSB0aGlzLnBlcm1pc3Npb25zU2VydmljZS5nZXRNZW51UGVybWlzc2lvbnModGhpcy5tZW51SXRlbS5pZCk7XG4gICAgaWYgKCFVdGlsLmlzRGVmaW5lZCh0aGlzLnBlcm1pc3Npb25zKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmhpZGRlbiA9IHRoaXMucGVybWlzc2lvbnMudmlzaWJsZSA9PT0gZmFsc2U7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAvLyBpZiB0aGUgZGlzYWJsZWQgaW5wdXQgaXMgdHJ1ZSBpdCBtZWFucyB0aGF0IGl0cyBwYXJlbnQgaXMgZGlzYWJsZWQgdXNpbmcgcGVybWlzc2lvbnNcbiAgICAgIHRoaXMuZGlzYWJsZWQgPSB0aGlzLnBlcm1pc3Npb25zLmVuYWJsZWQgPT09IGZhbHNlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXIgPSBQZXJtaXNzaW9uc1V0aWxzLnJlZ2lzdGVyRGlzYWJsZWRDaGFuZ2VzSW5Eb20odGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgIGNoZWNrU3RyaW5nVmFsdWU6IHRydWVcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRVc2VySW5mb0ltYWdlKCkge1xuICAgIGNvbnN0IGltZ0VsID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ28tdXNlci1pbmZvLWltYWdlJylbMF07XG4gICAgaWYgKGltZ0VsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLm1lbnVJdGVtIGFzIE1lbnVJdGVtVXNlckluZm87XG4gICAgICBpbWdFbC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2JhY2tncm91bmQtaW1hZ2U6IHVybChcXCcnICsgaXRlbS5hdmF0YXIgKyAnXFwnKScpO1xuICAgIH1cbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGV4ZWN1dGVJdGVtQWN0aW9uKCkge1xuICAgIGNvbnN0IGFjdGlvbkl0ZW0gPSAodGhpcy5tZW51SXRlbSBhcyBNZW51SXRlbUFjdGlvbik7XG4gICAgaWYgKFV0aWwucGFyc2VCb29sZWFuKGFjdGlvbkl0ZW0uY29uZmlybSwgZmFsc2UpKSB7XG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY29uZmlybSgnQ09ORklSTScsIGFjdGlvbkl0ZW0uY29uZmlybVRleHQgfHwgJ01FU1NBR0VTLkNPTkZJUk1fQUNUSU9OJykudGhlbihyZXN1bHQgPT4gcmVzdWx0ID8gYWN0aW9uSXRlbS5hY3Rpb24oKSA6IG51bGwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhY3Rpb25JdGVtLmFjdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIGNvbmZpZ3VyZUkxOG4oKSB7XG4gICAgY29uc3QgbG9jYWxlSXRlbSA9ICh0aGlzLm1lbnVJdGVtIGFzIE1lbnVJdGVtTG9jYWxlKTtcbiAgICBpZiAodGhpcy5pc0NvbmZpZ3VyZWRMYW5nKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMudHJhbnNsYXRlU2VydmljZSkge1xuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnVzZShsb2NhbGVJdGVtLmxvY2FsZSk7XG4gICAgfVxuICB9XG5cbiAgaXNDb25maWd1cmVkTGFuZygpIHtcbiAgICBjb25zdCBsb2NhbGVJdGVtID0gKHRoaXMubWVudUl0ZW0gYXMgTWVudUl0ZW1Mb2NhbGUpO1xuICAgIGlmICh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgICAgIHJldHVybiAodGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldEN1cnJlbnRMYW5nKCkgPT09IGxvY2FsZUl0ZW0ubG9jYWxlKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgbG9nb3V0KCkge1xuICAgIGNvbnN0IG1lbnVJdGVtID0gKHRoaXMubWVudUl0ZW0gYXMgTWVudUl0ZW1Mb2dvdXQpO1xuICAgIGlmIChVdGlsLnBhcnNlQm9vbGVhbihtZW51SXRlbS5jb25maXJtLCB0cnVlKSkge1xuICAgICAgdGhpcy5hdXRoU2VydmljZS5sb2dvdXRXaXRoQ29uZmlybWF0aW9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nb3V0KCk7XG4gICAgfVxuICB9XG5cbiAgbmF2aWdhdGUoKSB7XG4gICAgY29uc3Qgcm91dGUgPSAodGhpcy5tZW51SXRlbSBhcyBNZW51SXRlbVJvdXRlKS5yb3V0ZTtcbiAgICBpZiAodGhpcy5yb3V0ZXIudXJsICE9PSByb3V0ZSkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3JvdXRlXSk7XG4gICAgfVxuICB9XG5cbiAgdHJpZ2dlckNsaWNrKGU6IEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5hcHBNZW51U2VydmljZS5vbkNsaWNrLm5leHQoKTtcblxuICAgIHN3aXRjaCAodGhpcy5tZW51SXRlbVR5cGUpIHtcbiAgICAgIGNhc2UgJ2FjdGlvbic6XG4gICAgICAgIHRoaXMuZXhlY3V0ZUl0ZW1BY3Rpb24oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsb2NhbGUnOlxuICAgICAgICB0aGlzLmNvbmZpZ3VyZUkxOG4oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsb2dvdXQnOlxuICAgICAgICB0aGlzLmxvZ291dCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmICh0aGlzLmFwcE1lbnVTZXJ2aWNlLmlzUm91dGVJdGVtKHRoaXMubWVudUl0ZW0pKSB7XG4gICAgICAgICAgdGhpcy5uYXZpZ2F0ZSgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB0aGlzLm9uQ2xpY2suZW1pdChlKTtcbiAgfVxuXG5cblxuICBpc0FjdGlvbkl0ZW0oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubWVudUl0ZW1UeXBlID09PSAnYWN0aW9uJztcbiAgfVxuXG4gIGlzTG9jYWxlSXRlbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tZW51SXRlbVR5cGUgPT09ICdsb2NhbGUnO1xuICB9XG5cbiAgaXNMb2dvdXRJdGVtKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1lbnVJdGVtVHlwZSA9PT0gJ2xvZ291dCc7XG4gIH1cblxuICBpc1VzZXJJbmZvSXRlbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tZW51SXRlbVR5cGUgPT09ICd1c2VyLWluZm8nO1xuICB9XG5cbiAgaXNEZWZhdWx0SXRlbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tZW51SXRlbVR5cGUgPT09ICdkZWZhdWx0JztcbiAgfVxuXG4gIGdldCB1c2VGbGFnSWNvbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMub0FwcExheW91dENvbXBvbmVudCAmJiB0aGlzLm9BcHBMYXlvdXRDb21wb25lbnQudXNlRmxhZ0ljb25zO1xuICB9XG5cbiAgZ2V0IHRvb2x0aXAoKTogc3RyaW5nIHtcbiAgICBsZXQgcmVzdWx0ID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCh0aGlzLm1lbnVJdGVtLm5hbWUpO1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLm1lbnVJdGVtLnRvb2x0aXApKSB7XG4gICAgICByZXN1bHQgKz0gJzogJyArIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQodGhpcy5tZW51SXRlbS50b29sdGlwKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldENsYXNzKCkge1xuICAgIGxldCBjbGFzc05hbWUgPSAnby1hcHAtc2lkZW5hdi1tZW51LWl0ZW0nO1xuICAgIGlmICh0aGlzLm1lbnVJdGVtLmNsYXNzKSB7XG4gICAgICBjbGFzc05hbWUgKz0gJyAnICsgdGhpcy5tZW51SXRlbS5jbGFzcztcbiAgICB9XG4gICAgcmV0dXJuIGNsYXNzTmFtZTtcbiAgfVxuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwic2lkZW5hdk9wZW5lZFwiPlxuICA8bGkgKm5nSWY9XCIhaGlkZGVuXCIgY2xhc3M9XCJvLWFwcC1zaWRlbmF2LW1lbnVpdGVtIG8tYXBwLXNpZGVuYXYtaXRlbVwiIFtjbGFzcy5vLXVzZXItaW5mb109XCJpc1VzZXJJbmZvSXRlbSgpXCIgW2lkXT1cIm1lbnVJdGVtLmlkXCI+XG5cbiAgICA8YSBtYXQtYnV0dG9uICpuZ0lmPVwiIWlzVXNlckluZm9JdGVtKCkgJiYgIWlzTG9jYWxlSXRlbSgpXCIgKGNsaWNrKT1cInRyaWdnZXJDbGljaygkZXZlbnQpXCJcbiAgICAgIFtjbGFzcy5vLWFwcC1zaWRlbmF2LXZpZXdlci1zaWRlbmF2LWl0ZW0tc2VsZWN0ZWRdPVwiYWN0aXZlXCI+XG4gICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJtZW51SXRlbS5zdmdJY29uXCIgW3N2Z0ljb25dPVwibWVudUl0ZW0uc3ZnSWNvblwiPjwvbWF0LWljb24+XG4gICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIm1lbnVJdGVtLmljb25cIj57eyBtZW51SXRlbS5pY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJvLWFwcC1zaWRlbmF2LW1lbnVpdGVtLXRpdGxlXCI+e3sgbWVudUl0ZW0ubmFtZSB8IG9UcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2E+XG5cbiAgICA8YSBtYXQtYnV0dG9uICpuZ0lmPVwiaXNMb2NhbGVJdGVtKClcIiAoY2xpY2spPVwidHJpZ2dlckNsaWNrKCRldmVudClcIj5cbiAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIj5cbiAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwibWVudUl0ZW0uc3ZnSWNvblwiIFtzdmdJY29uXT1cIm1lbnVJdGVtLnN2Z0ljb25cIj48L21hdC1pY29uPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJtZW51SXRlbS5pY29uXCI+e3sgbWVudUl0ZW0uaWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgIHt7IG1lbnVJdGVtLm5hbWUgfCBvVHJhbnNsYXRlIH19XG4gICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImlzQ29uZmlndXJlZExhbmcoKVwiIGNsYXNzPVwiY29uZmlndXJlZC1sYW5nXCI+Y2hlY2tfY2lyY2xlPC9tYXQtaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYT5cblxuICAgIDxkaXYgKm5nSWY9XCJpc1VzZXJJbmZvSXRlbSgpXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIGNsYXNzPVwiby11c2VyLWluZm8tbWVudS1pdGVtXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiby11c2VyLWluZm8taW1hZ2VcIiBmeEZsZXhGaWxsPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm8tdXNlci1pbmZvLWl0ZW1cIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiIGZ4RmxleEZpbGw+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvLXVzZXItaW5mby1uYW1lXCI+e3sgbWVudUl0ZW0udXNlciB9fSA8L2Rpdj5cbiAgICAgICAgPG8tbGFuZ3VhZ2Utc2VsZWN0b3IgW3VzZS1mbGFnLWljb25zXT1cInVzZUZsYWdJY29uc1wiPjwvby1sYW5ndWFnZS1zZWxlY3Rvcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2xpPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhc2lkZW5hdk9wZW5lZFwiPlxuICA8bGkgKm5nSWY9XCIhaGlkZGVuXCIgY2xhc3M9XCJvLWFwcC1zaWRlbmF2LW1lbnVpdGVtIG8tYXBwLXNpZGVuYXYtaXRlbVwiPlxuICAgIDxhIFttYXRUb29sdGlwXT1cInRvb2x0aXBcIiBtYXRUb29sdGlwQ2xhc3M9XCJtZW51aXRlbS10b29sdGlwXCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIiBtYXQtYnV0dG9uIChjbGljayk9XCJ0cmlnZ2VyQ2xpY2soJGV2ZW50KVwiXG4gICAgICBbY2xhc3Muby1hcHAtc2lkZW5hdi12aWV3ZXItc2lkZW5hdi1pdGVtLXNlbGVjdGVkXT1cImFjdGl2ZVwiPlxuICAgICAgPG1hdC1pY29uICpuZ0lmPVwibWVudUl0ZW0uc3ZnSWNvblwiIFtzdmdJY29uXT1cIm1lbnVJdGVtLnN2Z0ljb25cIj48L21hdC1pY29uPlxuICAgICAgPG1hdC1pY29uICpuZ0lmPVwibWVudUl0ZW0uaWNvblwiPnt7IG1lbnVJdGVtLmljb24gfX08L21hdC1pY29uPlxuICAgIDwvYT5cbiAgPC9saT5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -211,4 +211,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
211
211
  type: Inject,
212
212
  args: [forwardRef(() => OFormComponent)]
213
213
  }] }]; }, propDecorators: { queryOnChange: [], queryOnChangeDelay: [] } });
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1maWx0ZXItYnVpbGRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXItYnVpbGRlci9vLWZpbHRlci1idWlsZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci1idWlsZGVyL28tZmlsdGVyLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQWMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFJL0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFM0UsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sK0RBQStELENBQUM7QUFLcEgsT0FBTyxFQUFpQixLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStC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V0FBVztRQUNoQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdEMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2hDLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztvSEFyUFUsdUJBQXVCLDBDQXdCeEIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQzt3R0F4Qi9CLHVCQUF1Qiw0Y0FUdkI7UUFDVCxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDLEVBQUU7S0FDeEYsMEJDNURILEVBQUE7QUQyRUU7SUFBQyxxQkFBcUIsRUFBRTs7OERBQ2M7QUFDdEM7SUFBQyxvQkFBb0IsRUFBRTs7bUVBQ2U7MkZBWDNCLHVCQUF1QjtrQkFkbkMsU0FBUzsrQkFDRSxrQkFBa0IsVUFFcEIsK0JBQStCLFdBQzlCLGdDQUFnQyxhQUM5Qjt3QkFDVCxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsQ0FBQyxFQUFFO3FCQUN4Rjs7MEJBK0JFLE1BQU07MkJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQzs0Q0FmbkMsYUFBYSxNQUViLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbmplY3QsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgT0Zvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Zvcm0vby1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXRDb252ZXJ0ZXIsIE51bWJlcklucHV0Q29udmVydGVyIH0gZnJvbSAnLi4vLi4vZGVjb3JhdG9ycy9pbnB1dC1jb252ZXJ0ZXInO1xuaW1wb3J0IHsgSUZpbHRlckJ1aWxkZXJDbXBUYXJnZXQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2ZpbHRlci1idWlsZGVyLWNvbXBvbmVudC10YXJnZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElGb3JtRGF0YUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZm9ybS1kYXRhLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSVNlcnZpY2VEYXRhQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zZXJ2aWNlLWRhdGEtY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVDbGFzcyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0YXRlL28tZmlsdGVyLWJ1aWxkZXItY29tcG9uZW50LXN0YXRlLmNsYXNzJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RhdGUvby1maWx0ZXItYnVpbGRlci1jb21wb25lbnQtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBPRmlsdGVyRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEJhc2ljRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL3R5cGVzL2Jhc2ljLWV4cHJlc3Npb24udHlwZSc7XG5pbXBvcnQgeyBFeHByZXNzaW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvZXhwcmVzc2lvbi50eXBlJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyVmFsdWVzIH0gZnJvbSAnLi4vLi4vdHlwZXMvby1maWx0ZXItYnVpbGRlci12YWx1ZXMudHlwZSc7XG5pbXBvcnQgeyBDSEFOR0VfRVZFTlRTLCBDb2RlcyB9IGZyb20gJy4uLy4uL3V0aWwvY29kZXMnO1xuaW1wb3J0IHsgRmlsdGVyRXhwcmVzc2lvblV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbC9maWx0ZXItZXhwcmVzc2lvbi51dGlscyc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyQmFzZSB9IGZyb20gJy4vby1maWx0ZXItYnVpbGRlci1iYXNlLmNsYXNzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfSU5QVVRTX09fRklMVEVSX0JVSUxERVIgPSBbXG4gIC8vIGZpbHRlcnM6IFtzdHJpbmddIExpc3Qgb2YgcGFpcnMgb2YgZm9ybSBjb21wb25lbnQgYXR0cmlidXRlcyBhbmQgdGFyZ2V0IGNvbXBvbmVudCBjb2x1bXMgKHRhcmdldENvbHVtbjE6Y29tcG9uZW50QXR0cjE7dGFyZ2V0Q29sdW1uMjpjb21wb25lbnRBdHRyMjsuLi4pLiBTZXBhcmF0ZWQgYnkgJzsnLlxuICAnZmlsdGVycycsXG5cbiAgLy8gdGFyZ2V0IFtgT1NlcnZpY2VDb21wb25lbnRgIGluc3RhbmNlXTogQ29tcG9uZW50IHdob3NlIGRhdGEgd2lsbCBiZSBmaWx0ZXJlZC5cbiAgJ3RhcmdldENtcDogdGFyZ2V0JyxcblxuICAvLyBleHByZXNzaW9uLWJ1aWxkZXIgW2Z1bnRpb25dOiBGdW50aW9uIGNhbGxlZCBmb3IgY3JlYXRpbmcgdGhlIGV4cHJlc3Npb24uXG4gICdleHByZXNzaW9uQnVpbGRlcjogZXhwcmVzc2lvbi1idWlsZGVyJyxcblxuICAvLyBxdWVyeS1vbi1jaGFuZ2UgW3llc3xub3x0cnVlfGZhbHNlXTogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRvIHRyaWdnZXIgdGhlIHRhcmdldCBjb21wb25lbnQgcmVmcmVzaCB3aGVuIGEgZmlsdGVyIGNvbXBvbmVudCBgb25DaGFuZ2VgIGV2ZW50IGlzIGZpcmVkLiBEZWZhdWx0OiBuby5cbiAgJ3F1ZXJ5T25DaGFuZ2U6IHF1ZXJ5LW9uLWNoYW5nZScsXG5cbiAgLy8gcXVlcnktb24tY2hhbmdlLWRlbGF5IFtudW1iZXJdOiBEZWxheSB0aW1lIGluIG1pbGxpc2Vjb25kcyBgcXVlcnktb24tY2hhbmdlYCBtZXRob2QgaXMgdHJpZ2dlcmVkLiBEZWZhdWx0OiAwLlxuICAncXVlcnlPbkNoYW5nZURlbGF5OiBxdWVyeS1vbi1jaGFuZ2UtZGVsYXknLFxuXG4gIC8vcXVlcnktb24tY2hhbmdlLWV2ZW50OiBbY2hhbmdlfCBvblZhbHVlQ2hhbmdlXSBUeXBlIG9mIGV2ZW50IHRoYXQgZW1pdCB3aGVuIHF1ZXJ5LW9uLWNoYW5nZT1geWVzYFxuICAncXVlcnlPbkNoYW5nZUV2ZW50VHlwZTogcXVlcnktb24tY2hhbmdlLWV2ZW50LXR5cGUnLFxuXG4gIC8vIGF0dHIgW3N0cmluZ106IGZpbHRlciBidWlsZGVyIGlkZW50aWZpZXIuIEl0IGlzIG1hbmRhdG9yeSBpZiBkYXRhIGFyZSBwcm92aWRlZCB0aHJvdWdoIHRoZSBkYXRhIGF0dHJpYnV0ZS4gRGVmYXVsdDogdGFyZ2V0IChpZiBzZXQpLlxuICAnb2F0dHI6IGF0dHInLFxuXVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9PVVRQVVRTX09fRklMVEVSX0JVSUxERVIgPSBbXG4gIC8vIEV2ZW50IHRyaWdnZXJlZCB3aGVuIHRoZSBmaWx0ZXIgYWN0aW9uIGlzIGV4ZWN1dGVkLlxuICAnb25GaWx0ZXInLFxuXG4gIC8vIEV2ZW50IHRyaWdnZXJlZCB3aGVuIHRoZSBjbGVhciBhY3Rpb24gaXMgZXhjdXRlZC5cbiAgJ29uQ2xlYXInXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLWZpbHRlci1idWlsZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tZmlsdGVyLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBpbnB1dHM6IERFRkFVTFRfSU5QVVRTX09fRklMVEVSX0JVSUxERVIsXG4gIG91dHB1dHM6IERFRkFVTFRfT1VUUFVUU19PX0ZJTFRFUl9CVUlMREVSLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IE9GaWx0ZXJCdWlsZGVyQmFzZSwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gT0ZpbHRlckJ1aWxkZXJDb21wb25lbnQpIH1cbiAgXVxufSlcblxuLyoqXG4gKiBUaGUgT0ZpbHRlckJ1aWxkZXJDb21wb25lbnQuXG4gKi9cblxuZXhwb3J0IGNsYXNzIE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQge1xuXG4gIHB1YmxpYyBvbkZpbHRlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgcHVibGljIG9uQ2xlYXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgcHVibGljIGZpbHRlcnM6IHN0cmluZztcbiAgcHVibGljIHRhcmdldENtcDogSVNlcnZpY2VEYXRhQ29tcG9uZW50O1xuICBwdWJsaWMgZXhwcmVzc2lvbkJ1aWxkZXI6ICh2YWx1ZXM6IEFycmF5PHsgYXR0ciwgdmFsdWUgfT4pID0+IEV4cHJlc3Npb247XG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBwdWJsaWMgcXVlcnlPbkNoYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xuICBATnVtYmVySW5wdXRDb252ZXJ0ZXIoKVxuICBwdWJsaWMgcXVlcnlPbkNoYW5nZURlbGF5OiBudW1iZXIgPSAwO1xuICBwdWJsaWMgcXVlcnlPbkNoYW5nZUV2ZW50VHlwZTogQ0hBTkdFX0VWRU5UUyA9IENvZGVzLkRFRkFVTFRfQ0hBTkdFX0VWRU5UO1xuXG4gIHByb3RlY3RlZCBmaWx0ZXJDb21wb25lbnRzOiBBcnJheTxJRmlsdGVyQnVpbGRlckNtcFRhcmdldD4gPSBbXTtcblxuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBwdWJsaWMgb2F0dHI6IHN0cmluZztcbiAgcHJvdGVjdGVkIGNvbXBvbmVudFN0YXRlU2VydmljZTogT0ZpbHRlckJ1aWxkZXJDb21wb25lbnRTdGF0ZVNlcnZpY2U7XG4gIHByb3RlY3RlZCBsb2NhbFN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXI7XG4gIHByb3RlY3RlZCBhY3RSb3V0ZTogQWN0aXZhdGVkUm91dGU7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IE9Gb3JtQ29tcG9uZW50KSkgcHVibGljIGZvcm06IE9Gb3JtQ29tcG9uZW50XG4gICkge1xuICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KExvY2FsU3RvcmFnZVNlcnZpY2UpO1xuICAgIHRoaXMuY29tcG9uZW50U3RhdGVTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQ8T0ZpbHRlckJ1aWxkZXJDb21wb25lbnRTdGF0ZVNlcnZpY2U+KE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVTZXJ2aWNlKTtcbiAgICB0aGlzLnJvdXRlciA9IHRoaXMuaW5qZWN0b3IuZ2V0PFJvdXRlcj4oUm91dGVyKTtcbiAgICB0aGlzLmFjdFJvdXRlID0gdGhpcy5pbmplY3Rvci5nZXQ8QWN0aXZhdGVkUm91dGU+KEFjdGl2YXRlZFJvdXRlKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUxpc3RlbmVycygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9ucykge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudFN0YXRlU2VydmljZS5pbml0aWFsaXplKHRoaXMpO1xuICAgIC8vIFBhcnNlIGZpbHRlcnNcbiAgICBpZiAodGhpcy5maWx0ZXJzKSB7XG4gICAgICBjb25zdCBmaWx0ZXJBcnJheTogQXJyYXk8c3RyaW5nPiA9IFV0aWwucGFyc2VBcnJheSh0aGlzLmZpbHRlcnMpO1xuICAgICAgZmlsdGVyQXJyYXkuZm9yRWFjaChmaWx0ZXIgPT4ge1xuICAgICAgICBjb25zdCBmaWx0ZXJFbG1zID0gZmlsdGVyLnNwbGl0KENvZGVzLkNPTFVNTlNfQUxJQVNfU0VQQVJBVE9SKTtcbiAgICAgICAgdGhpcy5maWx0ZXJDb21wb25lbnRzLnB1c2goe1xuICAgICAgICAgIHRhcmdldEF0dHI6IGZpbHRlckVsbXNbMF0sXG4gICAgICAgICAgZm9ybUNvbXBvbmVudEF0dHI6IGZpbHRlckVsbXNbMV0gPyBmaWx0ZXJFbG1zWzFdIDogZmlsdGVyRWxtc1swXVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLnRhcmdldENtcCkpIHtcbiAgICAgIHRoaXMudGFyZ2V0Q21wLnNldEZpbHRlckJ1aWxkZXIodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgaW5pdGlhbGl6ZUxpc3RlbmVycygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5xdWVyeU9uQ2hhbmdlKSB7XG4gICAgICB0aGlzLmZpbHRlckNvbXBvbmVudHMuZm9yRWFjaCgoZmlsdGVyQ29tcG9uZW50OiBJRmlsdGVyQnVpbGRlckNtcFRhcmdldCkgPT4ge1xuICAgICAgICBjb25zdCBmb3JtQ29tcG9uZW50OiBJRm9ybURhdGFDb21wb25lbnQgPSB0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpW2ZpbHRlckNvbXBvbmVudC5mb3JtQ29tcG9uZW50QXR0cl07XG4gICAgICAgIGlmIChmb3JtQ29tcG9uZW50KSB7XG4gICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIHRoaXMuZ2V0RXZlbnRGcm9tRm9ybUNvbXBvbmVudChmb3JtQ29tcG9uZW50KVxuICAgICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUodGhpcy5xdWVyeU9uQ2hhbmdlRGVsYXkpKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMudHJpZ2dlclJlbG9hZCgpKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXZlbnRGcm9tRm9ybUNvbXBvbmVudChmb3JtQ29tcG9uZW50OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5T25DaGFuZ2VFdmVudFR5cGUgPT09IENvZGVzLkRFRkFVTFRfQ0hBTkdFX0VWRU5UID9cbiAgICAgIGZvcm1Db21wb25lbnQub25WYWx1ZUNoYW5nZSA6XG4gICAgICBmb3JtQ29tcG9uZW50LmdldEZvcm1Db250cm9sKCkudmFsdWVDaGFuZ2VzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYEV4cHJlc3Npb25gIG9iamVjdCB3aXRoIHRoZSBmaWx0ZXIuXG4gICAqIEByZXR1cm5zIHRoZSBgRXhwcmVzc2lvbmAgb2JqZWN0IHdpdGggdGhlIGZpbHRlci5cbiAgICovXG4gIGdldEV4cHJlc3Npb24oKTogRXhwcmVzc2lvbiB7XG4gICAgLy8gUHJlcGFyZSBmb3JtIGZpbHRlciB2YWx1ZXMgWy4uLiB7IGF0dHIsIHZhbHVlIH1dXG4gICAgY29uc3QgZm9ybUNvbXBvbmVudHMgPSB0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpO1xuICAgIGNvbnN0IHBhcmFtczogQXJyYXk8eyBhdHRyLCB2YWx1ZSB9PiA9IFtdO1xuICAgIHRoaXMuZmlsdGVyQ29tcG9uZW50cy5mb3JFYWNoKChmaWx0ZXJDb21wb25lbnQ6IElGaWx0ZXJCdWlsZGVyQ21wVGFyZ2V0KSA9PiB7XG4gICAgICBjb25zdCBmb3JtQ29tcG9uZW50OiBJRm9ybURhdGFDb21wb25lbnQgPSBmb3JtQ29tcG9uZW50c1tmaWx0ZXJDb21wb25lbnQuZm9ybUNvbXBvbmVudEF0dHJdO1xuICAgICAgaWYgKGZvcm1Db21wb25lbnQpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBmb3JtQ29tcG9uZW50LmdldFZhbHVlKCk7XG4gICAgICAgIHBhcmFtcy5wdXNoKHtcbiAgICAgICAgICBhdHRyOiBmaWx0ZXJDb21wb25lbnQudGFyZ2V0QXR0cixcbiAgICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBUcmlnZ2VyIHRoZSBmdW5jdGlvbiBwcm92aWRlZCBieSB0aGUgdXNlclxuICAgIGlmICh0aGlzLmV4cHJlc3Npb25CdWlsZGVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5leHByZXNzaW9uQnVpbGRlcihwYXJhbXMpO1xuICAgIH1cblxuICAgIC8vIEdlbmVyYXRlIGRlc2ZhdWx0IGV4cHJlc3Npb25cbiAgICBjb25zdCBleHByZXNzaW9uczogQXJyYXk8RXhwcmVzc2lvbj4gPSBbXTtcbiAgICBwYXJhbXMuZm9yRWFjaChlbGVtID0+IHtcbiAgICAgIGlmIChVdGlsLmlzRGVmaW5lZChlbGVtLnZhbHVlKSkge1xuICAgICAgICBleHByZXNzaW9ucy5wdXNoKEZpbHRlckV4cHJlc3Npb25VdGlscy5idWlsZEV4cHJlc3Npb25FcXVhbHMoZWxlbS5hdHRyLCBlbGVtLnZhbHVlKSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZXhwcmVzc2lvbnMubGVuZ3RoID8gZXhwcmVzc2lvbnMucmVkdWNlKChmZTEsIGZlMikgPT4gRmlsdGVyRXhwcmVzc2lvblV0aWxzLmJ1aWxkQ29tcGxleEV4cHJlc3Npb24oZmUxLCBmZTIsIEZpbHRlckV4cHJlc3Npb25VdGlscy5PUF9PUikpIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYEJhc2ljRXhwcmVzc2lvbmAgb2JqZWN0IHdpdGggdGhlIGZpbHRlci5cbiAgICogQHJldHVybnMgdGhlIGBCYXNpY0V4cHJlc3Npb25gIG9iamVjdCB3aXRoIHRoZSBmaWx0ZXIuXG4gICAqL1xuICBnZXRCYXNpY0V4cHJlc3Npb24oKTogQmFzaWNFeHByZXNzaW9uIHtcbiAgICByZXR1cm4gRmlsdGVyRXhwcmVzc2lvblV0aWxzLmJ1aWxkQmFzaWNFeHByZXNzaW9uKHRoaXMuZ2V0RXhwcmVzc2lvbigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBmaWx0ZXIgYnVpbGRlciB0YXJnZXQgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyB0aGUgdGFyZ2V0IGNvbXBvbmVudC5cbiAgICovXG4gIGdldFRhcmdldENvbXBvbmVudCgpOiBJU2VydmljZURhdGFDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLnRhcmdldENtcDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyIHRoZSBgcmVsb2FkRGF0YWAgbWV0aG9kIGZyb20gdGhlIHRhcmdldCBjb21wb25lbnQuXG4gICAqL1xuICB0cmlnZ2VyUmVsb2FkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy50YXJnZXRDbXApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMudGFyZ2V0Q21wLnBhZ2VhYmxlKSB7XG4gICAgICB0aGlzLnRhcmdldENtcC5yZWxvYWRQYWdpbmF0ZWREYXRhRnJvbVN0YXJ0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGFyZ2V0Q21wLnJlbG9hZERhdGEoKTtcbiAgICB9XG4gICAgdGhpcy5vbkZpbHRlci5lbWl0KCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgdGhlIGZvcm0gY29tcG9uZW50cyB1c2VkIGZvciB0aGUgZmlsdGVyLlxuICAgKi9cbiAgY2xlYXJGaWx0ZXIoKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUNvbXBvbmVudHMgPSB0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpO1xuICAgIHRoaXMuZ2V0RmlsdGVyQXR0cnMoKS5mb3JFYWNoKChhdHRyOiBzdHJpbmcpID0+IHtcbiAgICAgIGZvcm1Db21wb25lbnRzW2F0dHJdLmNsZWFyVmFsdWUoKTtcbiAgICB9KTtcbiAgICB0aGlzLm9uQ2xlYXIuZW1pdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgZmlsdGVyIHZhbHVlc1xuICAgKiBAcmV0dXJucyBmaWx0ZXIgdmFsdWVzXG4gICAqL1xuICBnZXRGaWx0ZXJWYWx1ZXMoKTogT0ZpbHRlckJ1aWxkZXJWYWx1ZXNbXSB7XG4gICAgY29uc3QgcmVzdWx0OiBPRmlsdGVyQnVpbGRlclZhbHVlc1tdID0gW107XG5cbiAgICB0aGlzLmZpbHRlckNvbXBvbmVudHMuXG4gICAgICBmb3JFYWNoKChmaWx0ZXJDb21wb25lbnQ6IElGaWx0ZXJCdWlsZGVyQ21wVGFyZ2V0KSA9PiB7XG4gICAgICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpW2ZpbHRlckNvbXBvbmVudC5mb3JtQ29tcG9uZW50QXR0cl0pKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goeyBhdHRyOiBmaWx0ZXJDb21wb25lbnQuZm9ybUNvbXBvbmVudEF0dHIsIHZhbHVlOiB0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpW2ZpbHRlckNvbXBvbmVudC5mb3JtQ29tcG9uZW50QXR0cl0uZ2V0VmFsdWUoKSB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcblxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgZmlsdGVyIHZhbHVlc1xuICAgKiBAcGFyYW0gZmlsdGVyQnVpbGRlclZhbHVlc1xuICAgKi9cbiAgc2V0RmlsdGVyVmFsdWVzKGZpbHRlckJ1aWxkZXJWYWx1ZXM6IE9GaWx0ZXJCdWlsZGVyVmFsdWVzW10pIHtcbiAgICBmaWx0ZXJCdWlsZGVyVmFsdWVzLmZvckVhY2goKGZpbHRlckJ1aWxkZXJWYWx1ZTogT0ZpbHRlckJ1aWxkZXJWYWx1ZXMpID0+IHtcbiAgICAgIGlmICh0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpW2ZpbHRlckJ1aWxkZXJWYWx1ZS5hdHRyXSkge1xuICAgICAgICB0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpW2ZpbHRlckJ1aWxkZXJWYWx1ZS5hdHRyXS5zZXRWYWx1ZShmaWx0ZXJCdWlsZGVyVmFsdWUudmFsdWUpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1RoZSBmaWx0ZXIgd2l0aCBhdHRyICcgKyBmaWx0ZXJCdWlsZGVyVmFsdWUuYXR0ciArICcgY2Fubm90IGJlIHNldCAnICsgZmlsdGVyQnVpbGRlclZhbHVlLnZhbHVlICsgJyBiZWNhdXNlIGl0IGRvZXMgbm90IGV4aXN0IC4nKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYXJyYXkgd2l0aCB0aGUgYXR0cmlidXRlcyBvZiB0aGUgZmlsdGVyYWJsZSBjb21wb25lbnRzXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0RmlsdGVyQXR0cnMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyQ29tcG9uZW50cy5tYXAoKGVsZW06IElGaWx0ZXJCdWlsZGVyQ21wVGFyZ2V0KSA9PiBlbGVtLmZvcm1Db21wb25lbnRBdHRyKTtcbiAgfVxuICAvKipcbiAgICogR2V0cyBzdGF0ZVxuICAgKi9cbiAgZ2V0IHN0YXRlKCk6IE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVDbGFzcyB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50U3RhdGVTZXJ2aWNlLnN0YXRlO1xuICB9XG5cblxuICBnZXREYXRhVG9TdG9yZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRTdGF0ZVNlcnZpY2Uuc3RhdGU7XG4gIH1cblxuICBnZXRDb21wb25lbnRLZXkoKTogc3RyaW5nIHtcbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKHRoaXMub2F0dHIpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdZb3VyIG8tZmlsdGVyLWJ1aWxkZXIgY29tcG9uZW50IG11c3QgaGF2ZSBhbiBcXCdhdHRyXFwnLiBPdGhlcndpc2UsIHlvdXIgZmlsdGVyIGJ1aWxkZXIgc3RhdGUgd2lsbCBub3Qgc2V0IGluIGxvY2Fsc3RvcmFnZS4nKTtcbiAgICAgIHJldHVybiAnT0ZpbHRlckJ1aWxkZXJDb21wb25lbnRfJztcbiAgICB9XG5cbiAgICByZXR1cm4gJ09GaWx0ZXJCdWlsZGVyQ29tcG9uZW50XycgKyB0aGlzLm9hdHRyO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3JlcyBmaWx0ZXIgaW4gc3RhdGVcbiAgICogQHBhcmFtIGFyZ1xuICAgKi9cbiAgc3RvcmVGaWx0ZXJJblN0YXRlKGFyZzogT0ZpbHRlckRlZmluaXRpb24pIHtcbiAgICB0aGlzLmNvbXBvbmVudFN0YXRlU2VydmljZS5zdG9yZUZpbHRlcihhcmcpO1xuICAgIHRoaXMudXBkYXRlU3RhdGVTdG9yYWdlKCk7XG4gIH1cbiAgLyoqXG4gICAqIE1ldGhvZCB1cGRhdGUgc3RvcmUgbG9jYWxzdG9yYWdlLCBjYWxsIG9mIHRoZSBJTG9jYWxTdG9yYWdlXG4gICAqL1xuICBwcm90ZWN0ZWQgdXBkYXRlU3RhdGVTdG9yYWdlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2UpIHtcbiAgICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS51cGRhdGVDb21wb25lbnRTdG9yYWdlKHRoaXMsIHRoaXMuZ2V0Um91dGVLZXkoKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFJvdXRlS2V5KCk6IHN0cmluZyB7XG4gICAgbGV0IHJvdXRlID0gdGhpcy5yb3V0ZXIudXJsO1xuICAgIHRoaXMuYWN0Um91dGUucGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xuICAgICAgT2JqZWN0LmtleXMocGFyYW1zKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIHJvdXRlID0gcm91dGUucmVwbGFjZShwYXJhbXNba2V5XSwga2V5KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiByb3V0ZTtcbiAgfVxufVxuIiwiIl19
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1maWx0ZXItYnVpbGRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXItYnVpbGRlci9vLWZpbHRlci1idWlsZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci1idWlsZGVyL28tZmlsdGVyLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQWMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFJL0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFM0UsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sK0RBQStELENBQUM7QUFJcEgsT0FBTyxFQUFpQixLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStC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V0FBVztRQUNoQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdEMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2hDLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztvSEFyUFUsdUJBQXVCLDBDQXdCeEIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQzt3R0F4Qi9CLHVCQUF1Qiw0Y0FUdkI7UUFDVCxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDLEVBQUU7S0FDeEYsMEJDNURILEVBQUE7QUQyRUU7SUFBQyxxQkFBcUIsRUFBRTs7OERBQ2M7QUFDdEM7SUFBQyxvQkFBb0IsRUFBRTs7bUVBQ2U7MkZBWDNCLHVCQUF1QjtrQkFkbkMsU0FBUzsrQkFDRSxrQkFBa0IsVUFFcEIsK0JBQStCLFdBQzlCLGdDQUFnQyxhQUM5Qjt3QkFDVCxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsQ0FBQyxFQUFFO3FCQUN4Rjs7MEJBK0JFLE1BQU07MkJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQzs0Q0FmbkMsYUFBYSxNQUViLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbmplY3QsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgT0Zvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Zvcm0vby1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXRDb252ZXJ0ZXIsIE51bWJlcklucHV0Q29udmVydGVyIH0gZnJvbSAnLi4vLi4vZGVjb3JhdG9ycy9pbnB1dC1jb252ZXJ0ZXInO1xuaW1wb3J0IHsgSUZpbHRlckJ1aWxkZXJDbXBUYXJnZXQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2ZpbHRlci1idWlsZGVyLWNvbXBvbmVudC10YXJnZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElGb3JtRGF0YUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZm9ybS1kYXRhLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSVNlcnZpY2VEYXRhQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zZXJ2aWNlLWRhdGEtY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVDbGFzcyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0YXRlL28tZmlsdGVyLWJ1aWxkZXItY29tcG9uZW50LXN0YXRlLmNsYXNzJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RhdGUvby1maWx0ZXItYnVpbGRlci1jb21wb25lbnQtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBCYXNpY0V4cHJlc3Npb24gfSBmcm9tICcuLi8uLi90eXBlcy9iYXNpYy1leHByZXNzaW9uLnR5cGUnO1xuaW1wb3J0IHsgRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL3R5cGVzL2V4cHJlc3Npb24udHlwZSc7XG5pbXBvcnQgeyBPRmlsdGVyQnVpbGRlclZhbHVlcyB9IGZyb20gJy4uLy4uL3R5cGVzL28tZmlsdGVyLWJ1aWxkZXItdmFsdWVzLnR5cGUnO1xuaW1wb3J0IHsgQ0hBTkdFX0VWRU5UUywgQ29kZXMgfSBmcm9tICcuLi8uLi91dGlsL2NvZGVzJztcbmltcG9ydCB7IEZpbHRlckV4cHJlc3Npb25VdGlscyB9IGZyb20gJy4uLy4uL3V0aWwvZmlsdGVyLWV4cHJlc3Npb24udXRpbHMnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBPRmlsdGVyQnVpbGRlckJhc2UgfSBmcm9tICcuL28tZmlsdGVyLWJ1aWxkZXItYmFzZS5jbGFzcyc7XG5pbXBvcnQgeyBPRmlsdGVyRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzL28tZmlsdGVyLWRlZmluaXRpb24udHlwZSc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0lOUFVUU19PX0ZJTFRFUl9CVUlMREVSID0gW1xuICAvLyBmaWx0ZXJzOiBbc3RyaW5nXSBMaXN0IG9mIHBhaXJzIG9mIGZvcm0gY29tcG9uZW50IGF0dHJpYnV0ZXMgYW5kIHRhcmdldCBjb21wb25lbnQgY29sdW1zICh0YXJnZXRDb2x1bW4xOmNvbXBvbmVudEF0dHIxO3RhcmdldENvbHVtbjI6Y29tcG9uZW50QXR0cjI7Li4uKS4gU2VwYXJhdGVkIGJ5ICc7Jy5cbiAgJ2ZpbHRlcnMnLFxuXG4gIC8vIHRhcmdldCBbYE9TZXJ2aWNlQ29tcG9uZW50YCBpbnN0YW5jZV06IENvbXBvbmVudCB3aG9zZSBkYXRhIHdpbGwgYmUgZmlsdGVyZWQuXG4gICd0YXJnZXRDbXA6IHRhcmdldCcsXG5cbiAgLy8gZXhwcmVzc2lvbi1idWlsZGVyIFtmdW50aW9uXTogRnVudGlvbiBjYWxsZWQgZm9yIGNyZWF0aW5nIHRoZSBleHByZXNzaW9uLlxuICAnZXhwcmVzc2lvbkJ1aWxkZXI6IGV4cHJlc3Npb24tYnVpbGRlcicsXG5cbiAgLy8gcXVlcnktb24tY2hhbmdlIFt5ZXN8bm98dHJ1ZXxmYWxzZV06IEluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCB0byB0cmlnZ2VyIHRoZSB0YXJnZXQgY29tcG9uZW50IHJlZnJlc2ggd2hlbiBhIGZpbHRlciBjb21wb25lbnQgYG9uQ2hhbmdlYCBldmVudCBpcyBmaXJlZC4gRGVmYXVsdDogbm8uXG4gICdxdWVyeU9uQ2hhbmdlOiBxdWVyeS1vbi1jaGFuZ2UnLFxuXG4gIC8vIHF1ZXJ5LW9uLWNoYW5nZS1kZWxheSBbbnVtYmVyXTogRGVsYXkgdGltZSBpbiBtaWxsaXNlY29uZHMgYHF1ZXJ5LW9uLWNoYW5nZWAgbWV0aG9kIGlzIHRyaWdnZXJlZC4gRGVmYXVsdDogMC5cbiAgJ3F1ZXJ5T25DaGFuZ2VEZWxheTogcXVlcnktb24tY2hhbmdlLWRlbGF5JyxcblxuICAvL3F1ZXJ5LW9uLWNoYW5nZS1ldmVudDogW2NoYW5nZXwgb25WYWx1ZUNoYW5nZV0gVHlwZSBvZiBldmVudCB0aGF0IGVtaXQgd2hlbiBxdWVyeS1vbi1jaGFuZ2U9YHllc2BcbiAgJ3F1ZXJ5T25DaGFuZ2VFdmVudFR5cGU6IHF1ZXJ5LW9uLWNoYW5nZS1ldmVudC10eXBlJyxcblxuICAvLyBhdHRyIFtzdHJpbmddOiBmaWx0ZXIgYnVpbGRlciBpZGVudGlmaWVyLiBJdCBpcyBtYW5kYXRvcnkgaWYgZGF0YSBhcmUgcHJvdmlkZWQgdGhyb3VnaCB0aGUgZGF0YSBhdHRyaWJ1dGUuIERlZmF1bHQ6IHRhcmdldCAoaWYgc2V0KS5cbiAgJ29hdHRyOiBhdHRyJyxcbl1cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfT1VUUFVUU19PX0ZJTFRFUl9CVUlMREVSID0gW1xuICAvLyBFdmVudCB0cmlnZ2VyZWQgd2hlbiB0aGUgZmlsdGVyIGFjdGlvbiBpcyBleGVjdXRlZC5cbiAgJ29uRmlsdGVyJyxcblxuICAvLyBFdmVudCB0cmlnZ2VyZWQgd2hlbiB0aGUgY2xlYXIgYWN0aW9uIGlzIGV4Y3V0ZWQuXG4gICdvbkNsZWFyJ1xuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnby1maWx0ZXItYnVpbGRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9vLWZpbHRlci1idWlsZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgaW5wdXRzOiBERUZBVUxUX0lOUFVUU19PX0ZJTFRFUl9CVUlMREVSLFxuICBvdXRwdXRzOiBERUZBVUxUX09VVFBVVFNfT19GSUxURVJfQlVJTERFUixcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBPRmlsdGVyQnVpbGRlckJhc2UsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50KSB9XG4gIF1cbn0pXG5cbi8qKlxuICogVGhlIE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50LlxuICovXG5cbmV4cG9ydCBjbGFzcyBPRmlsdGVyQnVpbGRlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25Jbml0IHtcblxuICBwdWJsaWMgb25GaWx0ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIHB1YmxpYyBvbkNsZWFyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIHB1YmxpYyBmaWx0ZXJzOiBzdHJpbmc7XG4gIHB1YmxpYyB0YXJnZXRDbXA6IElTZXJ2aWNlRGF0YUNvbXBvbmVudDtcbiAgcHVibGljIGV4cHJlc3Npb25CdWlsZGVyOiAodmFsdWVzOiBBcnJheTx7IGF0dHIsIHZhbHVlIH0+KSA9PiBFeHByZXNzaW9uO1xuICBAQm9vbGVhbklucHV0Q29udmVydGVyKClcbiAgcHVibGljIHF1ZXJ5T25DaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE51bWJlcklucHV0Q29udmVydGVyKClcbiAgcHVibGljIHF1ZXJ5T25DaGFuZ2VEZWxheTogbnVtYmVyID0gMDtcbiAgcHVibGljIHF1ZXJ5T25DaGFuZ2VFdmVudFR5cGU6IENIQU5HRV9FVkVOVFMgPSBDb2Rlcy5ERUZBVUxUX0NIQU5HRV9FVkVOVDtcblxuICBwcm90ZWN0ZWQgZmlsdGVyQ29tcG9uZW50czogQXJyYXk8SUZpbHRlckJ1aWxkZXJDbXBUYXJnZXQ+ID0gW107XG5cbiAgcHJvdGVjdGVkIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHVibGljIG9hdHRyOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBjb21wb25lbnRTdGF0ZVNlcnZpY2U6IE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgbG9jYWxTdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZTtcbiAgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyO1xuICBwcm90ZWN0ZWQgYWN0Um91dGU6IEFjdGl2YXRlZFJvdXRlO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBPRm9ybUNvbXBvbmVudCkpIHB1YmxpYyBmb3JtOiBPRm9ybUNvbXBvbmVudFxuICApIHtcbiAgICB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChMb2NhbFN0b3JhZ2VTZXJ2aWNlKTtcbiAgICB0aGlzLmNvbXBvbmVudFN0YXRlU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0PE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVTZXJ2aWNlPihPRmlsdGVyQnVpbGRlckNvbXBvbmVudFN0YXRlU2VydmljZSk7XG4gICAgdGhpcy5yb3V0ZXIgPSB0aGlzLmluamVjdG9yLmdldDxSb3V0ZXI+KFJvdXRlcik7XG4gICAgdGhpcy5hY3RSb3V0ZSA9IHRoaXMuaW5qZWN0b3IuZ2V0PEFjdGl2YXRlZFJvdXRlPihBY3RpdmF0ZWRSb3V0ZSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemUoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemVMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnRTdGF0ZVNlcnZpY2UuaW5pdGlhbGl6ZSh0aGlzKTtcbiAgICAvLyBQYXJzZSBmaWx0ZXJzXG4gICAgaWYgKHRoaXMuZmlsdGVycykge1xuICAgICAgY29uc3QgZmlsdGVyQXJyYXk6IEFycmF5PHN0cmluZz4gPSBVdGlsLnBhcnNlQXJyYXkodGhpcy5maWx0ZXJzKTtcbiAgICAgIGZpbHRlckFycmF5LmZvckVhY2goZmlsdGVyID0+IHtcbiAgICAgICAgY29uc3QgZmlsdGVyRWxtcyA9IGZpbHRlci5zcGxpdChDb2Rlcy5DT0xVTU5TX0FMSUFTX1NFUEFSQVRPUik7XG4gICAgICAgIHRoaXMuZmlsdGVyQ29tcG9uZW50cy5wdXNoKHtcbiAgICAgICAgICB0YXJnZXRBdHRyOiBmaWx0ZXJFbG1zWzBdLFxuICAgICAgICAgIGZvcm1Db21wb25lbnRBdHRyOiBmaWx0ZXJFbG1zWzFdID8gZmlsdGVyRWxtc1sxXSA6IGZpbHRlckVsbXNbMF1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQodGhpcy50YXJnZXRDbXApKSB7XG4gICAgICB0aGlzLnRhcmdldENtcC5zZXRGaWx0ZXJCdWlsZGVyKHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIGluaXRpYWxpemVMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucXVlcnlPbkNoYW5nZSkge1xuICAgICAgdGhpcy5maWx0ZXJDb21wb25lbnRzLmZvckVhY2goKGZpbHRlckNvbXBvbmVudDogSUZpbHRlckJ1aWxkZXJDbXBUYXJnZXQpID0+IHtcbiAgICAgICAgY29uc3QgZm9ybUNvbXBvbmVudDogSUZvcm1EYXRhQ29tcG9uZW50ID0gdGhpcy5mb3JtLmdldENvbXBvbmVudHMoKVtmaWx0ZXJDb21wb25lbnQuZm9ybUNvbXBvbmVudEF0dHJdO1xuICAgICAgICBpZiAoZm9ybUNvbXBvbmVudCkge1xuICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICB0aGlzLmdldEV2ZW50RnJvbUZvcm1Db21wb25lbnQoZm9ybUNvbXBvbmVudClcbiAgICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMucXVlcnlPbkNoYW5nZURlbGF5KSlcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnRyaWdnZXJSZWxvYWQoKSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEV2ZW50RnJvbUZvcm1Db21wb25lbnQoZm9ybUNvbXBvbmVudDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeU9uQ2hhbmdlRXZlbnRUeXBlID09PSBDb2Rlcy5ERUZBVUxUX0NIQU5HRV9FVkVOVCA/XG4gICAgICBmb3JtQ29tcG9uZW50Lm9uVmFsdWVDaGFuZ2UgOlxuICAgICAgZm9ybUNvbXBvbmVudC5nZXRGb3JtQ29udHJvbCgpLnZhbHVlQ2hhbmdlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGBFeHByZXNzaW9uYCBvYmplY3Qgd2l0aCB0aGUgZmlsdGVyLlxuICAgKiBAcmV0dXJucyB0aGUgYEV4cHJlc3Npb25gIG9iamVjdCB3aXRoIHRoZSBmaWx0ZXIuXG4gICAqL1xuICBnZXRFeHByZXNzaW9uKCk6IEV4cHJlc3Npb24ge1xuICAgIC8vIFByZXBhcmUgZm9ybSBmaWx0ZXIgdmFsdWVzIFsuLi4geyBhdHRyLCB2YWx1ZSB9XVxuICAgIGNvbnN0IGZvcm1Db21wb25lbnRzID0gdGhpcy5mb3JtLmdldENvbXBvbmVudHMoKTtcbiAgICBjb25zdCBwYXJhbXM6IEFycmF5PHsgYXR0ciwgdmFsdWUgfT4gPSBbXTtcbiAgICB0aGlzLmZpbHRlckNvbXBvbmVudHMuZm9yRWFjaCgoZmlsdGVyQ29tcG9uZW50OiBJRmlsdGVyQnVpbGRlckNtcFRhcmdldCkgPT4ge1xuICAgICAgY29uc3QgZm9ybUNvbXBvbmVudDogSUZvcm1EYXRhQ29tcG9uZW50ID0gZm9ybUNvbXBvbmVudHNbZmlsdGVyQ29tcG9uZW50LmZvcm1Db21wb25lbnRBdHRyXTtcbiAgICAgIGlmIChmb3JtQ29tcG9uZW50KSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZm9ybUNvbXBvbmVudC5nZXRWYWx1ZSgpO1xuICAgICAgICBwYXJhbXMucHVzaCh7XG4gICAgICAgICAgYXR0cjogZmlsdGVyQ29tcG9uZW50LnRhcmdldEF0dHIsXG4gICAgICAgICAgdmFsdWU6IHZhbHVlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gVHJpZ2dlciB0aGUgZnVuY3Rpb24gcHJvdmlkZWQgYnkgdGhlIHVzZXJcbiAgICBpZiAodGhpcy5leHByZXNzaW9uQnVpbGRlcikge1xuICAgICAgcmV0dXJuIHRoaXMuZXhwcmVzc2lvbkJ1aWxkZXIocGFyYW1zKTtcbiAgICB9XG5cbiAgICAvLyBHZW5lcmF0ZSBkZXNmYXVsdCBleHByZXNzaW9uXG4gICAgY29uc3QgZXhwcmVzc2lvbnM6IEFycmF5PEV4cHJlc3Npb24+ID0gW107XG4gICAgcGFyYW1zLmZvckVhY2goZWxlbSA9PiB7XG4gICAgICBpZiAoVXRpbC5pc0RlZmluZWQoZWxlbS52YWx1ZSkpIHtcbiAgICAgICAgZXhwcmVzc2lvbnMucHVzaChGaWx0ZXJFeHByZXNzaW9uVXRpbHMuYnVpbGRFeHByZXNzaW9uRXF1YWxzKGVsZW0uYXR0ciwgZWxlbS52YWx1ZSkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGV4cHJlc3Npb25zLmxlbmd0aCA/IGV4cHJlc3Npb25zLnJlZHVjZSgoZmUxLCBmZTIpID0+IEZpbHRlckV4cHJlc3Npb25VdGlscy5idWlsZENvbXBsZXhFeHByZXNzaW9uKGZlMSwgZmUyLCBGaWx0ZXJFeHByZXNzaW9uVXRpbHMuT1BfT1IpKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGBCYXNpY0V4cHJlc3Npb25gIG9iamVjdCB3aXRoIHRoZSBmaWx0ZXIuXG4gICAqIEByZXR1cm5zIHRoZSBgQmFzaWNFeHByZXNzaW9uYCBvYmplY3Qgd2l0aCB0aGUgZmlsdGVyLlxuICAgKi9cbiAgZ2V0QmFzaWNFeHByZXNzaW9uKCk6IEJhc2ljRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIEZpbHRlckV4cHJlc3Npb25VdGlscy5idWlsZEJhc2ljRXhwcmVzc2lvbih0aGlzLmdldEV4cHJlc3Npb24oKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZmlsdGVyIGJ1aWxkZXIgdGFyZ2V0IGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgdGhlIHRhcmdldCBjb21wb25lbnQuXG4gICAqL1xuICBnZXRUYXJnZXRDb21wb25lbnQoKTogSVNlcnZpY2VEYXRhQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy50YXJnZXRDbXA7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlciB0aGUgYHJlbG9hZERhdGFgIG1ldGhvZCBmcm9tIHRoZSB0YXJnZXQgY29tcG9uZW50LlxuICAgKi9cbiAgdHJpZ2dlclJlbG9hZCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudGFyZ2V0Q21wKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLnRhcmdldENtcC5wYWdlYWJsZSkge1xuICAgICAgdGhpcy50YXJnZXRDbXAucmVsb2FkUGFnaW5hdGVkRGF0YUZyb21TdGFydCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRhcmdldENtcC5yZWxvYWREYXRhKCk7XG4gICAgfVxuICAgIHRoaXMub25GaWx0ZXIuZW1pdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIHRoZSBmb3JtIGNvbXBvbmVudHMgdXNlZCBmb3IgdGhlIGZpbHRlci5cbiAgICovXG4gIGNsZWFyRmlsdGVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1Db21wb25lbnRzID0gdGhpcy5mb3JtLmdldENvbXBvbmVudHMoKTtcbiAgICB0aGlzLmdldEZpbHRlckF0dHJzKCkuZm9yRWFjaCgoYXR0cjogc3RyaW5nKSA9PiB7XG4gICAgICBmb3JtQ29tcG9uZW50c1thdHRyXS5jbGVhclZhbHVlKCk7XG4gICAgfSk7XG4gICAgdGhpcy5vbkNsZWFyLmVtaXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGZpbHRlciB2YWx1ZXNcbiAgICogQHJldHVybnMgZmlsdGVyIHZhbHVlc1xuICAgKi9cbiAgZ2V0RmlsdGVyVmFsdWVzKCk6IE9GaWx0ZXJCdWlsZGVyVmFsdWVzW10ge1xuICAgIGNvbnN0IHJlc3VsdDogT0ZpbHRlckJ1aWxkZXJWYWx1ZXNbXSA9IFtdO1xuXG4gICAgdGhpcy5maWx0ZXJDb21wb25lbnRzLlxuICAgICAgZm9yRWFjaCgoZmlsdGVyQ29tcG9uZW50OiBJRmlsdGVyQnVpbGRlckNtcFRhcmdldCkgPT4ge1xuICAgICAgICBpZiAoVXRpbC5pc0RlZmluZWQodGhpcy5mb3JtLmdldENvbXBvbmVudHMoKVtmaWx0ZXJDb21wb25lbnQuZm9ybUNvbXBvbmVudEF0dHJdKSkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKHsgYXR0cjogZmlsdGVyQ29tcG9uZW50LmZvcm1Db21wb25lbnRBdHRyLCB2YWx1ZTogdGhpcy5mb3JtLmdldENvbXBvbmVudHMoKVtmaWx0ZXJDb21wb25lbnQuZm9ybUNvbXBvbmVudEF0dHJdLmdldFZhbHVlKCkgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG5cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGZpbHRlciB2YWx1ZXNcbiAgICogQHBhcmFtIGZpbHRlckJ1aWxkZXJWYWx1ZXNcbiAgICovXG4gIHNldEZpbHRlclZhbHVlcyhmaWx0ZXJCdWlsZGVyVmFsdWVzOiBPRmlsdGVyQnVpbGRlclZhbHVlc1tdKSB7XG4gICAgZmlsdGVyQnVpbGRlclZhbHVlcy5mb3JFYWNoKChmaWx0ZXJCdWlsZGVyVmFsdWU6IE9GaWx0ZXJCdWlsZGVyVmFsdWVzKSA9PiB7XG4gICAgICBpZiAodGhpcy5mb3JtLmdldENvbXBvbmVudHMoKVtmaWx0ZXJCdWlsZGVyVmFsdWUuYXR0cl0pIHtcbiAgICAgICAgdGhpcy5mb3JtLmdldENvbXBvbmVudHMoKVtmaWx0ZXJCdWlsZGVyVmFsdWUuYXR0cl0uc2V0VmFsdWUoZmlsdGVyQnVpbGRlclZhbHVlLnZhbHVlKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdUaGUgZmlsdGVyIHdpdGggYXR0ciAnICsgZmlsdGVyQnVpbGRlclZhbHVlLmF0dHIgKyAnIGNhbm5vdCBiZSBzZXQgJyArIGZpbHRlckJ1aWxkZXJWYWx1ZS52YWx1ZSArICcgYmVjYXVzZSBpdCBkb2VzIG5vdCBleGlzdCAuJyk7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGFycmF5IHdpdGggdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIGZpbHRlcmFibGUgY29tcG9uZW50c1xuICAgKi9cbiAgcHJvdGVjdGVkIGdldEZpbHRlckF0dHJzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckNvbXBvbmVudHMubWFwKChlbGVtOiBJRmlsdGVyQnVpbGRlckNtcFRhcmdldCkgPT4gZWxlbS5mb3JtQ29tcG9uZW50QXR0cik7XG4gIH1cbiAgLyoqXG4gICAqIEdldHMgc3RhdGVcbiAgICovXG4gIGdldCBzdGF0ZSgpOiBPRmlsdGVyQnVpbGRlckNvbXBvbmVudFN0YXRlQ2xhc3Mge1xuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFN0YXRlU2VydmljZS5zdGF0ZTtcbiAgfVxuXG5cbiAgZ2V0RGF0YVRvU3RvcmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50U3RhdGVTZXJ2aWNlLnN0YXRlO1xuICB9XG5cbiAgZ2V0Q29tcG9uZW50S2V5KCk6IHN0cmluZyB7XG4gICAgaWYgKCFVdGlsLmlzRGVmaW5lZCh0aGlzLm9hdHRyKSkge1xuICAgICAgY29uc29sZS5lcnJvcignWW91ciBvLWZpbHRlci1idWlsZGVyIGNvbXBvbmVudCBtdXN0IGhhdmUgYW4gXFwnYXR0clxcJy4gT3RoZXJ3aXNlLCB5b3VyIGZpbHRlciBidWlsZGVyIHN0YXRlIHdpbGwgbm90IHNldCBpbiBsb2NhbHN0b3JhZ2UuJyk7XG4gICAgICByZXR1cm4gJ09GaWx0ZXJCdWlsZGVyQ29tcG9uZW50Xyc7XG4gICAgfVxuXG4gICAgcmV0dXJuICdPRmlsdGVyQnVpbGRlckNvbXBvbmVudF8nICsgdGhpcy5vYXR0cjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9yZXMgZmlsdGVyIGluIHN0YXRlXG4gICAqIEBwYXJhbSBhcmdcbiAgICovXG4gIHN0b3JlRmlsdGVySW5TdGF0ZShhcmc6IE9GaWx0ZXJEZWZpbml0aW9uKSB7XG4gICAgdGhpcy5jb21wb25lbnRTdGF0ZVNlcnZpY2Uuc3RvcmVGaWx0ZXIoYXJnKTtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlU3RvcmFnZSgpO1xuICB9XG4gIC8qKlxuICAgKiBNZXRob2QgdXBkYXRlIHN0b3JlIGxvY2Fsc3RvcmFnZSwgY2FsbCBvZiB0aGUgSUxvY2FsU3RvcmFnZVxuICAgKi9cbiAgcHJvdGVjdGVkIHVwZGF0ZVN0YXRlU3RvcmFnZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlKSB7XG4gICAgICB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2UudXBkYXRlQ29tcG9uZW50U3RvcmFnZSh0aGlzLCB0aGlzLmdldFJvdXRlS2V5KCkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRSb3V0ZUtleSgpOiBzdHJpbmcge1xuICAgIGxldCByb3V0ZSA9IHRoaXMucm91dGVyLnVybDtcbiAgICB0aGlzLmFjdFJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgIE9iamVjdC5rZXlzKHBhcmFtcykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICByb3V0ZSA9IHJvdXRlLnJlcGxhY2UocGFyYW1zW2tleV0sIGtleSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gcm91dGU7XG4gIH1cbn1cbiIsIiJdfQ==
@@ -57,7 +57,7 @@ export class OFormNavigationComponent {
57
57
  queryArgs[1] = self.getKeysArray();
58
58
  queryArgs[4] = offset;
59
59
  queryArgs[5] = length ? length : conf.queryRows;
60
- self.querySubscription = self.dataService[conf.queryMethod](...self.dataService.queryArgumentAdapter.parseQueryParameters(queryArgs))
60
+ self.querySubscription = self.dataService[conf.queryMethod](...self.dataService.requestArgumentAdapter.parseQueryParameters(queryArgs))
61
61
  .subscribe(res => {
62
62
  if (res.isSuccessful()) {
63
63
  self.navigationData = res.data;
@@ -256,4 +256,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
256
256
  type: Inject,
257
257
  args: [forwardRef(() => OFormBase)]
258
258
  }] }, { type: i1.Router }]; } });
259
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1mb3JtLW5hdmlnYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9uYXZpZ2F0aW9uL28tZm9ybS1uYXZpZ2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vbmF2aWdhdGlvbi9vLWZvcm0tbmF2aWdhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFtQixpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQW9CLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSTNELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBbUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDOUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7QUE0QmpELE1BQU0sT0FBTyx3QkFBd0I7SUFhbkMsWUFDWSxRQUFrQixFQUNpQixLQUFnQixFQUNyRCxNQUFjO1FBRlosYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNpQixVQUFLLEdBQUwsS0FBSyxDQUFXO1FBQ3JELFdBQU0sR0FBTixNQUFNLENBQVE7UUFkakIsbUJBQWMsR0FBZSxFQUFFLENBQUM7UUFDL0Is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b25maWd1cmVTZXJ2aWNlQXJncyB9IGZyb20gJy4vLi4vLi4vLi4vdHlwZXMvY29uZmlndXJlLXNlcnZpY2UtYXJncy50eXBlJztcbmltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5qZWN0LCBJbmplY3RvciwgT25EZXN0cm95LCBUeXBlLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkV4dHJhcywgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBPRm9ybUxheW91dE1hbmFnZXJCYXNlIH0gZnJvbSAnLi4vLi4vLi4vbGF5b3V0cy9mb3JtLWxheW91dC9vLWZvcm0tbGF5b3V0LW1hbmFnZXItYmFzZS5jbGFzcyc7XG5pbXBvcnQgeyBPbnRpbWl6ZVNlcnZpY2VQcm92aWRlciB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZhY3Rvcmllcyc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSwgT05hdmlnYXRpb25JdGVtIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL29udGltaXplL29udGltaXplLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29kZXMgfSBmcm9tICcuLi8uLi8uLi91dGlsL2NvZGVzJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgT0Zvcm1CYXNlIH0gZnJvbSAnLi4vby1mb3JtLWJhc2UuY2xhc3MnO1xuaW1wb3J0IHsgT0Zvcm1OYXZpZ2F0aW9uQ2xhc3MgfSBmcm9tICcuL28tZm9ybS5uYXZpZ2F0aW9uLmNsYXNzJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYmFzZS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7IFNlcnZpY2VSZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvc2VydmljZS1yZXNwb25zZS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgdHlwZSBRdWVyeUNvbmZpZ3VyYXRpb24gPSB7XG4gIHNlcnZpY2VUeXBlOiBzdHJpbmc7XG4gIHF1ZXJ5QXJndW1lbnRzOiBhbnlbXTtcbiAgZW50aXR5OiBzdHJpbmc7XG4gIHNlcnZpY2U6IHN0cmluZztcbiAgcXVlcnlNZXRob2Q6IHN0cmluZztcbiAgdG90YWxSZWNvcmRzTnVtYmVyOiBudW1iZXI7XG4gIHF1ZXJ5Um93czogbnVtYmVyO1xuICBxdWVyeVJlY29yZE9mZnNldDogbnVtYmVyO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnby1mb3JtLW5hdmlnYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vby1mb3JtLW5hdmlnYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vLWZvcm0tbmF2aWdhdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5vLWZvcm0tbmF2aWdhdGlvbl0nOiAndHJ1ZSdcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgT250aW1pemVTZXJ2aWNlUHJvdmlkZXJcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBPRm9ybU5hdmlnYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHB1YmxpYyBuYXZpZ2F0aW9uRGF0YTogQXJyYXk8YW55PiA9IFtdO1xuICBwcml2YXRlIF9jdXJyZW50SW5kZXggPSAwO1xuXG4gIHByb3RlY3RlZCBmb3JtTmF2aWdhdGlvbjogT0Zvcm1OYXZpZ2F0aW9uQ2xhc3M7XG4gIHByb3RlY3RlZCBuYXZpZ2F0aW9uU2VydmljZTogTmF2aWdhdGlvblNlcnZpY2U7XG4gIHByb3RlY3RlZCBmb3JtTGF5b3V0TWFuYWdlcjogT0Zvcm1MYXlvdXRNYW5hZ2VyQmFzZTtcblxuICBwcm90ZWN0ZWQgcXVlcnlTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJvdGVjdGVkIGRhdGFTZXJ2aWNlOiBCYXNlU2VydmljZTxTZXJ2aWNlUmVzcG9uc2U+O1xuICBwcm90ZWN0ZWQgcXVlcnlDb25mOiBRdWVyeUNvbmZpZ3VyYXRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gT0Zvcm1CYXNlKSkgcHJpdmF0ZSBfZm9ybTogT0Zvcm1CYXNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7XG4gICAgdGhpcy5mb3JtTmF2aWdhdGlvbiA9IHRoaXMuX2Zvcm0uZ2V0Rm9ybU5hdmlnYXRpb24oKTtcbiAgICB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQ8TmF2aWdhdGlvblNlcnZpY2U+KE5hdmlnYXRpb25TZXJ2aWNlIGFzIFR5cGU8TmF2aWdhdGlvblNlcnZpY2U+KTtcblxuICAgIHRoaXMuZm9ybUxheW91dE1hbmFnZXIgPSB0aGlzLl9mb3JtLmdldEZvcm1NYW5hZ2VyKCk7XG5cbiAgICBsZXQgbmF2RGF0YTtcbiAgICBpZiAodGhpcy5mb3JtTGF5b3V0TWFuYWdlciAmJiB0aGlzLmZvcm1MYXlvdXRNYW5hZ2VyLmFsbG93TmF2aWdhdGlvbigpKSB7XG4gICAgICBuYXZEYXRhID0gdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5nZXRMYXN0SXRlbSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuYXZEYXRhID0gdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5nZXRQcmV2aW91c1JvdXRlRGF0YSgpO1xuICAgIH1cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQobmF2RGF0YSkpIHtcbiAgICAgIHRoaXMubmF2aWdhdGlvbkRhdGEgPSBuYXZEYXRhLmtleXNWYWx1ZXMgfHwgW107XG4gICAgICB0aGlzLnF1ZXJ5Q29uZiA9IG5hdkRhdGEucXVlcnlDb25maWd1cmF0aW9uO1xuICAgIH1cbiAgICB0aGlzLmN1cnJlbnRJbmRleCA9IHRoaXMuZ2V0Q3VycmVudEluZGV4KCk7XG4gICAgdGhpcy5jb25maWd1cmVTZXJ2aWNlKCk7XG4gIH1cblxuICBjb25maWd1cmVTZXJ2aWNlKCkge1xuICAgIGlmICghdGhpcy5xdWVyeUNvbmYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY29uZmlndXJlU2VydmljZTogT0NvbmZpZ3VyZVNlcnZpY2VBcmdzID0ge1xuICAgICAgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IsXG4gICAgICBiYXNlU2VydmljZTogT250aW1pemVTZXJ2aWNlLFxuICAgICAgZW50aXR5OiB0aGlzLnF1ZXJ5Q29uZi5lbnRpdHksXG4gICAgICBzZXJ2aWNlOiB0aGlzLnF1ZXJ5Q29uZi5zZXJ2aWNlLFxuICAgICAgc2VydmljZVR5cGU6IHRoaXMucXVlcnlDb25mLnNlcnZpY2VUeXBlXG4gICAgfTtcbiAgICB0aGlzLmRhdGFTZXJ2aWNlID0gVXRpbC5jb25maWd1cmVTZXJ2aWNlKGNvbmZpZ3VyZVNlcnZpY2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHF1ZXJ5TmF2aWdhdGlvbkRhdGEob2Zmc2V0OiBudW1iZXIsIGxlbmd0aD86IG51bWJlcik6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGFueT4oKHJlc29sdmU6IGFueSwgcmVqZWN0OiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IGNvbmYgPSBzZWxmLnF1ZXJ5Q29uZjtcbiAgICAgIGNvbnN0IHF1ZXJ5QXJncyA9IGNvbmYucXVlcnlBcmd1bWVudHM7XG5cbiAgICAgIHF1ZXJ5QXJnc1sxXSA9IHNlbGYuZ2V0S2V5c0FycmF5KCk7XG4gICAgICBxdWVyeUFyZ3NbNF0gPSBvZmZzZXQ7XG4gICAgICBxdWVyeUFyZ3NbNV0gPSBsZW5ndGggPyBsZW5ndGggOiBjb25mLnF1ZXJ5Um93cztcblxuICAgICAgc2VsZi5xdWVyeVN1YnNjcmlwdGlvbiA9IHNlbGYuZGF0YVNlcnZpY2VbY29uZi5xdWVyeU1ldGhvZF0oLi4uc2VsZi5kYXRhU2VydmljZS5xdWVyeUFyZ3VtZW50QWRhcHRlci5wYXJzZVF1ZXJ5UGFyYW1ldGVycyhxdWVyeUFyZ3MpKVxuICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIGlmIChyZXMuaXNTdWNjZXNzZnVsKCkpIHtcbiAgICAgICAgICBzZWxmLm5hdmlnYXRpb25EYXRhID0gcmVzLmRhdGE7XG4gICAgICAgICAgc2VsZi5xdWVyeUNvbmYucXVlcnlSZWNvcmRPZmZzZXQgPSBvZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSwgKCkgPT4ge1xuICAgICAgICByZWplY3QoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucXVlcnlTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMucXVlcnlTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0S2V5c0FycmF5KCk6IHN0cmluZ1tdIHtcbiAgICAvLyBnZXR0aW5nIGF2YWlsYWJsZSBuYXZpZ2F0aW9uRGF0YSBrZXlzXG4gICAgY29uc3QgbmF2RGF0YSA9IHRoaXMubmF2aWdhdGlvbkRhdGEgPyAodGhpcy5uYXZpZ2F0aW9uRGF0YVswXSB8fCB7fSkgOiB7fTtcbiAgICBjb25zdCBrZXlzQXJyYXkgPSBbXTtcbiAgICB0aGlzLl9mb3JtLmtleXNBcnJheS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBpZiAobmF2RGF0YS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIGtleXNBcnJheS5wdXNoKGtleSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGtleXNBcnJheTtcbiAgfVxuXG4gIGdldEN1cnJlbnRJbmRleCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGtleXNBcnJheSA9IHRoaXMuZ2V0S2V5c0FycmF5KCk7XG4gICAgLy8gY3VycmVudCB1cmwga2V5cyBvYmplY3RcbiAgICBjb25zdCBjdXJyZW50S2V5cyA9IHt9O1xuICAgIGNvbnN0IGN1cnJlbnRJdGVtID0gdGhpcy5mb3JtTmF2aWdhdGlvbi5nZXRVcmxQYXJhbXMoKTtcbiAgICBrZXlzQXJyYXkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgY3VycmVudEtleXNba2V5XSA9IGN1cnJlbnRJdGVtW2tleV07XG4gICAgfSk7XG4gICAgY29uc3QgaW5kZXg6IG51bWJlciA9ICh0aGlzLm5hdmlnYXRpb25EYXRhIHx8IFtdKS5maW5kSW5kZXgoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgY29uc3QgaXRlbUtleXMgPSB7fTtcbiAgICAgIGtleXNBcnJheS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGl0ZW1LZXlzW2tleV0gPSBpdGVtW2tleV07XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBVdGlsLmlzRXF1aXZhbGVudChpdGVtS2V5cywgY3VycmVudEtleXMpO1xuICAgIH0pO1xuICAgIHJldHVybiBpbmRleCA+PSAwID8gaW5kZXggOiAwO1xuICB9XG5cbiAgbmV4dCgpIHtcbiAgICBjb25zdCB0b3RhbCA9IHRoaXMubmF2aWdhdGlvbkRhdGEubGVuZ3RoO1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jdXJyZW50SW5kZXggKyAxO1xuICAgIGlmICh0b3RhbCA+IGluZGV4KSB7XG4gICAgICB0aGlzLm1vdmUoaW5kZXgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5xdWVyeUNvbmYpIHtcbiAgICAgIGNvbnN0IG9mZnNldDogbnVtYmVyID0gKHRoaXMucXVlcnlDb25mLnF1ZXJ5UmVjb3JkT2Zmc2V0IHx8IDApICsgdGhpcy5xdWVyeUNvbmYucXVlcnlSb3dzO1xuICAgICAgdGhpcy5xdWVyeU5hdmlnYXRpb25EYXRhKG9mZnNldCkudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMubW92ZSgwKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdmb3JtLXRvb2xiYXItPm5leHQoKTogdG90YWwgPiBpbmRleCcpO1xuICAgIH1cbiAgfVxuXG4gIHByZXZpb3VzKCkge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jdXJyZW50SW5kZXggLSAxO1xuICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICB0aGlzLm1vdmUoaW5kZXgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5xdWVyeUNvbmYpIHtcbiAgICAgIGNvbnN0IG9mZnNldDogbnVtYmVyID0gdGhpcy5xdWVyeUNvbmYucXVlcnlSZWNvcmRPZmZzZXQgLSB0aGlzLnF1ZXJ5Q29uZi5xdWVyeVJvd3M7XG4gICAgICB0aGlzLnF1ZXJ5TmF2aWdhdGlvbkRhdGEob2Zmc2V0KS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5tb3ZlKHRoaXMubmF2aWdhdGlvbkRhdGEubGVuZ3RoIC0gMSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcignZm9ybS10b29sYmFyLT5uZXh0KCk6IGluZGV4IDwgMCcpO1xuICAgIH1cbiAgfVxuXG4gIGZpcnN0KCkge1xuICAgIGlmICghdGhpcy5xdWVyeUNvbmYgfHwgdGhpcy5xdWVyeUNvbmYucXVlcnlSZWNvcmRPZmZzZXQgPT09IDApIHtcbiAgICAgIHRoaXMubW92ZSgwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5xdWVyeU5hdmlnYXRpb25EYXRhKDApLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm1vdmUoMCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBsYXN0KCkge1xuICAgIGlmICghdGhpcy5xdWVyeUNvbmYgfHwgdGhpcy5pc0xhc3QoKSkge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm5hdmlnYXRpb25EYXRhLmxlbmd0aCAtIDE7XG4gICAgICB0aGlzLm1vdmUoaW5kZXgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBvZmZzZXQgPSB0aGlzLnF1ZXJ5Q29uZi50b3RhbFJlY29yZHNOdW1iZXIgLSB0aGlzLnF1ZXJ5Q29uZi5xdWVyeVJvd3M7XG4gICAgICB0aGlzLnF1ZXJ5TmF2aWdhdGlvbkRhdGEob2Zmc2V0LCB0aGlzLnF1ZXJ5Q29uZi5xdWVyeVJvd3MpLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm1vdmUodGhpcy5uYXZpZ2F0aW9uRGF0YS5sZW5ndGggLSAxKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGlzRmlyc3QoKSB7XG4gICAgbGV0IHJlc3VsdDogYm9vbGVhbiA9IHRoaXMuY3VycmVudEluZGV4ID09PSAwO1xuICAgIGlmIChyZXN1bHQgJiYgdGhpcy5xdWVyeUNvbmYpIHtcbiAgICAgIHJlc3VsdCA9IHRoaXMucXVlcnlDb25mLnF1ZXJ5UmVjb3JkT2Zmc2V0ID09PSAwO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgaXNMYXN0KCkge1xuICAgIGxldCByZXN1bHQ6IGJvb2xlYW4gPSB0aGlzLmN1cnJlbnRJbmRleCA9PT0gKHRoaXMubmF2aWdhdGlvbkRhdGEubGVuZ3RoIC0gMSk7XG4gICAgaWYgKHJlc3VsdCAmJiB0aGlzLnF1ZXJ5Q29uZikge1xuICAgICAgcmVzdWx0ID0gKHRoaXMucXVlcnlDb25mLnF1ZXJ5UmVjb3JkT2Zmc2V0ICsgdGhpcy5xdWVyeUNvbmYucXVlcnlSb3dzKVxuICAgICAgICA+PSB0aGlzLnF1ZXJ5Q29uZi50b3RhbFJlY29yZHNOdW1iZXI7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBtb3ZlKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLl9mb3JtLnNob3dDb25maXJtRGlzY2FyZENoYW5nZXMoKS50aGVuKHJlcyA9PiB7XG4gICAgICBpZiAocmVzID09PSB0cnVlKSB7XG4gICAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gaW5kZXg7XG4gICAgICAgIGlmICh0aGlzLmZvcm1MYXlvdXRNYW5hZ2VyICYmIHRoaXMuZm9ybUxheW91dE1hbmFnZXIuYWxsb3dOYXZpZ2F0aW9uKCkpIHtcbiAgICAgICAgICB0aGlzLm1vdmVJbkZvcm1MYXlvdXRNYW5hZ2VyKGluZGV4KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLm1vdmVXaXRob3V0TWFuYWdlcihpbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbW92ZVdpdGhvdXRNYW5hZ2VyKGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCByb3V0ZSA9IHRoaXMuZ2V0Um91dGVPZlNlbGVjdGVkUm93KHRoaXMubmF2aWdhdGlvbkRhdGFbaW5kZXhdKTtcbiAgICBpZiAocm91dGUubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgbmF2RGF0YTogT05hdmlnYXRpb25JdGVtID0gdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5nZXRMYXN0SXRlbSgpO1xuICAgICAgaWYgKG5hdkRhdGEpIHtcbiAgICAgICAgdGhpcy5fZm9ybS5jYW5EaXNjYXJkQ2hhbmdlcyA9IHRydWU7XG5cbiAgICAgICAgY29uc3QgZXh0cmFzOiBOYXZpZ2F0aW9uRXh0cmFzID0ge307XG4gICAgICAgIGV4dHJhc1tDb2Rlcy5RVUVSWV9QQVJBTVNdID0gQ29kZXMuZ2V0SXNEZXRhaWxPYmplY3QoKTtcblxuICAgICAgICBjb25zdCB1cmxBcnJheSA9IG5hdkRhdGEudXJsLnNwbGl0KENvZGVzLlJPVVRFX1NFUEFSQVRPUik7XG4gICAgICAgIGNvbnN0IHVybCA9IHVybEFycmF5LnNwbGljZSgwLCB1cmxBcnJheS5sZW5ndGggLSByb3V0ZS5sZW5ndGgpLmpvaW4oQ29kZXMuUk9VVEVfU0VQQVJBVE9SKTtcbiAgICAgICAgcm91dGUudW5zaGlmdCh1cmwpO1xuXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKHJvdXRlLCBleHRyYXMpLnRoZW4oKG5hdmlnYXRpb25Eb25lOiBib29sZWFuKSA9PiB7XG4gICAgICAgICAgaWYgKG5hdmlnYXRpb25Eb25lKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgY29uc3QgdXJsID0gdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3QudXJsLnNwbGl0KCc/JylbMF07XG4gICAgICAgICAgICBpZiAodXJsICE9PSBuYXZEYXRhLnVybCkge1xuICAgICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLnJlbW92ZUxhc3RJdGVtKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1vdmVJbkZvcm1MYXlvdXRNYW5hZ2VyKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLl9mb3JtLnNldFVybFBhcmFtc0FuZFJlbG9hZCh0aGlzLm5hdmlnYXRpb25EYXRhW2luZGV4XSk7XG4gIH1cblxuICBnZXRSb3V0ZU9mU2VsZWN0ZWRSb3coaXRlbTogYW55KSB7XG4gICAgY29uc3Qgcm91dGUgPSBbXTtcbiAgICBpZiAoVXRpbC5pc09iamVjdChpdGVtKSkge1xuICAgICAgdGhpcy5fZm9ybS5rZXlzQXJyYXkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICBpZiAoVXRpbC5pc0RlZmluZWQoaXRlbVtrZXldKSkge1xuICAgICAgICAgIHJvdXRlLnB1c2goaXRlbVtrZXldKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByb3V0ZTtcbiAgfVxuXG4gIHNob3dOYXZpZ2F0aW9uKCkge1xuICAgIC8qXG4gICAgICBxdWVyeUNvbmYgaXMgb25seSBkZWZpbmVkIHdoZW4gdGhlIHNlcnZpY2UgaXMgcGFnZWFibGVcbiAgICAqL1xuICAgIHJldHVybiAoVXRpbC5pc0RlZmluZWQodGhpcy5xdWVyeUNvbmYpICYmIFV0aWwuaXNEZWZpbmVkKHRoaXMucXVlcnlDb25mLnRvdGFsUmVjb3Jkc051bWJlcikpID8gdGhpcy5xdWVyeUNvbmYudG90YWxSZWNvcmRzTnVtYmVyID4gMSA6IHRoaXMubmF2aWdhdGlvbkRhdGEubGVuZ3RoID4gMVxuICB9XG5cbiAgc2V0IGN1cnJlbnRJbmRleChhcmc6IG51bWJlcikge1xuICAgIHRoaXMuX2N1cnJlbnRJbmRleCA9IGFyZztcbiAgfVxuXG4gIGdldCBjdXJyZW50SW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudEluZGV4O1xuICB9XG5cbiAgZ2V0UmVjb3JkSW5kZXgoKTogbnVtYmVyIHtcbiAgICBsZXQgaW5kZXggPSB0aGlzLmN1cnJlbnRJbmRleCArIDE7XG4gICAgaWYgKHRoaXMucXVlcnlDb25mKSB7XG4gICAgICBpbmRleCArPSB0aGlzLnF1ZXJ5Q29uZi5xdWVyeVJlY29yZE9mZnNldDtcbiAgICB9XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgZ2V0VG90YWxSZWNvcmRzTnVtYmVyKCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMucXVlcnlDb25mICYmIHRoaXMucXVlcnlDb25mLnRvdGFsUmVjb3Jkc051bWJlcikge1xuICAgICAgcmV0dXJuIHRoaXMucXVlcnlDb25mLnRvdGFsUmVjb3Jkc051bWJlcjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubmF2aWdhdGlvbkRhdGEubGVuZ3RoO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd05hdmlnYXRpb24oKVwiPlxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cIm8tZm9ybS10b29sYmFyLWJ1dHRvblwiIFtkaXNhYmxlZF09XCJpc0ZpcnN0KClcIiAoY2xpY2spPVwiZmlyc3QoKVwiPlxuICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiRmlyc3RcIiBsYXlvdXQtcGFkZGluZyBzdmdJY29uPVwib250aW1pemU6Zmlyc3RfcGFnZVwiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cIm8tZm9ybS10b29sYmFyLWJ1dHRvblwiIFtkaXNhYmxlZF09XCJpc0ZpcnN0KClcIiAoY2xpY2spPVwicHJldmlvdXMoKVwiPlxuICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiUHJldmlvdXNcIiBsYXlvdXQtcGFkZGluZyBzdmdJY29uPVwib250aW1pemU6a2V5Ym9hcmRfYXJyb3dfbGVmdFwiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8c3BhbiBsYXlvdXQtcGFkZGluZz57eyBnZXRSZWNvcmRJbmRleCgpIH19IC8ge3sgZ2V0VG90YWxSZWNvcmRzTnVtYmVyKCkgfX08L3NwYW4+XG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNsYXNzPVwiby1mb3JtLXRvb2xiYXItYnV0dG9uXCIgW2Rpc2FibGVkXT1cImlzTGFzdCgpXCIgKGNsaWNrKT1cIm5leHQoKVwiPlxuICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiTmV4dFwiIGxheW91dC1wYWRkaW5nIHN2Z0ljb249XCJvbnRpbWl6ZTprZXlib2FyZF9hcnJvd19yaWdodFwiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cIm8tZm9ybS10b29sYmFyLWJ1dHRvblwiIFtkaXNhYmxlZF09XCJpc0xhc3QoKVwiIChjbGljayk9XCJsYXN0KClcIj5cbiAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIkxhc3RcIiBsYXlvdXQtcGFkZGluZyBzdmdJY29uPVwib250aW1pemU6bGFzdF9wYWdlXCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG48L25nLWNvbnRhaW5lcj4iXX0=
259
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1mb3JtLW5hdmlnYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9uYXZpZ2F0aW9uL28tZm9ybS1uYXZpZ2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vbmF2aWdhdGlvbi9vLWZvcm0tbmF2aWdhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFtQixpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQW9CLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSTNELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBbUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDOUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7QUE0QmpELE1BQU0sT0FBTyx3QkFBd0I7SUFhbkMsWUFDWSxRQUFrQixFQUNpQixLQUFnQixFQUNyRCxNQUFjO1FBRlosYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNpQixVQUFLLEdBQUwsS0FBSyxDQUFXO1FBQ3JELFdBQU0sR0FBTixNQUFNLENBQVE7UUFkakIsbUJBQWMsR0FBZSxFQUFFLENBQUM7UUFDL0Is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b25maWd1cmVTZXJ2aWNlQXJncyB9IGZyb20gJy4vLi4vLi4vLi4vdHlwZXMvY29uZmlndXJlLXNlcnZpY2UtYXJncy50eXBlJztcbmltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5qZWN0LCBJbmplY3RvciwgT25EZXN0cm95LCBUeXBlLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkV4dHJhcywgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBPRm9ybUxheW91dE1hbmFnZXJCYXNlIH0gZnJvbSAnLi4vLi4vLi4vbGF5b3V0cy9mb3JtLWxheW91dC9vLWZvcm0tbGF5b3V0LW1hbmFnZXItYmFzZS5jbGFzcyc7XG5pbXBvcnQgeyBPbnRpbWl6ZVNlcnZpY2VQcm92aWRlciB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZhY3Rvcmllcyc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSwgT05hdmlnYXRpb25JdGVtIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL29udGltaXplL29udGltaXplLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29kZXMgfSBmcm9tICcuLi8uLi8uLi91dGlsL2NvZGVzJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgT0Zvcm1CYXNlIH0gZnJvbSAnLi4vby1mb3JtLWJhc2UuY2xhc3MnO1xuaW1wb3J0IHsgT0Zvcm1OYXZpZ2F0aW9uQ2xhc3MgfSBmcm9tICcuL28tZm9ybS5uYXZpZ2F0aW9uLmNsYXNzJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYmFzZS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7IFNlcnZpY2VSZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvc2VydmljZS1yZXNwb25zZS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgdHlwZSBRdWVyeUNvbmZpZ3VyYXRpb24gPSB7XG4gIHNlcnZpY2VUeXBlOiBzdHJpbmc7XG4gIHF1ZXJ5QXJndW1lbnRzOiBhbnlbXTtcbiAgZW50aXR5OiBzdHJpbmc7XG4gIHNlcnZpY2U6IHN0cmluZztcbiAgcXVlcnlNZXRob2Q6IHN0cmluZztcbiAgdG90YWxSZWNvcmRzTnVtYmVyOiBudW1iZXI7XG4gIHF1ZXJ5Um93czogbnVtYmVyO1xuICBxdWVyeVJlY29yZE9mZnNldDogbnVtYmVyO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnby1mb3JtLW5hdmlnYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vby1mb3JtLW5hdmlnYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vLWZvcm0tbmF2aWdhdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5vLWZvcm0tbmF2aWdhdGlvbl0nOiAndHJ1ZSdcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgT250aW1pemVTZXJ2aWNlUHJvdmlkZXJcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBPRm9ybU5hdmlnYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHB1YmxpYyBuYXZpZ2F0aW9uRGF0YTogQXJyYXk8YW55PiA9IFtdO1xuICBwcml2YXRlIF9jdXJyZW50SW5kZXggPSAwO1xuXG4gIHByb3RlY3RlZCBmb3JtTmF2aWdhdGlvbjogT0Zvcm1OYXZpZ2F0aW9uQ2xhc3M7XG4gIHByb3RlY3RlZCBuYXZpZ2F0aW9uU2VydmljZTogTmF2aWdhdGlvblNlcnZpY2U7XG4gIHByb3RlY3RlZCBmb3JtTGF5b3V0TWFuYWdlcjogT0Zvcm1MYXlvdXRNYW5hZ2VyQmFzZTtcblxuICBwcm90ZWN0ZWQgcXVlcnlTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJvdGVjdGVkIGRhdGFTZXJ2aWNlOiBCYXNlU2VydmljZTxTZXJ2aWNlUmVzcG9uc2U+O1xuICBwcm90ZWN0ZWQgcXVlcnlDb25mOiBRdWVyeUNvbmZpZ3VyYXRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gT0Zvcm1CYXNlKSkgcHJpdmF0ZSBfZm9ybTogT0Zvcm1CYXNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7XG4gICAgdGhpcy5mb3JtTmF2aWdhdGlvbiA9IHRoaXMuX2Zvcm0uZ2V0Rm9ybU5hdmlnYXRpb24oKTtcbiAgICB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQ8TmF2aWdhdGlvblNlcnZpY2U+KE5hdmlnYXRpb25TZXJ2aWNlIGFzIFR5cGU8TmF2aWdhdGlvblNlcnZpY2U+KTtcblxuICAgIHRoaXMuZm9ybUxheW91dE1hbmFnZXIgPSB0aGlzLl9mb3JtLmdldEZvcm1NYW5hZ2VyKCk7XG5cbiAgICBsZXQgbmF2RGF0YTtcbiAgICBpZiAodGhpcy5mb3JtTGF5b3V0TWFuYWdlciAmJiB0aGlzLmZvcm1MYXlvdXRNYW5hZ2VyLmFsbG93TmF2aWdhdGlvbigpKSB7XG4gICAgICBuYXZEYXRhID0gdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5nZXRMYXN0SXRlbSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuYXZEYXRhID0gdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5nZXRQcmV2aW91c1JvdXRlRGF0YSgpO1xuICAgIH1cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQobmF2RGF0YSkpIHtcbiAgICAgIHRoaXMubmF2aWdhdGlvbkRhdGEgPSBuYXZEYXRhLmtleXNWYWx1ZXMgfHwgW107XG4gICAgICB0aGlzLnF1ZXJ5Q29uZiA9IG5hdkRhdGEucXVlcnlDb25maWd1cmF0aW9uO1xuICAgIH1cbiAgICB0aGlzLmN1cnJlbnRJbmRleCA9IHRoaXMuZ2V0Q3VycmVudEluZGV4KCk7XG4gICAgdGhpcy5jb25maWd1cmVTZXJ2aWNlKCk7XG4gIH1cblxuICBjb25maWd1cmVTZXJ2aWNlKCkge1xuICAgIGlmICghdGhpcy5xdWVyeUNvbmYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY29uZmlndXJlU2VydmljZTogT0NvbmZpZ3VyZVNlcnZpY2VBcmdzID0ge1xuICAgICAgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IsXG4gICAgICBiYXNlU2VydmljZTogT250aW1pemVTZXJ2aWNlLFxuICAgICAgZW50aXR5OiB0aGlzLnF1ZXJ5Q29uZi5lbnRpdHksXG4gICAgICBzZXJ2aWNlOiB0aGlzLnF1ZXJ5Q29uZi5zZXJ2aWNlLFxuICAgICAgc2VydmljZVR5cGU6IHRoaXMucXVlcnlDb25mLnNlcnZpY2VUeXBlXG4gICAgfTtcbiAgICB0aGlzLmRhdGFTZXJ2aWNlID0gVXRpbC5jb25maWd1cmVTZXJ2aWNlKGNvbmZpZ3VyZVNlcnZpY2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHF1ZXJ5TmF2aWdhdGlvbkRhdGEob2Zmc2V0OiBudW1iZXIsIGxlbmd0aD86IG51bWJlcik6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGFueT4oKHJlc29sdmU6IGFueSwgcmVqZWN0OiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IGNvbmYgPSBzZWxmLnF1ZXJ5Q29uZjtcbiAgICAgIGNvbnN0IHF1ZXJ5QXJncyA9IGNvbmYucXVlcnlBcmd1bWVudHM7XG5cbiAgICAgIHF1ZXJ5QXJnc1sxXSA9IHNlbGYuZ2V0S2V5c0FycmF5KCk7XG4gICAgICBxdWVyeUFyZ3NbNF0gPSBvZmZzZXQ7XG4gICAgICBxdWVyeUFyZ3NbNV0gPSBsZW5ndGggPyBsZW5ndGggOiBjb25mLnF1ZXJ5Um93cztcblxuICAgICAgc2VsZi5xdWVyeVN1YnNjcmlwdGlvbiA9IHNlbGYuZGF0YVNlcnZpY2VbY29uZi5xdWVyeU1ldGhvZF0oLi4uc2VsZi5kYXRhU2VydmljZS5yZXF1ZXN0QXJndW1lbnRBZGFwdGVyLnBhcnNlUXVlcnlQYXJhbWV0ZXJzKHF1ZXJ5QXJncykpXG4gICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgaWYgKHJlcy5pc1N1Y2Nlc3NmdWwoKSkge1xuICAgICAgICAgIHNlbGYubmF2aWdhdGlvbkRhdGEgPSByZXMuZGF0YTtcbiAgICAgICAgICBzZWxmLnF1ZXJ5Q29uZi5xdWVyeVJlY29yZE9mZnNldCA9IG9mZnNldDtcbiAgICAgICAgfVxuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9LCAoKSA9PiB7XG4gICAgICAgIHJlamVjdCgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5xdWVyeVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5xdWVyeVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRLZXlzQXJyYXkoKTogc3RyaW5nW10ge1xuICAgIC8vIGdldHRpbmcgYXZhaWxhYmxlIG5hdmlnYXRpb25EYXRhIGtleXNcbiAgICBjb25zdCBuYXZEYXRhID0gdGhpcy5uYXZpZ2F0aW9uRGF0YSA/ICh0aGlzLm5hdmlnYXRpb25EYXRhWzBdIHx8IHt9KSA6IHt9O1xuICAgIGNvbnN0IGtleXNBcnJheSA9IFtdO1xuICAgIHRoaXMuX2Zvcm0ua2V5c0FycmF5LmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGlmIChuYXZEYXRhLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAga2V5c0FycmF5LnB1c2goa2V5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4ga2V5c0FycmF5O1xuICB9XG5cbiAgZ2V0Q3VycmVudEluZGV4KCk6IG51bWJlciB7XG4gICAgY29uc3Qga2V5c0FycmF5ID0gdGhpcy5nZXRLZXlzQXJyYXkoKTtcbiAgICAvLyBjdXJyZW50IHVybCBrZXlzIG9iamVjdFxuICAgIGNvbnN0IGN1cnJlbnRLZXlzID0ge307XG4gICAgY29uc3QgY3VycmVudEl0ZW0gPSB0aGlzLmZvcm1OYXZpZ2F0aW9uLmdldFVybFBhcmFtcygpO1xuICAgIGtleXNBcnJheS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBjdXJyZW50S2V5c1trZXldID0gY3VycmVudEl0ZW1ba2V5XTtcbiAgICB9KTtcbiAgICBjb25zdCBpbmRleDogbnVtYmVyID0gKHRoaXMubmF2aWdhdGlvbkRhdGEgfHwgW10pLmZpbmRJbmRleCgoaXRlbTogYW55KSA9PiB7XG4gICAgICBjb25zdCBpdGVtS2V5cyA9IHt9O1xuICAgICAga2V5c0FycmF5LmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgaXRlbUtleXNba2V5XSA9IGl0ZW1ba2V5XTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIFV0aWwuaXNFcXVpdmFsZW50KGl0ZW1LZXlzLCBjdXJyZW50S2V5cyk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGluZGV4ID49IDAgPyBpbmRleCA6IDA7XG4gIH1cblxuICBuZXh0KCkge1xuICAgIGNvbnN0IHRvdGFsID0gdGhpcy5uYXZpZ2F0aW9uRGF0YS5sZW5ndGg7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmN1cnJlbnRJbmRleCArIDE7XG4gICAgaWYgKHRvdGFsID4gaW5kZXgpIHtcbiAgICAgIHRoaXMubW92ZShpbmRleCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnF1ZXJ5Q29uZikge1xuICAgICAgY29uc3Qgb2Zmc2V0OiBudW1iZXIgPSAodGhpcy5xdWVyeUNvbmYucXVlcnlSZWNvcmRPZmZzZXQgfHwgMCkgKyB0aGlzLnF1ZXJ5Q29uZi5xdWVyeVJvd3M7XG4gICAgICB0aGlzLnF1ZXJ5TmF2aWdhdGlvbkRhdGEob2Zmc2V0KS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5tb3ZlKDApO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ2Zvcm0tdG9vbGJhci0+bmV4dCgpOiB0b3RhbCA+IGluZGV4Jyk7XG4gICAgfVxuICB9XG5cbiAgcHJldmlvdXMoKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmN1cnJlbnRJbmRleCAtIDE7XG4gICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgIHRoaXMubW92ZShpbmRleCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnF1ZXJ5Q29uZikge1xuICAgICAgY29uc3Qgb2Zmc2V0OiBudW1iZXIgPSB0aGlzLnF1ZXJ5Q29uZi5xdWVyeVJlY29yZE9mZnNldCAtIHRoaXMucXVlcnlDb25mLnF1ZXJ5Um93cztcbiAgICAgIHRoaXMucXVlcnlOYXZpZ2F0aW9uRGF0YShvZmZzZXQpLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm1vdmUodGhpcy5uYXZpZ2F0aW9uRGF0YS5sZW5ndGggLSAxKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdmb3JtLXRvb2xiYXItPm5leHQoKTogaW5kZXggPCAwJyk7XG4gICAgfVxuICB9XG5cbiAgZmlyc3QoKSB7XG4gICAgaWYgKCF0aGlzLnF1ZXJ5Q29uZiB8fCB0aGlzLnF1ZXJ5Q29uZi5xdWVyeVJlY29yZE9mZnNldCA9PT0gMCkge1xuICAgICAgdGhpcy5tb3ZlKDApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnF1ZXJ5TmF2aWdhdGlvbkRhdGEoMCkudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMubW92ZSgwKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGxhc3QoKSB7XG4gICAgaWYgKCF0aGlzLnF1ZXJ5Q29uZiB8fCB0aGlzLmlzTGFzdCgpKSB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMubmF2aWdhdGlvbkRhdGEubGVuZ3RoIC0gMTtcbiAgICAgIHRoaXMubW92ZShpbmRleCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMucXVlcnlDb25mLnRvdGFsUmVjb3Jkc051bWJlciAtIHRoaXMucXVlcnlDb25mLnF1ZXJ5Um93cztcbiAgICAgIHRoaXMucXVlcnlOYXZpZ2F0aW9uRGF0YShvZmZzZXQsIHRoaXMucXVlcnlDb25mLnF1ZXJ5Um93cykudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMubW92ZSh0aGlzLm5hdmlnYXRpb25EYXRhLmxlbmd0aCAtIDEpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgaXNGaXJzdCgpIHtcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gdGhpcy5jdXJyZW50SW5kZXggPT09IDA7XG4gICAgaWYgKHJlc3VsdCAmJiB0aGlzLnF1ZXJ5Q29uZikge1xuICAgICAgcmVzdWx0ID0gdGhpcy5xdWVyeUNvbmYucXVlcnlSZWNvcmRPZmZzZXQgPT09IDA7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBpc0xhc3QoKSB7XG4gICAgbGV0IHJlc3VsdDogYm9vbGVhbiA9IHRoaXMuY3VycmVudEluZGV4ID09PSAodGhpcy5uYXZpZ2F0aW9uRGF0YS5sZW5ndGggLSAxKTtcbiAgICBpZiAocmVzdWx0ICYmIHRoaXMucXVlcnlDb25mKSB7XG4gICAgICByZXN1bHQgPSAodGhpcy5xdWVyeUNvbmYucXVlcnlSZWNvcmRPZmZzZXQgKyB0aGlzLnF1ZXJ5Q29uZi5xdWVyeVJvd3MpXG4gICAgICAgID49IHRoaXMucXVlcnlDb25mLnRvdGFsUmVjb3Jkc051bWJlcjtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIG1vdmUoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuX2Zvcm0uc2hvd0NvbmZpcm1EaXNjYXJkQ2hhbmdlcygpLnRoZW4ocmVzID0+IHtcbiAgICAgIGlmIChyZXMgPT09IHRydWUpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSBpbmRleDtcbiAgICAgICAgaWYgKHRoaXMuZm9ybUxheW91dE1hbmFnZXIgJiYgdGhpcy5mb3JtTGF5b3V0TWFuYWdlci5hbGxvd05hdmlnYXRpb24oKSkge1xuICAgICAgICAgIHRoaXMubW92ZUluRm9ybUxheW91dE1hbmFnZXIoaW5kZXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubW92ZVdpdGhvdXRNYW5hZ2VyKGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBtb3ZlV2l0aG91dE1hbmFnZXIoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IHJvdXRlID0gdGhpcy5nZXRSb3V0ZU9mU2VsZWN0ZWRSb3codGhpcy5uYXZpZ2F0aW9uRGF0YVtpbmRleF0pO1xuICAgIGlmIChyb3V0ZS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBuYXZEYXRhOiBPTmF2aWdhdGlvbkl0ZW0gPSB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLmdldExhc3RJdGVtKCk7XG4gICAgICBpZiAobmF2RGF0YSkge1xuICAgICAgICB0aGlzLl9mb3JtLmNhbkRpc2NhcmRDaGFuZ2VzID0gdHJ1ZTtcblxuICAgICAgICBjb25zdCBleHRyYXM6IE5hdmlnYXRpb25FeHRyYXMgPSB7fTtcbiAgICAgICAgZXh0cmFzW0NvZGVzLlFVRVJZX1BBUkFNU10gPSBDb2Rlcy5nZXRJc0RldGFpbE9iamVjdCgpO1xuXG4gICAgICAgIGNvbnN0IHVybEFycmF5ID0gbmF2RGF0YS51cmwuc3BsaXQoQ29kZXMuUk9VVEVfU0VQQVJBVE9SKTtcbiAgICAgICAgY29uc3QgdXJsID0gdXJsQXJyYXkuc3BsaWNlKDAsIHVybEFycmF5Lmxlbmd0aCAtIHJvdXRlLmxlbmd0aCkuam9pbihDb2Rlcy5ST1VURV9TRVBBUkFUT1IpO1xuICAgICAgICByb3V0ZS51bnNoaWZ0KHVybCk7XG5cbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUocm91dGUsIGV4dHJhcykudGhlbigobmF2aWdhdGlvbkRvbmU6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICBpZiAobmF2aWdhdGlvbkRvbmUpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICBjb25zdCB1cmwgPSB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC51cmwuc3BsaXQoJz8nKVswXTtcbiAgICAgICAgICAgIGlmICh1cmwgIT09IG5hdkRhdGEudXJsKSB7XG4gICAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvblNlcnZpY2UucmVtb3ZlTGFzdEl0ZW0oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbW92ZUluRm9ybUxheW91dE1hbmFnZXIoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuX2Zvcm0uc2V0VXJsUGFyYW1zQW5kUmVsb2FkKHRoaXMubmF2aWdhdGlvbkRhdGFbaW5kZXhdKTtcbiAgfVxuXG4gIGdldFJvdXRlT2ZTZWxlY3RlZFJvdyhpdGVtOiBhbnkpIHtcbiAgICBjb25zdCByb3V0ZSA9IFtdO1xuICAgIGlmIChVdGlsLmlzT2JqZWN0KGl0ZW0pKSB7XG4gICAgICB0aGlzLl9mb3JtLmtleXNBcnJheS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGlmIChVdGlsLmlzRGVmaW5lZChpdGVtW2tleV0pKSB7XG4gICAgICAgICAgcm91dGUucHVzaChpdGVtW2tleV0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJvdXRlO1xuICB9XG5cbiAgc2hvd05hdmlnYXRpb24oKSB7XG4gICAgLypcbiAgICAgIHF1ZXJ5Q29uZiBpcyBvbmx5IGRlZmluZWQgd2hlbiB0aGUgc2VydmljZSBpcyBwYWdlYWJsZVxuICAgICovXG4gICAgcmV0dXJuIChVdGlsLmlzRGVmaW5lZCh0aGlzLnF1ZXJ5Q29uZikgJiYgVXRpbC5pc0RlZmluZWQodGhpcy5xdWVyeUNvbmYudG90YWxSZWNvcmRzTnVtYmVyKSkgPyB0aGlzLnF1ZXJ5Q29uZi50b3RhbFJlY29yZHNOdW1iZXIgPiAxIDogdGhpcy5uYXZpZ2F0aW9uRGF0YS5sZW5ndGggPiAxXG4gIH1cblxuICBzZXQgY3VycmVudEluZGV4KGFyZzogbnVtYmVyKSB7XG4gICAgdGhpcy5fY3VycmVudEluZGV4ID0gYXJnO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50SW5kZXg7XG4gIH1cblxuICBnZXRSZWNvcmRJbmRleCgpOiBudW1iZXIge1xuICAgIGxldCBpbmRleCA9IHRoaXMuY3VycmVudEluZGV4ICsgMTtcbiAgICBpZiAodGhpcy5xdWVyeUNvbmYpIHtcbiAgICAgIGluZGV4ICs9IHRoaXMucXVlcnlDb25mLnF1ZXJ5UmVjb3JkT2Zmc2V0O1xuICAgIH1cbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICBnZXRUb3RhbFJlY29yZHNOdW1iZXIoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5xdWVyeUNvbmYgJiYgdGhpcy5xdWVyeUNvbmYudG90YWxSZWNvcmRzTnVtYmVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5xdWVyeUNvbmYudG90YWxSZWNvcmRzTnVtYmVyO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5uYXZpZ2F0aW9uRGF0YS5sZW5ndGg7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93TmF2aWdhdGlvbigpXCI+XG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNsYXNzPVwiby1mb3JtLXRvb2xiYXItYnV0dG9uXCIgW2Rpc2FibGVkXT1cImlzRmlyc3QoKVwiIChjbGljayk9XCJmaXJzdCgpXCI+XG4gICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJGaXJzdFwiIGxheW91dC1wYWRkaW5nIHN2Z0ljb249XCJvbnRpbWl6ZTpmaXJzdF9wYWdlXCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNsYXNzPVwiby1mb3JtLXRvb2xiYXItYnV0dG9uXCIgW2Rpc2FibGVkXT1cImlzRmlyc3QoKVwiIChjbGljayk9XCJwcmV2aW91cygpXCI+XG4gICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJQcmV2aW91c1wiIGxheW91dC1wYWRkaW5nIHN2Z0ljb249XCJvbnRpbWl6ZTprZXlib2FyZF9hcnJvd19sZWZ0XCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG4gIDxzcGFuIGxheW91dC1wYWRkaW5nPnt7IGdldFJlY29yZEluZGV4KCkgfX0gLyB7eyBnZXRUb3RhbFJlY29yZHNOdW1iZXIoKSB9fTwvc3Bhbj5cbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY2xhc3M9XCJvLWZvcm0tdG9vbGJhci1idXR0b25cIiBbZGlzYWJsZWRdPVwiaXNMYXN0KClcIiAoY2xpY2spPVwibmV4dCgpXCI+XG4gICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJOZXh0XCIgbGF5b3V0LXBhZGRpbmcgc3ZnSWNvbj1cIm9udGltaXplOmtleWJvYXJkX2Fycm93X3JpZ2h0XCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNsYXNzPVwiby1mb3JtLXRvb2xiYXItYnV0dG9uXCIgW2Rpc2FibGVkXT1cImlzTGFzdCgpXCIgKGNsaWNrKT1cImxhc3QoKVwiPlxuICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiTGFzdFwiIGxheW91dC1wYWRkaW5nIHN2Z0ljb249XCJvbnRpbWl6ZTpsYXN0X3BhZ2VcIj48L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbjwvbmctY29udGFpbmVyPiJdfQ==