@eo-sdk/client 10.7.0-rc.1 → 10.7.0-rc.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 (61) hide show
  1. package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.d.ts.map +1 -1
  2. package/app/eo-client/login/login.component.d.ts +1 -0
  3. package/app/eo-client/login/login.component.d.ts.map +1 -1
  4. package/app/eo-client/process-state/process-state.component.d.ts +1 -0
  5. package/app/eo-client/process-state/process-state.component.d.ts.map +1 -1
  6. package/app/eo-framework/app-shell/app-bar/app-bar.component.d.ts +1 -2
  7. package/app/eo-framework/app-shell/app-bar/app-bar.component.d.ts.map +1 -1
  8. package/app/eo-framework/app-shell/app-bar/user-avatar-overlay/user-avatar-overlay.component.d.ts +18 -0
  9. package/app/eo-framework/app-shell/app-bar/user-avatar-overlay/user-avatar-overlay.component.d.ts.map +1 -0
  10. package/app/eo-framework/app-shell/app-shell.module.d.ts +17 -16
  11. package/app/eo-framework/app-shell/app-shell.module.d.ts.map +1 -1
  12. package/app/eo-framework/media/media.component.d.ts.map +1 -1
  13. package/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.d.ts +1 -1
  14. package/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.d.ts.map +1 -1
  15. package/app/eo-framework/object-form/object-form-helper.service.d.ts.map +1 -1
  16. package/app/eo-framework/process/details/process-details.component.d.ts.map +1 -1
  17. package/app/eo-framework/result-list/result-list.component.d.ts +1 -0
  18. package/app/eo-framework/result-list/result-list.component.d.ts.map +1 -1
  19. package/app/eo-framework/ui/overlay/overlay.component.d.ts +11 -7
  20. package/app/eo-framework/ui/overlay/overlay.component.d.ts.map +1 -1
  21. package/assets/_default/i18n/de.json +2 -1
  22. package/assets/_default/i18n/en.json +2 -1
  23. package/esm2020/app/eo-client/about-state/about-state.component.mjs +3 -3
  24. package/esm2020/app/eo-client/dashboard/dashboard.component.mjs +3 -3
  25. package/esm2020/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.mjs +3 -3
  26. package/esm2020/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.mjs +21 -6
  27. package/esm2020/app/eo-client/favorite-state/favorite-state.component.mjs +1 -1
  28. package/esm2020/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +2 -2
  29. package/esm2020/app/eo-client/login/login.component.mjs +13 -6
  30. package/esm2020/app/eo-client/notifications-state/notifications-state.component.mjs +1 -1
  31. package/esm2020/app/eo-client/prepare-state/prepare-state/prepare-state.component.mjs +1 -1
  32. package/esm2020/app/eo-client/process-state/process-state.component.mjs +22 -14
  33. package/esm2020/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +1 -1
  34. package/esm2020/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +1 -1
  35. package/esm2020/app/eo-client/version-state/version-state.component.mjs +1 -1
  36. package/esm2020/app/eo-framework/actions/actions/share-object-action/share-object-action.mjs +2 -2
  37. package/esm2020/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.mjs +4 -4
  38. package/esm2020/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +10 -19
  39. package/esm2020/app/eo-framework/app-shell/app-bar/user-avatar-overlay/user-avatar-overlay.component.mjs +42 -0
  40. package/esm2020/app/eo-framework/app-shell/app-shell.module.mjs +5 -2
  41. package/esm2020/app/eo-framework/grid/extensions/custom-sort/custom-sort.component.mjs +2 -2
  42. package/esm2020/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.mjs +2 -2
  43. package/esm2020/app/eo-framework/media/media.component.mjs +8 -2
  44. package/esm2020/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +4 -3
  45. package/esm2020/app/eo-framework/object-form/object-form-helper.service.mjs +11 -2
  46. package/esm2020/app/eo-framework/prepare-details/prepare-details.component.mjs +1 -1
  47. package/esm2020/app/eo-framework/process/details/process-details.component.mjs +1 -2
  48. package/esm2020/app/eo-framework/result-list/result-list.component.mjs +18 -2
  49. package/esm2020/app/eo-framework/ui/overlay/overlay.component.mjs +38 -18
  50. package/esm2020/projects/eo-sdk/core/lib/model/dms-object.model.mjs +5 -3
  51. package/esm2020/projects/eo-sdk/core/lib/service/bpm/bpm.service.mjs +6 -6
  52. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs +9 -7
  53. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
  54. package/fesm2015/eo-sdk-client.mjs +333 -233
  55. package/fesm2015/eo-sdk-client.mjs.map +1 -1
  56. package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs +9 -7
  57. package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
  58. package/fesm2020/eo-sdk-client.mjs +329 -229
  59. package/fesm2020/eo-sdk-client.mjs.map +1 -1
  60. package/package.json +3 -3
  61. package/projects/eo-sdk/core/lib/model/dms-object.model.d.ts.map +1 -1
@@ -21,6 +21,7 @@ import { AppProcessComponent } from './app-bar/app-process/app-process.component
21
21
  import { ProcessFormModule } from '../process-form/process-form.module';
22
22
  import { YvcAutocompleteModule } from '@yuuvis/components/autocomplete';
23
23
  import { YvcDialogModule } from '@yuuvis/components/dialog';
24
+ import { UserAvatarOverlayComponent } from "./app-bar/user-avatar-overlay/user-avatar-overlay.component";
24
25
  import * as i0 from "@angular/core";
25
26
  /**
26
27
  * Module holding the base components of the application shell like application bar, side, search etc.
@@ -34,7 +35,8 @@ EoAppShellModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
34
35
  AppAddComponent,
35
36
  AppAddDialogComponent,
36
37
  ContextSearchComponent,
37
- AppProcessComponent], imports: [AppShellRoutingModule,
38
+ AppProcessComponent,
39
+ UserAvatarOverlayComponent], imports: [AppShellRoutingModule,
38
40
  CommonModule,
39
41
  FormsModule,
40
42
  UiModule,
@@ -93,7 +95,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
93
95
  AppAddDialogComponent,
94
96
  ContextSearchComponent,
95
97
  AppProcessComponent,
98
+ UserAvatarOverlayComponent
96
99
  ]
97
100
  }]
98
101
  }] });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXNoZWxsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2FwcC1zaGVsbC9hcHAtc2hlbGwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUV0RCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDaEcsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDNUMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJCQUEyQixDQUFDOztBQUUxRDs7R0FFRztBQStCSCxNQUFNLE9BQU8sZ0JBQWdCOzs2R0FBaEIsZ0JBQWdCOzhHQUFoQixnQkFBZ0IsaUJBVHpCLGVBQWU7UUFDZixnQkFBZ0I7UUFDaEIsa0JBQWtCO1FBQ2xCLGVBQWU7UUFDZixxQkFBcUI7UUFDckIsc0JBQXNCO1FBQ3RCLG1CQUFtQixhQXhCbkIscUJBQXFCO1FBQ3JCLFlBQVk7UUFDWixXQUFXO1FBQ1gsUUFBUTtRQUNSLFVBQVU7UUFDVixjQUFjO1FBQ2QsYUFBYTtRQUNiLGtCQUFrQjtRQUNsQixnQkFBZ0I7UUFDaEIsZUFBZTtRQUNmLFlBQVk7UUFDWixTQUFTO1FBQ1QsaUJBQWlCO1FBQ2pCLHFCQUFxQjtRQUNyQixlQUFlLGFBRVAsZUFBZTs4R0FXZCxnQkFBZ0IsWUEzQnpCLHFCQUFxQjtRQUNyQixZQUFZO1FBQ1osV0FBVztRQUNYLFFBQVE7UUFDUixVQUFVO1FBQ1YsY0FBYztRQUNkLGFBQWE7UUFDYixrQkFBa0I7UUFDbEIsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixZQUFZO1FBQ1osU0FBUztRQUNULGlCQUFpQjtRQUNqQixxQkFBcUI7UUFDckIsZUFBZTsyRkFhTixnQkFBZ0I7a0JBN0I1QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxxQkFBcUI7d0JBQ3JCLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxRQUFRO3dCQUNSLFVBQVU7d0JBQ1YsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLFlBQVk7d0JBQ1osU0FBUzt3QkFDVCxpQkFBaUI7d0JBQ2pCLHFCQUFxQjt3QkFDckIsZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO29CQUMxQixZQUFZLEVBQUU7d0JBQ1osZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3FCQUNwQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1VpTW9kdWxlfSBmcm9tICcuLi91aS91aS5tb2R1bGUnO1xuaW1wb3J0IHtBcHBCYXJDb21wb25lbnR9IGZyb20gJy4vYXBwLWJhci9hcHAtYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQge0NvbnRleHRTZWFyY2hDb21wb25lbnR9IGZyb20gJy4vYXBwLWJhci9jb250ZXh0LXNlYXJjaC9jb250ZXh0LXNlYXJjaC5jb21wb25lbnQnO1xuaW1wb3J0IHtTaWRlQmFyQ29tcG9uZW50fSBmcm9tICcuL2FwcC1iYXIvc2lkZS1iYXIvc2lkZS1iYXIuY29tcG9uZW50JztcbmltcG9ydCB7QXBwU2VhcmNoQ29tcG9uZW50fSBmcm9tICcuL2FwcC1iYXIvYXBwLXNlYXJjaC9hcHAtc2VhcmNoLmNvbXBvbmVudCc7XG5pbXBvcnQge0FwcEFkZENvbXBvbmVudH0gZnJvbSAnLi9hcHAtYmFyL2FwcC1hZGQvYXBwLWFkZC5jb21wb25lbnQnO1xuaW1wb3J0IHtFb1NoYXJlZE1vZHVsZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7WXZjVGFic01vZHVsZX0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL3RhYnMnO1xuXG5pbXBvcnQge0FwcFNoZWxsUm91dGluZ01vZHVsZX0gZnJvbSAnLi9hcHAtc2hlbGwtcm91dGluZy5tb2R1bGUnO1xuaW1wb3J0IHtTaG9ydGN1dHNNb2R1bGV9IGZyb20gJy4uL3Nob3J0Y3V0cy9zaG9ydGN1dHMubW9kdWxlJztcbmltcG9ydCB7Rm9ybUVsZW1lbnRzTW9kdWxlfSBmcm9tICcuLi9mb3JtLWVsZW1lbnRzL2Zvcm0tZWxlbWVudHMubW9kdWxlJztcbmltcG9ydCB7T2JqZWN0Rm9ybU1vZHVsZX0gZnJvbSAnLi4vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0ubW9kdWxlJztcbmltcG9ydCB7QXBwQWRkRGlhbG9nQ29tcG9uZW50fSBmcm9tICcuL2FwcC1iYXIvYXBwLWFkZC9hcHAtYWRkLWRpYWxvZy9hcHAtYWRkLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHtBY3Rpb25Nb2R1bGV9IGZyb20gJy4uL2FjdGlvbnMvYWN0aW9uLm1vZHVsZSc7XG5pbXBvcnQge1V0aWxNb2R1bGV9IGZyb20gJy4uL3V0aWwvdXRpbC5tb2R1bGUnO1xuaW1wb3J0IHtDdGFNb2R1bGV9IGZyb20gJy4uL2N0YS9jdGEubW9kdWxlJztcbmltcG9ydCB7QXBwUHJvY2Vzc0NvbXBvbmVudH0gZnJvbSAnLi9hcHAtYmFyL2FwcC1wcm9jZXNzL2FwcC1wcm9jZXNzLmNvbXBvbmVudCc7XG5pbXBvcnQge1Byb2Nlc3NGb3JtTW9kdWxlfSBmcm9tICcuLi9wcm9jZXNzLWZvcm0vcHJvY2Vzcy1mb3JtLm1vZHVsZSc7XG5pbXBvcnQge1l2Y0F1dG9jb21wbGV0ZU1vZHVsZX0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQge1l2Y0RpYWxvZ01vZHVsZX0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2RpYWxvZyc7XG5cbi8qKlxuICogTW9kdWxlIGhvbGRpbmcgdGhlIGJhc2UgY29tcG9uZW50cyBvZiB0aGUgYXBwbGljYXRpb24gc2hlbGwgbGlrZSBhcHBsaWNhdGlvbiBiYXIsIHNpZGUsIHNlYXJjaCBldGMuXG4gKi9cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIEFwcFNoZWxsUm91dGluZ01vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgVWlNb2R1bGUsXG4gICAgVXRpbE1vZHVsZSxcbiAgICBFb1NoYXJlZE1vZHVsZSxcbiAgICBZdmNUYWJzTW9kdWxlLFxuICAgIEZvcm1FbGVtZW50c01vZHVsZSxcbiAgICBPYmplY3RGb3JtTW9kdWxlLFxuICAgIFNob3J0Y3V0c01vZHVsZSxcbiAgICBBY3Rpb25Nb2R1bGUsXG4gICAgQ3RhTW9kdWxlLFxuICAgIFByb2Nlc3NGb3JtTW9kdWxlLFxuICAgIFl2Y0F1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICBZdmNEaWFsb2dNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtBcHBCYXJDb21wb25lbnRdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBBcHBCYXJDb21wb25lbnQsXG4gICAgU2lkZUJhckNvbXBvbmVudCxcbiAgICBBcHBTZWFyY2hDb21wb25lbnQsXG4gICAgQXBwQWRkQ29tcG9uZW50LFxuICAgIEFwcEFkZERpYWxvZ0NvbXBvbmVudCxcbiAgICBDb250ZXh0U2VhcmNoQ29tcG9uZW50LFxuICAgIEFwcFByb2Nlc3NDb21wb25lbnQsXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRW9BcHBTaGVsbE1vZHVsZSB7XG59XG4iXX0=
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXNoZWxsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2FwcC1zaGVsbC9hcHAtc2hlbGwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUV0RCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDaEcsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDNUMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDZEQUE2RCxDQUFDOztBQUV2Rzs7R0FFRztBQWdDSCxNQUFNLE9BQU8sZ0JBQWdCOzs2R0FBaEIsZ0JBQWdCOzhHQUFoQixnQkFBZ0IsaUJBVnpCLGVBQWU7UUFDZixnQkFBZ0I7UUFDaEIsa0JBQWtCO1FBQ2xCLGVBQWU7UUFDZixxQkFBcUI7UUFDckIsc0JBQXNCO1FBQ3RCLG1CQUFtQjtRQUNuQiwwQkFBMEIsYUF6QjFCLHFCQUFxQjtRQUNyQixZQUFZO1FBQ1osV0FBVztRQUNYLFFBQVE7UUFDUixVQUFVO1FBQ1YsY0FBYztRQUNkLGFBQWE7UUFDYixrQkFBa0I7UUFDbEIsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixZQUFZO1FBQ1osU0FBUztRQUNULGlCQUFpQjtRQUNqQixxQkFBcUI7UUFDckIsZUFBZSxhQUVQLGVBQWU7OEdBWWQsZ0JBQWdCLFlBNUJ6QixxQkFBcUI7UUFDckIsWUFBWTtRQUNaLFdBQVc7UUFDWCxRQUFRO1FBQ1IsVUFBVTtRQUNWLGNBQWM7UUFDZCxhQUFhO1FBQ2Isa0JBQWtCO1FBQ2xCLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2YsWUFBWTtRQUNaLFNBQVM7UUFDVCxpQkFBaUI7UUFDakIscUJBQXFCO1FBQ3JCLGVBQWU7MkZBY04sZ0JBQWdCO2tCQTlCNUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AscUJBQXFCO3dCQUNyQixZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsUUFBUTt3QkFDUixVQUFVO3dCQUNWLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixZQUFZO3dCQUNaLFNBQVM7d0JBQ1QsaUJBQWlCO3dCQUNqQixxQkFBcUI7d0JBQ3JCLGVBQWU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDMUIsWUFBWSxFQUFFO3dCQUNaLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YscUJBQXFCO3dCQUNyQixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsMEJBQTBCO3FCQUMzQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1VpTW9kdWxlfSBmcm9tICcuLi91aS91aS5tb2R1bGUnO1xuaW1wb3J0IHtBcHBCYXJDb21wb25lbnR9IGZyb20gJy4vYXBwLWJhci9hcHAtYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQge0NvbnRleHRTZWFyY2hDb21wb25lbnR9IGZyb20gJy4vYXBwLWJhci9jb250ZXh0LXNlYXJjaC9jb250ZXh0LXNlYXJjaC5jb21wb25lbnQnO1xuaW1wb3J0IHtTaWRlQmFyQ29tcG9uZW50fSBmcm9tICcuL2FwcC1iYXIvc2lkZS1iYXIvc2lkZS1iYXIuY29tcG9uZW50JztcbmltcG9ydCB7QXBwU2VhcmNoQ29tcG9uZW50fSBmcm9tICcuL2FwcC1iYXIvYXBwLXNlYXJjaC9hcHAtc2VhcmNoLmNvbXBvbmVudCc7XG5pbXBvcnQge0FwcEFkZENvbXBvbmVudH0gZnJvbSAnLi9hcHAtYmFyL2FwcC1hZGQvYXBwLWFkZC5jb21wb25lbnQnO1xuaW1wb3J0IHtFb1NoYXJlZE1vZHVsZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7WXZjVGFic01vZHVsZX0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL3RhYnMnO1xuXG5pbXBvcnQge0FwcFNoZWxsUm91dGluZ01vZHVsZX0gZnJvbSAnLi9hcHAtc2hlbGwtcm91dGluZy5tb2R1bGUnO1xuaW1wb3J0IHtTaG9ydGN1dHNNb2R1bGV9IGZyb20gJy4uL3Nob3J0Y3V0cy9zaG9ydGN1dHMubW9kdWxlJztcbmltcG9ydCB7Rm9ybUVsZW1lbnRzTW9kdWxlfSBmcm9tICcuLi9mb3JtLWVsZW1lbnRzL2Zvcm0tZWxlbWVudHMubW9kdWxlJztcbmltcG9ydCB7T2JqZWN0Rm9ybU1vZHVsZX0gZnJvbSAnLi4vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0ubW9kdWxlJztcbmltcG9ydCB7QXBwQWRkRGlhbG9nQ29tcG9uZW50fSBmcm9tICcuL2FwcC1iYXIvYXBwLWFkZC9hcHAtYWRkLWRpYWxvZy9hcHAtYWRkLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHtBY3Rpb25Nb2R1bGV9IGZyb20gJy4uL2FjdGlvbnMvYWN0aW9uLm1vZHVsZSc7XG5pbXBvcnQge1V0aWxNb2R1bGV9IGZyb20gJy4uL3V0aWwvdXRpbC5tb2R1bGUnO1xuaW1wb3J0IHtDdGFNb2R1bGV9IGZyb20gJy4uL2N0YS9jdGEubW9kdWxlJztcbmltcG9ydCB7QXBwUHJvY2Vzc0NvbXBvbmVudH0gZnJvbSAnLi9hcHAtYmFyL2FwcC1wcm9jZXNzL2FwcC1wcm9jZXNzLmNvbXBvbmVudCc7XG5pbXBvcnQge1Byb2Nlc3NGb3JtTW9kdWxlfSBmcm9tICcuLi9wcm9jZXNzLWZvcm0vcHJvY2Vzcy1mb3JtLm1vZHVsZSc7XG5pbXBvcnQge1l2Y0F1dG9jb21wbGV0ZU1vZHVsZX0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQge1l2Y0RpYWxvZ01vZHVsZX0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2RpYWxvZyc7XG5pbXBvcnQge1VzZXJBdmF0YXJPdmVybGF5Q29tcG9uZW50fSBmcm9tIFwiLi9hcHAtYmFyL3VzZXItYXZhdGFyLW92ZXJsYXkvdXNlci1hdmF0YXItb3ZlcmxheS5jb21wb25lbnRcIjtcblxuLyoqXG4gKiBNb2R1bGUgaG9sZGluZyB0aGUgYmFzZSBjb21wb25lbnRzIG9mIHRoZSBhcHBsaWNhdGlvbiBzaGVsbCBsaWtlIGFwcGxpY2F0aW9uIGJhciwgc2lkZSwgc2VhcmNoIGV0Yy5cbiAqL1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQXBwU2hlbGxSb3V0aW5nTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBVaU1vZHVsZSxcbiAgICBVdGlsTW9kdWxlLFxuICAgIEVvU2hhcmVkTW9kdWxlLFxuICAgIFl2Y1RhYnNNb2R1bGUsXG4gICAgRm9ybUVsZW1lbnRzTW9kdWxlLFxuICAgIE9iamVjdEZvcm1Nb2R1bGUsXG4gICAgU2hvcnRjdXRzTW9kdWxlLFxuICAgIEFjdGlvbk1vZHVsZSxcbiAgICBDdGFNb2R1bGUsXG4gICAgUHJvY2Vzc0Zvcm1Nb2R1bGUsXG4gICAgWXZjQXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIFl2Y0RpYWxvZ01vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW0FwcEJhckNvbXBvbmVudF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEFwcEJhckNvbXBvbmVudCxcbiAgICBTaWRlQmFyQ29tcG9uZW50LFxuICAgIEFwcFNlYXJjaENvbXBvbmVudCxcbiAgICBBcHBBZGRDb21wb25lbnQsXG4gICAgQXBwQWRkRGlhbG9nQ29tcG9uZW50LFxuICAgIENvbnRleHRTZWFyY2hDb21wb25lbnQsXG4gICAgQXBwUHJvY2Vzc0NvbXBvbmVudCxcbiAgICBVc2VyQXZhdGFyT3ZlcmxheUNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEVvQXBwU2hlbGxNb2R1bGUge1xufVxuIl19
@@ -63,10 +63,10 @@ export class CustomSortComponent {
63
63
  }
64
64
  }
65
65
  CustomSortComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: CustomSortComponent, deps: [{ token: i1.ListSettingsService }], target: i0.ɵɵFactoryTarget.Component });
66
- CustomSortComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: CustomSortComponent, selector: "eo-custom-sort", inputs: { eoGrid: "eoGrid", overlay: "overlay", id: "id", sortFields: "sortFields" }, outputs: { change: "change", active: "active" }, ngImport: i0, template: "<div class=\"sort\">\n <div class=\"sort-title\" translate>eo.sort.by</div>\n <div class=\"sort-option\" *ngFor=\"let sortBy of sortFields\" [ngClass]=\"{asc: sortBy.sort === 'asc', desc: sortBy.sort === 'desc'}\">\n <eo-icon class=\"asc\" [iconTitle]=\"'eo.sort.asc' | translate\" [iconSrc]=\"'assets/_default/svg/ic_arrow_up.svg'\" (click)=\"sort(sortBy.field, 'asc')\"></eo-icon>\n <eo-icon class=\"desc\" [iconTitle]=\"'eo.sort.desc' | translate\" [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\" (click)=\"sort(sortBy.field, 'desc')\"></eo-icon>\n <span class=\"title\">{{sortBy.headerName}}</span>\n <eo-icon class=\"clear\" [iconTitle]=\"'eo.sort.clear' | translate:{value: sortBy.headerName}\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"sort(sortBy.field, '')\"></eo-icon>\n </div>\n</div>\n", styles: [":host ::ng-deep .sort-title{margin:.5em 0;font-weight:700}:host ::ng-deep .sort-option{border-top:1px solid var(--color-primary-4);display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center}:host ::ng-deep .sort-option eo-icon{margin:0;cursor:pointer}:host ::ng-deep .sort-option .title{flex:1;padding:calc(var(--app-pane-padding) / 2);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .sort-option.asc eo-icon.asc,:host ::ng-deep .sort-option.desc eo-icon.desc{color:var(--color-accent)}:host ::ng-deep .sort-option eo-icon.clear{visibility:hidden}:host ::ng-deep .sort-option.asc eo-icon.clear,:host ::ng-deep .sort-option.desc eo-icon.clear{visibility:visible}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i4.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
66
+ CustomSortComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: CustomSortComponent, selector: "eo-custom-sort", inputs: { eoGrid: "eoGrid", overlay: "overlay", id: "id", sortFields: "sortFields" }, outputs: { change: "change", active: "active" }, ngImport: i0, template: "<div class=\"sort\">\n <div class=\"sort-title\" translate>eo.sort.by</div>\n <div class=\"sort-option\" *ngFor=\"let sortBy of sortFields\" [ngClass]=\"{asc: sortBy.sort === 'asc', desc: sortBy.sort === 'desc'}\">\n <eo-icon class=\"asc\" [iconTitle]=\"'eo.sort.asc' | translate\" [iconSrc]=\"'assets/_default/svg/ic_arrow_up.svg'\" (click)=\"sort(sortBy.field, 'asc')\"></eo-icon>\n <eo-icon class=\"desc\" [iconTitle]=\"'eo.sort.desc' | translate\" [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\" (click)=\"sort(sortBy.field, 'desc')\"></eo-icon>\n <span class=\"title\">{{sortBy.headerName}}</span>\n <eo-icon class=\"clear\" [iconTitle]=\"'eo.sort.clear' | translate:{value: sortBy.headerName}\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"sort(sortBy.field, '')\"></eo-icon>\n </div>\n</div>\n", styles: [":host ::ng-deep{display:block;padding:calc(var(--app-pane-padding) / 2)}:host ::ng-deep .sort-title{margin:.5em 0;font-weight:700}:host ::ng-deep .sort-option{border-top:1px solid var(--color-primary-4);display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center}:host ::ng-deep .sort-option eo-icon{margin:0;cursor:pointer}:host ::ng-deep .sort-option .title{flex:1;padding:calc(var(--app-pane-padding) / 2);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .sort-option.asc eo-icon.asc,:host ::ng-deep .sort-option.desc eo-icon.desc{color:var(--color-accent)}:host ::ng-deep .sort-option eo-icon.clear{visibility:hidden}:host ::ng-deep .sort-option.asc eo-icon.clear,:host ::ng-deep .sort-option.desc eo-icon.clear{visibility:visible}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i4.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
67
67
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: CustomSortComponent, decorators: [{
68
68
  type: Component,
69
- args: [{ selector: 'eo-custom-sort', template: "<div class=\"sort\">\n <div class=\"sort-title\" translate>eo.sort.by</div>\n <div class=\"sort-option\" *ngFor=\"let sortBy of sortFields\" [ngClass]=\"{asc: sortBy.sort === 'asc', desc: sortBy.sort === 'desc'}\">\n <eo-icon class=\"asc\" [iconTitle]=\"'eo.sort.asc' | translate\" [iconSrc]=\"'assets/_default/svg/ic_arrow_up.svg'\" (click)=\"sort(sortBy.field, 'asc')\"></eo-icon>\n <eo-icon class=\"desc\" [iconTitle]=\"'eo.sort.desc' | translate\" [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\" (click)=\"sort(sortBy.field, 'desc')\"></eo-icon>\n <span class=\"title\">{{sortBy.headerName}}</span>\n <eo-icon class=\"clear\" [iconTitle]=\"'eo.sort.clear' | translate:{value: sortBy.headerName}\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"sort(sortBy.field, '')\"></eo-icon>\n </div>\n</div>\n", styles: [":host ::ng-deep .sort-title{margin:.5em 0;font-weight:700}:host ::ng-deep .sort-option{border-top:1px solid var(--color-primary-4);display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center}:host ::ng-deep .sort-option eo-icon{margin:0;cursor:pointer}:host ::ng-deep .sort-option .title{flex:1;padding:calc(var(--app-pane-padding) / 2);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .sort-option.asc eo-icon.asc,:host ::ng-deep .sort-option.desc eo-icon.desc{color:var(--color-accent)}:host ::ng-deep .sort-option eo-icon.clear{visibility:hidden}:host ::ng-deep .sort-option.asc eo-icon.clear,:host ::ng-deep .sort-option.desc eo-icon.clear{visibility:visible}\n"] }]
69
+ args: [{ selector: 'eo-custom-sort', template: "<div class=\"sort\">\n <div class=\"sort-title\" translate>eo.sort.by</div>\n <div class=\"sort-option\" *ngFor=\"let sortBy of sortFields\" [ngClass]=\"{asc: sortBy.sort === 'asc', desc: sortBy.sort === 'desc'}\">\n <eo-icon class=\"asc\" [iconTitle]=\"'eo.sort.asc' | translate\" [iconSrc]=\"'assets/_default/svg/ic_arrow_up.svg'\" (click)=\"sort(sortBy.field, 'asc')\"></eo-icon>\n <eo-icon class=\"desc\" [iconTitle]=\"'eo.sort.desc' | translate\" [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\" (click)=\"sort(sortBy.field, 'desc')\"></eo-icon>\n <span class=\"title\">{{sortBy.headerName}}</span>\n <eo-icon class=\"clear\" [iconTitle]=\"'eo.sort.clear' | translate:{value: sortBy.headerName}\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"sort(sortBy.field, '')\"></eo-icon>\n </div>\n</div>\n", styles: [":host ::ng-deep{display:block;padding:calc(var(--app-pane-padding) / 2)}:host ::ng-deep .sort-title{margin:.5em 0;font-weight:700}:host ::ng-deep .sort-option{border-top:1px solid var(--color-primary-4);display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center}:host ::ng-deep .sort-option eo-icon{margin:0;cursor:pointer}:host ::ng-deep .sort-option .title{flex:1;padding:calc(var(--app-pane-padding) / 2);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .sort-option.asc eo-icon.asc,:host ::ng-deep .sort-option.desc eo-icon.desc{color:var(--color-accent)}:host ::ng-deep .sort-option eo-icon.clear{visibility:hidden}:host ::ng-deep .sort-option.asc eo-icon.clear,:host ::ng-deep .sort-option.desc eo-icon.clear{visibility:visible}\n"] }]
70
70
  }], ctorParameters: function () { return [{ type: i1.ListSettingsService }]; }, propDecorators: { eoGrid: [{
71
71
  type: Input
72
72
  }], overlay: [{
@@ -54,10 +54,10 @@ export class CustomFilterComponent {
54
54
  }
55
55
  }
56
56
  CustomFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: CustomFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
57
- CustomFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: CustomFilterComponent, selector: "eo-custom-filter", inputs: { overlay: "overlay", eoGrid: "eoGrid", activeFilter: "activeFilter", isFilterActive: "isFilterActive" }, outputs: { change: "change", active: "active", onResetFilters: "onResetFilters" }, queries: [{ propertyName: "textFilters", predicate: TextFilterComponent }, { propertyName: "setFilters", predicate: SetFilterComponent }], ngImport: i0, template: "<div class=\"filter\">\n <ng-content></ng-content>\n\n</div>\n<eo-cta [active]=\"isFilterActive\">\n<eo-reset-filter [isFilterActive]=\"isFilterActive\" (click)=\"resetFilter()\"></eo-reset-filter>\n</eo-cta>\n", styles: [":host::ng-deep .filter__header{margin-top:15px}:host::ng-deep .filter__title{color:rgba(var(--color-black-rgb),.54);font-size:13px;font-weight:700;height:15px;margin-top:6.5px;width:170px}\n"], dependencies: [{ kind: "component", type: i1.CtaComponent, selector: "eo-cta", inputs: ["active"] }, { kind: "component", type: i2.ResetFilterComponent, selector: "eo-reset-filter", inputs: ["isFilterActive"] }] });
57
+ CustomFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: CustomFilterComponent, selector: "eo-custom-filter", inputs: { overlay: "overlay", eoGrid: "eoGrid", activeFilter: "activeFilter", isFilterActive: "isFilterActive" }, outputs: { change: "change", active: "active", onResetFilters: "onResetFilters" }, queries: [{ propertyName: "textFilters", predicate: TextFilterComponent }, { propertyName: "setFilters", predicate: SetFilterComponent }], ngImport: i0, template: "<div class=\"filter\">\n <ng-content></ng-content>\n\n</div>\n<eo-cta [active]=\"isFilterActive\">\n<eo-reset-filter [isFilterActive]=\"isFilterActive\" (click)=\"resetFilter()\"></eo-reset-filter>\n</eo-cta>\n", styles: [":host::ng-deep{display:block;padding:calc(var(--app-pane-padding) / 2);overflow-x:hidden}:host::ng-deep .filter{display:grid}:host::ng-deep .filter-title{margin:.5em 0;font-weight:700}:host::ng-deep .filter__header{margin-top:15px}:host::ng-deep .filter__title{color:rgba(var(--color-black-rgb),.54);font-size:13px;font-weight:700;height:15px;margin-top:6.5px;width:170px}:host::ng-deep .reset-filter{font-size:13px;font-weight:400;border:0;cursor:pointer;background-color:transparent;color:rgba(var(--color-black-rgb),.54);padding:10px 0;transition:all .2s ease-in-out}:host::ng-deep .reset-filter:hover{color:var(--color-accent)!important;background:0 0!important;border:none!important}:host::ng-deep .type-filters .option{margin:1.5em 0}:host::ng-deep .inbox-filters{position:relative;bottom:15px;left:25px}\n"], dependencies: [{ kind: "component", type: i1.CtaComponent, selector: "eo-cta", inputs: ["active"] }, { kind: "component", type: i2.ResetFilterComponent, selector: "eo-reset-filter", inputs: ["isFilterActive"] }] });
58
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: CustomFilterComponent, decorators: [{
59
59
  type: Component,
60
- args: [{ selector: 'eo-custom-filter', template: "<div class=\"filter\">\n <ng-content></ng-content>\n\n</div>\n<eo-cta [active]=\"isFilterActive\">\n<eo-reset-filter [isFilterActive]=\"isFilterActive\" (click)=\"resetFilter()\"></eo-reset-filter>\n</eo-cta>\n", styles: [":host::ng-deep .filter__header{margin-top:15px}:host::ng-deep .filter__title{color:rgba(var(--color-black-rgb),.54);font-size:13px;font-weight:700;height:15px;margin-top:6.5px;width:170px}\n"] }]
60
+ args: [{ selector: 'eo-custom-filter', template: "<div class=\"filter\">\n <ng-content></ng-content>\n\n</div>\n<eo-cta [active]=\"isFilterActive\">\n<eo-reset-filter [isFilterActive]=\"isFilterActive\" (click)=\"resetFilter()\"></eo-reset-filter>\n</eo-cta>\n", styles: [":host::ng-deep{display:block;padding:calc(var(--app-pane-padding) / 2);overflow-x:hidden}:host::ng-deep .filter{display:grid}:host::ng-deep .filter-title{margin:.5em 0;font-weight:700}:host::ng-deep .filter__header{margin-top:15px}:host::ng-deep .filter__title{color:rgba(var(--color-black-rgb),.54);font-size:13px;font-weight:700;height:15px;margin-top:6.5px;width:170px}:host::ng-deep .reset-filter{font-size:13px;font-weight:400;border:0;cursor:pointer;background-color:transparent;color:rgba(var(--color-black-rgb),.54);padding:10px 0;transition:all .2s ease-in-out}:host::ng-deep .reset-filter:hover{color:var(--color-accent)!important;background:0 0!important;border:none!important}:host::ng-deep .type-filters .option{margin:1.5em 0}:host::ng-deep .inbox-filters{position:relative;bottom:15px;left:25px}\n"] }]
61
61
  }], propDecorators: { overlay: [{
62
62
  type: Input
63
63
  }], eoGrid: [{
@@ -182,7 +182,13 @@ let MediaComponent = MediaComponent_1 = class MediaComponent {
182
182
  return parameters;
183
183
  }
184
184
  resolveUri(viewer, parameters) {
185
- const origin = viewer.startsWith('http') ? '' : window.location.origin + (this.config.getRaw('uri.contextPath') || '/');
185
+ let origin = '';
186
+ if (!viewer.startsWith('http')) {
187
+ origin = window.location.origin + this.config.getRaw('uri.contextPath');
188
+ if (!origin.endsWith('/') && !viewer.startsWith('/')) {
189
+ origin += '/';
190
+ }
191
+ }
186
192
  return origin + viewer
187
193
  .replace('${originalPath}', parameters.path)
188
194
  .replace('${path}', encodeURIComponent(parameters.path))
@@ -305,4 +311,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
305
311
  }], dmsObject: [{
306
312
  type: Input
307
313
  }] } });
308
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvbWVkaWEvbWVkaWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvbWVkaWEvbWVkaWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUF3QixTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFVNUcsT0FBTyxFQUFDLHFCQUFxQixFQUFxQixNQUFNLDJCQUEyQixDQUFDO0FBQ3BGLE9BQU8sRUFBQyxTQUFTLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFLN0MsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDaEUsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7O0FBMEI1RCxJQUFNLGNBQWMsc0JBQXBCLE1BQU0sY0FBYztJQW9FekIsSUFDSSxjQUFjLENBQUMsV0FBVztRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUNJLGFBQWEsQ0FBQyxVQUFVO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFDSSxVQUFVLENBQUMsR0FBVztRQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFDSSxXQUFX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RUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO2dCQUNsSixPQUFPLEVBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLElBQUksRUFBQyxDQUFDO1lBQ3JELENBQUMsQ0FBQztTQUNIO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsZUFBZTtJQUNmLENBQUM7SUFFRCxXQUFXO0lBQ1gsQ0FBQzs7QUExVE0sMkJBQVksR0FBRyxxSEFBcUgsQ0FBQztBQUNySSx5QkFBVSxHQUFHLGtPQUFrTyxDQUFDOzJHQUg1TyxjQUFjOytGQUFkLGNBQWMsbVhBRmQsQ0FBQyxxQkFBcUIsQ0FBQywwSUN6Q3BDLGt0REFtQ0E7QURRYSxjQUFjO0lBUDFCLFlBQVksRUFBRTtHQU9GLGNBQWMsQ0E4VDFCO1NBOVRZLGNBQWM7MkZBQWQsY0FBYztrQkFOMUIsU0FBUzsrQkFDRSxVQUFVLGFBR1QsQ0FBQyxxQkFBcUIsQ0FBQztzT0E0RHpCLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFHRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNxQixJQUFJO3NCQUE5QixXQUFXO3VCQUFDLFlBQVk7Z0JBRVksTUFBTTtzQkFBMUMsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUcvQixjQUFjO3NCQURqQixLQUFLO3VCQUFDLGFBQWE7Z0JBT2hCLGFBQWE7c0JBRGhCLEtBQUs7dUJBQUMsWUFBWTtnQkFNZixVQUFVO3NCQURiLEtBQUs7Z0JBV0YsV0FBVztzQkFEZCxLQUFLO2dCQWNGLFNBQVM7c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIE9uRGVzdHJveSwgUmVuZGVyZXIyLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29uZmlnLFxuICBEbXNPYmplY3QsXG4gIERtc09iamVjdEF0dGFjaG1lbnQsXG4gIERtc1NlcnZpY2UsXG4gIE9iamVjdFR5cGUsXG4gIFN5c3RlbVNlcnZpY2UsXG4gIFRyYW5zbGF0ZVNlcnZpY2UsXG59IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge1BvcG91dFRyaWdnZXJQb3NpdGlvbiwgUG9wb3V0V2luZG93Q29uZmlnfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvcG9wb3V0JztcbmltcG9ydCB7ZnJvbUV2ZW50LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtGaWxlU2l6ZVBpcGV9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BpcGVzL2ZpbGVzaXplLnBpcGUnO1xuaW1wb3J0IHtQbHVnaW5zU2VydmljZX0gZnJvbSAnLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9hcGkvcGx1Z2lucy5zZXJ2aWNlJztcbmltcG9ydCB7Q29udGVudFByZXZpZXdTZXJ2aWNlfSBmcm9tICcuL2NvbnRlbnQtcHJldmlldy5zZXJ2aWNlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcblxuZXhwb3J0IGludGVyZmFjZSBWaWV3ZXJDb25maWcge1xuICBtaW1lVHlwZT86IHN0cmluZyB8IHN0cmluZ1tdO1xuICBmaWxlRXh0ZW5zaW9uPzogc3RyaW5nIHwgc3RyaW5nW107XG4gIHZpZXdlcjogc3RyaW5nO1xuICBlcnJvcj86IGJvb2xlYW47XG4gIHR5cGU/OiAnY29tcGFyZScgfCAnZXh0ZW5kJyB8ICdlcnJvcicgfCAnZGVmYXVsdCc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFByZXZpZXdGaWxlIHtcbiAgdXJpOiBzdHJpbmc7XG4gIHVyaVBkZjogc3RyaW5nO1xuICBtaW1ldHlwZTogc3RyaW5nO1xuICBtaW1lZ3JvdXA6IHN0cmluZztcbiAgc2l6ZTogbnVtYmVyO1xuICBwYXRoPzogc3RyaW5nO1xuICBmaWxlRXh0ZW5zaW9uPzogc3RyaW5nO1xuICBtZWRpYVR5cGVOYW1lPzogc3RyaW5nO1xufVxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1tZWRpYScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZWRpYS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21lZGlhLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW0NvbnRlbnRQcmV2aWV3U2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgTWVkaWFDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIHN0YXRpYyBWSURFT19WSUVXRVIgPSAndmlld2VyL3ZpZXcvYXBpL3ZpZGVvLz9wYXRoPSR7cGF0aH0mbWltZVR5cGU9JHttaW1lVHlwZX0mZmlsZUV4dGVuc2lvbj0ke2ZpbGVFeHRlbnNpb259Jmxhbmc9JHtsYW5nfSZ0aGVtZT0ke3RoZW1lfSc7XG4gIHN0YXRpYyBQREZfVklFV0VSID0gJ3ZpZXdlci92aWV3L2FwaS9wZGYvd2ViL3ZpZXdlci5odG1sP2ZpbGU9JnBhdGg9JHtwYXRofSZwYXRoUGRmPSR7cGF0aFBkZn0mbWltZVR5cGU9JHttaW1lVHlwZX0mZmlsZUV4dGVuc2lvbj0ke2ZpbGVFeHRlbnNpb259Jmxhbmc9JHtsYW5nfSZ0aGVtZT0ke3RoZW1lfSZjc3M9JTIzdG9vbGJhclZpZXdlclJpZ2h0JTIwJTIzcHJpbnQlN0JkaXNwbGF5JTNBYmxvY2shaW1wb3J0YW50JTNCJTdEJztcblxuICBwcml2YXRlIFNJWkVfTElNSVQgPSAxMDI0ICogMTAyNCAqIDEwOyAvLyAxME1CXG4gIHByaXZhdGUgcGRmanM6IGFueTtcbiAgbGF0ZXN0VXJpOiBzdHJpbmc7XG4gIHNsaWRlVXJpOiBzdHJpbmc7XG4gIHZpZXdlcjogYW55O1xuICBkbXNPYmplY3RUaXRsZTogc3RyaW5nO1xuICBwcml2YXRlIF9wcmV2aWV3VXJpOiBzdHJpbmc7XG4gIHByaXZhdGUgX2Rtc09iamVjdDogRG1zT2JqZWN0O1xuICBmaWxlU2l6ZVBpcGU6IEZpbGVTaXplUGlwZTtcbiAgY3VycmVudEluZGV4OiBudW1iZXI7XG4gIGF0dGFjaG1lbnRzOiBEbXNPYmplY3RBdHRhY2htZW50W10gPSBbXTtcbiAgYXR0YWNobWVudHNMb2FkaW5nOiBTdWJzY3JpcHRpb247XG4gIGF0dGFjaG1lbnRzU2hvd246IGJvb2xlYW47XG4gIHNlYXJjaFRlcm06IHN0cmluZztcbiAgbWVkaWFUeXBlOiBPYmplY3RUeXBlO1xuICBjdXN0b21Db25maWc6IGFueVtdID0gW107XG5cbiAgcG9wb3V0VHJpZ2dlclBvc2l0aW9uID0gUG9wb3V0VHJpZ2dlclBvc2l0aW9uLkJPVFRPTV9SSUdIVFxuICBwb3BvdXRXaW5kb3dDb25maWc6IFBvcG91dFdpbmRvd0NvbmZpZztcblxuXG5cblxuICBkZWZhdWx0Vmlld2VycyA9IFtcbiAgICB7XG4gICAgICBcIm1pbWVUeXBlXCI6IFtcImFwcGxpY2F0aW9uL2pzb25cIiwgXCJ0ZXh0L2pzb25cIiwgXCJ0ZXh0L3BsYWluXCIsIFwidGV4dC94bWxcIiwgXCJ0ZXh0L2phdmFcIiwgXCJ0ZXh0L2phdmFzY3JpcHRcIiwgXCJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0XCIsIFwidGV4dC9odG1sXCIsIFwidGV4dC9tYXJrZG93blwiLCBcInRleHQveC13ZWItbWFya2Rvd25cIiwgXCJ0ZXh0L3gtbWFya2Rvd25cIl0sXG4gICAgICBcInZpZXdlclwiOiBcInZpZXdlci92aWV3L2FwaS9tb25hY28vP3BhdGg9JHtwYXRofSZtaW1lVHlwZT0ke21pbWVUeXBlfSZmaWxlRXh0ZW5zaW9uPSR7ZmlsZUV4dGVuc2lvbn0mbGFuZz0ke2xhbmd9JnRoZW1lPSR7dGhlbWV9XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibWltZVR5cGVcIjogW1wiYXVkaW8vbXAzXCIsIFwiYXVkaW8vd2VibVwiLCBcImF1ZGlvL29nZ1wiLCBcImF1ZGlvL21wZWdcIiwgXCJ2aWRlby9tcDRcIiwgXCJ2aWRlby93ZWJtXCIsIFwidmlkZW8vb2dnXCIsIFwiYXBwbGljYXRpb24vb2dnXCJdLFxuICAgICAgXCJ2aWV3ZXJcIjogXCJ2aWV3ZXIvdmlldy9hcGkvdmlkZW8vP3BhdGg9JHtwYXRofSZtaW1lVHlwZT0ke21pbWVUeXBlfSZmaWxlRXh0ZW5zaW9uPSR7ZmlsZUV4dGVuc2lvbn0mbGFuZz0ke2xhbmd9JnRoZW1lPSR7dGhlbWV9XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibWltZVR5cGVcIjogW1wiaW1hZ2UvdGlmZlwiLCBcImltYWdlL2pwZWdcIiwgXCJpbWFnZS9wbmdcIiwgXCJpbWFnZS9hcG5nXCIsIFwiaW1hZ2UvZ2lmXCIsIFwiaW1hZ2Uvc3ZnK3htbFwiLCBcImltYWdlL3dlYnBcIl0sXG4gICAgICBcInZpZXdlclwiOiBcInZpZXdlci92aWV3L2FwaS9pbWcvP3BhdGg9JHtwYXRofSZtaW1lVHlwZT0ke21pbWVUeXBlfSZmaWxlRXh0ZW5zaW9uPSR7ZmlsZUV4dGVuc2lvbn0mbGFuZz0ke2xhbmd9JnRoZW1lPSR7dGhlbWV9XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibWltZVR5cGVcIjogW1wibWVzc2FnZS9yZmM4MjJcIiwgXCJhcHBsaWNhdGlvbi92bmQubXMtb3V0bG9va1wiXSxcbiAgICAgIFwidmlld2VyXCI6IFwidmlld2VyL3ZpZXcvYXBpL21haWwvP3BhdGg9JHtwYXRofSZtaW1lVHlwZT0ke21pbWVUeXBlfSZmaWxlRXh0ZW5zaW9uPSR7ZmlsZUV4dGVuc2lvbn0mbGFuZz0ke2xhbmd9JnRoZW1lPSR7dGhlbWV9XCJcbiAgICB9LFxuICAgIC8vIE9OTFkgYXBwbGllcyB0byBsb2NhbGhvc3QgZW52OyBmaXhlZCBlbWFpbCBjb3JzIGZvciBsb2NhbGhvc3QgdGVzdGluZ1xuICAgIHtcbiAgICAgIFwidHlwZVwiOiBcImV4dGVuZFwiLFxuICAgICAgXCJ2aWV3ZXJcIjogXCIoKSA9PiB7IGlmIChwYXJhbWV0ZXJzLnZpZXdlci5tYXRjaCgnL3ZpZXcvYXBpL21haWwvJykgJiYgcGFyYW1ldGVycy5wYXRoLm1hdGNoKCdsb2NhbGhvc3QnKSkgeyB2YXIgaG9zdCA9ICdsb2NhbGhvc3Q6NDIwMCc7IHZhciBjb3JzID0gJ2tvbGlicmlwcm9saWFudC5vcHRpbWFsLXN5c3RlbXMuZGUnOyBwYXJhbWV0ZXJzLnBhdGggPSBwYXJhbWV0ZXJzLnBhdGgucmVwbGFjZShob3N0LCBjb3JzKTsgcmV0dXJuIHBhcmFtZXRlcnMudmlld2VyICsgJyZjb3JzPScgKyBjb3JzO30gcmV0dXJuIHBhcmFtZXRlcnMudmlld2VyOyB9XCJcbiAgICB9LFxuICAgIC8vIFdlIG5lZWQgYW5vdGhlciBwYXRoUGRmIGZvciBlbWFpbCBhdHRhY2htZW50IGZpbGVzLiBUaGlzIHdpbGwgb25seSBjb21lIGluIHBsYWNlIGlmIHRoZSBtaW1ldHlwZSBpcyBwZGYgb3Igb25lIG9mIHRoZSBub3Qgc3VwcG9ydGVkIG9uZXMuICh2aWV3ZXIgYXR0YWNobWVudHMgJiBhcGkgYXR0YWNobWVudHMgY2FuIGJlIHBhcnNlZCBpbiBkaWZmZXJlbnQgb3JkZXIsIHNvIHdlIGhhdmUgdG8gbWF0Y2ggdGhlbSBieSBmaWxlbmFtZSlcbiAgICB7XCJ2aWV3ZXJcIjogXCIoKSA9PiB7dmFyIGF0dGFjaG1lbnQgPSBwYXJhbWV0ZXJzLnBhdGhQZGYubWF0Y2gobmV3IFJlZ0V4cCgnYXR0YWNobWVudD0oXFxcXFxcXFxkKyknKSk7IHZhciBhID0gYXR0YWNobWVudCAmJiBhcGkuY29udGVudC52aWV3ZXIoKS5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpZnJhbWUnKS5jb250ZW50RG9jdW1lbnQucXVlcnlTZWxlY3RvcignYVtkYXRhLXNyYyQ9XFxcIicgKyBhdHRhY2htZW50WzBdICsgJ1xcXCJdJyk7ICB2YXIgcGFyYW1zID0gYSAmJiAoYXBpLmNvbnRlbnQuYXR0YWNobWVudHMgfHwgW10pLmZpbmQoYXR0ID0+IGFwaS51dGlsLmRlY29kZUh0bWxDaGFyQ29kZXMoYXR0Lm5hbWUpID09PSBhLmdldEF0dHJpYnV0ZSgnZGF0YS1maWxlbmFtZScpKTsgaWYocGFyYW1zICYmIHBhcmFtcy5wcmV2aWV3VXJpKSB7IGRlYnVnZ2VyOyBwYXJhbWV0ZXJzLnBhdGhQZGYgPSBsb2NhdGlvbi5vcmlnaW4gKyBwYXJhbXMucHJldmlld1VyaTsgfSByZXR1cm4gcGFyYW1ldGVycy5kZWZhdWx0Vmlld2VyO31cIn0sXG4gICAge1wiZXJyb3JcIjogdHJ1ZSwgXCJ0eXBlXCI6IFwiZXJyb3JcIiwgXCJ2aWV3ZXJcIjogXCJ2aWV3ZXIvdmlldy9hcGkvZXJyb3IvP3BhdGg9JHtwYXRofSZtaW1lVHlwZT0ke21pbWVUeXBlfSZmaWxlRXh0ZW5zaW9uPSR7ZmlsZUV4dGVuc2lvbn0mbGFuZz0ke2xhbmd9JnRoZW1lPSR7dGhlbWV9XCJ9XG4gIF07XG5cbiAgaXNVbmRvY2tlZDogYm9vbGVhbjtcbiAgbG9hZGluZzogYm9vbGVhbjtcblxuICBASW5wdXQoKSB1bmRvY2tEaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGVuYWJsZUNsb3NlQnRuID0gZmFsc2U7XG4gIC8vIGJ5IGRlZmF1bHQsIHRoZSB2aWV3ZXIgaWdub3JlcyB0aGUgdmVyc2lvbiBvZiB0aGUgZG1zIG9iamVjdC4gVGhpcyB3aWxsIGFsd2F5cyBzaG93IHRoZSBsYXRlc3QgdmVyc2lvbi5cbiAgLy8gV2UgbmVlZCB0aGlzIHRvIGJlIGFibGUgdG8gcmVmcmVzaCB0aGUgdmlld2VyIGJlY2F1c2Ugb3RoZXJ3aXNlIHBkZmpzIHdvcmtlciB3aWxsIGZhaWwuXG4gIEBJbnB1dCgpIHVzZVZlcnNpb24gPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5vcGVuJykgb3BlbjtcblxuICBAVmlld0NoaWxkKCdpZnJhbWUnLCB7c3RhdGljOiB0cnVlfSkgaWZyYW1lO1xuXG4gIEBJbnB1dCgnYXR0YWNobWVudHMnKVxuICBzZXQgc2V0QXR0YWNobWVudHMoYXR0YWNobWVudHMpIHtcbiAgICB0aGlzLmF0dGFjaG1lbnRzID0gYXR0YWNobWVudHM7XG4gICAgdGhpcy5hdHRhY2htZW50c1Nob3duID0gZmFsc2U7XG4gIH1cblxuICBASW5wdXQoJ3NlYXJjaFRlcm0nKVxuICBzZXQgc2V0U2VhcmNoVGVybShzZWFyY2hUZXJtKSB7XG4gICAgdGhpcy5zZWFyY2hUZXJtID0gc2VhcmNoVGVybSB8fCAnJztcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBwcmV2aWV3VXJpKHVyaTogc3RyaW5nKSB7XG4gICAgdGhpcy5fcHJldmlld1VyaSA9IHVyaTtcbiAgICB0aGlzLnRvZ2dsZVZpZXdlcigpO1xuICB9XG5cbiAgZ2V0IHByZXZpZXdVcmkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZXZpZXdVcmk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgcHJldmlld0ZpbGUoZmlsZTogUHJldmlld0ZpbGUpIHtcbiAgICBpZiAoZmlsZSkge1xuICAgICAgdGhpcy52aWV3ZXIgPSB0aGlzLmdldFZpZXdlcihmaWxlKTtcbiAgICAgIHRoaXMubWVkaWFUeXBlID0gZmlsZS5tZWRpYVR5cGVOYW1lICYmIHRoaXMuc3lzdGVtLmdldE9iamVjdFR5cGUoZmlsZS5tZWRpYVR5cGVOYW1lKTtcbiAgICAgIHRoaXMucHJldmlld1VyaSA9IHRoaXMudmlld2VyLnByZXZpZXdVcmk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJldmlld1VyaSA9ICcnO1xuICAgICAgdGhpcy5wb3BvdXRXaW5kb3dDb25maWcgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHRoaXMuX3NldFBvcG91dFdpbmRvd0NvbmZpZyghZmlsZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgZG1zT2JqZWN0KGl0ZW06IERtc09iamVjdCkge1xuICAgIHRoaXMuX2Rtc09iamVjdCA9IGl0ZW07XG4gICAgdGhpcy5kbXNPYmplY3RUaXRsZSA9IGl0ZW0udGl0bGUgfHwgJy4uLic7XG5cblxuICAgIHRoaXMuc2V0QXR0YWNobWVudHMgPSBbXTtcbiAgICBpZiAodGhpcy5hdHRhY2htZW50c0xvYWRpbmcpIHtcbiAgICAgIC8vIGNhbmNlbCBhbnkgcGVuZGluZyByZXF1ZXN0c1xuICAgICAgdGhpcy5hdHRhY2htZW50c0xvYWRpbmcudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKGl0ZW0uY29udGVudCAmJiBpdGVtLmNvbnRlbnQuY29udGVudHMgJiYgaXRlbS5jb250ZW50LmNvbnRlbnRzLmxlbmd0aCkge1xuICAgICAgY29uc3QgZmlsZSA9IGl0ZW0uY29udGVudC5jb250ZW50c1swXSB8fCB7fTtcblxuICAgICAgdGhpcy5wcmV2aWV3RmlsZSA9IHtcbiAgICAgICAgdXJpOiB0aGlzLmRtcy5nZXRQcmV2aWV3KGl0ZW0uY29udGVudC5pZCwgaXRlbS5jb250ZW50LnR5cGUsIHRoaXMudXNlVmVyc2lvbiA/IGl0ZW0udmVyc2lvbiA6IG51bGwsIHVuZGVmaW5lZCwgdHJ1ZSksXG4gICAgICAgIHVyaVBkZjogdGhpcy5kbXMuZ2V0UHJldmlldyhpdGVtLmNvbnRlbnQuaWQsIGl0ZW0uY29udGVudC50eXBlLCB0aGlzLnVzZVZlcnNpb24gPyBpdGVtLnZlcnNpb24gOiBudWxsLCAnUERGJywgdHJ1ZSksXG4gICAgICAgIG1pbWV0eXBlOiBmaWxlLm1pbWV0eXBlLFxuICAgICAgICBtaW1lZ3JvdXA6IGZpbGUubWltZWdyb3VwLFxuICAgICAgICBzaXplOiBmaWxlLnNpemUsXG4gICAgICAgIHBhdGg6IGZpbGUucGF0aCxcbiAgICAgICAgbWVkaWFUeXBlTmFtZTogaXRlbS50eXBlTmFtZVxuICAgICAgfTtcblxuICAgICAgaWYgKCEhZmlsZS5taW1lZ3JvdXA/Lm1hdGNoKC9ebWFpbHxvY3RldC1zdHJlYW0vKSAmJiB0aGlzLnZpZXdlci52aWV3ZXIubWF0Y2goJy92aWV3L2FwaS9wZGYvJykpIHtcbiAgICAgICAgdGhpcy5zbGlkZVVyaSA9IHRoaXMuZG1zLmdldFNsaWRlKGl0ZW0uY29udGVudC5pZCwgaXRlbS5jb250ZW50LnR5cGUsIHRoaXMudXNlVmVyc2lvbiA/IGl0ZW0udmVyc2lvbiA6IG51bGwsIDI1Nik7XG4gICAgICAgIHRoaXMuYXR0YWNobWVudHNMb2FkaW5nID0gdGhpcy5kbXMuZ2V0QXR0YWNobWVudHMoaXRlbSkuc3Vic2NyaWJlKGEgPT4gdGhpcy5zZXRBdHRhY2htZW50cyA9IGEpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy52aWV3ZXIudmlld2VyLm1hdGNoKCcvdmlldy9hcGkvbWFpbC8nKSkge1xuICAgICAgICB0aGlzLmRtcy5nZXRBdHRhY2htZW50cyhpdGVtKS5zdWJzY3JpYmUoYSA9PiB3aW5kb3cuYXBpLmNvbnRlbnQuYXR0YWNobWVudHMgPSBhKTtcbiAgICAgIH1cblxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnByZXZpZXdVcmkgPSAnJztcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZG1zOiBEbXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHN5c3RlbTogU3lzdGVtU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnLFxuICAgIHByaXZhdGUgcGx1Z2luc1NlcnZpY2U6IFBsdWdpbnNTZXJ2aWNlKSB7XG4gICAgdGhpcy5TSVpFX0xJTUlUID0gdGhpcy5jb25maWcuZ2V0UmF3KCdwcmV2aWV3LmZpbGVTaXplTGltaXQnKSB8fCB0aGlzLlNJWkVfTElNSVQ7XG4gICAgdGhpcy5jdXN0b21Db25maWcgPSAodGhpcy5jb25maWcuZ2V0UmF3KCdwcmV2aWV3LnZpZXdlcnMnKSB8fCBbXSkuY29uY2F0KHRoaXMuZGVmYXVsdFZpZXdlcnMpO1xuXG4gICAgdGhpcy5wbHVnaW5zU2VydmljZS5hcGkuY29udGVudC5jYXRjaEVycm9yKCkuc3Vic2NyaWJlKChldnQ6IGFueSkgPT4ge1xuICAgICAgY29uc3Qge2Vyciwgd2luLCBwYXJhbWV0ZXJzfSA9IGV2dC5kYXRhO1xuICAgICAgY29uc3QgdXJpID0gdGhpcy5wbHVnaW5zU2VydmljZS5hcHBseUZ1bmN0aW9uKHRoaXMuY3VzdG9tQ29uZmlnPy5maW5kKCh2KSA9PiB2LmVycm9yKT8udmlld2VyLCAnYXBpLCBlcnIsIHdpbiwgcGFyYW1ldGVycycsIFtcbiAgICAgICAgdGhpcy5wbHVnaW5zU2VydmljZS5hcGksXG4gICAgICAgIGVycixcbiAgICAgICAgd2luLFxuICAgICAgICBwYXJhbWV0ZXJzXG4gICAgICBdKTtcbiAgICAgIHVyaSAmJiB3aW4gJiYgKHdpbi5sb2NhdGlvbi5ocmVmID0gdGhpcy5yZXNvbHZlVXJpKHVyaSwgcGFyYW1ldGVycykpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0UG9wb3V0V2luZG93Q29uZmlnKHJlc2V0PzogYm9vbGVhbikge1xuICAgIGNvbnN0IHdpbkluc2V0ID0gMjA7XG4gICAgdGhpcy5wb3BvdXRXaW5kb3dDb25maWcgPSAhcmVzZXQgPyB7XG4gICAgICB0aXRsZTogdGhpcy5kbXNPYmplY3RUaXRsZSxcbiAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgIGJsb2NrU3RhcnQ6IHdpbkluc2V0LFxuICAgICAgICBpbmxpbmVTdGFydDogd2luZG93LnNjcmVlbi53aWR0aCAvIDJcbiAgICAgIH0sIHNpemU6IHtcbiAgICAgICAgd2lkdGg6IHdpbmRvdy5zY3JlZW4ud2lkdGggLyAyIC0gd2luSW5zZXQsXG4gICAgICAgIGhlaWdodDogd2luZG93LnNjcmVlbi5oZWlnaHQgLSB3aW5JbnNldCAqIDIsXG4gICAgICB9XG4gICAgfSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHNlbGVjdEF0dGFjaG1lbnQoYXR0YWNobWVudD86IGFueSkge1xuICAgIGNvbnN0IHByZXZpZXdVcmkgPSBhdHRhY2htZW50ICYmIHRoaXMuZ2V0Vmlld2VyKHt1cmlQZGY6IGF0dGFjaG1lbnQucHJldmlld1VyaX0gYXMgUHJldmlld0ZpbGUpLnByZXZpZXdVcmk7XG4gICAgdGhpcy5sb2FkRG9jdW1lbnQocHJldmlld1VyaSB8fCB0aGlzLnByZXZpZXdVcmksIHRydWUpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZVZpZXdlcigpIHtcbiAgICB0aGlzLm9wZW4gPSAhIXRoaXMucHJldmlld1VyaTtcbiAgICBpZiAoISF0aGlzLnByZXZpZXdVcmkpIHtcbiAgICAgIHRoaXMubG9hZERvY3VtZW50KHRoaXMucHJldmlld1VyaSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZnJlc2goKSB7XG4gICAgdGhpcy5sb2FkRG9jdW1lbnQodGhpcy5wcmV2aWV3VXJpLCB0cnVlKTtcbiAgfVxuXG4gIGdldFZpZXdlcihmaWxlOiBQcmV2aWV3RmlsZSk6IGFueSB7XG4gICAgY29uc3QgaXNWaWRlbyA9ICEhZmlsZS5taW1lZ3JvdXA/Lm1hdGNoKC9eYXVkaW98XnZpZGVvLyk7XG4gICAgY29uc3QgZGVmYXVsdFZpZXdlciA9IGlzVmlkZW8gPyBNZWRpYUNvbXBvbmVudC5WSURFT19WSUVXRVIgOiBNZWRpYUNvbXBvbmVudC5QREZfVklFV0VSO1xuICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlLmZpbGVFeHRlbnNpb24gfHwgKGZpbGUucGF0aD8uaW5jbHVkZXMoJy4nKSA/IGZpbGUucGF0aC5zcGxpdCgnLicpLnBvcCgpIDogJycpO1xuICAgIGNvbnN0IG1pbWVUeXBlID0gZmlsZS5taW1ldHlwZTtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmN1c3RvbUNvbmZpZy5maW5kKChjOiBWaWV3ZXJDb25maWcpID0+IHtcbiAgICAgIGNvbnN0IG1hdGNoTVQgPSAhYy5taW1lVHlwZSB8fCAodHlwZW9mIGMubWltZVR5cGUgPT09ICdzdHJpbmcnID8gW2MubWltZVR5cGVdIDogYy5taW1lVHlwZSkuaW5jbHVkZXMobWltZVR5cGU/LnRvTG93ZXJDYXNlKCkpO1xuICAgICAgY29uc3QgbWF0Y2hGRSA9ICFjLmZpbGVFeHRlbnNpb24gfHwgKHR5cGVvZiBjLmZpbGVFeHRlbnNpb24gPT09ICdzdHJpbmcnID8gW2MuZmlsZUV4dGVuc2lvbl0gOiBjLmZpbGVFeHRlbnNpb24pLmluY2x1ZGVzKChmaWxlRXh0ZW5zaW9uKS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIHJldHVybiBtYXRjaE1UICYmIG1hdGNoRkUgJiYgKCFjLnR5cGUgfHwgYy50eXBlID09PSAnZGVmYXVsdCcpO1xuICAgIH0pO1xuICAgIGNvbnN0IHBhcmFtZXRlcnMgPSB7XG4gICAgICBmaWxlLFxuICAgICAgcGF0aDogbG9jYXRpb24ub3JpZ2luICsgZmlsZS51cmksXG4gICAgICBwYXRoUGRmOiBsb2NhdGlvbi5vcmlnaW4gKyBmaWxlLnVyaVBkZixcbiAgICAgIHZpZXdlcjogY29uZmlnPy52aWV3ZXIgfHwgZGVmYXVsdFZpZXdlcixcbiAgICAgIGxvYWQ6IGNvbmZpZz8ubG9hZCxcbiAgICAgIGZpbGVFeHRlbnNpb24sXG4gICAgICBtaW1lVHlwZSxcbiAgICAgIHRoZW1lOiAnJyxcbiAgICAgIGRlZmF1bHRWaWV3ZXIsXG4gICAgICBwcmV2aWV3VXJpOiAnJ1xuICAgIH07XG4gICAgcGFyYW1ldGVycy52aWV3ZXIgPSB0aGlzLnBsdWdpbnNTZXJ2aWNlLmFwcGx5RnVuY3Rpb24ocGFyYW1ldGVycy52aWV3ZXIsICdjb21wb25lbnQsIGRtc09iamVjdCwgcGFyYW1ldGVycycsIFt0aGlzLCB0aGlzLl9kbXNPYmplY3QsIHBhcmFtZXRlcnNdKSB8fCBkZWZhdWx0Vmlld2VyO1xuXG4gICAgY29uc3QgZXh0ZW5kID0gdGhpcy5jdXN0b21Db25maWcuZmluZCgoYykgPT4gYy50eXBlID09PSAnZXh0ZW5kJyk7XG4gICAgaWYgKGV4dGVuZCkgcGFyYW1ldGVycy52aWV3ZXIgPSB0aGlzLnBsdWdpbnNTZXJ2aWNlLmFwcGx5RnVuY3Rpb24oZXh0ZW5kLnZpZXdlciwgJ2NvbXBvbmVudCwgZG1zT2JqZWN0LCBwYXJhbWV0ZXJzJywgW3RoaXMsIHRoaXMuX2Rtc09iamVjdCwgcGFyYW1ldGVyc10pO1xuXG4gICAgcGFyYW1ldGVycy5wcmV2aWV3VXJpID0gdGhpcy5yZXNvbHZlVXJpKHBhcmFtZXRlcnMudmlld2VyLCBwYXJhbWV0ZXJzKTtcbiAgICByZXR1cm4gcGFyYW1ldGVycztcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVVyaSh2aWV3ZXI6IHN0cmluZywgcGFyYW1ldGVyczogYW55KSB7XG4gICAgY29uc3Qgb3JpZ2luID0gdmlld2VyLnN0YXJ0c1dpdGgoJ2h0dHAnKSA/ICcnIDogd2luZG93LmxvY2F0aW9uLm9yaWdpbiArICh0aGlzLmNvbmZpZy5nZXRSYXcoJ3VyaS5jb250ZXh0UGF0aCcpIHx8ICcvJyk7XG5cbiAgICByZXR1cm4gb3JpZ2luICsgdmlld2VyXG4gICAgICAucmVwbGFjZSgnJHtvcmlnaW5hbFBhdGh9JywgcGFyYW1ldGVycy5wYXRoKVxuICAgICAgLnJlcGxhY2UoJyR7cGF0aH0nLCBlbmNvZGVVUklDb21wb25lbnQocGFyYW1ldGVycy5wYXRoKSlcbiAgICAgIC5yZXBsYWNlKCcke3BhdGhQZGZ9JywgZW5jb2RlVVJJQ29tcG9uZW50KHBhcmFtZXRlcnMucGF0aFBkZikpXG4gICAgICAucmVwbGFjZSgnJHtmaWxlRXh0ZW5zaW9ufScsIGVuY29kZVVSSUNvbXBvbmVudChwYXJhbWV0ZXJzLmZpbGVFeHRlbnNpb24pKVxuICAgICAgLnJlcGxhY2UoJyR7bWltZVR5cGV9JywgZW5jb2RlVVJJQ29tcG9uZW50KHBhcmFtZXRlcnMubWltZVR5cGUpKVxuICAgICAgLnJlcGxhY2UoJyR7dGhlbWV9JywgZW5jb2RlVVJJQ29tcG9uZW50KHBhcmFtZXRlcnMudGhlbWUpKVxuICAgICAgLnJlcGxhY2UoJyR7bGFuZ30nLCBDb250ZW50UHJldmlld1NlcnZpY2UubWFwTGFuZyh0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZykpO1xuICB9XG5cbiAgbG9hZERvY3VtZW50KHVyaTogc3RyaW5nLCBmb3JjZT86IGJvb2xlYW4pIHtcbiAgICBpZiAoIWZvcmNlICYmICghdXJpIHx8ICh1cmkgPT09IHRoaXMubGF0ZXN0VXJpKSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5sYXRlc3RVcmkgPSB1cmkgfHwgJyc7XG5cbiAgICBpZiAodGhpcy5wcmV2aWV3VXJpKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50LCAnc3JjJywgdGhpcy5sYXRlc3RVcmkpO1xuICAgICAgY29uc3Qgb25sb2FkID0gKCkgPT4gdGhpcy5wbHVnaW5zU2VydmljZS5hcHBseUZ1bmN0aW9uKHRoaXMudmlld2VyPy5sb2FkLCAnaWZyYW1lLCBjb21wb25lbnQnLCBbdGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudCwgdGhpc10pO1xuICAgICAgdGhpcy5pZnJhbWVJbml0KHRoaXMuaWZyYW1lLm5hdGl2ZUVsZW1lbnQsIHRoaXMudmlld2VyPy5sb2FkICYmIG9ubG9hZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuaWZyYW1lLm5hdGl2ZUVsZW1lbnQsICdzcmMnLCB0aGlzLmxhdGVzdFVyaSk7XG4gICAgICBjb25zdCBvbmxvYWQgPSAoKSA9PiB0aGlzLnBsdWdpbnNTZXJ2aWNlLmFwcGx5RnVuY3Rpb24odGhpcy52aWV3ZXI/LmxvYWQsICdpZnJhbWUsIGNvbXBvbmVudCcsIFt0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50LCB0aGlzXSk7XG4gICAgICB0aGlzLmlmcmFtZUluaXQodGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudCwgdGhpcy52aWV3ZXI/LmxvYWQgJiYgb25sb2FkKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3VzdG9tIHNlYXJjaCBpbnNpZGUgUERGLkpTIGJhc2VkIG9uIHNlYXJjaCB0ZXJtXG4gICAqIEBwYXJhbSB0ZXJtIHNlYXJjaCB0ZXJtXG4gICAqIEBwYXJhbSB3aW4gaWZyYW1lIHdpbmRvd1xuICAgKi9cbiAgcHJpdmF0ZSBzZWFyY2hQREYodGVybSA9ICcnLCB3aW46IGFueSkge1xuICAgIC8vIHJlbW92ZSBhbGwgc3BlY2lhbCBjaGFyYWN0ZXJzXG4gICAgdGVybSA9ICh0ZXJtIHx8ICcnKS5yZXBsYWNlKC9bXFxcInxcXCpdL2csICcnKS50cmltKCk7XG4gICAgaWYgKHRlcm0gJiYgd2luPy5QREZWaWV3ZXJBcHBsaWNhdGlvbj8uYXBwQ29uZmlnPy5maW5kQmFyKSB7XG4gICAgICB3aW4uUERGVmlld2VyQXBwbGljYXRpb24uYXBwQ29uZmlnLmZpbmRCYXIuZmluZEZpZWxkLnZhbHVlID0gdGVybTtcbiAgICAgIHdpbi5QREZWaWV3ZXJBcHBsaWNhdGlvbi5hcHBDb25maWcuZmluZEJhci5oaWdobGlnaHRBbGxDaGVja2JveC5jaGVja2VkID0gdHJ1ZTtcbiAgICAgIHdpbi5QREZWaWV3ZXJBcHBsaWNhdGlvbi5hcHBDb25maWcuZmluZEJhci5jYXNlU2Vuc2l0aXZlQ2hlY2tib3guY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgLy8gdHJpZ2dlciBmaW5kIGV2ZW50IG9uIHBkZi5qcyBsb2FkXG4gICAgICB3aW4uUERGVmlld2VyQXBwbGljYXRpb24uaW5pdGlhbGl6ZWRQcm9taXNlPy50aGVuKCgpID0+IHdpbi5QREZWaWV3ZXJBcHBsaWNhdGlvbi5maW5kQmFyLmRpc3BhdGNoRXZlbnQoKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwcmV2ZW50RHJvcEV2ZW50KHdpbjogYW55KSB7XG4gICAgaWYgKHdpbj8ubG9jYXRpb24/Lm9yaWdpbiA9PT0gd2luZG93LmxvY2F0aW9uLm9yaWdpbikge1xuICAgICAgd2luPy5kb2N1bWVudD8uYWRkRXZlbnRMaXN0ZW5lcignZHJvcCcsIChlKSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpKTtcbiAgICAgIC8vIGRpc3BhY2ggZHJhZyAmIGRyb3AgZXZlbnRzIHRvIG1haW4gd2luZG93XG4gICAgICB3aW4/LmRvY3VtZW50Py5hZGRFdmVudExpc3RlbmVyKCdkcmFnZW50ZXInLCAoZSkgPT4ge1xuICAgICAgICB3aW5kb3cuZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRHJhZ0V2ZW50KCdkcmFnZW50ZXInLCBlKSk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gd2luZG93LmRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IERyYWdFdmVudCgnZHJhZ2xlYXZlJywgZSkpLCAxMCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBpZnJhbWVJbml0KGlmcmFtZSA9IHRoaXMuaWZyYW1lLCBvbmxvYWQ/OiBGdW5jdGlvbikge1xuICAgIGlmIChpZnJhbWUpIHtcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICBpZnJhbWUuX2luaXQgfHwgZnJvbUV2ZW50KGlmcmFtZSwgJ2xvYWQnKVxuICAgICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgd2luID0gdGhpcy5zZXRBcGkoaWZyYW1lKTtcbiAgICAgICAgICBvbmxvYWQgJiYgb25sb2FkKCk7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaFBERih0aGlzLnNlYXJjaFRlcm0sIHdpbik7XG4gICAgICAgICAgICB0aGlzLnByZXZlbnREcm9wRXZlbnQod2luKTtcbiAgICAgICAgICB9LCAxMDApO1xuICAgICAgICB9KTtcbiAgICAgIGlmcmFtZS5faW5pdCA9ICEhdGhpcy5zZXRBcGkoaWZyYW1lKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEFwaShpZnJhbWU6IGFueSkge1xuICAgIC8vIHNldCBhcGkgdG8gaWZyYW1lIHdpbmRvd1xuICAgIGNvbnN0IHdpbiA9IGlmcmFtZT8uY29udGVudFdpbmRvdyB8fCBpZnJhbWU7XG4gICAgd2luWydhcGknXSA9IHdpbmRvd1snYXBpJ107XG4gICAgaWYgKHdpblsnYXBpJ10/LmNvbnRlbnQpIHtcbiAgICAgIHdpblsnYXBpJ10uY29udGVudC5yZXNvbHZlVmlld2VyUGFyYW1zID0gKHBhcmFtZXRlcnM6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCB1cmkgPSBwYXJhbWV0ZXJzLnBhdGgucmVwbGFjZShsb2NhdGlvbi5vcmlnaW4sICcnKTtcbiAgICAgICAgY29uc3Qgdmlld2VyID0gdGhpcy5nZXRWaWV3ZXIoe3VyaSwgbWltZXR5cGU6IHBhcmFtZXRlcnMubWltZVR5cGUsIGZpbGVFeHRlbnNpb246IHBhcmFtZXRlcnMuZmlsZUV4dGVuc2lvbiwgdXJpUGRmOiB1cmksIG1pbWVncm91cDogJycsIHNpemU6IDF9KTtcbiAgICAgICAgcmV0dXJuIHt1cmk6IHZpZXdlci5wcmV2aWV3VXJpIHx8IHBhcmFtZXRlcnMucGF0aH07XG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gd2luO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gIH1cblxufVxuIiwiPGRpdiBbaGlkZGVuXT1cIiFvcGVuXCI+XG4gIDwhLS0gYXR0YWNobWVudHMgb3ZlcmxheSAtLT5cbiAgPGRpdiBjbGFzcz1cImF0dGFjaG1lbnRzXCIgKm5nSWY9XCJhdHRhY2htZW50cz8ubGVuZ3RoXCJcbiAgICBbbmdDbGFzc109XCJ7bm90bWFpbjogbGF0ZXN0VXJpICE9PSBwcmV2aWV3VXJpICYmICFhdHRhY2htZW50c1Nob3duLCBhY3RpdmU6IGF0dGFjaG1lbnRzU2hvd259XCJcbiAgICAoZW9PdXRzaWRlQ2xpY2spPVwiYXR0YWNobWVudHNTaG93biA9IGZhbHNlXCI+XG4gICAgPGRpdiBjbGFzcz1cImF0dGFjaG1lbnRzLWxpc3RcIiAqbmdJZj1cImF0dGFjaG1lbnRzU2hvd25cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhdHRhY2htZW50IG1haW5cIiAoY2xpY2spPVwic2VsZWN0QXR0YWNobWVudChudWxsKVwiIFtuZ0NsYXNzXT1cIntjdXJyZW50OiBsYXRlc3RVcmkgPT09IHByZXZpZXdVcml9XCI+e3tkbXNPYmplY3RUaXRsZX19PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudFwiICpuZ0Zvcj1cImxldCBhIG9mIGF0dGFjaG1lbnRzXCIgKGNsaWNrKT1cInNlbGVjdEF0dGFjaG1lbnQoYSlcIiBbbmdDbGFzc109XCJ7Y3VycmVudDogbGF0ZXN0VXJpID09PSBhLnByZXZpZXdVcml9XCI+XG4gICAgICAgIHt7YS5uYW1lfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGVvLWljb24gY2xhc3M9XCJidXR0b25cIiBbYmFkZ2VdPVwiYXR0YWNobWVudHM/Lmxlbmd0aFwiIChjbGljayk9XCJhdHRhY2htZW50c1Nob3duID0gIWF0dGFjaG1lbnRzU2hvd25cIlxuICAgICAgW2ljb25TcmNdPVwiYXR0YWNobWVudHNTaG93biA/ICdhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2NsZWFyLnN2ZycgOiAnYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19hdHRhY2htZW50LnN2ZydcIj48L2VvLWljb24+XG4gIDwvZGl2PlxuXG4gIDx5dmMtcG9wb3V0XG4gIFtwb3BvdXRXaW5kb3dDb25maWddPVwicG9wb3V0V2luZG93Q29uZmlnXCJcbiAgW3RyaWdnZXJQb3NpdGlvbl09XCJwb3BvdXRUcmlnZ2VyUG9zaXRpb25cIiBbZGlzYWJsZWRdPVwidW5kb2NrRGlzYWJsZWRcIj5cblxuICAgIDxkaXYgY2xhc3M9XCJwcmV2aWV3LWNvbnRhaW5lclwiIFtzdHlsZS5vdmVyZmxvd109XCInaGlkZGVuJ1wiPlxuICAgICAgPGlmcmFtZSBbaGlkZGVuXT1cImlzVW5kb2NrZWQgfHwgbG9hZGluZ1wiICNpZnJhbWUgaGVpZ2h0PVwiMTAwJVwiIHdpZHRoPVwiMTAwJVwiIGZyYW1lYm9yZGVyPVwiMFwiPjwvaWZyYW1lPlxuICAgICAgPGRpdiBjbGFzcz1cImxvYWRlci1vdmVybGF5X19tYXNrXCIgKm5nSWY9XCJsb2FkaW5nXCI+XG4gICAgICAgIDxlby1sb2FkaW5nLXNwaW5uZXIgY2xhc3M9XCJpZnJhbWVfX2xvYWRlclwiPjwvZW8tbG9hZGluZy1zcGlubmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2xpZGVcIiAqbmdJZj1cImlzVW5kb2NrZWRcIj5cbiAgICAgICAgPGVvLWljb24gKm5nSWY9XCJtZWRpYVR5cGVcIiBbb2JqZWN0VHlwZV09XCJtZWRpYVR5cGVcIj48L2VvLWljb24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC95dmMtcG9wb3V0PlxuPC9kaXY+XG5cbjxkaXYgW2hpZGRlbl09XCJvcGVuXCIgY2xhc3M9XCJlbXB0eS1jb250YWluZXJcIj5cbiAgPGVvLWljb24gY2xhc3M9XCJub2ZpbGVcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19uby1maWxlLnN2ZydcIj48L2VvLWljb24+XG48L2Rpdj5cbiJdfQ==
314
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvbWVkaWEvbWVkaWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvbWVkaWEvbWVkaWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUF3QixTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFVNUcsT0FBTyxFQUFDLHFCQUFxQixFQUFxQixNQUFNLDJCQUEyQixDQUFDO0FBQ3BGLE9BQU8sRUFBQyxTQUFTLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFLN0MsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDaEUsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7O0FBMEI1RCxJQUFNLGNBQWMsc0JBQXBCLE1BQU0sY0FBYztJQW9FekIsSUFDSSxjQUFjLENBQUMsV0FBVztRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUNJLGFBQWEsQ0FBQyxVQUFVO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFDSSxVQUFVLENBQUMsR0FBVztRQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFDSSxXQUFX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c3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBSZW5kZXJlcjIsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb25maWcsXG4gIERtc09iamVjdCxcbiAgRG1zT2JqZWN0QXR0YWNobWVudCxcbiAgRG1zU2VydmljZSxcbiAgT2JqZWN0VHlwZSxcbiAgU3lzdGVtU2VydmljZSxcbiAgVHJhbnNsYXRlU2VydmljZSxcbn0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7UG9wb3V0VHJpZ2dlclBvc2l0aW9uLCBQb3BvdXRXaW5kb3dDb25maWd9IGZyb20gJ0B5dXV2aXMvY29tcG9uZW50cy9wb3BvdXQnO1xuaW1wb3J0IHtmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0ZpbGVTaXplUGlwZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGlwZXMvZmlsZXNpemUucGlwZSc7XG5pbXBvcnQge1BsdWdpbnNTZXJ2aWNlfSBmcm9tICcuLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2FwaS9wbHVnaW5zLnNlcnZpY2UnO1xuaW1wb3J0IHtDb250ZW50UHJldmlld1NlcnZpY2V9IGZyb20gJy4vY29udGVudC1wcmV2aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdlckNvbmZpZyB7XG4gIG1pbWVUeXBlPzogc3RyaW5nIHwgc3RyaW5nW107XG4gIGZpbGVFeHRlbnNpb24/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgdmlld2VyOiBzdHJpbmc7XG4gIGVycm9yPzogYm9vbGVhbjtcbiAgdHlwZT86ICdjb21wYXJlJyB8ICdleHRlbmQnIHwgJ2Vycm9yJyB8ICdkZWZhdWx0Jztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJldmlld0ZpbGUge1xuICB1cmk6IHN0cmluZztcbiAgdXJpUGRmOiBzdHJpbmc7XG4gIG1pbWV0eXBlOiBzdHJpbmc7XG4gIG1pbWVncm91cDogc3RyaW5nO1xuICBzaXplOiBudW1iZXI7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIGZpbGVFeHRlbnNpb24/OiBzdHJpbmc7XG4gIG1lZGlhVHlwZU5hbWU/OiBzdHJpbmc7XG59XG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLW1lZGlhJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lZGlhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVkaWEuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbQ29udGVudFByZXZpZXdTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBNZWRpYUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgc3RhdGljIFZJREVPX1ZJRVdFUiA9ICd2aWV3ZXIvdmlldy9hcGkvdmlkZW8vP3BhdGg9JHtwYXRofSZtaW1lVHlwZT0ke21pbWVUeXBlfSZmaWxlRXh0ZW5zaW9uPSR7ZmlsZUV4dGVuc2lvbn0mbGFuZz0ke2xhbmd9JnRoZW1lPSR7dGhlbWV9JztcbiAgc3RhdGljIFBERl9WSUVXRVIgPSAndmlld2VyL3ZpZXcvYXBpL3BkZi93ZWIvdmlld2VyLmh0bWw/ZmlsZT0mcGF0aD0ke3BhdGh9JnBhdGhQZGY9JHtwYXRoUGRmfSZtaW1lVHlwZT0ke21pbWVUeXBlfSZmaWxlRXh0ZW5zaW9uPSR7ZmlsZUV4dGVuc2lvbn0mbGFuZz0ke2xhbmd9JnRoZW1lPSR7dGhlbWV9JmNzcz0lMjN0b29sYmFyVmlld2VyUmlnaHQlMjAlMjNwcmludCU3QmRpc3BsYXklM0FibG9jayFpbXBvcnRhbnQlM0IlN0QnO1xuXG4gIHByaXZhdGUgU0laRV9MSU1JVCA9IDEwMjQgKiAxMDI0ICogMTA7IC8vIDEwTUJcbiAgcHJpdmF0ZSBwZGZqczogYW55O1xuICBsYXRlc3RVcmk6IHN0cmluZztcbiAgc2xpZGVVcmk6IHN0cmluZztcbiAgdmlld2VyOiBhbnk7XG4gIGRtc09iamVjdFRpdGxlOiBzdHJpbmc7XG4gIHByaXZhdGUgX3ByZXZpZXdVcmk6IHN0cmluZztcbiAgcHJpdmF0ZSBfZG1zT2JqZWN0OiBEbXNPYmplY3Q7XG4gIGZpbGVTaXplUGlwZTogRmlsZVNpemVQaXBlO1xuICBjdXJyZW50SW5kZXg6IG51bWJlcjtcbiAgYXR0YWNobWVudHM6IERtc09iamVjdEF0dGFjaG1lbnRbXSA9IFtdO1xuICBhdHRhY2htZW50c0xvYWRpbmc6IFN1YnNjcmlwdGlvbjtcbiAgYXR0YWNobWVudHNTaG93bjogYm9vbGVhbjtcbiAgc2VhcmNoVGVybTogc3RyaW5nO1xuICBtZWRpYVR5cGU6IE9iamVjdFR5cGU7XG4gIGN1c3RvbUNvbmZpZzogYW55W10gPSBbXTtcblxuICBwb3BvdXRUcmlnZ2VyUG9zaXRpb24gPSBQb3BvdXRUcmlnZ2VyUG9zaXRpb24uQk9UVE9NX1JJR0hUXG4gIHBvcG91dFdpbmRvd0NvbmZpZzogUG9wb3V0V2luZG93Q29uZmlnO1xuXG5cblxuXG4gIGRlZmF1bHRWaWV3ZXJzID0gW1xuICAgIHtcbiAgICAgIFwibWltZVR5cGVcIjogW1wiYXBwbGljYXRpb24vanNvblwiLCBcInRleHQvanNvblwiLCBcInRleHQvcGxhaW5cIiwgXCJ0ZXh0L3htbFwiLCBcInRleHQvamF2YVwiLCBcInRleHQvamF2YXNjcmlwdFwiLCBcImFwcGxpY2F0aW9uL2phdmFzY3JpcHRcIiwgXCJ0ZXh0L2h0bWxcIiwgXCJ0ZXh0L21hcmtkb3duXCIsIFwidGV4dC94LXdlYi1tYXJrZG93blwiLCBcInRleHQveC1tYXJrZG93blwiXSxcbiAgICAgIFwidmlld2VyXCI6IFwidmlld2VyL3ZpZXcvYXBpL21vbmFjby8/cGF0aD0ke3BhdGh9Jm1pbWVUeXBlPSR7bWltZVR5cGV9JmZpbGVFeHRlbnNpb249JHtmaWxlRXh0ZW5zaW9ufSZsYW5nPSR7bGFuZ30mdGhlbWU9JHt0aGVtZX1cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJtaW1lVHlwZVwiOiBbXCJhdWRpby9tcDNcIiwgXCJhdWRpby93ZWJtXCIsIFwiYXVkaW8vb2dnXCIsIFwiYXVkaW8vbXBlZ1wiLCBcInZpZGVvL21wNFwiLCBcInZpZGVvL3dlYm1cIiwgXCJ2aWRlby9vZ2dcIiwgXCJhcHBsaWNhdGlvbi9vZ2dcIl0sXG4gICAgICBcInZpZXdlclwiOiBcInZpZXdlci92aWV3L2FwaS92aWRlby8/cGF0aD0ke3BhdGh9Jm1pbWVUeXBlPSR7bWltZVR5cGV9JmZpbGVFeHRlbnNpb249JHtmaWxlRXh0ZW5zaW9ufSZsYW5nPSR7bGFuZ30mdGhlbWU9JHt0aGVtZX1cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJtaW1lVHlwZVwiOiBbXCJpbWFnZS90aWZmXCIsIFwiaW1hZ2UvanBlZ1wiLCBcImltYWdlL3BuZ1wiLCBcImltYWdlL2FwbmdcIiwgXCJpbWFnZS9naWZcIiwgXCJpbWFnZS9zdmcreG1sXCIsIFwiaW1hZ2Uvd2VicFwiXSxcbiAgICAgIFwidmlld2VyXCI6IFwidmlld2VyL3ZpZXcvYXBpL2ltZy8/cGF0aD0ke3BhdGh9Jm1pbWVUeXBlPSR7bWltZVR5cGV9JmZpbGVFeHRlbnNpb249JHtmaWxlRXh0ZW5zaW9ufSZsYW5nPSR7bGFuZ30mdGhlbWU9JHt0aGVtZX1cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJtaW1lVHlwZVwiOiBbXCJtZXNzYWdlL3JmYzgyMlwiLCBcImFwcGxpY2F0aW9uL3ZuZC5tcy1vdXRsb29rXCJdLFxuICAgICAgXCJ2aWV3ZXJcIjogXCJ2aWV3ZXIvdmlldy9hcGkvbWFpbC8/cGF0aD0ke3BhdGh9Jm1pbWVUeXBlPSR7bWltZVR5cGV9JmZpbGVFeHRlbnNpb249JHtmaWxlRXh0ZW5zaW9ufSZsYW5nPSR7bGFuZ30mdGhlbWU9JHt0aGVtZX1cIlxuICAgIH0sXG4gICAgLy8gT05MWSBhcHBsaWVzIHRvIGxvY2FsaG9zdCBlbnY7IGZpeGVkIGVtYWlsIGNvcnMgZm9yIGxvY2FsaG9zdCB0ZXN0aW5nXG4gICAge1xuICAgICAgXCJ0eXBlXCI6IFwiZXh0ZW5kXCIsXG4gICAgICBcInZpZXdlclwiOiBcIigpID0+IHsgaWYgKHBhcmFtZXRlcnMudmlld2VyLm1hdGNoKCcvdmlldy9hcGkvbWFpbC8nKSAmJiBwYXJhbWV0ZXJzLnBhdGgubWF0Y2goJ2xvY2FsaG9zdCcpKSB7IHZhciBob3N0ID0gJ2xvY2FsaG9zdDo0MjAwJzsgdmFyIGNvcnMgPSAna29saWJyaXByb2xpYW50Lm9wdGltYWwtc3lzdGVtcy5kZSc7IHBhcmFtZXRlcnMucGF0aCA9IHBhcmFtZXRlcnMucGF0aC5yZXBsYWNlKGhvc3QsIGNvcnMpOyByZXR1cm4gcGFyYW1ldGVycy52aWV3ZXIgKyAnJmNvcnM9JyArIGNvcnM7fSByZXR1cm4gcGFyYW1ldGVycy52aWV3ZXI7IH1cIlxuICAgIH0sXG4gICAgLy8gV2UgbmVlZCBhbm90aGVyIHBhdGhQZGYgZm9yIGVtYWlsIGF0dGFjaG1lbnQgZmlsZXMuIFRoaXMgd2lsbCBvbmx5IGNvbWUgaW4gcGxhY2UgaWYgdGhlIG1pbWV0eXBlIGlzIHBkZiBvciBvbmUgb2YgdGhlIG5vdCBzdXBwb3J0ZWQgb25lcy4gKHZpZXdlciBhdHRhY2htZW50cyAmIGFwaSBhdHRhY2htZW50cyBjYW4gYmUgcGFyc2VkIGluIGRpZmZlcmVudCBvcmRlciwgc28gd2UgaGF2ZSB0byBtYXRjaCB0aGVtIGJ5IGZpbGVuYW1lKVxuICAgIHtcInZpZXdlclwiOiBcIigpID0+IHt2YXIgYXR0YWNobWVudCA9IHBhcmFtZXRlcnMucGF0aFBkZi5tYXRjaChuZXcgUmVnRXhwKCdhdHRhY2htZW50PShcXFxcXFxcXGQrKScpKTsgdmFyIGEgPSBhdHRhY2htZW50ICYmIGFwaS5jb250ZW50LnZpZXdlcigpLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lmcmFtZScpLmNvbnRlbnREb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdhW2RhdGEtc3JjJD1cXFwiJyArIGF0dGFjaG1lbnRbMF0gKyAnXFxcIl0nKTsgIHZhciBwYXJhbXMgPSBhICYmIChhcGkuY29udGVudC5hdHRhY2htZW50cyB8fCBbXSkuZmluZChhdHQgPT4gYXBpLnV0aWwuZGVjb2RlSHRtbENoYXJDb2RlcyhhdHQubmFtZSkgPT09IGEuZ2V0QXR0cmlidXRlKCdkYXRhLWZpbGVuYW1lJykpOyBpZihwYXJhbXMgJiYgcGFyYW1zLnByZXZpZXdVcmkpIHsgZGVidWdnZXI7IHBhcmFtZXRlcnMucGF0aFBkZiA9IGxvY2F0aW9uLm9yaWdpbiArIHBhcmFtcy5wcmV2aWV3VXJpOyB9IHJldHVybiBwYXJhbWV0ZXJzLmRlZmF1bHRWaWV3ZXI7fVwifSxcbiAgICB7XCJlcnJvclwiOiB0cnVlLCBcInR5cGVcIjogXCJlcnJvclwiLCBcInZpZXdlclwiOiBcInZpZXdlci92aWV3L2FwaS9lcnJvci8/cGF0aD0ke3BhdGh9Jm1pbWVUeXBlPSR7bWltZVR5cGV9JmZpbGVFeHRlbnNpb249JHtmaWxlRXh0ZW5zaW9ufSZsYW5nPSR7bGFuZ30mdGhlbWU9JHt0aGVtZX1cIn1cbiAgXTtcblxuICBpc1VuZG9ja2VkOiBib29sZWFuO1xuICBsb2FkaW5nOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHVuZG9ja0Rpc2FibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgZW5hYmxlQ2xvc2VCdG4gPSBmYWxzZTtcbiAgLy8gYnkgZGVmYXVsdCwgdGhlIHZpZXdlciBpZ25vcmVzIHRoZSB2ZXJzaW9uIG9mIHRoZSBkbXMgb2JqZWN0LiBUaGlzIHdpbGwgYWx3YXlzIHNob3cgdGhlIGxhdGVzdCB2ZXJzaW9uLlxuICAvLyBXZSBuZWVkIHRoaXMgdG8gYmUgYWJsZSB0byByZWZyZXNoIHRoZSB2aWV3ZXIgYmVjYXVzZSBvdGhlcndpc2UgcGRmanMgd29ya2VyIHdpbGwgZmFpbC5cbiAgQElucHV0KCkgdXNlVmVyc2lvbiA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm9wZW4nKSBvcGVuO1xuXG4gIEBWaWV3Q2hpbGQoJ2lmcmFtZScsIHtzdGF0aWM6IHRydWV9KSBpZnJhbWU7XG5cbiAgQElucHV0KCdhdHRhY2htZW50cycpXG4gIHNldCBzZXRBdHRhY2htZW50cyhhdHRhY2htZW50cykge1xuICAgIHRoaXMuYXR0YWNobWVudHMgPSBhdHRhY2htZW50cztcbiAgICB0aGlzLmF0dGFjaG1lbnRzU2hvd24gPSBmYWxzZTtcbiAgfVxuXG4gIEBJbnB1dCgnc2VhcmNoVGVybScpXG4gIHNldCBzZXRTZWFyY2hUZXJtKHNlYXJjaFRlcm0pIHtcbiAgICB0aGlzLnNlYXJjaFRlcm0gPSBzZWFyY2hUZXJtIHx8ICcnO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHByZXZpZXdVcmkodXJpOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9wcmV2aWV3VXJpID0gdXJpO1xuICAgIHRoaXMudG9nZ2xlVmlld2VyKCk7XG4gIH1cblxuICBnZXQgcHJldmlld1VyaSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcHJldmlld1VyaTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBwcmV2aWV3RmlsZShmaWxlOiBQcmV2aWV3RmlsZSkge1xuICAgIGlmIChmaWxlKSB7XG4gICAgICB0aGlzLnZpZXdlciA9IHRoaXMuZ2V0Vmlld2VyKGZpbGUpO1xuICAgICAgdGhpcy5tZWRpYVR5cGUgPSBmaWxlLm1lZGlhVHlwZU5hbWUgJiYgdGhpcy5zeXN0ZW0uZ2V0T2JqZWN0VHlwZShmaWxlLm1lZGlhVHlwZU5hbWUpO1xuICAgICAgdGhpcy5wcmV2aWV3VXJpID0gdGhpcy52aWV3ZXIucHJldmlld1VyaTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcmV2aWV3VXJpID0gJyc7XG4gICAgICB0aGlzLnBvcG91dFdpbmRvd0NvbmZpZyA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy5fc2V0UG9wb3V0V2luZG93Q29uZmlnKCFmaWxlKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBkbXNPYmplY3QoaXRlbTogRG1zT2JqZWN0KSB7XG4gICAgdGhpcy5fZG1zT2JqZWN0ID0gaXRlbTtcbiAgICB0aGlzLmRtc09iamVjdFRpdGxlID0gaXRlbS50aXRsZSB8fCAnLi4uJztcblxuXG4gICAgdGhpcy5zZXRBdHRhY2htZW50cyA9IFtdO1xuICAgIGlmICh0aGlzLmF0dGFjaG1lbnRzTG9hZGluZykge1xuICAgICAgLy8gY2FuY2VsIGFueSBwZW5kaW5nIHJlcXVlc3RzXG4gICAgICB0aGlzLmF0dGFjaG1lbnRzTG9hZGluZy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAoaXRlbS5jb250ZW50ICYmIGl0ZW0uY29udGVudC5jb250ZW50cyAmJiBpdGVtLmNvbnRlbnQuY29udGVudHMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBmaWxlID0gaXRlbS5jb250ZW50LmNvbnRlbnRzWzBdIHx8IHt9O1xuXG4gICAgICB0aGlzLnByZXZpZXdGaWxlID0ge1xuICAgICAgICB1cmk6IHRoaXMuZG1zLmdldFByZXZpZXcoaXRlbS5jb250ZW50LmlkLCBpdGVtLmNvbnRlbnQudHlwZSwgdGhpcy51c2VWZXJzaW9uID8gaXRlbS52ZXJzaW9uIDogbnVsbCwgdW5kZWZpbmVkLCB0cnVlKSxcbiAgICAgICAgdXJpUGRmOiB0aGlzLmRtcy5nZXRQcmV2aWV3KGl0ZW0uY29udGVudC5pZCwgaXRlbS5jb250ZW50LnR5cGUsIHRoaXMudXNlVmVyc2lvbiA/IGl0ZW0udmVyc2lvbiA6IG51bGwsICdQREYnLCB0cnVlKSxcbiAgICAgICAgbWltZXR5cGU6IGZpbGUubWltZXR5cGUsXG4gICAgICAgIG1pbWVncm91cDogZmlsZS5taW1lZ3JvdXAsXG4gICAgICAgIHNpemU6IGZpbGUuc2l6ZSxcbiAgICAgICAgcGF0aDogZmlsZS5wYXRoLFxuICAgICAgICBtZWRpYVR5cGVOYW1lOiBpdGVtLnR5cGVOYW1lXG4gICAgICB9O1xuXG4gICAgICBpZiAoISFmaWxlLm1pbWVncm91cD8ubWF0Y2goL15tYWlsfG9jdGV0LXN0cmVhbS8pICYmIHRoaXMudmlld2VyLnZpZXdlci5tYXRjaCgnL3ZpZXcvYXBpL3BkZi8nKSkge1xuICAgICAgICB0aGlzLnNsaWRlVXJpID0gdGhpcy5kbXMuZ2V0U2xpZGUoaXRlbS5jb250ZW50LmlkLCBpdGVtLmNvbnRlbnQudHlwZSwgdGhpcy51c2VWZXJzaW9uID8gaXRlbS52ZXJzaW9uIDogbnVsbCwgMjU2KTtcbiAgICAgICAgdGhpcy5hdHRhY2htZW50c0xvYWRpbmcgPSB0aGlzLmRtcy5nZXRBdHRhY2htZW50cyhpdGVtKS5zdWJzY3JpYmUoYSA9PiB0aGlzLnNldEF0dGFjaG1lbnRzID0gYSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnZpZXdlci52aWV3ZXIubWF0Y2goJy92aWV3L2FwaS9tYWlsLycpKSB7XG4gICAgICAgIHRoaXMuZG1zLmdldEF0dGFjaG1lbnRzKGl0ZW0pLnN1YnNjcmliZShhID0+IHdpbmRvdy5hcGkuY29udGVudC5hdHRhY2htZW50cyA9IGEpO1xuICAgICAgfVxuXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJldmlld1VyaSA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkbXM6IERtc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgc3lzdGVtOiBTeXN0ZW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWcsXG4gICAgcHJpdmF0ZSBwbHVnaW5zU2VydmljZTogUGx1Z2luc1NlcnZpY2UpIHtcbiAgICB0aGlzLlNJWkVfTElNSVQgPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ3ByZXZpZXcuZmlsZVNpemVMaW1pdCcpIHx8IHRoaXMuU0laRV9MSU1JVDtcbiAgICB0aGlzLmN1c3RvbUNvbmZpZyA9ICh0aGlzLmNvbmZpZy5nZXRSYXcoJ3ByZXZpZXcudmlld2VycycpIHx8IFtdKS5jb25jYXQodGhpcy5kZWZhdWx0Vmlld2Vycyk7XG5cbiAgICB0aGlzLnBsdWdpbnNTZXJ2aWNlLmFwaS5jb250ZW50LmNhdGNoRXJyb3IoKS5zdWJzY3JpYmUoKGV2dDogYW55KSA9PiB7XG4gICAgICBjb25zdCB7ZXJyLCB3aW4sIHBhcmFtZXRlcnN9ID0gZXZ0LmRhdGE7XG4gICAgICBjb25zdCB1cmkgPSB0aGlzLnBsdWdpbnNTZXJ2aWNlLmFwcGx5RnVuY3Rpb24odGhpcy5jdXN0b21Db25maWc/LmZpbmQoKHYpID0+IHYuZXJyb3IpPy52aWV3ZXIsICdhcGksIGVyciwgd2luLCBwYXJhbWV0ZXJzJywgW1xuICAgICAgICB0aGlzLnBsdWdpbnNTZXJ2aWNlLmFwaSxcbiAgICAgICAgZXJyLFxuICAgICAgICB3aW4sXG4gICAgICAgIHBhcmFtZXRlcnNcbiAgICAgIF0pO1xuICAgICAgdXJpICYmIHdpbiAmJiAod2luLmxvY2F0aW9uLmhyZWYgPSB0aGlzLnJlc29sdmVVcmkodXJpLCBwYXJhbWV0ZXJzKSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRQb3BvdXRXaW5kb3dDb25maWcocmVzZXQ/OiBib29sZWFuKSB7XG4gICAgY29uc3Qgd2luSW5zZXQgPSAyMDtcbiAgICB0aGlzLnBvcG91dFdpbmRvd0NvbmZpZyA9ICFyZXNldCA/IHtcbiAgICAgIHRpdGxlOiB0aGlzLmRtc09iamVjdFRpdGxlLFxuICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgYmxvY2tTdGFydDogd2luSW5zZXQsXG4gICAgICAgIGlubGluZVN0YXJ0OiB3aW5kb3cuc2NyZWVuLndpZHRoIC8gMlxuICAgICAgfSwgc2l6ZToge1xuICAgICAgICB3aWR0aDogd2luZG93LnNjcmVlbi53aWR0aCAvIDIgLSB3aW5JbnNldCxcbiAgICAgICAgaGVpZ2h0OiB3aW5kb3cuc2NyZWVuLmhlaWdodCAtIHdpbkluc2V0ICogMixcbiAgICAgIH1cbiAgICB9IDogdW5kZWZpbmVkO1xuICB9XG5cbiAgc2VsZWN0QXR0YWNobWVudChhdHRhY2htZW50PzogYW55KSB7XG4gICAgY29uc3QgcHJldmlld1VyaSA9IGF0dGFjaG1lbnQgJiYgdGhpcy5nZXRWaWV3ZXIoe3VyaVBkZjogYXR0YWNobWVudC5wcmV2aWV3VXJpfSBhcyBQcmV2aWV3RmlsZSkucHJldmlld1VyaTtcbiAgICB0aGlzLmxvYWREb2N1bWVudChwcmV2aWV3VXJpIHx8IHRoaXMucHJldmlld1VyaSwgdHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlVmlld2VyKCkge1xuICAgIHRoaXMub3BlbiA9ICEhdGhpcy5wcmV2aWV3VXJpO1xuICAgIGlmICghIXRoaXMucHJldmlld1VyaSkge1xuICAgICAgdGhpcy5sb2FkRG9jdW1lbnQodGhpcy5wcmV2aWV3VXJpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaCgpIHtcbiAgICB0aGlzLmxvYWREb2N1bWVudCh0aGlzLnByZXZpZXdVcmksIHRydWUpO1xuICB9XG5cbiAgZ2V0Vmlld2VyKGZpbGU6IFByZXZpZXdGaWxlKTogYW55IHtcbiAgICBjb25zdCBpc1ZpZGVvID0gISFmaWxlLm1pbWVncm91cD8ubWF0Y2goL15hdWRpb3xedmlkZW8vKTtcbiAgICBjb25zdCBkZWZhdWx0Vmlld2VyID0gaXNWaWRlbyA/IE1lZGlhQ29tcG9uZW50LlZJREVPX1ZJRVdFUiA6IE1lZGlhQ29tcG9uZW50LlBERl9WSUVXRVI7XG4gICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IGZpbGUuZmlsZUV4dGVuc2lvbiB8fCAoZmlsZS5wYXRoPy5pbmNsdWRlcygnLicpID8gZmlsZS5wYXRoLnNwbGl0KCcuJykucG9wKCkgOiAnJyk7XG4gICAgY29uc3QgbWltZVR5cGUgPSBmaWxlLm1pbWV0eXBlO1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY3VzdG9tQ29uZmlnLmZpbmQoKGM6IFZpZXdlckNvbmZpZykgPT4ge1xuICAgICAgY29uc3QgbWF0Y2hNVCA9ICFjLm1pbWVUeXBlIHx8ICh0eXBlb2YgYy5taW1lVHlwZSA9PT0gJ3N0cmluZycgPyBbYy5taW1lVHlwZV0gOiBjLm1pbWVUeXBlKS5pbmNsdWRlcyhtaW1lVHlwZT8udG9Mb3dlckNhc2UoKSk7XG4gICAgICBjb25zdCBtYXRjaEZFID0gIWMuZmlsZUV4dGVuc2lvbiB8fCAodHlwZW9mIGMuZmlsZUV4dGVuc2lvbiA9PT0gJ3N0cmluZycgPyBbYy5maWxlRXh0ZW5zaW9uXSA6IGMuZmlsZUV4dGVuc2lvbikuaW5jbHVkZXMoKGZpbGVFeHRlbnNpb24pLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgcmV0dXJuIG1hdGNoTVQgJiYgbWF0Y2hGRSAmJiAoIWMudHlwZSB8fCBjLnR5cGUgPT09ICdkZWZhdWx0Jyk7XG4gICAgfSk7XG4gICAgY29uc3QgcGFyYW1ldGVycyA9IHtcbiAgICAgIGZpbGUsXG4gICAgICBwYXRoOiBsb2NhdGlvbi5vcmlnaW4gKyBmaWxlLnVyaSxcbiAgICAgIHBhdGhQZGY6IGxvY2F0aW9uLm9yaWdpbiArIGZpbGUudXJpUGRmLFxuICAgICAgdmlld2VyOiBjb25maWc/LnZpZXdlciB8fCBkZWZhdWx0Vmlld2VyLFxuICAgICAgbG9hZDogY29uZmlnPy5sb2FkLFxuICAgICAgZmlsZUV4dGVuc2lvbixcbiAgICAgIG1pbWVUeXBlLFxuICAgICAgdGhlbWU6ICcnLFxuICAgICAgZGVmYXVsdFZpZXdlcixcbiAgICAgIHByZXZpZXdVcmk6ICcnXG4gICAgfTtcbiAgICBwYXJhbWV0ZXJzLnZpZXdlciA9IHRoaXMucGx1Z2luc1NlcnZpY2UuYXBwbHlGdW5jdGlvbihwYXJhbWV0ZXJzLnZpZXdlciwgJ2NvbXBvbmVudCwgZG1zT2JqZWN0LCBwYXJhbWV0ZXJzJywgW3RoaXMsIHRoaXMuX2Rtc09iamVjdCwgcGFyYW1ldGVyc10pIHx8IGRlZmF1bHRWaWV3ZXI7XG5cbiAgICBjb25zdCBleHRlbmQgPSB0aGlzLmN1c3RvbUNvbmZpZy5maW5kKChjKSA9PiBjLnR5cGUgPT09ICdleHRlbmQnKTtcbiAgICBpZiAoZXh0ZW5kKSBwYXJhbWV0ZXJzLnZpZXdlciA9IHRoaXMucGx1Z2luc1NlcnZpY2UuYXBwbHlGdW5jdGlvbihleHRlbmQudmlld2VyLCAnY29tcG9uZW50LCBkbXNPYmplY3QsIHBhcmFtZXRlcnMnLCBbdGhpcywgdGhpcy5fZG1zT2JqZWN0LCBwYXJhbWV0ZXJzXSk7XG5cbiAgICBwYXJhbWV0ZXJzLnByZXZpZXdVcmkgPSB0aGlzLnJlc29sdmVVcmkocGFyYW1ldGVycy52aWV3ZXIsIHBhcmFtZXRlcnMpO1xuICAgIHJldHVybiBwYXJhbWV0ZXJzO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlVXJpKHZpZXdlcjogc3RyaW5nLCBwYXJhbWV0ZXJzOiBhbnkpIHtcbiAgICBsZXQgb3JpZ2luID0gJyc7XG4gICAgaWYgKCF2aWV3ZXIuc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICBvcmlnaW4gPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgdGhpcy5jb25maWcuZ2V0UmF3KCd1cmkuY29udGV4dFBhdGgnKTtcbiAgICAgIGlmICghb3JpZ2luLmVuZHNXaXRoKCcvJykgJiYgIXZpZXdlci5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgb3JpZ2luICs9ICcvJztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9yaWdpbiArIHZpZXdlclxuICAgICAgLnJlcGxhY2UoJyR7b3JpZ2luYWxQYXRofScsIHBhcmFtZXRlcnMucGF0aClcbiAgICAgIC5yZXBsYWNlKCcke3BhdGh9JywgZW5jb2RlVVJJQ29tcG9uZW50KHBhcmFtZXRlcnMucGF0aCkpXG4gICAgICAucmVwbGFjZSgnJHtwYXRoUGRmfScsIGVuY29kZVVSSUNvbXBvbmVudChwYXJhbWV0ZXJzLnBhdGhQZGYpKVxuICAgICAgLnJlcGxhY2UoJyR7ZmlsZUV4dGVuc2lvbn0nLCBlbmNvZGVVUklDb21wb25lbnQocGFyYW1ldGVycy5maWxlRXh0ZW5zaW9uKSlcbiAgICAgIC5yZXBsYWNlKCcke21pbWVUeXBlfScsIGVuY29kZVVSSUNvbXBvbmVudChwYXJhbWV0ZXJzLm1pbWVUeXBlKSlcbiAgICAgIC5yZXBsYWNlKCcke3RoZW1lfScsIGVuY29kZVVSSUNvbXBvbmVudChwYXJhbWV0ZXJzLnRoZW1lKSlcbiAgICAgIC5yZXBsYWNlKCcke2xhbmd9JywgQ29udGVudFByZXZpZXdTZXJ2aWNlLm1hcExhbmcodGhpcy50cmFuc2xhdGUuY3VycmVudExhbmcpKTtcbiAgfVxuXG4gIGxvYWREb2N1bWVudCh1cmk6IHN0cmluZywgZm9yY2U/OiBib29sZWFuKSB7XG4gICAgaWYgKCFmb3JjZSAmJiAoIXVyaSB8fCAodXJpID09PSB0aGlzLmxhdGVzdFVyaSkpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMubGF0ZXN0VXJpID0gdXJpIHx8ICcnO1xuXG4gICAgaWYgKHRoaXMucHJldmlld1VyaSkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudCwgJ3NyYycsIHRoaXMubGF0ZXN0VXJpKTtcbiAgICAgIGNvbnN0IG9ubG9hZCA9ICgpID0+IHRoaXMucGx1Z2luc1NlcnZpY2UuYXBwbHlGdW5jdGlvbih0aGlzLnZpZXdlcj8ubG9hZCwgJ2lmcmFtZSwgY29tcG9uZW50JywgW3RoaXMuaWZyYW1lLm5hdGl2ZUVsZW1lbnQsIHRoaXNdKTtcbiAgICAgIHRoaXMuaWZyYW1lSW5pdCh0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50LCB0aGlzLnZpZXdlcj8ubG9hZCAmJiBvbmxvYWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50LCAnc3JjJywgdGhpcy5sYXRlc3RVcmkpO1xuICAgICAgY29uc3Qgb25sb2FkID0gKCkgPT4gdGhpcy5wbHVnaW5zU2VydmljZS5hcHBseUZ1bmN0aW9uKHRoaXMudmlld2VyPy5sb2FkLCAnaWZyYW1lLCBjb21wb25lbnQnLCBbdGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudCwgdGhpc10pO1xuICAgICAgdGhpcy5pZnJhbWVJbml0KHRoaXMuaWZyYW1lLm5hdGl2ZUVsZW1lbnQsIHRoaXMudmlld2VyPy5sb2FkICYmIG9ubG9hZCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBzZWFyY2ggaW5zaWRlIFBERi5KUyBiYXNlZCBvbiBzZWFyY2ggdGVybVxuICAgKiBAcGFyYW0gdGVybSBzZWFyY2ggdGVybVxuICAgKiBAcGFyYW0gd2luIGlmcmFtZSB3aW5kb3dcbiAgICovXG4gIHByaXZhdGUgc2VhcmNoUERGKHRlcm0gPSAnJywgd2luOiBhbnkpIHtcbiAgICAvLyByZW1vdmUgYWxsIHNwZWNpYWwgY2hhcmFjdGVyc1xuICAgIHRlcm0gPSAodGVybSB8fCAnJykucmVwbGFjZSgvW1xcXCJ8XFwqXS9nLCAnJykudHJpbSgpO1xuICAgIGlmICh0ZXJtICYmIHdpbj8uUERGVmlld2VyQXBwbGljYXRpb24/LmFwcENvbmZpZz8uZmluZEJhcikge1xuICAgICAgd2luLlBERlZpZXdlckFwcGxpY2F0aW9uLmFwcENvbmZpZy5maW5kQmFyLmZpbmRGaWVsZC52YWx1ZSA9IHRlcm07XG4gICAgICB3aW4uUERGVmlld2VyQXBwbGljYXRpb24uYXBwQ29uZmlnLmZpbmRCYXIuaGlnaGxpZ2h0QWxsQ2hlY2tib3guY2hlY2tlZCA9IHRydWU7XG4gICAgICB3aW4uUERGVmlld2VyQXBwbGljYXRpb24uYXBwQ29uZmlnLmZpbmRCYXIuY2FzZVNlbnNpdGl2ZUNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgIC8vIHRyaWdnZXIgZmluZCBldmVudCBvbiBwZGYuanMgbG9hZFxuICAgICAgd2luLlBERlZpZXdlckFwcGxpY2F0aW9uLmluaXRpYWxpemVkUHJvbWlzZT8udGhlbigoKSA9PiB3aW4uUERGVmlld2VyQXBwbGljYXRpb24uZmluZEJhci5kaXNwYXRjaEV2ZW50KCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcHJldmVudERyb3BFdmVudCh3aW46IGFueSkge1xuICAgIGlmICh3aW4/LmxvY2F0aW9uPy5vcmlnaW4gPT09IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pIHtcbiAgICAgIHdpbj8uZG9jdW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCAoZSkgPT4gZS5zdG9wUHJvcGFnYXRpb24oKSk7XG4gICAgICAvLyBkaXNwYWNoIGRyYWcgJiBkcm9wIGV2ZW50cyB0byBtYWluIHdpbmRvd1xuICAgICAgd2luPy5kb2N1bWVudD8uYWRkRXZlbnRMaXN0ZW5lcignZHJhZ2VudGVyJywgKGUpID0+IHtcbiAgICAgICAgd2luZG93LmRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IERyYWdFdmVudCgnZHJhZ2VudGVyJywgZSkpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHdpbmRvdy5kb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBEcmFnRXZlbnQoJ2RyYWdsZWF2ZScsIGUpKSwgMTApO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgaWZyYW1lSW5pdChpZnJhbWUgPSB0aGlzLmlmcmFtZSwgb25sb2FkPzogRnVuY3Rpb24pIHtcbiAgICBpZiAoaWZyYW1lKSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgaWZyYW1lLl9pbml0IHx8IGZyb21FdmVudChpZnJhbWUsICdsb2FkJylcbiAgICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHdpbiA9IHRoaXMuc2V0QXBpKGlmcmFtZSk7XG4gICAgICAgICAgb25sb2FkICYmIG9ubG9hZCgpO1xuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hQREYodGhpcy5zZWFyY2hUZXJtLCB3aW4pO1xuICAgICAgICAgICAgdGhpcy5wcmV2ZW50RHJvcEV2ZW50KHdpbik7XG4gICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgfSk7XG4gICAgICBpZnJhbWUuX2luaXQgPSAhIXRoaXMuc2V0QXBpKGlmcmFtZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRBcGkoaWZyYW1lOiBhbnkpIHtcbiAgICAvLyBzZXQgYXBpIHRvIGlmcmFtZSB3aW5kb3dcbiAgICBjb25zdCB3aW4gPSBpZnJhbWU/LmNvbnRlbnRXaW5kb3cgfHwgaWZyYW1lO1xuICAgIHdpblsnYXBpJ10gPSB3aW5kb3dbJ2FwaSddO1xuICAgIGlmICh3aW5bJ2FwaSddPy5jb250ZW50KSB7XG4gICAgICB3aW5bJ2FwaSddLmNvbnRlbnQucmVzb2x2ZVZpZXdlclBhcmFtcyA9IChwYXJhbWV0ZXJzOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgdXJpID0gcGFyYW1ldGVycy5wYXRoLnJlcGxhY2UobG9jYXRpb24ub3JpZ2luLCAnJyk7XG4gICAgICAgIGNvbnN0IHZpZXdlciA9IHRoaXMuZ2V0Vmlld2VyKHt1cmksIG1pbWV0eXBlOiBwYXJhbWV0ZXJzLm1pbWVUeXBlLCBmaWxlRXh0ZW5zaW9uOiBwYXJhbWV0ZXJzLmZpbGVFeHRlbnNpb24sIHVyaVBkZjogdXJpLCBtaW1lZ3JvdXA6ICcnLCBzaXplOiAxfSk7XG4gICAgICAgIHJldHVybiB7dXJpOiB2aWV3ZXIucHJldmlld1VyaSB8fCBwYXJhbWV0ZXJzLnBhdGh9O1xuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHdpbjtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICB9XG5cbn1cbiIsIjxkaXYgW2hpZGRlbl09XCIhb3BlblwiPlxuICA8IS0tIGF0dGFjaG1lbnRzIG92ZXJsYXkgLS0+XG4gIDxkaXYgY2xhc3M9XCJhdHRhY2htZW50c1wiICpuZ0lmPVwiYXR0YWNobWVudHM/Lmxlbmd0aFwiXG4gICAgW25nQ2xhc3NdPVwie25vdG1haW46IGxhdGVzdFVyaSAhPT0gcHJldmlld1VyaSAmJiAhYXR0YWNobWVudHNTaG93biwgYWN0aXZlOiBhdHRhY2htZW50c1Nob3dufVwiXG4gICAgKGVvT3V0c2lkZUNsaWNrKT1cImF0dGFjaG1lbnRzU2hvd24gPSBmYWxzZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJhdHRhY2htZW50cy1saXN0XCIgKm5nSWY9XCJhdHRhY2htZW50c1Nob3duXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudCBtYWluXCIgKGNsaWNrKT1cInNlbGVjdEF0dGFjaG1lbnQobnVsbClcIiBbbmdDbGFzc109XCJ7Y3VycmVudDogbGF0ZXN0VXJpID09PSBwcmV2aWV3VXJpfVwiPnt7ZG1zT2JqZWN0VGl0bGV9fTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImF0dGFjaG1lbnRcIiAqbmdGb3I9XCJsZXQgYSBvZiBhdHRhY2htZW50c1wiIChjbGljayk9XCJzZWxlY3RBdHRhY2htZW50KGEpXCIgW25nQ2xhc3NdPVwie2N1cnJlbnQ6IGxhdGVzdFVyaSA9PT0gYS5wcmV2aWV3VXJpfVwiPlxuICAgICAgICB7e2EubmFtZX19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uXCIgW2JhZGdlXT1cImF0dGFjaG1lbnRzPy5sZW5ndGhcIiAoY2xpY2spPVwiYXR0YWNobWVudHNTaG93biA9ICFhdHRhY2htZW50c1Nob3duXCJcbiAgICAgIFtpY29uU3JjXT1cImF0dGFjaG1lbnRzU2hvd24gPyAnYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19jbGVhci5zdmcnIDogJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfYXR0YWNobWVudC5zdmcnXCI+PC9lby1pY29uPlxuICA8L2Rpdj5cblxuICA8eXZjLXBvcG91dFxuICBbcG9wb3V0V2luZG93Q29uZmlnXT1cInBvcG91dFdpbmRvd0NvbmZpZ1wiXG4gIFt0cmlnZ2VyUG9zaXRpb25dPVwicG9wb3V0VHJpZ2dlclBvc2l0aW9uXCIgW2Rpc2FibGVkXT1cInVuZG9ja0Rpc2FibGVkXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwicHJldmlldy1jb250YWluZXJcIiBbc3R5bGUub3ZlcmZsb3ddPVwiJ2hpZGRlbidcIj5cbiAgICAgIDxpZnJhbWUgW2hpZGRlbl09XCJpc1VuZG9ja2VkIHx8IGxvYWRpbmdcIiAjaWZyYW1lIGhlaWdodD1cIjEwMCVcIiB3aWR0aD1cIjEwMCVcIiBmcmFtZWJvcmRlcj1cIjBcIj48L2lmcmFtZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJsb2FkZXItb3ZlcmxheV9fbWFza1wiICpuZ0lmPVwibG9hZGluZ1wiPlxuICAgICAgICA8ZW8tbG9hZGluZy1zcGlubmVyIGNsYXNzPVwiaWZyYW1lX19sb2FkZXJcIj48L2VvLWxvYWRpbmctc3Bpbm5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNsaWRlXCIgKm5nSWY9XCJpc1VuZG9ja2VkXCI+XG4gICAgICAgIDxlby1pY29uICpuZ0lmPVwibWVkaWFUeXBlXCIgW29iamVjdFR5cGVdPVwibWVkaWFUeXBlXCI+PC9lby1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwveXZjLXBvcG91dD5cbjwvZGl2PlxuXG48ZGl2IFtoaWRkZW5dPVwib3BlblwiIGNsYXNzPVwiZW1wdHktY29udGFpbmVyXCI+XG4gIDxlby1pY29uIGNsYXNzPVwibm9maWxlXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfbm8tZmlsZS5zdmcnXCI+PC9lby1pY29uPlxuPC9kaXY+XG4iXX0=
@@ -96,6 +96,7 @@ let RowEditComponent = class RowEditComponent {
96
96
  // Call the script function if row was not already saved now
97
97
  if (!this.saved) {
98
98
  this._row.tableElement.onrowedit(this._row.tableElement, row);
99
+ this.onFormStatusChanged();
99
100
  }
100
101
  // ... and respect the result
101
102
  this.copyEnabled = row.copyEnabled;
@@ -103,7 +104,7 @@ let RowEditComponent = class RowEditComponent {
103
104
  this.saveEnabled = row.saveEnabled;
104
105
  }
105
106
  }
106
- onFormStatusChanged(evt) {
107
+ onFormStatusChanged() {
107
108
  // check if indexdata has been changed
108
109
  let currentFormData = this._getFormData();
109
110
  let idxChange = !!this.formData && JSON.stringify(this.formData) !== JSON.stringify(currentFormData);
@@ -147,7 +148,7 @@ let RowEditComponent = class RowEditComponent {
147
148
  if (!this.editForm)
148
149
  return;
149
150
  let formStateWatch = this.editForm.statusChanges.pipe()
150
- .subscribe((e) => this.onFormStatusChanged(e));
151
+ .subscribe((e) => this.onFormStatusChanged());
151
152
  this.subscriptions.push(formStateWatch);
152
153
  this.onFormReady();
153
154
  }, 300);
@@ -234,4 +235,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
234
235
  }], onDelete: [{
235
236
  type: Output
236
237
  }] } });
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vZm9ybS1lbGVtZW50LXRhYmxlL3Jvdy1lZGl0L3Jvdy1lZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL29iamVjdC1mb3JtL29iamVjdC1mb3JtL2Zvcm0tZWxlbWVudC10YWJsZS9yb3ctZWRpdC9yb3ctZWRpdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJMUgsT0FBTyxFQUFzQixLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDeEQsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQU9uRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQzs7Ozs7Ozs7Ozs7OztBQUk1Rjs7R0FFRztBQVNJLElBQU0sZ0JBQWdCLEdBQXRCLE1BQU0sZ0JBQWdCO0lBNkIzQixJQUFJLGdCQUFnQixDQUFDLEdBQVk7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztRQUU3QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNyRTtJQUNILENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FB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QUFlO2dCQXdDakIsWUFBWTtzQkFBcEIsS0FBSztnQkFHRixHQUFHO3NCQUROLEtBQUs7Z0JBaUJJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8vIGltcG9ydCB7IE9iamVjdEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9vYmplY3QtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHtVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7UGVuZGluZ0NoYW5nZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLnNlcnZpY2UnO1xuaW1wb3J0IHtGb3JtU3RhdHVzQ2hhbmdlZEV2ZW50fSBmcm9tICcuLi8uLi8uLi9mb3JtLXN0YXR1cy1jaGFuZ2VkLWV2ZW50LmludGVyZmFjZSc7XG5pbXBvcnQge0Zvcm1HZW5SZXN1bHQsIE9iamVjdEZvcm1IZWxwZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9vYmplY3QtZm9ybS1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQge09iamVjdEZvcm1Db250cm9sV3JhcHBlcn0gZnJvbSAnLi4vLi4vb2JqZWN0LWZvcm0tY29udHJvbC13cmFwcGVyJztcbmltcG9ydCB7T2JqZWN0Rm9ybUdyb3VwfSBmcm9tICcuLi8uLi9vYmplY3QtZm9ybS1ncm91cC5tb2RlbCc7XG5pbXBvcnQge09iamVjdEZvcm1TY3JpcHRTZXJ2aWNlfSBmcm9tICcuLi8uLi9vYmplY3QtZm9ybS1zY3JpcHQvb2JqZWN0LWZvcm0tc2NyaXB0LnNlcnZpY2UnO1xuaW1wb3J0IHtPYmplY3RGb3JtU2NyaXB0aW5nU2NvcGV9IGZyb20gJy4uLy4uL29iamVjdC1mb3JtLXNjcmlwdC9vYmplY3QtZm9ybS1zY3JpcHRpbmctc2NvcGUnO1xuaW1wb3J0IHtFZGl0Um93LCBFZGl0Um93UmVzdWx0fSBmcm9tICcuLi9mb3JtLWVsZW1lbnQuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBDb21wb25lbnQgZm9yIGVkaXRpbmcgYSByb3cgZnJvbSBhbiBvYmplY3QgZm9ybXMgdGFibGUuXG4gKi9cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tcm93LWVkaXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcm93LWVkaXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yb3ctZWRpdC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtPYmplY3RGb3JtU2NyaXB0U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFJvd0VkaXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCdjb25maXJtRGVsZXRlJykgY29uZmlybURlbGV0ZUJ1dHRvbjogRWxlbWVudFJlZjtcblxuICAvLyBJRCBzZXQgYnkgcGVuZGluZ0NoYW5nZXMgc2VydmljZSB3aGVuIGVkaXRpbmcgcm93IGRhdGFcbiAgLy8gVXNlZCB0byBmaW5pc2ggdGhlIHBlbmRpbmcgdGFzayB3aGVuIGVkaXRpbmcgaXMgZG9uZVxuICBwZW5kaW5nVGFza0lkOiBzdHJpbmc7XG5cbiAgZWRpdEZvcm06IE9iamVjdEZvcm1Hcm91cDtcbiAgZWRpdEZvcm1Db250cm9sczogT2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyW10gPSBbXTtcbiAgcHJpdmF0ZSBzY3JpcHRpbmdTY29wZTogT2JqZWN0Rm9ybVNjcmlwdGluZ1Njb3BlO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIC8vIHByb3BlcnR5IGZvciBob2xkaW5nIHRoZSBmb3JtcyBkYXRhIHVzZWQgZm9yIGNvbXBhcmlzb24gd2hlbiBhIGZvcm0tY2hhbmdlZC1ldmVudFxuICAvLyBpcyBmZXRjaGVkIHRvIGluZGljYXRlIHdoZXIgb3Igbm90IHRoZSBpbmRleGRhdGEgd2VyZSBjaGFuZ2VkIG9yIGp1c3QgdGhlIHByb3BlcnRpZXNcbiAgLy8gb2YgdGhlIGZvcm0gZWxlbWVudHMgKGVnLiBmb3JtIHNjcmlwdCBzZXR0aW5nIGZpZWxkcyB0byByZWFkb25seSlcbiAgcHJpdmF0ZSBmb3JtRGF0YTogYW55O1xuXG4gIF9yb3c6IEVkaXRSb3c7XG4gIGlzTmV3Um93OiBib29sZWFuO1xuICBmb3JtU3RhdGU/OiBGb3JtU3RhdHVzQ2hhbmdlZEV2ZW50O1xuICBxdWVyeUVuYWJsZWQgPSB0cnVlO1xuICBjb3B5RW5hYmxlZCA9IHRydWU7XG4gIGRlbGV0ZUVuYWJsZWQgPSB0cnVlO1xuICBzYXZlRW5hYmxlZCA9IHRydWU7XG4gIGNyZWF0ZU5ld0NoZWNrYm94OiBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gIGNyZWF0ZU5ld1JvdyA9IGZhbHNlO1xuICBfc2hvd0RlbGV0ZURpYWxvZyA9IGZhbHNlO1xuICBzYXZpbmcgPSBmYWxzZTtcbiAgc2F2ZWQgPSBmYWxzZTtcblxuICBzZXQgc2hvd0RlbGV0ZURpYWxvZyh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zaG93RGVsZXRlRGlhbG9nID0gdmFsO1xuXG4gICAgaWYgKHRoaXMuX3Nob3dEZWxldGVEaWFsb2cpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jb25maXJtRGVsZXRlQnV0dG9uLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSwgMCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHNob3dEZWxldGVEaWFsb2coKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dEZWxldGVEaWFsb2c7XG4gIH1cblxuICBASW5wdXQoKSBsaW1pdFJlYWNoZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgc2V0IHJvdyhyOiBFZGl0Um93KSB7XG4gICAgaWYgKCF0aGlzLl9yb3cgfHwgdGhpcy5fcm93LmluZGV4ICE9PSByLmluZGV4KSB7XG4gICAgICB0aGlzLnNhdmVkID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMuX3JvdyA9IHI7XG4gICAgdGhpcy5mb3JtRGF0YSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnF1ZXJ5RW5hYmxlZCA9IHI/LnNpdHVhdGlvbiA9PT0gJ1NFQVJDSCc7XG4gICAgdGhpcy5jb3B5RW5hYmxlZCA9ICF0aGlzLnF1ZXJ5RW5hYmxlZDtcbiAgICB0aGlzLnNhdmVFbmFibGVkID0gIXRoaXMucXVlcnlFbmFibGVkO1xuICAgIHRoaXMuZGVsZXRlRW5hYmxlZCA9ICF0aGlzLnF1ZXJ5RW5hYmxlZDtcbiAgICB0aGlzLmlzTmV3Um93ID0gdGhpcy5fcm93Py5pbmRleCA9PT0gLTE7XG4gICAgdGhpcy51bnN1YnNjcmliZUFsbCgpO1xuXG4gICAgdGhpcy5fYnVpbGRSb3dFZGl0Rm9ybSgpO1xuICB9XG5cbiAgQE91dHB1dCgpIG9uQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25TYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxFZGl0Um93UmVzdWx0PigpO1xuICBAT3V0cHV0KCkgb25TYXZlQ29weSA9IG5ldyBFdmVudEVtaXR0ZXI8RWRpdFJvd1Jlc3VsdD4oKTtcbiAgQE91dHB1dCgpIG9uRGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybVNjcmlwdFNlcnZpY2U6IE9iamVjdEZvcm1TY3JpcHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybUhlbHBlclNlcnZpY2U6IE9iamVjdEZvcm1IZWxwZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlciwgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSkge1xuICAgIHRoaXMuY3JlYXRlTmV3Um93ID0gISF0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2NyZWF0ZU5ld1JvdycpO1xuICAgIHRoaXMuY3JlYXRlTmV3Q2hlY2tib3ggPSB0aGlzLmZiLmNvbnRyb2wodGhpcy5jcmVhdGVOZXdSb3cpO1xuICAgIHRoaXMuY3JlYXRlTmV3Q2hlY2tib3gudmFsdWVDaGFuZ2VzLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpLnN1YnNjcmliZSgodikgPT4ge1xuICAgICAgdGhpcy5jcmVhdGVOZXdSb3cgPSB2O1xuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKCdjcmVhdGVOZXdSb3cnLCB0aGlzLmNyZWF0ZU5ld1Jvdyk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAqIFJldHVybnMgdGhlIG9ic2VydmVkIG1vZGVsIHRoYXQgd2FzIHBhc3NlZCB0byB0aGUgY3VycmVudCBmb3JtIHNjcmlwdCBydW5uaW5nLiBJZiB0aGVyZSBpc1xuICogbm8gZm9ybSBzY3JpcHQsIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIE5VTEwuXG4gKiBAcmV0dXJuc1xuICovXG4gIHByaXZhdGUgX2dldE9ic2VydmVkU2NyaXB0TW9kZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2NyaXB0aW5nU2NvcGUgPyB0aGlzLnNjcmlwdGluZ1Njb3BlLmdldE1vZGVsKCkgOiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Rm9ybURhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUhlbHBlclNlcnZpY2UuZXh0cmFjdEZvcm1EYXRhKFxuICAgICAgdGhpcy5lZGl0Rm9ybSxcbiAgICAgIHRoaXMuX3Jvdy5zaXR1YXRpb24sXG4gICAgICB0aGlzLl9yb3cuZm9ybS5kYXRhLCB0cnVlXG4gICAgKTtcblxuICB9XG5cbiAgb25Gb3JtUmVhZHkoKSB7XG4gICAgLy8gZXhlY3V0ZSBhZnRlciBmb3JtIGhhcyBiZWVuIHNldCB1cCwgYmVjYXVzZSBvdGhlcndpc2Ugbm90IGFsbCBvZiB0aGUgY29tcG9uZW50cyBhcmUgcmVhZHkgdG8gYmUgdXNlZFxuICAgIC8vIGlmIGZvciBleGFtcGxlIGEgZm9ybSBzY3JpcHQgZXhlY3V0ZWQgYG9ucm93ZWRpdGAgdHJpZXMgdG8gYXBwbHkgYSBmaWx0ZXIgb3Igc29tZXRoaW5nIGxpa2UgdGhhdFxuICAgIGlmICh0aGlzLl9yb3cudGFibGVFbGVtZW50Lm9ucm93ZWRpdCAmJiAhdGhpcy5fcm93LnRhYmxlRWxlbWVudC5yZWFkb25seSkge1xuXG4gICAgICAvLyBHZW5lcmF0ZSByb3cgQVBJIG9iamVjdCAod3JhcHBlcikgZm9yIHRoZSBzY3JpcHRcbiAgICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgICAgbW9kZWw6IHRoaXMuX2dldE9ic2VydmVkU2NyaXB0TW9kZWwoKSxcbiAgICAgICAgaW5kZXg6IHRoaXMuX3Jvdy5pbmRleCxcbiAgICAgICAgY29weUVuYWJsZWQ6IHRoaXMuY29weUVuYWJsZWQsXG4gICAgICAgIGRlbGV0ZUVuYWJsZWQ6IHRoaXMuZGVsZXRlRW5hYmxlZCxcbiAgICAgICAgc2F2ZUVuYWJsZWQ6IHRoaXMuc2F2ZUVuYWJsZWQsXG4gICAgICAgIHBlcnNpc3RlZDogdGhpcy5pc05ld1JvdyAvLyBOb3QgcGVyc2lzdGVkIGlmIGl0IGlzIGEgbmV3IHJvd1xuICAgICAgfTtcbiAgICAgIC8vIENhbGwgdGhlIHNjcmlwdCBmdW5jdGlvbiBpZiByb3cgd2FzIG5vdCBhbHJlYWR5IHNhdmVkIG5vd1xuICAgICAgaWYgKCF0aGlzLnNhdmVkKSB7XG4gICAgICAgIHRoaXMuX3Jvdy50YWJsZUVsZW1lbnQub25yb3dlZGl0KHRoaXMuX3Jvdy50YWJsZUVsZW1lbnQsIHJvdyk7XG4gICAgICB9XG4gICAgICAvLyAuLi4gYW5kIHJlc3BlY3QgdGhlIHJlc3VsdFxuICAgICAgdGhpcy5jb3B5RW5hYmxlZCA9IHJvdy5jb3B5RW5hYmxlZDtcbiAgICAgIHRoaXMuZGVsZXRlRW5hYmxlZCA9IHJvdy5kZWxldGVFbmFibGVkO1xuICAgICAgdGhpcy5zYXZlRW5hYmxlZCA9IHJvdy5zYXZlRW5hYmxlZDtcbiAgICB9XG4gIH1cblxuICBvbkZvcm1TdGF0dXNDaGFuZ2VkKGV2dCkge1xuXG4gICAgLy8gY2hlY2sgaWYgaW5kZXhkYXRhIGhhcyBiZWVuIGNoYW5nZWRcbiAgICBsZXQgY3VycmVudEZvcm1EYXRhID0gdGhpcy5fZ2V0Rm9ybURhdGEoKTtcbiAgICBsZXQgaWR4Q2hhbmdlID0gISF0aGlzLmZvcm1EYXRhICYmIEpTT04uc3RyaW5naWZ5KHRoaXMuZm9ybURhdGEpICE9PSBKU09OLnN0cmluZ2lmeShjdXJyZW50Rm9ybURhdGEpO1xuICAgIHRoaXMuZm9ybURhdGEgPSBVdGlscy5mb3JtRGF0YVBhcnNlKFV0aWxzLmZvcm1EYXRhU3RyaW5naWZ5KGN1cnJlbnRGb3JtRGF0YSkpO1xuXG4gICAgdGhpcy5mb3JtU3RhdGUgPSB7XG4gICAgICBpbnZhbGlkOiB0aGlzLmVkaXRGb3JtLmludmFsaWQsXG4gICAgICBkaXJ0eTogdGhpcy5lZGl0Rm9ybS5kaXJ0eSxcbiAgICAgIGRhdGE6IHRoaXMuZm9ybURhdGEsXG4gICAgICBpbmRleGRhdGFDaGFuZ2VkOiBpZHhDaGFuZ2VcbiAgICB9O1xuICAgIGlmICh0aGlzLmZvcm1TdGF0ZS5pbmRleGRhdGFDaGFuZ2VkKSB7XG4gICAgICB0aGlzLnN0YXJ0UGVuZGluZygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbmlzaFBlbmRpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9idWlsZFJvd0VkaXRGb3JtKCkge1xuICAgIGlmICh0aGlzLl9yb3cpIHtcbiAgICAgIGNvbnN0IGZvcm1HZW5SZXM6IEZvcm1HZW5SZXN1bHQgPSB0aGlzLmZvcm1IZWxwZXJTZXJ2aWNlLmJ1aWxkUmVhY3RpdmVGb3JtKFxuICAgICAgICB7XG4gICAgICAgICAgZm9ybU1vZGVsOiB7XG4gICAgICAgICAgICBzaXR1YXRpb246IHRoaXMuX3Jvdy5zaXR1YXRpb24sXG4gICAgICAgICAgICBlbGVtZW50czogW3tcbiAgICAgICAgICAgICAgdHlwZTogJ28ybUdyb3VwJyxcbiAgICAgICAgICAgICAgZWxlbWVudHM6IHN0cnVjdHVyZWRDbG9uZSh0aGlzLl9yb3cuZm9ybS5lbGVtZW50cylcbiAgICAgICAgICAgIH1dXG4gICAgICAgICAgfSwgZGlzYWJsZWQ6IHRoaXMuX3Jvdy5mb3JtLmRpc2FibGVkLCBkYXRhOiB0aGlzLl9yb3cuZm9ybS5kYXRhXG4gICAgICAgIH0sIHRoaXMuZm9ybVNjcmlwdFNlcnZpY2UsIHRydWVcbiAgICAgICk7XG4gICAgICB0aGlzLmVkaXRGb3JtID0gZm9ybUdlblJlcy5mb3JtO1xuICAgICAgdGhpcy5zY3JpcHRpbmdTY29wZSA9IGZvcm1HZW5SZXMuc2NyaXB0aW5nU2NvcGU7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBmb3JtR2VuUmVzLmNvbnRyb2xWYWx1ZVN1YnNjcmlwdGlvbnM7XG5cbiAgICAgIGNvbnN0IGN0cmxzID0gKHRoaXMuZWRpdEZvcm0uY29udHJvbHMuY29yZSBhcyBPYmplY3RGb3JtR3JvdXApLmNvbnRyb2xzO1xuICAgICAgdGhpcy5lZGl0Rm9ybUNvbnRyb2xzID0gT2JqZWN0LmtleXMoY3RybHMpLm1hcChrID0+IGN0cmxzW2tdIGFzIE9iamVjdEZvcm1Db250cm9sV3JhcHBlcilcbiAgICAgIHRoaXMuZm9ybVN0YXRlID0ge1xuICAgICAgICBpbnZhbGlkOiB0aGlzLmVkaXRGb3JtLmludmFsaWQsXG4gICAgICAgIGRpcnR5OiB0aGlzLmVkaXRGb3JtLmRpcnR5LFxuICAgICAgICBkYXRhOiB0aGlzLmZvcm1EYXRhLFxuICAgICAgICBpbmRleGRhdGFDaGFuZ2VkOiBmYWxzZVxuICAgICAgfTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuZWRpdEZvcm0pIHJldHVybjtcbiAgICAgICAgbGV0IGZvcm1TdGF0ZVdhdGNoID0gdGhpcy5lZGl0Rm9ybS5zdGF0dXNDaGFuZ2VzLnBpcGUoKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKGUpID0+IHRoaXMub25Gb3JtU3RhdHVzQ2hhbmdlZChlKSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGZvcm1TdGF0ZVdhdGNoKTtcbiAgICAgICAgdGhpcy5vbkZvcm1SZWFkeSgpO1xuICAgICAgfSwgMzAwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0UGVuZGluZygpIHtcbiAgICAvLyBiZWNhdXNlIHRoaXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIGV2ZXJ5IHRpbWUgdGhlIGZvcm0gc3RhdHVzIGNoYW5nZXMsXG4gICAgLy8gcGVuZGluZyB0YXNrIHdpbGwgb25seSBiZSBzdGFydGVkIG9uY2UgdW50aWwgaXQgd2FzIGZpbmlzaGVkXG4gICAgaWYgKCF0aGlzLnBlbmRpbmdDaGFuZ2VzLmhhc1BlbmRpbmdUYXNrKHRoaXMucGVuZGluZ1Rhc2tJZCB8fCAnICcpKSB7XG4gICAgICB0aGlzLnBlbmRpbmdUYXNrSWQgPSB0aGlzLnBlbmRpbmdDaGFuZ2VzLnN0YXJ0VGFzaygpO1xuICAgIH1cbiAgfVxuXG4gIGZpbmlzaFBlbmRpbmcoKSB7XG4gICAgdGhpcy5wZW5kaW5nQ2hhbmdlcy5maW5pc2hUYXNrKHRoaXMucGVuZGluZ1Rhc2tJZCk7XG4gIH1cblxuICBzYXZlKCkge1xuICAgIHRoaXMuc2F2aW5nID0gdHJ1ZTtcbiAgICB0aGlzLnNhdmVkID0gdHJ1ZTtcbiAgICB0aGlzLmZpbmlzaFBlbmRpbmcoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5mb3JtU3RhdGUuaW52YWxpZCkge1xuICAgICAgICB0aGlzLm9uU2F2ZS5lbWl0KHtcbiAgICAgICAgICBpbmRleDogdGhpcy5fcm93LmluZGV4LFxuICAgICAgICAgIHJvd0RhdGE6IHRoaXMuX2dldEZvcm1EYXRhKCksXG4gICAgICAgICAgY3JlYXRlTmV3Um93OiB0aGlzLmNyZWF0ZU5ld1Jvd1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XG4gICAgfSwgNTAwKTtcbiAgfVxuXG4gIHNhdmVDb3B5KCkge1xuICAgIHRoaXMuc2F2aW5nID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5mb3JtU3RhdGUuaW52YWxpZCkge1xuICAgICAgICB0aGlzLm9uU2F2ZUNvcHkuZW1pdCh7XG4gICAgICAgICAgaW5kZXg6IHRoaXMuX3Jvdy5pbmRleCxcbiAgICAgICAgICByb3dEYXRhOiB0aGlzLl9nZXRGb3JtRGF0YSgpLFxuICAgICAgICAgIGNyZWF0ZU5ld1JvdzogdGhpcy5jcmVhdGVOZXdSb3dcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xuICAgIH0sIDUwMCk7XG4gIH1cblxuICBkZWxldGUoKSB7XG4gICAgdGhpcy5vbkRlbGV0ZS5lbWl0KHRoaXMuX3Jvdy5pbmRleCk7XG4gICAgdGhpcy5zaG93RGVsZXRlRGlhbG9nID0gZmFsc2U7XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5maW5pc2hQZW5kaW5nKCk7XG4gICAgdGhpcy5vbkNhbmNlbC5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIHVuc3Vic2NyaWJlQWxsKCkge1xuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlQWxsKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJyb3ctZWRpdFwiPlxuICA8ZGl2IGNsYXNzPVwiZWRpdC1oZWFkZXJcIiAqbmdJZj1cIiFxdWVyeUVuYWJsZWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwibmV3LWluZGljYXRvclwiICpuZ0lmPVwiaXNOZXdSb3dcIiB0cmFuc2xhdGU+ZW8uZm9ybS50YWJsZS5vcHRpb25zLmluZGljYXRvci5uZXc8L2Rpdj5cbiAgICA8ZGl2PjwvZGl2PlxuICAgIDxlby1pY29uIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2NsZWFyLnN2ZydcIiAoY2xpY2spPVwiY2FuY2VsKClcIiBjbGFzcz1cImJ1dHRvbiBjYW5jZWwtaWNvblwiXG4gICAgICBbaWNvblRpdGxlXT1cIignZW8uZm9ybS50YWJsZS5vcHRpb25zLmJ0bi5jYW5jZWwnIHwgdHJhbnNsYXRlKVwiPjwvZW8taWNvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZvcm1cIiBbZm9ybUdyb3VwXT1cImVkaXRGb3JtXCIgKm5nSWY9XCJlZGl0Rm9ybVwiPlxuICAgIDxlby1mb3JtLWVsZW1lbnQgKm5nRm9yPVwibGV0IGMgb2YgZWRpdEZvcm1Db250cm9sc1wiIFtlbGVtZW50XT1cImNcIiBbc2l0dWF0aW9uXT1cIl9yb3c/LnNpdHVhdGlvblwiIFtza2lwVG9nZ2xlXT1cImZhbHNlXCI+XG4gICAgPC9lby1mb3JtLWVsZW1lbnQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgPGVvLWNoZWNrYm94ICpuZ0lmPVwiaXNOZXdSb3dcIiB0aXRsZT1cInt7J2VvLmZvcm0udGFibGUub3B0aW9ucy5jaGVja2JveC5uZXcudGl0bGUnIHwgdHJhbnNsYXRlfX1cIlxuICAgICAgW2Zvcm1Db250cm9sXT1cImNyZWF0ZU5ld0NoZWNrYm94XCI+PC9lby1jaGVja2JveD5cbiAgICA8c3BhbiAqbmdJZj1cImlzTmV3Um93XCIgY2xhc3M9XCJhZGQtbGFiZWxcIiB0cmFuc2xhdGU+ZW8uZm9ybS50YWJsZS5vcHRpb25zLmNoZWNrYm94Lm5ldzwvc3Bhbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cImRlbGV0ZUVuYWJsZWQgJiYgIWlzTmV3Um93ICYmICFfcm93Py5mb3JtLmRpc2FibGVkICYmICFxdWVyeUVuYWJsZWRcIlxuICAgICAgKGNsaWNrKT1cInNob3dEZWxldGVEaWFsb2cgPSB0cnVlO1wiIHRpdGxlPVwie3snZW8uZm9ybS50YWJsZS5vcHRpb25zLmJ0bi5kZWxldGUnIHwgdHJhbnNsYXRlfX1cIj5cbiAgICAgIDxlby1pY29uIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3RyYXNoLnN2ZydcIj48L2VvLWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNhdmVDb3B5KClcIiBjbGFzcz1cInNlY29cIiAqbmdJZj1cImNvcHlFbmFibGVkICYmICFpc05ld1JvdyAmJiAhX3Jvdz8uZm9ybS5kaXNhYmxlZFwiXG4gICAgICBbZGlzYWJsZWRdPVwibGltaXRSZWFjaGVkIHx8IHNhdmluZyB8fCBmb3JtU3RhdGU/LmludmFsaWRcIiB0cmFuc2xhdGU+ZW8uZm9ybS50YWJsZS5vcHRpb25zLmJ0bi5jb3B5PC9idXR0b24+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNhdmUoKVwiIGNsYXNzPVwicHJpbWFyeVwiICpuZ0lmPVwic2F2ZUVuYWJsZWQgJiYgIV9yb3c/LmZvcm0uZGlzYWJsZWRcIlxuICAgICAgW2Rpc2FibGVkXT1cIihsaW1pdFJlYWNoZWQgJiYgaXNOZXdSb3cpIHx8IHNhdmluZyB8fCBmb3JtU3RhdGU/LmludmFsaWQgfHwgKCFmb3JtU3RhdGU/LmRpcnR5ICYmICFpc05ld1JvdylcIj57e1xuICAgICAgJ2VvLmZvcm0udGFibGUub3B0aW9ucy5idG4uc2F2ZScgKyAoaXNOZXdSb3cgPyAnLm5ldycgOiAnJykgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgIDwhLS0gcXVlcnkgYnV0dG9uIGZvciBTRUFSQ0ggc2l0dWF0aW9uIC0tPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzYXZlKClcIiBjbGFzcz1cInByaW1hcnlcIiAqbmdJZj1cInF1ZXJ5RW5hYmxlZFwiXG4gICAgICBbZGlzYWJsZWRdPVwiZm9ybVN0YXRlPy5pbnZhbGlkIHx8ICFmb3JtU3RhdGU/LmluZGV4ZGF0YUNoYW5nZWRcIiB0cmFuc2xhdGU+ZW8uZm9ybS50YWJsZS5vcHRpb25zLmJ0bi5zYXZlPC9idXR0b24+XG4gIDwvZGl2PlxuXG48L2Rpdj5cblxuPGVvLWRpYWxvZyBbdGl0bGVdPVwiKCdlby5mb3JtLnRhYmxlLm9wdGlvbnMuY29uZmlybS5kZWxldGUnIHwgdHJhbnNsYXRlKVwiIFsodmlzaWJsZSldPVwic2hvd0RlbGV0ZURpYWxvZ1wiXG4gIFttaW5XaWR0aF09XCI0MDBcIj5cbiAgPGRpdiBjbGFzcz1cImFjdGlvbi1idXR0b25zIGZsZXgtcm93XCIgc3R5bGU9XCJwYWRkaW5nOiA4cHg7XCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b24gY2FuY2VsXCIgKGNsaWNrKT1cInNob3dEZWxldGVEaWFsb2cgPSBmYWxzZVwiXG4gICAgICB0cmFuc2xhdGU+ZW8uZm9ybS50YWJsZS5vcHRpb25zLmJ0bi5jYW5jZWw8L2J1dHRvbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjY29uZmlybURlbGV0ZSAoY2xpY2spPVwiZGVsZXRlKClcIiBjbGFzcz1cImJ1dHRvbiBwcmltYXJ5XCJcbiAgICAgIHRyYW5zbGF0ZT5lby5mb3JtLnRhYmxlLm9wdGlvbnMuYnRuLm9rPC9idXR0b24+XG4gIDwvZGl2PlxuPC9lby1kaWFsb2c+Il19
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vZm9ybS1lbGVtZW50LXRhYmxlL3Jvdy1lZGl0L3Jvdy1lZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL29iamVjdC1mb3JtL29iamVjdC1mb3JtL2Zvcm0tZWxlbWVudC10YWJsZS9yb3ctZWRpdC9yb3ctZWRpdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHMUgsT0FBTyxFQUFzQixLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDeEQsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQU9uRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQzs7Ozs7Ozs7Ozs7OztBQUk1Rjs7R0FFRztBQVNJLElBQU0sZ0JBQWdCLEdBQXRCLE1BQU0sZ0JBQWdCO0lBNkIzQixJQUFJLGdCQUFnQixDQUFDLEdBQVk7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztRQUU3QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNyRTtJQUNILENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FB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QyxTQUFTO3VCQUFDLGVBQWU7Z0JBd0NqQixZQUFZO3NCQUFwQixLQUFLO2dCQUdGLEdBQUc7c0JBRE4sS0FBSztnQkFpQkksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7UGVuZGluZ0NoYW5nZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLnNlcnZpY2UnO1xuaW1wb3J0IHtGb3JtU3RhdHVzQ2hhbmdlZEV2ZW50fSBmcm9tICcuLi8uLi8uLi9mb3JtLXN0YXR1cy1jaGFuZ2VkLWV2ZW50LmludGVyZmFjZSc7XG5pbXBvcnQge0Zvcm1HZW5SZXN1bHQsIE9iamVjdEZvcm1IZWxwZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9vYmplY3QtZm9ybS1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQge09iamVjdEZvcm1Db250cm9sV3JhcHBlcn0gZnJvbSAnLi4vLi4vb2JqZWN0LWZvcm0tY29udHJvbC13cmFwcGVyJztcbmltcG9ydCB7T2JqZWN0Rm9ybUdyb3VwfSBmcm9tICcuLi8uLi9vYmplY3QtZm9ybS1ncm91cC5tb2RlbCc7XG5pbXBvcnQge09iamVjdEZvcm1TY3JpcHRTZXJ2aWNlfSBmcm9tICcuLi8uLi9vYmplY3QtZm9ybS1zY3JpcHQvb2JqZWN0LWZvcm0tc2NyaXB0LnNlcnZpY2UnO1xuaW1wb3J0IHtPYmplY3RGb3JtU2NyaXB0aW5nU2NvcGV9IGZyb20gJy4uLy4uL29iamVjdC1mb3JtLXNjcmlwdC9vYmplY3QtZm9ybS1zY3JpcHRpbmctc2NvcGUnO1xuaW1wb3J0IHtFZGl0Um93LCBFZGl0Um93UmVzdWx0fSBmcm9tICcuLi9mb3JtLWVsZW1lbnQuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBDb21wb25lbnQgZm9yIGVkaXRpbmcgYSByb3cgZnJvbSBhbiBvYmplY3QgZm9ybXMgdGFibGUuXG4gKi9cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tcm93LWVkaXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcm93LWVkaXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yb3ctZWRpdC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtPYmplY3RGb3JtU2NyaXB0U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFJvd0VkaXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCdjb25maXJtRGVsZXRlJykgY29uZmlybURlbGV0ZUJ1dHRvbjogRWxlbWVudFJlZjtcblxuICAvLyBJRCBzZXQgYnkgcGVuZGluZ0NoYW5nZXMgc2VydmljZSB3aGVuIGVkaXRpbmcgcm93IGRhdGFcbiAgLy8gVXNlZCB0byBmaW5pc2ggdGhlIHBlbmRpbmcgdGFzayB3aGVuIGVkaXRpbmcgaXMgZG9uZVxuICBwZW5kaW5nVGFza0lkOiBzdHJpbmc7XG5cbiAgZWRpdEZvcm06IE9iamVjdEZvcm1Hcm91cDtcbiAgZWRpdEZvcm1Db250cm9sczogT2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyW10gPSBbXTtcbiAgcHJpdmF0ZSBzY3JpcHRpbmdTY29wZTogT2JqZWN0Rm9ybVNjcmlwdGluZ1Njb3BlO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIC8vIHByb3BlcnR5IGZvciBob2xkaW5nIHRoZSBmb3JtcyBkYXRhIHVzZWQgZm9yIGNvbXBhcmlzb24gd2hlbiBhIGZvcm0tY2hhbmdlZC1ldmVudFxuICAvLyBpcyBmZXRjaGVkIHRvIGluZGljYXRlIHdoZXIgb3Igbm90IHRoZSBpbmRleGRhdGEgd2VyZSBjaGFuZ2VkIG9yIGp1c3QgdGhlIHByb3BlcnRpZXNcbiAgLy8gb2YgdGhlIGZvcm0gZWxlbWVudHMgKGVnLiBmb3JtIHNjcmlwdCBzZXR0aW5nIGZpZWxkcyB0byByZWFkb25seSlcbiAgcHJpdmF0ZSBmb3JtRGF0YTogYW55O1xuXG4gIF9yb3c6IEVkaXRSb3c7XG4gIGlzTmV3Um93OiBib29sZWFuO1xuICBmb3JtU3RhdGU/OiBGb3JtU3RhdHVzQ2hhbmdlZEV2ZW50O1xuICBxdWVyeUVuYWJsZWQgPSB0cnVlO1xuICBjb3B5RW5hYmxlZCA9IHRydWU7XG4gIGRlbGV0ZUVuYWJsZWQgPSB0cnVlO1xuICBzYXZlRW5hYmxlZCA9IHRydWU7XG4gIGNyZWF0ZU5ld0NoZWNrYm94OiBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gIGNyZWF0ZU5ld1JvdyA9IGZhbHNlO1xuICBfc2hvd0RlbGV0ZURpYWxvZyA9IGZhbHNlO1xuICBzYXZpbmcgPSBmYWxzZTtcbiAgc2F2ZWQgPSBmYWxzZTtcblxuICBzZXQgc2hvd0RlbGV0ZURpYWxvZyh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zaG93RGVsZXRlRGlhbG9nID0gdmFsO1xuXG4gICAgaWYgKHRoaXMuX3Nob3dEZWxldGVEaWFsb2cpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jb25maXJtRGVsZXRlQnV0dG9uLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSwgMCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHNob3dEZWxldGVEaWFsb2coKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dEZWxldGVEaWFsb2c7XG4gIH1cblxuICBASW5wdXQoKSBsaW1pdFJlYWNoZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgc2V0IHJvdyhyOiBFZGl0Um93KSB7XG4gICAgaWYgKCF0aGlzLl9yb3cgfHwgdGhpcy5fcm93LmluZGV4ICE9PSByLmluZGV4KSB7XG4gICAgICB0aGlzLnNhdmVkID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMuX3JvdyA9IHI7XG4gICAgdGhpcy5mb3JtRGF0YSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnF1ZXJ5RW5hYmxlZCA9IHI/LnNpdHVhdGlvbiA9PT0gJ1NFQVJDSCc7XG4gICAgdGhpcy5jb3B5RW5hYmxlZCA9ICF0aGlzLnF1ZXJ5RW5hYmxlZDtcbiAgICB0aGlzLnNhdmVFbmFibGVkID0gIXRoaXMucXVlcnlFbmFibGVkO1xuICAgIHRoaXMuZGVsZXRlRW5hYmxlZCA9ICF0aGlzLnF1ZXJ5RW5hYmxlZDtcbiAgICB0aGlzLmlzTmV3Um93ID0gdGhpcy5fcm93Py5pbmRleCA9PT0gLTE7XG4gICAgdGhpcy51bnN1YnNjcmliZUFsbCgpO1xuXG4gICAgdGhpcy5fYnVpbGRSb3dFZGl0Rm9ybSgpO1xuICB9XG5cbiAgQE91dHB1dCgpIG9uQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25TYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxFZGl0Um93UmVzdWx0PigpO1xuICBAT3V0cHV0KCkgb25TYXZlQ29weSA9IG5ldyBFdmVudEVtaXR0ZXI8RWRpdFJvd1Jlc3VsdD4oKTtcbiAgQE91dHB1dCgpIG9uRGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybVNjcmlwdFNlcnZpY2U6IE9iamVjdEZvcm1TY3JpcHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybUhlbHBlclNlcnZpY2U6IE9iamVjdEZvcm1IZWxwZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlciwgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSkge1xuICAgIHRoaXMuY3JlYXRlTmV3Um93ID0gISF0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2NyZWF0ZU5ld1JvdycpO1xuICAgIHRoaXMuY3JlYXRlTmV3Q2hlY2tib3ggPSB0aGlzLmZiLmNvbnRyb2wodGhpcy5jcmVhdGVOZXdSb3cpO1xuICAgIHRoaXMuY3JlYXRlTmV3Q2hlY2tib3gudmFsdWVDaGFuZ2VzLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpLnN1YnNjcmliZSgodikgPT4ge1xuICAgICAgdGhpcy5jcmVhdGVOZXdSb3cgPSB2O1xuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKCdjcmVhdGVOZXdSb3cnLCB0aGlzLmNyZWF0ZU5ld1Jvdyk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAqIFJldHVybnMgdGhlIG9ic2VydmVkIG1vZGVsIHRoYXQgd2FzIHBhc3NlZCB0byB0aGUgY3VycmVudCBmb3JtIHNjcmlwdCBydW5uaW5nLiBJZiB0aGVyZSBpc1xuICogbm8gZm9ybSBzY3JpcHQsIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIE5VTEwuXG4gKiBAcmV0dXJuc1xuICovXG4gIHByaXZhdGUgX2dldE9ic2VydmVkU2NyaXB0TW9kZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2NyaXB0aW5nU2NvcGUgPyB0aGlzLnNjcmlwdGluZ1Njb3BlLmdldE1vZGVsKCkgOiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Rm9ybURhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUhlbHBlclNlcnZpY2UuZXh0cmFjdEZvcm1EYXRhKFxuICAgICAgdGhpcy5lZGl0Rm9ybSxcbiAgICAgIHRoaXMuX3Jvdy5zaXR1YXRpb24sXG4gICAgICB0aGlzLl9yb3cuZm9ybS5kYXRhLCB0cnVlXG4gICAgKTtcblxuICB9XG5cbiAgb25Gb3JtUmVhZHkoKSB7XG4gICAgLy8gZXhlY3V0ZSBhZnRlciBmb3JtIGhhcyBiZWVuIHNldCB1cCwgYmVjYXVzZSBvdGhlcndpc2Ugbm90IGFsbCBvZiB0aGUgY29tcG9uZW50cyBhcmUgcmVhZHkgdG8gYmUgdXNlZFxuICAgIC8vIGlmIGZvciBleGFtcGxlIGEgZm9ybSBzY3JpcHQgZXhlY3V0ZWQgYG9ucm93ZWRpdGAgdHJpZXMgdG8gYXBwbHkgYSBmaWx0ZXIgb3Igc29tZXRoaW5nIGxpa2UgdGhhdFxuICAgIGlmICh0aGlzLl9yb3cudGFibGVFbGVtZW50Lm9ucm93ZWRpdCAmJiAhdGhpcy5fcm93LnRhYmxlRWxlbWVudC5yZWFkb25seSkge1xuXG4gICAgICAvLyBHZW5lcmF0ZSByb3cgQVBJIG9iamVjdCAod3JhcHBlcikgZm9yIHRoZSBzY3JpcHRcbiAgICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgICAgbW9kZWw6IHRoaXMuX2dldE9ic2VydmVkU2NyaXB0TW9kZWwoKSxcbiAgICAgICAgaW5kZXg6IHRoaXMuX3Jvdy5pbmRleCxcbiAgICAgICAgY29weUVuYWJsZWQ6IHRoaXMuY29weUVuYWJsZWQsXG4gICAgICAgIGRlbGV0ZUVuYWJsZWQ6IHRoaXMuZGVsZXRlRW5hYmxlZCxcbiAgICAgICAgc2F2ZUVuYWJsZWQ6IHRoaXMuc2F2ZUVuYWJsZWQsXG4gICAgICAgIHBlcnNpc3RlZDogdGhpcy5pc05ld1JvdyAvLyBOb3QgcGVyc2lzdGVkIGlmIGl0IGlzIGEgbmV3IHJvd1xuICAgICAgfTtcbiAgICAgIC8vIENhbGwgdGhlIHNjcmlwdCBmdW5jdGlvbiBpZiByb3cgd2FzIG5vdCBhbHJlYWR5IHNhdmVkIG5vd1xuICAgICAgaWYgKCF0aGlzLnNhdmVkKSB7XG4gICAgICAgIHRoaXMuX3Jvdy50YWJsZUVsZW1lbnQub25yb3dlZGl0KHRoaXMuX3Jvdy50YWJsZUVsZW1lbnQsIHJvdyk7XG4gICAgICAgIHRoaXMub25Gb3JtU3RhdHVzQ2hhbmdlZCgpO1xuICAgICAgfVxuICAgICAgLy8gLi4uIGFuZCByZXNwZWN0IHRoZSByZXN1bHRcbiAgICAgIHRoaXMuY29weUVuYWJsZWQgPSByb3cuY29weUVuYWJsZWQ7XG4gICAgICB0aGlzLmRlbGV0ZUVuYWJsZWQgPSByb3cuZGVsZXRlRW5hYmxlZDtcbiAgICAgIHRoaXMuc2F2ZUVuYWJsZWQgPSByb3cuc2F2ZUVuYWJsZWQ7XG4gICAgfVxuICB9XG5cbiAgb25Gb3JtU3RhdHVzQ2hhbmdlZCgpIHtcblxuICAgIC8vIGNoZWNrIGlmIGluZGV4ZGF0YSBoYXMgYmVlbiBjaGFuZ2VkXG4gICAgbGV0IGN1cnJlbnRGb3JtRGF0YSA9IHRoaXMuX2dldEZvcm1EYXRhKCk7XG4gICAgbGV0IGlkeENoYW5nZSA9ICEhdGhpcy5mb3JtRGF0YSAmJiBKU09OLnN0cmluZ2lmeSh0aGlzLmZvcm1EYXRhKSAhPT0gSlNPTi5zdHJpbmdpZnkoY3VycmVudEZvcm1EYXRhKTtcbiAgICB0aGlzLmZvcm1EYXRhID0gVXRpbHMuZm9ybURhdGFQYXJzZShVdGlscy5mb3JtRGF0YVN0cmluZ2lmeShjdXJyZW50Rm9ybURhdGEpKTtcblxuICAgIHRoaXMuZm9ybVN0YXRlID0ge1xuICAgICAgaW52YWxpZDogdGhpcy5lZGl0Rm9ybS5pbnZhbGlkLFxuICAgICAgZGlydHk6IHRoaXMuZWRpdEZvcm0uZGlydHksXG4gICAgICBkYXRhOiB0aGlzLmZvcm1EYXRhLFxuICAgICAgaW5kZXhkYXRhQ2hhbmdlZDogaWR4Q2hhbmdlXG4gICAgfTtcbiAgICBpZiAodGhpcy5mb3JtU3RhdGUuaW5kZXhkYXRhQ2hhbmdlZCkge1xuICAgICAgdGhpcy5zdGFydFBlbmRpbmcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maW5pc2hQZW5kaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfYnVpbGRSb3dFZGl0Rm9ybSgpIHtcbiAgICBpZiAodGhpcy5fcm93KSB7XG4gICAgICBjb25zdCBmb3JtR2VuUmVzOiBGb3JtR2VuUmVzdWx0ID0gdGhpcy5mb3JtSGVscGVyU2VydmljZS5idWlsZFJlYWN0aXZlRm9ybShcbiAgICAgICAge1xuICAgICAgICAgIGZvcm1Nb2RlbDoge1xuICAgICAgICAgICAgc2l0dWF0aW9uOiB0aGlzLl9yb3cuc2l0dWF0aW9uLFxuICAgICAgICAgICAgZWxlbWVudHM6IFt7XG4gICAgICAgICAgICAgIHR5cGU6ICdvMm1Hcm91cCcsXG4gICAgICAgICAgICAgIGVsZW1lbnRzOiBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5fcm93LmZvcm0uZWxlbWVudHMpXG4gICAgICAgICAgICB9XVxuICAgICAgICAgIH0sIGRpc2FibGVkOiB0aGlzLl9yb3cuZm9ybS5kaXNhYmxlZCwgZGF0YTogdGhpcy5fcm93LmZvcm0uZGF0YVxuICAgICAgICB9LCB0aGlzLmZvcm1TY3JpcHRTZXJ2aWNlLCB0cnVlXG4gICAgICApO1xuICAgICAgdGhpcy5lZGl0Rm9ybSA9IGZvcm1HZW5SZXMuZm9ybTtcbiAgICAgIHRoaXMuc2NyaXB0aW5nU2NvcGUgPSBmb3JtR2VuUmVzLnNjcmlwdGluZ1Njb3BlO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zID0gZm9ybUdlblJlcy5jb250cm9sVmFsdWVTdWJzY3JpcHRpb25zO1xuXG4gICAgICBjb25zdCBjdHJscyA9ICh0aGlzLmVkaXRGb3JtLmNvbnRyb2xzLmNvcmUgYXMgT2JqZWN0Rm9ybUdyb3VwKS5jb250cm9scztcbiAgICAgIHRoaXMuZWRpdEZvcm1Db250cm9scyA9IE9iamVjdC5rZXlzKGN0cmxzKS5tYXAoayA9PiBjdHJsc1trXSBhcyBPYmplY3RGb3JtQ29udHJvbFdyYXBwZXIpXG4gICAgICB0aGlzLmZvcm1TdGF0ZSA9IHtcbiAgICAgICAgaW52YWxpZDogdGhpcy5lZGl0Rm9ybS5pbnZhbGlkLFxuICAgICAgICBkaXJ0eTogdGhpcy5lZGl0Rm9ybS5kaXJ0eSxcbiAgICAgICAgZGF0YTogdGhpcy5mb3JtRGF0YSxcbiAgICAgICAgaW5kZXhkYXRhQ2hhbmdlZDogZmFsc2VcbiAgICAgIH07XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmVkaXRGb3JtKSByZXR1cm47XG4gICAgICAgIGxldCBmb3JtU3RhdGVXYXRjaCA9IHRoaXMuZWRpdEZvcm0uc3RhdHVzQ2hhbmdlcy5waXBlKClcbiAgICAgICAgICAuc3Vic2NyaWJlKChlKSA9PiB0aGlzLm9uRm9ybVN0YXR1c0NoYW5nZWQoKSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGZvcm1TdGF0ZVdhdGNoKTtcbiAgICAgICAgdGhpcy5vbkZvcm1SZWFkeSgpO1xuICAgICAgfSwgMzAwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0UGVuZGluZygpIHtcbiAgICAvLyBiZWNhdXNlIHRoaXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIGV2ZXJ5IHRpbWUgdGhlIGZvcm0gc3RhdHVzIGNoYW5nZXMsXG4gICAgLy8gcGVuZGluZyB0YXNrIHdpbGwgb25seSBiZSBzdGFydGVkIG9uY2UgdW50aWwgaXQgd2FzIGZpbmlzaGVkXG4gICAgaWYgKCF0aGlzLnBlbmRpbmdDaGFuZ2VzLmhhc1BlbmRpbmdUYXNrKHRoaXMucGVuZGluZ1Rhc2tJZCB8fCAnICcpKSB7XG4gICAgICB0aGlzLnBlbmRpbmdUYXNrSWQgPSB0aGlzLnBlbmRpbmdDaGFuZ2VzLnN0YXJ0VGFzaygpO1xuICAgIH1cbiAgfVxuXG4gIGZpbmlzaFBlbmRpbmcoKSB7XG4gICAgdGhpcy5wZW5kaW5nQ2hhbmdlcy5maW5pc2hUYXNrKHRoaXMucGVuZGluZ1Rhc2tJZCk7XG4gIH1cblxuICBzYXZlKCkge1xuICAgIHRoaXMuc2F2aW5nID0gdHJ1ZTtcbiAgICB0aGlzLnNhdmVkID0gdHJ1ZTtcbiAgICB0aGlzLmZpbmlzaFBlbmRpbmcoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5mb3JtU3RhdGUuaW52YWxpZCkge1xuICAgICAgICB0aGlzLm9uU2F2ZS5lbWl0KHtcbiAgICAgICAgICBpbmRleDogdGhpcy5fcm93LmluZGV4LFxuICAgICAgICAgIHJvd0RhdGE6IHRoaXMuX2dldEZvcm1EYXRhKCksXG4gICAgICAgICAgY3JlYXRlTmV3Um93OiB0aGlzLmNyZWF0ZU5ld1Jvd1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XG4gICAgfSwgNTAwKTtcbiAgfVxuXG4gIHNhdmVDb3B5KCkge1xuICAgIHRoaXMuc2F2aW5nID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5mb3JtU3RhdGUuaW52YWxpZCkge1xuICAgICAgICB0aGlzLm9uU2F2ZUNvcHkuZW1pdCh7XG4gICAgICAgICAgaW5kZXg6IHRoaXMuX3Jvdy5pbmRleCxcbiAgICAgICAgICByb3dEYXRhOiB0aGlzLl9nZXRGb3JtRGF0YSgpLFxuICAgICAgICAgIGNyZWF0ZU5ld1JvdzogdGhpcy5jcmVhdGVOZXdSb3dcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xuICAgIH0sIDUwMCk7XG4gIH1cblxuICBkZWxldGUoKSB7XG4gICAgdGhpcy5vbkRlbGV0ZS5lbWl0KHRoaXMuX3Jvdy5pbmRleCk7XG4gICAgdGhpcy5zaG93RGVsZXRlRGlhbG9nID0gZmFsc2U7XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5maW5pc2hQZW5kaW5nKCk7XG4gICAgdGhpcy5vbkNhbmNlbC5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIHVuc3Vic2NyaWJlQWxsKCkge1xuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlQWxsKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJyb3ctZWRpdFwiPlxuICA8ZGl2IGNsYXNzPVwiZWRpdC1oZWFkZXJcIiAqbmdJZj1cIiFxdWVyeUVuYWJsZWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwibmV3LWluZGljYXRvclwiICpuZ0lmPVwiaXNOZXdSb3dcIiB0cmFuc2xhdGU+ZW8uZm9ybS50YWJsZS5vcHRpb25zLmluZGljYXRvci5uZXc8L2Rpdj5cbiAgICA8ZGl2PjwvZGl2PlxuICAgIDxlby1pY29uIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2NsZWFyLnN2ZydcIiAoY2xpY2spPVwiY2FuY2VsKClcIiBjbGFzcz1cImJ1dHRvbiBjYW5jZWwtaWNvblwiXG4gICAgICBbaWNvblRpdGxlXT1cIignZW8uZm9ybS50YWJsZS5vcHRpb25zLmJ0bi5jYW5jZWwnIHwgdHJhbnNsYXRlKVwiPjwvZW8taWNvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZvcm1cIiBbZm9ybUdyb3VwXT1cImVkaXRGb3JtXCIgKm5nSWY9XCJlZGl0Rm9ybVwiPlxuICAgIDxlby1mb3JtLWVsZW1lbnQgKm5nRm9yPVwibGV0IGMgb2YgZWRpdEZvcm1Db250cm9sc1wiIFtlbGVtZW50XT1cImNcIiBbc2l0dWF0aW9uXT1cIl9yb3c/LnNpdHVhdGlvblwiIFtza2lwVG9nZ2xlXT1cImZhbHNlXCI+XG4gICAgPC9lby1mb3JtLWVsZW1lbnQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgPGVvLWNoZWNrYm94ICpuZ0lmPVwiaXNOZXdSb3dcIiB0aXRsZT1cInt7J2VvLmZvcm0udGFibGUub3B0aW9ucy5jaGVja2JveC5uZXcudGl0bGUnIHwgdHJhbnNsYXRlfX1cIlxuICAgICAgW2Zvcm1Db250cm9sXT1cImNyZWF0ZU5ld0NoZWNrYm94XCI+PC9lby1jaGVja2JveD5cbiAgICA8c3BhbiAqbmdJZj1cImlzTmV3Um93XCIgY2xhc3M9XCJhZGQtbGFiZWxcIiB0cmFuc2xhdGU+ZW8uZm9ybS50YWJsZS5vcHRpb25zLmNoZWNrYm94Lm5ldzwvc3Bhbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cImRlbGV0ZUVuYWJsZWQgJiYgIWlzTmV3Um93ICYmICFfcm93Py5mb3JtLmRpc2FibGVkICYmICFxdWVyeUVuYWJsZWRcIlxuICAgICAgKGNsaWNrKT1cInNob3dEZWxldGVEaWFsb2cgPSB0cnVlO1wiIHRpdGxlPVwie3snZW8uZm9ybS50YWJsZS5vcHRpb25zLmJ0bi5kZWxldGUnIHwgdHJhbnNsYXRlfX1cIj5cbiAgICAgIDxlby1pY29uIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3RyYXNoLnN2ZydcIj48L2VvLWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNhdmVDb3B5KClcIiBjbGFzcz1cInNlY29cIiAqbmdJZj1cImNvcHlFbmFibGVkICYmICFpc05ld1JvdyAmJiAhX3Jvdz8uZm9ybS5kaXNhYmxlZFwiXG4gICAgICBbZGlzYWJsZWRdPVwibGltaXRSZWFjaGVkIHx8IHNhdmluZyB8fCBmb3JtU3RhdGU/LmludmFsaWRcIiB0cmFuc2xhdGU+ZW8uZm9ybS50YWJsZS5vcHRpb25zLmJ0bi5jb3B5PC9idXR0b24+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNhdmUoKVwiIGNsYXNzPVwicHJpbWFyeVwiICpuZ0lmPVwic2F2ZUVuYWJsZWQgJiYgIV9yb3c/LmZvcm0uZGlzYWJsZWRcIlxuICAgICAgW2Rpc2FibGVkXT1cIihsaW1pdFJlYWNoZWQgJiYgaXNOZXdSb3cpIHx8IHNhdmluZyB8fCBmb3JtU3RhdGU/LmludmFsaWQgfHwgKCFmb3JtU3RhdGU/LmRpcnR5ICYmICFpc05ld1JvdylcIj57e1xuICAgICAgJ2VvLmZvcm0udGFibGUub3B0aW9ucy5idG4uc2F2ZScgKyAoaXNOZXdSb3cgPyAnLm5ldycgOiAnJykgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgIDwhLS0gcXVlcnkgYnV0dG9uIGZvciBTRUFSQ0ggc2l0dWF0aW9uIC0tPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzYXZlKClcIiBjbGFzcz1cInByaW1hcnlcIiAqbmdJZj1cInF1ZXJ5RW5hYmxlZFwiXG4gICAgICBbZGlzYWJsZWRdPVwiZm9ybVN0YXRlPy5pbnZhbGlkIHx8ICFmb3JtU3RhdGU/LmluZGV4ZGF0YUNoYW5nZWRcIiB0cmFuc2xhdGU+ZW8uZm9ybS50YWJsZS5vcHRpb25zLmJ0bi5zYXZlPC9idXR0b24+XG4gIDwvZGl2PlxuXG48L2Rpdj5cblxuPGVvLWRpYWxvZyBbdGl0bGVdPVwiKCdlby5mb3JtLnRhYmxlLm9wdGlvbnMuY29uZmlybS5kZWxldGUnIHwgdHJhbnNsYXRlKVwiIFsodmlzaWJsZSldPVwic2hvd0RlbGV0ZURpYWxvZ1wiXG4gIFttaW5XaWR0aF09XCI0MDBcIj5cbiAgPGRpdiBjbGFzcz1cImFjdGlvbi1idXR0b25zIGZsZXgtcm93XCIgc3R5bGU9XCJwYWRkaW5nOiA4cHg7XCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b24gY2FuY2VsXCIgKGNsaWNrKT1cInNob3dEZWxldGVEaWFsb2cgPSBmYWxzZVwiXG4gICAgICB0cmFuc2xhdGU+ZW8uZm9ybS50YWJsZS5vcHRpb25zLmJ0bi5jYW5jZWw8L2J1dHRvbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjY29uZmlybURlbGV0ZSAoY2xpY2spPVwiZGVsZXRlKClcIiBjbGFzcz1cImJ1dHRvbiBwcmltYXJ5XCJcbiAgICAgIHRyYW5zbGF0ZT5lby5mb3JtLnRhYmxlLm9wdGlvbnMuYnRuLm9rPC9idXR0b24+XG4gIDwvZGl2PlxuPC9lby1kaWFsb2c+Il19