@hmcts/ccd-case-ui-toolkit 5.0.26-angular11-upgrade → 5.0.28-angular11-upgrade

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 (82) hide show
  1. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js +11136 -10974
  2. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js.map +1 -1
  3. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js +1 -1
  4. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js.map +1 -1
  5. package/esm2015/lib/app.config.js +4 -1
  6. package/esm2015/lib/shared/components/case-editor/case-access-utils/index.js +6 -4
  7. package/esm2015/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.js +1 -1
  8. package/esm2015/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.js +2 -10
  9. package/esm2015/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.js +1 -1
  10. package/esm2015/lib/shared/components/case-editor/case-editor.module.js +35 -26
  11. package/esm2015/lib/shared/components/case-editor/services/case.notifier.js +36 -4
  12. package/esm2015/lib/shared/components/case-editor/services/cases.service.js +58 -58
  13. package/esm2015/lib/shared/components/case-editor/services/work-allocation.service.js +50 -11
  14. package/esm2015/lib/shared/components/case-history/case-history.component.js +2 -11
  15. package/esm2015/lib/shared/components/case-history/case-history.module.js +11 -1
  16. package/esm2015/lib/shared/components/case-timeline/case-timeline.component.js +2 -5
  17. package/esm2015/lib/shared/components/case-timeline/case-timeline.module.js +5 -1
  18. package/esm2015/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.js +86 -58
  19. package/esm2015/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.js +11 -8
  20. package/esm2015/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.js +5 -5
  21. package/esm2015/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.js +2 -12
  22. package/esm2015/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.js +3 -3
  23. package/esm2015/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.js +13 -9
  24. package/esm2015/lib/shared/components/case-viewer/case-specific-access-success/case-specific-access-success.component.js +2 -2
  25. package/esm2015/lib/shared/components/case-viewer/case-viewer.component.js +13 -33
  26. package/esm2015/lib/shared/components/case-viewer/case-viewer.module.js +32 -15
  27. package/esm2015/lib/shared/components/case-viewer/services/case.resolver.js +38 -23
  28. package/esm2015/lib/shared/components/event-start/event-guard/event-start.guard.js +20 -30
  29. package/esm2015/lib/shared/components/loading-spinner/index.js +2 -1
  30. package/esm2015/lib/shared/components/loading-spinner/loading-spinner.module.js +27 -0
  31. package/esm2015/lib/shared/components/palette/document/write-document-field.component.js +2 -5
  32. package/esm2015/lib/shared/components/palette/palette.module.js +2 -1
  33. package/esm2015/lib/shared/components/search-result/search-result.component.js +2 -11
  34. package/esm2015/lib/shared/components/search-result/search-result.module.js +11 -1
  35. package/esm2015/lib/shared/components/workbasket-filters/workbasket-filters.component.js +2 -6
  36. package/esm2015/lib/shared/components/workbasket-filters/workbasket-filters.module.js +6 -1
  37. package/esm2015/lib/shared/domain/work-allocation/index.js +2 -1
  38. package/esm2015/lib/shared/domain/work-allocation/wa-service-config.model.js +2 -0
  39. package/esm2015/lib/shared/pipes/complex/cdd-page-fields.pipe.js +3 -3
  40. package/esm2015/lib/shared/services/jurisdiction/jurisdiction.service.js +1 -1
  41. package/fesm2015/hmcts-ccd-case-ui-toolkit.js +9885 -9737
  42. package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
  43. package/lib/app.config.d.ts +2 -0
  44. package/lib/app.config.d.ts.map +1 -1
  45. package/lib/shared/components/case-editor/case-access-utils/index.d.ts +2 -2
  46. package/lib/shared/components/case-editor/case-access-utils/index.d.ts.map +1 -1
  47. package/lib/shared/components/case-editor/case-editor.module.d.ts +12 -11
  48. package/lib/shared/components/case-editor/case-editor.module.d.ts.map +1 -1
  49. package/lib/shared/components/case-editor/services/case.notifier.d.ts +10 -3
  50. package/lib/shared/components/case-editor/services/case.notifier.d.ts.map +1 -1
  51. package/lib/shared/components/case-editor/services/cases.service.d.ts +19 -25
  52. package/lib/shared/components/case-editor/services/cases.service.d.ts.map +1 -1
  53. package/lib/shared/components/case-editor/services/work-allocation.service.d.ts +6 -5
  54. package/lib/shared/components/case-editor/services/work-allocation.service.d.ts.map +1 -1
  55. package/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.d.ts +5 -1
  56. package/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.d.ts.map +1 -1
  57. package/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.d.ts +4 -2
  58. package/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.d.ts.map +1 -1
  59. package/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.d.ts.map +1 -1
  60. package/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.d.ts +1 -0
  61. package/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.d.ts.map +1 -1
  62. package/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.d.ts +4 -2
  63. package/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.d.ts.map +1 -1
  64. package/lib/shared/components/case-viewer/case-specific-access-success/case-specific-access-success.component.d.ts.map +1 -1
  65. package/lib/shared/components/case-viewer/case-viewer.component.d.ts +5 -3
  66. package/lib/shared/components/case-viewer/case-viewer.component.d.ts.map +1 -1
  67. package/lib/shared/components/case-viewer/case-viewer.module.d.ts +14 -13
  68. package/lib/shared/components/case-viewer/case-viewer.module.d.ts.map +1 -1
  69. package/lib/shared/components/case-viewer/services/case.resolver.d.ts +11 -9
  70. package/lib/shared/components/case-viewer/services/case.resolver.d.ts.map +1 -1
  71. package/lib/shared/components/event-start/event-guard/event-start.guard.d.ts +3 -5
  72. package/lib/shared/components/event-start/event-guard/event-start.guard.d.ts.map +1 -1
  73. package/lib/shared/components/loading-spinner/index.d.ts +1 -0
  74. package/lib/shared/components/loading-spinner/index.d.ts.map +1 -1
  75. package/lib/shared/components/loading-spinner/loading-spinner.module.d.ts +9 -0
  76. package/lib/shared/components/loading-spinner/loading-spinner.module.d.ts.map +1 -0
  77. package/lib/shared/domain/work-allocation/index.d.ts +1 -0
  78. package/lib/shared/domain/work-allocation/index.d.ts.map +1 -1
  79. package/lib/shared/domain/work-allocation/wa-service-config.model.d.ts +9 -0
  80. package/lib/shared/domain/work-allocation/wa-service-config.model.d.ts.map +1 -0
  81. package/lib/shared/pipes/complex/cdd-page-fields.pipe.d.ts.map +1 -1
  82. package/package.json +1 -1
@@ -3,6 +3,7 @@ import { CommonModule } from '@angular/common';
3
3
  import { NgModule } from '@angular/core';
4
4
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
5
5
  import { RouterModule } from '@angular/router';
6
+ import { BannersModule } from '../../../components/banners/banners.module';
6
7
  import { CallbackErrorsComponent } from '../../components/error';
7
8
  import { ConditionalShowModule } from '../../directives/conditional-show';
8
9
  import { ConditionalShowRegistrarService } from '../../directives/conditional-show/services/conditional-show-registrar.service';
@@ -23,7 +24,7 @@ import { ProfileService } from '../../services/profile/profile.service';
23
24
  import { RouterHelperService } from '../../services/router';
24
25
  import { SessionStorageService } from '../../services/session/session-storage.service';
25
26
  import { ErrorsModule } from '../error/errors.module';
26
- import { LoadingSpinnerComponent } from '../loading-spinner/loading-spinner.component';
27
+ import { LoadingSpinnerModule } from '../loading-spinner/loading-spinner.module';
27
28
  import { PaletteModule } from '../palette/palette.module';
28
29
  import { CaseCreateComponent } from './case-create/case-create.component';
29
30
  import { CaseEditConfirmComponent } from './case-edit-confirm/case-edit-confirm.component';
@@ -33,27 +34,31 @@ import { CaseEditSubmitComponent } from './case-edit-submit/case-edit-submit.com
33
34
  import { CaseEditComponent } from './case-edit/case-edit.component';
34
35
  import { CaseEventCompletionComponent, CaseEventCompletionTaskCancelledComponent, CaseEventCompletionTaskReassignedComponent } from './case-event-completion';
35
36
  import { CaseProgressComponent } from './case-progress/case-progress.component';
36
- import { EventCompletionStateMachineService, EventTriggerService, JudicialworkerService, PageValidationService, WizardFactoryService, WorkAllocationService } from './services';
37
+ import { CaseNotifier, EventCompletionStateMachineService, EventTriggerService, JudicialworkerService, PageValidationService, WizardFactoryService, WorkAllocationService } from './services';
37
38
  import { CaseEditWizardGuard } from './services/case-edit-wizard.guard';
38
39
  import { CaseworkerService } from './services/case-worker.service';
39
40
  import * as i0 from "@angular/core";
40
41
  import * as i1 from "@angular/common";
41
- import * as i2 from "../palette/markdown/markdown.component";
42
- import * as i3 from "../error/callback-errors.component";
43
- import * as i4 from "@angular/forms";
44
- import * as i5 from "../../directives/substitutor/label-substitutor.directive";
45
- import * as i6 from "../palette/base-field/field-read.component";
46
- import * as i7 from "../../pipes/case-title/ccd-case-title.pipe";
47
- import * as i8 from "../../pipes/case-reference/case-reference.pipe";
48
- import * as i9 from "../../pipes/complex/ccd-cyapage-label-filter.pipe";
49
- import * as i10 from "../../pipes/complex/ccd-read-fields-filter.pipe";
50
- import * as i11 from "../../pipes/complex/cdd-page-fields.pipe";
51
- import * as i12 from "../palette/utils/is-compound.pipe";
42
+ import * as i2 from "../../directives/conditional-show/conditional-show-form.directive";
43
+ import * as i3 from "@angular/forms";
44
+ import * as i4 from "../../directives/substitutor/label-substitutor.directive";
45
+ import * as i5 from "../palette/base-field/field-read.component";
46
+ import * as i6 from "../palette/base-field/field-write.component";
47
+ import * as i7 from "../palette/utils/is-read-only-and-not-collection.pipe";
48
+ import * as i8 from "../palette/utils/is-compound.pipe";
49
+ import * as i9 from "../palette/markdown/markdown.component";
50
+ import * as i10 from "../error/callback-errors.component";
51
+ import * as i11 from "../../pipes/case-title/ccd-case-title.pipe";
52
+ import * as i12 from "../../pipes/case-reference/case-reference.pipe";
53
+ import * as i13 from "../../pipes/complex/ccd-cyapage-label-filter.pipe";
54
+ import * as i14 from "../../pipes/complex/ccd-read-fields-filter.pipe";
55
+ import * as i15 from "../../pipes/complex/cdd-page-fields.pipe";
52
56
  export class CaseEditorModule {
53
57
  }
54
58
  CaseEditorModule.ɵfac = function CaseEditorModule_Factory(t) { return new (t || CaseEditorModule)(); };
55
59
  CaseEditorModule.ɵmod = i0.ɵɵdefineNgModule({ type: CaseEditorModule });
56
60
  CaseEditorModule.ɵinj = i0.ɵɵdefineInjector({ providers: [
61
+ CaseNotifier,
57
62
  FieldsUtils,
58
63
  FieldsPurger,
59
64
  ConditionalShowRegistrarService,
@@ -88,7 +93,9 @@ CaseEditorModule.ɵinj = i0.ɵɵdefineInjector({ providers: [
88
93
  LabelSubstitutorModule,
89
94
  ConditionalShowModule,
90
95
  ErrorsModule,
91
- PortalModule
96
+ PortalModule,
97
+ LoadingSpinnerModule,
98
+ BannersModule
92
99
  ]] });
93
100
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(CaseEditorModule, { declarations: [CaseEditConfirmComponent,
94
101
  CaseEditComponent,
@@ -99,8 +106,7 @@ CaseEditorModule.ɵinj = i0.ɵɵdefineInjector({ providers: [
99
106
  CaseEventCompletionTaskCancelledComponent,
100
107
  CaseEventCompletionTaskReassignedComponent,
101
108
  CaseCreateComponent,
102
- CaseProgressComponent,
103
- LoadingSpinnerComponent], imports: [CommonModule,
109
+ CaseProgressComponent], imports: [CommonModule,
104
110
  RouterModule,
105
111
  FormsModule,
106
112
  ReactiveFormsModule,
@@ -108,15 +114,16 @@ CaseEditorModule.ɵinj = i0.ɵɵdefineInjector({ providers: [
108
114
  LabelSubstitutorModule,
109
115
  ConditionalShowModule,
110
116
  ErrorsModule,
111
- PortalModule], exports: [CaseEditConfirmComponent,
117
+ PortalModule,
118
+ LoadingSpinnerModule,
119
+ BannersModule], exports: [CaseEditConfirmComponent,
112
120
  CaseEditComponent,
113
121
  CaseEditPageComponent,
114
122
  CaseEditFormComponent,
115
123
  CaseEditSubmitComponent,
116
124
  CaseCreateComponent,
117
125
  CaseProgressComponent,
118
- CallbackErrorsComponent,
119
- LoadingSpinnerComponent] }); })();
126
+ CallbackErrorsComponent] }); })();
120
127
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseEditorModule, [{
121
128
  type: NgModule,
122
129
  args: [{
@@ -129,7 +136,9 @@ CaseEditorModule.ɵinj = i0.ɵɵdefineInjector({ providers: [
129
136
  LabelSubstitutorModule,
130
137
  ConditionalShowModule,
131
138
  ErrorsModule,
132
- PortalModule
139
+ PortalModule,
140
+ LoadingSpinnerModule,
141
+ BannersModule
133
142
  ],
134
143
  declarations: [
135
144
  CaseEditConfirmComponent,
@@ -141,8 +150,7 @@ CaseEditorModule.ɵinj = i0.ɵɵdefineInjector({ providers: [
141
150
  CaseEventCompletionTaskCancelledComponent,
142
151
  CaseEventCompletionTaskReassignedComponent,
143
152
  CaseCreateComponent,
144
- CaseProgressComponent,
145
- LoadingSpinnerComponent
153
+ CaseProgressComponent
146
154
  ],
147
155
  exports: [
148
156
  CaseEditConfirmComponent,
@@ -152,10 +160,10 @@ CaseEditorModule.ɵinj = i0.ɵɵdefineInjector({ providers: [
152
160
  CaseEditSubmitComponent,
153
161
  CaseCreateComponent,
154
162
  CaseProgressComponent,
155
- CallbackErrorsComponent,
156
- LoadingSpinnerComponent
163
+ CallbackErrorsComponent
157
164
  ],
158
165
  providers: [
166
+ CaseNotifier,
159
167
  FieldsUtils,
160
168
  FieldsPurger,
161
169
  ConditionalShowRegistrarService,
@@ -184,7 +192,8 @@ CaseEditorModule.ɵinj = i0.ɵɵdefineInjector({ providers: [
184
192
  ]
185
193
  }]
186
194
  }], null, null); })();
187
- i0.ɵɵsetComponentScope(CaseEditSubmitComponent, [i1.NgIf, i2.MarkdownComponent, i1.NgForOf, i3.CallbackErrorsComponent, i4.ɵangular_packages_forms_forms_ba, i4.NgControlStatusGroup, i4.FormGroupDirective, i5.LabelSubstitutorDirective, i6.FieldReadComponent, i1.NgSwitch, i1.NgSwitchCase, i4.FormGroupName, i4.DefaultValueAccessor, i4.NgControlStatus, i4.FormControlName, i4.MaxLengthValidator, CaseEventCompletionComponent], [i7.CcdCaseTitlePipe, i8.CaseReferencePipe, i9.CcdCYAPageLabelFilterPipe, i10.ReadFieldsFilterPipe, i11.CcdPageFieldsPipe, i12.IsCompoundPipe]);
195
+ i0.ɵɵsetComponentScope(CaseEditFormComponent, [i1.NgForOf, i2.ConditionalShowFormDirective, i3.NgControlStatusGroup, i3.FormGroupDirective, i4.LabelSubstitutorDirective, i1.NgSwitch, i1.NgSwitchCase, i5.FieldReadComponent, i1.NgIf, i6.FieldWriteComponent], [i7.IsReadOnlyAndNotCollectionPipe, i8.IsCompoundPipe]);
196
+ i0.ɵɵsetComponentScope(CaseEditSubmitComponent, [i1.NgIf, i9.MarkdownComponent, i1.NgForOf, i10.CallbackErrorsComponent, i3.ɵangular_packages_forms_forms_ba, i3.NgControlStatusGroup, i3.FormGroupDirective, i4.LabelSubstitutorDirective, i5.FieldReadComponent, i1.NgSwitch, i1.NgSwitchCase, i3.FormGroupName, i3.DefaultValueAccessor, i3.NgControlStatus, i3.FormControlName, i3.MaxLengthValidator, CaseEventCompletionComponent], [i11.CcdCaseTitlePipe, i12.CaseReferencePipe, i13.CcdCYAPageLabelFilterPipe, i14.ReadFieldsFilterPipe, i15.CcdPageFieldsPipe, i8.IsCompoundPipe]);
188
197
  i0.ɵɵsetComponentScope(CaseCreateComponent, [i1.NgIf, CaseEditComponent], []);
189
198
  i0.ɵɵsetComponentScope(CaseProgressComponent, [i1.NgIf, CaseEditComponent], []);
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1lZGl0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL2Nhc2UtZWRpdG9yL2Nhc2UtZWRpdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEVBQ0wsK0JBQStCLEVBQ2hDLE1BQU0sK0VBQStFLENBQUM7QUFDdkYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDL0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDakYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDL0YsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtC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bkIsY0FBYztvQkFDZCxtQkFBbUI7b0JBQ25CLHFCQUFxQjtvQkFDckIscUJBQXFCO29CQUNyQixpQkFBaUI7b0JBQ2pCLHFCQUFxQjtvQkFDckIsa0NBQWtDO2lCQUNyQzthQUNKOzt1QkE5Q08sdUJBQXVCLDRWQUN2Qiw0QkFBNEI7dUJBRzVCLG1CQUFtQixZQVBuQixpQkFBaUI7dUJBUWpCLHFCQUFxQixZQVJyQixpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ2FsbGJhY2tFcnJvcnNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Vycm9yJztcbmltcG9ydCB7IENvbmRpdGlvbmFsU2hvd01vZHVsZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY29uZGl0aW9uYWwtc2hvdyc7XG5pbXBvcnQge1xuICBDb25kaXRpb25hbFNob3dSZWdpc3RyYXJTZXJ2aWNlXG59IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY29uZGl0aW9uYWwtc2hvdy9zZXJ2aWNlcy9jb25kaXRpb25hbC1zaG93LXJlZ2lzdHJhci5zZXJ2aWNlJztcbmltcG9ydCB7IExhYmVsU3Vic3RpdHV0b3JNb2R1bGUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3N1YnN0aXR1dG9yL2xhYmVsLXN1YnN0aXR1dG9yLm1vZHVsZSc7XG5pbXBvcnQgeyBBZGRyZXNzZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYWRkcmVzc2VzJztcbmltcG9ydCB7IENhc2VGaWVsZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYXNlLWZpZWxkcy9jYXNlLWZpZWxkLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybWF0VHJhbnNsYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYXNlLWZpZWxkcy9mb3JtYXQtdHJhbnNsYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kb2N1bWVudC1tYW5hZ2VtZW50JztcbmltcG9ydCB7IEZpZWxkc1B1cmdlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpZWxkcy9maWVsZHMucHVyZ2VyJztcbmltcG9ydCB7IEZpZWxkc1V0aWxzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmllbGRzL2ZpZWxkcy51dGlscyc7XG5pbXBvcnQgeyBGaWVsZFR5cGVTYW5pdGlzZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb3JtL2ZpZWxkLXR5cGUtc2FuaXRpc2VyJztcbmltcG9ydCB7IEZvcm1FcnJvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb3JtL2Zvcm0tZXJyb3Iuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtVmFsdWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZm9ybS9mb3JtLXZhbHVlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9odHRwL2h0dHAuc2VydmljZSc7XG5pbXBvcnQgeyBPcmRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vcmRlci9vcmRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFByb2ZpbGVOb3RpZmllciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Byb2ZpbGUvcHJvZmlsZS5ub3RpZmllcic7XG5pbXBvcnQgeyBQcm9maWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Byb2ZpbGUvcHJvZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFJvdXRlckhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yb3V0ZXInO1xuaW1wb3J0IHsgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2Vzc2lvbi9zZXNzaW9uLXN0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBFcnJvcnNNb2R1bGUgfSBmcm9tICcuLi9lcnJvci9lcnJvcnMubW9kdWxlJztcbmltcG9ydCB7IExvYWRpbmdTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vbG9hZGluZy1zcGlubmVyL2xvYWRpbmctc3Bpbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFsZXR0ZU1vZHVsZSB9IGZyb20gJy4uL3BhbGV0dGUvcGFsZXR0ZS5tb2R1bGUnO1xuaW1wb3J0IHsgQ2FzZUNyZWF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY2FzZS1jcmVhdGUvY2FzZS1jcmVhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IENhc2VFZGl0Q29uZmlybUNvbXBvbmVudCB9IGZyb20gJy4vY2FzZS1lZGl0LWNvbmZpcm0vY2FzZS1lZGl0LWNvbmZpcm0uY29tcG9uZW50JztcbmltcG9ydCB7IENhc2VFZGl0Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4vY2FzZS1lZGl0LWZvcm0vY2FzZS1lZGl0LWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IENhc2VFZGl0UGFnZUNvbXBvbmVudCB9IGZyb20gJy4vY2FzZS1lZGl0LXBhZ2UvY2FzZS1lZGl0LXBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IENhc2VFZGl0U3VibWl0Q29tcG9uZW50IH0gZnJvbSAnLi9jYXNlLWVkaXQtc3VibWl0L2Nhc2UtZWRpdC1zdWJtaXQuY29tcG9uZW50JztcbmltcG9ydCB7IENhc2VFZGl0Q29tcG9uZW50IH0gZnJvbSAnLi9jYXNlLWVkaXQvY2FzZS1lZGl0LmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBDYXNlRXZlbnRDb21wbGV0aW9uQ29tcG9uZW50LFxuICBDYXNlRXZlbnRDb21wbGV0aW9uVGFza0NhbmNlbGxlZENvbXBvbmVudCxcbiAgQ2FzZUV2ZW50Q29tcGxldGlvblRhc2tSZWFzc2lnbmVkQ29tcG9uZW50XG59IGZyb20gJy4vY2FzZS1ldmVudC1jb21wbGV0aW9uJztcbmltcG9ydCB7IENhc2VQcm9ncmVzc0NvbXBvbmVudCB9IGZyb20gJy4vY2FzZS1wcm9ncmVzcy9jYXNlLXByb2dyZXNzLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBFdmVudENvbXBsZXRpb25TdGF0ZU1hY2hpbmVTZXJ2aWNlLFxuICBFdmVudFRyaWdnZXJTZXJ2aWNlLFxuICBKdWRpY2lhbHdvcmtlclNlcnZpY2UsXG4gIFBhZ2VWYWxpZGF0aW9uU2VydmljZSxcbiAgV2l6YXJkRmFjdG9yeVNlcnZpY2UsXG4gIFdvcmtBbGxvY2F0aW9uU2VydmljZVxufSBmcm9tICcuL3NlcnZpY2VzJztcbmltcG9ydCB7IENhc2VFZGl0V2l6YXJkR3VhcmQgfSBmcm9tICcuL3NlcnZpY2VzL2Nhc2UtZWRpdC13aXphcmQuZ3VhcmQnO1xuaW1wb3J0IHsgQ2FzZXdvcmtlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2Nhc2Utd29ya2VyLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBSb3V0ZXJNb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBQYWxldHRlTW9kdWxlLFxuICAgICAgICBMYWJlbFN1YnN0aXR1dG9yTW9kdWxlLFxuICAgICAgICBDb25kaXRpb25hbFNob3dNb2R1bGUsXG4gICAgICAgIEVycm9yc01vZHVsZSxcbiAgICAgICAgUG9ydGFsTW9kdWxlXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgQ2FzZUVkaXRDb25maXJtQ29tcG9uZW50LFxuICAgICAgICBDYXNlRWRpdENvbXBvbmVudCxcbiAgICAgICAgQ2FzZUVkaXRQYWdlQ29tcG9uZW50LFxuICAgICAgICBDYXNlRWRpdEZvcm1Db21wb25lbnQsXG4gICAgICAgIENhc2VFZGl0U3VibWl0Q29tcG9uZW50LFxuICAgICAgICBDYXNlRXZlbnRDb21wbGV0aW9uQ29tcG9uZW50LFxuICAgICAgICBDYXNlRXZlbnRDb21wbGV0aW9uVGFza0NhbmNlbGxlZENvbXBvbmVudCxcbiAgICAgICAgQ2FzZUV2ZW50Q29tcGxldGlvblRhc2tSZWFzc2lnbmVkQ29tcG9uZW50LFxuICAgICAgICBDYXNlQ3JlYXRlQ29tcG9uZW50LFxuICAgICAgICBDYXNlUHJvZ3Jlc3NDb21wb25lbnQsXG4gICAgICAgIExvYWRpbmdTcGlubmVyQ29tcG9uZW50XG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIENhc2VFZGl0Q29uZmlybUNvbXBvbmVudCxcbiAgICAgICAgQ2FzZUVkaXRDb21wb25lbnQsXG4gICAgICAgIENhc2VFZGl0UGFnZUNvbXBvbmVudCxcbiAgICAgICAgQ2FzZUVkaXRGb3JtQ29tcG9uZW50LFxuICAgICAgICBDYXNlRWRpdFN1Ym1pdENvbXBvbmVudCxcbiAgICAgICAgQ2FzZUNyZWF0ZUNvbXBvbmVudCxcbiAgICAgICAgQ2FzZVByb2dyZXNzQ29tcG9uZW50LFxuICAgICAgICBDYWxsYmFja0Vycm9yc0NvbXBvbmVudCxcbiAgICAgICAgTG9hZGluZ1NwaW5uZXJDb21wb25lbnRcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBGaWVsZHNVdGlscyxcbiAgICAgICAgRmllbGRzUHVyZ2VyLFxuICAgICAgICBDb25kaXRpb25hbFNob3dSZWdpc3RyYXJTZXJ2aWNlLFxuICAgICAgICBXaXphcmRGYWN0b3J5U2VydmljZSxcbiAgICAgICAgRmllbGRUeXBlU2FuaXRpc2VyLFxuICAgICAgICBGb3JtVmFsdWVTZXJ2aWNlLFxuICAgICAgICBGb3JtRXJyb3JTZXJ2aWNlLFxuICAgICAgICBGb3JtYXRUcmFuc2xhdG9yU2VydmljZSxcbiAgICAgICAgSHR0cFNlcnZpY2UsXG4gICAgICAgIFBhZ2VWYWxpZGF0aW9uU2VydmljZSxcbiAgICAgICAgQ2FzZUZpZWxkU2VydmljZSxcbiAgICAgICAgT3JkZXJTZXJ2aWNlLFxuICAgICAgICBFdmVudFRyaWdnZXJTZXJ2aWNlLFxuICAgICAgICBQcm9maWxlU2VydmljZSxcbiAgICAgICAgUHJvZmlsZU5vdGlmaWVyLFxuICAgICAgICBBZGRyZXNzZXNTZXJ2aWNlLFxuICAgICAgICBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLFxuICAgICAgICBSb3V0ZXJIZWxwZXJTZXJ2aWNlLFxuICAgICAgICBQcm9maWxlU2VydmljZSxcbiAgICAgICAgQ2FzZUVkaXRXaXphcmRHdWFyZCxcbiAgICAgICAgV29ya0FsbG9jYXRpb25TZXJ2aWNlLFxuICAgICAgICBKdWRpY2lhbHdvcmtlclNlcnZpY2UsXG4gICAgICAgIENhc2V3b3JrZXJTZXJ2aWNlLFxuICAgICAgICBTZXNzaW9uU3RvcmFnZVNlcnZpY2UsXG4gICAgICAgIEV2ZW50Q29tcGxldGlvblN0YXRlTWFjaGluZVNlcnZpY2VcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIENhc2VFZGl0b3JNb2R1bGUge31cbiJdfQ==
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1lZGl0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL2Nhc2UtZWRpdG9yL2Nhc2UtZWRpdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUNMLCtCQUErQixFQUNoQyxNQUFNLCtFQUErRSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxF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b0JBQ2hCLFlBQVk7b0JBQ1osbUJBQW1CO29CQUNuQixjQUFjO29CQUNkLGVBQWU7b0JBQ2YsZ0JBQWdCO29CQUNoQix5QkFBeUI7b0JBQ3pCLG1CQUFtQjtvQkFDbkIsY0FBYztvQkFDZCxtQkFBbUI7b0JBQ25CLHFCQUFxQjtvQkFDckIscUJBQXFCO29CQUNyQixpQkFBaUI7b0JBQ2pCLHFCQUFxQjtvQkFDckIsa0NBQWtDO2lCQUNuQzthQUNGOzt1QkE5Q0cscUJBQXFCO3VCQUNyQix1QkFBdUIsNlZBQ3ZCLDRCQUE0Qjt1QkFHNUIsbUJBQW1CLFlBUG5CLGlCQUFpQjt1QkFRakIscUJBQXFCLFlBUnJCLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBCYW5uZXJzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9iYW5uZXJzL2Jhbm5lcnMubW9kdWxlJztcbmltcG9ydCB7IENhbGxiYWNrRXJyb3JzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9lcnJvcic7XG5pbXBvcnQgeyBDb25kaXRpb25hbFNob3dNb2R1bGUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2NvbmRpdGlvbmFsLXNob3cnO1xuaW1wb3J0IHtcbiAgQ29uZGl0aW9uYWxTaG93UmVnaXN0cmFyU2VydmljZVxufSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2NvbmRpdGlvbmFsLXNob3cvc2VydmljZXMvY29uZGl0aW9uYWwtc2hvdy1yZWdpc3RyYXIuc2VydmljZSc7XG5pbXBvcnQgeyBMYWJlbFN1YnN0aXR1dG9yTW9kdWxlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9zdWJzdGl0dXRvci9sYWJlbC1zdWJzdGl0dXRvci5tb2R1bGUnO1xuaW1wb3J0IHsgQWRkcmVzc2VzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FkZHJlc3Nlcyc7XG5pbXBvcnQgeyBDYXNlRmllbGRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FzZS1maWVsZHMvY2FzZS1maWVsZC5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1hdFRyYW5zbGF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FzZS1maWVsZHMvZm9ybWF0LXRyYW5zbGF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZG9jdW1lbnQtbWFuYWdlbWVudCc7XG5pbXBvcnQgeyBGaWVsZHNQdXJnZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maWVsZHMvZmllbGRzLnB1cmdlcic7XG5pbXBvcnQgeyBGaWVsZHNVdGlscyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpZWxkcy9maWVsZHMudXRpbHMnO1xuaW1wb3J0IHsgRmllbGRUeXBlU2FuaXRpc2VyIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZm9ybS9maWVsZC10eXBlLXNhbml0aXNlcic7XG5pbXBvcnQgeyBGb3JtRXJyb3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZm9ybS9mb3JtLWVycm9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybVZhbHVlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm0vZm9ybS12YWx1ZS5zZXJ2aWNlJztcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaHR0cC9odHRwLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3JkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3JkZXIvb3JkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9maWxlTm90aWZpZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wcm9maWxlL3Byb2ZpbGUubm90aWZpZXInO1xuaW1wb3J0IHsgUHJvZmlsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wcm9maWxlL3Byb2ZpbGUuc2VydmljZSc7XG5pbXBvcnQgeyBSb3V0ZXJIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcm91dGVyJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Nlc3Npb24vc2Vzc2lvbi1zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXJyb3JzTW9kdWxlIH0gZnJvbSAnLi4vZXJyb3IvZXJyb3JzLm1vZHVsZSc7XG5pbXBvcnQgeyBMb2FkaW5nU3Bpbm5lck1vZHVsZSB9IGZyb20gJy4uL2xvYWRpbmctc3Bpbm5lci9sb2FkaW5nLXNwaW5uZXIubW9kdWxlJztcbmltcG9ydCB7IFBhbGV0dGVNb2R1bGUgfSBmcm9tICcuLi9wYWxldHRlL3BhbGV0dGUubW9kdWxlJztcbmltcG9ydCB7IENhc2VDcmVhdGVDb21wb25lbnQgfSBmcm9tICcuL2Nhc2UtY3JlYXRlL2Nhc2UtY3JlYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXNlRWRpdENvbmZpcm1Db21wb25lbnQgfSBmcm9tICcuL2Nhc2UtZWRpdC1jb25maXJtL2Nhc2UtZWRpdC1jb25maXJtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXNlRWRpdEZvcm1Db21wb25lbnQgfSBmcm9tICcuL2Nhc2UtZWRpdC1mb3JtL2Nhc2UtZWRpdC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXNlRWRpdFBhZ2VDb21wb25lbnQgfSBmcm9tICcuL2Nhc2UtZWRpdC1wYWdlL2Nhc2UtZWRpdC1wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXNlRWRpdFN1Ym1pdENvbXBvbmVudCB9IGZyb20gJy4vY2FzZS1lZGl0LXN1Ym1pdC9jYXNlLWVkaXQtc3VibWl0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXNlRWRpdENvbXBvbmVudCB9IGZyb20gJy4vY2FzZS1lZGl0L2Nhc2UtZWRpdC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQ2FzZUV2ZW50Q29tcGxldGlvbkNvbXBvbmVudCxcbiAgQ2FzZUV2ZW50Q29tcGxldGlvblRhc2tDYW5jZWxsZWRDb21wb25lbnQsXG4gIENhc2VFdmVudENvbXBsZXRpb25UYXNrUmVhc3NpZ25lZENvbXBvbmVudFxufSBmcm9tICcuL2Nhc2UtZXZlbnQtY29tcGxldGlvbic7XG5pbXBvcnQgeyBDYXNlUHJvZ3Jlc3NDb21wb25lbnQgfSBmcm9tICcuL2Nhc2UtcHJvZ3Jlc3MvY2FzZS1wcm9ncmVzcy5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQ2FzZU5vdGlmaWVyLFxuICBFdmVudENvbXBsZXRpb25TdGF0ZU1hY2hpbmVTZXJ2aWNlLFxuICBFdmVudFRyaWdnZXJTZXJ2aWNlLFxuICBKdWRpY2lhbHdvcmtlclNlcnZpY2UsXG4gIFBhZ2VWYWxpZGF0aW9uU2VydmljZSxcbiAgV2l6YXJkRmFjdG9yeVNlcnZpY2UsXG4gIFdvcmtBbGxvY2F0aW9uU2VydmljZVxufSBmcm9tICcuL3NlcnZpY2VzJztcbmltcG9ydCB7IENhc2VFZGl0V2l6YXJkR3VhcmQgfSBmcm9tICcuL3NlcnZpY2VzL2Nhc2UtZWRpdC13aXphcmQuZ3VhcmQnO1xuaW1wb3J0IHsgQ2FzZXdvcmtlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2Nhc2Utd29ya2VyLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFBhbGV0dGVNb2R1bGUsXG4gICAgTGFiZWxTdWJzdGl0dXRvck1vZHVsZSxcbiAgICBDb25kaXRpb25hbFNob3dNb2R1bGUsXG4gICAgRXJyb3JzTW9kdWxlLFxuICAgIFBvcnRhbE1vZHVsZSxcbiAgICBMb2FkaW5nU3Bpbm5lck1vZHVsZSxcbiAgICBCYW5uZXJzTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIENhc2VFZGl0Q29uZmlybUNvbXBvbmVudCxcbiAgICBDYXNlRWRpdENvbXBvbmVudCxcbiAgICBDYXNlRWRpdFBhZ2VDb21wb25lbnQsXG4gICAgQ2FzZUVkaXRGb3JtQ29tcG9uZW50LFxuICAgIENhc2VFZGl0U3VibWl0Q29tcG9uZW50LFxuICAgIENhc2VFdmVudENvbXBsZXRpb25Db21wb25lbnQsXG4gICAgQ2FzZUV2ZW50Q29tcGxldGlvblRhc2tDYW5jZWxsZWRDb21wb25lbnQsXG4gICAgQ2FzZUV2ZW50Q29tcGxldGlvblRhc2tSZWFzc2lnbmVkQ29tcG9uZW50LFxuICAgIENhc2VDcmVhdGVDb21wb25lbnQsXG4gICAgQ2FzZVByb2dyZXNzQ29tcG9uZW50XG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBDYXNlRWRpdENvbmZpcm1Db21wb25lbnQsXG4gICAgQ2FzZUVkaXRDb21wb25lbnQsXG4gICAgQ2FzZUVkaXRQYWdlQ29tcG9uZW50LFxuICAgIENhc2VFZGl0Rm9ybUNvbXBvbmVudCxcbiAgICBDYXNlRWRpdFN1Ym1pdENvbXBvbmVudCxcbiAgICBDYXNlQ3JlYXRlQ29tcG9uZW50LFxuICAgIENhc2VQcm9ncmVzc0NvbXBvbmVudCxcbiAgICBDYWxsYmFja0Vycm9yc0NvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBDYXNlTm90aWZpZXIsXG4gICAgRmllbGRzVXRpbHMsXG4gICAgRmllbGRzUHVyZ2VyLFxuICAgIENvbmRpdGlvbmFsU2hvd1JlZ2lzdHJhclNlcnZpY2UsXG4gICAgV2l6YXJkRmFjdG9yeVNlcnZpY2UsXG4gICAgRmllbGRUeXBlU2FuaXRpc2VyLFxuICAgIEZvcm1WYWx1ZVNlcnZpY2UsXG4gICAgRm9ybUVycm9yU2VydmljZSxcbiAgICBGb3JtYXRUcmFuc2xhdG9yU2VydmljZSxcbiAgICBIdHRwU2VydmljZSxcbiAgICBQYWdlVmFsaWRhdGlvblNlcnZpY2UsXG4gICAgQ2FzZUZpZWxkU2VydmljZSxcbiAgICBPcmRlclNlcnZpY2UsXG4gICAgRXZlbnRUcmlnZ2VyU2VydmljZSxcbiAgICBQcm9maWxlU2VydmljZSxcbiAgICBQcm9maWxlTm90aWZpZXIsXG4gICAgQWRkcmVzc2VzU2VydmljZSxcbiAgICBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLFxuICAgIFJvdXRlckhlbHBlclNlcnZpY2UsXG4gICAgUHJvZmlsZVNlcnZpY2UsXG4gICAgQ2FzZUVkaXRXaXphcmRHdWFyZCxcbiAgICBXb3JrQWxsb2NhdGlvblNlcnZpY2UsXG4gICAgSnVkaWNpYWx3b3JrZXJTZXJ2aWNlLFxuICAgIENhc2V3b3JrZXJTZXJ2aWNlLFxuICAgIFNlc3Npb25TdG9yYWdlU2VydmljZSxcbiAgICBFdmVudENvbXBsZXRpb25TdGF0ZU1hY2hpbmVTZXJ2aWNlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ2FzZUVkaXRvck1vZHVsZSB7IH1cbiJdfQ==
@@ -1,19 +1,51 @@
1
1
  import { Injectable } from '@angular/core';
2
+ import { plainToClassFromExist } from 'class-transformer';
2
3
  import { BehaviorSubject } from 'rxjs';
4
+ import { map } from 'rxjs/operators';
3
5
  import { CaseView } from '../../../domain';
6
+ import { CasesService } from './cases.service';
4
7
  import * as i0 from "@angular/core";
8
+ import * as i1 from "./cases.service";
5
9
  export class CaseNotifier {
6
- constructor() {
10
+ constructor(casesService) {
11
+ this.casesService = casesService;
7
12
  this.caseViewSource = new BehaviorSubject(new CaseView());
8
13
  this.caseView = this.caseViewSource.asObservable();
9
14
  }
15
+ removeCachedCase() {
16
+ this.cachedCaseView = null;
17
+ }
10
18
  announceCase(c) {
11
19
  this.caseViewSource.next(c);
12
20
  }
21
+ fetchAndRefresh(cid) {
22
+ return this.casesService
23
+ .getCaseViewV2(cid)
24
+ .pipe(map(caseView => {
25
+ this.cachedCaseView = plainToClassFromExist(new CaseView(), caseView);
26
+ this.setBasicFields(this.cachedCaseView.tabs);
27
+ this.announceCase(this.cachedCaseView);
28
+ return this.cachedCaseView;
29
+ }));
30
+ }
31
+ setBasicFields(tabs) {
32
+ tabs.forEach((t) => {
33
+ const caseName = t.fields.find(f => f.id === CaseNotifier.CASE_NAME);
34
+ const caseLocation = t.fields.find(f => f.id === CaseNotifier.CASE_LOCATION);
35
+ if (caseName || caseLocation) {
36
+ this.cachedCaseView.basicFields = {
37
+ caseNameHmctsInternal: caseName ? caseName.value : null,
38
+ caseManagementLocation: caseLocation ? caseLocation.value : null
39
+ };
40
+ }
41
+ });
42
+ }
13
43
  }
14
- CaseNotifier.ɵfac = function CaseNotifier_Factory(t) { return new (t || CaseNotifier)(); };
44
+ CaseNotifier.CASE_NAME = 'caseNameHmctsInternal';
45
+ CaseNotifier.CASE_LOCATION = 'caseManagementLocation';
46
+ CaseNotifier.ɵfac = function CaseNotifier_Factory(t) { return new (t || CaseNotifier)(i0.ɵɵinject(i1.CasesService)); };
15
47
  CaseNotifier.ɵprov = i0.ɵɵdefineInjectable({ token: CaseNotifier, factory: CaseNotifier.ɵfac });
16
48
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseNotifier, [{
17
49
  type: Injectable
18
- }], null, null); })();
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS5ub3RpZmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9zZXJ2aWNlcy9jYXNlLm5vdGlmaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRzNDLE1BQU0sT0FBTyxZQUFZO0lBRHpCO1FBRW9CLG1CQUFjLEdBQThCLElBQUksZUFBZSxDQUFXLElBQUksUUFBUSxFQUFFLENBQUMsQ0FBQztRQUVuRyxhQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztLQUt4RDtJQUhVLFlBQVksQ0FBQyxDQUFXO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7O3dFQVBRLFlBQVk7b0RBQVosWUFBWSxXQUFaLFlBQVk7dUZBQVosWUFBWTtjQUR4QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDYXNlVmlldyB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYXNlTm90aWZpZXIge1xuICAgIHB1YmxpYyByZWFkb25seSBjYXNlVmlld1NvdXJjZTogQmVoYXZpb3JTdWJqZWN0PENhc2VWaWV3PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q2FzZVZpZXc+KG5ldyBDYXNlVmlldygpKTtcblxuICAgIHB1YmxpYyBjYXNlVmlldyA9IHRoaXMuY2FzZVZpZXdTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHVibGljIGNhY2hlZENhc2VWaWV3OiBDYXNlVmlldztcbiAgICBwdWJsaWMgYW5ub3VuY2VDYXNlKGM6IENhc2VWaWV3KSB7XG4gICAgICAgIHRoaXMuY2FzZVZpZXdTb3VyY2UubmV4dChjKTtcbiAgICB9XG59XG4iXX0=
50
+ }], function () { return [{ type: i1.CasesService }]; }, null); })();
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS5ub3RpZmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9zZXJ2aWNlcy9jYXNlLm5vdGlmaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFXLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRy9DLE1BQU0sT0FBTyxZQUFZO0lBT3JCLFlBQTZCLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBSnRDLG1CQUFjLEdBQThCLElBQUksZUFBZSxDQUFXLElBQUksUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNwRyxhQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUdLLENBQUM7SUFFcEQsZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFFTSxZQUFZLENBQUMsQ0FBVztRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRU0sZUFBZSxDQUFDLEdBQVc7UUFDaEMsT0FBTyxJQUFJLENBQUMsWUFBWTthQUNyQixhQUFhLENBQUMsR0FBRyxDQUFDO2FBQ2xCLElBQUksQ0FDSCxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDYixJQUFJLENBQUMsY0FBYyxHQUFHLHFCQUFxQixDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDdEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVNLGNBQWMsQ0FBQyxJQUFlO1FBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNqQixNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3JFLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDN0UsSUFBSSxRQUFRLElBQUksWUFBWSxFQUFFO2dCQUM1QixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsR0FBRztvQkFDaEMscUJBQXFCLEVBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJO29CQUN4RCxzQkFBc0IsRUFBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7aUJBQ2xFLENBQUM7YUFDSDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF4Q3NCLHNCQUFTLEdBQUcsdUJBQXVCLENBQUM7QUFDcEMsMEJBQWEsR0FBRyx3QkFBd0IsQ0FBQzt3RUFGdkQsWUFBWTtvREFBWixZQUFZLFdBQVosWUFBWTt1RkFBWixZQUFZO2NBRHhCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3NGcm9tRXhpc3QgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENhc2VUYWIsIENhc2VWaWV3IH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IENhc2VzU2VydmljZSB9IGZyb20gJy4vY2FzZXMuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYXNlTm90aWZpZXIge1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ0FTRV9OQU1FID0gJ2Nhc2VOYW1lSG1jdHNJbnRlcm5hbCc7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBDQVNFX0xPQ0FUSU9OID0gJ2Nhc2VNYW5hZ2VtZW50TG9jYXRpb24nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZVZpZXdTb3VyY2U6IEJlaGF2aW9yU3ViamVjdDxDYXNlVmlldz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENhc2VWaWV3PihuZXcgQ2FzZVZpZXcoKSk7XG4gICAgcHVibGljIGNhc2VWaWV3ID0gdGhpcy5jYXNlVmlld1NvdXJjZS5hc09ic2VydmFibGUoKTtcbiAgICBwdWJsaWMgY2FjaGVkQ2FzZVZpZXc6IENhc2VWaWV3O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjYXNlc1NlcnZpY2U6IENhc2VzU2VydmljZSkge31cblxuICAgIHB1YmxpYyByZW1vdmVDYWNoZWRDYXNlKCkge1xuICAgICAgdGhpcy5jYWNoZWRDYXNlVmlldyA9IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGFubm91bmNlQ2FzZShjOiBDYXNlVmlldykge1xuICAgICAgICB0aGlzLmNhc2VWaWV3U291cmNlLm5leHQoYyk7XG4gICAgfVxuXG4gICAgcHVibGljIGZldGNoQW5kUmVmcmVzaChjaWQ6IHN0cmluZykge1xuICAgICAgcmV0dXJuIHRoaXMuY2FzZXNTZXJ2aWNlXG4gICAgICAgIC5nZXRDYXNlVmlld1YyKGNpZClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKGNhc2VWaWV3ID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2FjaGVkQ2FzZVZpZXcgPSBwbGFpblRvQ2xhc3NGcm9tRXhpc3QobmV3IENhc2VWaWV3KCksIGNhc2VWaWV3KTtcbiAgICAgICAgICAgIHRoaXMuc2V0QmFzaWNGaWVsZHModGhpcy5jYWNoZWRDYXNlVmlldy50YWJzKTtcbiAgICAgICAgICAgIHRoaXMuYW5ub3VuY2VDYXNlKHRoaXMuY2FjaGVkQ2FzZVZpZXcpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2FjaGVkQ2FzZVZpZXc7XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEJhc2ljRmllbGRzKHRhYnM6IENhc2VUYWJbXSk6IHZvaWQge1xuICAgICAgdGFicy5mb3JFYWNoKCh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGNhc2VOYW1lID0gdC5maWVsZHMuZmluZChmID0+IGYuaWQgPT09IENhc2VOb3RpZmllci5DQVNFX05BTUUpO1xuICAgICAgICBjb25zdCBjYXNlTG9jYXRpb24gPSB0LmZpZWxkcy5maW5kKGYgPT4gZi5pZCA9PT0gQ2FzZU5vdGlmaWVyLkNBU0VfTE9DQVRJT04pO1xuICAgICAgICBpZiAoY2FzZU5hbWUgfHwgY2FzZUxvY2F0aW9uKSB7XG4gICAgICAgICAgdGhpcy5jYWNoZWRDYXNlVmlldy5iYXNpY0ZpZWxkcyA9IHtcbiAgICAgICAgICAgIGNhc2VOYW1lSG1jdHNJbnRlcm5hbCA6IGNhc2VOYW1lID8gY2FzZU5hbWUudmFsdWUgOiBudWxsLFxuICAgICAgICAgICAgY2FzZU1hbmFnZW1lbnRMb2NhdGlvbiA6IGNhc2VMb2NhdGlvbiA/IGNhc2VMb2NhdGlvbi52YWx1ZSA6IG51bGxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG59XG4iXX0=
@@ -5,26 +5,16 @@ import { throwError } from 'rxjs';
5
5
  import { catchError, finalize, map, tap } from 'rxjs/operators';
6
6
  import { AbstractAppConfig } from '../../../../app.config';
7
7
  import { ShowCondition } from '../../../directives';
8
- import { CaseEventTrigger } from '../../../domain/case-view/case-event-trigger.model';
9
- import { Draft } from '../../../domain/draft.model';
10
- import { FieldsUtils } from '../../../services/fields/fields.utils';
11
- import { HttpErrorService } from '../../../services/http/http-error.service';
12
- import { HttpService } from '../../../services/http/http.service';
13
- import { LoadingService } from '../../../services/loading/loading.service';
14
- import { OrderService } from '../../../services/order/order.service';
15
- import { SessionStorageService } from '../../../services/session/session-storage.service';
8
+ import { CaseEventTrigger, Draft } from '../../../domain';
9
+ import { FieldsUtils, HttpErrorService, HttpService, LoadingService, OrderService, SessionStorageService } from '../../../services';
16
10
  import { CaseAccessUtils } from '../case-access-utils';
17
11
  import { WizardPageFieldToCaseFieldMapper } from './wizard-page-field-to-case-field.mapper';
18
12
  import { WorkAllocationService } from './work-allocation.service';
19
13
  import * as i0 from "@angular/core";
20
- import * as i1 from "../../../services/http/http.service";
14
+ import * as i1 from "../../../services";
21
15
  import * as i2 from "../../../../app.config";
22
- import * as i3 from "../../../services/order/order.service";
23
- import * as i4 from "../../../services/http/http-error.service";
24
- import * as i5 from "./wizard-page-field-to-case-field.mapper";
25
- import * as i6 from "./work-allocation.service";
26
- import * as i7 from "../../../services/loading/loading.service";
27
- import * as i8 from "../../../services/session/session-storage.service";
16
+ import * as i3 from "./wizard-page-field-to-case-field.mapper";
17
+ import * as i4 from "./work-allocation.service";
28
18
  export class CasesService {
29
19
  constructor(http, appConfig, orderService, errorService, wizardPageFieldToCaseFieldMapper, workAllocationService, loadingService, sessionStorageService) {
30
20
  this.http = http;
@@ -35,11 +25,20 @@ export class CasesService {
35
25
  this.workAllocationService = workAllocationService;
36
26
  this.loadingService = loadingService;
37
27
  this.sessionStorageService = sessionStorageService;
38
- /**
39
- * @deprecated Use `CasesService::getCaseView` instead
40
- */
41
28
  this.get = this.getCaseView;
42
29
  }
30
+ static updateChallengedAccessRequestAttributes(httpClient, caseId, attributesToUpdate) {
31
+ return httpClient.post(`/api/challenged-access-request/update-attributes`, {
32
+ caseId,
33
+ attributesToUpdate
34
+ });
35
+ }
36
+ static updateSpecificAccessRequestAttributes(httpClient, caseId, attributesToUpdate) {
37
+ return httpClient.post(`/api/specific-access-request/update-attributes`, {
38
+ caseId,
39
+ attributesToUpdate
40
+ });
41
+ }
43
42
  getCaseView(jurisdictionId, caseTypeId, caseId) {
44
43
  const url = this.appConfig.getApiUrl()
45
44
  + `/caseworkers/:uid`
@@ -154,43 +153,6 @@ export class CasesService {
154
153
  return throwError(error);
155
154
  }));
156
155
  }
157
- getCourtOrHearingCentreName(locationId) {
158
- return this.http.get(`${this.appConfig.getLocationRefApiUrl()}/building-locations?epimms_id=${locationId}`);
159
- }
160
- createChallengedAccessRequest(caseId, request) {
161
- // Assignment API endpoint
162
- const userInfoStr = this.sessionStorageService.getItem('userDetails');
163
- const camUtils = new CaseAccessUtils();
164
- let userInfo;
165
- if (userInfoStr) {
166
- userInfo = JSON.parse(userInfoStr);
167
- }
168
- const roleCategory = camUtils.getMappedRoleCategory(userInfo.roles, userInfo.roleCategories);
169
- const roleName = camUtils.getAMRoleName('challenged', roleCategory);
170
- const beginTime = new Date();
171
- const endTime = new Date(new Date().setUTCHours(23, 59, 59, 999));
172
- const id = userInfo.id ? userInfo.id : userInfo.uid;
173
- const payload = camUtils.getAMPayload(id, id, roleName, roleCategory, 'CHALLENGED', caseId, request, beginTime, endTime);
174
- return this.http.post(`/api/challenged-access-request`, payload);
175
- }
176
- createSpecificAccessRequest(caseId, sar) {
177
- // Assignment API endpoint
178
- const userInfoStr = this.sessionStorageService.getItem('userDetails');
179
- const camUtils = new CaseAccessUtils();
180
- let userInfo;
181
- if (userInfoStr) {
182
- userInfo = JSON.parse(userInfoStr);
183
- }
184
- const roleCategory = camUtils.getMappedRoleCategory(userInfo.roles, userInfo.roleCategories);
185
- const roleName = camUtils.getAMRoleName('specific', roleCategory);
186
- const id = userInfo.id ? userInfo.id : userInfo.uid;
187
- const payload = camUtils.getAMPayload(null, id, roleName, roleCategory, 'SPECIFIC', caseId, sar);
188
- payload.roleRequest = Object.assign(Object.assign({}, payload.roleRequest), { process: 'specific-access', replaceExisting: true, assignerId: payload.requestedRoles[0].actorId, reference: `${caseId}/${roleName}/${payload.requestedRoles[0].actorId}` });
189
- payload.requestedRoles[0] = Object.assign(Object.assign({}, payload.requestedRoles[0]), { roleName: 'specific-access-requested', roleCategory, classification: 'PRIVATE', endTime: new Date(new Date().setDate(new Date().getDate() + 30)), beginTime: null, grantType: 'BASIC', readOnly: true });
190
- payload.requestedRoles[0].attributes = Object.assign(Object.assign({}, payload.requestedRoles[0].attributes), { requestedRole: roleName });
191
- payload.requestedRoles[0].notes[0] = Object.assign(Object.assign({}, payload.requestedRoles[0].notes[0]), { userId: payload.requestedRoles[0].actorId });
192
- return this.http.post(`/api/specific-access-request`, payload);
193
- }
194
156
  buildEventTriggerUrl(caseTypeId, eventTriggerId, caseId, ignoreWarning) {
195
157
  let url = this.appConfig.getCaseDataUrl() + `/internal`;
196
158
  if (Draft.isDraft(caseId)) {
@@ -250,6 +212,44 @@ export class CasesService {
250
212
  }
251
213
  return false;
252
214
  }
215
+ getCourtOrHearingCentreName(locationId) {
216
+ return this.http.post(`/api/locations/getLocationsById`, { locations: [{ locationId }] });
217
+ }
218
+ createChallengedAccessRequest(caseId, request) {
219
+ // Assignment API endpoint
220
+ const userInfoStr = this.sessionStorageService.getItem('userDetails');
221
+ const camUtils = new CaseAccessUtils();
222
+ let userInfo;
223
+ if (userInfoStr) {
224
+ userInfo = JSON.parse(userInfoStr);
225
+ }
226
+ const roleCategory = camUtils.getMappedRoleCategory(userInfo.roles, userInfo.roleCategories);
227
+ const roleName = camUtils.getAMRoleName('challenged', roleCategory);
228
+ const beginTime = new Date();
229
+ const endTime = new Date(new Date().setUTCHours(23, 59, 59, 999));
230
+ const id = userInfo.id ? userInfo.id : userInfo.uid;
231
+ const isNew = true;
232
+ const payload = camUtils.getAMPayload(id, id, roleName, roleCategory, 'CHALLENGED', caseId, request, beginTime, endTime, isNew);
233
+ return this.http.post(`/api/challenged-access-request`, payload);
234
+ }
235
+ createSpecificAccessRequest(caseId, sar) {
236
+ // Assignment API endpoint
237
+ const userInfoStr = this.sessionStorageService.getItem('userDetails');
238
+ const camUtils = new CaseAccessUtils();
239
+ let userInfo;
240
+ if (userInfoStr) {
241
+ userInfo = JSON.parse(userInfoStr);
242
+ }
243
+ const roleCategory = camUtils.getMappedRoleCategory(userInfo.roles, userInfo.roleCategories);
244
+ const roleName = camUtils.getAMRoleName('specific', roleCategory);
245
+ const id = userInfo.id ? userInfo.id : userInfo.uid;
246
+ const payload = camUtils.getAMPayload(null, id, roleName, roleCategory, 'SPECIFIC', caseId, sar, null, null, true);
247
+ payload.roleRequest = Object.assign(Object.assign({}, payload.roleRequest), { process: 'specific-access', replaceExisting: true, assignerId: payload.requestedRoles[0].actorId, reference: `${caseId}/${roleName}/${payload.requestedRoles[0].actorId}` });
248
+ payload.requestedRoles[0] = Object.assign(Object.assign({}, payload.requestedRoles[0]), { roleName: 'specific-access-requested', roleCategory, classification: 'PRIVATE', endTime: new Date(new Date().setDate(new Date().getDate() + 30)), beginTime: null, grantType: 'BASIC', readOnly: true });
249
+ payload.requestedRoles[0].attributes = Object.assign(Object.assign({}, payload.requestedRoles[0].attributes), { requestedRole: roleName, specificAccessReason: sar.specificReason });
250
+ payload.requestedRoles[0].notes[0] = Object.assign(Object.assign({}, payload.requestedRoles[0].notes[0]), { userId: payload.requestedRoles[0].actorId });
251
+ return this.http.post(`/api/specific-access-request`, payload);
252
+ }
253
253
  }
254
254
  // Internal (UI) API
255
255
  CasesService.V2_MEDIATYPE_CASE_VIEW = 'application/vnd.uk.gov.hmcts.ccd-data-store-api.ui-case-view.v2+json';
@@ -262,9 +262,9 @@ CasesService.V2_MEDIATYPE_CASE_DATA_VALIDATE = 'application/vnd.uk.gov.hmcts.ccd
262
262
  CasesService.V2_MEDIATYPE_CREATE_EVENT = 'application/vnd.uk.gov.hmcts.ccd-data-store-api.create-event.v2+json;charset=UTF-8';
263
263
  CasesService.V2_MEDIATYPE_CREATE_CASE = 'application/vnd.uk.gov.hmcts.ccd-data-store-api.create-case.v2+json;charset=UTF-8';
264
264
  CasesService.PUI_CASE_MANAGER = 'pui-case-manager';
265
- CasesService.ɵfac = function CasesService_Factory(t) { return new (t || CasesService)(i0.ɵɵinject(i1.HttpService), i0.ɵɵinject(i2.AbstractAppConfig), i0.ɵɵinject(i3.OrderService), i0.ɵɵinject(i4.HttpErrorService), i0.ɵɵinject(i5.WizardPageFieldToCaseFieldMapper), i0.ɵɵinject(i6.WorkAllocationService), i0.ɵɵinject(i7.LoadingService), i0.ɵɵinject(i8.SessionStorageService)); };
265
+ CasesService.ɵfac = function CasesService_Factory(t) { return new (t || CasesService)(i0.ɵɵinject(i1.HttpService), i0.ɵɵinject(i2.AbstractAppConfig), i0.ɵɵinject(i1.OrderService), i0.ɵɵinject(i1.HttpErrorService), i0.ɵɵinject(i3.WizardPageFieldToCaseFieldMapper), i0.ɵɵinject(i4.WorkAllocationService), i0.ɵɵinject(i1.LoadingService), i0.ɵɵinject(i1.SessionStorageService)); };
266
266
  CasesService.ɵprov = i0.ɵɵdefineInjectable({ token: CasesService, factory: CasesService.ɵfac });
267
267
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CasesService, [{
268
268
  type: Injectable
269
- }], function () { return [{ type: i1.HttpService }, { type: i2.AbstractAppConfig }, { type: i3.OrderService }, { type: i4.HttpErrorService }, { type: i5.WizardPageFieldToCaseFieldMapper }, { type: i6.WorkAllocationService }, { type: i7.LoadingService }, { type: i8.SessionStorageService }]; }, null); })();
270
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9zZXJ2aWNlcy9jYXNlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFPdEYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXBELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMxRixPQUFPLEVB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QU8sQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3JHO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztBQTlWRCxvQkFBb0I7QUFDRyxtQ0FBc0IsR0FBRyxzRUFBc0UsQ0FBQztBQUNoRyw0Q0FBK0IsR0FDcEQsNkZBQTZGLENBQUM7QUFDekUsNkNBQWdDLEdBQ3JELDhGQUE4RixDQUFDO0FBQzFFLDZDQUFnQyxHQUNyRCw4RkFBOEYsQ0FBQztBQUVqRyw0QkFBNEI7QUFFTCx3Q0FBMkIsR0FDaEQsc0ZBQXNGLENBQUM7QUFFbEUsNENBQStCLEdBQ3BELDBGQUEwRixDQUFDO0FBQ3RFLHNDQUF5QixHQUM5QyxvRkFBb0YsQ0FBQztBQUNoRSxxQ0FBd0IsR0FDN0MsbUZBQW1GLENBQUM7QUFFL0QsNkJBQWdCLEdBQUcsa0JBQWtCLENBQUM7d0VBdEJsRCxZQUFZO29EQUFaLFlBQVksV0FBWixZQUFZO3VGQUFaLFlBQVk7Y0FEeEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmluYWxpemUsIG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdEFwcENvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uL2FwcC5jb25maWcnO1xuaW1wb3J0IHsgU2hvd0NvbmRpdGlvbiB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgQ2FzZUV2ZW50RGF0YSB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9jYXNlLWV2ZW50LWRhdGEubW9kZWwnO1xuaW1wb3J0IHsgQ2FzZUV2ZW50VHJpZ2dlciB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9jYXNlLXZpZXcvY2FzZS1ldmVudC10cmlnZ2VyLm1vZGVsJztcbmltcG9ydCB7IENhc2VQcmludERvY3VtZW50IH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2Nhc2Utdmlldy9jYXNlLXByaW50LWRvY3VtZW50Lm1vZGVsJztcbmltcG9ydCB7IENhc2VWaWV3IH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2Nhc2Utdmlldy9jYXNlLXZpZXcubW9kZWwnO1xuaW1wb3J0IHsgQ2hhbGxlbmdlZEFjY2Vzc1JlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vY2FzZS12aWV3L2NoYWxsZW5nZWQtYWNjZXNzLXJlcXVlc3QubW9kZWwnO1xuaW1wb3J0IHsgUm9sZUFzc2lnbm1lbnRSZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9jYXNlLXZpZXcvcm9sZS1hc3NpZ25tZW50LXJlc3BvbnNlLm1vZGVsJztcbmltcG9ydCB7IFJvbGVDYXRlZ29yeSwgUm9sZVJlcXVlc3RQYXlsb2FkIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2Nhc2Utdmlldy9yb2xlLXJlcXVlc3QubW9kZWwnO1xuaW1wb3J0IHsgU3BlY2lmaWNBY2Nlc3NSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2Nhc2Utdmlldy9zcGVjaWZpYy1hY2Nlc3MtcmVxdWVzdC5tb2RlbCc7XG5pbXBvcnQgeyBEcmFmdCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9kcmFmdC5tb2RlbCc7XG5pbXBvcnQgeyBVc2VySW5mbyB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi91c2VyL3VzZXItaW5mby5tb2RlbCc7XG5pbXBvcnQgeyBGaWVsZHNVdGlscyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZpZWxkcy9maWVsZHMudXRpbHMnO1xuaW1wb3J0IHsgSHR0cEVycm9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2h0dHAvaHR0cC1lcnJvci5zZXJ2aWNlJztcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaHR0cC9odHRwLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9hZGluZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9sb2FkaW5nL2xvYWRpbmcuc2VydmljZSc7XG5pbXBvcnQgeyBPcmRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmRlci9vcmRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Nlc3Npb24vc2Vzc2lvbi1zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FzZUFjY2Vzc1V0aWxzIH0gZnJvbSAnLi4vY2FzZS1hY2Nlc3MtdXRpbHMnO1xuaW1wb3J0IHsgV2l6YXJkUGFnZSB9IGZyb20gJy4uL2RvbWFpbi93aXphcmQtcGFnZS5tb2RlbCc7XG5pbXBvcnQgeyBXaXphcmRQYWdlRmllbGRUb0Nhc2VGaWVsZE1hcHBlciB9IGZyb20gJy4vd2l6YXJkLXBhZ2UtZmllbGQtdG8tY2FzZS1maWVsZC5tYXBwZXInO1xuaW1wb3J0IHsgV29ya0FsbG9jYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi93b3JrLWFsbG9jYXRpb24uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYXNlc1NlcnZpY2Uge1xuICAvLyBJbnRlcm5hbCAoVUkpIEFQSVxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYyX01FRElBVFlQRV9DQVNFX1ZJRVcgPSAnYXBwbGljYXRpb24vdm5kLnVrLmdvdi5obWN0cy5jY2QtZGF0YS1zdG9yZS1hcGkudWktY2FzZS12aWV3LnYyK2pzb24nO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYyX01FRElBVFlQRV9TVEFSVF9DQVNFX1RSSUdHRVIgPVxuICAgICdhcHBsaWNhdGlvbi92bmQudWsuZ292LmhtY3RzLmNjZC1kYXRhLXN0b3JlLWFwaS51aS1zdGFydC1jYXNlLXRyaWdnZXIudjIranNvbjtjaGFyc2V0PVVURi04JztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMl9NRURJQVRZUEVfU1RBUlRfRVZFTlRfVFJJR0dFUiA9XG4gICAgJ2FwcGxpY2F0aW9uL3ZuZC51ay5nb3YuaG1jdHMuY2NkLWRhdGEtc3RvcmUtYXBpLnVpLXN0YXJ0LWV2ZW50LXRyaWdnZXIudjIranNvbjtjaGFyc2V0PVVURi04JztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMl9NRURJQVRZUEVfU1RBUlRfRFJBRlRfVFJJR0dFUiA9XG4gICAgJ2FwcGxpY2F0aW9uL3ZuZC51ay5nb3YuaG1jdHMuY2NkLWRhdGEtc3RvcmUtYXBpLnVpLXN0YXJ0LWRyYWZ0LXRyaWdnZXIudjIranNvbjtjaGFyc2V0PVVURi04JztcblxuICAvLyBFeHRlcm5hbCAoRGF0YSBTdG9yZSkgQVBJXG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMl9NRURJQVRZUEVfQ0FTRV9ET0NVTUVOVFMgPVxuICAgICdhcHBsaWNhdGlvbi92bmQudWsuZ292LmhtY3RzLmNjZC1kYXRhLXN0b3JlLWFwaS5jYXNlLWRvY3VtZW50cy52Mitqc29uO2NoYXJzZXQ9VVRGLTgnO1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjJfTUVESUFUWVBFX0NBU0VfREFUQV9WQUxJREFURSA9XG4gICAgJ2FwcGxpY2F0aW9uL3ZuZC51ay5nb3YuaG1jdHMuY2NkLWRhdGEtc3RvcmUtYXBpLmNhc2UtZGF0YS12YWxpZGF0ZS52Mitqc29uO2NoYXJzZXQ9VVRGLTgnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYyX01FRElBVFlQRV9DUkVBVEVfRVZFTlQgPVxuICAgICdhcHBsaWNhdGlvbi92bmQudWsuZ292LmhtY3RzLmNjZC1kYXRhLXN0b3JlLWFwaS5jcmVhdGUtZXZlbnQudjIranNvbjtjaGFyc2V0PVVURi04JztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMl9NRURJQVRZUEVfQ1JFQVRFX0NBU0UgPVxuICAgICdhcHBsaWNhdGlvbi92bmQudWsuZ292LmhtY3RzLmNjZC1kYXRhLXN0b3JlLWFwaS5jcmVhdGUtY2FzZS52Mitqc29uO2NoYXJzZXQ9VVRGLTgnO1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFVJX0NBU0VfTUFOQUdFUiA9ICdwdWktY2FzZS1tYW5hZ2VyJztcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBDYXNlc1NlcnZpY2U6OmdldENhc2VWaWV3YCBpbnN0ZWFkXG4gICAqL1xuICBwdWJsaWMgZ2V0ID0gdGhpcy5nZXRDYXNlVmlldztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwQ29uZmlnOiBBYnN0cmFjdEFwcENvbmZpZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9yZGVyU2VydmljZTogT3JkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZXJyb3JTZXJ2aWNlOiBIdHRwRXJyb3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2l6YXJkUGFnZUZpZWxkVG9DYXNlRmllbGRNYXBwZXI6IFdpemFyZFBhZ2VGaWVsZFRvQ2FzZUZpZWxkTWFwcGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd29ya0FsbG9jYXRpb25TZXJ2aWNlOiBXb3JrQWxsb2NhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2FkaW5nU2VydmljZTogTG9hZGluZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZVxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDYXNlVmlldyhqdXJpc2RpY3Rpb25JZDogc3RyaW5nLFxuICAgICAgICAgICAgICBjYXNlVHlwZUlkOiBzdHJpbmcsXG4gICAgICAgICAgICAgIGNhc2VJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxDYXNlVmlldz4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYXBwQ29uZmlnLmdldEFwaVVybCgpXG4gICAgICArIGAvY2FzZXdvcmtlcnMvOnVpZGBcbiAgICAgICsgYC9qdXJpc2RpY3Rpb25zLyR7anVyaXNkaWN0aW9uSWR9YFxuICAgICAgKyBgL2Nhc2UtdHlwZXMvJHtjYXNlVHlwZUlkfWBcbiAgICAgICsgYC9jYXNlcy8ke2Nhc2VJZH1gO1xuXG4gICAgY29uc3QgbG9hZGluZ1Rva2VuID0gdGhpcy5sb2FkaW5nU2VydmljZS5yZWdpc3RlcigpO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQodXJsKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3JTZXJ2aWNlLnNldEVycm9yKGVycm9yKTtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gICAgICAgIH0pLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmxvYWRpbmdTZXJ2aWNlLnVucmVnaXN0ZXIobG9hZGluZ1Rva2VuKSlcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2FzZVZpZXdWMihjYXNlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Q2FzZVZpZXc+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmFwcENvbmZpZy5nZXRDYXNlRGF0YVVybCgpfS9pbnRlcm5hbC9jYXNlcy8ke2Nhc2VJZH1gO1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKVxuICAgICAgLnNldCgnZXhwZXJpbWVudGFsJywgJ3RydWUnKVxuICAgICAgLnNldCgnQWNjZXB0JywgQ2FzZXNTZXJ2aWNlLlYyX01FRElBVFlQRV9DQVNFX1ZJRVcpXG4gICAgICAuc2V0KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xuXG4gICAgY29uc3QgbG9hZGluZ1Rva2VuID0gdGhpcy5sb2FkaW5nU2VydmljZS5yZWdpc3RlcigpO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQodXJsLCB7aGVhZGVycywgb2JzZXJ2ZTogJ2JvZHknfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yU2VydmljZS5zZXRFcnJvcihlcnJvcik7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICAgICAgICB9KSxcbiAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5sb2FkaW5nU2VydmljZS51bnJlZ2lzdGVyKGxvYWRpbmdUb2tlbikpXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIGdldEV2ZW50VHJpZ2dlcihjYXNlVHlwZUlkOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICBldmVudFRyaWdnZXJJZDogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgY2FzZUlkPzogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgaWdub3JlV2FybmluZz86IHN0cmluZyk6IE9ic2VydmFibGU8Q2FzZUV2ZW50VHJpZ2dlcj4ge1xuICAgIGlnbm9yZVdhcm5pbmcgPSB1bmRlZmluZWQgIT09IGlnbm9yZVdhcm5pbmcgPyBpZ25vcmVXYXJuaW5nIDogJ2ZhbHNlJztcblxuICAgIGNvbnN0IHVybCA9IHRoaXMuYnVpbGRFdmVudFRyaWdnZXJVcmwoY2FzZVR5cGVJZCwgZXZlbnRUcmlnZ2VySWQsIGNhc2VJZCwgaWdub3JlV2FybmluZyk7XG5cbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnZXhwZXJpbWVudGFsJywgJ3RydWUnKTtcbiAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG5cbiAgICBpZiAoRHJhZnQuaXNEcmFmdChjYXNlSWQpKSB7XG4gICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdCcsIENhc2VzU2VydmljZS5WMl9NRURJQVRZUEVfU1RBUlRfRFJBRlRfVFJJR0dFUik7XG4gICAgfSBlbHNlIGlmIChjYXNlSWQgIT09IHVuZGVmaW5lZCAmJiBjYXNlSWQgIT09IG51bGwpIHtcbiAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgQ2FzZXNTZXJ2aWNlLlYyX01FRElBVFlQRV9TVEFSVF9FVkVOVF9UUklHR0VSKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBDYXNlc1NlcnZpY2UuVjJfTUVESUFUWVBFX1NUQVJUX0NBU0VfVFJJR0dFUik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldCh1cmwsIHtoZWFkZXJzLCBvYnNlcnZlOiAnYm9keSd9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChib2R5ID0+IHtcbiAgICAgICAgICByZXR1cm4gRmllbGRzVXRpbHMuaGFuZGxlTmVzdGVkRHluYW1pY0xpc3RzKGJvZHkpO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvclNlcnZpY2Uuc2V0RXJyb3IoZXJyb3IpO1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgICAgfSksXG4gICAgICAgIG1hcCgocDogb2JqZWN0KSA9PiBwbGFpblRvQ2xhc3MoQ2FzZUV2ZW50VHJpZ2dlciwgcCkpLFxuICAgICAgICB0YXAoZXZlbnRUcmlnZ2VyID0+IHRoaXMuaW5pdGlhbGlzZUV2ZW50VHJpZ2dlcihldmVudFRyaWdnZXIpKVxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVFdmVudChjYXNlRGV0YWlsczogQ2FzZVZpZXcsIGV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgY29uc3QgY2FzZUlkID0gY2FzZURldGFpbHMuY2FzZV9pZDtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmFwcENvbmZpZy5nZXRDYXNlRGF0YVVybCgpICsgYC9jYXNlcy8ke2Nhc2VJZH0vZXZlbnRzYDtcblxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKVxuICAgICAgLnNldCgnZXhwZXJpbWVudGFsJywgJ3RydWUnKVxuICAgICAgLnNldCgnQWNjZXB0JywgQ2FzZXNTZXJ2aWNlLlYyX01FRElBVFlQRV9DUkVBVEVfRVZFTlQpXG4gICAgICAuc2V0KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3QodXJsLCBldmVudERhdGEsIHtoZWFkZXJzLCBvYnNlcnZlOiAnYm9keSd9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChib2R5ID0+IHRoaXMucHJvY2Vzc1Jlc3BvbnNlQm9keShib2R5LCBldmVudERhdGEpKSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvclNlcnZpY2Uuc2V0RXJyb3IoZXJyb3IpO1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGVDYXNlKGN0aWQ6IHN0cmluZywgZXZlbnREYXRhOiBDYXNlRXZlbnREYXRhLCBwYWdlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgY29uc3QgcGFnZUlkU3RyaW5nID0gcGFnZUlkID8gJz9wYWdlSWQ9JyArIHBhZ2VJZCA6ICcnO1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYXBwQ29uZmlnLmdldENhc2VEYXRhVXJsKClcbiAgICAgICsgYC9jYXNlLXR5cGVzLyR7Y3RpZH0vdmFsaWRhdGUke3BhZ2VJZFN0cmluZ31gO1xuXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpXG4gICAgICAuc2V0KCdleHBlcmltZW50YWwnLCAndHJ1ZScpXG4gICAgICAuc2V0KCdBY2NlcHQnLCBDYXNlc1NlcnZpY2UuVjJfTUVESUFUWVBFX0NBU0VfREFUQV9WQUxJREFURSlcbiAgICAgIC5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdCh1cmwsIGV2ZW50RGF0YSwge2hlYWRlcnMsIG9ic2VydmU6ICdib2R5J30pXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvclNlcnZpY2Uuc2V0RXJyb3IoZXJyb3IpO1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlQ2FzZShjdGlkOiBzdHJpbmcsIGV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgbGV0IGlnbm9yZVdhcm5pbmcgPSAnZmFsc2UnO1xuXG4gICAgaWYgKGV2ZW50RGF0YS5pZ25vcmVfd2FybmluZykge1xuICAgICAgaWdub3JlV2FybmluZyA9ICd0cnVlJztcbiAgICB9XG4gICAgY29uc3QgdXJsID0gdGhpcy5hcHBDb25maWcuZ2V0Q2FzZURhdGFVcmwoKVxuICAgICAgKyBgL2Nhc2UtdHlwZXMvJHtjdGlkfS9jYXNlcz9pZ25vcmUtd2FybmluZz0ke2lnbm9yZVdhcm5pbmd9YDtcblxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKVxuICAgICAgLnNldCgnZXhwZXJpbWVudGFsJywgJ3RydWUnKVxuICAgICAgLnNldCgnQWNjZXB0JywgQ2FzZXNTZXJ2aWNlLlYyX01FRElBVFlQRV9DUkVBVEVfQ0FTRSlcbiAgICAgIC5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdCh1cmwsIGV2ZW50RGF0YSwge2hlYWRlcnMsIG9ic2VydmU6ICdib2R5J30pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKGJvZHkgPT4gdGhpcy5wcm9jZXNzUmVzcG9uc2VCb2R5KGJvZHksIGV2ZW50RGF0YSkpLFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yU2VydmljZS5zZXRFcnJvcihlcnJvcik7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRQcmludERvY3VtZW50cyhjYXNlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Q2FzZVByaW50RG9jdW1lbnRbXT4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYXBwQ29uZmlnLmdldENhc2VEYXRhVXJsKClcbiAgICAgICsgYC9jYXNlcy8ke2Nhc2VJZH1gXG4gICAgICArIGAvZG9jdW1lbnRzYDtcblxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKVxuICAgICAgLnNldCgnZXhwZXJpbWVudGFsJywgJ3RydWUnKVxuICAgICAgLnNldCgnQWNjZXB0JywgQ2FzZXNTZXJ2aWNlLlYyX01FRElBVFlQRV9DQVNFX0RPQ1VNRU5UUylcbiAgICAgIC5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0KHVybCwge2hlYWRlcnMsIG9ic2VydmU6ICdib2R5J30pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKGJvZHkgPT4gYm9keS5kb2N1bWVudFJlc291cmNlcyksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3JTZXJ2aWNlLnNldEVycm9yKGVycm9yKTtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIGdldENvdXJ0T3JIZWFyaW5nQ2VudHJlTmFtZShsb2NhdGlvbklkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYXBwQ29uZmlnLmdldExvY2F0aW9uUmVmQXBpVXJsKCl9L2J1aWxkaW5nLWxvY2F0aW9ucz9lcGltbXNfaWQ9JHtsb2NhdGlvbklkfWApO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZUNoYWxsZW5nZWRBY2Nlc3NSZXF1ZXN0KGNhc2VJZDogc3RyaW5nLCByZXF1ZXN0OiBDaGFsbGVuZ2VkQWNjZXNzUmVxdWVzdCk6IE9ic2VydmFibGU8Um9sZUFzc2lnbm1lbnRSZXNwb25zZT4ge1xuICAgIC8vIEFzc2lnbm1lbnQgQVBJIGVuZHBvaW50XG4gICAgY29uc3QgdXNlckluZm9TdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpO1xuXG4gICAgY29uc3QgY2FtVXRpbHMgPSBuZXcgQ2FzZUFjY2Vzc1V0aWxzKCk7XG4gICAgbGV0IHVzZXJJbmZvOiBVc2VySW5mbztcbiAgICBpZiAodXNlckluZm9TdHIpIHtcbiAgICAgIHVzZXJJbmZvID0gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gICAgfVxuXG4gICAgY29uc3Qgcm9sZUNhdGVnb3J5OiBSb2xlQ2F0ZWdvcnkgPSBjYW1VdGlscy5nZXRNYXBwZWRSb2xlQ2F0ZWdvcnkodXNlckluZm8ucm9sZXMsIHVzZXJJbmZvLnJvbGVDYXRlZ29yaWVzKTtcbiAgICBjb25zdCByb2xlTmFtZSA9IGNhbVV0aWxzLmdldEFNUm9sZU5hbWUoJ2NoYWxsZW5nZWQnLCByb2xlQ2F0ZWdvcnkpO1xuICAgIGNvbnN0IGJlZ2luVGltZSA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3QgZW5kVGltZSA9IG5ldyBEYXRlKG5ldyBEYXRlKCkuc2V0VVRDSG91cnMoMjMsIDU5LCA1OSwgOTk5KSk7XG4gICAgY29uc3QgaWQgPSB1c2VySW5mby5pZCA/IHVzZXJJbmZvLmlkIDogdXNlckluZm8udWlkO1xuICAgIGNvbnN0IHBheWxvYWQ6IFJvbGVSZXF1ZXN0UGF5bG9hZCA9IGNhbVV0aWxzLmdldEFNUGF5bG9hZChpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGVOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlQ2F0ZWdvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdDSEFMTEVOR0VEJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZUlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWdpblRpbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZFRpbWUpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAvYXBpL2NoYWxsZW5nZWQtYWNjZXNzLXJlcXVlc3RgLCBwYXlsb2FkKTtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVTcGVjaWZpY0FjY2Vzc1JlcXVlc3QoY2FzZUlkOiBzdHJpbmcsIHNhcjogU3BlY2lmaWNBY2Nlc3NSZXF1ZXN0KTogT2JzZXJ2YWJsZTxSb2xlQXNzaWdubWVudFJlc3BvbnNlPiB7XG4gICAgLy8gQXNzaWdubWVudCBBUEkgZW5kcG9pbnRcbiAgICBjb25zdCB1c2VySW5mb1N0ciA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3VzZXJEZXRhaWxzJyk7XG5cbiAgICBjb25zdCBjYW1VdGlscyA9IG5ldyBDYXNlQWNjZXNzVXRpbHMoKTtcbiAgICBsZXQgdXNlckluZm86IFVzZXJJbmZvO1xuICAgIGlmICh1c2VySW5mb1N0cikge1xuICAgICAgdXNlckluZm8gPSBKU09OLnBhcnNlKHVzZXJJbmZvU3RyKTtcbiAgICB9XG5cbiAgICBjb25zdCByb2xlQ2F0ZWdvcnk6IFJvbGVDYXRlZ29yeSA9IGNhbVV0aWxzLmdldE1hcHBlZFJvbGVDYXRlZ29yeSh1c2VySW5mby5yb2xlcywgdXNlckluZm8ucm9sZUNhdGVnb3JpZXMpO1xuICAgIGNvbnN0IHJvbGVOYW1lID0gY2FtVXRpbHMuZ2V0QU1Sb2xlTmFtZSgnc3BlY2lmaWMnLCByb2xlQ2F0ZWdvcnkpO1xuICAgIGNvbnN0IGlkID0gdXNlckluZm8uaWQgPyB1c2VySW5mby5pZCA6IHVzZXJJbmZvLnVpZDtcbiAgICBjb25zdCBwYXlsb2FkOiBSb2xlUmVxdWVzdFBheWxvYWQgPSBjYW1VdGlscy5nZXRBTVBheWxvYWQobnVsbCwgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGVOYW1lLCByb2xlQ2F0ZWdvcnksICdTUEVDSUZJQycsIGNhc2VJZCwgc2FyKTtcblxuICAgIHBheWxvYWQucm9sZVJlcXVlc3QgPSB7XG4gICAgICAuLi5wYXlsb2FkLnJvbGVSZXF1ZXN0LFxuICAgICAgcHJvY2VzczogJ3NwZWNpZmljLWFjY2VzcycsXG4gICAgICByZXBsYWNlRXhpc3Rpbmc6IHRydWUsXG4gICAgICBhc3NpZ25lcklkOiBwYXlsb2FkLnJlcXVlc3RlZFJvbGVzWzBdLmFjdG9ySWQsXG4gICAgICByZWZlcmVuY2U6IGAke2Nhc2VJZH0vJHtyb2xlTmFtZX0vJHtwYXlsb2FkLnJlcXVlc3RlZFJvbGVzWzBdLmFjdG9ySWR9YFxuICAgIH07XG5cbiAgICBwYXlsb2FkLnJlcXVlc3RlZFJvbGVzWzBdID0ge1xuICAgICAgLi4ucGF5bG9hZC5yZXF1ZXN0ZWRSb2xlc1swXSxcbiAgICAgIHJvbGVOYW1lOiAnc3BlY2lmaWMtYWNjZXNzLXJlcXVlc3RlZCcsXG4gICAgICByb2xlQ2F0ZWdvcnksXG4gICAgICBjbGFzc2lmaWNhdGlvbjogJ1BSSVZBVEUnLFxuICAgICAgZW5kVGltZTogbmV3IERhdGUobmV3IERhdGUoKS5zZXREYXRlKG5ldyBEYXRlKCkuZ2V0RGF0ZSgpICsgMzApKSxcbiAgICAgIGJlZ2luVGltZTogbnVsbCxcbiAgICAgIGdyYW50VHlwZTogJ0JBU0lDJyxcbiAgICAgIHJlYWRPbmx5OiB0cnVlXG4gICAgfTtcblxuICAgIHBheWxvYWQucmVxdWVzdGVkUm9sZXNbMF0uYXR0cmlidXRlcyA9IHtcbiAgICAgIC4uLnBheWxvYWQucmVxdWVzdGVkUm9sZXNbMF0uYXR0cmlidXRlcyxcbiAgICAgIHJlcXVlc3RlZFJvbGU6IHJvbGVOYW1lXG4gICAgfTtcblxuICAgIHBheWxvYWQucmVxdWVzdGVkUm9sZXNbMF0ubm90ZXNbMF0gPSB7XG4gICAgICAuLi5wYXlsb2FkLnJlcXVlc3RlZFJvbGVzWzBdLm5vdGVzWzBdLFxuICAgICAgdXNlcklkOiBwYXlsb2FkLnJlcXVlc3RlZFJvbGVzWzBdLmFjdG9ySWRcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcbiAgICAgIGAvYXBpL3NwZWNpZmljLWFjY2Vzcy1yZXF1ZXN0YCxcbiAgICAgIHBheWxvYWRcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEV2ZW50VHJpZ2dlclVybChjYXNlVHlwZUlkOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRUcmlnZ2VySWQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlSWQ/OiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlV2FybmluZz86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IHVybCA9IHRoaXMuYXBwQ29uZmlnLmdldENhc2VEYXRhVXJsKCkgKyBgL2ludGVybmFsYDtcblxuICAgIGlmIChEcmFmdC5pc0RyYWZ0KGNhc2VJZCkpIHtcbiAgICAgIHVybCArPSBgL2RyYWZ0cy8ke2Nhc2VJZH1gXG4gICAgICAgICsgYC9ldmVudC10cmlnZ2VyYFxuICAgICAgICArIGA/aWdub3JlLXdhcm5pbmc9JHtpZ25vcmVXYXJuaW5nfWA7XG4gICAgfSBlbHNlIGlmIChjYXNlVHlwZUlkID09PSB1bmRlZmluZWQgfHwgY2FzZVR5cGVJZCA9PT0gbnVsbCkge1xuICAgICAgdXJsICs9IGAvY2FzZXMvJHtjYXNlSWR9YFxuICAgICAgICArIGAvZXZlbnQtdHJpZ2dlcnMvJHtldmVudFRyaWdnZXJJZH1gXG4gICAgICAgICsgYD9pZ25vcmUtd2FybmluZz0ke2lnbm9yZVdhcm5pbmd9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgdXJsICs9IGAvY2FzZS10eXBlcy8ke2Nhc2VUeXBlSWR9YFxuICAgICAgICArIGAvZXZlbnQtdHJpZ2dlcnMvJHtldmVudFRyaWdnZXJJZH1gXG4gICAgICAgICsgYD9pZ25vcmUtd2FybmluZz0ke2lnbm9yZVdhcm5pbmd9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gdXJsO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzUmVzcG9uc2VCb2R5KGJvZHk6IGFueSwgZXZlbnREYXRhOiBDYXNlRXZlbnREYXRhKTogYW55IHtcbiAgICB0aGlzLnByb2Nlc3NUYXNrc09uU3VjY2Vzcyhib2R5LCBldmVudERhdGEuZXZlbnQpO1xuICAgIHJldHVybiBib2R5O1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXNlRXZlbnRUcmlnZ2VyKGV2ZW50VHJpZ2dlcjogQ2FzZUV2ZW50VHJpZ2dlcikge1xuICAgIGlmICghZXZlbnRUcmlnZ2VyLndpemFyZF9wYWdlcykge1xuICAgICAgZXZlbnRUcmlnZ2VyLndpemFyZF9wYWdlcyA9IFtdO1xuICAgIH1cblxuICAgIGV2ZW50VHJpZ2dlci53aXphcmRfcGFnZXMuZm9yRWFjaCgod2l6YXJkUGFnZTogV2l6YXJkUGFnZSkgPT4ge1xuICAgICAgd2l6YXJkUGFnZS5wYXJzZWRTaG93Q29uZGl0aW9uID0gU2hvd0NvbmRpdGlvbi5nZXRJbnN0YW5jZSh3aXphcmRQYWdlLnNob3dfY29uZGl0aW9uKTtcbiAgICAgIHdpemFyZFBhZ2UuY2FzZV9maWVsZHMgPSB0aGlzLm9yZGVyU2VydmljZS5zb3J0KFxuICAgICAgICB0aGlzLndpemFyZFBhZ2VGaWVsZFRvQ2FzZUZpZWxkTWFwcGVyLm1hcEFsbCh3aXphcmRQYWdlLndpemFyZF9wYWdlX2ZpZWxkcywgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzKSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NUYXNrc09uU3VjY2VzcyhjYXNlRGF0YTogYW55LCBldmVudERhdGE6IGFueSk6IHZvaWQge1xuICAgIC8vIFRoZSBmb2xsb3dpbmcgY29kZSBpcyB3b3JrIGFsbG9jYXRpb24gMSByZWxhdGVkXG4gICAgaWYgKHRoaXMuYXBwQ29uZmlnLmdldFdvcmtBbGxvY2F0aW9uQXBpVXJsKCkudG9Mb3dlckNhc2UoKSA9PT0gJ3dvcmthbGxvY2F0aW9uJykge1xuICAgICAgLy8gVGhpcyBpcyB1c2VkIGEgZmVhdHVyZSB0b2dnbGUgdG9cbiAgICAgIC8vIGNvbnRyb2wgdGhlIHdvcmsgYWxsb2NhdGlvblxuICAgICAgaWYgKCF0aGlzLmlzUHVpQ2FzZU1hbmFnZXIoKSkge1xuICAgICAgICB0aGlzLndvcmtBbGxvY2F0aW9uU2VydmljZS5jb21wbGV0ZUFwcHJvcHJpYXRlVGFzayhjYXNlRGF0YS5pZCwgZXZlbnREYXRhLmlkLCBjYXNlRGF0YS5qdXJpc2RpY3Rpb24sIGNhc2VEYXRhLmNhc2VfdHlwZSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIC8vIFN1Y2Nlc3MuIERvIG5vdGhpbmcuXG4gICAgICAgICAgfSwgZXJyb3IgPT4ge1xuICAgICAgICAgICAgLy8gU2hvdyBhbiBhcHByb3ByaWF0ZSB3YXJuaW5nIGFib3V0IHNvbWV0aGluZyB0aGF0IHdlbnQgd3JvbmcuXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ0NvdWxkIG5vdCBwcm9jZXNzIHRhc2tzIGZvciB0aGlzIGNhc2UgZXZlbnQnLCBlcnJvcik7XG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLypcbiAgQ2hlY2tzIGlmIHRoZSB1c2VyIGhhcyByb2xlIG9mIHB1aS1jYXNlLW1hbmFnZXIgYW5kIHJldHVybnMgdHJ1ZSBvciBmYWxzZVxuICAqL1xuICBwcml2YXRlIGlzUHVpQ2FzZU1hbmFnZXIoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdXNlckluZm9TdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpO1xuICAgIGlmICh1c2VySW5mb1N0cikge1xuICAgICAgY29uc3QgdXNlckluZm86IFVzZXJJbmZvID0gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gICAgICByZXR1cm4gdXNlckluZm8gJiYgdXNlckluZm8ucm9sZXMgJiYgKHVzZXJJbmZvLnJvbGVzLmluZGV4T2YoQ2FzZXNTZXJ2aWNlLlBVSV9DQVNFX01BTkFHRVIpICE9PSAtMSk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
269
+ }], function () { return [{ type: i1.HttpService }, { type: i2.AbstractAppConfig }, { type: i1.OrderService }, { type: i1.HttpErrorService }, { type: i3.WizardPageFieldToCaseFieldMapper }, { type: i4.WorkAllocationService }, { type: i1.LoadingService }, { type: i1.SessionStorageService }]; }, null); })();
270
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9zZXJ2aWNlcy9jYXNlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUVMLGdCQUFnQixFQUdTLEtBQUssRUFJL0IsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEksT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXZELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7QUFHbEUsTUFBTSxPQUFPLFlBQVk7SUEwQ3ZCLFlBQ1UsSUFBaUIsRUFDakIsU0FBNEIsRUFDNUIsWUFBMEIsRUFDMUIsWUFB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Y0FBYyxHQUN6QyxDQUFBO1FBRUQsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLG1DQUM3QixPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FDckMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUMxQyxDQUFBO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbkIsOEJBQThCLEVBQzlCLE9BQU8sQ0FDUixDQUFDO0lBQ0osQ0FBQzs7QUFqWEQsb0JBQW9CO0FBQ0csbUNBQXNCLEdBQUcsc0VBQXNFLENBQUM7QUFDaEcsNENBQStCLEdBQ3BELDZGQUE2RixDQUFDO0FBQ3pFLDZDQUFnQyxHQUNyRCw4RkFBOEYsQ0FBQztBQUMxRSw2Q0FBZ0MsR0FDckQsOEZBQThGLENBQUM7QUFFakcsNEJBQTRCO0FBRUwsd0NBQTJCLEdBQ2hELHNGQUFzRixDQUFDO0FBRWxFLDRDQUErQixHQUNwRCwwRkFBMEYsQ0FBQztBQUN0RSxzQ0FBeUIsR0FDOUMsb0ZBQW9GLENBQUM7QUFDaEUscUNBQXdCLEdBQzdDLG1GQUFtRixDQUFDO0FBRS9ELDZCQUFnQixHQUFHLGtCQUFrQixDQUFDO3dFQXRCbEQsWUFBWTtvREFBWixZQUFZLFdBQVosWUFBWTt1RkFBWixZQUFZO2NBRHhCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbmFsaXplLCBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQWJzdHJhY3RBcHBDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi9hcHAuY29uZmlnJztcbmltcG9ydCB7IFNob3dDb25kaXRpb24gfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7XG4gIENhc2VFdmVudERhdGEsXG4gIENhc2VFdmVudFRyaWdnZXIsXG4gIENhc2VQcmludERvY3VtZW50LFxuICBDYXNlVmlldyxcbiAgQ2hhbGxlbmdlZEFjY2Vzc1JlcXVlc3QsIERyYWZ0LFxuICBSb2xlQXNzaWdubWVudFJlc3BvbnNlLFxuICBSb2xlQ2F0ZWdvcnksXG4gIFJvbGVSZXF1ZXN0UGF5bG9hZCwgU3BlY2lmaWNBY2Nlc3NSZXF1ZXN0XG59IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBVc2VySW5mbyB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi91c2VyL3VzZXItaW5mby5tb2RlbCc7XG5pbXBvcnQgeyBGaWVsZHNVdGlscywgSHR0cEVycm9yU2VydmljZSwgSHR0cFNlcnZpY2UsIExvYWRpbmdTZXJ2aWNlLCBPcmRlclNlcnZpY2UsIFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IENhc2VBY2Nlc3NVdGlscyB9IGZyb20gJy4uL2Nhc2UtYWNjZXNzLXV0aWxzJztcbmltcG9ydCB7IFdpemFyZFBhZ2UgfSBmcm9tICcuLi9kb21haW4nO1xuaW1wb3J0IHsgV2l6YXJkUGFnZUZpZWxkVG9DYXNlRmllbGRNYXBwZXIgfSBmcm9tICcuL3dpemFyZC1wYWdlLWZpZWxkLXRvLWNhc2UtZmllbGQubWFwcGVyJztcbmltcG9ydCB7IFdvcmtBbGxvY2F0aW9uU2VydmljZSB9IGZyb20gJy4vd29yay1hbGxvY2F0aW9uLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2FzZXNTZXJ2aWNlIHtcbiAgLy8gSW50ZXJuYWwgKFVJKSBBUElcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMl9NRURJQVRZUEVfQ0FTRV9WSUVXID0gJ2FwcGxpY2F0aW9uL3ZuZC51ay5nb3YuaG1jdHMuY2NkLWRhdGEtc3RvcmUtYXBpLnVpLWNhc2Utdmlldy52Mitqc29uJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMl9NRURJQVRZUEVfU1RBUlRfQ0FTRV9UUklHR0VSID1cbiAgICAnYXBwbGljYXRpb24vdm5kLnVrLmdvdi5obWN0cy5jY2QtZGF0YS1zdG9yZS1hcGkudWktc3RhcnQtY2FzZS10cmlnZ2VyLnYyK2pzb247Y2hhcnNldD1VVEYtOCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjJfTUVESUFUWVBFX1NUQVJUX0VWRU5UX1RSSUdHRVIgPVxuICAgICdhcHBsaWNhdGlvbi92bmQudWsuZ292LmhtY3RzLmNjZC1kYXRhLXN0b3JlLWFwaS51aS1zdGFydC1ldmVudC10cmlnZ2VyLnYyK2pzb247Y2hhcnNldD1VVEYtOCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjJfTUVESUFUWVBFX1NUQVJUX0RSQUZUX1RSSUdHRVIgPVxuICAgICdhcHBsaWNhdGlvbi92bmQudWsuZ292LmhtY3RzLmNjZC1kYXRhLXN0b3JlLWFwaS51aS1zdGFydC1kcmFmdC10cmlnZ2VyLnYyK2pzb247Y2hhcnNldD1VVEYtOCc7XG5cbiAgLy8gRXh0ZXJuYWwgKERhdGEgU3RvcmUpIEFQSVxuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjJfTUVESUFUWVBFX0NBU0VfRE9DVU1FTlRTID1cbiAgICAnYXBwbGljYXRpb24vdm5kLnVrLmdvdi5obWN0cy5jY2QtZGF0YS1zdG9yZS1hcGkuY2FzZS1kb2N1bWVudHMudjIranNvbjtjaGFyc2V0PVVURi04JztcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYyX01FRElBVFlQRV9DQVNFX0RBVEFfVkFMSURBVEUgPVxuICAgICdhcHBsaWNhdGlvbi92bmQudWsuZ292LmhtY3RzLmNjZC1kYXRhLXN0b3JlLWFwaS5jYXNlLWRhdGEtdmFsaWRhdGUudjIranNvbjtjaGFyc2V0PVVURi04JztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMl9NRURJQVRZUEVfQ1JFQVRFX0VWRU5UID1cbiAgICAnYXBwbGljYXRpb24vdm5kLnVrLmdvdi5obWN0cy5jY2QtZGF0YS1zdG9yZS1hcGkuY3JlYXRlLWV2ZW50LnYyK2pzb247Y2hhcnNldD1VVEYtOCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjJfTUVESUFUWVBFX0NSRUFURV9DQVNFID1cbiAgICAnYXBwbGljYXRpb24vdm5kLnVrLmdvdi5obWN0cy5jY2QtZGF0YS1zdG9yZS1hcGkuY3JlYXRlLWNhc2UudjIranNvbjtjaGFyc2V0PVVURi04JztcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBVSV9DQVNFX01BTkFHRVIgPSAncHVpLWNhc2UtbWFuYWdlcic7XG5cbiAgZ2V0ID0gdGhpcy5nZXRDYXNlVmlldztcblxuICBwdWJsaWMgc3RhdGljIHVwZGF0ZUNoYWxsZW5nZWRBY2Nlc3NSZXF1ZXN0QXR0cmlidXRlcyhodHRwQ2xpZW50OiBIdHRwQ2xpZW50LCBjYXNlSWQ6IHN0cmluZywgYXR0cmlidXRlc1RvVXBkYXRlOiB7IFt4OiBzdHJpbmddOiBhbnkgfSlcbiAgICA6IE9ic2VydmFibGU8Um9sZUFzc2lnbm1lbnRSZXNwb25zZT4ge1xuICAgIHJldHVybiBodHRwQ2xpZW50LnBvc3Q8Um9sZUFzc2lnbm1lbnRSZXNwb25zZT4oYC9hcGkvY2hhbGxlbmdlZC1hY2Nlc3MtcmVxdWVzdC91cGRhdGUtYXR0cmlidXRlc2AsIHtcbiAgICAgIGNhc2VJZCxcbiAgICAgIGF0dHJpYnV0ZXNUb1VwZGF0ZVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyB1cGRhdGVTcGVjaWZpY0FjY2Vzc1JlcXVlc3RBdHRyaWJ1dGVzKGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsIGNhc2VJZDogc3RyaW5nLCBhdHRyaWJ1dGVzVG9VcGRhdGU6IHsgW3g6IHN0cmluZ106IGFueSB9KVxuICAgIDogT2JzZXJ2YWJsZTxSb2xlQXNzaWdubWVudFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIGh0dHBDbGllbnQucG9zdDxSb2xlQXNzaWdubWVudFJlc3BvbnNlPihgL2FwaS9zcGVjaWZpYy1hY2Nlc3MtcmVxdWVzdC91cGRhdGUtYXR0cmlidXRlc2AsIHtcbiAgICAgIGNhc2VJZCxcbiAgICAgIGF0dHJpYnV0ZXNUb1VwZGF0ZVxuICAgIH0pO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwU2VydmljZSxcbiAgICBwcml2YXRlIGFwcENvbmZpZzogQWJzdHJhY3RBcHBDb25maWcsXG4gICAgcHJpdmF0ZSBvcmRlclNlcnZpY2U6IE9yZGVyU2VydmljZSxcbiAgICBwcml2YXRlIGVycm9yU2VydmljZTogSHR0cEVycm9yU2VydmljZSxcbiAgICBwcml2YXRlIHdpemFyZFBhZ2VGaWVsZFRvQ2FzZUZpZWxkTWFwcGVyOiBXaXphcmRQYWdlRmllbGRUb0Nhc2VGaWVsZE1hcHBlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdvcmtBbGxvY2F0aW9uU2VydmljZTogV29ya0FsbG9jYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgbG9hZGluZ1NlcnZpY2U6IExvYWRpbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2VcbiAgKSB7XG4gIH1cblxuICBnZXRDYXNlVmlldyhqdXJpc2RpY3Rpb25JZDogc3RyaW5nLFxuICAgICAgICAgICAgICBjYXNlVHlwZUlkOiBzdHJpbmcsXG4gICAgICAgICAgICAgIGNhc2VJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxDYXNlVmlldz4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYXBwQ29uZmlnLmdldEFwaVVybCgpXG4gICAgICArIGAvY2FzZXdvcmtlcnMvOnVpZGBcbiAgICAgICsgYC9qdXJpc2RpY3Rpb25zLyR7anVyaXNkaWN0aW9uSWR9YFxuICAgICAgKyBgL2Nhc2UtdHlwZXMvJHtjYXNlVHlwZUlkfWBcbiAgICAgICsgYC9jYXNlcy8ke2Nhc2VJZH1gO1xuXG4gICAgY29uc3QgbG9hZGluZ1Rva2VuID0gdGhpcy5sb2FkaW5nU2VydmljZS5yZWdpc3RlcigpO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQodXJsKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3JTZXJ2aWNlLnNldEVycm9yKGVycm9yKTtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gICAgICAgIH0pLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmxvYWRpbmdTZXJ2aWNlLnVucmVnaXN0ZXIobG9hZGluZ1Rva2VuKSlcbiAgICAgICk7XG4gIH1cblxuICBnZXRDYXNlVmlld1YyKGNhc2VJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxDYXNlVmlldz4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYXBwQ29uZmlnLmdldENhc2VEYXRhVXJsKCl9L2ludGVybmFsL2Nhc2VzLyR7Y2FzZUlkfWA7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpXG4gICAgICAuc2V0KCdleHBlcmltZW50YWwnLCAndHJ1ZScpXG4gICAgICAuc2V0KCdBY2NlcHQnLCBDYXNlc1NlcnZpY2UuVjJfTUVESUFUWVBFX0NBU0VfVklFVylcbiAgICAgIC5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG5cbiAgICBjb25zdCBsb2FkaW5nVG9rZW4gPSB0aGlzLmxvYWRpbmdTZXJ2aWNlLnJlZ2lzdGVyKCk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldCh1cmwsIHtoZWFkZXJzLCBvYnNlcnZlOiAnYm9keSd9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3JTZXJ2aWNlLnNldEVycm9yKGVycm9yKTtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gICAgICAgIH0pLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmxvYWRpbmdTZXJ2aWNlLnVucmVnaXN0ZXIobG9hZGluZ1Rva2VuKSlcbiAgICAgICk7XG4gIH1cblxuICBnZXRFdmVudFRyaWdnZXIoY2FzZVR5cGVJZDogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgZXZlbnRUcmlnZ2VySWQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgIGNhc2VJZD86IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgIGlnbm9yZVdhcm5pbmc/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPENhc2VFdmVudFRyaWdnZXI+IHtcbiAgICBpZ25vcmVXYXJuaW5nID0gdW5kZWZpbmVkICE9PSBpZ25vcmVXYXJuaW5nID8gaWdub3JlV2FybmluZyA6ICdmYWxzZSc7XG5cbiAgICBjb25zdCB1cmwgPSB0aGlzLmJ1aWxkRXZlbnRUcmlnZ2VyVXJsKGNhc2VUeXBlSWQsIGV2ZW50VHJpZ2dlcklkLCBjYXNlSWQsIGlnbm9yZVdhcm5pbmcpO1xuXG4gICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKVxuICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnZXhwZXJpbWVudGFsJywgJ3RydWUnKVxuICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcblxuICAgIGlmIChEcmFmdC5pc0RyYWZ0KGNhc2VJZCkpIHtcbiAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgQ2FzZXNTZXJ2aWNlLlYyX01FRElBVFlQRV9TVEFSVF9EUkFGVF9UUklHR0VSKTtcbiAgICB9IGVsc2UgaWYgKGNhc2VJZCAhPT0gdW5kZWZpbmVkICYmIGNhc2VJZCAhPT0gbnVsbCkge1xuICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBDYXNlc1NlcnZpY2UuVjJfTUVESUFUWVBFX1NUQVJUX0VWRU5UX1RSSUdHRVIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdCcsIENhc2VzU2VydmljZS5WMl9NRURJQVRZUEVfU1RBUlRfQ0FTRV9UUklHR0VSKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0KHVybCwge2hlYWRlcnMsIG9ic2VydmU6ICdib2R5J30pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKGJvZHkgPT4ge1xuICAgICAgICAgIHJldHVybiBGaWVsZHNVdGlscy5oYW5kbGVOZXN0ZWREeW5hbWljTGlzdHMoYm9keSk7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yU2VydmljZS5zZXRFcnJvcihlcnJvcik7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICAgICAgICB9KSxcbiAgICAgICAgbWFwKChwKSA9PiBwbGFpblRvQ2xhc3MoQ2FzZUV2ZW50VHJpZ2dlciwgcCkpLFxuICAgICAgICB0YXAoZXZlbnRUcmlnZ2VyID0+IHRoaXMuaW5pdGlhbGlzZUV2ZW50VHJpZ2dlcihldmVudFRyaWdnZXIpKVxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVFdmVudChjYXNlRGV0YWlsczogQ2FzZVZpZXcsIGV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSk6IE9ic2VydmFibGU8e30+IHtcbiAgICBjb25zdCBjYXNlSWQgPSBjYXNlRGV0YWlscy5jYXNlX2lkO1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYXBwQ29uZmlnLmdldENhc2VEYXRhVXJsKCkgKyBgL2Nhc2VzLyR7Y2FzZUlkfS9ldmVudHNgO1xuXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpXG4gICAgICAuc2V0KCdleHBlcmltZW50YWwnLCAndHJ1ZScpXG4gICAgICAuc2V0KCdBY2NlcHQnLCBDYXNlc1NlcnZpY2UuVjJfTUVESUFUWVBFX0NSRUFURV9FVkVOVClcbiAgICAgIC5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdCh1cmwsIGV2ZW50RGF0YSwge2hlYWRlcnMsIG9ic2VydmU6ICdib2R5J30pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKGJvZHkgPT4gdGhpcy5wcm9jZXNzUmVzcG9uc2VCb2R5KGJvZHksIGV2ZW50RGF0YSkpLFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yU2VydmljZS5zZXRFcnJvcihlcnJvcik7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHZhbGlkYXRlQ2FzZShjdGlkOiBzdHJpbmcsIGV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSwgcGFnZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgIGNvbnN0IHBhZ2VJZFN0cmluZyA9IHBhZ2VJZCA/ICc/cGFnZUlkPScgKyBwYWdlSWQgOiAnJztcbiAgICBjb25zdCB1cmwgPSB0aGlzLmFwcENvbmZpZy5nZXRDYXNlRGF0YVVybCgpXG4gICAgICArIGAvY2FzZS10eXBlcy8ke2N0aWR9L3ZhbGlkYXRlJHtwYWdlSWRTdHJpbmd9YDtcblxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKVxuICAgICAgLnNldCgnZXhwZXJpbWVudGFsJywgJ3RydWUnKVxuICAgICAgLnNldCgnQWNjZXB0JywgQ2FzZXNTZXJ2aWNlLlYyX01FRElBVFlQRV9DQVNFX0RBVEFfVkFMSURBVEUpXG4gICAgICAuc2V0KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3QodXJsLCBldmVudERhdGEsIHtoZWFkZXJzLCBvYnNlcnZlOiAnYm9keSd9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3JTZXJ2aWNlLnNldEVycm9yKGVycm9yKTtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgY3JlYXRlQ2FzZShjdGlkOiBzdHJpbmcsIGV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgbGV0IGlnbm9yZVdhcm5pbmcgPSAnZmFsc2UnO1xuXG4gICAgaWYgKGV2ZW50RGF0YS5pZ25vcmVfd2FybmluZykge1xuICAgICAgaWdub3JlV2FybmluZyA9ICd0cnVlJztcbiAgICB9XG4gICAgY29uc3QgdXJsID0gdGhpcy5hcHBDb25maWcuZ2V0Q2FzZURhdGFVcmwoKVxuICAgICAgKyBgL2Nhc2UtdHlwZXMvJHtjdGlkfS9jYXNlcz9pZ25vcmUtd2FybmluZz0ke2lnbm9yZVdhcm5pbmd9YDtcblxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKVxuICAgICAgLnNldCgnZXhwZXJpbWVudGFsJywgJ3RydWUnKVxuICAgICAgLnNldCgnQWNjZXB0JywgQ2FzZXNTZXJ2aWNlLlYyX01FRElBVFlQRV9DUkVBVEVfQ0FTRSlcbiAgICAgIC5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdCh1cmwsIGV2ZW50RGF0YSwge2hlYWRlcnMsIG9ic2VydmU6ICdib2R5J30pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKGJvZHkgPT4gdGhpcy5wcm9jZXNzUmVzcG9uc2VCb2R5KGJvZHksIGV2ZW50RGF0YSkpLFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yU2VydmljZS5zZXRFcnJvcihlcnJvcik7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIGdldFByaW50RG9jdW1lbnRzKGNhc2VJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxDYXNlUHJpbnREb2N1bWVudFtdPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5hcHBDb25maWcuZ2V0Q2FzZURhdGFVcmwoKVxuICAgICAgKyBgL2Nhc2VzLyR7Y2FzZUlkfWBcbiAgICAgICsgYC9kb2N1bWVudHNgO1xuXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpXG4gICAgICAuc2V0KCdleHBlcmltZW50YWwnLCAndHJ1ZScpXG4gICAgICAuc2V0KCdBY2NlcHQnLCBDYXNlc1NlcnZpY2UuVjJfTUVESUFUWVBFX0NBU0VfRE9DVU1FTlRTKVxuICAgICAgLnNldCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQodXJsLCB7aGVhZGVycywgb2JzZXJ2ZTogJ2JvZHknfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoYm9keSA9PiBib2R5LmRvY3VtZW50UmVzb3VyY2VzKSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvclNlcnZpY2Uuc2V0RXJyb3IoZXJyb3IpO1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRXZlbnRUcmlnZ2VyVXJsKGNhc2VUeXBlSWQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudFRyaWdnZXJJZDogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VJZD86IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVXYXJuaW5nPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgdXJsID0gdGhpcy5hcHBDb25maWcuZ2V0Q2FzZURhdGFVcmwoKSArIGAvaW50ZXJuYWxgO1xuXG4gICAgaWYgKERyYWZ0LmlzRHJhZnQoY2FzZUlkKSkge1xuICAgICAgdXJsICs9IGAvZHJhZnRzLyR7Y2FzZUlkfWBcbiAgICAgICAgKyBgL2V2ZW50LXRyaWdnZXJgXG4gICAgICAgICsgYD9pZ25vcmUtd2FybmluZz0ke2lnbm9yZVdhcm5pbmd9YDtcbiAgICB9IGVsc2UgaWYgKGNhc2VUeXBlSWQgPT09IHVuZGVmaW5lZCB8fCBjYXNlVHlwZUlkID09PSBudWxsKSB7XG4gICAgICB1cmwgKz0gYC9jYXNlcy8ke2Nhc2VJZH1gXG4gICAgICAgICsgYC9ldmVudC10cmlnZ2Vycy8ke2V2ZW50VHJpZ2dlcklkfWBcbiAgICAgICAgKyBgP2lnbm9yZS13YXJuaW5nPSR7aWdub3JlV2FybmluZ31gO1xuICAgIH0gZWxzZSB7XG4gICAgICB1cmwgKz0gYC9jYXNlLXR5cGVzLyR7Y2FzZVR5cGVJZH1gXG4gICAgICAgICsgYC9ldmVudC10cmlnZ2Vycy8ke2V2ZW50VHJpZ2dlcklkfWBcbiAgICAgICAgKyBgP2lnbm9yZS13YXJuaW5nPSR7aWdub3JlV2FybmluZ31gO1xuICAgIH1cblxuICAgIHJldHVybiB1cmw7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NSZXNwb25zZUJvZHkoYm9keTogYW55LCBldmVudERhdGE6IENhc2VFdmVudERhdGEpOiBhbnkge1xuICAgIHRoaXMucHJvY2Vzc1Rhc2tzT25TdWNjZXNzKGJvZHksIGV2ZW50RGF0YS5ldmVudCk7XG4gICAgcmV0dXJuIGJvZHk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpc2VFdmVudFRyaWdnZXIoZXZlbnRUcmlnZ2VyOiBDYXNlRXZlbnRUcmlnZ2VyKSB7XG4gICAgaWYgKCFldmVudFRyaWdnZXIud2l6YXJkX3BhZ2VzKSB7XG4gICAgICBldmVudFRyaWdnZXIud2l6YXJkX3BhZ2VzID0gW107XG4gICAgfVxuXG4gICAgZXZlbnRUcmlnZ2VyLndpemFyZF9wYWdlcy5mb3JFYWNoKCh3aXphcmRQYWdlOiBXaXphcmRQYWdlKSA9PiB7XG4gICAgICB3aXphcmRQYWdlLnBhcnNlZFNob3dDb25kaXRpb24gPSBTaG93Q29uZGl0aW9uLmdldEluc3RhbmNlKHdpemFyZFBhZ2Uuc2hvd19jb25kaXRpb24pO1xuICAgICAgd2l6YXJkUGFnZS5jYXNlX2ZpZWxkcyA9IHRoaXMub3JkZXJTZXJ2aWNlLnNvcnQoXG4gICAgICAgIHRoaXMud2l6YXJkUGFnZUZpZWxkVG9DYXNlRmllbGRNYXBwZXIubWFwQWxsKHdpemFyZFBhZ2Uud2l6YXJkX3BhZ2VfZmllbGRzLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc1Rhc2tzT25TdWNjZXNzKGNhc2VEYXRhOiBhbnksIGV2ZW50RGF0YTogYW55KTogdm9pZCB7XG4gICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIGlzIHdvcmsgYWxsb2NhdGlvbiAxIHJlbGF0ZWRcbiAgICBpZiAodGhpcy5hcHBDb25maWcuZ2V0V29ya0FsbG9jYXRpb25BcGlVcmwoKS50b0xvd2VyQ2FzZSgpID09PSAnd29ya2FsbG9jYXRpb24nKSB7XG4gICAgICAvLyBUaGlzIGlzIHVzZWQgYSBmZWF0dXJlIHRvZ2dsZSB0b1xuICAgICAgLy8gY29udHJvbCB0aGUgd29yayBhbGxvY2F0aW9uXG4gICAgICBpZiAoIXRoaXMuaXNQdWlDYXNlTWFuYWdlcigpKSB7XG4gICAgICAgIHRoaXMud29ya0FsbG9jYXRpb25TZXJ2aWNlLmNvbXBsZXRlQXBwcm9wcmlhdGVUYXNrKGNhc2VEYXRhLmlkLCBldmVudERhdGEuaWQsIGNhc2VEYXRhLmp1cmlzZGljdGlvbiwgY2FzZURhdGEuY2FzZV90eXBlKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgLy8gU3VjY2Vzcy4gRG8gbm90aGluZy5cbiAgICAgICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgICAgICAvLyBTaG93IGFuIGFwcHJvcHJpYXRlIHdhcm5pbmcgYWJvdXQgc29tZXRoaW5nIHRoYXQgd2VudCB3cm9uZy5cbiAgICAgICAgICAgIGNvbnNvbGUud2FybignQ291bGQgbm90IHByb2Nlc3MgdGFza3MgZm9yIHRoaXMgY2FzZSBldmVudCcsIGVycm9yKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKlxuICBDaGVja3MgaWYgdGhlIHVzZXIgaGFzIHJvbGUgb2YgcHVpLWNhc2UtbWFuYWdlciBhbmQgcmV0dXJucyB0cnVlIG9yIGZhbHNlXG4gICovXG4gIHByaXZhdGUgaXNQdWlDYXNlTWFuYWdlcigpOiBib29sZWFuIHtcbiAgICBjb25zdCB1c2VySW5mb1N0ciA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3VzZXJEZXRhaWxzJyk7XG4gICAgaWYgKHVzZXJJbmZvU3RyKSB7XG4gICAgICBjb25zdCB1c2VySW5mbzogVXNlckluZm8gPSBKU09OLnBhcnNlKHVzZXJJbmZvU3RyKTtcbiAgICAgIHJldHVybiB1c2VySW5mbyAmJiB1c2VySW5mby5yb2xlcyAmJiAodXNlckluZm8ucm9sZXMuaW5kZXhPZihDYXNlc1NlcnZpY2UuUFVJX0NBU0VfTUFOQUdFUikgIT09IC0xKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldENvdXJ0T3JIZWFyaW5nQ2VudHJlTmFtZShsb2NhdGlvbklkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgL2FwaS9sb2NhdGlvbnMvZ2V0TG9jYXRpb25zQnlJZGAsIHsgbG9jYXRpb25zIDogW3sgbG9jYXRpb25JZCB9XX0pO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZUNoYWxsZW5nZWRBY2Nlc3NSZXF1ZXN0KGNhc2VJZDogc3RyaW5nLCByZXF1ZXN0OiBDaGFsbGVuZ2VkQWNjZXNzUmVxdWVzdCk6IE9ic2VydmFibGU8Um9sZUFzc2lnbm1lbnRSZXNwb25zZT4ge1xuICAgIC8vIEFzc2lnbm1lbnQgQVBJIGVuZHBvaW50XG4gICAgY29uc3QgdXNlckluZm9TdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpO1xuXG4gICAgY29uc3QgY2FtVXRpbHMgPSBuZXcgQ2FzZUFjY2Vzc1V0aWxzKCk7XG4gICAgbGV0IHVzZXJJbmZvOiBVc2VySW5mbztcbiAgICBpZiAodXNlckluZm9TdHIpIHtcbiAgICAgIHVzZXJJbmZvID0gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gICAgfVxuXG4gICAgY29uc3Qgcm9sZUNhdGVnb3J5OiBSb2xlQ2F0ZWdvcnkgPSBjYW1VdGlscy5nZXRNYXBwZWRSb2xlQ2F0ZWdvcnkodXNlckluZm8ucm9sZXMsIHVzZXJJbmZvLnJvbGVDYXRlZ29yaWVzKTtcbiAgICBjb25zdCByb2xlTmFtZSA9IGNhbVV0aWxzLmdldEFNUm9sZU5hbWUoJ2NoYWxsZW5nZWQnLCByb2xlQ2F0ZWdvcnkpO1xuICAgIGNvbnN0IGJlZ2luVGltZSA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3QgZW5kVGltZSA9IG5ldyBEYXRlKG5ldyBEYXRlKCkuc2V0VVRDSG91cnMoMjMsIDU5LCA1OSwgOTk5KSk7XG4gICAgY29uc3QgaWQgPSB1c2VySW5mby5pZCA/IHVzZXJJbmZvLmlkIDogdXNlckluZm8udWlkO1xuICAgIGNvbnN0IGlzTmV3ID0gdHJ1ZTtcblxuICAgIGNvbnN0IHBheWxvYWQ6IFJvbGVSZXF1ZXN0UGF5bG9hZCA9IGNhbVV0aWxzLmdldEFNUGF5bG9hZChpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGVOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlQ2F0ZWdvcnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdDSEFMTEVOR0VEJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZUlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWdpblRpbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZFRpbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV3XG4gICAgICApO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAvYXBpL2NoYWxsZW5nZWQtYWNjZXNzLXJlcXVlc3RgLCBwYXlsb2FkKTtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVTcGVjaWZpY0FjY2Vzc1JlcXVlc3QoY2FzZUlkOiBzdHJpbmcsIHNhcjogU3BlY2lmaWNBY2Nlc3NSZXF1ZXN0KTogT2JzZXJ2YWJsZTxSb2xlQXNzaWdubWVudFJlc3BvbnNlPiB7XG4gICAgLy8gQXNzaWdubWVudCBBUEkgZW5kcG9pbnRcbiAgICBjb25zdCB1c2VySW5mb1N0ciA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3VzZXJEZXRhaWxzJyk7XG5cbiAgICBjb25zdCBjYW1VdGlscyA9IG5ldyBDYXNlQWNjZXNzVXRpbHMoKTtcbiAgICBsZXQgdXNlckluZm86IFVzZXJJbmZvO1xuICAgIGlmICh1c2VySW5mb1N0cikge1xuICAgICAgdXNlckluZm8gPSBKU09OLnBhcnNlKHVzZXJJbmZvU3RyKTtcbiAgICB9XG5cbiAgICBjb25zdCByb2xlQ2F0ZWdvcnk6IFJvbGVDYXRlZ29yeSA9IGNhbVV0aWxzLmdldE1hcHBlZFJvbGVDYXRlZ29yeSh1c2VySW5mby5yb2xlcywgdXNlckluZm8ucm9sZUNhdGVnb3JpZXMpO1xuICAgIGNvbnN0IHJvbGVOYW1lID0gY2FtVXRpbHMuZ2V0QU1Sb2xlTmFtZSgnc3BlY2lmaWMnLCByb2xlQ2F0ZWdvcnkpO1xuICAgIGNvbnN0IGlkID0gdXNlckluZm8uaWQgPyB1c2VySW5mby5pZCA6IHVzZXJJbmZvLnVpZDtcbiAgICBjb25zdCBwYXlsb2FkOiBSb2xlUmVxdWVzdFBheWxvYWQgPSBjYW1VdGlscy5nZXRBTVBheWxvYWQobnVsbCwgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGVOYW1lLCByb2xlQ2F0ZWdvcnksICdTUEVDSUZJQycsIGNhc2VJZCwgc2FyLCBudWxsLCBudWxsLCB0cnVlKTtcblxuICAgIHBheWxvYWQucm9sZVJlcXVlc3QgPSB7XG4gICAgICAuLi5wYXlsb2FkLnJvbGVSZXF1ZXN0LFxuICAgICAgcHJvY2VzczogJ3NwZWNpZmljLWFjY2VzcycsXG4gICAgICByZXBsYWNlRXhpc3Rpbmc6IHRydWUsXG4gICAgICBhc3NpZ25lcklkOiBwYXlsb2FkLnJlcXVlc3RlZFJvbGVzWzBdLmFjdG9ySWQsXG4gICAgICByZWZlcmVuY2U6IGAke2Nhc2VJZH0vJHtyb2xlTmFtZX0vJHtwYXlsb2FkLnJlcXVlc3RlZFJvbGVzWzBdLmFjdG9ySWR9YFxuICAgIH07XG5cbiAgICBwYXlsb2FkLnJlcXVlc3RlZFJvbGVzWzBdID0ge1xuICAgICAgLi4ucGF5bG9hZC5yZXF1ZXN0ZWRSb2xlc1swXSxcbiAgICAgIHJvbGVOYW1lOiAnc3BlY2lmaWMtYWNjZXNzLXJlcXVlc3RlZCcsXG4gICAgICByb2xlQ2F0ZWdvcnksXG4gICAgICBjbGFzc2lmaWNhdGlvbjogJ1BSSVZBVEUnLFxuICAgICAgZW5kVGltZTogbmV3IERhdGUobmV3IERhdGUoKS5zZXREYXRlKG5ldyBEYXRlKCkuZ2V0RGF0ZSgpICsgMzApKSxcbiAgICAgIGJlZ2luVGltZTogbnVsbCxcbiAgICAgIGdyYW50VHlwZTogJ0JBU0lDJyxcbiAgICAgIHJlYWRPbmx5OiB0cnVlXG4gICAgfTtcblxuICAgIHBheWxvYWQucmVxdWVzdGVkUm9sZXNbMF0uYXR0cmlidXRlcyA9IHtcbiAgICAgIC4uLnBheWxvYWQucmVxdWVzdGVkUm9sZXNbMF0uYXR0cmlidXRlcyxcbiAgICAgIHJlcXVlc3RlZFJvbGU6IHJvbGVOYW1lLFxuICAgICAgc3BlY2lmaWNBY2Nlc3NSZWFzb246IHNhci5zcGVjaWZpY1JlYXNvblxuICAgIH1cblxuICAgIHBheWxvYWQucmVxdWVzdGVkUm9sZXNbMF0ubm90ZXNbMF0gPSB7XG4gICAgICAuLi5wYXlsb2FkLnJlcXVlc3RlZFJvbGVzWzBdLm5vdGVzWzBdLFxuICAgICAgdXNlcklkOiBwYXlsb2FkLnJlcXVlc3RlZFJvbGVzWzBdLmFjdG9ySWRcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXG4gICAgICBgL2FwaS9zcGVjaWZpYy1hY2Nlc3MtcmVxdWVzdGAsXG4gICAgICBwYXlsb2FkXG4gICAgKTtcbiAgfVxufVxuIl19