@rivet-health/design-system 40.44.1 → 40.44.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/accessibility/sr-only/sr-only.component.mjs +3 -3
- package/esm2022/lib/download/download.service.mjs +6 -6
- package/esm2022/lib/format/pipes/common.mjs +5 -5
- package/esm2022/lib/format/pipes/date.pipe.mjs +3 -3
- package/esm2022/lib/format/pipes/days.pipe.mjs +3 -3
- package/esm2022/lib/format/pipes/dollars.pipe.mjs +3 -3
- package/esm2022/lib/format/pipes/number.pipe.mjs +3 -3
- package/esm2022/lib/format/pipes/percentage.pipe.mjs +3 -3
- package/esm2022/lib/format/pipes/sentence-case.pipe.mjs +4 -4
- package/esm2022/lib/format/pipes/small-currency.pipe.mjs +4 -4
- package/esm2022/lib/format/pipes/small-number.pipe.mjs +4 -4
- package/esm2022/lib/format/svg-text-truncate/svg-text-truncate.directive.mjs +5 -5
- package/esm2022/lib/format/truncate/truncate.component.mjs +6 -6
- package/esm2022/lib/icon/dom-cache.mjs +1 -1
- package/esm2022/lib/icon/icon.component.mjs +5 -5
- package/esm2022/lib/icon/icons.mjs +1 -1
- package/esm2022/lib/input/alphabetic-field/alphabetic-field.component.mjs +3 -3
- package/esm2022/lib/input/auto-focus/auto-focus.directive.mjs +5 -5
- package/esm2022/lib/input/button/button.component.mjs +6 -6
- package/esm2022/lib/input/button-group/button-group.component.mjs +5 -5
- package/esm2022/lib/input/calendar/calendar.component.mjs +4 -4
- package/esm2022/lib/input/card-checkbox/card-checkbox.component.mjs +3 -3
- package/esm2022/lib/input/checkbox/checkbox.component.mjs +4 -4
- package/esm2022/lib/input/currency-field/currency-field.component.mjs +3 -3
- package/esm2022/lib/input/date/date.component.mjs +5 -5
- package/esm2022/lib/input/date-range/date-range.component.mjs +4 -4
- package/esm2022/lib/input/filter-chip/filter-chip.component.mjs +5 -5
- package/esm2022/lib/input/filter-dropdown/filter-dropdown.component.mjs +5 -5
- package/esm2022/lib/input/input-label/input-label.component.mjs +3 -3
- package/esm2022/lib/input/mentions-input/mentions-input.component.mjs +5 -5
- package/esm2022/lib/input/number-field/number-field.component.mjs +4 -4
- package/esm2022/lib/input/percentage-field/percentage-field.component.mjs +3 -3
- package/esm2022/lib/input/phone-field/phone-field.component.mjs +4 -4
- package/esm2022/lib/input/radio/radio.component.mjs +3 -3
- package/esm2022/lib/input/search/search.component.mjs +3 -3
- package/esm2022/lib/input/search-select/search-select.component.mjs +5 -5
- package/esm2022/lib/input/select/select/select.component.mjs +4 -4
- package/esm2022/lib/input/select/select-node/select-node.component.mjs +3 -3
- package/esm2022/lib/input/select/state.mjs +1 -1
- package/esm2022/lib/input/simple-select/option-group.pipe.mjs +3 -3
- package/esm2022/lib/input/simple-select/simple-select.component.mjs +4 -4
- package/esm2022/lib/input/switch-checkbox/switch-checkbox.component.mjs +4 -4
- package/esm2022/lib/input/text-field/text-field.component.mjs +4 -4
- package/esm2022/lib/input/textarea-field/textarea-field.component.mjs +3 -3
- package/esm2022/lib/input/validation-message/validation-message.component.mjs +3 -3
- package/esm2022/lib/layout/card/card-actions.component.mjs +3 -3
- package/esm2022/lib/layout/card/card-content.component.mjs +6 -6
- package/esm2022/lib/layout/card/card-header.component.mjs +6 -6
- package/esm2022/lib/layout/card/card-link.component.mjs +5 -5
- package/esm2022/lib/layout/card/card-media.component.mjs +3 -3
- package/esm2022/lib/layout/card/card.component.mjs +5 -5
- package/esm2022/lib/layout/setting-row/setting-row.component.mjs +3 -3
- package/esm2022/lib/load/loading/loading.component.mjs +4 -4
- package/esm2022/lib/load/loading-cover/loading-cover.component.mjs +3 -3
- package/esm2022/lib/navigation/editable-heading/editable-heading.component.mjs +6 -6
- package/esm2022/lib/navigation/link/link.component.mjs +6 -6
- package/esm2022/lib/navigation/page-header/page-header.component.mjs +3 -3
- package/esm2022/lib/navigation/simple-tabs/simple-tab/simple-tab.component.mjs +3 -3
- package/esm2022/lib/navigation/simple-tabs/simple-tabs/simple-tabs.component.mjs +3 -3
- package/esm2022/lib/navigation/tabs/tab/tab.component.mjs +3 -3
- package/esm2022/lib/navigation/tabs/tabs/tabs.component.mjs +3 -3
- package/esm2022/lib/navigation/views/all-views-modal/all-views-modal.component.mjs +3 -3
- package/esm2022/lib/navigation/views/edit-view/edit-view.component.mjs +5 -5
- package/esm2022/lib/navigation/views/permission-picker/permission-picker.component.mjs +5 -5
- package/esm2022/lib/navigation/views/state.mjs +1 -1
- package/esm2022/lib/navigation/views/view-menu/view-menu.component.mjs +5 -5
- package/esm2022/lib/navigation/views/views/views.component.mjs +4 -4
- package/esm2022/lib/notification/badge/badge.component.mjs +3 -3
- package/esm2022/lib/notification/banner/banner-action.component.mjs +5 -5
- package/esm2022/lib/notification/banner/banner.component.mjs +4 -4
- package/esm2022/lib/notification/map-indicator/map-indicator.component.mjs +5 -5
- package/esm2022/lib/notification/map-indicator/map-indicators.mjs +1 -1
- package/esm2022/lib/notification/notification-badge/notification-badge.component.mjs +3 -3
- package/esm2022/lib/overlay/callout/callout.component.mjs +6 -6
- package/esm2022/lib/overlay/callout/callout.helpers.mjs +1 -1
- package/esm2022/lib/overlay/callout/help/help.component.mjs +3 -3
- package/esm2022/lib/overlay/callout/lock-scroll.directive.mjs +8 -8
- package/esm2022/lib/overlay/callout/menu/menu-item/menu-item.component.mjs +5 -5
- package/esm2022/lib/overlay/callout/menu/menu.component.mjs +3 -3
- package/esm2022/lib/overlay/callout/tooltip/locked-tooltip.directive.mjs +4 -4
- package/esm2022/lib/overlay/callout/tooltip/tooltip.component.mjs +3 -3
- package/esm2022/lib/overlay/callout/tooltip/tooltip.directive.mjs +5 -5
- package/esm2022/lib/overlay/modal/dialog/dialog.component.mjs +5 -5
- package/esm2022/lib/overlay/modal/dialog-stack.service.mjs +3 -3
- package/esm2022/lib/overlay/modal/form-dialog/form-dialog.component.mjs +5 -5
- package/esm2022/lib/overlay/modal/modal.component.mjs +4 -4
- package/esm2022/lib/overlay/modal/side-sheet/side-sheet.component.mjs +3 -3
- package/esm2022/lib/overlay/overlay-outlet.component.mjs +4 -4
- package/esm2022/lib/overlay/overlay.directive.mjs +4 -4
- package/esm2022/lib/overlay/overlay.service.mjs +4 -4
- package/esm2022/lib/overlay/toast/toast-action.component.mjs +3 -3
- package/esm2022/lib/overlay/toast/toast.component.mjs +4 -4
- package/esm2022/lib/riv.module.mjs +4 -4
- package/esm2022/lib/size/size.directive.mjs +5 -5
- package/esm2022/lib/table/simple-table/coordinate-helper.mjs +1 -1
- package/esm2022/lib/table/simple-table/simple-table-cell.component.mjs +5 -5
- package/esm2022/lib/table/simple-table/simple-table-header-cell.component.mjs +5 -5
- package/esm2022/lib/table/simple-table/simple-table-row.component.mjs +3 -3
- package/esm2022/lib/table/simple-table/simple-table.component.mjs +4 -4
- package/esm2022/lib/table/table/clipboard.mjs +1 -1
- package/esm2022/lib/table/table/state-helpers/collapse-helpers.mjs +1 -1
- package/esm2022/lib/table/table/state-helpers/column-helpers.mjs +1 -1
- package/esm2022/lib/table/table/state-helpers/display-helpers.mjs +1 -1
- package/esm2022/lib/table/table/state-helpers/nesting-helpers.mjs +1 -1
- package/esm2022/lib/table/table/state-helpers/order-helpers.mjs +1 -1
- package/esm2022/lib/table/table/state-helpers/pagination-helpers.mjs +1 -1
- package/esm2022/lib/table/table/state-helpers/result-helpers.mjs +1 -1
- package/esm2022/lib/table/table/state-helpers/search-helpers.mjs +1 -1
- package/esm2022/lib/table/table/state-helpers/selection-helpers.mjs +1 -1
- package/esm2022/lib/table/table/state.mjs +1 -1
- package/esm2022/lib/table/table/table/table.component.mjs +5 -5
- package/esm2022/lib/table/table/table-collapse-all/table-collapse-all.component.mjs +5 -5
- package/esm2022/lib/table/table/table-column-settings/table-column-settings-side-sheet.component.mjs +4 -4
- package/esm2022/lib/table/table/table-column-settings/table-column-settings.component.mjs +4 -4
- package/esm2022/lib/table/table/table-csv-export/table-csv-export.component.mjs +5 -5
- package/esm2022/lib/table/table/table-header-resize-handle/table-header-resize-handle.component.mjs +6 -6
- package/esm2022/lib/table/table/table-search/table-search.component.mjs +4 -4
- package/esm2022/lib/table/table/table-search-columns/table-search-columns.component.mjs +3 -3
- package/esm2022/lib/visibility/visibility.directive.mjs +5 -5
- package/esm2022/lib/visualization/chart/chart-scaling.mjs +1 -1
- package/esm2022/lib/visualization/chart/chart.component.mjs +5 -5
- package/esm2022/lib/visualization/chart/chart.mjs +2 -2
- package/esm2022/lib/visualization/data-table/data-table-cell.component.mjs +5 -5
- package/esm2022/lib/visualization/data-table/data-table-header-cell.component.mjs +3 -3
- package/esm2022/lib/visualization/data-table/data-table-row.component.mjs +3 -3
- package/esm2022/lib/visualization/data-table/data-table.component.mjs +3 -3
- package/esm2022/lib/visualization/donut/donut.component.mjs +3 -3
- package/esm2022/lib/visualization/funnel-chart/funnel-chart.component.mjs +4 -4
- package/esm2022/lib/visualization/funnel-chart/funnel-chart.helpers.mjs +1 -1
- package/esm2022/lib/visualization/highlight/highlight.component.mjs +3 -3
- package/esm2022/lib/visualization/highlight/highlight.helpers.mjs +1 -1
- package/esm2022/lib/visualization/intervals.mjs +1 -1
- package/esm2022/lib/visualization/issue/issue.component.mjs +3 -3
- package/esm2022/lib/visualization/legend-item/legend-item.component.mjs +3 -3
- package/esm2022/lib/visualization/metric/metric.component.mjs +3 -3
- package/esm2022/lib/visualization/mini-pie/mini-pie.component.mjs +3 -3
- package/esm2022/lib/visualization/progress/progress.component.mjs +3 -3
- package/esm2022/lib/visualization/stacked-column/stacked-column.component.mjs +4 -4
- package/esm2022/lib/visualization/stacked-column/stacked-column.helpers.mjs +1 -1
- package/esm2022/lib/visualization/stacked-row/stacked-row.component.mjs +5 -5
- package/esm2022/lib/visualization/stacked-row/stacked-row.helpers.mjs +1 -1
- package/esm2022/lib/visualization/time-series/time-series.component.mjs +4 -4
- package/esm2022/lib/visualization/time-series/time-series.helpers.mjs +1 -1
- package/esm2022/lib/visualization/trend/trend.component.mjs +4 -4
- package/esm2022/lib/visualization/zero-state/zero-state.component.mjs +3 -3
- package/fesm2022/rivet-health-design-system.mjs +418 -418
- package/fesm2022/rivet-health-design-system.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -13,13 +13,13 @@ export class TableCollapseAllComponent {
|
|
|
13
13
|
isAllExpanded(collapseState) {
|
|
14
14
|
return TableCollapseHelpers.isAllExpanded(collapseState);
|
|
15
15
|
}
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
17
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableCollapseAllComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TableCollapseAllComponent, selector: "riv-table-collapse-all", inputs: { manager: "manager" }, ngImport: i0, template: "<ng-container *ngIf=\"manager?.state | async; let s\">\n <button type=\"button\" rivButton (click)=\"toggleAllCollapsed()\">\n {{ isAllExpanded(s.collapseState) ? 'Collapse all' : 'Expand all' }}\n </button>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ButtonComponent, selector: "[rivButton]", inputs: ["locked", "disabled", "loading", "full", "size", "variant", "icon", "iconPosition", "current"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
18
18
|
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableCollapseAllComponent, decorators: [{
|
|
20
20
|
type: Component,
|
|
21
21
|
args: [{ selector: 'riv-table-collapse-all', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"manager?.state | async; let s\">\n <button type=\"button\" rivButton (click)=\"toggleAllCollapsed()\">\n {{ isAllExpanded(s.collapseState) ? 'Collapse all' : 'Expand all' }}\n </button>\n</ng-container>\n" }]
|
|
22
|
-
}], ctorParameters:
|
|
22
|
+
}], ctorParameters: () => [], propDecorators: { manager: [{
|
|
23
23
|
type: Input
|
|
24
24
|
}] } });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sbGFwc2UtYWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3RhYmxlL3RhYmxlL3RhYmxlLWNvbGxhcHNlLWFsbC90YWJsZS1jb2xsYXBzZS1hbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvdGFibGUvdGFibGUtY29sbGFwc2UtYWxsL3RhYmxlLWNvbGxhcHNlLWFsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7OztBQU96RSxNQUFNLE9BQU8seUJBQXlCO0lBU3BDLGdCQUFlLENBQUM7SUFFaEIsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQztZQUN6QixJQUFJLEVBQUUsb0JBQW9CO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxhQUFhLENBQUMsYUFBd0M7UUFDcEQsT0FBTyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDM0QsQ0FBQzsrR0FuQlUseUJBQXlCO21HQUF6Qix5QkFBeUIsOEZDVHRDLHlPQUtBOzs0RkRJYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Usd0JBQXdCLG1CQUVqQix1QkFBdUIsQ0FBQyxNQUFNO3dEQVMvQyxPQUFPO3NCQUROLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUml2VGFibGUgfSBmcm9tICcuLi9zdGF0ZSc7XG5pbXBvcnQgeyBUYWJsZUNvbGxhcHNlSGVscGVycyB9IGZyb20gJy4uL3N0YXRlLWhlbHBlcnMvY29sbGFwc2UtaGVscGVycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Jpdi10YWJsZS1jb2xsYXBzZS1hbGwnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtY29sbGFwc2UtYWxsLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29sbGFwc2VBbGxDb21wb25lbnQ8XG4gIFIgZXh0ZW5kcyBSaXZUYWJsZS5Sb3csXG4gIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICBHIGV4dGVuZHMgUml2VGFibGUuR3JvdXAsXG4+IHtcbiAgQElucHV0KClcbiAgbWFuYWdlcj86IFJpdlRhYmxlLk1hbmFnZXI8UiwgQywgRiwgRz47XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHRvZ2dsZUFsbENvbGxhcHNlZCgpIHtcbiAgICB0aGlzLm1hbmFnZXI/LmFjdGlvbnMubmV4dCh7XG4gICAgICB0eXBlOiAndG9nZ2xlQWxsQ29sbGFwc2VkJyxcbiAgICB9KTtcbiAgfVxuXG4gIGlzQWxsRXhwYW5kZWQoY29sbGFwc2VTdGF0ZTogUml2VGFibGUuQ29sbGFwc2VTdGF0ZTxSPikge1xuICAgIHJldHVybiBUYWJsZUNvbGxhcHNlSGVscGVycy5pc0FsbEV4cGFuZGVkKGNvbGxhcHNlU3RhdGUpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwibWFuYWdlcj8uc3RhdGUgfCBhc3luYzsgbGV0IHNcIj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgcml2QnV0dG9uIChjbGljayk9XCJ0b2dnbGVBbGxDb2xsYXBzZWQoKVwiPlxuICAgIHt7IGlzQWxsRXhwYW5kZWQocy5jb2xsYXBzZVN0YXRlKSA/ICdDb2xsYXBzZSBhbGwnIDogJ0V4cGFuZCBhbGwnIH19XG4gIDwvYnV0dG9uPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
package/esm2022/lib/table/table/table-column-settings/table-column-settings-side-sheet.component.mjs
CHANGED
|
@@ -212,10 +212,10 @@ export class TableColumnSettingsSideSheetComponent {
|
|
|
212
212
|
hasUnavailableColumnsSection(columns, searching) {
|
|
213
213
|
return columns.unavailableColumns.length > 0 && searching === false;
|
|
214
214
|
}
|
|
215
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
216
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableColumnSettingsSideSheetComponent, selector: "riv-table-column-settings-side-sheet", inputs: { manager: "manager" }, viewQueries: [{ propertyName: "anchor", first: true, predicate: ["trigger"], descendants: true, read: ElementRef }], ngImport: i0, template: "<button type=\"button\" #trigger rivButton (click)=\"open.next(true)\">\n Columns\n</button>\n\n<ng-container *ngIf=\"columnList | async; let columns\">\n <ng-container *ngIf=\"open | async\">\n <riv-side-sheet\n [label]=\"'Columns'\"\n (close)=\"open.next(false); filterQuery.next('')\"\n >\n <div class=\"content\">\n <div class=\"title\">\n <span>Columns</span>\n <button\n type=\"button\"\n rivButton\n [variant]=\"'ghost'\"\n [icon]=\"'X'\"\n (click)=\"open.next(false); filterQuery.next('')\"\n ></button>\n </div>\n <riv-search\n [name]=\"'column-search'\"\n [value]=\"(filterQuery | async) || ''\"\n (valueChange)=\"filterQuery.next($event)\"\n ></riv-search>\n <riv-banner\n *ngIf=\"\n columns.disabledColumns.length > 0 &&\n disableEnablingColumns(columns)\n \"\n [iconTooltip]=\"iconLimitTooltip()\"\n >\n Column limit reached\n </riv-banner>\n <div class=\"columns\">\n <div *ngIf=\"hasEnabledColumnsSection(columns)\">\n <div\n class=\"column-header drop-zone\"\n (drop)=\"dropEnabledState(true, columns.enabledColumns.length)\"\n (dragenter)=\"$event.preventDefault(); dragOver(-1)\"\n >\n <span class=\"column-header-label\">Shown in table</span>\n <button\n type=\"button\"\n *ngIf=\"(searching | async) === false\"\n rivButton\n [variant]=\"'ghost'\"\n [disabled]=\"allColumnsEnabled(columns)\"\n (click)=\"enableAllColumns(false)\"\n >\n Hide all\n </button>\n </div>\n\n <div class=\"options\">\n <ng-container\n *ngFor=\"let column of columns.enabledColumns; let i = index\"\n >\n <div\n class=\"option\"\n [attr.draggable]=\"\n (searching | async) === false && !column.alwaysPinned\n \"\n [attr.droppable]=\"\n (searching | async) === false && !column.alwaysPinned\n \"\n [class.drop-zone]=\"!column.alwaysPinned\"\n (dragstart)=\"dragStart(column.stateIndex, column.key)\"\n (dragenter)=\"$event.preventDefault(); dragOver(i)\"\n (drop)=\"\n drop(\n i,\n column.stateIndex,\n true,\n columns.enabledColumns.length\n )\n \"\n [class.dragged-over-top]=\"\n draggedOverColumnIdx === i &&\n draggedColumnIdx !== null &&\n draggedColumnIdx > i &&\n !column.alwaysPinned\n \"\n [class.dragged-over-bottom]=\"\n draggedOverColumnIdx === i &&\n draggedColumnIdx !== null &&\n draggedColumnIdx < i &&\n !column.alwaysPinned\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: { column, columns }\n \"\n ></ng-container>\n </div>\n <div\n *ngIf=\"\n column.isLastPinnedColumn && (searching | async) === false\n \"\n class=\"column scroll-padding\"\n >\n <div class=\"frozen\">\n <span class=\"pinned\">\n <riv-icon [name]=\"'PinInactive'\" [size]=\"20\"></riv-icon>\n </span>\n <span>Frozen through here</span>\n </div>\n\n <button\n type=\"button\"\n class=\"hidden\"\n rivButton\n [rivTooltip]=\"\n !column.alwaysPinned\n ? 'Un-freeze columns'\n : 'The above columns cannot be unfrozen'\n \"\n class=\"disable-override\"\n [class.disabled]=\"!column.enabled || column.alwaysPinned\"\n [variant]=\"'ghost'\"\n [size]=\"'small'\"\n [icon]=\"'X'\"\n (click)=\"\n columnFreezeUpTo(\n false,\n column.stateIndex,\n 'freezeDivider'\n )\n \"\n ></button>\n </div>\n </ng-container>\n </div>\n </div>\n <div\n *ngIf=\"\n hasNoColumnsShownSection(columns, (searching | async) ?? false)\n \"\n class=\"column-header drop-zone\"\n (drop)=\"dropEnabledState(true, columns.enabledColumns.length)\"\n (dragenter)=\"$event.preventDefault(); dragOver(-1)\"\n >\n <span>No columns shown</span>\n <button\n type=\"button\"\n rivButton\n [variant]=\"'ghost'\"\n (click)=\"resetToDefault()\"\n >\n Reset to default\n </button>\n </div>\n <div\n class=\"divider\"\n *ngIf=\"\n hasDisabledColumnsSection(columns) &&\n (hasEnabledColumnsSection(columns) ||\n hasNoColumnsShownSection(columns, (searching | async) ?? false))\n \"\n ></div>\n <div\n *ngIf=\"hasDisabledColumnsSection(columns)\"\n (drop)=\"dropEnabledState(false, columns.enabledColumns.length)\"\n (dragenter)=\"$event.preventDefault(); dragOver(-1)\"\n >\n <div class=\"column-header\">\n <span class=\"column-header-label\">Hidden from table</span>\n\n <button\n type=\"button\"\n *ngIf=\"\n (searching | async) === false &&\n showAllColumnsVisible(columns)\n \"\n rivButton\n [variant]=\"'ghost'\"\n [disabled]=\"allColumnsDisabled(columns)\"\n (click)=\"enableAllColumns(true)\"\n >\n Show all\n </button>\n </div>\n\n <div class=\"options\">\n <div\n *ngFor=\"let column of columns.disabledColumns; let i = index\"\n [attr.draggable]=\"\n (searching | async) === false &&\n !disableEnablingColumns(columns) &&\n !column.alwaysPinned\n \"\n [attr.droppable]=\"\n (searching | async) === false &&\n !disableEnablingColumns(columns) &&\n !column.alwaysPinned\n \"\n [class.drop-zone]=\"\n !disableEnablingColumns(columns) && !column.alwaysPinned\n \"\n (dragstart)=\"dragStart(column.stateIndex, column.key)\"\n (dragenter)=\"\n $event.preventDefault();\n dragOver(i + columns.enabledColumns.length)\n \"\n (drop)=\"\n drop(\n i + columns.enabledColumns.length,\n column.stateIndex,\n false,\n columns.enabledColumns.length\n )\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: { column, columns }\n \"\n ></ng-container>\n </div>\n </div>\n </div>\n <div\n class=\"divider\"\n *ngIf=\"\n hasUnavailableColumnsSection(\n columns,\n (searching | async) ?? false\n ) &&\n (hasDisabledColumnsSection(columns) ||\n hasEnabledColumnsSection(columns) ||\n hasNoColumnsShownSection(columns, (searching | async) ?? false))\n \"\n ></div>\n <div\n *ngIf=\"\n hasUnavailableColumnsSection(\n columns,\n (searching | async) ?? false\n )\n \"\n >\n <div class=\"column-header\">\n <span class=\"column-header-label\">\n {{ columns.unavailableFolderTitle }}\n </span>\n\n <button\n type=\"button\"\n rivButton\n class=\"chevron\"\n [variant]=\"'ghost'\"\n [size]=\"'small'\"\n [icon]=\"\n unavailableFolderCollapsed ? 'ChevronDown' : 'ChevronUp'\n \"\n (click)=\"\n unavailableFolderCollapsed = !unavailableFolderCollapsed\n \"\n ></button>\n </div>\n\n <div *ngIf=\"!unavailableFolderCollapsed\" class=\"options\">\n <div\n *ngFor=\"let column of columns.unavailableColumns; let i = index\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: { column, columns }\n \"\n ></ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n </riv-side-sheet>\n </ng-container>\n</ng-container>\n\n<ng-template #columnTemplate let-column=\"column\" let-columns=\"columns\">\n <div\n class=\"column scroll-padding\"\n [class.disabled]=\"disableEnablingColumn(column, columns)\"\n >\n <div class=\"column\" [class.unavailable]=\"column.isUnavailable\">\n <ng-container\n *ngTemplateOutlet=\"reorderIcon; context: { column, columns }\"\n ></ng-container>\n\n <riv-highlight\n [text]=\"column.resolvedName\"\n [indices]=\"column.highlightIndices\"\n ></riv-highlight>\n </div>\n <div>\n <riv-menu\n class=\"hidden\"\n *ngIf=\"\n (column.enabled || !disableEnablingColumns(columns)) &&\n !column.alwaysPinned &&\n !column.isUnavailable\n \"\n >\n <button\n type=\"button\"\n *ngIf=\"column.enabled && !column.pinned\"\n riv-menu-item\n (click)=\"\n columnFreezeUpTo(true, column.stateIndex, 'optionsMenu', column.key)\n \"\n >\n Freeze up to column\n </button>\n <button\n type=\"button\"\n *ngIf=\"column.enabled && column.pinned\"\n riv-menu-item\n (click)=\"columnFreezeUpTo(false, 0, 'optionsMenu', column.key)\"\n >\n Un-freeze columns\n </button>\n <button\n type=\"button\"\n riv-menu-item\n (click)=\"columnMoveTo(column, 'start')\"\n >\n Move to start\n </button>\n <button\n type=\"button\"\n riv-menu-item\n (click)=\"columnMoveTo(column, 'end')\"\n >\n Move to end\n </button>\n <button\n *ngIf=\"!column.alwaysVisible\"\n type=\"button\"\n riv-menu-item\n (click)=\"columnEnabledChange(column, !column.enabled, 'optionsMenu')\"\n >\n {{ column.enabled ? 'Hide column' : 'Show column' }}\n </button>\n </riv-menu>\n\n <ng-container\n *ngTemplateOutlet=\"enableIcon; context: { column, columns }\"\n ></ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #reorderIcon let-column=\"column\" let-columns=\"columns\">\n <ng-container *ngIf=\"(searching | async) === false\">\n <span\n *ngIf=\"!column.alwaysPinned && !column.isUnavailable\"\n class=\"reorder\"\n [class.disabled]=\"disableEnablingColumn(column, columns)\"\n [rivTooltip]=\"column.tooltipForReorderIcon\"\n >\n <riv-icon [name]=\"'Reorder'\" [size]=\"20\"></riv-icon>\n </span>\n\n <span\n *ngIf=\"column.alwaysPinned || column.isUnavailable\"\n class=\"reorder-locked\"\n [class.disabled]=\"true\"\n [rivTooltip]=\"column.tooltipForReorderIcon\"\n >\n <riv-icon [name]=\"'Lock'\" [size]=\"20\"></riv-icon>\n </span>\n </ng-container>\n</ng-template>\n\n<ng-template #enableIcon let-column=\"column\" let-columns=\"columns\">\n <button\n *ngIf=\"\n !column.alwaysVisible && !column.alwaysPinned && !column.isUnavailable\n \"\n type=\"button\"\n rivButton\n [rivTooltip]=\"\n column.enabled\n ? 'Hide column'\n : disableEnablingColumns(columns)\n ? limitTooltip()\n : 'Show column'\n \"\n class=\"disable-override\"\n [class.disabled]=\"!column.enabled\"\n [disabled]=\"disableEnablingColumn(column, columns)\"\n [variant]=\"'ghost'\"\n [size]=\"'small'\"\n [icon]=\"column.enabled ? 'Eye' : 'EyeOff'\"\n (click)=\"columnEnabledChange(column, !column.enabled, 'eyeIcon')\"\n ></button>\n\n <button\n *ngIf=\"column.alwaysVisible || column.alwaysPinned || column.isUnavailable\"\n type=\"button\"\n rivButton\n [rivTooltip]=\"column.tooltipForHideIcon\"\n [disabled]=\"true\"\n [class.disabled]=\"true\"\n [variant]=\"'ghost'\"\n [size]=\"'small'\"\n [icon]=\"'Lock'\"\n ></button>\n</ng-template>\n", styles: [".content{padding:var(--size-large);display:flex;flex-direction:column;gap:var(--size-medium);height:100%}.title{font:var(--title-02);display:flex;justify-content:space-between;align-items:center}.column-header{color:var(--type-light-low-contrast);display:flex;justify-content:space-between;align-items:center;font:var(--input-medium)}.column-header-label{padding:var(--size-small) 0}.column{display:flex;align-items:center;justify-content:space-between;position:relative;font:var(--input-medium)}.column:hover{background-color:var(--surface-light-1)}.column:hover .hidden{opacity:1}.column.disabled,.column.unavailable{color:var(--type-light-low-contrast)}.reorder{padding-right:var(--size-medium);display:flex;justify-content:center;align-items:center;align-self:stretch;color:var(--type-light-low-contrast);cursor:grab}.reorder.disabled{cursor:not-allowed}.reorder-locked{padding-right:var(--size-medium);display:flex;justify-content:center;align-items:center;align-self:stretch;color:var(--type-light-low-contrast);cursor:not-allowed}.pinned{padding-right:var(--size-medium);display:flex;justify-content:center;align-items:center;align-self:stretch}.frozen{display:flex;align-items:center;justify-content:space-between;position:relative;font:var(--input-medium);color:var(--type-light-low-contrast)}.disable-override.disabled:hover{cursor:pointer}.hidden{opacity:0}.columns{flex-grow:1;overflow-y:auto}.options{display:flex;flex-direction:column}.option{position:relative}.option.dragged-over-top:before,.option.dragged-over-bottom:before{content:\"\";position:absolute;left:0;right:0;height:var(--size-xxsmall);background-color:var(--brand);box-shadow:0 0 var(--size-xxsmall) var(--brand)}.option.dragged-over-top:before{top:0}.option.dragged-over-bottom:before{bottom:0}.scroll-padding{padding-right:var(--base-grid-size)}.divider{border-top:var(--border-width) solid var(--border-light);margin-top:var(--size-medium);margin-bottom:var(--size-medium)}.chevron{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.BannerComponent, selector: "riv-banner", inputs: ["variant", "icon", "iconTooltip", "heading", "dismissable"], outputs: ["dismiss"] }, { kind: "component", type: i3.ButtonComponent, selector: "[rivButton]", inputs: ["locked", "disabled", "loading", "full", "size", "variant", "icon", "iconPosition", "current"] }, { kind: "component", type: i4.HighlightComponent, selector: "riv-highlight", inputs: ["text", "indices"] }, { kind: "component", type: i5.IconComponent, selector: "riv-icon", inputs: ["name", "fillColor", "size", "customSize", "strokeWidth"] }, { kind: "component", type: i6.MenuComponent, selector: "riv-menu", inputs: ["preferredPosition", "disabled"] }, { kind: "component", type: i7.MenuItemComponent, selector: "[riv-menu-item]", inputs: ["locked", "disabled", "variant"] }, { kind: "component", type: i8.SearchComponent, selector: "riv-search", inputs: ["placeholder", "name", "labelTemplate"] }, { kind: "component", type: i9.SideSheetComponent, selector: "riv-side-sheet", inputs: ["topOffset", "width", "obscure", "label"], outputs: ["close"] }, { kind: "directive", type: i10.TooltipDirective, selector: "[rivTooltip]", inputs: ["rivTooltip", "rivTooltipTheme", "rivTooltipMaxWidth", "rivTooltipPreferredPosition", "rivTooltipAnchor", "rivTooltipCloseDelay", "rivTooltipOpenDelay", "rivTooltipGracePeriod"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
215
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableColumnSettingsSideSheetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
216
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TableColumnSettingsSideSheetComponent, selector: "riv-table-column-settings-side-sheet", inputs: { manager: "manager" }, viewQueries: [{ propertyName: "anchor", first: true, predicate: ["trigger"], descendants: true, read: ElementRef }], ngImport: i0, template: "<button type=\"button\" #trigger rivButton (click)=\"open.next(true)\">\n Columns\n</button>\n\n<ng-container *ngIf=\"columnList | async; let columns\">\n <ng-container *ngIf=\"open | async\">\n <riv-side-sheet\n [label]=\"'Columns'\"\n (close)=\"open.next(false); filterQuery.next('')\"\n >\n <div class=\"content\">\n <div class=\"title\">\n <span>Columns</span>\n <button\n type=\"button\"\n rivButton\n [variant]=\"'ghost'\"\n [icon]=\"'X'\"\n (click)=\"open.next(false); filterQuery.next('')\"\n ></button>\n </div>\n <riv-search\n [name]=\"'column-search'\"\n [value]=\"(filterQuery | async) || ''\"\n (valueChange)=\"filterQuery.next($event)\"\n ></riv-search>\n <riv-banner\n *ngIf=\"\n columns.disabledColumns.length > 0 &&\n disableEnablingColumns(columns)\n \"\n [iconTooltip]=\"iconLimitTooltip()\"\n >\n Column limit reached\n </riv-banner>\n <div class=\"columns\">\n <div *ngIf=\"hasEnabledColumnsSection(columns)\">\n <div\n class=\"column-header drop-zone\"\n (drop)=\"dropEnabledState(true, columns.enabledColumns.length)\"\n (dragenter)=\"$event.preventDefault(); dragOver(-1)\"\n >\n <span class=\"column-header-label\">Shown in table</span>\n <button\n type=\"button\"\n *ngIf=\"(searching | async) === false\"\n rivButton\n [variant]=\"'ghost'\"\n [disabled]=\"allColumnsEnabled(columns)\"\n (click)=\"enableAllColumns(false)\"\n >\n Hide all\n </button>\n </div>\n\n <div class=\"options\">\n <ng-container\n *ngFor=\"let column of columns.enabledColumns; let i = index\"\n >\n <div\n class=\"option\"\n [attr.draggable]=\"\n (searching | async) === false && !column.alwaysPinned\n \"\n [attr.droppable]=\"\n (searching | async) === false && !column.alwaysPinned\n \"\n [class.drop-zone]=\"!column.alwaysPinned\"\n (dragstart)=\"dragStart(column.stateIndex, column.key)\"\n (dragenter)=\"$event.preventDefault(); dragOver(i)\"\n (drop)=\"\n drop(\n i,\n column.stateIndex,\n true,\n columns.enabledColumns.length\n )\n \"\n [class.dragged-over-top]=\"\n draggedOverColumnIdx === i &&\n draggedColumnIdx !== null &&\n draggedColumnIdx > i &&\n !column.alwaysPinned\n \"\n [class.dragged-over-bottom]=\"\n draggedOverColumnIdx === i &&\n draggedColumnIdx !== null &&\n draggedColumnIdx < i &&\n !column.alwaysPinned\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: { column, columns }\n \"\n ></ng-container>\n </div>\n <div\n *ngIf=\"\n column.isLastPinnedColumn && (searching | async) === false\n \"\n class=\"column scroll-padding\"\n >\n <div class=\"frozen\">\n <span class=\"pinned\">\n <riv-icon [name]=\"'PinInactive'\" [size]=\"20\"></riv-icon>\n </span>\n <span>Frozen through here</span>\n </div>\n\n <button\n type=\"button\"\n class=\"hidden\"\n rivButton\n [rivTooltip]=\"\n !column.alwaysPinned\n ? 'Un-freeze columns'\n : 'The above columns cannot be unfrozen'\n \"\n class=\"disable-override\"\n [class.disabled]=\"!column.enabled || column.alwaysPinned\"\n [variant]=\"'ghost'\"\n [size]=\"'small'\"\n [icon]=\"'X'\"\n (click)=\"\n columnFreezeUpTo(\n false,\n column.stateIndex,\n 'freezeDivider'\n )\n \"\n ></button>\n </div>\n </ng-container>\n </div>\n </div>\n <div\n *ngIf=\"\n hasNoColumnsShownSection(columns, (searching | async) ?? false)\n \"\n class=\"column-header drop-zone\"\n (drop)=\"dropEnabledState(true, columns.enabledColumns.length)\"\n (dragenter)=\"$event.preventDefault(); dragOver(-1)\"\n >\n <span>No columns shown</span>\n <button\n type=\"button\"\n rivButton\n [variant]=\"'ghost'\"\n (click)=\"resetToDefault()\"\n >\n Reset to default\n </button>\n </div>\n <div\n class=\"divider\"\n *ngIf=\"\n hasDisabledColumnsSection(columns) &&\n (hasEnabledColumnsSection(columns) ||\n hasNoColumnsShownSection(columns, (searching | async) ?? false))\n \"\n ></div>\n <div\n *ngIf=\"hasDisabledColumnsSection(columns)\"\n (drop)=\"dropEnabledState(false, columns.enabledColumns.length)\"\n (dragenter)=\"$event.preventDefault(); dragOver(-1)\"\n >\n <div class=\"column-header\">\n <span class=\"column-header-label\">Hidden from table</span>\n\n <button\n type=\"button\"\n *ngIf=\"\n (searching | async) === false &&\n showAllColumnsVisible(columns)\n \"\n rivButton\n [variant]=\"'ghost'\"\n [disabled]=\"allColumnsDisabled(columns)\"\n (click)=\"enableAllColumns(true)\"\n >\n Show all\n </button>\n </div>\n\n <div class=\"options\">\n <div\n *ngFor=\"let column of columns.disabledColumns; let i = index\"\n [attr.draggable]=\"\n (searching | async) === false &&\n !disableEnablingColumns(columns) &&\n !column.alwaysPinned\n \"\n [attr.droppable]=\"\n (searching | async) === false &&\n !disableEnablingColumns(columns) &&\n !column.alwaysPinned\n \"\n [class.drop-zone]=\"\n !disableEnablingColumns(columns) && !column.alwaysPinned\n \"\n (dragstart)=\"dragStart(column.stateIndex, column.key)\"\n (dragenter)=\"\n $event.preventDefault();\n dragOver(i + columns.enabledColumns.length)\n \"\n (drop)=\"\n drop(\n i + columns.enabledColumns.length,\n column.stateIndex,\n false,\n columns.enabledColumns.length\n )\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: { column, columns }\n \"\n ></ng-container>\n </div>\n </div>\n </div>\n <div\n class=\"divider\"\n *ngIf=\"\n hasUnavailableColumnsSection(\n columns,\n (searching | async) ?? false\n ) &&\n (hasDisabledColumnsSection(columns) ||\n hasEnabledColumnsSection(columns) ||\n hasNoColumnsShownSection(columns, (searching | async) ?? false))\n \"\n ></div>\n <div\n *ngIf=\"\n hasUnavailableColumnsSection(\n columns,\n (searching | async) ?? false\n )\n \"\n >\n <div class=\"column-header\">\n <span class=\"column-header-label\">\n {{ columns.unavailableFolderTitle }}\n </span>\n\n <button\n type=\"button\"\n rivButton\n class=\"chevron\"\n [variant]=\"'ghost'\"\n [size]=\"'small'\"\n [icon]=\"\n unavailableFolderCollapsed ? 'ChevronDown' : 'ChevronUp'\n \"\n (click)=\"\n unavailableFolderCollapsed = !unavailableFolderCollapsed\n \"\n ></button>\n </div>\n\n <div *ngIf=\"!unavailableFolderCollapsed\" class=\"options\">\n <div\n *ngFor=\"let column of columns.unavailableColumns; let i = index\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: { column, columns }\n \"\n ></ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n </riv-side-sheet>\n </ng-container>\n</ng-container>\n\n<ng-template #columnTemplate let-column=\"column\" let-columns=\"columns\">\n <div\n class=\"column scroll-padding\"\n [class.disabled]=\"disableEnablingColumn(column, columns)\"\n >\n <div class=\"column\" [class.unavailable]=\"column.isUnavailable\">\n <ng-container\n *ngTemplateOutlet=\"reorderIcon; context: { column, columns }\"\n ></ng-container>\n\n <riv-highlight\n [text]=\"column.resolvedName\"\n [indices]=\"column.highlightIndices\"\n ></riv-highlight>\n </div>\n <div>\n <riv-menu\n class=\"hidden\"\n *ngIf=\"\n (column.enabled || !disableEnablingColumns(columns)) &&\n !column.alwaysPinned &&\n !column.isUnavailable\n \"\n >\n <button\n type=\"button\"\n *ngIf=\"column.enabled && !column.pinned\"\n riv-menu-item\n (click)=\"\n columnFreezeUpTo(true, column.stateIndex, 'optionsMenu', column.key)\n \"\n >\n Freeze up to column\n </button>\n <button\n type=\"button\"\n *ngIf=\"column.enabled && column.pinned\"\n riv-menu-item\n (click)=\"columnFreezeUpTo(false, 0, 'optionsMenu', column.key)\"\n >\n Un-freeze columns\n </button>\n <button\n type=\"button\"\n riv-menu-item\n (click)=\"columnMoveTo(column, 'start')\"\n >\n Move to start\n </button>\n <button\n type=\"button\"\n riv-menu-item\n (click)=\"columnMoveTo(column, 'end')\"\n >\n Move to end\n </button>\n <button\n *ngIf=\"!column.alwaysVisible\"\n type=\"button\"\n riv-menu-item\n (click)=\"columnEnabledChange(column, !column.enabled, 'optionsMenu')\"\n >\n {{ column.enabled ? 'Hide column' : 'Show column' }}\n </button>\n </riv-menu>\n\n <ng-container\n *ngTemplateOutlet=\"enableIcon; context: { column, columns }\"\n ></ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #reorderIcon let-column=\"column\" let-columns=\"columns\">\n <ng-container *ngIf=\"(searching | async) === false\">\n <span\n *ngIf=\"!column.alwaysPinned && !column.isUnavailable\"\n class=\"reorder\"\n [class.disabled]=\"disableEnablingColumn(column, columns)\"\n [rivTooltip]=\"column.tooltipForReorderIcon\"\n >\n <riv-icon [name]=\"'Reorder'\" [size]=\"20\"></riv-icon>\n </span>\n\n <span\n *ngIf=\"column.alwaysPinned || column.isUnavailable\"\n class=\"reorder-locked\"\n [class.disabled]=\"true\"\n [rivTooltip]=\"column.tooltipForReorderIcon\"\n >\n <riv-icon [name]=\"'Lock'\" [size]=\"20\"></riv-icon>\n </span>\n </ng-container>\n</ng-template>\n\n<ng-template #enableIcon let-column=\"column\" let-columns=\"columns\">\n <button\n *ngIf=\"\n !column.alwaysVisible && !column.alwaysPinned && !column.isUnavailable\n \"\n type=\"button\"\n rivButton\n [rivTooltip]=\"\n column.enabled\n ? 'Hide column'\n : disableEnablingColumns(columns)\n ? limitTooltip()\n : 'Show column'\n \"\n class=\"disable-override\"\n [class.disabled]=\"!column.enabled\"\n [disabled]=\"disableEnablingColumn(column, columns)\"\n [variant]=\"'ghost'\"\n [size]=\"'small'\"\n [icon]=\"column.enabled ? 'Eye' : 'EyeOff'\"\n (click)=\"columnEnabledChange(column, !column.enabled, 'eyeIcon')\"\n ></button>\n\n <button\n *ngIf=\"column.alwaysVisible || column.alwaysPinned || column.isUnavailable\"\n type=\"button\"\n rivButton\n [rivTooltip]=\"column.tooltipForHideIcon\"\n [disabled]=\"true\"\n [class.disabled]=\"true\"\n [variant]=\"'ghost'\"\n [size]=\"'small'\"\n [icon]=\"'Lock'\"\n ></button>\n</ng-template>\n", styles: [".content{padding:var(--size-large);display:flex;flex-direction:column;gap:var(--size-medium);height:100%}.title{font:var(--title-02);display:flex;justify-content:space-between;align-items:center}.column-header{color:var(--type-light-low-contrast);display:flex;justify-content:space-between;align-items:center;font:var(--input-medium)}.column-header-label{padding:var(--size-small) 0}.column{display:flex;align-items:center;justify-content:space-between;position:relative;font:var(--input-medium)}.column:hover{background-color:var(--surface-light-1)}.column:hover .hidden{opacity:1}.column.disabled,.column.unavailable{color:var(--type-light-low-contrast)}.reorder{padding-right:var(--size-medium);display:flex;justify-content:center;align-items:center;align-self:stretch;color:var(--type-light-low-contrast);cursor:grab}.reorder.disabled{cursor:not-allowed}.reorder-locked{padding-right:var(--size-medium);display:flex;justify-content:center;align-items:center;align-self:stretch;color:var(--type-light-low-contrast);cursor:not-allowed}.pinned{padding-right:var(--size-medium);display:flex;justify-content:center;align-items:center;align-self:stretch}.frozen{display:flex;align-items:center;justify-content:space-between;position:relative;font:var(--input-medium);color:var(--type-light-low-contrast)}.disable-override.disabled:hover{cursor:pointer}.hidden{opacity:0}.columns{flex-grow:1;overflow-y:auto}.options{display:flex;flex-direction:column}.option{position:relative}.option.dragged-over-top:before,.option.dragged-over-bottom:before{content:\"\";position:absolute;left:0;right:0;height:var(--size-xxsmall);background-color:var(--brand);box-shadow:0 0 var(--size-xxsmall) var(--brand)}.option.dragged-over-top:before{top:0}.option.dragged-over-bottom:before{bottom:0}.scroll-padding{padding-right:var(--base-grid-size)}.divider{border-top:var(--border-width) solid var(--border-light);margin-top:var(--size-medium);margin-bottom:var(--size-medium)}.chevron{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.BannerComponent, selector: "riv-banner", inputs: ["variant", "icon", "iconTooltip", "heading", "dismissable"], outputs: ["dismiss"] }, { kind: "component", type: i3.ButtonComponent, selector: "[rivButton]", inputs: ["locked", "disabled", "loading", "full", "size", "variant", "icon", "iconPosition", "current"] }, { kind: "component", type: i4.HighlightComponent, selector: "riv-highlight", inputs: ["text", "indices"] }, { kind: "component", type: i5.IconComponent, selector: "riv-icon", inputs: ["name", "fillColor", "size", "customSize", "strokeWidth"] }, { kind: "component", type: i6.MenuComponent, selector: "riv-menu", inputs: ["preferredPosition", "disabled"] }, { kind: "component", type: i7.MenuItemComponent, selector: "[riv-menu-item]", inputs: ["locked", "disabled", "variant"] }, { kind: "component", type: i8.SearchComponent, selector: "riv-search", inputs: ["placeholder", "name", "labelTemplate"] }, { kind: "component", type: i9.SideSheetComponent, selector: "riv-side-sheet", inputs: ["topOffset", "width", "obscure", "label"], outputs: ["close"] }, { kind: "directive", type: i10.TooltipDirective, selector: "[rivTooltip]", inputs: ["rivTooltip", "rivTooltipTheme", "rivTooltipMaxWidth", "rivTooltipPreferredPosition", "rivTooltipAnchor", "rivTooltipCloseDelay", "rivTooltipOpenDelay", "rivTooltipGracePeriod"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
217
217
|
}
|
|
218
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
218
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableColumnSettingsSideSheetComponent, decorators: [{
|
|
219
219
|
type: Component,
|
|
220
220
|
args: [{ selector: 'riv-table-column-settings-side-sheet', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button type=\"button\" #trigger rivButton (click)=\"open.next(true)\">\n Columns\n</button>\n\n<ng-container *ngIf=\"columnList | async; let columns\">\n <ng-container *ngIf=\"open | async\">\n <riv-side-sheet\n [label]=\"'Columns'\"\n (close)=\"open.next(false); filterQuery.next('')\"\n >\n <div class=\"content\">\n <div class=\"title\">\n <span>Columns</span>\n <button\n type=\"button\"\n rivButton\n [variant]=\"'ghost'\"\n [icon]=\"'X'\"\n (click)=\"open.next(false); filterQuery.next('')\"\n ></button>\n </div>\n <riv-search\n [name]=\"'column-search'\"\n [value]=\"(filterQuery | async) || ''\"\n (valueChange)=\"filterQuery.next($event)\"\n ></riv-search>\n <riv-banner\n *ngIf=\"\n columns.disabledColumns.length > 0 &&\n disableEnablingColumns(columns)\n \"\n [iconTooltip]=\"iconLimitTooltip()\"\n >\n Column limit reached\n </riv-banner>\n <div class=\"columns\">\n <div *ngIf=\"hasEnabledColumnsSection(columns)\">\n <div\n class=\"column-header drop-zone\"\n (drop)=\"dropEnabledState(true, columns.enabledColumns.length)\"\n (dragenter)=\"$event.preventDefault(); dragOver(-1)\"\n >\n <span class=\"column-header-label\">Shown in table</span>\n <button\n type=\"button\"\n *ngIf=\"(searching | async) === false\"\n rivButton\n [variant]=\"'ghost'\"\n [disabled]=\"allColumnsEnabled(columns)\"\n (click)=\"enableAllColumns(false)\"\n >\n Hide all\n </button>\n </div>\n\n <div class=\"options\">\n <ng-container\n *ngFor=\"let column of columns.enabledColumns; let i = index\"\n >\n <div\n class=\"option\"\n [attr.draggable]=\"\n (searching | async) === false && !column.alwaysPinned\n \"\n [attr.droppable]=\"\n (searching | async) === false && !column.alwaysPinned\n \"\n [class.drop-zone]=\"!column.alwaysPinned\"\n (dragstart)=\"dragStart(column.stateIndex, column.key)\"\n (dragenter)=\"$event.preventDefault(); dragOver(i)\"\n (drop)=\"\n drop(\n i,\n column.stateIndex,\n true,\n columns.enabledColumns.length\n )\n \"\n [class.dragged-over-top]=\"\n draggedOverColumnIdx === i &&\n draggedColumnIdx !== null &&\n draggedColumnIdx > i &&\n !column.alwaysPinned\n \"\n [class.dragged-over-bottom]=\"\n draggedOverColumnIdx === i &&\n draggedColumnIdx !== null &&\n draggedColumnIdx < i &&\n !column.alwaysPinned\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: { column, columns }\n \"\n ></ng-container>\n </div>\n <div\n *ngIf=\"\n column.isLastPinnedColumn && (searching | async) === false\n \"\n class=\"column scroll-padding\"\n >\n <div class=\"frozen\">\n <span class=\"pinned\">\n <riv-icon [name]=\"'PinInactive'\" [size]=\"20\"></riv-icon>\n </span>\n <span>Frozen through here</span>\n </div>\n\n <button\n type=\"button\"\n class=\"hidden\"\n rivButton\n [rivTooltip]=\"\n !column.alwaysPinned\n ? 'Un-freeze columns'\n : 'The above columns cannot be unfrozen'\n \"\n class=\"disable-override\"\n [class.disabled]=\"!column.enabled || column.alwaysPinned\"\n [variant]=\"'ghost'\"\n [size]=\"'small'\"\n [icon]=\"'X'\"\n (click)=\"\n columnFreezeUpTo(\n false,\n column.stateIndex,\n 'freezeDivider'\n )\n \"\n ></button>\n </div>\n </ng-container>\n </div>\n </div>\n <div\n *ngIf=\"\n hasNoColumnsShownSection(columns, (searching | async) ?? false)\n \"\n class=\"column-header drop-zone\"\n (drop)=\"dropEnabledState(true, columns.enabledColumns.length)\"\n (dragenter)=\"$event.preventDefault(); dragOver(-1)\"\n >\n <span>No columns shown</span>\n <button\n type=\"button\"\n rivButton\n [variant]=\"'ghost'\"\n (click)=\"resetToDefault()\"\n >\n Reset to default\n </button>\n </div>\n <div\n class=\"divider\"\n *ngIf=\"\n hasDisabledColumnsSection(columns) &&\n (hasEnabledColumnsSection(columns) ||\n hasNoColumnsShownSection(columns, (searching | async) ?? false))\n \"\n ></div>\n <div\n *ngIf=\"hasDisabledColumnsSection(columns)\"\n (drop)=\"dropEnabledState(false, columns.enabledColumns.length)\"\n (dragenter)=\"$event.preventDefault(); dragOver(-1)\"\n >\n <div class=\"column-header\">\n <span class=\"column-header-label\">Hidden from table</span>\n\n <button\n type=\"button\"\n *ngIf=\"\n (searching | async) === false &&\n showAllColumnsVisible(columns)\n \"\n rivButton\n [variant]=\"'ghost'\"\n [disabled]=\"allColumnsDisabled(columns)\"\n (click)=\"enableAllColumns(true)\"\n >\n Show all\n </button>\n </div>\n\n <div class=\"options\">\n <div\n *ngFor=\"let column of columns.disabledColumns; let i = index\"\n [attr.draggable]=\"\n (searching | async) === false &&\n !disableEnablingColumns(columns) &&\n !column.alwaysPinned\n \"\n [attr.droppable]=\"\n (searching | async) === false &&\n !disableEnablingColumns(columns) &&\n !column.alwaysPinned\n \"\n [class.drop-zone]=\"\n !disableEnablingColumns(columns) && !column.alwaysPinned\n \"\n (dragstart)=\"dragStart(column.stateIndex, column.key)\"\n (dragenter)=\"\n $event.preventDefault();\n dragOver(i + columns.enabledColumns.length)\n \"\n (drop)=\"\n drop(\n i + columns.enabledColumns.length,\n column.stateIndex,\n false,\n columns.enabledColumns.length\n )\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: { column, columns }\n \"\n ></ng-container>\n </div>\n </div>\n </div>\n <div\n class=\"divider\"\n *ngIf=\"\n hasUnavailableColumnsSection(\n columns,\n (searching | async) ?? false\n ) &&\n (hasDisabledColumnsSection(columns) ||\n hasEnabledColumnsSection(columns) ||\n hasNoColumnsShownSection(columns, (searching | async) ?? false))\n \"\n ></div>\n <div\n *ngIf=\"\n hasUnavailableColumnsSection(\n columns,\n (searching | async) ?? false\n )\n \"\n >\n <div class=\"column-header\">\n <span class=\"column-header-label\">\n {{ columns.unavailableFolderTitle }}\n </span>\n\n <button\n type=\"button\"\n rivButton\n class=\"chevron\"\n [variant]=\"'ghost'\"\n [size]=\"'small'\"\n [icon]=\"\n unavailableFolderCollapsed ? 'ChevronDown' : 'ChevronUp'\n \"\n (click)=\"\n unavailableFolderCollapsed = !unavailableFolderCollapsed\n \"\n ></button>\n </div>\n\n <div *ngIf=\"!unavailableFolderCollapsed\" class=\"options\">\n <div\n *ngFor=\"let column of columns.unavailableColumns; let i = index\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: { column, columns }\n \"\n ></ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n </riv-side-sheet>\n </ng-container>\n</ng-container>\n\n<ng-template #columnTemplate let-column=\"column\" let-columns=\"columns\">\n <div\n class=\"column scroll-padding\"\n [class.disabled]=\"disableEnablingColumn(column, columns)\"\n >\n <div class=\"column\" [class.unavailable]=\"column.isUnavailable\">\n <ng-container\n *ngTemplateOutlet=\"reorderIcon; context: { column, columns }\"\n ></ng-container>\n\n <riv-highlight\n [text]=\"column.resolvedName\"\n [indices]=\"column.highlightIndices\"\n ></riv-highlight>\n </div>\n <div>\n <riv-menu\n class=\"hidden\"\n *ngIf=\"\n (column.enabled || !disableEnablingColumns(columns)) &&\n !column.alwaysPinned &&\n !column.isUnavailable\n \"\n >\n <button\n type=\"button\"\n *ngIf=\"column.enabled && !column.pinned\"\n riv-menu-item\n (click)=\"\n columnFreezeUpTo(true, column.stateIndex, 'optionsMenu', column.key)\n \"\n >\n Freeze up to column\n </button>\n <button\n type=\"button\"\n *ngIf=\"column.enabled && column.pinned\"\n riv-menu-item\n (click)=\"columnFreezeUpTo(false, 0, 'optionsMenu', column.key)\"\n >\n Un-freeze columns\n </button>\n <button\n type=\"button\"\n riv-menu-item\n (click)=\"columnMoveTo(column, 'start')\"\n >\n Move to start\n </button>\n <button\n type=\"button\"\n riv-menu-item\n (click)=\"columnMoveTo(column, 'end')\"\n >\n Move to end\n </button>\n <button\n *ngIf=\"!column.alwaysVisible\"\n type=\"button\"\n riv-menu-item\n (click)=\"columnEnabledChange(column, !column.enabled, 'optionsMenu')\"\n >\n {{ column.enabled ? 'Hide column' : 'Show column' }}\n </button>\n </riv-menu>\n\n <ng-container\n *ngTemplateOutlet=\"enableIcon; context: { column, columns }\"\n ></ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #reorderIcon let-column=\"column\" let-columns=\"columns\">\n <ng-container *ngIf=\"(searching | async) === false\">\n <span\n *ngIf=\"!column.alwaysPinned && !column.isUnavailable\"\n class=\"reorder\"\n [class.disabled]=\"disableEnablingColumn(column, columns)\"\n [rivTooltip]=\"column.tooltipForReorderIcon\"\n >\n <riv-icon [name]=\"'Reorder'\" [size]=\"20\"></riv-icon>\n </span>\n\n <span\n *ngIf=\"column.alwaysPinned || column.isUnavailable\"\n class=\"reorder-locked\"\n [class.disabled]=\"true\"\n [rivTooltip]=\"column.tooltipForReorderIcon\"\n >\n <riv-icon [name]=\"'Lock'\" [size]=\"20\"></riv-icon>\n </span>\n </ng-container>\n</ng-template>\n\n<ng-template #enableIcon let-column=\"column\" let-columns=\"columns\">\n <button\n *ngIf=\"\n !column.alwaysVisible && !column.alwaysPinned && !column.isUnavailable\n \"\n type=\"button\"\n rivButton\n [rivTooltip]=\"\n column.enabled\n ? 'Hide column'\n : disableEnablingColumns(columns)\n ? limitTooltip()\n : 'Show column'\n \"\n class=\"disable-override\"\n [class.disabled]=\"!column.enabled\"\n [disabled]=\"disableEnablingColumn(column, columns)\"\n [variant]=\"'ghost'\"\n [size]=\"'small'\"\n [icon]=\"column.enabled ? 'Eye' : 'EyeOff'\"\n (click)=\"columnEnabledChange(column, !column.enabled, 'eyeIcon')\"\n ></button>\n\n <button\n *ngIf=\"column.alwaysVisible || column.alwaysPinned || column.isUnavailable\"\n type=\"button\"\n rivButton\n [rivTooltip]=\"column.tooltipForHideIcon\"\n [disabled]=\"true\"\n [class.disabled]=\"true\"\n [variant]=\"'ghost'\"\n [size]=\"'small'\"\n [icon]=\"'Lock'\"\n ></button>\n</ng-template>\n", styles: [".content{padding:var(--size-large);display:flex;flex-direction:column;gap:var(--size-medium);height:100%}.title{font:var(--title-02);display:flex;justify-content:space-between;align-items:center}.column-header{color:var(--type-light-low-contrast);display:flex;justify-content:space-between;align-items:center;font:var(--input-medium)}.column-header-label{padding:var(--size-small) 0}.column{display:flex;align-items:center;justify-content:space-between;position:relative;font:var(--input-medium)}.column:hover{background-color:var(--surface-light-1)}.column:hover .hidden{opacity:1}.column.disabled,.column.unavailable{color:var(--type-light-low-contrast)}.reorder{padding-right:var(--size-medium);display:flex;justify-content:center;align-items:center;align-self:stretch;color:var(--type-light-low-contrast);cursor:grab}.reorder.disabled{cursor:not-allowed}.reorder-locked{padding-right:var(--size-medium);display:flex;justify-content:center;align-items:center;align-self:stretch;color:var(--type-light-low-contrast);cursor:not-allowed}.pinned{padding-right:var(--size-medium);display:flex;justify-content:center;align-items:center;align-self:stretch}.frozen{display:flex;align-items:center;justify-content:space-between;position:relative;font:var(--input-medium);color:var(--type-light-low-contrast)}.disable-override.disabled:hover{cursor:pointer}.hidden{opacity:0}.columns{flex-grow:1;overflow-y:auto}.options{display:flex;flex-direction:column}.option{position:relative}.option.dragged-over-top:before,.option.dragged-over-bottom:before{content:\"\";position:absolute;left:0;right:0;height:var(--size-xxsmall);background-color:var(--brand);box-shadow:0 0 var(--size-xxsmall) var(--brand)}.option.dragged-over-top:before{top:0}.option.dragged-over-bottom:before{bottom:0}.scroll-padding{padding-right:var(--base-grid-size)}.divider{border-top:var(--border-width) solid var(--border-light);margin-top:var(--size-medium);margin-bottom:var(--size-medium)}.chevron{cursor:pointer}\n"] }]
|
|
221
221
|
}], propDecorators: { manager: [{
|
|
@@ -224,4 +224,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
224
224
|
type: ViewChild,
|
|
225
225
|
args: ['trigger', { read: ElementRef }]
|
|
226
226
|
}] } });
|
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLXNldHRpbmdzLXNpZGUtc2hlZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvdGFibGUvdGFibGUtY29sdW1uLXNldHRpbmdzL3RhYmxlLWNvbHVtbi1zZXR0aW5ncy1zaWRlLXNoZWV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3RhYmxlL3RhYmxlL3RhYmxlLWNvbHVtbi1zZXR0aW5ncy90YWJsZS1jb2x1bW4tc2V0dGluZ3Mtc2lkZS1zaGVldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUdMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLElBQUksTUFBTSxTQUFTLENBQUM7QUFDM0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7Ozs7QUFlckUsTUFBTSxPQUFPLHFDQUFxQztJQU5sRDtRQWtCVyxTQUFJLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbEMsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV0QyxjQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FB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QUFDO0lBRUQseUJBQXlCLENBQUMsT0FBd0I7UUFDaEQsT0FBTyxPQUFPLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELHdCQUF3QixDQUFDLE9BQXdCO1FBQy9DLE9BQU8sT0FBTyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxPQUF3QixFQUFFLFNBQWtCO1FBQ25FLE9BQU8sT0FBTyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLFNBQVMsS0FBSyxLQUFLLENBQUM7SUFDcEUsQ0FBQztJQUVELDRCQUE0QixDQUFDLE9BQXdCLEVBQUUsU0FBa0I7UUFDdkUsT0FBTyxPQUFPLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxTQUFTLEtBQUssS0FBSyxDQUFDO0lBQ3RFLENBQUM7K0dBalNVLHFDQUFxQzttR0FBckMscUNBQXFDLDBMQVNsQixVQUFVLDZCQ3JDMUMsb3diQThaQTs7NEZEbFlhLHFDQUFxQztrQkFOakQsU0FBUzsrQkFDRSxzQ0FBc0MsbUJBRy9CLHVCQUF1QixDQUFDLE1BQU07OEJBUy9DLE9BQU87c0JBRE4sS0FBSztnQkFJTixNQUFNO3NCQURMLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBGdXNlIGZyb20gJ2Z1c2UuanMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJpdlNlbGVjdCB9IGZyb20gJy4uLy4uLy4uL2lucHV0L3NlbGVjdC9zdGF0ZSc7XG5pbXBvcnQgeyBSaXZUYWJsZSB9IGZyb20gJy4uL3N0YXRlJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uSGVscGVycyB9IGZyb20gJy4uL3N0YXRlLWhlbHBlcnMvY29sdW1uLWhlbHBlcnMnO1xuXG50eXBlIENvbHVtbkdyb3VwczxDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uPiA9IHtcbiAgZW5hYmxlZENvbHVtbnM6IFRhYmxlQ29sdW1uSGVscGVycy5Db2x1bW5MaXN0PEM+O1xuICBkaXNhYmxlZENvbHVtbnM6IFRhYmxlQ29sdW1uSGVscGVycy5Db2x1bW5MaXN0PEM+O1xuICB1bmF2YWlsYWJsZUNvbHVtbnM6IFRhYmxlQ29sdW1uSGVscGVycy5Db2x1bW5MaXN0PEM+O1xuICB1bmF2YWlsYWJsZUZvbGRlclRpdGxlOiBzdHJpbmc7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyaXYtdGFibGUtY29sdW1uLXNldHRpbmdzLXNpZGUtc2hlZXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtY29sdW1uLXNldHRpbmdzLXNpZGUtc2hlZXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1jb2x1bW4tc2V0dGluZ3Mtc2lkZS1zaGVldC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbHVtblNldHRpbmdzU2lkZVNoZWV0Q29tcG9uZW50PFxuICBSIGV4dGVuZHMgUml2VGFibGUuUm93LFxuICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICBGIGV4dGVuZHMgUml2VGFibGUuRmlsdGVycyxcbj4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICBASW5wdXQoKVxuICBtYW5hZ2VyPzogUml2VGFibGUuTWFuYWdlcjxSLCBDLCBGPjtcblxuICBAVmlld0NoaWxkKCd0cmlnZ2VyJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIGFuY2hvcj86IEVsZW1lbnRSZWY7XG5cbiAgcmVhZG9ubHkgb3BlbiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIHJlYWRvbmx5IGZpbHRlclF1ZXJ5ID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG5cbiAgcmVhZG9ubHkgc2VhcmNoaW5nID0gdGhpcy5maWx0ZXJRdWVyeS5waXBlKG1hcChxdWVyeSA9PiAhIXF1ZXJ5KSk7XG5cbiAgY29sdW1uTGlzdD86IE9ic2VydmFibGU8Q29sdW1uR3JvdXBzPEM+PjtcblxuICBtYXhFbmFibGVkQ29sdW1uczogbnVtYmVyID0gUml2VGFibGUuQ29sdW1uc01heFNob3duO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29sdW1uTGlzdCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5tYW5hZ2VyIS5zdGF0ZS5waXBlKFxuICAgICAgICBtYXAocyA9PiB7XG4gICAgICAgICAgY29uc3QgYWxsQ29sdW1uczogVGFibGVDb2x1bW5IZWxwZXJzLkNvbHVtbkxpc3Q8Qz4gPVxuICAgICAgICAgICAgVGFibGVDb2x1bW5IZWxwZXJzLmdldENvbHVtblNldHRpbmdzQ29sdW1uTGlzdChzKTtcblxuICAgICAgICAgIGNvbnN0IGZ1c2UgPSBuZXcgRnVzZShhbGxDb2x1bW5zLCB7XG4gICAgICAgICAgICBrZXlzOiBbJ3Jlc29sdmVkTmFtZSddLFxuICAgICAgICAgICAgaWdub3JlTG9jYXRpb246IHRydWUsXG4gICAgICAgICAgICB0aHJlc2hvbGQ6IDAsXG4gICAgICAgICAgICBpbmNsdWRlTWF0Y2hlczogdHJ1ZSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGNvbnN0IHVuYXZhaWxhYmxlQ29sdW1uczogVGFibGVDb2x1bW5IZWxwZXJzLkNvbHVtbkxpc3Q8Qz4gPVxuICAgICAgICAgICAgVGFibGVDb2x1bW5IZWxwZXJzLmNyZWF0ZVVuYXZhaWxhYmxlQ29sdW1ucyhcbiAgICAgICAgICAgICAgcy5kaXNwbGF5LnVuYXZhaWxhYmxlQ29sdW1uS2V5cyxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgdW5hdmFpbGFibGVGb2xkZXJUaXRsZTogc3RyaW5nID1cbiAgICAgICAgICAgIHMuZGlzcGxheS51bmF2YWlsYWJsZUZvbGRlclRpdGxlO1xuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZ1c2UsXG4gICAgICAgICAgICBhbGxDb2x1bW5zLFxuICAgICAgICAgICAgdW5hdmFpbGFibGVDb2x1bW5zLFxuICAgICAgICAgICAgdW5hdmFpbGFibGVGb2xkZXJUaXRsZSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICB0aGlzLmZpbHRlclF1ZXJ5LFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIChbXG4gICAgICAgICAgeyBmdXNlLCBhbGxDb2x1bW5zLCB1bmF2YWlsYWJsZUNvbHVtbnMsIHVuYXZhaWxhYmxlRm9sZGVyVGl0bGUgfSxcbiAgICAgICAgICBmaWx0ZXJRdWVyeSxcbiAgICAgICAgXSkgPT4ge1xuICAgICAgICAgIGlmIChmaWx0ZXJRdWVyeSkge1xuICAgICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IGZ1c2Uuc2VhcmNoKGZpbHRlclF1ZXJ5KS5tYXAobWF0Y2ggPT4ge1xuICAgICAgICAgICAgICBjb25zdCBmaXJzdG1hdGNoID0gbWF0Y2gubWF0Y2hlcz8uZmluZChcbiAgICAgICAgICAgICAgICByZXN1bHQgPT4gcmVzdWx0LmtleSA9PT0gJ3Jlc29sdmVkTmFtZScsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4ubWF0Y2guaXRlbSxcbiAgICAgICAgICAgICAgICBoaWdobGlnaHRJbmRpY2VzOiBbXG4gICAgICAgICAgICAgICAgICAuLi4oZmlyc3RtYXRjaD8uaW5kaWNlcyB8fCBbXSkuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICBSaXZTZWxlY3QuaXNGdXNlTWF0Y2hFeGFjdChmaXJzdG1hdGNoISwgZmlsdGVyUXVlcnkpLFxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBlbmFibGVkQ29sdW1ucyA9IG1hdGNoZXMuZmlsdGVyKGNvbHVtbiA9PiBjb2x1bW4uZW5hYmxlZCk7XG4gICAgICAgICAgICBjb25zdCBkaXNhYmxlZENvbHVtbnMgPSBtYXRjaGVzLmZpbHRlcihjb2x1bW4gPT4gIWNvbHVtbi5lbmFibGVkKTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgZW5hYmxlZENvbHVtbnMsXG4gICAgICAgICAgICAgIGRpc2FibGVkQ29sdW1ucyxcbiAgICAgICAgICAgICAgdW5hdmFpbGFibGVDb2x1bW5zOiB1bmF2YWlsYWJsZUNvbHVtbnMsXG4gICAgICAgICAgICAgIHVuYXZhaWxhYmxlRm9sZGVyVGl0bGU6IHVuYXZhaWxhYmxlRm9sZGVyVGl0bGUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGFsbFZpc2libGVDb2x1bW5zID0gYWxsQ29sdW1ucy5tYXAoY29sdW1uID0+ICh7XG4gICAgICAgICAgICAuLi5jb2x1bW4sXG4gICAgICAgICAgICBoaWdobGlnaHRJbmRpY2VzOiBbXSxcbiAgICAgICAgICB9KSk7XG5cbiAgICAgICAgICBjb25zdCBlbmFibGVkQ29sdW1ucyA9IGFsbFZpc2libGVDb2x1bW5zLmZpbHRlcihcbiAgICAgICAgICAgIGNvbHVtbiA9PiBjb2x1bW4uZW5hYmxlZCxcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnN0IGRpc2FibGVkQ29sdW1ucyA9IGFsbFZpc2libGVDb2x1bW5zLmZpbHRlcihcbiAgICAgICAgICAgIGNvbHVtbiA9PiAhY29sdW1uLmVuYWJsZWQsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmFibGVkQ29sdW1uczogZW5hYmxlZENvbHVtbnMsXG4gICAgICAgICAgICBkaXNhYmxlZENvbHVtbnM6IGRpc2FibGVkQ29sdW1ucyxcbiAgICAgICAgICAgIHVuYXZhaWxhYmxlQ29sdW1uczogdW5hdmFpbGFibGVDb2x1bW5zLFxuICAgICAgICAgICAgdW5hdmFpbGFibGVGb2xkZXJUaXRsZTogdW5hdmFpbGFibGVGb2xkZXJUaXRsZSxcbiAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCB0aGlzLmhhbmRsZURyYWdPdmVyKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgdGhpcy5oYW5kbGVEcmFnT3Zlcik7XG4gIH1cblxuICAvLyBXZSBvbmx5IGNhcmUgYWJvdXQgd2hlbiB3ZSBoYXZlIGVudGVyZWQgYSBkcm9wIHpvbmUgZm9yIGFwcGx5aW5nIG91ciB2aXN1YWxcbiAgLy8gdHJlYXRtZW50LiBIb3dldmVyLCBpbiBvcmRlciB0byB0cmlnZ2VyIHRoZSBkcm9wIGV2ZW50LCB5b3UgbXVzdCBjYWxsIHByZXZlbnREZWZhdWx0XG4gIC8vIG9uIHRoZSBkcmFnb3Zlci4gV2UgYXJlIGhhbmRsaW5nIHRoaXMgbmF0aXZlbHkgb24gdGhlIGRvY3VtZW50LCBvdXRzaWRlIG9mIGFuZ3VsYXJcbiAgLy8gYXMgYSBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24uIElmIHdlIGhhdmUgYSBkcmFnZ2VkT3ZlckNvbHVtbklkeCBhbmQgd2UgZHJhZyBvdmVyIGFuXG4gIC8vIGVsZW1lbnQgd2l0aCBjbGFzcyBkcm9wLXpvbmUsIHdlIHdpbGwgYXNzdW1lIHlvdSB3YW50IHRvIHRoZSBkcm9wIGVsZW1lbnQgZW5hYmxlZFxuICAvLyBhbmQgd2Ugd2lsbCBwcmV2ZW50RGVmYXVsdC5cbiAgaGFuZGxlRHJhZ092ZXIgPSAoZXZlbnQ6IERyYWdFdmVudCkgPT4ge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBpZiAodGhpcy5kcmFnZ2VkT3ZlckNvbHVtbklkeCAhPSBudWxsICYmIHRhcmdldC5jbG9zZXN0KCcuZHJvcC16b25lJykpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbHVtbkVuYWJsZWRDaGFuZ2UoXG4gICAgY29sdW1uOiBSaXZUYWJsZS5Db2x1bW5TZXR0aW5nczxDPixcbiAgICBlbmFibGVkOiBib29sZWFuLFxuICAgIHNvdXJjZTogJ29wdGlvbnNNZW51JyB8ICdleWVJY29uJyxcbiAgKSB7XG4gICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgdHlwZTogJ2NvbHVtbkVuYWJsZWRDaGFuZ2UnLFxuICAgICAgY29sdW1uOiBjb2x1bW4ua2V5LFxuICAgICAgZW5hYmxlZCxcbiAgICAgIHNvdXJjZSxcbiAgICB9KTtcbiAgfVxuXG4gIGNvbHVtblBpbkNoYW5nZShjb2x1bW46IFJpdlRhYmxlLkNvbHVtblNldHRpbmdzPEM+LCBwaW5uZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm1hbmFnZXI/LmFjdGlvbnMubmV4dCh7XG4gICAgICB0eXBlOiAnY29sdW1uUGluQ2hhbmdlJyxcbiAgICAgIGNvbHVtbjogY29sdW1uLmtleSxcbiAgICAgIHBpbm5lZCxcbiAgICB9KTtcbiAgfVxuICByZXNldFRvRGVmYXVsdCgpIHtcbiAgICB0aGlzLm1hbmFnZXI/LmFjdGlvbnMubmV4dCh7XG4gICAgICB0eXBlOiAncmVzZXRUb0RlZmF1bHRDb2x1bW5zJyxcbiAgICB9KTtcbiAgfVxuXG4gIGNvbHVtbk1vdmVUbyhjb2x1bW46IFJpdlRhYmxlLkNvbHVtblNldHRpbmdzPEM+LCBwb3NpdGlvbjogJ3N0YXJ0JyB8ICdlbmQnKSB7XG4gICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgdHlwZTogJ2NvbHVtbk1vdmVUb0NoYW5nZScsXG4gICAgICBwb3NpdGlvbixcbiAgICAgIGNvbHVtbjogY29sdW1uLmtleSxcbiAgICB9KTtcbiAgfVxuXG4gIGNvbHVtbkZyZWV6ZVVwVG8oXG4gICAgZnJlZXplOiBib29sZWFuLFxuICAgIGluZGV4OiBudW1iZXIsXG4gICAgc291cmNlOiAnZnJlZXplRGl2aWRlcicgfCAnb3B0aW9uc01lbnUnLFxuICAgIGNvbHVtbj86IEMsXG4gICkge1xuICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHtcbiAgICAgIHR5cGU6ICdjb2x1bW5zRnJlZXplVXBUb0NoYW5nZScsXG4gICAgICBmcmVlemUsXG4gICAgICBpbmRleCxcbiAgICAgIHNvdXJjZSxcbiAgICAgIGNvbHVtbixcbiAgICB9KTtcbiAgfVxuXG4gIGFsbENvbHVtbnNEaXNhYmxlZChjb2x1bW5zOiBDb2x1bW5Hcm91cHM8Qz4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgY29sdW1ucy5kaXNhYmxlZENvbHVtbnMubGVuZ3RoID09IDAgJiYgY29sdW1ucy5lbmFibGVkQ29sdW1ucy5sZW5ndGggPiAwXG4gICAgKTtcbiAgfVxuXG4gIGFsbENvbHVtbnNFbmFibGVkKGNvbHVtbnM6IENvbHVtbkdyb3VwczxDPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBjb2x1bW5zLmVuYWJsZWRDb2x1bW5zLmxlbmd0aCA9PSAwICYmIGNvbHVtbnMuZGlzYWJsZWRDb2x1bW5zLmxlbmd0aCA+IDBcbiAgICApO1xuICB9XG5cbiAgc2hvd0FsbENvbHVtbnNWaXNpYmxlKGNvbHVtbnM6IENvbHVtbkdyb3VwczxDPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBjb2x1bW5zLmVuYWJsZWRDb2x1bW5zLmxlbmd0aCArIGNvbHVtbnMuZGlzYWJsZWRDb2x1bW5zLmxlbmd0aCA8PVxuICAgICAgdGhpcy5tYXhFbmFibGVkQ29sdW1uc1xuICAgICk7XG4gIH1cblxuICBkaXNhYmxlRW5hYmxpbmdDb2x1bW4oXG4gICAgY29sdW1uOiBSaXZUYWJsZS5Db2x1bW5TZXR0aW5nczxDPixcbiAgICBjb2x1bW5zOiBDb2x1bW5Hcm91cHM8Qz4sXG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhY29sdW1uLmVuYWJsZWQgJiYgdGhpcy5kaXNhYmxlRW5hYmxpbmdDb2x1bW5zKGNvbHVtbnMpO1xuICB9XG5cbiAgZGlzYWJsZUVuYWJsaW5nQ29sdW1ucyhjb2x1bW5zOiBDb2x1bW5Hcm91cHM8Qz4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gY29sdW1ucy5lbmFibGVkQ29sdW1ucy5sZW5ndGggPj0gdGhpcy5tYXhFbmFibGVkQ29sdW1ucztcbiAgfVxuXG4gIGljb25MaW1pdFRvb2x0aXAoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYE91ciB0YWJsZXMgc3VwcG9ydCAke3RoaXMubWF4RW5hYmxlZENvbHVtbnN9IHZpc2libGUgY29sdW1ucy4gQ29uc2lkZXIgaGlkaW5nIHNvbWUgb2YgeW91ciBjdXJyZW50IGNvbHVtbnMgdG8gYWRkIGFueXRoaW5nIG5ldy5gO1xuICB9XG5cbiAgbGltaXRUb29sdGlwKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBZb3XigJl2ZSByZWFjaGVkIHRoZSAke3RoaXMubWF4RW5hYmxlZENvbHVtbnN9LWNvbHVtbiBsaW1pdC4gSGlkZSBhIHZpc2libGUgY29sdW1uIHRvIHNob3cgdGhpcyBvbmUuYDtcbiAgfVxuXG4gIGVuYWJsZUFsbENvbHVtbnMoZW5hYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHtcbiAgICAgIHR5cGU6ICdlbmFibGVBbGxDb2x1bW5zQ2hhbmdlJyxcbiAgICAgIGVuYWJsZWQsXG4gICAgfSk7XG4gIH1cblxuICBkcmFnZ2VkQ29sdW1uSWR4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgZHJhZ2dlZENvbHVtbktleTogQyB8IG51bGwgPSBudWxsO1xuICBkcmFnZ2VkT3ZlckNvbHVtbklkeDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgZHJhZ1N0YXJ0KGlkeDogbnVtYmVyLCBrZXk6IEMpIHtcbiAgICB0aGlzLmRyYWdnZWRDb2x1bW5JZHggPSBpZHg7XG4gICAgdGhpcy5kcmFnZ2VkQ29sdW1uS2V5ID0ga2V5O1xuICB9XG5cbiAgZHJhZ092ZXIob250b0lkeDogbnVtYmVyKSB7XG4gICAgdGhpcy5kcmFnZ2VkT3ZlckNvbHVtbklkeCA9IG9udG9JZHg7XG4gIH1cblxuICBkcm9wKFxuICAgIG9udG9JZHg6IG51bWJlcixcbiAgICBzdGF0ZUluZGV4OiBudW1iZXIsXG4gICAgZW5hYmxlZDogYm9vbGVhbixcbiAgICBlbmFibGVkQ29sdW1uQ291bnQ6IG51bWJlcixcbiAgKSB7XG4gICAgaWYgKHRoaXMuZHJhZ2dlZENvbHVtbklkeCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgICB0eXBlOiAnY29sdW1uT3JkZXJDaGFuZ2UnLFxuICAgICAgICBwcmV2aW91c0luZGV4OiB0aGlzLmRyYWdnZWRDb2x1bW5JZHgsXG4gICAgICAgIG5ld0luZGV4OiBzdGF0ZUluZGV4LFxuICAgICAgICBzb3VyY2U6ICdtZW51RHJhZycsXG4gICAgICAgIGNvbHVtbjogdGhpcy5kcmFnZ2VkQ29sdW1uS2V5IHx8IHVuZGVmaW5lZCxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5kcm9wRW5hYmxlZFN0YXRlKGVuYWJsZWQsIGVuYWJsZWRDb2x1bW5Db3VudCk7XG5cbiAgICAgIHRoaXMuZHJhZ2dlZE92ZXJDb2x1bW5JZHggPSBudWxsO1xuICAgICAgdGhpcy5kcmFnZ2VkQ29sdW1uS2V5ID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBkcm9wRW5hYmxlZFN0YXRlKGVuYWJsZWQ6IGJvb2xlYW4sIGVuYWJsZWRDb2x1bW5Db3VudDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZHJhZ2dlZENvbHVtbktleSAhPT0gbnVsbCAmJiB0aGlzLmRyYWdnZWRDb2x1bW5JZHggIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGlzRW5hYmxlZCA9IGVuYWJsZWRDb2x1bW5Db3VudCA+IHRoaXMuZHJhZ2dlZENvbHVtbklkeDtcbiAgICAgIGNvbnN0IHNob3VsZEZpcmUgPSBlbmFibGVkID8gIWlzRW5hYmxlZCA6IGlzRW5hYmxlZDtcbiAgICAgIGlmIChzaG91bGRGaXJlKSB7XG4gICAgICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHtcbiAgICAgICAgICB0eXBlOiAnY29sdW1uRW5hYmxlZENoYW5nZScsXG4gICAgICAgICAgY29sdW1uOiB0aGlzLmRyYWdnZWRDb2x1bW5LZXksXG4gICAgICAgICAgZW5hYmxlZDogZW5hYmxlZCxcbiAgICAgICAgICBzb3VyY2U6ICdkcmFnRHJvcCcsXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmRyYWdnZWRPdmVyQ29sdW1uSWR4ID0gbnVsbDtcbiAgICAgIHRoaXMuZHJhZ2dlZENvbHVtbktleSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgZGlzYWJsZWRDb2x1bW5zV2l0aE9mZnNldChpbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgaGFzRGlzYWJsZWRDb2x1bW5zU2VjdGlvbihjb2x1bW5zOiBDb2x1bW5Hcm91cHM8Qz4pIHtcbiAgICByZXR1cm4gY29sdW1ucy5kaXNhYmxlZENvbHVtbnMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIGhhc0VuYWJsZWRDb2x1bW5zU2VjdGlvbihjb2x1bW5zOiBDb2x1bW5Hcm91cHM8Qz4pIHtcbiAgICByZXR1cm4gY29sdW1ucy5lbmFibGVkQ29sdW1ucy5sZW5ndGggPiAwO1xuICB9XG5cbiAgaGFzTm9Db2x1bW5zU2hvd25TZWN0aW9uKGNvbHVtbnM6IENvbHVtbkdyb3VwczxDPiwgc2VhcmNoaW5nOiBib29sZWFuKSB7XG4gICAgcmV0dXJuIGNvbHVtbnMuZW5hYmxlZENvbHVtbnMubGVuZ3RoID09PSAwICYmIHNlYXJjaGluZyA9PT0gZmFsc2U7XG4gIH1cblxuICBoYXNVbmF2YWlsYWJsZUNvbHVtbnNTZWN0aW9uKGNvbHVtbnM6IENvbHVtbkdyb3VwczxDPiwgc2VhcmNoaW5nOiBib29sZWFuKSB7XG4gICAgcmV0dXJuIGNvbHVtbnMudW5hdmFpbGFibGVDb2x1bW5zLmxlbmd0aCA+IDAgJiYgc2VhcmNoaW5nID09PSBmYWxzZTtcbiAgfVxuXG4gIHVuYXZhaWxhYmxlRm9sZGVyQ29sbGFwc2VkOiBib29sZWFuID0gZmFsc2U7XG59XG4iLCI8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjdHJpZ2dlciByaXZCdXR0b24gKGNsaWNrKT1cIm9wZW4ubmV4dCh0cnVlKVwiPlxuICBDb2x1bW5zXG48L2J1dHRvbj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbkxpc3QgfCBhc3luYzsgbGV0IGNvbHVtbnNcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wZW4gfCBhc3luY1wiPlxuICAgIDxyaXYtc2lkZS1zaGVldFxuICAgICAgW2xhYmVsXT1cIidDb2x1bW5zJ1wiXG4gICAgICAoY2xvc2UpPVwib3Blbi5uZXh0KGZhbHNlKTsgZmlsdGVyUXVlcnkubmV4dCgnJylcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxuICAgICAgICAgIDxzcGFuPkNvbHVtbnM8L3NwYW4+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICByaXZCdXR0b25cbiAgICAgICAgICAgIFt2YXJpYW50XT1cIidnaG9zdCdcIlxuICAgICAgICAgICAgW2ljb25dPVwiJ1gnXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuLm5leHQoZmFsc2UpOyBmaWx0ZXJRdWVyeS5uZXh0KCcnKVwiXG4gICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHJpdi1zZWFyY2hcbiAgICAgICAgICBbbmFtZV09XCInY29sdW1uLXNlYXJjaCdcIlxuICAgICAgICAgIFt2YWx1ZV09XCIoZmlsdGVyUXVlcnkgfCBhc3luYykgfHwgJydcIlxuICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJmaWx0ZXJRdWVyeS5uZXh0KCRldmVudClcIlxuICAgICAgICA+PC9yaXYtc2VhcmNoPlxuICAgICAgICA8cml2LWJhbm5lclxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBjb2x1bW5zLmRpc2FibGVkQ29sdW1ucy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICBkaXNhYmxlRW5hYmxpbmdDb2x1bW5zKGNvbHVtbnMpXG4gICAgICAgICAgXCJcbiAgICAgICAgICBbaWNvblRvb2x0aXBdPVwiaWNvbkxpbWl0VG9vbHRpcCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIENvbHVtbiBsaW1pdCByZWFjaGVkXG4gICAgICAgIDwvcml2LWJhbm5lcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbnNcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaGFzRW5hYmxlZENvbHVtbnNTZWN0aW9uKGNvbHVtbnMpXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiY29sdW1uLWhlYWRlciBkcm9wLXpvbmVcIlxuICAgICAgICAgICAgICAoZHJvcCk9XCJkcm9wRW5hYmxlZFN0YXRlKHRydWUsIGNvbHVtbnMuZW5hYmxlZENvbHVtbnMubGVuZ3RoKVwiXG4gICAgICAgICAgICAgIChkcmFnZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGRyYWdPdmVyKC0xKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29sdW1uLWhlYWRlci1sYWJlbFwiPlNob3duIGluIHRhYmxlPC9zcGFuPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIoc2VhcmNoaW5nIHwgYXN5bmMpID09PSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgcml2QnV0dG9uXG4gICAgICAgICAgICAgICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFsbENvbHVtbnNFbmFibGVkKGNvbHVtbnMpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZW5hYmxlQWxsQ29sdW1ucyhmYWxzZSlcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgSGlkZSBhbGxcbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbnNcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1ucy5lbmFibGVkQ29sdW1uczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm9wdGlvblwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5kcmFnZ2FibGVdPVwiXG4gICAgICAgICAgICAgICAgICAgIChzZWFyY2hpbmcgfCBhc3luYykgPT09IGZhbHNlICYmICFjb2x1bW4uYWx3YXlzUGlubmVkXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuZHJvcHBhYmxlXT1cIlxuICAgICAgICAgICAgICAgICAgICAoc2VhcmNoaW5nIHwgYXN5bmMpID09PSBmYWxzZSAmJiAhY29sdW1uLmFsd2F5c1Bpbm5lZFxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5kcm9wLXpvbmVdPVwiIWNvbHVtbi5hbHdheXNQaW5uZWRcIlxuICAgICAgICAgICAgICAgICAgKGRyYWdzdGFydCk9XCJkcmFnU3RhcnQoY29sdW1uLnN0YXRlSW5kZXgsIGNvbHVtbi5rZXkpXCJcbiAgICAgICAgICAgICAgICAgIChkcmFnZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGRyYWdPdmVyKGkpXCJcbiAgICAgICAgICAgICAgICAgIChkcm9wKT1cIlxuICAgICAgICAgICAgICAgICAgICBkcm9wKFxuICAgICAgICAgICAgICAgICAgICAgIGksXG4gICAgICAgICAgICAgICAgICAgICAgY29sdW1uLnN0YXRlSW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zLmVuYWJsZWRDb2x1bW5zLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmRyYWdnZWQtb3Zlci10b3BdPVwiXG4gICAgICAgICAgICAgICAgICAgIGRyYWdnZWRPdmVyQ29sdW1uSWR4ID09PSBpICYmXG4gICAgICAgICAgICAgICAgICAgIGRyYWdnZWRDb2x1bW5JZHggIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICAgICAgZHJhZ2dlZENvbHVtbklkeCA+IGkgJiZcbiAgICAgICAgICAgICAgICAgICAgIWNvbHVtbi5hbHdheXNQaW5uZWRcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuZHJhZ2dlZC1vdmVyLWJvdHRvbV09XCJcbiAgICAgICAgICAgICAgICAgICAgZHJhZ2dlZE92ZXJDb2x1bW5JZHggPT09IGkgJiZcbiAgICAgICAgICAgICAgICAgICAgZHJhZ2dlZENvbHVtbklkeCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgICAgICBkcmFnZ2VkQ29sdW1uSWR4IDwgaSAmJlxuICAgICAgICAgICAgICAgICAgICAhY29sdW1uLmFsd2F5c1Bpbm5lZFxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgY29sdW1uVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyBjb2x1bW4sIGNvbHVtbnMgfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbi5pc0xhc3RQaW5uZWRDb2x1bW4gJiYgKHNlYXJjaGluZyB8IGFzeW5jKSA9PT0gZmFsc2VcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbHVtbiBzY3JvbGwtcGFkZGluZ1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZyb3plblwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBpbm5lZFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxyaXYtaWNvbiBbbmFtZV09XCInUGluSW5hY3RpdmUnXCIgW3NpemVdPVwiMjBcIj48L3Jpdi1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPkZyb3plbiB0aHJvdWdoIGhlcmU8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICByaXZCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgW3JpdlRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgIWNvbHVtbi5hbHdheXNQaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ1VuLWZyZWV6ZSBjb2x1bW5zJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnVGhlIGFib3ZlIGNvbHVtbnMgY2Fubm90IGJlIHVuZnJvemVuJ1xuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRpc2FibGUtb3ZlcnJpZGVcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWNvbHVtbi5lbmFibGVkIHx8IGNvbHVtbi5hbHdheXNQaW5uZWRcIlxuICAgICAgICAgICAgICAgICAgICBbdmFyaWFudF09XCInZ2hvc3QnXCJcbiAgICAgICAgICAgICAgICAgICAgW3NpemVdPVwiJ3NtYWxsJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtpY29uXT1cIidYJ1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5GcmVlemVVcFRvKFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW4uc3RhdGVJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICdmcmVlemVEaXZpZGVyJ1xuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICBoYXNOb0NvbHVtbnNTaG93blNlY3Rpb24oY29sdW1ucywgKHNlYXJjaGluZyB8IGFzeW5jKSA/PyBmYWxzZSlcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBjbGFzcz1cImNvbHVtbi1oZWFkZXIgZHJvcC16b25lXCJcbiAgICAgICAgICAgIChkcm9wKT1cImRyb3BFbmFibGVkU3RhdGUodHJ1ZSwgY29sdW1ucy5lbmFibGVkQ29sdW1ucy5sZW5ndGgpXCJcbiAgICAgICAgICAgIChkcmFnZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGRyYWdPdmVyKC0xKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4+Tm8gY29sdW1ucyBzaG93bjwvc3Bhbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIHJpdkJ1dHRvblxuICAgICAgICAgICAgICBbdmFyaWFudF09XCInZ2hvc3QnXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJlc2V0VG9EZWZhdWx0KClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBSZXNldCB0byBkZWZhdWx0XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImRpdmlkZXJcIlxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgaGFzRGlzYWJsZWRDb2x1bW5zU2VjdGlvbihjb2x1bW5zKSAmJlxuICAgICAgICAgICAgICAoaGFzRW5hYmxlZENvbHVtbnNTZWN0aW9uKGNvbHVtbnMpIHx8XG4gICAgICAgICAgICAgICAgaGFzTm9Db2x1bW5zU2hvd25TZWN0aW9uKGNvbHVtbnMsIChzZWFyY2hpbmcgfCBhc3luYykgPz8gZmFsc2UpKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJoYXNEaXNhYmxlZENvbHVtbnNTZWN0aW9uKGNvbHVtbnMpXCJcbiAgICAgICAgICAgIChkcm9wKT1cImRyb3BFbmFibGVkU3RhdGUoZmFsc2UsIGNvbHVtbnMuZW5hYmxlZENvbHVtbnMubGVuZ3RoKVwiXG4gICAgICAgICAgICAoZHJhZ2VudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBkcmFnT3ZlcigtMSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4taGVhZGVyXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29sdW1uLWhlYWRlci1sYWJlbFwiPkhpZGRlbiBmcm9tIHRhYmxlPC9zcGFuPlxuXG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgKHNlYXJjaGluZyB8IGFzeW5jKSA9PT0gZmFsc2UgJiZcbiAgICAgICAgICAgICAgICAgIHNob3dBbGxDb2x1bW5zVmlzaWJsZShjb2x1bW5zKVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgcml2QnV0dG9uXG4gICAgICAgICAgICAgICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFsbENvbHVtbnNEaXNhYmxlZChjb2x1bW5zKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImVuYWJsZUFsbENvbHVtbnModHJ1ZSlcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgU2hvdyBhbGxcbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbnNcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1ucy5kaXNhYmxlZENvbHVtbnM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRyYWdnYWJsZV09XCJcbiAgICAgICAgICAgICAgICAgIChzZWFyY2hpbmcgfCBhc3luYykgPT09IGZhbHNlICYmXG4gICAgICAgICAgICAgICAgICAhZGlzYWJsZUVuYWJsaW5nQ29sdW1ucyhjb2x1bW5zKSAmJlxuICAgICAgICAgICAgICAgICAgIWNvbHVtbi5hbHdheXNQaW5uZWRcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRyb3BwYWJsZV09XCJcbiAgICAgICAgICAgICAgICAgIChzZWFyY2hpbmcgfCBhc3luYykgPT09IGZhbHNlICYmXG4gICAgICAgICAgICAgICAgICAhZGlzYWJsZUVuYWJsaW5nQ29sdW1ucyhjb2x1bW5zKSAmJlxuICAgICAgICAgICAgICAgICAgIWNvbHVtbi5hbHdheXNQaW5uZWRcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5kcm9wLXpvbmVdPVwiXG4gICAgICAgICAgICAgICAgICAhZGlzYWJsZUVuYWJsaW5nQ29sdW1ucyhjb2x1bW5zKSAmJiAhY29sdW1uLmFsd2F5c1Bpbm5lZFxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgKGRyYWdzdGFydCk9XCJkcmFnU3RhcnQoY29sdW1uLnN0YXRlSW5kZXgsIGNvbHVtbi5rZXkpXCJcbiAgICAgICAgICAgICAgICAoZHJhZ2VudGVyKT1cIlxuICAgICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICBkcmFnT3ZlcihpICsgY29sdW1ucy5lbmFibGVkQ29sdW1ucy5sZW5ndGgpXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAoZHJvcCk9XCJcbiAgICAgICAgICAgICAgICAgIGRyb3AoXG4gICAgICAgICAgICAgICAgICAgIGkgKyBjb2x1bW5zLmVuYWJsZWRDb2x1bW5zLmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uLnN0YXRlSW5kZXgsXG4gICAgICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5zLmVuYWJsZWRDb2x1bW5zLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyBjb2x1bW4sIGNvbHVtbnMgfVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJkaXZpZGVyXCJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIGhhc1VuYXZhaWxhYmxlQ29sdW1uc1NlY3Rpb24oXG4gICAgICAgICAgICAgICAgY29sdW1ucyxcbiAgICAgICAgICAgICAgICAoc2VhcmNoaW5nIHwgYXN5bmMpID8/IGZhbHNlXG4gICAgICAgICAgICAgICkgJiZcbiAgICAgICAgICAgICAgKGhhc0Rpc2FibGVkQ29sdW1uc1NlY3Rpb24oY29sdW1ucykgfHxcbiAgICAgICAgICAgICAgICBoYXNFbmFibGVkQ29sdW1uc1NlY3Rpb24oY29sdW1ucykgfHxcbiAgICAgICAgICAgICAgICBoYXNOb0NvbHVtbnNTaG93blNlY3Rpb24oY29sdW1ucywgKHNlYXJjaGluZyB8IGFzeW5jKSA/PyBmYWxzZSkpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICBoYXNVbmF2YWlsYWJsZUNvbHVtbnNTZWN0aW9uKFxuICAgICAgICAgICAgICAgIGNvbHVtbnMsXG4gICAgICAgICAgICAgICAgKHNlYXJjaGluZyB8IGFzeW5jKSA/PyBmYWxzZVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4taGVhZGVyXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29sdW1uLWhlYWRlci1sYWJlbFwiPlxuICAgICAgICAgICAgICAgIHt7IGNvbHVtbnMudW5hdmFpbGFibGVGb2xkZXJUaXRsZSB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIHJpdkJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hldnJvblwiXG4gICAgICAgICAgICAgICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgICAgICAgICAgICAgW3NpemVdPVwiJ3NtYWxsJ1wiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwiXG4gICAgICAgICAgICAgICAgICB1bmF2YWlsYWJsZUZvbGRlckNvbGxhcHNlZCA/ICdDaGV2cm9uRG93bicgOiAnQ2hldnJvblVwJ1xuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgdW5hdmFpbGFibGVGb2xkZXJDb2xsYXBzZWQgPSAhdW5hdmFpbGFibGVGb2xkZXJDb2xsYXBzZWRcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiF1bmF2YWlsYWJsZUZvbGRlckNvbGxhcHNlZFwiIGNsYXNzPVwib3B0aW9uc1wiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zLnVuYXZhaWxhYmxlQ29sdW1uczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyBjb2x1bW4sIGNvbHVtbnMgfVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9yaXYtc2lkZS1zaGVldD5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNjb2x1bW5UZW1wbGF0ZSBsZXQtY29sdW1uPVwiY29sdW1uXCIgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNvbHVtbiBzY3JvbGwtcGFkZGluZ1wiXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVFbmFibGluZ0NvbHVtbihjb2x1bW4sIGNvbHVtbnMpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIiBbY2xhc3MudW5hdmFpbGFibGVdPVwiY29sdW1uLmlzVW5hdmFpbGFibGVcIj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZW9yZGVySWNvbjsgY29udGV4dDogeyBjb2x1bW4sIGNvbHVtbnMgfVwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxyaXYtaGlnaGxpZ2h0XG4gICAgICAgIFt0ZXh0XT1cImNvbHVtbi5yZXNvbHZlZE5hbWVcIlxuICAgICAgICBbaW5kaWNlc109XCJjb2x1bW4uaGlnaGxpZ2h0SW5kaWNlc1wiXG4gICAgICA+PC9yaXYtaGlnaGxpZ2h0PlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8cml2LW1lbnVcbiAgICAgICAgY2xhc3M9XCJoaWRkZW5cIlxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIChjb2x1bW4uZW5hYmxlZCB8fCAhZGlzYWJsZUVuYWJsaW5nQ29sdW1ucyhjb2x1bW5zKSkgJiZcbiAgICAgICAgICAhY29sdW1uLmFsd2F5c1Bpbm5lZCAmJlxuICAgICAgICAgICFjb2x1bW4uaXNVbmF2YWlsYWJsZVxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgKm5nSWY9XCJjb2x1bW4uZW5hYmxlZCAmJiAhY29sdW1uLnBpbm5lZFwiXG4gICAgICAgICAgcml2LW1lbnUtaXRlbVxuICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgIGNvbHVtbkZyZWV6ZVVwVG8odHJ1ZSwgY29sdW1uLnN0YXRlSW5kZXgsICdvcHRpb25zTWVudScsIGNvbHVtbi5rZXkpXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIEZyZWV6ZSB1cCB0byBjb2x1bW5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAqbmdJZj1cImNvbHVtbi5lbmFibGVkICYmIGNvbHVtbi5waW5uZWRcIlxuICAgICAgICAgIHJpdi1tZW51LWl0ZW1cbiAgICAgICAgICAoY2xpY2spPVwiY29sdW1uRnJlZXplVXBUbyhmYWxzZSwgMCwgJ29wdGlvbnNNZW51JywgY29sdW1uLmtleSlcIlxuICAgICAgICA+XG4gICAgICAgICAgVW4tZnJlZXplIGNvbHVtbnNcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICByaXYtbWVudS1pdGVtXG4gICAgICAgICAgKGNsaWNrKT1cImNvbHVtbk1vdmVUbyhjb2x1bW4sICdzdGFydCcpXCJcbiAgICAgICAgPlxuICAgICAgICAgIE1vdmUgdG8gc3RhcnRcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICByaXYtbWVudS1pdGVtXG4gICAgICAgICAgKGNsaWNrKT1cImNvbHVtbk1vdmVUbyhjb2x1bW4sICdlbmQnKVwiXG4gICAgICAgID5cbiAgICAgICAgICBNb3ZlIHRvIGVuZFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiIWNvbHVtbi5hbHdheXNWaXNpYmxlXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICByaXYtbWVudS1pdGVtXG4gICAgICAgICAgKGNsaWNrKT1cImNvbHVtbkVuYWJsZWRDaGFuZ2UoY29sdW1uLCAhY29sdW1uLmVuYWJsZWQsICdvcHRpb25zTWVudScpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGNvbHVtbi5lbmFibGVkID8gJ0hpZGUgY29sdW1uJyA6ICdTaG93IGNvbHVtbicgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L3Jpdi1tZW51PlxuXG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiZW5hYmxlSWNvbjsgY29udGV4dDogeyBjb2x1bW4sIGNvbHVtbnMgfVwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNyZW9yZGVySWNvbiBsZXQtY29sdW1uPVwiY29sdW1uXCIgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIoc2VhcmNoaW5nIHwgYXN5bmMpID09PSBmYWxzZVwiPlxuICAgIDxzcGFuXG4gICAgICAqbmdJZj1cIiFjb2x1bW4uYWx3YXlzUGlubmVkICYmICFjb2x1bW4uaXNVbmF2YWlsYWJsZVwiXG4gICAgICBjbGFzcz1cInJlb3JkZXJcIlxuICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVFbmFibGluZ0NvbHVtbihjb2x1bW4sIGNvbHVtbnMpXCJcbiAgICAgIFtyaXZUb29sdGlwXT1cImNvbHVtbi50b29sdGlwRm9yUmVvcmRlckljb25cIlxuICAgID5cbiAgICAgIDxyaXYtaWNvbiBbbmFtZV09XCInUmVvcmRlcidcIiBbc2l6ZV09XCIyMFwiPjwvcml2LWljb24+XG4gICAgPC9zcGFuPlxuXG4gICAgPHNwYW5cbiAgICAgICpuZ0lmPVwiY29sdW1uLmFsd2F5c1Bpbm5lZCB8fCBjb2x1bW4uaXNVbmF2YWlsYWJsZVwiXG4gICAgICBjbGFzcz1cInJlb3JkZXItbG9ja2VkXCJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgIFtyaXZUb29sdGlwXT1cImNvbHVtbi50b29sdGlwRm9yUmVvcmRlckljb25cIlxuICAgID5cbiAgICAgIDxyaXYtaWNvbiBbbmFtZV09XCInTG9jaydcIiBbc2l6ZV09XCIyMFwiPjwvcml2LWljb24+XG4gICAgPC9zcGFuPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZW5hYmxlSWNvbiBsZXQtY29sdW1uPVwiY29sdW1uXCIgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCI+XG4gIDxidXR0b25cbiAgICAqbmdJZj1cIlxuICAgICAgIWNvbHVtbi5hbHdheXNWaXNpYmxlICYmICFjb2x1bW4uYWx3YXlzUGlubmVkICYmICFjb2x1bW4uaXNVbmF2YWlsYWJsZVxuICAgIFwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgcml2QnV0dG9uXG4gICAgW3JpdlRvb2x0aXBdPVwiXG4gICAgICBjb2x1bW4uZW5hYmxlZFxuICAgICAgICA/ICdIaWRlIGNvbHVtbidcbiAgICAgICAgOiBkaXNhYmxlRW5hYmxpbmdDb2x1bW5zKGNvbHVtbnMpXG4gICAgICAgID8gbGltaXRUb29sdGlwKClcbiAgICAgICAgOiAnU2hvdyBjb2x1bW4nXG4gICAgXCJcbiAgICBjbGFzcz1cImRpc2FibGUtb3ZlcnJpZGVcIlxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhY29sdW1uLmVuYWJsZWRcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlRW5hYmxpbmdDb2x1bW4oY29sdW1uLCBjb2x1bW5zKVwiXG4gICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgW3NpemVdPVwiJ3NtYWxsJ1wiXG4gICAgW2ljb25dPVwiY29sdW1uLmVuYWJsZWQgPyAnRXllJyA6ICdFeWVPZmYnXCJcbiAgICAoY2xpY2spPVwiY29sdW1uRW5hYmxlZENoYW5nZShjb2x1bW4sICFjb2x1bW4uZW5hYmxlZCwgJ2V5ZUljb24nKVwiXG4gID48L2J1dHRvbj5cblxuICA8YnV0dG9uXG4gICAgKm5nSWY9XCJjb2x1bW4uYWx3YXlzVmlzaWJsZSB8fCBjb2x1bW4uYWx3YXlzUGlubmVkIHx8IGNvbHVtbi5pc1VuYXZhaWxhYmxlXCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICByaXZCdXR0b25cbiAgICBbcml2VG9vbHRpcF09XCJjb2x1bW4udG9vbHRpcEZvckhpZGVJY29uXCJcbiAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cInRydWVcIlxuICAgIFt2YXJpYW50XT1cIidnaG9zdCdcIlxuICAgIFtzaXplXT1cIidzbWFsbCdcIlxuICAgIFtpY29uXT1cIidMb2NrJ1wiXG4gID48L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
227
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLXNldHRpbmdzLXNpZGUtc2hlZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvdGFibGUvdGFibGUtY29sdW1uLXNldHRpbmdzL3RhYmxlLWNvbHVtbi1zZXR0aW5ncy1zaWRlLXNoZWV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3RhYmxlL3RhYmxlL3RhYmxlLWNvbHVtbi1zZXR0aW5ncy90YWJsZS1jb2x1bW4tc2V0dGluZ3Mtc2lkZS1zaGVldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUdMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLElBQUksTUFBTSxTQUFTLENBQUM7QUFDM0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7Ozs7QUFlckUsTUFBTSxPQUFPLHFDQUFxQztJQU5sRDtRQWtCVyxTQUFJLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbEMsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV0QyxjQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFJbEUsc0JBQWlCLEdBQVcsUUFBUSxDQUFDLGVBQWUsQ0FBQztRQTRGckQsOEVBQThFO1FBQzlFLHVGQUF1RjtRQUN2RixxRkFBcUY7UUFDckYsdUZBQXVGO1FBQ3ZGLG9GQUFvRjtRQUNwRiw4QkFBOEI7UUFDOUIsbUJBQWMsR0FBRyxDQUFDLEtBQWdCLEVBQUUsRUFBRTtZQUNwQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBcUIsQ0FBQztZQUMzQyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO2dCQUN0RSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekIsQ0FBQztRQUNILENBQUMsQ0FBQztRQWdHRixxQkFBZ0IsR0FBa0IsSUFBSSxDQUFDO1FBQ3ZDLHFCQUFnQixHQUFhLElBQUksQ0FBQztRQUNsQyx5QkFBb0IsR0FBa0IsSUFBSSxDQUFDO1FBc0UzQywrQkFBMEIsR0FBWSxLQUFLLENBQUM7S0FDN0M7SUE5UUMsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDO1lBQzlCLElBQUksQ0FBQyxPQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDdEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNOLE1BQU0sVUFBVSxHQUNkLGtCQUFrQixDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUVwRCxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7b0JBQ2hDLElBQUksRUFBRSxDQUFDLGNBQWMsQ0FBQztvQkFDdEIsY0FBYyxFQUFFLElBQUk7b0JBQ3BCLFNBQVMsRUFBRSxDQUFDO29CQUNaLGNBQWMsRUFBRSxJQUFJO2lCQUNyQixDQUFDLENBQUM7Z0JBRUgsTUFBTSxrQkFBa0IsR0FDdEIsa0JBQWtCLENBQUMsd0JBQXdCLENBQ3pDLENBQUMsQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQ2hDLENBQUM7Z0JBQ0osTUFBTSxzQkFBc0IsR0FDMUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQztnQkFFbkMsT0FBTztvQkFDTCxJQUFJO29CQUNKLFVBQVU7b0JBQ1Ysa0JBQWtCO29CQUNsQixzQkFBc0I7aUJBQ3ZCLENBQUM7WUFDSixDQUFDLENBQUMsQ0FDSDtZQUNELElBQUksQ0FBQyxXQUFXO1NBQ2pCLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUNELENBQUMsQ0FDQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsRUFDaEUsV0FBVyxFQUNaLEVBQUUsRUFBRTtZQUNILElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2hCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUNuRCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksQ0FDcEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLGNBQWMsQ0FDeEMsQ0FBQztvQkFDRixPQUFPO3dCQUNMLEdBQUcsS0FBSyxDQUFDLElBQUk7d0JBQ2IsZ0JBQWdCLEVBQUU7NEJBQ2hCLEdBQUcsQ0FBQyxVQUFVLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FDbkMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLFVBQVcsRUFBRSxXQUFXLENBQUMsQ0FDckQ7eUJBQ0Y7cUJBQ0YsQ0FBQztnQkFDSixDQUFDLENBQUMsQ0FBQztnQkFDSCxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNoRSxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBRWxFLE9BQU87b0JBQ0wsY0FBYztvQkFDZCxlQUFlO29CQUNmLGtCQUFrQixFQUFFLGtCQUFrQjtvQkFDdEMsc0JBQXNCLEVBQUUsc0JBQXNCO2lCQUMvQyxDQUFDO1lBQ0osQ0FBQztZQUVELE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2xELEdBQUcsTUFBTTtnQkFDVCxnQkFBZ0IsRUFBRSxFQUFFO2FBQ3JCLENBQUMsQ0FBQyxDQUFDO1lBRUosTUFBTSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUM3QyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQ3pCLENBQUM7WUFDRixNQUFNLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQzlDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUMxQixDQUFDO1lBRUYsT0FBTztnQkFDTCxjQUFjLEVBQUUsY0FBYztnQkFDOUIsZUFBZSxFQUFFLGVBQWU7Z0JBQ2hDLGtCQUFrQixFQUFFLGtCQUFrQjtnQkFDdEMsc0JBQXNCLEVBQUUsc0JBQXNCO2FBQy9DLENBQUM7UUFDSixDQUFDLENBQ0YsQ0FDRixDQUFDO1FBRUYsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELFdBQVc7UUFDVCxRQUFRLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBZUQsbUJBQW1CLENBQ2pCLE1BQWtDLEVBQ2xDLE9BQWdCLEVBQ2hCLE1BQWlDO1FBRWpDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQztZQUN6QixJQUFJLEVBQUUscUJBQXFCO1lBQzNCLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRztZQUNsQixPQUFPO1lBQ1AsTUFBTTtTQUNQLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlLENBQUMsTUFBa0MsRUFBRSxNQUFlO1FBQ2pFLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQztZQUN6QixJQUFJLEVBQUUsaUJBQWlCO1lBQ3ZCLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRztZQUNsQixNQUFNO1NBQ1AsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGNBQWM7UUFDWixJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDekIsSUFBSSxFQUFFLHVCQUF1QjtTQUM5QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQWtDLEVBQUUsUUFBeUI7UUFDeEUsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ3pCLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsUUFBUTtZQUNSLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRztTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQ2QsTUFBZSxFQUNmLEtBQWEsRUFDYixNQUF1QyxFQUN2QyxNQUFVO1FBRVYsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ3pCLElBQUksRUFBRSx5QkFBeUI7WUFDL0IsTUFBTTtZQUNOLEtBQUs7WUFDTCxNQUFNO1lBQ04sTUFBTTtTQUNQLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxPQUF3QjtRQUN6QyxPQUFPLENBQ0wsT0FBTyxDQUFDLGVBQWUsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FDekUsQ0FBQztJQUNKLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxPQUF3QjtRQUN4QyxPQUFPLENBQ0wsT0FBTyxDQUFDLGNBQWMsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FDekUsQ0FBQztJQUNKLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxPQUF3QjtRQUM1QyxPQUFPLENBQ0wsT0FBTyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxNQUFNO1lBQzlELElBQUksQ0FBQyxpQkFBaUIsQ0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFRCxxQkFBcUIsQ0FDbkIsTUFBa0MsRUFDbEMsT0FBd0I7UUFFeEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxPQUF3QjtRQUM3QyxPQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNqRSxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTyxzQkFBc0IsSUFBSSxDQUFDLGlCQUFpQixxRkFBcUYsQ0FBQztJQUMzSSxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sc0JBQXNCLElBQUksQ0FBQyxpQkFBaUIsd0RBQXdELENBQUM7SUFDOUcsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQWdCO1FBQy9CLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQztZQUN6QixJQUFJLEVBQUUsd0JBQXdCO1lBQzlCLE9BQU87U0FDUixDQUFDLENBQUM7SUFDTCxDQUFDO0lBTUQsU0FBUyxDQUFDLEdBQVcsRUFBRSxHQUFNO1FBQzNCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLENBQUM7UUFDNUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEdBQUcsQ0FBQztJQUM5QixDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQWU7UUFDdEIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE9BQU8sQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxDQUNGLE9BQWUsRUFDZixVQUFrQixFQUNsQixPQUFnQixFQUNoQixrQkFBMEI7UUFFMUIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUN6QixJQUFJLEVBQUUsbUJBQW1CO2dCQUN6QixhQUFhLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtnQkFDcEMsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLE1BQU0sRUFBRSxVQUFVO2dCQUNsQixNQUFNLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixJQUFJLFNBQVM7YUFDM0MsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1lBRW5ELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7WUFDakMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQWdCLEVBQUUsa0JBQTBCO1FBQzNELElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDckUsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1lBQzdELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNwRCxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQztvQkFDekIsSUFBSSxFQUFFLHFCQUFxQjtvQkFDM0IsTUFBTSxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7b0JBQzdCLE9BQU8sRUFBRSxPQUFPO29CQUNoQixNQUFNLEVBQUUsVUFBVTtpQkFDbkIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUVELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7WUFDakMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUVELHlCQUF5QixDQUFDLEtBQWE7UUFDckMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQseUJBQXlCLENBQUMsT0FBd0I7UUFDaEQsT0FBTyxPQUFPLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELHdCQUF3QixDQUFDLE9BQXdCO1FBQy9DLE9BQU8sT0FBTyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxPQUF3QixFQUFFLFNBQWtCO1FBQ25FLE9BQU8sT0FBTyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLFNBQVMsS0FBSyxLQUFLLENBQUM7SUFDcEUsQ0FBQztJQUVELDRCQUE0QixDQUFDLE9BQXdCLEVBQUUsU0FBa0I7UUFDdkUsT0FBTyxPQUFPLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxTQUFTLEtBQUssS0FBSyxDQUFDO0lBQ3RFLENBQUM7K0dBalNVLHFDQUFxQzttR0FBckMscUNBQXFDLDBMQVNsQixVQUFVLDZCQ3JDMUMsb3diQThaQTs7NEZEbFlhLHFDQUFxQztrQkFOakQsU0FBUzsrQkFDRSxzQ0FBc0MsbUJBRy9CLHVCQUF1QixDQUFDLE1BQU07OEJBUy9DLE9BQU87c0JBRE4sS0FBSztnQkFJTixNQUFNO3NCQURMLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBGdXNlIGZyb20gJ2Z1c2UuanMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJpdlNlbGVjdCB9IGZyb20gJy4uLy4uLy4uL2lucHV0L3NlbGVjdC9zdGF0ZSc7XG5pbXBvcnQgeyBSaXZUYWJsZSB9IGZyb20gJy4uL3N0YXRlJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uSGVscGVycyB9IGZyb20gJy4uL3N0YXRlLWhlbHBlcnMvY29sdW1uLWhlbHBlcnMnO1xuXG50eXBlIENvbHVtbkdyb3VwczxDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uPiA9IHtcbiAgZW5hYmxlZENvbHVtbnM6IFRhYmxlQ29sdW1uSGVscGVycy5Db2x1bW5MaXN0PEM+O1xuICBkaXNhYmxlZENvbHVtbnM6IFRhYmxlQ29sdW1uSGVscGVycy5Db2x1bW5MaXN0PEM+O1xuICB1bmF2YWlsYWJsZUNvbHVtbnM6IFRhYmxlQ29sdW1uSGVscGVycy5Db2x1bW5MaXN0PEM+O1xuICB1bmF2YWlsYWJsZUZvbGRlclRpdGxlOiBzdHJpbmc7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyaXYtdGFibGUtY29sdW1uLXNldHRpbmdzLXNpZGUtc2hlZXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtY29sdW1uLXNldHRpbmdzLXNpZGUtc2hlZXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1jb2x1bW4tc2V0dGluZ3Mtc2lkZS1zaGVldC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbHVtblNldHRpbmdzU2lkZVNoZWV0Q29tcG9uZW50PFxuICBSIGV4dGVuZHMgUml2VGFibGUuUm93LFxuICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICBGIGV4dGVuZHMgUml2VGFibGUuRmlsdGVycyxcbj4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICBASW5wdXQoKVxuICBtYW5hZ2VyPzogUml2VGFibGUuTWFuYWdlcjxSLCBDLCBGPjtcblxuICBAVmlld0NoaWxkKCd0cmlnZ2VyJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIGFuY2hvcj86IEVsZW1lbnRSZWY7XG5cbiAgcmVhZG9ubHkgb3BlbiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIHJlYWRvbmx5IGZpbHRlclF1ZXJ5ID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG5cbiAgcmVhZG9ubHkgc2VhcmNoaW5nID0gdGhpcy5maWx0ZXJRdWVyeS5waXBlKG1hcChxdWVyeSA9PiAhIXF1ZXJ5KSk7XG5cbiAgY29sdW1uTGlzdD86IE9ic2VydmFibGU8Q29sdW1uR3JvdXBzPEM+PjtcblxuICBtYXhFbmFibGVkQ29sdW1uczogbnVtYmVyID0gUml2VGFibGUuQ29sdW1uc01heFNob3duO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29sdW1uTGlzdCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5tYW5hZ2VyIS5zdGF0ZS5waXBlKFxuICAgICAgICBtYXAocyA9PiB7XG4gICAgICAgICAgY29uc3QgYWxsQ29sdW1uczogVGFibGVDb2x1bW5IZWxwZXJzLkNvbHVtbkxpc3Q8Qz4gPVxuICAgICAgICAgICAgVGFibGVDb2x1bW5IZWxwZXJzLmdldENvbHVtblNldHRpbmdzQ29sdW1uTGlzdChzKTtcblxuICAgICAgICAgIGNvbnN0IGZ1c2UgPSBuZXcgRnVzZShhbGxDb2x1bW5zLCB7XG4gICAgICAgICAgICBrZXlzOiBbJ3Jlc29sdmVkTmFtZSddLFxuICAgICAgICAgICAgaWdub3JlTG9jYXRpb246IHRydWUsXG4gICAgICAgICAgICB0aHJlc2hvbGQ6IDAsXG4gICAgICAgICAgICBpbmNsdWRlTWF0Y2hlczogdHJ1ZSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGNvbnN0IHVuYXZhaWxhYmxlQ29sdW1uczogVGFibGVDb2x1bW5IZWxwZXJzLkNvbHVtbkxpc3Q8Qz4gPVxuICAgICAgICAgICAgVGFibGVDb2x1bW5IZWxwZXJzLmNyZWF0ZVVuYXZhaWxhYmxlQ29sdW1ucyhcbiAgICAgICAgICAgICAgcy5kaXNwbGF5LnVuYXZhaWxhYmxlQ29sdW1uS2V5cyxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgdW5hdmFpbGFibGVGb2xkZXJUaXRsZTogc3RyaW5nID1cbiAgICAgICAgICAgIHMuZGlzcGxheS51bmF2YWlsYWJsZUZvbGRlclRpdGxlO1xuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZ1c2UsXG4gICAgICAgICAgICBhbGxDb2x1bW5zLFxuICAgICAgICAgICAgdW5hdmFpbGFibGVDb2x1bW5zLFxuICAgICAgICAgICAgdW5hdmFpbGFibGVGb2xkZXJUaXRsZSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICB0aGlzLmZpbHRlclF1ZXJ5LFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIChbXG4gICAgICAgICAgeyBmdXNlLCBhbGxDb2x1bW5zLCB1bmF2YWlsYWJsZUNvbHVtbnMsIHVuYXZhaWxhYmxlRm9sZGVyVGl0bGUgfSxcbiAgICAgICAgICBmaWx0ZXJRdWVyeSxcbiAgICAgICAgXSkgPT4ge1xuICAgICAgICAgIGlmIChmaWx0ZXJRdWVyeSkge1xuICAgICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IGZ1c2Uuc2VhcmNoKGZpbHRlclF1ZXJ5KS5tYXAobWF0Y2ggPT4ge1xuICAgICAgICAgICAgICBjb25zdCBmaXJzdG1hdGNoID0gbWF0Y2gubWF0Y2hlcz8uZmluZChcbiAgICAgICAgICAgICAgICByZXN1bHQgPT4gcmVzdWx0LmtleSA9PT0gJ3Jlc29sdmVkTmFtZScsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4ubWF0Y2guaXRlbSxcbiAgICAgICAgICAgICAgICBoaWdobGlnaHRJbmRpY2VzOiBbXG4gICAgICAgICAgICAgICAgICAuLi4oZmlyc3RtYXRjaD8uaW5kaWNlcyB8fCBbXSkuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICBSaXZTZWxlY3QuaXNGdXNlTWF0Y2hFeGFjdChmaXJzdG1hdGNoISwgZmlsdGVyUXVlcnkpLFxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBlbmFibGVkQ29sdW1ucyA9IG1hdGNoZXMuZmlsdGVyKGNvbHVtbiA9PiBjb2x1bW4uZW5hYmxlZCk7XG4gICAgICAgICAgICBjb25zdCBkaXNhYmxlZENvbHVtbnMgPSBtYXRjaGVzLmZpbHRlcihjb2x1bW4gPT4gIWNvbHVtbi5lbmFibGVkKTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgZW5hYmxlZENvbHVtbnMsXG4gICAgICAgICAgICAgIGRpc2FibGVkQ29sdW1ucyxcbiAgICAgICAgICAgICAgdW5hdmFpbGFibGVDb2x1bW5zOiB1bmF2YWlsYWJsZUNvbHVtbnMsXG4gICAgICAgICAgICAgIHVuYXZhaWxhYmxlRm9sZGVyVGl0bGU6IHVuYXZhaWxhYmxlRm9sZGVyVGl0bGUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGFsbFZpc2libGVDb2x1bW5zID0gYWxsQ29sdW1ucy5tYXAoY29sdW1uID0+ICh7XG4gICAgICAgICAgICAuLi5jb2x1bW4sXG4gICAgICAgICAgICBoaWdobGlnaHRJbmRpY2VzOiBbXSxcbiAgICAgICAgICB9KSk7XG5cbiAgICAgICAgICBjb25zdCBlbmFibGVkQ29sdW1ucyA9IGFsbFZpc2libGVDb2x1bW5zLmZpbHRlcihcbiAgICAgICAgICAgIGNvbHVtbiA9PiBjb2x1bW4uZW5hYmxlZCxcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnN0IGRpc2FibGVkQ29sdW1ucyA9IGFsbFZpc2libGVDb2x1bW5zLmZpbHRlcihcbiAgICAgICAgICAgIGNvbHVtbiA9PiAhY29sdW1uLmVuYWJsZWQsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmFibGVkQ29sdW1uczogZW5hYmxlZENvbHVtbnMsXG4gICAgICAgICAgICBkaXNhYmxlZENvbHVtbnM6IGRpc2FibGVkQ29sdW1ucyxcbiAgICAgICAgICAgIHVuYXZhaWxhYmxlQ29sdW1uczogdW5hdmFpbGFibGVDb2x1bW5zLFxuICAgICAgICAgICAgdW5hdmFpbGFibGVGb2xkZXJUaXRsZTogdW5hdmFpbGFibGVGb2xkZXJUaXRsZSxcbiAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCB0aGlzLmhhbmRsZURyYWdPdmVyKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgdGhpcy5oYW5kbGVEcmFnT3Zlcik7XG4gIH1cblxuICAvLyBXZSBvbmx5IGNhcmUgYWJvdXQgd2hlbiB3ZSBoYXZlIGVudGVyZWQgYSBkcm9wIHpvbmUgZm9yIGFwcGx5aW5nIG91ciB2aXN1YWxcbiAgLy8gdHJlYXRtZW50LiBIb3dldmVyLCBpbiBvcmRlciB0byB0cmlnZ2VyIHRoZSBkcm9wIGV2ZW50LCB5b3UgbXVzdCBjYWxsIHByZXZlbnREZWZhdWx0XG4gIC8vIG9uIHRoZSBkcmFnb3Zlci4gV2UgYXJlIGhhbmRsaW5nIHRoaXMgbmF0aXZlbHkgb24gdGhlIGRvY3VtZW50LCBvdXRzaWRlIG9mIGFuZ3VsYXJcbiAgLy8gYXMgYSBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24uIElmIHdlIGhhdmUgYSBkcmFnZ2VkT3ZlckNvbHVtbklkeCBhbmQgd2UgZHJhZyBvdmVyIGFuXG4gIC8vIGVsZW1lbnQgd2l0aCBjbGFzcyBkcm9wLXpvbmUsIHdlIHdpbGwgYXNzdW1lIHlvdSB3YW50IHRvIHRoZSBkcm9wIGVsZW1lbnQgZW5hYmxlZFxuICAvLyBhbmQgd2Ugd2lsbCBwcmV2ZW50RGVmYXVsdC5cbiAgaGFuZGxlRHJhZ092ZXIgPSAoZXZlbnQ6IERyYWdFdmVudCkgPT4ge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBpZiAodGhpcy5kcmFnZ2VkT3ZlckNvbHVtbklkeCAhPSBudWxsICYmIHRhcmdldC5jbG9zZXN0KCcuZHJvcC16b25lJykpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbHVtbkVuYWJsZWRDaGFuZ2UoXG4gICAgY29sdW1uOiBSaXZUYWJsZS5Db2x1bW5TZXR0aW5nczxDPixcbiAgICBlbmFibGVkOiBib29sZWFuLFxuICAgIHNvdXJjZTogJ29wdGlvbnNNZW51JyB8ICdleWVJY29uJyxcbiAgKSB7XG4gICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgdHlwZTogJ2NvbHVtbkVuYWJsZWRDaGFuZ2UnLFxuICAgICAgY29sdW1uOiBjb2x1bW4ua2V5LFxuICAgICAgZW5hYmxlZCxcbiAgICAgIHNvdXJjZSxcbiAgICB9KTtcbiAgfVxuXG4gIGNvbHVtblBpbkNoYW5nZShjb2x1bW46IFJpdlRhYmxlLkNvbHVtblNldHRpbmdzPEM+LCBwaW5uZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm1hbmFnZXI/LmFjdGlvbnMubmV4dCh7XG4gICAgICB0eXBlOiAnY29sdW1uUGluQ2hhbmdlJyxcbiAgICAgIGNvbHVtbjogY29sdW1uLmtleSxcbiAgICAgIHBpbm5lZCxcbiAgICB9KTtcbiAgfVxuICByZXNldFRvRGVmYXVsdCgpIHtcbiAgICB0aGlzLm1hbmFnZXI/LmFjdGlvbnMubmV4dCh7XG4gICAgICB0eXBlOiAncmVzZXRUb0RlZmF1bHRDb2x1bW5zJyxcbiAgICB9KTtcbiAgfVxuXG4gIGNvbHVtbk1vdmVUbyhjb2x1bW46IFJpdlRhYmxlLkNvbHVtblNldHRpbmdzPEM+LCBwb3NpdGlvbjogJ3N0YXJ0JyB8ICdlbmQnKSB7XG4gICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgdHlwZTogJ2NvbHVtbk1vdmVUb0NoYW5nZScsXG4gICAgICBwb3NpdGlvbixcbiAgICAgIGNvbHVtbjogY29sdW1uLmtleSxcbiAgICB9KTtcbiAgfVxuXG4gIGNvbHVtbkZyZWV6ZVVwVG8oXG4gICAgZnJlZXplOiBib29sZWFuLFxuICAgIGluZGV4OiBudW1iZXIsXG4gICAgc291cmNlOiAnZnJlZXplRGl2aWRlcicgfCAnb3B0aW9uc01lbnUnLFxuICAgIGNvbHVtbj86IEMsXG4gICkge1xuICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHtcbiAgICAgIHR5cGU6ICdjb2x1bW5zRnJlZXplVXBUb0NoYW5nZScsXG4gICAgICBmcmVlemUsXG4gICAgICBpbmRleCxcbiAgICAgIHNvdXJjZSxcbiAgICAgIGNvbHVtbixcbiAgICB9KTtcbiAgfVxuXG4gIGFsbENvbHVtbnNEaXNhYmxlZChjb2x1bW5zOiBDb2x1bW5Hcm91cHM8Qz4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgY29sdW1ucy5kaXNhYmxlZENvbHVtbnMubGVuZ3RoID09IDAgJiYgY29sdW1ucy5lbmFibGVkQ29sdW1ucy5sZW5ndGggPiAwXG4gICAgKTtcbiAgfVxuXG4gIGFsbENvbHVtbnNFbmFibGVkKGNvbHVtbnM6IENvbHVtbkdyb3VwczxDPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBjb2x1bW5zLmVuYWJsZWRDb2x1bW5zLmxlbmd0aCA9PSAwICYmIGNvbHVtbnMuZGlzYWJsZWRDb2x1bW5zLmxlbmd0aCA+IDBcbiAgICApO1xuICB9XG5cbiAgc2hvd0FsbENvbHVtbnNWaXNpYmxlKGNvbHVtbnM6IENvbHVtbkdyb3VwczxDPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBjb2x1bW5zLmVuYWJsZWRDb2x1bW5zLmxlbmd0aCArIGNvbHVtbnMuZGlzYWJsZWRDb2x1bW5zLmxlbmd0aCA8PVxuICAgICAgdGhpcy5tYXhFbmFibGVkQ29sdW1uc1xuICAgICk7XG4gIH1cblxuICBkaXNhYmxlRW5hYmxpbmdDb2x1bW4oXG4gICAgY29sdW1uOiBSaXZUYWJsZS5Db2x1bW5TZXR0aW5nczxDPixcbiAgICBjb2x1bW5zOiBDb2x1bW5Hcm91cHM8Qz4sXG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhY29sdW1uLmVuYWJsZWQgJiYgdGhpcy5kaXNhYmxlRW5hYmxpbmdDb2x1bW5zKGNvbHVtbnMpO1xuICB9XG5cbiAgZGlzYWJsZUVuYWJsaW5nQ29sdW1ucyhjb2x1bW5zOiBDb2x1bW5Hcm91cHM8Qz4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gY29sdW1ucy5lbmFibGVkQ29sdW1ucy5sZW5ndGggPj0gdGhpcy5tYXhFbmFibGVkQ29sdW1ucztcbiAgfVxuXG4gIGljb25MaW1pdFRvb2x0aXAoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYE91ciB0YWJsZXMgc3VwcG9ydCAke3RoaXMubWF4RW5hYmxlZENvbHVtbnN9IHZpc2libGUgY29sdW1ucy4gQ29uc2lkZXIgaGlkaW5nIHNvbWUgb2YgeW91ciBjdXJyZW50IGNvbHVtbnMgdG8gYWRkIGFueXRoaW5nIG5ldy5gO1xuICB9XG5cbiAgbGltaXRUb29sdGlwKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBZb3XigJl2ZSByZWFjaGVkIHRoZSAke3RoaXMubWF4RW5hYmxlZENvbHVtbnN9LWNvbHVtbiBsaW1pdC4gSGlkZSBhIHZpc2libGUgY29sdW1uIHRvIHNob3cgdGhpcyBvbmUuYDtcbiAgfVxuXG4gIGVuYWJsZUFsbENvbHVtbnMoZW5hYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHtcbiAgICAgIHR5cGU6ICdlbmFibGVBbGxDb2x1bW5zQ2hhbmdlJyxcbiAgICAgIGVuYWJsZWQsXG4gICAgfSk7XG4gIH1cblxuICBkcmFnZ2VkQ29sdW1uSWR4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgZHJhZ2dlZENvbHVtbktleTogQyB8IG51bGwgPSBudWxsO1xuICBkcmFnZ2VkT3ZlckNvbHVtbklkeDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgZHJhZ1N0YXJ0KGlkeDogbnVtYmVyLCBrZXk6IEMpIHtcbiAgICB0aGlzLmRyYWdnZWRDb2x1bW5JZHggPSBpZHg7XG4gICAgdGhpcy5kcmFnZ2VkQ29sdW1uS2V5ID0ga2V5O1xuICB9XG5cbiAgZHJhZ092ZXIob250b0lkeDogbnVtYmVyKSB7XG4gICAgdGhpcy5kcmFnZ2VkT3ZlckNvbHVtbklkeCA9IG9udG9JZHg7XG4gIH1cblxuICBkcm9wKFxuICAgIG9udG9JZHg6IG51bWJlcixcbiAgICBzdGF0ZUluZGV4OiBudW1iZXIsXG4gICAgZW5hYmxlZDogYm9vbGVhbixcbiAgICBlbmFibGVkQ29sdW1uQ291bnQ6IG51bWJlcixcbiAgKSB7XG4gICAgaWYgKHRoaXMuZHJhZ2dlZENvbHVtbklkeCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgICB0eXBlOiAnY29sdW1uT3JkZXJDaGFuZ2UnLFxuICAgICAgICBwcmV2aW91c0luZGV4OiB0aGlzLmRyYWdnZWRDb2x1bW5JZHgsXG4gICAgICAgIG5ld0luZGV4OiBzdGF0ZUluZGV4LFxuICAgICAgICBzb3VyY2U6ICdtZW51RHJhZycsXG4gICAgICAgIGNvbHVtbjogdGhpcy5kcmFnZ2VkQ29sdW1uS2V5IHx8IHVuZGVmaW5lZCxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5kcm9wRW5hYmxlZFN0YXRlKGVuYWJsZWQsIGVuYWJsZWRDb2x1bW5Db3VudCk7XG5cbiAgICAgIHRoaXMuZHJhZ2dlZE92ZXJDb2x1bW5JZHggPSBudWxsO1xuICAgICAgdGhpcy5kcmFnZ2VkQ29sdW1uS2V5ID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBkcm9wRW5hYmxlZFN0YXRlKGVuYWJsZWQ6IGJvb2xlYW4sIGVuYWJsZWRDb2x1bW5Db3VudDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZHJhZ2dlZENvbHVtbktleSAhPT0gbnVsbCAmJiB0aGlzLmRyYWdnZWRDb2x1bW5JZHggIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGlzRW5hYmxlZCA9IGVuYWJsZWRDb2x1bW5Db3VudCA+IHRoaXMuZHJhZ2dlZENvbHVtbklkeDtcbiAgICAgIGNvbnN0IHNob3VsZEZpcmUgPSBlbmFibGVkID8gIWlzRW5hYmxlZCA6IGlzRW5hYmxlZDtcbiAgICAgIGlmIChzaG91bGRGaXJlKSB7XG4gICAgICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHtcbiAgICAgICAgICB0eXBlOiAnY29sdW1uRW5hYmxlZENoYW5nZScsXG4gICAgICAgICAgY29sdW1uOiB0aGlzLmRyYWdnZWRDb2x1bW5LZXksXG4gICAgICAgICAgZW5hYmxlZDogZW5hYmxlZCxcbiAgICAgICAgICBzb3VyY2U6ICdkcmFnRHJvcCcsXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmRyYWdnZWRPdmVyQ29sdW1uSWR4ID0gbnVsbDtcbiAgICAgIHRoaXMuZHJhZ2dlZENvbHVtbktleSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgZGlzYWJsZWRDb2x1bW5zV2l0aE9mZnNldChpbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgaGFzRGlzYWJsZWRDb2x1bW5zU2VjdGlvbihjb2x1bW5zOiBDb2x1bW5Hcm91cHM8Qz4pIHtcbiAgICByZXR1cm4gY29sdW1ucy5kaXNhYmxlZENvbHVtbnMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIGhhc0VuYWJsZWRDb2x1bW5zU2VjdGlvbihjb2x1bW5zOiBDb2x1bW5Hcm91cHM8Qz4pIHtcbiAgICByZXR1cm4gY29sdW1ucy5lbmFibGVkQ29sdW1ucy5sZW5ndGggPiAwO1xuICB9XG5cbiAgaGFzTm9Db2x1bW5zU2hvd25TZWN0aW9uKGNvbHVtbnM6IENvbHVtbkdyb3VwczxDPiwgc2VhcmNoaW5nOiBib29sZWFuKSB7XG4gICAgcmV0dXJuIGNvbHVtbnMuZW5hYmxlZENvbHVtbnMubGVuZ3RoID09PSAwICYmIHNlYXJjaGluZyA9PT0gZmFsc2U7XG4gIH1cblxuICBoYXNVbmF2YWlsYWJsZUNvbHVtbnNTZWN0aW9uKGNvbHVtbnM6IENvbHVtbkdyb3VwczxDPiwgc2VhcmNoaW5nOiBib29sZWFuKSB7XG4gICAgcmV0dXJuIGNvbHVtbnMudW5hdmFpbGFibGVDb2x1bW5zLmxlbmd0aCA+IDAgJiYgc2VhcmNoaW5nID09PSBmYWxzZTtcbiAgfVxuXG4gIHVuYXZhaWxhYmxlRm9sZGVyQ29sbGFwc2VkOiBib29sZWFuID0gZmFsc2U7XG59XG4iLCI8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjdHJpZ2dlciByaXZCdXR0b24gKGNsaWNrKT1cIm9wZW4ubmV4dCh0cnVlKVwiPlxuICBDb2x1bW5zXG48L2J1dHRvbj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbkxpc3QgfCBhc3luYzsgbGV0IGNvbHVtbnNcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wZW4gfCBhc3luY1wiPlxuICAgIDxyaXYtc2lkZS1zaGVldFxuICAgICAgW2xhYmVsXT1cIidDb2x1bW5zJ1wiXG4gICAgICAoY2xvc2UpPVwib3Blbi5uZXh0KGZhbHNlKTsgZmlsdGVyUXVlcnkubmV4dCgnJylcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxuICAgICAgICAgIDxzcGFuPkNvbHVtbnM8L3NwYW4+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICByaXZCdXR0b25cbiAgICAgICAgICAgIFt2YXJpYW50XT1cIidnaG9zdCdcIlxuICAgICAgICAgICAgW2ljb25dPVwiJ1gnXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuLm5leHQoZmFsc2UpOyBmaWx0ZXJRdWVyeS5uZXh0KCcnKVwiXG4gICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHJpdi1zZWFyY2hcbiAgICAgICAgICBbbmFtZV09XCInY29sdW1uLXNlYXJjaCdcIlxuICAgICAgICAgIFt2YWx1ZV09XCIoZmlsdGVyUXVlcnkgfCBhc3luYykgfHwgJydcIlxuICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJmaWx0ZXJRdWVyeS5uZXh0KCRldmVudClcIlxuICAgICAgICA+PC9yaXYtc2VhcmNoPlxuICAgICAgICA8cml2LWJhbm5lclxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBjb2x1bW5zLmRpc2FibGVkQ29sdW1ucy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICBkaXNhYmxlRW5hYmxpbmdDb2x1bW5zKGNvbHVtbnMpXG4gICAgICAgICAgXCJcbiAgICAgICAgICBbaWNvblRvb2x0aXBdPVwiaWNvbkxpbWl0VG9vbHRpcCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIENvbHVtbiBsaW1pdCByZWFjaGVkXG4gICAgICAgIDwvcml2LWJhbm5lcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbnNcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaGFzRW5hYmxlZENvbHVtbnNTZWN0aW9uKGNvbHVtbnMpXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiY29sdW1uLWhlYWRlciBkcm9wLXpvbmVcIlxuICAgICAgICAgICAgICAoZHJvcCk9XCJkcm9wRW5hYmxlZFN0YXRlKHRydWUsIGNvbHVtbnMuZW5hYmxlZENvbHVtbnMubGVuZ3RoKVwiXG4gICAgICAgICAgICAgIChkcmFnZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGRyYWdPdmVyKC0xKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29sdW1uLWhlYWRlci1sYWJlbFwiPlNob3duIGluIHRhYmxlPC9zcGFuPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIoc2VhcmNoaW5nIHwgYXN5bmMpID09PSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgcml2QnV0dG9uXG4gICAgICAgICAgICAgICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFsbENvbHVtbnNFbmFibGVkKGNvbHVtbnMpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZW5hYmxlQWxsQ29sdW1ucyhmYWxzZSlcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgSGlkZSBhbGxcbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbnNcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1ucy5lbmFibGVkQ29sdW1uczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm9wdGlvblwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5kcmFnZ2FibGVdPVwiXG4gICAgICAgICAgICAgICAgICAgIChzZWFyY2hpbmcgfCBhc3luYykgPT09IGZhbHNlICYmICFjb2x1bW4uYWx3YXlzUGlubmVkXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuZHJvcHBhYmxlXT1cIlxuICAgICAgICAgICAgICAgICAgICAoc2VhcmNoaW5nIHwgYXN5bmMpID09PSBmYWxzZSAmJiAhY29sdW1uLmFsd2F5c1Bpbm5lZFxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5kcm9wLXpvbmVdPVwiIWNvbHVtbi5hbHdheXNQaW5uZWRcIlxuICAgICAgICAgICAgICAgICAgKGRyYWdzdGFydCk9XCJkcmFnU3RhcnQoY29sdW1uLnN0YXRlSW5kZXgsIGNvbHVtbi5rZXkpXCJcbiAgICAgICAgICAgICAgICAgIChkcmFnZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGRyYWdPdmVyKGkpXCJcbiAgICAgICAgICAgICAgICAgIChkcm9wKT1cIlxuICAgICAgICAgICAgICAgICAgICBkcm9wKFxuICAgICAgICAgICAgICAgICAgICAgIGksXG4gICAgICAgICAgICAgICAgICAgICAgY29sdW1uLnN0YXRlSW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zLmVuYWJsZWRDb2x1bW5zLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmRyYWdnZWQtb3Zlci10b3BdPVwiXG4gICAgICAgICAgICAgICAgICAgIGRyYWdnZWRPdmVyQ29sdW1uSWR4ID09PSBpICYmXG4gICAgICAgICAgICAgICAgICAgIGRyYWdnZWRDb2x1bW5JZHggIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICAgICAgZHJhZ2dlZENvbHVtbklkeCA+IGkgJiZcbiAgICAgICAgICAgICAgICAgICAgIWNvbHVtbi5hbHdheXNQaW5uZWRcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuZHJhZ2dlZC1vdmVyLWJvdHRvbV09XCJcbiAgICAgICAgICAgICAgICAgICAgZHJhZ2dlZE92ZXJDb2x1bW5JZHggPT09IGkgJiZcbiAgICAgICAgICAgICAgICAgICAgZHJhZ2dlZENvbHVtbklkeCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgICAgICBkcmFnZ2VkQ29sdW1uSWR4IDwgaSAmJlxuICAgICAgICAgICAgICAgICAgICAhY29sdW1uLmFsd2F5c1Bpbm5lZFxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgY29sdW1uVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyBjb2x1bW4sIGNvbHVtbnMgfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbi5pc0xhc3RQaW5uZWRDb2x1bW4gJiYgKHNlYXJjaGluZyB8IGFzeW5jKSA9PT0gZmFsc2VcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbHVtbiBzY3JvbGwtcGFkZGluZ1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZyb3plblwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBpbm5lZFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxyaXYtaWNvbiBbbmFtZV09XCInUGluSW5hY3RpdmUnXCIgW3NpemVdPVwiMjBcIj48L3Jpdi1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPkZyb3plbiB0aHJvdWdoIGhlcmU8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICByaXZCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgW3JpdlRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgIWNvbHVtbi5hbHdheXNQaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ1VuLWZyZWV6ZSBjb2x1bW5zJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnVGhlIGFib3ZlIGNvbHVtbnMgY2Fubm90IGJlIHVuZnJvemVuJ1xuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRpc2FibGUtb3ZlcnJpZGVcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWNvbHVtbi5lbmFibGVkIHx8IGNvbHVtbi5hbHdheXNQaW5uZWRcIlxuICAgICAgICAgICAgICAgICAgICBbdmFyaWFudF09XCInZ2hvc3QnXCJcbiAgICAgICAgICAgICAgICAgICAgW3NpemVdPVwiJ3NtYWxsJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtpY29uXT1cIidYJ1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5GcmVlemVVcFRvKFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW4uc3RhdGVJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICdmcmVlemVEaXZpZGVyJ1xuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICBoYXNOb0NvbHVtbnNTaG93blNlY3Rpb24oY29sdW1ucywgKHNlYXJjaGluZyB8IGFzeW5jKSA/PyBmYWxzZSlcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBjbGFzcz1cImNvbHVtbi1oZWFkZXIgZHJvcC16b25lXCJcbiAgICAgICAgICAgIChkcm9wKT1cImRyb3BFbmFibGVkU3RhdGUodHJ1ZSwgY29sdW1ucy5lbmFibGVkQ29sdW1ucy5sZW5ndGgpXCJcbiAgICAgICAgICAgIChkcmFnZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGRyYWdPdmVyKC0xKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4+Tm8gY29sdW1ucyBzaG93bjwvc3Bhbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIHJpdkJ1dHRvblxuICAgICAgICAgICAgICBbdmFyaWFudF09XCInZ2hvc3QnXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJlc2V0VG9EZWZhdWx0KClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBSZXNldCB0byBkZWZhdWx0XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImRpdmlkZXJcIlxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgaGFzRGlzYWJsZWRDb2x1bW5zU2VjdGlvbihjb2x1bW5zKSAmJlxuICAgICAgICAgICAgICAoaGFzRW5hYmxlZENvbHVtbnNTZWN0aW9uKGNvbHVtbnMpIHx8XG4gICAgICAgICAgICAgICAgaGFzTm9Db2x1bW5zU2hvd25TZWN0aW9uKGNvbHVtbnMsIChzZWFyY2hpbmcgfCBhc3luYykgPz8gZmFsc2UpKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJoYXNEaXNhYmxlZENvbHVtbnNTZWN0aW9uKGNvbHVtbnMpXCJcbiAgICAgICAgICAgIChkcm9wKT1cImRyb3BFbmFibGVkU3RhdGUoZmFsc2UsIGNvbHVtbnMuZW5hYmxlZENvbHVtbnMubGVuZ3RoKVwiXG4gICAgICAgICAgICAoZHJhZ2VudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBkcmFnT3ZlcigtMSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4taGVhZGVyXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29sdW1uLWhlYWRlci1sYWJlbFwiPkhpZGRlbiBmcm9tIHRhYmxlPC9zcGFuPlxuXG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgKHNlYXJjaGluZyB8IGFzeW5jKSA9PT0gZmFsc2UgJiZcbiAgICAgICAgICAgICAgICAgIHNob3dBbGxDb2x1bW5zVmlzaWJsZShjb2x1bW5zKVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgcml2QnV0dG9uXG4gICAgICAgICAgICAgICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFsbENvbHVtbnNEaXNhYmxlZChjb2x1bW5zKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImVuYWJsZUFsbENvbHVtbnModHJ1ZSlcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgU2hvdyBhbGxcbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbnNcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1ucy5kaXNhYmxlZENvbHVtbnM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRyYWdnYWJsZV09XCJcbiAgICAgICAgICAgICAgICAgIChzZWFyY2hpbmcgfCBhc3luYykgPT09IGZhbHNlICYmXG4gICAgICAgICAgICAgICAgICAhZGlzYWJsZUVuYWJsaW5nQ29sdW1ucyhjb2x1bW5zKSAmJlxuICAgICAgICAgICAgICAgICAgIWNvbHVtbi5hbHdheXNQaW5uZWRcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRyb3BwYWJsZV09XCJcbiAgICAgICAgICAgICAgICAgIChzZWFyY2hpbmcgfCBhc3luYykgPT09IGZhbHNlICYmXG4gICAgICAgICAgICAgICAgICAhZGlzYWJsZUVuYWJsaW5nQ29sdW1ucyhjb2x1bW5zKSAmJlxuICAgICAgICAgICAgICAgICAgIWNvbHVtbi5hbHdheXNQaW5uZWRcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5kcm9wLXpvbmVdPVwiXG4gICAgICAgICAgICAgICAgICAhZGlzYWJsZUVuYWJsaW5nQ29sdW1ucyhjb2x1bW5zKSAmJiAhY29sdW1uLmFsd2F5c1Bpbm5lZFxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgKGRyYWdzdGFydCk9XCJkcmFnU3RhcnQoY29sdW1uLnN0YXRlSW5kZXgsIGNvbHVtbi5rZXkpXCJcbiAgICAgICAgICAgICAgICAoZHJhZ2VudGVyKT1cIlxuICAgICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICBkcmFnT3ZlcihpICsgY29sdW1ucy5lbmFibGVkQ29sdW1ucy5sZW5ndGgpXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAoZHJvcCk9XCJcbiAgICAgICAgICAgICAgICAgIGRyb3AoXG4gICAgICAgICAgICAgICAgICAgIGkgKyBjb2x1bW5zLmVuYWJsZWRDb2x1bW5zLmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uLnN0YXRlSW5kZXgsXG4gICAgICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5zLmVuYWJsZWRDb2x1bW5zLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyBjb2x1bW4sIGNvbHVtbnMgfVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJkaXZpZGVyXCJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIGhhc1VuYXZhaWxhYmxlQ29sdW1uc1NlY3Rpb24oXG4gICAgICAgICAgICAgICAgY29sdW1ucyxcbiAgICAgICAgICAgICAgICAoc2VhcmNoaW5nIHwgYXN5bmMpID8/IGZhbHNlXG4gICAgICAgICAgICAgICkgJiZcbiAgICAgICAgICAgICAgKGhhc0Rpc2FibGVkQ29sdW1uc1NlY3Rpb24oY29sdW1ucykgfHxcbiAgICAgICAgICAgICAgICBoYXNFbmFibGVkQ29sdW1uc1NlY3Rpb24oY29sdW1ucykgfHxcbiAgICAgICAgICAgICAgICBoYXNOb0NvbHVtbnNTaG93blNlY3Rpb24oY29sdW1ucywgKHNlYXJjaGluZyB8IGFzeW5jKSA/PyBmYWxzZSkpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICBoYXNVbmF2YWlsYWJsZUNvbHVtbnNTZWN0aW9uKFxuICAgICAgICAgICAgICAgIGNvbHVtbnMsXG4gICAgICAgICAgICAgICAgKHNlYXJjaGluZyB8IGFzeW5jKSA/PyBmYWxzZVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4taGVhZGVyXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29sdW1uLWhlYWRlci1sYWJlbFwiPlxuICAgICAgICAgICAgICAgIHt7IGNvbHVtbnMudW5hdmFpbGFibGVGb2xkZXJUaXRsZSB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIHJpdkJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hldnJvblwiXG4gICAgICAgICAgICAgICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgICAgICAgICAgICAgW3NpemVdPVwiJ3NtYWxsJ1wiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwiXG4gICAgICAgICAgICAgICAgICB1bmF2YWlsYWJsZUZvbGRlckNvbGxhcHNlZCA/ICdDaGV2cm9uRG93bicgOiAnQ2hldnJvblVwJ1xuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgdW5hdmFpbGFibGVGb2xkZXJDb2xsYXBzZWQgPSAhdW5hdmFpbGFibGVGb2xkZXJDb2xsYXBzZWRcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiF1bmF2YWlsYWJsZUZvbGRlckNvbGxhcHNlZFwiIGNsYXNzPVwib3B0aW9uc1wiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zLnVuYXZhaWxhYmxlQ29sdW1uczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyBjb2x1bW4sIGNvbHVtbnMgfVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9yaXYtc2lkZS1zaGVldD5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNjb2x1bW5UZW1wbGF0ZSBsZXQtY29sdW1uPVwiY29sdW1uXCIgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNvbHVtbiBzY3JvbGwtcGFkZGluZ1wiXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVFbmFibGluZ0NvbHVtbihjb2x1bW4sIGNvbHVtbnMpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIiBbY2xhc3MudW5hdmFpbGFibGVdPVwiY29sdW1uLmlzVW5hdmFpbGFibGVcIj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZW9yZGVySWNvbjsgY29udGV4dDogeyBjb2x1bW4sIGNvbHVtbnMgfVwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxyaXYtaGlnaGxpZ2h0XG4gICAgICAgIFt0ZXh0XT1cImNvbHVtbi5yZXNvbHZlZE5hbWVcIlxuICAgICAgICBbaW5kaWNlc109XCJjb2x1bW4uaGlnaGxpZ2h0SW5kaWNlc1wiXG4gICAgICA+PC9yaXYtaGlnaGxpZ2h0PlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8cml2LW1lbnVcbiAgICAgICAgY2xhc3M9XCJoaWRkZW5cIlxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIChjb2x1bW4uZW5hYmxlZCB8fCAhZGlzYWJsZUVuYWJsaW5nQ29sdW1ucyhjb2x1bW5zKSkgJiZcbiAgICAgICAgICAhY29sdW1uLmFsd2F5c1Bpbm5lZCAmJlxuICAgICAgICAgICFjb2x1bW4uaXNVbmF2YWlsYWJsZVxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgKm5nSWY9XCJjb2x1bW4uZW5hYmxlZCAmJiAhY29sdW1uLnBpbm5lZFwiXG4gICAgICAgICAgcml2LW1lbnUtaXRlbVxuICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgIGNvbHVtbkZyZWV6ZVVwVG8odHJ1ZSwgY29sdW1uLnN0YXRlSW5kZXgsICdvcHRpb25zTWVudScsIGNvbHVtbi5rZXkpXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIEZyZWV6ZSB1cCB0byBjb2x1bW5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAqbmdJZj1cImNvbHVtbi5lbmFibGVkICYmIGNvbHVtbi5waW5uZWRcIlxuICAgICAgICAgIHJpdi1tZW51LWl0ZW1cbiAgICAgICAgICAoY2xpY2spPVwiY29sdW1uRnJlZXplVXBUbyhmYWxzZSwgMCwgJ29wdGlvbnNNZW51JywgY29sdW1uLmtleSlcIlxuICAgICAgICA+XG4gICAgICAgICAgVW4tZnJlZXplIGNvbHVtbnNcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICByaXYtbWVudS1pdGVtXG4gICAgICAgICAgKGNsaWNrKT1cImNvbHVtbk1vdmVUbyhjb2x1bW4sICdzdGFydCcpXCJcbiAgICAgICAgPlxuICAgICAgICAgIE1vdmUgdG8gc3RhcnRcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICByaXYtbWVudS1pdGVtXG4gICAgICAgICAgKGNsaWNrKT1cImNvbHVtbk1vdmVUbyhjb2x1bW4sICdlbmQnKVwiXG4gICAgICAgID5cbiAgICAgICAgICBNb3ZlIHRvIGVuZFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiIWNvbHVtbi5hbHdheXNWaXNpYmxlXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICByaXYtbWVudS1pdGVtXG4gICAgICAgICAgKGNsaWNrKT1cImNvbHVtbkVuYWJsZWRDaGFuZ2UoY29sdW1uLCAhY29sdW1uLmVuYWJsZWQsICdvcHRpb25zTWVudScpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGNvbHVtbi5lbmFibGVkID8gJ0hpZGUgY29sdW1uJyA6ICdTaG93IGNvbHVtbicgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L3Jpdi1tZW51PlxuXG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiZW5hYmxlSWNvbjsgY29udGV4dDogeyBjb2x1bW4sIGNvbHVtbnMgfVwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNyZW9yZGVySWNvbiBsZXQtY29sdW1uPVwiY29sdW1uXCIgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIoc2VhcmNoaW5nIHwgYXN5bmMpID09PSBmYWxzZVwiPlxuICAgIDxzcGFuXG4gICAgICAqbmdJZj1cIiFjb2x1bW4uYWx3YXlzUGlubmVkICYmICFjb2x1bW4uaXNVbmF2YWlsYWJsZVwiXG4gICAgICBjbGFzcz1cInJlb3JkZXJcIlxuICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVFbmFibGluZ0NvbHVtbihjb2x1bW4sIGNvbHVtbnMpXCJcbiAgICAgIFtyaXZUb29sdGlwXT1cImNvbHVtbi50b29sdGlwRm9yUmVvcmRlckljb25cIlxuICAgID5cbiAgICAgIDxyaXYtaWNvbiBbbmFtZV09XCInUmVvcmRlcidcIiBbc2l6ZV09XCIyMFwiPjwvcml2LWljb24+XG4gICAgPC9zcGFuPlxuXG4gICAgPHNwYW5cbiAgICAgICpuZ0lmPVwiY29sdW1uLmFsd2F5c1Bpbm5lZCB8fCBjb2x1bW4uaXNVbmF2YWlsYWJsZVwiXG4gICAgICBjbGFzcz1cInJlb3JkZXItbG9ja2VkXCJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgIFtyaXZUb29sdGlwXT1cImNvbHVtbi50b29sdGlwRm9yUmVvcmRlckljb25cIlxuICAgID5cbiAgICAgIDxyaXYtaWNvbiBbbmFtZV09XCInTG9jaydcIiBbc2l6ZV09XCIyMFwiPjwvcml2LWljb24+XG4gICAgPC9zcGFuPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZW5hYmxlSWNvbiBsZXQtY29sdW1uPVwiY29sdW1uXCIgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCI+XG4gIDxidXR0b25cbiAgICAqbmdJZj1cIlxuICAgICAgIWNvbHVtbi5hbHdheXNWaXNpYmxlICYmICFjb2x1bW4uYWx3YXlzUGlubmVkICYmICFjb2x1bW4uaXNVbmF2YWlsYWJsZVxuICAgIFwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgcml2QnV0dG9uXG4gICAgW3JpdlRvb2x0aXBdPVwiXG4gICAgICBjb2x1bW4uZW5hYmxlZFxuICAgICAgICA/ICdIaWRlIGNvbHVtbidcbiAgICAgICAgOiBkaXNhYmxlRW5hYmxpbmdDb2x1bW5zKGNvbHVtbnMpXG4gICAgICAgID8gbGltaXRUb29sdGlwKClcbiAgICAgICAgOiAnU2hvdyBjb2x1bW4nXG4gICAgXCJcbiAgICBjbGFzcz1cImRpc2FibGUtb3ZlcnJpZGVcIlxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhY29sdW1uLmVuYWJsZWRcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlRW5hYmxpbmdDb2x1bW4oY29sdW1uLCBjb2x1bW5zKVwiXG4gICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgW3NpemVdPVwiJ3NtYWxsJ1wiXG4gICAgW2ljb25dPVwiY29sdW1uLmVuYWJsZWQgPyAnRXllJyA6ICdFeWVPZmYnXCJcbiAgICAoY2xpY2spPVwiY29sdW1uRW5hYmxlZENoYW5nZShjb2x1bW4sICFjb2x1bW4uZW5hYmxlZCwgJ2V5ZUljb24nKVwiXG4gID48L2J1dHRvbj5cblxuICA8YnV0dG9uXG4gICAgKm5nSWY9XCJjb2x1bW4uYWx3YXlzVmlzaWJsZSB8fCBjb2x1bW4uYWx3YXlzUGlubmVkIHx8IGNvbHVtbi5pc1VuYXZhaWxhYmxlXCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICByaXZCdXR0b25cbiAgICBbcml2VG9vbHRpcF09XCJjb2x1bW4udG9vbHRpcEZvckhpZGVJY29uXCJcbiAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cInRydWVcIlxuICAgIFt2YXJpYW50XT1cIidnaG9zdCdcIlxuICAgIFtzaXplXT1cIidzbWFsbCdcIlxuICAgIFtpY29uXT1cIidMb2NrJ1wiXG4gID48L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -119,10 +119,10 @@ export class TableColumnSettingsComponent {
|
|
|
119
119
|
this.draggedOverColumnIdx = null;
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
123
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
122
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableColumnSettingsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
123
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TableColumnSettingsComponent, selector: "riv-table-column-settings", inputs: { manager: "manager" }, viewQueries: [{ propertyName: "anchor", first: true, predicate: ["trigger"], descendants: true, read: ElementRef }], ngImport: i0, template: "<button\n type=\"button\"\n #trigger\n rivButton\n [icon]=\"(open | async) ? 'ChevronUp' : 'ChevronDown'\"\n [iconPosition]=\"'last'\"\n (click)=\"open.next(true)\"\n>\n Columns\n</button>\n\n<ng-container *ngIf=\"columnList | async; let columns\">\n <ng-container *ngIf=\"open | async\">\n <riv-callout\n *riv-overlay\n [anchor]=\"anchor?.nativeElement\"\n [isModal]=\"true\"\n [showCaret]=\"false\"\n [theme]=\"'light'\"\n [preferredPosition]=\"'bottom-right'\"\n [allowedPositions]=\"[\n 'bottom-right',\n 'bottom-left',\n 'top-left',\n 'top-right'\n ]\"\n (close)=\"open.next(false)\"\n >\n <input\n #filter\n class=\"filter\"\n [placeholder]=\"'Search columns'\"\n [value]=\"filterQuery | async\"\n (input)=\"filterQuery.next(filter.value)\"\n [riv-auto-focus]=\"true\"\n />\n <div class=\"column-list\">\n <div\n class=\"column\"\n *ngFor=\"let column of columns; let i = index\"\n [attr.draggable]=\"\n (searching | async) === false &&\n !disableEnablingColumn(column, columns)\n \"\n [attr.droppable]=\"\n (searching | async) === false &&\n !disableEnablingColumn(column, columns)\n \"\n (dragstart)=\"dragStart(i)\"\n (dragenter)=\"$event.preventDefault()\"\n (dragover)=\"$event.preventDefault(); dragOver(i)\"\n (drop)=\"drop(i)\"\n [class.dragged-over-top]=\"\n draggedOverColumnIdx === i &&\n draggedColumnIdx !== null &&\n draggedColumnIdx > i\n \"\n [class.dragged-over-bottom]=\"\n draggedOverColumnIdx === i &&\n draggedColumnIdx !== null &&\n draggedColumnIdx < i\n \"\n >\n <riv-checkbox\n [value]=\"column.enabled\"\n (valueChange)=\"columnEnabledChange(column, $event)\"\n [disabled]=\"disableEnablingColumn(column, columns)\"\n [checkboxTooltip]=\"\n disableEnablingColumn(column, columns)\n ? limitTooltip()\n : undefined\n \"\n >\n <riv-highlight\n [text]=\"column.resolvedName\"\n [indices]=\"column.highlightIndices\"\n ></riv-highlight>\n </riv-checkbox>\n <span\n class=\"reorder\"\n *ngIf=\"(searching | async) === false\"\n [class.disabled]=\"disableEnablingColumn(column, columns)\"\n >\n <riv-icon [name]=\"'Reorder'\" [size]=\"12\"></riv-icon>\n </span>\n <button\n type=\"button\"\n rivButton\n [variant]=\"'ghost'\"\n [size]=\"'xsmall'\"\n [icon]=\"column.pinned ? 'PinActive' : 'PinInactive'\"\n [disabled]=\"disableEnablingColumn(column, columns)\"\n (click)=\"columnPinChange(column, !column.pinned)\"\n ></button>\n </div>\n </div>\n <footer *ngIf=\"(searching | async) === false\">\n <button\n type=\"button\"\n rivButton\n [size]=\"'xsmall'\"\n [variant]=\"'ghost'\"\n [disabled]=\"allColumnsDisabled(columns)\"\n (click)=\"disableAllColumns(columns)\"\n >\n Clear\n </button>\n <button\n type=\"button\"\n rivButton\n *ngIf=\"showSelectAllColumns(columns)\"\n [size]=\"'xsmall'\"\n [variant]=\"'ghost'\"\n [disabled]=\"allColumnsEnabled(columns)\"\n (click)=\"enableAllColumns(columns)\"\n >\n Select all\n </button>\n </footer>\n </riv-callout>\n </ng-container>\n</ng-container>\n", styles: [".filter{width:100%;outline:none;border:none;border-bottom:var(--border-width) solid var(--border-light);font-size:var(--type-2-font-size);line-height:var(--type-2-line-height-0);color:var(--type-light-high-contrast);padding:var(--size-small)}.filter::placeholder{color:var(--type-light-low-contrast)}.column-list{display:flex;flex-direction:column;align-items:stretch;max-height:50vh;overflow-y:auto}.column{display:flex;align-items:center;position:relative}.column riv-checkbox{flex-grow:1}.column.dragged-over-top:before,.column.dragged-over-bottom:before{content:\"\";position:absolute;left:0;right:0;height:var(--size-xxsmall);background-color:var(--brand);box-shadow:0 0 var(--size-xxsmall) var(--brand)}.column.dragged-over-top:before{top:0}.column.dragged-over-bottom:before{bottom:0}.reorder{padding:0 var(--size-medium);display:flex;justify-content:center;align-items:center;align-self:stretch;color:var(--type-light-low-contrast);cursor:grab}.reorder.disabled{cursor:not-allowed}footer{background-color:var(--surface-light-1);border-top:var(--border-width) solid var(--border-light);display:flex;justify-content:space-between}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.AutoFocusDirective, selector: "[riv-auto-focus]", inputs: ["riv-auto-focus"] }, { kind: "component", type: i3.ButtonComponent, selector: "[rivButton]", inputs: ["locked", "disabled", "loading", "full", "size", "variant", "icon", "iconPosition", "current"] }, { kind: "component", type: i4.CalloutComponent, selector: "riv-callout", inputs: ["anchor", "isModal", "preferredPosition", "allowedPositions", "fallbackDirection", "showCaret", "theme"], outputs: ["close"] }, { kind: "component", type: i5.CheckboxComponent, selector: "riv-checkbox", inputs: ["name", "identifier", "value", "checkedColorToken", "indeterminateColorToken", "checkboxTooltip", "indeterminate", "disabled", "required", "state", "errorMessage", "ariaLabel"], outputs: ["valueChange"] }, { kind: "component", type: i6.HighlightComponent, selector: "riv-highlight", inputs: ["text", "indices"] }, { kind: "component", type: i7.IconComponent, selector: "riv-icon", inputs: ["name", "fillColor", "size", "customSize", "strokeWidth"] }, { kind: "directive", type: i8.OverlayDirective, selector: "[riv-overlay]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
124
124
|
}
|
|
125
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
125
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableColumnSettingsComponent, decorators: [{
|
|
126
126
|
type: Component,
|
|
127
127
|
args: [{ selector: 'riv-table-column-settings', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n #trigger\n rivButton\n [icon]=\"(open | async) ? 'ChevronUp' : 'ChevronDown'\"\n [iconPosition]=\"'last'\"\n (click)=\"open.next(true)\"\n>\n Columns\n</button>\n\n<ng-container *ngIf=\"columnList | async; let columns\">\n <ng-container *ngIf=\"open | async\">\n <riv-callout\n *riv-overlay\n [anchor]=\"anchor?.nativeElement\"\n [isModal]=\"true\"\n [showCaret]=\"false\"\n [theme]=\"'light'\"\n [preferredPosition]=\"'bottom-right'\"\n [allowedPositions]=\"[\n 'bottom-right',\n 'bottom-left',\n 'top-left',\n 'top-right'\n ]\"\n (close)=\"open.next(false)\"\n >\n <input\n #filter\n class=\"filter\"\n [placeholder]=\"'Search columns'\"\n [value]=\"filterQuery | async\"\n (input)=\"filterQuery.next(filter.value)\"\n [riv-auto-focus]=\"true\"\n />\n <div class=\"column-list\">\n <div\n class=\"column\"\n *ngFor=\"let column of columns; let i = index\"\n [attr.draggable]=\"\n (searching | async) === false &&\n !disableEnablingColumn(column, columns)\n \"\n [attr.droppable]=\"\n (searching | async) === false &&\n !disableEnablingColumn(column, columns)\n \"\n (dragstart)=\"dragStart(i)\"\n (dragenter)=\"$event.preventDefault()\"\n (dragover)=\"$event.preventDefault(); dragOver(i)\"\n (drop)=\"drop(i)\"\n [class.dragged-over-top]=\"\n draggedOverColumnIdx === i &&\n draggedColumnIdx !== null &&\n draggedColumnIdx > i\n \"\n [class.dragged-over-bottom]=\"\n draggedOverColumnIdx === i &&\n draggedColumnIdx !== null &&\n draggedColumnIdx < i\n \"\n >\n <riv-checkbox\n [value]=\"column.enabled\"\n (valueChange)=\"columnEnabledChange(column, $event)\"\n [disabled]=\"disableEnablingColumn(column, columns)\"\n [checkboxTooltip]=\"\n disableEnablingColumn(column, columns)\n ? limitTooltip()\n : undefined\n \"\n >\n <riv-highlight\n [text]=\"column.resolvedName\"\n [indices]=\"column.highlightIndices\"\n ></riv-highlight>\n </riv-checkbox>\n <span\n class=\"reorder\"\n *ngIf=\"(searching | async) === false\"\n [class.disabled]=\"disableEnablingColumn(column, columns)\"\n >\n <riv-icon [name]=\"'Reorder'\" [size]=\"12\"></riv-icon>\n </span>\n <button\n type=\"button\"\n rivButton\n [variant]=\"'ghost'\"\n [size]=\"'xsmall'\"\n [icon]=\"column.pinned ? 'PinActive' : 'PinInactive'\"\n [disabled]=\"disableEnablingColumn(column, columns)\"\n (click)=\"columnPinChange(column, !column.pinned)\"\n ></button>\n </div>\n </div>\n <footer *ngIf=\"(searching | async) === false\">\n <button\n type=\"button\"\n rivButton\n [size]=\"'xsmall'\"\n [variant]=\"'ghost'\"\n [disabled]=\"allColumnsDisabled(columns)\"\n (click)=\"disableAllColumns(columns)\"\n >\n Clear\n </button>\n <button\n type=\"button\"\n rivButton\n *ngIf=\"showSelectAllColumns(columns)\"\n [size]=\"'xsmall'\"\n [variant]=\"'ghost'\"\n [disabled]=\"allColumnsEnabled(columns)\"\n (click)=\"enableAllColumns(columns)\"\n >\n Select all\n </button>\n </footer>\n </riv-callout>\n </ng-container>\n</ng-container>\n", styles: [".filter{width:100%;outline:none;border:none;border-bottom:var(--border-width) solid var(--border-light);font-size:var(--type-2-font-size);line-height:var(--type-2-line-height-0);color:var(--type-light-high-contrast);padding:var(--size-small)}.filter::placeholder{color:var(--type-light-low-contrast)}.column-list{display:flex;flex-direction:column;align-items:stretch;max-height:50vh;overflow-y:auto}.column{display:flex;align-items:center;position:relative}.column riv-checkbox{flex-grow:1}.column.dragged-over-top:before,.column.dragged-over-bottom:before{content:\"\";position:absolute;left:0;right:0;height:var(--size-xxsmall);background-color:var(--brand);box-shadow:0 0 var(--size-xxsmall) var(--brand)}.column.dragged-over-top:before{top:0}.column.dragged-over-bottom:before{bottom:0}.reorder{padding:0 var(--size-medium);display:flex;justify-content:center;align-items:center;align-self:stretch;color:var(--type-light-low-contrast);cursor:grab}.reorder.disabled{cursor:not-allowed}footer{background-color:var(--surface-light-1);border-top:var(--border-width) solid var(--border-light);display:flex;justify-content:space-between}\n"] }]
|
|
128
128
|
}], propDecorators: { manager: [{
|
|
@@ -131,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
131
131
|
type: ViewChild,
|
|
132
132
|
args: ['trigger', { read: ElementRef }]
|
|
133
133
|
}] } });
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3RhYmxlL3RhYmxlL3RhYmxlLWNvbHVtbi1zZXR0aW5ncy90YWJsZS1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvdGFibGUvdGFibGUtY29sdW1uLXNldHRpbmdzL3RhYmxlLWNvbHVtbi1zZXR0aW5ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUVMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLElBQUksTUFBTSxTQUFTLENBQUM7QUFDM0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7Ozs7Ozs7QUFhcEMsTUFBTSxPQUFPLDRCQUE0QjtJQU56QztRQWtCVyxTQUFJLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbEMsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV0QyxjQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFJbEUsc0JBQWlCLEdBQVcsUUFBUSxDQUFDLGVBQWUsQ0FBQztRQXVHckQscUJBQWdCLEdBQWtCLElBQUksQ0FBQztRQUN2Qyx5QkFBb0IsR0FBa0IsSUFBSSxDQUFDO0tBb0I1QztJQTFIQyxR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QztJQUN0QyxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQWU7UUFDbEIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDekIsSUFBSSxFQUFFLG1CQUFtQjtnQkFDekIsYUFBYSxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7Z0JBQ3BDLFFBQVEsRUFBRSxPQUFPO2FBQ2xCLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7U0FDbEM7SUFDSCxDQUFDOytHQS9JVSw0QkFBNEI7bUdBQTVCLDRCQUE0QiwrS0FTVCxVQUFVLDZCQ2pDMUMsc3hIQTBIQTs7NEZEbEdhLDRCQUE0QjtrQkFOeEMsU0FBUzsrQkFDRSwyQkFBMkIsbUJBR3BCLHVCQUF1QixDQUFDLE1BQU07OEJBUy9DLE9BQU87c0JBRE4sS0FBSztnQkFJTixNQUFNO3NCQURMLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgRnVzZSBmcm9tICdmdXNlLmpzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIaWdobGlnaHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi92aXN1YWxpemF0aW9uL2hpZ2hsaWdodC9oaWdobGlnaHQuY29tcG9uZW50JztcbmltcG9ydCB7IFJpdlRhYmxlIH0gZnJvbSAnLi4vc3RhdGUnO1xuXG50eXBlIENvbHVtbkxpc3Q8QyBleHRlbmRzIFJpdlRhYmxlLkNvbHVtbj4gPSAoUml2VGFibGUuQ29sdW1uU2V0dGluZ3M8Qz4gJiB7XG4gIHJlc29sdmVkTmFtZTogQyB8IHN0cmluZztcbiAgaGlnaGxpZ2h0SW5kaWNlczogSGlnaGxpZ2h0Q29tcG9uZW50LkhpZ2hsaWdodEluZGljZXNbXTtcbn0pW107XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Jpdi10YWJsZS1jb2x1bW4tc2V0dGluZ3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtY29sdW1uLXNldHRpbmdzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUtY29sdW1uLXNldHRpbmdzLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29sdW1uU2V0dGluZ3NDb21wb25lbnQ8XG4gIFIgZXh0ZW5kcyBSaXZUYWJsZS5Sb3csXG4gIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuPiBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICBASW5wdXQoKVxuICBtYW5hZ2VyPzogUml2VGFibGUuTWFuYWdlcjxSLCBDLCBGPjtcblxuICBAVmlld0NoaWxkKCd0cmlnZ2VyJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIGFuY2hvcj86IEVsZW1lbnRSZWY7XG5cbiAgcmVhZG9ubHkgb3BlbiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIHJlYWRvbmx5IGZpbHRlclF1ZXJ5ID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG5cbiAgcmVhZG9ubHkgc2VhcmNoaW5nID0gdGhpcy5maWx0ZXJRdWVyeS5waXBlKG1hcChxdWVyeSA9PiAhIXF1ZXJ5KSk7XG5cbiAgY29sdW1uTGlzdD86IE9ic2VydmFibGU8Q29sdW1uTGlzdDxDPj47XG5cbiAgbWF4RW5hYmxlZENvbHVtbnM6IG51bWJlciA9IFJpdlRhYmxlLkNvbHVtbnNNYXhTaG93bjtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNvbHVtbkxpc3QgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMubWFuYWdlciEuc3RhdGUucGlwZShcbiAgICAgICAgbWFwKHMgPT4ge1xuICAgICAgICAgIGNvbnN0IGFsbENvbHVtbnMgPSBzLmRpc3BsYXkuYWxsQ29sdW1ucy5tYXAoY29sdW1uID0+ICh7XG4gICAgICAgICAgICAuLi5jb2x1bW4sXG4gICAgICAgICAgICByZXNvbHZlZE5hbWU6IHMuZGlzcGxheS5jb2x1bW5OYW1lTWFwLmdldChjb2x1bW4ua2V5KSA/PyBjb2x1bW4ua2V5LFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgICBjb25zdCBmdXNlID0gbmV3IEZ1c2UoYWxsQ29sdW1ucywge1xuICAgICAgICAgICAga2V5czogWydyZXNvbHZlZE5hbWUnXSxcbiAgICAgICAgICAgIGluY2x1ZGVNYXRjaGVzOiB0cnVlLFxuICAgICAgICAgICAgdGhyZXNob2xkOiAwLjQsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHsgZnVzZSwgYWxsQ29sdW1ucyB9O1xuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICB0aGlzLmZpbHRlclF1ZXJ5LFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFt7IGZ1c2UsIGFsbENvbHVtbnMgfSwgZmlsdGVyUXVlcnldKSA9PiB7XG4gICAgICAgIGlmIChmaWx0ZXJRdWVyeSkge1xuICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSBmdXNlLnNlYXJjaChmaWx0ZXJRdWVyeSk7XG4gICAgICAgICAgcmV0dXJuIG1hdGNoZXMubWFwKG1hdGNoID0+ICh7XG4gICAgICAgICAgICAuLi5tYXRjaC5pdGVtLFxuICAgICAgICAgICAgaGlnaGxpZ2h0SW5kaWNlczogW1xuICAgICAgICAgICAgICAuLi4obWF0Y2gubWF0Y2hlcz8uZmluZChyZXN1bHQgPT4gcmVzdWx0LmtleSA9PT0gJ3Jlc29sdmVkTmFtZScpXG4gICAgICAgICAgICAgICAgPy5pbmRpY2VzIHx8IFtdKSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhbGxDb2x1bW5zLm1hcChjb2x1bW4gPT4gKHtcbiAgICAgICAgICAuLi5jb2x1bW4sXG4gICAgICAgICAgaGlnaGxpZ2h0SW5kaWNlczogW10sXG4gICAgICAgIH0pKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBjb2x1bW5FbmFibGVkQ2hhbmdlKGNvbHVtbjogUml2VGFibGUuQ29sdW1uU2V0dGluZ3M8Qz4sIGVuYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm1hbmFnZXI/LmFjdGlvbnMubmV4dCh7XG4gICAgICB0eXBlOiAnY29sdW1uRW5hYmxlZENoYW5nZScsXG4gICAgICBjb2x1bW46IGNvbHVtbi5rZXksXG4gICAgICBlbmFibGVkLFxuICAgIH0pO1xuICB9XG5cbiAgY29sdW1uUGluQ2hhbmdlKGNvbHVtbjogUml2VGFibGUuQ29sdW1uU2V0dGluZ3M8Qz4sIHBpbm5lZDogYm9vbGVhbikge1xuICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHtcbiAgICAgIHR5cGU6ICdjb2x1bW5QaW5DaGFuZ2UnLFxuICAgICAgY29sdW1uOiBjb2x1bW4ua2V5LFxuICAgICAgcGlubmVkLFxuICAgIH0pO1xuICB9XG5cbiAgYWxsQ29sdW1uc0Rpc2FibGVkKGNvbHVtbnM6IENvbHVtbkxpc3Q8Qz4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gY29sdW1ucy5ldmVyeShjID0+ICFjLmVuYWJsZWQpO1xuICB9XG5cbiAgZGlzYWJsZUFsbENvbHVtbnMoY29sdW1uczogQ29sdW1uTGlzdDxDPikge1xuICAgIGZvciAoY29uc3QgY29sdW1uIG9mIGNvbHVtbnMpIHtcbiAgICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHtcbiAgICAgICAgdHlwZTogJ2NvbHVtbkVuYWJsZWRDaGFuZ2UnLFxuICAgICAgICBjb2x1bW46IGNvbHVtbi5rZXksXG4gICAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgYWxsQ29sdW1uc0VuYWJsZWQoY29sdW1uczogQ29sdW1uTGlzdDxDPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBjb2x1bW5zLmV2ZXJ5KGMgPT4gYy5lbmFibGVkKTtcbiAgfVxuXG4gIGVuYWJsZUFsbENvbHVtbnMoY29sdW1uczogQ29sdW1uTGlzdDxDPikge1xuICAgIGZvciAoY29uc3QgY29sdW1uIG9mIGNvbHVtbnMpIHtcbiAgICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHtcbiAgICAgICAgdHlwZTogJ2NvbHVtbkVuYWJsZWRDaGFuZ2UnLFxuICAgICAgICBjb2x1bW46IGNvbHVtbi5rZXksXG4gICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBzaG93U2VsZWN0QWxsQ29sdW1ucyhjb2x1bW5zOiBDb2x1bW5MaXN0PEM+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNvbHVtbnMubGVuZ3RoIDw9IHRoaXMubWF4RW5hYmxlZENvbHVtbnM7XG4gIH1cblxuICBkaXNhYmxlRW5hYmxpbmdDb2x1bW4oXG4gICAgY29sdW1uOiBSaXZUYWJsZS5Db2x1bW5TZXR0aW5nczxDPixcbiAgICBjb2x1bW5zOiBDb2x1bW5MaXN0PEM+LFxuICApOiBib29sZWFuIHtcbiAgICByZXR1cm4gIWNvbHVtbi5lbmFibGVkICYmIHRoaXMuZGlzYWJsZUNvbHVtblNlbGVjdGlvbihjb2x1bW5zKTtcbiAgfVxuXG4gIGRpc2FibGVDb2x1bW5TZWxlY3Rpb24oY29sdW1uczogQ29sdW1uTGlzdDxDPik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGVuYWJsZWRDb3VudCA9IGNvbHVtbnMuZmlsdGVyKGMgPT4gYy5lbmFibGVkKS5sZW5ndGg7XG4gICAgcmV0dXJuIGVuYWJsZWRDb3VudCA+PSB0aGlzLm1heEVuYWJsZWRDb2x1bW5zO1xuICB9XG5cbiAgbGltaXRUb29sdGlwKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBZb3XigJl2ZSByZWFjaGVkIHRoZSAke3RoaXMubWF4RW5hYmxlZENvbHVtbnN9LWNvbHVtbiBsaW1pdC4gSGlkZSBhIHZpc2libGUgY29sdW1uIHRvIHNob3cgdGhpcyBvbmUuYDtcbiAgfVxuXG4gIGRyYWdnZWRDb2x1bW5JZHg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBkcmFnZ2VkT3ZlckNvbHVtbklkeDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgZHJhZ1N0YXJ0KGlkeDogbnVtYmVyKSB7XG4gICAgdGhpcy5kcmFnZ2VkQ29sdW1uSWR4ID0gaWR4O1xuICB9XG5cbiAgZHJhZ092ZXIob250b0lkeDogbnVtYmVyKSB7XG4gICAgdGhpcy5kcmFnZ2VkT3ZlckNvbHVtbklkeCA9IG9udG9JZHg7XG4gIH1cblxuICBkcm9wKG9udG9JZHg6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmRyYWdnZWRDb2x1bW5JZHggIT09IG51bGwpIHtcbiAgICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHtcbiAgICAgICAgdHlwZTogJ2NvbHVtbk9yZGVyQ2hhbmdlJyxcbiAgICAgICAgcHJldmlvdXNJbmRleDogdGhpcy5kcmFnZ2VkQ29sdW1uSWR4LFxuICAgICAgICBuZXdJbmRleDogb250b0lkeCxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5kcmFnZ2VkT3ZlckNvbHVtbklkeCA9IG51bGw7XG4gICAgfVxuICB9XG59XG4iLCI8YnV0dG9uXG4gIHR5cGU9XCJidXR0b25cIlxuICAjdHJpZ2dlclxuICByaXZCdXR0b25cbiAgW2ljb25dPVwiKG9wZW4gfCBhc3luYykgPyAnQ2hldnJvblVwJyA6ICdDaGV2cm9uRG93bidcIlxuICBbaWNvblBvc2l0aW9uXT1cIidsYXN0J1wiXG4gIChjbGljayk9XCJvcGVuLm5leHQodHJ1ZSlcIlxuPlxuICBDb2x1bW5zXG48L2J1dHRvbj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbkxpc3QgfCBhc3luYzsgbGV0IGNvbHVtbnNcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wZW4gfCBhc3luY1wiPlxuICAgIDxyaXYtY2FsbG91dFxuICAgICAgKnJpdi1vdmVybGF5XG4gICAgICBbYW5jaG9yXT1cImFuY2hvcj8ubmF0aXZlRWxlbWVudFwiXG4gICAgICBbaXNNb2RhbF09XCJ0cnVlXCJcbiAgICAgIFtzaG93Q2FyZXRdPVwiZmFsc2VcIlxuICAgICAgW3RoZW1lXT1cIidsaWdodCdcIlxuICAgICAgW3ByZWZlcnJlZFBvc2l0aW9uXT1cIidib3R0b20tcmlnaHQnXCJcbiAgICAgIFthbGxvd2VkUG9zaXRpb25zXT1cIltcbiAgICAgICAgJ2JvdHRvbS1yaWdodCcsXG4gICAgICAgICdib3R0b20tbGVmdCcsXG4gICAgICAgICd0b3AtbGVmdCcsXG4gICAgICAgICd0b3AtcmlnaHQnXG4gICAgICBdXCJcbiAgICAgIChjbG9zZSk9XCJvcGVuLm5leHQoZmFsc2UpXCJcbiAgICA+XG4gICAgICA8aW5wdXRcbiAgICAgICAgI2ZpbHRlclxuICAgICAgICBjbGFzcz1cImZpbHRlclwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInU2VhcmNoIGNvbHVtbnMnXCJcbiAgICAgICAgW3ZhbHVlXT1cImZpbHRlclF1ZXJ5IHwgYXN5bmNcIlxuICAgICAgICAoaW5wdXQpPVwiZmlsdGVyUXVlcnkubmV4dChmaWx0ZXIudmFsdWUpXCJcbiAgICAgICAgW3Jpdi1hdXRvLWZvY3VzXT1cInRydWVcIlxuICAgICAgLz5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4tbGlzdFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJjb2x1bW5cIlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgW2F0dHIuZHJhZ2dhYmxlXT1cIlxuICAgICAgICAgICAgKHNlYXJjaGluZyB8IGFzeW5jKSA9PT0gZmFsc2UgJiZcbiAgICAgICAgICAgICFkaXNhYmxlRW5hYmxpbmdDb2x1bW4oY29sdW1uLCBjb2x1bW5zKVxuICAgICAgICAgIFwiXG4gICAgICAgICAgW2F0dHIuZHJvcHBhYmxlXT1cIlxuICAgICAgICAgICAgKHNlYXJjaGluZyB8IGFzeW5jKSA9PT0gZmFsc2UgJiZcbiAgICAgICAgICAgICFkaXNhYmxlRW5hYmxpbmdDb2x1bW4oY29sdW1uLCBjb2x1bW5zKVxuICAgICAgICAgIFwiXG4gICAgICAgICAgKGRyYWdzdGFydCk9XCJkcmFnU3RhcnQoaSlcIlxuICAgICAgICAgIChkcmFnZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICAgICAgICAgIChkcmFnb3Zlcik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKTsgZHJhZ092ZXIoaSlcIlxuICAgICAgICAgIChkcm9wKT1cImRyb3AoaSlcIlxuICAgICAgICAgIFtjbGFzcy5kcmFnZ2VkLW92ZXItdG9wXT1cIlxuICAgICAgICAgICAgZHJhZ2dlZE92ZXJDb2x1bW5JZHggPT09IGkgJiZcbiAgICAgICAgICAgIGRyYWdnZWRDb2x1bW5JZHggIT09IG51bGwgJiZcbiAgICAgICAgICAgIGRyYWdnZWRDb2x1bW5JZHggPiBpXG4gICAgICAgICAgXCJcbiAgICAgICAgICBbY2xhc3MuZHJhZ2dlZC1vdmVyLWJvdHRvbV09XCJcbiAgICAgICAgICAgIGRyYWdnZWRPdmVyQ29sdW1uSWR4ID09PSBpICYmXG4gICAgICAgICAgICBkcmFnZ2VkQ29sdW1uSWR4ICE9PSBudWxsICYmXG4gICAgICAgICAgICBkcmFnZ2VkQ29sdW1uSWR4IDwgaVxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8cml2LWNoZWNrYm94XG4gICAgICAgICAgICBbdmFsdWVdPVwiY29sdW1uLmVuYWJsZWRcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cImNvbHVtbkVuYWJsZWRDaGFuZ2UoY29sdW1uLCAkZXZlbnQpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlRW5hYmxpbmdDb2x1bW4oY29sdW1uLCBjb2x1bW5zKVwiXG4gICAgICAgICAgICBbY2hlY2tib3hUb29sdGlwXT1cIlxuICAgICAgICAgICAgICBkaXNhYmxlRW5hYmxpbmdDb2x1bW4oY29sdW1uLCBjb2x1bW5zKVxuICAgICAgICAgICAgICAgID8gbGltaXRUb29sdGlwKClcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8cml2LWhpZ2hsaWdodFxuICAgICAgICAgICAgICBbdGV4dF09XCJjb2x1bW4ucmVzb2x2ZWROYW1lXCJcbiAgICAgICAgICAgICAgW2luZGljZXNdPVwiY29sdW1uLmhpZ2hsaWdodEluZGljZXNcIlxuICAgICAgICAgICAgPjwvcml2LWhpZ2hsaWdodD5cbiAgICAgICAgICA8L3Jpdi1jaGVja2JveD5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJyZW9yZGVyXCJcbiAgICAgICAgICAgICpuZ0lmPVwiKHNlYXJjaGluZyB8IGFzeW5jKSA9PT0gZmFsc2VcIlxuICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVFbmFibGluZ0NvbHVtbihjb2x1bW4sIGNvbHVtbnMpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8cml2LWljb24gW25hbWVdPVwiJ1Jlb3JkZXInXCIgW3NpemVdPVwiMTJcIj48L3Jpdi1pY29uPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIHJpdkJ1dHRvblxuICAgICAgICAgICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgICAgICAgICBbc2l6ZV09XCIneHNtYWxsJ1wiXG4gICAgICAgICAgICBbaWNvbl09XCJjb2x1bW4ucGlubmVkID8gJ1BpbkFjdGl2ZScgOiAnUGluSW5hY3RpdmUnXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlRW5hYmxpbmdDb2x1bW4oY29sdW1uLCBjb2x1bW5zKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY29sdW1uUGluQ2hhbmdlKGNvbHVtbiwgIWNvbHVtbi5waW5uZWQpXCJcbiAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8Zm9vdGVyICpuZ0lmPVwiKHNlYXJjaGluZyB8IGFzeW5jKSA9PT0gZmFsc2VcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIHJpdkJ1dHRvblxuICAgICAgICAgIFtzaXplXT1cIid4c21hbGwnXCJcbiAgICAgICAgICBbdmFyaWFudF09XCInZ2hvc3QnXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiYWxsQ29sdW1uc0Rpc2FibGVkKGNvbHVtbnMpXCJcbiAgICAgICAgICAoY2xpY2spPVwiZGlzYWJsZUFsbENvbHVtbnMoY29sdW1ucylcIlxuICAgICAgICA+XG4gICAgICAgICAgQ2xlYXJcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICByaXZCdXR0b25cbiAgICAgICAgICAqbmdJZj1cInNob3dTZWxlY3RBbGxDb2x1bW5zKGNvbHVtbnMpXCJcbiAgICAgICAgICBbc2l6ZV09XCIneHNtYWxsJ1wiXG4gICAgICAgICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImFsbENvbHVtbnNFbmFibGVkKGNvbHVtbnMpXCJcbiAgICAgICAgICAoY2xpY2spPVwiZW5hYmxlQWxsQ29sdW1ucyhjb2x1bW5zKVwiXG4gICAgICAgID5cbiAgICAgICAgICBTZWxlY3QgYWxsXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9mb290ZXI+XG4gICAgPC9yaXYtY2FsbG91dD5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3RhYmxlL3RhYmxlL3RhYmxlLWNvbHVtbi1zZXR0aW5ncy90YWJsZS1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvdGFibGUvdGFibGUtY29sdW1uLXNldHRpbmdzL3RhYmxlLWNvbHVtbi1zZXR0aW5ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUVMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLElBQUksTUFBTSxTQUFTLENBQUM7QUFDM0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7Ozs7Ozs7QUFhcEMsTUFBTSxPQUFPLDRCQUE0QjtJQU56QztRQWtCVyxTQUFJLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbEMsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV0QyxjQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFJbEUsc0JBQWlCLEdBQVcsUUFBUSxDQUFDLGVBQWUsQ0FBQztRQXVHckQscUJBQWdCLEdBQWtCLElBQUksQ0FBQztRQUN2Qyx5QkFBb0IsR0FBa0IsSUFBSSxDQUFDO0tBb0I1QztJQTFIQyxR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LElBQUksQ0FBQyxvQkFBb0IsR0FBRyxPQUFPLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFlO1FBQ2xCLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLElBQUksRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDekIsSUFBSSxFQUFFLG1CQUFtQjtnQkFDekIsYUFBYSxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7Z0JBQ3BDLFFBQVEsRUFBRSxPQUFPO2FBQ2xCLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7K0dBL0lVLDRCQUE0QjttR0FBNUIsNEJBQTRCLCtLQVNULFVBQVUsNkJDakMxQyxzeEhBMEhBOzs0RkRsR2EsNEJBQTRCO2tCQU54QyxTQUFTOytCQUNFLDJCQUEyQixtQkFHcEIsdUJBQXVCLENBQUMsTUFBTTs4QkFTL0MsT0FBTztzQkFETixLQUFLO2dCQUlOLE1BQU07c0JBREwsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBGdXNlIGZyb20gJ2Z1c2UuanMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEhpZ2hsaWdodENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3Zpc3VhbGl6YXRpb24vaGlnaGxpZ2h0L2hpZ2hsaWdodC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUml2VGFibGUgfSBmcm9tICcuLi9zdGF0ZSc7XG5cbnR5cGUgQ29sdW1uTGlzdDxDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uPiA9IChSaXZUYWJsZS5Db2x1bW5TZXR0aW5nczxDPiAmIHtcbiAgcmVzb2x2ZWROYW1lOiBDIHwgc3RyaW5nO1xuICBoaWdobGlnaHRJbmRpY2VzOiBIaWdobGlnaHRDb21wb25lbnQuSGlnaGxpZ2h0SW5kaWNlc1tdO1xufSlbXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncml2LXRhYmxlLWNvbHVtbi1zZXR0aW5ncycsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1jb2x1bW4tc2V0dGluZ3MuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5TZXR0aW5nc0NvbXBvbmVudDxcbiAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgQyBleHRlbmRzIFJpdlRhYmxlLkNvbHVtbixcbiAgRiBleHRlbmRzIFJpdlRhYmxlLkZpbHRlcnMsXG4+IGltcGxlbWVudHMgT25Jbml0XG57XG4gIEBJbnB1dCgpXG4gIG1hbmFnZXI/OiBSaXZUYWJsZS5NYW5hZ2VyPFIsIEMsIEY+O1xuXG4gIEBWaWV3Q2hpbGQoJ3RyaWdnZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgYW5jaG9yPzogRWxlbWVudFJlZjtcblxuICByZWFkb25seSBvcGVuID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgZmlsdGVyUXVlcnkgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCcnKTtcblxuICByZWFkb25seSBzZWFyY2hpbmcgPSB0aGlzLmZpbHRlclF1ZXJ5LnBpcGUobWFwKHF1ZXJ5ID0+ICEhcXVlcnkpKTtcblxuICBjb2x1bW5MaXN0PzogT2JzZXJ2YWJsZTxDb2x1bW5MaXN0PEM+PjtcblxuICBtYXhFbmFibGVkQ29sdW1uczogbnVtYmVyID0gUml2VGFibGUuQ29sdW1uc01heFNob3duO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29sdW1uTGlzdCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5tYW5hZ2VyIS5zdGF0ZS5waXBlKFxuICAgICAgICBtYXAocyA9PiB7XG4gICAgICAgICAgY29uc3QgYWxsQ29sdW1ucyA9IHMuZGlzcGxheS5hbGxDb2x1bW5zLm1hcChjb2x1bW4gPT4gKHtcbiAgICAgICAgICAgIC4uLmNvbHVtbixcbiAgICAgICAgICAgIHJlc29sdmVkTmFtZTogcy5kaXNwbGF5LmNvbHVtbk5hbWVNYXAuZ2V0KGNvbHVtbi5rZXkpID8/IGNvbHVtbi5rZXksXG4gICAgICAgICAgfSkpO1xuICAgICAgICAgIGNvbnN0IGZ1c2UgPSBuZXcgRnVzZShhbGxDb2x1bW5zLCB7XG4gICAgICAgICAgICBrZXlzOiBbJ3Jlc29sdmVkTmFtZSddLFxuICAgICAgICAgICAgaW5jbHVkZU1hdGNoZXM6IHRydWUsXG4gICAgICAgICAgICB0aHJlc2hvbGQ6IDAuNCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4geyBmdXNlLCBhbGxDb2x1bW5zIH07XG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICAgIHRoaXMuZmlsdGVyUXVlcnksXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3sgZnVzZSwgYWxsQ29sdW1ucyB9LCBmaWx0ZXJRdWVyeV0pID0+IHtcbiAgICAgICAgaWYgKGZpbHRlclF1ZXJ5KSB7XG4gICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IGZ1c2Uuc2VhcmNoKGZpbHRlclF1ZXJ5KTtcbiAgICAgICAgICByZXR1cm4gbWF0Y2hlcy5tYXAobWF0Y2ggPT4gKHtcbiAgICAgICAgICAgIC4uLm1hdGNoLml0ZW0sXG4gICAgICAgICAgICBoaWdobGlnaHRJbmRpY2VzOiBbXG4gICAgICAgICAgICAgIC4uLihtYXRjaC5tYXRjaGVzPy5maW5kKHJlc3VsdCA9PiByZXN1bHQua2V5ID09PSAncmVzb2x2ZWROYW1lJylcbiAgICAgICAgICAgICAgICA/LmluZGljZXMgfHwgW10pLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFsbENvbHVtbnMubWFwKGNvbHVtbiA9PiAoe1xuICAgICAgICAgIC4uLmNvbHVtbixcbiAgICAgICAgICBoaWdobGlnaHRJbmRpY2VzOiBbXSxcbiAgICAgICAgfSkpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIGNvbHVtbkVuYWJsZWRDaGFuZ2UoY29sdW1uOiBSaXZUYWJsZS5Db2x1bW5TZXR0aW5nczxDPiwgZW5hYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHtcbiAgICAgIHR5cGU6ICdjb2x1bW5FbmFibGVkQ2hhbmdlJyxcbiAgICAgIGNvbHVtbjogY29sdW1uLmtleSxcbiAgICAgIGVuYWJsZWQsXG4gICAgfSk7XG4gIH1cblxuICBjb2x1bW5QaW5DaGFuZ2UoY29sdW1uOiBSaXZUYWJsZS5Db2x1bW5TZXR0aW5nczxDPiwgcGlubmVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgdHlwZTogJ2NvbHVtblBpbkNoYW5nZScsXG4gICAgICBjb2x1bW46IGNvbHVtbi5rZXksXG4gICAgICBwaW5uZWQsXG4gICAgfSk7XG4gIH1cblxuICBhbGxDb2x1bW5zRGlzYWJsZWQoY29sdW1uczogQ29sdW1uTGlzdDxDPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBjb2x1bW5zLmV2ZXJ5KGMgPT4gIWMuZW5hYmxlZCk7XG4gIH1cblxuICBkaXNhYmxlQWxsQ29sdW1ucyhjb2x1bW5zOiBDb2x1bW5MaXN0PEM+KSB7XG4gICAgZm9yIChjb25zdCBjb2x1bW4gb2YgY29sdW1ucykge1xuICAgICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgICB0eXBlOiAnY29sdW1uRW5hYmxlZENoYW5nZScsXG4gICAgICAgIGNvbHVtbjogY29sdW1uLmtleSxcbiAgICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhbGxDb2x1bW5zRW5hYmxlZChjb2x1bW5zOiBDb2x1bW5MaXN0PEM+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNvbHVtbnMuZXZlcnkoYyA9PiBjLmVuYWJsZWQpO1xuICB9XG5cbiAgZW5hYmxlQWxsQ29sdW1ucyhjb2x1bW5zOiBDb2x1bW5MaXN0PEM+KSB7XG4gICAgZm9yIChjb25zdCBjb2x1bW4gb2YgY29sdW1ucykge1xuICAgICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgICB0eXBlOiAnY29sdW1uRW5hYmxlZENoYW5nZScsXG4gICAgICAgIGNvbHVtbjogY29sdW1uLmtleSxcbiAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNob3dTZWxlY3RBbGxDb2x1bW5zKGNvbHVtbnM6IENvbHVtbkxpc3Q8Qz4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gY29sdW1ucy5sZW5ndGggPD0gdGhpcy5tYXhFbmFibGVkQ29sdW1ucztcbiAgfVxuXG4gIGRpc2FibGVFbmFibGluZ0NvbHVtbihcbiAgICBjb2x1bW46IFJpdlRhYmxlLkNvbHVtblNldHRpbmdzPEM+LFxuICAgIGNvbHVtbnM6IENvbHVtbkxpc3Q8Qz4sXG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhY29sdW1uLmVuYWJsZWQgJiYgdGhpcy5kaXNhYmxlQ29sdW1uU2VsZWN0aW9uKGNvbHVtbnMpO1xuICB9XG5cbiAgZGlzYWJsZUNvbHVtblNlbGVjdGlvbihjb2x1bW5zOiBDb2x1bW5MaXN0PEM+KTogYm9vbGVhbiB7XG4gICAgY29uc3QgZW5hYmxlZENvdW50ID0gY29sdW1ucy5maWx0ZXIoYyA9PiBjLmVuYWJsZWQpLmxlbmd0aDtcbiAgICByZXR1cm4gZW5hYmxlZENvdW50ID49IHRoaXMubWF4RW5hYmxlZENvbHVtbnM7XG4gIH1cblxuICBsaW1pdFRvb2x0aXAoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYFlvdeKAmXZlIHJlYWNoZWQgdGhlICR7dGhpcy5tYXhFbmFibGVkQ29sdW1uc30tY29sdW1uIGxpbWl0LiBIaWRlIGEgdmlzaWJsZSBjb2x1bW4gdG8gc2hvdyB0aGlzIG9uZS5gO1xuICB9XG5cbiAgZHJhZ2dlZENvbHVtbklkeDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIGRyYWdnZWRPdmVyQ29sdW1uSWR4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICBkcmFnU3RhcnQoaWR4OiBudW1iZXIpIHtcbiAgICB0aGlzLmRyYWdnZWRDb2x1bW5JZHggPSBpZHg7XG4gIH1cblxuICBkcmFnT3ZlcihvbnRvSWR4OiBudW1iZXIpIHtcbiAgICB0aGlzLmRyYWdnZWRPdmVyQ29sdW1uSWR4ID0gb250b0lkeDtcbiAgfVxuXG4gIGRyb3Aob250b0lkeDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZHJhZ2dlZENvbHVtbklkeCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgICB0eXBlOiAnY29sdW1uT3JkZXJDaGFuZ2UnLFxuICAgICAgICBwcmV2aW91c0luZGV4OiB0aGlzLmRyYWdnZWRDb2x1bW5JZHgsXG4gICAgICAgIG5ld0luZGV4OiBvbnRvSWR4LFxuICAgICAgfSk7XG4gICAgICB0aGlzLmRyYWdnZWRPdmVyQ29sdW1uSWR4ID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiIsIjxidXR0b25cbiAgdHlwZT1cImJ1dHRvblwiXG4gICN0cmlnZ2VyXG4gIHJpdkJ1dHRvblxuICBbaWNvbl09XCIob3BlbiB8IGFzeW5jKSA/ICdDaGV2cm9uVXAnIDogJ0NoZXZyb25Eb3duJ1wiXG4gIFtpY29uUG9zaXRpb25dPVwiJ2xhc3QnXCJcbiAgKGNsaWNrKT1cIm9wZW4ubmV4dCh0cnVlKVwiXG4+XG4gIENvbHVtbnNcbjwvYnV0dG9uPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uTGlzdCB8IGFzeW5jOyBsZXQgY29sdW1uc1wiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwib3BlbiB8IGFzeW5jXCI+XG4gICAgPHJpdi1jYWxsb3V0XG4gICAgICAqcml2LW92ZXJsYXlcbiAgICAgIFthbmNob3JdPVwiYW5jaG9yPy5uYXRpdmVFbGVtZW50XCJcbiAgICAgIFtpc01vZGFsXT1cInRydWVcIlxuICAgICAgW3Nob3dDYXJldF09XCJmYWxzZVwiXG4gICAgICBbdGhlbWVdPVwiJ2xpZ2h0J1wiXG4gICAgICBbcHJlZmVycmVkUG9zaXRpb25dPVwiJ2JvdHRvbS1yaWdodCdcIlxuICAgICAgW2FsbG93ZWRQb3NpdGlvbnNdPVwiW1xuICAgICAgICAnYm90dG9tLXJpZ2h0JyxcbiAgICAgICAgJ2JvdHRvbS1sZWZ0JyxcbiAgICAgICAgJ3RvcC1sZWZ0JyxcbiAgICAgICAgJ3RvcC1yaWdodCdcbiAgICAgIF1cIlxuICAgICAgKGNsb3NlKT1cIm9wZW4ubmV4dChmYWxzZSlcIlxuICAgID5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjZmlsdGVyXG4gICAgICAgIGNsYXNzPVwiZmlsdGVyXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTZWFyY2ggY29sdW1ucydcIlxuICAgICAgICBbdmFsdWVdPVwiZmlsdGVyUXVlcnkgfCBhc3luY1wiXG4gICAgICAgIChpbnB1dCk9XCJmaWx0ZXJRdWVyeS5uZXh0KGZpbHRlci52YWx1ZSlcIlxuICAgICAgICBbcml2LWF1dG8tZm9jdXNdPVwidHJ1ZVwiXG4gICAgICAvPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbi1saXN0XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImNvbHVtblwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICBbYXR0ci5kcmFnZ2FibGVdPVwiXG4gICAgICAgICAgICAoc2VhcmNoaW5nIHwgYXN5bmMpID09PSBmYWxzZSAmJlxuICAgICAgICAgICAgIWRpc2FibGVFbmFibGluZ0NvbHVtbihjb2x1bW4sIGNvbHVtbnMpXG4gICAgICAgICAgXCJcbiAgICAgICAgICBbYXR0ci5kcm9wcGFibGVdPVwiXG4gICAgICAgICAgICAoc2VhcmNoaW5nIHwgYXN5bmMpID09PSBmYWxzZSAmJlxuICAgICAgICAgICAgIWRpc2FibGVFbmFibGluZ0NvbHVtbihjb2x1bW4sIGNvbHVtbnMpXG4gICAgICAgICAgXCJcbiAgICAgICAgICAoZHJhZ3N0YXJ0KT1cImRyYWdTdGFydChpKVwiXG4gICAgICAgICAgKGRyYWdlbnRlcik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgICAgICAgKGRyYWdvdmVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBkcmFnT3ZlcihpKVwiXG4gICAgICAgICAgKGRyb3ApPVwiZHJvcChpKVwiXG4gICAgICAgICAgW2NsYXNzLmRyYWdnZWQtb3Zlci10b3BdPVwiXG4gICAgICAgICAgICBkcmFnZ2VkT3ZlckNvbHVtbklkeCA9PT0gaSAmJlxuICAgICAgICAgICAgZHJhZ2dlZENvbHVtbklkeCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgZHJhZ2dlZENvbHVtbklkeCA+IGlcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtjbGFzcy5kcmFnZ2VkLW92ZXItYm90dG9tXT1cIlxuICAgICAgICAgICAgZHJhZ2dlZE92ZXJDb2x1bW5JZHggPT09IGkgJiZcbiAgICAgICAgICAgIGRyYWdnZWRDb2x1bW5JZHggIT09IG51bGwgJiZcbiAgICAgICAgICAgIGRyYWdnZWRDb2x1bW5JZHggPCBpXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxyaXYtY2hlY2tib3hcbiAgICAgICAgICAgIFt2YWx1ZV09XCJjb2x1bW4uZW5hYmxlZFwiXG4gICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwiY29sdW1uRW5hYmxlZENoYW5nZShjb2x1bW4sICRldmVudClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVFbmFibGluZ0NvbHVtbihjb2x1bW4sIGNvbHVtbnMpXCJcbiAgICAgICAgICAgIFtjaGVja2JveFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgIGRpc2FibGVFbmFibGluZ0NvbHVtbihjb2x1bW4sIGNvbHVtbnMpXG4gICAgICAgICAgICAgICAgPyBsaW1pdFRvb2x0aXAoKVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxyaXYtaGlnaGxpZ2h0XG4gICAgICAgICAgICAgIFt0ZXh0XT1cImNvbHVtbi5yZXNvbHZlZE5hbWVcIlxuICAgICAgICAgICAgICBbaW5kaWNlc109XCJjb2x1bW4uaGlnaGxpZ2h0SW5kaWNlc1wiXG4gICAgICAgICAgICA+PC9yaXYtaGlnaGxpZ2h0PlxuICAgICAgICAgIDwvcml2LWNoZWNrYm94PlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInJlb3JkZXJcIlxuICAgICAgICAgICAgKm5nSWY9XCIoc2VhcmNoaW5nIHwgYXN5bmMpID09PSBmYWxzZVwiXG4gICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZUVuYWJsaW5nQ29sdW1uKGNvbHVtbiwgY29sdW1ucylcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxyaXYtaWNvbiBbbmFtZV09XCInUmVvcmRlcidcIiBbc2l6ZV09XCIxMlwiPjwvcml2LWljb24+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgcml2QnV0dG9uXG4gICAgICAgICAgICBbdmFyaWFudF09XCInZ2hvc3QnXCJcbiAgICAgICAgICAgIFtzaXplXT1cIid4c21hbGwnXCJcbiAgICAgICAgICAgIFtpY29uXT1cImNvbHVtbi5waW5uZWQgPyAnUGluQWN0aXZlJyA6ICdQaW5JbmFjdGl2ZSdcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVFbmFibGluZ0NvbHVtbihjb2x1bW4sIGNvbHVtbnMpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjb2x1bW5QaW5DaGFuZ2UoY29sdW1uLCAhY29sdW1uLnBpbm5lZClcIlxuICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxmb290ZXIgKm5nSWY9XCIoc2VhcmNoaW5nIHwgYXN5bmMpID09PSBmYWxzZVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgcml2QnV0dG9uXG4gICAgICAgICAgW3NpemVdPVwiJ3hzbWFsbCdcIlxuICAgICAgICAgIFt2YXJpYW50XT1cIidnaG9zdCdcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJhbGxDb2x1bW5zRGlzYWJsZWQoY29sdW1ucylcIlxuICAgICAgICAgIChjbGljayk9XCJkaXNhYmxlQWxsQ29sdW1ucyhjb2x1bW5zKVwiXG4gICAgICAgID5cbiAgICAgICAgICBDbGVhclxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIHJpdkJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwic2hvd1NlbGVjdEFsbENvbHVtbnMoY29sdW1ucylcIlxuICAgICAgICAgIFtzaXplXT1cIid4c21hbGwnXCJcbiAgICAgICAgICBbdmFyaWFudF09XCInZ2hvc3QnXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiYWxsQ29sdW1uc0VuYWJsZWQoY29sdW1ucylcIlxuICAgICAgICAgIChjbGljayk9XCJlbmFibGVBbGxDb2x1bW5zKGNvbHVtbnMpXCJcbiAgICAgICAgPlxuICAgICAgICAgIFNlbGVjdCBhbGxcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Zvb3Rlcj5cbiAgICA8L3Jpdi1jYWxsb3V0PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -23,13 +23,13 @@ export class TableCsvExportComponent {
|
|
|
23
23
|
this.cdr.markForCheck();
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
27
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableCsvExportComponent, deps: [{ token: i1.DownloadService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TableCsvExportComponent, selector: "riv-table-csv-export", inputs: { manager: "manager" }, ngImport: i0, template: "<ng-container *ngIf=\"manager?.state | async; let s\">\n <button\n type=\"button\"\n rivButton\n [rivTooltip]=\"'Export CSV'\"\n [loading]=\"loading\"\n (click)=\"downloadCsv(s)\"\n >\n Export\n </button>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ButtonComponent, selector: "[rivButton]", inputs: ["locked", "disabled", "loading", "full", "size", "variant", "icon", "iconPosition", "current"] }, { kind: "directive", type: i4.TooltipDirective, selector: "[rivTooltip]", inputs: ["rivTooltip", "rivTooltipTheme", "rivTooltipMaxWidth", "rivTooltipPreferredPosition", "rivTooltipAnchor", "rivTooltipCloseDelay", "rivTooltipOpenDelay", "rivTooltipGracePeriod"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28
28
|
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableCsvExportComponent, decorators: [{
|
|
30
30
|
type: Component,
|
|
31
31
|
args: [{ selector: 'riv-table-csv-export', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"manager?.state | async; let s\">\n <button\n type=\"button\"\n rivButton\n [rivTooltip]=\"'Export CSV'\"\n [loading]=\"loading\"\n (click)=\"downloadCsv(s)\"\n >\n Export\n </button>\n</ng-container>\n" }]
|
|
32
|
-
}], ctorParameters:
|
|
32
|
+
}], ctorParameters: () => [{ type: i1.DownloadService }, { type: i0.ChangeDetectorRef }], propDecorators: { manager: [{
|
|
33
33
|
type: Input
|
|
34
34
|
}] } });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY3N2LWV4cG9ydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi90YWJsZS90YWJsZS90YWJsZS1jc3YtZXhwb3J0L3RhYmxlLWNzdi1leHBvcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvdGFibGUvdGFibGUtY3N2LWV4cG9ydC90YWJsZS1jc3YtZXhwb3J0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQUssQ0FBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7O0FBUy9CLE1BQU0sT0FBTyx1QkFBdUI7SUFRbEMsWUFDbUIsZUFBZ0MsRUFDaEMsR0FBc0I7UUFEdEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBR3pDLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFGYixDQUFDO0lBSUosS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFrQztRQUNsRCxJQUFJLEtBQUssRUFBRSxNQUFNLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDdEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQ3JDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUN4RCxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FDekIsQ0FBQztnQkFDRixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUN2QixDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQzsrR0E1QlUsdUJBQXVCO21HQUF2Qix1QkFBdUIsNEZDZnBDLHNQQVdBOzs0RkRJYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0Usc0JBQXNCLG1CQUVmLHVCQUF1QixDQUFDLE1BQU07b0hBUS9DLE9BQU87c0JBRE4sS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBwIGZyb20gJ3BhcGFwYXJzZSc7XG5pbXBvcnQgeyBEb3dubG9hZFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kb3dubG9hZC9kb3dubG9hZC5zZXJ2aWNlJztcbmltcG9ydCB7IFJpdlRhYmxlIH0gZnJvbSAnLi4vc3RhdGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyaXYtdGFibGUtY3N2LWV4cG9ydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1jc3YtZXhwb3J0LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ3N2RXhwb3J0Q29tcG9uZW50PFxuICBSIGV4dGVuZHMgUml2VGFibGUuUm93LFxuICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICBGIGV4dGVuZHMgUml2VGFibGUuRmlsdGVycyxcbj4ge1xuICBASW5wdXQoKVxuICBtYW5hZ2VyPzogUml2VGFibGUuTWFuYWdlcjxSLCBDLCBGPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvd25sb2FkU2VydmljZTogRG93bmxvYWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7fVxuXG4gIGxvYWRpbmcgPSBmYWxzZTtcblxuICBhc3luYyBkb3dubG9hZENzdihzdGF0ZTogUml2VGFibGUuRnVsbFN0YXRlPFIsIEMsIEY+KSB7XG4gICAgZm9yIGF3YWl0IChjb25zdCBvdXRwdXQgb2Ygc3RhdGUucmVzdWx0LmNzdkRhdGEoKSkge1xuICAgICAgaWYgKCFvdXRwdXQuZGF0YSkge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgdGhpcy5kb3dubG9hZFNlcnZpY2UuZG93bmxvYWRCbG9iKFxuICAgICAgICAgIG5ldyBCbG9iKFtwLnVucGFyc2Uob3V0cHV0LmRhdGEpXSwgeyB0eXBlOiAndGV4dC9jc3YnIH0pLFxuICAgICAgICAgIHN0YXRlLnJlc3VsdC5jc3ZGaWxlbmFtZSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJtYW5hZ2VyPy5zdGF0ZSB8IGFzeW5jOyBsZXQgc1wiPlxuICA8YnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgcml2QnV0dG9uXG4gICAgW3JpdlRvb2x0aXBdPVwiJ0V4cG9ydCBDU1YnXCJcbiAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcbiAgICAoY2xpY2spPVwiZG93bmxvYWRDc3YocylcIlxuICA+XG4gICAgRXhwb3J0XG4gIDwvYnV0dG9uPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|