@one-grid-core/angular 0.2.1 → 0.4.0
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/README.md +55 -9
- package/esm2022/lib/components/one-grid/one-grid.component.mjs +244 -11
- package/esm2022/lib/components/one-grid-body/one-grid-body.component.mjs +446 -34
- package/esm2022/lib/components/one-grid-cell-currency/one-grid-cell-currency.component.mjs +6 -5
- package/esm2022/lib/components/one-grid-cell-group-renderer/one-grid-cell-group-renderer.component.mjs +3 -3
- package/esm2022/lib/components/one-grid-cell-option-menu/one-grid-cell-option-menu.component.mjs +3 -3
- package/esm2022/lib/components/one-grid-checkbox/one-grid-checkbox.component.mjs +7 -18
- package/esm2022/lib/components/one-grid-checkbox-header/one-grid-checkbox-header.component.mjs +6 -6
- package/esm2022/lib/components/one-grid-header/one-grid-header.component.mjs +221 -17
- package/esm2022/lib/components/one-grid-header-menu/one-grid-header-menu.component.mjs +137 -0
- package/esm2022/lib/components/one-grid-pagination/one-grid-pagination.component.mjs +6 -5
- package/esm2022/lib/components/one-grid-row-action/one-grid-row-action.component.mjs +4 -4
- package/esm2022/lib/components/one-grid-row-drag-handle/one-grid-row-drag-handle.component.mjs +5 -3
- package/esm2022/lib/components/one-grid-status/one-grid-status.component.mjs +4 -4
- package/esm2022/lib/core/directives/one-cell-input-validator.directive.mjs +3 -3
- package/esm2022/lib/core/directives/one-cell-renderer-component.directive.mjs +3 -3
- package/esm2022/lib/core/directives/one-cell-text-expand.directive.mjs +3 -3
- package/esm2022/lib/core/icons/one-grid-icons.mjs +38 -0
- package/esm2022/lib/core/instants/one-grid-api.class.mjs +296 -3
- package/esm2022/lib/core/models/one-column-def-types.model.mjs +1 -1
- package/esm2022/lib/core/models/one-event-types.model.mjs +1 -1
- package/esm2022/lib/core/models/one-filter.model.mjs +1 -1
- package/esm2022/lib/core/pipes/aria-sort.pipe.mjs +31 -0
- package/esm2022/lib/core/pipes/cell-action-button-enable.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/cell-editable.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/cell-invalid.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/cell-key.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/cell-level-padding.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/cell-selected.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/cell-state-renderer.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/column-sort-state.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/header-checkbox-checked.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/header-checkbox-disabled.pipe.mjs +3 -3
- package/esm2022/lib/core/pipes/header-checkbox-indeterminate.pipe.mjs +3 -3
- package/esm2022/lib/core/services/og-column.service.mjs +153 -30
- package/esm2022/lib/core/services/one-grid-cell.service.mjs +16 -14
- package/esm2022/lib/helpers/one-cell.helper.mjs +30 -1
- package/esm2022/lib/helpers/one-column-def.helper.mjs +16 -1
- package/esm2022/lib/helpers/one-csv.helper.mjs +58 -0
- package/esm2022/lib/helpers/one-filter.helper.mjs +11 -1
- package/esm2022/lib/helpers/one-row-grouping.helper.mjs +103 -0
- package/esm2022/lib/index.mjs +3 -1
- package/esm2022/lib/one-grid.module.mjs +24 -114
- package/fesm2022/one-grid-core-angular.mjs +2328 -851
- package/fesm2022/one-grid-core-angular.mjs.map +1 -1
- package/lib/components/one-grid/one-grid.component.d.ts +101 -4
- package/lib/components/one-grid-body/one-grid-body.component.d.ts +83 -2
- package/lib/components/one-grid-cell-currency/one-grid-cell-currency.component.d.ts +1 -1
- package/lib/components/one-grid-cell-group-renderer/one-grid-cell-group-renderer.component.d.ts +1 -1
- package/lib/components/one-grid-cell-option-menu/one-grid-cell-option-menu.component.d.ts +1 -1
- package/lib/components/one-grid-checkbox/one-grid-checkbox.component.d.ts +1 -1
- package/lib/components/one-grid-checkbox-header/one-grid-checkbox-header.component.d.ts +1 -1
- package/lib/components/one-grid-header/one-grid-header.component.d.ts +69 -4
- package/lib/components/one-grid-header-menu/one-grid-header-menu.component.d.ts +52 -0
- package/lib/components/one-grid-pagination/one-grid-pagination.component.d.ts +1 -1
- package/lib/components/one-grid-row-action/one-grid-row-action.component.d.ts +1 -1
- package/lib/components/one-grid-row-drag-handle/one-grid-row-drag-handle.component.d.ts +1 -1
- package/lib/components/one-grid-status/one-grid-status.component.d.ts +1 -1
- package/lib/core/directives/one-cell-input-validator.directive.d.ts +1 -1
- package/lib/core/directives/one-cell-renderer-component.directive.d.ts +1 -1
- package/lib/core/directives/one-cell-text-expand.directive.d.ts +1 -1
- package/lib/core/icons/one-grid-icons.d.ts +35 -0
- package/lib/core/instants/one-grid-api.class.d.ts +115 -1
- package/lib/core/models/one-column-def-types.model.d.ts +77 -2
- package/lib/core/models/one-event-types.model.d.ts +19 -0
- package/lib/core/models/one-filter.model.d.ts +8 -1
- package/lib/core/pipes/aria-sort.pipe.d.ts +15 -0
- package/lib/core/pipes/cell-action-button-enable.pipe.d.ts +1 -1
- package/lib/core/pipes/cell-editable.pipe.d.ts +1 -1
- package/lib/core/pipes/cell-invalid.pipe.d.ts +1 -1
- package/lib/core/pipes/cell-key.pipe.d.ts +1 -1
- package/lib/core/pipes/cell-level-padding.pipe.d.ts +1 -1
- package/lib/core/pipes/cell-selected.pipe.d.ts +1 -1
- package/lib/core/pipes/cell-state-renderer.pipe.d.ts +1 -1
- package/lib/core/pipes/column-sort-state.pipe.d.ts +1 -1
- package/lib/core/pipes/header-checkbox-checked.pipe.d.ts +1 -1
- package/lib/core/pipes/header-checkbox-disabled.pipe.d.ts +1 -1
- package/lib/core/pipes/header-checkbox-indeterminate.pipe.d.ts +1 -1
- package/lib/core/services/og-column.service.d.ts +46 -2
- package/lib/core/services/one-grid-cell.service.d.ts +0 -3
- package/lib/helpers/one-cell.helper.d.ts +17 -0
- package/lib/helpers/one-column-def.helper.d.ts +9 -0
- package/lib/helpers/one-csv.helper.d.ts +29 -0
- package/lib/helpers/one-row-grouping.helper.d.ts +35 -0
- package/lib/index.d.ts +2 -0
- package/lib/one-grid.module.d.ts +15 -37
- package/package.json +1 -1
- package/scss/_one-grid.scss +127 -0
- package/esm2022/lib/core/pipes/cell-action-button-visible.pipe.mjs +0 -17
- package/esm2022/lib/core/pipes/cell-field-value-empty.pipe.mjs +0 -26
- package/esm2022/lib/core/pipes/cell-field-value.pipe.mjs +0 -25
- package/esm2022/lib/core/pipes/cell-field.pipe.mjs +0 -20
- package/esm2022/lib/core/pipes/cell-number-value.pipe.mjs +0 -19
- package/esm2022/lib/core/pipes/cell-state-group-renderer.pipe.mjs +0 -21
- package/esm2022/lib/core/pipes/cell-value-getter.pipe.mjs +0 -23
- package/lib/core/pipes/cell-action-button-visible.pipe.d.ts +0 -9
- package/lib/core/pipes/cell-field-value-empty.pipe.d.ts +0 -7
- package/lib/core/pipes/cell-field-value.pipe.d.ts +0 -7
- package/lib/core/pipes/cell-field.pipe.d.ts +0 -7
- package/lib/core/pipes/cell-number-value.pipe.d.ts +0 -7
- package/lib/core/pipes/cell-state-group-renderer.pipe.d.ts +0 -9
- package/lib/core/pipes/cell-value-getter.pipe.d.ts +0 -9
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { Component, EventEmitter, HostListener, Input, Output, ViewChildren } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* The grid's default column menu, opened by the header's ⋮ button when the
|
|
5
|
+
* grid sets `[headerMenu]="true"`.
|
|
6
|
+
*
|
|
7
|
+
* Entries follow the column: sorting only on a sortable column and only the
|
|
8
|
+
* transitions that make sense from the current state, pinning without the
|
|
9
|
+
* side it is already on, hiding never for the last visible column. The menu
|
|
10
|
+
* only reports the chosen action — the header executes it against the API,
|
|
11
|
+
* for the same reason the cell option menu does not mutate rows itself.
|
|
12
|
+
*
|
|
13
|
+
* Keyboard behaviour is the menu pattern the cell option menu established:
|
|
14
|
+
* focus moves in on open, arrows rove, Escape and outside clicks close.
|
|
15
|
+
*/
|
|
16
|
+
export class OneGridHeaderMenuComponent {
|
|
17
|
+
get menuLabel() {
|
|
18
|
+
return `Column menu for ${this.column?.headerName ?? this.column?.field ?? 'this column'}`;
|
|
19
|
+
}
|
|
20
|
+
constructor(elementRef) {
|
|
21
|
+
this.elementRef = elementRef;
|
|
22
|
+
this.column = null;
|
|
23
|
+
/** The column's current sort, so the menu offers only the other states. */
|
|
24
|
+
this.sortState = null;
|
|
25
|
+
/** False when this is the last visible column, which must stay visible. */
|
|
26
|
+
this.canHide = true;
|
|
27
|
+
this.menuAction = new EventEmitter();
|
|
28
|
+
this.menuClose = new EventEmitter();
|
|
29
|
+
this.entries = [];
|
|
30
|
+
this.activeIndex = 0;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Built once on open rather than in a getter: the entries feed the roving
|
|
34
|
+
* tabindex, and a list that re-derives mid-interaction would move focus.
|
|
35
|
+
*/
|
|
36
|
+
ngOnInit() {
|
|
37
|
+
const entries = [];
|
|
38
|
+
const column = this.column;
|
|
39
|
+
if (column?._resolvedSortable && column.field) {
|
|
40
|
+
if (this.sortState !== 'asc')
|
|
41
|
+
entries.push({ action: 'sortAsc', label: 'Sort ascending' });
|
|
42
|
+
if (this.sortState !== 'desc')
|
|
43
|
+
entries.push({ action: 'sortDesc', label: 'Sort descending' });
|
|
44
|
+
if (this.sortState)
|
|
45
|
+
entries.push({ action: 'clearSort', label: 'Clear sort' });
|
|
46
|
+
}
|
|
47
|
+
if (column?.pinned !== 'left')
|
|
48
|
+
entries.push({ action: 'pinLeft', label: 'Pin left' });
|
|
49
|
+
if (column?.pinned !== 'right')
|
|
50
|
+
entries.push({ action: 'pinRight', label: 'Pin right' });
|
|
51
|
+
if (column?.pinned)
|
|
52
|
+
entries.push({ action: 'unpin', label: 'Unpin' });
|
|
53
|
+
if (this.canHide)
|
|
54
|
+
entries.push({ action: 'hide', label: 'Hide column' });
|
|
55
|
+
this.entries = entries;
|
|
56
|
+
}
|
|
57
|
+
ngAfterViewInit() {
|
|
58
|
+
this.focusItem(0);
|
|
59
|
+
}
|
|
60
|
+
onEntrySelected(entry) {
|
|
61
|
+
this.menuAction.emit(entry.action);
|
|
62
|
+
this.menuClose.emit();
|
|
63
|
+
}
|
|
64
|
+
onItemKeydown(event, index, entry) {
|
|
65
|
+
switch (event.key) {
|
|
66
|
+
case 'ArrowDown':
|
|
67
|
+
event.preventDefault();
|
|
68
|
+
this.focusItem((index + 1) % this.entries.length);
|
|
69
|
+
return;
|
|
70
|
+
case 'ArrowUp':
|
|
71
|
+
event.preventDefault();
|
|
72
|
+
this.focusItem((index - 1 + this.entries.length) % this.entries.length);
|
|
73
|
+
return;
|
|
74
|
+
case 'Home':
|
|
75
|
+
event.preventDefault();
|
|
76
|
+
this.focusItem(0);
|
|
77
|
+
return;
|
|
78
|
+
case 'End':
|
|
79
|
+
event.preventDefault();
|
|
80
|
+
this.focusItem(this.entries.length - 1);
|
|
81
|
+
return;
|
|
82
|
+
case 'Enter':
|
|
83
|
+
case ' ':
|
|
84
|
+
event.preventDefault();
|
|
85
|
+
this.onEntrySelected(entry);
|
|
86
|
+
return;
|
|
87
|
+
default:
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
focusItem(index) {
|
|
92
|
+
if (!this.entries.length)
|
|
93
|
+
return;
|
|
94
|
+
this.activeIndex = index;
|
|
95
|
+
this.items?.get(index)?.nativeElement?.focus();
|
|
96
|
+
}
|
|
97
|
+
onDocumentClick(event) {
|
|
98
|
+
if (!this.elementRef.nativeElement.contains(event.target)) {
|
|
99
|
+
this.menuClose.emit();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
onEscape() {
|
|
103
|
+
this.menuClose.emit();
|
|
104
|
+
}
|
|
105
|
+
onScroll() {
|
|
106
|
+
this.menuClose.emit();
|
|
107
|
+
}
|
|
108
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridHeaderMenuComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
109
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: OneGridHeaderMenuComponent, isStandalone: true, selector: "one-grid-header-menu", inputs: { column: "column", sortState: "sortState", canHide: "canHide" }, outputs: { menuAction: "menuAction", menuClose: "menuClose" }, host: { listeners: { "document:click": "onDocumentClick($event)", "document:keydown.escape": "onEscape()", "document:scroll": "onScroll()" } }, viewQueries: [{ propertyName: "items", predicate: ["item"], descendants: true }], ngImport: i0, template: "<div class=\"one-header-menu\" role=\"menu\" [attr.aria-label]=\"menuLabel\">\n @for (entry of entries; let index = $index; track entry.action) {\n <button\n type=\"button\"\n role=\"menuitem\"\n class=\"one-header-menu-item\"\n #item\n [tabindex]=\"index === activeIndex ? 0 : -1\"\n (click)=\"onEntrySelected(entry)\"\n (keydown)=\"onItemKeydown($event, index, entry)\">\n <span>{{ entry.label }}</span>\n </button>\n }\n</div>\n" }); }
|
|
110
|
+
}
|
|
111
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridHeaderMenuComponent, decorators: [{
|
|
112
|
+
type: Component,
|
|
113
|
+
args: [{ selector: 'one-grid-header-menu', standalone: true, template: "<div class=\"one-header-menu\" role=\"menu\" [attr.aria-label]=\"menuLabel\">\n @for (entry of entries; let index = $index; track entry.action) {\n <button\n type=\"button\"\n role=\"menuitem\"\n class=\"one-header-menu-item\"\n #item\n [tabindex]=\"index === activeIndex ? 0 : -1\"\n (click)=\"onEntrySelected(entry)\"\n (keydown)=\"onItemKeydown($event, index, entry)\">\n <span>{{ entry.label }}</span>\n </button>\n }\n</div>\n" }]
|
|
114
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { column: [{
|
|
115
|
+
type: Input
|
|
116
|
+
}], sortState: [{
|
|
117
|
+
type: Input
|
|
118
|
+
}], canHide: [{
|
|
119
|
+
type: Input
|
|
120
|
+
}], menuAction: [{
|
|
121
|
+
type: Output
|
|
122
|
+
}], menuClose: [{
|
|
123
|
+
type: Output
|
|
124
|
+
}], items: [{
|
|
125
|
+
type: ViewChildren,
|
|
126
|
+
args: ['item']
|
|
127
|
+
}], onDocumentClick: [{
|
|
128
|
+
type: HostListener,
|
|
129
|
+
args: ['document:click', ['$event']]
|
|
130
|
+
}], onEscape: [{
|
|
131
|
+
type: HostListener,
|
|
132
|
+
args: ['document:keydown.escape']
|
|
133
|
+
}], onScroll: [{
|
|
134
|
+
type: HostListener,
|
|
135
|
+
args: ['document:scroll']
|
|
136
|
+
}] } });
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWdyaWQtaGVhZGVyLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb25lLWdyaWQvc3JjL2xpYi9jb21wb25lbnRzL29uZS1ncmlkLWhlYWRlci1tZW51L29uZS1ncmlkLWhlYWRlci1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZS1ncmlkL3NyYy9saWIvY29tcG9uZW50cy9vbmUtZ3JpZC1oZWFkZXItbWVudS9vbmUtZ3JpZC1oZWFkZXItbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWEsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWtCako7Ozs7Ozs7Ozs7OztHQVlHO0FBTUgsTUFBTSxPQUFPLDBCQUEwQjtJQWdCckMsSUFBYyxTQUFTO1FBRXJCLE9BQU8sbUJBQW1CLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxJQUFJLGFBQWEsRUFBRSxDQUFDO0lBQzdGLENBQUM7SUFFRCxZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBbkJqQyxXQUFNLEdBQWlCLElBQUksQ0FBQztRQUNyQywyRUFBMkU7UUFDbEUsY0FBUyxHQUEwQixJQUFJLENBQUM7UUFDakQsMkVBQTJFO1FBQ2xFLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFFdkIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBQ3JELGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBSXJDLFlBQU8sR0FBc0IsRUFBRSxDQUFDO1FBQ2hDLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO0lBT21CLENBQUM7SUFFOUM7OztPQUdHO0lBQ0gsUUFB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RnBCLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFVMUMsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLHlCQUF5QjtnQkFPdkMsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9uZUNvbHVtbkRlZiB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL29uZS1jb2x1bW4tZGVmLXR5cGVzLm1vZGVsJztcblxuLyoqIFdoYXQgYSBkZWZhdWx0IGhlYWRlciBtZW51IGVudHJ5IGRvZXMgd2hlbiBjaG9zZW4uICovXG5leHBvcnQgdHlwZSBPbmVIZWFkZXJNZW51QWN0aW9uID1cbiAgfCAnc29ydEFzYydcbiAgfCAnc29ydERlc2MnXG4gIHwgJ2NsZWFyU29ydCdcbiAgfCAncGluTGVmdCdcbiAgfCAncGluUmlnaHQnXG4gIHwgJ3VucGluJ1xuICB8ICdoaWRlJztcblxuaW50ZXJmYWNlIEhlYWRlck1lbnVFbnRyeSB7XG4gIGFjdGlvbjogT25lSGVhZGVyTWVudUFjdGlvbjtcbiAgbGFiZWw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgZ3JpZCdzIGRlZmF1bHQgY29sdW1uIG1lbnUsIG9wZW5lZCBieSB0aGUgaGVhZGVyJ3Mg4ouuIGJ1dHRvbiB3aGVuIHRoZVxuICogZ3JpZCBzZXRzIGBbaGVhZGVyTWVudV09XCJ0cnVlXCJgLlxuICpcbiAqIEVudHJpZXMgZm9sbG93IHRoZSBjb2x1bW46IHNvcnRpbmcgb25seSBvbiBhIHNvcnRhYmxlIGNvbHVtbiBhbmQgb25seSB0aGVcbiAqIHRyYW5zaXRpb25zIHRoYXQgbWFrZSBzZW5zZSBmcm9tIHRoZSBjdXJyZW50IHN0YXRlLCBwaW5uaW5nIHdpdGhvdXQgdGhlXG4gKiBzaWRlIGl0IGlzIGFscmVhZHkgb24sIGhpZGluZyBuZXZlciBmb3IgdGhlIGxhc3QgdmlzaWJsZSBjb2x1bW4uIFRoZSBtZW51XG4gKiBvbmx5IHJlcG9ydHMgdGhlIGNob3NlbiBhY3Rpb24g4oCUIHRoZSBoZWFkZXIgZXhlY3V0ZXMgaXQgYWdhaW5zdCB0aGUgQVBJLFxuICogZm9yIHRoZSBzYW1lIHJlYXNvbiB0aGUgY2VsbCBvcHRpb24gbWVudSBkb2VzIG5vdCBtdXRhdGUgcm93cyBpdHNlbGYuXG4gKlxuICogS2V5Ym9hcmQgYmVoYXZpb3VyIGlzIHRoZSBtZW51IHBhdHRlcm4gdGhlIGNlbGwgb3B0aW9uIG1lbnUgZXN0YWJsaXNoZWQ6XG4gKiBmb2N1cyBtb3ZlcyBpbiBvbiBvcGVuLCBhcnJvd3Mgcm92ZSwgRXNjYXBlIGFuZCBvdXRzaWRlIGNsaWNrcyBjbG9zZS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb25lLWdyaWQtaGVhZGVyLW1lbnUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vb25lLWdyaWQtaGVhZGVyLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBPbmVHcmlkSGVhZGVyTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQElucHV0KCkgY29sdW1uOiBPbmVDb2x1bW5EZWYgPSBudWxsO1xuICAvKiogVGhlIGNvbHVtbidzIGN1cnJlbnQgc29ydCwgc28gdGhlIG1lbnUgb2ZmZXJzIG9ubHkgdGhlIG90aGVyIHN0YXRlcy4gKi9cbiAgQElucHV0KCkgc29ydFN0YXRlOiAnYXNjJyB8ICdkZXNjJyB8IG51bGwgPSBudWxsO1xuICAvKiogRmFsc2Ugd2hlbiB0aGlzIGlzIHRoZSBsYXN0IHZpc2libGUgY29sdW1uLCB3aGljaCBtdXN0IHN0YXkgdmlzaWJsZS4gKi9cbiAgQElucHV0KCkgY2FuSGlkZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgQE91dHB1dCgpIG1lbnVBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPE9uZUhlYWRlck1lbnVBY3Rpb24+KCk7XG4gIEBPdXRwdXQoKSBtZW51Q2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQFZpZXdDaGlsZHJlbignaXRlbScpIHByaXZhdGUgaXRlbXM/OiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD4+O1xuXG4gIHByb3RlY3RlZCBlbnRyaWVzOiBIZWFkZXJNZW51RW50cnlbXSA9IFtdO1xuICBwcm90ZWN0ZWQgYWN0aXZlSW5kZXggPSAwO1xuXG4gIHByb3RlY3RlZCBnZXQgbWVudUxhYmVsKCk6IHN0cmluZyB7XG5cbiAgICByZXR1cm4gYENvbHVtbiBtZW51IGZvciAke3RoaXMuY29sdW1uPy5oZWFkZXJOYW1lID8/IHRoaXMuY29sdW1uPy5maWVsZCA/PyAndGhpcyBjb2x1bW4nfWA7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgLyoqXG4gICAqIEJ1aWx0IG9uY2Ugb24gb3BlbiByYXRoZXIgdGhhbiBpbiBhIGdldHRlcjogdGhlIGVudHJpZXMgZmVlZCB0aGUgcm92aW5nXG4gICAqIHRhYmluZGV4LCBhbmQgYSBsaXN0IHRoYXQgcmUtZGVyaXZlcyBtaWQtaW50ZXJhY3Rpb24gd291bGQgbW92ZSBmb2N1cy5cbiAgICovXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuXG4gICAgY29uc3QgZW50cmllczogSGVhZGVyTWVudUVudHJ5W10gPSBbXTtcbiAgICBjb25zdCBjb2x1bW4gPSB0aGlzLmNvbHVtbjtcblxuICAgIGlmIChjb2x1bW4/Ll9yZXNvbHZlZFNvcnRhYmxlICYmIGNvbHVtbi5maWVsZCkge1xuXG4gICAgICBpZiAodGhpcy5zb3J0U3RhdGUgIT09ICdhc2MnKSBlbnRyaWVzLnB1c2goeyBhY3Rpb246ICdzb3J0QXNjJywgbGFiZWw6ICdTb3J0IGFzY2VuZGluZycgfSk7XG4gICAgICBpZiAodGhpcy5zb3J0U3RhdGUgIT09ICdkZXNjJykgZW50cmllcy5wdXNoKHsgYWN0aW9uOiAnc29ydERlc2MnLCBsYWJlbDogJ1NvcnQgZGVzY2VuZGluZycgfSk7XG4gICAgICBpZiAodGhpcy5zb3J0U3RhdGUpIGVudHJpZXMucHVzaCh7IGFjdGlvbjogJ2NsZWFyU29ydCcsIGxhYmVsOiAnQ2xlYXIgc29ydCcgfSk7XG4gICAgfVxuXG4gICAgaWYgKGNvbHVtbj8ucGlubmVkICE9PSAnbGVmdCcpIGVudHJpZXMucHVzaCh7IGFjdGlvbjogJ3BpbkxlZnQnLCBsYWJlbDogJ1BpbiBsZWZ0JyB9KTtcbiAgICBpZiAoY29sdW1uPy5waW5uZWQgIT09ICdyaWdodCcpIGVudHJpZXMucHVzaCh7IGFjdGlvbjogJ3BpblJpZ2h0JywgbGFiZWw6ICdQaW4gcmlnaHQnIH0pO1xuICAgIGlmIChjb2x1bW4/LnBpbm5lZCkgZW50cmllcy5wdXNoKHsgYWN0aW9uOiAndW5waW4nLCBsYWJlbDogJ1VucGluJyB9KTtcblxuICAgIGlmICh0aGlzLmNhbkhpZGUpIGVudHJpZXMucHVzaCh7IGFjdGlvbjogJ2hpZGUnLCBsYWJlbDogJ0hpZGUgY29sdW1uJyB9KTtcblxuICAgIHRoaXMuZW50cmllcyA9IGVudHJpZXM7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG5cbiAgICB0aGlzLmZvY3VzSXRlbSgwKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkVudHJ5U2VsZWN0ZWQoZW50cnk6IEhlYWRlck1lbnVFbnRyeSk6IHZvaWQge1xuXG4gICAgdGhpcy5tZW51QWN0aW9uLmVtaXQoZW50cnkuYWN0aW9uKTtcbiAgICB0aGlzLm1lbnVDbG9zZS5lbWl0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25JdGVtS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCwgaW5kZXg6IG51bWJlciwgZW50cnk6IEhlYWRlck1lbnVFbnRyeSk6IHZvaWQge1xuXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcblxuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5mb2N1c0l0ZW0oKGluZGV4ICsgMSkgJSB0aGlzLmVudHJpZXMubGVuZ3RoKTtcbiAgICAgICAgcmV0dXJuO1xuXG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5mb2N1c0l0ZW0oKGluZGV4IC0gMSArIHRoaXMuZW50cmllcy5sZW5ndGgpICUgdGhpcy5lbnRyaWVzLmxlbmd0aCk7XG4gICAgICAgIHJldHVybjtcblxuICAgICAgY2FzZSAnSG9tZSc6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuZm9jdXNJdGVtKDApO1xuICAgICAgICByZXR1cm47XG5cbiAgICAgIGNhc2UgJ0VuZCc6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuZm9jdXNJdGVtKHRoaXMuZW50cmllcy5sZW5ndGggLSAxKTtcbiAgICAgICAgcmV0dXJuO1xuXG4gICAgICBjYXNlICdFbnRlcic6XG4gICAgICBjYXNlICcgJzpcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5vbkVudHJ5U2VsZWN0ZWQoZW50cnkpO1xuICAgICAgICByZXR1cm47XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzSXRlbShpbmRleDogbnVtYmVyKTogdm9pZCB7XG5cbiAgICBpZiAoIXRoaXMuZW50cmllcy5sZW5ndGgpIHJldHVybjtcblxuICAgIHRoaXMuYWN0aXZlSW5kZXggPSBpbmRleDtcblxuICAgIHRoaXMuaXRlbXM/LmdldChpbmRleCk/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gIG9uRG9jdW1lbnRDbGljayhldmVudDogTW91c2VFdmVudCkge1xuXG4gICAgaWYgKCF0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpKSB7XG5cbiAgICAgIHRoaXMubWVudUNsb3NlLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVzY2FwZScpXG4gIG9uRXNjYXBlKCkge1xuXG4gICAgdGhpcy5tZW51Q2xvc2UuZW1pdCgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6c2Nyb2xsJylcbiAgb25TY3JvbGwoKSB7XG5cbiAgICB0aGlzLm1lbnVDbG9zZS5lbWl0KCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvbmUtaGVhZGVyLW1lbnVcIiByb2xlPVwibWVudVwiIFthdHRyLmFyaWEtbGFiZWxdPVwibWVudUxhYmVsXCI+XG4gICAgQGZvciAoZW50cnkgb2YgZW50cmllczsgbGV0IGluZGV4ID0gJGluZGV4OyB0cmFjayBlbnRyeS5hY3Rpb24pIHtcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgICAgICAgY2xhc3M9XCJvbmUtaGVhZGVyLW1lbnUtaXRlbVwiXG4gICAgICAgICAgICAjaXRlbVxuICAgICAgICAgICAgW3RhYmluZGV4XT1cImluZGV4ID09PSBhY3RpdmVJbmRleCA/IDAgOiAtMVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25FbnRyeVNlbGVjdGVkKGVudHJ5KVwiXG4gICAgICAgICAgICAoa2V5ZG93bik9XCJvbkl0ZW1LZXlkb3duKCRldmVudCwgaW5kZXgsIGVudHJ5KVwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgZW50cnkubGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIH1cbjwvZGl2PlxuIl19
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
2
|
import { OnePageSizeOption } from '../../core/models/constants/one-pagination.constant';
|
|
3
|
+
import { LucideAngularModule } from 'lucide-angular';
|
|
4
|
+
import { ONE_GRID_ICON_PROVIDERS } from '../../core/icons/one-grid-icons';
|
|
3
5
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "
|
|
5
|
-
import * as i2 from "lucide-angular";
|
|
6
|
+
import * as i1 from "lucide-angular";
|
|
6
7
|
export class OneGridPaginationComponent {
|
|
7
8
|
constructor() {
|
|
8
9
|
this.paginate = {
|
|
@@ -79,11 +80,11 @@ export class OneGridPaginationComponent {
|
|
|
79
80
|
}
|
|
80
81
|
}
|
|
81
82
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
82
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: OneGridPaginationComponent, selector: "one-grid-pagination", inputs: { paginate: "paginate" }, outputs: { goToFirst: "goToFirst", goToPrevious: "goToPrevious", goToNext: "goToNext", goToLast: "goToLast", pageSizeChange: "pageSizeChange" }, ngImport: i0, template: "<!-- A navigation landmark, so the bar is reachable as one thing rather than as\n four unlabelled icon buttons floating under the grid. -->\n<div class=\"one-grid-pagination\" role=\"navigation\" aria-label=\"Pagination\">\n <div class=\"one-pagination-row\">\n @if (paginate?.firstRowIndex > 0 && paginate?.lastRowIndex > 0 && paginate?.total > 0) {\n <div class=\"one-pagination-columns-group\">\n <div class=\"one-pagination-column\">\n <span>{{ paginate?.firstRowIndex }}</span>\n <span>-</span>\n <span>{{ paginate?.lastRowIndex }}</span>\n <span>/</span> \n <span>{{ paginate?.total }}</span>\n </div>\n </div>\n }\n <div class=\"one-pagination-columns-group\">\n <div class=\"one-pagination-column\">\n <!-- `type=\"button\"` so the bar cannot submit a surrounding form,\n a real `disabled` rather than a class that only stops the\n mouse, and a name on every icon-only control. -->\n <button\n type=\"button\"\n class=\"one-pagination-btn\"\n aria-label=\"First page\"\n title=\"First page\"\n [disabled]=\"!hasPrevious\"\n [class.disabled]=\"!hasPrevious\"\n (click)=\"goToFirstPage()\">\n <lucide-icon name=\"chevron-first\" [size]=\"16\" [strokeWidth]=\"2\"></lucide-icon>\n </button>\n <button\n type=\"button\"\n class=\"one-pagination-btn\"\n aria-label=\"Previous page\"\n title=\"Previous page\"\n [disabled]=\"!hasPrevious\"\n [class.disabled]=\"!hasPrevious\"\n (click)=\"goToPreviousPage()\">\n <lucide-icon name=\"chevron-left\" [size]=\"16\" [strokeWidth]=\"2\"></lucide-icon>\n </button>\n </div>\n <!-- Announced as a live region: the numbers are the only feedback a\n screen reader gets that the page actually changed. -->\n <div class=\"one-pagination-column\" role=\"status\" aria-live=\"polite\">\n <span class=\"one-grid-visually-hidden\">Page </span>{{ paginate?.currentPage }}<span>/</span>{{ paginate?.lastPage }} \n </div>\n <div class=\"one-pagination-column\">\n <button\n type=\"button\"\n class=\"one-pagination-btn\"\n aria-label=\"Next page\"\n title=\"Next page\"\n [disabled]=\"!hasNext\"\n [class.disabled]=\"!hasNext\"\n (click)=\"goToNextPage()\">\n <lucide-icon name=\"chevron-right\" [size]=\"16\" [strokeWidth]=\"2\"></lucide-icon>\n </button>\n <button\n type=\"button\"\n class=\"one-pagination-btn\"\n aria-label=\"Last page\"\n title=\"Last page\"\n [disabled]=\"!hasNext\"\n [class.disabled]=\"!hasNext\"\n (click)=\"goToLastPage()\">\n <lucide-icon name=\"chevron-last\" [size]=\"16\" [strokeWidth]=\"2\"></lucide-icon>\n </button>\n </div>\n <div class=\"one-pagination-columns-group\">\n <div class=\"one-pagination-column\">\n <!-- `[selected]` per option, not `[value]` on the select:\n with options rendered by `@for`, the select's value is\n set before they exist and does not stick. -->\n <select name=\"row-per-page\" aria-label=\"Rows per page\" (change)=\"onPageSizeChange($event)\">\n @for (size of pageSizeOptions; track size) {\n <option [value]=\"size\" [selected]=\"size === pageSize\">{{ size }} rows</option>\n }\n </select>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "
|
|
83
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: OneGridPaginationComponent, isStandalone: true, selector: "one-grid-pagination", inputs: { paginate: "paginate" }, outputs: { goToFirst: "goToFirst", goToPrevious: "goToPrevious", goToNext: "goToNext", goToLast: "goToLast", pageSizeChange: "pageSizeChange" }, providers: [ONE_GRID_ICON_PROVIDERS], ngImport: i0, template: "<!-- A navigation landmark, so the bar is reachable as one thing rather than as\n four unlabelled icon buttons floating under the grid. -->\n<div class=\"one-grid-pagination\" role=\"navigation\" aria-label=\"Pagination\">\n <div class=\"one-pagination-row\">\n @if (paginate?.firstRowIndex > 0 && paginate?.lastRowIndex > 0 && paginate?.total > 0) {\n <div class=\"one-pagination-columns-group\">\n <div class=\"one-pagination-column\">\n <span>{{ paginate?.firstRowIndex }}</span>\n <span>-</span>\n <span>{{ paginate?.lastRowIndex }}</span>\n <span>/</span> \n <span>{{ paginate?.total }}</span>\n </div>\n </div>\n }\n <div class=\"one-pagination-columns-group\">\n <div class=\"one-pagination-column\">\n <!-- `type=\"button\"` so the bar cannot submit a surrounding form,\n a real `disabled` rather than a class that only stops the\n mouse, and a name on every icon-only control. -->\n <button\n type=\"button\"\n class=\"one-pagination-btn\"\n aria-label=\"First page\"\n title=\"First page\"\n [disabled]=\"!hasPrevious\"\n [class.disabled]=\"!hasPrevious\"\n (click)=\"goToFirstPage()\">\n <lucide-icon name=\"chevron-first\" [size]=\"16\" [strokeWidth]=\"2\"></lucide-icon>\n </button>\n <button\n type=\"button\"\n class=\"one-pagination-btn\"\n aria-label=\"Previous page\"\n title=\"Previous page\"\n [disabled]=\"!hasPrevious\"\n [class.disabled]=\"!hasPrevious\"\n (click)=\"goToPreviousPage()\">\n <lucide-icon name=\"chevron-left\" [size]=\"16\" [strokeWidth]=\"2\"></lucide-icon>\n </button>\n </div>\n <!-- Announced as a live region: the numbers are the only feedback a\n screen reader gets that the page actually changed. -->\n <div class=\"one-pagination-column\" role=\"status\" aria-live=\"polite\">\n <span class=\"one-grid-visually-hidden\">Page </span>{{ paginate?.currentPage }}<span>/</span>{{ paginate?.lastPage }} \n </div>\n <div class=\"one-pagination-column\">\n <button\n type=\"button\"\n class=\"one-pagination-btn\"\n aria-label=\"Next page\"\n title=\"Next page\"\n [disabled]=\"!hasNext\"\n [class.disabled]=\"!hasNext\"\n (click)=\"goToNextPage()\">\n <lucide-icon name=\"chevron-right\" [size]=\"16\" [strokeWidth]=\"2\"></lucide-icon>\n </button>\n <button\n type=\"button\"\n class=\"one-pagination-btn\"\n aria-label=\"Last page\"\n title=\"Last page\"\n [disabled]=\"!hasNext\"\n [class.disabled]=\"!hasNext\"\n (click)=\"goToLastPage()\">\n <lucide-icon name=\"chevron-last\" [size]=\"16\" [strokeWidth]=\"2\"></lucide-icon>\n </button>\n </div>\n <div class=\"one-pagination-columns-group\">\n <div class=\"one-pagination-column\">\n <!-- `[selected]` per option, not `[value]` on the select:\n with options rendered by `@for`, the select's value is\n set before they exist and does not stick. -->\n <select name=\"row-per-page\" aria-label=\"Rows per page\" (change)=\"onPageSizeChange($event)\">\n @for (size of pageSizeOptions; track size) {\n <option [value]=\"size\" [selected]=\"size === pageSize\">{{ size }} rows</option>\n }\n </select>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: LucideAngularModule }, { kind: "component", type: i1.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }] }); }
|
|
83
84
|
}
|
|
84
85
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridPaginationComponent, decorators: [{
|
|
85
86
|
type: Component,
|
|
86
|
-
args: [{ standalone:
|
|
87
|
+
args: [{ standalone: true, imports: [LucideAngularModule], selector: 'one-grid-pagination', providers: [ONE_GRID_ICON_PROVIDERS], template: "<!-- A navigation landmark, so the bar is reachable as one thing rather than as\n four unlabelled icon buttons floating under the grid. -->\n<div class=\"one-grid-pagination\" role=\"navigation\" aria-label=\"Pagination\">\n <div class=\"one-pagination-row\">\n @if (paginate?.firstRowIndex > 0 && paginate?.lastRowIndex > 0 && paginate?.total > 0) {\n <div class=\"one-pagination-columns-group\">\n <div class=\"one-pagination-column\">\n <span>{{ paginate?.firstRowIndex }}</span>\n <span>-</span>\n <span>{{ paginate?.lastRowIndex }}</span>\n <span>/</span> \n <span>{{ paginate?.total }}</span>\n </div>\n </div>\n }\n <div class=\"one-pagination-columns-group\">\n <div class=\"one-pagination-column\">\n <!-- `type=\"button\"` so the bar cannot submit a surrounding form,\n a real `disabled` rather than a class that only stops the\n mouse, and a name on every icon-only control. -->\n <button\n type=\"button\"\n class=\"one-pagination-btn\"\n aria-label=\"First page\"\n title=\"First page\"\n [disabled]=\"!hasPrevious\"\n [class.disabled]=\"!hasPrevious\"\n (click)=\"goToFirstPage()\">\n <lucide-icon name=\"chevron-first\" [size]=\"16\" [strokeWidth]=\"2\"></lucide-icon>\n </button>\n <button\n type=\"button\"\n class=\"one-pagination-btn\"\n aria-label=\"Previous page\"\n title=\"Previous page\"\n [disabled]=\"!hasPrevious\"\n [class.disabled]=\"!hasPrevious\"\n (click)=\"goToPreviousPage()\">\n <lucide-icon name=\"chevron-left\" [size]=\"16\" [strokeWidth]=\"2\"></lucide-icon>\n </button>\n </div>\n <!-- Announced as a live region: the numbers are the only feedback a\n screen reader gets that the page actually changed. -->\n <div class=\"one-pagination-column\" role=\"status\" aria-live=\"polite\">\n <span class=\"one-grid-visually-hidden\">Page </span>{{ paginate?.currentPage }}<span>/</span>{{ paginate?.lastPage }} \n </div>\n <div class=\"one-pagination-column\">\n <button\n type=\"button\"\n class=\"one-pagination-btn\"\n aria-label=\"Next page\"\n title=\"Next page\"\n [disabled]=\"!hasNext\"\n [class.disabled]=\"!hasNext\"\n (click)=\"goToNextPage()\">\n <lucide-icon name=\"chevron-right\" [size]=\"16\" [strokeWidth]=\"2\"></lucide-icon>\n </button>\n <button\n type=\"button\"\n class=\"one-pagination-btn\"\n aria-label=\"Last page\"\n title=\"Last page\"\n [disabled]=\"!hasNext\"\n [class.disabled]=\"!hasNext\"\n (click)=\"goToLastPage()\">\n <lucide-icon name=\"chevron-last\" [size]=\"16\" [strokeWidth]=\"2\"></lucide-icon>\n </button>\n </div>\n <div class=\"one-pagination-columns-group\">\n <div class=\"one-pagination-column\">\n <!-- `[selected]` per option, not `[value]` on the select:\n with options rendered by `@for`, the select's value is\n set before they exist and does not stick. -->\n <select name=\"row-per-page\" aria-label=\"Rows per page\" (change)=\"onPageSizeChange($event)\">\n @for (size of pageSizeOptions; track size) {\n <option [value]=\"size\" [selected]=\"size === pageSize\">{{ size }} rows</option>\n }\n </select>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
87
88
|
}], propDecorators: { paginate: [{
|
|
88
89
|
type: Input
|
|
89
90
|
}], goToFirst: [{
|
|
@@ -97,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
97
98
|
}], pageSizeChange: [{
|
|
98
99
|
type: Output
|
|
99
100
|
}] } });
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWdyaWQtcGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2NvbXBvbmVudHMvb25lLWdyaWQtcGFnaW5hdGlvbi9vbmUtZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZS1ncmlkL3NyYy9saWIvY29tcG9uZW50cy9vbmUtZ3JpZC1wYWdpbmF0aW9uL29uZS1ncmlkLXBhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQzs7OztBQVF4RixNQUFNLE9BQU8sMEJBQTBCO0lBTnZDO1FBUVcsYUFBUSxHQUF3QjtZQUN2QyxLQUFLLEVBQUUsQ0FBQztZQUNSLFdBQVcsRUFBRSxDQUFDO1lBQ2QsUUFBUSxFQUFFLENBQUM7WUFDWCxPQUFPLEVBQUUsRUFBRTtZQUNYLGFBQWEsRUFBRSxDQUFDO1lBQ2hCLFlBQVksRUFBRSxDQUFDO1NBQ2hCLENBQUM7UUFFUSxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMvQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDOUIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDOUIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0tBbUYvQztJQWpGQzs7Ozs7O09BTUc7SUFDSCxJQUFXLFFBQVE7UUFFakIsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILElBQVcsZUFBZTtRQUV4QixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO0lBQ3BHLENBQUM7SUFFRCxzREFBc0Q7SUFDdEQsSUFBVyxXQUFXO1FBRXBCLE9BQU8sSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELHFEQUFxRDtJQUNyRCxJQUFXLE9BQU87UUFFaEIsT0FBTyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVELElBQVksU0FBUztRQUVuQixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsYUFBYTtRQUVYLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU87UUFFOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsZ0JBQWdCO1FBRWQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUU5QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxZQUFZO1FBRVYsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTztRQUUxQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxZQUFZO1FBRVYsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTztRQUUxQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFZO1FBRTNCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUEyQixDQUFDO1FBRWpELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFckMsSUFBSSxPQUFPLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBRTlCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDOytHQWpHVSwwQkFBMEI7bUdBQTFCLDBCQUEwQiw4T0NWdkMsbXhJQW1GQTs7NEZEekVhLDBCQUEwQjtrQkFOdEMsU0FBUztpQ0FDSSxLQUFLLFlBQ1AscUJBQXFCOzhCQU10QixRQUFRO3NCQUFoQixLQUFLO2dCQVNJLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPbmVQYWdpbmF0aW9uUGFyYW1zIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMvb25lLXBhZ2luYXRpb24tdHlwZXMubW9kZWwnO1xuaW1wb3J0IHsgT25lUGFnZVNpemVPcHRpb24gfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscy9jb25zdGFudHMvb25lLXBhZ2luYXRpb24uY29uc3RhbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIHNlbGVjdG9yOiAnb25lLWdyaWQtcGFnaW5hdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9vbmUtZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL29uZS1ncmlkLXBhZ2luYXRpb24uY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIE9uZUdyaWRQYWdpbmF0aW9uQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBwYWdpbmF0ZTogT25lUGFnaW5hdGlvblBhcmFtcyA9IHtcbiAgICB0b3RhbDogMCxcbiAgICBjdXJyZW50UGFnZTogMSxcbiAgICBsYXN0UGFnZTogMSxcbiAgICBwZXJQYWdlOiAyNSxcbiAgICBmaXJzdFJvd0luZGV4OiAxLFxuICAgIGxhc3RSb3dJbmRleDogMSxcbiAgfTtcblxuICBAT3V0cHV0KCkgZ29Ub0ZpcnN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZ29Ub1ByZXZpb3VzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZ29Ub05leHQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBnb1RvTGFzdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHBhZ2VTaXplQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFnZSBzaXplIHRoZSBiYXIgc2hvd3MuXG4gICAqXG4gICAqIERlcml2ZWQgZnJvbSB0aGUgaW5wdXQgcmF0aGVyIHRoYW4gaGVsZCBsb2NhbGx5LiBUaGUgYmFyIGlzIGEgZGlzcGxheSBvZlxuICAgKiB0aGUgaG9zdCdzIHBhZ2luZyBzdGF0ZSDigJQgaXQgZG9lcyBub3Qgb3duIGl0IOKAlCBhbmQgYSBsb2NhbCBjb3B5IG1lYW50IGFcbiAgICogaG9zdCB0aGF0IHN1cHBsaWVkIGBwZXJQYWdlOiA1MGAgc3RpbGwgc2F3IFwiMjUgcm93c1wiIHNlbGVjdGVkLlxuICAgKi9cbiAgcHVibGljIGdldCBwYWdlU2l6ZSgpOiBudW1iZXIge1xuXG4gICAgcmV0dXJuIHRoaXMucGFnaW5hdGU/LnBlclBhZ2UgPz8gT25lUGFnZVNpemVPcHRpb25bMF07XG4gIH1cblxuICAvKipcbiAgICogVGhlIHNpemUgb3B0aW9ucyBvZmZlcmVkLlxuICAgKlxuICAgKiBBbHNvIGRlcml2ZWQuIFRoZXNlIHVzZWQgdG8gYmUgY29waWVkIG91dCBvZiB0aGUgaW5wdXQgaW5cbiAgICogYG5nQWZ0ZXJWaWV3SW5pdGAg4oCUIGFmdGVyIHRoZSB2aWV3IGhhZCBhbHJlYWR5IGJlZW4gY2hlY2tlZCB3aXRoIHRoZVxuICAgKiBkZWZhdWx0cyDigJQgc28gYW55IGdyaWQgc3VwcGx5aW5nIGl0cyBvd24gb3B0aW9ucyB0aHJldyBgTkcwMTAwYCBpbiBkZXZcbiAgICogbW9kZSwgYW5kIGxhdGVyIGNoYW5nZXMgdG8gdGhlIGxpc3Qgd2VyZSBpZ25vcmVkIGVudGlyZWx5LlxuICAgKi9cbiAgcHVibGljIGdldCBwYWdlU2l6ZU9wdGlvbnMoKTogbnVtYmVyW10ge1xuXG4gICAgcmV0dXJuIHRoaXMucGFnaW5hdGU/LnBhZ2VTaXplT3B0aW9ucz8ubGVuZ3RoID8gdGhpcy5wYWdpbmF0ZS5wYWdlU2l6ZU9wdGlvbnMgOiBPbmVQYWdlU2l6ZU9wdGlvbjtcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZXJlIGlzIGEgcGFnZSBiZWZvcmUgdGhlIGN1cnJlbnQgb25lLiAqL1xuICBwdWJsaWMgZ2V0IGhhc1ByZXZpb3VzKCk6IGJvb2xlYW4ge1xuXG4gICAgcmV0dXJuIHRoaXMucGFnZUNvdW50ID4gMSAmJiAodGhpcy5wYWdpbmF0ZT8uY3VycmVudFBhZ2UgPz8gMSkgPiAxO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlcmUgaXMgYSBwYWdlIGFmdGVyIHRoZSBjdXJyZW50IG9uZS4gKi9cbiAgcHVibGljIGdldCBoYXNOZXh0KCk6IGJvb2xlYW4ge1xuXG4gICAgcmV0dXJuIHRoaXMucGFnZUNvdW50ID4gMSAmJiAodGhpcy5wYWdpbmF0ZT8uY3VycmVudFBhZ2UgPz8gMSkgPCAodGhpcy5wYWdpbmF0ZT8ubGFzdFBhZ2UgPz8gMSk7XG4gIH1cblxuICBwcml2YXRlIGdldCBwYWdlQ291bnQoKTogbnVtYmVyIHtcblxuICAgIHJldHVybiB0aGlzLnBhZ2luYXRlPy5sYXN0UGFnZSA/PyAxO1xuICB9XG5cbiAgZ29Ub0ZpcnN0UGFnZSgpIHtcblxuICAgIGlmICghdGhpcy5oYXNQcmV2aW91cykgcmV0dXJuO1xuXG4gICAgdGhpcy5nb1RvRmlyc3QuZW1pdCh0aGlzLnBhZ2luYXRlPy5jdXJyZW50UGFnZSk7XG4gIH1cblxuICBnb1RvUHJldmlvdXNQYWdlKCkge1xuXG4gICAgaWYgKCF0aGlzLmhhc1ByZXZpb3VzKSByZXR1cm47XG5cbiAgICB0aGlzLmdvVG9QcmV2aW91cy5lbWl0KHRoaXMucGFnaW5hdGU/LmN1cnJlbnRQYWdlKTtcbiAgfVxuXG4gIGdvVG9OZXh0UGFnZSgpIHtcblxuICAgIGlmICghdGhpcy5oYXNOZXh0KSByZXR1cm47XG5cbiAgICB0aGlzLmdvVG9OZXh0LmVtaXQodGhpcy5wYWdpbmF0ZT8uY3VycmVudFBhZ2UpO1xuICB9XG5cbiAgZ29Ub0xhc3RQYWdlKCkge1xuXG4gICAgaWYgKCF0aGlzLmhhc05leHQpIHJldHVybjtcblxuICAgIHRoaXMuZ29Ub0xhc3QuZW1pdCh0aGlzLnBhZ2luYXRlPy5jdXJyZW50UGFnZSk7XG4gIH1cblxuICBvblBhZ2VTaXplQ2hhbmdlKGV2ZW50OiBFdmVudCkge1xuXG4gICAgY29uc3Qgc2VsZWN0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxTZWxlY3RFbGVtZW50O1xuXG4gICAgY29uc3QgbmV3U2l6ZSA9IE51bWJlcihzZWxlY3QudmFsdWUpO1xuXG4gICAgaWYgKG5ld1NpemUgIT09IHRoaXMucGFnZVNpemUpIHtcblxuICAgICAgdGhpcy5wYWdlU2l6ZUNoYW5nZS5lbWl0KG5ld1NpemUpO1xuICAgIH1cbiAgfVxufVxuIiwiPCEtLSBBIG5hdmlnYXRpb24gbGFuZG1hcmssIHNvIHRoZSBiYXIgaXMgcmVhY2hhYmxlIGFzIG9uZSB0aGluZyByYXRoZXIgdGhhbiBhc1xuICAgICBmb3VyIHVubGFiZWxsZWQgaWNvbiBidXR0b25zIGZsb2F0aW5nIHVuZGVyIHRoZSBncmlkLiAtLT5cbjxkaXYgY2xhc3M9XCJvbmUtZ3JpZC1wYWdpbmF0aW9uXCIgcm9sZT1cIm5hdmlnYXRpb25cIiBhcmlhLWxhYmVsPVwiUGFnaW5hdGlvblwiPlxuICAgIDxkaXYgY2xhc3M9XCJvbmUtcGFnaW5hdGlvbi1yb3dcIj5cbiAgICAgICAgQGlmIChwYWdpbmF0ZT8uZmlyc3RSb3dJbmRleCA+IDAgJiYgcGFnaW5hdGU/Lmxhc3RSb3dJbmRleCA+IDAgJiYgcGFnaW5hdGU/LnRvdGFsID4gMCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9uZS1wYWdpbmF0aW9uLWNvbHVtbnMtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib25lLXBhZ2luYXRpb24tY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHBhZ2luYXRlPy5maXJzdFJvd0luZGV4IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj4tPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBwYWdpbmF0ZT8ubGFzdFJvd0luZGV4IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAmbmJzcDs8c3Bhbj4vPC9zcGFuPiZuYnNwO1xuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBwYWdpbmF0ZT8udG90YWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2IGNsYXNzPVwib25lLXBhZ2luYXRpb24tY29sdW1ucy1ncm91cFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9uZS1wYWdpbmF0aW9uLWNvbHVtblwiPlxuICAgICAgICAgICAgICAgIDwhLS0gYHR5cGU9XCJidXR0b25cImAgc28gdGhlIGJhciBjYW5ub3Qgc3VibWl0IGEgc3Vycm91bmRpbmcgZm9ybSxcbiAgICAgICAgICAgICAgICAgICAgIGEgcmVhbCBgZGlzYWJsZWRgIHJhdGhlciB0aGFuIGEgY2xhc3MgdGhhdCBvbmx5IHN0b3BzIHRoZVxuICAgICAgICAgICAgICAgICAgICAgbW91c2UsIGFuZCBhIG5hbWUgb24gZXZlcnkgaWNvbi1vbmx5IGNvbnRyb2wuIC0tPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwib25lLXBhZ2luYXRpb24tYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkZpcnN0IHBhZ2VcIlxuICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIkZpcnN0IHBhZ2VcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWhhc1ByZXZpb3VzXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFoYXNQcmV2aW91c1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb1RvRmlyc3RQYWdlKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGx1Y2lkZS1pY29uIG5hbWU9XCJjaGV2cm9uLWZpcnN0XCIgW3NpemVdPVwiMTZcIiBbc3Ryb2tlV2lkdGhdPVwiMlwiPjwvbHVjaWRlLWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJvbmUtcGFnaW5hdGlvbi1idG5cIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiUHJldmlvdXMgcGFnZVwiXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiUHJldmlvdXMgcGFnZVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaGFzUHJldmlvdXNcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWhhc1ByZXZpb3VzXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9QcmV2aW91c1BhZ2UoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bHVjaWRlLWljb24gbmFtZT1cImNoZXZyb24tbGVmdFwiIFtzaXplXT1cIjE2XCIgW3N0cm9rZVdpZHRoXT1cIjJcIj48L2x1Y2lkZS1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8IS0tIEFubm91bmNlZCBhcyBhIGxpdmUgcmVnaW9uOiB0aGUgbnVtYmVycyBhcmUgdGhlIG9ubHkgZmVlZGJhY2sgYVxuICAgICAgICAgICAgICAgICBzY3JlZW4gcmVhZGVyIGdldHMgdGhhdCB0aGUgcGFnZSBhY3R1YWxseSBjaGFuZ2VkLiAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvbmUtcGFnaW5hdGlvbi1jb2x1bW5cIiByb2xlPVwic3RhdHVzXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICAgICAgICAgICAgJm5ic3A7PHNwYW4gY2xhc3M9XCJvbmUtZ3JpZC12aXN1YWxseS1oaWRkZW5cIj5QYWdlIDwvc3Bhbj57eyBwYWdpbmF0ZT8uY3VycmVudFBhZ2UgfX08c3Bhbj4vPC9zcGFuPnt7IHBhZ2luYXRlPy5sYXN0UGFnZSB9fSZuYnNwO1xuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib25lLXBhZ2luYXRpb24tY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJvbmUtcGFnaW5hdGlvbi1idG5cIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiTmV4dCBwYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJOZXh0IHBhZ2VcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWhhc05leHRcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWhhc05leHRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29Ub05leHRQYWdlKClcIj5cbiAgICAgICAgICAgICAgICAgICAgIDxsdWNpZGUtaWNvbiBuYW1lPVwiY2hldnJvbi1yaWdodFwiIFtzaXplXT1cIjE2XCIgW3N0cm9rZVdpZHRoXT1cIjJcIj48L2x1Y2lkZS1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwib25lLXBhZ2luYXRpb24tYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkxhc3QgcGFnZVwiXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiTGFzdCBwYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFoYXNOZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFoYXNOZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9MYXN0UGFnZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgICA8bHVjaWRlLWljb24gbmFtZT1cImNoZXZyb24tbGFzdFwiIFtzaXplXT1cIjE2XCIgW3N0cm9rZVdpZHRoXT1cIjJcIj48L2x1Y2lkZS1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib25lLXBhZ2luYXRpb24tY29sdW1ucy1ncm91cFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvbmUtcGFnaW5hdGlvbi1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSBgW3NlbGVjdGVkXWAgcGVyIG9wdGlvbiwgbm90IGBbdmFsdWVdYCBvbiB0aGUgc2VsZWN0OlxuICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggb3B0aW9ucyByZW5kZXJlZCBieSBgQGZvcmAsIHRoZSBzZWxlY3QncyB2YWx1ZSBpc1xuICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBiZWZvcmUgdGhleSBleGlzdCBhbmQgZG9lcyBub3Qgc3RpY2suIC0tPlxuICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IG5hbWU9XCJyb3ctcGVyLXBhZ2VcIiBhcmlhLWxhYmVsPVwiUm93cyBwZXIgcGFnZVwiIChjaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChzaXplIG9mIHBhZ2VTaXplT3B0aW9uczsgdHJhY2sgc2l6ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cInNpemVcIiBbc2VsZWN0ZWRdPVwic2l6ZSA9PT0gcGFnZVNpemVcIj57eyBzaXplIH19IHJvd3M8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWdyaWQtcGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2NvbXBvbmVudHMvb25lLWdyaWQtcGFnaW5hdGlvbi9vbmUtZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZS1ncmlkL3NyYy9saWIvY29tcG9uZW50cy9vbmUtZ3JpZC1wYWdpbmF0aW9uL29uZS1ncmlkLXBhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUN4RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7O0FBVTFFLE1BQU0sT0FBTywwQkFBMEI7SUFSdkM7UUFVVyxhQUFRLEdBQXdCO1lBQ3ZDLEtBQUssRUFBRSxDQUFDO1lBQ1IsV0FBVyxFQUFFLENBQUM7WUFDZCxRQUFRLEVBQUUsQ0FBQztZQUNYLE9BQU8sRUFBRSxFQUFFO1lBQ1gsYUFBYSxFQUFFLENBQUM7WUFDaEIsWUFBWSxFQUFFLENBQUM7U0FDaEIsQ0FBQztRQUVRLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQy9CLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5QixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5QixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7S0FtRi9DO0lBakZDOzs7Ozs7T0FNRztJQUNILElBQVcsUUFBUTtRQUVqQixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxJQUFJLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsSUFBVyxlQUFlO1FBRXhCLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUM7SUFDcEcsQ0FBQztJQUVELHNEQUFzRDtJQUN0RCxJQUFXLFdBQVc7UUFFcEIsT0FBTyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQscURBQXFEO0lBQ3JELElBQVcsT0FBTztRQUVoQixPQUFPLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRUQsSUFBWSxTQUFTO1FBRW5CLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxhQUFhO1FBRVgsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUU5QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxnQkFBZ0I7UUFFZCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBRTlCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELFlBQVk7UUFFVixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBRTFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELFlBQVk7UUFFVixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBRTFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQVk7UUFFM0IsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQTJCLENBQUM7UUFFakQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVyQyxJQUFJLE9BQU8sS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFFOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7K0dBakdVLDBCQUEwQjttR0FBMUIsMEJBQTBCLHFQQUoxQixDQUFDLHVCQUF1QixDQUFDLDBCQ1Z0QyxteElBbUZBLHlERDNFWSxtQkFBbUI7OzRGQU1sQiwwQkFBMEI7a0JBUnRDLFNBQVM7aUNBQ0ksSUFBSSxXQUNQLENBQUMsbUJBQW1CLENBQUMsWUFDcEIscUJBQXFCLGFBQ3BCLENBQUMsdUJBQXVCLENBQUM7OEJBTTNCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBU0ksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9uZVBhZ2luYXRpb25QYXJhbXMgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscy9vbmUtcGFnaW5hdGlvbi10eXBlcy5tb2RlbCc7XG5pbXBvcnQgeyBPbmVQYWdlU2l6ZU9wdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL2NvbnN0YW50cy9vbmUtcGFnaW5hdGlvbi5jb25zdGFudCc7XG5pbXBvcnQgeyBMdWNpZGVBbmd1bGFyTW9kdWxlIH0gZnJvbSAnbHVjaWRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgT05FX0dSSURfSUNPTl9QUk9WSURFUlMgfSBmcm9tICcuLi8uLi9jb3JlL2ljb25zL29uZS1ncmlkLWljb25zJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtMdWNpZGVBbmd1bGFyTW9kdWxlXSxcbiAgc2VsZWN0b3I6ICdvbmUtZ3JpZC1wYWdpbmF0aW9uJyxcbiAgcHJvdmlkZXJzOiBbT05FX0dSSURfSUNPTl9QUk9WSURFUlNdLFxuICB0ZW1wbGF0ZVVybDogJy4vb25lLWdyaWQtcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9vbmUtZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBPbmVHcmlkUGFnaW5hdGlvbkNvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgcGFnaW5hdGU6IE9uZVBhZ2luYXRpb25QYXJhbXMgPSB7XG4gICAgdG90YWw6IDAsXG4gICAgY3VycmVudFBhZ2U6IDEsXG4gICAgbGFzdFBhZ2U6IDEsXG4gICAgcGVyUGFnZTogMjUsXG4gICAgZmlyc3RSb3dJbmRleDogMSxcbiAgICBsYXN0Um93SW5kZXg6IDEsXG4gIH07XG5cbiAgQE91dHB1dCgpIGdvVG9GaXJzdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGdvVG9QcmV2aW91cyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGdvVG9OZXh0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZ29Ub0xhc3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwYWdlU2l6ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogVGhlIHBhZ2Ugc2l6ZSB0aGUgYmFyIHNob3dzLlxuICAgKlxuICAgKiBEZXJpdmVkIGZyb20gdGhlIGlucHV0IHJhdGhlciB0aGFuIGhlbGQgbG9jYWxseS4gVGhlIGJhciBpcyBhIGRpc3BsYXkgb2ZcbiAgICogdGhlIGhvc3QncyBwYWdpbmcgc3RhdGUg4oCUIGl0IGRvZXMgbm90IG93biBpdCDigJQgYW5kIGEgbG9jYWwgY29weSBtZWFudCBhXG4gICAqIGhvc3QgdGhhdCBzdXBwbGllZCBgcGVyUGFnZTogNTBgIHN0aWxsIHNhdyBcIjI1IHJvd3NcIiBzZWxlY3RlZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgcGFnZVNpemUoKTogbnVtYmVyIHtcblxuICAgIHJldHVybiB0aGlzLnBhZ2luYXRlPy5wZXJQYWdlID8/IE9uZVBhZ2VTaXplT3B0aW9uWzBdO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBzaXplIG9wdGlvbnMgb2ZmZXJlZC5cbiAgICpcbiAgICogQWxzbyBkZXJpdmVkLiBUaGVzZSB1c2VkIHRvIGJlIGNvcGllZCBvdXQgb2YgdGhlIGlucHV0IGluXG4gICAqIGBuZ0FmdGVyVmlld0luaXRgIOKAlCBhZnRlciB0aGUgdmlldyBoYWQgYWxyZWFkeSBiZWVuIGNoZWNrZWQgd2l0aCB0aGVcbiAgICogZGVmYXVsdHMg4oCUIHNvIGFueSBncmlkIHN1cHBseWluZyBpdHMgb3duIG9wdGlvbnMgdGhyZXcgYE5HMDEwMGAgaW4gZGV2XG4gICAqIG1vZGUsIGFuZCBsYXRlciBjaGFuZ2VzIHRvIHRoZSBsaXN0IHdlcmUgaWdub3JlZCBlbnRpcmVseS5cbiAgICovXG4gIHB1YmxpYyBnZXQgcGFnZVNpemVPcHRpb25zKCk6IG51bWJlcltdIHtcblxuICAgIHJldHVybiB0aGlzLnBhZ2luYXRlPy5wYWdlU2l6ZU9wdGlvbnM/Lmxlbmd0aCA/IHRoaXMucGFnaW5hdGUucGFnZVNpemVPcHRpb25zIDogT25lUGFnZVNpemVPcHRpb247XG4gIH1cblxuICAvKiogV2hldGhlciB0aGVyZSBpcyBhIHBhZ2UgYmVmb3JlIHRoZSBjdXJyZW50IG9uZS4gKi9cbiAgcHVibGljIGdldCBoYXNQcmV2aW91cygpOiBib29sZWFuIHtcblxuICAgIHJldHVybiB0aGlzLnBhZ2VDb3VudCA+IDEgJiYgKHRoaXMucGFnaW5hdGU/LmN1cnJlbnRQYWdlID8/IDEpID4gMTtcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZXJlIGlzIGEgcGFnZSBhZnRlciB0aGUgY3VycmVudCBvbmUuICovXG4gIHB1YmxpYyBnZXQgaGFzTmV4dCgpOiBib29sZWFuIHtcblxuICAgIHJldHVybiB0aGlzLnBhZ2VDb3VudCA+IDEgJiYgKHRoaXMucGFnaW5hdGU/LmN1cnJlbnRQYWdlID8/IDEpIDwgKHRoaXMucGFnaW5hdGU/Lmxhc3RQYWdlID8/IDEpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgcGFnZUNvdW50KCk6IG51bWJlciB7XG5cbiAgICByZXR1cm4gdGhpcy5wYWdpbmF0ZT8ubGFzdFBhZ2UgPz8gMTtcbiAgfVxuXG4gIGdvVG9GaXJzdFBhZ2UoKSB7XG5cbiAgICBpZiAoIXRoaXMuaGFzUHJldmlvdXMpIHJldHVybjtcblxuICAgIHRoaXMuZ29Ub0ZpcnN0LmVtaXQodGhpcy5wYWdpbmF0ZT8uY3VycmVudFBhZ2UpO1xuICB9XG5cbiAgZ29Ub1ByZXZpb3VzUGFnZSgpIHtcblxuICAgIGlmICghdGhpcy5oYXNQcmV2aW91cykgcmV0dXJuO1xuXG4gICAgdGhpcy5nb1RvUHJldmlvdXMuZW1pdCh0aGlzLnBhZ2luYXRlPy5jdXJyZW50UGFnZSk7XG4gIH1cblxuICBnb1RvTmV4dFBhZ2UoKSB7XG5cbiAgICBpZiAoIXRoaXMuaGFzTmV4dCkgcmV0dXJuO1xuXG4gICAgdGhpcy5nb1RvTmV4dC5lbWl0KHRoaXMucGFnaW5hdGU/LmN1cnJlbnRQYWdlKTtcbiAgfVxuXG4gIGdvVG9MYXN0UGFnZSgpIHtcblxuICAgIGlmICghdGhpcy5oYXNOZXh0KSByZXR1cm47XG5cbiAgICB0aGlzLmdvVG9MYXN0LmVtaXQodGhpcy5wYWdpbmF0ZT8uY3VycmVudFBhZ2UpO1xuICB9XG5cbiAgb25QYWdlU2l6ZUNoYW5nZShldmVudDogRXZlbnQpIHtcblxuICAgIGNvbnN0IHNlbGVjdCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MU2VsZWN0RWxlbWVudDtcblxuICAgIGNvbnN0IG5ld1NpemUgPSBOdW1iZXIoc2VsZWN0LnZhbHVlKTtcblxuICAgIGlmIChuZXdTaXplICE9PSB0aGlzLnBhZ2VTaXplKSB7XG5cbiAgICAgIHRoaXMucGFnZVNpemVDaGFuZ2UuZW1pdChuZXdTaXplKTtcbiAgICB9XG4gIH1cbn1cbiIsIjwhLS0gQSBuYXZpZ2F0aW9uIGxhbmRtYXJrLCBzbyB0aGUgYmFyIGlzIHJlYWNoYWJsZSBhcyBvbmUgdGhpbmcgcmF0aGVyIHRoYW4gYXNcbiAgICAgZm91ciB1bmxhYmVsbGVkIGljb24gYnV0dG9ucyBmbG9hdGluZyB1bmRlciB0aGUgZ3JpZC4gLS0+XG48ZGl2IGNsYXNzPVwib25lLWdyaWQtcGFnaW5hdGlvblwiIHJvbGU9XCJuYXZpZ2F0aW9uXCIgYXJpYS1sYWJlbD1cIlBhZ2luYXRpb25cIj5cbiAgICA8ZGl2IGNsYXNzPVwib25lLXBhZ2luYXRpb24tcm93XCI+XG4gICAgICAgIEBpZiAocGFnaW5hdGU/LmZpcnN0Um93SW5kZXggPiAwICYmIHBhZ2luYXRlPy5sYXN0Um93SW5kZXggPiAwICYmIHBhZ2luYXRlPy50b3RhbCA+IDApIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvbmUtcGFnaW5hdGlvbi1jb2x1bW5zLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9uZS1wYWdpbmF0aW9uLWNvbHVtblwiPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBwYWdpbmF0ZT8uZmlyc3RSb3dJbmRleCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+LTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgcGFnaW5hdGU/Lmxhc3RSb3dJbmRleCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgJm5ic3A7PHNwYW4+Lzwvc3Bhbj4mbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgcGFnaW5hdGU/LnRvdGFsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiBjbGFzcz1cIm9uZS1wYWdpbmF0aW9uLWNvbHVtbnMtZ3JvdXBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvbmUtcGFnaW5hdGlvbi1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgICA8IS0tIGB0eXBlPVwiYnV0dG9uXCJgIHNvIHRoZSBiYXIgY2Fubm90IHN1Ym1pdCBhIHN1cnJvdW5kaW5nIGZvcm0sXG4gICAgICAgICAgICAgICAgICAgICBhIHJlYWwgYGRpc2FibGVkYCByYXRoZXIgdGhhbiBhIGNsYXNzIHRoYXQgb25seSBzdG9wcyB0aGVcbiAgICAgICAgICAgICAgICAgICAgIG1vdXNlLCBhbmQgYSBuYW1lIG9uIGV2ZXJ5IGljb24tb25seSBjb250cm9sLiAtLT5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm9uZS1wYWdpbmF0aW9uLWJ0blwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJGaXJzdCBwYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJGaXJzdCBwYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFoYXNQcmV2aW91c1wiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaGFzUHJldmlvdXNcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29Ub0ZpcnN0UGFnZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsdWNpZGUtaWNvbiBuYW1lPVwiY2hldnJvbi1maXJzdFwiIFtzaXplXT1cIjE2XCIgW3N0cm9rZVdpZHRoXT1cIjJcIj48L2x1Y2lkZS1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwib25lLXBhZ2luYXRpb24tYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlByZXZpb3VzIHBhZ2VcIlxuICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIlByZXZpb3VzIHBhZ2VcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWhhc1ByZXZpb3VzXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFoYXNQcmV2aW91c1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb1RvUHJldmlvdXNQYWdlKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGx1Y2lkZS1pY29uIG5hbWU9XCJjaGV2cm9uLWxlZnRcIiBbc2l6ZV09XCIxNlwiIFtzdHJva2VXaWR0aF09XCIyXCI+PC9sdWNpZGUtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPCEtLSBBbm5vdW5jZWQgYXMgYSBsaXZlIHJlZ2lvbjogdGhlIG51bWJlcnMgYXJlIHRoZSBvbmx5IGZlZWRiYWNrIGFcbiAgICAgICAgICAgICAgICAgc2NyZWVuIHJlYWRlciBnZXRzIHRoYXQgdGhlIHBhZ2UgYWN0dWFsbHkgY2hhbmdlZC4gLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib25lLXBhZ2luYXRpb24tY29sdW1uXCIgcm9sZT1cInN0YXR1c1wiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiPlxuICAgICAgICAgICAgICAgICZuYnNwOzxzcGFuIGNsYXNzPVwib25lLWdyaWQtdmlzdWFsbHktaGlkZGVuXCI+UGFnZSA8L3NwYW4+e3sgcGFnaW5hdGU/LmN1cnJlbnRQYWdlIH19PHNwYW4+Lzwvc3Bhbj57eyBwYWdpbmF0ZT8ubGFzdFBhZ2UgfX0mbmJzcDtcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9uZS1wYWdpbmF0aW9uLWNvbHVtblwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwib25lLXBhZ2luYXRpb24tYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIk5leHQgcGFnZVwiXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiTmV4dCBwYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFoYXNOZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFoYXNOZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9OZXh0UGFnZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgICA8bHVjaWRlLWljb24gbmFtZT1cImNoZXZyb24tcmlnaHRcIiBbc2l6ZV09XCIxNlwiIFtzdHJva2VXaWR0aF09XCIyXCI+PC9sdWNpZGUtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm9uZS1wYWdpbmF0aW9uLWJ0blwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJMYXN0IHBhZ2VcIlxuICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIkxhc3QgcGFnZVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaGFzTmV4dFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaGFzTmV4dFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb1RvTGFzdFBhZ2UoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgPGx1Y2lkZS1pY29uIG5hbWU9XCJjaGV2cm9uLWxhc3RcIiBbc2l6ZV09XCIxNlwiIFtzdHJva2VXaWR0aF09XCIyXCI+PC9sdWNpZGUtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9uZS1wYWdpbmF0aW9uLWNvbHVtbnMtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib25lLXBhZ2luYXRpb24tY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gYFtzZWxlY3RlZF1gIHBlciBvcHRpb24sIG5vdCBgW3ZhbHVlXWAgb24gdGhlIHNlbGVjdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIG9wdGlvbnMgcmVuZGVyZWQgYnkgYEBmb3JgLCB0aGUgc2VsZWN0J3MgdmFsdWUgaXNcbiAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgYmVmb3JlIHRoZXkgZXhpc3QgYW5kIGRvZXMgbm90IHN0aWNrLiAtLT5cbiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBuYW1lPVwicm93LXBlci1wYWdlXCIgYXJpYS1sYWJlbD1cIlJvd3MgcGVyIHBhZ2VcIiAoY2hhbmdlKT1cIm9uUGFnZVNpemVDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoc2l6ZSBvZiBwYWdlU2l6ZU9wdGlvbnM7IHRyYWNrIHNpemUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJzaXplXCIgW3NlbGVjdGVkXT1cInNpemUgPT09IHBhZ2VTaXplXCI+e3sgc2l6ZSB9fSByb3dzPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { NgClass } from '@angular/common';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
import * as i1 from "../../core/services/one-grid-cell.service";
|
|
4
|
-
import * as i2 from "@angular/common";
|
|
5
5
|
export class OneGridRowActionComponent {
|
|
6
6
|
constructor(cellService) {
|
|
7
7
|
this.cellService = cellService;
|
|
@@ -183,11 +183,11 @@ export class OneGridRowActionComponent {
|
|
|
183
183
|
this.onRowCellOption.emit(data);
|
|
184
184
|
}
|
|
185
185
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridRowActionComponent, deps: [{ token: i1.OneGridCellService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
186
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: OneGridRowActionComponent, selector: "one-grid-row-action", inputs: { column: "column", node: "node", allowedEdit: "allowedEdit", masterDetail: "masterDetail", masterNode: "masterNode", cellRendererParams: "cellRendererParams", gridType: "gridType", context: "context" }, outputs: { onRowGotoDetail: "onRowGotoDetail", onRowAddNew: "onRowAddNew", onRowView: "onRowView", onRowLocation: "onRowLocation", onRowDocument: "onRowDocument", onRowCopy: "onRowCopy", onRowDelete: "onRowDelete", onRowGotoList: "onRowGotoList", onRowEdit: "onRowEdit", onRowPrint: "onRowPrint", onRowHistory: "onRowHistory", onRowOption: "onRowOption", onRowLanguage: "onRowLanguage", onRowCellOption: "onRowCellOption" }, ngImport: i0, template: "@if ((cellRendererParams && node?.leaf && !column?.autoGroupField && !(node.group && node.leafGroup)) || (column?.rowActionLevels?.includes(node.level) && column?.autoGroupField)) {\n <div class=\"btn-action-container\">\n\n <!-- Expansion Button Status -->\n @if ((cellRendererParams?.detailActiveButtonStatus == 1 && !(detailActiveExcludeLevels?.has(node.level)))) {\n <!-- A button, not an <a> with a click handler: it has no href, so\n it was neither focusable nor operable from the keyboard. -->\n <button\n type=\"button\"\n class=\"btn-action btn-action-plain me-2\"\n [attr.aria-expanded]=\"node.detailActive\"\n [attr.aria-label]=\"node.detailActive ? 'Collapse row' : 'Expand row'\"\n [title]=\"node.detailActive ? 'Collapse' : 'Expand'\"\n (click)=\"invokeRowToggleDetailActiveExpand(node)\">\n\n <i class=\"bi\" [ngClass]=\"{ 'bi-chevron-down': node.detailActive, 'bi-chevron-right': !node.detailActive }\"></i>\n </button>\n }\n\n <!-- Goto Detail Button Status -->\n @if ((cellRendererParams?.gotoDetailButtonStatus == 1 && !(gotoDetailExcludeLevels?.has(node.level))) && (!hideActionButton || allowedEdit)) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [attr.aria-label]=\"labels.gotoDetail\"\n [title]=\"labels.gotoDetail\"\n (click)=\"invokeRowActionGotoDetail(node, column)\">\n\n <i class=\"bi bi-list-task\"></i>\n </button>\n }\n\n <!-- Add New Button Status -->\n @if ((cellRendererParams?.addNewButtonStatus == 1 && !(addNewExcludeLevels?.has(node.level))) && (!hideActionButton || allowedEdit)) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"actionDisabled\"\n [disabled]=\"actionDisabled\"\n [attr.aria-label]=\"labels.addNew\"\n [title]=\"labels.addNew\"\n (click)=\"invokeRowActionAddNew(node, column)\">\n\n <i class=\"bi bi-plus\"></i>\n </button>\n }\n\n <!-- View Button Status -->\n @if (cellRendererParams?.viewButtonStatus == 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [attr.aria-label]=\"labels.view\"\n [title]=\"labels.view\"\n (click)=\"invokeRowActionView(node, column)\">\n\n <i class=\"bi bi-eye\"></i>\n </button>\n }\n @if (cellRendererParams?.locationButtonStatus == 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [attr.aria-label]=\"labels.location\"\n [title]=\"labels.location\"\n (click)=\"invokeRowActionLocation(node, column)\">\n\n <i class=\"bi bi-geo-alt\"></i>\n </button>\n }\n\n <!-- Document Button Status -->\n @if (cellRendererParams?.documentButtonStatus == 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [attr.aria-label]=\"labels.document\"\n [title]=\"labels.document\"\n (click)=\"invokeRowActionDocument(node, column)\">\n\n <i class=\"bi bi-file-earmark-text\"></i>\n </button>\n }\n\n <!-- Copy Button Status -->\n @if (cellRendererParams?.copyButtonStatus == 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [attr.aria-label]=\"labels.copy\"\n [title]=\"labels.copy\"\n (click)=\"invokeRowActionCopy(node, column)\">\n\n <i class=\"bi bi-files\"></i>\n </button>\n }\n\n\n <!-- Delete Button Status -->\n @if (cellRendererParams?.deleteButtonStatus == 1 && (!hideActionButton || allowedEdit)) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-danger\"\n [class.disabled]=\"actionDisabled\"\n [disabled]=\"actionDisabled\"\n [attr.aria-label]=\"labels.delete\"\n [title]=\"labels.delete\"\n (click)=\"invokeRowActionDelete(node, column)\">\n\n <i class=\"bi bi-trash3\"></i>\n </button>\n }\n\n <!-- Goto List Button Status -->\n @if (cellRendererParams?.gotoListButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-success\"\n [attr.aria-label]=\"labels.gotoList\"\n [title]=\"labels.gotoList\"\n (click)=\"invokeRowActionGotoList(node, column)\">\n\n <i class=\"bi bi-list-ul\"></i>\n </button>\n }\n\n <!-- Edit Button Status -->\n @if (cellRendererParams?.editButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"actionDisabled\"\n [disabled]=\"actionDisabled\"\n [attr.aria-label]=\"labels.edit\"\n [title]=\"labels.edit\"\n (click)=\"invokeRowActionEdit(node, column)\">\n\n <i class=\"bi bi-pencil\"></i>\n </button>\n }\n\n <!-- Print Button Status -->\n @if (cellRendererParams?.printButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"actionDisabled\"\n [disabled]=\"actionDisabled\"\n [attr.aria-label]=\"labels.print\"\n [title]=\"labels.print\"\n (click)=\"invokeRowActionPrint(node, column)\">\n\n <i class=\"bi bi-printer\"></i>\n </button>\n }\n\n <!-- History Button Status -->\n @if (cellRendererParams?.historyButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"actionDisabled\"\n [disabled]=\"actionDisabled\"\n [attr.aria-label]=\"labels.history\"\n [title]=\"labels.history\"\n (click)=\"invokeRowActionHistory(node, column)\">\n\n <i class=\"bi bi-clock-history\"></i>\n </button>\n }\n\n <!-- Option Button Status -->\n @if (cellRendererParams?.optionButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"actionDisabled\"\n [disabled]=\"actionDisabled\"\n [attr.aria-label]=\"labels.option\"\n [title]=\"labels.option\"\n (click)=\"invokeRowActionOption(node, column)\">\n\n <i class=\"bi bi-three-dots-vertical\"></i>\n </button>\n }\n\n <!-- Language Button Status -->\n @if (cellRendererParams?.languageButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"actionDisabled\"\n [disabled]=\"actionDisabled\"\n [attr.aria-label]=\"labels.language\"\n [title]=\"labels.language\"\n (click)=\"invokeRowActionLanguage(node, column)\">\n\n <i class=\"bi bi-translate\"></i>\n </button>\n }\n\n <!-- Cell Optoion Button Status (Context Menu) -->\n @if (cellRendererParams?.cellOptionButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary border-0 text-body\"\n [style.background]=\"'transparent'\"\n [class.disabled]=\"actionDisabled\"\n [disabled]=\"actionDisabled\"\n [attr.aria-label]=\"labels.cellOption\"\n [title]=\"labels.cellOption\"\n (click)=\"invokeRowActionCellOption(node, column)\">\n\n <i class=\"bi bi-three-dots-vertical\"></i>\n </button>\n }\n </div>\n}", styles: [""], dependencies: [{ kind: "directive", type:
|
|
186
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: OneGridRowActionComponent, isStandalone: true, selector: "one-grid-row-action", inputs: { column: "column", node: "node", allowedEdit: "allowedEdit", masterDetail: "masterDetail", masterNode: "masterNode", cellRendererParams: "cellRendererParams", gridType: "gridType", context: "context" }, outputs: { onRowGotoDetail: "onRowGotoDetail", onRowAddNew: "onRowAddNew", onRowView: "onRowView", onRowLocation: "onRowLocation", onRowDocument: "onRowDocument", onRowCopy: "onRowCopy", onRowDelete: "onRowDelete", onRowGotoList: "onRowGotoList", onRowEdit: "onRowEdit", onRowPrint: "onRowPrint", onRowHistory: "onRowHistory", onRowOption: "onRowOption", onRowLanguage: "onRowLanguage", onRowCellOption: "onRowCellOption" }, ngImport: i0, template: "@if ((cellRendererParams && node?.leaf && !column?.autoGroupField && !(node.group && node.leafGroup)) || (column?.rowActionLevels?.includes(node.level) && column?.autoGroupField)) {\n <div class=\"btn-action-container\">\n\n <!-- Expansion Button Status -->\n @if ((cellRendererParams?.detailActiveButtonStatus == 1 && !(detailActiveExcludeLevels?.has(node.level)))) {\n <!-- A button, not an <a> with a click handler: it has no href, so\n it was neither focusable nor operable from the keyboard. -->\n <button\n type=\"button\"\n class=\"btn-action btn-action-plain me-2\"\n [attr.aria-expanded]=\"node.detailActive\"\n [attr.aria-label]=\"node.detailActive ? 'Collapse row' : 'Expand row'\"\n [title]=\"node.detailActive ? 'Collapse' : 'Expand'\"\n (click)=\"invokeRowToggleDetailActiveExpand(node)\">\n\n <i class=\"bi\" [ngClass]=\"{ 'bi-chevron-down': node.detailActive, 'bi-chevron-right': !node.detailActive }\"></i>\n </button>\n }\n\n <!-- Goto Detail Button Status -->\n @if ((cellRendererParams?.gotoDetailButtonStatus == 1 && !(gotoDetailExcludeLevels?.has(node.level))) && (!hideActionButton || allowedEdit)) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [attr.aria-label]=\"labels.gotoDetail\"\n [title]=\"labels.gotoDetail\"\n (click)=\"invokeRowActionGotoDetail(node, column)\">\n\n <i class=\"bi bi-list-task\"></i>\n </button>\n }\n\n <!-- Add New Button Status -->\n @if ((cellRendererParams?.addNewButtonStatus == 1 && !(addNewExcludeLevels?.has(node.level))) && (!hideActionButton || allowedEdit)) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"actionDisabled\"\n [disabled]=\"actionDisabled\"\n [attr.aria-label]=\"labels.addNew\"\n [title]=\"labels.addNew\"\n (click)=\"invokeRowActionAddNew(node, column)\">\n\n <i class=\"bi bi-plus\"></i>\n </button>\n }\n\n <!-- View Button Status -->\n @if (cellRendererParams?.viewButtonStatus == 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [attr.aria-label]=\"labels.view\"\n [title]=\"labels.view\"\n (click)=\"invokeRowActionView(node, column)\">\n\n <i class=\"bi bi-eye\"></i>\n </button>\n }\n @if (cellRendererParams?.locationButtonStatus == 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [attr.aria-label]=\"labels.location\"\n [title]=\"labels.location\"\n (click)=\"invokeRowActionLocation(node, column)\">\n\n <i class=\"bi bi-geo-alt\"></i>\n </button>\n }\n\n <!-- Document Button Status -->\n @if (cellRendererParams?.documentButtonStatus == 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [attr.aria-label]=\"labels.document\"\n [title]=\"labels.document\"\n (click)=\"invokeRowActionDocument(node, column)\">\n\n <i class=\"bi bi-file-earmark-text\"></i>\n </button>\n }\n\n <!-- Copy Button Status -->\n @if (cellRendererParams?.copyButtonStatus == 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [attr.aria-label]=\"labels.copy\"\n [title]=\"labels.copy\"\n (click)=\"invokeRowActionCopy(node, column)\">\n\n <i class=\"bi bi-files\"></i>\n </button>\n }\n\n\n <!-- Delete Button Status -->\n @if (cellRendererParams?.deleteButtonStatus == 1 && (!hideActionButton || allowedEdit)) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-danger\"\n [class.disabled]=\"actionDisabled\"\n [disabled]=\"actionDisabled\"\n [attr.aria-label]=\"labels.delete\"\n [title]=\"labels.delete\"\n (click)=\"invokeRowActionDelete(node, column)\">\n\n <i class=\"bi bi-trash3\"></i>\n </button>\n }\n\n <!-- Goto List Button Status -->\n @if (cellRendererParams?.gotoListButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-success\"\n [attr.aria-label]=\"labels.gotoList\"\n [title]=\"labels.gotoList\"\n (click)=\"invokeRowActionGotoList(node, column)\">\n\n <i class=\"bi bi-list-ul\"></i>\n </button>\n }\n\n <!-- Edit Button Status -->\n @if (cellRendererParams?.editButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"actionDisabled\"\n [disabled]=\"actionDisabled\"\n [attr.aria-label]=\"labels.edit\"\n [title]=\"labels.edit\"\n (click)=\"invokeRowActionEdit(node, column)\">\n\n <i class=\"bi bi-pencil\"></i>\n </button>\n }\n\n <!-- Print Button Status -->\n @if (cellRendererParams?.printButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"actionDisabled\"\n [disabled]=\"actionDisabled\"\n [attr.aria-label]=\"labels.print\"\n [title]=\"labels.print\"\n (click)=\"invokeRowActionPrint(node, column)\">\n\n <i class=\"bi bi-printer\"></i>\n </button>\n }\n\n <!-- History Button Status -->\n @if (cellRendererParams?.historyButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"actionDisabled\"\n [disabled]=\"actionDisabled\"\n [attr.aria-label]=\"labels.history\"\n [title]=\"labels.history\"\n (click)=\"invokeRowActionHistory(node, column)\">\n\n <i class=\"bi bi-clock-history\"></i>\n </button>\n }\n\n <!-- Option Button Status -->\n @if (cellRendererParams?.optionButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"actionDisabled\"\n [disabled]=\"actionDisabled\"\n [attr.aria-label]=\"labels.option\"\n [title]=\"labels.option\"\n (click)=\"invokeRowActionOption(node, column)\">\n\n <i class=\"bi bi-three-dots-vertical\"></i>\n </button>\n }\n\n <!-- Language Button Status -->\n @if (cellRendererParams?.languageButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"actionDisabled\"\n [disabled]=\"actionDisabled\"\n [attr.aria-label]=\"labels.language\"\n [title]=\"labels.language\"\n (click)=\"invokeRowActionLanguage(node, column)\">\n\n <i class=\"bi bi-translate\"></i>\n </button>\n }\n\n <!-- Cell Optoion Button Status (Context Menu) -->\n @if (cellRendererParams?.cellOptionButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary border-0 text-body\"\n [style.background]=\"'transparent'\"\n [class.disabled]=\"actionDisabled\"\n [disabled]=\"actionDisabled\"\n [attr.aria-label]=\"labels.cellOption\"\n [title]=\"labels.cellOption\"\n (click)=\"invokeRowActionCellOption(node, column)\">\n\n <i class=\"bi bi-three-dots-vertical\"></i>\n </button>\n }\n </div>\n}", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
187
187
|
}
|
|
188
188
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridRowActionComponent, decorators: [{
|
|
189
189
|
type: Component,
|
|
190
|
-
args: [{ standalone:
|
|
190
|
+
args: [{ standalone: true, imports: [NgClass], selector: 'one-grid-row-action', template: "@if ((cellRendererParams && node?.leaf && !column?.autoGroupField && !(node.group && node.leafGroup)) || (column?.rowActionLevels?.includes(node.level) && column?.autoGroupField)) {\n <div class=\"btn-action-container\">\n\n <!-- Expansion Button Status -->\n @if ((cellRendererParams?.detailActiveButtonStatus == 1 && !(detailActiveExcludeLevels?.has(node.level)))) {\n <!-- A button, not an <a> with a click handler: it has no href, so\n it was neither focusable nor operable from the keyboard. -->\n <button\n type=\"button\"\n class=\"btn-action btn-action-plain me-2\"\n [attr.aria-expanded]=\"node.detailActive\"\n [attr.aria-label]=\"node.detailActive ? 'Collapse row' : 'Expand row'\"\n [title]=\"node.detailActive ? 'Collapse' : 'Expand'\"\n (click)=\"invokeRowToggleDetailActiveExpand(node)\">\n\n <i class=\"bi\" [ngClass]=\"{ 'bi-chevron-down': node.detailActive, 'bi-chevron-right': !node.detailActive }\"></i>\n </button>\n }\n\n <!-- Goto Detail Button Status -->\n @if ((cellRendererParams?.gotoDetailButtonStatus == 1 && !(gotoDetailExcludeLevels?.has(node.level))) && (!hideActionButton || allowedEdit)) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [attr.aria-label]=\"labels.gotoDetail\"\n [title]=\"labels.gotoDetail\"\n (click)=\"invokeRowActionGotoDetail(node, column)\">\n\n <i class=\"bi bi-list-task\"></i>\n </button>\n }\n\n <!-- Add New Button Status -->\n @if ((cellRendererParams?.addNewButtonStatus == 1 && !(addNewExcludeLevels?.has(node.level))) && (!hideActionButton || allowedEdit)) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"actionDisabled\"\n [disabled]=\"actionDisabled\"\n [attr.aria-label]=\"labels.addNew\"\n [title]=\"labels.addNew\"\n (click)=\"invokeRowActionAddNew(node, column)\">\n\n <i class=\"bi bi-plus\"></i>\n </button>\n }\n\n <!-- View Button Status -->\n @if (cellRendererParams?.viewButtonStatus == 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [attr.aria-label]=\"labels.view\"\n [title]=\"labels.view\"\n (click)=\"invokeRowActionView(node, column)\">\n\n <i class=\"bi bi-eye\"></i>\n </button>\n }\n @if (cellRendererParams?.locationButtonStatus == 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [attr.aria-label]=\"labels.location\"\n [title]=\"labels.location\"\n (click)=\"invokeRowActionLocation(node, column)\">\n\n <i class=\"bi bi-geo-alt\"></i>\n </button>\n }\n\n <!-- Document Button Status -->\n @if (cellRendererParams?.documentButtonStatus == 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [attr.aria-label]=\"labels.document\"\n [title]=\"labels.document\"\n (click)=\"invokeRowActionDocument(node, column)\">\n\n <i class=\"bi bi-file-earmark-text\"></i>\n </button>\n }\n\n <!-- Copy Button Status -->\n @if (cellRendererParams?.copyButtonStatus == 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [attr.aria-label]=\"labels.copy\"\n [title]=\"labels.copy\"\n (click)=\"invokeRowActionCopy(node, column)\">\n\n <i class=\"bi bi-files\"></i>\n </button>\n }\n\n\n <!-- Delete Button Status -->\n @if (cellRendererParams?.deleteButtonStatus == 1 && (!hideActionButton || allowedEdit)) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-danger\"\n [class.disabled]=\"actionDisabled\"\n [disabled]=\"actionDisabled\"\n [attr.aria-label]=\"labels.delete\"\n [title]=\"labels.delete\"\n (click)=\"invokeRowActionDelete(node, column)\">\n\n <i class=\"bi bi-trash3\"></i>\n </button>\n }\n\n <!-- Goto List Button Status -->\n @if (cellRendererParams?.gotoListButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-success\"\n [attr.aria-label]=\"labels.gotoList\"\n [title]=\"labels.gotoList\"\n (click)=\"invokeRowActionGotoList(node, column)\">\n\n <i class=\"bi bi-list-ul\"></i>\n </button>\n }\n\n <!-- Edit Button Status -->\n @if (cellRendererParams?.editButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"actionDisabled\"\n [disabled]=\"actionDisabled\"\n [attr.aria-label]=\"labels.edit\"\n [title]=\"labels.edit\"\n (click)=\"invokeRowActionEdit(node, column)\">\n\n <i class=\"bi bi-pencil\"></i>\n </button>\n }\n\n <!-- Print Button Status -->\n @if (cellRendererParams?.printButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"actionDisabled\"\n [disabled]=\"actionDisabled\"\n [attr.aria-label]=\"labels.print\"\n [title]=\"labels.print\"\n (click)=\"invokeRowActionPrint(node, column)\">\n\n <i class=\"bi bi-printer\"></i>\n </button>\n }\n\n <!-- History Button Status -->\n @if (cellRendererParams?.historyButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"actionDisabled\"\n [disabled]=\"actionDisabled\"\n [attr.aria-label]=\"labels.history\"\n [title]=\"labels.history\"\n (click)=\"invokeRowActionHistory(node, column)\">\n\n <i class=\"bi bi-clock-history\"></i>\n </button>\n }\n\n <!-- Option Button Status -->\n @if (cellRendererParams?.optionButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"actionDisabled\"\n [disabled]=\"actionDisabled\"\n [attr.aria-label]=\"labels.option\"\n [title]=\"labels.option\"\n (click)=\"invokeRowActionOption(node, column)\">\n\n <i class=\"bi bi-three-dots-vertical\"></i>\n </button>\n }\n\n <!-- Language Button Status -->\n @if (cellRendererParams?.languageButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary\"\n [class.disabled]=\"actionDisabled\"\n [disabled]=\"actionDisabled\"\n [attr.aria-label]=\"labels.language\"\n [title]=\"labels.language\"\n (click)=\"invokeRowActionLanguage(node, column)\">\n\n <i class=\"bi bi-translate\"></i>\n </button>\n }\n\n <!-- Cell Optoion Button Status (Context Menu) -->\n @if (cellRendererParams?.cellOptionButtonStatus === 1) {\n <button\n type=\"button\"\n class=\"btn-action btn-action-primary border-0 text-body\"\n [style.background]=\"'transparent'\"\n [class.disabled]=\"actionDisabled\"\n [disabled]=\"actionDisabled\"\n [attr.aria-label]=\"labels.cellOption\"\n [title]=\"labels.cellOption\"\n (click)=\"invokeRowActionCellOption(node, column)\">\n\n <i class=\"bi bi-three-dots-vertical\"></i>\n </button>\n }\n </div>\n}" }]
|
|
191
191
|
}], ctorParameters: () => [{ type: i1.OneGridCellService }], propDecorators: { column: [{
|
|
192
192
|
type: Input,
|
|
193
193
|
args: [{ required: true }]
|
|
@@ -236,4 +236,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
236
236
|
}], onRowCellOption: [{
|
|
237
237
|
type: Output
|
|
238
238
|
}] } });
|
|
239
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWdyaWQtcm93LWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2NvbXBvbmVudHMvb25lLWdyaWQtcm93LWFjdGlvbi9vbmUtZ3JpZC1yb3ctYWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZS1ncmlkL3NyYy9saWIvY29tcG9uZW50cy9vbmUtZ3JpZC1yb3ctYWN0aW9uL29uZS1ncmlkLXJvdy1hY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVkvRSxNQUFNLE9BQU8seUJBQXlCO0lBNERwQyxZQUE2QixXQUErQjtRQUEvQixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFyRGpDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQy9DLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGVBQVUsR0FBa0IsSUFBSSxDQUFDO1FBRWpDLGFBQVEsR0FBZ0IsSUFBSSxDQUFDO1FBQzdCLFlBQU8sR0FBUSxJQUFJLENBQUM7UUFFN0I7O1dBRUc7UUFDTyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUE0QixDQUFDO1FBQy9ELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDM0QsY0FBUyxHQUFHLElBQUksWUFBWSxFQUE0QixDQUFDO1FBQ3pELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDN0Qsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUM3RCxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDekQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUMzRCxrQkFBYSxHQUFHLElB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QUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELG1CQUFtQixDQUFDLElBQW1CLEVBQUUsTUFBdUI7UUFFOUQsSUFBSSxJQUFJLEdBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELHVCQUF1QixDQUFDLElBQW1CLEVBQUUsTUFBdUI7UUFFbEUsSUFBSSxJQUFJLEdBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELHVCQUF1QixDQUFDLElBQW1CLEVBQUUsTUFBdUI7UUFFbEUsSUFBSSxJQUFJLEdBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELG1CQUFtQixDQUFDLElBQW1CLEVBQUUsTUFBdUI7UUFFOUQsSUFBSSxJQUFJLEdBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELHFCQUFxQixDQUFDLElBQW1CLEVBQUUsTUFBdUI7UUFFaEUsSUFBSSxJQUFJLEdBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELHVCQUF1QixDQUFDLElBQW1CLEVBQUUsTUFBdUI7UUFFbEUsSUFBSSxJQUFJLEdBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELG1CQUFtQixDQUFDLElBQW1CLEVBQUUsTUFBdUI7UUFFOUQsSUFBSSxJQUFJLEdBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQW1CLEVBQUUsTUFBdUI7UUFFL0QsSUFBSSxJQUFJLEdBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELHNCQUFzQixDQUFDLElBQW1CLEVBQUUsTUFBdUI7UUFFakUsSUFBSSxJQUFJLEdBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELHFCQUFxQixDQUFDLElBQW1CLEVBQUUsTUFBdUI7UUFFaEUsSUFBSSxJQUFJLEdBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELHVCQUF1QixDQUFDLElBQW1CLEVBQUUsTUFBdUI7UUFFbEUsSUFBSSxJQUFJLEdBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELHlCQUF5QixDQUFDLElBQW1CLEVBQUUsTUFBdUI7UUFFcEUsSUFBSSxJQUFJLEdBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQzsrR0E3UVUseUJBQXlCO21HQUF6Qix5QkFBeUIsd3JCQ1p0QyxxaFJBeU5DOzs0RkQ3TVkseUJBQXlCO2tCQU5yQyxTQUFTO2lDQUNJLEtBQUssWUFDUCxxQkFBcUI7dUZBU0osTUFBTTtzQkFBaEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ0UsSUFBSTtzQkFBOUIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ0UsV0FBVztzQkFBckMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0ksZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT25lUm93Tm9kZSB9IGZyb20gJy4uLy4uL2NvcmUvaW5zdGFudHMvb25lLXJvdy1ub2RlLmNsYXNzJztcbmltcG9ydCB7IE9uZUdyaWRSb3dBY3Rpb25FdmVudCwgT25lR3JpZFR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscy9vbmUtZ3JpZC10eXBlcy5tb2RlbCc7XG5pbXBvcnQgeyBPbmVDZWxsUmVuZGVyZXJQYXJhbXMsIE9uZUNvbHVtbkRlZiB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL29uZS1jb2x1bW4tZGVmLXR5cGVzLm1vZGVsJztcbmltcG9ydCB7IE9uZUdyaWRDZWxsU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvb25lLWdyaWQtY2VsbC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBzZWxlY3RvcjogJ29uZS1ncmlkLXJvdy1hY3Rpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vb25lLWdyaWQtcm93LWFjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9vbmUtZ3JpZC1yb3ctYWN0aW9uLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBPbmVHcmlkUm93QWN0aW9uQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAvKipcbiAgICogR2V0IE5vZGUgJiBDZWxsIFJlbmRlcmVyIEZyb20gUGFyZW50IENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgY29sdW1uOiBPbmVDb2x1bW5EZWY8VD47XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIG5vZGU6IE9uZVJvd05vZGU8VD47XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGFsbG93ZWRFZGl0OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1hc3RlckRldGFpbDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtYXN0ZXJOb2RlOiBPbmVSb3dOb2RlPFQ+ID0gbnVsbDtcbiAgQElucHV0KCkgY2VsbFJlbmRlcmVyUGFyYW1zOiBPbmVDZWxsUmVuZGVyZXJQYXJhbXM8VD47XG4gIEBJbnB1dCgpIGdyaWRUeXBlOiBPbmVHcmlkVHlwZSA9IG51bGw7XG4gIEBJbnB1dCgpIGNvbnRleHQ6IGFueSA9IG51bGw7XG5cbiAgLyoqXG4gICAqIEJpbmQgRXZlbnQgdG8gUGFyZW50IENvbXBvbmVudFxuICAgKi9cbiAgQE91dHB1dCgpIG9uUm93R290b0RldGFpbCA9IG5ldyBFdmVudEVtaXR0ZXI8T25lR3JpZFJvd0FjdGlvbkV2ZW50PFQ+PigpO1xuICBAT3V0cHV0KCkgb25Sb3dBZGROZXcgPSBuZXcgRXZlbnRFbWl0dGVyPE9uZUdyaWRSb3dBY3Rpb25FdmVudDxUPj4oKTtcbiAgQE91dHB1dCgpIG9uUm93VmlldyA9IG5ldyBFdmVudEVtaXR0ZXI8T25lR3JpZFJvd0FjdGlvbkV2ZW50PFQ+PigpO1xuICBAT3V0cHV0KCkgb25Sb3dMb2NhdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8T25lR3JpZFJvd0FjdGlvbkV2ZW50PFQ+PigpO1xuICBAT3V0cHV0KCkgb25Sb3dEb2N1bWVudCA9IG5ldyBFdmVudEVtaXR0ZXI8T25lR3JpZFJvd0FjdGlvbkV2ZW50PFQ+PigpO1xuICBAT3V0cHV0KCkgb25Sb3dDb3B5ID0gbmV3IEV2ZW50RW1pdHRlcjxPbmVHcmlkUm93QWN0aW9uRXZlbnQ8VD4+KCk7XG4gIEBPdXRwdXQoKSBvblJvd0RlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8T25lR3JpZFJvd0FjdGlvbkV2ZW50PFQ+PigpO1xuICBAT3V0cHV0KCkgb25Sb3dHb3RvTGlzdCA9IG5ldyBFdmVudEVtaXR0ZXI8T25lR3JpZFJvd0FjdGlvbkV2ZW50PFQ+PigpO1xuICBAT3V0cHV0KCkgb25Sb3dFZGl0ID0gbmV3IEV2ZW50RW1pdHRlcjxPbmVHcmlkUm93QWN0aW9uRXZlbnQ8VD4+KCk7XG4gIEBPdXRwdXQoKSBvblJvd1ByaW50ID0gbmV3IEV2ZW50RW1pdHRlcjxPbmVHcmlkUm93QWN0aW9uRXZlbnQ8VD4+KCk7XG4gIEBPdXRwdXQoKSBvblJvd0hpc3RvcnkgPSBuZXcgRXZlbnRFbWl0dGVyPE9uZUdyaWRSb3dBY3Rpb25FdmVudDxUPj4oKTtcbiAgQE91dHB1dCgpIG9uUm93T3B0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxPbmVHcmlkUm93QWN0aW9uRXZlbnQ8VD4+KCk7XG4gIEBPdXRwdXQoKSBvblJvd0xhbmd1YWdlID0gbmV3IEV2ZW50RW1pdHRlcjxPbmVHcmlkUm93QWN0aW9uRXZlbnQ8VD4+KCk7XG4gIEBPdXRwdXQoKSBvblJvd0NlbGxPcHRpb24gPSBuZXcgRXZlbnRFbWl0dGVyPE9uZUdyaWRSb3dBY3Rpb25FdmVudDxUPj4oKTtcblxuICBwcm90ZWN0ZWQgZGV0YWlsQWN0aXZlRXhjbHVkZUxldmVsczogU2V0PG51bWJlcj47XG4gIHByb3RlY3RlZCBnb3RvRGV0YWlsRXhjbHVkZUxldmVsczogU2V0PG51bWJlcj47XG4gIHByb3RlY3RlZCBhZGROZXdFeGNsdWRlTGV2ZWxzOiBTZXQ8bnVtYmVyPjtcblxuICAvKipcbiAgICogQWNjZXNzaWJsZSBuYW1lcyBmb3IgdGhlIGFjdGlvbiBidXR0b25zLlxuICAgKlxuICAgKiBFdmVyeSBvbmUgb2YgdGhlbSBpcyBhbiBpY29uIHdpdGggbm8gdGV4dCwgYW5kIG5vbmUgY2FycmllZCBhIGxhYmVsIOKAlCBhXG4gICAqIHNjcmVlbiByZWFkZXIgYW5ub3VuY2VkIFwiYnV0dG9uXCIgYW5kIG5vdGhpbmcgbW9yZSwgZm91cnRlZW4gdGltZXMgcGVyIHJvdy5cbiAgICogVGhlc2UgYXJlIGFsc28gdGhlIGB0aXRsZWAsIHNvIHRoZSBpY29ucyBhcmUgaWRlbnRpZmlhYmxlIGJ5IHBvaW50ZXIgdG9vLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxhYmVscyA9IHtcbiAgICBnb3RvRGV0YWlsOiAnT3BlbiBkZXRhaWwnLFxuICAgIGFkZE5ldzogJ0FkZCBuZXcgcm93JyxcbiAgICB2aWV3OiAnVmlldyByb3cnLFxuICAgIGxvY2F0aW9uOiAnU2hvdyBsb2NhdGlvbicsXG4gICAgZG9jdW1lbnQ6ICdPcGVuIGRvY3VtZW50JyxcbiAgICBjb3B5OiAnQ29weSByb3cnLFxuICAgIGRlbGV0ZTogJ0RlbGV0ZSByb3cnLFxuICAgIGdvdG9MaXN0OiAnT3BlbiBsaXN0JyxcbiAgICBlZGl0OiAnRWRpdCByb3cnLFxuICAgIHByaW50OiAnUHJpbnQgcm93JyxcbiAgICBoaXN0b3J5OiAnVmlldyBoaXN0b3J5JyxcbiAgICBvcHRpb246ICdSb3cgb3B0aW9ucycsXG4gICAgbGFuZ3VhZ2U6ICdDaGFuZ2UgbGFuZ3VhZ2UnLFxuICAgIGNlbGxPcHRpb246ICdDZWxsIG9wdGlvbnMnLFxuICB9IGFzIGNvbnN0O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY2VsbFNlcnZpY2U6IE9uZUdyaWRDZWxsU2VydmljZSkge31cblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIGNvbHVtbidzIGFjdGlvbiBidXR0b25zIGFyZSBoaWRkZW4gZm9yIHRoaXMgcm93LlxuICAgKlxuICAgKiBUaGUgdGVtcGxhdGVzIHJlYWQgYGNvbHVtbj8uaGlkZUFjdGlvbkJ1dHRvbmAgZGlyZWN0bHksIHdoaWNoIGlzIHRydXRoeSBmb3JcbiAgICogYW55IGZ1bmN0aW9uIOKAlCBzbyBhIHByZWRpY2F0ZSBhc2tpbmcgdG8gaGlkZSB0aGUgYnV0dG9ucyBzaG93ZWQgdGhlbSwgYW5kXG4gICAqIG9uZSBhc2tpbmcgdG8gc2hvdyB0aGVtIHNob3dlZCB0aGVtIHRvby4gUmVzb2x2ZWQgaGVyZSBpbnN0ZWFkLCB3aXRoIHRoZVxuICAgKiBzYW1lIHBhcmFtcyBldmVyeSBvdGhlciByb3ctc2NvcGVkIHByZWRpY2F0ZSBnZXRzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBoaWRlQWN0aW9uQnV0dG9uKCk6IGJvb2xlYW4ge1xuXG4gICAgcmV0dXJuIHRoaXMuY2VsbFNlcnZpY2UuaGlkZUFjdGlvbkJ1dHRvbkZuKHRoaXMuY29sdW1uIGFzIE9uZUNvbHVtbkRlZiwgdGhpcy5ub2RlIGFzIE9uZVJvd05vZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBjb2x1bW4ncyBhY3Rpb24gYnV0dG9ucyBhcmUgZGlzYWJsZWQgZm9yIHRoaXMgcm93LlxuICAgKlxuICAgKiBgZGlzYWJsZWAgdXNlZCB0byBiZSByZXNvbHZlZCBieSBgQ2VsbERpc2FibGVSZXNvbHZlclBpcGVgLCB3aGljaCBidWlsdCBpdHNcbiAgICogb3duIHBhcmFtcyDigJQgYSBkaWZmZXJlbnQgc2V0IGZyb20gZXZlcnkgb3RoZXIgcm93LXNjb3BlZCBwcmVkaWNhdGUuIEl0IGdvZXNcbiAgICogdGhyb3VnaCB0aGUgc2hhcmVkIGJ1aWxkZXIgbm93LCBzbyBgZGlzYWJsZWAgc2VlcyBleGFjdGx5IHdoYXQgYGVkaXRhYmxlYFxuICAgKiBhbmQgYGhpZGVBY3Rpb25CdXR0b25gIHNlZS5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgYWN0aW9uRGlzYWJsZWQoKTogYm9vbGVhbiB7XG5cbiAgICByZXR1cm4gdGhpcy5jZWxsU2VydmljZS5kaXNhYmxlRm4odGhpcy5jb2x1bW4gYXMgT25lQ29sdW1uRGVmLCB0aGlzLm5vZGUgYXMgT25lUm93Tm9kZSkgfHwgIXRoaXMuYWxsb3dlZEVkaXQ7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcblxuICAgIHRoaXMuZGV0YWlsQWN0aXZlRXhjbHVkZUxldmVscyA9IG5ldyBTZXQodGhpcy5jb2x1bW4uY2VsbFJlbmRlcmVyUGFyYW1zPy5kZXRhaWxBY3RpdmVFeGNsdWRlTGV2ZWxzID8/IFtdKVxuICAgIHRoaXMuZ290b0RldGFpbEV4Y2x1ZGVMZXZlbHMgPSBuZXcgU2V0KHRoaXMuY29sdW1uLmNlbGxSZW5kZXJlclBhcmFtcz8uZ290b0RldGFpbEV4Y2x1ZGVMZXZlbHMgPz8gW10pXG4gICAgdGhpcy5hZGROZXdFeGNsdWRlTGV2ZWxzID0gbmV3IFNldCh0aGlzLmNvbHVtbi5jZWxsUmVuZGVyZXJQYXJhbXM/LmFkZE5ld0V4Y2x1ZGVMZXZlbHMgPz8gW10pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXIgSW52b2tlIENsaWNrIEV2ZW50XG4gICAqL1xuICBpbnZva2VSb3dUb2dnbGVEZXRhaWxBY3RpdmVFeHBhbmQobm9kZTogT25lUm93Tm9kZSk6IHZvaWQge1xuXG4gICAgbm9kZS5kZXRhaWxBY3RpdmUgPSAhbm9kZS5kZXRhaWxBY3RpdmU7XG4gIH1cblxuICBpbnZva2VSb3dBY3Rpb25Hb3RvRGV0YWlsKG5vZGU6IE9uZVJvd05vZGU8VD4sIGNvbHVtbjogT25lQ29sdW1uRGVmPFQ+KSB7XG5cbiAgICBsZXQgZGF0YTogT25lR3JpZFJvd0FjdGlvbkV2ZW50ID0geyBub2RlLCBjb2x1bW4sIGRhdGE6IG5vZGUuZGF0YSwgcm93SW5kZXg6IG5vZGUucm93SW5kZXgsIGdyaWRUeXBlOiBudWxsIH07XG5cbiAgICBpZiAodGhpcy5tYXN0ZXJEZXRhaWwpIHtcblxuICAgICAgZGF0YSA9IHsgLi4uZGF0YSwgZ3JpZFR5cGU6IHRoaXMuZ3JpZFR5cGUsIG1hc3Rlck5vZGU6IHRoaXMubWFzdGVyTm9kZSB9O1xuICAgIH1cblxuICAgIHRoaXMub25Sb3dHb3RvRGV0YWlsLmVtaXQoZGF0YSk7XG4gIH1cblxuICBpbnZva2VSb3dBY3Rpb25BZGROZXcobm9kZTogT25lUm93Tm9kZTxUPiwgY29sdW1uOiBPbmVDb2x1bW5EZWY8VD4pIHtcblxuICAgIGxldCBkYXRhOiBPbmVHcmlkUm93QWN0aW9uRXZlbnQgPSB7IG5vZGUsIGNvbHVtbiwgZGF0YTogbm9kZS5kYXRhLCByb3dJbmRleDogbm9kZS5yb3dJbmRleCwgZ3JpZFR5cGU6IG51bGwgfTtcblxuICAgIGlmICh0aGlzLm1hc3RlckRldGFpbCkge1xuXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCBncmlkVHlwZTogdGhpcy5ncmlkVHlwZSwgbWFzdGVyTm9kZTogdGhpcy5tYXN0ZXJOb2RlIH07XG4gICAgfVxuXG4gICAgdGhpcy5vblJvd0FkZE5ldy5lbWl0KGRhdGEpO1xuICB9XG5cbiAgaW52b2tlUm93QWN0aW9uVmlldyhub2RlOiBPbmVSb3dOb2RlPFQ+LCBjb2x1bW46IE9uZUNvbHVtbkRlZjxUPikge1xuXG4gICAgbGV0IGRhdGE6IE9uZUdyaWRSb3dBY3Rpb25FdmVudCA9IHsgbm9kZSwgY29sdW1uLCBkYXRhOiBub2RlLmRhdGEsIHJvd0luZGV4OiBub2RlLnJvd0luZGV4LCBncmlkVHlwZTogbnVsbCB9O1xuXG4gICAgaWYgKHRoaXMubWFzdGVyRGV0YWlsKSB7XG5cbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGdyaWRUeXBlOiB0aGlzLmdyaWRUeXBlLCBtYXN0ZXJOb2RlOiB0aGlzLm1hc3Rlck5vZGUgfTtcbiAgICB9XG5cbiAgICB0aGlzLm9uUm93Vmlldy5lbWl0KGRhdGEpO1xuICB9XG5cbiAgaW52b2tlUm93QWN0aW9uTG9jYXRpb24obm9kZTogT25lUm93Tm9kZTxUPiwgY29sdW1uOiBPbmVDb2x1bW5EZWY8VD4pIHtcblxuICAgIGxldCBkYXRhOiBPbmVHcmlkUm93QWN0aW9uRXZlbnQgPSB7IG5vZGUsIGNvbHVtbiwgZGF0YTogbm9kZS5kYXRhLCByb3dJbmRleDogbm9kZS5yb3dJbmRleCwgZ3JpZFR5cGU6IG51bGwgfTtcblxuICAgIGlmICh0aGlzLm1hc3RlckRldGFpbCkge1xuXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCBncmlkVHlwZTogdGhpcy5ncmlkVHlwZSwgbWFzdGVyTm9kZTogdGhpcy5tYXN0ZXJOb2RlIH07XG4gICAgfVxuXG4gICAgdGhpcy5vblJvd0xvY2F0aW9uLmVtaXQoZGF0YSk7XG4gIH1cblxuICBpbnZva2VSb3dBY3Rpb25Eb2N1bWVudChub2RlOiBPbmVSb3dOb2RlPFQ+LCBjb2x1bW46IE9uZUNvbHVtbkRlZjxUPikge1xuXG4gICAgbGV0IGRhdGE6IE9uZUdyaWRSb3dBY3Rpb25FdmVudCA9IHsgbm9kZSwgY29sdW1uLCBkYXRhOiBub2RlLmRhdGEsIHJvd0luZGV4OiBub2RlLnJvd0luZGV4LCBncmlkVHlwZTogbnVsbCB9O1xuXG4gICAgaWYgKHRoaXMubWFzdGVyRGV0YWlsKSB7XG5cbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGdyaWRUeXBlOiB0aGlzLmdyaWRUeXBlLCBtYXN0ZXJOb2RlOiB0aGlzLm1hc3Rlck5vZGUgfTtcbiAgICB9XG5cbiAgICB0aGlzLm9uUm93RG9jdW1lbnQuZW1pdChkYXRhKTtcbiAgfVxuXG4gIGludm9rZVJvd0FjdGlvbkNvcHkobm9kZTogT25lUm93Tm9kZTxUPiwgY29sdW1uOiBPbmVDb2x1bW5EZWY8VD4pIHtcblxuICAgIGxldCBkYXRhOiBPbmVHcmlkUm93QWN0aW9uRXZlbnQgPSB7IG5vZGUsIGNvbHVtbiwgZGF0YTogbm9kZS5kYXRhLCByb3dJbmRleDogbm9kZS5yb3dJbmRleCwgZ3JpZFR5cGU6IG51bGwgfTtcblxuICAgIGlmICh0aGlzLm1hc3RlckRldGFpbCkge1xuXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCBncmlkVHlwZTogdGhpcy5ncmlkVHlwZSwgbWFzdGVyTm9kZTogdGhpcy5tYXN0ZXJOb2RlIH07XG4gICAgfVxuXG4gICAgdGhpcy5vblJvd0NvcHkuZW1pdChkYXRhKTtcbiAgfVxuXG4gIGludm9rZVJvd0FjdGlvbkRlbGV0ZShub2RlOiBPbmVSb3dOb2RlPFQ+LCBjb2x1bW46IE9uZUNvbHVtbkRlZjxUPikge1xuXG4gICAgbGV0IGRhdGE6IE9uZUdyaWRSb3dBY3Rpb25FdmVudCA9IHsgbm9kZSwgY29sdW1uLCBkYXRhOiBub2RlLmRhdGEsIHJvd0luZGV4OiBub2RlLnJvd0luZGV4LCBncmlkVHlwZTogbnVsbCB9O1xuXG4gICAgaWYgKHRoaXMubWFzdGVyRGV0YWlsKSB7XG5cbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGdyaWRUeXBlOiB0aGlzLmdyaWRUeXBlLCBtYXN0ZXJOb2RlOiB0aGlzLm1hc3Rlck5vZGUgfTtcbiAgICB9XG5cbiAgICB0aGlzLm9uUm93RGVsZXRlLmVtaXQoZGF0YSk7XG4gIH1cblxuICBpbnZva2VSb3dBY3Rpb25Hb3RvTGlzdChub2RlOiBPbmVSb3dOb2RlPFQ+LCBjb2x1bW46IE9uZUNvbHVtbkRlZjxUPikge1xuXG4gICAgbGV0IGRhdGE6IE9uZUdyaWRSb3dBY3Rpb25FdmVudCA9IHsgbm9kZSwgY29sdW1uLCBkYXRhOiBub2RlLmRhdGEsIHJvd0luZGV4OiBub2RlLnJvd0luZGV4LCBncmlkVHlwZTogbnVsbCB9O1xuXG4gICAgaWYgKHRoaXMubWFzdGVyRGV0YWlsKSB7XG5cbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGdyaWRUeXBlOiB0aGlzLmdyaWRUeXBlLCBtYXN0ZXJOb2RlOiB0aGlzLm1hc3Rlck5vZGUgfTtcbiAgICB9XG5cbiAgICB0aGlzLm9uUm93R290b0xpc3QuZW1pdChkYXRhKTtcbiAgfVxuXG4gIGludm9rZVJvd0FjdGlvbkVkaXQobm9kZTogT25lUm93Tm9kZTxUPiwgY29sdW1uOiBPbmVDb2x1bW5EZWY8VD4pIHtcblxuICAgIGxldCBkYXRhOiBPbmVHcmlkUm93QWN0aW9uRXZlbnQgPSB7IG5vZGUsIGNvbHVtbiwgZGF0YTogbm9kZS5kYXRhLCByb3dJbmRleDogbm9kZS5yb3dJbmRleCwgZ3JpZFR5cGU6IG51bGwgfTtcblxuICAgIGlmICh0aGlzLm1hc3RlckRldGFpbCkge1xuXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCBncmlkVHlwZTogdGhpcy5ncmlkVHlwZSwgbWFzdGVyTm9kZTogdGhpcy5tYXN0ZXJOb2RlIH07XG4gICAgfVxuXG4gICAgdGhpcy5vblJvd0VkaXQuZW1pdChkYXRhKTtcbiAgfVxuXG4gIGludm9rZVJvd0FjdGlvblByaW50KG5vZGU6IE9uZVJvd05vZGU8VD4sIGNvbHVtbjogT25lQ29sdW1uRGVmPFQ+KSB7XG5cbiAgICBsZXQgZGF0YTogT25lR3JpZFJvd0FjdGlvbkV2ZW50ID0geyBub2RlLCBjb2x1bW4sIGRhdGE6IG5vZGUuZGF0YSwgcm93SW5kZXg6IG5vZGUucm93SW5kZXgsIGdyaWRUeXBlOiBudWxsIH07XG5cbiAgICBpZiAodGhpcy5tYXN0ZXJEZXRhaWwpIHtcblxuICAgICAgZGF0YSA9IHsgLi4uZGF0YSwgZ3JpZFR5cGU6IHRoaXMuZ3JpZFR5cGUsIG1hc3Rlck5vZGU6IHRoaXMubWFzdGVyTm9kZSB9O1xuICAgIH1cblxuICAgIHRoaXMub25Sb3dQcmludC5lbWl0KGRhdGEpO1xuICB9XG5cbiAgaW52b2tlUm93QWN0aW9uSGlzdG9yeShub2RlOiBPbmVSb3dOb2RlPFQ+LCBjb2x1bW46IE9uZUNvbHVtbkRlZjxUPikge1xuXG4gICAgbGV0IGRhdGE6IE9uZUdyaWRSb3dBY3Rpb25FdmVudCA9IHsgbm9kZSwgY29sdW1uLCBkYXRhOiBub2RlLmRhdGEsIHJvd0luZGV4OiBub2RlLnJvd0luZGV4LCBncmlkVHlwZTogbnVsbCB9O1xuXG4gICAgaWYgKHRoaXMubWFzdGVyRGV0YWlsKSB7XG5cbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGdyaWRUeXBlOiB0aGlzLmdyaWRUeXBlLCBtYXN0ZXJOb2RlOiB0aGlzLm1hc3Rlck5vZGUgfTtcbiAgICB9XG5cbiAgICB0aGlzLm9uUm93SGlzdG9yeS5lbWl0KGRhdGEpO1xuICB9XG5cbiAgaW52b2tlUm93QWN0aW9uT3B0aW9uKG5vZGU6IE9uZVJvd05vZGU8VD4sIGNvbHVtbjogT25lQ29sdW1uRGVmPFQ+KSB7XG5cbiAgICBsZXQgZGF0YTogT25lR3JpZFJvd0FjdGlvbkV2ZW50ID0geyBub2RlLCBjb2x1bW4sIGRhdGE6IG5vZGUuZGF0YSwgcm93SW5kZXg6IG5vZGUucm93SW5kZXgsIGdyaWRUeXBlOiBudWxsIH07XG5cbiAgICBpZiAodGhpcy5tYXN0ZXJEZXRhaWwpIHtcblxuICAgICAgZGF0YSA9IHsgLi4uZGF0YSwgZ3JpZFR5cGU6IHRoaXMuZ3JpZFR5cGUsIG1hc3Rlck5vZGU6IHRoaXMubWFzdGVyTm9kZSB9O1xuICAgIH1cblxuICAgIHRoaXMub25Sb3dPcHRpb24uZW1pdChkYXRhKTtcbiAgfVxuXG4gIGludm9rZVJvd0FjdGlvbkxhbmd1YWdlKG5vZGU6IE9uZVJvd05vZGU8VD4sIGNvbHVtbjogT25lQ29sdW1uRGVmPFQ+KSB7XG5cbiAgICBsZXQgZGF0YTogT25lR3JpZFJvd0FjdGlvbkV2ZW50ID0geyBub2RlLCBjb2x1bW4sIGRhdGE6IG5vZGUuZGF0YSwgcm93SW5kZXg6IG5vZGUucm93SW5kZXgsIGdyaWRUeXBlOiBudWxsIH07XG5cbiAgICBpZiAodGhpcy5tYXN0ZXJEZXRhaWwpIHtcblxuICAgICAgZGF0YSA9IHsgLi4uZGF0YSwgZ3JpZFR5cGU6IHRoaXMuZ3JpZFR5cGUsIG1hc3Rlck5vZGU6IHRoaXMubWFzdGVyTm9kZSB9O1xuICAgIH1cblxuICAgIHRoaXMub25Sb3dMYW5ndWFnZS5lbWl0KGRhdGEpO1xuICB9XG5cbiAgaW52b2tlUm93QWN0aW9uQ2VsbE9wdGlvbihub2RlOiBPbmVSb3dOb2RlPFQ+LCBjb2x1bW46IE9uZUNvbHVtbkRlZjxUPikge1xuXG4gICAgbGV0IGRhdGE6IE9uZUdyaWRSb3dBY3Rpb25FdmVudCA9IHsgbm9kZSwgY29sdW1uLCBkYXRhOiBub2RlLmRhdGEsIHJvd0luZGV4OiBub2RlLnJvd0luZGV4LCBncmlkVHlwZTogbnVsbCB9O1xuXG4gICAgaWYgKHRoaXMubWFzdGVyRGV0YWlsKSB7XG5cbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGdyaWRUeXBlOiB0aGlzLmdyaWRUeXBlLCBtYXN0ZXJOb2RlOiB0aGlzLm1hc3Rlck5vZGUgfTtcbiAgICB9XG5cbiAgICB0aGlzLm9uUm93Q2VsbE9wdGlvbi5lbWl0KGRhdGEpO1xuICB9XG59XG4iLCJAaWYgKChjZWxsUmVuZGVyZXJQYXJhbXMgJiYgbm9kZT8ubGVhZiAmJiAhY29sdW1uPy5hdXRvR3JvdXBGaWVsZCAmJiAhKG5vZGUuZ3JvdXAgJiYgbm9kZS5sZWFmR3JvdXApKSB8fCAoY29sdW1uPy5yb3dBY3Rpb25MZXZlbHM/LmluY2x1ZGVzKG5vZGUubGV2ZWwpICYmIGNvbHVtbj8uYXV0b0dyb3VwRmllbGQpKSB7XG4gICAgPGRpdiBjbGFzcz1cImJ0bi1hY3Rpb24tY29udGFpbmVyXCI+XG5cbiAgICAgICAgPCEtLSBFeHBhbnNpb24gQnV0dG9uIFN0YXR1cyAtLT5cbiAgICAgICAgIEBpZiAoKGNlbGxSZW5kZXJlclBhcmFtcz8uZGV0YWlsQWN0aXZlQnV0dG9uU3RhdHVzID09IDEgJiYgIShkZXRhaWxBY3RpdmVFeGNsdWRlTGV2ZWxzPy5oYXMobm9kZS5sZXZlbCkpKSkge1xuICAgICAgICAgICAgPCEtLSBBIGJ1dHRvbiwgbm90IGFuIDxhPiB3aXRoIGEgY2xpY2sgaGFuZGxlcjogaXQgaGFzIG5vIGhyZWYsIHNvXG4gICAgICAgICAgICAgICAgIGl0IHdhcyBuZWl0aGVyIGZvY3VzYWJsZSBub3Igb3BlcmFibGUgZnJvbSB0aGUga2V5Ym9hcmQuIC0tPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWFjdGlvbiBidG4tYWN0aW9uLXBsYWluIG1lLTJcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwibm9kZS5kZXRhaWxBY3RpdmVcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibm9kZS5kZXRhaWxBY3RpdmUgPyAnQ29sbGFwc2Ugcm93JyA6ICdFeHBhbmQgcm93J1wiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cIm5vZGUuZGV0YWlsQWN0aXZlID8gJ0NvbGxhcHNlJyA6ICdFeHBhbmQnXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW52b2tlUm93VG9nZ2xlRGV0YWlsQWN0aXZlRXhwYW5kKG5vZGUpXCI+XG5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpXCIgW25nQ2xhc3NdPVwieyAnYmktY2hldnJvbi1kb3duJzogbm9kZS5kZXRhaWxBY3RpdmUsICdiaS1jaGV2cm9uLXJpZ2h0JzogIW5vZGUuZGV0YWlsQWN0aXZlIH1cIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gR290byBEZXRhaWwgQnV0dG9uIFN0YXR1cyAtLT5cbiAgICAgICAgQGlmICgoY2VsbFJlbmRlcmVyUGFyYW1zPy5nb3RvRGV0YWlsQnV0dG9uU3RhdHVzID09IDEgJiYgIShnb3RvRGV0YWlsRXhjbHVkZUxldmVscz8uaGFzKG5vZGUubGV2ZWwpKSkgJiYgKCFoaWRlQWN0aW9uQnV0dG9uIHx8IGFsbG93ZWRFZGl0KSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWFjdGlvbiBidG4tYWN0aW9uLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGFiZWxzLmdvdG9EZXRhaWxcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJsYWJlbHMuZ290b0RldGFpbFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImludm9rZVJvd0FjdGlvbkdvdG9EZXRhaWwobm9kZSwgY29sdW1uKVwiPlxuXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1saXN0LXRhc2tcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gQWRkIE5ldyBCdXR0b24gU3RhdHVzIC0tPlxuICAgICAgICBAaWYgKChjZWxsUmVuZGVyZXJQYXJhbXM/LmFkZE5ld0J1dHRvblN0YXR1cyA9PSAxICYmICEoYWRkTmV3RXhjbHVkZUxldmVscz8uaGFzKG5vZGUubGV2ZWwpKSkgJiYgKCFoaWRlQWN0aW9uQnV0dG9uIHx8IGFsbG93ZWRFZGl0KSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWFjdGlvbiBidG4tYWN0aW9uLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3Rpb25EaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFjdGlvbkRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVscy5hZGROZXdcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJsYWJlbHMuYWRkTmV3XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW52b2tlUm93QWN0aW9uQWRkTmV3KG5vZGUsIGNvbHVtbilcIj5cblxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktcGx1c1wiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBWaWV3IEJ1dHRvbiBTdGF0dXMgLS0+XG4gICAgICAgIEBpZiAoY2VsbFJlbmRlcmVyUGFyYW1zPy52aWV3QnV0dG9uU3RhdHVzID09IDEpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1hY3Rpb24gYnRuLWFjdGlvbi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVscy52aWV3XCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwibGFiZWxzLnZpZXdcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpbnZva2VSb3dBY3Rpb25WaWV3KG5vZGUsIGNvbHVtbilcIj5cblxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktZXllXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChjZWxsUmVuZGVyZXJQYXJhbXM/LmxvY2F0aW9uQnV0dG9uU3RhdHVzID09IDEpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1hY3Rpb24gYnRuLWFjdGlvbi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVscy5sb2NhdGlvblwiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cImxhYmVscy5sb2NhdGlvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImludm9rZVJvd0FjdGlvbkxvY2F0aW9uKG5vZGUsIGNvbHVtbilcIj5cblxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktZ2VvLWFsdFwiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBEb2N1bWVudCBCdXR0b24gU3RhdHVzIC0tPlxuICAgICAgICBAaWYgKGNlbGxSZW5kZXJlclBhcmFtcz8uZG9jdW1lbnRCdXR0b25TdGF0dXMgPT0gMSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWFjdGlvbiBidG4tYWN0aW9uLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGFiZWxzLmRvY3VtZW50XCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwibGFiZWxzLmRvY3VtZW50XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW52b2tlUm93QWN0aW9uRG9jdW1lbnQobm9kZSwgY29sdW1uKVwiPlxuXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1maWxlLWVhcm1hcmstdGV4dFwiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBDb3B5IEJ1dHRvbiBTdGF0dXMgLS0+XG4gICAgICAgIEBpZiAoY2VsbFJlbmRlcmVyUGFyYW1zPy5jb3B5QnV0dG9uU3RhdHVzID09IDEpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1hY3Rpb24gYnRuLWFjdGlvbi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVscy5jb3B5XCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwibGFiZWxzLmNvcHlcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpbnZva2VSb3dBY3Rpb25Db3B5KG5vZGUsIGNvbHVtbilcIj5cblxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktZmlsZXNcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuXG5cbiAgICAgICAgPCEtLSBEZWxldGUgQnV0dG9uIFN0YXR1cyAtLT5cbiAgICAgICAgIEBpZiAoY2VsbFJlbmRlcmVyUGFyYW1zPy5kZWxldGVCdXR0b25TdGF0dXMgPT0gMSAmJiAoIWhpZGVBY3Rpb25CdXR0b24gfHwgYWxsb3dlZEVkaXQpKSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tYWN0aW9uIGJ0bi1hY3Rpb24tZGFuZ2VyXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aW9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJhY3Rpb25EaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbHMuZGVsZXRlXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwibGFiZWxzLmRlbGV0ZVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImludm9rZVJvd0FjdGlvbkRlbGV0ZShub2RlLCBjb2x1bW4pXCI+XG5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXRyYXNoM1wiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBHb3RvIExpc3QgQnV0dG9uIFN0YXR1cyAtLT5cbiAgICAgICAgQGlmIChjZWxsUmVuZGVyZXJQYXJhbXM/LmdvdG9MaXN0QnV0dG9uU3RhdHVzID09PSAxKSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tYWN0aW9uIGJ0bi1hY3Rpb24tc3VjY2Vzc1wiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbHMuZ290b0xpc3RcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJsYWJlbHMuZ290b0xpc3RcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpbnZva2VSb3dBY3Rpb25Hb3RvTGlzdChub2RlLCBjb2x1bW4pXCI+XG5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWxpc3QtdWxcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gRWRpdCBCdXR0b24gU3RhdHVzIC0tPlxuICAgICAgICBAaWYgKGNlbGxSZW5kZXJlclBhcmFtcz8uZWRpdEJ1dHRvblN0YXR1cyA9PT0gMSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWFjdGlvbiBidG4tYWN0aW9uLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3Rpb25EaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFjdGlvbkRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVscy5lZGl0XCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwibGFiZWxzLmVkaXRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpbnZva2VSb3dBY3Rpb25FZGl0KG5vZGUsIGNvbHVtbilcIj5cblxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktcGVuY2lsXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIFByaW50IEJ1dHRvbiBTdGF0dXMgLS0+XG4gICAgICAgIEBpZiAoY2VsbFJlbmRlcmVyUGFyYW1zPy5wcmludEJ1dHRvblN0YXR1cyA9PT0gMSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWFjdGlvbiBidG4tYWN0aW9uLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3Rpb25EaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFjdGlvbkRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVscy5wcmludFwiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cImxhYmVscy5wcmludFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImludm9rZVJvd0FjdGlvblByaW50KG5vZGUsIGNvbHVtbilcIj5cblxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktcHJpbnRlclwiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBIaXN0b3J5IEJ1dHRvbiBTdGF0dXMgLS0+XG4gICAgICAgIEBpZiAoY2VsbFJlbmRlcmVyUGFyYW1zPy5oaXN0b3J5QnV0dG9uU3RhdHVzID09PSAxKSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tYWN0aW9uIGJ0bi1hY3Rpb24tcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGlvbkRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGFiZWxzLmhpc3RvcnlcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJsYWJlbHMuaGlzdG9yeVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImludm9rZVJvd0FjdGlvbkhpc3Rvcnkobm9kZSwgY29sdW1uKVwiPlxuXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1jbG9jay1oaXN0b3J5XCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIE9wdGlvbiBCdXR0b24gU3RhdHVzIC0tPlxuICAgICAgICBAaWYgKGNlbGxSZW5kZXJlclBhcmFtcz8ub3B0aW9uQnV0dG9uU3RhdHVzID09PSAxKSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tYWN0aW9uIGJ0bi1hY3Rpb24tcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGlvbkRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGFiZWxzLm9wdGlvblwiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cImxhYmVscy5vcHRpb25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpbnZva2VSb3dBY3Rpb25PcHRpb24obm9kZSwgY29sdW1uKVwiPlxuXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS10aHJlZS1kb3RzLXZlcnRpY2FsXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIExhbmd1YWdlIEJ1dHRvbiBTdGF0dXMgLS0+XG4gICAgICAgIEBpZiAoY2VsbFJlbmRlcmVyUGFyYW1zPy5sYW5ndWFnZUJ1dHRvblN0YXR1cyA9PT0gMSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWFjdGlvbiBidG4tYWN0aW9uLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3Rpb25EaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFjdGlvbkRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVscy5sYW5ndWFnZVwiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cImxhYmVscy5sYW5ndWFnZVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImludm9rZVJvd0FjdGlvbkxhbmd1YWdlKG5vZGUsIGNvbHVtbilcIj5cblxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktdHJhbnNsYXRlXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIENlbGwgT3B0b2lvbiBCdXR0b24gU3RhdHVzIChDb250ZXh0IE1lbnUpIC0tPlxuICAgICAgICBAaWYgKGNlbGxSZW5kZXJlclBhcmFtcz8uY2VsbE9wdGlvbkJ1dHRvblN0YXR1cyA9PT0gMSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWFjdGlvbiBidG4tYWN0aW9uLXByaW1hcnkgYm9yZGVyLTAgdGV4dC1ib2R5XCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aW9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJhY3Rpb25EaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbHMuY2VsbE9wdGlvblwiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cImxhYmVscy5jZWxsT3B0aW9uXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW52b2tlUm93QWN0aW9uQ2VsbE9wdGlvbihub2RlLCBjb2x1bW4pXCI+XG5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXRocmVlLWRvdHMtdmVydGljYWxcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxufSJdfQ==
|
|
239
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWdyaWQtcm93LWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2NvbXBvbmVudHMvb25lLWdyaWQtcm93LWFjdGlvbi9vbmUtZ3JpZC1yb3ctYWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZS1ncmlkL3NyYy9saWIvY29tcG9uZW50cy9vbmUtZ3JpZC1yb3ctYWN0aW9uL29uZS1ncmlkLXJvdy1hY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUsvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQVMxQyxNQUFNLE9BQU8seUJBQXlCO0lBNERwQyxZQUE2QixXQUErQjtRQUEvQixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFyRGpDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQy9DLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGVBQVUsR0FBa0IsSUFBSSxDQUFDO1FBRWpDLGFBQVEsR0FBZ0IsSUFBSSxDQUFDO1FBQzdCLFlBQU8sR0FBUSxJQUFJLENBQUM7UUFFN0I7O1dBRUc7UUFDTyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUE0QixDQUFDO1FBQy9ELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDM0QsY0FBUyxHQUFHLElBQUksWUFBWSxFQUE0QixDQUFDO1FBQ3pELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDN0Qsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUM3RCxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDekQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUMzRCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUE0QixDQUFDO1FBQzdELGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUN6RCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDMUQsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUM1RCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUE0QixDQUFDO1FBQzNELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDN0Qsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQU16RTs7Ozs7O1dBTUc7UUFDZ0IsV0FBTSxHQUFHO1lBQzFCLFVBQVUsRUFBRSxhQUFhO1lBQ3pCLE1BQU0sRUFBRSxhQUFhO1lBQ3JCLElBQUksRUFBRSxVQUFVO1lBQ2hCLFFBQVEsRUFBRSxlQUFlO1lBQ3pCLFFBQVEsRUFBRSxlQUFlO1lBQ3pCLElBQUksRUFBRSxVQUFVO1lBQ2hCLE1BQU0sRUFBRSxZQUFZO1lBQ3BCLFFBQVEsRUFBRSxXQUFXO1lBQ3JCLElBQUksRUFBRSxVQUFVO1lBQ2hCLEtBQUssRUFBRSxXQUFXO1lBQ2xCLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLE1BQU0sRUFBRSxhQUFhO1lBQ3JCLFFBQVEsRUFBRSxpQkFBaUI7WUFDM0IsVUFBVSxFQUFFLGNBQWM7U0FDbEIsQ0FBQztJQUVvRCxDQUFDO0lBRWhFOzs7Ozs7O09BT0c7SUFDSCxJQUFjLGdCQUFnQjtRQUU1QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQXNCLEVBQUUsSUFBSSxDQUFDLElBQWtCLENBQUMsQ0FBQztJQUNuRyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILElBQWMsY0FBYztRQUUxQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFzQixFQUFFLElBQUksQ0FBQyxJQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQy9HLENBQUM7SUFFRCxRQUFRO1FBRU4sSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUseUJBQXlCLElBQUksRUFBRSxDQUFDLENBQUE7UUFDekcsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsdUJBQXVCLElBQUksRUFBRSxDQUFDLENBQUE7UUFDckcsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsbUJBQW1CLElBQUksRUFBRSxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVEOztPQUVHO0lBQ0gsaUNBQWlDLENBQUMsSUFBZ0I7UUFFaEQsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDekMsQ0FBQztJQUVELHlCQUF5QixDQUFDLElBQW1CLEVBQUUsTUFBdUI7UUFFcEUsSUFBSSxJQUFJLEdBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELHFCQUFxQixDQUFDLElBQW1CLEVBQUUsTUFBdUI7UUFFaEUsSUFBSSxJQUFJLEdBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELG1CQUFtQixDQUFDLElBQW1CLEVBQUUsTUFBdUI7UUFFOUQsSUFBSSxJQUFJLEdBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELHVCQUF1QixDQUFDLElBQW1CLEVBQUUsTUFBdUI7UUFFbEUsSUFBSSxJQUFJLEdBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELHVCQUF1QixDQUFDLElBQW1CLEVBQUUsTUFBdUI7UUFFbEUsSUFBSSxJQUFJLEdBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELG1CQUFtQixDQUFDLElBQW1CLEVBQUUsTUFBdUI7UUFFOUQsSUFBSSxJQUFJLEdBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELHFCQUFxQixDQUFDLElBQW1CLEVBQUUsTUFBdUI7UUFFaEUsSUFBSSxJQUFJLEdBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELHVCQUF1QixDQUFDLElBQW1CLEVBQUUsTUFBdUI7UUFFbEUsSUFBSSxJQUFJLEdBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELG1CQUFtQixDQUFDLElBQW1CLEVBQUUsTUFBdUI7UUFFOUQsSUFBSSxJQUFJLEdBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQW1CLEVBQUUsTUFBdUI7UUFFL0QsSUFBSSxJQUFJLEdBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELHNCQUFzQixDQUFDLElBQW1CLEVBQUUsTUFBdUI7UUFFakUsSUFBSSxJQUFJLEdBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELHFCQUFxQixDQUFDLElBQW1CLEVBQUUsTUFBdUI7UUFFaEUsSUFBSSxJQUFJLEdBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELHVCQUF1QixDQUFDLElBQW1CLEVBQUUsTUFBdUI7UUFFbEUsSUFBSSxJQUFJLEdBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELHlCQUF5QixDQUFDLElBQW1CLEVBQUUsTUFBdUI7UUFFcEUsSUFBSSxJQUFJLEdBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFN0csSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEIsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQzsrR0E3UVUseUJBQXlCO21HQUF6Qix5QkFBeUIsNHNCQ2R0QyxxaFJBeU5DLDBERGhOVyxPQUFPOzs0RkFLTix5QkFBeUI7a0JBUHJDLFNBQVM7aUNBQ0ksSUFBSSxXQUNQLENBQUMsT0FBTyxDQUFDLFlBQ1IscUJBQXFCO3VGQVNKLE1BQU07c0JBQWhDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNFLElBQUk7c0JBQTlCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNFLFdBQVc7c0JBQXJDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNoQixZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUtJLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9uZVJvd05vZGUgfSBmcm9tICcuLi8uLi9jb3JlL2luc3RhbnRzL29uZS1yb3ctbm9kZS5jbGFzcyc7XG5pbXBvcnQgeyBPbmVHcmlkUm93QWN0aW9uRXZlbnQsIE9uZUdyaWRUeXBlIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMvb25lLWdyaWQtdHlwZXMubW9kZWwnO1xuaW1wb3J0IHsgT25lQ2VsbFJlbmRlcmVyUGFyYW1zLCBPbmVDb2x1bW5EZWYgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscy9vbmUtY29sdW1uLWRlZi10eXBlcy5tb2RlbCc7XG5pbXBvcnQgeyBPbmVHcmlkQ2VsbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL29uZS1ncmlkLWNlbGwuc2VydmljZSc7XG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0NsYXNzXSxcbiAgc2VsZWN0b3I6ICdvbmUtZ3JpZC1yb3ctYWN0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL29uZS1ncmlkLXJvdy1hY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vb25lLWdyaWQtcm93LWFjdGlvbi5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgT25lR3JpZFJvd0FjdGlvbkNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLyoqXG4gICAqIEdldCBOb2RlICYgQ2VsbCBSZW5kZXJlciBGcm9tIFBhcmVudCBDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGNvbHVtbjogT25lQ29sdW1uRGVmPFQ+O1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBub2RlOiBPbmVSb3dOb2RlPFQ+O1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBhbGxvd2VkRWRpdDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtYXN0ZXJEZXRhaWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbWFzdGVyTm9kZTogT25lUm93Tm9kZTxUPiA9IG51bGw7XG4gIEBJbnB1dCgpIGNlbGxSZW5kZXJlclBhcmFtczogT25lQ2VsbFJlbmRlcmVyUGFyYW1zPFQ+O1xuICBASW5wdXQoKSBncmlkVHlwZTogT25lR3JpZFR5cGUgPSBudWxsO1xuICBASW5wdXQoKSBjb250ZXh0OiBhbnkgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBCaW5kIEV2ZW50IHRvIFBhcmVudCBDb21wb25lbnRcbiAgICovXG4gIEBPdXRwdXQoKSBvblJvd0dvdG9EZXRhaWwgPSBuZXcgRXZlbnRFbWl0dGVyPE9uZUdyaWRSb3dBY3Rpb25FdmVudDxUPj4oKTtcbiAgQE91dHB1dCgpIG9uUm93QWRkTmV3ID0gbmV3IEV2ZW50RW1pdHRlcjxPbmVHcmlkUm93QWN0aW9uRXZlbnQ8VD4+KCk7XG4gIEBPdXRwdXQoKSBvblJvd1ZpZXcgPSBuZXcgRXZlbnRFbWl0dGVyPE9uZUdyaWRSb3dBY3Rpb25FdmVudDxUPj4oKTtcbiAgQE91dHB1dCgpIG9uUm93TG9jYXRpb24gPSBuZXcgRXZlbnRFbWl0dGVyPE9uZUdyaWRSb3dBY3Rpb25FdmVudDxUPj4oKTtcbiAgQE91dHB1dCgpIG9uUm93RG9jdW1lbnQgPSBuZXcgRXZlbnRFbWl0dGVyPE9uZUdyaWRSb3dBY3Rpb25FdmVudDxUPj4oKTtcbiAgQE91dHB1dCgpIG9uUm93Q29weSA9IG5ldyBFdmVudEVtaXR0ZXI8T25lR3JpZFJvd0FjdGlvbkV2ZW50PFQ+PigpO1xuICBAT3V0cHV0KCkgb25Sb3dEZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPE9uZUdyaWRSb3dBY3Rpb25FdmVudDxUPj4oKTtcbiAgQE91dHB1dCgpIG9uUm93R290b0xpc3QgPSBuZXcgRXZlbnRFbWl0dGVyPE9uZUdyaWRSb3dBY3Rpb25FdmVudDxUPj4oKTtcbiAgQE91dHB1dCgpIG9uUm93RWRpdCA9IG5ldyBFdmVudEVtaXR0ZXI8T25lR3JpZFJvd0FjdGlvbkV2ZW50PFQ+PigpO1xuICBAT3V0cHV0KCkgb25Sb3dQcmludCA9IG5ldyBFdmVudEVtaXR0ZXI8T25lR3JpZFJvd0FjdGlvbkV2ZW50PFQ+PigpO1xuICBAT3V0cHV0KCkgb25Sb3dIaXN0b3J5ID0gbmV3IEV2ZW50RW1pdHRlcjxPbmVHcmlkUm93QWN0aW9uRXZlbnQ8VD4+KCk7XG4gIEBPdXRwdXQoKSBvblJvd09wdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8T25lR3JpZFJvd0FjdGlvbkV2ZW50PFQ+PigpO1xuICBAT3V0cHV0KCkgb25Sb3dMYW5ndWFnZSA9IG5ldyBFdmVudEVtaXR0ZXI8T25lR3JpZFJvd0FjdGlvbkV2ZW50PFQ+PigpO1xuICBAT3V0cHV0KCkgb25Sb3dDZWxsT3B0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxPbmVHcmlkUm93QWN0aW9uRXZlbnQ8VD4+KCk7XG5cbiAgcHJvdGVjdGVkIGRldGFpbEFjdGl2ZUV4Y2x1ZGVMZXZlbHM6IFNldDxudW1iZXI+O1xuICBwcm90ZWN0ZWQgZ290b0RldGFpbEV4Y2x1ZGVMZXZlbHM6IFNldDxudW1iZXI+O1xuICBwcm90ZWN0ZWQgYWRkTmV3RXhjbHVkZUxldmVsczogU2V0PG51bWJlcj47XG5cbiAgLyoqXG4gICAqIEFjY2Vzc2libGUgbmFtZXMgZm9yIHRoZSBhY3Rpb24gYnV0dG9ucy5cbiAgICpcbiAgICogRXZlcnkgb25lIG9mIHRoZW0gaXMgYW4gaWNvbiB3aXRoIG5vIHRleHQsIGFuZCBub25lIGNhcnJpZWQgYSBsYWJlbCDigJQgYVxuICAgKiBzY3JlZW4gcmVhZGVyIGFubm91bmNlZCBcImJ1dHRvblwiIGFuZCBub3RoaW5nIG1vcmUsIGZvdXJ0ZWVuIHRpbWVzIHBlciByb3cuXG4gICAqIFRoZXNlIGFyZSBhbHNvIHRoZSBgdGl0bGVgLCBzbyB0aGUgaWNvbnMgYXJlIGlkZW50aWZpYWJsZSBieSBwb2ludGVyIHRvby5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBsYWJlbHMgPSB7XG4gICAgZ290b0RldGFpbDogJ09wZW4gZGV0YWlsJyxcbiAgICBhZGROZXc6ICdBZGQgbmV3IHJvdycsXG4gICAgdmlldzogJ1ZpZXcgcm93JyxcbiAgICBsb2NhdGlvbjogJ1Nob3cgbG9jYXRpb24nLFxuICAgIGRvY3VtZW50OiAnT3BlbiBkb2N1bWVudCcsXG4gICAgY29weTogJ0NvcHkgcm93JyxcbiAgICBkZWxldGU6ICdEZWxldGUgcm93JyxcbiAgICBnb3RvTGlzdDogJ09wZW4gbGlzdCcsXG4gICAgZWRpdDogJ0VkaXQgcm93JyxcbiAgICBwcmludDogJ1ByaW50IHJvdycsXG4gICAgaGlzdG9yeTogJ1ZpZXcgaGlzdG9yeScsXG4gICAgb3B0aW9uOiAnUm93IG9wdGlvbnMnLFxuICAgIGxhbmd1YWdlOiAnQ2hhbmdlIGxhbmd1YWdlJyxcbiAgICBjZWxsT3B0aW9uOiAnQ2VsbCBvcHRpb25zJyxcbiAgfSBhcyBjb25zdDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNlbGxTZXJ2aWNlOiBPbmVHcmlkQ2VsbFNlcnZpY2UpIHt9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBjb2x1bW4ncyBhY3Rpb24gYnV0dG9ucyBhcmUgaGlkZGVuIGZvciB0aGlzIHJvdy5cbiAgICpcbiAgICogVGhlIHRlbXBsYXRlcyByZWFkIGBjb2x1bW4/LmhpZGVBY3Rpb25CdXR0b25gIGRpcmVjdGx5LCB3aGljaCBpcyB0cnV0aHkgZm9yXG4gICAqIGFueSBmdW5jdGlvbiDigJQgc28gYSBwcmVkaWNhdGUgYXNraW5nIHRvIGhpZGUgdGhlIGJ1dHRvbnMgc2hvd2VkIHRoZW0sIGFuZFxuICAgKiBvbmUgYXNraW5nIHRvIHNob3cgdGhlbSBzaG93ZWQgdGhlbSB0b28uIFJlc29sdmVkIGhlcmUgaW5zdGVhZCwgd2l0aCB0aGVcbiAgICogc2FtZSBwYXJhbXMgZXZlcnkgb3RoZXIgcm93LXNjb3BlZCBwcmVkaWNhdGUgZ2V0cy5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgaGlkZUFjdGlvbkJ1dHRvbigpOiBib29sZWFuIHtcblxuICAgIHJldHVybiB0aGlzLmNlbGxTZXJ2aWNlLmhpZGVBY3Rpb25CdXR0b25Gbih0aGlzLmNvbHVtbiBhcyBPbmVDb2x1bW5EZWYsIHRoaXMubm9kZSBhcyBPbmVSb3dOb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgY29sdW1uJ3MgYWN0aW9uIGJ1dHRvbnMgYXJlIGRpc2FibGVkIGZvciB0aGlzIHJvdy5cbiAgICpcbiAgICogYGRpc2FibGVgIHVzZWQgdG8gYmUgcmVzb2x2ZWQgYnkgYENlbGxEaXNhYmxlUmVzb2x2ZXJQaXBlYCwgd2hpY2ggYnVpbHQgaXRzXG4gICAqIG93biBwYXJhbXMg4oCUIGEgZGlmZmVyZW50IHNldCBmcm9tIGV2ZXJ5IG90aGVyIHJvdy1zY29wZWQgcHJlZGljYXRlLiBJdCBnb2VzXG4gICAqIHRocm91Z2ggdGhlIHNoYXJlZCBidWlsZGVyIG5vdywgc28gYGRpc2FibGVgIHNlZXMgZXhhY3RseSB3aGF0IGBlZGl0YWJsZWBcbiAgICogYW5kIGBoaWRlQWN0aW9uQnV0dG9uYCBzZWUuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGFjdGlvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xuXG4gICAgcmV0dXJuIHRoaXMuY2VsbFNlcnZpY2UuZGlzYWJsZUZuKHRoaXMuY29sdW1uIGFzIE9uZUNvbHVtbkRlZiwgdGhpcy5ub2RlIGFzIE9uZVJvd05vZGUpIHx8ICF0aGlzLmFsbG93ZWRFZGl0O1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG5cbiAgICB0aGlzLmRldGFpbEFjdGl2ZUV4Y2x1ZGVMZXZlbHMgPSBuZXcgU2V0KHRoaXMuY29sdW1uLmNlbGxSZW5kZXJlclBhcmFtcz8uZGV0YWlsQWN0aXZlRXhjbHVkZUxldmVscyA/PyBbXSlcbiAgICB0aGlzLmdvdG9EZXRhaWxFeGNsdWRlTGV2ZWxzID0gbmV3IFNldCh0aGlzLmNvbHVtbi5jZWxsUmVuZGVyZXJQYXJhbXM/LmdvdG9EZXRhaWxFeGNsdWRlTGV2ZWxzID8/IFtdKVxuICAgIHRoaXMuYWRkTmV3RXhjbHVkZUxldmVscyA9IG5ldyBTZXQodGhpcy5jb2x1bW4uY2VsbFJlbmRlcmVyUGFyYW1zPy5hZGROZXdFeGNsdWRlTGV2ZWxzID8/IFtdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyIEludm9rZSBDbGljayBFdmVudFxuICAgKi9cbiAgaW52b2tlUm93VG9nZ2xlRGV0YWlsQWN0aXZlRXhwYW5kKG5vZGU6IE9uZVJvd05vZGUpOiB2b2lkIHtcblxuICAgIG5vZGUuZGV0YWlsQWN0aXZlID0gIW5vZGUuZGV0YWlsQWN0aXZlO1xuICB9XG5cbiAgaW52b2tlUm93QWN0aW9uR290b0RldGFpbChub2RlOiBPbmVSb3dOb2RlPFQ+LCBjb2x1bW46IE9uZUNvbHVtbkRlZjxUPikge1xuXG4gICAgbGV0IGRhdGE6IE9uZUdyaWRSb3dBY3Rpb25FdmVudCA9IHsgbm9kZSwgY29sdW1uLCBkYXRhOiBub2RlLmRhdGEsIHJvd0luZGV4OiBub2RlLnJvd0luZGV4LCBncmlkVHlwZTogbnVsbCB9O1xuXG4gICAgaWYgKHRoaXMubWFzdGVyRGV0YWlsKSB7XG5cbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGdyaWRUeXBlOiB0aGlzLmdyaWRUeXBlLCBtYXN0ZXJOb2RlOiB0aGlzLm1hc3Rlck5vZGUgfTtcbiAgICB9XG5cbiAgICB0aGlzLm9uUm93R290b0RldGFpbC5lbWl0KGRhdGEpO1xuICB9XG5cbiAgaW52b2tlUm93QWN0aW9uQWRkTmV3KG5vZGU6IE9uZVJvd05vZGU8VD4sIGNvbHVtbjogT25lQ29sdW1uRGVmPFQ+KSB7XG5cbiAgICBsZXQgZGF0YTogT25lR3JpZFJvd0FjdGlvbkV2ZW50ID0geyBub2RlLCBjb2x1bW4sIGRhdGE6IG5vZGUuZGF0YSwgcm93SW5kZXg6IG5vZGUucm93SW5kZXgsIGdyaWRUeXBlOiBudWxsIH07XG5cbiAgICBpZiAodGhpcy5tYXN0ZXJEZXRhaWwpIHtcblxuICAgICAgZGF0YSA9IHsgLi4uZGF0YSwgZ3JpZFR5cGU6IHRoaXMuZ3JpZFR5cGUsIG1hc3Rlck5vZGU6IHRoaXMubWFzdGVyTm9kZSB9O1xuICAgIH1cblxuICAgIHRoaXMub25Sb3dBZGROZXcuZW1pdChkYXRhKTtcbiAgfVxuXG4gIGludm9rZVJvd0FjdGlvblZpZXcobm9kZTogT25lUm93Tm9kZTxUPiwgY29sdW1uOiBPbmVDb2x1bW5EZWY8VD4pIHtcblxuICAgIGxldCBkYXRhOiBPbmVHcmlkUm93QWN0aW9uRXZlbnQgPSB7IG5vZGUsIGNvbHVtbiwgZGF0YTogbm9kZS5kYXRhLCByb3dJbmRleDogbm9kZS5yb3dJbmRleCwgZ3JpZFR5cGU6IG51bGwgfTtcblxuICAgIGlmICh0aGlzLm1hc3RlckRldGFpbCkge1xuXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCBncmlkVHlwZTogdGhpcy5ncmlkVHlwZSwgbWFzdGVyTm9kZTogdGhpcy5tYXN0ZXJOb2RlIH07XG4gICAgfVxuXG4gICAgdGhpcy5vblJvd1ZpZXcuZW1pdChkYXRhKTtcbiAgfVxuXG4gIGludm9rZVJvd0FjdGlvbkxvY2F0aW9uKG5vZGU6IE9uZVJvd05vZGU8VD4sIGNvbHVtbjogT25lQ29sdW1uRGVmPFQ+KSB7XG5cbiAgICBsZXQgZGF0YTogT25lR3JpZFJvd0FjdGlvbkV2ZW50ID0geyBub2RlLCBjb2x1bW4sIGRhdGE6IG5vZGUuZGF0YSwgcm93SW5kZXg6IG5vZGUucm93SW5kZXgsIGdyaWRUeXBlOiBudWxsIH07XG5cbiAgICBpZiAodGhpcy5tYXN0ZXJEZXRhaWwpIHtcblxuICAgICAgZGF0YSA9IHsgLi4uZGF0YSwgZ3JpZFR5cGU6IHRoaXMuZ3JpZFR5cGUsIG1hc3Rlck5vZGU6IHRoaXMubWFzdGVyTm9kZSB9O1xuICAgIH1cblxuICAgIHRoaXMub25Sb3dMb2NhdGlvbi5lbWl0KGRhdGEpO1xuICB9XG5cbiAgaW52b2tlUm93QWN0aW9uRG9jdW1lbnQobm9kZTogT25lUm93Tm9kZTxUPiwgY29sdW1uOiBPbmVDb2x1bW5EZWY8VD4pIHtcblxuICAgIGxldCBkYXRhOiBPbmVHcmlkUm93QWN0aW9uRXZlbnQgPSB7IG5vZGUsIGNvbHVtbiwgZGF0YTogbm9kZS5kYXRhLCByb3dJbmRleDogbm9kZS5yb3dJbmRleCwgZ3JpZFR5cGU6IG51bGwgfTtcblxuICAgIGlmICh0aGlzLm1hc3RlckRldGFpbCkge1xuXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCBncmlkVHlwZTogdGhpcy5ncmlkVHlwZSwgbWFzdGVyTm9kZTogdGhpcy5tYXN0ZXJOb2RlIH07XG4gICAgfVxuXG4gICAgdGhpcy5vblJvd0RvY3VtZW50LmVtaXQoZGF0YSk7XG4gIH1cblxuICBpbnZva2VSb3dBY3Rpb25Db3B5KG5vZGU6IE9uZVJvd05vZGU8VD4sIGNvbHVtbjogT25lQ29sdW1uRGVmPFQ+KSB7XG5cbiAgICBsZXQgZGF0YTogT25lR3JpZFJvd0FjdGlvbkV2ZW50ID0geyBub2RlLCBjb2x1bW4sIGRhdGE6IG5vZGUuZGF0YSwgcm93SW5kZXg6IG5vZGUucm93SW5kZXgsIGdyaWRUeXBlOiBudWxsIH07XG5cbiAgICBpZiAodGhpcy5tYXN0ZXJEZXRhaWwpIHtcblxuICAgICAgZGF0YSA9IHsgLi4uZGF0YSwgZ3JpZFR5cGU6IHRoaXMuZ3JpZFR5cGUsIG1hc3Rlck5vZGU6IHRoaXMubWFzdGVyTm9kZSB9O1xuICAgIH1cblxuICAgIHRoaXMub25Sb3dDb3B5LmVtaXQoZGF0YSk7XG4gIH1cblxuICBpbnZva2VSb3dBY3Rpb25EZWxldGUobm9kZTogT25lUm93Tm9kZTxUPiwgY29sdW1uOiBPbmVDb2x1bW5EZWY8VD4pIHtcblxuICAgIGxldCBkYXRhOiBPbmVHcmlkUm93QWN0aW9uRXZlbnQgPSB7IG5vZGUsIGNvbHVtbiwgZGF0YTogbm9kZS5kYXRhLCByb3dJbmRleDogbm9kZS5yb3dJbmRleCwgZ3JpZFR5cGU6IG51bGwgfTtcblxuICAgIGlmICh0aGlzLm1hc3RlckRldGFpbCkge1xuXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCBncmlkVHlwZTogdGhpcy5ncmlkVHlwZSwgbWFzdGVyTm9kZTogdGhpcy5tYXN0ZXJOb2RlIH07XG4gICAgfVxuXG4gICAgdGhpcy5vblJvd0RlbGV0ZS5lbWl0KGRhdGEpO1xuICB9XG5cbiAgaW52b2tlUm93QWN0aW9uR290b0xpc3Qobm9kZTogT25lUm93Tm9kZTxUPiwgY29sdW1uOiBPbmVDb2x1bW5EZWY8VD4pIHtcblxuICAgIGxldCBkYXRhOiBPbmVHcmlkUm93QWN0aW9uRXZlbnQgPSB7IG5vZGUsIGNvbHVtbiwgZGF0YTogbm9kZS5kYXRhLCByb3dJbmRleDogbm9kZS5yb3dJbmRleCwgZ3JpZFR5cGU6IG51bGwgfTtcblxuICAgIGlmICh0aGlzLm1hc3RlckRldGFpbCkge1xuXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCBncmlkVHlwZTogdGhpcy5ncmlkVHlwZSwgbWFzdGVyTm9kZTogdGhpcy5tYXN0ZXJOb2RlIH07XG4gICAgfVxuXG4gICAgdGhpcy5vblJvd0dvdG9MaXN0LmVtaXQoZGF0YSk7XG4gIH1cblxuICBpbnZva2VSb3dBY3Rpb25FZGl0KG5vZGU6IE9uZVJvd05vZGU8VD4sIGNvbHVtbjogT25lQ29sdW1uRGVmPFQ+KSB7XG5cbiAgICBsZXQgZGF0YTogT25lR3JpZFJvd0FjdGlvbkV2ZW50ID0geyBub2RlLCBjb2x1bW4sIGRhdGE6IG5vZGUuZGF0YSwgcm93SW5kZXg6IG5vZGUucm93SW5kZXgsIGdyaWRUeXBlOiBudWxsIH07XG5cbiAgICBpZiAodGhpcy5tYXN0ZXJEZXRhaWwpIHtcblxuICAgICAgZGF0YSA9IHsgLi4uZGF0YSwgZ3JpZFR5cGU6IHRoaXMuZ3JpZFR5cGUsIG1hc3Rlck5vZGU6IHRoaXMubWFzdGVyTm9kZSB9O1xuICAgIH1cblxuICAgIHRoaXMub25Sb3dFZGl0LmVtaXQoZGF0YSk7XG4gIH1cblxuICBpbnZva2VSb3dBY3Rpb25QcmludChub2RlOiBPbmVSb3dOb2RlPFQ+LCBjb2x1bW46IE9uZUNvbHVtbkRlZjxUPikge1xuXG4gICAgbGV0IGRhdGE6IE9uZUdyaWRSb3dBY3Rpb25FdmVudCA9IHsgbm9kZSwgY29sdW1uLCBkYXRhOiBub2RlLmRhdGEsIHJvd0luZGV4OiBub2RlLnJvd0luZGV4LCBncmlkVHlwZTogbnVsbCB9O1xuXG4gICAgaWYgKHRoaXMubWFzdGVyRGV0YWlsKSB7XG5cbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGdyaWRUeXBlOiB0aGlzLmdyaWRUeXBlLCBtYXN0ZXJOb2RlOiB0aGlzLm1hc3Rlck5vZGUgfTtcbiAgICB9XG5cbiAgICB0aGlzLm9uUm93UHJpbnQuZW1pdChkYXRhKTtcbiAgfVxuXG4gIGludm9rZVJvd0FjdGlvbkhpc3Rvcnkobm9kZTogT25lUm93Tm9kZTxUPiwgY29sdW1uOiBPbmVDb2x1bW5EZWY8VD4pIHtcblxuICAgIGxldCBkYXRhOiBPbmVHcmlkUm93QWN0aW9uRXZlbnQgPSB7IG5vZGUsIGNvbHVtbiwgZGF0YTogbm9kZS5kYXRhLCByb3dJbmRleDogbm9kZS5yb3dJbmRleCwgZ3JpZFR5cGU6IG51bGwgfTtcblxuICAgIGlmICh0aGlzLm1hc3RlckRldGFpbCkge1xuXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCBncmlkVHlwZTogdGhpcy5ncmlkVHlwZSwgbWFzdGVyTm9kZTogdGhpcy5tYXN0ZXJOb2RlIH07XG4gICAgfVxuXG4gICAgdGhpcy5vblJvd0hpc3RvcnkuZW1pdChkYXRhKTtcbiAgfVxuXG4gIGludm9rZVJvd0FjdGlvbk9wdGlvbihub2RlOiBPbmVSb3dOb2RlPFQ+LCBjb2x1bW46IE9uZUNvbHVtbkRlZjxUPikge1xuXG4gICAgbGV0IGRhdGE6IE9uZUdyaWRSb3dBY3Rpb25FdmVudCA9IHsgbm9kZSwgY29sdW1uLCBkYXRhOiBub2RlLmRhdGEsIHJvd0luZGV4OiBub2RlLnJvd0luZGV4LCBncmlkVHlwZTogbnVsbCB9O1xuXG4gICAgaWYgKHRoaXMubWFzdGVyRGV0YWlsKSB7XG5cbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGdyaWRUeXBlOiB0aGlzLmdyaWRUeXBlLCBtYXN0ZXJOb2RlOiB0aGlzLm1hc3Rlck5vZGUgfTtcbiAgICB9XG5cbiAgICB0aGlzLm9uUm93T3B0aW9uLmVtaXQoZGF0YSk7XG4gIH1cblxuICBpbnZva2VSb3dBY3Rpb25MYW5ndWFnZShub2RlOiBPbmVSb3dOb2RlPFQ+LCBjb2x1bW46IE9uZUNvbHVtbkRlZjxUPikge1xuXG4gICAgbGV0IGRhdGE6IE9uZUdyaWRSb3dBY3Rpb25FdmVudCA9IHsgbm9kZSwgY29sdW1uLCBkYXRhOiBub2RlLmRhdGEsIHJvd0luZGV4OiBub2RlLnJvd0luZGV4LCBncmlkVHlwZTogbnVsbCB9O1xuXG4gICAgaWYgKHRoaXMubWFzdGVyRGV0YWlsKSB7XG5cbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGdyaWRUeXBlOiB0aGlzLmdyaWRUeXBlLCBtYXN0ZXJOb2RlOiB0aGlzLm1hc3Rlck5vZGUgfTtcbiAgICB9XG5cbiAgICB0aGlzLm9uUm93TGFuZ3VhZ2UuZW1pdChkYXRhKTtcbiAgfVxuXG4gIGludm9rZVJvd0FjdGlvbkNlbGxPcHRpb24obm9kZTogT25lUm93Tm9kZTxUPiwgY29sdW1uOiBPbmVDb2x1bW5EZWY8VD4pIHtcblxuICAgIGxldCBkYXRhOiBPbmVHcmlkUm93QWN0aW9uRXZlbnQgPSB7IG5vZGUsIGNvbHVtbiwgZGF0YTogbm9kZS5kYXRhLCByb3dJbmRleDogbm9kZS5yb3dJbmRleCwgZ3JpZFR5cGU6IG51bGwgfTtcblxuICAgIGlmICh0aGlzLm1hc3RlckRldGFpbCkge1xuXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCBncmlkVHlwZTogdGhpcy5ncmlkVHlwZSwgbWFzdGVyTm9kZTogdGhpcy5tYXN0ZXJOb2RlIH07XG4gICAgfVxuXG4gICAgdGhpcy5vblJvd0NlbGxPcHRpb24uZW1pdChkYXRhKTtcbiAgfVxufVxuIiwiQGlmICgoY2VsbFJlbmRlcmVyUGFyYW1zICYmIG5vZGU/LmxlYWYgJiYgIWNvbHVtbj8uYXV0b0dyb3VwRmllbGQgJiYgIShub2RlLmdyb3VwICYmIG5vZGUubGVhZkdyb3VwKSkgfHwgKGNvbHVtbj8ucm93QWN0aW9uTGV2ZWxzPy5pbmNsdWRlcyhub2RlLmxldmVsKSAmJiBjb2x1bW4/LmF1dG9Hcm91cEZpZWxkKSkge1xuICAgIDxkaXYgY2xhc3M9XCJidG4tYWN0aW9uLWNvbnRhaW5lclwiPlxuXG4gICAgICAgIDwhLS0gRXhwYW5zaW9uIEJ1dHRvbiBTdGF0dXMgLS0+XG4gICAgICAgICBAaWYgKChjZWxsUmVuZGVyZXJQYXJhbXM/LmRldGFpbEFjdGl2ZUJ1dHRvblN0YXR1cyA9PSAxICYmICEoZGV0YWlsQWN0aXZlRXhjbHVkZUxldmVscz8uaGFzKG5vZGUubGV2ZWwpKSkpIHtcbiAgICAgICAgICAgIDwhLS0gQSBidXR0b24sIG5vdCBhbiA8YT4gd2l0aCBhIGNsaWNrIGhhbmRsZXI6IGl0IGhhcyBubyBocmVmLCBzb1xuICAgICAgICAgICAgICAgICBpdCB3YXMgbmVpdGhlciBmb2N1c2FibGUgbm9yIG9wZXJhYmxlIGZyb20gdGhlIGtleWJvYXJkLiAtLT5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1hY3Rpb24gYnRuLWFjdGlvbi1wbGFpbiBtZS0yXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm5vZGUuZGV0YWlsQWN0aXZlXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm5vZGUuZGV0YWlsQWN0aXZlID8gJ0NvbGxhcHNlIHJvdycgOiAnRXhwYW5kIHJvdydcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJub2RlLmRldGFpbEFjdGl2ZSA/ICdDb2xsYXBzZScgOiAnRXhwYW5kJ1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImludm9rZVJvd1RvZ2dsZURldGFpbEFjdGl2ZUV4cGFuZChub2RlKVwiPlxuXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaVwiIFtuZ0NsYXNzXT1cInsgJ2JpLWNoZXZyb24tZG93bic6IG5vZGUuZGV0YWlsQWN0aXZlLCAnYmktY2hldnJvbi1yaWdodCc6ICFub2RlLmRldGFpbEFjdGl2ZSB9XCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIEdvdG8gRGV0YWlsIEJ1dHRvbiBTdGF0dXMgLS0+XG4gICAgICAgIEBpZiAoKGNlbGxSZW5kZXJlclBhcmFtcz8uZ290b0RldGFpbEJ1dHRvblN0YXR1cyA9PSAxICYmICEoZ290b0RldGFpbEV4Y2x1ZGVMZXZlbHM/Lmhhcyhub2RlLmxldmVsKSkpICYmICghaGlkZUFjdGlvbkJ1dHRvbiB8fCBhbGxvd2VkRWRpdCkpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1hY3Rpb24gYnRuLWFjdGlvbi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVscy5nb3RvRGV0YWlsXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwibGFiZWxzLmdvdG9EZXRhaWxcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpbnZva2VSb3dBY3Rpb25Hb3RvRGV0YWlsKG5vZGUsIGNvbHVtbilcIj5cblxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktbGlzdC10YXNrXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIEFkZCBOZXcgQnV0dG9uIFN0YXR1cyAtLT5cbiAgICAgICAgQGlmICgoY2VsbFJlbmRlcmVyUGFyYW1zPy5hZGROZXdCdXR0b25TdGF0dXMgPT0gMSAmJiAhKGFkZE5ld0V4Y2x1ZGVMZXZlbHM/Lmhhcyhub2RlLmxldmVsKSkpICYmICghaGlkZUFjdGlvbkJ1dHRvbiB8fCBhbGxvd2VkRWRpdCkpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1hY3Rpb24gYnRuLWFjdGlvbi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aW9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJhY3Rpb25EaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbHMuYWRkTmV3XCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwibGFiZWxzLmFkZE5ld1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImludm9rZVJvd0FjdGlvbkFkZE5ldyhub2RlLCBjb2x1bW4pXCI+XG5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXBsdXNcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gVmlldyBCdXR0b24gU3RhdHVzIC0tPlxuICAgICAgICBAaWYgKGNlbGxSZW5kZXJlclBhcmFtcz8udmlld0J1dHRvblN0YXR1cyA9PSAxKSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tYWN0aW9uIGJ0bi1hY3Rpb24tcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbHMudmlld1wiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cImxhYmVscy52aWV3XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW52b2tlUm93QWN0aW9uVmlldyhub2RlLCBjb2x1bW4pXCI+XG5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWV5ZVwiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoY2VsbFJlbmRlcmVyUGFyYW1zPy5sb2NhdGlvbkJ1dHRvblN0YXR1cyA9PSAxKSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tYWN0aW9uIGJ0bi1hY3Rpb24tcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbHMubG9jYXRpb25cIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJsYWJlbHMubG9jYXRpb25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpbnZva2VSb3dBY3Rpb25Mb2NhdGlvbihub2RlLCBjb2x1bW4pXCI+XG5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWdlby1hbHRcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gRG9jdW1lbnQgQnV0dG9uIFN0YXR1cyAtLT5cbiAgICAgICAgQGlmIChjZWxsUmVuZGVyZXJQYXJhbXM/LmRvY3VtZW50QnV0dG9uU3RhdHVzID09IDEpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1hY3Rpb24gYnRuLWFjdGlvbi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVscy5kb2N1bWVudFwiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cImxhYmVscy5kb2N1bWVudFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImludm9rZVJvd0FjdGlvbkRvY3VtZW50KG5vZGUsIGNvbHVtbilcIj5cblxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktZmlsZS1lYXJtYXJrLXRleHRcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gQ29weSBCdXR0b24gU3RhdHVzIC0tPlxuICAgICAgICBAaWYgKGNlbGxSZW5kZXJlclBhcmFtcz8uY29weUJ1dHRvblN0YXR1cyA9PSAxKSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tYWN0aW9uIGJ0bi1hY3Rpb24tcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbHMuY29weVwiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cImxhYmVscy5jb3B5XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW52b2tlUm93QWN0aW9uQ29weShub2RlLCBjb2x1bW4pXCI+XG5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWZpbGVzXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cblxuXG4gICAgICAgIDwhLS0gRGVsZXRlIEJ1dHRvbiBTdGF0dXMgLS0+XG4gICAgICAgICBAaWYgKGNlbGxSZW5kZXJlclBhcmFtcz8uZGVsZXRlQnV0dG9uU3RhdHVzID09IDEgJiYgKCFoaWRlQWN0aW9uQnV0dG9uIHx8IGFsbG93ZWRFZGl0KSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWFjdGlvbiBidG4tYWN0aW9uLWRhbmdlclwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGlvbkRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGFiZWxzLmRlbGV0ZVwiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cImxhYmVscy5kZWxldGVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpbnZva2VSb3dBY3Rpb25EZWxldGUobm9kZSwgY29sdW1uKVwiPlxuXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS10cmFzaDNcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gR290byBMaXN0IEJ1dHRvbiBTdGF0dXMgLS0+XG4gICAgICAgIEBpZiAoY2VsbFJlbmRlcmVyUGFyYW1zPy5nb3RvTGlzdEJ1dHRvblN0YXR1cyA9PT0gMSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWFjdGlvbiBidG4tYWN0aW9uLXN1Y2Nlc3NcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGFiZWxzLmdvdG9MaXN0XCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwibGFiZWxzLmdvdG9MaXN0XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW52b2tlUm93QWN0aW9uR290b0xpc3Qobm9kZSwgY29sdW1uKVwiPlxuXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1saXN0LXVsXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIEVkaXQgQnV0dG9uIFN0YXR1cyAtLT5cbiAgICAgICAgQGlmIChjZWxsUmVuZGVyZXJQYXJhbXM/LmVkaXRCdXR0b25TdGF0dXMgPT09IDEpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1hY3Rpb24gYnRuLWFjdGlvbi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aW9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJhY3Rpb25EaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbHMuZWRpdFwiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cImxhYmVscy5lZGl0XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW52b2tlUm93QWN0aW9uRWRpdChub2RlLCBjb2x1bW4pXCI+XG5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXBlbmNpbFwiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBQcmludCBCdXR0b24gU3RhdHVzIC0tPlxuICAgICAgICBAaWYgKGNlbGxSZW5kZXJlclBhcmFtcz8ucHJpbnRCdXR0b25TdGF0dXMgPT09IDEpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1hY3Rpb24gYnRuLWFjdGlvbi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aW9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJhY3Rpb25EaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbHMucHJpbnRcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJsYWJlbHMucHJpbnRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpbnZva2VSb3dBY3Rpb25QcmludChub2RlLCBjb2x1bW4pXCI+XG5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXByaW50ZXJcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gSGlzdG9yeSBCdXR0b24gU3RhdHVzIC0tPlxuICAgICAgICBAaWYgKGNlbGxSZW5kZXJlclBhcmFtcz8uaGlzdG9yeUJ1dHRvblN0YXR1cyA9PT0gMSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWFjdGlvbiBidG4tYWN0aW9uLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3Rpb25EaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFjdGlvbkRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVscy5oaXN0b3J5XCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwibGFiZWxzLmhpc3RvcnlcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpbnZva2VSb3dBY3Rpb25IaXN0b3J5KG5vZGUsIGNvbHVtbilcIj5cblxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktY2xvY2staGlzdG9yeVwiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBPcHRpb24gQnV0dG9uIFN0YXR1cyAtLT5cbiAgICAgICAgQGlmIChjZWxsUmVuZGVyZXJQYXJhbXM/Lm9wdGlvbkJ1dHRvblN0YXR1cyA9PT0gMSkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWFjdGlvbiBidG4tYWN0aW9uLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3Rpb25EaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFjdGlvbkRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVscy5vcHRpb25cIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJsYWJlbHMub3B0aW9uXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW52b2tlUm93QWN0aW9uT3B0aW9uKG5vZGUsIGNvbHVtbilcIj5cblxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktdGhyZWUtZG90cy12ZXJ0aWNhbFwiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBMYW5ndWFnZSBCdXR0b24gU3RhdHVzIC0tPlxuICAgICAgICBAaWYgKGNlbGxSZW5kZXJlclBhcmFtcz8ubGFuZ3VhZ2VCdXR0b25TdGF0dXMgPT09IDEpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1hY3Rpb24gYnRuLWFjdGlvbi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aW9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJhY3Rpb25EaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbHMubGFuZ3VhZ2VcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJsYWJlbHMubGFuZ3VhZ2VcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpbnZva2VSb3dBY3Rpb25MYW5ndWFnZShub2RlLCBjb2x1bW4pXCI+XG5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXRyYW5zbGF0ZVwiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBDZWxsIE9wdG9pb24gQnV0dG9uIFN0YXR1cyAoQ29udGV4dCBNZW51KSAtLT5cbiAgICAgICAgQGlmIChjZWxsUmVuZGVyZXJQYXJhbXM/LmNlbGxPcHRpb25CdXR0b25TdGF0dXMgPT09IDEpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1hY3Rpb24gYnRuLWFjdGlvbi1wcmltYXJ5IGJvcmRlci0wIHRleHQtYm9keVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGlvbkRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGFiZWxzLmNlbGxPcHRpb25cIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJsYWJlbHMuY2VsbE9wdGlvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImludm9rZVJvd0FjdGlvbkNlbGxPcHRpb24obm9kZSwgY29sdW1uKVwiPlxuXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS10aHJlZS1kb3RzLXZlcnRpY2FsXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbn0iXX0=
|