@kirbydesign/designsystem 8.5.1 → 8.5.2
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.
- package/action-group/action-group.component.d.ts +1 -4
- package/esm2020/action-group/action-group.component.mjs +3 -10
- package/esm2020/header/header.component.mjs +3 -4
- package/esm2020/page/page.component.mjs +1 -2
- package/fesm2015/kirbydesign-designsystem-action-group.mjs +2 -9
- package/fesm2015/kirbydesign-designsystem-action-group.mjs.map +1 -1
- package/fesm2015/kirbydesign-designsystem-header.mjs +2 -3
- package/fesm2015/kirbydesign-designsystem-header.mjs.map +1 -1
- package/fesm2015/kirbydesign-designsystem-page.mjs +0 -1
- package/fesm2015/kirbydesign-designsystem-page.mjs.map +1 -1
- package/fesm2020/kirbydesign-designsystem-action-group.mjs +2 -9
- package/fesm2020/kirbydesign-designsystem-action-group.mjs.map +1 -1
- package/fesm2020/kirbydesign-designsystem-header.mjs +2 -3
- package/fesm2020/kirbydesign-designsystem-header.mjs.map +1 -1
- package/fesm2020/kirbydesign-designsystem-page.mjs +0 -1
- package/fesm2020/kirbydesign-designsystem-page.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { AfterContentInit, InjectionToken, Renderer2 } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare type ActionGroupConfig = {
|
|
4
|
-
isResizable?: boolean;
|
|
5
4
|
isCondensed?: boolean;
|
|
6
5
|
defaultVisibleActions?: number;
|
|
7
6
|
maxVisibleActions?: number;
|
|
@@ -15,7 +14,6 @@ export declare class ActionGroupComponent implements AfterContentInit {
|
|
|
15
14
|
private renderer;
|
|
16
15
|
private config;
|
|
17
16
|
visibleActions?: number;
|
|
18
|
-
emphasizeActions?: boolean;
|
|
19
17
|
align: 'start' | 'end';
|
|
20
18
|
private buttonElements?;
|
|
21
19
|
private buttons?;
|
|
@@ -23,7 +21,6 @@ export declare class ActionGroupComponent implements AfterContentInit {
|
|
|
23
21
|
private dropdown;
|
|
24
22
|
_isCollapsed: boolean;
|
|
25
23
|
_collapsedActions: CollapsedAction[];
|
|
26
|
-
_isResizeable: boolean;
|
|
27
24
|
get _align(): string;
|
|
28
25
|
private collapseThreshold;
|
|
29
26
|
constructor(renderer: Renderer2, config: ActionGroupConfig);
|
|
@@ -35,6 +32,6 @@ export declare class ActionGroupComponent implements AfterContentInit {
|
|
|
35
32
|
private toggleDropdown;
|
|
36
33
|
private populateDropdown;
|
|
37
34
|
static ɵfac: i0.ɵɵFactoryDeclaration<ActionGroupComponent, [null, { optional: true; }]>;
|
|
38
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ActionGroupComponent, "kirby-action-group", never, { "visibleActions": "visibleActions"; "
|
|
35
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ActionGroupComponent, "kirby-action-group", never, { "visibleActions": "visibleActions"; "align": "align"; }, {}, ["buttonElements", "buttons"], ["button[kirby-button]"], true, never>;
|
|
39
36
|
}
|
|
40
37
|
export {};
|
|
@@ -11,7 +11,6 @@ export class ActionGroupComponent {
|
|
|
11
11
|
this.config = config;
|
|
12
12
|
this.align = 'end';
|
|
13
13
|
this._collapsedActions = [];
|
|
14
|
-
this._isResizeable = false;
|
|
15
14
|
this.collapseThreshold = 2;
|
|
16
15
|
}
|
|
17
16
|
get _align() {
|
|
@@ -41,7 +40,6 @@ export class ActionGroupComponent {
|
|
|
41
40
|
initializeFromConfig() {
|
|
42
41
|
if (!this.config)
|
|
43
42
|
return;
|
|
44
|
-
this._isResizeable = this.config.isResizable;
|
|
45
43
|
if (this.visibleActions === undefined && this.config.defaultVisibleActions !== undefined) {
|
|
46
44
|
this.visibleActions = this.config.defaultVisibleActions;
|
|
47
45
|
}
|
|
@@ -81,10 +79,10 @@ export class ActionGroupComponent {
|
|
|
81
79
|
}
|
|
82
80
|
}
|
|
83
81
|
/** @nocollapse */ ActionGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ActionGroupComponent, deps: [{ token: i0.Renderer2 }, { token: ACTIONGROUP_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
84
|
-
/** @nocollapse */ ActionGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ActionGroupComponent, isStandalone: true, selector: "kirby-action-group", inputs: { visibleActions: "visibleActions",
|
|
82
|
+
/** @nocollapse */ ActionGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ActionGroupComponent, isStandalone: true, selector: "kirby-action-group", inputs: { visibleActions: "visibleActions", align: "align" }, host: { properties: { "class.is-collapsed": "this._isCollapsed", "class": "this._align" } }, queries: [{ propertyName: "buttonElements", predicate: ButtonComponent, read: ElementRef }, { propertyName: "buttons", predicate: ButtonComponent }], viewQueries: [{ propertyName: "hiddenLayer", first: true, predicate: ["hiddenLayer"], descendants: true, read: ElementRef, static: true }, { propertyName: "dropdown", first: true, predicate: DropdownComponent, descendants: true }], ngImport: i0, template: "<ng-content select=\"button[kirby-button]\"></ng-content>\n\n<kirby-dropdown\n [items]=\"_collapsedActions\"\n [usePopover]=\"true\"\n [_isMoreMenu]=\"true\"\n popout=\"left\"\n (change)=\"onActionSelect($event)\"\n></kirby-dropdown>\n\n<div class=\"hidden-layer\" #hiddenLayer></div>\n", styles: [":host{display:flex;position:relative;overflow:hidden}:host(.align-end){justify-content:flex-end}:host(.align-end) .hidden-layer{order:-1}.hidden-layer{display:none;visibility:hidden}kirby-dropdown{margin:4px;display:none;z-index:1}:host(.is-collapsed) kirby-dropdown{display:inline-block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i1.DropdownComponent, selector: "kirby-dropdown", inputs: ["items", "selectedIndex", "focusedIndex", "itemTextProperty", "placeholder", "popout", "attentionLevel", "expand", "disabled", "hasError", "size", "tabindex", "usePopover", "_isMoreMenu"], outputs: ["change"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
85
83
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ActionGroupComponent, decorators: [{
|
|
86
84
|
type: Component,
|
|
87
|
-
args: [{ selector: 'kirby-action-group', standalone: true, imports: [CommonModule, ButtonComponent, DropdownModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"button[kirby-button]\"></ng-content>\n\n<kirby-dropdown\n [items]=\"_collapsedActions\"\n [usePopover]=\"true\"\n [_isMoreMenu]=\"true\"\n popout=\"left\"\n (change)=\"onActionSelect($event)\"\n></kirby-dropdown>\n\n<div class=\"hidden-layer\" #hiddenLayer></div>\n", styles: [":host{display:flex;position:relative;overflow:hidden}:host(.align-end){justify-content:flex-end}:host(.align-end) .hidden-layer{order:-1}.hidden-layer{display:none;visibility:hidden}
|
|
85
|
+
args: [{ selector: 'kirby-action-group', standalone: true, imports: [CommonModule, ButtonComponent, DropdownModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"button[kirby-button]\"></ng-content>\n\n<kirby-dropdown\n [items]=\"_collapsedActions\"\n [usePopover]=\"true\"\n [_isMoreMenu]=\"true\"\n popout=\"left\"\n (change)=\"onActionSelect($event)\"\n></kirby-dropdown>\n\n<div class=\"hidden-layer\" #hiddenLayer></div>\n", styles: [":host{display:flex;position:relative;overflow:hidden}:host(.align-end){justify-content:flex-end}:host(.align-end) .hidden-layer{order:-1}.hidden-layer{display:none;visibility:hidden}kirby-dropdown{margin:4px;display:none;z-index:1}:host(.is-collapsed) kirby-dropdown{display:inline-block}\n"] }]
|
|
88
86
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: undefined, decorators: [{
|
|
89
87
|
type: Optional
|
|
90
88
|
}, {
|
|
@@ -92,8 +90,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
92
90
|
args: [ACTIONGROUP_CONFIG]
|
|
93
91
|
}] }]; }, propDecorators: { visibleActions: [{
|
|
94
92
|
type: Input
|
|
95
|
-
}], emphasizeActions: [{
|
|
96
|
-
type: Input
|
|
97
93
|
}], align: [{
|
|
98
94
|
type: Input
|
|
99
95
|
}], buttonElements: [{
|
|
@@ -111,11 +107,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
111
107
|
}], _isCollapsed: [{
|
|
112
108
|
type: HostBinding,
|
|
113
109
|
args: ['class.is-collapsed']
|
|
114
|
-
}], _isResizeable: [{
|
|
115
|
-
type: HostBinding,
|
|
116
|
-
args: ['class.is-resizeable']
|
|
117
110
|
}], _align: [{
|
|
118
111
|
type: HostBinding,
|
|
119
112
|
args: ['class']
|
|
120
113
|
}] } });
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL2FjdGlvbi1ncm91cC9zcmMvYWN0aW9uLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL2FjdGlvbi1ncm91cC9zcmMvYWN0aW9uLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sY0FBYyxFQUNkLEtBQUssRUFDTCxRQUFRLEVBQ1IsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7O0FBUXZGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFvQixxQkFBcUIsQ0FBQyxDQUFDO0FBWS9GLE1BQU0sT0FBTyxvQkFBb0I7SUFrQy9CLFlBQ1UsUUFBbUIsRUFDcUIsTUFBeUI7UUFEakUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNxQixXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQTlCM0UsVUFBSyxHQUFvQixLQUFLLENBQUM7UUFnQi9CLHNCQUFpQixHQUFzQixFQUFFLENBQUM7UUFHMUMsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFPZCxzQkFBaUIsR0FBRyxDQUFDLENBQUM7SUFLM0IsQ0FBQztJQVZKLElBQ0ksTUFBTTtRQUNSLE9BQU8sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENB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TUFBTTtzQkFEVCxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5qZWN0LFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5wdXQsXG4gIE9wdGlvbmFsLFxuICBRdWVyeUxpc3QsXG4gIFJlbmRlcmVyMixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vYnV0dG9uJztcbmltcG9ydCB7IERyb3Bkb3duQ29tcG9uZW50LCBEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vZHJvcGRvd24nO1xuXG5leHBvcnQgdHlwZSBBY3Rpb25Hcm91cENvbmZpZyA9IHtcbiAgaXNSZXNpemFibGU/OiBib29sZWFuO1xuICBpc0NvbmRlbnNlZD86IGJvb2xlYW47XG4gIGRlZmF1bHRWaXNpYmxlQWN0aW9ucz86IG51bWJlcjtcbiAgbWF4VmlzaWJsZUFjdGlvbnM/OiBudW1iZXI7XG59O1xuZXhwb3J0IGNvbnN0IEFDVElPTkdST1VQX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBY3Rpb25Hcm91cENvbmZpZz4oJ2FjdGlvbi1ncm91cC5jb25maWcnKTtcblxudHlwZSBDb2xsYXBzZWRBY3Rpb24gPSB7IGJ1dHRvbjogSFRNTEJ1dHRvbkVsZW1lbnQ7IHRleHQ6IHN0cmluZyB9O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdraXJieS1hY3Rpb24tZ3JvdXAnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBCdXR0b25Db21wb25lbnQsIERyb3Bkb3duTW9kdWxlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb24tZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hY3Rpb24tZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQWN0aW9uR3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgQElucHV0KCkgdmlzaWJsZUFjdGlvbnM/OiBudW1iZXI7XG5cbiAgQElucHV0KCkgZW1waGFzaXplQWN0aW9ucz86IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgYWxpZ246ICdzdGFydCcgfCAnZW5kJyA9ICdlbmQnO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oQnV0dG9uQ29tcG9uZW50LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgcHJpdmF0ZSBidXR0b25FbGVtZW50cz86IFF1ZXJ5TGlzdDxcbiAgICBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PlxuICA+O1xuICBAQ29udGVudENoaWxkcmVuKEJ1dHRvbkNvbXBvbmVudCkgcHJpdmF0ZSBidXR0b25zPzogUXVlcnlMaXN0PEJ1dHRvbkNvbXBvbmVudD47XG4gIEBWaWV3Q2hpbGQoJ2hpZGRlbkxheWVyJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgcHJpdmF0ZSBoaWRkZW5MYXllciE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAvKlxuICAgKiBURU1QT1JBUlkgTU9SRS1NRU5VXG4gICAqIGRyb3Bkb3duIFZpZXdDaGlsZCBpcyBvbmx5IHVzZWQgZm9yIHRlbXBvcmFyeSBtb3JlLW1lbnVcbiAgICovXG4gIEBWaWV3Q2hpbGQoRHJvcGRvd25Db21wb25lbnQpIHByaXZhdGUgZHJvcGRvd24hOiBEcm9wZG93bkNvbXBvbmVudDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLWNvbGxhcHNlZCcpXG4gIF9pc0NvbGxhcHNlZDogYm9vbGVhbjtcbiAgX2NvbGxhcHNlZEFjdGlvbnM6IENvbGxhcHNlZEFjdGlvbltdID0gW107XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1yZXNpemVhYmxlJylcbiAgX2lzUmVzaXplYWJsZSA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgX2FsaWduKCkge1xuICAgIHJldHVybiAnYWxpZ24tJyArIHRoaXMuYWxpZ247XG4gIH1cblxuICBwcml2YXRlIGNvbGxhcHNlVGhyZXNob2xkID0gMjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChBQ1RJT05HUk9VUF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBBY3Rpb25Hcm91cENvbmZpZ1xuICApIHt9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIC8vIEVuc3VyZSB3ZSBjb2xsYXBzZSBhY2NvcmRpbmcgdG8gdmlzaWJsZUFjdGlvbnMgaWYgbG93ZXIgdGhhbiBvdXIgZGVmYXVsdCB0aHJlc2hvbGQgKDIpLlxuICAgIC8vIEkuZS4gaWYgdGhlcmUgYXJlIDIgYnV0dG9ucyBhbmQgdmlzaWJsZUFjdGlvbnMgPSAxIHdlJ2xsIGNvbGxhcHNlIHRoZSAybmQgYnV0dG9uIGludG8gdGhlIG1lbnU6XG4gICAgaWYgKHRoaXMudmlzaWJsZUFjdGlvbnMgPCB0aGlzLmNvbGxhcHNlVGhyZXNob2xkKSB7XG4gICAgICB0aGlzLmNvbGxhcHNlVGhyZXNob2xkID0gdGhpcy52aXNpYmxlQWN0aW9ucztcbiAgICB9XG5cbiAgICB0aGlzLmluaXRpYWxpemVGcm9tQ29uZmlnKCk7XG5cbiAgICBpZiAodGhpcy52aXNpYmxlQWN0aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVDb2xsYXBzaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgb25BY3Rpb25TZWxlY3QoYWN0aW9uOiBDb2xsYXBzZWRBY3Rpb24pIHtcbiAgICAvLyBEcm9wZG93biBzaG91bGQgbm90IHBlcnNpc3Qgc2VsZWN0ZWQgaXRlbSwgd2Ugd2FudCBpdCB0byBiZSByZS1zZWxlY3RhYmxlXG4gICAgdGhpcy5kcm9wZG93bi5zZWxlY3RlZEluZGV4ID0gLTE7XG5cbiAgICBjb25zdCBldmVudCA9IG5ldyBQb2ludGVyRXZlbnQoJ2NsaWNrJywge1xuICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgIGNhbmNlbGFibGU6IHRydWUsXG4gICAgICB2aWV3OiB3aW5kb3csXG4gICAgfSk7XG5cbiAgICBhY3Rpb24uYnV0dG9uLmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplRnJvbUNvbmZpZygpIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnKSByZXR1cm47XG5cbiAgICB0aGlzLl9pc1Jlc2l6ZWFibGUgPSB0aGlzLmNvbmZpZy5pc1Jlc2l6YWJsZTtcblxuICAgIGlmICh0aGlzLnZpc2libGVBY3Rpb25zID09PSB1bmRlZmluZWQgJiYgdGhpcy5jb25maWcuZGVmYXVsdFZpc2libGVBY3Rpb25zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudmlzaWJsZUFjdGlvbnMgPSB0aGlzLmNvbmZpZy5kZWZhdWx0VmlzaWJsZUFjdGlvbnM7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlnLm1heFZpc2libGVBY3Rpb25zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIERvbid0IG92ZXJ3cml0ZSB2aXNpYmxlQWN0aW9ucyB2YWx1ZSBpZiBjb25maWd1cmVkIGxvd2VyIHRoYW4gbWF4VmlzaWJsZUFjdGlvbnM6XG4gICAgICBpZiAoISh0aGlzLnZpc2libGVBY3Rpb25zIDwgdGhpcy5jb25maWcubWF4VmlzaWJsZUFjdGlvbnMpKSB7XG4gICAgICAgIHRoaXMudmlzaWJsZUFjdGlvbnMgPSB0aGlzLmNvbmZpZy5tYXhWaXNpYmxlQWN0aW9ucztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25maWcuaXNDb25kZW5zZWQpIHtcbiAgICAgIHRoaXMuYnV0dG9ucz8uZm9yRWFjaCgoYnV0dG9uKSA9PiAoYnV0dG9uLnNob3dJY29uT25seSA9IHRydWUpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVDb2xsYXBzaW5nKCkge1xuICAgIGlmICh0aGlzLmJ1dHRvbkVsZW1lbnRzLmxlbmd0aCA8PSB0aGlzLmNvbGxhcHNlVGhyZXNob2xkKSByZXR1cm47XG5cbiAgICB0aGlzLm1vdmVCdXR0b25zKCk7XG4gICAgdGhpcy5wb3B1bGF0ZURyb3Bkb3duKCk7XG4gICAgdGhpcy50b2dnbGVEcm9wZG93bigpO1xuICB9XG5cbiAgcHJpdmF0ZSBtb3ZlQnV0dG9ucygpIHtcbiAgICBjb25zdCBidXR0b25zVG9IaWRlID0gWy4uLnRoaXMuYnV0dG9uRWxlbWVudHNdLnNsaWNlKHRoaXMudmlzaWJsZUFjdGlvbnMpO1xuICAgIGJ1dHRvbnNUb0hpZGUuZm9yRWFjaCgoYnV0dG9uKSA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuaGlkZGVuTGF5ZXIubmF0aXZlRWxlbWVudCwgYnV0dG9uLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGVEcm9wZG93bigpIHtcbiAgICBjb25zdCBoYXNIaWRkZW5CdXR0b25zID0gdGhpcy5oaWRkZW5MYXllci5uYXRpdmVFbGVtZW50LmNoaWxkRWxlbWVudENvdW50ID4gMDtcbiAgICB0aGlzLl9pc0NvbGxhcHNlZCA9IGhhc0hpZGRlbkJ1dHRvbnM7XG4gIH1cblxuICBwcml2YXRlIHBvcHVsYXRlRHJvcGRvd24oKSB7XG4gICAgY29uc3QgaGlkZGVuQnV0dG9ucyA9IEFycmF5LmZyb20oXG4gICAgICB0aGlzLmhpZGRlbkxheWVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5cbiAgICApIGFzIEhUTUxCdXR0b25FbGVtZW50W107XG5cbiAgICB0aGlzLl9jb2xsYXBzZWRBY3Rpb25zID0gaGlkZGVuQnV0dG9ucy5tYXAoKGJ1dHRvbikgPT4gKHtcbiAgICAgIGJ1dHRvbixcbiAgICAgIHRleHQ6IGJ1dHRvbi50ZXh0Q29udGVudC50cmltKCksXG4gICAgfSkpO1xuICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJidXR0b25ba2lyYnktYnV0dG9uXVwiPjwvbmctY29udGVudD5cblxuPGtpcmJ5LWRyb3Bkb3duXG4gIFtpdGVtc109XCJfY29sbGFwc2VkQWN0aW9uc1wiXG4gIFt1c2VQb3BvdmVyXT1cInRydWVcIlxuICBbX2lzTW9yZU1lbnVdPVwidHJ1ZVwiXG4gIHBvcG91dD1cImxlZnRcIlxuICAoY2hhbmdlKT1cIm9uQWN0aW9uU2VsZWN0KCRldmVudClcIlxuPjwva2lyYnktZHJvcGRvd24+XG5cbjxkaXYgY2xhc3M9XCJoaWRkZW4tbGF5ZXJcIiAjaGlkZGVuTGF5ZXI+PC9kaXY+XG4iXX0=
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL2FjdGlvbi1ncm91cC9zcmMvYWN0aW9uLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL2FjdGlvbi1ncm91cC9zcmMvYWN0aW9uLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sY0FBYyxFQUNkLEtBQUssRUFDTCxRQUFRLEVBQ1IsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7O0FBT3ZGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFvQixxQkFBcUIsQ0FBQyxDQUFDO0FBWS9GLE1BQU0sT0FBTyxvQkFBb0I7SUE2Qi9CLFlBQ1UsUUFBbUIsRUFDcUIsTUFBeUI7UUFEakUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNxQixXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQTNCM0UsVUFBSyxHQUFvQixLQUFLLENBQUM7UUFnQi9CLHNCQUFpQixHQUFzQixFQUFFLENBQUM7UUFPbEMsc0JBQWlCLEdBQUcsQ0FBQyxDQUFDO0lBSzNCLENBQUM7SUFWSixJQUNJLE1BQU07UUFDUixPQUFPLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFTRCxrQkFBa0I7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QUFDLGlCQUFpQixHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdEQsTUFBTTtZQUNOLElBQUksRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRTtTQUNoQyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7O29JQTdHVSxvQkFBb0IsMkNBK0JULGtCQUFrQjt3SEEvQjdCLG9CQUFvQix3UUFNZCxlQUFlLFFBQVUsVUFBVSwwQ0FHbkMsZUFBZSxvSEFDRSxVQUFVLHNFQU1qQyxpQkFBaUIsZ0RDcEQ5QixxU0FXQSwyVkRvQlksWUFBWSw4QkFBbUIsY0FBYzsyRkFLNUMsb0JBQW9CO2tCQVJoQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGNBQWMsQ0FBQyxtQkFDdkMsdUJBQXVCLENBQUMsTUFBTTs7MEJBbUM1QyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGtCQUFrQjs0Q0E5Qi9CLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR04sS0FBSztzQkFESixLQUFLO2dCQUcwRCxjQUFjO3NCQUE3RSxlQUFlO3VCQUFDLGVBQWUsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBR1osT0FBTztzQkFBaEQsZUFBZTt1QkFBQyxlQUFlO2dCQUV4QixXQUFXO3NCQURsQixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFNdEIsUUFBUTtzQkFBN0MsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBRzVCLFlBQVk7c0JBRFgsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBSzdCLE1BQU07c0JBRFQsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgUXVlcnlMaXN0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2J1dHRvbic7XG5pbXBvcnQgeyBEcm9wZG93bkNvbXBvbmVudCwgRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2Ryb3Bkb3duJztcblxuZXhwb3J0IHR5cGUgQWN0aW9uR3JvdXBDb25maWcgPSB7XG4gIGlzQ29uZGVuc2VkPzogYm9vbGVhbjtcbiAgZGVmYXVsdFZpc2libGVBY3Rpb25zPzogbnVtYmVyO1xuICBtYXhWaXNpYmxlQWN0aW9ucz86IG51bWJlcjtcbn07XG5leHBvcnQgY29uc3QgQUNUSU9OR1JPVVBfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPEFjdGlvbkdyb3VwQ29uZmlnPignYWN0aW9uLWdyb3VwLmNvbmZpZycpO1xuXG50eXBlIENvbGxhcHNlZEFjdGlvbiA9IHsgYnV0dG9uOiBIVE1MQnV0dG9uRWxlbWVudDsgdGV4dDogc3RyaW5nIH07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tpcmJ5LWFjdGlvbi1ncm91cCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEJ1dHRvbkNvbXBvbmVudCwgRHJvcGRvd25Nb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FjdGlvbi1ncm91cC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBBY3Rpb25Hcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICBASW5wdXQoKSB2aXNpYmxlQWN0aW9ucz86IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBhbGlnbjogJ3N0YXJ0JyB8ICdlbmQnID0gJ2VuZCc7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihCdXR0b25Db21wb25lbnQsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBwcml2YXRlIGJ1dHRvbkVsZW1lbnRzPzogUXVlcnlMaXN0PFxuICAgIEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+XG4gID47XG4gIEBDb250ZW50Q2hpbGRyZW4oQnV0dG9uQ29tcG9uZW50KSBwcml2YXRlIGJ1dHRvbnM/OiBRdWVyeUxpc3Q8QnV0dG9uQ29tcG9uZW50PjtcbiAgQFZpZXdDaGlsZCgnaGlkZGVuTGF5ZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwcml2YXRlIGhpZGRlbkxheWVyITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIC8qXG4gICAqIFRFTVBPUkFSWSBNT1JFLU1FTlVcbiAgICogZHJvcGRvd24gVmlld0NoaWxkIGlzIG9ubHkgdXNlZCBmb3IgdGVtcG9yYXJ5IG1vcmUtbWVudVxuICAgKi9cbiAgQFZpZXdDaGlsZChEcm9wZG93bkNvbXBvbmVudCkgcHJpdmF0ZSBkcm9wZG93biE6IERyb3Bkb3duQ29tcG9uZW50O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaXMtY29sbGFwc2VkJylcbiAgX2lzQ29sbGFwc2VkOiBib29sZWFuO1xuICBfY29sbGFwc2VkQWN0aW9uczogQ29sbGFwc2VkQWN0aW9uW10gPSBbXTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IF9hbGlnbigpIHtcbiAgICByZXR1cm4gJ2FsaWduLScgKyB0aGlzLmFsaWduO1xuICB9XG5cbiAgcHJpdmF0ZSBjb2xsYXBzZVRocmVzaG9sZCA9IDI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQUNUSU9OR1JPVVBfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogQWN0aW9uR3JvdXBDb25maWdcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBFbnN1cmUgd2UgY29sbGFwc2UgYWNjb3JkaW5nIHRvIHZpc2libGVBY3Rpb25zIGlmIGxvd2VyIHRoYW4gb3VyIGRlZmF1bHQgdGhyZXNob2xkICgyKS5cbiAgICAvLyBJLmUuIGlmIHRoZXJlIGFyZSAyIGJ1dHRvbnMgYW5kIHZpc2libGVBY3Rpb25zID0gMSB3ZSdsbCBjb2xsYXBzZSB0aGUgMm5kIGJ1dHRvbiBpbnRvIHRoZSBtZW51OlxuICAgIGlmICh0aGlzLnZpc2libGVBY3Rpb25zIDwgdGhpcy5jb2xsYXBzZVRocmVzaG9sZCkge1xuICAgICAgdGhpcy5jb2xsYXBzZVRocmVzaG9sZCA9IHRoaXMudmlzaWJsZUFjdGlvbnM7XG4gICAgfVxuXG4gICAgdGhpcy5pbml0aWFsaXplRnJvbUNvbmZpZygpO1xuXG4gICAgaWYgKHRoaXMudmlzaWJsZUFjdGlvbnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5pbml0aWFsaXplQ29sbGFwc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIG9uQWN0aW9uU2VsZWN0KGFjdGlvbjogQ29sbGFwc2VkQWN0aW9uKSB7XG4gICAgLy8gRHJvcGRvd24gc2hvdWxkIG5vdCBwZXJzaXN0IHNlbGVjdGVkIGl0ZW0sIHdlIHdhbnQgaXQgdG8gYmUgcmUtc2VsZWN0YWJsZVxuICAgIHRoaXMuZHJvcGRvd24uc2VsZWN0ZWRJbmRleCA9IC0xO1xuXG4gICAgY29uc3QgZXZlbnQgPSBuZXcgUG9pbnRlckV2ZW50KCdjbGljaycsIHtcbiAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICAgICAgdmlldzogd2luZG93LFxuICAgIH0pO1xuXG4gICAgYWN0aW9uLmJ1dHRvbi5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUZyb21Db25maWcoKSB7XG4gICAgaWYgKCF0aGlzLmNvbmZpZykgcmV0dXJuO1xuXG4gICAgaWYgKHRoaXMudmlzaWJsZUFjdGlvbnMgPT09IHVuZGVmaW5lZCAmJiB0aGlzLmNvbmZpZy5kZWZhdWx0VmlzaWJsZUFjdGlvbnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy52aXNpYmxlQWN0aW9ucyA9IHRoaXMuY29uZmlnLmRlZmF1bHRWaXNpYmxlQWN0aW9ucztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25maWcubWF4VmlzaWJsZUFjdGlvbnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gRG9uJ3Qgb3ZlcndyaXRlIHZpc2libGVBY3Rpb25zIHZhbHVlIGlmIGNvbmZpZ3VyZWQgbG93ZXIgdGhhbiBtYXhWaXNpYmxlQWN0aW9uczpcbiAgICAgIGlmICghKHRoaXMudmlzaWJsZUFjdGlvbnMgPCB0aGlzLmNvbmZpZy5tYXhWaXNpYmxlQWN0aW9ucykpIHtcbiAgICAgICAgdGhpcy52aXNpYmxlQWN0aW9ucyA9IHRoaXMuY29uZmlnLm1heFZpc2libGVBY3Rpb25zO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbmZpZy5pc0NvbmRlbnNlZCkge1xuICAgICAgdGhpcy5idXR0b25zPy5mb3JFYWNoKChidXR0b24pID0+IChidXR0b24uc2hvd0ljb25Pbmx5ID0gdHJ1ZSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUNvbGxhcHNpbmcoKSB7XG4gICAgaWYgKHRoaXMuYnV0dG9uRWxlbWVudHMubGVuZ3RoIDw9IHRoaXMuY29sbGFwc2VUaHJlc2hvbGQpIHJldHVybjtcblxuICAgIHRoaXMubW92ZUJ1dHRvbnMoKTtcbiAgICB0aGlzLnBvcHVsYXRlRHJvcGRvd24oKTtcbiAgICB0aGlzLnRvZ2dsZURyb3Bkb3duKCk7XG4gIH1cblxuICBwcml2YXRlIG1vdmVCdXR0b25zKCkge1xuICAgIGNvbnN0IGJ1dHRvbnNUb0hpZGUgPSBbLi4udGhpcy5idXR0b25FbGVtZW50c10uc2xpY2UodGhpcy52aXNpYmxlQWN0aW9ucyk7XG4gICAgYnV0dG9uc1RvSGlkZS5mb3JFYWNoKChidXR0b24pID0+IHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5oaWRkZW5MYXllci5uYXRpdmVFbGVtZW50LCBidXR0b24ubmF0aXZlRWxlbWVudCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZURyb3Bkb3duKCkge1xuICAgIGNvbnN0IGhhc0hpZGRlbkJ1dHRvbnMgPSB0aGlzLmhpZGRlbkxheWVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRFbGVtZW50Q291bnQgPiAwO1xuICAgIHRoaXMuX2lzQ29sbGFwc2VkID0gaGFzSGlkZGVuQnV0dG9ucztcbiAgfVxuXG4gIHByaXZhdGUgcG9wdWxhdGVEcm9wZG93bigpIHtcbiAgICBjb25zdCBoaWRkZW5CdXR0b25zID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMuaGlkZGVuTGF5ZXIubmF0aXZlRWxlbWVudC5jaGlsZHJlblxuICAgICkgYXMgSFRNTEJ1dHRvbkVsZW1lbnRbXTtcblxuICAgIHRoaXMuX2NvbGxhcHNlZEFjdGlvbnMgPSBoaWRkZW5CdXR0b25zLm1hcCgoYnV0dG9uKSA9PiAoe1xuICAgICAgYnV0dG9uLFxuICAgICAgdGV4dDogYnV0dG9uLnRleHRDb250ZW50LnRyaW0oKSxcbiAgICB9KSk7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cImJ1dHRvbltraXJieS1idXR0b25dXCI+PC9uZy1jb250ZW50PlxuXG48a2lyYnktZHJvcGRvd25cbiAgW2l0ZW1zXT1cIl9jb2xsYXBzZWRBY3Rpb25zXCJcbiAgW3VzZVBvcG92ZXJdPVwidHJ1ZVwiXG4gIFtfaXNNb3JlTWVudV09XCJ0cnVlXCJcbiAgcG9wb3V0PVwibGVmdFwiXG4gIChjaGFuZ2UpPVwib25BY3Rpb25TZWxlY3QoJGV2ZW50KVwiXG4+PC9raXJieS1kcm9wZG93bj5cblxuPGRpdiBjbGFzcz1cImhpZGRlbi1sYXllclwiICNoaWRkZW5MYXllcj48L2Rpdj5cbiJdfQ==
|
|
@@ -52,7 +52,6 @@ export class HeaderComponent {
|
|
|
52
52
|
}
|
|
53
53
|
ngOnInit() {
|
|
54
54
|
this.actionGroupConfig = {
|
|
55
|
-
isResizable: this.emphasizeActions,
|
|
56
55
|
defaultVisibleActions: this.emphasizeActions ? undefined : 1,
|
|
57
56
|
};
|
|
58
57
|
this._actionGroupInjector = Injector.create({
|
|
@@ -81,10 +80,10 @@ export class HeaderComponent {
|
|
|
81
80
|
}
|
|
82
81
|
}
|
|
83
82
|
/** @nocollapse */ HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: HeaderComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
84
|
-
/** @nocollapse */ HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: HeaderComponent, selector: "kirby-header", inputs: { centered: "centered", titleMaxLines: "titleMaxLines", emphasizeActions: "emphasizeActions", title: "title", value: "value", valueUnit: "valueUnit", subtitle1: "subtitle1", subtitle2: "subtitle2" }, outputs: { titleClick: "titleClick" }, host: { properties: { "class.centered": "this.centered" } }, queries: [{ propertyName: "avatar", first: true, predicate: AvatarComponent, descendants: true }, { propertyName: "progressCircle", first: true, predicate: ProgressCircleComponent, descendants: true }, { propertyName: "flag", first: true, predicate: FlagComponent, descendants: true }, { propertyName: "actionsTemplate", first: true, predicate: HeaderActionsDirective, descendants: true, read: (TemplateRef) }, { propertyName: "customSectionTemplate", first: true, predicate: HeaderCustomSectionDirective, descendants: true, read: (TemplateRef) }, { propertyName: "titleActionIconTemplate", first: true, predicate: HeaderTitleActionIconDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "titleElement", first: true, predicate: ["titleElement"], descendants: true, read: ElementRef }, { propertyName: "actionsElement", first: true, predicate: ["actionsElement"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div *ngIf=\"!!avatar || !!progressCircle\" class=\"avatar\">\n <ng-content select=\"kirby-avatar,kirby-progress-circle\"></ng-content>\n</div>\n\n<div *ngIf=\"!!flag\" class=\"flag\">\n <ng-content select=\"kirby-flag\"></ng-content>\n</div>\n\n<div class=\"container\">\n <!-- Title and value - title: -->\n <h1 *ngIf=\"!!title && !!value\" #titleElement class=\"title kirby-text-medium\" [class.clickable]=\"titleClick.observed\" [class.has-icon]=\"!!titleActionIconTemplate\" (click)=\"onTitleClick($event)\">\n {{ title }}\n <ng-container *ngTemplateOutlet=\"titleActionIconTemplate\"></ng-container>\n </h1>\n <div class=\"title-container\">\n <!-- Only title, no value: -->\n <h1 *ngIf=\"!!title && !value\" #titleElement class=\"title\" [kirbyFitHeading]=\"fitHeadingConfig\">\n {{ title }}\n </h1>\n \n <!-- Title and value - value: -->\n <h3 *ngIf=\"!!value\" class=\"value kirby-text-display-3\" [kirbyFitHeading]=\"fitHeadingConfig\">{{ value }}<span class=\"value-unit semi-dark-text\" *ngIf=\"!!valueUnit\">{{ valueUnit }}</span></h3>\n \n <!-- Subtitles: -->\n <div *ngIf=\"!!subtitle1\" class=\"subtitle1 kirby-text-small\">\n {{ subtitle1 }}\n </div>\n <div *ngIf=\"!!subtitle2\" class=\"subtitle2 kirby-text-small\">\n {{ subtitle2 }}\n </div>\n\n <!-- Custom section -->\n <div\n *ngIf=\"!!customSectionTemplate\"\n class=\"custom-section\"\n >\n <ng-container *ngTemplateOutlet=\"customSectionTemplate\"></ng-container>\n </div>\n </div>\n \n <!-- Actions: -->\n <div\n *ngIf=\"!!actionsTemplate\"\n #actionsElement\n class=\"actions\"\n [class.emphasize]=\"emphasizeActions\"\n >\n <ng-container *ngTemplateOutlet=\"actionsTemplate; injector: _actionGroupInjector\"></ng-container>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column;margin-top:16px;margin-bottom:32px}@media (min-width: 721px){:host{margin-top:24px}}.container{display:flex;flex-direction:column;align-items:flex-start;max-width:100%;overflow:hidden}@media (min-width: 721px){.container{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:16px}.
|
|
83
|
+
/** @nocollapse */ HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: HeaderComponent, selector: "kirby-header", inputs: { centered: "centered", titleMaxLines: "titleMaxLines", emphasizeActions: "emphasizeActions", title: "title", value: "value", valueUnit: "valueUnit", subtitle1: "subtitle1", subtitle2: "subtitle2" }, outputs: { titleClick: "titleClick" }, host: { properties: { "class.centered": "this.centered" } }, queries: [{ propertyName: "avatar", first: true, predicate: AvatarComponent, descendants: true }, { propertyName: "progressCircle", first: true, predicate: ProgressCircleComponent, descendants: true }, { propertyName: "flag", first: true, predicate: FlagComponent, descendants: true }, { propertyName: "actionsTemplate", first: true, predicate: HeaderActionsDirective, descendants: true, read: (TemplateRef) }, { propertyName: "customSectionTemplate", first: true, predicate: HeaderCustomSectionDirective, descendants: true, read: (TemplateRef) }, { propertyName: "titleActionIconTemplate", first: true, predicate: HeaderTitleActionIconDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "titleElement", first: true, predicate: ["titleElement"], descendants: true, read: ElementRef }, { propertyName: "actionsElement", first: true, predicate: ["actionsElement"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div *ngIf=\"!!avatar || !!progressCircle\" class=\"avatar\">\n <ng-content select=\"kirby-avatar,kirby-progress-circle\"></ng-content>\n</div>\n\n<div *ngIf=\"!!flag\" class=\"flag\">\n <ng-content select=\"kirby-flag\"></ng-content>\n</div>\n\n<div class=\"container\">\n <!-- Title and value - title: -->\n <h1 *ngIf=\"!!title && !!value\" #titleElement class=\"title kirby-text-medium\" [class.clickable]=\"titleClick.observed\" [class.has-icon]=\"!!titleActionIconTemplate\" (click)=\"onTitleClick($event)\">\n {{ title }}\n <ng-container *ngTemplateOutlet=\"titleActionIconTemplate\"></ng-container>\n </h1>\n <div class=\"title-container\">\n <!-- Only title, no value: -->\n <h1 *ngIf=\"!!title && !value\" #titleElement class=\"title\" [kirbyFitHeading]=\"fitHeadingConfig\">\n {{ title }}\n </h1>\n \n <!-- Title and value - value: -->\n <h3 *ngIf=\"!!value\" class=\"value kirby-text-display-3\" [kirbyFitHeading]=\"fitHeadingConfig\">{{ value }}<span class=\"value-unit semi-dark-text\" *ngIf=\"!!valueUnit\">{{ valueUnit }}</span></h3>\n \n <!-- Subtitles: -->\n <div *ngIf=\"!!subtitle1\" class=\"subtitle1 kirby-text-small\">\n {{ subtitle1 }}\n </div>\n <div *ngIf=\"!!subtitle2\" class=\"subtitle2 kirby-text-small\">\n {{ subtitle2 }}\n </div>\n\n <!-- Custom section -->\n <div\n *ngIf=\"!!customSectionTemplate\"\n class=\"custom-section\"\n >\n <ng-container *ngTemplateOutlet=\"customSectionTemplate\"></ng-container>\n </div>\n </div>\n \n <!-- Actions: -->\n <div\n *ngIf=\"!!actionsTemplate\"\n #actionsElement\n class=\"actions\"\n [class.emphasize]=\"emphasizeActions\"\n >\n <ng-container *ngTemplateOutlet=\"actionsTemplate; injector: _actionGroupInjector\"></ng-container>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column;margin-top:16px;margin-bottom:32px}@media (min-width: 721px){:host{margin-top:24px}}.container{display:flex;flex-direction:column;align-items:flex-start;max-width:100%;overflow:hidden}@media (min-width: 721px){:host(:not(.single-column)) .container{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:16px}:host(:not(.single-column)) .title-container{grid-column-start:1}}:host(.centered){align-items:center}:host(.centered) .container{align-items:center}:host(.centered) .container>h1.title{text-align:center}:host(.centered) .container>h1.title.has-icon{justify-content:center}:host(.centered) .title-container{align-items:center;text-align:center}@media (min-width: 721px){:host(.centered):not(.single-column) .container{grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr);align-self:stretch}:host(.centered):not(.single-column) .actions{align-self:flex-start}:host(.centered):not(.single-column) .container>h1.title,:host(.centered):not(.single-column) .title-container{grid-column-start:2}}.actions{margin-top:24px}@media (max-width: 720px){.actions:not(.emphasize){display:none}}@media (min-width: 721px){:host(:not(.single-column)) .actions{margin:0 4px;display:flex;justify-content:flex-end}}.avatar,.flag,.title-container,.container>h1.title{padding:0 16px}.title-container{display:flex;flex-direction:column;overflow:hidden}.avatar{margin-bottom:16px}.flag{margin-bottom:4px}.title{margin-bottom:2px}.title.clickable{cursor:pointer}.title.has-icon{display:flex;flex-direction:row;align-items:center}.value{max-width:100%;margin-bottom:4px}.value-unit{font-weight:initial;color:var(--kirby-text-color-semi-dark);margin-left:4px;font-size:50%}.subtitle1,.subtitle2{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:100%}.custom-section{margin-top:8px}\n"], dependencies: [{ 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: i2.FitHeadingDirective, selector: "h1[kirbyFitHeading],h2[kirbyFitHeading],h3[kirbyFitHeading]", inputs: ["kirbyFitHeading"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
85
84
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: HeaderComponent, decorators: [{
|
|
86
85
|
type: Component,
|
|
87
|
-
args: [{ selector: 'kirby-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"!!avatar || !!progressCircle\" class=\"avatar\">\n <ng-content select=\"kirby-avatar,kirby-progress-circle\"></ng-content>\n</div>\n\n<div *ngIf=\"!!flag\" class=\"flag\">\n <ng-content select=\"kirby-flag\"></ng-content>\n</div>\n\n<div class=\"container\">\n <!-- Title and value - title: -->\n <h1 *ngIf=\"!!title && !!value\" #titleElement class=\"title kirby-text-medium\" [class.clickable]=\"titleClick.observed\" [class.has-icon]=\"!!titleActionIconTemplate\" (click)=\"onTitleClick($event)\">\n {{ title }}\n <ng-container *ngTemplateOutlet=\"titleActionIconTemplate\"></ng-container>\n </h1>\n <div class=\"title-container\">\n <!-- Only title, no value: -->\n <h1 *ngIf=\"!!title && !value\" #titleElement class=\"title\" [kirbyFitHeading]=\"fitHeadingConfig\">\n {{ title }}\n </h1>\n \n <!-- Title and value - value: -->\n <h3 *ngIf=\"!!value\" class=\"value kirby-text-display-3\" [kirbyFitHeading]=\"fitHeadingConfig\">{{ value }}<span class=\"value-unit semi-dark-text\" *ngIf=\"!!valueUnit\">{{ valueUnit }}</span></h3>\n \n <!-- Subtitles: -->\n <div *ngIf=\"!!subtitle1\" class=\"subtitle1 kirby-text-small\">\n {{ subtitle1 }}\n </div>\n <div *ngIf=\"!!subtitle2\" class=\"subtitle2 kirby-text-small\">\n {{ subtitle2 }}\n </div>\n\n <!-- Custom section -->\n <div\n *ngIf=\"!!customSectionTemplate\"\n class=\"custom-section\"\n >\n <ng-container *ngTemplateOutlet=\"customSectionTemplate\"></ng-container>\n </div>\n </div>\n \n <!-- Actions: -->\n <div\n *ngIf=\"!!actionsTemplate\"\n #actionsElement\n class=\"actions\"\n [class.emphasize]=\"emphasizeActions\"\n >\n <ng-container *ngTemplateOutlet=\"actionsTemplate; injector: _actionGroupInjector\"></ng-container>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column;margin-top:16px;margin-bottom:32px}@media (min-width: 721px){:host{margin-top:24px}}.container{display:flex;flex-direction:column;align-items:flex-start;max-width:100%;overflow:hidden}@media (min-width: 721px){.container{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:16px}.
|
|
86
|
+
args: [{ selector: 'kirby-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"!!avatar || !!progressCircle\" class=\"avatar\">\n <ng-content select=\"kirby-avatar,kirby-progress-circle\"></ng-content>\n</div>\n\n<div *ngIf=\"!!flag\" class=\"flag\">\n <ng-content select=\"kirby-flag\"></ng-content>\n</div>\n\n<div class=\"container\">\n <!-- Title and value - title: -->\n <h1 *ngIf=\"!!title && !!value\" #titleElement class=\"title kirby-text-medium\" [class.clickable]=\"titleClick.observed\" [class.has-icon]=\"!!titleActionIconTemplate\" (click)=\"onTitleClick($event)\">\n {{ title }}\n <ng-container *ngTemplateOutlet=\"titleActionIconTemplate\"></ng-container>\n </h1>\n <div class=\"title-container\">\n <!-- Only title, no value: -->\n <h1 *ngIf=\"!!title && !value\" #titleElement class=\"title\" [kirbyFitHeading]=\"fitHeadingConfig\">\n {{ title }}\n </h1>\n \n <!-- Title and value - value: -->\n <h3 *ngIf=\"!!value\" class=\"value kirby-text-display-3\" [kirbyFitHeading]=\"fitHeadingConfig\">{{ value }}<span class=\"value-unit semi-dark-text\" *ngIf=\"!!valueUnit\">{{ valueUnit }}</span></h3>\n \n <!-- Subtitles: -->\n <div *ngIf=\"!!subtitle1\" class=\"subtitle1 kirby-text-small\">\n {{ subtitle1 }}\n </div>\n <div *ngIf=\"!!subtitle2\" class=\"subtitle2 kirby-text-small\">\n {{ subtitle2 }}\n </div>\n\n <!-- Custom section -->\n <div\n *ngIf=\"!!customSectionTemplate\"\n class=\"custom-section\"\n >\n <ng-container *ngTemplateOutlet=\"customSectionTemplate\"></ng-container>\n </div>\n </div>\n \n <!-- Actions: -->\n <div\n *ngIf=\"!!actionsTemplate\"\n #actionsElement\n class=\"actions\"\n [class.emphasize]=\"emphasizeActions\"\n >\n <ng-container *ngTemplateOutlet=\"actionsTemplate; injector: _actionGroupInjector\"></ng-container>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column;margin-top:16px;margin-bottom:32px}@media (min-width: 721px){:host{margin-top:24px}}.container{display:flex;flex-direction:column;align-items:flex-start;max-width:100%;overflow:hidden}@media (min-width: 721px){:host(:not(.single-column)) .container{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:16px}:host(:not(.single-column)) .title-container{grid-column-start:1}}:host(.centered){align-items:center}:host(.centered) .container{align-items:center}:host(.centered) .container>h1.title{text-align:center}:host(.centered) .container>h1.title.has-icon{justify-content:center}:host(.centered) .title-container{align-items:center;text-align:center}@media (min-width: 721px){:host(.centered):not(.single-column) .container{grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr);align-self:stretch}:host(.centered):not(.single-column) .actions{align-self:flex-start}:host(.centered):not(.single-column) .container>h1.title,:host(.centered):not(.single-column) .title-container{grid-column-start:2}}.actions{margin-top:24px}@media (max-width: 720px){.actions:not(.emphasize){display:none}}@media (min-width: 721px){:host(:not(.single-column)) .actions{margin:0 4px;display:flex;justify-content:flex-end}}.avatar,.flag,.title-container,.container>h1.title{padding:0 16px}.title-container{display:flex;flex-direction:column;overflow:hidden}.avatar{margin-bottom:16px}.flag{margin-bottom:4px}.title{margin-bottom:2px}.title.clickable{cursor:pointer}.title.has-icon{display:flex;flex-direction:row;align-items:center}.value{max-width:100%;margin-bottom:4px}.value-unit{font-weight:initial;color:var(--kirby-text-color-semi-dark);margin-left:4px;font-size:50%}.subtitle1,.subtitle2{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:100%}.custom-section{margin-top:8px}\n"] }]
|
|
88
87
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { centered: [{
|
|
89
88
|
type: HostBinding,
|
|
90
89
|
args: ['class.centered']
|
|
@@ -131,4 +130,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
131
130
|
}], titleClick: [{
|
|
132
131
|
type: Output
|
|
133
132
|
}] } });
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL2hlYWRlci9zcmMvaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL2hlYWRlci9zcmMvaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsUUFBUSxFQUNSLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsa0JBQWtCLEVBQXFCLE1BQU0sd0NBQXdDLENBQUM7QUFDL0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7OztBQU1wRixNQUFNLE9BQU8sc0JBQXNCOztzSUFBdEIsc0JBQXNCOzBIQUF0QixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFIbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2lCQUNqQzs7QUFNRCxNQUFNLE9BQU8sNEJBQTRCOzs0SUFBNUIsNEJBQTRCO2dJQUE1Qiw0QkFBNEI7MkZBQTVCLDRCQUE0QjtrQkFIeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNEJBQTRCO2lCQUN2Qzs7QUFNRCxNQUFNLE9BQU8sOEJBQThCOzs4SUFBOUIsOEJBQThCO2tJQUE5Qiw4QkFBOEI7MkZBQTlCLDhCQUE4QjtrQkFIMUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsOEJBQThCO2lCQUN6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c0JBRHRCLFlBQVk7dUJBQUMsOEJBQThCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUcxRCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFDVElPTkdST1VQX0NPTkZJRywgQWN0aW9uR3JvdXBDb25maWcgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2FjdGlvbi1ncm91cCc7XG5pbXBvcnQgeyBBdmF0YXJDb21wb25lbnQgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2F2YXRhcic7XG5pbXBvcnQgeyBGbGFnQ29tcG9uZW50IH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9mbGFnJztcbmltcG9ydCB7IFByb2dyZXNzQ2lyY2xlQ29tcG9uZW50IH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9wcm9ncmVzcy1jaXJjbGUnO1xuaW1wb3J0IHR5cGUgeyBGaXRIZWFkaW5nQ29uZmlnIH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9zaGFyZWQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdba2lyYnlIZWFkZXJBY3Rpb25zXScsXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRlckFjdGlvbnNEaXJlY3RpdmUge31cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2tpcmJ5SGVhZGVyQ3VzdG9tU2VjdGlvbl0nLFxufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJDdXN0b21TZWN0aW9uRGlyZWN0aXZlIHt9XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1traXJieUhlYWRlclRpdGxlQWN0aW9uSWNvbl0nLFxufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJUaXRsZUFjdGlvbkljb25EaXJlY3RpdmUge31cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2lyYnktaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2hlYWRlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25Jbml0IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jZW50ZXJlZCcpXG4gIEBJbnB1dCgpXG4gIGNlbnRlcmVkPzogYm9vbGVhbjtcblxuICBASW5wdXQoKSB0aXRsZU1heExpbmVzOiBudW1iZXI7XG4gIEBJbnB1dCgpIGVtcGhhc2l6ZUFjdGlvbnMgPSBmYWxzZTtcblxuICBmaXRIZWFkaW5nQ29uZmlnOiBGaXRIZWFkaW5nQ29uZmlnO1xuXG4gIEBDb250ZW50Q2hpbGQoQXZhdGFyQ29tcG9uZW50KVxuICBhdmF0YXI6IEF2YXRhckNvbXBvbmVudDtcblxuICBAQ29udGVudENoaWxkKFByb2dyZXNzQ2lyY2xlQ29tcG9uZW50KVxuICBwcm9ncmVzc0NpcmNsZTogUHJvZ3Jlc3NDaXJjbGVDb21wb25lbnQ7XG5cbiAgQENvbnRlbnRDaGlsZChGbGFnQ29tcG9uZW50KVxuICBmbGFnOiBGbGFnQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoJ3RpdGxlRWxlbWVudCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICB0aXRsZUVsZW1lbnQ/OiBFbGVtZW50UmVmPEhUTUxIZWFkaW5nRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgnYWN0aW9uc0VsZW1lbnQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgYWN0aW9uc0VsZW1lbnQ/OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBAQ29udGVudENoaWxkKEhlYWRlckFjdGlvbnNEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWY8SGVhZGVyQWN0aW9uc0RpcmVjdGl2ZT4gfSlcbiAgYWN0aW9uc1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8SGVhZGVyQWN0aW9uc0RpcmVjdGl2ZT47XG5cbiAgQENvbnRlbnRDaGlsZChIZWFkZXJDdXN0b21TZWN0aW9uRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmPEhlYWRlckN1c3RvbVNlY3Rpb25EaXJlY3RpdmU+IH0pXG4gIGN1c3RvbVNlY3Rpb25UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPEhlYWRlckN1c3RvbVNlY3Rpb25EaXJlY3RpdmU+O1xuXG4gIEBDb250ZW50Q2hpbGQoSGVhZGVyVGl0bGVBY3Rpb25JY29uRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIHRpdGxlQWN0aW9uSWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxIZWFkZXJUaXRsZUFjdGlvbkljb25EaXJlY3RpdmU+O1xuXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSBudWxsO1xuICBASW5wdXQoKSB2YWx1ZTogc3RyaW5nID0gbnVsbDtcbiAgQElucHV0KCkgdmFsdWVVbml0OiBzdHJpbmcgPSBudWxsO1xuICBASW5wdXQoKSBzdWJ0aXRsZTE6IHN0cmluZyA9IG51bGw7XG4gIEBJbnB1dCgpIHN1YnRpdGxlMjogc3RyaW5nID0gbnVsbDtcblxuICBAT3V0cHV0KCkgdGl0bGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8UG9pbnRlckV2ZW50PigpO1xuXG4gIG9uVGl0bGVDbGljayhldmVudDogUG9pbnRlckV2ZW50KSB7XG4gICAgdGhpcy50aXRsZUNsaWNrLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgX2FjdGlvbkdyb3VwSW5qZWN0b3I6IEluamVjdG9yO1xuXG4gIHByaXZhdGUgYWN0aW9uR3JvdXBDb25maWc6IEFjdGlvbkdyb3VwQ29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aW9uR3JvdXBDb25maWcgPSB7XG4gICAgICBpc1Jlc2l6YWJsZTogdGhpcy5lbXBoYXNpemVBY3Rpb25zLFxuICAgICAgZGVmYXVsdFZpc2libGVBY3Rpb25zOiB0aGlzLmVtcGhhc2l6ZUFjdGlvbnMgPyB1bmRlZmluZWQgOiAxLFxuICAgIH07XG5cbiAgICB0aGlzLl9hY3Rpb25Hcm91cEluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogQUNUSU9OR1JPVVBfQ09ORklHLFxuICAgICAgICAgIHVzZVZhbHVlOiB0aGlzLmFjdGlvbkdyb3VwQ29uZmlnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHBhcmVudDogdGhpcy5pbmplY3RvcixcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLnRpdGxlTWF4TGluZXMgPiAwKSB7XG4gICAgICB0aGlzLmZpdEhlYWRpbmdDb25maWcgPSB7XG4gICAgICAgIG1heExpbmVzOiB0aGlzLnRpdGxlTWF4TGluZXMsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBJZiBhbiBhdmF0YXIgaXMgcHJlc2VudCB3ZSBkZWZhdWx0IHRvIGNlbnRlcmVkIGxheW91dCAtIHVubGVzcyBjb25maWd1cmVkIG90aGVyd2lzZTpcbiAgICBpZiAodGhpcy5hdmF0YXIgJiYgdGhpcy5jZW50ZXJlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmNlbnRlcmVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jZW50ZXJlZCkge1xuICAgICAgdGhpcy5hY3Rpb25Hcm91cENvbmZpZy5pc0NvbmRlbnNlZCA9IHRydWU7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiISFhdmF0YXIgfHwgISFwcm9ncmVzc0NpcmNsZVwiIGNsYXNzPVwiYXZhdGFyXCI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImtpcmJ5LWF2YXRhcixraXJieS1wcm9ncmVzcy1jaXJjbGVcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cIiEhZmxhZ1wiIGNsYXNzPVwiZmxhZ1wiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJraXJieS1mbGFnXCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICA8IS0tIFRpdGxlIGFuZCB2YWx1ZSAtIHRpdGxlOiAtLT5cbiAgPGgxICpuZ0lmPVwiISF0aXRsZSAmJiAhIXZhbHVlXCIgI3RpdGxlRWxlbWVudCBjbGFzcz1cInRpdGxlIGtpcmJ5LXRleHQtbWVkaXVtXCIgW2NsYXNzLmNsaWNrYWJsZV09XCJ0aXRsZUNsaWNrLm9ic2VydmVkXCIgW2NsYXNzLmhhcy1pY29uXT1cIiEhdGl0bGVBY3Rpb25JY29uVGVtcGxhdGVcIiAoY2xpY2spPVwib25UaXRsZUNsaWNrKCRldmVudClcIj5cbiAgICB7eyB0aXRsZSB9fVxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0aXRsZUFjdGlvbkljb25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L2gxPlxuICA8ZGl2IGNsYXNzPVwidGl0bGUtY29udGFpbmVyXCI+XG4gICAgPCEtLSBPbmx5IHRpdGxlLCBubyB2YWx1ZTogLS0+XG4gICAgPGgxICpuZ0lmPVwiISF0aXRsZSAmJiAhdmFsdWVcIiAjdGl0bGVFbGVtZW50IGNsYXNzPVwidGl0bGVcIiBba2lyYnlGaXRIZWFkaW5nXT1cImZpdEhlYWRpbmdDb25maWdcIj5cbiAgICAgIHt7IHRpdGxlIH19XG4gICAgPC9oMT5cbiAgXG4gICAgPCEtLSBUaXRsZSBhbmQgdmFsdWUgLSB2YWx1ZTogLS0+XG4gICAgPGgzICpuZ0lmPVwiISF2YWx1ZVwiIGNsYXNzPVwidmFsdWUga2lyYnktdGV4dC1kaXNwbGF5LTNcIiBba2lyYnlGaXRIZWFkaW5nXT1cImZpdEhlYWRpbmdDb25maWdcIj57eyB2YWx1ZSB9fTxzcGFuIGNsYXNzPVwidmFsdWUtdW5pdCBzZW1pLWRhcmstdGV4dFwiICpuZ0lmPVwiISF2YWx1ZVVuaXRcIj57eyB2YWx1ZVVuaXQgfX08L3NwYW4+PC9oMz5cbiAgXG4gICAgPCEtLSBTdWJ0aXRsZXM6IC0tPlxuICAgIDxkaXYgKm5nSWY9XCIhIXN1YnRpdGxlMVwiIGNsYXNzPVwic3VidGl0bGUxIGtpcmJ5LXRleHQtc21hbGxcIj5cbiAgICAgIHt7IHN1YnRpdGxlMSB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIhIXN1YnRpdGxlMlwiIGNsYXNzPVwic3VidGl0bGUyIGtpcmJ5LXRleHQtc21hbGxcIj5cbiAgICAgIHt7IHN1YnRpdGxlMiB9fVxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBDdXN0b20gc2VjdGlvbiAtLT5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cIiEhY3VzdG9tU2VjdGlvblRlbXBsYXRlXCJcbiAgICAgIGNsYXNzPVwiY3VzdG9tLXNlY3Rpb25cIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21TZWN0aW9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIFxuICA8IS0tIEFjdGlvbnM6IC0tPlxuICA8ZGl2XG4gICAgICAqbmdJZj1cIiEhYWN0aW9uc1RlbXBsYXRlXCJcbiAgICAgICNhY3Rpb25zRWxlbWVudFxuICAgICAgY2xhc3M9XCJhY3Rpb25zXCJcbiAgICAgIFtjbGFzcy5lbXBoYXNpemVdPVwiZW1waGFzaXplQWN0aW9uc1wiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFjdGlvbnNUZW1wbGF0ZTsgaW5qZWN0b3I6IF9hY3Rpb25Hcm91cEluamVjdG9yXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL2hlYWRlci9zcmMvaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL2hlYWRlci9zcmMvaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsUUFBUSxFQUNSLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsa0JBQWtCLEVBQXFCLE1BQU0sd0NBQXdDLENBQUM7QUFDL0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7OztBQU1wRixNQUFNLE9BQU8sc0JBQXNCOztzSUFBdEIsc0JBQXNCOzBIQUF0QixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFIbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2lCQUNqQzs7QUFNRCxNQUFNLE9BQU8sNEJBQTRCOzs0SUFBNUIsNEJBQTRCO2dJQUE1Qiw0QkFBNEI7MkZBQTVCLDRCQUE0QjtrQkFIeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNEJBQTRCO2lCQUN2Qzs7QUFNRCxNQUFNLE9BQU8sOEJBQThCOzs4SUFBOUIsOEJBQThCO2tJQUE5Qiw4QkFBOEI7MkZBQTlCLDhCQUE4QjtrQkFIMUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsOEJBQThCO2lCQUN6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RSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUcxRCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFDVElPTkdST1VQX0NPTkZJRywgQWN0aW9uR3JvdXBDb25maWcgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2FjdGlvbi1ncm91cCc7XG5pbXBvcnQgeyBBdmF0YXJDb21wb25lbnQgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2F2YXRhcic7XG5pbXBvcnQgeyBGbGFnQ29tcG9uZW50IH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9mbGFnJztcbmltcG9ydCB7IFByb2dyZXNzQ2lyY2xlQ29tcG9uZW50IH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9wcm9ncmVzcy1jaXJjbGUnO1xuaW1wb3J0IHR5cGUgeyBGaXRIZWFkaW5nQ29uZmlnIH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9zaGFyZWQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdba2lyYnlIZWFkZXJBY3Rpb25zXScsXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRlckFjdGlvbnNEaXJlY3RpdmUge31cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2tpcmJ5SGVhZGVyQ3VzdG9tU2VjdGlvbl0nLFxufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJDdXN0b21TZWN0aW9uRGlyZWN0aXZlIHt9XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1traXJieUhlYWRlclRpdGxlQWN0aW9uSWNvbl0nLFxufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJUaXRsZUFjdGlvbkljb25EaXJlY3RpdmUge31cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2lyYnktaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2hlYWRlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25Jbml0IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jZW50ZXJlZCcpXG4gIEBJbnB1dCgpXG4gIGNlbnRlcmVkPzogYm9vbGVhbjtcblxuICBASW5wdXQoKSB0aXRsZU1heExpbmVzOiBudW1iZXI7XG4gIEBJbnB1dCgpIGVtcGhhc2l6ZUFjdGlvbnMgPSBmYWxzZTtcblxuICBmaXRIZWFkaW5nQ29uZmlnOiBGaXRIZWFkaW5nQ29uZmlnO1xuXG4gIEBDb250ZW50Q2hpbGQoQXZhdGFyQ29tcG9uZW50KVxuICBhdmF0YXI6IEF2YXRhckNvbXBvbmVudDtcblxuICBAQ29udGVudENoaWxkKFByb2dyZXNzQ2lyY2xlQ29tcG9uZW50KVxuICBwcm9ncmVzc0NpcmNsZTogUHJvZ3Jlc3NDaXJjbGVDb21wb25lbnQ7XG5cbiAgQENvbnRlbnRDaGlsZChGbGFnQ29tcG9uZW50KVxuICBmbGFnOiBGbGFnQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoJ3RpdGxlRWxlbWVudCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICB0aXRsZUVsZW1lbnQ/OiBFbGVtZW50UmVmPEhUTUxIZWFkaW5nRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgnYWN0aW9uc0VsZW1lbnQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgYWN0aW9uc0VsZW1lbnQ/OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBAQ29udGVudENoaWxkKEhlYWRlckFjdGlvbnNEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWY8SGVhZGVyQWN0aW9uc0RpcmVjdGl2ZT4gfSlcbiAgYWN0aW9uc1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8SGVhZGVyQWN0aW9uc0RpcmVjdGl2ZT47XG5cbiAgQENvbnRlbnRDaGlsZChIZWFkZXJDdXN0b21TZWN0aW9uRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmPEhlYWRlckN1c3RvbVNlY3Rpb25EaXJlY3RpdmU+IH0pXG4gIGN1c3RvbVNlY3Rpb25UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPEhlYWRlckN1c3RvbVNlY3Rpb25EaXJlY3RpdmU+O1xuXG4gIEBDb250ZW50Q2hpbGQoSGVhZGVyVGl0bGVBY3Rpb25JY29uRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIHRpdGxlQWN0aW9uSWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxIZWFkZXJUaXRsZUFjdGlvbkljb25EaXJlY3RpdmU+O1xuXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSBudWxsO1xuICBASW5wdXQoKSB2YWx1ZTogc3RyaW5nID0gbnVsbDtcbiAgQElucHV0KCkgdmFsdWVVbml0OiBzdHJpbmcgPSBudWxsO1xuICBASW5wdXQoKSBzdWJ0aXRsZTE6IHN0cmluZyA9IG51bGw7XG4gIEBJbnB1dCgpIHN1YnRpdGxlMjogc3RyaW5nID0gbnVsbDtcblxuICBAT3V0cHV0KCkgdGl0bGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8UG9pbnRlckV2ZW50PigpO1xuXG4gIG9uVGl0bGVDbGljayhldmVudDogUG9pbnRlckV2ZW50KSB7XG4gICAgdGhpcy50aXRsZUNsaWNrLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgX2FjdGlvbkdyb3VwSW5qZWN0b3I6IEluamVjdG9yO1xuXG4gIHByaXZhdGUgYWN0aW9uR3JvdXBDb25maWc6IEFjdGlvbkdyb3VwQ29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aW9uR3JvdXBDb25maWcgPSB7XG4gICAgICBkZWZhdWx0VmlzaWJsZUFjdGlvbnM6IHRoaXMuZW1waGFzaXplQWN0aW9ucyA/IHVuZGVmaW5lZCA6IDEsXG4gICAgfTtcblxuICAgIHRoaXMuX2FjdGlvbkdyb3VwSW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBBQ1RJT05HUk9VUF9DT05GSUcsXG4gICAgICAgICAgdXNlVmFsdWU6IHRoaXMuYWN0aW9uR3JvdXBDb25maWcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMudGl0bGVNYXhMaW5lcyA+IDApIHtcbiAgICAgIHRoaXMuZml0SGVhZGluZ0NvbmZpZyA9IHtcbiAgICAgICAgbWF4TGluZXM6IHRoaXMudGl0bGVNYXhMaW5lcyxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIC8vIElmIGFuIGF2YXRhciBpcyBwcmVzZW50IHdlIGRlZmF1bHQgdG8gY2VudGVyZWQgbGF5b3V0IC0gdW5sZXNzIGNvbmZpZ3VyZWQgb3RoZXJ3aXNlOlxuICAgIGlmICh0aGlzLmF2YXRhciAmJiB0aGlzLmNlbnRlcmVkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY2VudGVyZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNlbnRlcmVkKSB7XG4gICAgICB0aGlzLmFjdGlvbkdyb3VwQ29uZmlnLmlzQ29uZGVuc2VkID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCIhIWF2YXRhciB8fCAhIXByb2dyZXNzQ2lyY2xlXCIgY2xhc3M9XCJhdmF0YXJcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwia2lyYnktYXZhdGFyLGtpcmJ5LXByb2dyZXNzLWNpcmNsZVwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwiISFmbGFnXCIgY2xhc3M9XCJmbGFnXCI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImtpcmJ5LWZsYWdcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgIDwhLS0gVGl0bGUgYW5kIHZhbHVlIC0gdGl0bGU6IC0tPlxuICA8aDEgKm5nSWY9XCIhIXRpdGxlICYmICEhdmFsdWVcIiAjdGl0bGVFbGVtZW50IGNsYXNzPVwidGl0bGUga2lyYnktdGV4dC1tZWRpdW1cIiBbY2xhc3MuY2xpY2thYmxlXT1cInRpdGxlQ2xpY2sub2JzZXJ2ZWRcIiBbY2xhc3MuaGFzLWljb25dPVwiISF0aXRsZUFjdGlvbkljb25UZW1wbGF0ZVwiIChjbGljayk9XCJvblRpdGxlQ2xpY2soJGV2ZW50KVwiPlxuICAgIHt7IHRpdGxlIH19XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRpdGxlQWN0aW9uSWNvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gIDwvaDE+XG4gIDxkaXYgY2xhc3M9XCJ0aXRsZS1jb250YWluZXJcIj5cbiAgICA8IS0tIE9ubHkgdGl0bGUsIG5vIHZhbHVlOiAtLT5cbiAgICA8aDEgKm5nSWY9XCIhIXRpdGxlICYmICF2YWx1ZVwiICN0aXRsZUVsZW1lbnQgY2xhc3M9XCJ0aXRsZVwiIFtraXJieUZpdEhlYWRpbmddPVwiZml0SGVhZGluZ0NvbmZpZ1wiPlxuICAgICAge3sgdGl0bGUgfX1cbiAgICA8L2gxPlxuICBcbiAgICA8IS0tIFRpdGxlIGFuZCB2YWx1ZSAtIHZhbHVlOiAtLT5cbiAgICA8aDMgKm5nSWY9XCIhIXZhbHVlXCIgY2xhc3M9XCJ2YWx1ZSBraXJieS10ZXh0LWRpc3BsYXktM1wiIFtraXJieUZpdEhlYWRpbmddPVwiZml0SGVhZGluZ0NvbmZpZ1wiPnt7IHZhbHVlIH19PHNwYW4gY2xhc3M9XCJ2YWx1ZS11bml0IHNlbWktZGFyay10ZXh0XCIgKm5nSWY9XCIhIXZhbHVlVW5pdFwiPnt7IHZhbHVlVW5pdCB9fTwvc3Bhbj48L2gzPlxuICBcbiAgICA8IS0tIFN1YnRpdGxlczogLS0+XG4gICAgPGRpdiAqbmdJZj1cIiEhc3VidGl0bGUxXCIgY2xhc3M9XCJzdWJ0aXRsZTEga2lyYnktdGV4dC1zbWFsbFwiPlxuICAgICAge3sgc3VidGl0bGUxIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIiEhc3VidGl0bGUyXCIgY2xhc3M9XCJzdWJ0aXRsZTIga2lyYnktdGV4dC1zbWFsbFwiPlxuICAgICAge3sgc3VidGl0bGUyIH19XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEN1c3RvbSBzZWN0aW9uIC0tPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiISFjdXN0b21TZWN0aW9uVGVtcGxhdGVcIlxuICAgICAgY2xhc3M9XCJjdXN0b20tc2VjdGlvblwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbVNlY3Rpb25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgXG4gIDwhLS0gQWN0aW9uczogLS0+XG4gIDxkaXZcbiAgICAgICpuZ0lmPVwiISFhY3Rpb25zVGVtcGxhdGVcIlxuICAgICAgI2FjdGlvbnNFbGVtZW50XG4gICAgICBjbGFzcz1cImFjdGlvbnNcIlxuICAgICAgW2NsYXNzLmVtcGhhc2l6ZV09XCJlbXBoYXNpemVBY3Rpb25zXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWN0aW9uc1RlbXBsYXRlOyBpbmplY3RvcjogX2FjdGlvbkdyb3VwSW5qZWN0b3JcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -244,7 +244,6 @@ export class PageComponent {
|
|
|
244
244
|
this.removeWrapper();
|
|
245
245
|
this.setToolbarBackgroundPart();
|
|
246
246
|
const actionGroupConfig = {
|
|
247
|
-
isResizable: false,
|
|
248
247
|
isCondensed: true,
|
|
249
248
|
maxVisibleActions: 1,
|
|
250
249
|
};
|
|
@@ -698,4 +697,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
698
697
|
type: HostListener,
|
|
699
698
|
args: [`window:${selectedTabClickEvent}`]
|
|
700
699
|
}] } });
|
|
701
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2Rlc2lnbnN5c3RlbS9wYWdlL3NyYy9wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3BhZ2Uvc3JjL3BhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sY0FBYyxFQUNkLFFBQVEsRUFDUixLQUFLLEVBQ0wsTUFBTSxFQUlOLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFFVCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQWUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLFVBQVUsRUFDVixTQUFTLEVBQ1QsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsYUFBYSxHQUNkLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RGLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLHVCQUF1QixFQUN2QixnQkFB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QkFEMUIsU0FBUzt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFHN0QsMEJBQTBCO3NCQURqQyxTQUFTO3VCQUFDLDRCQUE0QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUdwRSwwQkFBMEI7c0JBRGpDLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBRzdFLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFHdEUsc0JBQXNCO3NCQURyQixZQUFZO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUd6RSxhQUFhO3NCQURaLGVBQWU7dUJBQUMsb0JBQW9CO2dCQUc3QixhQUFhO3NCQURwQixlQUFlO3VCQUFDLG9CQUFvQjtnQkFHN0IsZ0JBQWdCO3NCQUR2QixZQUFZO3VCQUFDLDBCQUEwQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUc5RSxNQUFNO3NCQURMLFlBQVk7dUJBQUMsZUFBZTtnQkFrZTdCLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyx5QkFBeUIsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFXbkQsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLHlCQUF5QjtnQkFNdkMsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLFVBQVUscUJBQXFCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIEluamVjdGlvblRva2VuLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBSZW5kZXJlcjIsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFNraXBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIE5hdmlnYXRpb25TdGFydCwgUm91dGVyLCBSb3V0ZXJFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBJb25CYWNrQnV0dG9uRGVsZWdhdGUsXG4gIElvbkNvbnRlbnQsXG4gIElvbkZvb3RlcixcbiAgSW9uSGVhZGVyLFxuICBJb25Sb3V0ZXJPdXRsZXQsXG4gIElvblRvb2xiYXIsXG4gIE5hdkNvbnRyb2xsZXIsXG59IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFNjcm9sbERldGFpbCB9IGZyb20gJ0Bpb25pYy9jb3JlJztcbmltcG9ydCB7IHNlbGVjdGVkVGFiQ2xpY2tFdmVudCwgVGFic0NvbXBvbmVudCB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vdGFicyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEtpcmJ5QW5pbWF0aW9uIH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9oZWxwZXJzJztcbmltcG9ydCB7XG4gIE1vZGFsRWxlbWVudENvbXBvbmVudCxcbiAgTW9kYWxFbGVtZW50c0FkdmVydGlzZXIsXG4gIE1vZGFsRWxlbWVudFR5cGUsXG4gIE1vZGFsTmF2aWdhdGlvblNlcnZpY2UsXG4gIE1vZGFsV3JhcHBlckNvbXBvbmVudCxcbn0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9tb2RhbCc7XG5pbXBvcnQgeyBGaXRIZWFkaW5nQ29uZmlnLCBSZXNpemVPYnNlcnZlclNlcnZpY2UgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL3NoYXJlZCc7XG5pbXBvcnQge1xuICBIZWFkZXJBY3Rpb25zRGlyZWN0aXZlLFxuICBIZWFkZXJDb21wb25lbnQsXG4gIEhlYWRlclRpdGxlQWN0aW9uSWNvbkRpcmVjdGl2ZSxcbn0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9oZWFkZXInO1xuaW1wb3J0IHsgQUNUSU9OR1JPVVBfQ09ORklHLCBBY3Rpb25Hcm91cENvbmZpZyB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vYWN0aW9uLWdyb3VwJztcblxuLyoqXG4gKiBTcGVjaWZ5IHNjcm9sbCBldmVudCBkZWJvdW5jZSB0aW1lIGluIG1zIGFuZCBzY3JvbGxlZCBvZmZzZXQgZnJvbSB0b3AgaW4gcGl4ZWxzXG4gKi9cbmNvbnN0IGNvbnRlbnRTY3JvbGxEZWJvdW5jZVRpbWVJbk1TID0gMTA7XG5jb25zdCBjb250ZW50U2Nyb2xsZWRPZmZzZXRJblBpeGVscyA9IDQ7XG5cbnR5cGUgc3RpY2t5Q29uZmlnID0geyBzdGlja3k6IGJvb2xlYW4gfTtcbnR5cGUgZml4ZWRDb25maWcgPSB7IGZpeGVkOiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCBQQUdFX0JBQ0tfQlVUVE9OX09WRVJSSURFID0gbmV3IEluamVjdGlvblRva2VuPFBhZ2VCYWNrQnV0dG9uT3ZlcnJpZGU+KFxuICAncGFnZS1iYWNrLWJ1dHRvbi1vdmVycmlkZSdcbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZUJhY2tCdXR0b25PdmVycmlkZSB7XG4gIG5hdmlnYXRlQmFjazogKFxuICAgIHJvdXRlck91dGxldDogSW9uUm91dGVyT3V0bGV0LFxuICAgIG5hdkN0cmw6IE5hdkNvbnRyb2xsZXIsXG4gICAgZGVmYXVsdEJhY2tIcmVmOiBzdHJpbmdcbiAgKSA9PiB2b2lkO1xufVxuXG4vKipcbiAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBcInB1bGwtdG8tcmVmcmVzaFwiIGJlZ2lucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQdWxsVG9SZWZyZXNoRXZlbnQge1xuICAvKipcbiAgICogSW52b2tlIHRoaXMgY2FsbGJhY2stbWV0aG9kIHdoZW4gYWN0aW9uIHRvIHBlcmZvcm0gdXBvbiBcInB1bGwtdG8tcmVmcmVzaFwiIGNvbXBsZXRlcy5cbiAgICovXG4gIGNvbXBsZXRlKCk7XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1traXJieVBhZ2VUaXRsZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdlVGl0bGVEaXJlY3RpdmUge31cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2tpcmJ5UGFnZVN1YnRpdGxlXScsXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VTdWJ0aXRsZURpcmVjdGl2ZSB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdba2lyYnlQYWdlVG9vbGJhclRpdGxlXScsXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VUb29sYmFyVGl0bGVEaXJlY3RpdmUge31cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2tpcmJ5UGFnZUFjdGlvbnNdJyxcbn0pXG5leHBvcnQgY2xhc3MgUGFnZUFjdGlvbnNEaXJlY3RpdmUge1xuICBASW5wdXQoJ2tpcmJ5UGFnZUFjdGlvbnMnKSBjb25maWc6IHN0aWNreUNvbmZpZyB8IGZpeGVkQ29uZmlnO1xuICBwcml2YXRlIHJlYWRvbmx5IHN0aWNreURlZmF1bHQgPSB0cnVlO1xuICBwcml2YXRlIHJlYWRvbmx5IGZpeGVkRGVmYXVsdCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge31cblxuICBnZXQgaXNTdGlja3koKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnID8gKHRoaXMuY29uZmlnIGFzIHN0aWNreUNvbmZpZykuc3RpY2t5IDogdGhpcy5zdGlja3lEZWZhdWx0O1xuICB9XG5cbiAgZ2V0IGlzRml4ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnID8gKHRoaXMuY29uZmlnIGFzIGZpeGVkQ29uZmlnKS5maXhlZCA6IHRoaXMuZml4ZWREZWZhdWx0O1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1traXJieVBhZ2VDb250ZW50XScsXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VDb250ZW50RGlyZWN0aXZlIHtcbiAgQElucHV0KCdraXJieVBhZ2VDb250ZW50JykgY29uZmlnOiBmaXhlZENvbmZpZztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHt9XG5cbiAgZ2V0IGlzRml4ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnICYmIHRoaXMuY29uZmlnLmZpeGVkO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1traXJieVBhZ2VTdGlja3lDb250ZW50XScsXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VTdGlja3lDb250ZW50RGlyZWN0aXZlIHt9XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tpcmJ5LXBhZ2UtcHJvZ3Jlc3MnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgYCxcbiAgc3R5bGVzOiBbJzpob3N0IHtkaXNwbGF5OiBmbGV4fSddLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdlUHJvZ3Jlc3NDb21wb25lbnQgZXh0ZW5kcyBNb2RhbEVsZW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyBUT0RPOiBGaW5kIGFsdGVybmF0aXZlIGltcGxlbWVudGF0aW9uLCB3aGljaCBhbGlnbnMgd2l0aCBmdXR1cmUgcGFnZSBjb25maWd1cmF0aW9uIC8gY29uc3VtcHRpb25cbiAgLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiB3YXMgY2hvc2VuIG92ZXIgZXhwYW5kaW5nIGBtb3ZlQ2hpbGRgIG1ldGhvZCBpbiBjb21wb25lbnQgd3JhcHBlciB3aXRoIHlldCBhbm90aGVyIHNjZW5hcmlvXG4gIEBIb3N0QmluZGluZygnYXR0ci5zbG90Jykgc2xvdCA9ICdzdGFydCc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcHJpdmF0ZSBtb2RhbFdyYXBwZXI6IE1vZGFsV3JhcHBlckNvbXBvbmVudCxcbiAgICBAT3B0aW9uYWwoKSBtb2RhbEVsZW1lbnRzQWR2ZXJ0aXNlcjogTW9kYWxFbGVtZW50c0FkdmVydGlzZXIsXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cbiAgKSB7XG4gICAgc3VwZXIoTW9kYWxFbGVtZW50VHlwZS5QQUdFX1BST0dSRVNTLCBlbGVtZW50UmVmLCBtb2RhbEVsZW1lbnRzQWR2ZXJ0aXNlcik7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tb2RhbFdyYXBwZXIgJiYgdGhpcy5tb2RhbFdyYXBwZXIuY29uZmlnLmZsYXZvciA9PT0gJ2RyYXdlcicpIHtcbiAgICAgIHRoaXMuc2xvdCA9ICdlbmQnO1xuICAgIH1cbiAgfVxufVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2lyYnktcGFnZS10aXRsZScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdlVGl0bGVDb21wb25lbnQgZXh0ZW5kcyBNb2RhbEVsZW1lbnRDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBAT3B0aW9uYWwoKSBtb2RhbEVsZW1lbnRzQWR2ZXJ0aXNlcjogTW9kYWxFbGVtZW50c0FkdmVydGlzZXJcbiAgKSB7XG4gICAgc3VwZXIoTW9kYWxFbGVtZW50VHlwZS5USVRMRSwgZWxlbWVudFJlZiwgbW9kYWxFbGVtZW50c0FkdmVydGlzZXIpO1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tpcmJ5LXBhZ2UtY29udGVudCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdlQ29udGVudENvbXBvbmVudCB7fVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdraXJieS1wYWdlLWFjdGlvbnMnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImJ1dHRvbltraXJieS1idXR0b25dXCI+PC9uZy1jb250ZW50PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdlQWN0aW9uc0NvbXBvbmVudCB7fVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdraXJieS1wYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYWdlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIEFmdGVyQ29udGVudENoZWNrZWQsIE9uQ2hhbmdlc1xue1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuICBASW5wdXQoKSBzdWJ0aXRsZTogc3RyaW5nO1xuICBASW5wdXQoKSB0b29sYmFyVGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgdGl0bGVBbGlnbm1lbnQ6ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JyA9ICdsZWZ0JztcbiAgQElucHV0KCkgZGVmYXVsdEJhY2tIcmVmOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGhpZGVCYWNrQnV0dG9uOiBib29sZWFuO1xuICBASW5wdXQoKSB0aXRsZU1heExpbmVzOiBudW1iZXI7XG4gIEBJbnB1dCgpIG1heFdpZHRoOiAnZGVmYXVsdCcgfCAnc3RhbmRhcmQnIHwgJ29wdGltaXplZCcgfCAnZnVsbCcgPSAnZGVmYXVsdCc7XG5cbiAgcHJpdmF0ZSBfdGFiQmFyQm90dG9tSGlkZGVuOiBib29sZWFuO1xuICBwdWJsaWMgZ2V0IHRhYkJhckJvdHRvbUhpZGRlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdGFiQmFyQm90dG9tSGlkZGVuO1xuICB9XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdGFiQmFyQm90dG9tSGlkZGVuKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMudGFic0NvbXBvbmVudCkge1xuICAgICAgLy8gYXMgd2UgYXJlIHNldHRpbmcgYSBjbGFzcyBvbiB0YWJzLCB3ZSBuZWVkIHRoaXMgdG8gaGFwcGVuIGluIGEgc2VwYXJhdGUgY2QgY3ljbGVcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gKHRoaXMudGFic0NvbXBvbmVudC50YWJCYXJCb3R0b21IaWRkZW4gPSB2YWx1ZSkpO1xuICAgIH1cbiAgICB0aGlzLl90YWJCYXJCb3R0b21IaWRkZW4gPSB2YWx1ZTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBlbnRlciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGxlYXZlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcmVmcmVzaCA9IG5ldyBFdmVudEVtaXR0ZXI8UHVsbFRvUmVmcmVzaEV2ZW50PigpO1xuICBAT3V0cHV0KCkgYmFja0J1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICBAVmlld0NoaWxkKElvbkNvbnRlbnQsIHsgc3RhdGljOiB0cnVlIH0pIHByaXZhdGUgY29udGVudD86IElvbkNvbnRlbnQ7XG4gIEBWaWV3Q2hpbGQoSW9uQ29udGVudCwgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHJpdmF0ZSBpb25Db250ZW50RWxlbWVudDogRWxlbWVudFJlZjxIVE1MSW9uQ29udGVudEVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKElvbkhlYWRlciwgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgaW9uSGVhZGVyRWxlbWVudDogRWxlbWVudFJlZjxIVE1MSW9uSGVhZGVyRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoSW9uRm9vdGVyLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwcml2YXRlIGlvbkZvb3RlckVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTElvbkZvb3RlckVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKElvblRvb2xiYXIsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHByaXZhdGUgaW9uVG9vbGJhckVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTElvblRvb2xiYXJFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKElvbkJhY2tCdXR0b25EZWxlZ2F0ZSwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHByaXZhdGUgYmFja0J1dHRvbkRlbGVnYXRlOiBJb25CYWNrQnV0dG9uRGVsZWdhdGU7XG4gIEBWaWV3Q2hpbGQoJ3BhZ2VUaXRsZScsIHsgc3RhdGljOiBmYWxzZSwgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwcml2YXRlIHBhZ2VUaXRsZTogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnc3RpY2t5Q29udGVudENvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSwgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwcml2YXRlIHN0aWNreUNvbnRlbnRDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgnc2ltcGxlVGl0bGVUZW1wbGF0ZScsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBwcml2YXRlIHNpbXBsZVRpdGxlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ3NpbXBsZVRvb2xiYXJUaXRsZVRlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIHByaXZhdGUgc2ltcGxlVG9vbGJhclRpdGxlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBDb250ZW50Q2hpbGQoUGFnZVRvb2xiYXJUaXRsZURpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlLCByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBwcml2YXRlIGN1c3RvbVRvb2xiYXJUaXRsZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAQ29udGVudENoaWxkKFBhZ2VUaXRsZURpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlLCByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBjdXN0b21UaXRsZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAQ29udGVudENoaWxkKFBhZ2VTdWJ0aXRsZURpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlLCByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBjdXN0b21TdWJ0aXRsZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAQ29udGVudENoaWxkcmVuKFBhZ2VBY3Rpb25zRGlyZWN0aXZlKVxuICBjdXN0b21BY3Rpb25zOiBRdWVyeUxpc3Q8UGFnZUFjdGlvbnNEaXJlY3RpdmU+O1xuICBAQ29udGVudENoaWxkcmVuKFBhZ2VDb250ZW50RGlyZWN0aXZlKVxuICBwcml2YXRlIGN1c3RvbUNvbnRlbnQ6IFF1ZXJ5TGlzdDxQYWdlQ29udGVudERpcmVjdGl2ZT47XG4gIEBDb250ZW50Q2hpbGQoUGFnZVN0aWNreUNvbnRlbnREaXJlY3RpdmUsIHsgc3RhdGljOiBmYWxzZSwgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgcHJpdmF0ZSBzdGlja3lDb250ZW50UmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAQ29udGVudENoaWxkKEhlYWRlckNvbXBvbmVudClcbiAgaGVhZGVyPzogSGVhZGVyQ29tcG9uZW50O1xuXG4gIGhhc0hlYWRlcjogYm9vbGVhbjtcbiAgaGFzUGFnZVRpdGxlOiBib29sZWFuO1xuICBoYXNQYWdlU3VidGl0bGU6IGJvb2xlYW47XG4gIHRvb2xiYXJUaXRsZVZpc2libGU6IGJvb2xlYW47XG4gIHRvb2xiYXJBY3Rpb25zVmlzaWJsZTogYm9vbGVhbjtcbiAgaXNDb250ZW50U2Nyb2xsZWQ6IGJvb2xlYW47XG4gIGlzU3RpY2t5Q29udGVudFBpbm5lZCA9IGZhbHNlO1xuXG4gIGZpdEhlYWRpbmdDb25maWc6IEZpdEhlYWRpbmdDb25maWc7XG5cbiAgdG9vbGJhclRpdGxlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIGN1c3RvbUNvbnRlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgcGFnZUFjdGlvbnNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgZml4ZWRDb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIHN0aWNreUFjdGlvbnNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgZml4ZWRBY3Rpb25zVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIHN0aWNreUNvbnRlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8UGFnZVN0aWNreUNvbnRlbnREaXJlY3RpdmU+O1xuICBoZWFkZXJBY3Rpb25zVGVtcGxhdGU6IFRlbXBsYXRlUmVmPEhlYWRlckFjdGlvbnNEaXJlY3RpdmU+O1xuICB0aXRsZUFjdGlvbkljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8SGVhZGVyVGl0bGVBY3Rpb25JY29uRGlyZWN0aXZlPjtcbiAgaGVhZGVyVGl0bGVDbGljaz86IEV2ZW50RW1pdHRlcjxQb2ludGVyRXZlbnQ+O1xuICBoYXNJbnRlcmFjdGl2ZVRpdGxlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSB0aXRsZUludGVyc2VjdGlvbk9ic2VydmVyPzogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG4gIHByaXZhdGUgc3RpY2t5QWN0aW9uc0ludGVyc2VjdGlvbk9ic2VydmVyPzogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG4gIHByaXZhdGUgc3RpY2t5Q29udGVudEludGVyc2VjdGlvbk9ic2VydmVyPzogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG4gIHByaXZhdGUgaXNPYnNlcnZpbmdUaXRsZSA9IGZhbHNlO1xuICBwcml2YXRlIGlzT2JzZXJ2aW5nQWN0aW9ucyA9IGZhbHNlO1xuXG4gIHByaXZhdGUgdXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgaXNBY3RpdmU6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBuZ09uRGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIGNvbnRlbnRTY3JvbGxlZCQ6IE9ic2VydmFibGU8U2Nyb2xsRGV0YWlsPjtcblxuICBwcml2YXRlIG5hdmlnYXRpb25TdGFydCQ6IE9ic2VydmFibGU8Um91dGVyRXZlbnQ+ID0gdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoXG4gICAgZmlsdGVyKChldmVudDogUm91dGVyRXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSxcbiAgICB0YWtlVW50aWwodGhpcy5uZ09uRGVzdHJveSQpXG4gICk7XG5cbiAgcHJpdmF0ZSBuYXZpZ2F0aW9uRW5kJDogT2JzZXJ2YWJsZTxSb3V0ZXJFdmVudD4gPSB0aGlzLnJvdXRlci5ldmVudHMucGlwZShcbiAgICBmaWx0ZXIoKGV2ZW50OiBSb3V0ZXJFdmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcbiAgICB0YWtlVW50aWwodGhpcy5uZ09uRGVzdHJveSQpXG4gICk7XG5cbiAgdG9vbGJhckFjdGlvbkdyb3VwSW5qZWN0b3I6IEluamVjdG9yO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIG1vZGFsTmF2aWdhdGlvblNlcnZpY2U6IE1vZGFsTmF2aWdhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZXNpemVPYnNlcnZlclNlcnZpY2U6IFJlc2l6ZU9ic2VydmVyU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwcml2YXRlIHRhYnNDb21wb25lbnQ6IFRhYnNDb21wb25lbnQsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFBBR0VfQkFDS19CVVRUT05fT1ZFUlJJREUpXG4gICAgcHJpdmF0ZSBiYWNrQnV0dG9uT3ZlcnJpZGU6IFBhZ2VCYWNrQnV0dG9uT3ZlcnJpZGUsXG4gICAgQE9wdGlvbmFsKClcbiAgICBwcml2YXRlIHJvdXRlck91dGxldDogSW9uUm91dGVyT3V0bGV0LFxuICAgIEBPcHRpb25hbCgpXG4gICAgcHJpdmF0ZSBuYXZDdHJsOiBOYXZDb250cm9sbGVyXG4gICkge31cblxuICBwcml2YXRlIGNvbnRlbnRSZWFkeVByb21pc2U6IFByb21pc2U8dm9pZD47XG4gIHByaXZhdGUgd2hlbkNvbnRlbnRSZWFkeSgpIHtcbiAgICBpZiAoIXRoaXMuY29udGVudFJlYWR5UHJvbWlzZSkge1xuICAgICAgdGhpcy5jb250ZW50UmVhZHlQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlclNlcnZpY2Uub2JzZXJ2ZSh0aGlzLmlvbkNvbnRlbnRFbGVtZW50LCAoZW50cnkpID0+IHtcbiAgICAgICAgICBpZiAoZW50cnkuY29udGVudFJlY3QuaGVpZ2h0ID4gMCkge1xuICAgICAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlclNlcnZpY2UudW5vYnNlcnZlKHRoaXMuaW9uQ29udGVudEVsZW1lbnQpO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29udGVudFJlYWR5UHJvbWlzZTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVtb3ZlV3JhcHBlcigpO1xuICAgIHRoaXMuc2V0VG9vbGJhckJhY2tncm91bmRQYXJ0KCk7XG5cbiAgICBjb25zdCBhY3Rpb25Hcm91cENvbmZpZzogQWN0aW9uR3JvdXBDb25maWcgPSB7XG4gICAgICBpc1Jlc2l6YWJsZTogZmFsc2UsXG4gICAgICBpc0NvbmRlbnNlZDogdHJ1ZSxcbiAgICAgIG1heFZpc2libGVBY3Rpb25zOiAxLFxuICAgIH07XG4gICAgdGhpcy50b29sYmFyQWN0aW9uR3JvdXBJbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFDVElPTkdST1VQX0NPTkZJRyxcbiAgICAgICAgICB1c2VWYWx1ZTogYWN0aW9uR3JvdXBDb25maWcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLnRpdGxlTWF4TGluZXMpIHtcbiAgICAgIHRoaXMuZml0SGVhZGluZ0NvbmZpZyA9IHtcbiAgICAgICAgbWF4TGluZXM6IGNoYW5nZXMudGl0bGVNYXhMaW5lcy5jdXJyZW50VmFsdWUsXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAoY2hhbmdlcy5zdWJ0aXRsZSAmJiAhY2hhbmdlcy5zdWJ0aXRsZS5pc0ZpcnN0Q2hhbmdlKSB7XG4gICAgICB0aGlzLnN1YnRpdGxlID0gY2hhbmdlcy50aXRsZS5jdXJyZW50VmFsdWU7XG4gICAgICB0aGlzLmhhc1BhZ2VTdWJ0aXRsZSA9IHRoaXMuc3VidGl0bGUgIT09IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuY29udGVudFNjcm9sbGVkJCA9IHRoaXMuY29udGVudC5pb25TY3JvbGwucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKGNvbnRlbnRTY3JvbGxEZWJvdW5jZVRpbWVJbk1TKSxcbiAgICAgICAgbWFwKChldmVudCkgPT4gZXZlbnQuZGV0YWlsKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMubmdPbkRlc3Ryb3kkKVxuICAgICAgKTtcblxuICAgICAgdGhpcy5jb250ZW50U2Nyb2xsZWQkLnN1YnNjcmliZSgoc2Nyb2xsSW5mbzogU2Nyb2xsRGV0YWlsKSA9PiB7XG4gICAgICAgIGlmIChzY3JvbGxJbmZvLnNjcm9sbFRvcCA+IGNvbnRlbnRTY3JvbGxlZE9mZnNldEluUGl4ZWxzICE9PSB0aGlzLmlzQ29udGVudFNjcm9sbGVkKSB7XG4gICAgICAgICAgdGhpcy5pc0NvbnRlbnRTY3JvbGxlZCA9ICF0aGlzLmlzQ29udGVudFNjcm9sbGVkO1xuICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIC8vIFRoaXMgaW5zdGFuY2UgaGFzIG9ic2VydmVkIGEgcGFnZSBlbnRlciBzbyByZWdpc3RlciB0aGUgY29ycmVjdCB1cmwgZm9yIHRoaXMgaW5zdGFuY2VcbiAgICB0aGlzLnVybCA9IHRoaXMucm91dGVyLnVybDtcbiAgICB0aGlzLm9uRW50ZXIoKTtcblxuICAgIC8vIFdhdGNoIG5hdmlnYXRpb24gZXZlbnRzIGZvciBwYWdlIGVudGVyIGFuZCBsZWF2ZVxuICAgIHRoaXMubmF2aWdhdGlvblN0YXJ0JC5zdWJzY3JpYmUoKGV2ZW50OiBOYXZpZ2F0aW9uU3RhcnQpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5nZXRQYXRobmFtZShldmVudC51cmwpICE9PSB0aGlzLmdldFBhdGhuYW1lKHRoaXMudXJsKSAmJlxuICAgICAgICAhdGhpcy5tb2RhbE5hdmlnYXRpb25TZXJ2aWNlLmlzTW9kYWxSb3V0ZSh0aGlzLnVybCkgJiZcbiAgICAgICAgIXRoaXMubW9kYWxOYXZpZ2F0aW9uU2VydmljZS5pc01vZGFsUm91dGUoZXZlbnQudXJsKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMub25MZWF2ZSgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5uYXZpZ2F0aW9uRW5kJC5zdWJzY3JpYmUoKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKSA9PiB7XG4gICAgICBpZiAodGhpcy5nZXRQYXRobmFtZShldmVudC51cmxBZnRlclJlZGlyZWN0cykgPT09IHRoaXMuZ2V0UGF0aG5hbWUodGhpcy51cmwpKSB7XG4gICAgICAgIHRoaXMub25FbnRlcigpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5pbnRlcmNlcHRCYWNrQnV0dG9uQ2xpY2tzU2V0dXAoKTtcbiAgICB0aGlzLmluaXRpYWxpemVTdGlja3lJbnRlcnNlY3Rpb25PYnNlcnZlcigpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUhlYWRlcigpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZVRpdGxlKCk7XG4gICAgdGhpcy5pbml0aWFsaXplQWN0aW9ucygpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUNvbnRlbnQoKTtcbiAgICB0aGlzLmluaXRpYWxpemVTdGlja3lDb250ZW50KCk7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm5nT25EZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5uZ09uRGVzdHJveSQuY29tcGxldGUoKTtcblxuICAgIHRoaXMudGl0bGVJbnRlcnNlY3Rpb25PYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuc3RpY2t5QWN0aW9uc0ludGVyc2VjdGlvbk9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5zdGlja3lDb250ZW50SW50ZXJzZWN0aW9uT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIGRlbGVnYXRlUmVmcmVzaEV2ZW50KGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnJlZnJlc2guZW1pdCh7XG4gICAgICBjb21wbGV0ZTogZXZlbnQudGFyZ2V0LmNvbXBsZXRlLmJpbmQoZXZlbnQudGFyZ2V0KSxcbiAgICB9KTtcbiAgfVxuXG4gIGdldE1heFdpZHRoQ2xhc3NlcygpIHtcbiAgICBpZiAoIXRoaXMubWF4V2lkdGgpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgaWYgKHRoaXMubWF4V2lkdGggPT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICByZXR1cm4gYG1heC13aWR0aC0ke3RoaXMubWF4V2lkdGh9YDtcbiAgfVxuXG4gIG9uVGl0bGVDbGljayhldmVudDogUG9pbnRlckV2ZW50KSB7XG4gICAgdGhpcy5oZWFkZXJUaXRsZUNsaWNrPy5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlV3JhcHBlcigpIHtcbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnROb2RlO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQocGFyZW50LCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChwYXJlbnQsIHRoaXMuaW9uSGVhZGVyRWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHBhcmVudCwgdGhpcy5pb25Db250ZW50RWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHBhcmVudCwgdGhpcy5pb25Gb290ZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRUb29sYmFyQmFja2dyb3VuZFBhcnQoKSB7XG4gICAgLy8gRW5zdXJlIGlvbi10b29sYmFyIGN1c3RvbSBlbGVtZW50IGhhcyBiZWVuIGRlZmluZWQgKHByaW1hcmlseSB3aGVuIHRlc3RpbmcsIGJ1dCBkb2Vzbid0IGh1cnQpOlxuICAgIGN1c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVkKHRoaXMuaW9uVG9vbGJhckVsZW1lbnQubmF0aXZlRWxlbWVudC5sb2NhbE5hbWUpLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5pb25Ub29sYmFyRWxlbWVudC5uYXRpdmVFbGVtZW50LmNvbXBvbmVudE9uUmVhZHkoKS50aGVuKCh0b29sYmFyKSA9PiB7XG4gICAgICAgIGNvbnN0IHRvb2xiYXJCYWNrZ3JvdW5kID0gdG9vbGJhci5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50b29sYmFyLWJhY2tncm91bmQnKTtcbiAgICAgICAgaWYgKHRvb2xiYXJCYWNrZ3JvdW5kKSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodG9vbGJhckJhY2tncm91bmQsICdwYXJ0JywgJ2JhY2tncm91bmQnKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9uRW50ZXIoKSB7XG4gICAgaWYgKHRoaXMuaXNBY3RpdmUpIHJldHVybjtcbiAgICB0aGlzLmlzQWN0aXZlID0gdHJ1ZTtcblxuICAgIHRoaXMuZW50ZXIuZW1pdCgpO1xuXG4gICAgdGhpcy5vYnNlcnZlVGl0bGUoKTtcbiAgICB0aGlzLm9ic2VydmVBY3Rpb25zKCk7XG4gIH1cblxuICBwcml2YXRlIG9uTGVhdmUoKSB7XG4gICAgaWYgKCF0aGlzLmlzQWN0aXZlKSByZXR1cm47XG4gICAgdGhpcy5pc0FjdGl2ZSA9IGZhbHNlO1xuXG4gICAgdGhpcy5sZWF2ZS5lbWl0KCk7XG5cbiAgICB0aGlzLnVub2JzZXJ2ZVRpdGxlKCk7XG4gICAgdGhpcy51bm9ic2VydmVBY3Rpb25zKCk7XG5cbiAgICBpZiAodGhpcy50YWJCYXJCb3R0b21IaWRkZW4gJiYgdGhpcy50YWJzQ29tcG9uZW50KSB7XG4gICAgICB0aGlzLnRhYnNDb21wb25lbnQudGFiQmFyQm90dG9tSGlkZGVuID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbnRlcmNlcHRCYWNrQnV0dG9uQ2xpY2tzU2V0dXAoKSB7XG4gICAgaWYgKHRoaXMuYmFja0J1dHRvbk92ZXJyaWRlKSB7XG4gICAgICB0aGlzLmJhY2tCdXR0b25EZWxlZ2F0ZS5vbkNsaWNrID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmJhY2tCdXR0b25PdmVycmlkZS5uYXZpZ2F0ZUJhY2sodGhpcy5yb3V0ZXJPdXRsZXQsIHRoaXMubmF2Q3RybCwgdGhpcy5kZWZhdWx0QmFja0hyZWYpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBJbnRlcmNlcHQgYmFjay1idXR0b24gY2xpY2sgZXZlbnRzLCBkZWZhdWx0aW5nIHRvIHRoZSBidWlsdC1pbiBjbGljay1oYW5kbGVyLlxuICAgIGlmICh0aGlzLmJhY2tCdXR0b25DbGljay5vYnNlcnZlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmJhY2tCdXR0b25DbGlja1xuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ09uRGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKHRoaXMuYmFja0J1dHRvbkRlbGVnYXRlLm9uQ2xpY2suYmluZCh0aGlzLmJhY2tCdXR0b25EZWxlZ2F0ZSkpO1xuICAgIH1cbiAgICB0aGlzLmJhY2tCdXR0b25EZWxlZ2F0ZS5vbkNsaWNrID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgdGhpcy5iYWNrQnV0dG9uQ2xpY2suZW1pdChldmVudCk7XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVN0aWNreUludGVyc2VjdGlvbk9ic2VydmVyKCkge1xuICAgIGlmICh0aGlzLnN0aWNreUNvbnRlbnRUZW1wbGF0ZSkge1xuICAgICAgLy8gU3RpY2t5IGNvbnRlbnQgcHJlc2VudCAtIHN0YXJ0IG9ic2VydmluZyBmb3Igc3RpY2tpbmVzc1xuICAgICAgaWYgKCF0aGlzLnN0aWNreUNvbnRlbnRJbnRlcnNlY3Rpb25PYnNlcnZlcikge1xuICAgICAgICB0aGlzLnN0aWNreUNvbnRlbnRJbnRlcnNlY3Rpb25PYnNlcnZlciA9IHRoaXMuY3JlYXRlU3RpY2t5Q29udGVudEludGVyc2VjdGlvbk9ic2VydmVyKCk7XG4gICAgICB9XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zdGlja3lDb250ZW50SW50ZXJzZWN0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLnN0aWNreUNvbnRlbnRDb250YWluZXIubmF0aXZlRWxlbWVudCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVIZWFkZXIoKSB7XG4gICAgaWYgKHRoaXMuaGFzSGVhZGVyID09PSB1bmRlZmluZWQgJiYgISF0aGlzLmhlYWRlcikge1xuICAgICAgdGhpcy5oYXNIZWFkZXIgPSB0cnVlO1xuICAgICAgLy8gSGVhZGVyIGNvdWxkIGxhdGVyIGJlIHJlbW92ZWQgZnJvbSBET00gKGUuZy4gaW4gdmlydHVhbCBzY3JvbGxpbmcgc2NlbmFyaW9zKSxcbiAgICAgIC8vIHNvIHN0b3JlIGEgcmVmZXJlbmNlIHRvIGBoZWFkZXIudGl0bGVBY3Rpb25JY29uVGVtcGxhdGVgIGFuZCBgaGVhZGVyLnRpdGxlQ2xpY2tgOlxuICAgICAgdGhpcy50aXRsZUFjdGlvbkljb25UZW1wbGF0ZSA9IHRoaXMuaGVhZGVyLnRpdGxlQWN0aW9uSWNvblRlbXBsYXRlO1xuICAgICAgaWYgKHRoaXMuaGVhZGVyLnRpdGxlQ2xpY2sub2JzZXJ2ZWQpIHtcbiAgICAgICAgdGhpcy5oYXNJbnRlcmFjdGl2ZVRpdGxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5oZWFkZXJUaXRsZUNsaWNrID0gdGhpcy5oZWFkZXIudGl0bGVDbGljaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVUaXRsZSgpIHtcbiAgICBpZiAodGhpcy5oYXNIZWFkZXIgJiYgdGhpcy5pc09ic2VydmluZ1RpdGxlICYmICF0aGlzLmhlYWRlcj8udGl0bGVFbGVtZW50KSB7XG4gICAgICAvLyBJZiB3ZSdyZSBhbHJlYWR5IG9ic2VydmluZyB0aGUgaGVhZGVyJ3MgdGl0bGUgZWxlbWVudCwgYnV0IGl0J3Mgbm8gbG9uZ2VyIHByZXNlbnQsXG4gICAgICAvLyBpdCBtZWFucyBpdCBoYXMgYmVlbiByZW1vdmVkIGZyb20gRE9NIChlLmcuIGluIHZpcnR1YWwgc2Nyb2xsaW5nIHNjZW5hcmlvcykuXG4gICAgICAvLyBGbGlwIG9ic2VydmluZyBmbGFnOlxuICAgICAgdGhpcy5pc09ic2VydmluZ1RpdGxlID0gZmFsc2U7XG4gICAgfVxuICAgIGlmICh0aGlzLmhhc1BhZ2VUaXRsZSkge1xuICAgICAgaWYgKCF0aGlzLmlzT2JzZXJ2aW5nVGl0bGUgJiYgISF0aGlzLmhlYWRlcj8udGl0bGVFbGVtZW50KSB7XG4gICAgICAgIC8vIEhlYWRlciBhbmQgdGl0bGUgZWxlbWVudCByZS1hdHRhY2hlZCB0byBET00gLSBvYnNlcnZlIHRpdGxlOlxuICAgICAgICB0aGlzLm9ic2VydmVUaXRsZSgpO1xuICAgICAgfVxuXG4gICAgICAvLyBFbnN1cmVzIHJlc3Qgb2YgaW5pdGlhbGl6ZVRpdGxlKCkgd29uJ3QgcnVuLCBpZiBhbHJlYWR5IGluaXRpYWxpemVkXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5oYXNQYWdlVGl0bGUgPVxuICAgICAgdGhpcy50aXRsZSAhPT0gdW5kZWZpbmVkIHx8ICEhdGhpcy5jdXN0b21UaXRsZVRlbXBsYXRlIHx8ICEhdGhpcy5oZWFkZXI/LnRpdGxlO1xuICAgIHRoaXMudG9vbGJhclRpdGxlVmlzaWJsZSA9ICF0aGlzLmhhc1BhZ2VUaXRsZTtcbiAgICB0aGlzLmhhc1BhZ2VTdWJ0aXRsZSA9IHRoaXMuc3VidGl0bGUgIT09IHVuZGVmaW5lZCB8fCAhIXRoaXMuY3VzdG9tU3VidGl0bGVUZW1wbGF0ZTtcbiAgICBpZiAodGhpcy5oZWFkZXI/LnRpdGxlICYmICF0aGlzLnRvb2xiYXJUaXRsZSkge1xuICAgICAgdGhpcy50b29sYmFyVGl0bGUgPSB0aGlzLmhlYWRlci50aXRsZTtcbiAgICB9XG5cbiAgICB0aGlzLm9ic2VydmVUaXRsZSgpO1xuXG4gICAgY29uc3QgZGVmYXVsdFRpdGxlVGVtcGxhdGUgPSB0aGlzLmN1c3RvbVRpdGxlVGVtcGxhdGUgfHwgdGhpcy5zaW1wbGVUaXRsZVRlbXBsYXRlO1xuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgLy8gcHJldHRpZXItaWdub3JlXG4gICAgdGhpcy50b29sYmFyVGl0bGVUZW1wbGF0ZSA9IHRoaXMuY3VzdG9tVG9vbGJhclRpdGxlVGVtcGxhdGVcbiAgICAgID8gdGhpcy5jdXN0b21Ub29sYmFyVGl0bGVUZW1wbGF0ZVxuICAgICAgOiB0eXBlb2YgdGhpcy50b29sYmFyVGl0bGUgPT09ICdzdHJpbmcnXG4gICAgICAgID8gdGhpcy5zaW1wbGVUb29sYmFyVGl0bGVUZW1wbGF0ZVxuICAgICAgICA6IGRlZmF1bHRUaXRsZVRlbXBsYXRlO1xuICB9XG5cbiAgcHJpdmF0ZSBvYnNlcnZlVGl0bGUoKSB7XG4gICAgaWYgKCF0aGlzLmhhc1BhZ2VUaXRsZSkge1xuICAgICAgLy8gTm90aGluZyB0byBvYnNlcnZlXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmlzT2JzZXJ2aW5nVGl0bGUpIHtcbiAgICAgIC8vIEFscmVhZHkgb2JzZXJ2aW5nXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gV2UgYXJlIG5vdCBhY3R1YWxseSBvYnNlcnZpbmcgdGhlIHRpdGxlIHVudGlsIGFmdGVyIHRoZSBgd2hlbkNvbnRlbnRSZWFkeWAgcHJvbWlzZSBoYXMgcmVzb2x2ZWQsXG4gICAgLy8gYnV0IHNpbmNlIHdlJ3ZlIGFscmVhZHkgY2hlY2tlZCB0aGF0IHRoZSBwYWdlIGhhcyBhIHRpdGxlIGluIHRoZSBndWFyZCBhYm92ZSxcbiAgICAvLyB3ZSdsbCAtIGVhZ2VybHkgLSBzZXQgdGhpcyBmbGFnIG5vdyB0byBwcmV2ZW50IHVubmVjZXNzYXJ5IHJlLXJ1bnMgb2YgdGhlIHJlc3Qgb2YgdGhpcyBtZXRob2Q6XG4gICAgdGhpcy5pc09ic2VydmluZ1RpdGxlID0gdHJ1ZTtcblxuICAgIGlmICghdGhpcy50aXRsZUludGVyc2VjdGlvbk9ic2VydmVyKSB7XG4gICAgICB0aGlzLnRpdGxlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAgIChlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgLy8gSW4gcmFyZSBzY2VuYXJpb3Mgd2UgZ2V0IG1vcmUgdGhhbiAxIGVudHJ5IC0gdXNlIHRoZSBsYXN0IG9uZTpcbiAgICAgICAgICBjb25zdCBsYXN0RW50cnkgPSBlbnRyaWVzW2VudHJpZXMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgaWYgKGxhc3RFbnRyeSkge1xuICAgICAgICAgICAgY29uc3Qgc2hvd1Rvb2xiYXJUaXRsZSA9ICFsYXN0RW50cnkuaXNJbnRlcnNlY3Rpbmc7XG4gICAgICAgICAgICAvLyBPbmx5IGZsaXAgdGhlIGZsYWcgYW5kIHJ1biBDaGFuZ2UgRGV0ZWN0aW9uIHdoZW4gY2hhbmdlZDpcbiAgICAgICAgICAgIGlmIChzaG93VG9vbGJhclRpdGxlICE9PSB0aGlzLnRvb2xiYXJUaXRsZVZpc2libGUpIHtcbiAgICAgICAgICAgICAgdGhpcy50b29sYmFyVGl0bGVWaXNpYmxlID0gc2hvd1Rvb2xiYXJUaXRsZTtcbiAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IHJvb3Q6IHRoaXMuaW9uQ29udGVudEVsZW1lbnQubmF0aXZlRWxlbWVudCB9XG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFJ1biBvdXRzaWRlIEFuZ3VsYXIgdG8gcHJldmVudCB1bm5lY2Vzc2FyeSB0cmlnZ2VyaW5nIGNoYW5nZSBkZXRlY3Rpb25cbiAgICAvLyBhbmQgLSB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnMgLSBhbiBpbmZpbml0ZSBsb29wIHdoZW4gY2FsbGVkIHdpdGhpbiBuZ0FmdGVyQ29udGVudENoZWNrZWQ6XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMud2hlbkNvbnRlbnRSZWFkeSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICBjb25zdCB0aXRsZUVsZW1lbnRSZWYgPSB0aGlzLnBhZ2VUaXRsZSB8fCB0aGlzLmhlYWRlcj8udGl0bGVFbGVtZW50O1xuICAgICAgICBpZiAodGl0bGVFbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgdGhpcy50aXRsZUludGVyc2VjdGlvbk9ic2VydmVyLm9ic2VydmUodGl0bGVFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdW5vYnNlcnZlVGl0bGUoKSB7XG4gICAgY29uc3QgdGl0bGVFbGVtZW50UmVmID0gdGhpcy5wYWdlVGl0bGUgfHwgdGhpcy5oZWFkZXI/LnRpdGxlRWxlbWVudDtcbiAgICBpZiAodGl0bGVFbGVtZW50UmVmKSB7XG4gICAgICB0aGlzLnRpdGxlSW50ZXJzZWN0aW9uT2JzZXJ2ZXI/LnVub2JzZXJ2ZSh0aXRsZUVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuICAgIHRoaXMuaXNPYnNlcnZpbmdUaXRsZSA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplQWN0aW9ucygpIHtcbiAgICBpZiAodGhpcy5oZWFkZXJBY3Rpb25zVGVtcGxhdGUgPT09IHVuZGVmaW5lZCAmJiAhIXRoaXMuaGVhZGVyKSB7XG4gICAgICB0aGlzLmhlYWRlckFjdGlvbnNUZW1wbGF0ZSA9IHRoaXMuaGVhZGVyLmFjdGlvbnNUZW1wbGF0ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGFzSGVhZGVyICYmIHRoaXMuaXNPYnNlcnZpbmdBY3Rpb25zICYmICF0aGlzLmhlYWRlcj8uYWN0aW9uc0VsZW1lbnQpIHtcbiAgICAgIC8vIElmIHdlJ3JlIGFscmVhZHkgb2JzZXJ2aW5nIHRoZSBoZWFkZXIncyBhY3Rpb25zIGVsZW1lbnQsIGJ1dCBpdCdzIG5vIGxvbmdlciBwcmVzZW50LFxuICAgICAgLy8gaXQgbWVhbnMgaXQgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIERPTSAoZS5nLiBpbiB2aXJ0dWFsIHNjcm9sbGluZyBzY2VuYXJpb3MpLlxuICAgICAgLy8gRmxpcCBvYnNlcnZpbmcgZmxhZzpcbiAgICAgIHRoaXMuaXNPYnNlcnZpbmdBY3Rpb25zID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy5vYnNlcnZlQWN0aW9ucygpO1xuXG4gICAgdGhpcy5jdXN0b21BY3Rpb25zLmZvckVhY2goKHBhZ2VBY3Rpb24pID0+IHtcbiAgICAgIGlmIChwYWdlQWN0aW9uLmlzRml4ZWQpIHtcbiAgICAgICAgdGhpcy5maXhlZEFjdGlvbnNUZW1wbGF0ZSA9IHBhZ2VBY3Rpb24udGVtcGxhdGU7XG4gICAgICB9IGVsc2UgaWYgKHBhZ2VBY3Rpb24uaXNTdGlja3kpIHtcbiAgICAgICAgdGhpcy5zdGlja3lBY3Rpb25zVGVtcGxhdGUgPSBwYWdlQWN0aW9uLnRlbXBsYXRlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wYWdlQWN0aW9uc1RlbXBsYXRlID0gcGFnZUFjdGlvbi50ZW1wbGF0ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZUFjdGlvbnMoKSB7XG4gICAgaWYgKCF0aGlzLmhlYWRlcj8uYWN0aW9uc0VsZW1lbnQpIHtcbiAgICAgIC8vIE5vdGhpbmcgdG8gb2JzZXJ2ZVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzT2JzZXJ2aW5nQWN0aW9ucykge1xuICAgICAgLy8gQWxyZWFkeSBvYnNlcnZpbmdcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBXZSBhcmUgbm90IGFjdHVhbGx5IG9ic2VydmluZyBhY3Rpb25zIHVudGlsIGFmdGVyIHRoZSBgd2hlbkNvbnRlbnRSZWFkeWAgcHJvbWlzZSBoYXMgcmVzb2x2ZWQsXG4gICAgLy8gYnV0IHNpbmNlIHdlJ3ZlIGFscmVhZHkgY2hlY2tlZCB0aGF0IHRoZXJlJ3MgYW4gYWN0aW9ucyBlbGVtZW50IHByZXNlbnQgaW4gdGhlIGd1YXJkIGFib3ZlLFxuICAgIC8vIHdlJ2xsIC0gZWFnZXJseSAtIHNldCB0aGlzIGZsYWcgbm93IHRvIHByZXZlbnQgdW5uZWNlc3NhcnkgcmUtcnVucyBvZiB0aGUgcmVzdCBvZiB0aGlzIG1ldGhvZDpcbiAgICB0aGlzLmlzT2JzZXJ2aW5nQWN0aW9ucyA9IHRydWU7XG5cbiAgICBpZiAoIXRoaXMuc3RpY2t5QWN0aW9uc0ludGVyc2VjdGlvbk9ic2VydmVyKSB7XG4gICAgICB0aGlzLnN0aWNreUFjdGlvbnNJbnRlcnNlY3Rpb25PYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgICAgKGVudHJpZXMpID0+IHtcbiAgICAgICAgICAvLyBJbiByYXJlIHNjZW5hcmlvcyB3ZSBnZXQgbW9yZSB0aGFuIDEgZW50cnkgLSB1c2UgdGhlIGxhc3Qgb25lOlxuICAgICAgICAgIGNvbnN0IGxhc3RFbnRyeSA9IGVudHJpZXNbZW50cmllcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICBpZiAobGFzdEVudHJ5KSB7XG4gICAgICAgICAgICBjb25zdCBzaG93VG9vbGJhckFjdGlvbnMgPSAhbGFzdEVudHJ5LmlzSW50ZXJzZWN0aW5nO1xuICAgICAgICAgICAgLy8gT25seSBmbGlwIHRoZSBmbGFnIGFuZCBydW4gQ2hhbmdlIERldGVjdGlvbiB3aGVuIGNoYW5nZWQ6XG4gICAgICAgICAgICBpZiAoc2hvd1Rvb2xiYXJBY3Rpb25zICE9PSB0aGlzLnRvb2xiYXJBY3Rpb25zVmlzaWJsZSkge1xuICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJBY3Rpb25zVmlzaWJsZSA9IHNob3dUb29sYmFyQWN0aW9ucztcbiAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IHJvb3Q6IHRoaXMuaW9uQ29udGVudEVsZW1lbnQubmF0aXZlRWxlbWVudCB9XG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFJ1biBvdXRzaWRlIEFuZ3VsYXIgdG8gcHJldmVudCB1bm5lY2Vzc2FyeSB0cmlnZ2VyaW5nIGNoYW5nZSBkZXRlY3Rpb25cbiAgICAvLyBhbmQgLSB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnMgLSBhbiBpbmZpbml0ZSBsb29wIHdoZW4gY2FsbGVkIHdpdGhpbiBuZ0FmdGVyQ29udGVudENoZWNrZWQ6XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMud2hlbkNvbnRlbnRSZWFkeSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5oZWFkZXI/LmFjdGlvbnNFbGVtZW50Py5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgdGhpcy5zdGlja3lBY3Rpb25zSW50ZXJzZWN0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmhlYWRlci5hY3Rpb25zRWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVub2JzZXJ2ZUFjdGlvbnMoKSB7XG4gICAgaWYgKHRoaXMuaGVhZGVyPy5hY3Rpb25zRWxlbWVudCkge1xuICAgICAgdGhpcy5zdGlja3lBY3Rpb25zSW50ZXJzZWN0aW9uT2JzZXJ2ZXI/LnVub2JzZXJ2ZSh0aGlzLmhlYWRlci5hY3Rpb25zRWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG4gICAgdGhpcy5pc09ic2VydmluZ0FjdGlvbnMgPSBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUNvbnRlbnQoKSB7XG4gICAgdGhpcy5jdXN0b21Db250ZW50LmZvckVhY2goKGNvbnRlbnQpID0+IHtcbiAgICAgIGlmIChjb250ZW50LmlzRml4ZWQpIHtcbiAgICAgICAgdGhpcy5maXhlZENvbnRlbnRUZW1wbGF0ZSA9IGNvbnRlbnQudGVtcGxhdGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmN1c3RvbUNvbnRlbnRUZW1wbGF0ZSA9IGNvbnRlbnQudGVtcGxhdGU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVTdGlja3lDb250ZW50KCkge1xuICAgIHRoaXMuc3RpY2t5Q29udGVudFRlbXBsYXRlID0gdGhpcy5zdGlja3lDb250ZW50UmVmO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVTdGlja3lDb250ZW50SW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKSB7XG4gICAgY29uc3Qgb3B0aW9uczogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJJbml0ID0ge1xuICAgICAgcm9vdDogdGhpcy5pb25Db250ZW50RWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgdGhyZXNob2xkOiAxLFxuICAgIH07XG5cbiAgICBjb25zdCBjYWxsYmFjazogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayA9IChlbnRyaWVzKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc1N0aWNreUNvbnRlbnRQaW5uZWQgIT09ICFlbnRyaWVzWzBdLmlzSW50ZXJzZWN0aW5nKSB7XG4gICAgICAgIHRoaXMuaXNTdGlja3lDb250ZW50UGlubmVkID0gIXRoaXMuaXNTdGlja3lDb250ZW50UGlubmVkO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoY2FsbGJhY2ssIG9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXRobmFtZSh1cmw6IHN0cmluZykge1xuICAgIHJldHVybiB1cmwuc3BsaXQoJz8nKVswXTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlib2FyZFdpbGxTaG93JywgWyckZXZlbnQnXSlcbiAgX29uS2V5Ym9hcmRXaWxsU2hvdyhpbmZvPzogeyBrZXlib2FyZEhlaWdodDogbnVtYmVyIH0pIHtcbiAgICBpZiAoaW5mbyAmJiBpbmZvLmtleWJvYXJkSGVpZ2h0KSB7XG4gICAgICB0aGlzLmlvbkNvbnRlbnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICctLWtleWJvYXJkLW9mZnNldCcsXG4gICAgICAgIGAke2luZm8ua2V5Ym9hcmRIZWlnaHR9cHhgXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlib2FyZFdpbGxIaWRlJylcbiAgX29uS2V5Ym9hcmRXaWxsSGlkZSgpIHtcbiAgICB0aGlzLmlvbkNvbnRlbnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0ta2V5Ym9hcmQtb2Zmc2V0JywgJzBweCcpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihgd2luZG93OiR7c2VsZWN0ZWRUYWJDbGlja0V2ZW50fWApXG4gIF9vblNlbGVjdGVkVGFiQ2xpY2soKSB7XG4gICAgaWYgKHRoaXMuY29udGVudCkge1xuICAgICAgdGhpcy5jb250ZW50LnNjcm9sbFRvVG9wKEtpcmJ5QW5pbWF0aW9uLkR1cmF0aW9uLkxPTkcpO1xuICAgIH1cbiAgfVxufVxuIiwiPGlvbi1oZWFkZXI+XG4gIDxpb24tdG9vbGJhclxuICAgIFtjbGFzcy5jb250ZW50LXNjcm9sbGVkXT1cImlzQ29udGVudFNjcm9sbGVkXCJcbiAgICBbY2xhc3MuY29udGVudC1waW5uZWRdPVwiaXNTdGlja3lDb250ZW50UGlubmVkXCJcbiAgPlxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwic3RhcnRcIj5cbiAgICAgIDxpb24tYmFjay1idXR0b25cbiAgICAgICAgdGV4dD1cIlwiXG4gICAgICAgIFtkZWZhdWx0SHJlZl09XCJkZWZhdWx0QmFja0hyZWZcIlxuICAgICAgICBpY29uPVwiYXNzZXRzL2tpcmJ5L2ljb25zL3N2Zy9hcnJvdy1iYWNrLnN2Z1wiXG4gICAgICAgIFtzdHlsZS52aXNpYmlsaXR5XT1cImhpZGVCYWNrQnV0dG9uID8gJ2hpZGRlbicgOiBudWxsXCJcbiAgICAgID48L2lvbi1iYWNrLWJ1dHRvbj5cbiAgICA8L2lvbi1idXR0b25zPlxuICAgIDxpb24tdGl0bGUgW2NsYXNzLnNsaWRlLWFuZC1mYWRlLWluXT1cInRvb2xiYXJUaXRsZVZpc2libGVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyLXRpdGxlXCI+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgW2NsYXNzLmNsaWNrYWJsZV09XCJoYXNJbnRlcmFjdGl2ZVRpdGxlXCJcbiAgICAgICAgICBbY2xhc3MuaGFzLWljb25dPVwiISF0aXRsZUFjdGlvbkljb25UZW1wbGF0ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uVGl0bGVDbGljaygkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0b29sYmFyVGl0bGVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0aXRsZUFjdGlvbkljb25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2lvbi10aXRsZT5cbiAgICA8aW9uLWJ1dHRvbnNcbiAgICAgICpuZ0lmPVwiISFoZWFkZXJBY3Rpb25zVGVtcGxhdGVcIlxuICAgICAgY2xhc3M9XCJoaWRlXCJcbiAgICAgIHNsb3Q9XCJwcmltYXJ5XCJcbiAgICAgIFtjbGFzcy5mYWRlLWluXT1cInRvb2xiYXJBY3Rpb25zVmlzaWJsZVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlckFjdGlvbnNUZW1wbGF0ZTsgaW5qZWN0b3I6IHRvb2xiYXJBY3Rpb25Hcm91cEluamVjdG9yXCJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L2lvbi1idXR0b25zPlxuICAgIDxpb24tYnV0dG9ucyAqbmdJZj1cIiEhc3RpY2t5QWN0aW9uc1RlbXBsYXRlXCIgY2xhc3M9XCJsZWdhY3ktYWN0aW9uc1wiIHNsb3Q9XCJwcmltYXJ5XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RpY2t5QWN0aW9uc1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9pb24tYnV0dG9ucz5cbiAgICA8aW9uLWJ1dHRvbnMgKm5nSWY9XCIhIWZpeGVkQWN0aW9uc1RlbXBsYXRlXCIgY2xhc3M9XCJsZWdhY3ktYWN0aW9uc1wiIHNsb3Q9XCJzZWNvbmRhcnlcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmaXhlZEFjdGlvbnNUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvaW9uLWJ1dHRvbnM+XG4gIDwvaW9uLXRvb2xiYXI+XG48L2lvbi1oZWFkZXI+XG5cbjxpb24tY29udGVudCBzY3JvbGxFdmVudHM9XCJ0cnVlXCIgZm9yY2VPdmVyc2Nyb2xsPVwiZmFsc2VcIiBbY2xhc3NdPVwiZ2V0TWF4V2lkdGhDbGFzc2VzKClcIj5cbiAgPGlvbi1yZWZyZXNoZXJcbiAgICAqbmdJZj1cInJlZnJlc2gub2JzZXJ2ZXJzLmxlbmd0aCA+IDBcIlxuICAgIChpb25SZWZyZXNoKT1cImRlbGVnYXRlUmVmcmVzaEV2ZW50KCRldmVudClcIlxuICAgIHNsb3Q9XCJmaXhlZFwiXG4gID5cbiAgICA8a2lyYnktc3Bpbm5lcj48L2tpcmJ5LXNwaW5uZXI+XG4gIDwvaW9uLXJlZnJlc2hlcj5cblxuICA8IS0tIFBhZ2UgaGVhZGVyIC0tPlxuICA8ZGl2IGNsYXNzPVwicGFnZS1oZWFkZXItY29udGFpbmVyXCIgKm5nSWY9XCJoYXNQYWdlVGl0bGUgJiYgIWhhc0hlYWRlclwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwicGFnZS1oZWFkZXJcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAndGV4dC1jZW50ZXInOiB0aXRsZUFsaWdubWVudCA9PT0gJ2NlbnRlcicsXG4gICAgICAgICd0ZXh0LXJpZ2h0JzogdGl0bGVBbGlnbm1lbnQgPT09ICdyaWdodCdcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxkaXYgI3BhZ2VUaXRsZSBjbGFzcz1cInBhZ2UtdGl0bGVcIiBbY2xhc3MuaGFzLWFjdGlvbnNdPVwiISFwYWdlQWN0aW9uc1RlbXBsYXRlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbVRpdGxlVGVtcGxhdGUgfHwgZGVmYXVsdFBhZ2VUaXRsZVRlbXBsYXRlXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdlQWN0aW9uc1RlbXBsYXRlIHx8IGRlZmF1bHRQYWdlQWN0aW9uc1RlbXBsYXRlXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiaGFzUGFnZVN1YnRpdGxlXCIgY2xhc3M9XCJwYWdlLXN1YnRpdGxlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbVN1YnRpdGxlVGVtcGxhdGUgfHwgZGVmYXVsdFBhZ2VTdWJ0aXRsZVRlbXBsYXRlXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gSGVhZGVyIC0tPlxuICA8ZGl2IGNsYXNzPVwicGFnZS1oZWFkZXItY29udGFpbmVyXCIgKm5nSWY9XCJoYXNIZWFkZXJcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJraXJieS1oZWFkZXJcIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuXG4gIDwhLS0gIFN0aWNreSBjb250ZW50IC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic3RpY2t5Q29udGVudFRlbXBsYXRlXCI+XG4gICAgPGRpdlxuICAgICAgI3N0aWNreUNvbnRlbnRDb250YWluZXJcbiAgICAgIGNsYXNzPVwic3RpY2t5LWNvbnRlbnQtY29udGFpbmVyXCJcbiAgICAgIFtjbGFzcy5jb250ZW50LXBpbm5lZF09XCJpc1N0aWNreUNvbnRlbnRQaW5uZWRcIlxuICAgID5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdGlja3lDb250ZW50VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIENvbnRlbnQgLS0+XG4gIDxkaXYgY2xhc3M9XCJjb250ZW50LWlubmVyXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21Db250ZW50VGVtcGxhdGUgfHwgZGVmYXVsdENvbnRlbnRUZW1wbGF0ZVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8ZGl2IHNsb3Q9XCJmaXhlZFwiIGNsYXNzPVwiZml4ZWQtY29udGVudFwiICpuZ0lmPVwiZml4ZWRDb250ZW50VGVtcGxhdGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1pbm5lclwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZpeGVkQ29udGVudFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9pb24tY29udGVudD5cblxuPGlvbi1mb290ZXI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImtpcmJ5LXBhZ2UtZm9vdGVyXCI+PC9uZy1jb250ZW50PlxuPC9pb24tZm9vdGVyPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRQYWdlVGl0bGVUZW1wbGF0ZT5cbiAgPGgxIFtraXJieUZpdEhlYWRpbmddPVwiZml0SGVhZGluZ0NvbmZpZ1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzaW1wbGVUaXRsZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gIDwvaDE+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNkZWZhdWx0UGFnZVN1YnRpdGxlVGVtcGxhdGU+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzaW1wbGVTdWJ0aXRsZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNkZWZhdWx0UGFnZUFjdGlvbnNUZW1wbGF0ZT5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwia2lyYnktcGFnZS1hY3Rpb25zXCI+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Q29udGVudFRlbXBsYXRlPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJraXJieS1wYWdlLWNvbnRlbnRcIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3NpbXBsZVRpdGxlVGVtcGxhdGU+e3sgdGl0bGUgfX08L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNzaW1wbGVTdWJ0aXRsZVRlbXBsYXRlPnt7IHN1YnRpdGxlIH19PC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjc2ltcGxlVG9vbGJhclRpdGxlVGVtcGxhdGU+e3sgdG9vbGJhclRpdGxlIH19PC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
700
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2Rlc2lnbnN5c3RlbS9wYWdlL3NyYy9wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduc3lzdGVtL3BhZ2Uvc3JjL3BhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sY0FBYyxFQUNkLFFBQVEsRUFDUixLQUFLLEVBQ0wsTUFBTSxFQUlOLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFFVCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQWUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLFVBQVUsRUFDVixTQUFTLEVBQ1QsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsYUFBYSxHQUNkLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RGLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLHVCQUF1QixFQUN2QixnQkFB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cUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFHN0QsMEJBQTBCO3NCQURqQyxTQUFTO3VCQUFDLDRCQUE0QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUdwRSwwQkFBMEI7c0JBRGpDLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBRzdFLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFHdEUsc0JBQXNCO3NCQURyQixZQUFZO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUd6RSxhQUFhO3NCQURaLGVBQWU7dUJBQUMsb0JBQW9CO2dCQUc3QixhQUFhO3NCQURwQixlQUFlO3VCQUFDLG9CQUFvQjtnQkFHN0IsZ0JBQWdCO3NCQUR2QixZQUFZO3VCQUFDLDBCQUEwQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUc5RSxNQUFNO3NCQURMLFlBQVk7dUJBQUMsZUFBZTtnQkFpZTdCLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyx5QkFBeUIsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFXbkQsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLHlCQUF5QjtnQkFNdkMsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLFVBQVUscUJBQXFCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIEluamVjdGlvblRva2VuLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBSZW5kZXJlcjIsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFNraXBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIE5hdmlnYXRpb25TdGFydCwgUm91dGVyLCBSb3V0ZXJFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBJb25CYWNrQnV0dG9uRGVsZWdhdGUsXG4gIElvbkNvbnRlbnQsXG4gIElvbkZvb3RlcixcbiAgSW9uSGVhZGVyLFxuICBJb25Sb3V0ZXJPdXRsZXQsXG4gIElvblRvb2xiYXIsXG4gIE5hdkNvbnRyb2xsZXIsXG59IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFNjcm9sbERldGFpbCB9IGZyb20gJ0Bpb25pYy9jb3JlJztcbmltcG9ydCB7IHNlbGVjdGVkVGFiQ2xpY2tFdmVudCwgVGFic0NvbXBvbmVudCB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vdGFicyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEtpcmJ5QW5pbWF0aW9uIH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9oZWxwZXJzJztcbmltcG9ydCB7XG4gIE1vZGFsRWxlbWVudENvbXBvbmVudCxcbiAgTW9kYWxFbGVtZW50c0FkdmVydGlzZXIsXG4gIE1vZGFsRWxlbWVudFR5cGUsXG4gIE1vZGFsTmF2aWdhdGlvblNlcnZpY2UsXG4gIE1vZGFsV3JhcHBlckNvbXBvbmVudCxcbn0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9tb2RhbCc7XG5pbXBvcnQgeyBGaXRIZWFkaW5nQ29uZmlnLCBSZXNpemVPYnNlcnZlclNlcnZpY2UgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL3NoYXJlZCc7XG5pbXBvcnQge1xuICBIZWFkZXJBY3Rpb25zRGlyZWN0aXZlLFxuICBIZWFkZXJDb21wb25lbnQsXG4gIEhlYWRlclRpdGxlQWN0aW9uSWNvbkRpcmVjdGl2ZSxcbn0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9oZWFkZXInO1xuaW1wb3J0IHsgQUNUSU9OR1JPVVBfQ09ORklHLCBBY3Rpb25Hcm91cENvbmZpZyB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vYWN0aW9uLWdyb3VwJztcblxuLyoqXG4gKiBTcGVjaWZ5IHNjcm9sbCBldmVudCBkZWJvdW5jZSB0aW1lIGluIG1zIGFuZCBzY3JvbGxlZCBvZmZzZXQgZnJvbSB0b3AgaW4gcGl4ZWxzXG4gKi9cbmNvbnN0IGNvbnRlbnRTY3JvbGxEZWJvdW5jZVRpbWVJbk1TID0gMTA7XG5jb25zdCBjb250ZW50U2Nyb2xsZWRPZmZzZXRJblBpeGVscyA9IDQ7XG5cbnR5cGUgc3RpY2t5Q29uZmlnID0geyBzdGlja3k6IGJvb2xlYW4gfTtcbnR5cGUgZml4ZWRDb25maWcgPSB7IGZpeGVkOiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCBQQUdFX0JBQ0tfQlVUVE9OX09WRVJSSURFID0gbmV3IEluamVjdGlvblRva2VuPFBhZ2VCYWNrQnV0dG9uT3ZlcnJpZGU+KFxuICAncGFnZS1iYWNrLWJ1dHRvbi1vdmVycmlkZSdcbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZUJhY2tCdXR0b25PdmVycmlkZSB7XG4gIG5hdmlnYXRlQmFjazogKFxuICAgIHJvdXRlck91dGxldDogSW9uUm91dGVyT3V0bGV0LFxuICAgIG5hdkN0cmw6IE5hdkNvbnRyb2xsZXIsXG4gICAgZGVmYXVsdEJhY2tIcmVmOiBzdHJpbmdcbiAgKSA9PiB2b2lkO1xufVxuXG4vKipcbiAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBcInB1bGwtdG8tcmVmcmVzaFwiIGJlZ2lucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQdWxsVG9SZWZyZXNoRXZlbnQge1xuICAvKipcbiAgICogSW52b2tlIHRoaXMgY2FsbGJhY2stbWV0aG9kIHdoZW4gYWN0aW9uIHRvIHBlcmZvcm0gdXBvbiBcInB1bGwtdG8tcmVmcmVzaFwiIGNvbXBsZXRlcy5cbiAgICovXG4gIGNvbXBsZXRlKCk7XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1traXJieVBhZ2VUaXRsZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdlVGl0bGVEaXJlY3RpdmUge31cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2tpcmJ5UGFnZVN1YnRpdGxlXScsXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VTdWJ0aXRsZURpcmVjdGl2ZSB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdba2lyYnlQYWdlVG9vbGJhclRpdGxlXScsXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VUb29sYmFyVGl0bGVEaXJlY3RpdmUge31cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2tpcmJ5UGFnZUFjdGlvbnNdJyxcbn0pXG5leHBvcnQgY2xhc3MgUGFnZUFjdGlvbnNEaXJlY3RpdmUge1xuICBASW5wdXQoJ2tpcmJ5UGFnZUFjdGlvbnMnKSBjb25maWc6IHN0aWNreUNvbmZpZyB8IGZpeGVkQ29uZmlnO1xuICBwcml2YXRlIHJlYWRvbmx5IHN0aWNreURlZmF1bHQgPSB0cnVlO1xuICBwcml2YXRlIHJlYWRvbmx5IGZpeGVkRGVmYXVsdCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge31cblxuICBnZXQgaXNTdGlja3koKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnID8gKHRoaXMuY29uZmlnIGFzIHN0aWNreUNvbmZpZykuc3RpY2t5IDogdGhpcy5zdGlja3lEZWZhdWx0O1xuICB9XG5cbiAgZ2V0IGlzRml4ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnID8gKHRoaXMuY29uZmlnIGFzIGZpeGVkQ29uZmlnKS5maXhlZCA6IHRoaXMuZml4ZWREZWZhdWx0O1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1traXJieVBhZ2VDb250ZW50XScsXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VDb250ZW50RGlyZWN0aXZlIHtcbiAgQElucHV0KCdraXJieVBhZ2VDb250ZW50JykgY29uZmlnOiBmaXhlZENvbmZpZztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHt9XG5cbiAgZ2V0IGlzRml4ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnICYmIHRoaXMuY29uZmlnLmZpeGVkO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1traXJieVBhZ2VTdGlja3lDb250ZW50XScsXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VTdGlja3lDb250ZW50RGlyZWN0aXZlIHt9XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tpcmJ5LXBhZ2UtcHJvZ3Jlc3MnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgYCxcbiAgc3R5bGVzOiBbJzpob3N0IHtkaXNwbGF5OiBmbGV4fSddLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdlUHJvZ3Jlc3NDb21wb25lbnQgZXh0ZW5kcyBNb2RhbEVsZW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyBUT0RPOiBGaW5kIGFsdGVybmF0aXZlIGltcGxlbWVudGF0aW9uLCB3aGljaCBhbGlnbnMgd2l0aCBmdXR1cmUgcGFnZSBjb25maWd1cmF0aW9uIC8gY29uc3VtcHRpb25cbiAgLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiB3YXMgY2hvc2VuIG92ZXIgZXhwYW5kaW5nIGBtb3ZlQ2hpbGRgIG1ldGhvZCBpbiBjb21wb25lbnQgd3JhcHBlciB3aXRoIHlldCBhbm90aGVyIHNjZW5hcmlvXG4gIEBIb3N0QmluZGluZygnYXR0ci5zbG90Jykgc2xvdCA9ICdzdGFydCc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcHJpdmF0ZSBtb2RhbFdyYXBwZXI6IE1vZGFsV3JhcHBlckNvbXBvbmVudCxcbiAgICBAT3B0aW9uYWwoKSBtb2RhbEVsZW1lbnRzQWR2ZXJ0aXNlcjogTW9kYWxFbGVtZW50c0FkdmVydGlzZXIsXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cbiAgKSB7XG4gICAgc3VwZXIoTW9kYWxFbGVtZW50VHlwZS5QQUdFX1BST0dSRVNTLCBlbGVtZW50UmVmLCBtb2RhbEVsZW1lbnRzQWR2ZXJ0aXNlcik7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tb2RhbFdyYXBwZXIgJiYgdGhpcy5tb2RhbFdyYXBwZXIuY29uZmlnLmZsYXZvciA9PT0gJ2RyYXdlcicpIHtcbiAgICAgIHRoaXMuc2xvdCA9ICdlbmQnO1xuICAgIH1cbiAgfVxufVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2lyYnktcGFnZS10aXRsZScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdlVGl0bGVDb21wb25lbnQgZXh0ZW5kcyBNb2RhbEVsZW1lbnRDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBAT3B0aW9uYWwoKSBtb2RhbEVsZW1lbnRzQWR2ZXJ0aXNlcjogTW9kYWxFbGVtZW50c0FkdmVydGlzZXJcbiAgKSB7XG4gICAgc3VwZXIoTW9kYWxFbGVtZW50VHlwZS5USVRMRSwgZWxlbWVudFJlZiwgbW9kYWxFbGVtZW50c0FkdmVydGlzZXIpO1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tpcmJ5LXBhZ2UtY29udGVudCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdlQ29udGVudENvbXBvbmVudCB7fVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdraXJieS1wYWdlLWFjdGlvbnMnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImJ1dHRvbltraXJieS1idXR0b25dXCI+PC9uZy1jb250ZW50PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdlQWN0aW9uc0NvbXBvbmVudCB7fVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdraXJieS1wYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYWdlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIEFmdGVyQ29udGVudENoZWNrZWQsIE9uQ2hhbmdlc1xue1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuICBASW5wdXQoKSBzdWJ0aXRsZTogc3RyaW5nO1xuICBASW5wdXQoKSB0b29sYmFyVGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgdGl0bGVBbGlnbm1lbnQ6ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JyA9ICdsZWZ0JztcbiAgQElucHV0KCkgZGVmYXVsdEJhY2tIcmVmOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGhpZGVCYWNrQnV0dG9uOiBib29sZWFuO1xuICBASW5wdXQoKSB0aXRsZU1heExpbmVzOiBudW1iZXI7XG4gIEBJbnB1dCgpIG1heFdpZHRoOiAnZGVmYXVsdCcgfCAnc3RhbmRhcmQnIHwgJ29wdGltaXplZCcgfCAnZnVsbCcgPSAnZGVmYXVsdCc7XG5cbiAgcHJpdmF0ZSBfdGFiQmFyQm90dG9tSGlkZGVuOiBib29sZWFuO1xuICBwdWJsaWMgZ2V0IHRhYkJhckJvdHRvbUhpZGRlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdGFiQmFyQm90dG9tSGlkZGVuO1xuICB9XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdGFiQmFyQm90dG9tSGlkZGVuKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMudGFic0NvbXBvbmVudCkge1xuICAgICAgLy8gYXMgd2UgYXJlIHNldHRpbmcgYSBjbGFzcyBvbiB0YWJzLCB3ZSBuZWVkIHRoaXMgdG8gaGFwcGVuIGluIGEgc2VwYXJhdGUgY2QgY3ljbGVcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gKHRoaXMudGFic0NvbXBvbmVudC50YWJCYXJCb3R0b21IaWRkZW4gPSB2YWx1ZSkpO1xuICAgIH1cbiAgICB0aGlzLl90YWJCYXJCb3R0b21IaWRkZW4gPSB2YWx1ZTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBlbnRlciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGxlYXZlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcmVmcmVzaCA9IG5ldyBFdmVudEVtaXR0ZXI8UHVsbFRvUmVmcmVzaEV2ZW50PigpO1xuICBAT3V0cHV0KCkgYmFja0J1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICBAVmlld0NoaWxkKElvbkNvbnRlbnQsIHsgc3RhdGljOiB0cnVlIH0pIHByaXZhdGUgY29udGVudD86IElvbkNvbnRlbnQ7XG4gIEBWaWV3Q2hpbGQoSW9uQ29udGVudCwgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHJpdmF0ZSBpb25Db250ZW50RWxlbWVudDogRWxlbWVudFJlZjxIVE1MSW9uQ29udGVudEVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKElvbkhlYWRlciwgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgaW9uSGVhZGVyRWxlbWVudDogRWxlbWVudFJlZjxIVE1MSW9uSGVhZGVyRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoSW9uRm9vdGVyLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwcml2YXRlIGlvbkZvb3RlckVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTElvbkZvb3RlckVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKElvblRvb2xiYXIsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHByaXZhdGUgaW9uVG9vbGJhckVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTElvblRvb2xiYXJFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKElvbkJhY2tCdXR0b25EZWxlZ2F0ZSwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHByaXZhdGUgYmFja0J1dHRvbkRlbGVnYXRlOiBJb25CYWNrQnV0dG9uRGVsZWdhdGU7XG4gIEBWaWV3Q2hpbGQoJ3BhZ2VUaXRsZScsIHsgc3RhdGljOiBmYWxzZSwgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwcml2YXRlIHBhZ2VUaXRsZTogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnc3RpY2t5Q29udGVudENvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSwgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwcml2YXRlIHN0aWNreUNvbnRlbnRDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgnc2ltcGxlVGl0bGVUZW1wbGF0ZScsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBwcml2YXRlIHNpbXBsZVRpdGxlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ3NpbXBsZVRvb2xiYXJUaXRsZVRlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIHByaXZhdGUgc2ltcGxlVG9vbGJhclRpdGxlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBDb250ZW50Q2hpbGQoUGFnZVRvb2xiYXJUaXRsZURpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlLCByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBwcml2YXRlIGN1c3RvbVRvb2xiYXJUaXRsZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAQ29udGVudENoaWxkKFBhZ2VUaXRsZURpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlLCByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBjdXN0b21UaXRsZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAQ29udGVudENoaWxkKFBhZ2VTdWJ0aXRsZURpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlLCByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICBjdXN0b21TdWJ0aXRsZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAQ29udGVudENoaWxkcmVuKFBhZ2VBY3Rpb25zRGlyZWN0aXZlKVxuICBjdXN0b21BY3Rpb25zOiBRdWVyeUxpc3Q8UGFnZUFjdGlvbnNEaXJlY3RpdmU+O1xuICBAQ29udGVudENoaWxkcmVuKFBhZ2VDb250ZW50RGlyZWN0aXZlKVxuICBwcml2YXRlIGN1c3RvbUNvbnRlbnQ6IFF1ZXJ5TGlzdDxQYWdlQ29udGVudERpcmVjdGl2ZT47XG4gIEBDb250ZW50Q2hpbGQoUGFnZVN0aWNreUNvbnRlbnREaXJlY3RpdmUsIHsgc3RhdGljOiBmYWxzZSwgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgcHJpdmF0ZSBzdGlja3lDb250ZW50UmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAQ29udGVudENoaWxkKEhlYWRlckNvbXBvbmVudClcbiAgaGVhZGVyPzogSGVhZGVyQ29tcG9uZW50O1xuXG4gIGhhc0hlYWRlcjogYm9vbGVhbjtcbiAgaGFzUGFnZVRpdGxlOiBib29sZWFuO1xuICBoYXNQYWdlU3VidGl0bGU6IGJvb2xlYW47XG4gIHRvb2xiYXJUaXRsZVZpc2libGU6IGJvb2xlYW47XG4gIHRvb2xiYXJBY3Rpb25zVmlzaWJsZTogYm9vbGVhbjtcbiAgaXNDb250ZW50U2Nyb2xsZWQ6IGJvb2xlYW47XG4gIGlzU3RpY2t5Q29udGVudFBpbm5lZCA9IGZhbHNlO1xuXG4gIGZpdEhlYWRpbmdDb25maWc6IEZpdEhlYWRpbmdDb25maWc7XG5cbiAgdG9vbGJhclRpdGxlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIGN1c3RvbUNvbnRlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgcGFnZUFjdGlvbnNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgZml4ZWRDb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIHN0aWNreUFjdGlvbnNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgZml4ZWRBY3Rpb25zVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIHN0aWNreUNvbnRlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8UGFnZVN0aWNreUNvbnRlbnREaXJlY3RpdmU+O1xuICBoZWFkZXJBY3Rpb25zVGVtcGxhdGU6IFRlbXBsYXRlUmVmPEhlYWRlckFjdGlvbnNEaXJlY3RpdmU+O1xuICB0aXRsZUFjdGlvbkljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8SGVhZGVyVGl0bGVBY3Rpb25JY29uRGlyZWN0aXZlPjtcbiAgaGVhZGVyVGl0bGVDbGljaz86IEV2ZW50RW1pdHRlcjxQb2ludGVyRXZlbnQ+O1xuICBoYXNJbnRlcmFjdGl2ZVRpdGxlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSB0aXRsZUludGVyc2VjdGlvbk9ic2VydmVyPzogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG4gIHByaXZhdGUgc3RpY2t5QWN0aW9uc0ludGVyc2VjdGlvbk9ic2VydmVyPzogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG4gIHByaXZhdGUgc3RpY2t5Q29udGVudEludGVyc2VjdGlvbk9ic2VydmVyPzogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG4gIHByaXZhdGUgaXNPYnNlcnZpbmdUaXRsZSA9IGZhbHNlO1xuICBwcml2YXRlIGlzT2JzZXJ2aW5nQWN0aW9ucyA9IGZhbHNlO1xuXG4gIHByaXZhdGUgdXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgaXNBY3RpdmU6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBuZ09uRGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIGNvbnRlbnRTY3JvbGxlZCQ6IE9ic2VydmFibGU8U2Nyb2xsRGV0YWlsPjtcblxuICBwcml2YXRlIG5hdmlnYXRpb25TdGFydCQ6IE9ic2VydmFibGU8Um91dGVyRXZlbnQ+ID0gdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoXG4gICAgZmlsdGVyKChldmVudDogUm91dGVyRXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSxcbiAgICB0YWtlVW50aWwodGhpcy5uZ09uRGVzdHJveSQpXG4gICk7XG5cbiAgcHJpdmF0ZSBuYXZpZ2F0aW9uRW5kJDogT2JzZXJ2YWJsZTxSb3V0ZXJFdmVudD4gPSB0aGlzLnJvdXRlci5ldmVudHMucGlwZShcbiAgICBmaWx0ZXIoKGV2ZW50OiBSb3V0ZXJFdmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcbiAgICB0YWtlVW50aWwodGhpcy5uZ09uRGVzdHJveSQpXG4gICk7XG5cbiAgdG9vbGJhckFjdGlvbkdyb3VwSW5qZWN0b3I6IEluamVjdG9yO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIG1vZGFsTmF2aWdhdGlvblNlcnZpY2U6IE1vZGFsTmF2aWdhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZXNpemVPYnNlcnZlclNlcnZpY2U6IFJlc2l6ZU9ic2VydmVyU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwcml2YXRlIHRhYnNDb21wb25lbnQ6IFRhYnNDb21wb25lbnQsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFBBR0VfQkFDS19CVVRUT05fT1ZFUlJJREUpXG4gICAgcHJpdmF0ZSBiYWNrQnV0dG9uT3ZlcnJpZGU6IFBhZ2VCYWNrQnV0dG9uT3ZlcnJpZGUsXG4gICAgQE9wdGlvbmFsKClcbiAgICBwcml2YXRlIHJvdXRlck91dGxldDogSW9uUm91dGVyT3V0bGV0LFxuICAgIEBPcHRpb25hbCgpXG4gICAgcHJpdmF0ZSBuYXZDdHJsOiBOYXZDb250cm9sbGVyXG4gICkge31cblxuICBwcml2YXRlIGNvbnRlbnRSZWFkeVByb21pc2U6IFByb21pc2U8dm9pZD47XG4gIHByaXZhdGUgd2hlbkNvbnRlbnRSZWFkeSgpIHtcbiAgICBpZiAoIXRoaXMuY29udGVudFJlYWR5UHJvbWlzZSkge1xuICAgICAgdGhpcy5jb250ZW50UmVhZHlQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlclNlcnZpY2Uub2JzZXJ2ZSh0aGlzLmlvbkNvbnRlbnRFbGVtZW50LCAoZW50cnkpID0+IHtcbiAgICAgICAgICBpZiAoZW50cnkuY29udGVudFJlY3QuaGVpZ2h0ID4gMCkge1xuICAgICAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlclNlcnZpY2UudW5vYnNlcnZlKHRoaXMuaW9uQ29udGVudEVsZW1lbnQpO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29udGVudFJlYWR5UHJvbWlzZTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVtb3ZlV3JhcHBlcigpO1xuICAgIHRoaXMuc2V0VG9vbGJhckJhY2tncm91bmRQYXJ0KCk7XG5cbiAgICBjb25zdCBhY3Rpb25Hcm91cENvbmZpZzogQWN0aW9uR3JvdXBDb25maWcgPSB7XG4gICAgICBpc0NvbmRlbnNlZDogdHJ1ZSxcbiAgICAgIG1heFZpc2libGVBY3Rpb25zOiAxLFxuICAgIH07XG4gICAgdGhpcy50b29sYmFyQWN0aW9uR3JvdXBJbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFDVElPTkdST1VQX0NPTkZJRyxcbiAgICAgICAgICB1c2VWYWx1ZTogYWN0aW9uR3JvdXBDb25maWcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLnRpdGxlTWF4TGluZXMpIHtcbiAgICAgIHRoaXMuZml0SGVhZGluZ0NvbmZpZyA9IHtcbiAgICAgICAgbWF4TGluZXM6IGNoYW5nZXMudGl0bGVNYXhMaW5lcy5jdXJyZW50VmFsdWUsXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAoY2hhbmdlcy5zdWJ0aXRsZSAmJiAhY2hhbmdlcy5zdWJ0aXRsZS5pc0ZpcnN0Q2hhbmdlKSB7XG4gICAgICB0aGlzLnN1YnRpdGxlID0gY2hhbmdlcy50aXRsZS5jdXJyZW50VmFsdWU7XG4gICAgICB0aGlzLmhhc1BhZ2VTdWJ0aXRsZSA9IHRoaXMuc3VidGl0bGUgIT09IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuY29udGVudFNjcm9sbGVkJCA9IHRoaXMuY29udGVudC5pb25TY3JvbGwucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKGNvbnRlbnRTY3JvbGxEZWJvdW5jZVRpbWVJbk1TKSxcbiAgICAgICAgbWFwKChldmVudCkgPT4gZXZlbnQuZGV0YWlsKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMubmdPbkRlc3Ryb3kkKVxuICAgICAgKTtcblxuICAgICAgdGhpcy5jb250ZW50U2Nyb2xsZWQkLnN1YnNjcmliZSgoc2Nyb2xsSW5mbzogU2Nyb2xsRGV0YWlsKSA9PiB7XG4gICAgICAgIGlmIChzY3JvbGxJbmZvLnNjcm9sbFRvcCA+IGNvbnRlbnRTY3JvbGxlZE9mZnNldEluUGl4ZWxzICE9PSB0aGlzLmlzQ29udGVudFNjcm9sbGVkKSB7XG4gICAgICAgICAgdGhpcy5pc0NvbnRlbnRTY3JvbGxlZCA9ICF0aGlzLmlzQ29udGVudFNjcm9sbGVkO1xuICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIC8vIFRoaXMgaW5zdGFuY2UgaGFzIG9ic2VydmVkIGEgcGFnZSBlbnRlciBzbyByZWdpc3RlciB0aGUgY29ycmVjdCB1cmwgZm9yIHRoaXMgaW5zdGFuY2VcbiAgICB0aGlzLnVybCA9IHRoaXMucm91dGVyLnVybDtcbiAgICB0aGlzLm9uRW50ZXIoKTtcblxuICAgIC8vIFdhdGNoIG5hdmlnYXRpb24gZXZlbnRzIGZvciBwYWdlIGVudGVyIGFuZCBsZWF2ZVxuICAgIHRoaXMubmF2aWdhdGlvblN0YXJ0JC5zdWJzY3JpYmUoKGV2ZW50OiBOYXZpZ2F0aW9uU3RhcnQpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5nZXRQYXRobmFtZShldmVudC51cmwpICE9PSB0aGlzLmdldFBhdGhuYW1lKHRoaXMudXJsKSAmJlxuICAgICAgICAhdGhpcy5tb2RhbE5hdmlnYXRpb25TZXJ2aWNlLmlzTW9kYWxSb3V0ZSh0aGlzLnVybCkgJiZcbiAgICAgICAgIXRoaXMubW9kYWxOYXZpZ2F0aW9uU2VydmljZS5pc01vZGFsUm91dGUoZXZlbnQudXJsKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMub25MZWF2ZSgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5uYXZpZ2F0aW9uRW5kJC5zdWJzY3JpYmUoKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKSA9PiB7XG4gICAgICBpZiAodGhpcy5nZXRQYXRobmFtZShldmVudC51cmxBZnRlclJlZGlyZWN0cykgPT09IHRoaXMuZ2V0UGF0aG5hbWUodGhpcy51cmwpKSB7XG4gICAgICAgIHRoaXMub25FbnRlcigpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5pbnRlcmNlcHRCYWNrQnV0dG9uQ2xpY2tzU2V0dXAoKTtcbiAgICB0aGlzLmluaXRpYWxpemVTdGlja3lJbnRlcnNlY3Rpb25PYnNlcnZlcigpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUhlYWRlcigpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZVRpdGxlKCk7XG4gICAgdGhpcy5pbml0aWFsaXplQWN0aW9ucygpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUNvbnRlbnQoKTtcbiAgICB0aGlzLmluaXRpYWxpemVTdGlja3lDb250ZW50KCk7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm5nT25EZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5uZ09uRGVzdHJveSQuY29tcGxldGUoKTtcblxuICAgIHRoaXMudGl0bGVJbnRlcnNlY3Rpb25PYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuc3RpY2t5QWN0aW9uc0ludGVyc2VjdGlvbk9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5zdGlja3lDb250ZW50SW50ZXJzZWN0aW9uT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIGRlbGVnYXRlUmVmcmVzaEV2ZW50KGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnJlZnJlc2guZW1pdCh7XG4gICAgICBjb21wbGV0ZTogZXZlbnQudGFyZ2V0LmNvbXBsZXRlLmJpbmQoZXZlbnQudGFyZ2V0KSxcbiAgICB9KTtcbiAgfVxuXG4gIGdldE1heFdpZHRoQ2xhc3NlcygpIHtcbiAgICBpZiAoIXRoaXMubWF4V2lkdGgpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgaWYgKHRoaXMubWF4V2lkdGggPT09ICdkZWZhdWx0Jykge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICByZXR1cm4gYG1heC13aWR0aC0ke3RoaXMubWF4V2lkdGh9YDtcbiAgfVxuXG4gIG9uVGl0bGVDbGljayhldmVudDogUG9pbnRlckV2ZW50KSB7XG4gICAgdGhpcy5oZWFkZXJUaXRsZUNsaWNrPy5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlV3JhcHBlcigpIHtcbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnROb2RlO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQocGFyZW50LCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChwYXJlbnQsIHRoaXMuaW9uSGVhZGVyRWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHBhcmVudCwgdGhpcy5pb25Db250ZW50RWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHBhcmVudCwgdGhpcy5pb25Gb290ZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRUb29sYmFyQmFja2dyb3VuZFBhcnQoKSB7XG4gICAgLy8gRW5zdXJlIGlvbi10b29sYmFyIGN1c3RvbSBlbGVtZW50IGhhcyBiZWVuIGRlZmluZWQgKHByaW1hcmlseSB3aGVuIHRlc3RpbmcsIGJ1dCBkb2Vzbid0IGh1cnQpOlxuICAgIGN1c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVkKHRoaXMuaW9uVG9vbGJhckVsZW1lbnQubmF0aXZlRWxlbWVudC5sb2NhbE5hbWUpLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5pb25Ub29sYmFyRWxlbWVudC5uYXRpdmVFbGVtZW50LmNvbXBvbmVudE9uUmVhZHkoKS50aGVuKCh0b29sYmFyKSA9PiB7XG4gICAgICAgIGNvbnN0IHRvb2xiYXJCYWNrZ3JvdW5kID0gdG9vbGJhci5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50b29sYmFyLWJhY2tncm91bmQnKTtcbiAgICAgICAgaWYgKHRvb2xiYXJCYWNrZ3JvdW5kKSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodG9vbGJhckJhY2tncm91bmQsICdwYXJ0JywgJ2JhY2tncm91bmQnKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9uRW50ZXIoKSB7XG4gICAgaWYgKHRoaXMuaXNBY3RpdmUpIHJldHVybjtcbiAgICB0aGlzLmlzQWN0aXZlID0gdHJ1ZTtcblxuICAgIHRoaXMuZW50ZXIuZW1pdCgpO1xuXG4gICAgdGhpcy5vYnNlcnZlVGl0bGUoKTtcbiAgICB0aGlzLm9ic2VydmVBY3Rpb25zKCk7XG4gIH1cblxuICBwcml2YXRlIG9uTGVhdmUoKSB7XG4gICAgaWYgKCF0aGlzLmlzQWN0aXZlKSByZXR1cm47XG4gICAgdGhpcy5pc0FjdGl2ZSA9IGZhbHNlO1xuXG4gICAgdGhpcy5sZWF2ZS5lbWl0KCk7XG5cbiAgICB0aGlzLnVub2JzZXJ2ZVRpdGxlKCk7XG4gICAgdGhpcy51bm9ic2VydmVBY3Rpb25zKCk7XG5cbiAgICBpZiAodGhpcy50YWJCYXJCb3R0b21IaWRkZW4gJiYgdGhpcy50YWJzQ29tcG9uZW50KSB7XG4gICAgICB0aGlzLnRhYnNDb21wb25lbnQudGFiQmFyQm90dG9tSGlkZGVuID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbnRlcmNlcHRCYWNrQnV0dG9uQ2xpY2tzU2V0dXAoKSB7XG4gICAgaWYgKHRoaXMuYmFja0J1dHRvbk92ZXJyaWRlKSB7XG4gICAgICB0aGlzLmJhY2tCdXR0b25EZWxlZ2F0ZS5vbkNsaWNrID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmJhY2tCdXR0b25PdmVycmlkZS5uYXZpZ2F0ZUJhY2sodGhpcy5yb3V0ZXJPdXRsZXQsIHRoaXMubmF2Q3RybCwgdGhpcy5kZWZhdWx0QmFja0hyZWYpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBJbnRlcmNlcHQgYmFjay1idXR0b24gY2xpY2sgZXZlbnRzLCBkZWZhdWx0aW5nIHRvIHRoZSBidWlsdC1pbiBjbGljay1oYW5kbGVyLlxuICAgIGlmICh0aGlzLmJhY2tCdXR0b25DbGljay5vYnNlcnZlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmJhY2tCdXR0b25DbGlja1xuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ09uRGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKHRoaXMuYmFja0J1dHRvbkRlbGVnYXRlLm9uQ2xpY2suYmluZCh0aGlzLmJhY2tCdXR0b25EZWxlZ2F0ZSkpO1xuICAgIH1cbiAgICB0aGlzLmJhY2tCdXR0b25EZWxlZ2F0ZS5vbkNsaWNrID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgdGhpcy5iYWNrQnV0dG9uQ2xpY2suZW1pdChldmVudCk7XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVN0aWNreUludGVyc2VjdGlvbk9ic2VydmVyKCkge1xuICAgIGlmICh0aGlzLnN0aWNreUNvbnRlbnRUZW1wbGF0ZSkge1xuICAgICAgLy8gU3RpY2t5IGNvbnRlbnQgcHJlc2VudCAtIHN0YXJ0IG9ic2VydmluZyBmb3Igc3RpY2tpbmVzc1xuICAgICAgaWYgKCF0aGlzLnN0aWNreUNvbnRlbnRJbnRlcnNlY3Rpb25PYnNlcnZlcikge1xuICAgICAgICB0aGlzLnN0aWNreUNvbnRlbnRJbnRlcnNlY3Rpb25PYnNlcnZlciA9IHRoaXMuY3JlYXRlU3RpY2t5Q29udGVudEludGVyc2VjdGlvbk9ic2VydmVyKCk7XG4gICAgICB9XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zdGlja3lDb250ZW50SW50ZXJzZWN0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLnN0aWNreUNvbnRlbnRDb250YWluZXIubmF0aXZlRWxlbWVudCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVIZWFkZXIoKSB7XG4gICAgaWYgKHRoaXMuaGFzSGVhZGVyID09PSB1bmRlZmluZWQgJiYgISF0aGlzLmhlYWRlcikge1xuICAgICAgdGhpcy5oYXNIZWFkZXIgPSB0cnVlO1xuICAgICAgLy8gSGVhZGVyIGNvdWxkIGxhdGVyIGJlIHJlbW92ZWQgZnJvbSBET00gKGUuZy4gaW4gdmlydHVhbCBzY3JvbGxpbmcgc2NlbmFyaW9zKSxcbiAgICAgIC8vIHNvIHN0b3JlIGEgcmVmZXJlbmNlIHRvIGBoZWFkZXIudGl0bGVBY3Rpb25JY29uVGVtcGxhdGVgIGFuZCBgaGVhZGVyLnRpdGxlQ2xpY2tgOlxuICAgICAgdGhpcy50aXRsZUFjdGlvbkljb25UZW1wbGF0ZSA9IHRoaXMuaGVhZGVyLnRpdGxlQWN0aW9uSWNvblRlbXBsYXRlO1xuICAgICAgaWYgKHRoaXMuaGVhZGVyLnRpdGxlQ2xpY2sub2JzZXJ2ZWQpIHtcbiAgICAgICAgdGhpcy5oYXNJbnRlcmFjdGl2ZVRpdGxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5oZWFkZXJUaXRsZUNsaWNrID0gdGhpcy5oZWFkZXIudGl0bGVDbGljaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVUaXRsZSgpIHtcbiAgICBpZiAodGhpcy5oYXNIZWFkZXIgJiYgdGhpcy5pc09ic2VydmluZ1RpdGxlICYmICF0aGlzLmhlYWRlcj8udGl0bGVFbGVtZW50KSB7XG4gICAgICAvLyBJZiB3ZSdyZSBhbHJlYWR5IG9ic2VydmluZyB0aGUgaGVhZGVyJ3MgdGl0bGUgZWxlbWVudCwgYnV0IGl0J3Mgbm8gbG9uZ2VyIHByZXNlbnQsXG4gICAgICAvLyBpdCBtZWFucyBpdCBoYXMgYmVlbiByZW1vdmVkIGZyb20gRE9NIChlLmcuIGluIHZpcnR1YWwgc2Nyb2xsaW5nIHNjZW5hcmlvcykuXG4gICAgICAvLyBGbGlwIG9ic2VydmluZyBmbGFnOlxuICAgICAgdGhpcy5pc09ic2VydmluZ1RpdGxlID0gZmFsc2U7XG4gICAgfVxuICAgIGlmICh0aGlzLmhhc1BhZ2VUaXRsZSkge1xuICAgICAgaWYgKCF0aGlzLmlzT2JzZXJ2aW5nVGl0bGUgJiYgISF0aGlzLmhlYWRlcj8udGl0bGVFbGVtZW50KSB7XG4gICAgICAgIC8vIEhlYWRlciBhbmQgdGl0bGUgZWxlbWVudCByZS1hdHRhY2hlZCB0byBET00gLSBvYnNlcnZlIHRpdGxlOlxuICAgICAgICB0aGlzLm9ic2VydmVUaXRsZSgpO1xuICAgICAgfVxuXG4gICAgICAvLyBFbnN1cmVzIHJlc3Qgb2YgaW5pdGlhbGl6ZVRpdGxlKCkgd29uJ3QgcnVuLCBpZiBhbHJlYWR5IGluaXRpYWxpemVkXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5oYXNQYWdlVGl0bGUgPVxuICAgICAgdGhpcy50aXRsZSAhPT0gdW5kZWZpbmVkIHx8ICEhdGhpcy5jdXN0b21UaXRsZVRlbXBsYXRlIHx8ICEhdGhpcy5oZWFkZXI/LnRpdGxlO1xuICAgIHRoaXMudG9vbGJhclRpdGxlVmlzaWJsZSA9ICF0aGlzLmhhc1BhZ2VUaXRsZTtcbiAgICB0aGlzLmhhc1BhZ2VTdWJ0aXRsZSA9IHRoaXMuc3VidGl0bGUgIT09IHVuZGVmaW5lZCB8fCAhIXRoaXMuY3VzdG9tU3VidGl0bGVUZW1wbGF0ZTtcbiAgICBpZiAodGhpcy5oZWFkZXI/LnRpdGxlICYmICF0aGlzLnRvb2xiYXJUaXRsZSkge1xuICAgICAgdGhpcy50b29sYmFyVGl0bGUgPSB0aGlzLmhlYWRlci50aXRsZTtcbiAgICB9XG5cbiAgICB0aGlzLm9ic2VydmVUaXRsZSgpO1xuXG4gICAgY29uc3QgZGVmYXVsdFRpdGxlVGVtcGxhdGUgPSB0aGlzLmN1c3RvbVRpdGxlVGVtcGxhdGUgfHwgdGhpcy5zaW1wbGVUaXRsZVRlbXBsYXRlO1xuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgLy8gcHJldHRpZXItaWdub3JlXG4gICAgdGhpcy50b29sYmFyVGl0bGVUZW1wbGF0ZSA9IHRoaXMuY3VzdG9tVG9vbGJhclRpdGxlVGVtcGxhdGVcbiAgICAgID8gdGhpcy5jdXN0b21Ub29sYmFyVGl0bGVUZW1wbGF0ZVxuICAgICAgOiB0eXBlb2YgdGhpcy50b29sYmFyVGl0bGUgPT09ICdzdHJpbmcnXG4gICAgICAgID8gdGhpcy5zaW1wbGVUb29sYmFyVGl0bGVUZW1wbGF0ZVxuICAgICAgICA6IGRlZmF1bHRUaXRsZVRlbXBsYXRlO1xuICB9XG5cbiAgcHJpdmF0ZSBvYnNlcnZlVGl0bGUoKSB7XG4gICAgaWYgKCF0aGlzLmhhc1BhZ2VUaXRsZSkge1xuICAgICAgLy8gTm90aGluZyB0byBvYnNlcnZlXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmlzT2JzZXJ2aW5nVGl0bGUpIHtcbiAgICAgIC8vIEFscmVhZHkgb2JzZXJ2aW5nXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gV2UgYXJlIG5vdCBhY3R1YWxseSBvYnNlcnZpbmcgdGhlIHRpdGxlIHVudGlsIGFmdGVyIHRoZSBgd2hlbkNvbnRlbnRSZWFkeWAgcHJvbWlzZSBoYXMgcmVzb2x2ZWQsXG4gICAgLy8gYnV0IHNpbmNlIHdlJ3ZlIGFscmVhZHkgY2hlY2tlZCB0aGF0IHRoZSBwYWdlIGhhcyBhIHRpdGxlIGluIHRoZSBndWFyZCBhYm92ZSxcbiAgICAvLyB3ZSdsbCAtIGVhZ2VybHkgLSBzZXQgdGhpcyBmbGFnIG5vdyB0byBwcmV2ZW50IHVubmVjZXNzYXJ5IHJlLXJ1bnMgb2YgdGhlIHJlc3Qgb2YgdGhpcyBtZXRob2Q6XG4gICAgdGhpcy5pc09ic2VydmluZ1RpdGxlID0gdHJ1ZTtcblxuICAgIGlmICghdGhpcy50aXRsZUludGVyc2VjdGlvbk9ic2VydmVyKSB7XG4gICAgICB0aGlzLnRpdGxlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAgIChlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgLy8gSW4gcmFyZSBzY2VuYXJpb3Mgd2UgZ2V0IG1vcmUgdGhhbiAxIGVudHJ5IC0gdXNlIHRoZSBsYXN0IG9uZTpcbiAgICAgICAgICBjb25zdCBsYXN0RW50cnkgPSBlbnRyaWVzW2VudHJpZXMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgaWYgKGxhc3RFbnRyeSkge1xuICAgICAgICAgICAgY29uc3Qgc2hvd1Rvb2xiYXJUaXRsZSA9ICFsYXN0RW50cnkuaXNJbnRlcnNlY3Rpbmc7XG4gICAgICAgICAgICAvLyBPbmx5IGZsaXAgdGhlIGZsYWcgYW5kIHJ1biBDaGFuZ2UgRGV0ZWN0aW9uIHdoZW4gY2hhbmdlZDpcbiAgICAgICAgICAgIGlmIChzaG93VG9vbGJhclRpdGxlICE9PSB0aGlzLnRvb2xiYXJUaXRsZVZpc2libGUpIHtcbiAgICAgICAgICAgICAgdGhpcy50b29sYmFyVGl0bGVWaXNpYmxlID0gc2hvd1Rvb2xiYXJUaXRsZTtcbiAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IHJvb3Q6IHRoaXMuaW9uQ29udGVudEVsZW1lbnQubmF0aXZlRWxlbWVudCB9XG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFJ1biBvdXRzaWRlIEFuZ3VsYXIgdG8gcHJldmVudCB1bm5lY2Vzc2FyeSB0cmlnZ2VyaW5nIGNoYW5nZSBkZXRlY3Rpb25cbiAgICAvLyBhbmQgLSB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnMgLSBhbiBpbmZpbml0ZSBsb29wIHdoZW4gY2FsbGVkIHdpdGhpbiBuZ0FmdGVyQ29udGVudENoZWNrZWQ6XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMud2hlbkNvbnRlbnRSZWFkeSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICBjb25zdCB0aXRsZUVsZW1lbnRSZWYgPSB0aGlzLnBhZ2VUaXRsZSB8fCB0aGlzLmhlYWRlcj8udGl0bGVFbGVtZW50O1xuICAgICAgICBpZiAodGl0bGVFbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgdGhpcy50aXRsZUludGVyc2VjdGlvbk9ic2VydmVyLm9ic2VydmUodGl0bGVFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdW5vYnNlcnZlVGl0bGUoKSB7XG4gICAgY29uc3QgdGl0bGVFbGVtZW50UmVmID0gdGhpcy5wYWdlVGl0bGUgfHwgdGhpcy5oZWFkZXI/LnRpdGxlRWxlbWVudDtcbiAgICBpZiAodGl0bGVFbGVtZW50UmVmKSB7XG4gICAgICB0aGlzLnRpdGxlSW50ZXJzZWN0aW9uT2JzZXJ2ZXI/LnVub2JzZXJ2ZSh0aXRsZUVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuICAgIHRoaXMuaXNPYnNlcnZpbmdUaXRsZSA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplQWN0aW9ucygpIHtcbiAgICBpZiAodGhpcy5oZWFkZXJBY3Rpb25zVGVtcGxhdGUgPT09IHVuZGVmaW5lZCAmJiAhIXRoaXMuaGVhZGVyKSB7XG4gICAgICB0aGlzLmhlYWRlckFjdGlvbnNUZW1wbGF0ZSA9IHRoaXMuaGVhZGVyLmFjdGlvbnNUZW1wbGF0ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGFzSGVhZGVyICYmIHRoaXMuaXNPYnNlcnZpbmdBY3Rpb25zICYmICF0aGlzLmhlYWRlcj8uYWN0aW9uc0VsZW1lbnQpIHtcbiAgICAgIC8vIElmIHdlJ3JlIGFscmVhZHkgb2JzZXJ2aW5nIHRoZSBoZWFkZXIncyBhY3Rpb25zIGVsZW1lbnQsIGJ1dCBpdCdzIG5vIGxvbmdlciBwcmVzZW50LFxuICAgICAgLy8gaXQgbWVhbnMgaXQgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIERPTSAoZS5nLiBpbiB2aXJ0dWFsIHNjcm9sbGluZyBzY2VuYXJpb3MpLlxuICAgICAgLy8gRmxpcCBvYnNlcnZpbmcgZmxhZzpcbiAgICAgIHRoaXMuaXNPYnNlcnZpbmdBY3Rpb25zID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy5vYnNlcnZlQWN0aW9ucygpO1xuXG4gICAgdGhpcy5jdXN0b21BY3Rpb25zLmZvckVhY2goKHBhZ2VBY3Rpb24pID0+IHtcbiAgICAgIGlmIChwYWdlQWN0aW9uLmlzRml4ZWQpIHtcbiAgICAgICAgdGhpcy5maXhlZEFjdGlvbnNUZW1wbGF0ZSA9IHBhZ2VBY3Rpb24udGVtcGxhdGU7XG4gICAgICB9IGVsc2UgaWYgKHBhZ2VBY3Rpb24uaXNTdGlja3kpIHtcbiAgICAgICAgdGhpcy5zdGlja3lBY3Rpb25zVGVtcGxhdGUgPSBwYWdlQWN0aW9uLnRlbXBsYXRlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wYWdlQWN0aW9uc1RlbXBsYXRlID0gcGFnZUFjdGlvbi50ZW1wbGF0ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZUFjdGlvbnMoKSB7XG4gICAgaWYgKCF0aGlzLmhlYWRlcj8uYWN0aW9uc0VsZW1lbnQpIHtcbiAgICAgIC8vIE5vdGhpbmcgdG8gb2JzZXJ2ZVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzT2JzZXJ2aW5nQWN0aW9ucykge1xuICAgICAgLy8gQWxyZWFkeSBvYnNlcnZpbmdcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBXZSBhcmUgbm90IGFjdHVhbGx5IG9ic2VydmluZyBhY3Rpb25zIHVudGlsIGFmdGVyIHRoZSBgd2hlbkNvbnRlbnRSZWFkeWAgcHJvbWlzZSBoYXMgcmVzb2x2ZWQsXG4gICAgLy8gYnV0IHNpbmNlIHdlJ3ZlIGFscmVhZHkgY2hlY2tlZCB0aGF0IHRoZXJlJ3MgYW4gYWN0aW9ucyBlbGVtZW50IHByZXNlbnQgaW4gdGhlIGd1YXJkIGFib3ZlLFxuICAgIC8vIHdlJ2xsIC0gZWFnZXJseSAtIHNldCB0aGlzIGZsYWcgbm93IHRvIHByZXZlbnQgdW5uZWNlc3NhcnkgcmUtcnVucyBvZiB0aGUgcmVzdCBvZiB0aGlzIG1ldGhvZDpcbiAgICB0aGlzLmlzT2JzZXJ2aW5nQWN0aW9ucyA9IHRydWU7XG5cbiAgICBpZiAoIXRoaXMuc3RpY2t5QWN0aW9uc0ludGVyc2VjdGlvbk9ic2VydmVyKSB7XG4gICAgICB0aGlzLnN0aWNreUFjdGlvbnNJbnRlcnNlY3Rpb25PYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgICAgKGVudHJpZXMpID0+IHtcbiAgICAgICAgICAvLyBJbiByYXJlIHNjZW5hcmlvcyB3ZSBnZXQgbW9yZSB0aGFuIDEgZW50cnkgLSB1c2UgdGhlIGxhc3Qgb25lOlxuICAgICAgICAgIGNvbnN0IGxhc3RFbnRyeSA9IGVudHJpZXNbZW50cmllcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICBpZiAobGFzdEVudHJ5KSB7XG4gICAgICAgICAgICBjb25zdCBzaG93VG9vbGJhckFjdGlvbnMgPSAhbGFzdEVudHJ5LmlzSW50ZXJzZWN0aW5nO1xuICAgICAgICAgICAgLy8gT25seSBmbGlwIHRoZSBmbGFnIGFuZCBydW4gQ2hhbmdlIERldGVjdGlvbiB3aGVuIGNoYW5nZWQ6XG4gICAgICAgICAgICBpZiAoc2hvd1Rvb2xiYXJBY3Rpb25zICE9PSB0aGlzLnRvb2xiYXJBY3Rpb25zVmlzaWJsZSkge1xuICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJBY3Rpb25zVmlzaWJsZSA9IHNob3dUb29sYmFyQWN0aW9ucztcbiAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IHJvb3Q6IHRoaXMuaW9uQ29udGVudEVsZW1lbnQubmF0aXZlRWxlbWVudCB9XG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFJ1biBvdXRzaWRlIEFuZ3VsYXIgdG8gcHJldmVudCB1bm5lY2Vzc2FyeSB0cmlnZ2VyaW5nIGNoYW5nZSBkZXRlY3Rpb25cbiAgICAvLyBhbmQgLSB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnMgLSBhbiBpbmZpbml0ZSBsb29wIHdoZW4gY2FsbGVkIHdpdGhpbiBuZ0FmdGVyQ29udGVudENoZWNrZWQ6XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMud2hlbkNvbnRlbnRSZWFkeSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5oZWFkZXI/LmFjdGlvbnNFbGVtZW50Py5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgdGhpcy5zdGlja3lBY3Rpb25zSW50ZXJzZWN0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmhlYWRlci5hY3Rpb25zRWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVub2JzZXJ2ZUFjdGlvbnMoKSB7XG4gICAgaWYgKHRoaXMuaGVhZGVyPy5hY3Rpb25zRWxlbWVudCkge1xuICAgICAgdGhpcy5zdGlja3lBY3Rpb25zSW50ZXJzZWN0aW9uT2JzZXJ2ZXI/LnVub2JzZXJ2ZSh0aGlzLmhlYWRlci5hY3Rpb25zRWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG4gICAgdGhpcy5pc09ic2VydmluZ0FjdGlvbnMgPSBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUNvbnRlbnQoKSB7XG4gICAgdGhpcy5jdXN0b21Db250ZW50LmZvckVhY2goKGNvbnRlbnQpID0+IHtcbiAgICAgIGlmIChjb250ZW50LmlzRml4ZWQpIHtcbiAgICAgICAgdGhpcy5maXhlZENvbnRlbnRUZW1wbGF0ZSA9IGNvbnRlbnQudGVtcGxhdGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmN1c3RvbUNvbnRlbnRUZW1wbGF0ZSA9IGNvbnRlbnQudGVtcGxhdGU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVTdGlja3lDb250ZW50KCkge1xuICAgIHRoaXMuc3RpY2t5Q29udGVudFRlbXBsYXRlID0gdGhpcy5zdGlja3lDb250ZW50UmVmO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVTdGlja3lDb250ZW50SW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKSB7XG4gICAgY29uc3Qgb3B0aW9uczogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJJbml0ID0ge1xuICAgICAgcm9vdDogdGhpcy5pb25Db250ZW50RWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgdGhyZXNob2xkOiAxLFxuICAgIH07XG5cbiAgICBjb25zdCBjYWxsYmFjazogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayA9IChlbnRyaWVzKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc1N0aWNreUNvbnRlbnRQaW5uZWQgIT09ICFlbnRyaWVzWzBdLmlzSW50ZXJzZWN0aW5nKSB7XG4gICAgICAgIHRoaXMuaXNTdGlja3lDb250ZW50UGlubmVkID0gIXRoaXMuaXNTdGlja3lDb250ZW50UGlubmVkO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoY2FsbGJhY2ssIG9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXRobmFtZSh1cmw6IHN0cmluZykge1xuICAgIHJldHVybiB1cmwuc3BsaXQoJz8nKVswXTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlib2FyZFdpbGxTaG93JywgWyckZXZlbnQnXSlcbiAgX29uS2V5Ym9hcmRXaWxsU2hvdyhpbmZvPzogeyBrZXlib2FyZEhlaWdodDogbnVtYmVyIH0pIHtcbiAgICBpZiAoaW5mbyAmJiBpbmZvLmtleWJvYXJkSGVpZ2h0KSB7XG4gICAgICB0aGlzLmlvbkNvbnRlbnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICctLWtleWJvYXJkLW9mZnNldCcsXG4gICAgICAgIGAke2luZm8ua2V5Ym9hcmRIZWlnaHR9cHhgXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlib2FyZFdpbGxIaWRlJylcbiAgX29uS2V5Ym9hcmRXaWxsSGlkZSgpIHtcbiAgICB0aGlzLmlvbkNvbnRlbnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0ta2V5Ym9hcmQtb2Zmc2V0JywgJzBweCcpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihgd2luZG93OiR7c2VsZWN0ZWRUYWJDbGlja0V2ZW50fWApXG4gIF9vblNlbGVjdGVkVGFiQ2xpY2soKSB7XG4gICAgaWYgKHRoaXMuY29udGVudCkge1xuICAgICAgdGhpcy5jb250ZW50LnNjcm9sbFRvVG9wKEtpcmJ5QW5pbWF0aW9uLkR1cmF0aW9uLkxPTkcpO1xuICAgIH1cbiAgfVxufVxuIiwiPGlvbi1oZWFkZXI+XG4gIDxpb24tdG9vbGJhclxuICAgIFtjbGFzcy5jb250ZW50LXNjcm9sbGVkXT1cImlzQ29udGVudFNjcm9sbGVkXCJcbiAgICBbY2xhc3MuY29udGVudC1waW5uZWRdPVwiaXNTdGlja3lDb250ZW50UGlubmVkXCJcbiAgPlxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwic3RhcnRcIj5cbiAgICAgIDxpb24tYmFjay1idXR0b25cbiAgICAgICAgdGV4dD1cIlwiXG4gICAgICAgIFtkZWZhdWx0SHJlZl09XCJkZWZhdWx0QmFja0hyZWZcIlxuICAgICAgICBpY29uPVwiYXNzZXRzL2tpcmJ5L2ljb25zL3N2Zy9hcnJvdy1iYWNrLnN2Z1wiXG4gICAgICAgIFtzdHlsZS52aXNpYmlsaXR5XT1cImhpZGVCYWNrQnV0dG9uID8gJ2hpZGRlbicgOiBudWxsXCJcbiAgICAgID48L2lvbi1iYWNrLWJ1dHRvbj5cbiAgICA8L2lvbi1idXR0b25zPlxuICAgIDxpb24tdGl0bGUgW2NsYXNzLnNsaWRlLWFuZC1mYWRlLWluXT1cInRvb2xiYXJUaXRsZVZpc2libGVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyLXRpdGxlXCI+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgW2NsYXNzLmNsaWNrYWJsZV09XCJoYXNJbnRlcmFjdGl2ZVRpdGxlXCJcbiAgICAgICAgICBbY2xhc3MuaGFzLWljb25dPVwiISF0aXRsZUFjdGlvbkljb25UZW1wbGF0ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uVGl0bGVDbGljaygkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0b29sYmFyVGl0bGVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0aXRsZUFjdGlvbkljb25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2lvbi10aXRsZT5cbiAgICA8aW9uLWJ1dHRvbnNcbiAgICAgICpuZ0lmPVwiISFoZWFkZXJBY3Rpb25zVGVtcGxhdGVcIlxuICAgICAgY2xhc3M9XCJoaWRlXCJcbiAgICAgIHNsb3Q9XCJwcmltYXJ5XCJcbiAgICAgIFtjbGFzcy5mYWRlLWluXT1cInRvb2xiYXJBY3Rpb25zVmlzaWJsZVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlckFjdGlvbnNUZW1wbGF0ZTsgaW5qZWN0b3I6IHRvb2xiYXJBY3Rpb25Hcm91cEluamVjdG9yXCJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L2lvbi1idXR0b25zPlxuICAgIDxpb24tYnV0dG9ucyAqbmdJZj1cIiEhc3RpY2t5QWN0aW9uc1RlbXBsYXRlXCIgY2xhc3M9XCJsZWdhY3ktYWN0aW9uc1wiIHNsb3Q9XCJwcmltYXJ5XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RpY2t5QWN0aW9uc1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9pb24tYnV0dG9ucz5cbiAgICA8aW9uLWJ1dHRvbnMgKm5nSWY9XCIhIWZpeGVkQWN0aW9uc1RlbXBsYXRlXCIgY2xhc3M9XCJsZWdhY3ktYWN0aW9uc1wiIHNsb3Q9XCJzZWNvbmRhcnlcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmaXhlZEFjdGlvbnNUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvaW9uLWJ1dHRvbnM+XG4gIDwvaW9uLXRvb2xiYXI+XG48L2lvbi1oZWFkZXI+XG5cbjxpb24tY29udGVudCBzY3JvbGxFdmVudHM9XCJ0cnVlXCIgZm9yY2VPdmVyc2Nyb2xsPVwiZmFsc2VcIiBbY2xhc3NdPVwiZ2V0TWF4V2lkdGhDbGFzc2VzKClcIj5cbiAgPGlvbi1yZWZyZXNoZXJcbiAgICAqbmdJZj1cInJlZnJlc2gub2JzZXJ2ZXJzLmxlbmd0aCA+IDBcIlxuICAgIChpb25SZWZyZXNoKT1cImRlbGVnYXRlUmVmcmVzaEV2ZW50KCRldmVudClcIlxuICAgIHNsb3Q9XCJmaXhlZFwiXG4gID5cbiAgICA8a2lyYnktc3Bpbm5lcj48L2tpcmJ5LXNwaW5uZXI+XG4gIDwvaW9uLXJlZnJlc2hlcj5cblxuICA8IS0tIFBhZ2UgaGVhZGVyIC0tPlxuICA8ZGl2IGNsYXNzPVwicGFnZS1oZWFkZXItY29udGFpbmVyXCIgKm5nSWY9XCJoYXNQYWdlVGl0bGUgJiYgIWhhc0hlYWRlclwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwicGFnZS1oZWFkZXJcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAndGV4dC1jZW50ZXInOiB0aXRsZUFsaWdubWVudCA9PT0gJ2NlbnRlcicsXG4gICAgICAgICd0ZXh0LXJpZ2h0JzogdGl0bGVBbGlnbm1lbnQgPT09ICdyaWdodCdcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxkaXYgI3BhZ2VUaXRsZSBjbGFzcz1cInBhZ2UtdGl0bGVcIiBbY2xhc3MuaGFzLWFjdGlvbnNdPVwiISFwYWdlQWN0aW9uc1RlbXBsYXRlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbVRpdGxlVGVtcGxhdGUgfHwgZGVmYXVsdFBhZ2VUaXRsZVRlbXBsYXRlXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdlQWN0aW9uc1RlbXBsYXRlIHx8IGRlZmF1bHRQYWdlQWN0aW9uc1RlbXBsYXRlXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiaGFzUGFnZVN1YnRpdGxlXCIgY2xhc3M9XCJwYWdlLXN1YnRpdGxlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbVN1YnRpdGxlVGVtcGxhdGUgfHwgZGVmYXVsdFBhZ2VTdWJ0aXRsZVRlbXBsYXRlXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gSGVhZGVyIC0tPlxuICA8ZGl2IGNsYXNzPVwicGFnZS1oZWFkZXItY29udGFpbmVyXCIgKm5nSWY9XCJoYXNIZWFkZXJcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJraXJieS1oZWFkZXJcIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuXG4gIDwhLS0gIFN0aWNreSBjb250ZW50IC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic3RpY2t5Q29udGVudFRlbXBsYXRlXCI+XG4gICAgPGRpdlxuICAgICAgI3N0aWNreUNvbnRlbnRDb250YWluZXJcbiAgICAgIGNsYXNzPVwic3RpY2t5LWNvbnRlbnQtY29udGFpbmVyXCJcbiAgICAgIFtjbGFzcy5jb250ZW50LXBpbm5lZF09XCJpc1N0aWNreUNvbnRlbnRQaW5uZWRcIlxuICAgID5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdGlja3lDb250ZW50VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIENvbnRlbnQgLS0+XG4gIDxkaXYgY2xhc3M9XCJjb250ZW50LWlubmVyXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21Db250ZW50VGVtcGxhdGUgfHwgZGVmYXVsdENvbnRlbnRUZW1wbGF0ZVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8ZGl2IHNsb3Q9XCJmaXhlZFwiIGNsYXNzPVwiZml4ZWQtY29udGVudFwiICpuZ0lmPVwiZml4ZWRDb250ZW50VGVtcGxhdGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1pbm5lclwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZpeGVkQ29udGVudFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9pb24tY29udGVudD5cblxuPGlvbi1mb290ZXI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImtpcmJ5LXBhZ2UtZm9vdGVyXCI+PC9uZy1jb250ZW50PlxuPC9pb24tZm9vdGVyPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRQYWdlVGl0bGVUZW1wbGF0ZT5cbiAgPGgxIFtraXJieUZpdEhlYWRpbmddPVwiZml0SGVhZGluZ0NvbmZpZ1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzaW1wbGVUaXRsZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gIDwvaDE+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNkZWZhdWx0UGFnZVN1YnRpdGxlVGVtcGxhdGU+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzaW1wbGVTdWJ0aXRsZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNkZWZhdWx0UGFnZUFjdGlvbnNUZW1wbGF0ZT5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwia2lyYnktcGFnZS1hY3Rpb25zXCI+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Q29udGVudFRlbXBsYXRlPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJraXJieS1wYWdlLWNvbnRlbnRcIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3NpbXBsZVRpdGxlVGVtcGxhdGU+e3sgdGl0bGUgfX08L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNzaW1wbGVTdWJ0aXRsZVRlbXBsYXRlPnt7IHN1YnRpdGxlIH19PC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjc2ltcGxlVG9vbGJhclRpdGxlVGVtcGxhdGU+e3sgdG9vbGJhclRpdGxlIH19PC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|