myrta-ui 17.1.24 → 17.1.26

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.
@@ -9,6 +9,7 @@ export class PopupTriggerDirective {
9
9
  elementRef;
10
10
  viewContainerRef;
11
11
  dispatcher;
12
+ scrollDispatcher;
12
13
  _subscriberDetach$ = new Subscription();
13
14
  _subscriberAttach$ = new Subscription();
14
15
  _isDropdownOpen = false;
@@ -17,15 +18,17 @@ export class PopupTriggerDirective {
17
18
  popupPosition = 'bottom-start';
18
19
  isFullWidthDropdown = false;
19
20
  minWidthDropdown = '120px';
20
- scrollContainer;
21
+ scrollContainerRef;
22
+ scrollStrategy = 'close';
21
23
  get getMinWidthDropdown() {
22
24
  return this.isFullWidthDropdown ? this.elementRef.nativeElement.getBoundingClientRect().width : this.minWidthDropdown;
23
25
  }
24
- constructor(overlay, elementRef, viewContainerRef, dispatcher) {
26
+ constructor(overlay, elementRef, viewContainerRef, dispatcher, scrollDispatcher) {
25
27
  this.overlay = overlay;
26
28
  this.elementRef = elementRef;
27
29
  this.viewContainerRef = viewContainerRef;
28
30
  this.dispatcher = dispatcher;
31
+ this.scrollDispatcher = scrollDispatcher;
29
32
  }
30
33
  ngAfterViewInit() {
31
34
  this.popupPanel._toggleInner.subscribe(isOpen => {
@@ -49,7 +52,7 @@ export class PopupTriggerDirective {
49
52
  this._overlayRef = this.overlay.create({
50
53
  positionStrategy: this.getPositionStrategy(),
51
54
  hasBackdrop: false,
52
- scrollStrategy: this.overlay.scrollStrategies.reposition(),
55
+ scrollStrategy: this.scrollStrategy === 'reposition' ? this.overlay.scrollStrategies.reposition() : this.overlay.scrollStrategies.close(),
53
56
  backdropClass: 'cdk-overlay-transparent-backdrop',
54
57
  panelClass: 'mrx-popup',
55
58
  minWidth: this.getMinWidthDropdown,
@@ -62,6 +65,13 @@ export class PopupTriggerDirective {
62
65
  this._isDropdownOpen = false;
63
66
  this.popupPanel.toggle.emit(false);
64
67
  });
68
+ this.scrollDispatcher.scrolled().subscribe((scrollable) => {
69
+ if (scrollable &&
70
+ this.scrollContainerRef &&
71
+ scrollable.getElementRef().nativeElement === this.scrollContainerRef.nativeElement) {
72
+ this._overlayRef?.updatePosition();
73
+ }
74
+ });
65
75
  }
66
76
  closeDropdown() {
67
77
  this.destroyDropdown();
@@ -83,8 +93,8 @@ export class PopupTriggerDirective {
83
93
  .position()
84
94
  .flexibleConnectedTo(this.elementRef)
85
95
  .withPositions(PositionStrategyEnum[this.popupPosition]);
86
- if (this.scrollContainer) {
87
- overlay.withScrollableContainers([this.scrollContainer.nativeElement]);
96
+ if (this.scrollContainerRef) {
97
+ overlay.withScrollableContainers([this.scrollContainerRef.nativeElement]);
88
98
  }
89
99
  return overlay;
90
100
  }
@@ -123,8 +133,8 @@ export class PopupTriggerDirective {
123
133
  handleResize() {
124
134
  this.updateSize();
125
135
  }
126
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PopupTriggerDirective, deps: [{ token: i1.Overlay }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1.OverlayOutsideClickDispatcher }], target: i0.ɵɵFactoryTarget.Directive });
127
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: PopupTriggerDirective, selector: "[mrxPopupTrigger]", inputs: { popupPanel: ["mrxPopupTrigger", "popupPanel"], popupPosition: "popupPosition", isFullWidthDropdown: "isFullWidthDropdown", minWidthDropdown: "minWidthDropdown", scrollContainer: "scrollContainer" }, host: { listeners: { "click": "togglePopup()", "document:click": "handleClick($event)", "window:resize": "handleResize($event)" } }, ngImport: i0 });
136
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PopupTriggerDirective, deps: [{ token: i1.Overlay }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1.OverlayOutsideClickDispatcher }, { token: i1.ScrollDispatcher }], target: i0.ɵɵFactoryTarget.Directive });
137
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: PopupTriggerDirective, selector: "[mrxPopupTrigger]", inputs: { popupPanel: ["mrxPopupTrigger", "popupPanel"], popupPosition: "popupPosition", isFullWidthDropdown: "isFullWidthDropdown", minWidthDropdown: "minWidthDropdown", scrollContainerRef: "scrollContainerRef", scrollStrategy: "scrollStrategy" }, host: { listeners: { "click": "togglePopup()", "document:click": "handleClick($event)", "window:resize": "handleResize($event)" } }, ngImport: i0 });
128
138
  }
129
139
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PopupTriggerDirective, decorators: [{
130
140
  type: Directive,
@@ -134,7 +144,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
134
144
  '(click)': 'togglePopup()'
135
145
  }
136
146
  }]
137
- }], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i1.OverlayOutsideClickDispatcher }], propDecorators: { popupPanel: [{
147
+ }], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i1.OverlayOutsideClickDispatcher }, { type: i1.ScrollDispatcher }], propDecorators: { popupPanel: [{
138
148
  type: Input,
139
149
  args: ['mrxPopupTrigger']
140
150
  }], popupPosition: [{
@@ -143,7 +153,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
143
153
  type: Input
144
154
  }], minWidthDropdown: [{
145
155
  type: Input
146
- }], scrollContainer: [{
156
+ }], scrollContainerRef: [{
157
+ type: Input
158
+ }], scrollStrategy: [{
147
159
  type: Input
148
160
  }], handleClick: [{
149
161
  type: HostListener,
@@ -152,4 +164,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
152
164
  type: HostListener,
153
165
  args: ['window:resize', ['$event']]
154
166
  }] } });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAtdHJpZ2dlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvcG9wdXAvZGlyZWN0aXZlcy9wb3B1cC10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUd2SCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFnQixNQUFNLHdCQUF3QixDQUFDOzs7QUFRNUUsTUFBTSxPQUFPLHFCQUFxQjtJQW1CdEI7SUFDQTtJQUNBO0lBQ0E7SUFyQkYsa0JBQWtCLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUE7SUFDckQsa0JBQWtCLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUE7SUFDckQsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUN4QixXQUFXLENBQWM7SUFFQSxVQUFVLENBQWtCO0lBQ3BELGFBQWEsR0FBaUIsY0FBYyxDQUFDO0lBRTdDLG1CQUFtQixHQUFZLEtBQUssQ0FBQztJQUNyQyxnQkFBZ0IsR0FBb0IsT0FBTyxDQUFDO0lBQzVDLGVBQWUsQ0FBYztJQUd0QyxJQUFJLG1CQUFtQjtRQUNyQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUN4SCxDQUFDO0lBRUQsWUFDVSxPQUFnQixFQUNoQixVQUFtQyxFQUNuQyxnQkFBa0MsRUFDbEMsVUFB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SUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFBRSxPQUFPO1FBRWpFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQ3hDLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2hDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQy9FLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ2hDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUdNLFlBQVk7UUFDakIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFBO0lBQ25CLENBQUM7d0dBbkpVLHFCQUFxQjs0RkFBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQU5qQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLElBQUksRUFBRTt3QkFDSixTQUFTLEVBQUUsZUFBZTtxQkFDM0I7aUJBQ0Y7Z0xBT2tDLFVBQVU7c0JBQTFDLEtBQUs7dUJBQUMsaUJBQWlCO2dCQUNmLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQXlIQyxXQUFXO3NCQURqQixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWNuQyxZQUFZO3NCQURsQixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9wb3B1cC9wb3B1cC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5T3V0c2lkZUNsaWNrRGlzcGF0Y2hlciwgT3ZlcmxheVJlZiwgUG9zaXRpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgYXN5bmNTY2hlZHVsZXIsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBQb3NpdGlvblN0cmF0ZWd5RW51bSwgUG9zaXRpb25UeXBlIH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvb3ZlcmxheSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1ttcnhQb3B1cFRyaWdnZXJdJyxcclxuICBob3N0OiB7XHJcbiAgICAnKGNsaWNrKSc6ICd0b2dnbGVQb3B1cCgpJ1xyXG4gIH1cclxufSlcclxuZXhwb3J0IGNsYXNzIFBvcHVwVHJpZ2dlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBfc3Vic2NyaWJlckRldGFjaCQ6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKVxyXG4gIHByaXZhdGUgX3N1YnNjcmliZXJBdHRhY2gkOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKClcclxuICBwcml2YXRlIF9pc0Ryb3Bkb3duT3BlbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX292ZXJsYXlSZWYhOiBPdmVybGF5UmVmO1xyXG5cclxuICBASW5wdXQoJ21yeFBvcHVwVHJpZ2dlcicpIHB1YmxpYyBwb3B1cFBhbmVsITogUG9wdXBDb21wb25lbnQ7XHJcbiAgQElucHV0KCkgcG9wdXBQb3NpdGlvbjogUG9zaXRpb25UeXBlID0gJ2JvdHRvbS1zdGFydCc7XHJcblxyXG4gIEBJbnB1dCgpIGlzRnVsbFdpZHRoRHJvcGRvd246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBtaW5XaWR0aERyb3Bkb3duOiBudW1iZXIgfCBzdHJpbmcgPSAnMTIwcHgnO1xyXG4gIEBJbnB1dCgpIHNjcm9sbENvbnRhaW5lcj86IEVsZW1lbnRSZWY7XHJcblxyXG5cclxuICBnZXQgZ2V0TWluV2lkdGhEcm9wZG93bigpOiBzdHJpbmcgfCBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNGdWxsV2lkdGhEcm9wZG93biA/IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIDogdGhpcy5taW5XaWR0aERyb3Bkb3duO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXHJcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSBkaXNwYXRjaGVyOiBPdmVybGF5T3V0c2lkZUNsaWNrRGlzcGF0Y2hlclxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5wb3B1cFBhbmVsLl90b2dnbGVJbm5lci5zdWJzY3JpYmUoaXNPcGVuID0+IHtcclxuICAgICAgaWYgKGlzT3BlbiAmJiAhdGhpcy5faXNEcm9wZG93bk9wZW4pIHtcclxuICAgICAgICB0aGlzLm9wZW5Ecm9wZG93bigpXHJcbiAgICAgIH1cclxuICAgICAgaWYgKCFpc09wZW4gJiYgdGhpcy5faXNEcm9wZG93bk9wZW4pIHtcclxuICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMucG9wdXBQYW5lbC5fdXBkYXRlSW5uZXIuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgYXN5bmNTY2hlZHVsZXIuc2NoZWR1bGUoKCkgPT4gdGhpcy51cGRhdGVQb3NpdGlvbigpKTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICB0b2dnbGVQb3B1cCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2lzRHJvcGRvd25PcGVuID8gdGhpcy5kZXN0cm95RHJvcGRvd24oKSA6IHRoaXMub3BlbkRyb3Bkb3duKCk7XHJcbiAgfVxyXG5cclxuICBvcGVuRHJvcGRvd24oKTogdm9pZCB7XHJcbiAgICB0aGlzLmhpZGVPdGhlck92ZXJsYXlzKCk7XHJcblxyXG4gICAgdGhpcy5faXNEcm9wZG93bk9wZW4gPSB0cnVlO1xyXG5cclxuICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcclxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5nZXRQb3NpdGlvblN0cmF0ZWd5KCksXHJcbiAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcclxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcclxuICAgICAgYmFja2Ryb3BDbGFzczogJ2Nkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wJyxcclxuICAgICAgcGFuZWxDbGFzczogJ21yeC1wb3B1cCcsXHJcbiAgICAgIG1pbldpZHRoOiB0aGlzLmdldE1pbldpZHRoRHJvcGRvd24sXHJcbiAgICAgIC8vIG1heFdpZHRoOiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCxcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IHRlbXBsYXRlUG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKFxyXG4gICAgICB0aGlzLnBvcHVwUGFuZWwudGVtcGxhdGVSZWYsXHJcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZlxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaCh0ZW1wbGF0ZVBvcnRhbCk7XHJcblxyXG4gICAgdGhpcy5wb3B1cFBhbmVsLnRvZ2dsZS5lbWl0KHRydWUpO1xyXG5cclxuICAgIHRoaXMuX3N1YnNjcmliZXJEZXRhY2gkID0gdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2htZW50cygpLnN1YnNjcmliZSggXyA9PiB7XHJcbiAgICAgIHRoaXMuX2lzRHJvcGRvd25PcGVuID0gZmFsc2U7XHJcbiAgICAgIHRoaXMucG9wdXBQYW5lbC50b2dnbGUuZW1pdChmYWxzZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZURyb3Bkb3duKCkge1xyXG4gICAgdGhpcy5kZXN0cm95RHJvcGRvd24oKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZVBvc2l0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcclxuICAgICAgdGhpcy5fb3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZVNpemUoKSB7XHJcbiAgICBpZiAodGhpcy5fb3ZlcmxheVJlZikge1xyXG4gICAgICB0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVNpemUoe1xyXG4gICAgICAgIG1pbldpZHRoOiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aFxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRQb3NpdGlvblN0cmF0ZWd5KCk6IFBvc2l0aW9uU3RyYXRlZ3kge1xyXG4gICAgY29uc3Qgb3ZlcmxheSA9IHRoaXMub3ZlcmxheVxyXG4gICAgICAucG9zaXRpb24oKVxyXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLmVsZW1lbnRSZWYpXHJcbiAgICAgIC53aXRoUG9zaXRpb25zKFBvc2l0aW9uU3RyYXRlZ3lFbnVtW3RoaXMucG9wdXBQb3NpdGlvbl0pXHJcblxyXG4gICAgaWYgKHRoaXMuc2Nyb2xsQ29udGFpbmVyKSB7XHJcbiAgICAgIG92ZXJsYXkud2l0aFNjcm9sbGFibGVDb250YWluZXJzKFt0aGlzLnNjcm9sbENvbnRhaW5lci5uYXRpdmVFbGVtZW50XSlcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb3ZlcmxheVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkZXN0cm95RHJvcGRvd24oKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX292ZXJsYXlSZWYgfHwgIXRoaXMuX2lzRHJvcGRvd25PcGVuKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9vdmVybGF5UmVmLmRldGFjaCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoaWRlT3RoZXJPdmVybGF5cygpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzcGF0Y2hlci5fYXR0YWNoZWRPdmVybGF5cy5mb3JFYWNoKChvdmVybGF5OiBPdmVybGF5UmVmKSA9PiB7XHJcbiAgICAgIGlmIChvdmVybGF5LmdldENvbmZpZygpLnBhbmVsQ2xhc3MgPT09ICdtcngtcG9wdXAnKSB7XHJcbiAgICAgICAgb3ZlcmxheS5kZXRhY2goKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9vdmVybGF5UmVmKSB7XHJcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGlzcG9zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3N1YnNjcmliZXJEZXRhY2gkLnVuc3Vic2NyaWJlKClcclxuICAgIHRoaXMuX3N1YnNjcmliZXJBdHRhY2gkLnVuc3Vic2NyaWJlKClcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgaGFuZGxlQ2xpY2soZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHJldHVybjtcclxuXHJcbiAgICBpZiAoIWV2ZW50LnRhcmdldC5jbG9zZXN0KCcubXJ4LXBvcHVwJykpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGVzdHJveURyb3Bkb3duKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoZXZlbnQudGFyZ2V0LmNsb3Nlc3QoJy5tcngtcG9wdXAtaXRlbScpICYmIHRoaXMucG9wdXBQYW5lbC5jbG9zZUFmdGVyQ2xpY2spIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZXN0cm95RHJvcGRvd24oKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXHJcbiAgcHVibGljIGhhbmRsZVJlc2l6ZSgpIHtcclxuICAgIHRoaXMudXBkYXRlU2l6ZSgpXHJcbiAgfVxyXG59XHJcbiJdfQ==
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAtdHJpZ2dlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvcG9wdXAvZGlyZWN0aXZlcy9wb3B1cC10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUErQixNQUFNLGVBQWUsQ0FBQztBQVN2SCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFnQixNQUFNLHdCQUF3QixDQUFDOzs7QUFRNUUsTUFBTSxPQUFPLHFCQUFxQjtJQW9CdEI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQXZCRixrQkFBa0IsR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUN0RCxrQkFBa0IsR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUN0RCxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLFdBQVcsQ0FBYztJQUVBLFVBQVUsQ0FBa0I7SUFDcEQsYUFBYSxHQUFpQixjQUFjLENBQUM7SUFFN0MsbUJBQW1CLEdBQVksS0FBSyxDQUFDO0lBQ3JDLGdCQUFnQixHQUFvQixPQUFPLENBQUM7SUFDNUMsa0JBQWtCLENBQWM7SUFDaEMsY0FBYyxHQUEyQixPQUFPLENBQUM7SUFHMUQsSUFBSSxtQkFBbUI7UUFDckIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDeEgsQ0FBQztJQUVELFlBQ1UsT0FBZ0Is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QVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsSUFBSSxFQUFFO3dCQUNKLFNBQVMsRUFBRSxlQUFlO3FCQUMzQjtpQkFDRjsrTUFPa0MsVUFBVTtzQkFBMUMsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBQ2YsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQW9JQyxXQUFXO3NCQURqQixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWNuQyxZQUFZO3NCQURsQixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9wb3B1cC9wb3B1cC5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIE92ZXJsYXksXHJcbiAgT3ZlcmxheU91dHNpZGVDbGlja0Rpc3BhdGNoZXIsXHJcbiAgT3ZlcmxheVJlZixcclxuICBQb3NpdGlvblN0cmF0ZWd5LFxyXG4gIFNjcm9sbERpc3BhdGNoZXJcclxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XHJcbmltcG9ydCB7IGFzeW5jU2NoZWR1bGVyLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUG9zaXRpb25TdHJhdGVneUVudW0sIFBvc2l0aW9uVHlwZSB9IGZyb20gJy4uLy4uLy4uL2VudW1zL292ZXJsYXknO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbbXJ4UG9wdXBUcmlnZ2VyXScsXHJcbiAgaG9zdDoge1xyXG4gICAgJyhjbGljayknOiAndG9nZ2xlUG9wdXAoKSdcclxuICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQb3B1cFRyaWdnZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgX3N1YnNjcmliZXJEZXRhY2gkOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgcHJpdmF0ZSBfc3Vic2NyaWJlckF0dGFjaCQ6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBwcml2YXRlIF9pc0Ryb3Bkb3duT3BlbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX292ZXJsYXlSZWYhOiBPdmVybGF5UmVmO1xyXG5cclxuICBASW5wdXQoJ21yeFBvcHVwVHJpZ2dlcicpIHB1YmxpYyBwb3B1cFBhbmVsITogUG9wdXBDb21wb25lbnQ7XHJcbiAgQElucHV0KCkgcG9wdXBQb3NpdGlvbjogUG9zaXRpb25UeXBlID0gJ2JvdHRvbS1zdGFydCc7XHJcblxyXG4gIEBJbnB1dCgpIGlzRnVsbFdpZHRoRHJvcGRvd246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBtaW5XaWR0aERyb3Bkb3duOiBudW1iZXIgfCBzdHJpbmcgPSAnMTIwcHgnO1xyXG4gIEBJbnB1dCgpIHNjcm9sbENvbnRhaW5lclJlZj86IEVsZW1lbnRSZWY7XHJcbiAgQElucHV0KCkgc2Nyb2xsU3RyYXRlZ3k6ICdyZXBvc2l0aW9uJyB8ICdjbG9zZScgPSAnY2xvc2UnO1xyXG5cclxuXHJcbiAgZ2V0IGdldE1pbldpZHRoRHJvcGRvd24oKTogc3RyaW5nIHwgbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmlzRnVsbFdpZHRoRHJvcGRvd24gPyB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCA6IHRoaXMubWluV2lkdGhEcm9wZG93bjtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcclxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHByaXZhdGUgZGlzcGF0Y2hlcjogT3ZlcmxheU91dHNpZGVDbGlja0Rpc3BhdGNoZXIsXHJcbiAgICBwcml2YXRlIHNjcm9sbERpc3BhdGNoZXI6IFNjcm9sbERpc3BhdGNoZXJcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucG9wdXBQYW5lbC5fdG9nZ2xlSW5uZXIuc3Vic2NyaWJlKGlzT3BlbiA9PiB7XHJcbiAgICAgIGlmIChpc09wZW4gJiYgIXRoaXMuX2lzRHJvcGRvd25PcGVuKSB7XHJcbiAgICAgICAgdGhpcy5vcGVuRHJvcGRvd24oKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIWlzT3BlbiAmJiB0aGlzLl9pc0Ryb3Bkb3duT3Blbikge1xyXG4gICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnBvcHVwUGFuZWwuX3VwZGF0ZUlubmVyLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGFzeW5jU2NoZWR1bGVyLnNjaGVkdWxlKCgpID0+IHRoaXMudXBkYXRlUG9zaXRpb24oKSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZVBvcHVwKCk6IHZvaWQge1xyXG4gICAgdGhpcy5faXNEcm9wZG93bk9wZW4gPyB0aGlzLmRlc3Ryb3lEcm9wZG93bigpIDogdGhpcy5vcGVuRHJvcGRvd24oKTtcclxuICB9XHJcblxyXG4gIG9wZW5Ecm9wZG93bigpOiB2b2lkIHtcclxuICAgIHRoaXMuaGlkZU90aGVyT3ZlcmxheXMoKTtcclxuXHJcbiAgICB0aGlzLl9pc0Ryb3Bkb3duT3BlbiA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoe1xyXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLmdldFBvc2l0aW9uU3RyYXRlZ3koKSxcclxuICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxyXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5zY3JvbGxTdHJhdGVneSA9PT0gJ3JlcG9zaXRpb24nID8gdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpIDogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuY2xvc2UoKSxcclxuICAgICAgYmFja2Ryb3BDbGFzczogJ2Nkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wJyxcclxuICAgICAgcGFuZWxDbGFzczogJ21yeC1wb3B1cCcsXHJcbiAgICAgIG1pbldpZHRoOiB0aGlzLmdldE1pbldpZHRoRHJvcGRvd24sXHJcbiAgICAgIC8vIG1heFdpZHRoOiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCxcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IHRlbXBsYXRlUG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKFxyXG4gICAgICB0aGlzLnBvcHVwUGFuZWwudGVtcGxhdGVSZWYsXHJcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZlxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaCh0ZW1wbGF0ZVBvcnRhbCk7XHJcblxyXG4gICAgdGhpcy5wb3B1cFBhbmVsLnRvZ2dsZS5lbWl0KHRydWUpO1xyXG5cclxuICAgIHRoaXMuX3N1YnNjcmliZXJEZXRhY2gkID0gdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2htZW50cygpLnN1YnNjcmliZShfID0+IHtcclxuICAgICAgdGhpcy5faXNEcm9wZG93bk9wZW4gPSBmYWxzZTtcclxuICAgICAgdGhpcy5wb3B1cFBhbmVsLnRvZ2dsZS5lbWl0KGZhbHNlKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc2Nyb2xsRGlzcGF0Y2hlci5zY3JvbGxlZCgpLnN1YnNjcmliZSgoc2Nyb2xsYWJsZSkgPT4ge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgc2Nyb2xsYWJsZSAmJlxyXG4gICAgICAgIHRoaXMuc2Nyb2xsQ29udGFpbmVyUmVmICYmXHJcbiAgICAgICAgc2Nyb2xsYWJsZS5nZXRFbGVtZW50UmVmKCkubmF0aXZlRWxlbWVudCA9PT0gdGhpcy5zY3JvbGxDb250YWluZXJSZWYubmF0aXZlRWxlbWVudFxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLl9vdmVybGF5UmVmPy51cGRhdGVQb3NpdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZURyb3Bkb3duKCkge1xyXG4gICAgdGhpcy5kZXN0cm95RHJvcGRvd24oKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVQb3NpdGlvbigpIHtcclxuICAgIGlmICh0aGlzLl9vdmVybGF5UmVmKSB7XHJcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVTaXplKCkge1xyXG4gICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcclxuICAgICAgdGhpcy5fb3ZlcmxheVJlZi51cGRhdGVTaXplKHtcclxuICAgICAgICBtaW5XaWR0aDogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGhcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFBvc2l0aW9uU3RyYXRlZ3koKTogUG9zaXRpb25TdHJhdGVneSB7XHJcbiAgICBjb25zdCBvdmVybGF5ID0gdGhpcy5vdmVybGF5XHJcbiAgICAgIC5wb3NpdGlvbigpXHJcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuZWxlbWVudFJlZilcclxuICAgICAgLndpdGhQb3NpdGlvbnMoUG9zaXRpb25TdHJhdGVneUVudW1bdGhpcy5wb3B1cFBvc2l0aW9uXSk7XHJcblxyXG4gICAgaWYgKHRoaXMuc2Nyb2xsQ29udGFpbmVyUmVmKSB7XHJcbiAgICAgIG92ZXJsYXkud2l0aFNjcm9sbGFibGVDb250YWluZXJzKFt0aGlzLnNjcm9sbENvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50XSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG92ZXJsYXk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRlc3Ryb3lEcm9wZG93bigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5fb3ZlcmxheVJlZiB8fCAhdGhpcy5faXNEcm9wZG93bk9wZW4pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX292ZXJsYXlSZWYuZGV0YWNoKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhpZGVPdGhlck92ZXJsYXlzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNwYXRjaGVyLl9hdHRhY2hlZE92ZXJsYXlzLmZvckVhY2goKG92ZXJsYXk6IE92ZXJsYXlSZWYpID0+IHtcclxuICAgICAgaWYgKG92ZXJsYXkuZ2V0Q29uZmlnKCkucGFuZWxDbGFzcyA9PT0gJ21yeC1wb3B1cCcpIHtcclxuICAgICAgICBvdmVybGF5LmRldGFjaCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcclxuICAgICAgdGhpcy5fb3ZlcmxheVJlZi5kaXNwb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fc3Vic2NyaWJlckRldGFjaCQudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuX3N1YnNjcmliZXJBdHRhY2gkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgcHVibGljIGhhbmRsZUNsaWNrKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSByZXR1cm47XHJcblxyXG4gICAgaWYgKCFldmVudC50YXJnZXQuY2xvc2VzdCgnLm1yeC1wb3B1cCcpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRlc3Ryb3lEcm9wZG93bigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGV2ZW50LnRhcmdldC5jbG9zZXN0KCcubXJ4LXBvcHVwLWl0ZW0nKSAmJiB0aGlzLnBvcHVwUGFuZWwuY2xvc2VBZnRlckNsaWNrKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVzdHJveURyb3Bkb3duKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIHB1YmxpYyBoYW5kbGVSZXNpemUoKSB7XHJcbiAgICB0aGlzLnVwZGF0ZVNpemUoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -185,7 +185,7 @@ export class TableComponent {
185
185
  this.isOpenSort = isOpen;
186
186
  }
187
187
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
188
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: TableComponent, selector: "mrx-table", inputs: { type: "type", data: "data", pageSize: "pageSize", currentPage: "currentPage", total: "total", link: "link", isLoading: "isLoading", sort: "sort", trackById: "trackById", sortable: "sortable", striped: "striped", customClasses: "customClasses", emptyResultMsg: "emptyResultMsg", hovered: "hovered", popupPosition: "popupPosition", autoHeight: "autoHeight", headerSettings: "headerSettings", contentSettings: "contentSettings", paginatorSettings: "paginatorSettings", setPageable: ["pageable", "setPageable"] }, outputs: { dataStateChanged: "dataStateChanged", downloadData: "downloadData", changeTypeTable: "changeTypeTable", change: "change" }, queries: [{ propertyName: "templateCard", first: true, predicate: ["templateCard"], descendants: true }, { propertyName: "emptyResultMsgTemplate", first: true, predicate: ["emptyResultMsgTemplate"], descendants: true }, { propertyName: "contentChildren", predicate: ColumnComponent }], ngImport: i0, template: "<div class=\"mrx-table\" [class]=\"getClasses\" [class.mb-3]=\"pageable\">\r\n <ng-container *ngIf=\"headerSettings\">\r\n <div\r\n class=\"mrx-table-card-header py-12px mb-3\"\r\n [class.mrx-table-card-header--substrate]=\"headerSettings.substrate\"\r\n *ngIf=\"headerSettings.type === 'default'\"\r\n >\r\n <div class=\"row\">\r\n <div\r\n class=\"mrx-table-card-header--left col col-12 col-md-6 mb-1 mb-md-0 d-flex justify-content-start align-content-center\">\r\n <ng-container *ngTemplateOutlet=\"counterTemplate\"></ng-container>\r\n </div>\r\n\r\n <div class=\"mrx-table-card-header--right col col-12 col-md-6 d-flex justify-content-end align-content-center\">\r\n <ng-container *ngTemplateOutlet=\"sortTemplate\"></ng-container>\r\n <div class=\"ml-4\" *ngIf=\"headerSettings.toggle\">\r\n <ng-container *ngTemplateOutlet=\"toggleTemplate\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"mrx-table-card-header mb-3 pt-2 pb-2\"\r\n [class.mrx-table-card-header--substrate]=\"headerSettings.substrate\"\r\n *ngIf=\"headerSettings.type === 'second'\"\r\n >\r\n <div class=\"row\">\r\n <div\r\n class=\"mrx-table-card-header--left col col-12 col-sm-6 mb-1 mb-sm-0 d-flex justify-content-start align-content-center\">\r\n <ng-container *ngTemplateOutlet=\"sortTemplate\"></ng-container>\r\n </div>\r\n\r\n <div class=\"mrx-table-card-header--right col col-12 col-sm-6 d-flex justify-content-end align-content-center\">\r\n <ng-container *ngTemplateOutlet=\"downloadTemplate\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container [ngSwitch]=\"type\">\r\n <div class=\"mrx-table__wrapper\" *ngSwitchCase=\"'default'\"\r\n [class.mrx-table__wrapper--substrate]=\"contentSettings.substrate\">\r\n <table\r\n [class.table-striped]=\"striped\"\r\n [class.table-solid]=\"!striped\"\r\n [class.mt-2]=\"contentSettings.substrate\"\r\n [class.mb-3]=\"contentSettings.substrate && data.length\"\r\n >\r\n <thead [class.table-head-gray]=\"!headerSettings || headerSettings.background\">\r\n <tr>\r\n <th\r\n *ngFor=\"let col of contentChildren; let index = index; let first = first; let last = last; trackBy: trackByFn\"\r\n [class]=\"col.customClasses\">\r\n <ng-container *ngIf=\"!col.templateHead; else headerItemTemplate\">\r\n <ng-container *ngIf=\"col.sortable; else defaultHeadCol\">\r\n <div [class.th-wrapper]=\"sortable\" (click)=\"onSortColumn(col.name, col.sortable)\">\r\n <span>{{ col.label }}</span>\r\n <svg\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\r\n [class]=\"columnSortedDir(col.name)\"\r\n class=\"mrx-table__sort-icon\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 9L8 13L12 9\" fill=\"#DAD5CE\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 7L8 3L4 7\" fill=\"#DAD5CE\"/>\r\n </svg>\r\n </div>\r\n </ng-container>\r\n <ng-template #defaultHeadCol>\r\n <div><span>{{ col.label }}</span></div>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-template #headerItemTemplate>\r\n <ng-container *ngIf=\"col.sortable; else defaultHeadCol\">\r\n <div [class.th-wrapper]=\"sortable\" (click)=\"onSortColumn(col.name, col.sortable)\">\r\n <ng-container *ngTemplateOutlet=\"col.templateHead; context: { $implicit: col }\"></ng-container>\r\n <svg\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\r\n [class]=\"columnSortedDir(col.name)\"\r\n class=\"mrx-table__sort-icon\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 9L8 13L12 9\" fill=\"#DAD5CE\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 7L8 3L4 7\" fill=\"#DAD5CE\"/>\r\n </svg>\r\n </div>\r\n </ng-container>\r\n <ng-template #defaultHeadCol>\r\n <ng-container\r\n *ngTemplateOutlet=\"col.templateHead; context: { $implicit: col, index, first, last }\"></ng-container>\r\n </ng-template>\r\n </ng-template>\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n <tr *ngFor=\"let dataItem of data; let index = index; let first = first; let last = last\"\r\n [class.-hovered]=\"hovered\">\r\n <td\r\n #tableTD\r\n class=\"p-0\"\r\n *ngFor=\"let col of contentChildren\"\r\n [class]=\"col.customClasses\"\r\n >\r\n <a class=\"link-wrapper td-content-wrapper\" [href]=\"getLinkForStroke(link, dataItem)\" *ngIf=\"link && col['isLink']\"></a>\r\n\r\n <ng-container *ngIf=\"!col.templateCell; else bodyItemTemplate\">\r\n <div class=\"td-content-wrapper p-2 h-100\">{{ dataItem[col.name] }}</div>\r\n </ng-container>\r\n\r\n <ng-template #bodyItemTemplate>\r\n <div class=\"td-content-wrapper h-100\">\r\n <ng-container *ngTemplateOutlet=\"col.templateCell; context: { $implicit: col, row: dataItem, index, first, last }\"></ng-container>\r\n </div>\r\n </ng-template>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n <div class=\"mrx-table__result-message\" *ngIf=\"!data.length\">\r\n <ng-container *ngTemplateOutlet=\"emptyResultMsg ? emptyResultMsgTemplateDefault : emptyResultMsgTemplate\">\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"mrx-table__overlay\" [@visibleLoading]=\"isLoading ? 'in' : 'out'\" [ngClass]=\"{'open': isLoading}\">\r\n <mrx-loader size=\"large\" color=\"brand\"></mrx-loader>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mrx-table__wrapper\" *ngSwitchCase=\"'cards'\">\r\n <ng-container *ngFor=\"let item of data; let index = index; let first = first; let last = last\">\r\n <ng-container *ngTemplateOutlet=\"templateCard; context: { $implicit: item, index, first, last }\"></ng-container>\r\n </ng-container>\r\n\r\n <div class=\"mrx-table__result-message--substrate\" *ngIf=\"!data.length\">\r\n <ng-container *ngTemplateOutlet=\"emptyResultMsg ? emptyResultMsgTemplateDefault : emptyResultMsgTemplate\">\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"mrx-table__overlay\" [@visibleLoading]=\"isLoading ? 'in' : 'out'\" [ngClass]=\"{'open': isLoading}\">\r\n <mrx-loader size=\"large\" color=\"brand\"></mrx-loader>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n\r\n<div class=\"mrx-table__paginator pt-2 pb-2\" [class.mrx-table__paginator--substrate]=\"paginatorSettings.substrate\" *ngIf=\"total\">\r\n <mrx-paginator\r\n *ngIf=\"pageable\"\r\n [total]=\"total\"\r\n [pageSize]=\"pageSize\"\r\n [position]=\"pageable.position\"\r\n [pageSizes]=\"pageable.pageSizes\"\r\n [currentPage]=\"currentPage\"\r\n [withPageSize]=\"pageable.withPageSize\"\r\n (dataStateChanged)=\"onDataStatePaginatorChanged($event)\">\r\n </mrx-paginator>\r\n</div>\r\n\r\n<ng-template #counterTemplate>\r\n <span class=\"mrx-table-counter\" *ngIf=\"headerSettings?.count\">\r\n {{ total }} {{ headerSettings?.countText || '\u043D\u043E\u0432\u043E\u0441\u0442\u0435\u0439' }}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #sortTemplate>\r\n <div class=\"d-flex mrx-table-sort\" *ngIf=\"headerSettings?.sort\">\r\n <div class=\"mrx-table-sort-scale\">\r\n <div class=\"mrx-table-sort-scale__title mr-2\" (click)=\"changeSort()\">\r\n <span>\u0421\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u043E:</span>\r\n\r\n <div class=\"mrx-table-sort-scale__icon\">\r\n <span *ngIf=\"sort?.dir === 'desc'\" class=\"mrx-icon icon-sorting-down icon-font-16\"></span>\r\n <span *ngIf=\"sort?.dir === 'asc'\" class=\"mrx-icon icon-sorting-up icon-font-16\"></span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mrx-table-sort-scale__drop-trigger\" [mrxPopupTrigger]=\"sortDropdown\" [popupPosition]=\"popupPosition\">\r\n <span>{{ selectedSort }}</span>\r\n <span\r\n class=\"mrx-icon icon-font-16\"\r\n [class.icon-chevron-up]=\"isOpenSort\"\r\n [class.icon-chevron-down]=\"!isOpenSort\"\r\n ></span>\r\n </div>\r\n </div>\r\n\r\n <mrx-popup #sortDropdown [minWidth]=\"'250px'\" [closeAfterClick]=\"true\" (toggle)=\"togglePopup($event)\">\r\n @for (item of colArray; track item) {\r\n <mrx-popup-item [id]=\"item.sortLabel\" (clicked)=\"updateSortSelect(item)\">{{ item.sortLabel || item.name }}\r\n </mrx-popup-item>\r\n }\r\n </mrx-popup>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #downloadTemplate>\r\n <div class=\"mrx-table-download\" (click)=\"clickToDownload($event)\" *ngIf=\"headerSettings?.download\">\r\n <span class=\"desktop\">\u0421\u043A\u0430\u0447\u0430\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0435</span>\r\n <span class=\"mrx-icon icon-download icon-font-24\"></span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #toggleTemplate>\r\n <div class=\"mrx-table-toggle\">\r\n <div class=\"mrx-table-toggle--item mr-1\" (click)=\"onChangeTypeTable('cards')\" [class.active]=\"type === 'cards'\">\r\n <span class=\"mrx-icon icon-cards-view icon-font-24\"></span>\r\n </div>\r\n <div class=\"mrx-table-toggle--item\" (click)=\"onChangeTypeTable('default')\" [class.active]=\"type === 'default'\">\r\n <span class=\"mrx-icon icon-table-view icon-font-24\"></span>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #emptyResultMsgTemplateDefault>\r\n {{ emptyResultMsg }}\r\n</ng-template>\r\n", styles: [".mrx-table.mrx-table{display:block;width:100%}.mrx-table.mrx-table .th-wrapper{display:flex;cursor:pointer;word-break:inherit;justify-content:space-between;align-items:flex-end}.mrx-table.mrx-table .th-wrapper span{word-break:inherit}.mrx-table.mrx-table .mrx-table__sort-icon.asc path:last-child{fill:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table .mrx-table__sort-icon.desc path:first-child{fill:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table__wrapper.mrx-table__wrapper{overflow-x:auto;overflow-y:hidden;position:relative}.mrx-table__wrapper.mrx-table__wrapper .mrx-table__wrapper--substrate{padding-top:8px}.mrx-table.mrx-table.type-default table{width:100%;text-align:left;background-color:transparent;border-spacing:0}.mrx-table.mrx-table.type-default table thead.table-head-gray{background:var(--neutral-bg-island-default, #F8F9FA)}.mrx-table.mrx-table.type-default table thead .sort-asc .custom-table__sort path:nth-child(2){fill:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table.type-default table thead .sort-desc .custom-table__sort path:nth-child(1){fill:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table.type-default table td{max-width:340px;vertical-align:top;position:relative;padding:0}.mrx-table.mrx-table.type-default table td .link-wrapper{display:block;color:initial;height:100%;position:absolute;inset:0;text-decoration:none}.mrx-table.mrx-table.type-default table td .link-wrapper:active{color:var(--neutral-text-primary, #262626)}.mrx-table.mrx-table.type-default table td .left-border{border-left:4px solid var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table.type-default table td .light-border{border-left:4px solid transparent}.mrx-table.mrx-table.type-default table td .warning-back{background-color:#ffece7}.mrx-table.mrx-table.type-default table td .disabled-back{background-color:#fafafa}.mrx-table.mrx-table.type-default table td .link-colored,.mrx-table.mrx-table.type-default table td .link-colored:active{color:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table.type-default table th{padding:8px;vertical-align:bottom;word-break:inherit;font-weight:700}.mrx-table.mrx-table.type-default table th svg{margin-left:8px;cursor:pointer}.mrx-table.mrx-table .mrx-table-card-header{position:relative}.mrx-table.mrx-table .mrx-table-card-header--substrate{padding-left:24px;padding-right:24px;background:#fff;box-shadow:0 1px 4px #3b43571a;border-radius:4px}.mrx-table.mrx-table .mrx-table__wrapper--substrate{background:#fff;box-shadow:0 1px 4px #3b43571a;border-radius:4px}.mrx-table.mrx-table .mrx-table-toggle{display:flex}.mrx-table.mrx-table .mrx-table-toggle--item{display:flex;align-items:center;justify-content:center;cursor:pointer}.mrx-table.mrx-table .mrx-table-toggle--item .mrx-icon{color:#e5e5e5}.mrx-table.mrx-table .mrx-table-toggle--item.active .mrx-icon{color:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table .mrx-table-sort.mrx-table-sort--is-card,.mrx-table.mrx-table .mrx-table-sort.mrx-table-sort--is-table{justify-content:flex-start}.mrx-table.mrx-table .mrx-table-sort-scale{display:flex;align-items:center;flex-wrap:wrap;cursor:pointer;gap:4px;font-family:var(--body-md-font-family, \"PT Sans\");font-weight:var(--body-md-font-weight, 400);font-size:var(--body-md-font-size, 14px);line-height:var(--body-md-line-height, 20px);color:var(--neutral-text-primary, #262626)}.mrx-table.mrx-table .mrx-table-sort-scale__title{display:flex;align-items:center;gap:8px}.mrx-table.mrx-table .mrx-table-sort-scale__icon{display:flex;align-items:center;justify-content:center}.mrx-table.mrx-table .mrx-table-sort-scale__drop-trigger{display:flex;align-items:center;gap:4px}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select{max-width:215px;margin-bottom:0}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select .ng-select-container.ng-select-container{min-height:auto!important;border:none;cursor:pointer;align-items:center;height:100%!important}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select .ng-value-container.ng-value-container{padding-left:0!important;margin-right:8px}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select .ng-arrow-wrapper.ng-arrow-wrapper{min-height:auto;width:auto!important}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select .ng-dropdown-panel.ng-dropdown-panel{width:100vw;max-width:215px;left:auto;right:0}.mrx-table__paginator.mrx-table__paginator.mrx-table__paginator--substrate{padding-left:24px;padding-right:24px;background:#fff;box-shadow:0 1px 4px #3b43571a;border-radius:4px}.mrx-table.mrx-table .table-striped tbody tr:nth-child(2n){background-color:var(--neutral-bg-island-default, #F8F9FA)}.mrx-table.mrx-table .table-striped tbody tr:nth-child(n){transition:.2s}.mrx-table.mrx-table .table-striped tbody tr:nth-child(n).-hovered:hover{background-color:var(--brand-bg-tertiary-hover, #edf5ff)}.mrx-table.mrx-table .table-solid{border-collapse:collapse}.mrx-table.mrx-table .table-solid thead tr{border-bottom:1px solid #f2f2f2}.mrx-table.mrx-table .table-solid tbody tr:not(:last-child){border-bottom:1px solid #f2f2f2}.mrx-table.mrx-table .table-solid tbody tr.-hovered:hover{box-shadow:0 1px 4px #3a3a3a4d}.mrx-table.mrx-table .mrx-table__wrapper .mrx-table__overlay{position:absolute;inset:0;background:#ffffffb3;display:flex;align-items:flex-start;justify-content:center;padding-top:12px;border-radius:4px}.mrx-table .mrx-table__result-message{display:flex;justify-content:center;width:100%;padding:var(--spacing-4);font-family:var(--body-md-font-family);font-weight:var(--body-md-font-weight);font-size:var(--body-md-font-size);line-height:var(--body-md-line-height);color:var(--neutral-text-secondary)}.mrx-table .mrx-table__result-message *{font-family:var(--body-md-font-family);font-weight:var(--body-md-font-weight);font-size:var(--body-md-font-size);line-height:var(--body-md-line-height);color:var(--neutral-text-secondary)}.mrx-table .mrx-table__result-message--substrate{display:flex;justify-content:center;width:100%;font-weight:400;font-size:16px;line-height:24px;color:var(--neutral-text-primary, #262626);padding:24px;background:#fff;box-shadow:0 1px 4px #3b43571a;border-radius:4px;position:relative}.mrx-table.mrx-table .mrx-table-download{display:flex;align-items:center;justify-content:flex-end;cursor:pointer}.mrx-table.mrx-table .mrx-table-download span{margin-right:8px;color:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table .mrx-table-download svg path{stroke:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table .mrx-table-counter{display:flex;align-items:center;font-family:var(--body-lg-font-family);font-size:var(--body-lg-font-size);font-weight:var(--body-lg-font-weight);line-height:var(--body-lg-line-height)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i2.PaginatorComponent, selector: "mrx-paginator", inputs: ["pageSizes", "currentPage", "pageSize", "total", "customClasses", "isEmptyPaginator", "isPaginatorText", "paginatorText", "dropdownPosition", "popupPosition", "position", "withPageSize"], outputs: ["dataStateChanged"] }, { kind: "component", type: i3.LoaderComponent, selector: "mrx-loader", inputs: ["size", "color", "customClasses"] }, { kind: "component", type: i4.PopupComponent, selector: "mrx-popup", inputs: ["closeAfterClick", "minWidth"], outputs: ["toggle", "_toggleInner", "_updateInner"] }, { kind: "component", type: i5.PopupItemComponent, selector: "mrx-popup-item", inputs: ["custom", "id", "disabled"], outputs: ["clicked"] }, { kind: "directive", type: i6.PopupTriggerDirective, selector: "[mrxPopupTrigger]", inputs: ["mrxPopupTrigger", "popupPosition", "isFullWidthDropdown", "minWidthDropdown", "scrollContainer"] }], animations: [
188
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: TableComponent, selector: "mrx-table", inputs: { type: "type", data: "data", pageSize: "pageSize", currentPage: "currentPage", total: "total", link: "link", isLoading: "isLoading", sort: "sort", trackById: "trackById", sortable: "sortable", striped: "striped", customClasses: "customClasses", emptyResultMsg: "emptyResultMsg", hovered: "hovered", popupPosition: "popupPosition", autoHeight: "autoHeight", headerSettings: "headerSettings", contentSettings: "contentSettings", paginatorSettings: "paginatorSettings", setPageable: ["pageable", "setPageable"] }, outputs: { dataStateChanged: "dataStateChanged", downloadData: "downloadData", changeTypeTable: "changeTypeTable", change: "change" }, queries: [{ propertyName: "templateCard", first: true, predicate: ["templateCard"], descendants: true }, { propertyName: "emptyResultMsgTemplate", first: true, predicate: ["emptyResultMsgTemplate"], descendants: true }, { propertyName: "contentChildren", predicate: ColumnComponent }], ngImport: i0, template: "<div class=\"mrx-table\" [class]=\"getClasses\" [class.mb-3]=\"pageable\">\r\n <ng-container *ngIf=\"headerSettings\">\r\n <div\r\n class=\"mrx-table-card-header py-12px mb-3\"\r\n [class.mrx-table-card-header--substrate]=\"headerSettings.substrate\"\r\n *ngIf=\"headerSettings.type === 'default'\"\r\n >\r\n <div class=\"row\">\r\n <div\r\n class=\"mrx-table-card-header--left col col-12 col-md-6 mb-1 mb-md-0 d-flex justify-content-start align-content-center\">\r\n <ng-container *ngTemplateOutlet=\"counterTemplate\"></ng-container>\r\n </div>\r\n\r\n <div class=\"mrx-table-card-header--right col col-12 col-md-6 d-flex justify-content-end align-content-center\">\r\n <ng-container *ngTemplateOutlet=\"sortTemplate\"></ng-container>\r\n <div class=\"ml-4\" *ngIf=\"headerSettings.toggle\">\r\n <ng-container *ngTemplateOutlet=\"toggleTemplate\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"mrx-table-card-header mb-3 pt-2 pb-2\"\r\n [class.mrx-table-card-header--substrate]=\"headerSettings.substrate\"\r\n *ngIf=\"headerSettings.type === 'second'\"\r\n >\r\n <div class=\"row\">\r\n <div\r\n class=\"mrx-table-card-header--left col col-12 col-sm-6 mb-1 mb-sm-0 d-flex justify-content-start align-content-center\">\r\n <ng-container *ngTemplateOutlet=\"sortTemplate\"></ng-container>\r\n </div>\r\n\r\n <div class=\"mrx-table-card-header--right col col-12 col-sm-6 d-flex justify-content-end align-content-center\">\r\n <ng-container *ngTemplateOutlet=\"downloadTemplate\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container [ngSwitch]=\"type\">\r\n <div class=\"mrx-table__wrapper\" *ngSwitchCase=\"'default'\"\r\n [class.mrx-table__wrapper--substrate]=\"contentSettings.substrate\">\r\n <table\r\n [class.table-striped]=\"striped\"\r\n [class.table-solid]=\"!striped\"\r\n [class.mt-2]=\"contentSettings.substrate\"\r\n [class.mb-3]=\"contentSettings.substrate && data.length\"\r\n >\r\n <thead [class.table-head-gray]=\"!headerSettings || headerSettings.background\">\r\n <tr>\r\n <th\r\n *ngFor=\"let col of contentChildren; let index = index; let first = first; let last = last; trackBy: trackByFn\"\r\n [class]=\"col.customClasses\">\r\n <ng-container *ngIf=\"!col.templateHead; else headerItemTemplate\">\r\n <ng-container *ngIf=\"col.sortable; else defaultHeadCol\">\r\n <div [class.th-wrapper]=\"sortable\" (click)=\"onSortColumn(col.name, col.sortable)\">\r\n <span>{{ col.label }}</span>\r\n <svg\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\r\n [class]=\"columnSortedDir(col.name)\"\r\n class=\"mrx-table__sort-icon\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 9L8 13L12 9\" fill=\"#DAD5CE\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 7L8 3L4 7\" fill=\"#DAD5CE\"/>\r\n </svg>\r\n </div>\r\n </ng-container>\r\n <ng-template #defaultHeadCol>\r\n <div><span>{{ col.label }}</span></div>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-template #headerItemTemplate>\r\n <ng-container *ngIf=\"col.sortable; else defaultHeadCol\">\r\n <div [class.th-wrapper]=\"sortable\" (click)=\"onSortColumn(col.name, col.sortable)\">\r\n <ng-container *ngTemplateOutlet=\"col.templateHead; context: { $implicit: col }\"></ng-container>\r\n <svg\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\r\n [class]=\"columnSortedDir(col.name)\"\r\n class=\"mrx-table__sort-icon\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 9L8 13L12 9\" fill=\"#DAD5CE\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 7L8 3L4 7\" fill=\"#DAD5CE\"/>\r\n </svg>\r\n </div>\r\n </ng-container>\r\n <ng-template #defaultHeadCol>\r\n <ng-container\r\n *ngTemplateOutlet=\"col.templateHead; context: { $implicit: col, index, first, last }\"></ng-container>\r\n </ng-template>\r\n </ng-template>\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n <tr *ngFor=\"let dataItem of data; let index = index; let first = first; let last = last\"\r\n [class.-hovered]=\"hovered\">\r\n <td\r\n #tableTD\r\n class=\"p-0\"\r\n *ngFor=\"let col of contentChildren\"\r\n [class]=\"col.customClasses\"\r\n >\r\n <a class=\"link-wrapper td-content-wrapper\" [href]=\"getLinkForStroke(link, dataItem)\" *ngIf=\"link && col['isLink']\"></a>\r\n\r\n <ng-container *ngIf=\"!col.templateCell; else bodyItemTemplate\">\r\n <div class=\"td-content-wrapper p-2 h-100\">{{ dataItem[col.name] }}</div>\r\n </ng-container>\r\n\r\n <ng-template #bodyItemTemplate>\r\n <div class=\"td-content-wrapper h-100\">\r\n <ng-container *ngTemplateOutlet=\"col.templateCell; context: { $implicit: col, row: dataItem, index, first, last }\"></ng-container>\r\n </div>\r\n </ng-template>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n <div class=\"mrx-table__result-message\" *ngIf=\"!data.length\">\r\n <ng-container *ngTemplateOutlet=\"emptyResultMsg ? emptyResultMsgTemplateDefault : emptyResultMsgTemplate\">\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"mrx-table__overlay\" [@visibleLoading]=\"isLoading ? 'in' : 'out'\" [ngClass]=\"{'open': isLoading}\">\r\n <mrx-loader size=\"large\" color=\"brand\"></mrx-loader>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mrx-table__wrapper\" *ngSwitchCase=\"'cards'\">\r\n <ng-container *ngFor=\"let item of data; let index = index; let first = first; let last = last\">\r\n <ng-container *ngTemplateOutlet=\"templateCard; context: { $implicit: item, index, first, last }\"></ng-container>\r\n </ng-container>\r\n\r\n <div class=\"mrx-table__result-message--substrate\" *ngIf=\"!data.length\">\r\n <ng-container *ngTemplateOutlet=\"emptyResultMsg ? emptyResultMsgTemplateDefault : emptyResultMsgTemplate\">\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"mrx-table__overlay\" [@visibleLoading]=\"isLoading ? 'in' : 'out'\" [ngClass]=\"{'open': isLoading}\">\r\n <mrx-loader size=\"large\" color=\"brand\"></mrx-loader>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n\r\n<div class=\"mrx-table__paginator pt-2 pb-2\" [class.mrx-table__paginator--substrate]=\"paginatorSettings.substrate\" *ngIf=\"total\">\r\n <mrx-paginator\r\n *ngIf=\"pageable\"\r\n [total]=\"total\"\r\n [pageSize]=\"pageSize\"\r\n [position]=\"pageable.position\"\r\n [pageSizes]=\"pageable.pageSizes\"\r\n [currentPage]=\"currentPage\"\r\n [withPageSize]=\"pageable.withPageSize\"\r\n (dataStateChanged)=\"onDataStatePaginatorChanged($event)\">\r\n </mrx-paginator>\r\n</div>\r\n\r\n<ng-template #counterTemplate>\r\n <span class=\"mrx-table-counter\" *ngIf=\"headerSettings?.count\">\r\n {{ total }} {{ headerSettings?.countText || '\u043D\u043E\u0432\u043E\u0441\u0442\u0435\u0439' }}\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #sortTemplate>\r\n <div class=\"d-flex mrx-table-sort\" *ngIf=\"headerSettings?.sort\">\r\n <div class=\"mrx-table-sort-scale\">\r\n <div class=\"mrx-table-sort-scale__title mr-2\" (click)=\"changeSort()\">\r\n <span>\u0421\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u043E:</span>\r\n\r\n <div class=\"mrx-table-sort-scale__icon\">\r\n <span *ngIf=\"sort?.dir === 'desc'\" class=\"mrx-icon icon-sorting-down icon-font-16\"></span>\r\n <span *ngIf=\"sort?.dir === 'asc'\" class=\"mrx-icon icon-sorting-up icon-font-16\"></span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mrx-table-sort-scale__drop-trigger\" [mrxPopupTrigger]=\"sortDropdown\" [popupPosition]=\"popupPosition\">\r\n <span>{{ selectedSort }}</span>\r\n <span\r\n class=\"mrx-icon icon-font-16\"\r\n [class.icon-chevron-up]=\"isOpenSort\"\r\n [class.icon-chevron-down]=\"!isOpenSort\"\r\n ></span>\r\n </div>\r\n </div>\r\n\r\n <mrx-popup #sortDropdown [minWidth]=\"'250px'\" [closeAfterClick]=\"true\" (toggle)=\"togglePopup($event)\">\r\n @for (item of colArray; track item) {\r\n <mrx-popup-item [id]=\"item.sortLabel\" (clicked)=\"updateSortSelect(item)\">{{ item.sortLabel || item.name }}\r\n </mrx-popup-item>\r\n }\r\n </mrx-popup>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #downloadTemplate>\r\n <div class=\"mrx-table-download\" (click)=\"clickToDownload($event)\" *ngIf=\"headerSettings?.download\">\r\n <span class=\"desktop\">\u0421\u043A\u0430\u0447\u0430\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0435</span>\r\n <span class=\"mrx-icon icon-download icon-font-24\"></span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #toggleTemplate>\r\n <div class=\"mrx-table-toggle\">\r\n <div class=\"mrx-table-toggle--item mr-1\" (click)=\"onChangeTypeTable('cards')\" [class.active]=\"type === 'cards'\">\r\n <span class=\"mrx-icon icon-cards-view icon-font-24\"></span>\r\n </div>\r\n <div class=\"mrx-table-toggle--item\" (click)=\"onChangeTypeTable('default')\" [class.active]=\"type === 'default'\">\r\n <span class=\"mrx-icon icon-table-view icon-font-24\"></span>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #emptyResultMsgTemplateDefault>\r\n {{ emptyResultMsg }}\r\n</ng-template>\r\n", styles: [".mrx-table.mrx-table{display:block;width:100%}.mrx-table.mrx-table .th-wrapper{display:flex;cursor:pointer;word-break:inherit;justify-content:space-between;align-items:flex-end}.mrx-table.mrx-table .th-wrapper span{word-break:inherit}.mrx-table.mrx-table .mrx-table__sort-icon.asc path:last-child{fill:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table .mrx-table__sort-icon.desc path:first-child{fill:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table__wrapper.mrx-table__wrapper{overflow-x:auto;overflow-y:hidden;position:relative}.mrx-table__wrapper.mrx-table__wrapper .mrx-table__wrapper--substrate{padding-top:8px}.mrx-table.mrx-table.type-default table{width:100%;text-align:left;background-color:transparent;border-spacing:0}.mrx-table.mrx-table.type-default table thead.table-head-gray{background:var(--neutral-bg-island-default, #F8F9FA)}.mrx-table.mrx-table.type-default table thead .sort-asc .custom-table__sort path:nth-child(2){fill:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table.type-default table thead .sort-desc .custom-table__sort path:nth-child(1){fill:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table.type-default table td{max-width:340px;vertical-align:top;position:relative;padding:0}.mrx-table.mrx-table.type-default table td .link-wrapper{display:block;color:initial;height:100%;position:absolute;inset:0;text-decoration:none}.mrx-table.mrx-table.type-default table td .link-wrapper:active{color:var(--neutral-text-primary, #262626)}.mrx-table.mrx-table.type-default table td .left-border{border-left:4px solid var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table.type-default table td .light-border{border-left:4px solid transparent}.mrx-table.mrx-table.type-default table td .warning-back{background-color:#ffece7}.mrx-table.mrx-table.type-default table td .disabled-back{background-color:#fafafa}.mrx-table.mrx-table.type-default table td .link-colored,.mrx-table.mrx-table.type-default table td .link-colored:active{color:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table.type-default table th{padding:8px;vertical-align:bottom;word-break:inherit;font-weight:700}.mrx-table.mrx-table.type-default table th svg{margin-left:8px;cursor:pointer}.mrx-table.mrx-table .mrx-table-card-header{position:relative}.mrx-table.mrx-table .mrx-table-card-header--substrate{padding-left:24px;padding-right:24px;background:#fff;box-shadow:0 1px 4px #3b43571a;border-radius:4px}.mrx-table.mrx-table .mrx-table__wrapper--substrate{background:#fff;box-shadow:0 1px 4px #3b43571a;border-radius:4px}.mrx-table.mrx-table .mrx-table-toggle{display:flex}.mrx-table.mrx-table .mrx-table-toggle--item{display:flex;align-items:center;justify-content:center;cursor:pointer}.mrx-table.mrx-table .mrx-table-toggle--item .mrx-icon{color:#e5e5e5}.mrx-table.mrx-table .mrx-table-toggle--item.active .mrx-icon{color:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table .mrx-table-sort.mrx-table-sort--is-card,.mrx-table.mrx-table .mrx-table-sort.mrx-table-sort--is-table{justify-content:flex-start}.mrx-table.mrx-table .mrx-table-sort-scale{display:flex;align-items:center;flex-wrap:wrap;cursor:pointer;gap:4px;font-family:var(--body-md-font-family, \"PT Sans\");font-weight:var(--body-md-font-weight, 400);font-size:var(--body-md-font-size, 14px);line-height:var(--body-md-line-height, 20px);color:var(--neutral-text-primary, #262626)}.mrx-table.mrx-table .mrx-table-sort-scale__title{display:flex;align-items:center;gap:8px}.mrx-table.mrx-table .mrx-table-sort-scale__icon{display:flex;align-items:center;justify-content:center}.mrx-table.mrx-table .mrx-table-sort-scale__drop-trigger{display:flex;align-items:center;gap:4px}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select{max-width:215px;margin-bottom:0}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select .ng-select-container.ng-select-container{min-height:auto!important;border:none;cursor:pointer;align-items:center;height:100%!important}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select .ng-value-container.ng-value-container{padding-left:0!important;margin-right:8px}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select .ng-arrow-wrapper.ng-arrow-wrapper{min-height:auto;width:auto!important}:host::ng-deep .mrx-table.mrx-table .mrx-table-sort .ng-select .ng-dropdown-panel.ng-dropdown-panel{width:100vw;max-width:215px;left:auto;right:0}.mrx-table__paginator.mrx-table__paginator.mrx-table__paginator--substrate{padding-left:24px;padding-right:24px;background:#fff;box-shadow:0 1px 4px #3b43571a;border-radius:4px}.mrx-table.mrx-table .table-striped tbody tr:nth-child(2n){background-color:var(--neutral-bg-island-default, #F8F9FA)}.mrx-table.mrx-table .table-striped tbody tr:nth-child(n){transition:.2s}.mrx-table.mrx-table .table-striped tbody tr:nth-child(n).-hovered:hover{background-color:var(--brand-bg-tertiary-hover, #edf5ff)}.mrx-table.mrx-table .table-solid{border-collapse:collapse}.mrx-table.mrx-table .table-solid thead tr{border-bottom:1px solid #f2f2f2}.mrx-table.mrx-table .table-solid tbody tr:not(:last-child){border-bottom:1px solid #f2f2f2}.mrx-table.mrx-table .table-solid tbody tr.-hovered:hover{box-shadow:0 1px 4px #3a3a3a4d}.mrx-table.mrx-table .mrx-table__wrapper .mrx-table__overlay{position:absolute;inset:0;background:#ffffffb3;display:flex;align-items:flex-start;justify-content:center;padding-top:12px;border-radius:4px}.mrx-table .mrx-table__result-message{display:flex;justify-content:center;width:100%;padding:var(--spacing-4);font-family:var(--body-md-font-family);font-weight:var(--body-md-font-weight);font-size:var(--body-md-font-size);line-height:var(--body-md-line-height);color:var(--neutral-text-secondary)}.mrx-table .mrx-table__result-message *{font-family:var(--body-md-font-family);font-weight:var(--body-md-font-weight);font-size:var(--body-md-font-size);line-height:var(--body-md-line-height);color:var(--neutral-text-secondary)}.mrx-table .mrx-table__result-message--substrate{display:flex;justify-content:center;width:100%;font-weight:400;font-size:16px;line-height:24px;color:var(--neutral-text-primary, #262626);padding:24px;background:#fff;box-shadow:0 1px 4px #3b43571a;border-radius:4px;position:relative}.mrx-table.mrx-table .mrx-table-download{display:flex;align-items:center;justify-content:flex-end;cursor:pointer}.mrx-table.mrx-table .mrx-table-download span{margin-right:8px;color:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table .mrx-table-download svg path{stroke:var(--brand-bg-primary-default, #2a6ab8)}.mrx-table.mrx-table .mrx-table-counter{display:flex;align-items:center;font-family:var(--body-lg-font-family);font-size:var(--body-lg-font-size);font-weight:var(--body-lg-font-weight);line-height:var(--body-lg-line-height)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i2.PaginatorComponent, selector: "mrx-paginator", inputs: ["pageSizes", "currentPage", "pageSize", "total", "customClasses", "isEmptyPaginator", "isPaginatorText", "paginatorText", "dropdownPosition", "popupPosition", "position", "withPageSize"], outputs: ["dataStateChanged"] }, { kind: "component", type: i3.LoaderComponent, selector: "mrx-loader", inputs: ["size", "color", "customClasses"] }, { kind: "component", type: i4.PopupComponent, selector: "mrx-popup", inputs: ["closeAfterClick", "minWidth"], outputs: ["toggle", "_toggleInner", "_updateInner"] }, { kind: "component", type: i5.PopupItemComponent, selector: "mrx-popup-item", inputs: ["custom", "id", "disabled"], outputs: ["clicked"] }, { kind: "directive", type: i6.PopupTriggerDirective, selector: "[mrxPopupTrigger]", inputs: ["mrxPopupTrigger", "popupPosition", "isFullWidthDropdown", "minWidthDropdown", "scrollContainerRef", "scrollStrategy"] }], animations: [
189
189
  trigger('visibleLoading', [
190
190
  state('in', style({ opacity: 1, visibility: 'visible' })),
191
191
  state('out', style({ opacity: 0, visibility: 'hidden' })),
@@ -275,4 +275,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
275
275
  }], change: [{
276
276
  type: Output
277
277
  }] } });
278
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFnRyxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDM0ksT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7OztBQXdCeEYsTUFBTSxPQUFPLGNBQWM7SUE0REw7SUEzRGIsUUFBUSxHQUFzQixFQUFFLENBQUM7SUFDakMsUUFBUSxHQUF5QixvQkFBb0IsQ0FBQztJQUN0RCxZQUFZLEdBQUcsRUFBRSxDQUFBO0lBQ2pCLElBQUksR0FBRyxLQUFLLENBQUE7SUFDWixVQUFVLEdBQVksS0FBSyxDQUFDO0lBRUQsZUFBZSxDQUE4QjtJQUNqRCxZQUFZLENBQW9CO0lBQ3RCLHNCQUFzQixDQUFvQjtJQUV6RSxJQUFJLEdBQWMsU0FBUyxDQUFDO0lBQzVCLElBQUksQ0FBbUI7SUFDdkIsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNkLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDaEIsS0FBSyxHQUFH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QUFlO3NCQUF2QixLQUFLO2dCQUlHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFRSyxXQUFXO3NCQURyQixLQUFLO3VCQUFDLFVBQVU7Z0JBV1AsZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUVHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZCxcclxuICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBRdWVyeUxpc3QsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRlbnRTZXR0aW5ncywgSGVhZGVyU2V0dGluZ3MsIFBhZ2luYXRvclNldHRpbmdzLCBTb3J0RGVzY3JpcHRvciwgVGFibGVCb2R5SXRlbSwgVGFibGVUeXBlLCBUYWJsZVR5cGVFbnVtIH0gZnJvbSAnLi90YWJsZS5lbnVtJztcclxuaW1wb3J0IHsgQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbHVtbi9jb2x1bW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGFnZXJTZXR0aW5ncywgRGF0YVN0YXRlQ2hhbmdlRXZlbnQgfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IERlZmF1bHRQYWdlclNldHRpbmdzIH0gZnJvbSAnLi9kZWZhdWx0L2RlZmF1bHQtcGFnZXItc2V0dGluZ3MnO1xyXG5pbXBvcnQgeyBQYWdpbmF0ZU91dHB1dE9iamVjdCB9IGZyb20gJy4uL3BhZ2luYXRvci9wYWdpbmF0b3IuZW51bSc7XHJcbmltcG9ydCB7IGFuaW1hdGUsIGdyb3VwLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgUG9zaXRpb25UeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvb3ZlcmxheSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21yeC10YWJsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90YWJsZS5jb21wb25lbnQubGVzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ3Zpc2libGVMb2FkaW5nJywgW1xyXG4gICAgICBzdGF0ZSgnaW4nLCBzdHlsZSh7IG9wYWNpdHk6IDEsIHZpc2liaWxpdHk6ICd2aXNpYmxlJyB9KSksXHJcbiAgICAgIHN0YXRlKCdvdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDAsIHZpc2liaWxpdHk6ICdoaWRkZW4nIH0pKSxcclxuICAgICAgdHJhbnNpdGlvbignaW4gPT4gb3V0JywgW2dyb3VwKFtcclxuICAgICAgICBhbmltYXRlKCczMDBtcyBlYXNlLWluLW91dCcsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSksXHJcbiAgICAgICAgYW5pbWF0ZSgnMzAwbXMgZWFzZS1pbi1vdXQnLCBzdHlsZSh7IHZpc2liaWxpdHk6ICdoaWRkZW4nIH0pKVxyXG4gICAgICBdXHJcbiAgICAgICldKSxcclxuICAgICAgdHJhbnNpdGlvbignb3V0ID0+IGluJywgW2dyb3VwKFtcclxuICAgICAgICBhbmltYXRlKCcxbXMgZWFzZS1pbi1vdXQnLCBzdHlsZSh7IHZpc2liaWxpdHk6ICd2aXNpYmxlJyB9KSksXHJcbiAgICAgICAgYW5pbWF0ZSgnMzAwbXMgZWFzZS1pbi1vdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpXHJcbiAgICAgIF1cclxuICAgICAgKV0pXHJcbiAgICBdKVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgcHVibGljIGNvbEFycmF5OiBDb2x1bW5Db21wb25lbnRbXSA9IFtdO1xyXG4gIHB1YmxpYyBwYWdlYWJsZTogUGFnZXJTZXR0aW5ncyB8IG51bGwgPSBEZWZhdWx0UGFnZXJTZXR0aW5ncztcclxuICBwdWJsaWMgc2VsZWN0ZWRTb3J0ID0gJydcclxuICBwdWJsaWMgaW5pdCA9IGZhbHNlXHJcbiAgcHVibGljIGlzT3BlblNvcnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQENvbnRlbnRDaGlsZHJlbihDb2x1bW5Db21wb25lbnQpIGNvbnRlbnRDaGlsZHJlbiE6IFF1ZXJ5TGlzdDxDb2x1bW5Db21wb25lbnQ+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ3RlbXBsYXRlQ2FyZCcpIHRlbXBsYXRlQ2FyZCE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQENvbnRlbnRDaGlsZCgnZW1wdHlSZXN1bHRNc2dUZW1wbGF0ZScpIGVtcHR5UmVzdWx0TXNnVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBASW5wdXQoKSB0eXBlOiBUYWJsZVR5cGUgPSAnZGVmYXVsdCc7XHJcbiAgQElucHV0KCkgZGF0YSE6IFRhYmxlQm9keUl0ZW1bXTtcclxuICBASW5wdXQoKSBwYWdlU2l6ZSA9IDIwO1xyXG4gIEBJbnB1dCgpIGN1cnJlbnRQYWdlID0gMTtcclxuICBASW5wdXQoKSB0b3RhbCA9IDA7XHJcbiAgQElucHV0KCkgbGluayA9ICcnO1xyXG4gIEBJbnB1dCgpIGlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBzb3J0OiBTb3J0RGVzY3JpcHRvciB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSB0cmFja0J5SWQgPSAnaWQnO1xyXG4gIEBJbnB1dCgpIHNvcnRhYmxlID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzdHJpcGVkID0gdHJ1ZTtcclxuICBASW5wdXQoKSBjdXN0b21DbGFzc2VzID0gJydcclxuICBASW5wdXQoKSBlbXB0eVJlc3VsdE1zZyA9ICcnXHJcbiAgQElucHV0KCkgaG92ZXJlZCA9IHRydWU7XHJcbiAgQElucHV0KCkgcG9wdXBQb3NpdGlvbjogUG9zaXRpb25UeXBlID0gJ2JvdHRvbS1lbmQnO1xyXG5cclxuICBASW5wdXQoKSBhdXRvSGVpZ2h0ID0gdHJ1ZSAvLyBkZXByZWNhdGVkXHJcblxyXG4gIEBJbnB1dCgpIGhlYWRlclNldHRpbmdzOiBIZWFkZXJTZXR0aW5ncyB8IHVuZGVmaW5lZFxyXG5cclxuICBASW5wdXQoKSBjb250ZW50U2V0dGluZ3M6IENvbnRlbnRTZXR0aW5ncyA9IHtcclxuICAgIHN1YnN0cmF0ZTogZmFsc2VcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHBhZ2luYXRvclNldHRpbmdzOiBQYWdpbmF0b3JTZXR0aW5ncyA9IHtcclxuICAgIHN1YnN0cmF0ZTogZmFsc2VcclxuICB9XHJcblxyXG4gIC8vINCf0YDQvtCy0LXRgNC40YLRjCDQuCDQstGL0YDQtdC30LDRgtGMXHJcbiAgcHVibGljIHNlbGVjdGVkSXRlbSA9IDFcclxuXHJcbiAgQElucHV0KCdwYWdlYWJsZScpXHJcbiAgcHVibGljIHNldCBzZXRQYWdlYWJsZSh2YWx1ZTogUGFnZXJTZXR0aW5ncyB8IGJvb2xlYW4pIHtcclxuICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLnBhZ2VhYmxlID0gRGVmYXVsdFBhZ2VyU2V0dGluZ3M7XHJcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBmYWxzZSkge1xyXG4gICAgICB0aGlzLnBhZ2VhYmxlID0gbnVsbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucGFnZWFibGUgPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBkYXRhU3RhdGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8RGF0YVN0YXRlQ2hhbmdlRXZlbnQ+ID1cclxuICAgIG5ldyBFdmVudEVtaXR0ZXI8RGF0YVN0YXRlQ2hhbmdlRXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGRvd25sb2FkRGF0YTogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KClcclxuICBAT3V0cHV0KCkgY2hhbmdlVHlwZVRhYmxlOiBFdmVudEVtaXR0ZXI8VGFibGVUeXBlPiA9IG5ldyBFdmVudEVtaXR0ZXI8VGFibGVUeXBlPigpXHJcbiAgQE91dHB1dCgpIGNoYW5nZTogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KClcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY29sQXJyYXkgPSB0aGlzLmNvbnRlbnRDaGlsZHJlbi50b0FycmF5KCk7XHJcblxyXG4gICAgdGhpcy5jb2xBcnJheS5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICBpZiAodGhpcy5zb3J0ICYmIHRoaXMuc29ydC5jb2wgPT09IGl0ZW0ubmFtZSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTb3J0ID0gaXRlbS5zb3J0TGFiZWwgfHwgaXRlbS5uYW1lXHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy5jb2xBcnJheSA9IHRoaXMuY29sQXJyYXkuZmlsdGVyKGl0ZW0gPT4ge1xyXG4gICAgICByZXR1cm4gaXRlbS5uYW1lICE9PSAnJyAmJiBpdGVtLnNvcnRMYWJlbFxyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKVxyXG4gICAgdGhpcy5pbml0ID0gdHJ1ZVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRDbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7IFRhYmxlVHlwZUVudW1bdGhpcy50eXBlXSB9ICR7IHRoaXMuY3VzdG9tQ2xhc3NlcyB9YDtcclxuICB9XHJcblxyXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGl0ZW1bdGhpcy50cmFja0J5SWRdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoYW5nZVNvcnQoKSB7XHJcbiAgICBjb25zdCBuZXdFdmVudERhdGE6IERhdGFTdGF0ZUNoYW5nZUV2ZW50ID0geyBwYWdlOiB0aGlzLmN1cnJlbnRQYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSB9O1xyXG5cclxuICAgIGlmICghdGhpcy5jb2xBcnJheS5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc29ydCkge1xyXG4gICAgICBuZXdFdmVudERhdGEuc29ydCA9IHtcclxuICAgICAgICBkaXI6IHRoaXMuc29ydC5kaXIgPT09ICdkZXNjJyA/ICdhc2MnIDogJ2Rlc2MnLFxyXG4gICAgICAgIGNvbDogdGhpcy5zb3J0LmNvbFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbmV3RXZlbnREYXRhLnNvcnQgPSB7XHJcbiAgICAgICAgZGlyOiAnYXNjJyxcclxuICAgICAgICBjb2w6IHRoaXMuY29sQXJyYXlbMF0ubmFtZVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGF0YVN0YXRlQ2hhbmdlZC5lbWl0KG5ld0V2ZW50RGF0YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29sdW1uU29ydGVkRGlyKGNvbHVtbjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLnNvcnQgJiYgdGhpcy5zb3J0LmNvbCA9PSBjb2x1bW4gJiYgdGhpcy5zb3J0LmRpcikge1xyXG4gICAgICByZXR1cm4gdGhpcy5zb3J0LmRpcjtcclxuICAgIH1cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNvcnRDb2x1bW4oY29sdW1uOiBzdHJpbmcsIHNvcnRhYmxlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoIXNvcnRhYmxlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBuZXdFdmVudERhdGE6IERhdGFTdGF0ZUNoYW5nZUV2ZW50ID0geyBwYWdlOiB0aGlzLmN1cnJlbnRQYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSB9O1xyXG5cclxuICAgIGlmICh0aGlzLnNvcnQgJiYgdGhpcy5zb3J0LmNvbCA9PSBjb2x1bW4pIHtcclxuICAgICAgaWYgKHRoaXMuc29ydC5kaXIgJiYgdGhpcy5zb3J0LmRpciA9PT0gJ2FzYycpIHtcclxuICAgICAgICBuZXdFdmVudERhdGEuc29ydCA9IHsgZGlyOiAnZGVzYycsIGNvbDogY29sdW1uIH07XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5ld0V2ZW50RGF0YS5zb3J0ID0geyBkaXI6ICdhc2MnLCBjb2w6IGNvbHVtbiB9O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGF0YVN0YXRlQ2hhbmdlZC5lbWl0KG5ld0V2ZW50RGF0YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xpY2tUb0Rvd25sb2FkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5kb3dubG9hZERhdGEuZW1pdChldmVudClcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVTb3J0U2VsZWN0KHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5ld0V2ZW50RGF0YTogRGF0YVN0YXRlQ2hhbmdlRXZlbnQgPSB7XHJcbiAgICAgIHBhZ2U6IHRoaXMuY3VycmVudFBhZ2UsXHJcbiAgICAgIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLFxyXG4gICAgICBzb3J0OiB7XHJcbiAgICAgICAgY29sOiB2YWx1ZS5uYW1lLFxyXG4gICAgICAgIGRpcjogdGhpcy5zb3J0Py5kaXJcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmRhdGFTdGF0ZUNoYW5nZWQuZW1pdChuZXdFdmVudERhdGEpXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25EYXRhU3RhdGVQYWdpbmF0b3JDaGFuZ2VkKHBhZ2luYXRpb246IFBhZ2luYXRlT3V0cHV0T2JqZWN0KTogdm9pZCB7XHJcbiAgICBjb25zdCBuZXdFdmVudERhdGE6IERhdGFTdGF0ZUNoYW5nZUV2ZW50ID0ge1xyXG4gICAgICBwYWdlOiBwYWdpbmF0aW9uLmN1cnJlbnRQYWdlLFxyXG4gICAgICBwYWdlU2l6ZTogcGFnaW5hdGlvbi5wYWdlU2l6ZVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodGhpcy5zb3J0ICYmIHRoaXMuc29ydC5jb2wgJiYgdGhpcy5zb3J0LmRpcikge1xyXG4gICAgICBuZXdFdmVudERhdGEuc29ydCA9IHsgZGlyOiB0aGlzLnNvcnQuZGlyLCBjb2w6IHRoaXMuc29ydC5jb2wgfTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRhdGFTdGF0ZUNoYW5nZWQuZW1pdChuZXdFdmVudERhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldExpbmtGb3JTdHJva2UobGluazogc3RyaW5nLCBkYXRhSXRlbTogVGFibGVCb2R5SXRlbSkge1xyXG4gICAgLy8g0YDQtdCz0YPQu9GP0YDQutC4XHJcbiAgICBjb25zdCByZWdFeHBQYXJhbXMgPSAvKD88PVxcWylbXlxcc1xcW1xcXV0rKD89XSkvZ2k7XHJcbiAgICAvLyDQvtGB0L3QvtCy0L3QvtC5INC80LDRgdGB0LjQslxyXG4gICAgY29uc3QgbGlua0FycmF5ID0gbGluay5zcGxpdCgnPycpXHJcbiAgICAvLyDQvNCw0YHRgdC40LLRiyDRgdGC0YDQvtC6IHVybCDQuCDQv9Cw0YDQsNC80LXRgtGA0L7QslxyXG4gICAgY29uc3QgYXJyYXlVcmwgPSBsaW5rQXJyYXlbMF0/LnNwbGl0KCcvJylcclxuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IGxpbmtBcnJheVsxXT8uc3BsaXQoJyYnKVxyXG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zT2JqID0gc2VhcmNoUGFyYW1zPy5tYXAoKHN0cikgPT4ge1xyXG4gICAgICBjb25zdCBzdHJQYXJhbURhdGEgPSBzdHIuc3BsaXQoJz0nKVsxXS5tYXRjaChyZWdFeHBQYXJhbXMpXHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgbmFtZTogc3RyLnNwbGl0KCc9JylbMF0sXHJcbiAgICAgICAgZGF0YTogc3RyUGFyYW1EYXRhID8gc3RyUGFyYW1EYXRhWzBdIDogc3RyLnNwbGl0KCc9JylbMF0sXHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gICAgLy8g0L7QsdGA0LDQsdC+0YLQutCwINGC0LXQu9CwIHVybFxyXG4gICAgY29uc3Qgc3RyVXJsID0gYXJyYXlVcmwubWFwKChzdHIpID0+IHtcclxuICAgICAgaWYgKHN0ci5tYXRjaChyZWdFeHBQYXJhbXMpKSB7XHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIHJldHVybiBkYXRhSXRlbVtzdHIubWF0Y2gocmVnRXhwUGFyYW1zKVswXV1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gc3RyXHJcbiAgICAgIH1cclxuICAgIH0pLmpvaW4oJy8nKVxyXG4gICAgLy8g0L7QsdGA0LDQsdC+0YLQutCwINC/0LDRgNCw0LzQtdGC0YDQvtCyXHJcbiAgICAvLyDQtdGB0LvQuCDQtdGB0YLRjCDQv9Cw0YDQsNC80LXRgtGA0YsgLSDQstC+0LfQstGA0LDRidCw0LXQvCDQuNGFINGB0YLRgNC+0LrQvtC5INGBINC00LjQvdCw0LzQuNGH0LXRgdC60LjQvNC4INC/0LDRgNCw0LzQtdGC0YDQsNC80LhcclxuXHJcbiAgICBjb25zdCBzdHJQYXJhbXMgPSBzZWFyY2hQYXJhbXNPYmogPyBzZWFyY2hQYXJhbXNPYmoubWFwKChwYXJhbSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICByZXR1cm4gYCR7IGluZGV4ID4gMCA/ICcnIDogJz8nIH0keyBwYXJhbS5uYW1lIH09JHsgZGF0YUl0ZW1bcGFyYW0uZGF0YV0gfWBcclxuICAgIH0pLmpvaW4oJyYnKSA6ICcnXHJcblxyXG4gICAgcmV0dXJuIGAkeyBzdHJVcmwgfSR7IHN0clBhcmFtcyB9YFxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2hhbmdlVHlwZVRhYmxlKHR5cGU6IFRhYmxlVHlwZSk6IHZvaWQge1xyXG4gICAgdGhpcy5jaGFuZ2VUeXBlVGFibGUuZW1pdCh0eXBlKVxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlUG9wdXAoaXNPcGVuOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmlzT3BlblNvcnQgPSBpc09wZW5cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1yeC10YWJsZVwiIFtjbGFzc109XCJnZXRDbGFzc2VzXCIgW2NsYXNzLm1iLTNdPVwicGFnZWFibGVcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyU2V0dGluZ3NcIj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJtcngtdGFibGUtY2FyZC1oZWFkZXIgcHktMTJweCBtYi0zXCJcclxuICAgICAgW2NsYXNzLm1yeC10YWJsZS1jYXJkLWhlYWRlci0tc3Vic3RyYXRlXT1cImhlYWRlclNldHRpbmdzLnN1YnN0cmF0ZVwiXHJcbiAgICAgICpuZ0lmPVwiaGVhZGVyU2V0dGluZ3MudHlwZSA9PT0gJ2RlZmF1bHQnXCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwibXJ4LXRhYmxlLWNhcmQtaGVhZGVyLS1sZWZ0IGNvbCBjb2wtMTIgY29sLW1kLTYgbWItMSBtYi1tZC0wIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24tY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb3VudGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC10YWJsZS1jYXJkLWhlYWRlci0tcmlnaHQgY29sIGNvbC0xMiBjb2wtbWQtNiBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNvcnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1sLTRcIiAqbmdJZj1cImhlYWRlclNldHRpbmdzLnRvZ2dsZVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidG9nZ2xlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJtcngtdGFibGUtY2FyZC1oZWFkZXIgbWItMyBwdC0yIHBiLTJcIlxyXG4gICAgICBbY2xhc3MubXJ4LXRhYmxlLWNhcmQtaGVhZGVyLS1zdWJzdHJhdGVdPVwiaGVhZGVyU2V0dGluZ3Muc3Vic3RyYXRlXCJcclxuICAgICAgKm5nSWY9XCJoZWFkZXJTZXR0aW5ncy50eXBlID09PSAnc2Vjb25kJ1wiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cIm1yeC10YWJsZS1jYXJkLWhlYWRlci0tbGVmdCBjb2wgY29sLTEyIGNvbC1zbS02IG1iLTEgbWItc20tMCBkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic29ydFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtcngtdGFibGUtY2FyZC1oZWFkZXItLXJpZ2h0IGNvbCBjb2wtMTIgY29sLXNtLTYgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24tY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkb3dubG9hZFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInR5cGVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtcngtdGFibGVfX3dyYXBwZXJcIiAqbmdTd2l0Y2hDYXNlPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgW2NsYXNzLm1yeC10YWJsZV9fd3JhcHBlci0tc3Vic3RyYXRlXT1cImNvbnRlbnRTZXR0aW5ncy5zdWJzdHJhdGVcIj5cclxuICAgICAgPHRhYmxlXHJcbiAgICAgICAgW2NsYXNzLnRhYmxlLXN0cmlwZWRdPVwic3RyaXBlZFwiXHJcbiAgICAgICAgW2NsYXNzLnRhYmxlLXNvbGlkXT1cIiFzdHJpcGVkXCJcclxuICAgICAgICBbY2xhc3MubXQtMl09XCJjb250ZW50U2V0dGluZ3Muc3Vic3RyYXRlXCJcclxuICAgICAgICBbY2xhc3MubWItM109XCJjb250ZW50U2V0dGluZ3Muc3Vic3RyYXRlICYmIGRhdGEubGVuZ3RoXCJcclxuICAgICAgPlxyXG4gICAgICAgIDx0aGVhZCBbY2xhc3MudGFibGUtaGVhZC1ncmF5XT1cIiFoZWFkZXJTZXR0aW5ncyB8fCBoZWFkZXJTZXR0aW5ncy5iYWNrZ3JvdW5kXCI+XHJcbiAgICAgICAgPHRyPlxyXG4gICAgICAgICAgPHRoXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2wgb2YgY29udGVudENoaWxkcmVuOyBsZXQgaW5kZXggPSBpbmRleDsgbGV0IGZpcnN0ID0gZmlyc3Q7IGxldCBsYXN0ID0gbGFzdDsgdHJhY2tCeTogdHJhY2tCeUZuXCJcclxuICAgICAgICAgICAgW2NsYXNzXT1cImNvbC5jdXN0b21DbGFzc2VzXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY29sLnRlbXBsYXRlSGVhZDsgZWxzZSBoZWFkZXJJdGVtVGVtcGxhdGVcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sLnNvcnRhYmxlOyBlbHNlIGRlZmF1bHRIZWFkQ29sXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtjbGFzcy50aC13cmFwcGVyXT1cInNvcnRhYmxlXCIgKGNsaWNrKT1cIm9uU29ydENvbHVtbihjb2wubmFtZSwgY29sLnNvcnRhYmxlKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBjb2wubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY29sdW1uU29ydGVkRGlyKGNvbC5uYW1lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtcngtdGFibGVfX3NvcnQtaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00IDlMOCAxM0wxMiA5XCIgZmlsbD1cIiNEQUQ1Q0VcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEyIDdMOCAzTDQgN1wiIGZpbGw9XCIjREFENUNFXCIvPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEhlYWRDb2w+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PjxzcGFuPnt7IGNvbC5sYWJlbCB9fTwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVySXRlbVRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2wuc29ydGFibGU7IGVsc2UgZGVmYXVsdEhlYWRDb2xcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgW2NsYXNzLnRoLXdyYXBwZXJdPVwic29ydGFibGVcIiAoY2xpY2spPVwib25Tb3J0Q29sdW1uKGNvbC5uYW1lLCBjb2wuc29ydGFibGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2wudGVtcGxhdGVIZWFkOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY29sIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJjb2x1bW5Tb3J0ZWREaXIoY29sLm5hbWUpXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1yeC10YWJsZV9fc29ydC1pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTQgOUw4IDEzTDEyIDlcIiBmaWxsPVwiI0RBRDVDRVwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTIgN0w4IDNMNCA3XCIgZmlsbD1cIiNEQUQ1Q0VcIi8+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0SGVhZENvbD5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2wudGVtcGxhdGVIZWFkOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY29sLCBpbmRleCwgZmlyc3QsIGxhc3QgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L3RoPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC90aGVhZD5cclxuXHJcbiAgICAgICAgPHRib2R5PlxyXG4gICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgZGF0YUl0ZW0gb2YgZGF0YTsgbGV0IGluZGV4ID0gaW5kZXg7IGxldCBmaXJzdCA9IGZpcnN0OyBsZXQgbGFzdCA9IGxhc3RcIlxyXG4gICAgICAgICAgICBbY2xhc3MuLWhvdmVyZWRdPVwiaG92ZXJlZFwiPlxyXG4gICAgICAgICAgPHRkXHJcbiAgICAgICAgICAgICN0YWJsZVREXHJcbiAgICAgICAgICAgIGNsYXNzPVwicC0wXCJcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbCBvZiBjb250ZW50Q2hpbGRyZW5cIlxyXG4gICAgICAgICAgICBbY2xhc3NdPVwiY29sLmN1c3RvbUNsYXNzZXNcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8YSBjbGFzcz1cImxpbmstd3JhcHBlciB0ZC1jb250ZW50LXdyYXBwZXJcIiBbaHJlZl09XCJnZXRMaW5rRm9yU3Ryb2tlKGxpbmssIGRhdGFJdGVtKVwiICpuZ0lmPVwibGluayAmJiBjb2xbJ2lzTGluayddXCI+PC9hPlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2wudGVtcGxhdGVDZWxsOyBlbHNlIGJvZHlJdGVtVGVtcGxhdGVcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGQtY29udGVudC13cmFwcGVyIHAtMiBoLTEwMFwiPnt7IGRhdGFJdGVtW2NvbC5uYW1lXSB9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYm9keUl0ZW1UZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGQtY29udGVudC13cmFwcGVyIGgtMTAwXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sLnRlbXBsYXRlQ2VsbDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNvbCwgcm93OiBkYXRhSXRlbSwgaW5kZXgsIGZpcnN0LCBsYXN0IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC90cj5cclxuICAgICAgICA8L3Rib2R5PlxyXG4gICAgICA8L3RhYmxlPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1yeC10YWJsZV9fcmVzdWx0LW1lc3NhZ2VcIiAqbmdJZj1cIiFkYXRhLmxlbmd0aFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlbXB0eVJlc3VsdE1zZyA/IGVtcHR5UmVzdWx0TXNnVGVtcGxhdGVEZWZhdWx0IDogZW1wdHlSZXN1bHRNc2dUZW1wbGF0ZVwiPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtcngtdGFibGVfX292ZXJsYXlcIiBbQHZpc2libGVMb2FkaW5nXT1cImlzTG9hZGluZyA/ICdpbicgOiAnb3V0J1wiIFtuZ0NsYXNzXT1cInsnb3Blbic6IGlzTG9hZGluZ31cIj5cclxuICAgICAgICA8bXJ4LWxvYWRlciBzaXplPVwibGFyZ2VcIiBjb2xvcj1cImJyYW5kXCI+PC9tcngtbG9hZGVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJtcngtdGFibGVfX3dyYXBwZXJcIiAqbmdTd2l0Y2hDYXNlPVwiJ2NhcmRzJ1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRhdGE7IGxldCBpbmRleCA9IGluZGV4OyBsZXQgZmlyc3QgPSBmaXJzdDsgbGV0IGxhc3QgPSBsYXN0XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlQ2FyZDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0sIGluZGV4LCBmaXJzdCwgbGFzdCB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1yeC10YWJsZV9fcmVzdWx0LW1lc3NhZ2UtLXN1YnN0cmF0ZVwiICpuZ0lmPVwiIWRhdGEubGVuZ3RoXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVtcHR5UmVzdWx0TXNnID8gZW1wdHlSZXN1bHRNc2dUZW1wbGF0ZURlZmF1bHQgOiBlbXB0eVJlc3VsdE1zZ1RlbXBsYXRlXCI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1yeC10YWJsZV9fb3ZlcmxheVwiIFtAdmlzaWJsZUxvYWRpbmddPVwiaXNMb2FkaW5nID8gJ2luJyA6ICdvdXQnXCIgW25nQ2xhc3NdPVwieydvcGVuJzogaXNMb2FkaW5nfVwiPlxyXG4gICAgICAgIDxtcngtbG9hZGVyIHNpemU9XCJsYXJnZVwiIGNvbG9yPVwiYnJhbmRcIj48L21yeC1sb2FkZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cIm1yeC10YWJsZV9fcGFnaW5hdG9yIHB0LTIgcGItMlwiIFtjbGFzcy5tcngtdGFibGVfX3BhZ2luYXRvci0tc3Vic3RyYXRlXT1cInBhZ2luYXRvclNldHRpbmdzLnN1YnN0cmF0ZVwiICpuZ0lmPVwidG90YWxcIj5cclxuICA8bXJ4LXBhZ2luYXRvclxyXG4gICAgKm5nSWY9XCJwYWdlYWJsZVwiXHJcbiAgICBbdG90YWxdPVwidG90YWxcIlxyXG4gICAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcclxuICAgIFtwb3NpdGlvbl09XCJwYWdlYWJsZS5wb3NpdGlvblwiXHJcbiAgICBbcGFnZVNpemVzXT1cInBhZ2VhYmxlLnBhZ2VTaXplc1wiXHJcbiAgICBbY3VycmVudFBhZ2VdPVwiY3VycmVudFBhZ2VcIlxyXG4gICAgW3dpdGhQYWdlU2l6ZV09XCJwYWdlYWJsZS53aXRoUGFnZVNpemVcIlxyXG4gICAgKGRhdGFTdGF0ZUNoYW5nZWQpPVwib25EYXRhU3RhdGVQYWdpbmF0b3JDaGFuZ2VkKCRldmVudClcIj5cclxuICA8L21yeC1wYWdpbmF0b3I+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNjb3VudGVyVGVtcGxhdGU+XHJcbiAgPHNwYW4gY2xhc3M9XCJtcngtdGFibGUtY291bnRlclwiICpuZ0lmPVwiaGVhZGVyU2V0dGluZ3M/LmNvdW50XCI+XHJcbiAgICB7eyB0b3RhbCB9fSB7eyBoZWFkZXJTZXR0aW5ncz8uY291bnRUZXh0IHx8ICfQvdC+0LLQvtGB0YLQtdC5JyB9fVxyXG4gIDwvc3Bhbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjc29ydFRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggbXJ4LXRhYmxlLXNvcnRcIiAqbmdJZj1cImhlYWRlclNldHRpbmdzPy5zb3J0XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibXJ4LXRhYmxlLXNvcnQtc2NhbGVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1yeC10YWJsZS1zb3J0LXNjYWxlX190aXRsZSBtci0yXCIgKGNsaWNrKT1cImNoYW5nZVNvcnQoKVwiPlxyXG4gICAgICAgIDxzcGFuPtCh0L7RgNGC0LjRgNC+0LLQsNGC0Ywg0L/Qvjo8L3NwYW4+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtcngtdGFibGUtc29ydC1zY2FsZV9faWNvblwiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0Py5kaXIgPT09ICdkZXNjJ1wiIGNsYXNzPVwibXJ4LWljb24gaWNvbi1zb3J0aW5nLWRvd24gaWNvbi1mb250LTE2XCI+PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0Py5kaXIgPT09ICdhc2MnXCIgY2xhc3M9XCJtcngtaWNvbiBpY29uLXNvcnRpbmctdXAgaWNvbi1mb250LTE2XCI+PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtcngtdGFibGUtc29ydC1zY2FsZV9fZHJvcC10cmlnZ2VyXCIgW21yeFBvcHVwVHJpZ2dlcl09XCJzb3J0RHJvcGRvd25cIiBbcG9wdXBQb3NpdGlvbl09XCJwb3B1cFBvc2l0aW9uXCI+XHJcbiAgICAgICAgPHNwYW4+e3sgc2VsZWN0ZWRTb3J0IH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuXHJcbiAgICAgICAgICBjbGFzcz1cIm1yeC1pY29uIGljb24tZm9udC0xNlwiXHJcbiAgICAgICAgICBbY2xhc3MuaWNvbi1jaGV2cm9uLXVwXT1cImlzT3BlblNvcnRcIlxyXG4gICAgICAgICAgW2NsYXNzLmljb24tY2hldnJvbi1kb3duXT1cIiFpc09wZW5Tb3J0XCJcclxuICAgICAgICA+PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxtcngtcG9wdXAgI3NvcnREcm9wZG93biBbbWluV2lkdGhdPVwiJzI1MHB4J1wiIFtjbG9zZUFmdGVyQ2xpY2tdPVwidHJ1ZVwiICh0b2dnbGUpPVwidG9nZ2xlUG9wdXAoJGV2ZW50KVwiPlxyXG4gICAgICBAZm9yIChpdGVtIG9mIGNvbEFycmF5OyB0cmFjayBpdGVtKSB7XHJcbiAgICAgICAgPG1yeC1wb3B1cC1pdGVtIFtpZF09XCJpdGVtLnNvcnRMYWJlbFwiIChjbGlja2VkKT1cInVwZGF0ZVNvcnRTZWxlY3QoaXRlbSlcIj57eyBpdGVtLnNvcnRMYWJlbCB8fCBpdGVtLm5hbWUgfX1cclxuICAgICAgICA8L21yeC1wb3B1cC1pdGVtPlxyXG4gICAgICB9XHJcbiAgICA8L21yeC1wb3B1cD5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZG93bmxvYWRUZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwibXJ4LXRhYmxlLWRvd25sb2FkXCIgKGNsaWNrKT1cImNsaWNrVG9Eb3dubG9hZCgkZXZlbnQpXCIgKm5nSWY9XCJoZWFkZXJTZXR0aW5ncz8uZG93bmxvYWRcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwiZGVza3RvcFwiPtCh0LrQsNGH0LDRgtGMINC00LDQvdC90YvQtTwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1kb3dubG9hZCBpY29uLWZvbnQtMjRcIj48L3NwYW4+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3RvZ2dsZVRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJtcngtdGFibGUtdG9nZ2xlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibXJ4LXRhYmxlLXRvZ2dsZS0taXRlbSBtci0xXCIgKGNsaWNrKT1cIm9uQ2hhbmdlVHlwZVRhYmxlKCdjYXJkcycpXCIgW2NsYXNzLmFjdGl2ZV09XCJ0eXBlID09PSAnY2FyZHMnXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1jYXJkcy12aWV3IGljb24tZm9udC0yNFwiPjwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1yeC10YWJsZS10b2dnbGUtLWl0ZW1cIiAoY2xpY2spPVwib25DaGFuZ2VUeXBlVGFibGUoJ2RlZmF1bHQnKVwiIFtjbGFzcy5hY3RpdmVdPVwidHlwZSA9PT0gJ2RlZmF1bHQnXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi10YWJsZS12aWV3IGljb24tZm9udC0yNFwiPjwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNlbXB0eVJlc3VsdE1zZ1RlbXBsYXRlRGVmYXVsdD5cclxuICB7eyBlbXB0eVJlc3VsdE1zZyB9fVxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFnRyxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDM0ksT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7OztBQXdCeEYsTUFBTSxPQUFPLGNBQWM7SUE0REw7SUEzRGIsUUFBUSxHQUFzQixFQUFFLENBQUM7SUFDakMsUUFBUSxHQUF5QixvQkFBb0IsQ0FBQztJQUN0RCxZQUFZLEdBQUcsRUFBRSxDQUFBO0lBQ2pCLElBQUksR0FBRyxLQUFLLENBQUE7SUFDWixVQUFVLEdBQVksS0FBSyxDQUFDO0lBRUQsZUFBZSxDQUE4QjtJQUNqRCxZQUFZLENBQW9CO0lBQ3RCLHNCQUFzQixDQUFvQjtJQUV6RSxJQUFJLEdBQWMsU0FBUyxDQUFDO0lBQzVCLElBQUksQ0FBbUI7SUFDdkIsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNkLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDaEIsS0FBSyxHQUFH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QUFlO3NCQUF2QixLQUFLO2dCQUlHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFRSyxXQUFXO3NCQURyQixLQUFLO3VCQUFDLFVBQVU7Z0JBV1AsZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUVHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZCxcclxuICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBRdWVyeUxpc3QsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRlbnRTZXR0aW5ncywgSGVhZGVyU2V0dGluZ3MsIFBhZ2luYXRvclNldHRpbmdzLCBTb3J0RGVzY3JpcHRvciwgVGFibGVCb2R5SXRlbSwgVGFibGVUeXBlLCBUYWJsZVR5cGVFbnVtIH0gZnJvbSAnLi90YWJsZS5lbnVtJztcclxuaW1wb3J0IHsgQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbHVtbi9jb2x1bW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGFnZXJTZXR0aW5ncywgRGF0YVN0YXRlQ2hhbmdlRXZlbnQgfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IERlZmF1bHRQYWdlclNldHRpbmdzIH0gZnJvbSAnLi9kZWZhdWx0L2RlZmF1bHQtcGFnZXItc2V0dGluZ3MnO1xyXG5pbXBvcnQgeyBQYWdpbmF0ZU91dHB1dE9iamVjdCB9IGZyb20gJy4uL3BhZ2luYXRvci9wYWdpbmF0b3IuZW51bSc7XHJcbmltcG9ydCB7IGFuaW1hdGUsIGdyb3VwLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgUG9zaXRpb25UeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvb3ZlcmxheSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21yeC10YWJsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90YWJsZS5jb21wb25lbnQubGVzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ3Zpc2libGVMb2FkaW5nJywgW1xyXG4gICAgICBzdGF0ZSgnaW4nLCBzdHlsZSh7IG9wYWNpdHk6IDEsIHZpc2liaWxpdHk6ICd2aXNpYmxlJyB9KSksXHJcbiAgICAgIHN0YXRlKCdvdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDAsIHZpc2liaWxpdHk6ICdoaWRkZW4nIH0pKSxcclxuICAgICAgdHJhbnNpdGlvbignaW4gPT4gb3V0JywgW2dyb3VwKFtcclxuICAgICAgICBhbmltYXRlKCczMDBtcyBlYXNlLWluLW91dCcsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSksXHJcbiAgICAgICAgYW5pbWF0ZSgnMzAwbXMgZWFzZS1pbi1vdXQnLCBzdHlsZSh7IHZpc2liaWxpdHk6ICdoaWRkZW4nIH0pKVxyXG4gICAgICBdXHJcbiAgICAgICldKSxcclxuICAgICAgdHJhbnNpdGlvbignb3V0ID0+IGluJywgW2dyb3VwKFtcclxuICAgICAgICBhbmltYXRlKCcxbXMgZWFzZS1pbi1vdXQnLCBzdHlsZSh7IHZpc2liaWxpdHk6ICd2aXNpYmxlJyB9KSksXHJcbiAgICAgICAgYW5pbWF0ZSgnMzAwbXMgZWFzZS1pbi1vdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpXHJcbiAgICAgIF1cclxuICAgICAgKV0pXHJcbiAgICBdKVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgcHVibGljIGNvbEFycmF5OiBDb2x1bW5Db21wb25lbnRbXSA9IFtdO1xyXG4gIHB1YmxpYyBwYWdlYWJsZTogUGFnZXJTZXR0aW5ncyB8IG51bGwgPSBEZWZhdWx0UGFnZXJTZXR0aW5ncztcclxuICBwdWJsaWMgc2VsZWN0ZWRTb3J0ID0gJydcclxuICBwdWJsaWMgaW5pdCA9IGZhbHNlXHJcbiAgcHVibGljIGlzT3BlblNvcnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQENvbnRlbnRDaGlsZHJlbihDb2x1bW5Db21wb25lbnQpIGNvbnRlbnRDaGlsZHJlbiE6IFF1ZXJ5TGlzdDxDb2x1bW5Db21wb25lbnQ+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ3RlbXBsYXRlQ2FyZCcpIHRlbXBsYXRlQ2FyZCE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQENvbnRlbnRDaGlsZCgnZW1wdHlSZXN1bHRNc2dUZW1wbGF0ZScpIGVtcHR5UmVzdWx0TXNnVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBASW5wdXQoKSB0eXBlOiBUYWJsZVR5cGUgPSAnZGVmYXVsdCc7XHJcbiAgQElucHV0KCkgZGF0YSE6IFRhYmxlQm9keUl0ZW1bXTtcclxuICBASW5wdXQoKSBwYWdlU2l6ZSA9IDIwO1xyXG4gIEBJbnB1dCgpIGN1cnJlbnRQYWdlID0gMTtcclxuICBASW5wdXQoKSB0b3RhbCA9IDA7XHJcbiAgQElucHV0KCkgbGluayA9ICcnO1xyXG4gIEBJbnB1dCgpIGlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBzb3J0OiBTb3J0RGVzY3JpcHRvciB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSB0cmFja0J5SWQgPSAnaWQnO1xyXG4gIEBJbnB1dCgpIHNvcnRhYmxlID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzdHJpcGVkID0gdHJ1ZTtcclxuICBASW5wdXQoKSBjdXN0b21DbGFzc2VzID0gJydcclxuICBASW5wdXQoKSBlbXB0eVJlc3VsdE1zZyA9ICcnXHJcbiAgQElucHV0KCkgaG92ZXJlZCA9IHRydWU7XHJcbiAgQElucHV0KCkgcG9wdXBQb3NpdGlvbjogUG9zaXRpb25UeXBlID0gJ2JvdHRvbS1lbmQnO1xyXG5cclxuICBASW5wdXQoKSBhdXRvSGVpZ2h0ID0gdHJ1ZSAvLyBkZXByZWNhdGVkXHJcblxyXG4gIEBJbnB1dCgpIGhlYWRlclNldHRpbmdzOiBIZWFkZXJTZXR0aW5ncyB8IHVuZGVmaW5lZFxyXG5cclxuICBASW5wdXQoKSBjb250ZW50U2V0dGluZ3M6IENvbnRlbnRTZXR0aW5ncyA9IHtcclxuICAgIHN1YnN0cmF0ZTogZmFsc2VcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHBhZ2luYXRvclNldHRpbmdzOiBQYWdpbmF0b3JTZXR0aW5ncyA9IHtcclxuICAgIHN1YnN0cmF0ZTogZmFsc2VcclxuICB9XHJcblxyXG4gIC8vINCf0YDQvtCy0LXRgNC40YLRjCDQuCDQstGL0YDQtdC30LDRgtGMXHJcbiAgcHVibGljIHNlbGVjdGVkSXRlbSA9IDFcclxuXHJcbiAgQElucHV0KCdwYWdlYWJsZScpXHJcbiAgcHVibGljIHNldCBzZXRQYWdlYWJsZSh2YWx1ZTogUGFnZXJTZXR0aW5ncyB8IGJvb2xlYW4pIHtcclxuICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLnBhZ2VhYmxlID0gRGVmYXVsdFBhZ2VyU2V0dGluZ3M7XHJcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBmYWxzZSkge1xyXG4gICAgICB0aGlzLnBhZ2VhYmxlID0gbnVsbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucGFnZWFibGUgPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBkYXRhU3RhdGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8RGF0YVN0YXRlQ2hhbmdlRXZlbnQ+ID1cclxuICAgIG5ldyBFdmVudEVtaXR0ZXI8RGF0YVN0YXRlQ2hhbmdlRXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGRvd25sb2FkRGF0YTogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KClcclxuICBAT3V0cHV0KCkgY2hhbmdlVHlwZVRhYmxlOiBFdmVudEVtaXR0ZXI8VGFibGVUeXBlPiA9IG5ldyBFdmVudEVtaXR0ZXI8VGFibGVUeXBlPigpXHJcbiAgQE91dHB1dCgpIGNoYW5nZTogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KClcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY29sQXJyYXkgPSB0aGlzLmNvbnRlbnRDaGlsZHJlbi50b0FycmF5KCk7XHJcblxyXG4gICAgdGhpcy5jb2xBcnJheS5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICBpZiAodGhpcy5zb3J0ICYmIHRoaXMuc29ydC5jb2wgPT09IGl0ZW0ubmFtZSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTb3J0ID0gaXRlbS5zb3J0TGFiZWwgfHwgaXRlbS5uYW1lXHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy5jb2xBcnJheSA9IHRoaXMuY29sQXJyYXkuZmlsdGVyKGl0ZW0gPT4ge1xyXG4gICAgICByZXR1cm4gaXRlbS5uYW1lICE9PSAnJyAmJiBpdGVtLnNvcnRMYWJlbFxyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKVxyXG4gICAgdGhpcy5pbml0ID0gdHJ1ZVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRDbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7IFRhYmxlVHlwZUVudW1bdGhpcy50eXBlXSB9ICR7IHRoaXMuY3VzdG9tQ2xhc3NlcyB9YDtcclxuICB9XHJcblxyXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGl0ZW1bdGhpcy50cmFja0J5SWRdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoYW5nZVNvcnQoKSB7XHJcbiAgICBjb25zdCBuZXdFdmVudERhdGE6IERhdGFTdGF0ZUNoYW5nZUV2ZW50ID0geyBwYWdlOiB0aGlzLmN1cnJlbnRQYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSB9O1xyXG5cclxuICAgIGlmICghdGhpcy5jb2xBcnJheS5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc29ydCkge1xyXG4gICAgICBuZXdFdmVudERhdGEuc29ydCA9IHtcclxuICAgICAgICBkaXI6IHRoaXMuc29ydC5kaXIgPT09ICdkZXNjJyA/ICdhc2MnIDogJ2Rlc2MnLFxyXG4gICAgICAgIGNvbDogdGhpcy5zb3J0LmNvbFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbmV3RXZlbnREYXRhLnNvcnQgPSB7XHJcbiAgICAgICAgZGlyOiAnYXNjJyxcclxuICAgICAgICBjb2w6IHRoaXMuY29sQXJyYXlbMF0ubmFtZVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGF0YVN0YXRlQ2hhbmdlZC5lbWl0KG5ld0V2ZW50RGF0YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29sdW1uU29ydGVkRGlyKGNvbHVtbjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLnNvcnQgJiYgdGhpcy5zb3J0LmNvbCA9PSBjb2x1bW4gJiYgdGhpcy5zb3J0LmRpcikge1xyXG4gICAgICByZXR1cm4gdGhpcy5zb3J0LmRpcjtcclxuICAgIH1cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNvcnRDb2x1bW4oY29sdW1uOiBzdHJpbmcsIHNvcnRhYmxlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoIXNvcnRhYmxlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBuZXdFdmVudERhdGE6IERhdGFTdGF0ZUNoYW5nZUV2ZW50ID0geyBwYWdlOiB0aGlzLmN1cnJlbnRQYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSB9O1xyXG5cclxuICAgIGlmICh0aGlzLnNvcnQgJiYgdGhpcy5zb3J0LmNvbCA9PSBjb2x1bW4pIHtcclxuICAgICAgaWYgKHRoaXMuc29ydC5kaXIgJiYgdGhpcy5zb3J0LmRpciA9PT0gJ2FzYycpIHtcclxuICAgICAgICBuZXdFdmVudERhdGEuc29ydCA9IHsgZGlyOiAnZGVzYycsIGNvbDogY29sdW1uIH07XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5ld0V2ZW50RGF0YS5zb3J0ID0geyBkaXI6ICdhc2MnLCBjb2w6IGNvbHVtbiB9O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGF0YVN0YXRlQ2hhbmdlZC5lbWl0KG5ld0V2ZW50RGF0YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xpY2tUb0Rvd25sb2FkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5kb3dubG9hZERhdGEuZW1pdChldmVudClcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVTb3J0U2VsZWN0KHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5ld0V2ZW50RGF0YTogRGF0YVN0YXRlQ2hhbmdlRXZlbnQgPSB7XHJcbiAgICAgIHBhZ2U6IHRoaXMuY3VycmVudFBhZ2UsXHJcbiAgICAgIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLFxyXG4gICAgICBzb3J0OiB7XHJcbiAgICAgICAgY29sOiB2YWx1ZS5uYW1lLFxyXG4gICAgICAgIGRpcjogdGhpcy5zb3J0Py5kaXJcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmRhdGFTdGF0ZUNoYW5nZWQuZW1pdChuZXdFdmVudERhdGEpXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25EYXRhU3RhdGVQYWdpbmF0b3JDaGFuZ2VkKHBhZ2luYXRpb246IFBhZ2luYXRlT3V0cHV0T2JqZWN0KTogdm9pZCB7XHJcbiAgICBjb25zdCBuZXdFdmVudERhdGE6IERhdGFTdGF0ZUNoYW5nZUV2ZW50ID0ge1xyXG4gICAgICBwYWdlOiBwYWdpbmF0aW9uLmN1cnJlbnRQYWdlLFxyXG4gICAgICBwYWdlU2l6ZTogcGFnaW5hdGlvbi5wYWdlU2l6ZVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodGhpcy5zb3J0ICYmIHRoaXMuc29ydC5jb2wgJiYgdGhpcy5zb3J0LmRpcikge1xyXG4gICAgICBuZXdFdmVudERhdGEuc29ydCA9IHsgZGlyOiB0aGlzLnNvcnQuZGlyLCBjb2w6IHRoaXMuc29ydC5jb2wgfTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRhdGFTdGF0ZUNoYW5nZWQuZW1pdChuZXdFdmVudERhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldExpbmtGb3JTdHJva2UobGluazogc3RyaW5nLCBkYXRhSXRlbTogVGFibGVCb2R5SXRlbSkge1xyXG4gICAgLy8g0YDQtdCz0YPQu9GP0YDQutC4XHJcbiAgICBjb25zdCByZWdFeHBQYXJhbXMgPSAvKD88PVxcWylbXlxcc1xcW1xcXV0rKD89XSkvZ2k7XHJcbiAgICAvLyDQvtGB0L3QvtCy0L3QvtC5INC80LDRgdGB0LjQslxyXG4gICAgY29uc3QgbGlua0FycmF5ID0gbGluay5zcGxpdCgnPycpXHJcbiAgICAvLyDQvNCw0YHRgdC40LLRiyDRgdGC0YDQvtC6IHVybCDQuCDQv9Cw0YDQsNC80LXRgtGA0L7QslxyXG4gICAgY29uc3QgYXJyYXlVcmwgPSBsaW5rQXJyYXlbMF0/LnNwbGl0KCcvJylcclxuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IGxpbmtBcnJheVsxXT8uc3BsaXQoJyYnKVxyXG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zT2JqID0gc2VhcmNoUGFyYW1zPy5tYXAoKHN0cikgPT4ge1xyXG4gICAgICBjb25zdCBzdHJQYXJhbURhdGEgPSBzdHIuc3BsaXQoJz0nKVsxXS5tYXRjaChyZWdFeHBQYXJhbXMpXHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgbmFtZTogc3RyLnNwbGl0KCc9JylbMF0sXHJcbiAgICAgICAgZGF0YTogc3RyUGFyYW1EYXRhID8gc3RyUGFyYW1EYXRhWzBdIDogc3RyLnNwbGl0KCc9JylbMF0sXHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gICAgLy8g0L7QsdGA0LDQsdC+0YLQutCwINGC0LXQu9CwIHVybFxyXG4gICAgY29uc3Qgc3RyVXJsID0gYXJyYXlVcmwubWFwKChzdHIpID0+IHtcclxuICAgICAgaWYgKHN0ci5tYXRjaChyZWdFeHBQYXJhbXMpKSB7XHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIHJldHVybiBkYXRhSXRlbVtzdHIubWF0Y2gocmVnRXhwUGFyYW1zKVswXV1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gc3RyXHJcbiAgICAgIH1cclxuICAgIH0pLmpvaW4oJy8nKVxyXG4gICAgLy8g0L7QsdGA0LDQsdC+0YLQutCwINC/0LDRgNCw0LzQtdGC0YDQvtCyXHJcbiAgICAvLyDQtdGB0LvQuCDQtdGB0YLRjCDQv9Cw0YDQsNC80LXRgtGA0YsgLSDQstC+0LfQstGA0LDRidCw0LXQvCDQuNGFINGB0YLRgNC+0LrQvtC5INGBINC00LjQvdCw0LzQuNGH0LXRgdC60LjQvNC4INC/0LDRgNCw0LzQtdGC0YDQsNC80LhcclxuXHJcbiAgICBjb25zdCBzdHJQYXJhbXMgPSBzZWFyY2hQYXJhbXNPYmogPyBzZWFyY2hQYXJhbXNPYmoubWFwKChwYXJhbSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICByZXR1cm4gYCR7IGluZGV4ID4gMCA/ICcnIDogJz8nIH0keyBwYXJhbS5uYW1lIH09JHsgZGF0YUl0ZW1bcGFyYW0uZGF0YV0gfWBcclxuICAgIH0pLmpvaW4oJyYnKSA6ICcnXHJcblxyXG4gICAgcmV0dXJuIGAkeyBzdHJVcmwgfSR7IHN0clBhcmFtcyB9YFxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2hhbmdlVHlwZVRhYmxlKHR5cGU6IFRhYmxlVHlwZSk6IHZvaWQge1xyXG4gICAgdGhpcy5jaGFuZ2VUeXBlVGFibGUuZW1pdCh0eXBlKVxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlUG9wdXAoaXNPcGVuOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmlzT3BlblNvcnQgPSBpc09wZW5cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1yeC10YWJsZVwiIFtjbGFzc109XCJnZXRDbGFzc2VzXCIgW2NsYXNzLm1iLTNdPVwicGFnZWFibGVcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyU2V0dGluZ3NcIj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJtcngtdGFibGUtY2FyZC1oZWFkZXIgcHktMTJweCBtYi0zXCJcclxuICAgICAgW2NsYXNzLm1yeC10YWJsZS1jYXJkLWhlYWRlci0tc3Vic3RyYXRlXT1cImhlYWRlclNldHRpbmdzLnN1YnN0cmF0ZVwiXHJcbiAgICAgICpuZ0lmPVwiaGVhZGVyU2V0dGluZ3MudHlwZSA9PT0gJ2RlZmF1bHQnXCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwibXJ4LXRhYmxlLWNhcmQtaGVhZGVyLS1sZWZ0IGNvbCBjb2wtMTIgY29sLW1kLTYgbWItMSBtYi1tZC0wIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24tY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb3VudGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC10YWJsZS1jYXJkLWhlYWRlci0tcmlnaHQgY29sIGNvbC0xMiBjb2wtbWQtNiBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNvcnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1sLTRcIiAqbmdJZj1cImhlYWRlclNldHRpbmdzLnRvZ2dsZVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidG9nZ2xlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJtcngtdGFibGUtY2FyZC1oZWFkZXIgbWItMyBwdC0yIHBiLTJcIlxyXG4gICAgICBbY2xhc3MubXJ4LXRhYmxlLWNhcmQtaGVhZGVyLS1zdWJzdHJhdGVdPVwiaGVhZGVyU2V0dGluZ3Muc3Vic3RyYXRlXCJcclxuICAgICAgKm5nSWY9XCJoZWFkZXJTZXR0aW5ncy50eXBlID09PSAnc2Vjb25kJ1wiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cIm1yeC10YWJsZS1jYXJkLWhlYWRlci0tbGVmdCBjb2wgY29sLTEyIGNvbC1zbS02IG1iLTEgbWItc20tMCBkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic29ydFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtcngtdGFibGUtY2FyZC1oZWFkZXItLXJpZ2h0IGNvbCBjb2wtMTIgY29sLXNtLTYgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24tY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkb3dubG9hZFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInR5cGVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtcngtdGFibGVfX3dyYXBwZXJcIiAqbmdTd2l0Y2hDYXNlPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgW2NsYXNzLm1yeC10YWJsZV9fd3JhcHBlci0tc3Vic3RyYXRlXT1cImNvbnRlbnRTZXR0aW5ncy5zdWJzdHJhdGVcIj5cclxuICAgICAgPHRhYmxlXHJcbiAgICAgICAgW2NsYXNzLnRhYmxlLXN0cmlwZWRdPVwic3RyaXBlZFwiXHJcbiAgICAgICAgW2NsYXNzLnRhYmxlLXNvbGlkXT1cIiFzdHJpcGVkXCJcclxuICAgICAgICBbY2xhc3MubXQtMl09XCJjb250ZW50U2V0dGluZ3Muc3Vic3RyYXRlXCJcclxuICAgICAgICBbY2xhc3MubWItM109XCJjb250ZW50U2V0dGluZ3Muc3Vic3RyYXRlICYmIGRhdGEubGVuZ3RoXCJcclxuICAgICAgPlxyXG4gICAgICAgIDx0aGVhZCBbY2xhc3MudGFibGUtaGVhZC1ncmF5XT1cIiFoZWFkZXJTZXR0aW5ncyB8fCBoZWFkZXJTZXR0aW5ncy5iYWNrZ3JvdW5kXCI+XHJcbiAgICAgICAgPHRyPlxyXG4gICAgICAgICAgPHRoXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2wgb2YgY29udGVudENoaWxkcmVuOyBsZXQgaW5kZXggPSBpbmRleDsgbGV0IGZpcnN0ID0gZmlyc3Q7IGxldCBsYXN0ID0gbGFzdDsgdHJhY2tCeTogdHJhY2tCeUZuXCJcclxuICAgICAgICAgICAgW2NsYXNzXT1cImNvbC5jdXN0b21DbGFzc2VzXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY29sLnRlbXBsYXRlSGVhZDsgZWxzZSBoZWFkZXJJdGVtVGVtcGxhdGVcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sLnNvcnRhYmxlOyBlbHNlIGRlZmF1bHRIZWFkQ29sXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtjbGFzcy50aC13cmFwcGVyXT1cInNvcnRhYmxlXCIgKGNsaWNrKT1cIm9uU29ydENvbHVtbihjb2wubmFtZSwgY29sLnNvcnRhYmxlKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBjb2wubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY29sdW1uU29ydGVkRGlyKGNvbC5uYW1lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtcngtdGFibGVfX3NvcnQtaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00IDlMOCAxM0wxMiA5XCIgZmlsbD1cIiNEQUQ1Q0VcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEyIDdMOCAzTDQgN1wiIGZpbGw9XCIjREFENUNFXCIvPlxyXG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEhlYWRDb2w+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PjxzcGFuPnt7IGNvbC5sYWJlbCB9fTwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVySXRlbVRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2wuc29ydGFibGU7IGVsc2UgZGVmYXVsdEhlYWRDb2xcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgW2NsYXNzLnRoLXdyYXBwZXJdPVwic29ydGFibGVcIiAoY2xpY2spPVwib25Tb3J0Q29sdW1uKGNvbC5uYW1lLCBjb2wuc29ydGFibGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2wudGVtcGxhdGVIZWFkOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY29sIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJjb2x1bW5Tb3J0ZWREaXIoY29sLm5hbWUpXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1yeC10YWJsZV9fc29ydC1pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTQgOUw4IDEzTDEyIDlcIiBmaWxsPVwiI0RBRDVDRVwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTIgN0w4IDNMNCA3XCIgZmlsbD1cIiNEQUQ1Q0VcIi8+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0SGVhZENvbD5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2wudGVtcGxhdGVIZWFkOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY29sLCBpbmRleCwgZmlyc3QsIGxhc3QgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L3RoPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC90aGVhZD5cclxuXHJcbiAgICAgICAgPHRib2R5PlxyXG4gICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgZGF0YUl0ZW0gb2YgZGF0YTsgbGV0IGluZGV4ID0gaW5kZXg7IGxldCBmaXJzdCA9IGZpcnN0OyBsZXQgbGFzdCA9IGxhc3RcIlxyXG4gICAgICAgICAgICBbY2xhc3MuLWhvdmVyZWRdPVwiaG92ZXJlZFwiPlxyXG4gICAgICAgICAgPHRkXHJcbiAgICAgICAgICAgICN0YWJsZVREXHJcbiAgICAgICAgICAgIGNsYXNzPVwicC0wXCJcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbCBvZiBjb250ZW50Q2hpbGRyZW5cIlxyXG4gICAgICAgICAgICBbY2xhc3NdPVwiY29sLmN1c3RvbUNsYXNzZXNcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8YSBjbGFzcz1cImxpbmstd3JhcHBlciB0ZC1jb250ZW50LXdyYXBwZXJcIiBbaHJlZl09XCJnZXRMaW5rRm9yU3Ryb2tlKGxpbmssIGRhdGFJdGVtKVwiICpuZ0lmPVwibGluayAmJiBjb2xbJ2lzTGluayddXCI+PC9hPlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2wudGVtcGxhdGVDZWxsOyBlbHNlIGJvZHlJdGVtVGVtcGxhdGVcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGQtY29udGVudC13cmFwcGVyIHAtMiBoLTEwMFwiPnt7IGRhdGFJdGVtW2NvbC5uYW1lXSB9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYm9keUl0ZW1UZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGQtY29udGVudC13cmFwcGVyIGgtMTAwXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sLnRlbXBsYXRlQ2VsbDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNvbCwgcm93OiBkYXRhSXRlbSwgaW5kZXgsIGZpcnN0LCBsYXN0IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC90cj5cclxuICAgICAgICA8L3Rib2R5PlxyXG4gICAgICA8L3RhYmxlPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1yeC10YWJsZV9fcmVzdWx0LW1lc3NhZ2VcIiAqbmdJZj1cIiFkYXRhLmxlbmd0aFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlbXB0eVJlc3VsdE1zZyA/IGVtcHR5UmVzdWx0TXNnVGVtcGxhdGVEZWZhdWx0IDogZW1wdHlSZXN1bHRNc2dUZW1wbGF0ZVwiPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtcngtdGFibGVfX292ZXJsYXlcIiBbQHZpc2libGVMb2FkaW5nXT1cImlzTG9hZGluZyA/ICdpbicgOiAnb3V0J1wiIFtuZ0NsYXNzXT1cInsnb3Blbic6IGlzTG9hZGluZ31cIj5cclxuICAgICAgICA8bXJ4LWxvYWRlciBzaXplPVwibGFyZ2VcIiBjb2xvcj1cImJyYW5kXCI+PC9tcngtbG9hZGVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJtcngtdGFibGVfX3dyYXBwZXJcIiAqbmdTd2l0Y2hDYXNlPVwiJ2NhcmRzJ1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRhdGE7IGxldCBpbmRleCA9IGluZGV4OyBsZXQgZmlyc3QgPSBmaXJzdDsgbGV0IGxhc3QgPSBsYXN0XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlQ2FyZDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0sIGluZGV4LCBmaXJzdCwgbGFzdCB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1yeC10YWJsZV9fcmVzdWx0LW1lc3NhZ2UtLXN1YnN0cmF0ZVwiICpuZ0lmPVwiIWRhdGEubGVuZ3RoXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVtcHR5UmVzdWx0TXNnID8gZW1wdHlSZXN1bHRNc2dUZW1wbGF0ZURlZmF1bHQgOiBlbXB0eVJlc3VsdE1zZ1RlbXBsYXRlXCI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1yeC10YWJsZV9fb3ZlcmxheVwiIFtAdmlzaWJsZUxvYWRpbmddPVwiaXNMb2FkaW5nID8gJ2luJyA6ICdvdXQnXCIgW25nQ2xhc3NdPVwieydvcGVuJzogaXNMb2FkaW5nfVwiPlxyXG4gICAgICAgIDxtcngtbG9hZGVyIHNpemU9XCJsYXJnZVwiIGNvbG9yPVwiYnJhbmRcIj48L21yeC1sb2FkZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cIm1yeC10YWJsZV9fcGFnaW5hdG9yIHB0LTIgcGItMlwiIFtjbGFzcy5tcngtdGFibGVfX3BhZ2luYXRvci0tc3Vic3RyYXRlXT1cInBhZ2luYXRvclNldHRpbmdzLnN1YnN0cmF0ZVwiICpuZ0lmPVwidG90YWxcIj5cclxuICA8bXJ4LXBhZ2luYXRvclxyXG4gICAgKm5nSWY9XCJwYWdlYWJsZVwiXHJcbiAgICBbdG90YWxdPVwidG90YWxcIlxyXG4gICAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcclxuICAgIFtwb3NpdGlvbl09XCJwYWdlYWJsZS5wb3NpdGlvblwiXHJcbiAgICBbcGFnZVNpemVzXT1cInBhZ2VhYmxlLnBhZ2VTaXplc1wiXHJcbiAgICBbY3VycmVudFBhZ2VdPVwiY3VycmVudFBhZ2VcIlxyXG4gICAgW3dpdGhQYWdlU2l6ZV09XCJwYWdlYWJsZS53aXRoUGFnZVNpemVcIlxyXG4gICAgKGRhdGFTdGF0ZUNoYW5nZWQpPVwib25EYXRhU3RhdGVQYWdpbmF0b3JDaGFuZ2VkKCRldmVudClcIj5cclxuICA8L21yeC1wYWdpbmF0b3I+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNjb3VudGVyVGVtcGxhdGU+XHJcbiAgPHNwYW4gY2xhc3M9XCJtcngtdGFibGUtY291bnRlclwiICpuZ0lmPVwiaGVhZGVyU2V0dGluZ3M/LmNvdW50XCI+XHJcbiAgICB7eyB0b3RhbCB9fSB7eyBoZWFkZXJTZXR0aW5ncz8uY291bnRUZXh0IHx8ICfQvdC+0LLQvtGB0YLQtdC5JyB9fVxyXG4gIDwvc3Bhbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjc29ydFRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggbXJ4LXRhYmxlLXNvcnRcIiAqbmdJZj1cImhlYWRlclNldHRpbmdzPy5zb3J0XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibXJ4LXRhYmxlLXNvcnQtc2NhbGVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1yeC10YWJsZS1zb3J0LXNjYWxlX190aXRsZSBtci0yXCIgKGNsaWNrKT1cImNoYW5nZVNvcnQoKVwiPlxyXG4gICAgICAgIDxzcGFuPtCh0L7RgNGC0LjRgNC+0LLQsNGC0Ywg0L/Qvjo8L3NwYW4+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtcngtdGFibGUtc29ydC1zY2FsZV9faWNvblwiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0Py5kaXIgPT09ICdkZXNjJ1wiIGNsYXNzPVwibXJ4LWljb24gaWNvbi1zb3J0aW5nLWRvd24gaWNvbi1mb250LTE2XCI+PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0Py5kaXIgPT09ICdhc2MnXCIgY2xhc3M9XCJtcngtaWNvbiBpY29uLXNvcnRpbmctdXAgaWNvbi1mb250LTE2XCI+PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtcngtdGFibGUtc29ydC1zY2FsZV9fZHJvcC10cmlnZ2VyXCIgW21yeFBvcHVwVHJpZ2dlcl09XCJzb3J0RHJvcGRvd25cIiBbcG9wdXBQb3NpdGlvbl09XCJwb3B1cFBvc2l0aW9uXCI+XHJcbiAgICAgICAgPHNwYW4+e3sgc2VsZWN0ZWRTb3J0IH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuXHJcbiAgICAgICAgICBjbGFzcz1cIm1yeC1pY29uIGljb24tZm9udC0xNlwiXHJcbiAgICAgICAgICBbY2xhc3MuaWNvbi1jaGV2cm9uLXVwXT1cImlzT3BlblNvcnRcIlxyXG4gICAgICAgICAgW2NsYXNzLmljb24tY2hldnJvbi1kb3duXT1cIiFpc09wZW5Tb3J0XCJcclxuICAgICAgICA+PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxtcngtcG9wdXAgI3NvcnREcm9wZG93biBbbWluV2lkdGhdPVwiJzI1MHB4J1wiIFtjbG9zZUFmdGVyQ2xpY2tdPVwidHJ1ZVwiICh0b2dnbGUpPVwidG9nZ2xlUG9wdXAoJGV2ZW50KVwiPlxyXG4gICAgICBAZm9yIChpdGVtIG9mIGNvbEFycmF5OyB0cmFjayBpdGVtKSB7XHJcbiAgICAgICAgPG1yeC1wb3B1cC1pdGVtIFtpZF09XCJpdGVtLnNvcnRMYWJlbFwiIChjbGlja2VkKT1cInVwZGF0ZVNvcnRTZWxlY3QoaXRlbSlcIj57eyBpdGVtLnNvcnRMYWJlbCB8fCBpdGVtLm5hbWUgfX1cclxuICAgICAgICA8L21yeC1wb3B1cC1pdGVtPlxyXG4gICAgICB9XHJcbiAgICA8L21yeC1wb3B1cD5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZG93bmxvYWRUZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwibXJ4LXRhYmxlLWRvd25sb2FkXCIgKGNsaWNrKT1cImNsaWNrVG9Eb3dubG9hZCgkZXZlbnQpXCIgKm5nSWY9XCJoZWFkZXJTZXR0aW5ncz8uZG93bmxvYWRcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwiZGVza3RvcFwiPtCh0LrQsNGH0LDRgtGMINC00LDQvdC90YvQtTwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1kb3dubG9hZCBpY29uLWZvbnQtMjRcIj48L3NwYW4+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3RvZ2dsZVRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJtcngtdGFibGUtdG9nZ2xlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibXJ4LXRhYmxlLXRvZ2dsZS0taXRlbSBtci0xXCIgKGNsaWNrKT1cIm9uQ2hhbmdlVHlwZVRhYmxlKCdjYXJkcycpXCIgW2NsYXNzLmFjdGl2ZV09XCJ0eXBlID09PSAnY2FyZHMnXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1jYXJkcy12aWV3IGljb24tZm9udC0yNFwiPjwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1yeC10YWJsZS10b2dnbGUtLWl0ZW1cIiAoY2xpY2spPVwib25DaGFuZ2VUeXBlVGFibGUoJ2RlZmF1bHQnKVwiIFtjbGFzcy5hY3RpdmVdPVwidHlwZSA9PT0gJ2RlZmF1bHQnXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi10YWJsZS12aWV3IGljb24tZm9udC0yNFwiPjwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNlbXB0eVJlc3VsdE1zZ1RlbXBsYXRlRGVmYXVsdD5cclxuICB7eyBlbXB0eVJlc3VsdE1zZyB9fVxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=