coer-elements 0.0.39 → 0.0.40

Sign up to get free protection for your applications and to get access to all the features.
@@ -8,7 +8,7 @@ export declare class CoerButton implements OnInit, OnDestroy {
8
8
  id: string;
9
9
  color: import("@angular/core").InputSignal<"default" | "primary" | "secondary" | "success" | "warning" | "danger" | "navigation">;
10
10
  type: import("@angular/core").InputSignal<"filled" | "outline" | "icon" | "icon-outline" | "icon-no-border">;
11
- icon: import("@angular/core").InputSignal<"" | "cancel" | "menu" | "new" | "save" | "import" | "excel" | "delete" | "edit" | "go" | "back">;
11
+ icon: import("@angular/core").InputSignal<"" | "new" | "save" | "cancel" | "import" | "excel" | "menu" | "delete" | "edit" | "go" | "back">;
12
12
  iconPosition: import("@angular/core").InputSignal<"left" | "right">;
13
13
  animation: import("@angular/core").InputSignal<boolean>;
14
14
  isLoading: import("@angular/core").InputSignal<boolean>;
@@ -1,13 +1,27 @@
1
1
  import { CdkDragDrop } from '@angular/cdk/drag-drop';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class CoerList<T> {
4
+ protected _id: string;
4
5
  dataSource: import("@angular/core").InputSignal<T[]>;
5
6
  propDisplay: import("@angular/core").InputSignal<string>;
7
+ header: import("@angular/core").InputSignal<string>;
8
+ headerIcon: import("@angular/core").InputSignal<string>;
6
9
  showDeleteButton: import("@angular/core").InputSignal<boolean | ((item: T, index: number) => boolean)>;
7
10
  showGoButton: import("@angular/core").InputSignal<boolean | ((item: T, index: number) => boolean)>;
8
11
  isLoading: import("@angular/core").InputSignal<boolean>;
9
12
  isDraggable: import("@angular/core").InputSignal<boolean>;
13
+ showSearch: import("@angular/core").InputSignal<boolean>;
10
14
  template: import("@angular/core").InputSignal<((item: T, index: number) => string) | null>;
15
+ width: import("@angular/core").InputSignal<string>;
16
+ MinWidth: import("@angular/core").InputSignal<string>;
17
+ MaxWidth: import("@angular/core").InputSignal<string>;
18
+ height: import("@angular/core").InputSignal<string>;
19
+ minHeight: import("@angular/core").InputSignal<string>;
20
+ maxHeight: import("@angular/core").InputSignal<string>;
21
+ marginTop: import("@angular/core").InputSignal<string>;
22
+ marginRight: import("@angular/core").InputSignal<string>;
23
+ marginBottom: import("@angular/core").InputSignal<string>;
24
+ marginLeft: import("@angular/core").InputSignal<string>;
11
25
  onDrop: import("@angular/core").OutputEmitterRef<T>;
12
26
  onSort: import("@angular/core").OutputEmitterRef<T[]>;
13
27
  onClick: import("@angular/core").OutputEmitterRef<T>;
@@ -17,6 +31,8 @@ export declare class CoerList<T> {
17
31
  protected _dataSource: import("@angular/core").Signal<T[]>;
18
32
  protected _isDraggable: import("@angular/core").Signal<boolean>;
19
33
  protected _hasTemplate: import("@angular/core").Signal<boolean>;
34
+ protected _showbuttons: import("@angular/core").Signal<boolean>;
35
+ protected get _height(): string;
20
36
  /** */
21
37
  protected GetDisplay: (item: any) => string;
22
38
  /** */
@@ -30,5 +46,5 @@ export declare class CoerList<T> {
30
46
  /** */
31
47
  protected Drop(event: CdkDragDrop<T[]>): void;
32
48
  static ɵfac: i0.ɵɵFactoryDeclaration<CoerList<any>, never>;
33
- static ɵcmp: i0.ɵɵComponentDeclaration<CoerList<any>, "coer-list", never, { "dataSource": { "alias": "dataSource"; "required": false; "isSignal": true; }; "propDisplay": { "alias": "propDisplay"; "required": false; "isSignal": true; }; "showDeleteButton": { "alias": "showDeleteButton"; "required": false; "isSignal": true; }; "showGoButton": { "alias": "showGoButton"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isDraggable": { "alias": "isDraggable"; "required": false; "isSignal": true; }; "template": { "alias": "template"; "required": false; "isSignal": true; }; }, { "onDrop": "onDrop"; "onSort": "onSort"; "onClick": "onClick"; "onDoubleClick": "onDoubleClick"; "onClickDelete": "onClickDelete"; "onClickGo": "onClickGo"; }, never, never, false, never>;
49
+ static ɵcmp: i0.ɵɵComponentDeclaration<CoerList<any>, "coer-list", never, { "dataSource": { "alias": "dataSource"; "required": false; "isSignal": true; }; "propDisplay": { "alias": "propDisplay"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "headerIcon": { "alias": "headerIcon"; "required": false; "isSignal": true; }; "showDeleteButton": { "alias": "showDeleteButton"; "required": false; "isSignal": true; }; "showGoButton": { "alias": "showGoButton"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isDraggable": { "alias": "isDraggable"; "required": false; "isSignal": true; }; "showSearch": { "alias": "showSearch"; "required": false; "isSignal": true; }; "template": { "alias": "template"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "MinWidth": { "alias": "MinWidth"; "required": false; "isSignal": true; }; "MaxWidth": { "alias": "MaxWidth"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "minHeight": { "alias": "minHeight"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "marginTop": { "alias": "marginTop"; "required": false; "isSignal": true; }; "marginRight": { "alias": "marginRight"; "required": false; "isSignal": true; }; "marginBottom": { "alias": "marginBottom"; "required": false; "isSignal": true; }; "marginLeft": { "alias": "marginLeft"; "required": false; "isSignal": true; }; }, { "onDrop": "onDrop"; "onSort": "onSort"; "onClick": "onClick"; "onDoubleClick": "onDoubleClick"; "onClickDelete": "onClickDelete"; "onClickGo": "onClickGo"; }, never, never, false, never>;
34
50
  }
@@ -13,7 +13,7 @@ export declare class CoerModal implements OnInit {
13
13
  title: import("@angular/core").InputSignal<string>;
14
14
  icon: import("@angular/core").InputSignal<string>;
15
15
  showCloseButton: import("@angular/core").InputSignal<boolean>;
16
- width: import("@angular/core").InputSignal<"small" | "full">;
16
+ width: import("@angular/core").InputSignal<"full" | "small">;
17
17
  height: import("@angular/core").InputSignal<string>;
18
18
  maxHeight: import("@angular/core").InputSignal<string>;
19
19
  get isOpen(): boolean;
@@ -30,7 +30,7 @@ export declare class CoerNumberBox extends ControlValue implements OnInit {
30
30
  isReadonly: import("@angular/core").InputSignal<boolean>;
31
31
  isLoading: import("@angular/core").InputSignal<boolean>;
32
32
  selectOnFocus: import("@angular/core").InputSignal<boolean>;
33
- textPosition: import("@angular/core").InputSignal<"center" | "left" | "right">;
33
+ textPosition: import("@angular/core").InputSignal<"left" | "right" | "center">;
34
34
  onKeyupEnter: import("@angular/core").OutputEmitterRef<string | number>;
35
35
  onInput: import("@angular/core").OutputEmitterRef<string | number>;
36
36
  ngOnInit(): void;
@@ -1,9 +1,9 @@
1
- import { WritableSignal } from '@angular/core';
1
+ import { AfterViewInit, WritableSignal } from '@angular/core';
2
2
  import { IMenu, IMenuSelected, IMenuOptionSelected } from 'coer-elements/interfaces';
3
3
  import { CoerTreeAccordion } from './coer-tree-accordion/coer-tree-accordion.component';
4
4
  import { MatDrawer } from '@angular/material/sidenav';
5
5
  import * as i0 from "@angular/core";
6
- export declare class CoerSidenav {
6
+ export declare class CoerSidenav implements AfterViewInit {
7
7
  private _router;
8
8
  protected isOpen: WritableSignal<boolean>;
9
9
  protected _isModalOpen: WritableSignal<boolean>;
@@ -14,6 +14,7 @@ export declare class CoerSidenav {
14
14
  protected get mode(): 'over' | 'push';
15
15
  protected get showAsideMenu(): boolean;
16
16
  constructor();
17
+ ngAfterViewInit(): void;
17
18
  /** */
18
19
  protected NavigateTo(selectedOption: IMenuOptionSelected): void;
19
20
  /** */
@@ -28,7 +28,7 @@ export declare class CoerTextarea extends ControlValue implements OnInit {
28
28
  isLoading: import("@angular/core").InputSignal<boolean>;
29
29
  showFooter: import("@angular/core").InputSignal<boolean>;
30
30
  resize: import("@angular/core").InputSignal<boolean>;
31
- textPosition: import("@angular/core").InputSignal<"center" | "left" | "right">;
31
+ textPosition: import("@angular/core").InputSignal<"left" | "right" | "center">;
32
32
  onInput: import("@angular/core").OutputEmitterRef<string | number>;
33
33
  ngOnInit(): void;
34
34
  get value(): string | number | null | undefined;
@@ -29,7 +29,7 @@ export declare class CoerTextBox extends ControlValue implements OnInit {
29
29
  isReadonly: import("@angular/core").InputSignal<boolean>;
30
30
  isLoading: import("@angular/core").InputSignal<boolean>;
31
31
  selectOnFocus: import("@angular/core").InputSignal<boolean>;
32
- textPosition: import("@angular/core").InputSignal<"center" | "left" | "right">;
32
+ textPosition: import("@angular/core").InputSignal<"left" | "right" | "center">;
33
33
  onKeyupEnter: import("@angular/core").OutputEmitterRef<string | number>;
34
34
  onInput: import("@angular/core").OutputEmitterRef<string | number>;
35
35
  onClickClear: import("@angular/core").OutputEmitterRef<void>;
@@ -1,6 +1,5 @@
1
1
  export * from './lib/components.module';
2
2
  export * from './lib/coer-accordion/coer-accordion.component';
3
- export * from './lib/coer-sidenav/coer-tree-accordion/coer-tree-accordion.component';
4
3
  export * from './lib/coer-button/coer-button.component';
5
4
  export * from './lib/coer-checkbox/coer-checkbox.component';
6
5
  export * from './lib/coer-filebox/coer-filebox.component';
@@ -13,6 +12,7 @@ export * from './lib/coer-page-title/coer-page-title.component';
13
12
  export * from './lib/coer-selectbox/coer-selectbox.component';
14
13
  export * from './lib/coer-sidenav/coer-sidenav.component';
15
14
  export * from './lib/coer-sidenav/coer-toolbar/coer-toolbar.component';
15
+ export * from './lib/coer-sidenav/coer-tree-accordion/coer-tree-accordion.component';
16
16
  export * from './lib/coer-switch/coer-switch.component';
17
17
  export * from './lib/coer-tab/coer-tab.component';
18
18
  export * from './lib/coer-textarea/coer-textarea.component';
@@ -1,20 +1,36 @@
1
1
  import { Component, computed, input, output } from '@angular/core';
2
- import { Tools } from 'coer-elements/tools';
2
+ import { Screen, Tools } from 'coer-elements/tools';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
5
5
  import * as i2 from "@angular/cdk/drag-drop";
6
6
  import * as i3 from "../coer-button/coer-button.component";
7
- import * as i4 from "coer-elements/pipes";
7
+ import * as i4 from "../coer-textbox/coer-textbox.component";
8
+ import * as i5 from "coer-elements/pipes";
8
9
  export class CoerList {
9
10
  constructor() {
11
+ //Variables
12
+ this._id = Tools.GetGuid('coer-List');
10
13
  //Inputs
11
14
  this.dataSource = input([]);
12
15
  this.propDisplay = input('name');
16
+ this.header = input('');
17
+ this.headerIcon = input('');
13
18
  this.showDeleteButton = input(false);
14
19
  this.showGoButton = input(false);
15
20
  this.isLoading = input(false);
16
21
  this.isDraggable = input(false);
22
+ this.showSearch = input(false);
17
23
  this.template = input(null);
24
+ this.width = input('100%');
25
+ this.MinWidth = input('250px');
26
+ this.MaxWidth = input('100%');
27
+ this.height = input('350px');
28
+ this.minHeight = input('140px');
29
+ this.maxHeight = input('100vh');
30
+ this.marginTop = input('0px');
31
+ this.marginRight = input('0px');
32
+ this.marginBottom = input('0px');
33
+ this.marginLeft = input('0px');
18
34
  //Outputs
19
35
  this.onDrop = output();
20
36
  this.onSort = output();
@@ -36,6 +52,10 @@ export class CoerList {
36
52
  this._hasTemplate = computed(() => {
37
53
  return typeof this.template() == 'function';
38
54
  });
55
+ //computed
56
+ this._showbuttons = computed(() => {
57
+ return !this.isLoading();
58
+ });
39
59
  /** */
40
60
  this.GetDisplay = (item) => {
41
61
  return Tools.IsNotNull(item) ? item[this.propDisplay()] : '';
@@ -59,6 +79,20 @@ export class CoerList {
59
79
  : showButton(item, item.index) === true && !this.isLoading();
60
80
  };
61
81
  }
82
+ //getter
83
+ get _height() {
84
+ let height = this.height();
85
+ if (height == 'full') {
86
+ const TOOLBAR = 45;
87
+ const PAGE_HEADER = 70;
88
+ const LIST_HEADER = document.getElementById(`${this._id}-header`);
89
+ const HEADER = (LIST_HEADER && LIST_HEADER.children.length > 0) ? 50 : 0;
90
+ const MARGIN = 30;
91
+ const PADDING = 20;
92
+ height = (Screen.WINDOW_HEIGHT - TOOLBAR - PAGE_HEADER - MARGIN - HEADER - PADDING) + 'px';
93
+ }
94
+ return height;
95
+ }
62
96
  /** */
63
97
  GetTemplate(item) {
64
98
  return this.template()(item, item.index);
@@ -74,10 +108,10 @@ export class CoerList {
74
108
  this.onDrop.emit(item);
75
109
  }
76
110
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CoerList, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
77
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: CoerList, selector: "coer-list", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: false, transformFunction: null }, propDisplay: { classPropertyName: "propDisplay", publicName: "propDisplay", isSignal: true, isRequired: false, transformFunction: null }, showDeleteButton: { classPropertyName: "showDeleteButton", publicName: "showDeleteButton", isSignal: true, isRequired: false, transformFunction: null }, showGoButton: { classPropertyName: "showGoButton", publicName: "showGoButton", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, isDraggable: { classPropertyName: "isDraggable", publicName: "isDraggable", isSignal: true, isRequired: false, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onDrop: "onDrop", onSort: "onSort", onClick: "onClick", onDoubleClick: "onDoubleClick", onClickDelete: "onClickDelete", onClickGo: "onClickGo" }, ngImport: i0, template: "<div class=\"coer-list\">\r\n <ul cdkDropList (cdkDropListDropped)=\"Drop($event)\" class=\"list-group coer-list\">\r\n @for (item of _dataSource(); track GetIndexRow(item)) {\r\n <li cdkDrag \r\n class=\"list-group-item coer-list-box\" \r\n cdkDragBoundary=\"ul.coer-list\"\r\n (click)=\"onClick.emit(item)\" \r\n (dblclick)=\"onDoubleClick.emit(item)\">\r\n\r\n <div *cdkDragPlaceholder class=\"coer-list-placeholder cursor-grabbing\"></div>\r\n <div class=\"coer-list-content\"> \r\n @if(_hasTemplate()) {\r\n <div [innerHTML]=\"GetTemplate(item) | html\" class=\"template\"></div>\r\n }\r\n\r\n @else {\r\n <div> {{ GetDisplay(item) }} </div> \r\n }\r\n \r\n @if(true) {\r\n <div>\r\n @if(_showDeleteButton(item)) {\r\n <coer-button\r\n type=\"icon-no-border\"\r\n color=\"secondary\"\r\n icon=\"delete\" \r\n (onClick)=\"onClickDelete.emit(item)\"\r\n ></coer-button>\r\n } \r\n\r\n @if(_showGoButton(item)) {\r\n <coer-button\r\n type=\"icon-no-border\"\r\n color=\"secondary\"\r\n icon=\"go\" \r\n marginLeft=\"5px\" \r\n (onClick)=\"onClickGo.emit(item)\"\r\n ></coer-button>\r\n } \r\n \r\n <i cdkDragHandle [ngClass]=\"{ \r\n 'fa-solid fa-grip-vertical text-secondary ps-2': true,\r\n 'cursor-grab': true, \r\n 'cursor-grabbing': false, \r\n 'd-none': !_isDraggable()\r\n }\"\r\n ></i> \r\n </div>\r\n }\r\n </div> \r\n </li> \r\n } \r\n </ul>\r\n</div>", styles: ["div.coer-list ul.coer-list{width:100%;border:solid 1px #ccc;display:block;background:#fff;border-radius:4px;overflow:hidden}div.coer-list li.coer-list-box{padding:10px;border-bottom:solid 1px #ccc;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;background:#fff;font-size:14px}div.coer-list li.coer-list-box div.coer-list-content{width:100%;display:flex;align-items:center;justify-content:space-between}div.coer-list .cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}div.coer-list .cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}div.coer-list .coer-list-box:last-child{border:none}div.coer-list .coer-list.cdk-drop-list-dragging .coer-list-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}div.coer-list div.coer-list-placeholder{background:#ccc;border:dotted 3px #999;min-height:40px;transition:transform .25s cubic-bezier(0,0,.2,1)}div.coer-list div.cdk-drag-placeholder,div.coer-list ul.cdk-drop-list-dragging,div.coer-list ul.cdk-drop-list-dragging *{cursor:grabbing}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i2.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "directive", type: i2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "component", type: i3.CoerButton, selector: "coer-button", inputs: ["id", "color", "type", "icon", "iconPosition", "animation", "isLoading", "isDisabled", "isInvisible", "width", "minWidth", "height", "minHeight", "marginTop", "marginRight", "marginBottom", "marginLeft", "path", "tooltipPosition", "tooltip"], outputs: ["onClick"] }, { kind: "pipe", type: i4.HtmlPipe, name: "html" }] }); }
111
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: CoerList, selector: "coer-list", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: false, transformFunction: null }, propDisplay: { classPropertyName: "propDisplay", publicName: "propDisplay", isSignal: true, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: false, transformFunction: null }, headerIcon: { classPropertyName: "headerIcon", publicName: "headerIcon", isSignal: true, isRequired: false, transformFunction: null }, showDeleteButton: { classPropertyName: "showDeleteButton", publicName: "showDeleteButton", isSignal: true, isRequired: false, transformFunction: null }, showGoButton: { classPropertyName: "showGoButton", publicName: "showGoButton", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, isDraggable: { classPropertyName: "isDraggable", publicName: "isDraggable", isSignal: true, isRequired: false, transformFunction: null }, showSearch: { classPropertyName: "showSearch", publicName: "showSearch", isSignal: true, isRequired: false, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, MinWidth: { classPropertyName: "MinWidth", publicName: "MinWidth", isSignal: true, isRequired: false, transformFunction: null }, MaxWidth: { classPropertyName: "MaxWidth", publicName: "MaxWidth", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, marginTop: { classPropertyName: "marginTop", publicName: "marginTop", isSignal: true, isRequired: false, transformFunction: null }, marginRight: { classPropertyName: "marginRight", publicName: "marginRight", isSignal: true, isRequired: false, transformFunction: null }, marginBottom: { classPropertyName: "marginBottom", publicName: "marginBottom", isSignal: true, isRequired: false, transformFunction: null }, marginLeft: { classPropertyName: "marginLeft", publicName: "marginLeft", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onDrop: "onDrop", onSort: "onSort", onClick: "onClick", onDoubleClick: "onDoubleClick", onClickDelete: "onClickDelete", onClickGo: "onClickGo" }, ngImport: i0, template: "<div [id]=\"_id\" class=\"coer-list\" [ngStyle]=\"{ \r\n 'margin-top': marginTop(), \r\n 'margin-right': marginRight(), \r\n 'margin-bottom': marginBottom(), \r\n 'margin-left': marginLeft(), \r\n }\">\r\n\r\n @if(isLoading()) {\r\n <!-- Grid Message -->\r\n <div class=\"loading\">\r\n <i class=\"spinner-border\"></i>\r\n <span class=\"fa-fade\">Loading</span>\r\n </div>\r\n }\r\n\r\n @else if(dataSource().length <= 0) {\r\n <div class=\"no-data\"> No Data </div>\r\n }\r\n\r\n <header [id]=\"_id + '-header'\" class=\"row\"> \r\n @if(header().length > 0 || headerIcon().length > 0) {\r\n <div class=\"col-auto\">\r\n <h6 class=\"d-flex align-items-center gap-2\">\r\n @if(headerIcon().length > 0) {\r\n <i [class]=\"headerIcon()\"></i> \r\n }\r\n\r\n @if(header().length > 0) {\r\n <span>{{ header() }}</span> \r\n }\r\n </h6> \r\n </div>\r\n }\r\n \r\n <!-- Search -->\r\n @if(showSearch() && dataSource().length > 0) {\r\n <div class=\"ms-auto col-auto\">\r\n <coer-textbox\r\n #inputSearch \r\n placeholder=\"Search\"\r\n [isDisabled]=\"isLoading()\"\r\n [selectOnFocus]=\"true\"\r\n width=\"250px\"\r\n marginTop=\"5px\"\r\n marginBottom=\"5px\"\r\n [showSearchIcon]=\"true\"\r\n [showClearIcon]=\"true\"\r\n ></coer-textbox>\r\n </div>\r\n }\r\n </header>\r\n\r\n <div [ngStyle]=\"{ \r\n 'width': width(), \r\n 'min-Width': MinWidth(), \r\n 'max-Width': MaxWidth(), \r\n }\">\r\n <ul cdkDropList (cdkDropListDropped)=\"Drop($event)\" class='list-group coer-list'\r\n [ngStyle]=\"{ \r\n 'height': _height, \r\n 'min-height': minHeight(), \r\n 'max-height': maxHeight(), \r\n 'd-none': dataSource().length <= 0 \r\n }\">\r\n \r\n @for (item of _dataSource(); track GetIndexRow(item)) {\r\n <li cdkDrag \r\n class=\"list-group-item coer-list-box\" \r\n cdkDragBoundary=\"ul.coer-list\"\r\n (click)=\"onClick.emit(item)\" \r\n (dblclick)=\"onDoubleClick.emit(item)\">\r\n \r\n <div *cdkDragPlaceholder class=\"coer-list-placeholder cursor-grabbing\"></div>\r\n <div class=\"coer-list-content\"> \r\n @if(_hasTemplate()) {\r\n <div [innerHTML]=\"GetTemplate(item) | html\" class=\"template\"></div>\r\n }\r\n \r\n @else {\r\n <div> {{ GetDisplay(item) }} </div> \r\n } \r\n \r\n <div>\r\n @if(_showDeleteButton(item)) {\r\n <coer-button\r\n type=\"icon-no-border\"\r\n color=\"secondary\"\r\n icon=\"delete\" \r\n (onClick)=\"onClickDelete.emit(item)\"\r\n ></coer-button>\r\n } \r\n \r\n @if(_showGoButton(item)) {\r\n <coer-button\r\n type=\"icon-no-border\"\r\n color=\"secondary\"\r\n icon=\"go\" \r\n marginLeft=\"5px\" \r\n (onClick)=\"onClickGo.emit(item)\"\r\n ></coer-button>\r\n } \r\n \r\n <i cdkDragHandle [ngClass]=\"{ \r\n 'fa-solid fa-grip-vertical text-secondary ps-2': true,\r\n 'cursor-grab': true, \r\n 'cursor-grabbing': false, \r\n 'd-none': !_isDraggable()\r\n }\"></i> \r\n </div> \r\n </div> \r\n </li> \r\n } \r\n </ul>\r\n </div>\r\n</div>", styles: ["div.coer-list header{align-items:center;justify-content:space-between;padding-right:0px 8px;margin:0}div.coer-list header>div{display:flex;align-items:baseline}div.coer-list ul.coer-list{width:100%;border:solid 1px #ccc;display:block;background:#fff;border-radius:4px;overflow:auto}div.coer-list li.coer-list-box{padding:10px;border-bottom:solid 1px #ccc;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;background:#fff;font-size:14px}div.coer-list li.coer-list-box div.coer-list-content{width:100%;display:flex;align-items:center;justify-content:space-between}div.coer-list .cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}div.coer-list .cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}div.coer-list .coer-list-box:last-child{border:none}div.coer-list .coer-list.cdk-drop-list-dragging .coer-list-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}div.coer-list div.coer-list-placeholder{background:#ccc;border:dotted 3px #999;min-height:40px;transition:transform .25s cubic-bezier(0,0,.2,1)}div.coer-list div.cdk-drag-placeholder,div.coer-list ul.cdk-drop-list-dragging,div.coer-list ul.cdk-drop-list-dragging *{cursor:grabbing}div.coer-list div.loading,div.coer-list div.no-data{position:absolute;display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:25px;color:gray;z-index:1}div.coer-list div.loading{background-color:#bbbbbb83!important;flex-direction:column!important;gap:10px!important}div.coer-list div.loading span.fa-fade{position:relative!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i2.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "directive", type: i2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "component", type: i3.CoerButton, selector: "coer-button", inputs: ["id", "color", "type", "icon", "iconPosition", "animation", "isLoading", "isDisabled", "isInvisible", "width", "minWidth", "height", "minHeight", "marginTop", "marginRight", "marginBottom", "marginLeft", "path", "tooltipPosition", "tooltip"], outputs: ["onClick"] }, { kind: "component", type: i4.CoerTextBox, selector: "coer-textbox", inputs: ["value", "id", "label", "placeholder", "minLength", "maxLength", "showSearchIcon", "showClearIcon", "width", "minWidth", "maxWidth", "marginTop", "marginRight", "marginBottom", "marginLeft", "isInvalid", "isValid", "isDisabled", "isReadonly", "isLoading", "selectOnFocus", "textPosition"], outputs: ["onKeyupEnter", "onInput", "onClickClear"] }, { kind: "pipe", type: i5.HtmlPipe, name: "html" }] }); }
78
112
  }
79
113
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CoerList, decorators: [{
80
114
  type: Component,
81
- args: [{ selector: 'coer-list', template: "<div class=\"coer-list\">\r\n <ul cdkDropList (cdkDropListDropped)=\"Drop($event)\" class=\"list-group coer-list\">\r\n @for (item of _dataSource(); track GetIndexRow(item)) {\r\n <li cdkDrag \r\n class=\"list-group-item coer-list-box\" \r\n cdkDragBoundary=\"ul.coer-list\"\r\n (click)=\"onClick.emit(item)\" \r\n (dblclick)=\"onDoubleClick.emit(item)\">\r\n\r\n <div *cdkDragPlaceholder class=\"coer-list-placeholder cursor-grabbing\"></div>\r\n <div class=\"coer-list-content\"> \r\n @if(_hasTemplate()) {\r\n <div [innerHTML]=\"GetTemplate(item) | html\" class=\"template\"></div>\r\n }\r\n\r\n @else {\r\n <div> {{ GetDisplay(item) }} </div> \r\n }\r\n \r\n @if(true) {\r\n <div>\r\n @if(_showDeleteButton(item)) {\r\n <coer-button\r\n type=\"icon-no-border\"\r\n color=\"secondary\"\r\n icon=\"delete\" \r\n (onClick)=\"onClickDelete.emit(item)\"\r\n ></coer-button>\r\n } \r\n\r\n @if(_showGoButton(item)) {\r\n <coer-button\r\n type=\"icon-no-border\"\r\n color=\"secondary\"\r\n icon=\"go\" \r\n marginLeft=\"5px\" \r\n (onClick)=\"onClickGo.emit(item)\"\r\n ></coer-button>\r\n } \r\n \r\n <i cdkDragHandle [ngClass]=\"{ \r\n 'fa-solid fa-grip-vertical text-secondary ps-2': true,\r\n 'cursor-grab': true, \r\n 'cursor-grabbing': false, \r\n 'd-none': !_isDraggable()\r\n }\"\r\n ></i> \r\n </div>\r\n }\r\n </div> \r\n </li> \r\n } \r\n </ul>\r\n</div>", styles: ["div.coer-list ul.coer-list{width:100%;border:solid 1px #ccc;display:block;background:#fff;border-radius:4px;overflow:hidden}div.coer-list li.coer-list-box{padding:10px;border-bottom:solid 1px #ccc;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;background:#fff;font-size:14px}div.coer-list li.coer-list-box div.coer-list-content{width:100%;display:flex;align-items:center;justify-content:space-between}div.coer-list .cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}div.coer-list .cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}div.coer-list .coer-list-box:last-child{border:none}div.coer-list .coer-list.cdk-drop-list-dragging .coer-list-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}div.coer-list div.coer-list-placeholder{background:#ccc;border:dotted 3px #999;min-height:40px;transition:transform .25s cubic-bezier(0,0,.2,1)}div.coer-list div.cdk-drag-placeholder,div.coer-list ul.cdk-drop-list-dragging,div.coer-list ul.cdk-drop-list-dragging *{cursor:grabbing}\n"] }]
115
+ args: [{ selector: 'coer-list', template: "<div [id]=\"_id\" class=\"coer-list\" [ngStyle]=\"{ \r\n 'margin-top': marginTop(), \r\n 'margin-right': marginRight(), \r\n 'margin-bottom': marginBottom(), \r\n 'margin-left': marginLeft(), \r\n }\">\r\n\r\n @if(isLoading()) {\r\n <!-- Grid Message -->\r\n <div class=\"loading\">\r\n <i class=\"spinner-border\"></i>\r\n <span class=\"fa-fade\">Loading</span>\r\n </div>\r\n }\r\n\r\n @else if(dataSource().length <= 0) {\r\n <div class=\"no-data\"> No Data </div>\r\n }\r\n\r\n <header [id]=\"_id + '-header'\" class=\"row\"> \r\n @if(header().length > 0 || headerIcon().length > 0) {\r\n <div class=\"col-auto\">\r\n <h6 class=\"d-flex align-items-center gap-2\">\r\n @if(headerIcon().length > 0) {\r\n <i [class]=\"headerIcon()\"></i> \r\n }\r\n\r\n @if(header().length > 0) {\r\n <span>{{ header() }}</span> \r\n }\r\n </h6> \r\n </div>\r\n }\r\n \r\n <!-- Search -->\r\n @if(showSearch() && dataSource().length > 0) {\r\n <div class=\"ms-auto col-auto\">\r\n <coer-textbox\r\n #inputSearch \r\n placeholder=\"Search\"\r\n [isDisabled]=\"isLoading()\"\r\n [selectOnFocus]=\"true\"\r\n width=\"250px\"\r\n marginTop=\"5px\"\r\n marginBottom=\"5px\"\r\n [showSearchIcon]=\"true\"\r\n [showClearIcon]=\"true\"\r\n ></coer-textbox>\r\n </div>\r\n }\r\n </header>\r\n\r\n <div [ngStyle]=\"{ \r\n 'width': width(), \r\n 'min-Width': MinWidth(), \r\n 'max-Width': MaxWidth(), \r\n }\">\r\n <ul cdkDropList (cdkDropListDropped)=\"Drop($event)\" class='list-group coer-list'\r\n [ngStyle]=\"{ \r\n 'height': _height, \r\n 'min-height': minHeight(), \r\n 'max-height': maxHeight(), \r\n 'd-none': dataSource().length <= 0 \r\n }\">\r\n \r\n @for (item of _dataSource(); track GetIndexRow(item)) {\r\n <li cdkDrag \r\n class=\"list-group-item coer-list-box\" \r\n cdkDragBoundary=\"ul.coer-list\"\r\n (click)=\"onClick.emit(item)\" \r\n (dblclick)=\"onDoubleClick.emit(item)\">\r\n \r\n <div *cdkDragPlaceholder class=\"coer-list-placeholder cursor-grabbing\"></div>\r\n <div class=\"coer-list-content\"> \r\n @if(_hasTemplate()) {\r\n <div [innerHTML]=\"GetTemplate(item) | html\" class=\"template\"></div>\r\n }\r\n \r\n @else {\r\n <div> {{ GetDisplay(item) }} </div> \r\n } \r\n \r\n <div>\r\n @if(_showDeleteButton(item)) {\r\n <coer-button\r\n type=\"icon-no-border\"\r\n color=\"secondary\"\r\n icon=\"delete\" \r\n (onClick)=\"onClickDelete.emit(item)\"\r\n ></coer-button>\r\n } \r\n \r\n @if(_showGoButton(item)) {\r\n <coer-button\r\n type=\"icon-no-border\"\r\n color=\"secondary\"\r\n icon=\"go\" \r\n marginLeft=\"5px\" \r\n (onClick)=\"onClickGo.emit(item)\"\r\n ></coer-button>\r\n } \r\n \r\n <i cdkDragHandle [ngClass]=\"{ \r\n 'fa-solid fa-grip-vertical text-secondary ps-2': true,\r\n 'cursor-grab': true, \r\n 'cursor-grabbing': false, \r\n 'd-none': !_isDraggable()\r\n }\"></i> \r\n </div> \r\n </div> \r\n </li> \r\n } \r\n </ul>\r\n </div>\r\n</div>", styles: ["div.coer-list header{align-items:center;justify-content:space-between;padding-right:0px 8px;margin:0}div.coer-list header>div{display:flex;align-items:baseline}div.coer-list ul.coer-list{width:100%;border:solid 1px #ccc;display:block;background:#fff;border-radius:4px;overflow:auto}div.coer-list li.coer-list-box{padding:10px;border-bottom:solid 1px #ccc;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;background:#fff;font-size:14px}div.coer-list li.coer-list-box div.coer-list-content{width:100%;display:flex;align-items:center;justify-content:space-between}div.coer-list .cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}div.coer-list .cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}div.coer-list .coer-list-box:last-child{border:none}div.coer-list .coer-list.cdk-drop-list-dragging .coer-list-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}div.coer-list div.coer-list-placeholder{background:#ccc;border:dotted 3px #999;min-height:40px;transition:transform .25s cubic-bezier(0,0,.2,1)}div.coer-list div.cdk-drag-placeholder,div.coer-list ul.cdk-drop-list-dragging,div.coer-list ul.cdk-drop-list-dragging *{cursor:grabbing}div.coer-list div.loading,div.coer-list div.no-data{position:absolute;display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:25px;color:gray;z-index:1}div.coer-list div.loading{background-color:#bbbbbb83!important;flex-direction:column!important;gap:10px!important}div.coer-list div.loading span.fa-fade{position:relative!important}\n"] }]
82
116
  }] });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZXItZWxlbWVudHMvY29tcG9uZW50cy9saWIvY29lci1saXN0L2NvZXItbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL2NvbXBvbmVudHMvbGliL2NvZXItbGlzdC9jb2VyLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFpQixTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7QUFPNUMsTUFBTSxPQUFPLFFBQVE7SUFMckI7UUFPSSxRQUFRO1FBQ0QsZUFBVSxHQUFHLEtBQUssQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUM1QixnQkFBVyxHQUFHLEtBQUssQ0FBUyxNQUFNLENBQUMsQ0FBQztRQUNwQyxxQkFBZ0IsR0FBRyxLQUFLLENBQWtELEtBQUssQ0FBQyxDQUFDO1FBQ2pGLGlCQUFZLEdBQUcsS0FBSyxDQUFrRCxLQUFLLENBQUMsQ0FBQztRQUM3RSxjQUFTLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLGdCQUFXLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLGFBQVEsR0FBRyxLQUFLLENBQThDLElBQUksQ0FBQyxDQUFDO1FBRTNFLFNBQVM7UUFDRixXQUFNLEdBQUcsTUFBTSxFQUFLLENBQUM7UUFDckIsV0FBTSxHQUFHLE1BQU0sRUFBTyxDQUFDO1FBQ3ZCLFlBQU8sR0FBRyxNQUFNLEVBQUssQ0FBQztRQUN0QixrQkFBYSxHQUFHLE1BQU0sRUFBSyxDQUFDO1FBQzVCLGtCQUFhLEdBQUcsTUFBTSxFQUFLLENBQUM7UUFD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QUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLFVBQVUsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDOytHQW5GUSxRQUFRO21HQUFSLFFBQVEsZ3FDQ1RyQix3NURBcURNOzs0RkQ1Q08sUUFBUTtrQkFMcEIsU0FBUzsrQkFDSSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnOyBcclxuaW1wb3J0IHsgVG9vbHMgfSBmcm9tICdjb2VyLWVsZW1lbnRzL3Rvb2xzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjb2VyLWxpc3QnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvZXItbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybDogJy4vY29lci1saXN0LmNvbXBvbmVudC5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvZXJMaXN0PFQ+IHsgXHJcblxyXG4gICAgLy9JbnB1dHNcclxuICAgIHB1YmxpYyBkYXRhU291cmNlID0gaW5wdXQ8VFtdPihbXSk7XHJcbiAgICBwdWJsaWMgcHJvcERpc3BsYXkgPSBpbnB1dDxzdHJpbmc+KCduYW1lJyk7XHJcbiAgICBwdWJsaWMgc2hvd0RlbGV0ZUJ1dHRvbiA9IGlucHV0PCgoaXRlbTogVCwgaW5kZXg6IG51bWJlcikgPT4gYm9vbGVhbikgfCBib29sZWFuPihmYWxzZSk7XHJcbiAgICBwdWJsaWMgc2hvd0dvQnV0dG9uID0gaW5wdXQ8KChpdGVtOiBULCBpbmRleDogbnVtYmVyKSA9PiBib29sZWFuKSB8IGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHB1YmxpYyBpc0xvYWRpbmcgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwdWJsaWMgaXNEcmFnZ2FibGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwdWJsaWMgdGVtcGxhdGUgPSBpbnB1dDwoKGl0ZW06IFQsIGluZGV4OiBudW1iZXIpID0+IHN0cmluZykgfCBudWxsPihudWxsKTtcclxuXHJcbiAgICAvL091dHB1dHNcclxuICAgIHB1YmxpYyBvbkRyb3AgPSBvdXRwdXQ8VD4oKTsgXHJcbiAgICBwdWJsaWMgb25Tb3J0ID0gb3V0cHV0PFRbXT4oKTsgXHJcbiAgICBwdWJsaWMgb25DbGljayA9IG91dHB1dDxUPigpO1xyXG4gICAgcHVibGljIG9uRG91YmxlQ2xpY2sgPSBvdXRwdXQ8VD4oKTtcclxuICAgIHB1YmxpYyBvbkNsaWNrRGVsZXRlID0gb3V0cHV0PFQ+KCk7XHJcbiAgICBwdWJsaWMgb25DbGlja0dvID0gb3V0cHV0PFQ+KCk7XHJcblxyXG4gICAgLy9jb21wdXRlZFxyXG4gICAgcHJvdGVjdGVkIF9kYXRhU291cmNlID0gY29tcHV0ZWQ8VFtdPigoKSA9PiB7XHJcbiAgICAgICAgbGV0IGluZGV4ID0gMDsgICAgICAgIFxyXG4gICAgICAgIHJldHVybiBUb29scy5CcmVha1JlZmVyZW5jZSh0aGlzLmRhdGFTb3VyY2UoKSlcclxuICAgICAgICAgICAgLm1hcCgoaXRlbTogYW55KSA9PiBPYmplY3QuYXNzaWduKGl0ZW0sIHsgaW5kZXg6IGluZGV4KysgfSkpO1xyXG4gICAgfSk7XHJcblxyXG5cclxuICAgIC8vY29tcHV0ZWRcclxuICAgIHByb3RlY3RlZCBfaXNEcmFnZ2FibGUgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNEcmFnZ2FibGUoKSAmJiAhdGhpcy5pc0xvYWRpbmcoKTtcclxuICAgIH0pOyAgXHJcblxyXG5cclxuICAgIC8vY29tcHV0ZWRcclxuICAgIHByb3RlY3RlZCBfaGFzVGVtcGxhdGUgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7ICAgICAgICAgICAgICAgIFxyXG4gICAgICAgIHJldHVybiB0eXBlb2YgdGhpcy50ZW1wbGF0ZSgpID09ICdmdW5jdGlvbic7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBHZXREaXNwbGF5ID0gKGl0ZW06IGFueSk6IHN0cmluZyA9PiB7XHJcbiAgICAgICAgcmV0dXJuIFRvb2xzLklzTm90TnVsbChpdGVtKSA/IGl0ZW1bdGhpcy5wcm9wRGlzcGxheSgpXSA6ICcnO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBHZXRJbmRleFJvdyA9IChpdGVtOiBhbnkpOiBudW1iZXIgPT4ge1xyXG4gICAgICAgIHJldHVybiBpdGVtWydpbmRleCddO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBHZXRUZW1wbGF0ZShpdGVtOiBhbnkpOiBzdHJpbmcgeyAgXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudGVtcGxhdGUoKSEoaXRlbSwgaXRlbS5pbmRleCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIF9zaG93RGVsZXRlQnV0dG9uID0gKGl0ZW06IGFueSk6IGJvb2xlYW4gPT4geyBcclxuICAgICAgICBjb25zdCBzaG93QnV0dG9uID0gdGhpcy5zaG93RGVsZXRlQnV0dG9uKCkgYXMgYW55OyAgICAgICAgXHJcbiAgICAgICAgcmV0dXJuICh0eXBlb2Ygc2hvd0J1dHRvbiA9PT0gJ2Jvb2xlYW4nKVxyXG4gICAgICAgICAgICA/IHNob3dCdXR0b24gJiYgIXRoaXMuaXNMb2FkaW5nKClcclxuICAgICAgICAgICAgOiBzaG93QnV0dG9uKGl0ZW0sIGl0ZW0uaW5kZXgpID09PSB0cnVlICYmICF0aGlzLmlzTG9hZGluZygpOyBcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgX3Nob3dHb0J1dHRvbiA9IChpdGVtOiBhbnkpOiBib29sZWFuID0+IHsgXHJcbiAgICAgICAgY29uc3Qgc2hvd0J1dHRvbiA9IHRoaXMuc2hvd0dvQnV0dG9uKCkgYXMgYW55OyAgICAgICAgXHJcbiAgICAgICAgcmV0dXJuICh0eXBlb2Ygc2hvd0J1dHRvbiA9PT0gJ2Jvb2xlYW4nKVxyXG4gICAgICAgICAgICA/IHNob3dCdXR0b24gJiYgIXRoaXMuaXNMb2FkaW5nKClcclxuICAgICAgICAgICAgOiBzaG93QnV0dG9uKGl0ZW0sIGl0ZW0uaW5kZXgpID09PSB0cnVlICYmICF0aGlzLmlzTG9hZGluZygpOyBcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgRHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8VFtdPik6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHsgcHJldmlvdXNJbmRleCwgY3VycmVudEluZGV4IH0gPSBldmVudDsgICAgICAgIFxyXG4gICAgICAgIGxldCBkYXRhU291cmNlID0gVG9vbHMuQnJlYWtSZWZlcmVuY2UodGhpcy5kYXRhU291cmNlKCkpO1xyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSBUb29scy5CcmVha1JlZmVyZW5jZShkYXRhU291cmNlW3ByZXZpb3VzSW5kZXhdKTtcclxuICAgICAgICBkYXRhU291cmNlLnNwbGljZShwcmV2aW91c0luZGV4LCAxKTtcclxuICAgICAgICBkYXRhU291cmNlLnNwbGljZShjdXJyZW50SW5kZXgsIDAsIGl0ZW0pOyBcclxuICAgICAgICB0aGlzLm9uU29ydC5lbWl0KGRhdGFTb3VyY2UpO1xyXG4gICAgICAgIHRoaXMub25Ecm9wLmVtaXQoaXRlbSk7XHJcbiAgICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwiY29lci1saXN0XCI+XHJcbiAgPHVsIGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiRHJvcCgkZXZlbnQpXCIgY2xhc3M9XCJsaXN0LWdyb3VwIGNvZXItbGlzdFwiPlxyXG4gICAgQGZvciAoaXRlbSBvZiBfZGF0YVNvdXJjZSgpOyB0cmFjayBHZXRJbmRleFJvdyhpdGVtKSkge1xyXG4gICAgICA8bGkgY2RrRHJhZyBcclxuICAgICAgICBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbSBjb2VyLWxpc3QtYm94XCIgXHJcbiAgICAgICAgY2RrRHJhZ0JvdW5kYXJ5PVwidWwuY29lci1saXN0XCJcclxuICAgICAgICAoY2xpY2spPVwib25DbGljay5lbWl0KGl0ZW0pXCIgXHJcbiAgICAgICAgKGRibGNsaWNrKT1cIm9uRG91YmxlQ2xpY2suZW1pdChpdGVtKVwiPlxyXG5cclxuICAgICAgICA8ZGl2ICpjZGtEcmFnUGxhY2Vob2xkZXIgY2xhc3M9XCJjb2VyLWxpc3QtcGxhY2Vob2xkZXIgY3Vyc29yLWdyYWJiaW5nXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvZXItbGlzdC1jb250ZW50XCI+IFxyXG4gICAgICAgICAgQGlmKF9oYXNUZW1wbGF0ZSgpKSB7XHJcbiAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJHZXRUZW1wbGF0ZShpdGVtKSB8IGh0bWxcIiBjbGFzcz1cInRlbXBsYXRlXCI+PC9kaXY+XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICA8ZGl2PiB7eyBHZXREaXNwbGF5KGl0ZW0pIH19IDwvZGl2PiBcclxuICAgICAgICAgIH1cclxuICAgICAgICAgICBcclxuICAgICAgICAgIEBpZih0cnVlKSB7XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgQGlmKF9zaG93RGVsZXRlQnV0dG9uKGl0ZW0pKSB7XHJcbiAgICAgICAgICAgICAgICA8Y29lci1idXR0b25cclxuICAgICAgICAgICAgICAgICAgdHlwZT1cImljb24tbm8tYm9yZGVyXCJcclxuICAgICAgICAgICAgICAgICAgY29sb3I9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAgICAgICBpY29uPVwiZGVsZXRlXCIgICAgICBcclxuICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwib25DbGlja0RlbGV0ZS5lbWl0KGl0ZW0pXCJcclxuICAgICAgICAgICAgICAgID48L2NvZXItYnV0dG9uPlxyXG4gICAgICAgICAgICAgIH0gXHJcblxyXG4gICAgICAgICAgICAgIEBpZihfc2hvd0dvQnV0dG9uKGl0ZW0pKSB7XHJcbiAgICAgICAgICAgICAgICA8Y29lci1idXR0b25cclxuICAgICAgICAgICAgICAgICAgdHlwZT1cImljb24tbm8tYm9yZGVyXCJcclxuICAgICAgICAgICAgICAgICAgY29sb3I9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAgICAgICBpY29uPVwiZ29cIiAgIFxyXG4gICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0PVwiNXB4XCIgICBcclxuICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwib25DbGlja0dvLmVtaXQoaXRlbSlcIlxyXG4gICAgICAgICAgICAgICAgPjwvY29lci1idXR0b24+XHJcbiAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPGkgY2RrRHJhZ0hhbmRsZSBbbmdDbGFzc109XCJ7IFxyXG4gICAgICAgICAgICAgICAgJ2ZhLXNvbGlkIGZhLWdyaXAtdmVydGljYWwgdGV4dC1zZWNvbmRhcnkgcHMtMic6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAnY3Vyc29yLWdyYWInOiB0cnVlLCBcclxuICAgICAgICAgICAgICAgICdjdXJzb3ItZ3JhYmJpbmcnOiBmYWxzZSwgXHJcbiAgICAgICAgICAgICAgICAnZC1ub25lJzogIV9pc0RyYWdnYWJsZSgpXHJcbiAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICA+PC9pPiAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj4gIFxyXG4gICAgICA8L2xpPiBcclxuICAgIH0gXHJcbiAgPC91bD5cclxuPC9kaXY+Il19
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZXItZWxlbWVudHMvY29tcG9uZW50cy9saWIvY29lci1saXN0L2NvZXItbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL2NvbXBvbmVudHMvbGliL2NvZXItbGlzdC9jb2VyLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBT3BELE1BQU0sT0FBTyxRQUFRO0lBTHJCO1FBT0ksV0FBVztRQUNELFFBQUcsR0FBVyxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRW5ELFFBQVE7UUFDRCxlQUFVLEdBQUcsS0FBSyxDQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLGdCQUFXLEdBQUcsS0FBSyxDQUFTLE1BQU0sQ0FBQyxDQUFDO1FBQ3BDLFdBQU0sR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDM0IsZUFBVSxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUMvQixxQkFBZ0IsR0FBRyxLQUFLLENBQWtELEtBQUssQ0FBQyxDQUFDO1FBQ2pGLGlCQUFZLEdBQUcsS0FBSyxDQUFrRCxLQUFLLENBQUMsQ0FBQztRQUM3RSxjQUFTLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLGdCQUFXLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLGVBQVUsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDbkMsYUFBUSxHQUFHLEtB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UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBZUQsTUFBTTtJQUNJLFdBQVcsQ0FBQyxJQUFTO1FBQzNCLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQXFCRCxNQUFNO0lBQ0ksSUFBSSxDQUFDLEtBQXVCO1FBQ2xDLE1BQU0sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQzlDLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDekQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUM3RCxVQUFVLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwQyxVQUFVLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQzsrR0E1SFEsUUFBUTttR0FBUixRQUFRLHcwRkNUckIsa3dIQWtITTs7NEZEekdPLFFBQVE7a0JBTHBCLFNBQVM7K0JBQ0ksV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJzsgXHJcbmltcG9ydCB7IFNjcmVlbiwgVG9vbHMgfSBmcm9tICdjb2VyLWVsZW1lbnRzL3Rvb2xzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjb2VyLWxpc3QnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvZXItbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybDogJy4vY29lci1saXN0LmNvbXBvbmVudC5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvZXJMaXN0PFQ+IHsgXHJcblxyXG4gICAgLy9WYXJpYWJsZXNcclxuICAgIHByb3RlY3RlZCBfaWQ6IHN0cmluZyA9IFRvb2xzLkdldEd1aWQoJ2NvZXItTGlzdCcpO1xyXG5cclxuICAgIC8vSW5wdXRzXHJcbiAgICBwdWJsaWMgZGF0YVNvdXJjZSA9IGlucHV0PFRbXT4oW10pO1xyXG4gICAgcHVibGljIHByb3BEaXNwbGF5ID0gaW5wdXQ8c3RyaW5nPignbmFtZScpO1xyXG4gICAgcHVibGljIGhlYWRlciA9IGlucHV0PHN0cmluZz4oJycpO1xyXG4gICAgcHVibGljIGhlYWRlckljb24gPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICAgIHB1YmxpYyBzaG93RGVsZXRlQnV0dG9uID0gaW5wdXQ8KChpdGVtOiBULCBpbmRleDogbnVtYmVyKSA9PiBib29sZWFuKSB8IGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHB1YmxpYyBzaG93R29CdXR0b24gPSBpbnB1dDwoKGl0ZW06IFQsIGluZGV4OiBudW1iZXIpID0+IGJvb2xlYW4pIHwgYm9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHVibGljIGlzTG9hZGluZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHB1YmxpYyBpc0RyYWdnYWJsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHB1YmxpYyBzaG93U2VhcmNoID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHVibGljIHRlbXBsYXRlID0gaW5wdXQ8KChpdGVtOiBULCBpbmRleDogbnVtYmVyKSA9PiBzdHJpbmcpIHwgbnVsbD4obnVsbCk7XHJcbiAgICBwdWJsaWMgd2lkdGggPSBpbnB1dDxzdHJpbmc+KCcxMDAlJyk7XHJcbiAgICBwdWJsaWMgTWluV2lkdGggPSBpbnB1dDxzdHJpbmc+KCcyNTBweCcpO1xyXG4gICAgcHVibGljIE1heFdpZHRoID0gaW5wdXQ8c3RyaW5nPignMTAwJScpO1xyXG4gICAgcHVibGljIGhlaWdodCA9IGlucHV0PHN0cmluZz4oJzM1MHB4Jyk7XHJcbiAgICBwdWJsaWMgbWluSGVpZ2h0ID0gaW5wdXQ8c3RyaW5nPignMTQwcHgnKTtcclxuICAgIHB1YmxpYyBtYXhIZWlnaHQgPSBpbnB1dDxzdHJpbmc+KCcxMDB2aCcpO1xyXG4gICAgcHVibGljIG1hcmdpblRvcCA9IGlucHV0PHN0cmluZz4oJzBweCcpO1xyXG4gICAgcHVibGljIG1hcmdpblJpZ2h0ID0gaW5wdXQ8c3RyaW5nPignMHB4Jyk7XHJcbiAgICBwdWJsaWMgbWFyZ2luQm90dG9tID0gaW5wdXQ8c3RyaW5nPignMHB4Jyk7XHJcbiAgICBwdWJsaWMgbWFyZ2luTGVmdCA9IGlucHV0PHN0cmluZz4oJzBweCcpO1xyXG5cclxuICAgIC8vT3V0cHV0c1xyXG4gICAgcHVibGljIG9uRHJvcCA9IG91dHB1dDxUPigpOyBcclxuICAgIHB1YmxpYyBvblNvcnQgPSBvdXRwdXQ8VFtdPigpOyBcclxuICAgIHB1YmxpYyBvbkNsaWNrID0gb3V0cHV0PFQ+KCk7XHJcbiAgICBwdWJsaWMgb25Eb3VibGVDbGljayA9IG91dHB1dDxUPigpO1xyXG4gICAgcHVibGljIG9uQ2xpY2tEZWxldGUgPSBvdXRwdXQ8VD4oKTtcclxuICAgIHB1YmxpYyBvbkNsaWNrR28gPSBvdXRwdXQ8VD4oKTtcclxuXHJcbiAgICAvL2NvbXB1dGVkXHJcbiAgICBwcm90ZWN0ZWQgX2RhdGFTb3VyY2UgPSBjb21wdXRlZDxUW10+KCgpID0+IHtcclxuICAgICAgICBsZXQgaW5kZXggPSAwOyAgICAgICAgXHJcbiAgICAgICAgcmV0dXJuIFRvb2xzLkJyZWFrUmVmZXJlbmNlKHRoaXMuZGF0YVNvdXJjZSgpKVxyXG4gICAgICAgICAgICAubWFwKChpdGVtOiBhbnkpID0+IE9iamVjdC5hc3NpZ24oaXRlbSwgeyBpbmRleDogaW5kZXgrKyB9KSk7XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgLy9jb21wdXRlZFxyXG4gICAgcHJvdGVjdGVkIF9pc0RyYWdnYWJsZSA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc0RyYWdnYWJsZSgpICYmICF0aGlzLmlzTG9hZGluZygpO1xyXG4gICAgfSk7ICBcclxuXHJcblxyXG4gICAgLy9jb21wdXRlZFxyXG4gICAgcHJvdGVjdGVkIF9oYXNUZW1wbGF0ZSA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHsgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB0aGlzLnRlbXBsYXRlKCkgPT0gJ2Z1bmN0aW9uJztcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICAvL2NvbXB1dGVkXHJcbiAgICBwcm90ZWN0ZWQgX3Nob3didXR0b25zID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4geyAgICAgICAgICAgICAgICBcclxuICAgICAgICByZXR1cm4gIXRoaXMuaXNMb2FkaW5nKCk7XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgLy9nZXR0ZXJcclxuICAgIHByb3RlY3RlZCBnZXQgX2hlaWdodCgpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCBoZWlnaHQgPSB0aGlzLmhlaWdodCgpO1xyXG5cclxuICAgICAgICBpZiAoaGVpZ2h0ID09ICdmdWxsJykge1xyXG4gICAgICAgICAgICBjb25zdCBUT09MQkFSID0gNDU7XHJcbiAgICAgICAgICAgIGNvbnN0IFBBR0VfSEVBREVSID0gNzA7XHJcbiAgICAgICAgICAgIGNvbnN0IExJU1RfSEVBREVSID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7dGhpcy5faWR9LWhlYWRlcmApITtcclxuICAgICAgICAgICAgY29uc3QgSEVBREVSID0gKExJU1RfSEVBREVSICYmIExJU1RfSEVBREVSLmNoaWxkcmVuLmxlbmd0aCA+IDApID8gNTAgOiAwO1xyXG4gICAgICAgICAgICBjb25zdCBNQVJHSU4gPSAzMDtcclxuICAgICAgICAgICAgY29uc3QgUEFERElORyA9IDIwO1xyXG4gICAgICAgICAgICBoZWlnaHQgPSAoU2NyZWVuLldJTkRPV19IRUlHSFQgLSBUT09MQkFSIC0gUEFHRV9IRUFERVIgLSBNQVJHSU4gLSBIRUFERVIgLSBQQURESU5HKSArICdweCc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gaGVpZ2h0O1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBHZXREaXNwbGF5ID0gKGl0ZW06IGFueSk6IHN0cmluZyA9PiB7XHJcbiAgICAgICAgcmV0dXJuIFRvb2xzLklzTm90TnVsbChpdGVtKSA/IGl0ZW1bdGhpcy5wcm9wRGlzcGxheSgpXSA6ICcnO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBHZXRJbmRleFJvdyA9IChpdGVtOiBhbnkpOiBudW1iZXIgPT4ge1xyXG4gICAgICAgIHJldHVybiBpdGVtWydpbmRleCddO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBHZXRUZW1wbGF0ZShpdGVtOiBhbnkpOiBzdHJpbmcgeyAgXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudGVtcGxhdGUoKSEoaXRlbSwgaXRlbS5pbmRleCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIF9zaG93RGVsZXRlQnV0dG9uID0gKGl0ZW06IGFueSk6IGJvb2xlYW4gPT4geyBcclxuICAgICAgICBjb25zdCBzaG93QnV0dG9uID0gdGhpcy5zaG93RGVsZXRlQnV0dG9uKCkgYXMgYW55OyAgICAgICAgXHJcbiAgICAgICAgcmV0dXJuICh0eXBlb2Ygc2hvd0J1dHRvbiA9PT0gJ2Jvb2xlYW4nKVxyXG4gICAgICAgICAgICA/IHNob3dCdXR0b24gJiYgIXRoaXMuaXNMb2FkaW5nKClcclxuICAgICAgICAgICAgOiBzaG93QnV0dG9uKGl0ZW0sIGl0ZW0uaW5kZXgpID09PSB0cnVlICYmICF0aGlzLmlzTG9hZGluZygpOyBcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgX3Nob3dHb0J1dHRvbiA9IChpdGVtOiBhbnkpOiBib29sZWFuID0+IHsgXHJcbiAgICAgICAgY29uc3Qgc2hvd0J1dHRvbiA9IHRoaXMuc2hvd0dvQnV0dG9uKCkgYXMgYW55OyAgICAgICAgXHJcbiAgICAgICAgcmV0dXJuICh0eXBlb2Ygc2hvd0J1dHRvbiA9PT0gJ2Jvb2xlYW4nKVxyXG4gICAgICAgICAgICA/IHNob3dCdXR0b24gJiYgIXRoaXMuaXNMb2FkaW5nKClcclxuICAgICAgICAgICAgOiBzaG93QnV0dG9uKGl0ZW0sIGl0ZW0uaW5kZXgpID09PSB0cnVlICYmICF0aGlzLmlzTG9hZGluZygpOyBcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgRHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8VFtdPik6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHsgcHJldmlvdXNJbmRleCwgY3VycmVudEluZGV4IH0gPSBldmVudDsgICAgICAgIFxyXG4gICAgICAgIGxldCBkYXRhU291cmNlID0gVG9vbHMuQnJlYWtSZWZlcmVuY2UodGhpcy5kYXRhU291cmNlKCkpO1xyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSBUb29scy5CcmVha1JlZmVyZW5jZShkYXRhU291cmNlW3ByZXZpb3VzSW5kZXhdKTtcclxuICAgICAgICBkYXRhU291cmNlLnNwbGljZShwcmV2aW91c0luZGV4LCAxKTtcclxuICAgICAgICBkYXRhU291cmNlLnNwbGljZShjdXJyZW50SW5kZXgsIDAsIGl0ZW0pOyBcclxuICAgICAgICB0aGlzLm9uU29ydC5lbWl0KGRhdGFTb3VyY2UpO1xyXG4gICAgICAgIHRoaXMub25Ecm9wLmVtaXQoaXRlbSk7XHJcbiAgICB9XHJcbn0iLCI8ZGl2IFtpZF09XCJfaWRcIiBjbGFzcz1cImNvZXItbGlzdFwiIFtuZ1N0eWxlXT1cInsgXHJcbiAgJ21hcmdpbi10b3AnOiBtYXJnaW5Ub3AoKSwgXHJcbiAgJ21hcmdpbi1yaWdodCc6IG1hcmdpblJpZ2h0KCksIFxyXG4gICdtYXJnaW4tYm90dG9tJzogbWFyZ2luQm90dG9tKCksIFxyXG4gICdtYXJnaW4tbGVmdCc6IG1hcmdpbkxlZnQoKSwgXHJcbiAgfVwiPlxyXG5cclxuICBAaWYoaXNMb2FkaW5nKCkpIHtcclxuICAgIDwhLS0gR3JpZCBNZXNzYWdlIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImxvYWRpbmdcIj5cclxuICAgICAgICA8aSBjbGFzcz1cInNwaW5uZXItYm9yZGVyXCI+PC9pPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZmEtZmFkZVwiPkxvYWRpbmc8L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcblxyXG4gIEBlbHNlIGlmKGRhdGFTb3VyY2UoKS5sZW5ndGggPD0gMCkge1xyXG4gICAgPGRpdiBjbGFzcz1cIm5vLWRhdGFcIj4gTm8gRGF0YSA8L2Rpdj5cclxuICB9XHJcblxyXG4gIDxoZWFkZXIgW2lkXT1cIl9pZCArICctaGVhZGVyJ1wiIGNsYXNzPVwicm93XCI+IFxyXG4gICAgQGlmKGhlYWRlcigpLmxlbmd0aCA+IDAgfHwgaGVhZGVySWNvbigpLmxlbmd0aCA+IDApIHtcclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvXCI+XHJcbiAgICAgICAgPGg2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgQGlmKGhlYWRlckljb24oKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIDxpIFtjbGFzc109XCJoZWFkZXJJY29uKClcIj48L2k+IFxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIEBpZihoZWFkZXIoKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IGhlYWRlcigpIH19PC9zcGFuPiBcclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2g2PiAgICAgICAgXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gICAgXHJcbiAgICA8IS0tIFNlYXJjaCAtLT5cclxuICAgIEBpZihzaG93U2VhcmNoKCkgJiYgZGF0YVNvdXJjZSgpLmxlbmd0aCA+IDApIHtcclxuICAgICAgPGRpdiBjbGFzcz1cIm1zLWF1dG8gY29sLWF1dG9cIj5cclxuICAgICAgICAgIDxjb2VyLXRleHRib3hcclxuICAgICAgICAgICAgICAjaW5wdXRTZWFyY2ggXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIlxyXG4gICAgICAgICAgICAgIFtpc0Rpc2FibGVkXT1cImlzTG9hZGluZygpXCJcclxuICAgICAgICAgICAgICBbc2VsZWN0T25Gb2N1c109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICB3aWR0aD1cIjI1MHB4XCJcclxuICAgICAgICAgICAgICBtYXJnaW5Ub3A9XCI1cHhcIlxyXG4gICAgICAgICAgICAgIG1hcmdpbkJvdHRvbT1cIjVweFwiXHJcbiAgICAgICAgICAgICAgW3Nob3dTZWFyY2hJY29uXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtzaG93Q2xlYXJJY29uXT1cInRydWVcIlxyXG4gICAgICAgICAgPjwvY29lci10ZXh0Ym94PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L2hlYWRlcj5cclxuXHJcbiAgPGRpdiBbbmdTdHlsZV09XCJ7IFxyXG4gICAgJ3dpZHRoJzogd2lkdGgoKSwgXHJcbiAgICAnbWluLVdpZHRoJzogTWluV2lkdGgoKSwgXHJcbiAgICAnbWF4LVdpZHRoJzogTWF4V2lkdGgoKSwgXHJcbiAgICB9XCI+XHJcbiAgICA8dWwgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJEcm9wKCRldmVudClcIiBjbGFzcz0nbGlzdC1ncm91cCBjb2VyLWxpc3QnXHJcbiAgICAgICAgW25nU3R5bGVdPVwieyBcclxuICAgICAgICAgICdoZWlnaHQnOiBfaGVpZ2h0LCBcclxuICAgICAgICAgICdtaW4taGVpZ2h0JzogbWluSGVpZ2h0KCksIFxyXG4gICAgICAgICAgJ21heC1oZWlnaHQnOiBtYXhIZWlnaHQoKSwgXHJcbiAgICAgICAgICAnZC1ub25lJzogZGF0YVNvdXJjZSgpLmxlbmd0aCA8PSAwICBcclxuICAgICAgICAgIH1cIj5cclxuICAgICAgXHJcbiAgICAgIEBmb3IgKGl0ZW0gb2YgX2RhdGFTb3VyY2UoKTsgdHJhY2sgR2V0SW5kZXhSb3coaXRlbSkpIHtcclxuICAgICAgICA8bGkgY2RrRHJhZyBcclxuICAgICAgICAgIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtIGNvZXItbGlzdC1ib3hcIiBcclxuICAgICAgICAgIGNka0RyYWdCb3VuZGFyeT1cInVsLmNvZXItbGlzdFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25DbGljay5lbWl0KGl0ZW0pXCIgXHJcbiAgICAgICAgICAoZGJsY2xpY2spPVwib25Eb3VibGVDbGljay5lbWl0KGl0ZW0pXCI+XHJcbiAgXHJcbiAgICAgICAgICA8ZGl2ICpjZGtEcmFnUGxhY2Vob2xkZXIgY2xhc3M9XCJjb2VyLWxpc3QtcGxhY2Vob2xkZXIgY3Vyc29yLWdyYWJiaW5nXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29lci1saXN0LWNvbnRlbnRcIj4gXHJcbiAgICAgICAgICAgIEBpZihfaGFzVGVtcGxhdGUoKSkge1xyXG4gICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJHZXRUZW1wbGF0ZShpdGVtKSB8IGh0bWxcIiBjbGFzcz1cInRlbXBsYXRlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICBcclxuICAgICAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICAgIDxkaXY+IHt7IEdldERpc3BsYXkoaXRlbSkgfX0gPC9kaXY+IFxyXG4gICAgICAgICAgICB9ICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgIEBpZihfc2hvd0RlbGV0ZUJ1dHRvbihpdGVtKSkge1xyXG4gICAgICAgICAgICAgICAgPGNvZXItYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJpY29uLW5vLWJvcmRlclwiXHJcbiAgICAgICAgICAgICAgICAgIGNvbG9yPVwic2Vjb25kYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgaWNvbj1cImRlbGV0ZVwiICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cIm9uQ2xpY2tEZWxldGUuZW1pdChpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICA+PC9jb2VyLWJ1dHRvbj5cclxuICAgICAgICAgICAgICB9IFxyXG4gIFxyXG4gICAgICAgICAgICAgIEBpZihfc2hvd0dvQnV0dG9uKGl0ZW0pKSB7XHJcbiAgICAgICAgICAgICAgICA8Y29lci1idXR0b25cclxuICAgICAgICAgICAgICAgICAgdHlwZT1cImljb24tbm8tYm9yZGVyXCJcclxuICAgICAgICAgICAgICAgICAgY29sb3I9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAgICAgICBpY29uPVwiZ29cIiAgIFxyXG4gICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0PVwiNXB4XCIgICBcclxuICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwib25DbGlja0dvLmVtaXQoaXRlbSlcIlxyXG4gICAgICAgICAgICAgICAgPjwvY29lci1idXR0b24+XHJcbiAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPGkgY2RrRHJhZ0hhbmRsZSBbbmdDbGFzc109XCJ7IFxyXG4gICAgICAgICAgICAgICAgJ2ZhLXNvbGlkIGZhLWdyaXAtdmVydGljYWwgdGV4dC1zZWNvbmRhcnkgcHMtMic6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAnY3Vyc29yLWdyYWInOiB0cnVlLCBcclxuICAgICAgICAgICAgICAgICdjdXJzb3ItZ3JhYmJpbmcnOiBmYWxzZSwgXHJcbiAgICAgICAgICAgICAgICAnZC1ub25lJzogIV9pc0RyYWdnYWJsZSgpXHJcbiAgICAgICAgICAgICAgfVwiPjwvaT4gICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICBcclxuICAgICAgICAgIDwvZGl2PiAgXHJcbiAgICAgICAgPC9saT4gXHJcbiAgICAgIH0gXHJcbiAgICA8L3VsPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -59,6 +59,10 @@ export class CoerSidenav {
59
59
  }
60
60
  });
61
61
  }
62
+ ngAfterViewInit() {
63
+ Tools.Sleep().then(_ => {
64
+ });
65
+ }
62
66
  /** */
63
67
  NavigateTo(selectedOption) {
64
68
  let url = `${selectedOption.path}`;
@@ -190,4 +194,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
190
194
  type: Component,
191
195
  args: [{ selector: 'coer-sidenav', template: "<mat-drawer-container [hasBackdrop]=\"backdrop\">\r\n <mat-drawer\r\n #matSidenav\r\n [opened]=\"isOpen()\"\r\n (opened)=\"isOpen.set(true)\"\r\n (closed)=\"isOpen.set(false)\"\r\n [mode]=\"mode\">\r\n <div *ngFor=\"let item of _navigation()\">\r\n <!-- Menu -->\r\n <div *ngIf=\"IsMenu(item); else OptionMenu\">\r\n <coer-tree-accordion\r\n [item]=\"item\"\r\n (clickMenuOption)=\"NavigateTo($event)\"\r\n (clickMenu)=\"MenuSelected($event)\"\r\n ></coer-tree-accordion>\r\n </div>\r\n\r\n <!-- Option Menu -->\r\n <ng-template #OptionMenu>\r\n <coer-menu-option\r\n [label]=\"item.label\"\r\n [icon]=\"item?.icon\"\r\n [path]=\"item?.path\"\r\n (clickMenuOption)=\"NavigateTo($event)\"\r\n ></coer-menu-option>\r\n </ng-template>\r\n\r\n <div class=\"separator\"></div>\r\n </div>\r\n\r\n <div [ngClass]=\"{ 'backdrop': _isModalOpen() }\"></div>\r\n </mat-drawer>\r\n\r\n <!-- Main Screen -->\r\n <mat-drawer-content [ngClass]=\"{ 'margin-left-40px': (!isOpen() && showAsideMenu) }\">\r\n <aside [ngClass]=\"{ 'side-nav': true, 'd-none': !showAsideMenu }\" (click)=\"Open($event)\">\r\n <div *ngFor=\"let item of _navigation()\" (click)=\"Open($event, item)\">\r\n <span [class]=\"'icon-container ' + SetIdentityClass(item.label)\">\r\n <i [class]=\"GetIcon(item)\"></i>\r\n </span>\r\n </div>\r\n\r\n <div [ngClass]=\"{ 'backdrop': _isModalOpen() }\"></div>\r\n </aside>\r\n\r\n <ng-content></ng-content>\r\n </mat-drawer-content>\r\n</mat-drawer-container>", styles: ["mat-drawer-container{height:calc(100vh - 45px)!important}mat-drawer-container .margin-left-40px{margin-left:40px!important}mat-drawer-container mat-drawer{width:auto;min-width:200px;background-color:var(--black)!important;z-index:1!important}mat-drawer-container mat-drawer div.mat-drawer-inner-container::-webkit-scrollbar{width:1px!important}mat-drawer-container mat-drawer div.mat-drawer-inner-container::-webkit-scrollbar-thumb{background-color:var(--gray)!important;border-radius:5px!important}mat-drawer-container mat-drawer div.mat-drawer-inner-container::-webkit-scrollbar-thumb:hover{background-color:var(--gray)!important}mat-drawer-container mat-drawer div.mat-drawer-inner-container::-webkit-scrollbar-thumb:active{background-color:var(--white)!important}mat-drawer-container mat-drawer i{font-size:16px!important}mat-drawer-container mat-drawer div.separator{border:.5px solid rgba(245,245,245,.041)!important}mat-drawer-container mat-drawer-content{margin-right:0!important}mat-drawer-container mat-drawer-content aside.side-nav{background-color:var(--black)!important;width:40px!important;position:fixed!important;left:0!important;top:45px!important;bottom:0!important;cursor:pointer!important}mat-drawer-container mat-drawer-content aside.side-nav span.icon-container{width:100%!important;height:49.6px!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:16px!important;border-bottom:1px solid rgba(245,245,245,.041)!important;color:var(--white)}mat-drawer-container mat-drawer-content aside.side-nav span.icon-container:hover{background-color:#2f2f2f!important}mat-drawer-container mat-drawer-content aside.side-nav span.icon-container.active-link{color:var(--orange)!important}mat-drawer-container div.backdrop{position:absolute!important;inset:0!important;background-color:#0000005b!important;z-index:1500!important}\n"] }]
192
196
  }], ctorParameters: () => [] });
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci1zaWRlbmF2LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZXItZWxlbWVudHMvY29tcG9uZW50cy9saWIvY29lci1zaWRlbmF2L2NvZXItc2lkZW5hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL2NvbXBvbmVudHMvbGliL2NvZXItc2lkZW5hdi9jb2VyLXNpZGVuYXYuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBa0IsTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDeEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEgsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXZFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBT3pDLE1BQU0sT0FBTyxXQUFXO0lBY3BCLFFBQVE7SUFDUixJQUFjLFFBQVE7UUFDbEIsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsUUFBUTtJQUNSLElBQWMsSUFBSTtRQUNkLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFD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Y0FBYyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztvQkFDbkYsT0FBTztnQkFDWCxDQUFDO1lBQ0wsQ0FBQztZQUVELFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQXJOUSxXQUFXO21HQUFYLFdBQVcseUxBWWMsaUJBQWlCLGdFQ3pCdkQsazNEQStDdUI7OzRGRGxDVixXQUFXO2tCQUx2QixTQUFTOytCQUNJLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFdyaXRhYmxlU2lnbmFsLCBpbmplY3QsIHZpZXdDaGlsZCwgdmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElNZW51LCBJTWVudVNlbGVjdGVkLCBJTWVudU9wdGlvblNlbGVjdGVkLCBJU2NyZWVuU2l6ZSB9IGZyb20gJ2NvZXItZWxlbWVudHMvaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IENvZXJUcmVlQWNjb3JkaW9uIH0gZnJvbSAnLi9jb2VyLXRyZWUtYWNjb3JkaW9uL2NvZXItdHJlZS1hY2NvcmRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgYnJlYWtwb2ludFNJR05BTCwgaXNNb2RhbE9wZW5TSUdOQUwsIGlzTWVudU9wZW5TSUdOQUwsIG5hdmlnYXRpb25TSUdOQUwgfSBmcm9tICdjb2VyLWVsZW1lbnRzL3NpZ25hbHMnO1xyXG5pbXBvcnQgeyBUb29scywgQnJlYWRjcnVtYnMsIE1lbnUsIFNjcmVlbiB9IGZyb20gJ2NvZXItZWxlbWVudHMvdG9vbHMnO1xyXG5pbXBvcnQgeyBNYXREcmF3ZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjb2VyLXNpZGVuYXYnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvZXItc2lkZW5hdi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybDogJy4vY29lci1zaWRlbmF2LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29lclNpZGVuYXYge1xyXG5cclxuICAgIC8vSW5qZWN0aW9uc1xyXG4gICAgcHJpdmF0ZSBfcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcblxyXG4gICAgLy9zaWduYWxzXHJcbiAgICBwcm90ZWN0ZWQgaXNPcGVuOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IGlzTWVudU9wZW5TSUdOQUw7XHJcbiAgICBwcm90ZWN0ZWQgX2lzTW9kYWxPcGVuOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IGlzTW9kYWxPcGVuU0lHTkFMO1xyXG4gICAgcHJvdGVjdGVkIF9uYXZpZ2F0aW9uOiBXcml0YWJsZVNpZ25hbDxJTWVudVtdPiA9IG5hdmlnYXRpb25TSUdOQUw7XHJcblxyXG4gICAgLy9FbGVtZW50c1xyXG4gICAgcHJvdGVjdGVkIHNpZGVuYXYgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8TWF0RHJhd2VyPignbWF0U2lkZW5hdicpO1xyXG4gICAgcHJvdGVjdGVkIG1lbnVMaXN0ID0gdmlld0NoaWxkcmVuKENvZXJUcmVlQWNjb3JkaW9uKTtcclxuXHJcbiAgICAvL2dldHRlclxyXG4gICAgcHJvdGVjdGVkIGdldCBiYWNrZHJvcCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gWyd4cycsICdzbScsICdtZCddLmluY2x1ZGVzKGJyZWFrcG9pbnRTSUdOQUwoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9nZXR0ZXJcclxuICAgIHByb3RlY3RlZCBnZXQgbW9kZSgpOiAnb3ZlcicgfCAncHVzaCcge1xyXG4gICAgICAgIHJldHVybiBbJ3hzJywgJ3NtJywgJ21kJ10uaW5jbHVkZXMoYnJlYWtwb2ludFNJR05BTCgpKSA/ICdvdmVyJyA6ICdwdXNoJztcclxuICAgIH1cclxuXHJcbiAgICAvL2dldHRlclxyXG4gICAgcHJvdGVjdGVkIGdldCBzaG93QXNpZGVNZW51KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBbJ3hsJywgJ3h4bCddLmluY2x1ZGVzKGJyZWFrcG9pbnRTSUdOQUwoKSkgJiYgIXRoaXMuaXNPcGVuKClcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLkJhY2tCdXR0b25Ccm93c2VyKCk7XHJcblxyXG4gICAgICAgIHRoaXMuaXNPcGVuLnNldChbJ3h4bCddLmluY2x1ZGVzKFNjcmVlbi5CUkVBS1BPSU5UKSk7XHJcblxyXG4gICAgICAgIFNjcmVlbi5SZXNpemUuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dDogKHsgYnJlYWtwb2luIH06IElTY3JlZW5TaXplKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBicmVha3BvaW50U0lHTkFMLnNldChicmVha3BvaW4pO1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5iYWNrZHJvcCkgdGhpcy5DbG9zZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIE5hdmlnYXRlVG8oc2VsZWN0ZWRPcHRpb246IElNZW51T3B0aW9uU2VsZWN0ZWQpIHtcclxuICAgICAgICBsZXQgdXJsID0gYCR7c2VsZWN0ZWRPcHRpb24ucGF0aH1gO1xyXG4gICAgICAgIGlmIChzZWxlY3RlZE9wdGlvbi5xdWVyeVBhcmFtcy5sZW5ndGggPiAwKSB1cmwgKz0gYD8ke3NlbGVjdGVkT3B0aW9uLnF1ZXJ5UGFyYW1zfWA7XHJcbiAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwodXJsKTtcclxuXHJcbiAgICAgICAgLy9TZXQgYWN0aXZlIGxpbmtcclxuICAgICAgICB0aGlzLlNldEFjdGl2ZUxpbmsoc2VsZWN0ZWRPcHRpb24pO1xyXG5cclxuICAgICAgICAvL0Nsb3NlIE1lbnVcclxuICAgICAgICBpZihzZWxlY3RlZE9wdGlvbi5sZXZlbCA9PSAxKSB7XHJcbiAgICAgICAgICAgIGZvcihjb25zdCBtZW51THYxIG9mIHRoaXMubWVudUxpc3QoKSkge1xyXG4gICAgICAgICAgICAgICAgZm9yKGNvbnN0IG1lbnVMdjIgb2YgbWVudUx2MS5tZW51TGlzdC50b0FycmF5KCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBtZW51THYyLkNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBtZW51THYxLkNsb3NlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIFNldEFjdGl2ZUxpbmsoc2VsZWN0ZWRPcHRpb246IElNZW51T3B0aW9uU2VsZWN0ZWQgfCBudWxsKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHNlbGVjdGVkT3B0aW9uKSB7XHJcbiAgICAgICAgICAgIHNlbGVjdGVkT3B0aW9uID0gVG9vbHMuQnJlYWtSZWZlcmVuY2Uoc2VsZWN0ZWRPcHRpb24pO1xyXG4gICAgICAgICAgICBNZW51LlNldFNlbGVjdGVkT3B0aW9uKHNlbGVjdGVkT3B0aW9uKTtcclxuXHJcbiAgICAgICAgICAgIGxldCBjb2xsZWN0aW9uOiBFbGVtZW50W10gPSBbXTtcclxuICAgICAgICAgICAgY29sbGVjdGlvbiA9IGNvbGxlY3Rpb24uY29uY2F0KEFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbWF0LWRyYXdlci1jb250YWluZXIgc3Bhbi5pY29uLWNvbnRhaW5lcicpKSk7XHJcbiAgICAgICAgICAgIGNvbGxlY3Rpb24gPSBjb2xsZWN0aW9uLmNvbmNhdChBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ21hdC1kcmF3ZXItY29udGFpbmVyIHNwYW4ubGFiZWwtY29udGFpbmVyJykpKTtcclxuXHJcbiAgICAgICAgICAgIC8vUmVtb3ZlIGFjdGl2ZS1saW5rXHJcbiAgICAgICAgICAgIGZvcihjb25zdCBlbGVtZW50IG9mIGNvbGxlY3Rpb24pIHtcclxuICAgICAgICAgICAgICAgIGlmKGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdhY3RpdmUtbGluaycpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUtbGluaycpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvL0FkZCBhY3RpdmUtbGlua1xyXG4gICAgICAgICAgICBjb25zdCBsZXZlbHMgPSBzZWxlY3RlZE9wdGlvbi50cmVlLmxlbmd0aDtcclxuICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGxldmVsczsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IoY29uc3QgZWxlbWVudCBvZiBjb2xsZWN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaWRlbnRpdHlDbGFzcyA9IHRoaXMuR2V0SWRlbnRpdHlDbGFzcyhzZWxlY3RlZE9wdGlvbi50cmVlKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoaWRlbnRpdHlDbGFzcykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKCdhY3RpdmUtbGluaycpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBzZWxlY3RlZE9wdGlvbi50cmVlLnBvcCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBPcGVuKGV2ZW50OiBNb3VzZUV2ZW50LCBpdGVtOiBJTWVudSB8IG51bGwgPSBudWxsKTogdm9pZCB7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5pc09wZW4oKSkge1xyXG4gICAgICAgICAgICB0aGlzLmlzT3Blbi5zZXQodHJ1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuc2lkZW5hdigpLm9wZW4oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIENsb3NlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmlzT3BlbigpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNPcGVuLnNldChmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuc2lkZW5hdigpLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBUb2dnbGUoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaWRlbmF2KCkudG9nZ2xlKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIE1lbnVTZWxlY3RlZChzZWxlY3RlZE1lbnU6IElNZW51U2VsZWN0ZWQpIHtcclxuICAgICAgICBpZiAoc2VsZWN0ZWRNZW51LmxldmVsID09IDEpIHtcclxuICAgICAgICAgICAgZm9yKGNvbnN0IG1lbnVMdjEgb2YgdGhpcy5tZW51TGlzdCgpKSB7XHJcbiAgICAgICAgICAgICAgICBpZihtZW51THYxLml0ZW0ubGFiZWwgIT0gc2VsZWN0ZWRNZW51LmxhYmVsKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGZvcihjb25zdCBtZW51THYyIG9mIG1lbnVMdjEubWVudUxpc3QudG9BcnJheSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lbnVMdjIuQ2xvc2UoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIG1lbnVMdjEuQ2xvc2UoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgSXNNZW51ID0gKGl0ZW06IElNZW51KTogYm9vbGVhbiA9PiBpdGVtLmhhc093blByb3BlcnR5KCdpdGVtcycpICYmIFRvb2xzLklzTm90T25seVdoaXRlU3BhY2UoaXRlbS5pdGVtcyk7XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIEdldEljb24gPSAoaXRlbTogSU1lbnUpOiBzdHJpbmcgPT4ge1xyXG4gICAgICAgIGlmIChpdGVtICYmIGl0ZW0uaGFzT3duUHJvcGVydHkoJ2ljb24nKSAmJiBpdGVtLmljb24hLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGl0ZW0uaWNvbiFcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLklzTWVudShpdGVtKVxyXG4gICAgICAgICAgICA/ICdmYS1zb2xpZCBmYS1iYXJzJ1xyXG4gICAgICAgICAgICA6ICdiaSBiaS1yZWNvcmQtZmlsbCc7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIFNldElkZW50aXR5Q2xhc3MgPSAobGFiZWw6IFN0cmluZyk6IHN0cmluZyA9PiB7XHJcbiAgICAgICAgbGV0IGlkZW50aXR5ID0gYGx2MSR7bGFiZWx9YDtcclxuICAgICAgICBpZihpZGVudGl0eS5pbmNsdWRlcygnICcpKSBpZGVudGl0eSA9IGlkZW50aXR5LnJlcGxhY2VBbGwoJyAnLCAnJyk7XHJcbiAgICAgICAgcmV0dXJuIGlkZW50aXR5LnRvTG93ZXJDYXNlKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJpdmF0ZSBHZXRJZGVudGl0eUNsYXNzKHRyZWU6IElNZW51W10pOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCBpZGVudGl0eTogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCB0cmVlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlkZW50aXR5ICs9IGBsdiR7aSArIDF9JHt0cmVlW2ldLmxhYmVsfS1gO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYoaWRlbnRpdHkuZW5kc1dpdGgoJy0nKSkgaWRlbnRpdHkgPSBpZGVudGl0eS5zbGljZSgwLCAtMSk7XHJcbiAgICAgICAgaWYoaWRlbnRpdHkuaW5jbHVkZXMoJyAnKSkgaWRlbnRpdHkgPSBpZGVudGl0eS5yZXBsYWNlQWxsKCcgJywgJycpO1xyXG4gICAgICAgIHJldHVybiBpZGVudGl0eS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByaXZhdGUgQmFja0J1dHRvbkJyb3dzZXIoKSB7XHJcbiAgICAgICAgY29uc3QgUVVFUllfU0VMRUNUT1IgPSAnY29lci1tZW51LW9wdGlvbltuZy1yZWZsZWN0LXBhdGg9XCJbcGF0aF1cIl0gbWF0LW5hdi1saXN0LmNvZXItbWVudS1vcHRpb24nO1xyXG5cclxuICAgICAgICBTY3JlZW4uQmFja0J1dHRvbkJyb3dzZXIuc3Vic2NyaWJlKHRvUGF0aCA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0b1BhdGguaW5jbHVkZXMoJy8jLycpKSB0b1BhdGggPSB0b1BhdGguc3BsaXQoJy8jJylbMV07XHJcbiAgICAgICAgICAgIGlmICh0b1BhdGguaW5jbHVkZXMoJz8nKSkgdG9QYXRoID0gdG9QYXRoLnNwbGl0KCc/JylbMF07XHJcblxyXG4gICAgICAgICAgICAvL1ZhbGlkYXRlIHBhdGhcclxuICAgICAgICAgICAgZm9yIChjb25zdCBtb2R1bGUgb2YgbmF2aWdhdGlvblNJR05BTCgpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAobW9kdWxlLml0ZW1zKSBmb3IgKGNvbnN0IHN1Yk1vZHVsZSBvZiBtb2R1bGUuaXRlbXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAvL0xldmVsIFRocmVlXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN1Yk1vZHVsZS5pdGVtcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IoY29uc3QgaXRlbSBvZiBzdWJNb2R1bGUuaXRlbXMpIGlmIChpdGVtLnBhdGggPT09IHRvUGF0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoUVVFUllfU0VMRUNUT1IucmVwbGFjZSgnW3BhdGhdJywgdG9QYXRoKSkgYXMgYW55KT8uY2xpY2soKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy9MZXZlbCBUd29cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChzdWJNb2R1bGUucGF0aCA9PT0gdG9QYXRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFFVRVJZX1NFTEVDVE9SLnJlcGxhY2UoJ1twYXRoXScsIHRvUGF0aCkpIGFzIGFueSk/LmNsaWNrKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLy9MZXZlbCBPbmVcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1vZHVsZS5wYXRoID09PSB0b1BhdGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihRVUVSWV9TRUxFQ1RPUi5yZXBsYWNlKCdbcGF0aF0nLCB0b1BhdGgpKSBhcyBhbnkpPy5jbGljaygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQnJlYWRjcnVtYnMuUmVtb3ZlKHRvUGF0aCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn0iLCI8bWF0LWRyYXdlci1jb250YWluZXIgW2hhc0JhY2tkcm9wXT1cImJhY2tkcm9wXCI+XHJcbiAgICA8bWF0LWRyYXdlclxyXG4gICAgICAgICNtYXRTaWRlbmF2XHJcbiAgICAgICAgW29wZW5lZF09XCJpc09wZW4oKVwiXHJcbiAgICAgICAgKG9wZW5lZCk9XCJpc09wZW4uc2V0KHRydWUpXCJcclxuICAgICAgICAoY2xvc2VkKT1cImlzT3Blbi5zZXQoZmFsc2UpXCJcclxuICAgICAgICBbbW9kZV09XCJtb2RlXCI+XHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBfbmF2aWdhdGlvbigpXCI+XHJcbiAgICAgICAgICAgIDwhLS0gTWVudSAtLT5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIklzTWVudShpdGVtKTsgZWxzZSBPcHRpb25NZW51XCI+XHJcbiAgICAgICAgICAgICAgICA8Y29lci10cmVlLWFjY29yZGlvblxyXG4gICAgICAgICAgICAgICAgICAgIFtpdGVtXT1cIml0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGlja01lbnVPcHRpb24pPVwiTmF2aWdhdGVUbygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2tNZW51KT1cIk1lbnVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgID48L2NvZXItdHJlZS1hY2NvcmRpb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSBPcHRpb24gTWVudSAtLT5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNPcHRpb25NZW51PlxyXG4gICAgICAgICAgICAgICAgPGNvZXItbWVudS1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiaXRlbS5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwiaXRlbT8uaWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3BhdGhdPVwiaXRlbT8ucGF0aFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrTWVudU9wdGlvbik9XCJOYXZpZ2F0ZVRvKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgPjwvY29lci1tZW51LW9wdGlvbj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3JcIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7ICdiYWNrZHJvcCc6IF9pc01vZGFsT3BlbigpIH1cIj48L2Rpdj5cclxuICAgIDwvbWF0LWRyYXdlcj5cclxuXHJcbiAgICA8IS0tIE1haW4gU2NyZWVuIC0tPlxyXG4gICAgPG1hdC1kcmF3ZXItY29udGVudCBbbmdDbGFzc109XCJ7ICdtYXJnaW4tbGVmdC00MHB4JzogKCFpc09wZW4oKSAmJiBzaG93QXNpZGVNZW51KSB9XCI+XHJcbiAgICAgICAgPGFzaWRlIFtuZ0NsYXNzXT1cInsgJ3NpZGUtbmF2JzogdHJ1ZSwgJ2Qtbm9uZSc6ICFzaG93QXNpZGVNZW51IH1cIiAoY2xpY2spPVwiT3BlbigkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX25hdmlnYXRpb24oKVwiIChjbGljayk9XCJPcGVuKCRldmVudCwgaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCInaWNvbi1jb250YWluZXIgJyArIFNldElkZW50aXR5Q2xhc3MoaXRlbS5sYWJlbClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiR2V0SWNvbihpdGVtKVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsgJ2JhY2tkcm9wJzogX2lzTW9kYWxPcGVuKCkgfVwiPjwvZGl2PlxyXG4gICAgICAgIDwvYXNpZGU+XHJcblxyXG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIDwvbWF0LWRyYXdlci1jb250ZW50PlxyXG48L21hdC1kcmF3ZXItY29udGFpbmVyPiJdfQ==
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci1zaWRlbmF2LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZXItZWxlbWVudHMvY29tcG9uZW50cy9saWIvY29lci1zaWRlbmF2L2NvZXItc2lkZW5hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL2NvbXBvbmVudHMvbGliL2NvZXItc2lkZW5hdi9jb2VyLXNpZGVuYXYuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWtCLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hILE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQU96QyxNQUFNLE9BQU8sV0FBVztJQWNwQixRQUFRO0lBQ1IsSUFBYyxRQUFRO1FBQ2xCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELFFBQVE7SUFDUixJQUFjLElBQUk7UUFDZCxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM3RSxDQUFDO0lBRUQsUUFBUTtJQUNSLElBQWMsYUFBYTtRQUN2QixPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDdkUsQ0FBQztJQUVEO1FBM0JBLFlBQVk7UUFDSixZQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWpDLFNBQVM7UUFDQyxXQUFNLEdBQTRCLGdCQUFnQixDQUFDO1FBQ25ELGlCQUFZLEdBQTRCLGlCQUFpQixDQUFDO1FBQzFELGdCQUFXLEdBQTRCLGdCQUFnQixDQUFDO1FBRWxFLFVBQVU7UUFDQSxZQUFPLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBWSxZQUFZLENBQUMsQ0FBQztRQUN0RCxhQUFRLEdBQUcsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUF1SXJELE1BQU07UUFDSSxXQUFNLEdBQUcsQ0FBQyxJQUFXLEVBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUduSCxNQUFNO1FBQ0ksWUFBTyxHQUFHLENBQUMsSUFBVyxFQUFVLEVBQUU7WUFDeEMsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDL0QsT0FBTyxJQUFJLENBQUMsSUFBSyxDQUFBO1lBQ3JCLENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNwQixDQUFDLENBQUMsa0JBQWtCO2dCQUNwQixDQUFDLENBQUMsbUJBQW1CLENBQUM7UUFDOUIsQ0FBQyxDQUFBO1FBR0QsTUFBTTtRQUNJLHFCQUFnQixHQUFHLENBQUMsS0FBYSxFQUFVLEVBQUU7WUFDbkQsSUFBSSxRQUFRLEdBQUcsTUFBTSxLQUFLLEVBQUUsQ0FBQztZQUM3QixJQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO2dCQUFFLFFBQVEsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuRSxPQUFPLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNsQyxDQUFDLENBQUE7UUExSUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFFekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFFckQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7WUFDcEIsSUFBSSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQWUsRUFBRSxFQUFFO2dCQUNqQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ2hDLElBQUcsSUFBSSxDQUFDLFFBQVE7b0JBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25DLENBQUM7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBR0QsZUFBZTtRQUNYLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFFdkIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBR0QsTUFBTTtJQUNJLFVBQVUsQ0FBQyxjQUFtQztRQUNwRCxJQUFJLEdBQUcsR0FBRyxHQUFHLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQyxJQUFJLGNBQWMsQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUM7WUFBRSxHQUFHLElBQUksSUFBSSxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFaEMsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFbkMsWUFBWTtRQUNaLElBQUcsY0FBYyxDQUFDLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMzQixLQUFJLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO2dCQUNuQyxLQUFJLE1BQU0sT0FBTyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztvQkFDOUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNwQixDQUFDO2dCQUNELE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwQixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFHRCxNQUFNO0lBQ0MsYUFBYSxDQUFDLGNBQTBDO1FBQzNELElBQUksY0FBYyxFQUFFLENBQUM7WUFDakIsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBRXZDLElBQUksVUFBVSxHQUFjLEVBQUUsQ0FBQztZQUMvQixVQUFVLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsSCxVQUFVLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVuSCxvQkFBb0I7WUFDcEIsS0FBSSxNQUFNLE9BQU8sSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDOUIsSUFBRyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO29CQUMzQyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDNUMsQ0FBQztZQUNMLENBQUM7WUFFRCxpQkFBaUI7WUFDakIsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDMUMsS0FBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUM3QixLQUFJLE1BQU0sT0FBTyxJQUFJLFVBQVUsRUFBRSxDQUFDO29CQUM5QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNqRSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7d0JBQzVDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUN6QyxDQUFDO2dCQUNMLENBQUM7Z0JBRUQsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUM5QixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFHRCxNQUFNO0lBQ0MsSUFBSSxDQUFDLEtBQWlCLEVBQUUsT0FBcUIsSUFBSTtRQUNwRCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0wsQ0FBQztJQUdELE1BQU07SUFDQyxLQUFLO1FBQ1IsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0IsQ0FBQztJQUNMLENBQUM7SUFHRCxNQUFNO0lBQ0MsTUFBTTtRQUNULElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBR0QsTUFBTTtJQUNJLFlBQVksQ0FBQyxZQUEyQjtRQUM5QyxJQUFJLFlBQVksQ0FBQyxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDMUIsS0FBSSxNQUFNLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztnQkFDbkMsSUFBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBRTFDLEtBQUksTUFBTSxPQUFPLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO3dCQUM5QyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ3BCLENBQUM7b0JBRUQsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNwQixDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBMkJELE1BQU07SUFDRSxnQkFBZ0IsQ0FBQyxJQUFhO1FBQ2xDLElBQUksUUFBUSxHQUFXLEVBQUUsQ0FBQztRQUUxQixLQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2xDLFFBQVEsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDO1FBQzlDLENBQUM7UUFFRCxJQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQUUsUUFBUSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUQsSUFBRyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUFFLFFBQVEsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuRSxPQUFPLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBR0QsTUFBTTtJQUNFLGlCQUFpQjtRQUNyQixNQUFNLGNBQWMsR0FBRywwRUFBMEUsQ0FBQztRQUVsRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3hDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7Z0JBQUUsTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0QsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztnQkFBRSxNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV4RCxlQUFlO1lBQ2YsS0FBSyxNQUFNLE1BQU0sSUFBSSxnQkFBZ0IsRUFBRSxFQUFFLENBQUM7Z0JBQ3RDLElBQUksTUFBTSxDQUFDLEtBQUs7b0JBQUUsS0FBSyxNQUFNLFNBQVMsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7d0JBQ3JELGFBQWE7d0JBQ2IsSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7NEJBQ2xCLEtBQUksTUFBTSxJQUFJLElBQUksU0FBUyxDQUFDLEtBQUs7Z0NBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO29DQUN6RCxRQUFRLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7b0NBQ25GLE9BQU87Z0NBQ1gsQ0FBQzt3QkFDTCxDQUFDO3dCQUVELFdBQVc7NkJBQ04sSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDOzRCQUNoQyxRQUFRLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7NEJBQ25GLE9BQU87d0JBQ1gsQ0FBQztvQkFDTCxDQUFDO2dCQUVELFdBQVc7cUJBQ04sSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO29CQUM3QixRQUFRLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7b0JBQ25GLE9BQU87Z0JBQ1gsQ0FBQztZQUNMLENBQUM7WUFFRCxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0E1TlEsV0FBVzttR0FBWCxXQUFXLHlMQVljLGlCQUFpQixnRUN6QnZELGszREErQ3VCOzs0RkRsQ1YsV0FBVztrQkFMdkIsU0FBUzsrQkFDSSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBXcml0YWJsZVNpZ25hbCwgaW5qZWN0LCB2aWV3Q2hpbGQsIHZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJTWVudSwgSU1lbnVTZWxlY3RlZCwgSU1lbnVPcHRpb25TZWxlY3RlZCwgSVNjcmVlblNpemUgfSBmcm9tICdjb2VyLWVsZW1lbnRzL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBDb2VyVHJlZUFjY29yZGlvbiB9IGZyb20gJy4vY29lci10cmVlLWFjY29yZGlvbi9jb2VyLXRyZWUtYWNjb3JkaW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGJyZWFrcG9pbnRTSUdOQUwsIGlzTW9kYWxPcGVuU0lHTkFMLCBpc01lbnVPcGVuU0lHTkFMLCBuYXZpZ2F0aW9uU0lHTkFMIH0gZnJvbSAnY29lci1lbGVtZW50cy9zaWduYWxzJztcclxuaW1wb3J0IHsgVG9vbHMsIEJyZWFkY3J1bWJzLCBNZW51LCBTY3JlZW4gfSBmcm9tICdjb2VyLWVsZW1lbnRzL3Rvb2xzJztcclxuaW1wb3J0IHsgTWF0RHJhd2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY29lci1zaWRlbmF2JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2VyLXNpZGVuYXYuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICcuL2NvZXItc2lkZW5hdi5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIENvZXJTaWRlbmF2IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gICAgLy9JbmplY3Rpb25zXHJcbiAgICBwcml2YXRlIF9yb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuXHJcbiAgICAvL3NpZ25hbHNcclxuICAgIHByb3RlY3RlZCBpc09wZW46IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gaXNNZW51T3BlblNJR05BTDtcclxuICAgIHByb3RlY3RlZCBfaXNNb2RhbE9wZW46IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gaXNNb2RhbE9wZW5TSUdOQUw7XHJcbiAgICBwcm90ZWN0ZWQgX25hdmlnYXRpb246IFdyaXRhYmxlU2lnbmFsPElNZW51W10+ID0gbmF2aWdhdGlvblNJR05BTDtcclxuXHJcbiAgICAvL0VsZW1lbnRzXHJcbiAgICBwcm90ZWN0ZWQgc2lkZW5hdiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxNYXREcmF3ZXI+KCdtYXRTaWRlbmF2Jyk7XHJcbiAgICBwcm90ZWN0ZWQgbWVudUxpc3QgPSB2aWV3Q2hpbGRyZW4oQ29lclRyZWVBY2NvcmRpb24pO1xyXG5cclxuICAgIC8vZ2V0dGVyXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IGJhY2tkcm9wKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBbJ3hzJywgJ3NtJywgJ21kJ10uaW5jbHVkZXMoYnJlYWtwb2ludFNJR05BTCgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvL2dldHRlclxyXG4gICAgcHJvdGVjdGVkIGdldCBtb2RlKCk6ICdvdmVyJyB8ICdwdXNoJyB7XHJcbiAgICAgICAgcmV0dXJuIFsneHMnLCAnc20nLCAnbWQnXS5pbmNsdWRlcyhicmVha3BvaW50U0lHTkFMKCkpID8gJ292ZXInIDogJ3B1c2gnO1xyXG4gICAgfVxyXG5cclxuICAgIC8vZ2V0dGVyXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IHNob3dBc2lkZU1lbnUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIFsneGwnLCAneHhsJ10uaW5jbHVkZXMoYnJlYWtwb2ludFNJR05BTCgpKSAmJiAhdGhpcy5pc09wZW4oKVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMuQmFja0J1dHRvbkJyb3dzZXIoKTtcclxuXHJcbiAgICAgICAgdGhpcy5pc09wZW4uc2V0KFsneHhsJ10uaW5jbHVkZXMoU2NyZWVuLkJSRUFLUE9JTlQpKTtcclxuXHJcbiAgICAgICAgU2NyZWVuLlJlc2l6ZS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OiAoeyBicmVha3BvaW4gfTogSVNjcmVlblNpemUpID0+IHtcclxuICAgICAgICAgICAgICAgIGJyZWFrcG9pbnRTSUdOQUwuc2V0KGJyZWFrcG9pbik7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLmJhY2tkcm9wKSB0aGlzLkNsb3NlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0gXHJcblxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICBUb29scy5TbGVlcCgpLnRoZW4oXyA9PiB7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBOYXZpZ2F0ZVRvKHNlbGVjdGVkT3B0aW9uOiBJTWVudU9wdGlvblNlbGVjdGVkKSB7XHJcbiAgICAgICAgbGV0IHVybCA9IGAke3NlbGVjdGVkT3B0aW9uLnBhdGh9YDtcclxuICAgICAgICBpZiAoc2VsZWN0ZWRPcHRpb24ucXVlcnlQYXJhbXMubGVuZ3RoID4gMCkgdXJsICs9IGA/JHtzZWxlY3RlZE9wdGlvbi5xdWVyeVBhcmFtc31gO1xyXG4gICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKHVybCk7XHJcblxyXG4gICAgICAgIC8vU2V0IGFjdGl2ZSBsaW5rXHJcbiAgICAgICAgdGhpcy5TZXRBY3RpdmVMaW5rKHNlbGVjdGVkT3B0aW9uKTtcclxuXHJcbiAgICAgICAgLy9DbG9zZSBNZW51XHJcbiAgICAgICAgaWYoc2VsZWN0ZWRPcHRpb24ubGV2ZWwgPT0gMSkge1xyXG4gICAgICAgICAgICBmb3IoY29uc3QgbWVudUx2MSBvZiB0aGlzLm1lbnVMaXN0KCkpIHtcclxuICAgICAgICAgICAgICAgIGZvcihjb25zdCBtZW51THYyIG9mIG1lbnVMdjEubWVudUxpc3QudG9BcnJheSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWVudUx2Mi5DbG9zZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgbWVudUx2MS5DbG9zZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBTZXRBY3RpdmVMaW5rKHNlbGVjdGVkT3B0aW9uOiBJTWVudU9wdGlvblNlbGVjdGVkIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChzZWxlY3RlZE9wdGlvbikge1xyXG4gICAgICAgICAgICBzZWxlY3RlZE9wdGlvbiA9IFRvb2xzLkJyZWFrUmVmZXJlbmNlKHNlbGVjdGVkT3B0aW9uKTtcclxuICAgICAgICAgICAgTWVudS5TZXRTZWxlY3RlZE9wdGlvbihzZWxlY3RlZE9wdGlvbik7XHJcblxyXG4gICAgICAgICAgICBsZXQgY29sbGVjdGlvbjogRWxlbWVudFtdID0gW107XHJcbiAgICAgICAgICAgIGNvbGxlY3Rpb24gPSBjb2xsZWN0aW9uLmNvbmNhdChBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ21hdC1kcmF3ZXItY29udGFpbmVyIHNwYW4uaWNvbi1jb250YWluZXInKSkpO1xyXG4gICAgICAgICAgICBjb2xsZWN0aW9uID0gY29sbGVjdGlvbi5jb25jYXQoQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdtYXQtZHJhd2VyLWNvbnRhaW5lciBzcGFuLmxhYmVsLWNvbnRhaW5lcicpKSk7XHJcblxyXG4gICAgICAgICAgICAvL1JlbW92ZSBhY3RpdmUtbGlua1xyXG4gICAgICAgICAgICBmb3IoY29uc3QgZWxlbWVudCBvZiBjb2xsZWN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICBpZihlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnYWN0aXZlLWxpbmsnKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlLWxpbmsnKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy9BZGQgYWN0aXZlLWxpbmtcclxuICAgICAgICAgICAgY29uc3QgbGV2ZWxzID0gc2VsZWN0ZWRPcHRpb24udHJlZS5sZW5ndGg7XHJcbiAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBsZXZlbHM7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgZm9yKGNvbnN0IGVsZW1lbnQgb2YgY29sbGVjdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlkZW50aXR5Q2xhc3MgPSB0aGlzLkdldElkZW50aXR5Q2xhc3Moc2VsZWN0ZWRPcHRpb24udHJlZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKGlkZW50aXR5Q2xhc3MpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnYWN0aXZlLWxpbmsnKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb24udHJlZS5wb3AoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgT3BlbihldmVudDogTW91c2VFdmVudCwgaXRlbTogSU1lbnUgfCBudWxsID0gbnVsbCk6IHZvaWQge1xyXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuaXNPcGVuKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5pc09wZW4uc2V0KHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLnNpZGVuYXYoKS5vcGVuKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBDbG9zZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5pc09wZW4oKSkge1xyXG4gICAgICAgICAgICB0aGlzLmlzT3Blbi5zZXQoZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLnNpZGVuYXYoKS5jbG9zZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgVG9nZ2xlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2lkZW5hdigpLnRvZ2dsZSgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBNZW51U2VsZWN0ZWQoc2VsZWN0ZWRNZW51OiBJTWVudVNlbGVjdGVkKSB7XHJcbiAgICAgICAgaWYgKHNlbGVjdGVkTWVudS5sZXZlbCA9PSAxKSB7XHJcbiAgICAgICAgICAgIGZvcihjb25zdCBtZW51THYxIG9mIHRoaXMubWVudUxpc3QoKSkge1xyXG4gICAgICAgICAgICAgICAgaWYobWVudUx2MS5pdGVtLmxhYmVsICE9IHNlbGVjdGVkTWVudS5sYWJlbCkge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBmb3IoY29uc3QgbWVudUx2MiBvZiBtZW51THYxLm1lbnVMaXN0LnRvQXJyYXkoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtZW51THYyLkNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBtZW51THYxLkNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIElzTWVudSA9IChpdGVtOiBJTWVudSk6IGJvb2xlYW4gPT4gaXRlbS5oYXNPd25Qcm9wZXJ0eSgnaXRlbXMnKSAmJiBUb29scy5Jc05vdE9ubHlXaGl0ZVNwYWNlKGl0ZW0uaXRlbXMpO1xyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBHZXRJY29uID0gKGl0ZW06IElNZW51KTogc3RyaW5nID0+IHtcclxuICAgICAgICBpZiAoaXRlbSAmJiBpdGVtLmhhc093blByb3BlcnR5KCdpY29uJykgJiYgaXRlbS5pY29uIS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBpdGVtLmljb24hXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5Jc01lbnUoaXRlbSlcclxuICAgICAgICAgICAgPyAnZmEtc29saWQgZmEtYmFycydcclxuICAgICAgICAgICAgOiAnYmkgYmktcmVjb3JkLWZpbGwnO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBTZXRJZGVudGl0eUNsYXNzID0gKGxhYmVsOiBTdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG4gICAgICAgIGxldCBpZGVudGl0eSA9IGBsdjEke2xhYmVsfWA7XHJcbiAgICAgICAgaWYoaWRlbnRpdHkuaW5jbHVkZXMoJyAnKSkgaWRlbnRpdHkgPSBpZGVudGl0eS5yZXBsYWNlQWxsKCcgJywgJycpO1xyXG4gICAgICAgIHJldHVybiBpZGVudGl0eS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByaXZhdGUgR2V0SWRlbnRpdHlDbGFzcyh0cmVlOiBJTWVudVtdKTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgaWRlbnRpdHk6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgdHJlZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZGVudGl0eSArPSBgbHYke2kgKyAxfSR7dHJlZVtpXS5sYWJlbH0tYDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmKGlkZW50aXR5LmVuZHNXaXRoKCctJykpIGlkZW50aXR5ID0gaWRlbnRpdHkuc2xpY2UoMCwgLTEpO1xyXG4gICAgICAgIGlmKGlkZW50aXR5LmluY2x1ZGVzKCcgJykpIGlkZW50aXR5ID0gaWRlbnRpdHkucmVwbGFjZUFsbCgnICcsICcnKTtcclxuICAgICAgICByZXR1cm4gaWRlbnRpdHkudG9Mb3dlckNhc2UoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcml2YXRlIEJhY2tCdXR0b25Ccm93c2VyKCkge1xyXG4gICAgICAgIGNvbnN0IFFVRVJZX1NFTEVDVE9SID0gJ2NvZXItbWVudS1vcHRpb25bbmctcmVmbGVjdC1wYXRoPVwiW3BhdGhdXCJdIG1hdC1uYXYtbGlzdC5jb2VyLW1lbnUtb3B0aW9uJztcclxuXHJcbiAgICAgICAgU2NyZWVuLkJhY2tCdXR0b25Ccm93c2VyLnN1YnNjcmliZSh0b1BhdGggPT4ge1xyXG4gICAgICAgICAgICBpZiAodG9QYXRoLmluY2x1ZGVzKCcvIy8nKSkgdG9QYXRoID0gdG9QYXRoLnNwbGl0KCcvIycpWzFdO1xyXG4gICAgICAgICAgICBpZiAodG9QYXRoLmluY2x1ZGVzKCc/JykpIHRvUGF0aCA9IHRvUGF0aC5zcGxpdCgnPycpWzBdO1xyXG5cclxuICAgICAgICAgICAgLy9WYWxpZGF0ZSBwYXRoXHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgbW9kdWxlIG9mIG5hdmlnYXRpb25TSUdOQUwoKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKG1vZHVsZS5pdGVtcykgZm9yIChjb25zdCBzdWJNb2R1bGUgb2YgbW9kdWxlLml0ZW1zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy9MZXZlbCBUaHJlZVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChzdWJNb2R1bGUuaXRlbXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGNvbnN0IGl0ZW0gb2Ygc3ViTW9kdWxlLml0ZW1zKSBpZiAoaXRlbS5wYXRoID09PSB0b1BhdGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFFVRVJZX1NFTEVDVE9SLnJlcGxhY2UoJ1twYXRoXScsIHRvUGF0aCkpIGFzIGFueSk/LmNsaWNrKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vTGV2ZWwgVHdvXHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoc3ViTW9kdWxlLnBhdGggPT09IHRvUGF0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihRVUVSWV9TRUxFQ1RPUi5yZXBsYWNlKCdbcGF0aF0nLCB0b1BhdGgpKSBhcyBhbnkpPy5jbGljaygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC8vTGV2ZWwgT25lXHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChtb2R1bGUucGF0aCA9PT0gdG9QYXRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoUVVFUllfU0VMRUNUT1IucmVwbGFjZSgnW3BhdGhdJywgdG9QYXRoKSkgYXMgYW55KT8uY2xpY2soKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIEJyZWFkY3J1bWJzLlJlbW92ZSh0b1BhdGgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59IiwiPG1hdC1kcmF3ZXItY29udGFpbmVyIFtoYXNCYWNrZHJvcF09XCJiYWNrZHJvcFwiPlxyXG4gICAgPG1hdC1kcmF3ZXJcclxuICAgICAgICAjbWF0U2lkZW5hdlxyXG4gICAgICAgIFtvcGVuZWRdPVwiaXNPcGVuKClcIlxyXG4gICAgICAgIChvcGVuZWQpPVwiaXNPcGVuLnNldCh0cnVlKVwiXHJcbiAgICAgICAgKGNsb3NlZCk9XCJpc09wZW4uc2V0KGZhbHNlKVwiXHJcbiAgICAgICAgW21vZGVdPVwibW9kZVwiPlxyXG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX25hdmlnYXRpb24oKVwiPlxyXG4gICAgICAgICAgICA8IS0tIE1lbnUgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJJc01lbnUoaXRlbSk7IGVsc2UgT3B0aW9uTWVudVwiPlxyXG4gICAgICAgICAgICAgICAgPGNvZXItdHJlZS1hY2NvcmRpb25cclxuICAgICAgICAgICAgICAgICAgICBbaXRlbV09XCJpdGVtXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2tNZW51T3B0aW9uKT1cIk5hdmlnYXRlVG8oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrTWVudSk9XCJNZW51U2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICA+PC9jb2VyLXRyZWUtYWNjb3JkaW9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gT3B0aW9uIE1lbnUgLS0+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjT3B0aW9uTWVudT5cclxuICAgICAgICAgICAgICAgIDxjb2VyLW1lbnUtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIml0ZW0ubGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpY29uXT1cIml0ZW0/Lmljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwYXRoXT1cIml0ZW0/LnBhdGhcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGlja01lbnVPcHRpb24pPVwiTmF2aWdhdGVUbygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgID48L2NvZXItbWVudS1vcHRpb24+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwieyAnYmFja2Ryb3AnOiBfaXNNb2RhbE9wZW4oKSB9XCI+PC9kaXY+XHJcbiAgICA8L21hdC1kcmF3ZXI+XHJcblxyXG4gICAgPCEtLSBNYWluIFNjcmVlbiAtLT5cclxuICAgIDxtYXQtZHJhd2VyLWNvbnRlbnQgW25nQ2xhc3NdPVwieyAnbWFyZ2luLWxlZnQtNDBweCc6ICghaXNPcGVuKCkgJiYgc2hvd0FzaWRlTWVudSkgfVwiPlxyXG4gICAgICAgIDxhc2lkZSBbbmdDbGFzc109XCJ7ICdzaWRlLW5hdic6IHRydWUsICdkLW5vbmUnOiAhc2hvd0FzaWRlTWVudSB9XCIgKGNsaWNrKT1cIk9wZW4oJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIF9uYXZpZ2F0aW9uKClcIiAoY2xpY2spPVwiT3BlbigkZXZlbnQsIGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiJ2ljb24tY29udGFpbmVyICcgKyBTZXRJZGVudGl0eUNsYXNzKGl0ZW0ubGFiZWwpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIkdldEljb24oaXRlbSlcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7ICdiYWNrZHJvcCc6IF9pc01vZGFsT3BlbigpIH1cIj48L2Rpdj5cclxuICAgICAgICA8L2FzaWRlPlxyXG5cclxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICA8L21hdC1kcmF3ZXItY29udGVudD5cclxuPC9tYXQtZHJhd2VyLWNvbnRhaW5lcj4iXX0=
@@ -185,4 +185,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
185
185
  ]
186
186
  }]
187
187
  }] });
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL2NvbXBvbmVudHMvbGliL2NvbXBvbmVudHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWpHLGtCQUFrQjtBQUNsQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsR0FBRyxNQUFNLDJCQUEyQixDQUFDO0FBQzdGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENB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YTtZQUNiLGdCQUFnQjtZQUNoQixXQUFXOzs0RkE0Q04sZ0JBQWdCO2tCQW5FNUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixPQUFPO3dCQUNQLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsU0FBUzt3QkFDVCxrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsV0FBVztxQkFDZDtvQkFDRCxZQUFZLEVBQUU7d0JBQ1YsYUFBYTt3QkFDYixVQUFVO3dCQUNWLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxRQUFRO3dCQUNSLFFBQVE7d0JBQ1IsUUFBUTt3QkFDUixjQUFjO3dCQUNkLFNBQVM7d0JBQ1QsYUFBYTt3QkFDYixhQUFhO3dCQUNiLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYixVQUFVO3dCQUNWLE9BQU87d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFdBQVc7d0JBQ1gsaUJBQWlCO3FCQUNwQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsYUFBYTt3QkFDYixVQUFVO3dCQUNWLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxRQUFRO3dCQUNSLFFBQVE7d0JBQ1IsUUFBUTt3QkFDUixTQUFTO3dCQUNULGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsVUFBVTt3QkFDVixPQUFPO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxXQUFXO3dCQUNYLGlCQUFpQjtxQkFDcEI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRGlyZWN0aXZlc01vZHVsZSB9IGZyb20gJ2NvZXItZWxlbWVudHMvZGlyZWN0aXZlcyc7XHJcbmltcG9ydCB7IFBpcGVzTW9kdWxlIH0gZnJvbSAnY29lci1lbGVtZW50cy9waXBlcyc7XHJcbmltcG9ydCB7IENka0RyYWcsIENka0RyYWdQbGFjZWhvbGRlciwgQ2RrRHJhZ0hhbmRsZSwgQ2RrRHJvcExpc3QgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuXHJcbi8vQW5ndWxhciBNYXRlcmlhbFxyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgTWF0RHJhd2VyLCBNYXREcmF3ZXJDb250YWluZXIsIE1hdERyYXdlckNvbnRlbnQsIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XHJcbmltcG9ydCB7IE1hdEV4cGFuc2lvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2V4cGFuc2lvbic7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xyXG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XHJcbmltcG9ydCB7IE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcclxuaW1wb3J0IHsgTWF0VG9vbGJhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXInO1xyXG5cclxuLy9Db21wb25lbnRzXHJcbmltcG9ydCB7IENvZXJBY2NvcmRpb24gfSBmcm9tICcuL2NvZXItYWNjb3JkaW9uL2NvZXItYWNjb3JkaW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvZXJCdXR0b24gfSBmcm9tICcuL2NvZXItYnV0dG9uL2NvZXItYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvZXJDaGVja2JveCB9IGZyb20gJy4vY29lci1jaGVja2JveC9jb2VyLWNoZWNrYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvZXJGaWxlYm94IH0gZnJvbSAnLi9jb2VyLWZpbGVib3gvY29lci1maWxlYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvZXJGb3JtIH0gZnJvbSAnLi9jb2VyLWZvcm0vY29lci1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvZXJHcmlkIH0gZnJvbSAnLi9jb2VyLWdyaWQvY29lci1ncmlkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvZXJMaXN0IH0gZnJvbSAnLi9jb2VyLWxpc3QvY29lci1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvZXJNZW51T3B0aW9uIH0gZnJvbSAnLi9jb2VyLXNpZGVuYXYvY29lci1tZW51LW9wdGlvbi9jb2VyLW1lbnUtb3B0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvZXJNb2RhbCB9IGZyb20gJy4vY29lci1tb2RhbC9jb2VyLW1vZGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvZXJOdW1iZXJCb3ggfSBmcm9tICcuL2NvZXItbnVtYmVyYm94L2NvZXItbnVtYmVyYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvZXJQYWdlVGl0bGUgfSBmcm9tICcuL2NvZXItcGFnZS10aXRsZS9jb2VyLXBhZ2UtdGl0bGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29lclNpZGVuYXYgfSBmcm9tICcuL2NvZXItc2lkZW5hdi9jb2VyLXNpZGVuYXYuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29lclNlbGVjdGJveCB9IGZyb20gJy4vY29lci1zZWxlY3Rib3gvY29lci1zZWxlY3Rib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29lclN3aXRjaCB9IGZyb20gJy4vY29lci1zd2l0Y2gvY29lci1zd2l0Y2guY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29lclRhYiB9IGZyb20gJy4vY29lci10YWIvY29lci10YWIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29lclRleHRhcmVhIH0gZnJvbSAnLi9jb2VyLXRleHRhcmVhL2NvZXItdGV4dGFyZWEuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29lclRleHRCb3ggfSBmcm9tICcuL2NvZXItdGV4dGJveC9jb2VyLXRleHRib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29lclRvb2xiYXIgfSBmcm9tICcuL2NvZXItc2lkZW5hdi9jb2VyLXRvb2xiYXIvY29lci10b29sYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvZXJUcmVlQWNjb3JkaW9uIH0gZnJvbSAnLi9jb2VyLXNpZGVuYXYvY29lci10cmVlLWFjY29yZGlvbi9jb2VyLXRyZWUtYWNjb3JkaW9uLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBDZGtEcmFnLCBcclxuICAgICAgICBDZGtEcmFnSGFuZGxlLFxyXG4gICAgICAgIENka0RyYWdQbGFjZWhvbGRlcixcclxuICAgICAgICBDZGtEcm9wTGlzdCwgXHJcbiAgICAgICAgUm91dGVyTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgICAgIE1hdERyYXdlckNvbnRhaW5lcixcclxuICAgICAgICBNYXREcmF3ZXJDb250ZW50LFxyXG4gICAgICAgIE1hdERyYXdlcixcclxuICAgICAgICBNYXRFeHBhbnNpb25Nb2R1bGUsXHJcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxyXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgICAgIE1hdExpc3RNb2R1bGUsXHJcbiAgICAgICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXHJcbiAgICAgICAgTWF0VG9vbGJhck1vZHVsZSxcclxuICAgICAgICBNYXRUYWJzTW9kdWxlLFxyXG4gICAgICAgIERpcmVjdGl2ZXNNb2R1bGUsXHJcbiAgICAgICAgUGlwZXNNb2R1bGVcclxuICAgIF0sXHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgICBDb2VyQWNjb3JkaW9uLFxyXG4gICAgICAgIENvZXJCdXR0b24sXHJcbiAgICAgICAgQ29lckNoZWNrYm94LFxyXG4gICAgICAgIENvZXJGaWxlYm94LFxyXG4gICAgICAgIENvZXJGb3JtLFxyXG4gICAgICAgIENvZXJHcmlkLFxyXG4gICAgICAgIENvZXJMaXN0LFxyXG4gICAgICAgIENvZXJNZW51T3B0aW9uLFxyXG4gICAgICAgIENvZXJNb2RhbCxcclxuICAgICAgICBDb2VyTnVtYmVyQm94LFxyXG4gICAgICAgIENvZXJQYWdlVGl0bGUsXHJcbiAgICAgICAgQ29lclNpZGVuYXYsXHJcbiAgICAgICAgQ29lclNlbGVjdGJveCxcclxuICAgICAgICBDb2VyU3dpdGNoLFxyXG4gICAgICAgIENvZXJUYWIsXHJcbiAgICAgICAgQ29lclRleHRhcmVhLFxyXG4gICAgICAgIENvZXJUZXh0Qm94LFxyXG4gICAgICAgIENvZXJUb29sYmFyLFxyXG4gICAgICAgIENvZXJUcmVlQWNjb3JkaW9uXHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIENvZXJBY2NvcmRpb24sXHJcbiAgICAgICAgQ29lckJ1dHRvbixcclxuICAgICAgICBDb2VyQ2hlY2tib3gsXHJcbiAgICAgICAgQ29lckZpbGVib3gsXHJcbiAgICAgICAgQ29lckZvcm0sXHJcbiAgICAgICAgQ29lckdyaWQsXHJcbiAgICAgICAgQ29lckxpc3QsXHJcbiAgICAgICAgQ29lck1vZGFsLFxyXG4gICAgICAgIENvZXJOdW1iZXJCb3gsXHJcbiAgICAgICAgQ29lclBhZ2VUaXRsZSxcclxuICAgICAgICBDb2VyU2lkZW5hdixcclxuICAgICAgICBDb2VyU2VsZWN0Ym94LFxyXG4gICAgICAgIENvZXJTd2l0Y2gsXHJcbiAgICAgICAgQ29lclRhYixcclxuICAgICAgICBDb2VyVGV4dGFyZWEsXHJcbiAgICAgICAgQ29lclRleHRCb3gsXHJcbiAgICAgICAgQ29lclRvb2xiYXIsXHJcbiAgICAgICAgQ29lclRyZWVBY2NvcmRpb25cclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbXBvbmVudHNNb2R1bGUgeyB9Il19
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL2NvbXBvbmVudHMvbGliL2NvbXBvbmVudHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWpHLGtCQUFrQjtBQUNsQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsR0FBRyxNQUFNLDJCQUEyQixDQUFDO0FBQzdGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENB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YTtZQUNiLGdCQUFnQjtZQUNoQixXQUFXOzs0RkE0Q04sZ0JBQWdCO2tCQW5FNUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixPQUFPO3dCQUNQLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsU0FBUzt3QkFDVCxrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsV0FBVztxQkFDZDtvQkFDRCxZQUFZLEVBQUU7d0JBQ1YsYUFBYTt3QkFDYixVQUFVO3dCQUNWLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxRQUFRO3dCQUNSLFFBQVE7d0JBQ1IsUUFBUTt3QkFDUixjQUFjO3dCQUNkLFNBQVM7d0JBQ1QsYUFBYTt3QkFDYixhQUFhO3dCQUNiLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYixVQUFVO3dCQUNWLE9BQU87d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFdBQVc7d0JBQ1gsaUJBQWlCO3FCQUNwQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsYUFBYTt3QkFDYixVQUFVO3dCQUNWLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxRQUFRO3dCQUNSLFFBQVE7d0JBQ1IsUUFBUTt3QkFDUixTQUFTO3dCQUNULGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsVUFBVTt3QkFDVixPQUFPO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxXQUFXO3dCQUNYLGlCQUFpQjtxQkFDcEI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRGlyZWN0aXZlc01vZHVsZSB9IGZyb20gJ2NvZXItZWxlbWVudHMvZGlyZWN0aXZlcyc7XHJcbmltcG9ydCB7IFBpcGVzTW9kdWxlIH0gZnJvbSAnY29lci1lbGVtZW50cy9waXBlcyc7XHJcbmltcG9ydCB7IENka0RyYWcsIENka0RyYWdQbGFjZWhvbGRlciwgQ2RrRHJhZ0hhbmRsZSwgQ2RrRHJvcExpc3QgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuXHJcbi8vQW5ndWxhciBNYXRlcmlhbFxyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgTWF0RHJhd2VyLCBNYXREcmF3ZXJDb250YWluZXIsIE1hdERyYXdlckNvbnRlbnQsIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XHJcbmltcG9ydCB7IE1hdEV4cGFuc2lvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2V4cGFuc2lvbic7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xyXG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XHJcbmltcG9ydCB7IE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcclxuaW1wb3J0IHsgTWF0VG9vbGJhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXInO1xyXG5cclxuLy9Db21wb25lbnRzXHJcbmltcG9ydCB7IENvZXJBY2NvcmRpb24gfSBmcm9tICcuL2NvZXItYWNjb3JkaW9uL2NvZXItYWNjb3JkaW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvZXJCdXR0b24gfSBmcm9tICcuL2NvZXItYnV0dG9uL2NvZXItYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvZXJDaGVja2JveCB9IGZyb20gJy4vY29lci1jaGVja2JveC9jb2VyLWNoZWNrYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvZXJGaWxlYm94IH0gZnJvbSAnLi9jb2VyLWZpbGVib3gvY29lci1maWxlYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvZXJGb3JtIH0gZnJvbSAnLi9jb2VyLWZvcm0vY29lci1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvZXJHcmlkIH0gZnJvbSAnLi9jb2VyLWdyaWQvY29lci1ncmlkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvZXJMaXN0IH0gZnJvbSAnLi9jb2VyLWxpc3QvY29lci1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvZXJNZW51T3B0aW9uIH0gZnJvbSAnLi9jb2VyLXNpZGVuYXYvY29lci1tZW51LW9wdGlvbi9jb2VyLW1lbnUtb3B0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvZXJNb2RhbCB9IGZyb20gJy4vY29lci1tb2RhbC9jb2VyLW1vZGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvZXJOdW1iZXJCb3ggfSBmcm9tICcuL2NvZXItbnVtYmVyYm94L2NvZXItbnVtYmVyYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvZXJQYWdlVGl0bGUgfSBmcm9tICcuL2NvZXItcGFnZS10aXRsZS9jb2VyLXBhZ2UtdGl0bGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29lclNpZGVuYXYgfSBmcm9tICcuL2NvZXItc2lkZW5hdi9jb2VyLXNpZGVuYXYuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29lclNlbGVjdGJveCB9IGZyb20gJy4vY29lci1zZWxlY3Rib3gvY29lci1zZWxlY3Rib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29lclN3aXRjaCB9IGZyb20gJy4vY29lci1zd2l0Y2gvY29lci1zd2l0Y2guY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29lclRhYiB9IGZyb20gJy4vY29lci10YWIvY29lci10YWIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29lclRleHRhcmVhIH0gZnJvbSAnLi9jb2VyLXRleHRhcmVhL2NvZXItdGV4dGFyZWEuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29lclRleHRCb3ggfSBmcm9tICcuL2NvZXItdGV4dGJveC9jb2VyLXRleHRib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29lclRvb2xiYXIgfSBmcm9tICcuL2NvZXItc2lkZW5hdi9jb2VyLXRvb2xiYXIvY29lci10b29sYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvZXJUcmVlQWNjb3JkaW9uIH0gZnJvbSAnLi9jb2VyLXNpZGVuYXYvY29lci10cmVlLWFjY29yZGlvbi9jb2VyLXRyZWUtYWNjb3JkaW9uLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBDZGtEcmFnLCBcclxuICAgICAgICBDZGtEcmFnSGFuZGxlLFxyXG4gICAgICAgIENka0RyYWdQbGFjZWhvbGRlcixcclxuICAgICAgICBDZGtEcm9wTGlzdCwgXHJcbiAgICAgICAgUm91dGVyTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgICAgIE1hdERyYXdlckNvbnRhaW5lcixcclxuICAgICAgICBNYXREcmF3ZXJDb250ZW50LFxyXG4gICAgICAgIE1hdERyYXdlcixcclxuICAgICAgICBNYXRFeHBhbnNpb25Nb2R1bGUsXHJcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxyXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgICAgIE1hdExpc3RNb2R1bGUsXHJcbiAgICAgICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXHJcbiAgICAgICAgTWF0VG9vbGJhck1vZHVsZSxcclxuICAgICAgICBNYXRUYWJzTW9kdWxlLFxyXG4gICAgICAgIERpcmVjdGl2ZXNNb2R1bGUsXHJcbiAgICAgICAgUGlwZXNNb2R1bGVcclxuICAgIF0sXHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgICBDb2VyQWNjb3JkaW9uLFxyXG4gICAgICAgIENvZXJCdXR0b24sXHJcbiAgICAgICAgQ29lckNoZWNrYm94LFxyXG4gICAgICAgIENvZXJGaWxlYm94LFxyXG4gICAgICAgIENvZXJGb3JtLFxyXG4gICAgICAgIENvZXJHcmlkLFxyXG4gICAgICAgIENvZXJMaXN0LFxyXG4gICAgICAgIENvZXJNZW51T3B0aW9uLFxyXG4gICAgICAgIENvZXJNb2RhbCxcclxuICAgICAgICBDb2VyTnVtYmVyQm94LFxyXG4gICAgICAgIENvZXJQYWdlVGl0bGUsXHJcbiAgICAgICAgQ29lclNpZGVuYXYsXHJcbiAgICAgICAgQ29lclNlbGVjdGJveCxcclxuICAgICAgICBDb2VyU3dpdGNoLFxyXG4gICAgICAgIENvZXJUYWIsXHJcbiAgICAgICAgQ29lclRleHRhcmVhLFxyXG4gICAgICAgIENvZXJUZXh0Qm94LFxyXG4gICAgICAgIENvZXJUb29sYmFyLFxyXG4gICAgICAgIENvZXJUcmVlQWNjb3JkaW9uXHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIENvZXJBY2NvcmRpb24sXHJcbiAgICAgICAgQ29lckJ1dHRvbixcclxuICAgICAgICBDb2VyQ2hlY2tib3gsXHJcbiAgICAgICAgQ29lckZpbGVib3gsXHJcbiAgICAgICAgQ29lckZvcm0sXHJcbiAgICAgICAgQ29lckdyaWQsXHJcbiAgICAgICAgQ29lckxpc3QsXHJcbiAgICAgICAgQ29lck1vZGFsLFxyXG4gICAgICAgIENvZXJOdW1iZXJCb3gsXHJcbiAgICAgICAgQ29lclBhZ2VUaXRsZSxcclxuICAgICAgICBDb2VyU2lkZW5hdixcclxuICAgICAgICBDb2VyU2VsZWN0Ym94LFxyXG4gICAgICAgIENvZXJTd2l0Y2gsXHJcbiAgICAgICAgQ29lclRhYixcclxuICAgICAgICBDb2VyVGV4dGFyZWEsXHJcbiAgICAgICAgQ29lclRleHRCb3gsXHJcbiAgICAgICAgQ29lclRvb2xiYXIsXHJcbiAgICAgICAgQ29lclRyZWVBY2NvcmRpb24gXHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRzTW9kdWxlIHsgfSJdfQ==
@@ -1,6 +1,5 @@
1
1
  export * from './lib/components.module';
2
2
  export * from './lib/coer-accordion/coer-accordion.component';
3
- export * from './lib/coer-sidenav/coer-tree-accordion/coer-tree-accordion.component';
4
3
  export * from './lib/coer-button/coer-button.component';
5
4
  export * from './lib/coer-checkbox/coer-checkbox.component';
6
5
  export * from './lib/coer-filebox/coer-filebox.component';
@@ -13,8 +12,9 @@ export * from './lib/coer-page-title/coer-page-title.component';
13
12
  export * from './lib/coer-selectbox/coer-selectbox.component';
14
13
  export * from './lib/coer-sidenav/coer-sidenav.component';
15
14
  export * from './lib/coer-sidenav/coer-toolbar/coer-toolbar.component';
15
+ export * from './lib/coer-sidenav/coer-tree-accordion/coer-tree-accordion.component';
16
16
  export * from './lib/coer-switch/coer-switch.component';
17
17
  export * from './lib/coer-tab/coer-tab.component';
18
18
  export * from './lib/coer-textarea/coer-textarea.component';
19
19
  export * from './lib/coer-textbox/coer-textbox.component';
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZXItZWxlbWVudHMvY29tcG9uZW50cy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLHNFQUFzRSxDQUFBO0FBQ3BGLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsMkNBQTJDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvZXItYWNjb3JkaW9uL2NvZXItYWNjb3JkaW9uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvZXItc2lkZW5hdi9jb2VyLXRyZWUtYWNjb3JkaW9uL2NvZXItdHJlZS1hY2NvcmRpb24uY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2VyLWJ1dHRvbi9jb2VyLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2VyLWNoZWNrYm94L2NvZXItY2hlY2tib3guY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29lci1maWxlYm94L2NvZXItZmlsZWJveC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2VyLWZvcm0vY29lci1mb3JtLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvZXItZ3JpZC9jb2VyLWdyaWQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29lci1saXN0L2NvZXItbGlzdC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2VyLW1vZGFsL2NvZXItbW9kYWwuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29lci1udW1iZXJib3gvY29lci1udW1iZXJib3guY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29lci1wYWdlLXRpdGxlL2NvZXItcGFnZS10aXRsZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2VyLXNlbGVjdGJveC9jb2VyLXNlbGVjdGJveC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2VyLXNpZGVuYXYvY29lci1zaWRlbmF2LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvZXItc2lkZW5hdi9jb2VyLXRvb2xiYXIvY29lci10b29sYmFyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvZXItc3dpdGNoL2NvZXItc3dpdGNoLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvZXItdGFiL2NvZXItdGFiLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvZXItdGV4dGFyZWEvY29lci10ZXh0YXJlYS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2VyLXRleHRib3gvY29lci10ZXh0Ym94LmNvbXBvbmVudCc7Il19
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZXItZWxlbWVudHMvY29tcG9uZW50cy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHNFQUFzRSxDQUFDO0FBQ3JGLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsMkNBQTJDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvZXItYWNjb3JkaW9uL2NvZXItYWNjb3JkaW9uLmNvbXBvbmVudCc7IFxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2VyLWJ1dHRvbi9jb2VyLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2VyLWNoZWNrYm94L2NvZXItY2hlY2tib3guY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29lci1maWxlYm94L2NvZXItZmlsZWJveC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2VyLWZvcm0vY29lci1mb3JtLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvZXItZ3JpZC9jb2VyLWdyaWQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29lci1saXN0L2NvZXItbGlzdC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2VyLW1vZGFsL2NvZXItbW9kYWwuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29lci1udW1iZXJib3gvY29lci1udW1iZXJib3guY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29lci1wYWdlLXRpdGxlL2NvZXItcGFnZS10aXRsZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2VyLXNlbGVjdGJveC9jb2VyLXNlbGVjdGJveC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2VyLXNpZGVuYXYvY29lci1zaWRlbmF2LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvZXItc2lkZW5hdi9jb2VyLXRvb2xiYXIvY29lci10b29sYmFyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvZXItc2lkZW5hdi9jb2VyLXRyZWUtYWNjb3JkaW9uL2NvZXItdHJlZS1hY2NvcmRpb24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29lci1zd2l0Y2gvY29lci1zd2l0Y2guY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29lci10YWIvY29lci10YWIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29lci10ZXh0YXJlYS9jb2VyLXRleHRhcmVhLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvZXItdGV4dGJveC9jb2VyLXRleHRib3guY29tcG9uZW50JzsiXX0=