@eui/components 18.0.0-next.50 → 18.0.0-next.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/docs/components/EuiAppSidebarMenuComponent.html +1 -1
  2. package/docs/components/EuiMenuComponent.html +1 -25
  3. package/docs/components/EuiMenuItemComponent.html +1 -25
  4. package/docs/components/EuiSidebarMenuComponent.html +1 -25
  5. package/docs/components/EuiTimebarComponent.html +25 -326
  6. package/docs/components/EuiTimelineComponent.html +1 -1
  7. package/docs/components/EuiTimelineItemComponent.html +2 -2
  8. package/docs/components/EuiTreeListComponent.html +51 -272
  9. package/docs/components/EuiTreeListItemComponent.html +57 -399
  10. package/docs/components/EuiTreeListItemContentComponent.html +3 -3
  11. package/docs/dependencies.html +1 -1
  12. package/docs/js/menu-wc.js +3 -3
  13. package/docs/js/menu-wc_es5.js +1 -1
  14. package/docs/js/search/search_index.js +2 -2
  15. package/esm2022/eui-card/eui-card.component.mjs +2 -2
  16. package/esm2022/eui-icon/eui-icon-svg.component.mjs +3 -3
  17. package/esm2022/eui-menu/eui-menu-item.component.mjs +3 -7
  18. package/esm2022/eui-menu/eui-menu.component.mjs +3 -7
  19. package/esm2022/eui-sidebar-menu/eui-sidebar-menu.component.mjs +3 -7
  20. package/esm2022/eui-tabs/eui-tabs.component.mjs +13 -12
  21. package/esm2022/eui-timebar/eui-timebar.component.mjs +18 -44
  22. package/esm2022/eui-timeline/eui-timeline-item.component.mjs +1 -1
  23. package/esm2022/eui-timeline/eui-timeline.component.mjs +1 -1
  24. package/esm2022/eui-tree-list/eui-tree-list-item.component.mjs +48 -79
  25. package/esm2022/eui-tree-list/eui-tree-list.component.mjs +19 -46
  26. package/esm2022/eui-tree-list/item-content/item-content.component.mjs +6 -3
  27. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.mjs +3 -3
  28. package/eui-menu/eui-menu-item.component.d.ts +1 -3
  29. package/eui-menu/eui-menu-item.component.d.ts.map +1 -1
  30. package/eui-menu/eui-menu.component.d.ts +1 -3
  31. package/eui-menu/eui-menu.component.d.ts.map +1 -1
  32. package/eui-sidebar-menu/eui-sidebar-menu.component.d.ts +1 -3
  33. package/eui-sidebar-menu/eui-sidebar-menu.component.d.ts.map +1 -1
  34. package/eui-tabs/eui-tabs.component.d.ts +1 -0
  35. package/eui-tabs/eui-tabs.component.d.ts.map +1 -1
  36. package/eui-timebar/eui-timebar.component.d.ts +10 -16
  37. package/eui-timebar/eui-timebar.component.d.ts.map +1 -1
  38. package/eui-timeline/eui-timeline-item.component.d.ts +2 -3
  39. package/eui-timeline/eui-timeline-item.component.d.ts.map +1 -1
  40. package/eui-timeline/eui-timeline.component.d.ts +1 -2
  41. package/eui-timeline/eui-timeline.component.d.ts.map +1 -1
  42. package/eui-tree-list/eui-tree-list-item.component.d.ts +16 -23
  43. package/eui-tree-list/eui-tree-list-item.component.d.ts.map +1 -1
  44. package/eui-tree-list/eui-tree-list.component.d.ts +10 -19
  45. package/eui-tree-list/eui-tree-list.component.d.ts.map +1 -1
  46. package/fesm2022/eui-components-eui-card.mjs +2 -2
  47. package/fesm2022/eui-components-eui-card.mjs.map +1 -1
  48. package/fesm2022/eui-components-eui-icon.mjs +2 -2
  49. package/fesm2022/eui-components-eui-icon.mjs.map +1 -1
  50. package/fesm2022/eui-components-eui-menu.mjs +17 -25
  51. package/fesm2022/eui-components-eui-menu.mjs.map +2 -2
  52. package/fesm2022/eui-components-eui-sidebar-menu.mjs +2 -6
  53. package/fesm2022/eui-components-eui-sidebar-menu.mjs.map +2 -2
  54. package/fesm2022/eui-components-eui-tabs.mjs +12 -11
  55. package/fesm2022/eui-components-eui-tabs.mjs.map +2 -2
  56. package/fesm2022/eui-components-eui-timebar.mjs +17 -43
  57. package/fesm2022/eui-components-eui-timebar.mjs.map +2 -2
  58. package/fesm2022/eui-components-eui-timeline.mjs.map +2 -2
  59. package/fesm2022/eui-components-eui-tree-list.mjs +76 -128
  60. package/fesm2022/eui-components-eui-tree-list.mjs.map +4 -4
  61. package/fesm2022/eui-components-layout.mjs +2 -2
  62. package/fesm2022/eui-components-layout.mjs.map +2 -2
  63. package/package.json +3 -3
@@ -1,6 +1,5 @@
1
- import { Component, Input, NgModule, ViewChild, ViewEncapsulation, } from '@angular/core';
1
+ import { Component, Input, NgModule, ViewChild, ViewEncapsulation, booleanAttribute, } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
- import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
3
  import { formatNumber } from '@eui/core';
5
4
  import { EuiIconModule } from '@eui/components/eui-icon';
6
5
  import * as i0 from "@angular/core";
@@ -10,36 +9,6 @@ import * as i3 from "@eui/components/eui-icon";
10
9
  export class EuiTimebarItemUI {
11
10
  }
12
11
  export class EuiTimebarComponent {
13
- get isShowLegend() {
14
- return this._isShowLegend;
15
- }
16
- set isShowLegend(value) {
17
- this._isShowLegend = coerceBooleanProperty(value);
18
- }
19
- get isShowLegendAsIndex() {
20
- return this._isShowLegendAsIndex;
21
- }
22
- set isShowLegendAsIndex(value) {
23
- this._isShowLegendAsIndex = coerceBooleanProperty(value);
24
- }
25
- get isShowCurrentDateMarker() {
26
- return this._isShowCurrentDateMarker;
27
- }
28
- set isShowCurrentDateMarker(value) {
29
- this._isShowCurrentDateMarker = coerceBooleanProperty(value);
30
- }
31
- get isCurrentDateMarkerAlwaysInRange() {
32
- return this._isCurrentDateMarkerAlwaysInRange;
33
- }
34
- set isCurrentDateMarkerAlwaysInRange(value) {
35
- this._isCurrentDateMarkerAlwaysInRange = coerceBooleanProperty(value);
36
- }
37
- get isGroupOverlappingLabels() {
38
- return this._isGroupOverlappingLabels;
39
- }
40
- set isGroupOverlappingLabels(value) {
41
- this._isGroupOverlappingLabels = coerceBooleanProperty(value);
42
- }
43
12
  constructor(asService, cd) {
44
13
  this.asService = asService;
45
14
  this.cd = cd;
@@ -51,11 +20,11 @@ export class EuiTimebarComponent {
51
20
  this.extraTimelineLabelSpace = 21;
52
21
  this.e2eAttr = 'eui-timebar';
53
22
  this.dateFormat = 'yyyy-MM-dd';
54
- this._isShowLegend = false;
55
- this._isShowLegendAsIndex = true;
56
- this._isShowCurrentDateMarker = false;
57
- this._isCurrentDateMarkerAlwaysInRange = false;
58
- this._isGroupOverlappingLabels = false;
23
+ this.isShowLegend = false;
24
+ this.isShowLegendAsIndex = true;
25
+ this.isShowCurrentDateMarker = false;
26
+ this.isCurrentDateMarkerAlwaysInRange = false;
27
+ this.isGroupOverlappingLabels = false;
59
28
  this.maxStepWidth = 112; // 112px = 8rem = 2 x 4rem margin around starting and ending bullet.
60
29
  }
61
30
  ngOnInit() {
@@ -281,7 +250,7 @@ export class EuiTimebarComponent {
281
250
  }
282
251
  }
283
252
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.6", ngImport: i0, type: EuiTimebarComponent, deps: [{ token: i1.EuiAppShellService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
284
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.6", type: EuiTimebarComponent, selector: "eui-timebar", inputs: { e2eAttr: "e2eAttr", markedDate: "markedDate", items: "items", startLabel: "startLabel", endLabel: "endLabel", dateFormat: "dateFormat", isShowLegend: "isShowLegend", isShowLegendAsIndex: "isShowLegendAsIndex", isShowCurrentDateMarker: "isShowCurrentDateMarker", isCurrentDateMarkerAlwaysInRange: "isCurrentDateMarkerAlwaysInRange", isGroupOverlappingLabels: "isGroupOverlappingLabels" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"row eui-u-flex\" #container>\n <div *ngIf=\"startLabel\" class=\"col-2 eui-timebar__start-label\">\n {{ startLabel }}\n </div>\n <div class=\"{{ timebarColumnClass }}\">\n <div class=\"eui-timebar\" [style.marginBottom.px]=\"extraTimelineLabelSpace\" attr.data-e2e=\"{{ e2eAttr }}\">\n <div\n *ngIf=\"isShowCurrentDateMarker\"\n class=\"eui-timebar__current-progress\"\n [style.width.%]=\"currentPerc >= 100 ? 100 : currentPerc\"></div>\n <div *ngIf=\"markedDate\" class=\"eui-timebar__current-progress\" [style.width.%]=\"markedPerc >= 100 ? 100 : markedPerc\"></div>\n <ng-template [ngIf]=\"!isMobile\">\n <ng-container *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <ng-container *ngIf=\"!item.isGrouped\">\n <div\n class=\"eui-timebar__step\"\n [ngClass]=\"item.stepTypeClass\"\n [style.left.%]=\"item.perc\"\n [class.eui-timebar__step--with-current-date-marker]=\"isShowCurrentDateMarker || markedDate\">\n <div class=\"eui-timebar__step-date-item\" [class.eui-timebar__step-date-item--with-end-date]=\"item.groupEndDate\">\n <span\n *ngIf=\"item.groupEndDate\"\n class=\"eui-timebar__grouped__step {{\n item.stepTypeClass ? 'eui-timebar__step--' + item.stepTypeClass : ''\n }}\">\n {{ item.groupEndDate | date: dateFormat }}\n </span>\n <span\n class=\"{{ item.tooltipColor ? 'eui-timebar__step--' + item.tooltipColor : '' }}\"\n [class.eui-timebar__grouped__step]=\"item.groupEndDate\">\n {{ item.item.date | date: dateFormat }}\n </span>\n </div>\n <div *ngIf=\"!isShowLegendGenerated\" [style.left.%]=\"item.perc\" class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n <span title=\"{{ item.item.label }}\">{{ item.item.label }}</span>\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n <span title=\"{{ item.groupLabel }}\">{{ item.groupLabel }}</span>\n </ng-container>\n </div>\n <div\n *ngIf=\"isShowLegendGenerated && isShowLegendAsIndexGenerated\"\n [style.left.%]=\"item.perc\"\n class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n {{ i + 1 }}\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <ng-template [ngIf]=\"isMobile\">\n <ng-container *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <ng-container *ngIf=\"!item.isGrouped\">\n <div\n class=\"eui-timebar__step\"\n [ngClass]=\"item.stepTypeClass\"\n [style.left.%]=\"item.perc\"\n [class.eui-timebar__step--with-current-date-marker]=\"isShowCurrentDateMarker || markedDate\">\n <div *ngIf=\"!isShowLegendGenerated\" class=\"eui-timebar__step-label\" title=\"{{ item.item.label }}\">\n <ng-container *ngIf=\"!item.groupLabel\">\n <span title=\"{{ item.item.label }}\">{{ item.item.label }}</span>\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n <div *ngIf=\"isShowLegendGenerated && isShowLegendAsIndexGenerated\" class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n {{ i + 1 }}\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <div\n *ngIf=\"isShowCurrentDateMarker\"\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"currentPerc\"\n title=\"{{ currentDate | date: dateFormat }}\">\n <eui-icon-svg icon=\"location\" set=\"sharp\" size=\"m\" fillColor=\"danger-100\"></eui-icon-svg>\n </div>\n <div *ngIf=\"isShowCurrentDateMarker\" class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"currentPerc\">\n <eui-icon-svg icon=\"eui-ellipse\" set=\"eui\" size=\"s\" fillColor=\"danger-100\"></eui-icon-svg>\n </div>\n <div\n *ngIf=\"markedDate\"\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"markedPerc\"\n title=\"{{ markedDate | date: dateFormat }}\">\n <eui-icon-svg icon=\"location\" set=\"sharp\" size=\"m\" fillColor=\"danger-100\"></eui-icon-svg>\n </div>\n <div *ngIf=\"markedDate\" class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"markedPerc\">\n <eui-icon-svg icon=\"eui-ellipse\" set=\"eui\" size=\"s\" fillColor=\"danger-100\"></eui-icon-svg>\n </div>\n </div>\n </div>\n <div *ngIf=\"endLabel\" class=\"col-2 eui-timebar__end-label\">\n {{ endLabel }}\n </div>\n</div>\n<div class=\"row eui-u-flex\">\n <div *ngIf=\"startLabel\" class=\"col-2\"></div>\n <div class=\"{{ timebarColumnClass }}\">\n <div *ngIf=\"isShowLegendGenerated || isSomeStepsAreGrouped\" class=\"eui-timebar__legend\">\n <ng-container *ngIf=\"isShowLegendGenerated\">\n <div class=\"eui-timebar__legend-item\" *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <div *ngIf=\"!isShowLegendAsIndexGenerated\" class=\"eui-timebar__legend-item-icon\">\n <eui-icon-svg icon=\"eui-ellipse\" set=\"eui\" size=\"s\" fillColor=\"{{ item.item.stepType }}\"></eui-icon-svg>\n </div>\n <div *ngIf=\"isShowLegendAsIndexGenerated\" class=\"eui-timebar__legend-item-index-wrapper\">\n {{ i + 1 }}\n </div>\n <div class=\"eui-timebar__legend-item-label\">\n <ng-template [ngIf]=\"isMobile\">\n <strong>{{ item.item.date | date: dateFormat }}</strong> - {{ item.item.label }}\n </ng-template>\n <ng-template [ngIf]=\"!isMobile\">\n {{ item.item.label }}\n </ng-template>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!isShowLegendGenerated\">\n <ng-container *ngFor=\"let item of itemsUI; trackBy: trackByFn\">\n <div *ngIf=\"item.groupLabel || item.isGrouped\" class=\"eui-timebar__legend-item\">\n <div class=\"eui-timebar__legend-item-index-wrapper\">\n {{ item.groupIndex }}\n </div>\n <div class=\"eui-timebar__legend-item-label\">\n <strong>{{ item.item.date | date: dateFormat }}</strong> - {{ item.item.label }}\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"endLabel\" class=\"col-2\"></div>\n</div>\n", styles: [".eui-timebar{border-bottom:2px solid var(--eui-c-neutral-lightest);margin:6rem 3rem;padding:5px;position:relative}.eui-timebar__step{border:7px solid var(--eui-c-primary);border-radius:16px;height:14px;position:absolute;width:14px}.eui-timebar__step-date-item{background-color:var(--eui-c-neutral-light);border-radius:var(--eui-border-radius-base);color:var(--eui-c-white);max-width:8rem;min-width:6rem;padding:var(--eui-s-xs);position:absolute;text-align:center;top:-2.5rem;transform:rotate(65deg);transform-origin:50% -175%;white-space:normal;font:var(--eui-f-s)}.eui-timebar__step-date-item--with-end-date{left:2.5rem;top:-1.75rem}.eui-timebar__step--with-current-date-marker.hint--top:before,.eui-timebar__step--with-current-date-marker.hint--top:after{bottom:25px}.eui-timebar__current-progress{border-bottom:3px solid var(--eui-c-primary);padding-top:5px;position:absolute}.eui-timebar__current-date-marker{color:var(--eui-c-danger);margin-left:-2px;position:absolute;top:calc(-1 * var(--eui-s-m) - var(--eui-s-2xs))}.eui-timebar__current-date-marker-step{bottom:calc(-1 * var(--eui-s-m) - 2px);color:var(--eui-c-danger);position:absolute}.eui-timebar__start-label,.eui-timebar__end-label{margin-top:6.5rem;font:var(--eui-f-s-bold)}.eui-timebar__start-label{text-align:right}.eui-timebar__step-date-item--with-end-date{margin:0;padding:0}.eui-timebar__step-label{margin-left:-4rem;margin-top:.7rem;overflow:hidden;position:absolute;text-align:center;width:8rem}.eui-timebar__legend{margin-left:var(--eui-s-s);margin-top:3rem}.eui-timebar__legend-item{align-items:center;display:flex;padding:var(--eui-s-xs) var(--eui-s-xs) var(--eui-s-xs) 0;width:100%}.eui-timebar__legend-item-label{flex:1}.eui-timebar__legend-item-index-wrapper{background-color:var(--eui-c-primary);border-radius:100%;color:var(--eui-c-white);margin-right:var(--eui-s-m);padding:var(--eui-s-xs) var(--eui-s-s)}.eui-timebar__grouped__step{border-radius:var(--eui-br-m);display:block;padding:3px 8px}.eui-timebar__grouped__step.eui-timebar__step--info{background-color:var(--eui-c-info)}.eui-timebar__grouped__step.eui-timebar__step--success{background-color:var(--eui-c-success)}.eui-timebar__grouped__step.eui-timebar__step--warning{background-color:var(--eui-c-warning)}.eui-timebar__grouped__step.eui-timebar__step--danger{background-color:var(--eui-c-danger)}.eui-timebar__step--info{border-color:var(--eui-c-info)}.eui-timebar__step--info .eui-timebar__step-date-item{background-color:var(--eui-c-info)}.eui-timebar__step--success{border-color:var(--eui-c-success)}.eui-timebar__step--success .eui-timebar__step-date-item{background-color:var(--eui-c-success)}.eui-timebar__step--warning{border-color:var(--eui-c-warning)}.eui-timebar__step--warning .eui-timebar__step-date-item{background-color:var(--eui-c-warning)}.eui-timebar__step--danger{border-color:var(--eui-c-danger)}.eui-timebar__step--danger .eui-timebar__step-date-item{background-color:var(--eui-c-danger)}.eui-timebar__legend-item-icon{color:var(--eui-c-primary);fill:var(--eui-c-primary);width:var(--eui-s-3xl);height:var(--eui-s-3xl)}.eui-timebar__legend-item-icon--info{color:var(--eui-c-info)}.eui-timebar__legend-item-icon--success{color:var(--eui-c-success)}.eui-timebar__legend-item-icon--warning{color:var(--eui-c-warning)}.eui-timebar__legend-item-icon--danger{color:var(--eui-c-danger)}@media screen and (max-width: 767px){.eui-timebar{margin:5rem var(--eui-s-m)}.eui-timebar__legend{margin-bottom:var(--eui-s-l);margin-left:18px}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }], encapsulation: i0.ViewEncapsulation.None }); }
253
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0-next.6", type: EuiTimebarComponent, selector: "eui-timebar", inputs: { e2eAttr: "e2eAttr", markedDate: "markedDate", items: "items", startLabel: "startLabel", endLabel: "endLabel", dateFormat: "dateFormat", isShowLegend: ["isShowLegend", "isShowLegend", booleanAttribute], isShowLegendAsIndex: ["isShowLegendAsIndex", "isShowLegendAsIndex", booleanAttribute], isShowCurrentDateMarker: ["isShowCurrentDateMarker", "isShowCurrentDateMarker", booleanAttribute], isCurrentDateMarkerAlwaysInRange: ["isCurrentDateMarkerAlwaysInRange", "isCurrentDateMarkerAlwaysInRange", booleanAttribute], isGroupOverlappingLabels: ["isGroupOverlappingLabels", "isGroupOverlappingLabels", booleanAttribute] }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"row eui-u-flex\" #container>\n <div *ngIf=\"startLabel\" class=\"col-2 eui-timebar__start-label\">\n {{ startLabel }}\n </div>\n <div class=\"{{ timebarColumnClass }}\">\n <div class=\"eui-timebar\" [style.marginBottom.px]=\"extraTimelineLabelSpace\" attr.data-e2e=\"{{ e2eAttr }}\">\n <div\n *ngIf=\"isShowCurrentDateMarker\"\n class=\"eui-timebar__current-progress\"\n [style.width.%]=\"currentPerc >= 100 ? 100 : currentPerc\"></div>\n <div *ngIf=\"markedDate\" class=\"eui-timebar__current-progress\" [style.width.%]=\"markedPerc >= 100 ? 100 : markedPerc\"></div>\n <ng-template [ngIf]=\"!isMobile\">\n <ng-container *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <ng-container *ngIf=\"!item.isGrouped\">\n <div\n class=\"eui-timebar__step\"\n [ngClass]=\"item.stepTypeClass\"\n [style.left.%]=\"item.perc\"\n [class.eui-timebar__step--with-current-date-marker]=\"isShowCurrentDateMarker || markedDate\">\n <div class=\"eui-timebar__step-date-item\" [class.eui-timebar__step-date-item--with-end-date]=\"item.groupEndDate\">\n <span\n *ngIf=\"item.groupEndDate\"\n class=\"eui-timebar__grouped__step {{\n item.stepTypeClass ? 'eui-timebar__step--' + item.stepTypeClass : ''\n }}\">\n {{ item.groupEndDate | date: dateFormat }}\n </span>\n <span\n class=\"{{ item.tooltipColor ? 'eui-timebar__step--' + item.tooltipColor : '' }}\"\n [class.eui-timebar__grouped__step]=\"item.groupEndDate\">\n {{ item.item.date | date: dateFormat }}\n </span>\n </div>\n <div *ngIf=\"!isShowLegendGenerated\" [style.left.%]=\"item.perc\" class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n <span title=\"{{ item.item.label }}\">{{ item.item.label }}</span>\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n <span title=\"{{ item.groupLabel }}\">{{ item.groupLabel }}</span>\n </ng-container>\n </div>\n <div\n *ngIf=\"isShowLegendGenerated && isShowLegendAsIndexGenerated\"\n [style.left.%]=\"item.perc\"\n class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n {{ i + 1 }}\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <ng-template [ngIf]=\"isMobile\">\n <ng-container *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <ng-container *ngIf=\"!item.isGrouped\">\n <div\n class=\"eui-timebar__step\"\n [ngClass]=\"item.stepTypeClass\"\n [style.left.%]=\"item.perc\"\n [class.eui-timebar__step--with-current-date-marker]=\"isShowCurrentDateMarker || markedDate\">\n <div *ngIf=\"!isShowLegendGenerated\" class=\"eui-timebar__step-label\" title=\"{{ item.item.label }}\">\n <ng-container *ngIf=\"!item.groupLabel\">\n <span title=\"{{ item.item.label }}\">{{ item.item.label }}</span>\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n <div *ngIf=\"isShowLegendGenerated && isShowLegendAsIndexGenerated\" class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n {{ i + 1 }}\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <div\n *ngIf=\"isShowCurrentDateMarker\"\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"currentPerc\"\n title=\"{{ currentDate | date: dateFormat }}\">\n <eui-icon-svg icon=\"location\" set=\"sharp\" size=\"m\" fillColor=\"danger-100\"></eui-icon-svg>\n </div>\n <div *ngIf=\"isShowCurrentDateMarker\" class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"currentPerc\">\n <eui-icon-svg icon=\"eui-ellipse\" set=\"eui\" size=\"s\" fillColor=\"danger-100\"></eui-icon-svg>\n </div>\n <div\n *ngIf=\"markedDate\"\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"markedPerc\"\n title=\"{{ markedDate | date: dateFormat }}\">\n <eui-icon-svg icon=\"location\" set=\"sharp\" size=\"m\" fillColor=\"danger-100\"></eui-icon-svg>\n </div>\n <div *ngIf=\"markedDate\" class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"markedPerc\">\n <eui-icon-svg icon=\"eui-ellipse\" set=\"eui\" size=\"s\" fillColor=\"danger-100\"></eui-icon-svg>\n </div>\n </div>\n </div>\n <div *ngIf=\"endLabel\" class=\"col-2 eui-timebar__end-label\">\n {{ endLabel }}\n </div>\n</div>\n<div class=\"row eui-u-flex\">\n <div *ngIf=\"startLabel\" class=\"col-2\"></div>\n <div class=\"{{ timebarColumnClass }}\">\n <div *ngIf=\"isShowLegendGenerated || isSomeStepsAreGrouped\" class=\"eui-timebar__legend\">\n <ng-container *ngIf=\"isShowLegendGenerated\">\n <div class=\"eui-timebar__legend-item\" *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <div *ngIf=\"!isShowLegendAsIndexGenerated\" class=\"eui-timebar__legend-item-icon\">\n <eui-icon-svg icon=\"eui-ellipse\" set=\"eui\" size=\"s\" fillColor=\"{{ item.item.stepType }}\"></eui-icon-svg>\n </div>\n <div *ngIf=\"isShowLegendAsIndexGenerated\" class=\"eui-timebar__legend-item-index-wrapper\">\n {{ i + 1 }}\n </div>\n <div class=\"eui-timebar__legend-item-label\">\n <ng-template [ngIf]=\"isMobile\">\n <strong>{{ item.item.date | date: dateFormat }}</strong> - {{ item.item.label }}\n </ng-template>\n <ng-template [ngIf]=\"!isMobile\">\n {{ item.item.label }}\n </ng-template>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!isShowLegendGenerated\">\n <ng-container *ngFor=\"let item of itemsUI; trackBy: trackByFn\">\n <div *ngIf=\"item.groupLabel || item.isGrouped\" class=\"eui-timebar__legend-item\">\n <div class=\"eui-timebar__legend-item-index-wrapper\">\n {{ item.groupIndex }}\n </div>\n <div class=\"eui-timebar__legend-item-label\">\n <strong>{{ item.item.date | date: dateFormat }}</strong> - {{ item.item.label }}\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"endLabel\" class=\"col-2\"></div>\n</div>\n", styles: [".eui-timebar{border-bottom:2px solid var(--eui-c-neutral-lightest);margin:6rem 3rem;padding:5px;position:relative}.eui-timebar__step{border:7px solid var(--eui-c-primary);border-radius:16px;height:14px;position:absolute;width:14px}.eui-timebar__step-date-item{background-color:var(--eui-c-neutral-light);border-radius:var(--eui-border-radius-base);color:var(--eui-c-white);max-width:8rem;min-width:6rem;padding:var(--eui-s-xs);position:absolute;text-align:center;top:-2.5rem;transform:rotate(65deg);transform-origin:50% -175%;white-space:normal;font:var(--eui-f-s)}.eui-timebar__step-date-item--with-end-date{left:2.5rem;top:-1.75rem}.eui-timebar__step--with-current-date-marker.hint--top:before,.eui-timebar__step--with-current-date-marker.hint--top:after{bottom:25px}.eui-timebar__current-progress{border-bottom:3px solid var(--eui-c-primary);padding-top:5px;position:absolute}.eui-timebar__current-date-marker{color:var(--eui-c-danger);margin-left:-2px;position:absolute;top:calc(-1 * var(--eui-s-m) - var(--eui-s-2xs))}.eui-timebar__current-date-marker-step{bottom:calc(-1 * var(--eui-s-m) - 2px);color:var(--eui-c-danger);position:absolute}.eui-timebar__start-label,.eui-timebar__end-label{margin-top:6.5rem;font:var(--eui-f-s-bold)}.eui-timebar__start-label{text-align:right}.eui-timebar__step-date-item--with-end-date{margin:0;padding:0}.eui-timebar__step-label{margin-left:-4rem;margin-top:.7rem;overflow:hidden;position:absolute;text-align:center;width:8rem}.eui-timebar__legend{margin-left:var(--eui-s-s);margin-top:3rem}.eui-timebar__legend-item{align-items:center;display:flex;padding:var(--eui-s-xs) var(--eui-s-xs) var(--eui-s-xs) 0;width:100%}.eui-timebar__legend-item-label{flex:1}.eui-timebar__legend-item-index-wrapper{background-color:var(--eui-c-primary);border-radius:100%;color:var(--eui-c-white);margin-right:var(--eui-s-m);padding:var(--eui-s-xs) var(--eui-s-s)}.eui-timebar__grouped__step{border-radius:var(--eui-br-m);display:block;padding:3px 8px}.eui-timebar__grouped__step.eui-timebar__step--info{background-color:var(--eui-c-info)}.eui-timebar__grouped__step.eui-timebar__step--success{background-color:var(--eui-c-success)}.eui-timebar__grouped__step.eui-timebar__step--warning{background-color:var(--eui-c-warning)}.eui-timebar__grouped__step.eui-timebar__step--danger{background-color:var(--eui-c-danger)}.eui-timebar__step--info{border-color:var(--eui-c-info)}.eui-timebar__step--info .eui-timebar__step-date-item{background-color:var(--eui-c-info)}.eui-timebar__step--success{border-color:var(--eui-c-success)}.eui-timebar__step--success .eui-timebar__step-date-item{background-color:var(--eui-c-success)}.eui-timebar__step--warning{border-color:var(--eui-c-warning)}.eui-timebar__step--warning .eui-timebar__step-date-item{background-color:var(--eui-c-warning)}.eui-timebar__step--danger{border-color:var(--eui-c-danger)}.eui-timebar__step--danger .eui-timebar__step-date-item{background-color:var(--eui-c-danger)}.eui-timebar__legend-item-icon{color:var(--eui-c-primary);fill:var(--eui-c-primary);width:var(--eui-s-3xl);height:var(--eui-s-3xl)}.eui-timebar__legend-item-icon--info{color:var(--eui-c-info)}.eui-timebar__legend-item-icon--success{color:var(--eui-c-success)}.eui-timebar__legend-item-icon--warning{color:var(--eui-c-warning)}.eui-timebar__legend-item-icon--danger{color:var(--eui-c-danger)}@media screen and (max-width: 767px){.eui-timebar{margin:5rem var(--eui-s-m)}.eui-timebar__legend{margin-bottom:var(--eui-s-l);margin-left:18px}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }], encapsulation: i0.ViewEncapsulation.None }); }
285
254
  }
286
255
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.6", ngImport: i0, type: EuiTimebarComponent, decorators: [{
287
256
  type: Component,
@@ -302,15 +271,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.6",
302
271
  }], dateFormat: [{
303
272
  type: Input
304
273
  }], isShowLegend: [{
305
- type: Input
274
+ type: Input,
275
+ args: [{ transform: booleanAttribute }]
306
276
  }], isShowLegendAsIndex: [{
307
- type: Input
277
+ type: Input,
278
+ args: [{ transform: booleanAttribute }]
308
279
  }], isShowCurrentDateMarker: [{
309
- type: Input
280
+ type: Input,
281
+ args: [{ transform: booleanAttribute }]
310
282
  }], isCurrentDateMarkerAlwaysInRange: [{
311
- type: Input
283
+ type: Input,
284
+ args: [{ transform: booleanAttribute }]
312
285
  }], isGroupOverlappingLabels: [{
313
- type: Input
286
+ type: Input,
287
+ args: [{ transform: booleanAttribute }]
314
288
  }] } });
315
289
  export class EuiTimebarModule {
316
290
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.6", ngImport: i0, type: EuiTimebarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -325,4 +299,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.6",
325
299
  declarations: [EuiTimebarComponent],
326
300
  }]
327
301
  }] });
328
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRpbWViYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXRpbWViYXIvZXVpLXRpbWViYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXRpbWViYXIvZXVpLXRpbWViYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlILFNBQVMsRUFFVCxLQUFLLEVBQ0wsUUFBUSxFQU1SLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUc1RSxPQUFPLEVBQXNCLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBR3pELE1BQU0sT0FBTyxnQkFBZ0I7Q0FTNUI7QUFRRCxNQUFNLE9BQU8sbUJBQW1CO0lBcUI1QixJQUNJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUNELElBQUksWUFBWSxDQUFDLEtBQW1CO1FBQ2hDLElBQUksQ0FBQyxhQUFhLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQ0ksbUJBQW1CO1FBQ25CLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ3JDLENBQUM7SUFDRCxJQUFJLG1CQUFtQixDQUFDLEtBQW1CO1FBQ3ZDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFDSSx1QkFBdUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUM7SUFDekMsQ0FBQztJQUNELElBQUksdUJBQXVCLENBQUMsS0FBbUI7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O3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFRixZQUFZO3NCQURmLEtBQUs7Z0JBU0YsbUJBQW1CO3NCQUR0QixLQUFLO2dCQVNGLHVCQUF1QjtzQkFEMUIsS0FBSztnQkFTRixnQ0FBZ0M7c0JBRG5DLEtBQUs7Z0JBU0Ysd0JBQXdCO3NCQUQzQixLQUFLOztBQXFRVixNQUFNLE9BQU8sZ0JBQWdCO3FIQUFoQixnQkFBZ0I7c0hBQWhCLGdCQUFnQixpQkExVGhCLG1CQUFtQixhQXNUbEIsWUFBWSxFQUFFLGFBQWEsYUF0VDVCLG1CQUFtQjtzSEEwVG5CLGdCQUFnQixZQUpmLFlBQVksRUFBRSxhQUFhOztrR0FJNUIsZ0JBQWdCO2tCQUw1QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUM7b0JBQ3RDLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUM5QixZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztpQkFDdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBOZ01vZHVsZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBTaW1wbGVDaGFuZ2UsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBFdWlBcHBTaGVsbFNlcnZpY2UsIGZvcm1hdE51bWJlciB9IGZyb20gJ0BldWkvY29yZSc7XG5pbXBvcnQgeyBFdWlJY29uTW9kdWxlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V1aS1pY29uJztcbmltcG9ydCB7IEV1aVRpbWViYXJJdGVtIH0gZnJvbSAnLi9ldWktdGltZWJhci1pdGVtLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIEV1aVRpbWViYXJJdGVtVUkge1xuICAgIHBlcmM6IG51bWJlcjtcbiAgICBzdGVwVHlwZUNsYXNzOiBzdHJpbmc7XG4gICAgdG9vbHRpcENvbG9yOiBzdHJpbmc7XG4gICAgaXNHcm91cGVkPzogYm9vbGVhbjtcbiAgICBncm91cEluZGV4PzogbnVtYmVyO1xuICAgIGdyb3VwTGFiZWw/OiBzdHJpbmc7XG4gICAgZ3JvdXBFbmREYXRlPzogRGF0ZTtcbiAgICBpdGVtOiBFdWlUaW1lYmFySXRlbTtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktdGltZWJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS10aW1lYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlUaW1lYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdDaGVja2VkLCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgaXRlbXNVSTogRXVpVGltZWJhckl0ZW1VSVtdID0gW107XG4gICAgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIGN1cnJlbnRQZXJjOiBudW1iZXI7XG4gICAgbWFya2VkUGVyYzogbnVtYmVyO1xuICAgIHRpbWViYXJDb2x1bW5DbGFzcyA9ICdjb2wtMTInO1xuICAgIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIGlzU2hvd0xlZ2VuZEdlbmVyYXRlZDogYm9vbGVhbjtcbiAgICBpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkOiBib29sZWFuO1xuICAgIGlzR3JvdXBPdmVybGFwcGluZ0xhYmVsc0dlbmVyYXRlZDogYm9vbGVhbjtcbiAgICBpc01vYmlsZSA9IGZhbHNlO1xuICAgIGlzU29tZVN0ZXBzQXJlR3JvdXBlZCA9IGZhbHNlO1xuICAgIGV4dHJhVGltZWxpbmVMYWJlbFNwYWNlID0gMjE7XG5cbiAgICBAVmlld0NoaWxkKCdjb250YWluZXInKSBjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICAgIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLXRpbWViYXInO1xuICAgIEBJbnB1dCgpIG1hcmtlZERhdGU6IERhdGU7XG4gICAgQElucHV0KCkgaXRlbXM6IEV1aVRpbWViYXJJdGVtW107XG4gICAgQElucHV0KCkgc3RhcnRMYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGVuZExhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZGF0ZUZvcm1hdCA9ICd5eXl5LU1NLWRkJztcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1Nob3dMZWdlbmQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Nob3dMZWdlbmQ7XG4gICAgfVxuICAgIHNldCBpc1Nob3dMZWdlbmQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1Nob3dMZWdlbmQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1Nob3dMZWdlbmQgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1Nob3dMZWdlbmRBc0luZGV4KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNTaG93TGVnZW5kQXNJbmRleDtcbiAgICB9XG4gICAgc2V0IGlzU2hvd0xlZ2VuZEFzSW5kZXgodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1Nob3dMZWdlbmRBc0luZGV4ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNTaG93TGVnZW5kQXNJbmRleCA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNTaG93Q3VycmVudERhdGVNYXJrZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Nob3dDdXJyZW50RGF0ZU1hcmtlcjtcbiAgICB9XG4gICAgc2V0IGlzU2hvd0N1cnJlbnREYXRlTWFya2VyKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNTaG93Q3VycmVudERhdGVNYXJrZXIgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1Nob3dDdXJyZW50RGF0ZU1hcmtlciA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzQ3VycmVudERhdGVNYXJrZXJBbHdheXNJblJhbmdlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNDdXJyZW50RGF0ZU1hcmtlckFsd2F5c0luUmFuZ2U7XG4gICAgfVxuICAgIHNldCBpc0N1cnJlbnREYXRlTWFya2VyQWx3YXlzSW5SYW5nZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzQ3VycmVudERhdGVNYXJrZXJBbHdheXNJblJhbmdlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNDdXJyZW50RGF0ZU1hcmtlckFsd2F5c0luUmFuZ2UgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHM7XG4gICAgfVxuICAgIHNldCBpc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHModmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHMgPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBtYXhTdGVwV2lkdGggPSAxMTI7IC8vIDExMnB4ID0gOHJlbSA9IDIgeCA0cmVtIG1hcmdpbiBhcm91bmQgc3RhcnRpbmcgYW5kIGVuZGluZyBidWxsZXQuXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhc1NlcnZpY2U6IEV1aUFwcFNoZWxsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5hc1NlcnZpY2UuYnJlYWtwb2ludHMkLnN1YnNjcmliZSgoYmtwcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5vbkJyZWFrcG9pbnRDaGFuZ2UoYmtwcyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmVOdWxsSXRlbXMoKTtcbiAgICAgICAgdGhpcy5zb3J0SXRlbXMoKTtcblxuICAgICAgICBjb25zdCBzdGFydERhdGU6IERhdGUgPSB0aGlzLml0ZW1zWzBdLmRhdGU7XG4gICAgICAgIGNvbnN0IGVuZERhdGU6IERhdGUgPSB0aGlzLml0ZW1zW3RoaXMuaXRlbXMubGVuZ3RoIC0gMV0uZGF0ZTtcbiAgICAgICAgdGhpcy5pdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBsZXQgc3RlcFR5cGVDbGFzcyA9ICcnO1xuICAgICAgICAgICAgbGV0IHRvb2x0aXBDb2xvciA9ICdub25lJztcblxuICAgICAgICAgICAgaWYgKGl0ZW0uc3RlcFR5cGUpIHtcbiAgICAgICAgICAgICAgICBzdGVwVHlwZUNsYXNzID0gJ2V1aS10aW1lYmFyX19zdGVwLS0nICsgaXRlbS5zdGVwVHlwZTtcbiAgICAgICAgICAgICAgICB0b29sdGlwQ29sb3IgPSBpdGVtLnN0ZXBUeXBlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBpc051bWJlciA9IC9eXFxkK1xcLlxcZCskLy50ZXN0KGl0ZW0ubGFiZWwpIHx8IC9eXFxkKyQvLnRlc3QoaXRlbS5sYWJlbCk7XG5cbiAgICAgICAgICAgIGlmIChpc051bWJlcikge1xuICAgICAgICAgICAgICAgIGl0ZW0ubGFiZWwgPSBmb3JtYXROdW1iZXIoaXRlbS5sYWJlbCwgMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuaXRlbXNVSS5wdXNoKHtcbiAgICAgICAgICAgICAgICBwZXJjOiB0aGlzLmNhbGN1bGF0ZVBlcmNlbnRhZ2UoaXRlbS5kYXRlLCBzdGFydERhdGUsIGVuZERhdGUpLFxuICAgICAgICAgICAgICAgIGl0ZW0sXG4gICAgICAgICAgICAgICAgc3RlcFR5cGVDbGFzcyxcbiAgICAgICAgICAgICAgICB0b29sdGlwQ29sb3IsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jdXJyZW50UGVyYyA9IHRoaXMuY2FsY3VsYXRlUGVyY2VudGFnZSh0aGlzLmN1cnJlbnREYXRlLCBzdGFydERhdGUsIGVuZERhdGUsIHRydWUpO1xuICAgICAgICB0aGlzLm1hcmtlZFBlcmMgPSB0aGlzLmNhbGN1bGF0ZVBlcmNlbnRhZ2UodGhpcy5tYXJrZWREYXRlLCBzdGFydERhdGUsIGVuZERhdGUsIHRydWUpO1xuXG4gICAgICAgIGlmICh0aGlzLnN0YXJ0TGFiZWwgJiYgdGhpcy5lbmRMYWJlbCkge1xuICAgICAgICAgICAgdGhpcy50aW1lYmFyQ29sdW1uQ2xhc3MgPSAnY29sLTgnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuc3RhcnRMYWJlbCB8fCB0aGlzLmVuZExhYmVsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50aW1lYmFyQ29sdW1uQ2xhc3MgPSAnY29sLTEwJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGluaXRpYWxpemUgYXR0cmlidXRlc1xuICAgICAgICB0aGlzLmlzU2hvd0xlZ2VuZEdlbmVyYXRlZCA9IHRoaXMuaXNTaG93TGVnZW5kO1xuICAgICAgICB0aGlzLmlzU2hvd0xlZ2VuZEFzSW5kZXhHZW5lcmF0ZWQgPSB0aGlzLmlzU2hvd0xlZ2VuZEFzSW5kZXg7XG4gICAgICAgIHRoaXMuaXNHcm91cE92ZXJsYXBwaW5nTGFiZWxzR2VuZXJhdGVkID0gdGhpcy5pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHM7XG4gICAgICAgIHRoaXMuaXNNb2JpbGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ3JvdXBPdmVybGFwcGluZ0xhYmVscygpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzKSB7XG4gICAgICAgICAgICBjb25zdCBjaGFuZ2U6IFNpbXBsZUNoYW5nZSA9IGNoYW5nZXNbJ21hcmtlZERhdGUnXTtcbiAgICAgICAgICAgIGlmIChjaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydERhdGU6IERhdGUgPSB0aGlzLml0ZW1zWzBdLmRhdGU7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5kRGF0ZTogRGF0ZSA9IHRoaXMuaXRlbXNbdGhpcy5pdGVtcy5sZW5ndGggLSAxXS5kYXRlO1xuICAgICAgICAgICAgICAgIHRoaXMubWFya2VkUGVyYyA9IHRoaXMuY2FsY3VsYXRlUGVyY2VudGFnZShjaGFuZ2UuY3VycmVudFZhbHVlIGFzIERhdGUsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBvbkJyZWFrcG9pbnRDaGFuZ2UoYmtwczogYW55KTogdm9pZCB7XG4gICAgICAgIGlmIChia3BzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd0xlZ2VuZEdlbmVyYXRlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd0xlZ2VuZEFzSW5kZXhHZW5lcmF0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5pc01vYmlsZSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd0xlZ2VuZEdlbmVyYXRlZCA9IHRoaXMuaXNTaG93TGVnZW5kO1xuICAgICAgICAgICAgdGhpcy5pc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkID0gdGhpcy5pc1Nob3dMZWdlbmRBc0luZGV4O1xuICAgICAgICAgICAgdGhpcy5pc01vYmlsZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIGl0ZW06IEV1aVRpbWViYXJJdGVtVUkpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaXRlbS5pdGVtLmxhYmVsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZW1vdmVOdWxsSXRlbXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXRlbXNbaV0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgICAgIGktLTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc29ydEl0ZW1zKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pdGVtcykge1xuICAgICAgICAgICAgLy8gU29ydCBieSBhc2NlbmRpbmcgZGF0ZTpcbiAgICAgICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLml0ZW1zLnNvcnQoKGE6IEV1aVRpbWViYXJJdGVtLCBiOiBFdWlUaW1lYmFySXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChhICYmIGIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gPGFueT5hLmRhdGUgLSA8YW55PmIuZGF0ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBncm91cE92ZXJsYXBwaW5nTGFiZWxzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHNHZW5lcmF0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJHcm91cGluZygpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5jb250YWluZXIgJiYgdGhpcy5pdGVtc1VJICYmIHRoaXMuaXNTaG93TGVnZW5kQXNJbmRleEdlbmVyYXRlZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gY29udGFpbmVyRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICAvLyBjb25zdCBncm91cGluZ1RocmVzaG9sZCA9IHRoaXMubWF4U3RlcFdpZHRoIC8gMjtcbiAgICAgICAgICAgICAgICBjb25zdCBncm91cGluZ1RocmVzaG9sZCA9ICh0aGlzLm1heFN0ZXBXaWR0aCAqIDEwMCkgLyBjb250YWluZXJXaWR0aDtcbiAgICAgICAgICAgICAgICBsZXQgZ3JvdXBpbmdDb3VudGVyID0gMDtcbiAgICAgICAgICAgICAgICBsZXQgbW9iaWxlSW5kZXhEaXNwbGFjZW1lbnQgPSAwO1xuICAgICAgICAgICAgICAgIGxldCBwcmV2aW91c1VpSXRlbSA9IG51bGw7XG4gICAgICAgICAgICAgICAgbGV0IGxhc3RNb2JpbGVJbmRleCA9IDA7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuaXRlbXNVSS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1aUl0ZW0gPSB0aGlzLml0ZW1zVUlbaV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c1VpSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBNYXRoLmFicyh1aUl0ZW0ucGVyYyAtIHByZXZpb3VzVWlJdGVtLnBlcmMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpc3RhbmNlIDw9IGdyb3VwaW5nVGhyZXNob2xkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gR3JvdXAgdGhlIDIgaXRlbXM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPiAwICYmIHRoaXMuaXRlbXNVSVtpIC0gMV0uaXNHcm91cGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vYmlsZUluZGV4RGlzcGxhY2VtZW50ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNTaG93TGVnZW5kR2VuZXJhdGVkICYmIG1vYmlsZUluZGV4RGlzcGxhY2VtZW50IDw9IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vYmlsZUluZGV4RGlzcGxhY2VtZW50ID0gZ3JvdXBpbmdDb3VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdE1vYmlsZUluZGV4ID0gbW9iaWxlSW5kZXhEaXNwbGFjZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBpbmdDb3VudGVyID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cGluZ0NvdW50ZXIrKztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcHJldmlvdXNVaUl0ZW0uZ3JvdXBMYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1VpSXRlbS5ncm91cEluZGV4ID0gZ3JvdXBpbmdDb3VudGVyICsgbGFzdE1vYmlsZUluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNTaG93TGVnZW5kR2VuZXJhdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1VpSXRlbS5ncm91cExhYmVsID0gJycgKyAobGFzdE1vYmlsZUluZGV4ICsgZ3JvdXBpbmdDb3VudGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVWlJdGVtLmdyb3VwTGFiZWwgPSAnJyArIGk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBpbmdDb3VudGVyKys7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc1Nob3dMZWdlbmRHZW5lcmF0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0uZ3JvdXBMYWJlbCArPSAnLCAnICsgKGxhc3RNb2JpbGVJbmRleCArIGdyb3VwaW5nQ291bnRlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0uZ3JvdXBMYWJlbCArPSAnLCAnICsgKGkgKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0uZ3JvdXBFbmREYXRlID0gdWlJdGVtLml0ZW0uZGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1VpSXRlbS5zdGVwVHlwZUNsYXNzID0gdWlJdGVtLml0ZW0uc3RlcFR5cGU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aUl0ZW0uaXNHcm91cGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aUl0ZW0uZ3JvdXBJbmRleCA9IGdyb3VwaW5nQ291bnRlciArIGxhc3RNb2JpbGVJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU29tZVN0ZXBzQXJlR3JvdXBlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVWlJdGVtID0gdWlJdGVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0gPSB1aUl0ZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY2xlYXJHcm91cGluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1NvbWVTdGVwc0FyZUdyb3VwZWQgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXNVSSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuaXRlbXNVSSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLmlzR3JvdXBlZDtcbiAgICAgICAgICAgICAgICBkZWxldGUgaXRlbS5ncm91cEluZGV4O1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLmdyb3VwTGFiZWw7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0uZ3JvdXBFbmREYXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZXh0cmFUaW1lbGluZUxhYmVsU3BhY2UgPSAyMTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY2FsY3VsYXRlRXh0cmFUaW1lbGluZUxhYmVsU3BhY2UoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zVUkpIHtcbiAgICAgICAgICAgIGxldCBtYXhMYWJlbExlbmd0aCA9IDA7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5pdGVtc1VJKSB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uaXRlbSAmJiBpdGVtLml0ZW0ubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4TGFiZWxMZW5ndGggPSBNYXRoLm1heChtYXhMYWJlbExlbmd0aCwgaXRlbS5pdGVtLmxhYmVsLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobWF4TGFiZWxMZW5ndGggPiA1Nikge1xuICAgICAgICAgICAgICAgIC8vIDU2cHggPSA0cmVtIG1hcmdpbiBvZiB0aGUgdGltZWxpbmUgaXRzZWxmLlxuICAgICAgICAgICAgICAgIHRoaXMuZXh0cmFUaW1lbGluZUxhYmVsU3BhY2UgPSBtYXhMYWJlbExlbmd0aCArIDI4OyAvLyAyOHB4ID0gMnJlbSA9IDEgbGluZSBvZiB0ZXh0IGluIGhlaWdodCArIG1hcmdpbnNcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjYWxjdWxhdGVQZXJjZW50YWdlKGRhdGU6IERhdGUsIHN0YXJ0RGF0ZTogRGF0ZSwgZW5kRGF0ZTogRGF0ZSwgY29tcGVuc2F0ZUZvclJhbmdlID0gZmFsc2UpOiBudW1iZXIge1xuICAgICAgICBpZiAoZGF0ZSAmJiBzdGFydERhdGUgJiYgZW5kRGF0ZSkge1xuICAgICAgICAgICAgbGV0IHBlcmNlbnRhZ2UgPSAoKGRhdGUuZ2V0VGltZSgpIC0gc3RhcnREYXRlLmdldFRpbWUoKSkgLyAoZW5kRGF0ZS5nZXRUaW1lKCkgLSBzdGFydERhdGUuZ2V0VGltZSgpKSkgKiAxMDA7XG5cbiAgICAgICAgICAgIGlmIChjb21wZW5zYXRlRm9yUmFuZ2UpIHtcbiAgICAgICAgICAgICAgICAvLyBpZiB0aGUgZGF0ZSBpcyBvdmVyIHRoZSBlbmQgZGF0ZSwgb3IgYmVsb3cgdGhlIHN0YXJ0IGRhdGVcbiAgICAgICAgICAgICAgICAvLyBzaW11bGF0ZSBpdHMgcG9zaXRpb25pbmcgdG8gbm90IG1lc3MgdXAgdGhlIHRpbWViYXIgZ2xvYmFsIHdpZHRoXG4gICAgICAgICAgICAgICAgaWYgKHBlcmNlbnRhZ2UgPiAxMDApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNDdXJyZW50RGF0ZU1hcmtlckFsd2F5c0luUmFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmNlbnRhZ2UgPSAxMDA7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50YWdlID0gMTAzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwZXJjZW50YWdlIDw9IDApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNDdXJyZW50RGF0ZU1hcmtlckFsd2F5c0luUmFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmNlbnRhZ2UgPSAwO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVyY2VudGFnZSA9IC0zO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcGVyY2VudGFnZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEV1aUljb25Nb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtFdWlUaW1lYmFyQ29tcG9uZW50XSxcbiAgICBkZWNsYXJhdGlvbnM6IFtFdWlUaW1lYmFyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpVGltZWJhck1vZHVsZSB7fVxuIiwiPGRpdiBjbGFzcz1cInJvdyBldWktdS1mbGV4XCIgI2NvbnRhaW5lcj5cbiAgICA8ZGl2ICpuZ0lmPVwic3RhcnRMYWJlbFwiIGNsYXNzPVwiY29sLTIgZXVpLXRpbWViYXJfX3N0YXJ0LWxhYmVsXCI+XG4gICAgICAgIHt7IHN0YXJ0TGFiZWwgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwie3sgdGltZWJhckNvbHVtbkNsYXNzIH19XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGltZWJhclwiIFtzdHlsZS5tYXJnaW5Cb3R0b20ucHhdPVwiZXh0cmFUaW1lbGluZUxhYmVsU3BhY2VcIiBhdHRyLmRhdGEtZTJlPVwie3sgZTJlQXR0ciB9fVwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNTaG93Q3VycmVudERhdGVNYXJrZXJcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXRpbWViYXJfX2N1cnJlbnQtcHJvZ3Jlc3NcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aC4lXT1cImN1cnJlbnRQZXJjID49IDEwMCA/IDEwMCA6IGN1cnJlbnRQZXJjXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibWFya2VkRGF0ZVwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX2N1cnJlbnQtcHJvZ3Jlc3NcIiBbc3R5bGUud2lkdGguJV09XCJtYXJrZWRQZXJjID49IDEwMCA/IDEwMCA6IG1hcmtlZFBlcmNcIj48L2Rpdj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCIhaXNNb2JpbGVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zVUk7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uaXNHcm91cGVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldWktdGltZWJhcl9fc3RlcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS5zdGVwVHlwZUNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUubGVmdC4lXT1cIml0ZW0ucGVyY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10aW1lYmFyX19zdGVwLS13aXRoLWN1cnJlbnQtZGF0ZS1tYXJrZXJdPVwiaXNTaG93Q3VycmVudERhdGVNYXJrZXIgfHwgbWFya2VkRGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGltZWJhcl9fc3RlcC1kYXRlLWl0ZW1cIiBbY2xhc3MuZXVpLXRpbWViYXJfX3N0ZXAtZGF0ZS1pdGVtLS13aXRoLWVuZC1kYXRlXT1cIml0ZW0uZ3JvdXBFbmREYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uZ3JvdXBFbmREYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXRpbWViYXJfX2dyb3VwZWRfX3N0ZXAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnN0ZXBUeXBlQ2xhc3MgPyAnZXVpLXRpbWViYXJfX3N0ZXAtLScgKyBpdGVtLnN0ZXBUeXBlQ2xhc3MgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZ3JvdXBFbmREYXRlIHwgZGF0ZTogZGF0ZUZvcm1hdCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7IGl0ZW0udG9vbHRpcENvbG9yID8gJ2V1aS10aW1lYmFyX19zdGVwLS0nICsgaXRlbS50b29sdGlwQ29sb3IgOiAnJyB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRpbWViYXJfX2dyb3VwZWRfX3N0ZXBdPVwiaXRlbS5ncm91cEVuZERhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uaXRlbS5kYXRlIHwgZGF0ZTogZGF0ZUZvcm1hdCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc1Nob3dMZWdlbmRHZW5lcmF0ZWRcIiBbc3R5bGUubGVmdC4lXT1cIml0ZW0ucGVyY1wiIGNsYXNzPVwiZXVpLXRpbWViYXJfX3N0ZXAtbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtLmdyb3VwTGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHRpdGxlPVwie3sgaXRlbS5pdGVtLmxhYmVsIH19XCI+e3sgaXRlbS5pdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdGl0bGU9XCJ7eyBpdGVtLmdyb3VwTGFiZWwgfX1cIj57eyBpdGVtLmdyb3VwTGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc1Nob3dMZWdlbmRHZW5lcmF0ZWQgJiYgaXNTaG93TGVnZW5kQXNJbmRleEdlbmVyYXRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LiVdPVwiaXRlbS5wZXJjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldWktdGltZWJhcl9fc3RlcC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaSArIDEgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmdyb3VwTGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZ3JvdXBMYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJpc01vYmlsZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNVSTsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXRlbS5pc0dyb3VwZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10aW1lYmFyX19zdGVwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLnN0ZXBUeXBlQ2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LiVdPVwiaXRlbS5wZXJjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRpbWViYXJfX3N0ZXAtLXdpdGgtY3VycmVudC1kYXRlLW1hcmtlcl09XCJpc1Nob3dDdXJyZW50RGF0ZU1hcmtlciB8fCBtYXJrZWREYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc1Nob3dMZWdlbmRHZW5lcmF0ZWRcIiBjbGFzcz1cImV1aS10aW1lYmFyX19zdGVwLWxhYmVsXCIgdGl0bGU9XCJ7eyBpdGVtLml0ZW0ubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtLmdyb3VwTGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHRpdGxlPVwie3sgaXRlbS5pdGVtLmxhYmVsIH19XCI+e3sgaXRlbS5pdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5ncm91cExhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc1Nob3dMZWdlbmRHZW5lcmF0ZWQgJiYgaXNTaG93TGVnZW5kQXNJbmRleEdlbmVyYXRlZFwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX3N0ZXAtbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtLmdyb3VwTGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkgKyAxIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5ncm91cExhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmdyb3VwTGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc1Nob3dDdXJyZW50RGF0ZU1hcmtlclwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJldWktdGltZWJhcl9fY3VycmVudC1kYXRlLW1hcmtlclwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQuJV09XCJjdXJyZW50UGVyY1wiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyBjdXJyZW50RGF0ZSB8IGRhdGU6IGRhdGVGb3JtYXQgfX1cIj5cbiAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJsb2NhdGlvblwiIHNldD1cInNoYXJwXCIgc2l6ZT1cIm1cIiBmaWxsQ29sb3I9XCJkYW5nZXItMTAwXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc1Nob3dDdXJyZW50RGF0ZU1hcmtlclwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX2N1cnJlbnQtZGF0ZS1tYXJrZXItc3RlcFwiIFtzdHlsZS5sZWZ0LiVdPVwiY3VycmVudFBlcmNcIj5cbiAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktZWxsaXBzZVwiIHNldD1cImV1aVwiIHNpemU9XCJzXCIgZmlsbENvbG9yPVwiZGFuZ2VyLTEwMFwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJtYXJrZWREYXRlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10aW1lYmFyX19jdXJyZW50LWRhdGUtbWFya2VyXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUubGVmdC4lXT1cIm1hcmtlZFBlcmNcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgbWFya2VkRGF0ZSB8IGRhdGU6IGRhdGVGb3JtYXQgfX1cIj5cbiAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJsb2NhdGlvblwiIHNldD1cInNoYXJwXCIgc2l6ZT1cIm1cIiBmaWxsQ29sb3I9XCJkYW5nZXItMTAwXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtYXJrZWREYXRlXCIgY2xhc3M9XCJldWktdGltZWJhcl9fY3VycmVudC1kYXRlLW1hcmtlci1zdGVwXCIgW3N0eWxlLmxlZnQuJV09XCJtYXJrZWRQZXJjXCI+XG4gICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLWVsbGlwc2VcIiBzZXQ9XCJldWlcIiBzaXplPVwic1wiIGZpbGxDb2xvcj1cImRhbmdlci0xMDBcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiZW5kTGFiZWxcIiBjbGFzcz1cImNvbC0yIGV1aS10aW1lYmFyX19lbmQtbGFiZWxcIj5cbiAgICAgICAge3sgZW5kTGFiZWwgfX1cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInJvdyBldWktdS1mbGV4XCI+XG4gICAgPGRpdiAqbmdJZj1cInN0YXJ0TGFiZWxcIiBjbGFzcz1cImNvbC0yXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInt7IHRpbWViYXJDb2x1bW5DbGFzcyB9fVwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNTaG93TGVnZW5kR2VuZXJhdGVkIHx8IGlzU29tZVN0ZXBzQXJlR3JvdXBlZFwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX2xlZ2VuZFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2hvd0xlZ2VuZEdlbmVyYXRlZFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kLWl0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1VJOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkXCIgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kLWl0ZW0taWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLWVsbGlwc2VcIiBzZXQ9XCJldWlcIiBzaXplPVwic1wiIGZpbGxDb2xvcj1cInt7IGl0ZW0uaXRlbS5zdGVwVHlwZSB9fVwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzU2hvd0xlZ2VuZEFzSW5kZXhHZW5lcmF0ZWRcIiBjbGFzcz1cImV1aS10aW1lYmFyX19sZWdlbmQtaXRlbS1pbmRleC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpICsgMSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10aW1lYmFyX19sZWdlbmQtaXRlbS1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImlzTW9iaWxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz57eyBpdGVtLml0ZW0uZGF0ZSB8IGRhdGU6IGRhdGVGb3JtYXQgfX08L3N0cm9uZz4gLSB7eyBpdGVtLml0ZW0ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiIWlzTW9iaWxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5pdGVtLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1Nob3dMZWdlbmRHZW5lcmF0ZWRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zVUk7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS5ncm91cExhYmVsIHx8IGl0ZW0uaXNHcm91cGVkXCIgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kLWl0ZW0taW5kZXgtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZ3JvdXBJbmRleCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRpbWViYXJfX2xlZ2VuZC1pdGVtLWxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz57eyBpdGVtLml0ZW0uZGF0ZSB8IGRhdGU6IGRhdGVGb3JtYXQgfX08L3N0cm9uZz4gLSB7eyBpdGVtLml0ZW0ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiZW5kTGFiZWxcIiBjbGFzcz1cImNvbC0yXCI+PC9kaXY+XG48L2Rpdj5cbiJdfQ==
302
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRpbWViYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXRpbWViYXIvZXVpLXRpbWViYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXRpbWViYXIvZXVpLXRpbWViYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlILFNBQVMsRUFFVCxLQUFLLEVBQ0wsUUFBUSxFQU1SLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUcvQyxPQUFPLEVBQXNCLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBR3pELE1BQU0sT0FBTyxnQkFBZ0I7Q0FTNUI7QUFRRCxNQUFNLE9BQU8sbUJBQW1CO0lBOEI1QixZQUNZLFNBQTZCLEVBQzdCLEVBQXFCO1FBRHJCLGNBQVMsR0FBVCxTQUFTLENBQW9CO1FBQzdCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBL0JqQyxZQUFPLEdBQXVCLEVBQUUsQ0FBQztRQUNqQyxnQkFBVyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFHekIsdUJBQWtCLEdBQUcsUUFBUSxDQUFDO1FBSzlCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLDRCQUF1QixHQUFHLEVBQUUsQ0FBQztRQUdwQixZQUFPLEdBQUcsYUFBYSxDQUFDO1FBS3hCLGVBQVUsR0FBRyxZQUFZLENBQUM7UUFFSyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQix3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDM0IsNEJBQXVCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLHFDQUFnQyxHQUFHLEtBQUssQ0FBQztRQUN6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LFxuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgTmdNb2R1bGUsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgU2ltcGxlQ2hhbmdlLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBFdWlBcHBTaGVsbFNlcnZpY2UsIGZvcm1hdE51bWJlciB9IGZyb20gJ0BldWkvY29yZSc7XG5pbXBvcnQgeyBFdWlJY29uTW9kdWxlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V1aS1pY29uJztcbmltcG9ydCB7IEV1aVRpbWViYXJJdGVtIH0gZnJvbSAnLi9ldWktdGltZWJhci1pdGVtLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIEV1aVRpbWViYXJJdGVtVUkge1xuICAgIHBlcmM6IG51bWJlcjtcbiAgICBzdGVwVHlwZUNsYXNzOiBzdHJpbmc7XG4gICAgdG9vbHRpcENvbG9yOiBzdHJpbmc7XG4gICAgaXNHcm91cGVkPzogYm9vbGVhbjtcbiAgICBncm91cEluZGV4PzogbnVtYmVyO1xuICAgIGdyb3VwTGFiZWw/OiBzdHJpbmc7XG4gICAgZ3JvdXBFbmREYXRlPzogRGF0ZTtcbiAgICBpdGVtOiBFdWlUaW1lYmFySXRlbTtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktdGltZWJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS10aW1lYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlUaW1lYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdDaGVja2VkLCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgaXRlbXNVSTogRXVpVGltZWJhckl0ZW1VSVtdID0gW107XG4gICAgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIGN1cnJlbnRQZXJjOiBudW1iZXI7XG4gICAgbWFya2VkUGVyYzogbnVtYmVyO1xuICAgIHRpbWViYXJDb2x1bW5DbGFzcyA9ICdjb2wtMTInO1xuICAgIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIGlzU2hvd0xlZ2VuZEdlbmVyYXRlZDogYm9vbGVhbjtcbiAgICBpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkOiBib29sZWFuO1xuICAgIGlzR3JvdXBPdmVybGFwcGluZ0xhYmVsc0dlbmVyYXRlZDogYm9vbGVhbjtcbiAgICBpc01vYmlsZSA9IGZhbHNlO1xuICAgIGlzU29tZVN0ZXBzQXJlR3JvdXBlZCA9IGZhbHNlO1xuICAgIGV4dHJhVGltZWxpbmVMYWJlbFNwYWNlID0gMjE7XG5cbiAgICBAVmlld0NoaWxkKCdjb250YWluZXInKSBjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICAgIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLXRpbWViYXInO1xuICAgIEBJbnB1dCgpIG1hcmtlZERhdGU6IERhdGU7XG4gICAgQElucHV0KCkgaXRlbXM6IEV1aVRpbWViYXJJdGVtW107XG4gICAgQElucHV0KCkgc3RhcnRMYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGVuZExhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZGF0ZUZvcm1hdCA9ICd5eXl5LU1NLWRkJztcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc1Nob3dMZWdlbmQgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNTaG93TGVnZW5kQXNJbmRleCA9IHRydWU7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzU2hvd0N1cnJlbnREYXRlTWFya2VyID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzQ3VycmVudERhdGVNYXJrZXJBbHdheXNJblJhbmdlID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzR3JvdXBPdmVybGFwcGluZ0xhYmVscyA9IGZhbHNlO1xuXG4gICAgcHJvdGVjdGVkIG1heFN0ZXBXaWR0aCA9IDExMjsgLy8gMTEycHggPSA4cmVtID0gMiB4IDRyZW0gbWFyZ2luIGFyb3VuZCBzdGFydGluZyBhbmQgZW5kaW5nIGJ1bGxldC5cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGFzU2VydmljZTogRXVpQXBwU2hlbGxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmFzU2VydmljZS5icmVha3BvaW50cyQuc3Vic2NyaWJlKChia3BzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uQnJlYWtwb2ludENoYW5nZShia3BzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZU51bGxJdGVtcygpO1xuICAgICAgICB0aGlzLnNvcnRJdGVtcygpO1xuXG4gICAgICAgIGNvbnN0IHN0YXJ0RGF0ZTogRGF0ZSA9IHRoaXMuaXRlbXNbMF0uZGF0ZTtcbiAgICAgICAgY29uc3QgZW5kRGF0ZTogRGF0ZSA9IHRoaXMuaXRlbXNbdGhpcy5pdGVtcy5sZW5ndGggLSAxXS5kYXRlO1xuICAgICAgICB0aGlzLml0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGxldCBzdGVwVHlwZUNsYXNzID0gJyc7XG4gICAgICAgICAgICBsZXQgdG9vbHRpcENvbG9yID0gJ25vbmUnO1xuXG4gICAgICAgICAgICBpZiAoaXRlbS5zdGVwVHlwZSkge1xuICAgICAgICAgICAgICAgIHN0ZXBUeXBlQ2xhc3MgPSAnZXVpLXRpbWViYXJfX3N0ZXAtLScgKyBpdGVtLnN0ZXBUeXBlO1xuICAgICAgICAgICAgICAgIHRvb2x0aXBDb2xvciA9IGl0ZW0uc3RlcFR5cGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGlzTnVtYmVyID0gL15cXGQrXFwuXFxkKyQvLnRlc3QoaXRlbS5sYWJlbCkgfHwgL15cXGQrJC8udGVzdChpdGVtLmxhYmVsKTtcblxuICAgICAgICAgICAgaWYgKGlzTnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5sYWJlbCA9IGZvcm1hdE51bWJlcihpdGVtLmxhYmVsLCAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5pdGVtc1VJLnB1c2goe1xuICAgICAgICAgICAgICAgIHBlcmM6IHRoaXMuY2FsY3VsYXRlUGVyY2VudGFnZShpdGVtLmRhdGUsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSksXG4gICAgICAgICAgICAgICAgaXRlbSxcbiAgICAgICAgICAgICAgICBzdGVwVHlwZUNsYXNzLFxuICAgICAgICAgICAgICAgIHRvb2x0aXBDb2xvcixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmN1cnJlbnRQZXJjID0gdGhpcy5jYWxjdWxhdGVQZXJjZW50YWdlKHRoaXMuY3VycmVudERhdGUsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSwgdHJ1ZSk7XG4gICAgICAgIHRoaXMubWFya2VkUGVyYyA9IHRoaXMuY2FsY3VsYXRlUGVyY2VudGFnZSh0aGlzLm1hcmtlZERhdGUsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSwgdHJ1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMuc3RhcnRMYWJlbCAmJiB0aGlzLmVuZExhYmVsKSB7XG4gICAgICAgICAgICB0aGlzLnRpbWViYXJDb2x1bW5DbGFzcyA9ICdjb2wtOCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zdGFydExhYmVsIHx8IHRoaXMuZW5kTGFiZWwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWViYXJDb2x1bW5DbGFzcyA9ICdjb2wtMTAnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gaW5pdGlhbGl6ZSBhdHRyaWJ1dGVzXG4gICAgICAgIHRoaXMuaXNTaG93TGVnZW5kR2VuZXJhdGVkID0gdGhpcy5pc1Nob3dMZWdlbmQ7XG4gICAgICAgIHRoaXMuaXNTaG93TGVnZW5kQXNJbmRleEdlbmVyYXRlZCA9IHRoaXMuaXNTaG93TGVnZW5kQXNJbmRleDtcbiAgICAgICAgdGhpcy5pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHNHZW5lcmF0ZWQgPSB0aGlzLmlzR3JvdXBPdmVybGFwcGluZ0xhYmVscztcbiAgICAgICAgdGhpcy5pc01vYmlsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ncm91cE92ZXJsYXBwaW5nTGFiZWxzKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZTogU2ltcGxlQ2hhbmdlID0gY2hhbmdlc1snbWFya2VkRGF0ZSddO1xuICAgICAgICAgICAgaWYgKGNoYW5nZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0RGF0ZTogRGF0ZSA9IHRoaXMuaXRlbXNbMF0uZGF0ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmREYXRlOiBEYXRlID0gdGhpcy5pdGVtc1t0aGlzLml0ZW1zLmxlbmd0aCAtIDFdLmRhdGU7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXJrZWRQZXJjID0gdGhpcy5jYWxjdWxhdGVQZXJjZW50YWdlKGNoYW5nZS5jdXJyZW50VmFsdWUgYXMgRGF0ZSwgc3RhcnREYXRlLCBlbmREYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIG9uQnJlYWtwb2ludENoYW5nZShia3BzOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKGJrcHMuaXNNb2JpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuaXNTaG93TGVnZW5kR2VuZXJhdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuaXNTaG93TGVnZW5kQXNJbmRleEdlbmVyYXRlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmlzTW9iaWxlID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNTaG93TGVnZW5kR2VuZXJhdGVkID0gdGhpcy5pc1Nob3dMZWdlbmQ7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd0xlZ2VuZEFzSW5kZXhHZW5lcmF0ZWQgPSB0aGlzLmlzU2hvd0xlZ2VuZEFzSW5kZXg7XG4gICAgICAgICAgICB0aGlzLmlzTW9iaWxlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogRXVpVGltZWJhckl0ZW1VSSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBpdGVtLml0ZW0ubGFiZWw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlbW92ZU51bGxJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXMpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5pdGVtc1tpXSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgaS0tO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBzb3J0SXRlbXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zKSB7XG4gICAgICAgICAgICAvLyBTb3J0IGJ5IGFzY2VuZGluZyBkYXRlOlxuICAgICAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuaXRlbXMuc29ydCgoYTogRXVpVGltZWJhckl0ZW0sIGI6IEV1aVRpbWViYXJJdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGEgJiYgYikge1xuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA8YW55PmEuZGF0ZSAtIDxhbnk+Yi5kYXRlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdyb3VwT3ZlcmxhcHBpbmdMYWJlbHMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzR3JvdXBPdmVybGFwcGluZ0xhYmVsc0dlbmVyYXRlZCkge1xuICAgICAgICAgICAgdGhpcy5jbGVhckdyb3VwaW5nKCk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmNvbnRhaW5lciAmJiB0aGlzLml0ZW1zVUkgJiYgdGhpcy5pc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFpbmVyRWxlbWVudCA9IHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSBjb250YWluZXJFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICAgICAgICAgIC8vIGNvbnN0IGdyb3VwaW5nVGhyZXNob2xkID0gdGhpcy5tYXhTdGVwV2lkdGggLyAyO1xuICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwaW5nVGhyZXNob2xkID0gKHRoaXMubWF4U3RlcFdpZHRoICogMTAwKSAvIGNvbnRhaW5lcldpZHRoO1xuICAgICAgICAgICAgICAgIGxldCBncm91cGluZ0NvdW50ZXIgPSAwO1xuICAgICAgICAgICAgICAgIGxldCBtb2JpbGVJbmRleERpc3BsYWNlbWVudCA9IDA7XG4gICAgICAgICAgICAgICAgbGV0IHByZXZpb3VzVWlJdGVtID0gbnVsbDtcbiAgICAgICAgICAgICAgICBsZXQgbGFzdE1vYmlsZUluZGV4ID0gMDtcblxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5pdGVtc1VJLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpSXRlbSA9IHRoaXMuaXRlbXNVSVtpXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzVWlJdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9IE1hdGguYWJzKHVpSXRlbS5wZXJjIC0gcHJldmlvdXNVaUl0ZW0ucGVyYyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGlzdGFuY2UgPD0gZ3JvdXBpbmdUaHJlc2hvbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBHcm91cCB0aGUgMiBpdGVtczpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSA+IDAgJiYgdGhpcy5pdGVtc1VJW2kgLSAxXS5pc0dyb3VwZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9iaWxlSW5kZXhEaXNwbGFjZW1lbnQgPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc1Nob3dMZWdlbmRHZW5lcmF0ZWQgJiYgbW9iaWxlSW5kZXhEaXNwbGFjZW1lbnQgPD0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9iaWxlSW5kZXhEaXNwbGFjZW1lbnQgPSBncm91cGluZ0NvdW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0TW9iaWxlSW5kZXggPSBtb2JpbGVJbmRleERpc3BsYWNlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cGluZ0NvdW50ZXIgPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwaW5nQ291bnRlcisrO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwcmV2aW91c1VpSXRlbS5ncm91cExhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVWlJdGVtLmdyb3VwSW5kZXggPSBncm91cGluZ0NvdW50ZXIgKyBsYXN0TW9iaWxlSW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc1Nob3dMZWdlbmRHZW5lcmF0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVWlJdGVtLmdyb3VwTGFiZWwgPSAnJyArIChsYXN0TW9iaWxlSW5kZXggKyBncm91cGluZ0NvdW50ZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0uZ3JvdXBMYWJlbCA9ICcnICsgaTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cGluZ0NvdW50ZXIrKztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzU2hvd0xlZ2VuZEdlbmVyYXRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1VpSXRlbS5ncm91cExhYmVsICs9ICcsICcgKyAobGFzdE1vYmlsZUluZGV4ICsgZ3JvdXBpbmdDb3VudGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1VpSXRlbS5ncm91cExhYmVsICs9ICcsICcgKyAoaSArIDEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1VpSXRlbS5ncm91cEVuZERhdGUgPSB1aUl0ZW0uaXRlbS5kYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVWlJdGVtLnN0ZXBUeXBlQ2xhc3MgPSB1aUl0ZW0uaXRlbS5zdGVwVHlwZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpSXRlbS5pc0dyb3VwZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpSXRlbS5ncm91cEluZGV4ID0gZ3JvdXBpbmdDb3VudGVyICsgbGFzdE1vYmlsZUluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNTb21lU3RlcHNBcmVHcm91cGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0gPSB1aUl0ZW07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1VpSXRlbSA9IHVpSXRlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjbGVhckdyb3VwaW5nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzU29tZVN0ZXBzQXJlR3JvdXBlZCA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy5pdGVtc1VJKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5pdGVtc1VJKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0uaXNHcm91cGVkO1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLmdyb3VwSW5kZXg7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0uZ3JvdXBMYWJlbDtcbiAgICAgICAgICAgICAgICBkZWxldGUgaXRlbS5ncm91cEVuZERhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5leHRyYVRpbWVsaW5lTGFiZWxTcGFjZSA9IDIxO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjYWxjdWxhdGVFeHRyYVRpbWVsaW5lTGFiZWxTcGFjZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXNVSSkge1xuICAgICAgICAgICAgbGV0IG1heExhYmVsTGVuZ3RoID0gMDtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLml0ZW1zVUkpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5pdGVtICYmIGl0ZW0uaXRlbS5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICBtYXhMYWJlbExlbmd0aCA9IE1hdGgubWF4KG1heExhYmVsTGVuZ3RoLCBpdGVtLml0ZW0ubGFiZWwubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChtYXhMYWJlbExlbmd0aCA+IDU2KSB7XG4gICAgICAgICAgICAgICAgLy8gNTZweCA9IDRyZW0gbWFyZ2luIG9mIHRoZSB0aW1lbGluZSBpdHNlbGYuXG4gICAgICAgICAgICAgICAgdGhpcy5leHRyYVRpbWVsaW5lTGFiZWxTcGFjZSA9IG1heExhYmVsTGVuZ3RoICsgMjg7IC8vIDI4cHggPSAycmVtID0gMSBsaW5lIG9mIHRleHQgaW4gaGVpZ2h0ICsgbWFyZ2luc1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNhbGN1bGF0ZVBlcmNlbnRhZ2UoZGF0ZTogRGF0ZSwgc3RhcnREYXRlOiBEYXRlLCBlbmREYXRlOiBEYXRlLCBjb21wZW5zYXRlRm9yUmFuZ2UgPSBmYWxzZSk6IG51bWJlciB7XG4gICAgICAgIGlmIChkYXRlICYmIHN0YXJ0RGF0ZSAmJiBlbmREYXRlKSB7XG4gICAgICAgICAgICBsZXQgcGVyY2VudGFnZSA9ICgoZGF0ZS5nZXRUaW1lKCkgLSBzdGFydERhdGUuZ2V0VGltZSgpKSAvIChlbmREYXRlLmdldFRpbWUoKSAtIHN0YXJ0RGF0ZS5nZXRUaW1lKCkpKSAqIDEwMDtcblxuICAgICAgICAgICAgaWYgKGNvbXBlbnNhdGVGb3JSYW5nZSkge1xuICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBkYXRlIGlzIG92ZXIgdGhlIGVuZCBkYXRlLCBvciBiZWxvdyB0aGUgc3RhcnQgZGF0ZVxuICAgICAgICAgICAgICAgIC8vIHNpbXVsYXRlIGl0cyBwb3NpdGlvbmluZyB0byBub3QgbWVzcyB1cCB0aGUgdGltZWJhciBnbG9iYWwgd2lkdGhcbiAgICAgICAgICAgICAgICBpZiAocGVyY2VudGFnZSA+IDEwMCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0N1cnJlbnREYXRlTWFya2VyQWx3YXlzSW5SYW5nZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVyY2VudGFnZSA9IDEwMDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmNlbnRhZ2UgPSAxMDM7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBlcmNlbnRhZ2UgPD0gMCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0N1cnJlbnREYXRlTWFya2VyQWx3YXlzSW5SYW5nZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVyY2VudGFnZSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50YWdlID0gLTM7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBwZXJjZW50YWdlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRXVpSWNvbk1vZHVsZV0sXG4gICAgZXhwb3J0czogW0V1aVRpbWViYXJDb21wb25lbnRdLFxuICAgIGRlY2xhcmF0aW9uczogW0V1aVRpbWViYXJDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlUaW1lYmFyTW9kdWxlIHt9XG4iLCI8ZGl2IGNsYXNzPVwicm93IGV1aS11LWZsZXhcIiAjY29udGFpbmVyPlxuICAgIDxkaXYgKm5nSWY9XCJzdGFydExhYmVsXCIgY2xhc3M9XCJjb2wtMiBldWktdGltZWJhcl9fc3RhcnQtbGFiZWxcIj5cbiAgICAgICAge3sgc3RhcnRMYWJlbCB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ7eyB0aW1lYmFyQ29sdW1uQ2xhc3MgfX1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10aW1lYmFyXCIgW3N0eWxlLm1hcmdpbkJvdHRvbS5weF09XCJleHRyYVRpbWVsaW5lTGFiZWxTcGFjZVwiIGF0dHIuZGF0YS1lMmU9XCJ7eyBlMmVBdHRyIH19XCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc1Nob3dDdXJyZW50RGF0ZU1hcmtlclwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJldWktdGltZWJhcl9fY3VycmVudC1wcm9ncmVzc1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLiVdPVwiY3VycmVudFBlcmMgPj0gMTAwID8gMTAwIDogY3VycmVudFBlcmNcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtYXJrZWREYXRlXCIgY2xhc3M9XCJldWktdGltZWJhcl9fY3VycmVudC1wcm9ncmVzc1wiIFtzdHlsZS53aWR0aC4lXT1cIm1hcmtlZFBlcmMgPj0gMTAwID8gMTAwIDogbWFya2VkUGVyY1wiPjwvZGl2PlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFpc01vYmlsZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNVSTsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXRlbS5pc0dyb3VwZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10aW1lYmFyX19zdGVwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLnN0ZXBUeXBlQ2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LiVdPVwiaXRlbS5wZXJjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRpbWViYXJfX3N0ZXAtLXdpdGgtY3VycmVudC1kYXRlLW1hcmtlcl09XCJpc1Nob3dDdXJyZW50RGF0ZU1hcmtlciB8fCBtYXJrZWREYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10aW1lYmFyX19zdGVwLWRhdGUtaXRlbVwiIFtjbGFzcy5ldWktdGltZWJhcl9fc3RlcC1kYXRlLWl0ZW0tLXdpdGgtZW5kLWRhdGVdPVwiaXRlbS5ncm91cEVuZERhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5ncm91cEVuZERhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldWktdGltZWJhcl9fZ3JvdXBlZF9fc3RlcCB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uc3RlcFR5cGVDbGFzcyA/ICdldWktdGltZWJhcl9fc3RlcC0tJyArIGl0ZW0uc3RlcFR5cGVDbGFzcyA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5ncm91cEVuZERhdGUgfCBkYXRlOiBkYXRlRm9ybWF0IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwie3sgaXRlbS50b29sdGlwQ29sb3IgPyAnZXVpLXRpbWViYXJfX3N0ZXAtLScgKyBpdGVtLnRvb2x0aXBDb2xvciA6ICcnIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGltZWJhcl9fZ3JvdXBlZF9fc3RlcF09XCJpdGVtLmdyb3VwRW5kRGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5pdGVtLmRhdGUgfCBkYXRlOiBkYXRlRm9ybWF0IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzU2hvd0xlZ2VuZEdlbmVyYXRlZFwiIFtzdHlsZS5sZWZ0LiVdPVwiaXRlbS5wZXJjXCIgY2xhc3M9XCJldWktdGltZWJhcl9fc3RlcC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdGl0bGU9XCJ7eyBpdGVtLml0ZW0ubGFiZWwgfX1cIj57eyBpdGVtLml0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5ncm91cExhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiB0aXRsZT1cInt7IGl0ZW0uZ3JvdXBMYWJlbCB9fVwiPnt7IGl0ZW0uZ3JvdXBMYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzU2hvd0xlZ2VuZEdlbmVyYXRlZCAmJiBpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQuJV09XCJpdGVtLnBlcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10aW1lYmFyX19zdGVwLWxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXRlbS5ncm91cExhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpICsgMSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5ncm91cExhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImlzTW9iaWxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1VJOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtLmlzR3JvdXBlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXRpbWViYXJfX3N0ZXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uc3RlcFR5cGVDbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQuJV09XCJpdGVtLnBlcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGltZWJhcl9fc3RlcC0td2l0aC1jdXJyZW50LWRhdGUtbWFya2VyXT1cImlzU2hvd0N1cnJlbnREYXRlTWFya2VyIHx8IG1hcmtlZERhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzU2hvd0xlZ2VuZEdlbmVyYXRlZFwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX3N0ZXAtbGFiZWxcIiB0aXRsZT1cInt7IGl0ZW0uaXRlbS5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdGl0bGU9XCJ7eyBpdGVtLml0ZW0ubGFiZWwgfX1cIj57eyBpdGVtLml0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5ncm91cExhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmdyb3VwTGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzU2hvd0xlZ2VuZEdlbmVyYXRlZCAmJiBpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkXCIgY2xhc3M9XCJldWktdGltZWJhcl9fc3RlcC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaSArIDEgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmdyb3VwTGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZ3JvdXBMYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzU2hvd0N1cnJlbnREYXRlTWFya2VyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10aW1lYmFyX19jdXJyZW50LWRhdGUtbWFya2VyXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUubGVmdC4lXT1cImN1cnJlbnRQZXJjXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7IGN1cnJlbnREYXRlIHwgZGF0ZTogZGF0ZUZvcm1hdCB9fVwiPlxuICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImxvY2F0aW9uXCIgc2V0PVwic2hhcnBcIiBzaXplPVwibVwiIGZpbGxDb2xvcj1cImRhbmdlci0xMDBcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzU2hvd0N1cnJlbnREYXRlTWFya2VyXCIgY2xhc3M9XCJldWktdGltZWJhcl9fY3VycmVudC1kYXRlLW1hcmtlci1zdGVwXCIgW3N0eWxlLmxlZnQuJV09XCJjdXJyZW50UGVyY1wiPlxuICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1lbGxpcHNlXCIgc2V0PVwiZXVpXCIgc2l6ZT1cInNcIiBmaWxsQ29sb3I9XCJkYW5nZXItMTAwXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cIm1hcmtlZERhdGVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXRpbWViYXJfX2N1cnJlbnQtZGF0ZS1tYXJrZXJcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LiVdPVwibWFya2VkUGVyY1wiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyBtYXJrZWREYXRlIHwgZGF0ZTogZGF0ZUZvcm1hdCB9fVwiPlxuICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImxvY2F0aW9uXCIgc2V0PVwic2hhcnBcIiBzaXplPVwibVwiIGZpbGxDb2xvcj1cImRhbmdlci0xMDBcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1hcmtlZERhdGVcIiBjbGFzcz1cImV1aS10aW1lYmFyX19jdXJyZW50LWRhdGUtbWFya2VyLXN0ZXBcIiBbc3R5bGUubGVmdC4lXT1cIm1hcmtlZFBlcmNcIj5cbiAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktZWxsaXBzZVwiIHNldD1cImV1aVwiIHNpemU9XCJzXCIgZmlsbENvbG9yPVwiZGFuZ2VyLTEwMFwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJlbmRMYWJlbFwiIGNsYXNzPVwiY29sLTIgZXVpLXRpbWViYXJfX2VuZC1sYWJlbFwiPlxuICAgICAgICB7eyBlbmRMYWJlbCB9fVxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicm93IGV1aS11LWZsZXhcIj5cbiAgICA8ZGl2ICpuZ0lmPVwic3RhcnRMYWJlbFwiIGNsYXNzPVwiY29sLTJcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwie3sgdGltZWJhckNvbHVtbkNsYXNzIH19XCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJpc1Nob3dMZWdlbmRHZW5lcmF0ZWQgfHwgaXNTb21lU3RlcHNBcmVHcm91cGVkXCIgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTaG93TGVnZW5kR2VuZXJhdGVkXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10aW1lYmFyX19sZWdlbmQtaXRlbVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zVUk7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzU2hvd0xlZ2VuZEFzSW5kZXhHZW5lcmF0ZWRcIiBjbGFzcz1cImV1aS10aW1lYmFyX19sZWdlbmQtaXRlbS1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktZWxsaXBzZVwiIHNldD1cImV1aVwiIHNpemU9XCJzXCIgZmlsbENvbG9yPVwie3sgaXRlbS5pdGVtLnN0ZXBUeXBlIH19XCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNTaG93TGVnZW5kQXNJbmRleEdlbmVyYXRlZFwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX2xlZ2VuZC1pdGVtLWluZGV4LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkgKyAxIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRpbWViYXJfX2xlZ2VuZC1pdGVtLWxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiaXNNb2JpbGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IGl0ZW0uaXRlbS5kYXRlIHwgZGF0ZTogZGF0ZUZvcm1hdCB9fTwvc3Ryb25nPiAtIHt7IGl0ZW0uaXRlbS5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCIhaXNNb2JpbGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLml0ZW0ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzU2hvd0xlZ2VuZEdlbmVyYXRlZFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNVSTsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLmdyb3VwTGFiZWwgfHwgaXRlbS5pc0dyb3VwZWRcIiBjbGFzcz1cImV1aS10aW1lYmFyX19sZWdlbmQtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10aW1lYmFyX19sZWdlbmQtaXRlbS1pbmRleC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5ncm91cEluZGV4IH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kLWl0ZW0tbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IGl0ZW0uaXRlbS5kYXRlIHwgZGF0ZTogZGF0ZUZvcm1hdCB9fTwvc3Ryb25nPiAtIHt7IGl0ZW0uaXRlbS5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJlbmRMYWJlbFwiIGNsYXNzPVwiY29sLTJcIj48L2Rpdj5cbjwvZGl2PlxuIl19
@@ -58,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.6",
58
58
  type: Input,
59
59
  args: [{ transform: booleanAttribute }]
60
60
  }] } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRpbWVsaW5lLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXRpbWVsaW5lL2V1aS10aW1lbGluZS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL2V1aS10aW1lbGluZS9ldWktdGltZWxpbmUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFjN0QsTUFBTSxPQUFPLHdCQUF3QjtJQUNqQyxJQUNXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQWtCRCxZQUFtQixtQkFBd0M7UUFBeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQWYzRCxZQUFPLEdBQUcsbUJBQW1CLENBQUM7UUFLckIsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFFcEIsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFHN0Isa0JBQWEsR0FBaUIsS0FBSyxDQUFDO1FBR3BDLFlBQU8sR0FBaUIsS0FBSyxDQUFDO0lBRWdDLENBQUM7SUFFdkQsYUFBYTtRQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDOUcsSUFBSSxDQUFDLEdBQUcsQ0FBQzthQUNULElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7cUhBNUJRLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLHVQQWdCYixnQkFBZ0IsbUNBR2hCLGdCQUFnQixpWkNuQ3hDLDI5QkFpQkE7O2tHRERhLHdCQUF3QjtrQkFacEMsU0FBUzsrQkFDSSxtQkFBbUIsaUJBR2QsaUJBQWlCLENBQUMsSUFBSSxrQkFDckI7d0JBQ1o7NEJBQ0ksU0FBUyxFQUFFLG1CQUFtQjs0QkFDOUIsTUFBTSxFQUFFLENBQUMsY0FBYyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQzt5QkFDeEg7cUJBQ0o7d0ZBSVUsVUFBVTtzQkFEcEIsV0FBVzt1QkFBQyxPQUFPO2dCQU1wQixPQUFPO3NCQUZOLFdBQVc7dUJBQUMsZUFBZTs7c0JBQzNCLEtBQUs7Z0JBR0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR04sYUFBYTtzQkFEWixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUl0QyxPQUFPO3NCQUROLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBib29sZWFuQXR0cmlidXRlLCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBCYXNlU3RhdGVzRGlyZWN0aXZlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL3NoYXJlZCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLXRpbWVsaW5lLWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktdGltZWxpbmUtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0RGlyZWN0aXZlczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBkaXJlY3RpdmU6IEJhc2VTdGF0ZXNEaXJlY3RpdmUsXG4gICAgICAgICAgICBpbnB1dHM6IFsnZXVpU2Vjb25kYXJ5JywgJ2V1aVByaW1hcnknLCAnZXVpU3VjY2VzcycsICdldWlJbmZvJywgJ2V1aVdhcm5pbmcnLCAnZXVpRGFuZ2VyJywgJ2V1aUFjY2VudCcsICdldWlWYXJpYW50J10sXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpVGltZWxpbmVJdGVtQ29tcG9uZW50IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBwdWJsaWMgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q3NzQ2xhc3NlcygpO1xuICAgIH1cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1lMmUnKVxuICAgIEBJbnB1dCgpXG4gICAgZTJlQXR0ciA9ICdldWktdGltZWxpbmUtaXRlbSc7XG5cbiAgICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHN1YkxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZGF0ZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGRhdGVTdHlsZUNsYXNzID0gJyc7XG4gICAgQElucHV0KCkgdGltZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHRpbWVTdHlsZUNsYXNzID0gJyc7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBpc0xlZnRBbGlnbmVkOiBCb29sZWFuSW5wdXQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIGlzR3JvdXA6IEJvb2xlYW5JbnB1dCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGJhc2VTdGF0ZXNEaXJlY3RpdmU6IEJhc2VTdGF0ZXNEaXJlY3RpdmUpIHt9XG5cbiAgICBwcml2YXRlIGdldENzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFt0aGlzLmJhc2VTdGF0ZXNEaXJlY3RpdmUuZ2V0Q3NzQ2xhc3NlcygnZXVpLXRpbWVsaW5lLWl0ZW0nKSwgdGhpcy5pc0dyb3VwID8gJ2V1aS10aW1lbGluZS1pdGVtLS1tb3JlJyA6ICcnXVxuICAgICAgICAgICAgLmpvaW4oJyAnKVxuICAgICAgICAgICAgLnRyaW0oKTtcbiAgICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiIWlzTGVmdEFsaWduZWRcIiBjbGFzcz1cImV1aS10aW1lbGluZS1pdGVtX19sZWZ0LWNvbnRlbnRcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiZGF0ZVwiIGNsYXNzPVwiZXVpLXRpbWVsaW5lLWl0ZW1fX2RhdGUge3sgZGF0ZVN0eWxlQ2xhc3MgfX1cIj57eyBkYXRlIH19PC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cInRpbWVcIiBjbGFzcz1cImV1aS10aW1lbGluZS1pdGVtX190aW1lIHt7IHRpbWVTdHlsZUNsYXNzIH19XCI+e3sgdGltZSB9fTwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZXVpLXRpbWVsaW5lLWl0ZW1fX2ljb25cIiBbY2xhc3MuZXVpLXRpbWVsaW5lLWl0ZW1fX2ljb24tLWdyb3VwXT1cImlzR3JvdXBcIj48L2Rpdj5cbjxkaXYgY2xhc3M9XCJldWktdGltZWxpbmUtaXRlbV9fY29udGVudFwiPlxuICAgIDxuZy1jb250YWluZXIgI2N1c3RvbUNvbnRlbnQ+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXN0b21Db250ZW50Py5jaGlsZE5vZGVzLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRpbWVsaW5lLWl0ZW1fX3RpdGxlXCI+e3sgbGFiZWwgfX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10aW1lbGluZS1pdGVtX19zdWJ0aXRsZVwiPnt7IHN1YkxhYmVsIH19PC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJpc0xlZnRBbGlnbmVkICYmIGRhdGVcIiBjbGFzcz1cImV1aS10aW1lbGluZS1pdGVtX19kYXRlIHt7IGRhdGVTdHlsZUNsYXNzIH19XCI+e3sgZGF0ZSB9fTwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNMZWZ0QWxpZ25lZCAmJiB0aW1lXCIgY2xhc3M9XCJldWktdGltZWxpbmUtaXRlbV9fdGltZSB7eyB0aW1lU3R5bGVDbGFzcyB9fVwiPnt7IHRpbWUgfX08L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRpbWVsaW5lLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXRpbWVsaW5lL2V1aS10aW1lbGluZS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL2V1aS10aW1lbGluZS9ldWktdGltZWxpbmUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFjN0QsTUFBTSxPQUFPLHdCQUF3QjtJQUNqQyxJQUNXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQWVELFlBQW1CLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBWjNELFlBQU8sR0FBRyxtQkFBbUIsQ0FBQztRQUtyQixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUVwQixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUVXLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFFTSxDQUFDO0lBRXZELGFBQWE7UUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQzlHLElBQUksQ0FBQyxHQUFHLENBQUM7YUFDVCxJQUFJLEVBQUUsQ0FBQztJQUNoQixDQUFDO3FIQXpCUSx3QkFBd0I7eUdBQXhCLHdCQUF3Qix1UEFnQmIsZ0JBQWdCLG1DQUNoQixnQkFBZ0IsaVpDaEN4QywyOUJBaUJBOztrR0RGYSx3QkFBd0I7a0JBWnBDLFNBQVM7K0JBQ0ksbUJBQW1CLGlCQUdkLGlCQUFpQixDQUFDLElBQUksa0JBQ3JCO3dCQUNaOzRCQUNJLFNBQVMsRUFBRSxtQkFBbUI7NEJBQzlCLE1BQU0sRUFBRSxDQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUM7eUJBQ3hIO3FCQUNKO3dGQUlVLFVBQVU7c0JBRHBCLFdBQVc7dUJBQUMsT0FBTztnQkFNcEIsT0FBTztzQkFGTixXQUFXO3VCQUFDLGVBQWU7O3NCQUMzQixLQUFLO2dCQUdHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVrQyxhQUFhO3NCQUFwRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLE9BQU87c0JBQTlDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBib29sZWFuQXR0cmlidXRlLCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VTdGF0ZXNEaXJlY3RpdmUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvc2hhcmVkJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktdGltZWxpbmUtaXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS10aW1lbGluZS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGRpcmVjdGl2ZTogQmFzZVN0YXRlc0RpcmVjdGl2ZSxcbiAgICAgICAgICAgIGlucHV0czogWydldWlTZWNvbmRhcnknLCAnZXVpUHJpbWFyeScsICdldWlTdWNjZXNzJywgJ2V1aUluZm8nLCAnZXVpV2FybmluZycsICdldWlEYW5nZXInLCAnZXVpQWNjZW50JywgJ2V1aVZhcmlhbnQnXSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlUaW1lbGluZUl0ZW1Db21wb25lbnQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIHB1YmxpYyBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDc3NDbGFzc2VzKCk7XG4gICAgfVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWUyZScpXG4gICAgQElucHV0KClcbiAgICBlMmVBdHRyID0gJ2V1aS10aW1lbGluZS1pdGVtJztcblxuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc3ViTGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBkYXRlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZGF0ZVN0eWxlQ2xhc3MgPSAnJztcbiAgICBASW5wdXQoKSB0aW1lOiBzdHJpbmc7XG4gICAgQElucHV0KCkgdGltZVN0eWxlQ2xhc3MgPSAnJztcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0xlZnRBbGlnbmVkID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzR3JvdXAgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBiYXNlU3RhdGVzRGlyZWN0aXZlOiBCYXNlU3RhdGVzRGlyZWN0aXZlKSB7fVxuXG4gICAgcHJpdmF0ZSBnZXRDc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbdGhpcy5iYXNlU3RhdGVzRGlyZWN0aXZlLmdldENzc0NsYXNzZXMoJ2V1aS10aW1lbGluZS1pdGVtJyksIHRoaXMuaXNHcm91cCA/ICdldWktdGltZWxpbmUtaXRlbS0tbW9yZScgOiAnJ11cbiAgICAgICAgICAgIC5qb2luKCcgJylcbiAgICAgICAgICAgIC50cmltKCk7XG4gICAgfVxufVxuIiwiPGRpdiAqbmdJZj1cIiFpc0xlZnRBbGlnbmVkXCIgY2xhc3M9XCJldWktdGltZWxpbmUtaXRlbV9fbGVmdC1jb250ZW50XCI+XG4gICAgPGRpdiAqbmdJZj1cImRhdGVcIiBjbGFzcz1cImV1aS10aW1lbGluZS1pdGVtX19kYXRlIHt7IGRhdGVTdHlsZUNsYXNzIH19XCI+e3sgZGF0ZSB9fTwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJ0aW1lXCIgY2xhc3M9XCJldWktdGltZWxpbmUtaXRlbV9fdGltZSB7eyB0aW1lU3R5bGVDbGFzcyB9fVwiPnt7IHRpbWUgfX08L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImV1aS10aW1lbGluZS1pdGVtX19pY29uXCIgW2NsYXNzLmV1aS10aW1lbGluZS1pdGVtX19pY29uLS1ncm91cF09XCJpc0dyb3VwXCI+PC9kaXY+XG48ZGl2IGNsYXNzPVwiZXVpLXRpbWVsaW5lLWl0ZW1fX2NvbnRlbnRcIj5cbiAgICA8bmctY29udGFpbmVyICNjdXN0b21Db250ZW50PlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tQ29udGVudD8uY2hpbGROb2Rlcy5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10aW1lbGluZS1pdGVtX190aXRsZVwiPnt7IGxhYmVsIH19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGltZWxpbmUtaXRlbV9fc3VidGl0bGVcIj57eyBzdWJMYWJlbCB9fTwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNMZWZ0QWxpZ25lZCAmJiBkYXRlXCIgY2xhc3M9XCJldWktdGltZWxpbmUtaXRlbV9fZGF0ZSB7eyBkYXRlU3R5bGVDbGFzcyB9fVwiPnt7IGRhdGUgfX08L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImlzTGVmdEFsaWduZWQgJiYgdGltZVwiIGNsYXNzPVwiZXVpLXRpbWVsaW5lLWl0ZW1fX3RpbWUge3sgdGltZVN0eWxlQ2xhc3MgfX1cIj57eyB0aW1lIH19PC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
@@ -45,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.6",
45
45
  type: ContentChildren,
46
46
  args: [EuiTimelineItemComponent]
47
47
  }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRpbWVsaW5lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS10aW1lbGluZS9ldWktdGltZWxpbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXRpbWVsaW5lL2V1aS10aW1lbGluZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsV0FBVyxFQUNYLEtBQUssR0FJUixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFPekUsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQVlJLFlBQU8sR0FBRyxjQUFjLENBQUM7UUFHekIsa0JBQWEsR0FBaUIsS0FBSyxDQUFDO0tBcUJ2QztJQTlCRyxJQUNXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQVVELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGFBQWE7UUFDakIsT0FBTyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JHLENBQUM7cUhBOUJRLG9CQUFvQjt5R0FBcEIsb0JBQW9CLDRHQVNULGdCQUFnQixrSkFHbkIsd0JBQXdCLGtEQy9CN0MsNkJBQ0E7O2tHRGtCYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0ksY0FBYzs4QkFNYixVQUFVO3NCQURwQixXQUFXO3VCQUFDLE9BQU87Z0JBTXBCLE9BQU87c0JBRk4sV0FBVzt1QkFBQyxlQUFlOztzQkFDM0IsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBR0ssYUFBYTtzQkFBdkQsZUFBZTt1QkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRXVpVGltZWxpbmVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9ldWktdGltZWxpbmUtaXRlbS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS10aW1lbGluZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS10aW1lbGluZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEV1aVRpbWVsaW5lQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBwdWJsaWMgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q3NzQ2xhc3NlcygpO1xuICAgIH1cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1lMmUnKVxuICAgIEBJbnB1dCgpXG4gICAgZTJlQXR0ciA9ICdldWktdGltZWxpbmUnO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgaXNMZWZ0QWxpZ25lZDogQm9vbGVhbklucHV0ID0gZmFsc2U7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKEV1aVRpbWVsaW5lSXRlbUNvbXBvbmVudCkgdGltZWxpbmVJdGVtczogUXVlcnlMaXN0PEV1aVRpbWVsaW5lSXRlbUNvbXBvbmVudD47XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLmlzTGVmdEFsaWduZWQpIHtcbiAgICAgICAgICAgIHRoaXMudGltZWxpbmVJdGVtcz8uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIGl0ZW0uaXNMZWZ0QWxpZ25lZCA9IHRoaXMuaXNMZWZ0QWxpZ25lZDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRpbWVsaW5lSXRlbXM/LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0uaXNMZWZ0QWxpZ25lZCA9IHRoaXMuaXNMZWZ0QWxpZ25lZDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbJ2V1aS10aW1lbGluZScsIHRoaXMuaXNMZWZ0QWxpZ25lZCA/ICdldWktdGltZWxpbmUtLWxlZnQtYWxpZ25lZCcgOiAnJ10uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG59XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRpbWVsaW5lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS10aW1lbGluZS9ldWktdGltZWxpbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXRpbWVsaW5lL2V1aS10aW1lbGluZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsV0FBVyxFQUNYLEtBQUssR0FJUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFPekUsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQVUyQyxZQUFPLEdBQUcsY0FBYyxDQUFDO1FBRXhCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0tBcUJqRTtJQTNCRyxJQUNXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQU9ELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGFBQWE7UUFDakIsT0FBTyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JHLENBQUM7cUhBM0JRLG9CQUFvQjt5R0FBcEIsb0JBQW9CLDRHQU9ULGdCQUFnQixrSkFFbkIsd0JBQXdCLGtEQzNCN0MsNkJBQ0E7O2tHRGlCYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0ksY0FBYzs4QkFNYixVQUFVO3NCQURwQixXQUFXO3VCQUFDLE9BQU87Z0JBSW1CLE9BQU87c0JBQTdDLFdBQVc7dUJBQUMsZUFBZTs7c0JBQUcsS0FBSztnQkFFSSxhQUFhO3NCQUFwRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUVLLGFBQWE7c0JBQXZELGVBQWU7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRXVpVGltZWxpbmVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9ldWktdGltZWxpbmUtaXRlbS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS10aW1lbGluZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS10aW1lbGluZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEV1aVRpbWVsaW5lQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBwdWJsaWMgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q3NzQ2xhc3NlcygpO1xuICAgIH1cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1lMmUnKSBASW5wdXQoKSBlMmVBdHRyID0gJ2V1aS10aW1lbGluZSc7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNMZWZ0QWxpZ25lZCA9IGZhbHNlO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihFdWlUaW1lbGluZUl0ZW1Db21wb25lbnQpIHRpbWVsaW5lSXRlbXM6IFF1ZXJ5TGlzdDxFdWlUaW1lbGluZUl0ZW1Db21wb25lbnQ+O1xuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy5pc0xlZnRBbGlnbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnRpbWVsaW5lSXRlbXM/LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBpdGVtLmlzTGVmdEFsaWduZWQgPSB0aGlzLmlzTGVmdEFsaWduZWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50aW1lbGluZUl0ZW1zPy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpdGVtLmlzTGVmdEFsaWduZWQgPSB0aGlzLmlzTGVmdEFsaWduZWQ7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gWydldWktdGltZWxpbmUnLCB0aGlzLmlzTGVmdEFsaWduZWQgPyAnZXVpLXRpbWVsaW5lLS1sZWZ0LWFsaWduZWQnIDogJyddLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19