@tuki-io/tuki-widgets 0.0.35 → 0.0.41

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.
@@ -21,10 +21,10 @@ export class InfoDialogComponent {
21
21
  }
22
22
  }
23
23
  InfoDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: InfoDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
24
- InfoDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: InfoDialogComponent, selector: "app-info-dialog", ngImport: i0, template: "<div id=\"info-dialog\" class=\"app-dialog\" aria-labelledby=\"info-dialog-label\" role=\"dialog\">\r\n <h3 *ngIf=\"title\" class=\"app-dialog-title\">{{title}}</h3>\r\n <div mat-dialog-content *ngIf=\"message\" class=\"app-dialog-content\">\r\n <div [innerHTML]=\"message\"></div>\r\n </div>\r\n <div mat-dialog-actions class=\"flex-gap-container\">\r\n <button class=\"app-dialog-button app-dialog-cancel-button\" (click)=\"onClose(false)\">\r\n Cancel\r\n </button>\r\n <button class=\"app-dialog-button app-dialog-confirm-button\" (click)=\"onClose(true)\">\r\n {{confirmButtonText}}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";#info-dialog{min-height:150px;width:400px;box-sizing:border-box;position:relative}#info-dialog .fa{font-size:35px;margin:0 auto 20px;display:block;text-align:center;color:#009fdb;cursor:default}.scroll-content{overflow-y:auto;margin:auto;max-height:150px;width:100%}.app-dialog{font-family:Inter,Inter,sans-serif}.app-dialog .app-dialog-title{text-align:center;font-weight:600;font-size:16px;font-family:Inter,Inter,sans-serif;margin:0 0 24px}.app-dialog .flex-gap-container{gap:16px;position:absolute;right:0;bottom:0;gap:15px;display:flex}.app-dialog .app-dialog-content{color:#000000b3;font-size:14px}.app-dialog-button{height:32px;padding:10px 12px;text-align:center;border-radius:50px;box-shadow:none;line-height:11px;border:none;font-size:14px;font-family:Inter,Inter,sans-serif;cursor:pointer}.app-dialog-cancel-button{border:1px solid rgba(0,0,0,.5);color:#000}.app-dialog-confirm-button{background:#F23933;color:#fff}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
24
+ InfoDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: InfoDialogComponent, selector: "app-info-dialog", ngImport: i0, template: "<div id=\"info-dialog\" class=\"app-dialog\" aria-labelledby=\"info-dialog-label\" role=\"dialog\">\r\n <h3 *ngIf=\"title\" class=\"app-dialog-title\">{{title}}</h3>\r\n <div mat-dialog-content *ngIf=\"message\" class=\"app-dialog-content\">\r\n <div [innerHTML]=\"message\"></div>\r\n </div>\r\n <div mat-dialog-actions class=\"flex-gap-container\">\r\n <button class=\"app-dialog-button app-dialog-cancel-button\" (click)=\"onClose(false)\">\r\n Cancel\r\n </button>\r\n <button class=\"app-dialog-button app-dialog-confirm-button\" (click)=\"onClose(true)\">\r\n {{confirmButtonText}}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";#info-dialog{min-height:150px;width:400px;box-sizing:border-box;position:relative}#info-dialog .fa{font-size:35px;margin:0 auto 20px;display:block;text-align:center;color:#009fdb;cursor:default}.scroll-content{overflow-y:auto;margin:auto;max-height:150px;width:100%}.app-dialog{font-family:Inter,Inter,sans-serif}.app-dialog .app-dialog-title{text-align:center;font-weight:600;font-size:16px;font-family:Inter,Inter,sans-serif;margin:0 0 24px}.app-dialog .flex-gap-container{gap:16px;position:absolute;right:0;bottom:0;gap:15px;display:flex}.app-dialog .app-dialog-content{color:#000000b3;font-size:14px}.app-dialog-button{height:32px;padding:10px 12px;text-align:center;border-radius:50px;box-shadow:none;line-height:11px;border:none;font-size:14px;font-family:Inter,Inter,sans-serif;cursor:pointer}.app-dialog-cancel-button{border:1px solid rgba(0,0,0,.5);color:#000;background:white}.app-dialog-confirm-button{background:black;color:#fff}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
25
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: InfoDialogComponent, decorators: [{
26
26
  type: Component,
27
- args: [{ selector: 'app-info-dialog', encapsulation: ViewEncapsulation.None, template: "<div id=\"info-dialog\" class=\"app-dialog\" aria-labelledby=\"info-dialog-label\" role=\"dialog\">\r\n <h3 *ngIf=\"title\" class=\"app-dialog-title\">{{title}}</h3>\r\n <div mat-dialog-content *ngIf=\"message\" class=\"app-dialog-content\">\r\n <div [innerHTML]=\"message\"></div>\r\n </div>\r\n <div mat-dialog-actions class=\"flex-gap-container\">\r\n <button class=\"app-dialog-button app-dialog-cancel-button\" (click)=\"onClose(false)\">\r\n Cancel\r\n </button>\r\n <button class=\"app-dialog-button app-dialog-confirm-button\" (click)=\"onClose(true)\">\r\n {{confirmButtonText}}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";#info-dialog{min-height:150px;width:400px;box-sizing:border-box;position:relative}#info-dialog .fa{font-size:35px;margin:0 auto 20px;display:block;text-align:center;color:#009fdb;cursor:default}.scroll-content{overflow-y:auto;margin:auto;max-height:150px;width:100%}.app-dialog{font-family:Inter,Inter,sans-serif}.app-dialog .app-dialog-title{text-align:center;font-weight:600;font-size:16px;font-family:Inter,Inter,sans-serif;margin:0 0 24px}.app-dialog .flex-gap-container{gap:16px;position:absolute;right:0;bottom:0;gap:15px;display:flex}.app-dialog .app-dialog-content{color:#000000b3;font-size:14px}.app-dialog-button{height:32px;padding:10px 12px;text-align:center;border-radius:50px;box-shadow:none;line-height:11px;border:none;font-size:14px;font-family:Inter,Inter,sans-serif;cursor:pointer}.app-dialog-cancel-button{border:1px solid rgba(0,0,0,.5);color:#000}.app-dialog-confirm-button{background:#F23933;color:#fff}\n"] }]
27
+ args: [{ selector: 'app-info-dialog', encapsulation: ViewEncapsulation.None, template: "<div id=\"info-dialog\" class=\"app-dialog\" aria-labelledby=\"info-dialog-label\" role=\"dialog\">\r\n <h3 *ngIf=\"title\" class=\"app-dialog-title\">{{title}}</h3>\r\n <div mat-dialog-content *ngIf=\"message\" class=\"app-dialog-content\">\r\n <div [innerHTML]=\"message\"></div>\r\n </div>\r\n <div mat-dialog-actions class=\"flex-gap-container\">\r\n <button class=\"app-dialog-button app-dialog-cancel-button\" (click)=\"onClose(false)\">\r\n Cancel\r\n </button>\r\n <button class=\"app-dialog-button app-dialog-confirm-button\" (click)=\"onClose(true)\">\r\n {{confirmButtonText}}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";#info-dialog{min-height:150px;width:400px;box-sizing:border-box;position:relative}#info-dialog .fa{font-size:35px;margin:0 auto 20px;display:block;text-align:center;color:#009fdb;cursor:default}.scroll-content{overflow-y:auto;margin:auto;max-height:150px;width:100%}.app-dialog{font-family:Inter,Inter,sans-serif}.app-dialog .app-dialog-title{text-align:center;font-weight:600;font-size:16px;font-family:Inter,Inter,sans-serif;margin:0 0 24px}.app-dialog .flex-gap-container{gap:16px;position:absolute;right:0;bottom:0;gap:15px;display:flex}.app-dialog .app-dialog-content{color:#000000b3;font-size:14px}.app-dialog-button{height:32px;padding:10px 12px;text-align:center;border-radius:50px;box-shadow:none;line-height:11px;border:none;font-size:14px;font-family:Inter,Inter,sans-serif;cursor:pointer}.app-dialog-cancel-button{border:1px solid rgba(0,0,0,.5);color:#000;background:white}.app-dialog-confirm-button{background:black;color:#fff}\n"] }]
28
28
  }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: InfoDialogConfig, decorators: [{
29
29
  type: Inject,
30
30
  args: [MAT_DIALOG_DATA]
@@ -1,28 +1,35 @@
1
- import { Component, EventEmitter, Input, Output } from "@angular/core";
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "../../services/dns.service";
4
- import * as i2 from "@angular/common";
5
- import * as i3 from "@angular/forms";
6
- import * as i4 from "@angular/material/button";
7
- import * as i5 from "@angular/material/progress-spinner";
8
- import * as i6 from "@angular/material/form-field";
9
- import * as i7 from "@angular/material/input";
10
- import * as i8 from "@angular/material/core";
11
- import * as i9 from "@angular/material/stepper";
12
- import * as i10 from "@angular/material/checkbox";
13
- import * as i11 from "@angular/material/select";
14
- import * as i12 from "@angular/material/radio";
4
+ import * as i2 from "../../services/user.service";
5
+ import * as i3 from "@angular/common";
6
+ import * as i4 from "@angular/forms";
7
+ import * as i5 from "@angular/material/button";
8
+ import * as i6 from "@angular/material/progress-spinner";
9
+ import * as i7 from "@angular/material/form-field";
10
+ import * as i8 from "@angular/material/input";
11
+ import * as i9 from "@angular/material/core";
12
+ import * as i10 from "@angular/material/stepper";
13
+ import * as i11 from "@angular/material/checkbox";
14
+ import * as i12 from "@angular/material/select";
15
+ import * as i13 from "@angular/material/radio";
16
+ import * as i14 from "../../utils/app-loader/app-loader";
15
17
  // for test only
16
18
  const LOCATION = 'Y2lzY29zcGFyazovL3VzL0xPQ0FUSU9OLzE2YjY0NjljLTBjZmQtNDJjMS1iOWJjLTUyN2FlZTNhN2RlOQ';
17
19
  export class MoveUserStepperComponent {
20
+ get moveUserPending() {
21
+ return this.userService.moveUserPending;
22
+ }
18
23
  get currentNumber() {
19
24
  if (this.user?.devices?.length && this.user.devices[0]?.lineAssociations && this.user.devices[0].lineAssociations[0]) {
20
25
  return this.user.devices[0].lineAssociations[0].directoryNumber.directoryNumber;
21
26
  }
22
27
  return '';
23
28
  }
24
- constructor(dnsService) {
29
+ constructor(dnsService, userService) {
25
30
  this.dnsService = dnsService;
31
+ this.userService = userService;
32
+ this.done = new EventEmitter();
26
33
  this.runMoveUser = new EventEmitter();
27
34
  this.cancel = new EventEmitter();
28
35
  this.isLinear = false;
@@ -34,13 +41,17 @@ export class MoveUserStepperComponent {
34
41
  phoneNumber: '1',
35
42
  extension: '1'
36
43
  };
44
+ this.userService.userMoved$.subscribe((result) => {
45
+ this.userService.moveUserPending = false;
46
+ if (result && this.nextAfterMoveBtn?._elementRef?.nativeElement) {
47
+ this.nextAfterMoveBtn._elementRef.nativeElement.click();
48
+ }
49
+ });
37
50
  }
38
51
  }
39
- onStepChange(event) {
40
- // alert('step change ' + event.selectedIndex);
41
- /*if (event.selectedIndex === 4) {
42
- this.runMoveUser.emit();
43
- }*/
52
+ onMoveUser(stepper) {
53
+ this.stepper = stepper;
54
+ this.runMoveUser.emit();
44
55
  }
45
56
  selectPhoneNumberMigrationType(event) {
46
57
  if (event.value && event.value === '2') {
@@ -78,12 +89,17 @@ export class MoveUserStepperComponent {
78
89
  ].map(step => step ? step.completed = true : undefined);
79
90
  }
80
91
  }
81
- MoveUserStepperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserStepperComponent, deps: [{ token: i1.DnsService }], target: i0.ɵɵFactoryTarget.Component });
82
- MoveUserStepperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MoveUserStepperComponent, selector: "app-move-user-stepper", inputs: { user: "user", customerId: "customerId" }, outputs: { runMoveUser: "runMoveUser", cancel: "cancel" }, ngImport: i0, template: "<mat-stepper *ngIf=\"user?.moveType\" [linear]=\"isLinear\" labelPosition=\"bottom\" #stepper>\r\n <mat-step>\r\n <div class=\"step-title\">Step 1: Select location</div>\r\n<!-- <form>-->\r\n <ng-template matStepLabel>Select location</ng-template>\r\n <mat-label class=\"mat-label\">Phone number</mat-label>\r\n <mat-radio-group\r\n class=\"radio-group\"\r\n [(ngModel)]=\"user.moveType.phoneNumber\"\r\n name=\"phoneNumber\" (change)=\"selectPhoneNumberMigrationType($event)\">\r\n <mat-radio-button class=\"radio-button\" value=\"1\" color=\"primary\">Keep current number {{currentNumber}}</mat-radio-button>\r\n <mat-radio-button class=\"radio-button\" value=\"2\" color=\"primary\">Select a new number</mat-radio-button>\r\n\r\n <div *ngIf=\"user.moveType.phoneNumber === '2'\" class=\"select-container\">\r\n <mat-progress-spinner *ngIf=\"phoneNumberPending\"\r\n class=\"field-spinner\" mode=\"indeterminate\"\r\n [diameter]=\"30\"></mat-progress-spinner>\r\n\r\n <mat-select class=\"select\" placeholder=\"Select number\" [(ngModel)]=\"user.newNumber\"\r\n (selectionChange)=\"onPhoneNumberChange($event)\">\r\n <mat-option *ngFor=\"let option of dnsService.phoneNumbers\" value=\"option\">{{option}}</mat-option>\r\n </mat-select>\r\n </div>\r\n\r\n <mat-radio-button class=\"radio-button\" value=\"3\" color=\"primary\">Remove number</mat-radio-button>\r\n </mat-radio-group>\r\n <mat-label class=\"mat-label\">Extension</mat-label>\r\n <mat-radio-group class=\"radio-group\" name=\"extension\"\r\n [(ngModel)]=\"user.moveType.extension\">\r\n <mat-radio-button class=\"radio-button\" value=\"1\" color=\"primary\">Keep current extension</mat-radio-button>\r\n <mat-radio-button class=\"radio-button\" value=\"2\" color=\"primary\">Select a new extension</mat-radio-button>\r\n <mat-form-field *ngIf=\"user.moveType.extension === '2'\" appearance=\"outline\">\r\n <input matInput type=\"text\" (change)=\"onExtensionCHange($event)\"\r\n [(ngModel)]=\"user.newExtension\"\r\n [placeholder]=\"'Enter extension'\" />\r\n </mat-form-field>\r\n\r\n <mat-radio-button class=\"radio-button\" value=\"3\" color=\"primary\">Remove extension</mat-radio-button>\r\n </mat-radio-group>\r\n<!-- </form>-->\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\" matStepperNext (click)=\"goNextStep(stepper)\">Next</button>\r\n <button mat-button class=\"webex-btn btn-cancel\" (click)=\"cancel.emit()\">Cancel</button>\r\n </div>\r\n </mat-step>\r\n <mat-step [aria-labelledby]=\"'disabled_af'\">\r\n <div class=\"step-title\">Step 2: Device eligibility check</div>\r\n <ng-template matStepLabel>Device eligibility check</ng-template>\r\n <form></form>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\" matStepperNext (click)=\"goNextStep(stepper)\">Next</button>\r\n <button mat-button class=\"webex-btn btn-cancel\" matStepperPrevious>Previous</button>\r\n </div>\r\n </mat-step>\r\n <mat-step [aria-labelledby]=\"'disabled_af'\">\r\n <div class=\"step-title\">Step 3: Validation</div>\r\n <form>\r\n <ng-template matStepLabel>Validation</ng-template>\r\n <mat-label class=\"mat-label\">Validation Success!</mat-label>\r\n <p class=\"validation-text\">There is no issue for moving this user to the new location, $MTlocationname. Please be aware of the changes below once the user is being moved to the new location.</p>\r\n <mat-label class=\"mat-label\">Expected changes</mat-label>\r\n <ul>\r\n <li>Tablet device (TABAVICK) needs to be reconfigured with Webex App. User will receive an email with link to download.</li>\r\n <li>Cisco 8875 (SEP751FC9BAB854) will not be migrated.</li>\r\n <li>The user will be removed from Call Park Group.</li>\r\n <li>If the device is using the location level device settings, the device will pick up the new location device settings once the user is moved. If some of the device settings are overwritten at the user level, these user level settings will be retained and the rest of the settings will be picked up at the higher level (organization or location) settings.</li>\r\n <li>If the current location has a different recording service from the one of the new location, the recording of this user may be lost after moving location.</li>\r\n </ul>\r\n <div>\r\n <mat-checkbox class=\"checkbox\" checked=\"true\" color=\"primary\">I confirm that I understand these conditions. I acknowledge the changes.</mat-checkbox>\r\n </div>\r\n </form>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\" matStepperNext (click)=\"goNextStep(stepper)\">Next</button>\r\n <button mat-button class=\"webex-btn btn-cancel\" matStepperPrevious>Previous</button>\r\n </div>\r\n </mat-step>\r\n <mat-step>\r\n <div class=\"step-title\">Step 2: Result</div>\r\n <ng-template matStepLabel>Result</ng-template>\r\n <form>\r\n <mat-label class=\"mat-label\">Moving user has been successfully initiated!</mat-label>\r\n <p class=\"validation-text\">\r\n The user will be moved to the new location, Paris.\r\n <br>\r\n For the progress of move, please visit the <a class=\"form-link\" href=\"#\">user details</a>.\r\n </p>\r\n </form>\r\n <div class=\"step-actions\">\r\n<!-- <button mat-button class=\"webex-btn btn-done\" matStepperNext (click)=\"cancel.emit()\">Done</button>-->\r\n <button mat-button class=\"webex-btn btn-done\" matStepperNext (click)=\"runMoveUser.emit()\">Done</button>\r\n <button mat-button class=\"webex-btn btn-cancel\" matStepperPrevious>Previous</button>\r\n </div>\r\n </mat-step>\r\n </mat-stepper>\r\n", styles: [".mat-stepper-horizontal{height:-moz-fit-content;height:fit-content;max-height:750px;margin:0 auto;width:70%;background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container{margin:0 auto;width:800px}.mat-stepper-horizontal .mat-step-icon{width:18px;height:18px;border:3px solid hsl(0,0%,50.2%)}.mat-stepper-horizontal .mat-step-icon-selected{background-color:#c6c6c6!important;border-color:#19487d}.mat-stepper-horizontal .mat-step-icon-state-number{background-color:#fff}.mat-stepper-horizontal .mat-step-icon-state-edit,.mat-stepper-horizontal .mat-step-header .mat-step-icon-state-done{background-color:#1170cf;border-color:#1170cf}.mat-stepper-horizontal .mat-step-icon-content{display:none}.mat-stepper-horizontal .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):before,.mat-stepper-horizontal [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):before,.mat-stepper-horizontal .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):after,.mat-stepper-horizontal [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):after{border-top-width:3px!important}.mat-stepper-horizontal .mat-horizontal-stepper-header:before,.mat-stepper-horizontal .mat-horizontal-stepper-header:after,.mat-stepper-horizontal .mat-stepper-horizontal-line{border-top-width:3px!important;background-color:#7b7b7b}::ng-deep .mat-step-header[aria-labelledby=disabled_af]{pointer-events:none!important;cursor:not-allowed}::ng-deep .mat-step-header[aria-labelledby=disabled_af] .mat-step-icon,::ng-deep .mat-step-header[aria-labelledby=disabled_af] .mat-step-label{cursor:not-allowed;opacity:.6}.mat-mdc-form-field{margin-top:16px}.mat-label{font-size:16px;font-weight:600;margin:1rem 0}.step-title{font-size:28px;font-weight:700;margin:.5rem 0 1.5rem 2rem}.validation-text{margin-top:.5rem;margin-bottom:2rem}ul{padding:.5rem 2rem;margin-top:.5rem;margin-bottom:2rem}form{background-color:#fff;padding:2.5rem;min-height:350px;border-radius:.5rem}.form-link{text-decoration:none;color:#007bff}.radio-group{display:flex;flex-direction:column;margin:15px 0;align-items:flex-start}.radio-button{margin:.5rem 0}.select{width:350px;padding:.5rem;margin:.5rem 0;border:1px solid #a0a0a0;border-radius:.5rem}.step-actions{display:flex;flex-flow:row-reverse;margin-top:2rem;gap:1rem}.webex-btn{border:1px solid black;border-radius:1rem;cursor:pointer;gap:1rem}.btn-next{background-color:#000;color:#fff}.btn-cancel,.btn-done{background-color:#fff;color:#000}.select-container{position:relative}.select-container .mat-progress-spinner{position:absolute;left:45%;top:35px}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { 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.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i9.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i9.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i9.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: "directive", type: i9.MatStepperNext, selector: "button[matStepperNext]", inputs: ["type"] }, { kind: "directive", type: i9.MatStepperPrevious, selector: "button[matStepperPrevious]", inputs: ["type"] }, { kind: "component", type: i10.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i11.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "directive", type: i12.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i12.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }] });
92
+ MoveUserStepperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserStepperComponent, deps: [{ token: i1.DnsService }, { token: i2.UserService }], target: i0.ɵɵFactoryTarget.Component });
93
+ MoveUserStepperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MoveUserStepperComponent, selector: "app-move-user-stepper", inputs: { user: "user", customerId: "customerId" }, outputs: { done: "done", runMoveUser: "runMoveUser", cancel: "cancel" }, viewQueries: [{ propertyName: "nextAfterMoveBtn", first: true, predicate: ["nextAfterMoveBtn"], descendants: true }], ngImport: i0, template: "<app-loader *ngIf=\"moveUserPending\"></app-loader>\r\n<mat-stepper *ngIf=\"user?.moveType\" [linear]=\"isLinear\" labelPosition=\"bottom\" #stepper>\r\n <mat-step>\r\n <div class=\"step-title\">Step 1: Select location</div>\r\n <!-- <form>-->\r\n <ng-template matStepLabel>Select location</ng-template>\r\n <mat-label class=\"mat-label\">Phone number</mat-label>\r\n <mat-radio-group\r\n class=\"radio-group\"\r\n [(ngModel)]=\"user.moveType.phoneNumber\"\r\n name=\"phoneNumber\" (change)=\"selectPhoneNumberMigrationType($event)\">\r\n <mat-radio-button class=\"radio-button\" value=\"1\" color=\"primary\">Keep current number {{currentNumber}}</mat-radio-button>\r\n <mat-radio-button class=\"radio-button\" value=\"2\" color=\"primary\">Select a new number</mat-radio-button>\r\n\r\n <div *ngIf=\"user.moveType.phoneNumber === '2'\" class=\"select-container\">\r\n <mat-progress-spinner *ngIf=\"phoneNumberPending\"\r\n class=\"field-spinner\" mode=\"indeterminate\"\r\n [diameter]=\"30\"></mat-progress-spinner>\r\n\r\n <mat-select class=\"select\" placeholder=\"Select number\" [(ngModel)]=\"user.newNumber\"\r\n (selectionChange)=\"onPhoneNumberChange($event)\">\r\n <mat-option *ngFor=\"let option of dnsService.phoneNumbers\" value=\"option\">{{option}}</mat-option>\r\n </mat-select>\r\n </div>\r\n\r\n <mat-radio-button class=\"radio-button\" value=\"3\" color=\"primary\">Remove number</mat-radio-button>\r\n </mat-radio-group>\r\n <mat-label class=\"mat-label\">Extension</mat-label>\r\n <mat-radio-group class=\"radio-group\" name=\"extension\"\r\n [(ngModel)]=\"user.moveType.extension\">\r\n <mat-radio-button class=\"radio-button\" value=\"1\" color=\"primary\">Keep current extension</mat-radio-button>\r\n <mat-radio-button class=\"radio-button\" value=\"2\" color=\"primary\">Select a new extension</mat-radio-button>\r\n <mat-form-field *ngIf=\"user.moveType.extension === '2'\" appearance=\"outline\">\r\n <input matInput type=\"text\" (change)=\"onExtensionCHange($event)\"\r\n [(ngModel)]=\"user.newExtension\"\r\n [placeholder]=\"'Enter extension'\" />\r\n </mat-form-field>\r\n\r\n <mat-radio-button class=\"radio-button\" value=\"3\" color=\"primary\">Remove extension</mat-radio-button>\r\n </mat-radio-group>\r\n <!-- </form>-->\r\n <button #nextAfterMoveBtn mat-button class=\"invisible-next-btn\" matStepperNext (click)=\"goNextStep(stepper)\"></button>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\" (click)=\"onMoveUser(stepper)\">Move</button>\r\n <button mat-button class=\"webex-btn btn-cancel\" (click)=\"cancel.emit()\">Cancel</button>\r\n </div>\r\n </mat-step>\r\n <mat-step [aria-labelledby]=\"'disabled_af'\">\r\n <div class=\"step-title\">Step 2: Device eligibility check</div>\r\n <ng-template matStepLabel>Device eligibility check</ng-template>\r\n <form></form>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\" matStepperNext (click)=\"goNextStep(stepper)\">Next</button>\r\n <button mat-button class=\"webex-btn btn-cancel\" matStepperPrevious>Previous</button>\r\n </div>\r\n </mat-step>\r\n <mat-step [aria-labelledby]=\"'disabled_af'\">\r\n <div class=\"step-title\">Step 3: Validation</div>\r\n <form>\r\n <ng-template matStepLabel>Validation</ng-template>\r\n <mat-label class=\"mat-label\">Validation Success!</mat-label>\r\n <p class=\"validation-text\">There is no issue for moving this user to the new location, $MTlocationname. Please be aware of the changes below once the user is being moved to the new location.</p>\r\n <mat-label class=\"mat-label\">Expected changes</mat-label>\r\n <ul>\r\n <li>Tablet device (TABAVICK) needs to be reconfigured with Webex App. User will receive an email with link to download.</li>\r\n <li>Cisco 8875 (SEP751FC9BAB854) will not be migrated.</li>\r\n <li>The user will be removed from Call Park Group.</li>\r\n <li>If the device is using the location level device settings, the device will pick up the new location device settings once the user is moved. If some of the device settings are overwritten at the user level, these user level settings will be retained and the rest of the settings will be picked up at the higher level (organization or location) settings.</li>\r\n <li>If the current location has a different recording service from the one of the new location, the recording of this user may be lost after moving location.</li>\r\n </ul>\r\n <div>\r\n <mat-checkbox class=\"checkbox\" checked=\"true\" color=\"primary\">I confirm that I understand these conditions. I acknowledge the changes.</mat-checkbox>\r\n </div>\r\n </form>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\" matStepperNext (click)=\"goNextStep(stepper)\">Next</button>\r\n <button mat-button class=\"webex-btn btn-cancel\" matStepperPrevious>Previous</button>\r\n </div>\r\n </mat-step>\r\n <mat-step>\r\n <div class=\"step-title\">Step 4: Result</div>\r\n <ng-template matStepLabel>Result</ng-template>\r\n <form>\r\n <mat-label class=\"mat-label\">Moving user has been successfully initiated!</mat-label>\r\n <p class=\"validation-text\">\r\n The user will be moved to the new location, $MTlocationname.\r\n <br>\r\n For the progress of move, please visit the <a class=\"form-link\" href=\"#\">user details</a>.\r\n </p>\r\n </form>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-done\" (click)=\"done.emit(true)\">Done</button>\r\n </div>\r\n </mat-step>\r\n</mat-stepper>\r\n", styles: [".mat-stepper-horizontal{height:-moz-fit-content;height:fit-content;max-height:750px;margin:0 auto;width:70%;background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container{margin:0 auto;width:800px}.mat-stepper-horizontal .mat-step-icon{width:18px;height:18px;border:3px solid hsl(0,0%,50.2%)}.mat-stepper-horizontal .mat-step-icon-selected{background-color:#c6c6c6!important;border-color:#19487d}.mat-stepper-horizontal .mat-step-icon-state-number{background-color:#fff}.mat-stepper-horizontal .mat-step-icon-state-edit,.mat-stepper-horizontal .mat-step-header .mat-step-icon-state-done{background-color:#1170cf;border-color:#1170cf}.mat-stepper-horizontal .mat-step-icon-content{display:none}.mat-stepper-horizontal .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):before,.mat-stepper-horizontal [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):before,.mat-stepper-horizontal .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):after,.mat-stepper-horizontal [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):after{border-top-width:3px!important}.mat-stepper-horizontal .mat-horizontal-stepper-header:before,.mat-stepper-horizontal .mat-horizontal-stepper-header:after,.mat-stepper-horizontal .mat-stepper-horizontal-line{border-top-width:3px!important;background-color:#7b7b7b}::ng-deep .mat-step-header[aria-labelledby=disabled_af]{pointer-events:none!important;cursor:not-allowed}::ng-deep .mat-step-header[aria-labelledby=disabled_af] .mat-step-icon,::ng-deep .mat-step-header[aria-labelledby=disabled_af] .mat-step-label{cursor:not-allowed;opacity:.6}.mat-mdc-form-field{margin-top:16px}.mat-label{font-size:16px;font-weight:600;margin:1rem 0}.step-title{font-size:28px;font-weight:700;margin:.5rem 0 1.5rem 2rem}.validation-text{margin-top:.5rem;margin-bottom:2rem}ul{padding:.5rem 2rem;margin-top:.5rem;margin-bottom:2rem}form{background-color:#fff;padding:2.5rem;min-height:350px;border-radius:.5rem}.form-link{text-decoration:none;color:#007bff}.radio-group{display:flex;flex-direction:column;margin:15px 0;align-items:flex-start}.radio-button{margin:.5rem 0}.select{width:350px;padding:.5rem;margin:.5rem 0;border:1px solid #a0a0a0;border-radius:.5rem}.step-actions{display:flex;flex-flow:row-reverse;margin-top:2rem;gap:1rem}.webex-btn{border:1px solid black;border-radius:1rem;cursor:pointer;gap:1rem}.btn-next{background-color:#000;color:#fff}.btn-cancel,.btn-done{background-color:#fff;color:#000}.select-container{position:relative}.select-container .mat-progress-spinner{position:absolute;left:45%;top:35px}.invisible-next-btn{height:1px;width:1px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.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: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i10.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i10.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i10.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: "directive", type: i10.MatStepperNext, selector: "button[matStepperNext]", inputs: ["type"] }, { kind: "directive", type: i10.MatStepperPrevious, selector: "button[matStepperPrevious]", inputs: ["type"] }, { kind: "component", type: i11.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i12.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "directive", type: i13.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i13.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "component", type: i14.AppLoaderComponent, selector: "app-loader" }] });
83
94
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserStepperComponent, decorators: [{
84
95
  type: Component,
85
- args: [{ selector: 'app-move-user-stepper', template: "<mat-stepper *ngIf=\"user?.moveType\" [linear]=\"isLinear\" labelPosition=\"bottom\" #stepper>\r\n <mat-step>\r\n <div class=\"step-title\">Step 1: Select location</div>\r\n<!-- <form>-->\r\n <ng-template matStepLabel>Select location</ng-template>\r\n <mat-label class=\"mat-label\">Phone number</mat-label>\r\n <mat-radio-group\r\n class=\"radio-group\"\r\n [(ngModel)]=\"user.moveType.phoneNumber\"\r\n name=\"phoneNumber\" (change)=\"selectPhoneNumberMigrationType($event)\">\r\n <mat-radio-button class=\"radio-button\" value=\"1\" color=\"primary\">Keep current number {{currentNumber}}</mat-radio-button>\r\n <mat-radio-button class=\"radio-button\" value=\"2\" color=\"primary\">Select a new number</mat-radio-button>\r\n\r\n <div *ngIf=\"user.moveType.phoneNumber === '2'\" class=\"select-container\">\r\n <mat-progress-spinner *ngIf=\"phoneNumberPending\"\r\n class=\"field-spinner\" mode=\"indeterminate\"\r\n [diameter]=\"30\"></mat-progress-spinner>\r\n\r\n <mat-select class=\"select\" placeholder=\"Select number\" [(ngModel)]=\"user.newNumber\"\r\n (selectionChange)=\"onPhoneNumberChange($event)\">\r\n <mat-option *ngFor=\"let option of dnsService.phoneNumbers\" value=\"option\">{{option}}</mat-option>\r\n </mat-select>\r\n </div>\r\n\r\n <mat-radio-button class=\"radio-button\" value=\"3\" color=\"primary\">Remove number</mat-radio-button>\r\n </mat-radio-group>\r\n <mat-label class=\"mat-label\">Extension</mat-label>\r\n <mat-radio-group class=\"radio-group\" name=\"extension\"\r\n [(ngModel)]=\"user.moveType.extension\">\r\n <mat-radio-button class=\"radio-button\" value=\"1\" color=\"primary\">Keep current extension</mat-radio-button>\r\n <mat-radio-button class=\"radio-button\" value=\"2\" color=\"primary\">Select a new extension</mat-radio-button>\r\n <mat-form-field *ngIf=\"user.moveType.extension === '2'\" appearance=\"outline\">\r\n <input matInput type=\"text\" (change)=\"onExtensionCHange($event)\"\r\n [(ngModel)]=\"user.newExtension\"\r\n [placeholder]=\"'Enter extension'\" />\r\n </mat-form-field>\r\n\r\n <mat-radio-button class=\"radio-button\" value=\"3\" color=\"primary\">Remove extension</mat-radio-button>\r\n </mat-radio-group>\r\n<!-- </form>-->\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\" matStepperNext (click)=\"goNextStep(stepper)\">Next</button>\r\n <button mat-button class=\"webex-btn btn-cancel\" (click)=\"cancel.emit()\">Cancel</button>\r\n </div>\r\n </mat-step>\r\n <mat-step [aria-labelledby]=\"'disabled_af'\">\r\n <div class=\"step-title\">Step 2: Device eligibility check</div>\r\n <ng-template matStepLabel>Device eligibility check</ng-template>\r\n <form></form>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\" matStepperNext (click)=\"goNextStep(stepper)\">Next</button>\r\n <button mat-button class=\"webex-btn btn-cancel\" matStepperPrevious>Previous</button>\r\n </div>\r\n </mat-step>\r\n <mat-step [aria-labelledby]=\"'disabled_af'\">\r\n <div class=\"step-title\">Step 3: Validation</div>\r\n <form>\r\n <ng-template matStepLabel>Validation</ng-template>\r\n <mat-label class=\"mat-label\">Validation Success!</mat-label>\r\n <p class=\"validation-text\">There is no issue for moving this user to the new location, $MTlocationname. Please be aware of the changes below once the user is being moved to the new location.</p>\r\n <mat-label class=\"mat-label\">Expected changes</mat-label>\r\n <ul>\r\n <li>Tablet device (TABAVICK) needs to be reconfigured with Webex App. User will receive an email with link to download.</li>\r\n <li>Cisco 8875 (SEP751FC9BAB854) will not be migrated.</li>\r\n <li>The user will be removed from Call Park Group.</li>\r\n <li>If the device is using the location level device settings, the device will pick up the new location device settings once the user is moved. If some of the device settings are overwritten at the user level, these user level settings will be retained and the rest of the settings will be picked up at the higher level (organization or location) settings.</li>\r\n <li>If the current location has a different recording service from the one of the new location, the recording of this user may be lost after moving location.</li>\r\n </ul>\r\n <div>\r\n <mat-checkbox class=\"checkbox\" checked=\"true\" color=\"primary\">I confirm that I understand these conditions. I acknowledge the changes.</mat-checkbox>\r\n </div>\r\n </form>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\" matStepperNext (click)=\"goNextStep(stepper)\">Next</button>\r\n <button mat-button class=\"webex-btn btn-cancel\" matStepperPrevious>Previous</button>\r\n </div>\r\n </mat-step>\r\n <mat-step>\r\n <div class=\"step-title\">Step 2: Result</div>\r\n <ng-template matStepLabel>Result</ng-template>\r\n <form>\r\n <mat-label class=\"mat-label\">Moving user has been successfully initiated!</mat-label>\r\n <p class=\"validation-text\">\r\n The user will be moved to the new location, Paris.\r\n <br>\r\n For the progress of move, please visit the <a class=\"form-link\" href=\"#\">user details</a>.\r\n </p>\r\n </form>\r\n <div class=\"step-actions\">\r\n<!-- <button mat-button class=\"webex-btn btn-done\" matStepperNext (click)=\"cancel.emit()\">Done</button>-->\r\n <button mat-button class=\"webex-btn btn-done\" matStepperNext (click)=\"runMoveUser.emit()\">Done</button>\r\n <button mat-button class=\"webex-btn btn-cancel\" matStepperPrevious>Previous</button>\r\n </div>\r\n </mat-step>\r\n </mat-stepper>\r\n", styles: [".mat-stepper-horizontal{height:-moz-fit-content;height:fit-content;max-height:750px;margin:0 auto;width:70%;background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container{margin:0 auto;width:800px}.mat-stepper-horizontal .mat-step-icon{width:18px;height:18px;border:3px solid hsl(0,0%,50.2%)}.mat-stepper-horizontal .mat-step-icon-selected{background-color:#c6c6c6!important;border-color:#19487d}.mat-stepper-horizontal .mat-step-icon-state-number{background-color:#fff}.mat-stepper-horizontal .mat-step-icon-state-edit,.mat-stepper-horizontal .mat-step-header .mat-step-icon-state-done{background-color:#1170cf;border-color:#1170cf}.mat-stepper-horizontal .mat-step-icon-content{display:none}.mat-stepper-horizontal .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):before,.mat-stepper-horizontal [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):before,.mat-stepper-horizontal .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):after,.mat-stepper-horizontal [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):after{border-top-width:3px!important}.mat-stepper-horizontal .mat-horizontal-stepper-header:before,.mat-stepper-horizontal .mat-horizontal-stepper-header:after,.mat-stepper-horizontal .mat-stepper-horizontal-line{border-top-width:3px!important;background-color:#7b7b7b}::ng-deep .mat-step-header[aria-labelledby=disabled_af]{pointer-events:none!important;cursor:not-allowed}::ng-deep .mat-step-header[aria-labelledby=disabled_af] .mat-step-icon,::ng-deep .mat-step-header[aria-labelledby=disabled_af] .mat-step-label{cursor:not-allowed;opacity:.6}.mat-mdc-form-field{margin-top:16px}.mat-label{font-size:16px;font-weight:600;margin:1rem 0}.step-title{font-size:28px;font-weight:700;margin:.5rem 0 1.5rem 2rem}.validation-text{margin-top:.5rem;margin-bottom:2rem}ul{padding:.5rem 2rem;margin-top:.5rem;margin-bottom:2rem}form{background-color:#fff;padding:2.5rem;min-height:350px;border-radius:.5rem}.form-link{text-decoration:none;color:#007bff}.radio-group{display:flex;flex-direction:column;margin:15px 0;align-items:flex-start}.radio-button{margin:.5rem 0}.select{width:350px;padding:.5rem;margin:.5rem 0;border:1px solid #a0a0a0;border-radius:.5rem}.step-actions{display:flex;flex-flow:row-reverse;margin-top:2rem;gap:1rem}.webex-btn{border:1px solid black;border-radius:1rem;cursor:pointer;gap:1rem}.btn-next{background-color:#000;color:#fff}.btn-cancel,.btn-done{background-color:#fff;color:#000}.select-container{position:relative}.select-container .mat-progress-spinner{position:absolute;left:45%;top:35px}\n"] }]
86
- }], ctorParameters: function () { return [{ type: i1.DnsService }]; }, propDecorators: { user: [{
96
+ args: [{ selector: 'app-move-user-stepper', template: "<app-loader *ngIf=\"moveUserPending\"></app-loader>\r\n<mat-stepper *ngIf=\"user?.moveType\" [linear]=\"isLinear\" labelPosition=\"bottom\" #stepper>\r\n <mat-step>\r\n <div class=\"step-title\">Step 1: Select location</div>\r\n <!-- <form>-->\r\n <ng-template matStepLabel>Select location</ng-template>\r\n <mat-label class=\"mat-label\">Phone number</mat-label>\r\n <mat-radio-group\r\n class=\"radio-group\"\r\n [(ngModel)]=\"user.moveType.phoneNumber\"\r\n name=\"phoneNumber\" (change)=\"selectPhoneNumberMigrationType($event)\">\r\n <mat-radio-button class=\"radio-button\" value=\"1\" color=\"primary\">Keep current number {{currentNumber}}</mat-radio-button>\r\n <mat-radio-button class=\"radio-button\" value=\"2\" color=\"primary\">Select a new number</mat-radio-button>\r\n\r\n <div *ngIf=\"user.moveType.phoneNumber === '2'\" class=\"select-container\">\r\n <mat-progress-spinner *ngIf=\"phoneNumberPending\"\r\n class=\"field-spinner\" mode=\"indeterminate\"\r\n [diameter]=\"30\"></mat-progress-spinner>\r\n\r\n <mat-select class=\"select\" placeholder=\"Select number\" [(ngModel)]=\"user.newNumber\"\r\n (selectionChange)=\"onPhoneNumberChange($event)\">\r\n <mat-option *ngFor=\"let option of dnsService.phoneNumbers\" value=\"option\">{{option}}</mat-option>\r\n </mat-select>\r\n </div>\r\n\r\n <mat-radio-button class=\"radio-button\" value=\"3\" color=\"primary\">Remove number</mat-radio-button>\r\n </mat-radio-group>\r\n <mat-label class=\"mat-label\">Extension</mat-label>\r\n <mat-radio-group class=\"radio-group\" name=\"extension\"\r\n [(ngModel)]=\"user.moveType.extension\">\r\n <mat-radio-button class=\"radio-button\" value=\"1\" color=\"primary\">Keep current extension</mat-radio-button>\r\n <mat-radio-button class=\"radio-button\" value=\"2\" color=\"primary\">Select a new extension</mat-radio-button>\r\n <mat-form-field *ngIf=\"user.moveType.extension === '2'\" appearance=\"outline\">\r\n <input matInput type=\"text\" (change)=\"onExtensionCHange($event)\"\r\n [(ngModel)]=\"user.newExtension\"\r\n [placeholder]=\"'Enter extension'\" />\r\n </mat-form-field>\r\n\r\n <mat-radio-button class=\"radio-button\" value=\"3\" color=\"primary\">Remove extension</mat-radio-button>\r\n </mat-radio-group>\r\n <!-- </form>-->\r\n <button #nextAfterMoveBtn mat-button class=\"invisible-next-btn\" matStepperNext (click)=\"goNextStep(stepper)\"></button>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\" (click)=\"onMoveUser(stepper)\">Move</button>\r\n <button mat-button class=\"webex-btn btn-cancel\" (click)=\"cancel.emit()\">Cancel</button>\r\n </div>\r\n </mat-step>\r\n <mat-step [aria-labelledby]=\"'disabled_af'\">\r\n <div class=\"step-title\">Step 2: Device eligibility check</div>\r\n <ng-template matStepLabel>Device eligibility check</ng-template>\r\n <form></form>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\" matStepperNext (click)=\"goNextStep(stepper)\">Next</button>\r\n <button mat-button class=\"webex-btn btn-cancel\" matStepperPrevious>Previous</button>\r\n </div>\r\n </mat-step>\r\n <mat-step [aria-labelledby]=\"'disabled_af'\">\r\n <div class=\"step-title\">Step 3: Validation</div>\r\n <form>\r\n <ng-template matStepLabel>Validation</ng-template>\r\n <mat-label class=\"mat-label\">Validation Success!</mat-label>\r\n <p class=\"validation-text\">There is no issue for moving this user to the new location, $MTlocationname. Please be aware of the changes below once the user is being moved to the new location.</p>\r\n <mat-label class=\"mat-label\">Expected changes</mat-label>\r\n <ul>\r\n <li>Tablet device (TABAVICK) needs to be reconfigured with Webex App. User will receive an email with link to download.</li>\r\n <li>Cisco 8875 (SEP751FC9BAB854) will not be migrated.</li>\r\n <li>The user will be removed from Call Park Group.</li>\r\n <li>If the device is using the location level device settings, the device will pick up the new location device settings once the user is moved. If some of the device settings are overwritten at the user level, these user level settings will be retained and the rest of the settings will be picked up at the higher level (organization or location) settings.</li>\r\n <li>If the current location has a different recording service from the one of the new location, the recording of this user may be lost after moving location.</li>\r\n </ul>\r\n <div>\r\n <mat-checkbox class=\"checkbox\" checked=\"true\" color=\"primary\">I confirm that I understand these conditions. I acknowledge the changes.</mat-checkbox>\r\n </div>\r\n </form>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\" matStepperNext (click)=\"goNextStep(stepper)\">Next</button>\r\n <button mat-button class=\"webex-btn btn-cancel\" matStepperPrevious>Previous</button>\r\n </div>\r\n </mat-step>\r\n <mat-step>\r\n <div class=\"step-title\">Step 4: Result</div>\r\n <ng-template matStepLabel>Result</ng-template>\r\n <form>\r\n <mat-label class=\"mat-label\">Moving user has been successfully initiated!</mat-label>\r\n <p class=\"validation-text\">\r\n The user will be moved to the new location, $MTlocationname.\r\n <br>\r\n For the progress of move, please visit the <a class=\"form-link\" href=\"#\">user details</a>.\r\n </p>\r\n </form>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-done\" (click)=\"done.emit(true)\">Done</button>\r\n </div>\r\n </mat-step>\r\n</mat-stepper>\r\n", styles: [".mat-stepper-horizontal{height:-moz-fit-content;height:fit-content;max-height:750px;margin:0 auto;width:70%;background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container{margin:0 auto;width:800px}.mat-stepper-horizontal .mat-step-icon{width:18px;height:18px;border:3px solid hsl(0,0%,50.2%)}.mat-stepper-horizontal .mat-step-icon-selected{background-color:#c6c6c6!important;border-color:#19487d}.mat-stepper-horizontal .mat-step-icon-state-number{background-color:#fff}.mat-stepper-horizontal .mat-step-icon-state-edit,.mat-stepper-horizontal .mat-step-header .mat-step-icon-state-done{background-color:#1170cf;border-color:#1170cf}.mat-stepper-horizontal .mat-step-icon-content{display:none}.mat-stepper-horizontal .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):before,.mat-stepper-horizontal [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):before,.mat-stepper-horizontal .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):after,.mat-stepper-horizontal [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):after{border-top-width:3px!important}.mat-stepper-horizontal .mat-horizontal-stepper-header:before,.mat-stepper-horizontal .mat-horizontal-stepper-header:after,.mat-stepper-horizontal .mat-stepper-horizontal-line{border-top-width:3px!important;background-color:#7b7b7b}::ng-deep .mat-step-header[aria-labelledby=disabled_af]{pointer-events:none!important;cursor:not-allowed}::ng-deep .mat-step-header[aria-labelledby=disabled_af] .mat-step-icon,::ng-deep .mat-step-header[aria-labelledby=disabled_af] .mat-step-label{cursor:not-allowed;opacity:.6}.mat-mdc-form-field{margin-top:16px}.mat-label{font-size:16px;font-weight:600;margin:1rem 0}.step-title{font-size:28px;font-weight:700;margin:.5rem 0 1.5rem 2rem}.validation-text{margin-top:.5rem;margin-bottom:2rem}ul{padding:.5rem 2rem;margin-top:.5rem;margin-bottom:2rem}form{background-color:#fff;padding:2.5rem;min-height:350px;border-radius:.5rem}.form-link{text-decoration:none;color:#007bff}.radio-group{display:flex;flex-direction:column;margin:15px 0;align-items:flex-start}.radio-button{margin:.5rem 0}.select{width:350px;padding:.5rem;margin:.5rem 0;border:1px solid #a0a0a0;border-radius:.5rem}.step-actions{display:flex;flex-flow:row-reverse;margin-top:2rem;gap:1rem}.webex-btn{border:1px solid black;border-radius:1rem;cursor:pointer;gap:1rem}.btn-next{background-color:#000;color:#fff}.btn-cancel,.btn-done{background-color:#fff;color:#000}.select-container{position:relative}.select-container .mat-progress-spinner{position:absolute;left:45%;top:35px}.invisible-next-btn{height:1px;width:1px}\n"] }]
97
+ }], ctorParameters: function () { return [{ type: i1.DnsService }, { type: i2.UserService }]; }, propDecorators: { nextAfterMoveBtn: [{
98
+ type: ViewChild,
99
+ args: ['nextAfterMoveBtn']
100
+ }], done: [{
101
+ type: Output
102
+ }], user: [{
87
103
  type: Input
88
104
  }], customerId: [{
89
105
  type: Input
@@ -92,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
92
108
  }], cancel: [{
93
109
  type: Output
94
110
  }] } });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS11c2VyLXN0ZXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXJzLWxpc3Qvc3JjL21vdmUtdXNlci13aXphcmQvbW92ZS11c2VyLXN0ZXBwZXIvbW92ZS11c2VyLXN0ZXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXJzLWxpc3Qvc3JjL21vdmUtdXNlci13aXphcmQvbW92ZS11c2VyLXN0ZXBwZXIvbW92ZS11c2VyLXN0ZXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFJL0UsZ0JBQWdCO0FBQ2hCLE1BQU0sUUFBUSxHQUFHLG9GQUFvRixDQUFDO0FBT3RHLE1BQU0sT0FBTyx3QkFBd0I7SUFZbkMsSUFBSSxhQUFhO1FBQ2YsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDcEgsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDO1NBQ2pGO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsWUFDUyxVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBZC9CLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVqQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM1QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLHVCQUFrQixHQUFHLEtBQUssQ0FBQztJQVkzQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHO2dCQUNuQixXQUFXLEVBQUUsR0FBRztnQkFDaEIsU0FBUyxFQUFFLEdBQUc7YUFDZixDQUFBO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVU7UUFDckIsK0NBQStDO1FBQy9DOztXQUVHO0lBQ0wsQ0FBQztJQUVELDhCQUE4QixDQUFDLEtBQVU7UUFDdkMsSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssR0FBRyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFVO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFBO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFVO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUMxQyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDO1NBQ3ZFO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQzthQUN6RCxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztRQUNsQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBbUI7UUFFNUIsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUUxQyxJQUFJLFdBQVcsS0FBSyxDQUFDLEVBQUU7WUFBRSxPQUFPLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztTQUFFO1FBQ3JELDZEQUE2RDtRQUU3RDtZQUNFLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FFckIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxRCxDQUFDOztzSEFqRlUsd0JBQXdCOzBHQUF4Qix3QkFBd0IsNEtDWnJDLCttTUErRkE7NEZEbkZhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSx1QkFBdUI7aUdBT2pDLElBQUk7c0JBREgsS0FBSztnQkFHTixVQUFVO3NCQURULEtBQUs7Z0JBR04sV0FBVztzQkFEVixNQUFNO2dCQUdQLE1BQU07c0JBREwsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBEbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZG5zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXRTdGVwcGVyIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3N0ZXBwZXJcIjtcclxuLy8gZm9yIHRlc3Qgb25seVxyXG5jb25zdCBMT0NBVElPTiA9ICdZMmx6WTI5emNHRnlhem92TDNWekwweFBRMEZVU1U5T0x6RTJZalkwTmpsakxUQmpabVF0TkRKak1TMWlPV0pqTFRVeU4yRmxaVE5oTjJSbE9RJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbW92ZS11c2VyLXN0ZXBwZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tb3ZlLXVzZXItc3RlcHBlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbW92ZS11c2VyLXN0ZXBwZXIuY29tcG9uZW50LnNjc3MnXVxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIE1vdmVVc2VyU3RlcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KClcclxuICB1c2VyOiBhbnk7XHJcbiAgQElucHV0KClcclxuICBjdXN0b21lcklkITogbnVtYmVyO1xyXG4gIEBPdXRwdXQoKVxyXG4gIHJ1bk1vdmVVc2VyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBpc0xpbmVhciA9IGZhbHNlO1xyXG4gIHBob25lTnVtYmVyUGVuZGluZyA9IGZhbHNlO1xyXG5cclxuICBnZXQgY3VycmVudE51bWJlcigpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMudXNlcj8uZGV2aWNlcz8ubGVuZ3RoICYmIHRoaXMudXNlci5kZXZpY2VzWzBdPy5saW5lQXNzb2NpYXRpb25zICYmIHRoaXMudXNlci5kZXZpY2VzWzBdLmxpbmVBc3NvY2lhdGlvbnNbMF0pIHtcclxuICAgICAgcmV0dXJuIHRoaXMudXNlci5kZXZpY2VzWzBdLmxpbmVBc3NvY2lhdGlvbnNbMF0uZGlyZWN0b3J5TnVtYmVyLmRpcmVjdG9yeU51bWJlcjtcclxuICAgIH1cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGRuc1NlcnZpY2U6IERuc1NlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMudXNlcikge1xyXG4gICAgICB0aGlzLnVzZXIubW92ZVR5cGUgPSB7XHJcbiAgICAgICAgcGhvbmVOdW1iZXI6ICcxJyxcclxuICAgICAgICBleHRlbnNpb246ICcxJ1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblN0ZXBDaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgLy8gYWxlcnQoJ3N0ZXAgY2hhbmdlICcgKyBldmVudC5zZWxlY3RlZEluZGV4KTtcclxuICAgIC8qaWYgKGV2ZW50LnNlbGVjdGVkSW5kZXggPT09IDQpIHtcclxuICAgICAgdGhpcy5ydW5Nb3ZlVXNlci5lbWl0KCk7XHJcbiAgICB9Ki9cclxuICB9XHJcblxyXG4gIHNlbGVjdFBob25lTnVtYmVyTWlncmF0aW9uVHlwZShldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoZXZlbnQudmFsdWUgJiYgZXZlbnQudmFsdWUgPT09ICcyJykge1xyXG4gICAgICB0aGlzLmdldFBob25lTnVtYmVycygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25QaG9uZU51bWJlckNoYW5nZShldmVudDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnVzZXIubmV3TnVtYmVyXHJcbiAgfVxyXG5cclxuICBvbkV4dGVuc2lvbkNIYW5nZShldmVudDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnVzZXIubmV3RXh0ZW5zaW9uXHJcbiAgfVxyXG5cclxuICBpc0ZpZWxkQXZhaWxhYmxlKHR5cGU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMudXNlcj8ubW92ZVR5cGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMudXNlci5tb3ZlVHlwZVt0eXBlXSAmJiB0aGlzLnVzZXIubW92ZVR5cGVbdHlwZV0gPT09IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGhvbmVOdW1iZXJzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5waG9uZU51bWJlclBlbmRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5kbnNTZXJ2aWNlLmZldGNoUGhvbmVOdW1iZXJzKHRoaXMuY3VzdG9tZXJJZCwgTE9DQVRJT04pXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMucGhvbmVOdW1iZXJQZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgIH0sICgpID0+IHRoaXMucGhvbmVOdW1iZXJQZW5kaW5nID0gZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgZ29OZXh0U3RlcChzdGVwcGVyOiBNYXRTdGVwcGVyKSB7XHJcblxyXG4gICAgY29uc3QgY3VycmVudFN0ZXAgPSBzdGVwcGVyLnNlbGVjdGVkSW5kZXg7XHJcblxyXG4gICAgaWYgKGN1cnJlbnRTdGVwID09PSAxKSB7IHN0ZXBwZXIuc2VsZWN0ZWRJbmRleCA9IDM7IH1cclxuICAgIC8vIGVsc2UgaWYgKGN1cnJlbnRTdGVwID09PSAzKSB7IHN0ZXBwZXIuc2VsZWN0ZWRJbmRleCA9IDA7IH1cclxuXHJcbiAgICBbXHJcbiAgICAgIHN0ZXBwZXIuc3RlcHMuZ2V0KDEpLFxyXG4gICAgICBzdGVwcGVyLnN0ZXBzLmdldCgyKVxyXG5cclxuICAgIF0ubWFwKHN0ZXAgPT4gc3RlcCA/IHN0ZXAuY29tcGxldGVkID0gdHJ1ZSA6IHVuZGVmaW5lZCk7XHJcbiAgfVxyXG59XHJcbiIsIjxtYXQtc3RlcHBlciAqbmdJZj1cInVzZXI/Lm1vdmVUeXBlXCIgW2xpbmVhcl09XCJpc0xpbmVhclwiIGxhYmVsUG9zaXRpb249XCJib3R0b21cIiAjc3RlcHBlcj5cclxuICAgIDxtYXQtc3RlcD5cclxuICAgICAgPGRpdiBjbGFzcz1cInN0ZXAtdGl0bGVcIj5TdGVwIDE6IFNlbGVjdCBsb2NhdGlvbjwvZGl2PlxyXG48IS0tICAgICAgPGZvcm0+LS0+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFN0ZXBMYWJlbD5TZWxlY3QgbG9jYXRpb248L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJtYXQtbGFiZWxcIj5QaG9uZSBudW1iZXI8L21hdC1sYWJlbD5cclxuICAgICAgICA8bWF0LXJhZGlvLWdyb3VwXHJcbiAgICAgICAgICBjbGFzcz1cInJhZGlvLWdyb3VwXCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwidXNlci5tb3ZlVHlwZS5waG9uZU51bWJlclwiXHJcbiAgICAgICAgICBuYW1lPVwicGhvbmVOdW1iZXJcIiAoY2hhbmdlKT1cInNlbGVjdFBob25lTnVtYmVyTWlncmF0aW9uVHlwZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjbGFzcz1cInJhZGlvLWJ1dHRvblwiIHZhbHVlPVwiMVwiIGNvbG9yPVwicHJpbWFyeVwiPktlZXAgY3VycmVudCBudW1iZXIge3tjdXJyZW50TnVtYmVyfX08L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjbGFzcz1cInJhZGlvLWJ1dHRvblwiIHZhbHVlPVwiMlwiIGNvbG9yPVwicHJpbWFyeVwiPlNlbGVjdCBhIG5ldyBudW1iZXI8L21hdC1yYWRpby1idXR0b24+XHJcblxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cInVzZXIubW92ZVR5cGUucGhvbmVOdW1iZXIgPT09ICcyJ1wiIGNsYXNzPVwic2VsZWN0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8bWF0LXByb2dyZXNzLXNwaW5uZXIgKm5nSWY9XCJwaG9uZU51bWJlclBlbmRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmaWVsZC1zcGlubmVyXCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RpYW1ldGVyXT1cIjMwXCI+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cclxuXHJcbiAgICAgICAgICAgIDxtYXQtc2VsZWN0IGNsYXNzPVwic2VsZWN0XCIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgbnVtYmVyXCIgWyhuZ01vZGVsKV09XCJ1c2VyLm5ld051bWJlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25QaG9uZU51bWJlckNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBkbnNTZXJ2aWNlLnBob25lTnVtYmVyc1wiIHZhbHVlPVwib3B0aW9uXCI+e3tvcHRpb259fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY2xhc3M9XCJyYWRpby1idXR0b25cIiB2YWx1ZT1cIjNcIiBjb2xvcj1cInByaW1hcnlcIj5SZW1vdmUgbnVtYmVyPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJtYXQtbGFiZWxcIj5FeHRlbnNpb248L21hdC1sYWJlbD5cclxuICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIGNsYXNzPVwicmFkaW8tZ3JvdXBcIiBuYW1lPVwiZXh0ZW5zaW9uXCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwidXNlci5tb3ZlVHlwZS5leHRlbnNpb25cIj5cclxuICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwicmFkaW8tYnV0dG9uXCIgdmFsdWU9XCIxXCIgY29sb3I9XCJwcmltYXJ5XCI+S2VlcCBjdXJyZW50IGV4dGVuc2lvbjwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwicmFkaW8tYnV0dG9uXCIgdmFsdWU9XCIyXCIgY29sb3I9XCJwcmltYXJ5XCI+U2VsZWN0IGEgbmV3IGV4dGVuc2lvbjwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cInVzZXIubW92ZVR5cGUuZXh0ZW5zaW9uID09PSAnMidcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiAoY2hhbmdlKT1cIm9uRXh0ZW5zaW9uQ0hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ1c2VyLm5ld0V4dGVuc2lvblwiXHJcbiAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0VudGVyIGV4dGVuc2lvbidcIiAvPlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjbGFzcz1cInJhZGlvLWJ1dHRvblwiIHZhbHVlPVwiM1wiIGNvbG9yPVwicHJpbWFyeVwiPlJlbW92ZSBleHRlbnNpb248L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbjwhLS0gICAgICA8L2Zvcm0+LS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdGVwLWFjdGlvbnNcIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJ3ZWJleC1idG4gYnRuLW5leHRcIiBtYXRTdGVwcGVyTmV4dCAoY2xpY2spPVwiZ29OZXh0U3RlcChzdGVwcGVyKVwiPk5leHQ8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJ3ZWJleC1idG4gYnRuLWNhbmNlbFwiIChjbGljayk9XCJjYW5jZWwuZW1pdCgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtc3RlcD5cclxuICAgIDxtYXQtc3RlcCBbYXJpYS1sYWJlbGxlZGJ5XT1cIidkaXNhYmxlZF9hZidcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN0ZXAtdGl0bGVcIj5TdGVwIDI6IERldmljZSBlbGlnaWJpbGl0eSBjaGVjazwvZGl2PlxyXG4gICAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPkRldmljZSBlbGlnaWJpbGl0eSBjaGVjazwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxmb3JtPjwvZm9ybT5cclxuICAgICAgPGRpdiBjbGFzcz1cInN0ZXAtYWN0aW9uc1wiPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cIndlYmV4LWJ0biBidG4tbmV4dFwiIG1hdFN0ZXBwZXJOZXh0IChjbGljayk9XCJnb05leHRTdGVwKHN0ZXBwZXIpXCI+TmV4dDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cIndlYmV4LWJ0biBidG4tY2FuY2VsXCIgbWF0U3RlcHBlclByZXZpb3VzPlByZXZpb3VzPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtc3RlcD5cclxuICAgIDxtYXQtc3RlcCBbYXJpYS1sYWJlbGxlZGJ5XT1cIidkaXNhYmxlZF9hZidcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN0ZXAtdGl0bGVcIj5TdGVwIDM6IFZhbGlkYXRpb248L2Rpdj5cclxuICAgICAgPGZvcm0+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFN0ZXBMYWJlbD5WYWxpZGF0aW9uPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bWF0LWxhYmVsIGNsYXNzPVwibWF0LWxhYmVsXCI+VmFsaWRhdGlvbiBTdWNjZXNzITwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxwIGNsYXNzPVwidmFsaWRhdGlvbi10ZXh0XCI+VGhlcmUgaXMgbm8gaXNzdWUgZm9yIG1vdmluZyB0aGlzIHVzZXIgdG8gdGhlIG5ldyBsb2NhdGlvbiwgJE1UbG9jYXRpb25uYW1lLiBQbGVhc2UgYmUgYXdhcmUgb2YgdGhlIGNoYW5nZXMgYmVsb3cgb25jZSB0aGUgdXNlciBpcyBiZWluZyBtb3ZlZCB0byB0aGUgbmV3IGxvY2F0aW9uLjwvcD5cclxuICAgICAgICA8bWF0LWxhYmVsIGNsYXNzPVwibWF0LWxhYmVsXCI+RXhwZWN0ZWQgY2hhbmdlczwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDx1bD5cclxuICAgICAgICAgIDxsaT5UYWJsZXQgZGV2aWNlIChUQUJBVklDSykgbmVlZHMgdG8gYmUgcmVjb25maWd1cmVkIHdpdGggV2ViZXggQXBwLiBVc2VyIHdpbGwgcmVjZWl2ZSBhbiBlbWFpbCB3aXRoIGxpbmsgdG8gZG93bmxvYWQuPC9saT5cclxuICAgICAgICAgIDxsaT5DaXNjbyA4ODc1IChTRVA3NTFGQzlCQUI4NTQpIHdpbGwgbm90IGJlIG1pZ3JhdGVkLjwvbGk+XHJcbiAgICAgICAgICA8bGk+VGhlIHVzZXIgd2lsbCBiZSByZW1vdmVkIGZyb20gQ2FsbCBQYXJrIEdyb3VwLjwvbGk+XHJcbiAgICAgICAgICA8bGk+SWYgdGhlIGRldmljZSBpcyB1c2luZyB0aGUgbG9jYXRpb24gbGV2ZWwgZGV2aWNlIHNldHRpbmdzLCB0aGUgZGV2aWNlIHdpbGwgcGljayB1cCB0aGUgbmV3IGxvY2F0aW9uIGRldmljZSBzZXR0aW5ncyBvbmNlIHRoZSB1c2VyIGlzIG1vdmVkLiBJZiBzb21lIG9mIHRoZSBkZXZpY2Ugc2V0dGluZ3MgYXJlIG92ZXJ3cml0dGVuIGF0IHRoZSB1c2VyIGxldmVsLCB0aGVzZSB1c2VyIGxldmVsIHNldHRpbmdzIHdpbGwgYmUgcmV0YWluZWQgYW5kIHRoZSByZXN0IG9mIHRoZSBzZXR0aW5ncyB3aWxsIGJlIHBpY2tlZCB1cCBhdCB0aGUgaGlnaGVyIGxldmVsIChvcmdhbml6YXRpb24gb3IgbG9jYXRpb24pIHNldHRpbmdzLjwvbGk+XHJcbiAgICAgICAgICA8bGk+SWYgdGhlIGN1cnJlbnQgbG9jYXRpb24gaGFzIGEgZGlmZmVyZW50IHJlY29yZGluZyBzZXJ2aWNlIGZyb20gdGhlIG9uZSBvZiB0aGUgbmV3IGxvY2F0aW9uLCB0aGUgcmVjb3JkaW5nIG9mIHRoaXMgdXNlciBtYXkgYmUgbG9zdCBhZnRlciBtb3ZpbmcgbG9jYXRpb24uPC9saT5cclxuICAgICAgICA8L3VsPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8bWF0LWNoZWNrYm94IGNsYXNzPVwiY2hlY2tib3hcIiBjaGVja2VkPVwidHJ1ZVwiIGNvbG9yPVwicHJpbWFyeVwiPkkgY29uZmlybSB0aGF0IEkgdW5kZXJzdGFuZCB0aGVzZSBjb25kaXRpb25zLiBJIGFja25vd2xlZGdlIHRoZSBjaGFuZ2VzLjwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Zvcm0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdGVwLWFjdGlvbnNcIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJ3ZWJleC1idG4gYnRuLW5leHRcIiBtYXRTdGVwcGVyTmV4dCAoY2xpY2spPVwiZ29OZXh0U3RlcChzdGVwcGVyKVwiPk5leHQ8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJ3ZWJleC1idG4gYnRuLWNhbmNlbFwiIG1hdFN0ZXBwZXJQcmV2aW91cz5QcmV2aW91czwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LXN0ZXA+XHJcbiAgICA8bWF0LXN0ZXA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdGVwLXRpdGxlXCI+U3RlcCAyOiBSZXN1bHQ8L2Rpdj5cclxuICAgICAgPG5nLXRlbXBsYXRlIG1hdFN0ZXBMYWJlbD5SZXN1bHQ8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8Zm9ybT5cclxuICAgICAgICA8bWF0LWxhYmVsIGNsYXNzPVwibWF0LWxhYmVsXCI+TW92aW5nIHVzZXIgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluaXRpYXRlZCE8L21hdC1sYWJlbD5cclxuICAgICAgICA8cCBjbGFzcz1cInZhbGlkYXRpb24tdGV4dFwiPlxyXG4gICAgICAgICAgVGhlIHVzZXIgd2lsbCBiZSBtb3ZlZCB0byB0aGUgbmV3IGxvY2F0aW9uLCBQYXJpcy5cclxuICAgICAgICAgIDxicj5cclxuICAgICAgICAgIEZvciB0aGUgcHJvZ3Jlc3Mgb2YgbW92ZSwgcGxlYXNlIHZpc2l0IHRoZSA8YSBjbGFzcz1cImZvcm0tbGlua1wiIGhyZWY9XCIjXCI+dXNlciBkZXRhaWxzPC9hPi5cclxuICAgICAgICA8L3A+XHJcbiAgICAgIDwvZm9ybT5cclxuICAgICAgPGRpdiBjbGFzcz1cInN0ZXAtYWN0aW9uc1wiPlxyXG48IS0tICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJ3ZWJleC1idG4gYnRuLWRvbmVcIiBtYXRTdGVwcGVyTmV4dCAoY2xpY2spPVwiY2FuY2VsLmVtaXQoKVwiPkRvbmU8L2J1dHRvbj4tLT5cclxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJ3ZWJleC1idG4gYnRuLWRvbmVcIiBtYXRTdGVwcGVyTmV4dCAoY2xpY2spPVwicnVuTW92ZVVzZXIuZW1pdCgpXCI+RG9uZTwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cIndlYmV4LWJ0biBidG4tY2FuY2VsXCIgbWF0U3RlcHBlclByZXZpb3VzPlByZXZpb3VzPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtc3RlcD5cclxuICA8L21hdC1zdGVwcGVyPlxyXG4iXX0=
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS11c2VyLXN0ZXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXJzLWxpc3Qvc3JjL21vdmUtdXNlci13aXphcmQvbW92ZS11c2VyLXN0ZXBwZXIvbW92ZS11c2VyLXN0ZXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXJzLWxpc3Qvc3JjL21vdmUtdXNlci13aXphcmQvbW92ZS11c2VyLXN0ZXBwZXIvbW92ZS11c2VyLXN0ZXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLMUYsZ0JBQWdCO0FBQ2hCLE1BQU0sUUFBUSxHQUFHLG9GQUFvRixDQUFDO0FBT3RHLE1BQU0sT0FBTyx3QkFBd0I7SUFnQm5DLElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNwSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUM7U0FDakY7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LENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUQsQ0FBQzs7c0hBL0ZVLHdCQUF3QjswR0FBeEIsd0JBQXdCLGdUQ2JyQyxtMkxBK0ZBOzRGRGxGYSx3QkFBd0I7a0JBTnBDLFNBQVM7K0JBQ0UsdUJBQXVCOzJIQU1GLGdCQUFnQjtzQkFBOUMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBRTdCLElBQUk7c0JBREgsTUFBTTtnQkFHUCxJQUFJO3NCQURILEtBQUs7Z0JBR04sVUFBVTtzQkFEVCxLQUFLO2dCQUdOLFdBQVc7c0JBRFYsTUFBTTtnQkFHUCxNQUFNO3NCQURMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBEbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZG5zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXRTdGVwcGVyIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3N0ZXBwZXJcIjtcclxuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91c2VyLnNlcnZpY2UnO1xyXG4vLyBmb3IgdGVzdCBvbmx5XHJcbmNvbnN0IExPQ0FUSU9OID0gJ1kybHpZMjl6Y0dGeWF6b3ZMM1Z6TDB4UFEwRlVTVTlPTHpFMllqWTBOamxqTFRCalptUXROREpqTVMxaU9XSmpMVFV5TjJGbFpUTmhOMlJsT1EnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1tb3ZlLXVzZXItc3RlcHBlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21vdmUtdXNlci1zdGVwcGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tb3ZlLXVzZXItc3RlcHBlci5jb21wb25lbnQuc2NzcyddXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgTW92ZVVzZXJTdGVwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCduZXh0QWZ0ZXJNb3ZlQnRuJykgbmV4dEFmdGVyTW92ZUJ0bjogYW55O1xyXG4gIEBPdXRwdXQoKVxyXG4gIGRvbmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KClcclxuICB1c2VyOiBhbnk7XHJcbiAgQElucHV0KClcclxuICBjdXN0b21lcklkITogbnVtYmVyO1xyXG4gIEBPdXRwdXQoKVxyXG4gIHJ1bk1vdmVVc2VyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBpc0xpbmVhciA9IGZhbHNlO1xyXG4gIHBob25lTnVtYmVyUGVuZGluZyA9IGZhbHNlO1xyXG4gIHN0ZXBwZXIhOiBNYXRTdGVwcGVyO1xyXG5cclxuICBnZXQgbW92ZVVzZXJQZW5kaW5nKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2UubW92ZVVzZXJQZW5kaW5nO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGN1cnJlbnROdW1iZXIoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLnVzZXI/LmRldmljZXM/Lmxlbmd0aCAmJiB0aGlzLnVzZXIuZGV2aWNlc1swXT8ubGluZUFzc29jaWF0aW9ucyAmJiB0aGlzLnVzZXIuZGV2aWNlc1swXS5saW5lQXNzb2NpYXRpb25zWzBdKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnVzZXIuZGV2aWNlc1swXS5saW5lQXNzb2NpYXRpb25zWzBdLmRpcmVjdG9yeU51bWJlci5kaXJlY3RvcnlOdW1iZXI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBkbnNTZXJ2aWNlOiBEbnNTZXJ2aWNlLFxyXG4gICAgcHVibGljIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZVxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy51c2VyKSB7XHJcbiAgICAgIHRoaXMudXNlci5tb3ZlVHlwZSA9IHtcclxuICAgICAgICBwaG9uZU51bWJlcjogJzEnLFxyXG4gICAgICAgIGV4dGVuc2lvbjogJzEnXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMudXNlclNlcnZpY2UudXNlck1vdmVkJC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIHRoaXMudXNlclNlcnZpY2UubW92ZVVzZXJQZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHJlc3VsdCAmJiB0aGlzLm5leHRBZnRlck1vdmVCdG4/Ll9lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICB0aGlzLm5leHRBZnRlck1vdmVCdG4uX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGljaygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uTW92ZVVzZXIoc3RlcHBlcjogTWF0U3RlcHBlcik6IHZvaWQge1xyXG4gICAgdGhpcy5zdGVwcGVyID0gc3RlcHBlcjtcclxuICAgIHRoaXMucnVuTW92ZVVzZXIuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0UGhvbmVOdW1iZXJNaWdyYXRpb25UeXBlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC52YWx1ZSAmJiBldmVudC52YWx1ZSA9PT0gJzInKSB7XHJcbiAgICAgIHRoaXMuZ2V0UGhvbmVOdW1iZXJzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblBob25lTnVtYmVyQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMudXNlci5uZXdOdW1iZXJcclxuICB9XHJcblxyXG4gIG9uRXh0ZW5zaW9uQ0hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMudXNlci5uZXdFeHRlbnNpb25cclxuICB9XHJcblxyXG4gIGlzRmllbGRBdmFpbGFibGUodHlwZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy51c2VyPy5tb3ZlVHlwZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy51c2VyLm1vdmVUeXBlW3R5cGVdICYmIHRoaXMudXNlci5tb3ZlVHlwZVt0eXBlXSA9PT0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBnZXRQaG9uZU51bWJlcnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnBob25lTnVtYmVyUGVuZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmRuc1NlcnZpY2UuZmV0Y2hQaG9uZU51bWJlcnModGhpcy5jdXN0b21lcklkLCBMT0NBVElPTilcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5waG9uZU51bWJlclBlbmRpbmcgPSBmYWxzZTtcclxuICAgICAgfSwgKCkgPT4gdGhpcy5waG9uZU51bWJlclBlbmRpbmcgPSBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBnb05leHRTdGVwKHN0ZXBwZXI6IE1hdFN0ZXBwZXIpIHtcclxuXHJcbiAgICBjb25zdCBjdXJyZW50U3RlcCA9IHN0ZXBwZXIuc2VsZWN0ZWRJbmRleDtcclxuXHJcbiAgICBpZiAoY3VycmVudFN0ZXAgPT09IDEpIHsgc3RlcHBlci5zZWxlY3RlZEluZGV4ID0gMzsgfVxyXG4gICAgLy8gZWxzZSBpZiAoY3VycmVudFN0ZXAgPT09IDMpIHsgc3RlcHBlci5zZWxlY3RlZEluZGV4ID0gMDsgfVxyXG5cclxuICAgIFtcclxuICAgICAgc3RlcHBlci5zdGVwcy5nZXQoMSksXHJcbiAgICAgIHN0ZXBwZXIuc3RlcHMuZ2V0KDIpXHJcblxyXG4gICAgXS5tYXAoc3RlcCA9PiBzdGVwID8gc3RlcC5jb21wbGV0ZWQgPSB0cnVlIDogdW5kZWZpbmVkKTtcclxuICB9XHJcbn1cclxuIiwiPGFwcC1sb2FkZXIgKm5nSWY9XCJtb3ZlVXNlclBlbmRpbmdcIj48L2FwcC1sb2FkZXI+XHJcbjxtYXQtc3RlcHBlciAqbmdJZj1cInVzZXI/Lm1vdmVUeXBlXCIgW2xpbmVhcl09XCJpc0xpbmVhclwiIGxhYmVsUG9zaXRpb249XCJib3R0b21cIiAjc3RlcHBlcj5cclxuICA8bWF0LXN0ZXA+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3RlcC10aXRsZVwiPlN0ZXAgMTogU2VsZWN0IGxvY2F0aW9uPC9kaXY+XHJcbiAgICA8IS0tICAgICAgPGZvcm0+LS0+XHJcbiAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPlNlbGVjdCBsb2NhdGlvbjwvbmctdGVtcGxhdGU+XHJcbiAgICA8bWF0LWxhYmVsIGNsYXNzPVwibWF0LWxhYmVsXCI+UGhvbmUgbnVtYmVyPC9tYXQtbGFiZWw+XHJcbiAgICA8bWF0LXJhZGlvLWdyb3VwXHJcbiAgICAgIGNsYXNzPVwicmFkaW8tZ3JvdXBcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInVzZXIubW92ZVR5cGUucGhvbmVOdW1iZXJcIlxyXG4gICAgICBuYW1lPVwicGhvbmVOdW1iZXJcIiAoY2hhbmdlKT1cInNlbGVjdFBob25lTnVtYmVyTWlncmF0aW9uVHlwZSgkZXZlbnQpXCI+XHJcbiAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwicmFkaW8tYnV0dG9uXCIgdmFsdWU9XCIxXCIgY29sb3I9XCJwcmltYXJ5XCI+S2VlcCBjdXJyZW50IG51bWJlciB7e2N1cnJlbnROdW1iZXJ9fTwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgPG1hdC1yYWRpby1idXR0b24gY2xhc3M9XCJyYWRpby1idXR0b25cIiB2YWx1ZT1cIjJcIiBjb2xvcj1cInByaW1hcnlcIj5TZWxlY3QgYSBuZXcgbnVtYmVyPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG5cclxuICAgICAgPGRpdiAqbmdJZj1cInVzZXIubW92ZVR5cGUucGhvbmVOdW1iZXIgPT09ICcyJ1wiIGNsYXNzPVwic2VsZWN0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciAqbmdJZj1cInBob25lTnVtYmVyUGVuZGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmllbGQtc3Bpbm5lclwiIG1vZGU9XCJpbmRldGVybWluYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RpYW1ldGVyXT1cIjMwXCI+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cclxuXHJcbiAgICAgICAgPG1hdC1zZWxlY3QgY2xhc3M9XCJzZWxlY3RcIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBudW1iZXJcIiBbKG5nTW9kZWwpXT1cInVzZXIubmV3TnVtYmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uUGhvbmVOdW1iZXJDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBkbnNTZXJ2aWNlLnBob25lTnVtYmVyc1wiIHZhbHVlPVwib3B0aW9uXCI+e3tvcHRpb259fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPG1hdC1yYWRpby1idXR0b24gY2xhc3M9XCJyYWRpby1idXR0b25cIiB2YWx1ZT1cIjNcIiBjb2xvcj1cInByaW1hcnlcIj5SZW1vdmUgbnVtYmVyPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICA8bWF0LWxhYmVsIGNsYXNzPVwibWF0LWxhYmVsXCI+RXh0ZW5zaW9uPC9tYXQtbGFiZWw+XHJcbiAgICA8bWF0LXJhZGlvLWdyb3VwIGNsYXNzPVwicmFkaW8tZ3JvdXBcIiBuYW1lPVwiZXh0ZW5zaW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ1c2VyLm1vdmVUeXBlLmV4dGVuc2lvblwiPlxyXG4gICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjbGFzcz1cInJhZGlvLWJ1dHRvblwiIHZhbHVlPVwiMVwiIGNvbG9yPVwicHJpbWFyeVwiPktlZXAgY3VycmVudCBleHRlbnNpb248L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwicmFkaW8tYnV0dG9uXCIgdmFsdWU9XCIyXCIgY29sb3I9XCJwcmltYXJ5XCI+U2VsZWN0IGEgbmV3IGV4dGVuc2lvbjwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwidXNlci5tb3ZlVHlwZS5leHRlbnNpb24gPT09ICcyJ1wiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcbiAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgKGNoYW5nZSk9XCJvbkV4dGVuc2lvbkNIYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ1c2VyLm5ld0V4dGVuc2lvblwiXHJcbiAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInRW50ZXIgZXh0ZW5zaW9uJ1wiIC8+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjbGFzcz1cInJhZGlvLWJ1dHRvblwiIHZhbHVlPVwiM1wiIGNvbG9yPVwicHJpbWFyeVwiPlJlbW92ZSBleHRlbnNpb248L21hdC1yYWRpby1idXR0b24+XHJcbiAgICA8L21hdC1yYWRpby1ncm91cD5cclxuICAgIDwhLS0gICAgICA8L2Zvcm0+LS0+XHJcbiAgICA8YnV0dG9uICNuZXh0QWZ0ZXJNb3ZlQnRuIG1hdC1idXR0b24gY2xhc3M9XCJpbnZpc2libGUtbmV4dC1idG5cIiBtYXRTdGVwcGVyTmV4dCAoY2xpY2spPVwiZ29OZXh0U3RlcChzdGVwcGVyKVwiPjwvYnV0dG9uPlxyXG4gICAgPGRpdiBjbGFzcz1cInN0ZXAtYWN0aW9uc1wiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJ3ZWJleC1idG4gYnRuLW5leHRcIiAoY2xpY2spPVwib25Nb3ZlVXNlcihzdGVwcGVyKVwiPk1vdmU8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNsYXNzPVwid2ViZXgtYnRuIGJ0bi1jYW5jZWxcIiAoY2xpY2spPVwiY2FuY2VsLmVtaXQoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtc3RlcD5cclxuICA8bWF0LXN0ZXAgW2FyaWEtbGFiZWxsZWRieV09XCInZGlzYWJsZWRfYWYnXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3RlcC10aXRsZVwiPlN0ZXAgMjogRGV2aWNlIGVsaWdpYmlsaXR5IGNoZWNrPC9kaXY+XHJcbiAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPkRldmljZSBlbGlnaWJpbGl0eSBjaGVjazwvbmctdGVtcGxhdGU+XHJcbiAgICA8Zm9ybT48L2Zvcm0+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3RlcC1hY3Rpb25zXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cIndlYmV4LWJ0biBidG4tbmV4dFwiIG1hdFN0ZXBwZXJOZXh0IChjbGljayk9XCJnb05leHRTdGVwKHN0ZXBwZXIpXCI+TmV4dDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJ3ZWJleC1idG4gYnRuLWNhbmNlbFwiIG1hdFN0ZXBwZXJQcmV2aW91cz5QcmV2aW91czwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtc3RlcD5cclxuICA8bWF0LXN0ZXAgW2FyaWEtbGFiZWxsZWRieV09XCInZGlzYWJsZWRfYWYnXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3RlcC10aXRsZVwiPlN0ZXAgMzogVmFsaWRhdGlvbjwvZGl2PlxyXG4gICAgPGZvcm0+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBtYXRTdGVwTGFiZWw+VmFsaWRhdGlvbjwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJtYXQtbGFiZWxcIj5WYWxpZGF0aW9uIFN1Y2Nlc3MhPC9tYXQtbGFiZWw+XHJcbiAgICAgIDxwIGNsYXNzPVwidmFsaWRhdGlvbi10ZXh0XCI+VGhlcmUgaXMgbm8gaXNzdWUgZm9yIG1vdmluZyB0aGlzIHVzZXIgdG8gdGhlIG5ldyBsb2NhdGlvbiwgJE1UbG9jYXRpb25uYW1lLiBQbGVhc2UgYmUgYXdhcmUgb2YgdGhlIGNoYW5nZXMgYmVsb3cgb25jZSB0aGUgdXNlciBpcyBiZWluZyBtb3ZlZCB0byB0aGUgbmV3IGxvY2F0aW9uLjwvcD5cclxuICAgICAgPG1hdC1sYWJlbCBjbGFzcz1cIm1hdC1sYWJlbFwiPkV4cGVjdGVkIGNoYW5nZXM8L21hdC1sYWJlbD5cclxuICAgICAgPHVsPlxyXG4gICAgICAgIDxsaT5UYWJsZXQgZGV2aWNlIChUQUJBVklDSykgbmVlZHMgdG8gYmUgcmVjb25maWd1cmVkIHdpdGggV2ViZXggQXBwLiBVc2VyIHdpbGwgcmVjZWl2ZSBhbiBlbWFpbCB3aXRoIGxpbmsgdG8gZG93bmxvYWQuPC9saT5cclxuICAgICAgICA8bGk+Q2lzY28gODg3NSAoU0VQNzUxRkM5QkFCODU0KSB3aWxsIG5vdCBiZSBtaWdyYXRlZC48L2xpPlxyXG4gICAgICAgIDxsaT5UaGUgdXNlciB3aWxsIGJlIHJlbW92ZWQgZnJvbSBDYWxsIFBhcmsgR3JvdXAuPC9saT5cclxuICAgICAgICA8bGk+SWYgdGhlIGRldmljZSBpcyB1c2luZyB0aGUgbG9jYXRpb24gbGV2ZWwgZGV2aWNlIHNldHRpbmdzLCB0aGUgZGV2aWNlIHdpbGwgcGljayB1cCB0aGUgbmV3IGxvY2F0aW9uIGRldmljZSBzZXR0aW5ncyBvbmNlIHRoZSB1c2VyIGlzIG1vdmVkLiBJZiBzb21lIG9mIHRoZSBkZXZpY2Ugc2V0dGluZ3MgYXJlIG92ZXJ3cml0dGVuIGF0IHRoZSB1c2VyIGxldmVsLCB0aGVzZSB1c2VyIGxldmVsIHNldHRpbmdzIHdpbGwgYmUgcmV0YWluZWQgYW5kIHRoZSByZXN0IG9mIHRoZSBzZXR0aW5ncyB3aWxsIGJlIHBpY2tlZCB1cCBhdCB0aGUgaGlnaGVyIGxldmVsIChvcmdhbml6YXRpb24gb3IgbG9jYXRpb24pIHNldHRpbmdzLjwvbGk+XHJcbiAgICAgICAgPGxpPklmIHRoZSBjdXJyZW50IGxvY2F0aW9uIGhhcyBhIGRpZmZlcmVudCByZWNvcmRpbmcgc2VydmljZSBmcm9tIHRoZSBvbmUgb2YgdGhlIG5ldyBsb2NhdGlvbiwgdGhlIHJlY29yZGluZyBvZiB0aGlzIHVzZXIgbWF5IGJlIGxvc3QgYWZ0ZXIgbW92aW5nIGxvY2F0aW9uLjwvbGk+XHJcbiAgICAgIDwvdWw+XHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPG1hdC1jaGVja2JveCBjbGFzcz1cImNoZWNrYm94XCIgY2hlY2tlZD1cInRydWVcIiBjb2xvcj1cInByaW1hcnlcIj5JIGNvbmZpcm0gdGhhdCBJIHVuZGVyc3RhbmQgdGhlc2UgY29uZGl0aW9ucy4gSSBhY2tub3dsZWRnZSB0aGUgY2hhbmdlcy48L21hdC1jaGVja2JveD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvcm0+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3RlcC1hY3Rpb25zXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cIndlYmV4LWJ0biBidG4tbmV4dFwiIG1hdFN0ZXBwZXJOZXh0IChjbGljayk9XCJnb05leHRTdGVwKHN0ZXBwZXIpXCI+TmV4dDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJ3ZWJleC1idG4gYnRuLWNhbmNlbFwiIG1hdFN0ZXBwZXJQcmV2aW91cz5QcmV2aW91czwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtc3RlcD5cclxuICA8bWF0LXN0ZXA+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3RlcC10aXRsZVwiPlN0ZXAgNDogUmVzdWx0PC9kaXY+XHJcbiAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPlJlc3VsdDwvbmctdGVtcGxhdGU+XHJcbiAgICA8Zm9ybT5cclxuICAgICAgPG1hdC1sYWJlbCBjbGFzcz1cIm1hdC1sYWJlbFwiPk1vdmluZyB1c2VyIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBpbml0aWF0ZWQhPC9tYXQtbGFiZWw+XHJcbiAgICAgIDxwIGNsYXNzPVwidmFsaWRhdGlvbi10ZXh0XCI+XHJcbiAgICAgICAgVGhlIHVzZXIgd2lsbCBiZSBtb3ZlZCB0byB0aGUgbmV3IGxvY2F0aW9uLCAkTVRsb2NhdGlvbm5hbWUuXHJcbiAgICAgICAgPGJyPlxyXG4gICAgICAgIEZvciB0aGUgcHJvZ3Jlc3Mgb2YgbW92ZSwgcGxlYXNlIHZpc2l0IHRoZSA8YSBjbGFzcz1cImZvcm0tbGlua1wiIGhyZWY9XCIjXCI+dXNlciBkZXRhaWxzPC9hPi5cclxuICAgICAgPC9wPlxyXG4gICAgPC9mb3JtPlxyXG4gICAgPGRpdiBjbGFzcz1cInN0ZXAtYWN0aW9uc1wiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJ3ZWJleC1idG4gYnRuLWRvbmVcIiAoY2xpY2spPVwiZG9uZS5lbWl0KHRydWUpXCI+RG9uZTwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtc3RlcD5cclxuPC9tYXQtc3RlcHBlcj5cclxuIl19
@@ -8,6 +8,7 @@ export class MoveUserWizardComponent {
8
8
  constructor(dnsService) {
9
9
  this.dnsService = dnsService;
10
10
  this.closeMoveUserWizard = new EventEmitter();
11
+ this.done = new EventEmitter();
11
12
  this.runMoveUser = new EventEmitter();
12
13
  this.dataPending = false;
13
14
  }
@@ -19,17 +20,19 @@ export class MoveUserWizardComponent {
19
20
  }
20
21
  }
21
22
  MoveUserWizardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserWizardComponent, deps: [{ token: i1.DnsService }], target: i0.ɵɵFactoryTarget.Component });
22
- MoveUserWizardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MoveUserWizardComponent, selector: "app-move-user-wizard", inputs: { user: "user", customerId: "customerId" }, outputs: { closeMoveUserWizard: "closeMoveUserWizard", runMoveUser: "runMoveUser" }, ngImport: i0, template: "<app-loader *ngIf=\"dataPending\"></app-loader>\r\n<div class=\"move-user-stepper-container\">\r\n <header class=\"move-user-header\">\r\n <div class=\"move-user-header__title\">Move User {{user.userid}}</div>\r\n <div class=\"move-user-header__close\">\r\n <span class=\"app-icon icon-white-close\" (click)=\"onClose()\"></span>\r\n </div>\r\n </header>\r\n <app-move-user-stepper *ngIf=\"user\" [customerId]=\"customerId\" [user]=\"user\" (cancel)=\"onClose()\"\r\n (runMoveUser)=\"onRunMoveUser()\"></app-move-user-stepper>\r\n</div>\r\n", styles: [".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}.move-user-header__close i{font-size:25px;font-weight:100}.app-icon{height:20px;width:20px;display:inline-block;cursor:pointer;background-repeat:no-repeat;background-position:center}.icon-close{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%22M12.0005 13.0538L6.92737 18.1269C6.78892 18.2654 6.61489 18.3362 6.40527 18.3394C6.19567 18.3426 6.01844 18.2718 5.87357 18.1269C5.72869 17.982 5.65625 17.8064 5.65625 17.6C5.65625 17.3936 5.72869 17.218 5.87357 17.0731L10.9466 12L5.87357 6.92689C5.73511 6.78844 5.66427 6.6144 5.66107 6.40479C5.65786 6.19519 5.72869 6.01795 5.87357 5.87309C6.01844 5.7282 6.19407 5.65576 6.40047 5.65576C6.60687 5.65576 6.78251 5.7282 6.92737 5.87309L12.0005 10.9462L17.0736 5.87309C17.212 5.73462 17.3861 5.66379 17.5957 5.66059C17.8053 5.65737 17.9825 5.7282 18.1274 5.87309C18.2723 6.01795 18.3447 6.19359 18.3447 6.39999C18.3447 6.60639 18.2723 6.78202 18.1274 6.92689L13.0543 12L18.1274 17.0731C18.2658 17.2115 18.3367 17.3856 18.3399 17.5952C18.3431 17.8048 18.2723 17.982 18.1274 18.1269C17.9825 18.2718 17.8069 18.3442 17.6005 18.3442C17.3941 18.3442 17.2184 18.2718 17.0736 18.1269L12.0005 13.0538Z%22 fill%3D%22%23333333%22%2F%3E%0D%3C%2Fsvg%3E%0D\")}.icon-white-close{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%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%3C%2Fsvg%3E\")}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.AppLoaderComponent, selector: "app-loader" }, { kind: "component", type: i4.MoveUserStepperComponent, selector: "app-move-user-stepper", inputs: ["user", "customerId"], outputs: ["runMoveUser", "cancel"] }] });
23
+ MoveUserWizardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MoveUserWizardComponent, selector: "app-move-user-wizard", inputs: { user: "user", customerId: "customerId" }, outputs: { closeMoveUserWizard: "closeMoveUserWizard", done: "done", runMoveUser: "runMoveUser" }, ngImport: i0, template: "<app-loader *ngIf=\"dataPending\"></app-loader>\r\n<div class=\"move-user-stepper-container\">\r\n <header class=\"move-user-header\">\r\n <div class=\"move-user-header__title\">Move User {{user.userid}}</div>\r\n <div class=\"move-user-header__close\">\r\n <span class=\"app-icon icon-white-close\" (click)=\"onClose()\"></span>\r\n </div>\r\n </header>\r\n <app-move-user-stepper *ngIf=\"user\" [customerId]=\"customerId\"\r\n [user]=\"user\" (cancel)=\"onClose()\" (done)=\"done.emit()\"\r\n (runMoveUser)=\"onRunMoveUser()\"></app-move-user-stepper>\r\n</div>\r\n", styles: [".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}.move-user-header__close i{font-size:25px;font-weight:100}.app-icon{height:20px;width:20px;display:inline-block;cursor:pointer;background-repeat:no-repeat;background-position:center}.icon-close{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%22M12.0005 13.0538L6.92737 18.1269C6.78892 18.2654 6.61489 18.3362 6.40527 18.3394C6.19567 18.3426 6.01844 18.2718 5.87357 18.1269C5.72869 17.982 5.65625 17.8064 5.65625 17.6C5.65625 17.3936 5.72869 17.218 5.87357 17.0731L10.9466 12L5.87357 6.92689C5.73511 6.78844 5.66427 6.6144 5.66107 6.40479C5.65786 6.19519 5.72869 6.01795 5.87357 5.87309C6.01844 5.7282 6.19407 5.65576 6.40047 5.65576C6.60687 5.65576 6.78251 5.7282 6.92737 5.87309L12.0005 10.9462L17.0736 5.87309C17.212 5.73462 17.3861 5.66379 17.5957 5.66059C17.8053 5.65737 17.9825 5.7282 18.1274 5.87309C18.2723 6.01795 18.3447 6.19359 18.3447 6.39999C18.3447 6.60639 18.2723 6.78202 18.1274 6.92689L13.0543 12L18.1274 17.0731C18.2658 17.2115 18.3367 17.3856 18.3399 17.5952C18.3431 17.8048 18.2723 17.982 18.1274 18.1269C17.9825 18.2718 17.8069 18.3442 17.6005 18.3442C17.3941 18.3442 17.2184 18.2718 17.0736 18.1269L12.0005 13.0538Z%22 fill%3D%22%23333333%22%2F%3E%0D%3C%2Fsvg%3E%0D\")}.icon-white-close{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%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%3C%2Fsvg%3E\")}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.AppLoaderComponent, selector: "app-loader" }, { kind: "component", type: i4.MoveUserStepperComponent, selector: "app-move-user-stepper", inputs: ["user", "customerId"], outputs: ["done", "runMoveUser", "cancel"] }] });
23
24
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserWizardComponent, decorators: [{
24
25
  type: Component,
25
- args: [{ selector: 'app-move-user-wizard', template: "<app-loader *ngIf=\"dataPending\"></app-loader>\r\n<div class=\"move-user-stepper-container\">\r\n <header class=\"move-user-header\">\r\n <div class=\"move-user-header__title\">Move User {{user.userid}}</div>\r\n <div class=\"move-user-header__close\">\r\n <span class=\"app-icon icon-white-close\" (click)=\"onClose()\"></span>\r\n </div>\r\n </header>\r\n <app-move-user-stepper *ngIf=\"user\" [customerId]=\"customerId\" [user]=\"user\" (cancel)=\"onClose()\"\r\n (runMoveUser)=\"onRunMoveUser()\"></app-move-user-stepper>\r\n</div>\r\n", styles: [".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}.move-user-header__close i{font-size:25px;font-weight:100}.app-icon{height:20px;width:20px;display:inline-block;cursor:pointer;background-repeat:no-repeat;background-position:center}.icon-close{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%22M12.0005 13.0538L6.92737 18.1269C6.78892 18.2654 6.61489 18.3362 6.40527 18.3394C6.19567 18.3426 6.01844 18.2718 5.87357 18.1269C5.72869 17.982 5.65625 17.8064 5.65625 17.6C5.65625 17.3936 5.72869 17.218 5.87357 17.0731L10.9466 12L5.87357 6.92689C5.73511 6.78844 5.66427 6.6144 5.66107 6.40479C5.65786 6.19519 5.72869 6.01795 5.87357 5.87309C6.01844 5.7282 6.19407 5.65576 6.40047 5.65576C6.60687 5.65576 6.78251 5.7282 6.92737 5.87309L12.0005 10.9462L17.0736 5.87309C17.212 5.73462 17.3861 5.66379 17.5957 5.66059C17.8053 5.65737 17.9825 5.7282 18.1274 5.87309C18.2723 6.01795 18.3447 6.19359 18.3447 6.39999C18.3447 6.60639 18.2723 6.78202 18.1274 6.92689L13.0543 12L18.1274 17.0731C18.2658 17.2115 18.3367 17.3856 18.3399 17.5952C18.3431 17.8048 18.2723 17.982 18.1274 18.1269C17.9825 18.2718 17.8069 18.3442 17.6005 18.3442C17.3941 18.3442 17.2184 18.2718 17.0736 18.1269L12.0005 13.0538Z%22 fill%3D%22%23333333%22%2F%3E%0D%3C%2Fsvg%3E%0D\")}.icon-white-close{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%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%3C%2Fsvg%3E\")}\n"] }]
26
+ args: [{ selector: 'app-move-user-wizard', template: "<app-loader *ngIf=\"dataPending\"></app-loader>\r\n<div class=\"move-user-stepper-container\">\r\n <header class=\"move-user-header\">\r\n <div class=\"move-user-header__title\">Move User {{user.userid}}</div>\r\n <div class=\"move-user-header__close\">\r\n <span class=\"app-icon icon-white-close\" (click)=\"onClose()\"></span>\r\n </div>\r\n </header>\r\n <app-move-user-stepper *ngIf=\"user\" [customerId]=\"customerId\"\r\n [user]=\"user\" (cancel)=\"onClose()\" (done)=\"done.emit()\"\r\n (runMoveUser)=\"onRunMoveUser()\"></app-move-user-stepper>\r\n</div>\r\n", styles: [".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}.move-user-header__close i{font-size:25px;font-weight:100}.app-icon{height:20px;width:20px;display:inline-block;cursor:pointer;background-repeat:no-repeat;background-position:center}.icon-close{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%22M12.0005 13.0538L6.92737 18.1269C6.78892 18.2654 6.61489 18.3362 6.40527 18.3394C6.19567 18.3426 6.01844 18.2718 5.87357 18.1269C5.72869 17.982 5.65625 17.8064 5.65625 17.6C5.65625 17.3936 5.72869 17.218 5.87357 17.0731L10.9466 12L5.87357 6.92689C5.73511 6.78844 5.66427 6.6144 5.66107 6.40479C5.65786 6.19519 5.72869 6.01795 5.87357 5.87309C6.01844 5.7282 6.19407 5.65576 6.40047 5.65576C6.60687 5.65576 6.78251 5.7282 6.92737 5.87309L12.0005 10.9462L17.0736 5.87309C17.212 5.73462 17.3861 5.66379 17.5957 5.66059C17.8053 5.65737 17.9825 5.7282 18.1274 5.87309C18.2723 6.01795 18.3447 6.19359 18.3447 6.39999C18.3447 6.60639 18.2723 6.78202 18.1274 6.92689L13.0543 12L18.1274 17.0731C18.2658 17.2115 18.3367 17.3856 18.3399 17.5952C18.3431 17.8048 18.2723 17.982 18.1274 18.1269C17.9825 18.2718 17.8069 18.3442 17.6005 18.3442C17.3941 18.3442 17.2184 18.2718 17.0736 18.1269L12.0005 13.0538Z%22 fill%3D%22%23333333%22%2F%3E%0D%3C%2Fsvg%3E%0D\")}.icon-white-close{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%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%3C%2Fsvg%3E\")}\n"] }]
26
27
  }], ctorParameters: function () { return [{ type: i1.DnsService }]; }, propDecorators: { user: [{
27
28
  type: Input
28
29
  }], customerId: [{
29
30
  type: Input
30
31
  }], closeMoveUserWizard: [{
31
32
  type: Output
33
+ }], done: [{
34
+ type: Output
32
35
  }], runMoveUser: [{
33
36
  type: Output
34
37
  }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS11c2VyLXdpemFyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlcnMtbGlzdC9zcmMvbW92ZS11c2VyLXdpemFyZC9tb3ZlLXVzZXItd2l6YXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2Vycy1saXN0L3NyYy9tb3ZlLXVzZXItd2l6YXJkL21vdmUtdXNlci13aXphcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBU3ZFLE1BQU0sT0FBTyx1QkFBdUI7SUFXaEMsWUFDUyxVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBTmpDLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFekMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO0lBTWxCLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDOztxSEF2QlEsdUJBQXVCO3lHQUF2Qix1QkFBdUIscU1DVHBDLCtsQkFXQTs0RkRGYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0ksc0JBQXNCO2lHQU1sQyxJQUFJO3NCQURILEtBQUs7Z0JBR04sVUFBVTtzQkFEVCxLQUFLO2dCQUdOLG1CQUFtQjtzQkFEbEIsTUFBTTtnQkFHUCxXQUFXO3NCQURWLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IERuc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9kbnMuc2VydmljZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1tb3ZlLXVzZXItd2l6YXJkJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9tb3ZlLXVzZXItd2l6YXJkLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL21vdmUtdXNlci13aXphcmQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTW92ZVVzZXJXaXphcmRDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpXHJcbiAgdXNlcjogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgY3VzdG9tZXJJZCE6IG51bWJlcjtcclxuICBAT3V0cHV0KClcclxuICBjbG9zZU1vdmVVc2VyV2l6YXJkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIHJ1bk1vdmVVc2VyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGRhdGFQZW5kaW5nID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgIHB1YmxpYyBkbnNTZXJ2aWNlOiBEbnNTZXJ2aWNlXHJcbiAgICApIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgb25DbG9zZSgpOiB2b2lkIHtcclxuICAgICAgdGhpcy5jbG9zZU1vdmVVc2VyV2l6YXJkLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBvblJ1bk1vdmVVc2VyKCk6IHZvaWQge1xyXG4gICAgICB0aGlzLnJ1bk1vdmVVc2VyLmVtaXQoKTtcclxuICAgIH1cclxufVxyXG4iLCI8YXBwLWxvYWRlciAqbmdJZj1cImRhdGFQZW5kaW5nXCI+PC9hcHAtbG9hZGVyPlxyXG48ZGl2IGNsYXNzPVwibW92ZS11c2VyLXN0ZXBwZXItY29udGFpbmVyXCI+XHJcbiAgICA8aGVhZGVyIGNsYXNzPVwibW92ZS11c2VyLWhlYWRlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb3ZlLXVzZXItaGVhZGVyX190aXRsZVwiPk1vdmUgVXNlciB7e3VzZXIudXNlcmlkfX08L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW92ZS11c2VyLWhlYWRlcl9fY2xvc2VcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXBwLWljb24gaWNvbi13aGl0ZS1jbG9zZVwiIChjbGljayk9XCJvbkNsb3NlKClcIj48L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2hlYWRlcj5cclxuICAgIDxhcHAtbW92ZS11c2VyLXN0ZXBwZXIgKm5nSWY9XCJ1c2VyXCIgW2N1c3RvbWVySWRdPVwiY3VzdG9tZXJJZFwiIFt1c2VyXT1cInVzZXJcIiAoY2FuY2VsKT1cIm9uQ2xvc2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChydW5Nb3ZlVXNlcik9XCJvblJ1bk1vdmVVc2VyKClcIj48L2FwcC1tb3ZlLXVzZXItc3RlcHBlcj5cclxuPC9kaXY+XHJcbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS11c2VyLXdpemFyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlcnMtbGlzdC9zcmMvbW92ZS11c2VyLXdpemFyZC9tb3ZlLXVzZXItd2l6YXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2Vycy1saXN0L3NyYy9tb3ZlLXVzZXItd2l6YXJkL21vdmUtdXNlci13aXphcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBU3ZFLE1BQU0sT0FBTyx1QkFBdUI7SUFhaEMsWUFDUyxVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBUmpDLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFekMsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFMUIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO0lBTWxCLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDOztxSEF6QlEsdUJBQXVCO3lHQUF2Qix1QkFBdUIsbU5DVHBDLG9wQkFZQTs0RkRIYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0ksc0JBQXNCO2lHQU1sQyxJQUFJO3NCQURILEtBQUs7Z0JBR04sVUFBVTtzQkFEVCxLQUFLO2dCQUdOLG1CQUFtQjtzQkFEbEIsTUFBTTtnQkFHUCxJQUFJO3NCQURILE1BQU07Z0JBR1AsV0FBVztzQkFEVixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBEbnNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZG5zLnNlcnZpY2UnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhcHAtbW92ZS11c2VyLXdpemFyZCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbW92ZS11c2VyLXdpemFyZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9tb3ZlLXVzZXItd2l6YXJkLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIE1vdmVVc2VyV2l6YXJkQ29tcG9uZW50IHtcclxuICBASW5wdXQoKVxyXG4gIHVzZXI6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIGN1c3RvbWVySWQhOiBudW1iZXI7XHJcbiAgQE91dHB1dCgpXHJcbiAgY2xvc2VNb3ZlVXNlcldpemFyZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KClcclxuICBkb25lID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIHJ1bk1vdmVVc2VyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGRhdGFQZW5kaW5nID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgIHB1YmxpYyBkbnNTZXJ2aWNlOiBEbnNTZXJ2aWNlXHJcbiAgICApIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgb25DbG9zZSgpOiB2b2lkIHtcclxuICAgICAgdGhpcy5jbG9zZU1vdmVVc2VyV2l6YXJkLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBvblJ1bk1vdmVVc2VyKCk6IHZvaWQge1xyXG4gICAgICB0aGlzLnJ1bk1vdmVVc2VyLmVtaXQoKTtcclxuICAgIH1cclxufVxyXG4iLCI8YXBwLWxvYWRlciAqbmdJZj1cImRhdGFQZW5kaW5nXCI+PC9hcHAtbG9hZGVyPlxyXG48ZGl2IGNsYXNzPVwibW92ZS11c2VyLXN0ZXBwZXItY29udGFpbmVyXCI+XHJcbiAgICA8aGVhZGVyIGNsYXNzPVwibW92ZS11c2VyLWhlYWRlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb3ZlLXVzZXItaGVhZGVyX190aXRsZVwiPk1vdmUgVXNlciB7e3VzZXIudXNlcmlkfX08L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW92ZS11c2VyLWhlYWRlcl9fY2xvc2VcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXBwLWljb24gaWNvbi13aGl0ZS1jbG9zZVwiIChjbGljayk9XCJvbkNsb3NlKClcIj48L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2hlYWRlcj5cclxuICAgIDxhcHAtbW92ZS11c2VyLXN0ZXBwZXIgKm5nSWY9XCJ1c2VyXCIgW2N1c3RvbWVySWRdPVwiY3VzdG9tZXJJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt1c2VyXT1cInVzZXJcIiAoY2FuY2VsKT1cIm9uQ2xvc2UoKVwiIChkb25lKT1cImRvbmUuZW1pdCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJ1bk1vdmVVc2VyKT1cIm9uUnVuTW92ZVVzZXIoKVwiPjwvYXBwLW1vdmUtdXNlci1zdGVwcGVyPlxyXG48L2Rpdj5cclxuIl19
@@ -1,5 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { of, forkJoin } from 'rxjs';
2
+ import { of, forkJoin, Subject } from 'rxjs';
3
3
  import { SimplifiedUser } from '../classes/simlified-user';
4
4
  import { API } from '../app.constants';
5
5
  import { map } from 'rxjs/operators';
@@ -15,6 +15,8 @@ export class UserService {
15
15
  this.userId = '';
16
16
  this.userIdExistPending = false;
17
17
  this.hasExistedUserId = false;
18
+ this.moveUserPending = false;
19
+ this.userMoved$ = new Subject();
18
20
  }
19
21
  ngOnInit() {
20
22
  console.log(this.siteId);
@@ -36,22 +38,12 @@ export class UserService {
36
38
  return this.apiService.post(API.UPDATE_USER_FIELDS.replace(':siteId', String(this.siteId)).replace(':token', this.user.token), body);
37
39
  // .pipe(this.handleError(false, true));
38
40
  }
39
- moveUser(customerId, user) {
40
- // return new Observable<boolean>(observer => {
41
- // setTimeout(() => {
42
- // observer.next(true);
43
- //
44
- // }, 80000);
45
- // });
46
- return this.apiWebexService.post(API.MOVE_USER, this.getMoveUserBody(customerId, user));
47
- // .pipe(this.handleError(true, true));
48
- }
49
41
  moveUserToMT(customerId, user) {
50
42
  // return new Observable<boolean>(observer => {
51
43
  // setTimeout(() => {
52
44
  // observer.next(true);
53
45
  //
54
- // }, 80000);
46
+ // }, 1000);
55
47
  // });
56
48
  return this.apiWebexService.post(API.MOVE_USER, this.getMoveUserBody(customerId, user));
57
49
  // .pipe(this.handleError(true, true));
@@ -61,7 +53,7 @@ export class UserService {
61
53
  // setTimeout(() => {
62
54
  // observer.next(true);
63
55
  //
64
- // }, 80000);
56
+ // }, 1000);
65
57
  // });
66
58
  const URL = API.REVERT_WEBEX_USER.replace(':customerId', customerId).replace(':webexUUID', String(user.webexUUID));
67
59
  return this.apiWebexService.post(URL, this.getMoveUserBody(customerId, user));
@@ -147,4 +139,4 @@ UserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version:
147
139
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserService, decorators: [{
148
140
  type: Injectable
149
141
  }], ctorParameters: function () { return [{ type: i1.APIService }, { type: i2.ApiWebexService }]; } });
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXJzLWxpc3Qvc3JjL3NlcnZpY2VzL3VzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBYyxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdkMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQUt0RCxNQUFNLE9BQU8sV0FBVztJQVF0QixZQUNVLFVBQXNCLEVBQ3RCLGVBQWdDO1FBRGhDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBVDFDLFdBQU0sR0FBVyxDQUFDLENBQUMsQ0FBQztRQUNwQixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUMzQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFTekIsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMxQixDQUFDO0lBRU0sY0FBYyxDQUFDLE1BQWMsRUFBRSxNQUFjO1FBQ2xELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FB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QVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQztRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUM7SUFDekQsQ0FBQztJQUVPLHNCQUFzQixDQUFDLFNBQWM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUU7WUFDdEIsT0FBTztTQUNSO1FBQ0QsS0FBSyxJQUFJLEdBQUcsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDekQsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixFQUFFO2dCQUNuRCx5RUFBeUU7Z0JBQ3pFLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO2dCQUNsQyxPQUFPO2FBQ1I7U0FDRjtJQUNILENBQUM7O3lHQTNKVSxXQUFXOzZHQUFYLFdBQVc7NEZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNpbXBsaWZpZWRVc2VyIH0gZnJvbSAnLi4vY2xhc3Nlcy9zaW1saWZpZWQtdXNlcic7XHJcbmltcG9ydCB7IEFQSSB9IGZyb20gJy4uL2FwcC5jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBBUElTZXJ2aWNlIH0gZnJvbSAnLi9hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMuc2VydmljZSc7XHJcbmltcG9ydCB7IExpc3RVc2VyIH0gZnJvbSAnLi4vY2xhc3Nlcy91c2VyLWxpc3QnO1xyXG5pbXBvcnQgeyBBcGlXZWJleFNlcnZpY2UgfSBmcm9tICcuL2FwaS13ZWJleC5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFVzZXJTZXJ2aWNlIGltcGxlbWVudHMgT25Jbml0e1xyXG4gIHNpdGVJZDogbnVtYmVyID0gLTE7XHJcbiAgdXNlcklkOiBzdHJpbmcgPSAnJztcclxuICB1c2VySWRFeGlzdFBlbmRpbmcgPSBmYWxzZTtcclxuICBoYXNFeGlzdGVkVXNlcklkID0gZmFsc2U7XHJcbiAgdXNlciE6IFNpbXBsaWZpZWRVc2VyO1xyXG4gIG9yaWdpblVzZXIhOiBTaW1wbGlmaWVkVXNlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFwaVNlcnZpY2U6IEFQSVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwaVdlYmV4U2VydmljZTogQXBpV2ViZXhTZXJ2aWNlXHJcbiAgKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLnNpdGVJZClcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmZXRjaFVzZXJUb2tlbihzaXRlSWQ6IG51bWJlciwgdXNlcklkOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgdGhpcy5zaXRlSWQgPSBzaXRlSWQ7XHJcbiAgICB0aGlzLnVzZXJJZCA9IHVzZXJJZDtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goQVBJLlVTRVJfVE9LRU4ucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyh0aGlzLnNpdGVJZCkpLnJlcGxhY2UoJzp1c2VySWQnLCBlbmNvZGVVUklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KHVzZXJJZCkpKSlcclxuICAgICAgLnBpcGUobWFwKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHRva2VuID0gT2JqZWN0LmtleXMocmVzdWx0KVswXTtcclxuICAgICAgICB0aGlzLnNldFNpbXBsaWZpZWRVc2VyKE9iamVjdC52YWx1ZXMocmVzdWx0KVswXSwgdG9rZW4pO1xyXG4gICAgICB9KSlcclxuICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IoZmFsc2UsIHRydWUpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVVc2VyRmllbGRzKGJvZHk6IGFueSk6IGFueSB7XHJcbiAgICBpZiAoIXRoaXMudXNlcklkIHx8ICF0aGlzLnNpdGVJZCB8fCAhdGhpcy51c2VyPy50b2tlbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoQVBJLlVQREFURV9VU0VSX0ZJRUxEUy5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHRoaXMuc2l0ZUlkKSkucmVwbGFjZSgnOnRva2VuJywgdGhpcy51c2VyLnRva2VuKSwgYm9keSlcclxuICAgICAgLy8gLnBpcGUodGhpcy5oYW5kbGVFcnJvcihmYWxzZSwgdHJ1ZSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG1vdmVVc2VyKGN1c3RvbWVySWQ6IGFueSwgdXNlcjogTGlzdFVzZXIpOiBhbnkge1xyXG4gICAgLy8gcmV0dXJuIG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KG9ic2VydmVyID0+IHtcclxuICAgIC8vICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAvLyAgICAgb2JzZXJ2ZXIubmV4dCh0cnVlKTtcclxuICAgIC8vXHJcbiAgICAvLyAgIH0sIDgwMDAwKTtcclxuICAgIC8vIH0pO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpV2ViZXhTZXJ2aWNlLnBvc3QoQVBJLk1PVkVfVVNFUiwgdGhpcy5nZXRNb3ZlVXNlckJvZHkoY3VzdG9tZXJJZCwgdXNlcikpXHJcbiAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKHRydWUsIHRydWUpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBtb3ZlVXNlclRvTVQoY3VzdG9tZXJJZDogYW55LCB1c2VyOiBMaXN0VXNlcik6IGFueSB7XHJcbiAgICAvLyByZXR1cm4gbmV3IE9ic2VydmFibGU8Ym9vbGVhbj4ob2JzZXJ2ZXIgPT4ge1xyXG4gICAgLy8gICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgIC8vICAgICBvYnNlcnZlci5uZXh0KHRydWUpO1xyXG4gICAgLy9cclxuICAgIC8vICAgfSwgODAwMDApO1xyXG4gICAgLy8gfSk7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlXZWJleFNlcnZpY2UucG9zdChBUEkuTU9WRV9VU0VSLCB0aGlzLmdldE1vdmVVc2VyQm9keShjdXN0b21lcklkLCB1c2VyKSlcclxuICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IodHJ1ZSwgdHJ1ZSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG1vdmVVc2VyVG9ESShjdXN0b21lcklkOiBhbnksIHVzZXI6IExpc3RVc2VyKTogYW55IHtcclxuICAgIC8vIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxib29sZWFuPihvYnNlcnZlciA9PiB7XHJcbiAgICAvLyAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgLy8gICAgIG9ic2VydmVyLm5leHQodHJ1ZSk7XHJcbiAgICAvL1xyXG4gICAgLy8gICB9LCA4MDAwMCk7XHJcbiAgICAvLyB9KTtcclxuICAgIGNvbnN0IFVSTCA9IEFQSS5SRVZFUlRfV0VCRVhfVVNFUi5yZXBsYWNlKCc6Y3VzdG9tZXJJZCcsIGN1c3RvbWVySWQpLnJlcGxhY2UoJzp3ZWJleFVVSUQnLCBTdHJpbmcodXNlci53ZWJleFVVSUQpKTtcclxuICAgIHJldHVybiB0aGlzLmFwaVdlYmV4U2VydmljZS5wb3N0KFVSTCwgdGhpcy5nZXRNb3ZlVXNlckJvZHkoY3VzdG9tZXJJZCwgdXNlcikpXHJcbiAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKHRydWUsIHRydWUpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TW92ZVVzZXJCb2R5KGN1c3RvbWVySWQ6IGFueSwgdXNlcjogTGlzdFVzZXIpOiBhbnkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY3VzdG9tZXJJZDogY3VzdG9tZXJJZCxcclxuICAgICAgZW50aXRpZXM6IHtcclxuICAgICAgICBQRVJTT046IFt7Y3VjbUlkOiB1c2VyLmN1Y21JZCwgZW50aXR5SWQ6IHVzZXIudXNlcmlkfV1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkZWxldGVVc2VyKHNpdGVJZDogbnVtYmVyLCB1c2VySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmRlbGV0ZShBUEkuREVMRVRFX1VTRVIucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyhzaXRlSWQpKS5yZXBsYWNlKCc6dXNlcklkJywgZW5jb2RlVVJJQ29tcG9uZW50KGVuY29kZVVSSUNvbXBvbmVudCh1c2VySWQpKSkpXHJcbiAgICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IodHJ1ZSwgdHJ1ZSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZldGNoVXNlckJ5SWQoaWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy51c2VySWRFeGlzdFBlbmRpbmcgPSB0cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5mZXRjaChBUEkuVVNFUl9CWV9JRC5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHRoaXMuc2l0ZUlkKSkucmVwbGFjZSgnOnVzZXJJZCcsIGVuY29kZVVSSUNvbXBvbmVudChlbmNvZGVVUklDb21wb25lbnQoaWQpKSkpXHJcbiAgICAgIC5waXBlKG1hcChyZXN1bHQgPT4ge1xyXG4gICAgICAgIHRoaXMudXNlcklkRXhpc3RQZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHBlcnNpc3RDYWNoZUNoYW5nZXMoKSB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSB7XHJcbiAgICAgIGV4Y2x1ZGVEZXZpY2VFeHRyYU9wdGlvbnM6IHRydWVcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5wcm9jZXNzVXNlckNoYW5nZXNUb0NhY2hlKClcclxuICAgICAgLnBpcGUobWFwKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChBUEkuUEVSU0lTVF9VU0VSX0NBQ0hFLnJlcGxhY2UoJzpzaXRlSWQnLCBTdHJpbmcodGhpcy5zaXRlSWQpKS5yZXBsYWNlKCc6dG9rZW4nLCB0aGlzLnVzZXIudG9rZW4pLCB7fSwgcGFyYW1zKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcblxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC8vIC5waXBlKG1hcCgodXNlcikgPT4ge1xyXG4gICAgICAgICAgLy8gICAvLyB0aGlzLnNldFVzZXIodXNlciwgZmFsc2UsIHRoaXMudXNlci50b2tlbik7XHJcbiAgICAgICAgICAvLyAgIHRoaXMudXNlci5oYXNNb2RpZmllZENhY2hlID0gZmFsc2U7XHJcbiAgICAgICAgICAvLyB9KSlcclxuICAgICAgICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IodHJ1ZSwgdHJ1ZSkpO1xyXG4gICAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcHJvY2Vzc1VzZXJDaGFuZ2VzVG9DYWNoZSgpOiBhbnkge1xyXG4gICAgY29uc3QgY2FsbHMgPSBbXTtcclxuICAgIGNvbnN0IGJvZHkgPSBVdGlsc1NlcnZpY2UuZGlmZih0aGlzLm9yaWdpblVzZXIuZ2V0U2F2YWJsZURhdGEoKSwgdGhpcy51c2VyLmdldFNhdmFibGVEYXRhKCksICd1c2VyJyk7XHJcbiAgICBpZiAoYm9keSkge1xyXG4gICAgICBjYWxscy5wdXNoKHRoaXMudXBkYXRlVXNlckZpZWxkcyhib2R5KSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWNhbGxzPy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIG9mKHRoaXMudXNlcik7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZvcmtKb2luKGNhbGxzKVxyXG4gICAgICAucGlwZShtYXAoKHJlc3BvbnNlczogYW55KSA9PiB7XHJcbiAgICAgICAgLy8gQXBpVXNlclJlc3BvbnNlXHJcbiAgICAgICAgdGhpcy5oYW5kbGVTYXZlVXNlclJlc3BvbnNlKHJlc3BvbnNlcyk7XHJcbiAgICAgIH0pKVxyXG4gICAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKGZhbHNlLCB0cnVlKSk7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhc1Vuc2F2ZWRDaGFuZ2VzKCkge1xyXG4gICAgcmV0dXJuICF0aGlzLnVzZXIuZXF1YWwodGhpcy5vcmlnaW5Vc2VyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRTaW1wbGlmaWVkVXNlcih1c2VyOiBhbnksIHRva2VuPzogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnVzZXIgPSBuZXcgU2ltcGxpZmllZFVzZXIodXNlcik7XHJcbiAgICBjb25zdCBjb3BpZWRVc2VyID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh1c2VyKSk7XHJcbiAgICB0aGlzLm9yaWdpblVzZXIgPSBuZXcgU2ltcGxpZmllZFVzZXIoY29waWVkVXNlcik7XHJcbiAgICB0aGlzLnVzZXIudG9rZW4gPSB0aGlzLnVzZXIudG9rZW4gfHwgdG9rZW47XHJcbiAgICB0aGlzLm9yaWdpblVzZXIudG9rZW4gPSB0aGlzLm9yaWdpblVzZXIudG9rZW4gfHwgdG9rZW47XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVNhdmVVc2VyUmVzcG9uc2UocmVzcG9uc2VzOiBhbnkpIHtcclxuICAgIGlmICghcmVzcG9uc2VzPy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZm9yIChsZXQgbGVuID0gcmVzcG9uc2VzLmxlbmd0aCwgaSA9IGxlbiAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgIGlmIChyZXNwb25zZXNbaV0gJiYgcmVzcG9uc2VzW2ldLmN1cnJlbnRVcGRhdGVkVXNlcikge1xyXG4gICAgICAgIC8vIHRoaXMuc2V0VXNlcihyZXNwb25zZXNbaV0uY3VycmVudFVwZGF0ZWRVc2VyLCBmYWxzZSwgdGhpcy51c2VyLnRva2VuKTtcclxuICAgICAgICB0aGlzLnVzZXIuaGFzTW9kaWZpZWRDYWNoZSA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXJzLWxpc3Qvc3JjL3NlcnZpY2VzL3VzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBYyxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXZDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFLdEQsTUFBTSxPQUFPLFdBQVc7SUFVdEIsWUFDVSxVQUFzQixFQUN0QixlQUFnQztRQURoQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQVgxQyxXQUFNLEdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDcEIsV0FBTSxHQUFXLEVBQUUsQ0FBQztRQUNwQix1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDM0IscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBR3pCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO0lBT2hDLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDMUIsQ0FBQztJQUVNLGNBQWMsQ0FBQyxNQUFjLEVBQUUsTUFBYztRQUNsRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDcEosSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ3hCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDMUQsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNMLHdDQUF3QztJQUMxQyxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsSUFBUztRQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtZQUNyRCxPQUFPO1NBQ1I7UUFDRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDbEksd0NBQXdDO0lBQzVDLENBQUM7SUFFTSxZQUFZLENBQUMsVUFBZSxFQUFFLElBQWM7UUFDakQsK0NBQStDO1FBQy9DLHVCQUF1QjtRQUN2QiwyQkFBMkI7UUFDM0IsRUFBRTtRQUNGLGNBQWM7UUFDZCxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUE7UUFDdkYsdUNBQXVDO0lBQ3pDLENBQUM7SUFFTSxZQUFZLENBQUMsVUFBZSxFQUFFLElBQWM7UUFDakQsK0NBQStDO1FBQy9DLHVCQUF1QjtRQUN2QiwyQkFBMkI7UUFDM0IsRUFBRTtRQUNGLGNBQWM7UUFDZCxNQUFNO1FBQ04sTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDbkgsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUM3RSx1Q0FBdUM7SUFDekMsQ0FBQztJQUVPLGVBQWUsQ0FBQyxVQUFlLEVBQUUsSUFBYztRQUNyRCxPQUFPO1lBQ0wsVUFBVSxFQUFFLFVBQVU7WUFDdEIsUUFBUSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDLEVBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUMsQ0FBQzthQUN2RDtTQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sVUFBVSxDQUFDLE1BQWMsRUFBRSxNQUFjO1FBQzlDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDbEosdUNBQXVDO0lBQzNDLENBQUM7SUFFTSxhQUFhLENBQUMsRUFBVTtRQUM3QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNoSixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7WUFDaEMsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFTSxtQkFBbUI7UUFDeEIsTUFBTSxNQUFNLEdBQUc7WUFDYix5QkFBeUIsRUFBRSxJQUFJO1NBQ2hDLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyx5QkFBeUIsRUFBRTthQUNwQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7WUFDeEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUM7aUJBQ3ZJLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFFaEIsQ0FBQyxDQUFDLENBQUE7WUFDRix3QkFBd0I7WUFDeEIsbURBQW1EO1lBQ25ELHdDQUF3QztZQUN4QyxNQUFNO1lBQ04sdUNBQXVDO1FBQzNDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0lBRU0seUJBQXlCO1FBQzlCLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNqQixNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNyRyxJQUFJLElBQUksRUFBRTtZQUNSLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDekM7UUFDRCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUNsQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEI7UUFFRCxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUM7YUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQWMsRUFBRSxFQUFFO1lBQzNCLGtCQUFrQjtZQUNsQixJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNILHdDQUF3QztJQUU1QyxDQUFDO0lBRU0saUJBQWlCO1FBQ3RCLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLGlCQUFpQixDQUFDLElBQVMsRUFBRSxLQUFXO1FBQzdDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUM7UUFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDO0lBQ3pELENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxTQUFjO1FBQzNDLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFO1lBQ3RCLE9BQU87U0FDUjtRQUNELEtBQUssSUFBSSxHQUFHLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3pELElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsRUFBRTtnQkFDbkQseUVBQXlFO2dCQUN6RSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztnQkFDbEMsT0FBTzthQUNSO1NBQ0Y7SUFDSCxDQUFDOzt5R0FsSlUsV0FBVzs2R0FBWCxXQUFXOzRGQUFYLFdBQVc7a0JBRHZCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBmb3JrSm9pbiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTaW1wbGlmaWVkVXNlciB9IGZyb20gJy4uL2NsYXNzZXMvc2ltbGlmaWVkLXVzZXInO1xyXG5pbXBvcnQgeyBBUEkgfSBmcm9tICcuLi9hcHAuY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQVBJU2VydmljZSB9IGZyb20gJy4vYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFV0aWxzU2VydmljZSB9IGZyb20gJy4uL3V0aWxzL3V0aWxzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMaXN0VXNlciB9IGZyb20gJy4uL2NsYXNzZXMvdXNlci1saXN0JztcclxuaW1wb3J0IHsgQXBpV2ViZXhTZXJ2aWNlIH0gZnJvbSAnLi9hcGktd2ViZXguc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBVc2VyU2VydmljZSBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBzaXRlSWQ6IG51bWJlciA9IC0xO1xyXG4gIHVzZXJJZDogc3RyaW5nID0gJyc7XHJcbiAgdXNlcklkRXhpc3RQZW5kaW5nID0gZmFsc2U7XHJcbiAgaGFzRXhpc3RlZFVzZXJJZCA9IGZhbHNlO1xyXG4gIHVzZXIhOiBTaW1wbGlmaWVkVXNlcjtcclxuICBvcmlnaW5Vc2VyITogU2ltcGxpZmllZFVzZXI7XHJcbiAgbW92ZVVzZXJQZW5kaW5nID0gZmFsc2U7XHJcbiAgdXNlck1vdmVkJCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFwaVNlcnZpY2U6IEFQSVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwaVdlYmV4U2VydmljZTogQXBpV2ViZXhTZXJ2aWNlXHJcbiAgKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLnNpdGVJZClcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmZXRjaFVzZXJUb2tlbihzaXRlSWQ6IG51bWJlciwgdXNlcklkOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgdGhpcy5zaXRlSWQgPSBzaXRlSWQ7XHJcbiAgICB0aGlzLnVzZXJJZCA9IHVzZXJJZDtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goQVBJLlVTRVJfVE9LRU4ucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyh0aGlzLnNpdGVJZCkpLnJlcGxhY2UoJzp1c2VySWQnLCBlbmNvZGVVUklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KHVzZXJJZCkpKSlcclxuICAgICAgLnBpcGUobWFwKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHRva2VuID0gT2JqZWN0LmtleXMocmVzdWx0KVswXTtcclxuICAgICAgICB0aGlzLnNldFNpbXBsaWZpZWRVc2VyKE9iamVjdC52YWx1ZXMocmVzdWx0KVswXSwgdG9rZW4pO1xyXG4gICAgICB9KSlcclxuICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IoZmFsc2UsIHRydWUpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVVc2VyRmllbGRzKGJvZHk6IGFueSk6IGFueSB7XHJcbiAgICBpZiAoIXRoaXMudXNlcklkIHx8ICF0aGlzLnNpdGVJZCB8fCAhdGhpcy51c2VyPy50b2tlbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoQVBJLlVQREFURV9VU0VSX0ZJRUxEUy5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHRoaXMuc2l0ZUlkKSkucmVwbGFjZSgnOnRva2VuJywgdGhpcy51c2VyLnRva2VuKSwgYm9keSlcclxuICAgICAgLy8gLnBpcGUodGhpcy5oYW5kbGVFcnJvcihmYWxzZSwgdHJ1ZSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG1vdmVVc2VyVG9NVChjdXN0b21lcklkOiBhbnksIHVzZXI6IExpc3RVc2VyKTogYW55IHtcclxuICAgIC8vIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxib29sZWFuPihvYnNlcnZlciA9PiB7XHJcbiAgICAvLyAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgLy8gICAgIG9ic2VydmVyLm5leHQodHJ1ZSk7XHJcbiAgICAvL1xyXG4gICAgLy8gICB9LCAxMDAwKTtcclxuICAgIC8vIH0pO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpV2ViZXhTZXJ2aWNlLnBvc3QoQVBJLk1PVkVfVVNFUiwgdGhpcy5nZXRNb3ZlVXNlckJvZHkoY3VzdG9tZXJJZCwgdXNlcikpXHJcbiAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKHRydWUsIHRydWUpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBtb3ZlVXNlclRvREkoY3VzdG9tZXJJZDogYW55LCB1c2VyOiBMaXN0VXNlcik6IGFueSB7XHJcbiAgICAvLyByZXR1cm4gbmV3IE9ic2VydmFibGU8Ym9vbGVhbj4ob2JzZXJ2ZXIgPT4ge1xyXG4gICAgLy8gICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgIC8vICAgICBvYnNlcnZlci5uZXh0KHRydWUpO1xyXG4gICAgLy9cclxuICAgIC8vICAgfSwgMTAwMCk7XHJcbiAgICAvLyB9KTtcclxuICAgIGNvbnN0IFVSTCA9IEFQSS5SRVZFUlRfV0VCRVhfVVNFUi5yZXBsYWNlKCc6Y3VzdG9tZXJJZCcsIGN1c3RvbWVySWQpLnJlcGxhY2UoJzp3ZWJleFVVSUQnLCBTdHJpbmcodXNlci53ZWJleFVVSUQpKTtcclxuICAgIHJldHVybiB0aGlzLmFwaVdlYmV4U2VydmljZS5wb3N0KFVSTCwgdGhpcy5nZXRNb3ZlVXNlckJvZHkoY3VzdG9tZXJJZCwgdXNlcikpXHJcbiAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKHRydWUsIHRydWUpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TW92ZVVzZXJCb2R5KGN1c3RvbWVySWQ6IGFueSwgdXNlcjogTGlzdFVzZXIpOiBhbnkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY3VzdG9tZXJJZDogY3VzdG9tZXJJZCxcclxuICAgICAgZW50aXRpZXM6IHtcclxuICAgICAgICBQRVJTT046IFt7Y3VjbUlkOiB1c2VyLmN1Y21JZCwgZW50aXR5SWQ6IHVzZXIudXNlcmlkfV1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkZWxldGVVc2VyKHNpdGVJZDogbnVtYmVyLCB1c2VySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmRlbGV0ZShBUEkuREVMRVRFX1VTRVIucmVwbGFjZSgnOnNpdGVJZCcsIFN0cmluZyhzaXRlSWQpKS5yZXBsYWNlKCc6dXNlcklkJywgZW5jb2RlVVJJQ29tcG9uZW50KGVuY29kZVVSSUNvbXBvbmVudCh1c2VySWQpKSkpXHJcbiAgICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IodHJ1ZSwgdHJ1ZSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZldGNoVXNlckJ5SWQoaWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy51c2VySWRFeGlzdFBlbmRpbmcgPSB0cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5mZXRjaChBUEkuVVNFUl9CWV9JRC5yZXBsYWNlKCc6c2l0ZUlkJywgU3RyaW5nKHRoaXMuc2l0ZUlkKSkucmVwbGFjZSgnOnVzZXJJZCcsIGVuY29kZVVSSUNvbXBvbmVudChlbmNvZGVVUklDb21wb25lbnQoaWQpKSkpXHJcbiAgICAgIC5waXBlKG1hcChyZXN1bHQgPT4ge1xyXG4gICAgICAgIHRoaXMudXNlcklkRXhpc3RQZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHBlcnNpc3RDYWNoZUNoYW5nZXMoKSB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSB7XHJcbiAgICAgIGV4Y2x1ZGVEZXZpY2VFeHRyYU9wdGlvbnM6IHRydWVcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5wcm9jZXNzVXNlckNoYW5nZXNUb0NhY2hlKClcclxuICAgICAgLnBpcGUobWFwKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChBUEkuUEVSU0lTVF9VU0VSX0NBQ0hFLnJlcGxhY2UoJzpzaXRlSWQnLCBTdHJpbmcodGhpcy5zaXRlSWQpKS5yZXBsYWNlKCc6dG9rZW4nLCB0aGlzLnVzZXIudG9rZW4pLCB7fSwgcGFyYW1zKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcblxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC8vIC5waXBlKG1hcCgodXNlcikgPT4ge1xyXG4gICAgICAgICAgLy8gICAvLyB0aGlzLnNldFVzZXIodXNlciwgZmFsc2UsIHRoaXMudXNlci50b2tlbik7XHJcbiAgICAgICAgICAvLyAgIHRoaXMudXNlci5oYXNNb2RpZmllZENhY2hlID0gZmFsc2U7XHJcbiAgICAgICAgICAvLyB9KSlcclxuICAgICAgICAgIC8vIC5waXBlKHRoaXMuaGFuZGxlRXJyb3IodHJ1ZSwgdHJ1ZSkpO1xyXG4gICAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcHJvY2Vzc1VzZXJDaGFuZ2VzVG9DYWNoZSgpOiBhbnkge1xyXG4gICAgY29uc3QgY2FsbHMgPSBbXTtcclxuICAgIGNvbnN0IGJvZHkgPSBVdGlsc1NlcnZpY2UuZGlmZih0aGlzLm9yaWdpblVzZXIuZ2V0U2F2YWJsZURhdGEoKSwgdGhpcy51c2VyLmdldFNhdmFibGVEYXRhKCksICd1c2VyJyk7XHJcbiAgICBpZiAoYm9keSkge1xyXG4gICAgICBjYWxscy5wdXNoKHRoaXMudXBkYXRlVXNlckZpZWxkcyhib2R5KSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWNhbGxzPy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIG9mKHRoaXMudXNlcik7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZvcmtKb2luKGNhbGxzKVxyXG4gICAgICAucGlwZShtYXAoKHJlc3BvbnNlczogYW55KSA9PiB7XHJcbiAgICAgICAgLy8gQXBpVXNlclJlc3BvbnNlXHJcbiAgICAgICAgdGhpcy5oYW5kbGVTYXZlVXNlclJlc3BvbnNlKHJlc3BvbnNlcyk7XHJcbiAgICAgIH0pKVxyXG4gICAgICAvLyAucGlwZSh0aGlzLmhhbmRsZUVycm9yKGZhbHNlLCB0cnVlKSk7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhc1Vuc2F2ZWRDaGFuZ2VzKCkge1xyXG4gICAgcmV0dXJuICF0aGlzLnVzZXIuZXF1YWwodGhpcy5vcmlnaW5Vc2VyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRTaW1wbGlmaWVkVXNlcih1c2VyOiBhbnksIHRva2VuPzogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnVzZXIgPSBuZXcgU2ltcGxpZmllZFVzZXIodXNlcik7XHJcbiAgICBjb25zdCBjb3BpZWRVc2VyID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh1c2VyKSk7XHJcbiAgICB0aGlzLm9yaWdpblVzZXIgPSBuZXcgU2ltcGxpZmllZFVzZXIoY29waWVkVXNlcik7XHJcbiAgICB0aGlzLnVzZXIudG9rZW4gPSB0aGlzLnVzZXIudG9rZW4gfHwgdG9rZW47XHJcbiAgICB0aGlzLm9yaWdpblVzZXIudG9rZW4gPSB0aGlzLm9yaWdpblVzZXIudG9rZW4gfHwgdG9rZW47XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVNhdmVVc2VyUmVzcG9uc2UocmVzcG9uc2VzOiBhbnkpIHtcclxuICAgIGlmICghcmVzcG9uc2VzPy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZm9yIChsZXQgbGVuID0gcmVzcG9uc2VzLmxlbmd0aCwgaSA9IGxlbiAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgIGlmIChyZXNwb25zZXNbaV0gJiYgcmVzcG9uc2VzW2ldLmN1cnJlbnRVcGRhdGVkVXNlcikge1xyXG4gICAgICAgIC8vIHRoaXMuc2V0VXNlcihyZXNwb25zZXNbaV0uY3VycmVudFVwZGF0ZWRVc2VyLCBmYWxzZSwgdGhpcy51c2VyLnRva2VuKTtcclxuICAgICAgICB0aGlzLnVzZXIuaGFzTW9kaWZpZWRDYWNoZSA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==