@tuki-io/tuki-widgets 0.0.219-dev.60 → 0.0.219-dev.63

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 (107) hide show
  1. package/di2mt/widgets/site-upgrade/site-upgrade.module.d.ts +9 -8
  2. package/di2mt/widgets/user-upgrade/user-upgrade.module.d.ts +11 -10
  3. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.mjs +12 -11
  4. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade.module.mjs +7 -3
  5. package/esm2020/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.mjs +12 -11
  6. package/esm2020/di2mt/widgets/user-upgrade/user-upgrade.module.mjs +7 -3
  7. package/esm2020/locations/src/locations.component.mjs +11 -11
  8. package/esm2020/locations/src/locations.module.mjs +7 -6
  9. package/esm2020/meetings/src/components/meeting-spaces/meeting-space/meeting-space.component.mjs +9 -9
  10. package/esm2020/meetings/src/components/meeting-spaces/meeting-spaces.component.mjs +17 -9
  11. package/esm2020/meetings/src/meetings.module.mjs +7 -6
  12. package/esm2020/shared/public-api.mjs +2 -1
  13. package/esm2020/shared/src/ui/tk-loader/tk-loader.component.mjs +34 -0
  14. package/esm2020/user-creation/src/user-creation.module.mjs +7 -6
  15. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.mjs +16 -16
  16. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.mjs +27 -10
  17. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.mjs +11 -11
  18. package/esm2020/user-device-manage/src/associate-lines/associate-lines.component.mjs +10 -10
  19. package/esm2020/user-device-manage/src/device-manage-widget.component.mjs +11 -11
  20. package/esm2020/user-device-manage/src/device-settings/device-settings.component.mjs +9 -9
  21. package/esm2020/user-device-manage/src/line-key-config/line-key-config.component.mjs +9 -9
  22. package/esm2020/user-device-manage/src/user-device-manage.module.mjs +8 -7
  23. package/esm2020/user-manage/src/user-manage-widget.component.mjs +12 -12
  24. package/esm2020/user-manage/src/user-manage.module.mjs +8 -7
  25. package/esm2020/users-list/src/classes/site-option.mjs +2 -0
  26. package/esm2020/users-list/src/components/table-toolbar/table-toolbar.component.mjs +18 -4
  27. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.mjs +15 -15
  28. package/esm2020/users-list/src/move-user-wizard/move-user-wizard.component.mjs +5 -5
  29. package/esm2020/users-list/src/users-list.component.mjs +104 -46
  30. package/esm2020/users-list/src/users-list.module.mjs +7 -6
  31. package/esm2020/workspaces/src/components/workspace-detail/workspace-detail.component.mjs +7 -7
  32. package/esm2020/workspaces/src/components/workspace-device-detail/workspace-device-detail.component.mjs +9 -9
  33. package/esm2020/workspaces/src/components/workspaces-filters/workspaces-filters.component.mjs +13 -3
  34. package/esm2020/workspaces/src/components/workspaces-table/workspaces-table.component.mjs +6 -6
  35. package/esm2020/workspaces/src/services/workspaces.service.mjs +3 -1
  36. package/esm2020/workspaces/src/types/workspace.mjs +6 -2
  37. package/esm2020/workspaces/src/workspaces.component.mjs +43 -9
  38. package/esm2020/workspaces/src/workspaces.module.mjs +7 -6
  39. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +26 -18
  40. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
  41. package/fesm2015/tuki-io-tuki-widgets-locations.mjs +16 -24
  42. package/fesm2015/tuki-io-tuki-widgets-locations.mjs.map +1 -1
  43. package/fesm2015/tuki-io-tuki-widgets-meetings.mjs +31 -33
  44. package/fesm2015/tuki-io-tuki-widgets-meetings.mjs.map +1 -1
  45. package/fesm2015/tuki-io-tuki-widgets-shared.mjs +31 -1
  46. package/fesm2015/tuki-io-tuki-widgets-shared.mjs.map +1 -1
  47. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs +52 -43
  48. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
  49. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +43 -51
  50. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
  51. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +20 -29
  52. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
  53. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +136 -73
  54. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
  55. package/fesm2015/tuki-io-tuki-widgets-workspaces.mjs +87 -43
  56. package/fesm2015/tuki-io-tuki-widgets-workspaces.mjs.map +1 -1
  57. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +26 -18
  58. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
  59. package/fesm2020/tuki-io-tuki-widgets-locations.mjs +16 -24
  60. package/fesm2020/tuki-io-tuki-widgets-locations.mjs.map +1 -1
  61. package/fesm2020/tuki-io-tuki-widgets-meetings.mjs +31 -33
  62. package/fesm2020/tuki-io-tuki-widgets-meetings.mjs.map +1 -1
  63. package/fesm2020/tuki-io-tuki-widgets-shared.mjs +31 -1
  64. package/fesm2020/tuki-io-tuki-widgets-shared.mjs.map +1 -1
  65. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs +51 -43
  66. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
  67. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +43 -51
  68. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
  69. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +20 -29
  70. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
  71. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +134 -71
  72. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
  73. package/fesm2020/tuki-io-tuki-widgets-workspaces.mjs +87 -42
  74. package/fesm2020/tuki-io-tuki-widgets-workspaces.mjs.map +1 -1
  75. package/locations/src/locations.module.d.ts +2 -2
  76. package/meetings/src/meetings.module.d.ts +2 -2
  77. package/package.json +1 -1
  78. package/shared/public-api.d.ts +1 -0
  79. package/shared/src/ui/tk-loader/tk-loader.component.d.ts +15 -0
  80. package/user-creation/src/user-creation.module.d.ts +3 -3
  81. package/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.d.ts +2 -0
  82. package/user-device-manage/src/user-device-manage.module.d.ts +16 -16
  83. package/user-manage/src/user-manage.module.d.ts +12 -13
  84. package/users-list/src/classes/site-option.d.ts +4 -0
  85. package/users-list/src/components/table-toolbar/table-toolbar.component.d.ts +6 -1
  86. package/users-list/src/users-list.component.d.ts +11 -1
  87. package/users-list/src/users-list.module.d.ts +9 -9
  88. package/workspaces/src/components/workspace-detail/workspace-detail.component.d.ts +1 -1
  89. package/workspaces/src/components/workspaces-filters/workspaces-filters.component.d.ts +9 -1
  90. package/workspaces/src/components/workspaces-table/workspaces-table.component.d.ts +2 -2
  91. package/workspaces/src/types/workspace.d.ts +5 -0
  92. package/workspaces/src/workspaces.component.d.ts +6 -2
  93. package/workspaces/src/workspaces.module.d.ts +2 -2
  94. package/esm2020/locations/src/utils/app-loader/app-loader.mjs +0 -14
  95. package/esm2020/meetings/src/utils/app-loader/app-loader.mjs +0 -14
  96. package/esm2020/user-creation/src/utils/app-loader/app-loader.mjs +0 -14
  97. package/esm2020/user-device-manage/src/utils/app-loader/app-loader.mjs +0 -14
  98. package/esm2020/user-manage/src/utils/app-loader/app-loader.mjs +0 -14
  99. package/esm2020/users-list/src/utils/app-loader/app-loader.mjs +0 -14
  100. package/esm2020/workspaces/src/utils/app-loader/app-loader.mjs +0 -14
  101. package/locations/src/utils/app-loader/app-loader.d.ts +0 -6
  102. package/meetings/src/utils/app-loader/app-loader.d.ts +0 -6
  103. package/user-creation/src/utils/app-loader/app-loader.d.ts +0 -6
  104. package/user-device-manage/src/utils/app-loader/app-loader.d.ts +0 -6
  105. package/user-manage/src/utils/app-loader/app-loader.d.ts +0 -6
  106. package/users-list/src/utils/app-loader/app-loader.d.ts +0 -6
  107. package/workspaces/src/utils/app-loader/app-loader.d.ts +0 -6
@@ -6,12 +6,12 @@ import * as i0 from "@angular/core";
6
6
  import * as i1 from "../../user-creation-wizard.service";
7
7
  import * as i2 from "../../../../shared/services/user-creation-api.service";
8
8
  import * as i3 from "@angular/forms";
9
- import * as i4 from "@angular/common";
10
- import * as i5 from "@angular/material/tooltip";
11
- import * as i6 from "@angular/material/form-field";
12
- import * as i7 from "@angular/material/select";
13
- import * as i8 from "@angular/material/core";
14
- import * as i9 from "../../../../utils/app-loader/app-loader";
9
+ import * as i4 from "@tuki-io/tuki-widgets/shared";
10
+ import * as i5 from "@angular/common";
11
+ import * as i6 from "@angular/material/tooltip";
12
+ import * as i7 from "@angular/material/form-field";
13
+ import * as i8 from "@angular/material/select";
14
+ import * as i9 from "@angular/material/core";
15
15
  export class UserTemplateStepComponent {
16
16
  get isLoading() {
17
17
  return this.loadingSites || this.loadingSiteData;
@@ -24,7 +24,7 @@ export class UserTemplateStepComponent {
24
24
  this.formGroup = this.fb.group({
25
25
  userType: [USER_CREATION_TYPES.CUCM],
26
26
  siteId: [null],
27
- userTemplateId: [''],
27
+ userTemplateId: [{ value: '', disabled: true }],
28
28
  });
29
29
  this.userCreationType = USER_CREATION_TYPES.CUCM;
30
30
  this.USER_CREATION_TYPES = USER_CREATION_TYPES;
@@ -65,6 +65,8 @@ export class UserTemplateStepComponent {
65
65
  .pipe(
66
66
  // filter((value) => value !== null && value !== undefined),
67
67
  tap((value) => {
68
+ this.resetSelectedTemplate();
69
+ this.updateTemplateControlState(value);
68
70
  // this.formGroup.get('userTemplateId')?.setValue(this.fallbackTemplateId);
69
71
  const selectedSite = this.sitesList.find(site => String(site.id) === String(value));
70
72
  if (selectedSite) {
@@ -125,6 +127,21 @@ export class UserTemplateStepComponent {
125
127
  this.userCreationWizardService.setSelectedTemplate();
126
128
  this.userCreationWizardService.resetTemplateDrivenData();
127
129
  }
130
+ resetSelectedTemplate() {
131
+ this.formGroup.get('userTemplateId')?.reset('');
132
+ this.userCreationWizardService.setSelectedTemplate();
133
+ this.userCreationWizardService.resetTemplateDrivenData();
134
+ }
135
+ updateTemplateControlState(siteId) {
136
+ const templateControl = this.formGroup.get('userTemplateId');
137
+ const hasSite = siteId !== null && siteId !== undefined && siteId !== '';
138
+ if (hasSite && templateControl?.disabled) {
139
+ templateControl.enable();
140
+ }
141
+ else if (!hasSite && templateControl?.enabled) {
142
+ templateControl.disable();
143
+ }
144
+ }
128
145
  getData() {
129
146
  const isOnlyWithLocations = this.formGroup.get('userType')?.value === USER_CREATION_TYPES.MT ? true : false;
130
147
  this.userCreationService.checkControlHubIntegration(String(this.customerId))
@@ -165,13 +182,13 @@ export class UserTemplateStepComponent {
165
182
  }
166
183
  }
167
184
  UserTemplateStepComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserTemplateStepComponent, deps: [{ token: i1.UserCreationWizardService }, { token: i2.UserCreationApiService }, { token: i3.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
168
- UserTemplateStepComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserTemplateStepComponent, selector: "tk-user-template-step", inputs: { customerId: "customerId" }, outputs: { validityChange: "validityChange" }, ngImport: i0, template: "<app-loader *ngIf=\"isLoading\"></app-loader>\r\n<section class=\"template-step-content\">\r\n <ng-container [formGroup]=\"formGroup\">\r\n <!-- <div class=\"template-step-field template-step-field--user-type\">\r\n <label class=\"template-step-label\">User type</label>\r\n <mat-radio-group class=\"user-type-mat-radio-group\" formControlName=\"userType\">\r\n <mat-radio-button class=\"user-type-mat-radio\" id=\"userCreationCucm\" [value]=\"USER_CREATION_TYPES.CUCM\">\r\n UCM/DI\r\n </mat-radio-button>\r\n <mat-radio-button class=\"user-type-mat-radio\" id=\"userCreationMT\" [value]=\"USER_CREATION_TYPES.MT\">\r\n MT\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </div> -->\r\n\r\n <div class=\"template-step-field\">\r\n <label class=\"template-step-label\">Select site</label>\r\n <mat-form-field class=\"template-step-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Site name\"\r\n formControlName=\"siteId\">\r\n\r\n <mat-select-trigger>\r\n {{ getSelectedSiteName() }}\r\n </mat-select-trigger>\r\n\r\n <mat-option *ngFor=\"let site of sitesList$ | async\" [value]=\"site.id\">\r\n <div class=\"option-row\">\r\n <span class=\"name\">{{ site.name }}</span>\r\n <span *ngIf=\"site.name === 'Berlin' else notBerlinSite\" class=\"type\">{{ 'Webex Calling' }}</span>\r\n <ng-template #notBerlinSite>\r\n <span class=\"type\">{{ isCUCM(site) ? 'UCM' : 'Webex Calling DI' }}</span>\r\n </ng-template>\r\n </div>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <ng-container *ngIf=\"formGroup.get('userType')?.value === USER_CREATION_TYPES.CUCM\">\r\n <div class=\"template-step-field\">\r\n <!-- <label class=\"template-step-label\">Would you like to use a template for the user creation?</label> -->\r\n <!-- <mat-radio-group [formControl]=\"templateToggleFormControl\">\r\n <mat-radio-button [color]=\"'primary'\" [value]=\"true\">\r\n {{ 'Yes' }}\r\n </mat-radio-button>\r\n <mat-radio-button [color]=\"'primary'\" [value]=\"false\">\r\n {{ 'No' }}\r\n </mat-radio-button>\r\n </mat-radio-group> -->\r\n\r\n <!-- <ng-container *ngIf=\"templateToggleFormControl.value === true\"> -->\r\n <label class=\"template-step-label\">Select user template</label>\r\n <mat-form-field class=\"template-step-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Templates\"\r\n formControlName=\"userTemplateId\">\r\n <mat-select-trigger>\r\n <span matTooltip=\"'A new user will be created based on the selected template, including a Cisco 8851 physical device with a single line configured, without SNR (Single Number Reach) and without voicemail.'\">\r\n {{ getSelectedTemplateName() }}\r\n </span>\r\n </mat-select-trigger>\r\n <mat-option *ngFor=\"let template of templatesList$ | async\" [value]=\"template.id\" [disabled]=\"template.name.includes('Jabber User')\">\r\n {{ template.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <!-- </ng-container> -->\r\n </div>\r\n </ng-container>\r\n \r\n </ng-container>\r\n</section>\r\n", styles: [".template-step-content{display:flex;flex-direction:column;gap:20px;max-width:420px}.template-step-field{display:flex;flex-direction:column;gap:10px}.template-step-field .mat-radio-group{display:flex;gap:10px}.template-step-field--user-type{margin-bottom:6px}.template-step-label{font-size:14px;font-weight:600;line-height:100%;letter-spacing:.1px;color:#2a2f3b}.template-step-select{width:100%;max-width:333px}.user-type-mat-radio-group{display:flex;flex-direction:column;gap:10px;margin-left:16px;margin-top:8px}.user-type-mat-radio{color:#2a2f3b;font-size:14px;font-weight:500}:host ::ng-deep .user-type-mat-radio .mat-radio-label{gap:10px}:host ::ng-deep .user-type-mat-radio .mat-radio-outer-circle{border-color:#8a93a3;border-width:2px}:host ::ng-deep .user-type-mat-radio .mat-radio-inner-circle{background-color:#1170cf}:host ::ng-deep .user-type-mat-radio.mat-radio-checked .mat-radio-outer-circle{border-color:#1170cf}:host ::ng-deep .user-type-mat-radio.mat-radio-checked .mat-radio-ripple .mat-ripple-element{background-color:#1176ce26!important}:host ::ng-deep .user-type-mat-radio .mdc-radio__outer-circle{border-color:#8a93a3!important;border-width:2px!important}:host ::ng-deep .user-type-mat-radio .mdc-radio__inner-circle{border-color:#1170cf!important}:host ::ng-deep .user-type-mat-radio.mat-mdc-radio-checked .mdc-radio__outer-circle{border-color:#1170cf!important}:host ::ng-deep .user-type-mat-radio.mat-mdc-radio-checked .mdc-radio__background:before{background-color:#1176ce1f!important}:host ::ng-deep .template-step-select .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .template-step-select .mat-form-field-flex{align-items:center;height:32px;border:1px solid #767676;border-radius:6px;padding:0 12px}:host ::ng-deep .template-step-select .mat-form-field-outline,:host ::ng-deep .template-step-select .mat-form-field-outline-start,:host ::ng-deep .template-step-select .mat-form-field-outline-end,:host ::ng-deep .template-step-select .mat-form-field-outline-gap{display:none}:host ::ng-deep .template-step-select .mat-form-field-infix{width:100%;border-top:0;padding:0}:host ::ng-deep .template-step-select .mat-select-trigger{display:flex;align-items:center;justify-content:space-between;height:100%}::ng-deep .option-row{display:flex;justify-content:space-between;align-items:center;width:100%}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "directive", type: i7.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i9.AppLoaderComponent, selector: "app-loader" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
185
+ UserTemplateStepComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserTemplateStepComponent, selector: "tk-user-template-step", inputs: { customerId: "customerId" }, outputs: { validityChange: "validityChange" }, ngImport: i0, template: "<tk-loader *ngIf=\"isLoading\"></tk-loader>\r\n<section class=\"template-step-content\">\r\n <ng-container [formGroup]=\"formGroup\">\r\n <!-- <div class=\"template-step-field template-step-field--user-type\">\r\n <label class=\"template-step-label\">User type</label>\r\n <mat-radio-group class=\"user-type-mat-radio-group\" formControlName=\"userType\">\r\n <mat-radio-button class=\"user-type-mat-radio\" id=\"userCreationCucm\" [value]=\"USER_CREATION_TYPES.CUCM\">\r\n UCM/DI\r\n </mat-radio-button>\r\n <mat-radio-button class=\"user-type-mat-radio\" id=\"userCreationMT\" [value]=\"USER_CREATION_TYPES.MT\">\r\n MT\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </div> -->\r\n\r\n <div class=\"template-step-field\">\r\n <label class=\"template-step-label\">Select site</label>\r\n <mat-form-field class=\"template-step-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Site name\"\r\n formControlName=\"siteId\">\r\n\r\n <mat-select-trigger>\r\n {{ getSelectedSiteName() }}\r\n </mat-select-trigger>\r\n\r\n <mat-option *ngFor=\"let site of sitesList$ | async\" [value]=\"site.id\">\r\n <div class=\"option-row\">\r\n <span class=\"name\">{{ site.name }}</span>\r\n <span *ngIf=\"site.name === 'Berlin' else notBerlinSite\" class=\"type\">{{ 'Webex Calling' }}</span>\r\n <ng-template #notBerlinSite>\r\n <span class=\"type\">{{ isCUCM(site) ? 'UCM' : 'Webex Calling DI' }}</span>\r\n </ng-template>\r\n </div>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <ng-container *ngIf=\"formGroup.get('userType')?.value === USER_CREATION_TYPES.CUCM\">\r\n <div class=\"template-step-field\">\r\n <!-- <label class=\"template-step-label\">Would you like to use a template for the user creation?</label> -->\r\n <!-- <mat-radio-group [formControl]=\"templateToggleFormControl\">\r\n <mat-radio-button [color]=\"'primary'\" [value]=\"true\">\r\n {{ 'Yes' }}\r\n </mat-radio-button>\r\n <mat-radio-button [color]=\"'primary'\" [value]=\"false\">\r\n {{ 'No' }}\r\n </mat-radio-button>\r\n </mat-radio-group> -->\r\n\r\n <!-- <ng-container *ngIf=\"templateToggleFormControl.value === true\"> -->\r\n <label class=\"template-step-label\">Select user template</label>\r\n <mat-form-field class=\"template-step-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Templates\"\r\n formControlName=\"userTemplateId\">\r\n <mat-select-trigger>\r\n <span matTooltip=\"'A new user will be created based on the selected template, including a Cisco 8851 physical device with a single line configured, without SNR (Single Number Reach) and without voicemail.'\">\r\n {{ getSelectedTemplateName() }}\r\n </span>\r\n </mat-select-trigger>\r\n <mat-option *ngFor=\"let template of templatesList$ | async\" [value]=\"template.id\" [disabled]=\"template.name.includes('Jabber User')\">\r\n {{ template.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <!-- </ng-container> -->\r\n </div>\r\n </ng-container>\r\n \r\n </ng-container>\r\n</section>\r\n", styles: [".template-step-content{display:flex;flex-direction:column;gap:20px;max-width:420px}.template-step-field{display:flex;flex-direction:column;gap:10px}.template-step-field .mat-radio-group{display:flex;gap:10px}.template-step-field--user-type{margin-bottom:6px}.template-step-label{font-size:14px;font-weight:600;line-height:100%;letter-spacing:.1px;color:#2a2f3b}.template-step-select{width:100%;max-width:333px}.user-type-mat-radio-group{display:flex;flex-direction:column;gap:10px;margin-left:16px;margin-top:8px}.user-type-mat-radio{color:#2a2f3b;font-size:14px;font-weight:500}:host ::ng-deep .user-type-mat-radio .mat-radio-label{gap:10px}:host ::ng-deep .user-type-mat-radio .mat-radio-outer-circle{border-color:#8a93a3;border-width:2px}:host ::ng-deep .user-type-mat-radio .mat-radio-inner-circle{background-color:#1170cf}:host ::ng-deep .user-type-mat-radio.mat-radio-checked .mat-radio-outer-circle{border-color:#1170cf}:host ::ng-deep .user-type-mat-radio.mat-radio-checked .mat-radio-ripple .mat-ripple-element{background-color:#1176ce26!important}:host ::ng-deep .user-type-mat-radio .mdc-radio__outer-circle{border-color:#8a93a3!important;border-width:2px!important}:host ::ng-deep .user-type-mat-radio .mdc-radio__inner-circle{border-color:#1170cf!important}:host ::ng-deep .user-type-mat-radio.mat-mdc-radio-checked .mdc-radio__outer-circle{border-color:#1170cf!important}:host ::ng-deep .user-type-mat-radio.mat-mdc-radio-checked .mdc-radio__background:before{background-color:#1176ce1f!important}:host ::ng-deep .template-step-select .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .template-step-select .mat-form-field-flex{align-items:center;height:32px;border:1px solid #767676;border-radius:6px;padding:0 12px}:host ::ng-deep .template-step-select .mat-form-field-outline,:host ::ng-deep .template-step-select .mat-form-field-outline-start,:host ::ng-deep .template-step-select .mat-form-field-outline-end,:host ::ng-deep .template-step-select .mat-form-field-outline-gap{display:none}:host ::ng-deep .template-step-select .mat-form-field-infix{width:100%;border-top:0;padding:0}:host ::ng-deep .template-step-select .mat-select-trigger{display:flex;align-items:center;justify-content:space-between;height:100%}::ng-deep .option-row{display:flex;justify-content:space-between;align-items:center;width:100%}\n"], dependencies: [{ kind: "component", type: i4.TkLoaderComponent, selector: "tk-loader", inputs: ["diameter", "strokeWidth", "backdrop", "color"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "directive", type: i8.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i9.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] });
169
186
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserTemplateStepComponent, decorators: [{
170
187
  type: Component,
171
- args: [{ selector: 'tk-user-template-step', template: "<app-loader *ngIf=\"isLoading\"></app-loader>\r\n<section class=\"template-step-content\">\r\n <ng-container [formGroup]=\"formGroup\">\r\n <!-- <div class=\"template-step-field template-step-field--user-type\">\r\n <label class=\"template-step-label\">User type</label>\r\n <mat-radio-group class=\"user-type-mat-radio-group\" formControlName=\"userType\">\r\n <mat-radio-button class=\"user-type-mat-radio\" id=\"userCreationCucm\" [value]=\"USER_CREATION_TYPES.CUCM\">\r\n UCM/DI\r\n </mat-radio-button>\r\n <mat-radio-button class=\"user-type-mat-radio\" id=\"userCreationMT\" [value]=\"USER_CREATION_TYPES.MT\">\r\n MT\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </div> -->\r\n\r\n <div class=\"template-step-field\">\r\n <label class=\"template-step-label\">Select site</label>\r\n <mat-form-field class=\"template-step-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Site name\"\r\n formControlName=\"siteId\">\r\n\r\n <mat-select-trigger>\r\n {{ getSelectedSiteName() }}\r\n </mat-select-trigger>\r\n\r\n <mat-option *ngFor=\"let site of sitesList$ | async\" [value]=\"site.id\">\r\n <div class=\"option-row\">\r\n <span class=\"name\">{{ site.name }}</span>\r\n <span *ngIf=\"site.name === 'Berlin' else notBerlinSite\" class=\"type\">{{ 'Webex Calling' }}</span>\r\n <ng-template #notBerlinSite>\r\n <span class=\"type\">{{ isCUCM(site) ? 'UCM' : 'Webex Calling DI' }}</span>\r\n </ng-template>\r\n </div>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <ng-container *ngIf=\"formGroup.get('userType')?.value === USER_CREATION_TYPES.CUCM\">\r\n <div class=\"template-step-field\">\r\n <!-- <label class=\"template-step-label\">Would you like to use a template for the user creation?</label> -->\r\n <!-- <mat-radio-group [formControl]=\"templateToggleFormControl\">\r\n <mat-radio-button [color]=\"'primary'\" [value]=\"true\">\r\n {{ 'Yes' }}\r\n </mat-radio-button>\r\n <mat-radio-button [color]=\"'primary'\" [value]=\"false\">\r\n {{ 'No' }}\r\n </mat-radio-button>\r\n </mat-radio-group> -->\r\n\r\n <!-- <ng-container *ngIf=\"templateToggleFormControl.value === true\"> -->\r\n <label class=\"template-step-label\">Select user template</label>\r\n <mat-form-field class=\"template-step-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Templates\"\r\n formControlName=\"userTemplateId\">\r\n <mat-select-trigger>\r\n <span matTooltip=\"'A new user will be created based on the selected template, including a Cisco 8851 physical device with a single line configured, without SNR (Single Number Reach) and without voicemail.'\">\r\n {{ getSelectedTemplateName() }}\r\n </span>\r\n </mat-select-trigger>\r\n <mat-option *ngFor=\"let template of templatesList$ | async\" [value]=\"template.id\" [disabled]=\"template.name.includes('Jabber User')\">\r\n {{ template.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <!-- </ng-container> -->\r\n </div>\r\n </ng-container>\r\n \r\n </ng-container>\r\n</section>\r\n", styles: [".template-step-content{display:flex;flex-direction:column;gap:20px;max-width:420px}.template-step-field{display:flex;flex-direction:column;gap:10px}.template-step-field .mat-radio-group{display:flex;gap:10px}.template-step-field--user-type{margin-bottom:6px}.template-step-label{font-size:14px;font-weight:600;line-height:100%;letter-spacing:.1px;color:#2a2f3b}.template-step-select{width:100%;max-width:333px}.user-type-mat-radio-group{display:flex;flex-direction:column;gap:10px;margin-left:16px;margin-top:8px}.user-type-mat-radio{color:#2a2f3b;font-size:14px;font-weight:500}:host ::ng-deep .user-type-mat-radio .mat-radio-label{gap:10px}:host ::ng-deep .user-type-mat-radio .mat-radio-outer-circle{border-color:#8a93a3;border-width:2px}:host ::ng-deep .user-type-mat-radio .mat-radio-inner-circle{background-color:#1170cf}:host ::ng-deep .user-type-mat-radio.mat-radio-checked .mat-radio-outer-circle{border-color:#1170cf}:host ::ng-deep .user-type-mat-radio.mat-radio-checked .mat-radio-ripple .mat-ripple-element{background-color:#1176ce26!important}:host ::ng-deep .user-type-mat-radio .mdc-radio__outer-circle{border-color:#8a93a3!important;border-width:2px!important}:host ::ng-deep .user-type-mat-radio .mdc-radio__inner-circle{border-color:#1170cf!important}:host ::ng-deep .user-type-mat-radio.mat-mdc-radio-checked .mdc-radio__outer-circle{border-color:#1170cf!important}:host ::ng-deep .user-type-mat-radio.mat-mdc-radio-checked .mdc-radio__background:before{background-color:#1176ce1f!important}:host ::ng-deep .template-step-select .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .template-step-select .mat-form-field-flex{align-items:center;height:32px;border:1px solid #767676;border-radius:6px;padding:0 12px}:host ::ng-deep .template-step-select .mat-form-field-outline,:host ::ng-deep .template-step-select .mat-form-field-outline-start,:host ::ng-deep .template-step-select .mat-form-field-outline-end,:host ::ng-deep .template-step-select .mat-form-field-outline-gap{display:none}:host ::ng-deep .template-step-select .mat-form-field-infix{width:100%;border-top:0;padding:0}:host ::ng-deep .template-step-select .mat-select-trigger{display:flex;align-items:center;justify-content:space-between;height:100%}::ng-deep .option-row{display:flex;justify-content:space-between;align-items:center;width:100%}\n"] }]
188
+ args: [{ selector: 'tk-user-template-step', template: "<tk-loader *ngIf=\"isLoading\"></tk-loader>\r\n<section class=\"template-step-content\">\r\n <ng-container [formGroup]=\"formGroup\">\r\n <!-- <div class=\"template-step-field template-step-field--user-type\">\r\n <label class=\"template-step-label\">User type</label>\r\n <mat-radio-group class=\"user-type-mat-radio-group\" formControlName=\"userType\">\r\n <mat-radio-button class=\"user-type-mat-radio\" id=\"userCreationCucm\" [value]=\"USER_CREATION_TYPES.CUCM\">\r\n UCM/DI\r\n </mat-radio-button>\r\n <mat-radio-button class=\"user-type-mat-radio\" id=\"userCreationMT\" [value]=\"USER_CREATION_TYPES.MT\">\r\n MT\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </div> -->\r\n\r\n <div class=\"template-step-field\">\r\n <label class=\"template-step-label\">Select site</label>\r\n <mat-form-field class=\"template-step-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Site name\"\r\n formControlName=\"siteId\">\r\n\r\n <mat-select-trigger>\r\n {{ getSelectedSiteName() }}\r\n </mat-select-trigger>\r\n\r\n <mat-option *ngFor=\"let site of sitesList$ | async\" [value]=\"site.id\">\r\n <div class=\"option-row\">\r\n <span class=\"name\">{{ site.name }}</span>\r\n <span *ngIf=\"site.name === 'Berlin' else notBerlinSite\" class=\"type\">{{ 'Webex Calling' }}</span>\r\n <ng-template #notBerlinSite>\r\n <span class=\"type\">{{ isCUCM(site) ? 'UCM' : 'Webex Calling DI' }}</span>\r\n </ng-template>\r\n </div>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <ng-container *ngIf=\"formGroup.get('userType')?.value === USER_CREATION_TYPES.CUCM\">\r\n <div class=\"template-step-field\">\r\n <!-- <label class=\"template-step-label\">Would you like to use a template for the user creation?</label> -->\r\n <!-- <mat-radio-group [formControl]=\"templateToggleFormControl\">\r\n <mat-radio-button [color]=\"'primary'\" [value]=\"true\">\r\n {{ 'Yes' }}\r\n </mat-radio-button>\r\n <mat-radio-button [color]=\"'primary'\" [value]=\"false\">\r\n {{ 'No' }}\r\n </mat-radio-button>\r\n </mat-radio-group> -->\r\n\r\n <!-- <ng-container *ngIf=\"templateToggleFormControl.value === true\"> -->\r\n <label class=\"template-step-label\">Select user template</label>\r\n <mat-form-field class=\"template-step-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Templates\"\r\n formControlName=\"userTemplateId\">\r\n <mat-select-trigger>\r\n <span matTooltip=\"'A new user will be created based on the selected template, including a Cisco 8851 physical device with a single line configured, without SNR (Single Number Reach) and without voicemail.'\">\r\n {{ getSelectedTemplateName() }}\r\n </span>\r\n </mat-select-trigger>\r\n <mat-option *ngFor=\"let template of templatesList$ | async\" [value]=\"template.id\" [disabled]=\"template.name.includes('Jabber User')\">\r\n {{ template.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <!-- </ng-container> -->\r\n </div>\r\n </ng-container>\r\n \r\n </ng-container>\r\n</section>\r\n", styles: [".template-step-content{display:flex;flex-direction:column;gap:20px;max-width:420px}.template-step-field{display:flex;flex-direction:column;gap:10px}.template-step-field .mat-radio-group{display:flex;gap:10px}.template-step-field--user-type{margin-bottom:6px}.template-step-label{font-size:14px;font-weight:600;line-height:100%;letter-spacing:.1px;color:#2a2f3b}.template-step-select{width:100%;max-width:333px}.user-type-mat-radio-group{display:flex;flex-direction:column;gap:10px;margin-left:16px;margin-top:8px}.user-type-mat-radio{color:#2a2f3b;font-size:14px;font-weight:500}:host ::ng-deep .user-type-mat-radio .mat-radio-label{gap:10px}:host ::ng-deep .user-type-mat-radio .mat-radio-outer-circle{border-color:#8a93a3;border-width:2px}:host ::ng-deep .user-type-mat-radio .mat-radio-inner-circle{background-color:#1170cf}:host ::ng-deep .user-type-mat-radio.mat-radio-checked .mat-radio-outer-circle{border-color:#1170cf}:host ::ng-deep .user-type-mat-radio.mat-radio-checked .mat-radio-ripple .mat-ripple-element{background-color:#1176ce26!important}:host ::ng-deep .user-type-mat-radio .mdc-radio__outer-circle{border-color:#8a93a3!important;border-width:2px!important}:host ::ng-deep .user-type-mat-radio .mdc-radio__inner-circle{border-color:#1170cf!important}:host ::ng-deep .user-type-mat-radio.mat-mdc-radio-checked .mdc-radio__outer-circle{border-color:#1170cf!important}:host ::ng-deep .user-type-mat-radio.mat-mdc-radio-checked .mdc-radio__background:before{background-color:#1176ce1f!important}:host ::ng-deep .template-step-select .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .template-step-select .mat-form-field-flex{align-items:center;height:32px;border:1px solid #767676;border-radius:6px;padding:0 12px}:host ::ng-deep .template-step-select .mat-form-field-outline,:host ::ng-deep .template-step-select .mat-form-field-outline-start,:host ::ng-deep .template-step-select .mat-form-field-outline-end,:host ::ng-deep .template-step-select .mat-form-field-outline-gap{display:none}:host ::ng-deep .template-step-select .mat-form-field-infix{width:100%;border-top:0;padding:0}:host ::ng-deep .template-step-select .mat-select-trigger{display:flex;align-items:center;justify-content:space-between;height:100%}::ng-deep .option-row{display:flex;justify-content:space-between;align-items:center;width:100%}\n"] }]
172
189
  }], ctorParameters: function () { return [{ type: i1.UserCreationWizardService }, { type: i2.UserCreationApiService }, { type: i3.FormBuilder }]; }, propDecorators: { customerId: [{
173
190
  type: Input
174
191
  }], validityChange: [{
175
192
  type: Output
176
193
  }] } });
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci10ZW1wbGF0ZS1zdGVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLWNyZWF0aW9uL3NyYy93aWRnZXRzL3VzZXItY3JlYXRpb24td2l6YXJkL2NvbXBvbmVudHMvdXNlci10ZW1wbGF0ZS1zdGVwL3VzZXItdGVtcGxhdGUtc3RlcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlci1jcmVhdGlvbi9zcmMvd2lkZ2V0cy91c2VyLWNyZWF0aW9uLXdpemFyZC9jb21wb25lbnRzL3VzZXItdGVtcGxhdGUtc3RlcC91c2VyLXRlbXBsYXRlLXN0ZXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQWUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7OztBQVUzSCxNQUFNLE9BQU8seUJBQXlCO0lBK0NsQyxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNyRCxDQUFDO0lBSUQsWUFDVyx5QkFBb0QsRUFDMUMsbUJBQTJDLEVBQzNDLEVBQWU7UUFGekIsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEyQjtRQUMxQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXdCO1FBQzNDLE9BQUUsR0FBRixFQUFFLENBQWE7UUF0RDFCLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUVoRCxjQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDN0IsUUFBUSxFQUFFLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDO1lBQ3BDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQztZQUNkLGNBQWMsRUFBRSxDQUFDLEVBQUUsQ0FBQztTQUN2QixDQUFDLENBQUM7UUFFSSxxQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7UUFFbkMsd0JBQW1CLEdBQUcsbUJBQW1CLENBQUM7UUFDMUQscURBQXFEO1FBQ3JELHNDQUFzQztRQUVyQixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUV4QyxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBRWYsZUFBVSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUNqRSxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUN4QixHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLENBQ3JDLENBQUM7UUFDYyxtQkFBYyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUN6RSxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxJQUFJLEVBQUUsQ0FBQztZQUNqQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzdELE1BQU0saUJBQWlCLEdBQUcsZUFBZSxFQUFFLEtBQUssQ0FBQztZQUNqRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUM7WUFDM0QsK0NBQStDO1lBQy9DLDZEQUE2RDtZQUM3RCxLQUFLO1lBRUwsTUFBTSxlQUFlLEdBQUcsY0FBYyxLQUFLLElBQUksSUFBSSxjQUFjLEtBQUssU0FBUyxDQUFDO1lBQ2hGLDhHQUE4RztZQUM5Ryw2REFBNkQ7WUFDN0QsSUFBSTtRQUNSLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQzNCLENBQUM7UUFFRix5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDN0IsY0FBUyxHQUE0QixFQUFFLENBQUM7UUFDeEMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFNUiw4QkFBeUIsR0FBRyxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQU9qRSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxRQUFRO1FBRUosSUFBSSxDQUFDLFNBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFFLENBQUMsWUFBWTthQUN4QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqQixNQUFNLG1CQUFtQixHQUFHLEtBQUssS0FBSyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQzVFLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFFUCxJQUFJLENBQUMsU0FBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUUsQ0FBQyxZQUFZO2FBQ3RDLElBQUk7UUFDRCw0REFBNEQ7UUFDNUQsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDViwyRUFBMkU7WUFDM0UsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3BGLElBQUksWUFBWSxFQUFFO2dCQUNkLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDL0Q7WUFDRCxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFDeEIsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDaEIsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRTtnQkFDdkQsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7Z0JBQzdCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ25CO1lBRUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDNUIsT0FBTyxRQUFRLENBQUM7Z0JBQ1osSUFBSSxDQUFDLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDN0QsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDL0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFO2dCQUNsQixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1IsQ0FBQyxDQUFDLENBQ0w7YUFDQSxTQUFTLEVBQUUsQ0FBQztRQUNiLDBCQUEwQjtRQUMxQiwwQkFBMEI7UUFDMUIsS0FBSztRQUVULElBQUksQ0FBQyxTQUFVLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFFLENBQUMsWUFBWTthQUM5QyxJQUFJLENBQ0QsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFDM0YsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFDeEIsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDaEIsbURBQW1EO1lBQ25ELG9GQUFvRjtZQUNwRix1QkFBdUI7WUFDdkIsSUFBSTtZQUNKLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2lCQUMvRixJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ1osTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ2hHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUNyRSxJQUFJLENBQUMseUJBQXlCLENBQUMseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEUsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUNWLENBQUMsQ0FBQyxDQUNMO2FBQ0EsU0FBUyxFQUFFLENBQUM7UUFFakIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFlBQVk7YUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLENBQUM7YUFDdkUsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDakIsSUFBRyxLQUFLLEtBQUssSUFBSSxFQUFFO2dCQUNmLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssSUFBSSxJQUFJLENBQUM7Z0JBQzNELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7cUJBQ2pELFNBQVMsRUFBRSxDQUFDO2FBQ3BCO2lCQUFNO2dCQUNILElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7YUFDakQ7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVQLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVmLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYTthQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNoRSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsZUFBZTtRQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDckQsSUFBSSxDQUFDLHlCQUF5QixDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUVPLE9BQU87UUFDWCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxTQUFVLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssS0FBSyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBRTdHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3ZFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7YUFDekQsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVPLFFBQVEsQ0FBQyxtQkFBNEI7UUFDekMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLElBQUksQ0FDbEcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRU0sTUFBTSxDQUFDLElBQVU7UUFDcEIsT0FBTyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxJQUFJLENBQUM7SUFDbkMsQ0FBQztJQUVNLG1CQUFtQjtRQUN0QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUM7UUFDbkQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUM7UUFDM0UsT0FBTyxNQUFNLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDekQsQ0FBQztJQUVNLHVCQUF1QjtRQUMxQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUMvRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUMzRyxPQUFPLFVBQVUsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNyRSxDQUFDO0lBRUQsV0FBVztRQUNQLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUNuRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUMvRCxPQUFPLE1BQU0sS0FBSyxJQUFJLElBQUksTUFBTSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxhQUFhLEVBQUUsQ0FBQztRQUM5QyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDO0lBQzFELENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdCLENBQUM7O3VIQXJNUSx5QkFBeUI7MkdBQXpCLHlCQUF5QixrSkNkdEMsNi9HQXlFQTs0RkQzRGEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNJLHVCQUF1QjsrS0FLeEIsVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBVc2VyQ3JlYXRpb25XaXphcmRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3VzZXItY3JlYXRpb24td2l6YXJkLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVVNFUl9DUkVBVElPTl9UWVBFUyB9IGZyb20gJy4uLy4uLy4uLy4uL2FwcC5jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgZmluYWxpemUsIGZvcmtKb2luLCBvZiwgc3RhcnRXaXRoLCBTdWJqZWN0LCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgVXNlckNyZWF0aW9uQXBpU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9zaGFyZWQvc2VydmljZXMvdXNlci1jcmVhdGlvbi1hcGkuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTaXRlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2NsYXNzZXMvc2l0ZVwiO1xyXG5pbXBvcnQgeyBVc2VyVGVtcGxhdGVJbnRlcmZhY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy91c2VyLWNyZWF0aW9uLXdpemFyZC5pbnRlcmZhY2VzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndGstdXNlci10ZW1wbGF0ZS1zdGVwJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91c2VyLXRlbXBsYXRlLXN0ZXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdXNlci10ZW1wbGF0ZS1zdGVwLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJUZW1wbGF0ZVN0ZXBDb21wb25lbnQge1xyXG4gICAgQElucHV0KCkgY3VzdG9tZXJJZCE6IG51bWJlcjtcclxuICAgIEBPdXRwdXQoKSB2YWxpZGl0eUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgICBwdWJsaWMgZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgdXNlclR5cGU6IFtVU0VSX0NSRUFUSU9OX1RZUEVTLkNVQ01dLFxyXG4gICAgICAgIHNpdGVJZDogW251bGxdLFxyXG4gICAgICAgIHVzZXJUZW1wbGF0ZUlkOiBbJyddLFxyXG4gICAgfSk7XHJcblxyXG4gICAgcHVibGljIHVzZXJDcmVhdGlvblR5cGUgPSBVU0VSX0NSRUFUSU9OX1RZUEVTLkNVQ007XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IFVTRVJfQ1JFQVRJT05fVFlQRVMgPSBVU0VSX0NSRUFUSU9OX1RZUEVTO1xyXG4gICAgLy8gcmVhZG9ubHkgZGVmYXVsdFRlbXBsYXRlTmFtZSA9ICdVc2VyIDg4NTEgT2ZmaWNlJztcclxuICAgIC8vIHJlYWRvbmx5IGZhbGxiYWNrVGVtcGxhdGVJZCA9ICctMSc7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBzaXRlc0xpc3Q6IFNpdGVbXSA9IFtdO1xyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSBzaXRlc0xpc3QkID0gdGhpcy51c2VyQ3JlYXRpb25TZXJ2aWNlLnNpdGVzTGlzdCQucGlwZShcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXHJcbiAgICAgICAgdGFwKChyZXMpID0+IHRoaXMuc2l0ZXNMaXN0ID0gcmVzKVxyXG4gICAgKTtcclxuICAgIHB1YmxpYyByZWFkb25seSB0ZW1wbGF0ZXNMaXN0JCA9IHRoaXMudXNlckNyZWF0aW9uU2VydmljZS50ZW1wbGF0ZXNMaXN0JC5waXBlKFxyXG4gICAgICAgIHRhcCgodGVtcGxhdGVzKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudGVtcGxhdGVzID0gdGVtcGxhdGVzIHx8IFtdO1xyXG4gICAgICAgICAgICBjb25zdCB0ZW1wbGF0ZUNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cC5nZXQoJ3VzZXJUZW1wbGF0ZUlkJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRUZW1wbGF0ZUlkID0gdGVtcGxhdGVDb250cm9sPy52YWx1ZTtcclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRTaXRlSWQgPSB0aGlzLmZvcm1Hcm91cC5nZXQoJ3NpdGVJZCcpPy52YWx1ZTtcclxuICAgICAgICAgICAgLy8gY29uc3QgZGVmYXVsdFRlbXBsYXRlID0gdGhpcy50ZW1wbGF0ZXMuZmluZChcclxuICAgICAgICAgICAgLy8gICAgIHRlbXBsYXRlID0+IHRlbXBsYXRlLm5hbWUgPT09IHRoaXMuZGVmYXVsdFRlbXBsYXRlTmFtZVxyXG4gICAgICAgICAgICAvLyApO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgaGFzU2VsZWN0ZWRTaXRlID0gc2VsZWN0ZWRTaXRlSWQgIT09IG51bGwgJiYgc2VsZWN0ZWRTaXRlSWQgIT09IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgLy8gaWYgKGhhc1NlbGVjdGVkU2l0ZSAmJiBkZWZhdWx0VGVtcGxhdGUgJiYgU3RyaW5nKGN1cnJlbnRUZW1wbGF0ZUlkIHx8ICcnKSAhPT0gU3RyaW5nKGRlZmF1bHRUZW1wbGF0ZS5pZCkpIHtcclxuICAgICAgICAgICAgLy8gICAgIHRlbXBsYXRlQ29udHJvbD8uc2V0VmFsdWUoU3RyaW5nKGRlZmF1bHRUZW1wbGF0ZS5pZCkpO1xyXG4gICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXHJcbiAgICApO1xyXG5cclxuICAgIGlzVGVtcGxhdGVTZWxlY3RhYmxlID0gZmFsc2U7XHJcbiAgICB0ZW1wbGF0ZXM6IFVzZXJUZW1wbGF0ZUludGVyZmFjZVtdID0gW107XHJcbiAgICBsb2FkaW5nU2l0ZXMgPSBmYWxzZTtcclxuICAgIGxvYWRpbmdTaXRlRGF0YSA9IGZhbHNlO1xyXG5cclxuICAgIGdldCBpc0xvYWRpbmcoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGluZ1NpdGVzIHx8IHRoaXMubG9hZGluZ1NpdGVEYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSB0ZW1wbGF0ZVRvZ2dsZUZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKGZhbHNlKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgdXNlckNyZWF0aW9uV2l6YXJkU2VydmljZTogVXNlckNyZWF0aW9uV2l6YXJkU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJDcmVhdGlvblNlcnZpY2U6IFVzZXJDcmVhdGlvbkFwaVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICApIHtcclxuICAgICAgY29uc29sZS5sb2coJ1NURVAgMScpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG5cclxuICAgICAgICB0aGlzLmZvcm1Hcm91cCEuZ2V0KCd1c2VyVHlwZScpIS52YWx1ZUNoYW5nZXNcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaXNPbmx5V2l0aExvY2F0aW9ucyA9IHZhbHVlID09PSBVU0VSX0NSRUFUSU9OX1RZUEVTLk1UID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRTaXRlcyhpc09ubHlXaXRoTG9jYXRpb25zKS5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVzZUZpZWxkc3RGb3JtKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmZvcm1Hcm91cCEuZ2V0KCdzaXRlSWQnKSEudmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgLy8gZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCksXHJcbiAgICAgICAgICAgICAgICB0YXAoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5mb3JtR3JvdXAuZ2V0KCd1c2VyVGVtcGxhdGVJZCcpPy5zZXRWYWx1ZSh0aGlzLmZhbGxiYWNrVGVtcGxhdGVJZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRTaXRlID0gdGhpcy5zaXRlc0xpc3QuZmluZChzaXRlID0+IFN0cmluZyhzaXRlLmlkKSA9PT0gU3RyaW5nKHZhbHVlKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkU2l0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2Uuc2V0Q3VycmVudFNpdGUoc2VsZWN0ZWRTaXRlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudXNlckNyZWF0aW9uV2l6YXJkU2VydmljZS5zZXRTZWxlY3RlZFNpdGUodmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ1NpdGVEYXRhID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ1NpdGVEYXRhID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm9ya0pvaW4oW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJDcmVhdGlvblNlcnZpY2UuZmV0Y2hBbGxVc2VyVGVtcGxhdGVzKE51bWJlcih2YWx1ZSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2UuZ2V0U2l0ZUFsbERhdGEoTnVtYmVyKHZhbHVlKSksXHJcbiAgICAgICAgICAgICAgICAgICAgXSkucGlwZShmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ1NpdGVEYXRhID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICAvLyAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICAvLyAgICAgY29uc29sZS5sb2codmFsdWUpO1xyXG4gICAgICAgICAgICAvLyB9KVxyXG5cclxuICAgICAgICB0aGlzLmZvcm1Hcm91cCEuZ2V0KCd1c2VyVGVtcGxhdGVJZCcpIS52YWx1ZUNoYW5nZXNcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIFN0cmluZyh2YWx1ZSkudHJpbSgpLmxlbmd0aCA+IDApLFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIChTdHJpbmcodmFsdWUpID09PSB0aGlzLmZhbGxiYWNrVGVtcGxhdGVJZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICB0aGlzLnVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2Uuc2V0U2VsZWN0ZWRUZW1wbGF0ZSh0aGlzLmRlZmF1bHRUZW1wbGF0ZU5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vICAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnVzZXJDcmVhdGlvblNlcnZpY2UuZ2V0VXNlclRlbXBsYXRlVG9rZW4oU3RyaW5nKHZhbHVlKSwgU3RyaW5nKFN0cmluZyh0aGlzLmN1c3RvbWVySWQpKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXAoKHBheWxvYWQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZFRlbXBsYXRlID0gdGhpcy50ZW1wbGF0ZXMuZmluZCh0ZW1wbGF0ZSA9PiBTdHJpbmcodGVtcGxhdGUuaWQpID09PSBTdHJpbmcodmFsdWUpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2Uuc2V0U2VsZWN0ZWRUZW1wbGF0ZShzZWxlY3RlZFRlbXBsYXRlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2UuYXBwbHlUZW1wbGF0ZVRva2VuUGF5bG9hZChwYXlsb2FkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZVRvZ2dsZUZvcm1Db250cm9sLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAgICAgICAucGlwZShzdGFydFdpdGgodHJ1ZSksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmKHZhbHVlID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2l0ZUlkID0gdGhpcy5mb3JtR3JvdXAuZ2V0KCdzaXRlSWQnKT8udmFsdWUgfHwgNzA5NTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJDcmVhdGlvblNlcnZpY2UuZmV0Y2hBbGxVc2VyVGVtcGxhdGVzKHNpdGVJZClcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ3VzZXJUZW1wbGF0ZUlkJyk/LnJlc2V0KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmdldERhdGEoKTtcclxuXHJcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuc3RhdHVzQ2hhbmdlc1xyXG4gICAgICAgICAgICAucGlwZShzdGFydFdpdGgodGhpcy5mb3JtR3JvdXAuc3RhdHVzKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMudmFsaWRpdHlDaGFuZ2UuZW1pdCh0aGlzLmlzU3RlcFZhbGlkKCkpKTtcclxuICAgIH1cclxuXHJcbiAgICByZXNlRmllbGRzdEZvcm0oKSB7XHJcbiAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ3NpdGVJZCcpPy5yZXNldCgpO1xyXG4gICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCd1c2VyVGVtcGxhdGVJZCcpPy5yZXNldCgpO1xyXG4gICAgICAgdGhpcy51c2VyQ3JlYXRpb25XaXphcmRTZXJ2aWNlLnNldFNlbGVjdGVkVGVtcGxhdGUoKTtcclxuICAgICAgIHRoaXMudXNlckNyZWF0aW9uV2l6YXJkU2VydmljZS5yZXNldFRlbXBsYXRlRHJpdmVuRGF0YSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0RGF0YSgpIHtcclxuICAgICAgICBjb25zdCBpc09ubHlXaXRoTG9jYXRpb25zID0gdGhpcy5mb3JtR3JvdXAhLmdldCgndXNlclR5cGUnKT8udmFsdWUgPT09IFVTRVJfQ1JFQVRJT05fVFlQRVMuTVQgPyB0cnVlIDogZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMudXNlckNyZWF0aW9uU2VydmljZS5jaGVja0NvbnRyb2xIdWJJbnRlZ3JhdGlvbihTdHJpbmcodGhpcy5jdXN0b21lcklkKSlcclxuICAgICAgICAgICAgLnBpcGUoc3dpdGNoTWFwKCgpID0+IHRoaXMuZ2V0U2l0ZXMoaXNPbmx5V2l0aExvY2F0aW9ucykpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRTaXRlcyhpc09ubHlXaXRoTG9jYXRpb25zOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nU2l0ZXMgPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnVzZXJDcmVhdGlvblNlcnZpY2UuZ2V0QWxsQ3VzdG9tZXJTaXRlcyhTdHJpbmcodGhpcy5jdXN0b21lcklkKSwgaXNPbmx5V2l0aExvY2F0aW9ucykucGlwZShcclxuICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nU2l0ZXMgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc0NVQ00oc2l0ZTogU2l0ZSkge1xyXG4gICAgICAgIHJldHVybiBzaXRlPy5jdWNtPy5pZCA9PT0gMjU0MjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0U2VsZWN0ZWRTaXRlTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHNpdGVJZCA9IHRoaXMuZm9ybUdyb3VwLmdldCgnc2l0ZUlkJyk/LnZhbHVlO1xyXG4gICAgICAgIGNvbnN0IGZvdW5kZWRTaXRlID0gdGhpcy5zaXRlc0xpc3QuZmluZCgoc2l0ZTogYW55KSA9PiBzaXRlLmlkID09PSBzaXRlSWQpO1xyXG4gICAgICAgIHJldHVybiBzaXRlSWQgJiYgZm91bmRlZFNpdGUgPyBmb3VuZGVkU2l0ZS5uYW1lIDogJyc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFNlbGVjdGVkVGVtcGxhdGVOYW1lKCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgdGVtcGxhdGVJZCA9IHRoaXMuZm9ybUdyb3VwLmdldCgndXNlclRlbXBsYXRlSWQnKT8udmFsdWU7XHJcbiAgICAgICAgY29uc3QgZm91bmRlZFRlbXBsYXRlID0gdGhpcy50ZW1wbGF0ZXMuZmluZCgodGVtcGxhdGU6IGFueSkgPT4gU3RyaW5nKHRlbXBsYXRlLmlkKSA9PT0gU3RyaW5nKHRlbXBsYXRlSWQpKTtcclxuICAgICAgICByZXR1cm4gdGVtcGxhdGVJZCAmJiBmb3VuZGVkVGVtcGxhdGUgPyBmb3VuZGVkVGVtcGxhdGUubmFtZSA6ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGlzU3RlcFZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IHNpdGVJZCA9IHRoaXMuZm9ybUdyb3VwLmdldCgnc2l0ZUlkJyk/LnZhbHVlO1xyXG4gICAgICAgIGNvbnN0IHRlbXBsYXRlSWQgPSB0aGlzLmZvcm1Hcm91cC5nZXQoJ3VzZXJUZW1wbGF0ZUlkJyk/LnZhbHVlO1xyXG4gICAgICAgIHJldHVybiBzaXRlSWQgIT09IG51bGwgJiYgc2l0ZUlkICE9PSB1bmRlZmluZWQgJiYgU3RyaW5nKHRlbXBsYXRlSWQgfHwgJycpLnRyaW0oKS5sZW5ndGggPiAwO1xyXG4gICAgfVxyXG5cclxuICAgIG1hcmtTdGVwVG91Y2hlZCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ3NpdGVJZCcpPy5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCd1c2VyVGVtcGxhdGVJZCcpPy5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxhcHAtbG9hZGVyICpuZ0lmPVwiaXNMb2FkaW5nXCI+PC9hcHAtbG9hZGVyPlxyXG48c2VjdGlvbiBjbGFzcz1cInRlbXBsYXRlLXN0ZXAtY29udGVudFwiPlxyXG4gIDxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cclxuICAgIDwhLS0gPGRpdiBjbGFzcz1cInRlbXBsYXRlLXN0ZXAtZmllbGQgdGVtcGxhdGUtc3RlcC1maWVsZC0tdXNlci10eXBlXCI+XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cInRlbXBsYXRlLXN0ZXAtbGFiZWxcIj5Vc2VyIHR5cGU8L2xhYmVsPlxyXG4gICAgICA8bWF0LXJhZGlvLWdyb3VwIGNsYXNzPVwidXNlci10eXBlLW1hdC1yYWRpby1ncm91cFwiIGZvcm1Db250cm9sTmFtZT1cInVzZXJUeXBlXCI+XHJcbiAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY2xhc3M9XCJ1c2VyLXR5cGUtbWF0LXJhZGlvXCIgaWQ9XCJ1c2VyQ3JlYXRpb25DdWNtXCIgW3ZhbHVlXT1cIlVTRVJfQ1JFQVRJT05fVFlQRVMuQ1VDTVwiPlxyXG4gICAgICAgICAgVUNNL0RJXHJcbiAgICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwidXNlci10eXBlLW1hdC1yYWRpb1wiIGlkPVwidXNlckNyZWF0aW9uTVRcIiBbdmFsdWVdPVwiVVNFUl9DUkVBVElPTl9UWVBFUy5NVFwiPlxyXG4gICAgICAgICAgTVRcclxuICAgICAgICA8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgPC9kaXY+IC0tPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJ0ZW1wbGF0ZS1zdGVwLWZpZWxkXCI+XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cInRlbXBsYXRlLXN0ZXAtbGFiZWxcIj5TZWxlY3Qgc2l0ZTwvbGFiZWw+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInRlbXBsYXRlLXN0ZXAtc2VsZWN0XCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJTaXRlIG5hbWVcIlxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2l0ZUlkXCI+XHJcblxyXG4gICAgICAgICAgPG1hdC1zZWxlY3QtdHJpZ2dlcj5cclxuICAgICAgICAgICAgICB7eyBnZXRTZWxlY3RlZFNpdGVOYW1lKCkgfX1cclxuICAgICAgICAgIDwvbWF0LXNlbGVjdC10cmlnZ2VyPlxyXG5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzaXRlIG9mIHNpdGVzTGlzdCQgfCBhc3luY1wiIFt2YWx1ZV09XCJzaXRlLmlkXCI+XHJcbiAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uLXJvd1wiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmFtZVwiPnt7IHNpdGUubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNpdGUubmFtZSA9PT0gJ0JlcmxpbicgZWxzZSBub3RCZXJsaW5TaXRlXCIgY2xhc3M9XCJ0eXBlXCI+e3sgJ1dlYmV4IENhbGxpbmcnIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90QmVybGluU2l0ZT5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHlwZVwiPnt7IGlzQ1VDTShzaXRlKSA/ICdVQ00nIDogJ1dlYmV4IENhbGxpbmcgREknIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtR3JvdXAuZ2V0KCd1c2VyVHlwZScpPy52YWx1ZSA9PT0gVVNFUl9DUkVBVElPTl9UWVBFUy5DVUNNXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZW1wbGF0ZS1zdGVwLWZpZWxkXCI+XHJcbiAgICAgICAgPCEtLSA8bGFiZWwgY2xhc3M9XCJ0ZW1wbGF0ZS1zdGVwLWxhYmVsXCI+V291bGQgeW91IGxpa2UgdG8gdXNlIGEgdGVtcGxhdGUgZm9yIHRoZSB1c2VyIGNyZWF0aW9uPzwvbGFiZWw+IC0tPlxyXG4gICAgICAgIDwhLS0gPG1hdC1yYWRpby1ncm91cCBbZm9ybUNvbnRyb2xdPVwidGVtcGxhdGVUb2dnbGVGb3JtQ29udHJvbFwiPlxyXG4gICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gW2NvbG9yXT1cIidwcmltYXJ5J1wiIFt2YWx1ZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIHt7ICdZZXMnIH19XHJcbiAgICAgICAgICA8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBbY29sb3JdPVwiJ3ByaW1hcnknXCIgW3ZhbHVlXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgIHt7ICdObycgfX1cclxuICAgICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICA8L21hdC1yYWRpby1ncm91cD4gLS0+XHJcblxyXG4gICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cInRlbXBsYXRlVG9nZ2xlRm9ybUNvbnRyb2wudmFsdWUgPT09IHRydWVcIj4gLS0+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ0ZW1wbGF0ZS1zdGVwLWxhYmVsXCI+U2VsZWN0IHVzZXIgdGVtcGxhdGU8L2xhYmVsPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidGVtcGxhdGUtc3RlcC1zZWxlY3RcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG4gICAgICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiVGVtcGxhdGVzXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ1c2VyVGVtcGxhdGVJZFwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtc2VsZWN0LXRyaWdnZXI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBtYXRUb29sdGlwPVwiJ0EgbmV3IHVzZXIgd2lsbCBiZSBjcmVhdGVkIGJhc2VkIG9uIHRoZSBzZWxlY3RlZCB0ZW1wbGF0ZSwgaW5jbHVkaW5nIGEgQ2lzY28gODg1MSBwaHlzaWNhbCBkZXZpY2Ugd2l0aCBhIHNpbmdsZSBsaW5lIGNvbmZpZ3VyZWQsIHdpdGhvdXQgU05SIChTaW5nbGUgTnVtYmVyIFJlYWNoKSBhbmQgd2l0aG91dCB2b2ljZW1haWwuJ1wiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBnZXRTZWxlY3RlZFRlbXBsYXRlTmFtZSgpIH19XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0LXRyaWdnZXI+XHJcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHRlbXBsYXRlIG9mIHRlbXBsYXRlc0xpc3QkIHwgYXN5bmNcIiBbdmFsdWVdPVwidGVtcGxhdGUuaWRcIiBbZGlzYWJsZWRdPVwidGVtcGxhdGUubmFtZS5pbmNsdWRlcygnSmFiYmVyIFVzZXInKVwiPlxyXG4gICAgICAgICAgICAgICAge3sgdGVtcGxhdGUubmFtZSB9fVxyXG4gICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8IS0tIDwvbmctY29udGFpbmVyPiAtLT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIFxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L3NlY3Rpb24+XHJcbiJdfQ==
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci10ZW1wbGF0ZS1zdGVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLWNyZWF0aW9uL3NyYy93aWRnZXRzL3VzZXItY3JlYXRpb24td2l6YXJkL2NvbXBvbmVudHMvdXNlci10ZW1wbGF0ZS1zdGVwL3VzZXItdGVtcGxhdGUtc3RlcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlci1jcmVhdGlvbi9zcmMvd2lkZ2V0cy91c2VyLWNyZWF0aW9uLXdpemFyZC9jb21wb25lbnRzL3VzZXItdGVtcGxhdGUtc3RlcC91c2VyLXRlbXBsYXRlLXN0ZXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQWUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7OztBQVUzSCxNQUFNLE9BQU8seUJBQXlCO0lBK0NsQyxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNyRCxDQUFDO0lBSUQsWUFDVyx5QkFBb0QsRUFDMUMsbUJBQTJDLEVBQzNDLEVBQWU7UUFGekIsOEJBQXlCLEdBQXpCLHlCQUF5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LENBQUMsQ0FBQztRQUMzRyxPQUFPLFVBQVUsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNyRSxDQUFDO0lBRUQsV0FBVztRQUNQLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUNuRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUMvRCxPQUFPLE1BQU0sS0FBSyxJQUFJLElBQUksTUFBTSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxhQUFhLEVBQUUsQ0FBQztRQUM5QyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDO0lBQzFELENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdCLENBQUM7O3VIQXZOUSx5QkFBeUI7MkdBQXpCLHlCQUF5QixrSkNkdEMsMi9HQXlFQTs0RkQzRGEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNJLHVCQUF1QjsrS0FLeEIsVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBVc2VyQ3JlYXRpb25XaXphcmRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3VzZXItY3JlYXRpb24td2l6YXJkLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVVNFUl9DUkVBVElPTl9UWVBFUyB9IGZyb20gJy4uLy4uLy4uLy4uL2FwcC5jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgZmluYWxpemUsIGZvcmtKb2luLCBvZiwgc3RhcnRXaXRoLCBTdWJqZWN0LCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgVXNlckNyZWF0aW9uQXBpU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9zaGFyZWQvc2VydmljZXMvdXNlci1jcmVhdGlvbi1hcGkuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTaXRlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2NsYXNzZXMvc2l0ZVwiO1xyXG5pbXBvcnQgeyBVc2VyVGVtcGxhdGVJbnRlcmZhY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy91c2VyLWNyZWF0aW9uLXdpemFyZC5pbnRlcmZhY2VzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndGstdXNlci10ZW1wbGF0ZS1zdGVwJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91c2VyLXRlbXBsYXRlLXN0ZXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdXNlci10ZW1wbGF0ZS1zdGVwLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJUZW1wbGF0ZVN0ZXBDb21wb25lbnQge1xyXG4gICAgQElucHV0KCkgY3VzdG9tZXJJZCE6IG51bWJlcjtcclxuICAgIEBPdXRwdXQoKSB2YWxpZGl0eUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgICBwdWJsaWMgZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgdXNlclR5cGU6IFtVU0VSX0NSRUFUSU9OX1RZUEVTLkNVQ01dLFxyXG4gICAgICAgIHNpdGVJZDogW251bGxdLFxyXG4gICAgICAgIHVzZXJUZW1wbGF0ZUlkOiBbeyB2YWx1ZTogJycsIGRpc2FibGVkOiB0cnVlIH1dLFxyXG4gICAgfSk7XHJcblxyXG4gICAgcHVibGljIHVzZXJDcmVhdGlvblR5cGUgPSBVU0VSX0NSRUFUSU9OX1RZUEVTLkNVQ007XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IFVTRVJfQ1JFQVRJT05fVFlQRVMgPSBVU0VSX0NSRUFUSU9OX1RZUEVTO1xyXG4gICAgLy8gcmVhZG9ubHkgZGVmYXVsdFRlbXBsYXRlTmFtZSA9ICdVc2VyIDg4NTEgT2ZmaWNlJztcclxuICAgIC8vIHJlYWRvbmx5IGZhbGxiYWNrVGVtcGxhdGVJZCA9ICctMSc7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBzaXRlc0xpc3Q6IFNpdGVbXSA9IFtdO1xyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSBzaXRlc0xpc3QkID0gdGhpcy51c2VyQ3JlYXRpb25TZXJ2aWNlLnNpdGVzTGlzdCQucGlwZShcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXHJcbiAgICAgICAgdGFwKChyZXMpID0+IHRoaXMuc2l0ZXNMaXN0ID0gcmVzKVxyXG4gICAgKTtcclxuICAgIHB1YmxpYyByZWFkb25seSB0ZW1wbGF0ZXNMaXN0JCA9IHRoaXMudXNlckNyZWF0aW9uU2VydmljZS50ZW1wbGF0ZXNMaXN0JC5waXBlKFxyXG4gICAgICAgIHRhcCgodGVtcGxhdGVzKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudGVtcGxhdGVzID0gdGVtcGxhdGVzIHx8IFtdO1xyXG4gICAgICAgICAgICBjb25zdCB0ZW1wbGF0ZUNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cC5nZXQoJ3VzZXJUZW1wbGF0ZUlkJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRUZW1wbGF0ZUlkID0gdGVtcGxhdGVDb250cm9sPy52YWx1ZTtcclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRTaXRlSWQgPSB0aGlzLmZvcm1Hcm91cC5nZXQoJ3NpdGVJZCcpPy52YWx1ZTtcclxuICAgICAgICAgICAgLy8gY29uc3QgZGVmYXVsdFRlbXBsYXRlID0gdGhpcy50ZW1wbGF0ZXMuZmluZChcclxuICAgICAgICAgICAgLy8gICAgIHRlbXBsYXRlID0+IHRlbXBsYXRlLm5hbWUgPT09IHRoaXMuZGVmYXVsdFRlbXBsYXRlTmFtZVxyXG4gICAgICAgICAgICAvLyApO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgaGFzU2VsZWN0ZWRTaXRlID0gc2VsZWN0ZWRTaXRlSWQgIT09IG51bGwgJiYgc2VsZWN0ZWRTaXRlSWQgIT09IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgLy8gaWYgKGhhc1NlbGVjdGVkU2l0ZSAmJiBkZWZhdWx0VGVtcGxhdGUgJiYgU3RyaW5nKGN1cnJlbnRUZW1wbGF0ZUlkIHx8ICcnKSAhPT0gU3RyaW5nKGRlZmF1bHRUZW1wbGF0ZS5pZCkpIHtcclxuICAgICAgICAgICAgLy8gICAgIHRlbXBsYXRlQ29udHJvbD8uc2V0VmFsdWUoU3RyaW5nKGRlZmF1bHRUZW1wbGF0ZS5pZCkpO1xyXG4gICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXHJcbiAgICApO1xyXG5cclxuICAgIGlzVGVtcGxhdGVTZWxlY3RhYmxlID0gZmFsc2U7XHJcbiAgICB0ZW1wbGF0ZXM6IFVzZXJUZW1wbGF0ZUludGVyZmFjZVtdID0gW107XHJcbiAgICBsb2FkaW5nU2l0ZXMgPSBmYWxzZTtcclxuICAgIGxvYWRpbmdTaXRlRGF0YSA9IGZhbHNlO1xyXG5cclxuICAgIGdldCBpc0xvYWRpbmcoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGluZ1NpdGVzIHx8IHRoaXMubG9hZGluZ1NpdGVEYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSB0ZW1wbGF0ZVRvZ2dsZUZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKGZhbHNlKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgdXNlckNyZWF0aW9uV2l6YXJkU2VydmljZTogVXNlckNyZWF0aW9uV2l6YXJkU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJDcmVhdGlvblNlcnZpY2U6IFVzZXJDcmVhdGlvbkFwaVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICApIHtcclxuICAgICAgY29uc29sZS5sb2coJ1NURVAgMScpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG5cclxuICAgICAgICB0aGlzLmZvcm1Hcm91cCEuZ2V0KCd1c2VyVHlwZScpIS52YWx1ZUNoYW5nZXNcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaXNPbmx5V2l0aExvY2F0aW9ucyA9IHZhbHVlID09PSBVU0VSX0NSRUFUSU9OX1RZUEVTLk1UID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRTaXRlcyhpc09ubHlXaXRoTG9jYXRpb25zKS5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVzZUZpZWxkc3RGb3JtKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmZvcm1Hcm91cCEuZ2V0KCdzaXRlSWQnKSEudmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgLy8gZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCksXHJcbiAgICAgICAgICAgICAgICB0YXAoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNldFNlbGVjdGVkVGVtcGxhdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVRlbXBsYXRlQ29udHJvbFN0YXRlKHZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLmZvcm1Hcm91cC5nZXQoJ3VzZXJUZW1wbGF0ZUlkJyk/LnNldFZhbHVlKHRoaXMuZmFsbGJhY2tUZW1wbGF0ZUlkKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZFNpdGUgPSB0aGlzLnNpdGVzTGlzdC5maW5kKHNpdGUgPT4gU3RyaW5nKHNpdGUuaWQpID09PSBTdHJpbmcodmFsdWUpKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRTaXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckNyZWF0aW9uV2l6YXJkU2VydmljZS5zZXRDdXJyZW50U2l0ZShzZWxlY3RlZFNpdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy51c2VyQ3JlYXRpb25XaXphcmRTZXJ2aWNlLnNldFNlbGVjdGVkU2l0ZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nU2l0ZURhdGEgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nU2l0ZURhdGEgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmb3JrSm9pbihbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckNyZWF0aW9uU2VydmljZS5mZXRjaEFsbFVzZXJUZW1wbGF0ZXMoTnVtYmVyKHZhbHVlKSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckNyZWF0aW9uV2l6YXJkU2VydmljZS5nZXRTaXRlQWxsRGF0YShOdW1iZXIodmFsdWUpKSxcclxuICAgICAgICAgICAgICAgICAgICBdKS5waXBlKGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nU2l0ZURhdGEgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgIC8vIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgICBjb25zb2xlLmxvZyh2YWx1ZSk7XHJcbiAgICAgICAgICAgIC8vIH0pXHJcblxyXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwIS5nZXQoJ3VzZXJUZW1wbGF0ZUlkJykhLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIGZpbHRlcigodmFsdWUpID0+IHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQgJiYgU3RyaW5nKHZhbHVlKS50cmltKCkubGVuZ3RoID4gMCksXHJcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgKFN0cmluZyh2YWx1ZSkgPT09IHRoaXMuZmFsbGJhY2tUZW1wbGF0ZUlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgIHRoaXMudXNlckNyZWF0aW9uV2l6YXJkU2VydmljZS5zZXRTZWxlY3RlZFRlbXBsYXRlKHRoaXMuZGVmYXVsdFRlbXBsYXRlTmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgIHJldHVybiBvZihudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudXNlckNyZWF0aW9uU2VydmljZS5nZXRVc2VyVGVtcGxhdGVUb2tlbihTdHJpbmcodmFsdWUpLCBTdHJpbmcoU3RyaW5nKHRoaXMuY3VzdG9tZXJJZCkpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcCgocGF5bG9hZCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkVGVtcGxhdGUgPSB0aGlzLnRlbXBsYXRlcy5maW5kKHRlbXBsYXRlID0+IFN0cmluZyh0ZW1wbGF0ZS5pZCkgPT09IFN0cmluZyh2YWx1ZSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckNyZWF0aW9uV2l6YXJkU2VydmljZS5zZXRTZWxlY3RlZFRlbXBsYXRlKHNlbGVjdGVkVGVtcGxhdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckNyZWF0aW9uV2l6YXJkU2VydmljZS5hcHBseVRlbXBsYXRlVG9rZW5QYXlsb2FkKHBheWxvYWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xyXG5cclxuICAgICAgICB0aGlzLnRlbXBsYXRlVG9nZ2xlRm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgICAgIC5waXBlKHN0YXJ0V2l0aCh0cnVlKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYodmFsdWUgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzaXRlSWQgPSB0aGlzLmZvcm1Hcm91cC5nZXQoJ3NpdGVJZCcpPy52YWx1ZSB8fCA3MDk1O1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckNyZWF0aW9uU2VydmljZS5mZXRjaEFsbFVzZXJUZW1wbGF0ZXMoc2l0ZUlkKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgndXNlclRlbXBsYXRlSWQnKT8ucmVzZXQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuZ2V0RGF0YSgpO1xyXG5cclxuICAgICAgICB0aGlzLmZvcm1Hcm91cC5zdGF0dXNDaGFuZ2VzXHJcbiAgICAgICAgICAgIC5waXBlKHN0YXJ0V2l0aCh0aGlzLmZvcm1Hcm91cC5zdGF0dXMpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy52YWxpZGl0eUNoYW5nZS5lbWl0KHRoaXMuaXNTdGVwVmFsaWQoKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlc2VGaWVsZHN0Rm9ybSgpIHtcclxuICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnc2l0ZUlkJyk/LnJlc2V0KCk7XHJcbiAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ3VzZXJUZW1wbGF0ZUlkJyk/LnJlc2V0KCk7XHJcbiAgICAgICB0aGlzLnVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2Uuc2V0U2VsZWN0ZWRUZW1wbGF0ZSgpO1xyXG4gICAgICAgdGhpcy51c2VyQ3JlYXRpb25XaXphcmRTZXJ2aWNlLnJlc2V0VGVtcGxhdGVEcml2ZW5EYXRhKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZXNldFNlbGVjdGVkVGVtcGxhdGUoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCd1c2VyVGVtcGxhdGVJZCcpPy5yZXNldCgnJyk7XHJcbiAgICAgICAgdGhpcy51c2VyQ3JlYXRpb25XaXphcmRTZXJ2aWNlLnNldFNlbGVjdGVkVGVtcGxhdGUoKTtcclxuICAgICAgICB0aGlzLnVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2UucmVzZXRUZW1wbGF0ZURyaXZlbkRhdGEoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZVRlbXBsYXRlQ29udHJvbFN0YXRlKHNpdGVJZDogdW5rbm93bik6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHRlbXBsYXRlQ29udHJvbCA9IHRoaXMuZm9ybUdyb3VwLmdldCgndXNlclRlbXBsYXRlSWQnKTtcclxuICAgICAgICBjb25zdCBoYXNTaXRlID0gc2l0ZUlkICE9PSBudWxsICYmIHNpdGVJZCAhPT0gdW5kZWZpbmVkICYmIHNpdGVJZCAhPT0gJyc7XHJcbiAgICAgICAgaWYgKGhhc1NpdGUgJiYgdGVtcGxhdGVDb250cm9sPy5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICB0ZW1wbGF0ZUNvbnRyb2wuZW5hYmxlKCk7XHJcbiAgICAgICAgfSBlbHNlIGlmICghaGFzU2l0ZSAmJiB0ZW1wbGF0ZUNvbnRyb2w/LmVuYWJsZWQpIHtcclxuICAgICAgICAgICAgdGVtcGxhdGVDb250cm9sLmRpc2FibGUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXREYXRhKCkge1xyXG4gICAgICAgIGNvbnN0IGlzT25seVdpdGhMb2NhdGlvbnMgPSB0aGlzLmZvcm1Hcm91cCEuZ2V0KCd1c2VyVHlwZScpPy52YWx1ZSA9PT0gVVNFUl9DUkVBVElPTl9UWVBFUy5NVCA/IHRydWUgOiBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy51c2VyQ3JlYXRpb25TZXJ2aWNlLmNoZWNrQ29udHJvbEh1YkludGVncmF0aW9uKFN0cmluZyh0aGlzLmN1c3RvbWVySWQpKVxyXG4gICAgICAgICAgICAucGlwZShzd2l0Y2hNYXAoKCkgPT4gdGhpcy5nZXRTaXRlcyhpc09ubHlXaXRoTG9jYXRpb25zKSkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFNpdGVzKGlzT25seVdpdGhMb2NhdGlvbnM6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLmxvYWRpbmdTaXRlcyA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlckNyZWF0aW9uU2VydmljZS5nZXRBbGxDdXN0b21lclNpdGVzKFN0cmluZyh0aGlzLmN1c3RvbWVySWQpLCBpc09ubHlXaXRoTG9jYXRpb25zKS5waXBlKFxyXG4gICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmdTaXRlcyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzQ1VDTShzaXRlOiBTaXRlKSB7XHJcbiAgICAgICAgcmV0dXJuIHNpdGU/LmN1Y20/LmlkID09PSAyNTQyO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRTZWxlY3RlZFNpdGVOYW1lKCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3Qgc2l0ZUlkID0gdGhpcy5mb3JtR3JvdXAuZ2V0KCdzaXRlSWQnKT8udmFsdWU7XHJcbiAgICAgICAgY29uc3QgZm91bmRlZFNpdGUgPSB0aGlzLnNpdGVzTGlzdC5maW5kKChzaXRlOiBhbnkpID0+IHNpdGUuaWQgPT09IHNpdGVJZCk7XHJcbiAgICAgICAgcmV0dXJuIHNpdGVJZCAmJiBmb3VuZGVkU2l0ZSA/IGZvdW5kZWRTaXRlLm5hbWUgOiAnJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0U2VsZWN0ZWRUZW1wbGF0ZU5hbWUoKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCB0ZW1wbGF0ZUlkID0gdGhpcy5mb3JtR3JvdXAuZ2V0KCd1c2VyVGVtcGxhdGVJZCcpPy52YWx1ZTtcclxuICAgICAgICBjb25zdCBmb3VuZGVkVGVtcGxhdGUgPSB0aGlzLnRlbXBsYXRlcy5maW5kKCh0ZW1wbGF0ZTogYW55KSA9PiBTdHJpbmcodGVtcGxhdGUuaWQpID09PSBTdHJpbmcodGVtcGxhdGVJZCkpO1xyXG4gICAgICAgIHJldHVybiB0ZW1wbGF0ZUlkICYmIGZvdW5kZWRUZW1wbGF0ZSA/IGZvdW5kZWRUZW1wbGF0ZS5uYW1lIDogJyc7XHJcbiAgICB9XHJcblxyXG4gICAgaXNTdGVwVmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3Qgc2l0ZUlkID0gdGhpcy5mb3JtR3JvdXAuZ2V0KCdzaXRlSWQnKT8udmFsdWU7XHJcbiAgICAgICAgY29uc3QgdGVtcGxhdGVJZCA9IHRoaXMuZm9ybUdyb3VwLmdldCgndXNlclRlbXBsYXRlSWQnKT8udmFsdWU7XHJcbiAgICAgICAgcmV0dXJuIHNpdGVJZCAhPT0gbnVsbCAmJiBzaXRlSWQgIT09IHVuZGVmaW5lZCAmJiBTdHJpbmcodGVtcGxhdGVJZCB8fCAnJykudHJpbSgpLmxlbmd0aCA+IDA7XHJcbiAgICB9XHJcblxyXG4gICAgbWFya1N0ZXBUb3VjaGVkKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnc2l0ZUlkJyk/Lm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ3VzZXJUZW1wbGF0ZUlkJyk/Lm1hcmtBc1RvdWNoZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcbn1cclxuIiwiPHRrLWxvYWRlciAqbmdJZj1cImlzTG9hZGluZ1wiPjwvdGstbG9hZGVyPlxyXG48c2VjdGlvbiBjbGFzcz1cInRlbXBsYXRlLXN0ZXAtY29udGVudFwiPlxyXG4gIDxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cclxuICAgIDwhLS0gPGRpdiBjbGFzcz1cInRlbXBsYXRlLXN0ZXAtZmllbGQgdGVtcGxhdGUtc3RlcC1maWVsZC0tdXNlci10eXBlXCI+XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cInRlbXBsYXRlLXN0ZXAtbGFiZWxcIj5Vc2VyIHR5cGU8L2xhYmVsPlxyXG4gICAgICA8bWF0LXJhZGlvLWdyb3VwIGNsYXNzPVwidXNlci10eXBlLW1hdC1yYWRpby1ncm91cFwiIGZvcm1Db250cm9sTmFtZT1cInVzZXJUeXBlXCI+XHJcbiAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY2xhc3M9XCJ1c2VyLXR5cGUtbWF0LXJhZGlvXCIgaWQ9XCJ1c2VyQ3JlYXRpb25DdWNtXCIgW3ZhbHVlXT1cIlVTRVJfQ1JFQVRJT05fVFlQRVMuQ1VDTVwiPlxyXG4gICAgICAgICAgVUNNL0RJXHJcbiAgICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwidXNlci10eXBlLW1hdC1yYWRpb1wiIGlkPVwidXNlckNyZWF0aW9uTVRcIiBbdmFsdWVdPVwiVVNFUl9DUkVBVElPTl9UWVBFUy5NVFwiPlxyXG4gICAgICAgICAgTVRcclxuICAgICAgICA8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgPC9kaXY+IC0tPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJ0ZW1wbGF0ZS1zdGVwLWZpZWxkXCI+XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cInRlbXBsYXRlLXN0ZXAtbGFiZWxcIj5TZWxlY3Qgc2l0ZTwvbGFiZWw+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInRlbXBsYXRlLXN0ZXAtc2VsZWN0XCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJTaXRlIG5hbWVcIlxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2l0ZUlkXCI+XHJcblxyXG4gICAgICAgICAgPG1hdC1zZWxlY3QtdHJpZ2dlcj5cclxuICAgICAgICAgICAgICB7eyBnZXRTZWxlY3RlZFNpdGVOYW1lKCkgfX1cclxuICAgICAgICAgIDwvbWF0LXNlbGVjdC10cmlnZ2VyPlxyXG5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzaXRlIG9mIHNpdGVzTGlzdCQgfCBhc3luY1wiIFt2YWx1ZV09XCJzaXRlLmlkXCI+XHJcbiAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uLXJvd1wiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmFtZVwiPnt7IHNpdGUubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNpdGUubmFtZSA9PT0gJ0JlcmxpbicgZWxzZSBub3RCZXJsaW5TaXRlXCIgY2xhc3M9XCJ0eXBlXCI+e3sgJ1dlYmV4IENhbGxpbmcnIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90QmVybGluU2l0ZT5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHlwZVwiPnt7IGlzQ1VDTShzaXRlKSA/ICdVQ00nIDogJ1dlYmV4IENhbGxpbmcgREknIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtR3JvdXAuZ2V0KCd1c2VyVHlwZScpPy52YWx1ZSA9PT0gVVNFUl9DUkVBVElPTl9UWVBFUy5DVUNNXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZW1wbGF0ZS1zdGVwLWZpZWxkXCI+XHJcbiAgICAgICAgPCEtLSA8bGFiZWwgY2xhc3M9XCJ0ZW1wbGF0ZS1zdGVwLWxhYmVsXCI+V291bGQgeW91IGxpa2UgdG8gdXNlIGEgdGVtcGxhdGUgZm9yIHRoZSB1c2VyIGNyZWF0aW9uPzwvbGFiZWw+IC0tPlxyXG4gICAgICAgIDwhLS0gPG1hdC1yYWRpby1ncm91cCBbZm9ybUNvbnRyb2xdPVwidGVtcGxhdGVUb2dnbGVGb3JtQ29udHJvbFwiPlxyXG4gICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gW2NvbG9yXT1cIidwcmltYXJ5J1wiIFt2YWx1ZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIHt7ICdZZXMnIH19XHJcbiAgICAgICAgICA8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBbY29sb3JdPVwiJ3ByaW1hcnknXCIgW3ZhbHVlXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgIHt7ICdObycgfX1cclxuICAgICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICA8L21hdC1yYWRpby1ncm91cD4gLS0+XHJcblxyXG4gICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cInRlbXBsYXRlVG9nZ2xlRm9ybUNvbnRyb2wudmFsdWUgPT09IHRydWVcIj4gLS0+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ0ZW1wbGF0ZS1zdGVwLWxhYmVsXCI+U2VsZWN0IHVzZXIgdGVtcGxhdGU8L2xhYmVsPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidGVtcGxhdGUtc3RlcC1zZWxlY3RcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG4gICAgICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiVGVtcGxhdGVzXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ1c2VyVGVtcGxhdGVJZFwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtc2VsZWN0LXRyaWdnZXI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBtYXRUb29sdGlwPVwiJ0EgbmV3IHVzZXIgd2lsbCBiZSBjcmVhdGVkIGJhc2VkIG9uIHRoZSBzZWxlY3RlZCB0ZW1wbGF0ZSwgaW5jbHVkaW5nIGEgQ2lzY28gODg1MSBwaHlzaWNhbCBkZXZpY2Ugd2l0aCBhIHNpbmdsZSBsaW5lIGNvbmZpZ3VyZWQsIHdpdGhvdXQgU05SIChTaW5nbGUgTnVtYmVyIFJlYWNoKSBhbmQgd2l0aG91dCB2b2ljZW1haWwuJ1wiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBnZXRTZWxlY3RlZFRlbXBsYXRlTmFtZSgpIH19XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0LXRyaWdnZXI+XHJcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHRlbXBsYXRlIG9mIHRlbXBsYXRlc0xpc3QkIHwgYXN5bmNcIiBbdmFsdWVdPVwidGVtcGxhdGUuaWRcIiBbZGlzYWJsZWRdPVwidGVtcGxhdGUubmFtZS5pbmNsdWRlcygnSmFiYmVyIFVzZXInKVwiPlxyXG4gICAgICAgICAgICAgICAge3sgdGVtcGxhdGUubmFtZSB9fVxyXG4gICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8IS0tIDwvbmctY29udGFpbmVyPiAtLT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIFxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L3NlY3Rpb24+XHJcbiJdfQ==
@@ -5,14 +5,14 @@ import { UserTemplateStepComponent } from './components/user-template-step/user-
5
5
  import { UserCreationWizardService } from './user-creation-wizard.service';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "../../shared/services/notification.service";
8
- import * as i2 from "@angular/common";
9
- import * as i3 from "@angular/material/button";
10
- import * as i4 from "@angular/material/stepper";
11
- import * as i5 from "./components/user-template-step/user-template-step.component";
12
- import * as i6 from "../../shared/components/notification/notification.component";
13
- import * as i7 from "./components/user-details-step/user-details-step.component";
14
- import * as i8 from "./components/user-overview-step/user-overview-step.component";
15
- import * as i9 from "../../utils/app-loader/app-loader";
8
+ import * as i2 from "@tuki-io/tuki-widgets/shared";
9
+ import * as i3 from "@angular/common";
10
+ import * as i4 from "@angular/material/button";
11
+ import * as i5 from "@angular/material/stepper";
12
+ import * as i6 from "./components/user-template-step/user-template-step.component";
13
+ import * as i7 from "../../shared/components/notification/notification.component";
14
+ import * as i8 from "./components/user-details-step/user-details-step.component";
15
+ import * as i9 from "./components/user-overview-step/user-overview-step.component";
16
16
  export const USER_CREATED_SUCCESSFLLY = 'User created successfully';
17
17
  export class UserCreationWizardComponent {
18
18
  constructor(notificationService) {
@@ -103,10 +103,10 @@ export class UserCreationWizardComponent {
103
103
  }
104
104
  }
105
105
  UserCreationWizardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCreationWizardComponent, deps: [{ token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Component });
106
- UserCreationWizardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserCreationWizardComponent, selector: "tk-user-creation-wizard", inputs: { title: "title", host: "host", token: "token", customerId: "customerId" }, outputs: { cancel: "cancel", submit: "submit" }, viewQueries: [{ propertyName: "templateStep", first: true, predicate: UserTemplateStepComponent, descendants: true }, { propertyName: "detailsStep", first: true, predicate: UserDetailsStepComponent, descendants: true }], ngImport: i0, template: "<app-notification></app-notification>\r\n<app-loader *ngIf=\"isLoading\"></app-loader>\r\n<div class=\"move-user-stepper-container\" [attr.aria-busy]=\"isSubmitting\">\r\n <header class=\"move-user-header\">\r\n <div class=\"move-user-header__title\">{{ title }}</div>\r\n <div class=\"move-user-header__close\">\r\n <span class=\"app-icon user-creation-close-icon\" (click)=\"onCancel()\"></span>\r\n </div>\r\n </header>\r\n\r\n <div id=\"user-creation-stepper\">\r\n <mat-stepper [linear]=\"true\" labelPosition=\"bottom\" #stepper\r\n [selectedIndex]=\"selectedIndex\"\r\n (selectionChange)=\"onStepSelectionChange($event)\">\r\n\r\n <mat-step [completed]=\"templateStepValid\">\r\n <div class=\"step-title\">Step 1: User creation with template</div>\r\n <ng-template matStepLabel>User creation</ng-template>\r\n\r\n <ng-container *ngIf=\"selectedIndex === 0\">\r\n <div class=\"move-user-tab-content-box\">\r\n <tk-user-template-step\r\n [customerId]=\"customerId\"\r\n (validityChange)=\"templateStepValid = $event\"\r\n ></tk-user-template-step>\r\n </div>\r\n </ng-container>\r\n </mat-step>\r\n\r\n <mat-step [completed]=\"detailsStepValid\">\r\n <div class=\"step-title\">Step 2 : User details</div>\r\n <ng-template matStepLabel>User details</ng-template>\r\n\r\n <ng-container *ngIf=\"selectedIndex === 1\">\r\n <div class=\"move-user-tab-content-box\">\r\n <tk-user-details-step (validityChange)=\"detailsStepValid = $event\"></tk-user-details-step>\r\n </div>\r\n </ng-container>\r\n </mat-step>\r\n\r\n <mat-step>\r\n <div class=\"step-title\">Step 3: Review</div>\r\n <ng-template matStepLabel>Review</ng-template>\r\n\r\n <ng-container *ngIf=\"selectedIndex === 2\">\r\n <div class=\"move-user-tab-content-box\">\r\n <tk-user-overview-step></tk-user-overview-step>\r\n </div>\r\n </ng-container>\r\n </mat-step>\r\n </mat-stepper>\r\n\r\n <div class=\"wizard-actions\">\r\n <ng-container [ngSwitch]=\"stepper.selectedIndex\">\r\n <ng-container *ngSwitchCase=\"0\">\r\n <button\r\n mat-button\r\n class=\"uc-btn uc-btn-primary\"\r\n type=\"button\"\r\n [disabled]=\"!templateStepValid\"\r\n (click)=\"onStepperNext(stepper)\"\r\n >\r\n Next\r\n </button>\r\n <button mat-button class=\"uc-btn uc-btn-secondary\" type=\"button\" (click)=\"onCancel()\">\r\n Cancel\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"1\">\r\n <button\r\n mat-button\r\n class=\"uc-btn uc-btn-primary\"\r\n type=\"button\"\r\n [disabled]=\"!detailsStepValid\"\r\n (click)=\"onStepperNext(stepper)\"\r\n >\r\n Next\r\n </button>\r\n <button mat-button class=\"uc-btn uc-btn-secondary\" type=\"button\" (click)=\"stepper.previous()\">\r\n Previous\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"2\">\r\n <button\r\n mat-button\r\n class=\"uc-btn uc-btn-primary\"\r\n type=\"button\"\r\n [disabled]=\"isSubmitting\"\r\n (click)=\"onSubmit()\"\r\n >\r\n <span class=\"uc-btn__inline-content\">\r\n <span class=\"uc-btn__spinner\" *ngIf=\"isSubmitting\" aria-hidden=\"true\"></span>\r\n <span>{{ isSubmitting ? 'Creating...' : 'Create' }}</span>\r\n </span>\r\n </button>\r\n <button\r\n mat-button\r\n class=\"uc-btn uc-btn-secondary\"\r\n type=\"button\"\r\n [disabled]=\"isSubmitting\"\r\n (click)=\"stepper.previous()\"\r\n >\r\n Previous\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div class=\"wizard-loading-overlay\" [class.wizard-loading-overlay--visible]=\"isSubmitting\" aria-hidden=\"true\"></div>\r\n</div>", styles: [".move-user-stepper-container{background-color:#f3f3f3;padding:0 0 16px;position:relative;overflow:hidden}.move-user-header{background-color:#1170cf;height:45px;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;color:#fff;font-size:18px;font-weight:500}.move-user-header__close{cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:0}.move-user-header__close i{font-size:25px;font-weight:100}.app-icon{height:20px;width:20px;display:block;cursor:pointer;background-repeat:no-repeat;background-position:center}.user-creation-close-icon{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M13.0606 11.9998L19.2803 5.78001C19.35 5.71038 19.4052 5.6277 19.4429 5.53672C19.4806 5.44573 19.5 5.34822 19.5 5.24974C19.5 5.15126 19.4806 5.05374 19.4429 4.96276C19.4052 4.87177 19.3499 4.7891 19.2803 4.71947C19.2107 4.64983 19.128 4.5946 19.037 4.55691C18.946 4.51923 18.8485 4.49983 18.75 4.49983C18.6515 4.49984 18.554 4.51924 18.463 4.55692C18.3721 4.59461 18.2894 4.64985 18.2198 4.71949L12 10.9392L5.78026 4.71949C5.71077 4.64921 5.62807 4.59335 5.53691 4.55514C5.44576 4.51692 5.34795 4.49711 5.24911 4.49683C5.15027 4.49655 5.05235 4.51581 4.96098 4.55351C4.86961 4.59121 4.78659 4.64659 4.7167 4.71648C4.64681 4.78638 4.59143 4.8694 4.55374 4.96077C4.51605 5.05214 4.49679 5.15006 4.49707 5.2489C4.49736 5.34774 4.51718 5.44555 4.5554 5.5367C4.59361 5.62786 4.64947 5.71055 4.71976 5.78004L10.9395 11.9998L4.71976 18.2195C4.65013 18.2892 4.59489 18.3718 4.5572 18.4628C4.51951 18.5538 4.50011 18.6513 4.50011 18.7498C4.50011 18.8483 4.51951 18.9458 4.5572 19.0368C4.59488 19.1278 4.65012 19.2105 4.71976 19.2801C4.7894 19.3497 4.87207 19.405 4.96305 19.4427C5.05403 19.4803 5.15155 19.4997 5.25003 19.4997C5.34851 19.4997 5.44603 19.4803 5.53701 19.4427C5.628 19.405 5.71067 19.3497 5.78031 19.2801L12.0001 13.0603L18.2198 19.2801C18.3604 19.4207 18.5512 19.4997 18.7501 19.4997C18.949 19.4997 19.1397 19.4207 19.2804 19.2801C19.421 19.1395 19.5 18.9487 19.5 18.7498C19.5 18.5509 19.421 18.3602 19.2804 18.2195L13.0606 11.9998Z%22 fill%3D%22white%22 fill-opacity%3D%220.95%22%2F%3E%0D%3C%2Fsvg%3E%0D\");background-size:20px 20px}#user-creation-stepper{display:flex;flex-direction:column;width:100%}#user-creation-stepper .mat-stepper-horizontal{margin:0 auto;width:100%;background-color:transparent}#user-creation-stepper .mat-horizontal-stepper-header-container{margin:0 auto;width:800px}#user-creation-stepper .mat-step-icon{width:28px;height:28px;border:3px solid hsl(0,0%,50.2%)}#user-creation-stepper .mat-step-icon-selected{background-color:#c6c6c6!important;border-color:#19487d}#user-creation-stepper .mat-step-icon-state-number{background-color:#fff}#user-creation-stepper .mat-step-icon-state-edit,#user-creation-stepper .mat-step-header .mat-step-icon-state-done{background-color:#1170cf;border-color:#1170cf}#user-creation-stepper .mat-step-icon-content{display:none}#user-creation-stepper .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):before,#user-creation-stepper [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):before,#user-creation-stepper .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):after,#user-creation-stepper [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):after{border-top-width:3px!important}#user-creation-stepper .mat-horizontal-stepper-header:before,#user-creation-stepper .mat-horizontal-stepper-header:after,#user-creation-stepper .mat-stepper-horizontal-line{border-top-color:#1170cf!important;border-top-width:3px!important;border-top-style:solid!important}#user-creation-stepper .mat-horizontal-stepper-header[aria-selected=true]~.mat-stepper-horizontal-line,#user-creation-stepper .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:before,#user-creation-stepper .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:after{border-top-width:3px!important;background-color:#7b7b7b!important;border-top-color:#7b7b7b!important}#user-creation-stepper .mat-horizontal-content-container{padding:0!important;margin-top:3rem}#user-creation-stepper .mat-horizontal-stepper-content[aria-expanded=true]{padding-bottom:0}.step-title{font-size:26px;font-weight:500;width:70%;margin:0 auto 1rem;min-height:32px;display:flex;align-items:center}.wizard-actions{display:flex;flex-flow:row-reverse;justify-content:flex-start;align-items:center;margin:16px 16px 0 0;align-self:flex-end;gap:1rem;position:relative;z-index:30}.uc-btn{border-radius:50px!important;padding:8px 16px!important;min-width:80px!important;line-height:normal!important;cursor:pointer}.uc-btn__inline-content{display:inline-flex;align-items:center;gap:8px}.uc-btn__spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;animation:uc-btn-spin .7s linear infinite}@keyframes uc-btn-spin{to{transform:rotate(360deg)}}.uc-btn-primary{background-color:#000!important;color:#fff!important;border:1px solid black!important}.uc-btn-secondary{background-color:#fff!important;color:#000!important;border:1px solid black!important}.move-user-tab-content-box{width:70%;margin:0 auto;background-color:#fff;min-height:350px;border:1px solid #C3C1C1;border-radius:8px;box-sizing:border-box;padding:25px}.wizard-loading-overlay{position:absolute;inset:0;background:rgba(243,243,243,.72);backdrop-filter:blur(1px);opacity:0;pointer-events:none;transition:opacity .18s ease;z-index:20}.wizard-loading-overlay--visible{opacity:1;pointer-events:auto}.wizard-actions .uc-btn-primary.mat-button-disabled{background-color:#bbb;color:#fff;border:1px solid grey;cursor:default!important;opacity:.3}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i4.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i4.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["selectedIndex", "disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }, { kind: "component", type: i5.UserTemplateStepComponent, selector: "tk-user-template-step", inputs: ["customerId"], outputs: ["validityChange"] }, { kind: "component", type: i6.NotificationsComponent, selector: "app-notification" }, { kind: "component", type: i7.UserDetailsStepComponent, selector: "tk-user-details-step", outputs: ["validityChange"] }, { kind: "component", type: i8.UserOverviewStepComponent, selector: "tk-user-overview-step" }, { kind: "component", type: i9.AppLoaderComponent, selector: "app-loader" }], encapsulation: i0.ViewEncapsulation.None });
106
+ UserCreationWizardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserCreationWizardComponent, selector: "tk-user-creation-wizard", inputs: { title: "title", host: "host", token: "token", customerId: "customerId" }, outputs: { cancel: "cancel", submit: "submit" }, viewQueries: [{ propertyName: "templateStep", first: true, predicate: UserTemplateStepComponent, descendants: true }, { propertyName: "detailsStep", first: true, predicate: UserDetailsStepComponent, descendants: true }], ngImport: i0, template: "<app-notification></app-notification>\r\n<tk-loader *ngIf=\"isLoading\"></tk-loader>\r\n<div class=\"move-user-stepper-container\" [attr.aria-busy]=\"isSubmitting\">\r\n <header class=\"move-user-header\">\r\n <div class=\"move-user-header__title\">{{ title }}</div>\r\n <div class=\"move-user-header__close\">\r\n <span class=\"app-icon user-creation-close-icon\" (click)=\"onCancel()\"></span>\r\n </div>\r\n </header>\r\n\r\n <div id=\"user-creation-stepper\">\r\n <mat-stepper [linear]=\"true\" labelPosition=\"bottom\" #stepper\r\n [selectedIndex]=\"selectedIndex\"\r\n (selectionChange)=\"onStepSelectionChange($event)\">\r\n\r\n <mat-step [completed]=\"templateStepValid\">\r\n <div class=\"step-title\">Step 1: User creation with template</div>\r\n <ng-template matStepLabel>User creation</ng-template>\r\n\r\n <ng-container *ngIf=\"selectedIndex === 0\">\r\n <div class=\"move-user-tab-content-box\">\r\n <tk-user-template-step\r\n [customerId]=\"customerId\"\r\n (validityChange)=\"templateStepValid = $event\"\r\n ></tk-user-template-step>\r\n </div>\r\n </ng-container>\r\n </mat-step>\r\n\r\n <mat-step [completed]=\"detailsStepValid\">\r\n <div class=\"step-title\">Step 2 : User details</div>\r\n <ng-template matStepLabel>User details</ng-template>\r\n\r\n <ng-container *ngIf=\"selectedIndex === 1\">\r\n <div class=\"move-user-tab-content-box\">\r\n <tk-user-details-step (validityChange)=\"detailsStepValid = $event\"></tk-user-details-step>\r\n </div>\r\n </ng-container>\r\n </mat-step>\r\n\r\n <mat-step>\r\n <div class=\"step-title\">Step 3: Review</div>\r\n <ng-template matStepLabel>Review</ng-template>\r\n\r\n <ng-container *ngIf=\"selectedIndex === 2\">\r\n <div class=\"move-user-tab-content-box\">\r\n <tk-user-overview-step></tk-user-overview-step>\r\n </div>\r\n </ng-container>\r\n </mat-step>\r\n </mat-stepper>\r\n\r\n <div class=\"wizard-actions\">\r\n <ng-container [ngSwitch]=\"stepper.selectedIndex\">\r\n <ng-container *ngSwitchCase=\"0\">\r\n <button\r\n mat-button\r\n class=\"uc-btn uc-btn-primary\"\r\n type=\"button\"\r\n [disabled]=\"!templateStepValid\"\r\n (click)=\"onStepperNext(stepper)\"\r\n >\r\n Next\r\n </button>\r\n <button mat-button class=\"uc-btn uc-btn-secondary\" type=\"button\" (click)=\"onCancel()\">\r\n Cancel\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"1\">\r\n <button\r\n mat-button\r\n class=\"uc-btn uc-btn-primary\"\r\n type=\"button\"\r\n [disabled]=\"!detailsStepValid\"\r\n (click)=\"onStepperNext(stepper)\"\r\n >\r\n Next\r\n </button>\r\n <button mat-button class=\"uc-btn uc-btn-secondary\" type=\"button\" (click)=\"stepper.previous()\">\r\n Previous\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"2\">\r\n <button\r\n mat-button\r\n class=\"uc-btn uc-btn-primary\"\r\n type=\"button\"\r\n [disabled]=\"isSubmitting\"\r\n (click)=\"onSubmit()\"\r\n >\r\n <span class=\"uc-btn__inline-content\">\r\n <span class=\"uc-btn__spinner\" *ngIf=\"isSubmitting\" aria-hidden=\"true\"></span>\r\n <span>{{ isSubmitting ? 'Creating...' : 'Create' }}</span>\r\n </span>\r\n </button>\r\n <button\r\n mat-button\r\n class=\"uc-btn uc-btn-secondary\"\r\n type=\"button\"\r\n [disabled]=\"isSubmitting\"\r\n (click)=\"stepper.previous()\"\r\n >\r\n Previous\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div class=\"wizard-loading-overlay\" [class.wizard-loading-overlay--visible]=\"isSubmitting\" aria-hidden=\"true\"></div>\r\n</div>", styles: [".move-user-stepper-container{background-color:#f3f3f3;padding:0 0 16px;position:relative;overflow:hidden}.move-user-header{background-color:#1170cf;height:45px;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;color:#fff;font-size:18px;font-weight:500}.move-user-header__close{cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:0}.move-user-header__close i{font-size:25px;font-weight:100}.app-icon{height:20px;width:20px;display:block;cursor:pointer;background-repeat:no-repeat;background-position:center}.user-creation-close-icon{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M13.0606 11.9998L19.2803 5.78001C19.35 5.71038 19.4052 5.6277 19.4429 5.53672C19.4806 5.44573 19.5 5.34822 19.5 5.24974C19.5 5.15126 19.4806 5.05374 19.4429 4.96276C19.4052 4.87177 19.3499 4.7891 19.2803 4.71947C19.2107 4.64983 19.128 4.5946 19.037 4.55691C18.946 4.51923 18.8485 4.49983 18.75 4.49983C18.6515 4.49984 18.554 4.51924 18.463 4.55692C18.3721 4.59461 18.2894 4.64985 18.2198 4.71949L12 10.9392L5.78026 4.71949C5.71077 4.64921 5.62807 4.59335 5.53691 4.55514C5.44576 4.51692 5.34795 4.49711 5.24911 4.49683C5.15027 4.49655 5.05235 4.51581 4.96098 4.55351C4.86961 4.59121 4.78659 4.64659 4.7167 4.71648C4.64681 4.78638 4.59143 4.8694 4.55374 4.96077C4.51605 5.05214 4.49679 5.15006 4.49707 5.2489C4.49736 5.34774 4.51718 5.44555 4.5554 5.5367C4.59361 5.62786 4.64947 5.71055 4.71976 5.78004L10.9395 11.9998L4.71976 18.2195C4.65013 18.2892 4.59489 18.3718 4.5572 18.4628C4.51951 18.5538 4.50011 18.6513 4.50011 18.7498C4.50011 18.8483 4.51951 18.9458 4.5572 19.0368C4.59488 19.1278 4.65012 19.2105 4.71976 19.2801C4.7894 19.3497 4.87207 19.405 4.96305 19.4427C5.05403 19.4803 5.15155 19.4997 5.25003 19.4997C5.34851 19.4997 5.44603 19.4803 5.53701 19.4427C5.628 19.405 5.71067 19.3497 5.78031 19.2801L12.0001 13.0603L18.2198 19.2801C18.3604 19.4207 18.5512 19.4997 18.7501 19.4997C18.949 19.4997 19.1397 19.4207 19.2804 19.2801C19.421 19.1395 19.5 18.9487 19.5 18.7498C19.5 18.5509 19.421 18.3602 19.2804 18.2195L13.0606 11.9998Z%22 fill%3D%22white%22 fill-opacity%3D%220.95%22%2F%3E%0D%3C%2Fsvg%3E%0D\");background-size:20px 20px}#user-creation-stepper{display:flex;flex-direction:column;width:100%}#user-creation-stepper .mat-stepper-horizontal{margin:0 auto;width:100%;background-color:transparent}#user-creation-stepper .mat-horizontal-stepper-header-container{margin:0 auto;width:800px}#user-creation-stepper .mat-step-icon{width:28px;height:28px;border:3px solid hsl(0,0%,50.2%)}#user-creation-stepper .mat-step-icon-selected{background-color:#c6c6c6!important;border-color:#19487d}#user-creation-stepper .mat-step-icon-state-number{background-color:#fff}#user-creation-stepper .mat-step-icon-state-edit,#user-creation-stepper .mat-step-header .mat-step-icon-state-done{background-color:#1170cf;border-color:#1170cf}#user-creation-stepper .mat-step-icon-content{display:none}#user-creation-stepper .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):before,#user-creation-stepper [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):before,#user-creation-stepper .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):after,#user-creation-stepper [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):after{border-top-width:3px!important}#user-creation-stepper .mat-horizontal-stepper-header:before,#user-creation-stepper .mat-horizontal-stepper-header:after,#user-creation-stepper .mat-stepper-horizontal-line{border-top-color:#1170cf!important;border-top-width:3px!important;border-top-style:solid!important}#user-creation-stepper .mat-horizontal-stepper-header[aria-selected=true]~.mat-stepper-horizontal-line,#user-creation-stepper .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:before,#user-creation-stepper .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:after{border-top-width:3px!important;background-color:#7b7b7b!important;border-top-color:#7b7b7b!important}#user-creation-stepper .mat-horizontal-content-container{padding:0!important;margin-top:3rem}#user-creation-stepper .mat-horizontal-stepper-content[aria-expanded=true]{padding-bottom:0}.step-title{font-size:26px;font-weight:500;width:70%;margin:0 auto 1rem;min-height:32px;display:flex;align-items:center}.wizard-actions{display:flex;flex-flow:row-reverse;justify-content:flex-start;align-items:center;margin:16px 16px 0 0;align-self:flex-end;gap:1rem;position:relative;z-index:30}.uc-btn{border-radius:50px!important;padding:8px 16px!important;min-width:80px!important;line-height:normal!important;cursor:pointer}.uc-btn__inline-content{display:inline-flex;align-items:center;gap:8px}.uc-btn__spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;animation:uc-btn-spin .7s linear infinite}@keyframes uc-btn-spin{to{transform:rotate(360deg)}}.uc-btn-primary{background-color:#000!important;color:#fff!important;border:1px solid black!important}.uc-btn-secondary{background-color:#fff!important;color:#000!important;border:1px solid black!important}.move-user-tab-content-box{width:70%;margin:0 auto;background-color:#fff;min-height:350px;border:1px solid #C3C1C1;border-radius:8px;box-sizing:border-box;padding:25px}.wizard-loading-overlay{position:absolute;inset:0;background:rgba(243,243,243,.72);backdrop-filter:blur(1px);opacity:0;pointer-events:none;transition:opacity .18s ease;z-index:20}.wizard-loading-overlay--visible{opacity:1;pointer-events:auto}.wizard-actions .uc-btn-primary.mat-button-disabled{background-color:#bbb;color:#fff;border:1px solid grey;cursor:default!important;opacity:.3}\n"], dependencies: [{ kind: "component", type: i2.TkLoaderComponent, selector: "tk-loader", inputs: ["diameter", "strokeWidth", "backdrop", "color"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i5.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i5.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["selectedIndex", "disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }, { kind: "component", type: i6.UserTemplateStepComponent, selector: "tk-user-template-step", inputs: ["customerId"], outputs: ["validityChange"] }, { kind: "component", type: i7.NotificationsComponent, selector: "app-notification" }, { kind: "component", type: i8.UserDetailsStepComponent, selector: "tk-user-details-step", outputs: ["validityChange"] }, { kind: "component", type: i9.UserOverviewStepComponent, selector: "tk-user-overview-step" }], encapsulation: i0.ViewEncapsulation.None });
107
107
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCreationWizardComponent, decorators: [{
108
108
  type: Component,
109
- args: [{ selector: 'tk-user-creation-wizard', encapsulation: ViewEncapsulation.None, template: "<app-notification></app-notification>\r\n<app-loader *ngIf=\"isLoading\"></app-loader>\r\n<div class=\"move-user-stepper-container\" [attr.aria-busy]=\"isSubmitting\">\r\n <header class=\"move-user-header\">\r\n <div class=\"move-user-header__title\">{{ title }}</div>\r\n <div class=\"move-user-header__close\">\r\n <span class=\"app-icon user-creation-close-icon\" (click)=\"onCancel()\"></span>\r\n </div>\r\n </header>\r\n\r\n <div id=\"user-creation-stepper\">\r\n <mat-stepper [linear]=\"true\" labelPosition=\"bottom\" #stepper\r\n [selectedIndex]=\"selectedIndex\"\r\n (selectionChange)=\"onStepSelectionChange($event)\">\r\n\r\n <mat-step [completed]=\"templateStepValid\">\r\n <div class=\"step-title\">Step 1: User creation with template</div>\r\n <ng-template matStepLabel>User creation</ng-template>\r\n\r\n <ng-container *ngIf=\"selectedIndex === 0\">\r\n <div class=\"move-user-tab-content-box\">\r\n <tk-user-template-step\r\n [customerId]=\"customerId\"\r\n (validityChange)=\"templateStepValid = $event\"\r\n ></tk-user-template-step>\r\n </div>\r\n </ng-container>\r\n </mat-step>\r\n\r\n <mat-step [completed]=\"detailsStepValid\">\r\n <div class=\"step-title\">Step 2 : User details</div>\r\n <ng-template matStepLabel>User details</ng-template>\r\n\r\n <ng-container *ngIf=\"selectedIndex === 1\">\r\n <div class=\"move-user-tab-content-box\">\r\n <tk-user-details-step (validityChange)=\"detailsStepValid = $event\"></tk-user-details-step>\r\n </div>\r\n </ng-container>\r\n </mat-step>\r\n\r\n <mat-step>\r\n <div class=\"step-title\">Step 3: Review</div>\r\n <ng-template matStepLabel>Review</ng-template>\r\n\r\n <ng-container *ngIf=\"selectedIndex === 2\">\r\n <div class=\"move-user-tab-content-box\">\r\n <tk-user-overview-step></tk-user-overview-step>\r\n </div>\r\n </ng-container>\r\n </mat-step>\r\n </mat-stepper>\r\n\r\n <div class=\"wizard-actions\">\r\n <ng-container [ngSwitch]=\"stepper.selectedIndex\">\r\n <ng-container *ngSwitchCase=\"0\">\r\n <button\r\n mat-button\r\n class=\"uc-btn uc-btn-primary\"\r\n type=\"button\"\r\n [disabled]=\"!templateStepValid\"\r\n (click)=\"onStepperNext(stepper)\"\r\n >\r\n Next\r\n </button>\r\n <button mat-button class=\"uc-btn uc-btn-secondary\" type=\"button\" (click)=\"onCancel()\">\r\n Cancel\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"1\">\r\n <button\r\n mat-button\r\n class=\"uc-btn uc-btn-primary\"\r\n type=\"button\"\r\n [disabled]=\"!detailsStepValid\"\r\n (click)=\"onStepperNext(stepper)\"\r\n >\r\n Next\r\n </button>\r\n <button mat-button class=\"uc-btn uc-btn-secondary\" type=\"button\" (click)=\"stepper.previous()\">\r\n Previous\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"2\">\r\n <button\r\n mat-button\r\n class=\"uc-btn uc-btn-primary\"\r\n type=\"button\"\r\n [disabled]=\"isSubmitting\"\r\n (click)=\"onSubmit()\"\r\n >\r\n <span class=\"uc-btn__inline-content\">\r\n <span class=\"uc-btn__spinner\" *ngIf=\"isSubmitting\" aria-hidden=\"true\"></span>\r\n <span>{{ isSubmitting ? 'Creating...' : 'Create' }}</span>\r\n </span>\r\n </button>\r\n <button\r\n mat-button\r\n class=\"uc-btn uc-btn-secondary\"\r\n type=\"button\"\r\n [disabled]=\"isSubmitting\"\r\n (click)=\"stepper.previous()\"\r\n >\r\n Previous\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div class=\"wizard-loading-overlay\" [class.wizard-loading-overlay--visible]=\"isSubmitting\" aria-hidden=\"true\"></div>\r\n</div>", styles: [".move-user-stepper-container{background-color:#f3f3f3;padding:0 0 16px;position:relative;overflow:hidden}.move-user-header{background-color:#1170cf;height:45px;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;color:#fff;font-size:18px;font-weight:500}.move-user-header__close{cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:0}.move-user-header__close i{font-size:25px;font-weight:100}.app-icon{height:20px;width:20px;display:block;cursor:pointer;background-repeat:no-repeat;background-position:center}.user-creation-close-icon{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M13.0606 11.9998L19.2803 5.78001C19.35 5.71038 19.4052 5.6277 19.4429 5.53672C19.4806 5.44573 19.5 5.34822 19.5 5.24974C19.5 5.15126 19.4806 5.05374 19.4429 4.96276C19.4052 4.87177 19.3499 4.7891 19.2803 4.71947C19.2107 4.64983 19.128 4.5946 19.037 4.55691C18.946 4.51923 18.8485 4.49983 18.75 4.49983C18.6515 4.49984 18.554 4.51924 18.463 4.55692C18.3721 4.59461 18.2894 4.64985 18.2198 4.71949L12 10.9392L5.78026 4.71949C5.71077 4.64921 5.62807 4.59335 5.53691 4.55514C5.44576 4.51692 5.34795 4.49711 5.24911 4.49683C5.15027 4.49655 5.05235 4.51581 4.96098 4.55351C4.86961 4.59121 4.78659 4.64659 4.7167 4.71648C4.64681 4.78638 4.59143 4.8694 4.55374 4.96077C4.51605 5.05214 4.49679 5.15006 4.49707 5.2489C4.49736 5.34774 4.51718 5.44555 4.5554 5.5367C4.59361 5.62786 4.64947 5.71055 4.71976 5.78004L10.9395 11.9998L4.71976 18.2195C4.65013 18.2892 4.59489 18.3718 4.5572 18.4628C4.51951 18.5538 4.50011 18.6513 4.50011 18.7498C4.50011 18.8483 4.51951 18.9458 4.5572 19.0368C4.59488 19.1278 4.65012 19.2105 4.71976 19.2801C4.7894 19.3497 4.87207 19.405 4.96305 19.4427C5.05403 19.4803 5.15155 19.4997 5.25003 19.4997C5.34851 19.4997 5.44603 19.4803 5.53701 19.4427C5.628 19.405 5.71067 19.3497 5.78031 19.2801L12.0001 13.0603L18.2198 19.2801C18.3604 19.4207 18.5512 19.4997 18.7501 19.4997C18.949 19.4997 19.1397 19.4207 19.2804 19.2801C19.421 19.1395 19.5 18.9487 19.5 18.7498C19.5 18.5509 19.421 18.3602 19.2804 18.2195L13.0606 11.9998Z%22 fill%3D%22white%22 fill-opacity%3D%220.95%22%2F%3E%0D%3C%2Fsvg%3E%0D\");background-size:20px 20px}#user-creation-stepper{display:flex;flex-direction:column;width:100%}#user-creation-stepper .mat-stepper-horizontal{margin:0 auto;width:100%;background-color:transparent}#user-creation-stepper .mat-horizontal-stepper-header-container{margin:0 auto;width:800px}#user-creation-stepper .mat-step-icon{width:28px;height:28px;border:3px solid hsl(0,0%,50.2%)}#user-creation-stepper .mat-step-icon-selected{background-color:#c6c6c6!important;border-color:#19487d}#user-creation-stepper .mat-step-icon-state-number{background-color:#fff}#user-creation-stepper .mat-step-icon-state-edit,#user-creation-stepper .mat-step-header .mat-step-icon-state-done{background-color:#1170cf;border-color:#1170cf}#user-creation-stepper .mat-step-icon-content{display:none}#user-creation-stepper .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):before,#user-creation-stepper [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):before,#user-creation-stepper .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):after,#user-creation-stepper [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):after{border-top-width:3px!important}#user-creation-stepper .mat-horizontal-stepper-header:before,#user-creation-stepper .mat-horizontal-stepper-header:after,#user-creation-stepper .mat-stepper-horizontal-line{border-top-color:#1170cf!important;border-top-width:3px!important;border-top-style:solid!important}#user-creation-stepper .mat-horizontal-stepper-header[aria-selected=true]~.mat-stepper-horizontal-line,#user-creation-stepper .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:before,#user-creation-stepper .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:after{border-top-width:3px!important;background-color:#7b7b7b!important;border-top-color:#7b7b7b!important}#user-creation-stepper .mat-horizontal-content-container{padding:0!important;margin-top:3rem}#user-creation-stepper .mat-horizontal-stepper-content[aria-expanded=true]{padding-bottom:0}.step-title{font-size:26px;font-weight:500;width:70%;margin:0 auto 1rem;min-height:32px;display:flex;align-items:center}.wizard-actions{display:flex;flex-flow:row-reverse;justify-content:flex-start;align-items:center;margin:16px 16px 0 0;align-self:flex-end;gap:1rem;position:relative;z-index:30}.uc-btn{border-radius:50px!important;padding:8px 16px!important;min-width:80px!important;line-height:normal!important;cursor:pointer}.uc-btn__inline-content{display:inline-flex;align-items:center;gap:8px}.uc-btn__spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;animation:uc-btn-spin .7s linear infinite}@keyframes uc-btn-spin{to{transform:rotate(360deg)}}.uc-btn-primary{background-color:#000!important;color:#fff!important;border:1px solid black!important}.uc-btn-secondary{background-color:#fff!important;color:#000!important;border:1px solid black!important}.move-user-tab-content-box{width:70%;margin:0 auto;background-color:#fff;min-height:350px;border:1px solid #C3C1C1;border-radius:8px;box-sizing:border-box;padding:25px}.wizard-loading-overlay{position:absolute;inset:0;background:rgba(243,243,243,.72);backdrop-filter:blur(1px);opacity:0;pointer-events:none;transition:opacity .18s ease;z-index:20}.wizard-loading-overlay--visible{opacity:1;pointer-events:auto}.wizard-actions .uc-btn-primary.mat-button-disabled{background-color:#bbb;color:#fff;border:1px solid grey;cursor:default!important;opacity:.3}\n"] }]
109
+ args: [{ selector: 'tk-user-creation-wizard', encapsulation: ViewEncapsulation.None, template: "<app-notification></app-notification>\r\n<tk-loader *ngIf=\"isLoading\"></tk-loader>\r\n<div class=\"move-user-stepper-container\" [attr.aria-busy]=\"isSubmitting\">\r\n <header class=\"move-user-header\">\r\n <div class=\"move-user-header__title\">{{ title }}</div>\r\n <div class=\"move-user-header__close\">\r\n <span class=\"app-icon user-creation-close-icon\" (click)=\"onCancel()\"></span>\r\n </div>\r\n </header>\r\n\r\n <div id=\"user-creation-stepper\">\r\n <mat-stepper [linear]=\"true\" labelPosition=\"bottom\" #stepper\r\n [selectedIndex]=\"selectedIndex\"\r\n (selectionChange)=\"onStepSelectionChange($event)\">\r\n\r\n <mat-step [completed]=\"templateStepValid\">\r\n <div class=\"step-title\">Step 1: User creation with template</div>\r\n <ng-template matStepLabel>User creation</ng-template>\r\n\r\n <ng-container *ngIf=\"selectedIndex === 0\">\r\n <div class=\"move-user-tab-content-box\">\r\n <tk-user-template-step\r\n [customerId]=\"customerId\"\r\n (validityChange)=\"templateStepValid = $event\"\r\n ></tk-user-template-step>\r\n </div>\r\n </ng-container>\r\n </mat-step>\r\n\r\n <mat-step [completed]=\"detailsStepValid\">\r\n <div class=\"step-title\">Step 2 : User details</div>\r\n <ng-template matStepLabel>User details</ng-template>\r\n\r\n <ng-container *ngIf=\"selectedIndex === 1\">\r\n <div class=\"move-user-tab-content-box\">\r\n <tk-user-details-step (validityChange)=\"detailsStepValid = $event\"></tk-user-details-step>\r\n </div>\r\n </ng-container>\r\n </mat-step>\r\n\r\n <mat-step>\r\n <div class=\"step-title\">Step 3: Review</div>\r\n <ng-template matStepLabel>Review</ng-template>\r\n\r\n <ng-container *ngIf=\"selectedIndex === 2\">\r\n <div class=\"move-user-tab-content-box\">\r\n <tk-user-overview-step></tk-user-overview-step>\r\n </div>\r\n </ng-container>\r\n </mat-step>\r\n </mat-stepper>\r\n\r\n <div class=\"wizard-actions\">\r\n <ng-container [ngSwitch]=\"stepper.selectedIndex\">\r\n <ng-container *ngSwitchCase=\"0\">\r\n <button\r\n mat-button\r\n class=\"uc-btn uc-btn-primary\"\r\n type=\"button\"\r\n [disabled]=\"!templateStepValid\"\r\n (click)=\"onStepperNext(stepper)\"\r\n >\r\n Next\r\n </button>\r\n <button mat-button class=\"uc-btn uc-btn-secondary\" type=\"button\" (click)=\"onCancel()\">\r\n Cancel\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"1\">\r\n <button\r\n mat-button\r\n class=\"uc-btn uc-btn-primary\"\r\n type=\"button\"\r\n [disabled]=\"!detailsStepValid\"\r\n (click)=\"onStepperNext(stepper)\"\r\n >\r\n Next\r\n </button>\r\n <button mat-button class=\"uc-btn uc-btn-secondary\" type=\"button\" (click)=\"stepper.previous()\">\r\n Previous\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"2\">\r\n <button\r\n mat-button\r\n class=\"uc-btn uc-btn-primary\"\r\n type=\"button\"\r\n [disabled]=\"isSubmitting\"\r\n (click)=\"onSubmit()\"\r\n >\r\n <span class=\"uc-btn__inline-content\">\r\n <span class=\"uc-btn__spinner\" *ngIf=\"isSubmitting\" aria-hidden=\"true\"></span>\r\n <span>{{ isSubmitting ? 'Creating...' : 'Create' }}</span>\r\n </span>\r\n </button>\r\n <button\r\n mat-button\r\n class=\"uc-btn uc-btn-secondary\"\r\n type=\"button\"\r\n [disabled]=\"isSubmitting\"\r\n (click)=\"stepper.previous()\"\r\n >\r\n Previous\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div class=\"wizard-loading-overlay\" [class.wizard-loading-overlay--visible]=\"isSubmitting\" aria-hidden=\"true\"></div>\r\n</div>", styles: [".move-user-stepper-container{background-color:#f3f3f3;padding:0 0 16px;position:relative;overflow:hidden}.move-user-header{background-color:#1170cf;height:45px;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;color:#fff;font-size:18px;font-weight:500}.move-user-header__close{cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:0}.move-user-header__close i{font-size:25px;font-weight:100}.app-icon{height:20px;width:20px;display:block;cursor:pointer;background-repeat:no-repeat;background-position:center}.user-creation-close-icon{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M13.0606 11.9998L19.2803 5.78001C19.35 5.71038 19.4052 5.6277 19.4429 5.53672C19.4806 5.44573 19.5 5.34822 19.5 5.24974C19.5 5.15126 19.4806 5.05374 19.4429 4.96276C19.4052 4.87177 19.3499 4.7891 19.2803 4.71947C19.2107 4.64983 19.128 4.5946 19.037 4.55691C18.946 4.51923 18.8485 4.49983 18.75 4.49983C18.6515 4.49984 18.554 4.51924 18.463 4.55692C18.3721 4.59461 18.2894 4.64985 18.2198 4.71949L12 10.9392L5.78026 4.71949C5.71077 4.64921 5.62807 4.59335 5.53691 4.55514C5.44576 4.51692 5.34795 4.49711 5.24911 4.49683C5.15027 4.49655 5.05235 4.51581 4.96098 4.55351C4.86961 4.59121 4.78659 4.64659 4.7167 4.71648C4.64681 4.78638 4.59143 4.8694 4.55374 4.96077C4.51605 5.05214 4.49679 5.15006 4.49707 5.2489C4.49736 5.34774 4.51718 5.44555 4.5554 5.5367C4.59361 5.62786 4.64947 5.71055 4.71976 5.78004L10.9395 11.9998L4.71976 18.2195C4.65013 18.2892 4.59489 18.3718 4.5572 18.4628C4.51951 18.5538 4.50011 18.6513 4.50011 18.7498C4.50011 18.8483 4.51951 18.9458 4.5572 19.0368C4.59488 19.1278 4.65012 19.2105 4.71976 19.2801C4.7894 19.3497 4.87207 19.405 4.96305 19.4427C5.05403 19.4803 5.15155 19.4997 5.25003 19.4997C5.34851 19.4997 5.44603 19.4803 5.53701 19.4427C5.628 19.405 5.71067 19.3497 5.78031 19.2801L12.0001 13.0603L18.2198 19.2801C18.3604 19.4207 18.5512 19.4997 18.7501 19.4997C18.949 19.4997 19.1397 19.4207 19.2804 19.2801C19.421 19.1395 19.5 18.9487 19.5 18.7498C19.5 18.5509 19.421 18.3602 19.2804 18.2195L13.0606 11.9998Z%22 fill%3D%22white%22 fill-opacity%3D%220.95%22%2F%3E%0D%3C%2Fsvg%3E%0D\");background-size:20px 20px}#user-creation-stepper{display:flex;flex-direction:column;width:100%}#user-creation-stepper .mat-stepper-horizontal{margin:0 auto;width:100%;background-color:transparent}#user-creation-stepper .mat-horizontal-stepper-header-container{margin:0 auto;width:800px}#user-creation-stepper .mat-step-icon{width:28px;height:28px;border:3px solid hsl(0,0%,50.2%)}#user-creation-stepper .mat-step-icon-selected{background-color:#c6c6c6!important;border-color:#19487d}#user-creation-stepper .mat-step-icon-state-number{background-color:#fff}#user-creation-stepper .mat-step-icon-state-edit,#user-creation-stepper .mat-step-header .mat-step-icon-state-done{background-color:#1170cf;border-color:#1170cf}#user-creation-stepper .mat-step-icon-content{display:none}#user-creation-stepper .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):before,#user-creation-stepper [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):before,#user-creation-stepper .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):after,#user-creation-stepper [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):after{border-top-width:3px!important}#user-creation-stepper .mat-horizontal-stepper-header:before,#user-creation-stepper .mat-horizontal-stepper-header:after,#user-creation-stepper .mat-stepper-horizontal-line{border-top-color:#1170cf!important;border-top-width:3px!important;border-top-style:solid!important}#user-creation-stepper .mat-horizontal-stepper-header[aria-selected=true]~.mat-stepper-horizontal-line,#user-creation-stepper .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:before,#user-creation-stepper .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:after{border-top-width:3px!important;background-color:#7b7b7b!important;border-top-color:#7b7b7b!important}#user-creation-stepper .mat-horizontal-content-container{padding:0!important;margin-top:3rem}#user-creation-stepper .mat-horizontal-stepper-content[aria-expanded=true]{padding-bottom:0}.step-title{font-size:26px;font-weight:500;width:70%;margin:0 auto 1rem;min-height:32px;display:flex;align-items:center}.wizard-actions{display:flex;flex-flow:row-reverse;justify-content:flex-start;align-items:center;margin:16px 16px 0 0;align-self:flex-end;gap:1rem;position:relative;z-index:30}.uc-btn{border-radius:50px!important;padding:8px 16px!important;min-width:80px!important;line-height:normal!important;cursor:pointer}.uc-btn__inline-content{display:inline-flex;align-items:center;gap:8px}.uc-btn__spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;animation:uc-btn-spin .7s linear infinite}@keyframes uc-btn-spin{to{transform:rotate(360deg)}}.uc-btn-primary{background-color:#000!important;color:#fff!important;border:1px solid black!important}.uc-btn-secondary{background-color:#fff!important;color:#000!important;border:1px solid black!important}.move-user-tab-content-box{width:70%;margin:0 auto;background-color:#fff;min-height:350px;border:1px solid #C3C1C1;border-radius:8px;box-sizing:border-box;padding:25px}.wizard-loading-overlay{position:absolute;inset:0;background:rgba(243,243,243,.72);backdrop-filter:blur(1px);opacity:0;pointer-events:none;transition:opacity .18s ease;z-index:20}.wizard-loading-overlay--visible{opacity:1;pointer-events:auto}.wizard-actions .uc-btn-primary.mat-button-disabled{background-color:#bbb;color:#fff;border:1px solid grey;cursor:default!important;opacity:.3}\n"] }]
110
110
  }], ctorParameters: function () { return [{ type: i1.NotificationService }]; }, propDecorators: { title: [{
111
111
  type: Input
112
112
  }], host: [{
@@ -126,4 +126,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
126
126
  type: ViewChild,
127
127
  args: [UserDetailsStepComponent]
128
128
  }] } });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1jcmVhdGlvbi13aXphcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXItY3JlYXRpb24vc3JjL3dpZGdldHMvdXNlci1jcmVhdGlvbi13aXphcmQvdXNlci1jcmVhdGlvbi13aXphcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXItY3JlYXRpb24vc3JjL3dpZGdldHMvdXNlci1jcmVhdGlvbi13aXphcmQvdXNlci1jcmVhdGlvbi13aXphcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdoSSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFMUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDekcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7O0FBRTNFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLDJCQUEyQixDQUFDO0FBUXBFLE1BQU0sT0FBTywyQkFBMkI7SUF1QnRDLFlBQW9CLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBdEIzQyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLDhCQUF5QixHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBRXRFLFVBQUssR0FBRyxhQUFhLENBQUM7UUFNckIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDbEMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDNUMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDYixrQkFBYSxHQUFrQixJQUFJLENBQUM7UUFDNUMsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFDbEIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzFCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUtsQixjQUFTLEdBQUcsS0FBSyxDQUFDO0lBRXVDLENBQUM7SUFFakUsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELHFCQUFxQixDQUFDLEtBQTRCO1FBQ2hELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUV6QyxJQUFJLEtBQUssQ0FBQyxhQUFhLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsS0FBSyxDQUFDLEVBQUU7WUFDcEUsSUFBSSxDQUFDLHlCQUF5QixDQUFDLHlCQUF5QixFQUFFLENBQUM7WUFDM0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsT0FBbUI7UUFDL0IsSUFBSSxPQUFPLENBQUMsYUFBYSxLQUFLLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsRUFBRTtnQkFDckMsSUFBSSxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsQ0FBQztnQkFDckMsT0FBTzthQUNSO1NBQ0Y7UUFFRCxJQUFJLE9BQU8sQ0FBQyxhQUFhLEtBQUssQ0FBQyxFQUFFO1lBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxFQUFFO2dCQUNwQyxJQUFJLENBQUMsV0FBVyxFQUFFLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3JDLE9BQU87YUFDUjtZQUNELElBQUksQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLENBQUM7U0FDbkM7UUFFRCxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFFekIsMkRBQTJEO1FBQzNELGlEQUFpRDtRQUNqRCwrQkFBK0I7UUFDL0IsK0JBQStCO1FBQy9CLG9FQUFvRTtRQUNwRSx3QkFBd0I7UUFDeEIsZUFBZTtRQUNmLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxXQUFXLEVBQUU7YUFDekMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDakIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1lBQy9ELFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO2dCQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNYLENBQUMsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQzFCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDN0UsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO2dCQUMvRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3BCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLElBQUksOERBQThELENBQUMsQ0FBQzthQUN6SDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7eUhBMUdVLDJCQUEyQjs2R0FBM0IsMkJBQTJCLGtQQWtCM0IseUJBQXlCLDhFQUN6Qix3QkFBd0IsZ0RDcENyQyx1c0lBZ0hNOzRGRC9GTywyQkFBMkI7a0JBTnZDLFNBQVM7K0JBQ0UseUJBQXlCLGlCQUdwQixpQkFBaUIsQ0FBQyxJQUFJOzBHQU01QixLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBTytCLFlBQVk7c0JBQWpELFNBQVM7dUJBQUMseUJBQXlCO2dCQUNDLFdBQVc7c0JBQS9DLFNBQVM7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3RlcHBlclNlbGVjdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3N0ZXBwZXInO1xyXG5pbXBvcnQgeyBNYXRTdGVwcGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc3RlcHBlcic7XHJcbmltcG9ydCB7IEFQSVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvYXBpL2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9ub3RpZmljYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFVzZXJEZXRhaWxzU3RlcENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy91c2VyLWRldGFpbHMtc3RlcC91c2VyLWRldGFpbHMtc3RlcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVc2VyVGVtcGxhdGVTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3VzZXItdGVtcGxhdGUtc3RlcC91c2VyLXRlbXBsYXRlLXN0ZXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVXNlckNyZWF0aW9uV2l6YXJkU2VydmljZSB9IGZyb20gJy4vdXNlci1jcmVhdGlvbi13aXphcmQuc2VydmljZSc7XHJcblxyXG5leHBvcnQgY29uc3QgVVNFUl9DUkVBVEVEX1NVQ0NFU1NGTExZID0gJ1VzZXIgY3JlYXRlZCBzdWNjZXNzZnVsbHknO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0ay11c2VyLWNyZWF0aW9uLXdpemFyZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItY3JlYXRpb24td2l6YXJkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91c2VyLWNyZWF0aW9uLXdpemFyZC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJDcmVhdGlvbldpemFyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHJlYWRvbmx5IGFwaVNlcnZpY2UgPSBpbmplY3QoQVBJU2VydmljZSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSB1c2VyQ3JlYXRpb25XaXphcmRTZXJ2aWNlID0gaW5qZWN0KFVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2UpO1xyXG5cclxuICBASW5wdXQoKSB0aXRsZSA9ICdDcmVhdGUgVXNlcic7XHJcbiAgXHJcbiAgQElucHV0KCkgaG9zdCE6IHN0cmluZztcclxuICBASW5wdXQoKSB0b2tlbiE6IHN0cmluZztcclxuICBASW5wdXQoKSBjdXN0b21lcklkITogbnVtYmVyO1xyXG5cclxuICBAT3V0cHV0KCkgY2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBzdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgaXNTdWJtaXR0aW5nID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBzdWJtaXRUaW1lcklkOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBzZWxlY3RlZEluZGV4ID0gMDtcclxuICB0ZW1wbGF0ZVN0ZXBWYWxpZCA9IGZhbHNlO1xyXG4gIGRldGFpbHNTdGVwVmFsaWQgPSBmYWxzZTtcclxuXHJcbiAgQFZpZXdDaGlsZChVc2VyVGVtcGxhdGVTdGVwQ29tcG9uZW50KSB0ZW1wbGF0ZVN0ZXA/OiBVc2VyVGVtcGxhdGVTdGVwQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoVXNlckRldGFpbHNTdGVwQ29tcG9uZW50KSBkZXRhaWxzU3RlcD86IFVzZXJEZXRhaWxzU3RlcENvbXBvbmVudDtcclxuXHJcbiAgcHVibGljIGlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYXBpU2VydmljZS50b2tlbiA9IHRoaXMudG9rZW47XHJcbiAgICB0aGlzLmFwaVNlcnZpY2UuYXBpVXJsID0gdGhpcy5ob3N0O1xyXG4gIH1cclxuXHJcbiAgb25DYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNhbmNlbC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBvblN0ZXBTZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IFN0ZXBwZXJTZWxlY3Rpb25FdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gZXZlbnQuc2VsZWN0ZWRJbmRleDtcclxuXHJcbiAgICBpZiAoZXZlbnQuc2VsZWN0ZWRJbmRleCA9PT0gMSAmJiBldmVudC5wcmV2aW91c2x5U2VsZWN0ZWRJbmRleCA9PT0gMCkge1xyXG4gICAgICB0aGlzLnVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2UucmVzZXRVc2VyRGV0YWlsc1N0ZXBTdGF0ZSgpO1xyXG4gICAgICB0aGlzLmRldGFpbHNTdGVwVmFsaWQgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU3RlcHBlck5leHQoc3RlcHBlcjogTWF0U3RlcHBlcik6IHZvaWQge1xyXG4gICAgaWYgKHN0ZXBwZXIuc2VsZWN0ZWRJbmRleCA9PT0gMCkge1xyXG4gICAgICBpZiAoIXRoaXMudGVtcGxhdGVTdGVwPy5pc1N0ZXBWYWxpZCgpKSB7XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZVN0ZXA/Lm1hcmtTdGVwVG91Y2hlZCgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChzdGVwcGVyLnNlbGVjdGVkSW5kZXggPT09IDEpIHtcclxuICAgICAgaWYgKCF0aGlzLmRldGFpbHNTdGVwPy5pc1N0ZXBWYWxpZCgpKSB7XHJcbiAgICAgICAgdGhpcy5kZXRhaWxzU3RlcD8ubWFya0FsbEFzVG91Y2hlZCgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmRldGFpbHNTdGVwPy5zeW5jVG9TZXJ2aWNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RlcHBlci5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBvblN1Ym1pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlzU3VibWl0dGluZykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc1N1Ym1pdHRpbmcgPSB0cnVlO1xyXG5cclxuICAgIC8vIGNvbnN0IGRlbGF5TXMgPSAzMDAwICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMSk7XHJcbiAgICAvLyB0aGlzLnN1Ym1pdFRpbWVySWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAvLyAgIHRoaXMuaXNTdWJtaXR0aW5nID0gZmFsc2U7XHJcbiAgICAvLyAgIHRoaXMuc3VibWl0VGltZXJJZCA9IG51bGw7XHJcbiAgICAvLyAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKCdVc2VyIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5IScpO1xyXG4gICAgLy8gICB0aGlzLnN1Ym1pdC5lbWl0KCk7XHJcbiAgICAvLyB9LCBkZWxheU1zKTtcclxuICAgIHRoaXMuX3NhdmVDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnN1Ym1pdFRpbWVySWQpIHtcclxuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnN1Ym1pdFRpbWVySWQpO1xyXG4gICAgICB0aGlzLnN1Ym1pdFRpbWVySWQgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2F2ZUNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2Uuc2F2ZU5ld1VzZXIoKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcygnVXNlciBjcmVhdGVkIHN1Y2Nlc3NmdWxseSEnKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmlzU3VibWl0dGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zdWJtaXQuZW1pdCgpO1xyXG4gICAgICAgIH0sIDMwMDApO1xyXG4gICAgICB9LCAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1N1Ym1pdHRpbmcgPSBmYWxzZTtcclxuICAgICAgICBpZiAodHlwZW9mIGVycm9yID09PSAnc3RyaW5nJyAmJiBlcnJvci5pbmRleE9mKFVTRVJfQ1JFQVRFRF9TVUNDRVNTRkxMWSkgPiAtMSkge1xyXG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoJ1VzZXIgY3JlYXRlZCBzdWNjZXNzZnVsbHkhJyk7XHJcbiAgICAgICAgICB0aGlzLnN1Ym1pdC5lbWl0KCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihlcnJvcj8uZXJyb3I/Lm1lc3NhZ2UgfHwgJ0FuIGVycm9yIG9jY3VycmVkIHdoaWxlIGNyZWF0aW5nIHRoZSB1c2VyLiBQbGVhc2UgdHJ5IGFnYWluLicpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxhcHAtbm90aWZpY2F0aW9uPjwvYXBwLW5vdGlmaWNhdGlvbj5cclxuPGFwcC1sb2FkZXIgKm5nSWY9XCJpc0xvYWRpbmdcIj48L2FwcC1sb2FkZXI+XHJcbjxkaXYgY2xhc3M9XCJtb3ZlLXVzZXItc3RlcHBlci1jb250YWluZXJcIiBbYXR0ci5hcmlhLWJ1c3ldPVwiaXNTdWJtaXR0aW5nXCI+XHJcbiAgPGhlYWRlciBjbGFzcz1cIm1vdmUtdXNlci1oZWFkZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb3ZlLXVzZXItaGVhZGVyX190aXRsZVwiPnt7IHRpdGxlIH19PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW92ZS11c2VyLWhlYWRlcl9fY2xvc2VcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJhcHAtaWNvbiB1c2VyLWNyZWF0aW9uLWNsb3NlLWljb25cIiAoY2xpY2spPVwib25DYW5jZWwoKVwiPjwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvaGVhZGVyPlxyXG5cclxuICA8ZGl2IGlkPVwidXNlci1jcmVhdGlvbi1zdGVwcGVyXCI+XHJcbiAgICA8bWF0LXN0ZXBwZXIgW2xpbmVhcl09XCJ0cnVlXCIgbGFiZWxQb3NpdGlvbj1cImJvdHRvbVwiICNzdGVwcGVyXHJcbiAgICAgIFtzZWxlY3RlZEluZGV4XT1cInNlbGVjdGVkSW5kZXhcIlxyXG4gICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU3RlcFNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCI+XHJcblxyXG4gICAgICA8bWF0LXN0ZXAgW2NvbXBsZXRlZF09XCJ0ZW1wbGF0ZVN0ZXBWYWxpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwLXRpdGxlXCI+U3RlcCAxOiBVc2VyIGNyZWF0aW9uIHdpdGggdGVtcGxhdGU8L2Rpdj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPlVzZXIgY3JlYXRpb248L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRJbmRleCA9PT0gMFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1vdmUtdXNlci10YWItY29udGVudC1ib3hcIj5cclxuICAgICAgICAgICAgPHRrLXVzZXItdGVtcGxhdGUtc3RlcFxyXG4gICAgICAgICAgICAgIFtjdXN0b21lcklkXT1cImN1c3RvbWVySWRcIlxyXG4gICAgICAgICAgICAgICh2YWxpZGl0eUNoYW5nZSk9XCJ0ZW1wbGF0ZVN0ZXBWYWxpZCA9ICRldmVudFwiXHJcbiAgICAgICAgICAgID48L3RrLXVzZXItdGVtcGxhdGUtc3RlcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L21hdC1zdGVwPlxyXG5cclxuICAgICAgPG1hdC1zdGVwIFtjb21wbGV0ZWRdPVwiZGV0YWlsc1N0ZXBWYWxpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwLXRpdGxlXCI+U3RlcCAyIDogVXNlciBkZXRhaWxzPC9kaXY+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFN0ZXBMYWJlbD5Vc2VyIGRldGFpbHM8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRJbmRleCA9PT0gMVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1vdmUtdXNlci10YWItY29udGVudC1ib3hcIj5cclxuICAgICAgICAgICAgPHRrLXVzZXItZGV0YWlscy1zdGVwICh2YWxpZGl0eUNoYW5nZSk9XCJkZXRhaWxzU3RlcFZhbGlkID0gJGV2ZW50XCI+PC90ay11c2VyLWRldGFpbHMtc3RlcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L21hdC1zdGVwPlxyXG5cclxuICAgICAgPG1hdC1zdGVwPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwLXRpdGxlXCI+U3RlcCAzOiBSZXZpZXc8L2Rpdj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPlJldmlldzwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZEluZGV4ID09PSAyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibW92ZS11c2VyLXRhYi1jb250ZW50LWJveFwiPlxyXG4gICAgICAgICAgICA8dGstdXNlci1vdmVydmlldy1zdGVwPjwvdGstdXNlci1vdmVydmlldy1zdGVwPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbWF0LXN0ZXA+XHJcbiAgICA8L21hdC1zdGVwcGVyPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJ3aXphcmQtYWN0aW9uc1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJzdGVwcGVyLnNlbGVjdGVkSW5kZXhcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIwXCI+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIG1hdC1idXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJ1Yy1idG4gdWMtYnRuLXByaW1hcnlcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiF0ZW1wbGF0ZVN0ZXBWYWxpZFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvblN0ZXBwZXJOZXh0KHN0ZXBwZXIpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgTmV4dFxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJ1Yy1idG4gdWMtYnRuLXNlY29uZGFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25DYW5jZWwoKVwiPlxyXG4gICAgICAgICAgICBDYW5jZWxcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIxXCI+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIG1hdC1idXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJ1Yy1idG4gdWMtYnRuLXByaW1hcnlcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFkZXRhaWxzU3RlcFZhbGlkXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uU3RlcHBlck5leHQoc3RlcHBlcilcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICBOZXh0XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cInVjLWJ0biB1Yy1idG4tc2Vjb25kYXJ5XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzdGVwcGVyLnByZXZpb3VzKClcIj5cclxuICAgICAgICAgICAgUHJldmlvdXNcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIyXCI+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIG1hdC1idXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJ1Yy1idG4gdWMtYnRuLXByaW1hcnlcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzU3VibWl0dGluZ1wiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvblN1Ym1pdCgpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1Yy1idG5fX2lubGluZS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1Yy1idG5fX3NwaW5uZXJcIiAqbmdJZj1cImlzU3VibWl0dGluZ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3Bhbj57eyBpc1N1Ym1pdHRpbmcgPyAnQ3JlYXRpbmcuLi4nIDogJ0NyZWF0ZScgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBtYXQtYnV0dG9uXHJcbiAgICAgICAgICAgIGNsYXNzPVwidWMtYnRuIHVjLWJ0bi1zZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzU3VibWl0dGluZ1wiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzdGVwcGVyLnByZXZpb3VzKClcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICBQcmV2aW91c1xyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJ3aXphcmQtbG9hZGluZy1vdmVybGF5XCIgW2NsYXNzLndpemFyZC1sb2FkaW5nLW92ZXJsYXktLXZpc2libGVdPVwiaXNTdWJtaXR0aW5nXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9kaXY+XHJcbjwvZGl2PiJdfQ==
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1jcmVhdGlvbi13aXphcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXItY3JlYXRpb24vc3JjL3dpZGdldHMvdXNlci1jcmVhdGlvbi13aXphcmQvdXNlci1jcmVhdGlvbi13aXphcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXItY3JlYXRpb24vc3JjL3dpZGdldHMvdXNlci1jcmVhdGlvbi13aXphcmQvdXNlci1jcmVhdGlvbi13aXphcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdoSSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFMUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDekcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7O0FBRTNFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLDJCQUEyQixDQUFDO0FBUXBFLE1BQU0sT0FBTywyQkFBMkI7SUF1QnRDLFlBQW9CLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBdEIzQyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLDhCQUF5QixHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBRXRFLFVBQUssR0FBRyxhQUFhLENBQUM7UUFNckIsV0FB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QUNYLENBQUMsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQzFCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDN0UsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO2dCQUMvRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3BCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLElBQUksOERBQThELENBQUMsQ0FBQzthQUN6SDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7eUhBMUdVLDJCQUEyQjs2R0FBM0IsMkJBQTJCLGtQQWtCM0IseUJBQXlCLDhFQUN6Qix3QkFBd0IsZ0RDcENyQyxxc0lBZ0hNOzRGRC9GTywyQkFBMkI7a0JBTnZDLFNBQVM7K0JBQ0UseUJBQXlCLGlCQUdwQixpQkFBaUIsQ0FBQyxJQUFJOzBHQU01QixLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBTytCLFlBQVk7c0JBQWpELFNBQVM7dUJBQUMseUJBQXlCO2dCQUNDLFdBQVc7c0JBQS9DLFNBQVM7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3RlcHBlclNlbGVjdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3N0ZXBwZXInO1xyXG5pbXBvcnQgeyBNYXRTdGVwcGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc3RlcHBlcic7XHJcbmltcG9ydCB7IEFQSVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvYXBpL2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9ub3RpZmljYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFVzZXJEZXRhaWxzU3RlcENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy91c2VyLWRldGFpbHMtc3RlcC91c2VyLWRldGFpbHMtc3RlcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVc2VyVGVtcGxhdGVTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3VzZXItdGVtcGxhdGUtc3RlcC91c2VyLXRlbXBsYXRlLXN0ZXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVXNlckNyZWF0aW9uV2l6YXJkU2VydmljZSB9IGZyb20gJy4vdXNlci1jcmVhdGlvbi13aXphcmQuc2VydmljZSc7XHJcblxyXG5leHBvcnQgY29uc3QgVVNFUl9DUkVBVEVEX1NVQ0NFU1NGTExZID0gJ1VzZXIgY3JlYXRlZCBzdWNjZXNzZnVsbHknO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0ay11c2VyLWNyZWF0aW9uLXdpemFyZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItY3JlYXRpb24td2l6YXJkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91c2VyLWNyZWF0aW9uLXdpemFyZC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJDcmVhdGlvbldpemFyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHJlYWRvbmx5IGFwaVNlcnZpY2UgPSBpbmplY3QoQVBJU2VydmljZSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSB1c2VyQ3JlYXRpb25XaXphcmRTZXJ2aWNlID0gaW5qZWN0KFVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2UpO1xyXG5cclxuICBASW5wdXQoKSB0aXRsZSA9ICdDcmVhdGUgVXNlcic7XHJcbiAgXHJcbiAgQElucHV0KCkgaG9zdCE6IHN0cmluZztcclxuICBASW5wdXQoKSB0b2tlbiE6IHN0cmluZztcclxuICBASW5wdXQoKSBjdXN0b21lcklkITogbnVtYmVyO1xyXG5cclxuICBAT3V0cHV0KCkgY2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBzdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgaXNTdWJtaXR0aW5nID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBzdWJtaXRUaW1lcklkOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBzZWxlY3RlZEluZGV4ID0gMDtcclxuICB0ZW1wbGF0ZVN0ZXBWYWxpZCA9IGZhbHNlO1xyXG4gIGRldGFpbHNTdGVwVmFsaWQgPSBmYWxzZTtcclxuXHJcbiAgQFZpZXdDaGlsZChVc2VyVGVtcGxhdGVTdGVwQ29tcG9uZW50KSB0ZW1wbGF0ZVN0ZXA/OiBVc2VyVGVtcGxhdGVTdGVwQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoVXNlckRldGFpbHNTdGVwQ29tcG9uZW50KSBkZXRhaWxzU3RlcD86IFVzZXJEZXRhaWxzU3RlcENvbXBvbmVudDtcclxuXHJcbiAgcHVibGljIGlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYXBpU2VydmljZS50b2tlbiA9IHRoaXMudG9rZW47XHJcbiAgICB0aGlzLmFwaVNlcnZpY2UuYXBpVXJsID0gdGhpcy5ob3N0O1xyXG4gIH1cclxuXHJcbiAgb25DYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNhbmNlbC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBvblN0ZXBTZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IFN0ZXBwZXJTZWxlY3Rpb25FdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gZXZlbnQuc2VsZWN0ZWRJbmRleDtcclxuXHJcbiAgICBpZiAoZXZlbnQuc2VsZWN0ZWRJbmRleCA9PT0gMSAmJiBldmVudC5wcmV2aW91c2x5U2VsZWN0ZWRJbmRleCA9PT0gMCkge1xyXG4gICAgICB0aGlzLnVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2UucmVzZXRVc2VyRGV0YWlsc1N0ZXBTdGF0ZSgpO1xyXG4gICAgICB0aGlzLmRldGFpbHNTdGVwVmFsaWQgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU3RlcHBlck5leHQoc3RlcHBlcjogTWF0U3RlcHBlcik6IHZvaWQge1xyXG4gICAgaWYgKHN0ZXBwZXIuc2VsZWN0ZWRJbmRleCA9PT0gMCkge1xyXG4gICAgICBpZiAoIXRoaXMudGVtcGxhdGVTdGVwPy5pc1N0ZXBWYWxpZCgpKSB7XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZVN0ZXA/Lm1hcmtTdGVwVG91Y2hlZCgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChzdGVwcGVyLnNlbGVjdGVkSW5kZXggPT09IDEpIHtcclxuICAgICAgaWYgKCF0aGlzLmRldGFpbHNTdGVwPy5pc1N0ZXBWYWxpZCgpKSB7XHJcbiAgICAgICAgdGhpcy5kZXRhaWxzU3RlcD8ubWFya0FsbEFzVG91Y2hlZCgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmRldGFpbHNTdGVwPy5zeW5jVG9TZXJ2aWNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RlcHBlci5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBvblN1Ym1pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlzU3VibWl0dGluZykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc1N1Ym1pdHRpbmcgPSB0cnVlO1xyXG5cclxuICAgIC8vIGNvbnN0IGRlbGF5TXMgPSAzMDAwICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMSk7XHJcbiAgICAvLyB0aGlzLnN1Ym1pdFRpbWVySWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAvLyAgIHRoaXMuaXNTdWJtaXR0aW5nID0gZmFsc2U7XHJcbiAgICAvLyAgIHRoaXMuc3VibWl0VGltZXJJZCA9IG51bGw7XHJcbiAgICAvLyAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKCdVc2VyIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5IScpO1xyXG4gICAgLy8gICB0aGlzLnN1Ym1pdC5lbWl0KCk7XHJcbiAgICAvLyB9LCBkZWxheU1zKTtcclxuICAgIHRoaXMuX3NhdmVDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnN1Ym1pdFRpbWVySWQpIHtcclxuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnN1Ym1pdFRpbWVySWQpO1xyXG4gICAgICB0aGlzLnN1Ym1pdFRpbWVySWQgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2F2ZUNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2Uuc2F2ZU5ld1VzZXIoKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcygnVXNlciBjcmVhdGVkIHN1Y2Nlc3NmdWxseSEnKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmlzU3VibWl0dGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zdWJtaXQuZW1pdCgpO1xyXG4gICAgICAgIH0sIDMwMDApO1xyXG4gICAgICB9LCAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1N1Ym1pdHRpbmcgPSBmYWxzZTtcclxuICAgICAgICBpZiAodHlwZW9mIGVycm9yID09PSAnc3RyaW5nJyAmJiBlcnJvci5pbmRleE9mKFVTRVJfQ1JFQVRFRF9TVUNDRVNTRkxMWSkgPiAtMSkge1xyXG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoJ1VzZXIgY3JlYXRlZCBzdWNjZXNzZnVsbHkhJyk7XHJcbiAgICAgICAgICB0aGlzLnN1Ym1pdC5lbWl0KCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihlcnJvcj8uZXJyb3I/Lm1lc3NhZ2UgfHwgJ0FuIGVycm9yIG9jY3VycmVkIHdoaWxlIGNyZWF0aW5nIHRoZSB1c2VyLiBQbGVhc2UgdHJ5IGFnYWluLicpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxhcHAtbm90aWZpY2F0aW9uPjwvYXBwLW5vdGlmaWNhdGlvbj5cclxuPHRrLWxvYWRlciAqbmdJZj1cImlzTG9hZGluZ1wiPjwvdGstbG9hZGVyPlxyXG48ZGl2IGNsYXNzPVwibW92ZS11c2VyLXN0ZXBwZXItY29udGFpbmVyXCIgW2F0dHIuYXJpYS1idXN5XT1cImlzU3VibWl0dGluZ1wiPlxyXG4gIDxoZWFkZXIgY2xhc3M9XCJtb3ZlLXVzZXItaGVhZGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW92ZS11c2VyLWhlYWRlcl9fdGl0bGVcIj57eyB0aXRsZSB9fTwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vdmUtdXNlci1oZWFkZXJfX2Nsb3NlXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiYXBwLWljb24gdXNlci1jcmVhdGlvbi1jbG9zZS1pY29uXCIgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIj48L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICA8L2hlYWRlcj5cclxuXHJcbiAgPGRpdiBpZD1cInVzZXItY3JlYXRpb24tc3RlcHBlclwiPlxyXG4gICAgPG1hdC1zdGVwcGVyIFtsaW5lYXJdPVwidHJ1ZVwiIGxhYmVsUG9zaXRpb249XCJib3R0b21cIiAjc3RlcHBlclxyXG4gICAgICBbc2VsZWN0ZWRJbmRleF09XCJzZWxlY3RlZEluZGV4XCJcclxuICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblN0ZXBTZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiPlxyXG5cclxuICAgICAgPG1hdC1zdGVwIFtjb21wbGV0ZWRdPVwidGVtcGxhdGVTdGVwVmFsaWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcC10aXRsZVwiPlN0ZXAgMTogVXNlciBjcmVhdGlvbiB3aXRoIHRlbXBsYXRlPC9kaXY+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFN0ZXBMYWJlbD5Vc2VyIGNyZWF0aW9uPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkSW5kZXggPT09IDBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb3ZlLXVzZXItdGFiLWNvbnRlbnQtYm94XCI+XHJcbiAgICAgICAgICAgIDx0ay11c2VyLXRlbXBsYXRlLXN0ZXBcclxuICAgICAgICAgICAgICBbY3VzdG9tZXJJZF09XCJjdXN0b21lcklkXCJcclxuICAgICAgICAgICAgICAodmFsaWRpdHlDaGFuZ2UpPVwidGVtcGxhdGVTdGVwVmFsaWQgPSAkZXZlbnRcIlxyXG4gICAgICAgICAgICA+PC90ay11c2VyLXRlbXBsYXRlLXN0ZXA+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9tYXQtc3RlcD5cclxuXHJcbiAgICAgIDxtYXQtc3RlcCBbY29tcGxldGVkXT1cImRldGFpbHNTdGVwVmFsaWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcC10aXRsZVwiPlN0ZXAgMiA6IFVzZXIgZGV0YWlsczwvZGl2PlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRTdGVwTGFiZWw+VXNlciBkZXRhaWxzPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkSW5kZXggPT09IDFcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb3ZlLXVzZXItdGFiLWNvbnRlbnQtYm94XCI+XHJcbiAgICAgICAgICAgIDx0ay11c2VyLWRldGFpbHMtc3RlcCAodmFsaWRpdHlDaGFuZ2UpPVwiZGV0YWlsc1N0ZXBWYWxpZCA9ICRldmVudFwiPjwvdGstdXNlci1kZXRhaWxzLXN0ZXA+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9tYXQtc3RlcD5cclxuXHJcbiAgICAgIDxtYXQtc3RlcD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcC10aXRsZVwiPlN0ZXAgMzogUmV2aWV3PC9kaXY+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFN0ZXBMYWJlbD5SZXZpZXc8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRJbmRleCA9PT0gMlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1vdmUtdXNlci10YWItY29udGVudC1ib3hcIj5cclxuICAgICAgICAgICAgPHRrLXVzZXItb3ZlcnZpZXctc3RlcD48L3RrLXVzZXItb3ZlcnZpZXctc3RlcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L21hdC1zdGVwPlxyXG4gICAgPC9tYXQtc3RlcHBlcj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwid2l6YXJkLWFjdGlvbnNcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwic3RlcHBlci5zZWxlY3RlZEluZGV4XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiMFwiPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBtYXQtYnV0dG9uXHJcbiAgICAgICAgICAgIGNsYXNzPVwidWMtYnRuIHVjLWJ0bi1wcmltYXJ5XCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhdGVtcGxhdGVTdGVwVmFsaWRcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25TdGVwcGVyTmV4dChzdGVwcGVyKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIE5leHRcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNsYXNzPVwidWMtYnRuIHVjLWJ0bi1zZWNvbmRhcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIj5cclxuICAgICAgICAgICAgQ2FuY2VsXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiMVwiPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBtYXQtYnV0dG9uXHJcbiAgICAgICAgICAgIGNsYXNzPVwidWMtYnRuIHVjLWJ0bi1wcmltYXJ5XCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZGV0YWlsc1N0ZXBWYWxpZFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvblN0ZXBwZXJOZXh0KHN0ZXBwZXIpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgTmV4dFxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJ1Yy1idG4gdWMtYnRuLXNlY29uZGFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic3RlcHBlci5wcmV2aW91cygpXCI+XHJcbiAgICAgICAgICAgIFByZXZpb3VzXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiMlwiPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBtYXQtYnV0dG9uXHJcbiAgICAgICAgICAgIGNsYXNzPVwidWMtYnRuIHVjLWJ0bi1wcmltYXJ5XCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1N1Ym1pdHRpbmdcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25TdWJtaXQoKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidWMtYnRuX19pbmxpbmUtY29udGVudFwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidWMtYnRuX19zcGlubmVyXCIgKm5nSWY9XCJpc1N1Ym1pdHRpbmdcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW4+e3sgaXNTdWJtaXR0aW5nID8gJ0NyZWF0aW5nLi4uJyA6ICdDcmVhdGUnIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgICAgICBjbGFzcz1cInVjLWJ0biB1Yy1idG4tc2Vjb25kYXJ5XCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1N1Ym1pdHRpbmdcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic3RlcHBlci5wcmV2aW91cygpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgUHJldmlvdXNcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwid2l6YXJkLWxvYWRpbmctb3ZlcmxheVwiIFtjbGFzcy53aXphcmQtbG9hZGluZy1vdmVybGF5LS12aXNpYmxlXT1cImlzU3VibWl0dGluZ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZGl2PlxyXG48L2Rpdj4iXX0=