tango-app-ui-shared 3.0.52-dev → 3.0.53-dev

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.
@@ -1,9 +1,11 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "@angular/forms";
3
+ import * as i1 from "../../../services/auth.service";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@angular/forms";
5
6
  export class CustomSelectComponent {
6
7
  cd;
8
+ authService;
7
9
  onClick(event) {
8
10
  const target = event.target;
9
11
  if (!target.closest('.dropdown')) {
@@ -22,11 +24,18 @@ export class CustomSelectComponent {
22
24
  showDropdown;
23
25
  searchValue;
24
26
  instanceId;
25
- constructor(cd) {
27
+ constructor(cd, authService) {
26
28
  this.cd = cd;
29
+ this.authService = authService;
27
30
  }
28
31
  ngOnInit() {
29
32
  this.instanceId = crypto.randomUUID();
33
+ this.authService.dropDownTrigger.subscribe((e) => {
34
+ if (e !== this.instanceId) {
35
+ this.showDropdown = false;
36
+ this.cd.detectChanges();
37
+ }
38
+ });
30
39
  }
31
40
  ngOnChanges(changes) {
32
41
  if (changes['items'] && this.items?.length) {
@@ -49,6 +58,7 @@ export class CustomSelectComponent {
49
58
  });
50
59
  }
51
60
  openDropdown(event) {
61
+ this.authService.dropDownTrigger.next(this.instanceId);
52
62
  event.stopPropagation();
53
63
  this.showDropdown = !this.showDropdown;
54
64
  }
@@ -115,13 +125,13 @@ export class CustomSelectComponent {
115
125
  checkIfAllSelected() {
116
126
  return this.filteredValues.every((item) => item.isSelected);
117
127
  }
118
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: CustomSelectComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
119
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: CustomSelectComponent, selector: "lib-select", inputs: { items: "items", searchField: "searchField", multi: "multi", idField: "idField", selectedValues: "selectedValues", disabled: "disabled", label: "label" }, outputs: { selected: "selected" }, host: { listeners: { "document:click": "onClick($event)" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"outer-container\">\r\n <div [ngClass]=\"disabled ? 'disable-input':''\" (click)=\"openDropdown($event)\" class=\"form-select\">\r\n <ng-container *ngIf=\"multi\" >\r\n {{selectedValues?.length}} {{label}} Selected \r\n </ng-container>\r\n <ng-container *ngIf=\"!multi\" >\r\n {{selectedValues?.[0]?.[searchField]}}\r\n </ng-container>\r\n </div>\r\n <div [ngClass]=\"showDropdown ? '' : 'd-none'\" class=\"input-container dropdown\" >\r\n <div class=\"w-100 input-wrapper\">\r\n <input [(ngModel)]=\"searchValue\" placeholder=\"Search\" (input)=\"onInput($event)\" type=\"text\"> \r\n <svg class=\"search-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"17\" viewBox=\"0 0 16 17\" fill=\"none\">\r\n <path d=\"M14 14.5L11.1 11.6M12.6667 7.83333C12.6667 10.7789 10.2789 13.1667 7.33333 13.1667C4.38781 13.1667 2 10.7789 2 7.83333C2 4.88781 4.38781 2.5 7.33333 2.5C10.2789 2.5 12.6667 4.88781 12.6667 7.83333Z\" stroke=\"#667085\" stroke-width=\"1.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> \r\n </div>\r\n <ul>\r\n <li *ngIf=\"multi && filteredValues?.length\">\r\n <label class=\"form-check\" for=\"selectAll\">\r\n <input (change)=\"onSelectAll($event)\" [checked]=\"checkIfAllSelected()\" class=\"form-check-input me-3\" type=\"checkbox\"\r\n id=\"selectAll\">\r\n <span class=\"form-check-label\" >\r\n Select All\r\n </span>\r\n </label>\r\n </li>\r\n <li *ngFor=\"let item of filteredValues\" [ngClass]=\"item.isSelected && !multi ? 'selected' : ''\" >\r\n <label [for]=\"item[idField] + instanceId\" [ngClass]=\"multi ? '': 'ps-0'\" class=\"form-check\">\r\n <input [ngClass]=\"multi ? '': 'd-none'\" (change)=\"onSelect($event, item)\" [(ngModel)]=\"item.isSelected\" class=\"form-check-input me-3\" type=\"checkbox\" value=\"\"\r\n [id]=\"item[idField] + instanceId\">\r\n <span class=\"form-check-label\" >\r\n {{item[searchField]}}\r\n </span>\r\n </label>\r\n </li>\r\n <li *ngIf=\"!filteredValues?.length\" >\r\n <span class=\"d-flex align-items-center justify-content-center\" >No data found</span>\r\n </li>\r\n </ul> \r\n </div> \r\n \r\n</div>", styles: [":host{width:100%;height:100%}.outer-container{position:relative;background-color:#fff}.outer-container .form-select{font-size:1.1rem;font-weight:600;border-radius:8px!important;color:var(--Gray-500, #344054);border:1px solid var(--Gray-300, #D0D5DD)!important;height:45px}.outer-container .disable-input{pointer-events:none;background-color:#f9fafb!important}.outer-container .input-container{position:absolute;width:100%;z-index:1}.outer-container .input-container .input-wrapper{padding:8px 10px;background-color:#fff;border-top-right-radius:8px;border-top-left-radius:8px;border-top:1px solid rgba(16,24,40,.08);border-right:1px solid rgba(16,24,40,.08);border-left:1px solid rgba(16,24,40,.08)}.outer-container .input-container .input-wrapper input{width:100%;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d;padding:10px 14px 10px 30px;outline:none}.outer-container .input-container .input-wrapper input ::placeholder{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.outer-container .input-container .input-wrapper .search-icon{position:absolute;left:20px;top:20px}.outer-container .input-container ul{position:relative;background-color:#fff;margin:0;padding:0;max-height:200px;min-height:auto;overflow-y:auto;border-bottom-right-radius:8px;border-bottom-left-radius:8px;border-bottom:1px solid rgba(16,24,40,.08);border-right:1px solid rgba(16,24,40,.08);border-left:1px solid rgba(16,24,40,.08)}.outer-container .input-container ul .selected{background:#f9fafb}.outer-container .input-container ul li{list-style:none;padding:10px 16px;cursor:pointer}.outer-container .input-container ul li label{cursor:pointer}.outer-container .input-container ul li:hover{background:#f9fafb}.form-check{display:flex;align-items:center}.form-check-input{height:16px;width:16px;border-radius:4px;border:1px solid var(--Primary-600, #00A3FF)}.form-check-input:checked{--bs-form-check-bg-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAB4SURBVHgBhY7NDUBQEIRnqcJNKXTg6qYTStCB+Isy6IQSNMDa9SLh5eWZZPcw+81kCX/quABhD73QyKXsGoyIvNCJSto2hEhNtY4N9cwYeMXEsVqB1GaSauRQOpty2tSmO3FgloAmF5nEhgyoesMO6CuFW66fn2xdFyA3ZzcRLrMAAAAASUVORK5CYII=);background-color:#eaf8ff;border-color:#00a3ff}.form-check-label{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
128
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: CustomSelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Component });
129
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: CustomSelectComponent, selector: "lib-select", inputs: { items: "items", searchField: "searchField", multi: "multi", idField: "idField", selectedValues: "selectedValues", disabled: "disabled", label: "label" }, outputs: { selected: "selected" }, host: { listeners: { "document:click": "onClick($event)" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"outer-container\">\r\n <div [ngClass]=\"disabled ? 'disable-input':''\" (click)=\"openDropdown($event)\" class=\"form-select\">\r\n <ng-container *ngIf=\"multi\" >\r\n {{selectedValues?.length}} {{label}} Selected \r\n </ng-container>\r\n <ng-container *ngIf=\"!multi\" >\r\n {{selectedValues?.[0]?.[searchField]}}\r\n </ng-container>\r\n </div>\r\n <div [ngClass]=\"showDropdown ? '' : 'd-none'\" class=\"input-container dropdown\" >\r\n <div class=\"w-100 input-wrapper\">\r\n <input [(ngModel)]=\"searchValue\" placeholder=\"Search\" (input)=\"onInput($event)\" type=\"text\"> \r\n <svg class=\"search-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"17\" viewBox=\"0 0 16 17\" fill=\"none\">\r\n <path d=\"M14 14.5L11.1 11.6M12.6667 7.83333C12.6667 10.7789 10.2789 13.1667 7.33333 13.1667C4.38781 13.1667 2 10.7789 2 7.83333C2 4.88781 4.38781 2.5 7.33333 2.5C10.2789 2.5 12.6667 4.88781 12.6667 7.83333Z\" stroke=\"#667085\" stroke-width=\"1.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> \r\n </div>\r\n <ul>\r\n <li *ngIf=\"multi && filteredValues?.length\">\r\n <label class=\"form-check\" for=\"selectAll\">\r\n <input (change)=\"onSelectAll($event)\" [checked]=\"checkIfAllSelected()\" class=\"form-check-input me-3\" type=\"checkbox\"\r\n id=\"selectAll\">\r\n <span class=\"form-check-label\" >\r\n Select All\r\n </span>\r\n </label>\r\n </li>\r\n <li *ngFor=\"let item of filteredValues\" [ngClass]=\"item.isSelected && !multi ? 'selected' : ''\" >\r\n <label [for]=\"item[idField] + instanceId\" [ngClass]=\"multi ? '': 'ps-0'\" class=\"form-check\">\r\n <input [ngClass]=\"multi ? '': 'd-none'\" (change)=\"onSelect($event, item)\" [(ngModel)]=\"item.isSelected\" class=\"form-check-input me-3\" type=\"checkbox\" value=\"\"\r\n [id]=\"item[idField] + instanceId\">\r\n <span class=\"form-check-label\" >\r\n {{item[searchField]}}\r\n </span>\r\n </label>\r\n </li>\r\n <li *ngIf=\"!filteredValues?.length\" >\r\n <span class=\"d-flex align-items-center justify-content-center\" >No data found</span>\r\n </li>\r\n </ul> \r\n </div> \r\n \r\n</div>", styles: [":host{width:100%;height:100%}.outer-container{position:relative;background-color:#fff}.outer-container .form-select{font-size:1.1rem;font-weight:600;border-radius:8px!important;color:var(--Gray-500, #344054);border:1px solid var(--Gray-300, #D0D5DD)!important;height:45px}.outer-container .disable-input{pointer-events:none;background-color:#f9fafb!important}.outer-container .input-container{position:absolute;width:100%;z-index:1}.outer-container .input-container .input-wrapper{padding:8px 10px;background-color:#fff;border-top-right-radius:8px;border-top-left-radius:8px;border-top:1px solid rgba(16,24,40,.08);border-right:1px solid rgba(16,24,40,.08);border-left:1px solid rgba(16,24,40,.08)}.outer-container .input-container .input-wrapper input{width:100%;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d;padding:10px 14px 10px 30px;outline:none}.outer-container .input-container .input-wrapper input ::placeholder{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.outer-container .input-container .input-wrapper .search-icon{position:absolute;left:20px;top:20px}.outer-container .input-container ul{position:relative;background-color:#fff;margin:0;padding:0;max-height:200px;min-height:auto;overflow-y:auto;border-bottom-right-radius:8px;border-bottom-left-radius:8px;border-bottom:1px solid rgba(16,24,40,.08);border-right:1px solid rgba(16,24,40,.08);border-left:1px solid rgba(16,24,40,.08)}.outer-container .input-container ul .selected{background:#f9fafb}.outer-container .input-container ul li{list-style:none;padding:10px 16px;cursor:pointer}.outer-container .input-container ul li label{cursor:pointer}.outer-container .input-container ul li:hover{background:#f9fafb}.form-check{display:flex;align-items:center}.form-check-input{height:16px;width:16px;border-radius:4px;border:1px solid var(--Primary-600, #00A3FF)}.form-check-input:checked{--bs-form-check-bg-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAB4SURBVHgBhY7NDUBQEIRnqcJNKXTg6qYTStCB+Isy6IQSNMDa9SLh5eWZZPcw+81kCX/quABhD73QyKXsGoyIvNCJSto2hEhNtY4N9cwYeMXEsVqB1GaSauRQOpty2tSmO3FgloAmF5nEhgyoesMO6CuFW66fn2xdFyA3ZzcRLrMAAAAASUVORK5CYII=);background-color:#eaf8ff;border-color:#00a3ff}.form-check-label{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
120
130
  }
121
131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: CustomSelectComponent, decorators: [{
122
132
  type: Component,
123
133
  args: [{ selector: 'lib-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"outer-container\">\r\n <div [ngClass]=\"disabled ? 'disable-input':''\" (click)=\"openDropdown($event)\" class=\"form-select\">\r\n <ng-container *ngIf=\"multi\" >\r\n {{selectedValues?.length}} {{label}} Selected \r\n </ng-container>\r\n <ng-container *ngIf=\"!multi\" >\r\n {{selectedValues?.[0]?.[searchField]}}\r\n </ng-container>\r\n </div>\r\n <div [ngClass]=\"showDropdown ? '' : 'd-none'\" class=\"input-container dropdown\" >\r\n <div class=\"w-100 input-wrapper\">\r\n <input [(ngModel)]=\"searchValue\" placeholder=\"Search\" (input)=\"onInput($event)\" type=\"text\"> \r\n <svg class=\"search-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"17\" viewBox=\"0 0 16 17\" fill=\"none\">\r\n <path d=\"M14 14.5L11.1 11.6M12.6667 7.83333C12.6667 10.7789 10.2789 13.1667 7.33333 13.1667C4.38781 13.1667 2 10.7789 2 7.83333C2 4.88781 4.38781 2.5 7.33333 2.5C10.2789 2.5 12.6667 4.88781 12.6667 7.83333Z\" stroke=\"#667085\" stroke-width=\"1.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> \r\n </div>\r\n <ul>\r\n <li *ngIf=\"multi && filteredValues?.length\">\r\n <label class=\"form-check\" for=\"selectAll\">\r\n <input (change)=\"onSelectAll($event)\" [checked]=\"checkIfAllSelected()\" class=\"form-check-input me-3\" type=\"checkbox\"\r\n id=\"selectAll\">\r\n <span class=\"form-check-label\" >\r\n Select All\r\n </span>\r\n </label>\r\n </li>\r\n <li *ngFor=\"let item of filteredValues\" [ngClass]=\"item.isSelected && !multi ? 'selected' : ''\" >\r\n <label [for]=\"item[idField] + instanceId\" [ngClass]=\"multi ? '': 'ps-0'\" class=\"form-check\">\r\n <input [ngClass]=\"multi ? '': 'd-none'\" (change)=\"onSelect($event, item)\" [(ngModel)]=\"item.isSelected\" class=\"form-check-input me-3\" type=\"checkbox\" value=\"\"\r\n [id]=\"item[idField] + instanceId\">\r\n <span class=\"form-check-label\" >\r\n {{item[searchField]}}\r\n </span>\r\n </label>\r\n </li>\r\n <li *ngIf=\"!filteredValues?.length\" >\r\n <span class=\"d-flex align-items-center justify-content-center\" >No data found</span>\r\n </li>\r\n </ul> \r\n </div> \r\n \r\n</div>", styles: [":host{width:100%;height:100%}.outer-container{position:relative;background-color:#fff}.outer-container .form-select{font-size:1.1rem;font-weight:600;border-radius:8px!important;color:var(--Gray-500, #344054);border:1px solid var(--Gray-300, #D0D5DD)!important;height:45px}.outer-container .disable-input{pointer-events:none;background-color:#f9fafb!important}.outer-container .input-container{position:absolute;width:100%;z-index:1}.outer-container .input-container .input-wrapper{padding:8px 10px;background-color:#fff;border-top-right-radius:8px;border-top-left-radius:8px;border-top:1px solid rgba(16,24,40,.08);border-right:1px solid rgba(16,24,40,.08);border-left:1px solid rgba(16,24,40,.08)}.outer-container .input-container .input-wrapper input{width:100%;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d;padding:10px 14px 10px 30px;outline:none}.outer-container .input-container .input-wrapper input ::placeholder{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.outer-container .input-container .input-wrapper .search-icon{position:absolute;left:20px;top:20px}.outer-container .input-container ul{position:relative;background-color:#fff;margin:0;padding:0;max-height:200px;min-height:auto;overflow-y:auto;border-bottom-right-radius:8px;border-bottom-left-radius:8px;border-bottom:1px solid rgba(16,24,40,.08);border-right:1px solid rgba(16,24,40,.08);border-left:1px solid rgba(16,24,40,.08)}.outer-container .input-container ul .selected{background:#f9fafb}.outer-container .input-container ul li{list-style:none;padding:10px 16px;cursor:pointer}.outer-container .input-container ul li label{cursor:pointer}.outer-container .input-container ul li:hover{background:#f9fafb}.form-check{display:flex;align-items:center}.form-check-input{height:16px;width:16px;border-radius:4px;border:1px solid var(--Primary-600, #00A3FF)}.form-check-input:checked{--bs-form-check-bg-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAB4SURBVHgBhY7NDUBQEIRnqcJNKXTg6qYTStCB+Isy6IQSNMDa9SLh5eWZZPcw+81kCX/quABhD73QyKXsGoyIvNCJSto2hEhNtY4N9cwYeMXEsVqB1GaSauRQOpty2tSmO3FgloAmF5nEhgyoesMO6CuFW66fn2xdFyA3ZzcRLrMAAAAASUVORK5CYII=);background-color:#eaf8ff;border-color:#00a3ff}.form-check-label{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}\n"] }]
124
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { onClick: [{
134
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.AuthService }], propDecorators: { onClick: [{
125
135
  type: HostListener,
126
136
  args: ['document:click', ['$event']]
127
137
  }], items: [{
@@ -141,4 +151,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
141
151
  }], selected: [{
142
152
  type: Output
143
153
  }] } });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9jb21tb24vY3VzdG9tLXNlbGVjdC9jdXN0b20tc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2NvbW1vbi9jdXN0b20tc2VsZWN0L2N1c3RvbS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7Ozs7QUFRbkssTUFBTSxPQUFPLHFCQUFxQjtJQXlCWjtJQXRCcEIsT0FBTyxDQUFDLEtBQWlCO1FBQ3ZCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFxQixDQUFDO1FBQzNDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVRLEtBQUssQ0FBSztJQUNWLFdBQVcsQ0FBUTtJQUNuQixLQUFLLENBQVM7SUFDZCxPQUFPLENBQVE7SUFDZixjQUFjLEdBQVEsRUFBRSxDQUFBO0lBQ3hCLFFBQVEsQ0FBcUI7SUFDN0IsS0FBSyxDQUFRO0lBRVosUUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUE7SUFDNUMsY0FBYyxHQUFRLEVBQUUsQ0FBQTtJQUN4QixZQUFZLENBQVM7SUFDckIsV0FBVyxDQUFRO0lBQ25CLFVBQVUsQ0FBTTtJQUdoQixZQUFvQixFQUFxQjtRQUFyQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtJQUFJ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QUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbiBcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItc2VsZWN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2N1c3RvbS1zZWxlY3QuY29tcG9uZW50LnNjc3MnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xyXG4gXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxyXG4gIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGlmICghdGFyZ2V0LmNsb3Nlc3QoJy5kcm9wZG93bicpKSB7XHJcbiAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG4gXHJcbiAgQElucHV0KCkgaXRlbXM6IGFueVxyXG4gIEBJbnB1dCgpIHNlYXJjaEZpZWxkOiBzdHJpbmdcclxuICBASW5wdXQoKSBtdWx0aTogYm9vbGVhblxyXG4gIEBJbnB1dCgpIGlkRmllbGQ6IHN0cmluZ1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkVmFsdWVzOiBhbnkgPSBbXVxyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkXHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZ1xyXG4gXHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcclxuICBmaWx0ZXJlZFZhbHVlczogYW55ID0gW11cclxuICBzaG93RHJvcGRvd246IGJvb2xlYW5cclxuICBzZWFyY2hWYWx1ZTogc3RyaW5nXHJcbiAgaW5zdGFuY2VJZDogYW55O1xyXG4gXHJcbiBcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluc3RhbmNlSWQgPSBjcnlwdG8ucmFuZG9tVVVJRCgpOyAgICBcclxuICB9XHJcbiBcclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiBcclxuICAgIGlmIChjaGFuZ2VzWydpdGVtcyddICYmIHRoaXMuaXRlbXM/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmluaXRpYWxpemVJdGVtcygpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ3NlbGVjdGVkVmFsdWVzJ10gJiYgQXJyYXkuaXNBcnJheShjaGFuZ2VzWydzZWxlY3RlZFZhbHVlcyddPy5jdXJyZW50VmFsdWUpICYmIGNoYW5nZXNbJ3NlbGVjdGVkVmFsdWVzJ10/LmN1cnJlbnRWYWx1ZT8ubGVuZ3RoID4gMCAmJiBjaGFuZ2VzWydzZWxlY3RlZFZhbHVlcyddPy5jdXJyZW50VmFsdWVbMF0pIHsgICAgICAgICAgICBcclxuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZFZhbHVlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuIFxyXG4gIGluaXRpYWxpemVJdGVtcygpIHtcclxuICAgIHRoaXMuZmlsdGVyZWRWYWx1ZXMgPSB0aGlzLml0ZW1zLm1hcCgoaXRlbTogYW55KSA9PiAoeyAuLi5pdGVtIH0pKTtcclxuICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRWYWx1ZXMoKVxyXG4gIH1cclxuIFxyXG4gIHVwZGF0ZVNlbGVjdGVkVmFsdWVzKCkgeyAgICBcclxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXM/LmZvckVhY2goKHNlbGVjdGVkSXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmZpbHRlcmVkVmFsdWVzPy5maW5kKChmaWx0ZXJlZEl0ZW06IGFueSkgPT4gZmlsdGVyZWRJdGVtPy5bdGhpcy5pZEZpZWxkXSA9PT0gc2VsZWN0ZWRJdGVtPy5bdGhpcy5pZEZpZWxkXSk7XHJcbiAgICAgIGlmIChpdGVtKSB7XHJcbiAgICAgICAgaXRlbS5pc1NlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgIFxyXG4gIH1cclxuIFxyXG4gIG9wZW5Ecm9wZG93bihldmVudDogYW55KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuc2hvd0Ryb3Bkb3duID0gIXRoaXMuc2hvd0Ryb3Bkb3duO1xyXG4gIH1cclxuIFxyXG4gIG9uSW5wdXQoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKCFldmVudC50YXJnZXQudmFsdWUpIHtcclxuICAgICAgdGhpcy5maWx0ZXJlZFZhbHVlcyA9IFsuLi50aGlzLml0ZW1zXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHNlYXJjaFRlcm0gPSBldmVudC50YXJnZXQudmFsdWUudG9Mb3dlckNhc2UoKTtcclxuICAgICAgdGhpcy5maWx0ZXJlZFZhbHVlcyA9IHRoaXMuaXRlbXMuZmlsdGVyKChpdGVtOiBhbnkpID0+XHJcbiAgICAgICAgaXRlbVt0aGlzLnNlYXJjaEZpZWxkXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0pXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbiBcclxuICBvblNlbGVjdChldmVudDogYW55LCBpdGVtOiBhbnkpIHsgICAgXHJcbiAgICBpZiAodGhpcy5tdWx0aSkge1xyXG4gICAgICBpZiAoZXZlbnQuY3VycmVudFRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5wdXNoKGl0ZW0gKTsgICAgICAgIFxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSB0aGlzLnNlbGVjdGVkVmFsdWVzLmZpbHRlcigoZWxlbTogYW55KSA9PiBlbGVtW3RoaXMuaWRGaWVsZF0gIT09IGl0ZW1bdGhpcy5pZEZpZWxkXSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSBbeyAuLi5pdGVtIH1dO1xyXG4gICAgICB0aGlzLmZpbHRlcmVkVmFsdWVzLmZvckVhY2goKGVsZW1lbnQ6YW55KSA9PiB7XHJcbiAgICAgICAgaWYoZWxlbWVudFt0aGlzLmlkRmllbGRdICE9PSBpdGVtW3RoaXMuaWRGaWVsZF0pe1xyXG4gICAgICAgICAgZWxlbWVudC5pc1NlbGVjdGVkID0gZmFsc2VcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNob3dEcm9wZG93biA9IGZhbHNlO1xyXG4gICAgfVxyXG4gXHJcbiAgICBjb25zdCB2YWx1ZXNUb0VtaXQgPSB0aGlzLnNlbGVjdGVkVmFsdWVzLm1hcCgodmFsdWU6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSB7IC4uLnZhbHVlIH07XHJcbiAgICAgIGRlbGV0ZSBzZWxlY3RlZEl0ZW0uaXNTZWxlY3RlZDtcclxuICAgICAgcmV0dXJuIHNlbGVjdGVkSXRlbTtcclxuICAgIH0pO1xyXG4gXHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHRoaXMuZW1pdFNlbGVjdGVkVmFsdWVzKHZhbHVlc1RvRW1pdCk7XHJcbiBcclxuICB9XHJcbiBcclxuICBvblNlbGVjdEFsbChldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBzZWxlY3RBbGwgPSBldmVudC5jdXJyZW50VGFyZ2V0LmNoZWNrZWQ7XHJcbiAgICB0aGlzLmZpbHRlcmVkVmFsdWVzLmZvckVhY2goKGl0ZW06IGFueSkgPT4gaXRlbS5pc1NlbGVjdGVkID0gc2VsZWN0QWxsKTtcclxuIFxyXG4gICAgaWYgKHNlbGVjdEFsbCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gWy4uLnRoaXMuZmlsdGVyZWRWYWx1ZXNdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcyA9IFtdO1xyXG4gICAgfVxyXG4gXHJcbiAgICBjb25zdCB2YWx1ZXNUb0VtaXQgPSB0aGlzLnNlbGVjdGVkVmFsdWVzLm1hcCgodmFsdWU6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGlzU2VsZWN0ZWQsIC4uLnNlbGVjdGVkSXRlbSB9ID0gdmFsdWU7XHJcbiAgICAgIHJldHVybiBzZWxlY3RlZEl0ZW07XHJcbiAgICB9KTtcclxuIFxyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLmVtaXRTZWxlY3RlZFZhbHVlcyh2YWx1ZXNUb0VtaXQpO1xyXG4gIH1cclxuIFxyXG4gXHJcbiAgZW1pdFNlbGVjdGVkVmFsdWVzKHZhbHVlczogYW55W10pIHtcclxuICAgIGlmICh0aGlzLm11bHRpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdCh2YWx1ZXMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KHZhbHVlc1swXSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gXHJcbiAgY2hlY2tJZkFsbFNlbGVjdGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRWYWx1ZXMuZXZlcnkoKGl0ZW06IGFueSkgPT4gaXRlbS5pc1NlbGVjdGVkKTtcclxuICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwib3V0ZXItY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cImRpc2FibGVkID8gJ2Rpc2FibGUtaW5wdXQnOicnXCIgIChjbGljayk9XCJvcGVuRHJvcGRvd24oJGV2ZW50KVwiICBjbGFzcz1cImZvcm0tc2VsZWN0XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibXVsdGlcIiA+XHJcbiAgICB7e3NlbGVjdGVkVmFsdWVzPy5sZW5ndGh9fSB7e2xhYmVsfX0gU2VsZWN0ZWQgICAgXHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbXVsdGlcIiA+XHJcbiAgICAgICAge3tzZWxlY3RlZFZhbHVlcz8uWzBdPy5bc2VhcmNoRmllbGRdfX1cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInNob3dEcm9wZG93biA/ICcnIDogJ2Qtbm9uZSdcIiBjbGFzcz1cImlucHV0LWNvbnRhaW5lciBkcm9wZG93blwiID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgaW5wdXQtd3JhcHBlclwiPlxyXG4gICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cInNlYXJjaFZhbHVlXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIiAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiIHR5cGU9XCJ0ZXh0XCI+ICBcclxuICAgICAgICA8c3ZnIGNsYXNzPVwic2VhcmNoLWljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE3XCIgdmlld0JveD1cIjAgMCAxNiAxN1wiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTQgMTQuNUwxMS4xIDExLjZNMTIuNjY2NyA3LjgzMzMzQzEyLjY2NjcgMTAuNzc4OSAxMC4yNzg5IDEzLjE2NjcgNy4zMzMzMyAxMy4xNjY3QzQuMzg3ODEgMTMuMTY2NyAyIDEwLjc3ODkgMiA3LjgzMzMzQzIgNC44ODc4MSA0LjM4NzgxIDIuNSA3LjMzMzMzIDIuNUMxMC4yNzg5IDIuNSAxMi42NjY3IDQuODg3ODEgMTIuNjY2NyA3LjgzMzMzWlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICA8L3N2Zz4gIFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDx1bD5cclxuICAgICAgICAgICAgPGxpICpuZ0lmPVwibXVsdGkgJiYgZmlsdGVyZWRWYWx1ZXM/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVja1wiIGZvcj1cInNlbGVjdEFsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCAoY2hhbmdlKT1cIm9uU2VsZWN0QWxsKCRldmVudClcIiBbY2hlY2tlZF09XCJjaGVja0lmQWxsU2VsZWN0ZWQoKVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtZS0zXCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJzZWxlY3RBbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCBBbGxcclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsdGVyZWRWYWx1ZXNcIiBbbmdDbGFzc109XCJpdGVtLmlzU2VsZWN0ZWQgJiYgIW11bHRpID8gJ3NlbGVjdGVkJyA6ICcnXCIgPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiaXRlbVtpZEZpZWxkXSArIGluc3RhbmNlSWRcIiBbbmdDbGFzc109XCJtdWx0aSAgPyAnJzogJ3BzLTAnXCIgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtuZ0NsYXNzXT1cIm11bHRpICA/ICcnOiAnZC1ub25lJ1wiIChjaGFuZ2UpPVwib25TZWxlY3QoJGV2ZW50LCBpdGVtKVwiIFsobmdNb2RlbCldPVwiaXRlbS5pc1NlbGVjdGVkXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG1lLTNcIiB0eXBlPVwiY2hlY2tib3hcIiB2YWx1ZT1cIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJpdGVtW2lkRmllbGRdICsgaW5zdGFuY2VJZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtW3NlYXJjaEZpZWxkXX19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpICpuZ0lmPVwiIWZpbHRlcmVkVmFsdWVzPy5sZW5ndGhcIiA+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiID5ObyBkYXRhIGZvdW5kPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwvdWw+ICBcclxuICAgIDwvZGl2PiAgXHJcbiAgIFxyXG48L2Rpdj4iXX0=
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9jb21tb24vY3VzdG9tLXNlbGVjdC9jdXN0b20tc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2NvbW1vbi9jdXN0b20tc2VsZWN0L2N1c3RvbS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7Ozs7O0FBU25LLE1BQU0sT0FBTyxxQkFBcUI7SUF5Qlo7SUFBK0I7SUF0Qm5ELE9BQU8sQ0FBQyxLQUFpQjtRQUN2QixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBcUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNoQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFUSxLQUFLLENBQUs7SUFDVixXQUFXLENBQVE7SUFDbkIsS0FBSyxDQUFTO0lBQ2QsT0FBTyxDQUFRO0lBQ2YsY0FBYyxHQUFRLEVBQUUsQ0FBQTtJQUN4QixRQUFRLENBQXFCO0lBQzdCLEtBQUssQ0FBUTtJQUVaLFFBQVEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFBO0lBQzVDLGNBQWMsR0FBUSxFQUFFLENBQUE7SUFDeEIsWUFBWSxDQUFTO0lBQ3JCLFdBQVcsQ0FBUTtJQUNuQixVQUFVLENBQU07SUFHaEIsWUFBb0IsRUFBcUIsRUFBVSxXQUF1QjtRQUF0RCxPQUFFLEdB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O0lBQ25FLENBQUM7dUdBeklVLHFCQUFxQjsyRkFBckIscUJBQXFCLDRVQ1RsQyw2Z0ZBeUNNOzsyRkRoQ08scUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTTtnSEFLL0MsT0FBTztzQkFETixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVFqQyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG4gXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jdXN0b20tc2VsZWN0LmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1c3RvbVNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcclxuIFxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAoIXRhcmdldC5jbG9zZXN0KCcuZHJvcGRvd24nKSkge1xyXG4gICAgICB0aGlzLnNob3dEcm9wZG93biA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuIFxyXG4gIEBJbnB1dCgpIGl0ZW1zOiBhbnlcclxuICBASW5wdXQoKSBzZWFyY2hGaWVsZDogc3RyaW5nXHJcbiAgQElucHV0KCkgbXVsdGk6IGJvb2xlYW5cclxuICBASW5wdXQoKSBpZEZpZWxkOiBzdHJpbmdcclxuICBASW5wdXQoKSBzZWxlY3RlZFZhbHVlczogYW55ID0gW11cclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZFxyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmdcclxuIFxyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXHJcbiAgZmlsdGVyZWRWYWx1ZXM6IGFueSA9IFtdXHJcbiAgc2hvd0Ryb3Bkb3duOiBib29sZWFuXHJcbiAgc2VhcmNoVmFsdWU6IHN0cmluZ1xyXG4gIGluc3RhbmNlSWQ6IGFueTtcclxuIFxyXG4gXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgYXV0aFNlcnZpY2U6QXV0aFNlcnZpY2UpIHsgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnN0YW5jZUlkID0gY3J5cHRvLnJhbmRvbVVVSUQoKTtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UuZHJvcERvd25UcmlnZ2VyLnN1YnNjcmliZSgoZSk9PnsgICAgICAgICAgIFxyXG4gICAgICBpZihlICE9PSB0aGlzLmluc3RhbmNlSWQpeyAgICAgICAgXHJcbiAgICAgICAgdGhpcy5zaG93RHJvcGRvd24gPSBmYWxzZVxyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gXHJcbiAgICBpZiAoY2hhbmdlc1snaXRlbXMnXSAmJiB0aGlzLml0ZW1zPy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5pbml0aWFsaXplSXRlbXMoKTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydzZWxlY3RlZFZhbHVlcyddICYmIEFycmF5LmlzQXJyYXkoY2hhbmdlc1snc2VsZWN0ZWRWYWx1ZXMnXT8uY3VycmVudFZhbHVlKSAmJiBjaGFuZ2VzWydzZWxlY3RlZFZhbHVlcyddPy5jdXJyZW50VmFsdWU/Lmxlbmd0aCA+IDAgJiYgY2hhbmdlc1snc2VsZWN0ZWRWYWx1ZXMnXT8uY3VycmVudFZhbHVlWzBdKSB7ICAgICAgICAgICAgXHJcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRWYWx1ZXMoKTtcclxuICAgIH1cclxuICB9XHJcbiBcclxuICBpbml0aWFsaXplSXRlbXMoKSB7XHJcbiAgICB0aGlzLmZpbHRlcmVkVmFsdWVzID0gdGhpcy5pdGVtcy5tYXAoKGl0ZW06IGFueSkgPT4gKHsgLi4uaXRlbSB9KSk7XHJcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkVmFsdWVzKClcclxuICB9XHJcbiBcclxuICB1cGRhdGVTZWxlY3RlZFZhbHVlcygpIHsgICAgXHJcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVzPy5mb3JFYWNoKChzZWxlY3RlZEl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5maWx0ZXJlZFZhbHVlcz8uZmluZCgoZmlsdGVyZWRJdGVtOiBhbnkpID0+IGZpbHRlcmVkSXRlbT8uW3RoaXMuaWRGaWVsZF0gPT09IHNlbGVjdGVkSXRlbT8uW3RoaXMuaWRGaWVsZF0pO1xyXG4gICAgICBpZiAoaXRlbSkge1xyXG4gICAgICAgIGl0ZW0uaXNTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICBcclxuICB9XHJcbiBcclxuICBvcGVuRHJvcGRvd24oZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5kcm9wRG93blRyaWdnZXIubmV4dCh0aGlzLmluc3RhbmNlSWQpXHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuc2hvd0Ryb3Bkb3duID0gIXRoaXMuc2hvd0Ryb3Bkb3duO1xyXG4gIH1cclxuIFxyXG4gIG9uSW5wdXQoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKCFldmVudC50YXJnZXQudmFsdWUpIHtcclxuICAgICAgdGhpcy5maWx0ZXJlZFZhbHVlcyA9IFsuLi50aGlzLml0ZW1zXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHNlYXJjaFRlcm0gPSBldmVudC50YXJnZXQudmFsdWUudG9Mb3dlckNhc2UoKTtcclxuICAgICAgdGhpcy5maWx0ZXJlZFZhbHVlcyA9IHRoaXMuaXRlbXMuZmlsdGVyKChpdGVtOiBhbnkpID0+XHJcbiAgICAgICAgaXRlbVt0aGlzLnNlYXJjaEZpZWxkXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0pXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbiBcclxuICBvblNlbGVjdChldmVudDogYW55LCBpdGVtOiBhbnkpIHsgICAgXHJcbiAgICBpZiAodGhpcy5tdWx0aSkge1xyXG4gICAgICBpZiAoZXZlbnQuY3VycmVudFRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5wdXNoKGl0ZW0gKTsgICAgICAgIFxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSB0aGlzLnNlbGVjdGVkVmFsdWVzLmZpbHRlcigoZWxlbTogYW55KSA9PiBlbGVtW3RoaXMuaWRGaWVsZF0gIT09IGl0ZW1bdGhpcy5pZEZpZWxkXSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSBbeyAuLi5pdGVtIH1dO1xyXG4gICAgICB0aGlzLmZpbHRlcmVkVmFsdWVzLmZvckVhY2goKGVsZW1lbnQ6YW55KSA9PiB7XHJcbiAgICAgICAgaWYoZWxlbWVudFt0aGlzLmlkRmllbGRdICE9PSBpdGVtW3RoaXMuaWRGaWVsZF0pe1xyXG4gICAgICAgICAgZWxlbWVudC5pc1NlbGVjdGVkID0gZmFsc2VcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNob3dEcm9wZG93biA9IGZhbHNlO1xyXG4gICAgfVxyXG4gXHJcbiAgICBjb25zdCB2YWx1ZXNUb0VtaXQgPSB0aGlzLnNlbGVjdGVkVmFsdWVzLm1hcCgodmFsdWU6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSB7IC4uLnZhbHVlIH07XHJcbiAgICAgIGRlbGV0ZSBzZWxlY3RlZEl0ZW0uaXNTZWxlY3RlZDtcclxuICAgICAgcmV0dXJuIHNlbGVjdGVkSXRlbTtcclxuICAgIH0pO1xyXG4gXHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHRoaXMuZW1pdFNlbGVjdGVkVmFsdWVzKHZhbHVlc1RvRW1pdCk7XHJcbiBcclxuICB9XHJcbiBcclxuICBvblNlbGVjdEFsbChldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBzZWxlY3RBbGwgPSBldmVudC5jdXJyZW50VGFyZ2V0LmNoZWNrZWQ7XHJcbiAgICB0aGlzLmZpbHRlcmVkVmFsdWVzLmZvckVhY2goKGl0ZW06IGFueSkgPT4gaXRlbS5pc1NlbGVjdGVkID0gc2VsZWN0QWxsKTtcclxuIFxyXG4gICAgaWYgKHNlbGVjdEFsbCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gWy4uLnRoaXMuZmlsdGVyZWRWYWx1ZXNdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcyA9IFtdO1xyXG4gICAgfVxyXG4gXHJcbiAgICBjb25zdCB2YWx1ZXNUb0VtaXQgPSB0aGlzLnNlbGVjdGVkVmFsdWVzLm1hcCgodmFsdWU6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGlzU2VsZWN0ZWQsIC4uLnNlbGVjdGVkSXRlbSB9ID0gdmFsdWU7XHJcbiAgICAgIHJldHVybiBzZWxlY3RlZEl0ZW07XHJcbiAgICB9KTtcclxuIFxyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLmVtaXRTZWxlY3RlZFZhbHVlcyh2YWx1ZXNUb0VtaXQpO1xyXG4gIH1cclxuIFxyXG4gXHJcbiAgZW1pdFNlbGVjdGVkVmFsdWVzKHZhbHVlczogYW55W10pIHtcclxuICAgIGlmICh0aGlzLm11bHRpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdCh2YWx1ZXMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KHZhbHVlc1swXSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gXHJcbiAgY2hlY2tJZkFsbFNlbGVjdGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRWYWx1ZXMuZXZlcnkoKGl0ZW06IGFueSkgPT4gaXRlbS5pc1NlbGVjdGVkKTtcclxuICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwib3V0ZXItY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cImRpc2FibGVkID8gJ2Rpc2FibGUtaW5wdXQnOicnXCIgIChjbGljayk9XCJvcGVuRHJvcGRvd24oJGV2ZW50KVwiICBjbGFzcz1cImZvcm0tc2VsZWN0XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibXVsdGlcIiA+XHJcbiAgICB7e3NlbGVjdGVkVmFsdWVzPy5sZW5ndGh9fSB7e2xhYmVsfX0gU2VsZWN0ZWQgICAgXHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbXVsdGlcIiA+XHJcbiAgICAgICAge3tzZWxlY3RlZFZhbHVlcz8uWzBdPy5bc2VhcmNoRmllbGRdfX1cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInNob3dEcm9wZG93biA/ICcnIDogJ2Qtbm9uZSdcIiBjbGFzcz1cImlucHV0LWNvbnRhaW5lciBkcm9wZG93blwiID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgaW5wdXQtd3JhcHBlclwiPlxyXG4gICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cInNlYXJjaFZhbHVlXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIiAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiIHR5cGU9XCJ0ZXh0XCI+ICBcclxuICAgICAgICA8c3ZnIGNsYXNzPVwic2VhcmNoLWljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE3XCIgdmlld0JveD1cIjAgMCAxNiAxN1wiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTQgMTQuNUwxMS4xIDExLjZNMTIuNjY2NyA3LjgzMzMzQzEyLjY2NjcgMTAuNzc4OSAxMC4yNzg5IDEzLjE2NjcgNy4zMzMzMyAxMy4xNjY3QzQuMzg3ODEgMTMuMTY2NyAyIDEwLjc3ODkgMiA3LjgzMzMzQzIgNC44ODc4MSA0LjM4NzgxIDIuNSA3LjMzMzMzIDIuNUMxMC4yNzg5IDIuNSAxMi42NjY3IDQuODg3ODEgMTIuNjY2NyA3LjgzMzMzWlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICA8L3N2Zz4gIFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDx1bD5cclxuICAgICAgICAgICAgPGxpICpuZ0lmPVwibXVsdGkgJiYgZmlsdGVyZWRWYWx1ZXM/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVja1wiIGZvcj1cInNlbGVjdEFsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCAoY2hhbmdlKT1cIm9uU2VsZWN0QWxsKCRldmVudClcIiBbY2hlY2tlZF09XCJjaGVja0lmQWxsU2VsZWN0ZWQoKVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtZS0zXCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJzZWxlY3RBbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCBBbGxcclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsdGVyZWRWYWx1ZXNcIiBbbmdDbGFzc109XCJpdGVtLmlzU2VsZWN0ZWQgJiYgIW11bHRpID8gJ3NlbGVjdGVkJyA6ICcnXCIgPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiaXRlbVtpZEZpZWxkXSArIGluc3RhbmNlSWRcIiBbbmdDbGFzc109XCJtdWx0aSAgPyAnJzogJ3BzLTAnXCIgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtuZ0NsYXNzXT1cIm11bHRpICA/ICcnOiAnZC1ub25lJ1wiIChjaGFuZ2UpPVwib25TZWxlY3QoJGV2ZW50LCBpdGVtKVwiIFsobmdNb2RlbCldPVwiaXRlbS5pc1NlbGVjdGVkXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG1lLTNcIiB0eXBlPVwiY2hlY2tib3hcIiB2YWx1ZT1cIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJpdGVtW2lkRmllbGRdICsgaW5zdGFuY2VJZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtW3NlYXJjaEZpZWxkXX19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpICpuZ0lmPVwiIWZpbHRlcmVkVmFsdWVzPy5sZW5ndGhcIiA+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiID5ObyBkYXRhIGZvdW5kPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwvdWw+ICBcclxuICAgIDwvZGl2PiAgXHJcbiAgIFxyXG48L2Rpdj4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { catchError, map, throwError } from 'rxjs';
2
+ import { catchError, map, throwError, BehaviorSubject } from 'rxjs';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/router";
5
5
  import * as i2 from "tango-app-ui-global";
@@ -13,6 +13,7 @@ export class AuthService {
13
13
  userApiUrl;
14
14
  storeApiUrl;
15
15
  oldDashboardUrl;
16
+ dropDownTrigger = new BehaviorSubject(null);
16
17
  constructor(router, gs, http) {
17
18
  this.router = router;
18
19
  this.gs = gs;
@@ -85,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
85
86
  providedIn: 'root'
86
87
  }]
87
88
  }], ctorParameters: () => [{ type: i1.Router }, { type: i2.GlobalStateService }, { type: i3.HttpClient }] });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL3NlcnZpY2VzL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBYyxVQUFVLEVBQUUsR0FBRyxFQUFNLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFPbkUsTUFBTSxPQUFPLFdBQVc7SUFPRjtJQUFzQjtJQUE4QjtJQU54RSxZQUFZLENBQVM7SUFDckIscUJBQXFCLENBQVM7SUFDOUIsVUFBVSxDQUFTO0lBQ25CLFdBQVcsQ0FBUztJQUNwQixlQUFlLENBQVM7SUFFeEIsWUFBb0IsTUFBYSxFQUFTLEVBQXFCLEVBQVMsSUFBZTtRQUFuRSxXQUFNLEdBQU4sTUFBTSxDQUFPO1FBQVMsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFXO1FBQ3JGLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxFQUFFO1lBQ3JDLElBQUcsR0FBRyxFQUFDO2dCQUNOLElBQUksQ0FBQyxZQUFZLEdBQUksR0FBRyxDQUFDLFlBQVksQ0FBQztnQkFDdEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxlQUFlLEdBQUUsR0FBRyxDQUFDLGVBQWUsQ0FBQztnQkFDMUMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEdBQUcsR0FBRyxDQUFDLFVBQVUsSUFBSSxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDckU7UUFDRixDQUFDLENBQUMsQ0FBQTtJQUFDLENBQUM7SUFFSixX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SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxVQUFVLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDMUQsR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFDaEMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FDN0IsQ0FBQztJQUNKLENBQUM7dUdBckZVLFdBQVc7MkdBQVgsV0FBVyxjQUZWLE1BQU07OzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjYXRjaEVycm9yLCBtYXAsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXV0aFNlcnZpY2Uge1xyXG4gIGNsaWVudEFwaVVybDogc3RyaW5nO1xyXG4gIGF1dGhsb2NhbFN0b3JhZ2VUb2tlbjogc3RyaW5nO1xyXG4gIHVzZXJBcGlVcmw6IHN0cmluZztcclxuICBzdG9yZUFwaVVybDogc3RyaW5nO1xyXG4gIG9sZERhc2hib2FyZFVybDogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjpSb3V0ZXIscHJpdmF0ZSBnczpHbG9iYWxTdGF0ZVNlcnZpY2UscHJpdmF0ZSBodHRwOkh0dHBDbGllbnQpIHsgIFxyXG4gICAgdGhpcy5ncy5lbnZpcm9ubWVudC5zdWJzY3JpYmUoKGVudik9PntcclxuICAgIGlmKGVudil7XHJcbiAgICAgdGhpcy5jbGllbnRBcGlVcmwgPSAgZW52LmNsaWVudEFwaVVybDtcclxuICAgICB0aGlzLnVzZXJBcGlVcmwgPSBlbnYudXNlckFwaVVybDsgXHJcbiAgICAgdGhpcy5zdG9yZUFwaVVybCA9ZW52LnN0b3JlQXBpVXJsO1xyXG4gICAgIHRoaXMub2xkRGFzaGJvYXJkVXJsID1lbnYub2xkRGFzaGJvYXJkVXJsO1xyXG4gICAgIHRoaXMuYXV0aGxvY2FsU3RvcmFnZVRva2VuID0gYCR7ZW52LmFwcFZlcnNpb259LSR7ZW52LlVTRVJEQVRBX0tFWX1gO1xyXG4gICAgfVxyXG4gICB9KSB9XHJcbiAgIFxyXG4gICBoYW5kbGVFcnJvcihyZXM6IGFueSkge1xyXG4gICAgcmV0dXJuIHRocm93RXJyb3IocmVzLmVycm9yKTtcclxufVxyXG5nZXRIZWFkZXJzKCkge1xyXG4gIGNvbnN0IGhlYWRlcnMgPSB7XHJcbiAgICAgICdBdXRob3JpemF0aW9uJzogJ0JlYXJlciAnICsgdGhpcy5hdXRobG9jYWxTdG9yYWdlVG9rZW5cclxuICB9O1xyXG5cclxuICByZXR1cm4gaGVhZGVycztcclxufVxyXG5cclxuICBsb2dvdXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnVzZXJBcGlVcmx9L2xvZ291dGAsIHtcclxuICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKClcclxuICAgIH0pXHJcbiAgfVxyXG4gIGdldENsaWVudHMoKXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuY2xpZW50QXBpVXJsfS9nZXQtY2xpZW50c2AsIHtcclxuICB9KVxyXG4gICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHJlc3BvbnNlKSxcclxuICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xyXG4gIH1cclxuICBnZXRTdG9yZXMoaWQ6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuc3RvcmVBcGlVcmx9L2dldC1zdG9yZXM/Y2xpZW50SWQ9JHtpZH1gLCB7XHJcbiAgfSlcclxuICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogYW55KSA9PiByZXNwb25zZSksXHJcbiAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcclxuICB9XHJcbiAgZ2V0T2xkRGFzaGJvYXJkUmVkaXJlY3QoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMub2xkRGFzaGJvYXJkVXJsfS9hdXRoL29sZERhc2hib2FyZFVzZXJMb2dpbmAsZGF0YSwge1xyXG4gICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKVxyXG4gICAgfSlcclxuICB9XHJcbiAgdXNlclByb2ZpbGVEZXQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldChgJHt0aGlzLnVzZXJBcGlVcmx9L3Byb2ZpbGVgLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJ1c2VyLWluZm9cIiwgSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UuZGF0YSkpO1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIHJlZnJlc2hUb2tlbigpIHtcclxuICAgIGNvbnN0IHVzZXJJZCA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c2VyLWluZm9cIikgfHwgXCJcIik/Ll9pZDtcclxuICAgIGNvbnN0IHJlZnJlc2hUb2tlbiA9IEpTT04ucGFyc2UoXHJcbiAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuYXV0aGxvY2FsU3RvcmFnZVRva2VuKSB8fCBcIlwiXHJcbiAgICApPy5yZWZyZXNoVG9rZW47XHJcbiAgICBsZXQgcGFyYW1zOiBhbnkgPSB7XHJcbiAgICAgIHVzZXJJZDogdXNlcklkLFxyXG4gICAgICByZWZyZXNoVG9rZW46IHJlZnJlc2hUb2tlbixcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQoYCR7dGhpcy51c2VyQXBpVXJsfS9yZWZyZXNoLXRva2VuYCwgeyBwYXJhbXM6IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHJlc3BvbnNlKSxcclxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRQZXJzb25hbEluZm8oKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy51c2VyQXBpVXJsfS9wcm9maWxlYCkucGlwZShcclxuICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiByZXNwb25zZSksXHJcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL3NlcnZpY2VzL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBYyxVQUFVLEVBQUUsR0FBRyxFQUFNLFVBQVUsRUFBQyxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBT25GLE1BQU0sT0FBTyxXQUFXO0lBT0Y7SUFBc0I7SUFBOEI7SUFOeEUsWUFBWSxDQUFTO0lBQ3JCLHFCQUFxQixDQUFTO0lBQzlCLFVBQVUsQ0FBUztJQUNuQixXQUFXLENBQVM7SUFDcEIsZUFBZSxDQUFTO0lBQ3hCLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUMzQyxZQUFvQixNQUFhLEVBQVMsRUFBcUIsRUFBUyxJQUFlO1FBQW5FLFdBQU0sR0FBTixNQUFNLENBQU87UUFBUyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUFTLFNBQUksR0FBSixJQUFJLENBQVc7UUFDckYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFDLEVBQUU7WUFDckMsSUFBRyxHQUFHLEVBQUM7Z0JBQ04sSUFBSSxDQUFDLFlBQVksR0FBSSxHQUFHLENBQUMsWUFBWSxDQUFDO2dCQUN0QyxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLGVBQWUsR0FBRSxHQUFHLENBQUMsZUFBZSxDQUFDO2dCQUMxQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsR0FBRyxHQUFHLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQyxZ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QUNoQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUM3QixDQUFDO0lBQ04sQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUMxRCxHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUNoQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUM3QixDQUFDO0lBQ0osQ0FBQzt1R0FyRlUsV0FBVzsyR0FBWCxXQUFXLGNBRlYsTUFBTTs7MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGNhdGNoRXJyb3IsIG1hcCwgb2YsIHRocm93RXJyb3IsQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXV0aFNlcnZpY2Uge1xyXG4gIGNsaWVudEFwaVVybDogc3RyaW5nO1xyXG4gIGF1dGhsb2NhbFN0b3JhZ2VUb2tlbjogc3RyaW5nO1xyXG4gIHVzZXJBcGlVcmw6IHN0cmluZztcclxuICBzdG9yZUFwaVVybDogc3RyaW5nO1xyXG4gIG9sZERhc2hib2FyZFVybDogc3RyaW5nO1xyXG4gIGRyb3BEb3duVHJpZ2dlciA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbClcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjpSb3V0ZXIscHJpdmF0ZSBnczpHbG9iYWxTdGF0ZVNlcnZpY2UscHJpdmF0ZSBodHRwOkh0dHBDbGllbnQpIHsgIFxyXG4gICAgdGhpcy5ncy5lbnZpcm9ubWVudC5zdWJzY3JpYmUoKGVudik9PntcclxuICAgIGlmKGVudil7XHJcbiAgICAgdGhpcy5jbGllbnRBcGlVcmwgPSAgZW52LmNsaWVudEFwaVVybDtcclxuICAgICB0aGlzLnVzZXJBcGlVcmwgPSBlbnYudXNlckFwaVVybDsgXHJcbiAgICAgdGhpcy5zdG9yZUFwaVVybCA9ZW52LnN0b3JlQXBpVXJsO1xyXG4gICAgIHRoaXMub2xkRGFzaGJvYXJkVXJsID1lbnYub2xkRGFzaGJvYXJkVXJsO1xyXG4gICAgIHRoaXMuYXV0aGxvY2FsU3RvcmFnZVRva2VuID0gYCR7ZW52LmFwcFZlcnNpb259LSR7ZW52LlVTRVJEQVRBX0tFWX1gO1xyXG4gICAgfVxyXG4gICB9KSB9XHJcbiAgIFxyXG4gICBoYW5kbGVFcnJvcihyZXM6IGFueSkge1xyXG4gICAgcmV0dXJuIHRocm93RXJyb3IocmVzLmVycm9yKTtcclxufVxyXG5nZXRIZWFkZXJzKCkge1xyXG4gIGNvbnN0IGhlYWRlcnMgPSB7XHJcbiAgICAgICdBdXRob3JpemF0aW9uJzogJ0JlYXJlciAnICsgdGhpcy5hdXRobG9jYWxTdG9yYWdlVG9rZW5cclxuICB9O1xyXG5cclxuICByZXR1cm4gaGVhZGVycztcclxufVxyXG5cclxuICBsb2dvdXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnVzZXJBcGlVcmx9L2xvZ291dGAsIHtcclxuICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKClcclxuICAgIH0pXHJcbiAgfVxyXG4gIGdldENsaWVudHMoKXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuY2xpZW50QXBpVXJsfS9nZXQtY2xpZW50c2AsIHtcclxuICB9KVxyXG4gICAgICAucGlwZShtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHJlc3BvbnNlKSxcclxuICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xyXG4gIH1cclxuICBnZXRTdG9yZXMoaWQ6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuc3RvcmVBcGlVcmx9L2dldC1zdG9yZXM/Y2xpZW50SWQ9JHtpZH1gLCB7XHJcbiAgfSlcclxuICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogYW55KSA9PiByZXNwb25zZSksXHJcbiAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcclxuICB9XHJcbiAgZ2V0T2xkRGFzaGJvYXJkUmVkaXJlY3QoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMub2xkRGFzaGJvYXJkVXJsfS9hdXRoL29sZERhc2hib2FyZFVzZXJMb2dpbmAsZGF0YSwge1xyXG4gICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKVxyXG4gICAgfSlcclxuICB9XHJcbiAgdXNlclByb2ZpbGVEZXQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldChgJHt0aGlzLnVzZXJBcGlVcmx9L3Byb2ZpbGVgLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJ1c2VyLWluZm9cIiwgSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UuZGF0YSkpO1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIHJlZnJlc2hUb2tlbigpIHtcclxuICAgIGNvbnN0IHVzZXJJZCA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c2VyLWluZm9cIikgfHwgXCJcIik/Ll9pZDtcclxuICAgIGNvbnN0IHJlZnJlc2hUb2tlbiA9IEpTT04ucGFyc2UoXHJcbiAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuYXV0aGxvY2FsU3RvcmFnZVRva2VuKSB8fCBcIlwiXHJcbiAgICApPy5yZWZyZXNoVG9rZW47XHJcbiAgICBsZXQgcGFyYW1zOiBhbnkgPSB7XHJcbiAgICAgIHVzZXJJZDogdXNlcklkLFxyXG4gICAgICByZWZyZXNoVG9rZW46IHJlZnJlc2hUb2tlbixcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQoYCR7dGhpcy51c2VyQXBpVXJsfS9yZWZyZXNoLXRva2VuYCwgeyBwYXJhbXM6IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHJlc3BvbnNlKSxcclxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRQZXJzb25hbEluZm8oKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy51c2VyQXBpVXJsfS9wcm9maWxlYCkucGlwZShcclxuICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiByZXNwb25zZSksXHJcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==