@awc-ui/angular 1.0.0-beta.9 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -21
- package/fesm2022/awc-ui-angular.mjs +402 -309
- package/fesm2022/awc-ui-angular.mjs.map +1 -1
- package/index.d.ts +2137 -11
- package/package.json +8 -9
- package/awc-ui.module.d.ts +0 -72
- package/directives/angular-component-lib/utils.d.ts +0 -9
- package/directives/boolean-value-accessor.d.ts +0 -9
- package/directives/index.d.ts +0 -2
- package/directives/number-value-accessor.d.ts +0 -9
- package/directives/proxies.d.ts +0 -2005
- package/directives/radio-value-accessor.d.ts +0 -8
- package/directives/select-value-accessor.d.ts +0 -8
- package/directives/switch-value-accessor.d.ts +0 -21
- package/directives/text-value-accessor.d.ts +0 -8
- package/directives/value-accessor.d.ts +0 -18
- package/esm2022/awc-ui-angular.mjs +0 -5
- package/esm2022/awc-ui.module.mjs +0 -105
- package/esm2022/directives/angular-component-lib/utils.mjs +0 -59
- package/esm2022/directives/boolean-value-accessor.mjs +0 -38
- package/esm2022/directives/index.mjs +0 -85
- package/esm2022/directives/number-value-accessor.mjs +0 -40
- package/esm2022/directives/proxies.mjs +0 -2378
- package/esm2022/directives/radio-value-accessor.mjs +0 -35
- package/esm2022/directives/select-value-accessor.mjs +0 -35
- package/esm2022/directives/switch-value-accessor.mjs +0 -53
- package/esm2022/directives/text-value-accessor.mjs +0 -35
- package/esm2022/directives/value-accessor.mjs +0 -40
- package/esm2022/index.mjs +0 -15
|
@@ -1,2378 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
/* tslint:disable */
|
|
3
|
-
/* auto-generated angular directive proxies */
|
|
4
|
-
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
5
|
-
import { ProxyCmp, proxyOutputs } from './angular-component-lib/utils';
|
|
6
|
-
import { defineCustomElement as defineMdAccordion } from '@awc-ui/core/dist/components/md-accordion.js';
|
|
7
|
-
import { defineCustomElement as defineMdAccordionItem } from '@awc-ui/core/dist/components/md-accordion-item.js';
|
|
8
|
-
import { defineCustomElement as defineMdAppBar } from '@awc-ui/core/dist/components/md-app-bar.js';
|
|
9
|
-
import { defineCustomElement as defineMdAreaChart } from '@awc-ui/core/dist/components/md-area-chart.js';
|
|
10
|
-
import { defineCustomElement as defineMdAutocomplete } from '@awc-ui/core/dist/components/md-autocomplete.js';
|
|
11
|
-
import { defineCustomElement as defineMdAvatar } from '@awc-ui/core/dist/components/md-avatar.js';
|
|
12
|
-
import { defineCustomElement as defineMdBadge } from '@awc-ui/core/dist/components/md-badge.js';
|
|
13
|
-
import { defineCustomElement as defineMdBarChart } from '@awc-ui/core/dist/components/md-bar-chart.js';
|
|
14
|
-
import { defineCustomElement as defineMdBottomSheet } from '@awc-ui/core/dist/components/md-bottom-sheet.js';
|
|
15
|
-
import { defineCustomElement as defineMdBreadcrumbItem } from '@awc-ui/core/dist/components/md-breadcrumb-item.js';
|
|
16
|
-
import { defineCustomElement as defineMdBreadcrumbs } from '@awc-ui/core/dist/components/md-breadcrumbs.js';
|
|
17
|
-
import { defineCustomElement as defineMdButton } from '@awc-ui/core/dist/components/md-button.js';
|
|
18
|
-
import { defineCustomElement as defineMdButtonGroup } from '@awc-ui/core/dist/components/md-button-group.js';
|
|
19
|
-
import { defineCustomElement as defineMdCard } from '@awc-ui/core/dist/components/md-card.js';
|
|
20
|
-
import { defineCustomElement as defineMdCheckbox } from '@awc-ui/core/dist/components/md-checkbox.js';
|
|
21
|
-
import { defineCustomElement as defineMdChip } from '@awc-ui/core/dist/components/md-chip.js';
|
|
22
|
-
import { defineCustomElement as defineMdColorPicker } from '@awc-ui/core/dist/components/md-color-picker.js';
|
|
23
|
-
import { defineCustomElement as defineMdDatePicker } from '@awc-ui/core/dist/components/md-date-picker.js';
|
|
24
|
-
import { defineCustomElement as defineMdDialog } from '@awc-ui/core/dist/components/md-dialog.js';
|
|
25
|
-
import { defineCustomElement as defineMdDivider } from '@awc-ui/core/dist/components/md-divider.js';
|
|
26
|
-
import { defineCustomElement as defineMdFab } from '@awc-ui/core/dist/components/md-fab.js';
|
|
27
|
-
import { defineCustomElement as defineMdFabMenu } from '@awc-ui/core/dist/components/md-fab-menu.js';
|
|
28
|
-
import { defineCustomElement as defineMdFabMenuItem } from '@awc-ui/core/dist/components/md-fab-menu-item.js';
|
|
29
|
-
import { defineCustomElement as defineMdIconButton } from '@awc-ui/core/dist/components/md-icon-button.js';
|
|
30
|
-
import { defineCustomElement as defineMdLineChart } from '@awc-ui/core/dist/components/md-line-chart.js';
|
|
31
|
-
import { defineCustomElement as defineMdList } from '@awc-ui/core/dist/components/md-list.js';
|
|
32
|
-
import { defineCustomElement as defineMdListItem } from '@awc-ui/core/dist/components/md-list-item.js';
|
|
33
|
-
import { defineCustomElement as defineMdLoadingIndicator } from '@awc-ui/core/dist/components/md-loading-indicator.js';
|
|
34
|
-
import { defineCustomElement as defineMdMenu } from '@awc-ui/core/dist/components/md-menu.js';
|
|
35
|
-
import { defineCustomElement as defineMdMenuItem } from '@awc-ui/core/dist/components/md-menu-item.js';
|
|
36
|
-
import { defineCustomElement as defineMdMenuItemGroup } from '@awc-ui/core/dist/components/md-menu-item-group.js';
|
|
37
|
-
import { defineCustomElement as defineMdMeter } from '@awc-ui/core/dist/components/md-meter.js';
|
|
38
|
-
import { defineCustomElement as defineMdMultiSelect } from '@awc-ui/core/dist/components/md-multi-select.js';
|
|
39
|
-
import { defineCustomElement as defineMdNavigationBar } from '@awc-ui/core/dist/components/md-navigation-bar.js';
|
|
40
|
-
import { defineCustomElement as defineMdNavigationRail } from '@awc-ui/core/dist/components/md-navigation-rail.js';
|
|
41
|
-
import { defineCustomElement as defineMdNavigationRailTab } from '@awc-ui/core/dist/components/md-navigation-rail-tab.js';
|
|
42
|
-
import { defineCustomElement as defineMdNavigationTab } from '@awc-ui/core/dist/components/md-navigation-tab.js';
|
|
43
|
-
import { defineCustomElement as defineMdNumberField } from '@awc-ui/core/dist/components/md-number-field.js';
|
|
44
|
-
import { defineCustomElement as defineMdOrganizationChart } from '@awc-ui/core/dist/components/md-organization-chart.js';
|
|
45
|
-
import { defineCustomElement as defineMdOtpField } from '@awc-ui/core/dist/components/md-otp-field.js';
|
|
46
|
-
import { defineCustomElement as defineMdPieChart } from '@awc-ui/core/dist/components/md-pie-chart.js';
|
|
47
|
-
import { defineCustomElement as defineMdProgressIndicator } from '@awc-ui/core/dist/components/md-progress-indicator.js';
|
|
48
|
-
import { defineCustomElement as defineMdRadio } from '@awc-ui/core/dist/components/md-radio.js';
|
|
49
|
-
import { defineCustomElement as defineMdRating } from '@awc-ui/core/dist/components/md-rating.js';
|
|
50
|
-
import { defineCustomElement as defineMdRipple } from '@awc-ui/core/dist/components/md-ripple.js';
|
|
51
|
-
import { defineCustomElement as defineMdSearch } from '@awc-ui/core/dist/components/md-search.js';
|
|
52
|
-
import { defineCustomElement as defineMdSegmentedButton } from '@awc-ui/core/dist/components/md-segmented-button.js';
|
|
53
|
-
import { defineCustomElement as defineMdSegmentedButtonSet } from '@awc-ui/core/dist/components/md-segmented-button-set.js';
|
|
54
|
-
import { defineCustomElement as defineMdSelect } from '@awc-ui/core/dist/components/md-select.js';
|
|
55
|
-
import { defineCustomElement as defineMdSelectOption } from '@awc-ui/core/dist/components/md-select-option.js';
|
|
56
|
-
import { defineCustomElement as defineMdSideSheet } from '@awc-ui/core/dist/components/md-side-sheet.js';
|
|
57
|
-
import { defineCustomElement as defineMdSkeleton } from '@awc-ui/core/dist/components/md-skeleton.js';
|
|
58
|
-
import { defineCustomElement as defineMdSlider } from '@awc-ui/core/dist/components/md-slider.js';
|
|
59
|
-
import { defineCustomElement as defineMdSnackbar } from '@awc-ui/core/dist/components/md-snackbar.js';
|
|
60
|
-
import { defineCustomElement as defineMdSparkline } from '@awc-ui/core/dist/components/md-sparkline.js';
|
|
61
|
-
import { defineCustomElement as defineMdSplitButton } from '@awc-ui/core/dist/components/md-split-button.js';
|
|
62
|
-
import { defineCustomElement as defineMdStatusDot } from '@awc-ui/core/dist/components/md-status-dot.js';
|
|
63
|
-
import { defineCustomElement as defineMdStep } from '@awc-ui/core/dist/components/md-step.js';
|
|
64
|
-
import { defineCustomElement as defineMdStepper } from '@awc-ui/core/dist/components/md-stepper.js';
|
|
65
|
-
import { defineCustomElement as defineMdSubMenuItem } from '@awc-ui/core/dist/components/md-sub-menu-item.js';
|
|
66
|
-
import { defineCustomElement as defineMdSwitch } from '@awc-ui/core/dist/components/md-switch.js';
|
|
67
|
-
import { defineCustomElement as defineMdTab } from '@awc-ui/core/dist/components/md-tab.js';
|
|
68
|
-
import { defineCustomElement as defineMdTabPanel } from '@awc-ui/core/dist/components/md-tab-panel.js';
|
|
69
|
-
import { defineCustomElement as defineMdTabPanels } from '@awc-ui/core/dist/components/md-tab-panels.js';
|
|
70
|
-
import { defineCustomElement as defineMdTable } from '@awc-ui/core/dist/components/md-table.js';
|
|
71
|
-
import { defineCustomElement as defineMdTableBody } from '@awc-ui/core/dist/components/md-table-body.js';
|
|
72
|
-
import { defineCustomElement as defineMdTableCell } from '@awc-ui/core/dist/components/md-table-cell.js';
|
|
73
|
-
import { defineCustomElement as defineMdTableContainer } from '@awc-ui/core/dist/components/md-table-container.js';
|
|
74
|
-
import { defineCustomElement as defineMdTableExpandToggle } from '@awc-ui/core/dist/components/md-table-expand-toggle.js';
|
|
75
|
-
import { defineCustomElement as defineMdTableFoot } from '@awc-ui/core/dist/components/md-table-foot.js';
|
|
76
|
-
import { defineCustomElement as defineMdTableHead } from '@awc-ui/core/dist/components/md-table-head.js';
|
|
77
|
-
import { defineCustomElement as defineMdTablePagination } from '@awc-ui/core/dist/components/md-table-pagination.js';
|
|
78
|
-
import { defineCustomElement as defineMdTableRow } from '@awc-ui/core/dist/components/md-table-row.js';
|
|
79
|
-
import { defineCustomElement as defineMdTableSortLabel } from '@awc-ui/core/dist/components/md-table-sort-label.js';
|
|
80
|
-
import { defineCustomElement as defineMdTableToolbar } from '@awc-ui/core/dist/components/md-table-toolbar.js';
|
|
81
|
-
import { defineCustomElement as defineMdTabs } from '@awc-ui/core/dist/components/md-tabs.js';
|
|
82
|
-
import { defineCustomElement as defineMdTextField } from '@awc-ui/core/dist/components/md-text-field.js';
|
|
83
|
-
import { defineCustomElement as defineMdTimePicker } from '@awc-ui/core/dist/components/md-time-picker.js';
|
|
84
|
-
import { defineCustomElement as defineMdToolbar } from '@awc-ui/core/dist/components/md-toolbar.js';
|
|
85
|
-
import { defineCustomElement as defineMdTooltip } from '@awc-ui/core/dist/components/md-tooltip.js';
|
|
86
|
-
import { defineCustomElement as defineMdTransferList } from '@awc-ui/core/dist/components/md-transfer-list.js';
|
|
87
|
-
import * as i0 from "@angular/core";
|
|
88
|
-
let MdAccordion = class MdAccordion {
|
|
89
|
-
constructor(c, r, z) {
|
|
90
|
-
this.z = z;
|
|
91
|
-
c.detach();
|
|
92
|
-
this.el = r.nativeElement;
|
|
93
|
-
proxyOutputs(this, this.el, ['mdToggle', 'mdReorder', 'mdDragStart', 'mdDragMove', 'mdDragEnd']);
|
|
94
|
-
}
|
|
95
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdAccordion, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
96
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdAccordion, isStandalone: true, selector: "md-accordion", inputs: { bringToFront: "bringToFront", defaultExpanded: "defaultExpanded", density: "density", elevation: "elevation", exclusive: "exclusive", floating: "floating", headingLevel: "headingLevel", initialX: "initialX", initialY: "initialY", keepOneExpanded: "keepOneExpanded", region: "region", regionThreshold: "regionThreshold", reorderable: "reorderable", transition: "transition", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
97
|
-
};
|
|
98
|
-
MdAccordion = __decorate([
|
|
99
|
-
ProxyCmp({
|
|
100
|
-
defineCustomElementFn: defineMdAccordion,
|
|
101
|
-
inputs: ['bringToFront', 'defaultExpanded', 'density', 'elevation', 'exclusive', 'floating', 'headingLevel', 'initialX', 'initialY', 'keepOneExpanded', 'region', 'regionThreshold', 'reorderable', 'transition', 'variant']
|
|
102
|
-
})
|
|
103
|
-
], MdAccordion);
|
|
104
|
-
export { MdAccordion };
|
|
105
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdAccordion, decorators: [{
|
|
106
|
-
type: Component,
|
|
107
|
-
args: [{
|
|
108
|
-
selector: 'md-accordion',
|
|
109
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
110
|
-
template: '<ng-content></ng-content>',
|
|
111
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
112
|
-
inputs: ['bringToFront', 'defaultExpanded', 'density', 'elevation', 'exclusive', 'floating', 'headingLevel', 'initialX', 'initialY', 'keepOneExpanded', 'region', 'regionThreshold', 'reorderable', 'transition', 'variant'],
|
|
113
|
-
standalone: true
|
|
114
|
-
}]
|
|
115
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
116
|
-
let MdAccordionItem = class MdAccordionItem {
|
|
117
|
-
constructor(c, r, z) {
|
|
118
|
-
this.z = z;
|
|
119
|
-
c.detach();
|
|
120
|
-
this.el = r.nativeElement;
|
|
121
|
-
proxyOutputs(this, this.el, ['mdItemToggle', 'mdItemRequestFocus', 'mdItemRequestReorder']);
|
|
122
|
-
}
|
|
123
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdAccordionItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
124
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdAccordionItem, isStandalone: true, selector: "md-accordion-item", inputs: { collapsible: "collapsible", contentMaxHeight: "contentMaxHeight", density: "density", disabled: "disabled", expanded: "expanded", headingLevel: "headingLevel", headline: "headline", icon: "icon", regionRole: "regionRole", supportingText: "supportingText" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
125
|
-
};
|
|
126
|
-
MdAccordionItem = __decorate([
|
|
127
|
-
ProxyCmp({
|
|
128
|
-
defineCustomElementFn: defineMdAccordionItem,
|
|
129
|
-
inputs: ['collapsible', 'contentMaxHeight', 'density', 'disabled', 'expanded', 'headingLevel', 'headline', 'icon', 'regionRole', 'supportingText'],
|
|
130
|
-
methods: ['toggle', 'focusHeader']
|
|
131
|
-
})
|
|
132
|
-
], MdAccordionItem);
|
|
133
|
-
export { MdAccordionItem };
|
|
134
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdAccordionItem, decorators: [{
|
|
135
|
-
type: Component,
|
|
136
|
-
args: [{
|
|
137
|
-
selector: 'md-accordion-item',
|
|
138
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
139
|
-
template: '<ng-content></ng-content>',
|
|
140
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
141
|
-
inputs: ['collapsible', 'contentMaxHeight', 'density', 'disabled', 'expanded', 'headingLevel', 'headline', 'icon', 'regionRole', 'supportingText'],
|
|
142
|
-
standalone: true
|
|
143
|
-
}]
|
|
144
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
145
|
-
let MdAppBar = class MdAppBar {
|
|
146
|
-
constructor(c, r, z) {
|
|
147
|
-
this.z = z;
|
|
148
|
-
c.detach();
|
|
149
|
-
this.el = r.nativeElement;
|
|
150
|
-
proxyOutputs(this, this.el, ['mdLeadingClick', 'mdSearchActivate', 'mdSearchInput']);
|
|
151
|
-
}
|
|
152
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdAppBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
153
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdAppBar, isStandalone: true, selector: "md-app-bar", inputs: { density: "density", headline: "headline", leadingIcon: "leadingIcon", leadingIconLabel: "leadingIconLabel", scrolled: "scrolled", searchAriaLabel: "searchAriaLabel", searchDisabled: "searchDisabled", searchPlaceholder: "searchPlaceholder", searchValue: "searchValue", subtitle: "subtitle", titleAlignment: "titleAlignment", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
154
|
-
};
|
|
155
|
-
MdAppBar = __decorate([
|
|
156
|
-
ProxyCmp({
|
|
157
|
-
defineCustomElementFn: defineMdAppBar,
|
|
158
|
-
inputs: ['density', 'headline', 'leadingIcon', 'leadingIconLabel', 'scrolled', 'searchAriaLabel', 'searchDisabled', 'searchPlaceholder', 'searchValue', 'subtitle', 'titleAlignment', 'variant']
|
|
159
|
-
})
|
|
160
|
-
], MdAppBar);
|
|
161
|
-
export { MdAppBar };
|
|
162
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdAppBar, decorators: [{
|
|
163
|
-
type: Component,
|
|
164
|
-
args: [{
|
|
165
|
-
selector: 'md-app-bar',
|
|
166
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
167
|
-
template: '<ng-content></ng-content>',
|
|
168
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
169
|
-
inputs: ['density', 'headline', 'leadingIcon', 'leadingIconLabel', 'scrolled', 'searchAriaLabel', 'searchDisabled', 'searchPlaceholder', 'searchValue', 'subtitle', 'titleAlignment', 'variant'],
|
|
170
|
-
standalone: true
|
|
171
|
-
}]
|
|
172
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
173
|
-
let MdAreaChart = class MdAreaChart {
|
|
174
|
-
constructor(c, r, z) {
|
|
175
|
-
this.z = z;
|
|
176
|
-
c.detach();
|
|
177
|
-
this.el = r.nativeElement;
|
|
178
|
-
proxyOutputs(this, this.el, ['mdMarkerClick', 'mdLineClick', 'mdAreaClick', 'mdAxisClick', 'mdLegendClick', 'mdHover', 'mdReady', 'mdZoom']);
|
|
179
|
-
}
|
|
180
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdAreaChart, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
181
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdAreaChart, isStandalone: true, selector: "md-area-chart", inputs: { animation: "animation", animationDuration: "animationDuration", axisTicks: "axisTicks", connectNulls: "connectNulls", curve: "curve", density: "density", fillOpacity: "fillOpacity", grid: "grid", heightProp: "heightProp", inverted: "inverted", label: "label", labelEmpty: "labelEmpty", labelPlot: "labelPlot", labelPoint: "labelPoint", labelZoomEnd: "labelZoomEnd", labelZoomStart: "labelZoomStart", legend: "legend", lineWidth: "lineWidth", loading: "loading", loadingLabel: "loadingLabel", locale: "locale", markSize: "markSize", noAnimation: "noAnimation", series: "series", seriesLabels: "seriesLabels", showLabels: "showLabels", showLine: "showLine", showMarks: "showMarks", stack: "stack", subtitle: "subtitle", summary: "summary", tableLabels: "tableLabels", titleAlign: "titleAlign", tooltip: "tooltip", tooltipRenderer: "tooltipRenderer", valueFormatter: "valueFormatter", xAxis: "xAxis", yAxis: "yAxis", zoom: "zoom" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
182
|
-
};
|
|
183
|
-
MdAreaChart = __decorate([
|
|
184
|
-
ProxyCmp({
|
|
185
|
-
defineCustomElementFn: defineMdAreaChart,
|
|
186
|
-
inputs: ['animation', 'animationDuration', 'axisTicks', 'connectNulls', 'curve', 'density', 'fillOpacity', 'grid', 'heightProp', 'inverted', 'label', 'labelEmpty', 'labelPlot', 'labelPoint', 'labelZoomEnd', 'labelZoomStart', 'legend', 'lineWidth', 'loading', 'loadingLabel', 'locale', 'markSize', 'noAnimation', 'series', 'seriesLabels', 'showLabels', 'showLine', 'showMarks', 'stack', 'subtitle', 'summary', 'tableLabels', 'titleAlign', 'tooltip', 'tooltipRenderer', 'valueFormatter', 'xAxis', 'yAxis', 'zoom'],
|
|
187
|
-
methods: ['refreshTheme', 'resize', 'replay', 'toDataURL', 'getInstance', 'setZoom', 'resetZoom']
|
|
188
|
-
})
|
|
189
|
-
], MdAreaChart);
|
|
190
|
-
export { MdAreaChart };
|
|
191
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdAreaChart, decorators: [{
|
|
192
|
-
type: Component,
|
|
193
|
-
args: [{
|
|
194
|
-
selector: 'md-area-chart',
|
|
195
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
196
|
-
template: '<ng-content></ng-content>',
|
|
197
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
198
|
-
inputs: ['animation', 'animationDuration', 'axisTicks', 'connectNulls', 'curve', 'density', 'fillOpacity', 'grid', 'heightProp', 'inverted', 'label', 'labelEmpty', 'labelPlot', 'labelPoint', 'labelZoomEnd', 'labelZoomStart', 'legend', 'lineWidth', 'loading', 'loadingLabel', 'locale', 'markSize', 'noAnimation', 'series', 'seriesLabels', 'showLabels', 'showLine', 'showMarks', 'stack', 'subtitle', 'summary', 'tableLabels', 'titleAlign', 'tooltip', 'tooltipRenderer', 'valueFormatter', 'xAxis', 'yAxis', 'zoom'],
|
|
199
|
-
standalone: true
|
|
200
|
-
}]
|
|
201
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
202
|
-
let MdAutocomplete = class MdAutocomplete {
|
|
203
|
-
constructor(c, r, z) {
|
|
204
|
-
this.z = z;
|
|
205
|
-
c.detach();
|
|
206
|
-
this.el = r.nativeElement;
|
|
207
|
-
proxyOutputs(this, this.el, ['mdChange', 'mdInput', 'mdOpen', 'mdClose', 'mdClear', 'mdValidityChange']);
|
|
208
|
-
}
|
|
209
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdAutocomplete, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
210
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdAutocomplete, isStandalone: true, selector: "md-autocomplete", inputs: { chipPosition: "chipPosition", clearIcon: "clearIcon", clearOnBlur: "clearOnBlur", clearable: "clearable", density: "density", disableCloseOnSelect: "disableCloseOnSelect", disabled: "disabled", dropdownIcon: "dropdownIcon", error: "error", errorText: "errorText", filterMode: "filterMode", filterer: "filterer", freeSolo: "freeSolo", inputValue: "inputValue", label: "label", limitResults: "limitResults", loading: "loading", loadingText: "loadingText", matchTriggerWidth: "matchTriggerWidth", maxHeight: "maxHeight", maxSelected: "maxSelected", multiple: "multiple", name: "name", noOptionsText: "noOptionsText", noResultsText: "noResultsText", open: "open", options: "options", placeholder: "placeholder", placement: "placement", required: "required", reserveSupportingSpace: "reserveSupportingSpace", rowHeight: "rowHeight", softDisabled: "softDisabled", statusTemplate: "statusTemplate", supportingText: "supportingText", value: "value", valueMissingLabel: "valueMissingLabel", variant: "variant", virtualize: "virtualize" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
211
|
-
};
|
|
212
|
-
MdAutocomplete = __decorate([
|
|
213
|
-
ProxyCmp({
|
|
214
|
-
defineCustomElementFn: defineMdAutocomplete,
|
|
215
|
-
inputs: ['chipPosition', 'clearIcon', 'clearOnBlur', 'clearable', 'density', 'disableCloseOnSelect', 'disabled', 'dropdownIcon', 'error', 'errorText', 'filterMode', 'filterer', 'freeSolo', 'inputValue', 'label', 'limitResults', 'loading', 'loadingText', 'matchTriggerWidth', 'maxHeight', 'maxSelected', 'multiple', 'name', 'noOptionsText', 'noResultsText', 'open', 'options', 'placeholder', 'placement', 'required', 'reserveSupportingSpace', 'rowHeight', 'softDisabled', 'statusTemplate', 'supportingText', 'value', 'valueMissingLabel', 'variant', 'virtualize'],
|
|
216
|
-
methods: ['focusInput', 'showMenu', 'closeMenu', 'loadOptions', 'getLabels', 'getValidity', 'checkValidity', 'reportValidity', 'setCustomValidity']
|
|
217
|
-
})
|
|
218
|
-
], MdAutocomplete);
|
|
219
|
-
export { MdAutocomplete };
|
|
220
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdAutocomplete, decorators: [{
|
|
221
|
-
type: Component,
|
|
222
|
-
args: [{
|
|
223
|
-
selector: 'md-autocomplete',
|
|
224
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
225
|
-
template: '<ng-content></ng-content>',
|
|
226
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
227
|
-
inputs: ['chipPosition', 'clearIcon', 'clearOnBlur', 'clearable', 'density', 'disableCloseOnSelect', 'disabled', 'dropdownIcon', 'error', 'errorText', 'filterMode', 'filterer', 'freeSolo', 'inputValue', 'label', 'limitResults', 'loading', 'loadingText', 'matchTriggerWidth', 'maxHeight', 'maxSelected', 'multiple', 'name', 'noOptionsText', 'noResultsText', 'open', 'options', 'placeholder', 'placement', 'required', 'reserveSupportingSpace', 'rowHeight', 'softDisabled', 'statusTemplate', 'supportingText', 'value', 'valueMissingLabel', 'variant', 'virtualize'],
|
|
228
|
-
standalone: true
|
|
229
|
-
}]
|
|
230
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
231
|
-
let MdAvatar = class MdAvatar {
|
|
232
|
-
constructor(c, r, z) {
|
|
233
|
-
this.z = z;
|
|
234
|
-
c.detach();
|
|
235
|
-
this.el = r.nativeElement;
|
|
236
|
-
proxyOutputs(this, this.el, ['mdLoad', 'mdError']);
|
|
237
|
-
}
|
|
238
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdAvatar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
239
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdAvatar, isStandalone: true, selector: "md-avatar", inputs: { alt: "alt", colorFromName: "colorFromName", crossorigin: "crossorigin", density: "density", initials: "initials", label: "label", loading: "loading", name: "name", shape: "shape", size: "size", src: "src" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
240
|
-
};
|
|
241
|
-
MdAvatar = __decorate([
|
|
242
|
-
ProxyCmp({
|
|
243
|
-
defineCustomElementFn: defineMdAvatar,
|
|
244
|
-
inputs: ['alt', 'colorFromName', 'crossorigin', 'density', 'initials', 'label', 'loading', 'name', 'shape', 'size', 'src']
|
|
245
|
-
})
|
|
246
|
-
], MdAvatar);
|
|
247
|
-
export { MdAvatar };
|
|
248
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdAvatar, decorators: [{
|
|
249
|
-
type: Component,
|
|
250
|
-
args: [{
|
|
251
|
-
selector: 'md-avatar',
|
|
252
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
253
|
-
template: '<ng-content></ng-content>',
|
|
254
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
255
|
-
inputs: ['alt', 'colorFromName', 'crossorigin', 'density', 'initials', 'label', 'loading', 'name', 'shape', 'size', 'src'],
|
|
256
|
-
standalone: true
|
|
257
|
-
}]
|
|
258
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
259
|
-
let MdBadge = class MdBadge {
|
|
260
|
-
constructor(c, r, z) {
|
|
261
|
-
this.z = z;
|
|
262
|
-
c.detach();
|
|
263
|
-
this.el = r.nativeElement;
|
|
264
|
-
}
|
|
265
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdBadge, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
266
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdBadge, isStandalone: true, selector: "md-badge", inputs: { density: "density", icon: "icon", max: "max", shape: "shape", value: "value", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
267
|
-
};
|
|
268
|
-
MdBadge = __decorate([
|
|
269
|
-
ProxyCmp({
|
|
270
|
-
defineCustomElementFn: defineMdBadge,
|
|
271
|
-
inputs: ['density', 'icon', 'max', 'shape', 'value', 'variant']
|
|
272
|
-
})
|
|
273
|
-
], MdBadge);
|
|
274
|
-
export { MdBadge };
|
|
275
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdBadge, decorators: [{
|
|
276
|
-
type: Component,
|
|
277
|
-
args: [{
|
|
278
|
-
selector: 'md-badge',
|
|
279
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
280
|
-
template: '<ng-content></ng-content>',
|
|
281
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
282
|
-
inputs: ['density', 'icon', 'max', 'shape', 'value', 'variant'],
|
|
283
|
-
standalone: true
|
|
284
|
-
}]
|
|
285
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
286
|
-
let MdBarChart = class MdBarChart {
|
|
287
|
-
constructor(c, r, z) {
|
|
288
|
-
this.z = z;
|
|
289
|
-
c.detach();
|
|
290
|
-
this.el = r.nativeElement;
|
|
291
|
-
proxyOutputs(this, this.el, ['mdBarClick', 'mdLegendClick', 'mdHover', 'mdReady', 'mdZoom']);
|
|
292
|
-
}
|
|
293
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdBarChart, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
294
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdBarChart, isStandalone: true, selector: "md-bar-chart", inputs: { animation: "animation", animationDuration: "animationDuration", axisTicks: "axisTicks", barGap: "barGap", barWidth: "barWidth", categoryGap: "categoryGap", chevron: "chevron", clickable: "clickable", cornerRadius: "cornerRadius", density: "density", heightProp: "heightProp", label: "label", labelPlot: "labelPlot", labelPoint: "labelPoint", labelZoomEnd: "labelZoomEnd", labelZoomStart: "labelZoomStart", layout: "layout", legend: "legend", loading: "loading", loadingLabel: "loadingLabel", locale: "locale", noAnimation: "noAnimation", polar: "polar", polarHole: "polarHole", polarSweep: "polarSweep", series: "series", showLabels: "showLabels", showTotals: "showTotals", stack: "stack", subtitle: "subtitle", titleAlign: "titleAlign", tooltip: "tooltip", tooltipRenderer: "tooltipRenderer", valueFormatter: "valueFormatter", xAxis: "xAxis", yAxis: "yAxis", yAxis2: "yAxis2", zoom: "zoom" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
295
|
-
};
|
|
296
|
-
MdBarChart = __decorate([
|
|
297
|
-
ProxyCmp({
|
|
298
|
-
defineCustomElementFn: defineMdBarChart,
|
|
299
|
-
inputs: ['animation', 'animationDuration', 'axisTicks', 'barGap', 'barWidth', 'categoryGap', 'chevron', 'clickable', 'cornerRadius', 'density', 'heightProp', 'label', 'labelPlot', 'labelPoint', 'labelZoomEnd', 'labelZoomStart', 'layout', 'legend', 'loading', 'loadingLabel', 'locale', 'noAnimation', 'polar', 'polarHole', 'polarSweep', 'series', 'showLabels', 'showTotals', 'stack', 'subtitle', 'titleAlign', 'tooltip', 'tooltipRenderer', 'valueFormatter', 'xAxis', 'yAxis', 'yAxis2', 'zoom'],
|
|
300
|
-
methods: ['refreshTheme', 'resize', 'replay', 'drill', 'toDataURL', 'getInstance', 'setZoom', 'resetZoom']
|
|
301
|
-
})
|
|
302
|
-
], MdBarChart);
|
|
303
|
-
export { MdBarChart };
|
|
304
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdBarChart, decorators: [{
|
|
305
|
-
type: Component,
|
|
306
|
-
args: [{
|
|
307
|
-
selector: 'md-bar-chart',
|
|
308
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
309
|
-
template: '<ng-content></ng-content>',
|
|
310
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
311
|
-
inputs: ['animation', 'animationDuration', 'axisTicks', 'barGap', 'barWidth', 'categoryGap', 'chevron', 'clickable', 'cornerRadius', 'density', 'heightProp', 'label', 'labelPlot', 'labelPoint', 'labelZoomEnd', 'labelZoomStart', 'layout', 'legend', 'loading', 'loadingLabel', 'locale', 'noAnimation', 'polar', 'polarHole', 'polarSweep', 'series', 'showLabels', 'showTotals', 'stack', 'subtitle', 'titleAlign', 'tooltip', 'tooltipRenderer', 'valueFormatter', 'xAxis', 'yAxis', 'yAxis2', 'zoom'],
|
|
312
|
-
standalone: true
|
|
313
|
-
}]
|
|
314
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
315
|
-
let MdBottomSheet = class MdBottomSheet {
|
|
316
|
-
constructor(c, r, z) {
|
|
317
|
-
this.z = z;
|
|
318
|
-
c.detach();
|
|
319
|
-
this.el = r.nativeElement;
|
|
320
|
-
proxyOutputs(this, this.el, ['mdOpen', 'mdClose', 'mdCancel']);
|
|
321
|
-
}
|
|
322
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdBottomSheet, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
323
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdBottomSheet, isStandalone: true, selector: "md-bottom-sheet", inputs: { bottomDivider: "bottomDivider", closeable: "closeable", contentAlign: "contentAlign", density: "density", headline: "headline", headlineAlign: "headlineAlign", open: "open", scrimDismissible: "scrimDismissible", scrollShadow: "scrollShadow", sheetAriaLabel: "sheetAriaLabel", showDragHandle: "showDragHandle", topDivider: "topDivider", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
324
|
-
};
|
|
325
|
-
MdBottomSheet = __decorate([
|
|
326
|
-
ProxyCmp({
|
|
327
|
-
defineCustomElementFn: defineMdBottomSheet,
|
|
328
|
-
inputs: ['bottomDivider', 'closeable', 'contentAlign', 'density', 'headline', 'headlineAlign', 'open', 'scrimDismissible', 'scrollShadow', 'sheetAriaLabel', 'showDragHandle', 'topDivider', 'variant'],
|
|
329
|
-
methods: ['show', 'close']
|
|
330
|
-
})
|
|
331
|
-
], MdBottomSheet);
|
|
332
|
-
export { MdBottomSheet };
|
|
333
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdBottomSheet, decorators: [{
|
|
334
|
-
type: Component,
|
|
335
|
-
args: [{
|
|
336
|
-
selector: 'md-bottom-sheet',
|
|
337
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
338
|
-
template: '<ng-content></ng-content>',
|
|
339
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
340
|
-
inputs: ['bottomDivider', 'closeable', 'contentAlign', 'density', 'headline', 'headlineAlign', 'open', 'scrimDismissible', 'scrollShadow', 'sheetAriaLabel', 'showDragHandle', 'topDivider', 'variant'],
|
|
341
|
-
standalone: true
|
|
342
|
-
}]
|
|
343
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
344
|
-
let MdBreadcrumbItem = class MdBreadcrumbItem {
|
|
345
|
-
constructor(c, r, z) {
|
|
346
|
-
this.z = z;
|
|
347
|
-
c.detach();
|
|
348
|
-
this.el = r.nativeElement;
|
|
349
|
-
proxyOutputs(this, this.el, ['mdSelect']);
|
|
350
|
-
}
|
|
351
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdBreadcrumbItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
352
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdBreadcrumbItem, isStandalone: true, selector: "md-breadcrumb-item", inputs: { collapsed: "collapsed", current: "current", density: "density", disabled: "disabled", href: "href", icon: "icon", itemIndex: "itemIndex", itemTotal: "itemTotal", rel: "rel", target: "target" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
353
|
-
};
|
|
354
|
-
MdBreadcrumbItem = __decorate([
|
|
355
|
-
ProxyCmp({
|
|
356
|
-
defineCustomElementFn: defineMdBreadcrumbItem,
|
|
357
|
-
inputs: ['collapsed', 'current', 'density', 'disabled', 'href', 'icon', 'itemIndex', 'itemTotal', 'rel', 'target']
|
|
358
|
-
})
|
|
359
|
-
], MdBreadcrumbItem);
|
|
360
|
-
export { MdBreadcrumbItem };
|
|
361
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdBreadcrumbItem, decorators: [{
|
|
362
|
-
type: Component,
|
|
363
|
-
args: [{
|
|
364
|
-
selector: 'md-breadcrumb-item',
|
|
365
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
366
|
-
template: '<ng-content></ng-content>',
|
|
367
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
368
|
-
inputs: ['collapsed', 'current', 'density', 'disabled', 'href', 'icon', 'itemIndex', 'itemTotal', 'rel', 'target'],
|
|
369
|
-
standalone: true
|
|
370
|
-
}]
|
|
371
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
372
|
-
let MdBreadcrumbs = class MdBreadcrumbs {
|
|
373
|
-
constructor(c, r, z) {
|
|
374
|
-
this.z = z;
|
|
375
|
-
c.detach();
|
|
376
|
-
this.el = r.nativeElement;
|
|
377
|
-
proxyOutputs(this, this.el, ['mdExpand']);
|
|
378
|
-
}
|
|
379
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdBreadcrumbs, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
380
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdBreadcrumbs, isStandalone: true, selector: "md-breadcrumbs", inputs: { density: "density", expandLabel: "expandLabel", itemsAfterCollapse: "itemsAfterCollapse", itemsBeforeCollapse: "itemsBeforeCollapse", label: "label", maxItems: "maxItems", separator: "separator" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
381
|
-
};
|
|
382
|
-
MdBreadcrumbs = __decorate([
|
|
383
|
-
ProxyCmp({
|
|
384
|
-
defineCustomElementFn: defineMdBreadcrumbs,
|
|
385
|
-
inputs: ['density', 'expandLabel', 'itemsAfterCollapse', 'itemsBeforeCollapse', 'label', 'maxItems', 'separator'],
|
|
386
|
-
methods: ['expand', 'collapse']
|
|
387
|
-
})
|
|
388
|
-
], MdBreadcrumbs);
|
|
389
|
-
export { MdBreadcrumbs };
|
|
390
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdBreadcrumbs, decorators: [{
|
|
391
|
-
type: Component,
|
|
392
|
-
args: [{
|
|
393
|
-
selector: 'md-breadcrumbs',
|
|
394
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
395
|
-
template: '<ng-content></ng-content>',
|
|
396
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
397
|
-
inputs: ['density', 'expandLabel', 'itemsAfterCollapse', 'itemsBeforeCollapse', 'label', 'maxItems', 'separator'],
|
|
398
|
-
standalone: true
|
|
399
|
-
}]
|
|
400
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
401
|
-
let MdButton = class MdButton {
|
|
402
|
-
constructor(c, r, z) {
|
|
403
|
-
this.z = z;
|
|
404
|
-
c.detach();
|
|
405
|
-
this.el = r.nativeElement;
|
|
406
|
-
proxyOutputs(this, this.el, ['mdClick', 'mdChange']);
|
|
407
|
-
}
|
|
408
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
409
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdButton, isStandalone: true, selector: "md-button", inputs: { density: "density", disabled: "disabled", fullWidth: "fullWidth", href: "href", icon: "icon", loading: "loading", mirrorIcon: "mirrorIcon", ripple: "ripple", roleOverride: "roleOverride", selected: "selected", shape: "shape", shapeMorph: "shapeMorph", size: "size", softDisabled: "softDisabled", suppressExpandIconFlip: "suppressExpandIconFlip", target: "target", toggle: "toggle", trailingIcon: "trailingIcon", type: "type", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
410
|
-
};
|
|
411
|
-
MdButton = __decorate([
|
|
412
|
-
ProxyCmp({
|
|
413
|
-
defineCustomElementFn: defineMdButton,
|
|
414
|
-
inputs: ['density', 'disabled', 'fullWidth', 'href', 'icon', 'loading', 'mirrorIcon', 'ripple', 'roleOverride', 'selected', 'shape', 'shapeMorph', 'size', 'softDisabled', 'suppressExpandIconFlip', 'target', 'toggle', 'trailingIcon', 'type', 'variant']
|
|
415
|
-
})
|
|
416
|
-
], MdButton);
|
|
417
|
-
export { MdButton };
|
|
418
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdButton, decorators: [{
|
|
419
|
-
type: Component,
|
|
420
|
-
args: [{
|
|
421
|
-
selector: 'md-button',
|
|
422
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
423
|
-
template: '<ng-content></ng-content>',
|
|
424
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
425
|
-
inputs: ['density', 'disabled', 'fullWidth', 'href', 'icon', 'loading', 'mirrorIcon', 'ripple', 'roleOverride', 'selected', 'shape', 'shapeMorph', 'size', 'softDisabled', 'suppressExpandIconFlip', 'target', 'toggle', 'trailingIcon', 'type', 'variant'],
|
|
426
|
-
standalone: true
|
|
427
|
-
}]
|
|
428
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
429
|
-
let MdButtonGroup = class MdButtonGroup {
|
|
430
|
-
constructor(c, r, z) {
|
|
431
|
-
this.z = z;
|
|
432
|
-
c.detach();
|
|
433
|
-
this.el = r.nativeElement;
|
|
434
|
-
proxyOutputs(this, this.el, ['mdSelectionChange']);
|
|
435
|
-
}
|
|
436
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdButtonGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
437
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdButtonGroup, isStandalone: true, selector: "md-button-group", inputs: { density: "density", fullWidth: "fullWidth", required: "required", selectionMode: "selectionMode", shape: "shape", size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
438
|
-
};
|
|
439
|
-
MdButtonGroup = __decorate([
|
|
440
|
-
ProxyCmp({
|
|
441
|
-
defineCustomElementFn: defineMdButtonGroup,
|
|
442
|
-
inputs: ['density', 'fullWidth', 'required', 'selectionMode', 'shape', 'size', 'variant']
|
|
443
|
-
})
|
|
444
|
-
], MdButtonGroup);
|
|
445
|
-
export { MdButtonGroup };
|
|
446
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdButtonGroup, decorators: [{
|
|
447
|
-
type: Component,
|
|
448
|
-
args: [{
|
|
449
|
-
selector: 'md-button-group',
|
|
450
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
451
|
-
template: '<ng-content></ng-content>',
|
|
452
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
453
|
-
inputs: ['density', 'fullWidth', 'required', 'selectionMode', 'shape', 'size', 'variant'],
|
|
454
|
-
standalone: true
|
|
455
|
-
}]
|
|
456
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
457
|
-
let MdCard = class MdCard {
|
|
458
|
-
constructor(c, r, z) {
|
|
459
|
-
this.z = z;
|
|
460
|
-
c.detach();
|
|
461
|
-
this.el = r.nativeElement;
|
|
462
|
-
proxyOutputs(this, this.el, ['mdClick', 'mdDragStart', 'mdDragMove', 'mdDragEnd']);
|
|
463
|
-
}
|
|
464
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdCard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
465
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdCard, isStandalone: true, selector: "md-card", inputs: { density: "density", disabled: "disabled", dragEnabled: "dragEnabled", fullHeight: "fullHeight", fullWidth: "fullWidth", interactive: "interactive", ripple: "ripple", softDisabled: "softDisabled", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
466
|
-
};
|
|
467
|
-
MdCard = __decorate([
|
|
468
|
-
ProxyCmp({
|
|
469
|
-
defineCustomElementFn: defineMdCard,
|
|
470
|
-
inputs: ['density', 'disabled', 'dragEnabled', 'fullHeight', 'fullWidth', 'interactive', 'ripple', 'softDisabled', 'variant']
|
|
471
|
-
})
|
|
472
|
-
], MdCard);
|
|
473
|
-
export { MdCard };
|
|
474
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdCard, decorators: [{
|
|
475
|
-
type: Component,
|
|
476
|
-
args: [{
|
|
477
|
-
selector: 'md-card',
|
|
478
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
479
|
-
template: '<ng-content></ng-content>',
|
|
480
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
481
|
-
inputs: ['density', 'disabled', 'dragEnabled', 'fullHeight', 'fullWidth', 'interactive', 'ripple', 'softDisabled', 'variant'],
|
|
482
|
-
standalone: true
|
|
483
|
-
}]
|
|
484
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
485
|
-
let MdCheckbox = class MdCheckbox {
|
|
486
|
-
constructor(c, r, z) {
|
|
487
|
-
this.z = z;
|
|
488
|
-
c.detach();
|
|
489
|
-
this.el = r.nativeElement;
|
|
490
|
-
proxyOutputs(this, this.el, ['mdChange', 'mdValidityChange']);
|
|
491
|
-
}
|
|
492
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdCheckbox, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
493
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdCheckbox, isStandalone: true, selector: "md-checkbox", inputs: { checked: "checked", density: "density", disabled: "disabled", error: "error", errorText: "errorText", indeterminate: "indeterminate", name: "name", required: "required", softDisabled: "softDisabled", supportingText: "supportingText", value: "value", valueMissingLabel: "valueMissingLabel" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
494
|
-
};
|
|
495
|
-
MdCheckbox = __decorate([
|
|
496
|
-
ProxyCmp({
|
|
497
|
-
defineCustomElementFn: defineMdCheckbox,
|
|
498
|
-
inputs: ['checked', 'density', 'disabled', 'error', 'errorText', 'indeterminate', 'name', 'required', 'softDisabled', 'supportingText', 'value', 'valueMissingLabel'],
|
|
499
|
-
methods: ['getValidity', 'checkValidity', 'reportValidity', 'setCustomValidity']
|
|
500
|
-
})
|
|
501
|
-
], MdCheckbox);
|
|
502
|
-
export { MdCheckbox };
|
|
503
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdCheckbox, decorators: [{
|
|
504
|
-
type: Component,
|
|
505
|
-
args: [{
|
|
506
|
-
selector: 'md-checkbox',
|
|
507
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
508
|
-
template: '<ng-content></ng-content>',
|
|
509
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
510
|
-
inputs: ['checked', 'density', 'disabled', 'error', 'errorText', 'indeterminate', 'name', 'required', 'softDisabled', 'supportingText', 'value', 'valueMissingLabel'],
|
|
511
|
-
standalone: true
|
|
512
|
-
}]
|
|
513
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
514
|
-
let MdChip = class MdChip {
|
|
515
|
-
constructor(c, r, z) {
|
|
516
|
-
this.z = z;
|
|
517
|
-
c.detach();
|
|
518
|
-
this.el = r.nativeElement;
|
|
519
|
-
proxyOutputs(this, this.el, ['mdClick', 'mdSelect', 'mdRemove']);
|
|
520
|
-
}
|
|
521
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdChip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
522
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdChip, isStandalone: true, selector: "md-chip", inputs: { appearance: "appearance", color: "color", contentAlign: "contentAlign", density: "density", disabled: "disabled", elevated: "elevated", icon: "icon", label: "label", removable: "removable", selectable: "selectable", selected: "selected", softDisabled: "softDisabled", trailingIcon: "trailingIcon", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
523
|
-
};
|
|
524
|
-
MdChip = __decorate([
|
|
525
|
-
ProxyCmp({
|
|
526
|
-
defineCustomElementFn: defineMdChip,
|
|
527
|
-
inputs: ['appearance', 'color', 'contentAlign', 'density', 'disabled', 'elevated', 'icon', 'label', 'removable', 'selectable', 'selected', 'softDisabled', 'trailingIcon', 'variant']
|
|
528
|
-
})
|
|
529
|
-
], MdChip);
|
|
530
|
-
export { MdChip };
|
|
531
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdChip, decorators: [{
|
|
532
|
-
type: Component,
|
|
533
|
-
args: [{
|
|
534
|
-
selector: 'md-chip',
|
|
535
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
536
|
-
template: '<ng-content></ng-content>',
|
|
537
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
538
|
-
inputs: ['appearance', 'color', 'contentAlign', 'density', 'disabled', 'elevated', 'icon', 'label', 'removable', 'selectable', 'selected', 'softDisabled', 'trailingIcon', 'variant'],
|
|
539
|
-
standalone: true
|
|
540
|
-
}]
|
|
541
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
542
|
-
let MdColorPicker = class MdColorPicker {
|
|
543
|
-
constructor(c, r, z) {
|
|
544
|
-
this.z = z;
|
|
545
|
-
c.detach();
|
|
546
|
-
this.el = r.nativeElement;
|
|
547
|
-
proxyOutputs(this, this.el, ['mdInput', 'mdChange', 'mdOpenChange']);
|
|
548
|
-
}
|
|
549
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdColorPicker, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
550
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdColorPicker, isStandalone: true, selector: "md-color-picker", inputs: { alpha: "alpha", ariaLabelProp: "ariaLabelProp", density: "density", disabled: "disabled", dismissOnOutsideClick: "dismissOnOutsideClick", format: "format", open: "open", presets: "presets", showHex: "showHex", showInputs: "showInputs", value: "value", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
551
|
-
};
|
|
552
|
-
MdColorPicker = __decorate([
|
|
553
|
-
ProxyCmp({
|
|
554
|
-
defineCustomElementFn: defineMdColorPicker,
|
|
555
|
-
inputs: ['alpha', 'ariaLabelProp', 'density', 'disabled', 'dismissOnOutsideClick', 'format', 'open', 'presets', 'showHex', 'showInputs', 'value', 'variant'],
|
|
556
|
-
methods: ['show', 'close']
|
|
557
|
-
})
|
|
558
|
-
], MdColorPicker);
|
|
559
|
-
export { MdColorPicker };
|
|
560
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdColorPicker, decorators: [{
|
|
561
|
-
type: Component,
|
|
562
|
-
args: [{
|
|
563
|
-
selector: 'md-color-picker',
|
|
564
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
565
|
-
template: '<ng-content></ng-content>',
|
|
566
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
567
|
-
inputs: ['alpha', 'ariaLabelProp', 'density', 'disabled', 'dismissOnOutsideClick', 'format', 'open', 'presets', 'showHex', 'showInputs', 'value', 'variant'],
|
|
568
|
-
standalone: true
|
|
569
|
-
}]
|
|
570
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
571
|
-
let MdDatePicker = class MdDatePicker {
|
|
572
|
-
constructor(c, r, z) {
|
|
573
|
-
this.z = z;
|
|
574
|
-
c.detach();
|
|
575
|
-
this.el = r.nativeElement;
|
|
576
|
-
proxyOutputs(this, this.el, ['mdChange', 'mdSelected', 'mdInput', 'mdOpen', 'mdClose', 'mdCancel', 'mdViewChange', 'mdMenuOpen', 'mdMenuSelect', 'mdModeChange', 'mdValidityChange']);
|
|
577
|
-
}
|
|
578
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdDatePicker, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
579
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdDatePicker, isStandalone: true, selector: "md-date-picker", inputs: { calendarIcon: "calendarIcon", cancelLabel: "cancelLabel", chooseMonthAndYearLabel: "chooseMonthAndYearLabel", chooseMonthLabel: "chooseMonthLabel", chooseMonthYearLabel: "chooseMonthYearLabel", chooseYearLabel: "chooseYearLabel", clearLabel: "clearLabel", clearable: "clearable", closeCalendarLabel: "closeCalendarLabel", commitOnSelect: "commitOnSelect", dateSeparator: "dateSeparator", density: "density", disabled: "disabled", enterDatesLabel: "enterDatesLabel", error: "error", errorText: "errorText", fieldVariant: "fieldVariant", firstDayOfWeek: "firstDayOfWeek", headline: "headline", invalidDateLabel: "invalidDateLabel", isDateDisabled: "isDateDisabled", label: "label", locale: "locale", max: "max", min: "min", name: "name", nextMonthLabel: "nextMonthLabel", nextYearLabel: "nextYearLabel", okLabel: "okLabel", open: "open", openCalendarLabel: "openCalendarLabel", outsideClickDismissible: "outsideClickDismissible", placeholder: "placeholder", previousMonthLabel: "previousMonthLabel", previousYearLabel: "previousYearLabel", required: "required", reserveSupportingSpace: "reserveSupportingSpace", scrimDismissible: "scrimDismissible", selectDateLabel: "selectDateLabel", supportingText: "supportingText", toggleCalendarLabel: "toggleCalendarLabel", toggleTextLabel: "toggleTextLabel", value: "value", valueMissingLabel: "valueMissingLabel", variant: "variant", yearGridLabel: "yearGridLabel" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
580
|
-
};
|
|
581
|
-
MdDatePicker = __decorate([
|
|
582
|
-
ProxyCmp({
|
|
583
|
-
defineCustomElementFn: defineMdDatePicker,
|
|
584
|
-
inputs: ['calendarIcon', 'cancelLabel', 'chooseMonthAndYearLabel', 'chooseMonthLabel', 'chooseMonthYearLabel', 'chooseYearLabel', 'clearLabel', 'clearable', 'closeCalendarLabel', 'commitOnSelect', 'dateSeparator', 'density', 'disabled', 'enterDatesLabel', 'error', 'errorText', 'fieldVariant', 'firstDayOfWeek', 'headline', 'invalidDateLabel', 'isDateDisabled', 'label', 'locale', 'max', 'min', 'name', 'nextMonthLabel', 'nextYearLabel', 'okLabel', 'open', 'openCalendarLabel', 'outsideClickDismissible', 'placeholder', 'previousMonthLabel', 'previousYearLabel', 'required', 'reserveSupportingSpace', 'scrimDismissible', 'selectDateLabel', 'supportingText', 'toggleCalendarLabel', 'toggleTextLabel', 'value', 'valueMissingLabel', 'variant', 'yearGridLabel'],
|
|
585
|
-
methods: ['show', 'close', 'clear', 'focusInput', 'getValidity', 'checkValidity', 'reportValidity', 'setCustomValidity']
|
|
586
|
-
})
|
|
587
|
-
], MdDatePicker);
|
|
588
|
-
export { MdDatePicker };
|
|
589
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdDatePicker, decorators: [{
|
|
590
|
-
type: Component,
|
|
591
|
-
args: [{
|
|
592
|
-
selector: 'md-date-picker',
|
|
593
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
594
|
-
template: '<ng-content></ng-content>',
|
|
595
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
596
|
-
inputs: ['calendarIcon', 'cancelLabel', 'chooseMonthAndYearLabel', 'chooseMonthLabel', 'chooseMonthYearLabel', 'chooseYearLabel', 'clearLabel', 'clearable', 'closeCalendarLabel', 'commitOnSelect', 'dateSeparator', 'density', 'disabled', 'enterDatesLabel', 'error', 'errorText', 'fieldVariant', 'firstDayOfWeek', 'headline', 'invalidDateLabel', 'isDateDisabled', 'label', 'locale', 'max', 'min', 'name', 'nextMonthLabel', 'nextYearLabel', 'okLabel', 'open', 'openCalendarLabel', 'outsideClickDismissible', 'placeholder', 'previousMonthLabel', 'previousYearLabel', 'required', 'reserveSupportingSpace', 'scrimDismissible', 'selectDateLabel', 'supportingText', 'toggleCalendarLabel', 'toggleTextLabel', 'value', 'valueMissingLabel', 'variant', 'yearGridLabel'],
|
|
597
|
-
standalone: true
|
|
598
|
-
}]
|
|
599
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
600
|
-
let MdDialog = class MdDialog {
|
|
601
|
-
constructor(c, r, z) {
|
|
602
|
-
this.z = z;
|
|
603
|
-
c.detach();
|
|
604
|
-
this.el = r.nativeElement;
|
|
605
|
-
proxyOutputs(this, this.el, ['mdOpen', 'mdClose', 'mdCancel']);
|
|
606
|
-
}
|
|
607
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdDialog, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
608
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdDialog, isStandalone: true, selector: "md-dialog", inputs: { cancelLabel: "cancelLabel", closeLabel: "closeLabel", density: "density", divider: "divider", fullscreen: "fullscreen", headerDivider: "headerDivider", headline: "headline", icon: "icon", locale: "locale", okLabel: "okLabel", open: "open", scrimDismissible: "scrimDismissible" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
609
|
-
};
|
|
610
|
-
MdDialog = __decorate([
|
|
611
|
-
ProxyCmp({
|
|
612
|
-
defineCustomElementFn: defineMdDialog,
|
|
613
|
-
inputs: ['cancelLabel', 'closeLabel', 'density', 'divider', 'fullscreen', 'headerDivider', 'headline', 'icon', 'locale', 'okLabel', 'open', 'scrimDismissible'],
|
|
614
|
-
methods: ['show', 'close']
|
|
615
|
-
})
|
|
616
|
-
], MdDialog);
|
|
617
|
-
export { MdDialog };
|
|
618
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdDialog, decorators: [{
|
|
619
|
-
type: Component,
|
|
620
|
-
args: [{
|
|
621
|
-
selector: 'md-dialog',
|
|
622
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
623
|
-
template: '<ng-content></ng-content>',
|
|
624
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
625
|
-
inputs: ['cancelLabel', 'closeLabel', 'density', 'divider', 'fullscreen', 'headerDivider', 'headline', 'icon', 'locale', 'okLabel', 'open', 'scrimDismissible'],
|
|
626
|
-
standalone: true
|
|
627
|
-
}]
|
|
628
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
629
|
-
let MdDivider = class MdDivider {
|
|
630
|
-
constructor(c, r, z) {
|
|
631
|
-
this.z = z;
|
|
632
|
-
c.detach();
|
|
633
|
-
this.el = r.nativeElement;
|
|
634
|
-
}
|
|
635
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdDivider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
636
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdDivider, isStandalone: true, selector: "md-divider", inputs: { inset: "inset", insetEnd: "insetEnd", insetStart: "insetStart", vertical: "vertical" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
637
|
-
};
|
|
638
|
-
MdDivider = __decorate([
|
|
639
|
-
ProxyCmp({
|
|
640
|
-
defineCustomElementFn: defineMdDivider,
|
|
641
|
-
inputs: ['inset', 'insetEnd', 'insetStart', 'vertical']
|
|
642
|
-
})
|
|
643
|
-
], MdDivider);
|
|
644
|
-
export { MdDivider };
|
|
645
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdDivider, decorators: [{
|
|
646
|
-
type: Component,
|
|
647
|
-
args: [{
|
|
648
|
-
selector: 'md-divider',
|
|
649
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
650
|
-
template: '<ng-content></ng-content>',
|
|
651
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
652
|
-
inputs: ['inset', 'insetEnd', 'insetStart', 'vertical'],
|
|
653
|
-
standalone: true
|
|
654
|
-
}]
|
|
655
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
656
|
-
let MdFab = class MdFab {
|
|
657
|
-
constructor(c, r, z) {
|
|
658
|
-
this.z = z;
|
|
659
|
-
c.detach();
|
|
660
|
-
this.el = r.nativeElement;
|
|
661
|
-
proxyOutputs(this, this.el, ['mdClick']);
|
|
662
|
-
}
|
|
663
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdFab, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
664
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdFab, isStandalone: true, selector: "md-fab", inputs: { density: "density", disabled: "disabled", extended: "extended", icon: "icon", label: "label", lowered: "lowered", ripple: "ripple", size: "size", softDisabled: "softDisabled", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
665
|
-
};
|
|
666
|
-
MdFab = __decorate([
|
|
667
|
-
ProxyCmp({
|
|
668
|
-
defineCustomElementFn: defineMdFab,
|
|
669
|
-
inputs: ['density', 'disabled', 'extended', 'icon', 'label', 'lowered', 'ripple', 'size', 'softDisabled', 'variant']
|
|
670
|
-
})
|
|
671
|
-
], MdFab);
|
|
672
|
-
export { MdFab };
|
|
673
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdFab, decorators: [{
|
|
674
|
-
type: Component,
|
|
675
|
-
args: [{
|
|
676
|
-
selector: 'md-fab',
|
|
677
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
678
|
-
template: '<ng-content></ng-content>',
|
|
679
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
680
|
-
inputs: ['density', 'disabled', 'extended', 'icon', 'label', 'lowered', 'ripple', 'size', 'softDisabled', 'variant'],
|
|
681
|
-
standalone: true
|
|
682
|
-
}]
|
|
683
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
684
|
-
let MdFabMenu = class MdFabMenu {
|
|
685
|
-
constructor(c, r, z) {
|
|
686
|
-
this.z = z;
|
|
687
|
-
c.detach();
|
|
688
|
-
this.el = r.nativeElement;
|
|
689
|
-
proxyOutputs(this, this.el, ['mdOpen', 'mdClose']);
|
|
690
|
-
}
|
|
691
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdFabMenu, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
692
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdFabMenu, isStandalone: true, selector: "md-fab-menu", inputs: { anchor: "anchor", density: "density", menuLabel: "menuLabel", open: "open", placement: "placement", quick: "quick", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
693
|
-
};
|
|
694
|
-
MdFabMenu = __decorate([
|
|
695
|
-
ProxyCmp({
|
|
696
|
-
defineCustomElementFn: defineMdFabMenu,
|
|
697
|
-
inputs: ['anchor', 'density', 'menuLabel', 'open', 'placement', 'quick', 'variant'],
|
|
698
|
-
methods: ['show', 'close']
|
|
699
|
-
})
|
|
700
|
-
], MdFabMenu);
|
|
701
|
-
export { MdFabMenu };
|
|
702
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdFabMenu, decorators: [{
|
|
703
|
-
type: Component,
|
|
704
|
-
args: [{
|
|
705
|
-
selector: 'md-fab-menu',
|
|
706
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
707
|
-
template: '<ng-content></ng-content>',
|
|
708
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
709
|
-
inputs: ['anchor', 'density', 'menuLabel', 'open', 'placement', 'quick', 'variant'],
|
|
710
|
-
standalone: true
|
|
711
|
-
}]
|
|
712
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
713
|
-
let MdFabMenuItem = class MdFabMenuItem {
|
|
714
|
-
constructor(c, r, z) {
|
|
715
|
-
this.z = z;
|
|
716
|
-
c.detach();
|
|
717
|
-
this.el = r.nativeElement;
|
|
718
|
-
proxyOutputs(this, this.el, ['mdClick']);
|
|
719
|
-
}
|
|
720
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdFabMenuItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
721
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdFabMenuItem, isStandalone: true, selector: "md-fab-menu-item", inputs: { density: "density", disabled: "disabled", icon: "icon", label: "label", rovingFocusVisible: "rovingFocusVisible", softDisabled: "softDisabled" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
722
|
-
};
|
|
723
|
-
MdFabMenuItem = __decorate([
|
|
724
|
-
ProxyCmp({
|
|
725
|
-
defineCustomElementFn: defineMdFabMenuItem,
|
|
726
|
-
inputs: ['density', 'disabled', 'icon', 'label', 'rovingFocusVisible', 'softDisabled']
|
|
727
|
-
})
|
|
728
|
-
], MdFabMenuItem);
|
|
729
|
-
export { MdFabMenuItem };
|
|
730
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdFabMenuItem, decorators: [{
|
|
731
|
-
type: Component,
|
|
732
|
-
args: [{
|
|
733
|
-
selector: 'md-fab-menu-item',
|
|
734
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
735
|
-
template: '<ng-content></ng-content>',
|
|
736
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
737
|
-
inputs: ['density', 'disabled', 'icon', 'label', 'rovingFocusVisible', 'softDisabled'],
|
|
738
|
-
standalone: true
|
|
739
|
-
}]
|
|
740
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
741
|
-
let MdIconButton = class MdIconButton {
|
|
742
|
-
constructor(c, r, z) {
|
|
743
|
-
this.z = z;
|
|
744
|
-
c.detach();
|
|
745
|
-
this.el = r.nativeElement;
|
|
746
|
-
proxyOutputs(this, this.el, ['mdClick']);
|
|
747
|
-
}
|
|
748
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdIconButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
749
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdIconButton, isStandalone: true, selector: "md-icon-button", inputs: { buttonWidth: "buttonWidth", density: "density", disabled: "disabled", href: "href", icon: "icon", ripple: "ripple", selected: "selected", selectedIcon: "selectedIcon", shape: "shape", shapeMorph: "shapeMorph", size: "size", softDisabled: "softDisabled", target: "target", toggle: "toggle", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
750
|
-
};
|
|
751
|
-
MdIconButton = __decorate([
|
|
752
|
-
ProxyCmp({
|
|
753
|
-
defineCustomElementFn: defineMdIconButton,
|
|
754
|
-
inputs: ['buttonWidth', 'density', 'disabled', 'href', 'icon', 'ripple', 'selected', 'selectedIcon', 'shape', 'shapeMorph', 'size', 'softDisabled', 'target', 'toggle', 'variant']
|
|
755
|
-
})
|
|
756
|
-
], MdIconButton);
|
|
757
|
-
export { MdIconButton };
|
|
758
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdIconButton, decorators: [{
|
|
759
|
-
type: Component,
|
|
760
|
-
args: [{
|
|
761
|
-
selector: 'md-icon-button',
|
|
762
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
763
|
-
template: '<ng-content></ng-content>',
|
|
764
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
765
|
-
inputs: ['buttonWidth', 'density', 'disabled', 'href', 'icon', 'ripple', 'selected', 'selectedIcon', 'shape', 'shapeMorph', 'size', 'softDisabled', 'target', 'toggle', 'variant'],
|
|
766
|
-
standalone: true
|
|
767
|
-
}]
|
|
768
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
769
|
-
let MdLineChart = class MdLineChart {
|
|
770
|
-
constructor(c, r, z) {
|
|
771
|
-
this.z = z;
|
|
772
|
-
c.detach();
|
|
773
|
-
this.el = r.nativeElement;
|
|
774
|
-
proxyOutputs(this, this.el, ['mdMarkerClick', 'mdLineClick', 'mdAreaClick', 'mdAxisClick', 'mdLegendClick', 'mdHover', 'mdReady', 'mdZoom']);
|
|
775
|
-
}
|
|
776
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdLineChart, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
777
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdLineChart, isStandalone: true, selector: "md-line-chart", inputs: { animation: "animation", animationDuration: "animationDuration", area: "area", axisTicks: "axisTicks", connectNulls: "connectNulls", curve: "curve", density: "density", grid: "grid", heightProp: "heightProp", inverted: "inverted", label: "label", labelEmpty: "labelEmpty", labelPlot: "labelPlot", labelPoint: "labelPoint", labelZoomEnd: "labelZoomEnd", labelZoomStart: "labelZoomStart", legend: "legend", lineWidth: "lineWidth", loading: "loading", loadingLabel: "loadingLabel", locale: "locale", markLines: "markLines", markSize: "markSize", noAnimation: "noAnimation", series: "series", seriesLabels: "seriesLabels", showLabels: "showLabels", showLine: "showLine", showMarks: "showMarks", stack: "stack", subtitle: "subtitle", summary: "summary", tableLabels: "tableLabels", titleAlign: "titleAlign", tooltip: "tooltip", tooltipRenderer: "tooltipRenderer", valueFormatter: "valueFormatter", xAxis: "xAxis", yAxes: "yAxes", yAxis: "yAxis", zoom: "zoom" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
778
|
-
};
|
|
779
|
-
MdLineChart = __decorate([
|
|
780
|
-
ProxyCmp({
|
|
781
|
-
defineCustomElementFn: defineMdLineChart,
|
|
782
|
-
inputs: ['animation', 'animationDuration', 'area', 'axisTicks', 'connectNulls', 'curve', 'density', 'grid', 'heightProp', 'inverted', 'label', 'labelEmpty', 'labelPlot', 'labelPoint', 'labelZoomEnd', 'labelZoomStart', 'legend', 'lineWidth', 'loading', 'loadingLabel', 'locale', 'markLines', 'markSize', 'noAnimation', 'series', 'seriesLabels', 'showLabels', 'showLine', 'showMarks', 'stack', 'subtitle', 'summary', 'tableLabels', 'titleAlign', 'tooltip', 'tooltipRenderer', 'valueFormatter', 'xAxis', 'yAxes', 'yAxis', 'zoom'],
|
|
783
|
-
methods: ['refreshTheme', 'resize', 'replay', 'toDataURL', 'getInstance', 'setZoom', 'resetZoom']
|
|
784
|
-
})
|
|
785
|
-
], MdLineChart);
|
|
786
|
-
export { MdLineChart };
|
|
787
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdLineChart, decorators: [{
|
|
788
|
-
type: Component,
|
|
789
|
-
args: [{
|
|
790
|
-
selector: 'md-line-chart',
|
|
791
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
792
|
-
template: '<ng-content></ng-content>',
|
|
793
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
794
|
-
inputs: ['animation', 'animationDuration', 'area', 'axisTicks', 'connectNulls', 'curve', 'density', 'grid', 'heightProp', 'inverted', 'label', 'labelEmpty', 'labelPlot', 'labelPoint', 'labelZoomEnd', 'labelZoomStart', 'legend', 'lineWidth', 'loading', 'loadingLabel', 'locale', 'markLines', 'markSize', 'noAnimation', 'series', 'seriesLabels', 'showLabels', 'showLine', 'showMarks', 'stack', 'subtitle', 'summary', 'tableLabels', 'titleAlign', 'tooltip', 'tooltipRenderer', 'valueFormatter', 'xAxis', 'yAxes', 'yAxis', 'zoom'],
|
|
795
|
-
standalone: true
|
|
796
|
-
}]
|
|
797
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
798
|
-
let MdList = class MdList {
|
|
799
|
-
constructor(c, r, z) {
|
|
800
|
-
this.z = z;
|
|
801
|
-
c.detach();
|
|
802
|
-
this.el = r.nativeElement;
|
|
803
|
-
proxyOutputs(this, this.el, ['mdSelect', 'mdActivate', 'mdReorder']);
|
|
804
|
-
}
|
|
805
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
806
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdList, isStandalone: true, selector: "md-list", inputs: { density: "density", interactionMode: "interactionMode", label: "label", labelledby: "labelledby", listStyle: "listStyle", reorderable: "reorderable", roleOverride: "roleOverride", selectionMode: "selectionMode" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
807
|
-
};
|
|
808
|
-
MdList = __decorate([
|
|
809
|
-
ProxyCmp({
|
|
810
|
-
defineCustomElementFn: defineMdList,
|
|
811
|
-
inputs: ['density', 'interactionMode', 'label', 'labelledby', 'listStyle', 'reorderable', 'roleOverride', 'selectionMode'],
|
|
812
|
-
methods: ['activateNext', 'activatePrevious', 'selectItem', 'getSelectedIndices']
|
|
813
|
-
})
|
|
814
|
-
], MdList);
|
|
815
|
-
export { MdList };
|
|
816
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdList, decorators: [{
|
|
817
|
-
type: Component,
|
|
818
|
-
args: [{
|
|
819
|
-
selector: 'md-list',
|
|
820
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
821
|
-
template: '<ng-content></ng-content>',
|
|
822
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
823
|
-
inputs: ['density', 'interactionMode', 'label', 'labelledby', 'listStyle', 'reorderable', 'roleOverride', 'selectionMode'],
|
|
824
|
-
standalone: true
|
|
825
|
-
}]
|
|
826
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
827
|
-
let MdListItem = class MdListItem {
|
|
828
|
-
constructor(c, r, z) {
|
|
829
|
-
this.z = z;
|
|
830
|
-
c.detach();
|
|
831
|
-
this.el = r.nativeElement;
|
|
832
|
-
proxyOutputs(this, this.el, ['mdClick', 'mdItemClick', 'mdItemSelect', 'mdRequestActivation', 'mdItemRequestReorder', 'mdExpand']);
|
|
833
|
-
}
|
|
834
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdListItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
835
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdListItem, isStandalone: true, selector: "md-list-item", inputs: { containerRole: "containerRole", density: "density", disabled: "disabled", expandable: "expandable", expanded: "expanded", headline: "headline", href: "href", interactionMode: "interactionMode", leadingAvatar: "leadingAvatar", leadingAvatarAlt: "leadingAvatarAlt", leadingAvatarLabel: "leadingAvatarLabel", leadingAvatarName: "leadingAvatarName", leadingIcon: "leadingIcon", leadingImage: "leadingImage", leadingImageAlt: "leadingImageAlt", lines: "lines", overline: "overline", reorderable: "reorderable", rovingFocusVisible: "rovingFocusVisible", selected: "selected", selectionMode: "selectionMode", softDisabled: "softDisabled", supportingText: "supportingText", tabbable: "tabbable", target: "target", trailingIcon: "trailingIcon", trailingSupportingText: "trailingSupportingText", type: "type" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
836
|
-
};
|
|
837
|
-
MdListItem = __decorate([
|
|
838
|
-
ProxyCmp({
|
|
839
|
-
defineCustomElementFn: defineMdListItem,
|
|
840
|
-
inputs: ['containerRole', 'density', 'disabled', 'expandable', 'expanded', 'headline', 'href', 'interactionMode', 'leadingAvatar', 'leadingAvatarAlt', 'leadingAvatarLabel', 'leadingAvatarName', 'leadingIcon', 'leadingImage', 'leadingImageAlt', 'lines', 'overline', 'reorderable', 'rovingFocusVisible', 'selected', 'selectionMode', 'softDisabled', 'supportingText', 'tabbable', 'target', 'trailingIcon', 'trailingSupportingText', 'type'],
|
|
841
|
-
methods: ['setFocus', 'focusItem', 'toggle', 'expand', 'collapse']
|
|
842
|
-
})
|
|
843
|
-
], MdListItem);
|
|
844
|
-
export { MdListItem };
|
|
845
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdListItem, decorators: [{
|
|
846
|
-
type: Component,
|
|
847
|
-
args: [{
|
|
848
|
-
selector: 'md-list-item',
|
|
849
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
850
|
-
template: '<ng-content></ng-content>',
|
|
851
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
852
|
-
inputs: ['containerRole', 'density', 'disabled', 'expandable', 'expanded', 'headline', 'href', 'interactionMode', 'leadingAvatar', 'leadingAvatarAlt', 'leadingAvatarLabel', 'leadingAvatarName', 'leadingIcon', 'leadingImage', 'leadingImageAlt', 'lines', 'overline', 'reorderable', 'rovingFocusVisible', 'selected', 'selectionMode', 'softDisabled', 'supportingText', 'tabbable', 'target', 'trailingIcon', 'trailingSupportingText', 'type'],
|
|
853
|
-
standalone: true
|
|
854
|
-
}]
|
|
855
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
856
|
-
let MdLoadingIndicator = class MdLoadingIndicator {
|
|
857
|
-
constructor(c, r, z) {
|
|
858
|
-
this.z = z;
|
|
859
|
-
c.detach();
|
|
860
|
-
this.el = r.nativeElement;
|
|
861
|
-
}
|
|
862
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdLoadingIndicator, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
863
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdLoadingIndicator, isStandalone: true, selector: "md-loading-indicator", inputs: { density: "density", label: "label", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
864
|
-
};
|
|
865
|
-
MdLoadingIndicator = __decorate([
|
|
866
|
-
ProxyCmp({
|
|
867
|
-
defineCustomElementFn: defineMdLoadingIndicator,
|
|
868
|
-
inputs: ['density', 'label', 'variant']
|
|
869
|
-
})
|
|
870
|
-
], MdLoadingIndicator);
|
|
871
|
-
export { MdLoadingIndicator };
|
|
872
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdLoadingIndicator, decorators: [{
|
|
873
|
-
type: Component,
|
|
874
|
-
args: [{
|
|
875
|
-
selector: 'md-loading-indicator',
|
|
876
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
877
|
-
template: '<ng-content></ng-content>',
|
|
878
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
879
|
-
inputs: ['density', 'label', 'variant'],
|
|
880
|
-
standalone: true
|
|
881
|
-
}]
|
|
882
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
883
|
-
let MdMenu = class MdMenu {
|
|
884
|
-
constructor(c, r, z) {
|
|
885
|
-
this.z = z;
|
|
886
|
-
c.detach();
|
|
887
|
-
this.el = r.nativeElement;
|
|
888
|
-
proxyOutputs(this, this.el, ['mdOpen', 'mdClose']);
|
|
889
|
-
}
|
|
890
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdMenu, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
891
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdMenu, isStandalone: true, selector: "md-menu", inputs: { anchor: "anchor", autoFocus: "autoFocus", density: "density", emptyText: "emptyText", layout: "layout", listLabel: "listLabel", listbox: "listbox", matchAnchorWidth: "matchAnchorWidth", maxHeight: "maxHeight", open: "open", persistent: "persistent", placement: "placement", quick: "quick", responsive: "responsive", useGap: "useGap", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
892
|
-
};
|
|
893
|
-
MdMenu = __decorate([
|
|
894
|
-
ProxyCmp({
|
|
895
|
-
defineCustomElementFn: defineMdMenu,
|
|
896
|
-
inputs: ['anchor', 'autoFocus', 'density', 'emptyText', 'layout', 'listLabel', 'listbox', 'matchAnchorWidth', 'maxHeight', 'open', 'persistent', 'placement', 'quick', 'responsive', 'useGap', 'variant'],
|
|
897
|
-
methods: ['setComboboxElement', 'setVirtualProvider', 'getScrollViewport', 'show', 'reposition', 'close']
|
|
898
|
-
})
|
|
899
|
-
], MdMenu);
|
|
900
|
-
export { MdMenu };
|
|
901
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdMenu, decorators: [{
|
|
902
|
-
type: Component,
|
|
903
|
-
args: [{
|
|
904
|
-
selector: 'md-menu',
|
|
905
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
906
|
-
template: '<ng-content></ng-content>',
|
|
907
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
908
|
-
inputs: ['anchor', 'autoFocus', 'density', 'emptyText', 'layout', 'listLabel', 'listbox', 'matchAnchorWidth', 'maxHeight', 'open', 'persistent', 'placement', 'quick', 'responsive', 'useGap', 'variant'],
|
|
909
|
-
standalone: true
|
|
910
|
-
}]
|
|
911
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
912
|
-
let MdMenuItem = class MdMenuItem {
|
|
913
|
-
constructor(c, r, z) {
|
|
914
|
-
this.z = z;
|
|
915
|
-
c.detach();
|
|
916
|
-
this.el = r.nativeElement;
|
|
917
|
-
proxyOutputs(this, this.el, ['mdClick']);
|
|
918
|
-
}
|
|
919
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdMenuItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
920
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdMenuItem, isStandalone: true, selector: "md-menu-item", inputs: { badge: "badge", checkPosition: "checkPosition", density: "density", disabled: "disabled", divider: "divider", gap: "gap", headline: "headline", indeterminate: "indeterminate", keepOpen: "keepOpen", presentation: "presentation", roleOverride: "roleOverride", selected: "selected", supportingText: "supportingText", trailingText: "trailingText", type: "type" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
921
|
-
};
|
|
922
|
-
MdMenuItem = __decorate([
|
|
923
|
-
ProxyCmp({
|
|
924
|
-
defineCustomElementFn: defineMdMenuItem,
|
|
925
|
-
inputs: ['badge', 'checkPosition', 'density', 'disabled', 'divider', 'gap', 'headline', 'indeterminate', 'keepOpen', 'presentation', 'roleOverride', 'selected', 'supportingText', 'trailingText', 'type']
|
|
926
|
-
})
|
|
927
|
-
], MdMenuItem);
|
|
928
|
-
export { MdMenuItem };
|
|
929
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdMenuItem, decorators: [{
|
|
930
|
-
type: Component,
|
|
931
|
-
args: [{
|
|
932
|
-
selector: 'md-menu-item',
|
|
933
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
934
|
-
template: '<ng-content></ng-content>',
|
|
935
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
936
|
-
inputs: ['badge', 'checkPosition', 'density', 'disabled', 'divider', 'gap', 'headline', 'indeterminate', 'keepOpen', 'presentation', 'roleOverride', 'selected', 'supportingText', 'trailingText', 'type'],
|
|
937
|
-
standalone: true
|
|
938
|
-
}]
|
|
939
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
940
|
-
let MdMenuItemGroup = class MdMenuItemGroup {
|
|
941
|
-
constructor(c, r, z) {
|
|
942
|
-
this.z = z;
|
|
943
|
-
c.detach();
|
|
944
|
-
this.el = r.nativeElement;
|
|
945
|
-
}
|
|
946
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdMenuItemGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
947
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdMenuItemGroup, isStandalone: true, selector: "md-menu-item-group", inputs: { density: "density", label: "label" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
948
|
-
};
|
|
949
|
-
MdMenuItemGroup = __decorate([
|
|
950
|
-
ProxyCmp({
|
|
951
|
-
defineCustomElementFn: defineMdMenuItemGroup,
|
|
952
|
-
inputs: ['density', 'label']
|
|
953
|
-
})
|
|
954
|
-
], MdMenuItemGroup);
|
|
955
|
-
export { MdMenuItemGroup };
|
|
956
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdMenuItemGroup, decorators: [{
|
|
957
|
-
type: Component,
|
|
958
|
-
args: [{
|
|
959
|
-
selector: 'md-menu-item-group',
|
|
960
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
961
|
-
template: '<ng-content></ng-content>',
|
|
962
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
963
|
-
inputs: ['density', 'label'],
|
|
964
|
-
standalone: true
|
|
965
|
-
}]
|
|
966
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
967
|
-
let MdMeter = class MdMeter {
|
|
968
|
-
constructor(c, r, z) {
|
|
969
|
-
this.z = z;
|
|
970
|
-
c.detach();
|
|
971
|
-
this.el = r.nativeElement;
|
|
972
|
-
}
|
|
973
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdMeter, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
974
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdMeter, isStandalone: true, selector: "md-meter", inputs: { color: "color", density: "density", formatOptions: "formatOptions", label: "label", locale: "locale", max: "max", min: "min", showLabel: "showLabel", showValue: "showValue", size: "size", thickness: "thickness", value: "value", valueText: "valueText", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
975
|
-
};
|
|
976
|
-
MdMeter = __decorate([
|
|
977
|
-
ProxyCmp({
|
|
978
|
-
defineCustomElementFn: defineMdMeter,
|
|
979
|
-
inputs: ['color', 'density', 'formatOptions', 'label', 'locale', 'max', 'min', 'showLabel', 'showValue', 'size', 'thickness', 'value', 'valueText', 'variant']
|
|
980
|
-
})
|
|
981
|
-
], MdMeter);
|
|
982
|
-
export { MdMeter };
|
|
983
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdMeter, decorators: [{
|
|
984
|
-
type: Component,
|
|
985
|
-
args: [{
|
|
986
|
-
selector: 'md-meter',
|
|
987
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
988
|
-
template: '<ng-content></ng-content>',
|
|
989
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
990
|
-
inputs: ['color', 'density', 'formatOptions', 'label', 'locale', 'max', 'min', 'showLabel', 'showValue', 'size', 'thickness', 'value', 'valueText', 'variant'],
|
|
991
|
-
standalone: true
|
|
992
|
-
}]
|
|
993
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
994
|
-
let MdMultiSelect = class MdMultiSelect {
|
|
995
|
-
constructor(c, r, z) {
|
|
996
|
-
this.z = z;
|
|
997
|
-
c.detach();
|
|
998
|
-
this.el = r.nativeElement;
|
|
999
|
-
proxyOutputs(this, this.el, ['mdChange', 'mdOpen', 'mdClose', 'mdRemove', 'mdClear', 'mdValidityChange']);
|
|
1000
|
-
}
|
|
1001
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdMultiSelect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1002
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdMultiSelect, isStandalone: true, selector: "md-multi-select", inputs: { chipOverflow: "chipOverflow", chipPosition: "chipPosition", clearIcon: "clearIcon", clearLabel: "clearLabel", clearable: "clearable", countFormatter: "countFormatter", density: "density", disabled: "disabled", displayMode: "displayMode", dropdownIcon: "dropdownIcon", error: "error", errorText: "errorText", filterLabel: "filterLabel", filterMode: "filterMode", filterable: "filterable", label: "label", loading: "loading", loadingText: "loadingText", matchTriggerWidth: "matchTriggerWidth", maxHeight: "maxHeight", maxSelected: "maxSelected", name: "name", noOptionsText: "noOptionsText", noResultsText: "noResultsText", open: "open", options: "options", placeholder: "placeholder", placement: "placement", required: "required", reserveSupportingSpace: "reserveSupportingSpace", rowHeight: "rowHeight", searchPlaceholder: "searchPlaceholder", searchingLabel: "searchingLabel", selectAllLabel: "selectAllLabel", showSelectAll: "showSelectAll", softDisabled: "softDisabled", supportingText: "supportingText", trigger: "trigger", triggerIcon: "triggerIcon", triggerLabel: "triggerLabel", value: "value", valueMissingLabel: "valueMissingLabel", variant: "variant", virtualize: "virtualize" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1003
|
-
};
|
|
1004
|
-
MdMultiSelect = __decorate([
|
|
1005
|
-
ProxyCmp({
|
|
1006
|
-
defineCustomElementFn: defineMdMultiSelect,
|
|
1007
|
-
inputs: ['chipOverflow', 'chipPosition', 'clearIcon', 'clearLabel', 'clearable', 'countFormatter', 'density', 'disabled', 'displayMode', 'dropdownIcon', 'error', 'errorText', 'filterLabel', 'filterMode', 'filterable', 'label', 'loading', 'loadingText', 'matchTriggerWidth', 'maxHeight', 'maxSelected', 'name', 'noOptionsText', 'noResultsText', 'open', 'options', 'placeholder', 'placement', 'required', 'reserveSupportingSpace', 'rowHeight', 'searchPlaceholder', 'searchingLabel', 'selectAllLabel', 'showSelectAll', 'softDisabled', 'supportingText', 'trigger', 'triggerIcon', 'triggerLabel', 'value', 'valueMissingLabel', 'variant', 'virtualize'],
|
|
1008
|
-
methods: ['show', 'close', 'focusTrigger', 'reset', 'loadOptions', 'setQuery', 'getLabels', 'getValidity', 'checkValidity', 'reportValidity', 'setCustomValidity']
|
|
1009
|
-
})
|
|
1010
|
-
], MdMultiSelect);
|
|
1011
|
-
export { MdMultiSelect };
|
|
1012
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdMultiSelect, decorators: [{
|
|
1013
|
-
type: Component,
|
|
1014
|
-
args: [{
|
|
1015
|
-
selector: 'md-multi-select',
|
|
1016
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1017
|
-
template: '<ng-content></ng-content>',
|
|
1018
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1019
|
-
inputs: ['chipOverflow', 'chipPosition', 'clearIcon', 'clearLabel', 'clearable', 'countFormatter', 'density', 'disabled', 'displayMode', 'dropdownIcon', 'error', 'errorText', 'filterLabel', 'filterMode', 'filterable', 'label', 'loading', 'loadingText', 'matchTriggerWidth', 'maxHeight', 'maxSelected', 'name', 'noOptionsText', 'noResultsText', 'open', 'options', 'placeholder', 'placement', 'required', 'reserveSupportingSpace', 'rowHeight', 'searchPlaceholder', 'searchingLabel', 'selectAllLabel', 'showSelectAll', 'softDisabled', 'supportingText', 'trigger', 'triggerIcon', 'triggerLabel', 'value', 'valueMissingLabel', 'variant', 'virtualize'],
|
|
1020
|
-
standalone: true
|
|
1021
|
-
}]
|
|
1022
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1023
|
-
let MdNavigationBar = class MdNavigationBar {
|
|
1024
|
-
constructor(c, r, z) {
|
|
1025
|
-
this.z = z;
|
|
1026
|
-
c.detach();
|
|
1027
|
-
this.el = r.nativeElement;
|
|
1028
|
-
proxyOutputs(this, this.el, ['mdChange']);
|
|
1029
|
-
}
|
|
1030
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdNavigationBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1031
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdNavigationBar, isStandalone: true, selector: "md-navigation-bar", inputs: { activeIndex: "activeIndex", density: "density", labelBehavior: "labelBehavior", manualActivation: "manualActivation" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1032
|
-
};
|
|
1033
|
-
MdNavigationBar = __decorate([
|
|
1034
|
-
ProxyCmp({
|
|
1035
|
-
defineCustomElementFn: defineMdNavigationBar,
|
|
1036
|
-
inputs: ['activeIndex', 'density', 'labelBehavior', 'manualActivation'],
|
|
1037
|
-
methods: ['select', 'focusTab']
|
|
1038
|
-
})
|
|
1039
|
-
], MdNavigationBar);
|
|
1040
|
-
export { MdNavigationBar };
|
|
1041
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdNavigationBar, decorators: [{
|
|
1042
|
-
type: Component,
|
|
1043
|
-
args: [{
|
|
1044
|
-
selector: 'md-navigation-bar',
|
|
1045
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1046
|
-
template: '<ng-content></ng-content>',
|
|
1047
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1048
|
-
inputs: ['activeIndex', 'density', 'labelBehavior', 'manualActivation'],
|
|
1049
|
-
standalone: true
|
|
1050
|
-
}]
|
|
1051
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1052
|
-
let MdNavigationRail = class MdNavigationRail {
|
|
1053
|
-
constructor(c, r, z) {
|
|
1054
|
-
this.z = z;
|
|
1055
|
-
c.detach();
|
|
1056
|
-
this.el = r.nativeElement;
|
|
1057
|
-
proxyOutputs(this, this.el, ['mdTabChange', 'mdExpand', 'mdCollapse']);
|
|
1058
|
-
}
|
|
1059
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdNavigationRail, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1060
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdNavigationRail, isStandalone: true, selector: "md-navigation-rail", inputs: { activeIndex: "activeIndex", alignment: "alignment", density: "density", disableFocusManagement: "disableFocusManagement", expandable: "expandable", fullHeight: "fullHeight", label: "label", labelVisibility: "labelVisibility", maxVisible: "maxVisible", modal: "modal", orientation: "orientation", overflowIcon: "overflowIcon", overflowLabel: "overflowLabel", toggleLabel: "toggleLabel", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1061
|
-
};
|
|
1062
|
-
MdNavigationRail = __decorate([
|
|
1063
|
-
ProxyCmp({
|
|
1064
|
-
defineCustomElementFn: defineMdNavigationRail,
|
|
1065
|
-
inputs: ['activeIndex', 'alignment', 'density', 'disableFocusManagement', 'expandable', 'fullHeight', 'label', 'labelVisibility', 'maxVisible', 'modal', 'orientation', 'overflowIcon', 'overflowLabel', 'toggleLabel', 'variant'],
|
|
1066
|
-
methods: ['expand', 'collapse', 'toggle', 'focusTab']
|
|
1067
|
-
})
|
|
1068
|
-
], MdNavigationRail);
|
|
1069
|
-
export { MdNavigationRail };
|
|
1070
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdNavigationRail, decorators: [{
|
|
1071
|
-
type: Component,
|
|
1072
|
-
args: [{
|
|
1073
|
-
selector: 'md-navigation-rail',
|
|
1074
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1075
|
-
template: '<ng-content></ng-content>',
|
|
1076
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1077
|
-
inputs: ['activeIndex', 'alignment', 'density', 'disableFocusManagement', 'expandable', 'fullHeight', 'label', 'labelVisibility', 'maxVisible', 'modal', 'orientation', 'overflowIcon', 'overflowLabel', 'toggleLabel', 'variant'],
|
|
1078
|
-
standalone: true
|
|
1079
|
-
}]
|
|
1080
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1081
|
-
let MdNavigationRailTab = class MdNavigationRailTab {
|
|
1082
|
-
constructor(c, r, z) {
|
|
1083
|
-
this.z = z;
|
|
1084
|
-
c.detach();
|
|
1085
|
-
this.el = r.nativeElement;
|
|
1086
|
-
proxyOutputs(this, this.el, ['mdTabClick', 'mdSubmenuToggle']);
|
|
1087
|
-
}
|
|
1088
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdNavigationRailTab, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1089
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdNavigationRailTab, isStandalone: true, selector: "md-navigation-rail-tab", inputs: { active: "active", badge: "badge", badgeValue: "badgeValue", density: "density", disabled: "disabled", expanded: "expanded", href: "href", icon: "icon", label: "label", labelVisibility: "labelVisibility", target: "target", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1090
|
-
};
|
|
1091
|
-
MdNavigationRailTab = __decorate([
|
|
1092
|
-
ProxyCmp({
|
|
1093
|
-
defineCustomElementFn: defineMdNavigationRailTab,
|
|
1094
|
-
inputs: ['active', 'badge', 'badgeValue', 'density', 'disabled', 'expanded', 'href', 'icon', 'label', 'labelVisibility', 'target', 'value'],
|
|
1095
|
-
methods: ['clearSubmenuSelection']
|
|
1096
|
-
})
|
|
1097
|
-
], MdNavigationRailTab);
|
|
1098
|
-
export { MdNavigationRailTab };
|
|
1099
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdNavigationRailTab, decorators: [{
|
|
1100
|
-
type: Component,
|
|
1101
|
-
args: [{
|
|
1102
|
-
selector: 'md-navigation-rail-tab',
|
|
1103
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1104
|
-
template: '<ng-content></ng-content>',
|
|
1105
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1106
|
-
inputs: ['active', 'badge', 'badgeValue', 'density', 'disabled', 'expanded', 'href', 'icon', 'label', 'labelVisibility', 'target', 'value'],
|
|
1107
|
-
standalone: true
|
|
1108
|
-
}]
|
|
1109
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1110
|
-
let MdNavigationTab = class MdNavigationTab {
|
|
1111
|
-
constructor(c, r, z) {
|
|
1112
|
-
this.z = z;
|
|
1113
|
-
c.detach();
|
|
1114
|
-
this.el = r.nativeElement;
|
|
1115
|
-
proxyOutputs(this, this.el, ['mdTabClick']);
|
|
1116
|
-
}
|
|
1117
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdNavigationTab, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1118
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdNavigationTab, isStandalone: true, selector: "md-navigation-tab", inputs: { active: "active", activeIcon: "activeIcon", badge: "badge", badgeMax: "badgeMax", badgeValue: "badgeValue", density: "density", disabled: "disabled", href: "href", icon: "icon", label: "label", labelBehavior: "labelBehavior", softDisabled: "softDisabled", target: "target" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1119
|
-
};
|
|
1120
|
-
MdNavigationTab = __decorate([
|
|
1121
|
-
ProxyCmp({
|
|
1122
|
-
defineCustomElementFn: defineMdNavigationTab,
|
|
1123
|
-
inputs: ['active', 'activeIcon', 'badge', 'badgeMax', 'badgeValue', 'density', 'disabled', 'href', 'icon', 'label', 'labelBehavior', 'softDisabled', 'target'],
|
|
1124
|
-
methods: ['focusEl']
|
|
1125
|
-
})
|
|
1126
|
-
], MdNavigationTab);
|
|
1127
|
-
export { MdNavigationTab };
|
|
1128
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdNavigationTab, decorators: [{
|
|
1129
|
-
type: Component,
|
|
1130
|
-
args: [{
|
|
1131
|
-
selector: 'md-navigation-tab',
|
|
1132
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1133
|
-
template: '<ng-content></ng-content>',
|
|
1134
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1135
|
-
inputs: ['active', 'activeIcon', 'badge', 'badgeMax', 'badgeValue', 'density', 'disabled', 'href', 'icon', 'label', 'labelBehavior', 'softDisabled', 'target'],
|
|
1136
|
-
standalone: true
|
|
1137
|
-
}]
|
|
1138
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1139
|
-
let MdNumberField = class MdNumberField {
|
|
1140
|
-
constructor(c, r, z) {
|
|
1141
|
-
this.z = z;
|
|
1142
|
-
c.detach();
|
|
1143
|
-
this.el = r.nativeElement;
|
|
1144
|
-
proxyOutputs(this, this.el, ['mdInput', 'mdChange', 'mdValidityChange']);
|
|
1145
|
-
}
|
|
1146
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdNumberField, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1147
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdNumberField, isStandalone: true, selector: "md-number-field", inputs: { allowOutOfRange: "allowOutOfRange", allowWheelScrub: "allowWheelScrub", decrementLabel: "decrementLabel", density: "density", disabled: "disabled", error: "error", errorText: "errorText", formatOptions: "formatOptions", incrementLabel: "incrementLabel", label: "label", largeStep: "largeStep", locale: "locale", max: "max", min: "min", name: "name", placeholder: "placeholder", readOnly: "readOnly", required: "required", reserveSupportingSpace: "reserveSupportingSpace", smallStep: "smallStep", snapOnStep: "snapOnStep", step: "step", steppers: "steppers", supportingText: "supportingText", value: "value", valueMissingLabel: "valueMissingLabel", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1148
|
-
};
|
|
1149
|
-
MdNumberField = __decorate([
|
|
1150
|
-
ProxyCmp({
|
|
1151
|
-
defineCustomElementFn: defineMdNumberField,
|
|
1152
|
-
inputs: ['allowOutOfRange', 'allowWheelScrub', 'decrementLabel', 'density', 'disabled', 'error', 'errorText', 'formatOptions', 'incrementLabel', 'label', 'largeStep', 'locale', 'max', 'min', 'name', 'placeholder', 'readOnly', 'required', 'reserveSupportingSpace', 'smallStep', 'snapOnStep', 'step', 'steppers', 'supportingText', 'value', 'valueMissingLabel', 'variant'],
|
|
1153
|
-
methods: ['setFocus', 'select', 'stepUp', 'stepDown', 'getValidity', 'checkValidity', 'reportValidity', 'setCustomValidity']
|
|
1154
|
-
})
|
|
1155
|
-
], MdNumberField);
|
|
1156
|
-
export { MdNumberField };
|
|
1157
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdNumberField, decorators: [{
|
|
1158
|
-
type: Component,
|
|
1159
|
-
args: [{
|
|
1160
|
-
selector: 'md-number-field',
|
|
1161
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1162
|
-
template: '<ng-content></ng-content>',
|
|
1163
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1164
|
-
inputs: ['allowOutOfRange', 'allowWheelScrub', 'decrementLabel', 'density', 'disabled', 'error', 'errorText', 'formatOptions', 'incrementLabel', 'label', 'largeStep', 'locale', 'max', 'min', 'name', 'placeholder', 'readOnly', 'required', 'reserveSupportingSpace', 'smallStep', 'snapOnStep', 'step', 'steppers', 'supportingText', 'value', 'valueMissingLabel', 'variant'],
|
|
1165
|
-
standalone: true
|
|
1166
|
-
}]
|
|
1167
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1168
|
-
let MdOrganizationChart = class MdOrganizationChart {
|
|
1169
|
-
constructor(c, r, z) {
|
|
1170
|
-
this.z = z;
|
|
1171
|
-
c.detach();
|
|
1172
|
-
this.el = r.nativeElement;
|
|
1173
|
-
proxyOutputs(this, this.el, ['mdSelectionChange', 'mdNodeToggle']);
|
|
1174
|
-
}
|
|
1175
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdOrganizationChart, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1176
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdOrganizationChart, isStandalone: true, selector: "md-organization-chart", inputs: { collapseLabel: "collapseLabel", collapsible: "collapsible", density: "density", expandLabel: "expandLabel", label: "label", nodes: "nodes", orientation: "orientation", selectedIds: "selectedIds", selectionMode: "selectionMode" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1177
|
-
};
|
|
1178
|
-
MdOrganizationChart = __decorate([
|
|
1179
|
-
ProxyCmp({
|
|
1180
|
-
defineCustomElementFn: defineMdOrganizationChart,
|
|
1181
|
-
inputs: ['collapseLabel', 'collapsible', 'density', 'expandLabel', 'label', 'nodes', 'orientation', 'selectedIds', 'selectionMode']
|
|
1182
|
-
})
|
|
1183
|
-
], MdOrganizationChart);
|
|
1184
|
-
export { MdOrganizationChart };
|
|
1185
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdOrganizationChart, decorators: [{
|
|
1186
|
-
type: Component,
|
|
1187
|
-
args: [{
|
|
1188
|
-
selector: 'md-organization-chart',
|
|
1189
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1190
|
-
template: '<ng-content></ng-content>',
|
|
1191
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1192
|
-
inputs: ['collapseLabel', 'collapsible', 'density', 'expandLabel', 'label', 'nodes', 'orientation', 'selectedIds', 'selectionMode'],
|
|
1193
|
-
standalone: true
|
|
1194
|
-
}]
|
|
1195
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1196
|
-
let MdOtpField = class MdOtpField {
|
|
1197
|
-
constructor(c, r, z) {
|
|
1198
|
-
this.z = z;
|
|
1199
|
-
c.detach();
|
|
1200
|
-
this.el = r.nativeElement;
|
|
1201
|
-
proxyOutputs(this, this.el, ['mdInput', 'mdChange', 'mdComplete', 'mdInvalidInput', 'mdValidityChange']);
|
|
1202
|
-
}
|
|
1203
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdOtpField, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1204
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdOtpField, isStandalone: true, selector: "md-otp-field", inputs: { autoSubmit: "autoSubmit", cellLabelTemplate: "cellLabelTemplate", density: "density", disabled: "disabled", error: "error", errorText: "errorText", groupSize: "groupSize", incompleteLabel: "incompleteLabel", inputMode: "inputMode", label: "label", length: "length", mask: "mask", name: "name", readOnly: "readOnly", required: "required", reserveSupportingSpace: "reserveSupportingSpace", supportingText: "supportingText", transform: "transform", validationType: "validationType", value: "value", valueMissingLabel: "valueMissingLabel" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1205
|
-
};
|
|
1206
|
-
MdOtpField = __decorate([
|
|
1207
|
-
ProxyCmp({
|
|
1208
|
-
defineCustomElementFn: defineMdOtpField,
|
|
1209
|
-
inputs: ['autoSubmit', 'cellLabelTemplate', 'density', 'disabled', 'error', 'errorText', 'groupSize', 'incompleteLabel', 'inputMode', 'label', 'length', 'mask', 'name', 'readOnly', 'required', 'reserveSupportingSpace', 'supportingText', 'transform', 'validationType', 'value', 'valueMissingLabel'],
|
|
1210
|
-
methods: ['setFocus', 'clear', 'getValidity', 'setCustomValidity', 'checkValidity', 'reportValidity']
|
|
1211
|
-
})
|
|
1212
|
-
], MdOtpField);
|
|
1213
|
-
export { MdOtpField };
|
|
1214
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdOtpField, decorators: [{
|
|
1215
|
-
type: Component,
|
|
1216
|
-
args: [{
|
|
1217
|
-
selector: 'md-otp-field',
|
|
1218
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1219
|
-
template: '<ng-content></ng-content>',
|
|
1220
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1221
|
-
inputs: ['autoSubmit', 'cellLabelTemplate', 'density', 'disabled', 'error', 'errorText', 'groupSize', 'incompleteLabel', 'inputMode', 'label', 'length', 'mask', 'name', 'readOnly', 'required', 'reserveSupportingSpace', 'supportingText', 'transform', 'validationType', 'value', 'valueMissingLabel'],
|
|
1222
|
-
standalone: true
|
|
1223
|
-
}]
|
|
1224
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1225
|
-
let MdPieChart = class MdPieChart {
|
|
1226
|
-
constructor(c, r, z) {
|
|
1227
|
-
this.z = z;
|
|
1228
|
-
c.detach();
|
|
1229
|
-
this.el = r.nativeElement;
|
|
1230
|
-
proxyOutputs(this, this.el, ['mdSliceClick', 'mdLegendClick', 'mdReady']);
|
|
1231
|
-
}
|
|
1232
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdPieChart, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1233
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdPieChart, isStandalone: true, selector: "md-pie-chart", inputs: { animation: "animation", animationDuration: "animationDuration", cornerRadius: "cornerRadius", data: "data", density: "density", endAngle: "endAngle", gradient: "gradient", heightProp: "heightProp", highlight: "highlight", innerRadius: "innerRadius", label: "label", labelEmpty: "labelEmpty", labelMode: "labelMode", labelPlot: "labelPlot", labelPoint: "labelPoint", legend: "legend", loading: "loading", loadingLabel: "loadingLabel", locale: "locale", monochrome: "monochrome", noAnimation: "noAnimation", outerRadius: "outerRadius", paddingAngle: "paddingAngle", ringWidths: "ringWidths", showLabels: "showLabels", startAngle: "startAngle", subtitle: "subtitle", summary: "summary", tableLabels: "tableLabels", titleAlign: "titleAlign", tooltip: "tooltip", tooltipRenderer: "tooltipRenderer", valueFormatter: "valueFormatter" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1234
|
-
};
|
|
1235
|
-
MdPieChart = __decorate([
|
|
1236
|
-
ProxyCmp({
|
|
1237
|
-
defineCustomElementFn: defineMdPieChart,
|
|
1238
|
-
inputs: ['animation', 'animationDuration', 'cornerRadius', 'data', 'density', 'endAngle', 'gradient', 'heightProp', 'highlight', 'innerRadius', 'label', 'labelEmpty', 'labelMode', 'labelPlot', 'labelPoint', 'legend', 'loading', 'loadingLabel', 'locale', 'monochrome', 'noAnimation', 'outerRadius', 'paddingAngle', 'ringWidths', 'showLabels', 'startAngle', 'subtitle', 'summary', 'tableLabels', 'titleAlign', 'tooltip', 'tooltipRenderer', 'valueFormatter'],
|
|
1239
|
-
methods: ['refreshTheme', 'resize', 'replay', 'drill', 'toDataURL', 'getInstance']
|
|
1240
|
-
})
|
|
1241
|
-
], MdPieChart);
|
|
1242
|
-
export { MdPieChart };
|
|
1243
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdPieChart, decorators: [{
|
|
1244
|
-
type: Component,
|
|
1245
|
-
args: [{
|
|
1246
|
-
selector: 'md-pie-chart',
|
|
1247
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1248
|
-
template: '<ng-content></ng-content>',
|
|
1249
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1250
|
-
inputs: ['animation', 'animationDuration', 'cornerRadius', 'data', 'density', 'endAngle', 'gradient', 'heightProp', 'highlight', 'innerRadius', 'label', 'labelEmpty', 'labelMode', 'labelPlot', 'labelPoint', 'legend', 'loading', 'loadingLabel', 'locale', 'monochrome', 'noAnimation', 'outerRadius', 'paddingAngle', 'ringWidths', 'showLabels', 'startAngle', 'subtitle', 'summary', 'tableLabels', 'titleAlign', 'tooltip', 'tooltipRenderer', 'valueFormatter'],
|
|
1251
|
-
standalone: true
|
|
1252
|
-
}]
|
|
1253
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1254
|
-
let MdProgressIndicator = class MdProgressIndicator {
|
|
1255
|
-
constructor(c, r, z) {
|
|
1256
|
-
this.z = z;
|
|
1257
|
-
c.detach();
|
|
1258
|
-
this.el = r.nativeElement;
|
|
1259
|
-
proxyOutputs(this, this.el, ['mdComplete']);
|
|
1260
|
-
}
|
|
1261
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdProgressIndicator, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1262
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdProgressIndicator, isStandalone: true, selector: "md-progress-indicator", inputs: { complete: "complete", density: "density", fourColor: "fourColor", indeterminate: "indeterminate", label: "label", max: "max", size: "size", thickness: "thickness", value: "value", variant: "variant", wave: "wave", waveAmplitude: "waveAmplitude", waveLength: "waveLength", waveSpeed: "waveSpeed" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1263
|
-
};
|
|
1264
|
-
MdProgressIndicator = __decorate([
|
|
1265
|
-
ProxyCmp({
|
|
1266
|
-
defineCustomElementFn: defineMdProgressIndicator,
|
|
1267
|
-
inputs: ['complete', 'density', 'fourColor', 'indeterminate', 'label', 'max', 'size', 'thickness', 'value', 'variant', 'wave', 'waveAmplitude', 'waveLength', 'waveSpeed']
|
|
1268
|
-
})
|
|
1269
|
-
], MdProgressIndicator);
|
|
1270
|
-
export { MdProgressIndicator };
|
|
1271
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdProgressIndicator, decorators: [{
|
|
1272
|
-
type: Component,
|
|
1273
|
-
args: [{
|
|
1274
|
-
selector: 'md-progress-indicator',
|
|
1275
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1276
|
-
template: '<ng-content></ng-content>',
|
|
1277
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1278
|
-
inputs: ['complete', 'density', 'fourColor', 'indeterminate', 'label', 'max', 'size', 'thickness', 'value', 'variant', 'wave', 'waveAmplitude', 'waveLength', 'waveSpeed'],
|
|
1279
|
-
standalone: true
|
|
1280
|
-
}]
|
|
1281
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1282
|
-
let MdRadio = class MdRadio {
|
|
1283
|
-
constructor(c, r, z) {
|
|
1284
|
-
this.z = z;
|
|
1285
|
-
c.detach();
|
|
1286
|
-
this.el = r.nativeElement;
|
|
1287
|
-
proxyOutputs(this, this.el, ['mdChange', 'mdFocus', 'mdBlur', 'mdValidityChange']);
|
|
1288
|
-
}
|
|
1289
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdRadio, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1290
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdRadio, isStandalone: true, selector: "md-radio", inputs: { checked: "checked", density: "density", disabled: "disabled", name: "name", required: "required", softDisabled: "softDisabled", value: "value", valueMissingLabel: "valueMissingLabel" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1291
|
-
};
|
|
1292
|
-
MdRadio = __decorate([
|
|
1293
|
-
ProxyCmp({
|
|
1294
|
-
defineCustomElementFn: defineMdRadio,
|
|
1295
|
-
inputs: ['checked', 'density', 'disabled', 'name', 'required', 'softDisabled', 'value', 'valueMissingLabel'],
|
|
1296
|
-
methods: ['syncValidityFromGroup', 'getValidity', 'checkValidity', 'reportValidity', 'setCustomValidity', 'setFocus', 'setBlur', 'select']
|
|
1297
|
-
})
|
|
1298
|
-
], MdRadio);
|
|
1299
|
-
export { MdRadio };
|
|
1300
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdRadio, decorators: [{
|
|
1301
|
-
type: Component,
|
|
1302
|
-
args: [{
|
|
1303
|
-
selector: 'md-radio',
|
|
1304
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1305
|
-
template: '<ng-content></ng-content>',
|
|
1306
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1307
|
-
inputs: ['checked', 'density', 'disabled', 'name', 'required', 'softDisabled', 'value', 'valueMissingLabel'],
|
|
1308
|
-
standalone: true
|
|
1309
|
-
}]
|
|
1310
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1311
|
-
let MdRating = class MdRating {
|
|
1312
|
-
constructor(c, r, z) {
|
|
1313
|
-
this.z = z;
|
|
1314
|
-
c.detach();
|
|
1315
|
-
this.el = r.nativeElement;
|
|
1316
|
-
proxyOutputs(this, this.el, ['mdHover', 'mdChange']);
|
|
1317
|
-
}
|
|
1318
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdRating, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1319
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdRating, isStandalone: true, selector: "md-rating", inputs: { defaultValue: "defaultValue", density: "density", disabled: "disabled", emptyIcon: "emptyIcon", getLabel: "getLabel", hover: "hover", icon: "icon", max: "max", name: "name", outlineEmpty: "outlineEmpty", precision: "precision", ratingLabel: "ratingLabel", readonly: "readonly", showValueLabel: "showValueLabel", size: "size", softDisabled: "softDisabled", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1320
|
-
};
|
|
1321
|
-
MdRating = __decorate([
|
|
1322
|
-
ProxyCmp({
|
|
1323
|
-
defineCustomElementFn: defineMdRating,
|
|
1324
|
-
inputs: ['defaultValue', 'density', 'disabled', 'emptyIcon', 'getLabel', 'hover', 'icon', 'max', 'name', 'outlineEmpty', 'precision', 'ratingLabel', 'readonly', 'showValueLabel', 'size', 'softDisabled', 'value'],
|
|
1325
|
-
methods: ['focusRating']
|
|
1326
|
-
})
|
|
1327
|
-
], MdRating);
|
|
1328
|
-
export { MdRating };
|
|
1329
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdRating, decorators: [{
|
|
1330
|
-
type: Component,
|
|
1331
|
-
args: [{
|
|
1332
|
-
selector: 'md-rating',
|
|
1333
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1334
|
-
template: '<ng-content></ng-content>',
|
|
1335
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1336
|
-
inputs: ['defaultValue', 'density', 'disabled', 'emptyIcon', 'getLabel', 'hover', 'icon', 'max', 'name', 'outlineEmpty', 'precision', 'ratingLabel', 'readonly', 'showValueLabel', 'size', 'softDisabled', 'value'],
|
|
1337
|
-
standalone: true
|
|
1338
|
-
}]
|
|
1339
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1340
|
-
let MdRipple = class MdRipple {
|
|
1341
|
-
constructor(c, r, z) {
|
|
1342
|
-
this.z = z;
|
|
1343
|
-
c.detach();
|
|
1344
|
-
this.el = r.nativeElement;
|
|
1345
|
-
}
|
|
1346
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdRipple, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1347
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdRipple, isStandalone: true, selector: "md-ripple", inputs: { disabled: "disabled" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1348
|
-
};
|
|
1349
|
-
MdRipple = __decorate([
|
|
1350
|
-
ProxyCmp({
|
|
1351
|
-
defineCustomElementFn: defineMdRipple,
|
|
1352
|
-
inputs: ['disabled'],
|
|
1353
|
-
methods: ['whenSettled', 'trigger']
|
|
1354
|
-
})
|
|
1355
|
-
], MdRipple);
|
|
1356
|
-
export { MdRipple };
|
|
1357
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdRipple, decorators: [{
|
|
1358
|
-
type: Component,
|
|
1359
|
-
args: [{
|
|
1360
|
-
selector: 'md-ripple',
|
|
1361
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1362
|
-
template: '<ng-content></ng-content>',
|
|
1363
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1364
|
-
inputs: ['disabled'],
|
|
1365
|
-
standalone: true
|
|
1366
|
-
}]
|
|
1367
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1368
|
-
let MdSearch = class MdSearch {
|
|
1369
|
-
constructor(c, r, z) {
|
|
1370
|
-
this.z = z;
|
|
1371
|
-
c.detach();
|
|
1372
|
-
this.el = r.nativeElement;
|
|
1373
|
-
proxyOutputs(this, this.el, ['mdInput', 'mdSearch', 'mdSubmit', 'mdChange', 'mdOpen', 'mdClose', 'mdClear', 'mdVoice', 'mdLeadingIconClick', 'mdTrailingIconClick']);
|
|
1374
|
-
}
|
|
1375
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSearch, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1376
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdSearch, isStandalone: true, selector: "md-search", inputs: { announceResults: "announceResults", debounce: "debounce", density: "density", disabled: "disabled", dismissOnOutsideClick: "dismissOnOutsideClick", elevation: "elevation", escapeCloses: "escapeCloses", fullWidth: "fullWidth", initialFocus: "initialFocus", inputAriaLabel: "inputAriaLabel", layout: "layout", leadingIcon: "leadingIcon", loading: "loading", loadingLabel: "loadingLabel", maxBlockSize: "maxBlockSize", noResultsLabel: "noResultsLabel", open: "open", openLeadingIcon: "openLeadingIcon", placeholder: "placeholder", resultsLabel: "resultsLabel", scrollShadow: "scrollShadow", showClearButton: "showClearButton", throttle: "throttle", trigger: "trigger", triggerElement: "triggerElement", triggerFor: "triggerFor", triggerIcon: "triggerIcon", value: "value", variant: "variant", voiceSearch: "voiceSearch" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1377
|
-
};
|
|
1378
|
-
MdSearch = __decorate([
|
|
1379
|
-
ProxyCmp({
|
|
1380
|
-
defineCustomElementFn: defineMdSearch,
|
|
1381
|
-
inputs: ['announceResults', 'debounce', 'density', 'disabled', 'dismissOnOutsideClick', 'elevation', 'escapeCloses', 'fullWidth', 'initialFocus', 'inputAriaLabel', 'layout', 'leadingIcon', 'loading', 'loadingLabel', 'maxBlockSize', 'noResultsLabel', 'open', 'openLeadingIcon', 'placeholder', 'resultsLabel', 'scrollShadow', 'showClearButton', 'throttle', 'trigger', 'triggerElement', 'triggerFor', 'triggerIcon', 'value', 'variant', 'voiceSearch'],
|
|
1382
|
-
methods: ['show', 'close', 'toggle', 'focusInput', 'startVoice', 'stopVoice']
|
|
1383
|
-
})
|
|
1384
|
-
], MdSearch);
|
|
1385
|
-
export { MdSearch };
|
|
1386
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSearch, decorators: [{
|
|
1387
|
-
type: Component,
|
|
1388
|
-
args: [{
|
|
1389
|
-
selector: 'md-search',
|
|
1390
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1391
|
-
template: '<ng-content></ng-content>',
|
|
1392
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1393
|
-
inputs: ['announceResults', 'debounce', 'density', 'disabled', 'dismissOnOutsideClick', 'elevation', 'escapeCloses', 'fullWidth', 'initialFocus', 'inputAriaLabel', 'layout', 'leadingIcon', 'loading', 'loadingLabel', 'maxBlockSize', 'noResultsLabel', 'open', 'openLeadingIcon', 'placeholder', 'resultsLabel', 'scrollShadow', 'showClearButton', 'throttle', 'trigger', 'triggerElement', 'triggerFor', 'triggerIcon', 'value', 'variant', 'voiceSearch'],
|
|
1394
|
-
standalone: true
|
|
1395
|
-
}]
|
|
1396
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1397
|
-
let MdSegmentedButton = class MdSegmentedButton {
|
|
1398
|
-
constructor(c, r, z) {
|
|
1399
|
-
this.z = z;
|
|
1400
|
-
c.detach();
|
|
1401
|
-
this.el = r.nativeElement;
|
|
1402
|
-
proxyOutputs(this, this.el, ['mdSegmentClick']);
|
|
1403
|
-
}
|
|
1404
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSegmentedButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1405
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdSegmentedButton, isStandalone: true, selector: "md-segmented-button", inputs: { density: "density", disabled: "disabled", icon: "icon", label: "label", noCheckmark: "noCheckmark", ripple: "ripple", segmentDensity: "segmentDensity", segmentIndex: "segmentIndex", segmentMultiselect: "segmentMultiselect", segmentTotal: "segmentTotal", selected: "selected", softDisabled: "softDisabled", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1406
|
-
};
|
|
1407
|
-
MdSegmentedButton = __decorate([
|
|
1408
|
-
ProxyCmp({
|
|
1409
|
-
defineCustomElementFn: defineMdSegmentedButton,
|
|
1410
|
-
inputs: ['density', 'disabled', 'icon', 'label', 'noCheckmark', 'ripple', 'segmentDensity', 'segmentIndex', 'segmentMultiselect', 'segmentTotal', 'selected', 'softDisabled', 'value']
|
|
1411
|
-
})
|
|
1412
|
-
], MdSegmentedButton);
|
|
1413
|
-
export { MdSegmentedButton };
|
|
1414
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSegmentedButton, decorators: [{
|
|
1415
|
-
type: Component,
|
|
1416
|
-
args: [{
|
|
1417
|
-
selector: 'md-segmented-button',
|
|
1418
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1419
|
-
template: '<ng-content></ng-content>',
|
|
1420
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1421
|
-
inputs: ['density', 'disabled', 'icon', 'label', 'noCheckmark', 'ripple', 'segmentDensity', 'segmentIndex', 'segmentMultiselect', 'segmentTotal', 'selected', 'softDisabled', 'value'],
|
|
1422
|
-
standalone: true
|
|
1423
|
-
}]
|
|
1424
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1425
|
-
let MdSegmentedButtonSet = class MdSegmentedButtonSet {
|
|
1426
|
-
constructor(c, r, z) {
|
|
1427
|
-
this.z = z;
|
|
1428
|
-
c.detach();
|
|
1429
|
-
this.el = r.nativeElement;
|
|
1430
|
-
proxyOutputs(this, this.el, ['mdChange']);
|
|
1431
|
-
}
|
|
1432
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSegmentedButtonSet, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1433
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdSegmentedButtonSet, isStandalone: true, selector: "md-segmented-button-set", inputs: { density: "density", multiselect: "multiselect" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1434
|
-
};
|
|
1435
|
-
MdSegmentedButtonSet = __decorate([
|
|
1436
|
-
ProxyCmp({
|
|
1437
|
-
defineCustomElementFn: defineMdSegmentedButtonSet,
|
|
1438
|
-
inputs: ['density', 'multiselect']
|
|
1439
|
-
})
|
|
1440
|
-
], MdSegmentedButtonSet);
|
|
1441
|
-
export { MdSegmentedButtonSet };
|
|
1442
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSegmentedButtonSet, decorators: [{
|
|
1443
|
-
type: Component,
|
|
1444
|
-
args: [{
|
|
1445
|
-
selector: 'md-segmented-button-set',
|
|
1446
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1447
|
-
template: '<ng-content></ng-content>',
|
|
1448
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1449
|
-
inputs: ['density', 'multiselect'],
|
|
1450
|
-
standalone: true
|
|
1451
|
-
}]
|
|
1452
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1453
|
-
let MdSelect = class MdSelect {
|
|
1454
|
-
constructor(c, r, z) {
|
|
1455
|
-
this.z = z;
|
|
1456
|
-
c.detach();
|
|
1457
|
-
this.el = r.nativeElement;
|
|
1458
|
-
proxyOutputs(this, this.el, ['mdChange', 'mdOpen', 'mdClose', 'mdValidityChange']);
|
|
1459
|
-
}
|
|
1460
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSelect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1461
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdSelect, isStandalone: true, selector: "md-select", inputs: { clearIcon: "clearIcon", clearLabel: "clearLabel", clearable: "clearable", density: "density", disabled: "disabled", dropdownIcon: "dropdownIcon", error: "error", errorText: "errorText", filterLabel: "filterLabel", filterMode: "filterMode", filterable: "filterable", fullWidth: "fullWidth", label: "label", loading: "loading", loadingText: "loadingText", matchTriggerWidth: "matchTriggerWidth", maxHeight: "maxHeight", name: "name", noOptionsText: "noOptionsText", noResultsText: "noResultsText", open: "open", options: "options", placeholder: "placeholder", placement: "placement", required: "required", reserveSupportingSpace: "reserveSupportingSpace", rowHeight: "rowHeight", searchPlaceholder: "searchPlaceholder", searchingLabel: "searchingLabel", supportingText: "supportingText", value: "value", valueMissingLabel: "valueMissingLabel", variant: "variant", virtualize: "virtualize" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1462
|
-
};
|
|
1463
|
-
MdSelect = __decorate([
|
|
1464
|
-
ProxyCmp({
|
|
1465
|
-
defineCustomElementFn: defineMdSelect,
|
|
1466
|
-
inputs: ['clearIcon', 'clearLabel', 'clearable', 'density', 'disabled', 'dropdownIcon', 'error', 'errorText', 'filterLabel', 'filterMode', 'filterable', 'fullWidth', 'label', 'loading', 'loadingText', 'matchTriggerWidth', 'maxHeight', 'name', 'noOptionsText', 'noResultsText', 'open', 'options', 'placeholder', 'placement', 'required', 'reserveSupportingSpace', 'rowHeight', 'searchPlaceholder', 'searchingLabel', 'supportingText', 'value', 'valueMissingLabel', 'variant', 'virtualize'],
|
|
1467
|
-
methods: ['show', 'close', 'focusTrigger', 'reset', 'loadOptions', 'setQuery', 'getLabels', 'getValidity', 'checkValidity', 'reportValidity', 'setCustomValidity']
|
|
1468
|
-
})
|
|
1469
|
-
], MdSelect);
|
|
1470
|
-
export { MdSelect };
|
|
1471
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSelect, decorators: [{
|
|
1472
|
-
type: Component,
|
|
1473
|
-
args: [{
|
|
1474
|
-
selector: 'md-select',
|
|
1475
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1476
|
-
template: '<ng-content></ng-content>',
|
|
1477
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1478
|
-
inputs: ['clearIcon', 'clearLabel', 'clearable', 'density', 'disabled', 'dropdownIcon', 'error', 'errorText', 'filterLabel', 'filterMode', 'filterable', 'fullWidth', 'label', 'loading', 'loadingText', 'matchTriggerWidth', 'maxHeight', 'name', 'noOptionsText', 'noResultsText', 'open', 'options', 'placeholder', 'placement', 'required', 'reserveSupportingSpace', 'rowHeight', 'searchPlaceholder', 'searchingLabel', 'supportingText', 'value', 'valueMissingLabel', 'variant', 'virtualize'],
|
|
1479
|
-
standalone: true
|
|
1480
|
-
}]
|
|
1481
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1482
|
-
let MdSelectOption = class MdSelectOption {
|
|
1483
|
-
constructor(c, r, z) {
|
|
1484
|
-
this.z = z;
|
|
1485
|
-
c.detach();
|
|
1486
|
-
this.el = r.nativeElement;
|
|
1487
|
-
proxyOutputs(this, this.el, ['mdSelectOptionChange']);
|
|
1488
|
-
}
|
|
1489
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSelectOption, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1490
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdSelectOption, isStandalone: true, selector: "md-select-option", inputs: { disabled: "disabled", icon: "icon", iconColor: "iconColor", label: "label", selected: "selected", supportingText: "supportingText", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1491
|
-
};
|
|
1492
|
-
MdSelectOption = __decorate([
|
|
1493
|
-
ProxyCmp({
|
|
1494
|
-
defineCustomElementFn: defineMdSelectOption,
|
|
1495
|
-
inputs: ['disabled', 'icon', 'iconColor', 'label', 'selected', 'supportingText', 'value']
|
|
1496
|
-
})
|
|
1497
|
-
], MdSelectOption);
|
|
1498
|
-
export { MdSelectOption };
|
|
1499
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSelectOption, decorators: [{
|
|
1500
|
-
type: Component,
|
|
1501
|
-
args: [{
|
|
1502
|
-
selector: 'md-select-option',
|
|
1503
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1504
|
-
template: '<ng-content></ng-content>',
|
|
1505
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1506
|
-
inputs: ['disabled', 'icon', 'iconColor', 'label', 'selected', 'supportingText', 'value'],
|
|
1507
|
-
standalone: true
|
|
1508
|
-
}]
|
|
1509
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1510
|
-
let MdSideSheet = class MdSideSheet {
|
|
1511
|
-
constructor(c, r, z) {
|
|
1512
|
-
this.z = z;
|
|
1513
|
-
c.detach();
|
|
1514
|
-
this.el = r.nativeElement;
|
|
1515
|
-
proxyOutputs(this, this.el, ['mdOpen', 'mdClose', 'mdCancel', 'mdBack']);
|
|
1516
|
-
}
|
|
1517
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSideSheet, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1518
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdSideSheet, isStandalone: true, selector: "md-side-sheet", inputs: { bottomDivider: "bottomDivider", closeable: "closeable", density: "density", detached: "detached", headline: "headline", open: "open", scrimDismissible: "scrimDismissible", sheetAriaLabel: "sheetAriaLabel", showBack: "showBack", side: "side", topDivider: "topDivider", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1519
|
-
};
|
|
1520
|
-
MdSideSheet = __decorate([
|
|
1521
|
-
ProxyCmp({
|
|
1522
|
-
defineCustomElementFn: defineMdSideSheet,
|
|
1523
|
-
inputs: ['bottomDivider', 'closeable', 'density', 'detached', 'headline', 'open', 'scrimDismissible', 'sheetAriaLabel', 'showBack', 'side', 'topDivider', 'variant'],
|
|
1524
|
-
methods: ['show', 'close']
|
|
1525
|
-
})
|
|
1526
|
-
], MdSideSheet);
|
|
1527
|
-
export { MdSideSheet };
|
|
1528
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSideSheet, decorators: [{
|
|
1529
|
-
type: Component,
|
|
1530
|
-
args: [{
|
|
1531
|
-
selector: 'md-side-sheet',
|
|
1532
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1533
|
-
template: '<ng-content></ng-content>',
|
|
1534
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1535
|
-
inputs: ['bottomDivider', 'closeable', 'density', 'detached', 'headline', 'open', 'scrimDismissible', 'sheetAriaLabel', 'showBack', 'side', 'topDivider', 'variant'],
|
|
1536
|
-
standalone: true
|
|
1537
|
-
}]
|
|
1538
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1539
|
-
let MdSkeleton = class MdSkeleton {
|
|
1540
|
-
constructor(c, r, z) {
|
|
1541
|
-
this.z = z;
|
|
1542
|
-
c.detach();
|
|
1543
|
-
this.el = r.nativeElement;
|
|
1544
|
-
}
|
|
1545
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSkeleton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1546
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdSkeleton, isStandalone: true, selector: "md-skeleton", inputs: { animation: "animation", announce: "announce", ariaLabelProp: "ariaLabelProp", density: "density", fullHeight: "fullHeight", fullWidth: "fullWidth", height: "height", lines: "lines", variant: "variant", width: "width" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1547
|
-
};
|
|
1548
|
-
MdSkeleton = __decorate([
|
|
1549
|
-
ProxyCmp({
|
|
1550
|
-
defineCustomElementFn: defineMdSkeleton,
|
|
1551
|
-
inputs: ['animation', 'announce', 'ariaLabelProp', 'density', 'fullHeight', 'fullWidth', 'height', 'lines', 'variant', 'width']
|
|
1552
|
-
})
|
|
1553
|
-
], MdSkeleton);
|
|
1554
|
-
export { MdSkeleton };
|
|
1555
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSkeleton, decorators: [{
|
|
1556
|
-
type: Component,
|
|
1557
|
-
args: [{
|
|
1558
|
-
selector: 'md-skeleton',
|
|
1559
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1560
|
-
template: '<ng-content></ng-content>',
|
|
1561
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1562
|
-
inputs: ['animation', 'announce', 'ariaLabelProp', 'density', 'fullHeight', 'fullWidth', 'height', 'lines', 'variant', 'width'],
|
|
1563
|
-
standalone: true
|
|
1564
|
-
}]
|
|
1565
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1566
|
-
let MdSlider = class MdSlider {
|
|
1567
|
-
constructor(c, r, z) {
|
|
1568
|
-
this.z = z;
|
|
1569
|
-
c.detach();
|
|
1570
|
-
this.el = r.nativeElement;
|
|
1571
|
-
proxyOutputs(this, this.el, ['mdInput', 'mdChange', 'mdFocus', 'mdBlur', 'mdDragStart', 'mdDragEnd']);
|
|
1572
|
-
}
|
|
1573
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSlider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1574
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdSlider, isStandalone: true, selector: "md-slider", inputs: { ariaLabelEnd: "ariaLabelEnd", ariaLabelStart: "ariaLabelStart", controlled: "controlled", density: "density", disabled: "disabled", fullHeight: "fullHeight", icon: "icon", insetIcon: "insetIcon", labeled: "labeled", max: "max", min: "min", name: "name", nameEnd: "nameEnd", nameStart: "nameStart", orientation: "orientation", range: "range", size: "size", sliderAriaLabel: "sliderAriaLabel", step: "step", stops: "stops", value: "value", valueEnd: "valueEnd", valueEndText: "valueEndText", valueIndicator: "valueIndicator", valueStart: "valueStart", valueStartText: "valueStartText", valueText: "valueText", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1575
|
-
};
|
|
1576
|
-
MdSlider = __decorate([
|
|
1577
|
-
ProxyCmp({
|
|
1578
|
-
defineCustomElementFn: defineMdSlider,
|
|
1579
|
-
inputs: ['ariaLabelEnd', 'ariaLabelStart', 'controlled', 'density', 'disabled', 'fullHeight', 'icon', 'insetIcon', 'labeled', 'max', 'min', 'name', 'nameEnd', 'nameStart', 'orientation', 'range', 'size', 'sliderAriaLabel', 'step', 'stops', 'value', 'valueEnd', 'valueEndText', 'valueIndicator', 'valueStart', 'valueStartText', 'valueText', 'variant']
|
|
1580
|
-
})
|
|
1581
|
-
], MdSlider);
|
|
1582
|
-
export { MdSlider };
|
|
1583
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSlider, decorators: [{
|
|
1584
|
-
type: Component,
|
|
1585
|
-
args: [{
|
|
1586
|
-
selector: 'md-slider',
|
|
1587
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1588
|
-
template: '<ng-content></ng-content>',
|
|
1589
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1590
|
-
inputs: ['ariaLabelEnd', 'ariaLabelStart', 'controlled', 'density', 'disabled', 'fullHeight', 'icon', 'insetIcon', 'labeled', 'max', 'min', 'name', 'nameEnd', 'nameStart', 'orientation', 'range', 'size', 'sliderAriaLabel', 'step', 'stops', 'value', 'valueEnd', 'valueEndText', 'valueIndicator', 'valueStart', 'valueStartText', 'valueText', 'variant'],
|
|
1591
|
-
standalone: true
|
|
1592
|
-
}]
|
|
1593
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1594
|
-
let MdSnackbar = class MdSnackbar {
|
|
1595
|
-
constructor(c, r, z) {
|
|
1596
|
-
this.z = z;
|
|
1597
|
-
c.detach();
|
|
1598
|
-
this.el = r.nativeElement;
|
|
1599
|
-
proxyOutputs(this, this.el, ['mdOpen', 'mdClose', 'mdAction']);
|
|
1600
|
-
}
|
|
1601
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSnackbar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1602
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdSnackbar, isStandalone: true, selector: "md-snackbar", inputs: { action: "action", autoHide: "autoHide", autoHideDuration: "autoHideDuration", closeable: "closeable", density: "density", dismissLabel: "dismissLabel", message: "message", open: "open", politeness: "politeness", position: "position", stacked: "stacked" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1603
|
-
};
|
|
1604
|
-
MdSnackbar = __decorate([
|
|
1605
|
-
ProxyCmp({
|
|
1606
|
-
defineCustomElementFn: defineMdSnackbar,
|
|
1607
|
-
inputs: ['action', 'autoHide', 'autoHideDuration', 'closeable', 'density', 'dismissLabel', 'message', 'open', 'politeness', 'position', 'stacked'],
|
|
1608
|
-
methods: ['show', 'hide']
|
|
1609
|
-
})
|
|
1610
|
-
], MdSnackbar);
|
|
1611
|
-
export { MdSnackbar };
|
|
1612
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSnackbar, decorators: [{
|
|
1613
|
-
type: Component,
|
|
1614
|
-
args: [{
|
|
1615
|
-
selector: 'md-snackbar',
|
|
1616
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1617
|
-
template: '<ng-content></ng-content>',
|
|
1618
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1619
|
-
inputs: ['action', 'autoHide', 'autoHideDuration', 'closeable', 'density', 'dismissLabel', 'message', 'open', 'politeness', 'position', 'stacked'],
|
|
1620
|
-
standalone: true
|
|
1621
|
-
}]
|
|
1622
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1623
|
-
let MdSparkline = class MdSparkline {
|
|
1624
|
-
constructor(c, r, z) {
|
|
1625
|
-
this.z = z;
|
|
1626
|
-
c.detach();
|
|
1627
|
-
this.el = r.nativeElement;
|
|
1628
|
-
proxyOutputs(this, this.el, ['mdSparkClick', 'mdReady']);
|
|
1629
|
-
}
|
|
1630
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSparkline, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1631
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdSparkline, isStandalone: true, selector: "md-sparkline", inputs: { barWidth: "barWidth", color: "color", cornerRadius: "cornerRadius", curve: "curve", data: "data", heightProp: "heightProp", labels: "labels", lineWidth: "lineWidth", markSize: "markSize", max: "max", min: "min", noAnimation: "noAnimation", referenceAreas: "referenceAreas", showMarks: "showMarks", showTooltip: "showTooltip", valueFormatter: "valueFormatter", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1632
|
-
};
|
|
1633
|
-
MdSparkline = __decorate([
|
|
1634
|
-
ProxyCmp({
|
|
1635
|
-
defineCustomElementFn: defineMdSparkline,
|
|
1636
|
-
inputs: ['barWidth', 'color', 'cornerRadius', 'curve', 'data', 'heightProp', 'labels', 'lineWidth', 'markSize', 'max', 'min', 'noAnimation', 'referenceAreas', 'showMarks', 'showTooltip', 'valueFormatter', 'variant'],
|
|
1637
|
-
methods: ['refreshTheme', 'resize', 'getInstance']
|
|
1638
|
-
})
|
|
1639
|
-
], MdSparkline);
|
|
1640
|
-
export { MdSparkline };
|
|
1641
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSparkline, decorators: [{
|
|
1642
|
-
type: Component,
|
|
1643
|
-
args: [{
|
|
1644
|
-
selector: 'md-sparkline',
|
|
1645
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1646
|
-
template: '<ng-content></ng-content>',
|
|
1647
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1648
|
-
inputs: ['barWidth', 'color', 'cornerRadius', 'curve', 'data', 'heightProp', 'labels', 'lineWidth', 'markSize', 'max', 'min', 'noAnimation', 'referenceAreas', 'showMarks', 'showTooltip', 'valueFormatter', 'variant'],
|
|
1649
|
-
standalone: true
|
|
1650
|
-
}]
|
|
1651
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1652
|
-
let MdSplitButton = class MdSplitButton {
|
|
1653
|
-
constructor(c, r, z) {
|
|
1654
|
-
this.z = z;
|
|
1655
|
-
c.detach();
|
|
1656
|
-
this.el = r.nativeElement;
|
|
1657
|
-
proxyOutputs(this, this.el, ['mdLeadingClick', 'mdTrailingClick']);
|
|
1658
|
-
}
|
|
1659
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSplitButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1660
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdSplitButton, isStandalone: true, selector: "md-split-button", inputs: { controls: "controls", density: "density", disabled: "disabled", fullWidth: "fullWidth", haspopup: "haspopup", icon: "icon", label: "label", menuLabel: "menuLabel", ripple: "ripple", size: "size", softDisabled: "softDisabled", trailingChecked: "trailingChecked", trailingIcon: "trailingIcon", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1661
|
-
};
|
|
1662
|
-
MdSplitButton = __decorate([
|
|
1663
|
-
ProxyCmp({
|
|
1664
|
-
defineCustomElementFn: defineMdSplitButton,
|
|
1665
|
-
inputs: ['controls', 'density', 'disabled', 'fullWidth', 'haspopup', 'icon', 'label', 'menuLabel', 'ripple', 'size', 'softDisabled', 'trailingChecked', 'trailingIcon', 'variant']
|
|
1666
|
-
})
|
|
1667
|
-
], MdSplitButton);
|
|
1668
|
-
export { MdSplitButton };
|
|
1669
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSplitButton, decorators: [{
|
|
1670
|
-
type: Component,
|
|
1671
|
-
args: [{
|
|
1672
|
-
selector: 'md-split-button',
|
|
1673
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1674
|
-
template: '<ng-content></ng-content>',
|
|
1675
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1676
|
-
inputs: ['controls', 'density', 'disabled', 'fullWidth', 'haspopup', 'icon', 'label', 'menuLabel', 'ripple', 'size', 'softDisabled', 'trailingChecked', 'trailingIcon', 'variant'],
|
|
1677
|
-
standalone: true
|
|
1678
|
-
}]
|
|
1679
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1680
|
-
let MdStatusDot = class MdStatusDot {
|
|
1681
|
-
constructor(c, r, z) {
|
|
1682
|
-
this.z = z;
|
|
1683
|
-
c.detach();
|
|
1684
|
-
this.el = r.nativeElement;
|
|
1685
|
-
}
|
|
1686
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdStatusDot, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1687
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdStatusDot, isStandalone: true, selector: "md-status-dot", inputs: { density: "density", inline: "inline", label: "label", live: "live", shape: "shape", size: "size", state: "state" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1688
|
-
};
|
|
1689
|
-
MdStatusDot = __decorate([
|
|
1690
|
-
ProxyCmp({
|
|
1691
|
-
defineCustomElementFn: defineMdStatusDot,
|
|
1692
|
-
inputs: ['density', 'inline', 'label', 'live', 'shape', 'size', 'state']
|
|
1693
|
-
})
|
|
1694
|
-
], MdStatusDot);
|
|
1695
|
-
export { MdStatusDot };
|
|
1696
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdStatusDot, decorators: [{
|
|
1697
|
-
type: Component,
|
|
1698
|
-
args: [{
|
|
1699
|
-
selector: 'md-status-dot',
|
|
1700
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1701
|
-
template: '<ng-content></ng-content>',
|
|
1702
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1703
|
-
inputs: ['density', 'inline', 'label', 'live', 'shape', 'size', 'state'],
|
|
1704
|
-
standalone: true
|
|
1705
|
-
}]
|
|
1706
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1707
|
-
let MdStep = class MdStep {
|
|
1708
|
-
constructor(c, r, z) {
|
|
1709
|
-
this.z = z;
|
|
1710
|
-
c.detach();
|
|
1711
|
-
this.el = r.nativeElement;
|
|
1712
|
-
proxyOutputs(this, this.el, ['mdStepClick', 'mdStepNext', 'mdStepBack']);
|
|
1713
|
-
}
|
|
1714
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdStep, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1715
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdStep, isStandalone: true, selector: "md-step", inputs: { accessibleName: "accessibleName", active: "active", completed: "completed", completedIcon: "completedIcon", density: "density", description: "description", disabled: "disabled", editable: "editable", error: "error", errorIcon: "errorIcon", errorText: "errorText", hideActions: "hideActions", icon: "icon", label: "label", optional: "optional" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1716
|
-
};
|
|
1717
|
-
MdStep = __decorate([
|
|
1718
|
-
ProxyCmp({
|
|
1719
|
-
defineCustomElementFn: defineMdStep,
|
|
1720
|
-
inputs: ['accessibleName', 'active', 'completed', 'completedIcon', 'density', 'description', 'disabled', 'editable', 'error', 'errorIcon', 'errorText', 'hideActions', 'icon', 'label', 'optional']
|
|
1721
|
-
})
|
|
1722
|
-
], MdStep);
|
|
1723
|
-
export { MdStep };
|
|
1724
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdStep, decorators: [{
|
|
1725
|
-
type: Component,
|
|
1726
|
-
args: [{
|
|
1727
|
-
selector: 'md-step',
|
|
1728
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1729
|
-
template: '<ng-content></ng-content>',
|
|
1730
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1731
|
-
inputs: ['accessibleName', 'active', 'completed', 'completedIcon', 'density', 'description', 'disabled', 'editable', 'error', 'errorIcon', 'errorText', 'hideActions', 'icon', 'label', 'optional'],
|
|
1732
|
-
standalone: true
|
|
1733
|
-
}]
|
|
1734
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1735
|
-
let MdStepper = class MdStepper {
|
|
1736
|
-
constructor(c, r, z) {
|
|
1737
|
-
this.z = z;
|
|
1738
|
-
c.detach();
|
|
1739
|
-
this.el = r.nativeElement;
|
|
1740
|
-
proxyOutputs(this, this.el, ['mdBeforeChange', 'mdStepChange', 'mdComplete']);
|
|
1741
|
-
}
|
|
1742
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdStepper, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1743
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdStepper, isStandalone: true, selector: "md-stepper", inputs: { active: "active", autoComplete: "autoComplete", backLabel: "backLabel", completedWord: "completedWord", currentWord: "currentWord", density: "density", errorWord: "errorWord", finishLabel: "finishLabel", indicator: "indicator", label: "label", lazy: "lazy", loading: "loading", mode: "mode", nav: "nav", nextDisabled: "nextDisabled", nextLabel: "nextLabel", ofWord: "ofWord", optionalWord: "optionalWord", orientation: "orientation", readonly: "readonly", stepWord: "stepWord", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1744
|
-
};
|
|
1745
|
-
MdStepper = __decorate([
|
|
1746
|
-
ProxyCmp({
|
|
1747
|
-
defineCustomElementFn: defineMdStepper,
|
|
1748
|
-
inputs: ['active', 'autoComplete', 'backLabel', 'completedWord', 'currentWord', 'density', 'errorWord', 'finishLabel', 'indicator', 'label', 'lazy', 'loading', 'mode', 'nav', 'nextDisabled', 'nextLabel', 'ofWord', 'optionalWord', 'orientation', 'readonly', 'stepWord', 'variant'],
|
|
1749
|
-
methods: ['next', 'prev', 'goTo', 'reset']
|
|
1750
|
-
})
|
|
1751
|
-
], MdStepper);
|
|
1752
|
-
export { MdStepper };
|
|
1753
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdStepper, decorators: [{
|
|
1754
|
-
type: Component,
|
|
1755
|
-
args: [{
|
|
1756
|
-
selector: 'md-stepper',
|
|
1757
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1758
|
-
template: '<ng-content></ng-content>',
|
|
1759
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1760
|
-
inputs: ['active', 'autoComplete', 'backLabel', 'completedWord', 'currentWord', 'density', 'errorWord', 'finishLabel', 'indicator', 'label', 'lazy', 'loading', 'mode', 'nav', 'nextDisabled', 'nextLabel', 'ofWord', 'optionalWord', 'orientation', 'readonly', 'stepWord', 'variant'],
|
|
1761
|
-
standalone: true
|
|
1762
|
-
}]
|
|
1763
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1764
|
-
let MdSubMenuItem = class MdSubMenuItem {
|
|
1765
|
-
constructor(c, r, z) {
|
|
1766
|
-
this.z = z;
|
|
1767
|
-
c.detach();
|
|
1768
|
-
this.el = r.nativeElement;
|
|
1769
|
-
proxyOutputs(this, this.el, ['mdClick']);
|
|
1770
|
-
}
|
|
1771
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSubMenuItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1772
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdSubMenuItem, isStandalone: true, selector: "md-sub-menu-item", inputs: { badge: "badge", closeDelay: "closeDelay", density: "density", disabled: "disabled", divider: "divider", gap: "gap", headline: "headline", openDelay: "openDelay", supportingText: "supportingText" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1773
|
-
};
|
|
1774
|
-
MdSubMenuItem = __decorate([
|
|
1775
|
-
ProxyCmp({
|
|
1776
|
-
defineCustomElementFn: defineMdSubMenuItem,
|
|
1777
|
-
inputs: ['badge', 'closeDelay', 'density', 'disabled', 'divider', 'gap', 'headline', 'openDelay', 'supportingText'],
|
|
1778
|
-
methods: ['collapse']
|
|
1779
|
-
})
|
|
1780
|
-
], MdSubMenuItem);
|
|
1781
|
-
export { MdSubMenuItem };
|
|
1782
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSubMenuItem, decorators: [{
|
|
1783
|
-
type: Component,
|
|
1784
|
-
args: [{
|
|
1785
|
-
selector: 'md-sub-menu-item',
|
|
1786
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1787
|
-
template: '<ng-content></ng-content>',
|
|
1788
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1789
|
-
inputs: ['badge', 'closeDelay', 'density', 'disabled', 'divider', 'gap', 'headline', 'openDelay', 'supportingText'],
|
|
1790
|
-
standalone: true
|
|
1791
|
-
}]
|
|
1792
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1793
|
-
let MdSwitch = class MdSwitch {
|
|
1794
|
-
constructor(c, r, z) {
|
|
1795
|
-
this.z = z;
|
|
1796
|
-
c.detach();
|
|
1797
|
-
this.el = r.nativeElement;
|
|
1798
|
-
proxyOutputs(this, this.el, ['mdInput', 'mdChange', 'mdValidityChange']);
|
|
1799
|
-
}
|
|
1800
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSwitch, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1801
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdSwitch, isStandalone: true, selector: "md-switch", inputs: { density: "density", disabled: "disabled", icons: "icons", name: "name", required: "required", selected: "selected", selectedIcon: "selectedIcon", showOnlySelectedIcon: "showOnlySelectedIcon", softDisabled: "softDisabled", unselectedIcon: "unselectedIcon", value: "value", valueMissingLabel: "valueMissingLabel" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1802
|
-
};
|
|
1803
|
-
MdSwitch = __decorate([
|
|
1804
|
-
ProxyCmp({
|
|
1805
|
-
defineCustomElementFn: defineMdSwitch,
|
|
1806
|
-
inputs: ['density', 'disabled', 'icons', 'name', 'required', 'selected', 'selectedIcon', 'showOnlySelectedIcon', 'softDisabled', 'unselectedIcon', 'value', 'valueMissingLabel'],
|
|
1807
|
-
methods: ['setFocus', 'getValidity', 'checkValidity', 'reportValidity', 'setCustomValidity']
|
|
1808
|
-
})
|
|
1809
|
-
], MdSwitch);
|
|
1810
|
-
export { MdSwitch };
|
|
1811
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdSwitch, decorators: [{
|
|
1812
|
-
type: Component,
|
|
1813
|
-
args: [{
|
|
1814
|
-
selector: 'md-switch',
|
|
1815
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1816
|
-
template: '<ng-content></ng-content>',
|
|
1817
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1818
|
-
inputs: ['density', 'disabled', 'icons', 'name', 'required', 'selected', 'selectedIcon', 'showOnlySelectedIcon', 'softDisabled', 'unselectedIcon', 'value', 'valueMissingLabel'],
|
|
1819
|
-
standalone: true
|
|
1820
|
-
}]
|
|
1821
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1822
|
-
let MdTab = class MdTab {
|
|
1823
|
-
constructor(c, r, z) {
|
|
1824
|
-
this.z = z;
|
|
1825
|
-
c.detach();
|
|
1826
|
-
this.el = r.nativeElement;
|
|
1827
|
-
proxyOutputs(this, this.el, ['mdTabClick']);
|
|
1828
|
-
}
|
|
1829
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTab, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1830
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdTab, isStandalone: true, selector: "md-tab", inputs: { active: "active", badge: "badge", controls: "controls", density: "density", disabled: "disabled", icon: "icon", inlineIcon: "inlineIcon", label: "label", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1831
|
-
};
|
|
1832
|
-
MdTab = __decorate([
|
|
1833
|
-
ProxyCmp({
|
|
1834
|
-
defineCustomElementFn: defineMdTab,
|
|
1835
|
-
inputs: ['active', 'badge', 'controls', 'density', 'disabled', 'icon', 'inlineIcon', 'label', 'variant']
|
|
1836
|
-
})
|
|
1837
|
-
], MdTab);
|
|
1838
|
-
export { MdTab };
|
|
1839
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTab, decorators: [{
|
|
1840
|
-
type: Component,
|
|
1841
|
-
args: [{
|
|
1842
|
-
selector: 'md-tab',
|
|
1843
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1844
|
-
template: '<ng-content></ng-content>',
|
|
1845
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1846
|
-
inputs: ['active', 'badge', 'controls', 'density', 'disabled', 'icon', 'inlineIcon', 'label', 'variant'],
|
|
1847
|
-
standalone: true
|
|
1848
|
-
}]
|
|
1849
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1850
|
-
let MdTabPanel = class MdTabPanel {
|
|
1851
|
-
constructor(c, r, z) {
|
|
1852
|
-
this.z = z;
|
|
1853
|
-
c.detach();
|
|
1854
|
-
this.el = r.nativeElement;
|
|
1855
|
-
}
|
|
1856
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTabPanel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1857
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdTabPanel, isStandalone: true, selector: "md-tab-panel", inputs: { active: "active" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1858
|
-
};
|
|
1859
|
-
MdTabPanel = __decorate([
|
|
1860
|
-
ProxyCmp({
|
|
1861
|
-
defineCustomElementFn: defineMdTabPanel,
|
|
1862
|
-
inputs: ['active']
|
|
1863
|
-
})
|
|
1864
|
-
], MdTabPanel);
|
|
1865
|
-
export { MdTabPanel };
|
|
1866
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTabPanel, decorators: [{
|
|
1867
|
-
type: Component,
|
|
1868
|
-
args: [{
|
|
1869
|
-
selector: 'md-tab-panel',
|
|
1870
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1871
|
-
template: '<ng-content></ng-content>',
|
|
1872
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1873
|
-
inputs: ['active'],
|
|
1874
|
-
standalone: true
|
|
1875
|
-
}]
|
|
1876
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1877
|
-
let MdTabPanels = class MdTabPanels {
|
|
1878
|
-
constructor(c, r, z) {
|
|
1879
|
-
this.z = z;
|
|
1880
|
-
c.detach();
|
|
1881
|
-
this.el = r.nativeElement;
|
|
1882
|
-
}
|
|
1883
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTabPanels, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1884
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdTabPanels, isStandalone: true, selector: "md-tab-panels", inputs: { for: "for", sizing: "sizing" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1885
|
-
};
|
|
1886
|
-
MdTabPanels = __decorate([
|
|
1887
|
-
ProxyCmp({
|
|
1888
|
-
defineCustomElementFn: defineMdTabPanels,
|
|
1889
|
-
inputs: ['for', 'sizing']
|
|
1890
|
-
})
|
|
1891
|
-
], MdTabPanels);
|
|
1892
|
-
export { MdTabPanels };
|
|
1893
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTabPanels, decorators: [{
|
|
1894
|
-
type: Component,
|
|
1895
|
-
args: [{
|
|
1896
|
-
selector: 'md-tab-panels',
|
|
1897
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1898
|
-
template: '<ng-content></ng-content>',
|
|
1899
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1900
|
-
inputs: ['for', 'sizing'],
|
|
1901
|
-
standalone: true
|
|
1902
|
-
}]
|
|
1903
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1904
|
-
let MdTable = class MdTable {
|
|
1905
|
-
constructor(c, r, z) {
|
|
1906
|
-
this.z = z;
|
|
1907
|
-
c.detach();
|
|
1908
|
-
this.el = r.nativeElement;
|
|
1909
|
-
proxyOutputs(this, this.el, ['mdSortChange', 'mdSelectionChange', 'mdPinChange', 'mdColumnVisibilityChange', 'mdScroll']);
|
|
1910
|
-
}
|
|
1911
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTable, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1912
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdTable, isStandalone: true, selector: "md-table", inputs: { caption: "caption", columnTemplate: "columnTemplate", columns: "columns", density: "density", empty: "empty", frozenHeader: "frozenHeader", hoverable: "hoverable", keepHeight: "keepHeight", label: "label", loading: "loading", loadingMode: "loadingMode", loadingRows: "loadingRows", minWidth: "minWidth", motion: "motion", noDividers: "noDividers", pinIcon: "pinIcon", pinMode: "pinMode", rowCount: "rowCount", rowOffset: "rowOffset", scrollbar: "scrollbar", selection: "selection", sortBy: "sortBy", sortOrder: "sortOrder", stickyFooter: "stickyFooter", stickyHeader: "stickyHeader", striped: "striped", summary: "summary" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1913
|
-
};
|
|
1914
|
-
MdTable = __decorate([
|
|
1915
|
-
ProxyCmp({
|
|
1916
|
-
defineCustomElementFn: defineMdTable,
|
|
1917
|
-
inputs: ['caption', 'columnTemplate', 'columns', 'density', 'empty', 'frozenHeader', 'hoverable', 'keepHeight', 'label', 'loading', 'loadingMode', 'loadingRows', 'minWidth', 'motion', 'noDividers', 'pinIcon', 'pinMode', 'rowCount', 'rowOffset', 'scrollbar', 'selection', 'sortBy', 'sortOrder', 'stickyFooter', 'stickyHeader', 'striped', 'summary'],
|
|
1918
|
-
methods: ['getSelection', 'selectAll', 'deselectAll', 'toggleSelectAll', 'setSort', 'pinColumn', 'setColumnVisibility', 'animateNextChange']
|
|
1919
|
-
})
|
|
1920
|
-
], MdTable);
|
|
1921
|
-
export { MdTable };
|
|
1922
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTable, decorators: [{
|
|
1923
|
-
type: Component,
|
|
1924
|
-
args: [{
|
|
1925
|
-
selector: 'md-table',
|
|
1926
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1927
|
-
template: '<ng-content></ng-content>',
|
|
1928
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1929
|
-
inputs: ['caption', 'columnTemplate', 'columns', 'density', 'empty', 'frozenHeader', 'hoverable', 'keepHeight', 'label', 'loading', 'loadingMode', 'loadingRows', 'minWidth', 'motion', 'noDividers', 'pinIcon', 'pinMode', 'rowCount', 'rowOffset', 'scrollbar', 'selection', 'sortBy', 'sortOrder', 'stickyFooter', 'stickyHeader', 'striped', 'summary'],
|
|
1930
|
-
standalone: true
|
|
1931
|
-
}]
|
|
1932
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1933
|
-
let MdTableBody = class MdTableBody {
|
|
1934
|
-
constructor(c, r, z) {
|
|
1935
|
-
this.z = z;
|
|
1936
|
-
c.detach();
|
|
1937
|
-
this.el = r.nativeElement;
|
|
1938
|
-
}
|
|
1939
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTableBody, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1940
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdTableBody, isStandalone: true, selector: "md-table-body", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1941
|
-
};
|
|
1942
|
-
MdTableBody = __decorate([
|
|
1943
|
-
ProxyCmp({
|
|
1944
|
-
defineCustomElementFn: defineMdTableBody
|
|
1945
|
-
})
|
|
1946
|
-
], MdTableBody);
|
|
1947
|
-
export { MdTableBody };
|
|
1948
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTableBody, decorators: [{
|
|
1949
|
-
type: Component,
|
|
1950
|
-
args: [{
|
|
1951
|
-
selector: 'md-table-body',
|
|
1952
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1953
|
-
template: '<ng-content></ng-content>',
|
|
1954
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1955
|
-
inputs: [],
|
|
1956
|
-
standalone: true
|
|
1957
|
-
}]
|
|
1958
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1959
|
-
let MdTableCell = class MdTableCell {
|
|
1960
|
-
constructor(c, r, z) {
|
|
1961
|
-
this.z = z;
|
|
1962
|
-
c.detach();
|
|
1963
|
-
this.el = r.nativeElement;
|
|
1964
|
-
}
|
|
1965
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTableCell, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1966
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdTableCell, isStandalone: true, selector: "md-table-cell", inputs: { align: "align", colSpan: "colSpan", density: "density", ellipsis: "ellipsis", head: "head", noPinIndicator: "noPinIndicator", numeric: "numeric", padding: "padding", pinIcon: "pinIcon", rowSpan: "rowSpan", scope: "scope", sticky: "sticky", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1967
|
-
};
|
|
1968
|
-
MdTableCell = __decorate([
|
|
1969
|
-
ProxyCmp({
|
|
1970
|
-
defineCustomElementFn: defineMdTableCell,
|
|
1971
|
-
inputs: ['align', 'colSpan', 'density', 'ellipsis', 'head', 'noPinIndicator', 'numeric', 'padding', 'pinIcon', 'rowSpan', 'scope', 'sticky', 'variant']
|
|
1972
|
-
})
|
|
1973
|
-
], MdTableCell);
|
|
1974
|
-
export { MdTableCell };
|
|
1975
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTableCell, decorators: [{
|
|
1976
|
-
type: Component,
|
|
1977
|
-
args: [{
|
|
1978
|
-
selector: 'md-table-cell',
|
|
1979
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1980
|
-
template: '<ng-content></ng-content>',
|
|
1981
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1982
|
-
inputs: ['align', 'colSpan', 'density', 'ellipsis', 'head', 'noPinIndicator', 'numeric', 'padding', 'pinIcon', 'rowSpan', 'scope', 'sticky', 'variant'],
|
|
1983
|
-
standalone: true
|
|
1984
|
-
}]
|
|
1985
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
1986
|
-
let MdTableContainer = class MdTableContainer {
|
|
1987
|
-
constructor(c, r, z) {
|
|
1988
|
-
this.z = z;
|
|
1989
|
-
c.detach();
|
|
1990
|
-
this.el = r.nativeElement;
|
|
1991
|
-
}
|
|
1992
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTableContainer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1993
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdTableContainer, isStandalone: true, selector: "md-table-container", inputs: { elevation: "elevation", maxHeight: "maxHeight", minHeight: "minHeight", shape: "shape", variant: "variant", vibrant: "vibrant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1994
|
-
};
|
|
1995
|
-
MdTableContainer = __decorate([
|
|
1996
|
-
ProxyCmp({
|
|
1997
|
-
defineCustomElementFn: defineMdTableContainer,
|
|
1998
|
-
inputs: ['elevation', 'maxHeight', 'minHeight', 'shape', 'variant', 'vibrant']
|
|
1999
|
-
})
|
|
2000
|
-
], MdTableContainer);
|
|
2001
|
-
export { MdTableContainer };
|
|
2002
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTableContainer, decorators: [{
|
|
2003
|
-
type: Component,
|
|
2004
|
-
args: [{
|
|
2005
|
-
selector: 'md-table-container',
|
|
2006
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2007
|
-
template: '<ng-content></ng-content>',
|
|
2008
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2009
|
-
inputs: ['elevation', 'maxHeight', 'minHeight', 'shape', 'variant', 'vibrant'],
|
|
2010
|
-
standalone: true
|
|
2011
|
-
}]
|
|
2012
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
2013
|
-
let MdTableExpandToggle = class MdTableExpandToggle {
|
|
2014
|
-
constructor(c, r, z) {
|
|
2015
|
-
this.z = z;
|
|
2016
|
-
c.detach();
|
|
2017
|
-
this.el = r.nativeElement;
|
|
2018
|
-
}
|
|
2019
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTableExpandToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2020
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdTableExpandToggle, isStandalone: true, selector: "md-table-expand-toggle", inputs: { buttonLabel: "buttonLabel", icon: "icon" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2021
|
-
};
|
|
2022
|
-
MdTableExpandToggle = __decorate([
|
|
2023
|
-
ProxyCmp({
|
|
2024
|
-
defineCustomElementFn: defineMdTableExpandToggle,
|
|
2025
|
-
inputs: ['buttonLabel', 'icon']
|
|
2026
|
-
})
|
|
2027
|
-
], MdTableExpandToggle);
|
|
2028
|
-
export { MdTableExpandToggle };
|
|
2029
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTableExpandToggle, decorators: [{
|
|
2030
|
-
type: Component,
|
|
2031
|
-
args: [{
|
|
2032
|
-
selector: 'md-table-expand-toggle',
|
|
2033
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2034
|
-
template: '<ng-content></ng-content>',
|
|
2035
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2036
|
-
inputs: ['buttonLabel', 'icon'],
|
|
2037
|
-
standalone: true
|
|
2038
|
-
}]
|
|
2039
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
2040
|
-
let MdTableFoot = class MdTableFoot {
|
|
2041
|
-
constructor(c, r, z) {
|
|
2042
|
-
this.z = z;
|
|
2043
|
-
c.detach();
|
|
2044
|
-
this.el = r.nativeElement;
|
|
2045
|
-
}
|
|
2046
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTableFoot, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2047
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdTableFoot, isStandalone: true, selector: "md-table-foot", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2048
|
-
};
|
|
2049
|
-
MdTableFoot = __decorate([
|
|
2050
|
-
ProxyCmp({
|
|
2051
|
-
defineCustomElementFn: defineMdTableFoot
|
|
2052
|
-
})
|
|
2053
|
-
], MdTableFoot);
|
|
2054
|
-
export { MdTableFoot };
|
|
2055
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTableFoot, decorators: [{
|
|
2056
|
-
type: Component,
|
|
2057
|
-
args: [{
|
|
2058
|
-
selector: 'md-table-foot',
|
|
2059
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2060
|
-
template: '<ng-content></ng-content>',
|
|
2061
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2062
|
-
inputs: [],
|
|
2063
|
-
standalone: true
|
|
2064
|
-
}]
|
|
2065
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
2066
|
-
let MdTableHead = class MdTableHead {
|
|
2067
|
-
constructor(c, r, z) {
|
|
2068
|
-
this.z = z;
|
|
2069
|
-
c.detach();
|
|
2070
|
-
this.el = r.nativeElement;
|
|
2071
|
-
}
|
|
2072
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTableHead, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2073
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdTableHead, isStandalone: true, selector: "md-table-head", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2074
|
-
};
|
|
2075
|
-
MdTableHead = __decorate([
|
|
2076
|
-
ProxyCmp({
|
|
2077
|
-
defineCustomElementFn: defineMdTableHead
|
|
2078
|
-
})
|
|
2079
|
-
], MdTableHead);
|
|
2080
|
-
export { MdTableHead };
|
|
2081
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTableHead, decorators: [{
|
|
2082
|
-
type: Component,
|
|
2083
|
-
args: [{
|
|
2084
|
-
selector: 'md-table-head',
|
|
2085
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2086
|
-
template: '<ng-content></ng-content>',
|
|
2087
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2088
|
-
inputs: [],
|
|
2089
|
-
standalone: true
|
|
2090
|
-
}]
|
|
2091
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
2092
|
-
let MdTablePagination = class MdTablePagination {
|
|
2093
|
-
constructor(c, r, z) {
|
|
2094
|
-
this.z = z;
|
|
2095
|
-
c.detach();
|
|
2096
|
-
this.el = r.nativeElement;
|
|
2097
|
-
proxyOutputs(this, this.el, ['mdPageChange', 'mdRowsPerPageChange']);
|
|
2098
|
-
}
|
|
2099
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTablePagination, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2100
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdTablePagination, isStandalone: true, selector: "md-table-pagination", inputs: { compact: "compact", count: "count", density: "density", disabled: "disabled", labelAll: "labelAll", labelDisplayedRows: "labelDisplayedRows", labelFirstPage: "labelFirstPage", labelLastPage: "labelLastPage", labelNextPage: "labelNextPage", labelPreviousPage: "labelPreviousPage", labelRowsPerPage: "labelRowsPerPage", page: "page", rowsPerPage: "rowsPerPage", rowsPerPageOptions: "rowsPerPageOptions", showFirstLast: "showFirstLast" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2101
|
-
};
|
|
2102
|
-
MdTablePagination = __decorate([
|
|
2103
|
-
ProxyCmp({
|
|
2104
|
-
defineCustomElementFn: defineMdTablePagination,
|
|
2105
|
-
inputs: ['compact', 'count', 'density', 'disabled', 'labelAll', 'labelDisplayedRows', 'labelFirstPage', 'labelLastPage', 'labelNextPage', 'labelPreviousPage', 'labelRowsPerPage', 'page', 'rowsPerPage', 'rowsPerPageOptions', 'showFirstLast'],
|
|
2106
|
-
methods: ['goToPage', 'setRowsPerPage']
|
|
2107
|
-
})
|
|
2108
|
-
], MdTablePagination);
|
|
2109
|
-
export { MdTablePagination };
|
|
2110
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTablePagination, decorators: [{
|
|
2111
|
-
type: Component,
|
|
2112
|
-
args: [{
|
|
2113
|
-
selector: 'md-table-pagination',
|
|
2114
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2115
|
-
template: '<ng-content></ng-content>',
|
|
2116
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2117
|
-
inputs: ['compact', 'count', 'density', 'disabled', 'labelAll', 'labelDisplayedRows', 'labelFirstPage', 'labelLastPage', 'labelNextPage', 'labelPreviousPage', 'labelRowsPerPage', 'page', 'rowsPerPage', 'rowsPerPageOptions', 'showFirstLast'],
|
|
2118
|
-
standalone: true
|
|
2119
|
-
}]
|
|
2120
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
2121
|
-
let MdTableRow = class MdTableRow {
|
|
2122
|
-
constructor(c, r, z) {
|
|
2123
|
-
this.z = z;
|
|
2124
|
-
c.detach();
|
|
2125
|
-
this.el = r.nativeElement;
|
|
2126
|
-
proxyOutputs(this, this.el, ['mdRowClick', 'mdRowSelectionChange', 'mdRowExpandedChange']);
|
|
2127
|
-
}
|
|
2128
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTableRow, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2129
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdTableRow, isStandalone: true, selector: "md-table-row", inputs: { clickable: "clickable", disabled: "disabled", expandable: "expandable", expanded: "expanded", highlight: "highlight", rowgroup: "rowgroup", selectable: "selectable", selected: "selected", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2130
|
-
};
|
|
2131
|
-
MdTableRow = __decorate([
|
|
2132
|
-
ProxyCmp({
|
|
2133
|
-
defineCustomElementFn: defineMdTableRow,
|
|
2134
|
-
inputs: ['clickable', 'disabled', 'expandable', 'expanded', 'highlight', 'rowgroup', 'selectable', 'selected', 'value'],
|
|
2135
|
-
methods: ['toggle']
|
|
2136
|
-
})
|
|
2137
|
-
], MdTableRow);
|
|
2138
|
-
export { MdTableRow };
|
|
2139
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTableRow, decorators: [{
|
|
2140
|
-
type: Component,
|
|
2141
|
-
args: [{
|
|
2142
|
-
selector: 'md-table-row',
|
|
2143
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2144
|
-
template: '<ng-content></ng-content>',
|
|
2145
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2146
|
-
inputs: ['clickable', 'disabled', 'expandable', 'expanded', 'highlight', 'rowgroup', 'selectable', 'selected', 'value'],
|
|
2147
|
-
standalone: true
|
|
2148
|
-
}]
|
|
2149
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
2150
|
-
let MdTableSortLabel = class MdTableSortLabel {
|
|
2151
|
-
constructor(c, r, z) {
|
|
2152
|
-
this.z = z;
|
|
2153
|
-
c.detach();
|
|
2154
|
-
this.el = r.nativeElement;
|
|
2155
|
-
proxyOutputs(this, this.el, ['mdSortRequest']);
|
|
2156
|
-
}
|
|
2157
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTableSortLabel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2158
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdTableSortLabel, isStandalone: true, selector: "md-table-sort-label", inputs: { active: "active", column: "column", defaultOrder: "defaultOrder", density: "density", disabled: "disabled", icon: "icon", iconPosition: "iconPosition", inactiveIcon: "inactiveIcon", order: "order" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2159
|
-
};
|
|
2160
|
-
MdTableSortLabel = __decorate([
|
|
2161
|
-
ProxyCmp({
|
|
2162
|
-
defineCustomElementFn: defineMdTableSortLabel,
|
|
2163
|
-
inputs: ['active', 'column', 'defaultOrder', 'density', 'disabled', 'icon', 'iconPosition', 'inactiveIcon', 'order']
|
|
2164
|
-
})
|
|
2165
|
-
], MdTableSortLabel);
|
|
2166
|
-
export { MdTableSortLabel };
|
|
2167
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTableSortLabel, decorators: [{
|
|
2168
|
-
type: Component,
|
|
2169
|
-
args: [{
|
|
2170
|
-
selector: 'md-table-sort-label',
|
|
2171
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2172
|
-
template: '<ng-content></ng-content>',
|
|
2173
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2174
|
-
inputs: ['active', 'column', 'defaultOrder', 'density', 'disabled', 'icon', 'iconPosition', 'inactiveIcon', 'order'],
|
|
2175
|
-
standalone: true
|
|
2176
|
-
}]
|
|
2177
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
2178
|
-
let MdTableToolbar = class MdTableToolbar {
|
|
2179
|
-
constructor(c, r, z) {
|
|
2180
|
-
this.z = z;
|
|
2181
|
-
c.detach();
|
|
2182
|
-
this.el = r.nativeElement;
|
|
2183
|
-
}
|
|
2184
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTableToolbar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2185
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdTableToolbar, isStandalone: true, selector: "md-table-toolbar", inputs: { autoBind: "autoBind", compact: "compact", density: "density", headline: "headline", labelSelected: "labelSelected", numSelected: "numSelected", supportingText: "supportingText" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2186
|
-
};
|
|
2187
|
-
MdTableToolbar = __decorate([
|
|
2188
|
-
ProxyCmp({
|
|
2189
|
-
defineCustomElementFn: defineMdTableToolbar,
|
|
2190
|
-
inputs: ['autoBind', 'compact', 'density', 'headline', 'labelSelected', 'numSelected', 'supportingText']
|
|
2191
|
-
})
|
|
2192
|
-
], MdTableToolbar);
|
|
2193
|
-
export { MdTableToolbar };
|
|
2194
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTableToolbar, decorators: [{
|
|
2195
|
-
type: Component,
|
|
2196
|
-
args: [{
|
|
2197
|
-
selector: 'md-table-toolbar',
|
|
2198
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2199
|
-
template: '<ng-content></ng-content>',
|
|
2200
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2201
|
-
inputs: ['autoBind', 'compact', 'density', 'headline', 'labelSelected', 'numSelected', 'supportingText'],
|
|
2202
|
-
standalone: true
|
|
2203
|
-
}]
|
|
2204
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
2205
|
-
let MdTabs = class MdTabs {
|
|
2206
|
-
constructor(c, r, z) {
|
|
2207
|
-
this.z = z;
|
|
2208
|
-
c.detach();
|
|
2209
|
-
this.el = r.nativeElement;
|
|
2210
|
-
proxyOutputs(this, this.el, ['mdTabChange']);
|
|
2211
|
-
}
|
|
2212
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTabs, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2213
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdTabs, isStandalone: true, selector: "md-tabs", inputs: { activeTabIndex: "activeTabIndex", ariaLabelProp: "ariaLabelProp", divider: "divider", tabWidth: "tabWidth", variant: "variant", width: "width" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2214
|
-
};
|
|
2215
|
-
MdTabs = __decorate([
|
|
2216
|
-
ProxyCmp({
|
|
2217
|
-
defineCustomElementFn: defineMdTabs,
|
|
2218
|
-
inputs: ['activeTabIndex', 'ariaLabelProp', 'divider', 'tabWidth', 'variant', 'width'],
|
|
2219
|
-
methods: ['selectTab']
|
|
2220
|
-
})
|
|
2221
|
-
], MdTabs);
|
|
2222
|
-
export { MdTabs };
|
|
2223
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTabs, decorators: [{
|
|
2224
|
-
type: Component,
|
|
2225
|
-
args: [{
|
|
2226
|
-
selector: 'md-tabs',
|
|
2227
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2228
|
-
template: '<ng-content></ng-content>',
|
|
2229
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2230
|
-
inputs: ['activeTabIndex', 'ariaLabelProp', 'divider', 'tabWidth', 'variant', 'width'],
|
|
2231
|
-
standalone: true
|
|
2232
|
-
}]
|
|
2233
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
2234
|
-
let MdTextField = class MdTextField {
|
|
2235
|
-
constructor(c, r, z) {
|
|
2236
|
-
this.z = z;
|
|
2237
|
-
c.detach();
|
|
2238
|
-
this.el = r.nativeElement;
|
|
2239
|
-
proxyOutputs(this, this.el, ['mdInput', 'mdChange', 'mdSearch', 'mdClear', 'mdPasswordToggle', 'mdSpeechResult', 'mdValidityChange']);
|
|
2240
|
-
}
|
|
2241
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTextField, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2242
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdTextField, isStandalone: true, selector: "md-text-field", inputs: { appearFocused: "appearFocused", autoCapitalize: "autoCapitalize", autocomplete: "autocomplete", chipsWrap: "chipsWrap", clearable: "clearable", debounce: "debounce", density: "density", disabled: "disabled", enterKeyHint: "enterKeyHint", error: "error", errorText: "errorText", focusBorderWidth: "focusBorderWidth", formatOn: "formatOn", formatter: "formatter", inputAriaAutocomplete: "inputAriaAutocomplete", inputExpanded: "inputExpanded", inputMode: "inputMode", inputRole: "inputRole", label: "label", max: "max", maxLength: "maxLength", min: "min", minLength: "minLength", multiline: "multiline", name: "name", parser: "parser", passwordToggle: "passwordToggle", pattern: "pattern", placeholder: "placeholder", prefixText: "prefixText", readOnly: "readOnly", required: "required", reserveSupportingSpace: "reserveSupportingSpace", restrict: "restrict", rows: "rows", speechLang: "speechLang", speechToText: "speechToText", spellcheck: "spellcheck", step: "step", suffixText: "suffixText", supportingText: "supportingText", throttle: "throttle", type: "type", value: "value", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2243
|
-
};
|
|
2244
|
-
MdTextField = __decorate([
|
|
2245
|
-
ProxyCmp({
|
|
2246
|
-
defineCustomElementFn: defineMdTextField,
|
|
2247
|
-
inputs: ['appearFocused', 'autoCapitalize', 'autocomplete', 'chipsWrap', 'clearable', 'debounce', 'density', 'disabled', 'enterKeyHint', 'error', 'errorText', 'focusBorderWidth', 'formatOn', 'formatter', 'inputAriaAutocomplete', 'inputExpanded', 'inputMode', 'inputRole', 'label', 'max', 'maxLength', 'min', 'minLength', 'multiline', 'name', 'parser', 'passwordToggle', 'pattern', 'placeholder', 'prefixText', 'readOnly', 'required', 'reserveSupportingSpace', 'restrict', 'rows', 'speechLang', 'speechToText', 'spellcheck', 'step', 'suffixText', 'supportingText', 'throttle', 'type', 'value', 'variant'],
|
|
2248
|
-
methods: ['setFocus', 'select', 'getInputElement', 'getValidity', 'setCustomValidity', 'checkValidity', 'reportValidity']
|
|
2249
|
-
})
|
|
2250
|
-
], MdTextField);
|
|
2251
|
-
export { MdTextField };
|
|
2252
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTextField, decorators: [{
|
|
2253
|
-
type: Component,
|
|
2254
|
-
args: [{
|
|
2255
|
-
selector: 'md-text-field',
|
|
2256
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2257
|
-
template: '<ng-content></ng-content>',
|
|
2258
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2259
|
-
inputs: ['appearFocused', 'autoCapitalize', 'autocomplete', 'chipsWrap', 'clearable', 'debounce', 'density', 'disabled', 'enterKeyHint', 'error', 'errorText', 'focusBorderWidth', 'formatOn', 'formatter', 'inputAriaAutocomplete', 'inputExpanded', 'inputMode', 'inputRole', 'label', 'max', 'maxLength', 'min', 'minLength', 'multiline', 'name', 'parser', 'passwordToggle', 'pattern', 'placeholder', 'prefixText', 'readOnly', 'required', 'reserveSupportingSpace', 'restrict', 'rows', 'speechLang', 'speechToText', 'spellcheck', 'step', 'suffixText', 'supportingText', 'throttle', 'type', 'value', 'variant'],
|
|
2260
|
-
standalone: true
|
|
2261
|
-
}]
|
|
2262
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
2263
|
-
let MdTimePicker = class MdTimePicker {
|
|
2264
|
-
constructor(c, r, z) {
|
|
2265
|
-
this.z = z;
|
|
2266
|
-
c.detach();
|
|
2267
|
-
this.el = r.nativeElement;
|
|
2268
|
-
proxyOutputs(this, this.el, ['mdChange', 'mdInput', 'mdOpen', 'mdClose', 'mdCancel', 'mdModeChange', 'mdValidityChange']);
|
|
2269
|
-
}
|
|
2270
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTimePicker, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2271
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdTimePicker, isStandalone: true, selector: "md-time-picker", inputs: { amLabel: "amLabel", cancelLabel: "cancelLabel", density: "density", disabled: "disabled", error: "error", errorText: "errorText", format: "format", headline: "headline", headlineDialLabel: "headlineDialLabel", headlineInputLabel: "headlineInputLabel", hideTrigger: "hideTrigger", hourLabel: "hourLabel", label: "label", max: "max", min: "min", minuteLabel: "minuteLabel", minuteStep: "minuteStep", name: "name", okLabel: "okLabel", open: "open", orientation: "orientation", periodLabel: "periodLabel", periodLayout: "periodLayout", pmLabel: "pmLabel", rangeOutsideLabel: "rangeOutsideLabel", rangeOverflowLabel: "rangeOverflowLabel", rangeUnderflowLabel: "rangeUnderflowLabel", required: "required", reserveSupportingSpace: "reserveSupportingSpace", responsive: "responsive", supportingText: "supportingText", toggleDialLabel: "toggleDialLabel", toggleInputLabel: "toggleInputLabel", value: "value", valueMissingLabel: "valueMissingLabel", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2272
|
-
};
|
|
2273
|
-
MdTimePicker = __decorate([
|
|
2274
|
-
ProxyCmp({
|
|
2275
|
-
defineCustomElementFn: defineMdTimePicker,
|
|
2276
|
-
inputs: ['amLabel', 'cancelLabel', 'density', 'disabled', 'error', 'errorText', 'format', 'headline', 'headlineDialLabel', 'headlineInputLabel', 'hideTrigger', 'hourLabel', 'label', 'max', 'min', 'minuteLabel', 'minuteStep', 'name', 'okLabel', 'open', 'orientation', 'periodLabel', 'periodLayout', 'pmLabel', 'rangeOutsideLabel', 'rangeOverflowLabel', 'rangeUnderflowLabel', 'required', 'reserveSupportingSpace', 'responsive', 'supportingText', 'toggleDialLabel', 'toggleInputLabel', 'value', 'valueMissingLabel', 'variant'],
|
|
2277
|
-
methods: ['show', 'hide', 'checkValidity', 'reportValidity', 'getValidity']
|
|
2278
|
-
})
|
|
2279
|
-
], MdTimePicker);
|
|
2280
|
-
export { MdTimePicker };
|
|
2281
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTimePicker, decorators: [{
|
|
2282
|
-
type: Component,
|
|
2283
|
-
args: [{
|
|
2284
|
-
selector: 'md-time-picker',
|
|
2285
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2286
|
-
template: '<ng-content></ng-content>',
|
|
2287
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2288
|
-
inputs: ['amLabel', 'cancelLabel', 'density', 'disabled', 'error', 'errorText', 'format', 'headline', 'headlineDialLabel', 'headlineInputLabel', 'hideTrigger', 'hourLabel', 'label', 'max', 'min', 'minuteLabel', 'minuteStep', 'name', 'okLabel', 'open', 'orientation', 'periodLabel', 'periodLayout', 'pmLabel', 'rangeOutsideLabel', 'rangeOverflowLabel', 'rangeUnderflowLabel', 'required', 'reserveSupportingSpace', 'responsive', 'supportingText', 'toggleDialLabel', 'toggleInputLabel', 'value', 'valueMissingLabel', 'variant'],
|
|
2289
|
-
standalone: true
|
|
2290
|
-
}]
|
|
2291
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
2292
|
-
let MdToolbar = class MdToolbar {
|
|
2293
|
-
constructor(c, r, z) {
|
|
2294
|
-
this.z = z;
|
|
2295
|
-
c.detach();
|
|
2296
|
-
this.el = r.nativeElement;
|
|
2297
|
-
}
|
|
2298
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdToolbar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2299
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdToolbar, isStandalone: true, selector: "md-toolbar", inputs: { alignment: "alignment", ariaLabelProp: "ariaLabelProp", ariaLabelledby: "ariaLabelledby", color: "color", containerSemantics: "containerSemantics", density: "density", layout: "layout", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2300
|
-
};
|
|
2301
|
-
MdToolbar = __decorate([
|
|
2302
|
-
ProxyCmp({
|
|
2303
|
-
defineCustomElementFn: defineMdToolbar,
|
|
2304
|
-
inputs: ['alignment', 'ariaLabelProp', 'ariaLabelledby', 'color', 'containerSemantics', 'density', 'layout', 'variant'],
|
|
2305
|
-
methods: ['setFocus']
|
|
2306
|
-
})
|
|
2307
|
-
], MdToolbar);
|
|
2308
|
-
export { MdToolbar };
|
|
2309
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdToolbar, decorators: [{
|
|
2310
|
-
type: Component,
|
|
2311
|
-
args: [{
|
|
2312
|
-
selector: 'md-toolbar',
|
|
2313
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2314
|
-
template: '<ng-content></ng-content>',
|
|
2315
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2316
|
-
inputs: ['alignment', 'ariaLabelProp', 'ariaLabelledby', 'color', 'containerSemantics', 'density', 'layout', 'variant'],
|
|
2317
|
-
standalone: true
|
|
2318
|
-
}]
|
|
2319
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
2320
|
-
let MdTooltip = class MdTooltip {
|
|
2321
|
-
constructor(c, r, z) {
|
|
2322
|
-
this.z = z;
|
|
2323
|
-
c.detach();
|
|
2324
|
-
this.el = r.nativeElement;
|
|
2325
|
-
proxyOutputs(this, this.el, ['mdOpen', 'mdClose']);
|
|
2326
|
-
}
|
|
2327
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2328
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdTooltip, isStandalone: true, selector: "md-tooltip", inputs: { autoPosition: "autoPosition", crossOffset: "crossOffset", density: "density", disabled: "disabled", hideDelay: "hideDelay", offset: "offset", open: "open", position: "position", showDelay: "showDelay", subhead: "subhead", text: "text", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2329
|
-
};
|
|
2330
|
-
MdTooltip = __decorate([
|
|
2331
|
-
ProxyCmp({
|
|
2332
|
-
defineCustomElementFn: defineMdTooltip,
|
|
2333
|
-
inputs: ['autoPosition', 'crossOffset', 'density', 'disabled', 'hideDelay', 'offset', 'open', 'position', 'showDelay', 'subhead', 'text', 'variant'],
|
|
2334
|
-
methods: ['show', 'hide']
|
|
2335
|
-
})
|
|
2336
|
-
], MdTooltip);
|
|
2337
|
-
export { MdTooltip };
|
|
2338
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTooltip, decorators: [{
|
|
2339
|
-
type: Component,
|
|
2340
|
-
args: [{
|
|
2341
|
-
selector: 'md-tooltip',
|
|
2342
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2343
|
-
template: '<ng-content></ng-content>',
|
|
2344
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2345
|
-
inputs: ['autoPosition', 'crossOffset', 'density', 'disabled', 'hideDelay', 'offset', 'open', 'position', 'showDelay', 'subhead', 'text', 'variant'],
|
|
2346
|
-
standalone: true
|
|
2347
|
-
}]
|
|
2348
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
2349
|
-
let MdTransferList = class MdTransferList {
|
|
2350
|
-
constructor(c, r, z) {
|
|
2351
|
-
this.z = z;
|
|
2352
|
-
c.detach();
|
|
2353
|
-
this.el = r.nativeElement;
|
|
2354
|
-
proxyOutputs(this, this.el, ['mdChange', 'mdMove']);
|
|
2355
|
-
}
|
|
2356
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTransferList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2357
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MdTransferList, isStandalone: true, selector: "md-transfer-list", inputs: { countTemplate: "countTemplate", density: "density", disabled: "disabled", emptyIcon: "emptyIcon", emptyText: "emptyText", items: "items", moveAllLeftIcon: "moveAllLeftIcon", moveAllLeftLabel: "moveAllLeftLabel", moveAllRightIcon: "moveAllRightIcon", moveAllRightLabel: "moveAllRightLabel", moveLeftIcon: "moveLeftIcon", moveLeftLabel: "moveLeftLabel", moveRightIcon: "moveRightIcon", moveRightLabel: "moveRightLabel", searchIcon: "searchIcon", searchable: "searchable", showSelectAll: "showSelectAll", singleStepOnly: "singleStepOnly", sourceSearchPlaceholder: "sourceSearchPlaceholder", sourceTitle: "sourceTitle", targetSearchPlaceholder: "targetSearchPlaceholder", targetTitle: "targetTitle", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2358
|
-
};
|
|
2359
|
-
MdTransferList = __decorate([
|
|
2360
|
-
ProxyCmp({
|
|
2361
|
-
defineCustomElementFn: defineMdTransferList,
|
|
2362
|
-
inputs: ['countTemplate', 'density', 'disabled', 'emptyIcon', 'emptyText', 'items', 'moveAllLeftIcon', 'moveAllLeftLabel', 'moveAllRightIcon', 'moveAllRightLabel', 'moveLeftIcon', 'moveLeftLabel', 'moveRightIcon', 'moveRightLabel', 'searchIcon', 'searchable', 'showSelectAll', 'singleStepOnly', 'sourceSearchPlaceholder', 'sourceTitle', 'targetSearchPlaceholder', 'targetTitle', 'value'],
|
|
2363
|
-
methods: ['moveSelectedRight', 'moveSelectedLeft']
|
|
2364
|
-
})
|
|
2365
|
-
], MdTransferList);
|
|
2366
|
-
export { MdTransferList };
|
|
2367
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MdTransferList, decorators: [{
|
|
2368
|
-
type: Component,
|
|
2369
|
-
args: [{
|
|
2370
|
-
selector: 'md-transfer-list',
|
|
2371
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2372
|
-
template: '<ng-content></ng-content>',
|
|
2373
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
2374
|
-
inputs: ['countTemplate', 'density', 'disabled', 'emptyIcon', 'emptyText', 'items', 'moveAllLeftIcon', 'moveAllLeftLabel', 'moveAllRightIcon', 'moveAllRightLabel', 'moveLeftIcon', 'moveLeftLabel', 'moveRightIcon', 'moveRightLabel', 'searchIcon', 'searchable', 'showSelectAll', 'singleStepOnly', 'sourceSearchPlaceholder', 'sourceTitle', 'targetSearchPlaceholder', 'targetTitle', 'value'],
|
|
2375
|
-
standalone: true
|
|
2376
|
-
}]
|
|
2377
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
|
|
2378
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kaXJlY3RpdmVzL3Byb3hpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9CQUFvQjtBQUNwQiw4Q0FBOEM7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBRXhILE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJdkUsT0FBTyxFQUFFLG1CQUFtQixJQUFJLGlCQUFpQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDeEcsT0FBTyxFQUFFLG1CQUFtQixJQUFJLHFCQUFxQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDakgsT0FBTyxFQUFFLG1CQUFtQixJQUFJLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ25HLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxpQkFBaUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxvQkFBb0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzlHLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxjQUFjLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNsRyxPQUFPLEVBQUUsbUJBQW1CLElBQUksYUFBYSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDaEcsT0FBTyxFQUFFLG1CQUFtQixJQUFJLGdCQUFnQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDdkcsT0FBTyxFQUFFLG1CQUFtQixJQUFJLG1CQUFtQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDN0csT0FBTyxFQUFFLG1CQUFtQixJQUFJLHNCQUFzQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDbkgsT0FBTyxFQUFFLG1CQUFtQixJQUFJLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDNUcsT0FBTyxFQUFFLG1CQUFtQixJ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QUFFLHlCQUF5QixFQUFFLGFBQWEsRUFBRSx5QkFBeUIsRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDO1FBQ25ZLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixFQUFFLGtCQUFrQixDQUFDO0tBQ25ELENBQUM7R0FTVyxjQUFjLENBTzFCOzs0RkFQWSxjQUFjO2tCQVIxQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLHlCQUF5QixFQUFFLGFBQWEsRUFBRSx5QkFBeUIsRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDO29CQUNuWSxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuLyogYXV0by1nZW5lcmF0ZWQgYW5ndWxhciBkaXJlY3RpdmUgcHJveGllcyAqL1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFByb3h5Q21wLCBwcm94eU91dHB1dHMgfSBmcm9tICcuL2FuZ3VsYXItY29tcG9uZW50LWxpYi91dGlscyc7XG5cbmltcG9ydCB0eXBlIHsgQ29tcG9uZW50cyB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kQWNjb3JkaW9uIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1hY2NvcmRpb24uanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEFjY29yZGlvbkl0ZW0gfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLWFjY29yZGlvbi1pdGVtLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRBcHBCYXIgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLWFwcC1iYXIuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEFyZWFDaGFydCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtYXJlYS1jaGFydC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kQXV0b2NvbXBsZXRlIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1hdXRvY29tcGxldGUuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEF2YXRhciB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtYXZhdGFyLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRCYWRnZSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtYmFkZ2UuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEJhckNoYXJ0IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1iYXItY2hhcnQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEJvdHRvbVNoZWV0IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1ib3R0b20tc2hlZXQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEJyZWFkY3J1bWJJdGVtIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1icmVhZGNydW1iLWl0ZW0uanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEJyZWFkY3J1bWJzIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1icmVhZGNydW1icy5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kQnV0dG9uIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1idXR0b24uanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEJ1dHRvbkdyb3VwIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1idXR0b24tZ3JvdXAuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZENhcmQgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLWNhcmQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZENoZWNrYm94IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1jaGVja2JveC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kQ2hpcCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtY2hpcC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kQ29sb3JQaWNrZXIgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLWNvbG9yLXBpY2tlci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kRGF0ZVBpY2tlciB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtZGF0ZS1waWNrZXIuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZERpYWxvZyB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtZGlhbG9nLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWREaXZpZGVyIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1kaXZpZGVyLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRGYWIgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLWZhYi5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kRmFiTWVudSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtZmFiLW1lbnUuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZEZhYk1lbnVJdGVtIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1mYWItbWVudS1pdGVtLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRJY29uQnV0dG9uIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1pY29uLWJ1dHRvbi5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kTGluZUNoYXJ0IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1saW5lLWNoYXJ0LmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRMaXN0IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1saXN0LmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRMaXN0SXRlbSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtbGlzdC1pdGVtLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRMb2FkaW5nSW5kaWNhdG9yIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1sb2FkaW5nLWluZGljYXRvci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kTWVudSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtbWVudS5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kTWVudUl0ZW0gfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLW1lbnUtaXRlbS5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kTWVudUl0ZW1Hcm91cCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtbWVudS1pdGVtLWdyb3VwLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRNZXRlciB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtbWV0ZXIuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZE11bHRpU2VsZWN0IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1tdWx0aS1zZWxlY3QuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZE5hdmlnYXRpb25CYXIgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLW5hdmlnYXRpb24tYmFyLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWROYXZpZ2F0aW9uUmFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtbmF2aWdhdGlvbi1yYWlsLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWROYXZpZ2F0aW9uUmFpbFRhYiB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtbmF2aWdhdGlvbi1yYWlsLXRhYi5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kTmF2aWdhdGlvblRhYiB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtbmF2aWdhdGlvbi10YWIuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZE51bWJlckZpZWxkIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1udW1iZXItZmllbGQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZE9yZ2FuaXphdGlvbkNoYXJ0IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1vcmdhbml6YXRpb24tY2hhcnQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZE90cEZpZWxkIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1vdHAtZmllbGQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFBpZUNoYXJ0IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1waWUtY2hhcnQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFByb2dyZXNzSW5kaWNhdG9yIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1wcm9ncmVzcy1pbmRpY2F0b3IuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFJhZGlvIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1yYWRpby5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kUmF0aW5nIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1yYXRpbmcuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFJpcHBsZSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtcmlwcGxlLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRTZWFyY2ggfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXNlYXJjaC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kU2VnbWVudGVkQnV0dG9uIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1zZWdtZW50ZWQtYnV0dG9uLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRTZWdtZW50ZWRCdXR0b25TZXQgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXNlZ21lbnRlZC1idXR0b24tc2V0LmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRTZWxlY3QgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXNlbGVjdC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kU2VsZWN0T3B0aW9uIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1zZWxlY3Qtb3B0aW9uLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRTaWRlU2hlZXQgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXNpZGUtc2hlZXQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFNrZWxldG9uIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1za2VsZXRvbi5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kU2xpZGVyIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1zbGlkZXIuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFNuYWNrYmFyIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1zbmFja2Jhci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kU3BhcmtsaW5lIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1zcGFya2xpbmUuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFNwbGl0QnV0dG9uIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC1zcGxpdC1idXR0b24uanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFN0YXR1c0RvdCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtc3RhdHVzLWRvdC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kU3RlcCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtc3RlcC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kU3RlcHBlciB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtc3RlcHBlci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kU3ViTWVudUl0ZW0gfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXN1Yi1tZW51LWl0ZW0uanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFN3aXRjaCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtc3dpdGNoLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRUYWIgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXRhYi5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVGFiUGFuZWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXRhYi1wYW5lbC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVGFiUGFuZWxzIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC10YWItcGFuZWxzLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRUYWJsZSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdGFibGUuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFRhYmxlQm9keSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdGFibGUtYm9keS5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVGFibGVDZWxsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC10YWJsZS1jZWxsLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRUYWJsZUNvbnRhaW5lciB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdGFibGUtY29udGFpbmVyLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRUYWJsZUV4cGFuZFRvZ2dsZSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdGFibGUtZXhwYW5kLXRvZ2dsZS5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVGFibGVGb290IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC10YWJsZS1mb290LmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRUYWJsZUhlYWQgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXRhYmxlLWhlYWQuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFRhYmxlUGFnaW5hdGlvbiB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdGFibGUtcGFnaW5hdGlvbi5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVGFibGVSb3cgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXRhYmxlLXJvdy5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVGFibGVTb3J0TGFiZWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzL21kLXRhYmxlLXNvcnQtbGFiZWwuanMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCBhcyBkZWZpbmVNZFRhYmxlVG9vbGJhciB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdGFibGUtdG9vbGJhci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVGFicyB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdGFicy5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVGV4dEZpZWxkIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC10ZXh0LWZpZWxkLmpzJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnQgYXMgZGVmaW5lTWRUaW1lUGlja2VyIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC10aW1lLXBpY2tlci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVG9vbGJhciB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdG9vbGJhci5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVG9vbHRpcCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMvbWQtdG9vbHRpcC5qcyc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50IGFzIGRlZmluZU1kVHJhbnNmZXJMaXN0IH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cy9tZC10cmFuc2Zlci1saXN0LmpzJztcbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRBY2NvcmRpb24sXG4gIGlucHV0czogWydicmluZ1RvRnJvbnQnLCAnZGVmYXVsdEV4cGFuZGVkJywgJ2RlbnNpdHknLCAnZWxldmF0aW9uJywgJ2V4Y2x1c2l2ZScsICdmbG9hdGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaW5pdGlhbFgnLCAnaW5pdGlhbFknLCAna2VlcE9uZUV4cGFuZGVkJywgJ3JlZ2lvbicsICdyZWdpb25UaHJlc2hvbGQnLCAncmVvcmRlcmFibGUnLCAndHJhbnNpdGlvbicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1hY2NvcmRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JyaW5nVG9Gcm9udCcsICdkZWZhdWx0RXhwYW5kZWQnLCAnZGVuc2l0eScsICdlbGV2YXRpb24nLCAnZXhjbHVzaXZlJywgJ2Zsb2F0aW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpbml0aWFsWCcsICdpbml0aWFsWScsICdrZWVwT25lRXhwYW5kZWQnLCAncmVnaW9uJywgJ3JlZ2lvblRocmVzaG9sZCcsICdyZW9yZGVyYWJsZScsICd0cmFuc2l0aW9uJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZEFjY29yZGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kVG9nZ2xlJywgJ21kUmVvcmRlcicsICdtZERyYWdTdGFydCcsICdtZERyYWdNb3ZlJywgJ21kRHJhZ0VuZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRBY2NvcmRpb25EcmFnRGV0YWlsIGFzIElNZEFjY29yZGlvbk1kQWNjb3JkaW9uRHJhZ0RldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRBY2NvcmRpb24gZXh0ZW5kcyBDb21wb25lbnRzLk1kQWNjb3JkaW9uIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhbiBpdGVtIGV4cGFuZHMgb3IgY29sbGFwc2VzLiBEZXRhaWwgY2FycmllcyB0aGVcbmZ1bGwgc2V0IG9mIGV4cGFuZGVkIGluZGljZXMuXG4gICAqL1xuICBtZFRvZ2dsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgaW5kZXg6IG51bWJlcjsgZXhwYW5kZWQ6IGJvb2xlYW47IGV4cGFuZGVkSW5kaWNlczogbnVtYmVyW107IH0+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBpdGVtcyBhcmUgcmVvcmRlcmVkIHZpYSBkcmFnLWFuZC1kcm9wIG9yIGtleWJvYXJkXG4oQWx0K0Fycm93VXAgLyBBbHQrQXJyb3dEb3duKS4gYG9yZGVyYCBpcyB0aGUgbmV3IGluZGV4IHNlcXVlbmNlXG5yZWxhdGl2ZSB0byB0aGUgb3JpZ2luYWwgb3JkZXIsIGUuZy4gbW92aW5nIHRoZSBpdGVtIHRoYXQgd2FzIGF0XG5pbmRleCAwIHRvIGluZGV4IDIgeWllbGRzIGBvcmRlcjogWzEsIDIsIDBdYC5cbiAgICovXG4gIG1kUmVvcmRlcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgZnJvbTogbnVtYmVyOyB0bzogbnVtYmVyOyBvcmRlcjogbnVtYmVyW107IH0+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgb25jZSBhIGZsb2F0aW5nIHBhbmVsIHN0YXJ0cyBiZWluZyBkcmFnZ2VkLlxuICAgKi9cbiAgbWREcmFnU3RhcnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRBY2NvcmRpb25NZEFjY29yZGlvbkRyYWdEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgY29udGludW91c2x5IHdoaWxlIGEgZmxvYXRpbmcgcGFuZWwgaXMgYmVpbmcgZHJhZ2dlZC5cbiAgICovXG4gIG1kRHJhZ01vdmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRBY2NvcmRpb25NZEFjY29yZGlvbkRyYWdEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhIGZsb2F0aW5nIHBhbmVsIGlzIHJlbGVhc2VkLlxuICAgKi9cbiAgbWREcmFnRW5kOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kQWNjb3JkaW9uTWRBY2NvcmRpb25EcmFnRGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZEFjY29yZGlvbkl0ZW0sXG4gIGlucHV0czogWydjb2xsYXBzaWJsZScsICdjb250ZW50TWF4SGVpZ2h0JywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZXhwYW5kZWQnLCAnaGVhZGluZ0xldmVsJywgJ2hlYWRsaW5lJywgJ2ljb24nLCAncmVnaW9uUm9sZScsICdzdXBwb3J0aW5nVGV4dCddLFxuICBtZXRob2RzOiBbJ3RvZ2dsZScsICdmb2N1c0hlYWRlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtYWNjb3JkaW9uLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbGxhcHNpYmxlJywgJ2NvbnRlbnRNYXhIZWlnaHQnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdleHBhbmRlZCcsICdoZWFkaW5nTGV2ZWwnLCAnaGVhZGxpbmUnLCAnaWNvbicsICdyZWdpb25Sb2xlJywgJ3N1cHBvcnRpbmdUZXh0J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRBY2NvcmRpb25JdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRJdGVtVG9nZ2xlJywgJ21kSXRlbVJlcXVlc3RGb2N1cycsICdtZEl0ZW1SZXF1ZXN0UmVvcmRlciddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZEFjY29yZGlvbkl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLk1kQWNjb3JkaW9uSXRlbSB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW5ldmVyIHRoZSBpdGVtIHRvZ2dsZXMuIFRoZSBwYXJlbnQgYG1kLWFjY29yZGlvbmAgdXNlc1xudGhpcyB0byBjb29yZGluYXRlIGV4Y2x1c2l2ZSBtb2RlLlxuICAgKi9cbiAgbWRJdGVtVG9nZ2xlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBleHBhbmRlZDogYm9vbGVhbjsgaW5kZXg6IG51bWJlciB9Pj47XG4gIC8qKlxuICAgKiBJbnRlcm5hbCBldmVudCB0aGUgcGFyZW50IGxpc3RlbnMgdG8gZm9yIGFycm93LWtleSByb3ZpbmcgZm9jdXMuXG5CdWJibGVzICsgY29tcG9zZWQgc28gdGhlIHBhcmVudCByZWNlaXZlcyBpdCB0aHJvdWdoIHRoZSBzaGFkb3cuXG4gICAqL1xuICBtZEl0ZW1SZXF1ZXN0Rm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGRpcmVjdGlvbjogJ25leHQnIHwgJ3ByZXYnIHwgJ2ZpcnN0JyB8ICdsYXN0JzsgZnJvbTogbnVtYmVyOyB9Pj47XG4gIC8qKlxuICAgKiBJbnRlcm5hbCBldmVudCB0aGUgcGFyZW50IGxpc3RlbnMgdG8gZm9yIEFsdCtBcnJvdyBrZXlib2FyZFxucmVvcmRlcmluZy4gQnViYmxlcyArIGNvbXBvc2VkIHNvIHRoZSBwYXJlbnQgcmVjZWl2ZXMgaXRcbnRocm91Z2ggdGhlIHNoYWRvdy5cbiAgICovXG4gIG1kSXRlbVJlcXVlc3RSZW9yZGVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBkaXJlY3Rpb246ICd1cCcgfCAnZG93bic7IGZyb206IG51bWJlcjsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRBcHBCYXIsXG4gIGlucHV0czogWydkZW5zaXR5JywgJ2hlYWRsaW5lJywgJ2xlYWRpbmdJY29uJywgJ2xlYWRpbmdJY29uTGFiZWwnLCAnc2Nyb2xsZWQnLCAnc2VhcmNoQXJpYUxhYmVsJywgJ3NlYXJjaERpc2FibGVkJywgJ3NlYXJjaFBsYWNlaG9sZGVyJywgJ3NlYXJjaFZhbHVlJywgJ3N1YnRpdGxlJywgJ3RpdGxlQWxpZ25tZW50JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLWFwcC1iYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnaGVhZGxpbmUnLCAnbGVhZGluZ0ljb24nLCAnbGVhZGluZ0ljb25MYWJlbCcsICdzY3JvbGxlZCcsICdzZWFyY2hBcmlhTGFiZWwnLCAnc2VhcmNoRGlzYWJsZWQnLCAnc2VhcmNoUGxhY2Vob2xkZXInLCAnc2VhcmNoVmFsdWUnLCAnc3VidGl0bGUnLCAndGl0bGVBbGlnbm1lbnQnLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kQXBwQmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRMZWFkaW5nQ2xpY2snLCAnbWRTZWFyY2hBY3RpdmF0ZScsICdtZFNlYXJjaElucHV0J10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kQXBwQmFyIGV4dGVuZHMgQ29tcG9uZW50cy5NZEFwcEJhciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHByb3AtYmFzZWQgbGVhZGluZyBpY29uIGJ1dHRvbiBpcyBhY3RpdmF0ZWQuXG4gICAqL1xuICBtZExlYWRpbmdDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PE1vdXNlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFNlYXJjaCB2YXJpYW50IG9ubHk6IGVtaXR0ZWQgd2hlbiB0aGUgaW5saW5lIHNlYXJjaCBmaWVsZCBpcyBzZWxlY3RlZFxuKGNsaWNrLCBmb2N1cywgRW50ZXIsIG9yIFNwYWNlKS4gV2lyZSB0aGlzIHRvIGBtZC1zZWFyY2guc2hvdygpYCB0byBvcGVuXG50aGUgZnVsbC1zY3JlZW4gc2VhcmNoIHZpZXcgcGVyIHRoZSBNRDMgc3BlYy5cbiAgICovXG4gIG1kU2VhcmNoQWN0aXZhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbHVlOiBzdHJpbmcgfT4+O1xuICAvKipcbiAgICogU2VhcmNoIHZhcmlhbnQgb25seTogZW1pdHRlZCBvbiBldmVyeSBpbmxpbmUgc2VhcmNoIGZpZWxkIGlucHV0IGNoYW5nZS5cbiAgICovXG4gIG1kU2VhcmNoSW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbHVlOiBzdHJpbmcgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRBcmVhQ2hhcnQsXG4gIGlucHV0czogWydhbmltYXRpb24nLCAnYW5pbWF0aW9uRHVyYXRpb24nLCAnYXhpc1RpY2tzJywgJ2Nvbm5lY3ROdWxscycsICdjdXJ2ZScsICdkZW5zaXR5JywgJ2ZpbGxPcGFjaXR5JywgJ2dyaWQnLCAnaGVpZ2h0UHJvcCcsICdpbnZlcnRlZCcsICdsYWJlbCcsICdsYWJlbEVtcHR5JywgJ2xhYmVsUGxvdCcsICdsYWJlbFBvaW50JywgJ2xhYmVsWm9vbUVuZCcsICdsYWJlbFpvb21TdGFydCcsICdsZWdlbmQnLCAnbGluZVdpZHRoJywgJ2xvYWRpbmcnLCAnbG9hZGluZ0xhYmVsJywgJ2xvY2FsZScsICdtYXJrU2l6ZScsICdub0FuaW1hdGlvbicsICdzZXJpZXMnLCAnc2VyaWVzTGFiZWxzJywgJ3Nob3dMYWJlbHMnLCAnc2hvd0xpbmUnLCAnc2hvd01hcmtzJywgJ3N0YWNrJywgJ3N1YnRpdGxlJywgJ3N1bW1hcnknLCAndGFibGVMYWJlbHMnLCAndGl0bGVBbGlnbicsICd0b29sdGlwJywgJ3Rvb2x0aXBSZW5kZXJlcicsICd2YWx1ZUZvcm1hdHRlcicsICd4QXhpcycsICd5QXhpcycsICd6b29tJ10sXG4gIG1ldGhvZHM6IFsncmVmcmVzaFRoZW1lJywgJ3Jlc2l6ZScsICdyZXBsYXknLCAndG9EYXRhVVJMJywgJ2dldEluc3RhbmNlJywgJ3NldFpvb20nLCAncmVzZXRab29tJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1hcmVhLWNoYXJ0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmltYXRpb24nLCAnYW5pbWF0aW9uRHVyYXRpb24nLCAnYXhpc1RpY2tzJywgJ2Nvbm5lY3ROdWxscycsICdjdXJ2ZScsICdkZW5zaXR5JywgJ2ZpbGxPcGFjaXR5JywgJ2dyaWQnLCAnaGVpZ2h0UHJvcCcsICdpbnZlcnRlZCcsICdsYWJlbCcsICdsYWJlbEVtcHR5JywgJ2xhYmVsUGxvdCcsICdsYWJlbFBvaW50JywgJ2xhYmVsWm9vbUVuZCcsICdsYWJlbFpvb21TdGFydCcsICdsZWdlbmQnLCAnbGluZVdpZHRoJywgJ2xvYWRpbmcnLCAnbG9hZGluZ0xhYmVsJywgJ2xvY2FsZScsICdtYXJrU2l6ZScsICdub0FuaW1hdGlvbicsICdzZXJpZXMnLCAnc2VyaWVzTGFiZWxzJywgJ3Nob3dMYWJlbHMnLCAnc2hvd0xpbmUnLCAnc2hvd01hcmtzJywgJ3N0YWNrJywgJ3N1YnRpdGxlJywgJ3N1bW1hcnknLCAndGFibGVMYWJlbHMnLCAndGl0bGVBbGlnbicsICd0b29sdGlwJywgJ3Rvb2x0aXBSZW5kZXJlcicsICd2YWx1ZUZvcm1hdHRlcicsICd4QXhpcycsICd5QXhpcycsICd6b29tJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRBcmVhQ2hhcnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZE1hcmtlckNsaWNrJywgJ21kTGluZUNsaWNrJywgJ21kQXJlYUNsaWNrJywgJ21kQXhpc0NsaWNrJywgJ21kTGVnZW5kQ2xpY2snLCAnbWRIb3ZlcicsICdtZFJlYWR5JywgJ21kWm9vbSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRDaGFydENsaWNrRGV0YWlsIGFzIElNZEFyZWFDaGFydE1kQ2hhcnRDbGlja0RldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBNZENoYXJ0U2VyaWVzIGFzIElNZEFyZWFDaGFydE1kQ2hhcnRTZXJpZXMgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgTWRDaGFydEF4aXNDbGlja0RldGFpbCBhcyBJTWRBcmVhQ2hhcnRNZENoYXJ0QXhpc0NsaWNrRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kQ2hhcnRIb3ZlckRldGFpbCBhcyBJTWRBcmVhQ2hhcnRNZENoYXJ0SG92ZXJEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kQXJlYUNoYXJ0IGV4dGVuZHMgQ29tcG9uZW50cy5NZEFyZWFDaGFydCB7XG5cbiAgbWRNYXJrZXJDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZEFyZWFDaGFydE1kQ2hhcnRDbGlja0RldGFpbDxJTWRBcmVhQ2hhcnRNZENoYXJ0U2VyaWVzPj4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiBhIHNlcmllcycgZHJhd24gbGluZSBpcyBjbGlja2VkICpiZXR3ZWVuKiBpdHMgZGF0YSBwb2ludHMgKGFcbmNsaWNrIG9uIGEgcG9pbnQgZW1pdHMgYG1kTWFya2VyQ2xpY2tgIGluc3RlYWQpLlxuICAgKi9cbiAgbWRMaW5lQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRBcmVhQ2hhcnRNZENoYXJ0Q2xpY2tEZXRhaWw8SU1kQXJlYUNoYXJ0TWRDaGFydFNlcmllcz4+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gYSBzZXJpZXMnIGZpbGxlZCBhcmVhIGlzIGNsaWNrZWQg4oCUIHRoZSBiYW5kIGJldHdlZW4gaXRzIGxpbmVcbmFuZCBpdHMgYmFzZSAoaXRzIG93biBiYW5kIHdoZW4gc3RhY2tlZCksIGV4Y2x1ZGluZyBpdHMgbGluZSBhbmQgcG9pbnRzLlxuICAgKi9cbiAgbWRBcmVhQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRBcmVhQ2hhcnRNZENoYXJ0Q2xpY2tEZXRhaWw8SU1kQXJlYUNoYXJ0TWRDaGFydFNlcmllcz4+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHBsb3QgYmFja2dyb3VuZCBpcyBjbGlja2VkIChpbnNpZGUgdGhlIHBsb3QsIGJ1dCBub3Qgb24gYVxubWFyaywgbGluZSBvciBhcmVhKTogdGhlIG5lYXJlc3QgeCBwbHVzIGV2ZXJ5IHZpc2libGUgc2VyaWVzJyB2YWx1ZSB0aGVyZS5cbiAgICovXG4gIG1kQXhpc0NsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kQXJlYUNoYXJ0TWRDaGFydEF4aXNDbGlja0RldGFpbD4+O1xuXG4gIG1kTGVnZW5kQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHNlcmllc0luZGV4OiBudW1iZXI7IHNlcmllc0lkPzogc3RyaW5nOyBzZWxlY3RlZDogYm9vbGVhbiB9Pj47XG5cbiAgbWRIb3ZlcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZEFyZWFDaGFydE1kQ2hhcnRIb3ZlckRldGFpbD4+O1xuXG4gIG1kUmVhZHk6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSB6b29tIHdpbmRvdyBjaGFuZ2VzIChkcmFnLCBzbGlkZXIgb3IgYHNldFpvb21gL2ByZXNldFpvb21gKS5cbiAgICovXG4gIG1kWm9vbTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc3RhcnRJbmRleDogbnVtYmVyOyBlbmRJbmRleDogbnVtYmVyOyByZXNldDogYm9vbGVhbiB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZEF1dG9jb21wbGV0ZSxcbiAgaW5wdXRzOiBbJ2NoaXBQb3NpdGlvbicsICdjbGVhckljb24nLCAnY2xlYXJPbkJsdXInLCAnY2xlYXJhYmxlJywgJ2RlbnNpdHknLCAnZGlzYWJsZUNsb3NlT25TZWxlY3QnLCAnZGlzYWJsZWQnLCAnZHJvcGRvd25JY29uJywgJ2Vycm9yJywgJ2Vycm9yVGV4dCcsICdmaWx0ZXJNb2RlJywgJ2ZpbHRlcmVyJywgJ2ZyZWVTb2xvJywgJ2lucHV0VmFsdWUnLCAnbGFiZWwnLCAnbGltaXRSZXN1bHRzJywgJ2xvYWRpbmcnLCAnbG9hZGluZ1RleHQnLCAnbWF0Y2hUcmlnZ2VyV2lkdGgnLCAnbWF4SGVpZ2h0JywgJ21heFNlbGVjdGVkJywgJ211bHRpcGxlJywgJ25hbWUnLCAnbm9PcHRpb25zVGV4dCcsICdub1Jlc3VsdHNUZXh0JywgJ29wZW4nLCAnb3B0aW9ucycsICdwbGFjZWhvbGRlcicsICdwbGFjZW1lbnQnLCAncmVxdWlyZWQnLCAncmVzZXJ2ZVN1cHBvcnRpbmdTcGFjZScsICdyb3dIZWlnaHQnLCAnc29mdERpc2FibGVkJywgJ3N0YXR1c1RlbXBsYXRlJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ0xhYmVsJywgJ3ZhcmlhbnQnLCAndmlydHVhbGl6ZSddLFxuICBtZXRob2RzOiBbJ2ZvY3VzSW5wdXQnLCAnc2hvd01lbnUnLCAnY2xvc2VNZW51JywgJ2xvYWRPcHRpb25zJywgJ2dldExhYmVscycsICdnZXRWYWxpZGl0eScsICdjaGVja1ZhbGlkaXR5JywgJ3JlcG9ydFZhbGlkaXR5JywgJ3NldEN1c3RvbVZhbGlkaXR5J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1hdXRvY29tcGxldGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoaXBQb3NpdGlvbicsICdjbGVhckljb24nLCAnY2xlYXJPbkJsdXInLCAnY2xlYXJhYmxlJywgJ2RlbnNpdHknLCAnZGlzYWJsZUNsb3NlT25TZWxlY3QnLCAnZGlzYWJsZWQnLCAnZHJvcGRvd25JY29uJywgJ2Vycm9yJywgJ2Vycm9yVGV4dCcsICdmaWx0ZXJNb2RlJywgJ2ZpbHRlcmVyJywgJ2ZyZWVTb2xvJywgJ2lucHV0VmFsdWUnLCAnbGFiZWwnLCAnbGltaXRSZXN1bHRzJywgJ2xvYWRpbmcnLCAnbG9hZGluZ1RleHQnLCAnbWF0Y2hUcmlnZ2VyV2lkdGgnLCAnbWF4SGVpZ2h0JywgJ21heFNlbGVjdGVkJywgJ211bHRpcGxlJywgJ25hbWUnLCAnbm9PcHRpb25zVGV4dCcsICdub1Jlc3VsdHNUZXh0JywgJ29wZW4nLCAnb3B0aW9ucycsICdwbGFjZWhvbGRlcicsICdwbGFjZW1lbnQnLCAncmVxdWlyZWQnLCAncmVzZXJ2ZVN1cHBvcnRpbmdTcGFjZScsICdyb3dIZWlnaHQnLCAnc29mdERpc2FibGVkJywgJ3N0YXR1c1RlbXBsYXRlJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ0xhYmVsJywgJ3ZhcmlhbnQnLCAndmlydHVhbGl6ZSddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kQXV0b2NvbXBsZXRlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRDaGFuZ2UnLCAnbWRJbnB1dCcsICdtZE9wZW4nLCAnbWRDbG9zZScsICdtZENsZWFyJywgJ21kVmFsaWRpdHlDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRBdXRvY29tcGxldGUgZXh0ZW5kcyBDb21wb25lbnRzLk1kQXV0b2NvbXBsZXRlIHtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW5ldmVyIHRoZSBjb21taXR0ZWQgc2VsZWN0aW9uIGNoYW5nZXMuXG4gICAqL1xuICBtZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZyB8IHN0cmluZ1tdPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuZXZlciB0aGUgbGl2ZSBpbnB1dCBzdHJpbmcgY2hhbmdlcy5cbiAgICovXG4gIG1kSW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIG1lbnUgb3BlbnMuXG4gICAqL1xuICBtZE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBtZW51IGNsb3Nlcy5cbiAgICovXG4gIG1kQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSB1c2VyIGNsZWFycyB0aGUgdmFsdWUuXG4gICAqL1xuICBtZENsZWFyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGlzIGNvbnRyb2wncyB2YWxpZGl0eSBDSEFOR0VTIOKAlCBuZXZlciBvbiBldmVyeSBrZXlzdHJva2UsIGFuZFxubmV2ZXIgZm9yIGEgcmUtcHVibGlzaCB0aGF0IGxhbmRzIG9uIHRoZSBzYW1lIHN0YXRlLlxuXG5gY29tcG9zZWQ6IGZhbHNlYCBpcyBkZWxpYmVyYXRlLiBDb21wb3NpdGVzIGxpa2UgbWQtc2VsZWN0IGVtYmVkIGFuXG5tZC10ZXh0LWZpZWxkLCBhbmQgYSBjb21wb3NlZCBldmVudCBlc2NhcGVzIHRoYXQgaW5uZXIgc2hhZG93IHJvb3QsIHNvIGFcbmxpc3RlbmVyIG9uIG1kLXNlbGVjdCB3b3VsZCByZWNlaXZlIHRoZSBpbm5lciBmaWVsZCdzIGV2ZW50IGFzIHdlbGwgYXMgdGhlXG5ob3N0J3Mg4oCUIHR3byBldmVudHMsIGRpZmZlcmVudCBwYXlsb2FkcywgZm9yIG9uZSBsb2dpY2FsIGNvbnRyb2wuIEtlZXBpbmdcbml0IHVuY29tcG9zZWQgbWVhbnMgZWFjaCBjb21wb25lbnQgcmVwb3J0cyBvbmx5IGZvciBpdHNlbGYsIHdoaWxlXG5gYnViYmxlczogdHJ1ZWAgc3RpbGwgbGV0cyBhIDxmb3JtPiBvciBhcHAgcm9vdCBoZWFyIGV2ZXJ5IGNvbnRyb2wuXG4gICAqL1xuICBtZFZhbGlkaXR5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWxpZDogYm9vbGVhbjsgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZzsgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+OyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZEF2YXRhcixcbiAgaW5wdXRzOiBbJ2FsdCcsICdjb2xvckZyb21OYW1lJywgJ2Nyb3Nzb3JpZ2luJywgJ2RlbnNpdHknLCAnaW5pdGlhbHMnLCAnbGFiZWwnLCAnbG9hZGluZycsICduYW1lJywgJ3NoYXBlJywgJ3NpemUnLCAnc3JjJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1hdmF0YXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsdCcsICdjb2xvckZyb21OYW1lJywgJ2Nyb3Nzb3JpZ2luJywgJ2RlbnNpdHknLCAnaW5pdGlhbHMnLCAnbGFiZWwnLCAnbG9hZGluZycsICduYW1lJywgJ3NoYXBlJywgJ3NpemUnLCAnc3JjJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRBdmF0YXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZExvYWQnLCAnbWRFcnJvciddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZEF2YXRhciBleHRlbmRzIENvbXBvbmVudHMuTWRBdmF0YXIge1xuICAvKipcbiAgICogSW1hZ2Ugc3VjY2Vzc2Z1bGx5IGxvYWRlZC5cbiAgICovXG4gIG1kTG9hZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc3JjOiBzdHJpbmcgfT4+O1xuICAvKipcbiAgICogSW1hZ2UgZmFpbGVkIHRvIGxvYWQg4oCUIGNvbXBvbmVudCBmZWxsIGJhY2sgdG8gaW5pdGlhbHMvaWNvbi5cbiAgICovXG4gIG1kRXJyb3I6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHNyYzogc3RyaW5nIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kQmFkZ2UsXG4gIGlucHV0czogWydkZW5zaXR5JywgJ2ljb24nLCAnbWF4JywgJ3NoYXBlJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLWJhZGdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZW5zaXR5JywgJ2ljb24nLCAnbWF4JywgJ3NoYXBlJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZEJhZGdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRCYWRnZSBleHRlbmRzIENvbXBvbmVudHMuTWRCYWRnZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRCYXJDaGFydCxcbiAgaW5wdXRzOiBbJ2FuaW1hdGlvbicsICdhbmltYXRpb25EdXJhdGlvbicsICdheGlzVGlja3MnLCAnYmFyR2FwJywgJ2JhcldpZHRoJywgJ2NhdGVnb3J5R2FwJywgJ2NoZXZyb24nLCAnY2xpY2thYmxlJywgJ2Nvcm5lclJhZGl1cycsICdkZW5zaXR5JywgJ2hlaWdodFByb3AnLCAnbGFiZWwnLCAnbGFiZWxQbG90JywgJ2xhYmVsUG9pbnQnLCAnbGFiZWxab29tRW5kJywgJ2xhYmVsWm9vbVN0YXJ0JywgJ2xheW91dCcsICdsZWdlbmQnLCAnbG9hZGluZycsICdsb2FkaW5nTGFiZWwnLCAnbG9jYWxlJywgJ25vQW5pbWF0aW9uJywgJ3BvbGFyJywgJ3BvbGFySG9sZScsICdwb2xhclN3ZWVwJywgJ3NlcmllcycsICdzaG93TGFiZWxzJywgJ3Nob3dUb3RhbHMnLCAnc3RhY2snLCAnc3VidGl0bGUnLCAndGl0bGVBbGlnbicsICd0b29sdGlwJywgJ3Rvb2x0aXBSZW5kZXJlcicsICd2YWx1ZUZvcm1hdHRlcicsICd4QXhpcycsICd5QXhpcycsICd5QXhpczInLCAnem9vbSddLFxuICBtZXRob2RzOiBbJ3JlZnJlc2hUaGVtZScsICdyZXNpemUnLCAncmVwbGF5JywgJ2RyaWxsJywgJ3RvRGF0YVVSTCcsICdnZXRJbnN0YW5jZScsICdzZXRab29tJywgJ3Jlc2V0Wm9vbSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtYmFyLWNoYXJ0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmltYXRpb24nLCAnYW5pbWF0aW9uRHVyYXRpb24nLCAnYXhpc1RpY2tzJywgJ2JhckdhcCcsICdiYXJXaWR0aCcsICdjYXRlZ29yeUdhcCcsICdjaGV2cm9uJywgJ2NsaWNrYWJsZScsICdjb3JuZXJSYWRpdXMnLCAnZGVuc2l0eScsICdoZWlnaHRQcm9wJywgJ2xhYmVsJywgJ2xhYmVsUGxvdCcsICdsYWJlbFBvaW50JywgJ2xhYmVsWm9vbUVuZCcsICdsYWJlbFpvb21TdGFydCcsICdsYXlvdXQnLCAnbGVnZW5kJywgJ2xvYWRpbmcnLCAnbG9hZGluZ0xhYmVsJywgJ2xvY2FsZScsICdub0FuaW1hdGlvbicsICdwb2xhcicsICdwb2xhckhvbGUnLCAncG9sYXJTd2VlcCcsICdzZXJpZXMnLCAnc2hvd0xhYmVscycsICdzaG93VG90YWxzJywgJ3N0YWNrJywgJ3N1YnRpdGxlJywgJ3RpdGxlQWxpZ24nLCAndG9vbHRpcCcsICd0b29sdGlwUmVuZGVyZXInLCAndmFsdWVGb3JtYXR0ZXInLCAneEF4aXMnLCAneUF4aXMnLCAneUF4aXMyJywgJ3pvb20nXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZEJhckNoYXJ0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRCYXJDbGljaycsICdtZExlZ2VuZENsaWNrJywgJ21kSG92ZXInLCAnbWRSZWFkeScsICdtZFpvb20nXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IE1kQ2hhcnRDbGlja0RldGFpbCBhcyBJTWRCYXJDaGFydE1kQ2hhcnRDbGlja0RldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBNZENoYXJ0U2VyaWVzIGFzIElNZEJhckNoYXJ0TWRDaGFydFNlcmllcyB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBNZENoYXJ0SG92ZXJEZXRhaWwgYXMgSU1kQmFyQ2hhcnRNZENoYXJ0SG92ZXJEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kQmFyQ2hhcnQgZXh0ZW5kcyBDb21wb25lbnRzLk1kQmFyQ2hhcnQge1xuXG4gIG1kQmFyQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRCYXJDaGFydE1kQ2hhcnRDbGlja0RldGFpbDxJTWRCYXJDaGFydE1kQ2hhcnRTZXJpZXM+Pj47XG5cbiAgbWRMZWdlbmRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc2VyaWVzSW5kZXg6IG51bWJlcjsgc2VyaWVzSWQ/OiBzdHJpbmc7IHNlbGVjdGVkOiBib29sZWFuIH0+PjtcblxuICBtZEhvdmVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kQmFyQ2hhcnRNZENoYXJ0SG92ZXJEZXRhaWw+PjtcblxuICBtZFJlYWR5OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgem9vbSB3aW5kb3cgY2hhbmdlcyAoZHJhZywgc2xpZGVyLCBvciBgc2V0Wm9vbWAvYHJlc2V0Wm9vbWApLlxuICAgKi9cbiAgbWRab29tOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBzdGFydEluZGV4OiBudW1iZXI7IGVuZEluZGV4OiBudW1iZXI7IHJlc2V0OiBib29sZWFuIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kQm90dG9tU2hlZXQsXG4gIGlucHV0czogWydib3R0b21EaXZpZGVyJywgJ2Nsb3NlYWJsZScsICdjb250ZW50QWxpZ24nLCAnZGVuc2l0eScsICdoZWFkbGluZScsICdoZWFkbGluZUFsaWduJywgJ29wZW4nLCAnc2NyaW1EaXNtaXNzaWJsZScsICdzY3JvbGxTaGFkb3cnLCAnc2hlZXRBcmlhTGFiZWwnLCAnc2hvd0RyYWdIYW5kbGUnLCAndG9wRGl2aWRlcicsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdjbG9zZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtYm90dG9tLXNoZWV0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydib3R0b21EaXZpZGVyJywgJ2Nsb3NlYWJsZScsICdjb250ZW50QWxpZ24nLCAnZGVuc2l0eScsICdoZWFkbGluZScsICdoZWFkbGluZUFsaWduJywgJ29wZW4nLCAnc2NyaW1EaXNtaXNzaWJsZScsICdzY3JvbGxTaGFkb3cnLCAnc2hlZXRBcmlhTGFiZWwnLCAnc2hvd0RyYWdIYW5kbGUnLCAndG9wRGl2aWRlcicsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRCb3R0b21TaGVldCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kT3BlbicsICdtZENsb3NlJywgJ21kQ2FuY2VsJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kQm90dG9tU2hlZXQgZXh0ZW5kcyBDb21wb25lbnRzLk1kQm90dG9tU2hlZXQge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgc2hlZXQgb3BlbnNcbiAgICovXG4gIG1kT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIHNoZWV0IGNsb3Nlc1xuICAgKi9cbiAgbWRDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gZGlzbWlzc2VkIHZpYSBzY3JpbSBjbGljaywgRXNjYXBlLCBkcmFnLCBvciBjbG9zZSBidXR0b25cbiAgICovXG4gIG1kQ2FuY2VsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRCcmVhZGNydW1iSXRlbSxcbiAgaW5wdXRzOiBbJ2NvbGxhcHNlZCcsICdjdXJyZW50JywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnaHJlZicsICdpY29uJywgJ2l0ZW1JbmRleCcsICdpdGVtVG90YWwnLCAncmVsJywgJ3RhcmdldCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtYnJlYWRjcnVtYi1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xsYXBzZWQnLCAnY3VycmVudCcsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnaWNvbicsICdpdGVtSW5kZXgnLCAnaXRlbVRvdGFsJywgJ3JlbCcsICd0YXJnZXQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZEJyZWFkY3J1bWJJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRTZWxlY3QnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IE1kQnJlYWRjcnVtYlNlbGVjdERldGFpbCBhcyBJTWRCcmVhZGNydW1iSXRlbU1kQnJlYWRjcnVtYlNlbGVjdERldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRCcmVhZGNydW1iSXRlbSBleHRlbmRzIENvbXBvbmVudHMuTWRCcmVhZGNydW1iSXRlbSB7XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSB1c2VyIGFjdGl2YXRlcyBhIG5hdmlnYWJsZSBjcnVtYiDigJQgaS5lLiB3aGVuIGFuIGl0ZW0gd2l0aFxuYSBub24tZW1wdHkgYGhyZWZgIChhbmQgbm90IG1hcmtlZCBgY3VycmVudGAgLyBgZGlzYWJsZWRgKSBpcyBjbGlja2VkIG9yXG5hY3RpdmF0ZWQgd2l0aCBgRW50ZXJgIHdoaWxlIGZvY3VzZWQuIFRoZSBldmVudCBpcyAqKmNhbmNlbGFibGUqKjpcbmNhbGwgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIGZyb20gdGhlIGxpc3RlbmVyIHRvIHN0b3AgdGhlIGJyb3dzZXInc1xuZGVmYXVsdCBuYXZpZ2F0aW9uLiBUaGlzIGlzIHRoZSByZWNvbW1lbmRlZCBob29rIGZvciBTUEEgcm91dGluZyDigJQgbGV0XG50aGUgYnJlYWRjcnVtYiByZW5kZXIgYSByZWFsIGA8YT5gIChzbyByaWdodC1jbGljayAvIG1pZGRsZS1jbGljayAvXG5cIk9wZW4gaW4gbmV3IHRhYlwiIHN0aWxsIHdvcmspLCB0aGVuIGludGVyY2VwdCBgbWRTZWxlY3RgIHRvIHB1c2ggdGhlXG5yb3V0ZSB0aHJvdWdoIHlvdXIgY2xpZW50LXNpZGUgcm91dGVyIGluc3RlYWQgb2YgYSBmdWxsIHBhZ2UgcmVsb2FkLlxuXG5UaGUgZXZlbnQgYnViYmxlcywgc28gY29uc3VtZXJzIGNhbiBhdHRhY2ggYSBzaW5nbGUgbGlzdGVuZXIgb24gdGhlXG5wYXJlbnQgYDxtZC1icmVhZGNydW1icz5gIGZvciBkZWxlZ2F0aW9uLiBUaGUgZXZlbnQgaXMgY29tcG9zZWQsIHNvXG5saXN0ZW5lcnMgb3V0c2lkZSB0aGUgc2hhZG93IHRyZWUgKHRoZSB0eXBpY2FsIGNhc2UpIHJlY2VpdmUgaXQuXG5cbmBgYHRzXG5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdtZC1icmVhZGNydW1icycpIVxuICAuYWRkRXZlbnRMaXN0ZW5lcignbWRTZWxlY3QnLCAoZSkgPT4ge1xuICAgIGNvbnN0IHsgaHJlZiwgbGFiZWwsIGl0ZW1JbmRleCB9ID0gKGUgYXMgQ3VzdG9tRXZlbnQpLmRldGFpbDtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7ICAgICAgICAgICAgICAvLyBzdG9wIHRoZSA8YT4gZnJvbSBuYXZpZ2F0aW5nXG4gICAgbXlSb3V0ZXIucHVzaChocmVmKTsgICAgICAgICAgICAgLy8gU1BBIG5hdmlnYXRpb25cbiAgfSk7XG5gYGBcbiAgICovXG4gIG1kU2VsZWN0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kQnJlYWRjcnVtYkl0ZW1NZEJyZWFkY3J1bWJTZWxlY3REZXRhaWw+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kQnJlYWRjcnVtYnMsXG4gIGlucHV0czogWydkZW5zaXR5JywgJ2V4cGFuZExhYmVsJywgJ2l0ZW1zQWZ0ZXJDb2xsYXBzZScsICdpdGVtc0JlZm9yZUNvbGxhcHNlJywgJ2xhYmVsJywgJ21heEl0ZW1zJywgJ3NlcGFyYXRvciddLFxuICBtZXRob2RzOiBbJ2V4cGFuZCcsICdjb2xsYXBzZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtYnJlYWRjcnVtYnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnZXhwYW5kTGFiZWwnLCAnaXRlbXNBZnRlckNvbGxhcHNlJywgJ2l0ZW1zQmVmb3JlQ29sbGFwc2UnLCAnbGFiZWwnLCAnbWF4SXRlbXMnLCAnc2VwYXJhdG9yJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRCcmVhZGNydW1icyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kRXhwYW5kJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZEJyZWFkY3J1bWJzRXhwYW5kRGV0YWlsIGFzIElNZEJyZWFkY3J1bWJzTWRCcmVhZGNydW1ic0V4cGFuZERldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRCcmVhZGNydW1icyBleHRlbmRzIENvbXBvbmVudHMuTWRCcmVhZGNydW1icyB7XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSB1c2VyIHJldmVhbHMgdGhlIGZ1bGwgYnJlYWRjcnVtYiB0cmFpbCBieSBhY3RpdmF0aW5nXG50aGUgb3ZlcmZsb3cgKFwi4oCmXCIpIHRvZ2dsZSwgb3Igd2hlbiBjb25zdW1lcnMgcHJvZ3JhbW1hdGljYWxseSBjYWxsXG5gZXhwYW5kKClgIC8gYGNvbGxhcHNlKClgLiBOb3QgY2FuY2VsYWJsZSDigJQgdGhlIHZpc2liaWxpdHkgY2hhbmdlXG5oYXMgYWxyZWFkeSBoYXBwZW5lZC4gVXNlIGl0IGZvciBhbmFseXRpY3Mgb3IgdG8gcmVhY3QgdG8gYSB1c2VyXG53aG8gd2FudHMgdG8gc2VlIHRoZSBmdWxsIHBhdGguXG5cbkJ1YmJsZXMgKyBjb21wb3NlZCwgc28gY29uc3VtZXJzIG91dHNpZGUgdGhlIHNoYWRvdyB0cmVlICh0aGUgdHlwaWNhbFxuY2FzZSkgcmVjZWl2ZSBpdC5cbiAgICovXG4gIG1kRXhwYW5kOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kQnJlYWRjcnVtYnNNZEJyZWFkY3J1bWJzRXhwYW5kRGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZEJ1dHRvbixcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZnVsbFdpZHRoJywgJ2hyZWYnLCAnaWNvbicsICdsb2FkaW5nJywgJ21pcnJvckljb24nLCAncmlwcGxlJywgJ3JvbGVPdmVycmlkZScsICdzZWxlY3RlZCcsICdzaGFwZScsICdzaGFwZU1vcnBoJywgJ3NpemUnLCAnc29mdERpc2FibGVkJywgJ3N1cHByZXNzRXhwYW5kSWNvbkZsaXAnLCAndGFyZ2V0JywgJ3RvZ2dsZScsICd0cmFpbGluZ0ljb24nLCAndHlwZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZnVsbFdpZHRoJywgJ2hyZWYnLCAnaWNvbicsICdsb2FkaW5nJywgJ21pcnJvckljb24nLCAncmlwcGxlJywgJ3JvbGVPdmVycmlkZScsICdzZWxlY3RlZCcsICdzaGFwZScsICdzaGFwZU1vcnBoJywgJ3NpemUnLCAnc29mdERpc2FibGVkJywgJ3N1cHByZXNzRXhwYW5kSWNvbkZsaXAnLCAndGFyZ2V0JywgJ3RvZ2dsZScsICd0cmFpbGluZ0ljb24nLCAndHlwZScsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZENsaWNrJywgJ21kQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZEJ1dHRvbkNsaWNrRGV0YWlsIGFzIElNZEJ1dHRvbk1kQnV0dG9uQ2xpY2tEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgTWRCdXR0b25DaGFuZ2VEZXRhaWwgYXMgSU1kQnV0dG9uTWRCdXR0b25DaGFuZ2VEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5NZEJ1dHRvbiB7XG4gIC8qKlxuICAgKiBGaXJlcyBldmVyeSB0aW1lIHRoZSB1c2VyIGFjdGl2YXRlcyB0aGUgYnV0dG9uIChtb3VzZSBjbGljaywgdG91Y2gsXG5vciBgRW50ZXJgL2BTcGFjZWAgd2hpbGUgZm9jdXNlZCkuIFRoZSBldmVudCBpcyAqKmNhbmNlbGFibGUqKiBhbmRcbnRoZSBkZXRhaWwgcGF5bG9hZCBkZXNjcmliZXMgd2hhdCAqd291bGQqIGhhcHBlbjogdGhlIHBvc3QtY2xpY2tcbnRvZ2dsZSBzdGF0ZSwgdGhlIG5hdmlnYXRpb24gYGhyZWZgLCBhbmQgc28gb24uXG5cbkNhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIGZyb20gYSBsaXN0ZW5lciBzdXBwcmVzc2VzIHRoZVxuZGVmYXVsdCBzaWRlIGVmZmVjdHMgKHRvZ2dsZSBmbGlwICsgYGhyZWZgIG5hdmlnYXRpb24pIGJ1dCBsZXRzXG50aGUgdW5kZXJseWluZyBET00gY2xpY2sgYnViYmxlLiBUaGlzIGlzIHRoZSBob29rIHRvIHVzZSBmb3IgU1BBXG5yb3V0aW5nLCBcImFyZSB5b3Ugc3VyZT9cIiBwcm9tcHRzLCBhc3luYyBjb25maXJtYXRpb24sIGV0Yy5cblxuVGhlIGV2ZW50IGJ1YmJsZXMgYW5kIGlzIGNvbXBvc2VkLCBzbyBsaXN0ZW5lcnMgb3V0c2lkZSB0aGVcbnNoYWRvdyB0cmVlICh0aGUgdHlwaWNhbCBjYXNlKSByZWNlaXZlIGl0LlxuXG5gYGB0c1xuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbWQtYnV0dG9uJykhLmFkZEV2ZW50TGlzdGVuZXIoJ21kQ2xpY2snLCAoZSkgPT4ge1xuICBjb25zdCB7IGhyZWYsIHNlbGVjdGVkIH0gPSAoZSBhcyBDdXN0b21FdmVudCkuZGV0YWlsO1xuICBpZiAoIWNvbmZpcm0oJ0NvbnRpbnVlPycpKSBlLnByZXZlbnREZWZhdWx0KCk7XG59KTtcbmBgYFxuICAgKi9cbiAgbWRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZEJ1dHRvbk1kQnV0dG9uQ2xpY2tEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdG9nZ2xlIG1vZGUgZmxpcHMgdGhlIGBzZWxlY3RlZGAgc3RhdGUgaW4gcmVzcG9uc2UgdG8gYVxudXNlciBhY3RpdmF0aW9uLiBOb3QgY2FuY2VsYWJsZSDigJQgdGhlIHN0YXRlIGNoYW5nZSBoYXMgYWxyZWFkeVxuaGFwcGVuZWQuIFBhaXIgd2l0aCBgbWRDbGlja2AgKGNhbmNlbGFibGUpIHdoZW4geW91IG5lZWQgYSB2ZXRvLlxuXG5CdWJibGVzIGFuZCBpcyBjb21wb3NlZC5cbiAgICovXG4gIG1kQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kQnV0dG9uTWRCdXR0b25DaGFuZ2VEZXRhaWw+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kQnV0dG9uR3JvdXAsXG4gIGlucHV0czogWydkZW5zaXR5JywgJ2Z1bGxXaWR0aCcsICdyZXF1aXJlZCcsICdzZWxlY3Rpb25Nb2RlJywgJ3NoYXBlJywgJ3NpemUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtYnV0dG9uLWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZW5zaXR5JywgJ2Z1bGxXaWR0aCcsICdyZXF1aXJlZCcsICdzZWxlY3Rpb25Nb2RlJywgJ3NoYXBlJywgJ3NpemUnLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kQnV0dG9uR3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZFNlbGVjdGlvbkNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRCdXR0b25Hcm91cENoYW5nZURldGFpbCBhcyBJTWRCdXR0b25Hcm91cE1kQnV0dG9uR3JvdXBDaGFuZ2VEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kQnV0dG9uR3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLk1kQnV0dG9uR3JvdXAge1xuICAvKipcbiAgICogRmlyZXMgZXZlcnkgdGltZSBhIHVzZXIgYWN0aXZhdGlvbiB0b2dnbGVzIHRoZSBzZWxlY3Rpb24gc3RhdGUgb2ZcbmEgY2hpbGQgYnV0dG9uLiBUaGUgZGV0YWlsIG9iamVjdCBkZXNjcmliZXMgYm90aCB0aGUgbmV3IHNlbGVjdGlvblxuc25hcHNob3QgKGB2YWx1ZXNgKSBhbmQgdGhlIGRpZmYgZnJvbSB0aGUgcHJldmlvdXMgc2VsZWN0aW9uXG4oYGFkZGVkYCwgYHJlbW92ZWRgKSwgcGx1cyB0aGUgdW5kZXJseWluZyBgb3JpZ2luYWxFdmVudGAuXG5cbkRpc3RpbmN0IGZyb20gZWFjaCBjaGlsZCBidXR0b24ncyBvd24gYG1kQ2hhbmdlYCAod2hpY2ggZmlyZXMgcGVyXG5pbmRpdmlkdWFsIGJ1dHRvbiB0b2dnbGUpOyB0aGUgZ3JvdXAncyBgbWRTZWxlY3Rpb25DaGFuZ2VgIGZpcmVzXG5vbmNlIHBlciB1c2VyIGFjdGl2YXRpb24gYW5kIHJlcG9ydHMgdGhlICpncm91cC1sZXZlbCogc3RhdGUuXG5cbkJ1YmJsZXMgYW5kIGlzIGNvbXBvc2VkIHNvIGxpc3RlbmVycyBvdXRzaWRlIHRoZSBzaGFkb3cgdHJlZVxucmVjZWl2ZSBpdC4gQGV4YW1wbGUgYGBgdHNcbmdyb3VwLmFkZEV2ZW50TGlzdGVuZXIoJ21kU2VsZWN0aW9uQ2hhbmdlJywgKGU6IEN1c3RvbUV2ZW50PE1kQnV0dG9uR3JvdXBDaGFuZ2VEZXRhaWw+KSA9PiB7XG4gIGNvbnNvbGUubG9nKCdub3cgc2VsZWN0ZWQ6JywgZS5kZXRhaWwudmFsdWVzKTtcbiAgY29uc29sZS5sb2coJ2p1c3QgYWRkZWQ6JywgZS5kZXRhaWwuYWRkZWQpO1xuICBjb25zb2xlLmxvZygnanVzdCByZW1vdmVkOicsIGUuZGV0YWlsLnJlbW92ZWQpO1xufSk7XG5gYGBcbiAgICovXG4gIG1kU2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kQnV0dG9uR3JvdXBNZEJ1dHRvbkdyb3VwQ2hhbmdlRGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZENhcmQsXG4gIGlucHV0czogWydkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2RyYWdFbmFibGVkJywgJ2Z1bGxIZWlnaHQnLCAnZnVsbFdpZHRoJywgJ2ludGVyYWN0aXZlJywgJ3JpcHBsZScsICdzb2Z0RGlzYWJsZWQnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtY2FyZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdkaXNhYmxlZCcsICdkcmFnRW5hYmxlZCcsICdmdWxsSGVpZ2h0JywgJ2Z1bGxXaWR0aCcsICdpbnRlcmFjdGl2ZScsICdyaXBwbGUnLCAnc29mdERpc2FibGVkJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZENhcmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZENsaWNrJywgJ21kRHJhZ1N0YXJ0JywgJ21kRHJhZ01vdmUnLCAnbWREcmFnRW5kJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZENhcmREcmFnRGV0YWlsIGFzIElNZENhcmRNZENhcmREcmFnRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZENhcmQgZXh0ZW5kcyBDb21wb25lbnRzLk1kQ2FyZCB7XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIGFuIGludGVyYWN0aXZlIGNhcmQgaXMgY2xpY2tlZCBvciBhY3RpdmF0ZWQgdmlhIGtleWJvYXJkXG4gICAqL1xuICBtZENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8TW91c2VFdmVudD4+O1xuICAvKipcbiAgICogRW1pdHMgb25jZSB3aGVuIGEgZHJhZ2dhYmxlIGNhcmQgc3RhcnRzIGJlaW5nIGRyYWdnZWQgKGFmdGVyIGNyb3NzaW5nIHRoZSBtb3ZlbWVudCB0aHJlc2hvbGQpXG4gICAqL1xuICBtZERyYWdTdGFydDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZENhcmRNZENhcmREcmFnRGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0cyBjb250aW51b3VzbHkgYXMgYSBkcmFnZ2VkIGNhcmQgbW92ZXMg4oCUIHVzZSBmb3IgZHJvcC16b25lIGRldGVjdGlvbiBvciBwb3NpdGlvbiB0cmFja2luZ1xuICAgKi9cbiAgbWREcmFnTW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZENhcmRNZENhcmREcmFnRGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIGEgZHJhZ2dhYmxlIGNhcmQgaXMgcmVsZWFzZWQgYWZ0ZXIgZHJhZ2dpbmdcbiAgICovXG4gIG1kRHJhZ0VuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZENhcmRNZENhcmREcmFnRGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZENoZWNrYm94LFxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2Vycm9yVGV4dCcsICdpbmRldGVybWluYXRlJywgJ25hbWUnLCAncmVxdWlyZWQnLCAnc29mdERpc2FibGVkJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ0xhYmVsJ10sXG4gIG1ldGhvZHM6IFsnZ2V0VmFsaWRpdHknLCAnY2hlY2tWYWxpZGl0eScsICdyZXBvcnRWYWxpZGl0eScsICdzZXRDdXN0b21WYWxpZGl0eSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtY2hlY2tib3gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdlcnJvcicsICdlcnJvclRleHQnLCAnaW5kZXRlcm1pbmF0ZScsICduYW1lJywgJ3JlcXVpcmVkJywgJ3NvZnREaXNhYmxlZCcsICdzdXBwb3J0aW5nVGV4dCcsICd2YWx1ZScsICd2YWx1ZU1pc3NpbmdMYWJlbCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kQ2hlY2tib3gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZENoYW5nZScsICdtZFZhbGlkaXR5Q2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kQ2hlY2tib3ggZXh0ZW5kcyBDb21wb25lbnRzLk1kQ2hlY2tib3gge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiBjaGVja2VkIG9yIGluZGV0ZXJtaW5hdGUgc3RhdGUgY2hhbmdlc1xuICAgKi9cbiAgbWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGNoZWNrZWQ6IGJvb2xlYW47IGluZGV0ZXJtaW5hdGU6IGJvb2xlYW4gfT4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGlzIGNvbnRyb2wncyB2YWxpZGl0eSBDSEFOR0VTIOKAlCBuZXZlciBvbiBldmVyeSBrZXlzdHJva2UsIGFuZFxubmV2ZXIgZm9yIGEgcmUtcHVibGlzaCB0aGF0IGxhbmRzIG9uIHRoZSBzYW1lIHN0YXRlLlxuXG5gY29tcG9zZWQ6IGZhbHNlYCBpcyBkZWxpYmVyYXRlLiBDb21wb3NpdGVzIGxpa2UgbWQtc2VsZWN0IGVtYmVkIGFuXG5tZC10ZXh0LWZpZWxkLCBhbmQgYSBjb21wb3NlZCBldmVudCBlc2NhcGVzIHRoYXQgaW5uZXIgc2hhZG93IHJvb3QsIHNvIGFcbmxpc3RlbmVyIG9uIG1kLXNlbGVjdCB3b3VsZCByZWNlaXZlIHRoZSBpbm5lciBmaWVsZCdzIGV2ZW50IGFzIHdlbGwgYXMgdGhlXG5ob3N0J3Mg4oCUIHR3byBldmVudHMsIGRpZmZlcmVudCBwYXlsb2FkcywgZm9yIG9uZSBsb2dpY2FsIGNvbnRyb2wuIEtlZXBpbmdcbml0IHVuY29tcG9zZWQgbWVhbnMgZWFjaCBjb21wb25lbnQgcmVwb3J0cyBvbmx5IGZvciBpdHNlbGYsIHdoaWxlXG5gYnViYmxlczogdHJ1ZWAgc3RpbGwgbGV0cyBhIDxmb3JtPiBvciBhcHAgcm9vdCBoZWFyIGV2ZXJ5IGNvbnRyb2wuXG4gICAqL1xuICBtZFZhbGlkaXR5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWxpZDogYm9vbGVhbjsgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZzsgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+OyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZENoaXAsXG4gIGlucHV0czogWydhcHBlYXJhbmNlJywgJ2NvbG9yJywgJ2NvbnRlbnRBbGlnbicsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2VsZXZhdGVkJywgJ2ljb24nLCAnbGFiZWwnLCAncmVtb3ZhYmxlJywgJ3NlbGVjdGFibGUnLCAnc2VsZWN0ZWQnLCAnc29mdERpc2FibGVkJywgJ3RyYWlsaW5nSWNvbicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1jaGlwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcHBlYXJhbmNlJywgJ2NvbG9yJywgJ2NvbnRlbnRBbGlnbicsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2VsZXZhdGVkJywgJ2ljb24nLCAnbGFiZWwnLCAncmVtb3ZhYmxlJywgJ3NlbGVjdGFibGUnLCAnc2VsZWN0ZWQnLCAnc29mdERpc2FibGVkJywgJ3RyYWlsaW5nSWNvbicsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRDaGlwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRDbGljaycsICdtZFNlbGVjdCcsICdtZFJlbW92ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZENoaXAgZXh0ZW5kcyBDb21wb25lbnRzLk1kQ2hpcCB7XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBjaGlwIGlzIGNsaWNrZWQgb3IgYWN0aXZhdGVkIHZpYSBrZXlib2FyZFxuICAgKi9cbiAgbWRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIHNlbGVjdGVkIHN0YXRlIGNoYW5nZXMgKGZpbHRlci9pbnB1dClcbiAgICovXG4gIG1kU2VsZWN0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBzZWxlY3RlZDogYm9vbGVhbiB9Pj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSB0cmFpbGluZyByZW1vdmUgKFwi4pyVXCIpIGJ1dHRvbiBpcyBhY3RpdmF0ZWQgb24gYSByZW1vdmFibGVcbmNoaXAgKGJ5IGNsaWNrLCBFbnRlciwgU3BhY2UsIERlbGV0ZSwgb3IgQmFja3NwYWNlKS5cblxuVGhlIGV2ZW50IGlzICoqY2FuY2VsYWJsZSoqOiBieSBkZWZhdWx0LCBhZnRlciBgbWRSZW1vdmVgIGlzIGRpc3BhdGNoZWRcbnRoZSBjaGlwIHJlbW92ZXMgaXRzZWxmIGZyb20gdGhlIERPTS4gQ2FsbCBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgaW4gYVxuaGFuZGxlciB0byBrZWVwIHRoZSBjaGlwIG1vdW50ZWQgKGUuZy4gd2hlbiB5b3VyIHN0YXRlIGxheWVyIG93bnMgdGhlXG5saXN0IGFuZCB3aWxsIHJlLXJlbmRlciB3aXRoIHRoZSBjaGlwIGdvbmUpLlxuICAgKi9cbiAgbWRSZW1vdmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZENvbG9yUGlja2VyLFxuICBpbnB1dHM6IFsnYWxwaGEnLCAnYXJpYUxhYmVsUHJvcCcsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2Rpc21pc3NPbk91dHNpZGVDbGljaycsICdmb3JtYXQnLCAnb3BlbicsICdwcmVzZXRzJywgJ3Nob3dIZXgnLCAnc2hvd0lucHV0cycsICd2YWx1ZScsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdjbG9zZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtY29sb3ItcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbHBoYScsICdhcmlhTGFiZWxQcm9wJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZGlzbWlzc09uT3V0c2lkZUNsaWNrJywgJ2Zvcm1hdCcsICdvcGVuJywgJ3ByZXNldHMnLCAnc2hvd0hleCcsICdzaG93SW5wdXRzJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZENvbG9yUGlja2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRJbnB1dCcsICdtZENoYW5nZScsICdtZE9wZW5DaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRDb2xvclBpY2tlciBleHRlbmRzIENvbXBvbmVudHMuTWRDb2xvclBpY2tlciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIG9uIGV2ZXJ5IGNoYW5nZSB3aGlsZSB0aGUgdXNlciBkcmFncyAvIHR5cGVzLlxuICAgKi9cbiAgbWRJbnB1dDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdmFsdWU6IHN0cmluZyB9Pj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHVzZXIgY29tbWl0cyBhIHZhbHVlIChyZWxlYXNlIHBvaW50ZXIsIGJsdXIgaW5wdXQsXG5FbnRlciwgb3IgY2xpY2sgYSBwcmVzZXQpLlxuICAgKi9cbiAgbWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbHVlOiBzdHJpbmcgfT4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBwb3BvdmVyIG9wZW5zIG9yIGNsb3Nlcy5cbiAgICovXG4gIG1kT3BlbkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgb3BlbjogYm9vbGVhbiB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZERhdGVQaWNrZXIsXG4gIGlucHV0czogWydjYWxlbmRhckljb24nLCAnY2FuY2VsTGFiZWwnLCAnY2hvb3NlTW9udGhBbmRZZWFyTGFiZWwnLCAnY2hvb3NlTW9udGhMYWJlbCcsICdjaG9vc2VNb250aFllYXJMYWJlbCcsICdjaG9vc2VZZWFyTGFiZWwnLCAnY2xlYXJMYWJlbCcsICdjbGVhcmFibGUnLCAnY2xvc2VDYWxlbmRhckxhYmVsJywgJ2NvbW1pdE9uU2VsZWN0JywgJ2RhdGVTZXBhcmF0b3InLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdlbnRlckRhdGVzTGFiZWwnLCAnZXJyb3InLCAnZXJyb3JUZXh0JywgJ2ZpZWxkVmFyaWFudCcsICdmaXJzdERheU9mV2VlaycsICdoZWFkbGluZScsICdpbnZhbGlkRGF0ZUxhYmVsJywgJ2lzRGF0ZURpc2FibGVkJywgJ2xhYmVsJywgJ2xvY2FsZScsICdtYXgnLCAnbWluJywgJ25hbWUnLCAnbmV4dE1vbnRoTGFiZWwnLCAnbmV4dFllYXJMYWJlbCcsICdva0xhYmVsJywgJ29wZW4nLCAnb3BlbkNhbGVuZGFyTGFiZWwnLCAnb3V0c2lkZUNsaWNrRGlzbWlzc2libGUnLCAncGxhY2Vob2xkZXInLCAncHJldmlvdXNNb250aExhYmVsJywgJ3ByZXZpb3VzWWVhckxhYmVsJywgJ3JlcXVpcmVkJywgJ3Jlc2VydmVTdXBwb3J0aW5nU3BhY2UnLCAnc2NyaW1EaXNtaXNzaWJsZScsICdzZWxlY3REYXRlTGFiZWwnLCAnc3VwcG9ydGluZ1RleHQnLCAndG9nZ2xlQ2FsZW5kYXJMYWJlbCcsICd0b2dnbGVUZXh0TGFiZWwnLCAndmFsdWUnLCAndmFsdWVNaXNzaW5nTGFiZWwnLCAndmFyaWFudCcsICd5ZWFyR3JpZExhYmVsJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdjbG9zZScsICdjbGVhcicsICdmb2N1c0lucHV0JywgJ2dldFZhbGlkaXR5JywgJ2NoZWNrVmFsaWRpdHknLCAncmVwb3J0VmFsaWRpdHknLCAnc2V0Q3VzdG9tVmFsaWRpdHknXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLWRhdGUtcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjYWxlbmRhckljb24nLCAnY2FuY2VsTGFiZWwnLCAnY2hvb3NlTW9udGhBbmRZZWFyTGFiZWwnLCAnY2hvb3NlTW9udGhMYWJlbCcsICdjaG9vc2VNb250aFllYXJMYWJlbCcsICdjaG9vc2VZZWFyTGFiZWwnLCAnY2xlYXJMYWJlbCcsICdjbGVhcmFibGUnLCAnY2xvc2VDYWxlbmRhckxhYmVsJywgJ2NvbW1pdE9uU2VsZWN0JywgJ2RhdGVTZXBhcmF0b3InLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdlbnRlckRhdGVzTGFiZWwnLCAnZXJyb3InLCAnZXJyb3JUZXh0JywgJ2ZpZWxkVmFyaWFudCcsICdmaXJzdERheU9mV2VlaycsICdoZWFkbGluZScsICdpbnZhbGlkRGF0ZUxhYmVsJywgJ2lzRGF0ZURpc2FibGVkJywgJ2xhYmVsJywgJ2xvY2FsZScsICdtYXgnLCAnbWluJywgJ25hbWUnLCAnbmV4dE1vbnRoTGFiZWwnLCAnbmV4dFllYXJMYWJlbCcsICdva0xhYmVsJywgJ29wZW4nLCAnb3BlbkNhbGVuZGFyTGFiZWwnLCAnb3V0c2lkZUNsaWNrRGlzbWlzc2libGUnLCAncGxhY2Vob2xkZXInLCAncHJldmlvdXNNb250aExhYmVsJywgJ3ByZXZpb3VzWWVhckxhYmVsJywgJ3JlcXVpcmVkJywgJ3Jlc2VydmVTdXBwb3J0aW5nU3BhY2UnLCAnc2NyaW1EaXNtaXNzaWJsZScsICdzZWxlY3REYXRlTGFiZWwnLCAnc3VwcG9ydGluZ1RleHQnLCAndG9nZ2xlQ2FsZW5kYXJMYWJlbCcsICd0b2dnbGVUZXh0TGFiZWwnLCAndmFsdWUnLCAndmFsdWVNaXNzaW5nTGFiZWwnLCAndmFyaWFudCcsICd5ZWFyR3JpZExhYmVsJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWREYXRlUGlja2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRDaGFuZ2UnLCAnbWRTZWxlY3RlZCcsICdtZElucHV0JywgJ21kT3BlbicsICdtZENsb3NlJywgJ21kQ2FuY2VsJywgJ21kVmlld0NoYW5nZScsICdtZE1lbnVPcGVuJywgJ21kTWVudVNlbGVjdCcsICdtZE1vZGVDaGFuZ2UnLCAnbWRWYWxpZGl0eUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWREYXRlUGlja2VyQ2hhbmdlRGV0YWlsIGFzIElNZERhdGVQaWNrZXJNZERhdGVQaWNrZXJDaGFuZ2VEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgTWREYXRlUGlja2VyU2VsZWN0ZWREZXRhaWwgYXMgSU1kRGF0ZVBpY2tlck1kRGF0ZVBpY2tlclNlbGVjdGVkRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kRGF0ZVBpY2tlclZpZXdDaGFuZ2VEZXRhaWwgYXMgSU1kRGF0ZVBpY2tlck1kRGF0ZVBpY2tlclZpZXdDaGFuZ2VEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgTWREYXRlUGlja2VyTWVudU9wZW5EZXRhaWwgYXMgSU1kRGF0ZVBpY2tlck1kRGF0ZVBpY2tlck1lbnVPcGVuRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kRGF0ZVBpY2tlck1lbnVTZWxlY3REZXRhaWwgYXMgSU1kRGF0ZVBpY2tlck1kRGF0ZVBpY2tlck1lbnVTZWxlY3REZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgTWREYXRlUGlja2VyTW9kZUNoYW5nZURldGFpbCBhcyBJTWREYXRlUGlja2VyTWREYXRlUGlja2VyTW9kZUNoYW5nZURldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWREYXRlUGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5NZERhdGVQaWNrZXIge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB1c2VyIGNvbW1pdHMgYSBzZWxlY3Rpb24uXG4gICAqL1xuICBtZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZERhdGVQaWNrZXJNZERhdGVQaWNrZXJDaGFuZ2VEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdXNlciBzZWxlY3RzIGEgZGF5IGluIHRoZSBjYWxlbmRhciAoY2xpY2sgb3Iga2V5Ym9hcmQpLlxuICAgKi9cbiAgbWRTZWxlY3RlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZERhdGVQaWNrZXJNZERhdGVQaWNrZXJTZWxlY3RlZERldGFpbD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBvbiBldmVyeSBrZXlzdHJva2UgaW4gYSB0ZXh0LWVudHJ5IGZpZWxkLlxuICAgKi9cbiAgbWRJbnB1dDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdmFsdWU6IHN0cmluZyB9Pj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHBpY2tlciBvcGVucy5cbiAgICovXG4gIG1kT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgcGlja2VyIGNsb3NlcyBmb3IgYW55IHJlYXNvbi5cbiAgICovXG4gIG1kQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHVzZXIgZGlzbWlzc2VzIHdpdGhvdXQgY29tbWl0dGluZyAoc2NyaW0sIENhbmNlbCwgRXNjKS5cbiAgICovXG4gIG1kQ2FuY2VsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBkaXNwbGF5ZWQgY2FsZW5kYXIgbW9udGgveWVhciBjaGFuZ2VzIGZyb20gdXNlciBuYXZpZ2F0aW9uLlxuICAgKi9cbiAgbWRWaWV3Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kRGF0ZVBpY2tlck1kRGF0ZVBpY2tlclZpZXdDaGFuZ2VEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdXNlciBvcGVucyB0aGUgbW9udGggb3IgeWVhciBzZWxlY3Rpb24gbWVudSAvIGdyaWQuXG4gICAqL1xuICBtZE1lbnVPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kRGF0ZVBpY2tlck1kRGF0ZVBpY2tlck1lbnVPcGVuRGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHVzZXIgcGlja3MgYSBtb250aCBvciB5ZWFyIGZyb20gYSBzZWxlY3Rpb24gbWVudSAvIGdyaWQuXG4gICAqL1xuICBtZE1lbnVTZWxlY3Q6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWREYXRlUGlja2VyTWREYXRlUGlja2VyTWVudVNlbGVjdERldGFpbD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB1c2VyIHRvZ2dsZXMgYmV0d2VlbiBjYWxlbmRhciBhbmQgdHlwZWQtZW50cnkgdmlld3MuXG4gICAqL1xuICBtZE1vZGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWREYXRlUGlja2VyTWREYXRlUGlja2VyTW9kZUNoYW5nZURldGFpbD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGlzIGNvbnRyb2wncyB2YWxpZGl0eSBDSEFOR0VTIOKAlCBuZXZlciBvbiBldmVyeSBrZXlzdHJva2UsIGFuZFxubmV2ZXIgZm9yIGEgcmUtcHVibGlzaCB0aGF0IGxhbmRzIG9uIHRoZSBzYW1lIHN0YXRlLlxuXG5gY29tcG9zZWQ6IGZhbHNlYCBpcyBkZWxpYmVyYXRlLiBDb21wb3NpdGVzIGxpa2UgbWQtc2VsZWN0IGVtYmVkIGFuXG5tZC10ZXh0LWZpZWxkLCBhbmQgYSBjb21wb3NlZCBldmVudCBlc2NhcGVzIHRoYXQgaW5uZXIgc2hhZG93IHJvb3QsIHNvIGFcbmxpc3RlbmVyIG9uIG1kLXNlbGVjdCB3b3VsZCByZWNlaXZlIHRoZSBpbm5lciBmaWVsZCdzIGV2ZW50IGFzIHdlbGwgYXMgdGhlXG5ob3N0J3Mg4oCUIHR3byBldmVudHMsIGRpZmZlcmVudCBwYXlsb2FkcywgZm9yIG9uZSBsb2dpY2FsIGNvbnRyb2wuIEtlZXBpbmdcbml0IHVuY29tcG9zZWQgbWVhbnMgZWFjaCBjb21wb25lbnQgcmVwb3J0cyBvbmx5IGZvciBpdHNlbGYsIHdoaWxlXG5gYnViYmxlczogdHJ1ZWAgc3RpbGwgbGV0cyBhIDxmb3JtPiBvciBhcHAgcm9vdCBoZWFyIGV2ZXJ5IGNvbnRyb2wuXG4gICAqL1xuICBtZFZhbGlkaXR5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWxpZDogYm9vbGVhbjsgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZzsgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+OyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZERpYWxvZyxcbiAgaW5wdXRzOiBbJ2NhbmNlbExhYmVsJywgJ2Nsb3NlTGFiZWwnLCAnZGVuc2l0eScsICdkaXZpZGVyJywgJ2Z1bGxzY3JlZW4nLCAnaGVhZGVyRGl2aWRlcicsICdoZWFkbGluZScsICdpY29uJywgJ2xvY2FsZScsICdva0xhYmVsJywgJ29wZW4nLCAnc2NyaW1EaXNtaXNzaWJsZSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnY2xvc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLWRpYWxvZycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2FuY2VsTGFiZWwnLCAnY2xvc2VMYWJlbCcsICdkZW5zaXR5JywgJ2RpdmlkZXInLCAnZnVsbHNjcmVlbicsICdoZWFkZXJEaXZpZGVyJywgJ2hlYWRsaW5lJywgJ2ljb24nLCAnbG9jYWxlJywgJ29rTGFiZWwnLCAnb3BlbicsICdzY3JpbURpc21pc3NpYmxlJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWREaWFsb2cge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZE9wZW4nLCAnbWRDbG9zZScsICdtZENhbmNlbCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZERpYWxvZyBleHRlbmRzIENvbXBvbmVudHMuTWREaWFsb2cge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgZGlhbG9nIG9wZW5zXG4gICAqL1xuICBtZE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBkaWFsb2cgY2xvc2VzXG4gICAqL1xuICBtZENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHMgd2hlbiBkaXNtaXNzZWQgdmlhIHNjcmltIG9yIEVzY2FwZVxuICAgKi9cbiAgbWRDYW5jZWw6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZERpdmlkZXIsXG4gIGlucHV0czogWydpbnNldCcsICdpbnNldEVuZCcsICdpbnNldFN0YXJ0JywgJ3ZlcnRpY2FsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1kaXZpZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpbnNldCcsICdpbnNldEVuZCcsICdpbnNldFN0YXJ0JywgJ3ZlcnRpY2FsJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWREaXZpZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWREaXZpZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5NZERpdmlkZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kRmFiLFxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdkaXNhYmxlZCcsICdleHRlbmRlZCcsICdpY29uJywgJ2xhYmVsJywgJ2xvd2VyZWQnLCAncmlwcGxlJywgJ3NpemUnLCAnc29mdERpc2FibGVkJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLWZhYicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdkaXNhYmxlZCcsICdleHRlbmRlZCcsICdpY29uJywgJ2xhYmVsJywgJ2xvd2VyZWQnLCAncmlwcGxlJywgJ3NpemUnLCAnc29mdERpc2FibGVkJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZEZhYiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRGYWIgZXh0ZW5kcyBDb21wb25lbnRzLk1kRmFiIHtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHVzZXIgYWN0aXZhdGVzIHRoZSBGQUIgKG1vdXNlIGNsaWNrLCB0b3VjaCwgb3JcbmBFbnRlcmAvYFNwYWNlYCB3aGlsZSBmb2N1c2VkKS4gTm90IGVtaXR0ZWQgd2hlbiBgZGlzYWJsZWRgIG9yXG5gc29mdC1kaXNhYmxlZGAuIEJ1YmJsZXMgYW5kIGlzIGNvbXBvc2VkIHNvIGEgZGVsZWdhdGVkIGxpc3RlbmVyXG5vbiBhIHBhcmVudCBlbGVtZW50IHdvcmtzLlxuXG5gYGB0c1xuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbWQtZmFiJykhLmFkZEV2ZW50TGlzdGVuZXIoJ21kQ2xpY2snLCAoZSkgPT4ge1xuICBjb25zdCBtb3VzZUV2ZW50ID0gKGUgYXMgQ3VzdG9tRXZlbnQ8TW91c2VFdmVudD4pLmRldGFpbDtcbiAgY29uc29sZS5sb2coJ0ZBQiBjbGlja2VkIGF0JywgbW91c2VFdmVudC5jbGllbnRYLCBtb3VzZUV2ZW50LmNsaWVudFkpO1xufSk7XG5gYGBcbiAgICovXG4gIG1kQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxNb3VzZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZEZhYk1lbnUsXG4gIGlucHV0czogWydhbmNob3InLCAnZGVuc2l0eScsICdtZW51TGFiZWwnLCAnb3BlbicsICdwbGFjZW1lbnQnLCAncXVpY2snLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnY2xvc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLWZhYi1tZW51JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmNob3InLCAnZGVuc2l0eScsICdtZW51TGFiZWwnLCAnb3BlbicsICdwbGFjZW1lbnQnLCAncXVpY2snLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kRmFiTWVudSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kT3BlbicsICdtZENsb3NlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kRmFiTWVudSBleHRlbmRzIENvbXBvbmVudHMuTWRGYWJNZW51IHtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIG1lbnUgb3BlbnMuXG4gICAqL1xuICBtZE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBtZW51IGNsb3Nlcy5cbiAgICovXG4gIG1kQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZEZhYk1lbnVJdGVtLFxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdkaXNhYmxlZCcsICdpY29uJywgJ2xhYmVsJywgJ3JvdmluZ0ZvY3VzVmlzaWJsZScsICdzb2Z0RGlzYWJsZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLWZhYi1tZW51LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnaWNvbicsICdsYWJlbCcsICdyb3ZpbmdGb2N1c1Zpc2libGUnLCAnc29mdERpc2FibGVkJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRGYWJNZW51SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRGYWJNZW51SXRlbSBleHRlbmRzIENvbXBvbmVudHMuTWRGYWJNZW51SXRlbSB7XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBpdGVtIGlzIGFjdGl2YXRlZC5cbiAgICovXG4gIG1kQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZEljb25CdXR0b24sXG4gIGlucHV0czogWydidXR0b25XaWR0aCcsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnaWNvbicsICdyaXBwbGUnLCAnc2VsZWN0ZWQnLCAnc2VsZWN0ZWRJY29uJywgJ3NoYXBlJywgJ3NoYXBlTW9ycGgnLCAnc2l6ZScsICdzb2Z0RGlzYWJsZWQnLCAndGFyZ2V0JywgJ3RvZ2dsZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1pY29uLWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYnV0dG9uV2lkdGgnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdocmVmJywgJ2ljb24nLCAncmlwcGxlJywgJ3NlbGVjdGVkJywgJ3NlbGVjdGVkSWNvbicsICdzaGFwZScsICdzaGFwZU1vcnBoJywgJ3NpemUnLCAnc29mdERpc2FibGVkJywgJ3RhcmdldCcsICd0b2dnbGUnLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kSWNvbkJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRJY29uQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5NZEljb25CdXR0b24ge1xuICAvKipcbiAgICogRmlyZXMgb24gcG9pbnRlciBvciBrZXlib2FyZCBhY3RpdmF0aW9uLiBEZXRhaWwgaW5jbHVkZXMgdG9nZ2xlIGBzZWxlY3RlZGAgc3RhdGUuXG4gICAqL1xuICBtZENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBzZWxlY3RlZDogYm9vbGVhbiB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZExpbmVDaGFydCxcbiAgaW5wdXRzOiBbJ2FuaW1hdGlvbicsICdhbmltYXRpb25EdXJhdGlvbicsICdhcmVhJywgJ2F4aXNUaWNrcycsICdjb25uZWN0TnVsbHMnLCAnY3VydmUnLCAnZGVuc2l0eScsICdncmlkJywgJ2hlaWdodFByb3AnLCAnaW52ZXJ0ZWQnLCAnbGFiZWwnLCAnbGFiZWxFbXB0eScsICdsYWJlbFBsb3QnLCAnbGFiZWxQb2ludCcsICdsYWJlbFpvb21FbmQnLCAnbGFiZWxab29tU3RhcnQnLCAnbGVnZW5kJywgJ2xpbmVXaWR0aCcsICdsb2FkaW5nJywgJ2xvYWRpbmdMYWJlbCcsICdsb2NhbGUnLCAnbWFya0xpbmVzJywgJ21hcmtTaXplJywgJ25vQW5pbWF0aW9uJywgJ3NlcmllcycsICdzZXJpZXNMYWJlbHMnLCAnc2hvd0xhYmVscycsICdzaG93TGluZScsICdzaG93TWFya3MnLCAnc3RhY2snLCAnc3VidGl0bGUnLCAnc3VtbWFyeScsICd0YWJsZUxhYmVscycsICd0aXRsZUFsaWduJywgJ3Rvb2x0aXAnLCAndG9vbHRpcFJlbmRlcmVyJywgJ3ZhbHVlRm9ybWF0dGVyJywgJ3hBeGlzJywgJ3lBeGVzJywgJ3lBeGlzJywgJ3pvb20nXSxcbiAgbWV0aG9kczogWydyZWZyZXNoVGhlbWUnLCAncmVzaXplJywgJ3JlcGxheScsICd0b0RhdGFVUkwnLCAnZ2V0SW5zdGFuY2UnLCAnc2V0Wm9vbScsICdyZXNldFpvb20nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLWxpbmUtY2hhcnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuaW1hdGlvbicsICdhbmltYXRpb25EdXJhdGlvbicsICdhcmVhJywgJ2F4aXNUaWNrcycsICdjb25uZWN0TnVsbHMnLCAnY3VydmUnLCAnZGVuc2l0eScsICdncmlkJywgJ2hlaWdodFByb3AnLCAnaW52ZXJ0ZWQnLCAnbGFiZWwnLCAnbGFiZWxFbXB0eScsICdsYWJlbFBsb3QnLCAnbGFiZWxQb2ludCcsICdsYWJlbFpvb21FbmQnLCAnbGFiZWxab29tU3RhcnQnLCAnbGVnZW5kJywgJ2xpbmVXaWR0aCcsICdsb2FkaW5nJywgJ2xvYWRpbmdMYWJlbCcsICdsb2NhbGUnLCAnbWFya0xpbmVzJywgJ21hcmtTaXplJywgJ25vQW5pbWF0aW9uJywgJ3NlcmllcycsICdzZXJpZXNMYWJlbHMnLCAnc2hvd0xhYmVscycsICdzaG93TGluZScsICdzaG93TWFya3MnLCAnc3RhY2snLCAnc3VidGl0bGUnLCAnc3VtbWFyeScsICd0YWJsZUxhYmVscycsICd0aXRsZUFsaWduJywgJ3Rvb2x0aXAnLCAndG9vbHRpcFJlbmRlcmVyJywgJ3ZhbHVlRm9ybWF0dGVyJywgJ3hBeGlzJywgJ3lBeGVzJywgJ3lBeGlzJywgJ3pvb20nXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZExpbmVDaGFydCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kTWFya2VyQ2xpY2snLCAnbWRMaW5lQ2xpY2snLCAnbWRBcmVhQ2xpY2snLCAnbWRBeGlzQ2xpY2snLCAnbWRMZWdlbmRDbGljaycsICdtZEhvdmVyJywgJ21kUmVhZHknLCAnbWRab29tJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZENoYXJ0Q2xpY2tEZXRhaWwgYXMgSU1kTGluZUNoYXJ0TWRDaGFydENsaWNrRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kQ2hhcnRYWVNlcmllcyBhcyBJTWRMaW5lQ2hhcnRNZENoYXJ0WFlTZXJpZXMgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgTWRDaGFydEF4aXNDbGlja0RldGFpbCBhcyBJTWRMaW5lQ2hhcnRNZENoYXJ0QXhpc0NsaWNrRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kQ2hhcnRIb3ZlckRldGFpbCBhcyBJTWRMaW5lQ2hhcnRNZENoYXJ0SG92ZXJEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kTGluZUNoYXJ0IGV4dGVuZHMgQ29tcG9uZW50cy5NZExpbmVDaGFydCB7XG4gIC8qKlxuICAgKiBGaXJlcyBvbiBtYXJrZXIgY2xpY2suIGBkYXRhSW5kZXhgIGFkZHJlc3NlcyB0aGUgY2xpY2tlZCBzZXJpZXMnIG93blxuYGRhdGFgIGFycmF5IChpdHMgcG9pbnQgaW5kZXgsIGZvciBzZXJpZXMgdGhhdCBjYXJyeSB0aGVpciBvd24geCkuXG4gICAqL1xuICBtZE1hcmtlckNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kTGluZUNoYXJ0TWRDaGFydENsaWNrRGV0YWlsPElNZExpbmVDaGFydE1kQ2hhcnRYWVNlcmllcz4+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gYSBzZXJpZXMnIGRyYXduIGxpbmUgaXMgY2xpY2tlZCAqYmV0d2VlbiogaXRzIGRhdGEgcG9pbnRzIChhXG5jbGljayBvbiBhIHBvaW50IGVtaXRzIGBtZE1hcmtlckNsaWNrYCBpbnN0ZWFkKS4gYGRhdGFJbmRleGAgaXMgdGhlIHBvaW50XG50aGUgY2xpY2sgaXMgbmVhcmVzdCBhbG9uZyB4LlxuICAgKi9cbiAgbWRMaW5lQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRMaW5lQ2hhcnRNZENoYXJ0Q2xpY2tEZXRhaWw8SU1kTGluZUNoYXJ0TWRDaGFydFhZU2VyaWVzPj4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiBhIHNlcmllcycgZmlsbGVkIGFyZWEgaXMgY2xpY2tlZCAoYGFyZWFgIGNoYXJ0cyBvbmx5KSDigJQgdGhlXG5yZWdpb24gYmV0d2VlbiB0aGF0IHNlcmllcycgbGluZSBhbmQgaXRzIGJhc2VsaW5lLCBleGNsdWRpbmcgaXRzIGxpbmUgYW5kXG5wb2ludHMuIGBkYXRhSW5kZXhgIGlzIHRoZSBwb2ludCB0aGUgY2xpY2sgaXMgbmVhcmVzdCBhbG9uZyB4LlxuICAgKi9cbiAgbWRBcmVhQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRMaW5lQ2hhcnRNZENoYXJ0Q2xpY2tEZXRhaWw8SU1kTGluZUNoYXJ0TWRDaGFydFhZU2VyaWVzPj4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgcGxvdCBiYWNrZ3JvdW5kIGlzIGNsaWNrZWQgKGluc2lkZSB0aGUgcGxvdCwgYnV0IG5vdCBvbiBhXG5tYXJrLCBsaW5lIG9yIGFyZWEpOiB0aGUgbmVhcmVzdCB4IHBvc2l0aW9uIHBsdXMgZXZlcnkgdmlzaWJsZSBzZXJpZXMnXG52YWx1ZSB0aGVyZS5cbiAgICovXG4gIG1kQXhpc0NsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kTGluZUNoYXJ0TWRDaGFydEF4aXNDbGlja0RldGFpbD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiBhIGxlZ2VuZCBlbnRyeSBpcyBjbGlja2VkLlxuICAgKi9cbiAgbWRMZWdlbmRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc2VyaWVzSW5kZXg6IG51bWJlcjsgc2VyaWVzSWQ/OiBzdHJpbmc7IHNlbGVjdGVkOiBib29sZWFuIH0+PjtcbiAgLyoqXG4gICAqIEZpcmVzICh0aHJvdHRsZWQgdG8gckFGKSBhcyB0aGUgcG9pbnRlciBjcm9zc2VzIHRoZSBwbG90LlxuICAgKi9cbiAgbWRIb3ZlcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZExpbmVDaGFydE1kQ2hhcnRIb3ZlckRldGFpbD4+O1xuICAvKipcbiAgICogRmlyZXMgYWZ0ZXIgdGhlIGNoYXJ0IGZpbmlzaGVzIGl0cyBpbml0aWFsIHJlbmRlci5cbiAgICovXG4gIG1kUmVhZHk6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSB6b29tIHdpbmRvdyBjaGFuZ2VzIChkcmFnLCBzbGlkZXIgb3IgYHNldFpvb21gL2ByZXNldFpvb21gKS5cbiAgICovXG4gIG1kWm9vbTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc3RhcnRJbmRleDogbnVtYmVyOyBlbmRJbmRleDogbnVtYmVyOyByZXNldDogYm9vbGVhbiB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZExpc3QsXG4gIGlucHV0czogWydkZW5zaXR5JywgJ2ludGVyYWN0aW9uTW9kZScsICdsYWJlbCcsICdsYWJlbGxlZGJ5JywgJ2xpc3RTdHlsZScsICdyZW9yZGVyYWJsZScsICdyb2xlT3ZlcnJpZGUnLCAnc2VsZWN0aW9uTW9kZSddLFxuICBtZXRob2RzOiBbJ2FjdGl2YXRlTmV4dCcsICdhY3RpdmF0ZVByZXZpb3VzJywgJ3NlbGVjdEl0ZW0nLCAnZ2V0U2VsZWN0ZWRJbmRpY2VzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1saXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZW5zaXR5JywgJ2ludGVyYWN0aW9uTW9kZScsICdsYWJlbCcsICdsYWJlbGxlZGJ5JywgJ2xpc3RTdHlsZScsICdyZW9yZGVyYWJsZScsICdyb2xlT3ZlcnJpZGUnLCAnc2VsZWN0aW9uTW9kZSddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kTGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kU2VsZWN0JywgJ21kQWN0aXZhdGUnLCAnbWRSZW9yZGVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZExpc3RTZWxlY3REZXRhaWwgYXMgSU1kTGlzdE1kTGlzdFNlbGVjdERldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRMaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5NZExpc3Qge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHNlbGVjdGlvbiBjaGFuZ2VzIHZpYSB1c2VyIGlucHV0IChjbGljayAvIEVudGVyIC8gU3BhY2UpLlxuICAgKi9cbiAgbWRTZWxlY3Q6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRMaXN0TWRMaXN0U2VsZWN0RGV0YWlsPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW5ldmVyIHJvdmluZyBmb2N1cyBsYW5kcyBvbiBhIGRpZmZlcmVudCByb3cuXG4gICAqL1xuICBtZEFjdGl2YXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBpbmRleDogbnVtYmVyOyBpdGVtOiBIVE1MTWRMaXN0SXRlbUVsZW1lbnQgfT4+O1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciBhIGRyYWcgKG9yIGtleWJvYXJkKSByZW9yZGVyIGNvbXBsZXRlcy5cblxuLSBgZnJvbWAgLyBgdG9gOiB0aGUgbW92ZWQgcm93J3Mgb2xkIGFuZCBuZXcgcG9zaXRpb25zIChpdGVtIGluZGljZXMsXG4gIGlnbm9yaW5nIG5vbi1pdGVtIGNoaWxkcmVuIGxpa2UgZGl2aWRlcnMpLlxuLSBgb3JkZXJgOiB0aGUgbmV3IG9yZGVyIGV4cHJlc3NlZCBhcyB0aGUgb3JpZ2luYWwgKGFzLWF1dGhvcmVkKSBpbmRpY2VzLFxuICBzbyBgb3JkZXJbbmV3UG9zaXRpb25dID09PSBvcmlnaW5hbFBvc2l0aW9uYC4gVXNlIGl0IHRvIHJlb3JkZXIgYVxuICBiYWNraW5nIGRhdGEgYXJyYXkgaW4gb25lIHBhc3MuXG4gICAqL1xuICBtZFJlb3JkZXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGZyb206IG51bWJlcjsgdG86IG51bWJlcjsgb3JkZXI6IG51bWJlcltdIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kTGlzdEl0ZW0sXG4gIGlucHV0czogWydjb250YWluZXJSb2xlJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZXhwYW5kYWJsZScsICdleHBhbmRlZCcsICdoZWFkbGluZScsICdocmVmJywgJ2ludGVyYWN0aW9uTW9kZScsICdsZWFkaW5nQXZhdGFyJywgJ2xlYWRpbmdBdmF0YXJBbHQnLCAnbGVhZGluZ0F2YXRhckxhYmVsJywgJ2xlYWRpbmdBdmF0YXJOYW1lJywgJ2xlYWRpbmdJY29uJywgJ2xlYWRpbmdJbWFnZScsICdsZWFkaW5nSW1hZ2VBbHQnLCAnbGluZXMnLCAnb3ZlcmxpbmUnLCAncmVvcmRlcmFibGUnLCAncm92aW5nRm9jdXNWaXNpYmxlJywgJ3NlbGVjdGVkJywgJ3NlbGVjdGlvbk1vZGUnLCAnc29mdERpc2FibGVkJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3RhYmJhYmxlJywgJ3RhcmdldCcsICd0cmFpbGluZ0ljb24nLCAndHJhaWxpbmdTdXBwb3J0aW5nVGV4dCcsICd0eXBlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAnZm9jdXNJdGVtJywgJ3RvZ2dsZScsICdleHBhbmQnLCAnY29sbGFwc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLWxpc3QtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29udGFpbmVyUm9sZScsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2V4cGFuZGFibGUnLCAnZXhwYW5kZWQnLCAnaGVhZGxpbmUnLCAnaHJlZicsICdpbnRlcmFjdGlvbk1vZGUnLCAnbGVhZGluZ0F2YXRhcicsICdsZWFkaW5nQXZhdGFyQWx0JywgJ2xlYWRpbmdBdmF0YXJMYWJlbCcsICdsZWFkaW5nQXZhdGFyTmFtZScsICdsZWFkaW5nSWNvbicsICdsZWFkaW5nSW1hZ2UnLCAnbGVhZGluZ0ltYWdlQWx0JywgJ2xpbmVzJywgJ292ZXJsaW5lJywgJ3Jlb3JkZXJhYmxlJywgJ3JvdmluZ0ZvY3VzVmlzaWJsZScsICdzZWxlY3RlZCcsICdzZWxlY3Rpb25Nb2RlJywgJ3NvZnREaXNhYmxlZCcsICdzdXBwb3J0aW5nVGV4dCcsICd0YWJiYWJsZScsICd0YXJnZXQnLCAndHJhaWxpbmdJY29uJywgJ3RyYWlsaW5nU3VwcG9ydGluZ1RleHQnLCAndHlwZSddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kTGlzdEl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZENsaWNrJywgJ21kSXRlbUNsaWNrJywgJ21kSXRlbVNlbGVjdCcsICdtZFJlcXVlc3RBY3RpdmF0aW9uJywgJ21kSXRlbVJlcXVlc3RSZW9yZGVyJywgJ21kRXhwYW5kJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZExpc3RJdGVtRXhwYW5kRGV0YWlsIGFzIElNZExpc3RJdGVtTWRMaXN0SXRlbUV4cGFuZERldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRMaXN0SXRlbSBleHRlbmRzIENvbXBvbmVudHMuTWRMaXN0SXRlbSB7XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIGFuIGludGVyYWN0aXZlIHJvdyBpcyBhY3RpdmF0ZWQgKGNsaWNrLCBFbnRlciwgb3IgU3BhY2UpLlxuICAgKi9cbiAgbWRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgaXRlbTogSFRNTEVsZW1lbnQgfT4+O1xuICAvKipcbiAgICogQnViYmxlcyB0byBwYXJlbnQgYG1kLWxpc3RgIHNvIGl0IGNhbiBtYW5hZ2Ugc2VsZWN0aW9uIHN0YXRlLlxuICAgKi9cbiAgbWRJdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGluZGV4OiBudW1iZXI7IHNlbGVjdGVkOiBib29sZWFuIH0+PjtcbiAgLyoqXG4gICAqIEJ1YmJsZXMgdG8gcGFyZW50IGBtZC1saXN0YCB3aGVuIGFuIGBleHBhbmRlZC1jb250ZW50YCBjaGlsZCByb3cgaXNcbnNlbGVjdGVkLiBUaGUgbGlzdCByZS1lbWl0cyBgbWRTZWxlY3RgIHdpdGggdGhlIHBhcmVudCdzIGxpc3QgaW5kZXgsXG5gY2hpbGRJbmRleGAsIGBleHBhbmRlZGAsIGFuZCB0aGUgY2hpbGQgaW4gYGl0ZW1gLlxuICAgKi9cbiAgbWRJdGVtU2VsZWN0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBpbmRleDogbnVtYmVyOyB2YWx1ZTogc3RyaW5nOyBzZWxlY3RlZDogYm9vbGVhbjsgaXRlbTogSFRNTE1kTGlzdEl0ZW1FbGVtZW50OyB9Pj47XG4gIC8qKlxuICAgKiBBc2tzIHRoZSBwYXJlbnQgYG1kLWxpc3RgIHRvIGdpdmUgdGhpcyByb3cgcm92aW5nIGZvY3VzLlxuICAgKi9cbiAgbWRSZXF1ZXN0QWN0aXZhdGlvbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEludGVybmFsIGV2ZW50IHRoZSBwYXJlbnQgYG1kLWxpc3RgIGxpc3RlbnMgdG8gZm9yIGtleWJvYXJkIHJlb3JkZXJpbmdcbihgQWx0ICsgQXJyb3dVcCAvIEFycm93RG93bmApLiBCdWJibGVzICsgY29tcG9zZWQgc28gaXQgY3Jvc3NlcyB0aGVcbnNoYWRvdyBib3VuZGFyeSB1cCB0byB0aGUgbGlzdC5cbiAgICovXG4gIG1kSXRlbVJlcXVlc3RSZW9yZGVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBkaXJlY3Rpb246ICd1cCcgfCAnZG93bic7IGZyb206IG51bWJlcjsgfT4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbmV2ZXIgdGhlIGV4cGFuZGVkIHN0YXRlIG9mIGFuIGV4cGFuZGFibGUgcm93IGNoYW5nZXMuXG4gICAqL1xuICBtZEV4cGFuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZExpc3RJdGVtTWRMaXN0SXRlbUV4cGFuZERldGFpbD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRMb2FkaW5nSW5kaWNhdG9yLFxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdsYWJlbCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1sb2FkaW5nLWluZGljYXRvcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdsYWJlbCcsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRMb2FkaW5nSW5kaWNhdG9yIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRMb2FkaW5nSW5kaWNhdG9yIGV4dGVuZHMgQ29tcG9uZW50cy5NZExvYWRpbmdJbmRpY2F0b3Ige31cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kTWVudSxcbiAgaW5wdXRzOiBbJ2FuY2hvcicsICdhdXRvRm9jdXMnLCAnZGVuc2l0eScsICdlbXB0eVRleHQnLCAnbGF5b3V0JywgJ2xpc3RMYWJlbCcsICdsaXN0Ym94JywgJ21hdGNoQW5jaG9yV2lkdGgnLCAnbWF4SGVpZ2h0JywgJ29wZW4nLCAncGVyc2lzdGVudCcsICdwbGFjZW1lbnQnLCAncXVpY2snLCAncmVzcG9uc2l2ZScsICd1c2VHYXAnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ3NldENvbWJvYm94RWxlbWVudCcsICdzZXRWaXJ0dWFsUHJvdmlkZXInLCAnZ2V0U2Nyb2xsVmlld3BvcnQnLCAnc2hvdycsICdyZXBvc2l0aW9uJywgJ2Nsb3NlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1tZW51JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmNob3InLCAnYXV0b0ZvY3VzJywgJ2RlbnNpdHknLCAnZW1wdHlUZXh0JywgJ2xheW91dCcsICdsaXN0TGFiZWwnLCAnbGlzdGJveCcsICdtYXRjaEFuY2hvcldpZHRoJywgJ21heEhlaWdodCcsICdvcGVuJywgJ3BlcnNpc3RlbnQnLCAncGxhY2VtZW50JywgJ3F1aWNrJywgJ3Jlc3BvbnNpdmUnLCAndXNlR2FwJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZE1lbnUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZE9wZW4nLCAnbWRDbG9zZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZE1lbnUgZXh0ZW5kcyBDb21wb25lbnRzLk1kTWVudSB7XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBtZW51IG9wZW5zLiBTY29wZWQgdG8gdGhlIG1lbnUgZWxlbWVudDogYGJ1YmJsZXM6IGZhbHNlYFxuc3RvcHMgaXQgY2xpbWJpbmcgdGhlIGxpZ2h0LURPTSB0cmVlLCBhbmQgYGNvbXBvc2VkOiBmYWxzZWAgc3RvcHMgaXRcbmVzY2FwaW5nIHRoZSBzaGFkb3cgcm9vdCBvZiBhIGhvc3QgdGhhdCBlbWJlZHMgdGhpcyBtZW51IChtZC1zZWxlY3QsXG5tZC1tdWx0aS1zZWxlY3QsIG1kLWRhdGUtcGlja2VyIOKApikuIFdpdGhvdXQgYGNvbXBvc2VkOiBmYWxzZWAgYVxuYGNvbXBvc2VkYCBldmVudCBzdGlsbCBzdXJmYWNlcyBhdCB0aGUgZW1iZWRkaW5nIGhvc3QgYXMgYW5cbmBBVF9UQVJHRVRgIGV2ZW50IOKAlCBzbyBhIGNvbnN1bWVyJ3MgYG1kT3BlbmAgbGlzdGVuZXIgb24gdGhlIHdyYXBwZXJcbndvdWxkIGZpcmUgZm9yIGJvdGggdGhlIHdyYXBwZXIncyBvd24gZXZlbnQgYW5kIHRoaXMgaW5uZXIgb25lXG4oZHVwbGljYXRlIG9wZW4vY2xvc2UpLiBXcmFwcGVycyBsaXN0ZW4gdmlhIGBvbk1kT3BlbmAgb24gdGhlIG1lbnVcbmVsZW1lbnQgaXRzZWxmLCB3aGljaCBzdGlsbCBmaXJlcyByZWdhcmRsZXNzLlxuICAgKi9cbiAgbWRPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgbWVudSBjbG9zZXMuIFNjb3BlZCBsaWtlIGBtZE9wZW5gIOKAlCBzZWUgaXRzIG5vdGUuXG4gICAqL1xuICBtZENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRNZW51SXRlbSxcbiAgaW5wdXRzOiBbJ2JhZGdlJywgJ2NoZWNrUG9zaXRpb24nLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdkaXZpZGVyJywgJ2dhcCcsICdoZWFkbGluZScsICdpbmRldGVybWluYXRlJywgJ2tlZXBPcGVuJywgJ3ByZXNlbnRhdGlvbicsICdyb2xlT3ZlcnJpZGUnLCAnc2VsZWN0ZWQnLCAnc3VwcG9ydGluZ1RleHQnLCAndHJhaWxpbmdUZXh0JywgJ3R5cGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLW1lbnUtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYmFkZ2UnLCAnY2hlY2tQb3NpdGlvbicsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2RpdmlkZXInLCAnZ2FwJywgJ2hlYWRsaW5lJywgJ2luZGV0ZXJtaW5hdGUnLCAna2VlcE9wZW4nLCAncHJlc2VudGF0aW9uJywgJ3JvbGVPdmVycmlkZScsICdzZWxlY3RlZCcsICdzdXBwb3J0aW5nVGV4dCcsICd0cmFpbGluZ1RleHQnLCAndHlwZSddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kTWVudUl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZENsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kTWVudUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLk1kTWVudUl0ZW0ge1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgaXRlbSBpcyBhY3RpdmF0ZWQuXG4gICAqL1xuICBtZENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRNZW51SXRlbUdyb3VwLFxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdsYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtbWVudS1pdGVtLWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZW5zaXR5JywgJ2xhYmVsJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRNZW51SXRlbUdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRNZW51SXRlbUdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5NZE1lbnVJdGVtR3JvdXAge31cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kTWV0ZXIsXG4gIGlucHV0czogWydjb2xvcicsICdkZW5zaXR5JywgJ2Zvcm1hdE9wdGlvbnMnLCAnbGFiZWwnLCAnbG9jYWxlJywgJ21heCcsICdtaW4nLCAnc2hvd0xhYmVsJywgJ3Nob3dWYWx1ZScsICdzaXplJywgJ3RoaWNrbmVzcycsICd2YWx1ZScsICd2YWx1ZVRleHQnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtbWV0ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2RlbnNpdHknLCAnZm9ybWF0T3B0aW9ucycsICdsYWJlbCcsICdsb2NhbGUnLCAnbWF4JywgJ21pbicsICdzaG93TGFiZWwnLCAnc2hvd1ZhbHVlJywgJ3NpemUnLCAndGhpY2tuZXNzJywgJ3ZhbHVlJywgJ3ZhbHVlVGV4dCcsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRNZXRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kTWV0ZXIgZXh0ZW5kcyBDb21wb25lbnRzLk1kTWV0ZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kTXVsdGlTZWxlY3QsXG4gIGlucHV0czogWydjaGlwT3ZlcmZsb3cnLCAnY2hpcFBvc2l0aW9uJywgJ2NsZWFySWNvbicsICdjbGVhckxhYmVsJywgJ2NsZWFyYWJsZScsICdjb3VudEZvcm1hdHRlcicsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2Rpc3BsYXlNb2RlJywgJ2Ryb3Bkb3duSWNvbicsICdlcnJvcicsICdlcnJvclRleHQnLCAnZmlsdGVyTGFiZWwnLCAnZmlsdGVyTW9kZScsICdmaWx0ZXJhYmxlJywgJ2xhYmVsJywgJ2xvYWRpbmcnLCAnbG9hZGluZ1RleHQnLCAnbWF0Y2hUcmlnZ2VyV2lkdGgnLCAnbWF4SGVpZ2h0JywgJ21heFNlbGVjdGVkJywgJ25hbWUnLCAnbm9PcHRpb25zVGV4dCcsICdub1Jlc3VsdHNUZXh0JywgJ29wZW4nLCAnb3B0aW9ucycsICdwbGFjZWhvbGRlcicsICdwbGFjZW1lbnQnLCAncmVxdWlyZWQnLCAncmVzZXJ2ZVN1cHBvcnRpbmdTcGFjZScsICdyb3dIZWlnaHQnLCAnc2VhcmNoUGxhY2Vob2xkZXInLCAnc2VhcmNoaW5nTGFiZWwnLCAnc2VsZWN0QWxsTGFiZWwnLCAnc2hvd1NlbGVjdEFsbCcsICdzb2Z0RGlzYWJsZWQnLCAnc3VwcG9ydGluZ1RleHQnLCAndHJpZ2dlcicsICd0cmlnZ2VySWNvbicsICd0cmlnZ2VyTGFiZWwnLCAndmFsdWUnLCAndmFsdWVNaXNzaW5nTGFiZWwnLCAndmFyaWFudCcsICd2aXJ0dWFsaXplJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdjbG9zZScsICdmb2N1c1RyaWdnZXInLCAncmVzZXQnLCAnbG9hZE9wdGlvbnMnLCAnc2V0UXVlcnknLCAnZ2V0TGFiZWxzJywgJ2dldFZhbGlkaXR5JywgJ2NoZWNrVmFsaWRpdHknLCAncmVwb3J0VmFsaWRpdHknLCAnc2V0Q3VzdG9tVmFsaWRpdHknXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLW11bHRpLXNlbGVjdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hpcE92ZXJmbG93JywgJ2NoaXBQb3NpdGlvbicsICdjbGVhckljb24nLCAnY2xlYXJMYWJlbCcsICdjbGVhcmFibGUnLCAnY291bnRGb3JtYXR0ZXInLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdkaXNwbGF5TW9kZScsICdkcm9wZG93bkljb24nLCAnZXJyb3InLCAnZXJyb3JUZXh0JywgJ2ZpbHRlckxhYmVsJywgJ2ZpbHRlck1vZGUnLCAnZmlsdGVyYWJsZScsICdsYWJlbCcsICdsb2FkaW5nJywgJ2xvYWRpbmdUZXh0JywgJ21hdGNoVHJpZ2dlcldpZHRoJywgJ21heEhlaWdodCcsICdtYXhTZWxlY3RlZCcsICduYW1lJywgJ25vT3B0aW9uc1RleHQnLCAnbm9SZXN1bHRzVGV4dCcsICdvcGVuJywgJ29wdGlvbnMnLCAncGxhY2Vob2xkZXInLCAncGxhY2VtZW50JywgJ3JlcXVpcmVkJywgJ3Jlc2VydmVTdXBwb3J0aW5nU3BhY2UnLCAncm93SGVpZ2h0JywgJ3NlYXJjaFBsYWNlaG9sZGVyJywgJ3NlYXJjaGluZ0xhYmVsJywgJ3NlbGVjdEFsbExhYmVsJywgJ3Nob3dTZWxlY3RBbGwnLCAnc29mdERpc2FibGVkJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3RyaWdnZXInLCAndHJpZ2dlckljb24nLCAndHJpZ2dlckxhYmVsJywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ0xhYmVsJywgJ3ZhcmlhbnQnLCAndmlydHVhbGl6ZSddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kTXVsdGlTZWxlY3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZENoYW5nZScsICdtZE9wZW4nLCAnbWRDbG9zZScsICdtZFJlbW92ZScsICdtZENsZWFyJywgJ21kVmFsaWRpdHlDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRNdWx0aVNlbGVjdCBleHRlbmRzIENvbXBvbmVudHMuTWRNdWx0aVNlbGVjdCB7XG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgZnVsbCBzZWxlY3RlZC12YWx1ZSBhcnJheSB3aGVuZXZlciB0aGUgc2VsZWN0aW9uIGNoYW5nZXMuXG4gICAqL1xuICBtZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZ1tdPj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBtZW51IG9wZW5zLlxuICAgKi9cbiAgbWRPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgbWVudSBjbG9zZXMuXG4gICAqL1xuICBtZENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHMgdGhlIHJlbW92ZWQgdmFsdWUgd2hlbiBhIGNoaXAgaXMgZGlzbWlzc2VkLlxuICAgKi9cbiAgbWRSZW1vdmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGNsZWFyIGJ1dHRvbiBlbXB0aWVzIHRoZSBzZWxlY3Rpb24uXG4gICAqL1xuICBtZENsZWFyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGlzIGNvbnRyb2wncyB2YWxpZGl0eSBDSEFOR0VTIOKAlCBuZXZlciBvbiBldmVyeSBrZXlzdHJva2UsIGFuZFxubmV2ZXIgZm9yIGEgcmUtcHVibGlzaCB0aGF0IGxhbmRzIG9uIHRoZSBzYW1lIHN0YXRlLlxuXG5gY29tcG9zZWQ6IGZhbHNlYCBpcyBkZWxpYmVyYXRlLiBDb21wb3NpdGVzIGxpa2UgbWQtc2VsZWN0IGVtYmVkIGFuXG5tZC10ZXh0LWZpZWxkLCBhbmQgYSBjb21wb3NlZCBldmVudCBlc2NhcGVzIHRoYXQgaW5uZXIgc2hhZG93IHJvb3QsIHNvIGFcbmxpc3RlbmVyIG9uIG1kLXNlbGVjdCB3b3VsZCByZWNlaXZlIHRoZSBpbm5lciBmaWVsZCdzIGV2ZW50IGFzIHdlbGwgYXMgdGhlXG5ob3N0J3Mg4oCUIHR3byBldmVudHMsIGRpZmZlcmVudCBwYXlsb2FkcywgZm9yIG9uZSBsb2dpY2FsIGNvbnRyb2wuIEtlZXBpbmdcbml0IHVuY29tcG9zZWQgbWVhbnMgZWFjaCBjb21wb25lbnQgcmVwb3J0cyBvbmx5IGZvciBpdHNlbGYsIHdoaWxlXG5gYnViYmxlczogdHJ1ZWAgc3RpbGwgbGV0cyBhIDxmb3JtPiBvciBhcHAgcm9vdCBoZWFyIGV2ZXJ5IGNvbnRyb2wuXG4gICAqL1xuICBtZFZhbGlkaXR5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWxpZDogYm9vbGVhbjsgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZzsgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+OyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZE5hdmlnYXRpb25CYXIsXG4gIGlucHV0czogWydhY3RpdmVJbmRleCcsICdkZW5zaXR5JywgJ2xhYmVsQmVoYXZpb3InLCAnbWFudWFsQWN0aXZhdGlvbiddLFxuICBtZXRob2RzOiBbJ3NlbGVjdCcsICdmb2N1c1RhYiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtbmF2aWdhdGlvbi1iYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZUluZGV4JywgJ2RlbnNpdHknLCAnbGFiZWxCZWhhdmlvcicsICdtYW51YWxBY3RpdmF0aW9uJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWROYXZpZ2F0aW9uQmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWROYXZpZ2F0aW9uQmFyIGV4dGVuZHMgQ29tcG9uZW50cy5NZE5hdmlnYXRpb25CYXIge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBzZWxlY3RlZCBkZXN0aW5hdGlvbiBjaGFuZ2VzICh1c2VyIGNsaWNrLFxua2V5Ym9hcmQgYWN0aXZhdGlvbiwgb3IgcHJvZ3JhbW1hdGljIGBzZWxlY3QoKWAgY2FsbCkuXG5EZXRhaWwgaW5jbHVkZXMgYm90aCB0aGUgbmV3IGFuZCBwcmV2aW91cyBpbmRpY2VzIHNvIGxpc3RlbmVyc1xuY2FuIHNob3J0LWNpcmN1aXQgbm8tb3AgcmVzZWxlY3RzLlxuICAgKi9cbiAgbWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGluZGV4OiBudW1iZXI7IHByZXZpb3VzSW5kZXg6IG51bWJlciB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZE5hdmlnYXRpb25SYWlsLFxuICBpbnB1dHM6IFsnYWN0aXZlSW5kZXgnLCAnYWxpZ25tZW50JywgJ2RlbnNpdHknLCAnZGlzYWJsZUZvY3VzTWFuYWdlbWVudCcsICdleHBhbmRhYmxlJywgJ2Z1bGxIZWlnaHQnLCAnbGFiZWwnLCAnbGFiZWxWaXNpYmlsaXR5JywgJ21heFZpc2libGUnLCAnbW9kYWwnLCAnb3JpZW50YXRpb24nLCAnb3ZlcmZsb3dJY29uJywgJ292ZXJmbG93TGFiZWwnLCAndG9nZ2xlTGFiZWwnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ2V4cGFuZCcsICdjb2xsYXBzZScsICd0b2dnbGUnLCAnZm9jdXNUYWInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLW5hdmlnYXRpb24tcmFpbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlSW5kZXgnLCAnYWxpZ25tZW50JywgJ2RlbnNpdHknLCAnZGlzYWJsZUZvY3VzTWFuYWdlbWVudCcsICdleHBhbmRhYmxlJywgJ2Z1bGxIZWlnaHQnLCAnbGFiZWwnLCAnbGFiZWxWaXNpYmlsaXR5JywgJ21heFZpc2libGUnLCAnbW9kYWwnLCAnb3JpZW50YXRpb24nLCAnb3ZlcmZsb3dJY29uJywgJ292ZXJmbG93TGFiZWwnLCAndG9nZ2xlTGFiZWwnLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kTmF2aWdhdGlvblJhaWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZFRhYkNoYW5nZScsICdtZEV4cGFuZCcsICdtZENvbGxhcHNlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kTmF2aWdhdGlvblJhaWwgZXh0ZW5kcyBDb21wb25lbnRzLk1kTmF2aWdhdGlvblJhaWwge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB1c2VyIHNlbGVjdHMgYSBkZXN0aW5hdGlvbi5cbiAgICovXG4gIG1kVGFiQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBpbmRleDogbnVtYmVyOyB2YWx1ZTogc3RyaW5nIH0+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgcmFpbCB0cmFuc2l0aW9ucyBmcm9tIGNvbGxhcHNlZCDihpIgZXhwYW5kZWQuXG4gICAqL1xuICBtZEV4cGFuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgcmFpbCB0cmFuc2l0aW9ucyBmcm9tIGV4cGFuZGVkIOKGkiBjb2xsYXBzZWQuXG4gICAqL1xuICBtZENvbGxhcHNlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWROYXZpZ2F0aW9uUmFpbFRhYixcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdiYWRnZScsICdiYWRnZVZhbHVlJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZXhwYW5kZWQnLCAnaHJlZicsICdpY29uJywgJ2xhYmVsJywgJ2xhYmVsVmlzaWJpbGl0eScsICd0YXJnZXQnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydjbGVhclN1Ym1lbnVTZWxlY3Rpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLW5hdmlnYXRpb24tcmFpbC10YWInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdiYWRnZScsICdiYWRnZVZhbHVlJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZXhwYW5kZWQnLCAnaHJlZicsICdpY29uJywgJ2xhYmVsJywgJ2xhYmVsVmlzaWJpbGl0eScsICd0YXJnZXQnLCAndmFsdWUnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZE5hdmlnYXRpb25SYWlsVGFiIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRUYWJDbGljaycsICdtZFN1Ym1lbnVUb2dnbGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWROYXZpZ2F0aW9uUmFpbFRhYiBleHRlbmRzIENvbXBvbmVudHMuTWROYXZpZ2F0aW9uUmFpbFRhYiB7XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSB1c2VyIGFjdGl2YXRlcyB0aGUgZGVzdGluYXRpb24gKGNsaWNrIC8gRW50ZXIgLyBTcGFjZSkuXG4gICAqL1xuICBtZFRhYkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWx1ZTogc3RyaW5nIH0+PjtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdGhpcyBkZXN0aW5hdGlvbidzIHNsb3R0ZWQgZHJvcGRvd24gb3BlbnMgb3IgY2xvc2VzLiBgbWQtbWVudWAnc1xub3duIGBtZE9wZW5gIC8gYG1kQ2xvc2VgIGFyZSBkZWxpYmVyYXRlbHkgbm9uLWJ1YmJsaW5nIGFuZCBub24tY29tcG9zZWQsIHNvXG50aGUgcmFpbCBoYXMgbm8gd2F5IHRvIGhlYXIgdGhlbSDigJQgdGhpcyBpcyB0aGUgc2lnbmFsIGl0IGxpc3RlbnMgZm9yIChpdFxubGlmdHMgaXRzIHN0YWNraW5nIGNvbnRleHQgc28gdGhlIGZpeGVkLXBvc2l0aW9uIG1lbnUgaXMgbm90IHRyYXBwZWQpLlxuICAgKi9cbiAgbWRTdWJtZW51VG9nZ2xlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBvcGVuOiBib29sZWFuIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kTmF2aWdhdGlvblRhYixcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdhY3RpdmVJY29uJywgJ2JhZGdlJywgJ2JhZGdlTWF4JywgJ2JhZGdlVmFsdWUnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdocmVmJywgJ2ljb24nLCAnbGFiZWwnLCAnbGFiZWxCZWhhdmlvcicsICdzb2Z0RGlzYWJsZWQnLCAndGFyZ2V0J10sXG4gIG1ldGhvZHM6IFsnZm9jdXNFbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtbmF2aWdhdGlvbi10YWInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdhY3RpdmVJY29uJywgJ2JhZGdlJywgJ2JhZGdlTWF4JywgJ2JhZGdlVmFsdWUnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdocmVmJywgJ2ljb24nLCAnbGFiZWwnLCAnbGFiZWxCZWhhdmlvcicsICdzb2Z0RGlzYWJsZWQnLCAndGFyZ2V0J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWROYXZpZ2F0aW9uVGFiIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRUYWJDbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZE5hdmlnYXRpb25UYWIgZXh0ZW5kcyBDb21wb25lbnRzLk1kTmF2aWdhdGlvblRhYiB7XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSB0YWIgaXMgYWN0aXZhdGVkIChjbGljaywgRW50ZXIsIG9yIFNwYWNlKSBhbmQgdGhlIHRhYiBpc1xubm90IGRpc2FibGVkLiBUaGUgcGFyZW50IGBtZC1uYXZpZ2F0aW9uLWJhcmAgbGlzdGVucyBmb3IgdGhpcyB0byBkcml2ZVxuc2VsZWN0aW9uOyBleHRlcm5hbCBjb2RlIG1heSBhbHNvIGxpc3RlbiB0byBkZXRlY3QgcGVyLXRhYiBhY3RpdmF0aW9uXG4oaW5jbHVkaW5nIGEgcmUtY2xpY2sgb2YgdGhlIGFscmVhZHktYWN0aXZlIHRhYiwgd2hpY2ggZG9lcyBub3QgZW1pdFxuYG1kQ2hhbmdlYCBvbiB0aGUgYmFyKS5cbiAgICovXG4gIG1kVGFiQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGluZGV4OiBudW1iZXIgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWROdW1iZXJGaWVsZCxcbiAgaW5wdXRzOiBbJ2FsbG93T3V0T2ZSYW5nZScsICdhbGxvd1doZWVsU2NydWInLCAnZGVjcmVtZW50TGFiZWwnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdlcnJvcicsICdlcnJvclRleHQnLCAnZm9ybWF0T3B0aW9ucycsICdpbmNyZW1lbnRMYWJlbCcsICdsYWJlbCcsICdsYXJnZVN0ZXAnLCAnbG9jYWxlJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdwbGFjZWhvbGRlcicsICdyZWFkT25seScsICdyZXF1aXJlZCcsICdyZXNlcnZlU3VwcG9ydGluZ1NwYWNlJywgJ3NtYWxsU3RlcCcsICdzbmFwT25TdGVwJywgJ3N0ZXAnLCAnc3RlcHBlcnMnLCAnc3VwcG9ydGluZ1RleHQnLCAndmFsdWUnLCAndmFsdWVNaXNzaW5nTGFiZWwnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ3NlbGVjdCcsICdzdGVwVXAnLCAnc3RlcERvd24nLCAnZ2V0VmFsaWRpdHknLCAnY2hlY2tWYWxpZGl0eScsICdyZXBvcnRWYWxpZGl0eScsICdzZXRDdXN0b21WYWxpZGl0eSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtbnVtYmVyLWZpZWxkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbGxvd091dE9mUmFuZ2UnLCAnYWxsb3dXaGVlbFNjcnViJywgJ2RlY3JlbWVudExhYmVsJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnZXJyb3JUZXh0JywgJ2Zvcm1hdE9wdGlvbnMnLCAnaW5jcmVtZW50TGFiZWwnLCAnbGFiZWwnLCAnbGFyZ2VTdGVwJywgJ2xvY2FsZScsICdtYXgnLCAnbWluJywgJ25hbWUnLCAncGxhY2Vob2xkZXInLCAncmVhZE9ubHknLCAncmVxdWlyZWQnLCAncmVzZXJ2ZVN1cHBvcnRpbmdTcGFjZScsICdzbWFsbFN0ZXAnLCAnc25hcE9uU3RlcCcsICdzdGVwJywgJ3N0ZXBwZXJzJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ0xhYmVsJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZE51bWJlckZpZWxkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRJbnB1dCcsICdtZENoYW5nZScsICdtZFZhbGlkaXR5Q2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZE51bWJlckZpZWxkQ2hhbmdlRGV0YWlsIGFzIElNZE51bWJlckZpZWxkTWROdW1iZXJGaWVsZENoYW5nZURldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWROdW1iZXJGaWVsZCBleHRlbmRzIENvbXBvbmVudHMuTWROdW1iZXJGaWVsZCB7XG4gIC8qKlxuICAgKiBGaXJlcyBvbiBldmVyeSB2YWx1ZSBjaGFuZ2UgKHR5cGluZyBpbmNsdWRlZCkuXG4gICAqL1xuICBtZElucHV0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kTnVtYmVyRmllbGRNZE51bWJlckZpZWxkQ2hhbmdlRGV0YWlsPj47XG4gIC8qKlxuICAgKiBGaXJlcyBhdCBjb21taXQgcG9pbnRzOiBibHVyL0VudGVyIHJlZm9ybWF0LCBzdGVwcGluZywgd2hlZWwuXG4gICAqL1xuICBtZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZE51bWJlckZpZWxkTWROdW1iZXJGaWVsZENoYW5nZURldGFpbD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGlzIGNvbnRyb2wncyB2YWxpZGl0eSBDSEFOR0VTIOKAlCBuZXZlciBvbiBldmVyeSBrZXlzdHJva2UsIGFuZFxubmV2ZXIgZm9yIGEgcmUtcHVibGlzaCB0aGF0IGxhbmRzIG9uIHRoZSBzYW1lIHN0YXRlLlxuXG5gY29tcG9zZWQ6IGZhbHNlYCBpcyBkZWxpYmVyYXRlLiBDb21wb3NpdGVzIGVtYmVkZGluZyBhIGZpZWxkIHdvdWxkXG5vdGhlcndpc2UgaGVhciB0d28gZXZlbnRzIGZvciBvbmUgbG9naWNhbCBjb250cm9sOyBgYnViYmxlczogdHJ1ZWAgc3RpbGxcbmxldHMgYSBgPGZvcm0+YCBvciBhcHAgcm9vdCBoZWFyIGV2ZXJ5IGNvbnRyb2wuXG4gICAqL1xuICBtZFZhbGlkaXR5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWxpZDogYm9vbGVhbjsgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZzsgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+OyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZE9yZ2FuaXphdGlvbkNoYXJ0LFxuICBpbnB1dHM6IFsnY29sbGFwc2VMYWJlbCcsICdjb2xsYXBzaWJsZScsICdkZW5zaXR5JywgJ2V4cGFuZExhYmVsJywgJ2xhYmVsJywgJ25vZGVzJywgJ29yaWVudGF0aW9uJywgJ3NlbGVjdGVkSWRzJywgJ3NlbGVjdGlvbk1vZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLW9yZ2FuaXphdGlvbi1jaGFydCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sbGFwc2VMYWJlbCcsICdjb2xsYXBzaWJsZScsICdkZW5zaXR5JywgJ2V4cGFuZExhYmVsJywgJ2xhYmVsJywgJ25vZGVzJywgJ29yaWVudGF0aW9uJywgJ3NlbGVjdGVkSWRzJywgJ3NlbGVjdGlvbk1vZGUnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZE9yZ2FuaXphdGlvbkNoYXJ0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRTZWxlY3Rpb25DaGFuZ2UnLCAnbWROb2RlVG9nZ2xlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBPcmdDaGFydFNlbGVjdGlvbkNoYW5nZURldGFpbCBhcyBJTWRPcmdhbml6YXRpb25DaGFydE9yZ0NoYXJ0U2VsZWN0aW9uQ2hhbmdlRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE9yZ0NoYXJ0VG9nZ2xlRGV0YWlsIGFzIElNZE9yZ2FuaXphdGlvbkNoYXJ0T3JnQ2hhcnRUb2dnbGVEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kT3JnYW5pemF0aW9uQ2hhcnQgZXh0ZW5kcyBDb21wb25lbnRzLk1kT3JnYW5pemF0aW9uQ2hhcnQge1xuICAvKipcbiAgICogRmlyZWQgd2hlbiB0aGUgc2VsZWN0aW9uIGNoYW5nZXMuXG4gICAqL1xuICBtZFNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZE9yZ2FuaXphdGlvbkNoYXJ0T3JnQ2hhcnRTZWxlY3Rpb25DaGFuZ2VEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gYSBub2RlIGlzIGV4cGFuZGVkIG9yIGNvbGxhcHNlZC5cbiAgICovXG4gIG1kTm9kZVRvZ2dsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZE9yZ2FuaXphdGlvbkNoYXJ0T3JnQ2hhcnRUb2dnbGVEZXRhaWw+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kT3RwRmllbGQsXG4gIGlucHV0czogWydhdXRvU3VibWl0JywgJ2NlbGxMYWJlbFRlbXBsYXRlJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnZXJyb3JUZXh0JywgJ2dyb3VwU2l6ZScsICdpbmNvbXBsZXRlTGFiZWwnLCAnaW5wdXRNb2RlJywgJ2xhYmVsJywgJ2xlbmd0aCcsICdtYXNrJywgJ25hbWUnLCAncmVhZE9ubHknLCAncmVxdWlyZWQnLCAncmVzZXJ2ZVN1cHBvcnRpbmdTcGFjZScsICdzdXBwb3J0aW5nVGV4dCcsICd0cmFuc2Zvcm0nLCAndmFsaWRhdGlvblR5cGUnLCAndmFsdWUnLCAndmFsdWVNaXNzaW5nTGFiZWwnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdjbGVhcicsICdnZXRWYWxpZGl0eScsICdzZXRDdXN0b21WYWxpZGl0eScsICdjaGVja1ZhbGlkaXR5JywgJ3JlcG9ydFZhbGlkaXR5J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1vdHAtZmllbGQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9TdWJtaXQnLCAnY2VsbExhYmVsVGVtcGxhdGUnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdlcnJvcicsICdlcnJvclRleHQnLCAnZ3JvdXBTaXplJywgJ2luY29tcGxldGVMYWJlbCcsICdpbnB1dE1vZGUnLCAnbGFiZWwnLCAnbGVuZ3RoJywgJ21hc2snLCAnbmFtZScsICdyZWFkT25seScsICdyZXF1aXJlZCcsICdyZXNlcnZlU3VwcG9ydGluZ1NwYWNlJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3RyYW5zZm9ybScsICd2YWxpZGF0aW9uVHlwZScsICd2YWx1ZScsICd2YWx1ZU1pc3NpbmdMYWJlbCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kT3RwRmllbGQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZElucHV0JywgJ21kQ2hhbmdlJywgJ21kQ29tcGxldGUnLCAnbWRJbnZhbGlkSW5wdXQnLCAnbWRWYWxpZGl0eUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRPdHBGaWVsZENvbXBsZXRlRGV0YWlsIGFzIElNZE90cEZpZWxkTWRPdHBGaWVsZENvbXBsZXRlRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kT3RwRmllbGRJbnZhbGlkRGV0YWlsIGFzIElNZE90cEZpZWxkTWRPdHBGaWVsZEludmFsaWREZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgTWRPdHBGaWVsZFZhbGlkaXR5RGV0YWlsIGFzIElNZE90cEZpZWxkTWRPdHBGaWVsZFZhbGlkaXR5RGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZE90cEZpZWxkIGV4dGVuZHMgQ29tcG9uZW50cy5NZE90cEZpZWxkIHtcbiAgLyoqXG4gICAqIEZpcmVzIG9uIGV2ZXJ5IHZhbHVlIGNoYW5nZSBmcm9tIHVzZXIgaW5wdXQgKHR5cGluZywgY2xlYXJpbmcsIHBhc3RlLCBhdXRvZmlsbCkuXG4gICAqL1xuICBtZElucHV0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBDb21taXQgZXZlbnQ6IGZpcmVzIHdoZW4gdGhlIGNvZGUgYmVjb21lcyBjb21wbGV0ZSBhbmQgd2hlbiBmb2N1cyBsZWF2ZXMgdGhlIHdob2xlIGdyb3VwLlxuICAgKi9cbiAgbWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gZXZlcnkgY2VsbCBpcyBmaWxsZWQuIEEgY29tcGxldGUgcGFzdGUgcmUtZmlyZXMgaXQgZXZlbiBpZiB0aGUgdmFsdWUgaXMgdW5jaGFuZ2VkLlxuICAgKi9cbiAgbWRDb21wbGV0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZE90cEZpZWxkTWRPdHBGaWVsZENvbXBsZXRlRGV0YWlsPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHR5cGVkL3Bhc3RlZCBjaGFyYWN0ZXJzIGFyZSByZWplY3RlZCBieSB0aGUgYHZhbGlkYXRpb25UeXBlYCBjaGFyc2V0LlxuICAgKi9cbiAgbWRJbnZhbGlkSW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRPdHBGaWVsZE1kT3RwRmllbGRJbnZhbGlkRGV0YWlsPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoaXMgY29udHJvbCdzIHZhbGlkaXR5IENIQU5HRVMg4oCUIG5ldmVyIG9uIG1vdW50LCBuZXZlciBmb3IgYVxucmUtcHVibGlzaCBsYW5kaW5nIG9uIHRoZSBzYW1lIHN0YXRlLiBgY29tcG9zZWQ6IGZhbHNlYCBieSB0aGUgbGlicmFyeVxuY29udmVudGlvbjogZWFjaCBjb250cm9sIHJlcG9ydHMgb25seSBmb3IgaXRzZWxmOyBgYnViYmxlczogdHJ1ZWAgc3RpbGxcbnJlYWNoZXMgYDxmb3JtPmAtbGV2ZWwgbGlzdGVuZXJzIGluIHRoZSBzYW1lIERPTSB0cmVlLlxuICAgKi9cbiAgbWRWYWxpZGl0eUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZE90cEZpZWxkTWRPdHBGaWVsZFZhbGlkaXR5RGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFBpZUNoYXJ0LFxuICBpbnB1dHM6IFsnYW5pbWF0aW9uJywgJ2FuaW1hdGlvbkR1cmF0aW9uJywgJ2Nvcm5lclJhZGl1cycsICdkYXRhJywgJ2RlbnNpdHknLCAnZW5kQW5nbGUnLCAnZ3JhZGllbnQnLCAnaGVpZ2h0UHJvcCcsICdoaWdobGlnaHQnLCAnaW5uZXJSYWRpdXMnLCAnbGFiZWwnLCAnbGFiZWxFbXB0eScsICdsYWJlbE1vZGUnLCAnbGFiZWxQbG90JywgJ2xhYmVsUG9pbnQnLCAnbGVnZW5kJywgJ2xvYWRpbmcnLCAnbG9hZGluZ0xhYmVsJywgJ2xvY2FsZScsICdtb25vY2hyb21lJywgJ25vQW5pbWF0aW9uJywgJ291dGVyUmFkaXVzJywgJ3BhZGRpbmdBbmdsZScsICdyaW5nV2lkdGhzJywgJ3Nob3dMYWJlbHMnLCAnc3RhcnRBbmdsZScsICdzdWJ0aXRsZScsICdzdW1tYXJ5JywgJ3RhYmxlTGFiZWxzJywgJ3RpdGxlQWxpZ24nLCAndG9vbHRpcCcsICd0b29sdGlwUmVuZGVyZXInLCAndmFsdWVGb3JtYXR0ZXInXSxcbiAgbWV0aG9kczogWydyZWZyZXNoVGhlbWUnLCAncmVzaXplJywgJ3JlcGxheScsICdkcmlsbCcsICd0b0RhdGFVUkwnLCAnZ2V0SW5zdGFuY2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXBpZS1jaGFydCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5pbWF0aW9uJywgJ2FuaW1hdGlvbkR1cmF0aW9uJywgJ2Nvcm5lclJhZGl1cycsICdkYXRhJywgJ2RlbnNpdHknLCAnZW5kQW5nbGUnLCAnZ3JhZGllbnQnLCAnaGVpZ2h0UHJvcCcsICdoaWdobGlnaHQnLCAnaW5uZXJSYWRpdXMnLCAnbGFiZWwnLCAnbGFiZWxFbXB0eScsICdsYWJlbE1vZGUnLCAnbGFiZWxQbG90JywgJ2xhYmVsUG9pbnQnLCAnbGVnZW5kJywgJ2xvYWRpbmcnLCAnbG9hZGluZ0xhYmVsJywgJ2xvY2FsZScsICdtb25vY2hyb21lJywgJ25vQW5pbWF0aW9uJywgJ291dGVyUmFkaXVzJywgJ3BhZGRpbmdBbmdsZScsICdyaW5nV2lkdGhzJywgJ3Nob3dMYWJlbHMnLCAnc3RhcnRBbmdsZScsICdzdWJ0aXRsZScsICdzdW1tYXJ5JywgJ3RhYmxlTGFiZWxzJywgJ3RpdGxlQWxpZ24nLCAndG9vbHRpcCcsICd0b29sdGlwUmVuZGVyZXInLCAndmFsdWVGb3JtYXR0ZXInXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFBpZUNoYXJ0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRTbGljZUNsaWNrJywgJ21kTGVnZW5kQ2xpY2snLCAnbWRSZWFkeSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRDaGFydENsaWNrRGV0YWlsIGFzIElNZFBpZUNoYXJ0TWRDaGFydENsaWNrRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kUGllRGF0dW0gYXMgSU1kUGllQ2hhcnRNZFBpZURhdHVtIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFBpZUNoYXJ0IGV4dGVuZHMgQ29tcG9uZW50cy5NZFBpZUNoYXJ0IHtcblxuICBtZFNsaWNlQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRQaWVDaGFydE1kQ2hhcnRDbGlja0RldGFpbDxJTWRQaWVDaGFydE1kUGllRGF0dW0+Pj47XG5cbiAgbWRMZWdlbmRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgZGF0YUluZGV4OiBudW1iZXI7IHNlbGVjdGVkOiBib29sZWFuIH0+PjtcblxuICBtZFJlYWR5OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRQcm9ncmVzc0luZGljYXRvcixcbiAgaW5wdXRzOiBbJ2NvbXBsZXRlJywgJ2RlbnNpdHknLCAnZm91ckNvbG9yJywgJ2luZGV0ZXJtaW5hdGUnLCAnbGFiZWwnLCAnbWF4JywgJ3NpemUnLCAndGhpY2tuZXNzJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnLCAnd2F2ZScsICd3YXZlQW1wbGl0dWRlJywgJ3dhdmVMZW5ndGgnLCAnd2F2ZVNwZWVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1wcm9ncmVzcy1pbmRpY2F0b3InLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbXBsZXRlJywgJ2RlbnNpdHknLCAnZm91ckNvbG9yJywgJ2luZGV0ZXJtaW5hdGUnLCAnbGFiZWwnLCAnbWF4JywgJ3NpemUnLCAndGhpY2tuZXNzJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnLCAnd2F2ZScsICd3YXZlQW1wbGl0dWRlJywgJ3dhdmVMZW5ndGgnLCAnd2F2ZVNwZWVkJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRQcm9ncmVzc0luZGljYXRvciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kQ29tcGxldGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRQcm9ncmVzc0luZGljYXRvciBleHRlbmRzIENvbXBvbmVudHMuTWRQcm9ncmVzc0luZGljYXRvciB7XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSBjb21wbGV0aW9uIGFuaW1hdGlvbiBmaW5pc2hlcyAoYW5kIHRoZSBpbmRpY2F0b3IgaGFzIGhpZGRlblxuaXRzZWxmLCBvciDigJQgZm9yIGZsYXQgY2lyY3VsYXIg4oCUIHNldHRsZWQgb24gaXRzIGVtcHR5IHRyYWNrIHJpbmcpLlxuICAgKi9cbiAgbWRDb21wbGV0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kUmFkaW8sXG4gIGlucHV0czogWydjaGVja2VkJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnbmFtZScsICdyZXF1aXJlZCcsICdzb2Z0RGlzYWJsZWQnLCAndmFsdWUnLCAndmFsdWVNaXNzaW5nTGFiZWwnXSxcbiAgbWV0aG9kczogWydzeW5jVmFsaWRpdHlGcm9tR3JvdXAnLCAnZ2V0VmFsaWRpdHknLCAnY2hlY2tWYWxpZGl0eScsICdyZXBvcnRWYWxpZGl0eScsICdzZXRDdXN0b21WYWxpZGl0eScsICdzZXRGb2N1cycsICdzZXRCbHVyJywgJ3NlbGVjdCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtcmFkaW8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICduYW1lJywgJ3JlcXVpcmVkJywgJ3NvZnREaXNhYmxlZCcsICd2YWx1ZScsICd2YWx1ZU1pc3NpbmdMYWJlbCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kUmFkaW8ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZENoYW5nZScsICdtZEZvY3VzJywgJ21kQmx1cicsICdtZFZhbGlkaXR5Q2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kUmFkaW8gZXh0ZW5kcyBDb21wb25lbnRzLk1kUmFkaW8ge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgY2hlY2tlZCBzdGF0ZSBjaGFuZ2VzIHZpYSB1c2VyIGludGVyYWN0aW9uXG4gICAqL1xuICBtZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgY2hlY2tlZDogYm9vbGVhbjsgdmFsdWU6IHN0cmluZyB9Pj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSByYWRpbyByZWNlaXZlcyBmb2N1c1xuICAgKi9cbiAgbWRGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIHJhZGlvIGxvc2VzIGZvY3VzXG4gICAqL1xuICBtZEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoaXMgY29udHJvbCdzIHZhbGlkaXR5IENIQU5HRVMg4oCUIG5ldmVyIG9uIGV2ZXJ5IGtleXN0cm9rZSwgYW5kXG5uZXZlciBmb3IgYSByZS1wdWJsaXNoIHRoYXQgbGFuZHMgb24gdGhlIHNhbWUgc3RhdGUuXG5cbmBjb21wb3NlZDogZmFsc2VgIGlzIGRlbGliZXJhdGUuIENvbXBvc2l0ZXMgbGlrZSBtZC1zZWxlY3QgZW1iZWQgYW5cbm1kLXRleHQtZmllbGQsIGFuZCBhIGNvbXBvc2VkIGV2ZW50IGVzY2FwZXMgdGhhdCBpbm5lciBzaGFkb3cgcm9vdCwgc28gYVxubGlzdGVuZXIgb24gbWQtc2VsZWN0IHdvdWxkIHJlY2VpdmUgdGhlIGlubmVyIGZpZWxkJ3MgZXZlbnQgYXMgd2VsbCBhcyB0aGVcbmhvc3QncyDigJQgdHdvIGV2ZW50cywgZGlmZmVyZW50IHBheWxvYWRzLCBmb3Igb25lIGxvZ2ljYWwgY29udHJvbC4gS2VlcGluZ1xuaXQgdW5jb21wb3NlZCBtZWFucyBlYWNoIGNvbXBvbmVudCByZXBvcnRzIG9ubHkgZm9yIGl0c2VsZiwgd2hpbGVcbmBidWJibGVzOiB0cnVlYCBzdGlsbCBsZXRzIGEgPGZvcm0+IG9yIGFwcCByb290IGhlYXIgZXZlcnkgY29udHJvbC5cbiAgICovXG4gIG1kVmFsaWRpdHlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbGlkOiBib29sZWFuOyB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nOyBmbGFnczogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kUmF0aW5nLFxuICBpbnB1dHM6IFsnZGVmYXVsdFZhbHVlJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZW1wdHlJY29uJywgJ2dldExhYmVsJywgJ2hvdmVyJywgJ2ljb24nLCAnbWF4JywgJ25hbWUnLCAnb3V0bGluZUVtcHR5JywgJ3ByZWNpc2lvbicsICdyYXRpbmdMYWJlbCcsICdyZWFkb25seScsICdzaG93VmFsdWVMYWJlbCcsICdzaXplJywgJ3NvZnREaXNhYmxlZCcsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ2ZvY3VzUmF0aW5nJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1yYXRpbmcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlZmF1bHRWYWx1ZScsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2VtcHR5SWNvbicsICdnZXRMYWJlbCcsICdob3ZlcicsICdpY29uJywgJ21heCcsICduYW1lJywgJ291dGxpbmVFbXB0eScsICdwcmVjaXNpb24nLCAncmF0aW5nTGFiZWwnLCAncmVhZG9ubHknLCAnc2hvd1ZhbHVlTGFiZWwnLCAnc2l6ZScsICdzb2Z0RGlzYWJsZWQnLCAndmFsdWUnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFJhdGluZyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kSG92ZXInLCAnbWRDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRSYXRpbmcgZXh0ZW5kcyBDb21wb25lbnRzLk1kUmF0aW5nIHtcbiAgLyoqXG4gICAqIEZpcmVzIHdoaWxlIHRoZSB1c2VyIGlzIGhvdmVyaW5nIChvciBgbnVsbGAgd2hlbiB0aGUgY3Vyc29yIGxlYXZlcykuXG4gICAqL1xuICBtZEhvdmVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyIHwgbnVsbD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbmV2ZXIgdGhlIHZhbHVlIGNoYW5nZXMgdmlhIGludGVyYWN0aW9uLlxuICAgKi9cbiAgbWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kUmlwcGxlLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnXSxcbiAgbWV0aG9kczogWyd3aGVuU2V0dGxlZCcsICd0cmlnZ2VyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1yaXBwbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRSaXBwbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFJpcHBsZSBleHRlbmRzIENvbXBvbmVudHMuTWRSaXBwbGUge31cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kU2VhcmNoLFxuICBpbnB1dHM6IFsnYW5ub3VuY2VSZXN1bHRzJywgJ2RlYm91bmNlJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZGlzbWlzc09uT3V0c2lkZUNsaWNrJywgJ2VsZXZhdGlvbicsICdlc2NhcGVDbG9zZXMnLCAnZnVsbFdpZHRoJywgJ2luaXRpYWxGb2N1cycsICdpbnB1dEFyaWFMYWJlbCcsICdsYXlvdXQnLCAnbGVhZGluZ0ljb24nLCAnbG9hZGluZycsICdsb2FkaW5nTGFiZWwnLCAnbWF4QmxvY2tTaXplJywgJ25vUmVzdWx0c0xhYmVsJywgJ29wZW4nLCAnb3BlbkxlYWRpbmdJY29uJywgJ3BsYWNlaG9sZGVyJywgJ3Jlc3VsdHNMYWJlbCcsICdzY3JvbGxTaGFkb3cnLCAnc2hvd0NsZWFyQnV0dG9uJywgJ3Rocm90dGxlJywgJ3RyaWdnZXInLCAndHJpZ2dlckVsZW1lbnQnLCAndHJpZ2dlckZvcicsICd0cmlnZ2VySWNvbicsICd2YWx1ZScsICd2YXJpYW50JywgJ3ZvaWNlU2VhcmNoJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdjbG9zZScsICd0b2dnbGUnLCAnZm9jdXNJbnB1dCcsICdzdGFydFZvaWNlJywgJ3N0b3BWb2ljZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtc2VhcmNoJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbm5vdW5jZVJlc3VsdHMnLCAnZGVib3VuY2UnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdkaXNtaXNzT25PdXRzaWRlQ2xpY2snLCAnZWxldmF0aW9uJywgJ2VzY2FwZUNsb3NlcycsICdmdWxsV2lkdGgnLCAnaW5pdGlhbEZvY3VzJywgJ2lucHV0QXJpYUxhYmVsJywgJ2xheW91dCcsICdsZWFkaW5nSWNvbicsICdsb2FkaW5nJywgJ2xvYWRpbmdMYWJlbCcsICdtYXhCbG9ja1NpemUnLCAnbm9SZXN1bHRzTGFiZWwnLCAnb3BlbicsICdvcGVuTGVhZGluZ0ljb24nLCAncGxhY2Vob2xkZXInLCAncmVzdWx0c0xhYmVsJywgJ3Njcm9sbFNoYWRvdycsICdzaG93Q2xlYXJCdXR0b24nLCAndGhyb3R0bGUnLCAndHJpZ2dlcicsICd0cmlnZ2VyRWxlbWVudCcsICd0cmlnZ2VyRm9yJywgJ3RyaWdnZXJJY29uJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnLCAndm9pY2VTZWFyY2gnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFNlYXJjaCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kSW5wdXQnLCAnbWRTZWFyY2gnLCAnbWRTdWJtaXQnLCAnbWRDaGFuZ2UnLCAnbWRPcGVuJywgJ21kQ2xvc2UnLCAnbWRDbGVhcicsICdtZFZvaWNlJywgJ21kTGVhZGluZ0ljb25DbGljaycsICdtZFRyYWlsaW5nSWNvbkNsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZFNlYXJjaExlYWRpbmdJY29uQ2xpY2tEZXRhaWwgYXMgSU1kU2VhcmNoTWRTZWFyY2hMZWFkaW5nSWNvbkNsaWNrRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kU2VhcmNoVHJhaWxpbmdJY29uQ2xpY2tEZXRhaWwgYXMgSU1kU2VhcmNoTWRTZWFyY2hUcmFpbGluZ0ljb25DbGlja0RldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRTZWFyY2ggZXh0ZW5kcyBDb21wb25lbnRzLk1kU2VhcmNoIHtcbiAgLyoqXG4gICAqIEZpcmVzIG9uIGV2ZXJ5IGlucHV0IGNoYW5nZSAoaW1tZWRpYXRlLCBldmVyeSBrZXlzdHJva2UpLlxuICAgKi9cbiAgbWRJbnB1dDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdmFsdWU6IHN0cmluZyB9Pj47XG4gIC8qKlxuICAgKiBEZWJvdW5jZWQsIGRlLWR1cGxpY2F0ZWQgcXVlcnkgZXZlbnQg4oCUIHRoZSBvbmUgdG8gd2lyZSBhbiBhc3luYyByZXN1bHRzXG5mZXRjaCB0by4gSG9ub3VycyBgZGVib3VuY2VgIC8gYHRocm90dGxlYCBhbmQgYXBwbGllcyBhXG5kaXN0aW5jdC11bnRpbC1jaGFuZ2VkIGd1YXJkIG9uIHRoZSB0cmltbWVkIHF1ZXJ5IChzbyByZS10eXBpbmcgdGhlIHNhbWVcbnRlcm0sIG9yIG9ubHkgYWRkaW5nIHN1cnJvdW5kaW5nIHdoaXRlc3BhY2UsIHdvbid0IHJlLXRyaWdnZXIgYSBmZXRjaCkuXG5QcmVzc2luZyBFbnRlciBvciBjbGVhcmluZyB0aGUgZmllbGQgZmx1c2hlcyBpdCBpbW1lZGlhdGVseS5cbiAgICovXG4gIG1kU2VhcmNoOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWx1ZTogc3RyaW5nIH0+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHVzZXIgcHJlc3NlcyBFbnRlciB0byBzdWJtaXQgYSBxdWVyeS5cbiAgICovXG4gIG1kU3VibWl0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWx1ZTogc3RyaW5nIH0+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIGlucHV0IGxvc2VzIGZvY3VzIHdpdGggYSBkaWZmZXJlbnQgdmFsdWUgdGhhbiBvbiBmb2N1cy5cbiAgICovXG4gIG1kQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWx1ZTogc3RyaW5nIH0+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHBhbmVsIG9wZW5zLlxuICAgKi9cbiAgbWRPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgcGFuZWwgY2xvc2VzLlxuICAgKi9cbiAgbWRDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoZSBjbGVhciAow5cpIGJ1dHRvbi5cbiAgICovXG4gIG1kQ2xlYXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGlsZSB2b2ljZSBzZWFyY2ggaXMgYWN0aXZlIGFzIHRoZSB0cmFuc2NyaXB0IHN0cmVhbXMgaW4uIGB2YWx1ZWBcbmlzIHRoZSBjdXJyZW50IChpbnRlcmltIG9yIGZpbmFsKSB0cmFuc2NyaXB0OyBgZmluYWxgIGlzIGB0cnVlYCBvbiB0aGVcbnJlY29nbmlzZWQgZmluYWwgcmVzdWx0LiBUaGUgY29tcG9uZW50IGFscmVhZHkgbWlycm9ycyB0aGUgdHJhbnNjcmlwdCBpbnRvXG50aGUgaW5wdXQgYW5kIGZpcmVzIGBtZElucHV0YCAvIGBtZFNlYXJjaGAsIHNvIGxpc3RlbiB0byB0aGlzIG9ubHkgaWYgeW91XG5uZWVkIHZvaWNlLXNwZWNpZmljIFVJIChlLmcuIGEgdHJhbnNjcmlwdCBwcmV2aWV3KS5cbiAgICovXG4gIG1kVm9pY2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbHVlOiBzdHJpbmc7IGZpbmFsOiBib29sZWFuIH0+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIGludGVyYWN0aXZlIGxlYWRpbmcgYWZmb3JkYW5jZSBpcyBjbGlja2VkIOKAlCB0aGUgbW9ycGhpbmdcbmJhY2sgLyBkaXNtaXNzIGJ1dHRvbiB3aGlsZSB0aGUgYmFyIGlzIG9wZW4sIG9yIGEgY3VzdG9tIHNsb3R0ZWQgYGxlYWRpbmdgXG5pY29uLiBUaGUgZGVmYXVsdCBiYWNrIGJ1dHRvbiBzdGlsbCBkaXNtaXNzZXMgdGhlIHBhbmVsIGFzIGJlZm9yZTsgdGhpc1xuZXZlbnQgaXMgYWRkaXRpdmUuIFRoZSBjbG9zZWQgcmVzdGluZyBzZWFyY2ggZ2x5cGggaXMgaW50ZW50aW9uYWxseSBOT1QgYVxuY2xpY2sgdGFyZ2V0IChhIGNsaWNrIHRoZXJlIGZvY3VzZXMgdGhlIGlucHV0KSwgc28gaXQgZG9lcyBub3QgZW1pdC5cbiAgICovXG4gIG1kTGVhZGluZ0ljb25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZFNlYXJjaE1kU2VhcmNoTGVhZGluZ0ljb25DbGlja0RldGFpbD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiBhIHNsb3R0ZWQgYHRyYWlsaW5nYCBhZmZvcmRhbmNlIGlzIGNsaWNrZWQuIFRoZSBidWlsdC1pbiBjbGVhclxuKMOXKSBhbmQgdm9pY2UgKG1pYykgYnV0dG9ucyBvd24gdGhlaXIgZGVkaWNhdGVkIGBtZENsZWFyYCAvIGBtZFZvaWNlYFxuZXZlbnRzIGFuZCBkbyBOT1QgdHJpZ2dlciB0aGlzLiBPbmx5IGVtaXR0ZWQgd2hlbiBzbG90dGVkIHRyYWlsaW5nIGNvbnRlbnRcbmlzIGFjdHVhbGx5IHByZXNlbnQgYW5kIHdhcyB0aGUgY2xpY2sgdGFyZ2V0LlxuICAgKi9cbiAgbWRUcmFpbGluZ0ljb25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZFNlYXJjaE1kU2VhcmNoVHJhaWxpbmdJY29uQ2xpY2tEZXRhaWw+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kU2VnbWVudGVkQnV0dG9uLFxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdkaXNhYmxlZCcsICdpY29uJywgJ2xhYmVsJywgJ25vQ2hlY2ttYXJrJywgJ3JpcHBsZScsICdzZWdtZW50RGVuc2l0eScsICdzZWdtZW50SW5kZXgnLCAnc2VnbWVudE11bHRpc2VsZWN0JywgJ3NlZ21lbnRUb3RhbCcsICdzZWxlY3RlZCcsICdzb2Z0RGlzYWJsZWQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXNlZ21lbnRlZC1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnaWNvbicsICdsYWJlbCcsICdub0NoZWNrbWFyaycsICdyaXBwbGUnLCAnc2VnbWVudERlbnNpdHknLCAnc2VnbWVudEluZGV4JywgJ3NlZ21lbnRNdWx0aXNlbGVjdCcsICdzZWdtZW50VG90YWwnLCAnc2VsZWN0ZWQnLCAnc29mdERpc2FibGVkJywgJ3ZhbHVlJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRTZWdtZW50ZWRCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZFNlZ21lbnRDbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFNlZ21lbnRlZEJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuTWRTZWdtZW50ZWRCdXR0b24ge1xuICAvKipcbiAgICogSW50ZXJuYWwgZXZlbnQg4oCUIGNhdWdodCBieSB0aGUgc2V0XG4gICAqL1xuICBtZFNlZ21lbnRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdmFsdWU6IHN0cmluZzsgc2VsZWN0ZWQ6IGJvb2xlYW4gfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRTZWdtZW50ZWRCdXR0b25TZXQsXG4gIGlucHV0czogWydkZW5zaXR5JywgJ211bHRpc2VsZWN0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1zZWdtZW50ZWQtYnV0dG9uLXNldCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdtdWx0aXNlbGVjdCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kU2VnbWVudGVkQnV0dG9uU2V0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRTZWdtZW50ZWRCdXR0b25TZXQgZXh0ZW5kcyBDb21wb25lbnRzLk1kU2VnbWVudGVkQnV0dG9uU2V0IHtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHNldCBvZiBzZWxlY3RlZCBzZWdtZW50IHZhbHVlcyBjaGFuZ2VzXG4gICAqL1xuICBtZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZ1tdPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFNlbGVjdCxcbiAgaW5wdXRzOiBbJ2NsZWFySWNvbicsICdjbGVhckxhYmVsJywgJ2NsZWFyYWJsZScsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2Ryb3Bkb3duSWNvbicsICdlcnJvcicsICdlcnJvclRleHQnLCAnZmlsdGVyTGFiZWwnLCAnZmlsdGVyTW9kZScsICdmaWx0ZXJhYmxlJywgJ2Z1bGxXaWR0aCcsICdsYWJlbCcsICdsb2FkaW5nJywgJ2xvYWRpbmdUZXh0JywgJ21hdGNoVHJpZ2dlcldpZHRoJywgJ21heEhlaWdodCcsICduYW1lJywgJ25vT3B0aW9uc1RleHQnLCAnbm9SZXN1bHRzVGV4dCcsICdvcGVuJywgJ29wdGlvbnMnLCAncGxhY2Vob2xkZXInLCAncGxhY2VtZW50JywgJ3JlcXVpcmVkJywgJ3Jlc2VydmVTdXBwb3J0aW5nU3BhY2UnLCAncm93SGVpZ2h0JywgJ3NlYXJjaFBsYWNlaG9sZGVyJywgJ3NlYXJjaGluZ0xhYmVsJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ0xhYmVsJywgJ3ZhcmlhbnQnLCAndmlydHVhbGl6ZSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnY2xvc2UnLCAnZm9jdXNUcmlnZ2VyJywgJ3Jlc2V0JywgJ2xvYWRPcHRpb25zJywgJ3NldFF1ZXJ5JywgJ2dldExhYmVscycsICdnZXRWYWxpZGl0eScsICdjaGVja1ZhbGlkaXR5JywgJ3JlcG9ydFZhbGlkaXR5JywgJ3NldEN1c3RvbVZhbGlkaXR5J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1zZWxlY3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NsZWFySWNvbicsICdjbGVhckxhYmVsJywgJ2NsZWFyYWJsZScsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2Ryb3Bkb3duSWNvbicsICdlcnJvcicsICdlcnJvclRleHQnLCAnZmlsdGVyTGFiZWwnLCAnZmlsdGVyTW9kZScsICdmaWx0ZXJhYmxlJywgJ2Z1bGxXaWR0aCcsICdsYWJlbCcsICdsb2FkaW5nJywgJ2xvYWRpbmdUZXh0JywgJ21hdGNoVHJpZ2dlcldpZHRoJywgJ21heEhlaWdodCcsICduYW1lJywgJ25vT3B0aW9uc1RleHQnLCAnbm9SZXN1bHRzVGV4dCcsICdvcGVuJywgJ29wdGlvbnMnLCAncGxhY2Vob2xkZXInLCAncGxhY2VtZW50JywgJ3JlcXVpcmVkJywgJ3Jlc2VydmVTdXBwb3J0aW5nU3BhY2UnLCAncm93SGVpZ2h0JywgJ3NlYXJjaFBsYWNlaG9sZGVyJywgJ3NlYXJjaGluZ0xhYmVsJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ0xhYmVsJywgJ3ZhcmlhbnQnLCAndmlydHVhbGl6ZSddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kU2VsZWN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRDaGFuZ2UnLCAnbWRPcGVuJywgJ21kQ2xvc2UnLCAnbWRWYWxpZGl0eUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFNlbGVjdCBleHRlbmRzIENvbXBvbmVudHMuTWRTZWxlY3Qge1xuICAvKipcbiAgICogRW1pdHMgdGhlIG5ld2x5IHNlbGVjdGVkIHZhbHVlIHdoZW5ldmVyIHRoZSBzZWxlY3Rpb24gY2hhbmdlcy5cbiAgICovXG4gIG1kQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBkcm9wZG93biBvcGVucy5cbiAgICovXG4gIG1kT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGRyb3Bkb3duIGNsb3Nlcy5cbiAgICovXG4gIG1kQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoaXMgY29udHJvbCdzIHZhbGlkaXR5IENIQU5HRVMg4oCUIG5ldmVyIG9uIGV2ZXJ5IGtleXN0cm9rZSwgYW5kXG5uZXZlciBmb3IgYSByZS1wdWJsaXNoIHRoYXQgbGFuZHMgb24gdGhlIHNhbWUgc3RhdGUuXG5cbmBjb21wb3NlZDogZmFsc2VgIGlzIGRlbGliZXJhdGUuIENvbXBvc2l0ZXMgbGlrZSBtZC1zZWxlY3QgZW1iZWQgYW5cbm1kLXRleHQtZmllbGQsIGFuZCBhIGNvbXBvc2VkIGV2ZW50IGVzY2FwZXMgdGhhdCBpbm5lciBzaGFkb3cgcm9vdCwgc28gYVxubGlzdGVuZXIgb24gbWQtc2VsZWN0IHdvdWxkIHJlY2VpdmUgdGhlIGlubmVyIGZpZWxkJ3MgZXZlbnQgYXMgd2VsbCBhcyB0aGVcbmhvc3QncyDigJQgdHdvIGV2ZW50cywgZGlmZmVyZW50IHBheWxvYWRzLCBmb3Igb25lIGxvZ2ljYWwgY29udHJvbC4gS2VlcGluZ1xuaXQgdW5jb21wb3NlZCBtZWFucyBlYWNoIGNvbXBvbmVudCByZXBvcnRzIG9ubHkgZm9yIGl0c2VsZiwgd2hpbGVcbmBidWJibGVzOiB0cnVlYCBzdGlsbCBsZXRzIGEgPGZvcm0+IG9yIGFwcCByb290IGhlYXIgZXZlcnkgY29udHJvbC5cbiAgICovXG4gIG1kVmFsaWRpdHlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbGlkOiBib29sZWFuOyB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nOyBmbGFnczogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kU2VsZWN0T3B0aW9uLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaWNvbicsICdpY29uQ29sb3InLCAnbGFiZWwnLCAnc2VsZWN0ZWQnLCAnc3VwcG9ydGluZ1RleHQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXNlbGVjdC1vcHRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2ljb24nLCAnaWNvbkNvbG9yJywgJ2xhYmVsJywgJ3NlbGVjdGVkJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3ZhbHVlJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRTZWxlY3RPcHRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZFNlbGVjdE9wdGlvbkNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFNlbGVjdE9wdGlvbiBleHRlbmRzIENvbXBvbmVudHMuTWRTZWxlY3RPcHRpb24ge1xuICAvKipcbiAgICogRmlyZWQgd2hlbiB0aGUgb3B0aW9uIG1vdW50cywgdW5tb3VudHMsIG9yIGl0cyBkYXRhIGNoYW5nZXMgc28gdGhlXG5wYXJlbnQgcGlja2VyIGNhbiByZS1yZWFkIGl0cyBvcHRpb24gc2V0LlxuICAgKi9cbiAgbWRTZWxlY3RPcHRpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFNpZGVTaGVldCxcbiAgaW5wdXRzOiBbJ2JvdHRvbURpdmlkZXInLCAnY2xvc2VhYmxlJywgJ2RlbnNpdHknLCAnZGV0YWNoZWQnLCAnaGVhZGxpbmUnLCAnb3BlbicsICdzY3JpbURpc21pc3NpYmxlJywgJ3NoZWV0QXJpYUxhYmVsJywgJ3Nob3dCYWNrJywgJ3NpZGUnLCAndG9wRGl2aWRlcicsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdjbG9zZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtc2lkZS1zaGVldCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYm90dG9tRGl2aWRlcicsICdjbG9zZWFibGUnLCAnZGVuc2l0eScsICdkZXRhY2hlZCcsICdoZWFkbGluZScsICdvcGVuJywgJ3NjcmltRGlzbWlzc2libGUnLCAnc2hlZXRBcmlhTGFiZWwnLCAnc2hvd0JhY2snLCAnc2lkZScsICd0b3BEaXZpZGVyJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFNpZGVTaGVldCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kT3BlbicsICdtZENsb3NlJywgJ21kQ2FuY2VsJywgJ21kQmFjayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFNpZGVTaGVldCBleHRlbmRzIENvbXBvbmVudHMuTWRTaWRlU2hlZXQge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgc2hlZXQgb3BlbnNcbiAgICovXG4gIG1kT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIHNoZWV0IGNsb3Nlc1xuICAgKi9cbiAgbWRDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gZGlzbWlzc2VkIHZpYSBzY3JpbSBjbGljayBvciBFc2NhcGVcbiAgICovXG4gIG1kQ2FuY2VsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgYmFjayBidXR0b24gaXMgcHJlc3NlZCAobW9kYWwgb25seSlcbiAgICovXG4gIG1kQmFjazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kU2tlbGV0b24sXG4gIGlucHV0czogWydhbmltYXRpb24nLCAnYW5ub3VuY2UnLCAnYXJpYUxhYmVsUHJvcCcsICdkZW5zaXR5JywgJ2Z1bGxIZWlnaHQnLCAnZnVsbFdpZHRoJywgJ2hlaWdodCcsICdsaW5lcycsICd2YXJpYW50JywgJ3dpZHRoJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1za2VsZXRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5pbWF0aW9uJywgJ2Fubm91bmNlJywgJ2FyaWFMYWJlbFByb3AnLCAnZGVuc2l0eScsICdmdWxsSGVpZ2h0JywgJ2Z1bGxXaWR0aCcsICdoZWlnaHQnLCAnbGluZXMnLCAndmFyaWFudCcsICd3aWR0aCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kU2tlbGV0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFNrZWxldG9uIGV4dGVuZHMgQ29tcG9uZW50cy5NZFNrZWxldG9uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFNsaWRlcixcbiAgaW5wdXRzOiBbJ2FyaWFMYWJlbEVuZCcsICdhcmlhTGFiZWxTdGFydCcsICdjb250cm9sbGVkJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZnVsbEhlaWdodCcsICdpY29uJywgJ2luc2V0SWNvbicsICdsYWJlbGVkJywgJ21heCcsICdtaW4nLCAnbmFtZScsICduYW1lRW5kJywgJ25hbWVTdGFydCcsICdvcmllbnRhdGlvbicsICdyYW5nZScsICdzaXplJywgJ3NsaWRlckFyaWFMYWJlbCcsICdzdGVwJywgJ3N0b3BzJywgJ3ZhbHVlJywgJ3ZhbHVlRW5kJywgJ3ZhbHVlRW5kVGV4dCcsICd2YWx1ZUluZGljYXRvcicsICd2YWx1ZVN0YXJ0JywgJ3ZhbHVlU3RhcnRUZXh0JywgJ3ZhbHVlVGV4dCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1zbGlkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FyaWFMYWJlbEVuZCcsICdhcmlhTGFiZWxTdGFydCcsICdjb250cm9sbGVkJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZnVsbEhlaWdodCcsICdpY29uJywgJ2luc2V0SWNvbicsICdsYWJlbGVkJywgJ21heCcsICdtaW4nLCAnbmFtZScsICduYW1lRW5kJywgJ25hbWVTdGFydCcsICdvcmllbnRhdGlvbicsICdyYW5nZScsICdzaXplJywgJ3NsaWRlckFyaWFMYWJlbCcsICdzdGVwJywgJ3N0b3BzJywgJ3ZhbHVlJywgJ3ZhbHVlRW5kJywgJ3ZhbHVlRW5kVGV4dCcsICd2YWx1ZUluZGljYXRvcicsICd2YWx1ZVN0YXJ0JywgJ3ZhbHVlU3RhcnRUZXh0JywgJ3ZhbHVlVGV4dCcsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRTbGlkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZElucHV0JywgJ21kQ2hhbmdlJywgJ21kRm9jdXMnLCAnbWRCbHVyJywgJ21kRHJhZ1N0YXJ0JywgJ21kRHJhZ0VuZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRTbGlkZXJWYWx1ZURldGFpbCBhcyBJTWRTbGlkZXJNZFNsaWRlclZhbHVlRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kU2xpZGVyVGh1bWJEZXRhaWwgYXMgSU1kU2xpZGVyTWRTbGlkZXJUaHVtYkRldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBNZFNsaWRlckRyYWdEZXRhaWwgYXMgSU1kU2xpZGVyTWRTbGlkZXJEcmFnRGV0YWlsIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFNsaWRlciBleHRlbmRzIENvbXBvbmVudHMuTWRTbGlkZXIge1xuICAvKipcbiAgICogRmlyZXMgY29udGludW91c2x5IHdoaWxlIHRoZSB1c2VyIGRyYWdzIG9yIHByZXNzZXMgYXJyb3cga2V5cy5cbiAgICovXG4gIG1kSW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRTbGlkZXJNZFNsaWRlclZhbHVlRGV0YWlsPj47XG4gIC8qKlxuICAgKiBGaXJlcyBvbmNlIHdoZW4gdGhlIHVzZXIgY29tbWl0cyBhIHZhbHVlIChwb2ludGVyIHVwLCBrZXlib2FyZCByZWxlYXNlLCBjaGFuZ2UgZXZlbnQpLlxuICAgKi9cbiAgbWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRTbGlkZXJNZFNsaWRlclZhbHVlRGV0YWlsPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIGEgc2xpZGVyIHRodW1iIHJlY2VpdmVzIGZvY3VzLlxuICAgKi9cbiAgbWRGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZFNsaWRlck1kU2xpZGVyVGh1bWJEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gYSBzbGlkZXIgdGh1bWIgbG9zZXMgZm9jdXMuXG4gICAqL1xuICBtZEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRTbGlkZXJNZFNsaWRlclRodW1iRGV0YWlsPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIGEgZHJhZy9rZXlib2FyZCBpbnRlcmFjdGlvbiBiZWdpbnMuXG4gICAqL1xuICBtZERyYWdTdGFydDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZFNsaWRlck1kU2xpZGVyRHJhZ0RldGFpbD4+O1xuICAvKipcbiAgICogRmlyZXMgd2hlbiBhIGRyYWcva2V5Ym9hcmQgaW50ZXJhY3Rpb24gZW5kcy5cbiAgICovXG4gIG1kRHJhZ0VuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZFNsaWRlck1kU2xpZGVyRHJhZ0RldGFpbD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRTbmFja2JhcixcbiAgaW5wdXRzOiBbJ2FjdGlvbicsICdhdXRvSGlkZScsICdhdXRvSGlkZUR1cmF0aW9uJywgJ2Nsb3NlYWJsZScsICdkZW5zaXR5JywgJ2Rpc21pc3NMYWJlbCcsICdtZXNzYWdlJywgJ29wZW4nLCAncG9saXRlbmVzcycsICdwb3NpdGlvbicsICdzdGFja2VkJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1zbmFja2JhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aW9uJywgJ2F1dG9IaWRlJywgJ2F1dG9IaWRlRHVyYXRpb24nLCAnY2xvc2VhYmxlJywgJ2RlbnNpdHknLCAnZGlzbWlzc0xhYmVsJywgJ21lc3NhZ2UnLCAnb3BlbicsICdwb2xpdGVuZXNzJywgJ3Bvc2l0aW9uJywgJ3N0YWNrZWQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFNuYWNrYmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRPcGVuJywgJ21kQ2xvc2UnLCAnbWRBY3Rpb24nXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRTbmFja2JhciBleHRlbmRzIENvbXBvbmVudHMuTWRTbmFja2JhciB7XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBzbmFja2JhciBiZWNvbWVzIHZpc2libGVcbiAgICovXG4gIG1kT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIHNuYWNrYmFyIGlzIGRpc21pc3NlZCwgd2l0aCByZWFzb25cbiAgICovXG4gIG1kQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHJlYXNvbjogJ2F1dG8nIHwgJ2FjdGlvbicgfCAnY2xvc2UnIH0+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIGFjdGlvbiBidXR0b24gaXMgY2xpY2tlZFxuICAgKi9cbiAgbWRBY3Rpb246IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFNwYXJrbGluZSxcbiAgaW5wdXRzOiBbJ2JhcldpZHRoJywgJ2NvbG9yJywgJ2Nvcm5lclJhZGl1cycsICdjdXJ2ZScsICdkYXRhJywgJ2hlaWdodFByb3AnLCAnbGFiZWxzJywgJ2xpbmVXaWR0aCcsICdtYXJrU2l6ZScsICdtYXgnLCAnbWluJywgJ25vQW5pbWF0aW9uJywgJ3JlZmVyZW5jZUFyZWFzJywgJ3Nob3dNYXJrcycsICdzaG93VG9vbHRpcCcsICd2YWx1ZUZvcm1hdHRlcicsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsncmVmcmVzaFRoZW1lJywgJ3Jlc2l6ZScsICdnZXRJbnN0YW5jZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtc3BhcmtsaW5lJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydiYXJXaWR0aCcsICdjb2xvcicsICdjb3JuZXJSYWRpdXMnLCAnY3VydmUnLCAnZGF0YScsICdoZWlnaHRQcm9wJywgJ2xhYmVscycsICdsaW5lV2lkdGgnLCAnbWFya1NpemUnLCAnbWF4JywgJ21pbicsICdub0FuaW1hdGlvbicsICdyZWZlcmVuY2VBcmVhcycsICdzaG93TWFya3MnLCAnc2hvd1Rvb2x0aXAnLCAndmFsdWVGb3JtYXR0ZXInLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kU3BhcmtsaW5lIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRTcGFya0NsaWNrJywgJ21kUmVhZHknXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRTcGFya2xpbmUgZXh0ZW5kcyBDb21wb25lbnRzLk1kU3BhcmtsaW5lIHtcblxuICBtZFNwYXJrQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGRhdGFJbmRleDogbnVtYmVyOyB2YWx1ZTogbnVtYmVyIHwgbnVsbCB9Pj47XG5cbiAgbWRSZWFkeTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kU3BsaXRCdXR0b24sXG4gIGlucHV0czogWydjb250cm9scycsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2Z1bGxXaWR0aCcsICdoYXNwb3B1cCcsICdpY29uJywgJ2xhYmVsJywgJ21lbnVMYWJlbCcsICdyaXBwbGUnLCAnc2l6ZScsICdzb2Z0RGlzYWJsZWQnLCAndHJhaWxpbmdDaGVja2VkJywgJ3RyYWlsaW5nSWNvbicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1zcGxpdC1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbnRyb2xzJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZnVsbFdpZHRoJywgJ2hhc3BvcHVwJywgJ2ljb24nLCAnbGFiZWwnLCAnbWVudUxhYmVsJywgJ3JpcHBsZScsICdzaXplJywgJ3NvZnREaXNhYmxlZCcsICd0cmFpbGluZ0NoZWNrZWQnLCAndHJhaWxpbmdJY29uJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFNwbGl0QnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRMZWFkaW5nQ2xpY2snLCAnbWRUcmFpbGluZ0NsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kU3BsaXRCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLk1kU3BsaXRCdXR0b24ge1xuICAvKipcbiAgICogRmlyZWQgd2hlbiB0aGUgbGVhZGluZyBidXR0b24gaXMgYWN0aXZhdGVkXG4gICAqL1xuICBtZExlYWRpbmdDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdGhlIHRyYWlsaW5nIGJ1dHRvbiBpcyB0b2dnbGVkXG4gICAqL1xuICBtZFRyYWlsaW5nQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGNoZWNrZWQ6IGJvb2xlYW4gfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRTdGF0dXNEb3QsXG4gIGlucHV0czogWydkZW5zaXR5JywgJ2lubGluZScsICdsYWJlbCcsICdsaXZlJywgJ3NoYXBlJywgJ3NpemUnLCAnc3RhdGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXN0YXR1cy1kb3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlbnNpdHknLCAnaW5saW5lJywgJ2xhYmVsJywgJ2xpdmUnLCAnc2hhcGUnLCAnc2l6ZScsICdzdGF0ZSddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kU3RhdHVzRG90IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRTdGF0dXNEb3QgZXh0ZW5kcyBDb21wb25lbnRzLk1kU3RhdHVzRG90IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFN0ZXAsXG4gIGlucHV0czogWydhY2Nlc3NpYmxlTmFtZScsICdhY3RpdmUnLCAnY29tcGxldGVkJywgJ2NvbXBsZXRlZEljb24nLCAnZGVuc2l0eScsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdlZGl0YWJsZScsICdlcnJvcicsICdlcnJvckljb24nLCAnZXJyb3JUZXh0JywgJ2hpZGVBY3Rpb25zJywgJ2ljb24nLCAnbGFiZWwnLCAnb3B0aW9uYWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXN0ZXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjY2Vzc2libGVOYW1lJywgJ2FjdGl2ZScsICdjb21wbGV0ZWQnLCAnY29tcGxldGVkSWNvbicsICdkZW5zaXR5JywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2VkaXRhYmxlJywgJ2Vycm9yJywgJ2Vycm9ySWNvbicsICdlcnJvclRleHQnLCAnaGlkZUFjdGlvbnMnLCAnaWNvbicsICdsYWJlbCcsICdvcHRpb25hbCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kU3RlcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kU3RlcENsaWNrJywgJ21kU3RlcE5leHQnLCAnbWRTdGVwQmFjayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFN0ZXAgZXh0ZW5kcyBDb21wb25lbnRzLk1kU3RlcCB7XG4gIC8qKlxuICAgKiBCdWJibGVkIHRvIHRoZSBwYXJlbnQgc3RlcHBlciwgd2hpY2ggZGVjaWRlcyB3aGV0aGVyIHRoZSBtb3ZlIGlzIGFsbG93ZWQuXG5JbnRlcm5hbCBjb29yZGluYXRpb24gZXZlbnQg4oCUIGNvbnN1bWVkIChhbmQgc3RvcHBlZCkgYnkgYG1kLXN0ZXBwZXJgLlxuICAgKi9cbiAgbWRTdGVwQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGluZGV4OiBudW1iZXIgfT4+O1xuICAvKipcbiAgICogQ29udGludWUgcHJlc3NlZCBpbiB0aGlzIHN0ZXAncyBjb250ZW50IHBhbmVsLiBDb25zdW1lZCBieSBgbWQtc3RlcHBlcmAuXG4gICAqL1xuICBtZFN0ZXBOZXh0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBpbmRleDogbnVtYmVyIH0+PjtcbiAgLyoqXG4gICAqIEJhY2sgcHJlc3NlZCBpbiB0aGlzIHN0ZXAncyBjb250ZW50IHBhbmVsLiBDb25zdW1lZCBieSBgbWQtc3RlcHBlcmAuXG4gICAqL1xuICBtZFN0ZXBCYWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBpbmRleDogbnVtYmVyIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kU3RlcHBlcixcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdhdXRvQ29tcGxldGUnLCAnYmFja0xhYmVsJywgJ2NvbXBsZXRlZFdvcmQnLCAnY3VycmVudFdvcmQnLCAnZGVuc2l0eScsICdlcnJvcldvcmQnLCAnZmluaXNoTGFiZWwnLCAnaW5kaWNhdG9yJywgJ2xhYmVsJywgJ2xhenknLCAnbG9hZGluZycsICdtb2RlJywgJ25hdicsICduZXh0RGlzYWJsZWQnLCAnbmV4dExhYmVsJywgJ29mV29yZCcsICdvcHRpb25hbFdvcmQnLCAnb3JpZW50YXRpb24nLCAncmVhZG9ubHknLCAnc3RlcFdvcmQnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ25leHQnLCAncHJldicsICdnb1RvJywgJ3Jlc2V0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC1zdGVwcGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAnYXV0b0NvbXBsZXRlJywgJ2JhY2tMYWJlbCcsICdjb21wbGV0ZWRXb3JkJywgJ2N1cnJlbnRXb3JkJywgJ2RlbnNpdHknLCAnZXJyb3JXb3JkJywgJ2ZpbmlzaExhYmVsJywgJ2luZGljYXRvcicsICdsYWJlbCcsICdsYXp5JywgJ2xvYWRpbmcnLCAnbW9kZScsICduYXYnLCAnbmV4dERpc2FibGVkJywgJ25leHRMYWJlbCcsICdvZldvcmQnLCAnb3B0aW9uYWxXb3JkJywgJ29yaWVudGF0aW9uJywgJ3JlYWRvbmx5JywgJ3N0ZXBXb3JkJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFN0ZXBwZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZEJlZm9yZUNoYW5nZScsICdtZFN0ZXBDaGFuZ2UnLCAnbWRDb21wbGV0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFN0ZXBwZXIgZXh0ZW5kcyBDb21wb25lbnRzLk1kU3RlcHBlciB7XG4gIC8qKlxuICAgKiBGaXJlcyBCRUZPUkUgYSB1c2VyLWRyaXZlbiBzdGVwIGNoYW5nZSBjb21taXRzIChzdGVwIGNsaWNrLCBidWlsdC1pbiBuYXYsIG9yXG5gbmV4dCgpYC9gcHJldigpYC9gZ29UbygpYCkuIENhbmNlbGFibGU6IGNhbGwgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHRvXG52ZXRvIHRoZSB0cmFuc2l0aW9uIChlLmcuIGJsb2NrIENvbnRpbnVlIHVudGlsIHRoZSBjdXJyZW50IHN0ZXAgdmFsaWRhdGVzKS5cbmBkZXRhaWwuaW5kZXhgIGlzIHRoZSByZXF1ZXN0ZWQgc3RlcCwgYGRldGFpbC5wcmV2aW91c2AgdGhlIGN1cnJlbnQgb25lLlxuRG9lcyBub3QgZmlyZSBmb3IgYSBkaXJlY3QgYGFjdGl2ZWAgcHJvcGVydHkgYXNzaWdubWVudCDigJQgc2V0IGBhY3RpdmVgXG55b3Vyc2VsZiB0byBjb21taXQgYXV0aG9yaXRhdGl2ZWx5IChlLmcuIGFmdGVyIGFzeW5jIHZhbGlkYXRpb24pLlxuICAgKi9cbiAgbWRCZWZvcmVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGluZGV4OiBudW1iZXI7IHByZXZpb3VzOiBudW1iZXIgfT4+O1xuICAvKipcbiAgICogQWN0aXZlIHN0ZXAgY2hhbmdlZCAoYWZ0ZXIgaXQgY29tbWl0cykuXG4gICAqL1xuICBtZFN0ZXBDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGluZGV4OiBudW1iZXI7IHByZXZpb3VzOiBudW1iZXIgfT4+O1xuICAvKipcbiAgICogQ29udGludWUgcHJlc3NlZCBvbiB0aGUgbGFzdCBzdGVwICh0aGUgZmxvdyBpcyBmaW5pc2hlZCkuXG4gICAqL1xuICBtZENvbXBsZXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRTdWJNZW51SXRlbSxcbiAgaW5wdXRzOiBbJ2JhZGdlJywgJ2Nsb3NlRGVsYXknLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdkaXZpZGVyJywgJ2dhcCcsICdoZWFkbGluZScsICdvcGVuRGVsYXknLCAnc3VwcG9ydGluZ1RleHQnXSxcbiAgbWV0aG9kczogWydjb2xsYXBzZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtc3ViLW1lbnUtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYmFkZ2UnLCAnY2xvc2VEZWxheScsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2RpdmlkZXInLCAnZ2FwJywgJ2hlYWRsaW5lJywgJ29wZW5EZWxheScsICdzdXBwb3J0aW5nVGV4dCddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kU3ViTWVudUl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZENsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kU3ViTWVudUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLk1kU3ViTWVudUl0ZW0ge1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgaXRlbSByb3cgaXRzZWxmIGlzIGNsaWNrZWQgKG5vdCB0aGUgc3VibWVudSkuXG4gICAqL1xuICBtZENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRTd2l0Y2gsXG4gIGlucHV0czogWydkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2ljb25zJywgJ25hbWUnLCAncmVxdWlyZWQnLCAnc2VsZWN0ZWQnLCAnc2VsZWN0ZWRJY29uJywgJ3Nob3dPbmx5U2VsZWN0ZWRJY29uJywgJ3NvZnREaXNhYmxlZCcsICd1bnNlbGVjdGVkSWNvbicsICd2YWx1ZScsICd2YWx1ZU1pc3NpbmdMYWJlbCddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ2dldFZhbGlkaXR5JywgJ2NoZWNrVmFsaWRpdHknLCAncmVwb3J0VmFsaWRpdHknLCAnc2V0Q3VzdG9tVmFsaWRpdHknXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXN3aXRjaCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVuc2l0eScsICdkaXNhYmxlZCcsICdpY29ucycsICduYW1lJywgJ3JlcXVpcmVkJywgJ3NlbGVjdGVkJywgJ3NlbGVjdGVkSWNvbicsICdzaG93T25seVNlbGVjdGVkSWNvbicsICdzb2Z0RGlzYWJsZWQnLCAndW5zZWxlY3RlZEljb24nLCAndmFsdWUnLCAndmFsdWVNaXNzaW5nTGFiZWwnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFN3aXRjaCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kSW5wdXQnLCAnbWRDaGFuZ2UnLCAnbWRWYWxpZGl0eUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFN3aXRjaCBleHRlbmRzIENvbXBvbmVudHMuTWRTd2l0Y2gge1xuICAvKipcbiAgICogRmlyZXMgKipiZWZvcmUqKiB0aGUgc3RhdGUgY2hhbmdlcy4gQ2FsbCBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgdG9cbmJsb2NrIHRoZSBpbnRlcm5hbCB0b2dnbGUgYW5kIG1hbmFnZSBzdGF0ZSBleHRlcm5hbGx5IChjb250cm9sbGVkIG1vZGUpLlxuXG5gYGB0c1xuc3dpdGNoLmFkZEV2ZW50TGlzdGVuZXIoJ21kSW5wdXQnLCAoZSkgPT4ge1xuICBlLnByZXZlbnREZWZhdWx0KCk7ICAgICAgICAgIC8vIHByZXZlbnQgaW50ZXJuYWwgdG9nZ2xlXG4gIG15U3RhdGUudmFsdWUgPSBlLmRldGFpbC5zZWxlY3RlZDsgLy8gdXBkYXRlIHlvdXIgb3duIHN0YXRlXG59KTtcbmBgYFxuICAgKi9cbiAgbWRJbnB1dDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc2VsZWN0ZWQ6IGJvb2xlYW4gfT4+O1xuICAvKipcbiAgICogRmlyZXMgKiphZnRlcioqIHRoZSBpbnRlcm5hbCBzdGF0ZSBoYXMgY29tbWl0dGVkLiBVc2UgZm9yIHNpZGUgZWZmZWN0c1xubGlrZSBzYXZpbmcgcHJlZmVyZW5jZXMsIGFuYWx5dGljcywgb3Igc3luY2luZyB3aXRoIG90aGVyIGNvbXBvbmVudHMuXG5Ob3QgY2FuY2VsYWJsZSDigJQgdGhlIHRvZ2dsZSBoYXMgYWxyZWFkeSBoYXBwZW5lZC5cblxuYGBgdHNcbnN3aXRjaC5hZGRFdmVudExpc3RlbmVyKCdtZENoYW5nZScsIChlKSA9PiB7XG4gIGNvbnNvbGUubG9nKCdTd2l0Y2ggaXMgbm93JywgZS5kZXRhaWwuc2VsZWN0ZWQgPyAnT04nIDogJ09GRicpO1xufSk7XG5gYGBcbiAgICovXG4gIG1kQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBzZWxlY3RlZDogYm9vbGVhbiB9Pj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoaXMgY29udHJvbCdzIHZhbGlkaXR5IENIQU5HRVMg4oCUIG5ldmVyIG9uIGV2ZXJ5IGtleXN0cm9rZSwgYW5kXG5uZXZlciBmb3IgYSByZS1wdWJsaXNoIHRoYXQgbGFuZHMgb24gdGhlIHNhbWUgc3RhdGUuXG5cbmBjb21wb3NlZDogZmFsc2VgIGlzIGRlbGliZXJhdGUuIENvbXBvc2l0ZXMgbGlrZSBtZC1zZWxlY3QgZW1iZWQgYW5cbm1kLXRleHQtZmllbGQsIGFuZCBhIGNvbXBvc2VkIGV2ZW50IGVzY2FwZXMgdGhhdCBpbm5lciBzaGFkb3cgcm9vdCwgc28gYVxubGlzdGVuZXIgb24gbWQtc2VsZWN0IHdvdWxkIHJlY2VpdmUgdGhlIGlubmVyIGZpZWxkJ3MgZXZlbnQgYXMgd2VsbCBhcyB0aGVcbmhvc3QncyDigJQgdHdvIGV2ZW50cywgZGlmZmVyZW50IHBheWxvYWRzLCBmb3Igb25lIGxvZ2ljYWwgY29udHJvbC4gS2VlcGluZ1xuaXQgdW5jb21wb3NlZCBtZWFucyBlYWNoIGNvbXBvbmVudCByZXBvcnRzIG9ubHkgZm9yIGl0c2VsZiwgd2hpbGVcbmBidWJibGVzOiB0cnVlYCBzdGlsbCBsZXRzIGEgPGZvcm0+IG9yIGFwcCByb290IGhlYXIgZXZlcnkgY29udHJvbC5cbiAgICovXG4gIG1kVmFsaWRpdHlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbGlkOiBib29sZWFuOyB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nOyBmbGFnczogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kVGFiLFxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2JhZGdlJywgJ2NvbnRyb2xzJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnaWNvbicsICdpbmxpbmVJY29uJywgJ2xhYmVsJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXRhYicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2JhZGdlJywgJ2NvbnRyb2xzJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnaWNvbicsICdpbmxpbmVJY29uJywgJ2xhYmVsJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFRhYiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kVGFiQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRUYWIgZXh0ZW5kcyBDb21wb25lbnRzLk1kVGFiIHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIHRhYiBpcyBhY3RpdmF0ZWQgYnkgY2xpY2sgb3Iga2V5Ym9hcmRcbiAgICovXG4gIG1kVGFiQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFRhYlBhbmVsLFxuICBpbnB1dHM6IFsnYWN0aXZlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC10YWItcGFuZWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZSddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kVGFiUGFuZWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFRhYlBhbmVsIGV4dGVuZHMgQ29tcG9uZW50cy5NZFRhYlBhbmVsIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFRhYlBhbmVscyxcbiAgaW5wdXRzOiBbJ2ZvcicsICdzaXppbmcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXRhYi1wYW5lbHMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ZvcicsICdzaXppbmcnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFRhYlBhbmVscyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kVGFiUGFuZWxzIGV4dGVuZHMgQ29tcG9uZW50cy5NZFRhYlBhbmVscyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRUYWJsZSxcbiAgaW5wdXRzOiBbJ2NhcHRpb24nLCAnY29sdW1uVGVtcGxhdGUnLCAnY29sdW1ucycsICdkZW5zaXR5JywgJ2VtcHR5JywgJ2Zyb3plbkhlYWRlcicsICdob3ZlcmFibGUnLCAna2VlcEhlaWdodCcsICdsYWJlbCcsICdsb2FkaW5nJywgJ2xvYWRpbmdNb2RlJywgJ2xvYWRpbmdSb3dzJywgJ21pbldpZHRoJywgJ21vdGlvbicsICdub0RpdmlkZXJzJywgJ3Bpbkljb24nLCAncGluTW9kZScsICdyb3dDb3VudCcsICdyb3dPZmZzZXQnLCAnc2Nyb2xsYmFyJywgJ3NlbGVjdGlvbicsICdzb3J0QnknLCAnc29ydE9yZGVyJywgJ3N0aWNreUZvb3RlcicsICdzdGlja3lIZWFkZXInLCAnc3RyaXBlZCcsICdzdW1tYXJ5J10sXG4gIG1ldGhvZHM6IFsnZ2V0U2VsZWN0aW9uJywgJ3NlbGVjdEFsbCcsICdkZXNlbGVjdEFsbCcsICd0b2dnbGVTZWxlY3RBbGwnLCAnc2V0U29ydCcsICdwaW5Db2x1bW4nLCAnc2V0Q29sdW1uVmlzaWJpbGl0eScsICdhbmltYXRlTmV4dENoYW5nZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtdGFibGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NhcHRpb24nLCAnY29sdW1uVGVtcGxhdGUnLCAnY29sdW1ucycsICdkZW5zaXR5JywgJ2VtcHR5JywgJ2Zyb3plbkhlYWRlcicsICdob3ZlcmFibGUnLCAna2VlcEhlaWdodCcsICdsYWJlbCcsICdsb2FkaW5nJywgJ2xvYWRpbmdNb2RlJywgJ2xvYWRpbmdSb3dzJywgJ21pbldpZHRoJywgJ21vdGlvbicsICdub0RpdmlkZXJzJywgJ3Bpbkljb24nLCAncGluTW9kZScsICdyb3dDb3VudCcsICdyb3dPZmZzZXQnLCAnc2Nyb2xsYmFyJywgJ3NlbGVjdGlvbicsICdzb3J0QnknLCAnc29ydE9yZGVyJywgJ3N0aWNreUZvb3RlcicsICdzdGlja3lIZWFkZXInLCAnc3RyaXBlZCcsICdzdW1tYXJ5J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRUYWJsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kU29ydENoYW5nZScsICdtZFNlbGVjdGlvbkNoYW5nZScsICdtZFBpbkNoYW5nZScsICdtZENvbHVtblZpc2liaWxpdHlDaGFuZ2UnLCAnbWRTY3JvbGwnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IE1kVGFibGVTb3J0U3RhdGUgYXMgSU1kVGFibGVNZFRhYmxlU29ydFN0YXRlIH0gZnJvbSAnQGF3Yy11aS9jb3JlL2Rpc3QvY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IE1kVGFibGVTZWxlY3Rpb25TdGF0ZSBhcyBJTWRUYWJsZU1kVGFibGVTZWxlY3Rpb25TdGF0ZSB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRUYWJsZSBleHRlbmRzIENvbXBvbmVudHMuTWRUYWJsZSB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gc29ydCBjaGFuZ2VzIChhZnRlciBhIGBtZC10YWJsZS1zb3J0LWxhYmVsYCBpcyBjbGlja2VkKS5cbiAgICovXG4gIG1kU29ydENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZFRhYmxlTWRUYWJsZVNvcnRTdGF0ZT4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuZXZlciB0aGUgcm93IHNlbGVjdGlvbiBzdGF0ZSBjaGFuZ2VzLlxuICAgKi9cbiAgbWRTZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTWRUYWJsZU1kVGFibGVTZWxlY3Rpb25TdGF0ZT4+O1xuICAvKipcbiAgICogRW1pdHMgd2hlbiBhIGNvbHVtbiBpcyBwaW5uZWQvdW5waW5uZWQgdmlhIGBwaW5Db2x1bW5gLlxuICAgKi9cbiAgbWRQaW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGNvbHVtbjogbnVtYmVyOyBzaWRlOiAnc3RhcnQnIHwgJ2VuZCcgfCBudWxsIH0+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gYSBjb2x1bW4gaXMgaGlkZGVuL3Nob3duIHZpYSBgc2V0Q29sdW1uVmlzaWJpbGl0eWAuXG4gICAqL1xuICBtZENvbHVtblZpc2liaWxpdHlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGNvbHVtbjogbnVtYmVyOyB2aXNpYmxlOiBib29sZWFuOyBoaWRkZW46IG51bWJlcltdIH0+PjtcbiAgLyoqXG4gICAqIHJBRi10aHJvdHRsZWQgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBmcm96ZW4gYm9keSBzY3JvbGxlci5cbiAgICovXG4gIG1kU2Nyb2xsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBzY3JvbGxMZWZ0OiBudW1iZXI7IHNjcm9sbFRvcDogbnVtYmVyIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kVGFibGVCb2R5XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtdGFibGUtYm9keScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kVGFibGVCb2R5IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRUYWJsZUJvZHkgZXh0ZW5kcyBDb21wb25lbnRzLk1kVGFibGVCb2R5IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFRhYmxlQ2VsbCxcbiAgaW5wdXRzOiBbJ2FsaWduJywgJ2NvbFNwYW4nLCAnZGVuc2l0eScsICdlbGxpcHNpcycsICdoZWFkJywgJ25vUGluSW5kaWNhdG9yJywgJ251bWVyaWMnLCAncGFkZGluZycsICdwaW5JY29uJywgJ3Jvd1NwYW4nLCAnc2NvcGUnLCAnc3RpY2t5JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXRhYmxlLWNlbGwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsaWduJywgJ2NvbFNwYW4nLCAnZGVuc2l0eScsICdlbGxpcHNpcycsICdoZWFkJywgJ25vUGluSW5kaWNhdG9yJywgJ251bWVyaWMnLCAncGFkZGluZycsICdwaW5JY29uJywgJ3Jvd1NwYW4nLCAnc2NvcGUnLCAnc3RpY2t5JywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFRhYmxlQ2VsbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kVGFibGVDZWxsIGV4dGVuZHMgQ29tcG9uZW50cy5NZFRhYmxlQ2VsbCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRUYWJsZUNvbnRhaW5lcixcbiAgaW5wdXRzOiBbJ2VsZXZhdGlvbicsICdtYXhIZWlnaHQnLCAnbWluSGVpZ2h0JywgJ3NoYXBlJywgJ3ZhcmlhbnQnLCAndmlicmFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtdGFibGUtY29udGFpbmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydlbGV2YXRpb24nLCAnbWF4SGVpZ2h0JywgJ21pbkhlaWdodCcsICdzaGFwZScsICd2YXJpYW50JywgJ3ZpYnJhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFRhYmxlQ29udGFpbmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRUYWJsZUNvbnRhaW5lciBleHRlbmRzIENvbXBvbmVudHMuTWRUYWJsZUNvbnRhaW5lciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRUYWJsZUV4cGFuZFRvZ2dsZSxcbiAgaW5wdXRzOiBbJ2J1dHRvbkxhYmVsJywgJ2ljb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXRhYmxlLWV4cGFuZC10b2dnbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2J1dHRvbkxhYmVsJywgJ2ljb24nXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFRhYmxlRXhwYW5kVG9nZ2xlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRUYWJsZUV4cGFuZFRvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuTWRUYWJsZUV4cGFuZFRvZ2dsZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRUYWJsZUZvb3Rcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC10YWJsZS1mb290JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRUYWJsZUZvb3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFRhYmxlRm9vdCBleHRlbmRzIENvbXBvbmVudHMuTWRUYWJsZUZvb3Qge31cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kVGFibGVIZWFkXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtdGFibGUtaGVhZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kVGFibGVIZWFkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRUYWJsZUhlYWQgZXh0ZW5kcyBDb21wb25lbnRzLk1kVGFibGVIZWFkIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiBkZWZpbmVNZFRhYmxlUGFnaW5hdGlvbixcbiAgaW5wdXRzOiBbJ2NvbXBhY3QnLCAnY291bnQnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdsYWJlbEFsbCcsICdsYWJlbERpc3BsYXllZFJvd3MnLCAnbGFiZWxGaXJzdFBhZ2UnLCAnbGFiZWxMYXN0UGFnZScsICdsYWJlbE5leHRQYWdlJywgJ2xhYmVsUHJldmlvdXNQYWdlJywgJ2xhYmVsUm93c1BlclBhZ2UnLCAncGFnZScsICdyb3dzUGVyUGFnZScsICdyb3dzUGVyUGFnZU9wdGlvbnMnLCAnc2hvd0ZpcnN0TGFzdCddLFxuICBtZXRob2RzOiBbJ2dvVG9QYWdlJywgJ3NldFJvd3NQZXJQYWdlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC10YWJsZS1wYWdpbmF0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb21wYWN0JywgJ2NvdW50JywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnbGFiZWxBbGwnLCAnbGFiZWxEaXNwbGF5ZWRSb3dzJywgJ2xhYmVsRmlyc3RQYWdlJywgJ2xhYmVsTGFzdFBhZ2UnLCAnbGFiZWxOZXh0UGFnZScsICdsYWJlbFByZXZpb3VzUGFnZScsICdsYWJlbFJvd3NQZXJQYWdlJywgJ3BhZ2UnLCAncm93c1BlclBhZ2UnLCAncm93c1BlclBhZ2VPcHRpb25zJywgJ3Nob3dGaXJzdExhc3QnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFRhYmxlUGFnaW5hdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kUGFnZUNoYW5nZScsICdtZFJvd3NQZXJQYWdlQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kVGFibGVQYWdpbmF0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5NZFRhYmxlUGFnaW5hdGlvbiB7XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSB1c2VyIGNoYW5nZXMgdGhlIHBhZ2UuXG4gICAqL1xuICBtZFBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHBhZ2U6IG51bWJlciB9Pj47XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSB1c2VyIGNoYW5nZXMgcm93cy1wZXItcGFnZS5cbiAgICovXG4gIG1kUm93c1BlclBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHJvd3NQZXJQYWdlOiBudW1iZXIgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRUYWJsZVJvdyxcbiAgaW5wdXRzOiBbJ2NsaWNrYWJsZScsICdkaXNhYmxlZCcsICdleHBhbmRhYmxlJywgJ2V4cGFuZGVkJywgJ2hpZ2hsaWdodCcsICdyb3dncm91cCcsICdzZWxlY3RhYmxlJywgJ3NlbGVjdGVkJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsndG9nZ2xlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC10YWJsZS1yb3cnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NsaWNrYWJsZScsICdkaXNhYmxlZCcsICdleHBhbmRhYmxlJywgJ2V4cGFuZGVkJywgJ2hpZ2hsaWdodCcsICdyb3dncm91cCcsICdzZWxlY3RhYmxlJywgJ3NlbGVjdGVkJywgJ3ZhbHVlJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRUYWJsZVJvdyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kUm93Q2xpY2snLCAnbWRSb3dTZWxlY3Rpb25DaGFuZ2UnLCAnbWRSb3dFeHBhbmRlZENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFRhYmxlUm93IGV4dGVuZHMgQ29tcG9uZW50cy5NZFRhYmxlUm93IHtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdGhlIHVzZXIgY2xpY2tzIChvciBFbnRlci9TcGFjZS1hY3RpdmF0ZXMpIHRoZSByb3cuXG4gICAqL1xuICBtZFJvd0NsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWx1ZTogc3RyaW5nOyByb3c6IEhUTUxFbGVtZW50IH0+PjtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdGhlIGBzZWxlY3RlZGAgc3RhdGUgY2hhbmdlcyAodXNlZCBieSBgPG1kLXRhYmxlPmAgZm9yXG5zZWxlY3Rpb24gY29vcmRpbmF0aW9uKS5cbiAgICovXG4gIG1kUm93U2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBzZWxlY3RlZDogYm9vbGVhbjsgdmFsdWU6IHN0cmluZyB9Pj47XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSByb3cncyBleHBhbmRlZCBzdGF0ZSBjaGFuZ2VzLlxuICAgKi9cbiAgbWRSb3dFeHBhbmRlZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgZXhwYW5kZWQ6IGJvb2xlYW4gfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRUYWJsZVNvcnRMYWJlbCxcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdjb2x1bW4nLCAnZGVmYXVsdE9yZGVyJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnaWNvbicsICdpY29uUG9zaXRpb24nLCAnaW5hY3RpdmVJY29uJywgJ29yZGVyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC10YWJsZS1zb3J0LWxhYmVsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAnY29sdW1uJywgJ2RlZmF1bHRPcmRlcicsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2ljb24nLCAnaWNvblBvc2l0aW9uJywgJ2luYWN0aXZlSWNvbicsICdvcmRlciddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1kVGFibGVTb3J0TGFiZWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZFNvcnRSZXF1ZXN0J10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kVGFibGVTb3J0TGFiZWwgZXh0ZW5kcyBDb21wb25lbnRzLk1kVGFibGVTb3J0TGFiZWwge1xuICAvKipcbiAgICogRmlyZWQgd2hlbiB0aGUgdXNlciByZXF1ZXN0cyB0byBzb3J0IGJ5IHRoaXMgY29sdW1uLlxuICAgKi9cbiAgbWRTb3J0UmVxdWVzdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgY29sdW1uOiBzdHJpbmc7IGRlZmF1bHRPcmRlcjogJ2FzYycgfCAnZGVzYycgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRUYWJsZVRvb2xiYXIsXG4gIGlucHV0czogWydhdXRvQmluZCcsICdjb21wYWN0JywgJ2RlbnNpdHknLCAnaGVhZGxpbmUnLCAnbGFiZWxTZWxlY3RlZCcsICdudW1TZWxlY3RlZCcsICdzdXBwb3J0aW5nVGV4dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtdGFibGUtdG9vbGJhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b0JpbmQnLCAnY29tcGFjdCcsICdkZW5zaXR5JywgJ2hlYWRsaW5lJywgJ2xhYmVsU2VsZWN0ZWQnLCAnbnVtU2VsZWN0ZWQnLCAnc3VwcG9ydGluZ1RleHQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFRhYmxlVG9vbGJhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1kVGFibGVUb29sYmFyIGV4dGVuZHMgQ29tcG9uZW50cy5NZFRhYmxlVG9vbGJhciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRUYWJzLFxuICBpbnB1dHM6IFsnYWN0aXZlVGFiSW5kZXgnLCAnYXJpYUxhYmVsUHJvcCcsICdkaXZpZGVyJywgJ3RhYldpZHRoJywgJ3ZhcmlhbnQnLCAnd2lkdGgnXSxcbiAgbWV0aG9kczogWydzZWxlY3RUYWInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXRhYnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZVRhYkluZGV4JywgJ2FyaWFMYWJlbFByb3AnLCAnZGl2aWRlcicsICd0YWJXaWR0aCcsICd2YXJpYW50JywgJ3dpZHRoJ10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRUYWJzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRUYWJDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRUYWJzIGV4dGVuZHMgQ29tcG9uZW50cy5NZFRhYnMge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgYWN0aXZlIHRhYiBjaGFuZ2VzXG4gICAqL1xuICBtZFRhYkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgaW5kZXg6IG51bWJlcjsgcHJldmlvdXNJbmRleDogbnVtYmVyIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kVGV4dEZpZWxkLFxuICBpbnB1dHM6IFsnYXBwZWFyRm9jdXNlZCcsICdhdXRvQ2FwaXRhbGl6ZScsICdhdXRvY29tcGxldGUnLCAnY2hpcHNXcmFwJywgJ2NsZWFyYWJsZScsICdkZWJvdW5jZScsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2VudGVyS2V5SGludCcsICdlcnJvcicsICdlcnJvclRleHQnLCAnZm9jdXNCb3JkZXJXaWR0aCcsICdmb3JtYXRPbicsICdmb3JtYXR0ZXInLCAnaW5wdXRBcmlhQXV0b2NvbXBsZXRlJywgJ2lucHV0RXhwYW5kZWQnLCAnaW5wdXRNb2RlJywgJ2lucHV0Um9sZScsICdsYWJlbCcsICdtYXgnLCAnbWF4TGVuZ3RoJywgJ21pbicsICdtaW5MZW5ndGgnLCAnbXVsdGlsaW5lJywgJ25hbWUnLCAncGFyc2VyJywgJ3Bhc3N3b3JkVG9nZ2xlJywgJ3BhdHRlcm4nLCAncGxhY2Vob2xkZXInLCAncHJlZml4VGV4dCcsICdyZWFkT25seScsICdyZXF1aXJlZCcsICdyZXNlcnZlU3VwcG9ydGluZ1NwYWNlJywgJ3Jlc3RyaWN0JywgJ3Jvd3MnLCAnc3BlZWNoTGFuZycsICdzcGVlY2hUb1RleHQnLCAnc3BlbGxjaGVjaycsICdzdGVwJywgJ3N1ZmZpeFRleHQnLCAnc3VwcG9ydGluZ1RleHQnLCAndGhyb3R0bGUnLCAndHlwZScsICd2YWx1ZScsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAnc2VsZWN0JywgJ2dldElucHV0RWxlbWVudCcsICdnZXRWYWxpZGl0eScsICdzZXRDdXN0b21WYWxpZGl0eScsICdjaGVja1ZhbGlkaXR5JywgJ3JlcG9ydFZhbGlkaXR5J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC10ZXh0LWZpZWxkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcHBlYXJGb2N1c2VkJywgJ2F1dG9DYXBpdGFsaXplJywgJ2F1dG9jb21wbGV0ZScsICdjaGlwc1dyYXAnLCAnY2xlYXJhYmxlJywgJ2RlYm91bmNlJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZW50ZXJLZXlIaW50JywgJ2Vycm9yJywgJ2Vycm9yVGV4dCcsICdmb2N1c0JvcmRlcldpZHRoJywgJ2Zvcm1hdE9uJywgJ2Zvcm1hdHRlcicsICdpbnB1dEFyaWFBdXRvY29tcGxldGUnLCAnaW5wdXRFeHBhbmRlZCcsICdpbnB1dE1vZGUnLCAnaW5wdXRSb2xlJywgJ2xhYmVsJywgJ21heCcsICdtYXhMZW5ndGgnLCAnbWluJywgJ21pbkxlbmd0aCcsICdtdWx0aWxpbmUnLCAnbmFtZScsICdwYXJzZXInLCAncGFzc3dvcmRUb2dnbGUnLCAncGF0dGVybicsICdwbGFjZWhvbGRlcicsICdwcmVmaXhUZXh0JywgJ3JlYWRPbmx5JywgJ3JlcXVpcmVkJywgJ3Jlc2VydmVTdXBwb3J0aW5nU3BhY2UnLCAncmVzdHJpY3QnLCAncm93cycsICdzcGVlY2hMYW5nJywgJ3NwZWVjaFRvVGV4dCcsICdzcGVsbGNoZWNrJywgJ3N0ZXAnLCAnc3VmZml4VGV4dCcsICdzdXBwb3J0aW5nVGV4dCcsICd0aHJvdHRsZScsICd0eXBlJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFRleHRGaWVsZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kSW5wdXQnLCAnbWRDaGFuZ2UnLCAnbWRTZWFyY2gnLCAnbWRDbGVhcicsICdtZFBhc3N3b3JkVG9nZ2xlJywgJ21kU3BlZWNoUmVzdWx0JywgJ21kVmFsaWRpdHlDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRUZXh0RmllbGQgZXh0ZW5kcyBDb21wb25lbnRzLk1kVGV4dEZpZWxkIHtcblxuICBtZElucHV0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG5cbiAgbWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2l0aCBkZWJvdW5jZS90aHJvdHRsZSBjb250cm9sLiBVc2VmdWwgZm9yIHNlYXJjaC1hcy15b3UtdHlwZSwgQVBJIGNhbGxzLCBvciBmaWx0ZXJpbmcuXG4gICAqL1xuICBtZFNlYXJjaDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuXG4gIG1kQ2xlYXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG5cbiAgbWRQYXNzd29yZFRvZ2dsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdmlzaWJsZTogYm9vbGVhbiB9Pj47XG5cbiAgbWRTcGVlY2hSZXN1bHQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRyYW5zY3JpcHQ6IHN0cmluZzsgbGlzdGVuaW5nOiBib29sZWFuIH0+PjtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhpcyBjb250cm9sJ3MgdmFsaWRpdHkgQ0hBTkdFUyDigJQgbmV2ZXIgb24gZXZlcnkga2V5c3Ryb2tlLCBhbmRcbm5ldmVyIGZvciBhIHJlLXB1Ymxpc2ggdGhhdCBsYW5kcyBvbiB0aGUgc2FtZSBzdGF0ZS5cblxuYGNvbXBvc2VkOiBmYWxzZWAgaXMgZGVsaWJlcmF0ZS4gQ29tcG9zaXRlcyBsaWtlIG1kLXNlbGVjdCBlbWJlZCBhblxubWQtdGV4dC1maWVsZCwgYW5kIGEgY29tcG9zZWQgZXZlbnQgZXNjYXBlcyB0aGF0IGlubmVyIHNoYWRvdyByb290LCBzbyBhXG5saXN0ZW5lciBvbiBtZC1zZWxlY3Qgd291bGQgcmVjZWl2ZSB0aGUgaW5uZXIgZmllbGQncyBldmVudCBhcyB3ZWxsIGFzIHRoZVxuaG9zdCdzIOKAlCB0d28gZXZlbnRzLCBkaWZmZXJlbnQgcGF5bG9hZHMsIGZvciBvbmUgbG9naWNhbCBjb250cm9sLiBLZWVwaW5nXG5pdCB1bmNvbXBvc2VkIG1lYW5zIGVhY2ggY29tcG9uZW50IHJlcG9ydHMgb25seSBmb3IgaXRzZWxmLCB3aGlsZVxuYGJ1YmJsZXM6IHRydWVgIHN0aWxsIGxldHMgYSA8Zm9ybT4gb3IgYXBwIHJvb3QgaGVhciBldmVyeSBjb250cm9sLlxuICAgKi9cbiAgbWRWYWxpZGl0eUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdmFsaWQ6IGJvb2xlYW47IHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmc7IGZsYWdzOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRUaW1lUGlja2VyLFxuICBpbnB1dHM6IFsnYW1MYWJlbCcsICdjYW5jZWxMYWJlbCcsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2Vycm9yVGV4dCcsICdmb3JtYXQnLCAnaGVhZGxpbmUnLCAnaGVhZGxpbmVEaWFsTGFiZWwnLCAnaGVhZGxpbmVJbnB1dExhYmVsJywgJ2hpZGVUcmlnZ2VyJywgJ2hvdXJMYWJlbCcsICdsYWJlbCcsICdtYXgnLCAnbWluJywgJ21pbnV0ZUxhYmVsJywgJ21pbnV0ZVN0ZXAnLCAnbmFtZScsICdva0xhYmVsJywgJ29wZW4nLCAnb3JpZW50YXRpb24nLCAncGVyaW9kTGFiZWwnLCAncGVyaW9kTGF5b3V0JywgJ3BtTGFiZWwnLCAncmFuZ2VPdXRzaWRlTGFiZWwnLCAncmFuZ2VPdmVyZmxvd0xhYmVsJywgJ3JhbmdlVW5kZXJmbG93TGFiZWwnLCAncmVxdWlyZWQnLCAncmVzZXJ2ZVN1cHBvcnRpbmdTcGFjZScsICdyZXNwb25zaXZlJywgJ3N1cHBvcnRpbmdUZXh0JywgJ3RvZ2dsZURpYWxMYWJlbCcsICd0b2dnbGVJbnB1dExhYmVsJywgJ3ZhbHVlJywgJ3ZhbHVlTWlzc2luZ0xhYmVsJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnLCAnY2hlY2tWYWxpZGl0eScsICdyZXBvcnRWYWxpZGl0eScsICdnZXRWYWxpZGl0eSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWQtdGltZS1waWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FtTGFiZWwnLCAnY2FuY2VsTGFiZWwnLCAnZGVuc2l0eScsICdkaXNhYmxlZCcsICdlcnJvcicsICdlcnJvclRleHQnLCAnZm9ybWF0JywgJ2hlYWRsaW5lJywgJ2hlYWRsaW5lRGlhbExhYmVsJywgJ2hlYWRsaW5lSW5wdXRMYWJlbCcsICdoaWRlVHJpZ2dlcicsICdob3VyTGFiZWwnLCAnbGFiZWwnLCAnbWF4JywgJ21pbicsICdtaW51dGVMYWJlbCcsICdtaW51dGVTdGVwJywgJ25hbWUnLCAnb2tMYWJlbCcsICdvcGVuJywgJ29yaWVudGF0aW9uJywgJ3BlcmlvZExhYmVsJywgJ3BlcmlvZExheW91dCcsICdwbUxhYmVsJywgJ3JhbmdlT3V0c2lkZUxhYmVsJywgJ3JhbmdlT3ZlcmZsb3dMYWJlbCcsICdyYW5nZVVuZGVyZmxvd0xhYmVsJywgJ3JlcXVpcmVkJywgJ3Jlc2VydmVTdXBwb3J0aW5nU3BhY2UnLCAncmVzcG9uc2l2ZScsICdzdXBwb3J0aW5nVGV4dCcsICd0b2dnbGVEaWFsTGFiZWwnLCAndG9nZ2xlSW5wdXRMYWJlbCcsICd2YWx1ZScsICd2YWx1ZU1pc3NpbmdMYWJlbCcsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRUaW1lUGlja2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWRDaGFuZ2UnLCAnbWRJbnB1dCcsICdtZE9wZW4nLCAnbWRDbG9zZScsICdtZENhbmNlbCcsICdtZE1vZGVDaGFuZ2UnLCAnbWRWYWxpZGl0eUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWRUaW1lUGlja2VyQ2hhbmdlRGV0YWlsIGFzIElNZFRpbWVQaWNrZXJNZFRpbWVQaWNrZXJDaGFuZ2VEZXRhaWwgfSBmcm9tICdAYXdjLXVpL2NvcmUvZGlzdC9jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgTWRUaW1lUGlja2VyTW9kZUNoYW5nZURldGFpbCBhcyBJTWRUaW1lUGlja2VyTWRUaW1lUGlja2VyTW9kZUNoYW5nZURldGFpbCB9IGZyb20gJ0Bhd2MtdWkvY29yZS9kaXN0L2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRUaW1lUGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5NZFRpbWVQaWNrZXIge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB1c2VyIGNvbmZpcm1zIHRoZSBjaG9zZW4gdGltZSAoT0sgYnV0dG9uLCBvclxuRW50ZXIgaW5zaWRlIHRoZSBISC9NTSBmaWVsZHMgd2hpbGUgdGhlIGJ1ZmZlcnMgYXJlIHZhbGlkKS5cblRoaXMgaXMgdGhlIGNhbm9uaWNhbCBcInRoZSB1c2VyIGhhcyBjb21taXR0ZWQgYSB2YWx1ZVwiIGV2ZW50IOKAlFxudXNlIGl0IGZvciBmb3JtIGludGVncmF0aW9uLCBwZXJzaXN0ZW5jZSwgYW5kIGFuYWx5dGljcy5cblxuVGhlIGRldGFpbCBidW5kbGUgaW5jbHVkZXMgYm90aCB0aGUgaHVtYW4tZnJpZW5kbHkgYHZhbHVlYCBhbmRcbnRocmVlIGluZHVzdHJ5LXN0YW5kYXJkIElTTyAvIERhdGUgcmVwcmVzZW50YXRpb25zIHNvXG5kb3duc3RyZWFtIGNvZGUgbmV2ZXIgaGFzIHRvIHJlLWZvcm1hdCB0aGUgdGltZSBpdHNlbGYuXG4gICAqL1xuICBtZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZFRpbWVQaWNrZXJNZFRpbWVQaWNrZXJDaGFuZ2VEZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgb24gZXZlcnkgaW50ZXJtZWRpYXRlIGNoYW5nZSB3aGlsZSB0aGUgZGlhbG9nIGlzXG5vcGVuIOKAlCBkaWFsIGRyYWcsIGRpYWwtbW9kZSBrZXlib2FyZCB0eXBpbmcsIEFNL1BNIHRvZ2dsZSxcbmFuZCBpbnB1dC12YXJpYW50IGtleXN0cm9rZXMgdGhhdCBwcm9kdWNlIGEgdmFsaWQgSEg6TU0uXG5cbk1pcnJvcnMgdGhlIEhUTUwgYGlucHV0YCBldmVudCBzZW1hbnRpY3MgKFwiZmlyZXMgZm9yIGV2ZXJ5XG51c2VyLWRyaXZlbiBtdXRhdGlvblwiKSBhbmQgbWF0Y2hlcyB0aGUgcGF0dGVybiB1c2VkIGJ5XG5gbWQtZGF0ZS1waWNrZXJgIC8gYG1kLXRleHQtZmllbGRgLiBVc2UgYG1kSW5wdXRgIGZvciBsaXZlXG5wcmV2aWV3cyBhbmQgYG1kQ2hhbmdlYCBmb3IgdGhlIGZpbmFsIGNvbW1pdC4gVGhlIGRldGFpbFxuc2hhcGUgaXMgaWRlbnRpY2FsIHRvIGBtZENoYW5nZWAgc28gYSBwcmV2aWV3ZXIgY2FuIHJlYWQgdGhlXG5zYW1lIGZpZWxkcyByZWdhcmRsZXNzIG9mIHdoaWNoIGV2ZW50IGFycml2ZWQuXG4gICAqL1xuICBtZElucHV0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1kVGltZVBpY2tlck1kVGltZVBpY2tlckNoYW5nZURldGFpbD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBwaWNrZXIgb3BlbnMuXG4gICAqL1xuICBtZE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHBpY2tlciBjbG9zZXMgKHdoZXRoZXIgY29uZmlybWVkLCBjYW5jZWxsZWQsIG9yIGRpc21pc3NlZCkuXG4gICAqL1xuICBtZENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBwaWNrZXIgaXMgY2FuY2VsbGVkIG9yIGRpc21pc3NlZCB3aXRob3V0IGNvbW1pdHRpbmcuXG4gICAqL1xuICBtZENhbmNlbDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdXNlciBzd2l0Y2hlcyBiZXR3ZWVuIHRoZSBkaWFsIGFuZCBpbnB1dFxudmFyaWFudHMgdmlhIHRoZSBkaWFsb2cncyBrZXlib2FyZCAvIGNsb2NrIHRvZ2dsZS4gTGV0c1xuYW5hbHl0aWNzIG9yIHNpYmxpbmcgVUkgcmVhY3QgdG8gdGhlIHZhcmlhbnQgY2hhbmdlIChlLmcuXG5hbm5vdW5jZSB0aGUgbmV3IG1vZGUgdG8gc2NyZWVuIHJlYWRlcnMsIG9yIHJlc2l6ZSBhIGhvc3RpbmdcbmRpYWxvZyB3cmFwcGVyKS5cbiAgICovXG4gIG1kTW9kZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNZFRpbWVQaWNrZXJNZFRpbWVQaWNrZXJNb2RlQ2hhbmdlRGV0YWlsPj47XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoaXMgY29udHJvbCdzIHZhbGlkaXR5IENIQU5HRVMg4oCUIG5ldmVyIG9uIGV2ZXJ5IGtleXN0cm9rZSwgYW5kXG5uZXZlciBmb3IgYSByZS1wdWJsaXNoIHRoYXQgbGFuZHMgb24gdGhlIHNhbWUgc3RhdGUuXG5cbmBjb21wb3NlZDogZmFsc2VgIGlzIGRlbGliZXJhdGUuIENvbXBvc2l0ZXMgbGlrZSBtZC1zZWxlY3QgZW1iZWQgYW5cbm1kLXRleHQtZmllbGQsIGFuZCBhIGNvbXBvc2VkIGV2ZW50IGVzY2FwZXMgdGhhdCBpbm5lciBzaGFkb3cgcm9vdCwgc28gYVxubGlzdGVuZXIgb24gbWQtc2VsZWN0IHdvdWxkIHJlY2VpdmUgdGhlIGlubmVyIGZpZWxkJ3MgZXZlbnQgYXMgd2VsbCBhcyB0aGVcbmhvc3QncyDigJQgdHdvIGV2ZW50cywgZGlmZmVyZW50IHBheWxvYWRzLCBmb3Igb25lIGxvZ2ljYWwgY29udHJvbC4gS2VlcGluZ1xuaXQgdW5jb21wb3NlZCBtZWFucyBlYWNoIGNvbXBvbmVudCByZXBvcnRzIG9ubHkgZm9yIGl0c2VsZiwgd2hpbGVcbmBidWJibGVzOiB0cnVlYCBzdGlsbCBsZXRzIGEgPGZvcm0+IG9yIGFwcCByb290IGhlYXIgZXZlcnkgY29udHJvbC5cbiAgICovXG4gIG1kVmFsaWRpdHlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbGlkOiBib29sZWFuOyB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nOyBmbGFnczogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kVG9vbGJhcixcbiAgaW5wdXRzOiBbJ2FsaWdubWVudCcsICdhcmlhTGFiZWxQcm9wJywgJ2FyaWFMYWJlbGxlZGJ5JywgJ2NvbG9yJywgJ2NvbnRhaW5lclNlbWFudGljcycsICdkZW5zaXR5JywgJ2xheW91dCcsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXRvb2xiYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsaWdubWVudCcsICdhcmlhTGFiZWxQcm9wJywgJ2FyaWFMYWJlbGxlZGJ5JywgJ2NvbG9yJywgJ2NvbnRhaW5lclNlbWFudGljcycsICdkZW5zaXR5JywgJ2xheW91dCcsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTWRUb29sYmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWRUb29sYmFyIGV4dGVuZHMgQ29tcG9uZW50cy5NZFRvb2xiYXIge31cblxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZU1kVG9vbHRpcCxcbiAgaW5wdXRzOiBbJ2F1dG9Qb3NpdGlvbicsICdjcm9zc09mZnNldCcsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2hpZGVEZWxheScsICdvZmZzZXQnLCAnb3BlbicsICdwb3NpdGlvbicsICdzaG93RGVsYXknLCAnc3ViaGVhZCcsICd0ZXh0JywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21kLXRvb2x0aXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9Qb3NpdGlvbicsICdjcm9zc09mZnNldCcsICdkZW5zaXR5JywgJ2Rpc2FibGVkJywgJ2hpZGVEZWxheScsICdvZmZzZXQnLCAnb3BlbicsICdwb3NpdGlvbicsICdzaG93RGVsYXknLCAnc3ViaGVhZCcsICd0ZXh0JywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFRvb2x0aXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZE9wZW4nLCAnbWRDbG9zZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFRvb2x0aXAgZXh0ZW5kcyBDb21wb25lbnRzLk1kVG9vbHRpcCB7XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSB0b29sdGlwIGJlY29tZXMgdmlzaWJsZS4gYGJ1YmJsZXM6ZmFsc2VgICsgYGNvbXBvc2VkOmZhbHNlYCBrZWVwIGl0XG5mcm9tIGNyb3NzaW5nIHRoZSBzaGFkb3cgYm91bmRhcnkgYW5kIHJldGFyZ2V0aW5nIG9udG8gYW4gZW1iZWRkaW5nIGhvc3QgKHRoZSByZXBvJ3NcbmRvY3VtZW50ZWQgY29tcG9zZWQtZXZlbnQtbGVhayBjbGFzcyDigJQgc2VlIG1kLWRhdGUtcGlja2VyJ3Mgc3dhbGxvdyBndWFyZHMpLlxuICAgKi9cbiAgbWRPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgdG9vbHRpcCBpcyBkaXNtaXNzZWQgKGRvZXMgbm90IGJ1YmJsZSBvciBjcm9zcyBzaGFkb3cgYm91bmRhcmllcykuXG4gICAqL1xuICBtZENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogZGVmaW5lTWRUcmFuc2Zlckxpc3QsXG4gIGlucHV0czogWydjb3VudFRlbXBsYXRlJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZW1wdHlJY29uJywgJ2VtcHR5VGV4dCcsICdpdGVtcycsICdtb3ZlQWxsTGVmdEljb24nLCAnbW92ZUFsbExlZnRMYWJlbCcsICdtb3ZlQWxsUmlnaHRJY29uJywgJ21vdmVBbGxSaWdodExhYmVsJywgJ21vdmVMZWZ0SWNvbicsICdtb3ZlTGVmdExhYmVsJywgJ21vdmVSaWdodEljb24nLCAnbW92ZVJpZ2h0TGFiZWwnLCAnc2VhcmNoSWNvbicsICdzZWFyY2hhYmxlJywgJ3Nob3dTZWxlY3RBbGwnLCAnc2luZ2xlU3RlcE9ubHknLCAnc291cmNlU2VhcmNoUGxhY2Vob2xkZXInLCAnc291cmNlVGl0bGUnLCAndGFyZ2V0U2VhcmNoUGxhY2Vob2xkZXInLCAndGFyZ2V0VGl0bGUnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydtb3ZlU2VsZWN0ZWRSaWdodCcsICdtb3ZlU2VsZWN0ZWRMZWZ0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZC10cmFuc2Zlci1saXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb3VudFRlbXBsYXRlJywgJ2RlbnNpdHknLCAnZGlzYWJsZWQnLCAnZW1wdHlJY29uJywgJ2VtcHR5VGV4dCcsICdpdGVtcycsICdtb3ZlQWxsTGVmdEljb24nLCAnbW92ZUFsbExlZnRMYWJlbCcsICdtb3ZlQWxsUmlnaHRJY29uJywgJ21vdmVBbGxSaWdodExhYmVsJywgJ21vdmVMZWZ0SWNvbicsICdtb3ZlTGVmdExhYmVsJywgJ21vdmVSaWdodEljb24nLCAnbW92ZVJpZ2h0TGFiZWwnLCAnc2VhcmNoSWNvbicsICdzZWFyY2hhYmxlJywgJ3Nob3dTZWxlY3RBbGwnLCAnc2luZ2xlU3RlcE9ubHknLCAnc291cmNlU2VhcmNoUGxhY2Vob2xkZXInLCAnc291cmNlVGl0bGUnLCAndGFyZ2V0U2VhcmNoUGxhY2Vob2xkZXInLCAndGFyZ2V0VGl0bGUnLCAndmFsdWUnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZFRyYW5zZmVyTGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21kQ2hhbmdlJywgJ21kTW92ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNZFRyYW5zZmVyTGlzdCBleHRlbmRzIENvbXBvbmVudHMuTWRUcmFuc2Zlckxpc3Qge1xuICAvKipcbiAgICogRmlyZXMgb24gZXZlcnkgY2hhbmdlIHRvIHRoZSB0YXJnZXQgdmFsdWUuXG4gICAqL1xuICBtZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZ1tdPj47XG4gIC8qKlxuICAgKiBGaXJlcyBhZnRlciBpdGVtcyBhcmUgbW92ZWQuIGRldGFpbCBkZXNjcmliZXMgdGhlIG9wZXJhdGlvbi5cbiAgICovXG4gIG1kTW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgZGlyZWN0aW9uOiAnbGVmdCcgfCAncmlnaHQnOyBtb3ZlZDogc3RyaW5nW107IHRhcmdldDogc3RyaW5nW107IH0+Pjtcbn1cblxuXG4iXX0=
|